P8000/WEGA/src/cmd/standalone/sa.function.s

171 lines
2.6 KiB
ArmAsm

!******************************************************************************
*******************************************************************************
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