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