Home » CEEFAX disks » telesoftware1.adl » Utils/PDR

Utils/PDR

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 » CEEFAX disks » telesoftware1.adl
Filename: Utils/PDR
Read OK:
File size: 25AF bytes
Load address: 1900
Exec address: 8023
File contents
   10REM Printer Dump for Sideways RAM ( PDR )
   20REM Enhanced version of Printer Dump Program ( PDP )
   30REM Extra Utilies added
   40REM Allan Kelly 1/8/86
   50 
   60line_spacing=&19
   70counter=&77
   80store=&7F
   90oswrch=&FFEE
  100osbyte=&FFF4
  110osnewl=&FFE7
  120osasci=&FFE3
  130 
  140FOR pass=0 TO 2 STEP 2
  150P%=&6000
  160[
  170OPT pass
  180.lang BRK
  190BRK:BRK
  200JMP enter+&2000
  210OPT FNequb(&82)
  220OPT FNequb(copy-&6000)
  230OPT FNequb(2)
  240OPT FNequs("Enhanced PDP for SWR - PDR")
  250.copy BRK
  260OPT FNequs("(C)")
  270OPT FNequs("Allan Kelly 1/8/86")
  280BRK
  290 
  300.enter CMP#9
  310BEQ help
  320CMP#4
  330BEQbrcli
  340CMP#&FE
  350BEQbrbreak
  360RTS
  370.brcli JMPcli+&2000
  380.brbreak JMPbreak+&2000
  390.help PHA
  400TXA
  410PHA
  420TYA
  430PHA
  440LDX#dark MOD 256
  450LDY#(dark DIV 256)+&20
  460JSR display+&2000
  470PLA
  480TAY
  490PLA
  500TAX
  510PLA
  520RTS
  530 
  540.display \ X & Y piont to message
  550STX&70
  560STY&71
  570LDY#0
  580.dback LDA(&70),Y
  590JSR osasci
  600INY
  610CMP#0
  620BNE dback
  630RTS
  640 
  650.dark OPT FNequb(13)
  660OPT FNequs("Printer Dump ROM/RAM")
  670OPT FNequb(13)
  680OPT FNequs("  SCREEN")
  690OPT FNequb(13)
  700OPT FNequs("  START")
  710OPT FNequb(13)
  720OPT FNequs("    Then CTRL with")
  730OPT FNequb(13)
  740OPT FNequs("    f0 - print screen")
  750OPT FNequb(13)
  760OPT FNequs("    f1 - swap screen")
  770OPT FNequb(13)
  780OPT FNequs("    f2 - freeze operation")
  790OPT FNequb(13)
  800OPT FNequs("  STOP")
  810OPT FNequb(13)
  820OPT FNequs("  SPACE <line spacing>")
  830OPT FNequb(13)
  840OPT FNequs("  SWAP")
  850OPT FNequb(13)
  860BRK
  870 
  880.setup LDA#&FF
  890STAdh+&2000
  900LDA#0
  910PHA
  920LDAvectors+&2000
  930CMP#&FF
  940BNEget_vectors
  950PLA
  960RTS
  970.stop LDA#0
  980STAdh+&2000
  990LDAvectors+&2000
 1000CMP#&FF
 1010BEQrelease
 1020LDA#0
 1030RTS
 1040.release SEI
 1050LDAkcv+&2000
 1060STA&228
 1070LDAkcv+&2001
 1080STA&229
 1090CLI
 1100LDA#0
 1110STAvectors+&2000
 1120RTS
 1130.break LDA#&FE
 1140PHA
 1150LDAdh+&2000
 1160BEQno_go
 1170.get_vectors LDA&228
 1180STAkcv+&2000
 1190LDA&229
 1200STAkcv+&2001
 1210LDA#key MOD 256
 1220STA&DDB
 1230LDA#(key DIV 256)+&20
 1240STA&DDC
 1250LDA&F4
 1260STA&DDD
 1270SEI
 1280LDA#&3C
 1290STA&228
 1300LDA#&FF
 1310STA&229
 1320CLI
 1330LDA#&FF
 1340STAvectors+&2000
 1350.no_go PLA
 1360RTS
 1370.key PHP
 1380BCCelse
 1390BVCelse
 1400LDApdp_running+&2000
 1410BNEelse
 1420CLC
 1430CLV
 1440JSRjumpkcv+&2000
 1450BMI functions
 1460.else PLP
 1470.jumpkcv JMP(kcv+&2000)
 1480.kcv BRK:BRK
 1490.functions STXsx+&2000
 1500STYsy+&2000
 1510LDX#(&20 EOR&80)
 1520SEC
 1530CLV
 1540JSRjumpkcv+&2000
 1550CMP#0
 1560BMI pdp
 1570LDX#(&71 EOR&80)
 1580JSRjumpkcv+&2000
 1590CMP#0
 1600BMI key_swap
 1610LDX#(&72 EOR&80)
 1620JSRjumpkcv+&2000
 1630CMP#0
 1640BMIbr_wait
 1650.backos LDXsx+&2000
 1660LDYsy+&2000
 1670JMPelse+&2000
 1680.key_swap JSRswap_screens+&2000
 1690JMPbackos+&2000
 1700.br_wait JMPwait+&2000
 1710.pdp LDA#&FF
 1720STApdp_running+&2000
 1730CLI
 1740JSRstart+&2000
 1750SEI
 1760LDA#0
 1770STApdp_running+&2000
 1780JMPbackos+&2000
 1790.print JSRstart+&2000
 1800LDA#0
 1810RTS
 1820 
 1830.initial LDY#&22 \ save z page
 1840.ret LDA&6F,Y
 1850STAz_page+&2000,Y
 1860LDA#0
 1870STA&6F,Y
 1880DEY
 1890CPY#&FF
 1900BNE ret
 1910LDA#&87
 1920JSR osbyte
 1930CPY#7
 1940BEQ out
 1950CPY#5
 1960BEQ out
 1970CPY#2
 1980BEQ out
 1990CPY#1
 2000BNE jump
 2010.out LDA#7
 2020JSR oswrch
 2030SEC
 2040RTS
 2050.jump STY&70
 2060LDA#&A0
 2070LDX#&50
 2080LDY#0
 2090JSR osbyte
 2100STX&71
 2110STY&72
 2120LDA#&7F
 2130STA&74
 2140LDY&70
 2150CPY#3
 2160BNE jump2
 2170STA&73
 2180LDA#&7E
 2190STA&74
 2200JMP jump3+&2000
 2210.jump2 CPY#6
 2220BEQ jump4
 2230LDX#&FF
 2240STX&73
 2250JMP jump3+&2000
 2260.jump4 LDA#&3F
 2270STA&73
 2280.jump3 LDA#&84
 2290JSR osbyte
 2300STX&75
 2310STY&76
 2320LDA&71
 2330STA counter
 2340LDA&72
 2350STA counter+1
 2360LDA&70
 2370CMP#4
 2380BCS mode46
 2390LDA#&80
 2400STA&7B
 2410LDA#2
 2420STA&7C
 2430LDA#ASC"L"
 2440STActrl_char+&2000
 2450JMP jump5+&2000
 2460.mode46 LDA#ASC"K"
 2470STActrl_char+&2000
 2480LDA#&40
 2490STA&7B
 2500LDA#1
 2510STA&7C
 2520.jump5
 2530LDA&70
 2540CMP#3
 2550BEQ jump6b
 2560CMP#6
 2570BNE jump6
 2580.jump6b LDA#&C8
 2590STA&7D
 2600JMP jump7+&2000
 2610.jump6 LDA#1
 2620STA&7E
 2630.jump7
 2640\ end of initial set up
 2650CLC
 2660RTS
 2670 
 2680.prepear LDY#0 \ prepear printer to accept a line of char's
 2690.back LDA#1 \ VDU1 is always needed
 2700JSR oswrch
 2710LDA control+&2000,Y
 2720JSR oswrch
 2730INY
 2740CPY#3
 2750BNE back
 2760LDA#1
 2770JSR oswrch
 2780LDA&7B
 2790JSR oswrch
 2800LDA#1
 2810JSR oswrch
 2820LDA&7C
 2830JSR oswrch
 2840RTS
 2850 
 2860.decode LDX#0
 2870.nbe LDA#0
 2880STA store
 2890LDY#0
 2900.nbb LDA (counter),Y
 2910AND add+&2000,X
 2920BEQ no_set
 2930LDA store
 2940ORA add+&2000,Y
 2950STA store
 2960.no_set INY
 2970CPY#8
 2980BNE nbb
 2990LDA#1
 3000JSR oswrch
 3010LDA store
 3020JSR oswrch
 3030INX
 3040CPX#8
 3050BNE nbe
 3060RTS
 3070 
 3080.start JSR initial+&2000
 3090BCC on
 3100JMP re_swap+&2000
 3110.on LDA#2
 3120JSR oswrch
 3130LDY#0
 3140.bpatch LDA#1
 3150JSR oswrch
 3160LDA line+&2000,Y
 3170JSR oswrch
 3180INY
 3190CPY#3
 3200BNE bpatch
 3210.new_row JSR prepear+&2000
 3220.next8 JSR decode+&2000
 3230LDA counter
 3240CLC
 3250ADC#8
 3260STA counter
 3270LDA counter+1
 3280ADC#0
 3290STA counter+1
 3300ADC#0
 3310STA counter+1
 3320LDA&82
 3330CLC
 3340ADC#8
 3350STA&82
 3360TAY
 3370LDA&83
 3380ADC#0
 3390STA&83
 3400CMP&7C
 3410BNE next8
 3420CPY&7B
 3430BNE next8
 3440LDA#0
 3450STA&82
 3460STA&83
 3470LDA counter+1
 3480CMP&74
 3490BCC miss
 3500LDA&75
 3510STA counter
 3520LDA&76
 3530STA counter+1
 3540.miss LDA&79
 3550CLC
 3560ADC#8
 3570STA&79
 3580TAY
 3590LDA&7A
 3600ADC#0
 3610STA&7A
 3620CMP&7E
 3630BCC new_row
 3640CPY&7D
 3650BCC new_row
 3660LDY#16
 3670.clean LDA#1
 3680JSR oswrch
 3690LDA#0
 3700JSR oswrch
 3710DEY
 3720BNE clean
 3730LDA#1
 3740JSR oswrch
 3750LDA#27
 3760JSR oswrch
 3770LDA#1
 3780JSR oswrch
 3790LDA#64
 3800JSR oswrch
 3810LDA#3
 3820JSR oswrch
 3830.re_swap LDY#&22
 3840.ret_z LDAz_page+&2000,Y
 3850STA&6F,Y
 3860DEY
 3870BNEret_z
 3880RTS
 3890.control \ control characters
 3900OPT FNequb(13) \ CR
 3910OPT FNequb(27) \ ESCape
 3920.ctrl_char OPT FNequb(ASC"K")
 3930.add OPT FNequb(&80)
 3940OPT FNequb(&40)
 3950OPT FNequb(&20)
 3960OPT FNequb(&10)
 3970OPT FNequb(8)
 3980OPT FNequb(4)
 3990OPT FNequb(2)
 4000OPT FNequb(1)
 4010.pin OPT FNequd(0)
 4020OPT FNequd(0)
 4030.line OPT FNequb(27)
 4040OPT FNequb(ASC"3")
 4050.space OPT FNequb(line_spacing)
 4060.pdp_running BRK
 4070.sx BRK
 4080.sy BRK
 4090.sy2 BRK
 4100.sa BRK
 4110.dh BRK
 4120.z_page OPT FNbytes32(0) \ temporay store for &70-&8F
 4130BRK
 4140BRK
 4150 
 4160\ Parser
 4170 
 4180.cli STY sy+&2000
 4190LDA(&F2),Y
 4200ORA#&20
 4210CMP#ASC"p"
 4220BNE past
 4230INY
 4240.past STY sy2+&2000
 4250LDX#0
 4260STX cocount+&2000
 4270.cba2 LDY sy2+&2000
 4280.cba1 LDA(&F2),Y
 4290ORA#&20
 4300CMP#&20
 4310BEQ end_com
 4320CMP#&2D
 4330BEQ end_com
 4340CMP comms+&2000,X
 4350BNE next_com
 4360INX
 4370INY
 4380JMP cba1+&2000
 4390.next_com LDA comms+&2000,X
 4400CMP#&FF
 4410BEQ bad_com
 4420CMP#&2D
 4430BEQ upto_next_com
 4440CMP#&20
 4450BEQ upto_next_com
 4460INX
 4470JMP next_com+&2000
 4480.upto_next_com INX
 4490INC cocount+&2000
 4500JMP cba2+&2000
 4510.end_com LDA comms+&2000,X
 4520CMP#&20
 4530BEQ cfo3
 4540CMP#&2D
 4550BNE next_com
 4560.cfo3 LDA cocount+&2000
 4570ASL A
 4580TAX
 4590LDA com_addr+&2000,X
 4600STA cojump+&2000
 4610LDA com_addr+&2001,X
 4620STA cojump+&2001
 4630JMP(cojump+&2000)
 4640.bad_com LDA#4
 4650LDYsy+&2000
 4660RTS
 4670.cojump BRK:BRK
 4680.cocount BRK
 4690.vectors BRK
 4700.comms OPT FNequs("start")
 4710OPT FNequb(&2D)
 4720OPT FNequs("stop")
 4730OPT FNequb(&2D)
 4740OPT FNequs("screen")
 4750OPT FNequb(&2D)
 4760OPT FNequs("swap")
 4770OPT FNequb(&2D)
 4780OPT FNequs("space")
 4790OPT FNequb(&20)
 4800OPT FNequb(&FF)
 4810.com_addr OPT FNequw(setup+&2000)
 4820OPT FNequw(stop+&2000)
 4830OPT FNequw(print+&2000)
 4840OPT FNequw(com_swap+&2000)
 4850OPT FNequw(set_spacing+&2000)
 4860.com_swap JSRswap_screens+&2000
 4870LDA#0
 4880RTS
 4890.brtoobig JMP too_big+&2000
 4900.swap_screens LDA#&87
 4910JSRosbyte
 4920CPY#4
 4930BCCbrtoobig
 4940STYmode+&2000
 4950LDA#&84
 4960JSRosbyte
 4970SEI
 4980LDA&70
 4990STAst+&2000
 5000LDA&71
 5010STAst+&2001
 5020LDA&72
 5030STAst+&2002
 5040LDA&73
 5050STAst+&2003
 5060STY&71
 5070STX&70
 5080LDAr12+&2000
 5090PHA
 5100LDAr13+&2000
 5110PHA
 5120LDA&350
 5130STAr13+&2000
 5140LDA&351
 5150STAr12+&2000
 5160LDA#&98
 5170STA&73
 5180LDY#0
 5190STY&72
 5200.swba LDA(&70),Y
 5210PHA
 5220LDA(&72),Y
 5230STA(&70),Y
 5240PLA
 5250STA(&72),Y
 5260INY
 5270BNEswba
 5280INC&71
 5290INC&73
 5300LDA&71
 5310CMP#&80
 5320BNEswba
 5330LDAmode+&2000
 5340CMP#7
 5350BNEother_mode
 5360LDA#&D
 5370STA&FE00
 5380PLA
 5390STA&350
 5400STA&FE01
 5410LDA#&C
 5420STA&FE00
 5430PLA
 5440STA&351
 5450SEC
 5460SBC#&74
 5470EOR#&20
 5480STA&FE01
 5490LDAst+&2000
 5500STA&70
 5510LDAst+&2001
 5520STA&71
 5530LDAst+&2002
 5540STA&72
 5550LDAst+&2003
 5560STA&73
 5570LDX#64
 5580.m LDY#&FF
 5590.m2 NOP
 5600DEY
 5610BNE m2
 5620DEX
 5630BNE m
 5640CLI
 5650RTS
 5660.other_mode LDA#&D
 5670STA&FE00
 5680PLA
 5690STA&350
 5700LSR A:LSR A:LSR A
 5710STA&FE01
 5720LDA#&C
 5730STA&FE00
 5740PLA
 5750STA&351
 5760LSR A:LSR A:LSR A
 5770STA&FE01
 5780RTS
 5790.mode BRK
 5800.r12 BRK
 5810.r13 BRK
 5820.st OPT FNequd(0)
 5830.too_big LDY#0
 5840.tbba LDAerror+&2000,Y
 5850STA&100,Y
 5860INY
 5870CPY#11
 5880JMP&100
 5890.error BRK
 5900OPT FNequb(25)
 5910OPT FNequs("Bad Mode")
 5920BRK
 5930.set_spacing INY
 5940.cba3 INY
 5950LDA(&F2),Y
 5960JSR valid_asc+&2000
 5970BCS cba3
 5980JSR asc_hex+&2000
 5990STA sa+&2000
 6000INY
 6010LDA(&F2),Y
 6020JSR valid_asc+&2000
 6030BCS was
 6040ASL sa+&2000:ASL sa+&2000
 6050ASL sa+&2000:ASL sa+&2000
 6060ORA sa+&2000
 6070STA space+&2000
 6080LDA#0
 6090STA pdp_running
 6100RTS
 6110.was LDA sa+&2000
 6120STA space+&2000
 6130LDA#0
 6140RTS
 6150.asc_hex SEC
 6160SBC#&30
 6170CMP#10
 6180BCC cfo2
 6190SEC
 6200SBC#7
 6210.cfo2 RTS
 6220.valid_asc CMP#&30
 6230BMI cset
 6240CMP#&47
 6250BCS cset
 6260CMP#&3A
 6270BMI cclear
 6280CMP#&40
 6290BMI cset
 6300.cclear CLC
 6310RTS
 6320.cset SEC
 6330RTS
 6340 
 6350.wait LDX#8
 6360.l2 LDY#&FF
 6370.l NOP
 6380DEY
 6390BNE l
 6400DEX
 6410BNE l2
 6420CLI
 6430LDA#&FF
 6440EOR ok+&2000
 6450STA ok+&2000
 6460.waiting LDA ok+&2000
 6470CMP#&FF
 6480BEQ waiting
 6490JMP backos+&2000
 6500.ok BRK
 6510]
 6520NEXT
 6530PRINT'"*RUN UP now"
 6540PRINT"Then press Break and *HELP"
 6550END
 6560DEFFNequb(x)
 6570?P%=x
 6580P%=P%+1
 6590:=pass
 6600DEFFNequw(x)
 6610!P%=x
 6620P%=P%+2
 6630:=pass
 6640DEFFNequd(x)
 6650!P%=x
 6660P%=P%+4
 6670:=pass
 6680DEFFNequs(x$)
 6690$P%=x$
 6700P%=P%+LEN(x$)
 6710:=pass
 6720DEFFNbytes32(x)
 6730FOR x%=P% TO P%+32
 6740?x%=x
 6750NEXT
 6760P%=P%+32
 6770:=pass

+� Printer Dump for Sideways RAM ( PDR )
6� Enhanced version of Printer Dump Program ( PDP )
� Extra Utilies added
(� Allan Kelly 1/8/86
2 
<line_spacing=&19
Fcounter=&77
P
store=&7F
Zoswrch=&FFEE
dosbyte=&FFF4
nosnewl=&FFE7
xosasci=&FFE3
� 
�� pass=0 � 2 � 2
�P%=&6000
�[
�OPT pass
�
.lang BRK
�BRK:BRK
�JMP enter+&2000
�OPT �equb(&82)
�OPT �equb(copy-&6000)
�OPT �equb(2)
�+OPT �equs("Enhanced PDP for SWR - PDR")
�
.copy BRK
OPT �equs("(C)")
#OPT �equs("Allan Kelly 1/8/86")
BRK
" 
,.enter CMP#9
6BEQ help
@	CMP#4
JBEQbrcli
TCMP#&FE
^BEQbrbreak
hRTS
r.brcli JMPcli+&2000
|.brbreak JMPbreak+&2000
�
.help PHA
�TXA
�PHA
�TYA
�PHA
�LDX#dark � 256
�LDY#(dark � 256)+&20
�JSR display+&2000
�PLA
�TAY
�PLA
�TAX
�PLA
RTS
 
%.display \ X & Y piont to message
&
STX&70
0
STY&71
:	LDY#0
D.dback LDA(&70),Y
NJSR osasci
XINY
b	CMP#0
l
BNE dback
vRTS
� 
�.dark OPT �equb(13)
�%OPT �equs("Printer Dump ROM/RAM")
�OPT �equb(13)
�OPT �equs("  SCREEN")
�OPT �equb(13)
�OPT �equs("  START")
�OPT �equb(13)
�#OPT �equs("    Then CTRL with")
�OPT �equb(13)
�&OPT �equs("    f0 - print screen")
�OPT �equb(13)
�%OPT �equs("    f1 - swap screen")
OPT �equb(13)
*OPT �equs("    f2 - freeze operation")
OPT �equb(13)
 OPT �equs("  STOP")
*OPT �equb(13)
4'OPT �equs("  SPACE <line spacing>")
>OPT �equb(13)
HOPT �equs("  SWAP")
ROPT �equb(13)
\BRK
f 
p.setup LDA#&FF
zSTAdh+&2000
�	LDA#0
�PHA
�LDAvectors+&2000
�CMP#&FF
�BNEget_vectors
�PLA
�RTS
�.stop LDA#0
�STAdh+&2000
�LDAvectors+&2000
�CMP#&FF
�BEQrelease
�	LDA#0
RTS
.release SEI
LDAkcv+&2000
$STA&228
.LDAkcv+&2001
8STA&229
BCLI
L	LDA#0
VSTAvectors+&2000
`RTS
j.break LDA#&FE
tPHA
~LDAdh+&2000
�BEQno_go
�.get_vectors LDA&228
�STAkcv+&2000
�LDA&229
�STAkcv+&2001
�LDA#key � 256
�STA&DDB
�LDA#(key � 256)+&20
�STA&DDC
�
LDA&F4
�STA&DDD
�SEI
LDA#&3C

STA&228
LDA#&FF
STA&229
(CLI
2LDA#&FF
<STAvectors+&2000
F.no_go PLA
PRTS
Z.key PHP
dBCCelse
nBVCelse
xLDApdp_running+&2000
�BNEelse
�CLC
�CLV
�JSRjumpkcv+&2000
�BMI functions
�
.else PLP
�.jumpkcv JMP(kcv+&2000)
�.kcv BRK:BRK
�.functions STXsx+&2000
�STYsy+&2000
�LDX#(&20 �&80)
�SEC
�CLV
JSRjumpkcv+&2000
	CMP#0
BMI pdp
"LDX#(&71 �&80)
,JSRjumpkcv+&2000
6	CMP#0
@BMI key_swap
JLDX#(&72 �&80)
TJSRjumpkcv+&2000
^	CMP#0
hBMIbr_wait
r.backos LDXsx+&2000
|LDYsy+&2000
�JMPelse+&2000
�#.key_swap JSRswap_screens+&2000
�JMPbackos+&2000
�.br_wait JMPwait+&2000
�.pdp LDA#&FF
�STApdp_running+&2000
�CLI
�JSRstart+&2000
�SEI
�	LDA#0
�STApdp_running+&2000
�JMPbackos+&2000
�.print JSRstart+&2000
	LDA#0
RTS
 
&".initial LDY#&22 \ save z page
0.ret LDA&6F,Y
:STAz_page+&2000,Y
D	LDA#0
NSTA&6F,Y
XDEY
bCPY#&FF
lBNE ret
vLDA#&87
�JSR osbyte
�	CPY#7
�BEQ out
�	CPY#5
�BEQ out
�	CPY#2
�BEQ out
�	CPY#1
�BNE jump
�.out LDA#7
�JSR oswrch
�SEC
�RTS
.jump STY&70
LDA#&A0
LDX#&50
 	LDY#0
*JSR osbyte
4
STX&71
>
STY&72
HLDA#&7F
R
STA&74
\
LDY&70
f	CPY#3
p
BNE jump2
z
STA&73
�LDA#&7E
�
STA&74
�JMP jump3+&2000
�.jump2 CPY#6
�
BEQ jump4
�LDX#&FF
�
STX&73
�JMP jump3+&2000
�.jump4 LDA#&3F
�
STA&73
�.jump3 LDA#&84
�JSR osbyte
�
STX&75
	
STY&76
	
LDA&71
	STA counter
	$
LDA&72
	.STA counter+1
	8
LDA&70
	B	CMP#4
	LBCS mode46
	VLDA#&80
	`
STA&7B
	j	LDA#2
	t
STA&7C
	~LDA#�"L"
	�STActrl_char+&2000
	�JMP jump5+&2000
	�.mode46 LDA#�"K"
	�STActrl_char+&2000
	�LDA#&40
	�
STA&7B
	�	LDA#1
	�
STA&7C
	�
.jump5
	�
LDA&70
	�	CMP#3
	�BEQ jump6b
	CMP#6


BNE jump6
.jump6b LDA#&C8

STA&7D
(JMP jump7+&2000
2.jump6 LDA#1
<
STA&7E
F
.jump7
P\ end of initial set up
ZCLC
dRTS
n 
x?.prepear LDY#0 \ prepear printer to accept a line of char's
�%.back LDA#1 \ �1 is always needed
�JSR oswrch
�LDA control+&2000,Y
�JSR oswrch
�INY
�	CPY#3
�BNE back
�	LDA#1
�JSR oswrch
�
LDA&7B
�JSR oswrch
�	LDA#1
�JSR oswrch

LDA&7C
JSR oswrch
RTS
" 
,.decode LDX#0
6.nbe LDA#0
@
STA store
J	LDY#0
T.nbb LDA (counter),Y
^� add+&2000,X
hBEQ no_set
r
LDA store
|�A add+&2000,Y
�
STA store
�.no_set INY
�	CPY#8
�BNE nbb
�	LDA#1
�JSR oswrch
�
LDA store
�JSR oswrch
�INX
�	CPX#8
�BNE nbe
�RTS
� 
.start JSR initial+&2000

BCC on
JMP re_swap+&2000
&
.on LDA#2
0JSR oswrch
:	LDY#0
D.bpatch LDA#1
NJSR oswrch
XLDA line+&2000,Y
bJSR oswrch
lINY
v	CPY#3
�BNE bpatch
�.new_row JSR prepear+&2000
�.next8 JSR decode+&2000
�LDA counter
�CLC
�	ADC#8
�STA counter
�LDA counter+1
�	ADC#0
�STA counter+1
�	ADC#0
�STA counter+1
�
LDA&82

CLC

	ADC#8


STA&82

 TAY

*
LDA&83

4	ADC#0

>
STA&83

H
CMP&7C

R
BNE next8

\
CPY&7B

f
BNE next8

p	LDA#0

z
STA&82

�
STA&83

�LDA counter+1

�
CMP&74

�BCC miss

�
LDA&75

�STA counter

�
LDA&76

�STA counter+1

�.miss LDA&79

�CLC

�	ADC#8

�
STA&79

�TAY

LDA&7A
	ADC#0

STA&7A
$
CMP&7E
.BCC new_row
8
CPY&7D
BBCC new_row
L
LDY#16
V.clean LDA#1
`JSR oswrch
j	LDA#0
tJSR oswrch
~DEY
�
BNE clean
�	LDA#1
�JSR oswrch
�
LDA#27
�JSR oswrch
�	LDA#1
�JSR oswrch
�
LDA#64
�JSR oswrch
�	LDA#3
�JSR oswrch
�.re_swap LDY#&22
.ret_z LDAz_page+&2000,Y

STA&6F,Y
DEY
BNEret_z
(RTS
2!.control \ control characters
<OPT �equb(13) \ CR
FOPT �equb(27) \ ESCape
P.ctrl_char OPT �equb(�"K")
Z.add OPT �equb(&80)
dOPT �equb(&40)
nOPT �equb(&20)
xOPT �equb(&10)
�OPT �equb(8)
�OPT �equb(4)
�OPT �equb(2)
�OPT �equb(1)
�.pin OPT �equd(0)
�OPT �equd(0)
�.line OPT �equb(27)
�OPT �equb(�"3")
�".space OPT �equb(line_spacing)
�.pdp_running BRK
�.sx BRK
�.sy BRK
�.sy2 BRK
.sa BRK
.dh BRK
8.z_page OPT �bytes32(0) \ temporay store for &70-&8F
"BRK
,BRK
6 
@\ Parser
J 
T.cli STY sy+&2000
^LDA(&F2),Y
h
�A#&20
rCMP#�"p"
|BNE past
�INY
�.past STY sy2+&2000
�	LDX#0
�STX cocount+&2000
�.cba2 LDY sy2+&2000
�.cba1 LDA(&F2),Y
�
�A#&20
�CMP#&20
�BEQ end_com
�CMP#&2D
�BEQ end_com
�CMP comms+&2000,X
�BNE next_com
INX
INY
JMP cba1+&2000
&.next_com LDA comms+&2000,X
0CMP#&FF
:BEQ bad_com
DCMP#&2D
NBEQ upto_next_com
XCMP#&20
bBEQ upto_next_com
lINX
vJMP next_com+&2000
�.upto_next_com INX
�INC cocount+&2000
�JMP cba2+&2000
�.end_com LDA comms+&2000,X
�CMP#&20
�BEQ cfo3
�CMP#&2D
�BNE next_com
�.cfo3 LDA cocount+&2000
�	ASL A
�TAX
�LDA com_addr+&2000,X
�STA cojump+&2000
LDA com_addr+&2001,X
STA cojump+&2001
JMP(cojump+&2000)
 .bad_com LDA#4
*LDYsy+&2000
4RTS
>.cojump BRK:BRK
H.cocount BRK
R.vectors BRK
\.comms OPT �equs("start")
fOPT �equb(&2D)
pOPT �equs("stop")
zOPT �equb(&2D)
�OPT �equs("screen")
�OPT �equb(&2D)
�OPT �equs("swap")
�OPT �equb(&2D)
�OPT �equs("space")
�OPT �equb(&20)
�OPT �equb(&FF)
�$.com_addr OPT �equw(setup+&2000)
�OPT �equw(stop+&2000)
�OPT �equw(print+&2000)
�OPT �equw(com_swap+&2000)
� OPT �equw(set_spacing+&2000)
�#.com_swap JSRswap_screens+&2000
	LDA#0
RTS
.brtoobig JMP too_big+&2000
$.swap_screens LDA#&87
.
JSRosbyte
8	CPY#4
BBCCbrtoobig
LSTYmode+&2000
VLDA#&84
`
JSRosbyte
jSEI
t
LDA&70
~STAst+&2000
�
LDA&71
�STAst+&2001
�
LDA&72
�STAst+&2002
�
LDA&73
�STAst+&2003
�
STY&71
�
STX&70
�LDAr12+&2000
�PHA
�LDAr13+&2000
�PHA
LDA&350

STAr13+&2000
LDA&351
STAr12+&2000
(LDA#&98
2
STA&73
<	LDY#0
F
STY&72
P.swba LDA(&70),Y
ZPHA
dLDA(&72),Y
nSTA(&70),Y
xPLA
�STA(&72),Y
�INY
�BNEswba
�
INC&71
�
INC&73
�
LDA&71
�CMP#&80
�BNEswba
�LDAmode+&2000
�	CMP#7
�BNEother_mode
�
LDA#&D
�STA&FE00
PLA
STA&350
STA&FE01
"
LDA#&C
,STA&FE00
6PLA
@STA&351
JSEC
TSBC#&74
^	�#&20
hSTA&FE01
rLDAst+&2000
|
STA&70
�LDAst+&2001
�
STA&71
�LDAst+&2002
�
STA&72
�LDAst+&2003
�
STA&73
�
LDX#64
�.m LDY#&FF
�.m2 NOP
�DEY
�
BNE m2
�DEX
�	BNE m
CLI
RTS
.other_mode LDA#&D
&STA&FE00
0PLA
:STA&350
DLSR A:LSR A:LSR A
NSTA&FE01
X
LDA#&C
bSTA&FE00
lPLA
vSTA&351
�LSR A:LSR A:LSR A
�STA&FE01
�RTS
�
.mode BRK
�.r12 BRK
�.r13 BRK
�.st OPT �equd(0)
�.too_big LDY#0
�.tbba LDAerror+&2000,Y
�
STA&100,Y
�INY
�
CPY#11
�JMP&100
.error BRK
OPT �equb(25)
OPT �equs("Bad Mode")
 BRK
*.set_spacing INY
4
.cba3 INY
>LDA(&F2),Y
HJSR valid_asc+&2000
RBCS cba3
\JSR asc_hex+&2000
fSTA sa+&2000
pINY
zLDA(&F2),Y
�JSR valid_asc+&2000
�BCS was
�ASL sa+&2000:ASL sa+&2000
�ASL sa+&2000:ASL sa+&2000
��A sa+&2000
�STA space+&2000
�	LDA#0
�STA pdp_running
�RTS
�.was LDA sa+&2000
�STA space+&2000
�	LDA#0
�RTS
.asc_hex SEC
SBC#&30

CMP#10
$BCC cfo2
.SEC
8	SBC#7
B
.cfo2 RTS
L.valid_asc CMP#&30
VBMI cset
`CMP#&47
jBCS cset
tCMP#&3A
~BMI cclear
�CMP#&40
�BMI cset
�.cclear CLC
�RTS
�
.cset SEC
�RTS
� 
�.wait LDX#8
�.l2 LDY#&FF
�
.l NOP
�DEY
�	BNE l
DEX


BNE l2
CLI
LDA#&FF
(� ok+&2000
2STA ok+&2000
<.waiting LDA ok+&2000
FCMP#&FF
PBEQ waiting
ZJMP backos+&2000
d.ok BRK
n]
x�
��'"*RUN UP now"
�!�"Then press Break and *HELP"
��
�
ݤequb(x)
�	?P%=x
�P%=P%+1
�
:=pass
�
ݤequw(x)
�	!P%=x
�P%=P%+2
�
:=pass
�
ݤequd(x)
�	!P%=x
P%=P%+4

:=pass
ݤequs(x$)
"
$P%=x$
,P%=P%+�(x$)
6
:=pass
@ݤbytes32(x)
J� x%=P% � P%+32
T	?x%=x
^�
hP%=P%+32
r
:=pass
�
00000000  0d 00 0a 2b f4 20 50 72  69 6e 74 65 72 20 44 75  |...+. Printer Du|
00000010  6d 70 20 66 6f 72 20 53  69 64 65 77 61 79 73 20  |mp for Sideways |
00000020  52 41 4d 20 28 20 50 44  52 20 29 0d 00 14 36 f4  |RAM ( PDR )...6.|
00000030  20 45 6e 68 61 6e 63 65  64 20 76 65 72 73 69 6f  | Enhanced versio|
00000040  6e 20 6f 66 20 50 72 69  6e 74 65 72 20 44 75 6d  |n of Printer Dum|
00000050  70 20 50 72 6f 67 72 61  6d 20 28 20 50 44 50 20  |p Program ( PDP |
00000060  29 0d 00 1e 19 f4 20 45  78 74 72 61 20 55 74 69  |)..... Extra Uti|
00000070  6c 69 65 73 20 61 64 64  65 64 0d 00 28 18 f4 20  |lies added..(.. |
00000080  41 6c 6c 61 6e 20 4b 65  6c 6c 79 20 31 2f 38 2f  |Allan Kelly 1/8/|
00000090  38 36 0d 00 32 05 20 0d  00 3c 14 6c 69 6e 65 5f  |86..2. ..<.line_|
000000a0  73 70 61 63 69 6e 67 3d  26 31 39 0d 00 46 0f 63  |spacing=&19..F.c|
000000b0  6f 75 6e 74 65 72 3d 26  37 37 0d 00 50 0d 73 74  |ounter=&77..P.st|
000000c0  6f 72 65 3d 26 37 46 0d  00 5a 10 6f 73 77 72 63  |ore=&7F..Z.oswrc|
000000d0  68 3d 26 46 46 45 45 0d  00 64 10 6f 73 62 79 74  |h=&FFEE..d.osbyt|
000000e0  65 3d 26 46 46 46 34 0d  00 6e 10 6f 73 6e 65 77  |e=&FFF4..n.osnew|
000000f0  6c 3d 26 46 46 45 37 0d  00 78 10 6f 73 61 73 63  |l=&FFE7..x.osasc|
00000100  69 3d 26 46 46 45 33 0d  00 82 05 20 0d 00 8c 14  |i=&FFE3.... ....|
00000110  e3 20 70 61 73 73 3d 30  20 b8 20 32 20 88 20 32  |. pass=0 . 2 . 2|
00000120  0d 00 96 0c 50 25 3d 26  36 30 30 30 0d 00 a0 05  |....P%=&6000....|
00000130  5b 0d 00 aa 0c 4f 50 54  20 70 61 73 73 0d 00 b4  |[....OPT pass...|
00000140  0d 2e 6c 61 6e 67 20 42  52 4b 0d 00 be 0b 42 52  |..lang BRK....BR|
00000150  4b 3a 42 52 4b 0d 00 c8  13 4a 4d 50 20 65 6e 74  |K:BRK....JMP ent|
00000160  65 72 2b 26 32 30 30 30  0d 00 d2 12 4f 50 54 20  |er+&2000....OPT |
00000170  a4 65 71 75 62 28 26 38  32 29 0d 00 dc 19 4f 50  |.equb(&82)....OP|
00000180  54 20 a4 65 71 75 62 28  63 6f 70 79 2d 26 36 30  |T .equb(copy-&60|
00000190  30 30 29 0d 00 e6 10 4f  50 54 20 a4 65 71 75 62  |00)....OPT .equb|
000001a0  28 32 29 0d 00 f0 2b 4f  50 54 20 a4 65 71 75 73  |(2)...+OPT .equs|
000001b0  28 22 45 6e 68 61 6e 63  65 64 20 50 44 50 20 66  |("Enhanced PDP f|
000001c0  6f 72 20 53 57 52 20 2d  20 50 44 52 22 29 0d 00  |or SWR - PDR")..|
000001d0  fa 0d 2e 63 6f 70 79 20  42 52 4b 0d 01 04 14 4f  |...copy BRK....O|
000001e0  50 54 20 a4 65 71 75 73  28 22 28 43 29 22 29 0d  |PT .equs("(C)").|
000001f0  01 0e 23 4f 50 54 20 a4  65 71 75 73 28 22 41 6c  |..#OPT .equs("Al|
00000200  6c 61 6e 20 4b 65 6c 6c  79 20 31 2f 38 2f 38 36  |lan Kelly 1/8/86|
00000210  22 29 0d 01 18 07 42 52  4b 0d 01 22 05 20 0d 01  |")....BRK..". ..|
00000220  2c 10 2e 65 6e 74 65 72  20 43 4d 50 23 39 0d 01  |,..enter CMP#9..|
00000230  36 0c 42 45 51 20 68 65  6c 70 0d 01 40 09 43 4d  |6.BEQ help..@.CM|
00000240  50 23 34 0d 01 4a 0c 42  45 51 62 72 63 6c 69 0d  |P#4..J.BEQbrcli.|
00000250  01 54 0b 43 4d 50 23 26  46 45 0d 01 5e 0e 42 45  |.T.CMP#&FE..^.BE|
00000260  51 62 72 62 72 65 61 6b  0d 01 68 07 52 54 53 0d  |Qbrbreak..h.RTS.|
00000270  01 72 17 2e 62 72 63 6c  69 20 4a 4d 50 63 6c 69  |.r..brcli JMPcli|
00000280  2b 26 32 30 30 30 0d 01  7c 1b 2e 62 72 62 72 65  |+&2000..|..brbre|
00000290  61 6b 20 4a 4d 50 62 72  65 61 6b 2b 26 32 30 30  |ak JMPbreak+&200|
000002a0  30 0d 01 86 0d 2e 68 65  6c 70 20 50 48 41 0d 01  |0.....help PHA..|
000002b0  90 07 54 58 41 0d 01 9a  07 50 48 41 0d 01 a4 07  |..TXA....PHA....|
000002c0  54 59 41 0d 01 ae 07 50  48 41 0d 01 b8 12 4c 44  |TYA....PHA....LD|
000002d0  58 23 64 61 72 6b 20 83  20 32 35 36 0d 01 c2 18  |X#dark . 256....|
000002e0  4c 44 59 23 28 64 61 72  6b 20 81 20 32 35 36 29  |LDY#(dark . 256)|
000002f0  2b 26 32 30 0d 01 cc 15  4a 53 52 20 64 69 73 70  |+&20....JSR disp|
00000300  6c 61 79 2b 26 32 30 30  30 0d 01 d6 07 50 4c 41  |lay+&2000....PLA|
00000310  0d 01 e0 07 54 41 59 0d  01 ea 07 50 4c 41 0d 01  |....TAY....PLA..|
00000320  f4 07 54 41 58 0d 01 fe  07 50 4c 41 0d 02 08 07  |..TAX....PLA....|
00000330  52 54 53 0d 02 12 05 20  0d 02 1c 25 2e 64 69 73  |RTS.... ...%.dis|
00000340  70 6c 61 79 20 5c 20 58  20 26 20 59 20 70 69 6f  |play \ X & Y pio|
00000350  6e 74 20 74 6f 20 6d 65  73 73 61 67 65 0d 02 26  |nt to message..&|
00000360  0a 53 54 58 26 37 30 0d  02 30 0a 53 54 59 26 37  |.STX&70..0.STY&7|
00000370  31 0d 02 3a 09 4c 44 59  23 30 0d 02 44 15 2e 64  |1..:.LDY#0..D..d|
00000380  62 61 63 6b 20 4c 44 41  28 26 37 30 29 2c 59 0d  |back LDA(&70),Y.|
00000390  02 4e 0e 4a 53 52 20 6f  73 61 73 63 69 0d 02 58  |.N.JSR osasci..X|
000003a0  07 49 4e 59 0d 02 62 09  43 4d 50 23 30 0d 02 6c  |.INY..b.CMP#0..l|
000003b0  0d 42 4e 45 20 64 62 61  63 6b 0d 02 76 07 52 54  |.BNE dback..v.RT|
000003c0  53 0d 02 80 05 20 0d 02  8a 17 2e 64 61 72 6b 20  |S.... .....dark |
000003d0  4f 50 54 20 a4 65 71 75  62 28 31 33 29 0d 02 94  |OPT .equb(13)...|
000003e0  25 4f 50 54 20 a4 65 71  75 73 28 22 50 72 69 6e  |%OPT .equs("Prin|
000003f0  74 65 72 20 44 75 6d 70  20 52 4f 4d 2f 52 41 4d  |ter Dump ROM/RAM|
00000400  22 29 0d 02 9e 11 4f 50  54 20 a4 65 71 75 62 28  |")....OPT .equb(|
00000410  31 33 29 0d 02 a8 19 4f  50 54 20 a4 65 71 75 73  |13)....OPT .equs|
00000420  28 22 20 20 53 43 52 45  45 4e 22 29 0d 02 b2 11  |("  SCREEN")....|
00000430  4f 50 54 20 a4 65 71 75  62 28 31 33 29 0d 02 bc  |OPT .equb(13)...|
00000440  18 4f 50 54 20 a4 65 71  75 73 28 22 20 20 53 54  |.OPT .equs("  ST|
00000450  41 52 54 22 29 0d 02 c6  11 4f 50 54 20 a4 65 71  |ART")....OPT .eq|
00000460  75 62 28 31 33 29 0d 02  d0 23 4f 50 54 20 a4 65  |ub(13)...#OPT .e|
00000470  71 75 73 28 22 20 20 20  20 54 68 65 6e 20 43 54  |qus("    Then CT|
00000480  52 4c 20 77 69 74 68 22  29 0d 02 da 11 4f 50 54  |RL with")....OPT|
00000490  20 a4 65 71 75 62 28 31  33 29 0d 02 e4 26 4f 50  | .equb(13)...&OP|
000004a0  54 20 a4 65 71 75 73 28  22 20 20 20 20 66 30 20  |T .equs("    f0 |
000004b0  2d 20 70 72 69 6e 74 20  73 63 72 65 65 6e 22 29  |- print screen")|
000004c0  0d 02 ee 11 4f 50 54 20  a4 65 71 75 62 28 31 33  |....OPT .equb(13|
000004d0  29 0d 02 f8 25 4f 50 54  20 a4 65 71 75 73 28 22  |)...%OPT .equs("|
000004e0  20 20 20 20 66 31 20 2d  20 73 77 61 70 20 73 63  |    f1 - swap sc|
000004f0  72 65 65 6e 22 29 0d 03  02 11 4f 50 54 20 a4 65  |reen")....OPT .e|
00000500  71 75 62 28 31 33 29 0d  03 0c 2a 4f 50 54 20 a4  |qub(13)...*OPT .|
00000510  65 71 75 73 28 22 20 20  20 20 66 32 20 2d 20 66  |equs("    f2 - f|
00000520  72 65 65 7a 65 20 6f 70  65 72 61 74 69 6f 6e 22  |reeze operation"|
00000530  29 0d 03 16 11 4f 50 54  20 a4 65 71 75 62 28 31  |)....OPT .equb(1|
00000540  33 29 0d 03 20 17 4f 50  54 20 a4 65 71 75 73 28  |3).. .OPT .equs(|
00000550  22 20 20 53 54 4f 50 22  29 0d 03 2a 11 4f 50 54  |"  STOP")..*.OPT|
00000560  20 a4 65 71 75 62 28 31  33 29 0d 03 34 27 4f 50  | .equb(13)..4'OP|
00000570  54 20 a4 65 71 75 73 28  22 20 20 53 50 41 43 45  |T .equs("  SPACE|
00000580  20 3c 6c 69 6e 65 20 73  70 61 63 69 6e 67 3e 22  | <line spacing>"|
00000590  29 0d 03 3e 11 4f 50 54  20 a4 65 71 75 62 28 31  |)..>.OPT .equb(1|
000005a0  33 29 0d 03 48 17 4f 50  54 20 a4 65 71 75 73 28  |3)..H.OPT .equs(|
000005b0  22 20 20 53 57 41 50 22  29 0d 03 52 11 4f 50 54  |"  SWAP")..R.OPT|
000005c0  20 a4 65 71 75 62 28 31  33 29 0d 03 5c 07 42 52  | .equb(13)..\.BR|
000005d0  4b 0d 03 66 05 20 0d 03  70 12 2e 73 65 74 75 70  |K..f. ..p..setup|
000005e0  20 4c 44 41 23 26 46 46  0d 03 7a 0f 53 54 41 64  | LDA#&FF..z.STAd|
000005f0  68 2b 26 32 30 30 30 0d  03 84 09 4c 44 41 23 30  |h+&2000....LDA#0|
00000600  0d 03 8e 07 50 48 41 0d  03 98 14 4c 44 41 76 65  |....PHA....LDAve|
00000610  63 74 6f 72 73 2b 26 32  30 30 30 0d 03 a2 0b 43  |ctors+&2000....C|
00000620  4d 50 23 26 46 46 0d 03  ac 12 42 4e 45 67 65 74  |MP#&FF....BNEget|
00000630  5f 76 65 63 74 6f 72 73  0d 03 b6 07 50 4c 41 0d  |_vectors....PLA.|
00000640  03 c0 07 52 54 53 0d 03  ca 0f 2e 73 74 6f 70 20  |...RTS.....stop |
00000650  4c 44 41 23 30 0d 03 d4  0f 53 54 41 64 68 2b 26  |LDA#0....STAdh+&|
00000660  32 30 30 30 0d 03 de 14  4c 44 41 76 65 63 74 6f  |2000....LDAvecto|
00000670  72 73 2b 26 32 30 30 30  0d 03 e8 0b 43 4d 50 23  |rs+&2000....CMP#|
00000680  26 46 46 0d 03 f2 0e 42  45 51 72 65 6c 65 61 73  |&FF....BEQreleas|
00000690  65 0d 03 fc 09 4c 44 41  23 30 0d 04 06 07 52 54  |e....LDA#0....RT|
000006a0  53 0d 04 10 10 2e 72 65  6c 65 61 73 65 20 53 45  |S.....release SE|
000006b0  49 0d 04 1a 10 4c 44 41  6b 63 76 2b 26 32 30 30  |I....LDAkcv+&200|
000006c0  30 0d 04 24 0b 53 54 41  26 32 32 38 0d 04 2e 10  |0..$.STA&228....|
000006d0  4c 44 41 6b 63 76 2b 26  32 30 30 31 0d 04 38 0b  |LDAkcv+&2001..8.|
000006e0  53 54 41 26 32 32 39 0d  04 42 07 43 4c 49 0d 04  |STA&229..B.CLI..|
000006f0  4c 09 4c 44 41 23 30 0d  04 56 14 53 54 41 76 65  |L.LDA#0..V.STAve|
00000700  63 74 6f 72 73 2b 26 32  30 30 30 0d 04 60 07 52  |ctors+&2000..`.R|
00000710  54 53 0d 04 6a 12 2e 62  72 65 61 6b 20 4c 44 41  |TS..j..break LDA|
00000720  23 26 46 45 0d 04 74 07  50 48 41 0d 04 7e 0f 4c  |#&FE..t.PHA..~.L|
00000730  44 41 64 68 2b 26 32 30  30 30 0d 04 88 0c 42 45  |DAdh+&2000....BE|
00000740  51 6e 6f 5f 67 6f 0d 04  92 18 2e 67 65 74 5f 76  |Qno_go.....get_v|
00000750  65 63 74 6f 72 73 20 4c  44 41 26 32 32 38 0d 04  |ectors LDA&228..|
00000760  9c 10 53 54 41 6b 63 76  2b 26 32 30 30 30 0d 04  |..STAkcv+&2000..|
00000770  a6 0b 4c 44 41 26 32 32  39 0d 04 b0 10 53 54 41  |..LDA&229....STA|
00000780  6b 63 76 2b 26 32 30 30  31 0d 04 ba 11 4c 44 41  |kcv+&2001....LDA|
00000790  23 6b 65 79 20 83 20 32  35 36 0d 04 c4 0b 53 54  |#key . 256....ST|
000007a0  41 26 44 44 42 0d 04 ce  17 4c 44 41 23 28 6b 65  |A&DDB....LDA#(ke|
000007b0  79 20 81 20 32 35 36 29  2b 26 32 30 0d 04 d8 0b  |y . 256)+&20....|
000007c0  53 54 41 26 44 44 43 0d  04 e2 0a 4c 44 41 26 46  |STA&DDC....LDA&F|
000007d0  34 0d 04 ec 0b 53 54 41  26 44 44 44 0d 04 f6 07  |4....STA&DDD....|
000007e0  53 45 49 0d 05 00 0b 4c  44 41 23 26 33 43 0d 05  |SEI....LDA#&3C..|
000007f0  0a 0b 53 54 41 26 32 32  38 0d 05 14 0b 4c 44 41  |..STA&228....LDA|
00000800  23 26 46 46 0d 05 1e 0b  53 54 41 26 32 32 39 0d  |#&FF....STA&229.|
00000810  05 28 07 43 4c 49 0d 05  32 0b 4c 44 41 23 26 46  |.(.CLI..2.LDA#&F|
00000820  46 0d 05 3c 14 53 54 41  76 65 63 74 6f 72 73 2b  |F..<.STAvectors+|
00000830  26 32 30 30 30 0d 05 46  0e 2e 6e 6f 5f 67 6f 20  |&2000..F..no_go |
00000840  50 4c 41 0d 05 50 07 52  54 53 0d 05 5a 0c 2e 6b  |PLA..P.RTS..Z..k|
00000850  65 79 20 50 48 50 0d 05  64 0b 42 43 43 65 6c 73  |ey PHP..d.BCCels|
00000860  65 0d 05 6e 0b 42 56 43  65 6c 73 65 0d 05 78 18  |e..n.BVCelse..x.|
00000870  4c 44 41 70 64 70 5f 72  75 6e 6e 69 6e 67 2b 26  |LDApdp_running+&|
00000880  32 30 30 30 0d 05 82 0b  42 4e 45 65 6c 73 65 0d  |2000....BNEelse.|
00000890  05 8c 07 43 4c 43 0d 05  96 07 43 4c 56 0d 05 a0  |...CLC....CLV...|
000008a0  14 4a 53 52 6a 75 6d 70  6b 63 76 2b 26 32 30 30  |.JSRjumpkcv+&200|
000008b0  30 0d 05 aa 11 42 4d 49  20 66 75 6e 63 74 69 6f  |0....BMI functio|
000008c0  6e 73 0d 05 b4 0d 2e 65  6c 73 65 20 50 4c 50 0d  |ns.....else PLP.|
000008d0  05 be 1b 2e 6a 75 6d 70  6b 63 76 20 4a 4d 50 28  |....jumpkcv JMP(|
000008e0  6b 63 76 2b 26 32 30 30  30 29 0d 05 c8 10 2e 6b  |kcv+&2000).....k|
000008f0  63 76 20 42 52 4b 3a 42  52 4b 0d 05 d2 1a 2e 66  |cv BRK:BRK.....f|
00000900  75 6e 63 74 69 6f 6e 73  20 53 54 58 73 78 2b 26  |unctions STXsx+&|
00000910  32 30 30 30 0d 05 dc 0f  53 54 59 73 79 2b 26 32  |2000....STYsy+&2|
00000920  30 30 30 0d 05 e6 12 4c  44 58 23 28 26 32 30 20  |000....LDX#(&20 |
00000930  82 26 38 30 29 0d 05 f0  07 53 45 43 0d 05 fa 07  |.&80)....SEC....|
00000940  43 4c 56 0d 06 04 14 4a  53 52 6a 75 6d 70 6b 63  |CLV....JSRjumpkc|
00000950  76 2b 26 32 30 30 30 0d  06 0e 09 43 4d 50 23 30  |v+&2000....CMP#0|
00000960  0d 06 18 0b 42 4d 49 20  70 64 70 0d 06 22 12 4c  |....BMI pdp..".L|
00000970  44 58 23 28 26 37 31 20  82 26 38 30 29 0d 06 2c  |DX#(&71 .&80)..,|
00000980  14 4a 53 52 6a 75 6d 70  6b 63 76 2b 26 32 30 30  |.JSRjumpkcv+&200|
00000990  30 0d 06 36 09 43 4d 50  23 30 0d 06 40 10 42 4d  |0..6.CMP#0..@.BM|
000009a0  49 20 6b 65 79 5f 73 77  61 70 0d 06 4a 12 4c 44  |I key_swap..J.LD|
000009b0  58 23 28 26 37 32 20 82  26 38 30 29 0d 06 54 14  |X#(&72 .&80)..T.|
000009c0  4a 53 52 6a 75 6d 70 6b  63 76 2b 26 32 30 30 30  |JSRjumpkcv+&2000|
000009d0  0d 06 5e 09 43 4d 50 23  30 0d 06 68 0e 42 4d 49  |..^.CMP#0..h.BMI|
000009e0  62 72 5f 77 61 69 74 0d  06 72 17 2e 62 61 63 6b  |br_wait..r..back|
000009f0  6f 73 20 4c 44 58 73 78  2b 26 32 30 30 30 0d 06  |os LDXsx+&2000..|
00000a00  7c 0f 4c 44 59 73 79 2b  26 32 30 30 30 0d 06 86  ||.LDYsy+&2000...|
00000a10  11 4a 4d 50 65 6c 73 65  2b 26 32 30 30 30 0d 06  |.JMPelse+&2000..|
00000a20  90 23 2e 6b 65 79 5f 73  77 61 70 20 4a 53 52 73  |.#.key_swap JSRs|
00000a30  77 61 70 5f 73 63 72 65  65 6e 73 2b 26 32 30 30  |wap_screens+&200|
00000a40  30 0d 06 9a 13 4a 4d 50  62 61 63 6b 6f 73 2b 26  |0....JMPbackos+&|
00000a50  32 30 30 30 0d 06 a4 1a  2e 62 72 5f 77 61 69 74  |2000.....br_wait|
00000a60  20 4a 4d 50 77 61 69 74  2b 26 32 30 30 30 0d 06  | JMPwait+&2000..|
00000a70  ae 10 2e 70 64 70 20 4c  44 41 23 26 46 46 0d 06  |...pdp LDA#&FF..|
00000a80  b8 18 53 54 41 70 64 70  5f 72 75 6e 6e 69 6e 67  |..STApdp_running|
00000a90  2b 26 32 30 30 30 0d 06  c2 07 43 4c 49 0d 06 cc  |+&2000....CLI...|
00000aa0  12 4a 53 52 73 74 61 72  74 2b 26 32 30 30 30 0d  |.JSRstart+&2000.|
00000ab0  06 d6 07 53 45 49 0d 06  e0 09 4c 44 41 23 30 0d  |...SEI....LDA#0.|
00000ac0  06 ea 18 53 54 41 70 64  70 5f 72 75 6e 6e 69 6e  |...STApdp_runnin|
00000ad0  67 2b 26 32 30 30 30 0d  06 f4 13 4a 4d 50 62 61  |g+&2000....JMPba|
00000ae0  63 6b 6f 73 2b 26 32 30  30 30 0d 06 fe 19 2e 70  |ckos+&2000.....p|
00000af0  72 69 6e 74 20 4a 53 52  73 74 61 72 74 2b 26 32  |rint JSRstart+&2|
00000b00  30 30 30 0d 07 08 09 4c  44 41 23 30 0d 07 12 07  |000....LDA#0....|
00000b10  52 54 53 0d 07 1c 05 20  0d 07 26 22 2e 69 6e 69  |RTS.... ..&".ini|
00000b20  74 69 61 6c 20 4c 44 59  23 26 32 32 20 5c 20 73  |tial LDY#&22 \ s|
00000b30  61 76 65 20 7a 20 70 61  67 65 0d 07 30 11 2e 72  |ave z page..0..r|
00000b40  65 74 20 4c 44 41 26 36  46 2c 59 0d 07 3a 15 53  |et LDA&6F,Y..:.S|
00000b50  54 41 7a 5f 70 61 67 65  2b 26 32 30 30 30 2c 59  |TAz_page+&2000,Y|
00000b60  0d 07 44 09 4c 44 41 23  30 0d 07 4e 0c 53 54 41  |..D.LDA#0..N.STA|
00000b70  26 36 46 2c 59 0d 07 58  07 44 45 59 0d 07 62 0b  |&6F,Y..X.DEY..b.|
00000b80  43 50 59 23 26 46 46 0d  07 6c 0b 42 4e 45 20 72  |CPY#&FF..l.BNE r|
00000b90  65 74 0d 07 76 0b 4c 44  41 23 26 38 37 0d 07 80  |et..v.LDA#&87...|
00000ba0  0e 4a 53 52 20 6f 73 62  79 74 65 0d 07 8a 09 43  |.JSR osbyte....C|
00000bb0  50 59 23 37 0d 07 94 0b  42 45 51 20 6f 75 74 0d  |PY#7....BEQ out.|
00000bc0  07 9e 09 43 50 59 23 35  0d 07 a8 0b 42 45 51 20  |...CPY#5....BEQ |
00000bd0  6f 75 74 0d 07 b2 09 43  50 59 23 32 0d 07 bc 0b  |out....CPY#2....|
00000be0  42 45 51 20 6f 75 74 0d  07 c6 09 43 50 59 23 31  |BEQ out....CPY#1|
00000bf0  0d 07 d0 0c 42 4e 45 20  6a 75 6d 70 0d 07 da 0e  |....BNE jump....|
00000c00  2e 6f 75 74 20 4c 44 41  23 37 0d 07 e4 0e 4a 53  |.out LDA#7....JS|
00000c10  52 20 6f 73 77 72 63 68  0d 07 ee 07 53 45 43 0d  |R oswrch....SEC.|
00000c20  07 f8 07 52 54 53 0d 08  02 10 2e 6a 75 6d 70 20  |...RTS.....jump |
00000c30  53 54 59 26 37 30 0d 08  0c 0b 4c 44 41 23 26 41  |STY&70....LDA#&A|
00000c40  30 0d 08 16 0b 4c 44 58  23 26 35 30 0d 08 20 09  |0....LDX#&50.. .|
00000c50  4c 44 59 23 30 0d 08 2a  0e 4a 53 52 20 6f 73 62  |LDY#0..*.JSR osb|
00000c60  79 74 65 0d 08 34 0a 53  54 58 26 37 31 0d 08 3e  |yte..4.STX&71..>|
00000c70  0a 53 54 59 26 37 32 0d  08 48 0b 4c 44 41 23 26  |.STY&72..H.LDA#&|
00000c80  37 46 0d 08 52 0a 53 54  41 26 37 34 0d 08 5c 0a  |7F..R.STA&74..\.|
00000c90  4c 44 59 26 37 30 0d 08  66 09 43 50 59 23 33 0d  |LDY&70..f.CPY#3.|
00000ca0  08 70 0d 42 4e 45 20 6a  75 6d 70 32 0d 08 7a 0a  |.p.BNE jump2..z.|
00000cb0  53 54 41 26 37 33 0d 08  84 0b 4c 44 41 23 26 37  |STA&73....LDA#&7|
00000cc0  45 0d 08 8e 0a 53 54 41  26 37 34 0d 08 98 13 4a  |E....STA&74....J|
00000cd0  4d 50 20 6a 75 6d 70 33  2b 26 32 30 30 30 0d 08  |MP jump3+&2000..|
00000ce0  a2 10 2e 6a 75 6d 70 32  20 43 50 59 23 36 0d 08  |...jump2 CPY#6..|
00000cf0  ac 0d 42 45 51 20 6a 75  6d 70 34 0d 08 b6 0b 4c  |..BEQ jump4....L|
00000d00  44 58 23 26 46 46 0d 08  c0 0a 53 54 58 26 37 33  |DX#&FF....STX&73|
00000d10  0d 08 ca 13 4a 4d 50 20  6a 75 6d 70 33 2b 26 32  |....JMP jump3+&2|
00000d20  30 30 30 0d 08 d4 12 2e  6a 75 6d 70 34 20 4c 44  |000.....jump4 LD|
00000d30  41 23 26 33 46 0d 08 de  0a 53 54 41 26 37 33 0d  |A#&3F....STA&73.|
00000d40  08 e8 12 2e 6a 75 6d 70  33 20 4c 44 41 23 26 38  |....jump3 LDA#&8|
00000d50  34 0d 08 f2 0e 4a 53 52  20 6f 73 62 79 74 65 0d  |4....JSR osbyte.|
00000d60  08 fc 0a 53 54 58 26 37  35 0d 09 06 0a 53 54 59  |...STX&75....STY|
00000d70  26 37 36 0d 09 10 0a 4c  44 41 26 37 31 0d 09 1a  |&76....LDA&71...|
00000d80  0f 53 54 41 20 63 6f 75  6e 74 65 72 0d 09 24 0a  |.STA counter..$.|
00000d90  4c 44 41 26 37 32 0d 09  2e 11 53 54 41 20 63 6f  |LDA&72....STA co|
00000da0  75 6e 74 65 72 2b 31 0d  09 38 0a 4c 44 41 26 37  |unter+1..8.LDA&7|
00000db0  30 0d 09 42 09 43 4d 50  23 34 0d 09 4c 0e 42 43  |0..B.CMP#4..L.BC|
00000dc0  53 20 6d 6f 64 65 34 36  0d 09 56 0b 4c 44 41 23  |S mode46..V.LDA#|
00000dd0  26 38 30 0d 09 60 0a 53  54 41 26 37 42 0d 09 6a  |&80..`.STA&7B..j|
00000de0  09 4c 44 41 23 32 0d 09  74 0a 53 54 41 26 37 43  |.LDA#2..t.STA&7C|
00000df0  0d 09 7e 0c 4c 44 41 23  97 22 4c 22 0d 09 88 16  |..~.LDA#."L"....|
00000e00  53 54 41 63 74 72 6c 5f  63 68 61 72 2b 26 32 30  |STActrl_char+&20|
00000e10  30 30 0d 09 92 13 4a 4d  50 20 6a 75 6d 70 35 2b  |00....JMP jump5+|
00000e20  26 32 30 30 30 0d 09 9c  14 2e 6d 6f 64 65 34 36  |&2000.....mode46|
00000e30  20 4c 44 41 23 97 22 4b  22 0d 09 a6 16 53 54 41  | LDA#."K"....STA|
00000e40  63 74 72 6c 5f 63 68 61  72 2b 26 32 30 30 30 0d  |ctrl_char+&2000.|
00000e50  09 b0 0b 4c 44 41 23 26  34 30 0d 09 ba 0a 53 54  |...LDA#&40....ST|
00000e60  41 26 37 42 0d 09 c4 09  4c 44 41 23 31 0d 09 ce  |A&7B....LDA#1...|
00000e70  0a 53 54 41 26 37 43 0d  09 d8 0a 2e 6a 75 6d 70  |.STA&7C.....jump|
00000e80  35 0d 09 e2 0a 4c 44 41  26 37 30 0d 09 ec 09 43  |5....LDA&70....C|
00000e90  4d 50 23 33 0d 09 f6 0e  42 45 51 20 6a 75 6d 70  |MP#3....BEQ jump|
00000ea0  36 62 0d 0a 00 09 43 4d  50 23 36 0d 0a 0a 0d 42  |6b....CMP#6....B|
00000eb0  4e 45 20 6a 75 6d 70 36  0d 0a 14 13 2e 6a 75 6d  |NE jump6.....jum|
00000ec0  70 36 62 20 4c 44 41 23  26 43 38 0d 0a 1e 0a 53  |p6b LDA#&C8....S|
00000ed0  54 41 26 37 44 0d 0a 28  13 4a 4d 50 20 6a 75 6d  |TA&7D..(.JMP jum|
00000ee0  70 37 2b 26 32 30 30 30  0d 0a 32 10 2e 6a 75 6d  |p7+&2000..2..jum|
00000ef0  70 36 20 4c 44 41 23 31  0d 0a 3c 0a 53 54 41 26  |p6 LDA#1..<.STA&|
00000f00  37 45 0d 0a 46 0a 2e 6a  75 6d 70 37 0d 0a 50 1b  |7E..F..jump7..P.|
00000f10  5c 20 65 6e 64 20 6f 66  20 69 6e 69 74 69 61 6c  |\ end of initial|
00000f20  20 73 65 74 20 75 70 0d  0a 5a 07 43 4c 43 0d 0a  | set up..Z.CLC..|
00000f30  64 07 52 54 53 0d 0a 6e  05 20 0d 0a 78 3f 2e 70  |d.RTS..n. ..x?.p|
00000f40  72 65 70 65 61 72 20 4c  44 59 23 30 20 5c 20 70  |repear LDY#0 \ p|
00000f50  72 65 70 65 61 72 20 70  72 69 6e 74 65 72 20 74  |repear printer t|
00000f60  6f 20 61 63 63 65 70 74  20 61 20 6c 69 6e 65 20  |o accept a line |
00000f70  6f 66 20 63 68 61 72 27  73 0d 0a 82 25 2e 62 61  |of char's...%.ba|
00000f80  63 6b 20 4c 44 41 23 31  20 5c 20 ef 31 20 69 73  |ck LDA#1 \ .1 is|
00000f90  20 61 6c 77 61 79 73 20  6e 65 65 64 65 64 0d 0a  | always needed..|
00000fa0  8c 0e 4a 53 52 20 6f 73  77 72 63 68 0d 0a 96 17  |..JSR oswrch....|
00000fb0  4c 44 41 20 63 6f 6e 74  72 6f 6c 2b 26 32 30 30  |LDA control+&200|
00000fc0  30 2c 59 0d 0a a0 0e 4a  53 52 20 6f 73 77 72 63  |0,Y....JSR oswrc|
00000fd0  68 0d 0a aa 07 49 4e 59  0d 0a b4 09 43 50 59 23  |h....INY....CPY#|
00000fe0  33 0d 0a be 0c 42 4e 45  20 62 61 63 6b 0d 0a c8  |3....BNE back...|
00000ff0  09 4c 44 41 23 31 0d 0a  d2 0e 4a 53 52 20 6f 73  |.LDA#1....JSR os|
00001000  77 72 63 68 0d 0a dc 0a  4c 44 41 26 37 42 0d 0a  |wrch....LDA&7B..|
00001010  e6 0e 4a 53 52 20 6f 73  77 72 63 68 0d 0a f0 09  |..JSR oswrch....|
00001020  4c 44 41 23 31 0d 0a fa  0e 4a 53 52 20 6f 73 77  |LDA#1....JSR osw|
00001030  72 63 68 0d 0b 04 0a 4c  44 41 26 37 43 0d 0b 0e  |rch....LDA&7C...|
00001040  0e 4a 53 52 20 6f 73 77  72 63 68 0d 0b 18 07 52  |.JSR oswrch....R|
00001050  54 53 0d 0b 22 05 20 0d  0b 2c 11 2e 64 65 63 6f  |TS..". ..,..deco|
00001060  64 65 20 4c 44 58 23 30  0d 0b 36 0e 2e 6e 62 65  |de LDX#0..6..nbe|
00001070  20 4c 44 41 23 30 0d 0b  40 0d 53 54 41 20 73 74  | LDA#0..@.STA st|
00001080  6f 72 65 0d 0b 4a 09 4c  44 59 23 30 0d 0b 54 18  |ore..J.LDY#0..T.|
00001090  2e 6e 62 62 20 4c 44 41  20 28 63 6f 75 6e 74 65  |.nbb LDA (counte|
000010a0  72 29 2c 59 0d 0b 5e 11  80 20 61 64 64 2b 26 32  |r),Y..^.. add+&2|
000010b0  30 30 30 2c 58 0d 0b 68  0e 42 45 51 20 6e 6f 5f  |000,X..h.BEQ no_|
000010c0  73 65 74 0d 0b 72 0d 4c  44 41 20 73 74 6f 72 65  |set..r.LDA store|
000010d0  0d 0b 7c 12 84 41 20 61  64 64 2b 26 32 30 30 30  |..|..A add+&2000|
000010e0  2c 59 0d 0b 86 0d 53 54  41 20 73 74 6f 72 65 0d  |,Y....STA store.|
000010f0  0b 90 0f 2e 6e 6f 5f 73  65 74 20 49 4e 59 0d 0b  |....no_set INY..|
00001100  9a 09 43 50 59 23 38 0d  0b a4 0b 42 4e 45 20 6e  |..CPY#8....BNE n|
00001110  62 62 0d 0b ae 09 4c 44  41 23 31 0d 0b b8 0e 4a  |bb....LDA#1....J|
00001120  53 52 20 6f 73 77 72 63  68 0d 0b c2 0d 4c 44 41  |SR oswrch....LDA|
00001130  20 73 74 6f 72 65 0d 0b  cc 0e 4a 53 52 20 6f 73  | store....JSR os|
00001140  77 72 63 68 0d 0b d6 07  49 4e 58 0d 0b e0 09 43  |wrch....INX....C|
00001150  50 58 23 38 0d 0b ea 0b  42 4e 45 20 6e 62 65 0d  |PX#8....BNE nbe.|
00001160  0b f4 07 52 54 53 0d 0b  fe 05 20 0d 0c 08 1c 2e  |...RTS.... .....|
00001170  73 74 61 72 74 20 4a 53  52 20 69 6e 69 74 69 61  |start JSR initia|
00001180  6c 2b 26 32 30 30 30 0d  0c 12 0a 42 43 43 20 6f  |l+&2000....BCC o|
00001190  6e 0d 0c 1c 15 4a 4d 50  20 72 65 5f 73 77 61 70  |n....JMP re_swap|
000011a0  2b 26 32 30 30 30 0d 0c  26 0d 2e 6f 6e 20 4c 44  |+&2000..&..on LD|
000011b0  41 23 32 0d 0c 30 0e 4a  53 52 20 6f 73 77 72 63  |A#2..0.JSR oswrc|
000011c0  68 0d 0c 3a 09 4c 44 59  23 30 0d 0c 44 11 2e 62  |h..:.LDY#0..D..b|
000011d0  70 61 74 63 68 20 4c 44  41 23 31 0d 0c 4e 0e 4a  |patch LDA#1..N.J|
000011e0  53 52 20 6f 73 77 72 63  68 0d 0c 58 14 4c 44 41  |SR oswrch..X.LDA|
000011f0  20 6c 69 6e 65 2b 26 32  30 30 30 2c 59 0d 0c 62  | line+&2000,Y..b|
00001200  0e 4a 53 52 20 6f 73 77  72 63 68 0d 0c 6c 07 49  |.JSR oswrch..l.I|
00001210  4e 59 0d 0c 76 09 43 50  59 23 33 0d 0c 80 0e 42  |NY..v.CPY#3....B|
00001220  4e 45 20 62 70 61 74 63  68 0d 0c 8a 1e 2e 6e 65  |NE bpatch.....ne|
00001230  77 5f 72 6f 77 20 4a 53  52 20 70 72 65 70 65 61  |w_row JSR prepea|
00001240  72 2b 26 32 30 30 30 0d  0c 94 1b 2e 6e 65 78 74  |r+&2000.....next|
00001250  38 20 4a 53 52 20 64 65  63 6f 64 65 2b 26 32 30  |8 JSR decode+&20|
00001260  30 30 0d 0c 9e 0f 4c 44  41 20 63 6f 75 6e 74 65  |00....LDA counte|
00001270  72 0d 0c a8 07 43 4c 43  0d 0c b2 09 41 44 43 23  |r....CLC....ADC#|
00001280  38 0d 0c bc 0f 53 54 41  20 63 6f 75 6e 74 65 72  |8....STA counter|
00001290  0d 0c c6 11 4c 44 41 20  63 6f 75 6e 74 65 72 2b  |....LDA counter+|
000012a0  31 0d 0c d0 09 41 44 43  23 30 0d 0c da 11 53 54  |1....ADC#0....ST|
000012b0  41 20 63 6f 75 6e 74 65  72 2b 31 0d 0c e4 09 41  |A counter+1....A|
000012c0  44 43 23 30 0d 0c ee 11  53 54 41 20 63 6f 75 6e  |DC#0....STA coun|
000012d0  74 65 72 2b 31 0d 0c f8  0a 4c 44 41 26 38 32 0d  |ter+1....LDA&82.|
000012e0  0d 02 07 43 4c 43 0d 0d  0c 09 41 44 43 23 38 0d  |...CLC....ADC#8.|
000012f0  0d 16 0a 53 54 41 26 38  32 0d 0d 20 07 54 41 59  |...STA&82.. .TAY|
00001300  0d 0d 2a 0a 4c 44 41 26  38 33 0d 0d 34 09 41 44  |..*.LDA&83..4.AD|
00001310  43 23 30 0d 0d 3e 0a 53  54 41 26 38 33 0d 0d 48  |C#0..>.STA&83..H|
00001320  0a 43 4d 50 26 37 43 0d  0d 52 0d 42 4e 45 20 6e  |.CMP&7C..R.BNE n|
00001330  65 78 74 38 0d 0d 5c 0a  43 50 59 26 37 42 0d 0d  |ext8..\.CPY&7B..|
00001340  66 0d 42 4e 45 20 6e 65  78 74 38 0d 0d 70 09 4c  |f.BNE next8..p.L|
00001350  44 41 23 30 0d 0d 7a 0a  53 54 41 26 38 32 0d 0d  |DA#0..z.STA&82..|
00001360  84 0a 53 54 41 26 38 33  0d 0d 8e 11 4c 44 41 20  |..STA&83....LDA |
00001370  63 6f 75 6e 74 65 72 2b  31 0d 0d 98 0a 43 4d 50  |counter+1....CMP|
00001380  26 37 34 0d 0d a2 0c 42  43 43 20 6d 69 73 73 0d  |&74....BCC miss.|
00001390  0d ac 0a 4c 44 41 26 37  35 0d 0d b6 0f 53 54 41  |...LDA&75....STA|
000013a0  20 63 6f 75 6e 74 65 72  0d 0d c0 0a 4c 44 41 26  | counter....LDA&|
000013b0  37 36 0d 0d ca 11 53 54  41 20 63 6f 75 6e 74 65  |76....STA counte|
000013c0  72 2b 31 0d 0d d4 10 2e  6d 69 73 73 20 4c 44 41  |r+1.....miss LDA|
000013d0  26 37 39 0d 0d de 07 43  4c 43 0d 0d e8 09 41 44  |&79....CLC....AD|
000013e0  43 23 38 0d 0d f2 0a 53  54 41 26 37 39 0d 0d fc  |C#8....STA&79...|
000013f0  07 54 41 59 0d 0e 06 0a  4c 44 41 26 37 41 0d 0e  |.TAY....LDA&7A..|
00001400  10 09 41 44 43 23 30 0d  0e 1a 0a 53 54 41 26 37  |..ADC#0....STA&7|
00001410  41 0d 0e 24 0a 43 4d 50  26 37 45 0d 0e 2e 0f 42  |A..$.CMP&7E....B|
00001420  43 43 20 6e 65 77 5f 72  6f 77 0d 0e 38 0a 43 50  |CC new_row..8.CP|
00001430  59 26 37 44 0d 0e 42 0f  42 43 43 20 6e 65 77 5f  |Y&7D..B.BCC new_|
00001440  72 6f 77 0d 0e 4c 0a 4c  44 59 23 31 36 0d 0e 56  |row..L.LDY#16..V|
00001450  10 2e 63 6c 65 61 6e 20  4c 44 41 23 31 0d 0e 60  |..clean LDA#1..`|
00001460  0e 4a 53 52 20 6f 73 77  72 63 68 0d 0e 6a 09 4c  |.JSR oswrch..j.L|
00001470  44 41 23 30 0d 0e 74 0e  4a 53 52 20 6f 73 77 72  |DA#0..t.JSR oswr|
00001480  63 68 0d 0e 7e 07 44 45  59 0d 0e 88 0d 42 4e 45  |ch..~.DEY....BNE|
00001490  20 63 6c 65 61 6e 0d 0e  92 09 4c 44 41 23 31 0d  | clean....LDA#1.|
000014a0  0e 9c 0e 4a 53 52 20 6f  73 77 72 63 68 0d 0e a6  |...JSR oswrch...|
000014b0  0a 4c 44 41 23 32 37 0d  0e b0 0e 4a 53 52 20 6f  |.LDA#27....JSR o|
000014c0  73 77 72 63 68 0d 0e ba  09 4c 44 41 23 31 0d 0e  |swrch....LDA#1..|
000014d0  c4 0e 4a 53 52 20 6f 73  77 72 63 68 0d 0e ce 0a  |..JSR oswrch....|
000014e0  4c 44 41 23 36 34 0d 0e  d8 0e 4a 53 52 20 6f 73  |LDA#64....JSR os|
000014f0  77 72 63 68 0d 0e e2 09  4c 44 41 23 33 0d 0e ec  |wrch....LDA#3...|
00001500  0e 4a 53 52 20 6f 73 77  72 63 68 0d 0e f6 14 2e  |.JSR oswrch.....|
00001510  72 65 5f 73 77 61 70 20  4c 44 59 23 26 32 32 0d  |re_swap LDY#&22.|
00001520  0f 00 1c 2e 72 65 74 5f  7a 20 4c 44 41 7a 5f 70  |....ret_z LDAz_p|
00001530  61 67 65 2b 26 32 30 30  30 2c 59 0d 0f 0a 0c 53  |age+&2000,Y....S|
00001540  54 41 26 36 46 2c 59 0d  0f 14 07 44 45 59 0d 0f  |TA&6F,Y....DEY..|
00001550  1e 0c 42 4e 45 72 65 74  5f 7a 0d 0f 28 07 52 54  |..BNEret_z..(.RT|
00001560  53 0d 0f 32 21 2e 63 6f  6e 74 72 6f 6c 20 5c 20  |S..2!.control \ |
00001570  63 6f 6e 74 72 6f 6c 20  63 68 61 72 61 63 74 65  |control characte|
00001580  72 73 0d 0f 3c 16 4f 50  54 20 a4 65 71 75 62 28  |rs..<.OPT .equb(|
00001590  31 33 29 20 5c 20 43 52  0d 0f 46 1a 4f 50 54 20  |13) \ CR..F.OPT |
000015a0  a4 65 71 75 62 28 32 37  29 20 5c 20 45 53 43 61  |.equb(27) \ ESCa|
000015b0  70 65 0d 0f 50 1e 2e 63  74 72 6c 5f 63 68 61 72  |pe..P..ctrl_char|
000015c0  20 4f 50 54 20 a4 65 71  75 62 28 97 22 4b 22 29  | OPT .equb(."K")|
000015d0  0d 0f 5a 17 2e 61 64 64  20 4f 50 54 20 a4 65 71  |..Z..add OPT .eq|
000015e0  75 62 28 26 38 30 29 0d  0f 64 12 4f 50 54 20 a4  |ub(&80)..d.OPT .|
000015f0  65 71 75 62 28 26 34 30  29 0d 0f 6e 12 4f 50 54  |equb(&40)..n.OPT|
00001600  20 a4 65 71 75 62 28 26  32 30 29 0d 0f 78 12 4f  | .equb(&20)..x.O|
00001610  50 54 20 a4 65 71 75 62  28 26 31 30 29 0d 0f 82  |PT .equb(&10)...|
00001620  10 4f 50 54 20 a4 65 71  75 62 28 38 29 0d 0f 8c  |.OPT .equb(8)...|
00001630  10 4f 50 54 20 a4 65 71  75 62 28 34 29 0d 0f 96  |.OPT .equb(4)...|
00001640  10 4f 50 54 20 a4 65 71  75 62 28 32 29 0d 0f a0  |.OPT .equb(2)...|
00001650  10 4f 50 54 20 a4 65 71  75 62 28 31 29 0d 0f aa  |.OPT .equb(1)...|
00001660  15 2e 70 69 6e 20 4f 50  54 20 a4 65 71 75 64 28  |..pin OPT .equd(|
00001670  30 29 0d 0f b4 10 4f 50  54 20 a4 65 71 75 64 28  |0)....OPT .equd(|
00001680  30 29 0d 0f be 17 2e 6c  69 6e 65 20 4f 50 54 20  |0).....line OPT |
00001690  a4 65 71 75 62 28 32 37  29 0d 0f c8 13 4f 50 54  |.equb(27)....OPT|
000016a0  20 a4 65 71 75 62 28 97  22 33 22 29 0d 0f d2 22  | .equb(."3")..."|
000016b0  2e 73 70 61 63 65 20 4f  50 54 20 a4 65 71 75 62  |.space OPT .equb|
000016c0  28 6c 69 6e 65 5f 73 70  61 63 69 6e 67 29 0d 0f  |(line_spacing)..|
000016d0  dc 14 2e 70 64 70 5f 72  75 6e 6e 69 6e 67 20 42  |...pdp_running B|
000016e0  52 4b 0d 0f e6 0b 2e 73  78 20 42 52 4b 0d 0f f0  |RK.....sx BRK...|
000016f0  0b 2e 73 79 20 42 52 4b  0d 0f fa 0c 2e 73 79 32  |..sy BRK.....sy2|
00001700  20 42 52 4b 0d 10 04 0b  2e 73 61 20 42 52 4b 0d  | BRK.....sa BRK.|
00001710  10 0e 0b 2e 64 68 20 42  52 4b 0d 10 18 38 2e 7a  |....dh BRK...8.z|
00001720  5f 70 61 67 65 20 4f 50  54 20 a4 62 79 74 65 73  |_page OPT .bytes|
00001730  33 32 28 30 29 20 5c 20  74 65 6d 70 6f 72 61 79  |32(0) \ temporay|
00001740  20 73 74 6f 72 65 20 66  6f 72 20 26 37 30 2d 26  | store for &70-&|
00001750  38 46 0d 10 22 07 42 52  4b 0d 10 2c 07 42 52 4b  |8F..".BRK..,.BRK|
00001760  0d 10 36 05 20 0d 10 40  0c 5c 20 50 61 72 73 65  |..6. ..@.\ Parse|
00001770  72 0d 10 4a 05 20 0d 10  54 15 2e 63 6c 69 20 53  |r..J. ..T..cli S|
00001780  54 59 20 73 79 2b 26 32  30 30 30 0d 10 5e 0e 4c  |TY sy+&2000..^.L|
00001790  44 41 28 26 46 32 29 2c  59 0d 10 68 0a 84 41 23  |DA(&F2),Y..h..A#|
000017a0  26 32 30 0d 10 72 0c 43  4d 50 23 97 22 70 22 0d  |&20..r.CMP#."p".|
000017b0  10 7c 0c 42 4e 45 20 70  61 73 74 0d 10 86 07 49  |.|.BNE past....I|
000017c0  4e 59 0d 10 90 17 2e 70  61 73 74 20 53 54 59 20  |NY.....past STY |
000017d0  73 79 32 2b 26 32 30 30  30 0d 10 9a 09 4c 44 58  |sy2+&2000....LDX|
000017e0  23 30 0d 10 a4 15 53 54  58 20 63 6f 63 6f 75 6e  |#0....STX cocoun|
000017f0  74 2b 26 32 30 30 30 0d  10 ae 17 2e 63 62 61 32  |t+&2000.....cba2|
00001800  20 4c 44 59 20 73 79 32  2b 26 32 30 30 30 0d 10  | LDY sy2+&2000..|
00001810  b8 14 2e 63 62 61 31 20  4c 44 41 28 26 46 32 29  |...cba1 LDA(&F2)|
00001820  2c 59 0d 10 c2 0a 84 41  23 26 32 30 0d 10 cc 0b  |,Y.....A#&20....|
00001830  43 4d 50 23 26 32 30 0d  10 d6 0f 42 45 51 20 65  |CMP#&20....BEQ e|
00001840  6e 64 5f 63 6f 6d 0d 10  e0 0b 43 4d 50 23 26 32  |nd_com....CMP#&2|
00001850  44 0d 10 ea 0f 42 45 51  20 65 6e 64 5f 63 6f 6d  |D....BEQ end_com|
00001860  0d 10 f4 15 43 4d 50 20  63 6f 6d 6d 73 2b 26 32  |....CMP comms+&2|
00001870  30 30 30 2c 58 0d 10 fe  10 42 4e 45 20 6e 65 78  |000,X....BNE nex|
00001880  74 5f 63 6f 6d 0d 11 08  07 49 4e 58 0d 11 12 07  |t_com....INX....|
00001890  49 4e 59 0d 11 1c 12 4a  4d 50 20 63 62 61 31 2b  |INY....JMP cba1+|
000018a0  26 32 30 30 30 0d 11 26  1f 2e 6e 65 78 74 5f 63  |&2000..&..next_c|
000018b0  6f 6d 20 4c 44 41 20 63  6f 6d 6d 73 2b 26 32 30  |om LDA comms+&20|
000018c0  30 30 2c 58 0d 11 30 0b  43 4d 50 23 26 46 46 0d  |00,X..0.CMP#&FF.|
000018d0  11 3a 0f 42 45 51 20 62  61 64 5f 63 6f 6d 0d 11  |.:.BEQ bad_com..|
000018e0  44 0b 43 4d 50 23 26 32  44 0d 11 4e 15 42 45 51  |D.CMP#&2D..N.BEQ|
000018f0  20 75 70 74 6f 5f 6e 65  78 74 5f 63 6f 6d 0d 11  | upto_next_com..|
00001900  58 0b 43 4d 50 23 26 32  30 0d 11 62 15 42 45 51  |X.CMP#&20..b.BEQ|
00001910  20 75 70 74 6f 5f 6e 65  78 74 5f 63 6f 6d 0d 11  | upto_next_com..|
00001920  6c 07 49 4e 58 0d 11 76  16 4a 4d 50 20 6e 65 78  |l.INX..v.JMP nex|
00001930  74 5f 63 6f 6d 2b 26 32  30 30 30 0d 11 80 16 2e  |t_com+&2000.....|
00001940  75 70 74 6f 5f 6e 65 78  74 5f 63 6f 6d 20 49 4e  |upto_next_com IN|
00001950  58 0d 11 8a 15 49 4e 43  20 63 6f 63 6f 75 6e 74  |X....INC cocount|
00001960  2b 26 32 30 30 30 0d 11  94 12 4a 4d 50 20 63 62  |+&2000....JMP cb|
00001970  61 32 2b 26 32 30 30 30  0d 11 9e 1e 2e 65 6e 64  |a2+&2000.....end|
00001980  5f 63 6f 6d 20 4c 44 41  20 63 6f 6d 6d 73 2b 26  |_com LDA comms+&|
00001990  32 30 30 30 2c 58 0d 11  a8 0b 43 4d 50 23 26 32  |2000,X....CMP#&2|
000019a0  30 0d 11 b2 0c 42 45 51  20 63 66 6f 33 0d 11 bc  |0....BEQ cfo3...|
000019b0  0b 43 4d 50 23 26 32 44  0d 11 c6 10 42 4e 45 20  |.CMP#&2D....BNE |
000019c0  6e 65 78 74 5f 63 6f 6d  0d 11 d0 1b 2e 63 66 6f  |next_com.....cfo|
000019d0  33 20 4c 44 41 20 63 6f  63 6f 75 6e 74 2b 26 32  |3 LDA cocount+&2|
000019e0  30 30 30 0d 11 da 09 41  53 4c 20 41 0d 11 e4 07  |000....ASL A....|
000019f0  54 41 58 0d 11 ee 18 4c  44 41 20 63 6f 6d 5f 61  |TAX....LDA com_a|
00001a00  64 64 72 2b 26 32 30 30  30 2c 58 0d 11 f8 14 53  |ddr+&2000,X....S|
00001a10  54 41 20 63 6f 6a 75 6d  70 2b 26 32 30 30 30 0d  |TA cojump+&2000.|
00001a20  12 02 18 4c 44 41 20 63  6f 6d 5f 61 64 64 72 2b  |...LDA com_addr+|
00001a30  26 32 30 30 31 2c 58 0d  12 0c 14 53 54 41 20 63  |&2001,X....STA c|
00001a40  6f 6a 75 6d 70 2b 26 32  30 30 31 0d 12 16 15 4a  |ojump+&2001....J|
00001a50  4d 50 28 63 6f 6a 75 6d  70 2b 26 32 30 30 30 29  |MP(cojump+&2000)|
00001a60  0d 12 20 12 2e 62 61 64  5f 63 6f 6d 20 4c 44 41  |.. ..bad_com LDA|
00001a70  23 34 0d 12 2a 0f 4c 44  59 73 79 2b 26 32 30 30  |#4..*.LDYsy+&200|
00001a80  30 0d 12 34 07 52 54 53  0d 12 3e 13 2e 63 6f 6a  |0..4.RTS..>..coj|
00001a90  75 6d 70 20 42 52 4b 3a  42 52 4b 0d 12 48 10 2e  |ump BRK:BRK..H..|
00001aa0  63 6f 63 6f 75 6e 74 20  42 52 4b 0d 12 52 10 2e  |cocount BRK..R..|
00001ab0  76 65 63 74 6f 72 73 20  42 52 4b 0d 12 5c 1d 2e  |vectors BRK..\..|
00001ac0  63 6f 6d 6d 73 20 4f 50  54 20 a4 65 71 75 73 28  |comms OPT .equs(|
00001ad0  22 73 74 61 72 74 22 29  0d 12 66 12 4f 50 54 20  |"start")..f.OPT |
00001ae0  a4 65 71 75 62 28 26 32  44 29 0d 12 70 15 4f 50  |.equb(&2D)..p.OP|
00001af0  54 20 a4 65 71 75 73 28  22 73 74 6f 70 22 29 0d  |T .equs("stop").|
00001b00  12 7a 12 4f 50 54 20 a4  65 71 75 62 28 26 32 44  |.z.OPT .equb(&2D|
00001b10  29 0d 12 84 17 4f 50 54  20 a4 65 71 75 73 28 22  |)....OPT .equs("|
00001b20  73 63 72 65 65 6e 22 29  0d 12 8e 12 4f 50 54 20  |screen")....OPT |
00001b30  a4 65 71 75 62 28 26 32  44 29 0d 12 98 15 4f 50  |.equb(&2D)....OP|
00001b40  54 20 a4 65 71 75 73 28  22 73 77 61 70 22 29 0d  |T .equs("swap").|
00001b50  12 a2 12 4f 50 54 20 a4  65 71 75 62 28 26 32 44  |...OPT .equb(&2D|
00001b60  29 0d 12 ac 16 4f 50 54  20 a4 65 71 75 73 28 22  |)....OPT .equs("|
00001b70  73 70 61 63 65 22 29 0d  12 b6 12 4f 50 54 20 a4  |space")....OPT .|
00001b80  65 71 75 62 28 26 32 30  29 0d 12 c0 12 4f 50 54  |equb(&20)....OPT|
00001b90  20 a4 65 71 75 62 28 26  46 46 29 0d 12 ca 24 2e  | .equb(&FF)...$.|
00001ba0  63 6f 6d 5f 61 64 64 72  20 4f 50 54 20 a4 65 71  |com_addr OPT .eq|
00001bb0  75 77 28 73 65 74 75 70  2b 26 32 30 30 30 29 0d  |uw(setup+&2000).|
00001bc0  12 d4 19 4f 50 54 20 a4  65 71 75 77 28 73 74 6f  |...OPT .equw(sto|
00001bd0  70 2b 26 32 30 30 30 29  0d 12 de 1a 4f 50 54 20  |p+&2000)....OPT |
00001be0  a4 65 71 75 77 28 70 72  69 6e 74 2b 26 32 30 30  |.equw(print+&200|
00001bf0  30 29 0d 12 e8 1d 4f 50  54 20 a4 65 71 75 77 28  |0)....OPT .equw(|
00001c00  63 6f 6d 5f 73 77 61 70  2b 26 32 30 30 30 29 0d  |com_swap+&2000).|
00001c10  12 f2 20 4f 50 54 20 a4  65 71 75 77 28 73 65 74  |.. OPT .equw(set|
00001c20  5f 73 70 61 63 69 6e 67  2b 26 32 30 30 30 29 0d  |_spacing+&2000).|
00001c30  12 fc 23 2e 63 6f 6d 5f  73 77 61 70 20 4a 53 52  |..#.com_swap JSR|
00001c40  73 77 61 70 5f 73 63 72  65 65 6e 73 2b 26 32 30  |swap_screens+&20|
00001c50  30 30 0d 13 06 09 4c 44  41 23 30 0d 13 10 07 52  |00....LDA#0....R|
00001c60  54 53 0d 13 1a 1f 2e 62  72 74 6f 6f 62 69 67 20  |TS.....brtoobig |
00001c70  4a 4d 50 20 74 6f 6f 5f  62 69 67 2b 26 32 30 30  |JMP too_big+&200|
00001c80  30 0d 13 24 19 2e 73 77  61 70 5f 73 63 72 65 65  |0..$..swap_scree|
00001c90  6e 73 20 4c 44 41 23 26  38 37 0d 13 2e 0d 4a 53  |ns LDA#&87....JS|
00001ca0  52 6f 73 62 79 74 65 0d  13 38 09 43 50 59 23 34  |Rosbyte..8.CPY#4|
00001cb0  0d 13 42 0f 42 43 43 62  72 74 6f 6f 62 69 67 0d  |..B.BCCbrtoobig.|
00001cc0  13 4c 11 53 54 59 6d 6f  64 65 2b 26 32 30 30 30  |.L.STYmode+&2000|
00001cd0  0d 13 56 0b 4c 44 41 23  26 38 34 0d 13 60 0d 4a  |..V.LDA#&84..`.J|
00001ce0  53 52 6f 73 62 79 74 65  0d 13 6a 07 53 45 49 0d  |SRosbyte..j.SEI.|
00001cf0  13 74 0a 4c 44 41 26 37  30 0d 13 7e 0f 53 54 41  |.t.LDA&70..~.STA|
00001d00  73 74 2b 26 32 30 30 30  0d 13 88 0a 4c 44 41 26  |st+&2000....LDA&|
00001d10  37 31 0d 13 92 0f 53 54  41 73 74 2b 26 32 30 30  |71....STAst+&200|
00001d20  31 0d 13 9c 0a 4c 44 41  26 37 32 0d 13 a6 0f 53  |1....LDA&72....S|
00001d30  54 41 73 74 2b 26 32 30  30 32 0d 13 b0 0a 4c 44  |TAst+&2002....LD|
00001d40  41 26 37 33 0d 13 ba 0f  53 54 41 73 74 2b 26 32  |A&73....STAst+&2|
00001d50  30 30 33 0d 13 c4 0a 53  54 59 26 37 31 0d 13 ce  |003....STY&71...|
00001d60  0a 53 54 58 26 37 30 0d  13 d8 10 4c 44 41 72 31  |.STX&70....LDAr1|
00001d70  32 2b 26 32 30 30 30 0d  13 e2 07 50 48 41 0d 13  |2+&2000....PHA..|
00001d80  ec 10 4c 44 41 72 31 33  2b 26 32 30 30 30 0d 13  |..LDAr13+&2000..|
00001d90  f6 07 50 48 41 0d 14 00  0b 4c 44 41 26 33 35 30  |..PHA....LDA&350|
00001da0  0d 14 0a 10 53 54 41 72  31 33 2b 26 32 30 30 30  |....STAr13+&2000|
00001db0  0d 14 14 0b 4c 44 41 26  33 35 31 0d 14 1e 10 53  |....LDA&351....S|
00001dc0  54 41 72 31 32 2b 26 32  30 30 30 0d 14 28 0b 4c  |TAr12+&2000..(.L|
00001dd0  44 41 23 26 39 38 0d 14  32 0a 53 54 41 26 37 33  |DA#&98..2.STA&73|
00001de0  0d 14 3c 09 4c 44 59 23  30 0d 14 46 0a 53 54 59  |..<.LDY#0..F.STY|
00001df0  26 37 32 0d 14 50 14 2e  73 77 62 61 20 4c 44 41  |&72..P..swba LDA|
00001e00  28 26 37 30 29 2c 59 0d  14 5a 07 50 48 41 0d 14  |(&70),Y..Z.PHA..|
00001e10  64 0e 4c 44 41 28 26 37  32 29 2c 59 0d 14 6e 0e  |d.LDA(&72),Y..n.|
00001e20  53 54 41 28 26 37 30 29  2c 59 0d 14 78 07 50 4c  |STA(&70),Y..x.PL|
00001e30  41 0d 14 82 0e 53 54 41  28 26 37 32 29 2c 59 0d  |A....STA(&72),Y.|
00001e40  14 8c 07 49 4e 59 0d 14  96 0b 42 4e 45 73 77 62  |...INY....BNEswb|
00001e50  61 0d 14 a0 0a 49 4e 43  26 37 31 0d 14 aa 0a 49  |a....INC&71....I|
00001e60  4e 43 26 37 33 0d 14 b4  0a 4c 44 41 26 37 31 0d  |NC&73....LDA&71.|
00001e70  14 be 0b 43 4d 50 23 26  38 30 0d 14 c8 0b 42 4e  |...CMP#&80....BN|
00001e80  45 73 77 62 61 0d 14 d2  11 4c 44 41 6d 6f 64 65  |Eswba....LDAmode|
00001e90  2b 26 32 30 30 30 0d 14  dc 09 43 4d 50 23 37 0d  |+&2000....CMP#7.|
00001ea0  14 e6 11 42 4e 45 6f 74  68 65 72 5f 6d 6f 64 65  |...BNEother_mode|
00001eb0  0d 14 f0 0a 4c 44 41 23  26 44 0d 14 fa 0c 53 54  |....LDA#&D....ST|
00001ec0  41 26 46 45 30 30 0d 15  04 07 50 4c 41 0d 15 0e  |A&FE00....PLA...|
00001ed0  0b 53 54 41 26 33 35 30  0d 15 18 0c 53 54 41 26  |.STA&350....STA&|
00001ee0  46 45 30 31 0d 15 22 0a  4c 44 41 23 26 43 0d 15  |FE01..".LDA#&C..|
00001ef0  2c 0c 53 54 41 26 46 45  30 30 0d 15 36 07 50 4c  |,.STA&FE00..6.PL|
00001f00  41 0d 15 40 0b 53 54 41  26 33 35 31 0d 15 4a 07  |A..@.STA&351..J.|
00001f10  53 45 43 0d 15 54 0b 53  42 43 23 26 37 34 0d 15  |SEC..T.SBC#&74..|
00001f20  5e 09 82 23 26 32 30 0d  15 68 0c 53 54 41 26 46  |^..#&20..h.STA&F|
00001f30  45 30 31 0d 15 72 0f 4c  44 41 73 74 2b 26 32 30  |E01..r.LDAst+&20|
00001f40  30 30 0d 15 7c 0a 53 54  41 26 37 30 0d 15 86 0f  |00..|.STA&70....|
00001f50  4c 44 41 73 74 2b 26 32  30 30 31 0d 15 90 0a 53  |LDAst+&2001....S|
00001f60  54 41 26 37 31 0d 15 9a  0f 4c 44 41 73 74 2b 26  |TA&71....LDAst+&|
00001f70  32 30 30 32 0d 15 a4 0a  53 54 41 26 37 32 0d 15  |2002....STA&72..|
00001f80  ae 0f 4c 44 41 73 74 2b  26 32 30 30 33 0d 15 b8  |..LDAst+&2003...|
00001f90  0a 53 54 41 26 37 33 0d  15 c2 0a 4c 44 58 23 36  |.STA&73....LDX#6|
00001fa0  34 0d 15 cc 0e 2e 6d 20  4c 44 59 23 26 46 46 0d  |4.....m LDY#&FF.|
00001fb0  15 d6 0b 2e 6d 32 20 4e  4f 50 0d 15 e0 07 44 45  |....m2 NOP....DE|
00001fc0  59 0d 15 ea 0a 42 4e 45  20 6d 32 0d 15 f4 07 44  |Y....BNE m2....D|
00001fd0  45 58 0d 15 fe 09 42 4e  45 20 6d 0d 16 08 07 43  |EX....BNE m....C|
00001fe0  4c 49 0d 16 12 07 52 54  53 0d 16 1c 16 2e 6f 74  |LI....RTS.....ot|
00001ff0  68 65 72 5f 6d 6f 64 65  20 4c 44 41 23 26 44 0d  |her_mode LDA#&D.|
00002000  16 26 0c 53 54 41 26 46  45 30 30 0d 16 30 07 50  |.&.STA&FE00..0.P|
00002010  4c 41 0d 16 3a 0b 53 54  41 26 33 35 30 0d 16 44  |LA..:.STA&350..D|
00002020  15 4c 53 52 20 41 3a 4c  53 52 20 41 3a 4c 53 52  |.LSR A:LSR A:LSR|
00002030  20 41 0d 16 4e 0c 53 54  41 26 46 45 30 31 0d 16  | A..N.STA&FE01..|
00002040  58 0a 4c 44 41 23 26 43  0d 16 62 0c 53 54 41 26  |X.LDA#&C..b.STA&|
00002050  46 45 30 30 0d 16 6c 07  50 4c 41 0d 16 76 0b 53  |FE00..l.PLA..v.S|
00002060  54 41 26 33 35 31 0d 16  80 15 4c 53 52 20 41 3a  |TA&351....LSR A:|
00002070  4c 53 52 20 41 3a 4c 53  52 20 41 0d 16 8a 0c 53  |LSR A:LSR A....S|
00002080  54 41 26 46 45 30 31 0d  16 94 07 52 54 53 0d 16  |TA&FE01....RTS..|
00002090  9e 0d 2e 6d 6f 64 65 20  42 52 4b 0d 16 a8 0c 2e  |...mode BRK.....|
000020a0  72 31 32 20 42 52 4b 0d  16 b2 0c 2e 72 31 33 20  |r12 BRK.....r13 |
000020b0  42 52 4b 0d 16 bc 14 2e  73 74 20 4f 50 54 20 a4  |BRK.....st OPT .|
000020c0  65 71 75 64 28 30 29 0d  16 c6 12 2e 74 6f 6f 5f  |equd(0).....too_|
000020d0  62 69 67 20 4c 44 59 23  30 0d 16 d0 1a 2e 74 62  |big LDY#0.....tb|
000020e0  62 61 20 4c 44 41 65 72  72 6f 72 2b 26 32 30 30  |ba LDAerror+&200|
000020f0  30 2c 59 0d 16 da 0d 53  54 41 26 31 30 30 2c 59  |0,Y....STA&100,Y|
00002100  0d 16 e4 07 49 4e 59 0d  16 ee 0a 43 50 59 23 31  |....INY....CPY#1|
00002110  31 0d 16 f8 0b 4a 4d 50  26 31 30 30 0d 17 02 0e  |1....JMP&100....|
00002120  2e 65 72 72 6f 72 20 42  52 4b 0d 17 0c 11 4f 50  |.error BRK....OP|
00002130  54 20 a4 65 71 75 62 28  32 35 29 0d 17 16 19 4f  |T .equb(25)....O|
00002140  50 54 20 a4 65 71 75 73  28 22 42 61 64 20 4d 6f  |PT .equs("Bad Mo|
00002150  64 65 22 29 0d 17 20 07  42 52 4b 0d 17 2a 14 2e  |de").. .BRK..*..|
00002160  73 65 74 5f 73 70 61 63  69 6e 67 20 49 4e 59 0d  |set_spacing INY.|
00002170  17 34 0d 2e 63 62 61 33  20 49 4e 59 0d 17 3e 0e  |.4..cba3 INY..>.|
00002180  4c 44 41 28 26 46 32 29  2c 59 0d 17 48 17 4a 53  |LDA(&F2),Y..H.JS|
00002190  52 20 76 61 6c 69 64 5f  61 73 63 2b 26 32 30 30  |R valid_asc+&200|
000021a0  30 0d 17 52 0c 42 43 53  20 63 62 61 33 0d 17 5c  |0..R.BCS cba3..\|
000021b0  15 4a 53 52 20 61 73 63  5f 68 65 78 2b 26 32 30  |.JSR asc_hex+&20|
000021c0  30 30 0d 17 66 10 53 54  41 20 73 61 2b 26 32 30  |00..f.STA sa+&20|
000021d0  30 30 0d 17 70 07 49 4e  59 0d 17 7a 0e 4c 44 41  |00..p.INY..z.LDA|
000021e0  28 26 46 32 29 2c 59 0d  17 84 17 4a 53 52 20 76  |(&F2),Y....JSR v|
000021f0  61 6c 69 64 5f 61 73 63  2b 26 32 30 30 30 0d 17  |alid_asc+&2000..|
00002200  8e 0b 42 43 53 20 77 61  73 0d 17 98 1d 41 53 4c  |..BCS was....ASL|
00002210  20 73 61 2b 26 32 30 30  30 3a 41 53 4c 20 73 61  | sa+&2000:ASL sa|
00002220  2b 26 32 30 30 30 0d 17  a2 1d 41 53 4c 20 73 61  |+&2000....ASL sa|
00002230  2b 26 32 30 30 30 3a 41  53 4c 20 73 61 2b 26 32  |+&2000:ASL sa+&2|
00002240  30 30 30 0d 17 ac 0f 84  41 20 73 61 2b 26 32 30  |000.....A sa+&20|
00002250  30 30 0d 17 b6 13 53 54  41 20 73 70 61 63 65 2b  |00....STA space+|
00002260  26 32 30 30 30 0d 17 c0  09 4c 44 41 23 30 0d 17  |&2000....LDA#0..|
00002270  ca 13 53 54 41 20 70 64  70 5f 72 75 6e 6e 69 6e  |..STA pdp_runnin|
00002280  67 0d 17 d4 07 52 54 53  0d 17 de 15 2e 77 61 73  |g....RTS.....was|
00002290  20 4c 44 41 20 73 61 2b  26 32 30 30 30 0d 17 e8  | LDA sa+&2000...|
000022a0  13 53 54 41 20 73 70 61  63 65 2b 26 32 30 30 30  |.STA space+&2000|
000022b0  0d 17 f2 09 4c 44 41 23  30 0d 17 fc 07 52 54 53  |....LDA#0....RTS|
000022c0  0d 18 06 10 2e 61 73 63  5f 68 65 78 20 53 45 43  |.....asc_hex SEC|
000022d0  0d 18 10 0b 53 42 43 23  26 33 30 0d 18 1a 0a 43  |....SBC#&30....C|
000022e0  4d 50 23 31 30 0d 18 24  0c 42 43 43 20 63 66 6f  |MP#10..$.BCC cfo|
000022f0  32 0d 18 2e 07 53 45 43  0d 18 38 09 53 42 43 23  |2....SEC..8.SBC#|
00002300  37 0d 18 42 0d 2e 63 66  6f 32 20 52 54 53 0d 18  |7..B..cfo2 RTS..|
00002310  4c 16 2e 76 61 6c 69 64  5f 61 73 63 20 43 4d 50  |L..valid_asc CMP|
00002320  23 26 33 30 0d 18 56 0c  42 4d 49 20 63 73 65 74  |#&30..V.BMI cset|
00002330  0d 18 60 0b 43 4d 50 23  26 34 37 0d 18 6a 0c 42  |..`.CMP#&47..j.B|
00002340  43 53 20 63 73 65 74 0d  18 74 0b 43 4d 50 23 26  |CS cset..t.CMP#&|
00002350  33 41 0d 18 7e 0e 42 4d  49 20 63 63 6c 65 61 72  |3A..~.BMI cclear|
00002360  0d 18 88 0b 43 4d 50 23  26 34 30 0d 18 92 0c 42  |....CMP#&40....B|
00002370  4d 49 20 63 73 65 74 0d  18 9c 0f 2e 63 63 6c 65  |MI cset.....ccle|
00002380  61 72 20 43 4c 43 0d 18  a6 07 52 54 53 0d 18 b0  |ar CLC....RTS...|
00002390  0d 2e 63 73 65 74 20 53  45 43 0d 18 ba 07 52 54  |..cset SEC....RT|
000023a0  53 0d 18 c4 05 20 0d 18  ce 0f 2e 77 61 69 74 20  |S.... .....wait |
000023b0  4c 44 58 23 38 0d 18 d8  0f 2e 6c 32 20 4c 44 59  |LDX#8.....l2 LDY|
000023c0  23 26 46 46 0d 18 e2 0a  2e 6c 20 4e 4f 50 0d 18  |#&FF.....l NOP..|
000023d0  ec 07 44 45 59 0d 18 f6  09 42 4e 45 20 6c 0d 19  |..DEY....BNE l..|
000023e0  00 07 44 45 58 0d 19 0a  0a 42 4e 45 20 6c 32 0d  |..DEX....BNE l2.|
000023f0  19 14 07 43 4c 49 0d 19  1e 0b 4c 44 41 23 26 46  |...CLI....LDA#&F|
00002400  46 0d 19 28 0e 82 20 6f  6b 2b 26 32 30 30 30 0d  |F..(.. ok+&2000.|
00002410  19 32 10 53 54 41 20 6f  6b 2b 26 32 30 30 30 0d  |.2.STA ok+&2000.|
00002420  19 3c 19 2e 77 61 69 74  69 6e 67 20 4c 44 41 20  |.<..waiting LDA |
00002430  6f 6b 2b 26 32 30 30 30  0d 19 46 0b 43 4d 50 23  |ok+&2000..F.CMP#|
00002440  26 46 46 0d 19 50 0f 42  45 51 20 77 61 69 74 69  |&FF..P.BEQ waiti|
00002450  6e 67 0d 19 5a 14 4a 4d  50 20 62 61 63 6b 6f 73  |ng..Z.JMP backos|
00002460  2b 26 32 30 30 30 0d 19  64 0b 2e 6f 6b 20 42 52  |+&2000..d..ok BR|
00002470  4b 0d 19 6e 05 5d 0d 19  78 05 ed 0d 19 82 13 f1  |K..n.]..x.......|
00002480  27 22 2a 52 55 4e 20 55  50 20 6e 6f 77 22 0d 19  |'"*RUN UP now"..|
00002490  8c 21 f1 22 54 68 65 6e  20 70 72 65 73 73 20 42  |.!."Then press B|
000024a0  72 65 61 6b 20 61 6e 64  20 2a 48 45 4c 50 22 0d  |reak and *HELP".|
000024b0  19 96 05 e0 0d 19 a0 0d  dd a4 65 71 75 62 28 78  |..........equb(x|
000024c0  29 0d 19 aa 09 3f 50 25  3d 78 0d 19 b4 0b 50 25  |)....?P%=x....P%|
000024d0  3d 50 25 2b 31 0d 19 be  0a 3a 3d 70 61 73 73 0d  |=P%+1....:=pass.|
000024e0  19 c8 0d dd a4 65 71 75  77 28 78 29 0d 19 d2 09  |.....equw(x)....|
000024f0  21 50 25 3d 78 0d 19 dc  0b 50 25 3d 50 25 2b 32  |!P%=x....P%=P%+2|
00002500  0d 19 e6 0a 3a 3d 70 61  73 73 0d 19 f0 0d dd a4  |....:=pass......|
00002510  65 71 75 64 28 78 29 0d  19 fa 09 21 50 25 3d 78  |equd(x)....!P%=x|
00002520  0d 1a 04 0b 50 25 3d 50  25 2b 34 0d 1a 0e 0a 3a  |....P%=P%+4....:|
00002530  3d 70 61 73 73 0d 1a 18  0e dd a4 65 71 75 73 28  |=pass......equs(|
00002540  78 24 29 0d 1a 22 0a 24  50 25 3d 78 24 0d 1a 2c  |x$)..".$P%=x$..,|
00002550  0f 50 25 3d 50 25 2b a9  28 78 24 29 0d 1a 36 0a  |.P%=P%+.(x$)..6.|
00002560  3a 3d 70 61 73 73 0d 1a  40 10 dd a4 62 79 74 65  |:=pass..@...byte|
00002570  73 33 32 28 78 29 0d 1a  4a 13 e3 20 78 25 3d 50  |s32(x)..J.. x%=P|
00002580  25 20 b8 20 50 25 2b 33  32 0d 1a 54 09 3f 78 25  |% . P%+32..T.?x%|
00002590  3d 78 0d 1a 5e 05 ed 0d  1a 68 0c 50 25 3d 50 25  |=x..^....h.P%=P%|
000025a0  2b 33 32 0d 1a 72 0a 3a  3d 70 61 73 73 0d ff     |+32..r.:=pass..|
000025af
Utils/PDR.m0
Utils/PDR.m1
Utils/PDR.m2
Utils/PDR.m4
Utils/PDR.m5