annotate 3rdparty/packages/basic09/syscall.asm @ 1331:0a3500c747de

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