annotate level1/modules/ioman.asm @ 238:d6c4f9985571

We can now build a Dragon 64 kernel
author roug
date Thu, 18 Jul 2002 19:46:07 +0000
parents 668388823050
children 762792d92c57
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1 ********************************************************************
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2 * IOMan - OS-9 Level One V2 I/O Manager module
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
4 * $Id$
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
5 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
6 * Ed. Comments Who YY/MM/DD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
7 * ------------------------------------------------------------------
201
668388823050 Fixed headers to be consistent
boisy
parents: 79
diff changeset
8 * 11 From Tandy OS-9 Level One VR 02.00.00
668388823050 Fixed headers to be consistent
boisy
parents: 79
diff changeset
9 * 12 I/O Queue sort bug and I$Attach static storage BGP 02/05/11
75
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
10 * premature deallocation bug fixed
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
11
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
12 nam IOMan
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
13 ttl OS-9 Level One V2 I/O Manager module
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
14
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
15 ifp1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
16 use defsfile
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
17 endc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
18
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
19 tylg set Systm+Objct
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
20 atrv set ReEnt+rev
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
21 rev set $01
75
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
22 * edition 11 = Stock OS-9 Level One Vr. 2.00 IOMan
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
23 * edition 12 = IO Queue sort bug fixed, IAttach bug fixed
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
24 edition equ 12
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
25
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
26 mod eom,name,tylg,atrv,IOManEnt,size
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
27
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
28 size equ .
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
29
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
30 name fcs /IOMan/
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
31 fcb edition
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
32
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
33 * IOMan is called from OS9p2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
34 IOManEnt equ *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
35 * allocate device and polling tables
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
36 ldx <D.Init get pointer to init module
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
37 lda PollCnt,x grab number of polling entries
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
38 ldb #POLSIZ and size per entry
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
39 mul D = size of all entries in bytes
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
40 pshs b,a save off
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
41 lda DevCnt,x get device table count in init mod
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
42 ldb #DEVSIZ get size per dev table entry
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
43 mul D = size of all entires in bytes
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
44 pshs b,a save off
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
45 addd 2,s add devsize to polsiz
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
46 addd #$0018 add in ???
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
47 addd #$00FF bring up to next page
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
48 clrb
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
49 os9 F$SRqMem ask for the memory
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
50 bcs Crash crash if we can't get it
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
51 * clear allocated mem
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
52 leax ,u point to dev table
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
53 L0033 clr ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
54 subd #$0001
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
55 bhi L0033
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
56 stu <D.PolTbl U = pointer to polling table
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
57 ldd ,s++ get dev table size
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
58 leax d,u point X past polling table to dev table
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
59 stx <D.DevTbl save off X to system vars
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
60 addd ,s++ grab poll table size
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
61 leax d,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
62 stx <D.CLTB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
63 ldx <D.PthDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
64 os9 F$All64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
65 bcs Crash
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
66 stx <D.PthDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
67 os9 F$Ret64
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
68 leax >DPoll,pcr get address of IRQ poll routine
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
69 stx <D.Poll save in statics
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
70 * install I/O system calls
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
71 leay <IOCalls,pcr point to I/O calls
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
72 os9 F$SSvc install them
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
73 rts return to OS9p2
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
74
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
75 Crash jmp [>$FFFE]
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
76
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
77 IOCalls fcb $7F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
78 fdb UsrIO-*-2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
79
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
80 fcb F$Load
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
81 fdb FLoad-*-2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
82
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
83 fcb F$PErr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
84 fdb FPErr-*-2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
85
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
86 fcb F$IOQu+$80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
87 fdb FIOQu-*-2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
88
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
89 fcb $FF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
90 fdb SysIO-*-2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
91
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
92 fcb F$IRQ+$80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
93 fdb FIRQ-*-2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
94
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
95 fcb F$IODel+$80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
96 fdb FIODel-*-2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
97
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
98 fcb $80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
99
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
100 FIODel ldx R$X,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
101 ldu <D.Init
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
102 ldb DevCnt,u get device count
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
103 ldu <D.DevTbl
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
104 L0083 ldy V$DESC,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
105 beq L0094
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
106 cmpx V$DESC,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
107 beq L009B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
108 cmpx V$DRIV,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
109 beq L009B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
110 cmpx V$FMGR,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
111 beq L009B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
112 L0094 leau DEVSIZ,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
113 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
114 bne L0083
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
115 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
116 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
117 L009B comb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
118 ldb #E$ModBsy
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
119 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
120
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
121 UsrIODis fdb IAttach-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
122 fdb IDetach-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
123 fdb IDup-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
124 fdb IUsrCall-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
125 fdb IUsrCall-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
126 fdb IMakDir-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
127 fdb IChgDir-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
128 fdb IDelete-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
129 fdb UISeek-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
130 fdb UIRead-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
131 fdb UIWrite-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
132 fdb UIRead-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
133 fdb UIWrite-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
134 fdb UIGetStt-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
135 fdb UISeek-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
136 fdb UIClose-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
137 fdb IDeletX-UsrIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
138
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
139 SysIODis fdb IAttach-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
140 fdb IDetach-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
141 fdb SIDup-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
142 fdb ISysCall-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
143 fdb ISysCall-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
144 fdb IMakDir-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
145 fdb IChgDir-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
146 fdb IDelete-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
147 fdb SISeek-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
148 fdb SIRead-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
149 fdb SIWrite-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
150 fdb SIRead-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
151 fdb SIWrite-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
152 fdb SIGetStt-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
153 fdb SISeek-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
154 fdb SIClose-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
155 fdb IDeletX-SysIODis
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
156
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
157
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
158 * Entry to User and System I/O dispatch table
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
159 * B = I/O system call code
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
160 UsrIO leax <UsrIODis,pcr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
161 bra IODsptch
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
162 SysIO leax <SysIODis,pcr
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
163 IODsptch cmpb #I$DeletX compare with last I/O call
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
164 bhi L00FA branch if greater
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
165 pshs b
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
166 lslb multiply by 2
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
167 ldd b,x offset
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
168 leax d,x get address of routine
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
169 puls b
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
170 jmp ,x jump to it!
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
171 L00FA comb we get here if illegal I/O code
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
172 ldb #E$UnkSvc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
173 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
174
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
175 IAttach ldb #$11
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
176 L0100 clr ,-s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
177 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
178 bpl L0100
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
179 stu <$10,s caller regs
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
180 lda R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
181 sta $09,s device mode
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
182 ldx R$X,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
183 lda #Devic+0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
184 os9 F$Link link to device desc.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
185 bcs L0139
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
186 stu $04,s address of mod hdr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
187 ldy <$10,s get caller regs
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
188 stx R$X,y save updated ptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
189 ldd M$Port+1,u get port addr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
190 std $0C,s save on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
191 ldd M$PDev,u get driver name
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
192 leax d,u point X to driver name
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
193 lda #Drivr+0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
194 os9 F$Link link to driver
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
195 bcs L0139
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
196 stu ,s save driver addr on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
197 ldu $04,s get addr of dev desc.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
198 ldd M$FMgr,u get file mgr name
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
199 leax d,u point X to fmgr name
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
200 lda #FlMgr+0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
201 os9 F$Link link to fmgr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
202 L0139 bcc L0149
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
203 * error on attach, so detach
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
204 L013B stb <$11,s save fmgr addr on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
205 leau ,s point U to S
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
206 os9 I$Detach
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
207 leas <$11,s clean up stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
208 comb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
209 puls pc,b return to caller
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
210 L0149 stu $06,s save fmgr addr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
211 ldx <D.Init
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
212 ldb DevCnt,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
213 lda DevCnt,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
214 ldu D.DevTbl
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
215 L0153 ldx V$DESC,u get desc addr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
216 beq L0188
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
217 cmpx $04,s same?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
218 bne L016E branch if not
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
219 ldx V$STAT,u get stat
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
220 bne L016C branch if zero
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
221 pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
222 lda V$USRS,u get user count
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
223 beq L0168
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
224 os9 F$IOQu
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
225 L0168 puls a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
226 bra L0153
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
227 L016C stu $0E,s save dev entry on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
228 L016E ldx V$DESC,u get dev desc ptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
229 ldy M$Port+1,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
230 cmpy $0C,s compare to port addr on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
231 bne L0188
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
232 ldx V$DRIV,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
233 cmpx ,s compare to driver addr on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
234 bne L0188
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
235 ldx V$STAT,u get static
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
236 stx $02,s save static on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
237 tst V$USRS,u test user count
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
238 beq L0188 branch if zero
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
239 sta $0A,s store on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
240 L0188 leau DEVSIZ,u go to next entry
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
241 decb decrement count
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
242 bne L0153 go back to loop if not zero
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
243 ldu $0E,s get dev entry off stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
244 lbne L01E6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
245 ldu D.DevTbl
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
246 L0195 ldx V$DESC,u get dev desc ptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
247 beq L01A6 branch if zero
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
248 leau DEVSIZ,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
249 deca
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
250 bne L0195 continue loop
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
251 ldb #E$DevOvf device table overflow
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
252 bra L013B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
253 L01A2 ldb #E$BMode bad mode
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
254 bra L013B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
255 L01A6 ldx $02,s get static storage off stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
256 lbne L01DD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
257 stu $0E,s save off dev entry on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
258 ldx ,s get driver addr off stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
259 ldd M$Mem,x get memory requirement
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
260 addd #$00FF round up to next page
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
261 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
262 os9 F$SRqMem
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
263 lbcs L013B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
264 stu $02,s save off on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
265 L01BF clr ,u+ clear static mem
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
266 subd #$0001
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
267 bhi L01BF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
268 ldd $0C,s get port addr off stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
269 ldu $02,s get static storage ptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
270 clr V.PAGE,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
271 std V.PORT,u save addr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
272 ldy $04,s get dev desc addr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
273 ldx ,s get driver addr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
274 ldd M$Exec,x get driver exec
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
275 jsr d,x call Init routine
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
276 lbcs L013B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
277 ldu $0E,s get dev entry
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
278 L01DD ldb #$08 copy 8 bytes from stack to dev entry
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
279 L01DF lda b,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
280 sta b,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
281 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
282 bpl L01DF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
283 L01E6 ldx V$DESC,u get dev desc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
284 ldb M$Revs,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
285 lda $09,s get device mode off stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
286 anda M$Mode,x AND mode with desc mode
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
287 ldx V$DRIV,u get driver ptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
288 anda M$Mode,x AND mode with driver mode
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
289 cmpa $09,s compare with passed mode
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
290 lbne L01A2 branch if error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
291 inc V$USRS,u else inc user count of dev entry
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
292 bne L01FE branch if not overflow from 255->0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
293 dec V$USRS,u else dec
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
294 L01FE ldx <$10,s get caller regs
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
295 stu R$U,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
296 leas <$12,s restore stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
297 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
298 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
299
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
300 IDetach ldu R$U,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
301 ldx V$DESC,u
75
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
302 IFEQ edition-11
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
303 * Note: the following lines constitute a bug that can, in certain
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
304 * circumstances, wipe out a device's static storage out from
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
305 * underneath it.
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
306 ldb V$USRS,u get user count
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
307 bne L0218 branch if not zero
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
308 pshs u,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
309 ldu V$STAT,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
310 pshs u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
311 bra L0254
75
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
312 ELSE
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
313 tst V$USRS,u
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
314 beq IDetach2
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
315 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
316 L0218 lda #255
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
317 cmpa V$USRS,u 255 users?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
318 lbeq L0283 branch if so
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
319 dec V$USRS,u else dec user count
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
320 lbne L0271 branch if dec not 0
75
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
321 IDetach2
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
322 ldx <D.Init
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
323 ldb DevCnt,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
324 pshs u,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
325 ldx V$STAT,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
326 clr V$STAT,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
327 clr V$STAT+1,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
328 ldy <D.DevTbl
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
329 L0235 cmpx V$STAT,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
330 beq L0267
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
331 leay DEVSIZ,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
332 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
333 bne L0235
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
334 ldy <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
335 ldb P$ID,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
336 stb V$USRS,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
337 ldy V$DESC,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
338 ldu V$DRIV,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
339 exg x,u X pts to driver, U pts to static
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
340 ldd M$Exec,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
341 leax d,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
342 pshs u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
343 jsr $0F,x call term routine
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
344 L0254 puls u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
345 ldx 1,s get U from stack (dev entry to detach)
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
346 ldx V$DRIV,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
347 ldd M$Mem,x get memory requirements
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
348 addd #$00FF round up to next page
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
349 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
350 os9 F$SRtMem return mem
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
351 ldx 1,s get U from stack (dev entry to detach)
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
352 ldx V$DESC,x get dev desc ptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
353 L0267 puls u,b get U,B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
354 ldx V$DESC,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
355 clr V$DESC,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
356 clr V$DESC+1,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
357 clr V$USRS,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
358 L0271 ldy V$DRIV,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
359 ldu V$FMGR,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
360 os9 F$UnLink unlink file manager
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
361 leau ,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
362 os9 F$UnLink unlink driver
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
363 leau ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
364 os9 F$UnLink unlink descriptor
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
365 L0283 lbsr L04D9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
366 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
367 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
368
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
369 * user state I$Dup
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
370 IDup bsr FindPath look for a free path
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
371 bcs IDupRTS branch if error
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
372 pshs x,a else save of
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
373 lda R$A,u get path to dup
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
374 lda a,x point to path to dup
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
375 bsr L02A1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
376 bcs L029D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
377 puls x,b
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
378 stb R$A,u save off new path to caller's A
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
379 sta b,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
380 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
381 L029D puls pc,x,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
382
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
383 * system state I$Dup
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
384 SIDup lda R$A,u
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
385 L02A1 lbsr FindPDsc find path descriptor
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
386 bcs IDupRTS exit if error
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
387 inc PD.CNT,y else increment path count
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
388 IDupRTS rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
389
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
390
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
391 * Find next free path position in current proc
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
392 * Exit: X = Ptr to proc's path table
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
393 * A = Free path number (valid if carry clear)
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
394 *
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
395 FindPath ldx <D.Proc get ptr to current proc desc
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
396 leax <P$PATH,x point X to proc's path table
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
397 clra start from 0
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
398 L02AF tst a,x this path free?
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
399 beq L02BC branch if so...
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
400 inca else try next path...
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
401 cmpa #NumPaths are we at the end?
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
402 bcs L02AF branch if not
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
403 comb else path table is full
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
404 ldb #E$PthFul
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
405 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
406 L02BC andcc #^Carry
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
407 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
408
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
409 IUsrCall bsr FindPath
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
410 bcs L02D1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
411 pshs u,x,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
412 bsr ISysCall
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
413 puls u,x,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
414 bcs L02D1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
415 ldb R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
416 stb a,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
417 sta R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
418 L02D1 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
419
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
420 ISysCall pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
421 ldb R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
422 bsr L0349
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
423 bcs L02E6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
424 puls b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
425 lbsr CallFMgr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
426 bcs L02F5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
427 lda PD.PD,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
428 sta R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
429 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
430 L02E6 puls pc,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
431
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
432 * make directory
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
433 IMakDir pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
434 ldb #DIR.+WRITE.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
435 L02EC bsr L0349
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
436 bcs L02E6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
437 puls b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
438 lbsr CallFMgr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
439 L02F5 pshs b,cc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
440 ldu PD.DEV,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
441 os9 I$Detach
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
442 lda PD.PD,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
443 ldx <D.PthDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
444 os9 F$Ret64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
445 puls pc,b,cc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
446
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
447 * change directory
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
448 IChgDir pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
449 ldb R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
450 orb #DIR.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
451 bsr L0349
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
452 bcs L02E6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
453 puls b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
454 lbsr CallFMgr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
455 bcs L02F5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
456 ldu <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
457 ldb PD.MOD,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
458 bitb #PWRIT.+PREAD.+UPDAT.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
459 beq L0329
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
460 ldx PD.DEV,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
461 stx <P$DIO,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
462 inc V$USRS,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
463 bne L0329
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
464 dec V$USRS,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
465 L0329 bitb #PEXEC.+EXEC.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
466 beq L0338
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
467 ldx PD.DEV,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
468 stx <P$DIO+6,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
469 inc V$USRS,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
470 bne L0338
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
471 dec V$USRS,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
472 L0338 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
473 bra L02F5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
474
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
475 IDelete pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
476 ldb #$02
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
477 bra L02EC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
478
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
479 IDeletX ldb #$87
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
480 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
481 ldb $01,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
482 bra L02EC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
483
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
484 * create path descriptor and initialize
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
485 * Entry:
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
486 * B = path mode
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
487 L0349 pshs u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
488 ldx <D.PthDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
489 os9 F$All64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
490 bcs L03A8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
491 inc PD.CNT,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
492 stb PD.MOD,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
493 ldx R$X,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
494 L0358 lda ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
495 cmpa #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
496 beq L0358
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
497 leax -1,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
498 stx R$X,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
499 ldb PD.MOD,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
500 cmpa #PDELIM
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
501 beq L037E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
502 ldx <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
503 bitb #PEXEC.+EXEC.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
504 beq L0373
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
505 ldx <P$DIO+6,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
506 bra L0376
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
507 L0373 ldx <P$DIO,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
508 L0376 beq L03AA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
509 ldx V$DESC,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
510 ldd M$Name,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
511 leax d,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
512 L037E pshs y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
513 os9 F$PrsNam
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
514 puls y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
515 bcs L03AA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
516 lda PD.MOD,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
517 os9 I$Attach
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
518 stu PD.DEV,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
519 bcs L03AC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
520 ldx V$DESC,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
521 leax <M$Opt,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
522 ldb ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
523 leau <PD.DTP,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
524 cmpb #$20
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
525 bls L03A4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
526 ldb #$1F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
527 L03A0 lda ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
528 sta ,u+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
529 L03A4 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
530 bpl L03A0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
531 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
532 L03A8 puls pc,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
533 L03AA ldb #E$BPNam
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
534 L03AC pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
535 lda ,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
536 ldx <D.PthDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
537 os9 F$Ret64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
538 puls b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
539 coma
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
540 bra L03A8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
541 L03BA lda $01,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
542 cmpa #$10
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
543 bcc L03CB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
544 ldx <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
545 leax <$26,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
546 andcc #^Carry
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
547 lda a,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
548 bne L03CE
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
549 L03CB comb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
550 ldb #E$BPNum
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
551 L03CE rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
552
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
553 UISeek bsr L03BA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
554 bcc GetPDsc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
555 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
556
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
557 SISeek lda R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
558 GetPDsc bsr FindPDsc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
559 lbcc CallFMgr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
560 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
561
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
562 UIRead bsr L03BA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
563 bcc L03E4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
564 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
565
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
566 SIRead lda R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
567 L03E4 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
568 ldb #$05
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
569 L03E8 bsr FindPDsc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
570 bcs L040B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
571 bitb $01,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
572 beq L0409
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
573 ldd $06,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
574 beq L03F8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
575 addd $04,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
576 bcs L03FD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
577 L03F8 puls b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
578 lbra CallFMgr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
579 L03FD ldb #$F4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
580 lda ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
581 bita #$02
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
582 beq L040B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
583 ldb #$F5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
584 bra L040B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
585 L0409 ldb #E$BMode
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
586 L040B com ,s+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
587 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
588
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
589 UIWrite bsr L03BA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
590 bcc L0415
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
591 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
592
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
593 SIWrite lda R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
594 L0415 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
595 ldb #$02
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
596 bra L03E8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
597
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
598
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
599 * Find path descriptor of path passed in A
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
600 * Entry:
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
601 * A = path to find
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
602 * Exit:
79
8e207587d6a5 Added more comments
boisy
parents: 75
diff changeset
603 * Y = addr of path desc (if no error)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
604 FindPDsc pshs x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
605 ldx <D.PthDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
606 os9 F$Find64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
607 puls x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
608 lbcs L03CB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
609 L0428 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
610
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
611 UIGetStt lbsr L03BA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
612 bcc L0431
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
613 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
614
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
615 SIGetStt lda R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
616 L0431 pshs b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
617 lda R$B,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
618 sta 1,s place in B on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
619 puls a get A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
620 bsr GetPDsc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
621 puls a A holds func code
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
622 pshs b,cc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
623 ldb <PD.DTP,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
624 cmpb #DT.NFM
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
625 beq L044D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
626 tsta test func code
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
627 beq GSOpt
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
628 cmpa #SS.DevNm
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
629 beq GSDevNm
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
630 L044D puls pc,b,cc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
631 GSOpt leax <PD.DTP,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
632 L0452 ldy R$X,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
633 ldb #32
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
634 L0457 lda ,x+ copy 32 bytes from X to Y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
635 sta ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
636 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
637 bne L0457
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
638 leas 2,s fix stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
639 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
640 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
641 * get device name
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
642 GSDevNm ldx PD.DEV,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
643 ldx V$DESC,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
644 ldd M$Name,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
645 leax d,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
646 bra L0452
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
647
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
648 UIClose lbsr L03BA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
649 bcs L0428
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
650 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
651 ldb R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
652 clr b,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
653 puls b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
654 bra L047D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
655
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
656 SIClose lda R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
657 L047D bsr FindPDsc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
658 bcs L0428
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
659 dec PD.CNT,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
660 tst PD.CPR,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
661 bne L0489
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
662 bsr CallFMgr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
663 L0489 tst PD.CNT,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
664 bne L0428
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
665 lbra L02F5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
666
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
667 L0490 os9 F$IOQu
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
668 comb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
669 ldb <P$Signal,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
670 bne L04A4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
671 L0499 ldx <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
672 ldb P$ID,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
673 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
674 lda PD.CPR,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
675 bne L0490
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
676 stb PD.CPR,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
677 L04A4 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
678
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
679 * B = entry point into FMgr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
680 * Y = path desc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
681 CallFMgr pshs u,y,x,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
682 bsr L0499
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
683 bcs L04C1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
684 stu PD.RGS,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
685 lda <PD.DTP,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
686 ldx PD.DEV,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
687 ldx V$FMGR,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
688 ldd M$Exec,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
689 leax d,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
690 ldb ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
691 subb #$83 subtract offset from B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
692 lda #$03 size of one entry
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
693 mul compute
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
694 jsr d,x branch into file manager
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
695 L04C1 pshs b,cc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
696 bsr L04D9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
697 ldy $05,s get path desc off stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
698 lda <PD.DTP,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
699 ldx <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
700 lda P$ID,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
701 cmpa PD.CPR,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
702 bne L04D5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
703 clr PD.CPR,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
704 L04D5 puls b,cc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
705 puls pc,u,y,x,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
706
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
707 L04D9 pshs y,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
708 ldy <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
709 lda <P$IOQN,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
710 beq L04F3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
711 clr <P$IOQN,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
712 ldb #S$Wake
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
713 os9 F$Send
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
714 ldx <D.PrcDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
715 os9 F$Find64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
716 clr <P$IOQP,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
717 L04F3 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
718 puls pc,y,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
719
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
720 * IRQ install routine
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
721 FIRQ ldx R$X,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
722 ldb ,x B = flip byte
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
723 ldx 1,x X = mask/priority
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
724 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
725 pshs cc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
726 pshs x,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
727 ldx <D.Init
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
728 ldb PollCnt,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
729 ldx <D.PolTbl
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
730 ldy R$X,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
731 beq RmvIRQEn
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
732 tst 1,s mask byte
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
733 beq L0572
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
734 decb dec poll table count
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
735 lda #POLSIZ
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
736 mul
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
737 leax d,x point to last entry in table
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
738 lda Q$MASK,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
739 bne L0572
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
740 orcc #FIRQMask+IRQMask
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
741 L051C ldb 2,s get priority byte
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
742 cmpb -1,x compare with prev entry's prior
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
743 bcs L052F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
744 ldb #POLSIZ else copy prev entry
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
745 L0524 lda ,-x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
746 sta POLSIZ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
747 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
748 bne L0524
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
749 cmpx <D.PolTbl
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
750 bhi L051C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
751 L052F ldd R$D,u get dev stat reg
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
752 std Q$POLL,x save it
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
753 ldd ,s++ get flip/mask
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
754 sta Q$FLIP,x save flip
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
755 stb Q$MASK,x save mask
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
756 ldb ,s+ get priority
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
757 stb Q$PRTY,x save priority
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
758 ldd R$Y,u get IRQ svc addr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
759 std Q$SERV,x save
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
760 ldd R$U,u get IRQ svc mem ptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
761 std Q$STAT,x save
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
762 puls pc,cc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
763 * remove IRQ poll entry
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
764 RmvIRQEn leas 4,s clean stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
765 ldy R$U,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
766 L054C cmpy Q$STAT,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
767 beq L0558
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
768 leax POLSIZ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
769 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
770 bne L054C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
771 clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
772 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
773 L0558 pshs b,cc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
774 orcc #FIRQMask+IRQMask
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
775 bra L0565
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
776 L055E ldb POLSIZ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
777 stb ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
778 deca
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
779 bne L055E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
780 L0565 lda #POLSIZ
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
781 dec 1,s dec count
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
782 bne L055E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
783 L056B clr ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
784 deca
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
785 bne L056B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
786 puls pc,a,cc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
787 L0572 leas 4,s clean stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
788 L0574 comb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
789 ldb #E$Poll
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
790 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
791
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
792 * IRQ polling routine
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
793 DPoll ldy <D.PolTbl
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
794 ldx <D.Init
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
795 ldb PollCnt,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
796 bra L0586
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
797 L0581 leay POLSIZ,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
798 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
799 beq L0574
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
800 L0586 lda [Q$POLL,y]
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
801 eora Q$FLIP,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
802 bita Q$MASK,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
803 beq L0581
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
804 ldu Q$STAT,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
805 pshs y,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
806 jsr [<Q$SERV,y]
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
807 puls y,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
808 bcs L0581
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
809 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
810
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
811 * load a module
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
812 FLoad pshs u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
813 ldx R$X,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
814 bsr L05BC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
815 bcs L05BA
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
816 inc $02,u increment link count
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
817 ldy ,u get mod header addr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
818 ldu ,s get caller regs
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
819 stx R$X,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
820 sty R$U,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
821 lda M$Type,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
822 ldb M$Revs,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
823 std R$D,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
824 ldd M$Exec,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
825 leax d,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
826 stx R$Y,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
827 L05BA puls pc,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
828
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
829 L05BC lda #EXEC.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
830 os9 I$Open
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
831 bcs L0632
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
832 leas -$0A,s make room on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
833 ldu #$0000
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
834 pshs u,y,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
835 sta 6,s save path
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
836 L05CC ldd 4,s get U (caller regs) from stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
837 bne L05D2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
838 stu 4,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
839 L05D2 lda 6,s get path
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
840 leax 7,s point to place on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
841 ldy #M$IDSize read M$IDSize bytes
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
842 os9 I$Read
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
843 bcs L061E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
844 ldd ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
845 cmpd #M$ID12
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
846 bne L061C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
847 ldd $09,s get module size
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
848 os9 F$SRqMem allocate mem
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
849 bcs L061E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
850 ldb #M$IDSize
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
851 L05F0 lda ,x+ copy over first M$IDSize bytes
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
852 sta ,u+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
853 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
854 bne L05F0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
855 lda $06,s get path
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
856 leax ,u point X at updated U
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
857 ldu $09,s get module size
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
858 leay -M$IDSize,u subtract count
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
859 os9 I$Read
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
860 leax -M$IDSize,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
861 bcs L060B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
862 os9 F$VModul validate module
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
863 bcc L05CC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
864 L060B pshs u,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
865 leau ,x point U at memory allocated
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
866 ldd M$Size,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
867 os9 F$SRtMem return mem
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
868 puls u,b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
869 cmpb #E$KwnMod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
870 beq L05CC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
871 bra L061E
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
872 L061C ldb #E$BMID
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
873 L061E puls u,y,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
874 lda ,s get path
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
875 stb ,s save error code
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
876 os9 I$Close close path
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
877 ldb ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
878 leas $0A,s clear up stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
879 cmpu #$0000
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
880 bne L0632
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
881 coma
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
882 L0632 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
883
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
884
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
885 ErrHead fcc /ERROR #/
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
886 ErrNum equ *-ErrHead
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
887 fcb $2F,$3A,$30,$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
888 ErrLen equ *-ErrHead
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
889
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
890 FPErr ldx <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
891 lda <P$PATH+2,x get stderr path
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
892 beq L0674
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
893 leas -ErrLen,s make room on stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
894 * copy error message to stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
895 leax <ErrHead,pcr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
896 leay ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
897 L064C lda ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
898 sta ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
899 cmpa #$0D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
900 bne L064C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
901 ldb R$B,u get error #
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
902 L0656 inc ErrNum+0,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
903 subb #$64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
904 bcc L0656
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
905 L065C dec ErrNum+1,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
906 addb #$0A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
907 bcc L065C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
908 addb #$30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
909 stb ErrNum+2,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
910 ldx <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
911 leax ,s point to error message
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
912 ldu <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
913 lda <P$PATH+2,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
914 os9 I$WritLn write message
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
915 leas ErrLen,s fix up stack
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
916 L0674 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
917
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
918 FIOQu ldy <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
919 L0678 lda <P$IOQN,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
920 beq L06A0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
921 cmpa R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
922 bne L0699
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
923 clr <P$IOQN,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
924 ldx <D.PrcDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
925 os9 F$Find64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
926 lbcs L070F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
927 clr <P$IOQP,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
928 ldb #S$Wake
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
929 os9 F$Send
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
930 ldu <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
931 bra L06AB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
932 L0699 ldx <D.PrcDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
933 os9 F$Find64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
934 bcc L0678
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
935 L06A0 lda R$A,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
936 ldu <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
937 ldx <D.PrcDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
938 os9 F$Find64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
939 bcs L070F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
940 L06AB leax ,y X = proc desc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
941 lda <P$IOQN,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
942 beq L06D1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
943 ldx <D.PrcDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
944 os9 F$Find64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
945 bcs L070F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
946 ldb P$Age,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
947
75
ce04e3883dec Fixed I$Detach Static Storage Wipeout Bug
boisy
parents: 0
diff changeset
948 ifeq edition-11
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
949
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
950 * Note: the following line is a bug
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
951 cmpd P$Age,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
952
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
953 else
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
954
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
955 cmpb P$Age,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
956
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
957 endc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
958
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
959 bls L06AB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
960 ldb ,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
961 stb <P$IOQN,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
962 ldb P$ID,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
963 stb <P$IOQP,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
964 clr <P$IOQP,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
965 exg y,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
966 bra L06AB
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
967 L06D1 lda P$ID,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
968 sta <P$IOQN,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
969 lda P$ID,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
970 sta <P$IOQP,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
971 ldx #$0000
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
972 os9 F$Sleep
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
973 ldu <D.Proc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
974 lda <P$IOQP,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
975 beq L070C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
976 ldx <D.PrcDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
977 os9 F$Find64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
978 bcs L070C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
979 lda <P$IOQN,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
980 beq L070C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
981 lda <P$IOQN,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
982 sta <P$IOQN,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
983 beq L070C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
984 clr <P$IOQN,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
985 ldx <D.PrcDBT
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
986 os9 F$Find64
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
987 bcs L070C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
988 lda <P$IOQP,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
989 sta <P$IOQP,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
990 L070C clr <P$IOQP,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
991 L070F rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
992
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
993 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
994 eom equ *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
995 end