Home » CEEFAX disks » telesoftware16.adl » Speller/M/DATA

Speller/M/DATA

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 » telesoftware16.adl
Filename: Speller/M/DATA
Read OK:
File size: 3686 bytes
Load address: FFFF1900
Exec address: FFFF8023
File contents
   10REM Watcher Spelling Checker
   20REM (C) Allan Kelly 25/6/87
   30REM Watcher Menu subroutines and data
   40 
   41dummy$="C.DUMMY"
   42diction$="C.DICTION"
   43nw$="C.NEWORDS"
   44new$="C.NEWTION"
   45version$="V 1.01"
   46DIM data% 32
   50osargs=&FFDA
   60osbget=&FFD7
   70osbput=&FFD4
   80oswrch=&FFEE
   90osnewl=&FFE7
  100osgbpb=&FFD1
  110osfind=&FFCE
  120osbyte=&FFF4
  140oscli=&FFF7
  141osword=&FFF1
  150 
  151REM Data to be passed here
  152menu=&3100
  160FOR pass=4 TO 6 STEP 2
  170P%=&3D00
  171O%=&7000
  175start=O%
  180[:Opt pass
  640.display STX&74
  650STY&75
  660.display2 LDY#0
  670.dback LDA(&74),Y
  680CMP#&FF
  690BEQ dfor
  700JSR oswrch
  710INY
  720JMP dback
  730.dfor RTS
  740 
  750.di_or_nw JSR osnewl \ Dictionary or newords
  755LDX#nw_di MOD 256
  760LDY#nw_di DIV 256
  770JSR display
  780.donba JSR readch
  790CMP#ASC"D"
  800BEQ donfo
  810CMP#ASC"N"
  820BNE donba
  830LDA#1 \ Neword
  840RTS
  850.donfo LDA#0 \ Dictionary
  860RTS
  870 
  880.nw_di EQUW&D0A
  890EQUS"Dictionary or Neword?"
  900EQUW&D0A
  910EQUS"D - Dictionary"
  920EQUW&D0A
  925EQUS"N - Newords"
  930EQUW&D0A
  940EQUB&FF
  950 
  960.screen1 EQUW&716
  980EQUB31:BRK:EQUB1
 1010EQUB157:EQUB131:EQUB141
 1040EQUB31:EQUB8:EQUB1
 1070EQUB129
 1080EQUS"Watcher Menu "+version$
 1090EQUB31:EQUB0:EQUB2
 1120EQUB157:EQUB131:EQUB141
 1150EQUB31:EQUB8:EQUB2
 1180EQUB129
 1190EQUS"Watcher Menu "+version$
 1210EQUB31:EQUB9:EQUB3
 1240EQUS"(C) Allan Kelly 1987"
 1250EQUB31:EQUB3:EQUB5
 1260EQUS"W - Check Document"
 1270EQUB31:EQUB3:EQUB7
 1280EQUS"M - Merge Newords and Dictionary"
 1290EQUB31:EQUB3:EQUB9
 1300EQUS"L - List words ( Dictionary or New )"
 1310EQUB31:EQUB3:EQUB11
 1320EQUS"D - Delete word ( Dictionary or New )"
 1330EQUB31:EQUB3:EQUB13
 1340EQUS"A - Add word"
 1341EQUB&FF
 1350.screen2 EQUB31:EQUB3:EQUB15
 1360EQUS"C - Count words"
 1361EQUB31:EQUB3:EQUB17
 1362EQUS"S - Search for word"
 1370EQUB31:EQUB3:EQUB19
 1380EQUS"R - Repair New Word file"
 1430EQUB31:EQUB3:EQUB20
 1440EQUS"* - Operating System Command"
 1450EQUB31:EQUB3:EQUB21
 1460EQUS"Q - Quit menu"
 1470EQUB&FF
 1900.return LDX#re_mess MOD 256
 1910LDY#re_mess DIV 256
 1920JSR display
 1930LDA#21
 1940LDX#0
 1950JSR osbyte
 1960.reba JSR readch
 1970CMP#&D
 1980BNE reba
 1990RTS
 1991.re_mess EQUW&D0A
 1992EQUS"Press RETURN"
 1993EQUB&FF
 1995 
 2000.print_word LDX spw
 2010LDA#32
 2020.prba STA out_string,X
 2030DEX
 2040BNE prba
 2050.prba2 LDA rword,X
 2060CMP#&D
 2070BEQ prfo
 2080STA out_string,X
 2090INX
 2100JMP prba2
 2110 
 2120.prfo LDX#0
 2130.prba3 LDA out_string,X
 2140JSR oswrch
 2150INX
 2160CPX spw
 2170BNE prba3
 2180INC wtl
 2190LDA wtl
 2200CMP wpl
 2210BCS prfo2
 2220RTS
 2230.prfo2 JSR osnewl
 2240LDA#0
 2250STA wtl
 2260RTS
 2270 
 2280.stage3 LDA spool
 2290BEQ s3fo
 2300LDX#cl_sp MOD 256
 2310LDY#cl_sp DIV 256
 2320JSR oscli
 2330.s3fo LDA printer
 2340BEQs3fo2
 2350LDA#3
 2360JSR oswrch
 2365.s3fo2 RTS
 2370 
 2380.all_flag BRK
 2390.wtl BRK
 2400.wpl EQUB2
 2410.line_len EQUB 40
 2420.spw EQUB19
 2430.printer BRK
 2440.spool BRK
 2450 
 2460.nw_read LDX#0 \ Storage offset pointer
 2470LDY nw_handle
 2480LDX#0
 2490.rsba JSR osbget
 2500STA rword,X
 2510INX
 2520CMP#&D
 2530BNE rsba
 2540DEX
 2550STXrword_length
 2560RTS
 2570 
 2580.get_data LDX#words_line MOD256
 2590LDY#words_line DIV256
 2600JSR display
 2610.gdba JSR readch
 2620CMP#49
 2630BCC gdba
 2640CMP#58
 2650BCS gdba
 2660JSR oswrch
 2670SEC
 2680SBC#48
 2690STAwpl
 2700 
 2710LDX#lol MOD 256
 2720LDY#lol DIV 256
 2730JSR display
 2740.gdba2 JSR readch
 2750CMP#49
 2760BCC gdba2
 2770CMP#58
 2780BCS gdba2
 2790STA sa
 2800JSR oswrch
 2810 
 2820.gdba3 JSR readch
 2830CMP#13
 2840BEQ gdfo
 2850CMP#127
 2860BNE gdfo2
 2870JSR oswrch
 2880JMP gdba2
 2890.gdfo2 CMP#48
 2900BCC gdba3
 2910CMP#58
 2920BCS gdba3
 2930JSR oswrch
 2940 
 2950SEC
 2960SBC#48
 2970TAY
 2980LDA sa
 2990SEC
 3000SBC#48
 3010TAX
 3020LDA tens,X
 3030STA sa
 3040TYA
 3050CLC
 3060ADC sa
 3070STA line_len
 3080JMP gdfo3
 3090.gdfo LDA sa
 3100SEC
 3110SBC#48
 3120STA line_len
 3130 
 3140.gdfo3 LDX#0
 3150LDA line_len
 3160.gdba4 INX
 3170SEC
 3180SBCwpl
 3190BPL gdba4
 3200DEX
 3210STX spw
 3220 
 3230LDX#printer_mess MOD 256
 3240LDY#printer_mess DIV 256
 3250JSR display
 3260LDA#0
 3270STA printer
 3280STA spool
 3290.gdba5 JSR readch
 3300CMP#ASC"N"
 3310BEQ gdfo4
 3320CMP#ASC"Y"
 3330BNE gdba5
 3340LDA#1
 3350STA printer
 3360 
 3370.gdfo4 LDX#spool_mess MOD 256
 3380LDY#spool_mess DIV 256
 3390JSR display
 3400.gdba6 JSR readch
 3410CMP#ASC"N"
 3420BEQ gdfo5
 3430CMP#ASC"Y"
 3440BNE gdba6
 3450LDX#sp_in MOD 256
 3460LDY#sp_in DIV 256
 3470JSR display
 3480LDA#0
 3490LDX#sp_block MOD 256
 3500LDY#sp_block DIV 256
 3510JSR osword
 3520LDA#&D
 3530STA spool
 3540STA sp_name,Y
 3550 
 3560.gdfo5 LDA printer
 3570BEQ gdfo6
 3580LDA#2
 3590JSR oswrch
 3600.gdfo6 LDA spool
 3610BEQ gdfo7
 3620LDX#sp_open MOD 256
 3630LDY#sp_open DIV 256
 3640JSR oscli
 3650.gdfo7 RTS
 3660 
 3670.lol EQUW&D0A
 3680EQUS"Length of line?"
 3690EQUB&FF
 3700.words_line EQUW&D0A
 3710EQUS"Words per line?"
 3720EQUB&FF
 3730.tens EQUW&0A00
 3740EQUW&1E14
 3750EQUW&3228
 3760EQUW&463C
 3770EQUW&5A50
 3780.cl_sp EQUS"SPOOL"
 3790EQUB&D
 3800EQUB&FF
 3810.printer_mess EQUW&D0A
 3820EQUS"Printer on?"
 3830EQUB&FF
 3840.spool_mess EQUW&D0A
 3850EQUS"Spool file?"
 3860EQUB&FF
 3870.sp_in EQUW&D0A
 3880EQUS"Filename:"
 3890EQUB&FF
 3900.sp_open EQUS"SPOOL "
 3910.sp_name EQUS"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 3920.sp_block EQUW sp_name
 3930EQUB26
 3940EQUB32
 3950EQUB126
 3960.out_string OPT FNspace(100)
 3970 
 4000.read_di LDX#0 \ Read from diciton into rword ignoring PTR
 4010LDYdic_handle
 4020.rdba JSRosbget
 4030STArword,X
 4040INX
 4050CMP#128
 4060BCCrdba
 4070STXrword_length
 4080DEX
 4090AND#127
 4100STArword,X
 4110INX
 4120LDA#&D
 4130STArword,X
 4140RTS
 4150 
 4160.fuzzy_di_check \ Search for first word that fits
 4170LDAword \ As diction_check but made Fuzzy
 4180SEC
 4190SBC#65
 4200STAsa
 4210CLC
 4220ADCsa
 4230ADCsa
 4240TAY
 4250LDAdlut,Y
 4260STAfirst
 4270LDAdlut+1,Y
 4280STAfirst+1
 4290LDAdlut+2,Y
 4300STAfirst+2
 4310LDAdlut+3,Y
 4320STAlast
 4330LDAdlut+4,Y
 4340STAlast+1
 4350LDAdlut+5,Y
 4360STAlast+2
 4370 
 4380.fd_cs JSRfind_midle
 4390JSRlast_word
 4400JSRread_word
 4410JSRfuzzy_compare
 4420CMP#0
 4430BNE fdfo1
 4440LDAmidle
 4450STAlast
 4460LDAmidle+1
 4470STAlast+1
 4480LDAmidle+2
 4490STAlast+2
 4500JMP fdfo3
 4510 
 4520.fdfo1 LDAmidle
 4530STAfirst
 4540LDAmidle+1
 4550STAfirst+1
 4560LDAmidle+2
 4570STAfirst+2
 4580 
 4590.fdfo3 LDAlast+2
 4600CMPfirst+2
 4610BCCfd_no
 4620LDAlast+1
 4630CMPfirst+1
 4640BCCfd_no
 4650LDAlast
 4660SEC
 4670SBCfirst
 4680CMP#2
 4690BCS fd_cs
 4700.fd_no RTS
 4710 
 4720.fuzzy_compare LDY#0 \ Fuzzy compare
 4730.fcba1 LDArword,Y
 4740CMPword,Y
 4750BNEfcfo2
 4760INY
 4770CPY word_length
 4780BNEfcba1
 4790LDA#0
 4800RTS
 4810 
 4820.fcfo2 LDAword,Y
 4830CMPrword,Y
 4840BCCfcfo3
 4850LDA#1
 4860RTS
 4870.fcfo3 LDA#0
 4880RTS
 4890 
 5000.readch \ Read character ( osrdch ) with ESC check
 5010JSR &FFE0 \ OSRDCH
 5020BCS re_esc
 5030RTS
 5040.re_esc LDA#0
 5050LDY#0
 5060JSR osfind
 5070LDA#&7E
 5080JSR osbyte
 5090CPX#&FF
 5100BNE re_esc
 5110JMP menu
 5200 
 5210.credits \ Sub from main menu
 5290LDA#cre_mess MOD 256
 5300STA&70
 5310LDA#cre_mess DIV 256
 5320STA&71
 5330LDY#0
 5340.creba LDA(&70),Y
 5350JSR oswrch
 5355LDY#48
 5360.creba3 LDX#0
 5370.creba2 DEX
 5380BNE creba2
 5385DEY
 5386BNE creba3
 5390LDA&70
 5400CLC
 5410ADC#1
 5420STA&70
 5430LDA&71
 5440ADC#0
 5450STA&71
 5460LDA(&70),Y
 5470CMP#&FF
 5480BNE creba
 5481LDA#21
 5482LDX#0
 5483JSR osbyte
 5490JSR readch
 5500RTS
 5510 
 5520.cre_mess EQUD&D0A0D0A
 5530EQUS"Many, many thanks to David Halligan for ideas, criticisms, etc."
 5540EQUD&D0A0D0A
 5550EQUS"Watcher is dedicated to all at Orretts  Meadow 1980/82."
 5560EQUD&D0A0D0A
 5570EQUS"General thanks to: Tony, David (again), The Neston Mob, BI 6th and Chris."
 5580EQUD&D0A0D0A
 5590EQUS"Allan Kelly August 1987"
 5592EQUW&D0A0D0A
 5594EQUW&D0A0D0A
 5600EQUB&FF
14000.rs LDX#0 \ Read in diciton string ignoring PTR
14010LDY dic_handle
14020.rsba JSR osbget
14030STA word,X
14040INX
14050CMP#128
14060BCCrsba
14070STX word_length
14080DEX
14090AND#127
14100STAword,X
14120LDA#&D
14130STAword+1,X
14140RTS
14150 
14160.ws LDAword \ Write string creating dlut in process
14170CMPcul
14180BEQ wrfo
14190STAcul
14200SEC
14210SBC#65
14220STAsa
14230CLC
14240ADCsa
14250ADCsa
14260PHA
14270LDX#&70
14280LDA#0
14290LDY new_handle
14300JSRosargs
14310PLA
14320TAX
14330LDA&70
14340STAdlut,X
14350LDA&71
14360STAdlut+1,X
14370LDA&72
14380STAdlut+2,X
14390.wrfo DECword_length
14400LDXword_length
14410CPX#0
14420BEQwdfo
14430LDX#0
14440LDYnew_handle
14450.wdba2 LDAword,X
14460JSRosbput
14470INX
14480CPXword_length
14490BNEwdba2
14500.wdfo LDAword,X
14510ORA#128
14520JSRosbput
14530RTS
14540 
14550.wt LDA#2 \ Write dlut to newtion
14560LDX#&70
14570LDYnew_handle
14580JSRosargs
14590LDA&70
14600STAdlut+78
14610LDA&71
14620STAdlut+79
14630LDA&72
14640STAdlut+80
14650LDA#0
14660STA&70
14670STA&71
14680STA&72
14690STA&73
14700LDA#1
14710LDX#&70
14720JSRosargs
14730LDX#0
14740.wtba LDAdlut,X
14750JSRosbput
14760INX
14770CPX#81
14780BNEwtba
14790LDA#&FF
14800JSRosbput
14810RTS
14820.cul BRK
15000.compare \ Compare $word and $rword
15010LDA rword_length
15020CMP word_length
15030BNE cpfo1
15040 
15050LDY#0
15060.cpba1 LDA rword,Y
15070CMP word,Y
15080BNE cpfo2
15090INY
15100CPY word_length
15110BNE cpba1
15120LDA#&FF
15130RTS
15140 
15150.cpfo1 LDY#0
15160.cpba2 LDA rword,Y
15170CMP word,Y
15180BNE cpfo2
15190INY
15200CPY word_length
15210BPL cpfo2
15220CPY rword_length
15230BPL cpfo2
15240JMP cpba2
15250 
15260.cpfo2 LDA word,Y
15270CMP rword,Y
15280BCC cpfo3
15290LDA#1
15300RTS
15310 
15320.cpfo3 LDA#0
15330RTS
15390 
15400.find_midle \ (first+last)/2
15410LDA last
15420CLC
15430ADC first
15440STA midle
15450LDA last+1
15460ADC first+1
15470STA midle+1
15480LDA last+2
15490ADC first+2
15500STA midle+2
15540LSR midle+2
15560ROR midle+1
15570ROR midle
15580RTS
15590 
15600.last_word LDA midle \ Using !midle to set PTR find word that starts marginaly before PTR diction=!midle
15610STA&76
15620LDA midle+1
15630STA&77
15640LDA midle+2
15650STA&78
15660LDA#0
15670STA&79
15680LDA#1
15690LDX#&76
15700LDY dic_handle
15710JSR osargs
15720.lwba LDA#0 \ Read PTR
15730JSR osargs
15740 
15750LDA&76 \ Move PTR back 2
15760SEC
15770SBC#2
15780STA&76
15790LDA&77
15800SBC#0
15810STA&77
15820LDA&78
15830SBC#0
15840STA&78
15880LDA#1 \ Write PTR
15890JSR osargs
15900JSR osbget
15910CMP#128
15920BCC lwba
15930LDA#0
15950JSR osargs
15960LDA&78
15970LDY&77
15980LDX&76
15990RTS
16000 
16010.read_word STA&78 \ Read in word using AYX as PTR - store in $rword
16020STY&77
16030STX&76
16040LDA#0
16050STA&79
16060LDA#0
16070LDY dic_handle
16080LDX#&70
16090JSR osargs
16100 
16110LDA#1
16120LDX#&76
16130JSR osargs
16140LDX#0
16150.rwba JSRosbget
16160STA rword,X
16170INX
16180CMP#128
16190BCC rwba
16195STX rword_length
16200DEX
16210AND#127
16220STA rword,X
16230INX
16240LDA#&D
16250STA rword,X
16260LDA#1
16270LDX#&70
16280JMP osargs
16290 
16300.diction_check \ Search for $word in diction
16310LDA word \ First define search area using look up table
16320SEC
16330SBC#65
16340STA sa
16350CLC
16360ADC sa
16370ADC sa
16380TAY
16390LDA dlut,Y
16400STA first
16410LDA dlut+1,Y
16420STA first+1
16430LDA dlut+2,Y
16440STA first+2
16450LDA dlut+3,Y
16460STA last
16470LDA dlut+4,Y
16480STA last+1
16490LDA dlut+5,Y
16500STA last+2
16510 
16520.cont_se JSR find_midle \ Area defined now search
16530JSR last_word
16540JSR read_word
16550JSR compare
16560CMP#&FF
16570BEQ match
16580CMP#0
16590BNE ssfo1
16600LDA midle \ Word in first half
16610STA last
16620LDA midle+1
16630STA last+1
16640LDA midle+2
16650STA last+2
16660JMP ssfo3
16670.ssfo1 LDA midle \ Word in second half
16680STA first
16690LDA midle+1
16700STA first+1
16710LDA midle+2
16720STA first+2
16730 
16740.ssfo3 LDA last+2 \ End search?
16750CMP first+2
16760BCC no_match
16770LDA last+1
16780CMP first+1
16790BCC no_match
16800LDA last
16810SEC
16820SBC first
16830CMP#2
16840BCS cont_se
16850.no_match CLC
16860RTS
16870.match SEC
16880RTS
16890 
17000.nw_check LDA#0
17010STA&70
17020STA&71
17030STA&72
17040STA&73
17050LDA#1
17060LDX#&70
17070LDY nw_handle
17080JSR osargs
17090JSR osbget
17100CMP#0
17110BNE nrwfo1
17120CLC \ No words in NW
17130RTS
17140 
17150.nrwfo1 LDA#0 \ Store PTR
17160LDY nw_handle
17170LDX#&76
17180JSR osargs
17190.nrwba3 JSR osbget \ Get len
17200STA rword_length
17210CMP word_length
17215BNE not_same
17220LDX#0
17230.nrwba2 JSR osbget
17240CMP word,X
17250BNE not_same
17260INX
17270CMP#&D
17280BNE nrwba2
17290SEC \ Words match
17300RTS
17310 
17320.not_same CMP#&FF
17330BEQ nrwfo2 \ EOF?
17340LDA&76 \ Advance PTR
17350CLC
17360ADC#2
17370ADC rword_length
17380STA&76
17390LDA&77
17400ADC#0
17410STA&77
17420LDA&78
17430ADC#0
17440STA&78
17450LDA#1 \ Write new PTR
17460LDX#&76
17470JSR osargs
17480JMP nrwba3
17490 
17500.nrwfo2 CLC \ EOF with no match
17510RTS
17520 
17600.another_word LDX#an_mess MOD 256 \ "Another word?" Yes - C set, No - C clear
17610LDY#an_mess DIV 256
17620JSR display
17630.awba JSR readch
17640CMP#ASC"Y"
17650BEQ awfo
17660CMP#ASC"N"
17670BNE awba
17680CLC
17690RTS
17700.awfo SEC
17710RTS
17720.an_mess EQUW&D0A
17730EQUS"Another?"
17740EQUW&D0A
17750EQUB&FF
17760 
17770.get_word LDX#an_in MOD 256 \ Get word and store in $word
17780LDY#an_in DIV 256
17790JSR display
17800LDA#0
17810LDX#an_os_bl MOD 256
17820LDY#an_os_bl DIV 256
17830JSR osword
17840BCS get_esc
17850STY word_length
17860RTS
17870.get_esc LDA#0
17880LDY#0
17890JSR osfind
17891LDA#&7C
17892JSRosbyte
17900JMP menu
17910 
17920.an_os_bl EQUW word
17930EQUB26
17940EQUB65
17950EQUB90
17960.an_in EQUS"Word:"
17970EQUB&FF
18000.word EQUS"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
18010.word_length BRK
18020.rword EQUS"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
18030.rword_length BRK
18040.sa BRK
18050.first EQUD0
18060.midle EQUD0
18070.last EQUD0
18080.dic_name EQUS diction$
18090EQUB&D
18100.dic_handle BRK
18110.nw_name EQUS nw$
18120EQUB&D
18130.nw_handle BRK
18140.new_name EQUSnew$
18150EQUB&D
18160.new_handle BRK
18170.dummy_name EQUSdummy$
18180EQUB&D
18190.dummy_handle BRK
18900.dlut OPT FNspace(82)
19000]
19010NEXT
29000*SPOOL L.Mexec
29010PRINT"AUTO21000"
29030PRINT"display=&";~display
29040PRINT"di_or_nw=&";~di_or_nw
29050PRINT"return=&";~return
29060PRINT"screen1=&";~screen1
29070PRINT"screen2=&";~screen2
29080PRINT"diction_check=&";~diction_check
29090PRINT"nw_check=&";~nw_check
29100PRINT"dic_name=&";~dic_name
29110PRINT"dic_handle=&";~dic_handle
29120PRINT"nw_name=&";~nw_name
29130PRINT"nw_handle=&";~nw_handle
29140PRINT"new_name=&";~new_name
29150PRINT"new_handle=&";~new_handle
29160PRINT"dummy=&";~dummy_name
29170PRINT"dummy_handle=&";~dummy_handle
29180PRINT"dlut=&";~dlut
29190PRINT"word=&";~word
29200PRINT"word_length=&";~word_length
29210PRINT"rword=&";~rword
29220PRINT"rword_length=&";~rword_length
29230PRINT"sa=&";~sa
29240PRINT"first=&";~first
29250PRINT"midle=&";~midle
29260PRINT"last=&";~last
29270PRINT"get_word=&";~get_word
29280PRINT"another_word=&";~another_word
29290PRINT"nw_read=&";~nw_read
29300PRINT"get_data=&";~get_data
29310PRINT"print_word=&";~print_word
29320PRINT"all_flag=&";~all_flag
29330PRINT"printer=&";~printer
29340PRINT"spool=&";~spool
29350PRINT"wtl=&";~wtl
29360PRINT"read_di=&";~read_di
29370PRINT"fuzzy_di_check=&";~fuzzy_di_check
29380PRINT"rs=&";~rs
29390PRINT"ws=&";~ws
29400PRINT"wt=&";~wt
29410PRINT"readch=&";~readch
29420PRINT"credits=&";~credits
29970*SPOOL
29980PRINT"Saving Menu Data"
29985IF FNos_save("L.Mdata",&3D00,&3D00,start,O%)
29990END
30000DEFFNspace(x):P%=P%+x:O%=O%+x:=pass
31000DEFFNos_save(file$,load%,exec%,start%,end%)
31010A%=0
31020X%=data% MOD 256
31030Y%=data% DIV 256
31040!data%=data%+18
31050!(data%+2)=load%
31060!(data%+6)=exec%
31070!(data%+10)=start%
31080!(data%+14)=end%
31090$(data%+18)=file$
31100:=USR&FFDD AND&3

� Watcher Spelling Checker
� (C) Allan Kelly 25/6/87
'� Watcher Menu subroutines and data
( 
)dummy$="C.DUMMY"
*diction$="C.DICTION"
+nw$="C.NEWORDS"
,new$="C.NEWTION"
-version$="V 1.01"
.� data% 32
2osargs=&FFDA
<osbget=&FFD7
Fosbput=&FFD4
Poswrch=&FFEE
Zosnewl=&FFE7
dosgbpb=&FFD1
nosfind=&FFCE
xosbyte=&FFF4
�oscli=&FFF7
�osword=&FFF1
� 
�� Data to be passed here
�menu=&3100
�� pass=4 � 6 � 2
�P%=&3D00
�O%=&7000
�start=O%
�[:Opt pass
�.display STX&74
�
STY&75
�.display2 LDY#0
�.dback LDA(&74),Y
�CMP#&FF
�BEQ dfor
�JSR oswrch
�INY
�
JMP dback
�
.dfor RTS
� 
�0.di_or_nw JSR osnewl \ Dictionary or newords
�LDX#nw_di � 256
�LDY#nw_di � 256
JSR display
.donba JSR readch
CMP#�"D"
 
BEQ donfo
*CMP#�"N"
4
BNE donba
>LDA#1 \ Neword
HRTS
R.donfo LDA#0 \ Dictionary
\RTS
f 
p.nw_di EQUW&D0A
zEQUS"Dictionary or Neword?"
�EQUW&D0A
�EQUS"D - Dictionary"
�EQUW&D0A
�EQUS"N - Newords"
�EQUW&D0A
�EQUB&FF
� 
�.screen1 EQUW&716
�EQUB31:BRK:EQUB1
�EQUB157:EQUB131:EQUB141
EQUB31:EQUB8:EQUB1
.EQUB129
8 EQUS"Watcher Menu "+version$
BEQUB31:EQUB0:EQUB2
`EQUB157:EQUB131:EQUB141
~EQUB31:EQUB8:EQUB2
�EQUB129
� EQUS"Watcher Menu "+version$
�EQUB31:EQUB9:EQUB3
�EQUS"(C) Allan Kelly 1987"
�EQUB31:EQUB3:EQUB5
�EQUS"W - Check Document"
�EQUB31:EQUB3:EQUB7
*EQUS"M - Merge Newords and Dictionary"

EQUB31:EQUB3:EQUB9
.EQUS"L - List words ( Dictionary or New )"
EQUB31:EQUB3:EQUB11
(/EQUS"D - Delete word ( Dictionary or New )"
2EQUB31:EQUB3:EQUB13
<EQUS"A - Add word"
=EQUB&FF
F .screen2 EQUB31:EQUB3:EQUB15
PEQUS"C - Count words"
QEQUB31:EQUB3:EQUB17
REQUS"S - Search for word"
ZEQUB31:EQUB3:EQUB19
d"EQUS"R - Repair New Word file"
�EQUB31:EQUB3:EQUB20
�&EQUS"* - Operating System Command"
�EQUB31:EQUB3:EQUB21
�EQUS"Q - Quit menu"
�EQUB&FF
l.return LDX#re_mess � 256
vLDY#re_mess � 256
�JSR display
�
LDA#21
�	LDX#0
�JSR osbyte
�.reba JSR readch
�
CMP#&D
�BNE reba
�RTS
�.re_mess EQUW&D0A
�EQUS"Press RETURN"
�EQUB&FF
� 
�.print_word LDX spw
�
LDA#32
�.prba STA out_string,X
�DEX
�BNE prba
.prba2 LDA rword,X

CMP#&D
BEQ prfo
 STA out_string,X
*INX
4
JMP prba2
> 
H.prfo LDX#0
R.prba3 LDA out_string,X
\JSR oswrch
fINX
pCPX spw
z
BNE prba3
�INC wtl
�LDA wtl
�CMP wpl
�
BCS prfo2
�RTS
�.prfo2 JSR osnewl
�	LDA#0
�STA wtl
�RTS
� 
�.stage3 LDA spool
�BEQ s3fo
�LDX#cl_sp � 256
	LDY#cl_sp � 256
	
JSR oscli
	.s3fo LDA printer
	$BEQs3fo2
	.	LDA#3
	8JSR oswrch
	=.s3fo2 RTS
	B 
	L.all_flag BRK
	V.wtl BRK
	`.wpl EQUB2
	j.line_len EQUB 40
	t.spw EQUB19
	~.printer BRK
	�.spool BRK
	� 
	�+.nw_read LDX#0 \ Storage offset pointer
	�LDY nw_handle
	�	LDX#0
	�.rsba JSR osbget
	�STA rword,X
	�INX
	�
CMP#&D
	�BNE rsba
	�DEX
	�STXrword_length
RTS

 
!.get_data LDX#words_line �256
LDY#words_line �256
(JSR display
2.gdba JSR readch
<
CMP#49
FBCC gdba
P
CMP#58
ZBCS gdba
dJSR oswrch
nSEC
x
SBC#48
�
STAwpl
� 
�LDX#lol � 256
�LDY#lol � 256
�JSR display
�.gdba2 JSR readch
�
CMP#49
�
BCC gdba2
�
CMP#58
�
BCS gdba2
�
STA sa
�JSR oswrch
� 
.gdba3 JSR readch

CMP#13
BEQ gdfo
"CMP#127
,
BNE gdfo2
6JSR oswrch
@
JMP gdba2
J.gdfo2 CMP#48
T
BCC gdba3
^
CMP#58
h
BCS gdba3
rJSR oswrch
| 
�SEC
�
SBC#48
�TAY
�
LDA sa
�SEC
�
SBC#48
�TAX
�LDA tens,X
�
STA sa
�TYA
�CLC
�
ADC sa
�STA line_len

JMP gdfo3
.gdfo LDA sa
SEC
&
SBC#48
0STA line_len
: 
D.gdfo3 LDX#0
NLDA line_len
X.gdba4 INX
bSEC
l
SBCwpl
v
BPL gdba4
�DEX
�STX spw
� 
�LDX#printer_mess � 256
�LDY#printer_mess � 256
�JSR display
�	LDA#0
�STA printer
�
STA spool
�.gdba5 JSR readch
�CMP#�"N"
�
BEQ gdfo4
�CMP#�"Y"


BNE gdba5

	LDA#1

STA printer

  

*.gdfo4 LDX#spool_mess � 256

4LDY#spool_mess � 256

>JSR display

H.gdba6 JSR readch

RCMP#�"N"

\
BEQ gdfo5

fCMP#�"Y"

p
BNE gdba6

zLDX#sp_in � 256

�LDY#sp_in � 256

�JSR display

�	LDA#0

�LDX#sp_block � 256

�LDY#sp_block � 256

�JSR osword

�
LDA#&D

�
STA spool

�STA sp_name,Y

� 

�.gdfo5 LDA printer

�
BEQ gdfo6

�	LDA#2
JSR oswrch
.gdfo6 LDA spool

BEQ gdfo7
$LDX#sp_open � 256
.LDY#sp_open � 256
8
JSR oscli
B.gdfo7 RTS
L 
V.lol EQUW&D0A
`EQUS"Length of line?"
jEQUB&FF
t.words_line EQUW&D0A
~EQUS"Words per line?"
�EQUB&FF
�.tens EQUW&0A00
�
EQUW&1E14
�
EQUW&3228
�
EQUW&463C
�
EQUW&5A50
�.cl_sp EQUS"SPOOL"
�
EQUB&D
�EQUB&FF
�.printer_mess EQUW&D0A
�EQUS"Printer on?"
�EQUB&FF
.spool_mess EQUW&D0A

EQUS"Spool file?"
EQUB&FF
.sp_in EQUW&D0A
(EQUS"Filename:"
2EQUB&FF
<.sp_open EQUS"SPOOL "
F-.sp_name EQUS"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
P.sp_block EQUW sp_name
Z
EQUB26
d
EQUB32
nEQUB126
x.out_string OPT �space(100)
� 
�<.read_di LDX#0 \ Read from diciton into rword ignoring �
�LDYdic_handle
�.rdba JSRosbget
�STArword,X
�INX
�CMP#128
�BCCrdba
�STXrword_length
�DEX
�	�#127
STArword,X
INX

LDA#&D
"STArword,X
,RTS
6 
@5.fuzzy_di_check \ Search for first word that fits
J-LDAword \ As diction_check but made Fuzzy
TSEC
^
SBC#65
h	STAsa
rCLC
|	ADCsa
�	ADCsa
�TAY
�
LDAdlut,Y
�STAfirst
�LDAdlut+1,Y
�STAfirst+1
�LDAdlut+2,Y
�STAfirst+2
�LDAdlut+3,Y
�STAlast
�LDAdlut+4,Y
�
STAlast+1
�LDAdlut+5,Y

STAlast+2
 
.fd_cs JSRfind_midle
&JSRlast_word
0JSRread_word
:JSRfuzzy_compare
D	CMP#0
N
BNE fdfo1
XLDAmidle
bSTAlast
lLDAmidle+1
v
STAlast+1
�LDAmidle+2
�
STAlast+2
�
JMP fdfo3
� 
�.fdfo1 LDAmidle
�STAfirst
�LDAmidle+1
�STAfirst+1
�LDAmidle+2
�STAfirst+2
� 
�.fdfo3 LDAlast+2
�CMPfirst+2
BCCfd_no

LDAlast+1
CMPfirst+1
 BCCfd_no
*LDAlast
4SEC
>SBCfirst
H	CMP#2
R
BCS fd_cs
\.fd_no RTS
f 
p(.fuzzy_compare LDY#0 \ Fuzzy compare
z.fcba1 LDArword,Y
�
CMPword,Y
�BNEfcfo2
�INY
�CPY word_length
�BNEfcba1
�	LDA#0
�RTS
� 
�.fcfo2 LDAword,Y
�CMPrword,Y
�BCCfcfo3
�	LDA#1
�RTS
.fcfo3 LDA#0
RTS
 
�6.readch \ Read character ( osrdch ) with ESC check
�JSR &FFE0 \ OSRDCH
�BCS re_esc
�RTS
�.re_esc LDA#0
�	LDY#0
�JSR osfind
�LDA#&7E
�JSR osbyte
�CPX#&FF
�BNE re_esc
�JMP menu
P 
Z!.credits \ Sub from main menu
�LDA#cre_mess � 256
�
STA&70
�LDA#cre_mess � 256
�
STA&71
�	LDY#0
�.creba LDA(&70),Y
�JSR oswrch
�
LDY#48
�.creba3 LDX#0
�.creba2 DEX
BNE creba2
	DEY

BNE creba3

LDA&70
CLC
"	ADC#1
,
STA&70
6
LDA&71
@	ADC#0
J
STA&71
TLDA(&70),Y
^CMP#&FF
h
BNE creba
i
LDA#21
j	LDX#0
kJSR osbyte
rJSR readch
|RTS
� 
�.cre_mess EQUD&D0A0D0A
�IEQUS"Many, many thanks to David Halligan for ideas, criticisms, etc."
�EQUD&D0A0D0A
�AEQUS"Watcher is dedicated to all at Orretts  Meadow 1980/82."
�EQUD&D0A0D0A
�SEQUS"General thanks to: Tony, David (again), The Neston Mob, BI 6th and Chris."
�EQUD&D0A0D0A
�!EQUS"Allan Kelly August 1987"
�EQUW&D0A0D0A
�EQUW&D0A0D0A
�EQUB&FF
6�1.rs LDX#0 \ Read in diciton string ignoring �
6�LDY dic_handle
6�.rsba JSR osbget
6�STA word,X
6�INX
6�CMP#128
6�BCCrsba
6�STX word_length
7DEX
7
	�#127
7
STAword,X
7(
LDA#&D
72STAword+1,X
7<RTS
7F 
7P7.ws LDAword \ Write string creating dlut in process
7Z
CMPcul
7dBEQ wrfo
7n
STAcul
7xSEC
7�
SBC#65
7�	STAsa
7�CLC
7�	ADCsa
7�	ADCsa
7�PHA
7�LDX#&70
7�	LDA#0
7�LDY new_handle
7�
JSRosargs
7�PLA
7�TAX
7�
LDA&70
8
STAdlut,X
8
LDA&71
8STAdlut+1,X
8"
LDA&72
8,STAdlut+2,X
86.wrfo DECword_length
8@LDXword_length
8J	CPX#0
8TBEQwdfo
8^	LDX#0
8hLDYnew_handle
8r.wdba2 LDAword,X
8|
JSRosbput
8�INX
8�CPXword_length
8�BNEwdba2
8�.wdfo LDAword,X
8�
�A#128
8�
JSRosbput
8�RTS
8� 
8�%.wt LDA#2 \ Write dlut to newtion
8�LDX#&70
8�LDYnew_handle
8�
JSRosargs
8�
LDA&70
9STAdlut+78
9
LDA&71
9STAdlut+79
9&
LDA&72
90STAdlut+80
9:	LDA#0
9D
STA&70
9N
STA&71
9X
STA&72
9b
STA&73
9l	LDA#1
9vLDX#&70
9�
JSRosargs
9�	LDX#0
9�.wtba LDAdlut,X
9�
JSRosbput
9�INX
9�
CPX#81
9�BNEwtba
9�LDA#&FF
9�
JSRosbput
9�RTS
9�.cul BRK
:�'.compare \ Compare $word and $rword
:�LDA rword_length
:�CMP word_length
:�
BNE cpfo1
:� 
:�	LDY#0
:�.cpba1 LDA rword,Y
:�CMP word,Y
:�
BNE cpfo2
:�INY
:�CPY word_length
;
BNE cpba1
;LDA#&FF
;RTS
;$ 
;..cpfo1 LDY#0
;8.cpba2 LDA rword,Y
;BCMP word,Y
;L
BNE cpfo2
;VINY
;`CPY word_length
;j
BPL cpfo2
;tCPY rword_length
;~
BPL cpfo2
;�
JMP cpba2
;� 
;�.cpfo2 LDA word,Y
;�CMP rword,Y
;�
BCC cpfo3
;�	LDA#1
;�RTS
;� 
;�.cpfo3 LDA#0
;�RTS
< 
<( .find_midle \ (first+last)/2
<2LDA last
<<CLC
<F
ADC first
<P
STA midle
<ZLDA last+1
<dADC first+1
<nSTA midle+1
<xLDA last+2
<�ADC first+2
<�STA midle+2
<�LSR midle+2
<�ROR midle+1
<�
ROR midle
<�RTS
<� 
<�h.last_word LDA midle \ Using !midle to set � find word that starts marginaly before � diction=!midle
<�
STA&76
=LDA midle+1
=
STA&77
=LDA midle+2
="
STA&78
=,	LDA#0
=6
STA&79
=@	LDA#1
=JLDX#&76
=TLDY dic_handle
=^JSR osargs
=h.lwba LDA#0 \ Read �
=rJSR osargs
=| 
=�LDA&76 \ Move � back 2
=�SEC
=�	SBC#2
=�
STA&76
=�
LDA&77
=�	SBC#0
=�
STA&77
=�
LDA&78
=�	SBC#0
=�
STA&78
>LDA#1 \ Write �
>JSR osargs
>JSR osbget
>&CMP#128
>0BCC lwba
>:	LDA#0
>NJSR osargs
>X
LDA&78
>b
LDY&77
>l
LDX&76
>vRTS
>� 
>�E.read_word STA&78 \ Read in word using AYX as � - store in $rword
>�
STY&77
>�
STX&76
>�	LDA#0
>�
STA&79
>�	LDA#0
>�LDY dic_handle
>�LDX#&70
>�JSR osargs
>� 
>�	LDA#1
>�LDX#&76
?JSR osargs
?	LDX#0
?.rwba JSRosbget
? STA rword,X
?*INX
?4CMP#128
?>BCC rwba
?CSTX rword_length
?HDEX
?R	�#127
?\STA rword,X
?fINX
?p
LDA#&D
?zSTA rword,X
?�	LDA#1
?�LDX#&70
?�JMP osargs
?� 
?�0.diction_check \ Search for $word in diction
?�;LDA word \ First define search area using look up table
?�SEC
?�
SBC#65
?�
STA sa
?�CLC
?�
ADC sa
?�
ADC sa
?�TAY
@LDA dlut,Y
@
STA first
@LDA dlut+1,Y
@$STA first+1
@.LDA dlut+2,Y
@8STA first+2
@BLDA dlut+3,Y
@LSTA last
@VLDA dlut+4,Y
@`STA last+1
@jLDA dlut+5,Y
@tSTA last+2
@~ 
@�5.cont_se JSR find_midle \ Area defined now search
@�JSR last_word
@�JSR read_word
@�JSR compare
@�CMP#&FF
@�
BEQ match
@�	CMP#0
@�
BNE ssfo1
@�"LDA midle \ Word in first half
@�STA last
@�LDA midle+1
@�STA last+1
ALDA midle+2
A
STA last+2
A
JMP ssfo3
A*.ssfo1 LDA midle \ Word in second half
A(
STA first
A2LDA midle+1
A<STA first+1
AFLDA midle+2
APSTA first+2
AZ 
Ad#.ssfo3 LDA last+2 \ End search?
AnCMP first+2
AxBCC no_match
A�LDA last+1
A�CMP first+1
A�BCC no_match
A�LDA last
A�SEC
A�
SBC first
A�	CMP#2
A�BCS cont_se
A�.no_match CLC
A�RTS
A�.match SEC
A�RTS
A� 
Bh.nw_check LDA#0
Br
STA&70
B|
STA&71
B�
STA&72
B�
STA&73
B�	LDA#1
B�LDX#&70
B�LDY nw_handle
B�JSR osargs
B�JSR osbget
B�	CMP#0
B�BNE nrwfo1
B�CLC \ No words in NW
B�RTS
B� 
B�.nrwfo1 LDA#0 \ Store �
CLDY nw_handle
CLDX#&76
CJSR osargs
C& .nrwba3 JSR osbget \ Get len
C0STA rword_length
C:CMP word_length
C?BNE not_same
CD	LDX#0
CN.nrwba2 JSR osbget
CXCMP word,X
CbBNE not_same
ClINX
Cv
CMP#&D
C�BNE nrwba2
C�SEC \ Words match
C�RTS
C� 
C�.not_same CMP#&FF
C�BEQ nrwfo2 \ �?
C�LDA&76 \ Advance �
C�CLC
C�	ADC#2
C�ADC rword_length
C�
STA&76
C�
LDA&77
C�	ADC#0
D
STA&77
D
LDA&78
D	ADC#0
D 
STA&78
D*LDA#1 \ Write new �
D4LDX#&76
D>JSR osargs
DHJMP nrwba3
DR 
D\!.nrwfo2 CLC \ � with no match
DfRTS
Dp 
D�O.another_word LDX#an_mess � 256 \ "Another word?" Yes - C set, No - C clear
D�LDY#an_mess � 256
D�JSR display
D�.awba JSR readch
D�CMP#�"Y"
D�BEQ awfo
D�CMP#�"N"
EBNE awba
ECLC
ERTS
E$
.awfo SEC
E.RTS
E8.an_mess EQUW&D0A
EBEQUS"Another?"
ELEQUW&D0A
EVEQUB&FF
E` 
Ej;.get_word LDX#an_in � 256 \ Get word and store in $word
EtLDY#an_in � 256
E~JSR display
E�	LDA#0
E�LDX#an_os_bl � 256
E�LDY#an_os_bl � 256
E�JSR osword
E�BCS get_esc
E�STY word_length
E�RTS
E�.get_esc LDA#0
E�	LDY#0
E�JSR osfind
E�LDA#&7C
E�
JSRosbyte
E�JMP menu
E� 
F.an_os_bl EQUW word
F

EQUB26
F
EQUB65
F
EQUB90
F(.an_in EQUS"Word:"
F2EQUB&FF
FP*.word EQUS"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
FZ.word_length BRK
Fd+.rword EQUS"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Fn.rword_length BRK
Fx.sa BRK
F�.first EQUD0
F�.midle EQUD0
F�.last EQUD0
F�.dic_name EQUS diction$
F�
EQUB&D
F�.dic_handle BRK
F�.nw_name EQUS nw$
F�
EQUB&D
F�.nw_handle BRK
F�.new_name EQUSnew$
F�
EQUB&D
F�.new_handle BRK
F�.dummy_name EQUSdummy$
G
EQUB&D
G.dummy_handle BRK
I�.dlut OPT �space(82)
J8]
JB�
qH*SPOOL L.Mexec
qR�"AUTO21000"
qf�"display=&";~display
qp�"di_or_nw=&";~di_or_nw
qz�"return=&";~return
q��"screen1=&";~screen1
q��"screen2=&";~screen2
q�%�"diction_check=&";~diction_check
q��"nw_check=&";~nw_check
q��"dic_name=&";~dic_name
q��"dic_handle=&";~dic_handle
q��"nw_name=&";~nw_name
q��"nw_handle=&";~nw_handle
q��"new_name=&";~new_name
q��"new_handle=&";~new_handle
q��"dummy=&";~dummy_name
q�#�"dummy_handle=&";~dummy_handle
q��"dlut=&";~dlut
r�"word=&";~word
r!�"word_length=&";~word_length
r�"rword=&";~rword
r$#�"rword_length=&";~rword_length
r.�"sa=&";~sa
r8�"first=&";~first
rB�"midle=&";~midle
rL�"last=&";~last
rV�"get_word=&";~get_word
r`#�"another_word=&";~another_word
rj�"nw_read=&";~nw_read
rt�"get_data=&";~get_data
r~�"print_word=&";~print_word
r��"all_flag=&";~all_flag
r��"printer=&";~printer
r��"spool=&";~spool
r��"wtl=&";~wtl
r��"read_di=&";~read_di
r�'�"fuzzy_di_check=&";~fuzzy_di_check
r��"rs=&";~rs
r��"ws=&";~ws
r��"wt=&";~wt
r��"readch=&";~readch
r��"credits=&";~credits
u
*SPOOL
u�"Saving Menu Data"
u!.� �os_save("L.Mdata",&3D00,&3D00,start,O%)
u&�
u0$ݤspace(x):P%=P%+x:O%=O%+x:=pass
y,ݤos_save(file$,load%,exec%,start%,end%)
y"A%=0
y,X%=data% � 256
y6Y%=data% � 256
y@!data%=data%+18
yJ!(data%+2)=load%
yT!(data%+6)=exec%
y^!(data%+10)=start%
yh!(data%+14)=end%
yr$(data%+18)=file$
y|:=�&FFDD �&3
�
00000000  0d 00 0a 1e f4 20 57 61  74 63 68 65 72 20 53 70  |..... Watcher Sp|
00000010  65 6c 6c 69 6e 67 20 43  68 65 63 6b 65 72 0d 00  |elling Checker..|
00000020  14 1d f4 20 28 43 29 20  41 6c 6c 61 6e 20 4b 65  |... (C) Allan Ke|
00000030  6c 6c 79 20 32 35 2f 36  2f 38 37 0d 00 1e 27 f4  |lly 25/6/87...'.|
00000040  20 57 61 74 63 68 65 72  20 4d 65 6e 75 20 73 75  | Watcher Menu su|
00000050  62 72 6f 75 74 69 6e 65  73 20 61 6e 64 20 64 61  |broutines and da|
00000060  74 61 0d 00 28 05 20 0d  00 29 14 64 75 6d 6d 79  |ta..(. ..).dummy|
00000070  24 3d 22 43 2e 44 55 4d  4d 59 22 0d 00 2a 18 64  |$="C.DUMMY"..*.d|
00000080  69 63 74 69 6f 6e 24 3d  22 43 2e 44 49 43 54 49  |iction$="C.DICTI|
00000090  4f 4e 22 0d 00 2b 13 6e  77 24 3d 22 43 2e 4e 45  |ON"..+.nw$="C.NE|
000000a0  57 4f 52 44 53 22 0d 00  2c 14 6e 65 77 24 3d 22  |WORDS"..,.new$="|
000000b0  43 2e 4e 45 57 54 49 4f  4e 22 0d 00 2d 15 76 65  |C.NEWTION"..-.ve|
000000c0  72 73 69 6f 6e 24 3d 22  56 20 31 2e 30 31 22 0d  |rsion$="V 1.01".|
000000d0  00 2e 0e de 20 64 61 74  61 25 20 33 32 0d 00 32  |.... data% 32..2|
000000e0  10 6f 73 61 72 67 73 3d  26 46 46 44 41 0d 00 3c  |.osargs=&FFDA..<|
000000f0  10 6f 73 62 67 65 74 3d  26 46 46 44 37 0d 00 46  |.osbget=&FFD7..F|
00000100  10 6f 73 62 70 75 74 3d  26 46 46 44 34 0d 00 50  |.osbput=&FFD4..P|
00000110  10 6f 73 77 72 63 68 3d  26 46 46 45 45 0d 00 5a  |.oswrch=&FFEE..Z|
00000120  10 6f 73 6e 65 77 6c 3d  26 46 46 45 37 0d 00 64  |.osnewl=&FFE7..d|
00000130  10 6f 73 67 62 70 62 3d  26 46 46 44 31 0d 00 6e  |.osgbpb=&FFD1..n|
00000140  10 6f 73 66 69 6e 64 3d  26 46 46 43 45 0d 00 78  |.osfind=&FFCE..x|
00000150  10 6f 73 62 79 74 65 3d  26 46 46 46 34 0d 00 8c  |.osbyte=&FFF4...|
00000160  0f 6f 73 63 6c 69 3d 26  46 46 46 37 0d 00 8d 10  |.oscli=&FFF7....|
00000170  6f 73 77 6f 72 64 3d 26  46 46 46 31 0d 00 96 05  |osword=&FFF1....|
00000180  20 0d 00 97 1c f4 20 44  61 74 61 20 74 6f 20 62  | ..... Data to b|
00000190  65 20 70 61 73 73 65 64  20 68 65 72 65 0d 00 98  |e passed here...|
000001a0  0e 6d 65 6e 75 3d 26 33  31 30 30 0d 00 a0 14 e3  |.menu=&3100.....|
000001b0  20 70 61 73 73 3d 34 20  b8 20 36 20 88 20 32 0d  | pass=4 . 6 . 2.|
000001c0  00 aa 0c 50 25 3d 26 33  44 30 30 0d 00 ab 0c 4f  |...P%=&3D00....O|
000001d0  25 3d 26 37 30 30 30 0d  00 af 0c 73 74 61 72 74  |%=&7000....start|
000001e0  3d 4f 25 0d 00 b4 0e 5b  3a 4f 70 74 20 70 61 73  |=O%....[:Opt pas|
000001f0  73 0d 02 80 13 2e 64 69  73 70 6c 61 79 20 53 54  |s.....display ST|
00000200  58 26 37 34 0d 02 8a 0a  53 54 59 26 37 35 0d 02  |X&74....STY&75..|
00000210  94 13 2e 64 69 73 70 6c  61 79 32 20 4c 44 59 23  |...display2 LDY#|
00000220  30 0d 02 9e 15 2e 64 62  61 63 6b 20 4c 44 41 28  |0.....dback LDA(|
00000230  26 37 34 29 2c 59 0d 02  a8 0b 43 4d 50 23 26 46  |&74),Y....CMP#&F|
00000240  46 0d 02 b2 0c 42 45 51  20 64 66 6f 72 0d 02 bc  |F....BEQ dfor...|
00000250  0e 4a 53 52 20 6f 73 77  72 63 68 0d 02 c6 07 49  |.JSR oswrch....I|
00000260  4e 59 0d 02 d0 0d 4a 4d  50 20 64 62 61 63 6b 0d  |NY....JMP dback.|
00000270  02 da 0d 2e 64 66 6f 72  20 52 54 53 0d 02 e4 05  |....dfor RTS....|
00000280  20 0d 02 ee 30 2e 64 69  5f 6f 72 5f 6e 77 20 4a  | ...0.di_or_nw J|
00000290  53 52 20 6f 73 6e 65 77  6c 20 5c 20 44 69 63 74  |SR osnewl \ Dict|
000002a0  69 6f 6e 61 72 79 20 6f  72 20 6e 65 77 6f 72 64  |ionary or neword|
000002b0  73 0d 02 f3 13 4c 44 58  23 6e 77 5f 64 69 20 83  |s....LDX#nw_di .|
000002c0  20 32 35 36 0d 02 f8 13  4c 44 59 23 6e 77 5f 64  | 256....LDY#nw_d|
000002d0  69 20 81 20 32 35 36 0d  03 02 0f 4a 53 52 20 64  |i . 256....JSR d|
000002e0  69 73 70 6c 61 79 0d 03  0c 15 2e 64 6f 6e 62 61  |isplay.....donba|
000002f0  20 4a 53 52 20 72 65 61  64 63 68 0d 03 16 0c 43  | JSR readch....C|
00000300  4d 50 23 97 22 44 22 0d  03 20 0d 42 45 51 20 64  |MP#."D".. .BEQ d|
00000310  6f 6e 66 6f 0d 03 2a 0c  43 4d 50 23 97 22 4e 22  |onfo..*.CMP#."N"|
00000320  0d 03 34 0d 42 4e 45 20  64 6f 6e 62 61 0d 03 3e  |..4.BNE donba..>|
00000330  12 4c 44 41 23 31 20 5c  20 4e 65 77 6f 72 64 0d  |.LDA#1 \ Neword.|
00000340  03 48 07 52 54 53 0d 03  52 1d 2e 64 6f 6e 66 6f  |.H.RTS..R..donfo|
00000350  20 4c 44 41 23 30 20 5c  20 44 69 63 74 69 6f 6e  | LDA#0 \ Diction|
00000360  61 72 79 0d 03 5c 07 52  54 53 0d 03 66 05 20 0d  |ary..\.RTS..f. .|
00000370  03 70 13 2e 6e 77 5f 64  69 20 45 51 55 57 26 44  |.p..nw_di EQUW&D|
00000380  30 41 0d 03 7a 1f 45 51  55 53 22 44 69 63 74 69  |0A..z.EQUS"Dicti|
00000390  6f 6e 61 72 79 20 6f 72  20 4e 65 77 6f 72 64 3f  |onary or Neword?|
000003a0  22 0d 03 84 0c 45 51 55  57 26 44 30 41 0d 03 8e  |"....EQUW&D0A...|
000003b0  18 45 51 55 53 22 44 20  2d 20 44 69 63 74 69 6f  |.EQUS"D - Dictio|
000003c0  6e 61 72 79 22 0d 03 98  0c 45 51 55 57 26 44 30  |nary"....EQUW&D0|
000003d0  41 0d 03 9d 15 45 51 55  53 22 4e 20 2d 20 4e 65  |A....EQUS"N - Ne|
000003e0  77 6f 72 64 73 22 0d 03  a2 0c 45 51 55 57 26 44  |words"....EQUW&D|
000003f0  30 41 0d 03 ac 0b 45 51  55 42 26 46 46 0d 03 b6  |0A....EQUB&FF...|
00000400  05 20 0d 03 c0 15 2e 73  63 72 65 65 6e 31 20 45  |. .....screen1 E|
00000410  51 55 57 26 37 31 36 0d  03 d4 14 45 51 55 42 33  |QUW&716....EQUB3|
00000420  31 3a 42 52 4b 3a 45 51  55 42 31 0d 03 f2 1b 45  |1:BRK:EQUB1....E|
00000430  51 55 42 31 35 37 3a 45  51 55 42 31 33 31 3a 45  |QUB157:EQUB131:E|
00000440  51 55 42 31 34 31 0d 04  10 16 45 51 55 42 33 31  |QUB141....EQUB31|
00000450  3a 45 51 55 42 38 3a 45  51 55 42 31 0d 04 2e 0b  |:EQUB8:EQUB1....|
00000460  45 51 55 42 31 32 39 0d  04 38 20 45 51 55 53 22  |EQUB129..8 EQUS"|
00000470  57 61 74 63 68 65 72 20  4d 65 6e 75 20 22 2b 76  |Watcher Menu "+v|
00000480  65 72 73 69 6f 6e 24 0d  04 42 16 45 51 55 42 33  |ersion$..B.EQUB3|
00000490  31 3a 45 51 55 42 30 3a  45 51 55 42 32 0d 04 60  |1:EQUB0:EQUB2..`|
000004a0  1b 45 51 55 42 31 35 37  3a 45 51 55 42 31 33 31  |.EQUB157:EQUB131|
000004b0  3a 45 51 55 42 31 34 31  0d 04 7e 16 45 51 55 42  |:EQUB141..~.EQUB|
000004c0  33 31 3a 45 51 55 42 38  3a 45 51 55 42 32 0d 04  |31:EQUB8:EQUB2..|
000004d0  9c 0b 45 51 55 42 31 32  39 0d 04 a6 20 45 51 55  |..EQUB129... EQU|
000004e0  53 22 57 61 74 63 68 65  72 20 4d 65 6e 75 20 22  |S"Watcher Menu "|
000004f0  2b 76 65 72 73 69 6f 6e  24 0d 04 ba 16 45 51 55  |+version$....EQU|
00000500  42 33 31 3a 45 51 55 42  39 3a 45 51 55 42 33 0d  |B31:EQUB9:EQUB3.|
00000510  04 d8 1e 45 51 55 53 22  28 43 29 20 41 6c 6c 61  |...EQUS"(C) Alla|
00000520  6e 20 4b 65 6c 6c 79 20  31 39 38 37 22 0d 04 e2  |n Kelly 1987"...|
00000530  16 45 51 55 42 33 31 3a  45 51 55 42 33 3a 45 51  |.EQUB31:EQUB3:EQ|
00000540  55 42 35 0d 04 ec 1c 45  51 55 53 22 57 20 2d 20  |UB5....EQUS"W - |
00000550  43 68 65 63 6b 20 44 6f  63 75 6d 65 6e 74 22 0d  |Check Document".|
00000560  04 f6 16 45 51 55 42 33  31 3a 45 51 55 42 33 3a  |...EQUB31:EQUB3:|
00000570  45 51 55 42 37 0d 05 00  2a 45 51 55 53 22 4d 20  |EQUB7...*EQUS"M |
00000580  2d 20 4d 65 72 67 65 20  4e 65 77 6f 72 64 73 20  |- Merge Newords |
00000590  61 6e 64 20 44 69 63 74  69 6f 6e 61 72 79 22 0d  |and Dictionary".|
000005a0  05 0a 16 45 51 55 42 33  31 3a 45 51 55 42 33 3a  |...EQUB31:EQUB3:|
000005b0  45 51 55 42 39 0d 05 14  2e 45 51 55 53 22 4c 20  |EQUB9....EQUS"L |
000005c0  2d 20 4c 69 73 74 20 77  6f 72 64 73 20 28 20 44  |- List words ( D|
000005d0  69 63 74 69 6f 6e 61 72  79 20 6f 72 20 4e 65 77  |ictionary or New|
000005e0  20 29 22 0d 05 1e 17 45  51 55 42 33 31 3a 45 51  | )"....EQUB31:EQ|
000005f0  55 42 33 3a 45 51 55 42  31 31 0d 05 28 2f 45 51  |UB3:EQUB11..(/EQ|
00000600  55 53 22 44 20 2d 20 44  65 6c 65 74 65 20 77 6f  |US"D - Delete wo|
00000610  72 64 20 28 20 44 69 63  74 69 6f 6e 61 72 79 20  |rd ( Dictionary |
00000620  6f 72 20 4e 65 77 20 29  22 0d 05 32 17 45 51 55  |or New )"..2.EQU|
00000630  42 33 31 3a 45 51 55 42  33 3a 45 51 55 42 31 33  |B31:EQUB3:EQUB13|
00000640  0d 05 3c 16 45 51 55 53  22 41 20 2d 20 41 64 64  |..<.EQUS"A - Add|
00000650  20 77 6f 72 64 22 0d 05  3d 0b 45 51 55 42 26 46  | word"..=.EQUB&F|
00000660  46 0d 05 46 20 2e 73 63  72 65 65 6e 32 20 45 51  |F..F .screen2 EQ|
00000670  55 42 33 31 3a 45 51 55  42 33 3a 45 51 55 42 31  |UB31:EQUB3:EQUB1|
00000680  35 0d 05 50 19 45 51 55  53 22 43 20 2d 20 43 6f  |5..P.EQUS"C - Co|
00000690  75 6e 74 20 77 6f 72 64  73 22 0d 05 51 17 45 51  |unt words"..Q.EQ|
000006a0  55 42 33 31 3a 45 51 55  42 33 3a 45 51 55 42 31  |UB31:EQUB3:EQUB1|
000006b0  37 0d 05 52 1d 45 51 55  53 22 53 20 2d 20 53 65  |7..R.EQUS"S - Se|
000006c0  61 72 63 68 20 66 6f 72  20 77 6f 72 64 22 0d 05  |arch for word"..|
000006d0  5a 17 45 51 55 42 33 31  3a 45 51 55 42 33 3a 45  |Z.EQUB31:EQUB3:E|
000006e0  51 55 42 31 39 0d 05 64  22 45 51 55 53 22 52 20  |QUB19..d"EQUS"R |
000006f0  2d 20 52 65 70 61 69 72  20 4e 65 77 20 57 6f 72  |- Repair New Wor|
00000700  64 20 66 69 6c 65 22 0d  05 96 17 45 51 55 42 33  |d file"....EQUB3|
00000710  31 3a 45 51 55 42 33 3a  45 51 55 42 32 30 0d 05  |1:EQUB3:EQUB20..|
00000720  a0 26 45 51 55 53 22 2a  20 2d 20 4f 70 65 72 61  |.&EQUS"* - Opera|
00000730  74 69 6e 67 20 53 79 73  74 65 6d 20 43 6f 6d 6d  |ting System Comm|
00000740  61 6e 64 22 0d 05 aa 17  45 51 55 42 33 31 3a 45  |and"....EQUB31:E|
00000750  51 55 42 33 3a 45 51 55  42 32 31 0d 05 b4 17 45  |QUB3:EQUB21....E|
00000760  51 55 53 22 51 20 2d 20  51 75 69 74 20 6d 65 6e  |QUS"Q - Quit men|
00000770  75 22 0d 05 be 0b 45 51  55 42 26 46 46 0d 07 6c  |u"....EQUB&FF..l|
00000780  1d 2e 72 65 74 75 72 6e  20 4c 44 58 23 72 65 5f  |..return LDX#re_|
00000790  6d 65 73 73 20 83 20 32  35 36 0d 07 76 15 4c 44  |mess . 256..v.LD|
000007a0  59 23 72 65 5f 6d 65 73  73 20 81 20 32 35 36 0d  |Y#re_mess . 256.|
000007b0  07 80 0f 4a 53 52 20 64  69 73 70 6c 61 79 0d 07  |...JSR display..|
000007c0  8a 0a 4c 44 41 23 32 31  0d 07 94 09 4c 44 58 23  |..LDA#21....LDX#|
000007d0  30 0d 07 9e 0e 4a 53 52  20 6f 73 62 79 74 65 0d  |0....JSR osbyte.|
000007e0  07 a8 14 2e 72 65 62 61  20 4a 53 52 20 72 65 61  |....reba JSR rea|
000007f0  64 63 68 0d 07 b2 0a 43  4d 50 23 26 44 0d 07 bc  |dch....CMP#&D...|
00000800  0c 42 4e 45 20 72 65 62  61 0d 07 c6 07 52 54 53  |.BNE reba....RTS|
00000810  0d 07 c7 15 2e 72 65 5f  6d 65 73 73 20 45 51 55  |.....re_mess EQU|
00000820  57 26 44 30 41 0d 07 c8  16 45 51 55 53 22 50 72  |W&D0A....EQUS"Pr|
00000830  65 73 73 20 52 45 54 55  52 4e 22 0d 07 c9 0b 45  |ess RETURN"....E|
00000840  51 55 42 26 46 46 0d 07  cb 05 20 0d 07 d0 17 2e  |QUB&FF.... .....|
00000850  70 72 69 6e 74 5f 77 6f  72 64 20 4c 44 58 20 73  |print_word LDX s|
00000860  70 77 0d 07 da 0a 4c 44  41 23 33 32 0d 07 e4 1a  |pw....LDA#32....|
00000870  2e 70 72 62 61 20 53 54  41 20 6f 75 74 5f 73 74  |.prba STA out_st|
00000880  72 69 6e 67 2c 58 0d 07  ee 07 44 45 58 0d 07 f8  |ring,X....DEX...|
00000890  0c 42 4e 45 20 70 72 62  61 0d 08 02 16 2e 70 72  |.BNE prba.....pr|
000008a0  62 61 32 20 4c 44 41 20  72 77 6f 72 64 2c 58 0d  |ba2 LDA rword,X.|
000008b0  08 0c 0a 43 4d 50 23 26  44 0d 08 16 0c 42 45 51  |...CMP#&D....BEQ|
000008c0  20 70 72 66 6f 0d 08 20  14 53 54 41 20 6f 75 74  | prfo.. .STA out|
000008d0  5f 73 74 72 69 6e 67 2c  58 0d 08 2a 07 49 4e 58  |_string,X..*.INX|
000008e0  0d 08 34 0d 4a 4d 50 20  70 72 62 61 32 0d 08 3e  |..4.JMP prba2..>|
000008f0  05 20 0d 08 48 0f 2e 70  72 66 6f 20 4c 44 58 23  |. ..H..prfo LDX#|
00000900  30 0d 08 52 1b 2e 70 72  62 61 33 20 4c 44 41 20  |0..R..prba3 LDA |
00000910  6f 75 74 5f 73 74 72 69  6e 67 2c 58 0d 08 5c 0e  |out_string,X..\.|
00000920  4a 53 52 20 6f 73 77 72  63 68 0d 08 66 07 49 4e  |JSR oswrch..f.IN|
00000930  58 0d 08 70 0b 43 50 58  20 73 70 77 0d 08 7a 0d  |X..p.CPX spw..z.|
00000940  42 4e 45 20 70 72 62 61  33 0d 08 84 0b 49 4e 43  |BNE prba3....INC|
00000950  20 77 74 6c 0d 08 8e 0b  4c 44 41 20 77 74 6c 0d  | wtl....LDA wtl.|
00000960  08 98 0b 43 4d 50 20 77  70 6c 0d 08 a2 0d 42 43  |...CMP wpl....BC|
00000970  53 20 70 72 66 6f 32 0d  08 ac 07 52 54 53 0d 08  |S prfo2....RTS..|
00000980  b6 15 2e 70 72 66 6f 32  20 4a 53 52 20 6f 73 6e  |...prfo2 JSR osn|
00000990  65 77 6c 0d 08 c0 09 4c  44 41 23 30 0d 08 ca 0b  |ewl....LDA#0....|
000009a0  53 54 41 20 77 74 6c 0d  08 d4 07 52 54 53 0d 08  |STA wtl....RTS..|
000009b0  de 05 20 0d 08 e8 15 2e  73 74 61 67 65 33 20 4c  |.. .....stage3 L|
000009c0  44 41 20 73 70 6f 6f 6c  0d 08 f2 0c 42 45 51 20  |DA spool....BEQ |
000009d0  73 33 66 6f 0d 08 fc 13  4c 44 58 23 63 6c 5f 73  |s3fo....LDX#cl_s|
000009e0  70 20 83 20 32 35 36 0d  09 06 13 4c 44 59 23 63  |p . 256....LDY#c|
000009f0  6c 5f 73 70 20 81 20 32  35 36 0d 09 10 0d 4a 53  |l_sp . 256....JS|
00000a00  52 20 6f 73 63 6c 69 0d  09 1a 15 2e 73 33 66 6f  |R oscli.....s3fo|
00000a10  20 4c 44 41 20 70 72 69  6e 74 65 72 0d 09 24 0c  | LDA printer..$.|
00000a20  42 45 51 73 33 66 6f 32  0d 09 2e 09 4c 44 41 23  |BEQs3fo2....LDA#|
00000a30  33 0d 09 38 0e 4a 53 52  20 6f 73 77 72 63 68 0d  |3..8.JSR oswrch.|
00000a40  09 3d 0e 2e 73 33 66 6f  32 20 52 54 53 0d 09 42  |.=..s3fo2 RTS..B|
00000a50  05 20 0d 09 4c 11 2e 61  6c 6c 5f 66 6c 61 67 20  |. ..L..all_flag |
00000a60  42 52 4b 0d 09 56 0c 2e  77 74 6c 20 42 52 4b 0d  |BRK..V..wtl BRK.|
00000a70  09 60 0e 2e 77 70 6c 20  45 51 55 42 32 0d 09 6a  |.`..wpl EQUB2..j|
00000a80  15 2e 6c 69 6e 65 5f 6c  65 6e 20 45 51 55 42 20  |..line_len EQUB |
00000a90  34 30 0d 09 74 0f 2e 73  70 77 20 45 51 55 42 31  |40..t..spw EQUB1|
00000aa0  39 0d 09 7e 10 2e 70 72  69 6e 74 65 72 20 42 52  |9..~..printer BR|
00000ab0  4b 0d 09 88 0e 2e 73 70  6f 6f 6c 20 42 52 4b 0d  |K.....spool BRK.|
00000ac0  09 92 05 20 0d 09 9c 2b  2e 6e 77 5f 72 65 61 64  |... ...+.nw_read|
00000ad0  20 4c 44 58 23 30 20 5c  20 53 74 6f 72 61 67 65  | LDX#0 \ Storage|
00000ae0  20 6f 66 66 73 65 74 20  70 6f 69 6e 74 65 72 0d  | offset pointer.|
00000af0  09 a6 11 4c 44 59 20 6e  77 5f 68 61 6e 64 6c 65  |...LDY nw_handle|
00000b00  0d 09 b0 09 4c 44 58 23  30 0d 09 ba 14 2e 72 73  |....LDX#0.....rs|
00000b10  62 61 20 4a 53 52 20 6f  73 62 67 65 74 0d 09 c4  |ba JSR osbget...|
00000b20  0f 53 54 41 20 72 77 6f  72 64 2c 58 0d 09 ce 07  |.STA rword,X....|
00000b30  49 4e 58 0d 09 d8 0a 43  4d 50 23 26 44 0d 09 e2  |INX....CMP#&D...|
00000b40  0c 42 4e 45 20 72 73 62  61 0d 09 ec 07 44 45 58  |.BNE rsba....DEX|
00000b50  0d 09 f6 13 53 54 58 72  77 6f 72 64 5f 6c 65 6e  |....STXrword_len|
00000b60  67 74 68 0d 0a 00 07 52  54 53 0d 0a 0a 05 20 0d  |gth....RTS.... .|
00000b70  0a 14 21 2e 67 65 74 5f  64 61 74 61 20 4c 44 58  |..!.get_data LDX|
00000b80  23 77 6f 72 64 73 5f 6c  69 6e 65 20 83 32 35 36  |#words_line .256|
00000b90  0d 0a 1e 17 4c 44 59 23  77 6f 72 64 73 5f 6c 69  |....LDY#words_li|
00000ba0  6e 65 20 81 32 35 36 0d  0a 28 0f 4a 53 52 20 64  |ne .256..(.JSR d|
00000bb0  69 73 70 6c 61 79 0d 0a  32 14 2e 67 64 62 61 20  |isplay..2..gdba |
00000bc0  4a 53 52 20 72 65 61 64  63 68 0d 0a 3c 0a 43 4d  |JSR readch..<.CM|
00000bd0  50 23 34 39 0d 0a 46 0c  42 43 43 20 67 64 62 61  |P#49..F.BCC gdba|
00000be0  0d 0a 50 0a 43 4d 50 23  35 38 0d 0a 5a 0c 42 43  |..P.CMP#58..Z.BC|
00000bf0  53 20 67 64 62 61 0d 0a  64 0e 4a 53 52 20 6f 73  |S gdba..d.JSR os|
00000c00  77 72 63 68 0d 0a 6e 07  53 45 43 0d 0a 78 0a 53  |wrch..n.SEC..x.S|
00000c10  42 43 23 34 38 0d 0a 82  0a 53 54 41 77 70 6c 0d  |BC#48....STAwpl.|
00000c20  0a 8c 05 20 0d 0a 96 11  4c 44 58 23 6c 6f 6c 20  |... ....LDX#lol |
00000c30  83 20 32 35 36 0d 0a a0  11 4c 44 59 23 6c 6f 6c  |. 256....LDY#lol|
00000c40  20 81 20 32 35 36 0d 0a  aa 0f 4a 53 52 20 64 69  | . 256....JSR di|
00000c50  73 70 6c 61 79 0d 0a b4  15 2e 67 64 62 61 32 20  |splay.....gdba2 |
00000c60  4a 53 52 20 72 65 61 64  63 68 0d 0a be 0a 43 4d  |JSR readch....CM|
00000c70  50 23 34 39 0d 0a c8 0d  42 43 43 20 67 64 62 61  |P#49....BCC gdba|
00000c80  32 0d 0a d2 0a 43 4d 50  23 35 38 0d 0a dc 0d 42  |2....CMP#58....B|
00000c90  43 53 20 67 64 62 61 32  0d 0a e6 0a 53 54 41 20  |CS gdba2....STA |
00000ca0  73 61 0d 0a f0 0e 4a 53  52 20 6f 73 77 72 63 68  |sa....JSR oswrch|
00000cb0  0d 0a fa 05 20 0d 0b 04  15 2e 67 64 62 61 33 20  |.... .....gdba3 |
00000cc0  4a 53 52 20 72 65 61 64  63 68 0d 0b 0e 0a 43 4d  |JSR readch....CM|
00000cd0  50 23 31 33 0d 0b 18 0c  42 45 51 20 67 64 66 6f  |P#13....BEQ gdfo|
00000ce0  0d 0b 22 0b 43 4d 50 23  31 32 37 0d 0b 2c 0d 42  |..".CMP#127..,.B|
00000cf0  4e 45 20 67 64 66 6f 32  0d 0b 36 0e 4a 53 52 20  |NE gdfo2..6.JSR |
00000d00  6f 73 77 72 63 68 0d 0b  40 0d 4a 4d 50 20 67 64  |oswrch..@.JMP gd|
00000d10  62 61 32 0d 0b 4a 11 2e  67 64 66 6f 32 20 43 4d  |ba2..J..gdfo2 CM|
00000d20  50 23 34 38 0d 0b 54 0d  42 43 43 20 67 64 62 61  |P#48..T.BCC gdba|
00000d30  33 0d 0b 5e 0a 43 4d 50  23 35 38 0d 0b 68 0d 42  |3..^.CMP#58..h.B|
00000d40  43 53 20 67 64 62 61 33  0d 0b 72 0e 4a 53 52 20  |CS gdba3..r.JSR |
00000d50  6f 73 77 72 63 68 0d 0b  7c 05 20 0d 0b 86 07 53  |oswrch..|. ....S|
00000d60  45 43 0d 0b 90 0a 53 42  43 23 34 38 0d 0b 9a 07  |EC....SBC#48....|
00000d70  54 41 59 0d 0b a4 0a 4c  44 41 20 73 61 0d 0b ae  |TAY....LDA sa...|
00000d80  07 53 45 43 0d 0b b8 0a  53 42 43 23 34 38 0d 0b  |.SEC....SBC#48..|
00000d90  c2 07 54 41 58 0d 0b cc  0e 4c 44 41 20 74 65 6e  |..TAX....LDA ten|
00000da0  73 2c 58 0d 0b d6 0a 53  54 41 20 73 61 0d 0b e0  |s,X....STA sa...|
00000db0  07 54 59 41 0d 0b ea 07  43 4c 43 0d 0b f4 0a 41  |.TYA....CLC....A|
00000dc0  44 43 20 73 61 0d 0b fe  10 53 54 41 20 6c 69 6e  |DC sa....STA lin|
00000dd0  65 5f 6c 65 6e 0d 0c 08  0d 4a 4d 50 20 67 64 66  |e_len....JMP gdf|
00000de0  6f 33 0d 0c 12 10 2e 67  64 66 6f 20 4c 44 41 20  |o3.....gdfo LDA |
00000df0  73 61 0d 0c 1c 07 53 45  43 0d 0c 26 0a 53 42 43  |sa....SEC..&.SBC|
00000e00  23 34 38 0d 0c 30 10 53  54 41 20 6c 69 6e 65 5f  |#48..0.STA line_|
00000e10  6c 65 6e 0d 0c 3a 05 20  0d 0c 44 10 2e 67 64 66  |len..:. ..D..gdf|
00000e20  6f 33 20 4c 44 58 23 30  0d 0c 4e 10 4c 44 41 20  |o3 LDX#0..N.LDA |
00000e30  6c 69 6e 65 5f 6c 65 6e  0d 0c 58 0e 2e 67 64 62  |line_len..X..gdb|
00000e40  61 34 20 49 4e 58 0d 0c  62 07 53 45 43 0d 0c 6c  |a4 INX..b.SEC..l|
00000e50  0a 53 42 43 77 70 6c 0d  0c 76 0d 42 50 4c 20 67  |.SBCwpl..v.BPL g|
00000e60  64 62 61 34 0d 0c 80 07  44 45 58 0d 0c 8a 0b 53  |dba4....DEX....S|
00000e70  54 58 20 73 70 77 0d 0c  94 05 20 0d 0c 9e 1a 4c  |TX spw.... ....L|
00000e80  44 58 23 70 72 69 6e 74  65 72 5f 6d 65 73 73 20  |DX#printer_mess |
00000e90  83 20 32 35 36 0d 0c a8  1a 4c 44 59 23 70 72 69  |. 256....LDY#pri|
00000ea0  6e 74 65 72 5f 6d 65 73  73 20 81 20 32 35 36 0d  |nter_mess . 256.|
00000eb0  0c b2 0f 4a 53 52 20 64  69 73 70 6c 61 79 0d 0c  |...JSR display..|
00000ec0  bc 09 4c 44 41 23 30 0d  0c c6 0f 53 54 41 20 70  |..LDA#0....STA p|
00000ed0  72 69 6e 74 65 72 0d 0c  d0 0d 53 54 41 20 73 70  |rinter....STA sp|
00000ee0  6f 6f 6c 0d 0c da 15 2e  67 64 62 61 35 20 4a 53  |ool.....gdba5 JS|
00000ef0  52 20 72 65 61 64 63 68  0d 0c e4 0c 43 4d 50 23  |R readch....CMP#|
00000f00  97 22 4e 22 0d 0c ee 0d  42 45 51 20 67 64 66 6f  |."N"....BEQ gdfo|
00000f10  34 0d 0c f8 0c 43 4d 50  23 97 22 59 22 0d 0d 02  |4....CMP#."Y"...|
00000f20  0d 42 4e 45 20 67 64 62  61 35 0d 0d 0c 09 4c 44  |.BNE gdba5....LD|
00000f30  41 23 31 0d 0d 16 0f 53  54 41 20 70 72 69 6e 74  |A#1....STA print|
00000f40  65 72 0d 0d 20 05 20 0d  0d 2a 1f 2e 67 64 66 6f  |er.. . ..*..gdfo|
00000f50  34 20 4c 44 58 23 73 70  6f 6f 6c 5f 6d 65 73 73  |4 LDX#spool_mess|
00000f60  20 83 20 32 35 36 0d 0d  34 18 4c 44 59 23 73 70  | . 256..4.LDY#sp|
00000f70  6f 6f 6c 5f 6d 65 73 73  20 81 20 32 35 36 0d 0d  |ool_mess . 256..|
00000f80  3e 0f 4a 53 52 20 64 69  73 70 6c 61 79 0d 0d 48  |>.JSR display..H|
00000f90  15 2e 67 64 62 61 36 20  4a 53 52 20 72 65 61 64  |..gdba6 JSR read|
00000fa0  63 68 0d 0d 52 0c 43 4d  50 23 97 22 4e 22 0d 0d  |ch..R.CMP#."N"..|
00000fb0  5c 0d 42 45 51 20 67 64  66 6f 35 0d 0d 66 0c 43  |\.BEQ gdfo5..f.C|
00000fc0  4d 50 23 97 22 59 22 0d  0d 70 0d 42 4e 45 20 67  |MP#."Y"..p.BNE g|
00000fd0  64 62 61 36 0d 0d 7a 13  4c 44 58 23 73 70 5f 69  |dba6..z.LDX#sp_i|
00000fe0  6e 20 83 20 32 35 36 0d  0d 84 13 4c 44 59 23 73  |n . 256....LDY#s|
00000ff0  70 5f 69 6e 20 81 20 32  35 36 0d 0d 8e 0f 4a 53  |p_in . 256....JS|
00001000  52 20 64 69 73 70 6c 61  79 0d 0d 98 09 4c 44 41  |R display....LDA|
00001010  23 30 0d 0d a2 16 4c 44  58 23 73 70 5f 62 6c 6f  |#0....LDX#sp_blo|
00001020  63 6b 20 83 20 32 35 36  0d 0d ac 16 4c 44 59 23  |ck . 256....LDY#|
00001030  73 70 5f 62 6c 6f 63 6b  20 81 20 32 35 36 0d 0d  |sp_block . 256..|
00001040  b6 0e 4a 53 52 20 6f 73  77 6f 72 64 0d 0d c0 0a  |..JSR osword....|
00001050  4c 44 41 23 26 44 0d 0d  ca 0d 53 54 41 20 73 70  |LDA#&D....STA sp|
00001060  6f 6f 6c 0d 0d d4 11 53  54 41 20 73 70 5f 6e 61  |ool....STA sp_na|
00001070  6d 65 2c 59 0d 0d de 05  20 0d 0d e8 16 2e 67 64  |me,Y.... .....gd|
00001080  66 6f 35 20 4c 44 41 20  70 72 69 6e 74 65 72 0d  |fo5 LDA printer.|
00001090  0d f2 0d 42 45 51 20 67  64 66 6f 36 0d 0d fc 09  |...BEQ gdfo6....|
000010a0  4c 44 41 23 32 0d 0e 06  0e 4a 53 52 20 6f 73 77  |LDA#2....JSR osw|
000010b0  72 63 68 0d 0e 10 14 2e  67 64 66 6f 36 20 4c 44  |rch.....gdfo6 LD|
000010c0  41 20 73 70 6f 6f 6c 0d  0e 1a 0d 42 45 51 20 67  |A spool....BEQ g|
000010d0  64 66 6f 37 0d 0e 24 15  4c 44 58 23 73 70 5f 6f  |dfo7..$.LDX#sp_o|
000010e0  70 65 6e 20 83 20 32 35  36 0d 0e 2e 15 4c 44 59  |pen . 256....LDY|
000010f0  23 73 70 5f 6f 70 65 6e  20 81 20 32 35 36 0d 0e  |#sp_open . 256..|
00001100  38 0d 4a 53 52 20 6f 73  63 6c 69 0d 0e 42 0e 2e  |8.JSR oscli..B..|
00001110  67 64 66 6f 37 20 52 54  53 0d 0e 4c 05 20 0d 0e  |gdfo7 RTS..L. ..|
00001120  56 11 2e 6c 6f 6c 20 45  51 55 57 26 44 30 41 0d  |V..lol EQUW&D0A.|
00001130  0e 60 19 45 51 55 53 22  4c 65 6e 67 74 68 20 6f  |.`.EQUS"Length o|
00001140  66 20 6c 69 6e 65 3f 22  0d 0e 6a 0b 45 51 55 42  |f line?"..j.EQUB|
00001150  26 46 46 0d 0e 74 18 2e  77 6f 72 64 73 5f 6c 69  |&FF..t..words_li|
00001160  6e 65 20 45 51 55 57 26  44 30 41 0d 0e 7e 19 45  |ne EQUW&D0A..~.E|
00001170  51 55 53 22 57 6f 72 64  73 20 70 65 72 20 6c 69  |QUS"Words per li|
00001180  6e 65 3f 22 0d 0e 88 0b  45 51 55 42 26 46 46 0d  |ne?"....EQUB&FF.|
00001190  0e 92 13 2e 74 65 6e 73  20 45 51 55 57 26 30 41  |....tens EQUW&0A|
000011a0  30 30 0d 0e 9c 0d 45 51  55 57 26 31 45 31 34 0d  |00....EQUW&1E14.|
000011b0  0e a6 0d 45 51 55 57 26  33 32 32 38 0d 0e b0 0d  |...EQUW&3228....|
000011c0  45 51 55 57 26 34 36 33  43 0d 0e ba 0d 45 51 55  |EQUW&463C....EQU|
000011d0  57 26 35 41 35 30 0d 0e  c4 16 2e 63 6c 5f 73 70  |W&5A50.....cl_sp|
000011e0  20 45 51 55 53 22 53 50  4f 4f 4c 22 0d 0e ce 0a  | EQUS"SPOOL"....|
000011f0  45 51 55 42 26 44 0d 0e  d8 0b 45 51 55 42 26 46  |EQUB&D....EQUB&F|
00001200  46 0d 0e e2 1a 2e 70 72  69 6e 74 65 72 5f 6d 65  |F.....printer_me|
00001210  73 73 20 45 51 55 57 26  44 30 41 0d 0e ec 15 45  |ss EQUW&D0A....E|
00001220  51 55 53 22 50 72 69 6e  74 65 72 20 6f 6e 3f 22  |QUS"Printer on?"|
00001230  0d 0e f6 0b 45 51 55 42  26 46 46 0d 0f 00 18 2e  |....EQUB&FF.....|
00001240  73 70 6f 6f 6c 5f 6d 65  73 73 20 45 51 55 57 26  |spool_mess EQUW&|
00001250  44 30 41 0d 0f 0a 15 45  51 55 53 22 53 70 6f 6f  |D0A....EQUS"Spoo|
00001260  6c 20 66 69 6c 65 3f 22  0d 0f 14 0b 45 51 55 42  |l file?"....EQUB|
00001270  26 46 46 0d 0f 1e 13 2e  73 70 5f 69 6e 20 45 51  |&FF.....sp_in EQ|
00001280  55 57 26 44 30 41 0d 0f  28 13 45 51 55 53 22 46  |UW&D0A..(.EQUS"F|
00001290  69 6c 65 6e 61 6d 65 3a  22 0d 0f 32 0b 45 51 55  |ilename:"..2.EQU|
000012a0  42 26 46 46 0d 0f 3c 19  2e 73 70 5f 6f 70 65 6e  |B&FF..<..sp_open|
000012b0  20 45 51 55 53 22 53 50  4f 4f 4c 20 22 0d 0f 46  | EQUS"SPOOL "..F|
000012c0  2d 2e 73 70 5f 6e 61 6d  65 20 45 51 55 53 22 41  |-.sp_name EQUS"A|
000012d0  42 43 44 45 46 47 48 49  4a 4b 4c 4d 4e 4f 50 51  |BCDEFGHIJKLMNOPQ|
000012e0  52 53 54 55 56 57 58 59  5a 22 0d 0f 50 1a 2e 73  |RSTUVWXYZ"..P..s|
000012f0  70 5f 62 6c 6f 63 6b 20  45 51 55 57 20 73 70 5f  |p_block EQUW sp_|
00001300  6e 61 6d 65 0d 0f 5a 0a  45 51 55 42 32 36 0d 0f  |name..Z.EQUB26..|
00001310  64 0a 45 51 55 42 33 32  0d 0f 6e 0b 45 51 55 42  |d.EQUB32..n.EQUB|
00001320  31 32 36 0d 0f 78 1f 2e  6f 75 74 5f 73 74 72 69  |126..x..out_stri|
00001330  6e 67 20 4f 50 54 20 a4  73 70 61 63 65 28 31 30  |ng OPT .space(10|
00001340  30 29 0d 0f 82 05 20 0d  0f a0 3c 2e 72 65 61 64  |0).... ...<.read|
00001350  5f 64 69 20 4c 44 58 23  30 20 5c 20 52 65 61 64  |_di LDX#0 \ Read|
00001360  20 66 72 6f 6d 20 64 69  63 69 74 6f 6e 20 69 6e  | from diciton in|
00001370  74 6f 20 72 77 6f 72 64  20 69 67 6e 6f 72 69 6e  |to rword ignorin|
00001380  67 20 8f 0d 0f aa 11 4c  44 59 64 69 63 5f 68 61  |g .....LDYdic_ha|
00001390  6e 64 6c 65 0d 0f b4 13  2e 72 64 62 61 20 4a 53  |ndle.....rdba JS|
000013a0  52 6f 73 62 67 65 74 0d  0f be 0e 53 54 41 72 77  |Rosbget....STArw|
000013b0  6f 72 64 2c 58 0d 0f c8  07 49 4e 58 0d 0f d2 0b  |ord,X....INX....|
000013c0  43 4d 50 23 31 32 38 0d  0f dc 0b 42 43 43 72 64  |CMP#128....BCCrd|
000013d0  62 61 0d 0f e6 13 53 54  58 72 77 6f 72 64 5f 6c  |ba....STXrword_l|
000013e0  65 6e 67 74 68 0d 0f f0  07 44 45 58 0d 0f fa 09  |ength....DEX....|
000013f0  80 23 31 32 37 0d 10 04  0e 53 54 41 72 77 6f 72  |.#127....STArwor|
00001400  64 2c 58 0d 10 0e 07 49  4e 58 0d 10 18 0a 4c 44  |d,X....INX....LD|
00001410  41 23 26 44 0d 10 22 0e  53 54 41 72 77 6f 72 64  |A#&D..".STArword|
00001420  2c 58 0d 10 2c 07 52 54  53 0d 10 36 05 20 0d 10  |,X..,.RTS..6. ..|
00001430  40 35 2e 66 75 7a 7a 79  5f 64 69 5f 63 68 65 63  |@5.fuzzy_di_chec|
00001440  6b 20 5c 20 53 65 61 72  63 68 20 66 6f 72 20 66  |k \ Search for f|
00001450  69 72 73 74 20 77 6f 72  64 20 74 68 61 74 20 66  |irst word that f|
00001460  69 74 73 0d 10 4a 2d 4c  44 41 77 6f 72 64 20 5c  |its..J-LDAword \|
00001470  20 41 73 20 64 69 63 74  69 6f 6e 5f 63 68 65 63  | As diction_chec|
00001480  6b 20 62 75 74 20 6d 61  64 65 20 46 75 7a 7a 79  |k but made Fuzzy|
00001490  0d 10 54 07 53 45 43 0d  10 5e 0a 53 42 43 23 36  |..T.SEC..^.SBC#6|
000014a0  35 0d 10 68 09 53 54 41  73 61 0d 10 72 07 43 4c  |5..h.STAsa..r.CL|
000014b0  43 0d 10 7c 09 41 44 43  73 61 0d 10 86 09 41 44  |C..|.ADCsa....AD|
000014c0  43 73 61 0d 10 90 07 54  41 59 0d 10 9a 0d 4c 44  |Csa....TAY....LD|
000014d0  41 64 6c 75 74 2c 59 0d  10 a4 0c 53 54 41 66 69  |Adlut,Y....STAfi|
000014e0  72 73 74 0d 10 ae 0f 4c  44 41 64 6c 75 74 2b 31  |rst....LDAdlut+1|
000014f0  2c 59 0d 10 b8 0e 53 54  41 66 69 72 73 74 2b 31  |,Y....STAfirst+1|
00001500  0d 10 c2 0f 4c 44 41 64  6c 75 74 2b 32 2c 59 0d  |....LDAdlut+2,Y.|
00001510  10 cc 0e 53 54 41 66 69  72 73 74 2b 32 0d 10 d6  |...STAfirst+2...|
00001520  0f 4c 44 41 64 6c 75 74  2b 33 2c 59 0d 10 e0 0b  |.LDAdlut+3,Y....|
00001530  53 54 41 6c 61 73 74 0d  10 ea 0f 4c 44 41 64 6c  |STAlast....LDAdl|
00001540  75 74 2b 34 2c 59 0d 10  f4 0d 53 54 41 6c 61 73  |ut+4,Y....STAlas|
00001550  74 2b 31 0d 10 fe 0f 4c  44 41 64 6c 75 74 2b 35  |t+1....LDAdlut+5|
00001560  2c 59 0d 11 08 0d 53 54  41 6c 61 73 74 2b 32 0d  |,Y....STAlast+2.|
00001570  11 12 05 20 0d 11 1c 18  2e 66 64 5f 63 73 20 4a  |... .....fd_cs J|
00001580  53 52 66 69 6e 64 5f 6d  69 64 6c 65 0d 11 26 10  |SRfind_midle..&.|
00001590  4a 53 52 6c 61 73 74 5f  77 6f 72 64 0d 11 30 10  |JSRlast_word..0.|
000015a0  4a 53 52 72 65 61 64 5f  77 6f 72 64 0d 11 3a 14  |JSRread_word..:.|
000015b0  4a 53 52 66 75 7a 7a 79  5f 63 6f 6d 70 61 72 65  |JSRfuzzy_compare|
000015c0  0d 11 44 09 43 4d 50 23  30 0d 11 4e 0d 42 4e 45  |..D.CMP#0..N.BNE|
000015d0  20 66 64 66 6f 31 0d 11  58 0c 4c 44 41 6d 69 64  | fdfo1..X.LDAmid|
000015e0  6c 65 0d 11 62 0b 53 54  41 6c 61 73 74 0d 11 6c  |le..b.STAlast..l|
000015f0  0e 4c 44 41 6d 69 64 6c  65 2b 31 0d 11 76 0d 53  |.LDAmidle+1..v.S|
00001600  54 41 6c 61 73 74 2b 31  0d 11 80 0e 4c 44 41 6d  |TAlast+1....LDAm|
00001610  69 64 6c 65 2b 32 0d 11  8a 0d 53 54 41 6c 61 73  |idle+2....STAlas|
00001620  74 2b 32 0d 11 94 0d 4a  4d 50 20 66 64 66 6f 33  |t+2....JMP fdfo3|
00001630  0d 11 9e 05 20 0d 11 a8  13 2e 66 64 66 6f 31 20  |.... .....fdfo1 |
00001640  4c 44 41 6d 69 64 6c 65  0d 11 b2 0c 53 54 41 66  |LDAmidle....STAf|
00001650  69 72 73 74 0d 11 bc 0e  4c 44 41 6d 69 64 6c 65  |irst....LDAmidle|
00001660  2b 31 0d 11 c6 0e 53 54  41 66 69 72 73 74 2b 31  |+1....STAfirst+1|
00001670  0d 11 d0 0e 4c 44 41 6d  69 64 6c 65 2b 32 0d 11  |....LDAmidle+2..|
00001680  da 0e 53 54 41 66 69 72  73 74 2b 32 0d 11 e4 05  |..STAfirst+2....|
00001690  20 0d 11 ee 14 2e 66 64  66 6f 33 20 4c 44 41 6c  | .....fdfo3 LDAl|
000016a0  61 73 74 2b 32 0d 11 f8  0e 43 4d 50 66 69 72 73  |ast+2....CMPfirs|
000016b0  74 2b 32 0d 12 02 0c 42  43 43 66 64 5f 6e 6f 0d  |t+2....BCCfd_no.|
000016c0  12 0c 0d 4c 44 41 6c 61  73 74 2b 31 0d 12 16 0e  |...LDAlast+1....|
000016d0  43 4d 50 66 69 72 73 74  2b 31 0d 12 20 0c 42 43  |CMPfirst+1.. .BC|
000016e0  43 66 64 5f 6e 6f 0d 12  2a 0b 4c 44 41 6c 61 73  |Cfd_no..*.LDAlas|
000016f0  74 0d 12 34 07 53 45 43  0d 12 3e 0c 53 42 43 66  |t..4.SEC..>.SBCf|
00001700  69 72 73 74 0d 12 48 09  43 4d 50 23 32 0d 12 52  |irst..H.CMP#2..R|
00001710  0d 42 43 53 20 66 64 5f  63 73 0d 12 5c 0e 2e 66  |.BCS fd_cs..\..f|
00001720  64 5f 6e 6f 20 52 54 53  0d 12 66 05 20 0d 12 70  |d_no RTS..f. ..p|
00001730  28 2e 66 75 7a 7a 79 5f  63 6f 6d 70 61 72 65 20  |(.fuzzy_compare |
00001740  4c 44 59 23 30 20 5c 20  46 75 7a 7a 79 20 63 6f  |LDY#0 \ Fuzzy co|
00001750  6d 70 61 72 65 0d 12 7a  15 2e 66 63 62 61 31 20  |mpare..z..fcba1 |
00001760  4c 44 41 72 77 6f 72 64  2c 59 0d 12 84 0d 43 4d  |LDArword,Y....CM|
00001770  50 77 6f 72 64 2c 59 0d  12 8e 0c 42 4e 45 66 63  |Pword,Y....BNEfc|
00001780  66 6f 32 0d 12 98 07 49  4e 59 0d 12 a2 13 43 50  |fo2....INY....CP|
00001790  59 20 77 6f 72 64 5f 6c  65 6e 67 74 68 0d 12 ac  |Y word_length...|
000017a0  0c 42 4e 45 66 63 62 61  31 0d 12 b6 09 4c 44 41  |.BNEfcba1....LDA|
000017b0  23 30 0d 12 c0 07 52 54  53 0d 12 ca 05 20 0d 12  |#0....RTS.... ..|
000017c0  d4 14 2e 66 63 66 6f 32  20 4c 44 41 77 6f 72 64  |...fcfo2 LDAword|
000017d0  2c 59 0d 12 de 0e 43 4d  50 72 77 6f 72 64 2c 59  |,Y....CMPrword,Y|
000017e0  0d 12 e8 0c 42 43 43 66  63 66 6f 33 0d 12 f2 09  |....BCCfcfo3....|
000017f0  4c 44 41 23 31 0d 12 fc  07 52 54 53 0d 13 06 10  |LDA#1....RTS....|
00001800  2e 66 63 66 6f 33 20 4c  44 41 23 30 0d 13 10 07  |.fcfo3 LDA#0....|
00001810  52 54 53 0d 13 1a 05 20  0d 13 88 36 2e 72 65 61  |RTS.... ...6.rea|
00001820  64 63 68 20 5c 20 52 65  61 64 20 63 68 61 72 61  |dch \ Read chara|
00001830  63 74 65 72 20 28 20 6f  73 72 64 63 68 20 29 20  |cter ( osrdch ) |
00001840  77 69 74 68 20 45 53 43  20 63 68 65 63 6b 0d 13  |with ESC check..|
00001850  92 16 4a 53 52 20 26 46  46 45 30 20 5c 20 4f 53  |..JSR &FFE0 \ OS|
00001860  52 44 43 48 0d 13 9c 0e  42 43 53 20 72 65 5f 65  |RDCH....BCS re_e|
00001870  73 63 0d 13 a6 07 52 54  53 0d 13 b0 11 2e 72 65  |sc....RTS.....re|
00001880  5f 65 73 63 20 4c 44 41  23 30 0d 13 ba 09 4c 44  |_esc LDA#0....LD|
00001890  59 23 30 0d 13 c4 0e 4a  53 52 20 6f 73 66 69 6e  |Y#0....JSR osfin|
000018a0  64 0d 13 ce 0b 4c 44 41  23 26 37 45 0d 13 d8 0e  |d....LDA#&7E....|
000018b0  4a 53 52 20 6f 73 62 79  74 65 0d 13 e2 0b 43 50  |JSR osbyte....CP|
000018c0  58 23 26 46 46 0d 13 ec  0e 42 4e 45 20 72 65 5f  |X#&FF....BNE re_|
000018d0  65 73 63 0d 13 f6 0c 4a  4d 50 20 6d 65 6e 75 0d  |esc....JMP menu.|
000018e0  14 50 05 20 0d 14 5a 21  2e 63 72 65 64 69 74 73  |.P. ..Z!.credits|
000018f0  20 5c 20 53 75 62 20 66  72 6f 6d 20 6d 61 69 6e  | \ Sub from main|
00001900  20 6d 65 6e 75 0d 14 aa  16 4c 44 41 23 63 72 65  | menu....LDA#cre|
00001910  5f 6d 65 73 73 20 83 20  32 35 36 0d 14 b4 0a 53  |_mess . 256....S|
00001920  54 41 26 37 30 0d 14 be  16 4c 44 41 23 63 72 65  |TA&70....LDA#cre|
00001930  5f 6d 65 73 73 20 81 20  32 35 36 0d 14 c8 0a 53  |_mess . 256....S|
00001940  54 41 26 37 31 0d 14 d2  09 4c 44 59 23 30 0d 14  |TA&71....LDY#0..|
00001950  dc 15 2e 63 72 65 62 61  20 4c 44 41 28 26 37 30  |...creba LDA(&70|
00001960  29 2c 59 0d 14 e6 0e 4a  53 52 20 6f 73 77 72 63  |),Y....JSR oswrc|
00001970  68 0d 14 eb 0a 4c 44 59  23 34 38 0d 14 f0 11 2e  |h....LDY#48.....|
00001980  63 72 65 62 61 33 20 4c  44 58 23 30 0d 14 fa 0f  |creba3 LDX#0....|
00001990  2e 63 72 65 62 61 32 20  44 45 58 0d 15 04 0e 42  |.creba2 DEX....B|
000019a0  4e 45 20 63 72 65 62 61  32 0d 15 09 07 44 45 59  |NE creba2....DEY|
000019b0  0d 15 0a 0e 42 4e 45 20  63 72 65 62 61 33 0d 15  |....BNE creba3..|
000019c0  0e 0a 4c 44 41 26 37 30  0d 15 18 07 43 4c 43 0d  |..LDA&70....CLC.|
000019d0  15 22 09 41 44 43 23 31  0d 15 2c 0a 53 54 41 26  |.".ADC#1..,.STA&|
000019e0  37 30 0d 15 36 0a 4c 44  41 26 37 31 0d 15 40 09  |70..6.LDA&71..@.|
000019f0  41 44 43 23 30 0d 15 4a  0a 53 54 41 26 37 31 0d  |ADC#0..J.STA&71.|
00001a00  15 54 0e 4c 44 41 28 26  37 30 29 2c 59 0d 15 5e  |.T.LDA(&70),Y..^|
00001a10  0b 43 4d 50 23 26 46 46  0d 15 68 0d 42 4e 45 20  |.CMP#&FF..h.BNE |
00001a20  63 72 65 62 61 0d 15 69  0a 4c 44 41 23 32 31 0d  |creba..i.LDA#21.|
00001a30  15 6a 09 4c 44 58 23 30  0d 15 6b 0e 4a 53 52 20  |.j.LDX#0..k.JSR |
00001a40  6f 73 62 79 74 65 0d 15  72 0e 4a 53 52 20 72 65  |osbyte..r.JSR re|
00001a50  61 64 63 68 0d 15 7c 07  52 54 53 0d 15 86 05 20  |adch..|.RTS.... |
00001a60  0d 15 90 1a 2e 63 72 65  5f 6d 65 73 73 20 45 51  |.....cre_mess EQ|
00001a70  55 44 26 44 30 41 30 44  30 41 0d 15 9a 49 45 51  |UD&D0A0D0A...IEQ|
00001a80  55 53 22 4d 61 6e 79 2c  20 6d 61 6e 79 20 74 68  |US"Many, many th|
00001a90  61 6e 6b 73 20 74 6f 20  44 61 76 69 64 20 48 61  |anks to David Ha|
00001aa0  6c 6c 69 67 61 6e 20 66  6f 72 20 69 64 65 61 73  |lligan for ideas|
00001ab0  2c 20 63 72 69 74 69 63  69 73 6d 73 2c 20 65 74  |, criticisms, et|
00001ac0  63 2e 22 0d 15 a4 10 45  51 55 44 26 44 30 41 30  |c."....EQUD&D0A0|
00001ad0  44 30 41 0d 15 ae 41 45  51 55 53 22 57 61 74 63  |D0A...AEQUS"Watc|
00001ae0  68 65 72 20 69 73 20 64  65 64 69 63 61 74 65 64  |her is dedicated|
00001af0  20 74 6f 20 61 6c 6c 20  61 74 20 4f 72 72 65 74  | to all at Orret|
00001b00  74 73 20 20 4d 65 61 64  6f 77 20 31 39 38 30 2f  |ts  Meadow 1980/|
00001b10  38 32 2e 22 0d 15 b8 10  45 51 55 44 26 44 30 41  |82."....EQUD&D0A|
00001b20  30 44 30 41 0d 15 c2 53  45 51 55 53 22 47 65 6e  |0D0A...SEQUS"Gen|
00001b30  65 72 61 6c 20 74 68 61  6e 6b 73 20 74 6f 3a 20  |eral thanks to: |
00001b40  54 6f 6e 79 2c 20 44 61  76 69 64 20 28 61 67 61  |Tony, David (aga|
00001b50  69 6e 29 2c 20 54 68 65  20 4e 65 73 74 6f 6e 20  |in), The Neston |
00001b60  4d 6f 62 2c 20 42 49 20  36 74 68 20 61 6e 64 20  |Mob, BI 6th and |
00001b70  43 68 72 69 73 2e 22 0d  15 cc 10 45 51 55 44 26  |Chris."....EQUD&|
00001b80  44 30 41 30 44 30 41 0d  15 d6 21 45 51 55 53 22  |D0A0D0A...!EQUS"|
00001b90  41 6c 6c 61 6e 20 4b 65  6c 6c 79 20 41 75 67 75  |Allan Kelly Augu|
00001ba0  73 74 20 31 39 38 37 22  0d 15 d8 10 45 51 55 57  |st 1987"....EQUW|
00001bb0  26 44 30 41 30 44 30 41  0d 15 da 10 45 51 55 57  |&D0A0D0A....EQUW|
00001bc0  26 44 30 41 30 44 30 41  0d 15 e0 0b 45 51 55 42  |&D0A0D0A....EQUB|
00001bd0  26 46 46 0d 36 b0 31 2e  72 73 20 4c 44 58 23 30  |&FF.6.1.rs LDX#0|
00001be0  20 5c 20 52 65 61 64 20  69 6e 20 64 69 63 69 74  | \ Read in dicit|
00001bf0  6f 6e 20 73 74 72 69 6e  67 20 69 67 6e 6f 72 69  |on string ignori|
00001c00  6e 67 20 8f 0d 36 ba 12  4c 44 59 20 64 69 63 5f  |ng ..6..LDY dic_|
00001c10  68 61 6e 64 6c 65 0d 36  c4 14 2e 72 73 62 61 20  |handle.6...rsba |
00001c20  4a 53 52 20 6f 73 62 67  65 74 0d 36 ce 0e 53 54  |JSR osbget.6..ST|
00001c30  41 20 77 6f 72 64 2c 58  0d 36 d8 07 49 4e 58 0d  |A word,X.6..INX.|
00001c40  36 e2 0b 43 4d 50 23 31  32 38 0d 36 ec 0b 42 43  |6..CMP#128.6..BC|
00001c50  43 72 73 62 61 0d 36 f6  13 53 54 58 20 77 6f 72  |Crsba.6..STX wor|
00001c60  64 5f 6c 65 6e 67 74 68  0d 37 00 07 44 45 58 0d  |d_length.7..DEX.|
00001c70  37 0a 09 80 23 31 32 37  0d 37 14 0d 53 54 41 77  |7...#127.7..STAw|
00001c80  6f 72 64 2c 58 0d 37 28  0a 4c 44 41 23 26 44 0d  |ord,X.7(.LDA#&D.|
00001c90  37 32 0f 53 54 41 77 6f  72 64 2b 31 2c 58 0d 37  |72.STAword+1,X.7|
00001ca0  3c 07 52 54 53 0d 37 46  05 20 0d 37 50 37 2e 77  |<.RTS.7F. .7P7.w|
00001cb0  73 20 4c 44 41 77 6f 72  64 20 5c 20 57 72 69 74  |s LDAword \ Writ|
00001cc0  65 20 73 74 72 69 6e 67  20 63 72 65 61 74 69 6e  |e string creatin|
00001cd0  67 20 64 6c 75 74 20 69  6e 20 70 72 6f 63 65 73  |g dlut in proces|
00001ce0  73 0d 37 5a 0a 43 4d 50  63 75 6c 0d 37 64 0c 42  |s.7Z.CMPcul.7d.B|
00001cf0  45 51 20 77 72 66 6f 0d  37 6e 0a 53 54 41 63 75  |EQ wrfo.7n.STAcu|
00001d00  6c 0d 37 78 07 53 45 43  0d 37 82 0a 53 42 43 23  |l.7x.SEC.7..SBC#|
00001d10  36 35 0d 37 8c 09 53 54  41 73 61 0d 37 96 07 43  |65.7..STAsa.7..C|
00001d20  4c 43 0d 37 a0 09 41 44  43 73 61 0d 37 aa 09 41  |LC.7..ADCsa.7..A|
00001d30  44 43 73 61 0d 37 b4 07  50 48 41 0d 37 be 0b 4c  |DCsa.7..PHA.7..L|
00001d40  44 58 23 26 37 30 0d 37  c8 09 4c 44 41 23 30 0d  |DX#&70.7..LDA#0.|
00001d50  37 d2 12 4c 44 59 20 6e  65 77 5f 68 61 6e 64 6c  |7..LDY new_handl|
00001d60  65 0d 37 dc 0d 4a 53 52  6f 73 61 72 67 73 0d 37  |e.7..JSRosargs.7|
00001d70  e6 07 50 4c 41 0d 37 f0  07 54 41 58 0d 37 fa 0a  |..PLA.7..TAX.7..|
00001d80  4c 44 41 26 37 30 0d 38  04 0d 53 54 41 64 6c 75  |LDA&70.8..STAdlu|
00001d90  74 2c 58 0d 38 0e 0a 4c  44 41 26 37 31 0d 38 18  |t,X.8..LDA&71.8.|
00001da0  0f 53 54 41 64 6c 75 74  2b 31 2c 58 0d 38 22 0a  |.STAdlut+1,X.8".|
00001db0  4c 44 41 26 37 32 0d 38  2c 0f 53 54 41 64 6c 75  |LDA&72.8,.STAdlu|
00001dc0  74 2b 32 2c 58 0d 38 36  18 2e 77 72 66 6f 20 44  |t+2,X.86..wrfo D|
00001dd0  45 43 77 6f 72 64 5f 6c  65 6e 67 74 68 0d 38 40  |ECword_length.8@|
00001de0  12 4c 44 58 77 6f 72 64  5f 6c 65 6e 67 74 68 0d  |.LDXword_length.|
00001df0  38 4a 09 43 50 58 23 30  0d 38 54 0b 42 45 51 77  |8J.CPX#0.8T.BEQw|
00001e00  64 66 6f 0d 38 5e 09 4c  44 58 23 30 0d 38 68 11  |dfo.8^.LDX#0.8h.|
00001e10  4c 44 59 6e 65 77 5f 68  61 6e 64 6c 65 0d 38 72  |LDYnew_handle.8r|
00001e20  14 2e 77 64 62 61 32 20  4c 44 41 77 6f 72 64 2c  |..wdba2 LDAword,|
00001e30  58 0d 38 7c 0d 4a 53 52  6f 73 62 70 75 74 0d 38  |X.8|.JSRosbput.8|
00001e40  86 07 49 4e 58 0d 38 90  12 43 50 58 77 6f 72 64  |..INX.8..CPXword|
00001e50  5f 6c 65 6e 67 74 68 0d  38 9a 0c 42 4e 45 77 64  |_length.8..BNEwd|
00001e60  62 61 32 0d 38 a4 13 2e  77 64 66 6f 20 4c 44 41  |ba2.8...wdfo LDA|
00001e70  77 6f 72 64 2c 58 0d 38  ae 0a 84 41 23 31 32 38  |word,X.8...A#128|
00001e80  0d 38 b8 0d 4a 53 52 6f  73 62 70 75 74 0d 38 c2  |.8..JSRosbput.8.|
00001e90  07 52 54 53 0d 38 cc 05  20 0d 38 d6 25 2e 77 74  |.RTS.8.. .8.%.wt|
00001ea0  20 4c 44 41 23 32 20 5c  20 57 72 69 74 65 20 64  | LDA#2 \ Write d|
00001eb0  6c 75 74 20 74 6f 20 6e  65 77 74 69 6f 6e 0d 38  |lut to newtion.8|
00001ec0  e0 0b 4c 44 58 23 26 37  30 0d 38 ea 11 4c 44 59  |..LDX#&70.8..LDY|
00001ed0  6e 65 77 5f 68 61 6e 64  6c 65 0d 38 f4 0d 4a 53  |new_handle.8..JS|
00001ee0  52 6f 73 61 72 67 73 0d  38 fe 0a 4c 44 41 26 37  |Rosargs.8..LDA&7|
00001ef0  30 0d 39 08 0e 53 54 41  64 6c 75 74 2b 37 38 0d  |0.9..STAdlut+78.|
00001f00  39 12 0a 4c 44 41 26 37  31 0d 39 1c 0e 53 54 41  |9..LDA&71.9..STA|
00001f10  64 6c 75 74 2b 37 39 0d  39 26 0a 4c 44 41 26 37  |dlut+79.9&.LDA&7|
00001f20  32 0d 39 30 0e 53 54 41  64 6c 75 74 2b 38 30 0d  |2.90.STAdlut+80.|
00001f30  39 3a 09 4c 44 41 23 30  0d 39 44 0a 53 54 41 26  |9:.LDA#0.9D.STA&|
00001f40  37 30 0d 39 4e 0a 53 54  41 26 37 31 0d 39 58 0a  |70.9N.STA&71.9X.|
00001f50  53 54 41 26 37 32 0d 39  62 0a 53 54 41 26 37 33  |STA&72.9b.STA&73|
00001f60  0d 39 6c 09 4c 44 41 23  31 0d 39 76 0b 4c 44 58  |.9l.LDA#1.9v.LDX|
00001f70  23 26 37 30 0d 39 80 0d  4a 53 52 6f 73 61 72 67  |#&70.9..JSRosarg|
00001f80  73 0d 39 8a 09 4c 44 58  23 30 0d 39 94 13 2e 77  |s.9..LDX#0.9...w|
00001f90  74 62 61 20 4c 44 41 64  6c 75 74 2c 58 0d 39 9e  |tba LDAdlut,X.9.|
00001fa0  0d 4a 53 52 6f 73 62 70  75 74 0d 39 a8 07 49 4e  |.JSRosbput.9..IN|
00001fb0  58 0d 39 b2 0a 43 50 58  23 38 31 0d 39 bc 0b 42  |X.9..CPX#81.9..B|
00001fc0  4e 45 77 74 62 61 0d 39  c6 0b 4c 44 41 23 26 46  |NEwtba.9..LDA#&F|
00001fd0  46 0d 39 d0 0d 4a 53 52  6f 73 62 70 75 74 0d 39  |F.9..JSRosbput.9|
00001fe0  da 07 52 54 53 0d 39 e4  0c 2e 63 75 6c 20 42 52  |..RTS.9...cul BR|
00001ff0  4b 0d 3a 98 27 2e 63 6f  6d 70 61 72 65 20 5c 20  |K.:.'.compare \ |
00002000  43 6f 6d 70 61 72 65 20  24 77 6f 72 64 20 61 6e  |Compare $word an|
00002010  64 20 24 72 77 6f 72 64  0d 3a a2 14 4c 44 41 20  |d $rword.:..LDA |
00002020  72 77 6f 72 64 5f 6c 65  6e 67 74 68 0d 3a ac 13  |rword_length.:..|
00002030  43 4d 50 20 77 6f 72 64  5f 6c 65 6e 67 74 68 0d  |CMP word_length.|
00002040  3a b6 0d 42 4e 45 20 63  70 66 6f 31 0d 3a c0 05  |:..BNE cpfo1.:..|
00002050  20 0d 3a ca 09 4c 44 59  23 30 0d 3a d4 16 2e 63  | .:..LDY#0.:...c|
00002060  70 62 61 31 20 4c 44 41  20 72 77 6f 72 64 2c 59  |pba1 LDA rword,Y|
00002070  0d 3a de 0e 43 4d 50 20  77 6f 72 64 2c 59 0d 3a  |.:..CMP word,Y.:|
00002080  e8 0d 42 4e 45 20 63 70  66 6f 32 0d 3a f2 07 49  |..BNE cpfo2.:..I|
00002090  4e 59 0d 3a fc 13 43 50  59 20 77 6f 72 64 5f 6c  |NY.:..CPY word_l|
000020a0  65 6e 67 74 68 0d 3b 06  0d 42 4e 45 20 63 70 62  |ength.;..BNE cpb|
000020b0  61 31 0d 3b 10 0b 4c 44  41 23 26 46 46 0d 3b 1a  |a1.;..LDA#&FF.;.|
000020c0  07 52 54 53 0d 3b 24 05  20 0d 3b 2e 10 2e 63 70  |.RTS.;$. .;...cp|
000020d0  66 6f 31 20 4c 44 59 23  30 0d 3b 38 16 2e 63 70  |fo1 LDY#0.;8..cp|
000020e0  62 61 32 20 4c 44 41 20  72 77 6f 72 64 2c 59 0d  |ba2 LDA rword,Y.|
000020f0  3b 42 0e 43 4d 50 20 77  6f 72 64 2c 59 0d 3b 4c  |;B.CMP word,Y.;L|
00002100  0d 42 4e 45 20 63 70 66  6f 32 0d 3b 56 07 49 4e  |.BNE cpfo2.;V.IN|
00002110  59 0d 3b 60 13 43 50 59  20 77 6f 72 64 5f 6c 65  |Y.;`.CPY word_le|
00002120  6e 67 74 68 0d 3b 6a 0d  42 50 4c 20 63 70 66 6f  |ngth.;j.BPL cpfo|
00002130  32 0d 3b 74 14 43 50 59  20 72 77 6f 72 64 5f 6c  |2.;t.CPY rword_l|
00002140  65 6e 67 74 68 0d 3b 7e  0d 42 50 4c 20 63 70 66  |ength.;~.BPL cpf|
00002150  6f 32 0d 3b 88 0d 4a 4d  50 20 63 70 62 61 32 0d  |o2.;..JMP cpba2.|
00002160  3b 92 05 20 0d 3b 9c 15  2e 63 70 66 6f 32 20 4c  |;.. .;...cpfo2 L|
00002170  44 41 20 77 6f 72 64 2c  59 0d 3b a6 0f 43 4d 50  |DA word,Y.;..CMP|
00002180  20 72 77 6f 72 64 2c 59  0d 3b b0 0d 42 43 43 20  | rword,Y.;..BCC |
00002190  63 70 66 6f 33 0d 3b ba  09 4c 44 41 23 31 0d 3b  |cpfo3.;..LDA#1.;|
000021a0  c4 07 52 54 53 0d 3b ce  05 20 0d 3b d8 10 2e 63  |..RTS.;.. .;...c|
000021b0  70 66 6f 33 20 4c 44 41  23 30 0d 3b e2 07 52 54  |pfo3 LDA#0.;..RT|
000021c0  53 0d 3c 1e 05 20 0d 3c  28 20 2e 66 69 6e 64 5f  |S.<.. .<( .find_|
000021d0  6d 69 64 6c 65 20 5c 20  28 66 69 72 73 74 2b 6c  |midle \ (first+l|
000021e0  61 73 74 29 2f 32 0d 3c  32 0c 4c 44 41 20 6c 61  |ast)/2.<2.LDA la|
000021f0  73 74 0d 3c 3c 07 43 4c  43 0d 3c 46 0d 41 44 43  |st.<<.CLC.<F.ADC|
00002200  20 66 69 72 73 74 0d 3c  50 0d 53 54 41 20 6d 69  | first.<P.STA mi|
00002210  64 6c 65 0d 3c 5a 0e 4c  44 41 20 6c 61 73 74 2b  |dle.<Z.LDA last+|
00002220  31 0d 3c 64 0f 41 44 43  20 66 69 72 73 74 2b 31  |1.<d.ADC first+1|
00002230  0d 3c 6e 0f 53 54 41 20  6d 69 64 6c 65 2b 31 0d  |.<n.STA midle+1.|
00002240  3c 78 0e 4c 44 41 20 6c  61 73 74 2b 32 0d 3c 82  |<x.LDA last+2.<.|
00002250  0f 41 44 43 20 66 69 72  73 74 2b 32 0d 3c 8c 0f  |.ADC first+2.<..|
00002260  53 54 41 20 6d 69 64 6c  65 2b 32 0d 3c b4 0f 4c  |STA midle+2.<..L|
00002270  53 52 20 6d 69 64 6c 65  2b 32 0d 3c c8 0f 52 4f  |SR midle+2.<..RO|
00002280  52 20 6d 69 64 6c 65 2b  31 0d 3c d2 0d 52 4f 52  |R midle+1.<..ROR|
00002290  20 6d 69 64 6c 65 0d 3c  dc 07 52 54 53 0d 3c e6  | midle.<..RTS.<.|
000022a0  05 20 0d 3c f0 68 2e 6c  61 73 74 5f 77 6f 72 64  |. .<.h.last_word|
000022b0  20 4c 44 41 20 6d 69 64  6c 65 20 5c 20 55 73 69  | LDA midle \ Usi|
000022c0  6e 67 20 21 6d 69 64 6c  65 20 74 6f 20 73 65 74  |ng !midle to set|
000022d0  20 8f 20 66 69 6e 64 20  77 6f 72 64 20 74 68 61  | . find word tha|
000022e0  74 20 73 74 61 72 74 73  20 6d 61 72 67 69 6e 61  |t starts margina|
000022f0  6c 79 20 62 65 66 6f 72  65 20 8f 20 64 69 63 74  |ly before . dict|
00002300  69 6f 6e 3d 21 6d 69 64  6c 65 0d 3c fa 0a 53 54  |ion=!midle.<..ST|
00002310  41 26 37 36 0d 3d 04 0f  4c 44 41 20 6d 69 64 6c  |A&76.=..LDA midl|
00002320  65 2b 31 0d 3d 0e 0a 53  54 41 26 37 37 0d 3d 18  |e+1.=..STA&77.=.|
00002330  0f 4c 44 41 20 6d 69 64  6c 65 2b 32 0d 3d 22 0a  |.LDA midle+2.=".|
00002340  53 54 41 26 37 38 0d 3d  2c 09 4c 44 41 23 30 0d  |STA&78.=,.LDA#0.|
00002350  3d 36 0a 53 54 41 26 37  39 0d 3d 40 09 4c 44 41  |=6.STA&79.=@.LDA|
00002360  23 31 0d 3d 4a 0b 4c 44  58 23 26 37 36 0d 3d 54  |#1.=J.LDX#&76.=T|
00002370  12 4c 44 59 20 64 69 63  5f 68 61 6e 64 6c 65 0d  |.LDY dic_handle.|
00002380  3d 5e 0e 4a 53 52 20 6f  73 61 72 67 73 0d 3d 68  |=^.JSR osargs.=h|
00002390  18 2e 6c 77 62 61 20 4c  44 41 23 30 20 5c 20 52  |..lwba LDA#0 \ R|
000023a0  65 61 64 20 8f 0d 3d 72  0e 4a 53 52 20 6f 73 61  |ead ..=r.JSR osa|
000023b0  72 67 73 0d 3d 7c 05 20  0d 3d 86 1a 4c 44 41 26  |rgs.=|. .=..LDA&|
000023c0  37 36 20 5c 20 4d 6f 76  65 20 8f 20 62 61 63 6b  |76 \ Move . back|
000023d0  20 32 0d 3d 90 07 53 45  43 0d 3d 9a 09 53 42 43  | 2.=..SEC.=..SBC|
000023e0  23 32 0d 3d a4 0a 53 54  41 26 37 36 0d 3d ae 0a  |#2.=..STA&76.=..|
000023f0  4c 44 41 26 37 37 0d 3d  b8 09 53 42 43 23 30 0d  |LDA&77.=..SBC#0.|
00002400  3d c2 0a 53 54 41 26 37  37 0d 3d cc 0a 4c 44 41  |=..STA&77.=..LDA|
00002410  26 37 38 0d 3d d6 09 53  42 43 23 30 0d 3d e0 0a  |&78.=..SBC#0.=..|
00002420  53 54 41 26 37 38 0d 3e  08 13 4c 44 41 23 31 20  |STA&78.>..LDA#1 |
00002430  5c 20 57 72 69 74 65 20  8f 0d 3e 12 0e 4a 53 52  |\ Write ..>..JSR|
00002440  20 6f 73 61 72 67 73 0d  3e 1c 0e 4a 53 52 20 6f  | osargs.>..JSR o|
00002450  73 62 67 65 74 0d 3e 26  0b 43 4d 50 23 31 32 38  |sbget.>&.CMP#128|
00002460  0d 3e 30 0c 42 43 43 20  6c 77 62 61 0d 3e 3a 09  |.>0.BCC lwba.>:.|
00002470  4c 44 41 23 30 0d 3e 4e  0e 4a 53 52 20 6f 73 61  |LDA#0.>N.JSR osa|
00002480  72 67 73 0d 3e 58 0a 4c  44 41 26 37 38 0d 3e 62  |rgs.>X.LDA&78.>b|
00002490  0a 4c 44 59 26 37 37 0d  3e 6c 0a 4c 44 58 26 37  |.LDY&77.>l.LDX&7|
000024a0  36 0d 3e 76 07 52 54 53  0d 3e 80 05 20 0d 3e 8a  |6.>v.RTS.>.. .>.|
000024b0  45 2e 72 65 61 64 5f 77  6f 72 64 20 53 54 41 26  |E.read_word STA&|
000024c0  37 38 20 5c 20 52 65 61  64 20 69 6e 20 77 6f 72  |78 \ Read in wor|
000024d0  64 20 75 73 69 6e 67 20  41 59 58 20 61 73 20 8f  |d using AYX as .|
000024e0  20 2d 20 73 74 6f 72 65  20 69 6e 20 24 72 77 6f  | - store in $rwo|
000024f0  72 64 0d 3e 94 0a 53 54  59 26 37 37 0d 3e 9e 0a  |rd.>..STY&77.>..|
00002500  53 54 58 26 37 36 0d 3e  a8 09 4c 44 41 23 30 0d  |STX&76.>..LDA#0.|
00002510  3e b2 0a 53 54 41 26 37  39 0d 3e bc 09 4c 44 41  |>..STA&79.>..LDA|
00002520  23 30 0d 3e c6 12 4c 44  59 20 64 69 63 5f 68 61  |#0.>..LDY dic_ha|
00002530  6e 64 6c 65 0d 3e d0 0b  4c 44 58 23 26 37 30 0d  |ndle.>..LDX#&70.|
00002540  3e da 0e 4a 53 52 20 6f  73 61 72 67 73 0d 3e e4  |>..JSR osargs.>.|
00002550  05 20 0d 3e ee 09 4c 44  41 23 31 0d 3e f8 0b 4c  |. .>..LDA#1.>..L|
00002560  44 58 23 26 37 36 0d 3f  02 0e 4a 53 52 20 6f 73  |DX#&76.?..JSR os|
00002570  61 72 67 73 0d 3f 0c 09  4c 44 58 23 30 0d 3f 16  |args.?..LDX#0.?.|
00002580  13 2e 72 77 62 61 20 4a  53 52 6f 73 62 67 65 74  |..rwba JSRosbget|
00002590  0d 3f 20 0f 53 54 41 20  72 77 6f 72 64 2c 58 0d  |.? .STA rword,X.|
000025a0  3f 2a 07 49 4e 58 0d 3f  34 0b 43 4d 50 23 31 32  |?*.INX.?4.CMP#12|
000025b0  38 0d 3f 3e 0c 42 43 43  20 72 77 62 61 0d 3f 43  |8.?>.BCC rwba.?C|
000025c0  14 53 54 58 20 72 77 6f  72 64 5f 6c 65 6e 67 74  |.STX rword_lengt|
000025d0  68 0d 3f 48 07 44 45 58  0d 3f 52 09 80 23 31 32  |h.?H.DEX.?R..#12|
000025e0  37 0d 3f 5c 0f 53 54 41  20 72 77 6f 72 64 2c 58  |7.?\.STA rword,X|
000025f0  0d 3f 66 07 49 4e 58 0d  3f 70 0a 4c 44 41 23 26  |.?f.INX.?p.LDA#&|
00002600  44 0d 3f 7a 0f 53 54 41  20 72 77 6f 72 64 2c 58  |D.?z.STA rword,X|
00002610  0d 3f 84 09 4c 44 41 23  31 0d 3f 8e 0b 4c 44 58  |.?..LDA#1.?..LDX|
00002620  23 26 37 30 0d 3f 98 0e  4a 4d 50 20 6f 73 61 72  |#&70.?..JMP osar|
00002630  67 73 0d 3f a2 05 20 0d  3f ac 30 2e 64 69 63 74  |gs.?.. .?.0.dict|
00002640  69 6f 6e 5f 63 68 65 63  6b 20 5c 20 53 65 61 72  |ion_check \ Sear|
00002650  63 68 20 66 6f 72 20 24  77 6f 72 64 20 69 6e 20  |ch for $word in |
00002660  64 69 63 74 69 6f 6e 0d  3f b6 3b 4c 44 41 20 77  |diction.?.;LDA w|
00002670  6f 72 64 20 5c 20 46 69  72 73 74 20 64 65 66 69  |ord \ First defi|
00002680  6e 65 20 73 65 61 72 63  68 20 61 72 65 61 20 75  |ne search area u|
00002690  73 69 6e 67 20 6c 6f 6f  6b 20 75 70 20 74 61 62  |sing look up tab|
000026a0  6c 65 0d 3f c0 07 53 45  43 0d 3f ca 0a 53 42 43  |le.?..SEC.?..SBC|
000026b0  23 36 35 0d 3f d4 0a 53  54 41 20 73 61 0d 3f de  |#65.?..STA sa.?.|
000026c0  07 43 4c 43 0d 3f e8 0a  41 44 43 20 73 61 0d 3f  |.CLC.?..ADC sa.?|
000026d0  f2 0a 41 44 43 20 73 61  0d 3f fc 07 54 41 59 0d  |..ADC sa.?..TAY.|
000026e0  40 06 0e 4c 44 41 20 64  6c 75 74 2c 59 0d 40 10  |@..LDA dlut,Y.@.|
000026f0  0d 53 54 41 20 66 69 72  73 74 0d 40 1a 10 4c 44  |.STA first.@..LD|
00002700  41 20 64 6c 75 74 2b 31  2c 59 0d 40 24 0f 53 54  |A dlut+1,Y.@$.ST|
00002710  41 20 66 69 72 73 74 2b  31 0d 40 2e 10 4c 44 41  |A first+1.@..LDA|
00002720  20 64 6c 75 74 2b 32 2c  59 0d 40 38 0f 53 54 41  | dlut+2,Y.@8.STA|
00002730  20 66 69 72 73 74 2b 32  0d 40 42 10 4c 44 41 20  | first+2.@B.LDA |
00002740  64 6c 75 74 2b 33 2c 59  0d 40 4c 0c 53 54 41 20  |dlut+3,Y.@L.STA |
00002750  6c 61 73 74 0d 40 56 10  4c 44 41 20 64 6c 75 74  |last.@V.LDA dlut|
00002760  2b 34 2c 59 0d 40 60 0e  53 54 41 20 6c 61 73 74  |+4,Y.@`.STA last|
00002770  2b 31 0d 40 6a 10 4c 44  41 20 64 6c 75 74 2b 35  |+1.@j.LDA dlut+5|
00002780  2c 59 0d 40 74 0e 53 54  41 20 6c 61 73 74 2b 32  |,Y.@t.STA last+2|
00002790  0d 40 7e 05 20 0d 40 88  35 2e 63 6f 6e 74 5f 73  |.@~. .@.5.cont_s|
000027a0  65 20 4a 53 52 20 66 69  6e 64 5f 6d 69 64 6c 65  |e JSR find_midle|
000027b0  20 5c 20 41 72 65 61 20  64 65 66 69 6e 65 64 20  | \ Area defined |
000027c0  6e 6f 77 20 73 65 61 72  63 68 0d 40 92 11 4a 53  |now search.@..JS|
000027d0  52 20 6c 61 73 74 5f 77  6f 72 64 0d 40 9c 11 4a  |R last_word.@..J|
000027e0  53 52 20 72 65 61 64 5f  77 6f 72 64 0d 40 a6 0f  |SR read_word.@..|
000027f0  4a 53 52 20 63 6f 6d 70  61 72 65 0d 40 b0 0b 43  |JSR compare.@..C|
00002800  4d 50 23 26 46 46 0d 40  ba 0d 42 45 51 20 6d 61  |MP#&FF.@..BEQ ma|
00002810  74 63 68 0d 40 c4 09 43  4d 50 23 30 0d 40 ce 0d  |tch.@..CMP#0.@..|
00002820  42 4e 45 20 73 73 66 6f  31 0d 40 d8 22 4c 44 41  |BNE ssfo1.@."LDA|
00002830  20 6d 69 64 6c 65 20 5c  20 57 6f 72 64 20 69 6e  | midle \ Word in|
00002840  20 66 69 72 73 74 20 68  61 6c 66 0d 40 e2 0c 53  | first half.@..S|
00002850  54 41 20 6c 61 73 74 0d  40 ec 0f 4c 44 41 20 6d  |TA last.@..LDA m|
00002860  69 64 6c 65 2b 31 0d 40  f6 0e 53 54 41 20 6c 61  |idle+1.@..STA la|
00002870  73 74 2b 31 0d 41 00 0f  4c 44 41 20 6d 69 64 6c  |st+1.A..LDA midl|
00002880  65 2b 32 0d 41 0a 0e 53  54 41 20 6c 61 73 74 2b  |e+2.A..STA last+|
00002890  32 0d 41 14 0d 4a 4d 50  20 73 73 66 6f 33 0d 41  |2.A..JMP ssfo3.A|
000028a0  1e 2a 2e 73 73 66 6f 31  20 4c 44 41 20 6d 69 64  |.*.ssfo1 LDA mid|
000028b0  6c 65 20 5c 20 57 6f 72  64 20 69 6e 20 73 65 63  |le \ Word in sec|
000028c0  6f 6e 64 20 68 61 6c 66  0d 41 28 0d 53 54 41 20  |ond half.A(.STA |
000028d0  66 69 72 73 74 0d 41 32  0f 4c 44 41 20 6d 69 64  |first.A2.LDA mid|
000028e0  6c 65 2b 31 0d 41 3c 0f  53 54 41 20 66 69 72 73  |le+1.A<.STA firs|
000028f0  74 2b 31 0d 41 46 0f 4c  44 41 20 6d 69 64 6c 65  |t+1.AF.LDA midle|
00002900  2b 32 0d 41 50 0f 53 54  41 20 66 69 72 73 74 2b  |+2.AP.STA first+|
00002910  32 0d 41 5a 05 20 0d 41  64 23 2e 73 73 66 6f 33  |2.AZ. .Ad#.ssfo3|
00002920  20 4c 44 41 20 6c 61 73  74 2b 32 20 5c 20 45 6e  | LDA last+2 \ En|
00002930  64 20 73 65 61 72 63 68  3f 0d 41 6e 0f 43 4d 50  |d search?.An.CMP|
00002940  20 66 69 72 73 74 2b 32  0d 41 78 10 42 43 43 20  | first+2.Ax.BCC |
00002950  6e 6f 5f 6d 61 74 63 68  0d 41 82 0e 4c 44 41 20  |no_match.A..LDA |
00002960  6c 61 73 74 2b 31 0d 41  8c 0f 43 4d 50 20 66 69  |last+1.A..CMP fi|
00002970  72 73 74 2b 31 0d 41 96  10 42 43 43 20 6e 6f 5f  |rst+1.A..BCC no_|
00002980  6d 61 74 63 68 0d 41 a0  0c 4c 44 41 20 6c 61 73  |match.A..LDA las|
00002990  74 0d 41 aa 07 53 45 43  0d 41 b4 0d 53 42 43 20  |t.A..SEC.A..SBC |
000029a0  66 69 72 73 74 0d 41 be  09 43 4d 50 23 32 0d 41  |first.A..CMP#2.A|
000029b0  c8 0f 42 43 53 20 63 6f  6e 74 5f 73 65 0d 41 d2  |..BCS cont_se.A.|
000029c0  11 2e 6e 6f 5f 6d 61 74  63 68 20 43 4c 43 0d 41  |..no_match CLC.A|
000029d0  dc 07 52 54 53 0d 41 e6  0e 2e 6d 61 74 63 68 20  |..RTS.A...match |
000029e0  53 45 43 0d 41 f0 07 52  54 53 0d 41 fa 05 20 0d  |SEC.A..RTS.A.. .|
000029f0  42 68 13 2e 6e 77 5f 63  68 65 63 6b 20 4c 44 41  |Bh..nw_check LDA|
00002a00  23 30 0d 42 72 0a 53 54  41 26 37 30 0d 42 7c 0a  |#0.Br.STA&70.B|.|
00002a10  53 54 41 26 37 31 0d 42  86 0a 53 54 41 26 37 32  |STA&71.B..STA&72|
00002a20  0d 42 90 0a 53 54 41 26  37 33 0d 42 9a 09 4c 44  |.B..STA&73.B..LD|
00002a30  41 23 31 0d 42 a4 0b 4c  44 58 23 26 37 30 0d 42  |A#1.B..LDX#&70.B|
00002a40  ae 11 4c 44 59 20 6e 77  5f 68 61 6e 64 6c 65 0d  |..LDY nw_handle.|
00002a50  42 b8 0e 4a 53 52 20 6f  73 61 72 67 73 0d 42 c2  |B..JSR osargs.B.|
00002a60  0e 4a 53 52 20 6f 73 62  67 65 74 0d 42 cc 09 43  |.JSR osbget.B..C|
00002a70  4d 50 23 30 0d 42 d6 0e  42 4e 45 20 6e 72 77 66  |MP#0.B..BNE nrwf|
00002a80  6f 31 0d 42 e0 18 43 4c  43 20 5c 20 4e 6f 20 77  |o1.B..CLC \ No w|
00002a90  6f 72 64 73 20 69 6e 20  4e 57 0d 42 ea 07 52 54  |ords in NW.B..RT|
00002aa0  53 0d 42 f4 05 20 0d 42  fe 1b 2e 6e 72 77 66 6f  |S.B.. .B...nrwfo|
00002ab0  31 20 4c 44 41 23 30 20  5c 20 53 74 6f 72 65 20  |1 LDA#0 \ Store |
00002ac0  8f 0d 43 08 11 4c 44 59  20 6e 77 5f 68 61 6e 64  |..C..LDY nw_hand|
00002ad0  6c 65 0d 43 12 0b 4c 44  58 23 26 37 36 0d 43 1c  |le.C..LDX#&76.C.|
00002ae0  0e 4a 53 52 20 6f 73 61  72 67 73 0d 43 26 20 2e  |.JSR osargs.C& .|
00002af0  6e 72 77 62 61 33 20 4a  53 52 20 6f 73 62 67 65  |nrwba3 JSR osbge|
00002b00  74 20 5c 20 47 65 74 20  6c 65 6e 0d 43 30 14 53  |t \ Get len.C0.S|
00002b10  54 41 20 72 77 6f 72 64  5f 6c 65 6e 67 74 68 0d  |TA rword_length.|
00002b20  43 3a 13 43 4d 50 20 77  6f 72 64 5f 6c 65 6e 67  |C:.CMP word_leng|
00002b30  74 68 0d 43 3f 10 42 4e  45 20 6e 6f 74 5f 73 61  |th.C?.BNE not_sa|
00002b40  6d 65 0d 43 44 09 4c 44  58 23 30 0d 43 4e 16 2e  |me.CD.LDX#0.CN..|
00002b50  6e 72 77 62 61 32 20 4a  53 52 20 6f 73 62 67 65  |nrwba2 JSR osbge|
00002b60  74 0d 43 58 0e 43 4d 50  20 77 6f 72 64 2c 58 0d  |t.CX.CMP word,X.|
00002b70  43 62 10 42 4e 45 20 6e  6f 74 5f 73 61 6d 65 0d  |Cb.BNE not_same.|
00002b80  43 6c 07 49 4e 58 0d 43  76 0a 43 4d 50 23 26 44  |Cl.INX.Cv.CMP#&D|
00002b90  0d 43 80 0e 42 4e 45 20  6e 72 77 62 61 32 0d 43  |.C..BNE nrwba2.C|
00002ba0  8a 15 53 45 43 20 5c 20  57 6f 72 64 73 20 6d 61  |..SEC \ Words ma|
00002bb0  74 63 68 0d 43 94 07 52  54 53 0d 43 9e 05 20 0d  |tch.C..RTS.C.. .|
00002bc0  43 a8 15 2e 6e 6f 74 5f  73 61 6d 65 20 43 4d 50  |C...not_same CMP|
00002bd0  23 26 46 46 0d 43 b2 13  42 45 51 20 6e 72 77 66  |#&FF.C..BEQ nrwf|
00002be0  6f 32 20 5c 20 c5 3f 0d  43 bc 16 4c 44 41 26 37  |o2 \ .?.C..LDA&7|
00002bf0  36 20 5c 20 41 64 76 61  6e 63 65 20 8f 0d 43 c6  |6 \ Advance ..C.|
00002c00  07 43 4c 43 0d 43 d0 09  41 44 43 23 32 0d 43 da  |.CLC.C..ADC#2.C.|
00002c10  14 41 44 43 20 72 77 6f  72 64 5f 6c 65 6e 67 74  |.ADC rword_lengt|
00002c20  68 0d 43 e4 0a 53 54 41  26 37 36 0d 43 ee 0a 4c  |h.C..STA&76.C..L|
00002c30  44 41 26 37 37 0d 43 f8  09 41 44 43 23 30 0d 44  |DA&77.C..ADC#0.D|
00002c40  02 0a 53 54 41 26 37 37  0d 44 0c 0a 4c 44 41 26  |..STA&77.D..LDA&|
00002c50  37 38 0d 44 16 09 41 44  43 23 30 0d 44 20 0a 53  |78.D..ADC#0.D .S|
00002c60  54 41 26 37 38 0d 44 2a  17 4c 44 41 23 31 20 5c  |TA&78.D*.LDA#1 \|
00002c70  20 57 72 69 74 65 20 6e  65 77 20 8f 0d 44 34 0b  | Write new ..D4.|
00002c80  4c 44 58 23 26 37 36 0d  44 3e 0e 4a 53 52 20 6f  |LDX#&76.D>.JSR o|
00002c90  73 61 72 67 73 0d 44 48  0e 4a 4d 50 20 6e 72 77  |sargs.DH.JMP nrw|
00002ca0  62 61 33 0d 44 52 05 20  0d 44 5c 21 2e 6e 72 77  |ba3.DR. .D\!.nrw|
00002cb0  66 6f 32 20 43 4c 43 20  5c 20 c5 20 77 69 74 68  |fo2 CLC \ . with|
00002cc0  20 6e 6f 20 6d 61 74 63  68 0d 44 66 07 52 54 53  | no match.Df.RTS|
00002cd0  0d 44 70 05 20 0d 44 c0  4f 2e 61 6e 6f 74 68 65  |.Dp. .D.O.anothe|
00002ce0  72 5f 77 6f 72 64 20 4c  44 58 23 61 6e 5f 6d 65  |r_word LDX#an_me|
00002cf0  73 73 20 83 20 32 35 36  20 5c 20 22 41 6e 6f 74  |ss . 256 \ "Anot|
00002d00  68 65 72 20 77 6f 72 64  3f 22 20 59 65 73 20 2d  |her word?" Yes -|
00002d10  20 43 20 73 65 74 2c 20  4e 6f 20 2d 20 43 20 63  | C set, No - C c|
00002d20  6c 65 61 72 0d 44 ca 15  4c 44 59 23 61 6e 5f 6d  |lear.D..LDY#an_m|
00002d30  65 73 73 20 81 20 32 35  36 0d 44 d4 0f 4a 53 52  |ess . 256.D..JSR|
00002d40  20 64 69 73 70 6c 61 79  0d 44 de 14 2e 61 77 62  | display.D...awb|
00002d50  61 20 4a 53 52 20 72 65  61 64 63 68 0d 44 e8 0c  |a JSR readch.D..|
00002d60  43 4d 50 23 97 22 59 22  0d 44 f2 0c 42 45 51 20  |CMP#."Y".D..BEQ |
00002d70  61 77 66 6f 0d 44 fc 0c  43 4d 50 23 97 22 4e 22  |awfo.D..CMP#."N"|
00002d80  0d 45 06 0c 42 4e 45 20  61 77 62 61 0d 45 10 07  |.E..BNE awba.E..|
00002d90  43 4c 43 0d 45 1a 07 52  54 53 0d 45 24 0d 2e 61  |CLC.E..RTS.E$..a|
00002da0  77 66 6f 20 53 45 43 0d  45 2e 07 52 54 53 0d 45  |wfo SEC.E..RTS.E|
00002db0  38 15 2e 61 6e 5f 6d 65  73 73 20 45 51 55 57 26  |8..an_mess EQUW&|
00002dc0  44 30 41 0d 45 42 12 45  51 55 53 22 41 6e 6f 74  |D0A.EB.EQUS"Anot|
00002dd0  68 65 72 3f 22 0d 45 4c  0c 45 51 55 57 26 44 30  |her?".EL.EQUW&D0|
00002de0  41 0d 45 56 0b 45 51 55  42 26 46 46 0d 45 60 05  |A.EV.EQUB&FF.E`.|
00002df0  20 0d 45 6a 3b 2e 67 65  74 5f 77 6f 72 64 20 4c  | .Ej;.get_word L|
00002e00  44 58 23 61 6e 5f 69 6e  20 83 20 32 35 36 20 5c  |DX#an_in . 256 \|
00002e10  20 47 65 74 20 77 6f 72  64 20 61 6e 64 20 73 74  | Get word and st|
00002e20  6f 72 65 20 69 6e 20 24  77 6f 72 64 0d 45 74 13  |ore in $word.Et.|
00002e30  4c 44 59 23 61 6e 5f 69  6e 20 81 20 32 35 36 0d  |LDY#an_in . 256.|
00002e40  45 7e 0f 4a 53 52 20 64  69 73 70 6c 61 79 0d 45  |E~.JSR display.E|
00002e50  88 09 4c 44 41 23 30 0d  45 92 16 4c 44 58 23 61  |..LDA#0.E..LDX#a|
00002e60  6e 5f 6f 73 5f 62 6c 20  83 20 32 35 36 0d 45 9c  |n_os_bl . 256.E.|
00002e70  16 4c 44 59 23 61 6e 5f  6f 73 5f 62 6c 20 81 20  |.LDY#an_os_bl . |
00002e80  32 35 36 0d 45 a6 0e 4a  53 52 20 6f 73 77 6f 72  |256.E..JSR oswor|
00002e90  64 0d 45 b0 0f 42 43 53  20 67 65 74 5f 65 73 63  |d.E..BCS get_esc|
00002ea0  0d 45 ba 13 53 54 59 20  77 6f 72 64 5f 6c 65 6e  |.E..STY word_len|
00002eb0  67 74 68 0d 45 c4 07 52  54 53 0d 45 ce 12 2e 67  |gth.E..RTS.E...g|
00002ec0  65 74 5f 65 73 63 20 4c  44 41 23 30 0d 45 d8 09  |et_esc LDA#0.E..|
00002ed0  4c 44 59 23 30 0d 45 e2  0e 4a 53 52 20 6f 73 66  |LDY#0.E..JSR osf|
00002ee0  69 6e 64 0d 45 e3 0b 4c  44 41 23 26 37 43 0d 45  |ind.E..LDA#&7C.E|
00002ef0  e4 0d 4a 53 52 6f 73 62  79 74 65 0d 45 ec 0c 4a  |..JSRosbyte.E..J|
00002f00  4d 50 20 6d 65 6e 75 0d  45 f6 05 20 0d 46 00 17  |MP menu.E.. .F..|
00002f10  2e 61 6e 5f 6f 73 5f 62  6c 20 45 51 55 57 20 77  |.an_os_bl EQUW w|
00002f20  6f 72 64 0d 46 0a 0a 45  51 55 42 32 36 0d 46 14  |ord.F..EQUB26.F.|
00002f30  0a 45 51 55 42 36 35 0d  46 1e 0a 45 51 55 42 39  |.EQUB65.F..EQUB9|
00002f40  30 0d 46 28 16 2e 61 6e  5f 69 6e 20 45 51 55 53  |0.F(..an_in EQUS|
00002f50  22 57 6f 72 64 3a 22 0d  46 32 0b 45 51 55 42 26  |"Word:".F2.EQUB&|
00002f60  46 46 0d 46 50 2a 2e 77  6f 72 64 20 45 51 55 53  |FF.FP*.word EQUS|
00002f70  22 41 42 43 44 45 46 47  48 49 4a 4b 4c 4d 4e 4f  |"ABCDEFGHIJKLMNO|
00002f80  50 51 52 53 54 55 56 57  58 59 5a 22 0d 46 5a 14  |PQRSTUVWXYZ".FZ.|
00002f90  2e 77 6f 72 64 5f 6c 65  6e 67 74 68 20 42 52 4b  |.word_length BRK|
00002fa0  0d 46 64 2b 2e 72 77 6f  72 64 20 45 51 55 53 22  |.Fd+.rword EQUS"|
00002fb0  41 42 43 44 45 46 47 48  49 4a 4b 4c 4d 4e 4f 50  |ABCDEFGHIJKLMNOP|
00002fc0  51 52 53 54 55 56 57 58  59 5a 22 0d 46 6e 15 2e  |QRSTUVWXYZ".Fn..|
00002fd0  72 77 6f 72 64 5f 6c 65  6e 67 74 68 20 42 52 4b  |rword_length BRK|
00002fe0  0d 46 78 0b 2e 73 61 20  42 52 4b 0d 46 82 10 2e  |.Fx..sa BRK.F...|
00002ff0  66 69 72 73 74 20 45 51  55 44 30 0d 46 8c 10 2e  |first EQUD0.F...|
00003000  6d 69 64 6c 65 20 45 51  55 44 30 0d 46 96 0f 2e  |midle EQUD0.F...|
00003010  6c 61 73 74 20 45 51 55  44 30 0d 46 a0 1b 2e 64  |last EQUD0.F...d|
00003020  69 63 5f 6e 61 6d 65 20  45 51 55 53 20 64 69 63  |ic_name EQUS dic|
00003030  74 69 6f 6e 24 0d 46 aa  0a 45 51 55 42 26 44 0d  |tion$.F..EQUB&D.|
00003040  46 b4 13 2e 64 69 63 5f  68 61 6e 64 6c 65 20 42  |F...dic_handle B|
00003050  52 4b 0d 46 be 15 2e 6e  77 5f 6e 61 6d 65 20 45  |RK.F...nw_name E|
00003060  51 55 53 20 6e 77 24 0d  46 c8 0a 45 51 55 42 26  |QUS nw$.F..EQUB&|
00003070  44 0d 46 d2 12 2e 6e 77  5f 68 61 6e 64 6c 65 20  |D.F...nw_handle |
00003080  42 52 4b 0d 46 dc 16 2e  6e 65 77 5f 6e 61 6d 65  |BRK.F...new_name|
00003090  20 45 51 55 53 6e 65 77  24 0d 46 e6 0a 45 51 55  | EQUSnew$.F..EQU|
000030a0  42 26 44 0d 46 f0 13 2e  6e 65 77 5f 68 61 6e 64  |B&D.F...new_hand|
000030b0  6c 65 20 42 52 4b 0d 46  fa 1a 2e 64 75 6d 6d 79  |le BRK.F...dummy|
000030c0  5f 6e 61 6d 65 20 45 51  55 53 64 75 6d 6d 79 24  |_name EQUSdummy$|
000030d0  0d 47 04 0a 45 51 55 42  26 44 0d 47 0e 15 2e 64  |.G..EQUB&D.G...d|
000030e0  75 6d 6d 79 5f 68 61 6e  64 6c 65 20 42 52 4b 0d  |ummy_handle BRK.|
000030f0  49 d4 18 2e 64 6c 75 74  20 4f 50 54 20 a4 73 70  |I...dlut OPT .sp|
00003100  61 63 65 28 38 32 29 0d  4a 38 05 5d 0d 4a 42 05  |ace(82).J8.].JB.|
00003110  ed 0d 71 48 12 2a 53 50  4f 4f 4c 20 4c 2e 4d 65  |..qH.*SPOOL L.Me|
00003120  78 65 63 0d 71 52 10 f1  22 41 55 54 4f 32 31 30  |xec.qR.."AUTO210|
00003130  30 30 22 0d 71 66 19 f1  22 64 69 73 70 6c 61 79  |00".qf.."display|
00003140  3d 26 22 3b 7e 64 69 73  70 6c 61 79 0d 71 70 1b  |=&";~display.qp.|
00003150  f1 22 64 69 5f 6f 72 5f  6e 77 3d 26 22 3b 7e 64  |."di_or_nw=&";~d|
00003160  69 5f 6f 72 5f 6e 77 0d  71 7a 17 f1 22 72 65 74  |i_or_nw.qz.."ret|
00003170  75 72 6e 3d 26 22 3b 7e  72 65 74 75 72 6e 0d 71  |urn=&";~return.q|
00003180  84 19 f1 22 73 63 72 65  65 6e 31 3d 26 22 3b 7e  |..."screen1=&";~|
00003190  73 63 72 65 65 6e 31 0d  71 8e 19 f1 22 73 63 72  |screen1.q..."scr|
000031a0  65 65 6e 32 3d 26 22 3b  7e 73 63 72 65 65 6e 32  |een2=&";~screen2|
000031b0  0d 71 98 25 f1 22 64 69  63 74 69 6f 6e 5f 63 68  |.q.%."diction_ch|
000031c0  65 63 6b 3d 26 22 3b 7e  64 69 63 74 69 6f 6e 5f  |eck=&";~diction_|
000031d0  63 68 65 63 6b 0d 71 a2  1b f1 22 6e 77 5f 63 68  |check.q..."nw_ch|
000031e0  65 63 6b 3d 26 22 3b 7e  6e 77 5f 63 68 65 63 6b  |eck=&";~nw_check|
000031f0  0d 71 ac 1b f1 22 64 69  63 5f 6e 61 6d 65 3d 26  |.q..."dic_name=&|
00003200  22 3b 7e 64 69 63 5f 6e  61 6d 65 0d 71 b6 1f f1  |";~dic_name.q...|
00003210  22 64 69 63 5f 68 61 6e  64 6c 65 3d 26 22 3b 7e  |"dic_handle=&";~|
00003220  64 69 63 5f 68 61 6e 64  6c 65 0d 71 c0 19 f1 22  |dic_handle.q..."|
00003230  6e 77 5f 6e 61 6d 65 3d  26 22 3b 7e 6e 77 5f 6e  |nw_name=&";~nw_n|
00003240  61 6d 65 0d 71 ca 1d f1  22 6e 77 5f 68 61 6e 64  |ame.q..."nw_hand|
00003250  6c 65 3d 26 22 3b 7e 6e  77 5f 68 61 6e 64 6c 65  |le=&";~nw_handle|
00003260  0d 71 d4 1b f1 22 6e 65  77 5f 6e 61 6d 65 3d 26  |.q..."new_name=&|
00003270  22 3b 7e 6e 65 77 5f 6e  61 6d 65 0d 71 de 1f f1  |";~new_name.q...|
00003280  22 6e 65 77 5f 68 61 6e  64 6c 65 3d 26 22 3b 7e  |"new_handle=&";~|
00003290  6e 65 77 5f 68 61 6e 64  6c 65 0d 71 e8 1a f1 22  |new_handle.q..."|
000032a0  64 75 6d 6d 79 3d 26 22  3b 7e 64 75 6d 6d 79 5f  |dummy=&";~dummy_|
000032b0  6e 61 6d 65 0d 71 f2 23  f1 22 64 75 6d 6d 79 5f  |name.q.#."dummy_|
000032c0  68 61 6e 64 6c 65 3d 26  22 3b 7e 64 75 6d 6d 79  |handle=&";~dummy|
000032d0  5f 68 61 6e 64 6c 65 0d  71 fc 13 f1 22 64 6c 75  |_handle.q..."dlu|
000032e0  74 3d 26 22 3b 7e 64 6c  75 74 0d 72 06 13 f1 22  |t=&";~dlut.r..."|
000032f0  77 6f 72 64 3d 26 22 3b  7e 77 6f 72 64 0d 72 10  |word=&";~word.r.|
00003300  21 f1 22 77 6f 72 64 5f  6c 65 6e 67 74 68 3d 26  |!."word_length=&|
00003310  22 3b 7e 77 6f 72 64 5f  6c 65 6e 67 74 68 0d 72  |";~word_length.r|
00003320  1a 15 f1 22 72 77 6f 72  64 3d 26 22 3b 7e 72 77  |..."rword=&";~rw|
00003330  6f 72 64 0d 72 24 23 f1  22 72 77 6f 72 64 5f 6c  |ord.r$#."rword_l|
00003340  65 6e 67 74 68 3d 26 22  3b 7e 72 77 6f 72 64 5f  |ength=&";~rword_|
00003350  6c 65 6e 67 74 68 0d 72  2e 0f f1 22 73 61 3d 26  |length.r..."sa=&|
00003360  22 3b 7e 73 61 0d 72 38  15 f1 22 66 69 72 73 74  |";~sa.r8.."first|
00003370  3d 26 22 3b 7e 66 69 72  73 74 0d 72 42 15 f1 22  |=&";~first.rB.."|
00003380  6d 69 64 6c 65 3d 26 22  3b 7e 6d 69 64 6c 65 0d  |midle=&";~midle.|
00003390  72 4c 13 f1 22 6c 61 73  74 3d 26 22 3b 7e 6c 61  |rL.."last=&";~la|
000033a0  73 74 0d 72 56 1b f1 22  67 65 74 5f 77 6f 72 64  |st.rV.."get_word|
000033b0  3d 26 22 3b 7e 67 65 74  5f 77 6f 72 64 0d 72 60  |=&";~get_word.r`|
000033c0  23 f1 22 61 6e 6f 74 68  65 72 5f 77 6f 72 64 3d  |#."another_word=|
000033d0  26 22 3b 7e 61 6e 6f 74  68 65 72 5f 77 6f 72 64  |&";~another_word|
000033e0  0d 72 6a 19 f1 22 6e 77  5f 72 65 61 64 3d 26 22  |.rj.."nw_read=&"|
000033f0  3b 7e 6e 77 5f 72 65 61  64 0d 72 74 1b f1 22 67  |;~nw_read.rt.."g|
00003400  65 74 5f 64 61 74 61 3d  26 22 3b 7e 67 65 74 5f  |et_data=&";~get_|
00003410  64 61 74 61 0d 72 7e 1f  f1 22 70 72 69 6e 74 5f  |data.r~.."print_|
00003420  77 6f 72 64 3d 26 22 3b  7e 70 72 69 6e 74 5f 77  |word=&";~print_w|
00003430  6f 72 64 0d 72 88 1b f1  22 61 6c 6c 5f 66 6c 61  |ord.r..."all_fla|
00003440  67 3d 26 22 3b 7e 61 6c  6c 5f 66 6c 61 67 0d 72  |g=&";~all_flag.r|
00003450  92 19 f1 22 70 72 69 6e  74 65 72 3d 26 22 3b 7e  |..."printer=&";~|
00003460  70 72 69 6e 74 65 72 0d  72 9c 15 f1 22 73 70 6f  |printer.r..."spo|
00003470  6f 6c 3d 26 22 3b 7e 73  70 6f 6f 6c 0d 72 a6 11  |ol=&";~spool.r..|
00003480  f1 22 77 74 6c 3d 26 22  3b 7e 77 74 6c 0d 72 b0  |."wtl=&";~wtl.r.|
00003490  19 f1 22 72 65 61 64 5f  64 69 3d 26 22 3b 7e 72  |.."read_di=&";~r|
000034a0  65 61 64 5f 64 69 0d 72  ba 27 f1 22 66 75 7a 7a  |ead_di.r.'."fuzz|
000034b0  79 5f 64 69 5f 63 68 65  63 6b 3d 26 22 3b 7e 66  |y_di_check=&";~f|
000034c0  75 7a 7a 79 5f 64 69 5f  63 68 65 63 6b 0d 72 c4  |uzzy_di_check.r.|
000034d0  0f f1 22 72 73 3d 26 22  3b 7e 72 73 0d 72 ce 0f  |.."rs=&";~rs.r..|
000034e0  f1 22 77 73 3d 26 22 3b  7e 77 73 0d 72 d8 0f f1  |."ws=&";~ws.r...|
000034f0  22 77 74 3d 26 22 3b 7e  77 74 0d 72 e2 17 f1 22  |"wt=&";~wt.r..."|
00003500  72 65 61 64 63 68 3d 26  22 3b 7e 72 65 61 64 63  |readch=&";~readc|
00003510  68 0d 72 ec 19 f1 22 63  72 65 64 69 74 73 3d 26  |h.r..."credits=&|
00003520  22 3b 7e 63 72 65 64 69  74 73 0d 75 12 0a 2a 53  |";~credits.u..*S|
00003530  50 4f 4f 4c 0d 75 1c 17  f1 22 53 61 76 69 6e 67  |POOL.u..."Saving|
00003540  20 4d 65 6e 75 20 44 61  74 61 22 0d 75 21 2e e7  | Menu Data".u!..|
00003550  20 a4 6f 73 5f 73 61 76  65 28 22 4c 2e 4d 64 61  | .os_save("L.Mda|
00003560  74 61 22 2c 26 33 44 30  30 2c 26 33 44 30 30 2c  |ta",&3D00,&3D00,|
00003570  73 74 61 72 74 2c 4f 25  29 0d 75 26 05 e0 0d 75  |start,O%).u&...u|
00003580  30 24 dd a4 73 70 61 63  65 28 78 29 3a 50 25 3d  |0$..space(x):P%=|
00003590  50 25 2b 78 3a 4f 25 3d  4f 25 2b 78 3a 3d 70 61  |P%+x:O%=O%+x:=pa|
000035a0  73 73 0d 79 18 2c dd a4  6f 73 5f 73 61 76 65 28  |ss.y.,..os_save(|
000035b0  66 69 6c 65 24 2c 6c 6f  61 64 25 2c 65 78 65 63  |file$,load%,exec|
000035c0  25 2c 73 74 61 72 74 25  2c 65 6e 64 25 29 0d 79  |%,start%,end%).y|
000035d0  22 08 41 25 3d 30 0d 79  2c 12 58 25 3d 64 61 74  |".A%=0.y,.X%=dat|
000035e0  61 25 20 83 20 32 35 36  0d 79 36 12 59 25 3d 64  |a% . 256.y6.Y%=d|
000035f0  61 74 61 25 20 81 20 32  35 36 0d 79 40 13 21 64  |ata% . 256.y@.!d|
00003600  61 74 61 25 3d 64 61 74  61 25 2b 31 38 0d 79 4a  |ata%=data%+18.yJ|
00003610  14 21 28 64 61 74 61 25  2b 32 29 3d 6c 6f 61 64  |.!(data%+2)=load|
00003620  25 0d 79 54 14 21 28 64  61 74 61 25 2b 36 29 3d  |%.yT.!(data%+6)=|
00003630  65 78 65 63 25 0d 79 5e  16 21 28 64 61 74 61 25  |exec%.y^.!(data%|
00003640  2b 31 30 29 3d 73 74 61  72 74 25 0d 79 68 14 21  |+10)=start%.yh.!|
00003650  28 64 61 74 61 25 2b 31  34 29 3d 65 6e 64 25 0d  |(data%+14)=end%.|
00003660  79 72 15 24 28 64 61 74  61 25 2b 31 38 29 3d 66  |yr.$(data%+18)=f|
00003670  69 6c 65 24 0d 79 7c 10  3a 3d ba 26 46 46 44 44  |ile$.y|.:=.&FFDD|
00003680  20 80 26 33 0d ff                                 | .&3..|
00003686
Speller/M/DATA.m0
Speller/M/DATA.m1
Speller/M/DATA.m2
Speller/M/DATA.m4
Speller/M/DATA.m5