Mercurial > hg > Members > kono > nitros9-code
annotate level1/cmds/mdir.asm @ 851:16b8c7dc0082
Made source comment improvements
author | boisy |
---|---|
date | Wed, 15 Jan 2003 00:56:21 +0000 |
parents | 19ac91c8dbcf |
children | 54ebe88fdc10 |
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 |
838 | 9 * 6 Changed option to -e, optimized slightly BGP 03/01/14 |
0 | 10 |
11 nam Mdir | |
13 | 12 ttl Show module directory |
0 | 13 |
13 | 14 * Disassembled 02/04/05 12:49:18 by Disasm v1.6 (C) 1988 by RML |
0 | 15 |
16 ifp1 | |
13 | 17 use defsfile |
0 | 18 endc |
13 | 19 |
0 | 20 tylg set Prgrm+Objct |
21 atrv set ReEnt+rev | |
22 rev set $01 | |
838 | 23 edition set 6 |
92 | 24 stdout set 1 |
13 | 25 |
0 | 26 mod eom,name,tylg,atrv,start,size |
13 | 27 |
838 | 28 org 0 |
29 mdstart rmb 2 | |
30 mdend rmb 2 | |
31 parmptr rmb 2 | |
0 | 32 u0006 rmb 1 |
92 | 33 bufptr rmb 1 |
0 | 34 u0008 rmb 1 |
838 | 35 datebuf rmb 3 |
36 timebuf rmb 3 | |
13 | 37 u000F rmb 1 |
38 u0010 rmb 1 | |
838 | 39 narrow rmb 1 |
92 | 40 buffer rmb 530 |
0 | 41 size equ . |
13 | 42 |
43 name fcs /Mdir/ | |
200
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
92
diff
changeset
|
44 fcb edition |
13 | 45 |
92 | 46 tophead fcb C$LF |
13 | 47 fcc " Module directory at " |
838 | 48 topheadl equ *-tophead |
92 | 49 ltitle fcb C$LF |
13 | 50 fcc "Addr Size Typ Rev Attr Use Module name" |
51 fcb C$LF | |
52 fcc "---- ---- --- --- ---- --- ------------" | |
53 fcb C$CR | |
838 | 54 stitle fcb C$LF |
13 | 55 fcc "Addr Size Ty Rv At Uc Name" |
56 fcb C$LF | |
57 fcc "---- ---- -- -- -- -- ---------" | |
58 fcb C$CR | |
59 | |
838 | 60 start stx <parmptr |
61 ldd #$0C30 | |
13 | 62 std <u000F |
838 | 63 clr <narrow assume wide output |
64 lda #stdout standard output | |
65 ldb #SS.ScSiz we need screen size | |
66 os9 I$GetStt get it | |
67 bcc L00D2 branch if we got it | |
68 cmpb #E$UnkSvc not a known service request error? | |
69 lbne Exit if not, exit | |
13 | 70 bra L00DF |
838 | 71 L00D2 cmpx #80 80 columns? |
72 bge L00DF branch if greater or equal to | |
73 inc <narrow | |
74 ldd #$0A15 | |
13 | 75 std <u000F |
92 | 76 L00DF leax >tophead,pcr |
838 | 77 ldy #topheadl |
92 | 78 lda #stdout |
0 | 79 os9 I$WritLn |
838 | 80 leax datebuf,u |
0 | 81 os9 F$Time |
92 | 82 leax <buffer,u |
83 stx <bufptr | |
838 | 84 leax timebuf,u |
13 | 85 lbsr L0224 |
92 | 86 lbsr write |
13 | 87 ldx >D.ModDir |
838 | 88 stx <mdstart |
13 | 89 ldd >D.ModDir+2 |
838 | 90 std <mdend |
0 | 91 leax -$04,x |
92 | 92 * Check for 'E' given as argument |
838 | 93 ldy <parmptr |
94 ldd ,y+ | |
95 andb #$DF | |
96 cmpd #$2D45 -E ? | |
13 | 97 bne L0157 |
838 | 98 tst <narrow |
13 | 99 bne L0123 |
92 | 100 leax >ltitle,pcr |
13 | 101 bra L012B |
92 | 102 L0123 leax >stitle,pcr |
838 | 103 L012B ldy #80 max. length to write |
104 lda #stdout | |
0 | 105 os9 I$WritLn |
838 | 106 ldx <mdstart |
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 |
838 | 126 cmpx <mdend |
92 | 127 bcs loop |
128 lbsr write | |
838 | 129 bra ExitOk |
92 | 130 * |
838 | 131 * A module entry is 2 two byte pointers. |
92 | 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 |
838 | 141 tst <narrow |
13 | 142 bne L0181 |
143 bsr L01F2 | |
144 L0181 lda $06,y | |
145 bsr L01C9 | |
838 | 146 tst <narrow |
13 | 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 |
838 | 155 tst <narrow |
13 | 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 | |
838 | 172 L01B9 cmpx <mdend |
13 | 173 bcs L0168 |
92 | 174 |
838 | 175 ExitOk clrb |
176 Exit os9 F$Exit | |
92 | 177 |
838 | 178 L01C1 bsr Byt2Hex |
0 | 179 tfr b,a |
13 | 180 bsr L01CF |
181 bra L01F2 | |
838 | 182 L01C9 bsr Byt2Hex |
13 | 183 bra L01F2 |
838 | 184 |
185 Byt2Hex clr <u0006 | |
13 | 186 L01CF pshs a |
0 | 187 lsra |
188 lsra | |
189 lsra | |
190 lsra | |
13 | 191 bsr L01DB |
0 | 192 lda ,s+ |
193 anda #$0F | |
13 | 194 L01DB tsta |
195 beq L01E0 | |
0 | 196 sta <u0006 |
13 | 197 L01E0 tst <u0006 |
198 bne L01E8 | |
838 | 199 lda #C$SPAC |
92 | 200 bra ApndA |
201 L01E8 adda #'0 | |
202 cmpa #'9 | |
203 bls ApndA | |
204 adda #$07 Make it A-F | |
205 bra ApndA | |
13 | 206 L01F2 lda #$20 |
92 | 207 * |
208 * append a char (in reg a) to buffer | |
209 * | |
210 ApndA pshs x | |
211 ldx <bufptr | |
0 | 212 sta ,x+ |
92 | 213 stx <bufptr |
0 | 214 puls pc,x |
92 | 215 |
13 | 216 L01FE rolb |
92 | 217 bcs ApndA |
218 lda #'. | |
219 bra ApndA | |
13 | 220 L0205 lda ,y |
0 | 221 anda #$7F |
92 | 222 bsr ApndA |
0 | 223 lda ,y+ |
13 | 224 bpl L0205 |
0 | 225 rts |
92 | 226 * |
227 * Append a CR to buffer and write it | |
228 * | |
229 write pshs y,x,a | |
230 lda #C$CR | |
231 bsr ApndA | |
232 leax <buffer,u | |
13 | 233 ldy #80 |
92 | 234 lda #stdout |
0 | 235 os9 I$WritLn |
236 puls pc,y,x,a | |
92 | 237 |
838 | 238 L0224 bsr Byt2ASC |
239 bsr Colon | |
240 Colon lda #': | |
92 | 241 bsr ApndA |
838 | 242 Byt2ASC ldb ,x+ |
243 lda #$2F load A with '0 - 1 | |
244 Hundreds inca | |
245 subb #100 | |
246 bcc Hundreds | |
247 cmpa #'0 | |
248 beq Tens no leading zeros | |
92 | 249 bsr ApndA |
838 | 250 Tens lda #$3A load A with '9 + 1 |
251 TensLoop deca | |
252 addb #10 | |
253 bcc TensLoop | |
92 | 254 bsr ApndA |
0 | 255 tfr b,a |
92 | 256 adda #'0 |
257 bra ApndA | |
13 | 258 |
0 | 259 emod |
260 eom equ * | |
13 | 261 end |