annotate level2/cmds/mfree.asm @ 3278:ea1afb494127

defs: Add Bt.Sec for atari and corsham
author Tormod Volden <debian.tormod@gmail.com>
date Sat, 07 Mar 2020 23:52:40 +0100
parents 2ecebda8716b
children
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 * Mfree - Show free memory
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 *
1255
bf6f854a4299 Changed revisions to 0
boisy
parents: 0
diff changeset
6 * Edt/Rev YYYY/MM/DD Modified by
bf6f854a4299 Changed revisions to 0
boisy
parents: 0
diff changeset
7 * Comment
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
8 * ------------------------------------------------------------------
1255
bf6f854a4299 Changed revisions to 0
boisy
parents: 0
diff changeset
9 * 2 ????/??/??
bf6f854a4299 Changed revisions to 0
boisy
parents: 0
diff changeset
10 * Original Tandy/Microware version.
3194
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
11 * 3 2017/05/30 Neal Crook
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
12 * Original version misbehaved if final block in the map was free.
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
13 * That situation never occurs on coco, but it does occur on the mc09
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
14 * target. Inferred behaviour and added comments as a side-effect of
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
15 * debugging effort.
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
16
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
17 nam Mfree
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
18 ttl Show free memory
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
19
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
20 * Disassembled 98/09/11 12:07:32 by Disasm v1.6 (C) 1988 by RML
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
21
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
22 ifp1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
23 use defsfile
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
24 endc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
25
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
26 tylg set Prgrm+Objct
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
27 atrv set ReEnt+rev
1255
bf6f854a4299 Changed revisions to 0
boisy
parents: 0
diff changeset
28 rev set $00
3194
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
29 edition set 3
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
31 mod eom,name,tylg,atrv,start,size
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
32
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
33 freeblks rmb 2
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
34 mapsiz rmb 2
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
35 * pages per block (ie, MS byte of block size)
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
36 ppblk rmb 1
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
37 * 0: print number with leading spaces. 1: print number with leading 0.
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
38 leadzero rmb 1
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
39 * u0006,7,8 store a 24-bit block begin/end address.
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
40 u0006 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
41 u0007 rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
42 u0008 rmb 1
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
43 bufstrt rmb 2
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
44 bufcur rmb 2
1636
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
45 linebuf rmb 80
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
46 mapbuf rmb 1274
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
47 size equ .
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
48
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
49 name fcs /Mfree/
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
50 fcb edition
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
51
1636
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
52 Hdr fcs " Blk Begin End Blks Size"
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
53 fcs " --- ------ ------ ---- ------"
1636
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
54 Ftr fcs " ==== ======"
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
55 fcs " Total: "
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
56
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
57 start leax linebuf,u get line buffer address
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
58 stx <bufstrt and store it away
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
59 stx <bufcur current output position output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
60
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
61 lbsr wrbuf print CR
1636
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
62 leay <Hdr,pcr
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
63 lbsr tobuf 1st line of header to output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
64 lbsr wrbuf ..print it
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
65 lbsr tobuf 2nd line of header to output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
66 lbsr wrbuf ..print it
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
67
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
68 clr <freeblks total number of free blocks
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
69 clr <freeblks+1
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
70 leax <mapbuf,u
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
71 * In: X = 1024-byte buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
72 * Out: D = number of bytes per block
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
73 * Y = system memory block map size
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
74 os9 F$GBlkMp
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
75 sty <mapsiz save map size
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
76 sta <ppblk save MS byte of bytes per block
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
77 ldy #$0000 count of how many blocks we have inspected
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
78
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
79 * Main loop
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
80 * look for a free block (an entry of 0 in the block map)
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
81 loop ldu #$0000 number of free blocks in this sequence
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
82 L00AD tst ,x+ is this block 0?
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
83 beq L00BA yes - found a free block
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
84 leay $01,y total number of blocks we have inspected
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
85 cmpy <mapsiz at the end of the map?
3194
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
86 bne L00AD no, so carry on looking
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
87 bra alldone yes, and the last block was not free, so we're done.
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
88
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
89 * Block number in Y is the first free block of a sequence (tho maybe a sequence of 1)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
90 L00BA tfr y,d
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
91 bsr buf4hex append start block, in hex, to output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
92 lda <ppblk
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
93 pshs y,a
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
94 clra
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
95 clrb
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
96 L00C4 addd $01,s multiply start block by block size to get
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
97 dec ,s begin address
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
98 bne L00C4
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
99 leas $03,s
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
100 std <u0006 2 MS bytes of block begin address
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
101 clr <u0008 1 LS byte of block begin address is 0
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
102 bsr buf6hex append block begin address in hex, to output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
103
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
104 * Look for the last free block in this sequence
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
105 L00D2 leau $01,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
106 leay $01,y
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
107 cmpy <mapsiz
3194
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
108 beq last
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
109
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
110 tst ,x+
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
111 beq L00D2 haven't found it yet..
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
112 last lda <ppblk
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
113 pshs y,a
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
114 clra
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
115 clrb
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
116 L00E5 addd $01,s multiply end block by block size to get
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
117 dec ,s end address
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
118 bne L00E5
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
119 leas $03,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
120 subd #$0001
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
121 std <u0006 2 MS bytes of block end address
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
122 lda #$FF
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
123 sta <u0008 1 LS byte of block end address is $FF
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
124 bsr buf6hex append block end address in hex, to output buffer
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
125 leax -$01,x
3194
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
126 tfr u,d number of blocks in this sequence u->d
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
127 bsr buf4hex append number of blocks, in hex, to output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
128 lbsr L0199 append size, in decimal, to output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
129
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
130 addd <freeblks
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
131 std <freeblks total number of blocks
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
132 bsr wrbuf print this entry
3194
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
133 cmpy <mapsiz
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
134 bne loop loop for next entry
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
135
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
136 * All of the entries have been printed. Print the trailer and totals.
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
137 alldone leay >Ftr,pcr
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
138 bsr tobuf 1st line of footer to output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
139 bsr wrbuf ..print it
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
140 bsr tobuf 2nd line of footer to output buffer
3194
2ecebda8716b mfree.asm: Fix zero-day Block Map entry bug
Neal Crook <foofoobedoo@gmail.com>
parents: 3193
diff changeset
141 ldd <freeblks get total number of blocks
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
142 bsr buf4hex append total number of blocks, in hex, to output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
143 bsr L0199 append total size, in decimal, to output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
144 bsr wrbuf ..print it
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
145 * Successful exit
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
146 clrb
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
147 os9 F$Exit
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
148
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
149 * convert value in D to ASCII hex (4 chars). Append to output buffer, then append "SPACE" to output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
150 buf4hex pshs b,a
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
151 clr <leadzero
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
152 bsr L0145
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
153 tfr b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
154 bsr L0145
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
155 lda #C$SPAC append a space
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
156 bsr bufchr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
157 puls pc,b,a
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
158
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
159 * convert value in u0006,7,8 to ASCII hex (6 chars). Append to output buffer, then append "SPACE" to output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
160 buf6hex clr <leadzero
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
161 lda <u0006
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
162 bsr L0145
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
163 lda <u0007
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
164 bsr L0145
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
165 lda <u0008
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
166 bsr L0145
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
167 lda #C$SPAC append a space
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
168 bra bufchr
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
169
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
170 * convert value in A to ASCII hex (2 chars). Append to output buffer.
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
171 L0145 pshs a
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
172 lsra
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
173 lsra
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
174 lsra
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
175 lsra
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
176 bsr L014F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
177 puls a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
178 L014F anda #$0F
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
179 tsta
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
180 beq L0156
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
181 sta <leadzero
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
182 L0156 tst <leadzero
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
183 bne L015C
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
184 lda #$F0
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
185
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
186 * FALL THROUGH
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
187 * Convert digit to ASCII with leading spaces, add to output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
188 * A is a 0-9 or A-F or $F0.
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
189 * Add $30 converts 0-9 to ASCII "0" - "9"), $F0 to ASCII "SPACE"
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
190 * leaves A-F >$3A so a further 7 is added so $3A->$41 etc. (ASCII "A" - "F")
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
191 L015C adda #$30
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
192 cmpa #$3A
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
193 bcs bufchr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
194 adda #$07
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
195
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
196 * FALL THROUGH
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
197 * Store A at next position in output buffer.
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
198 bufchr pshs x
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
199 ldx <bufcur
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
200 sta ,x+
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
201 stx <bufcur
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
202 puls pc,x
1636
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
203
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
204 * Append CR to the output buffer then print the output buffer
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
205 wrbuf pshs y,x,a
1636
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
206 lda #C$CR
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
207 bsr bufchr
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
208 ldx <bufstrt address of data to write
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
209 stx <bufcur reset output buffer pointer, ready for next line.
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
210 ldy #80 maximum # of bytes - otherwise, stop at CR
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
211 lda #$01 to STDOUT
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
212 os9 I$WritLn
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
213 puls pc,y,x,a
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
214
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
215 * Append string at Y to output buffer. String is terminated by MSB=1
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
216 tobuf lda ,y
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
217 anda #$7F
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
218 bsr bufchr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
219 tst ,y+
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
220 bpl tobuf
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
221 rts
1636
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
222
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
223 DecTbl fdb 10000,1000,100,10,1
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
224 fcb $FF
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
225
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
226 * value in ?? is a number of blocks. Convert to bytes by multiplying by the page size.
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
227 * Convert to ASCII decimal, append to output buffer, append "k" to output buffer
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
228 L0199 pshs y,x,b,a
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
229 lda <ppblk
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
230 pshs a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
231 lda $01,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
232 lsr ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
233 lsr ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
234 bra L01A9
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
235
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
236 L01A7 lslb
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
237 rola
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
238 L01A9 lsr ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
239 bne L01A7
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
240 leas 1,s
1636
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
241 leax <DecTbl,pcr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
242 ldy #$2F20
1636
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
243 L01B6 leay >256,y
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
244 subd ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
245 bcc L01B6
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
246 addd ,x++
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
247 pshs b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
248 tfr y,d
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
249 tst ,x
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
250 bmi L01DE
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
251 ldy #$2F30
1636
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
252 cmpd #'0*256+C$SPAC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
253 bne L01D8
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
254 ldy #$2F20
1636
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
255 lda #C$SPAC
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
256 L01D8 bsr bufchr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
257 puls b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
258 bra L01B6
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
259
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
260 L01DE bsr bufchr
1636
fa494f2dca9a mfree.asm: some minor comments and additions
boisy
parents: 1255
diff changeset
261 lda #'k
3193
489617e567c5 mfree.asm: Improve comment and remove trailing white-space
Neal Crook <foofoobedoo@gmail.com>
parents: 1636
diff changeset
262 bsr bufchr
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
263 leas $02,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
264 puls pc,y,x,b,a
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
265
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
266 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
267 eom equ *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
268 end