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
rJMP menu
t.no_di EQUW&D0A
v"EQUS"No Dictionary file found"
wEQUW&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
RCMP#�"Y"
\BEQ store_new_word
fCMP#�"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
/vBNE 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
0CMP#�"N"
0BEQ 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"
0EQUW&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"
7BNE 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
7nCMP#�"N"
7xBEQ 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
I5BEQ 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
IpBNE 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
Speller/W/WATCHC.m0
Speller/W/WATCHC.m1
Speller/W/WATCHC.m2
Speller/W/WATCHC.m4
Speller/W/WATCHC.m5