Mercurial > hg > Members > kono > nitros9-code
view 3rdparty/packages/cc/sources/syscall.a @ 1942:b41df77588b0
printer is now scbbp
sio is now scbbt
All references changed in various files
author | boisy |
---|---|
date | Sat, 26 Nov 2005 22:51:50 +0000 |
parents | 0198655f2552 |
children |
line wrap: on
line source
* * Universal OS-9 system call * * * calling syntax: os9(code,registers) * char code; * struct registers *reg; * * regs structure: * * struct registers { * char rg_cc, rg_a, rg_b, rg_dp; * unsigned rg_x, rg_y, rg_u; * }; m$rts equ $39 rts instruction m$os9 equ $103f os9 call instruction carry equ %00000001 carry bit csect R$CC rmb 1 R$D rmb 0 R$A rmb 1 R$B rmb 1 R$DP rmb 1 R$X rmb 2 R$Y rmb 2 R$U rmb 2 R$PC rmb 2 R$Size rmb 0 endsect psect syscall_a,0,0,1,0,0 _os9: pshs u,y save register variable & data ptr lda 7,s get function code ldb #m$rts and rts instruction pshs d ldd #m$os9 os9 call code pshs d ldu 12,s get user register ptr ldd R$D,u init regs for system call ldx R$X,u ldy R$Y,u ldu R$U,u jsr 0,s execute system call pshs cc,u save regs ldu 15,s get user register ptr leau R$U,u copy regs to user struct pshu a,b,dp,x,y puls a,x sta ,-u stx R$U,u leas 4,s junk the system call code puls u,y restore regs bita #carry carry on? beq os9.a bra if not ldd #-1 return error rts os9.a clra return no error clrb rts endsect