annotate CoCoOS9/level2v3/MODULES/ioman.asm @ 31:bd2b07db8917 cocoos9lv2v3

CoCoOS9 version
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Jul 2018 15:16:13 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 ********************************************************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 * IOMan - OS-9 Level Two V3 I/O Manager
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 * $Id: ioman.asm,v 1.1.1.1 2001/02/21 23:30:54 boisy Exp $
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 * Ed. Comments Who YY/MM/DD
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 * ------------------------------------------------------------------
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 * ?? Cleaned up some formatting KDM 87/05/15
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 * 14 IOMAN ignores device address high byte now ??? ??/??/??
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 * (FFXXXX vs 07XXXX etc ignored)
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 * 15 Fixed IOQueue sort bug BGP 98/10/08
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 * 15b Made minor optimizations as per Curtis Boyle's BGP 98/10/10
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 * optimization document
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 * Added comments from version provided by BGP 98/10/21
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 * Curtis Boyle
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 nam IOMan
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 ttl OS-9 Level Two V3 I/O Manager
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 ifp1
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 use defsfile
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 * use scfdefs
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 endc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 tylg set Systm+Objct
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 atrv set ReEnt+rev
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 rev set $02
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 edition set 15
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 mod eom,name,tylg,atrv,IOManEnt,size
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 size equ .
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 name fcs /IOMan/
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 fcb edition
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 ******************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 * IOMan Main entry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 IOManEnt equ *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 * allocate device table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 ldx <D.Init Get pointer to init module
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 lda DevCnt,x Get number of entrys in device table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 ldb #DEVSIZ Get size of each entry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 mul Calculate size needed for device table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 pshs a,b Preserve it
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 lda PollCnt,x Get number of entrys in polling table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 ldb #POLSIZ Get size of each entry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 mul Calculate size needed for polling table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 pshs a,b Preserve it
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 addd 2,s Add memory required for device table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 addd #$0018 Add another 24 bytes
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 addd #$00FF Add another 256
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 clrb Drop LSB
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 os9 F$SRqMem Request the memory
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 bcs Crash Crash system if error
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 leax ,u Point to the memory
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 L0033 clr ,x+ Clear a byte
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 subd #1 Done?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 bhi L0033 No, keep goin
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 stu <D.DevTbl Get pointer to device table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 ldd ,s++ Restore size of polling table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 std <D.CLTb Save it as VIRQ table address temporarily
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 ldd ,s++ Restore size of device table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 leax d,u Point X to the end of device table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 stx <D.PolTbl Initialize polling table address
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 ldd <D.CLTb Get VIRQ table size
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 leax d,x Add it to X
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 stx <D.CLTb Save VIRQ table address
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 ldx <D.PthDBT Get address of path descriptor table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 os9 F$All64 Split it into 64 byte chunks
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 bcs Crash Crash system if error
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 stx <D.PthDBT Save the pointer back
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 os9 F$Ret64
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 leax >L05F2,pcr Point to polling routine
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 stx <D.Poll Save the vector address
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 leay <L0067,pcr Point to service vector table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 os9 F$SSvc Set them up
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 rts Let the system take over
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 ******************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 * Fatal error Crash the system
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 Crash jmp <D.Crash
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 ******************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 * System service routine vector table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 L0067 fcb $7F
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 fdb UsrIO-*-2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 fcb F$Load
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 fdb FLoad-*-2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 fcb I$Detach
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 fdb IDetach0-*-2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 fcb F$PErr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 fdb FPErr-*-2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 fcb F$IOQu+$80
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 fdb FIOQu-*-2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 fcb $FF
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 fdb SysIO-*-2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 fcb F$IRQ+$80
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 fdb FIRQ-*-2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 fcb F$IODel+$80
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 fdb FIODel-*-2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 fcb F$NMLink
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 fdb FNMLink-*-2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 fcb F$NMLoad
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 fdb FNMLoad-*-2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 fcb $80
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 ******************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 * Check device status service call?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 * Entry: U = Callers register stack pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 FIODel ldx R$X,u Get address of module
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 ldu <D.Init Get pointer to init module
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 L008A ldb DevCnt,u Get device count
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 ldu <D.DevTbl Get pointer to device table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 L008E ldy V$DESC,u Descriptor exist?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 beq L009F No, move to next device
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 cmpx V$DESC,u Device match?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 beq L00A6 Yes, return Module busy
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 cmpx V$DRIV,u Match driver?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 beq L00A6 Yes, return module busy
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 cmpx V$FMGR,u Match Manager?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 beq L00A6 Yes, return module busy
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 L009F leau DEVSIZ,u Move to next device entry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 decb Done them all?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 bne L008E No, keep goin
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 clrb Clear carry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 rts Return
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 L00A6 comb Set carry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 ldb #E$ModBsy Get error code for module busy
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 rts Return
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 UsrIODis fdb IAttach-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 fdb IDetach-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 fdb UIDup-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 fdb IUsrCall-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 fdb IUsrCall-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 fdb IMakDir-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 fdb IChgDir-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 fdb IDelete-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 fdb UISeek-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 fdb UIRead-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 fdb UIWrite-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 fdb UIRead-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 fdb UIWrite-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 fdb UIGetStt-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 fdb UISeek-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 fdb UIClose-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 fdb IDeletX-UsrIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 SysIODis fdb IAttach-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 fdb IDetach-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 fdb SIDup-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 fdb ISysCall-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 fdb ISysCall-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 fdb IMakDir-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 fdb IChgDir-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 fdb IDelete-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 fdb SISeek-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 fdb SIRead-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 fdb SIWrite-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 fdb SIRead-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 fdb SIWrite-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 fdb SIGetStt-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 fdb SISeek-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 fdb SIClose-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 fdb IDeletX-SysIODis
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
181
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 UsrIO leax <UsrIODis,pcr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 bra L0105
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 SysIO leax <SysIODis,pcr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 L0105 cmpb #I$DeletX
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 bhi L0114
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 pshs b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 lslb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 ldd b,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 leax d,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 puls b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 jmp ,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
193
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 ******************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
195 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
196 * Unknown service code error handler
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
197 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
198
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
199 L0114 comb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 ldb #E$UnkSvc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
201 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
202
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 * Entry: U=Module header pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
204
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 IAttach ldb #$17
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
206 L010B clr ,-s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
207 decb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
208 bpl L010B
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
209 stu <$16,s save caller regs
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
210 lda $01,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
211 sta $09,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
212 ldx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 stx <$14,s save proc desc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
214 leay <P$DATImg,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
215 ldx <D.SysPrc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
216 stx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
217 ldx R$X,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
218 lda #Devic+0
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
219 os9 F$SLink
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
220 bcs L0154
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
221 stu $04,s save pointer to dev desc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
222 ldy <$16,s get caller regs
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
223 stx R$X,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
224 lda M$Port,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
225 sta $0B,s save extended port addr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
226 ldd M$Port+1,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
227 std $0C,s save port addr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
228 ldd M$PDev,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
229 leax d,u point to driver name in desc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
230 lda #Drivr+0
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
231 os9 F$Link link to driver
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
232 bcs L0154
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
233 stu ,s save pointer to driver
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
234 ldu 4,s get dev desc ptr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
235 ldd M$FMgr,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
236 leax d,u point to fmgr name in desc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
237 lda #FlMgr+0
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
238 os9 F$Link
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
239 L0154 ldx <$14,s get proc desc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
240 stx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
241 bcc L0169
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
242 L015B stb <$17,s save error in B on stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
243 leau ,s point U at stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
244 os9 I$Detach detach
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
245 leas <$17,s clean up stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
246 comb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
247 puls pc,b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
248 L0169 stu $06,s save pointer to fmgr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
249 ldx <D.Init
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
250 ldb DevCnt,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
251 lda DevCnt,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
252 ldu <D.DevTbl
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
253 L0173 ldx V$DESC,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
254 beq L01B0
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
255 cmpx 4,s compare to dev desc on stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
256 * bne L018E --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
257 bne L0191 ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
258 ldx V$STAT,u get static
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
259 bne L018C
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
260 pshs a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
261 lda V$USRS,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
262 beq L0188
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
263 os9 F$IOQu
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
264 L0188 puls a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
265 bra L0173
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
266 L018C stu $0E,s save static storage
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
267 L018E ldx V$DESC,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
268 L0191 ldy M$Port+1,x same port?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
269 cmpy $0C,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
270 bne L01B0
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
271 ldy M$Port,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
272 cmpy $0B,s same port?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
273 bne L01B0
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
274 ldx V$DRIV,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
275 cmpx ,s same driver?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
276 bne L01B0
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
277 ldx V$STAT,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
278 stx $02,s save static
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
279 tst V$USRS,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
280 beq L01B0
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
281 sta $0A,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
282 L01B0 leau DEVSIZ,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
283 decb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
284 bne L0173
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
285 ldu $0E,s get static storage
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
286 lbne L020E
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
287 ldu <D.DevTbl
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
288 L01BD ldx V$DESC,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
289 beq L01CE
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
290 leau DEVSIZ,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
291 deca
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
292 bne L01BD
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
293 ldb #E$DevOvf
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
294 bra L015B
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
295 L01CA ldb #E$BMode
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
296 bra L015B
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
297 L01CE ldx $02,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
298 lbne L0205
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
299 stu $0E,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
300 ldx ,s get ptr to driver
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
301 ldd M$Mem,x get driver mem size
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
302 addd #$00FF round to next page
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
303 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
304 os9 F$SRqMem allocate driver mem
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
305 lbcs L015B
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
306 stu $02,s save ptr to mem
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
307 L01E7 clr ,u+ clear driver mem
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
308 subd #$0001
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
309 bhi L01E7
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
310 ldd $0C,s get ???
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
311 ldu $02,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
312 clr ,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
313 std $01,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
314 ldy $04,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
315 ldx ,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
316 ldd $09,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
317 jsr d,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
318 lbcs L015B
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
319 ldu $0E,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
320 L0205 ldb #$08
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
321 L0207 lda b,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
322 sta b,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
323 decb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
324 bpl L0207
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
325 L020E ldx $04,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
326 ldb $07,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
327 lda $09,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
328 anda $0D,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
329 ldx ,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
330 anda $0D,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
331 cmpa $09,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
332 lbne L01CA
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
333 inc $08,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
334 bne L0226
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
335 dec $08,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
336 L0226 ldx <$16,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
337 stu $08,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
338 leas <$18,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
339 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
340 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
341
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
342 IDetach ldu R$U,u get ptr to dev tbl entry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
343 ldx V$DESC,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
344 ldb V$USRS,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
345 bne L0240
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
346 pshs u,b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
347 ldu V$STAT,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
348 pshs u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
349 bra L027C
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
350 L0240 lda #$FF
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
351 cmpa $08,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
352 lbeq L02B7
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
353 dec $08,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
354 lbne L0299
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
355 ldx <D.Init
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
356 ldb DevCnt,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
357 pshs u,b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
358 ldx $02,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
359 clr $02,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
360 clr $03,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
361 ldy <D.DevTbl
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
362 L025D cmpx $02,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
363 beq L028F
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
364 leay $09,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
365 decb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
366 bne L025D
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
367 ldy <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
368 ldb ,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
369 stb $08,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
370 ldy $04,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
371 ldu ,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
372 exg x,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
373 ldd $09,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
374 leax d,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
375 pshs u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
376 jsr $0F,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
377 L027C puls u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
378 ldx $01,s get ptr to dev tbl
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
379 ldx ,x load X with driver addr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
380 ldd M$Mem,x get static storage size
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
381 addd #$00FF round up one page
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
382 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
383 os9 F$SRtMem return mem
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
384 ldx $01,s get ptr to dev tbl
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
385 ldx V$DESC,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
386 L028F puls u,b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
387 ldx $04,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
388 clr $04,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
389 clr $05,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
390 clr $08,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
391 L0299 ldd <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
392 pshs b,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
393 ldd <D.SysPrc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
394 std <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
395 ldy ,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
396 ldu $06,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
397 os9 F$UnLink
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
398 leau ,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
399 os9 F$UnLink
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
400 leau ,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
401 os9 F$UnLink
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
402 puls b,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
403 std <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
404 L02B7 lbsr L0556
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
405 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
406 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
407
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
408 UIDup bsr LocFrPth
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
409 bcs L02DC
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
410 pshs x,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
411 lda R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
412 lda a,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
413 bsr L02D5
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
414 bcs L02D1
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
415 puls x,b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
416 stb R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
417 sta b,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
418 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
419 L02D1 puls pc,x,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
420
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
421 SIDup lda R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
422 L02D5 lbsr GetPDesc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
423 bcs L02DC
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
424 inc PD.CNT,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
425 L02DC rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
426
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
427 * Locate a free path in D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
428 LocFrPth ldx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
429 leax <P$Path,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
430 clra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
431 L02E3 tst a,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
432 beq L02F0
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
433 inca
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
434 cmpa #Numpaths
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
435 bcs L02E3
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
436 comb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
437 ldb #E$PthFul
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
438 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
439 L02F0 andcc #^Carry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
440 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
441
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
442 IUsrCall bsr LocFrPth
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
443 bcs L0305
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
444 pshs u,x,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
445 bsr ISysCall
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
446 puls u,x,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
447 bcs L0305
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
448 ldb R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
449 stb a,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
450 sta R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
451 L0305 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
452
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
453 ISysCall pshs b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
454 ldb R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
455 bsr AllcPDsc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
456 bcs L031A
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
457 puls b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
458 lbsr CallFMgr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
459 bcs L0329
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
460 lda PD.PD,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
461 sta R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
462 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
463 L031A puls pc,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
464
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
465 IMakDir pshs b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
466 ldb #DIR.!WRITE.
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
467 L0320 bsr AllcPDsc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
468 bcs L031A
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
469 puls b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
470 lbsr CallFMgr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
471 L0329 pshs b,cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
472 ldu PD.DEV,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
473 os9 I$Detach
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
474 lda PD.PD,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
475 ldx <D.PthDBT
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
476 os9 F$Ret64
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
477 puls pc,b,cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
478
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
479 IChgDir pshs b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
480 ldb R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
481 orb #DIR.
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
482 bsr AllcPDsc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
483 bcs L031A
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
484 puls b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
485 lbsr CallFMgr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
486 bcs L0329
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
487 ldu <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
488 ldb PD.MOD,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
489 bitb #PWRIT.+PREAD.+WRITE.+READ.
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
490 beq IChgExec
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
491 ldx PD.DEV,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
492 stx <P$DIO,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
493 inc V$USRS,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
494 bne IChgExec
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
495 dec V$USRS,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
496 IChgExec bitb #PEXEC.+EXEC.
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
497 beq IChgRts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
498 ldx PD.DEV,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
499 stx <P$DIO+6,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
500 inc V$USRS,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
501 bne IChgRts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
502 dec V$USRS,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
503 IChgRts clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
504 bra L0329
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
505
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
506 IDelete pshs b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
507 ldb #WRITE.
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
508 bra L0320
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
509
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
510 IDeletX ldb #DIR.+EXEC.+UPDAT.
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
511 pshs b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
512 ldb R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
513 bra L0320
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
514
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
515 * allocate path descriptor
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
516 AllcPDsc ldx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
517 pshs u,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
518 ldx <D.PthDBT
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
519 os9 F$All64
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
520 bcs L03E9
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
521 inc PD.CNT,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
522 stb PD.MOD,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
523 ldx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
524 ldb P$Task,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
525 ldx R$X,u X points to pathlist
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
526 L0392 os9 F$LDABX
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
527 leax 1,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
528 cmpa #C$SPAC skip over spaces
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
529 beq L0392
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
530 leax -$01,x back up
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
531 stx R$X,u save back pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
532 * ldb PD.MOD,y moved down --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
533 cmpa #PDELIM leading slash?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
534 beq L03BF yep...
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
535 ldb PD.MOD,y ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
536 ldx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
537 bitb #EXEC. exec. dir relative?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
538 beq L03B0 nope...
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
539 ldx <P$DIO+6,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
540 bra L03B3
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
541 L03B0 ldx <P$DIO,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
542 L03B3 beq L03EE
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
543 ldd <D.SysPrc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
544 std <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
545 ldx $04,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
546 ldd $04,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
547 leax d,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
548 L03BF pshs y save off path desc ptr in Y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
549 os9 F$PrsNam
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
550 puls y restore path desc ptr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
551 bcs L03EE
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
552 lda PD.MOD,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
553 os9 I$Attach attach to device
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
554 stu PD.DEV,y save dev tbl entry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
555 bcs L03F0
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
556 ldx V$DESC,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
557 * copy options from dev desc to path desc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
558 leax <M$Opt,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
559 ldb ,x+ get options count
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
560 leau <PD.OPT,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
561 cmpb #$20
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
562 bls L03E5
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
563 ldb #$1F
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
564 L03E1 lda ,x+
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
565 sta ,u+
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
566 L03E5 decb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
567 bpl L03E1
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
568 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
569 L03E9 puls u,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
570 stx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
571 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
572
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
573 L03EE ldb #E$BPNam
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
574 L03F0 pshs b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
575 lda ,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
576 ldx <D.PthDBT
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
577 os9 F$Ret64
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
578 puls b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
579 coma
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
580 bra L03E9
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
581
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
582 * System to User Path routine
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
583 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
584 * Returns:
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
585 * A = user path #
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
586 * X = path table in path desc. of current proc.
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
587 S2UPth lda R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
588 cmpa #NumPaths
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
589 bcc L040F illegal path number
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
590 ldx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
591 leax <P$Path,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
592 andcc #^Carry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
593 lda a,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
594 bne L0412
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
595 L040F comb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
596 ldb #E$BPNum
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
597 L0412 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
598
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
599 UISeek bsr S2UPth get user path #
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
600 bcc GtPDClFM get PD, call FM
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
601 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
602
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
603 SISeek lda R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
604 GtPDClFM bsr GetPDesc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
605 lbcc CallFMgr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
606 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
607
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
608 UIRead bsr S2UPth get user path #
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
609 bcc L0428
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
610 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
611
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
612 SIRead lda R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
613 L0428 pshs b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
614 ldb #EXEC.+READ.
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
615 L042C bsr GetPDesc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
616 bcs L0479
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
617 bitb PD.MOD,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
618 beq L0477
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
619 ldd R$Y,u get count from user
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
620 beq L0466
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
621 addd R$X,u update buffer pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
622 bcs L046B
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
623 subd #$0001 subtract 1 from count
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
624 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
625 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
626 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
627 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
628 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
629 ldb R$X,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
630 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
631 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
632 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
633 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
634 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
635 pshs b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
636 suba ,s+
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
637 ldx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
638 leax <P$DATImg,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
639 lslb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
640 * leax b,x --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
641 abx ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
642 L0457 pshs a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
643 ldd ,x++
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
644 cmpd #$333E
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
645 puls a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
646 beq L046B
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
647 deca
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
648 bpl L0457
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
649 L0466 puls b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
650 lbra CallFMgr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
651 L046B ldb #E$Read
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
652 lda ,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
653 bita #READ.
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
654 bne L0479
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
655 ldb #E$Write
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
656 bra L0479
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
657 L0477 ldb #E$BMode
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
658 L0479 com ,s+
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
659 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
660
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
661 UIWrite bsr S2UPth get user path #
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
662 bcc L0483
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
663 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
664
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
665 SIWrite lda R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
666 L0483 pshs b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
667 ldb #WRITE.
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
668 bra L042C
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
669
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
670 * get path descriptor
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
671 * Passed: A = path number
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
672 * Returned: Y = address of path desc for path num
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
673 GetPDesc pshs x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
674 ldx <D.PthDBT
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
675 os9 F$Find64
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
676 puls x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
677 lbcs L040F
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
678 L0496 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
679
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
680 UIGetStt lbsr S2UPth get user path #
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
681 ldx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
682 bcc L04A3
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
683 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
684
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
685 SIGetStt lda R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
686 ldx <D.SysPrc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
687 L04A3 pshs x,b,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
688 lda R$B,u get func code
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
689 sta 1,s place func code on stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
690 puls a get path off stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
691 lbsr GtPDClFM
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
692 puls x,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
693 pshs u,y,b,cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
694 ldb <$20,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
695 cmpb #$04
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
696 beq L04C0
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
697 tsta SS.Opt?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
698 beq L04C2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
699 cmpa #SS.DevNm
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
700 beq SSDevNm
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
701 L04C0 puls pc,u,y,b,cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
702 L04C2 lda <D.SysTsk
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
703 ldb P$Task,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
704 leax <PD.OPT,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
705 SSCopy ldy #32
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
706 ldu R$X,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
707 os9 F$Move
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
708 leas 2,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
709 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
710 puls pc,u,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
711
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
712 SSDevNm lda <D.SysTsk
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
713 ldb P$Task,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
714 pshs b,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
715 ldx PD.DEV,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
716 ldx V$DESC,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
717 ldd M$Name,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
718 leax d,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
719 puls b,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
720 bra SSCopy
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
721
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
722 UIClose lbsr S2UPth get user path #
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
723 bcs L0496
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
724 pshs b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
725 ldb R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
726 clr b,x zero path entry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
727 puls b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
728 bra L04FA
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
729
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
730 SIClose lda R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
731 L04FA bsr GetPDesc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
732 bcs L0496
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
733 dec PD.CNT,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
734 tst PD.CPR,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
735 bne L0506
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
736 bsr CallFMgr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
737 L0506 tst PD.CNT,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
738 bne L0496
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
739 lbra L0329
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
740 L050D os9 F$IOQu
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
741 comb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
742 ldb <$19,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
743 bne L0521
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
744 L0516 ldx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
745 ldb P$ID,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
746 clra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
747 lda PD.CPR,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
748 bne L050D
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
749 stb PD.CPR,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
750 L0521 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
751
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
752 CallFMgr pshs u,y,x,b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
753 bsr L0516
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
754 bcs L053E
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
755 stu PD.RGS,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
756 lda <$20,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
757 ldx PD.DEV,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
758 ldx V$FMGR,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
759 ldd M$Exec,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
760 leax d,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
761 ldb ,s get B off stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
762 subb #$83
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
763 lda #$03
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
764 mul
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
765 jsr d,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
766 L053E pshs b,cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
767 bsr L0556
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
768 ldy $05,s get Y off stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
769 lda <$20,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
770 ldx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
771 lda P$ID,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
772 cmpa PD.CPR,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
773 bne L0552
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
774 clr PD.CPR,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
775 L0552 puls b,cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
776 puls pc,u,y,x,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
777 *L0556 pshs y,x --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
778 L0556 pshs y ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
779 ldy <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
780 lda <P$IOQN,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
781 beq L056D
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
782 clr <P$IOQN,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
783 ldb #S$Wake
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
784 os9 F$Send
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
785 os9 F$GProcP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
786 clr P$IOQP,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
787 L056D clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
788 * puls pc,y,x --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
789 puls pc,y ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
790
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
791 FIRQ ldx R$X,u get ptr to IRQ packet
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
792 ldb ,x get flip byte
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
793 ldx 1,x get mask/priority byte
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
794 clra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
795 pshs cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
796 pshs x,b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
797 ldx <D.Init
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
798 ldb PollCnt,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
799 ldx <D.PolTbl
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
800 ldy R$X,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
801 beq L05C1
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
802 tst $01,s test mask byte on stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
803 beq L05EC
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
804 decb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
805 lda #POLSIZ
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
806 mul
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
807 leax d,x point to last entry in table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
808 lda Q$MASK,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
809 bne L05EC
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
810 orcc #IntMasks
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
811 L0596 ldb $02,s get priority byte on stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
812 cmpb -$01,x compare to priority of prev entry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
813 bcs L05A9
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
814 ldb #$09
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
815 L059E lda ,-x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
816 sta $09,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
817 decb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
818 bne L059E
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
819 cmpx <D.PolTbl
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
820 bhi L0596
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
821 L05A9 ldd R$D,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
822 std Q$POLL,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
823 ldd ,s++ get flip/byte off stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
824 sta Q$FLIP,x store flip
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
825 stb Q$MASK,x store mask
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
826 ldb ,s+ get priority off stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
827 stb Q$PRTY,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
828 ldd R$Y,u get IRQ SVC entry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
829 std Q$SERV,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
830 ldd R$U,u get IRQ static storage ptr
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
831 std Q$STAT,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
832 puls pc,cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
833 * Remove the ISR
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
834 L05C1 leas $04,s clean up stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
835 ldy R$U,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
836 L05C6 cmpy Q$STAT,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
837 beq L05D2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
838 leax POLSIZ,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
839 decb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
840 bne L05C6
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
841 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
842 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
843 L05D2 pshs b,cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
844 orcc #IntMasks
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
845 bra L05DF
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
846 * Move prev poll entry up one
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
847 L05D8 ldb POLSIZ,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
848 stb ,x+
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
849 deca
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
850 bne L05D8
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
851 L05DF lda #POLSIZ
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
852 dec 1,s dec poll count on stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
853 bne L05D8
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
854 L05E5 clr ,x+
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
855 deca
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
856 bne L05E5
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
857 puls pc,a,cc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
858 L05EC leas $04,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
859 L05EE comb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
860 ldb #E$Poll
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
861 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
862
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
863 ******************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
864 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
865 * Device polling routine
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
866 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
867 * Entry: None
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
868 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
869
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
870 L05F2 ldy <D.PolTbl Get pointer to polling table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
871 ldx <D.Init Get pointer to init module
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
872 ldb PollCnt,x Get number of entries in table
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
873 bra L0600 Get check em
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
874 L05FB leay POLSIZ,y Move to next entry
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
875 decb Done?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
876 beq L05EE Yep, exit with polling table full error
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
877 L0600 lda [Q$POLL,y] Get device's status register
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
878 eora 2,y Flip it
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
879 bita 3,y Origin of IRQ?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
880 beq L05FB No, go to next device
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
881 ldu Q$STAT,y Get device static storage
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
882 pshs y,b Preserve device # & poll address
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
883 jsr [Q$SERV,y] Execute service routine
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
884 puls y,b Restore device # & poll address
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
885 bcs L05FB Go to next device if error
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
886 rts Return
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
887
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
888 FNMLoad pshs u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
889 ldx R$X,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
890 lbsr L06B5
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
891 bcs L066C
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
892 ldy ,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
893 stx $04,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
894 ldy ,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
895 ldx $04,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
896 ldd #$0006
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
897 os9 F$LDDDXY
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
898 * minor optimization
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
899 * puls y --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
900 * exg y,u --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
901 leay ,u ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
902 puls u ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
903 bra L0649
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
904
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
905 FNMLink ldx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
906 leay <P$DATImg,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
907 pshs u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
908 ldx R$X,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
909 lda R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
910 os9 F$FModul
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
911 bcs L066C
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
912 leay ,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
913 puls u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
914 stx R$X,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
915 L0649 std R$D,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
916 ldx $06,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
917 beq L0653
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
918 bitb #$80
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
919 beq L0669
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
920 L0653 leax $01,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
921 beq L0659
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
922 stx $06,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
923 L0659 ldx $04,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
924 ldy ,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
925 ldd #$000B
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
926 os9 F$LDDDXY
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
927 bcs L0668
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
928 std $06,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
929 L0668 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
930 L0669 comb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
931 ldb #E$ModBsy
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
932 L066C puls pc,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
933
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
934 ******************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
935 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
936 * F$Load Entry point
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
937 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
938 * Entry: U = Callers register stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
939 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
940
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
941 FLoad pshs u Save register stack pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
942 ldx R$X,u Get pointer to pathname
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
943 bsr L06B5 Aloocate a process descriptor
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
944 bcs L0699 Exit if error
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
945 puls y Restore register stack pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
946 L0678 pshs y Preserve Y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
947 stx R$X,y Update pathname pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
948 ldy ,u Get DAT Image pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
949 ldx $04,u Get offset within the DAT image
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
950 ldd #$0006 Get offset to the offset
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
951 os9 F$LDDDXY Get language & type
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
952 ldx ,s Get register pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
953 std R$D,x Update language/type codes
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
954 leax ,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
955 os9 F$ELink
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
956 bcs L0699
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
957 ldx ,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
958 sty $06,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
959 stu $08,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
960 L0699 puls pc,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
961
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
962 IDetach0 pshs u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
963 ldx R$X,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
964 bsr L06B5
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
965 bcs L06B3
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
966 puls y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
967 ldd <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
968 pshs y,b,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
969 ldd $08,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
970 std <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
971 bsr L0678
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
972 puls x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
973 stx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
974 L06B3 puls pc,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
975 L06B5 os9 F$AllPrc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
976 bcc L06BB
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
977 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
978
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
979 L06BB leay ,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
980 ldu #$0000
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
981 pshs u,y,x,b,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
982 leas <-$11,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
983 clr $07,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
984 stu ,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
985 stu $02,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
986 ldu <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
987 stu $04,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
988 clr $06,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
989 lda $0A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
990 sta $0A,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
991 sta $0B,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
992 lda #EXEC.
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
993 os9 I$Open
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
994 lbcs L0770
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
995 sta $06,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
996 stx <$13,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
997 ldx <$15,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
998 os9 F$AllTsk
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
999 lbcs L0770
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1000 stx <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1001 L06F1 ldx <$15,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1002 lda $0A,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1003 adda #$08
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1004 bcc L06FC
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1005 lda #$FF
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1006 L06FC sta $0A,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1007 sta $0B,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1008 ldd #$0009
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1009 ldx $02,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1010 lbsr L07F7
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1011 bcs L0770
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1012 ldu <$15,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1013 lda $06,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1014 ldb <D.SysTsk
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1015 leau $08,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1016 pshs x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1017 ldx $04,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1018 os9 F$Move
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1019 puls x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1020 ldd ,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1021 cmpd #M$ID12
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1022 bne L076E
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1023 ldd $02,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1024 subd #$0009
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1025 lbsr L07F7
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1026 bcs L0770
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1027 ldx $04,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1028 lda $0A,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1029 ldy <$15,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1030 sta $0A,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1031 sta $0B,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1032 leay <$40,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1033 tfr y,d
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1034 ldx $02,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1035 os9 F$VModul
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1036 bcc L074C
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1037 cmpb #$E7
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1038 beq L0752
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1039 bra L0770
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1040 L074C ldd $02,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1041 addd $0A,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1042 std $02,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1043 L0752 ldd <$17,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1044 bne L06F1
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1045 ldd $04,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1046 std <$11,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1047 * ldx ,u --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1048 * ldd ,x --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1049 ldd [,u] ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1050 std <$17,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1051 ldd $06,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1052 addd #$0001
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1053 beq L06F1
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1054 std $06,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1055 bra L06F1
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1056 L076E ldb #$CD
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1057 L0770 stb $07,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1058 ldd $04,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1059 beq L0778
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1060 std <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1061 L0778 lda $06,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1062 beq L077F
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1063 os9 I$Close
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1064 L077F ldd $02,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1065 addd #$1FFF
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1066 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1067 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1068 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1069 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1070 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1071 sta $02,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1072 ldb ,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1073 beq L07AE
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1074 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1075 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1076 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1077 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1078 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1079 subb $02,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1080 beq L07AE
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1081 ldx <$15,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1082 leax <$40,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1083 lsla
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1084 leax a,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1085 clra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1086 tfr d,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1087 ldu <D.BlkMap
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1088 L07A6 ldd ,x++
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1089 clr d,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1090 leay -$01,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1091 bne L07A6
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1092 L07AE ldx <$15,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1093 lda ,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1094 os9 F$DelPrc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1095 ldd <$17,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1096 bne L07C3
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1097 ldb $07,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1098 stb <$12,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1099 comb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1100 bra L07F2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1101 L07C3 ldu <D.ModDir
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1102 ldx <$11,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1103 ldd <$17,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1104 leau -$08,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1105 L07CD leau $08,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1106 cmpu <D.ModEnd
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1107 bcs L07DC
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1108 comb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1109 ldb #$DD
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1110 stb <$12,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1111 bra L07F2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1112 L07DC cmpx $04,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1113 bne L07CD
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1114 cmpd [,u]
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1115 bne L07CD
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1116 ldd $06,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1117 beq L07EE
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1118 subd #$0001
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1119 std $06,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1120 L07EE stu <$17,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1121 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1122 L07F2 leas <$11,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1123 puls pc,u,y,x,b,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1124 L07F7 pshs y,x,b,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1125 addd $02,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1126 std $04,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1127 cmpd $08,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1128 bls L0858
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1129 addd #$1FFF
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1130 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1131 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1132 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1133 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1134 lsra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1135 cmpa #$07
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1136 bhi L0838
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1137 ldb $08,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1138 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1139 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1140 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1141 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1142 lsrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1143 pshs b
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1144 exg b,a
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1145 subb ,s+
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1146 lsla
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1147 ldu <$1D,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1148 leau <$40,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1149 leau a,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1150 clra
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1151 tfr d,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1152 ldy <D.BlkMap
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1153 * clra --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1154 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1155 L082C tst ,y+
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1156 beq L083D
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1157 L0830 addd #$0001
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1158 cmpy <D.BlkMap+2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1159 bne L082C
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1160 L0838 comb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1161 ldb #E$MemFul
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1162 bra L0862
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1163 L083D inc -$01,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1164 std ,u++
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1165 * pshs b,a --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1166 * ldd $0A,s --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1167 * addd #$2000 --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1168 * std $0A,s --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1169 * puls b,a --BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1170 pshs a ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1171 lda 9,s ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1172 adda #$20 ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1173 sta 9,s ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1174 puls a ++BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1175 leax -1,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1176 bne L0830
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1177 ldx <$1D,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1178 os9 F$SetTsk
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1179 bcs L0862
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1180 L0858 lda $0E,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1181 ldx $02,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1182 ldy ,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1183 os9 I$Read
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1184 L0862 leas $04,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1185 puls pc,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1186
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1187 ******************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1188 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1189 * F$PErr System call entry point
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1190 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1191 * Entry: U = Register stack pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1192 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1193
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1194 ErrMess fcc /ERROR #/
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1195 fcb $2F,$3A,$30
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1196 fcb C$CR
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1197 ErrMessL equ *-Errmess
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1198
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1199 FPErr ldx <D.Proc Get current process pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1200 lda <P$Path+2,x Get standard error path
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1201 beq L08B8 Return if not there
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1202 leas -ErrMessL,s Make a buffer on the stack
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1203 leax <ErrMess,pcr Point to error text
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1204 leay ,s Point to buffer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1205 L087F lda ,x+ Get a byte
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1206 sta ,y+ Store it
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1207 cmpa #C$CR Done?
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1208 bne L087F No, keep goin
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1209 ldb R$B,u Get error code
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1210
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1211 * Convert error code to decimal
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1212
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1213 L0889 inc 7,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1214 subb #$64
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1215 bcc L0889
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1216 L088F dec $08,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1217 addb #$0A
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1218 bcc L088F
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1219 addb #$30
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1220 stb $09,s
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1221
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1222 ldx <D.Proc Get current process pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1223 ldu P$SP,x Get the stack pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1224 leau -ErrMessL,u Put a buffer on it
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1225 lda <D.SysTsk Get system task number
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1226 ldb P$Task,x Get task number of process
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1227 leax ,s Point to error text
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1228 ldy #ErrMessL Get length of text
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1229 L08A9 os9 F$Move Move it to the process
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1230 leax ,u Point to the moved text
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1231 ldu <D.Proc Get process pointer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1232 lda <P$Path+2,u Get path number
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1233 os9 I$WritLn Write the text
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1234 leas ErrMessL,s Purge the buffer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1235 L08B8 rts Return
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1236
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1237 FIOQu ldy <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1238 L08BC lda <P$IOQN,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1239 beq L08DF
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1240 cmpa R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1241 bne L08DA
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1242 clr <P$IOQN,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1243 os9 F$GProcP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1244 lbcs L093F
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1245 clr $0F,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1246 ldb #S$Wake
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1247 os9 F$Send
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1248 ldu <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1249 bra L08E8
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1250 L08DA os9 F$GProcP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1251 bcc L08BC
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1252 L08DF lda R$A,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1253 ldu <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1254 os9 F$GProcP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1255 bcs L093F
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1256 L08E8 leax ,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1257 lda <P$IOQN,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1258 beq L090A
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1259 os9 F$GProcP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1260 bcs L093F
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1261 ldb P$Age,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1262 cmpb P$Age,y minor queue sort bug fixed - BGP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1263 bls L08E8
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1264 ldb P$ID,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1265 stb <P$IOQN,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1266 ldb P$ID,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1267 stb P$IOQP,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1268 clr P$IOQP,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1269 exg y,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1270 bra L08E8
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1271 L090A lda P$ID,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1272 sta <P$IOQN,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1273 lda P$ID,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1274 sta P$IOQP,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1275 ldx #$0000
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1276 os9 F$Sleep
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1277 ldu <D.Proc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1278 lda P$IOQP,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1279 beq L093D
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1280 os9 F$GProcP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1281 bcs L093D
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1282 lda <P$IOQN,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1283 beq L093D
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1284 lda <P$IOQN,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1285 sta <P$IOQN,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1286 beq L093D
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1287 clr <P$IOQN,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1288 os9 F$GProcP
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1289 bcs L093D
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1290 lda P$IOQP,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1291 sta P$IOQP,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1292 L093D clr P$IOQP,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1293 L093F rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1294
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1295 emod
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1296 eom equ *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1297 end
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1298