diff --git a/WEGA/src/uts/conf/Makefile b/WEGA/src/uts/conf/Makefile index f427e3e..55dda43 100644 --- a/WEGA/src/uts/conf/Makefile +++ b/WEGA/src/uts/conf/Makefile @@ -31,6 +31,11 @@ BOOTLIB: $(BL_OBJ) ../conf_times ../touch rm -f BOOTLIB ar qc BOOTLIB bmch.o boot.o bsys.o bconf.o bmisc.o bmd.o bfd.o bud.o brm.o +libb.a: sa.function.o bmisc.o + rm -f libb.a + ar qc libb.a sa.function.o bmisc.o + chmod 644 libb.a + conf.o: scc $(CFLAGS) -c $< diff --git a/WEGA/src/uts/conf/sa.function.s b/WEGA/src/uts/conf/sa.function.s new file mode 100644 index 0000000..af197c4 --- /dev/null +++ b/WEGA/src/uts/conf/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