ack/mach/6500/libem/mon.s

36 lines
706 B
ArmAsm
Raw Normal View History

1984-12-17 11:03:13 +00:00
.define Mon
! 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