Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape21a_acorn_eu_1991_april.wav » MultLbl

MultLbl

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape21a_acorn_eu_1991_april.wav
Filename: MultLbl
Read OK:
File size: 0CC4 bytes
Load address: FFFF1A00
Exec address: FFFF8023
Duplicates

There are 3 duplicate copies of this file in the archive:

File contents
   10REM Multiple Label Lister
   20REM By Stephen Ramplin
   30REM (c) The Micro User
   40MODE135
   50ONERROR MODE7:REPORT:PRINT" at line ";ERL:END
   60top=&12:page=&18:himem=&06:space=&70:address=&72:number=&74:temp=&76
   70oldval=&77:countA=&79:countB=&7B:addressA=&7D:addressB=&7F
   80datatkn=&DC:remtkn=&F4:oswrch=&FFEE:osnewl=&FFE7:oscli=&FFF7
   90PROCassembler
  100PRINT'"Press Return to SAVE the machine code":REPEATUNTILGET=13
  110$&700="SAVE LABEL 900 "+STR$~P%+" "+STR$~start:X%=0:Y%=7:CALLoscli
  120PRINT"Press Return to test the code"':REPEATUNTILGET=13
  130CALLstart:END
  140DEFPROCassembler:FORpass%=0TO2STEP2:P%=&900:[OPTpass%
  150.nextquote INY:LDA(address),Y:CMP#34:BNEnextquote:INY:JSRadd:BEQloop
  160.newline INY:LDA(address),Y:CMP#13:BNEnewline:INY:.prelineend DEY
  170.lineend INY:LDA(address),Y:BMIdone:STAnumber+1:INY:LDA(address),Y
  180STAnumber:INY:INY:JSRadd:BEQloop:.done JMPdone2
  190.start LDAtop:STAspace:LDAtop+1:STAspace+1:LDApage:STAaddress+1
  200LDY#0:STYaddress:.loop LDA(address),Y:CMP#13:BEQlineend:CMP#34
  210BEQnextquote:CMP#datatkn:BEQnewline:CMP#remtkn
  220BEQnewline:CMP#ASC"\":BEQpassrem:CMP#ASC".":BEQcheckiflabel
  230INY:JSRadd:BEQloop:.passrem INY:LDA(address),Y:CMP#13
  240BEQprelineend:CMP#ASC":":BNEpassrem:INY:JSRadd
  250BEQloop:.checkiflabel INY:LDA(address),Y:AND#&DF:CMP#ASC"A"
  260BCCnot:CMP#ASC"Z"+1:BCCstore:.not JSRadd:BEQloop
  270.store JSRadd:LDAaddress:STA(space),Y:INY:LDAaddress+1
  280STA(space),Y:INY:LDAnumber:STA(space),Y:INY:LDAnumber+1:STA(space),Y
  290LDA#4:CLC:ADCspace:STAspace:BCCnocD:INCspace+1
  300.nocD LDAspace+1:CMPhimem+1:BCCloop:LDAspace:CMPhimem
  310BCCloop:BRK:BRK:OPT FNequs("No Room"):BRK
  320.done2 LDAtop:STAcountA:LDAtop+1:STAcountA+1
  330.dloopA LDY#0:LDA(countA),Y:STAaddressA:INY:LDA(countA),Y
  340STAaddressA+1:CLC:LDAcountA
  350ADC#4:STAcountB:LDAcountA+1:ADC#0:STAcountB+1
  360.dloopB LDY#0:LDA(countB),Y:STAaddressB:INY
  370LDA(countB),Y:STAaddressB+1:DEY
  380.dloopC LDA(addressA),Y:CMP(addressB),Y:BNEnotsame
  390CMP#ASC" ":BEQsame:CMP#ASC":":BEQsame:CMP#&0D:BEQsame
  400INY:BNEdloopC:.same STYtemp
  410JSRprint:OPT FNequs("Multiple Definition of ."):BRK:LDY#0
  420.lbloop LDA(addressA),Y:JSRoswrch:INY:CPYtemp:BNElbloop
  430JSRprint:OPT FNequs(" at line "):BRK:LDY#2:LDA(countB),Y
  440STAnumber:INY:LDA(countB),Y:STAnumber+1:JSRplnum
  450JSRosnewl:.notsame CLC:LDAcountB
  460ADC#4:STAcountB:BCCnocB:INCcountB+1:.nocB LDAcountB
  470CMPspace:BNEdloopB:LDAcountB+1
  480CMPspace+1:BNEdloopB:CLC:LDAcountA:ADC#4:STAcountA
  490BCCnocC:INCcountA+1:.nocC
  500SEC:LDAspace:SBC#4:CMPcountA:BEQoverA:JMPdloopA
  510.overA LDAspace+1:SBC#0:CMPcountA+1:BEQoverB:JMPdloopA
  520.overB RTS:.plnum LDA#0:STAtemp:LDY#4:.pnumlp LDX#ASC"0"-1
  530.subloop INX:SEC:LDAnumber:STAoldval:SBCtable_lsb,Y:STAnumber
  540LDAnumber+1:STAoldval+1:SBCtable_msb,Y:STAnumber+1:BPLsubloop
  550LDAoldval:STAnumber:LDAoldval+1:STAnumber+1
  560TXA:CMP#ASC"0":BNEpnum:LDAtemp:BEQpnum:TXA
  570.pnum STAtemp:JSRoswrch:DEY:BPLpnumlp:RTS
  580.table_lsb OPT FNdata("010A64E810"):.table_msb OPT FNdata("0000000327")
  590.print PLA:STAaddress:PLA:STAaddress+1:.ploop
  600LDY#1:JSRadd:LDA(address),Y:BEQpdone:JSRoswrch:JMPploop
  610.pdone LDAaddress+1:PHA:LDAaddress:PHA:RTS
  620.add TYA:CLC:ADCaddress:STAaddress:BCCnoc:INCaddress+1
  630.noc LDY#0:RTS:.test:.test:]
  640NEXTpass%:ENDPROC
  650DEFFNequs(A$):$P%=A$:P%=P%+LENA$:=pass%
  660DEFFNdata(data$):FORC%=1TOLENdata$ STEP2
  670?P%=EVAL("&"+MID$(data$,C%,2)):P%=P%+1:NEXT
  680=pass%

� Multiple Label Lister
� By Stephen Ramplin
� (c) The Micro User
(�135
2� �7:�:�" at line ";�:�
<Htop=&12:page=&18:himem=&06:space=&70:address=&72:number=&74:temp=&76
F>oldval=&77:countA=&79:countB=&7B:addressA=&7D:addressB=&7F
P@datatkn=&DC:remtkn=&F4:oswrch=&FFEE:osnewl=&FFE7:oscli=&FFF7
Z�assembler
d4�'"Press Return to SAVE the machine code":���=13
n=$&700="SAVE LABEL 900 "+�~P%+" "+�~start:X%=0:Y%=7:�oscli
x,�"Press Return to test the code"':���=13
��start:�
�.��assembler:�pass%=0�2�2:P%=&900:[OPTpass%
�H.nextquote INY:LDA(address),Y:CMP#34:BNEnextquote:INY:JSRadd:BEQloop
�E.newline INY:LDA(address),Y:CMP#13:BNEnewline:INY:.prelineend DEY
�F.lineend INY:LDA(address),Y:BMIdone:STAnumber+1:INY:LDA(address),Y
�3STAnumber:INY:INY:JSRadd:BEQloop:.done JMPdone2
�C.start LDAtop:STAspace:LDAtop+1:STAspace+1:LDApage:STAaddress+1
�BLDY#0:STYaddress:.loop LDA(address),Y:CMP#13:BEQlineend:CMP#34
�2BEQnextquote:CMP#datatkn:BEQnewline:CMP#remtkn
�;BEQnewline:CMP#�"\":BEQpassrem:CMP#�".":BEQcheckiflabel
�9INY:JSRadd:BEQloop:.passrem INY:LDA(address),Y:CMP#13
�0BEQprelineend:CMP#�":":BNEpassrem:INY:JSRadd
�;BEQloop:.checkiflabel INY:LDA(address),Y:�#&DF:CMP#�"A"
2BCCnot:CMP#�"Z"+1:BCCstore:.not JSRadd:BEQloop
:.store JSRadd:LDAaddress:STA(space),Y:INY:LDAaddress+1
HSTA(space),Y:INY:LDAnumber:STA(space),Y:INY:LDAnumber+1:STA(space),Y
"2LDA#4:CLC:ADCspace:STAspace:BCCnocD:INCspace+1
,9.nocD LDAspace+1:CMPhimem+1:BCCloop:LDAspace:CMPhimem
6,BCCloop:BRK:BRK:OPT �equs("No Room"):BRK
@0.done2 LDAtop:STAcountA:LDAtop+1:STAcountA+1
J=.dloopA LDY#0:LDA(countA),Y:STAaddressA:INY:LDA(countA),Y
TSTAaddressA+1:CLC:LDAcountA
^1ADC#4:STAcountB:LDAcountA+1:ADC#0:STAcountB+1
h/.dloopB LDY#0:LDA(countB),Y:STAaddressB:INY
r#LDA(countB),Y:STAaddressB+1:DEY
|6.dloopC LDA(addressA),Y:CMP(addressB),Y:BNEnotsame
�5CMP#�" ":BEQsame:CMP#�":":BEQsame:CMP#&0D:BEQsame
�INY:BNEdloopC:.same STYtemp
�<JSRprint:OPT �equs("Multiple Definition of ."):BRK:LDY#0
�;.lbloop LDA(addressA),Y:JSRoswrch:INY:CPYtemp:BNElbloop
�;JSRprint:OPT �equs(" at line "):BRK:LDY#2:LDA(countB),Y
�4STAnumber:INY:LDA(countB),Y:STAnumber+1:JSRplnum
�$JSRosnewl:.notsame CLC:LDAcountB
�7ADC#4:STAcountB:BCCnocB:INCcountB+1:.nocB LDAcountB
�"CMPspace:BNEdloopB:LDAcountB+1
�6CMPspace+1:BNEdloopB:CLC:LDAcountA:ADC#4:STAcountA
�BCCnocC:INCcountA+1:.nocC
�3SEC:LDAspace:SBC#4:CMPcountA:BEQoverA:JMPdloopA
�:.overA LDAspace+1:SBC#0:CMPcountA+1:BEQoverB:JMPdloopA
<.overB RTS:.plnum LDA#0:STAtemp:LDY#4:.pnumlp LDX#�"0"-1
A.subloop INX:SEC:LDAnumber:STAoldval:SBCtable_lsb,Y:STAnumber
ALDAnumber+1:STAoldval+1:SBCtable_msb,Y:STAnumber+1:BPLsubloop
&/LDAoldval:STAnumber:LDAoldval+1:STAnumber+1
0,TXA:CMP#�"0":BNEpnum:LDAtemp:BEQpnum:TXA
:-.pnum STAtemp:JSRoswrch:DEY:BPLpnumlp:RTS
DI.table_lsb OPT �data("010A64E810"):.table_msb OPT �data("0000000327")
N1.print PLA:STAaddress:PLA:STAaddress+1:.ploop
X;LDY#1:JSRadd:LDA(address),Y:BEQpdone:JSRoswrch:JMPploop
b..pdone LDAaddress+1:PHA:LDAaddress:PHA:RTS
l:.add TYA:CLC:ADCaddress:STAaddress:BCCnoc:INCaddress+1
v .noc LDY#0:RTS:.test:.test:]
��pass%:�
�&ݤequs(A$):$P%=A$:P%=P%+�A$:=pass%
�!ݤdata(data$):�C%=1��data$ �2
�%?P%=�("&"+�data$,C%,2)):P%=P%+1:�
�
=pass%
�
00000000  0d 00 0a 1b f4 20 4d 75  6c 74 69 70 6c 65 20 4c  |..... Multiple L|
00000010  61 62 65 6c 20 4c 69 73  74 65 72 0d 00 14 18 f4  |abel Lister.....|
00000020  20 42 79 20 53 74 65 70  68 65 6e 20 52 61 6d 70  | By Stephen Ramp|
00000030  6c 69 6e 0d 00 1e 18 f4  20 28 63 29 20 54 68 65  |lin..... (c) The|
00000040  20 4d 69 63 72 6f 20 55  73 65 72 0d 00 28 08 eb  | Micro User..(..|
00000050  31 33 35 0d 00 32 1c ee  85 20 eb 37 3a f6 3a f1  |135..2... .7:.:.|
00000060  22 20 61 74 20 6c 69 6e  65 20 22 3b 9e 3a e0 0d  |" at line ";.:..|
00000070  00 3c 48 74 6f 70 3d 26  31 32 3a 70 61 67 65 3d  |.<Htop=&12:page=|
00000080  26 31 38 3a 68 69 6d 65  6d 3d 26 30 36 3a 73 70  |&18:himem=&06:sp|
00000090  61 63 65 3d 26 37 30 3a  61 64 64 72 65 73 73 3d  |ace=&70:address=|
000000a0  26 37 32 3a 6e 75 6d 62  65 72 3d 26 37 34 3a 74  |&72:number=&74:t|
000000b0  65 6d 70 3d 26 37 36 0d  00 46 3e 6f 6c 64 76 61  |emp=&76..F>oldva|
000000c0  6c 3d 26 37 37 3a 63 6f  75 6e 74 41 3d 26 37 39  |l=&77:countA=&79|
000000d0  3a 63 6f 75 6e 74 42 3d  26 37 42 3a 61 64 64 72  |:countB=&7B:addr|
000000e0  65 73 73 41 3d 26 37 44  3a 61 64 64 72 65 73 73  |essA=&7D:address|
000000f0  42 3d 26 37 46 0d 00 50  40 64 61 74 61 74 6b 6e  |B=&7F..P@datatkn|
00000100  3d 26 44 43 3a 72 65 6d  74 6b 6e 3d 26 46 34 3a  |=&DC:remtkn=&F4:|
00000110  6f 73 77 72 63 68 3d 26  46 46 45 45 3a 6f 73 6e  |oswrch=&FFEE:osn|
00000120  65 77 6c 3d 26 46 46 45  37 3a 6f 73 63 6c 69 3d  |ewl=&FFE7:oscli=|
00000130  26 46 46 46 37 0d 00 5a  0e f2 61 73 73 65 6d 62  |&FFF7..Z..assemb|
00000140  6c 65 72 0d 00 64 34 f1  27 22 50 72 65 73 73 20  |ler..d4.'"Press |
00000150  52 65 74 75 72 6e 20 74  6f 20 53 41 56 45 20 74  |Return to SAVE t|
00000160  68 65 20 6d 61 63 68 69  6e 65 20 63 6f 64 65 22  |he machine code"|
00000170  3a f5 fd a5 3d 31 33 0d  00 6e 3d 24 26 37 30 30  |:...=13..n=$&700|
00000180  3d 22 53 41 56 45 20 4c  41 42 45 4c 20 39 30 30  |="SAVE LABEL 900|
00000190  20 22 2b c3 7e 50 25 2b  22 20 22 2b c3 7e 73 74  | "+.~P%+" "+.~st|
000001a0  61 72 74 3a 58 25 3d 30  3a 59 25 3d 37 3a d6 6f  |art:X%=0:Y%=7:.o|
000001b0  73 63 6c 69 0d 00 78 2c  f1 22 50 72 65 73 73 20  |scli..x,."Press |
000001c0  52 65 74 75 72 6e 20 74  6f 20 74 65 73 74 20 74  |Return to test t|
000001d0  68 65 20 63 6f 64 65 22  27 3a f5 fd a5 3d 31 33  |he code"':...=13|
000001e0  0d 00 82 0c d6 73 74 61  72 74 3a e0 0d 00 8c 2e  |.....start:.....|
000001f0  dd f2 61 73 73 65 6d 62  6c 65 72 3a e3 70 61 73  |..assembler:.pas|
00000200  73 25 3d 30 b8 32 88 32  3a 50 25 3d 26 39 30 30  |s%=0.2.2:P%=&900|
00000210  3a 5b 4f 50 54 70 61 73  73 25 0d 00 96 48 2e 6e  |:[OPTpass%...H.n|
00000220  65 78 74 71 75 6f 74 65  20 49 4e 59 3a 4c 44 41  |extquote INY:LDA|
00000230  28 61 64 64 72 65 73 73  29 2c 59 3a 43 4d 50 23  |(address),Y:CMP#|
00000240  33 34 3a 42 4e 45 6e 65  78 74 71 75 6f 74 65 3a  |34:BNEnextquote:|
00000250  49 4e 59 3a 4a 53 52 61  64 64 3a 42 45 51 6c 6f  |INY:JSRadd:BEQlo|
00000260  6f 70 0d 00 a0 45 2e 6e  65 77 6c 69 6e 65 20 49  |op...E.newline I|
00000270  4e 59 3a 4c 44 41 28 61  64 64 72 65 73 73 29 2c  |NY:LDA(address),|
00000280  59 3a 43 4d 50 23 31 33  3a 42 4e 45 6e 65 77 6c  |Y:CMP#13:BNEnewl|
00000290  69 6e 65 3a 49 4e 59 3a  2e 70 72 65 6c 69 6e 65  |ine:INY:.preline|
000002a0  65 6e 64 20 44 45 59 0d  00 aa 46 2e 6c 69 6e 65  |end DEY...F.line|
000002b0  65 6e 64 20 49 4e 59 3a  4c 44 41 28 61 64 64 72  |end INY:LDA(addr|
000002c0  65 73 73 29 2c 59 3a 42  4d 49 64 6f 6e 65 3a 53  |ess),Y:BMIdone:S|
000002d0  54 41 6e 75 6d 62 65 72  2b 31 3a 49 4e 59 3a 4c  |TAnumber+1:INY:L|
000002e0  44 41 28 61 64 64 72 65  73 73 29 2c 59 0d 00 b4  |DA(address),Y...|
000002f0  33 53 54 41 6e 75 6d 62  65 72 3a 49 4e 59 3a 49  |3STAnumber:INY:I|
00000300  4e 59 3a 4a 53 52 61 64  64 3a 42 45 51 6c 6f 6f  |NY:JSRadd:BEQloo|
00000310  70 3a 2e 64 6f 6e 65 20  4a 4d 50 64 6f 6e 65 32  |p:.done JMPdone2|
00000320  0d 00 be 43 2e 73 74 61  72 74 20 4c 44 41 74 6f  |...C.start LDAto|
00000330  70 3a 53 54 41 73 70 61  63 65 3a 4c 44 41 74 6f  |p:STAspace:LDAto|
00000340  70 2b 31 3a 53 54 41 73  70 61 63 65 2b 31 3a 4c  |p+1:STAspace+1:L|
00000350  44 41 70 61 67 65 3a 53  54 41 61 64 64 72 65 73  |DApage:STAaddres|
00000360  73 2b 31 0d 00 c8 42 4c  44 59 23 30 3a 53 54 59  |s+1...BLDY#0:STY|
00000370  61 64 64 72 65 73 73 3a  2e 6c 6f 6f 70 20 4c 44  |address:.loop LD|
00000380  41 28 61 64 64 72 65 73  73 29 2c 59 3a 43 4d 50  |A(address),Y:CMP|
00000390  23 31 33 3a 42 45 51 6c  69 6e 65 65 6e 64 3a 43  |#13:BEQlineend:C|
000003a0  4d 50 23 33 34 0d 00 d2  32 42 45 51 6e 65 78 74  |MP#34...2BEQnext|
000003b0  71 75 6f 74 65 3a 43 4d  50 23 64 61 74 61 74 6b  |quote:CMP#datatk|
000003c0  6e 3a 42 45 51 6e 65 77  6c 69 6e 65 3a 43 4d 50  |n:BEQnewline:CMP|
000003d0  23 72 65 6d 74 6b 6e 0d  00 dc 3b 42 45 51 6e 65  |#remtkn...;BEQne|
000003e0  77 6c 69 6e 65 3a 43 4d  50 23 97 22 5c 22 3a 42  |wline:CMP#."\":B|
000003f0  45 51 70 61 73 73 72 65  6d 3a 43 4d 50 23 97 22  |EQpassrem:CMP#."|
00000400  2e 22 3a 42 45 51 63 68  65 63 6b 69 66 6c 61 62  |.":BEQcheckiflab|
00000410  65 6c 0d 00 e6 39 49 4e  59 3a 4a 53 52 61 64 64  |el...9INY:JSRadd|
00000420  3a 42 45 51 6c 6f 6f 70  3a 2e 70 61 73 73 72 65  |:BEQloop:.passre|
00000430  6d 20 49 4e 59 3a 4c 44  41 28 61 64 64 72 65 73  |m INY:LDA(addres|
00000440  73 29 2c 59 3a 43 4d 50  23 31 33 0d 00 f0 30 42  |s),Y:CMP#13...0B|
00000450  45 51 70 72 65 6c 69 6e  65 65 6e 64 3a 43 4d 50  |EQprelineend:CMP|
00000460  23 97 22 3a 22 3a 42 4e  45 70 61 73 73 72 65 6d  |#.":":BNEpassrem|
00000470  3a 49 4e 59 3a 4a 53 52  61 64 64 0d 00 fa 3b 42  |:INY:JSRadd...;B|
00000480  45 51 6c 6f 6f 70 3a 2e  63 68 65 63 6b 69 66 6c  |EQloop:.checkifl|
00000490  61 62 65 6c 20 49 4e 59  3a 4c 44 41 28 61 64 64  |abel INY:LDA(add|
000004a0  72 65 73 73 29 2c 59 3a  80 23 26 44 46 3a 43 4d  |ress),Y:.#&DF:CM|
000004b0  50 23 97 22 41 22 0d 01  04 32 42 43 43 6e 6f 74  |P#."A"...2BCCnot|
000004c0  3a 43 4d 50 23 97 22 5a  22 2b 31 3a 42 43 43 73  |:CMP#."Z"+1:BCCs|
000004d0  74 6f 72 65 3a 2e 6e 6f  74 20 4a 53 52 61 64 64  |tore:.not JSRadd|
000004e0  3a 42 45 51 6c 6f 6f 70  0d 01 0e 3a 2e 73 74 6f  |:BEQloop...:.sto|
000004f0  72 65 20 4a 53 52 61 64  64 3a 4c 44 41 61 64 64  |re JSRadd:LDAadd|
00000500  72 65 73 73 3a 53 54 41  28 73 70 61 63 65 29 2c  |ress:STA(space),|
00000510  59 3a 49 4e 59 3a 4c 44  41 61 64 64 72 65 73 73  |Y:INY:LDAaddress|
00000520  2b 31 0d 01 18 48 53 54  41 28 73 70 61 63 65 29  |+1...HSTA(space)|
00000530  2c 59 3a 49 4e 59 3a 4c  44 41 6e 75 6d 62 65 72  |,Y:INY:LDAnumber|
00000540  3a 53 54 41 28 73 70 61  63 65 29 2c 59 3a 49 4e  |:STA(space),Y:IN|
00000550  59 3a 4c 44 41 6e 75 6d  62 65 72 2b 31 3a 53 54  |Y:LDAnumber+1:ST|
00000560  41 28 73 70 61 63 65 29  2c 59 0d 01 22 32 4c 44  |A(space),Y.."2LD|
00000570  41 23 34 3a 43 4c 43 3a  41 44 43 73 70 61 63 65  |A#4:CLC:ADCspace|
00000580  3a 53 54 41 73 70 61 63  65 3a 42 43 43 6e 6f 63  |:STAspace:BCCnoc|
00000590  44 3a 49 4e 43 73 70 61  63 65 2b 31 0d 01 2c 39  |D:INCspace+1..,9|
000005a0  2e 6e 6f 63 44 20 4c 44  41 73 70 61 63 65 2b 31  |.nocD LDAspace+1|
000005b0  3a 43 4d 50 68 69 6d 65  6d 2b 31 3a 42 43 43 6c  |:CMPhimem+1:BCCl|
000005c0  6f 6f 70 3a 4c 44 41 73  70 61 63 65 3a 43 4d 50  |oop:LDAspace:CMP|
000005d0  68 69 6d 65 6d 0d 01 36  2c 42 43 43 6c 6f 6f 70  |himem..6,BCCloop|
000005e0  3a 42 52 4b 3a 42 52 4b  3a 4f 50 54 20 a4 65 71  |:BRK:BRK:OPT .eq|
000005f0  75 73 28 22 4e 6f 20 52  6f 6f 6d 22 29 3a 42 52  |us("No Room"):BR|
00000600  4b 0d 01 40 30 2e 64 6f  6e 65 32 20 4c 44 41 74  |K..@0.done2 LDAt|
00000610  6f 70 3a 53 54 41 63 6f  75 6e 74 41 3a 4c 44 41  |op:STAcountA:LDA|
00000620  74 6f 70 2b 31 3a 53 54  41 63 6f 75 6e 74 41 2b  |top+1:STAcountA+|
00000630  31 0d 01 4a 3d 2e 64 6c  6f 6f 70 41 20 4c 44 59  |1..J=.dloopA LDY|
00000640  23 30 3a 4c 44 41 28 63  6f 75 6e 74 41 29 2c 59  |#0:LDA(countA),Y|
00000650  3a 53 54 41 61 64 64 72  65 73 73 41 3a 49 4e 59  |:STAaddressA:INY|
00000660  3a 4c 44 41 28 63 6f 75  6e 74 41 29 2c 59 0d 01  |:LDA(countA),Y..|
00000670  54 1f 53 54 41 61 64 64  72 65 73 73 41 2b 31 3a  |T.STAaddressA+1:|
00000680  43 4c 43 3a 4c 44 41 63  6f 75 6e 74 41 0d 01 5e  |CLC:LDAcountA..^|
00000690  31 41 44 43 23 34 3a 53  54 41 63 6f 75 6e 74 42  |1ADC#4:STAcountB|
000006a0  3a 4c 44 41 63 6f 75 6e  74 41 2b 31 3a 41 44 43  |:LDAcountA+1:ADC|
000006b0  23 30 3a 53 54 41 63 6f  75 6e 74 42 2b 31 0d 01  |#0:STAcountB+1..|
000006c0  68 2f 2e 64 6c 6f 6f 70  42 20 4c 44 59 23 30 3a  |h/.dloopB LDY#0:|
000006d0  4c 44 41 28 63 6f 75 6e  74 42 29 2c 59 3a 53 54  |LDA(countB),Y:ST|
000006e0  41 61 64 64 72 65 73 73  42 3a 49 4e 59 0d 01 72  |AaddressB:INY..r|
000006f0  23 4c 44 41 28 63 6f 75  6e 74 42 29 2c 59 3a 53  |#LDA(countB),Y:S|
00000700  54 41 61 64 64 72 65 73  73 42 2b 31 3a 44 45 59  |TAaddressB+1:DEY|
00000710  0d 01 7c 36 2e 64 6c 6f  6f 70 43 20 4c 44 41 28  |..|6.dloopC LDA(|
00000720  61 64 64 72 65 73 73 41  29 2c 59 3a 43 4d 50 28  |addressA),Y:CMP(|
00000730  61 64 64 72 65 73 73 42  29 2c 59 3a 42 4e 45 6e  |addressB),Y:BNEn|
00000740  6f 74 73 61 6d 65 0d 01  86 35 43 4d 50 23 97 22  |otsame...5CMP#."|
00000750  20 22 3a 42 45 51 73 61  6d 65 3a 43 4d 50 23 97  | ":BEQsame:CMP#.|
00000760  22 3a 22 3a 42 45 51 73  61 6d 65 3a 43 4d 50 23  |":":BEQsame:CMP#|
00000770  26 30 44 3a 42 45 51 73  61 6d 65 0d 01 90 1f 49  |&0D:BEQsame....I|
00000780  4e 59 3a 42 4e 45 64 6c  6f 6f 70 43 3a 2e 73 61  |NY:BNEdloopC:.sa|
00000790  6d 65 20 53 54 59 74 65  6d 70 0d 01 9a 3c 4a 53  |me STYtemp...<JS|
000007a0  52 70 72 69 6e 74 3a 4f  50 54 20 a4 65 71 75 73  |Rprint:OPT .equs|
000007b0  28 22 4d 75 6c 74 69 70  6c 65 20 44 65 66 69 6e  |("Multiple Defin|
000007c0  69 74 69 6f 6e 20 6f 66  20 2e 22 29 3a 42 52 4b  |ition of ."):BRK|
000007d0  3a 4c 44 59 23 30 0d 01  a4 3b 2e 6c 62 6c 6f 6f  |:LDY#0...;.lbloo|
000007e0  70 20 4c 44 41 28 61 64  64 72 65 73 73 41 29 2c  |p LDA(addressA),|
000007f0  59 3a 4a 53 52 6f 73 77  72 63 68 3a 49 4e 59 3a  |Y:JSRoswrch:INY:|
00000800  43 50 59 74 65 6d 70 3a  42 4e 45 6c 62 6c 6f 6f  |CPYtemp:BNElbloo|
00000810  70 0d 01 ae 3b 4a 53 52  70 72 69 6e 74 3a 4f 50  |p...;JSRprint:OP|
00000820  54 20 a4 65 71 75 73 28  22 20 61 74 20 6c 69 6e  |T .equs(" at lin|
00000830  65 20 22 29 3a 42 52 4b  3a 4c 44 59 23 32 3a 4c  |e "):BRK:LDY#2:L|
00000840  44 41 28 63 6f 75 6e 74  42 29 2c 59 0d 01 b8 34  |DA(countB),Y...4|
00000850  53 54 41 6e 75 6d 62 65  72 3a 49 4e 59 3a 4c 44  |STAnumber:INY:LD|
00000860  41 28 63 6f 75 6e 74 42  29 2c 59 3a 53 54 41 6e  |A(countB),Y:STAn|
00000870  75 6d 62 65 72 2b 31 3a  4a 53 52 70 6c 6e 75 6d  |umber+1:JSRplnum|
00000880  0d 01 c2 24 4a 53 52 6f  73 6e 65 77 6c 3a 2e 6e  |...$JSRosnewl:.n|
00000890  6f 74 73 61 6d 65 20 43  4c 43 3a 4c 44 41 63 6f  |otsame CLC:LDAco|
000008a0  75 6e 74 42 0d 01 cc 37  41 44 43 23 34 3a 53 54  |untB...7ADC#4:ST|
000008b0  41 63 6f 75 6e 74 42 3a  42 43 43 6e 6f 63 42 3a  |AcountB:BCCnocB:|
000008c0  49 4e 43 63 6f 75 6e 74  42 2b 31 3a 2e 6e 6f 63  |INCcountB+1:.noc|
000008d0  42 20 4c 44 41 63 6f 75  6e 74 42 0d 01 d6 22 43  |B LDAcountB..."C|
000008e0  4d 50 73 70 61 63 65 3a  42 4e 45 64 6c 6f 6f 70  |MPspace:BNEdloop|
000008f0  42 3a 4c 44 41 63 6f 75  6e 74 42 2b 31 0d 01 e0  |B:LDAcountB+1...|
00000900  36 43 4d 50 73 70 61 63  65 2b 31 3a 42 4e 45 64  |6CMPspace+1:BNEd|
00000910  6c 6f 6f 70 42 3a 43 4c  43 3a 4c 44 41 63 6f 75  |loopB:CLC:LDAcou|
00000920  6e 74 41 3a 41 44 43 23  34 3a 53 54 41 63 6f 75  |ntA:ADC#4:STAcou|
00000930  6e 74 41 0d 01 ea 1d 42  43 43 6e 6f 63 43 3a 49  |ntA....BCCnocC:I|
00000940  4e 43 63 6f 75 6e 74 41  2b 31 3a 2e 6e 6f 63 43  |NCcountA+1:.nocC|
00000950  0d 01 f4 33 53 45 43 3a  4c 44 41 73 70 61 63 65  |...3SEC:LDAspace|
00000960  3a 53 42 43 23 34 3a 43  4d 50 63 6f 75 6e 74 41  |:SBC#4:CMPcountA|
00000970  3a 42 45 51 6f 76 65 72  41 3a 4a 4d 50 64 6c 6f  |:BEQoverA:JMPdlo|
00000980  6f 70 41 0d 01 fe 3a 2e  6f 76 65 72 41 20 4c 44  |opA...:.overA LD|
00000990  41 73 70 61 63 65 2b 31  3a 53 42 43 23 30 3a 43  |Aspace+1:SBC#0:C|
000009a0  4d 50 63 6f 75 6e 74 41  2b 31 3a 42 45 51 6f 76  |MPcountA+1:BEQov|
000009b0  65 72 42 3a 4a 4d 50 64  6c 6f 6f 70 41 0d 02 08  |erB:JMPdloopA...|
000009c0  3c 2e 6f 76 65 72 42 20  52 54 53 3a 2e 70 6c 6e  |<.overB RTS:.pln|
000009d0  75 6d 20 4c 44 41 23 30  3a 53 54 41 74 65 6d 70  |um LDA#0:STAtemp|
000009e0  3a 4c 44 59 23 34 3a 2e  70 6e 75 6d 6c 70 20 4c  |:LDY#4:.pnumlp L|
000009f0  44 58 23 97 22 30 22 2d  31 0d 02 12 41 2e 73 75  |DX#."0"-1...A.su|
00000a00  62 6c 6f 6f 70 20 49 4e  58 3a 53 45 43 3a 4c 44  |bloop INX:SEC:LD|
00000a10  41 6e 75 6d 62 65 72 3a  53 54 41 6f 6c 64 76 61  |Anumber:STAoldva|
00000a20  6c 3a 53 42 43 74 61 62  6c 65 5f 6c 73 62 2c 59  |l:SBCtable_lsb,Y|
00000a30  3a 53 54 41 6e 75 6d 62  65 72 0d 02 1c 41 4c 44  |:STAnumber...ALD|
00000a40  41 6e 75 6d 62 65 72 2b  31 3a 53 54 41 6f 6c 64  |Anumber+1:STAold|
00000a50  76 61 6c 2b 31 3a 53 42  43 74 61 62 6c 65 5f 6d  |val+1:SBCtable_m|
00000a60  73 62 2c 59 3a 53 54 41  6e 75 6d 62 65 72 2b 31  |sb,Y:STAnumber+1|
00000a70  3a 42 50 4c 73 75 62 6c  6f 6f 70 0d 02 26 2f 4c  |:BPLsubloop..&/L|
00000a80  44 41 6f 6c 64 76 61 6c  3a 53 54 41 6e 75 6d 62  |DAoldval:STAnumb|
00000a90  65 72 3a 4c 44 41 6f 6c  64 76 61 6c 2b 31 3a 53  |er:LDAoldval+1:S|
00000aa0  54 41 6e 75 6d 62 65 72  2b 31 0d 02 30 2c 54 58  |TAnumber+1..0,TX|
00000ab0  41 3a 43 4d 50 23 97 22  30 22 3a 42 4e 45 70 6e  |A:CMP#."0":BNEpn|
00000ac0  75 6d 3a 4c 44 41 74 65  6d 70 3a 42 45 51 70 6e  |um:LDAtemp:BEQpn|
00000ad0  75 6d 3a 54 58 41 0d 02  3a 2d 2e 70 6e 75 6d 20  |um:TXA..:-.pnum |
00000ae0  53 54 41 74 65 6d 70 3a  4a 53 52 6f 73 77 72 63  |STAtemp:JSRoswrc|
00000af0  68 3a 44 45 59 3a 42 50  4c 70 6e 75 6d 6c 70 3a  |h:DEY:BPLpnumlp:|
00000b00  52 54 53 0d 02 44 49 2e  74 61 62 6c 65 5f 6c 73  |RTS..DI.table_ls|
00000b10  62 20 4f 50 54 20 a4 64  61 74 61 28 22 30 31 30  |b OPT .data("010|
00000b20  41 36 34 45 38 31 30 22  29 3a 2e 74 61 62 6c 65  |A64E810"):.table|
00000b30  5f 6d 73 62 20 4f 50 54  20 a4 64 61 74 61 28 22  |_msb OPT .data("|
00000b40  30 30 30 30 30 30 30 33  32 37 22 29 0d 02 4e 31  |0000000327")..N1|
00000b50  2e 70 72 69 6e 74 20 50  4c 41 3a 53 54 41 61 64  |.print PLA:STAad|
00000b60  64 72 65 73 73 3a 50 4c  41 3a 53 54 41 61 64 64  |dress:PLA:STAadd|
00000b70  72 65 73 73 2b 31 3a 2e  70 6c 6f 6f 70 0d 02 58  |ress+1:.ploop..X|
00000b80  3b 4c 44 59 23 31 3a 4a  53 52 61 64 64 3a 4c 44  |;LDY#1:JSRadd:LD|
00000b90  41 28 61 64 64 72 65 73  73 29 2c 59 3a 42 45 51  |A(address),Y:BEQ|
00000ba0  70 64 6f 6e 65 3a 4a 53  52 6f 73 77 72 63 68 3a  |pdone:JSRoswrch:|
00000bb0  4a 4d 50 70 6c 6f 6f 70  0d 02 62 2e 2e 70 64 6f  |JMPploop..b..pdo|
00000bc0  6e 65 20 4c 44 41 61 64  64 72 65 73 73 2b 31 3a  |ne LDAaddress+1:|
00000bd0  50 48 41 3a 4c 44 41 61  64 64 72 65 73 73 3a 50  |PHA:LDAaddress:P|
00000be0  48 41 3a 52 54 53 0d 02  6c 3a 2e 61 64 64 20 54  |HA:RTS..l:.add T|
00000bf0  59 41 3a 43 4c 43 3a 41  44 43 61 64 64 72 65 73  |YA:CLC:ADCaddres|
00000c00  73 3a 53 54 41 61 64 64  72 65 73 73 3a 42 43 43  |s:STAaddress:BCC|
00000c10  6e 6f 63 3a 49 4e 43 61  64 64 72 65 73 73 2b 31  |noc:INCaddress+1|
00000c20  0d 02 76 20 2e 6e 6f 63  20 4c 44 59 23 30 3a 52  |..v .noc LDY#0:R|
00000c30  54 53 3a 2e 74 65 73 74  3a 2e 74 65 73 74 3a 5d  |TS:.test:.test:]|
00000c40  0d 02 80 0c ed 70 61 73  73 25 3a e1 0d 02 8a 26  |.....pass%:....&|
00000c50  dd a4 65 71 75 73 28 41  24 29 3a 24 50 25 3d 41  |..equs(A$):$P%=A|
00000c60  24 3a 50 25 3d 50 25 2b  a9 41 24 3a 3d 70 61 73  |$:P%=P%+.A$:=pas|
00000c70  73 25 0d 02 94 21 dd a4  64 61 74 61 28 64 61 74  |s%...!..data(dat|
00000c80  61 24 29 3a e3 43 25 3d  31 b8 a9 64 61 74 61 24  |a$):.C%=1..data$|
00000c90  20 88 32 0d 02 9e 25 3f  50 25 3d a0 28 22 26 22  | .2...%?P%=.("&"|
00000ca0  2b c1 64 61 74 61 24 2c  43 25 2c 32 29 29 3a 50  |+.data$,C%,2)):P|
00000cb0  25 3d 50 25 2b 31 3a ed  0d 02 a8 0a 3d 70 61 73  |%=P%+1:.....=pas|
00000cc0  73 25 0d ff                                       |s%..|
00000cc4
MultLbl.m0
MultLbl.m1
MultLbl.m2
MultLbl.m4
MultLbl.m5