Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape10a_acorn_eu_1990_april.wav » CASE

CASE

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

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

Tape/disk: Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape10a_acorn_eu_1990_april.wav
Filename: CASE
Read OK:
File size: 0D26 bytes
Load address: 2000
Exec address: 1900
Duplicates

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

File contents
   10REM On the CASE
   20REM By Stephen J. Ramplin
   30REM (c) Electron User
   40MODE6
   50PROCassembler
   60PRINT"Press <RETURN> to save code"
   70REPEATUNTILGET=13
   80OSCLI"SAVE CASE B00 "+STR$~P%
   90END
  100DEFPROCassembler
  110brk=!&202 AND&FFFF
  120offsetA=&0A
  130ptrA=&0B
  140page=&18
  150ptrB=&19
  160offsetB=&1B
  170intA=&2A
  180error=&FD
  190brkv=&202
  200string=&700
  210cont=&8B9B
  220checkend=&985A
  230addY=&986D
  240syntax=&982B
  250eval=&9B29
  260pointer=&90
  270caseflag=&92
  280trueflag=&93
  290action=&94
  300temp=&96
  310strptr=&97
  320quote=&98
  330address=&99
  340code%=&B00
  350FORpass%=0TO2STEP2
  360P%=code%
  370[OPTpass%
  380EQUD&FB00000D
  390EQUW&15F4
  400NOP
  410.case
  420LDXcaseflag
  430BMIbadcase
  440DEX
  450STXcaseflag
  460CLC
  470TYA
  480ADCptrA
  490STAaddress
  500LDAptrA+1
  510ADC#0
  520STAaddress+1
  530LDY#0
  540.cloop
  550LDA(address),Y
  560BMIbadcase
  570CMP#ASC":"
  580BEQdone
  590CMP&801D
  600BEQdone
  610INY
  620BNEcloop
  630.done
  640INY
  650STYstrptr
  660INY
  670INY
  680INY
  690BNEquit
  700.badcase
  710BRK
  720EQUB46
  730EQUS"Bad CASE"
  740BRK
  750.when
  760LDAcaseflag
  770BPLnocase
  780LDAtrueflag
  790BMInewline
  800LDY#0
  810.wloop
  820LDA(address),Y
  830STAstring,Y
  840INY
  850CPYstrptr
  860BNEwloop
  870DEY
  880LDA#ASC"="
  890STAstring,Y
  900LDY#4
  910.wloopB
  920LDXstrptr
  930.wloopC
  940LDA(ptrA),Y
  950PHA
  960CMP#34
  970BNEnotquote
  980EORquote
  990STAquote
 1000.notquote
 1010CMP#ASC","
 1020BNEnotcomma
 1030LDAquote
 1040BEQtest
 1050.notcomma
 1060CMP#ASC":"
 1070BNEstore
 1080LDAquote
 1090BEQtest
 1100.store
 1110PLA
 1120STAstring,X
 1130INY
 1140INX
 1150BNEwloopC
 1160JMPsyntax
 1170.test
 1180LDA&801D
 1190STAstring,X
 1200LDA#7
 1210STAptrB+1
 1220LDA#0
 1230STAptrB
 1240STAoffsetB
 1250STYtemp
 1260JSReval
 1270LDYtemp
 1280LDAintA
 1290BMItrue
 1300.false
 1310PLA
 1320INY
 1330CMP#ASC","
 1340BEQwloopB
 1350DEY
 1360.newline
 1370INY
 1380LDA(ptrA),Y
 1390CMP&801D
 1400BNEnewline
 1410.quit
 1420BEQquitB
 1430BNEquitB
 1440.nocase
 1450BRK
 1460EQUB47
 1470EQUS"No CASE"
 1480BRK
 1490.true
 1500STAtrueflag
 1510PLA
 1520CMP#ASC":"
 1530BEQatcolon
 1540.tloop
 1550INY
 1560.tloopB
 1570LDA(ptrA),Y
 1580CMP#34
 1590BNEnotquoteB
 1600EORquote
 1610STAquote
 1620.notquoteB
 1630CMP#ASC":"
 1640BNEback
 1650LDAquote
 1660BEQatcolon
 1670.back
 1680INY
 1690BNEtloopB
 1700.atcolon
 1710BEQquitB
 1720.otherwise
 1730LDAcaseflag
 1740BPLnocase
 1750LDAtrueflag
 1760BMInewline
 1770BPLquitB
 1780.endcase
 1790LDXcaseflag
 1800BPLnocase
 1810INX
 1820STXcaseflag
 1830STXtrueflag
 1840.quitB
 1850DEY
 1860JSRcheckend
 1870LDY#9
 1880.loop
 1890PLA
 1900DEY
 1910BNEloop
 1920JMPcont
 1930EQUD&01000D06
 1940EQUB&98
 1950EQUW&90D6
 1960EQUS"+264:"
 1970EQUW&15F4
 1980.intercept
 1990LDX#main MOD256
 2000SEI
 2010STXbrkv
 2020LDXpage
 2030INX
 2040STXbrkv+1
 2050CLI
 2060LDY#0
 2070STYcaseflag
 2080STYtrueflag
 2090STYquote
 2100RTS
 2110.main
 2120PHP:PHA
 2130TYA:PHA
 2140TXA:PHA
 2150LDY#0
 2160LDA(error),Y
 2170CMP#4
 2180BEQcheck
 2190.out
 2200PLA:TAX
 2210PLA:TAY
 2220PLA:PLP
 2230JMPbrk
 2240.check
 2250LDYoffsetA
 2260DEY
 2270JSRaddY
 2280LDA#keytable MOD256
 2290STApointer
 2300LDXpage
 2310INX
 2320STXpointer+1
 2330.compare
 2340LDY#0
 2350.cmploop
 2360LDA(pointer),Y
 2370BEQfound
 2380BMIout
 2390CMP(ptrA),Y
 2400BNEnext
 2410INY
 2420BNEcmploop
 2430.next
 2440LDY#0
 2450.nloop
 2460INCpointer
 2470BNEnocarry
 2480INCpointer+1
 2490.nocarry
 2500LDA(pointer),Y
 2510BNEnloop
 2520INCpointer
 2530INCpointer
 2540BNEcompare
 2550.found
 2560INY
 2570LDA(pointer),Y
 2580DEY
 2590STAaction
 2600DEX
 2610STXaction+1
 2620JMP(action)
 2630.keytable
 2640EQUS"CASE":BRK
 2650EQUBcase MOD256
 2660EQUS"WHEN":BRK
 2670EQUBwhen MOD256
 2680EQUS"OTHERWISE":BRK
 2690EQUBotherwise MOD256
 2700EQUS"ENDCASE":BRK
 2710EQUBendcase MOD256
 2720EQUB128
 2730EQUD&FF0D06
 2740]
 2750NEXTpass%
 2760ENDPROC

� On the CASE
� By Stephen J. Ramplin
� (c) Electron User
(�6
2�assembler
<"�"Press <RETURN> to save code"
F
���=13
P�"SAVE CASE B00 "+�~P%
Z�
d��assembler
nbrk=!&202 �&FFFF
xoffsetA=&0A
�ptrA=&0B
�page=&18
�ptrB=&19
�offsetB=&1B
�intA=&2A
�
error=&FD
�
brkv=&202
�string=&700
�cont=&8B9B
�checkend=&985A
�addY=&986D
�syntax=&982B
�eval=&9B29
pointer=&90
caseflag=&92
trueflag=&93
"action=&94
,temp=&96
6strptr=&97
@
quote=&98
Jaddress=&99
Tcode%=&B00
^�pass%=0�2�2
hP%=code%
r
[OPTpass%
|EQUD&FB00000D
�
EQUW&15F4
�NOP
�	.case
�LDXcaseflag
�BMIbadcase
�DEX
�STXcaseflag
�CLC
�TYA
�ADCptrA
�STAaddress
�
LDAptrA+1
�	ADC#0
STAaddress+1
	LDY#0

.cloop
&LDA(address),Y
0BMIbadcase
:CMP#�":"
DBEQdone
NCMP&801D
XBEQdone
bINY
lBNEcloop
v	.done
�INY
�
STYstrptr
�INY
�INY
�INY
�BNEquit
�.badcase
�BRK
�
EQUB46
�EQUS"Bad CASE"
�BRK
�	.when
�LDAcaseflag

BPLnocase
LDAtrueflag
BMInewline
 	LDY#0
*
.wloop
4LDA(address),Y
>STAstring,Y
HINY
R
CPYstrptr
\BNEwloop
fDEY
pLDA#�"="
zSTAstring,Y
�	LDY#4
�.wloopB
�
LDXstrptr
�.wloopC
�LDA(ptrA),Y
�PHA
�
CMP#34
�BNEnotquote
�
�quote
�STAquote
�
.notquote
�CMP#�","
�BNEnotcomma
LDAquote
BEQtest

.notcomma
$CMP#�":"
.BNEstore
8LDAquote
BBEQtest
L
.store
VPLA
`STAstring,X
jINY
tINX
~
BNEwloopC
�
JMPsyntax
�	.test
�LDA&801D
�STAstring,X
�	LDA#7
�
STAptrB+1
�	LDA#0
�STAptrB
�STAoffsetB
�STYtemp
�JSReval
�LDYtemp
LDAintA

BMItrue

.false
PLA
(INY
2CMP#�","
<
BEQwloopB
FDEY
P.newline
ZINY
dLDA(ptrA),Y
nCMP&801D
xBNEnewline
�	.quit
�BEQquitB
�BNEquitB
�.nocase
�BRK
�
EQUB47
�EQUS"No CASE"
�BRK
�	.true
�STAtrueflag
�PLA
�CMP#�":"
�BEQatcolon

.tloop
INY
.tloopB
"LDA(ptrA),Y
,
CMP#34
6BNEnotquoteB
@
�quote
JSTAquote
T.notquoteB
^CMP#�":"
hBNEback
rLDAquote
|BEQatcolon
�	.back
�INY
�
BNEtloopB
�.atcolon
�BEQquitB
�.otherwise
�LDAcaseflag
�
BPLnocase
�LDAtrueflag
�BMInewline
�BPLquitB
�.endcase
�LDXcaseflag

BPLnocase
INX
STXcaseflag
&STXtrueflag
0
.quitB
:DEY
DJSRcheckend
N	LDY#9
X	.loop
bPLA
lDEY
vBNEloop
�JMPcont
�EQUD&01000D06
�EQUB&98
�
EQUW&90D6
�EQUS"+264:"
�
EQUW&15F4
�.intercept
�LDX#main �256
�SEI
�STXbrkv
�LDXpage
�INX
�
STXbrkv+1
CLI
	LDY#0
STYcaseflag
 STYtrueflag
*STYquote
4RTS
>	.main
HPHP:PHA
RTYA:PHA
\TXA:PHA
f	LDY#0
pLDA(error),Y
z	CMP#4
�BEQcheck
�.out
�PLA:TAX
�PLA:TAY
�PLA:PLP
�
JMPbrk
�
.check
�LDYoffsetA
�DEY
�JSRaddY
�LDA#keytable �256
�STApointer
�LDXpage
	INX
	STXpointer+1
	.compare
	$	LDY#0
	..cmploop
	8LDA(pointer),Y
	BBEQfound
	L
BMIout
	VCMP(ptrA),Y
	`BNEnext
	jINY
	tBNEcmploop
	~	.next
	�	LDY#0
	�
.nloop
	�INCpointer
	�BNEnocarry
	�INCpointer+1
	�.nocarry
	�LDA(pointer),Y
	�BNEnloop
	�INCpointer
	�INCpointer
	�BNEcompare
	�
.found
INY

LDA(pointer),Y
DEY

STAaction
(DEX
2STXaction+1
<JMP(action)
F
.keytable
PEQUS"CASE":BRK
ZEQUBcase �256
dEQUS"WHEN":BRK
nEQUBwhen �256
xEQUS"OTHERWISE":BRK
�EQUBotherwise �256
�EQUS"ENDCASE":BRK
�EQUBendcase �256
�EQUB128
�EQUD&FF0D06
�]
�
�pass%
��
�
00000000  0d 00 0a 11 f4 20 4f 6e  20 74 68 65 20 43 41 53  |..... On the CAS|
00000010  45 0d 00 14 1b f4 20 42  79 20 53 74 65 70 68 65  |E..... By Stephe|
00000020  6e 20 4a 2e 20 52 61 6d  70 6c 69 6e 0d 00 1e 17  |n J. Ramplin....|
00000030  f4 20 28 63 29 20 45 6c  65 63 74 72 6f 6e 20 55  |. (c) Electron U|
00000040  73 65 72 0d 00 28 06 eb  36 0d 00 32 0e f2 61 73  |ser..(..6..2..as|
00000050  73 65 6d 62 6c 65 72 0d  00 3c 22 f1 22 50 72 65  |sembler..<"."Pre|
00000060  73 73 20 3c 52 45 54 55  52 4e 3e 20 74 6f 20 73  |ss <RETURN> to s|
00000070  61 76 65 20 63 6f 64 65  22 0d 00 46 0a f5 fd a5  |ave code"..F....|
00000080  3d 31 33 0d 00 50 1a ff  22 53 41 56 45 20 43 41  |=13..P.."SAVE CA|
00000090  53 45 20 42 30 30 20 22  2b c3 7e 50 25 0d 00 5a  |SE B00 "+.~P%..Z|
000000a0  05 e0 0d 00 64 0f dd f2  61 73 73 65 6d 62 6c 65  |....d...assemble|
000000b0  72 0d 00 6e 14 62 72 6b  3d 21 26 32 30 32 20 80  |r..n.brk=!&202 .|
000000c0  26 46 46 46 46 0d 00 78  0f 6f 66 66 73 65 74 41  |&FFFF..x.offsetA|
000000d0  3d 26 30 41 0d 00 82 0c  70 74 72 41 3d 26 30 42  |=&0A....ptrA=&0B|
000000e0  0d 00 8c 0c 70 61 67 65  3d 26 31 38 0d 00 96 0c  |....page=&18....|
000000f0  70 74 72 42 3d 26 31 39  0d 00 a0 0f 6f 66 66 73  |ptrB=&19....offs|
00000100  65 74 42 3d 26 31 42 0d  00 aa 0c 69 6e 74 41 3d  |etB=&1B....intA=|
00000110  26 32 41 0d 00 b4 0d 65  72 72 6f 72 3d 26 46 44  |&2A....error=&FD|
00000120  0d 00 be 0d 62 72 6b 76  3d 26 32 30 32 0d 00 c8  |....brkv=&202...|
00000130  0f 73 74 72 69 6e 67 3d  26 37 30 30 0d 00 d2 0e  |.string=&700....|
00000140  63 6f 6e 74 3d 26 38 42  39 42 0d 00 dc 12 63 68  |cont=&8B9B....ch|
00000150  65 63 6b 65 6e 64 3d 26  39 38 35 41 0d 00 e6 0e  |eckend=&985A....|
00000160  61 64 64 59 3d 26 39 38  36 44 0d 00 f0 10 73 79  |addY=&986D....sy|
00000170  6e 74 61 78 3d 26 39 38  32 42 0d 00 fa 0e 65 76  |ntax=&982B....ev|
00000180  61 6c 3d 26 39 42 32 39  0d 01 04 0f 70 6f 69 6e  |al=&9B29....poin|
00000190  74 65 72 3d 26 39 30 0d  01 0e 10 63 61 73 65 66  |ter=&90....casef|
000001a0  6c 61 67 3d 26 39 32 0d  01 18 10 74 72 75 65 66  |lag=&92....truef|
000001b0  6c 61 67 3d 26 39 33 0d  01 22 0e 61 63 74 69 6f  |lag=&93..".actio|
000001c0  6e 3d 26 39 34 0d 01 2c  0c 74 65 6d 70 3d 26 39  |n=&94..,.temp=&9|
000001d0  36 0d 01 36 0e 73 74 72  70 74 72 3d 26 39 37 0d  |6..6.strptr=&97.|
000001e0  01 40 0d 71 75 6f 74 65  3d 26 39 38 0d 01 4a 0f  |.@.quote=&98..J.|
000001f0  61 64 64 72 65 73 73 3d  26 39 39 0d 01 54 0e 63  |address=&99..T.c|
00000200  6f 64 65 25 3d 26 42 30  30 0d 01 5e 10 e3 70 61  |ode%=&B00..^..pa|
00000210  73 73 25 3d 30 b8 32 88  32 0d 01 68 0c 50 25 3d  |ss%=0.2.2..h.P%=|
00000220  63 6f 64 65 25 0d 01 72  0d 5b 4f 50 54 70 61 73  |code%..r.[OPTpas|
00000230  73 25 0d 01 7c 11 45 51  55 44 26 46 42 30 30 30  |s%..|.EQUD&FB000|
00000240  30 30 44 0d 01 86 0d 45  51 55 57 26 31 35 46 34  |00D....EQUW&15F4|
00000250  0d 01 90 07 4e 4f 50 0d  01 9a 09 2e 63 61 73 65  |....NOP.....case|
00000260  0d 01 a4 0f 4c 44 58 63  61 73 65 66 6c 61 67 0d  |....LDXcaseflag.|
00000270  01 ae 0e 42 4d 49 62 61  64 63 61 73 65 0d 01 b8  |...BMIbadcase...|
00000280  07 44 45 58 0d 01 c2 0f  53 54 58 63 61 73 65 66  |.DEX....STXcasef|
00000290  6c 61 67 0d 01 cc 07 43  4c 43 0d 01 d6 07 54 59  |lag....CLC....TY|
000002a0  41 0d 01 e0 0b 41 44 43  70 74 72 41 0d 01 ea 0e  |A....ADCptrA....|
000002b0  53 54 41 61 64 64 72 65  73 73 0d 01 f4 0d 4c 44  |STAaddress....LD|
000002c0  41 70 74 72 41 2b 31 0d  01 fe 09 41 44 43 23 30  |AptrA+1....ADC#0|
000002d0  0d 02 08 10 53 54 41 61  64 64 72 65 73 73 2b 31  |....STAaddress+1|
000002e0  0d 02 12 09 4c 44 59 23  30 0d 02 1c 0a 2e 63 6c  |....LDY#0.....cl|
000002f0  6f 6f 70 0d 02 26 12 4c  44 41 28 61 64 64 72 65  |oop..&.LDA(addre|
00000300  73 73 29 2c 59 0d 02 30  0e 42 4d 49 62 61 64 63  |ss),Y..0.BMIbadc|
00000310  61 73 65 0d 02 3a 0c 43  4d 50 23 97 22 3a 22 0d  |ase..:.CMP#.":".|
00000320  02 44 0b 42 45 51 64 6f  6e 65 0d 02 4e 0c 43 4d  |.D.BEQdone..N.CM|
00000330  50 26 38 30 31 44 0d 02  58 0b 42 45 51 64 6f 6e  |P&801D..X.BEQdon|
00000340  65 0d 02 62 07 49 4e 59  0d 02 6c 0c 42 4e 45 63  |e..b.INY..l.BNEc|
00000350  6c 6f 6f 70 0d 02 76 09  2e 64 6f 6e 65 0d 02 80  |loop..v..done...|
00000360  07 49 4e 59 0d 02 8a 0d  53 54 59 73 74 72 70 74  |.INY....STYstrpt|
00000370  72 0d 02 94 07 49 4e 59  0d 02 9e 07 49 4e 59 0d  |r....INY....INY.|
00000380  02 a8 07 49 4e 59 0d 02  b2 0b 42 4e 45 71 75 69  |...INY....BNEqui|
00000390  74 0d 02 bc 0c 2e 62 61  64 63 61 73 65 0d 02 c6  |t.....badcase...|
000003a0  07 42 52 4b 0d 02 d0 0a  45 51 55 42 34 36 0d 02  |.BRK....EQUB46..|
000003b0  da 12 45 51 55 53 22 42  61 64 20 43 41 53 45 22  |..EQUS"Bad CASE"|
000003c0  0d 02 e4 07 42 52 4b 0d  02 ee 09 2e 77 68 65 6e  |....BRK.....when|
000003d0  0d 02 f8 0f 4c 44 41 63  61 73 65 66 6c 61 67 0d  |....LDAcaseflag.|
000003e0  03 02 0d 42 50 4c 6e 6f  63 61 73 65 0d 03 0c 0f  |...BPLnocase....|
000003f0  4c 44 41 74 72 75 65 66  6c 61 67 0d 03 16 0e 42  |LDAtrueflag....B|
00000400  4d 49 6e 65 77 6c 69 6e  65 0d 03 20 09 4c 44 59  |MInewline.. .LDY|
00000410  23 30 0d 03 2a 0a 2e 77  6c 6f 6f 70 0d 03 34 12  |#0..*..wloop..4.|
00000420  4c 44 41 28 61 64 64 72  65 73 73 29 2c 59 0d 03  |LDA(address),Y..|
00000430  3e 0f 53 54 41 73 74 72  69 6e 67 2c 59 0d 03 48  |>.STAstring,Y..H|
00000440  07 49 4e 59 0d 03 52 0d  43 50 59 73 74 72 70 74  |.INY..R.CPYstrpt|
00000450  72 0d 03 5c 0c 42 4e 45  77 6c 6f 6f 70 0d 03 66  |r..\.BNEwloop..f|
00000460  07 44 45 59 0d 03 70 0c  4c 44 41 23 97 22 3d 22  |.DEY..p.LDA#."="|
00000470  0d 03 7a 0f 53 54 41 73  74 72 69 6e 67 2c 59 0d  |..z.STAstring,Y.|
00000480  03 84 09 4c 44 59 23 34  0d 03 8e 0b 2e 77 6c 6f  |...LDY#4.....wlo|
00000490  6f 70 42 0d 03 98 0d 4c  44 58 73 74 72 70 74 72  |opB....LDXstrptr|
000004a0  0d 03 a2 0b 2e 77 6c 6f  6f 70 43 0d 03 ac 0f 4c  |.....wloopC....L|
000004b0  44 41 28 70 74 72 41 29  2c 59 0d 03 b6 07 50 48  |DA(ptrA),Y....PH|
000004c0  41 0d 03 c0 0a 43 4d 50  23 33 34 0d 03 ca 0f 42  |A....CMP#34....B|
000004d0  4e 45 6e 6f 74 71 75 6f  74 65 0d 03 d4 0a 82 71  |NEnotquote.....q|
000004e0  75 6f 74 65 0d 03 de 0c  53 54 41 71 75 6f 74 65  |uote....STAquote|
000004f0  0d 03 e8 0d 2e 6e 6f 74  71 75 6f 74 65 0d 03 f2  |.....notquote...|
00000500  0c 43 4d 50 23 97 22 2c  22 0d 03 fc 0f 42 4e 45  |.CMP#.","....BNE|
00000510  6e 6f 74 63 6f 6d 6d 61  0d 04 06 0c 4c 44 41 71  |notcomma....LDAq|
00000520  75 6f 74 65 0d 04 10 0b  42 45 51 74 65 73 74 0d  |uote....BEQtest.|
00000530  04 1a 0d 2e 6e 6f 74 63  6f 6d 6d 61 0d 04 24 0c  |....notcomma..$.|
00000540  43 4d 50 23 97 22 3a 22  0d 04 2e 0c 42 4e 45 73  |CMP#.":"....BNEs|
00000550  74 6f 72 65 0d 04 38 0c  4c 44 41 71 75 6f 74 65  |tore..8.LDAquote|
00000560  0d 04 42 0b 42 45 51 74  65 73 74 0d 04 4c 0a 2e  |..B.BEQtest..L..|
00000570  73 74 6f 72 65 0d 04 56  07 50 4c 41 0d 04 60 0f  |store..V.PLA..`.|
00000580  53 54 41 73 74 72 69 6e  67 2c 58 0d 04 6a 07 49  |STAstring,X..j.I|
00000590  4e 59 0d 04 74 07 49 4e  58 0d 04 7e 0d 42 4e 45  |NY..t.INX..~.BNE|
000005a0  77 6c 6f 6f 70 43 0d 04  88 0d 4a 4d 50 73 79 6e  |wloopC....JMPsyn|
000005b0  74 61 78 0d 04 92 09 2e  74 65 73 74 0d 04 9c 0c  |tax.....test....|
000005c0  4c 44 41 26 38 30 31 44  0d 04 a6 0f 53 54 41 73  |LDA&801D....STAs|
000005d0  74 72 69 6e 67 2c 58 0d  04 b0 09 4c 44 41 23 37  |tring,X....LDA#7|
000005e0  0d 04 ba 0d 53 54 41 70  74 72 42 2b 31 0d 04 c4  |....STAptrB+1...|
000005f0  09 4c 44 41 23 30 0d 04  ce 0b 53 54 41 70 74 72  |.LDA#0....STAptr|
00000600  42 0d 04 d8 0e 53 54 41  6f 66 66 73 65 74 42 0d  |B....STAoffsetB.|
00000610  04 e2 0b 53 54 59 74 65  6d 70 0d 04 ec 0b 4a 53  |...STYtemp....JS|
00000620  52 65 76 61 6c 0d 04 f6  0b 4c 44 59 74 65 6d 70  |Reval....LDYtemp|
00000630  0d 05 00 0b 4c 44 41 69  6e 74 41 0d 05 0a 0b 42  |....LDAintA....B|
00000640  4d 49 74 72 75 65 0d 05  14 0a 2e 66 61 6c 73 65  |MItrue.....false|
00000650  0d 05 1e 07 50 4c 41 0d  05 28 07 49 4e 59 0d 05  |....PLA..(.INY..|
00000660  32 0c 43 4d 50 23 97 22  2c 22 0d 05 3c 0d 42 45  |2.CMP#.","..<.BE|
00000670  51 77 6c 6f 6f 70 42 0d  05 46 07 44 45 59 0d 05  |QwloopB..F.DEY..|
00000680  50 0c 2e 6e 65 77 6c 69  6e 65 0d 05 5a 07 49 4e  |P..newline..Z.IN|
00000690  59 0d 05 64 0f 4c 44 41  28 70 74 72 41 29 2c 59  |Y..d.LDA(ptrA),Y|
000006a0  0d 05 6e 0c 43 4d 50 26  38 30 31 44 0d 05 78 0e  |..n.CMP&801D..x.|
000006b0  42 4e 45 6e 65 77 6c 69  6e 65 0d 05 82 09 2e 71  |BNEnewline.....q|
000006c0  75 69 74 0d 05 8c 0c 42  45 51 71 75 69 74 42 0d  |uit....BEQquitB.|
000006d0  05 96 0c 42 4e 45 71 75  69 74 42 0d 05 a0 0b 2e  |...BNEquitB.....|
000006e0  6e 6f 63 61 73 65 0d 05  aa 07 42 52 4b 0d 05 b4  |nocase....BRK...|
000006f0  0a 45 51 55 42 34 37 0d  05 be 11 45 51 55 53 22  |.EQUB47....EQUS"|
00000700  4e 6f 20 43 41 53 45 22  0d 05 c8 07 42 52 4b 0d  |No CASE"....BRK.|
00000710  05 d2 09 2e 74 72 75 65  0d 05 dc 0f 53 54 41 74  |....true....STAt|
00000720  72 75 65 66 6c 61 67 0d  05 e6 07 50 4c 41 0d 05  |rueflag....PLA..|
00000730  f0 0c 43 4d 50 23 97 22  3a 22 0d 05 fa 0e 42 45  |..CMP#.":"....BE|
00000740  51 61 74 63 6f 6c 6f 6e  0d 06 04 0a 2e 74 6c 6f  |Qatcolon.....tlo|
00000750  6f 70 0d 06 0e 07 49 4e  59 0d 06 18 0b 2e 74 6c  |op....INY.....tl|
00000760  6f 6f 70 42 0d 06 22 0f  4c 44 41 28 70 74 72 41  |oopB..".LDA(ptrA|
00000770  29 2c 59 0d 06 2c 0a 43  4d 50 23 33 34 0d 06 36  |),Y..,.CMP#34..6|
00000780  10 42 4e 45 6e 6f 74 71  75 6f 74 65 42 0d 06 40  |.BNEnotquoteB..@|
00000790  0a 82 71 75 6f 74 65 0d  06 4a 0c 53 54 41 71 75  |..quote..J.STAqu|
000007a0  6f 74 65 0d 06 54 0e 2e  6e 6f 74 71 75 6f 74 65  |ote..T..notquote|
000007b0  42 0d 06 5e 0c 43 4d 50  23 97 22 3a 22 0d 06 68  |B..^.CMP#.":"..h|
000007c0  0b 42 4e 45 62 61 63 6b  0d 06 72 0c 4c 44 41 71  |.BNEback..r.LDAq|
000007d0  75 6f 74 65 0d 06 7c 0e  42 45 51 61 74 63 6f 6c  |uote..|.BEQatcol|
000007e0  6f 6e 0d 06 86 09 2e 62  61 63 6b 0d 06 90 07 49  |on.....back....I|
000007f0  4e 59 0d 06 9a 0d 42 4e  45 74 6c 6f 6f 70 42 0d  |NY....BNEtloopB.|
00000800  06 a4 0c 2e 61 74 63 6f  6c 6f 6e 0d 06 ae 0c 42  |....atcolon....B|
00000810  45 51 71 75 69 74 42 0d  06 b8 0e 2e 6f 74 68 65  |EQquitB.....othe|
00000820  72 77 69 73 65 0d 06 c2  0f 4c 44 41 63 61 73 65  |rwise....LDAcase|
00000830  66 6c 61 67 0d 06 cc 0d  42 50 4c 6e 6f 63 61 73  |flag....BPLnocas|
00000840  65 0d 06 d6 0f 4c 44 41  74 72 75 65 66 6c 61 67  |e....LDAtrueflag|
00000850  0d 06 e0 0e 42 4d 49 6e  65 77 6c 69 6e 65 0d 06  |....BMInewline..|
00000860  ea 0c 42 50 4c 71 75 69  74 42 0d 06 f4 0c 2e 65  |..BPLquitB.....e|
00000870  6e 64 63 61 73 65 0d 06  fe 0f 4c 44 58 63 61 73  |ndcase....LDXcas|
00000880  65 66 6c 61 67 0d 07 08  0d 42 50 4c 6e 6f 63 61  |eflag....BPLnoca|
00000890  73 65 0d 07 12 07 49 4e  58 0d 07 1c 0f 53 54 58  |se....INX....STX|
000008a0  63 61 73 65 66 6c 61 67  0d 07 26 0f 53 54 58 74  |caseflag..&.STXt|
000008b0  72 75 65 66 6c 61 67 0d  07 30 0a 2e 71 75 69 74  |rueflag..0..quit|
000008c0  42 0d 07 3a 07 44 45 59  0d 07 44 0f 4a 53 52 63  |B..:.DEY..D.JSRc|
000008d0  68 65 63 6b 65 6e 64 0d  07 4e 09 4c 44 59 23 39  |heckend..N.LDY#9|
000008e0  0d 07 58 09 2e 6c 6f 6f  70 0d 07 62 07 50 4c 41  |..X..loop..b.PLA|
000008f0  0d 07 6c 07 44 45 59 0d  07 76 0b 42 4e 45 6c 6f  |..l.DEY..v.BNElo|
00000900  6f 70 0d 07 80 0b 4a 4d  50 63 6f 6e 74 0d 07 8a  |op....JMPcont...|
00000910  11 45 51 55 44 26 30 31  30 30 30 44 30 36 0d 07  |.EQUD&01000D06..|
00000920  94 0b 45 51 55 42 26 39  38 0d 07 9e 0d 45 51 55  |..EQUB&98....EQU|
00000930  57 26 39 30 44 36 0d 07  a8 0f 45 51 55 53 22 2b  |W&90D6....EQUS"+|
00000940  32 36 34 3a 22 0d 07 b2  0d 45 51 55 57 26 31 35  |264:"....EQUW&15|
00000950  46 34 0d 07 bc 0e 2e 69  6e 74 65 72 63 65 70 74  |F4.....intercept|
00000960  0d 07 c6 11 4c 44 58 23  6d 61 69 6e 20 83 32 35  |....LDX#main .25|
00000970  36 0d 07 d0 07 53 45 49  0d 07 da 0b 53 54 58 62  |6....SEI....STXb|
00000980  72 6b 76 0d 07 e4 0b 4c  44 58 70 61 67 65 0d 07  |rkv....LDXpage..|
00000990  ee 07 49 4e 58 0d 07 f8  0d 53 54 58 62 72 6b 76  |..INX....STXbrkv|
000009a0  2b 31 0d 08 02 07 43 4c  49 0d 08 0c 09 4c 44 59  |+1....CLI....LDY|
000009b0  23 30 0d 08 16 0f 53 54  59 63 61 73 65 66 6c 61  |#0....STYcasefla|
000009c0  67 0d 08 20 0f 53 54 59  74 72 75 65 66 6c 61 67  |g.. .STYtrueflag|
000009d0  0d 08 2a 0c 53 54 59 71  75 6f 74 65 0d 08 34 07  |..*.STYquote..4.|
000009e0  52 54 53 0d 08 3e 09 2e  6d 61 69 6e 0d 08 48 0b  |RTS..>..main..H.|
000009f0  50 48 50 3a 50 48 41 0d  08 52 0b 54 59 41 3a 50  |PHP:PHA..R.TYA:P|
00000a00  48 41 0d 08 5c 0b 54 58  41 3a 50 48 41 0d 08 66  |HA..\.TXA:PHA..f|
00000a10  09 4c 44 59 23 30 0d 08  70 10 4c 44 41 28 65 72  |.LDY#0..p.LDA(er|
00000a20  72 6f 72 29 2c 59 0d 08  7a 09 43 4d 50 23 34 0d  |ror),Y..z.CMP#4.|
00000a30  08 84 0c 42 45 51 63 68  65 63 6b 0d 08 8e 08 2e  |...BEQcheck.....|
00000a40  6f 75 74 0d 08 98 0b 50  4c 41 3a 54 41 58 0d 08  |out....PLA:TAX..|
00000a50  a2 0b 50 4c 41 3a 54 41  59 0d 08 ac 0b 50 4c 41  |..PLA:TAY....PLA|
00000a60  3a 50 4c 50 0d 08 b6 0a  4a 4d 50 62 72 6b 0d 08  |:PLP....JMPbrk..|
00000a70  c0 0a 2e 63 68 65 63 6b  0d 08 ca 0e 4c 44 59 6f  |...check....LDYo|
00000a80  66 66 73 65 74 41 0d 08  d4 07 44 45 59 0d 08 de  |ffsetA....DEY...|
00000a90  0b 4a 53 52 61 64 64 59  0d 08 e8 15 4c 44 41 23  |.JSRaddY....LDA#|
00000aa0  6b 65 79 74 61 62 6c 65  20 83 32 35 36 0d 08 f2  |keytable .256...|
00000ab0  0e 53 54 41 70 6f 69 6e  74 65 72 0d 08 fc 0b 4c  |.STApointer....L|
00000ac0  44 58 70 61 67 65 0d 09  06 07 49 4e 58 0d 09 10  |DXpage....INX...|
00000ad0  10 53 54 58 70 6f 69 6e  74 65 72 2b 31 0d 09 1a  |.STXpointer+1...|
00000ae0  0c 2e 63 6f 6d 70 61 72  65 0d 09 24 09 4c 44 59  |..compare..$.LDY|
00000af0  23 30 0d 09 2e 0c 2e 63  6d 70 6c 6f 6f 70 0d 09  |#0.....cmploop..|
00000b00  38 12 4c 44 41 28 70 6f  69 6e 74 65 72 29 2c 59  |8.LDA(pointer),Y|
00000b10  0d 09 42 0c 42 45 51 66  6f 75 6e 64 0d 09 4c 0a  |..B.BEQfound..L.|
00000b20  42 4d 49 6f 75 74 0d 09  56 0f 43 4d 50 28 70 74  |BMIout..V.CMP(pt|
00000b30  72 41 29 2c 59 0d 09 60  0b 42 4e 45 6e 65 78 74  |rA),Y..`.BNEnext|
00000b40  0d 09 6a 07 49 4e 59 0d  09 74 0e 42 4e 45 63 6d  |..j.INY..t.BNEcm|
00000b50  70 6c 6f 6f 70 0d 09 7e  09 2e 6e 65 78 74 0d 09  |ploop..~..next..|
00000b60  88 09 4c 44 59 23 30 0d  09 92 0a 2e 6e 6c 6f 6f  |..LDY#0.....nloo|
00000b70  70 0d 09 9c 0e 49 4e 43  70 6f 69 6e 74 65 72 0d  |p....INCpointer.|
00000b80  09 a6 0e 42 4e 45 6e 6f  63 61 72 72 79 0d 09 b0  |...BNEnocarry...|
00000b90  10 49 4e 43 70 6f 69 6e  74 65 72 2b 31 0d 09 ba  |.INCpointer+1...|
00000ba0  0c 2e 6e 6f 63 61 72 72  79 0d 09 c4 12 4c 44 41  |..nocarry....LDA|
00000bb0  28 70 6f 69 6e 74 65 72  29 2c 59 0d 09 ce 0c 42  |(pointer),Y....B|
00000bc0  4e 45 6e 6c 6f 6f 70 0d  09 d8 0e 49 4e 43 70 6f  |NEnloop....INCpo|
00000bd0  69 6e 74 65 72 0d 09 e2  0e 49 4e 43 70 6f 69 6e  |inter....INCpoin|
00000be0  74 65 72 0d 09 ec 0e 42  4e 45 63 6f 6d 70 61 72  |ter....BNEcompar|
00000bf0  65 0d 09 f6 0a 2e 66 6f  75 6e 64 0d 0a 00 07 49  |e.....found....I|
00000c00  4e 59 0d 0a 0a 12 4c 44  41 28 70 6f 69 6e 74 65  |NY....LDA(pointe|
00000c10  72 29 2c 59 0d 0a 14 07  44 45 59 0d 0a 1e 0d 53  |r),Y....DEY....S|
00000c20  54 41 61 63 74 69 6f 6e  0d 0a 28 07 44 45 58 0d  |TAaction..(.DEX.|
00000c30  0a 32 0f 53 54 58 61 63  74 69 6f 6e 2b 31 0d 0a  |.2.STXaction+1..|
00000c40  3c 0f 4a 4d 50 28 61 63  74 69 6f 6e 29 0d 0a 46  |<.JMP(action)..F|
00000c50  0d 2e 6b 65 79 74 61 62  6c 65 0d 0a 50 12 45 51  |..keytable..P.EQ|
00000c60  55 53 22 43 41 53 45 22  3a 42 52 4b 0d 0a 5a 11  |US"CASE":BRK..Z.|
00000c70  45 51 55 42 63 61 73 65  20 83 32 35 36 0d 0a 64  |EQUBcase .256..d|
00000c80  12 45 51 55 53 22 57 48  45 4e 22 3a 42 52 4b 0d  |.EQUS"WHEN":BRK.|
00000c90  0a 6e 11 45 51 55 42 77  68 65 6e 20 83 32 35 36  |.n.EQUBwhen .256|
00000ca0  0d 0a 78 17 45 51 55 53  22 4f 54 48 45 52 57 49  |..x.EQUS"OTHERWI|
00000cb0  53 45 22 3a 42 52 4b 0d  0a 82 16 45 51 55 42 6f  |SE":BRK....EQUBo|
00000cc0  74 68 65 72 77 69 73 65  20 83 32 35 36 0d 0a 8c  |therwise .256...|
00000cd0  15 45 51 55 53 22 45 4e  44 43 41 53 45 22 3a 42  |.EQUS"ENDCASE":B|
00000ce0  52 4b 0d 0a 96 14 45 51  55 42 65 6e 64 63 61 73  |RK....EQUBendcas|
00000cf0  65 20 83 32 35 36 0d 0a  a0 0b 45 51 55 42 31 32  |e .256....EQUB12|
00000d00  38 0d 0a aa 0f 45 51 55  44 26 46 46 30 44 30 36  |8....EQUD&FF0D06|
00000d10  0d 0a b4 05 5d 0d 0a be  0a ed 70 61 73 73 25 0d  |....].....pass%.|
00000d20  0a c8 05 e1 0d ff                                 |......|
00000d26
CASE.m0
CASE.m1
CASE.m2
CASE.m4
CASE.m5