41 lines
764 B
ArmAsm
41 lines
764 B
ArmAsm
|
.define Mon
|
||
|
.sect .text
|
||
|
.sect .rom
|
||
|
.sect .data
|
||
|
.sect .bss
|
||
|
.sect .text
|
||
|
|
||
|
! This subroutine performs some monitor calls.
|
||
|
! The exit call just resets the hardware_stackpointer so
|
||
|
! this routine will return to the operating system.
|
||
|
! The close call just returns a zero.
|
||
|
! The ioctl call just pops its arguments and returns a zero.
|
||
|
! The write routine is a real one.
|
||
|
|
||
|
|
||
|
Mon:
|
||
|
cpx #1
|
||
|
bne 1f ! exit
|
||
|
ldx STACK ! load stackpointer
|
||
|
dex
|
||
|
dex ! adjust stackpointer
|
||
|
txs ! set stackpointer
|
||
|
rts
|
||
|
1: cpx #4
|
||
|
bne 1f
|
||
|
jmp Mwrite
|
||
|
1: cpx #6 ! facked
|
||
|
bne 1f ! close
|
||
|
lda #0
|
||
|
tax ! return zero
|
||
|
rts
|
||
|
1: cpx #54
|
||
|
jsr Pop ! pop first argument (fildes)
|
||
|
jsr Pop ! pop second argument (request)
|
||
|
jsr Pop ! pop third argument (argp)
|
||
|
lda #0
|
||
|
tax ! return zero
|
||
|
rts
|
||
|
|
||
|
|