annotate level2/cmds/pmap.asm @ 3:9c478bdf0179

Modified defsfiles to use os9defs, added s16550 target to Makefile
author boisy
date Fri, 05 Apr 2002 07:06:16 +0000
parents 6641a883d6b0
children bf6f854a4299
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 * PMap - Show process map information
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 * From "Inside Level II" by Kevin Darling
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
7 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
8 * Ed. Comments Who YY/MM/DD
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
9 * ------------------------------------------------------------------
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
10 * ? Original version KKD 87/02/08
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
11 * 2 Revised to handle 4K or 8K blocks KD 89/09/12
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
12
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
13 nam PMap
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
14 ttl Show process map information
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
15
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
16 ifp1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
17 use defsfile
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
18 endc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
19
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
20 Type set Prgrm+Objct
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
21 Revs set ReEnt+1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
22 Bufsiz set 512
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
23 edition set 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
24
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
25 stdout set 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
26 maxnam set 30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
27
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
28 pag
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
29 ***************************************************
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
30 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
31 mod PrgSiz,Name,Type,Revs,Entry,DatSiz
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
32
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
33 Name fcs /PMap/
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
34 fcb edition
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
35
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
36 * Data Equates
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
37 umem rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
38 sysImg rmb 2 pointer to sysprc datimg
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
39 datimg rmb 2 datimg for copymem
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
40 lineptr rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
41 number rmb 3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
42 leadflag rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
43 pid rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
44 hdr rmb 12
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
45 blkcnt rmb 1 no. blocks/64k
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
46 outbuf rmb 80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
47 buffer rmb bufsiz*2 working proc. desc.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
48 stack rmb 200
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
49 datsiz equ .
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
50
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
51 *************************************************
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
52 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
53 * Messages
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
54 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
55 Head1A fcc / ID 01 23 45 67 89 AB CD EF Program /
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
56 fcb C$CR
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
57
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
58 Head2A fcc /____ __ __ __ __ __ __ __ __ ___________/
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
59 Hdrcr fcb C$CR
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
60
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
61 Head1B fcc / ID 0 1 2 3 4 5 6 7 8 9 A B C D E F Program/
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
62 fcb C$CR
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
63
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
64 Head2B fcc /____ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ _______/
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
65 fcb C$CR
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
66
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
67 SysNam fcs "SYSTEM"
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
68 syslen equ *-Sysnam
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
69
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
70 spc 3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
71 ***************************************************
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
72 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
73 Entry stu Umem
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
74 lda #1 start with process 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
75 clr Pid
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
76
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
77 * Print header
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
78 leax buffer,u point at storage
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
79 os9 F$GBlkMp get block info
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
80 bcs Error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
81 cmpd #8192 8k?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
82 beq Set8k
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
83 cmpd #4096 4k?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
84 beq Set4k
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
85 bra Error we only do 4k/8k
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
86
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
87 Set8k lda #64/8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
88 bra Entry1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
89
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
90 Set4k lda #64/4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
91 Entry1 sta blkcnt save size
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
92 leax Hdrcr,pcr print line
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
93 lbsr PrintL1 print it
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
94 lda blkcnt
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
95 cmpa #64/4 4k?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
96 beq Headr4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
97 Headr8 leax Head1A,pcr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
98 lbsr PrintL1 print it
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
99 leax Head2A,pcr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
100 bra Head41
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
101
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
102 Headr4 leax Head1B,pcr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
103 lbsr PrintL1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
104 leax Head2B,pcr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
105 Head41 lbsr PrintL1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
106
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
107 * Main Program Loop
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
108 Main ldu umem
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
109 leax OutBuf,U set line pointer
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
110 stx Lineptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
111 inc Pid next process
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
112 beq Bye >= 255 --> exit
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
113 lda Pid get proc id
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
114 leax Buffer,U set destination
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
115 os9 F$GPrDsc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
116 bcs Main loop if no descriptor
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
117 bsr Output print data for descriptor
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
118 bra Main
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
119
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
120 Bye clrb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
121 Error os9 F$Exit
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
122
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
123 * Subroutines
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
124
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
125 Output lda P$ID,X process id
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
126 lbsr Outdecl
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
127 lbsr Space
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
128 lbsr Space
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
129
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
130 * Print Process DAT Image
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
131 * IN: x = process descriptor
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
132 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
133 pshs X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
134 leax P$DATImg,x point to DAT image
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
135 ldb blkcnt set count
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
136 pshs b
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
137
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
138 PrntImg ldd ,x++ get DAT block
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
139 cmpd #$00FC empty?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
140 bne prntimg2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
141 ldy lineptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
142 ldd #"..
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
143 std ,y++
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
144 sty lineptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
145 lbsr space
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
146 bra prntimg3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
147
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
148 PrntImg2 tfr b,a print block no.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
149 lbsr Out2HS
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
150
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
151 PrntImg3 dec ,s count -= 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
152 bne Prntimg
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
153 puls b,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
154
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
155 * Print primary module name
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
156 * IN: X - process descriptor
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
157 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
158 lbsr Space
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
159 leay P$DATImg,X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
160 tfr Y,D d=dat image
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
161 std datimg save pointer
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
162 ldx P$PModul,X x=offset in map
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
163 bne doname
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
164 leax >sysnam,pcr point at name
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
165 ldy lineptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
166 ldb #syslen
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
167
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
168 Copy lda ,x+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
169 sta ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
170 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
171 bne copy
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
172 bsr Name2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
173 bra Printlin
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
174
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
175 Doname bsr Printnam
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
176
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
177 * Print Line
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
178 Printlin ldx lineptr terminate line
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
179 lda #C$CR
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
180 sta ,X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
181 ldu umem
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
182 leax outbuf,U
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
183
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
184 * Print line
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
185 PrintL1 ldy #80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
186 lda #stdout
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
187 os9 I$Writln
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
188 bcs Error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
189 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
190
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
191 ** Find and print a module name
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
192 * IN: X - module offset
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
193 * U - data area
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
194 * datimg = pointer
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
195 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
196 Printnam equ *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
197
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
198 * Read module header
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
199 pshs U save u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
200 leau hdr,U destination
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
201 ldd datimg proc datimg pointer
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
202 ldy #10 set length
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
203 os9 F$CpyMem
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
204 lbcs Error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
205
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
206 * Read name from Module to buffer
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
207 ldd M$Name,U get name offset from header
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
208 ldu lineptr move name to outbuf
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
209 leax D,X X - offset to name
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
210 ldd datimg
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
211 ldy #maxnam set maximum length
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
212 os9 F$CpyMem
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
213 puls U
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
214 lbcs Error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
215
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
216 Name2 pshs X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
217 ldx lineptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
218 clrb set length = 0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
219 Name3 incb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
220 lda ,X+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
221 bpl Name3
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
222 cmpb #40
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
223 bcc Name5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
224 anda #$7F clear d7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
225 sta -1,X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
226 cmpb #9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
227 bcc Name5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
228 lda #C$SPAC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
229 Name4 sta ,X+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
230 incb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
231 cmpb #9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
232 bcs Name4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
233 Name5 stx lineptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
234 puls X,PC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
235
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
236 * Print hex digit in A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
237 Out2HS bsr Hexl
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
238
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
239 Space lda #C$SPAC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
240 bra Print
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
241
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
242
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
243 * Print Hexidecimal Digit in A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
244 Hexl tfr A,B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
245 lsra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
246 lsra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
247 lsra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
248 lsra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
249 bsr Outhex
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
250 tfr B,A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
251 Outhex anda #$0F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
252 cmpa #$0A 0 - 9
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
253 bcs Outdig
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
254 adda #$07 A - F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
255 Outdig adda #'0 make ASCII
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
256
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
257 * Put character in A in buf
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
258 Print pshs X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
259 ldx lineptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
260 sta ,X+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
261 stx lineptr
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
262 puls X,PC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
263
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
264 * Print 1 Decimal Digit in A
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
265 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
266 Outdecl tfr A,B number to B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
267 clra
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
268
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
269 * Print 2 Decimal Digits in D
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
270 Outdec clr leadflag
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
271 pshs X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
272 ldx umem
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
273 leax number,X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
274 clr ,X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
275 clr 1,X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
276 clr 2,X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
277 Hundred inc ,X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
278 subd #100
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
279 bcc Hundred
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
280 addd #100
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
281 Ten inc 1,X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
282 subd #10
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
283 bcc Ten
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
284 addd #10
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
285 incb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
286 stb 2,X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
287 bsr Printled
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
288 bsr Printled
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
289 bsr Printnum
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
290 bsr Space
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
291 puls X,PC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
292
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
293 Printnum lda ,X+ get char
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
294 adda #'0-1 make ASCII
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
295 bra Print
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
296
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
297 Printled tst leadflag print leading zero?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
298 bne Printnum yes
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
299 ldb ,X is it zero?
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
300 inc leadflag
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
301 decb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
302 bne Printnum no, print zeros
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
303 clr leadflag
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
304 lda #C$SPAC
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
305 leax 1,X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
306 bra Print
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
307
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
308 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
309 Prgsiz equ *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
310 end