Home » CEEFAX disks » telesoftware9.adl » 30-09-88/FILES
30-09-88/FILES
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 » telesoftware9.adl |
Filename: | 30-09-88/FILES |
Read OK: | ✔ |
File size: | 1287 bytes |
Load address: | FFFF1900 |
Exec address: | FFFF8023 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- CEEFAX disks » telesoftware5.adl » 22-01-88/FILES
- CEEFAX disks » telesoftware9.adl » 30-09-88/FILES
File contents
10REM: FILES 20MODE7 30HIMEM=&3C00 40DIM save 50 50diff=&8000-HIMEM 60directory=&70 70private=directory+2 80catbuff=directory+4 90clibuff=directory+6 100block=directory+8 110address=directory+10 120comvec=&F2 130romnumber=&F4 140errornum=&FD 150errstack=&100 160workspace=&DF0 170osargs=&FFDA 180osrdch=&FFE0 190osasci=&FFE3 200osnewl=&FFE7 210osword=&FFF1 220osbyte=&FFF4 230oscli=&FFF7 240FOR pass = 0 TO 2 STEP 2 250P%=HIMEM 260[OPT pass 270BRK 280BRK 290BRK 300JMP service+diff 310OPT FNequb(&82) 320OPT FNequb((copyright+diff) MOD 256) 330BRK 340.title 350OPT FNequs("FILES") 360.copyright 370BRK 380OPT FNequs("(C) Gordon Horsington 1987") 390BRK 400.service 410PHA 420CMP #2 430BNE tryfour 440TYA 450PHA 460STA workspace,X 470LDA #0 480STA private 490STY private+1 500LDY #&FF 510STA (private),Y \ 0 = utility off 520PLA 530TAY 540INY \ 2 pages of 550INY \ private workspace 560PLA 570RTS 580.tryfour 590CMP #4 600BEQ unrecognised 610CMP #6 620BNE out 630TXA 640PHA 650TYA 660PHA 670LDX romnumber 680LDA workspace,X 690STA private+1 700LDA #0 710STA private 720LDY #&FF 730LDA (private),Y 740BEQ noton 750INY 760LDA (errornum),Y 770CMP #&BE \ Cat full 780BEQ change 790CMP #&C6 \ Disc full 800BEQ change 810.noton 820PLA 830TAY 840PLA 850TAX 860.out 870PLA 880RTS 890.change 900PLA \ Y 910PLA \ X 920PLA \ A 930PLA \ Status register 940PLA \ Return 950PLA \ address 960LDX #(swapdisc+diff) MOD 256 970LDY #(swapdisc+diff) DIV 256 980JSR print+diff 990.spacebar 1000LDA #&7A 1010JSR osbyte \ Scan keyboard 1020CPX #&62 1030BNE spacebar \ Wait for Space 1040JMP another+diff 1050.unrecognised 1060TXA 1070PHA 1080TYA 1090PHA 1100LDX #&FF 1110.comloop 1120INX 1130LDA title+diff,X 1140BEQ found 1150LDA (comvec),Y 1160INY 1170CMP #ASC(".") 1180BEQ found 1190AND #&DF 1200CMP title+diff,X 1210BEQ comloop 1220PLA 1230TAY 1240PLA 1250TAX 1260PLA 1270RTS 1280.found 1290PLA 1300PLA 1310PLA 1320LDA #0 1330TAX 1340TAY 1350JSR osargs 1360CMP #4 \ Is DFS active? 1370BEQ dfs 1380LDA #(wrong+diff) MOD 256 1390STA address 1400LDA #(wrong+diff) DIV 256 1410STA address+1 1420LDY #&FF 1430.errorloop 1440INY 1450LDA (address),Y 1460STA errstack,Y 1470BPL errorloop 1480JMP errstack 1490.dfs 1500LDX #(go+diff) MOD 256 1510LDY #(go+diff) DIV 256 1520JSR print+diff 1530JSR osrdch 1540AND #&DF 1550PHA 1560JSR osasci 1570JSR osnewl 1580PLA 1590CMP #ASC("Y") 1600BEQ yes 1610LDA #0 1620RTS 1630.yes 1640JSR osnewl 1650LDX romnumber 1660LDA workspace,X 1670STA block+1 1680STA clibuff+1 1690STA private+1 1700STA directory+1 1710CLC 1720ADC #1 1730STA catbuff+1 1740LDA #&80 1750STA block 1760LDY #8 1770STY catbuff 1780INY 1790STY directory 1800LDA #0 1810STA private 1820LDA #&FF 1830TAY 1840STA (private),Y \ &FF = utility on 1850INY \ Y=0 1860.dataloop 1870LDA data+diff,Y 1880STA (block),Y 1890INY 1900CPY #&A 1910BCC dataloop 1920LDY #2 1930LDA catbuff+1 1940STA (block),Y 1950LDY #0 1960.copyloop 1970LDA copy+diff,Y 1980STA (private),Y 1990INY 2000CPY #&B 2010BCC copyloop 2020STY clibuff 2030LDA #&7F 2040LDX block 2050LDY block+1 2060JSR osword \ Read catalogue 2070.catalogue 2080LDY #0 2090.transfer 2100LDA (catbuff),Y 2110STA (clibuff),Y 2120INY 2130CPY #7 2140BCC transfer 2150LDA #&D 2160STA (clibuff),Y 2170LDA (catbuff),Y 2180AND #&7F 2190CMP #ASC(" ") 2200BCC finish 2210LDY #0 2220STA (directory),Y 2230LDA catbuff 2240CLC 2250ADC #8 2260STA catbuff 2270.another 2280LDX #0 2290LDY clibuff+1 2300JSR oscli 2310LDA catbuff 2320BNE catalogue 2330.finish 2340LDA #0 2350LDY #&FF 2360STA (private),Y \ 0 = utility off 2370JSR osnewl 2380LDA #&F 2390LDX #0 2400JSR osbyte \ Flush buffers 2410LDA #&BB 2420LDX #0 2430LDY #&FF 2440JSR osbyte \ Find BASIC 2450LDA #&8E 2460JMP osbyte \ Enter BASIC 2470.print 2480STX address 2490STY address+1 2500LDA #&F 2510LDX #0 2520JSR osbyte \ Flush buffers 2530LDY #0 2540.printloop 2550LDA (address),Y 2560BEQ endprint 2570JSR osasci 2580INY 2590JMP printloop+diff 2600.endprint 2610RTS 2620.data 2630OPT FNequd(&FF000000) 2640OPT FNequd(&005303FF) 2650OPT FNequw(&2100) 2660.copy 2670OPT FNequs("COPY 0 1 *.") 2680.swapdisc 2690OPT FNequw(&070D) 2700OPT FNequs("Insert a new disc in ") 2710OPT FNequb(&3A) 2720OPT FNequs("1") 2730OPT FNequb(&0D) 2740OPT FNequs("and press the Space Bar") 2750OPT FNequw(&0D0D) 2760BRK 2770.go 2780OPT FNequs("Copy all files from ") 2790OPT FNequb(&3A) 2800OPT FNequs("0 to ") 2810OPT FNequb(&3A) 2820OPT FNequs("1") 2830OPT FNequb(&0D) 2840OPT FNequs("Go (Y/N) ? ") 2850BRK 2860.wrong 2870BRK 2880BRK 2890OPT FNequs("DFS not active") 2900BRK 2910OPT FNequb(&FF) 2920.lastbyte 2930] 2940NEXT 2950INPUT'"Save filename = "filename$ 2960IF filename$="" END 2970$save="SAVE "+filename$+" "+STR$~(HIMEM)+" "+STR$~(lastbyte)+" FFFF8000 FFFF8000" 2980X%=save MOD 256 2990Y%=save DIV 256 3000*OPT1,2 3010CALL oscli 3020*OPT1,0 3030END 3040DEFFNequb(byte) 3050?P%=byte 3060P%=P%+1 3070=pass 3080DEFFNequw(word) 3090?P%=word MOD 256 3100P%?1=word DIV 256 3110P%=P%+2 3120=pass 3130DEFFNequd(double) 3140!P%=double 3150P%=P%+4 3160=pass 3170DEFFNequs(string$) 3180$P%=string$ 3190P%=P%+LEN(string$) 3200=pass
�: FILES �7 �=&3C00 ( � save 50 2diff=&8000-� <directory=&70 Fprivate=directory+2 Pcatbuff=directory+4 Zclibuff=directory+6 dblock=directory+8 naddress=directory+10 xcomvec=&F2 �romnumber=&F4 �errornum=&FD �errstack=&100 �workspace=&DF0 �osargs=&FFDA �osrdch=&FFE0 �osasci=&FFE3 �osnewl=&FFE7 �osword=&FFF1 �osbyte=&FFF4 �oscli=&FFF7 �� pass = 0 � 2 � 2 �P%=� [OPT pass BRK BRK "BRK ,JMP service+diff 6OPT �equb(&82) @%OPT �equb((copyright+diff) � 256) JBRK T .title ^OPT �equs("FILES") h.copyright rBRK |+OPT �equs("(C) Gordon Horsington 1987") �BRK �.service �PHA � CMP #2 �BNE tryfour �TYA �PHA �STA workspace,X � LDA #0 �STA private �STY private+1 �LDY #&FF �%STA (private),Y \ 0 = utility off PLA TAY INY \ 2 pages of &INY \ private workspace 0PLA :RTS D.tryfour N CMP #4 XBEQ unrecognised b CMP #6 lBNE out vTXA �PHA �TYA �PHA �LDX romnumber �LDA workspace,X �STA private+1 � LDA #0 �STA private �LDY #&FF �LDA (private),Y � BEQ noton �INY �LDA (errornum),Y CMP #&BE \ Cat full BEQ change CMP #&C6 \ Disc full BEQ change * .noton 4PLA >TAY HPLA RTAX \.out fPLA pRTS z.change �PLA \ Y �PLA \ X �PLA \ A �PLA \ Status register �PLA \ Return �PLA \ address �LDX #(swapdisc+diff) � 256 �LDY #(swapdisc+diff) � 256 �JSR print+diff � .spacebar �LDA #&7A �JSR osbyte \ Scan keyboard �CPX #&62 !BNE spacebar \ Wait for Space JMP another+diff .unrecognised $TXA .PHA 8TYA BPHA LLDX #&FF V.comloop `INX jLDA title+diff,X t BEQ found ~LDA (comvec),Y �INY �CMP #�(".") � BEQ found � � #&DF �CMP title+diff,X �BEQ comloop �PLA �TAY �PLA �TAX �PLA �RTS .found PLA PLA PLA ( LDA #0 2TAX <TAY FJSR osargs PCMP #4 \ Is DFS active? ZBEQ dfs dLDA #(wrong+diff) � 256 nSTA address xLDA #(wrong+diff) � 256 �STA address+1 �LDY #&FF �.errorloop �INY �LDA (address),Y �STA errstack,Y �BPL errorloop �JMP errstack �.dfs �LDX #(go+diff) � 256 �LDY #(go+diff) � 256 �JSR print+diff �JSR osrdch � #&DF PHA JSR osasci "JSR osnewl ,PLA 6CMP #�("Y") @BEQ yes J LDA #0 TRTS ^.yes hJSR osnewl rLDX romnumber |LDA workspace,X �STA block+1 �STA clibuff+1 �STA private+1 �STA directory+1 �CLC � ADC #1 �STA catbuff+1 �LDA #&80 � STA block � LDY #8 �STY catbuff �INY �STY directory LDA #0 STA private LDA #&FF &TAY 0&STA (private),Y \ &FF = utility on : INY \ Y=0 D .dataloop NLDA data+diff,Y XSTA (block),Y bINY lCPY #&A vBCC dataloop � LDY #2 �LDA catbuff+1 �STA (block),Y � LDY #0 � .copyloop �LDA copy+diff,Y �STA (private),Y �INY �CPY #&B �BCC copyloop �STY clibuff �LDA #&7F � LDX block LDY block+1 JSR osword \ Read catalogue .catalogue LDY #0 * .transfer 4LDA (catbuff),Y >STA (clibuff),Y HINY R CPY #7 \BCC transfer fLDA #&D pSTA (clibuff),Y zLDA (catbuff),Y � � #&7F �CMP #�(" ") �BCC finish � LDY #0 �STA (directory),Y �LDA catbuff �CLC � ADC #8 �STA catbuff �.another � LDX #0 �LDY clibuff+1 � JSR oscli LDA catbuff BNE catalogue .finish $ LDA #0 .LDY #&FF 8%STA (private),Y \ 0 = utility off BJSR osnewl LLDA #&F V LDX #0 `JSR osbyte \ Flush buffers jLDA #&BB t LDX #0 ~LDY #&FF �JSR osbyte \ Find BASIC �LDA #&8E �JMP osbyte \ Enter BASIC � .print �STX address �STY address+1 �LDA #&F � LDX #0 �JSR osbyte \ Flush buffers � LDY #0 �.printloop �LDA (address),Y BEQ endprint JSR osasci INY JMP printloop+diff ( .endprint 2RTS < .data FOPT �equd(&FF000000) POPT �equd(&005303FF) ZOPT �equw(&2100) d .copy nOPT �equs("COPY 0 1 *.") x .swapdisc �OPT �equw(&070D) �&OPT �equs("Insert a new disc in ") �OPT �equb(&3A) �OPT �equs("1") �OPT �equb(&0D) �(OPT �equs("and press the Space Bar") �OPT �equw(&0D0D) �BRK �.go �%OPT �equs("Copy all files from ") �OPT �equb(&3A) �OPT �equs("0 to ") �OPT �equb(&3A) OPT �equs("1") OPT �equb(&0D) OPT �equs("Go (Y/N) ? ") "BRK , .wrong 6BRK @BRK JOPT �equs("DFS not active") TBRK ^OPT �equb(&FF) h .lastbyte r] |� �!�'"Save filename = "filename$ �� filename$="" � �K$save="SAVE "+filename$+" "+�~(�)+" "+�~(lastbyte)+" FFFF8000 FFFF8000" �X%=save � 256 �Y%=save � 256 �*OPT1,2 �� oscli �*OPT1,0 �� �ݤequb(byte) �?P%=byte �P%=P%+1 � =pass ݤequw(word) ?P%=word � 256 P%?1=word � 256 &P%=P%+2 0 =pass :ݤequd(double) D!P%=double NP%=P%+4 X =pass bݤequs(string$) l$P%=string$ vP%=P%+�(string$) � =pass �
00000000 0d 00 0a 0c f4 3a 20 46 49 4c 45 53 0d 00 14 06 |.....: FILES....| 00000010 eb 37 0d 00 1e 0b d3 3d 26 33 43 30 30 0d 00 28 |.7.....=&3C00..(| 00000020 0d de 20 73 61 76 65 20 35 30 0d 00 32 10 64 69 |.. save 50..2.di| 00000030 66 66 3d 26 38 30 30 30 2d 93 0d 00 3c 11 64 69 |ff=&8000-...<.di| 00000040 72 65 63 74 6f 72 79 3d 26 37 30 0d 00 46 17 70 |rectory=&70..F.p| 00000050 72 69 76 61 74 65 3d 64 69 72 65 63 74 6f 72 79 |rivate=directory| 00000060 2b 32 0d 00 50 17 63 61 74 62 75 66 66 3d 64 69 |+2..P.catbuff=di| 00000070 72 65 63 74 6f 72 79 2b 34 0d 00 5a 17 63 6c 69 |rectory+4..Z.cli| 00000080 62 75 66 66 3d 64 69 72 65 63 74 6f 72 79 2b 36 |buff=directory+6| 00000090 0d 00 64 15 62 6c 6f 63 6b 3d 64 69 72 65 63 74 |..d.block=direct| 000000a0 6f 72 79 2b 38 0d 00 6e 18 61 64 64 72 65 73 73 |ory+8..n.address| 000000b0 3d 64 69 72 65 63 74 6f 72 79 2b 31 30 0d 00 78 |=directory+10..x| 000000c0 0e 63 6f 6d 76 65 63 3d 26 46 32 0d 00 82 11 72 |.comvec=&F2....r| 000000d0 6f 6d 6e 75 6d 62 65 72 3d 26 46 34 0d 00 8c 10 |omnumber=&F4....| 000000e0 65 72 72 6f 72 6e 75 6d 3d 26 46 44 0d 00 96 11 |errornum=&FD....| 000000f0 65 72 72 73 74 61 63 6b 3d 26 31 30 30 0d 00 a0 |errstack=&100...| 00000100 12 77 6f 72 6b 73 70 61 63 65 3d 26 44 46 30 0d |.workspace=&DF0.| 00000110 00 aa 10 6f 73 61 72 67 73 3d 26 46 46 44 41 0d |...osargs=&FFDA.| 00000120 00 b4 10 6f 73 72 64 63 68 3d 26 46 46 45 30 0d |...osrdch=&FFE0.| 00000130 00 be 10 6f 73 61 73 63 69 3d 26 46 46 45 33 0d |...osasci=&FFE3.| 00000140 00 c8 10 6f 73 6e 65 77 6c 3d 26 46 46 45 37 0d |...osnewl=&FFE7.| 00000150 00 d2 10 6f 73 77 6f 72 64 3d 26 46 46 46 31 0d |...osword=&FFF1.| 00000160 00 dc 10 6f 73 62 79 74 65 3d 26 46 46 46 34 0d |...osbyte=&FFF4.| 00000170 00 e6 0f 6f 73 63 6c 69 3d 26 46 46 46 37 0d 00 |...oscli=&FFF7..| 00000180 f0 16 e3 20 70 61 73 73 20 3d 20 30 20 b8 20 32 |... pass = 0 . 2| 00000190 20 88 20 32 0d 00 fa 08 50 25 3d 93 0d 01 04 0d | . 2....P%=.....| 000001a0 5b 4f 50 54 20 70 61 73 73 0d 01 0e 07 42 52 4b |[OPT pass....BRK| 000001b0 0d 01 18 07 42 52 4b 0d 01 22 07 42 52 4b 0d 01 |....BRK..".BRK..| 000001c0 2c 14 4a 4d 50 20 73 65 72 76 69 63 65 2b 64 69 |,.JMP service+di| 000001d0 66 66 0d 01 36 12 4f 50 54 20 a4 65 71 75 62 28 |ff..6.OPT .equb(| 000001e0 26 38 32 29 0d 01 40 25 4f 50 54 20 a4 65 71 75 |&82)..@%OPT .equ| 000001f0 62 28 28 63 6f 70 79 72 69 67 68 74 2b 64 69 66 |b((copyright+dif| 00000200 66 29 20 83 20 32 35 36 29 0d 01 4a 07 42 52 4b |f) . 256)..J.BRK| 00000210 0d 01 54 0a 2e 74 69 74 6c 65 0d 01 5e 16 4f 50 |..T..title..^.OP| 00000220 54 20 a4 65 71 75 73 28 22 46 49 4c 45 53 22 29 |T .equs("FILES")| 00000230 0d 01 68 0e 2e 63 6f 70 79 72 69 67 68 74 0d 01 |..h..copyright..| 00000240 72 07 42 52 4b 0d 01 7c 2b 4f 50 54 20 a4 65 71 |r.BRK..|+OPT .eq| 00000250 75 73 28 22 28 43 29 20 47 6f 72 64 6f 6e 20 48 |us("(C) Gordon H| 00000260 6f 72 73 69 6e 67 74 6f 6e 20 31 39 38 37 22 29 |orsington 1987")| 00000270 0d 01 86 07 42 52 4b 0d 01 90 0c 2e 73 65 72 76 |....BRK.....serv| 00000280 69 63 65 0d 01 9a 07 50 48 41 0d 01 a4 0a 43 4d |ice....PHA....CM| 00000290 50 20 23 32 0d 01 ae 0f 42 4e 45 20 74 72 79 66 |P #2....BNE tryf| 000002a0 6f 75 72 0d 01 b8 07 54 59 41 0d 01 c2 07 50 48 |our....TYA....PH| 000002b0 41 0d 01 cc 13 53 54 41 20 77 6f 72 6b 73 70 61 |A....STA workspa| 000002c0 63 65 2c 58 0d 01 d6 0a 4c 44 41 20 23 30 0d 01 |ce,X....LDA #0..| 000002d0 e0 0f 53 54 41 20 70 72 69 76 61 74 65 0d 01 ea |..STA private...| 000002e0 11 53 54 59 20 70 72 69 76 61 74 65 2b 31 0d 01 |.STY private+1..| 000002f0 f4 0c 4c 44 59 20 23 26 46 46 0d 01 fe 25 53 54 |..LDY #&FF...%ST| 00000300 41 20 28 70 72 69 76 61 74 65 29 2c 59 20 5c 20 |A (private),Y \ | 00000310 30 20 3d 20 75 74 69 6c 69 74 79 20 6f 66 66 0d |0 = utility off.| 00000320 02 08 07 50 4c 41 0d 02 12 07 54 41 59 0d 02 1c |...PLA....TAY...| 00000330 14 49 4e 59 20 5c 20 32 20 70 61 67 65 73 20 6f |.INY \ 2 pages o| 00000340 66 0d 02 26 1b 49 4e 59 20 5c 20 70 72 69 76 61 |f..&.INY \ priva| 00000350 74 65 20 77 6f 72 6b 73 70 61 63 65 0d 02 30 07 |te workspace..0.| 00000360 50 4c 41 0d 02 3a 07 52 54 53 0d 02 44 0c 2e 74 |PLA..:.RTS..D..t| 00000370 72 79 66 6f 75 72 0d 02 4e 0a 43 4d 50 20 23 34 |ryfour..N.CMP #4| 00000380 0d 02 58 14 42 45 51 20 75 6e 72 65 63 6f 67 6e |..X.BEQ unrecogn| 00000390 69 73 65 64 0d 02 62 0a 43 4d 50 20 23 36 0d 02 |ised..b.CMP #6..| 000003a0 6c 0b 42 4e 45 20 6f 75 74 0d 02 76 07 54 58 41 |l.BNE out..v.TXA| 000003b0 0d 02 80 07 50 48 41 0d 02 8a 07 54 59 41 0d 02 |....PHA....TYA..| 000003c0 94 07 50 48 41 0d 02 9e 11 4c 44 58 20 72 6f 6d |..PHA....LDX rom| 000003d0 6e 75 6d 62 65 72 0d 02 a8 13 4c 44 41 20 77 6f |number....LDA wo| 000003e0 72 6b 73 70 61 63 65 2c 58 0d 02 b2 11 53 54 41 |rkspace,X....STA| 000003f0 20 70 72 69 76 61 74 65 2b 31 0d 02 bc 0a 4c 44 | private+1....LD| 00000400 41 20 23 30 0d 02 c6 0f 53 54 41 20 70 72 69 76 |A #0....STA priv| 00000410 61 74 65 0d 02 d0 0c 4c 44 59 20 23 26 46 46 0d |ate....LDY #&FF.| 00000420 02 da 13 4c 44 41 20 28 70 72 69 76 61 74 65 29 |...LDA (private)| 00000430 2c 59 0d 02 e4 0d 42 45 51 20 6e 6f 74 6f 6e 0d |,Y....BEQ noton.| 00000440 02 ee 07 49 4e 59 0d 02 f8 14 4c 44 41 20 28 65 |...INY....LDA (e| 00000450 72 72 6f 72 6e 75 6d 29 2c 59 0d 03 02 17 43 4d |rrornum),Y....CM| 00000460 50 20 23 26 42 45 20 5c 20 43 61 74 20 66 75 6c |P #&BE \ Cat ful| 00000470 6c 0d 03 0c 0e 42 45 51 20 63 68 61 6e 67 65 0d |l....BEQ change.| 00000480 03 16 18 43 4d 50 20 23 26 43 36 20 5c 20 44 69 |...CMP #&C6 \ Di| 00000490 73 63 20 66 75 6c 6c 0d 03 20 0e 42 45 51 20 63 |sc full.. .BEQ c| 000004a0 68 61 6e 67 65 0d 03 2a 0a 2e 6e 6f 74 6f 6e 0d |hange..*..noton.| 000004b0 03 34 07 50 4c 41 0d 03 3e 07 54 41 59 0d 03 48 |.4.PLA..>.TAY..H| 000004c0 07 50 4c 41 0d 03 52 07 54 41 58 0d 03 5c 08 2e |.PLA..R.TAX..\..| 000004d0 6f 75 74 0d 03 66 07 50 4c 41 0d 03 70 07 52 54 |out..f.PLA..p.RT| 000004e0 53 0d 03 7a 0b 2e 63 68 61 6e 67 65 0d 03 84 0b |S..z..change....| 000004f0 50 4c 41 20 5c 20 59 0d 03 8e 0b 50 4c 41 20 5c |PLA \ Y....PLA \| 00000500 20 58 0d 03 98 0b 50 4c 41 20 5c 20 41 0d 03 a2 | X....PLA \ A...| 00000510 19 50 4c 41 20 5c 20 53 74 61 74 75 73 20 72 65 |.PLA \ Status re| 00000520 67 69 73 74 65 72 0d 03 ac 10 50 4c 41 20 5c 20 |gister....PLA \ | 00000530 52 65 74 75 72 6e 0d 03 b6 11 50 4c 41 20 5c 20 |Return....PLA \ | 00000540 61 64 64 72 65 73 73 0d 03 c0 1e 4c 44 58 20 23 |address....LDX #| 00000550 28 73 77 61 70 64 69 73 63 2b 64 69 66 66 29 20 |(swapdisc+diff) | 00000560 83 20 32 35 36 0d 03 ca 1e 4c 44 59 20 23 28 73 |. 256....LDY #(s| 00000570 77 61 70 64 69 73 63 2b 64 69 66 66 29 20 81 20 |wapdisc+diff) . | 00000580 32 35 36 0d 03 d4 12 4a 53 52 20 70 72 69 6e 74 |256....JSR print| 00000590 2b 64 69 66 66 0d 03 de 0d 2e 73 70 61 63 65 62 |+diff.....spaceb| 000005a0 61 72 0d 03 e8 0c 4c 44 41 20 23 26 37 41 0d 03 |ar....LDA #&7A..| 000005b0 f2 1e 4a 53 52 20 6f 73 62 79 74 65 20 5c 20 53 |..JSR osbyte \ S| 000005c0 63 61 6e 20 6b 65 79 62 6f 61 72 64 0d 03 fc 0c |can keyboard....| 000005d0 43 50 58 20 23 26 36 32 0d 04 06 21 42 4e 45 20 |CPX #&62...!BNE | 000005e0 73 70 61 63 65 62 61 72 20 5c 20 57 61 69 74 20 |spacebar \ Wait | 000005f0 66 6f 72 20 53 70 61 63 65 0d 04 10 14 4a 4d 50 |for Space....JMP| 00000600 20 61 6e 6f 74 68 65 72 2b 64 69 66 66 0d 04 1a | another+diff...| 00000610 11 2e 75 6e 72 65 63 6f 67 6e 69 73 65 64 0d 04 |..unrecognised..| 00000620 24 07 54 58 41 0d 04 2e 07 50 48 41 0d 04 38 07 |$.TXA....PHA..8.| 00000630 54 59 41 0d 04 42 07 50 48 41 0d 04 4c 0c 4c 44 |TYA..B.PHA..L.LD| 00000640 58 20 23 26 46 46 0d 04 56 0c 2e 63 6f 6d 6c 6f |X #&FF..V..comlo| 00000650 6f 70 0d 04 60 07 49 4e 58 0d 04 6a 14 4c 44 41 |op..`.INX..j.LDA| 00000660 20 74 69 74 6c 65 2b 64 69 66 66 2c 58 0d 04 74 | title+diff,X..t| 00000670 0d 42 45 51 20 66 6f 75 6e 64 0d 04 7e 12 4c 44 |.BEQ found..~.LD| 00000680 41 20 28 63 6f 6d 76 65 63 29 2c 59 0d 04 88 07 |A (comvec),Y....| 00000690 49 4e 59 0d 04 92 0f 43 4d 50 20 23 97 28 22 2e |INY....CMP #.(".| 000006a0 22 29 0d 04 9c 0d 42 45 51 20 66 6f 75 6e 64 0d |")....BEQ found.| 000006b0 04 a6 0a 80 20 23 26 44 46 0d 04 b0 14 43 4d 50 |.... #&DF....CMP| 000006c0 20 74 69 74 6c 65 2b 64 69 66 66 2c 58 0d 04 ba | title+diff,X...| 000006d0 0f 42 45 51 20 63 6f 6d 6c 6f 6f 70 0d 04 c4 07 |.BEQ comloop....| 000006e0 50 4c 41 0d 04 ce 07 54 41 59 0d 04 d8 07 50 4c |PLA....TAY....PL| 000006f0 41 0d 04 e2 07 54 41 58 0d 04 ec 07 50 4c 41 0d |A....TAX....PLA.| 00000700 04 f6 07 52 54 53 0d 05 00 0a 2e 66 6f 75 6e 64 |...RTS.....found| 00000710 0d 05 0a 07 50 4c 41 0d 05 14 07 50 4c 41 0d 05 |....PLA....PLA..| 00000720 1e 07 50 4c 41 0d 05 28 0a 4c 44 41 20 23 30 0d |..PLA..(.LDA #0.| 00000730 05 32 07 54 41 58 0d 05 3c 07 54 41 59 0d 05 46 |.2.TAX..<.TAY..F| 00000740 0e 4a 53 52 20 6f 73 61 72 67 73 0d 05 50 1b 43 |.JSR osargs..P.C| 00000750 4d 50 20 23 34 20 5c 20 49 73 20 44 46 53 20 61 |MP #4 \ Is DFS a| 00000760 63 74 69 76 65 3f 0d 05 5a 0b 42 45 51 20 64 66 |ctive?..Z.BEQ df| 00000770 73 0d 05 64 1b 4c 44 41 20 23 28 77 72 6f 6e 67 |s..d.LDA #(wrong| 00000780 2b 64 69 66 66 29 20 83 20 32 35 36 0d 05 6e 0f |+diff) . 256..n.| 00000790 53 54 41 20 61 64 64 72 65 73 73 0d 05 78 1b 4c |STA address..x.L| 000007a0 44 41 20 23 28 77 72 6f 6e 67 2b 64 69 66 66 29 |DA #(wrong+diff)| 000007b0 20 81 20 32 35 36 0d 05 82 11 53 54 41 20 61 64 | . 256....STA ad| 000007c0 64 72 65 73 73 2b 31 0d 05 8c 0c 4c 44 59 20 23 |dress+1....LDY #| 000007d0 26 46 46 0d 05 96 0e 2e 65 72 72 6f 72 6c 6f 6f |&FF.....errorloo| 000007e0 70 0d 05 a0 07 49 4e 59 0d 05 aa 13 4c 44 41 20 |p....INY....LDA | 000007f0 28 61 64 64 72 65 73 73 29 2c 59 0d 05 b4 12 53 |(address),Y....S| 00000800 54 41 20 65 72 72 73 74 61 63 6b 2c 59 0d 05 be |TA errstack,Y...| 00000810 11 42 50 4c 20 65 72 72 6f 72 6c 6f 6f 70 0d 05 |.BPL errorloop..| 00000820 c8 10 4a 4d 50 20 65 72 72 73 74 61 63 6b 0d 05 |..JMP errstack..| 00000830 d2 08 2e 64 66 73 0d 05 dc 18 4c 44 58 20 23 28 |...dfs....LDX #(| 00000840 67 6f 2b 64 69 66 66 29 20 83 20 32 35 36 0d 05 |go+diff) . 256..| 00000850 e6 18 4c 44 59 20 23 28 67 6f 2b 64 69 66 66 29 |..LDY #(go+diff)| 00000860 20 81 20 32 35 36 0d 05 f0 12 4a 53 52 20 70 72 | . 256....JSR pr| 00000870 69 6e 74 2b 64 69 66 66 0d 05 fa 0e 4a 53 52 20 |int+diff....JSR | 00000880 6f 73 72 64 63 68 0d 06 04 0a 80 20 23 26 44 46 |osrdch..... #&DF| 00000890 0d 06 0e 07 50 48 41 0d 06 18 0e 4a 53 52 20 6f |....PHA....JSR o| 000008a0 73 61 73 63 69 0d 06 22 0e 4a 53 52 20 6f 73 6e |sasci..".JSR osn| 000008b0 65 77 6c 0d 06 2c 07 50 4c 41 0d 06 36 0f 43 4d |ewl..,.PLA..6.CM| 000008c0 50 20 23 97 28 22 59 22 29 0d 06 40 0b 42 45 51 |P #.("Y")..@.BEQ| 000008d0 20 79 65 73 0d 06 4a 0a 4c 44 41 20 23 30 0d 06 | yes..J.LDA #0..| 000008e0 54 07 52 54 53 0d 06 5e 08 2e 79 65 73 0d 06 68 |T.RTS..^..yes..h| 000008f0 0e 4a 53 52 20 6f 73 6e 65 77 6c 0d 06 72 11 4c |.JSR osnewl..r.L| 00000900 44 58 20 72 6f 6d 6e 75 6d 62 65 72 0d 06 7c 13 |DX romnumber..|.| 00000910 4c 44 41 20 77 6f 72 6b 73 70 61 63 65 2c 58 0d |LDA workspace,X.| 00000920 06 86 0f 53 54 41 20 62 6c 6f 63 6b 2b 31 0d 06 |...STA block+1..| 00000930 90 11 53 54 41 20 63 6c 69 62 75 66 66 2b 31 0d |..STA clibuff+1.| 00000940 06 9a 11 53 54 41 20 70 72 69 76 61 74 65 2b 31 |...STA private+1| 00000950 0d 06 a4 13 53 54 41 20 64 69 72 65 63 74 6f 72 |....STA director| 00000960 79 2b 31 0d 06 ae 07 43 4c 43 0d 06 b8 0a 41 44 |y+1....CLC....AD| 00000970 43 20 23 31 0d 06 c2 11 53 54 41 20 63 61 74 62 |C #1....STA catb| 00000980 75 66 66 2b 31 0d 06 cc 0c 4c 44 41 20 23 26 38 |uff+1....LDA #&8| 00000990 30 0d 06 d6 0d 53 54 41 20 62 6c 6f 63 6b 0d 06 |0....STA block..| 000009a0 e0 0a 4c 44 59 20 23 38 0d 06 ea 0f 53 54 59 20 |..LDY #8....STY | 000009b0 63 61 74 62 75 66 66 0d 06 f4 07 49 4e 59 0d 06 |catbuff....INY..| 000009c0 fe 11 53 54 59 20 64 69 72 65 63 74 6f 72 79 0d |..STY directory.| 000009d0 07 08 0a 4c 44 41 20 23 30 0d 07 12 0f 53 54 41 |...LDA #0....STA| 000009e0 20 70 72 69 76 61 74 65 0d 07 1c 0c 4c 44 41 20 | private....LDA | 000009f0 23 26 46 46 0d 07 26 07 54 41 59 0d 07 30 26 53 |#&FF..&.TAY..0&S| 00000a00 54 41 20 28 70 72 69 76 61 74 65 29 2c 59 20 5c |TA (private),Y \| 00000a10 20 26 46 46 20 3d 20 75 74 69 6c 69 74 79 20 6f | &FF = utility o| 00000a20 6e 0d 07 3a 0d 49 4e 59 20 5c 20 59 3d 30 0d 07 |n..:.INY \ Y=0..| 00000a30 44 0d 2e 64 61 74 61 6c 6f 6f 70 0d 07 4e 13 4c |D..dataloop..N.L| 00000a40 44 41 20 64 61 74 61 2b 64 69 66 66 2c 59 0d 07 |DA data+diff,Y..| 00000a50 58 11 53 54 41 20 28 62 6c 6f 63 6b 29 2c 59 0d |X.STA (block),Y.| 00000a60 07 62 07 49 4e 59 0d 07 6c 0b 43 50 59 20 23 26 |.b.INY..l.CPY #&| 00000a70 41 0d 07 76 10 42 43 43 20 64 61 74 61 6c 6f 6f |A..v.BCC dataloo| 00000a80 70 0d 07 80 0a 4c 44 59 20 23 32 0d 07 8a 11 4c |p....LDY #2....L| 00000a90 44 41 20 63 61 74 62 75 66 66 2b 31 0d 07 94 11 |DA catbuff+1....| 00000aa0 53 54 41 20 28 62 6c 6f 63 6b 29 2c 59 0d 07 9e |STA (block),Y...| 00000ab0 0a 4c 44 59 20 23 30 0d 07 a8 0d 2e 63 6f 70 79 |.LDY #0.....copy| 00000ac0 6c 6f 6f 70 0d 07 b2 13 4c 44 41 20 63 6f 70 79 |loop....LDA copy| 00000ad0 2b 64 69 66 66 2c 59 0d 07 bc 13 53 54 41 20 28 |+diff,Y....STA (| 00000ae0 70 72 69 76 61 74 65 29 2c 59 0d 07 c6 07 49 4e |private),Y....IN| 00000af0 59 0d 07 d0 0b 43 50 59 20 23 26 42 0d 07 da 10 |Y....CPY #&B....| 00000b00 42 43 43 20 63 6f 70 79 6c 6f 6f 70 0d 07 e4 0f |BCC copyloop....| 00000b10 53 54 59 20 63 6c 69 62 75 66 66 0d 07 ee 0c 4c |STY clibuff....L| 00000b20 44 41 20 23 26 37 46 0d 07 f8 0d 4c 44 58 20 62 |DA #&7F....LDX b| 00000b30 6c 6f 63 6b 0d 08 02 0f 4c 44 59 20 62 6c 6f 63 |lock....LDY bloc| 00000b40 6b 2b 31 0d 08 0c 1f 4a 53 52 20 6f 73 77 6f 72 |k+1....JSR oswor| 00000b50 64 20 5c 20 52 65 61 64 20 63 61 74 61 6c 6f 67 |d \ Read catalog| 00000b60 75 65 0d 08 16 0e 2e 63 61 74 61 6c 6f 67 75 65 |ue.....catalogue| 00000b70 0d 08 20 0a 4c 44 59 20 23 30 0d 08 2a 0d 2e 74 |.. .LDY #0..*..t| 00000b80 72 61 6e 73 66 65 72 0d 08 34 13 4c 44 41 20 28 |ransfer..4.LDA (| 00000b90 63 61 74 62 75 66 66 29 2c 59 0d 08 3e 13 53 54 |catbuff),Y..>.ST| 00000ba0 41 20 28 63 6c 69 62 75 66 66 29 2c 59 0d 08 48 |A (clibuff),Y..H| 00000bb0 07 49 4e 59 0d 08 52 0a 43 50 59 20 23 37 0d 08 |.INY..R.CPY #7..| 00000bc0 5c 10 42 43 43 20 74 72 61 6e 73 66 65 72 0d 08 |\.BCC transfer..| 00000bd0 66 0b 4c 44 41 20 23 26 44 0d 08 70 13 53 54 41 |f.LDA #&D..p.STA| 00000be0 20 28 63 6c 69 62 75 66 66 29 2c 59 0d 08 7a 13 | (clibuff),Y..z.| 00000bf0 4c 44 41 20 28 63 61 74 62 75 66 66 29 2c 59 0d |LDA (catbuff),Y.| 00000c00 08 84 0a 80 20 23 26 37 46 0d 08 8e 0f 43 4d 50 |.... #&7F....CMP| 00000c10 20 23 97 28 22 20 22 29 0d 08 98 0e 42 43 43 20 | #.(" ")....BCC | 00000c20 66 69 6e 69 73 68 0d 08 a2 0a 4c 44 59 20 23 30 |finish....LDY #0| 00000c30 0d 08 ac 15 53 54 41 20 28 64 69 72 65 63 74 6f |....STA (directo| 00000c40 72 79 29 2c 59 0d 08 b6 0f 4c 44 41 20 63 61 74 |ry),Y....LDA cat| 00000c50 62 75 66 66 0d 08 c0 07 43 4c 43 0d 08 ca 0a 41 |buff....CLC....A| 00000c60 44 43 20 23 38 0d 08 d4 0f 53 54 41 20 63 61 74 |DC #8....STA cat| 00000c70 62 75 66 66 0d 08 de 0c 2e 61 6e 6f 74 68 65 72 |buff.....another| 00000c80 0d 08 e8 0a 4c 44 58 20 23 30 0d 08 f2 11 4c 44 |....LDX #0....LD| 00000c90 59 20 63 6c 69 62 75 66 66 2b 31 0d 08 fc 0d 4a |Y clibuff+1....J| 00000ca0 53 52 20 6f 73 63 6c 69 0d 09 06 0f 4c 44 41 20 |SR oscli....LDA | 00000cb0 63 61 74 62 75 66 66 0d 09 10 11 42 4e 45 20 63 |catbuff....BNE c| 00000cc0 61 74 61 6c 6f 67 75 65 0d 09 1a 0b 2e 66 69 6e |atalogue.....fin| 00000cd0 69 73 68 0d 09 24 0a 4c 44 41 20 23 30 0d 09 2e |ish..$.LDA #0...| 00000ce0 0c 4c 44 59 20 23 26 46 46 0d 09 38 25 53 54 41 |.LDY #&FF..8%STA| 00000cf0 20 28 70 72 69 76 61 74 65 29 2c 59 20 5c 20 30 | (private),Y \ 0| 00000d00 20 3d 20 75 74 69 6c 69 74 79 20 6f 66 66 0d 09 | = utility off..| 00000d10 42 0e 4a 53 52 20 6f 73 6e 65 77 6c 0d 09 4c 0b |B.JSR osnewl..L.| 00000d20 4c 44 41 20 23 26 46 0d 09 56 0a 4c 44 58 20 23 |LDA #&F..V.LDX #| 00000d30 30 0d 09 60 1e 4a 53 52 20 6f 73 62 79 74 65 20 |0..`.JSR osbyte | 00000d40 5c 20 46 6c 75 73 68 20 62 75 66 66 65 72 73 0d |\ Flush buffers.| 00000d50 09 6a 0c 4c 44 41 20 23 26 42 42 0d 09 74 0a 4c |.j.LDA #&BB..t.L| 00000d60 44 58 20 23 30 0d 09 7e 0c 4c 44 59 20 23 26 46 |DX #0..~.LDY #&F| 00000d70 46 0d 09 88 1b 4a 53 52 20 6f 73 62 79 74 65 20 |F....JSR osbyte | 00000d80 5c 20 46 69 6e 64 20 42 41 53 49 43 0d 09 92 0c |\ Find BASIC....| 00000d90 4c 44 41 20 23 26 38 45 0d 09 9c 1c 4a 4d 50 20 |LDA #&8E....JMP | 00000da0 6f 73 62 79 74 65 20 5c 20 45 6e 74 65 72 20 42 |osbyte \ Enter B| 00000db0 41 53 49 43 0d 09 a6 0a 2e 70 72 69 6e 74 0d 09 |ASIC.....print..| 00000dc0 b0 0f 53 54 58 20 61 64 64 72 65 73 73 0d 09 ba |..STX address...| 00000dd0 11 53 54 59 20 61 64 64 72 65 73 73 2b 31 0d 09 |.STY address+1..| 00000de0 c4 0b 4c 44 41 20 23 26 46 0d 09 ce 0a 4c 44 58 |..LDA #&F....LDX| 00000df0 20 23 30 0d 09 d8 1e 4a 53 52 20 6f 73 62 79 74 | #0....JSR osbyt| 00000e00 65 20 5c 20 46 6c 75 73 68 20 62 75 66 66 65 72 |e \ Flush buffer| 00000e10 73 0d 09 e2 0a 4c 44 59 20 23 30 0d 09 ec 0e 2e |s....LDY #0.....| 00000e20 70 72 69 6e 74 6c 6f 6f 70 0d 09 f6 13 4c 44 41 |printloop....LDA| 00000e30 20 28 61 64 64 72 65 73 73 29 2c 59 0d 0a 00 10 | (address),Y....| 00000e40 42 45 51 20 65 6e 64 70 72 69 6e 74 0d 0a 0a 0e |BEQ endprint....| 00000e50 4a 53 52 20 6f 73 61 73 63 69 0d 0a 14 07 49 4e |JSR osasci....IN| 00000e60 59 0d 0a 1e 16 4a 4d 50 20 70 72 69 6e 74 6c 6f |Y....JMP printlo| 00000e70 6f 70 2b 64 69 66 66 0d 0a 28 0d 2e 65 6e 64 70 |op+diff..(..endp| 00000e80 72 69 6e 74 0d 0a 32 07 52 54 53 0d 0a 3c 09 2e |rint..2.RTS..<..| 00000e90 64 61 74 61 0d 0a 46 18 4f 50 54 20 a4 65 71 75 |data..F.OPT .equ| 00000ea0 64 28 26 46 46 30 30 30 30 30 30 29 0d 0a 50 18 |d(&FF000000)..P.| 00000eb0 4f 50 54 20 a4 65 71 75 64 28 26 30 30 35 33 30 |OPT .equd(&00530| 00000ec0 33 46 46 29 0d 0a 5a 14 4f 50 54 20 a4 65 71 75 |3FF)..Z.OPT .equ| 00000ed0 77 28 26 32 31 30 30 29 0d 0a 64 09 2e 63 6f 70 |w(&2100)..d..cop| 00000ee0 79 0d 0a 6e 1c 4f 50 54 20 a4 65 71 75 73 28 22 |y..n.OPT .equs("| 00000ef0 43 4f 50 59 20 30 20 31 20 2a 2e 22 29 0d 0a 78 |COPY 0 1 *.")..x| 00000f00 0d 2e 73 77 61 70 64 69 73 63 0d 0a 82 14 4f 50 |..swapdisc....OP| 00000f10 54 20 a4 65 71 75 77 28 26 30 37 30 44 29 0d 0a |T .equw(&070D)..| 00000f20 8c 26 4f 50 54 20 a4 65 71 75 73 28 22 49 6e 73 |.&OPT .equs("Ins| 00000f30 65 72 74 20 61 20 6e 65 77 20 64 69 73 63 20 69 |ert a new disc i| 00000f40 6e 20 22 29 0d 0a 96 12 4f 50 54 20 a4 65 71 75 |n ")....OPT .equ| 00000f50 62 28 26 33 41 29 0d 0a a0 12 4f 50 54 20 a4 65 |b(&3A)....OPT .e| 00000f60 71 75 73 28 22 31 22 29 0d 0a aa 12 4f 50 54 20 |qus("1")....OPT | 00000f70 a4 65 71 75 62 28 26 30 44 29 0d 0a b4 28 4f 50 |.equb(&0D)...(OP| 00000f80 54 20 a4 65 71 75 73 28 22 61 6e 64 20 70 72 65 |T .equs("and pre| 00000f90 73 73 20 74 68 65 20 53 70 61 63 65 20 42 61 72 |ss the Space Bar| 00000fa0 22 29 0d 0a be 14 4f 50 54 20 a4 65 71 75 77 28 |")....OPT .equw(| 00000fb0 26 30 44 30 44 29 0d 0a c8 07 42 52 4b 0d 0a d2 |&0D0D)....BRK...| 00000fc0 07 2e 67 6f 0d 0a dc 25 4f 50 54 20 a4 65 71 75 |..go...%OPT .equ| 00000fd0 73 28 22 43 6f 70 79 20 61 6c 6c 20 66 69 6c 65 |s("Copy all file| 00000fe0 73 20 66 72 6f 6d 20 22 29 0d 0a e6 12 4f 50 54 |s from ")....OPT| 00000ff0 20 a4 65 71 75 62 28 26 33 41 29 0d 0a f0 16 4f | .equb(&3A)....O| 00001000 50 54 20 a4 65 71 75 73 28 22 30 20 74 6f 20 22 |PT .equs("0 to "| 00001010 29 0d 0a fa 12 4f 50 54 20 a4 65 71 75 62 28 26 |)....OPT .equb(&| 00001020 33 41 29 0d 0b 04 12 4f 50 54 20 a4 65 71 75 73 |3A)....OPT .equs| 00001030 28 22 31 22 29 0d 0b 0e 12 4f 50 54 20 a4 65 71 |("1")....OPT .eq| 00001040 75 62 28 26 30 44 29 0d 0b 18 1c 4f 50 54 20 a4 |ub(&0D)....OPT .| 00001050 65 71 75 73 28 22 47 6f 20 28 59 2f 4e 29 20 3f |equs("Go (Y/N) ?| 00001060 20 22 29 0d 0b 22 07 42 52 4b 0d 0b 2c 0a 2e 77 | ")..".BRK..,..w| 00001070 72 6f 6e 67 0d 0b 36 07 42 52 4b 0d 0b 40 07 42 |rong..6.BRK..@.B| 00001080 52 4b 0d 0b 4a 1f 4f 50 54 20 a4 65 71 75 73 28 |RK..J.OPT .equs(| 00001090 22 44 46 53 20 6e 6f 74 20 61 63 74 69 76 65 22 |"DFS not active"| 000010a0 29 0d 0b 54 07 42 52 4b 0d 0b 5e 12 4f 50 54 20 |)..T.BRK..^.OPT | 000010b0 a4 65 71 75 62 28 26 46 46 29 0d 0b 68 0d 2e 6c |.equb(&FF)..h..l| 000010c0 61 73 74 62 79 74 65 0d 0b 72 05 5d 0d 0b 7c 05 |astbyte..r.]..|.| 000010d0 ed 0d 0b 86 21 e8 27 22 53 61 76 65 20 66 69 6c |....!.'"Save fil| 000010e0 65 6e 61 6d 65 20 3d 20 22 66 69 6c 65 6e 61 6d |ename = "filenam| 000010f0 65 24 0d 0b 90 14 e7 20 66 69 6c 65 6e 61 6d 65 |e$..... filename| 00001100 24 3d 22 22 20 e0 0d 0b 9a 4b 24 73 61 76 65 3d |$="" ....K$save=| 00001110 22 53 41 56 45 20 22 2b 66 69 6c 65 6e 61 6d 65 |"SAVE "+filename| 00001120 24 2b 22 20 22 2b c3 7e 28 93 29 2b 22 20 22 2b |$+" "+.~(.)+" "+| 00001130 c3 7e 28 6c 61 73 74 62 79 74 65 29 2b 22 20 46 |.~(lastbyte)+" F| 00001140 46 46 46 38 30 30 30 20 46 46 46 46 38 30 30 30 |FFF8000 FFFF8000| 00001150 22 0d 0b a4 11 58 25 3d 73 61 76 65 20 83 20 32 |"....X%=save . 2| 00001160 35 36 0d 0b ae 11 59 25 3d 73 61 76 65 20 81 20 |56....Y%=save . | 00001170 32 35 36 0d 0b b8 0b 2a 4f 50 54 31 2c 32 0d 0b |256....*OPT1,2..| 00001180 c2 0b d6 20 6f 73 63 6c 69 0d 0b cc 0b 2a 4f 50 |... oscli....*OP| 00001190 54 31 2c 30 0d 0b d6 05 e0 0d 0b e0 10 dd a4 65 |T1,0...........e| 000011a0 71 75 62 28 62 79 74 65 29 0d 0b ea 0c 3f 50 25 |qub(byte)....?P%| 000011b0 3d 62 79 74 65 0d 0b f4 0b 50 25 3d 50 25 2b 31 |=byte....P%=P%+1| 000011c0 0d 0b fe 09 3d 70 61 73 73 0d 0c 08 10 dd a4 65 |....=pass......e| 000011d0 71 75 77 28 77 6f 72 64 29 0d 0c 12 12 3f 50 25 |quw(word)....?P%| 000011e0 3d 77 6f 72 64 20 83 20 32 35 36 0d 0c 1c 13 50 |=word . 256....P| 000011f0 25 3f 31 3d 77 6f 72 64 20 81 20 32 35 36 0d 0c |%?1=word . 256..| 00001200 26 0b 50 25 3d 50 25 2b 32 0d 0c 30 09 3d 70 61 |&.P%=P%+2..0.=pa| 00001210 73 73 0d 0c 3a 12 dd a4 65 71 75 64 28 64 6f 75 |ss..:...equd(dou| 00001220 62 6c 65 29 0d 0c 44 0e 21 50 25 3d 64 6f 75 62 |ble)..D.!P%=doub| 00001230 6c 65 0d 0c 4e 0b 50 25 3d 50 25 2b 34 0d 0c 58 |le..N.P%=P%+4..X| 00001240 09 3d 70 61 73 73 0d 0c 62 13 dd a4 65 71 75 73 |.=pass..b...equs| 00001250 28 73 74 72 69 6e 67 24 29 0d 0c 6c 0f 24 50 25 |(string$)..l.$P%| 00001260 3d 73 74 72 69 6e 67 24 0d 0c 76 14 50 25 3d 50 |=string$..v.P%=P| 00001270 25 2b a9 28 73 74 72 69 6e 67 24 29 0d 0c 80 09 |%+.(string$)....| 00001280 3d 70 61 73 73 0d ff |=pass..| 00001287