Mercurial > hg > Members > kono > nitros9-code
annotate 3rdparty/packages/basic09/syscall.asm @ 1217:105c50406cb2
Removed .60hz and .50hz targets
author | boisy |
---|---|
date | Tue, 01 Jul 2003 02:16:38 +0000 |
parents | 0e6a4a6486a0 |
children | 57f23da9790a |
rev | line source |
---|---|
482 | 1 ******************************************************************** |
2 * SysCall - system call subroutine module | |
3 * | |
4 * $Id$ | |
5 * | |
6 * Ed. Comments Who YY/MM/DD | |
7 * ------------------------------------------------------------------ | |
8 * 2 From OS-9 Level Two Vr. 2.00.01 Basic09 disk | |
9 | |
10 nam SysCall | |
11 ttl system call subroutine module | |
12 | |
13 * Disassembled 02/07/06 13:11:18 by Disasm v1.6 (C) 1988 by RML | |
14 | |
15 ifp1 | |
16 use defsfile | |
17 endc | |
18 | |
19 tylg set Sbrtn+Objct | |
20 atrv set ReEnt+rev | |
21 rev set $01 | |
22 edition set 2 | |
23 | |
24 mod eom,name,tylg,atrv,start,size | |
25 | |
26 u0000 rmb 0 | |
27 size equ . | |
28 | |
29 name fcs /SysCall/ | |
30 fcb edition | |
31 | |
32 start ldd $02,s get number of parameters | |
33 cmpd #$0002 two? | |
34 bne L005C if not, error | |
35 ldd $0A,s get size of second parameter | |
658
0ba32915943b
Fixed problem where E$Param error was being returned for 6309 systems.
boisy
parents:
482
diff
changeset
|
36 * cmpd #R$PC appropriate registers? |
0ba32915943b
Fixed problem where E$Param error was being returned for 6309 systems.
boisy
parents:
482
diff
changeset
|
37 cmpd #$0A appropriate registers? |
482 | 38 bne L005C branch if not |
39 ldd [<$04,s] get address of first parameter | |
40 ldx $06,s get size of first parameter | |
41 leax -$01,x | |
42 beq L0034 | |
43 leax -$01,x | |
44 bne L005C | |
45 tfr b,a | |
46 L0034 ldb #$39 get rts | |
47 pshs b,a put it and os9 func code on stack | |
48 ldd #$103F get SWI2 instruction | |
49 pshs b,a put on stack | |
50 ldu $0C,s get pointer to caller's registers on stack | |
659
0e6a4a6486a0
I've learned now that syscall does NOT change for either 6809 or 6309
boisy
parents:
658
diff
changeset
|
51 ldd 1,u R$D |
0e6a4a6486a0
I've learned now that syscall does NOT change for either 6809 or 6309
boisy
parents:
658
diff
changeset
|
52 ldx 4,u R$X |
0e6a4a6486a0
I've learned now that syscall does NOT change for either 6809 or 6309
boisy
parents:
658
diff
changeset
|
53 ldy 6,u R$Y |
0e6a4a6486a0
I've learned now that syscall does NOT change for either 6809 or 6309
boisy
parents:
658
diff
changeset
|
54 ldu 8,u R$U |
482 | 55 jsr ,s branch to subroutine |
56 pshs u,cc | |
57 ldu $0F,s | |
659
0e6a4a6486a0
I've learned now that syscall does NOT change for either 6809 or 6309
boisy
parents:
658
diff
changeset
|
58 leau 8,u R$U |
482 | 59 pshu y,x,dp,b,a |
60 puls x,a | |
61 sta ,-u | |
62 stx $08,u | |
63 leas $04,s | |
64 clrb | |
65 rts | |
66 | |
67 L005C comb | |
68 ldb #E$ParmEr | |
69 rts | |
70 | |
71 emod | |
72 eom equ * | |
73 end |