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

Speller/M/SORT

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

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

Tape/disk: Home » CEEFAX disks » telesoftware16.adl
Filename: Speller/M/SORT
Read OK:
File size: 2EC5 bytes
Load address: FFFF1900
Exec address: FFFF8023
File contents
   10REM Watcher Spelling Checker
   20REM (C) Allan Kelly 25/6/87 - 17/3/88
   30REM Watcher Sort Prorgam
   40 
   90DIM data% 32
  100nw$="C.NEWORDS"
  105nw2$="C.NEW2"
  110diction$="C.DICTION"
  120new$="C.NEWTION"
  160 
  200osargs=&FFDA
  210osbget=&FFD7
  220osbput=&FFD4
  230oswrch=&FFEE
  240osnewl=&FFE7
  250osgbpb=&FFD1
  260osfind=&FFCE
  270osbyte=&FFF4
  275osrdch=&FFE0
  276oscli=&FFF7
  280 
  300FOR pass=0 TO 2 STEP 2
  310P%=&7000
  315start=P%
  320[
  330OPT pass
  400LDX#sure MOD 256
  410LDY#sure DIV 256
  420JSR display
  430.suba JSR osrdch
  440CMP#ASC"Y"
  450BEQ sufo
  460CMP#ASC"N"
  465BNE suba
  466JMP exit
  470 
  480.sufo LDA#15
  481JSR oswrch
  485LDA#&40
  490LDX#nw_name MOD 256
  500LDY#nw_name DIV 256
  510JSR osfind
  520CMP#0
  530BNE sufo2
  540JMP no_file
  550.sufo2 TAY
  555JSR osbget
  560CMP#0
  570BNE sufo3
  580LDX#no_words MOD 256
  590LDY#no_words DIV 256
  600JSR display
  610JMP exit
  620.no_words EQUW&D0A
  621EQUS"No words in Neword file"
  622EQUB&FF
  630 
  640.sufo3 LDA#0
  670JSR osfind
  680 
  690LDA#&40
  700LDX#diction MOD 256
  710LDY#diction DIV 256
  720JSR osfind
  730CMP#0
  740BNE sufo4
  750JMP no_file
  760.sufo4 TAY
  770LDA#0
  780JSR osfind
  790 
  800LDX#gogo MOD 256
  810LDY#gogo DIV 256
  820JSR display
  830 
  840JSR sort_nw
  842LDX#del_nw MOD 256 \ Delete newords file
  843LDY#del_nw DIV 256
  844JSR oscli
  850 
  860LDX#merge_mess MOD 256
  870LDY#merge_mess DIV 256
  880JSR display
  890 
  900JSR merge
  910 
  920LDX#del_ren MOD 256
  930LDY#del_ren DIV 256
  940JSR display
  950 
  990LDX#del_nw2 MOD 256
 1000LDY#del_nw2 DIV 256
 1010JSR oscli
 1020LDX#del_dic MOD 256
 1030LDY#del_dic DIV 256
 1040JSR oscli
 1050LDX#ren_new MOD 256
 1060LDY#ren_new DIV 256
 1070JSR oscli
 1080 
 1370 
 1380.exit LDX#options MOD 256
 1390LDY#options DIV 256
 1400JSR display
 1410.opba JSR osrdch
 1420BCS esc
 1430CMP#ASC"M"
 1440BEQ menu
 1450CMP#ASC"W"
 1460BEQ watcher
 1470CMP#ASC"Q"
 1480BNE opba
 1490JMP(&FFFC)
 1500.esc LDA#&7E
 1505JSR osbyte
 1510JMP opba
 1515.menu LDX#run_menu MOD 256
 1520LDY#run_menu DIV 256
 1525JMP oscli
 1530.run_menu EQUS"RUN MENU":EQUB&D
 1535.watcher LDX#run_watch MOD 256
 1540LDY#run_watch DIV 256
 1545JMP oscli
 1550.run_watch EQUS"RUN WATCH":EQUB&D
 1580.options EQUW&D0A
 1582EQUS"M - Main Menu"
 1583EQUW&D0A
 1584EQUS"W - Watcher"
 1585EQUW&D0A
 1586EQUS"Q - Quit"
 1587EQUW&FF
 1590 
 1600.display STX&74
 1610STY&75
 1620.display2 LDY#0
 1630.dback LDA(&74),Y
 1640CMP#&FF
 1650BEQ dfor
 1660JSR oswrch
 1670INY
 1680JMP dback
 1690.dfor RTS
 1700.del_nw EQUS"DELETE "+nw$+CHR$(13)
 1710.del_nw2 EQUS"DELETE "+nw2$+CHR$(13)
 1720.del_dic EQUS"DELETE "+diction$+CHR$(13)
 1730.ren_new EQUS"RENAME "+new$+" "+diction$+CHR$(13)
 1800.sure EQUW&D0A:EQUW&D0A
 1801EQUS"Watcher Sort Program":EQUW&D0A:EQUS"(C) Allan Kelly 1988"
 1802EQUW&D0A
 1805EQUS"Merge Dictionary and Newords"
 1810EQUW&D0A
 1820EQUS"Are you sure? (Y/N)"
 1830EQUW&D0A
 1840EQUB&FF
 1850 
 1860.gogo EQUW&D0A
 1870EQUS"Sorting Neword file into Alpha order"
 1880EQUW&D0A
 1890EQUB&FF
 1900.merge_mess EQUD&D0A
 1901EQUS"Merging Newords and Dictionary"
 1910EQUW&D0A
 1920EQUB&FF
 1930.del_ren EQUW&D0A
 1940EQUS"Deleting and renaming files"
 1945EQUW&D0A
 1950EQUB&FF
 2030 
 2140.compare \ Compare words - A=rword len Y=word len
 2150PHA
 2160LDA rword
 2170CMP#ASC"`"
 2180BNE comfo
 2190PLA
 2200LDA#0
 2210STA flag
 2220RTS
 2230 
 2240.comfo LDA#ASC"."
 2250JSR oswrch
 2260PLA
 2270STY word_length
 2280STA rword_length
 2290CMP word_length
 2300BNE comfo1
 2310LDY#0
 2320.comba1 LDA rword,Y
 2330CMP word,Y
 2340BNE comfo2
 2350INY
 2360CPY word_length
 2370BNE comba1
 2380LDA#&FF \ flag=&FF = same
 2390STA flag
 2400RTS
 2410 
 2420.comfo1 LDY#0
 2430.comba2 LDA rword,Y
 2440CMP word,Y
 2450BNE comfo2
 2460INY
 2470CPY rword_length
 2480BPL comfo2
 2490CPY word_length
 2500BPL comfo2
 2510JMP comba2
 2520.comfo2 LDA word,Y
 2530CMP rword,Y
 2540BCC comfo3
 2550LDA#1 \ word$ after x$ =1
 2560STA flag
 2570RTS
 2580.comfo3 LDA#0 \ word$ before x$ =0
 2590STA flag
 2600RTS
 2610.flag BRK
 2620.word EQUS"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 2630.word_length BRK
 2640.rword EQUS"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 2650.rword_length BRK
 2660 
 2670.count LDA#0 \ Count words in NW allowing for ` deleted words
 2690STA&70
 2700STA&71
 2710STA&72
 2720STA&73
 2730STA&74
 2740STA&75
 2750STA&76
 2760 
 2770LDY nw_handle
 2772JSR osbget
 2774CMP#&FF
 2776BNE co_exit
 2780 
 2790.co_back JSR osbget
 2800CMP#&FF
 2810BEQ co_exit
 2820STA len
 2830JSR osbget
 2840CMP#ASC"`"
 2850BEQ co_jump
 2860 
 2870LDA&74
 2880CLC
 2890ADC#1
 2900STA&74
 2910LDA&75
 2920ADC#0
 2930STA&75
 2940LDA&76
 2950ADC#0
 2960STA&76
 2970 
 2980.co_jump LDA#0
 2990LDX#&70
 3000JSR osargs
 3010LDA&70
 3020CLC
 3030ADC len
 3040STA&70
 3050LDA&71
 3060ADC#0
 3070STA&71
 3080LDA&72
 3090ADC#0
 3100STA&72
 3110LDA&73
 3120ADC#0
 3130STA&73
 3140LDA#1
 3150JSR osargs
 3160JMP co_back
 3170.co_exit RTS
 3180 
 3300.dest LDA#1 \ Destroy string
 3310LDX#&78 \ Y%=file
 3320JSR osargs
 3330JSR osbget
 3340LDA#ASC"`"
 3350JMP osbput
 3420.rs LDA#1 \ Read string from NW file
 3430LDX#&89
 3440JSR osargs
 3450JSR osbget
 3460CLC
 3470ADC#1
 3480STA&85
 3490STY&80
 3500LDX#string MOD 256
 3510STX&81
 3520LDY#string DIV 256
 3530STY&82
 3540LDA#4
 3550LDX#&80
 3560LDY#0
 3570STY&83
 3580STY&84
 3590STY&86
 3600STY&87
 3610STY&88
 3620JMP osgbpb
 3630.string EQUS"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 3640 
 3650.rd \ Read Dictionary Y%=file
 3660LDA#1
 3670LDX#&70
 3680JSR osargs
 3690LDX#0
 3700.rdba JSR osbget
 3710PHA
 3720AND#127
 3730STA string,X
 3740INX
 3750PLA
 3760BPL rdba
 3770LDA#&D
 3780STA string,X
 3790RTS
 3800 
 3810.ws LDX#0 \ Write sting to NW file Y%=file
 3820.wsba LDA word,X
 3830INX
 3840CMP#&D
 3850BNE wsba
 3860DEX
 3870TXA
 3880JSR osbput
 3890LDX#0
 3900.wsba2 LDA word,X
 3910JSR osbput
 3915JSR oswrch
 3920INX
 3930CMP#&D
 3940BNE wsba2
 3945JSR osnewl
 3950RTS
 3960 
 3970.wd \ Write dictionary y%=file
 3980JSR osnewl
 3990 
 4000LDX#0
 4010.wdba LDA word,X
 4020INX
 4030CMP#&D
 4040BNE wdba
 4050DEX
 4060DEX
 4070STX len
 4080CPX#0
 4090BEQ wdfo
 4100 
 4110LDX#0
 4120.wdba2 LDA word,X
 4130JSR osbput
 4140JSR oswrch
 4150INX
 4160CPX len
 4170BNE wdba2
 4180 
 4190.wdfo LDA word,X
 4200JSR oswrch
 4210ORA#128
 4220JSR osbput
 4230RTS
 4240.len BRK
 4280 
 4300.sort_nw LDA#&C0
 4310LDY#nw_name DIV 256
 4320LDX#nw_name MOD 256
 4330JSR osfind
 4340CMP#0
 4350BEQ no_file
 4360STA nw_handle
 4361 
 4362TAY \ Read EXT
 4363LDA#2
 4364LDX#&89
 4365JSR osargs
 4366LDA&89
 4367SEC
 4368SBC#1
 4369STA ext_nw
 4370LDA&8A
 4371SBC#0
 4372STA ext_nw+1
 4373LDA&8B
 4374SBC#0
 4375STA ext_nw+2
 4376LDA&8C
 4377SBC#0
 4378STA ext_nw+2
 4380LDA#&80
 4390LDY#nw2_name DIV 256
 4400LDX#nw2_name MOD 256
 4410JSR osfind
 4420CMP#0
 4430BNE ok_file
 4440.no_file LDX#fnf MOD26
 4450LDY#fnf DIV 256
 4460JSR display
 4470JMP exit
 4480.fnf EQUW&D0A
 4485EQUS"File not found"
 4490EQUB&FF
 4500.nw_name EQUS nw$
 4510EQUB&D
 4520.nw2_name EQUS nw2$
 4530EQUB&D
 4540.nw_handle BRK
 4550.nw2_handle BRK
 4555.ext_nw EQUD0
 4560 
 4570.ok_file STA nw2_handle
 4590JSR count
 4591LDA&74
 4592BNE sortba1
 4593LDA&75
 4594BNE sortba1
 4595LDA&76
 4596BNE sortba1
 4597JMP no_words
 4600 
 4610.sortba1
 4620LDA#1
 4630STA&78
 4635STA&89
 4640LDA#0
 4650STA&79
 4660STA&7A
 4670STA&7B
 4680STA&8A
 4690STA&8B
 4700STA&8C
 4710 
 4720LDY nw_handle
 4730JSR rs
 4740LDX#0
 4750.soba1 LDA string,X
 4760STA word,X
 4770INX
 4780CMP#&D
 4790BNE soba1
 4810STX word_length
 4820 
 4850.sortba2
 4860LDA#0
 4870LDX#&7C
 4880LDY nw_handle
 4890JSR osargs
 4900 
 4910LDA&7C
 4920STA&89
 4930LDA&7D
 4940STA&8A
 4950LDA&7E
 4960STA&8B
 4970LDA&7F
 4980STA&8C
 4990JSR rs
 5000 
 5010LDX#0
 5020.soba2 LDA string,X
 5030STA rword,X
 5040INX
 5050CMP#&D
 5060BNE soba2
 5070TXA
 5071TAY
 5080LDA word_length
 5090JSR compare
 5100 
 5110CMP#1
 5120BNE sofo1
 5130LDA&7C
 5140STA&78
 5150LDA&7D
 5160STA&79
 5170LDA&7E
 5180STA&7A
 5190LDA&7F
 5200STA&7B
 5210LDX#0
 5220.soba3 LDA rword,X
 5230STA word,X
 5240INX
 5250CMP#&D
 5260BNE soba3
 5270 
 5280.sofo1 LDA#0
 5290LDX#&89
 5300LDY nw_handle
 5310JSR osargs
 5320LDA&8C
 5330CMP ext_nw+3
 5340BCC sortba2
 5350LDA&8B
 5360CMP ext_nw+2
 5370BCC sortba2
 5380LDA&8A
 5390CMP ext_nw+1
 5395BCC sortba2
 5400LDA&89
 5410CMP ext_nw
 5420BCC sortba2
 5460 
 5470LDY nw2_handle
 5480JSR wd
 5485LDY nw_handle
 5490JSR dest \ Destroy word
 5500 
 5510LDA&74 \ words=words-1
 5520SEC
 5530SBC#1
 5540STA&74
 5550LDA&75
 5560SBC#0
 5570STA&75
 5580LDA&76
 5590SBC#0
 5600STA&76
 5640 
 5650LDA&74
 5660BNE sofo2
 5670LDA&75
 5680BNE sofo2
 5690LDA&76
 5700BNE sofo2
 5730 
 5740LDA#0
 5750LDY nw_handle
 5760JSR osfind
 5770LDY nw2_handle
 5780JSR osfind
 5790RTS
 5800 
 5810.sofo2 JMP sortba1
 5820 
 5900.merge \ Merge New2 and Diction into Newtion
 5910 
 5920LDA#&40
 5930LDX#diction MOD 256
 5940LDY#diction DIV 256
 5950JSR osfind
 5960CMP#0
 5970BNE mefo1
 5980.meba1 JMP no_file
 5990.mefo1 STA diction_file
 6000 
 6010LDA#&40
 6020LDX#nw2_name MOD 256
 6030LDY#nw2_name DIV 256
 6040JSR osfind
 6050CMP#0
 6060BEQ meba1
 6070STA new_file
 6080 
 6090LDA#&80
 6100LDX#newtion MOD 256
 6110LDY#newtion DIV 256
 6120JSR osfind
 6130CMP#0
 6140BEQ meba1
 6150STA newtion_file
 6160TAY
 6170LDA#(3*27)+1
 6180STA&70
 6185STA&74
 6190LDA#0
 6200STA&71
 6210STA&72
 6220STA&73
 6222STA&75
 6224STA&76
 6226STA&77
 6230LDA#1
 6240LDX#&70
 6250JSR osargs
 6260 
 6270LDA#65
 6280STA current_letter
 6290 
 6300JMP mergeba1
 6310 
 6320.diction EQUS diction$
 6330EQUB&D
 6340.newtion EQUS new$
 6350EQUB&D
 6360.diction_file BRK
 6370.new_file BRK
 6380.newtion_file BRK
 6385.current_letter BRK
 6390 
 6500.mergeba1
 6510LDA#0
 6520LDX#&70
 6530LDY new_file
 6540JSR osargs
 6550JSR rd
 6560LDX#0
 6570.meba2 LDA string,X
 6580STA word,X
 6590INX
 6600CMP#&D
 6610BNE meba2
 6620DEX
 6630STX word_length
 6640 
 6650LDA#1
 6660LDX#&74
 6670LDY diction_file
 6680JSR osargs
 6690 
 6700.mergeba2
 6710LDA#0
 6720LDX#&74
 6730LDY diction_file
 6740JSR osargs
 6750LDA&74
 6760STA&70
 6770LDA&75
 6780STA&71
 6790LDA&76
 6800STA&72
 6810LDA&77
 6820STA&73
 6830LDY diction_file
 6840JSR rd
 6850LDX#0
 6860.meba3 LDA string,X
 6870STA rword,X
 6880INX
 6890CMP#&D
 6900BNE meba3
 6910DEX
 6920TXA
 6930LDY word_length
 6940JSR compare
 6960CMP#1
 6970BNE mefo7
 6972JSR write_diction2
 6980LDA#&7F
 6982LDX diction_file
 6984JSR osbyte
 6986CPX#0
 6988BEQ mergeba2
 6990JMP mefo4
 7050 
 7080.mefo7 LDY newtion_file
 7085JSR write_diction
 7090 
 7100.mefo3 LDA#&7F
 7110LDX diction_file
 7120JSR osbyte
 7130CPX#0
 7140BNE mefo4
 7150 
 7160LDX new_file
 7170JSR osbyte
 7180CPX#0
 7190BNE mefo5
 7200 
 7210JMP mergeba1
 7220 
 7230.mefo4 JSR zeds
 7240JMP mefo6
 7250.mefo5 JSR last_of_diction
 7260 
 7270.mefo6 JSR write_table
 7280LDA#0
 7290LDY#0
 7300JSR osfind
 7310RTS
 7320 
 7400.wd2 \ Special version of write dictionary (wd) only to be used by merge
 7410JSR osnewl
 7420 
 7430LDX#0
 7440.wd2ba LDA rword,X
 7450INX
 7460CMP#&D
 7470BNE wd2ba
 7480DEX
 7490DEX
 7500STX len
 7505LDY newtion_file
 7510CPX#0
 7520BEQ wd2fo
 7530 
 7540LDX#0
 7560.wd2ba2 LDA rword,X
 7570JSR osbput
 7580JSR oswrch
 7590INX
 7600CPX len
 7610BNE wd2ba2
 7620 
 7630.wd2fo LDA rword,X
 7640JSR oswrch
 7650ORA#128
 7660JSR osbput
 7670RTS
 7680 
 7690.zeds JSR write_diction
 7691JMP zedfo
 7700.zedsba LDA#0
 7710LDX#&70
 7720LDY new_file
 7730JSR osargs
 7740JSR rd
 7750LDX#0
 7760.zedba LDA string,X
 7770STA rword,X
 7780INX
 7790CMP#&D
 7800BNE zedba
 7810LDY newtion_file
 7820JSR write_diction2
 7830.zedfo LDA#&7F
 7840LDX new_file
 7850JSR osbyte
 7860CPX#0
 7870BEQ zedsba
 7880RTS
 7890 
 7900.last_of_diction LDA&74
 7910STA&70
 7920LDA&75
 7930STA&71
 7940LDA&76
 7950STA&72
 7960LDA&77
 7970STA&73
 7980LDY diction_file
 7990JSR rd
 8000LDY diction_file
 8010LDA#0
 8020LDX#&74
 8030JSR osargs
 8040LDX#0
 8050.lof LDA string,X
 8060STA word,X
 8070INX
 8080CMP#&D
 8090BNE lof
 8100LDY newtion_file
 8110JSR write_diction
 8120LDA#&7F
 8130LDX diction_file
 8140JSR osbyte
 8150CPX#0
 8160BEQ last_of_diction
 8170RTS
 8180 
 8190.write_diction LDA word
 8200CMP current_letter
 8210BEQ wrfo
 8220STA current_letter
 8230SEC
 8240SBC#65
 8245STA sa
 8250CLC
 8260ADC sa
 8270ADC sa
 8280PHA
 8290LDX#&70
 8300LDA#0
 8305LDY newtion_file
 8310JSR osargs
 8320PLA
 8330TAX
 8340LDA&70
 8350STA table,X
 8360LDA&71
 8370STA table+1,X
 8380LDA&72
 8390STA table+2,X
 8400 
 8410.wrfo JMP wd
 8420 
 8430.write_diction2 LDA rword
 8440CMP current_letter
 8450BEQ wr2fo
 8460STA current_letter
 8470SEC
 8480SBC#65
 8485STA sa
 8490CLC
 8500ADC sa
 8510ADC sa
 8520PHA
 8530LDX#&70
 8540LDA#0
 8545LDY newtion_file
 8550JSR osargs
 8560PLA
 8570TAX
 8580LDA&70
 8590STA table,X
 8600LDA&71
 8610STA table+1,X
 8620LDA&72
 8630STA table+2,X
 8640 
 8650.wr2fo JMP wd2
 8660 
 8670.table EQUB (27*3)+1
 8680OPT FNspace(82,0)
 8685.sa BRK
 8690 
 8700.write_table LDA#2
 8701LDY newtion_file
 8702LDX#&70
 8703JSR osargs
 8705LDA&70
 8706STA table+78
 8707LDA&71
 8708STA table+79
 8709LDA&72
 8710STA table+80
 8711LDA#0
 8720STA&70
 8730STA&71
 8740STA&72
 8750STA&73
 8760LDX#&70
 8770LDY newtion_file
 8780LDA#1
 8790JSR osargs
 8800 
 8810LDX#0
 8820.wtba LDA table,X
 8830JSR osbput
 8840INX
 8850CPX#81
 8860BNE wtba
 8861LDA#&FF
 8862JSRosbput
 8870RTS
 9000]
 9010NEXT
 9015PRINT"Saving Sort"
 9020x=FNos_save("U.SORT",start,start,start,P%)
 9030END
 9040 
 9100DEFFNos_save(file$,load%,exec%,start%,end%)
 9110A%=0
 9120X%=data% MOD 256
 9130Y%=data% DIV 256
 9140!data%=data%+18
 9150!(data%+2)=load%
 9160!(data%+6)=exec%
 9170!(data%+10)=start%
 9180!(data%+14)=end%
 9190$(data%+18)=file$
 9200:=USR&FFDD AND&3
 9210 
 9900DEFFNspace(x,y)
 9910FOR P%=P% TO P%+x:?P%=0:NEXT
 9920:=pass

� Watcher Spelling Checker
'� (C) Allan Kelly 25/6/87 - 17/3/88
� Watcher Sort Prorgam
( 
Z� data% 32
dnw$="C.NEWORDS"
inw2$="C.NEW2"
ndiction$="C.DICTION"
xnew$="C.NEWTION"
� 
�osargs=&FFDA
�osbget=&FFD7
�osbput=&FFD4
�oswrch=&FFEE
�osnewl=&FFE7
�osgbpb=&FFD1
osfind=&FFCE
osbyte=&FFF4
osrdch=&FFE0
oscli=&FFF7
 
,� pass=0 � 2 � 2
6P%=&7000
;start=P%
@[
JOPT pass
�LDX#sure � 256
�LDY#sure � 256
�JSR display
�.suba JSR osrdch
�CMP#�"Y"
�BEQ sufo
�CMP#�"N"
�BNE suba
�JMP exit
� 
�.sufo LDA#15
�JSR oswrch
�LDA#&40
�LDX#nw_name � 256
�LDY#nw_name � 256
�JSR osfind
	CMP#0

BNE sufo2
JMP no_file
&.sufo2 TAY
+JSR osbget
0	CMP#0
:
BNE sufo3
DLDX#no_words � 256
NLDY#no_words � 256
XJSR display
bJMP exit
l.no_words EQUW&D0A
m!EQUS"No words in Neword file"
nEQUB&FF
v 
�.sufo3 LDA#0
�JSR osfind
� 
�LDA#&40
�LDX#diction � 256
�LDY#diction � 256
�JSR osfind
�	CMP#0
�
BNE sufo4
�JMP no_file
�.sufo4 TAY
	LDA#0
JSR osfind
 
 LDX#gogo � 256
*LDY#gogo � 256
4JSR display
> 
HJSR sort_nw
J*LDX#del_nw � 256 \ Delete newords file
KLDY#del_nw � 256
L
JSR oscli
R 
\LDX#merge_mess � 256
fLDY#merge_mess � 256
pJSR display
z 
�
JSR merge
� 
�LDX#del_ren � 256
�LDY#del_ren � 256
�JSR display
� 
�LDX#del_nw2 � 256
�LDY#del_nw2 � 256
�
JSR oscli
�LDX#del_dic � 256
LDY#del_dic � 256

JSR oscli
LDX#ren_new � 256
$LDY#ren_new � 256
.
JSR oscli
8 
Z 
d.exit LDX#options � 256
nLDY#options � 256
xJSR display
�.opba JSR osrdch
�BCS esc
�CMP#�"M"
�BEQ menu
�CMP#�"W"
�BEQ watcher
�CMP#�"Q"
�BNE opba
�JMP(&FFFC)
�.esc LDA#&7E
�JSR osbyte
�JMP opba
�.menu LDX#run_menu � 256
�LDY#run_menu � 256
�
JMP oscli
�#.run_menu EQUS"RUN MENU":EQUB&D
� .watcher LDX#run_watch � 256
LDY#run_watch � 256
	
JMP oscli
%.run_watch EQUS"RUN WATCH":EQUB&D
,.options EQUW&D0A
.EQUS"M - Main Menu"
/EQUW&D0A
0EQUS"W - Watcher"
1EQUW&D0A
2EQUS"Q - Quit"
3EQUW&FF
6 
@.display STX&74
J
STY&75
T.display2 LDY#0
^.dback LDA(&74),Y
hCMP#&FF
rBEQ dfor
|JSR oswrch
�INY
�
JMP dback
�
.dfor RTS
�#.del_nw EQUS"DELETE "+nw$+�(13)
�%.del_nw2 EQUS"DELETE "+nw2$+�(13)
�).del_dic EQUS"DELETE "+diction$+�(13)
�2.ren_new EQUS"RENAME "+new$+" "+diction$+�(13)
.sure EQUW&D0A:EQUW&D0A
	BEQUS"Watcher Sort Program":EQUW&D0A:EQUS"(C) Allan Kelly 1988"

EQUW&D0A

&EQUS"Merge Dictionary and Newords"
EQUW&D0A
EQUS"Are you sure? (Y/N)"
&EQUW&D0A
0EQUB&FF
: 
D.gogo EQUW&D0A
N.EQUS"Sorting Neword file into Alpha order"
XEQUW&D0A
bEQUB&FF
l.merge_mess EQUD&D0A
m(EQUS"Merging Newords and Dictionary"
vEQUW&D0A
�EQUB&FF
�.del_ren EQUW&D0A
�%EQUS"Deleting and renaming files"
�EQUW&D0A
�EQUB&FF
� 
\5.compare \ Compare words - A=rword len Y=word len
fPHA
p
LDA rword
zCMP#�"`"
�
BNE comfo
�PLA
�	LDA#0
�STA flag
�RTS
� 
�.comfo LDA#�"."
�JSR oswrch
�PLA
�STY word_length
�STA rword_length
�CMP word_length
�BNE comfo1
		LDY#0
	.comba1 LDA rword,Y
	CMP word,Y
	$BNE comfo2
	.INY
	8CPY word_length
	BBNE comba1
	LLDA#&FF \ flag=&FF = same
	VSTA flag
	`RTS
	j 
	t.comfo1 LDY#0
	~.comba2 LDA rword,Y
	�CMP word,Y
	�BNE comfo2
	�INY
	�CPY rword_length
	�BPL comfo2
	�CPY word_length
	�BPL comfo2
	�JMP comba2
	�.comfo2 LDA word,Y
	�CMP rword,Y
	�BCC comfo3
	�LDA#1 \ word$ after x$ =1
STA flag

RTS
&.comfo3 LDA#0 \ word$ before x$ =0
STA flag
(RTS
2
.flag BRK
<*.word EQUS"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
F.word_length BRK
P+.rword EQUS"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Z.rword_length BRK
d 
nA.count LDA#0 \ Count words in NW allowing for ` deleted words
�
STA&70
�
STA&71
�
STA&72
�
STA&73
�
STA&74
�
STA&75
�
STA&76
� 
�LDY nw_handle
�JSR osbget
�CMP#&FF
�BNE co_exit
� 
�.co_back JSR osbget
�CMP#&FF
�BEQ co_exit
STA len
JSR osbget
CMP#�"`"
"BEQ co_jump
, 
6
LDA&74
@CLC
J	ADC#1
T
STA&74
^
LDA&75
h	ADC#0
r
STA&75
|
LDA&76
�	ADC#0
�
STA&76
� 
�.co_jump LDA#0
�LDX#&70
�JSR osargs
�
LDA&70
�CLC
�ADC len
�
STA&70
�
LDA&71
�	ADC#0
�
STA&71

LDA&72
	ADC#0

STA&72
&
LDA&73
0	ADC#0
:
STA&73
D	LDA#1
NJSR osargs
XJMP co_back
b.co_exit RTS
l 
� .dest LDA#1 \ Destroy string
�LDX#&78 \ Y%=file
�JSR osargs

JSR osbget

LDA#�"`"

JMP osbput

\(.rs LDA#1 \ Read string from NW file

fLDX#&89

pJSR osargs

zJSR osbget

�CLC

�	ADC#1

�
STA&85

�
STY&80

�LDX#string � 256

�
STX&81

�LDY#string � 256

�
STY&82

�	LDA#4

�LDX#&80

�	LDY#0

�
STY&83

�
STY&84

STY&86

STY&87

STY&88
$JMP osgbpb
.,.string EQUS"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
8 
B!.rd \ Read Dictionary Y%=file
L	LDA#1
VLDX#&70
`JSR osargs
j	LDX#0
t.rdba JSR osbget
~PHA
�	�#127
�STA string,X
�INX
�PLA
�BPL rdba
�
LDA#&D
�STA string,X
�RTS
� 
�..ws LDX#0 \ Write sting to NW file Y%=file
�.wsba LDA word,X
�INX

CMP#&D

BNE wsba
DEX
TXA
(JSR osbput
2	LDX#0
<.wsba2 LDA word,X
FJSR osbput
KJSR oswrch
PINX
Z
CMP#&D
d
BNE wsba2
iJSR osnewl
nRTS
x 
�".wd \ Write dictionary y%=file
�JSR osnewl
� 
�	LDX#0
�.wdba LDA word,X
�INX
�
CMP#&D
�BNE wdba
�DEX
�DEX
�STX len
�	CPX#0
�BEQ wdfo
 
	LDX#0
.wdba2 LDA word,X
"JSR osbput
,JSR oswrch
6INX
@CPX len
J
BNE wdba2
T 
^.wdfo LDA word,X
hJSR oswrch
r
�A#128
|JSR osbput
�RTS
�.len BRK
� 
�.sort_nw LDA#&C0
�LDY#nw_name � 256
�LDX#nw_name � 256
�JSR osfind
�	CMP#0
�BEQ no_file
STA nw_handle
	 

TAY \ Read �
	LDA#2
LDX#&89

JSR osargs

LDA&89
SEC
	SBC#1
STA ext_nw

LDA&8A
	SBC#0
STA ext_nw+1

LDA&8B
	SBC#0
STA ext_nw+2

LDA&8C
	SBC#0
STA ext_nw+2
LDA#&80
&LDY#nw2_name � 256
0LDX#nw2_name � 256
:JSR osfind
D	CMP#0
NBNE ok_file
X.no_file LDX#fnf �26
bLDY#fnf � 256
lJSR display
vJMP exit
�.fnf EQUW&D0A
�EQUS"File not found"
�EQUB&FF
�.nw_name EQUS nw$
�
EQUB&D
�.nw2_name EQUS nw2$
�
EQUB&D
�.nw_handle BRK
�.nw2_handle BRK
�.ext_nw EQUD0
� 
�.ok_file STA nw2_handle
�
JSR count
�
LDA&74
�BNE sortba1
�
LDA&75
�BNE sortba1
�
LDA&76
�BNE sortba1
�JMP no_words
� 
.sortba1
	LDA#1

STA&78

STA&89
 	LDA#0
*
STA&79
4
STA&7A
>
STA&7B
H
STA&8A
R
STA&8B
\
STA&8C
f 
pLDY nw_handle
z
JSR rs
�	LDX#0
�.soba1 LDA string,X
�STA word,X
�INX
�
CMP#&D
�
BNE soba1
�STX word_length
� 
�.sortba2
�	LDA#0
LDX#&7C
LDY nw_handle
JSR osargs
$ 
.
LDA&7C
8
STA&89
B
LDA&7D
L
STA&8A
V
LDA&7E
`
STA&8B
j
LDA&7F
t
STA&8C
~
JSR rs
� 
�	LDX#0
�.soba2 LDA string,X
�STA rword,X
�INX
�
CMP#&D
�
BNE soba2
�TXA
�TAY
�LDA word_length
�JSR compare
� 
�	CMP#1

BNE sofo1


LDA&7C

STA&78

LDA&7D
(
STA&79
2
LDA&7E
<
STA&7A
F
LDA&7F
P
STA&7B
Z	LDX#0
d.soba3 LDA rword,X
nSTA word,X
xINX
�
CMP#&D
�
BNE soba3
� 
�.sofo1 LDA#0
�LDX#&89
�LDY nw_handle
�JSR osargs
�
LDA&8C
�CMP ext_nw+3
�BCC sortba2
�
LDA&8B
�CMP ext_nw+2
�BCC sortba2

LDA&8A
CMP ext_nw+1
BCC sortba2

LDA&89
"CMP ext_nw
,BCC sortba2
T 
^LDY nw2_handle
h
JSR wd
mLDY nw_handle
rJSR dest \ Destroy word
| 
�LDA&74 \ words=words-1
�SEC
�	SBC#1
�
STA&74
�
LDA&75
�	SBC#0
�
STA&75
�
LDA&76
�	SBC#0
�
STA&76
 

LDA&74

BNE sofo2
&
LDA&75
0
BNE sofo2
:
LDA&76
D
BNE sofo2
b 
l	LDA#0
vLDY nw_handle
�JSR osfind
�LDY nw2_handle
�JSR osfind
�RTS
� 
�.sofo2 JMP sortba1
� 
0.merge \ Merge New2 and Diction into Newtion
 
 LDA#&40
*LDX#diction � 256
4LDY#diction � 256
>JSR osfind
H	CMP#0
R
BNE mefo1
\.meba1 JMP no_file
f.mefo1 STA diction_file
p 
zLDA#&40
�LDX#nw2_name � 256
�LDY#nw2_name � 256
�JSR osfind
�	CMP#0
�
BEQ meba1
�STA new_file
� 
�LDA#&80
�LDX#newtion � 256
�LDY#newtion � 256
�JSR osfind
�	CMP#0
�
BEQ meba1
STA newtion_file
TAY
LDA#(3*27)+1
$
STA&70
)
STA&74
.	LDA#0
8
STA&71
B
STA&72
L
STA&73
N
STA&75
P
STA&76
R
STA&77
V	LDA#1
`LDX#&70
jJSR osargs
t 
~
LDA#65
�STA current_letter
� 
�JMP mergeba1
� 
�.diction EQUS diction$
�
EQUB&D
�.newtion EQUS new$
�
EQUB&D
�.diction_file BRK
�.new_file BRK
�.newtion_file BRK
�.current_letter BRK
� 
d
.mergeba1
n	LDA#0
xLDX#&70
�LDY new_file
�JSR osargs
�
JSR rd
�	LDX#0
�.meba2 LDA string,X
�STA word,X
�INX
�
CMP#&D
�
BNE meba2
�DEX
�STX word_length
� 
�	LDA#1
LDX#&74
LDY diction_file
JSR osargs
" 
,
.mergeba2
6	LDA#0
@LDX#&74
JLDY diction_file
TJSR osargs
^
LDA&74
h
STA&70
r
LDA&75
|
STA&71
�
LDA&76
�
STA&72
�
LDA&77
�
STA&73
�LDY diction_file
�
JSR rd
�	LDX#0
�.meba3 LDA string,X
�STA rword,X
�INX
�
CMP#&D
�
BNE meba3
�DEX
TXA
LDY word_length
JSR compare
0	CMP#1
:
BNE mefo7
<JSR write_diction2
DLDA#&7F
FLDX diction_file
HJSR osbyte
J	CPX#0
LBEQ mergeba2
N
JMP mefo4
� 
�.mefo7 LDY newtion_file
�JSR write_diction
� 
�.mefo3 LDA#&7F
�LDX diction_file
�JSR osbyte
�	CPX#0
�
BNE mefo4
� 
�LDX new_file
JSR osbyte
	CPX#0

BNE mefo5
  
*JMP mergeba1
4 
>.mefo4 JSR zeds
H
JMP mefo6
R.mefo5 JSR last_of_diction
\ 
f.mefo6 JSR write_table
p	LDA#0
z	LDY#0
�JSR osfind
�RTS
� 
�L.wd2 \ Special version of write dictionary (wd) only to be used by merge
�JSR osnewl
� 
	LDX#0
.wd2ba LDA rword,X
INX
$
CMP#&D
.
BNE wd2ba
8DEX
BDEX
LSTX len
QLDY newtion_file
V	CPX#0
`
BEQ wd2fo
j 
t	LDX#0
�.wd2ba2 LDA rword,X
�JSR osbput
�JSR oswrch
�INX
�CPX len
�BNE wd2ba2
� 
�.wd2fo LDA rword,X
�JSR oswrch
�
�A#128
�JSR osbput
�RTS
 

.zeds JSR write_diction

JMP zedfo
.zedsba LDA#0
LDX#&70
(LDY new_file
2JSR osargs
<
JSR rd
F	LDX#0
P.zedba LDA string,X
ZSTA rword,X
dINX
n
CMP#&D
x
BNE zedba
�LDY newtion_file
�JSR write_diction2
�.zedfo LDA#&7F
�LDX new_file
�JSR osbyte
�	CPX#0
�BEQ zedsba
�RTS
� 
�.last_of_diction LDA&74
�
STA&70
�
LDA&75
�
STA&71

LDA&76

STA&72

LDA&77
"
STA&73
,LDY diction_file
6
JSR rd
@LDY diction_file
J	LDA#0
TLDX#&74
^JSR osargs
h	LDX#0
r.lof LDA string,X
|STA word,X
�INX
�
CMP#&D
�BNE lof
�LDY newtion_file
�JSR write_diction
�LDA#&7F
�LDX diction_file
�JSR osbyte
�	CPX#0
�BEQ last_of_diction
�RTS
� 
�.write_diction LDA word
 CMP current_letter
 BEQ wrfo
 STA current_letter
 &SEC
 0
SBC#65
 5
STA sa
 :CLC
 D
ADC sa
 N
ADC sa
 XPHA
 bLDX#&70
 l	LDA#0
 qLDY newtion_file
 vJSR osargs
 �PLA
 �TAX
 �
LDA&70
 �STA table,X
 �
LDA&71
 �STA table+1,X
 �
LDA&72
 �STA table+2,X
 � 
 �.wrfo JMP wd
 � 
 �.write_diction2 LDA rword
 �CMP current_letter
!
BEQ wr2fo
!STA current_letter
!SEC
! 
SBC#65
!%
STA sa
!*CLC
!4
ADC sa
!>
ADC sa
!HPHA
!RLDX#&70
!\	LDA#0
!aLDY newtion_file
!fJSR osargs
!pPLA
!zTAX
!�
LDA&70
!�STA table,X
!�
LDA&71
!�STA table+1,X
!�
LDA&72
!�STA table+2,X
!� 
!�.wr2fo JMP wd2
!� 
!�.table EQUB (27*3)+1
!�OPT �space(82,0)
!�.sa BRK
!� 
!�.write_table LDA#2
!�LDY newtion_file
!�LDX#&70
!�JSR osargs
"
LDA&70
"STA table+78
"
LDA&71
"STA table+79
"
LDA&72
"STA table+80
"	LDA#0
"
STA&70
"
STA&71
"$
STA&72
".
STA&73
"8LDX#&70
"BLDY newtion_file
"L	LDA#1
"VJSR osargs
"` 
"j	LDX#0
"t.wtba LDA table,X
"~JSR osbput
"�INX
"�
CPX#81
"�BNE wtba
"�LDA#&FF
"�
JSRosbput
"�RTS
#(]
#2�
#7�"Saving Sort"
#<-x=�os_save("U.SORT",start,start,start,P%)
#F�
#P 
#�,ݤos_save(file$,load%,exec%,start%,end%)
#�A%=0
#�X%=data% � 256
#�Y%=data% � 256
#�!data%=data%+18
#�!(data%+2)=load%
#�!(data%+6)=exec%
#�!(data%+10)=start%
#�!(data%+14)=end%
#�$(data%+18)=file$
#�:=�&FFDD �&3
#� 
&�ݤspace(x,y)
&�� P%=P% � P%+x:?P%=0:�
&�
:=pass
�
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 27 f4 20 28 43 29 20  41 6c 6c 61 6e 20 4b 65  |.'. (C) Allan Ke|
00000030  6c 6c 79 20 32 35 2f 36  2f 38 37 20 2d 20 31 37  |lly 25/6/87 - 17|
00000040  2f 33 2f 38 38 0d 00 1e  1a f4 20 57 61 74 63 68  |/3/88..... Watch|
00000050  65 72 20 53 6f 72 74 20  50 72 6f 72 67 61 6d 0d  |er Sort Prorgam.|
00000060  00 28 05 20 0d 00 5a 0e  de 20 64 61 74 61 25 20  |.(. ..Z.. data% |
00000070  33 32 0d 00 64 13 6e 77  24 3d 22 43 2e 4e 45 57  |32..d.nw$="C.NEW|
00000080  4f 52 44 53 22 0d 00 69  11 6e 77 32 24 3d 22 43  |ORDS"..i.nw2$="C|
00000090  2e 4e 45 57 32 22 0d 00  6e 18 64 69 63 74 69 6f  |.NEW2"..n.dictio|
000000a0  6e 24 3d 22 43 2e 44 49  43 54 49 4f 4e 22 0d 00  |n$="C.DICTION"..|
000000b0  78 14 6e 65 77 24 3d 22  43 2e 4e 45 57 54 49 4f  |x.new$="C.NEWTIO|
000000c0  4e 22 0d 00 a0 05 20 0d  00 c8 10 6f 73 61 72 67  |N".... ....osarg|
000000d0  73 3d 26 46 46 44 41 0d  00 d2 10 6f 73 62 67 65  |s=&FFDA....osbge|
000000e0  74 3d 26 46 46 44 37 0d  00 dc 10 6f 73 62 70 75  |t=&FFD7....osbpu|
000000f0  74 3d 26 46 46 44 34 0d  00 e6 10 6f 73 77 72 63  |t=&FFD4....oswrc|
00000100  68 3d 26 46 46 45 45 0d  00 f0 10 6f 73 6e 65 77  |h=&FFEE....osnew|
00000110  6c 3d 26 46 46 45 37 0d  00 fa 10 6f 73 67 62 70  |l=&FFE7....osgbp|
00000120  62 3d 26 46 46 44 31 0d  01 04 10 6f 73 66 69 6e  |b=&FFD1....osfin|
00000130  64 3d 26 46 46 43 45 0d  01 0e 10 6f 73 62 79 74  |d=&FFCE....osbyt|
00000140  65 3d 26 46 46 46 34 0d  01 13 10 6f 73 72 64 63  |e=&FFF4....osrdc|
00000150  68 3d 26 46 46 45 30 0d  01 14 0f 6f 73 63 6c 69  |h=&FFE0....oscli|
00000160  3d 26 46 46 46 37 0d 01  18 05 20 0d 01 2c 14 e3  |=&FFF7.... ..,..|
00000170  20 70 61 73 73 3d 30 20  b8 20 32 20 88 20 32 0d  | pass=0 . 2 . 2.|
00000180  01 36 0c 50 25 3d 26 37  30 30 30 0d 01 3b 0c 73  |.6.P%=&7000..;.s|
00000190  74 61 72 74 3d 50 25 0d  01 40 05 5b 0d 01 4a 0c  |tart=P%..@.[..J.|
000001a0  4f 50 54 20 70 61 73 73  0d 01 90 12 4c 44 58 23  |OPT pass....LDX#|
000001b0  73 75 72 65 20 83 20 32  35 36 0d 01 9a 12 4c 44  |sure . 256....LD|
000001c0  59 23 73 75 72 65 20 81  20 32 35 36 0d 01 a4 0f  |Y#sure . 256....|
000001d0  4a 53 52 20 64 69 73 70  6c 61 79 0d 01 ae 14 2e  |JSR display.....|
000001e0  73 75 62 61 20 4a 53 52  20 6f 73 72 64 63 68 0d  |suba JSR osrdch.|
000001f0  01 b8 0c 43 4d 50 23 97  22 59 22 0d 01 c2 0c 42  |...CMP#."Y"....B|
00000200  45 51 20 73 75 66 6f 0d  01 cc 0c 43 4d 50 23 97  |EQ sufo....CMP#.|
00000210  22 4e 22 0d 01 d1 0c 42  4e 45 20 73 75 62 61 0d  |"N"....BNE suba.|
00000220  01 d2 0c 4a 4d 50 20 65  78 69 74 0d 01 d6 05 20  |...JMP exit.... |
00000230  0d 01 e0 10 2e 73 75 66  6f 20 4c 44 41 23 31 35  |.....sufo LDA#15|
00000240  0d 01 e1 0e 4a 53 52 20  6f 73 77 72 63 68 0d 01  |....JSR oswrch..|
00000250  e5 0b 4c 44 41 23 26 34  30 0d 01 ea 15 4c 44 58  |..LDA#&40....LDX|
00000260  23 6e 77 5f 6e 61 6d 65  20 83 20 32 35 36 0d 01  |#nw_name . 256..|
00000270  f4 15 4c 44 59 23 6e 77  5f 6e 61 6d 65 20 81 20  |..LDY#nw_name . |
00000280  32 35 36 0d 01 fe 0e 4a  53 52 20 6f 73 66 69 6e  |256....JSR osfin|
00000290  64 0d 02 08 09 43 4d 50  23 30 0d 02 12 0d 42 4e  |d....CMP#0....BN|
000002a0  45 20 73 75 66 6f 32 0d  02 1c 0f 4a 4d 50 20 6e  |E sufo2....JMP n|
000002b0  6f 5f 66 69 6c 65 0d 02  26 0e 2e 73 75 66 6f 32  |o_file..&..sufo2|
000002c0  20 54 41 59 0d 02 2b 0e  4a 53 52 20 6f 73 62 67  | TAY..+.JSR osbg|
000002d0  65 74 0d 02 30 09 43 4d  50 23 30 0d 02 3a 0d 42  |et..0.CMP#0..:.B|
000002e0  4e 45 20 73 75 66 6f 33  0d 02 44 16 4c 44 58 23  |NE sufo3..D.LDX#|
000002f0  6e 6f 5f 77 6f 72 64 73  20 83 20 32 35 36 0d 02  |no_words . 256..|
00000300  4e 16 4c 44 59 23 6e 6f  5f 77 6f 72 64 73 20 81  |N.LDY#no_words .|
00000310  20 32 35 36 0d 02 58 0f  4a 53 52 20 64 69 73 70  | 256..X.JSR disp|
00000320  6c 61 79 0d 02 62 0c 4a  4d 50 20 65 78 69 74 0d  |lay..b.JMP exit.|
00000330  02 6c 16 2e 6e 6f 5f 77  6f 72 64 73 20 45 51 55  |.l..no_words EQU|
00000340  57 26 44 30 41 0d 02 6d  21 45 51 55 53 22 4e 6f  |W&D0A..m!EQUS"No|
00000350  20 77 6f 72 64 73 20 69  6e 20 4e 65 77 6f 72 64  | words in Neword|
00000360  20 66 69 6c 65 22 0d 02  6e 0b 45 51 55 42 26 46  | file"..n.EQUB&F|
00000370  46 0d 02 76 05 20 0d 02  80 10 2e 73 75 66 6f 33  |F..v. .....sufo3|
00000380  20 4c 44 41 23 30 0d 02  9e 0e 4a 53 52 20 6f 73  | LDA#0....JSR os|
00000390  66 69 6e 64 0d 02 a8 05  20 0d 02 b2 0b 4c 44 41  |find.... ....LDA|
000003a0  23 26 34 30 0d 02 bc 15  4c 44 58 23 64 69 63 74  |#&40....LDX#dict|
000003b0  69 6f 6e 20 83 20 32 35  36 0d 02 c6 15 4c 44 59  |ion . 256....LDY|
000003c0  23 64 69 63 74 69 6f 6e  20 81 20 32 35 36 0d 02  |#diction . 256..|
000003d0  d0 0e 4a 53 52 20 6f 73  66 69 6e 64 0d 02 da 09  |..JSR osfind....|
000003e0  43 4d 50 23 30 0d 02 e4  0d 42 4e 45 20 73 75 66  |CMP#0....BNE suf|
000003f0  6f 34 0d 02 ee 0f 4a 4d  50 20 6e 6f 5f 66 69 6c  |o4....JMP no_fil|
00000400  65 0d 02 f8 0e 2e 73 75  66 6f 34 20 54 41 59 0d  |e.....sufo4 TAY.|
00000410  03 02 09 4c 44 41 23 30  0d 03 0c 0e 4a 53 52 20  |...LDA#0....JSR |
00000420  6f 73 66 69 6e 64 0d 03  16 05 20 0d 03 20 12 4c  |osfind.... .. .L|
00000430  44 58 23 67 6f 67 6f 20  83 20 32 35 36 0d 03 2a  |DX#gogo . 256..*|
00000440  12 4c 44 59 23 67 6f 67  6f 20 81 20 32 35 36 0d  |.LDY#gogo . 256.|
00000450  03 34 0f 4a 53 52 20 64  69 73 70 6c 61 79 0d 03  |.4.JSR display..|
00000460  3e 05 20 0d 03 48 0f 4a  53 52 20 73 6f 72 74 5f  |>. ..H.JSR sort_|
00000470  6e 77 0d 03 4a 2a 4c 44  58 23 64 65 6c 5f 6e 77  |nw..J*LDX#del_nw|
00000480  20 83 20 32 35 36 20 5c  20 44 65 6c 65 74 65 20  | . 256 \ Delete |
00000490  6e 65 77 6f 72 64 73 20  66 69 6c 65 0d 03 4b 14  |newords file..K.|
000004a0  4c 44 59 23 64 65 6c 5f  6e 77 20 81 20 32 35 36  |LDY#del_nw . 256|
000004b0  0d 03 4c 0d 4a 53 52 20  6f 73 63 6c 69 0d 03 52  |..L.JSR oscli..R|
000004c0  05 20 0d 03 5c 18 4c 44  58 23 6d 65 72 67 65 5f  |. ..\.LDX#merge_|
000004d0  6d 65 73 73 20 83 20 32  35 36 0d 03 66 18 4c 44  |mess . 256..f.LD|
000004e0  59 23 6d 65 72 67 65 5f  6d 65 73 73 20 81 20 32  |Y#merge_mess . 2|
000004f0  35 36 0d 03 70 0f 4a 53  52 20 64 69 73 70 6c 61  |56..p.JSR displa|
00000500  79 0d 03 7a 05 20 0d 03  84 0d 4a 53 52 20 6d 65  |y..z. ....JSR me|
00000510  72 67 65 0d 03 8e 05 20  0d 03 98 15 4c 44 58 23  |rge.... ....LDX#|
00000520  64 65 6c 5f 72 65 6e 20  83 20 32 35 36 0d 03 a2  |del_ren . 256...|
00000530  15 4c 44 59 23 64 65 6c  5f 72 65 6e 20 81 20 32  |.LDY#del_ren . 2|
00000540  35 36 0d 03 ac 0f 4a 53  52 20 64 69 73 70 6c 61  |56....JSR displa|
00000550  79 0d 03 b6 05 20 0d 03  de 15 4c 44 58 23 64 65  |y.... ....LDX#de|
00000560  6c 5f 6e 77 32 20 83 20  32 35 36 0d 03 e8 15 4c  |l_nw2 . 256....L|
00000570  44 59 23 64 65 6c 5f 6e  77 32 20 81 20 32 35 36  |DY#del_nw2 . 256|
00000580  0d 03 f2 0d 4a 53 52 20  6f 73 63 6c 69 0d 03 fc  |....JSR oscli...|
00000590  15 4c 44 58 23 64 65 6c  5f 64 69 63 20 83 20 32  |.LDX#del_dic . 2|
000005a0  35 36 0d 04 06 15 4c 44  59 23 64 65 6c 5f 64 69  |56....LDY#del_di|
000005b0  63 20 81 20 32 35 36 0d  04 10 0d 4a 53 52 20 6f  |c . 256....JSR o|
000005c0  73 63 6c 69 0d 04 1a 15  4c 44 58 23 72 65 6e 5f  |scli....LDX#ren_|
000005d0  6e 65 77 20 83 20 32 35  36 0d 04 24 15 4c 44 59  |new . 256..$.LDY|
000005e0  23 72 65 6e 5f 6e 65 77  20 81 20 32 35 36 0d 04  |#ren_new . 256..|
000005f0  2e 0d 4a 53 52 20 6f 73  63 6c 69 0d 04 38 05 20  |..JSR oscli..8. |
00000600  0d 05 5a 05 20 0d 05 64  1b 2e 65 78 69 74 20 4c  |..Z. ..d..exit L|
00000610  44 58 23 6f 70 74 69 6f  6e 73 20 83 20 32 35 36  |DX#options . 256|
00000620  0d 05 6e 15 4c 44 59 23  6f 70 74 69 6f 6e 73 20  |..n.LDY#options |
00000630  81 20 32 35 36 0d 05 78  0f 4a 53 52 20 64 69 73  |. 256..x.JSR dis|
00000640  70 6c 61 79 0d 05 82 14  2e 6f 70 62 61 20 4a 53  |play.....opba JS|
00000650  52 20 6f 73 72 64 63 68  0d 05 8c 0b 42 43 53 20  |R osrdch....BCS |
00000660  65 73 63 0d 05 96 0c 43  4d 50 23 97 22 4d 22 0d  |esc....CMP#."M".|
00000670  05 a0 0c 42 45 51 20 6d  65 6e 75 0d 05 aa 0c 43  |...BEQ menu....C|
00000680  4d 50 23 97 22 57 22 0d  05 b4 0f 42 45 51 20 77  |MP#."W"....BEQ w|
00000690  61 74 63 68 65 72 0d 05  be 0c 43 4d 50 23 97 22  |atcher....CMP#."|
000006a0  51 22 0d 05 c8 0c 42 4e  45 20 6f 70 62 61 0d 05  |Q"....BNE opba..|
000006b0  d2 0e 4a 4d 50 28 26 46  46 46 43 29 0d 05 dc 10  |..JMP(&FFFC)....|
000006c0  2e 65 73 63 20 4c 44 41  23 26 37 45 0d 05 e1 0e  |.esc LDA#&7E....|
000006d0  4a 53 52 20 6f 73 62 79  74 65 0d 05 e6 0c 4a 4d  |JSR osbyte....JM|
000006e0  50 20 6f 70 62 61 0d 05  eb 1c 2e 6d 65 6e 75 20  |P opba.....menu |
000006f0  4c 44 58 23 72 75 6e 5f  6d 65 6e 75 20 83 20 32  |LDX#run_menu . 2|
00000700  35 36 0d 05 f0 16 4c 44  59 23 72 75 6e 5f 6d 65  |56....LDY#run_me|
00000710  6e 75 20 81 20 32 35 36  0d 05 f5 0d 4a 4d 50 20  |nu . 256....JMP |
00000720  6f 73 63 6c 69 0d 05 fa  23 2e 72 75 6e 5f 6d 65  |oscli...#.run_me|
00000730  6e 75 20 45 51 55 53 22  52 55 4e 20 4d 45 4e 55  |nu EQUS"RUN MENU|
00000740  22 3a 45 51 55 42 26 44  0d 05 ff 20 2e 77 61 74  |":EQUB&D... .wat|
00000750  63 68 65 72 20 4c 44 58  23 72 75 6e 5f 77 61 74  |cher LDX#run_wat|
00000760  63 68 20 83 20 32 35 36  0d 06 04 17 4c 44 59 23  |ch . 256....LDY#|
00000770  72 75 6e 5f 77 61 74 63  68 20 81 20 32 35 36 0d  |run_watch . 256.|
00000780  06 09 0d 4a 4d 50 20 6f  73 63 6c 69 0d 06 0e 25  |...JMP oscli...%|
00000790  2e 72 75 6e 5f 77 61 74  63 68 20 45 51 55 53 22  |.run_watch EQUS"|
000007a0  52 55 4e 20 57 41 54 43  48 22 3a 45 51 55 42 26  |RUN WATCH":EQUB&|
000007b0  44 0d 06 2c 15 2e 6f 70  74 69 6f 6e 73 20 45 51  |D..,..options EQ|
000007c0  55 57 26 44 30 41 0d 06  2e 17 45 51 55 53 22 4d  |UW&D0A....EQUS"M|
000007d0  20 2d 20 4d 61 69 6e 20  4d 65 6e 75 22 0d 06 2f  | - Main Menu"../|
000007e0  0c 45 51 55 57 26 44 30  41 0d 06 30 15 45 51 55  |.EQUW&D0A..0.EQU|
000007f0  53 22 57 20 2d 20 57 61  74 63 68 65 72 22 0d 06  |S"W - Watcher"..|
00000800  31 0c 45 51 55 57 26 44  30 41 0d 06 32 12 45 51  |1.EQUW&D0A..2.EQ|
00000810  55 53 22 51 20 2d 20 51  75 69 74 22 0d 06 33 0b  |US"Q - Quit"..3.|
00000820  45 51 55 57 26 46 46 0d  06 36 05 20 0d 06 40 13  |EQUW&FF..6. ..@.|
00000830  2e 64 69 73 70 6c 61 79  20 53 54 58 26 37 34 0d  |.display STX&74.|
00000840  06 4a 0a 53 54 59 26 37  35 0d 06 54 13 2e 64 69  |.J.STY&75..T..di|
00000850  73 70 6c 61 79 32 20 4c  44 59 23 30 0d 06 5e 15  |splay2 LDY#0..^.|
00000860  2e 64 62 61 63 6b 20 4c  44 41 28 26 37 34 29 2c  |.dback LDA(&74),|
00000870  59 0d 06 68 0b 43 4d 50  23 26 46 46 0d 06 72 0c  |Y..h.CMP#&FF..r.|
00000880  42 45 51 20 64 66 6f 72  0d 06 7c 0e 4a 53 52 20  |BEQ dfor..|.JSR |
00000890  6f 73 77 72 63 68 0d 06  86 07 49 4e 59 0d 06 90  |oswrch....INY...|
000008a0  0d 4a 4d 50 20 64 62 61  63 6b 0d 06 9a 0d 2e 64  |.JMP dback.....d|
000008b0  66 6f 72 20 52 54 53 0d  06 a4 23 2e 64 65 6c 5f  |for RTS...#.del_|
000008c0  6e 77 20 45 51 55 53 22  44 45 4c 45 54 45 20 22  |nw EQUS"DELETE "|
000008d0  2b 6e 77 24 2b bd 28 31  33 29 0d 06 ae 25 2e 64  |+nw$+.(13)...%.d|
000008e0  65 6c 5f 6e 77 32 20 45  51 55 53 22 44 45 4c 45  |el_nw2 EQUS"DELE|
000008f0  54 45 20 22 2b 6e 77 32  24 2b bd 28 31 33 29 0d  |TE "+nw2$+.(13).|
00000900  06 b8 29 2e 64 65 6c 5f  64 69 63 20 45 51 55 53  |..).del_dic EQUS|
00000910  22 44 45 4c 45 54 45 20  22 2b 64 69 63 74 69 6f  |"DELETE "+dictio|
00000920  6e 24 2b bd 28 31 33 29  0d 06 c2 32 2e 72 65 6e  |n$+.(13)...2.ren|
00000930  5f 6e 65 77 20 45 51 55  53 22 52 45 4e 41 4d 45  |_new EQUS"RENAME|
00000940  20 22 2b 6e 65 77 24 2b  22 20 22 2b 64 69 63 74  | "+new$+" "+dict|
00000950  69 6f 6e 24 2b bd 28 31  33 29 0d 07 08 1b 2e 73  |ion$+.(13).....s|
00000960  75 72 65 20 45 51 55 57  26 44 30 41 3a 45 51 55  |ure EQUW&D0A:EQU|
00000970  57 26 44 30 41 0d 07 09  42 45 51 55 53 22 57 61  |W&D0A...BEQUS"Wa|
00000980  74 63 68 65 72 20 53 6f  72 74 20 50 72 6f 67 72  |tcher Sort Progr|
00000990  61 6d 22 3a 45 51 55 57  26 44 30 41 3a 45 51 55  |am":EQUW&D0A:EQU|
000009a0  53 22 28 43 29 20 41 6c  6c 61 6e 20 4b 65 6c 6c  |S"(C) Allan Kell|
000009b0  79 20 31 39 38 38 22 0d  07 0a 0c 45 51 55 57 26  |y 1988"....EQUW&|
000009c0  44 30 41 0d 07 0d 26 45  51 55 53 22 4d 65 72 67  |D0A...&EQUS"Merg|
000009d0  65 20 44 69 63 74 69 6f  6e 61 72 79 20 61 6e 64  |e Dictionary and|
000009e0  20 4e 65 77 6f 72 64 73  22 0d 07 12 0c 45 51 55  | Newords"....EQU|
000009f0  57 26 44 30 41 0d 07 1c  1d 45 51 55 53 22 41 72  |W&D0A....EQUS"Ar|
00000a00  65 20 79 6f 75 20 73 75  72 65 3f 20 28 59 2f 4e  |e you sure? (Y/N|
00000a10  29 22 0d 07 26 0c 45 51  55 57 26 44 30 41 0d 07  |)"..&.EQUW&D0A..|
00000a20  30 0b 45 51 55 42 26 46  46 0d 07 3a 05 20 0d 07  |0.EQUB&FF..:. ..|
00000a30  44 12 2e 67 6f 67 6f 20  45 51 55 57 26 44 30 41  |D..gogo EQUW&D0A|
00000a40  0d 07 4e 2e 45 51 55 53  22 53 6f 72 74 69 6e 67  |..N.EQUS"Sorting|
00000a50  20 4e 65 77 6f 72 64 20  66 69 6c 65 20 69 6e 74  | Neword file int|
00000a60  6f 20 41 6c 70 68 61 20  6f 72 64 65 72 22 0d 07  |o Alpha order"..|
00000a70  58 0c 45 51 55 57 26 44  30 41 0d 07 62 0b 45 51  |X.EQUW&D0A..b.EQ|
00000a80  55 42 26 46 46 0d 07 6c  18 2e 6d 65 72 67 65 5f  |UB&FF..l..merge_|
00000a90  6d 65 73 73 20 45 51 55  44 26 44 30 41 0d 07 6d  |mess EQUD&D0A..m|
00000aa0  28 45 51 55 53 22 4d 65  72 67 69 6e 67 20 4e 65  |(EQUS"Merging Ne|
00000ab0  77 6f 72 64 73 20 61 6e  64 20 44 69 63 74 69 6f  |words and Dictio|
00000ac0  6e 61 72 79 22 0d 07 76  0c 45 51 55 57 26 44 30  |nary"..v.EQUW&D0|
00000ad0  41 0d 07 80 0b 45 51 55  42 26 46 46 0d 07 8a 15  |A....EQUB&FF....|
00000ae0  2e 64 65 6c 5f 72 65 6e  20 45 51 55 57 26 44 30  |.del_ren EQUW&D0|
00000af0  41 0d 07 94 25 45 51 55  53 22 44 65 6c 65 74 69  |A...%EQUS"Deleti|
00000b00  6e 67 20 61 6e 64 20 72  65 6e 61 6d 69 6e 67 20  |ng and renaming |
00000b10  66 69 6c 65 73 22 0d 07  99 0c 45 51 55 57 26 44  |files"....EQUW&D|
00000b20  30 41 0d 07 9e 0b 45 51  55 42 26 46 46 0d 07 ee  |0A....EQUB&FF...|
00000b30  05 20 0d 08 5c 35 2e 63  6f 6d 70 61 72 65 20 5c  |. ..\5.compare \|
00000b40  20 43 6f 6d 70 61 72 65  20 77 6f 72 64 73 20 2d  | Compare words -|
00000b50  20 41 3d 72 77 6f 72 64  20 6c 65 6e 20 59 3d 77  | A=rword len Y=w|
00000b60  6f 72 64 20 6c 65 6e 0d  08 66 07 50 48 41 0d 08  |ord len..f.PHA..|
00000b70  70 0d 4c 44 41 20 72 77  6f 72 64 0d 08 7a 0c 43  |p.LDA rword..z.C|
00000b80  4d 50 23 97 22 60 22 0d  08 84 0d 42 4e 45 20 63  |MP#."`"....BNE c|
00000b90  6f 6d 66 6f 0d 08 8e 07  50 4c 41 0d 08 98 09 4c  |omfo....PLA....L|
00000ba0  44 41 23 30 0d 08 a2 0c  53 54 41 20 66 6c 61 67  |DA#0....STA flag|
00000bb0  0d 08 ac 07 52 54 53 0d  08 b6 05 20 0d 08 c0 13  |....RTS.... ....|
00000bc0  2e 63 6f 6d 66 6f 20 4c  44 41 23 97 22 2e 22 0d  |.comfo LDA#.".".|
00000bd0  08 ca 0e 4a 53 52 20 6f  73 77 72 63 68 0d 08 d4  |...JSR oswrch...|
00000be0  07 50 4c 41 0d 08 de 13  53 54 59 20 77 6f 72 64  |.PLA....STY word|
00000bf0  5f 6c 65 6e 67 74 68 0d  08 e8 14 53 54 41 20 72  |_length....STA r|
00000c00  77 6f 72 64 5f 6c 65 6e  67 74 68 0d 08 f2 13 43  |word_length....C|
00000c10  4d 50 20 77 6f 72 64 5f  6c 65 6e 67 74 68 0d 08  |MP word_length..|
00000c20  fc 0e 42 4e 45 20 63 6f  6d 66 6f 31 0d 09 06 09  |..BNE comfo1....|
00000c30  4c 44 59 23 30 0d 09 10  17 2e 63 6f 6d 62 61 31  |LDY#0.....comba1|
00000c40  20 4c 44 41 20 72 77 6f  72 64 2c 59 0d 09 1a 0e  | LDA rword,Y....|
00000c50  43 4d 50 20 77 6f 72 64  2c 59 0d 09 24 0e 42 4e  |CMP word,Y..$.BN|
00000c60  45 20 63 6f 6d 66 6f 32  0d 09 2e 07 49 4e 59 0d  |E comfo2....INY.|
00000c70  09 38 13 43 50 59 20 77  6f 72 64 5f 6c 65 6e 67  |.8.CPY word_leng|
00000c80  74 68 0d 09 42 0e 42 4e  45 20 63 6f 6d 62 61 31  |th..B.BNE comba1|
00000c90  0d 09 4c 1d 4c 44 41 23  26 46 46 20 5c 20 66 6c  |..L.LDA#&FF \ fl|
00000ca0  61 67 3d 26 46 46 20 3d  20 73 61 6d 65 0d 09 56  |ag=&FF = same..V|
00000cb0  0c 53 54 41 20 66 6c 61  67 0d 09 60 07 52 54 53  |.STA flag..`.RTS|
00000cc0  0d 09 6a 05 20 0d 09 74  11 2e 63 6f 6d 66 6f 31  |..j. ..t..comfo1|
00000cd0  20 4c 44 59 23 30 0d 09  7e 17 2e 63 6f 6d 62 61  | LDY#0..~..comba|
00000ce0  32 20 4c 44 41 20 72 77  6f 72 64 2c 59 0d 09 88  |2 LDA rword,Y...|
00000cf0  0e 43 4d 50 20 77 6f 72  64 2c 59 0d 09 92 0e 42  |.CMP word,Y....B|
00000d00  4e 45 20 63 6f 6d 66 6f  32 0d 09 9c 07 49 4e 59  |NE comfo2....INY|
00000d10  0d 09 a6 14 43 50 59 20  72 77 6f 72 64 5f 6c 65  |....CPY rword_le|
00000d20  6e 67 74 68 0d 09 b0 0e  42 50 4c 20 63 6f 6d 66  |ngth....BPL comf|
00000d30  6f 32 0d 09 ba 13 43 50  59 20 77 6f 72 64 5f 6c  |o2....CPY word_l|
00000d40  65 6e 67 74 68 0d 09 c4  0e 42 50 4c 20 63 6f 6d  |ength....BPL com|
00000d50  66 6f 32 0d 09 ce 0e 4a  4d 50 20 63 6f 6d 62 61  |fo2....JMP comba|
00000d60  32 0d 09 d8 16 2e 63 6f  6d 66 6f 32 20 4c 44 41  |2.....comfo2 LDA|
00000d70  20 77 6f 72 64 2c 59 0d  09 e2 0f 43 4d 50 20 72  | word,Y....CMP r|
00000d80  77 6f 72 64 2c 59 0d 09  ec 0e 42 43 43 20 63 6f  |word,Y....BCC co|
00000d90  6d 66 6f 33 0d 09 f6 1d  4c 44 41 23 31 20 5c 20  |mfo3....LDA#1 \ |
00000da0  77 6f 72 64 24 20 61 66  74 65 72 20 78 24 20 3d  |word$ after x$ =|
00000db0  31 0d 0a 00 0c 53 54 41  20 66 6c 61 67 0d 0a 0a  |1....STA flag...|
00000dc0  07 52 54 53 0d 0a 14 26  2e 63 6f 6d 66 6f 33 20  |.RTS...&.comfo3 |
00000dd0  4c 44 41 23 30 20 5c 20  77 6f 72 64 24 20 62 65  |LDA#0 \ word$ be|
00000de0  66 6f 72 65 20 78 24 20  3d 30 0d 0a 1e 0c 53 54  |fore x$ =0....ST|
00000df0  41 20 66 6c 61 67 0d 0a  28 07 52 54 53 0d 0a 32  |A flag..(.RTS..2|
00000e00  0d 2e 66 6c 61 67 20 42  52 4b 0d 0a 3c 2a 2e 77  |..flag BRK..<*.w|
00000e10  6f 72 64 20 45 51 55 53  22 41 42 43 44 45 46 47  |ord EQUS"ABCDEFG|
00000e20  48 49 4a 4b 4c 4d 4e 4f  50 51 52 53 54 55 56 57  |HIJKLMNOPQRSTUVW|
00000e30  58 59 5a 22 0d 0a 46 14  2e 77 6f 72 64 5f 6c 65  |XYZ"..F..word_le|
00000e40  6e 67 74 68 20 42 52 4b  0d 0a 50 2b 2e 72 77 6f  |ngth BRK..P+.rwo|
00000e50  72 64 20 45 51 55 53 22  41 42 43 44 45 46 47 48  |rd EQUS"ABCDEFGH|
00000e60  49 4a 4b 4c 4d 4e 4f 50  51 52 53 54 55 56 57 58  |IJKLMNOPQRSTUVWX|
00000e70  59 5a 22 0d 0a 5a 15 2e  72 77 6f 72 64 5f 6c 65  |YZ"..Z..rword_le|
00000e80  6e 67 74 68 20 42 52 4b  0d 0a 64 05 20 0d 0a 6e  |ngth BRK..d. ..n|
00000e90  41 2e 63 6f 75 6e 74 20  4c 44 41 23 30 20 5c 20  |A.count LDA#0 \ |
00000ea0  43 6f 75 6e 74 20 77 6f  72 64 73 20 69 6e 20 4e  |Count words in N|
00000eb0  57 20 61 6c 6c 6f 77 69  6e 67 20 66 6f 72 20 60  |W allowing for `|
00000ec0  20 64 65 6c 65 74 65 64  20 77 6f 72 64 73 0d 0a  | deleted words..|
00000ed0  82 0a 53 54 41 26 37 30  0d 0a 8c 0a 53 54 41 26  |..STA&70....STA&|
00000ee0  37 31 0d 0a 96 0a 53 54  41 26 37 32 0d 0a a0 0a  |71....STA&72....|
00000ef0  53 54 41 26 37 33 0d 0a  aa 0a 53 54 41 26 37 34  |STA&73....STA&74|
00000f00  0d 0a b4 0a 53 54 41 26  37 35 0d 0a be 0a 53 54  |....STA&75....ST|
00000f10  41 26 37 36 0d 0a c8 05  20 0d 0a d2 11 4c 44 59  |A&76.... ....LDY|
00000f20  20 6e 77 5f 68 61 6e 64  6c 65 0d 0a d4 0e 4a 53  | nw_handle....JS|
00000f30  52 20 6f 73 62 67 65 74  0d 0a d6 0b 43 4d 50 23  |R osbget....CMP#|
00000f40  26 46 46 0d 0a d8 0f 42  4e 45 20 63 6f 5f 65 78  |&FF....BNE co_ex|
00000f50  69 74 0d 0a dc 05 20 0d  0a e6 17 2e 63 6f 5f 62  |it.... .....co_b|
00000f60  61 63 6b 20 4a 53 52 20  6f 73 62 67 65 74 0d 0a  |ack JSR osbget..|
00000f70  f0 0b 43 4d 50 23 26 46  46 0d 0a fa 0f 42 45 51  |..CMP#&FF....BEQ|
00000f80  20 63 6f 5f 65 78 69 74  0d 0b 04 0b 53 54 41 20  | co_exit....STA |
00000f90  6c 65 6e 0d 0b 0e 0e 4a  53 52 20 6f 73 62 67 65  |len....JSR osbge|
00000fa0  74 0d 0b 18 0c 43 4d 50  23 97 22 60 22 0d 0b 22  |t....CMP#."`".."|
00000fb0  0f 42 45 51 20 63 6f 5f  6a 75 6d 70 0d 0b 2c 05  |.BEQ co_jump..,.|
00000fc0  20 0d 0b 36 0a 4c 44 41  26 37 34 0d 0b 40 07 43  | ..6.LDA&74..@.C|
00000fd0  4c 43 0d 0b 4a 09 41 44  43 23 31 0d 0b 54 0a 53  |LC..J.ADC#1..T.S|
00000fe0  54 41 26 37 34 0d 0b 5e  0a 4c 44 41 26 37 35 0d  |TA&74..^.LDA&75.|
00000ff0  0b 68 09 41 44 43 23 30  0d 0b 72 0a 53 54 41 26  |.h.ADC#0..r.STA&|
00001000  37 35 0d 0b 7c 0a 4c 44  41 26 37 36 0d 0b 86 09  |75..|.LDA&76....|
00001010  41 44 43 23 30 0d 0b 90  0a 53 54 41 26 37 36 0d  |ADC#0....STA&76.|
00001020  0b 9a 05 20 0d 0b a4 12  2e 63 6f 5f 6a 75 6d 70  |... .....co_jump|
00001030  20 4c 44 41 23 30 0d 0b  ae 0b 4c 44 58 23 26 37  | LDA#0....LDX#&7|
00001040  30 0d 0b b8 0e 4a 53 52  20 6f 73 61 72 67 73 0d  |0....JSR osargs.|
00001050  0b c2 0a 4c 44 41 26 37  30 0d 0b cc 07 43 4c 43  |...LDA&70....CLC|
00001060  0d 0b d6 0b 41 44 43 20  6c 65 6e 0d 0b e0 0a 53  |....ADC len....S|
00001070  54 41 26 37 30 0d 0b ea  0a 4c 44 41 26 37 31 0d  |TA&70....LDA&71.|
00001080  0b f4 09 41 44 43 23 30  0d 0b fe 0a 53 54 41 26  |...ADC#0....STA&|
00001090  37 31 0d 0c 08 0a 4c 44  41 26 37 32 0d 0c 12 09  |71....LDA&72....|
000010a0  41 44 43 23 30 0d 0c 1c  0a 53 54 41 26 37 32 0d  |ADC#0....STA&72.|
000010b0  0c 26 0a 4c 44 41 26 37  33 0d 0c 30 09 41 44 43  |.&.LDA&73..0.ADC|
000010c0  23 30 0d 0c 3a 0a 53 54  41 26 37 33 0d 0c 44 09  |#0..:.STA&73..D.|
000010d0  4c 44 41 23 31 0d 0c 4e  0e 4a 53 52 20 6f 73 61  |LDA#1..N.JSR osa|
000010e0  72 67 73 0d 0c 58 0f 4a  4d 50 20 63 6f 5f 62 61  |rgs..X.JMP co_ba|
000010f0  63 6b 0d 0c 62 10 2e 63  6f 5f 65 78 69 74 20 52  |ck..b..co_exit R|
00001100  54 53 0d 0c 6c 05 20 0d  0c e4 20 2e 64 65 73 74  |TS..l. ... .dest|
00001110  20 4c 44 41 23 31 20 5c  20 44 65 73 74 72 6f 79  | LDA#1 \ Destroy|
00001120  20 73 74 72 69 6e 67 0d  0c ee 15 4c 44 58 23 26  | string....LDX#&|
00001130  37 38 20 5c 20 59 25 3d  66 69 6c 65 0d 0c f8 0e  |78 \ Y%=file....|
00001140  4a 53 52 20 6f 73 61 72  67 73 0d 0d 02 0e 4a 53  |JSR osargs....JS|
00001150  52 20 6f 73 62 67 65 74  0d 0d 0c 0c 4c 44 41 23  |R osbget....LDA#|
00001160  97 22 60 22 0d 0d 16 0e  4a 4d 50 20 6f 73 62 70  |."`"....JMP osbp|
00001170  75 74 0d 0d 5c 28 2e 72  73 20 4c 44 41 23 31 20  |ut..\(.rs LDA#1 |
00001180  5c 20 52 65 61 64 20 73  74 72 69 6e 67 20 66 72  |\ Read string fr|
00001190  6f 6d 20 4e 57 20 66 69  6c 65 0d 0d 66 0b 4c 44  |om NW file..f.LD|
000011a0  58 23 26 38 39 0d 0d 70  0e 4a 53 52 20 6f 73 61  |X#&89..p.JSR osa|
000011b0  72 67 73 0d 0d 7a 0e 4a  53 52 20 6f 73 62 67 65  |rgs..z.JSR osbge|
000011c0  74 0d 0d 84 07 43 4c 43  0d 0d 8e 09 41 44 43 23  |t....CLC....ADC#|
000011d0  31 0d 0d 98 0a 53 54 41  26 38 35 0d 0d a2 0a 53  |1....STA&85....S|
000011e0  54 59 26 38 30 0d 0d ac  14 4c 44 58 23 73 74 72  |TY&80....LDX#str|
000011f0  69 6e 67 20 83 20 32 35  36 0d 0d b6 0a 53 54 58  |ing . 256....STX|
00001200  26 38 31 0d 0d c0 14 4c  44 59 23 73 74 72 69 6e  |&81....LDY#strin|
00001210  67 20 81 20 32 35 36 0d  0d ca 0a 53 54 59 26 38  |g . 256....STY&8|
00001220  32 0d 0d d4 09 4c 44 41  23 34 0d 0d de 0b 4c 44  |2....LDA#4....LD|
00001230  58 23 26 38 30 0d 0d e8  09 4c 44 59 23 30 0d 0d  |X#&80....LDY#0..|
00001240  f2 0a 53 54 59 26 38 33  0d 0d fc 0a 53 54 59 26  |..STY&83....STY&|
00001250  38 34 0d 0e 06 0a 53 54  59 26 38 36 0d 0e 10 0a  |84....STY&86....|
00001260  53 54 59 26 38 37 0d 0e  1a 0a 53 54 59 26 38 38  |STY&87....STY&88|
00001270  0d 0e 24 0e 4a 4d 50 20  6f 73 67 62 70 62 0d 0e  |..$.JMP osgbpb..|
00001280  2e 2c 2e 73 74 72 69 6e  67 20 45 51 55 53 22 41  |.,.string EQUS"A|
00001290  42 43 44 45 46 47 48 49  4a 4b 4c 4d 4e 4f 50 51  |BCDEFGHIJKLMNOPQ|
000012a0  52 53 54 55 56 57 58 59  5a 22 0d 0e 38 05 20 0d  |RSTUVWXYZ"..8. .|
000012b0  0e 42 21 2e 72 64 20 5c  20 52 65 61 64 20 44 69  |.B!.rd \ Read Di|
000012c0  63 74 69 6f 6e 61 72 79  20 59 25 3d 66 69 6c 65  |ctionary Y%=file|
000012d0  0d 0e 4c 09 4c 44 41 23  31 0d 0e 56 0b 4c 44 58  |..L.LDA#1..V.LDX|
000012e0  23 26 37 30 0d 0e 60 0e  4a 53 52 20 6f 73 61 72  |#&70..`.JSR osar|
000012f0  67 73 0d 0e 6a 09 4c 44  58 23 30 0d 0e 74 14 2e  |gs..j.LDX#0..t..|
00001300  72 64 62 61 20 4a 53 52  20 6f 73 62 67 65 74 0d  |rdba JSR osbget.|
00001310  0e 7e 07 50 48 41 0d 0e  88 09 80 23 31 32 37 0d  |.~.PHA.....#127.|
00001320  0e 92 10 53 54 41 20 73  74 72 69 6e 67 2c 58 0d  |...STA string,X.|
00001330  0e 9c 07 49 4e 58 0d 0e  a6 07 50 4c 41 0d 0e b0  |...INX....PLA...|
00001340  0c 42 50 4c 20 72 64 62  61 0d 0e ba 0a 4c 44 41  |.BPL rdba....LDA|
00001350  23 26 44 0d 0e c4 10 53  54 41 20 73 74 72 69 6e  |#&D....STA strin|
00001360  67 2c 58 0d 0e ce 07 52  54 53 0d 0e d8 05 20 0d  |g,X....RTS.... .|
00001370  0e e2 2e 2e 77 73 20 4c  44 58 23 30 20 5c 20 57  |....ws LDX#0 \ W|
00001380  72 69 74 65 20 73 74 69  6e 67 20 74 6f 20 4e 57  |rite sting to NW|
00001390  20 66 69 6c 65 20 59 25  3d 66 69 6c 65 0d 0e ec  | file Y%=file...|
000013a0  14 2e 77 73 62 61 20 4c  44 41 20 77 6f 72 64 2c  |..wsba LDA word,|
000013b0  58 0d 0e f6 07 49 4e 58  0d 0f 00 0a 43 4d 50 23  |X....INX....CMP#|
000013c0  26 44 0d 0f 0a 0c 42 4e  45 20 77 73 62 61 0d 0f  |&D....BNE wsba..|
000013d0  14 07 44 45 58 0d 0f 1e  07 54 58 41 0d 0f 28 0e  |..DEX....TXA..(.|
000013e0  4a 53 52 20 6f 73 62 70  75 74 0d 0f 32 09 4c 44  |JSR osbput..2.LD|
000013f0  58 23 30 0d 0f 3c 15 2e  77 73 62 61 32 20 4c 44  |X#0..<..wsba2 LD|
00001400  41 20 77 6f 72 64 2c 58  0d 0f 46 0e 4a 53 52 20  |A word,X..F.JSR |
00001410  6f 73 62 70 75 74 0d 0f  4b 0e 4a 53 52 20 6f 73  |osbput..K.JSR os|
00001420  77 72 63 68 0d 0f 50 07  49 4e 58 0d 0f 5a 0a 43  |wrch..P.INX..Z.C|
00001430  4d 50 23 26 44 0d 0f 64  0d 42 4e 45 20 77 73 62  |MP#&D..d.BNE wsb|
00001440  61 32 0d 0f 69 0e 4a 53  52 20 6f 73 6e 65 77 6c  |a2..i.JSR osnewl|
00001450  0d 0f 6e 07 52 54 53 0d  0f 78 05 20 0d 0f 82 22  |..n.RTS..x. ..."|
00001460  2e 77 64 20 5c 20 57 72  69 74 65 20 64 69 63 74  |.wd \ Write dict|
00001470  69 6f 6e 61 72 79 20 79  25 3d 66 69 6c 65 0d 0f  |ionary y%=file..|
00001480  8c 0e 4a 53 52 20 6f 73  6e 65 77 6c 0d 0f 96 05  |..JSR osnewl....|
00001490  20 0d 0f a0 09 4c 44 58  23 30 0d 0f aa 14 2e 77  | ....LDX#0.....w|
000014a0  64 62 61 20 4c 44 41 20  77 6f 72 64 2c 58 0d 0f  |dba LDA word,X..|
000014b0  b4 07 49 4e 58 0d 0f be  0a 43 4d 50 23 26 44 0d  |..INX....CMP#&D.|
000014c0  0f c8 0c 42 4e 45 20 77  64 62 61 0d 0f d2 07 44  |...BNE wdba....D|
000014d0  45 58 0d 0f dc 07 44 45  58 0d 0f e6 0b 53 54 58  |EX....DEX....STX|
000014e0  20 6c 65 6e 0d 0f f0 09  43 50 58 23 30 0d 0f fa  | len....CPX#0...|
000014f0  0c 42 45 51 20 77 64 66  6f 0d 10 04 05 20 0d 10  |.BEQ wdfo.... ..|
00001500  0e 09 4c 44 58 23 30 0d  10 18 15 2e 77 64 62 61  |..LDX#0.....wdba|
00001510  32 20 4c 44 41 20 77 6f  72 64 2c 58 0d 10 22 0e  |2 LDA word,X..".|
00001520  4a 53 52 20 6f 73 62 70  75 74 0d 10 2c 0e 4a 53  |JSR osbput..,.JS|
00001530  52 20 6f 73 77 72 63 68  0d 10 36 07 49 4e 58 0d  |R oswrch..6.INX.|
00001540  10 40 0b 43 50 58 20 6c  65 6e 0d 10 4a 0d 42 4e  |.@.CPX len..J.BN|
00001550  45 20 77 64 62 61 32 0d  10 54 05 20 0d 10 5e 14  |E wdba2..T. ..^.|
00001560  2e 77 64 66 6f 20 4c 44  41 20 77 6f 72 64 2c 58  |.wdfo LDA word,X|
00001570  0d 10 68 0e 4a 53 52 20  6f 73 77 72 63 68 0d 10  |..h.JSR oswrch..|
00001580  72 0a 84 41 23 31 32 38  0d 10 7c 0e 4a 53 52 20  |r..A#128..|.JSR |
00001590  6f 73 62 70 75 74 0d 10  86 07 52 54 53 0d 10 90  |osbput....RTS...|
000015a0  0c 2e 6c 65 6e 20 42 52  4b 0d 10 b8 05 20 0d 10  |..len BRK.... ..|
000015b0  cc 14 2e 73 6f 72 74 5f  6e 77 20 4c 44 41 23 26  |...sort_nw LDA#&|
000015c0  43 30 0d 10 d6 15 4c 44  59 23 6e 77 5f 6e 61 6d  |C0....LDY#nw_nam|
000015d0  65 20 81 20 32 35 36 0d  10 e0 15 4c 44 58 23 6e  |e . 256....LDX#n|
000015e0  77 5f 6e 61 6d 65 20 83  20 32 35 36 0d 10 ea 0e  |w_name . 256....|
000015f0  4a 53 52 20 6f 73 66 69  6e 64 0d 10 f4 09 43 4d  |JSR osfind....CM|
00001600  50 23 30 0d 10 fe 0f 42  45 51 20 6e 6f 5f 66 69  |P#0....BEQ no_fi|
00001610  6c 65 0d 11 08 11 53 54  41 20 6e 77 5f 68 61 6e  |le....STA nw_han|
00001620  64 6c 65 0d 11 09 05 20  0d 11 0a 10 54 41 59 20  |dle.... ....TAY |
00001630  5c 20 52 65 61 64 20 a2  0d 11 0b 09 4c 44 41 23  |\ Read .....LDA#|
00001640  32 0d 11 0c 0b 4c 44 58  23 26 38 39 0d 11 0d 0e  |2....LDX#&89....|
00001650  4a 53 52 20 6f 73 61 72  67 73 0d 11 0e 0a 4c 44  |JSR osargs....LD|
00001660  41 26 38 39 0d 11 0f 07  53 45 43 0d 11 10 09 53  |A&89....SEC....S|
00001670  42 43 23 31 0d 11 11 0e  53 54 41 20 65 78 74 5f  |BC#1....STA ext_|
00001680  6e 77 0d 11 12 0a 4c 44  41 26 38 41 0d 11 13 09  |nw....LDA&8A....|
00001690  53 42 43 23 30 0d 11 14  10 53 54 41 20 65 78 74  |SBC#0....STA ext|
000016a0  5f 6e 77 2b 31 0d 11 15  0a 4c 44 41 26 38 42 0d  |_nw+1....LDA&8B.|
000016b0  11 16 09 53 42 43 23 30  0d 11 17 10 53 54 41 20  |...SBC#0....STA |
000016c0  65 78 74 5f 6e 77 2b 32  0d 11 18 0a 4c 44 41 26  |ext_nw+2....LDA&|
000016d0  38 43 0d 11 19 09 53 42  43 23 30 0d 11 1a 10 53  |8C....SBC#0....S|
000016e0  54 41 20 65 78 74 5f 6e  77 2b 32 0d 11 1c 0b 4c  |TA ext_nw+2....L|
000016f0  44 41 23 26 38 30 0d 11  26 16 4c 44 59 23 6e 77  |DA#&80..&.LDY#nw|
00001700  32 5f 6e 61 6d 65 20 81  20 32 35 36 0d 11 30 16  |2_name . 256..0.|
00001710  4c 44 58 23 6e 77 32 5f  6e 61 6d 65 20 83 20 32  |LDX#nw2_name . 2|
00001720  35 36 0d 11 3a 0e 4a 53  52 20 6f 73 66 69 6e 64  |56..:.JSR osfind|
00001730  0d 11 44 09 43 4d 50 23  30 0d 11 4e 0f 42 4e 45  |..D.CMP#0..N.BNE|
00001740  20 6f 6b 5f 66 69 6c 65  0d 11 58 18 2e 6e 6f 5f  | ok_file..X..no_|
00001750  66 69 6c 65 20 4c 44 58  23 66 6e 66 20 83 32 36  |file LDX#fnf .26|
00001760  0d 11 62 11 4c 44 59 23  66 6e 66 20 81 20 32 35  |..b.LDY#fnf . 25|
00001770  36 0d 11 6c 0f 4a 53 52  20 64 69 73 70 6c 61 79  |6..l.JSR display|
00001780  0d 11 76 0c 4a 4d 50 20  65 78 69 74 0d 11 80 11  |..v.JMP exit....|
00001790  2e 66 6e 66 20 45 51 55  57 26 44 30 41 0d 11 85  |.fnf EQUW&D0A...|
000017a0  18 45 51 55 53 22 46 69  6c 65 20 6e 6f 74 20 66  |.EQUS"File not f|
000017b0  6f 75 6e 64 22 0d 11 8a  0b 45 51 55 42 26 46 46  |ound"....EQUB&FF|
000017c0  0d 11 94 15 2e 6e 77 5f  6e 61 6d 65 20 45 51 55  |.....nw_name EQU|
000017d0  53 20 6e 77 24 0d 11 9e  0a 45 51 55 42 26 44 0d  |S nw$....EQUB&D.|
000017e0  11 a8 17 2e 6e 77 32 5f  6e 61 6d 65 20 45 51 55  |....nw2_name EQU|
000017f0  53 20 6e 77 32 24 0d 11  b2 0a 45 51 55 42 26 44  |S nw2$....EQUB&D|
00001800  0d 11 bc 12 2e 6e 77 5f  68 61 6e 64 6c 65 20 42  |.....nw_handle B|
00001810  52 4b 0d 11 c6 13 2e 6e  77 32 5f 68 61 6e 64 6c  |RK.....nw2_handl|
00001820  65 20 42 52 4b 0d 11 cb  11 2e 65 78 74 5f 6e 77  |e BRK.....ext_nw|
00001830  20 45 51 55 44 30 0d 11  d0 05 20 0d 11 da 1b 2e  | EQUD0.... .....|
00001840  6f 6b 5f 66 69 6c 65 20  53 54 41 20 6e 77 32 5f  |ok_file STA nw2_|
00001850  68 61 6e 64 6c 65 0d 11  ee 0d 4a 53 52 20 63 6f  |handle....JSR co|
00001860  75 6e 74 0d 11 ef 0a 4c  44 41 26 37 34 0d 11 f0  |unt....LDA&74...|
00001870  0f 42 4e 45 20 73 6f 72  74 62 61 31 0d 11 f1 0a  |.BNE sortba1....|
00001880  4c 44 41 26 37 35 0d 11  f2 0f 42 4e 45 20 73 6f  |LDA&75....BNE so|
00001890  72 74 62 61 31 0d 11 f3  0a 4c 44 41 26 37 36 0d  |rtba1....LDA&76.|
000018a0  11 f4 0f 42 4e 45 20 73  6f 72 74 62 61 31 0d 11  |...BNE sortba1..|
000018b0  f5 10 4a 4d 50 20 6e 6f  5f 77 6f 72 64 73 0d 11  |..JMP no_words..|
000018c0  f8 05 20 0d 12 02 0c 2e  73 6f 72 74 62 61 31 0d  |.. .....sortba1.|
000018d0  12 0c 09 4c 44 41 23 31  0d 12 16 0a 53 54 41 26  |...LDA#1....STA&|
000018e0  37 38 0d 12 1b 0a 53 54  41 26 38 39 0d 12 20 09  |78....STA&89.. .|
000018f0  4c 44 41 23 30 0d 12 2a  0a 53 54 41 26 37 39 0d  |LDA#0..*.STA&79.|
00001900  12 34 0a 53 54 41 26 37  41 0d 12 3e 0a 53 54 41  |.4.STA&7A..>.STA|
00001910  26 37 42 0d 12 48 0a 53  54 41 26 38 41 0d 12 52  |&7B..H.STA&8A..R|
00001920  0a 53 54 41 26 38 42 0d  12 5c 0a 53 54 41 26 38  |.STA&8B..\.STA&8|
00001930  43 0d 12 66 05 20 0d 12  70 11 4c 44 59 20 6e 77  |C..f. ..p.LDY nw|
00001940  5f 68 61 6e 64 6c 65 0d  12 7a 0a 4a 53 52 20 72  |_handle..z.JSR r|
00001950  73 0d 12 84 09 4c 44 58  23 30 0d 12 8e 17 2e 73  |s....LDX#0.....s|
00001960  6f 62 61 31 20 4c 44 41  20 73 74 72 69 6e 67 2c  |oba1 LDA string,|
00001970  58 0d 12 98 0e 53 54 41  20 77 6f 72 64 2c 58 0d  |X....STA word,X.|
00001980  12 a2 07 49 4e 58 0d 12  ac 0a 43 4d 50 23 26 44  |...INX....CMP#&D|
00001990  0d 12 b6 0d 42 4e 45 20  73 6f 62 61 31 0d 12 ca  |....BNE soba1...|
000019a0  13 53 54 58 20 77 6f 72  64 5f 6c 65 6e 67 74 68  |.STX word_length|
000019b0  0d 12 d4 05 20 0d 12 f2  0c 2e 73 6f 72 74 62 61  |.... .....sortba|
000019c0  32 0d 12 fc 09 4c 44 41  23 30 0d 13 06 0b 4c 44  |2....LDA#0....LD|
000019d0  58 23 26 37 43 0d 13 10  11 4c 44 59 20 6e 77 5f  |X#&7C....LDY nw_|
000019e0  68 61 6e 64 6c 65 0d 13  1a 0e 4a 53 52 20 6f 73  |handle....JSR os|
000019f0  61 72 67 73 0d 13 24 05  20 0d 13 2e 0a 4c 44 41  |args..$. ....LDA|
00001a00  26 37 43 0d 13 38 0a 53  54 41 26 38 39 0d 13 42  |&7C..8.STA&89..B|
00001a10  0a 4c 44 41 26 37 44 0d  13 4c 0a 53 54 41 26 38  |.LDA&7D..L.STA&8|
00001a20  41 0d 13 56 0a 4c 44 41  26 37 45 0d 13 60 0a 53  |A..V.LDA&7E..`.S|
00001a30  54 41 26 38 42 0d 13 6a  0a 4c 44 41 26 37 46 0d  |TA&8B..j.LDA&7F.|
00001a40  13 74 0a 53 54 41 26 38  43 0d 13 7e 0a 4a 53 52  |.t.STA&8C..~.JSR|
00001a50  20 72 73 0d 13 88 05 20  0d 13 92 09 4c 44 58 23  | rs.... ....LDX#|
00001a60  30 0d 13 9c 17 2e 73 6f  62 61 32 20 4c 44 41 20  |0.....soba2 LDA |
00001a70  73 74 72 69 6e 67 2c 58  0d 13 a6 0f 53 54 41 20  |string,X....STA |
00001a80  72 77 6f 72 64 2c 58 0d  13 b0 07 49 4e 58 0d 13  |rword,X....INX..|
00001a90  ba 0a 43 4d 50 23 26 44  0d 13 c4 0d 42 4e 45 20  |..CMP#&D....BNE |
00001aa0  73 6f 62 61 32 0d 13 ce  07 54 58 41 0d 13 cf 07  |soba2....TXA....|
00001ab0  54 41 59 0d 13 d8 13 4c  44 41 20 77 6f 72 64 5f  |TAY....LDA word_|
00001ac0  6c 65 6e 67 74 68 0d 13  e2 0f 4a 53 52 20 63 6f  |length....JSR co|
00001ad0  6d 70 61 72 65 0d 13 ec  05 20 0d 13 f6 09 43 4d  |mpare.... ....CM|
00001ae0  50 23 31 0d 14 00 0d 42  4e 45 20 73 6f 66 6f 31  |P#1....BNE sofo1|
00001af0  0d 14 0a 0a 4c 44 41 26  37 43 0d 14 14 0a 53 54  |....LDA&7C....ST|
00001b00  41 26 37 38 0d 14 1e 0a  4c 44 41 26 37 44 0d 14  |A&78....LDA&7D..|
00001b10  28 0a 53 54 41 26 37 39  0d 14 32 0a 4c 44 41 26  |(.STA&79..2.LDA&|
00001b20  37 45 0d 14 3c 0a 53 54  41 26 37 41 0d 14 46 0a  |7E..<.STA&7A..F.|
00001b30  4c 44 41 26 37 46 0d 14  50 0a 53 54 41 26 37 42  |LDA&7F..P.STA&7B|
00001b40  0d 14 5a 09 4c 44 58 23  30 0d 14 64 16 2e 73 6f  |..Z.LDX#0..d..so|
00001b50  62 61 33 20 4c 44 41 20  72 77 6f 72 64 2c 58 0d  |ba3 LDA rword,X.|
00001b60  14 6e 0e 53 54 41 20 77  6f 72 64 2c 58 0d 14 78  |.n.STA word,X..x|
00001b70  07 49 4e 58 0d 14 82 0a  43 4d 50 23 26 44 0d 14  |.INX....CMP#&D..|
00001b80  8c 0d 42 4e 45 20 73 6f  62 61 33 0d 14 96 05 20  |..BNE soba3.... |
00001b90  0d 14 a0 10 2e 73 6f 66  6f 31 20 4c 44 41 23 30  |.....sofo1 LDA#0|
00001ba0  0d 14 aa 0b 4c 44 58 23  26 38 39 0d 14 b4 11 4c  |....LDX#&89....L|
00001bb0  44 59 20 6e 77 5f 68 61  6e 64 6c 65 0d 14 be 0e  |DY nw_handle....|
00001bc0  4a 53 52 20 6f 73 61 72  67 73 0d 14 c8 0a 4c 44  |JSR osargs....LD|
00001bd0  41 26 38 43 0d 14 d2 10  43 4d 50 20 65 78 74 5f  |A&8C....CMP ext_|
00001be0  6e 77 2b 33 0d 14 dc 0f  42 43 43 20 73 6f 72 74  |nw+3....BCC sort|
00001bf0  62 61 32 0d 14 e6 0a 4c  44 41 26 38 42 0d 14 f0  |ba2....LDA&8B...|
00001c00  10 43 4d 50 20 65 78 74  5f 6e 77 2b 32 0d 14 fa  |.CMP ext_nw+2...|
00001c10  0f 42 43 43 20 73 6f 72  74 62 61 32 0d 15 04 0a  |.BCC sortba2....|
00001c20  4c 44 41 26 38 41 0d 15  0e 10 43 4d 50 20 65 78  |LDA&8A....CMP ex|
00001c30  74 5f 6e 77 2b 31 0d 15  13 0f 42 43 43 20 73 6f  |t_nw+1....BCC so|
00001c40  72 74 62 61 32 0d 15 18  0a 4c 44 41 26 38 39 0d  |rtba2....LDA&89.|
00001c50  15 22 0e 43 4d 50 20 65  78 74 5f 6e 77 0d 15 2c  |.".CMP ext_nw..,|
00001c60  0f 42 43 43 20 73 6f 72  74 62 61 32 0d 15 54 05  |.BCC sortba2..T.|
00001c70  20 0d 15 5e 12 4c 44 59  20 6e 77 32 5f 68 61 6e  | ..^.LDY nw2_han|
00001c80  64 6c 65 0d 15 68 0a 4a  53 52 20 77 64 0d 15 6d  |dle..h.JSR wd..m|
00001c90  11 4c 44 59 20 6e 77 5f  68 61 6e 64 6c 65 0d 15  |.LDY nw_handle..|
00001ca0  72 1b 4a 53 52 20 64 65  73 74 20 5c 20 44 65 73  |r.JSR dest \ Des|
00001cb0  74 72 6f 79 20 77 6f 72  64 0d 15 7c 05 20 0d 15  |troy word..|. ..|
00001cc0  86 1a 4c 44 41 26 37 34  20 5c 20 77 6f 72 64 73  |..LDA&74 \ words|
00001cd0  3d 77 6f 72 64 73 2d 31  0d 15 90 07 53 45 43 0d  |=words-1....SEC.|
00001ce0  15 9a 09 53 42 43 23 31  0d 15 a4 0a 53 54 41 26  |...SBC#1....STA&|
00001cf0  37 34 0d 15 ae 0a 4c 44  41 26 37 35 0d 15 b8 09  |74....LDA&75....|
00001d00  53 42 43 23 30 0d 15 c2  0a 53 54 41 26 37 35 0d  |SBC#0....STA&75.|
00001d10  15 cc 0a 4c 44 41 26 37  36 0d 15 d6 09 53 42 43  |...LDA&76....SBC|
00001d20  23 30 0d 15 e0 0a 53 54  41 26 37 36 0d 16 08 05  |#0....STA&76....|
00001d30  20 0d 16 12 0a 4c 44 41  26 37 34 0d 16 1c 0d 42  | ....LDA&74....B|
00001d40  4e 45 20 73 6f 66 6f 32  0d 16 26 0a 4c 44 41 26  |NE sofo2..&.LDA&|
00001d50  37 35 0d 16 30 0d 42 4e  45 20 73 6f 66 6f 32 0d  |75..0.BNE sofo2.|
00001d60  16 3a 0a 4c 44 41 26 37  36 0d 16 44 0d 42 4e 45  |.:.LDA&76..D.BNE|
00001d70  20 73 6f 66 6f 32 0d 16  62 05 20 0d 16 6c 09 4c  | sofo2..b. ..l.L|
00001d80  44 41 23 30 0d 16 76 11  4c 44 59 20 6e 77 5f 68  |DA#0..v.LDY nw_h|
00001d90  61 6e 64 6c 65 0d 16 80  0e 4a 53 52 20 6f 73 66  |andle....JSR osf|
00001da0  69 6e 64 0d 16 8a 12 4c  44 59 20 6e 77 32 5f 68  |ind....LDY nw2_h|
00001db0  61 6e 64 6c 65 0d 16 94  0e 4a 53 52 20 6f 73 66  |andle....JSR osf|
00001dc0  69 6e 64 0d 16 9e 07 52  54 53 0d 16 a8 05 20 0d  |ind....RTS.... .|
00001dd0  16 b2 16 2e 73 6f 66 6f  32 20 4a 4d 50 20 73 6f  |....sofo2 JMP so|
00001de0  72 74 62 61 31 0d 16 bc  05 20 0d 17 0c 30 2e 6d  |rtba1.... ...0.m|
00001df0  65 72 67 65 20 5c 20 4d  65 72 67 65 20 4e 65 77  |erge \ Merge New|
00001e00  32 20 61 6e 64 20 44 69  63 74 69 6f 6e 20 69 6e  |2 and Diction in|
00001e10  74 6f 20 4e 65 77 74 69  6f 6e 0d 17 16 05 20 0d  |to Newtion.... .|
00001e20  17 20 0b 4c 44 41 23 26  34 30 0d 17 2a 15 4c 44  |. .LDA#&40..*.LD|
00001e30  58 23 64 69 63 74 69 6f  6e 20 83 20 32 35 36 0d  |X#diction . 256.|
00001e40  17 34 15 4c 44 59 23 64  69 63 74 69 6f 6e 20 81  |.4.LDY#diction .|
00001e50  20 32 35 36 0d 17 3e 0e  4a 53 52 20 6f 73 66 69  | 256..>.JSR osfi|
00001e60  6e 64 0d 17 48 09 43 4d  50 23 30 0d 17 52 0d 42  |nd..H.CMP#0..R.B|
00001e70  4e 45 20 6d 65 66 6f 31  0d 17 5c 16 2e 6d 65 62  |NE mefo1..\..meb|
00001e80  61 31 20 4a 4d 50 20 6e  6f 5f 66 69 6c 65 0d 17  |a1 JMP no_file..|
00001e90  66 1b 2e 6d 65 66 6f 31  20 53 54 41 20 64 69 63  |f..mefo1 STA dic|
00001ea0  74 69 6f 6e 5f 66 69 6c  65 0d 17 70 05 20 0d 17  |tion_file..p. ..|
00001eb0  7a 0b 4c 44 41 23 26 34  30 0d 17 84 16 4c 44 58  |z.LDA#&40....LDX|
00001ec0  23 6e 77 32 5f 6e 61 6d  65 20 83 20 32 35 36 0d  |#nw2_name . 256.|
00001ed0  17 8e 16 4c 44 59 23 6e  77 32 5f 6e 61 6d 65 20  |...LDY#nw2_name |
00001ee0  81 20 32 35 36 0d 17 98  0e 4a 53 52 20 6f 73 66  |. 256....JSR osf|
00001ef0  69 6e 64 0d 17 a2 09 43  4d 50 23 30 0d 17 ac 0d  |ind....CMP#0....|
00001f00  42 45 51 20 6d 65 62 61  31 0d 17 b6 10 53 54 41  |BEQ meba1....STA|
00001f10  20 6e 65 77 5f 66 69 6c  65 0d 17 c0 05 20 0d 17  | new_file.... ..|
00001f20  ca 0b 4c 44 41 23 26 38  30 0d 17 d4 15 4c 44 58  |..LDA#&80....LDX|
00001f30  23 6e 65 77 74 69 6f 6e  20 83 20 32 35 36 0d 17  |#newtion . 256..|
00001f40  de 15 4c 44 59 23 6e 65  77 74 69 6f 6e 20 81 20  |..LDY#newtion . |
00001f50  32 35 36 0d 17 e8 0e 4a  53 52 20 6f 73 66 69 6e  |256....JSR osfin|
00001f60  64 0d 17 f2 09 43 4d 50  23 30 0d 17 fc 0d 42 45  |d....CMP#0....BE|
00001f70  51 20 6d 65 62 61 31 0d  18 06 14 53 54 41 20 6e  |Q meba1....STA n|
00001f80  65 77 74 69 6f 6e 5f 66  69 6c 65 0d 18 10 07 54  |ewtion_file....T|
00001f90  41 59 0d 18 1a 10 4c 44  41 23 28 33 2a 32 37 29  |AY....LDA#(3*27)|
00001fa0  2b 31 0d 18 24 0a 53 54  41 26 37 30 0d 18 29 0a  |+1..$.STA&70..).|
00001fb0  53 54 41 26 37 34 0d 18  2e 09 4c 44 41 23 30 0d  |STA&74....LDA#0.|
00001fc0  18 38 0a 53 54 41 26 37  31 0d 18 42 0a 53 54 41  |.8.STA&71..B.STA|
00001fd0  26 37 32 0d 18 4c 0a 53  54 41 26 37 33 0d 18 4e  |&72..L.STA&73..N|
00001fe0  0a 53 54 41 26 37 35 0d  18 50 0a 53 54 41 26 37  |.STA&75..P.STA&7|
00001ff0  36 0d 18 52 0a 53 54 41  26 37 37 0d 18 56 09 4c  |6..R.STA&77..V.L|
00002000  44 41 23 31 0d 18 60 0b  4c 44 58 23 26 37 30 0d  |DA#1..`.LDX#&70.|
00002010  18 6a 0e 4a 53 52 20 6f  73 61 72 67 73 0d 18 74  |.j.JSR osargs..t|
00002020  05 20 0d 18 7e 0a 4c 44  41 23 36 35 0d 18 88 16  |. ..~.LDA#65....|
00002030  53 54 41 20 63 75 72 72  65 6e 74 5f 6c 65 74 74  |STA current_lett|
00002040  65 72 0d 18 92 05 20 0d  18 9c 10 4a 4d 50 20 6d  |er.... ....JMP m|
00002050  65 72 67 65 62 61 31 0d  18 a6 05 20 0d 18 b0 1a  |ergeba1.... ....|
00002060  2e 64 69 63 74 69 6f 6e  20 45 51 55 53 20 64 69  |.diction EQUS di|
00002070  63 74 69 6f 6e 24 0d 18  ba 0a 45 51 55 42 26 44  |ction$....EQUB&D|
00002080  0d 18 c4 16 2e 6e 65 77  74 69 6f 6e 20 45 51 55  |.....newtion EQU|
00002090  53 20 6e 65 77 24 0d 18  ce 0a 45 51 55 42 26 44  |S new$....EQUB&D|
000020a0  0d 18 d8 15 2e 64 69 63  74 69 6f 6e 5f 66 69 6c  |.....diction_fil|
000020b0  65 20 42 52 4b 0d 18 e2  11 2e 6e 65 77 5f 66 69  |e BRK.....new_fi|
000020c0  6c 65 20 42 52 4b 0d 18  ec 15 2e 6e 65 77 74 69  |le BRK.....newti|
000020d0  6f 6e 5f 66 69 6c 65 20  42 52 4b 0d 18 f1 17 2e  |on_file BRK.....|
000020e0  63 75 72 72 65 6e 74 5f  6c 65 74 74 65 72 20 42  |current_letter B|
000020f0  52 4b 0d 18 f6 05 20 0d  19 64 0d 2e 6d 65 72 67  |RK.... ..d..merg|
00002100  65 62 61 31 0d 19 6e 09  4c 44 41 23 30 0d 19 78  |eba1..n.LDA#0..x|
00002110  0b 4c 44 58 23 26 37 30  0d 19 82 10 4c 44 59 20  |.LDX#&70....LDY |
00002120  6e 65 77 5f 66 69 6c 65  0d 19 8c 0e 4a 53 52 20  |new_file....JSR |
00002130  6f 73 61 72 67 73 0d 19  96 0a 4a 53 52 20 72 64  |osargs....JSR rd|
00002140  0d 19 a0 09 4c 44 58 23  30 0d 19 aa 17 2e 6d 65  |....LDX#0.....me|
00002150  62 61 32 20 4c 44 41 20  73 74 72 69 6e 67 2c 58  |ba2 LDA string,X|
00002160  0d 19 b4 0e 53 54 41 20  77 6f 72 64 2c 58 0d 19  |....STA word,X..|
00002170  be 07 49 4e 58 0d 19 c8  0a 43 4d 50 23 26 44 0d  |..INX....CMP#&D.|
00002180  19 d2 0d 42 4e 45 20 6d  65 62 61 32 0d 19 dc 07  |...BNE meba2....|
00002190  44 45 58 0d 19 e6 13 53  54 58 20 77 6f 72 64 5f  |DEX....STX word_|
000021a0  6c 65 6e 67 74 68 0d 19  f0 05 20 0d 19 fa 09 4c  |length.... ....L|
000021b0  44 41 23 31 0d 1a 04 0b  4c 44 58 23 26 37 34 0d  |DA#1....LDX#&74.|
000021c0  1a 0e 14 4c 44 59 20 64  69 63 74 69 6f 6e 5f 66  |...LDY diction_f|
000021d0  69 6c 65 0d 1a 18 0e 4a  53 52 20 6f 73 61 72 67  |ile....JSR osarg|
000021e0  73 0d 1a 22 05 20 0d 1a  2c 0d 2e 6d 65 72 67 65  |s..". ..,..merge|
000021f0  62 61 32 0d 1a 36 09 4c  44 41 23 30 0d 1a 40 0b  |ba2..6.LDA#0..@.|
00002200  4c 44 58 23 26 37 34 0d  1a 4a 14 4c 44 59 20 64  |LDX#&74..J.LDY d|
00002210  69 63 74 69 6f 6e 5f 66  69 6c 65 0d 1a 54 0e 4a  |iction_file..T.J|
00002220  53 52 20 6f 73 61 72 67  73 0d 1a 5e 0a 4c 44 41  |SR osargs..^.LDA|
00002230  26 37 34 0d 1a 68 0a 53  54 41 26 37 30 0d 1a 72  |&74..h.STA&70..r|
00002240  0a 4c 44 41 26 37 35 0d  1a 7c 0a 53 54 41 26 37  |.LDA&75..|.STA&7|
00002250  31 0d 1a 86 0a 4c 44 41  26 37 36 0d 1a 90 0a 53  |1....LDA&76....S|
00002260  54 41 26 37 32 0d 1a 9a  0a 4c 44 41 26 37 37 0d  |TA&72....LDA&77.|
00002270  1a a4 0a 53 54 41 26 37  33 0d 1a ae 14 4c 44 59  |...STA&73....LDY|
00002280  20 64 69 63 74 69 6f 6e  5f 66 69 6c 65 0d 1a b8  | diction_file...|
00002290  0a 4a 53 52 20 72 64 0d  1a c2 09 4c 44 58 23 30  |.JSR rd....LDX#0|
000022a0  0d 1a cc 17 2e 6d 65 62  61 33 20 4c 44 41 20 73  |.....meba3 LDA s|
000022b0  74 72 69 6e 67 2c 58 0d  1a d6 0f 53 54 41 20 72  |tring,X....STA r|
000022c0  77 6f 72 64 2c 58 0d 1a  e0 07 49 4e 58 0d 1a ea  |word,X....INX...|
000022d0  0a 43 4d 50 23 26 44 0d  1a f4 0d 42 4e 45 20 6d  |.CMP#&D....BNE m|
000022e0  65 62 61 33 0d 1a fe 07  44 45 58 0d 1b 08 07 54  |eba3....DEX....T|
000022f0  58 41 0d 1b 12 13 4c 44  59 20 77 6f 72 64 5f 6c  |XA....LDY word_l|
00002300  65 6e 67 74 68 0d 1b 1c  0f 4a 53 52 20 63 6f 6d  |ength....JSR com|
00002310  70 61 72 65 0d 1b 30 09  43 4d 50 23 31 0d 1b 3a  |pare..0.CMP#1..:|
00002320  0d 42 4e 45 20 6d 65 66  6f 37 0d 1b 3c 16 4a 53  |.BNE mefo7..<.JS|
00002330  52 20 77 72 69 74 65 5f  64 69 63 74 69 6f 6e 32  |R write_diction2|
00002340  0d 1b 44 0b 4c 44 41 23  26 37 46 0d 1b 46 14 4c  |..D.LDA#&7F..F.L|
00002350  44 58 20 64 69 63 74 69  6f 6e 5f 66 69 6c 65 0d  |DX diction_file.|
00002360  1b 48 0e 4a 53 52 20 6f  73 62 79 74 65 0d 1b 4a  |.H.JSR osbyte..J|
00002370  09 43 50 58 23 30 0d 1b  4c 10 42 45 51 20 6d 65  |.CPX#0..L.BEQ me|
00002380  72 67 65 62 61 32 0d 1b  4e 0d 4a 4d 50 20 6d 65  |rgeba2..N.JMP me|
00002390  66 6f 34 0d 1b 8a 05 20  0d 1b a8 1b 2e 6d 65 66  |fo4.... .....mef|
000023a0  6f 37 20 4c 44 59 20 6e  65 77 74 69 6f 6e 5f 66  |o7 LDY newtion_f|
000023b0  69 6c 65 0d 1b ad 15 4a  53 52 20 77 72 69 74 65  |ile....JSR write|
000023c0  5f 64 69 63 74 69 6f 6e  0d 1b b2 05 20 0d 1b bc  |_diction.... ...|
000023d0  12 2e 6d 65 66 6f 33 20  4c 44 41 23 26 37 46 0d  |..mefo3 LDA#&7F.|
000023e0  1b c6 14 4c 44 58 20 64  69 63 74 69 6f 6e 5f 66  |...LDX diction_f|
000023f0  69 6c 65 0d 1b d0 0e 4a  53 52 20 6f 73 62 79 74  |ile....JSR osbyt|
00002400  65 0d 1b da 09 43 50 58  23 30 0d 1b e4 0d 42 4e  |e....CPX#0....BN|
00002410  45 20 6d 65 66 6f 34 0d  1b ee 05 20 0d 1b f8 10  |E mefo4.... ....|
00002420  4c 44 58 20 6e 65 77 5f  66 69 6c 65 0d 1c 02 0e  |LDX new_file....|
00002430  4a 53 52 20 6f 73 62 79  74 65 0d 1c 0c 09 43 50  |JSR osbyte....CP|
00002440  58 23 30 0d 1c 16 0d 42  4e 45 20 6d 65 66 6f 35  |X#0....BNE mefo5|
00002450  0d 1c 20 05 20 0d 1c 2a  10 4a 4d 50 20 6d 65 72  |.. . ..*.JMP mer|
00002460  67 65 62 61 31 0d 1c 34  05 20 0d 1c 3e 13 2e 6d  |geba1..4. ..>..m|
00002470  65 66 6f 34 20 4a 53 52  20 7a 65 64 73 0d 1c 48  |efo4 JSR zeds..H|
00002480  0d 4a 4d 50 20 6d 65 66  6f 36 0d 1c 52 1e 2e 6d  |.JMP mefo6..R..m|
00002490  65 66 6f 35 20 4a 53 52  20 6c 61 73 74 5f 6f 66  |efo5 JSR last_of|
000024a0  5f 64 69 63 74 69 6f 6e  0d 1c 5c 05 20 0d 1c 66  |_diction..\. ..f|
000024b0  1a 2e 6d 65 66 6f 36 20  4a 53 52 20 77 72 69 74  |..mefo6 JSR writ|
000024c0  65 5f 74 61 62 6c 65 0d  1c 70 09 4c 44 41 23 30  |e_table..p.LDA#0|
000024d0  0d 1c 7a 09 4c 44 59 23  30 0d 1c 84 0e 4a 53 52  |..z.LDY#0....JSR|
000024e0  20 6f 73 66 69 6e 64 0d  1c 8e 07 52 54 53 0d 1c  | osfind....RTS..|
000024f0  98 05 20 0d 1c e8 4c 2e  77 64 32 20 5c 20 53 70  |.. ...L.wd2 \ Sp|
00002500  65 63 69 61 6c 20 76 65  72 73 69 6f 6e 20 6f 66  |ecial version of|
00002510  20 77 72 69 74 65 20 64  69 63 74 69 6f 6e 61 72  | write dictionar|
00002520  79 20 28 77 64 29 20 6f  6e 6c 79 20 74 6f 20 62  |y (wd) only to b|
00002530  65 20 75 73 65 64 20 62  79 20 6d 65 72 67 65 0d  |e used by merge.|
00002540  1c f2 0e 4a 53 52 20 6f  73 6e 65 77 6c 0d 1c fc  |...JSR osnewl...|
00002550  05 20 0d 1d 06 09 4c 44  58 23 30 0d 1d 10 16 2e  |. ....LDX#0.....|
00002560  77 64 32 62 61 20 4c 44  41 20 72 77 6f 72 64 2c  |wd2ba LDA rword,|
00002570  58 0d 1d 1a 07 49 4e 58  0d 1d 24 0a 43 4d 50 23  |X....INX..$.CMP#|
00002580  26 44 0d 1d 2e 0d 42 4e  45 20 77 64 32 62 61 0d  |&D....BNE wd2ba.|
00002590  1d 38 07 44 45 58 0d 1d  42 07 44 45 58 0d 1d 4c  |.8.DEX..B.DEX..L|
000025a0  0b 53 54 58 20 6c 65 6e  0d 1d 51 14 4c 44 59 20  |.STX len..Q.LDY |
000025b0  6e 65 77 74 69 6f 6e 5f  66 69 6c 65 0d 1d 56 09  |newtion_file..V.|
000025c0  43 50 58 23 30 0d 1d 60  0d 42 45 51 20 77 64 32  |CPX#0..`.BEQ wd2|
000025d0  66 6f 0d 1d 6a 05 20 0d  1d 74 09 4c 44 58 23 30  |fo..j. ..t.LDX#0|
000025e0  0d 1d 88 17 2e 77 64 32  62 61 32 20 4c 44 41 20  |.....wd2ba2 LDA |
000025f0  72 77 6f 72 64 2c 58 0d  1d 92 0e 4a 53 52 20 6f  |rword,X....JSR o|
00002600  73 62 70 75 74 0d 1d 9c  0e 4a 53 52 20 6f 73 77  |sbput....JSR osw|
00002610  72 63 68 0d 1d a6 07 49  4e 58 0d 1d b0 0b 43 50  |rch....INX....CP|
00002620  58 20 6c 65 6e 0d 1d ba  0e 42 4e 45 20 77 64 32  |X len....BNE wd2|
00002630  62 61 32 0d 1d c4 05 20  0d 1d ce 16 2e 77 64 32  |ba2.... .....wd2|
00002640  66 6f 20 4c 44 41 20 72  77 6f 72 64 2c 58 0d 1d  |fo LDA rword,X..|
00002650  d8 0e 4a 53 52 20 6f 73  77 72 63 68 0d 1d e2 0a  |..JSR oswrch....|
00002660  84 41 23 31 32 38 0d 1d  ec 0e 4a 53 52 20 6f 73  |.A#128....JSR os|
00002670  62 70 75 74 0d 1d f6 07  52 54 53 0d 1e 00 05 20  |bput....RTS.... |
00002680  0d 1e 0a 1b 2e 7a 65 64  73 20 4a 53 52 20 77 72  |.....zeds JSR wr|
00002690  69 74 65 5f 64 69 63 74  69 6f 6e 0d 1e 0b 0d 4a  |ite_diction....J|
000026a0  4d 50 20 7a 65 64 66 6f  0d 1e 14 11 2e 7a 65 64  |MP zedfo.....zed|
000026b0  73 62 61 20 4c 44 41 23  30 0d 1e 1e 0b 4c 44 58  |sba LDA#0....LDX|
000026c0  23 26 37 30 0d 1e 28 10  4c 44 59 20 6e 65 77 5f  |#&70..(.LDY new_|
000026d0  66 69 6c 65 0d 1e 32 0e  4a 53 52 20 6f 73 61 72  |file..2.JSR osar|
000026e0  67 73 0d 1e 3c 0a 4a 53  52 20 72 64 0d 1e 46 09  |gs..<.JSR rd..F.|
000026f0  4c 44 58 23 30 0d 1e 50  17 2e 7a 65 64 62 61 20  |LDX#0..P..zedba |
00002700  4c 44 41 20 73 74 72 69  6e 67 2c 58 0d 1e 5a 0f  |LDA string,X..Z.|
00002710  53 54 41 20 72 77 6f 72  64 2c 58 0d 1e 64 07 49  |STA rword,X..d.I|
00002720  4e 58 0d 1e 6e 0a 43 4d  50 23 26 44 0d 1e 78 0d  |NX..n.CMP#&D..x.|
00002730  42 4e 45 20 7a 65 64 62  61 0d 1e 82 14 4c 44 59  |BNE zedba....LDY|
00002740  20 6e 65 77 74 69 6f 6e  5f 66 69 6c 65 0d 1e 8c  | newtion_file...|
00002750  16 4a 53 52 20 77 72 69  74 65 5f 64 69 63 74 69  |.JSR write_dicti|
00002760  6f 6e 32 0d 1e 96 12 2e  7a 65 64 66 6f 20 4c 44  |on2.....zedfo LD|
00002770  41 23 26 37 46 0d 1e a0  10 4c 44 58 20 6e 65 77  |A#&7F....LDX new|
00002780  5f 66 69 6c 65 0d 1e aa  0e 4a 53 52 20 6f 73 62  |_file....JSR osb|
00002790  79 74 65 0d 1e b4 09 43  50 58 23 30 0d 1e be 0e  |yte....CPX#0....|
000027a0  42 45 51 20 7a 65 64 73  62 61 0d 1e c8 07 52 54  |BEQ zedsba....RT|
000027b0  53 0d 1e d2 05 20 0d 1e  dc 1b 2e 6c 61 73 74 5f  |S.... .....last_|
000027c0  6f 66 5f 64 69 63 74 69  6f 6e 20 4c 44 41 26 37  |of_diction LDA&7|
000027d0  34 0d 1e e6 0a 53 54 41  26 37 30 0d 1e f0 0a 4c  |4....STA&70....L|
000027e0  44 41 26 37 35 0d 1e fa  0a 53 54 41 26 37 31 0d  |DA&75....STA&71.|
000027f0  1f 04 0a 4c 44 41 26 37  36 0d 1f 0e 0a 53 54 41  |...LDA&76....STA|
00002800  26 37 32 0d 1f 18 0a 4c  44 41 26 37 37 0d 1f 22  |&72....LDA&77.."|
00002810  0a 53 54 41 26 37 33 0d  1f 2c 14 4c 44 59 20 64  |.STA&73..,.LDY d|
00002820  69 63 74 69 6f 6e 5f 66  69 6c 65 0d 1f 36 0a 4a  |iction_file..6.J|
00002830  53 52 20 72 64 0d 1f 40  14 4c 44 59 20 64 69 63  |SR rd..@.LDY dic|
00002840  74 69 6f 6e 5f 66 69 6c  65 0d 1f 4a 09 4c 44 41  |tion_file..J.LDA|
00002850  23 30 0d 1f 54 0b 4c 44  58 23 26 37 34 0d 1f 5e  |#0..T.LDX#&74..^|
00002860  0e 4a 53 52 20 6f 73 61  72 67 73 0d 1f 68 09 4c  |.JSR osargs..h.L|
00002870  44 58 23 30 0d 1f 72 15  2e 6c 6f 66 20 4c 44 41  |DX#0..r..lof LDA|
00002880  20 73 74 72 69 6e 67 2c  58 0d 1f 7c 0e 53 54 41  | string,X..|.STA|
00002890  20 77 6f 72 64 2c 58 0d  1f 86 07 49 4e 58 0d 1f  | word,X....INX..|
000028a0  90 0a 43 4d 50 23 26 44  0d 1f 9a 0b 42 4e 45 20  |..CMP#&D....BNE |
000028b0  6c 6f 66 0d 1f a4 14 4c  44 59 20 6e 65 77 74 69  |lof....LDY newti|
000028c0  6f 6e 5f 66 69 6c 65 0d  1f ae 15 4a 53 52 20 77  |on_file....JSR w|
000028d0  72 69 74 65 5f 64 69 63  74 69 6f 6e 0d 1f b8 0b  |rite_diction....|
000028e0  4c 44 41 23 26 37 46 0d  1f c2 14 4c 44 58 20 64  |LDA#&7F....LDX d|
000028f0  69 63 74 69 6f 6e 5f 66  69 6c 65 0d 1f cc 0e 4a  |iction_file....J|
00002900  53 52 20 6f 73 62 79 74  65 0d 1f d6 09 43 50 58  |SR osbyte....CPX|
00002910  23 30 0d 1f e0 17 42 45  51 20 6c 61 73 74 5f 6f  |#0....BEQ last_o|
00002920  66 5f 64 69 63 74 69 6f  6e 0d 1f ea 07 52 54 53  |f_diction....RTS|
00002930  0d 1f f4 05 20 0d 1f fe  1b 2e 77 72 69 74 65 5f  |.... .....write_|
00002940  64 69 63 74 69 6f 6e 20  4c 44 41 20 77 6f 72 64  |diction LDA word|
00002950  0d 20 08 16 43 4d 50 20  63 75 72 72 65 6e 74 5f  |. ..CMP current_|
00002960  6c 65 74 74 65 72 0d 20  12 0c 42 45 51 20 77 72  |letter. ..BEQ wr|
00002970  66 6f 0d 20 1c 16 53 54  41 20 63 75 72 72 65 6e  |fo. ..STA curren|
00002980  74 5f 6c 65 74 74 65 72  0d 20 26 07 53 45 43 0d  |t_letter. &.SEC.|
00002990  20 30 0a 53 42 43 23 36  35 0d 20 35 0a 53 54 41  | 0.SBC#65. 5.STA|
000029a0  20 73 61 0d 20 3a 07 43  4c 43 0d 20 44 0a 41 44  | sa. :.CLC. D.AD|
000029b0  43 20 73 61 0d 20 4e 0a  41 44 43 20 73 61 0d 20  |C sa. N.ADC sa. |
000029c0  58 07 50 48 41 0d 20 62  0b 4c 44 58 23 26 37 30  |X.PHA. b.LDX#&70|
000029d0  0d 20 6c 09 4c 44 41 23  30 0d 20 71 14 4c 44 59  |. l.LDA#0. q.LDY|
000029e0  20 6e 65 77 74 69 6f 6e  5f 66 69 6c 65 0d 20 76  | newtion_file. v|
000029f0  0e 4a 53 52 20 6f 73 61  72 67 73 0d 20 80 07 50  |.JSR osargs. ..P|
00002a00  4c 41 0d 20 8a 07 54 41  58 0d 20 94 0a 4c 44 41  |LA. ..TAX. ..LDA|
00002a10  26 37 30 0d 20 9e 0f 53  54 41 20 74 61 62 6c 65  |&70. ..STA table|
00002a20  2c 58 0d 20 a8 0a 4c 44  41 26 37 31 0d 20 b2 11  |,X. ..LDA&71. ..|
00002a30  53 54 41 20 74 61 62 6c  65 2b 31 2c 58 0d 20 bc  |STA table+1,X. .|
00002a40  0a 4c 44 41 26 37 32 0d  20 c6 11 53 54 41 20 74  |.LDA&72. ..STA t|
00002a50  61 62 6c 65 2b 32 2c 58  0d 20 d0 05 20 0d 20 da  |able+2,X. .. . .|
00002a60  10 2e 77 72 66 6f 20 4a  4d 50 20 77 64 0d 20 e4  |..wrfo JMP wd. .|
00002a70  05 20 0d 20 ee 1d 2e 77  72 69 74 65 5f 64 69 63  |. . ...write_dic|
00002a80  74 69 6f 6e 32 20 4c 44  41 20 72 77 6f 72 64 0d  |tion2 LDA rword.|
00002a90  20 f8 16 43 4d 50 20 63  75 72 72 65 6e 74 5f 6c  | ..CMP current_l|
00002aa0  65 74 74 65 72 0d 21 02  0d 42 45 51 20 77 72 32  |etter.!..BEQ wr2|
00002ab0  66 6f 0d 21 0c 16 53 54  41 20 63 75 72 72 65 6e  |fo.!..STA curren|
00002ac0  74 5f 6c 65 74 74 65 72  0d 21 16 07 53 45 43 0d  |t_letter.!..SEC.|
00002ad0  21 20 0a 53 42 43 23 36  35 0d 21 25 0a 53 54 41  |! .SBC#65.!%.STA|
00002ae0  20 73 61 0d 21 2a 07 43  4c 43 0d 21 34 0a 41 44  | sa.!*.CLC.!4.AD|
00002af0  43 20 73 61 0d 21 3e 0a  41 44 43 20 73 61 0d 21  |C sa.!>.ADC sa.!|
00002b00  48 07 50 48 41 0d 21 52  0b 4c 44 58 23 26 37 30  |H.PHA.!R.LDX#&70|
00002b10  0d 21 5c 09 4c 44 41 23  30 0d 21 61 14 4c 44 59  |.!\.LDA#0.!a.LDY|
00002b20  20 6e 65 77 74 69 6f 6e  5f 66 69 6c 65 0d 21 66  | newtion_file.!f|
00002b30  0e 4a 53 52 20 6f 73 61  72 67 73 0d 21 70 07 50  |.JSR osargs.!p.P|
00002b40  4c 41 0d 21 7a 07 54 41  58 0d 21 84 0a 4c 44 41  |LA.!z.TAX.!..LDA|
00002b50  26 37 30 0d 21 8e 0f 53  54 41 20 74 61 62 6c 65  |&70.!..STA table|
00002b60  2c 58 0d 21 98 0a 4c 44  41 26 37 31 0d 21 a2 11  |,X.!..LDA&71.!..|
00002b70  53 54 41 20 74 61 62 6c  65 2b 31 2c 58 0d 21 ac  |STA table+1,X.!.|
00002b80  0a 4c 44 41 26 37 32 0d  21 b6 11 53 54 41 20 74  |.LDA&72.!..STA t|
00002b90  61 62 6c 65 2b 32 2c 58  0d 21 c0 05 20 0d 21 ca  |able+2,X.!.. .!.|
00002ba0  12 2e 77 72 32 66 6f 20  4a 4d 50 20 77 64 32 0d  |..wr2fo JMP wd2.|
00002bb0  21 d4 05 20 0d 21 de 18  2e 74 61 62 6c 65 20 45  |!.. .!...table E|
00002bc0  51 55 42 20 28 32 37 2a  33 29 2b 31 0d 21 e8 14  |QUB (27*3)+1.!..|
00002bd0  4f 50 54 20 a4 73 70 61  63 65 28 38 32 2c 30 29  |OPT .space(82,0)|
00002be0  0d 21 ed 0b 2e 73 61 20  42 52 4b 0d 21 f2 05 20  |.!...sa BRK.!.. |
00002bf0  0d 21 fc 16 2e 77 72 69  74 65 5f 74 61 62 6c 65  |.!...write_table|
00002c00  20 4c 44 41 23 32 0d 21  fd 14 4c 44 59 20 6e 65  | LDA#2.!..LDY ne|
00002c10  77 74 69 6f 6e 5f 66 69  6c 65 0d 21 fe 0b 4c 44  |wtion_file.!..LD|
00002c20  58 23 26 37 30 0d 21 ff  0e 4a 53 52 20 6f 73 61  |X#&70.!..JSR osa|
00002c30  72 67 73 0d 22 01 0a 4c  44 41 26 37 30 0d 22 02  |rgs."..LDA&70.".|
00002c40  10 53 54 41 20 74 61 62  6c 65 2b 37 38 0d 22 03  |.STA table+78.".|
00002c50  0a 4c 44 41 26 37 31 0d  22 04 10 53 54 41 20 74  |.LDA&71."..STA t|
00002c60  61 62 6c 65 2b 37 39 0d  22 05 0a 4c 44 41 26 37  |able+79."..LDA&7|
00002c70  32 0d 22 06 10 53 54 41  20 74 61 62 6c 65 2b 38  |2."..STA table+8|
00002c80  30 0d 22 07 09 4c 44 41  23 30 0d 22 10 0a 53 54  |0."..LDA#0."..ST|
00002c90  41 26 37 30 0d 22 1a 0a  53 54 41 26 37 31 0d 22  |A&70."..STA&71."|
00002ca0  24 0a 53 54 41 26 37 32  0d 22 2e 0a 53 54 41 26  |$.STA&72."..STA&|
00002cb0  37 33 0d 22 38 0b 4c 44  58 23 26 37 30 0d 22 42  |73."8.LDX#&70."B|
00002cc0  14 4c 44 59 20 6e 65 77  74 69 6f 6e 5f 66 69 6c  |.LDY newtion_fil|
00002cd0  65 0d 22 4c 09 4c 44 41  23 31 0d 22 56 0e 4a 53  |e."L.LDA#1."V.JS|
00002ce0  52 20 6f 73 61 72 67 73  0d 22 60 05 20 0d 22 6a  |R osargs."`. ."j|
00002cf0  09 4c 44 58 23 30 0d 22  74 15 2e 77 74 62 61 20  |.LDX#0."t..wtba |
00002d00  4c 44 41 20 74 61 62 6c  65 2c 58 0d 22 7e 0e 4a  |LDA table,X."~.J|
00002d10  53 52 20 6f 73 62 70 75  74 0d 22 88 07 49 4e 58  |SR osbput."..INX|
00002d20  0d 22 92 0a 43 50 58 23  38 31 0d 22 9c 0c 42 4e  |."..CPX#81."..BN|
00002d30  45 20 77 74 62 61 0d 22  9d 0b 4c 44 41 23 26 46  |E wtba."..LDA#&F|
00002d40  46 0d 22 9e 0d 4a 53 52  6f 73 62 70 75 74 0d 22  |F."..JSRosbput."|
00002d50  a6 07 52 54 53 0d 23 28  05 5d 0d 23 32 05 ed 0d  |..RTS.#(.].#2...|
00002d60  23 37 12 f1 22 53 61 76  69 6e 67 20 53 6f 72 74  |#7.."Saving Sort|
00002d70  22 0d 23 3c 2d 78 3d a4  6f 73 5f 73 61 76 65 28  |".#<-x=.os_save(|
00002d80  22 55 2e 53 4f 52 54 22  2c 73 74 61 72 74 2c 73  |"U.SORT",start,s|
00002d90  74 61 72 74 2c 73 74 61  72 74 2c 50 25 29 0d 23  |tart,start,P%).#|
00002da0  46 05 e0 0d 23 50 05 20  0d 23 8c 2c dd a4 6f 73  |F...#P. .#.,..os|
00002db0  5f 73 61 76 65 28 66 69  6c 65 24 2c 6c 6f 61 64  |_save(file$,load|
00002dc0  25 2c 65 78 65 63 25 2c  73 74 61 72 74 25 2c 65  |%,exec%,start%,e|
00002dd0  6e 64 25 29 0d 23 96 08  41 25 3d 30 0d 23 a0 12  |nd%).#..A%=0.#..|
00002de0  58 25 3d 64 61 74 61 25  20 83 20 32 35 36 0d 23  |X%=data% . 256.#|
00002df0  aa 12 59 25 3d 64 61 74  61 25 20 81 20 32 35 36  |..Y%=data% . 256|
00002e00  0d 23 b4 13 21 64 61 74  61 25 3d 64 61 74 61 25  |.#..!data%=data%|
00002e10  2b 31 38 0d 23 be 14 21  28 64 61 74 61 25 2b 32  |+18.#..!(data%+2|
00002e20  29 3d 6c 6f 61 64 25 0d  23 c8 14 21 28 64 61 74  |)=load%.#..!(dat|
00002e30  61 25 2b 36 29 3d 65 78  65 63 25 0d 23 d2 16 21  |a%+6)=exec%.#..!|
00002e40  28 64 61 74 61 25 2b 31  30 29 3d 73 74 61 72 74  |(data%+10)=start|
00002e50  25 0d 23 dc 14 21 28 64  61 74 61 25 2b 31 34 29  |%.#..!(data%+14)|
00002e60  3d 65 6e 64 25 0d 23 e6  15 24 28 64 61 74 61 25  |=end%.#..$(data%|
00002e70  2b 31 38 29 3d 66 69 6c  65 24 0d 23 f0 10 3a 3d  |+18)=file$.#..:=|
00002e80  ba 26 46 46 44 44 20 80  26 33 0d 23 fa 05 20 0d  |.&FFDD .&3.#.. .|
00002e90  26 ac 10 dd a4 73 70 61  63 65 28 78 2c 79 29 0d  |&....space(x,y).|
00002ea0  26 b6 1a e3 20 50 25 3d  50 25 20 b8 20 50 25 2b  |&... P%=P% . P%+|
00002eb0  78 3a 3f 50 25 3d 30 3a  ed 0d 26 c0 0a 3a 3d 70  |x:?P%=0:..&..:=p|
00002ec0  61 73 73 0d ff                                    |ass..|
00002ec5
Speller/M/SORT.m0
Speller/M/SORT.m1
Speller/M/SORT.m2
Speller/M/SORT.m4
Speller/M/SORT.m5