Mercurial > hg > Members > kono > nitros9-code
comparison level2/cmds/smap.asm @ 3191:147d2267d9b8
smap.asm: Annotate comments, remove trailing whitespace
Annotate comments from original source listing in "Inside OS9 Level II".
CRC identical.
author | Neal Crook <foofoobedoo@gmail.com> |
---|---|
date | Mon, 29 May 2017 20:15:36 +0100 |
parents | 457765ff46f9 |
children |
comparison
equal
deleted
inserted
replaced
3190:f5e8a5030fbd | 3191:147d2267d9b8 |
---|---|
1 ******************************************************************* | 1 ******************************************************************* |
2 * SMap - Show System Memory Map | 2 * SMap - Show System Memory Map |
3 * | 3 * |
4 * $Id$ | 4 * $Id$ |
5 * | 5 * |
6 * From "Inside OS9 Level II", by Kevin Darling | |
7 * | |
6 * Edt/Rev YYYY/MM/DD Modified by | 8 * Edt/Rev YYYY/MM/DD Modified by |
7 * Comment | 9 * Comment |
8 * ------------------------------------------------------------------ | 10 * ------------------------------------------------------------------ |
9 * 1 ????/??/?? | 11 * 1 ????/??/?? |
10 * Original version. | 12 * Original version. |
11 | 13 |
12 nam SMap | 14 nam SMap |
13 ttl Show System Memory Map | 15 ttl Show System Memory Map |
14 | 16 |
16 | 18 |
17 ifp1 | 19 ifp1 |
18 use defsfile | 20 use defsfile |
19 endc | 21 endc |
20 | 22 |
21 tylg set Prgrm+Objct | 23 tylg set Prgrm+Objct |
22 atrv set ReEnt+rev | 24 atrv set ReEnt+rev |
23 rev set $00 | 25 rev set $00 |
24 edition set 1 | 26 edition set 1 |
25 | 27 |
26 mod eom,name,tylg,atrv,start,size | 28 mod eom,name,tylg,atrv,start,msize |
27 | 29 |
28 u0000 rmb 1 | 30 leadflag rmb 1 |
29 decbuff rmb 3 decimal buffer (100, 10, 1s place) | 31 decbuff rmb 3 decimal buffer (100, 10, 1s place) |
30 free rmb 1 number of free 256 byte pages in system memory | 32 free rmb 1 number of free 256 byte pages in system memory |
31 u0005 rmb 1 | 33 row rmb 1 |
32 u0006 rmb 1 | 34 spc rmb 1 |
33 wrbuf rmb 1 | 35 out rmb 3 ONLY 2 BYTES USED |
34 u0008 rmb 6 | 36 mapsiz rmb 2 NEVER USED |
35 u000E rmb 1 | 37 blksiz rmb 2 NEVER USED |
36 memmap rmb 256 | 38 blknum rmb 1 |
37 rmb 200 | 39 buffer rmb 256 |
38 size equ . | 40 stack rmb 200 |
39 | 41 msize equ . |
40 name fcs /SMap/ | 42 |
43 name fcs /SMap/ | |
41 fcb edition | 44 fcb edition |
42 | 45 |
43 H1 fcc " 0 1 2 3 4 5 6 7 8 9 A B C D E F" | 46 H1 fcc " 0 1 2 3 4 5 6 7 8 9 A B C D E F" |
44 CrRt fcb C$CR | 47 CrRt fcb C$CR |
45 H1L equ *-H1 | 48 H1L equ *-H1 |
46 H2 fcc " # = = = = = = = = = = = = = = = =" | 49 H2 fcc " # = = = = = = = = = = = = = = = =" |
47 * fcb C$CR | 50 * fcb C$CR |
48 H2L equ *-H2 | 51 H2L equ *-H2 |
49 SysDat fcb $00,$00,$00,$00 | 52 SysDat fcb $00,$00,$00,$00 |
50 | 53 |
51 start lbsr WriteCR Write a carriage return to standard out | 54 start lbsr WriteCR Write a carriage return to standard out |
52 leax <H1,pcr point to header 1 | 55 leax <H1,pcr point to header 1 |
53 lda #$01 | 56 lda #$01 |
54 ldy #H1L | 57 ldy #H1L |
55 os9 I$WritLn and write it to standard out | 58 os9 I$WritLn and write it to standard out |
56 leax <H2,pcr same with header 2 | 59 leax <H2,pcr same with header 2 |
57 ldy #H2L | 60 ldy #H2L |
58 os9 I$Write | 61 os9 I$Write |
62 | |
63 * Get SysMap pointer | |
59 leax <SysDat,pcr | 64 leax <SysDat,pcr |
60 tfr x,d | 65 tfr x,d |
61 ldx #D.SysMem point to System Memory global | 66 ldx #D.SysMem point to System Memory global |
62 ldy #$0002 get 2 byte pointer into system RAM | 67 ldy #$0002 get 2 byte pointer into system RAM |
63 pshs u save statics | 68 pshs u save statics |
64 leau memmap,u point to destination | 69 leau buffer,u point to destination |
65 os9 F$CpyMem get it | 70 os9 F$CpyMem get it |
66 puls u restore statics | 71 puls u restore statics |
67 lbcs L013F branch if error | 72 lbcs error branch if error |
68 ldx memmap,u get pointer into system memory table in system space | 73 |
69 ldy #256 all 256 bytes | 74 * Get SysMap |
70 pshs u save statics | 75 ldx buffer,u get pointer into system memory table in system space |
71 leau memmap,u point to destination | 76 ldy #256 all 256 bytes |
72 os9 F$CpyMem copy memory | 77 pshs u save statics |
73 puls u restore statics | 78 leau buffer,u point to destination |
74 lbcs L013F branch if error | 79 os9 F$CpyMem copy memory |
75 clr <u000E | 80 puls u restore statics |
76 clr <free clear free counter | 81 lbcs error branch if error |
77 leax memmap,u | 82 |
83 clr <blknum | |
84 clr <free clear free counter | |
85 leax buffer,u | |
78 lda #$30 | 86 lda #$30 |
79 sta <u0005 | 87 sta <row |
80 clr ,-s | 88 clr ,-s save count |
81 L00B2 lda ,s | 89 loop lda ,s |
82 bita #$0F | 90 bita #$0F |
83 bne L00DF | 91 bne loop2 |
84 pshs x | 92 pshs x |
85 lbsr WriteCR | 93 lbsr WriteCR |
86 leax u0006,u | 94 leax spc,u |
87 ldy #$0004 | 95 ldy #$0004 |
88 lda <u0005 | 96 lda <row |
89 cmpa #': | 97 cmpa #': |
90 bne L00CD | 98 bne oknum |
91 lda #'A | 99 lda #'A |
92 sta <u0005 | 100 sta <row |
93 L00CD sta <wrbuf | 101 oknum sta <out |
94 inc <u0005 | 102 inc <row |
95 ldd #C$SPAC*256+C$SPAC | 103 ldd #C$SPAC*256+C$SPAC |
96 sta <u0006 | 104 sta <spc |
97 std <u0008 | 105 std <out+1 |
98 lda #$01 | 106 lda #$01 |
99 os9 I$Write | 107 os9 I$Write |
100 puls x | 108 puls x |
101 L00DF ldb ,x+ | 109 |
102 beq L00ED | 110 loop2 ldb ,x+ get next block |
103 bmi L00E9 | 111 beq unused |
104 ldb #'U | 112 bmi noram |
105 bra L00F1 | 113 ldb #'U RAM-in-use |
106 L00E9 ldb #'. | 114 bra put |
107 bra L00F1 | 115 noram ldb #'. not RAM |
108 L00ED ldb #'_ | 116 bra put |
109 inc <free increment free page counter | 117 unused ldb #'_ not used |
110 L00F1 stb <wrbuf | 118 inc <free increment free page counter |
119 | |
120 put stb <out | |
111 ldb #C$SPAC | 121 ldb #C$SPAC |
112 stb <u0008 | 122 stb <out+1 |
113 pshs x | 123 pshs x |
114 leax wrbuf,u | 124 leax out,u |
115 ldy #$0002 | 125 ldy #$0002 |
116 lda #$01 | 126 lda #$01 |
117 os9 I$Write | 127 os9 I$Write |
118 puls x | 128 puls x |
119 dec ,s | 129 dec ,s |
120 lbhi L00B2 | 130 lbhi loop |
121 puls a | 131 puls a |
132 | |
122 bsr WriteCR | 133 bsr WriteCR |
123 bsr WriteCR | 134 bsr WriteCR |
124 leax >FreePgs,pcr | 135 leax >FreePgs,pcr |
125 ldy #FreePgsL | 136 ldy #FreePgsL |
126 lda #$01 | 137 lda #$01 |
127 os9 I$Write | 138 os9 I$Write |
128 ldb <free | 139 ldb <free |
129 clra | 140 clra |
130 lbsr L0194 | 141 lbsr outdec |
131 bsr WriteCR | 142 bsr WriteCR |
143 | |
132 leax >FreeRAM,pcr | 144 leax >FreeRAM,pcr |
133 ldy #FreeRAML | 145 ldy #FreeRAML |
134 lda #$01 | 146 lda #$01 |
135 os9 I$Write | 147 os9 I$Write |
136 ldb <free | 148 ldb <free |
137 clra | 149 clra |
138 lsrb | 150 lsrb |
139 lsrb | 151 lsrb |
140 lbsr L0194 | 152 lbsr outdec |
141 bsr WriteCR | 153 bsr WriteCR |
142 clrb | 154 clrb |
143 L013F os9 F$Exit | 155 error os9 F$Exit |
144 | 156 |
145 FreePgs fcc " Number of Free Pages: " | 157 FreePgs fcc " Number of Free Pages: " |
146 FreePgsL equ *-FreePgs | 158 FreePgsL equ *-FreePgs |
147 FreeRAM fcc " RAM Free in KBytes: " | 159 FreeRAM fcc " RAM Free in KBytes: " |
148 FreeRAML equ *-FreeRAM | 160 FreeRAML equ *-FreeRAM |
149 | 161 |
150 WriteCR pshs x,a | 162 WriteCR pshs x,a |
151 * lda #C$CR | |
152 * sta <wrbuf | |
153 leax CrRt,pcr | 163 leax CrRt,pcr |
154 ldy #$0001 | 164 ldy #$0001 |
155 lda #$01 | 165 lda #$01 |
156 os9 I$WritLn | 166 os9 I$WritLn |
157 puls pc,x,a | 167 puls pc,x,a |
158 | 168 |
159 L0183 sta <wrbuf | 169 print sta <out |
160 pshs x | 170 pshs x |
161 leax wrbuf,u | 171 leax out,u |
162 ldy #$0001 | 172 ldy #$0001 |
163 lda #$01 | 173 lda #$01 |
164 os9 I$Write | 174 os9 I$Write |
165 puls pc,x | 175 puls pc,x |
166 | 176 |
167 L0194 leax decbuff,u | 177 outdec leax decbuff,u D=number |
168 clr <u0000 | 178 clr <leadflag |
169 clr ,x | 179 clr ,x |
170 clr $01,x | 180 clr $01,x |
171 clr $02,x | 181 clr $02,x |
172 L019E inc ,x | 182 hundred inc ,x |
173 subd #100 | 183 subd #100 |
174 bcc L019E | 184 bcc hundred |
175 addd #100 | 185 addd #100 |
176 L01A8 inc $01,x | 186 ten inc $01,x |
177 subd #10 | 187 subd #10 |
178 bcc L01A8 | 188 bcc ten |
179 L01AF addd #10 | 189 addd #10 |
180 incb | 190 incb |
181 stb $02,x | 191 stb $02,x |
182 bsr L01BF | 192 bsr printled |
183 bsr L01BF | 193 bsr printled |
184 L01B9 lda ,x+ | 194 |
185 adda #$2F | 195 printnum lda ,x+ |
186 bra L0183 | 196 adda #$2F make ASCII |
187 L01BF tst <u0000 | 197 bra print |
188 bne L01B9 | 198 |
189 ldb ,x | 199 printled tst <leadflag print leading zero? |
190 inc <u0000 | 200 bne printnum ..yes |
191 decb | 201 ldb ,x is it zero? |
192 bne L01B9 | 202 inc <leadflag |
193 clr <u0000 | 203 decb |
204 bne printnum ..no, print zeroes | |
205 clr <leadflag else supress | |
194 lda #C$SPAC | 206 lda #C$SPAC |
195 leax 1,x | 207 leax 1,x |
196 bra L0183 | 208 bra print |
197 | 209 |
198 emod | 210 emod |
199 eom equ * | 211 eom equ * |
200 end | 212 end |
201 |