Home » CEEFAX disks » telesoftware3.adl » 17_10_87/SNAP

17_10_87/SNAP

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 » telesoftware3.adl
Filename: 17_10_87/SNAP
Read OK:
File size: 2016 bytes
Load address: 1900
Exec address: 8023
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   10REM Snapshot
   20REM (c) Allan Kelly 24/7/86
   30REM Start:Jan 86. Latest update:Feb 87
   40REM For BBCs with 16K Sideways RAM
   50:
   60REM Thanks to Chris Foster and David "WACCI" Halligan
   70:
   80osfile=&FFDD
   90oswrch=&FFEE
  100osbyte=&FFF4
  110osnewl=&FFE7
  120osasci=&FFE3
  130gsread=&FFC5
  140gsinit=&FFC2
  150:
  160INPUT"File name for first disc file:"pot$
  170INPUT"File name for second disc file:"old$
  180:
  190FOR pass=0 TO 2 STEP 2
  200P%=&5000
  210last=P%
  220[
  230OPT pass
  240BRK:BRK:BRK
  250JMP enter+&3000
  260OPT FNequb(&82)
  270OPT FNequb(&11)
  280OPT FNequb(4)
  290OPT FNequs("Snapshot")
  300BRK
  310OPT FNequs("(C)")
  320OPT FNequs("Allan Kelly")
  330BRK:BRK:BRK
  340BRK:BRK:BRK
  350BRK:BRK:BRK
  360:
  370.enter CMP#5
  380BEQ interbr
  390CMP#9
  400BEQ help
  410CMP#4
  420BEQ parse
  430CMP#&FE
  440BEQ stop
  450RTS
  460.stop LDA#0
  470STA repeat_flag+&3000
  480LDA#&FE
  490RTS
  500.interbr JMP inter+&3000
  510:
  520.help PHA \ help message
  530TXA
  540PHA
  550TYA
  560PHA
  570LDX#dark MOD 256
  580LDY#(dark+&3000) DIV 256
  590JSR display+&3000
  600PLA
  610TAY
  620PLA
  630TAX
  640PLA
  650RTS
  660:
  670.display STX&70
  680STY&71
  690LDY#0
  700.dback LDA(&70),Y
  710JSR osasci
  720INY
  730CMP#0
  740BNE dback
  750RTS
  760:
  770.parse STY sy+&3000
  780LDA(&F2),Y
  790ORA#&20
  800CMP#ASC"p" \ To change mask character change p here
  810BNE pfo1
  820INY
  830.pfo1 STY sy+&3001
  840LDX#0
  850STX count+&3000
  860.pba5 LDY sy+&3001
  870.pba1 LDA(&F2),Y
  880ORA#&20
  890CMP comms+&3000,X
  900BNE next_com
  910CMP#&20
  920BEQ end_com
  930CMP#&2D
  940BEQ end_com
  950INX
  960INY
  970JMP pba1+&3000
  980.next_com LDA comms+&3000,X
  990CMP#&FF
 1000BEQ bad_com
 1010CMP#&2D
 1020BEQ upto_next_com
 1030CMP#&20
 1040BEQ upto_next_com
 1050INX
 1060JMP next_com+&3000
 1070.upto_next_com INX
 1080INC count+&3000
 1090JMP pba5+&3000
 1100.end_com LDA count+&3000
 1110ASL A
 1120TAX
 1130LDA com_addr+&3000,X
 1140STA jump+&3000
 1150LDA com_addr+&3001,X
 1160STA jump+&3001
 1170JMP(jump+&3000)
 1180.bad_com LDY sy+&3000
 1190LDA#4
 1200RTS
 1210:
 1220.syntax \ an error has occured issue error &DC
 1230LDY#0
 1240STY&100
 1250.pba2 LDA errorDC+&3000,Y
 1260STA&101,Y
 1270INY
 1280CMP#0
 1290BNE pba2
 1300JMP&100
 1310:
 1320.asc_hex SEC
 1330SBC#&30
 1340CMP#9
 1350BMI pfo2
 1360SEC
 1370SBC#7
 1380.pfo2 CMP#0
 1390BMI syntax
 1400RTS
 1410.cli_two_asc_hex
 1420.pba3 INY
 1430BEQ syntax
 1440LDA(&F2),Y
 1450CMP#&D
 1460JSR valid_asc+&3000
 1470BCS pba3
 1480.pfo3 JSR asc_hex+&3000
 1490STA sa+&3000
 1500INY
 1510LDA(&F2),Y
 1520INY
 1530CMP#&D
 1540BEQ was
 1550CMP#&20
 1560BEQ was
 1570JSR valid_asc+&3000
 1580BCS syntax
 1590BEQ was
 1600ASL sa+&3000
 1610ASL sa+&3000
 1620ASL sa+&3000
 1630ASL sa+&3000
 1640JSR asc_hex+&3000
 1650ORA sa+&3000
 1660RTS
 1670.was LDA sa+&3000
 1680RTS
 1690:
 1700.valid_asc CMP#&30
 1710BMI pset
 1720CMP#&47
 1730BCS pset
 1740CMP#&3A
 1750BMI pclear
 1760CMP#&40
 1770BMI pset
 1780.pclear CLC
 1790RTS
 1800.pset SEC
 1810RTS
 1820:
 1830.prepear LDA#&FF
 1840STA got_imposter+&3000
 1850SEI
 1860LDY#0
 1870.back LDA 0,Y
 1880STA&AC00,Y
 1890INY
 1900CPY#0
 1910BNE back
 1920LDA#0
 1930STA&70
 1940STA&72
 1950LDA#1
 1960STA&71
 1970LDA#&AD
 1980STA&73
 1990LDY#0
 2000.back2 LDA(&70),Y
 2010STA(&72),Y
 2020INY
 2030CPY#0
 2040BNE back2
 2050INC&71
 2060INC&73
 2070LDA&73
 2080CMP#&C0
 2090BNE back2
 2100CLI
 2110LDA#7 \ beep
 2120JSR oswrch
 2130LDA#0
 2140RTS
 2150:
 2160.get LDY#0 \ take snapshot
 2170.back1 LDA0,Y
 2180STA&8A00,Y
 2190INY
 2200BNE back1
 2210LDA#0
 2220STA&70
 2230STA&72
 2240LDA#1
 2250STA&71
 2260LDA#&8B
 2270STA&73
 2280.back2 LDY#0
 2290.back3 LDA(&70),Y
 2300STA(&72),Y
 2310INY
 2320BNE back3
 2330INC&71
 2340INC&73
 2350LDA&71
 2360CMP#&15
 2370BNE back2
 2380LDA#0
 2390STA&70
 2400STA&72
 2410LDA#1
 2420STA&71
 2430LDA#&AD
 2440STA&73
 2450.back5 LDY#0
 2460.back6 LDA(&72),Y
 2470STA(&70),Y
 2480INY
 2490BNE back6
 2500INC&71
 2510INC&73
 2520LDA&71
 2530CMP#&14
 2540BNE back5
 2550LDY#0
 2560.back7 LDA&AC00,Y
 2570STA0,Y
 2580INY
 2590BNE back7
 2600LDY#0
 2610.back4 LDA data+&3000,Y
 2620STA&7E0,Y
 2630INY
 2640CMP#&D
 2650BNE back4
 2660CLI
 2670JSR save+&3000
 2680SEI
 2690LDA#0
 2700STA&70
 2710STA&72
 2720LDA#&30
 2730STA&71
 2740LDA#&8A
 2750STA&73
 2760.back8 LDY#0
 2770.back9 LDA(&72),Y
 2780STA(&70),Y
 2790INY
 2800BNE back9
 2810INC&71
 2820INC&73
 2830LDA&73
 2840CMP#&9F
 2850BNE back8
 2860LDA ss+&3000
 2870STA&4508
 2880LDY#0
 2890.backA LDA data2+&3000,Y
 2900STA&7E0,Y
 2910INY
 2920CMP#&D
 2930BNE backA
 2940CLI
 2950JSR save+&3000
 2960JMP put_plus+&3000 \ restore machine status
 2970:
 2980.put LDY#0
 2990.gback1 LDA data3+&3000,Y
 3000STA&7E0,Y
 3010INY
 3020CMP#&D
 3030BNE gback1
 3040JSR load+&3000
 3050:
 3060.put_plus LDA#0
 3070STA&70
 3080STA&72
 3090LDA#&30
 3100STA&71
 3110LDA#&8A
 3120STA&73
 3130LDY#0
 3140.gback2 LDA(&70),Y
 3150STA(&72),Y
 3160INY
 3170CPY#0
 3180BNE gback2
 3190INC&71
 3200INC&73
 3210LDA&71
 3220CMP#&45
 3230BNE gback2
 3240LDA&4508
 3250STA ss+&3000
 3260LDA#22
 3270JSR oswrch
 3280LDA&3355
 3290STA mode+&3000
 3300JSR oswrch
 3310LDY#0
 3320.gback3 LDA data4+&3000,Y
 3330STA&7E0,Y
 3340INY
 3350CMP#&D
 3360BNE gback3
 3370JSR load+&3000
 3380SEI
 3390LDA#0
 3400STA&70
 3410STA&72
 3420LDA#&8B
 3430STA&71
 3440LDA#&1
 3450STA&73
 3460LDY#0
 3470.gback5 LDA(&70),Y
 3480STA(&72),Y
 3490INY
 3500BNE gback5
 3510INC&71
 3520INC&73
 3530LDA&71
 3540CMP#&9F
 3550BNE gback5
 3560LDY#0
 3570.gback6 LDA&8A00,Y
 3580STA 0,Y
 3590INY
 3600BNE gback6
 3610LDX mode+&3000
 3620CPX#7
 3630BNE other
 3640LDA#13
 3650STA&FE00
 3660LDA&350
 3670STA&FE01
 3680LDA#12
 3690STA&FE00
 3700LDA&351
 3710SEC
 3720SBC#&74
 3730EOR#&20
 3740STA&FE01
 3750.gback7 LDX ss+&3000
 3760TXS
 3770LDA repeat_flag+&3000
 3780CMP#&FF
 3790BNE no_repeat
 3800JMP set_inter+&3000
 3810.no_repeat LDA#0
 3820CLI
 3830RTS
 3840.other LDA#&D
 3850STA&FE00
 3860LDA&350
 3870LSR A
 3880LSR A
 3890LSR A
 3900STA&FE01
 3910LDA#&C
 3920STA&FE00
 3930LDA&351
 3940LSR A
 3950LSR A
 3960LSR A
 3970STA&FE01
 3980JMP gback7+&3000
 3990:
 4000.wait LDA got_imposter+&3000
 4010CMP#&FF
 4020BEQ wok
 4030JMP error+&3000
 4040.wok JSR cli_two_asc_hex+&3000
 4050STA waiting+&3000
 4060.set_inter LDA#0
 4070STA tim+&3001
 4080JMP timer+&3000
 4090:
 4100.inter LDA#&40 \ Service timer interupt
 4110STA&FE6D
 4120LDA tim+&3000
 4130CLC
 4140ADC#1 \ Increase this number for an even faster Snapshot
 4150STA tim+&3000
 4160LDA tim+&3001
 4170ADC#0
 4180STA tim+&3001
 4190CMP waiting+&3000
 4200BEQ shoot
 4210.timer LDA#&FF
 4220STA&FE64
 4230STA&FE65
 4240LDA#&C0
 4250STA&FE6E
 4260LDA#0
 4270CLI
 4280RTS
 4290.shoot TSX
 4300STX ss+&3000
 4310JMP get+&3000
 4320:
 4330.now LDA got_imposter+&3000
 4340CMP#&FF
 4350BNE no_snap
 4360LDA#0
 4370STA repeat_flag+&3000
 4380JMP shoot+&3000
 4390.no_snap JMP error+&3000
 4400:
 4410.restore JMP put+&3000
 4420:
 4430.repeat LDA got_imposter+&3000
 4440CMP#&FF
 4450BNE no_snap
 4460STA repeat_flag+&3000
 4470LDA#0
 4480RTS
 4490:
 4500.save LDA#0
 4510LDX#&E0
 4520LDY#&7
 4530JMP osfile
 4540.load LDA#&FF
 4550LDX#&E0
 4560LDY#&7
 4570JMP osfile
 4580:
 4590\ Data
 4600.repeat_flag BRK
 4610.waiting BRK
 4620.got_imposter BRK
 4630.tim BRK:BRK
 4640.mode BRK
 4650.ss BRK
 4660.sa BRK:BRK
 4670.sy BRK:BRK
 4680.sx BRK:BRK
 4690.count BRK
 4700.jump BRK:BRK
 4710.comms OPT FNequs("now")
 4720OPT FNequb(&2D)
 4730OPT FNequs("ready")
 4740OPT FNequb(&2D)
 4750OPT FNequs("restore")
 4760OPT FNequb(&2D)
 4770OPT FNequs("wait")
 4780OPT FNequb(&20)
 4790OPT FNequs("repeat")
 4800OPT FNequb(&2D)
 4810OPT FNequs("names")
 4820OPT FNequb(&2D)
 4830OPT FNequb(&FF)
 4840.com_addr OPT FNequw(now+&3000)
 4850OPT FNequw(prepear+&3000)
 4860OPT FNequw(restore+&3000)
 4870OPT FNequw(wait+&3000)
 4880OPT FNequw(repeat+&3000)
 4890OPT FNequw(names+&3000)
 4900.errorDC OPT FNequb(&DC)
 4910OPT FNequs("Syntax error")
 4920BRK
 4930.dark OPT FNequb(&D)
 4940OPT FNequs("Snapshot Version PALO004")
 4950OPT FNequw(&000D)
 4960.data OPT FNequw(&7F3)
 4970OPT FNequd(&1400)
 4980OPT FNequd(&1400)
 4990OPT FNequd(&1400)
 5000OPT FNequd(&8000)
 5010BRK
 5020OPT FNequs(pot$)
 5030OPT FNequb(&D)
 5040.data2 OPT FNequw(&7F3)
 5050OPT FNequd(0)
 5060OPT FNequd(0)
 5070OPT FNequd(&3000)
 5080OPT FNequd(&4510)
 5090BRK
 5100OPT FNequs(old$)
 5110OPT FNequb(&D)
 5120.data3 OPT FNequw(&7F3)
 5130OPT FNequd(&3000)
 5140OPT FNequd(0)
 5150OPT FNequd(0)
 5160OPT FNequd(0)
 5170BRK
 5180OPT FNequs(old$)
 5190OPT FNequb(&D)
 5200.data4 OPT FNequw(&7F3)
 5210OPT FNequd(&1400)
 5220OPT FNequd(0)
 5230OPT FNequd(0)
 5240OPT FNequd(0)
 5250BRK
 5260OPT FNequs(pot$)
 5270OPT FNequb(&D)
 5280 
 5290.error LDX#0
 5300.err_back LDA err_mess+&3000,X
 5310STA &100,X
 5320INX
 5330CPX#&E
 5340BNE err_back
 5350JMP&100
 5360.err_mess BRK
 5370OPT FNequb(&80)
 5380OPT FNequs("No imposter")
 5390BRK
 5400 
 5410.files OPT FNequs(pot$+" "+old$)
 5420BRK
 5430.names LDY#0
 5440.na_back LDA files,Y
 5450JSR oswrch
 5460INY
 5470CMP#0
 5480BNE na_back
 5490LDA#0
 5500RTS
 5510]
 5520NEXT
 5530:
 5540PRINT"OK"
 5550PRINT"*SAVE U.CODE 5000 54FF"
 5560END
 5570:
 5580DEFFNequs(x$)
 5590$P%=x$
 5600P%=P%+LEN(x$)
 5610:=pass
 5620:
 5630DEFFNequw(x)
 5640!P%=x
 5650P%=P%+2
 5660:=pass
 5670:
 5680DEFFNequb(x)
 5690?P%=x
 5700P%=P%+1
 5710:=pass
 5720:
 5730DEFFNequd(x)
 5740!P%=x
 5750P%=P%+4
 5760:=pass

� Snapshot
� (c) Allan Kelly 24/7/86
(� Start:Jan 86. Latest update:Feb 87
($� For BBCs with 16K Sideways RAM
2:
<7� Thanks to Chris Foster and David "WACCI" Halligan
F:
Posfile=&FFDD
Zoswrch=&FFEE
dosbyte=&FFF4
nosnewl=&FFE7
xosasci=&FFE3
�gsread=&FFC5
�gsinit=&FFC2
�:
�)�"File name for first disc file:"pot$
�*�"File name for second disc file:"old$
�:
�� pass=0 � 2 � 2
�P%=&5000
�last=P%
�[
�OPT pass
�BRK:BRK:BRK
�JMP enter+&3000
OPT �equb(&82)
OPT �equb(&11)
OPT �equb(4)
"OPT �equs("Snapshot")
,BRK
6OPT �equs("(C)")
@OPT �equs("Allan Kelly")
JBRK:BRK:BRK
TBRK:BRK:BRK
^BRK:BRK:BRK
h:
r.enter CMP#5
|BEQ interbr
�	CMP#9
�BEQ help
�	CMP#4
�
BEQ parse
�CMP#&FE
�BEQ stop
�RTS
�.stop LDA#0
�STA repeat_flag+&3000
�LDA#&FE
�RTS
�.interbr JMP inter+&3000
�:
.help PHA \ help message
TXA
PHA
&TYA
0PHA
:LDX#dark � 256
DLDY#(dark+&3000) � 256
NJSR display+&3000
XPLA
bTAY
lPLA
vTAX
�PLA
�RTS
�:
�.display STX&70
�
STY&71
�	LDY#0
�.dback LDA(&70),Y
�JSR osasci
�INY
�	CMP#0
�
BNE dback
�RTS
�:
.parse STY sy+&3000
LDA(&F2),Y

�A#&20
 5CMP#�"p" \ To change mask character change p here
*BNE pfo1
4INY
>.pfo1 STY sy+&3001
H	LDX#0
RSTX count+&3000
\.pba5 LDY sy+&3001
f.pba1 LDA(&F2),Y
p
�A#&20
zCMP comms+&3000,X
�BNE next_com
�CMP#&20
�BEQ end_com
�CMP#&2D
�BEQ end_com
�INX
�INY
�JMP pba1+&3000
�.next_com LDA comms+&3000,X
�CMP#&FF
�BEQ bad_com
�CMP#&2D
�BEQ upto_next_com
CMP#&20
BEQ upto_next_com
INX
$JMP next_com+&3000
..upto_next_com INX
8INC count+&3000
BJMP pba5+&3000
L.end_com LDA count+&3000
V	ASL A
`TAX
jLDA com_addr+&3000,X
tSTA jump+&3000
~LDA com_addr+&3001,X
�STA jump+&3001
�JMP(jump+&3000)
�.bad_com LDY sy+&3000
�	LDA#4
�RTS
�:
�2.syntax \ an error has occured issue error &DC
�	LDY#0
�STY&100
�.pba2 LDA errorDC+&3000,Y
�
STA&101,Y
�INY
	CMP#0

BNE pba2
JMP&100
:
(.asc_hex SEC
2SBC#&30
<	CMP#9
FBMI pfo2
PSEC
Z	SBC#7
d.pfo2 CMP#0
nBMI syntax
xRTS
�.cli_two_asc_hex
�
.pba3 INY
�BEQ syntax
�LDA(&F2),Y
�
CMP#&D
�JSR valid_asc+&3000
�BCS pba3
�.pfo3 JSR asc_hex+&3000
�STA sa+&3000
�INY
�LDA(&F2),Y
�INY
�
CMP#&D
BEQ was
CMP#&20
BEQ was
"JSR valid_asc+&3000
,BCS syntax
6BEQ was
@ASL sa+&3000
JASL sa+&3000
TASL sa+&3000
^ASL sa+&3000
hJSR asc_hex+&3000
r�A sa+&3000
|RTS
�.was LDA sa+&3000
�RTS
�:
�.valid_asc CMP#&30
�BMI pset
�CMP#&47
�BCS pset
�CMP#&3A
�BMI pclear
�CMP#&40
�BMI pset
�.pclear CLC
�RTS

.pset SEC
RTS
:
&.prepear LDA#&FF
0STA got_imposter+&3000
:SEI
D	LDY#0
N.back LDA 0,Y
XSTA&AC00,Y
bINY
l	CPY#0
vBNE back
�	LDA#0
�
STA&70
�
STA&72
�	LDA#1
�
STA&71
�LDA#&AD
�
STA&73
�	LDY#0
�.back2 LDA(&70),Y
�STA(&72),Y
�INY
�	CPY#0
�
BNE back2

INC&71

INC&73

LDA&73
 CMP#&C0
*
BNE back2
4CLI
>LDA#7 \ beep
HJSR oswrch
R	LDA#0
\RTS
f:
p.get LDY#0 \ take snapshot
z.back1 LDA0,Y
�STA&8A00,Y
�INY
�
BNE back1
�	LDA#0
�
STA&70
�
STA&72
�	LDA#1
�
STA&71
�LDA#&8B
�
STA&73
�.back2 LDY#0
�.back3 LDA(&70),Y
�STA(&72),Y
	INY
	
BNE back3
	
INC&71
	$
INC&73
	.
LDA&71
	8CMP#&15
	B
BNE back2
	L	LDA#0
	V
STA&70
	`
STA&72
	j	LDA#1
	t
STA&71
	~LDA#&AD
	�
STA&73
	�.back5 LDY#0
	�.back6 LDA(&72),Y
	�STA(&70),Y
	�INY
	�
BNE back6
	�
INC&71
	�
INC&73
	�
LDA&71
	�CMP#&14
	�
BNE back5
	�	LDY#0
.back7 LDA&AC00,Y


STA0,Y
INY

BNE back7
(	LDY#0
2.back4 LDA data+&3000,Y
<
STA&7E0,Y
FINY
P
CMP#&D
Z
BNE back4
dCLI
nJSR save+&3000
xSEI
�	LDA#0
�
STA&70
�
STA&72
�LDA#&30
�
STA&71
�LDA#&8A
�
STA&73
�.back8 LDY#0
�.back9 LDA(&72),Y
�STA(&70),Y
�INY
�
BNE back9
�
INC&71

INC&73

LDA&73
CMP#&9F
"
BNE back8
,LDA ss+&3000
6STA&4508
@	LDY#0
J.backA LDA data2+&3000,Y
T
STA&7E0,Y
^INY
h
CMP#&D
r
BNE backA
|CLI
�JSR save+&3000
�/JMP put_plus+&3000 \ restore machine status
�:
�.put LDY#0
�.gback1 LDA data3+&3000,Y
�
STA&7E0,Y
�INY
�
CMP#&D
�BNE gback1
�JSR load+&3000
�:
�.put_plus LDA#0
�
STA&70

STA&72
LDA#&30

STA&71
&LDA#&8A
0
STA&73
:	LDY#0
D.gback2 LDA(&70),Y
NSTA(&72),Y
XINY
b	CPY#0
lBNE gback2
v
INC&71
�
INC&73
�
LDA&71
�CMP#&45
�BNE gback2
�LDA&4508
�STA ss+&3000
�
LDA#22
�JSR oswrch
�LDA&3355
�STA mode+&3000
�JSR oswrch
�	LDY#0
�.gback3 LDA data4+&3000,Y


STA&7E0,Y

INY


CMP#&D

 BNE gback3

*JSR load+&3000

4SEI

>	LDA#0

H
STA&70

R
STA&72

\LDA#&8B

f
STA&71

p
LDA#&1

z
STA&73

�	LDY#0

�.gback5 LDA(&70),Y

�STA(&72),Y

�INY

�BNE gback5

�
INC&71

�
INC&73

�
LDA&71

�CMP#&9F

�BNE gback5

�	LDY#0

�.gback6 LDA&8A00,Y

�STA 0,Y
INY
BNE gback6
LDX mode+&3000
$	CPX#7
.
BNE other
8
LDA#13
BSTA&FE00
LLDA&350
VSTA&FE01
`
LDA#12
jSTA&FE00
tLDA&351
~SEC
�SBC#&74
�	�#&20
�STA&FE01
�.gback7 LDX ss+&3000
�TXS
�LDA repeat_flag+&3000
�CMP#&FF
�BNE no_repeat
�JMP set_inter+&3000
�.no_repeat LDA#0
�CLI
�RTS
.other LDA#&D

STA&FE00
LDA&350
	LSR A
(	LSR A
2	LSR A
<STA&FE01
F
LDA#&C
PSTA&FE00
ZLDA&351
d	LSR A
n	LSR A
x	LSR A
�STA&FE01
�JMP gback7+&3000
�:
� .wait LDA got_imposter+&3000
�CMP#&FF
�BEQ wok
�JMP error+&3000
�".wok JSR cli_two_asc_hex+&3000
�STA waiting+&3000
�.set_inter LDA#0
�STA tim+&3001
�JMP timer+&3000
�:
+.inter LDA#&40 \ Service timer interupt
STA&FE6D
LDA tim+&3000
"CLC
,<ADC#1 \ Increase this number for an even faster Snapshot
6STA tim+&3000
@LDA tim+&3001
J	ADC#0
TSTA tim+&3001
^CMP waiting+&3000
h
BEQ shoot
r.timer LDA#&FF
|STA&FE64
�STA&FE65
�LDA#&C0
�STA&FE6E
�	LDA#0
�CLI
�RTS
�.shoot TSX
�STX ss+&3000
�JMP get+&3000
�:
�.now LDA got_imposter+&3000
�CMP#&FF
�BNE no_snap
	LDA#0
STA repeat_flag+&3000
JMP shoot+&3000
&.no_snap JMP error+&3000
0:
:.restore JMP put+&3000
D:
N".repeat LDA got_imposter+&3000
XCMP#&FF
bBNE no_snap
lSTA repeat_flag+&3000
v	LDA#0
�RTS
�:
�.save LDA#0
�LDX#&E0
�
LDY#&7
�JMP osfile
�.load LDA#&FF
�LDX#&E0
�
LDY#&7
�JMP osfile
�:
�
\ Data
�.repeat_flag BRK
.waiting BRK
.got_imposter BRK
.tim BRK:BRK
 
.mode BRK
*.ss BRK
4.sa BRK:BRK
>.sy BRK:BRK
H.sx BRK:BRK
R.count BRK
\.jump BRK:BRK
f.comms OPT �equs("now")
pOPT �equb(&2D)
zOPT �equs("ready")
�OPT �equb(&2D)
�OPT �equs("restore")
�OPT �equb(&2D)
�OPT �equs("wait")
�OPT �equb(&20)
�OPT �equs("repeat")
�OPT �equb(&2D)
�OPT �equs("names")
�OPT �equb(&2D)
�OPT �equb(&FF)
�".com_addr OPT �equw(now+&3000)
�OPT �equw(prepear+&3000)
�OPT �equw(restore+&3000)
OPT �equw(wait+&3000)
OPT �equw(repeat+&3000)
OPT �equw(names+&3000)
$.errorDC OPT �equb(&DC)
.OPT �equs("Syntax error")
8BRK
B.dark OPT �equb(&D)
L)OPT �equs("Snapshot Version PALO004")
VOPT �equw(&000D)
`.data OPT �equw(&7F3)
jOPT �equd(&1400)
tOPT �equd(&1400)
~OPT �equd(&1400)
�OPT �equd(&8000)
�BRK
�OPT �equs(pot$)
�OPT �equb(&D)
�.data2 OPT �equw(&7F3)
�OPT �equd(0)
�OPT �equd(0)
�OPT �equd(&3000)
�OPT �equd(&4510)
�BRK
�OPT �equs(old$)
�OPT �equb(&D)
.data3 OPT �equw(&7F3)

OPT �equd(&3000)
OPT �equd(0)
OPT �equd(0)
(OPT �equd(0)
2BRK
<OPT �equs(old$)
FOPT �equb(&D)
P.data4 OPT �equw(&7F3)
ZOPT �equd(&1400)
dOPT �equd(0)
nOPT �equd(0)
xOPT �equd(0)
�BRK
�OPT �equs(pot$)
�OPT �equb(&D)
� 
�.error LDX#0
�".err_back LDA err_mess+&3000,X
�STA &100,X
�INX
�
CPX#&E
�BNE err_back
�JMP&100
�.err_mess BRK
�OPT �equb(&80)
OPT �equs("No imposter")
BRK
 
"#.files OPT �equs(pot$+" "+old$)
,BRK
6.names LDY#0
@.na_back LDA files,Y
JJSR oswrch
TINY
^	CMP#0
hBNE na_back
r	LDA#0
|RTS
�]
��
�:
�	�"OK"
��"*SAVE U.CODE 5000 54FF"
��
�:
�ݤequs(x$)
�
$P%=x$
�P%=P%+�(x$)
�
:=pass
�:
�
ݤequw(x)
	!P%=x
P%=P%+2

:=pass
&:
0
ݤequb(x)
:	?P%=x
DP%=P%+1
N
:=pass
X:
b
ݤequd(x)
l	!P%=x
vP%=P%+4
�
:=pass
�
00000000  0d 00 0a 0e f4 20 53 6e  61 70 73 68 6f 74 0d 00  |..... Snapshot..|
00000010  14 1d f4 20 28 63 29 20  41 6c 6c 61 6e 20 4b 65  |... (c) Allan Ke|
00000020  6c 6c 79 20 32 34 2f 37  2f 38 36 0d 00 1e 28 f4  |lly 24/7/86...(.|
00000030  20 53 74 61 72 74 3a 4a  61 6e 20 38 36 2e 20 4c  | Start:Jan 86. L|
00000040  61 74 65 73 74 20 75 70  64 61 74 65 3a 46 65 62  |atest update:Feb|
00000050  20 38 37 0d 00 28 24 f4  20 46 6f 72 20 42 42 43  | 87..($. For BBC|
00000060  73 20 77 69 74 68 20 31  36 4b 20 53 69 64 65 77  |s with 16K Sidew|
00000070  61 79 73 20 52 41 4d 0d  00 32 05 3a 0d 00 3c 37  |ays RAM..2.:..<7|
00000080  f4 20 54 68 61 6e 6b 73  20 74 6f 20 43 68 72 69  |. Thanks to Chri|
00000090  73 20 46 6f 73 74 65 72  20 61 6e 64 20 44 61 76  |s Foster and Dav|
000000a0  69 64 20 22 57 41 43 43  49 22 20 48 61 6c 6c 69  |id "WACCI" Halli|
000000b0  67 61 6e 0d 00 46 05 3a  0d 00 50 10 6f 73 66 69  |gan..F.:..P.osfi|
000000c0  6c 65 3d 26 46 46 44 44  0d 00 5a 10 6f 73 77 72  |le=&FFDD..Z.oswr|
000000d0  63 68 3d 26 46 46 45 45  0d 00 64 10 6f 73 62 79  |ch=&FFEE..d.osby|
000000e0  74 65 3d 26 46 46 46 34  0d 00 6e 10 6f 73 6e 65  |te=&FFF4..n.osne|
000000f0  77 6c 3d 26 46 46 45 37  0d 00 78 10 6f 73 61 73  |wl=&FFE7..x.osas|
00000100  63 69 3d 26 46 46 45 33  0d 00 82 10 67 73 72 65  |ci=&FFE3....gsre|
00000110  61 64 3d 26 46 46 43 35  0d 00 8c 10 67 73 69 6e  |ad=&FFC5....gsin|
00000120  69 74 3d 26 46 46 43 32  0d 00 96 05 3a 0d 00 a0  |it=&FFC2....:...|
00000130  29 e8 22 46 69 6c 65 20  6e 61 6d 65 20 66 6f 72  |)."File name for|
00000140  20 66 69 72 73 74 20 64  69 73 63 20 66 69 6c 65  | first disc file|
00000150  3a 22 70 6f 74 24 0d 00  aa 2a e8 22 46 69 6c 65  |:"pot$...*."File|
00000160  20 6e 61 6d 65 20 66 6f  72 20 73 65 63 6f 6e 64  | name for second|
00000170  20 64 69 73 63 20 66 69  6c 65 3a 22 6f 6c 64 24  | disc file:"old$|
00000180  0d 00 b4 05 3a 0d 00 be  14 e3 20 70 61 73 73 3d  |....:..... pass=|
00000190  30 20 b8 20 32 20 88 20  32 0d 00 c8 0c 50 25 3d  |0 . 2 . 2....P%=|
000001a0  26 35 30 30 30 0d 00 d2  0b 6c 61 73 74 3d 50 25  |&5000....last=P%|
000001b0  0d 00 dc 05 5b 0d 00 e6  0c 4f 50 54 20 70 61 73  |....[....OPT pas|
000001c0  73 0d 00 f0 0f 42 52 4b  3a 42 52 4b 3a 42 52 4b  |s....BRK:BRK:BRK|
000001d0  0d 00 fa 13 4a 4d 50 20  65 6e 74 65 72 2b 26 33  |....JMP enter+&3|
000001e0  30 30 30 0d 01 04 12 4f  50 54 20 a4 65 71 75 62  |000....OPT .equb|
000001f0  28 26 38 32 29 0d 01 0e  12 4f 50 54 20 a4 65 71  |(&82)....OPT .eq|
00000200  75 62 28 26 31 31 29 0d  01 18 10 4f 50 54 20 a4  |ub(&11)....OPT .|
00000210  65 71 75 62 28 34 29 0d  01 22 19 4f 50 54 20 a4  |equb(4)..".OPT .|
00000220  65 71 75 73 28 22 53 6e  61 70 73 68 6f 74 22 29  |equs("Snapshot")|
00000230  0d 01 2c 07 42 52 4b 0d  01 36 14 4f 50 54 20 a4  |..,.BRK..6.OPT .|
00000240  65 71 75 73 28 22 28 43  29 22 29 0d 01 40 1c 4f  |equs("(C)")..@.O|
00000250  50 54 20 a4 65 71 75 73  28 22 41 6c 6c 61 6e 20  |PT .equs("Allan |
00000260  4b 65 6c 6c 79 22 29 0d  01 4a 0f 42 52 4b 3a 42  |Kelly")..J.BRK:B|
00000270  52 4b 3a 42 52 4b 0d 01  54 0f 42 52 4b 3a 42 52  |RK:BRK..T.BRK:BR|
00000280  4b 3a 42 52 4b 0d 01 5e  0f 42 52 4b 3a 42 52 4b  |K:BRK..^.BRK:BRK|
00000290  3a 42 52 4b 0d 01 68 05  3a 0d 01 72 10 2e 65 6e  |:BRK..h.:..r..en|
000002a0  74 65 72 20 43 4d 50 23  35 0d 01 7c 0f 42 45 51  |ter CMP#5..|.BEQ|
000002b0  20 69 6e 74 65 72 62 72  0d 01 86 09 43 4d 50 23  | interbr....CMP#|
000002c0  39 0d 01 90 0c 42 45 51  20 68 65 6c 70 0d 01 9a  |9....BEQ help...|
000002d0  09 43 4d 50 23 34 0d 01  a4 0d 42 45 51 20 70 61  |.CMP#4....BEQ pa|
000002e0  72 73 65 0d 01 ae 0b 43  4d 50 23 26 46 45 0d 01  |rse....CMP#&FE..|
000002f0  b8 0c 42 45 51 20 73 74  6f 70 0d 01 c2 07 52 54  |..BEQ stop....RT|
00000300  53 0d 01 cc 0f 2e 73 74  6f 70 20 4c 44 41 23 30  |S.....stop LDA#0|
00000310  0d 01 d6 19 53 54 41 20  72 65 70 65 61 74 5f 66  |....STA repeat_f|
00000320  6c 61 67 2b 26 33 30 30  30 0d 01 e0 0b 4c 44 41  |lag+&3000....LDA|
00000330  23 26 46 45 0d 01 ea 07  52 54 53 0d 01 f4 1c 2e  |#&FE....RTS.....|
00000340  69 6e 74 65 72 62 72 20  4a 4d 50 20 69 6e 74 65  |interbr JMP inte|
00000350  72 2b 26 33 30 30 30 0d  01 fe 05 3a 0d 02 08 1c  |r+&3000....:....|
00000360  2e 68 65 6c 70 20 50 48  41 20 5c 20 68 65 6c 70  |.help PHA \ help|
00000370  20 6d 65 73 73 61 67 65  0d 02 12 07 54 58 41 0d  | message....TXA.|
00000380  02 1c 07 50 48 41 0d 02  26 07 54 59 41 0d 02 30  |...PHA..&.TYA..0|
00000390  07 50 48 41 0d 02 3a 12  4c 44 58 23 64 61 72 6b  |.PHA..:.LDX#dark|
000003a0  20 83 20 32 35 36 0d 02  44 1a 4c 44 59 23 28 64  | . 256..D.LDY#(d|
000003b0  61 72 6b 2b 26 33 30 30  30 29 20 81 20 32 35 36  |ark+&3000) . 256|
000003c0  0d 02 4e 15 4a 53 52 20  64 69 73 70 6c 61 79 2b  |..N.JSR display+|
000003d0  26 33 30 30 30 0d 02 58  07 50 4c 41 0d 02 62 07  |&3000..X.PLA..b.|
000003e0  54 41 59 0d 02 6c 07 50  4c 41 0d 02 76 07 54 41  |TAY..l.PLA..v.TA|
000003f0  58 0d 02 80 07 50 4c 41  0d 02 8a 07 52 54 53 0d  |X....PLA....RTS.|
00000400  02 94 05 3a 0d 02 9e 13  2e 64 69 73 70 6c 61 79  |...:.....display|
00000410  20 53 54 58 26 37 30 0d  02 a8 0a 53 54 59 26 37  | STX&70....STY&7|
00000420  31 0d 02 b2 09 4c 44 59  23 30 0d 02 bc 15 2e 64  |1....LDY#0.....d|
00000430  62 61 63 6b 20 4c 44 41  28 26 37 30 29 2c 59 0d  |back LDA(&70),Y.|
00000440  02 c6 0e 4a 53 52 20 6f  73 61 73 63 69 0d 02 d0  |...JSR osasci...|
00000450  07 49 4e 59 0d 02 da 09  43 4d 50 23 30 0d 02 e4  |.INY....CMP#0...|
00000460  0d 42 4e 45 20 64 62 61  63 6b 0d 02 ee 07 52 54  |.BNE dback....RT|
00000470  53 0d 02 f8 05 3a 0d 03  02 17 2e 70 61 72 73 65  |S....:.....parse|
00000480  20 53 54 59 20 73 79 2b  26 33 30 30 30 0d 03 0c  | STY sy+&3000...|
00000490  0e 4c 44 41 28 26 46 32  29 2c 59 0d 03 16 0a 84  |.LDA(&F2),Y.....|
000004a0  41 23 26 32 30 0d 03 20  35 43 4d 50 23 97 22 70  |A#&20.. 5CMP#."p|
000004b0  22 20 5c 20 54 6f 20 63  68 61 6e 67 65 20 6d 61  |" \ To change ma|
000004c0  73 6b 20 63 68 61 72 61  63 74 65 72 20 63 68 61  |sk character cha|
000004d0  6e 67 65 20 70 20 68 65  72 65 0d 03 2a 0c 42 4e  |nge p here..*.BN|
000004e0  45 20 70 66 6f 31 0d 03  34 07 49 4e 59 0d 03 3e  |E pfo1..4.INY..>|
000004f0  16 2e 70 66 6f 31 20 53  54 59 20 73 79 2b 26 33  |..pfo1 STY sy+&3|
00000500  30 30 31 0d 03 48 09 4c  44 58 23 30 0d 03 52 13  |001..H.LDX#0..R.|
00000510  53 54 58 20 63 6f 75 6e  74 2b 26 33 30 30 30 0d  |STX count+&3000.|
00000520  03 5c 16 2e 70 62 61 35  20 4c 44 59 20 73 79 2b  |.\..pba5 LDY sy+|
00000530  26 33 30 30 31 0d 03 66  14 2e 70 62 61 31 20 4c  |&3001..f..pba1 L|
00000540  44 41 28 26 46 32 29 2c  59 0d 03 70 0a 84 41 23  |DA(&F2),Y..p..A#|
00000550  26 32 30 0d 03 7a 15 43  4d 50 20 63 6f 6d 6d 73  |&20..z.CMP comms|
00000560  2b 26 33 30 30 30 2c 58  0d 03 84 10 42 4e 45 20  |+&3000,X....BNE |
00000570  6e 65 78 74 5f 63 6f 6d  0d 03 8e 0b 43 4d 50 23  |next_com....CMP#|
00000580  26 32 30 0d 03 98 0f 42  45 51 20 65 6e 64 5f 63  |&20....BEQ end_c|
00000590  6f 6d 0d 03 a2 0b 43 4d  50 23 26 32 44 0d 03 ac  |om....CMP#&2D...|
000005a0  0f 42 45 51 20 65 6e 64  5f 63 6f 6d 0d 03 b6 07  |.BEQ end_com....|
000005b0  49 4e 58 0d 03 c0 07 49  4e 59 0d 03 ca 12 4a 4d  |INX....INY....JM|
000005c0  50 20 70 62 61 31 2b 26  33 30 30 30 0d 03 d4 1f  |P pba1+&3000....|
000005d0  2e 6e 65 78 74 5f 63 6f  6d 20 4c 44 41 20 63 6f  |.next_com LDA co|
000005e0  6d 6d 73 2b 26 33 30 30  30 2c 58 0d 03 de 0b 43  |mms+&3000,X....C|
000005f0  4d 50 23 26 46 46 0d 03  e8 0f 42 45 51 20 62 61  |MP#&FF....BEQ ba|
00000600  64 5f 63 6f 6d 0d 03 f2  0b 43 4d 50 23 26 32 44  |d_com....CMP#&2D|
00000610  0d 03 fc 15 42 45 51 20  75 70 74 6f 5f 6e 65 78  |....BEQ upto_nex|
00000620  74 5f 63 6f 6d 0d 04 06  0b 43 4d 50 23 26 32 30  |t_com....CMP#&20|
00000630  0d 04 10 15 42 45 51 20  75 70 74 6f 5f 6e 65 78  |....BEQ upto_nex|
00000640  74 5f 63 6f 6d 0d 04 1a  07 49 4e 58 0d 04 24 16  |t_com....INX..$.|
00000650  4a 4d 50 20 6e 65 78 74  5f 63 6f 6d 2b 26 33 30  |JMP next_com+&30|
00000660  30 30 0d 04 2e 16 2e 75  70 74 6f 5f 6e 65 78 74  |00.....upto_next|
00000670  5f 63 6f 6d 20 49 4e 58  0d 04 38 13 49 4e 43 20  |_com INX..8.INC |
00000680  63 6f 75 6e 74 2b 26 33  30 30 30 0d 04 42 12 4a  |count+&3000..B.J|
00000690  4d 50 20 70 62 61 35 2b  26 33 30 30 30 0d 04 4c  |MP pba5+&3000..L|
000006a0  1c 2e 65 6e 64 5f 63 6f  6d 20 4c 44 41 20 63 6f  |..end_com LDA co|
000006b0  75 6e 74 2b 26 33 30 30  30 0d 04 56 09 41 53 4c  |unt+&3000..V.ASL|
000006c0  20 41 0d 04 60 07 54 41  58 0d 04 6a 18 4c 44 41  | A..`.TAX..j.LDA|
000006d0  20 63 6f 6d 5f 61 64 64  72 2b 26 33 30 30 30 2c  | com_addr+&3000,|
000006e0  58 0d 04 74 12 53 54 41  20 6a 75 6d 70 2b 26 33  |X..t.STA jump+&3|
000006f0  30 30 30 0d 04 7e 18 4c  44 41 20 63 6f 6d 5f 61  |000..~.LDA com_a|
00000700  64 64 72 2b 26 33 30 30  31 2c 58 0d 04 88 12 53  |ddr+&3001,X....S|
00000710  54 41 20 6a 75 6d 70 2b  26 33 30 30 31 0d 04 92  |TA jump+&3001...|
00000720  13 4a 4d 50 28 6a 75 6d  70 2b 26 33 30 30 30 29  |.JMP(jump+&3000)|
00000730  0d 04 9c 19 2e 62 61 64  5f 63 6f 6d 20 4c 44 59  |.....bad_com LDY|
00000740  20 73 79 2b 26 33 30 30  30 0d 04 a6 09 4c 44 41  | sy+&3000....LDA|
00000750  23 34 0d 04 b0 07 52 54  53 0d 04 ba 05 3a 0d 04  |#4....RTS....:..|
00000760  c4 32 2e 73 79 6e 74 61  78 20 5c 20 61 6e 20 65  |.2.syntax \ an e|
00000770  72 72 6f 72 20 68 61 73  20 6f 63 63 75 72 65 64  |rror has occured|
00000780  20 69 73 73 75 65 20 65  72 72 6f 72 20 26 44 43  | issue error &DC|
00000790  0d 04 ce 09 4c 44 59 23  30 0d 04 d8 0b 53 54 59  |....LDY#0....STY|
000007a0  26 31 30 30 0d 04 e2 1d  2e 70 62 61 32 20 4c 44  |&100.....pba2 LD|
000007b0  41 20 65 72 72 6f 72 44  43 2b 26 33 30 30 30 2c  |A errorDC+&3000,|
000007c0  59 0d 04 ec 0d 53 54 41  26 31 30 31 2c 59 0d 04  |Y....STA&101,Y..|
000007d0  f6 07 49 4e 59 0d 05 00  09 43 4d 50 23 30 0d 05  |..INY....CMP#0..|
000007e0  0a 0c 42 4e 45 20 70 62  61 32 0d 05 14 0b 4a 4d  |..BNE pba2....JM|
000007f0  50 26 31 30 30 0d 05 1e  05 3a 0d 05 28 10 2e 61  |P&100....:..(..a|
00000800  73 63 5f 68 65 78 20 53  45 43 0d 05 32 0b 53 42  |sc_hex SEC..2.SB|
00000810  43 23 26 33 30 0d 05 3c  09 43 4d 50 23 39 0d 05  |C#&30..<.CMP#9..|
00000820  46 0c 42 4d 49 20 70 66  6f 32 0d 05 50 07 53 45  |F.BMI pfo2..P.SE|
00000830  43 0d 05 5a 09 53 42 43  23 37 0d 05 64 0f 2e 70  |C..Z.SBC#7..d..p|
00000840  66 6f 32 20 43 4d 50 23  30 0d 05 6e 0e 42 4d 49  |fo2 CMP#0..n.BMI|
00000850  20 73 79 6e 74 61 78 0d  05 78 07 52 54 53 0d 05  | syntax..x.RTS..|
00000860  82 14 2e 63 6c 69 5f 74  77 6f 5f 61 73 63 5f 68  |...cli_two_asc_h|
00000870  65 78 0d 05 8c 0d 2e 70  62 61 33 20 49 4e 59 0d  |ex.....pba3 INY.|
00000880  05 96 0e 42 45 51 20 73  79 6e 74 61 78 0d 05 a0  |...BEQ syntax...|
00000890  0e 4c 44 41 28 26 46 32  29 2c 59 0d 05 aa 0a 43  |.LDA(&F2),Y....C|
000008a0  4d 50 23 26 44 0d 05 b4  17 4a 53 52 20 76 61 6c  |MP#&D....JSR val|
000008b0  69 64 5f 61 73 63 2b 26  33 30 30 30 0d 05 be 0c  |id_asc+&3000....|
000008c0  42 43 53 20 70 62 61 33  0d 05 c8 1b 2e 70 66 6f  |BCS pba3.....pfo|
000008d0  33 20 4a 53 52 20 61 73  63 5f 68 65 78 2b 26 33  |3 JSR asc_hex+&3|
000008e0  30 30 30 0d 05 d2 10 53  54 41 20 73 61 2b 26 33  |000....STA sa+&3|
000008f0  30 30 30 0d 05 dc 07 49  4e 59 0d 05 e6 0e 4c 44  |000....INY....LD|
00000900  41 28 26 46 32 29 2c 59  0d 05 f0 07 49 4e 59 0d  |A(&F2),Y....INY.|
00000910  05 fa 0a 43 4d 50 23 26  44 0d 06 04 0b 42 45 51  |...CMP#&D....BEQ|
00000920  20 77 61 73 0d 06 0e 0b  43 4d 50 23 26 32 30 0d  | was....CMP#&20.|
00000930  06 18 0b 42 45 51 20 77  61 73 0d 06 22 17 4a 53  |...BEQ was..".JS|
00000940  52 20 76 61 6c 69 64 5f  61 73 63 2b 26 33 30 30  |R valid_asc+&300|
00000950  30 0d 06 2c 0e 42 43 53  20 73 79 6e 74 61 78 0d  |0..,.BCS syntax.|
00000960  06 36 0b 42 45 51 20 77  61 73 0d 06 40 10 41 53  |.6.BEQ was..@.AS|
00000970  4c 20 73 61 2b 26 33 30  30 30 0d 06 4a 10 41 53  |L sa+&3000..J.AS|
00000980  4c 20 73 61 2b 26 33 30  30 30 0d 06 54 10 41 53  |L sa+&3000..T.AS|
00000990  4c 20 73 61 2b 26 33 30  30 30 0d 06 5e 10 41 53  |L sa+&3000..^.AS|
000009a0  4c 20 73 61 2b 26 33 30  30 30 0d 06 68 15 4a 53  |L sa+&3000..h.JS|
000009b0  52 20 61 73 63 5f 68 65  78 2b 26 33 30 30 30 0d  |R asc_hex+&3000.|
000009c0  06 72 0f 84 41 20 73 61  2b 26 33 30 30 30 0d 06  |.r..A sa+&3000..|
000009d0  7c 07 52 54 53 0d 06 86  15 2e 77 61 73 20 4c 44  ||.RTS.....was LD|
000009e0  41 20 73 61 2b 26 33 30  30 30 0d 06 90 07 52 54  |A sa+&3000....RT|
000009f0  53 0d 06 9a 05 3a 0d 06  a4 16 2e 76 61 6c 69 64  |S....:.....valid|
00000a00  5f 61 73 63 20 43 4d 50  23 26 33 30 0d 06 ae 0c  |_asc CMP#&30....|
00000a10  42 4d 49 20 70 73 65 74  0d 06 b8 0b 43 4d 50 23  |BMI pset....CMP#|
00000a20  26 34 37 0d 06 c2 0c 42  43 53 20 70 73 65 74 0d  |&47....BCS pset.|
00000a30  06 cc 0b 43 4d 50 23 26  33 41 0d 06 d6 0e 42 4d  |...CMP#&3A....BM|
00000a40  49 20 70 63 6c 65 61 72  0d 06 e0 0b 43 4d 50 23  |I pclear....CMP#|
00000a50  26 34 30 0d 06 ea 0c 42  4d 49 20 70 73 65 74 0d  |&40....BMI pset.|
00000a60  06 f4 0f 2e 70 63 6c 65  61 72 20 43 4c 43 0d 06  |....pclear CLC..|
00000a70  fe 07 52 54 53 0d 07 08  0d 2e 70 73 65 74 20 53  |..RTS.....pset S|
00000a80  45 43 0d 07 12 07 52 54  53 0d 07 1c 05 3a 0d 07  |EC....RTS....:..|
00000a90  26 14 2e 70 72 65 70 65  61 72 20 4c 44 41 23 26  |&..prepear LDA#&|
00000aa0  46 46 0d 07 30 1a 53 54  41 20 67 6f 74 5f 69 6d  |FF..0.STA got_im|
00000ab0  70 6f 73 74 65 72 2b 26  33 30 30 30 0d 07 3a 07  |poster+&3000..:.|
00000ac0  53 45 49 0d 07 44 09 4c  44 59 23 30 0d 07 4e 11  |SEI..D.LDY#0..N.|
00000ad0  2e 62 61 63 6b 20 4c 44  41 20 30 2c 59 0d 07 58  |.back LDA 0,Y..X|
00000ae0  0e 53 54 41 26 41 43 30  30 2c 59 0d 07 62 07 49  |.STA&AC00,Y..b.I|
00000af0  4e 59 0d 07 6c 09 43 50  59 23 30 0d 07 76 0c 42  |NY..l.CPY#0..v.B|
00000b00  4e 45 20 62 61 63 6b 0d  07 80 09 4c 44 41 23 30  |NE back....LDA#0|
00000b10  0d 07 8a 0a 53 54 41 26  37 30 0d 07 94 0a 53 54  |....STA&70....ST|
00000b20  41 26 37 32 0d 07 9e 09  4c 44 41 23 31 0d 07 a8  |A&72....LDA#1...|
00000b30  0a 53 54 41 26 37 31 0d  07 b2 0b 4c 44 41 23 26  |.STA&71....LDA#&|
00000b40  41 44 0d 07 bc 0a 53 54  41 26 37 33 0d 07 c6 09  |AD....STA&73....|
00000b50  4c 44 59 23 30 0d 07 d0  15 2e 62 61 63 6b 32 20  |LDY#0.....back2 |
00000b60  4c 44 41 28 26 37 30 29  2c 59 0d 07 da 0e 53 54  |LDA(&70),Y....ST|
00000b70  41 28 26 37 32 29 2c 59  0d 07 e4 07 49 4e 59 0d  |A(&72),Y....INY.|
00000b80  07 ee 09 43 50 59 23 30  0d 07 f8 0d 42 4e 45 20  |...CPY#0....BNE |
00000b90  62 61 63 6b 32 0d 08 02  0a 49 4e 43 26 37 31 0d  |back2....INC&71.|
00000ba0  08 0c 0a 49 4e 43 26 37  33 0d 08 16 0a 4c 44 41  |...INC&73....LDA|
00000bb0  26 37 33 0d 08 20 0b 43  4d 50 23 26 43 30 0d 08  |&73.. .CMP#&C0..|
00000bc0  2a 0d 42 4e 45 20 62 61  63 6b 32 0d 08 34 07 43  |*.BNE back2..4.C|
00000bd0  4c 49 0d 08 3e 10 4c 44  41 23 37 20 5c 20 62 65  |LI..>.LDA#7 \ be|
00000be0  65 70 0d 08 48 0e 4a 53  52 20 6f 73 77 72 63 68  |ep..H.JSR oswrch|
00000bf0  0d 08 52 09 4c 44 41 23  30 0d 08 5c 07 52 54 53  |..R.LDA#0..\.RTS|
00000c00  0d 08 66 05 3a 0d 08 70  1e 2e 67 65 74 20 4c 44  |..f.:..p..get LD|
00000c10  59 23 30 20 5c 20 74 61  6b 65 20 73 6e 61 70 73  |Y#0 \ take snaps|
00000c20  68 6f 74 0d 08 7a 11 2e  62 61 63 6b 31 20 4c 44  |hot..z..back1 LD|
00000c30  41 30 2c 59 0d 08 84 0e  53 54 41 26 38 41 30 30  |A0,Y....STA&8A00|
00000c40  2c 59 0d 08 8e 07 49 4e  59 0d 08 98 0d 42 4e 45  |,Y....INY....BNE|
00000c50  20 62 61 63 6b 31 0d 08  a2 09 4c 44 41 23 30 0d  | back1....LDA#0.|
00000c60  08 ac 0a 53 54 41 26 37  30 0d 08 b6 0a 53 54 41  |...STA&70....STA|
00000c70  26 37 32 0d 08 c0 09 4c  44 41 23 31 0d 08 ca 0a  |&72....LDA#1....|
00000c80  53 54 41 26 37 31 0d 08  d4 0b 4c 44 41 23 26 38  |STA&71....LDA#&8|
00000c90  42 0d 08 de 0a 53 54 41  26 37 33 0d 08 e8 10 2e  |B....STA&73.....|
00000ca0  62 61 63 6b 32 20 4c 44  59 23 30 0d 08 f2 15 2e  |back2 LDY#0.....|
00000cb0  62 61 63 6b 33 20 4c 44  41 28 26 37 30 29 2c 59  |back3 LDA(&70),Y|
00000cc0  0d 08 fc 0e 53 54 41 28  26 37 32 29 2c 59 0d 09  |....STA(&72),Y..|
00000cd0  06 07 49 4e 59 0d 09 10  0d 42 4e 45 20 62 61 63  |..INY....BNE bac|
00000ce0  6b 33 0d 09 1a 0a 49 4e  43 26 37 31 0d 09 24 0a  |k3....INC&71..$.|
00000cf0  49 4e 43 26 37 33 0d 09  2e 0a 4c 44 41 26 37 31  |INC&73....LDA&71|
00000d00  0d 09 38 0b 43 4d 50 23  26 31 35 0d 09 42 0d 42  |..8.CMP#&15..B.B|
00000d10  4e 45 20 62 61 63 6b 32  0d 09 4c 09 4c 44 41 23  |NE back2..L.LDA#|
00000d20  30 0d 09 56 0a 53 54 41  26 37 30 0d 09 60 0a 53  |0..V.STA&70..`.S|
00000d30  54 41 26 37 32 0d 09 6a  09 4c 44 41 23 31 0d 09  |TA&72..j.LDA#1..|
00000d40  74 0a 53 54 41 26 37 31  0d 09 7e 0b 4c 44 41 23  |t.STA&71..~.LDA#|
00000d50  26 41 44 0d 09 88 0a 53  54 41 26 37 33 0d 09 92  |&AD....STA&73...|
00000d60  10 2e 62 61 63 6b 35 20  4c 44 59 23 30 0d 09 9c  |..back5 LDY#0...|
00000d70  15 2e 62 61 63 6b 36 20  4c 44 41 28 26 37 32 29  |..back6 LDA(&72)|
00000d80  2c 59 0d 09 a6 0e 53 54  41 28 26 37 30 29 2c 59  |,Y....STA(&70),Y|
00000d90  0d 09 b0 07 49 4e 59 0d  09 ba 0d 42 4e 45 20 62  |....INY....BNE b|
00000da0  61 63 6b 36 0d 09 c4 0a  49 4e 43 26 37 31 0d 09  |ack6....INC&71..|
00000db0  ce 0a 49 4e 43 26 37 33  0d 09 d8 0a 4c 44 41 26  |..INC&73....LDA&|
00000dc0  37 31 0d 09 e2 0b 43 4d  50 23 26 31 34 0d 09 ec  |71....CMP#&14...|
00000dd0  0d 42 4e 45 20 62 61 63  6b 35 0d 09 f6 09 4c 44  |.BNE back5....LD|
00000de0  59 23 30 0d 0a 00 15 2e  62 61 63 6b 37 20 4c 44  |Y#0.....back7 LD|
00000df0  41 26 41 43 30 30 2c 59  0d 0a 0a 0a 53 54 41 30  |A&AC00,Y....STA0|
00000e00  2c 59 0d 0a 14 07 49 4e  59 0d 0a 1e 0d 42 4e 45  |,Y....INY....BNE|
00000e10  20 62 61 63 6b 37 0d 0a  28 09 4c 44 59 23 30 0d  | back7..(.LDY#0.|
00000e20  0a 32 1b 2e 62 61 63 6b  34 20 4c 44 41 20 64 61  |.2..back4 LDA da|
00000e30  74 61 2b 26 33 30 30 30  2c 59 0d 0a 3c 0d 53 54  |ta+&3000,Y..<.ST|
00000e40  41 26 37 45 30 2c 59 0d  0a 46 07 49 4e 59 0d 0a  |A&7E0,Y..F.INY..|
00000e50  50 0a 43 4d 50 23 26 44  0d 0a 5a 0d 42 4e 45 20  |P.CMP#&D..Z.BNE |
00000e60  62 61 63 6b 34 0d 0a 64  07 43 4c 49 0d 0a 6e 12  |back4..d.CLI..n.|
00000e70  4a 53 52 20 73 61 76 65  2b 26 33 30 30 30 0d 0a  |JSR save+&3000..|
00000e80  78 07 53 45 49 0d 0a 82  09 4c 44 41 23 30 0d 0a  |x.SEI....LDA#0..|
00000e90  8c 0a 53 54 41 26 37 30  0d 0a 96 0a 53 54 41 26  |..STA&70....STA&|
00000ea0  37 32 0d 0a a0 0b 4c 44  41 23 26 33 30 0d 0a aa  |72....LDA#&30...|
00000eb0  0a 53 54 41 26 37 31 0d  0a b4 0b 4c 44 41 23 26  |.STA&71....LDA#&|
00000ec0  38 41 0d 0a be 0a 53 54  41 26 37 33 0d 0a c8 10  |8A....STA&73....|
00000ed0  2e 62 61 63 6b 38 20 4c  44 59 23 30 0d 0a d2 15  |.back8 LDY#0....|
00000ee0  2e 62 61 63 6b 39 20 4c  44 41 28 26 37 32 29 2c  |.back9 LDA(&72),|
00000ef0  59 0d 0a dc 0e 53 54 41  28 26 37 30 29 2c 59 0d  |Y....STA(&70),Y.|
00000f00  0a e6 07 49 4e 59 0d 0a  f0 0d 42 4e 45 20 62 61  |...INY....BNE ba|
00000f10  63 6b 39 0d 0a fa 0a 49  4e 43 26 37 31 0d 0b 04  |ck9....INC&71...|
00000f20  0a 49 4e 43 26 37 33 0d  0b 0e 0a 4c 44 41 26 37  |.INC&73....LDA&7|
00000f30  33 0d 0b 18 0b 43 4d 50  23 26 39 46 0d 0b 22 0d  |3....CMP#&9F..".|
00000f40  42 4e 45 20 62 61 63 6b  38 0d 0b 2c 10 4c 44 41  |BNE back8..,.LDA|
00000f50  20 73 73 2b 26 33 30 30  30 0d 0b 36 0c 53 54 41  | ss+&3000..6.STA|
00000f60  26 34 35 30 38 0d 0b 40  09 4c 44 59 23 30 0d 0b  |&4508..@.LDY#0..|
00000f70  4a 1c 2e 62 61 63 6b 41  20 4c 44 41 20 64 61 74  |J..backA LDA dat|
00000f80  61 32 2b 26 33 30 30 30  2c 59 0d 0b 54 0d 53 54  |a2+&3000,Y..T.ST|
00000f90  41 26 37 45 30 2c 59 0d  0b 5e 07 49 4e 59 0d 0b  |A&7E0,Y..^.INY..|
00000fa0  68 0a 43 4d 50 23 26 44  0d 0b 72 0d 42 4e 45 20  |h.CMP#&D..r.BNE |
00000fb0  62 61 63 6b 41 0d 0b 7c  07 43 4c 49 0d 0b 86 12  |backA..|.CLI....|
00000fc0  4a 53 52 20 73 61 76 65  2b 26 33 30 30 30 0d 0b  |JSR save+&3000..|
00000fd0  90 2f 4a 4d 50 20 70 75  74 5f 70 6c 75 73 2b 26  |./JMP put_plus+&|
00000fe0  33 30 30 30 20 5c 20 72  65 73 74 6f 72 65 20 6d  |3000 \ restore m|
00000ff0  61 63 68 69 6e 65 20 73  74 61 74 75 73 0d 0b 9a  |achine status...|
00001000  05 3a 0d 0b a4 0e 2e 70  75 74 20 4c 44 59 23 30  |.:.....put LDY#0|
00001010  0d 0b ae 1d 2e 67 62 61  63 6b 31 20 4c 44 41 20  |.....gback1 LDA |
00001020  64 61 74 61 33 2b 26 33  30 30 30 2c 59 0d 0b b8  |data3+&3000,Y...|
00001030  0d 53 54 41 26 37 45 30  2c 59 0d 0b c2 07 49 4e  |.STA&7E0,Y....IN|
00001040  59 0d 0b cc 0a 43 4d 50  23 26 44 0d 0b d6 0e 42  |Y....CMP#&D....B|
00001050  4e 45 20 67 62 61 63 6b  31 0d 0b e0 12 4a 53 52  |NE gback1....JSR|
00001060  20 6c 6f 61 64 2b 26 33  30 30 30 0d 0b ea 05 3a  | load+&3000....:|
00001070  0d 0b f4 13 2e 70 75 74  5f 70 6c 75 73 20 4c 44  |.....put_plus LD|
00001080  41 23 30 0d 0b fe 0a 53  54 41 26 37 30 0d 0c 08  |A#0....STA&70...|
00001090  0a 53 54 41 26 37 32 0d  0c 12 0b 4c 44 41 23 26  |.STA&72....LDA#&|
000010a0  33 30 0d 0c 1c 0a 53 54  41 26 37 31 0d 0c 26 0b  |30....STA&71..&.|
000010b0  4c 44 41 23 26 38 41 0d  0c 30 0a 53 54 41 26 37  |LDA#&8A..0.STA&7|
000010c0  33 0d 0c 3a 09 4c 44 59  23 30 0d 0c 44 16 2e 67  |3..:.LDY#0..D..g|
000010d0  62 61 63 6b 32 20 4c 44  41 28 26 37 30 29 2c 59  |back2 LDA(&70),Y|
000010e0  0d 0c 4e 0e 53 54 41 28  26 37 32 29 2c 59 0d 0c  |..N.STA(&72),Y..|
000010f0  58 07 49 4e 59 0d 0c 62  09 43 50 59 23 30 0d 0c  |X.INY..b.CPY#0..|
00001100  6c 0e 42 4e 45 20 67 62  61 63 6b 32 0d 0c 76 0a  |l.BNE gback2..v.|
00001110  49 4e 43 26 37 31 0d 0c  80 0a 49 4e 43 26 37 33  |INC&71....INC&73|
00001120  0d 0c 8a 0a 4c 44 41 26  37 31 0d 0c 94 0b 43 4d  |....LDA&71....CM|
00001130  50 23 26 34 35 0d 0c 9e  0e 42 4e 45 20 67 62 61  |P#&45....BNE gba|
00001140  63 6b 32 0d 0c a8 0c 4c  44 41 26 34 35 30 38 0d  |ck2....LDA&4508.|
00001150  0c b2 10 53 54 41 20 73  73 2b 26 33 30 30 30 0d  |...STA ss+&3000.|
00001160  0c bc 0a 4c 44 41 23 32  32 0d 0c c6 0e 4a 53 52  |...LDA#22....JSR|
00001170  20 6f 73 77 72 63 68 0d  0c d0 0c 4c 44 41 26 33  | oswrch....LDA&3|
00001180  33 35 35 0d 0c da 12 53  54 41 20 6d 6f 64 65 2b  |355....STA mode+|
00001190  26 33 30 30 30 0d 0c e4  0e 4a 53 52 20 6f 73 77  |&3000....JSR osw|
000011a0  72 63 68 0d 0c ee 09 4c  44 59 23 30 0d 0c f8 1d  |rch....LDY#0....|
000011b0  2e 67 62 61 63 6b 33 20  4c 44 41 20 64 61 74 61  |.gback3 LDA data|
000011c0  34 2b 26 33 30 30 30 2c  59 0d 0d 02 0d 53 54 41  |4+&3000,Y....STA|
000011d0  26 37 45 30 2c 59 0d 0d  0c 07 49 4e 59 0d 0d 16  |&7E0,Y....INY...|
000011e0  0a 43 4d 50 23 26 44 0d  0d 20 0e 42 4e 45 20 67  |.CMP#&D.. .BNE g|
000011f0  62 61 63 6b 33 0d 0d 2a  12 4a 53 52 20 6c 6f 61  |back3..*.JSR loa|
00001200  64 2b 26 33 30 30 30 0d  0d 34 07 53 45 49 0d 0d  |d+&3000..4.SEI..|
00001210  3e 09 4c 44 41 23 30 0d  0d 48 0a 53 54 41 26 37  |>.LDA#0..H.STA&7|
00001220  30 0d 0d 52 0a 53 54 41  26 37 32 0d 0d 5c 0b 4c  |0..R.STA&72..\.L|
00001230  44 41 23 26 38 42 0d 0d  66 0a 53 54 41 26 37 31  |DA#&8B..f.STA&71|
00001240  0d 0d 70 0a 4c 44 41 23  26 31 0d 0d 7a 0a 53 54  |..p.LDA#&1..z.ST|
00001250  41 26 37 33 0d 0d 84 09  4c 44 59 23 30 0d 0d 8e  |A&73....LDY#0...|
00001260  16 2e 67 62 61 63 6b 35  20 4c 44 41 28 26 37 30  |..gback5 LDA(&70|
00001270  29 2c 59 0d 0d 98 0e 53  54 41 28 26 37 32 29 2c  |),Y....STA(&72),|
00001280  59 0d 0d a2 07 49 4e 59  0d 0d ac 0e 42 4e 45 20  |Y....INY....BNE |
00001290  67 62 61 63 6b 35 0d 0d  b6 0a 49 4e 43 26 37 31  |gback5....INC&71|
000012a0  0d 0d c0 0a 49 4e 43 26  37 33 0d 0d ca 0a 4c 44  |....INC&73....LD|
000012b0  41 26 37 31 0d 0d d4 0b  43 4d 50 23 26 39 46 0d  |A&71....CMP#&9F.|
000012c0  0d de 0e 42 4e 45 20 67  62 61 63 6b 35 0d 0d e8  |...BNE gback5...|
000012d0  09 4c 44 59 23 30 0d 0d  f2 16 2e 67 62 61 63 6b  |.LDY#0.....gback|
000012e0  36 20 4c 44 41 26 38 41  30 30 2c 59 0d 0d fc 0b  |6 LDA&8A00,Y....|
000012f0  53 54 41 20 30 2c 59 0d  0e 06 07 49 4e 59 0d 0e  |STA 0,Y....INY..|
00001300  10 0e 42 4e 45 20 67 62  61 63 6b 36 0d 0e 1a 12  |..BNE gback6....|
00001310  4c 44 58 20 6d 6f 64 65  2b 26 33 30 30 30 0d 0e  |LDX mode+&3000..|
00001320  24 09 43 50 58 23 37 0d  0e 2e 0d 42 4e 45 20 6f  |$.CPX#7....BNE o|
00001330  74 68 65 72 0d 0e 38 0a  4c 44 41 23 31 33 0d 0e  |ther..8.LDA#13..|
00001340  42 0c 53 54 41 26 46 45  30 30 0d 0e 4c 0b 4c 44  |B.STA&FE00..L.LD|
00001350  41 26 33 35 30 0d 0e 56  0c 53 54 41 26 46 45 30  |A&350..V.STA&FE0|
00001360  31 0d 0e 60 0a 4c 44 41  23 31 32 0d 0e 6a 0c 53  |1..`.LDA#12..j.S|
00001370  54 41 26 46 45 30 30 0d  0e 74 0b 4c 44 41 26 33  |TA&FE00..t.LDA&3|
00001380  35 31 0d 0e 7e 07 53 45  43 0d 0e 88 0b 53 42 43  |51..~.SEC....SBC|
00001390  23 26 37 34 0d 0e 92 09  82 23 26 32 30 0d 0e 9c  |#&74.....#&20...|
000013a0  0c 53 54 41 26 46 45 30  31 0d 0e a6 18 2e 67 62  |.STA&FE01.....gb|
000013b0  61 63 6b 37 20 4c 44 58  20 73 73 2b 26 33 30 30  |ack7 LDX ss+&300|
000013c0  30 0d 0e b0 07 54 58 53  0d 0e ba 19 4c 44 41 20  |0....TXS....LDA |
000013d0  72 65 70 65 61 74 5f 66  6c 61 67 2b 26 33 30 30  |repeat_flag+&300|
000013e0  30 0d 0e c4 0b 43 4d 50  23 26 46 46 0d 0e ce 11  |0....CMP#&FF....|
000013f0  42 4e 45 20 6e 6f 5f 72  65 70 65 61 74 0d 0e d8  |BNE no_repeat...|
00001400  17 4a 4d 50 20 73 65 74  5f 69 6e 74 65 72 2b 26  |.JMP set_inter+&|
00001410  33 30 30 30 0d 0e e2 14  2e 6e 6f 5f 72 65 70 65  |3000.....no_repe|
00001420  61 74 20 4c 44 41 23 30  0d 0e ec 07 43 4c 49 0d  |at LDA#0....CLI.|
00001430  0e f6 07 52 54 53 0d 0f  00 11 2e 6f 74 68 65 72  |...RTS.....other|
00001440  20 4c 44 41 23 26 44 0d  0f 0a 0c 53 54 41 26 46  | LDA#&D....STA&F|
00001450  45 30 30 0d 0f 14 0b 4c  44 41 26 33 35 30 0d 0f  |E00....LDA&350..|
00001460  1e 09 4c 53 52 20 41 0d  0f 28 09 4c 53 52 20 41  |..LSR A..(.LSR A|
00001470  0d 0f 32 09 4c 53 52 20  41 0d 0f 3c 0c 53 54 41  |..2.LSR A..<.STA|
00001480  26 46 45 30 31 0d 0f 46  0a 4c 44 41 23 26 43 0d  |&FE01..F.LDA#&C.|
00001490  0f 50 0c 53 54 41 26 46  45 30 30 0d 0f 5a 0b 4c  |.P.STA&FE00..Z.L|
000014a0  44 41 26 33 35 31 0d 0f  64 09 4c 53 52 20 41 0d  |DA&351..d.LSR A.|
000014b0  0f 6e 09 4c 53 52 20 41  0d 0f 78 09 4c 53 52 20  |.n.LSR A..x.LSR |
000014c0  41 0d 0f 82 0c 53 54 41  26 46 45 30 31 0d 0f 8c  |A....STA&FE01...|
000014d0  14 4a 4d 50 20 67 62 61  63 6b 37 2b 26 33 30 30  |.JMP gback7+&300|
000014e0  30 0d 0f 96 05 3a 0d 0f  a0 20 2e 77 61 69 74 20  |0....:... .wait |
000014f0  4c 44 41 20 67 6f 74 5f  69 6d 70 6f 73 74 65 72  |LDA got_imposter|
00001500  2b 26 33 30 30 30 0d 0f  aa 0b 43 4d 50 23 26 46  |+&3000....CMP#&F|
00001510  46 0d 0f b4 0b 42 45 51  20 77 6f 6b 0d 0f be 13  |F....BEQ wok....|
00001520  4a 4d 50 20 65 72 72 6f  72 2b 26 33 30 30 30 0d  |JMP error+&3000.|
00001530  0f c8 22 2e 77 6f 6b 20  4a 53 52 20 63 6c 69 5f  |..".wok JSR cli_|
00001540  74 77 6f 5f 61 73 63 5f  68 65 78 2b 26 33 30 30  |two_asc_hex+&300|
00001550  30 0d 0f d2 15 53 54 41  20 77 61 69 74 69 6e 67  |0....STA waiting|
00001560  2b 26 33 30 30 30 0d 0f  dc 14 2e 73 65 74 5f 69  |+&3000.....set_i|
00001570  6e 74 65 72 20 4c 44 41  23 30 0d 0f e6 11 53 54  |nter LDA#0....ST|
00001580  41 20 74 69 6d 2b 26 33  30 30 31 0d 0f f0 13 4a  |A tim+&3001....J|
00001590  4d 50 20 74 69 6d 65 72  2b 26 33 30 30 30 0d 0f  |MP timer+&3000..|
000015a0  fa 05 3a 0d 10 04 2b 2e  69 6e 74 65 72 20 4c 44  |..:...+.inter LD|
000015b0  41 23 26 34 30 20 5c 20  53 65 72 76 69 63 65 20  |A#&40 \ Service |
000015c0  74 69 6d 65 72 20 69 6e  74 65 72 75 70 74 0d 10  |timer interupt..|
000015d0  0e 0c 53 54 41 26 46 45  36 44 0d 10 18 11 4c 44  |..STA&FE6D....LD|
000015e0  41 20 74 69 6d 2b 26 33  30 30 30 0d 10 22 07 43  |A tim+&3000..".C|
000015f0  4c 43 0d 10 2c 3c 41 44  43 23 31 20 5c 20 49 6e  |LC..,<ADC#1 \ In|
00001600  63 72 65 61 73 65 20 74  68 69 73 20 6e 75 6d 62  |crease this numb|
00001610  65 72 20 66 6f 72 20 61  6e 20 65 76 65 6e 20 66  |er for an even f|
00001620  61 73 74 65 72 20 53 6e  61 70 73 68 6f 74 0d 10  |aster Snapshot..|
00001630  36 11 53 54 41 20 74 69  6d 2b 26 33 30 30 30 0d  |6.STA tim+&3000.|
00001640  10 40 11 4c 44 41 20 74  69 6d 2b 26 33 30 30 31  |.@.LDA tim+&3001|
00001650  0d 10 4a 09 41 44 43 23  30 0d 10 54 11 53 54 41  |..J.ADC#0..T.STA|
00001660  20 74 69 6d 2b 26 33 30  30 31 0d 10 5e 15 43 4d  | tim+&3001..^.CM|
00001670  50 20 77 61 69 74 69 6e  67 2b 26 33 30 30 30 0d  |P waiting+&3000.|
00001680  10 68 0d 42 45 51 20 73  68 6f 6f 74 0d 10 72 12  |.h.BEQ shoot..r.|
00001690  2e 74 69 6d 65 72 20 4c  44 41 23 26 46 46 0d 10  |.timer LDA#&FF..|
000016a0  7c 0c 53 54 41 26 46 45  36 34 0d 10 86 0c 53 54  ||.STA&FE64....ST|
000016b0  41 26 46 45 36 35 0d 10  90 0b 4c 44 41 23 26 43  |A&FE65....LDA#&C|
000016c0  30 0d 10 9a 0c 53 54 41  26 46 45 36 45 0d 10 a4  |0....STA&FE6E...|
000016d0  09 4c 44 41 23 30 0d 10  ae 07 43 4c 49 0d 10 b8  |.LDA#0....CLI...|
000016e0  07 52 54 53 0d 10 c2 0e  2e 73 68 6f 6f 74 20 54  |.RTS.....shoot T|
000016f0  53 58 0d 10 cc 10 53 54  58 20 73 73 2b 26 33 30  |SX....STX ss+&30|
00001700  30 30 0d 10 d6 11 4a 4d  50 20 67 65 74 2b 26 33  |00....JMP get+&3|
00001710  30 30 30 0d 10 e0 05 3a  0d 10 ea 1f 2e 6e 6f 77  |000....:.....now|
00001720  20 4c 44 41 20 67 6f 74  5f 69 6d 70 6f 73 74 65  | LDA got_imposte|
00001730  72 2b 26 33 30 30 30 0d  10 f4 0b 43 4d 50 23 26  |r+&3000....CMP#&|
00001740  46 46 0d 10 fe 0f 42 4e  45 20 6e 6f 5f 73 6e 61  |FF....BNE no_sna|
00001750  70 0d 11 08 09 4c 44 41  23 30 0d 11 12 19 53 54  |p....LDA#0....ST|
00001760  41 20 72 65 70 65 61 74  5f 66 6c 61 67 2b 26 33  |A repeat_flag+&3|
00001770  30 30 30 0d 11 1c 13 4a  4d 50 20 73 68 6f 6f 74  |000....JMP shoot|
00001780  2b 26 33 30 30 30 0d 11  26 1c 2e 6e 6f 5f 73 6e  |+&3000..&..no_sn|
00001790  61 70 20 4a 4d 50 20 65  72 72 6f 72 2b 26 33 30  |ap JMP error+&30|
000017a0  30 30 0d 11 30 05 3a 0d  11 3a 1a 2e 72 65 73 74  |00..0.:..:..rest|
000017b0  6f 72 65 20 4a 4d 50 20  70 75 74 2b 26 33 30 30  |ore JMP put+&300|
000017c0  30 0d 11 44 05 3a 0d 11  4e 22 2e 72 65 70 65 61  |0..D.:..N".repea|
000017d0  74 20 4c 44 41 20 67 6f  74 5f 69 6d 70 6f 73 74  |t LDA got_impost|
000017e0  65 72 2b 26 33 30 30 30  0d 11 58 0b 43 4d 50 23  |er+&3000..X.CMP#|
000017f0  26 46 46 0d 11 62 0f 42  4e 45 20 6e 6f 5f 73 6e  |&FF..b.BNE no_sn|
00001800  61 70 0d 11 6c 19 53 54  41 20 72 65 70 65 61 74  |ap..l.STA repeat|
00001810  5f 66 6c 61 67 2b 26 33  30 30 30 0d 11 76 09 4c  |_flag+&3000..v.L|
00001820  44 41 23 30 0d 11 80 07  52 54 53 0d 11 8a 05 3a  |DA#0....RTS....:|
00001830  0d 11 94 0f 2e 73 61 76  65 20 4c 44 41 23 30 0d  |.....save LDA#0.|
00001840  11 9e 0b 4c 44 58 23 26  45 30 0d 11 a8 0a 4c 44  |...LDX#&E0....LD|
00001850  59 23 26 37 0d 11 b2 0e  4a 4d 50 20 6f 73 66 69  |Y#&7....JMP osfi|
00001860  6c 65 0d 11 bc 11 2e 6c  6f 61 64 20 4c 44 41 23  |le.....load LDA#|
00001870  26 46 46 0d 11 c6 0b 4c  44 58 23 26 45 30 0d 11  |&FF....LDX#&E0..|
00001880  d0 0a 4c 44 59 23 26 37  0d 11 da 0e 4a 4d 50 20  |..LDY#&7....JMP |
00001890  6f 73 66 69 6c 65 0d 11  e4 05 3a 0d 11 ee 0a 5c  |osfile....:....\|
000018a0  20 44 61 74 61 0d 11 f8  14 2e 72 65 70 65 61 74  | Data.....repeat|
000018b0  5f 66 6c 61 67 20 42 52  4b 0d 12 02 10 2e 77 61  |_flag BRK.....wa|
000018c0  69 74 69 6e 67 20 42 52  4b 0d 12 0c 15 2e 67 6f  |iting BRK.....go|
000018d0  74 5f 69 6d 70 6f 73 74  65 72 20 42 52 4b 0d 12  |t_imposter BRK..|
000018e0  16 10 2e 74 69 6d 20 42  52 4b 3a 42 52 4b 0d 12  |...tim BRK:BRK..|
000018f0  20 0d 2e 6d 6f 64 65 20  42 52 4b 0d 12 2a 0b 2e  | ..mode BRK..*..|
00001900  73 73 20 42 52 4b 0d 12  34 0f 2e 73 61 20 42 52  |ss BRK..4..sa BR|
00001910  4b 3a 42 52 4b 0d 12 3e  0f 2e 73 79 20 42 52 4b  |K:BRK..>..sy BRK|
00001920  3a 42 52 4b 0d 12 48 0f  2e 73 78 20 42 52 4b 3a  |:BRK..H..sx BRK:|
00001930  42 52 4b 0d 12 52 0e 2e  63 6f 75 6e 74 20 42 52  |BRK..R..count BR|
00001940  4b 0d 12 5c 11 2e 6a 75  6d 70 20 42 52 4b 3a 42  |K..\..jump BRK:B|
00001950  52 4b 0d 12 66 1b 2e 63  6f 6d 6d 73 20 4f 50 54  |RK..f..comms OPT|
00001960  20 a4 65 71 75 73 28 22  6e 6f 77 22 29 0d 12 70  | .equs("now")..p|
00001970  12 4f 50 54 20 a4 65 71  75 62 28 26 32 44 29 0d  |.OPT .equb(&2D).|
00001980  12 7a 16 4f 50 54 20 a4  65 71 75 73 28 22 72 65  |.z.OPT .equs("re|
00001990  61 64 79 22 29 0d 12 84  12 4f 50 54 20 a4 65 71  |ady")....OPT .eq|
000019a0  75 62 28 26 32 44 29 0d  12 8e 18 4f 50 54 20 a4  |ub(&2D)....OPT .|
000019b0  65 71 75 73 28 22 72 65  73 74 6f 72 65 22 29 0d  |equs("restore").|
000019c0  12 98 12 4f 50 54 20 a4  65 71 75 62 28 26 32 44  |...OPT .equb(&2D|
000019d0  29 0d 12 a2 15 4f 50 54  20 a4 65 71 75 73 28 22  |)....OPT .equs("|
000019e0  77 61 69 74 22 29 0d 12  ac 12 4f 50 54 20 a4 65  |wait")....OPT .e|
000019f0  71 75 62 28 26 32 30 29  0d 12 b6 17 4f 50 54 20  |qub(&20)....OPT |
00001a00  a4 65 71 75 73 28 22 72  65 70 65 61 74 22 29 0d  |.equs("repeat").|
00001a10  12 c0 12 4f 50 54 20 a4  65 71 75 62 28 26 32 44  |...OPT .equb(&2D|
00001a20  29 0d 12 ca 16 4f 50 54  20 a4 65 71 75 73 28 22  |)....OPT .equs("|
00001a30  6e 61 6d 65 73 22 29 0d  12 d4 12 4f 50 54 20 a4  |names")....OPT .|
00001a40  65 71 75 62 28 26 32 44  29 0d 12 de 12 4f 50 54  |equb(&2D)....OPT|
00001a50  20 a4 65 71 75 62 28 26  46 46 29 0d 12 e8 22 2e  | .equb(&FF)...".|
00001a60  63 6f 6d 5f 61 64 64 72  20 4f 50 54 20 a4 65 71  |com_addr OPT .eq|
00001a70  75 77 28 6e 6f 77 2b 26  33 30 30 30 29 0d 12 f2  |uw(now+&3000)...|
00001a80  1c 4f 50 54 20 a4 65 71  75 77 28 70 72 65 70 65  |.OPT .equw(prepe|
00001a90  61 72 2b 26 33 30 30 30  29 0d 12 fc 1c 4f 50 54  |ar+&3000)....OPT|
00001aa0  20 a4 65 71 75 77 28 72  65 73 74 6f 72 65 2b 26  | .equw(restore+&|
00001ab0  33 30 30 30 29 0d 13 06  19 4f 50 54 20 a4 65 71  |3000)....OPT .eq|
00001ac0  75 77 28 77 61 69 74 2b  26 33 30 30 30 29 0d 13  |uw(wait+&3000)..|
00001ad0  10 1b 4f 50 54 20 a4 65  71 75 77 28 72 65 70 65  |..OPT .equw(repe|
00001ae0  61 74 2b 26 33 30 30 30  29 0d 13 1a 1a 4f 50 54  |at+&3000)....OPT|
00001af0  20 a4 65 71 75 77 28 6e  61 6d 65 73 2b 26 33 30  | .equw(names+&30|
00001b00  30 30 29 0d 13 24 1b 2e  65 72 72 6f 72 44 43 20  |00)..$..errorDC |
00001b10  4f 50 54 20 a4 65 71 75  62 28 26 44 43 29 0d 13  |OPT .equb(&DC)..|
00001b20  2e 1d 4f 50 54 20 a4 65  71 75 73 28 22 53 79 6e  |..OPT .equs("Syn|
00001b30  74 61 78 20 65 72 72 6f  72 22 29 0d 13 38 07 42  |tax error")..8.B|
00001b40  52 4b 0d 13 42 17 2e 64  61 72 6b 20 4f 50 54 20  |RK..B..dark OPT |
00001b50  a4 65 71 75 62 28 26 44  29 0d 13 4c 29 4f 50 54  |.equb(&D)..L)OPT|
00001b60  20 a4 65 71 75 73 28 22  53 6e 61 70 73 68 6f 74  | .equs("Snapshot|
00001b70  20 56 65 72 73 69 6f 6e  20 50 41 4c 4f 30 30 34  | Version PALO004|
00001b80  22 29 0d 13 56 14 4f 50  54 20 a4 65 71 75 77 28  |")..V.OPT .equw(|
00001b90  26 30 30 30 44 29 0d 13  60 19 2e 64 61 74 61 20  |&000D)..`..data |
00001ba0  4f 50 54 20 a4 65 71 75  77 28 26 37 46 33 29 0d  |OPT .equw(&7F3).|
00001bb0  13 6a 14 4f 50 54 20 a4  65 71 75 64 28 26 31 34  |.j.OPT .equd(&14|
00001bc0  30 30 29 0d 13 74 14 4f  50 54 20 a4 65 71 75 64  |00)..t.OPT .equd|
00001bd0  28 26 31 34 30 30 29 0d  13 7e 14 4f 50 54 20 a4  |(&1400)..~.OPT .|
00001be0  65 71 75 64 28 26 31 34  30 30 29 0d 13 88 14 4f  |equd(&1400)....O|
00001bf0  50 54 20 a4 65 71 75 64  28 26 38 30 30 30 29 0d  |PT .equd(&8000).|
00001c00  13 92 07 42 52 4b 0d 13  9c 13 4f 50 54 20 a4 65  |...BRK....OPT .e|
00001c10  71 75 73 28 70 6f 74 24  29 0d 13 a6 11 4f 50 54  |qus(pot$)....OPT|
00001c20  20 a4 65 71 75 62 28 26  44 29 0d 13 b0 1a 2e 64  | .equb(&D).....d|
00001c30  61 74 61 32 20 4f 50 54  20 a4 65 71 75 77 28 26  |ata2 OPT .equw(&|
00001c40  37 46 33 29 0d 13 ba 10  4f 50 54 20 a4 65 71 75  |7F3)....OPT .equ|
00001c50  64 28 30 29 0d 13 c4 10  4f 50 54 20 a4 65 71 75  |d(0)....OPT .equ|
00001c60  64 28 30 29 0d 13 ce 14  4f 50 54 20 a4 65 71 75  |d(0)....OPT .equ|
00001c70  64 28 26 33 30 30 30 29  0d 13 d8 14 4f 50 54 20  |d(&3000)....OPT |
00001c80  a4 65 71 75 64 28 26 34  35 31 30 29 0d 13 e2 07  |.equd(&4510)....|
00001c90  42 52 4b 0d 13 ec 13 4f  50 54 20 a4 65 71 75 73  |BRK....OPT .equs|
00001ca0  28 6f 6c 64 24 29 0d 13  f6 11 4f 50 54 20 a4 65  |(old$)....OPT .e|
00001cb0  71 75 62 28 26 44 29 0d  14 00 1a 2e 64 61 74 61  |qub(&D).....data|
00001cc0  33 20 4f 50 54 20 a4 65  71 75 77 28 26 37 46 33  |3 OPT .equw(&7F3|
00001cd0  29 0d 14 0a 14 4f 50 54  20 a4 65 71 75 64 28 26  |)....OPT .equd(&|
00001ce0  33 30 30 30 29 0d 14 14  10 4f 50 54 20 a4 65 71  |3000)....OPT .eq|
00001cf0  75 64 28 30 29 0d 14 1e  10 4f 50 54 20 a4 65 71  |ud(0)....OPT .eq|
00001d00  75 64 28 30 29 0d 14 28  10 4f 50 54 20 a4 65 71  |ud(0)..(.OPT .eq|
00001d10  75 64 28 30 29 0d 14 32  07 42 52 4b 0d 14 3c 13  |ud(0)..2.BRK..<.|
00001d20  4f 50 54 20 a4 65 71 75  73 28 6f 6c 64 24 29 0d  |OPT .equs(old$).|
00001d30  14 46 11 4f 50 54 20 a4  65 71 75 62 28 26 44 29  |.F.OPT .equb(&D)|
00001d40  0d 14 50 1a 2e 64 61 74  61 34 20 4f 50 54 20 a4  |..P..data4 OPT .|
00001d50  65 71 75 77 28 26 37 46  33 29 0d 14 5a 14 4f 50  |equw(&7F3)..Z.OP|
00001d60  54 20 a4 65 71 75 64 28  26 31 34 30 30 29 0d 14  |T .equd(&1400)..|
00001d70  64 10 4f 50 54 20 a4 65  71 75 64 28 30 29 0d 14  |d.OPT .equd(0)..|
00001d80  6e 10 4f 50 54 20 a4 65  71 75 64 28 30 29 0d 14  |n.OPT .equd(0)..|
00001d90  78 10 4f 50 54 20 a4 65  71 75 64 28 30 29 0d 14  |x.OPT .equd(0)..|
00001da0  82 07 42 52 4b 0d 14 8c  13 4f 50 54 20 a4 65 71  |..BRK....OPT .eq|
00001db0  75 73 28 70 6f 74 24 29  0d 14 96 11 4f 50 54 20  |us(pot$)....OPT |
00001dc0  a4 65 71 75 62 28 26 44  29 0d 14 a0 05 20 0d 14  |.equb(&D).... ..|
00001dd0  aa 10 2e 65 72 72 6f 72  20 4c 44 58 23 30 0d 14  |...error LDX#0..|
00001de0  b4 22 2e 65 72 72 5f 62  61 63 6b 20 4c 44 41 20  |.".err_back LDA |
00001df0  65 72 72 5f 6d 65 73 73  2b 26 33 30 30 30 2c 58  |err_mess+&3000,X|
00001e00  0d 14 be 0e 53 54 41 20  26 31 30 30 2c 58 0d 14  |....STA &100,X..|
00001e10  c8 07 49 4e 58 0d 14 d2  0a 43 50 58 23 26 45 0d  |..INX....CPX#&E.|
00001e20  14 dc 10 42 4e 45 20 65  72 72 5f 62 61 63 6b 0d  |...BNE err_back.|
00001e30  14 e6 0b 4a 4d 50 26 31  30 30 0d 14 f0 11 2e 65  |...JMP&100.....e|
00001e40  72 72 5f 6d 65 73 73 20  42 52 4b 0d 14 fa 12 4f  |rr_mess BRK....O|
00001e50  50 54 20 a4 65 71 75 62  28 26 38 30 29 0d 15 04  |PT .equb(&80)...|
00001e60  1c 4f 50 54 20 a4 65 71  75 73 28 22 4e 6f 20 69  |.OPT .equs("No i|
00001e70  6d 70 6f 73 74 65 72 22  29 0d 15 0e 07 42 52 4b  |mposter")....BRK|
00001e80  0d 15 18 05 20 0d 15 22  23 2e 66 69 6c 65 73 20  |.... .."#.files |
00001e90  4f 50 54 20 a4 65 71 75  73 28 70 6f 74 24 2b 22  |OPT .equs(pot$+"|
00001ea0  20 22 2b 6f 6c 64 24 29  0d 15 2c 07 42 52 4b 0d  | "+old$)..,.BRK.|
00001eb0  15 36 10 2e 6e 61 6d 65  73 20 4c 44 59 23 30 0d  |.6..names LDY#0.|
00001ec0  15 40 18 2e 6e 61 5f 62  61 63 6b 20 4c 44 41 20  |.@..na_back LDA |
00001ed0  66 69 6c 65 73 2c 59 0d  15 4a 0e 4a 53 52 20 6f  |files,Y..J.JSR o|
00001ee0  73 77 72 63 68 0d 15 54  07 49 4e 59 0d 15 5e 09  |swrch..T.INY..^.|
00001ef0  43 4d 50 23 30 0d 15 68  0f 42 4e 45 20 6e 61 5f  |CMP#0..h.BNE na_|
00001f00  62 61 63 6b 0d 15 72 09  4c 44 41 23 30 0d 15 7c  |back..r.LDA#0..||
00001f10  07 52 54 53 0d 15 86 05  5d 0d 15 90 05 ed 0d 15  |.RTS....].......|
00001f20  9a 05 3a 0d 15 a4 09 f1  22 4f 4b 22 0d 15 ae 1d  |..:....."OK"....|
00001f30  f1 22 2a 53 41 56 45 20  55 2e 43 4f 44 45 20 35  |."*SAVE U.CODE 5|
00001f40  30 30 30 20 35 34 46 46  22 0d 15 b8 05 e0 0d 15  |000 54FF".......|
00001f50  c2 05 3a 0d 15 cc 0e dd  a4 65 71 75 73 28 78 24  |..:......equs(x$|
00001f60  29 0d 15 d6 0a 24 50 25  3d 78 24 0d 15 e0 0f 50  |)....$P%=x$....P|
00001f70  25 3d 50 25 2b a9 28 78  24 29 0d 15 ea 0a 3a 3d  |%=P%+.(x$)....:=|
00001f80  70 61 73 73 0d 15 f4 05  3a 0d 15 fe 0d dd a4 65  |pass....:......e|
00001f90  71 75 77 28 78 29 0d 16  08 09 21 50 25 3d 78 0d  |quw(x)....!P%=x.|
00001fa0  16 12 0b 50 25 3d 50 25  2b 32 0d 16 1c 0a 3a 3d  |...P%=P%+2....:=|
00001fb0  70 61 73 73 0d 16 26 05  3a 0d 16 30 0d dd a4 65  |pass..&.:..0...e|
00001fc0  71 75 62 28 78 29 0d 16  3a 09 3f 50 25 3d 78 0d  |qub(x)..:.?P%=x.|
00001fd0  16 44 0b 50 25 3d 50 25  2b 31 0d 16 4e 0a 3a 3d  |.D.P%=P%+1..N.:=|
00001fe0  70 61 73 73 0d 16 58 05  3a 0d 16 62 0d dd a4 65  |pass..X.:..b...e|
00001ff0  71 75 64 28 78 29 0d 16  6c 09 21 50 25 3d 78 0d  |qud(x)..l.!P%=x.|
00002000  16 76 0b 50 25 3d 50 25  2b 34 0d 16 80 0a 3a 3d  |.v.P%=P%+4....:=|
00002010  70 61 73 73 0d ff                                 |pass..|
00002016
17_10_87/SNAP.m0
17_10_87/SNAP.m1
17_10_87/SNAP.m2
17_10_87/SNAP.m4
17_10_87/SNAP.m5