From 23e408f6bdb7267960799f10e76673a7bea14697 Mon Sep 17 00:00:00 2001 From: Oliver Lehmann Date: Fri, 3 Feb 1989 07:49:12 +0000 Subject: [PATCH] attach shipdisk to the build --- WEGA/src/cmd/standalone/sa.function.s | 170 ++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 WEGA/src/cmd/standalone/sa.function.s diff --git a/WEGA/src/cmd/standalone/sa.function.s b/WEGA/src/cmd/standalone/sa.function.s new file mode 100644 index 0000000..af197c4 --- /dev/null +++ b/WEGA/src/cmd/standalone/sa.function.s @@ -0,0 +1,170 @@ +!****************************************************************************** +******************************************************************************* + + W E G A - Quelle (C) ZFT/KEAW Abt. Basissoftware - 1985 + + Standalone Modul sa.function.s + + + Bearbeiter: P. Hoge + Datum: 04/01/87 11:20:56 + Version: 1.1 + +******************************************************************************* + + Dieser Modul gestattet die Benutzung der Boot Systemfunktionen + von einem User Programm aus. Dieser Modul wird zusammen mit + dem Modul misc.c zur libb.a + +******************************************************************************* +******************************************************************************! + + +sa_function_s module + +$nonsegmented + + + external + + _printfv procedure + + global + + _printf procedure + entry + ex r2, @r15 + push @r15, r3 + push @r15, r4 + push @r15, r5 + push @r15, r6 + ld r6, r15 + push @r15, r2 + call _printfv + ld r2, @r15 + inc r15, #12 + jp @r2 + end _printf + + _exit procedure + entry + ldb rl1, #0 + jr system + end _exit + + _read procedure !read nach Segment 0! + entry + ldb rl1, #1 + jr system + end _read + + _write procedure !von Segment 0! + entry + ldb rl1, #2 + jr system + end _write + + _open procedure + entry + ldb rl1, #3 + jr system + end _open + + _close procedure + entry + ldb rl1, #4 + jr system + end _close + + _lseek procedure + entry + ldb rl1, #5 + jr system + end _lseek + + _loadit procedure + entry + ldb rl1, #6 + jr system + end _loadit + + _getchar procedure + entry + ldb rl1, #7 + jr system + end _getchar + + _putchar procedure + entry + ldb rl1, #8 + jr system + end _putchar + + _getc procedure + entry + ldb rl1, #9 + jr system + end _getc + + _getw procedure + entry + ldb rl1, #10 + end _getw + + internal + + system procedure + entry + ld r0, #%C000 + ldctl FCW, r0 +!$segmented! + wval %5F00 !call <3F>%8002! + wval %BF00 + wval %8002 + ld r0, #%5800 + ldctl FCW, r0 +!nonsegmented! + ret + end system + + +!*--------------------------------------------------------*! +!* + * Realisierung von in und out Befehlen fuer C + *! +!*--------------------------------------------------------*! + + global + + _otirb !@r7, @r6, r5! procedure + entry + otirb @r7, @r6, r5 + ret + end _otirb + + _outb !@r7, rl6! procedure + entry + outb @r7, rl6 + ret + end _outb + + _inb !rl2, @r7! procedure + entry + inb rl2, @r7 + xorb rh2, rh2 + ret + end _inb + + _out !@r7, r6! procedure + entry + out @r7, r6 + ret + end _out + + _in !r2, @r7! procedure + entry + in r2, @r7 + ret + end _in + +end sa_function_s