Home » CEEFAX disks » telesoftware16.adl » Speller/W/WATCHC
Speller/W/WATCHC
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/W/WATCHC |
Read OK: | ✔ |
File size: | 4227 bytes |
Load address: | FFFF1900 |
Exec address: | FFFF8023 |
File contents
10REM Watcher Spelling Checker 20REM MC to check words 30REM (C) Code Allan Kelly 26/5/87 40REM Orignal Idea Allan Kelly and David Halligan 22/5/87 50 55DIM data% 32 60version$="V 1.02" 70diction$="C.DICTION" 80nw$="C.NEWORDS" 100osbyte=&FFF4:osword=&FFF1 120oswrch=&FFEE:osnewl=&FFE7 140osasci=&FFE3:osrdch=&FFE0 160osfile=&FFDD:osargs=&FFDA 180osbget=&FFD7:osbput=&FFD4 200osfind=&FFCE:oscli=&FFF7 250PROCset_up 260 270FOR pass=4 TO 6 STEP 2 280P%=ass_start 290O%=mem_start 310[:OPT pass 320.enter LDA#1 \ Stage One Open Files 330LDY#0 335STY disc_flag 340LDX#&70 350JSR osargs 360LDA(&70),Y 370CMP#&D 380BNE open 384.enba JSR discs 390LDX#input MOD256 \ Get word 395LDY#input DIV256 400JSRdisplay 405LDA#0 410LDX#osblock MOD256 415LDY#osblock DIV256 420JSRosword 425LDA#word MOD256 430STA&70 435LDA#word DIV256 436STA&71 440JMP open 445.input EQUW&D0A:EQUS"Filename:":EQUB&FF 450.osblock EQUWword:EQUB26:EQUB32:EQUB127 490 500.open LDA disc_flag \ Open text file 502BEQ dsfo 504JSR text_disc 508.dsfo LDA#&40 510LDX&70 520LDY&71 530JSR osfind 535CMP#0 540BNE tx_open 545LDX#no_tx MOD 256 546LDY#no_tx DIV 256 547JSR display 548.txba JSR readch 549AND#&DF 550CMP#ASC"R" 551BEQ enba 552CMP#ASC"Q" 553BNE txba 554JMP(&FFFC) 555 556.no_tx EQUW&D0A 557EQUS"Text file not found" 558EQUW&D0A 559EQUS"Retry or Quit? (R/Q)" 560EQUB&FF 561 564.tx_open STA text_handle 565JSR spwc_init 570 572LDA disc_flag \ Open Dic file 574BEQ dsfo2 575JSR osnewl 576JSR diction_disc 580.dsfo2 LDA#&40 590LDX#dic_file MOD 256 600LDY#dic_file DIV 256 605JSR osfind 610CMP#0 615BNE di_open 620LDX#no_di MOD 256 622LDY#no_di DIV 256 624JSR display 626JMP menu 628.no_di EQUW&D0A 630EQUS"No Dictionary file found" 631EQUW&D0A 632EQUB&FF 634 640.di_open STA dic_handle 641TAY \ Read in look up table 642LDX#0 643.s1back1 JSR osbget 644STA diction_look_up,X 645INX 646CPX#81 647BNE s1back1 650 660.open_nw LDA#&C0 670LDX#nw_file MOD 256 680LDY#nw_file DIV 256 690JSR osfind 700CMP#0 710BNE nw_open 720LDX#opening_nw MOD 256 730LDY#opening_nw DIV 256 740JSR display 750LDA#&80 760LDX#nw_file MOD 256 770LDY#nw_file DIV 256 780JSR osfind 790TAY 800LDA#0 810JSR osbput 820JSR osfind 830JMP open_nw 840 850.opening_nw EQUW&D0A 860EQUS"Creating Newords file" 870EQUB&FF 880 900.nw_open STA nw_handle 910 1000\ STAGE 2 1010LDA#225 \ Set Function Keys 1020LDX#&80 1030JSR osbyte 1032LDA#3 \ Set printer 1034LDX#64 1036JSR osbyte 1037LDA#&10 \ ADC off 1038LDX#0 1039JSR osbyte 1040LDX#title_screen MOD 256 1050LDY#title_screen DIV 256 1060JSR display 1090LDX#5 1110LDY#1 1120JSR tab 1121LDA#21 1122LDX#0 1123JSR osbyte 1130LDY#0 1140.s2back1 LDA(&70),Y 1150JSR oswrch 1160INY 1170CMP#&D 1180BNE s2back1 1190 1200.s2back2 JSR osrdch 1205BCS esc 1210CMP#&D 1220BEQ s2fo1 1225TAX 1230JSR key_check 1232LDX#press MOD 256 1234LDY#press DIV 256 1236JSR tell_user 1240JMP s2back2 1250 1260.esc JSR escape_pressed 1270JMP s2back2 1280 1290.s2fo1 JSR clear_user 1300 1310\Start check - stage 3 1320LDA#0 \ Init virtual file PTR 1340STA&8C 1350STA&8D 1360STA&8E 1370STA&8F 1400.stage3 LDX#0 1415STX word_length 1430.s3back1 JSRget_cache_byte 1460BCC s3for1 1480LDA#&FF \ Character is invalid 1490STA end_of_file 1491LDA word_length 1494BNE s3for2 1500JMP close_down 1510.s3for1 CMP#&D 1540BEQ s3for2 1550CMP#32 1560BEQ s3for2 1561AND#&DF 1562CMP#91 1563BCS s3back1 1570CMP#65 1580BMI s3back1 1600STA word,X 1610INX 1620JMP s3back1 1630.s3for2 LDA#&D 1631STA word,X 1640STX word_length 1644CPX#0 1646BNE s3for3 1648JMP s3back1 1650 1660.s3for3 JSR diction_check 1670BCS word_found 1680JSR new_word_check 1690BCS word_found 1700JSR new_word_found 1710BCS word_found 1720JSR mispelt_word 1730JMP s3for4 1800.word_found JSR bottem_window 1810LDY#0 1820.wfback LDA word,Y 1830ORA#&20 1840JSR output_character 1850INY 1860CPY word_length 1870BNE wfback 1875LDA#32 1880JSR output_character 1890LDA end_of_file 1910BNE close_down 1920 1930.s3for4 JSR bytes 1935JSR check_keys 1940JMP stage3 1950 1960.close_down LDA#3 \ Printer 1970JSR oswrch 1980LDX#0 1990JSR osbyte 2050 2060LDA#&77 \ Close spool 2070JSR osbyte 2080LDA#0 \ Close dictionary 2090LDY dic_handle 2100JSR osfind 2102JSR empty_ram 2103LDA#0 2110LDY nw_handle \ Close NW 2115JSR osfind 2122\ Text closed by cache 2135LDA#225 \ F keys to norm 2136LDX#1 2137JSR osbyte 2140 2150LDX#sign_off MOD 256 2160LDY#sign_off DIV 256 2170JSR display 2180 2190.menu LDX#menu_mess MOD 256 2200LDY#menu_mess DIV 256 2210JSRdisplay 2220.menuba JSR osrdch 2240.mefo CMP#83 2250BNE mefo2 2260LDX#sort MOD256 2265LDY#sort DIV256 2270JMPoscli 2275.sort EQUS"RUN U.SORT":EQUB&D 2280.mefo2 CMP#77 2285BNE mefo3 2290LDX#rmen MOD256 2295LDY#rmen DIV256 2300JMP oscli 2305.rmen EQUS"RUN U.MENU":EQUB&D 2310.mefo3 CMP#81 2320BNE menuba 2330JMP(&FFFC) 3200 5800.new_word_check LDA#new_ram_words MOD 256 \ Is word in RAM? 5820STA&7A 5830LDA#new_ram_words DIV 256 5840STA&7B 5850 5860.continue_new_search LDY#0 5870LDA(&7A),Y 5880STA rword_length 5890PHA 5910LDA&7A 5920CLC 5930ADC#1 5940STA&7A 5950LDA&7B 5960ADC#0 5970STA&7B 5975PLA 5976CMP word_length 5977BNE no_new_match 5980 5990.nrwba1 LDA(&7A),Y 6000CMP word,Y 6010BNE no_new_match 6020CMP#&D 6030BEQ new_match_found 6040INY 6060JMP nrwba1 6070 6080.new_match_found SEC 6090RTS 6100 6110.no_new_match LDA&7A 6120SEC 6130ADC rword_length 6140STA&7A 6150LDA&7B 6160ADC#0 6170STA&7B 6180LDA&7A 6190CMP new_word_pointer 6200BCC continue_new_search 6210LDA&7B 6220CMP new_word_pointer+1 6230BCC continue_new_search 6240 6260LDA#0 \ New Word not In RAM - Search Disc 6270STA&70 6280STA&71 6290STA&72 6300STA&73 6305LDA#1 6310LDX#&70 6320LDY nw_handle 6330JSR osargs 6340JSR osbget 6350CMP#0 6360BNE nrwfo1 6370CLC \ File contains no new words 6380RTS 6390 6400.nrwfo1 LDA#0 \ Store current PTR 6410LDY nw_handle 6420LDX#&76 6430JSR osargs 6440.nrwba3 JSR osbget \ Get length 6445STA rword_length 6450CMP word_length 6460BNE not_same 6470LDX#0 6480.nrwba2 JSR osbget 6490CMP word,X 6500BNE not_same 6510INX 6520CMP#&D 6530BNE nrwba2 6540 6550SEC \ Words match 6560RTS 6570 6580.not_same CMP#&FF \ Test of EOF 6581BEQ nrwfo2 6585LDA&76 \ Advance PTR 6590CLC 6595ADC#2 6600ADC rword_length 6610STA&76 6620LDA&77 6630ADC#0 6640STA&77 6650LDA&78 6660ADC#0 6670STA&78 6680 6690LDA#1 \ Write new PTR 6700LDX#&76 6710JSR osargs 6720JMP nrwba3 6730 6740.nrwfo2 \ End of file reached with no match 6750CLC 6760RTS 6770 7000.new_word_found \ The word in word buffer has never been seen before 7010JSR top_window 7011LDA beep_flag 7012BNE nwrfo3 7014LDA#7 7016JSR oswrch 7020.nwrfo3 LDY#5 7030LDX#0 7040JSR tab 7050LDY#is_this DIV 256 7060LDX#is_this MOD 256 7070JSR display 7080LDY#0 7090.nwba1 LDA word,Y 7100CMP#&D 7110BEQ nwfo1 7111CMP#32 7112BCC nwrfo4 7113CMP#127 7114BCS nwrfo4 7120JSR oswrch 7130.nwrfo4 INY 7140JMP nwba1 7150.nwfo1 LDA#32 7160JSR oswrch 7170LDA#ASC"?" 7180JSR oswrch 7182LDA wrong_flag 7184BNE nwfo2a 7190 7200.nwba2 LDA#21 7201LDX#0 7202JSR osbyte 7203JSR osrdch 7210BCC nwfo2 7220JSR escape_pressed 7230JMP nwba2 7240.nwfo2 AND#&DF 7250CMP#ASC"Y" 7260BEQ store_new_word 7270CMP#ASC"N" 7280BNE nwba2 7290 7300.nwfo2a JSR clear_user \ Word not found 7305JSR bottem_window 7307CLC 7308RTS 7310.nwba5 JSR clear_user 7311JMP no_store 7312.store_new_word JSR clear_user \ Word in buffer must be stored as new 7313LDA save_flag 7314BEQ nwba5 7315CMP#1 7316BEQ nwfo3 7317LDX#saig_mess MOD 256 7318LDY#saig_mess DIV 256 7319JSR tell_user 7320.nwba4 JSR osrdch 7321BCC nwfo4 7322JSR escape_pressed 7324JMP nwba4 7325.nwfo4 AND#&DF 7326CMP#ASC"I" 7327BEQ nwba5 7328CMP#ASC"S" 7329BNE nwba4 7330.nwfo3 JSR clear_user \ Word in buffer must be stored as new 7335LDA#&FF \ Set new word flag 7336STA word_flag 7340LDA new_word_pointer 7350STA&7A 7360LDA new_word_pointer+1 7370STA&7B 7380LDY#0 7390LDA word_length 7400STA(&7A),Y 7410LDA&7A 7420CLC 7430ADC#1 7440STA&7A 7450LDA&7B 7460ADC#0 7470STA&7B 7480.nwba3 LDA word,Y 7490STA(&7A),Y 7500INY 7510CMP#&D 7520BNE nwba3 7530 7540TYA 7550CLC 7560ADC&7A 7570STA new_word_pointer 7580LDA&7B 7590ADC#0 7600STA new_word_pointer+1 7610 7630CMP#&3F 7640BCCno_store 7700 7710JSR empty_ram 7990 8000\ All RAM word on disc 8010LDA#new_ram_words MOD 256 8020STA new_word_pointer 8030LDA#new_ram_words DIV 256 8040STA new_word_pointer+1 8050 8060.no_store SEC \ Words stored 8070RTS 8080 8100.empty_ram \ Save all RAM worss to NW file 8102LDA word_flag \ Test new word flag 8104BNE erfo1 8106RTS 8110.erfo1 JSR clear_user 8111LDX#saving MOD 256 8112LDY#saving DIV 256 8113JSR tell_user 8120LDA#2 \ Read EXT 8125LDX#&70 8130LDY nw_handle 8140JSR osargs 8150LDA&70 8160SEC 8170SBC#1 8180STA&70 8190LDA&71 8200SBC#0 8210STA&71 8220LDA&72 8230SBC#0 8240STA&72 8250LDA#1 8260JSR osargs 8270JSR osbget 8280CMP#0 8290BEQ file_empty 8300LDA#1 8310JSR osargs 8320 8410.file_empty LDA#new_ram_words MOD 256 8420STA&7A 8430LDA#new_ram_words DIV 256 8440STA&7B 8450 8460.erba1 LDY#0 8470LDA(&7A),Y 8480LDY nw_handle 8490JSR osbput 8500LDA&7A 8510CLC 8520ADC#1 8530STA&7A 8540LDA&7B 8550ADC#0 8560STA&7B 8570CMP new_word_pointer+1 8580BCC erba1 8590LDA&7A 8600CMP new_word_pointer 8610BCC erba1 8620 8630LDA#&FF \ Mark last byte 8640JSR osbput 8650LDA#0 \ Mark file as holding 8660STA&70 8670STA&71 8680STA&72 8690STA&73 8700LDA#1 8710LDX#&70 8720LDY nw_handle 8730JSR osargs 8740LDA#&FF 8750JSR osbput 8760RTS 8770 8780.saving EQUS"Saving Newords to disc" 8785EQUB&FF 8900.is_this EQUS"Correct spelling: " 8910EQUB&FF 9000.mispelt_word \ Word im buffer has been misplet 9010\ Output to screen in upper case and pinter/disc is need be 9020 9030LDA printer_flag 9050BEQ msfo1 9060LDY#0 9070.msba1 LDA#1 9080JSR oswrch 9090LDA word,Y 9100JSR oswrch 9110INY 9120CPY word_length 9130BNE msba1 9140LDA#1 9150JSR oswrch 9160LDA#32 9170JSR oswrch 9171LDA printer_flag 9172CMP#2 9173BNE msfo1 9174LDA#1 9175JSR oswrch 9176LDA#13 9177JSR oswrch 9180 9190.msfo1 LDA spool_flag 9210BEQ msfo2 9220LDX#0 9230LDY spool_handle 9240.msba2 LDA word,X 9250JSR osbput 9260INX 9270CPX word_length 9280BNE msba2 9290LDA#&D 9300JSR osbput 9310 9320.msfo2 LDX#0 9330.msba2 LDA word,X 9340AND#&DF 9350JSR oswrch 9360INX 9370CPX word_length 9380BNE msba2 9390LDA#32 9400JSR oswrch 9410RTS 10900.spwc_init_win LDA disc_flag 10910BEQ spwc_init 10920JSR insert_text 11000.spwc_init LDA#2 11010LDY text_handle 11020LDX#&80 11030JSRosargs 11040LDA#0 11050STA&84 11060LDA#&40 11070STA&85 11080 11090.spwcba1 LDYtext_handle 11100JSRosbget 11105BCS end_of_dic_file 11110LDY#0 11120STA(&84),Y 11130LDA&84 11140CLC 11150ADC#1 11160STA&84 11170LDA&85 11180ADC#0 11190STA&85 11200CMP#&7A 11210BCS cache_full 11270JMPspwcba1 11280 11290.cache_full LDA#0 11300LDYtext_handle 11310LDX#&88 11320JSRosargs 11330LDA&88 11340CMP&80 11350BNEstore_aptr 11360LDA&89 11370CMP&81 11380BNEstore_aptr 11390.end_of_dic_file LDA#&FF 11400STAcfe 11401LDY text_handle 11402LDA#0 11403JSR osfind 11410.store_aptr LDA&84 11420STA&86 11430LDA&85 11440STA&87 11450LDA#0 11460STA&84 11470LDA#&40 11480STA&85 11490RTS 11500 11510.get_cache_byte LDY#0 11520LDA(&84),Y 11530STAsa 11531LDA&8C \ Increase virtual file PTR 11532CLC 11533ADC#1 11534STA&8C 11535LDA&8D 11536ADC#0 11537STA&8D 11538LDA&8E 11539ADC#0 11540STA&8E 11541LDA&8F 11542ADC#0 11543STA&8F 11548LDA&84 11550CLC 11560ADC#1 11570STA&84 11580LDA&85 11590ADC#0 11600STA&85 11610CMP&87 11620BCCgcb_exit 11630LDA&84 11640CMP&86 11650BCCgcb_exit 11670LDAcfe 11680CMP#&FF 11690BNEgcbfo 11695LDA sa 11700SEC 11710RTS 11720.gcbfo STX sx 11721JSRspwc_init_win 11722LDA disc_flag 11724BEQ gcb_exit 11726JSR insert_diction 11728LDX sx 11730.gcb_exit LDAsa 11740CLC 11750RTS 11760.cfe BRK 11765.sx BRK 11770 11800.insert_text JSR top_window 11802LDX#0 11804LDY#6 11806JSR tab 11810JSR text_disc 11820JSR clear_user 11830JSR bottem_window 11840RTS 11850 11860.insert_diction JSR top_window 11862LDX#0 11864LDY#6 11866JSR tab 11870JSR diction_disc 11880JSR clear_user 11890JSR bottem_window 11900RTS 11910 11920.text_disc LDX#text_dmess MOD 256 11930LDY#text_dmess DIV 256 11940JSR display 11950LDA#21 11960LDX#0 11970JSR osbyte 11980.tdba JSR readch 11990CMP#32 12000BNE tdba 12010RTS 12020 12030.text_dmess EQUS"Insert TEXT disc and press space" 12050EQUB&FF 12060 12070.diction_disc LDX#dict_dmess MOD 256 12080LDY#dict_dmess DIV 256 12090JSR display 12100LDA#21 12110LDX#0 12120JSR osbyte 12130.ddba JSR readch 12140CMP#32 12150BNE ddba 12160RTS 12170 12180.dict_dmess EQUS"Insert DICTIONARY disc then press space" 12200EQUB&FF 12210 12250.discs LDX#discs_mess MOD 256 12260LDY#discs_mess DIV 256 12270JSR display 12272LDA#21 12274LDX#0 12276JSR osbyte 12280.discsba JSR readch 12290AND#&DF 12300CMP#ASC"N" 12310BEQ diff 12320CMP#ASC"Y" 12330BNE discsba 12336JSR oswrch 12340LDA#0 12350STA disc_flag 12360RTS 12370.diff JSR oswrch 12375LDA#&FF 12380STA disc_flag 12390RTS 12400.disc_flag BRK 12410.discs_mess EQUB22:EQUB7 \ MODE7 12411EQUW&D0A 12412EQUS"Watcher "+version$ 12413EQUW&D0A 12414EQUS"(C) Allan Kelly 1987" 12415EQUW&D0A 12420EQUS"Are Dictionary and Text on same disc?" 12430EQUB&FF 13900.readch JSR osrdch 13910BCS escape_pressed 13920RTS 14000.escape_pressed LDA#&7C 14010JSR osbyte 14020LDY#esc_mess DIV 256 14030LDX#esc_mess MOD 256 14040JSR tell_user 14050.epba JSR osrdch 14060AND#&DF 14070CMP#ASC"Y" 14080BEQ abort 14090CMP#ASC"N" 14100BNE epba 14110JSR clear_user 14120RTS 14130.abort LDA word_flag 14140BEQ epfo 14150LDX#snw MOD 256 14160LDY#snw DIV 256 14170JSR tell_user 14180.epba2 JSR osrdch 14190CMP#ASC"N" 14200BEQ epfo 14210CMP#ASC"Y" 14220BNE epba2 14230JSR empty_ram 14240.epfo LDA#0 14250LDY#0 14260JSR osfind 14270LDA#3 14280JSR oswrch 14290LDA#3 14300LDX#0 14310JSR osbyte 14320LDA#225 \ Return F keys to normal 14330LDX#1 14340JSR osbyte 14350JSR bottem_window 14370JMP menu 14400.esc_mess EQUS"Do you wish to abort? (Y/N)" 14410EQUB&FF 14440.snw EQUW&D0A 14450EQUS"Save New Words? (Y/N)" 14460EQUB&FF 15000.open_spool PHA 15010LDA spool_flag 15020BEQ osfo1 15030PLA 15040LDX#spool_open MOD 256 15050LDY#spool_open DIV 256 15060JSR tell_user 15070JSR osrdch 15075JSR clear_user 15080RTS 15090 15100.osfo1 PLA 15110STA spool_flag 15112JSR top_window 15114LDY#5 15116LDX#0 15118JSR tab 15120.osba1 LDX#get_name MOD 256 15130LDY#get_name DIV 256 15140JSR display 15150LDA#0 15160LDX#spool_block MOD 256 15170LDY#spool_block DIV 256 15180JSR osword 15190BCC osfo2 15200JSR escape_pressed 15210JSR clear_user 15220JMP osba1 15230 15240.osfo2 LDA#&80 15250LDX#spool_name MOD 256 15260LDY#spool_name DIV 256 15270JSR osfind 15280STA spool_handle 15285CMP#0 15286BEQ osfo3 15290LDY#2 15291LDX#20 15292JSR tab 15293LDY#0 15294.osba2 LDA spool_name,Y 15295JSR oswrch 15296INY 15297CMP#&D 15298BNE osba2 15300JSR clear_user 15305JSR bottem_window 15310RTS 15320 15330.spool_open EQUS"Spool file is already open. (RETURN)" 15340EQUB&FF 15350.get_name EQUS"Enter Spool filename: " 15360EQUB&FF 15370.spool_block EQUW spool_name 15380EQUB 16 15390EQUB 32 15400EQUB 127 15405.spool_name OPT FNspace(16,13) 15410 15420.osfo3 LDX#err1 MOD 256 15430LDY#err1 DIV 256 15440JSR tell_user 15450JSR osrdch 15470JSR bottem_window 15472LDA#0 15474STA spool_flag 15480RTS 15490.err1 EQUS"Spool file cannot be opened (RETURN)" 15500EQUB&FF 16000 16010.bytes \ Update screen bytes counter 16020JSR top_window 16030LDY#3 16040LDX#14 16050JSR tab 16100LDX&8C \Use virtual file PTR 16110LDY&8D 16120LDA&8E 16130JSR hex_out 16180LDY#3 16190LDX#32 16200JSR tab 16210LDA&80 16220SEC 16230SBC&8C 16240TAX 16250LDA&81 16260SBC&8D 16270TAY 16280LDA&82 16290SBC&8E 16300JSR hex_out 16370JSR bottem_window 16380RTS 16390 18010.check_keys LDA#&81 18020LDX#1 18030LDY#0 18040JSR osbyte 18050BCC key_check 18060CPY#27 18070BNE ckfo1 18080JSR escape_pressed 18090.ckfo1 RTS 18100 18110.key_check \ X=key pressed 18120CPX#&80 18130BNE ckfo2 18140LDA#2 18150STA save_flag 18152LDX#save_sel MOD 256 18153LDY#save_sel DIV 256 18154JMP ckfo6b 18170.ckfo2 CPX#&81 18180BNE ckfo3 18190LDA#1 18200STA save_flag 18202LDX#save_all MOD 256 18204LDY#save_all DIV 256 18205JMP ckfo6b 18220.ckfo3 CPX#&82 18230BNE ckfo4 18240LDA#0 18250STA save_flag 18252LDX#save_none MOD 256 18254LDY#save_none DIV 256 18255JMP ckfo6b 18270.ckfo4 CPX#&83 18280BNE ckfo5 18290LDA#2 18300LDX#pr_select MOD 256 18305LDY#pr_select DIV 256 18310JMP ckfo6a 18320.ckfo5 CPX#&84 18330BNE ckfo6 18340LDA#1 18350LDX#pr_on MOD 256 18355LDY#pr_on DIV 256 18360JMP ckfo6a 18370.ckfo6 CPX#&85 18380BNE ckfo7 18381LDX#pr_off MOD 256 18382LDY#pr_off DIV 256 18390LDA#0 18400.ckfo6a STA printer_flag 18401.ckfo6b TXA 18402PHA 18403TYA 18404PHA 18405JSR top_window 18406PLA 18407TAY 18408PLA 18409TAX 18410JSR display 18411JSR bottem_window 18412RTS 18420.ckfo7 CPX#&86 18430BNE ckfo8 18440LDA#2 18460JMP open_spool 18480.ckfo8 CPX#&87 18490BNE ckfo9 18500LDA#1 18510JMP open_spool 18540.ckfo9 CPX#&88 18550BNE ckfoA 18560LDA spool_flag 18570BEQ ckfo9a 18580LDY spool_handle 18590LDA#0 18600JSR osfind 18610LDA#0 18620STA spool_flag 18630LDX#csm MOD 256 18640LDY#csm DIV 256 18650JSR tell_user 18660.ckfo9a RTS 18670.csm EQUS"Spool file is now closed" 18672EQUB31 18673EQUB20 18674EQUB2 18675EQUS"OFF" 18676OPT FNspace(16,32) 18680EQUB&FF 18690.ckfoA CPX#&89 18700BNE ckfoB 18710LDA beep_flag 18720EOR#&FF 18730STA beep_flag 18740CMP#0 18741BEQ befo 18743LDY#beep_off DIV 256 18744LDX#beep_off MOD 256 18745JMP ckfo6b 18748.befo LDY#beep_on DIV 256 18750LDX#beep_on MOD 256 18751JMP ckfo6b 18760.ckfoB CPX#9 18765BNE ckfoC 18770LDY#2 18780.tab1 LDX#&FF 18790.tab2 DEX 18800BNE tab2 18810DEY 18820BNE tab1 18830.tab4 LDA#21 18840LDX#0 18850JSR osbyte 18860JSR osrdch 18861BCS tab3 18862CMP#9 18863BNE tab4 18870RTS 18875.tab3 JMP escape_pressed 18880.ckfoC CPX#ASC"@" 18881BEQ ckfoD 18882RTS \ Not one of our keys 18883.ckfoD LDA wrong_flag \ Test status 18884EOR#&FF 18885STA wrong_flag 18887BNE tefo 18888LDY#test_on DIV 256 18889LDX#test_on MOD 256 18890JMP ckfo6b 18891.tefo LDY#test_off DIV 256 18892LDX#test_off MOD 256 18893JMP ckfo6b 19310.end_of_file BRK \ End of file flag 19350.save_flag EQUB2 19360.beep_flag BRK 19365.wrong_flag BRK 19380.word_flag BRK 19390.new_word_pointer EQUW new_ram_words 19410.new_ram_words 19420] 19430NEXT 19440PRINT"Saving Watcher code" 19441IF FNos_save("L.Wprog",mem_start,ass_start,mem_start,O%) 19450END 19460DEFFNspace(x,y) 19470FOR m=O% TO x+O%:?m=y:NEXT 19475P%=P%+x 19476O%=O%+x 19480:=pass 20000DEFPROCset_up 21000PRINT''"Load the Variables !!!" 21010PRINT" *EXEC L.Wexec" 21020STOP 30000ENDPROC 30010 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 � MC to check words "� (C) Code Allan Kelly 26/5/87 (9� Orignal Idea Allan Kelly and David Halligan 22/5/87 2 7� data% 32 <version$="V 1.02" Fdiction$="C.DICTION" Pnw$="C.NEWORDS" dosbyte=&FFF4:osword=&FFF1 xoswrch=&FFEE:osnewl=&FFE7 �osasci=&FFE3:osrdch=&FFE0 �osfile=&FFDD:osargs=&FFDA �osbget=&FFD7:osbput=&FFD4 �osfind=&FFCE:oscli=&FFF7 ��set_up � pass=4 � 6 � 2 P%=ass_start "O%=mem_start 6[:OPT pass @'.enter LDA#1 \ Stage One Open Files J LDY#0 OSTY disc_flag TLDX#&70 ^JSR osargs hLDA(&70),Y r CMP#&D |BNE open �.enba JSR discs �LDX#input �256 \ Get word �LDY#input �256 �JSRdisplay � LDA#0 �LDX#osblock �256 �LDY#osblock �256 � JSRosword �LDA#word �256 � STA&70 �LDA#word �256 � STA&71 �JMP open �+.input EQUW&D0A:EQUS"Filename:":EQUB&FF �+.osblock EQUWword:EQUB26:EQUB32:EQUB127 � �(.open LDA disc_flag \ Open text file �BEQ dsfo �JSR text_disc �.dsfo LDA#&40 � LDX&70 LDY&71 JSR osfind CMP#0 BNE tx_open !LDX#no_tx � 256 "LDY#no_tx � 256 #JSR display $.txba JSR readch % �#&DF &CMP#�"R" 'BEQ enba (CMP#�"Q" )BNE txba *JMP(&FFFC) + ,.no_tx EQUW&D0A -EQUS"Text file not found" .EQUW&D0A /EQUS"Retry or Quit? (R/Q)" 0EQUB&FF 1 4.tx_open STA text_handle 5JSR spwc_init : <!LDA disc_flag \ Open Dic file > BEQ dsfo2 ?JSR osnewl @JSR diction_disc D.dsfo2 LDA#&40 NLDX#dic_file � 256 XLDY#dic_file � 256 ]JSR osfind b CMP#0 gBNE di_open lLDX#no_di � 256 nLDY#no_di � 256 pJSR display rJMP menu t.no_di EQUW&D0A v"EQUS"No Dictionary file found" wEQUW&D0A xEQUB&FF z �.di_open STA dic_handle �TAY \ Read in look up table � LDX#0 �.s1back1 JSR osbget �STA diction_look_up,X �INX � CPX#81 �BNE s1back1 � �.open_nw LDA#&C0 �LDX#nw_file � 256 �LDY#nw_file � 256 �JSR osfind � CMP#0 �BNE nw_open �LDX#opening_nw � 256 �LDY#opening_nw � 256 �JSR display �LDA#&80 �LDX#nw_file � 256 LDY#nw_file � 256 JSR osfind TAY LDA#0 *JSR osbput 4JSR osfind >JMP open_nw H R.opening_nw EQUW&D0A \EQUS"Creating Newords file" fEQUB&FF p �.nw_open STA nw_handle � � \ STAGE 2 �LDA#225 \ Set Function Keys �LDX#&80 JSR osbyte LDA#3 \ Set printer LDX#64 JSR osbyte LDA#&10 \ ADC off LDX#0 JSR osbyte LDX#title_screen � 256 LDY#title_screen � 256 $JSR display B LDX#5 V LDY#1 `JSR tab a LDA#21 b LDX#0 cJSR osbyte j LDY#0 t.s2back1 LDA(&70),Y ~JSR oswrch �INY � CMP#&D �BNE s2back1 � �.s2back2 JSR osrdch �BCS esc � CMP#&D � BEQ s2fo1 �TAX �JSR key_check �LDX#press � 256 �LDY#press � 256 �JSR tell_user �JMP s2back2 � �.esc JSR escape_pressed �JMP s2back2 .s2fo1 JSR clear_user \Start check - stage 3 (LDA#0 \ Init virtual file � < STA&8C F STA&8D P STA&8E Z STA&8F x.stage3 LDX#0 �STX word_length �.s3back1 JSRget_cache_byte �BCC s3for1 �"LDA#&FF \ Character is invalid �STA end_of_file �LDA word_length �BNE s3for2 �JMP close_down �.s3for1 CMP#&D BEQ s3for2 CMP#32 BEQ s3for2 �#&DF CMP#91 BCS s3back1 " CMP#65 ,BMI s3back1 @STA word,X JINX TJMP s3back1 ^.s3for2 LDA#&D _STA word,X hSTX word_length l CPX#0 nBNE s3for3 pJMP s3back1 r |.s3for3 JSR diction_check �BCS word_found �JSR new_word_check �BCS word_found �JSR new_word_found �BCS word_found �JSR mispelt_word �JMP s3for4 !.word_found JSR bottem_window LDY#0 .wfback LDA word,Y & �A#&20 0JSR output_character :INY DCPY word_length NBNE wfback S LDA#32 XJSR output_character bLDA end_of_file vBNE close_down � �.s3for4 JSR bytes �JSR check_keys �JMP stage3 � �.close_down LDA#3 \ Printer �JSR oswrch � LDX#0 �JSR osbyte LDA#&77 \ Close spool JSR osbyte LDA#0 \ Close dictionary *LDY dic_handle 4JSR osfind 6JSR empty_ram 7 LDA#0 >LDY nw_handle \ Close NW CJSR osfind J\ Text closed by cache WLDA#225 \ F keys to norm X LDX#1 YJSR osbyte \ fLDX#sign_off � 256 pLDY#sign_off � 256 zJSR display � �.menu LDX#menu_mess � 256 �LDY#menu_mess � 256 �JSRdisplay �.menuba JSR osrdch �.mefo CMP#83 � BNE mefo2 �LDX#sort �256 �LDY#sort �256 �JMPoscli �!.sort EQUS"RUN U.SORT":EQUB&D �.mefo2 CMP#77 � BNE mefo3 �LDX#rmen �256 �LDY#rmen �256 � JMP oscli !.rmen EQUS"RUN U.MENU":EQUB&D .mefo3 CMP#81 BNE menuba JMP(&FFFC) � �=.new_word_check LDA#new_ram_words � 256 \ Is word in RAM? � STA&7A �LDA#new_ram_words � 256 � STA&7B � �.continue_new_search LDY#0 �LDA(&7A),Y �STA rword_length PHA LDA&7A CLC * ADC#1 4 STA&7A > LDA&7B H ADC#0 R STA&7B WPLA XCMP word_length YBNE no_new_match \ f.nrwba1 LDA(&7A),Y pCMP word,Y zBNE no_new_match � CMP#&D �BEQ new_match_found �INY �JMP nrwba1 � �.new_match_found SEC �RTS � �.no_new_match LDA&7A �SEC �ADC rword_length � STA&7A LDA&7B ADC#0 STA&7B $ LDA&7A .CMP new_word_pointer 8BCC continue_new_search B LDA&7B LCMP new_word_pointer+1 VBCC continue_new_search ` t-LDA#0 \ New Word not In RAM - Search Disc ~ STA&70 � STA&71 � STA&72 � STA&73 � LDA#1 �LDX#&70 �LDY nw_handle �JSR osargs �JSR osbget � CMP#0 �BNE nrwfo1 �$CLC \ File contains no new words �RTS � #.nrwfo1 LDA#0 \ Store current � LDY nw_handle LDX#&76 JSR osargs (#.nrwba3 JSR osbget \ Get length -STA rword_length 2CMP word_length <BNE not_same F LDX#0 P.nrwba2 JSR osbget ZCMP word,X dBNE not_same nINX x CMP#&D �BNE nrwba2 � �SEC \ Words match �RTS � �!.not_same CMP#&FF \ Test of � �BEQ nrwfo2 �LDA&76 \ Advance � �CLC � ADC#2 �ADC rword_length � STA&76 � LDA&77 � ADC#0 � STA&77 � LDA&78 ADC#0 STA&78 "LDA#1 \ Write new � ,LDX#&76 6JSR osargs @JMP nrwba3 J T/.nrwfo2 \ End of file reached with no match ^CLC hRTS r XH.new_word_found \ The word in word buffer has never been seen before bJSR top_window cLDA beep_flag dBNE nwrfo3 f LDA#7 hJSR oswrch l.nwrfo3 LDY#5 v LDX#0 �JSR tab �LDY#is_this � 256 �LDX#is_this � 256 �JSR display � LDY#0 �.nwba1 LDA word,Y � CMP#&D � BEQ nwfo1 � CMP#32 �BCC nwrfo4 �CMP#127 �BCS nwrfo4 �JSR oswrch �.nwrfo4 INY � JMP nwba1 �.nwfo1 LDA#32 �JSR oswrch LDA#�"?" JSR oswrch LDA wrong_flag BNE nwfo2a .nwba2 LDA#21 ! LDX#0 "JSR osbyte #JSR osrdch * BCC nwfo2 4JSR escape_pressed > JMP nwba2 H.nwfo2 �#&DF RCMP#�"Y" \BEQ store_new_word fCMP#�"N" p BNE nwba2 z �+.nwfo2a JSR clear_user \ Word not found �JSR bottem_window �CLC �RTS �.nwba5 JSR clear_user �JMP no_store �I.store_new_word JSR clear_user \ Word in buffer must be stored as new �LDA save_flag � BEQ nwba5 � CMP#1 � BEQ nwfo3 �LDX#saig_mess � 256 �LDY#saig_mess � 256 �JSR tell_user �.nwba4 JSR osrdch � BCC nwfo4 �JSR escape_pressed � JMP nwba4 �.nwfo4 �#&DF �CMP#�"I" � BEQ nwba5 �CMP#�"S" � BNE nwba4 �@.nwfo3 JSR clear_user \ Word in buffer must be stored as new �LDA#&FF \ Set new word flag �STA word_flag �LDA new_word_pointer � STA&7A �LDA new_word_pointer+1 � STA&7B � LDY#0 �LDA word_length �STA(&7A),Y � LDA&7A �CLC ADC#1 STA&7A LDA&7B $ ADC#0 . STA&7B 8.nwba3 LDA word,Y BSTA(&7A),Y LINY V CMP#&D ` BNE nwba3 j tTYA ~CLC � ADC&7A �STA new_word_pointer � LDA&7B � ADC#0 �STA new_word_pointer+1 � �CMP#&3F �BCCno_store JSR empty_ram 6 @\ All RAM word on disc JLDA#new_ram_words � 256 TSTA new_word_pointer ^LDA#new_ram_words � 256 hSTA new_word_pointer+1 r | .no_store SEC \ Words stored �RTS � �..empty_ram \ Save all RAM worss to NW file �&LDA word_flag \ Test new word flag � BNE erfo1 �RTS �.erfo1 JSR clear_user �LDX#saving � 256 �LDY#saving � 256 �JSR tell_user �LDA#2 \ Read � �LDX#&70 �LDY nw_handle �JSR osargs � LDA&70 �SEC � SBC#1 � STA&70 � LDA&71 SBC#0 STA&71 LDA&72 & SBC#0 0 STA&72 : LDA#1 DJSR osargs NJSR osbget X CMP#0 bBEQ file_empty l LDA#1 vJSR osargs � �'.file_empty LDA#new_ram_words � 256 � STA&7A �LDA#new_ram_words � 256 � STA&7B ! !.erba1 LDY#0 !LDA(&7A),Y ! LDY nw_handle !*JSR osbput !4 LDA&7A !>CLC !H ADC#1 !R STA&7A !\ LDA&7B !f ADC#0 !p STA&7B !zCMP new_word_pointer+1 !� BCC erba1 !� LDA&7A !�CMP new_word_pointer !� BCC erba1 !� !�LDA#&FF \ Mark last byte !�JSR osbput !� LDA#0 \ Mark file as holding !� STA&70 !� STA&71 !� STA&72 !� STA&73 !� LDA#1 "LDX#&70 "LDY nw_handle "JSR osargs "$LDA#&FF ".JSR osbput "8RTS "B "L(.saving EQUS"Saving Newords to disc" "QEQUB&FF "�%.is_this EQUS"Correct spelling: " "�EQUB&FF #(3.mispelt_word \ Word im buffer has been misplet #2?\ Output to screen in upper case and pinter/disc is need be #< #FLDA printer_flag #Z BEQ msfo1 #d LDY#0 #n.msba1 LDA#1 #xJSR oswrch #�LDA word,Y #�JSR oswrch #�INY #�CPY word_length #� BNE msba1 #� LDA#1 #�JSR oswrch #� LDA#32 #�JSR oswrch #�LDA printer_flag #� CMP#2 #� BNE msfo1 #� LDA#1 #�JSR oswrch #� LDA#13 #�JSR oswrch #� #�.msfo1 LDA spool_flag #� BEQ msfo2 $ LDX#0 $LDY spool_handle $.msba2 LDA word,X $"JSR osbput $,INX $6CPX word_length $@ BNE msba2 $J LDA#&D $TJSR osbput $^ $h.msfo2 LDX#0 $r.msba2 LDA word,X $| �#&DF $�JSR oswrch $�INX $�CPX word_length $� BNE msba2 $� LDA#32 $�JSR oswrch $�RTS *� .spwc_init_win LDA disc_flag *�BEQ spwc_init *�JSR insert_text *�.spwc_init LDA#2 +LDY text_handle +LDX#&80 + JSRosargs + LDA#0 +* STA&84 +4LDA#&40 +> STA&85 +H +R.spwcba1 LDYtext_handle +\ JSRosbget +aBCS end_of_dic_file +f LDY#0 +pSTA(&84),Y +z LDA&84 +�CLC +� ADC#1 +� STA&84 +� LDA&85 +� ADC#0 +� STA&85 +�CMP#&7A +�BCS cache_full ,JMPspwcba1 , ,.cache_full LDA#0 ,$LDYtext_handle ,.LDX#&88 ,8 JSRosargs ,B LDA&88 ,L CMP&80 ,VBNEstore_aptr ,` LDA&89 ,j CMP&81 ,tBNEstore_aptr ,~.end_of_dic_file LDA#&FF ,� STAcfe ,�LDY text_handle ,� LDA#0 ,�JSR osfind ,�.store_aptr LDA&84 ,� STA&86 ,� LDA&85 ,� STA&87 ,� LDA#0 ,� STA&84 ,�LDA#&40 ,� STA&85 ,�RTS ,� ,�.get_cache_byte LDY#0 -LDA(&84),Y - STAsa -$LDA&8C \ Increase virtual file � -CLC - ADC#1 - STA&8C - LDA&8D - ADC#0 - STA&8D - LDA&8E - ADC#0 - STA&8E - LDA&8F - ADC#0 - STA&8F - LDA&84 -CLC -( ADC#1 -2 STA&84 -< LDA&85 -F ADC#0 -P STA&85 -Z CMP&87 -dBCCgcb_exit -n LDA&84 -x CMP&86 -�BCCgcb_exit -� LDAcfe -�CMP#&FF -�BNEgcbfo -� LDA sa -�SEC -�RTS -�.gcbfo STX sx -�JSRspwc_init_win -�LDA disc_flag -�BEQ gcb_exit -�JSR insert_diction -� LDX sx -�.gcb_exit LDAsa -�CLC -�RTS -�.cfe BRK -�.sx BRK -� ..insert_text JSR top_window . LDX#0 . LDY#6 .JSR tab ."JSR text_disc .,JSR clear_user .6JSR bottem_window .@RTS .J .T".insert_diction JSR top_window .V LDX#0 .X LDY#6 .ZJSR tab .^JSR diction_disc .hJSR clear_user .rJSR bottem_window .|RTS .� .�#.text_disc LDX#text_dmess � 256 .�LDY#text_dmess � 256 .�JSR display .� LDA#21 .� LDX#0 .�JSR osbyte .�.tdba JSR readch .� CMP#32 .�BNE tdba .�RTS .� .�6.text_dmess EQUS"Insert TEXT disc and press space" /EQUB&FF / /&&.diction_disc LDX#dict_dmess � 256 /0LDY#dict_dmess � 256 /:JSR display /D LDA#21 /N LDX#0 /XJSR osbyte /b.ddba JSR readch /l CMP#32 /vBNE ddba /�RTS /� /�=.dict_dmess EQUS"Insert DICTIONARY disc then press space" /�EQUB&FF /� /�.discs LDX#discs_mess � 256 /�LDY#discs_mess � 256 /�JSR display /� LDA#21 /� LDX#0 /�JSR osbyte /�.discsba JSR readch 0 �#&DF 0CMP#�"N" 0BEQ diff 0 CMP#�"Y" 0*BNE discsba 00JSR oswrch 04 LDA#0 0>STA disc_flag 0HRTS 0R.diff JSR oswrch 0WLDA#&FF 0\STA disc_flag 0fRTS 0p.disc_flag BRK 0z!.discs_mess EQUB22:EQUB7 \ �7 0{EQUW&D0A 0|EQUS"Watcher "+version$ 0}EQUW&D0A 0~EQUS"(C) Allan Kelly 1987" 0EQUW&D0A 0�/EQUS"Are Dictionary and Text on same disc?" 0�EQUB&FF 6L.readch JSR osrdch 6VBCS escape_pressed 6`RTS 6�.escape_pressed LDA#&7C 6�JSR osbyte 6�LDY#esc_mess � 256 6�LDX#esc_mess � 256 6�JSR tell_user 6�.epba JSR osrdch 6� �#&DF 6�CMP#�"Y" 7 BEQ abort 7 CMP#�"N" 7BNE epba 7JSR clear_user 7(RTS 72.abort LDA word_flag 7<BEQ epfo 7FLDX#snw � 256 7PLDY#snw � 256 7ZJSR tell_user 7d.epba2 JSR osrdch 7nCMP#�"N" 7xBEQ epfo 7�CMP#�"Y" 7� BNE epba2 7�JSR empty_ram 7�.epfo LDA#0 7� LDY#0 7�JSR osfind 7� LDA#3 7�JSR oswrch 7� LDA#3 7� LDX#0 7�JSR osbyte 7�%LDA#225 \ Return F keys to normal 7� LDX#1 8JSR osbyte 8JSR bottem_window 8"JMP menu 8@/.esc_mess EQUS"Do you wish to abort? (Y/N)" 8JEQUB&FF 8h.snw EQUW&D0A 8rEQUS"Save New Words? (Y/N)" 8|EQUB&FF :�.open_spool PHA :�LDA spool_flag :� BEQ osfo1 :�PLA :�LDX#spool_open � 256 :�LDY#spool_open � 256 :�JSR tell_user :�JSR osrdch :�JSR clear_user :�RTS :� :�.osfo1 PLA ;STA spool_flag ;JSR top_window ; LDY#5 ; LDX#0 ;JSR tab ;.osba1 LDX#get_name � 256 ;LDY#get_name � 256 ;$JSR display ;. LDA#0 ;8LDX#spool_block � 256 ;BLDY#spool_block � 256 ;LJSR osword ;V BCC osfo2 ;`JSR escape_pressed ;jJSR clear_user ;t JMP osba1 ;~ ;�.osfo2 LDA#&80 ;�LDX#spool_name � 256 ;�LDY#spool_name � 256 ;�JSR osfind ;�STA spool_handle ;� CMP#0 ;� BEQ osfo3 ;� LDY#2 ;� LDX#20 ;�JSR tab ;� LDY#0 ;�.osba2 LDA spool_name,Y ;�JSR oswrch ;�INY ;� CMP#&D ;� BNE osba2 ;�JSR clear_user ;�JSR bottem_window ;�RTS ;� ;�:.spool_open EQUS"Spool file is already open. (RETURN)" ;�EQUB&FF ;�*.get_name EQUS"Enter Spool filename: " <EQUB&FF < .spool_block EQUW spool_name <EQUB 16 <EQUB 32 <(EQUB 127 <-!.spool_name OPT �space(16,13) <2 <<.osfo3 LDX#err1 � 256 <FLDY#err1 � 256 <PJSR tell_user <ZJSR osrdch <nJSR bottem_window <p LDA#0 <rSTA spool_flag <xRTS <�4.err1 EQUS"Spool file cannot be opened (RETURN)" <�EQUB&FF >� >�(.bytes \ Update screen bytes counter >�JSR top_window >� LDY#3 >� LDX#14 >�JSR tab >�LDX&8C \Use virtual file � >� LDY&8D >� LDA&8E ?JSR hex_out ?4 LDY#3 ?> LDX#32 ?HJSR tab ?R LDA&80 ?\SEC ?f SBC&8C ?pTAX ?z LDA&81 ?� SBC&8D ?�TAY ?� LDA&82 ?� SBC&8E ?�JSR hex_out ?�JSR bottem_window ?�RTS @ FZ.check_keys LDA#&81 Fd LDX#1 Fn LDY#0 FxJSR osbyte F�BCC key_check F� CPY#27 F� BNE ckfo1 F�JSR escape_pressed F�.ckfo1 RTS F� F�.key_check \ X=key pressed F�CPX#&80 F� BNE ckfo2 F� LDA#2 F�STA save_flag F�LDX#save_sel � 256 F�LDY#save_sel � 256 F�JMP ckfo6b F�.ckfo2 CPX#&81 G BNE ckfo3 G LDA#1 GSTA save_flag GLDX#save_all � 256 GLDY#save_all � 256 GJMP ckfo6b G,.ckfo3 CPX#&82 G6 BNE ckfo4 G@ LDA#0 GJSTA save_flag GLLDX#save_none � 256 GNLDY#save_none � 256 GOJMP ckfo6b G^.ckfo4 CPX#&83 Gh BNE ckfo5 Gr LDA#2 G|LDX#pr_select � 256 G�LDY#pr_select � 256 G�JMP ckfo6a G�.ckfo5 CPX#&84 G� BNE ckfo6 G� LDA#1 G�LDX#pr_on � 256 G�LDY#pr_on � 256 G�JMP ckfo6a G�.ckfo6 CPX#&85 G� BNE ckfo7 G�LDX#pr_off � 256 G�LDY#pr_off � 256 G� LDA#0 G�.ckfo6a STA printer_flag G�.ckfo6b TXA G�PHA G�TYA G�PHA G�JSR top_window G�PLA G�TAY G�PLA G�TAX G�JSR display G�JSR bottem_window G�RTS G�.ckfo7 CPX#&86 G� BNE ckfo8 H LDA#2 HJMP open_spool H0.ckfo8 CPX#&87 H: BNE ckfo9 HD LDA#1 HNJMP open_spool Hl.ckfo9 CPX#&88 Hv BNE ckfoA H�LDA spool_flag H�BEQ ckfo9a H�LDY spool_handle H� LDA#0 H�JSR osfind H� LDA#0 H�STA spool_flag H�LDX#csm � 256 H�LDY#csm � 256 H�JSR tell_user H�.ckfo9a RTS H�'.csm EQUS"Spool file is now closed" H� EQUB31 H� EQUB20 H� EQUB2 H� EQUS"OFF" H�OPT �space(16,32) H�EQUB&FF I.ckfoA CPX#&89 I BNE ckfoB ILDA beep_flag I �#&FF I*STA beep_flag I4 CMP#0 I5BEQ befo I7LDY#beep_off � 256 I8LDX#beep_off � 256 I9JMP ckfo6b I<.befo LDY#beep_on � 256 I>LDX#beep_on � 256 I?JMP ckfo6b IH.ckfoB CPX#9 IM BNE ckfoC IR LDY#2 I\.tab1 LDX#&FF If .tab2 DEX IpBNE tab2 IzDEY I�BNE tab1 I�.tab4 LDA#21 I� LDX#0 I�JSR osbyte I�JSR osrdch I�BCS tab3 I� CMP#9 I�BNE tab4 I�RTS I�.tab3 JMP escape_pressed I�.ckfoC CPX#�"@" I� BEQ ckfoD I�RTS \ Not one of our keys I�'.ckfoD LDA wrong_flag \ Test status I� �#&FF I�STA wrong_flag I�BNE tefo I�LDY#test_on � 256 I�LDX#test_on � 256 I�JMP ckfo6b I�.tefo LDY#test_off � 256 I�LDX#test_off � 256 I�JMP ckfo6b Kn'.end_of_file BRK \ End of file flag K�.save_flag EQUB2 K�.beep_flag BRK K�.wrong_flag BRK K�.word_flag BRK K�(.new_word_pointer EQUW new_ram_words K�.new_ram_words K�] K�� K��"Saving Watcher code" K�:� �os_save("L.Wprog",mem_start,ass_start,mem_start,O%) K�� Lݤspace(x,y) L� m=O% � x+O%:?m=y:� LP%=P%+x LO%=O%+x L :=pass N ��set_up R�''"Load the Variables !!!" R�" *EXEC L.Wexec" R� u0� u: 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 17 f4 20 4d 43 20 74 6f 20 63 68 65 63 6b 20 |... MC to check | 00000030 77 6f 72 64 73 0d 00 1e 22 f4 20 28 43 29 20 43 |words...". (C) C| 00000040 6f 64 65 20 41 6c 6c 61 6e 20 4b 65 6c 6c 79 20 |ode Allan Kelly | 00000050 32 36 2f 35 2f 38 37 0d 00 28 39 f4 20 4f 72 69 |26/5/87..(9. Ori| 00000060 67 6e 61 6c 20 49 64 65 61 20 41 6c 6c 61 6e 20 |gnal Idea Allan | 00000070 4b 65 6c 6c 79 20 61 6e 64 20 44 61 76 69 64 20 |Kelly and David | 00000080 48 61 6c 6c 69 67 61 6e 20 32 32 2f 35 2f 38 37 |Halligan 22/5/87| 00000090 0d 00 32 05 20 0d 00 37 0e de 20 64 61 74 61 25 |..2. ..7.. data%| 000000a0 20 33 32 0d 00 3c 15 76 65 72 73 69 6f 6e 24 3d | 32..<.version$=| 000000b0 22 56 20 31 2e 30 32 22 0d 00 46 18 64 69 63 74 |"V 1.02"..F.dict| 000000c0 69 6f 6e 24 3d 22 43 2e 44 49 43 54 49 4f 4e 22 |ion$="C.DICTION"| 000000d0 0d 00 50 13 6e 77 24 3d 22 43 2e 4e 45 57 4f 52 |..P.nw$="C.NEWOR| 000000e0 44 53 22 0d 00 64 1d 6f 73 62 79 74 65 3d 26 46 |DS"..d.osbyte=&F| 000000f0 46 46 34 3a 6f 73 77 6f 72 64 3d 26 46 46 46 31 |FF4:osword=&FFF1| 00000100 0d 00 78 1d 6f 73 77 72 63 68 3d 26 46 46 45 45 |..x.oswrch=&FFEE| 00000110 3a 6f 73 6e 65 77 6c 3d 26 46 46 45 37 0d 00 8c |:osnewl=&FFE7...| 00000120 1d 6f 73 61 73 63 69 3d 26 46 46 45 33 3a 6f 73 |.osasci=&FFE3:os| 00000130 72 64 63 68 3d 26 46 46 45 30 0d 00 a0 1d 6f 73 |rdch=&FFE0....os| 00000140 66 69 6c 65 3d 26 46 46 44 44 3a 6f 73 61 72 67 |file=&FFDD:osarg| 00000150 73 3d 26 46 46 44 41 0d 00 b4 1d 6f 73 62 67 65 |s=&FFDA....osbge| 00000160 74 3d 26 46 46 44 37 3a 6f 73 62 70 75 74 3d 26 |t=&FFD7:osbput=&| 00000170 46 46 44 34 0d 00 c8 1c 6f 73 66 69 6e 64 3d 26 |FFD4....osfind=&| 00000180 46 46 43 45 3a 6f 73 63 6c 69 3d 26 46 46 46 37 |FFCE:oscli=&FFF7| 00000190 0d 00 fa 0b f2 73 65 74 5f 75 70 0d 01 04 05 20 |.....set_up.... | 000001a0 0d 01 0e 14 e3 20 70 61 73 73 3d 34 20 b8 20 36 |..... pass=4 . 6| 000001b0 20 88 20 32 0d 01 18 10 50 25 3d 61 73 73 5f 73 | . 2....P%=ass_s| 000001c0 74 61 72 74 0d 01 22 10 4f 25 3d 6d 65 6d 5f 73 |tart..".O%=mem_s| 000001d0 74 61 72 74 0d 01 36 0e 5b 3a 4f 50 54 20 70 61 |tart..6.[:OPT pa| 000001e0 73 73 0d 01 40 27 2e 65 6e 74 65 72 20 4c 44 41 |ss..@'.enter LDA| 000001f0 23 31 20 5c 20 53 74 61 67 65 20 4f 6e 65 20 4f |#1 \ Stage One O| 00000200 70 65 6e 20 46 69 6c 65 73 0d 01 4a 09 4c 44 59 |pen Files..J.LDY| 00000210 23 30 0d 01 4f 11 53 54 59 20 64 69 73 63 5f 66 |#0..O.STY disc_f| 00000220 6c 61 67 0d 01 54 0b 4c 44 58 23 26 37 30 0d 01 |lag..T.LDX#&70..| 00000230 5e 0e 4a 53 52 20 6f 73 61 72 67 73 0d 01 68 0e |^.JSR osargs..h.| 00000240 4c 44 41 28 26 37 30 29 2c 59 0d 01 72 0a 43 4d |LDA(&70),Y..r.CM| 00000250 50 23 26 44 0d 01 7c 0c 42 4e 45 20 6f 70 65 6e |P#&D..|.BNE open| 00000260 0d 01 80 13 2e 65 6e 62 61 20 4a 53 52 20 64 69 |.....enba JSR di| 00000270 73 63 73 0d 01 86 1d 4c 44 58 23 69 6e 70 75 74 |scs....LDX#input| 00000280 20 83 32 35 36 20 5c 20 47 65 74 20 77 6f 72 64 | .256 \ Get word| 00000290 0d 01 8b 12 4c 44 59 23 69 6e 70 75 74 20 81 32 |....LDY#input .2| 000002a0 35 36 0d 01 90 0e 4a 53 52 64 69 73 70 6c 61 79 |56....JSRdisplay| 000002b0 0d 01 95 09 4c 44 41 23 30 0d 01 9a 14 4c 44 58 |....LDA#0....LDX| 000002c0 23 6f 73 62 6c 6f 63 6b 20 83 32 35 36 0d 01 9f |#osblock .256...| 000002d0 14 4c 44 59 23 6f 73 62 6c 6f 63 6b 20 81 32 35 |.LDY#osblock .25| 000002e0 36 0d 01 a4 0d 4a 53 52 6f 73 77 6f 72 64 0d 01 |6....JSRosword..| 000002f0 a9 11 4c 44 41 23 77 6f 72 64 20 83 32 35 36 0d |..LDA#word .256.| 00000300 01 ae 0a 53 54 41 26 37 30 0d 01 b3 11 4c 44 41 |...STA&70....LDA| 00000310 23 77 6f 72 64 20 81 32 35 36 0d 01 b4 0a 53 54 |#word .256....ST| 00000320 41 26 37 31 0d 01 b8 0c 4a 4d 50 20 6f 70 65 6e |A&71....JMP open| 00000330 0d 01 bd 2b 2e 69 6e 70 75 74 20 45 51 55 57 26 |...+.input EQUW&| 00000340 44 30 41 3a 45 51 55 53 22 46 69 6c 65 6e 61 6d |D0A:EQUS"Filenam| 00000350 65 3a 22 3a 45 51 55 42 26 46 46 0d 01 c2 2b 2e |e:":EQUB&FF...+.| 00000360 6f 73 62 6c 6f 63 6b 20 45 51 55 57 77 6f 72 64 |osblock EQUWword| 00000370 3a 45 51 55 42 32 36 3a 45 51 55 42 33 32 3a 45 |:EQUB26:EQUB32:E| 00000380 51 55 42 31 32 37 0d 01 ea 05 20 0d 01 f4 28 2e |QUB127.... ...(.| 00000390 6f 70 65 6e 20 4c 44 41 20 64 69 73 63 5f 66 6c |open LDA disc_fl| 000003a0 61 67 20 5c 20 4f 70 65 6e 20 74 65 78 74 20 66 |ag \ Open text f| 000003b0 69 6c 65 0d 01 f6 0c 42 45 51 20 64 73 66 6f 0d |ile....BEQ dsfo.| 000003c0 01 f8 11 4a 53 52 20 74 65 78 74 5f 64 69 73 63 |...JSR text_disc| 000003d0 0d 01 fc 11 2e 64 73 66 6f 20 4c 44 41 23 26 34 |.....dsfo LDA#&4| 000003e0 30 0d 01 fe 0a 4c 44 58 26 37 30 0d 02 08 0a 4c |0....LDX&70....L| 000003f0 44 59 26 37 31 0d 02 12 0e 4a 53 52 20 6f 73 66 |DY&71....JSR osf| 00000400 69 6e 64 0d 02 17 09 43 4d 50 23 30 0d 02 1c 0f |ind....CMP#0....| 00000410 42 4e 45 20 74 78 5f 6f 70 65 6e 0d 02 21 13 4c |BNE tx_open..!.L| 00000420 44 58 23 6e 6f 5f 74 78 20 83 20 32 35 36 0d 02 |DX#no_tx . 256..| 00000430 22 13 4c 44 59 23 6e 6f 5f 74 78 20 81 20 32 35 |".LDY#no_tx . 25| 00000440 36 0d 02 23 0f 4a 53 52 20 64 69 73 70 6c 61 79 |6..#.JSR display| 00000450 0d 02 24 14 2e 74 78 62 61 20 4a 53 52 20 72 65 |..$..txba JSR re| 00000460 61 64 63 68 0d 02 25 09 80 23 26 44 46 0d 02 26 |adch..%..#&DF..&| 00000470 0c 43 4d 50 23 97 22 52 22 0d 02 27 0c 42 45 51 |.CMP#."R"..'.BEQ| 00000480 20 65 6e 62 61 0d 02 28 0c 43 4d 50 23 97 22 51 | enba..(.CMP#."Q| 00000490 22 0d 02 29 0c 42 4e 45 20 74 78 62 61 0d 02 2a |"..).BNE txba..*| 000004a0 0e 4a 4d 50 28 26 46 46 46 43 29 0d 02 2b 05 20 |.JMP(&FFFC)..+. | 000004b0 0d 02 2c 13 2e 6e 6f 5f 74 78 20 45 51 55 57 26 |..,..no_tx EQUW&| 000004c0 44 30 41 0d 02 2d 1d 45 51 55 53 22 54 65 78 74 |D0A..-.EQUS"Text| 000004d0 20 66 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 22 | file not found"| 000004e0 0d 02 2e 0c 45 51 55 57 26 44 30 41 0d 02 2f 1e |....EQUW&D0A../.| 000004f0 45 51 55 53 22 52 65 74 72 79 20 6f 72 20 51 75 |EQUS"Retry or Qu| 00000500 69 74 3f 20 28 52 2f 51 29 22 0d 02 30 0b 45 51 |it? (R/Q)"..0.EQ| 00000510 55 42 26 46 46 0d 02 31 05 20 0d 02 34 1c 2e 74 |UB&FF..1. ..4..t| 00000520 78 5f 6f 70 65 6e 20 53 54 41 20 74 65 78 74 5f |x_open STA text_| 00000530 68 61 6e 64 6c 65 0d 02 35 11 4a 53 52 20 73 70 |handle..5.JSR sp| 00000540 77 63 5f 69 6e 69 74 0d 02 3a 05 20 0d 02 3c 21 |wc_init..:. ..<!| 00000550 4c 44 41 20 64 69 73 63 5f 66 6c 61 67 20 5c 20 |LDA disc_flag \ | 00000560 4f 70 65 6e 20 44 69 63 20 66 69 6c 65 0d 02 3e |Open Dic file..>| 00000570 0d 42 45 51 20 64 73 66 6f 32 0d 02 3f 0e 4a 53 |.BEQ dsfo2..?.JS| 00000580 52 20 6f 73 6e 65 77 6c 0d 02 40 14 4a 53 52 20 |R osnewl..@.JSR | 00000590 64 69 63 74 69 6f 6e 5f 64 69 73 63 0d 02 44 12 |diction_disc..D.| 000005a0 2e 64 73 66 6f 32 20 4c 44 41 23 26 34 30 0d 02 |.dsfo2 LDA#&40..| 000005b0 4e 16 4c 44 58 23 64 69 63 5f 66 69 6c 65 20 83 |N.LDX#dic_file .| 000005c0 20 32 35 36 0d 02 58 16 4c 44 59 23 64 69 63 5f | 256..X.LDY#dic_| 000005d0 66 69 6c 65 20 81 20 32 35 36 0d 02 5d 0e 4a 53 |file . 256..].JS| 000005e0 52 20 6f 73 66 69 6e 64 0d 02 62 09 43 4d 50 23 |R osfind..b.CMP#| 000005f0 30 0d 02 67 0f 42 4e 45 20 64 69 5f 6f 70 65 6e |0..g.BNE di_open| 00000600 0d 02 6c 13 4c 44 58 23 6e 6f 5f 64 69 20 83 20 |..l.LDX#no_di . | 00000610 32 35 36 0d 02 6e 13 4c 44 59 23 6e 6f 5f 64 69 |256..n.LDY#no_di| 00000620 20 81 20 32 35 36 0d 02 70 0f 4a 53 52 20 64 69 | . 256..p.JSR di| 00000630 73 70 6c 61 79 0d 02 72 0c 4a 4d 50 20 6d 65 6e |splay..r.JMP men| 00000640 75 0d 02 74 13 2e 6e 6f 5f 64 69 20 45 51 55 57 |u..t..no_di EQUW| 00000650 26 44 30 41 0d 02 76 22 45 51 55 53 22 4e 6f 20 |&D0A..v"EQUS"No | 00000660 44 69 63 74 69 6f 6e 61 72 79 20 66 69 6c 65 20 |Dictionary file | 00000670 66 6f 75 6e 64 22 0d 02 77 0c 45 51 55 57 26 44 |found"..w.EQUW&D| 00000680 30 41 0d 02 78 0b 45 51 55 42 26 46 46 0d 02 7a |0A..x.EQUB&FF..z| 00000690 05 20 0d 02 80 1b 2e 64 69 5f 6f 70 65 6e 20 53 |. .....di_open S| 000006a0 54 41 20 64 69 63 5f 68 61 6e 64 6c 65 0d 02 81 |TA dic_handle...| 000006b0 1f 54 41 59 20 5c 20 52 65 61 64 20 69 6e 20 6c |.TAY \ Read in l| 000006c0 6f 6f 6b 20 75 70 20 74 61 62 6c 65 0d 02 82 09 |ook up table....| 000006d0 4c 44 58 23 30 0d 02 83 17 2e 73 31 62 61 63 6b |LDX#0.....s1back| 000006e0 31 20 4a 53 52 20 6f 73 62 67 65 74 0d 02 84 19 |1 JSR osbget....| 000006f0 53 54 41 20 64 69 63 74 69 6f 6e 5f 6c 6f 6f 6b |STA diction_look| 00000700 5f 75 70 2c 58 0d 02 85 07 49 4e 58 0d 02 86 0a |_up,X....INX....| 00000710 43 50 58 23 38 31 0d 02 87 0f 42 4e 45 20 73 31 |CPX#81....BNE s1| 00000720 62 61 63 6b 31 0d 02 8a 05 20 0d 02 94 14 2e 6f |back1.... .....o| 00000730 70 65 6e 5f 6e 77 20 4c 44 41 23 26 43 30 0d 02 |pen_nw LDA#&C0..| 00000740 9e 15 4c 44 58 23 6e 77 5f 66 69 6c 65 20 83 20 |..LDX#nw_file . | 00000750 32 35 36 0d 02 a8 15 4c 44 59 23 6e 77 5f 66 69 |256....LDY#nw_fi| 00000760 6c 65 20 81 20 32 35 36 0d 02 b2 0e 4a 53 52 20 |le . 256....JSR | 00000770 6f 73 66 69 6e 64 0d 02 bc 09 43 4d 50 23 30 0d |osfind....CMP#0.| 00000780 02 c6 0f 42 4e 45 20 6e 77 5f 6f 70 65 6e 0d 02 |...BNE nw_open..| 00000790 d0 18 4c 44 58 23 6f 70 65 6e 69 6e 67 5f 6e 77 |..LDX#opening_nw| 000007a0 20 83 20 32 35 36 0d 02 da 18 4c 44 59 23 6f 70 | . 256....LDY#op| 000007b0 65 6e 69 6e 67 5f 6e 77 20 81 20 32 35 36 0d 02 |ening_nw . 256..| 000007c0 e4 0f 4a 53 52 20 64 69 73 70 6c 61 79 0d 02 ee |..JSR display...| 000007d0 0b 4c 44 41 23 26 38 30 0d 02 f8 15 4c 44 58 23 |.LDA#&80....LDX#| 000007e0 6e 77 5f 66 69 6c 65 20 83 20 32 35 36 0d 03 02 |nw_file . 256...| 000007f0 15 4c 44 59 23 6e 77 5f 66 69 6c 65 20 81 20 32 |.LDY#nw_file . 2| 00000800 35 36 0d 03 0c 0e 4a 53 52 20 6f 73 66 69 6e 64 |56....JSR osfind| 00000810 0d 03 16 07 54 41 59 0d 03 20 09 4c 44 41 23 30 |....TAY.. .LDA#0| 00000820 0d 03 2a 0e 4a 53 52 20 6f 73 62 70 75 74 0d 03 |..*.JSR osbput..| 00000830 34 0e 4a 53 52 20 6f 73 66 69 6e 64 0d 03 3e 0f |4.JSR osfind..>.| 00000840 4a 4d 50 20 6f 70 65 6e 5f 6e 77 0d 03 48 05 20 |JMP open_nw..H. | 00000850 0d 03 52 18 2e 6f 70 65 6e 69 6e 67 5f 6e 77 20 |..R..opening_nw | 00000860 45 51 55 57 26 44 30 41 0d 03 5c 1f 45 51 55 53 |EQUW&D0A..\.EQUS| 00000870 22 43 72 65 61 74 69 6e 67 20 4e 65 77 6f 72 64 |"Creating Neword| 00000880 73 20 66 69 6c 65 22 0d 03 66 0b 45 51 55 42 26 |s file"..f.EQUB&| 00000890 46 46 0d 03 70 05 20 0d 03 84 1a 2e 6e 77 5f 6f |FF..p. .....nw_o| 000008a0 70 65 6e 20 53 54 41 20 6e 77 5f 68 61 6e 64 6c |pen STA nw_handl| 000008b0 65 0d 03 8e 05 20 0d 03 e8 0d 5c 20 53 54 41 47 |e.... ....\ STAG| 000008c0 45 20 32 0d 03 f2 1f 4c 44 41 23 32 32 35 20 5c |E 2....LDA#225 \| 000008d0 20 53 65 74 20 46 75 6e 63 74 69 6f 6e 20 4b 65 | Set Function Ke| 000008e0 79 73 0d 03 fc 0b 4c 44 58 23 26 38 30 0d 04 06 |ys....LDX#&80...| 000008f0 0e 4a 53 52 20 6f 73 62 79 74 65 0d 04 08 17 4c |.JSR osbyte....L| 00000900 44 41 23 33 20 5c 20 53 65 74 20 70 72 69 6e 74 |DA#3 \ Set print| 00000910 65 72 0d 04 0a 0a 4c 44 58 23 36 34 0d 04 0c 0e |er....LDX#64....| 00000920 4a 53 52 20 6f 73 62 79 74 65 0d 04 0d 15 4c 44 |JSR osbyte....LD| 00000930 41 23 26 31 30 20 5c 20 41 44 43 20 6f 66 66 0d |A#&10 \ ADC off.| 00000940 04 0e 09 4c 44 58 23 30 0d 04 0f 0e 4a 53 52 20 |...LDX#0....JSR | 00000950 6f 73 62 79 74 65 0d 04 10 1a 4c 44 58 23 74 69 |osbyte....LDX#ti| 00000960 74 6c 65 5f 73 63 72 65 65 6e 20 83 20 32 35 36 |tle_screen . 256| 00000970 0d 04 1a 1a 4c 44 59 23 74 69 74 6c 65 5f 73 63 |....LDY#title_sc| 00000980 72 65 65 6e 20 81 20 32 35 36 0d 04 24 0f 4a 53 |reen . 256..$.JS| 00000990 52 20 64 69 73 70 6c 61 79 0d 04 42 09 4c 44 58 |R display..B.LDX| 000009a0 23 35 0d 04 56 09 4c 44 59 23 31 0d 04 60 0b 4a |#5..V.LDY#1..`.J| 000009b0 53 52 20 74 61 62 0d 04 61 0a 4c 44 41 23 32 31 |SR tab..a.LDA#21| 000009c0 0d 04 62 09 4c 44 58 23 30 0d 04 63 0e 4a 53 52 |..b.LDX#0..c.JSR| 000009d0 20 6f 73 62 79 74 65 0d 04 6a 09 4c 44 59 23 30 | osbyte..j.LDY#0| 000009e0 0d 04 74 17 2e 73 32 62 61 63 6b 31 20 4c 44 41 |..t..s2back1 LDA| 000009f0 28 26 37 30 29 2c 59 0d 04 7e 0e 4a 53 52 20 6f |(&70),Y..~.JSR o| 00000a00 73 77 72 63 68 0d 04 88 07 49 4e 59 0d 04 92 0a |swrch....INY....| 00000a10 43 4d 50 23 26 44 0d 04 9c 0f 42 4e 45 20 73 32 |CMP#&D....BNE s2| 00000a20 62 61 63 6b 31 0d 04 a6 05 20 0d 04 b0 17 2e 73 |back1.... .....s| 00000a30 32 62 61 63 6b 32 20 4a 53 52 20 6f 73 72 64 63 |2back2 JSR osrdc| 00000a40 68 0d 04 b5 0b 42 43 53 20 65 73 63 0d 04 ba 0a |h....BCS esc....| 00000a50 43 4d 50 23 26 44 0d 04 c4 0d 42 45 51 20 73 32 |CMP#&D....BEQ s2| 00000a60 66 6f 31 0d 04 c9 07 54 41 58 0d 04 ce 11 4a 53 |fo1....TAX....JS| 00000a70 52 20 6b 65 79 5f 63 68 65 63 6b 0d 04 d0 13 4c |R key_check....L| 00000a80 44 58 23 70 72 65 73 73 20 83 20 32 35 36 0d 04 |DX#press . 256..| 00000a90 d2 13 4c 44 59 23 70 72 65 73 73 20 81 20 32 35 |..LDY#press . 25| 00000aa0 36 0d 04 d4 11 4a 53 52 20 74 65 6c 6c 5f 75 73 |6....JSR tell_us| 00000ab0 65 72 0d 04 d8 0f 4a 4d 50 20 73 32 62 61 63 6b |er....JMP s2back| 00000ac0 32 0d 04 e2 05 20 0d 04 ec 1b 2e 65 73 63 20 4a |2.... .....esc J| 00000ad0 53 52 20 65 73 63 61 70 65 5f 70 72 65 73 73 65 |SR escape_presse| 00000ae0 64 0d 04 f6 0f 4a 4d 50 20 73 32 62 61 63 6b 32 |d....JMP s2back2| 00000af0 0d 05 00 05 20 0d 05 0a 19 2e 73 32 66 6f 31 20 |.... .....s2fo1 | 00000b00 4a 53 52 20 63 6c 65 61 72 5f 75 73 65 72 0d 05 |JSR clear_user..| 00000b10 14 05 20 0d 05 1e 1a 5c 53 74 61 72 74 20 63 68 |.. ....\Start ch| 00000b20 65 63 6b 20 2d 20 73 74 61 67 65 20 33 0d 05 28 |eck - stage 3..(| 00000b30 1f 4c 44 41 23 30 20 5c 20 49 6e 69 74 20 76 69 |.LDA#0 \ Init vi| 00000b40 72 74 75 61 6c 20 66 69 6c 65 20 8f 0d 05 3c 0a |rtual file ...<.| 00000b50 53 54 41 26 38 43 0d 05 46 0a 53 54 41 26 38 44 |STA&8C..F.STA&8D| 00000b60 0d 05 50 0a 53 54 41 26 38 45 0d 05 5a 0a 53 54 |..P.STA&8E..Z.ST| 00000b70 41 26 38 46 0d 05 78 11 2e 73 74 61 67 65 33 20 |A&8F..x..stage3 | 00000b80 4c 44 58 23 30 0d 05 87 13 53 54 58 20 77 6f 72 |LDX#0....STX wor| 00000b90 64 5f 6c 65 6e 67 74 68 0d 05 96 1e 2e 73 33 62 |d_length.....s3b| 00000ba0 61 63 6b 31 20 4a 53 52 67 65 74 5f 63 61 63 68 |ack1 JSRget_cach| 00000bb0 65 5f 62 79 74 65 0d 05 b4 0e 42 43 43 20 73 33 |e_byte....BCC s3| 00000bc0 66 6f 72 31 0d 05 c8 22 4c 44 41 23 26 46 46 20 |for1..."LDA#&FF | 00000bd0 5c 20 43 68 61 72 61 63 74 65 72 20 69 73 20 69 |\ Character is i| 00000be0 6e 76 61 6c 69 64 0d 05 d2 13 53 54 41 20 65 6e |nvalid....STA en| 00000bf0 64 5f 6f 66 5f 66 69 6c 65 0d 05 d3 13 4c 44 41 |d_of_file....LDA| 00000c00 20 77 6f 72 64 5f 6c 65 6e 67 74 68 0d 05 d6 0e | word_length....| 00000c10 42 4e 45 20 73 33 66 6f 72 32 0d 05 dc 12 4a 4d |BNE s3for2....JM| 00000c20 50 20 63 6c 6f 73 65 5f 64 6f 77 6e 0d 05 e6 12 |P close_down....| 00000c30 2e 73 33 66 6f 72 31 20 43 4d 50 23 26 44 0d 06 |.s3for1 CMP#&D..| 00000c40 04 0e 42 45 51 20 73 33 66 6f 72 32 0d 06 0e 0a |..BEQ s3for2....| 00000c50 43 4d 50 23 33 32 0d 06 18 0e 42 45 51 20 73 33 |CMP#32....BEQ s3| 00000c60 66 6f 72 32 0d 06 19 09 80 23 26 44 46 0d 06 1a |for2.....#&DF...| 00000c70 0a 43 4d 50 23 39 31 0d 06 1b 0f 42 43 53 20 73 |.CMP#91....BCS s| 00000c80 33 62 61 63 6b 31 0d 06 22 0a 43 4d 50 23 36 35 |3back1..".CMP#65| 00000c90 0d 06 2c 0f 42 4d 49 20 73 33 62 61 63 6b 31 0d |..,.BMI s3back1.| 00000ca0 06 40 0e 53 54 41 20 77 6f 72 64 2c 58 0d 06 4a |.@.STA word,X..J| 00000cb0 07 49 4e 58 0d 06 54 0f 4a 4d 50 20 73 33 62 61 |.INX..T.JMP s3ba| 00000cc0 63 6b 31 0d 06 5e 12 2e 73 33 66 6f 72 32 20 4c |ck1..^..s3for2 L| 00000cd0 44 41 23 26 44 0d 06 5f 0e 53 54 41 20 77 6f 72 |DA#&D.._.STA wor| 00000ce0 64 2c 58 0d 06 68 13 53 54 58 20 77 6f 72 64 5f |d,X..h.STX word_| 00000cf0 6c 65 6e 67 74 68 0d 06 6c 09 43 50 58 23 30 0d |length..l.CPX#0.| 00000d00 06 6e 0e 42 4e 45 20 73 33 66 6f 72 33 0d 06 70 |.n.BNE s3for3..p| 00000d10 0f 4a 4d 50 20 73 33 62 61 63 6b 31 0d 06 72 05 |.JMP s3back1..r.| 00000d20 20 0d 06 7c 1d 2e 73 33 66 6f 72 33 20 4a 53 52 | ..|..s3for3 JSR| 00000d30 20 64 69 63 74 69 6f 6e 5f 63 68 65 63 6b 0d 06 | diction_check..| 00000d40 86 12 42 43 53 20 77 6f 72 64 5f 66 6f 75 6e 64 |..BCS word_found| 00000d50 0d 06 90 16 4a 53 52 20 6e 65 77 5f 77 6f 72 64 |....JSR new_word| 00000d60 5f 63 68 65 63 6b 0d 06 9a 12 42 43 53 20 77 6f |_check....BCS wo| 00000d70 72 64 5f 66 6f 75 6e 64 0d 06 a4 16 4a 53 52 20 |rd_found....JSR | 00000d80 6e 65 77 5f 77 6f 72 64 5f 66 6f 75 6e 64 0d 06 |new_word_found..| 00000d90 ae 12 42 43 53 20 77 6f 72 64 5f 66 6f 75 6e 64 |..BCS word_found| 00000da0 0d 06 b8 14 4a 53 52 20 6d 69 73 70 65 6c 74 5f |....JSR mispelt_| 00000db0 77 6f 72 64 0d 06 c2 0e 4a 4d 50 20 73 33 66 6f |word....JMP s3fo| 00000dc0 72 34 0d 07 08 21 2e 77 6f 72 64 5f 66 6f 75 6e |r4...!.word_foun| 00000dd0 64 20 4a 53 52 20 62 6f 74 74 65 6d 5f 77 69 6e |d JSR bottem_win| 00000de0 64 6f 77 0d 07 12 09 4c 44 59 23 30 0d 07 1c 16 |dow....LDY#0....| 00000df0 2e 77 66 62 61 63 6b 20 4c 44 41 20 77 6f 72 64 |.wfback LDA word| 00000e00 2c 59 0d 07 26 0a 84 41 23 26 32 30 0d 07 30 18 |,Y..&..A#&20..0.| 00000e10 4a 53 52 20 6f 75 74 70 75 74 5f 63 68 61 72 61 |JSR output_chara| 00000e20 63 74 65 72 0d 07 3a 07 49 4e 59 0d 07 44 13 43 |cter..:.INY..D.C| 00000e30 50 59 20 77 6f 72 64 5f 6c 65 6e 67 74 68 0d 07 |PY word_length..| 00000e40 4e 0e 42 4e 45 20 77 66 62 61 63 6b 0d 07 53 0a |N.BNE wfback..S.| 00000e50 4c 44 41 23 33 32 0d 07 58 18 4a 53 52 20 6f 75 |LDA#32..X.JSR ou| 00000e60 74 70 75 74 5f 63 68 61 72 61 63 74 65 72 0d 07 |tput_character..| 00000e70 62 13 4c 44 41 20 65 6e 64 5f 6f 66 5f 66 69 6c |b.LDA end_of_fil| 00000e80 65 0d 07 76 12 42 4e 45 20 63 6c 6f 73 65 5f 64 |e..v.BNE close_d| 00000e90 6f 77 6e 0d 07 80 05 20 0d 07 8a 15 2e 73 33 66 |own.... .....s3f| 00000ea0 6f 72 34 20 4a 53 52 20 62 79 74 65 73 0d 07 8f |or4 JSR bytes...| 00000eb0 12 4a 53 52 20 63 68 65 63 6b 5f 6b 65 79 73 0d |.JSR check_keys.| 00000ec0 07 94 0e 4a 4d 50 20 73 74 61 67 65 33 0d 07 9e |...JMP stage3...| 00000ed0 05 20 0d 07 a8 1f 2e 63 6c 6f 73 65 5f 64 6f 77 |. .....close_dow| 00000ee0 6e 20 4c 44 41 23 33 20 5c 20 50 72 69 6e 74 65 |n LDA#3 \ Printe| 00000ef0 72 0d 07 b2 0e 4a 53 52 20 6f 73 77 72 63 68 0d |r....JSR oswrch.| 00000f00 07 bc 09 4c 44 58 23 30 0d 07 c6 0e 4a 53 52 20 |...LDX#0....JSR | 00000f10 6f 73 62 79 74 65 0d 08 02 05 20 0d 08 0c 19 4c |osbyte.... ....L| 00000f20 44 41 23 26 37 37 20 5c 20 43 6c 6f 73 65 20 73 |DA#&77 \ Close s| 00000f30 70 6f 6f 6c 0d 08 16 0e 4a 53 52 20 6f 73 62 79 |pool....JSR osby| 00000f40 74 65 0d 08 20 1c 4c 44 41 23 30 20 5c 20 43 6c |te.. .LDA#0 \ Cl| 00000f50 6f 73 65 20 64 69 63 74 69 6f 6e 61 72 79 0d 08 |ose dictionary..| 00000f60 2a 12 4c 44 59 20 64 69 63 5f 68 61 6e 64 6c 65 |*.LDY dic_handle| 00000f70 0d 08 34 0e 4a 53 52 20 6f 73 66 69 6e 64 0d 08 |..4.JSR osfind..| 00000f80 36 11 4a 53 52 20 65 6d 70 74 79 5f 72 61 6d 0d |6.JSR empty_ram.| 00000f90 08 37 09 4c 44 41 23 30 0d 08 3e 1c 4c 44 59 20 |.7.LDA#0..>.LDY | 00000fa0 6e 77 5f 68 61 6e 64 6c 65 20 5c 20 43 6c 6f 73 |nw_handle \ Clos| 00000fb0 65 20 4e 57 0d 08 43 0e 4a 53 52 20 6f 73 66 69 |e NW..C.JSR osfi| 00000fc0 6e 64 0d 08 4a 1a 5c 20 54 65 78 74 20 63 6c 6f |nd..J.\ Text clo| 00000fd0 73 65 64 20 62 79 20 63 61 63 68 65 0d 08 57 1c |sed by cache..W.| 00000fe0 4c 44 41 23 32 32 35 20 5c 20 46 20 6b 65 79 73 |LDA#225 \ F keys| 00000ff0 20 74 6f 20 6e 6f 72 6d 0d 08 58 09 4c 44 58 23 | to norm..X.LDX#| 00001000 31 0d 08 59 0e 4a 53 52 20 6f 73 62 79 74 65 0d |1..Y.JSR osbyte.| 00001010 08 5c 05 20 0d 08 66 16 4c 44 58 23 73 69 67 6e |.\. ..f.LDX#sign| 00001020 5f 6f 66 66 20 83 20 32 35 36 0d 08 70 16 4c 44 |_off . 256..p.LD| 00001030 59 23 73 69 67 6e 5f 6f 66 66 20 81 20 32 35 36 |Y#sign_off . 256| 00001040 0d 08 7a 0f 4a 53 52 20 64 69 73 70 6c 61 79 0d |..z.JSR display.| 00001050 08 84 05 20 0d 08 8e 1d 2e 6d 65 6e 75 20 4c 44 |... .....menu LD| 00001060 58 23 6d 65 6e 75 5f 6d 65 73 73 20 83 20 32 35 |X#menu_mess . 25| 00001070 36 0d 08 98 17 4c 44 59 23 6d 65 6e 75 5f 6d 65 |6....LDY#menu_me| 00001080 73 73 20 81 20 32 35 36 0d 08 a2 0e 4a 53 52 64 |ss . 256....JSRd| 00001090 69 73 70 6c 61 79 0d 08 ac 16 2e 6d 65 6e 75 62 |isplay.....menub| 000010a0 61 20 4a 53 52 20 6f 73 72 64 63 68 0d 08 c0 10 |a JSR osrdch....| 000010b0 2e 6d 65 66 6f 20 43 4d 50 23 38 33 0d 08 ca 0d |.mefo CMP#83....| 000010c0 42 4e 45 20 6d 65 66 6f 32 0d 08 d4 11 4c 44 58 |BNE mefo2....LDX| 000010d0 23 73 6f 72 74 20 83 32 35 36 0d 08 d9 11 4c 44 |#sort .256....LD| 000010e0 59 23 73 6f 72 74 20 81 32 35 36 0d 08 de 0c 4a |Y#sort .256....J| 000010f0 4d 50 6f 73 63 6c 69 0d 08 e3 21 2e 73 6f 72 74 |MPoscli...!.sort| 00001100 20 45 51 55 53 22 52 55 4e 20 55 2e 53 4f 52 54 | EQUS"RUN U.SORT| 00001110 22 3a 45 51 55 42 26 44 0d 08 e8 11 2e 6d 65 66 |":EQUB&D.....mef| 00001120 6f 32 20 43 4d 50 23 37 37 0d 08 ed 0d 42 4e 45 |o2 CMP#77....BNE| 00001130 20 6d 65 66 6f 33 0d 08 f2 11 4c 44 58 23 72 6d | mefo3....LDX#rm| 00001140 65 6e 20 83 32 35 36 0d 08 f7 11 4c 44 59 23 72 |en .256....LDY#r| 00001150 6d 65 6e 20 81 32 35 36 0d 08 fc 0d 4a 4d 50 20 |men .256....JMP | 00001160 6f 73 63 6c 69 0d 09 01 21 2e 72 6d 65 6e 20 45 |oscli...!.rmen E| 00001170 51 55 53 22 52 55 4e 20 55 2e 4d 45 4e 55 22 3a |QUS"RUN U.MENU":| 00001180 45 51 55 42 26 44 0d 09 06 11 2e 6d 65 66 6f 33 |EQUB&D.....mefo3| 00001190 20 43 4d 50 23 38 31 0d 09 10 0e 42 4e 45 20 6d | CMP#81....BNE m| 000011a0 65 6e 75 62 61 0d 09 1a 0e 4a 4d 50 28 26 46 46 |enuba....JMP(&FF| 000011b0 46 43 29 0d 0c 80 05 20 0d 16 a8 3d 2e 6e 65 77 |FC).... ...=.new| 000011c0 5f 77 6f 72 64 5f 63 68 65 63 6b 20 4c 44 41 23 |_word_check LDA#| 000011d0 6e 65 77 5f 72 61 6d 5f 77 6f 72 64 73 20 83 20 |new_ram_words . | 000011e0 32 35 36 20 5c 20 49 73 20 77 6f 72 64 20 69 6e |256 \ Is word in| 000011f0 20 52 41 4d 3f 0d 16 bc 0a 53 54 41 26 37 41 0d | RAM?....STA&7A.| 00001200 16 c6 1b 4c 44 41 23 6e 65 77 5f 72 61 6d 5f 77 |...LDA#new_ram_w| 00001210 6f 72 64 73 20 81 20 32 35 36 0d 16 d0 0a 53 54 |ords . 256....ST| 00001220 41 26 37 42 0d 16 da 05 20 0d 16 e4 1e 2e 63 6f |A&7B.... .....co| 00001230 6e 74 69 6e 75 65 5f 6e 65 77 5f 73 65 61 72 63 |ntinue_new_searc| 00001240 68 20 4c 44 59 23 30 0d 16 ee 0e 4c 44 41 28 26 |h LDY#0....LDA(&| 00001250 37 41 29 2c 59 0d 16 f8 14 53 54 41 20 72 77 6f |7A),Y....STA rwo| 00001260 72 64 5f 6c 65 6e 67 74 68 0d 17 02 07 50 48 41 |rd_length....PHA| 00001270 0d 17 16 0a 4c 44 41 26 37 41 0d 17 20 07 43 4c |....LDA&7A.. .CL| 00001280 43 0d 17 2a 09 41 44 43 23 31 0d 17 34 0a 53 54 |C..*.ADC#1..4.ST| 00001290 41 26 37 41 0d 17 3e 0a 4c 44 41 26 37 42 0d 17 |A&7A..>.LDA&7B..| 000012a0 48 09 41 44 43 23 30 0d 17 52 0a 53 54 41 26 37 |H.ADC#0..R.STA&7| 000012b0 42 0d 17 57 07 50 4c 41 0d 17 58 13 43 4d 50 20 |B..W.PLA..X.CMP | 000012c0 77 6f 72 64 5f 6c 65 6e 67 74 68 0d 17 59 14 42 |word_length..Y.B| 000012d0 4e 45 20 6e 6f 5f 6e 65 77 5f 6d 61 74 63 68 0d |NE no_new_match.| 000012e0 17 5c 05 20 0d 17 66 16 2e 6e 72 77 62 61 31 20 |.\. ..f..nrwba1 | 000012f0 4c 44 41 28 26 37 41 29 2c 59 0d 17 70 0e 43 4d |LDA(&7A),Y..p.CM| 00001300 50 20 77 6f 72 64 2c 59 0d 17 7a 14 42 4e 45 20 |P word,Y..z.BNE | 00001310 6e 6f 5f 6e 65 77 5f 6d 61 74 63 68 0d 17 84 0a |no_new_match....| 00001320 43 4d 50 23 26 44 0d 17 8e 17 42 45 51 20 6e 65 |CMP#&D....BEQ ne| 00001330 77 5f 6d 61 74 63 68 5f 66 6f 75 6e 64 0d 17 98 |w_match_found...| 00001340 07 49 4e 59 0d 17 ac 0e 4a 4d 50 20 6e 72 77 62 |.INY....JMP nrwb| 00001350 61 31 0d 17 b6 05 20 0d 17 c0 18 2e 6e 65 77 5f |a1.... .....new_| 00001360 6d 61 74 63 68 5f 66 6f 75 6e 64 20 53 45 43 0d |match_found SEC.| 00001370 17 ca 07 52 54 53 0d 17 d4 05 20 0d 17 de 18 2e |...RTS.... .....| 00001380 6e 6f 5f 6e 65 77 5f 6d 61 74 63 68 20 4c 44 41 |no_new_match LDA| 00001390 26 37 41 0d 17 e8 07 53 45 43 0d 17 f2 14 41 44 |&7A....SEC....AD| 000013a0 43 20 72 77 6f 72 64 5f 6c 65 6e 67 74 68 0d 17 |C rword_length..| 000013b0 fc 0a 53 54 41 26 37 41 0d 18 06 0a 4c 44 41 26 |..STA&7A....LDA&| 000013c0 37 42 0d 18 10 09 41 44 43 23 30 0d 18 1a 0a 53 |7B....ADC#0....S| 000013d0 54 41 26 37 42 0d 18 24 0a 4c 44 41 26 37 41 0d |TA&7B..$.LDA&7A.| 000013e0 18 2e 18 43 4d 50 20 6e 65 77 5f 77 6f 72 64 5f |...CMP new_word_| 000013f0 70 6f 69 6e 74 65 72 0d 18 38 1b 42 43 43 20 63 |pointer..8.BCC c| 00001400 6f 6e 74 69 6e 75 65 5f 6e 65 77 5f 73 65 61 72 |ontinue_new_sear| 00001410 63 68 0d 18 42 0a 4c 44 41 26 37 42 0d 18 4c 1a |ch..B.LDA&7B..L.| 00001420 43 4d 50 20 6e 65 77 5f 77 6f 72 64 5f 70 6f 69 |CMP new_word_poi| 00001430 6e 74 65 72 2b 31 0d 18 56 1b 42 43 43 20 63 6f |nter+1..V.BCC co| 00001440 6e 74 69 6e 75 65 5f 6e 65 77 5f 73 65 61 72 63 |ntinue_new_searc| 00001450 68 0d 18 60 05 20 0d 18 74 2d 4c 44 41 23 30 20 |h..`. ..t-LDA#0 | 00001460 5c 20 4e 65 77 20 57 6f 72 64 20 6e 6f 74 20 49 |\ New Word not I| 00001470 6e 20 52 41 4d 20 2d 20 53 65 61 72 63 68 20 44 |n RAM - Search D| 00001480 69 73 63 0d 18 7e 0a 53 54 41 26 37 30 0d 18 88 |isc..~.STA&70...| 00001490 0a 53 54 41 26 37 31 0d 18 92 0a 53 54 41 26 37 |.STA&71....STA&7| 000014a0 32 0d 18 9c 0a 53 54 41 26 37 33 0d 18 a1 09 4c |2....STA&73....L| 000014b0 44 41 23 31 0d 18 a6 0b 4c 44 58 23 26 37 30 0d |DA#1....LDX#&70.| 000014c0 18 b0 11 4c 44 59 20 6e 77 5f 68 61 6e 64 6c 65 |...LDY nw_handle| 000014d0 0d 18 ba 0e 4a 53 52 20 6f 73 61 72 67 73 0d 18 |....JSR osargs..| 000014e0 c4 0e 4a 53 52 20 6f 73 62 67 65 74 0d 18 ce 09 |..JSR osbget....| 000014f0 43 4d 50 23 30 0d 18 d8 0e 42 4e 45 20 6e 72 77 |CMP#0....BNE nrw| 00001500 66 6f 31 0d 18 e2 24 43 4c 43 20 5c 20 46 69 6c |fo1...$CLC \ Fil| 00001510 65 20 63 6f 6e 74 61 69 6e 73 20 6e 6f 20 6e 65 |e contains no ne| 00001520 77 20 77 6f 72 64 73 0d 18 ec 07 52 54 53 0d 18 |w words....RTS..| 00001530 f6 05 20 0d 19 00 23 2e 6e 72 77 66 6f 31 20 4c |.. ...#.nrwfo1 L| 00001540 44 41 23 30 20 5c 20 53 74 6f 72 65 20 63 75 72 |DA#0 \ Store cur| 00001550 72 65 6e 74 20 8f 0d 19 0a 11 4c 44 59 20 6e 77 |rent .....LDY nw| 00001560 5f 68 61 6e 64 6c 65 0d 19 14 0b 4c 44 58 23 26 |_handle....LDX#&| 00001570 37 36 0d 19 1e 0e 4a 53 52 20 6f 73 61 72 67 73 |76....JSR osargs| 00001580 0d 19 28 23 2e 6e 72 77 62 61 33 20 4a 53 52 20 |..(#.nrwba3 JSR | 00001590 6f 73 62 67 65 74 20 5c 20 47 65 74 20 6c 65 6e |osbget \ Get len| 000015a0 67 74 68 0d 19 2d 14 53 54 41 20 72 77 6f 72 64 |gth..-.STA rword| 000015b0 5f 6c 65 6e 67 74 68 0d 19 32 13 43 4d 50 20 77 |_length..2.CMP w| 000015c0 6f 72 64 5f 6c 65 6e 67 74 68 0d 19 3c 10 42 4e |ord_length..<.BN| 000015d0 45 20 6e 6f 74 5f 73 61 6d 65 0d 19 46 09 4c 44 |E not_same..F.LD| 000015e0 58 23 30 0d 19 50 16 2e 6e 72 77 62 61 32 20 4a |X#0..P..nrwba2 J| 000015f0 53 52 20 6f 73 62 67 65 74 0d 19 5a 0e 43 4d 50 |SR osbget..Z.CMP| 00001600 20 77 6f 72 64 2c 58 0d 19 64 10 42 4e 45 20 6e | word,X..d.BNE n| 00001610 6f 74 5f 73 61 6d 65 0d 19 6e 07 49 4e 58 0d 19 |ot_same..n.INX..| 00001620 78 0a 43 4d 50 23 26 44 0d 19 82 0e 42 4e 45 20 |x.CMP#&D....BNE | 00001630 6e 72 77 62 61 32 0d 19 8c 05 20 0d 19 96 15 53 |nrwba2.... ....S| 00001640 45 43 20 5c 20 57 6f 72 64 73 20 6d 61 74 63 68 |EC \ Words match| 00001650 0d 19 a0 07 52 54 53 0d 19 aa 05 20 0d 19 b4 21 |....RTS.... ...!| 00001660 2e 6e 6f 74 5f 73 61 6d 65 20 43 4d 50 23 26 46 |.not_same CMP#&F| 00001670 46 20 5c 20 54 65 73 74 20 6f 66 20 c5 0d 19 b5 |F \ Test of ....| 00001680 0e 42 45 51 20 6e 72 77 66 6f 32 0d 19 b9 16 4c |.BEQ nrwfo2....L| 00001690 44 41 26 37 36 20 5c 20 41 64 76 61 6e 63 65 20 |DA&76 \ Advance | 000016a0 8f 0d 19 be 07 43 4c 43 0d 19 c3 09 41 44 43 23 |.....CLC....ADC#| 000016b0 32 0d 19 c8 14 41 44 43 20 72 77 6f 72 64 5f 6c |2....ADC rword_l| 000016c0 65 6e 67 74 68 0d 19 d2 0a 53 54 41 26 37 36 0d |ength....STA&76.| 000016d0 19 dc 0a 4c 44 41 26 37 37 0d 19 e6 09 41 44 43 |...LDA&77....ADC| 000016e0 23 30 0d 19 f0 0a 53 54 41 26 37 37 0d 19 fa 0a |#0....STA&77....| 000016f0 4c 44 41 26 37 38 0d 1a 04 09 41 44 43 23 30 0d |LDA&78....ADC#0.| 00001700 1a 0e 0a 53 54 41 26 37 38 0d 1a 18 05 20 0d 1a |...STA&78.... ..| 00001710 22 17 4c 44 41 23 31 20 5c 20 57 72 69 74 65 20 |".LDA#1 \ Write | 00001720 6e 65 77 20 8f 0d 1a 2c 0b 4c 44 58 23 26 37 36 |new ...,.LDX#&76| 00001730 0d 1a 36 0e 4a 53 52 20 6f 73 61 72 67 73 0d 1a |..6.JSR osargs..| 00001740 40 0e 4a 4d 50 20 6e 72 77 62 61 33 0d 1a 4a 05 |@.JMP nrwba3..J.| 00001750 20 0d 1a 54 2f 2e 6e 72 77 66 6f 32 20 5c 20 45 | ..T/.nrwfo2 \ E| 00001760 6e 64 20 6f 66 20 66 69 6c 65 20 72 65 61 63 68 |nd of file reach| 00001770 65 64 20 77 69 74 68 20 6e 6f 20 6d 61 74 63 68 |ed with no match| 00001780 0d 1a 5e 07 43 4c 43 0d 1a 68 07 52 54 53 0d 1a |..^.CLC..h.RTS..| 00001790 72 05 20 0d 1b 58 48 2e 6e 65 77 5f 77 6f 72 64 |r. ..XH.new_word| 000017a0 5f 66 6f 75 6e 64 20 5c 20 54 68 65 20 77 6f 72 |_found \ The wor| 000017b0 64 20 69 6e 20 77 6f 72 64 20 62 75 66 66 65 72 |d in word buffer| 000017c0 20 68 61 73 20 6e 65 76 65 72 20 62 65 65 6e 20 | has never been | 000017d0 73 65 65 6e 20 62 65 66 6f 72 65 0d 1b 62 12 4a |seen before..b.J| 000017e0 53 52 20 74 6f 70 5f 77 69 6e 64 6f 77 0d 1b 63 |SR top_window..c| 000017f0 11 4c 44 41 20 62 65 65 70 5f 66 6c 61 67 0d 1b |.LDA beep_flag..| 00001800 64 0e 42 4e 45 20 6e 77 72 66 6f 33 0d 1b 66 09 |d.BNE nwrfo3..f.| 00001810 4c 44 41 23 37 0d 1b 68 0e 4a 53 52 20 6f 73 77 |LDA#7..h.JSR osw| 00001820 72 63 68 0d 1b 6c 11 2e 6e 77 72 66 6f 33 20 4c |rch..l..nwrfo3 L| 00001830 44 59 23 35 0d 1b 76 09 4c 44 58 23 30 0d 1b 80 |DY#5..v.LDX#0...| 00001840 0b 4a 53 52 20 74 61 62 0d 1b 8a 15 4c 44 59 23 |.JSR tab....LDY#| 00001850 69 73 5f 74 68 69 73 20 81 20 32 35 36 0d 1b 94 |is_this . 256...| 00001860 15 4c 44 58 23 69 73 5f 74 68 69 73 20 83 20 32 |.LDX#is_this . 2| 00001870 35 36 0d 1b 9e 0f 4a 53 52 20 64 69 73 70 6c 61 |56....JSR displa| 00001880 79 0d 1b a8 09 4c 44 59 23 30 0d 1b b2 15 2e 6e |y....LDY#0.....n| 00001890 77 62 61 31 20 4c 44 41 20 77 6f 72 64 2c 59 0d |wba1 LDA word,Y.| 000018a0 1b bc 0a 43 4d 50 23 26 44 0d 1b c6 0d 42 45 51 |...CMP#&D....BEQ| 000018b0 20 6e 77 66 6f 31 0d 1b c7 0a 43 4d 50 23 33 32 | nwfo1....CMP#32| 000018c0 0d 1b c8 0e 42 43 43 20 6e 77 72 66 6f 34 0d 1b |....BCC nwrfo4..| 000018d0 c9 0b 43 4d 50 23 31 32 37 0d 1b ca 0e 42 43 53 |..CMP#127....BCS| 000018e0 20 6e 77 72 66 6f 34 0d 1b d0 0e 4a 53 52 20 6f | nwrfo4....JSR o| 000018f0 73 77 72 63 68 0d 1b da 0f 2e 6e 77 72 66 6f 34 |swrch.....nwrfo4| 00001900 20 49 4e 59 0d 1b e4 0d 4a 4d 50 20 6e 77 62 61 | INY....JMP nwba| 00001910 31 0d 1b ee 11 2e 6e 77 66 6f 31 20 4c 44 41 23 |1.....nwfo1 LDA#| 00001920 33 32 0d 1b f8 0e 4a 53 52 20 6f 73 77 72 63 68 |32....JSR oswrch| 00001930 0d 1c 02 0c 4c 44 41 23 97 22 3f 22 0d 1c 0c 0e |....LDA#."?"....| 00001940 4a 53 52 20 6f 73 77 72 63 68 0d 1c 0e 12 4c 44 |JSR oswrch....LD| 00001950 41 20 77 72 6f 6e 67 5f 66 6c 61 67 0d 1c 10 0e |A wrong_flag....| 00001960 42 4e 45 20 6e 77 66 6f 32 61 0d 1c 16 05 20 0d |BNE nwfo2a.... .| 00001970 1c 20 11 2e 6e 77 62 61 32 20 4c 44 41 23 32 31 |. ..nwba2 LDA#21| 00001980 0d 1c 21 09 4c 44 58 23 30 0d 1c 22 0e 4a 53 52 |..!.LDX#0..".JSR| 00001990 20 6f 73 62 79 74 65 0d 1c 23 0e 4a 53 52 20 6f | osbyte..#.JSR o| 000019a0 73 72 64 63 68 0d 1c 2a 0d 42 43 43 20 6e 77 66 |srdch..*.BCC nwf| 000019b0 6f 32 0d 1c 34 16 4a 53 52 20 65 73 63 61 70 65 |o2..4.JSR escape| 000019c0 5f 70 72 65 73 73 65 64 0d 1c 3e 0d 4a 4d 50 20 |_pressed..>.JMP | 000019d0 6e 77 62 61 32 0d 1c 48 10 2e 6e 77 66 6f 32 20 |nwba2..H..nwfo2 | 000019e0 80 23 26 44 46 0d 1c 52 0c 43 4d 50 23 97 22 59 |.#&DF..R.CMP#."Y| 000019f0 22 0d 1c 5c 16 42 45 51 20 73 74 6f 72 65 5f 6e |"..\.BEQ store_n| 00001a00 65 77 5f 77 6f 72 64 0d 1c 66 0c 43 4d 50 23 97 |ew_word..f.CMP#.| 00001a10 22 4e 22 0d 1c 70 0d 42 4e 45 20 6e 77 62 61 32 |"N"..p.BNE nwba2| 00001a20 0d 1c 7a 05 20 0d 1c 84 2b 2e 6e 77 66 6f 32 61 |..z. ...+.nwfo2a| 00001a30 20 4a 53 52 20 63 6c 65 61 72 5f 75 73 65 72 20 | JSR clear_user | 00001a40 5c 20 57 6f 72 64 20 6e 6f 74 20 66 6f 75 6e 64 |\ Word not found| 00001a50 0d 1c 89 15 4a 53 52 20 62 6f 74 74 65 6d 5f 77 |....JSR bottem_w| 00001a60 69 6e 64 6f 77 0d 1c 8b 07 43 4c 43 0d 1c 8c 07 |indow....CLC....| 00001a70 52 54 53 0d 1c 8e 19 2e 6e 77 62 61 35 20 4a 53 |RTS.....nwba5 JS| 00001a80 52 20 63 6c 65 61 72 5f 75 73 65 72 0d 1c 8f 10 |R clear_user....| 00001a90 4a 4d 50 20 6e 6f 5f 73 74 6f 72 65 0d 1c 90 49 |JMP no_store...I| 00001aa0 2e 73 74 6f 72 65 5f 6e 65 77 5f 77 6f 72 64 20 |.store_new_word | 00001ab0 4a 53 52 20 63 6c 65 61 72 5f 75 73 65 72 20 5c |JSR clear_user \| 00001ac0 20 57 6f 72 64 20 69 6e 20 62 75 66 66 65 72 20 | Word in buffer | 00001ad0 6d 75 73 74 20 62 65 20 73 74 6f 72 65 64 20 61 |must be stored a| 00001ae0 73 20 6e 65 77 0d 1c 91 11 4c 44 41 20 73 61 76 |s new....LDA sav| 00001af0 65 5f 66 6c 61 67 0d 1c 92 0d 42 45 51 20 6e 77 |e_flag....BEQ nw| 00001b00 62 61 35 0d 1c 93 09 43 4d 50 23 31 0d 1c 94 0d |ba5....CMP#1....| 00001b10 42 45 51 20 6e 77 66 6f 33 0d 1c 95 17 4c 44 58 |BEQ nwfo3....LDX| 00001b20 23 73 61 69 67 5f 6d 65 73 73 20 83 20 32 35 36 |#saig_mess . 256| 00001b30 0d 1c 96 17 4c 44 59 23 73 61 69 67 5f 6d 65 73 |....LDY#saig_mes| 00001b40 73 20 81 20 32 35 36 0d 1c 97 11 4a 53 52 20 74 |s . 256....JSR t| 00001b50 65 6c 6c 5f 75 73 65 72 0d 1c 98 15 2e 6e 77 62 |ell_user.....nwb| 00001b60 61 34 20 4a 53 52 20 6f 73 72 64 63 68 0d 1c 99 |a4 JSR osrdch...| 00001b70 0d 42 43 43 20 6e 77 66 6f 34 0d 1c 9a 16 4a 53 |.BCC nwfo4....JS| 00001b80 52 20 65 73 63 61 70 65 5f 70 72 65 73 73 65 64 |R escape_pressed| 00001b90 0d 1c 9c 0d 4a 4d 50 20 6e 77 62 61 34 0d 1c 9d |....JMP nwba4...| 00001ba0 10 2e 6e 77 66 6f 34 20 80 23 26 44 46 0d 1c 9e |..nwfo4 .#&DF...| 00001bb0 0c 43 4d 50 23 97 22 49 22 0d 1c 9f 0d 42 45 51 |.CMP#."I"....BEQ| 00001bc0 20 6e 77 62 61 35 0d 1c a0 0c 43 4d 50 23 97 22 | nwba5....CMP#."| 00001bd0 53 22 0d 1c a1 0d 42 4e 45 20 6e 77 62 61 34 0d |S"....BNE nwba4.| 00001be0 1c a2 40 2e 6e 77 66 6f 33 20 4a 53 52 20 63 6c |..@.nwfo3 JSR cl| 00001bf0 65 61 72 5f 75 73 65 72 20 5c 20 57 6f 72 64 20 |ear_user \ Word | 00001c00 69 6e 20 62 75 66 66 65 72 20 6d 75 73 74 20 62 |in buffer must b| 00001c10 65 20 73 74 6f 72 65 64 20 61 73 20 6e 65 77 0d |e stored as new.| 00001c20 1c a7 1f 4c 44 41 23 26 46 46 20 5c 20 53 65 74 |...LDA#&FF \ Set| 00001c30 20 6e 65 77 20 77 6f 72 64 20 66 6c 61 67 0d 1c | new word flag..| 00001c40 a8 11 53 54 41 20 77 6f 72 64 5f 66 6c 61 67 0d |..STA word_flag.| 00001c50 1c ac 18 4c 44 41 20 6e 65 77 5f 77 6f 72 64 5f |...LDA new_word_| 00001c60 70 6f 69 6e 74 65 72 0d 1c b6 0a 53 54 41 26 37 |pointer....STA&7| 00001c70 41 0d 1c c0 1a 4c 44 41 20 6e 65 77 5f 77 6f 72 |A....LDA new_wor| 00001c80 64 5f 70 6f 69 6e 74 65 72 2b 31 0d 1c ca 0a 53 |d_pointer+1....S| 00001c90 54 41 26 37 42 0d 1c d4 09 4c 44 59 23 30 0d 1c |TA&7B....LDY#0..| 00001ca0 de 13 4c 44 41 20 77 6f 72 64 5f 6c 65 6e 67 74 |..LDA word_lengt| 00001cb0 68 0d 1c e8 0e 53 54 41 28 26 37 41 29 2c 59 0d |h....STA(&7A),Y.| 00001cc0 1c f2 0a 4c 44 41 26 37 41 0d 1c fc 07 43 4c 43 |...LDA&7A....CLC| 00001cd0 0d 1d 06 09 41 44 43 23 31 0d 1d 10 0a 53 54 41 |....ADC#1....STA| 00001ce0 26 37 41 0d 1d 1a 0a 4c 44 41 26 37 42 0d 1d 24 |&7A....LDA&7B..$| 00001cf0 09 41 44 43 23 30 0d 1d 2e 0a 53 54 41 26 37 42 |.ADC#0....STA&7B| 00001d00 0d 1d 38 15 2e 6e 77 62 61 33 20 4c 44 41 20 77 |..8..nwba3 LDA w| 00001d10 6f 72 64 2c 59 0d 1d 42 0e 53 54 41 28 26 37 41 |ord,Y..B.STA(&7A| 00001d20 29 2c 59 0d 1d 4c 07 49 4e 59 0d 1d 56 0a 43 4d |),Y..L.INY..V.CM| 00001d30 50 23 26 44 0d 1d 60 0d 42 4e 45 20 6e 77 62 61 |P#&D..`.BNE nwba| 00001d40 33 0d 1d 6a 05 20 0d 1d 74 07 54 59 41 0d 1d 7e |3..j. ..t.TYA..~| 00001d50 07 43 4c 43 0d 1d 88 0a 41 44 43 26 37 41 0d 1d |.CLC....ADC&7A..| 00001d60 92 18 53 54 41 20 6e 65 77 5f 77 6f 72 64 5f 70 |..STA new_word_p| 00001d70 6f 69 6e 74 65 72 0d 1d 9c 0a 4c 44 41 26 37 42 |ointer....LDA&7B| 00001d80 0d 1d a6 09 41 44 43 23 30 0d 1d b0 1a 53 54 41 |....ADC#0....STA| 00001d90 20 6e 65 77 5f 77 6f 72 64 5f 70 6f 69 6e 74 65 | new_word_pointe| 00001da0 72 2b 31 0d 1d ba 05 20 0d 1d ce 0b 43 4d 50 23 |r+1.... ....CMP#| 00001db0 26 33 46 0d 1d d8 0f 42 43 43 6e 6f 5f 73 74 6f |&3F....BCCno_sto| 00001dc0 72 65 0d 1e 14 05 20 0d 1e 1e 11 4a 53 52 20 65 |re.... ....JSR e| 00001dd0 6d 70 74 79 5f 72 61 6d 0d 1f 36 05 20 0d 1f 40 |mpty_ram..6. ..@| 00001de0 1a 5c 20 41 6c 6c 20 52 41 4d 20 77 6f 72 64 20 |.\ All RAM word | 00001df0 6f 6e 20 64 69 73 63 0d 1f 4a 1b 4c 44 41 23 6e |on disc..J.LDA#n| 00001e00 65 77 5f 72 61 6d 5f 77 6f 72 64 73 20 83 20 32 |ew_ram_words . 2| 00001e10 35 36 0d 1f 54 18 53 54 41 20 6e 65 77 5f 77 6f |56..T.STA new_wo| 00001e20 72 64 5f 70 6f 69 6e 74 65 72 0d 1f 5e 1b 4c 44 |rd_pointer..^.LD| 00001e30 41 23 6e 65 77 5f 72 61 6d 5f 77 6f 72 64 73 20 |A#new_ram_words | 00001e40 81 20 32 35 36 0d 1f 68 1a 53 54 41 20 6e 65 77 |. 256..h.STA new| 00001e50 5f 77 6f 72 64 5f 70 6f 69 6e 74 65 72 2b 31 0d |_word_pointer+1.| 00001e60 1f 72 05 20 0d 1f 7c 20 2e 6e 6f 5f 73 74 6f 72 |.r. ..| .no_stor| 00001e70 65 20 53 45 43 20 5c 20 57 6f 72 64 73 20 73 74 |e SEC \ Words st| 00001e80 6f 72 65 64 0d 1f 86 07 52 54 53 0d 1f 90 05 20 |ored....RTS.... | 00001e90 0d 1f a4 2e 2e 65 6d 70 74 79 5f 72 61 6d 20 5c |.....empty_ram \| 00001ea0 20 53 61 76 65 20 61 6c 6c 20 52 41 4d 20 77 6f | Save all RAM wo| 00001eb0 72 73 73 20 74 6f 20 4e 57 20 66 69 6c 65 0d 1f |rss to NW file..| 00001ec0 a6 26 4c 44 41 20 77 6f 72 64 5f 66 6c 61 67 20 |.&LDA word_flag | 00001ed0 5c 20 54 65 73 74 20 6e 65 77 20 77 6f 72 64 20 |\ Test new word | 00001ee0 66 6c 61 67 0d 1f a8 0d 42 4e 45 20 65 72 66 6f |flag....BNE erfo| 00001ef0 31 0d 1f aa 07 52 54 53 0d 1f ae 19 2e 65 72 66 |1....RTS.....erf| 00001f00 6f 31 20 4a 53 52 20 63 6c 65 61 72 5f 75 73 65 |o1 JSR clear_use| 00001f10 72 0d 1f af 14 4c 44 58 23 73 61 76 69 6e 67 20 |r....LDX#saving | 00001f20 83 20 32 35 36 0d 1f b0 14 4c 44 59 23 73 61 76 |. 256....LDY#sav| 00001f30 69 6e 67 20 81 20 32 35 36 0d 1f b1 11 4a 53 52 |ing . 256....JSR| 00001f40 20 74 65 6c 6c 5f 75 73 65 72 0d 1f b8 12 4c 44 | tell_user....LD| 00001f50 41 23 32 20 5c 20 52 65 61 64 20 a2 0d 1f bd 0b |A#2 \ Read .....| 00001f60 4c 44 58 23 26 37 30 0d 1f c2 11 4c 44 59 20 6e |LDX#&70....LDY n| 00001f70 77 5f 68 61 6e 64 6c 65 0d 1f cc 0e 4a 53 52 20 |w_handle....JSR | 00001f80 6f 73 61 72 67 73 0d 1f d6 0a 4c 44 41 26 37 30 |osargs....LDA&70| 00001f90 0d 1f e0 07 53 45 43 0d 1f ea 09 53 42 43 23 31 |....SEC....SBC#1| 00001fa0 0d 1f f4 0a 53 54 41 26 37 30 0d 1f fe 0a 4c 44 |....STA&70....LD| 00001fb0 41 26 37 31 0d 20 08 09 53 42 43 23 30 0d 20 12 |A&71. ..SBC#0. .| 00001fc0 0a 53 54 41 26 37 31 0d 20 1c 0a 4c 44 41 26 37 |.STA&71. ..LDA&7| 00001fd0 32 0d 20 26 09 53 42 43 23 30 0d 20 30 0a 53 54 |2. &.SBC#0. 0.ST| 00001fe0 41 26 37 32 0d 20 3a 09 4c 44 41 23 31 0d 20 44 |A&72. :.LDA#1. D| 00001ff0 0e 4a 53 52 20 6f 73 61 72 67 73 0d 20 4e 0e 4a |.JSR osargs. N.J| 00002000 53 52 20 6f 73 62 67 65 74 0d 20 58 09 43 4d 50 |SR osbget. X.CMP| 00002010 23 30 0d 20 62 12 42 45 51 20 66 69 6c 65 5f 65 |#0. b.BEQ file_e| 00002020 6d 70 74 79 0d 20 6c 09 4c 44 41 23 31 0d 20 76 |mpty. l.LDA#1. v| 00002030 0e 4a 53 52 20 6f 73 61 72 67 73 0d 20 80 05 20 |.JSR osargs. .. | 00002040 0d 20 da 27 2e 66 69 6c 65 5f 65 6d 70 74 79 20 |. .'.file_empty | 00002050 4c 44 41 23 6e 65 77 5f 72 61 6d 5f 77 6f 72 64 |LDA#new_ram_word| 00002060 73 20 83 20 32 35 36 0d 20 e4 0a 53 54 41 26 37 |s . 256. ..STA&7| 00002070 41 0d 20 ee 1b 4c 44 41 23 6e 65 77 5f 72 61 6d |A. ..LDA#new_ram| 00002080 5f 77 6f 72 64 73 20 81 20 32 35 36 0d 20 f8 0a |_words . 256. ..| 00002090 53 54 41 26 37 42 0d 21 02 05 20 0d 21 0c 10 2e |STA&7B.!.. .!...| 000020a0 65 72 62 61 31 20 4c 44 59 23 30 0d 21 16 0e 4c |erba1 LDY#0.!..L| 000020b0 44 41 28 26 37 41 29 2c 59 0d 21 20 11 4c 44 59 |DA(&7A),Y.! .LDY| 000020c0 20 6e 77 5f 68 61 6e 64 6c 65 0d 21 2a 0e 4a 53 | nw_handle.!*.JS| 000020d0 52 20 6f 73 62 70 75 74 0d 21 34 0a 4c 44 41 26 |R osbput.!4.LDA&| 000020e0 37 41 0d 21 3e 07 43 4c 43 0d 21 48 09 41 44 43 |7A.!>.CLC.!H.ADC| 000020f0 23 31 0d 21 52 0a 53 54 41 26 37 41 0d 21 5c 0a |#1.!R.STA&7A.!\.| 00002100 4c 44 41 26 37 42 0d 21 66 09 41 44 43 23 30 0d |LDA&7B.!f.ADC#0.| 00002110 21 70 0a 53 54 41 26 37 42 0d 21 7a 1a 43 4d 50 |!p.STA&7B.!z.CMP| 00002120 20 6e 65 77 5f 77 6f 72 64 5f 70 6f 69 6e 74 65 | new_word_pointe| 00002130 72 2b 31 0d 21 84 0d 42 43 43 20 65 72 62 61 31 |r+1.!..BCC erba1| 00002140 0d 21 8e 0a 4c 44 41 26 37 41 0d 21 98 18 43 4d |.!..LDA&7A.!..CM| 00002150 50 20 6e 65 77 5f 77 6f 72 64 5f 70 6f 69 6e 74 |P new_word_point| 00002160 65 72 0d 21 a2 0d 42 43 43 20 65 72 62 61 31 0d |er.!..BCC erba1.| 00002170 21 ac 05 20 0d 21 b6 1c 4c 44 41 23 26 46 46 20 |!.. .!..LDA#&FF | 00002180 5c 20 4d 61 72 6b 20 6c 61 73 74 20 62 79 74 65 |\ Mark last byte| 00002190 0d 21 c0 0e 4a 53 52 20 6f 73 62 70 75 74 0d 21 |.!..JSR osbput.!| 000021a0 ca 20 4c 44 41 23 30 20 5c 20 4d 61 72 6b 20 66 |. LDA#0 \ Mark f| 000021b0 69 6c 65 20 61 73 20 68 6f 6c 64 69 6e 67 0d 21 |ile as holding.!| 000021c0 d4 0a 53 54 41 26 37 30 0d 21 de 0a 53 54 41 26 |..STA&70.!..STA&| 000021d0 37 31 0d 21 e8 0a 53 54 41 26 37 32 0d 21 f2 0a |71.!..STA&72.!..| 000021e0 53 54 41 26 37 33 0d 21 fc 09 4c 44 41 23 31 0d |STA&73.!..LDA#1.| 000021f0 22 06 0b 4c 44 58 23 26 37 30 0d 22 10 11 4c 44 |"..LDX#&70."..LD| 00002200 59 20 6e 77 5f 68 61 6e 64 6c 65 0d 22 1a 0e 4a |Y nw_handle."..J| 00002210 53 52 20 6f 73 61 72 67 73 0d 22 24 0b 4c 44 41 |SR osargs."$.LDA| 00002220 23 26 46 46 0d 22 2e 0e 4a 53 52 20 6f 73 62 70 |#&FF."..JSR osbp| 00002230 75 74 0d 22 38 07 52 54 53 0d 22 42 05 20 0d 22 |ut."8.RTS."B. ."| 00002240 4c 28 2e 73 61 76 69 6e 67 20 45 51 55 53 22 53 |L(.saving EQUS"S| 00002250 61 76 69 6e 67 20 4e 65 77 6f 72 64 73 20 74 6f |aving Newords to| 00002260 20 64 69 73 63 22 0d 22 51 0b 45 51 55 42 26 46 | disc"."Q.EQUB&F| 00002270 46 0d 22 c4 25 2e 69 73 5f 74 68 69 73 20 45 51 |F.".%.is_this EQ| 00002280 55 53 22 43 6f 72 72 65 63 74 20 73 70 65 6c 6c |US"Correct spell| 00002290 69 6e 67 3a 20 22 0d 22 ce 0b 45 51 55 42 26 46 |ing: "."..EQUB&F| 000022a0 46 0d 23 28 33 2e 6d 69 73 70 65 6c 74 5f 77 6f |F.#(3.mispelt_wo| 000022b0 72 64 20 5c 20 57 6f 72 64 20 69 6d 20 62 75 66 |rd \ Word im buf| 000022c0 66 65 72 20 68 61 73 20 62 65 65 6e 20 6d 69 73 |fer has been mis| 000022d0 70 6c 65 74 0d 23 32 3f 5c 20 4f 75 74 70 75 74 |plet.#2?\ Output| 000022e0 20 74 6f 20 73 63 72 65 65 6e 20 69 6e 20 75 70 | to screen in up| 000022f0 70 65 72 20 63 61 73 65 20 61 6e 64 20 70 69 6e |per case and pin| 00002300 74 65 72 2f 64 69 73 63 20 69 73 20 6e 65 65 64 |ter/disc is need| 00002310 20 62 65 0d 23 3c 05 20 0d 23 46 14 4c 44 41 20 | be.#<. .#F.LDA | 00002320 70 72 69 6e 74 65 72 5f 66 6c 61 67 0d 23 5a 0d |printer_flag.#Z.| 00002330 42 45 51 20 6d 73 66 6f 31 0d 23 64 09 4c 44 59 |BEQ msfo1.#d.LDY| 00002340 23 30 0d 23 6e 10 2e 6d 73 62 61 31 20 4c 44 41 |#0.#n..msba1 LDA| 00002350 23 31 0d 23 78 0e 4a 53 52 20 6f 73 77 72 63 68 |#1.#x.JSR oswrch| 00002360 0d 23 82 0e 4c 44 41 20 77 6f 72 64 2c 59 0d 23 |.#..LDA word,Y.#| 00002370 8c 0e 4a 53 52 20 6f 73 77 72 63 68 0d 23 96 07 |..JSR oswrch.#..| 00002380 49 4e 59 0d 23 a0 13 43 50 59 20 77 6f 72 64 5f |INY.#..CPY word_| 00002390 6c 65 6e 67 74 68 0d 23 aa 0d 42 4e 45 20 6d 73 |length.#..BNE ms| 000023a0 62 61 31 0d 23 b4 09 4c 44 41 23 31 0d 23 be 0e |ba1.#..LDA#1.#..| 000023b0 4a 53 52 20 6f 73 77 72 63 68 0d 23 c8 0a 4c 44 |JSR oswrch.#..LD| 000023c0 41 23 33 32 0d 23 d2 0e 4a 53 52 20 6f 73 77 72 |A#32.#..JSR oswr| 000023d0 63 68 0d 23 d3 14 4c 44 41 20 70 72 69 6e 74 65 |ch.#..LDA printe| 000023e0 72 5f 66 6c 61 67 0d 23 d4 09 43 4d 50 23 32 0d |r_flag.#..CMP#2.| 000023f0 23 d5 0d 42 4e 45 20 6d 73 66 6f 31 0d 23 d6 09 |#..BNE msfo1.#..| 00002400 4c 44 41 23 31 0d 23 d7 0e 4a 53 52 20 6f 73 77 |LDA#1.#..JSR osw| 00002410 72 63 68 0d 23 d8 0a 4c 44 41 23 31 33 0d 23 d9 |rch.#..LDA#13.#.| 00002420 0e 4a 53 52 20 6f 73 77 72 63 68 0d 23 dc 05 20 |.JSR oswrch.#.. | 00002430 0d 23 e6 19 2e 6d 73 66 6f 31 20 4c 44 41 20 73 |.#...msfo1 LDA s| 00002440 70 6f 6f 6c 5f 66 6c 61 67 0d 23 fa 0d 42 45 51 |pool_flag.#..BEQ| 00002450 20 6d 73 66 6f 32 0d 24 04 09 4c 44 58 23 30 0d | msfo2.$..LDX#0.| 00002460 24 0e 14 4c 44 59 20 73 70 6f 6f 6c 5f 68 61 6e |$..LDY spool_han| 00002470 64 6c 65 0d 24 18 15 2e 6d 73 62 61 32 20 4c 44 |dle.$...msba2 LD| 00002480 41 20 77 6f 72 64 2c 58 0d 24 22 0e 4a 53 52 20 |A word,X.$".JSR | 00002490 6f 73 62 70 75 74 0d 24 2c 07 49 4e 58 0d 24 36 |osbput.$,.INX.$6| 000024a0 13 43 50 58 20 77 6f 72 64 5f 6c 65 6e 67 74 68 |.CPX word_length| 000024b0 0d 24 40 0d 42 4e 45 20 6d 73 62 61 32 0d 24 4a |.$@.BNE msba2.$J| 000024c0 0a 4c 44 41 23 26 44 0d 24 54 0e 4a 53 52 20 6f |.LDA#&D.$T.JSR o| 000024d0 73 62 70 75 74 0d 24 5e 05 20 0d 24 68 10 2e 6d |sbput.$^. .$h..m| 000024e0 73 66 6f 32 20 4c 44 58 23 30 0d 24 72 15 2e 6d |sfo2 LDX#0.$r..m| 000024f0 73 62 61 32 20 4c 44 41 20 77 6f 72 64 2c 58 0d |sba2 LDA word,X.| 00002500 24 7c 09 80 23 26 44 46 0d 24 86 0e 4a 53 52 20 |$|..#&DF.$..JSR | 00002510 6f 73 77 72 63 68 0d 24 90 07 49 4e 58 0d 24 9a |oswrch.$..INX.$.| 00002520 13 43 50 58 20 77 6f 72 64 5f 6c 65 6e 67 74 68 |.CPX word_length| 00002530 0d 24 a4 0d 42 4e 45 20 6d 73 62 61 32 0d 24 ae |.$..BNE msba2.$.| 00002540 0a 4c 44 41 23 33 32 0d 24 b8 0e 4a 53 52 20 6f |.LDA#32.$..JSR o| 00002550 73 77 72 63 68 0d 24 c2 07 52 54 53 0d 2a 94 20 |swrch.$..RTS.*. | 00002560 2e 73 70 77 63 5f 69 6e 69 74 5f 77 69 6e 20 4c |.spwc_init_win L| 00002570 44 41 20 64 69 73 63 5f 66 6c 61 67 0d 2a 9e 11 |DA disc_flag.*..| 00002580 42 45 51 20 73 70 77 63 5f 69 6e 69 74 0d 2a a8 |BEQ spwc_init.*.| 00002590 13 4a 53 52 20 69 6e 73 65 72 74 5f 74 65 78 74 |.JSR insert_text| 000025a0 0d 2a f8 14 2e 73 70 77 63 5f 69 6e 69 74 20 4c |.*...spwc_init L| 000025b0 44 41 23 32 0d 2b 02 13 4c 44 59 20 74 65 78 74 |DA#2.+..LDY text| 000025c0 5f 68 61 6e 64 6c 65 0d 2b 0c 0b 4c 44 58 23 26 |_handle.+..LDX#&| 000025d0 38 30 0d 2b 16 0d 4a 53 52 6f 73 61 72 67 73 0d |80.+..JSRosargs.| 000025e0 2b 20 09 4c 44 41 23 30 0d 2b 2a 0a 53 54 41 26 |+ .LDA#0.+*.STA&| 000025f0 38 34 0d 2b 34 0b 4c 44 41 23 26 34 30 0d 2b 3e |84.+4.LDA#&40.+>| 00002600 0a 53 54 41 26 38 35 0d 2b 48 05 20 0d 2b 52 1b |.STA&85.+H. .+R.| 00002610 2e 73 70 77 63 62 61 31 20 4c 44 59 74 65 78 74 |.spwcba1 LDYtext| 00002620 5f 68 61 6e 64 6c 65 0d 2b 5c 0d 4a 53 52 6f 73 |_handle.+\.JSRos| 00002630 62 67 65 74 0d 2b 61 17 42 43 53 20 65 6e 64 5f |bget.+a.BCS end_| 00002640 6f 66 5f 64 69 63 5f 66 69 6c 65 0d 2b 66 09 4c |of_dic_file.+f.L| 00002650 44 59 23 30 0d 2b 70 0e 53 54 41 28 26 38 34 29 |DY#0.+p.STA(&84)| 00002660 2c 59 0d 2b 7a 0a 4c 44 41 26 38 34 0d 2b 84 07 |,Y.+z.LDA&84.+..| 00002670 43 4c 43 0d 2b 8e 09 41 44 43 23 31 0d 2b 98 0a |CLC.+..ADC#1.+..| 00002680 53 54 41 26 38 34 0d 2b a2 0a 4c 44 41 26 38 35 |STA&84.+..LDA&85| 00002690 0d 2b ac 09 41 44 43 23 30 0d 2b b6 0a 53 54 41 |.+..ADC#0.+..STA| 000026a0 26 38 35 0d 2b c0 0b 43 4d 50 23 26 37 41 0d 2b |&85.+..CMP#&7A.+| 000026b0 ca 12 42 43 53 20 63 61 63 68 65 5f 66 75 6c 6c |..BCS cache_full| 000026c0 0d 2c 06 0e 4a 4d 50 73 70 77 63 62 61 31 0d 2c |.,..JMPspwcba1.,| 000026d0 10 05 20 0d 2c 1a 15 2e 63 61 63 68 65 5f 66 75 |.. .,...cache_fu| 000026e0 6c 6c 20 4c 44 41 23 30 0d 2c 24 12 4c 44 59 74 |ll LDA#0.,$.LDYt| 000026f0 65 78 74 5f 68 61 6e 64 6c 65 0d 2c 2e 0b 4c 44 |ext_handle.,..LD| 00002700 58 23 26 38 38 0d 2c 38 0d 4a 53 52 6f 73 61 72 |X#&88.,8.JSRosar| 00002710 67 73 0d 2c 42 0a 4c 44 41 26 38 38 0d 2c 4c 0a |gs.,B.LDA&88.,L.| 00002720 43 4d 50 26 38 30 0d 2c 56 11 42 4e 45 73 74 6f |CMP&80.,V.BNEsto| 00002730 72 65 5f 61 70 74 72 0d 2c 60 0a 4c 44 41 26 38 |re_aptr.,`.LDA&8| 00002740 39 0d 2c 6a 0a 43 4d 50 26 38 31 0d 2c 74 11 42 |9.,j.CMP&81.,t.B| 00002750 4e 45 73 74 6f 72 65 5f 61 70 74 72 0d 2c 7e 1c |NEstore_aptr.,~.| 00002760 2e 65 6e 64 5f 6f 66 5f 64 69 63 5f 66 69 6c 65 |.end_of_dic_file| 00002770 20 4c 44 41 23 26 46 46 0d 2c 88 0a 53 54 41 63 | LDA#&FF.,..STAc| 00002780 66 65 0d 2c 89 13 4c 44 59 20 74 65 78 74 5f 68 |fe.,..LDY text_h| 00002790 61 6e 64 6c 65 0d 2c 8a 09 4c 44 41 23 30 0d 2c |andle.,..LDA#0.,| 000027a0 8b 0e 4a 53 52 20 6f 73 66 69 6e 64 0d 2c 92 16 |..JSR osfind.,..| 000027b0 2e 73 74 6f 72 65 5f 61 70 74 72 20 4c 44 41 26 |.store_aptr LDA&| 000027c0 38 34 0d 2c 9c 0a 53 54 41 26 38 36 0d 2c a6 0a |84.,..STA&86.,..| 000027d0 4c 44 41 26 38 35 0d 2c b0 0a 53 54 41 26 38 37 |LDA&85.,..STA&87| 000027e0 0d 2c ba 09 4c 44 41 23 30 0d 2c c4 0a 53 54 41 |.,..LDA#0.,..STA| 000027f0 26 38 34 0d 2c ce 0b 4c 44 41 23 26 34 30 0d 2c |&84.,..LDA#&40.,| 00002800 d8 0a 53 54 41 26 38 35 0d 2c e2 07 52 54 53 0d |..STA&85.,..RTS.| 00002810 2c ec 05 20 0d 2c f6 19 2e 67 65 74 5f 63 61 63 |,.. .,...get_cac| 00002820 68 65 5f 62 79 74 65 20 4c 44 59 23 30 0d 2d 00 |he_byte LDY#0.-.| 00002830 0e 4c 44 41 28 26 38 34 29 2c 59 0d 2d 0a 09 53 |.LDA(&84),Y.-..S| 00002840 54 41 73 61 0d 2d 0b 24 4c 44 41 26 38 43 20 5c |TAsa.-.$LDA&8C \| 00002850 20 49 6e 63 72 65 61 73 65 20 76 69 72 74 75 61 | Increase virtua| 00002860 6c 20 66 69 6c 65 20 8f 0d 2d 0c 07 43 4c 43 0d |l file ..-..CLC.| 00002870 2d 0d 09 41 44 43 23 31 0d 2d 0e 0a 53 54 41 26 |-..ADC#1.-..STA&| 00002880 38 43 0d 2d 0f 0a 4c 44 41 26 38 44 0d 2d 10 09 |8C.-..LDA&8D.-..| 00002890 41 44 43 23 30 0d 2d 11 0a 53 54 41 26 38 44 0d |ADC#0.-..STA&8D.| 000028a0 2d 12 0a 4c 44 41 26 38 45 0d 2d 13 09 41 44 43 |-..LDA&8E.-..ADC| 000028b0 23 30 0d 2d 14 0a 53 54 41 26 38 45 0d 2d 15 0a |#0.-..STA&8E.-..| 000028c0 4c 44 41 26 38 46 0d 2d 16 09 41 44 43 23 30 0d |LDA&8F.-..ADC#0.| 000028d0 2d 17 0a 53 54 41 26 38 46 0d 2d 1c 0a 4c 44 41 |-..STA&8F.-..LDA| 000028e0 26 38 34 0d 2d 1e 07 43 4c 43 0d 2d 28 09 41 44 |&84.-..CLC.-(.AD| 000028f0 43 23 31 0d 2d 32 0a 53 54 41 26 38 34 0d 2d 3c |C#1.-2.STA&84.-<| 00002900 0a 4c 44 41 26 38 35 0d 2d 46 09 41 44 43 23 30 |.LDA&85.-F.ADC#0| 00002910 0d 2d 50 0a 53 54 41 26 38 35 0d 2d 5a 0a 43 4d |.-P.STA&85.-Z.CM| 00002920 50 26 38 37 0d 2d 64 0f 42 43 43 67 63 62 5f 65 |P&87.-d.BCCgcb_e| 00002930 78 69 74 0d 2d 6e 0a 4c 44 41 26 38 34 0d 2d 78 |xit.-n.LDA&84.-x| 00002940 0a 43 4d 50 26 38 36 0d 2d 82 0f 42 43 43 67 63 |.CMP&86.-..BCCgc| 00002950 62 5f 65 78 69 74 0d 2d 96 0a 4c 44 41 63 66 65 |b_exit.-..LDAcfe| 00002960 0d 2d a0 0b 43 4d 50 23 26 46 46 0d 2d aa 0c 42 |.-..CMP#&FF.-..B| 00002970 4e 45 67 63 62 66 6f 0d 2d af 0a 4c 44 41 20 73 |NEgcbfo.-..LDA s| 00002980 61 0d 2d b4 07 53 45 43 0d 2d be 07 52 54 53 0d |a.-..SEC.-..RTS.| 00002990 2d c8 11 2e 67 63 62 66 6f 20 53 54 58 20 73 78 |-...gcbfo STX sx| 000029a0 0d 2d c9 14 4a 53 52 73 70 77 63 5f 69 6e 69 74 |.-..JSRspwc_init| 000029b0 5f 77 69 6e 0d 2d ca 11 4c 44 41 20 64 69 73 63 |_win.-..LDA disc| 000029c0 5f 66 6c 61 67 0d 2d cc 10 42 45 51 20 67 63 62 |_flag.-..BEQ gcb| 000029d0 5f 65 78 69 74 0d 2d ce 16 4a 53 52 20 69 6e 73 |_exit.-..JSR ins| 000029e0 65 72 74 5f 64 69 63 74 69 6f 6e 0d 2d d0 0a 4c |ert_diction.-..L| 000029f0 44 58 20 73 78 0d 2d d2 13 2e 67 63 62 5f 65 78 |DX sx.-...gcb_ex| 00002a00 69 74 20 4c 44 41 73 61 0d 2d dc 07 43 4c 43 0d |it LDAsa.-..CLC.| 00002a10 2d e6 07 52 54 53 0d 2d f0 0c 2e 63 66 65 20 42 |-..RTS.-...cfe B| 00002a20 52 4b 0d 2d f5 0b 2e 73 78 20 42 52 4b 0d 2d fa |RK.-...sx BRK.-.| 00002a30 05 20 0d 2e 18 1f 2e 69 6e 73 65 72 74 5f 74 65 |. .....insert_te| 00002a40 78 74 20 4a 53 52 20 74 6f 70 5f 77 69 6e 64 6f |xt JSR top_windo| 00002a50 77 0d 2e 1a 09 4c 44 58 23 30 0d 2e 1c 09 4c 44 |w....LDX#0....LD| 00002a60 59 23 36 0d 2e 1e 0b 4a 53 52 20 74 61 62 0d 2e |Y#6....JSR tab..| 00002a70 22 11 4a 53 52 20 74 65 78 74 5f 64 69 73 63 0d |".JSR text_disc.| 00002a80 2e 2c 12 4a 53 52 20 63 6c 65 61 72 5f 75 73 65 |.,.JSR clear_use| 00002a90 72 0d 2e 36 15 4a 53 52 20 62 6f 74 74 65 6d 5f |r..6.JSR bottem_| 00002aa0 77 69 6e 64 6f 77 0d 2e 40 07 52 54 53 0d 2e 4a |window..@.RTS..J| 00002ab0 05 20 0d 2e 54 22 2e 69 6e 73 65 72 74 5f 64 69 |. ..T".insert_di| 00002ac0 63 74 69 6f 6e 20 4a 53 52 20 74 6f 70 5f 77 69 |ction JSR top_wi| 00002ad0 6e 64 6f 77 0d 2e 56 09 4c 44 58 23 30 0d 2e 58 |ndow..V.LDX#0..X| 00002ae0 09 4c 44 59 23 36 0d 2e 5a 0b 4a 53 52 20 74 61 |.LDY#6..Z.JSR ta| 00002af0 62 0d 2e 5e 14 4a 53 52 20 64 69 63 74 69 6f 6e |b..^.JSR diction| 00002b00 5f 64 69 73 63 0d 2e 68 12 4a 53 52 20 63 6c 65 |_disc..h.JSR cle| 00002b10 61 72 5f 75 73 65 72 0d 2e 72 15 4a 53 52 20 62 |ar_user..r.JSR b| 00002b20 6f 74 74 65 6d 5f 77 69 6e 64 6f 77 0d 2e 7c 07 |ottem_window..|.| 00002b30 52 54 53 0d 2e 86 05 20 0d 2e 90 23 2e 74 65 78 |RTS.... ...#.tex| 00002b40 74 5f 64 69 73 63 20 4c 44 58 23 74 65 78 74 5f |t_disc LDX#text_| 00002b50 64 6d 65 73 73 20 83 20 32 35 36 0d 2e 9a 18 4c |dmess . 256....L| 00002b60 44 59 23 74 65 78 74 5f 64 6d 65 73 73 20 81 20 |DY#text_dmess . | 00002b70 32 35 36 0d 2e a4 0f 4a 53 52 20 64 69 73 70 6c |256....JSR displ| 00002b80 61 79 0d 2e ae 0a 4c 44 41 23 32 31 0d 2e b8 09 |ay....LDA#21....| 00002b90 4c 44 58 23 30 0d 2e c2 0e 4a 53 52 20 6f 73 62 |LDX#0....JSR osb| 00002ba0 79 74 65 0d 2e cc 14 2e 74 64 62 61 20 4a 53 52 |yte.....tdba JSR| 00002bb0 20 72 65 61 64 63 68 0d 2e d6 0a 43 4d 50 23 33 | readch....CMP#3| 00002bc0 32 0d 2e e0 0c 42 4e 45 20 74 64 62 61 0d 2e ea |2....BNE tdba...| 00002bd0 07 52 54 53 0d 2e f4 05 20 0d 2e fe 36 2e 74 65 |.RTS.... ...6.te| 00002be0 78 74 5f 64 6d 65 73 73 20 45 51 55 53 22 49 6e |xt_dmess EQUS"In| 00002bf0 73 65 72 74 20 54 45 58 54 20 64 69 73 63 20 61 |sert TEXT disc a| 00002c00 6e 64 20 70 72 65 73 73 20 73 70 61 63 65 22 0d |nd press space".| 00002c10 2f 12 0b 45 51 55 42 26 46 46 0d 2f 1c 05 20 0d |/..EQUB&FF./.. .| 00002c20 2f 26 26 2e 64 69 63 74 69 6f 6e 5f 64 69 73 63 |/&&.diction_disc| 00002c30 20 4c 44 58 23 64 69 63 74 5f 64 6d 65 73 73 20 | LDX#dict_dmess | 00002c40 83 20 32 35 36 0d 2f 30 18 4c 44 59 23 64 69 63 |. 256./0.LDY#dic| 00002c50 74 5f 64 6d 65 73 73 20 81 20 32 35 36 0d 2f 3a |t_dmess . 256./:| 00002c60 0f 4a 53 52 20 64 69 73 70 6c 61 79 0d 2f 44 0a |.JSR display./D.| 00002c70 4c 44 41 23 32 31 0d 2f 4e 09 4c 44 58 23 30 0d |LDA#21./N.LDX#0.| 00002c80 2f 58 0e 4a 53 52 20 6f 73 62 79 74 65 0d 2f 62 |/X.JSR osbyte./b| 00002c90 14 2e 64 64 62 61 20 4a 53 52 20 72 65 61 64 63 |..ddba JSR readc| 00002ca0 68 0d 2f 6c 0a 43 4d 50 23 33 32 0d 2f 76 0c 42 |h./l.CMP#32./v.B| 00002cb0 4e 45 20 64 64 62 61 0d 2f 80 07 52 54 53 0d 2f |NE ddba./..RTS./| 00002cc0 8a 05 20 0d 2f 94 3d 2e 64 69 63 74 5f 64 6d 65 |.. ./.=.dict_dme| 00002cd0 73 73 20 45 51 55 53 22 49 6e 73 65 72 74 20 44 |ss EQUS"Insert D| 00002ce0 49 43 54 49 4f 4e 41 52 59 20 64 69 73 63 20 74 |ICTIONARY disc t| 00002cf0 68 65 6e 20 70 72 65 73 73 20 73 70 61 63 65 22 |hen press space"| 00002d00 0d 2f a8 0b 45 51 55 42 26 46 46 0d 2f b2 05 20 |./..EQUB&FF./.. | 00002d10 0d 2f da 1f 2e 64 69 73 63 73 20 4c 44 58 23 64 |./...discs LDX#d| 00002d20 69 73 63 73 5f 6d 65 73 73 20 83 20 32 35 36 0d |iscs_mess . 256.| 00002d30 2f e4 18 4c 44 59 23 64 69 73 63 73 5f 6d 65 73 |/..LDY#discs_mes| 00002d40 73 20 81 20 32 35 36 0d 2f ee 0f 4a 53 52 20 64 |s . 256./..JSR d| 00002d50 69 73 70 6c 61 79 0d 2f f0 0a 4c 44 41 23 32 31 |isplay./..LDA#21| 00002d60 0d 2f f2 09 4c 44 58 23 30 0d 2f f4 0e 4a 53 52 |./..LDX#0./..JSR| 00002d70 20 6f 73 62 79 74 65 0d 2f f8 17 2e 64 69 73 63 | osbyte./...disc| 00002d80 73 62 61 20 4a 53 52 20 72 65 61 64 63 68 0d 30 |sba JSR readch.0| 00002d90 02 09 80 23 26 44 46 0d 30 0c 0c 43 4d 50 23 97 |...#&DF.0..CMP#.| 00002da0 22 4e 22 0d 30 16 0c 42 45 51 20 64 69 66 66 0d |"N".0..BEQ diff.| 00002db0 30 20 0c 43 4d 50 23 97 22 59 22 0d 30 2a 0f 42 |0 .CMP#."Y".0*.B| 00002dc0 4e 45 20 64 69 73 63 73 62 61 0d 30 30 0e 4a 53 |NE discsba.00.JS| 00002dd0 52 20 6f 73 77 72 63 68 0d 30 34 09 4c 44 41 23 |R oswrch.04.LDA#| 00002de0 30 0d 30 3e 11 53 54 41 20 64 69 73 63 5f 66 6c |0.0>.STA disc_fl| 00002df0 61 67 0d 30 48 07 52 54 53 0d 30 52 14 2e 64 69 |ag.0H.RTS.0R..di| 00002e00 66 66 20 4a 53 52 20 6f 73 77 72 63 68 0d 30 57 |ff JSR oswrch.0W| 00002e10 0b 4c 44 41 23 26 46 46 0d 30 5c 11 53 54 41 20 |.LDA#&FF.0\.STA | 00002e20 64 69 73 63 5f 66 6c 61 67 0d 30 66 07 52 54 53 |disc_flag.0f.RTS| 00002e30 0d 30 70 12 2e 64 69 73 63 5f 66 6c 61 67 20 42 |.0p..disc_flag B| 00002e40 52 4b 0d 30 7a 21 2e 64 69 73 63 73 5f 6d 65 73 |RK.0z!.discs_mes| 00002e50 73 20 45 51 55 42 32 32 3a 45 51 55 42 37 20 5c |s EQUB22:EQUB7 \| 00002e60 20 eb 37 0d 30 7b 0c 45 51 55 57 26 44 30 41 0d | .7.0{.EQUW&D0A.| 00002e70 30 7c 1b 45 51 55 53 22 57 61 74 63 68 65 72 20 |0|.EQUS"Watcher | 00002e80 22 2b 76 65 72 73 69 6f 6e 24 0d 30 7d 0c 45 51 |"+version$.0}.EQ| 00002e90 55 57 26 44 30 41 0d 30 7e 1e 45 51 55 53 22 28 |UW&D0A.0~.EQUS"(| 00002ea0 43 29 20 41 6c 6c 61 6e 20 4b 65 6c 6c 79 20 31 |C) Allan Kelly 1| 00002eb0 39 38 37 22 0d 30 7f 0c 45 51 55 57 26 44 30 41 |987".0..EQUW&D0A| 00002ec0 0d 30 84 2f 45 51 55 53 22 41 72 65 20 44 69 63 |.0./EQUS"Are Dic| 00002ed0 74 69 6f 6e 61 72 79 20 61 6e 64 20 54 65 78 74 |tionary and Text| 00002ee0 20 6f 6e 20 73 61 6d 65 20 64 69 73 63 3f 22 0d | on same disc?".| 00002ef0 30 8e 0b 45 51 55 42 26 46 46 0d 36 4c 16 2e 72 |0..EQUB&FF.6L..r| 00002f00 65 61 64 63 68 20 4a 53 52 20 6f 73 72 64 63 68 |eadch JSR osrdch| 00002f10 0d 36 56 16 42 43 53 20 65 73 63 61 70 65 5f 70 |.6V.BCS escape_p| 00002f20 72 65 73 73 65 64 0d 36 60 07 52 54 53 0d 36 b0 |ressed.6`.RTS.6.| 00002f30 1b 2e 65 73 63 61 70 65 5f 70 72 65 73 73 65 64 |..escape_pressed| 00002f40 20 4c 44 41 23 26 37 43 0d 36 ba 0e 4a 53 52 20 | LDA#&7C.6..JSR | 00002f50 6f 73 62 79 74 65 0d 36 c4 16 4c 44 59 23 65 73 |osbyte.6..LDY#es| 00002f60 63 5f 6d 65 73 73 20 81 20 32 35 36 0d 36 ce 16 |c_mess . 256.6..| 00002f70 4c 44 58 23 65 73 63 5f 6d 65 73 73 20 83 20 32 |LDX#esc_mess . 2| 00002f80 35 36 0d 36 d8 11 4a 53 52 20 74 65 6c 6c 5f 75 |56.6..JSR tell_u| 00002f90 73 65 72 0d 36 e2 14 2e 65 70 62 61 20 4a 53 52 |ser.6...epba JSR| 00002fa0 20 6f 73 72 64 63 68 0d 36 ec 09 80 23 26 44 46 | osrdch.6...#&DF| 00002fb0 0d 36 f6 0c 43 4d 50 23 97 22 59 22 0d 37 00 0d |.6..CMP#."Y".7..| 00002fc0 42 45 51 20 61 62 6f 72 74 0d 37 0a 0c 43 4d 50 |BEQ abort.7..CMP| 00002fd0 23 97 22 4e 22 0d 37 14 0c 42 4e 45 20 65 70 62 |#."N".7..BNE epb| 00002fe0 61 0d 37 1e 12 4a 53 52 20 63 6c 65 61 72 5f 75 |a.7..JSR clear_u| 00002ff0 73 65 72 0d 37 28 07 52 54 53 0d 37 32 18 2e 61 |ser.7(.RTS.72..a| 00003000 62 6f 72 74 20 4c 44 41 20 77 6f 72 64 5f 66 6c |bort LDA word_fl| 00003010 61 67 0d 37 3c 0c 42 45 51 20 65 70 66 6f 0d 37 |ag.7<.BEQ epfo.7| 00003020 46 11 4c 44 58 23 73 6e 77 20 83 20 32 35 36 0d |F.LDX#snw . 256.| 00003030 37 50 11 4c 44 59 23 73 6e 77 20 81 20 32 35 36 |7P.LDY#snw . 256| 00003040 0d 37 5a 11 4a 53 52 20 74 65 6c 6c 5f 75 73 65 |.7Z.JSR tell_use| 00003050 72 0d 37 64 15 2e 65 70 62 61 32 20 4a 53 52 20 |r.7d..epba2 JSR | 00003060 6f 73 72 64 63 68 0d 37 6e 0c 43 4d 50 23 97 22 |osrdch.7n.CMP#."| 00003070 4e 22 0d 37 78 0c 42 45 51 20 65 70 66 6f 0d 37 |N".7x.BEQ epfo.7| 00003080 82 0c 43 4d 50 23 97 22 59 22 0d 37 8c 0d 42 4e |..CMP#."Y".7..BN| 00003090 45 20 65 70 62 61 32 0d 37 96 11 4a 53 52 20 65 |E epba2.7..JSR e| 000030a0 6d 70 74 79 5f 72 61 6d 0d 37 a0 0f 2e 65 70 66 |mpty_ram.7...epf| 000030b0 6f 20 4c 44 41 23 30 0d 37 aa 09 4c 44 59 23 30 |o LDA#0.7..LDY#0| 000030c0 0d 37 b4 0e 4a 53 52 20 6f 73 66 69 6e 64 0d 37 |.7..JSR osfind.7| 000030d0 be 09 4c 44 41 23 33 0d 37 c8 0e 4a 53 52 20 6f |..LDA#3.7..JSR o| 000030e0 73 77 72 63 68 0d 37 d2 09 4c 44 41 23 33 0d 37 |swrch.7..LDA#3.7| 000030f0 dc 09 4c 44 58 23 30 0d 37 e6 0e 4a 53 52 20 6f |..LDX#0.7..JSR o| 00003100 73 62 79 74 65 0d 37 f0 25 4c 44 41 23 32 32 35 |sbyte.7.%LDA#225| 00003110 20 5c 20 52 65 74 75 72 6e 20 46 20 6b 65 79 73 | \ Return F keys| 00003120 20 74 6f 20 6e 6f 72 6d 61 6c 0d 37 fa 09 4c 44 | to normal.7..LD| 00003130 58 23 31 0d 38 04 0e 4a 53 52 20 6f 73 62 79 74 |X#1.8..JSR osbyt| 00003140 65 0d 38 0e 15 4a 53 52 20 62 6f 74 74 65 6d 5f |e.8..JSR bottem_| 00003150 77 69 6e 64 6f 77 0d 38 22 0c 4a 4d 50 20 6d 65 |window.8".JMP me| 00003160 6e 75 0d 38 40 2f 2e 65 73 63 5f 6d 65 73 73 20 |nu.8@/.esc_mess | 00003170 45 51 55 53 22 44 6f 20 79 6f 75 20 77 69 73 68 |EQUS"Do you wish| 00003180 20 74 6f 20 61 62 6f 72 74 3f 20 28 59 2f 4e 29 | to abort? (Y/N)| 00003190 22 0d 38 4a 0b 45 51 55 42 26 46 46 0d 38 68 11 |".8J.EQUB&FF.8h.| 000031a0 2e 73 6e 77 20 45 51 55 57 26 44 30 41 0d 38 72 |.snw EQUW&D0A.8r| 000031b0 1f 45 51 55 53 22 53 61 76 65 20 4e 65 77 20 57 |.EQUS"Save New W| 000031c0 6f 72 64 73 3f 20 28 59 2f 4e 29 22 0d 38 7c 0b |ords? (Y/N)".8|.| 000031d0 45 51 55 42 26 46 46 0d 3a 98 13 2e 6f 70 65 6e |EQUB&FF.:...open| 000031e0 5f 73 70 6f 6f 6c 20 50 48 41 0d 3a a2 12 4c 44 |_spool PHA.:..LD| 000031f0 41 20 73 70 6f 6f 6c 5f 66 6c 61 67 0d 3a ac 0d |A spool_flag.:..| 00003200 42 45 51 20 6f 73 66 6f 31 0d 3a b6 07 50 4c 41 |BEQ osfo1.:..PLA| 00003210 0d 3a c0 18 4c 44 58 23 73 70 6f 6f 6c 5f 6f 70 |.:..LDX#spool_op| 00003220 65 6e 20 83 20 32 35 36 0d 3a ca 18 4c 44 59 23 |en . 256.:..LDY#| 00003230 73 70 6f 6f 6c 5f 6f 70 65 6e 20 81 20 32 35 36 |spool_open . 256| 00003240 0d 3a d4 11 4a 53 52 20 74 65 6c 6c 5f 75 73 65 |.:..JSR tell_use| 00003250 72 0d 3a de 0e 4a 53 52 20 6f 73 72 64 63 68 0d |r.:..JSR osrdch.| 00003260 3a e3 12 4a 53 52 20 63 6c 65 61 72 5f 75 73 65 |:..JSR clear_use| 00003270 72 0d 3a e8 07 52 54 53 0d 3a f2 05 20 0d 3a fc |r.:..RTS.:.. .:.| 00003280 0e 2e 6f 73 66 6f 31 20 50 4c 41 0d 3b 06 12 53 |..osfo1 PLA.;..S| 00003290 54 41 20 73 70 6f 6f 6c 5f 66 6c 61 67 0d 3b 08 |TA spool_flag.;.| 000032a0 12 4a 53 52 20 74 6f 70 5f 77 69 6e 64 6f 77 0d |.JSR top_window.| 000032b0 3b 0a 09 4c 44 59 23 35 0d 3b 0c 09 4c 44 58 23 |;..LDY#5.;..LDX#| 000032c0 30 0d 3b 0e 0b 4a 53 52 20 74 61 62 0d 3b 10 1d |0.;..JSR tab.;..| 000032d0 2e 6f 73 62 61 31 20 4c 44 58 23 67 65 74 5f 6e |.osba1 LDX#get_n| 000032e0 61 6d 65 20 83 20 32 35 36 0d 3b 1a 16 4c 44 59 |ame . 256.;..LDY| 000032f0 23 67 65 74 5f 6e 61 6d 65 20 81 20 32 35 36 0d |#get_name . 256.| 00003300 3b 24 0f 4a 53 52 20 64 69 73 70 6c 61 79 0d 3b |;$.JSR display.;| 00003310 2e 09 4c 44 41 23 30 0d 3b 38 19 4c 44 58 23 73 |..LDA#0.;8.LDX#s| 00003320 70 6f 6f 6c 5f 62 6c 6f 63 6b 20 83 20 32 35 36 |pool_block . 256| 00003330 0d 3b 42 19 4c 44 59 23 73 70 6f 6f 6c 5f 62 6c |.;B.LDY#spool_bl| 00003340 6f 63 6b 20 81 20 32 35 36 0d 3b 4c 0e 4a 53 52 |ock . 256.;L.JSR| 00003350 20 6f 73 77 6f 72 64 0d 3b 56 0d 42 43 43 20 6f | osword.;V.BCC o| 00003360 73 66 6f 32 0d 3b 60 16 4a 53 52 20 65 73 63 61 |sfo2.;`.JSR esca| 00003370 70 65 5f 70 72 65 73 73 65 64 0d 3b 6a 12 4a 53 |pe_pressed.;j.JS| 00003380 52 20 63 6c 65 61 72 5f 75 73 65 72 0d 3b 74 0d |R clear_user.;t.| 00003390 4a 4d 50 20 6f 73 62 61 31 0d 3b 7e 05 20 0d 3b |JMP osba1.;~. .;| 000033a0 88 12 2e 6f 73 66 6f 32 20 4c 44 41 23 26 38 30 |...osfo2 LDA#&80| 000033b0 0d 3b 92 18 4c 44 58 23 73 70 6f 6f 6c 5f 6e 61 |.;..LDX#spool_na| 000033c0 6d 65 20 83 20 32 35 36 0d 3b 9c 18 4c 44 59 23 |me . 256.;..LDY#| 000033d0 73 70 6f 6f 6c 5f 6e 61 6d 65 20 81 20 32 35 36 |spool_name . 256| 000033e0 0d 3b a6 0e 4a 53 52 20 6f 73 66 69 6e 64 0d 3b |.;..JSR osfind.;| 000033f0 b0 14 53 54 41 20 73 70 6f 6f 6c 5f 68 61 6e 64 |..STA spool_hand| 00003400 6c 65 0d 3b b5 09 43 4d 50 23 30 0d 3b b6 0d 42 |le.;..CMP#0.;..B| 00003410 45 51 20 6f 73 66 6f 33 0d 3b ba 09 4c 44 59 23 |EQ osfo3.;..LDY#| 00003420 32 0d 3b bb 0a 4c 44 58 23 32 30 0d 3b bc 0b 4a |2.;..LDX#20.;..J| 00003430 53 52 20 74 61 62 0d 3b bd 09 4c 44 59 23 30 0d |SR tab.;..LDY#0.| 00003440 3b be 1b 2e 6f 73 62 61 32 20 4c 44 41 20 73 70 |;...osba2 LDA sp| 00003450 6f 6f 6c 5f 6e 61 6d 65 2c 59 0d 3b bf 0e 4a 53 |ool_name,Y.;..JS| 00003460 52 20 6f 73 77 72 63 68 0d 3b c0 07 49 4e 59 0d |R oswrch.;..INY.| 00003470 3b c1 0a 43 4d 50 23 26 44 0d 3b c2 0d 42 4e 45 |;..CMP#&D.;..BNE| 00003480 20 6f 73 62 61 32 0d 3b c4 12 4a 53 52 20 63 6c | osba2.;..JSR cl| 00003490 65 61 72 5f 75 73 65 72 0d 3b c9 15 4a 53 52 20 |ear_user.;..JSR | 000034a0 62 6f 74 74 65 6d 5f 77 69 6e 64 6f 77 0d 3b ce |bottem_window.;.| 000034b0 07 52 54 53 0d 3b d8 05 20 0d 3b e2 3a 2e 73 70 |.RTS.;.. .;.:.sp| 000034c0 6f 6f 6c 5f 6f 70 65 6e 20 45 51 55 53 22 53 70 |ool_open EQUS"Sp| 000034d0 6f 6f 6c 20 66 69 6c 65 20 69 73 20 61 6c 72 65 |ool file is alre| 000034e0 61 64 79 20 6f 70 65 6e 2e 20 28 52 45 54 55 52 |ady open. (RETUR| 000034f0 4e 29 22 0d 3b ec 0b 45 51 55 42 26 46 46 0d 3b |N)".;..EQUB&FF.;| 00003500 f6 2a 2e 67 65 74 5f 6e 61 6d 65 20 45 51 55 53 |.*.get_name EQUS| 00003510 22 45 6e 74 65 72 20 53 70 6f 6f 6c 20 66 69 6c |"Enter Spool fil| 00003520 65 6e 61 6d 65 3a 20 22 0d 3c 00 0b 45 51 55 42 |ename: ".<..EQUB| 00003530 26 46 46 0d 3c 0a 20 2e 73 70 6f 6f 6c 5f 62 6c |&FF.<. .spool_bl| 00003540 6f 63 6b 20 45 51 55 57 20 73 70 6f 6f 6c 5f 6e |ock EQUW spool_n| 00003550 61 6d 65 0d 3c 14 0b 45 51 55 42 20 31 36 0d 3c |ame.<..EQUB 16.<| 00003560 1e 0b 45 51 55 42 20 33 32 0d 3c 28 0c 45 51 55 |..EQUB 32.<(.EQU| 00003570 42 20 31 32 37 0d 3c 2d 21 2e 73 70 6f 6f 6c 5f |B 127.<-!.spool_| 00003580 6e 61 6d 65 20 4f 50 54 20 a4 73 70 61 63 65 28 |name OPT .space(| 00003590 31 36 2c 31 33 29 0d 3c 32 05 20 0d 3c 3c 19 2e |16,13).<2. .<<..| 000035a0 6f 73 66 6f 33 20 4c 44 58 23 65 72 72 31 20 83 |osfo3 LDX#err1 .| 000035b0 20 32 35 36 0d 3c 46 12 4c 44 59 23 65 72 72 31 | 256.<F.LDY#err1| 000035c0 20 81 20 32 35 36 0d 3c 50 11 4a 53 52 20 74 65 | . 256.<P.JSR te| 000035d0 6c 6c 5f 75 73 65 72 0d 3c 5a 0e 4a 53 52 20 6f |ll_user.<Z.JSR o| 000035e0 73 72 64 63 68 0d 3c 6e 15 4a 53 52 20 62 6f 74 |srdch.<n.JSR bot| 000035f0 74 65 6d 5f 77 69 6e 64 6f 77 0d 3c 70 09 4c 44 |tem_window.<p.LD| 00003600 41 23 30 0d 3c 72 12 53 54 41 20 73 70 6f 6f 6c |A#0.<r.STA spool| 00003610 5f 66 6c 61 67 0d 3c 78 07 52 54 53 0d 3c 82 34 |_flag.<x.RTS.<.4| 00003620 2e 65 72 72 31 20 45 51 55 53 22 53 70 6f 6f 6c |.err1 EQUS"Spool| 00003630 20 66 69 6c 65 20 63 61 6e 6e 6f 74 20 62 65 20 | file cannot be | 00003640 6f 70 65 6e 65 64 20 28 52 45 54 55 52 4e 29 22 |opened (RETURN)"| 00003650 0d 3c 8c 0b 45 51 55 42 26 46 46 0d 3e 80 05 20 |.<..EQUB&FF.>.. | 00003660 0d 3e 8a 28 2e 62 79 74 65 73 20 5c 20 55 70 64 |.>.(.bytes \ Upd| 00003670 61 74 65 20 73 63 72 65 65 6e 20 62 79 74 65 73 |ate screen bytes| 00003680 20 63 6f 75 6e 74 65 72 0d 3e 94 12 4a 53 52 20 | counter.>..JSR | 00003690 74 6f 70 5f 77 69 6e 64 6f 77 0d 3e 9e 09 4c 44 |top_window.>..LD| 000036a0 59 23 33 0d 3e a8 0a 4c 44 58 23 31 34 0d 3e b2 |Y#3.>..LDX#14.>.| 000036b0 0b 4a 53 52 20 74 61 62 0d 3e e4 1e 4c 44 58 26 |.JSR tab.>..LDX&| 000036c0 38 43 20 5c 55 73 65 20 76 69 72 74 75 61 6c 20 |8C \Use virtual | 000036d0 66 69 6c 65 20 8f 0d 3e ee 0a 4c 44 59 26 38 44 |file ..>..LDY&8D| 000036e0 0d 3e f8 0a 4c 44 41 26 38 45 0d 3f 02 0f 4a 53 |.>..LDA&8E.?..JS| 000036f0 52 20 68 65 78 5f 6f 75 74 0d 3f 34 09 4c 44 59 |R hex_out.?4.LDY| 00003700 23 33 0d 3f 3e 0a 4c 44 58 23 33 32 0d 3f 48 0b |#3.?>.LDX#32.?H.| 00003710 4a 53 52 20 74 61 62 0d 3f 52 0a 4c 44 41 26 38 |JSR tab.?R.LDA&8| 00003720 30 0d 3f 5c 07 53 45 43 0d 3f 66 0a 53 42 43 26 |0.?\.SEC.?f.SBC&| 00003730 38 43 0d 3f 70 07 54 41 58 0d 3f 7a 0a 4c 44 41 |8C.?p.TAX.?z.LDA| 00003740 26 38 31 0d 3f 84 0a 53 42 43 26 38 44 0d 3f 8e |&81.?..SBC&8D.?.| 00003750 07 54 41 59 0d 3f 98 0a 4c 44 41 26 38 32 0d 3f |.TAY.?..LDA&82.?| 00003760 a2 0a 53 42 43 26 38 45 0d 3f ac 0f 4a 53 52 20 |..SBC&8E.?..JSR | 00003770 68 65 78 5f 6f 75 74 0d 3f f2 15 4a 53 52 20 62 |hex_out.?..JSR b| 00003780 6f 74 74 65 6d 5f 77 69 6e 64 6f 77 0d 3f fc 07 |ottem_window.?..| 00003790 52 54 53 0d 40 06 05 20 0d 46 5a 17 2e 63 68 65 |RTS.@.. .FZ..che| 000037a0 63 6b 5f 6b 65 79 73 20 4c 44 41 23 26 38 31 0d |ck_keys LDA#&81.| 000037b0 46 64 09 4c 44 58 23 31 0d 46 6e 09 4c 44 59 23 |Fd.LDX#1.Fn.LDY#| 000037c0 30 0d 46 78 0e 4a 53 52 20 6f 73 62 79 74 65 0d |0.Fx.JSR osbyte.| 000037d0 46 82 11 42 43 43 20 6b 65 79 5f 63 68 65 63 6b |F..BCC key_check| 000037e0 0d 46 8c 0a 43 50 59 23 32 37 0d 46 96 0d 42 4e |.F..CPY#27.F..BN| 000037f0 45 20 63 6b 66 6f 31 0d 46 a0 16 4a 53 52 20 65 |E ckfo1.F..JSR e| 00003800 73 63 61 70 65 5f 70 72 65 73 73 65 64 0d 46 aa |scape_pressed.F.| 00003810 0e 2e 63 6b 66 6f 31 20 52 54 53 0d 46 b4 05 20 |..ckfo1 RTS.F.. | 00003820 0d 46 be 1e 2e 6b 65 79 5f 63 68 65 63 6b 20 5c |.F...key_check \| 00003830 20 58 3d 6b 65 79 20 70 72 65 73 73 65 64 0d 46 | X=key pressed.F| 00003840 c8 0b 43 50 58 23 26 38 30 0d 46 d2 0d 42 4e 45 |..CPX#&80.F..BNE| 00003850 20 63 6b 66 6f 32 0d 46 dc 09 4c 44 41 23 32 0d | ckfo2.F..LDA#2.| 00003860 46 e6 11 53 54 41 20 73 61 76 65 5f 66 6c 61 67 |F..STA save_flag| 00003870 0d 46 e8 16 4c 44 58 23 73 61 76 65 5f 73 65 6c |.F..LDX#save_sel| 00003880 20 83 20 32 35 36 0d 46 e9 16 4c 44 59 23 73 61 | . 256.F..LDY#sa| 00003890 76 65 5f 73 65 6c 20 81 20 32 35 36 0d 46 ea 0e |ve_sel . 256.F..| 000038a0 4a 4d 50 20 63 6b 66 6f 36 62 0d 46 fa 12 2e 63 |JMP ckfo6b.F...c| 000038b0 6b 66 6f 32 20 43 50 58 23 26 38 31 0d 47 04 0d |kfo2 CPX#&81.G..| 000038c0 42 4e 45 20 63 6b 66 6f 33 0d 47 0e 09 4c 44 41 |BNE ckfo3.G..LDA| 000038d0 23 31 0d 47 18 11 53 54 41 20 73 61 76 65 5f 66 |#1.G..STA save_f| 000038e0 6c 61 67 0d 47 1a 16 4c 44 58 23 73 61 76 65 5f |lag.G..LDX#save_| 000038f0 61 6c 6c 20 83 20 32 35 36 0d 47 1c 16 4c 44 59 |all . 256.G..LDY| 00003900 23 73 61 76 65 5f 61 6c 6c 20 81 20 32 35 36 0d |#save_all . 256.| 00003910 47 1d 0e 4a 4d 50 20 63 6b 66 6f 36 62 0d 47 2c |G..JMP ckfo6b.G,| 00003920 12 2e 63 6b 66 6f 33 20 43 50 58 23 26 38 32 0d |..ckfo3 CPX#&82.| 00003930 47 36 0d 42 4e 45 20 63 6b 66 6f 34 0d 47 40 09 |G6.BNE ckfo4.G@.| 00003940 4c 44 41 23 30 0d 47 4a 11 53 54 41 20 73 61 76 |LDA#0.GJ.STA sav| 00003950 65 5f 66 6c 61 67 0d 47 4c 17 4c 44 58 23 73 61 |e_flag.GL.LDX#sa| 00003960 76 65 5f 6e 6f 6e 65 20 83 20 32 35 36 0d 47 4e |ve_none . 256.GN| 00003970 17 4c 44 59 23 73 61 76 65 5f 6e 6f 6e 65 20 81 |.LDY#save_none .| 00003980 20 32 35 36 0d 47 4f 0e 4a 4d 50 20 63 6b 66 6f | 256.GO.JMP ckfo| 00003990 36 62 0d 47 5e 12 2e 63 6b 66 6f 34 20 43 50 58 |6b.G^..ckfo4 CPX| 000039a0 23 26 38 33 0d 47 68 0d 42 4e 45 20 63 6b 66 6f |#&83.Gh.BNE ckfo| 000039b0 35 0d 47 72 09 4c 44 41 23 32 0d 47 7c 17 4c 44 |5.Gr.LDA#2.G|.LD| 000039c0 58 23 70 72 5f 73 65 6c 65 63 74 20 83 20 32 35 |X#pr_select . 25| 000039d0 36 0d 47 81 17 4c 44 59 23 70 72 5f 73 65 6c 65 |6.G..LDY#pr_sele| 000039e0 63 74 20 81 20 32 35 36 0d 47 86 0e 4a 4d 50 20 |ct . 256.G..JMP | 000039f0 63 6b 66 6f 36 61 0d 47 90 12 2e 63 6b 66 6f 35 |ckfo6a.G...ckfo5| 00003a00 20 43 50 58 23 26 38 34 0d 47 9a 0d 42 4e 45 20 | CPX#&84.G..BNE | 00003a10 63 6b 66 6f 36 0d 47 a4 09 4c 44 41 23 31 0d 47 |ckfo6.G..LDA#1.G| 00003a20 ae 13 4c 44 58 23 70 72 5f 6f 6e 20 83 20 32 35 |..LDX#pr_on . 25| 00003a30 36 0d 47 b3 13 4c 44 59 23 70 72 5f 6f 6e 20 81 |6.G..LDY#pr_on .| 00003a40 20 32 35 36 0d 47 b8 0e 4a 4d 50 20 63 6b 66 6f | 256.G..JMP ckfo| 00003a50 36 61 0d 47 c2 12 2e 63 6b 66 6f 36 20 43 50 58 |6a.G...ckfo6 CPX| 00003a60 23 26 38 35 0d 47 cc 0d 42 4e 45 20 63 6b 66 6f |#&85.G..BNE ckfo| 00003a70 37 0d 47 cd 14 4c 44 58 23 70 72 5f 6f 66 66 20 |7.G..LDX#pr_off | 00003a80 83 20 32 35 36 0d 47 ce 14 4c 44 59 23 70 72 5f |. 256.G..LDY#pr_| 00003a90 6f 66 66 20 81 20 32 35 36 0d 47 d6 09 4c 44 41 |off . 256.G..LDA| 00003aa0 23 30 0d 47 e0 1c 2e 63 6b 66 6f 36 61 20 53 54 |#0.G...ckfo6a ST| 00003ab0 41 20 70 72 69 6e 74 65 72 5f 66 6c 61 67 0d 47 |A printer_flag.G| 00003ac0 e1 0f 2e 63 6b 66 6f 36 62 20 54 58 41 0d 47 e2 |...ckfo6b TXA.G.| 00003ad0 07 50 48 41 0d 47 e3 07 54 59 41 0d 47 e4 07 50 |.PHA.G..TYA.G..P| 00003ae0 48 41 0d 47 e5 12 4a 53 52 20 74 6f 70 5f 77 69 |HA.G..JSR top_wi| 00003af0 6e 64 6f 77 0d 47 e6 07 50 4c 41 0d 47 e7 07 54 |ndow.G..PLA.G..T| 00003b00 41 59 0d 47 e8 07 50 4c 41 0d 47 e9 07 54 41 58 |AY.G..PLA.G..TAX| 00003b10 0d 47 ea 0f 4a 53 52 20 64 69 73 70 6c 61 79 0d |.G..JSR display.| 00003b20 47 eb 15 4a 53 52 20 62 6f 74 74 65 6d 5f 77 69 |G..JSR bottem_wi| 00003b30 6e 64 6f 77 0d 47 ec 07 52 54 53 0d 47 f4 12 2e |ndow.G..RTS.G...| 00003b40 63 6b 66 6f 37 20 43 50 58 23 26 38 36 0d 47 fe |ckfo7 CPX#&86.G.| 00003b50 0d 42 4e 45 20 63 6b 66 6f 38 0d 48 08 09 4c 44 |.BNE ckfo8.H..LD| 00003b60 41 23 32 0d 48 1c 12 4a 4d 50 20 6f 70 65 6e 5f |A#2.H..JMP open_| 00003b70 73 70 6f 6f 6c 0d 48 30 12 2e 63 6b 66 6f 38 20 |spool.H0..ckfo8 | 00003b80 43 50 58 23 26 38 37 0d 48 3a 0d 42 4e 45 20 63 |CPX#&87.H:.BNE c| 00003b90 6b 66 6f 39 0d 48 44 09 4c 44 41 23 31 0d 48 4e |kfo9.HD.LDA#1.HN| 00003ba0 12 4a 4d 50 20 6f 70 65 6e 5f 73 70 6f 6f 6c 0d |.JMP open_spool.| 00003bb0 48 6c 12 2e 63 6b 66 6f 39 20 43 50 58 23 26 38 |Hl..ckfo9 CPX#&8| 00003bc0 38 0d 48 76 0d 42 4e 45 20 63 6b 66 6f 41 0d 48 |8.Hv.BNE ckfoA.H| 00003bd0 80 12 4c 44 41 20 73 70 6f 6f 6c 5f 66 6c 61 67 |..LDA spool_flag| 00003be0 0d 48 8a 0e 42 45 51 20 63 6b 66 6f 39 61 0d 48 |.H..BEQ ckfo9a.H| 00003bf0 94 14 4c 44 59 20 73 70 6f 6f 6c 5f 68 61 6e 64 |..LDY spool_hand| 00003c00 6c 65 0d 48 9e 09 4c 44 41 23 30 0d 48 a8 0e 4a |le.H..LDA#0.H..J| 00003c10 53 52 20 6f 73 66 69 6e 64 0d 48 b2 09 4c 44 41 |SR osfind.H..LDA| 00003c20 23 30 0d 48 bc 12 53 54 41 20 73 70 6f 6f 6c 5f |#0.H..STA spool_| 00003c30 66 6c 61 67 0d 48 c6 11 4c 44 58 23 63 73 6d 20 |flag.H..LDX#csm | 00003c40 83 20 32 35 36 0d 48 d0 11 4c 44 59 23 63 73 6d |. 256.H..LDY#csm| 00003c50 20 81 20 32 35 36 0d 48 da 11 4a 53 52 20 74 65 | . 256.H..JSR te| 00003c60 6c 6c 5f 75 73 65 72 0d 48 e4 0f 2e 63 6b 66 6f |ll_user.H...ckfo| 00003c70 39 61 20 52 54 53 0d 48 ee 27 2e 63 73 6d 20 45 |9a RTS.H.'.csm E| 00003c80 51 55 53 22 53 70 6f 6f 6c 20 66 69 6c 65 20 69 |QUS"Spool file i| 00003c90 73 20 6e 6f 77 20 63 6c 6f 73 65 64 22 0d 48 f0 |s now closed".H.| 00003ca0 0a 45 51 55 42 33 31 0d 48 f1 0a 45 51 55 42 32 |.EQUB31.H..EQUB2| 00003cb0 30 0d 48 f2 09 45 51 55 42 32 0d 48 f3 0d 45 51 |0.H..EQUB2.H..EQ| 00003cc0 55 53 22 4f 46 46 22 0d 48 f4 15 4f 50 54 20 a4 |US"OFF".H..OPT .| 00003cd0 73 70 61 63 65 28 31 36 2c 33 32 29 0d 48 f8 0b |space(16,32).H..| 00003ce0 45 51 55 42 26 46 46 0d 49 02 12 2e 63 6b 66 6f |EQUB&FF.I...ckfo| 00003cf0 41 20 43 50 58 23 26 38 39 0d 49 0c 0d 42 4e 45 |A CPX#&89.I..BNE| 00003d00 20 63 6b 66 6f 42 0d 49 16 11 4c 44 41 20 62 65 | ckfoB.I..LDA be| 00003d10 65 70 5f 66 6c 61 67 0d 49 20 09 82 23 26 46 46 |ep_flag.I ..#&FF| 00003d20 0d 49 2a 11 53 54 41 20 62 65 65 70 5f 66 6c 61 |.I*.STA beep_fla| 00003d30 67 0d 49 34 09 43 4d 50 23 30 0d 49 35 0c 42 45 |g.I4.CMP#0.I5.BE| 00003d40 51 20 62 65 66 6f 0d 49 37 16 4c 44 59 23 62 65 |Q befo.I7.LDY#be| 00003d50 65 70 5f 6f 66 66 20 81 20 32 35 36 0d 49 38 16 |ep_off . 256.I8.| 00003d60 4c 44 58 23 62 65 65 70 5f 6f 66 66 20 83 20 32 |LDX#beep_off . 2| 00003d70 35 36 0d 49 39 0e 4a 4d 50 20 63 6b 66 6f 36 62 |56.I9.JMP ckfo6b| 00003d80 0d 49 3c 1b 2e 62 65 66 6f 20 4c 44 59 23 62 65 |.I<..befo LDY#be| 00003d90 65 70 5f 6f 6e 20 81 20 32 35 36 0d 49 3e 15 4c |ep_on . 256.I>.L| 00003da0 44 58 23 62 65 65 70 5f 6f 6e 20 83 20 32 35 36 |DX#beep_on . 256| 00003db0 0d 49 3f 0e 4a 4d 50 20 63 6b 66 6f 36 62 0d 49 |.I?.JMP ckfo6b.I| 00003dc0 48 10 2e 63 6b 66 6f 42 20 43 50 58 23 39 0d 49 |H..ckfoB CPX#9.I| 00003dd0 4d 0d 42 4e 45 20 63 6b 66 6f 43 0d 49 52 09 4c |M.BNE ckfoC.IR.L| 00003de0 44 59 23 32 0d 49 5c 11 2e 74 61 62 31 20 4c 44 |DY#2.I\..tab1 LD| 00003df0 58 23 26 46 46 0d 49 66 0d 2e 74 61 62 32 20 44 |X#&FF.If..tab2 D| 00003e00 45 58 0d 49 70 0c 42 4e 45 20 74 61 62 32 0d 49 |EX.Ip.BNE tab2.I| 00003e10 7a 07 44 45 59 0d 49 84 0c 42 4e 45 20 74 61 62 |z.DEY.I..BNE tab| 00003e20 31 0d 49 8e 10 2e 74 61 62 34 20 4c 44 41 23 32 |1.I...tab4 LDA#2| 00003e30 31 0d 49 98 09 4c 44 58 23 30 0d 49 a2 0e 4a 53 |1.I..LDX#0.I..JS| 00003e40 52 20 6f 73 62 79 74 65 0d 49 ac 0e 4a 53 52 20 |R osbyte.I..JSR | 00003e50 6f 73 72 64 63 68 0d 49 ad 0c 42 43 53 20 74 61 |osrdch.I..BCS ta| 00003e60 62 33 0d 49 ae 09 43 4d 50 23 39 0d 49 af 0c 42 |b3.I..CMP#9.I..B| 00003e70 4e 45 20 74 61 62 34 0d 49 b6 07 52 54 53 0d 49 |NE tab4.I..RTS.I| 00003e80 bb 1c 2e 74 61 62 33 20 4a 4d 50 20 65 73 63 61 |...tab3 JMP esca| 00003e90 70 65 5f 70 72 65 73 73 65 64 0d 49 c0 13 2e 63 |pe_pressed.I...c| 00003ea0 6b 66 6f 43 20 43 50 58 23 97 22 40 22 0d 49 c1 |kfoC CPX#."@".I.| 00003eb0 0d 42 45 51 20 63 6b 66 6f 44 0d 49 c2 1d 52 54 |.BEQ ckfoD.I..RT| 00003ec0 53 20 5c 20 4e 6f 74 20 6f 6e 65 20 6f 66 20 6f |S \ Not one of o| 00003ed0 75 72 20 6b 65 79 73 0d 49 c3 27 2e 63 6b 66 6f |ur keys.I.'.ckfo| 00003ee0 44 20 4c 44 41 20 77 72 6f 6e 67 5f 66 6c 61 67 |D LDA wrong_flag| 00003ef0 20 5c 20 54 65 73 74 20 73 74 61 74 75 73 0d 49 | \ Test status.I| 00003f00 c4 09 82 23 26 46 46 0d 49 c5 12 53 54 41 20 77 |...#&FF.I..STA w| 00003f10 72 6f 6e 67 5f 66 6c 61 67 0d 49 c7 0c 42 4e 45 |rong_flag.I..BNE| 00003f20 20 74 65 66 6f 0d 49 c8 15 4c 44 59 23 74 65 73 | tefo.I..LDY#tes| 00003f30 74 5f 6f 6e 20 81 20 32 35 36 0d 49 c9 15 4c 44 |t_on . 256.I..LD| 00003f40 58 23 74 65 73 74 5f 6f 6e 20 83 20 32 35 36 0d |X#test_on . 256.| 00003f50 49 ca 0e 4a 4d 50 20 63 6b 66 6f 36 62 0d 49 cb |I..JMP ckfo6b.I.| 00003f60 1c 2e 74 65 66 6f 20 4c 44 59 23 74 65 73 74 5f |..tefo LDY#test_| 00003f70 6f 66 66 20 81 20 32 35 36 0d 49 cc 16 4c 44 58 |off . 256.I..LDX| 00003f80 23 74 65 73 74 5f 6f 66 66 20 83 20 32 35 36 0d |#test_off . 256.| 00003f90 49 cd 0e 4a 4d 50 20 63 6b 66 6f 36 62 0d 4b 6e |I..JMP ckfo6b.Kn| 00003fa0 27 2e 65 6e 64 5f 6f 66 5f 66 69 6c 65 20 42 52 |'.end_of_file BR| 00003fb0 4b 20 5c 20 45 6e 64 20 6f 66 20 66 69 6c 65 20 |K \ End of file | 00003fc0 66 6c 61 67 0d 4b 96 14 2e 73 61 76 65 5f 66 6c |flag.K...save_fl| 00003fd0 61 67 20 45 51 55 42 32 0d 4b a0 12 2e 62 65 65 |ag EQUB2.K...bee| 00003fe0 70 5f 66 6c 61 67 20 42 52 4b 0d 4b a5 13 2e 77 |p_flag BRK.K...w| 00003ff0 72 6f 6e 67 5f 66 6c 61 67 20 42 52 4b 0d 4b b4 |rong_flag BRK.K.| 00004000 12 2e 77 6f 72 64 5f 66 6c 61 67 20 42 52 4b 0d |..word_flag BRK.| 00004010 4b be 28 2e 6e 65 77 5f 77 6f 72 64 5f 70 6f 69 |K.(.new_word_poi| 00004020 6e 74 65 72 20 45 51 55 57 20 6e 65 77 5f 72 61 |nter EQUW new_ra| 00004030 6d 5f 77 6f 72 64 73 0d 4b d2 12 2e 6e 65 77 5f |m_words.K...new_| 00004040 72 61 6d 5f 77 6f 72 64 73 0d 4b dc 05 5d 0d 4b |ram_words.K..].K| 00004050 e6 05 ed 0d 4b f0 1a f1 22 53 61 76 69 6e 67 20 |....K..."Saving | 00004060 57 61 74 63 68 65 72 20 63 6f 64 65 22 0d 4b f1 |Watcher code".K.| 00004070 3a e7 20 a4 6f 73 5f 73 61 76 65 28 22 4c 2e 57 |:. .os_save("L.W| 00004080 70 72 6f 67 22 2c 6d 65 6d 5f 73 74 61 72 74 2c |prog",mem_start,| 00004090 61 73 73 5f 73 74 61 72 74 2c 6d 65 6d 5f 73 74 |ass_start,mem_st| 000040a0 61 72 74 2c 4f 25 29 0d 4b fa 05 e0 0d 4c 04 10 |art,O%).K....L..| 000040b0 dd a4 73 70 61 63 65 28 78 2c 79 29 0d 4c 0e 18 |..space(x,y).L..| 000040c0 e3 20 6d 3d 4f 25 20 b8 20 78 2b 4f 25 3a 3f 6d |. m=O% . x+O%:?m| 000040d0 3d 79 3a ed 0d 4c 13 0b 50 25 3d 50 25 2b 78 0d |=y:..L..P%=P%+x.| 000040e0 4c 14 0b 4f 25 3d 4f 25 2b 78 0d 4c 18 0a 3a 3d |L..O%=O%+x.L..:=| 000040f0 70 61 73 73 0d 4e 20 0c dd f2 73 65 74 5f 75 70 |pass.N ...set_up| 00004100 0d 52 08 1f f1 27 27 22 4c 6f 61 64 20 74 68 65 |.R...''"Load the| 00004110 20 56 61 72 69 61 62 6c 65 73 20 21 21 21 22 0d | Variables !!!".| 00004120 52 12 15 f1 22 20 2a 45 58 45 43 20 4c 2e 57 65 |R..." *EXEC L.We| 00004130 78 65 63 22 0d 52 1c 05 fa 0d 75 30 05 e1 0d 75 |xec".R....u0...u| 00004140 3a 05 20 0d 79 18 2c dd a4 6f 73 5f 73 61 76 65 |:. .y.,..os_save| 00004150 28 66 69 6c 65 24 2c 6c 6f 61 64 25 2c 65 78 65 |(file$,load%,exe| 00004160 63 25 2c 73 74 61 72 74 25 2c 65 6e 64 25 29 0d |c%,start%,end%).| 00004170 79 22 08 41 25 3d 30 0d 79 2c 12 58 25 3d 64 61 |y".A%=0.y,.X%=da| 00004180 74 61 25 20 83 20 32 35 36 0d 79 36 12 59 25 3d |ta% . 256.y6.Y%=| 00004190 64 61 74 61 25 20 81 20 32 35 36 0d 79 40 13 21 |data% . 256.y@.!| 000041a0 64 61 74 61 25 3d 64 61 74 61 25 2b 31 38 0d 79 |data%=data%+18.y| 000041b0 4a 14 21 28 64 61 74 61 25 2b 32 29 3d 6c 6f 61 |J.!(data%+2)=loa| 000041c0 64 25 0d 79 54 14 21 28 64 61 74 61 25 2b 36 29 |d%.yT.!(data%+6)| 000041d0 3d 65 78 65 63 25 0d 79 5e 16 21 28 64 61 74 61 |=exec%.y^.!(data| 000041e0 25 2b 31 30 29 3d 73 74 61 72 74 25 0d 79 68 14 |%+10)=start%.yh.| 000041f0 21 28 64 61 74 61 25 2b 31 34 29 3d 65 6e 64 25 |!(data%+14)=end%| 00004200 0d 79 72 15 24 28 64 61 74 61 25 2b 31 38 29 3d |.yr.$(data%+18)=| 00004210 66 69 6c 65 24 0d 79 7c 10 3a 3d ba 26 46 46 44 |file$.y|.:=.&FFD| 00004220 44 20 80 26 33 0d ff |D .&3..| 00004227