Mercurial > hg > Members > kono > nitros9-code
annotate level1/cmds/mdir.asm @ 310:4df2bcadf651
Renamed compatibility byte to feature byte
author | boisy |
---|---|
date | Tue, 23 Jul 2002 13:54:36 +0000 |
parents | e9ce43cc215e |
children | 19ac91c8dbcf |
rev | line source |
---|---|
0 | 1 ******************************************************************** |
13 | 2 * Mdir - Show module directory |
0 | 3 * |
4 * $Id$ | |
5 * | |
6 * Ed. Comments Who YY/MM/DD | |
7 * ------------------------------------------------------------------ | |
200
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
92
diff
changeset
|
8 * 5 From Tandy OS-9 Level One VR 02.00.00 |
0 | 9 |
10 nam Mdir | |
13 | 11 ttl Show module directory |
0 | 12 |
13 | 13 * Disassembled 02/04/05 12:49:18 by Disasm v1.6 (C) 1988 by RML |
0 | 14 |
15 ifp1 | |
13 | 16 use defsfile |
0 | 17 endc |
13 | 18 |
0 | 19 tylg set Prgrm+Objct |
20 atrv set ReEnt+rev | |
21 rev set $01 | |
200
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
92
diff
changeset
|
22 edition set 5 |
92 | 23 stdout set 1 |
13 | 24 |
0 | 25 mod eom,name,tylg,atrv,start,size |
13 | 26 |
92 | 27 MdirSt rmb 2 |
28 MdirEn rmb 2 | |
0 | 29 u0004 rmb 2 |
30 u0006 rmb 1 | |
92 | 31 bufptr rmb 1 |
0 | 32 u0008 rmb 1 |
33 u0009 rmb 3 | |
34 u000C rmb 3 | |
13 | 35 u000F rmb 1 |
36 u0010 rmb 1 | |
37 u0011 rmb 1 | |
92 | 38 buffer rmb 530 |
0 | 39 size equ . |
13 | 40 |
41 name fcs /Mdir/ | |
200
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
92
diff
changeset
|
42 fcb edition |
13 | 43 |
92 | 44 tophead fcb C$LF |
13 | 45 fcc " Module directory at " |
92 | 46 ltitle fcb C$LF |
13 | 47 fcc "Addr Size Typ Rev Attr Use Module name" |
48 fcb C$LF | |
49 fcc "---- ---- --- --- ---- --- ------------" | |
50 fcb C$CR | |
92 | 51 stitle fcb C$LF |
13 | 52 fcc "Addr Size Ty Rv At Uc Name" |
53 fcb C$LF | |
54 fcc "---- ---- -- -- -- -- ---------" | |
55 fcb C$CR | |
56 | |
57 start stx <u0004 | |
58 lda #$0C | |
59 ldb #$30 | |
60 std <u000F | |
61 clr <u0011 | |
92 | 62 lda #stdout |
13 | 63 ldb #SS.ScSiz |
64 os9 I$GetStt | |
65 bcc L00D2 | |
66 cmpb #E$UnkSvc | |
92 | 67 lbne exit |
13 | 68 bra L00DF |
69 L00D2 cmpx #80 | |
70 beq L00DF | |
71 inc <u0011 | |
72 lda #$0A | |
73 ldb #$15 | |
74 std <u000F | |
92 | 75 L00DF leax >tophead,pcr |
13 | 76 ldy #$0017 |
92 | 77 lda #stdout |
0 | 78 os9 I$WritLn |
79 leax u0009,u | |
80 os9 F$Time | |
92 | 81 leax <buffer,u |
82 stx <bufptr | |
0 | 83 leax u000C,u |
13 | 84 lbsr L0224 |
92 | 85 lbsr write |
13 | 86 ldx >D.ModDir |
92 | 87 stx <MdirSt |
13 | 88 ldd >D.ModDir+2 |
92 | 89 std <MdirEn |
0 | 90 leax -$04,x |
92 | 91 * Check for 'E' given as argument |
0 | 92 ldy <u0004 |
93 lda ,y+ | |
13 | 94 eora #'E |
0 | 95 anda #$DF |
13 | 96 bne L0157 |
97 tst <u0011 | |
98 bne L0123 | |
92 | 99 leax >ltitle,pcr |
100 ldy #80 Maxlength to write | |
13 | 101 bra L012B |
92 | 102 L0123 leax >stitle,pcr |
103 ldy #$003E Maxlength to write | |
104 L012B lda #stdout | |
0 | 105 os9 I$WritLn |
92 | 106 ldx <MdirSt |
13 | 107 lbra L01B9 |
92 | 108 loop ldy ,x |
13 | 109 beq L015D |
0 | 110 ldd $04,y |
111 leay d,y | |
13 | 112 lbsr L0205 |
113 L0141 lbsr L01F2 | |
0 | 114 ldb <u0008 |
13 | 115 subb #$12 |
116 cmpb <u0010 | |
117 bhi L0154 | |
118 L014C subb <u000F | |
119 bhi L014C | |
120 bne L0141 | |
121 bra L015D | |
92 | 122 L0154 lbsr write |
123 L0157 leay <buffer,u | |
124 sty <bufptr | |
13 | 125 L015D leax $04,x |
92 | 126 cmpx <MdirEn |
127 bcs loop | |
128 lbsr write | |
13 | 129 bra L01BD |
92 | 130 * |
131 * A module entry is 2 twobyte pointers. | |
132 * If the first pointer is $0000, then the slot is unused | |
133 L0168 leay <buffer,u | |
134 sty <bufptr | |
0 | 135 ldy ,x |
92 | 136 beq gotonxt Is slot unused? If yes, branch |
0 | 137 ldd ,x |
13 | 138 bsr L01C1 |
0 | 139 ldd $02,y |
13 | 140 bsr L01C1 |
141 tst <u0011 | |
142 bne L0181 | |
143 bsr L01F2 | |
144 L0181 lda $06,y | |
145 bsr L01C9 | |
146 tst <u0011 | |
147 bne L018B | |
148 bsr L01F2 | |
149 L018B lda $07,y | |
0 | 150 anda #$0F |
13 | 151 bsr L01C9 |
0 | 152 ldb $07,y |
153 lda #$72 | |
13 | 154 bsr L01FE |
155 tst <u0011 | |
156 bne L01A7 | |
157 lda #$3F | |
158 bsr L01FE | |
159 lda #$3F | |
160 bsr L01FE | |
161 lda #$3F | |
162 bsr L01FE | |
163 L01A7 bsr L01F2 | |
164 bsr L01F2 | |
0 | 165 lda $02,x |
13 | 166 bsr L01C9 |
0 | 167 ldd $04,y |
168 leay d,y | |
13 | 169 bsr L0205 |
92 | 170 bsr write |
171 gotonxt leax $04,x | |
172 L01B9 cmpx <MdirEn | |
13 | 173 bcs L0168 |
92 | 174 |
13 | 175 L01BD clrb |
92 | 176 exit os9 F$Exit |
177 | |
13 | 178 L01C1 bsr L01CD |
0 | 179 tfr b,a |
13 | 180 bsr L01CF |
181 bra L01F2 | |
182 L01C9 bsr L01CD | |
183 bra L01F2 | |
184 L01CD clr <u0006 | |
185 L01CF pshs a | |
0 | 186 lsra |
187 lsra | |
188 lsra | |
189 lsra | |
13 | 190 bsr L01DB |
0 | 191 lda ,s+ |
192 anda #$0F | |
13 | 193 L01DB tsta |
194 beq L01E0 | |
0 | 195 sta <u0006 |
13 | 196 L01E0 tst <u0006 |
197 bne L01E8 | |
0 | 198 lda #$20 |
92 | 199 bra ApndA |
200 L01E8 adda #'0 | |
201 cmpa #'9 | |
202 bls ApndA | |
203 adda #$07 Make it A-F | |
204 bra ApndA | |
13 | 205 L01F2 lda #$20 |
92 | 206 * |
207 * append a char (in reg a) to buffer | |
208 * | |
209 ApndA pshs x | |
210 ldx <bufptr | |
0 | 211 sta ,x+ |
92 | 212 stx <bufptr |
0 | 213 puls pc,x |
92 | 214 |
13 | 215 L01FE rolb |
92 | 216 bcs ApndA |
217 lda #'. | |
218 bra ApndA | |
13 | 219 L0205 lda ,y |
0 | 220 anda #$7F |
92 | 221 bsr ApndA |
0 | 222 lda ,y+ |
13 | 223 bpl L0205 |
0 | 224 rts |
92 | 225 * |
226 * Append a CR to buffer and write it | |
227 * | |
228 write pshs y,x,a | |
229 lda #C$CR | |
230 bsr ApndA | |
231 leax <buffer,u | |
13 | 232 ldy #80 |
92 | 233 lda #stdout |
0 | 234 os9 I$WritLn |
235 puls pc,y,x,a | |
92 | 236 |
13 | 237 L0224 bsr L022C |
238 bsr L0228 | |
92 | 239 L0228 lda #': |
240 bsr ApndA | |
13 | 241 L022C ldb ,x+ |
0 | 242 lda #$2F |
13 | 243 L0230 inca |
0 | 244 subb #$64 |
13 | 245 bcc L0230 |
0 | 246 cmpa #$30 |
13 | 247 beq L023B |
92 | 248 bsr ApndA |
13 | 249 L023B lda #$3A |
250 L023D deca | |
0 | 251 addb #$0A |
13 | 252 bcc L023D |
92 | 253 bsr ApndA |
0 | 254 tfr b,a |
92 | 255 adda #'0 |
256 bra ApndA | |
13 | 257 |
0 | 258 emod |
259 eom equ * | |
13 | 260 end |