Home » CEEFAX disks » telesoftware10.adl » 25-10-88/HELP

25-10-88/HELP

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 » telesoftware10.adl
Filename: 25-10-88/HELP
Read OK:
File size: 17C1 bytes
Load address: FFFF1900
Exec address: FFFF8023
Duplicates

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

File contents
   10REM: HELP
   20MODE7
   30HIMEM=&3C00
   40DIM save 50
   50diff=&8000-HIMEM
   60address=&70
   70comvec=&F2
   80errstack=&100
   90stack=&105
  100gsinit=&FFC2
  110gsread=&FFC5
  120osasci=&FFE3
  130osword=&FFF1
  140osbyte=&FFF4
  150oscli=&FFF7
  160FOR pass = 0 TO 2 STEP 2
  170P%=HIMEM
  180[OPT pass
  190BRK
  200BRK
  210BRK
  220JMP service+diff
  230OPT FNequb(&82)
  240OPT FNequb((copyright+diff) MOD 256)
  250BRK
  260OPT FNequs("COLOURED TEXT")
  270.copyright
  280BRK
  290OPT FNequs("(C) Gordon Horsington 1987")
  300BRK
  310.service
  320PHA
  330TXA
  340PHA
  350TYA
  360PHA
  370LDA address
  380PHA
  390LDA address+1
  400PHA
  410TSX
  420LDA stack,X
  430CMP #9
  440BNE tryfour
  450SEC
  460JSR gsinit
  470LDX #0
  480JSR gsread
  490BCC tryextended
  500LDX #(helpmsg+diff) MOD 256
  510LDY #(helpmsg+diff) DIV 256
  520JSR printer+diff
  530BEQ quit
  540.helploop
  550INX
  560JSR gsread
  570.tryextended
  580CMP #ASC(".")
  590BEQ okextended
  600AND #&DF
  610CMP helptitle+diff,X
  620BEQ helploop
  630LDA #&FF
  640CMP helptitle+diff,X
  650BNE quit
  660.okextended
  670LDX #(helpinfo+diff) MOD 256
  680LDY #(helpinfo+diff) DIV 256
  690JSR printer+diff
  700BEQ quit
  710.tryfour
  720CMP #4
  730BNE quit
  740LDX #&FE
  750TYA
  760PHA
  770.firstchar
  780INX
  790PLA
  800TAY
  810PHA
  820LDA (comvec),Y
  830AND #&DF
  840CMP #ASC("X")
  850BNE interpret
  860INY
  870.interpret
  880INX
  890LDA commtable+diff,X
  900BMI found
  910LDA (comvec),Y
  920INY
  930CMP #ASC(".")
  940BEQ founddot
  950AND #&DF
  960CMP commtable+diff,X
  970BEQ interpret
  980.another
  990INX
 1000LDA commtable+diff,X
 1010BPL another
 1020CMP #&FF
 1030BNE firstchar
 1040.exit
 1050PLA
 1060.quit
 1070PLA
 1080STA address+1
 1090PLA
 1100STA address
 1110PLA
 1120TAY
 1130PLA
 1140TAX
 1150PLA
 1160RTS
 1170.founddot
 1180INX
 1190LDA commtable+diff,X
 1200BPL founddot
 1210.found
 1220CMP #&FF
 1230BEQ exit
 1240STA address+1
 1250INX
 1260LDA commtable+diff,X
 1270STA address
 1280PLA
 1290SEC
 1300JSR gsinit
 1310JMP (address)
 1320.commtable
 1330OPT FNequs("BLAWHIT")
 1340OPT FNequb((blawhit+diff) DIV 256)
 1350OPT FNequb((blawhit+diff) MOD 256)
 1360OPT FNequs("REDCYAN")
 1370OPT FNequb((redcyan+diff) DIV 256)
 1380OPT FNequb((redcyan+diff) MOD 256)
 1390OPT FNequs("GREEMAG")
 1400OPT FNequb((greemag+diff) DIV 256)
 1410OPT FNequb((greemag+diff) MOD 256)
 1420OPT FNequs("YELLBLU")
 1430OPT FNequb((yellblu+diff) DIV 256)
 1440OPT FNequb((yellblu+diff) MOD 256)
 1450OPT FNequs("BLUYELL")
 1460OPT FNequb((bluyell+diff) DIV 256)
 1470OPT FNequb((bluyell+diff) MOD 256)
 1480OPT FNequs("MAGREEN")
 1490OPT FNequb((magreen+diff) DIV 256)
 1500OPT FNequb((magreen+diff) MOD 256)
 1510OPT FNequs("CYANRED")
 1520OPT FNequb((cyanred+diff) DIV 256)
 1530OPT FNequb((cyanred+diff) MOD 256)
 1540OPT FNequs("WHIBLAC")
 1550OPT FNequb((whiblac+diff) DIV 256)
 1560OPT FNequb((whiblac+diff) MOD 256)
 1570OPT FNequs("MAGENTA")
 1580OPT FNequb((magenta+diff) DIV 256)
 1590OPT FNequb((magenta+diff) MOD 256)
 1600OPT FNequs("YELLOW")
 1610OPT FNequb((yellow+diff) DIV 256)
 1620OPT FNequb((yellow+diff) MOD 256)
 1630OPT FNequs("WHITE")
 1640OPT FNequb((white+diff) DIV 256)
 1650OPT FNequb((white+diff) MOD 256)
 1660OPT FNequs("GREEN")
 1670OPT FNequb((green+diff) DIV 256)
 1680OPT FNequb((green+diff) MOD 256)
 1690OPT FNequs("BLACK")
 1700OPT FNequb((black+diff) DIV 256)
 1710OPT FNequb((black+diff) MOD 256)
 1720OPT FNequs("CYAN")
 1730OPT FNequb((cyan+diff) DIV 256)
 1740OPT FNequb((cyan+diff) MOD 256)
 1750OPT FNequs("BLUE")
 1760OPT FNequb((blue+diff) DIV 256)
 1770OPT FNequb((blue+diff) MOD 256)
 1780OPT FNequs("RED")
 1790OPT FNequb((red+diff) DIV 256)
 1800OPT FNequb((red+diff) MOD 256)
 1810OPT FNequb(&FF)
 1820.helpmsg
 1830OPT FNequb(&0D)
 1840OPT FNequs("COLOURED TEXT")
 1850OPT FNequb(&0D)
 1860OPT FNequw(&2020)
 1870.helptitle
 1880OPT FNequs("COLOURS")
 1890OPT FNequw(&0DFF)
 1900BRK
 1910.helpinfo
 1920OPT FNequw(&200D)
 1930OPT FNequs("*BLACK")
 1940OPT FNequw(&200D)
 1950OPT FNequs("*RED")
 1960OPT FNequw(&200D)
 1970OPT FNequs("*GREEN")
 1980OPT FNequw(&200D)
 1990OPT FNequs("*YELLOW")
 2000OPT FNequw(&200D)
 2010OPT FNequs("*BLUE")
 2020OPT FNequw(&200D)
 2030OPT FNequs("*MAGENTA")
 2040OPT FNequw(&200D)
 2050OPT FNequs("*CYAN")
 2060OPT FNequw(&200D)
 2070OPT FNequs("*WHITE")
 2080OPT FNequw(&200D)
 2090OPT FNequs("*BLAWHIT")
 2100OPT FNequw(&200D)
 2110OPT FNequs("*REDCYAN")
 2120OPT FNequw(&200D)
 2130OPT FNequs("*GREEMAG")
 2140OPT FNequw(&200D)
 2150OPT FNequs("*YELLBLU")
 2160OPT FNequw(&200D)
 2170OPT FNequs("*BLUYELL")
 2180OPT FNequw(&200D)
 2190OPT FNequs("*MAGREEN")
 2200OPT FNequw(&200D)
 2210OPT FNequs("*CYANRED")
 2220OPT FNequw(&200D)
 2230OPT FNequs("*WHIBLAC")
 2240OPT FNequw(&000D)
 2250.printer
 2260STX address
 2270STY address+1
 2280LDY #&FF
 2290.printloop
 2300INY
 2310LDA (address),Y
 2320BEQ endprint
 2330BMI printloop
 2340JSR osasci
 2350JMP printloop+diff
 2360.endprint
 2370RTS
 2380.black
 2390LDA #0
 2400BEQ mode
 2410.red
 2420LDA #1
 2430BNE mode
 2440.green
 2450LDA #2
 2460BNE mode
 2470.yellow
 2480LDA #3
 2490BNE mode
 2500.blue
 2510LDA #4
 2520BNE mode
 2530.magenta
 2540LDA #5
 2550BNE mode
 2560.cyan
 2570LDA #6
 2580BNE mode
 2590.white
 2600LDA #7
 2610BNE mode
 2620.blawhit
 2630LDA #8
 2640BNE mode
 2650.redcyan
 2660LDA #9
 2670BNE mode
 2680.greemag
 2690LDA #10
 2700BNE mode
 2710.yellblu
 2720LDA #11
 2730BNE mode
 2740.bluyell
 2750LDA #12
 2760BNE mode
 2770.magreen
 2780LDA #13
 2790BNE mode
 2800.cyanred
 2810LDA #14
 2820BNE mode
 2830.whiblac
 2840LDA #15
 2850.mode
 2860PHA
 2870LDA #&87
 2880JSR osbyte \ Check screen mode
 2890CPY #7
 2900BNE mode0to6
 2910PLA
 2920LDA #(wrongmode+diff) MOD 256
 2930STA address
 2940LDA #(wrongmode+diff) DIV 256
 2950STA address+1
 2960LDY #&FF
 2970.errorloop
 2980INY
 2990LDA (address),Y
 3000STA errstack,Y
 3010BPL errorloop
 3020PLA
 3030STA address+1
 3040PLA
 3050STA address
 3060JMP errstack
 3070.mode0to6
 3080LDA colours+diff,Y
 3090PHA
 3100LDA #19
 3110JSR osasci
 3120PLA
 3130JSR osasci
 3140PLA
 3150JSR osasci
 3160LDA #0
 3170JSR osasci
 3180JSR osasci
 3190JSR osasci
 3200.pullout
 3210PLA
 3220STA address+1
 3230PLA
 3240STA address
 3250PLA
 3260PLA
 3270PLA
 3280LDA #0
 3290RTS
 3300.colours
 3310OPT FNequd(&01070301)
 3320OPT FNequw(&0301)
 3330OPT FNequb(&01)
 3340.wrongmode
 3350BRK
 3360BRK
 3370OPT FNequs("Modes 0-6 only")
 3380BRK
 3390OPT FNequb(&FF)
 3400.lastbyte
 3410]
 3420NEXT
 3430INPUT'"Save filename = "filename$
 3440IF filename$="" END
 3450$save="SAVE "+filename$+" "+STR$~(HIMEM)+" "+STR$~(lastbyte)+" FFFF8000 FFFF8000"
 3460X%=save MOD 256
 3470Y%=save DIV 256
 3480*OPT1,2
 3490CALL oscli
 3500*OPT1,0
 3510END
 3520DEFFNequb(byte)
 3530?P%=byte
 3540P%=P%+1
 3550=pass
 3560DEFFNequw(word)
 3570?P%=word MOD 256
 3580P%?1=word DIV 256
 3590P%=P%+2
 3600=pass
 3610DEFFNequd(double)
 3620!P%=double
 3630P%=P%+4
 3640=pass
 3650DEFFNequs(string$)
 3660$P%=string$
 3670P%=P%+LEN(string$)
 3680=pass

�: HELP
�7
�=&3C00
(
� save 50
2diff=&8000-�
<address=&70
Fcomvec=&F2
Perrstack=&100
Zstack=&105
dgsinit=&FFC2
ngsread=&FFC5
xosasci=&FFE3
�osword=&FFF1
�osbyte=&FFF4
�oscli=&FFF7
�� pass = 0 � 2 � 2
�P%=�
�
[OPT pass
�BRK
�BRK
�BRK
�JMP service+diff
�OPT �equb(&82)
�%OPT �equb((copyright+diff) � 256)
�BRK
OPT �equs("COLOURED TEXT")
.copyright
BRK
"+OPT �equs("(C) Gordon Horsington 1987")
,BRK
6.service
@PHA
JTXA
TPHA
^TYA
hPHA
rLDA address
|PHA
�LDA address+1
�PHA
�TSX
�LDA stack,X
�
CMP #9
�BNE tryfour
�SEC
�JSR gsinit
�
LDX #0
�JSR gsread
�BCC tryextended
�LDX #(helpmsg+diff) � 256
�LDY #(helpmsg+diff) � 256
JSR printer+diff
BEQ quit

.helploop
&INX
0JSR gsread
:.tryextended
DCMP #�(".")
NBEQ okextended
X
� #&DF
bCMP helptitle+diff,X
lBEQ helploop
vLDA #&FF
�CMP helptitle+diff,X
�BNE quit
�.okextended
�LDX #(helpinfo+diff) � 256
�LDY #(helpinfo+diff) � 256
�JSR printer+diff
�BEQ quit
�.tryfour
�
CMP #4
�BNE quit
�LDX #&FE
�TYA
�PHA
.firstchar
INX
PLA
 TAY
*PHA
4LDA (comvec),Y
>
� #&DF
HCMP #�("X")
RBNE interpret
\INY
f.interpret
pINX
zLDA commtable+diff,X
�
BMI found
�LDA (comvec),Y
�INY
�CMP #�(".")
�BEQ founddot
�
� #&DF
�CMP commtable+diff,X
�BEQ interpret
�.another
�INX
�LDA commtable+diff,X
�BPL another
�CMP #&FF
BNE firstchar
	.exit
PLA
$	.quit
.PLA
8STA address+1
BPLA
LSTA address
VPLA
`TAY
jPLA
tTAX
~PLA
�RTS
�
.founddot
�INX
�LDA commtable+diff,X
�BPL founddot
�
.found
�CMP #&FF
�BEQ exit
�STA address+1
�INX
�LDA commtable+diff,X
�STA address
PLA

SEC
JSR gsinit
JMP (address)
(.commtable
2OPT �equs("BLAWHIT")
<#OPT �equb((blawhit+diff) � 256)
F#OPT �equb((blawhit+diff) � 256)
POPT �equs("REDCYAN")
Z#OPT �equb((redcyan+diff) � 256)
d#OPT �equb((redcyan+diff) � 256)
nOPT �equs("GREEMAG")
x#OPT �equb((greemag+diff) � 256)
�#OPT �equb((greemag+diff) � 256)
�OPT �equs("YELLBLU")
�#OPT �equb((yellblu+diff) � 256)
�#OPT �equb((yellblu+diff) � 256)
�OPT �equs("BLUYELL")
�#OPT �equb((bluyell+diff) � 256)
�#OPT �equb((bluyell+diff) � 256)
�OPT �equs("MAGREEN")
�#OPT �equb((magreen+diff) � 256)
�#OPT �equb((magreen+diff) � 256)
�OPT �equs("CYANRED")
�#OPT �equb((cyanred+diff) � 256)
�#OPT �equb((cyanred+diff) � 256)
OPT �equs("WHIBLAC")
#OPT �equb((whiblac+diff) � 256)
#OPT �equb((whiblac+diff) � 256)
"OPT �equs("MAGENTA")
,#OPT �equb((magenta+diff) � 256)
6#OPT �equb((magenta+diff) � 256)
@OPT �equs("YELLOW")
J"OPT �equb((yellow+diff) � 256)
T"OPT �equb((yellow+diff) � 256)
^OPT �equs("WHITE")
h!OPT �equb((white+diff) � 256)
r!OPT �equb((white+diff) � 256)
|OPT �equs("GREEN")
�!OPT �equb((green+diff) � 256)
�!OPT �equb((green+diff) � 256)
�OPT �equs("BLACK")
�!OPT �equb((black+diff) � 256)
�!OPT �equb((black+diff) � 256)
�OPT �equs("CYAN")
� OPT �equb((cyan+diff) � 256)
� OPT �equb((cyan+diff) � 256)
�OPT �equs("BLUE")
� OPT �equb((blue+diff) � 256)
� OPT �equb((blue+diff) � 256)
�OPT �equs("RED")
�OPT �equb((red+diff) � 256)
OPT �equb((red+diff) � 256)
OPT �equb(&FF)
.helpmsg
&OPT �equb(&0D)
0OPT �equs("COLOURED TEXT")
:OPT �equb(&0D)
DOPT �equw(&2020)
N.helptitle
XOPT �equs("COLOURS")
bOPT �equw(&0DFF)
lBRK
v
.helpinfo
�OPT �equw(&200D)
�OPT �equs("*BLACK")
�OPT �equw(&200D)
�OPT �equs("*RED")
�OPT �equw(&200D)
�OPT �equs("*GREEN")
�OPT �equw(&200D)
�OPT �equs("*YELLOW")
�OPT �equw(&200D)
�OPT �equs("*BLUE")
�OPT �equw(&200D)
�OPT �equs("*MAGENTA")
�OPT �equw(&200D)
OPT �equs("*CYAN")
OPT �equw(&200D)
OPT �equs("*WHITE")
 OPT �equw(&200D)
*OPT �equs("*BLAWHIT")
4OPT �equw(&200D)
>OPT �equs("*REDCYAN")
HOPT �equw(&200D)
ROPT �equs("*GREEMAG")
\OPT �equw(&200D)
fOPT �equs("*YELLBLU")
pOPT �equw(&200D)
zOPT �equs("*BLUYELL")
�OPT �equw(&200D)
�OPT �equs("*MAGREEN")
�OPT �equw(&200D)
�OPT �equs("*CYANRED")
�OPT �equw(&200D)
�OPT �equs("*WHIBLAC")
�OPT �equw(&000D)
�.printer
�STX address
�STY address+1
�LDY #&FF
�.printloop
�INY
	LDA (address),Y
	BEQ endprint
	BMI printloop
	$JSR osasci
	.JMP printloop+diff
	8
.endprint
	BRTS
	L
.black
	V
LDA #0
	`BEQ mode
	j.red
	t
LDA #1
	~BNE mode
	�
.green
	�
LDA #2
	�BNE mode
	�.yellow
	�
LDA #3
	�BNE mode
	�	.blue
	�
LDA #4
	�BNE mode
	�.magenta
	�
LDA #5
	�BNE mode
	.cyan


LDA #6
BNE mode

.white
(
LDA #7
2BNE mode
<.blawhit
F
LDA #8
PBNE mode
Z.redcyan
d
LDA #9
nBNE mode
x.greemag
�LDA #10
�BNE mode
�.yellblu
�LDA #11
�BNE mode
�.bluyell
�LDA #12
�BNE mode
�.magreen
�LDA #13
�BNE mode
�.cyanred
�LDA #14
BNE mode
.whiblac
LDA #15
"	.mode
,PHA
6LDA #&87
@"JSR osbyte \ Check screen mode
J
CPY #7
TBNE mode0to6
^PLA
hLDA #(wrongmode+diff) � 256
rSTA address
|LDA #(wrongmode+diff) � 256
�STA address+1
�LDY #&FF
�.errorloop
�INY
�LDA (address),Y
�STA errstack,Y
�BPL errorloop
�PLA
�STA address+1
�PLA
�STA address
�JMP errstack
�
.mode0to6
LDA colours+diff,Y
PHA
LDA #19
&JSR osasci
0PLA
:JSR osasci
DPLA
NJSR osasci
X
LDA #0
bJSR osasci
lJSR osasci
vJSR osasci
�.pullout
�PLA
�STA address+1
�PLA
�STA address
�PLA
�PLA
�PLA
�
LDA #0
�RTS
�.colours
�OPT �equd(&01070301)
�OPT �equw(&0301)

OPT �equb(&01)

.wrongmode

BRK

 BRK

*OPT �equs("Modes 0-6 only")

4BRK

>OPT �equb(&FF)

H
.lastbyte

R]

\�

f!�'"Save filename = "filename$

p� filename$="" �

zK$save="SAVE "+filename$+" "+�~(�)+" "+�~(lastbyte)+" FFFF8000 FFFF8000"

�X%=save � 256

�Y%=save � 256

�*OPT1,2

�� oscli

�*OPT1,0

��

�ݤequb(byte)

�?P%=byte

�P%=P%+1

�	=pass

�ݤequw(word)

�?P%=word � 256

�P%?1=word � 256
P%=P%+2
	=pass
ݤequd(double)
$!P%=double
.P%=P%+4
8	=pass
Bݤequs(string$)
L$P%=string$
VP%=P%+�(string$)
`	=pass
�
00000000  0d 00 0a 0b f4 3a 20 48  45 4c 50 0d 00 14 06 eb  |.....: HELP.....|
00000010  37 0d 00 1e 0b d3 3d 26  33 43 30 30 0d 00 28 0d  |7.....=&3C00..(.|
00000020  de 20 73 61 76 65 20 35  30 0d 00 32 10 64 69 66  |. save 50..2.dif|
00000030  66 3d 26 38 30 30 30 2d  93 0d 00 3c 0f 61 64 64  |f=&8000-...<.add|
00000040  72 65 73 73 3d 26 37 30  0d 00 46 0e 63 6f 6d 76  |ress=&70..F.comv|
00000050  65 63 3d 26 46 32 0d 00  50 11 65 72 72 73 74 61  |ec=&F2..P.errsta|
00000060  63 6b 3d 26 31 30 30 0d  00 5a 0e 73 74 61 63 6b  |ck=&100..Z.stack|
00000070  3d 26 31 30 35 0d 00 64  10 67 73 69 6e 69 74 3d  |=&105..d.gsinit=|
00000080  26 46 46 43 32 0d 00 6e  10 67 73 72 65 61 64 3d  |&FFC2..n.gsread=|
00000090  26 46 46 43 35 0d 00 78  10 6f 73 61 73 63 69 3d  |&FFC5..x.osasci=|
000000a0  26 46 46 45 33 0d 00 82  10 6f 73 77 6f 72 64 3d  |&FFE3....osword=|
000000b0  26 46 46 46 31 0d 00 8c  10 6f 73 62 79 74 65 3d  |&FFF1....osbyte=|
000000c0  26 46 46 46 34 0d 00 96  0f 6f 73 63 6c 69 3d 26  |&FFF4....oscli=&|
000000d0  46 46 46 37 0d 00 a0 16  e3 20 70 61 73 73 20 3d  |FFF7..... pass =|
000000e0  20 30 20 b8 20 32 20 88  20 32 0d 00 aa 08 50 25  | 0 . 2 . 2....P%|
000000f0  3d 93 0d 00 b4 0d 5b 4f  50 54 20 70 61 73 73 0d  |=.....[OPT pass.|
00000100  00 be 07 42 52 4b 0d 00  c8 07 42 52 4b 0d 00 d2  |...BRK....BRK...|
00000110  07 42 52 4b 0d 00 dc 14  4a 4d 50 20 73 65 72 76  |.BRK....JMP serv|
00000120  69 63 65 2b 64 69 66 66  0d 00 e6 12 4f 50 54 20  |ice+diff....OPT |
00000130  a4 65 71 75 62 28 26 38  32 29 0d 00 f0 25 4f 50  |.equb(&82)...%OP|
00000140  54 20 a4 65 71 75 62 28  28 63 6f 70 79 72 69 67  |T .equb((copyrig|
00000150  68 74 2b 64 69 66 66 29  20 83 20 32 35 36 29 0d  |ht+diff) . 256).|
00000160  00 fa 07 42 52 4b 0d 01  04 1e 4f 50 54 20 a4 65  |...BRK....OPT .e|
00000170  71 75 73 28 22 43 4f 4c  4f 55 52 45 44 20 54 45  |qus("COLOURED TE|
00000180  58 54 22 29 0d 01 0e 0e  2e 63 6f 70 79 72 69 67  |XT").....copyrig|
00000190  68 74 0d 01 18 07 42 52  4b 0d 01 22 2b 4f 50 54  |ht....BRK.."+OPT|
000001a0  20 a4 65 71 75 73 28 22  28 43 29 20 47 6f 72 64  | .equs("(C) Gord|
000001b0  6f 6e 20 48 6f 72 73 69  6e 67 74 6f 6e 20 31 39  |on Horsington 19|
000001c0  38 37 22 29 0d 01 2c 07  42 52 4b 0d 01 36 0c 2e  |87")..,.BRK..6..|
000001d0  73 65 72 76 69 63 65 0d  01 40 07 50 48 41 0d 01  |service..@.PHA..|
000001e0  4a 07 54 58 41 0d 01 54  07 50 48 41 0d 01 5e 07  |J.TXA..T.PHA..^.|
000001f0  54 59 41 0d 01 68 07 50  48 41 0d 01 72 0f 4c 44  |TYA..h.PHA..r.LD|
00000200  41 20 61 64 64 72 65 73  73 0d 01 7c 07 50 48 41  |A address..|.PHA|
00000210  0d 01 86 11 4c 44 41 20  61 64 64 72 65 73 73 2b  |....LDA address+|
00000220  31 0d 01 90 07 50 48 41  0d 01 9a 07 54 53 58 0d  |1....PHA....TSX.|
00000230  01 a4 0f 4c 44 41 20 73  74 61 63 6b 2c 58 0d 01  |...LDA stack,X..|
00000240  ae 0a 43 4d 50 20 23 39  0d 01 b8 0f 42 4e 45 20  |..CMP #9....BNE |
00000250  74 72 79 66 6f 75 72 0d  01 c2 07 53 45 43 0d 01  |tryfour....SEC..|
00000260  cc 0e 4a 53 52 20 67 73  69 6e 69 74 0d 01 d6 0a  |..JSR gsinit....|
00000270  4c 44 58 20 23 30 0d 01  e0 0e 4a 53 52 20 67 73  |LDX #0....JSR gs|
00000280  72 65 61 64 0d 01 ea 13  42 43 43 20 74 72 79 65  |read....BCC trye|
00000290  78 74 65 6e 64 65 64 0d  01 f4 1d 4c 44 58 20 23  |xtended....LDX #|
000002a0  28 68 65 6c 70 6d 73 67  2b 64 69 66 66 29 20 83  |(helpmsg+diff) .|
000002b0  20 32 35 36 0d 01 fe 1d  4c 44 59 20 23 28 68 65  | 256....LDY #(he|
000002c0  6c 70 6d 73 67 2b 64 69  66 66 29 20 81 20 32 35  |lpmsg+diff) . 25|
000002d0  36 0d 02 08 14 4a 53 52  20 70 72 69 6e 74 65 72  |6....JSR printer|
000002e0  2b 64 69 66 66 0d 02 12  0c 42 45 51 20 71 75 69  |+diff....BEQ qui|
000002f0  74 0d 02 1c 0d 2e 68 65  6c 70 6c 6f 6f 70 0d 02  |t.....helploop..|
00000300  26 07 49 4e 58 0d 02 30  0e 4a 53 52 20 67 73 72  |&.INX..0.JSR gsr|
00000310  65 61 64 0d 02 3a 10 2e  74 72 79 65 78 74 65 6e  |ead..:..tryexten|
00000320  64 65 64 0d 02 44 0f 43  4d 50 20 23 97 28 22 2e  |ded..D.CMP #.(".|
00000330  22 29 0d 02 4e 12 42 45  51 20 6f 6b 65 78 74 65  |")..N.BEQ okexte|
00000340  6e 64 65 64 0d 02 58 0a  80 20 23 26 44 46 0d 02  |nded..X.. #&DF..|
00000350  62 18 43 4d 50 20 68 65  6c 70 74 69 74 6c 65 2b  |b.CMP helptitle+|
00000360  64 69 66 66 2c 58 0d 02  6c 10 42 45 51 20 68 65  |diff,X..l.BEQ he|
00000370  6c 70 6c 6f 6f 70 0d 02  76 0c 4c 44 41 20 23 26  |lploop..v.LDA #&|
00000380  46 46 0d 02 80 18 43 4d  50 20 68 65 6c 70 74 69  |FF....CMP helpti|
00000390  74 6c 65 2b 64 69 66 66  2c 58 0d 02 8a 0c 42 4e  |tle+diff,X....BN|
000003a0  45 20 71 75 69 74 0d 02  94 0f 2e 6f 6b 65 78 74  |E quit.....okext|
000003b0  65 6e 64 65 64 0d 02 9e  1e 4c 44 58 20 23 28 68  |ended....LDX #(h|
000003c0  65 6c 70 69 6e 66 6f 2b  64 69 66 66 29 20 83 20  |elpinfo+diff) . |
000003d0  32 35 36 0d 02 a8 1e 4c  44 59 20 23 28 68 65 6c  |256....LDY #(hel|
000003e0  70 69 6e 66 6f 2b 64 69  66 66 29 20 81 20 32 35  |pinfo+diff) . 25|
000003f0  36 0d 02 b2 14 4a 53 52  20 70 72 69 6e 74 65 72  |6....JSR printer|
00000400  2b 64 69 66 66 0d 02 bc  0c 42 45 51 20 71 75 69  |+diff....BEQ qui|
00000410  74 0d 02 c6 0c 2e 74 72  79 66 6f 75 72 0d 02 d0  |t.....tryfour...|
00000420  0a 43 4d 50 20 23 34 0d  02 da 0c 42 4e 45 20 71  |.CMP #4....BNE q|
00000430  75 69 74 0d 02 e4 0c 4c  44 58 20 23 26 46 45 0d  |uit....LDX #&FE.|
00000440  02 ee 07 54 59 41 0d 02  f8 07 50 48 41 0d 03 02  |...TYA....PHA...|
00000450  0e 2e 66 69 72 73 74 63  68 61 72 0d 03 0c 07 49  |..firstchar....I|
00000460  4e 58 0d 03 16 07 50 4c  41 0d 03 20 07 54 41 59  |NX....PLA.. .TAY|
00000470  0d 03 2a 07 50 48 41 0d  03 34 12 4c 44 41 20 28  |..*.PHA..4.LDA (|
00000480  63 6f 6d 76 65 63 29 2c  59 0d 03 3e 0a 80 20 23  |comvec),Y..>.. #|
00000490  26 44 46 0d 03 48 0f 43  4d 50 20 23 97 28 22 58  |&DF..H.CMP #.("X|
000004a0  22 29 0d 03 52 11 42 4e  45 20 69 6e 74 65 72 70  |")..R.BNE interp|
000004b0  72 65 74 0d 03 5c 07 49  4e 59 0d 03 66 0e 2e 69  |ret..\.INY..f..i|
000004c0  6e 74 65 72 70 72 65 74  0d 03 70 07 49 4e 58 0d  |nterpret..p.INX.|
000004d0  03 7a 18 4c 44 41 20 63  6f 6d 6d 74 61 62 6c 65  |.z.LDA commtable|
000004e0  2b 64 69 66 66 2c 58 0d  03 84 0d 42 4d 49 20 66  |+diff,X....BMI f|
000004f0  6f 75 6e 64 0d 03 8e 12  4c 44 41 20 28 63 6f 6d  |ound....LDA (com|
00000500  76 65 63 29 2c 59 0d 03  98 07 49 4e 59 0d 03 a2  |vec),Y....INY...|
00000510  0f 43 4d 50 20 23 97 28  22 2e 22 29 0d 03 ac 10  |.CMP #.(".")....|
00000520  42 45 51 20 66 6f 75 6e  64 64 6f 74 0d 03 b6 0a  |BEQ founddot....|
00000530  80 20 23 26 44 46 0d 03  c0 18 43 4d 50 20 63 6f  |. #&DF....CMP co|
00000540  6d 6d 74 61 62 6c 65 2b  64 69 66 66 2c 58 0d 03  |mmtable+diff,X..|
00000550  ca 11 42 45 51 20 69 6e  74 65 72 70 72 65 74 0d  |..BEQ interpret.|
00000560  03 d4 0c 2e 61 6e 6f 74  68 65 72 0d 03 de 07 49  |....another....I|
00000570  4e 58 0d 03 e8 18 4c 44  41 20 63 6f 6d 6d 74 61  |NX....LDA commta|
00000580  62 6c 65 2b 64 69 66 66  2c 58 0d 03 f2 0f 42 50  |ble+diff,X....BP|
00000590  4c 20 61 6e 6f 74 68 65  72 0d 03 fc 0c 43 4d 50  |L another....CMP|
000005a0  20 23 26 46 46 0d 04 06  11 42 4e 45 20 66 69 72  | #&FF....BNE fir|
000005b0  73 74 63 68 61 72 0d 04  10 09 2e 65 78 69 74 0d  |stchar.....exit.|
000005c0  04 1a 07 50 4c 41 0d 04  24 09 2e 71 75 69 74 0d  |...PLA..$..quit.|
000005d0  04 2e 07 50 4c 41 0d 04  38 11 53 54 41 20 61 64  |...PLA..8.STA ad|
000005e0  64 72 65 73 73 2b 31 0d  04 42 07 50 4c 41 0d 04  |dress+1..B.PLA..|
000005f0  4c 0f 53 54 41 20 61 64  64 72 65 73 73 0d 04 56  |L.STA address..V|
00000600  07 50 4c 41 0d 04 60 07  54 41 59 0d 04 6a 07 50  |.PLA..`.TAY..j.P|
00000610  4c 41 0d 04 74 07 54 41  58 0d 04 7e 07 50 4c 41  |LA..t.TAX..~.PLA|
00000620  0d 04 88 07 52 54 53 0d  04 92 0d 2e 66 6f 75 6e  |....RTS.....foun|
00000630  64 64 6f 74 0d 04 9c 07  49 4e 58 0d 04 a6 18 4c  |ddot....INX....L|
00000640  44 41 20 63 6f 6d 6d 74  61 62 6c 65 2b 64 69 66  |DA commtable+dif|
00000650  66 2c 58 0d 04 b0 10 42  50 4c 20 66 6f 75 6e 64  |f,X....BPL found|
00000660  64 6f 74 0d 04 ba 0a 2e  66 6f 75 6e 64 0d 04 c4  |dot.....found...|
00000670  0c 43 4d 50 20 23 26 46  46 0d 04 ce 0c 42 45 51  |.CMP #&FF....BEQ|
00000680  20 65 78 69 74 0d 04 d8  11 53 54 41 20 61 64 64  | exit....STA add|
00000690  72 65 73 73 2b 31 0d 04  e2 07 49 4e 58 0d 04 ec  |ress+1....INX...|
000006a0  18 4c 44 41 20 63 6f 6d  6d 74 61 62 6c 65 2b 64  |.LDA commtable+d|
000006b0  69 66 66 2c 58 0d 04 f6  0f 53 54 41 20 61 64 64  |iff,X....STA add|
000006c0  72 65 73 73 0d 05 00 07  50 4c 41 0d 05 0a 07 53  |ress....PLA....S|
000006d0  45 43 0d 05 14 0e 4a 53  52 20 67 73 69 6e 69 74  |EC....JSR gsinit|
000006e0  0d 05 1e 11 4a 4d 50 20  28 61 64 64 72 65 73 73  |....JMP (address|
000006f0  29 0d 05 28 0e 2e 63 6f  6d 6d 74 61 62 6c 65 0d  |)..(..commtable.|
00000700  05 32 18 4f 50 54 20 a4  65 71 75 73 28 22 42 4c  |.2.OPT .equs("BL|
00000710  41 57 48 49 54 22 29 0d  05 3c 23 4f 50 54 20 a4  |AWHIT")..<#OPT .|
00000720  65 71 75 62 28 28 62 6c  61 77 68 69 74 2b 64 69  |equb((blawhit+di|
00000730  66 66 29 20 81 20 32 35  36 29 0d 05 46 23 4f 50  |ff) . 256)..F#OP|
00000740  54 20 a4 65 71 75 62 28  28 62 6c 61 77 68 69 74  |T .equb((blawhit|
00000750  2b 64 69 66 66 29 20 83  20 32 35 36 29 0d 05 50  |+diff) . 256)..P|
00000760  18 4f 50 54 20 a4 65 71  75 73 28 22 52 45 44 43  |.OPT .equs("REDC|
00000770  59 41 4e 22 29 0d 05 5a  23 4f 50 54 20 a4 65 71  |YAN")..Z#OPT .eq|
00000780  75 62 28 28 72 65 64 63  79 61 6e 2b 64 69 66 66  |ub((redcyan+diff|
00000790  29 20 81 20 32 35 36 29  0d 05 64 23 4f 50 54 20  |) . 256)..d#OPT |
000007a0  a4 65 71 75 62 28 28 72  65 64 63 79 61 6e 2b 64  |.equb((redcyan+d|
000007b0  69 66 66 29 20 83 20 32  35 36 29 0d 05 6e 18 4f  |iff) . 256)..n.O|
000007c0  50 54 20 a4 65 71 75 73  28 22 47 52 45 45 4d 41  |PT .equs("GREEMA|
000007d0  47 22 29 0d 05 78 23 4f  50 54 20 a4 65 71 75 62  |G")..x#OPT .equb|
000007e0  28 28 67 72 65 65 6d 61  67 2b 64 69 66 66 29 20  |((greemag+diff) |
000007f0  81 20 32 35 36 29 0d 05  82 23 4f 50 54 20 a4 65  |. 256)...#OPT .e|
00000800  71 75 62 28 28 67 72 65  65 6d 61 67 2b 64 69 66  |qub((greemag+dif|
00000810  66 29 20 83 20 32 35 36  29 0d 05 8c 18 4f 50 54  |f) . 256)....OPT|
00000820  20 a4 65 71 75 73 28 22  59 45 4c 4c 42 4c 55 22  | .equs("YELLBLU"|
00000830  29 0d 05 96 23 4f 50 54  20 a4 65 71 75 62 28 28  |)...#OPT .equb((|
00000840  79 65 6c 6c 62 6c 75 2b  64 69 66 66 29 20 81 20  |yellblu+diff) . |
00000850  32 35 36 29 0d 05 a0 23  4f 50 54 20 a4 65 71 75  |256)...#OPT .equ|
00000860  62 28 28 79 65 6c 6c 62  6c 75 2b 64 69 66 66 29  |b((yellblu+diff)|
00000870  20 83 20 32 35 36 29 0d  05 aa 18 4f 50 54 20 a4  | . 256)....OPT .|
00000880  65 71 75 73 28 22 42 4c  55 59 45 4c 4c 22 29 0d  |equs("BLUYELL").|
00000890  05 b4 23 4f 50 54 20 a4  65 71 75 62 28 28 62 6c  |..#OPT .equb((bl|
000008a0  75 79 65 6c 6c 2b 64 69  66 66 29 20 81 20 32 35  |uyell+diff) . 25|
000008b0  36 29 0d 05 be 23 4f 50  54 20 a4 65 71 75 62 28  |6)...#OPT .equb(|
000008c0  28 62 6c 75 79 65 6c 6c  2b 64 69 66 66 29 20 83  |(bluyell+diff) .|
000008d0  20 32 35 36 29 0d 05 c8  18 4f 50 54 20 a4 65 71  | 256)....OPT .eq|
000008e0  75 73 28 22 4d 41 47 52  45 45 4e 22 29 0d 05 d2  |us("MAGREEN")...|
000008f0  23 4f 50 54 20 a4 65 71  75 62 28 28 6d 61 67 72  |#OPT .equb((magr|
00000900  65 65 6e 2b 64 69 66 66  29 20 81 20 32 35 36 29  |een+diff) . 256)|
00000910  0d 05 dc 23 4f 50 54 20  a4 65 71 75 62 28 28 6d  |...#OPT .equb((m|
00000920  61 67 72 65 65 6e 2b 64  69 66 66 29 20 83 20 32  |agreen+diff) . 2|
00000930  35 36 29 0d 05 e6 18 4f  50 54 20 a4 65 71 75 73  |56)....OPT .equs|
00000940  28 22 43 59 41 4e 52 45  44 22 29 0d 05 f0 23 4f  |("CYANRED")...#O|
00000950  50 54 20 a4 65 71 75 62  28 28 63 79 61 6e 72 65  |PT .equb((cyanre|
00000960  64 2b 64 69 66 66 29 20  81 20 32 35 36 29 0d 05  |d+diff) . 256)..|
00000970  fa 23 4f 50 54 20 a4 65  71 75 62 28 28 63 79 61  |.#OPT .equb((cya|
00000980  6e 72 65 64 2b 64 69 66  66 29 20 83 20 32 35 36  |nred+diff) . 256|
00000990  29 0d 06 04 18 4f 50 54  20 a4 65 71 75 73 28 22  |)....OPT .equs("|
000009a0  57 48 49 42 4c 41 43 22  29 0d 06 0e 23 4f 50 54  |WHIBLAC")...#OPT|
000009b0  20 a4 65 71 75 62 28 28  77 68 69 62 6c 61 63 2b  | .equb((whiblac+|
000009c0  64 69 66 66 29 20 81 20  32 35 36 29 0d 06 18 23  |diff) . 256)...#|
000009d0  4f 50 54 20 a4 65 71 75  62 28 28 77 68 69 62 6c  |OPT .equb((whibl|
000009e0  61 63 2b 64 69 66 66 29  20 83 20 32 35 36 29 0d  |ac+diff) . 256).|
000009f0  06 22 18 4f 50 54 20 a4  65 71 75 73 28 22 4d 41  |.".OPT .equs("MA|
00000a00  47 45 4e 54 41 22 29 0d  06 2c 23 4f 50 54 20 a4  |GENTA")..,#OPT .|
00000a10  65 71 75 62 28 28 6d 61  67 65 6e 74 61 2b 64 69  |equb((magenta+di|
00000a20  66 66 29 20 81 20 32 35  36 29 0d 06 36 23 4f 50  |ff) . 256)..6#OP|
00000a30  54 20 a4 65 71 75 62 28  28 6d 61 67 65 6e 74 61  |T .equb((magenta|
00000a40  2b 64 69 66 66 29 20 83  20 32 35 36 29 0d 06 40  |+diff) . 256)..@|
00000a50  17 4f 50 54 20 a4 65 71  75 73 28 22 59 45 4c 4c  |.OPT .equs("YELL|
00000a60  4f 57 22 29 0d 06 4a 22  4f 50 54 20 a4 65 71 75  |OW")..J"OPT .equ|
00000a70  62 28 28 79 65 6c 6c 6f  77 2b 64 69 66 66 29 20  |b((yellow+diff) |
00000a80  81 20 32 35 36 29 0d 06  54 22 4f 50 54 20 a4 65  |. 256)..T"OPT .e|
00000a90  71 75 62 28 28 79 65 6c  6c 6f 77 2b 64 69 66 66  |qub((yellow+diff|
00000aa0  29 20 83 20 32 35 36 29  0d 06 5e 16 4f 50 54 20  |) . 256)..^.OPT |
00000ab0  a4 65 71 75 73 28 22 57  48 49 54 45 22 29 0d 06  |.equs("WHITE")..|
00000ac0  68 21 4f 50 54 20 a4 65  71 75 62 28 28 77 68 69  |h!OPT .equb((whi|
00000ad0  74 65 2b 64 69 66 66 29  20 81 20 32 35 36 29 0d  |te+diff) . 256).|
00000ae0  06 72 21 4f 50 54 20 a4  65 71 75 62 28 28 77 68  |.r!OPT .equb((wh|
00000af0  69 74 65 2b 64 69 66 66  29 20 83 20 32 35 36 29  |ite+diff) . 256)|
00000b00  0d 06 7c 16 4f 50 54 20  a4 65 71 75 73 28 22 47  |..|.OPT .equs("G|
00000b10  52 45 45 4e 22 29 0d 06  86 21 4f 50 54 20 a4 65  |REEN")...!OPT .e|
00000b20  71 75 62 28 28 67 72 65  65 6e 2b 64 69 66 66 29  |qub((green+diff)|
00000b30  20 81 20 32 35 36 29 0d  06 90 21 4f 50 54 20 a4  | . 256)...!OPT .|
00000b40  65 71 75 62 28 28 67 72  65 65 6e 2b 64 69 66 66  |equb((green+diff|
00000b50  29 20 83 20 32 35 36 29  0d 06 9a 16 4f 50 54 20  |) . 256)....OPT |
00000b60  a4 65 71 75 73 28 22 42  4c 41 43 4b 22 29 0d 06  |.equs("BLACK")..|
00000b70  a4 21 4f 50 54 20 a4 65  71 75 62 28 28 62 6c 61  |.!OPT .equb((bla|
00000b80  63 6b 2b 64 69 66 66 29  20 81 20 32 35 36 29 0d  |ck+diff) . 256).|
00000b90  06 ae 21 4f 50 54 20 a4  65 71 75 62 28 28 62 6c  |..!OPT .equb((bl|
00000ba0  61 63 6b 2b 64 69 66 66  29 20 83 20 32 35 36 29  |ack+diff) . 256)|
00000bb0  0d 06 b8 15 4f 50 54 20  a4 65 71 75 73 28 22 43  |....OPT .equs("C|
00000bc0  59 41 4e 22 29 0d 06 c2  20 4f 50 54 20 a4 65 71  |YAN")... OPT .eq|
00000bd0  75 62 28 28 63 79 61 6e  2b 64 69 66 66 29 20 81  |ub((cyan+diff) .|
00000be0  20 32 35 36 29 0d 06 cc  20 4f 50 54 20 a4 65 71  | 256)... OPT .eq|
00000bf0  75 62 28 28 63 79 61 6e  2b 64 69 66 66 29 20 83  |ub((cyan+diff) .|
00000c00  20 32 35 36 29 0d 06 d6  15 4f 50 54 20 a4 65 71  | 256)....OPT .eq|
00000c10  75 73 28 22 42 4c 55 45  22 29 0d 06 e0 20 4f 50  |us("BLUE")... OP|
00000c20  54 20 a4 65 71 75 62 28  28 62 6c 75 65 2b 64 69  |T .equb((blue+di|
00000c30  66 66 29 20 81 20 32 35  36 29 0d 06 ea 20 4f 50  |ff) . 256)... OP|
00000c40  54 20 a4 65 71 75 62 28  28 62 6c 75 65 2b 64 69  |T .equb((blue+di|
00000c50  66 66 29 20 83 20 32 35  36 29 0d 06 f4 14 4f 50  |ff) . 256)....OP|
00000c60  54 20 a4 65 71 75 73 28  22 52 45 44 22 29 0d 06  |T .equs("RED")..|
00000c70  fe 1f 4f 50 54 20 a4 65  71 75 62 28 28 72 65 64  |..OPT .equb((red|
00000c80  2b 64 69 66 66 29 20 81  20 32 35 36 29 0d 07 08  |+diff) . 256)...|
00000c90  1f 4f 50 54 20 a4 65 71  75 62 28 28 72 65 64 2b  |.OPT .equb((red+|
00000ca0  64 69 66 66 29 20 83 20  32 35 36 29 0d 07 12 12  |diff) . 256)....|
00000cb0  4f 50 54 20 a4 65 71 75  62 28 26 46 46 29 0d 07  |OPT .equb(&FF)..|
00000cc0  1c 0c 2e 68 65 6c 70 6d  73 67 0d 07 26 12 4f 50  |...helpmsg..&.OP|
00000cd0  54 20 a4 65 71 75 62 28  26 30 44 29 0d 07 30 1e  |T .equb(&0D)..0.|
00000ce0  4f 50 54 20 a4 65 71 75  73 28 22 43 4f 4c 4f 55  |OPT .equs("COLOU|
00000cf0  52 45 44 20 54 45 58 54  22 29 0d 07 3a 12 4f 50  |RED TEXT")..:.OP|
00000d00  54 20 a4 65 71 75 62 28  26 30 44 29 0d 07 44 14  |T .equb(&0D)..D.|
00000d10  4f 50 54 20 a4 65 71 75  77 28 26 32 30 32 30 29  |OPT .equw(&2020)|
00000d20  0d 07 4e 0e 2e 68 65 6c  70 74 69 74 6c 65 0d 07  |..N..helptitle..|
00000d30  58 18 4f 50 54 20 a4 65  71 75 73 28 22 43 4f 4c  |X.OPT .equs("COL|
00000d40  4f 55 52 53 22 29 0d 07  62 14 4f 50 54 20 a4 65  |OURS")..b.OPT .e|
00000d50  71 75 77 28 26 30 44 46  46 29 0d 07 6c 07 42 52  |quw(&0DFF)..l.BR|
00000d60  4b 0d 07 76 0d 2e 68 65  6c 70 69 6e 66 6f 0d 07  |K..v..helpinfo..|
00000d70  80 14 4f 50 54 20 a4 65  71 75 77 28 26 32 30 30  |..OPT .equw(&200|
00000d80  44 29 0d 07 8a 17 4f 50  54 20 a4 65 71 75 73 28  |D)....OPT .equs(|
00000d90  22 2a 42 4c 41 43 4b 22  29 0d 07 94 14 4f 50 54  |"*BLACK")....OPT|
00000da0  20 a4 65 71 75 77 28 26  32 30 30 44 29 0d 07 9e  | .equw(&200D)...|
00000db0  15 4f 50 54 20 a4 65 71  75 73 28 22 2a 52 45 44  |.OPT .equs("*RED|
00000dc0  22 29 0d 07 a8 14 4f 50  54 20 a4 65 71 75 77 28  |")....OPT .equw(|
00000dd0  26 32 30 30 44 29 0d 07  b2 17 4f 50 54 20 a4 65  |&200D)....OPT .e|
00000de0  71 75 73 28 22 2a 47 52  45 45 4e 22 29 0d 07 bc  |qus("*GREEN")...|
00000df0  14 4f 50 54 20 a4 65 71  75 77 28 26 32 30 30 44  |.OPT .equw(&200D|
00000e00  29 0d 07 c6 18 4f 50 54  20 a4 65 71 75 73 28 22  |)....OPT .equs("|
00000e10  2a 59 45 4c 4c 4f 57 22  29 0d 07 d0 14 4f 50 54  |*YELLOW")....OPT|
00000e20  20 a4 65 71 75 77 28 26  32 30 30 44 29 0d 07 da  | .equw(&200D)...|
00000e30  16 4f 50 54 20 a4 65 71  75 73 28 22 2a 42 4c 55  |.OPT .equs("*BLU|
00000e40  45 22 29 0d 07 e4 14 4f  50 54 20 a4 65 71 75 77  |E")....OPT .equw|
00000e50  28 26 32 30 30 44 29 0d  07 ee 19 4f 50 54 20 a4  |(&200D)....OPT .|
00000e60  65 71 75 73 28 22 2a 4d  41 47 45 4e 54 41 22 29  |equs("*MAGENTA")|
00000e70  0d 07 f8 14 4f 50 54 20  a4 65 71 75 77 28 26 32  |....OPT .equw(&2|
00000e80  30 30 44 29 0d 08 02 16  4f 50 54 20 a4 65 71 75  |00D)....OPT .equ|
00000e90  73 28 22 2a 43 59 41 4e  22 29 0d 08 0c 14 4f 50  |s("*CYAN")....OP|
00000ea0  54 20 a4 65 71 75 77 28  26 32 30 30 44 29 0d 08  |T .equw(&200D)..|
00000eb0  16 17 4f 50 54 20 a4 65  71 75 73 28 22 2a 57 48  |..OPT .equs("*WH|
00000ec0  49 54 45 22 29 0d 08 20  14 4f 50 54 20 a4 65 71  |ITE").. .OPT .eq|
00000ed0  75 77 28 26 32 30 30 44  29 0d 08 2a 19 4f 50 54  |uw(&200D)..*.OPT|
00000ee0  20 a4 65 71 75 73 28 22  2a 42 4c 41 57 48 49 54  | .equs("*BLAWHIT|
00000ef0  22 29 0d 08 34 14 4f 50  54 20 a4 65 71 75 77 28  |")..4.OPT .equw(|
00000f00  26 32 30 30 44 29 0d 08  3e 19 4f 50 54 20 a4 65  |&200D)..>.OPT .e|
00000f10  71 75 73 28 22 2a 52 45  44 43 59 41 4e 22 29 0d  |qus("*REDCYAN").|
00000f20  08 48 14 4f 50 54 20 a4  65 71 75 77 28 26 32 30  |.H.OPT .equw(&20|
00000f30  30 44 29 0d 08 52 19 4f  50 54 20 a4 65 71 75 73  |0D)..R.OPT .equs|
00000f40  28 22 2a 47 52 45 45 4d  41 47 22 29 0d 08 5c 14  |("*GREEMAG")..\.|
00000f50  4f 50 54 20 a4 65 71 75  77 28 26 32 30 30 44 29  |OPT .equw(&200D)|
00000f60  0d 08 66 19 4f 50 54 20  a4 65 71 75 73 28 22 2a  |..f.OPT .equs("*|
00000f70  59 45 4c 4c 42 4c 55 22  29 0d 08 70 14 4f 50 54  |YELLBLU")..p.OPT|
00000f80  20 a4 65 71 75 77 28 26  32 30 30 44 29 0d 08 7a  | .equw(&200D)..z|
00000f90  19 4f 50 54 20 a4 65 71  75 73 28 22 2a 42 4c 55  |.OPT .equs("*BLU|
00000fa0  59 45 4c 4c 22 29 0d 08  84 14 4f 50 54 20 a4 65  |YELL")....OPT .e|
00000fb0  71 75 77 28 26 32 30 30  44 29 0d 08 8e 19 4f 50  |quw(&200D)....OP|
00000fc0  54 20 a4 65 71 75 73 28  22 2a 4d 41 47 52 45 45  |T .equs("*MAGREE|
00000fd0  4e 22 29 0d 08 98 14 4f  50 54 20 a4 65 71 75 77  |N")....OPT .equw|
00000fe0  28 26 32 30 30 44 29 0d  08 a2 19 4f 50 54 20 a4  |(&200D)....OPT .|
00000ff0  65 71 75 73 28 22 2a 43  59 41 4e 52 45 44 22 29  |equs("*CYANRED")|
00001000  0d 08 ac 14 4f 50 54 20  a4 65 71 75 77 28 26 32  |....OPT .equw(&2|
00001010  30 30 44 29 0d 08 b6 19  4f 50 54 20 a4 65 71 75  |00D)....OPT .equ|
00001020  73 28 22 2a 57 48 49 42  4c 41 43 22 29 0d 08 c0  |s("*WHIBLAC")...|
00001030  14 4f 50 54 20 a4 65 71  75 77 28 26 30 30 30 44  |.OPT .equw(&000D|
00001040  29 0d 08 ca 0c 2e 70 72  69 6e 74 65 72 0d 08 d4  |).....printer...|
00001050  0f 53 54 58 20 61 64 64  72 65 73 73 0d 08 de 11  |.STX address....|
00001060  53 54 59 20 61 64 64 72  65 73 73 2b 31 0d 08 e8  |STY address+1...|
00001070  0c 4c 44 59 20 23 26 46  46 0d 08 f2 0e 2e 70 72  |.LDY #&FF.....pr|
00001080  69 6e 74 6c 6f 6f 70 0d  08 fc 07 49 4e 59 0d 09  |intloop....INY..|
00001090  06 13 4c 44 41 20 28 61  64 64 72 65 73 73 29 2c  |..LDA (address),|
000010a0  59 0d 09 10 10 42 45 51  20 65 6e 64 70 72 69 6e  |Y....BEQ endprin|
000010b0  74 0d 09 1a 11 42 4d 49  20 70 72 69 6e 74 6c 6f  |t....BMI printlo|
000010c0  6f 70 0d 09 24 0e 4a 53  52 20 6f 73 61 73 63 69  |op..$.JSR osasci|
000010d0  0d 09 2e 16 4a 4d 50 20  70 72 69 6e 74 6c 6f 6f  |....JMP printloo|
000010e0  70 2b 64 69 66 66 0d 09  38 0d 2e 65 6e 64 70 72  |p+diff..8..endpr|
000010f0  69 6e 74 0d 09 42 07 52  54 53 0d 09 4c 0a 2e 62  |int..B.RTS..L..b|
00001100  6c 61 63 6b 0d 09 56 0a  4c 44 41 20 23 30 0d 09  |lack..V.LDA #0..|
00001110  60 0c 42 45 51 20 6d 6f  64 65 0d 09 6a 08 2e 72  |`.BEQ mode..j..r|
00001120  65 64 0d 09 74 0a 4c 44  41 20 23 31 0d 09 7e 0c  |ed..t.LDA #1..~.|
00001130  42 4e 45 20 6d 6f 64 65  0d 09 88 0a 2e 67 72 65  |BNE mode.....gre|
00001140  65 6e 0d 09 92 0a 4c 44  41 20 23 32 0d 09 9c 0c  |en....LDA #2....|
00001150  42 4e 45 20 6d 6f 64 65  0d 09 a6 0b 2e 79 65 6c  |BNE mode.....yel|
00001160  6c 6f 77 0d 09 b0 0a 4c  44 41 20 23 33 0d 09 ba  |low....LDA #3...|
00001170  0c 42 4e 45 20 6d 6f 64  65 0d 09 c4 09 2e 62 6c  |.BNE mode.....bl|
00001180  75 65 0d 09 ce 0a 4c 44  41 20 23 34 0d 09 d8 0c  |ue....LDA #4....|
00001190  42 4e 45 20 6d 6f 64 65  0d 09 e2 0c 2e 6d 61 67  |BNE mode.....mag|
000011a0  65 6e 74 61 0d 09 ec 0a  4c 44 41 20 23 35 0d 09  |enta....LDA #5..|
000011b0  f6 0c 42 4e 45 20 6d 6f  64 65 0d 0a 00 09 2e 63  |..BNE mode.....c|
000011c0  79 61 6e 0d 0a 0a 0a 4c  44 41 20 23 36 0d 0a 14  |yan....LDA #6...|
000011d0  0c 42 4e 45 20 6d 6f 64  65 0d 0a 1e 0a 2e 77 68  |.BNE mode.....wh|
000011e0  69 74 65 0d 0a 28 0a 4c  44 41 20 23 37 0d 0a 32  |ite..(.LDA #7..2|
000011f0  0c 42 4e 45 20 6d 6f 64  65 0d 0a 3c 0c 2e 62 6c  |.BNE mode..<..bl|
00001200  61 77 68 69 74 0d 0a 46  0a 4c 44 41 20 23 38 0d  |awhit..F.LDA #8.|
00001210  0a 50 0c 42 4e 45 20 6d  6f 64 65 0d 0a 5a 0c 2e  |.P.BNE mode..Z..|
00001220  72 65 64 63 79 61 6e 0d  0a 64 0a 4c 44 41 20 23  |redcyan..d.LDA #|
00001230  39 0d 0a 6e 0c 42 4e 45  20 6d 6f 64 65 0d 0a 78  |9..n.BNE mode..x|
00001240  0c 2e 67 72 65 65 6d 61  67 0d 0a 82 0b 4c 44 41  |..greemag....LDA|
00001250  20 23 31 30 0d 0a 8c 0c  42 4e 45 20 6d 6f 64 65  | #10....BNE mode|
00001260  0d 0a 96 0c 2e 79 65 6c  6c 62 6c 75 0d 0a a0 0b  |.....yellblu....|
00001270  4c 44 41 20 23 31 31 0d  0a aa 0c 42 4e 45 20 6d  |LDA #11....BNE m|
00001280  6f 64 65 0d 0a b4 0c 2e  62 6c 75 79 65 6c 6c 0d  |ode.....bluyell.|
00001290  0a be 0b 4c 44 41 20 23  31 32 0d 0a c8 0c 42 4e  |...LDA #12....BN|
000012a0  45 20 6d 6f 64 65 0d 0a  d2 0c 2e 6d 61 67 72 65  |E mode.....magre|
000012b0  65 6e 0d 0a dc 0b 4c 44  41 20 23 31 33 0d 0a e6  |en....LDA #13...|
000012c0  0c 42 4e 45 20 6d 6f 64  65 0d 0a f0 0c 2e 63 79  |.BNE mode.....cy|
000012d0  61 6e 72 65 64 0d 0a fa  0b 4c 44 41 20 23 31 34  |anred....LDA #14|
000012e0  0d 0b 04 0c 42 4e 45 20  6d 6f 64 65 0d 0b 0e 0c  |....BNE mode....|
000012f0  2e 77 68 69 62 6c 61 63  0d 0b 18 0b 4c 44 41 20  |.whiblac....LDA |
00001300  23 31 35 0d 0b 22 09 2e  6d 6f 64 65 0d 0b 2c 07  |#15.."..mode..,.|
00001310  50 48 41 0d 0b 36 0c 4c  44 41 20 23 26 38 37 0d  |PHA..6.LDA #&87.|
00001320  0b 40 22 4a 53 52 20 6f  73 62 79 74 65 20 5c 20  |.@"JSR osbyte \ |
00001330  43 68 65 63 6b 20 73 63  72 65 65 6e 20 6d 6f 64  |Check screen mod|
00001340  65 0d 0b 4a 0a 43 50 59  20 23 37 0d 0b 54 10 42  |e..J.CPY #7..T.B|
00001350  4e 45 20 6d 6f 64 65 30  74 6f 36 0d 0b 5e 07 50  |NE mode0to6..^.P|
00001360  4c 41 0d 0b 68 1f 4c 44  41 20 23 28 77 72 6f 6e  |LA..h.LDA #(wron|
00001370  67 6d 6f 64 65 2b 64 69  66 66 29 20 83 20 32 35  |gmode+diff) . 25|
00001380  36 0d 0b 72 0f 53 54 41  20 61 64 64 72 65 73 73  |6..r.STA address|
00001390  0d 0b 7c 1f 4c 44 41 20  23 28 77 72 6f 6e 67 6d  |..|.LDA #(wrongm|
000013a0  6f 64 65 2b 64 69 66 66  29 20 81 20 32 35 36 0d  |ode+diff) . 256.|
000013b0  0b 86 11 53 54 41 20 61  64 64 72 65 73 73 2b 31  |...STA address+1|
000013c0  0d 0b 90 0c 4c 44 59 20  23 26 46 46 0d 0b 9a 0e  |....LDY #&FF....|
000013d0  2e 65 72 72 6f 72 6c 6f  6f 70 0d 0b a4 07 49 4e  |.errorloop....IN|
000013e0  59 0d 0b ae 13 4c 44 41  20 28 61 64 64 72 65 73  |Y....LDA (addres|
000013f0  73 29 2c 59 0d 0b b8 12  53 54 41 20 65 72 72 73  |s),Y....STA errs|
00001400  74 61 63 6b 2c 59 0d 0b  c2 11 42 50 4c 20 65 72  |tack,Y....BPL er|
00001410  72 6f 72 6c 6f 6f 70 0d  0b cc 07 50 4c 41 0d 0b  |rorloop....PLA..|
00001420  d6 11 53 54 41 20 61 64  64 72 65 73 73 2b 31 0d  |..STA address+1.|
00001430  0b e0 07 50 4c 41 0d 0b  ea 0f 53 54 41 20 61 64  |...PLA....STA ad|
00001440  64 72 65 73 73 0d 0b f4  10 4a 4d 50 20 65 72 72  |dress....JMP err|
00001450  73 74 61 63 6b 0d 0b fe  0d 2e 6d 6f 64 65 30 74  |stack.....mode0t|
00001460  6f 36 0d 0c 08 16 4c 44  41 20 63 6f 6c 6f 75 72  |o6....LDA colour|
00001470  73 2b 64 69 66 66 2c 59  0d 0c 12 07 50 48 41 0d  |s+diff,Y....PHA.|
00001480  0c 1c 0b 4c 44 41 20 23  31 39 0d 0c 26 0e 4a 53  |...LDA #19..&.JS|
00001490  52 20 6f 73 61 73 63 69  0d 0c 30 07 50 4c 41 0d  |R osasci..0.PLA.|
000014a0  0c 3a 0e 4a 53 52 20 6f  73 61 73 63 69 0d 0c 44  |.:.JSR osasci..D|
000014b0  07 50 4c 41 0d 0c 4e 0e  4a 53 52 20 6f 73 61 73  |.PLA..N.JSR osas|
000014c0  63 69 0d 0c 58 0a 4c 44  41 20 23 30 0d 0c 62 0e  |ci..X.LDA #0..b.|
000014d0  4a 53 52 20 6f 73 61 73  63 69 0d 0c 6c 0e 4a 53  |JSR osasci..l.JS|
000014e0  52 20 6f 73 61 73 63 69  0d 0c 76 0e 4a 53 52 20  |R osasci..v.JSR |
000014f0  6f 73 61 73 63 69 0d 0c  80 0c 2e 70 75 6c 6c 6f  |osasci.....pullo|
00001500  75 74 0d 0c 8a 07 50 4c  41 0d 0c 94 11 53 54 41  |ut....PLA....STA|
00001510  20 61 64 64 72 65 73 73  2b 31 0d 0c 9e 07 50 4c  | address+1....PL|
00001520  41 0d 0c a8 0f 53 54 41  20 61 64 64 72 65 73 73  |A....STA address|
00001530  0d 0c b2 07 50 4c 41 0d  0c bc 07 50 4c 41 0d 0c  |....PLA....PLA..|
00001540  c6 07 50 4c 41 0d 0c d0  0a 4c 44 41 20 23 30 0d  |..PLA....LDA #0.|
00001550  0c da 07 52 54 53 0d 0c  e4 0c 2e 63 6f 6c 6f 75  |...RTS.....colou|
00001560  72 73 0d 0c ee 18 4f 50  54 20 a4 65 71 75 64 28  |rs....OPT .equd(|
00001570  26 30 31 30 37 30 33 30  31 29 0d 0c f8 14 4f 50  |&01070301)....OP|
00001580  54 20 a4 65 71 75 77 28  26 30 33 30 31 29 0d 0d  |T .equw(&0301)..|
00001590  02 12 4f 50 54 20 a4 65  71 75 62 28 26 30 31 29  |..OPT .equb(&01)|
000015a0  0d 0d 0c 0e 2e 77 72 6f  6e 67 6d 6f 64 65 0d 0d  |.....wrongmode..|
000015b0  16 07 42 52 4b 0d 0d 20  07 42 52 4b 0d 0d 2a 1f  |..BRK.. .BRK..*.|
000015c0  4f 50 54 20 a4 65 71 75  73 28 22 4d 6f 64 65 73  |OPT .equs("Modes|
000015d0  20 30 2d 36 20 6f 6e 6c  79 22 29 0d 0d 34 07 42  | 0-6 only")..4.B|
000015e0  52 4b 0d 0d 3e 12 4f 50  54 20 a4 65 71 75 62 28  |RK..>.OPT .equb(|
000015f0  26 46 46 29 0d 0d 48 0d  2e 6c 61 73 74 62 79 74  |&FF)..H..lastbyt|
00001600  65 0d 0d 52 05 5d 0d 0d  5c 05 ed 0d 0d 66 21 e8  |e..R.]..\....f!.|
00001610  27 22 53 61 76 65 20 66  69 6c 65 6e 61 6d 65 20  |'"Save filename |
00001620  3d 20 22 66 69 6c 65 6e  61 6d 65 24 0d 0d 70 14  |= "filename$..p.|
00001630  e7 20 66 69 6c 65 6e 61  6d 65 24 3d 22 22 20 e0  |. filename$="" .|
00001640  0d 0d 7a 4b 24 73 61 76  65 3d 22 53 41 56 45 20  |..zK$save="SAVE |
00001650  22 2b 66 69 6c 65 6e 61  6d 65 24 2b 22 20 22 2b  |"+filename$+" "+|
00001660  c3 7e 28 93 29 2b 22 20  22 2b c3 7e 28 6c 61 73  |.~(.)+" "+.~(las|
00001670  74 62 79 74 65 29 2b 22  20 46 46 46 46 38 30 30  |tbyte)+" FFFF800|
00001680  30 20 46 46 46 46 38 30  30 30 22 0d 0d 84 11 58  |0 FFFF8000"....X|
00001690  25 3d 73 61 76 65 20 83  20 32 35 36 0d 0d 8e 11  |%=save . 256....|
000016a0  59 25 3d 73 61 76 65 20  81 20 32 35 36 0d 0d 98  |Y%=save . 256...|
000016b0  0b 2a 4f 50 54 31 2c 32  0d 0d a2 0b d6 20 6f 73  |.*OPT1,2..... os|
000016c0  63 6c 69 0d 0d ac 0b 2a  4f 50 54 31 2c 30 0d 0d  |cli....*OPT1,0..|
000016d0  b6 05 e0 0d 0d c0 10 dd  a4 65 71 75 62 28 62 79  |.........equb(by|
000016e0  74 65 29 0d 0d ca 0c 3f  50 25 3d 62 79 74 65 0d  |te)....?P%=byte.|
000016f0  0d d4 0b 50 25 3d 50 25  2b 31 0d 0d de 09 3d 70  |...P%=P%+1....=p|
00001700  61 73 73 0d 0d e8 10 dd  a4 65 71 75 77 28 77 6f  |ass......equw(wo|
00001710  72 64 29 0d 0d f2 12 3f  50 25 3d 77 6f 72 64 20  |rd)....?P%=word |
00001720  83 20 32 35 36 0d 0d fc  13 50 25 3f 31 3d 77 6f  |. 256....P%?1=wo|
00001730  72 64 20 81 20 32 35 36  0d 0e 06 0b 50 25 3d 50  |rd . 256....P%=P|
00001740  25 2b 32 0d 0e 10 09 3d  70 61 73 73 0d 0e 1a 12  |%+2....=pass....|
00001750  dd a4 65 71 75 64 28 64  6f 75 62 6c 65 29 0d 0e  |..equd(double)..|
00001760  24 0e 21 50 25 3d 64 6f  75 62 6c 65 0d 0e 2e 0b  |$.!P%=double....|
00001770  50 25 3d 50 25 2b 34 0d  0e 38 09 3d 70 61 73 73  |P%=P%+4..8.=pass|
00001780  0d 0e 42 13 dd a4 65 71  75 73 28 73 74 72 69 6e  |..B...equs(strin|
00001790  67 24 29 0d 0e 4c 0f 24  50 25 3d 73 74 72 69 6e  |g$)..L.$P%=strin|
000017a0  67 24 0d 0e 56 14 50 25  3d 50 25 2b a9 28 73 74  |g$..V.P%=P%+.(st|
000017b0  72 69 6e 67 24 29 0d 0e  60 09 3d 70 61 73 73 0d  |ring$)..`.=pass.|
000017c0  ff                                                |.|
000017c1
25-10-88/HELP.m0
25-10-88/HELP.m1
25-10-88/HELP.m2
25-10-88/HELP.m4
25-10-88/HELP.m5