Home » CEEFAX disks » telesoftware9.adl » 26-09-88/COPYDFS
26-09-88/COPYDFS
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: | 26-09-88/COPYDFS |
Read OK: | ✔ |
File size: | 1E00 bytes |
Load address: | FFFF1900 |
Exec address: | FFFF8023 |
File contents
10REM: COPYDFS 20osnewl=&FFE7 30oswrch=&FFEE 40osword=&FFF1 50osbyte=&FFF4 60DIM table &50 70DIM mcode &500 80DIM buffer &1000 90FOR pass=0 TO 2 STEP 2 100P%=mcode 110[OPT pass 120JSR osnewl 130.mainloop 140JSR escape \ check escape flag 150JSR seek \ seek physical tracks 0 - 40 160JSR firstsector \ read sector id first sector 170BNE notformatted \ if error then track not formatted 180JSR sectorids \ read all sector ids 190JSR format \ format sector on drive 1 200JSR copytrack \ read and write sector 210JMP output 220.notformatted 230JSR deform \ deformat this track 240.output 250JSR printbyte \ print track number 260INC physical \ increment physical track number 270LDA physical \ load physical track number 280CMP last \ all done? 290BNE mainloop \ if not copy next track 300JSR osnewl 310RTS \ return to BASIC 320.escape 330LDA &FF \ escape flag 340BMI pressed \ bit 7 set if pressed 350RTS 360.pressed 370LDA #&7E 380JSR osbyte \ acknowledge Escape 390BRK 400BRK 410EQUS "Escape" 420BRK 430.seek 440LDA physical \ physical track number 450STA seekblock+7 460LDA #&00 \ drive 0 470STA seekblock \ store drive number 480LDA #&7F 490LDX #seekblock MOD 256 500LDY #seekblock DIV 256 510JSR osword 520LDA seekblock+8 \ result 530BNE seekerror \ = 0 if OK 540LDA #&01 \ drive 1 550STA seekblock \ store drive number 560LDA #&7F 570LDX #seekblock MOD 256 580LDY #seekblock DIV 256 590JSR osword 600LDA seekblock+8 \ result 610BNE seekerror \ = 0 if OK 620RTS 630.seekerror 640BRK 650BRK 660EQUS "Seek error" 670BRK 680.format 690LDA physical \ physical track number 700STA formblock+7 \ store physical track 710LDX table+3 \ data size code 720LDA gap,X \ load gap 3 for these sectors 730STA formblock+8 \ store for formatting 740LDA #&7F 750LDX #formblock MOD 256 760LDY #formblock DIV 256 770JSR osword 780LDA formblock+12 \ result 790BNE formerror \ = 0 if OK 800RTS 810.formerror 820BRK 830BRK 840EQUS "Format error" 850BRK 860.deform 870LDA physical \ load physical track number 880STA deblock+7 \ store physical track 890LDA #&7F 900LDX #deblock MOD 256 910LDY #deblock DIV 256 920JSR osword \ "deformat" track 930LDA deblock+12 \ result 940BNE deerror \ = 0 if OK 950RTS 960.deerror 970BRK 980BRK 990EQUS "Deformat error" 1000BRK 1010.register 1020STA regblock+8 \ value to put in register 1030LDA #&00 \ drive 0 1040STA regblock 1050LDA #&12 \ write track register 0/2 1060STA regblock+7 \ register number 1070LDA #&7F 1080LDX #regblock MOD 256 1090LDY #regblock DIV 256 1100JSR osword 1110LDA regblock+9 \ result 1120BNE regerror \ = 0 if OK 1130LDA #&01 \ drive 1 1140STA regblock 1150LDA #&1A \ write track register 1/3 1160STA regblock+7 \ register number 1170LDA #&7F 1180LDX #regblock MOD 256 1190LDY #regblock DIV 256 1200JSR osword 1210LDA regblock+9 \ result 1220BNE regerror \ = 0 if OK 1230RTS 1240.regerror 1250BRK 1260BRK 1270EQUS "Special register error" 1280BRK 1290.firstsector 1300LDA physical \ physical track number 1310STA idsblock+7 \ store physical track 1320LDA #&01 \ one sector 1330STA idsblock+9 \ number of ids 1340LDA #&7F 1350LDX #idsblock MOD 256 1360LDY #idsblock DIV 256 1370JSR osword 1380LDA idsblock+10 \ result 1390AND #&1E \ = 0 if formatted 1400RTS 1410.sectorids 1420LDX table+3 \ load data size code 1430LDA sizes,X \ load number of sectors 1440STA idsblock+9 \ store number of sectors 1450ASL A \ *2 1460ASL A \ *4 1470SEC 1480SBC #&04 \ sectors*4-4 1490STA sectornumber \ store index on sectors 1500TXA \ transfer data size code 1510ASL A \ *2 1520ASL A \ *4 1530ASL A \ *8 1540ASL A \ *16 1550ASL A \ *32 1560ORA idsblock+9 \ add number of sectors 1570STA copyblock+9 \ sector size/number 1580STA formblock+9 \ sector size/number 1590LDA #&7F 1600LDX #idsblock MOD 256 1610LDY #idsblock DIV 256 1620JSR osword 1630LDA idsblock+10 \ result 1640AND #&1E 1650BNE idserror \ = 0 if OK 1660RTS 1670.idserror 1680BRK 1690BRK 1700EQUS "Sector ID Error" 1710BRK 1720.copytrack 1730LDX sectornumber \ load index on table 1740LDA table+2,X \ load logical sector number 1750STA copyblock+8 \ store for read sector 1760.lowest 1770DEX 1780DEX 1790DEX 1800DEX 1810BMI finished 1820LDA table+2,X \ load logical sector number 1830CMP copyblock+8 \ is it lower than the last one? 1840BCS lowest \ branch if not lowest sector 1850STA copyblock+8 \ store if it is lower 1860BCC lowest \ look for lower sector number 1870.finished 1880LDA table \ load logical track number 1890STA copyblock+7 \ and store for read 1900JSR register \ write track register 1910LDA #&00 \ drive 0 1920STA copyblock 1930LDA #&57 \ read sector command 1940STA copyblock+6 1950LDA #&7F 1960LDX #copyblock MOD 256 1970LDY #copyblock DIV 256 1980JSR osword 1990LDA copyblock+10 \ result 2000BEQ notdel \ not deleted data 2010CMP #&20 \ deleted data result 2020BNE readerror \ error if not &20 2030LDA #&4F \ write deleted data command 2040BNE savecom 2050.notdel 2060LDA #&4B \ write data command 2070.savecom 2080STA copyblock+6 2090LDA #&01 \ drive 1 2100STA copyblock 2110LDA #&7F 2120LDX #copyblock MOD 256 2130LDY #copyblock DIV 256 2140JSR osword 2150LDA copyblock+10 \ result 2160BNE writeerror \ = 0 if OK 2170LDA physical 2180JSR register \ write track register 2190RTS 2200.readerror 2210LDA physical 2220JSR register 2230BRK 2240BRK 2250EQUS "Read error" 2260BRK 2270.writeerror 2280LDA physical 2290JSR register 2300BRK 2310BRK 2320EQUS "Write error" 2330BRK 2340.printbyte 2350LDA physical \ print physical track number 2360PHA 2370LSR A 2380LSR A 2390LSR A 2400LSR A 2410JSR nybble \ print MS nybble 2420PLA 2430JSR nybble \ print LS nybble 2440LDA #ASC(" ") 2450JSR oswrch \ print space 2460JMP oswrch \ print space and return 2470.nybble 2480AND #&0F 2490SED 2500CLC 2510ADC #&90 2520ADC #&40 2530CLD 2540JMP oswrch \ print nybble and return 2550.seekblock 2560EQUB &00 \ drive 0/1 2570EQUD &00 \ does not matter 2580EQUB &01 \ 1 parameter 2590EQUB &69 \ seek command 2600EQUB &00 \ physical track number 2610EQUB &00 \ result byte 2620.regblock 2630EQUB &00 \ drive 0/1 2640EQUD &00 \ does not matter 2650EQUB &02 \ 2 parameters 2660EQUB &7A \ write special register 2670EQUB &00 \ register number 2680EQUB &00 \ value to put in register 2690EQUB &00 \ result byte 2700.idsblock 2710EQUB &00 \ drive 0 2720EQUD table \ address of buffer 2730EQUB &03 \ 3 parameters 2740EQUB &5B \ read sector IDs command 2750EQUB &00 \ physical track number 2760EQUB &00 \ always &00 2770EQUB &00 \ number of IDs to be read 2780EQUB &00 \ result byte 2790.copyblock 2800EQUB &00 \ drive 0/1 2810EQUD buffer \ address of buffer 2820EQUB &03 \ 3 parameters 2830EQUB &57 \ read data and deleted data 2840EQUB &00 \ logical track number 2850EQUB &00 \ logical sector number 2860EQUB &00 \ sector size/number 2870EQUB &00 \ result byte 2880.formblock 2890EQUB &01 \ drive 1 2900EQUD table \ sector table 2910EQUB &05 \ 5 parameters 2920EQUB &63 \ format track command 2930EQUB &00 \ physical track number 2940EQUB &00 \ gap 3 size 2950EQUB &00 \ sector size/number 2960EQUB &00 \ gap 5 size 2970EQUB &10 \ gap 1 size 2980EQUB &00 \ result byte 2990.deblock 3000EQUB &01 \ drive 1 3010EQUD detable \ sector table 3020EQUB &05 \ 5 parameters 3030EQUB &63 \ format track command 3040EQUB &00 \ physical track number 3050EQUB &00 \ gap 3 size 3060EQUB &C1 \ sector size/number 3070EQUB &00 \ gap 5 size 3080EQUB &10 \ gap 1 size 3090EQUB &00 \ result byte 3100.detable 3110EQUD &04000000 3120.gap 3130EQUB 11 \ Gap 3, 18 sectors 3140EQUB 21 \ Gap 3, 10 sectors 3150EQUB 74 \ Gap 3, 5 sectors 3160EQUB 255 \ Gap 3, 2 sectors 3170EQUB 0 \ Gap 3, 1 sector 3180.sizes 3190EQUB 18 3200EQUB 10 3210EQUB 5 3220EQUB 2 3230EQUB 1 3240.physical 3250EQUB &00 3260.sectornumber 3270EQUB &00 3280.last 3290EQUB &00 3300] 3310NEXT 3320INPUT'"Number of tracks (40/80) "tracks$ 3330IF tracks$="40" ?last=40 ELSE ?last=80 3340PRINT'"Insert ";?last;" track source disc in :0" 3350PRINT"Insert ";?last;" track destination disc in :1" 3360PRINT'"Press Spacebar to copy from :0 to :1" 3370REPEAT 3380UNTIL GET=32 3390CALL mcode
�: COPYDFS osnewl=&FFE7 oswrch=&FFEE (osword=&FFF1 2osbyte=&FFF4 <� table &50 F� mcode &500 P� buffer &1000 Z� pass=0 � 2 � 2 dP%=mcode n [OPT pass xJSR osnewl � .mainloop �"JSR escape \ check escape flag �*JSR seek \ seek physical tracks 0 - 40 �1JSR firstsector \ read sector id first sector �8BNE notformatted \ if error then track not formatted �'JSR sectorids \ read all sector ids �)JSR format \ format sector on drive 1 �)JSR copytrack \ read and write sector �JMP output �.notformatted �$JSR deform \ deformat this track �.output �&JSR printbyte \ print track number 2INC physical \ increment physical track number -LDA physical \ load physical track number CMP last \ all done? ")BNE mainloop \ if not copy next track ,JSR osnewl 6RTS \ return to BASIC @.escape JLDA &FF \ escape flag T&BMI pressed \ bit 7 set if pressed ^RTS h.pressed rLDA #&7E |#JSR osbyte \ acknowledge Escape �BRK �BRK �EQUS "Escape" �BRK � .seek �(LDA physical \ physical track number �STA seekblock+7 �LDA #&00 \ drive 0 �&STA seekblock \ store drive number �LDA #&7F �LDX #seekblock � 256 �LDY #seekblock � 256 �JSR osword LDA seekblock+8 \ result BNE seekerror \ = 0 if OK LDA #&01 \ drive 1 &&STA seekblock \ store drive number 0LDA #&7F :LDX #seekblock � 256 DLDY #seekblock � 256 NJSR osword XLDA seekblock+8 \ result bBNE seekerror \ = 0 if OK lRTS v.seekerror �BRK �BRK �EQUS "Seek error" �BRK �.format �(LDA physical \ physical track number �*STA formblock+7 \ store physical track � LDX table+3 \ data size code �,LDA gap,X \ load gap 3 for these sectors �*STA formblock+8 \ store for formatting �LDA #&7F �LDX #formblock � 256 �LDY #formblock � 256 JSR osword LDA formblock+12 \ result BNE formerror \ = 0 if OK RTS *.formerror 4BRK >BRK HEQUS "Format error" RBRK \.deform f-LDA physical \ load physical track number p(STA deblock+7 \ store physical track zLDA #&7F �LDX #deblock � 256 �LDY #deblock � 256 �!JSR osword \ "deformat" track �LDA deblock+12 \ result �BNE deerror \ = 0 if OK �RTS �.deerror �BRK �BRK �EQUS "Deformat error" �BRK � .register �-STA regblock+8 \ value to put in register LDA #&00 \ drive 0 STA regblock 'LDA #&12 \ write track register 0/2 $$STA regblock+7 \ register number .LDA #&7F 8LDX #regblock � 256 BLDY #regblock � 256 LJSR osword VLDA regblock+9 \ result `BNE regerror \ = 0 if OK jLDA #&01 \ drive 1 tSTA regblock ~'LDA #&1A \ write track register 1/3 �$STA regblock+7 \ register number �LDA #&7F �LDX #regblock � 256 �LDY #regblock � 256 �JSR osword �LDA regblock+9 \ result �BNE regerror \ = 0 if OK �RTS � .regerror �BRK �BRK �!EQUS "Special register error" BRK .firstsector (LDA physical \ physical track number )STA idsblock+7 \ store physical track (LDA #&01 \ one sector 2"STA idsblock+9 \ number of ids <LDA #&7F FLDX #idsblock � 256 PLDY #idsblock � 256 ZJSR osword dLDA idsblock+10 \ result n� #&1E \ = 0 if formatted xRTS �.sectorids �%LDX table+3 \ load data size code �(LDA sizes,X \ load number of sectors �,STA idsblock+9 \ store number of sectors �ASL A \ *2 �ASL A \ *4 �SEC �SBC #&04 \ sectors*4-4 �-STA sectornumber \ store index on sectors �!TXA \ transfer data size code �ASL A \ *2 �ASL A \ *4 �ASL A \ *8 ASL A \ *16 ASL A \ *32 )�A idsblock+9 \ add number of sectors "(STA copyblock+9 \ sector size/number ,(STA formblock+9 \ sector size/number 6LDA #&7F @LDX #idsblock � 256 JLDY #idsblock � 256 TJSR osword ^LDA idsblock+10 \ result h � #&1E rBNE idserror \ = 0 if OK |RTS � .idserror �BRK �BRK �EQUS "Sector ID Error" �BRK �.copytrack �*LDX sectornumber \ load index on table �.LDA table+2,X \ load logical sector number �+STA copyblock+8 \ store for read sector �.lowest �DEX �DEX �DEX DEX BMI finished .LDA table+2,X \ load logical sector number &4CMP copyblock+8 \ is it lower than the last one? 0,BCS lowest \ branch if not lowest sector :*STA copyblock+8 \ store if it is lower D-BCC lowest \ look for lower sector number N .finished X)LDA table \ load logical track number b(STA copyblock+7 \ and store for read l'JSR register \ write track register vLDA #&00 \ drive 0 �STA copyblock �"LDA #&57 \ read sector command �STA copyblock+6 �LDA #&7F �LDX #copyblock � 256 �LDY #copyblock � 256 �JSR osword �LDA copyblock+10 \ result �!BEQ notdel \ not deleted data �"CMP #&20 \ deleted data result �$BNE readerror \ error if not &20 �)LDA #&4F \ write deleted data command �BNE savecom .notdel !LDA #&4B \ write data command .savecom STA copyblock+6 *LDA #&01 \ drive 1 4STA copyblock >LDA #&7F HLDX #copyblock � 256 RLDY #copyblock � 256 \JSR osword fLDA copyblock+10 \ result pBNE writeerror \ = 0 if OK zLDA physical �'JSR register \ write track register �RTS �.readerror �LDA physical �JSR register �BRK �BRK �EQUS "Read error" �BRK �.writeerror �LDA physical �JSR register �BRK BRK EQUS "Write error" BRK $.printbyte ..LDA physical \ print physical track number 8PHA B LSR A L LSR A V LSR A ` LSR A j JSR nybble \ print MS nybble tPLA ~ JSR nybble \ print LS nybble �LDA #�(" ") �JSR oswrch \ print space �'JMP oswrch \ print space and return �.nybble � � #&0F �SED �CLC �ADC #&90 �ADC #&40 �CLD �(JMP oswrch \ print nybble and return �.seekblock EQUB &00 \ drive 0/1 EQUD &00 \ does not matter EQUB &01 \ 1 parameter EQUB &69 \ seek command ($EQUB &00 \ physical track number 2EQUB &00 \ result byte < .regblock FEQUB &00 \ drive 0/1 PEQUD &00 \ does not matter ZEQUB &02 \ 2 parameters d%EQUB &7A \ write special register nEQUB &00 \ register number x'EQUB &00 \ value to put in register �EQUB &00 \ result byte � .idsblock �EQUB &00 \ drive 0 �"EQUD table \ address of buffer �EQUB &03 \ 3 parameters �&EQUB &5B \ read sector IDs command �$EQUB &00 \ physical track number �EQUB &00 \ always &00 �'EQUB &00 \ number of IDs to be read �EQUB &00 \ result byte �.copyblock �EQUB &00 \ drive 0/1 �#EQUD buffer \ address of buffer EQUB &03 \ 3 parameters )EQUB &57 \ read data and deleted data #EQUB &00 \ logical track number "$EQUB &00 \ logical sector number ,!EQUB &00 \ sector size/number 6EQUB &00 \ result byte @.formblock JEQUB &01 \ drive 1 TEQUD table \ sector table ^EQUB &05 \ 5 parameters h#EQUB &63 \ format track command r$EQUB &00 \ physical track number |EQUB &00 \ gap 3 size �!EQUB &00 \ sector size/number �EQUB &00 \ gap 5 size �EQUB &10 \ gap 1 size �EQUB &00 \ result byte �.deblock �EQUB &01 \ drive 1 �EQUD detable \ sector table �EQUB &05 \ 5 parameters �#EQUB &63 \ format track command �$EQUB &00 \ physical track number �EQUB &00 \ gap 3 size �!EQUB &C1 \ sector size/number �EQUB &00 \ gap 5 size EQUB &10 \ gap 1 size EQUB &00 \ result byte .detable &EQUD &04000000 0.gap :EQUB 11 \ Gap 3, 18 sectors DEQUB 21 \ Gap 3, 10 sectors NEQUB 74 \ Gap 3, 5 sectors XEQUB 255 \ Gap 3, 2 sectors bEQUB 0 \ Gap 3, 1 sector l .sizes vEQUB 18 �EQUB 10 � EQUB 5 � EQUB 2 � EQUB 1 � .physical �EQUB &00 �.sectornumber �EQUB &00 � .last �EQUB &00 �] �� �(�'"Number of tracks (40/80) "tracks$ &� tracks$="40" ?last=40 � ?last=80 0�'"Insert ";?last;" track source disc in :0" 4�"Insert ";?last;" track destination disc in :1" ,�'"Press Spacebar to copy from :0 to :1" *� 4 � �=32 >� mcode �
00000000 0d 00 0a 0e f4 3a 20 43 4f 50 59 44 46 53 0d 00 |.....: COPYDFS..| 00000010 14 10 6f 73 6e 65 77 6c 3d 26 46 46 45 37 0d 00 |..osnewl=&FFE7..| 00000020 1e 10 6f 73 77 72 63 68 3d 26 46 46 45 45 0d 00 |..oswrch=&FFEE..| 00000030 28 10 6f 73 77 6f 72 64 3d 26 46 46 46 31 0d 00 |(.osword=&FFF1..| 00000040 32 10 6f 73 62 79 74 65 3d 26 46 46 46 34 0d 00 |2.osbyte=&FFF4..| 00000050 3c 0f de 20 74 61 62 6c 65 20 26 35 30 0d 00 46 |<.. table &50..F| 00000060 10 de 20 6d 63 6f 64 65 20 26 35 30 30 0d 00 50 |.. mcode &500..P| 00000070 12 de 20 62 75 66 66 65 72 20 26 31 30 30 30 0d |.. buffer &1000.| 00000080 00 5a 14 e3 20 70 61 73 73 3d 30 20 b8 20 32 20 |.Z.. pass=0 . 2 | 00000090 88 20 32 0d 00 64 0c 50 25 3d 6d 63 6f 64 65 0d |. 2..d.P%=mcode.| 000000a0 00 6e 0d 5b 4f 50 54 20 70 61 73 73 0d 00 78 0e |.n.[OPT pass..x.| 000000b0 4a 53 52 20 6f 73 6e 65 77 6c 0d 00 82 0d 2e 6d |JSR osnewl.....m| 000000c0 61 69 6e 6c 6f 6f 70 0d 00 8c 22 4a 53 52 20 65 |ainloop..."JSR e| 000000d0 73 63 61 70 65 20 5c 20 63 68 65 63 6b 20 65 73 |scape \ check es| 000000e0 63 61 70 65 20 66 6c 61 67 0d 00 96 2a 4a 53 52 |cape flag...*JSR| 000000f0 20 73 65 65 6b 20 5c 20 73 65 65 6b 20 70 68 79 | seek \ seek phy| 00000100 73 69 63 61 6c 20 74 72 61 63 6b 73 20 30 20 2d |sical tracks 0 -| 00000110 20 34 30 0d 00 a0 31 4a 53 52 20 66 69 72 73 74 | 40...1JSR first| 00000120 73 65 63 74 6f 72 20 5c 20 72 65 61 64 20 73 65 |sector \ read se| 00000130 63 74 6f 72 20 69 64 20 66 69 72 73 74 20 73 65 |ctor id first se| 00000140 63 74 6f 72 0d 00 aa 38 42 4e 45 20 6e 6f 74 66 |ctor...8BNE notf| 00000150 6f 72 6d 61 74 74 65 64 20 5c 20 69 66 20 65 72 |ormatted \ if er| 00000160 72 6f 72 20 74 68 65 6e 20 74 72 61 63 6b 20 6e |ror then track n| 00000170 6f 74 20 66 6f 72 6d 61 74 74 65 64 0d 00 b4 27 |ot formatted...'| 00000180 4a 53 52 20 73 65 63 74 6f 72 69 64 73 20 5c 20 |JSR sectorids \ | 00000190 72 65 61 64 20 61 6c 6c 20 73 65 63 74 6f 72 20 |read all sector | 000001a0 69 64 73 0d 00 be 29 4a 53 52 20 66 6f 72 6d 61 |ids...)JSR forma| 000001b0 74 20 5c 20 66 6f 72 6d 61 74 20 73 65 63 74 6f |t \ format secto| 000001c0 72 20 6f 6e 20 64 72 69 76 65 20 31 0d 00 c8 29 |r on drive 1...)| 000001d0 4a 53 52 20 63 6f 70 79 74 72 61 63 6b 20 5c 20 |JSR copytrack \ | 000001e0 72 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 73 |read and write s| 000001f0 65 63 74 6f 72 0d 00 d2 0e 4a 4d 50 20 6f 75 74 |ector....JMP out| 00000200 70 75 74 0d 00 dc 11 2e 6e 6f 74 66 6f 72 6d 61 |put.....notforma| 00000210 74 74 65 64 0d 00 e6 24 4a 53 52 20 64 65 66 6f |tted...$JSR defo| 00000220 72 6d 20 5c 20 64 65 66 6f 72 6d 61 74 20 74 68 |rm \ deformat th| 00000230 69 73 20 74 72 61 63 6b 0d 00 f0 0b 2e 6f 75 74 |is track.....out| 00000240 70 75 74 0d 00 fa 26 4a 53 52 20 70 72 69 6e 74 |put...&JSR print| 00000250 62 79 74 65 20 5c 20 70 72 69 6e 74 20 74 72 61 |byte \ print tra| 00000260 63 6b 20 6e 75 6d 62 65 72 0d 01 04 32 49 4e 43 |ck number...2INC| 00000270 20 70 68 79 73 69 63 61 6c 20 5c 20 69 6e 63 72 | physical \ incr| 00000280 65 6d 65 6e 74 20 70 68 79 73 69 63 61 6c 20 74 |ement physical t| 00000290 72 61 63 6b 20 6e 75 6d 62 65 72 0d 01 0e 2d 4c |rack number...-L| 000002a0 44 41 20 70 68 79 73 69 63 61 6c 20 5c 20 6c 6f |DA physical \ lo| 000002b0 61 64 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 |ad physical trac| 000002c0 6b 20 6e 75 6d 62 65 72 0d 01 18 18 43 4d 50 20 |k number....CMP | 000002d0 6c 61 73 74 20 5c 20 61 6c 6c 20 64 6f 6e 65 3f |last \ all done?| 000002e0 0d 01 22 29 42 4e 45 20 6d 61 69 6e 6c 6f 6f 70 |..")BNE mainloop| 000002f0 20 5c 20 69 66 20 6e 6f 74 20 63 6f 70 79 20 6e | \ if not copy n| 00000300 65 78 74 20 74 72 61 63 6b 0d 01 2c 0e 4a 53 52 |ext track..,.JSR| 00000310 20 6f 73 6e 65 77 6c 0d 01 36 19 52 54 53 20 5c | osnewl..6.RTS \| 00000320 20 72 65 74 75 72 6e 20 74 6f 20 42 41 53 49 43 | return to BASIC| 00000330 0d 01 40 0b 2e 65 73 63 61 70 65 0d 01 4a 19 4c |..@..escape..J.L| 00000340 44 41 20 26 46 46 20 5c 20 65 73 63 61 70 65 20 |DA &FF \ escape | 00000350 66 6c 61 67 0d 01 54 26 42 4d 49 20 70 72 65 73 |flag..T&BMI pres| 00000360 73 65 64 20 5c 20 62 69 74 20 37 20 73 65 74 20 |sed \ bit 7 set | 00000370 69 66 20 70 72 65 73 73 65 64 0d 01 5e 07 52 54 |if pressed..^.RT| 00000380 53 0d 01 68 0c 2e 70 72 65 73 73 65 64 0d 01 72 |S..h..pressed..r| 00000390 0c 4c 44 41 20 23 26 37 45 0d 01 7c 23 4a 53 52 |.LDA #&7E..|#JSR| 000003a0 20 6f 73 62 79 74 65 20 5c 20 61 63 6b 6e 6f 77 | osbyte \ acknow| 000003b0 6c 65 64 67 65 20 45 73 63 61 70 65 0d 01 86 07 |ledge Escape....| 000003c0 42 52 4b 0d 01 90 07 42 52 4b 0d 01 9a 11 45 51 |BRK....BRK....EQ| 000003d0 55 53 20 22 45 73 63 61 70 65 22 0d 01 a4 07 42 |US "Escape"....B| 000003e0 52 4b 0d 01 ae 09 2e 73 65 65 6b 0d 01 b8 28 4c |RK.....seek...(L| 000003f0 44 41 20 70 68 79 73 69 63 61 6c 20 5c 20 70 68 |DA physical \ ph| 00000400 79 73 69 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d |ysical track num| 00000410 62 65 72 0d 01 c2 13 53 54 41 20 73 65 65 6b 62 |ber....STA seekb| 00000420 6c 6f 63 6b 2b 37 0d 01 cc 16 4c 44 41 20 23 26 |lock+7....LDA #&| 00000430 30 30 20 5c 20 64 72 69 76 65 20 30 0d 01 d6 26 |00 \ drive 0...&| 00000440 53 54 41 20 73 65 65 6b 62 6c 6f 63 6b 20 5c 20 |STA seekblock \ | 00000450 73 74 6f 72 65 20 64 72 69 76 65 20 6e 75 6d 62 |store drive numb| 00000460 65 72 0d 01 e0 0c 4c 44 41 20 23 26 37 46 0d 01 |er....LDA #&7F..| 00000470 ea 18 4c 44 58 20 23 73 65 65 6b 62 6c 6f 63 6b |..LDX #seekblock| 00000480 20 83 20 32 35 36 0d 01 f4 18 4c 44 59 20 23 73 | . 256....LDY #s| 00000490 65 65 6b 62 6c 6f 63 6b 20 81 20 32 35 36 0d 01 |eekblock . 256..| 000004a0 fe 0e 4a 53 52 20 6f 73 77 6f 72 64 0d 02 08 1c |..JSR osword....| 000004b0 4c 44 41 20 73 65 65 6b 62 6c 6f 63 6b 2b 38 20 |LDA seekblock+8 | 000004c0 5c 20 72 65 73 75 6c 74 0d 02 12 1d 42 4e 45 20 |\ result....BNE | 000004d0 73 65 65 6b 65 72 72 6f 72 20 5c 20 3d 20 30 20 |seekerror \ = 0 | 000004e0 69 66 20 4f 4b 0d 02 1c 16 4c 44 41 20 23 26 30 |if OK....LDA #&0| 000004f0 31 20 5c 20 64 72 69 76 65 20 31 0d 02 26 26 53 |1 \ drive 1..&&S| 00000500 54 41 20 73 65 65 6b 62 6c 6f 63 6b 20 5c 20 73 |TA seekblock \ s| 00000510 74 6f 72 65 20 64 72 69 76 65 20 6e 75 6d 62 65 |tore drive numbe| 00000520 72 0d 02 30 0c 4c 44 41 20 23 26 37 46 0d 02 3a |r..0.LDA #&7F..:| 00000530 18 4c 44 58 20 23 73 65 65 6b 62 6c 6f 63 6b 20 |.LDX #seekblock | 00000540 83 20 32 35 36 0d 02 44 18 4c 44 59 20 23 73 65 |. 256..D.LDY #se| 00000550 65 6b 62 6c 6f 63 6b 20 81 20 32 35 36 0d 02 4e |ekblock . 256..N| 00000560 0e 4a 53 52 20 6f 73 77 6f 72 64 0d 02 58 1c 4c |.JSR osword..X.L| 00000570 44 41 20 73 65 65 6b 62 6c 6f 63 6b 2b 38 20 5c |DA seekblock+8 \| 00000580 20 72 65 73 75 6c 74 0d 02 62 1d 42 4e 45 20 73 | result..b.BNE s| 00000590 65 65 6b 65 72 72 6f 72 20 5c 20 3d 20 30 20 69 |eekerror \ = 0 i| 000005a0 66 20 4f 4b 0d 02 6c 07 52 54 53 0d 02 76 0e 2e |f OK..l.RTS..v..| 000005b0 73 65 65 6b 65 72 72 6f 72 0d 02 80 07 42 52 4b |seekerror....BRK| 000005c0 0d 02 8a 07 42 52 4b 0d 02 94 15 45 51 55 53 20 |....BRK....EQUS | 000005d0 22 53 65 65 6b 20 65 72 72 6f 72 22 0d 02 9e 07 |"Seek error"....| 000005e0 42 52 4b 0d 02 a8 0b 2e 66 6f 72 6d 61 74 0d 02 |BRK.....format..| 000005f0 b2 28 4c 44 41 20 70 68 79 73 69 63 61 6c 20 5c |.(LDA physical \| 00000600 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b 20 | physical track | 00000610 6e 75 6d 62 65 72 0d 02 bc 2a 53 54 41 20 66 6f |number...*STA fo| 00000620 72 6d 62 6c 6f 63 6b 2b 37 20 5c 20 73 74 6f 72 |rmblock+7 \ stor| 00000630 65 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b |e physical track| 00000640 0d 02 c6 20 4c 44 58 20 74 61 62 6c 65 2b 33 20 |... LDX table+3 | 00000650 5c 20 64 61 74 61 20 73 69 7a 65 20 63 6f 64 65 |\ data size code| 00000660 0d 02 d0 2c 4c 44 41 20 67 61 70 2c 58 20 5c 20 |...,LDA gap,X \ | 00000670 6c 6f 61 64 20 67 61 70 20 33 20 66 6f 72 20 74 |load gap 3 for t| 00000680 68 65 73 65 20 73 65 63 74 6f 72 73 0d 02 da 2a |hese sectors...*| 00000690 53 54 41 20 66 6f 72 6d 62 6c 6f 63 6b 2b 38 20 |STA formblock+8 | 000006a0 5c 20 73 74 6f 72 65 20 66 6f 72 20 66 6f 72 6d |\ store for form| 000006b0 61 74 74 69 6e 67 0d 02 e4 0c 4c 44 41 20 23 26 |atting....LDA #&| 000006c0 37 46 0d 02 ee 18 4c 44 58 20 23 66 6f 72 6d 62 |7F....LDX #formb| 000006d0 6c 6f 63 6b 20 83 20 32 35 36 0d 02 f8 18 4c 44 |lock . 256....LD| 000006e0 59 20 23 66 6f 72 6d 62 6c 6f 63 6b 20 81 20 32 |Y #formblock . 2| 000006f0 35 36 0d 03 02 0e 4a 53 52 20 6f 73 77 6f 72 64 |56....JSR osword| 00000700 0d 03 0c 1d 4c 44 41 20 66 6f 72 6d 62 6c 6f 63 |....LDA formbloc| 00000710 6b 2b 31 32 20 5c 20 72 65 73 75 6c 74 0d 03 16 |k+12 \ result...| 00000720 1d 42 4e 45 20 66 6f 72 6d 65 72 72 6f 72 20 5c |.BNE formerror \| 00000730 20 3d 20 30 20 69 66 20 4f 4b 0d 03 20 07 52 54 | = 0 if OK.. .RT| 00000740 53 0d 03 2a 0e 2e 66 6f 72 6d 65 72 72 6f 72 0d |S..*..formerror.| 00000750 03 34 07 42 52 4b 0d 03 3e 07 42 52 4b 0d 03 48 |.4.BRK..>.BRK..H| 00000760 17 45 51 55 53 20 22 46 6f 72 6d 61 74 20 65 72 |.EQUS "Format er| 00000770 72 6f 72 22 0d 03 52 07 42 52 4b 0d 03 5c 0b 2e |ror"..R.BRK..\..| 00000780 64 65 66 6f 72 6d 0d 03 66 2d 4c 44 41 20 70 68 |deform..f-LDA ph| 00000790 79 73 69 63 61 6c 20 5c 20 6c 6f 61 64 20 70 68 |ysical \ load ph| 000007a0 79 73 69 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d |ysical track num| 000007b0 62 65 72 0d 03 70 28 53 54 41 20 64 65 62 6c 6f |ber..p(STA deblo| 000007c0 63 6b 2b 37 20 5c 20 73 74 6f 72 65 20 70 68 79 |ck+7 \ store phy| 000007d0 73 69 63 61 6c 20 74 72 61 63 6b 0d 03 7a 0c 4c |sical track..z.L| 000007e0 44 41 20 23 26 37 46 0d 03 84 16 4c 44 58 20 23 |DA #&7F....LDX #| 000007f0 64 65 62 6c 6f 63 6b 20 83 20 32 35 36 0d 03 8e |deblock . 256...| 00000800 16 4c 44 59 20 23 64 65 62 6c 6f 63 6b 20 81 20 |.LDY #deblock . | 00000810 32 35 36 0d 03 98 21 4a 53 52 20 6f 73 77 6f 72 |256...!JSR oswor| 00000820 64 20 5c 20 22 64 65 66 6f 72 6d 61 74 22 20 74 |d \ "deformat" t| 00000830 72 61 63 6b 0d 03 a2 1b 4c 44 41 20 64 65 62 6c |rack....LDA debl| 00000840 6f 63 6b 2b 31 32 20 5c 20 72 65 73 75 6c 74 0d |ock+12 \ result.| 00000850 03 ac 1b 42 4e 45 20 64 65 65 72 72 6f 72 20 5c |...BNE deerror \| 00000860 20 3d 20 30 20 69 66 20 4f 4b 0d 03 b6 07 52 54 | = 0 if OK....RT| 00000870 53 0d 03 c0 0c 2e 64 65 65 72 72 6f 72 0d 03 ca |S.....deerror...| 00000880 07 42 52 4b 0d 03 d4 07 42 52 4b 0d 03 de 19 45 |.BRK....BRK....E| 00000890 51 55 53 20 22 44 65 66 6f 72 6d 61 74 20 65 72 |QUS "Deformat er| 000008a0 72 6f 72 22 0d 03 e8 07 42 52 4b 0d 03 f2 0d 2e |ror"....BRK.....| 000008b0 72 65 67 69 73 74 65 72 0d 03 fc 2d 53 54 41 20 |register...-STA | 000008c0 72 65 67 62 6c 6f 63 6b 2b 38 20 5c 20 76 61 6c |regblock+8 \ val| 000008d0 75 65 20 74 6f 20 70 75 74 20 69 6e 20 72 65 67 |ue to put in reg| 000008e0 69 73 74 65 72 0d 04 06 16 4c 44 41 20 23 26 30 |ister....LDA #&0| 000008f0 30 20 5c 20 64 72 69 76 65 20 30 0d 04 10 10 53 |0 \ drive 0....S| 00000900 54 41 20 72 65 67 62 6c 6f 63 6b 0d 04 1a 27 4c |TA regblock...'L| 00000910 44 41 20 23 26 31 32 20 5c 20 77 72 69 74 65 20 |DA #&12 \ write | 00000920 74 72 61 63 6b 20 72 65 67 69 73 74 65 72 20 30 |track register 0| 00000930 2f 32 0d 04 24 24 53 54 41 20 72 65 67 62 6c 6f |/2..$$STA regblo| 00000940 63 6b 2b 37 20 5c 20 72 65 67 69 73 74 65 72 20 |ck+7 \ register | 00000950 6e 75 6d 62 65 72 0d 04 2e 0c 4c 44 41 20 23 26 |number....LDA #&| 00000960 37 46 0d 04 38 17 4c 44 58 20 23 72 65 67 62 6c |7F..8.LDX #regbl| 00000970 6f 63 6b 20 83 20 32 35 36 0d 04 42 17 4c 44 59 |ock . 256..B.LDY| 00000980 20 23 72 65 67 62 6c 6f 63 6b 20 81 20 32 35 36 | #regblock . 256| 00000990 0d 04 4c 0e 4a 53 52 20 6f 73 77 6f 72 64 0d 04 |..L.JSR osword..| 000009a0 56 1b 4c 44 41 20 72 65 67 62 6c 6f 63 6b 2b 39 |V.LDA regblock+9| 000009b0 20 5c 20 72 65 73 75 6c 74 0d 04 60 1c 42 4e 45 | \ result..`.BNE| 000009c0 20 72 65 67 65 72 72 6f 72 20 5c 20 3d 20 30 20 | regerror \ = 0 | 000009d0 69 66 20 4f 4b 0d 04 6a 16 4c 44 41 20 23 26 30 |if OK..j.LDA #&0| 000009e0 31 20 5c 20 64 72 69 76 65 20 31 0d 04 74 10 53 |1 \ drive 1..t.S| 000009f0 54 41 20 72 65 67 62 6c 6f 63 6b 0d 04 7e 27 4c |TA regblock..~'L| 00000a00 44 41 20 23 26 31 41 20 5c 20 77 72 69 74 65 20 |DA #&1A \ write | 00000a10 74 72 61 63 6b 20 72 65 67 69 73 74 65 72 20 31 |track register 1| 00000a20 2f 33 0d 04 88 24 53 54 41 20 72 65 67 62 6c 6f |/3...$STA regblo| 00000a30 63 6b 2b 37 20 5c 20 72 65 67 69 73 74 65 72 20 |ck+7 \ register | 00000a40 6e 75 6d 62 65 72 0d 04 92 0c 4c 44 41 20 23 26 |number....LDA #&| 00000a50 37 46 0d 04 9c 17 4c 44 58 20 23 72 65 67 62 6c |7F....LDX #regbl| 00000a60 6f 63 6b 20 83 20 32 35 36 0d 04 a6 17 4c 44 59 |ock . 256....LDY| 00000a70 20 23 72 65 67 62 6c 6f 63 6b 20 81 20 32 35 36 | #regblock . 256| 00000a80 0d 04 b0 0e 4a 53 52 20 6f 73 77 6f 72 64 0d 04 |....JSR osword..| 00000a90 ba 1b 4c 44 41 20 72 65 67 62 6c 6f 63 6b 2b 39 |..LDA regblock+9| 00000aa0 20 5c 20 72 65 73 75 6c 74 0d 04 c4 1c 42 4e 45 | \ result....BNE| 00000ab0 20 72 65 67 65 72 72 6f 72 20 5c 20 3d 20 30 20 | regerror \ = 0 | 00000ac0 69 66 20 4f 4b 0d 04 ce 07 52 54 53 0d 04 d8 0d |if OK....RTS....| 00000ad0 2e 72 65 67 65 72 72 6f 72 0d 04 e2 07 42 52 4b |.regerror....BRK| 00000ae0 0d 04 ec 07 42 52 4b 0d 04 f6 21 45 51 55 53 20 |....BRK...!EQUS | 00000af0 22 53 70 65 63 69 61 6c 20 72 65 67 69 73 74 65 |"Special registe| 00000b00 72 20 65 72 72 6f 72 22 0d 05 00 07 42 52 4b 0d |r error"....BRK.| 00000b10 05 0a 10 2e 66 69 72 73 74 73 65 63 74 6f 72 0d |....firstsector.| 00000b20 05 14 28 4c 44 41 20 70 68 79 73 69 63 61 6c 20 |..(LDA physical | 00000b30 5c 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b |\ physical track| 00000b40 20 6e 75 6d 62 65 72 0d 05 1e 29 53 54 41 20 69 | number...)STA i| 00000b50 64 73 62 6c 6f 63 6b 2b 37 20 5c 20 73 74 6f 72 |dsblock+7 \ stor| 00000b60 65 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b |e physical track| 00000b70 0d 05 28 19 4c 44 41 20 23 26 30 31 20 5c 20 6f |..(.LDA #&01 \ o| 00000b80 6e 65 20 73 65 63 74 6f 72 0d 05 32 22 53 54 41 |ne sector..2"STA| 00000b90 20 69 64 73 62 6c 6f 63 6b 2b 39 20 5c 20 6e 75 | idsblock+9 \ nu| 00000ba0 6d 62 65 72 20 6f 66 20 69 64 73 0d 05 3c 0c 4c |mber of ids..<.L| 00000bb0 44 41 20 23 26 37 46 0d 05 46 17 4c 44 58 20 23 |DA #&7F..F.LDX #| 00000bc0 69 64 73 62 6c 6f 63 6b 20 83 20 32 35 36 0d 05 |idsblock . 256..| 00000bd0 50 17 4c 44 59 20 23 69 64 73 62 6c 6f 63 6b 20 |P.LDY #idsblock | 00000be0 81 20 32 35 36 0d 05 5a 0e 4a 53 52 20 6f 73 77 |. 256..Z.JSR osw| 00000bf0 6f 72 64 0d 05 64 1c 4c 44 41 20 69 64 73 62 6c |ord..d.LDA idsbl| 00000c00 6f 63 6b 2b 31 30 20 5c 20 72 65 73 75 6c 74 0d |ock+10 \ result.| 00000c10 05 6e 1d 80 20 23 26 31 45 20 5c 20 3d 20 30 20 |.n.. #&1E \ = 0 | 00000c20 69 66 20 66 6f 72 6d 61 74 74 65 64 0d 05 78 07 |if formatted..x.| 00000c30 52 54 53 0d 05 82 0e 2e 73 65 63 74 6f 72 69 64 |RTS.....sectorid| 00000c40 73 0d 05 8c 25 4c 44 58 20 74 61 62 6c 65 2b 33 |s...%LDX table+3| 00000c50 20 5c 20 6c 6f 61 64 20 64 61 74 61 20 73 69 7a | \ load data siz| 00000c60 65 20 63 6f 64 65 0d 05 96 28 4c 44 41 20 73 69 |e code...(LDA si| 00000c70 7a 65 73 2c 58 20 5c 20 6c 6f 61 64 20 6e 75 6d |zes,X \ load num| 00000c80 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 0d 05 |ber of sectors..| 00000c90 a0 2c 53 54 41 20 69 64 73 62 6c 6f 63 6b 2b 39 |.,STA idsblock+9| 00000ca0 20 5c 20 73 74 6f 72 65 20 6e 75 6d 62 65 72 20 | \ store number | 00000cb0 6f 66 20 73 65 63 74 6f 72 73 0d 05 aa 0e 41 53 |of sectors....AS| 00000cc0 4c 20 41 20 5c 20 2a 32 0d 05 b4 0e 41 53 4c 20 |L A \ *2....ASL | 00000cd0 41 20 5c 20 2a 34 0d 05 be 07 53 45 43 0d 05 c8 |A \ *4....SEC...| 00000ce0 1a 53 42 43 20 23 26 30 34 20 5c 20 73 65 63 74 |.SBC #&04 \ sect| 00000cf0 6f 72 73 2a 34 2d 34 0d 05 d2 2d 53 54 41 20 73 |ors*4-4...-STA s| 00000d00 65 63 74 6f 72 6e 75 6d 62 65 72 20 5c 20 73 74 |ectornumber \ st| 00000d10 6f 72 65 20 69 6e 64 65 78 20 6f 6e 20 73 65 63 |ore index on sec| 00000d20 74 6f 72 73 0d 05 dc 21 54 58 41 20 5c 20 74 72 |tors...!TXA \ tr| 00000d30 61 6e 73 66 65 72 20 64 61 74 61 20 73 69 7a 65 |ansfer data size| 00000d40 20 63 6f 64 65 0d 05 e6 0e 41 53 4c 20 41 20 5c | code....ASL A \| 00000d50 20 2a 32 0d 05 f0 0e 41 53 4c 20 41 20 5c 20 2a | *2....ASL A \ *| 00000d60 34 0d 05 fa 0e 41 53 4c 20 41 20 5c 20 2a 38 0d |4....ASL A \ *8.| 00000d70 06 04 0f 41 53 4c 20 41 20 5c 20 2a 31 36 0d 06 |...ASL A \ *16..| 00000d80 0e 0f 41 53 4c 20 41 20 5c 20 2a 33 32 0d 06 18 |..ASL A \ *32...| 00000d90 29 84 41 20 69 64 73 62 6c 6f 63 6b 2b 39 20 5c |).A idsblock+9 \| 00000da0 20 61 64 64 20 6e 75 6d 62 65 72 20 6f 66 20 73 | add number of s| 00000db0 65 63 74 6f 72 73 0d 06 22 28 53 54 41 20 63 6f |ectors.."(STA co| 00000dc0 70 79 62 6c 6f 63 6b 2b 39 20 5c 20 73 65 63 74 |pyblock+9 \ sect| 00000dd0 6f 72 20 73 69 7a 65 2f 6e 75 6d 62 65 72 0d 06 |or size/number..| 00000de0 2c 28 53 54 41 20 66 6f 72 6d 62 6c 6f 63 6b 2b |,(STA formblock+| 00000df0 39 20 5c 20 73 65 63 74 6f 72 20 73 69 7a 65 2f |9 \ sector size/| 00000e00 6e 75 6d 62 65 72 0d 06 36 0c 4c 44 41 20 23 26 |number..6.LDA #&| 00000e10 37 46 0d 06 40 17 4c 44 58 20 23 69 64 73 62 6c |7F..@.LDX #idsbl| 00000e20 6f 63 6b 20 83 20 32 35 36 0d 06 4a 17 4c 44 59 |ock . 256..J.LDY| 00000e30 20 23 69 64 73 62 6c 6f 63 6b 20 81 20 32 35 36 | #idsblock . 256| 00000e40 0d 06 54 0e 4a 53 52 20 6f 73 77 6f 72 64 0d 06 |..T.JSR osword..| 00000e50 5e 1c 4c 44 41 20 69 64 73 62 6c 6f 63 6b 2b 31 |^.LDA idsblock+1| 00000e60 30 20 5c 20 72 65 73 75 6c 74 0d 06 68 0a 80 20 |0 \ result..h.. | 00000e70 23 26 31 45 0d 06 72 1c 42 4e 45 20 69 64 73 65 |#&1E..r.BNE idse| 00000e80 72 72 6f 72 20 5c 20 3d 20 30 20 69 66 20 4f 4b |rror \ = 0 if OK| 00000e90 0d 06 7c 07 52 54 53 0d 06 86 0d 2e 69 64 73 65 |..|.RTS.....idse| 00000ea0 72 72 6f 72 0d 06 90 07 42 52 4b 0d 06 9a 07 42 |rror....BRK....B| 00000eb0 52 4b 0d 06 a4 1a 45 51 55 53 20 22 53 65 63 74 |RK....EQUS "Sect| 00000ec0 6f 72 20 49 44 20 45 72 72 6f 72 22 0d 06 ae 07 |or ID Error"....| 00000ed0 42 52 4b 0d 06 b8 0e 2e 63 6f 70 79 74 72 61 63 |BRK.....copytrac| 00000ee0 6b 0d 06 c2 2a 4c 44 58 20 73 65 63 74 6f 72 6e |k...*LDX sectorn| 00000ef0 75 6d 62 65 72 20 5c 20 6c 6f 61 64 20 69 6e 64 |umber \ load ind| 00000f00 65 78 20 6f 6e 20 74 61 62 6c 65 0d 06 cc 2e 4c |ex on table....L| 00000f10 44 41 20 74 61 62 6c 65 2b 32 2c 58 20 5c 20 6c |DA table+2,X \ l| 00000f20 6f 61 64 20 6c 6f 67 69 63 61 6c 20 73 65 63 74 |oad logical sect| 00000f30 6f 72 20 6e 75 6d 62 65 72 0d 06 d6 2b 53 54 41 |or number...+STA| 00000f40 20 63 6f 70 79 62 6c 6f 63 6b 2b 38 20 5c 20 73 | copyblock+8 \ s| 00000f50 74 6f 72 65 20 66 6f 72 20 72 65 61 64 20 73 65 |tore for read se| 00000f60 63 74 6f 72 0d 06 e0 0b 2e 6c 6f 77 65 73 74 0d |ctor.....lowest.| 00000f70 06 ea 07 44 45 58 0d 06 f4 07 44 45 58 0d 06 fe |...DEX....DEX...| 00000f80 07 44 45 58 0d 07 08 07 44 45 58 0d 07 12 10 42 |.DEX....DEX....B| 00000f90 4d 49 20 66 69 6e 69 73 68 65 64 0d 07 1c 2e 4c |MI finished....L| 00000fa0 44 41 20 74 61 62 6c 65 2b 32 2c 58 20 5c 20 6c |DA table+2,X \ l| 00000fb0 6f 61 64 20 6c 6f 67 69 63 61 6c 20 73 65 63 74 |oad logical sect| 00000fc0 6f 72 20 6e 75 6d 62 65 72 0d 07 26 34 43 4d 50 |or number..&4CMP| 00000fd0 20 63 6f 70 79 62 6c 6f 63 6b 2b 38 20 5c 20 69 | copyblock+8 \ i| 00000fe0 73 20 69 74 20 6c 6f 77 65 72 20 74 68 61 6e 20 |s it lower than | 00000ff0 74 68 65 20 6c 61 73 74 20 6f 6e 65 3f 0d 07 30 |the last one?..0| 00001000 2c 42 43 53 20 6c 6f 77 65 73 74 20 5c 20 62 72 |,BCS lowest \ br| 00001010 61 6e 63 68 20 69 66 20 6e 6f 74 20 6c 6f 77 65 |anch if not lowe| 00001020 73 74 20 73 65 63 74 6f 72 0d 07 3a 2a 53 54 41 |st sector..:*STA| 00001030 20 63 6f 70 79 62 6c 6f 63 6b 2b 38 20 5c 20 73 | copyblock+8 \ s| 00001040 74 6f 72 65 20 69 66 20 69 74 20 69 73 20 6c 6f |tore if it is lo| 00001050 77 65 72 0d 07 44 2d 42 43 43 20 6c 6f 77 65 73 |wer..D-BCC lowes| 00001060 74 20 5c 20 6c 6f 6f 6b 20 66 6f 72 20 6c 6f 77 |t \ look for low| 00001070 65 72 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 |er sector number| 00001080 0d 07 4e 0d 2e 66 69 6e 69 73 68 65 64 0d 07 58 |..N..finished..X| 00001090 29 4c 44 41 20 74 61 62 6c 65 20 5c 20 6c 6f 61 |)LDA table \ loa| 000010a0 64 20 6c 6f 67 69 63 61 6c 20 74 72 61 63 6b 20 |d logical track | 000010b0 6e 75 6d 62 65 72 0d 07 62 28 53 54 41 20 63 6f |number..b(STA co| 000010c0 70 79 62 6c 6f 63 6b 2b 37 20 5c 20 61 6e 64 20 |pyblock+7 \ and | 000010d0 73 74 6f 72 65 20 66 6f 72 20 72 65 61 64 0d 07 |store for read..| 000010e0 6c 27 4a 53 52 20 72 65 67 69 73 74 65 72 20 5c |l'JSR register \| 000010f0 20 77 72 69 74 65 20 74 72 61 63 6b 20 72 65 67 | write track reg| 00001100 69 73 74 65 72 0d 07 76 16 4c 44 41 20 23 26 30 |ister..v.LDA #&0| 00001110 30 20 5c 20 64 72 69 76 65 20 30 0d 07 80 11 53 |0 \ drive 0....S| 00001120 54 41 20 63 6f 70 79 62 6c 6f 63 6b 0d 07 8a 22 |TA copyblock..."| 00001130 4c 44 41 20 23 26 35 37 20 5c 20 72 65 61 64 20 |LDA #&57 \ read | 00001140 73 65 63 74 6f 72 20 63 6f 6d 6d 61 6e 64 0d 07 |sector command..| 00001150 94 13 53 54 41 20 63 6f 70 79 62 6c 6f 63 6b 2b |..STA copyblock+| 00001160 36 0d 07 9e 0c 4c 44 41 20 23 26 37 46 0d 07 a8 |6....LDA #&7F...| 00001170 18 4c 44 58 20 23 63 6f 70 79 62 6c 6f 63 6b 20 |.LDX #copyblock | 00001180 83 20 32 35 36 0d 07 b2 18 4c 44 59 20 23 63 6f |. 256....LDY #co| 00001190 70 79 62 6c 6f 63 6b 20 81 20 32 35 36 0d 07 bc |pyblock . 256...| 000011a0 0e 4a 53 52 20 6f 73 77 6f 72 64 0d 07 c6 1d 4c |.JSR osword....L| 000011b0 44 41 20 63 6f 70 79 62 6c 6f 63 6b 2b 31 30 20 |DA copyblock+10 | 000011c0 5c 20 72 65 73 75 6c 74 0d 07 d0 21 42 45 51 20 |\ result...!BEQ | 000011d0 6e 6f 74 64 65 6c 20 5c 20 6e 6f 74 20 64 65 6c |notdel \ not del| 000011e0 65 74 65 64 20 64 61 74 61 0d 07 da 22 43 4d 50 |eted data..."CMP| 000011f0 20 23 26 32 30 20 5c 20 64 65 6c 65 74 65 64 20 | #&20 \ deleted | 00001200 64 61 74 61 20 72 65 73 75 6c 74 0d 07 e4 24 42 |data result...$B| 00001210 4e 45 20 72 65 61 64 65 72 72 6f 72 20 5c 20 65 |NE readerror \ e| 00001220 72 72 6f 72 20 69 66 20 6e 6f 74 20 26 32 30 0d |rror if not &20.| 00001230 07 ee 29 4c 44 41 20 23 26 34 46 20 5c 20 77 72 |..)LDA #&4F \ wr| 00001240 69 74 65 20 64 65 6c 65 74 65 64 20 64 61 74 61 |ite deleted data| 00001250 20 63 6f 6d 6d 61 6e 64 0d 07 f8 0f 42 4e 45 20 | command....BNE | 00001260 73 61 76 65 63 6f 6d 0d 08 02 0b 2e 6e 6f 74 64 |savecom.....notd| 00001270 65 6c 0d 08 0c 21 4c 44 41 20 23 26 34 42 20 5c |el...!LDA #&4B \| 00001280 20 77 72 69 74 65 20 64 61 74 61 20 63 6f 6d 6d | write data comm| 00001290 61 6e 64 0d 08 16 0c 2e 73 61 76 65 63 6f 6d 0d |and.....savecom.| 000012a0 08 20 13 53 54 41 20 63 6f 70 79 62 6c 6f 63 6b |. .STA copyblock| 000012b0 2b 36 0d 08 2a 16 4c 44 41 20 23 26 30 31 20 5c |+6..*.LDA #&01 \| 000012c0 20 64 72 69 76 65 20 31 0d 08 34 11 53 54 41 20 | drive 1..4.STA | 000012d0 63 6f 70 79 62 6c 6f 63 6b 0d 08 3e 0c 4c 44 41 |copyblock..>.LDA| 000012e0 20 23 26 37 46 0d 08 48 18 4c 44 58 20 23 63 6f | #&7F..H.LDX #co| 000012f0 70 79 62 6c 6f 63 6b 20 83 20 32 35 36 0d 08 52 |pyblock . 256..R| 00001300 18 4c 44 59 20 23 63 6f 70 79 62 6c 6f 63 6b 20 |.LDY #copyblock | 00001310 81 20 32 35 36 0d 08 5c 0e 4a 53 52 20 6f 73 77 |. 256..\.JSR osw| 00001320 6f 72 64 0d 08 66 1d 4c 44 41 20 63 6f 70 79 62 |ord..f.LDA copyb| 00001330 6c 6f 63 6b 2b 31 30 20 5c 20 72 65 73 75 6c 74 |lock+10 \ result| 00001340 0d 08 70 1e 42 4e 45 20 77 72 69 74 65 65 72 72 |..p.BNE writeerr| 00001350 6f 72 20 5c 20 3d 20 30 20 69 66 20 4f 4b 0d 08 |or \ = 0 if OK..| 00001360 7a 10 4c 44 41 20 70 68 79 73 69 63 61 6c 0d 08 |z.LDA physical..| 00001370 84 27 4a 53 52 20 72 65 67 69 73 74 65 72 20 5c |.'JSR register \| 00001380 20 77 72 69 74 65 20 74 72 61 63 6b 20 72 65 67 | write track reg| 00001390 69 73 74 65 72 0d 08 8e 07 52 54 53 0d 08 98 0e |ister....RTS....| 000013a0 2e 72 65 61 64 65 72 72 6f 72 0d 08 a2 10 4c 44 |.readerror....LD| 000013b0 41 20 70 68 79 73 69 63 61 6c 0d 08 ac 10 4a 53 |A physical....JS| 000013c0 52 20 72 65 67 69 73 74 65 72 0d 08 b6 07 42 52 |R register....BR| 000013d0 4b 0d 08 c0 07 42 52 4b 0d 08 ca 15 45 51 55 53 |K....BRK....EQUS| 000013e0 20 22 52 65 61 64 20 65 72 72 6f 72 22 0d 08 d4 | "Read error"...| 000013f0 07 42 52 4b 0d 08 de 0f 2e 77 72 69 74 65 65 72 |.BRK.....writeer| 00001400 72 6f 72 0d 08 e8 10 4c 44 41 20 70 68 79 73 69 |ror....LDA physi| 00001410 63 61 6c 0d 08 f2 10 4a 53 52 20 72 65 67 69 73 |cal....JSR regis| 00001420 74 65 72 0d 08 fc 07 42 52 4b 0d 09 06 07 42 52 |ter....BRK....BR| 00001430 4b 0d 09 10 16 45 51 55 53 20 22 57 72 69 74 65 |K....EQUS "Write| 00001440 20 65 72 72 6f 72 22 0d 09 1a 07 42 52 4b 0d 09 | error"....BRK..| 00001450 24 0e 2e 70 72 69 6e 74 62 79 74 65 0d 09 2e 2e |$..printbyte....| 00001460 4c 44 41 20 70 68 79 73 69 63 61 6c 20 5c 20 70 |LDA physical \ p| 00001470 72 69 6e 74 20 70 68 79 73 69 63 61 6c 20 74 72 |rint physical tr| 00001480 61 63 6b 20 6e 75 6d 62 65 72 0d 09 38 07 50 48 |ack number..8.PH| 00001490 41 0d 09 42 09 4c 53 52 20 41 0d 09 4c 09 4c 53 |A..B.LSR A..L.LS| 000014a0 52 20 41 0d 09 56 09 4c 53 52 20 41 0d 09 60 09 |R A..V.LSR A..`.| 000014b0 4c 53 52 20 41 0d 09 6a 20 4a 53 52 20 6e 79 62 |LSR A..j JSR nyb| 000014c0 62 6c 65 20 5c 20 70 72 69 6e 74 20 4d 53 20 6e |ble \ print MS n| 000014d0 79 62 62 6c 65 0d 09 74 07 50 4c 41 0d 09 7e 20 |ybble..t.PLA..~ | 000014e0 4a 53 52 20 6e 79 62 62 6c 65 20 5c 20 70 72 69 |JSR nybble \ pri| 000014f0 6e 74 20 4c 53 20 6e 79 62 62 6c 65 0d 09 88 0f |nt LS nybble....| 00001500 4c 44 41 20 23 97 28 22 20 22 29 0d 09 92 1c 4a |LDA #.(" ")....J| 00001510 53 52 20 6f 73 77 72 63 68 20 5c 20 70 72 69 6e |SR oswrch \ prin| 00001520 74 20 73 70 61 63 65 0d 09 9c 27 4a 4d 50 20 6f |t space...'JMP o| 00001530 73 77 72 63 68 20 5c 20 70 72 69 6e 74 20 73 70 |swrch \ print sp| 00001540 61 63 65 20 61 6e 64 20 72 65 74 75 72 6e 0d 09 |ace and return..| 00001550 a6 0b 2e 6e 79 62 62 6c 65 0d 09 b0 0a 80 20 23 |...nybble..... #| 00001560 26 30 46 0d 09 ba 07 53 45 44 0d 09 c4 07 43 4c |&0F....SED....CL| 00001570 43 0d 09 ce 0c 41 44 43 20 23 26 39 30 0d 09 d8 |C....ADC #&90...| 00001580 0c 41 44 43 20 23 26 34 30 0d 09 e2 07 43 4c 44 |.ADC #&40....CLD| 00001590 0d 09 ec 28 4a 4d 50 20 6f 73 77 72 63 68 20 5c |...(JMP oswrch \| 000015a0 20 70 72 69 6e 74 20 6e 79 62 62 6c 65 20 61 6e | print nybble an| 000015b0 64 20 72 65 74 75 72 6e 0d 09 f6 0e 2e 73 65 65 |d return.....see| 000015c0 6b 62 6c 6f 63 6b 0d 0a 00 18 45 51 55 42 20 26 |kblock....EQUB &| 000015d0 30 30 20 5c 20 64 72 69 76 65 20 30 2f 31 0d 0a |00 \ drive 0/1..| 000015e0 0a 1e 45 51 55 44 20 26 30 30 20 5c 20 64 6f 65 |..EQUD &00 \ doe| 000015f0 73 20 6e 6f 74 20 6d 61 74 74 65 72 0d 0a 14 1a |s not matter....| 00001600 45 51 55 42 20 26 30 31 20 5c 20 31 20 70 61 72 |EQUB &01 \ 1 par| 00001610 61 6d 65 74 65 72 0d 0a 1e 1b 45 51 55 42 20 26 |ameter....EQUB &| 00001620 36 39 20 5c 20 73 65 65 6b 20 63 6f 6d 6d 61 6e |69 \ seek comman| 00001630 64 0d 0a 28 24 45 51 55 42 20 26 30 30 20 5c 20 |d..($EQUB &00 \ | 00001640 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b 20 6e |physical track n| 00001650 75 6d 62 65 72 0d 0a 32 1a 45 51 55 42 20 26 30 |umber..2.EQUB &0| 00001660 30 20 5c 20 72 65 73 75 6c 74 20 62 79 74 65 0d |0 \ result byte.| 00001670 0a 3c 0d 2e 72 65 67 62 6c 6f 63 6b 0d 0a 46 18 |.<..regblock..F.| 00001680 45 51 55 42 20 26 30 30 20 5c 20 64 72 69 76 65 |EQUB &00 \ drive| 00001690 20 30 2f 31 0d 0a 50 1e 45 51 55 44 20 26 30 30 | 0/1..P.EQUD &00| 000016a0 20 5c 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 74 | \ does not matt| 000016b0 65 72 0d 0a 5a 1b 45 51 55 42 20 26 30 32 20 5c |er..Z.EQUB &02 \| 000016c0 20 32 20 70 61 72 61 6d 65 74 65 72 73 0d 0a 64 | 2 parameters..d| 000016d0 25 45 51 55 42 20 26 37 41 20 5c 20 77 72 69 74 |%EQUB &7A \ writ| 000016e0 65 20 73 70 65 63 69 61 6c 20 72 65 67 69 73 74 |e special regist| 000016f0 65 72 0d 0a 6e 1e 45 51 55 42 20 26 30 30 20 5c |er..n.EQUB &00 \| 00001700 20 72 65 67 69 73 74 65 72 20 6e 75 6d 62 65 72 | register number| 00001710 0d 0a 78 27 45 51 55 42 20 26 30 30 20 5c 20 76 |..x'EQUB &00 \ v| 00001720 61 6c 75 65 20 74 6f 20 70 75 74 20 69 6e 20 72 |alue to put in r| 00001730 65 67 69 73 74 65 72 0d 0a 82 1a 45 51 55 42 20 |egister....EQUB | 00001740 26 30 30 20 5c 20 72 65 73 75 6c 74 20 62 79 74 |&00 \ result byt| 00001750 65 0d 0a 8c 0d 2e 69 64 73 62 6c 6f 63 6b 0d 0a |e.....idsblock..| 00001760 96 16 45 51 55 42 20 26 30 30 20 5c 20 64 72 69 |..EQUB &00 \ dri| 00001770 76 65 20 30 0d 0a a0 22 45 51 55 44 20 74 61 62 |ve 0..."EQUD tab| 00001780 6c 65 20 5c 20 61 64 64 72 65 73 73 20 6f 66 20 |le \ address of | 00001790 62 75 66 66 65 72 0d 0a aa 1b 45 51 55 42 20 26 |buffer....EQUB &| 000017a0 30 33 20 5c 20 33 20 70 61 72 61 6d 65 74 65 72 |03 \ 3 parameter| 000017b0 73 0d 0a b4 26 45 51 55 42 20 26 35 42 20 5c 20 |s...&EQUB &5B \ | 000017c0 72 65 61 64 20 73 65 63 74 6f 72 20 49 44 73 20 |read sector IDs | 000017d0 63 6f 6d 6d 61 6e 64 0d 0a be 24 45 51 55 42 20 |command...$EQUB | 000017e0 26 30 30 20 5c 20 70 68 79 73 69 63 61 6c 20 74 |&00 \ physical t| 000017f0 72 61 63 6b 20 6e 75 6d 62 65 72 0d 0a c8 19 45 |rack number....E| 00001800 51 55 42 20 26 30 30 20 5c 20 61 6c 77 61 79 73 |QUB &00 \ always| 00001810 20 26 30 30 0d 0a d2 27 45 51 55 42 20 26 30 30 | &00...'EQUB &00| 00001820 20 5c 20 6e 75 6d 62 65 72 20 6f 66 20 49 44 73 | \ number of IDs| 00001830 20 74 6f 20 62 65 20 72 65 61 64 0d 0a dc 1a 45 | to be read....E| 00001840 51 55 42 20 26 30 30 20 5c 20 72 65 73 75 6c 74 |QUB &00 \ result| 00001850 20 62 79 74 65 0d 0a e6 0e 2e 63 6f 70 79 62 6c | byte.....copybl| 00001860 6f 63 6b 0d 0a f0 18 45 51 55 42 20 26 30 30 20 |ock....EQUB &00 | 00001870 5c 20 64 72 69 76 65 20 30 2f 31 0d 0a fa 23 45 |\ drive 0/1...#E| 00001880 51 55 44 20 62 75 66 66 65 72 20 5c 20 61 64 64 |QUD buffer \ add| 00001890 72 65 73 73 20 6f 66 20 62 75 66 66 65 72 0d 0b |ress of buffer..| 000018a0 04 1b 45 51 55 42 20 26 30 33 20 5c 20 33 20 70 |..EQUB &03 \ 3 p| 000018b0 61 72 61 6d 65 74 65 72 73 0d 0b 0e 29 45 51 55 |arameters...)EQU| 000018c0 42 20 26 35 37 20 5c 20 72 65 61 64 20 64 61 74 |B &57 \ read dat| 000018d0 61 20 61 6e 64 20 64 65 6c 65 74 65 64 20 64 61 |a and deleted da| 000018e0 74 61 0d 0b 18 23 45 51 55 42 20 26 30 30 20 5c |ta...#EQUB &00 \| 000018f0 20 6c 6f 67 69 63 61 6c 20 74 72 61 63 6b 20 6e | logical track n| 00001900 75 6d 62 65 72 0d 0b 22 24 45 51 55 42 20 26 30 |umber.."$EQUB &0| 00001910 30 20 5c 20 6c 6f 67 69 63 61 6c 20 73 65 63 74 |0 \ logical sect| 00001920 6f 72 20 6e 75 6d 62 65 72 0d 0b 2c 21 45 51 55 |or number..,!EQU| 00001930 42 20 26 30 30 20 5c 20 73 65 63 74 6f 72 20 73 |B &00 \ sector s| 00001940 69 7a 65 2f 6e 75 6d 62 65 72 0d 0b 36 1a 45 51 |ize/number..6.EQ| 00001950 55 42 20 26 30 30 20 5c 20 72 65 73 75 6c 74 20 |UB &00 \ result | 00001960 62 79 74 65 0d 0b 40 0e 2e 66 6f 72 6d 62 6c 6f |byte..@..formblo| 00001970 63 6b 0d 0b 4a 16 45 51 55 42 20 26 30 31 20 5c |ck..J.EQUB &01 \| 00001980 20 64 72 69 76 65 20 31 0d 0b 54 1d 45 51 55 44 | drive 1..T.EQUD| 00001990 20 74 61 62 6c 65 20 5c 20 73 65 63 74 6f 72 20 | table \ sector | 000019a0 74 61 62 6c 65 0d 0b 5e 1b 45 51 55 42 20 26 30 |table..^.EQUB &0| 000019b0 35 20 5c 20 35 20 70 61 72 61 6d 65 74 65 72 73 |5 \ 5 parameters| 000019c0 0d 0b 68 23 45 51 55 42 20 26 36 33 20 5c 20 66 |..h#EQUB &63 \ f| 000019d0 6f 72 6d 61 74 20 74 72 61 63 6b 20 63 6f 6d 6d |ormat track comm| 000019e0 61 6e 64 0d 0b 72 24 45 51 55 42 20 26 30 30 20 |and..r$EQUB &00 | 000019f0 5c 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b |\ physical track| 00001a00 20 6e 75 6d 62 65 72 0d 0b 7c 19 45 51 55 42 20 | number..|.EQUB | 00001a10 26 30 30 20 5c 20 67 61 70 20 33 20 73 69 7a 65 |&00 \ gap 3 size| 00001a20 0d 0b 86 21 45 51 55 42 20 26 30 30 20 5c 20 73 |...!EQUB &00 \ s| 00001a30 65 63 74 6f 72 20 73 69 7a 65 2f 6e 75 6d 62 65 |ector size/numbe| 00001a40 72 0d 0b 90 19 45 51 55 42 20 26 30 30 20 5c 20 |r....EQUB &00 \ | 00001a50 67 61 70 20 35 20 73 69 7a 65 0d 0b 9a 19 45 51 |gap 5 size....EQ| 00001a60 55 42 20 26 31 30 20 5c 20 67 61 70 20 31 20 73 |UB &10 \ gap 1 s| 00001a70 69 7a 65 0d 0b a4 1a 45 51 55 42 20 26 30 30 20 |ize....EQUB &00 | 00001a80 5c 20 72 65 73 75 6c 74 20 62 79 74 65 0d 0b ae |\ result byte...| 00001a90 0c 2e 64 65 62 6c 6f 63 6b 0d 0b b8 16 45 51 55 |..deblock....EQU| 00001aa0 42 20 26 30 31 20 5c 20 64 72 69 76 65 20 31 0d |B &01 \ drive 1.| 00001ab0 0b c2 1f 45 51 55 44 20 64 65 74 61 62 6c 65 20 |...EQUD detable | 00001ac0 5c 20 73 65 63 74 6f 72 20 74 61 62 6c 65 0d 0b |\ sector table..| 00001ad0 cc 1b 45 51 55 42 20 26 30 35 20 5c 20 35 20 70 |..EQUB &05 \ 5 p| 00001ae0 61 72 61 6d 65 74 65 72 73 0d 0b d6 23 45 51 55 |arameters...#EQU| 00001af0 42 20 26 36 33 20 5c 20 66 6f 72 6d 61 74 20 74 |B &63 \ format t| 00001b00 72 61 63 6b 20 63 6f 6d 6d 61 6e 64 0d 0b e0 24 |rack command...$| 00001b10 45 51 55 42 20 26 30 30 20 5c 20 70 68 79 73 69 |EQUB &00 \ physi| 00001b20 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 |cal track number| 00001b30 0d 0b ea 19 45 51 55 42 20 26 30 30 20 5c 20 67 |....EQUB &00 \ g| 00001b40 61 70 20 33 20 73 69 7a 65 0d 0b f4 21 45 51 55 |ap 3 size...!EQU| 00001b50 42 20 26 43 31 20 5c 20 73 65 63 74 6f 72 20 73 |B &C1 \ sector s| 00001b60 69 7a 65 2f 6e 75 6d 62 65 72 0d 0b fe 19 45 51 |ize/number....EQ| 00001b70 55 42 20 26 30 30 20 5c 20 67 61 70 20 35 20 73 |UB &00 \ gap 5 s| 00001b80 69 7a 65 0d 0c 08 19 45 51 55 42 20 26 31 30 20 |ize....EQUB &10 | 00001b90 5c 20 67 61 70 20 31 20 73 69 7a 65 0d 0c 12 1a |\ gap 1 size....| 00001ba0 45 51 55 42 20 26 30 30 20 5c 20 72 65 73 75 6c |EQUB &00 \ resul| 00001bb0 74 20 62 79 74 65 0d 0c 1c 0c 2e 64 65 74 61 62 |t byte.....detab| 00001bc0 6c 65 0d 0c 26 12 45 51 55 44 20 26 30 34 30 30 |le..&.EQUD &0400| 00001bd0 30 30 30 30 0d 0c 30 08 2e 67 61 70 0d 0c 3a 1f |0000..0..gap..:.| 00001be0 45 51 55 42 20 31 31 20 5c 20 47 61 70 20 33 2c |EQUB 11 \ Gap 3,| 00001bf0 20 31 38 20 73 65 63 74 6f 72 73 0d 0c 44 1f 45 | 18 sectors..D.E| 00001c00 51 55 42 20 32 31 20 5c 20 47 61 70 20 33 2c 20 |QUB 21 \ Gap 3, | 00001c10 31 30 20 73 65 63 74 6f 72 73 0d 0c 4e 1e 45 51 |10 sectors..N.EQ| 00001c20 55 42 20 37 34 20 5c 20 47 61 70 20 33 2c 20 35 |UB 74 \ Gap 3, 5| 00001c30 20 73 65 63 74 6f 72 73 0d 0c 58 1f 45 51 55 42 | sectors..X.EQUB| 00001c40 20 32 35 35 20 5c 20 47 61 70 20 33 2c 20 32 20 | 255 \ Gap 3, 2 | 00001c50 73 65 63 74 6f 72 73 0d 0c 62 1c 45 51 55 42 20 |sectors..b.EQUB | 00001c60 30 20 5c 20 47 61 70 20 33 2c 20 31 20 73 65 63 |0 \ Gap 3, 1 sec| 00001c70 74 6f 72 0d 0c 6c 0a 2e 73 69 7a 65 73 0d 0c 76 |tor..l..sizes..v| 00001c80 0b 45 51 55 42 20 31 38 0d 0c 80 0b 45 51 55 42 |.EQUB 18....EQUB| 00001c90 20 31 30 0d 0c 8a 0a 45 51 55 42 20 35 0d 0c 94 | 10....EQUB 5...| 00001ca0 0a 45 51 55 42 20 32 0d 0c 9e 0a 45 51 55 42 20 |.EQUB 2....EQUB | 00001cb0 31 0d 0c a8 0d 2e 70 68 79 73 69 63 61 6c 0d 0c |1.....physical..| 00001cc0 b2 0c 45 51 55 42 20 26 30 30 0d 0c bc 11 2e 73 |..EQUB &00.....s| 00001cd0 65 63 74 6f 72 6e 75 6d 62 65 72 0d 0c c6 0c 45 |ectornumber....E| 00001ce0 51 55 42 20 26 30 30 0d 0c d0 09 2e 6c 61 73 74 |QUB &00.....last| 00001cf0 0d 0c da 0c 45 51 55 42 20 26 30 30 0d 0c e4 05 |....EQUB &00....| 00001d00 5d 0d 0c ee 05 ed 0d 0c f8 28 e8 27 22 4e 75 6d |]........(.'"Num| 00001d10 62 65 72 20 6f 66 20 74 72 61 63 6b 73 20 28 34 |ber of tracks (4| 00001d20 30 2f 38 30 29 20 22 74 72 61 63 6b 73 24 0d 0d |0/80) "tracks$..| 00001d30 02 26 e7 20 74 72 61 63 6b 73 24 3d 22 34 30 22 |.&. tracks$="40"| 00001d40 20 3f 6c 61 73 74 3d 34 30 20 8b 20 3f 6c 61 73 | ?last=40 . ?las| 00001d50 74 3d 38 30 0d 0d 0c 30 f1 27 22 49 6e 73 65 72 |t=80...0.'"Inser| 00001d60 74 20 22 3b 3f 6c 61 73 74 3b 22 20 74 72 61 63 |t ";?last;" trac| 00001d70 6b 20 73 6f 75 72 63 65 20 64 69 73 63 20 69 6e |k source disc in| 00001d80 20 3a 30 22 0d 0d 16 34 f1 22 49 6e 73 65 72 74 | :0"...4."Insert| 00001d90 20 22 3b 3f 6c 61 73 74 3b 22 20 74 72 61 63 6b | ";?last;" track| 00001da0 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 64 69 73 | destination dis| 00001db0 63 20 69 6e 20 3a 31 22 0d 0d 20 2c f1 27 22 50 |c in :1".. ,.'"P| 00001dc0 72 65 73 73 20 53 70 61 63 65 62 61 72 20 74 6f |ress Spacebar to| 00001dd0 20 63 6f 70 79 20 66 72 6f 6d 20 3a 30 20 74 6f | copy from :0 to| 00001de0 20 3a 31 22 0d 0d 2a 05 f5 0d 0d 34 0a fd 20 a5 | :1"..*....4.. .| 00001df0 3d 33 32 0d 0d 3e 0b d6 20 6d 63 6f 64 65 0d ff |=32..>.. mcode..| 00001e00