Home » CEEFAX disks » telesoftware9.adl » 02-09-88/T\DFS04
02-09-88/T\DFS04
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: | 02-09-88/T\DFS04 |
Read OK: | ✔ |
File size: | 3D26 bytes |
Load address: | 0000 |
Exec address: | FFFFFFFF |
File contents
The Acorn DFS Osword commands - by - Gordon Horsington ---------------------------------------------------------- Module 4. Converting 40 track discs for 80 track drives ------------------------------------------------------- +----------------------------------------------------------+ | All the DFS modules in this series use programs which | | experiment with the format and contents of discs. These | | experiments may have disasterous effects if you use any | | of the programs on discs which store programs or data | | which you cannot afford to lose. You should first try | | out the programs using discs that have either been | | duplicated or, better still, have not been used at all. | +----------------------------------------------------------+ In this module I will examine the problem of modifying forty track discs so that they work properly on eighty track disc drives. There are a number of possible solutions to the problem of using forty track discs on an eighty track disc drive. If you have a 40/80 track switchable disc drive it is possible to use *BACKUP 0 0 and switch the track density selector from forty to eighty before inserting an eighty track disc and then switch back to forty for the forty track disc. If you use dual switchable drives this can be a less error prone method because you would not have to remember to switch the drives between reading and writing. One problem with this method is that, although it will produce a disc which can be used on an eighty track disc drive, it will only use forty of the eighty tracks. This could be overcome by using the *COPY command and switching the track density selector appropriately. A philosophical problem with using either of these methods to make the conversion is that the conversion itself is pointless if you have switchable disc drives. The real problem exists for disc users who have a forty track disc and only one eighty track disc drive. In these circumstances it is necessary to modify the disc itself so that it becomes an eighty track disc. In this module I will demonstrate how to use the Osword &7F commands to modify a forty track disc on an eighty track disc drive so that the forty track disc becomes an eighty track disc. Forty track discs have a track density exactly one half of that used by eighty track discs. Track &00 of both forty and eighty track discs share the same physical position as the outer track on the disc. Track &01 on a forty track disc is in the same physical position as track &02 on an eighty track disc, track &02 is in the same position as track &04, and so on. The relative position of the physical tracks on forty and eighty track discs is shown in figure 1. 40T> 00 01 ... 09 0A 0B ... 13 14 15 ... 25 26 27 80T> 00 01 02 ... 12 13 14 15 16 ... 26 27 28 29 2A ... 4A 4B 4C 4D 4E 4F Figure 1. The relative position of tracks on 40 and 80 track discs ------------------------------------------------------------------ All the numbers in figure 1 are in hexadecimal and I am using the term track density to refer to the physical proximity of the tracks (which are closer together on 80 track discs). Because the track density of an eighty track disc is twice that of a forty track disc, an eighty track disc is sometimes refered to as double density even if it uses the single density format. I will not refer to 80 track discs as double density because this can be confused with the double density ADFS, which can use 80 track discs in a double density format. If you look at figure 1 you should be able to work out what needs to be done to make forty track discs work on an eighty track disc drive. Because track &00 is in the same physical position with both forty and eighty track discs, any data on track &00 can be accessed with either type of disc drive. All the other tracks on a forty track disc are in the wrong physical position to be read on an eighty track disc drive. Assuming that you have an Acorn DFS forty track disc in an eighty track disc drive, you will need to copy physical track &02 (logical track &01) onto physical track &01, copy physical track &04 (logical track &02) onto physical track &02 and so on until physical track &4E (logical track &27) is copied onto physical track &27. This copying is summarised in figure 2. Read physical track -> Format and write physical track &00 -> &00 &02 -> &01 &04 -> &02 &06 -> &03 . . . &4B -> &25 &4C -> &26 &4E -> &27 Figure 2. The required copying of physical tracks ------------------------------------------------- You should note that figure 2 refers to the physical tracks and not the logical tracks. This is important because, with Acorn DFS forty track discs in an eighty track disc drive, physical track &02 will contain logical track &01, physical track &04 will contain logical track &02, and so on. It will be necessary to re-format each physical track after reading and before writing the data back onto the disc. This is because the odd numbered tracks will be unformatted and the even numbered tracks will have the wrong logical track numbers in their ID fields. When all forty tracks have been copied you can then go on to format the tracks from &28 to &4F to make the disc an eighty track disc. In order that the DFS can access all eighty tracks it is necessary to modify the catalogue to indicate that 800 (&320) sectors are available. The number of sectors is stored in bytes &06 (MSB) and &07 (LSB) of track &00, sector &00. Note that it is not LSB and MSB as you might expect. The following algorithm can be used to implement this idea. 1) Start with current track number = &00 2) Seek current track * 2 (ie. for logical track &01 seek &02, and so on) 3) Write the current track number into the track register (number &12). The head is now positioned above the appropriate track for reading the data and the track register also contains the logical track number. 4) Read the entire track into a buffer. 5) Write the current track number * 2 into the track register. 6) Format the physical track indicated by the current track number. 7) Write the contents of the buffer onto the newly formatted track. 8) Increment the current track number. If the current track number is less than &28 go back to 2) to copy the next track. 9) All forty tracks have been converted. Now format tracks &28 to &4F to create an eighty track disc. 10) Read the contents of track &00, sector &01 into a buffer. 11) OR the contents of buffer+&06 with the number &03, and store the number &20 in buffer+&07 to indicate that &320 (800) sectors are available on the disc. 12) Write the contents of the buffer back onto track &00, sector &01. This algorithm has been implemented in the program CONVERT. You can use the program CONVERT with an eighty track drive &00 to convert an Acorn formatted 40 track single density disc into an eighty track single density disc. The program will not work with copy-protected discs and you should only use it if you have a duplicate of the disc you intend to convert. If you use CONVERT and press the Escape key before it has finished the conversion you will probably destroy some or all the data on the disc. Do not use the program with a forty track disc drive. You have been warned to be careful with all the programs used to illustrate this series. This program can easily destroy all the data on your disc if you fail to use it with care. If you want to modify the program to make it more idiot proof you could delete line 130 to take out the routine which polls the Escape flag. This would make the program safer for ham-fisted or inexperienced users because pressing Escape would not halt the program before it had finished. Whatever modifications you make to this or any other of the programs used to ilustrate the DFS modules of the series, don't ignore the warning about the potentially disasterous effects these programs can have on your discs. 10 REM: CONVERT 20 osnewl=&FFE7 30 oswrch=&FFEE 40 osword=&FFF1 50 osbyte=&FFF4 60 DIM mcode &500 70 DIM buffer &1000 80 FOR pass=0 TO 2 STEP 2 90 P%=mcode 100 [ OPT pass 110 JSR osnewl 120 .mainloop 130 JSR escape \ check escape flag 140 JSR seektwo \ seek track * 2 150 LDA track \ load logical track number 160 JSR register \ write track register 170 JSR read \ read logical track 180 LDA track \ load logical track number 190 ASL A \ *2 = physical track 200 JSR register \ write track register 210 JSR format \ format physical track 220 JSR write \ write data onto disc 230 JSR printbyte \ print track number 240 INC track \ get ready for next track 250 LDA track \ load logical track number 260 CMP #40 \ is it track 40? 270 BNE mainloop \ if not read next track 280 .formloop 290 JSR escape \ check escape flag 300 JSR format \ format tracks 40 - 79 310 JSR printbyte \ print track number 320 INC track \ increment track number 330 LDA track \ load track number 340 CMP #80 \ is it 80? 350 BNE formloop \ if not format next track 360 LDA #0 \ go back to track 0 370 STA track 380 STA copyblock+7 390 LDA #1 \ sector 1 400 STA copyblock+8 410 LDA #&21 \ 1 sector of 256 bytes 420 STA copyblock+9 430 JSR read \ read track 0 sector 1 440 LDA #&03 \ 800 sectors DIV 256 450 ORA buffer+6 \ keep old *OPT4,n option 460 STA buffer+6 \ MSB number of sectors 470 LDA #&20 \ 800 sectors MOD 256 480 STA buffer+7 \ LSB number of sectors 490 JSR write \ store track 0 sector 1 500 JSR osnewl 510 RTS \ return to BASIC 520 .escape 530 LDA &FF \ escape flag 540 BMI pressed \ bit 7 set if pressed 550 RTS 560 .pressed 570 LDA #&7E 580 JSR osbyte \ acknowledge Escape 590 BRK 600 BRK 610 EQUS "Escape" 620 BRK 630 .seektwo 640 LDA track \ source track number 650 ASL A \ *2 660 STA seekblock+7 \ physical track number 670 LDA #&7F 680 LDX #seekblock MOD 256 690 LDY #seekblock DIV 256 700 JSR osword 710 LDA seekblock+8 \ result 720 BNE seekerror \ = 0 if OK 730 RTS 740 .seekerror 750 BRK 760 BRK 770 EQUS "Seek error" 780 BRK 790 .format 800 LDA track \ source track number 810 STA formblock+7 \ store physical track 820 LDX #36 830 .tableloop 840 STA table,X \ store logical track number in ID table 850 DEX 860 DEX 870 DEX 880 DEX 890 BPL tableloop 900 LDA #&7F 910 LDX #formblock MOD 256 920 LDY #formblock DIV 256 930 JSR osword 940 LDA formblock+12 \ result 950 BNE formerror \ = 0 if OK 960 RTS 970 .formerror 980 BRK 990 BRK 1000 EQUS "Format error" 1010 BRK 1020 .register 1030 STA regblock+8 \ value to put in register 1040 LDA #&7F 1050 LDX #regblock MOD 256 1060 LDY #regblock DIV 256 1070 JSR osword 1080 LDA regblock+9 \ result 1090 BNE regerror \ = 0 if OK 1100 RTS 1110 .regerror 1120 BRK 1130 BRK 1140 EQUS "Special register error" 1150 BRK 1160 .read 1170 LDA track \ source track number 1180 STA copyblock+7 \ logical track number 1190 LDA #&53 \ read data multi-sector 1200 STA copyblock+6 1210 LDA #&7F 1220 LDX #copyblock MOD 256 1230 LDY #copyblock DIV 256 1240 JSR osword 1250 LDA copyblock+10 1260 BNE readerror 1270 RTS 1280 .readerror 1290 BRK 1300 BRK 1310 EQUS "Read error" 1320 BRK 1330 .write 1340 LDA #&4B \ write data multi-sector 1350 STA copyblock+6 1360 LDA #&7F 1370 LDX #copyblock MOD 256 1380 LDY #copyblock DIV 256 1390 JSR osword 1400 LDA copyblock+10 \ result 1410 BNE writeerror \ = 0 if OK 1420 RTS 1430 .writeerror 1440 BRK 1450 BRK 1460 EQUS "Write error" 1470 BRK 1480 .printbyte 1490 LDA track \ print source track number 1500 PHA 1510 LSR A 1520 LSR A 1530 LSR A 1540 LSR A 1550 JSR nybble \ print MS nybble 1560 PLA 1570 JSR nybble \ print LS nybble 1580 LDA #ASC(" ") 1590 JSR oswrch \ print space 1600 JMP oswrch \ print space 1610 .nybble 1620 AND #&0F 1630 SED 1640 CLC 1650 ADC #&90 1660 ADC #&40 1670 CLD 1680 JMP oswrch \ print nybble and return 1690 .seekblock 1700 EQUB &00 \ drive 0 1710 EQUD &00 \ does not matter 1720 EQUB &01 \ 1 parameter 1730 EQUB &69 \ seek command 1740 EQUB &00 \ physical track 1750 EQUB &00 \ result byte 1760 .regblock 1770 EQUB &00 \ drive 0 1780 EQUD &00 \ does not matter 1790 EQUD &00127A02 \ write special register 1800 EQUB &00 \ result byte 1810 .copyblock 1820 EQUB &00 \ drive 0 1830 EQUD buffer \ address of buffer 1840 EQUB &03 \ 3 parameters 1850 EQUB &57 \ read data multi-sector 1860 EQUB &00 \ logical track number 1870 EQUB &00 \ logical sector number 1880 EQUB &2A \ 10 sectors of 256 bytes 1890 EQUB &00 \ result byte 1900 .formblock 1910 EQUB &00 \ drive 0 1920 EQUD table \ address of sector table 1930 EQUB &05 \ 5 parameters 1940 EQUB &63 \ format command 1950 EQUB &00 \ physical track number 1960 EQUB &15 \ gap 3 size 1970 EQUB &2A \ 10 sectors of 256 bytes 1980 EQUB &00 \ gap 5 size 1990 EQUB &10 \ gap 1 size 2000 EQUB &00 \ result byte 2010 .table 2020 EQUD &01000000 2030 EQUD &01010000 2040 EQUD &01020000 2050 EQUD &01030000 2060 EQUD &01040000 2070 EQUD &01050000 2080 EQUD &01060000 2090 EQUD &01070000 2100 EQUD &01080000 2110 EQUD &01090000 2120 .track 2130 EQUB &00 \ logical track number 2140 ] 2150 NEXT 2160 PRINT'"Place 40 track disc in 80 track drive 0" 2170 PRINT"Press Spacebar to convert to 80 tracks" 2180 REPEAT 2190 UNTIL GET = 32 2200 CALL mcode
00000000 54 68 65 20 41 63 6f 72 6e 20 44 46 53 20 4f 73 |The Acorn DFS Os| 00000010 77 6f 72 64 20 63 6f 6d 6d 61 6e 64 73 20 20 2d |word commands -| 00000020 20 20 62 79 20 20 2d 20 20 47 6f 72 64 6f 6e 20 | by - Gordon | 00000030 48 6f 72 73 69 6e 67 74 6f 6e 0d 2d 2d 2d 2d 2d |Horsington.-----| 00000040 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000070 2d 2d 2d 2d 2d 0d 0d 4d 6f 64 75 6c 65 20 34 2e |-----..Module 4.| 00000080 20 43 6f 6e 76 65 72 74 69 6e 67 20 34 30 20 74 | Converting 40 t| 00000090 72 61 63 6b 20 64 69 73 63 73 20 66 6f 72 20 38 |rack discs for 8| 000000a0 30 20 74 72 61 63 6b 20 64 72 69 76 65 73 0d 2d |0 track drives.-| 000000b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 000000e0 2d 2d 2d 2d 2d 2d 0d 0d 20 20 20 20 20 20 2b 2d |------.. +-| 000000f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000120 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0d 20 20 20 20 20 |---------+. | 00000130 20 7c 20 41 6c 6c 20 74 68 65 20 44 46 53 20 6d | | All the DFS m| 00000140 6f 64 75 6c 65 73 20 69 6e 20 20 74 68 69 73 20 |odules in this | 00000150 20 73 65 72 69 65 73 20 20 75 73 65 20 70 72 6f | series use pro| 00000160 67 72 61 6d 73 20 77 68 69 63 68 20 7c 0d 20 20 |grams which |. | 00000170 20 20 20 20 7c 20 65 78 70 65 72 69 6d 65 6e 74 | | experiment| 00000180 20 20 77 69 74 68 20 74 68 65 20 66 6f 72 6d 61 | with the forma| 00000190 74 20 61 6e 64 20 63 6f 6e 74 65 6e 74 73 20 6f |t and contents o| 000001a0 66 20 64 69 73 63 73 2e 20 54 68 65 73 65 20 7c |f discs. These || 000001b0 0d 20 20 20 20 20 20 7c 20 65 78 70 65 72 69 6d |. | experim| 000001c0 65 6e 74 73 20 6d 61 79 20 20 68 61 76 65 20 64 |ents may have d| 000001d0 69 73 61 73 74 65 72 6f 75 73 20 65 66 66 65 63 |isasterous effec| 000001e0 74 73 20 69 66 20 79 6f 75 20 75 73 65 20 61 6e |ts if you use an| 000001f0 79 20 7c 0d 20 20 20 20 20 20 7c 20 6f 66 20 74 |y |. | of t| 00000200 68 65 20 70 72 6f 67 72 61 6d 73 20 20 6f 6e 20 |he programs on | 00000210 20 64 69 73 63 73 20 20 77 68 69 63 68 20 73 74 | discs which st| 00000220 6f 72 65 20 70 72 6f 67 72 61 6d 73 20 6f 72 20 |ore programs or | 00000230 64 61 74 61 20 7c 0d 20 20 20 20 20 20 7c 20 77 |data |. | w| 00000240 68 69 63 68 20 79 6f 75 20 63 61 6e 6e 6f 74 20 |hich you cannot | 00000250 61 66 66 6f 72 64 20 74 6f 20 6c 6f 73 65 2e 20 |afford to lose. | 00000260 20 59 6f 75 20 20 73 68 6f 75 6c 64 20 20 66 69 | You should fi| 00000270 72 73 74 20 74 72 79 20 7c 0d 20 20 20 20 20 20 |rst try |. | 00000280 7c 20 6f 75 74 20 20 74 68 65 20 20 70 72 6f 67 || out the prog| 00000290 72 61 6d 73 20 20 75 73 69 6e 67 20 20 64 69 73 |rams using dis| 000002a0 63 73 20 20 74 68 61 74 20 20 68 61 76 65 20 65 |cs that have e| 000002b0 69 74 68 65 72 20 62 65 65 6e 20 7c 0d 20 20 20 |ither been |. | 000002c0 20 20 20 7c 20 64 75 70 6c 69 63 61 74 65 64 20 | | duplicated | 000002d0 6f 72 2c 20 62 65 74 74 65 72 20 73 74 69 6c 6c |or, better still| 000002e0 2c 20 68 61 76 65 20 6e 6f 74 20 62 65 65 6e 20 |, have not been | 000002f0 75 73 65 64 20 61 74 20 61 6c 6c 2e 20 20 7c 0d |used at all. |.| 00000300 20 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d | +---------| 00000310 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000340 2d 2b 0d 0d 0d 49 6e 20 74 68 69 73 20 6d 6f 64 |-+...In this mod| 00000350 75 6c 65 20 49 20 77 69 6c 6c 20 65 78 61 6d 69 |ule I will exami| 00000360 6e 65 20 74 68 65 20 70 72 6f 62 6c 65 6d 20 6f |ne the problem o| 00000370 66 20 6d 6f 64 69 66 79 69 6e 67 20 66 6f 72 74 |f modifying fort| 00000380 79 20 74 72 61 63 6b 20 64 69 73 63 73 0d 73 6f |y track discs.so| 00000390 20 74 68 61 74 20 74 68 65 79 20 77 6f 72 6b 20 | that they work | 000003a0 70 72 6f 70 65 72 6c 79 20 6f 6e 20 65 69 67 68 |properly on eigh| 000003b0 74 79 20 74 72 61 63 6b 20 64 69 73 63 20 64 72 |ty track disc dr| 000003c0 69 76 65 73 2e 0d 0d 54 68 65 72 65 20 61 72 65 |ives...There are| 000003d0 20 61 20 6e 75 6d 62 65 72 20 6f 66 20 70 6f 73 | a number of pos| 000003e0 73 69 62 6c 65 20 73 6f 6c 75 74 69 6f 6e 73 20 |sible solutions | 000003f0 74 6f 20 74 68 65 20 70 72 6f 62 6c 65 6d 20 6f |to the problem o| 00000400 66 20 75 73 69 6e 67 20 66 6f 72 74 79 0d 74 72 |f using forty.tr| 00000410 61 63 6b 20 64 69 73 63 73 20 6f 6e 20 61 6e 20 |ack discs on an | 00000420 65 69 67 68 74 79 20 74 72 61 63 6b 20 64 69 73 |eighty track dis| 00000430 63 20 64 72 69 76 65 2e 20 49 66 20 79 6f 75 20 |c drive. If you | 00000440 68 61 76 65 20 61 20 34 30 2f 38 30 20 74 72 61 |have a 40/80 tra| 00000450 63 6b 0d 73 77 69 74 63 68 61 62 6c 65 20 64 69 |ck.switchable di| 00000460 73 63 20 64 72 69 76 65 20 69 74 20 69 73 20 70 |sc drive it is p| 00000470 6f 73 73 69 62 6c 65 20 74 6f 20 75 73 65 20 2a |ossible to use *| 00000480 42 41 43 4b 55 50 20 30 20 30 20 61 6e 64 20 73 |BACKUP 0 0 and s| 00000490 77 69 74 63 68 20 74 68 65 0d 74 72 61 63 6b 20 |witch the.track | 000004a0 64 65 6e 73 69 74 79 20 73 65 6c 65 63 74 6f 72 |density selector| 000004b0 20 66 72 6f 6d 20 66 6f 72 74 79 20 74 6f 20 65 | from forty to e| 000004c0 69 67 68 74 79 20 62 65 66 6f 72 65 20 69 6e 73 |ighty before ins| 000004d0 65 72 74 69 6e 67 20 61 6e 20 65 69 67 68 74 79 |erting an eighty| 000004e0 0d 74 72 61 63 6b 20 64 69 73 63 20 61 6e 64 20 |.track disc and | 000004f0 74 68 65 6e 20 73 77 69 74 63 68 20 62 61 63 6b |then switch back| 00000500 20 74 6f 20 66 6f 72 74 79 20 66 6f 72 20 74 68 | to forty for th| 00000510 65 20 66 6f 72 74 79 20 74 72 61 63 6b 20 64 69 |e forty track di| 00000520 73 63 2e 20 49 66 20 79 6f 75 0d 75 73 65 20 64 |sc. If you.use d| 00000530 75 61 6c 20 73 77 69 74 63 68 61 62 6c 65 20 64 |ual switchable d| 00000540 72 69 76 65 73 20 74 68 69 73 20 63 61 6e 20 62 |rives this can b| 00000550 65 20 61 20 6c 65 73 73 20 65 72 72 6f 72 20 70 |e a less error p| 00000560 72 6f 6e 65 20 6d 65 74 68 6f 64 20 62 65 63 61 |rone method beca| 00000570 75 73 65 0d 79 6f 75 20 77 6f 75 6c 64 20 6e 6f |use.you would no| 00000580 74 20 68 61 76 65 20 74 6f 20 72 65 6d 65 6d 62 |t have to rememb| 00000590 65 72 20 74 6f 20 73 77 69 74 63 68 20 74 68 65 |er to switch the| 000005a0 20 64 72 69 76 65 73 20 62 65 74 77 65 65 6e 20 | drives between | 000005b0 72 65 61 64 69 6e 67 20 61 6e 64 0d 77 72 69 74 |reading and.writ| 000005c0 69 6e 67 2e 20 4f 6e 65 20 70 72 6f 62 6c 65 6d |ing. One problem| 000005d0 20 77 69 74 68 20 74 68 69 73 20 6d 65 74 68 6f | with this metho| 000005e0 64 20 69 73 20 74 68 61 74 2c 20 61 6c 74 68 6f |d is that, altho| 000005f0 75 67 68 20 69 74 20 77 69 6c 6c 20 70 72 6f 64 |ugh it will prod| 00000600 75 63 65 20 61 0d 64 69 73 63 20 77 68 69 63 68 |uce a.disc which| 00000610 20 63 61 6e 20 62 65 20 75 73 65 64 20 6f 6e 20 | can be used on | 00000620 61 6e 20 65 69 67 68 74 79 20 74 72 61 63 6b 20 |an eighty track | 00000630 64 69 73 63 20 64 72 69 76 65 2c 20 69 74 20 77 |disc drive, it w| 00000640 69 6c 6c 20 6f 6e 6c 79 20 75 73 65 0d 66 6f 72 |ill only use.for| 00000650 74 79 20 6f 66 20 74 68 65 20 65 69 67 68 74 79 |ty of the eighty| 00000660 20 74 72 61 63 6b 73 2e 20 54 68 69 73 20 63 6f | tracks. This co| 00000670 75 6c 64 20 62 65 20 6f 76 65 72 63 6f 6d 65 20 |uld be overcome | 00000680 62 79 20 75 73 69 6e 67 20 74 68 65 20 2a 43 4f |by using the *CO| 00000690 50 59 0d 63 6f 6d 6d 61 6e 64 20 61 6e 64 20 73 |PY.command and s| 000006a0 77 69 74 63 68 69 6e 67 20 74 68 65 20 74 72 61 |witching the tra| 000006b0 63 6b 20 64 65 6e 73 69 74 79 20 73 65 6c 65 63 |ck density selec| 000006c0 74 6f 72 20 61 70 70 72 6f 70 72 69 61 74 65 6c |tor appropriatel| 000006d0 79 2e 20 41 0d 70 68 69 6c 6f 73 6f 70 68 69 63 |y. A.philosophic| 000006e0 61 6c 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 |al problem with | 000006f0 75 73 69 6e 67 20 65 69 74 68 65 72 20 6f 66 20 |using either of | 00000700 74 68 65 73 65 20 6d 65 74 68 6f 64 73 20 74 6f |these methods to| 00000710 20 6d 61 6b 65 20 74 68 65 0d 63 6f 6e 76 65 72 | make the.conver| 00000720 73 69 6f 6e 20 69 73 20 74 68 61 74 20 74 68 65 |sion is that the| 00000730 20 63 6f 6e 76 65 72 73 69 6f 6e 20 69 74 73 65 | conversion itse| 00000740 6c 66 20 69 73 20 70 6f 69 6e 74 6c 65 73 73 20 |lf is pointless | 00000750 69 66 20 79 6f 75 20 68 61 76 65 0d 73 77 69 74 |if you have.swit| 00000760 63 68 61 62 6c 65 20 64 69 73 63 20 64 72 69 76 |chable disc driv| 00000770 65 73 2e 0d 0d 54 68 65 20 72 65 61 6c 20 70 72 |es...The real pr| 00000780 6f 62 6c 65 6d 20 65 78 69 73 74 73 20 66 6f 72 |oblem exists for| 00000790 20 64 69 73 63 20 75 73 65 72 73 20 77 68 6f 20 | disc users who | 000007a0 68 61 76 65 20 61 20 66 6f 72 74 79 20 74 72 61 |have a forty tra| 000007b0 63 6b 20 64 69 73 63 20 61 6e 64 0d 6f 6e 6c 79 |ck disc and.only| 000007c0 20 6f 6e 65 20 65 69 67 68 74 79 20 74 72 61 63 | one eighty trac| 000007d0 6b 20 64 69 73 63 20 64 72 69 76 65 2e 20 49 6e |k disc drive. In| 000007e0 20 74 68 65 73 65 20 63 69 72 63 75 6d 73 74 61 | these circumsta| 000007f0 6e 63 65 73 20 69 74 20 69 73 20 6e 65 63 65 73 |nces it is neces| 00000800 73 61 72 79 0d 74 6f 20 6d 6f 64 69 66 79 20 74 |sary.to modify t| 00000810 68 65 20 64 69 73 63 20 69 74 73 65 6c 66 20 73 |he disc itself s| 00000820 6f 20 74 68 61 74 20 69 74 20 62 65 63 6f 6d 65 |o that it become| 00000830 73 20 61 6e 20 65 69 67 68 74 79 20 74 72 61 63 |s an eighty trac| 00000840 6b 20 64 69 73 63 2e 20 49 6e 20 74 68 69 73 0d |k disc. In this.| 00000850 6d 6f 64 75 6c 65 20 49 20 77 69 6c 6c 20 64 65 |module I will de| 00000860 6d 6f 6e 73 74 72 61 74 65 20 68 6f 77 20 74 6f |monstrate how to| 00000870 20 75 73 65 20 74 68 65 20 4f 73 77 6f 72 64 20 | use the Osword | 00000880 26 37 46 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 |&7F commands to | 00000890 6d 6f 64 69 66 79 20 61 0d 66 6f 72 74 79 20 74 |modify a.forty t| 000008a0 72 61 63 6b 20 64 69 73 63 20 6f 6e 20 61 6e 20 |rack disc on an | 000008b0 65 69 67 68 74 79 20 74 72 61 63 6b 20 64 69 73 |eighty track dis| 000008c0 63 20 64 72 69 76 65 20 73 6f 20 74 68 61 74 20 |c drive so that | 000008d0 74 68 65 20 66 6f 72 74 79 20 74 72 61 63 6b 0d |the forty track.| 000008e0 64 69 73 63 20 62 65 63 6f 6d 65 73 20 61 6e 20 |disc becomes an | 000008f0 65 69 67 68 74 79 20 74 72 61 63 6b 20 64 69 73 |eighty track dis| 00000900 63 2e 0d 0d 46 6f 72 74 79 20 74 72 61 63 6b 20 |c...Forty track | 00000910 64 69 73 63 73 20 68 61 76 65 20 61 20 74 72 61 |discs have a tra| 00000920 63 6b 20 64 65 6e 73 69 74 79 20 65 78 61 63 74 |ck density exact| 00000930 6c 79 20 6f 6e 65 20 68 61 6c 66 20 6f 66 20 74 |ly one half of t| 00000940 68 61 74 20 75 73 65 64 20 62 79 0d 65 69 67 68 |hat used by.eigh| 00000950 74 79 20 74 72 61 63 6b 20 64 69 73 63 73 2e 20 |ty track discs. | 00000960 54 72 61 63 6b 20 26 30 30 20 6f 66 20 62 6f 74 |Track &00 of bot| 00000970 68 20 66 6f 72 74 79 20 61 6e 64 20 65 69 67 68 |h forty and eigh| 00000980 74 79 20 74 72 61 63 6b 20 64 69 73 63 73 20 73 |ty track discs s| 00000990 68 61 72 65 0d 74 68 65 20 73 61 6d 65 20 70 68 |hare.the same ph| 000009a0 79 73 69 63 61 6c 20 70 6f 73 69 74 69 6f 6e 20 |ysical position | 000009b0 61 73 20 74 68 65 20 6f 75 74 65 72 20 74 72 61 |as the outer tra| 000009c0 63 6b 20 6f 6e 20 74 68 65 20 64 69 73 63 2e 20 |ck on the disc. | 000009d0 54 72 61 63 6b 20 26 30 31 20 6f 6e 20 61 0d 66 |Track &01 on a.f| 000009e0 6f 72 74 79 20 74 72 61 63 6b 20 64 69 73 63 20 |orty track disc | 000009f0 69 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 70 |is in the same p| 00000a00 68 79 73 69 63 61 6c 20 70 6f 73 69 74 69 6f 6e |hysical position| 00000a10 20 61 73 20 74 72 61 63 6b 20 26 30 32 20 6f 6e | as track &02 on| 00000a20 20 61 6e 0d 65 69 67 68 74 79 20 74 72 61 63 6b | an.eighty track| 00000a30 20 64 69 73 63 2c 20 74 72 61 63 6b 20 26 30 32 | disc, track &02| 00000a40 20 69 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 | is in the same | 00000a50 70 6f 73 69 74 69 6f 6e 20 61 73 20 74 72 61 63 |position as trac| 00000a60 6b 20 26 30 34 2c 20 61 6e 64 20 73 6f 0d 6f 6e |k &04, and so.on| 00000a70 2e 20 54 68 65 20 72 65 6c 61 74 69 76 65 20 70 |. The relative p| 00000a80 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 |osition of the p| 00000a90 68 79 73 69 63 61 6c 20 74 72 61 63 6b 73 20 6f |hysical tracks o| 00000aa0 6e 20 66 6f 72 74 79 20 61 6e 64 20 65 69 67 68 |n forty and eigh| 00000ab0 74 79 20 74 72 61 63 6b 0d 64 69 73 63 73 20 69 |ty track.discs i| 00000ac0 73 20 73 68 6f 77 6e 20 69 6e 20 66 69 67 75 72 |s shown in figur| 00000ad0 65 20 31 2e 0d 0d 0d 34 30 54 3e 20 30 30 20 20 |e 1....40T> 00 | 00000ae0 20 20 30 31 20 2e 2e 2e 20 30 39 20 20 20 20 30 | 01 ... 09 0| 00000af0 41 20 20 20 20 30 42 20 2e 2e 2e 20 31 33 20 20 |A 0B ... 13 | 00000b00 20 20 31 34 20 20 20 20 31 35 20 2e 2e 2e 20 32 | 14 15 ... 2| 00000b10 35 20 20 20 20 32 36 20 20 20 20 32 37 0d 38 30 |5 26 27.80| 00000b20 54 3e 20 30 30 20 30 31 20 30 32 20 2e 2e 2e 20 |T> 00 01 02 ... | 00000b30 31 32 20 31 33 20 31 34 20 31 35 20 31 36 20 2e |12 13 14 15 16 .| 00000b40 2e 2e 20 32 36 20 32 37 20 32 38 20 32 39 20 32 |.. 26 27 28 29 2| 00000b50 41 20 2e 2e 2e 20 34 41 20 34 42 20 34 43 20 34 |A ... 4A 4B 4C 4| 00000b60 44 20 34 45 20 34 46 0d 0d 20 20 20 46 69 67 75 |D 4E 4F.. Figu| 00000b70 72 65 20 31 2e 20 54 68 65 20 72 65 6c 61 74 69 |re 1. The relati| 00000b80 76 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 |ve position of t| 00000b90 72 61 63 6b 73 20 6f 6e 20 34 30 20 61 6e 64 20 |racks on 40 and | 00000ba0 38 30 20 74 72 61 63 6b 20 64 69 73 63 73 0d 20 |80 track discs. | 00000bb0 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | --------------| 00000bc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000bf0 2d 2d 2d 2d 0d 0d 0d 41 6c 6c 20 74 68 65 20 6e |----...All the n| 00000c00 75 6d 62 65 72 73 20 69 6e 20 66 69 67 75 72 65 |umbers in figure| 00000c10 20 31 20 61 72 65 20 69 6e 20 68 65 78 61 64 65 | 1 are in hexade| 00000c20 63 69 6d 61 6c 20 61 6e 64 20 49 20 61 6d 20 75 |cimal and I am u| 00000c30 73 69 6e 67 20 74 68 65 20 74 65 72 6d 0d 74 72 |sing the term.tr| 00000c40 61 63 6b 20 64 65 6e 73 69 74 79 20 74 6f 20 72 |ack density to r| 00000c50 65 66 65 72 20 74 6f 20 74 68 65 20 70 68 79 73 |efer to the phys| 00000c60 69 63 61 6c 20 70 72 6f 78 69 6d 69 74 79 20 6f |ical proximity o| 00000c70 66 20 74 68 65 20 74 72 61 63 6b 73 20 28 77 68 |f the tracks (wh| 00000c80 69 63 68 20 61 72 65 0d 63 6c 6f 73 65 72 20 74 |ich are.closer t| 00000c90 6f 67 65 74 68 65 72 20 6f 6e 20 38 30 20 74 72 |ogether on 80 tr| 00000ca0 61 63 6b 20 64 69 73 63 73 29 2e 20 42 65 63 61 |ack discs). Beca| 00000cb0 75 73 65 20 74 68 65 20 74 72 61 63 6b 20 64 65 |use the track de| 00000cc0 6e 73 69 74 79 20 6f 66 20 61 6e 20 65 69 67 68 |nsity of an eigh| 00000cd0 74 79 0d 74 72 61 63 6b 20 64 69 73 63 20 69 73 |ty.track disc is| 00000ce0 20 74 77 69 63 65 20 74 68 61 74 20 6f 66 20 61 | twice that of a| 00000cf0 20 66 6f 72 74 79 20 74 72 61 63 6b 20 64 69 73 | forty track dis| 00000d00 63 2c 20 61 6e 20 65 69 67 68 74 79 20 74 72 61 |c, an eighty tra| 00000d10 63 6b 20 64 69 73 63 20 69 73 0d 73 6f 6d 65 74 |ck disc is.somet| 00000d20 69 6d 65 73 20 72 65 66 65 72 65 64 20 74 6f 20 |imes refered to | 00000d30 61 73 20 64 6f 75 62 6c 65 20 64 65 6e 73 69 74 |as double densit| 00000d40 79 20 65 76 65 6e 20 69 66 20 69 74 20 75 73 65 |y even if it use| 00000d50 73 20 74 68 65 20 73 69 6e 67 6c 65 20 64 65 6e |s the single den| 00000d60 73 69 74 79 0d 66 6f 72 6d 61 74 2e 20 49 20 77 |sity.format. I w| 00000d70 69 6c 6c 20 6e 6f 74 20 72 65 66 65 72 20 74 6f |ill not refer to| 00000d80 20 38 30 20 74 72 61 63 6b 20 64 69 73 63 73 20 | 80 track discs | 00000d90 61 73 20 64 6f 75 62 6c 65 20 64 65 6e 73 69 74 |as double densit| 00000da0 79 20 62 65 63 61 75 73 65 20 74 68 69 73 0d 63 |y because this.c| 00000db0 61 6e 20 62 65 20 63 6f 6e 66 75 73 65 64 20 77 |an be confused w| 00000dc0 69 74 68 20 74 68 65 20 64 6f 75 62 6c 65 20 64 |ith the double d| 00000dd0 65 6e 73 69 74 79 20 41 44 46 53 2c 20 77 68 69 |ensity ADFS, whi| 00000de0 63 68 20 63 61 6e 20 75 73 65 20 38 30 20 74 72 |ch can use 80 tr| 00000df0 61 63 6b 20 64 69 73 63 73 0d 69 6e 20 61 20 64 |ack discs.in a d| 00000e00 6f 75 62 6c 65 20 64 65 6e 73 69 74 79 20 66 6f |ouble density fo| 00000e10 72 6d 61 74 2e 0d 0d 49 66 20 79 6f 75 20 6c 6f |rmat...If you lo| 00000e20 6f 6b 20 61 74 20 66 69 67 75 72 65 20 31 20 79 |ok at figure 1 y| 00000e30 6f 75 20 73 68 6f 75 6c 64 20 62 65 20 61 62 6c |ou should be abl| 00000e40 65 20 74 6f 20 77 6f 72 6b 20 6f 75 74 20 77 68 |e to work out wh| 00000e50 61 74 20 6e 65 65 64 73 20 74 6f 20 62 65 0d 64 |at needs to be.d| 00000e60 6f 6e 65 20 74 6f 20 6d 61 6b 65 20 66 6f 72 74 |one to make fort| 00000e70 79 20 74 72 61 63 6b 20 64 69 73 63 73 20 77 6f |y track discs wo| 00000e80 72 6b 20 6f 6e 20 61 6e 20 65 69 67 68 74 79 20 |rk on an eighty | 00000e90 74 72 61 63 6b 20 64 69 73 63 20 64 72 69 76 65 |track disc drive| 00000ea0 2e 20 42 65 63 61 75 73 65 0d 74 72 61 63 6b 20 |. Because.track | 00000eb0 26 30 30 20 69 73 20 69 6e 20 74 68 65 20 73 61 |&00 is in the sa| 00000ec0 6d 65 20 70 68 79 73 69 63 61 6c 20 70 6f 73 69 |me physical posi| 00000ed0 74 69 6f 6e 20 77 69 74 68 20 62 6f 74 68 20 66 |tion with both f| 00000ee0 6f 72 74 79 20 61 6e 64 20 65 69 67 68 74 79 0d |orty and eighty.| 00000ef0 74 72 61 63 6b 20 64 69 73 63 73 2c 20 61 6e 79 |track discs, any| 00000f00 20 64 61 74 61 20 6f 6e 20 74 72 61 63 6b 20 26 | data on track &| 00000f10 30 30 20 63 61 6e 20 62 65 20 61 63 63 65 73 73 |00 can be access| 00000f20 65 64 20 77 69 74 68 20 65 69 74 68 65 72 20 74 |ed with either t| 00000f30 79 70 65 20 6f 66 0d 64 69 73 63 20 64 72 69 76 |ype of.disc driv| 00000f40 65 2e 20 41 6c 6c 20 74 68 65 20 6f 74 68 65 72 |e. All the other| 00000f50 20 74 72 61 63 6b 73 20 6f 6e 20 61 20 66 6f 72 | tracks on a for| 00000f60 74 79 20 74 72 61 63 6b 20 64 69 73 63 20 61 72 |ty track disc ar| 00000f70 65 20 69 6e 20 74 68 65 20 77 72 6f 6e 67 0d 70 |e in the wrong.p| 00000f80 68 79 73 69 63 61 6c 20 70 6f 73 69 74 69 6f 6e |hysical position| 00000f90 20 74 6f 20 62 65 20 72 65 61 64 20 6f 6e 20 61 | to be read on a| 00000fa0 6e 20 65 69 67 68 74 79 20 74 72 61 63 6b 20 64 |n eighty track d| 00000fb0 69 73 63 20 64 72 69 76 65 2e 20 41 73 73 75 6d |isc drive. Assum| 00000fc0 69 6e 67 20 74 68 61 74 0d 79 6f 75 20 68 61 76 |ing that.you hav| 00000fd0 65 20 61 6e 20 41 63 6f 72 6e 20 44 46 53 20 66 |e an Acorn DFS f| 00000fe0 6f 72 74 79 20 74 72 61 63 6b 20 64 69 73 63 20 |orty track disc | 00000ff0 69 6e 20 61 6e 20 65 69 67 68 74 79 20 74 72 61 |in an eighty tra| 00001000 63 6b 20 64 69 73 63 20 64 72 69 76 65 2c 20 79 |ck disc drive, y| 00001010 6f 75 0d 77 69 6c 6c 20 6e 65 65 64 20 74 6f 20 |ou.will need to | 00001020 63 6f 70 79 20 70 68 79 73 69 63 61 6c 20 74 72 |copy physical tr| 00001030 61 63 6b 20 26 30 32 20 28 6c 6f 67 69 63 61 6c |ack &02 (logical| 00001040 20 74 72 61 63 6b 20 26 30 31 29 20 6f 6e 74 6f | track &01) onto| 00001050 20 70 68 79 73 69 63 61 6c 0d 74 72 61 63 6b 20 | physical.track | 00001060 26 30 31 2c 20 63 6f 70 79 20 70 68 79 73 69 63 |&01, copy physic| 00001070 61 6c 20 74 72 61 63 6b 20 26 30 34 20 28 6c 6f |al track &04 (lo| 00001080 67 69 63 61 6c 20 74 72 61 63 6b 20 26 30 32 29 |gical track &02)| 00001090 20 6f 6e 74 6f 20 70 68 79 73 69 63 61 6c 20 74 | onto physical t| 000010a0 72 61 63 6b 0d 26 30 32 20 61 6e 64 20 73 6f 20 |rack.&02 and so | 000010b0 6f 6e 20 75 6e 74 69 6c 20 70 68 79 73 69 63 61 |on until physica| 000010c0 6c 20 74 72 61 63 6b 20 26 34 45 20 28 6c 6f 67 |l track &4E (log| 000010d0 69 63 61 6c 20 74 72 61 63 6b 20 26 32 37 29 20 |ical track &27) | 000010e0 69 73 20 63 6f 70 69 65 64 20 6f 6e 74 6f 0d 70 |is copied onto.p| 000010f0 68 79 73 69 63 61 6c 20 74 72 61 63 6b 20 26 32 |hysical track &2| 00001100 37 2e 20 54 68 69 73 20 63 6f 70 79 69 6e 67 20 |7. This copying | 00001110 69 73 20 73 75 6d 6d 61 72 69 73 65 64 20 69 6e |is summarised in| 00001120 20 66 69 67 75 72 65 20 32 2e 0d 0d 0d 20 20 20 | figure 2.... | 00001130 20 20 20 20 20 20 20 20 20 52 65 61 64 20 70 68 | Read ph| 00001140 79 73 69 63 61 6c 20 74 72 61 63 6b 20 2d 3e 20 |ysical track -> | 00001150 46 6f 72 6d 61 74 20 61 6e 64 20 77 72 69 74 65 |Format and write| 00001160 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b 0d | physical track.| 00001170 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00001180 20 20 20 20 20 20 20 20 20 20 20 20 20 26 30 30 | &00| 00001190 20 2d 3e 20 26 30 30 0d 20 20 20 20 20 20 20 20 | -> &00. | 000011a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000011b0 20 20 20 20 26 30 32 20 2d 3e 20 26 30 31 0d 20 | &02 -> &01. | 000011c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000011d0 20 20 20 20 20 20 20 20 20 20 20 26 30 34 20 2d | &04 -| 000011e0 3e 20 26 30 32 0d 20 20 20 20 20 20 20 20 20 20 |> &02. | 000011f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001200 20 20 26 30 36 20 2d 3e 20 26 30 33 0d 20 20 20 | &06 -> &03. | 00001210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001220 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 0d 20 | .. | 00001230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e | .| 00001250 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00001260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001270 20 2e 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 | .. | 00001280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 | &| 00001290 34 42 20 2d 3e 20 26 32 35 0d 20 20 20 20 20 20 |4B -> &25. | 000012a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000012b0 20 20 20 20 20 20 26 34 43 20 2d 3e 20 26 32 36 | &4C -> &26| 000012c0 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 000012d0 20 20 20 20 20 20 20 20 20 20 20 20 20 26 34 45 | &4E| 000012e0 20 2d 3e 20 26 32 37 0d 0d 20 20 20 20 20 20 20 | -> &27.. | 000012f0 20 20 20 20 46 69 67 75 72 65 20 32 2e 20 54 68 | Figure 2. Th| 00001300 65 20 72 65 71 75 69 72 65 64 20 63 6f 70 79 69 |e required copyi| 00001310 6e 67 20 6f 66 20 70 68 79 73 69 63 61 6c 20 74 |ng of physical t| 00001320 72 61 63 6b 73 0d 20 20 20 20 20 20 20 20 20 20 |racks. | 00001330 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ---------------| 00001340 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00001360 2d 2d 0d 0d 0d 59 6f 75 20 73 68 6f 75 6c 64 20 |--...You should | 00001370 6e 6f 74 65 20 74 68 61 74 20 66 69 67 75 72 65 |note that figure| 00001380 20 32 20 72 65 66 65 72 73 20 74 6f 20 74 68 65 | 2 refers to the| 00001390 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b 73 | physical tracks| 000013a0 20 61 6e 64 20 6e 6f 74 20 74 68 65 0d 6c 6f 67 | and not the.log| 000013b0 69 63 61 6c 20 74 72 61 63 6b 73 2e 20 54 68 69 |ical tracks. Thi| 000013c0 73 20 69 73 20 69 6d 70 6f 72 74 61 6e 74 20 62 |s is important b| 000013d0 65 63 61 75 73 65 2c 20 77 69 74 68 20 41 63 6f |ecause, with Aco| 000013e0 72 6e 20 44 46 53 20 66 6f 72 74 79 20 74 72 61 |rn DFS forty tra| 000013f0 63 6b 0d 64 69 73 63 73 20 69 6e 20 61 6e 20 65 |ck.discs in an e| 00001400 69 67 68 74 79 20 74 72 61 63 6b 20 64 69 73 63 |ighty track disc| 00001410 20 64 72 69 76 65 2c 20 70 68 79 73 69 63 61 6c | drive, physical| 00001420 20 74 72 61 63 6b 20 26 30 32 20 77 69 6c 6c 20 | track &02 will | 00001430 63 6f 6e 74 61 69 6e 0d 6c 6f 67 69 63 61 6c 20 |contain.logical | 00001440 74 72 61 63 6b 20 26 30 31 2c 20 70 68 79 73 69 |track &01, physi| 00001450 63 61 6c 20 74 72 61 63 6b 20 26 30 34 20 77 69 |cal track &04 wi| 00001460 6c 6c 20 63 6f 6e 74 61 69 6e 20 6c 6f 67 69 63 |ll contain logic| 00001470 61 6c 20 74 72 61 63 6b 20 26 30 32 2c 20 61 6e |al track &02, an| 00001480 64 0d 73 6f 20 6f 6e 2e 20 49 74 20 77 69 6c 6c |d.so on. It will| 00001490 20 62 65 20 6e 65 63 65 73 73 61 72 79 20 74 6f | be necessary to| 000014a0 20 72 65 2d 66 6f 72 6d 61 74 20 65 61 63 68 20 | re-format each | 000014b0 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b 20 61 |physical track a| 000014c0 66 74 65 72 20 72 65 61 64 69 6e 67 0d 61 6e 64 |fter reading.and| 000014d0 20 62 65 66 6f 72 65 20 77 72 69 74 69 6e 67 20 | before writing | 000014e0 74 68 65 20 64 61 74 61 20 62 61 63 6b 20 6f 6e |the data back on| 000014f0 74 6f 20 74 68 65 20 64 69 73 63 2e 20 54 68 69 |to the disc. Thi| 00001500 73 20 69 73 20 62 65 63 61 75 73 65 20 74 68 65 |s is because the| 00001510 20 6f 64 64 0d 6e 75 6d 62 65 72 65 64 20 74 72 | odd.numbered tr| 00001520 61 63 6b 73 20 77 69 6c 6c 20 62 65 20 75 6e 66 |acks will be unf| 00001530 6f 72 6d 61 74 74 65 64 20 61 6e 64 20 74 68 65 |ormatted and the| 00001540 20 65 76 65 6e 20 6e 75 6d 62 65 72 65 64 20 74 | even numbered t| 00001550 72 61 63 6b 73 20 77 69 6c 6c 20 68 61 76 65 0d |racks will have.| 00001560 74 68 65 20 77 72 6f 6e 67 20 6c 6f 67 69 63 61 |the wrong logica| 00001570 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 73 20 |l track numbers | 00001580 69 6e 20 74 68 65 69 72 20 49 44 20 66 69 65 6c |in their ID fiel| 00001590 64 73 2e 0d 0d 57 68 65 6e 20 61 6c 6c 20 66 6f |ds...When all fo| 000015a0 72 74 79 20 74 72 61 63 6b 73 20 68 61 76 65 20 |rty tracks have | 000015b0 62 65 65 6e 20 63 6f 70 69 65 64 20 79 6f 75 20 |been copied you | 000015c0 63 61 6e 20 74 68 65 6e 20 67 6f 20 6f 6e 20 74 |can then go on t| 000015d0 6f 20 66 6f 72 6d 61 74 20 74 68 65 0d 74 72 61 |o format the.tra| 000015e0 63 6b 73 20 66 72 6f 6d 20 26 32 38 20 74 6f 20 |cks from &28 to | 000015f0 26 34 46 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 |&4F to make the | 00001600 64 69 73 63 20 61 6e 20 65 69 67 68 74 79 20 74 |disc an eighty t| 00001610 72 61 63 6b 20 64 69 73 63 2e 20 49 6e 20 6f 72 |rack disc. In or| 00001620 64 65 72 0d 74 68 61 74 20 74 68 65 20 44 46 53 |der.that the DFS| 00001630 20 63 61 6e 20 61 63 63 65 73 73 20 61 6c 6c 20 | can access all | 00001640 65 69 67 68 74 79 20 74 72 61 63 6b 73 20 69 74 |eighty tracks it| 00001650 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 74 6f | is necessary to| 00001660 20 6d 6f 64 69 66 79 20 74 68 65 0d 63 61 74 61 | modify the.cata| 00001670 6c 6f 67 75 65 20 74 6f 20 69 6e 64 69 63 61 74 |logue to indicat| 00001680 65 20 74 68 61 74 20 38 30 30 20 28 26 33 32 30 |e that 800 (&320| 00001690 29 20 73 65 63 74 6f 72 73 20 61 72 65 20 61 76 |) sectors are av| 000016a0 61 69 6c 61 62 6c 65 2e 20 54 68 65 20 6e 75 6d |ailable. The num| 000016b0 62 65 72 20 6f 66 0d 73 65 63 74 6f 72 73 20 69 |ber of.sectors i| 000016c0 73 20 73 74 6f 72 65 64 20 69 6e 20 62 79 74 65 |s stored in byte| 000016d0 73 20 26 30 36 20 28 4d 53 42 29 20 61 6e 64 20 |s &06 (MSB) and | 000016e0 26 30 37 20 28 4c 53 42 29 20 6f 66 20 74 72 61 |&07 (LSB) of tra| 000016f0 63 6b 20 26 30 30 2c 20 73 65 63 74 6f 72 0d 26 |ck &00, sector.&| 00001700 30 30 2e 20 4e 6f 74 65 20 74 68 61 74 20 69 74 |00. Note that it| 00001710 20 69 73 20 6e 6f 74 20 4c 53 42 20 61 6e 64 20 | is not LSB and | 00001720 4d 53 42 20 61 73 20 79 6f 75 20 6d 69 67 68 74 |MSB as you might| 00001730 20 65 78 70 65 63 74 2e 0d 0d 54 68 65 20 66 6f | expect...The fo| 00001740 6c 6c 6f 77 69 6e 67 20 61 6c 67 6f 72 69 74 68 |llowing algorith| 00001750 6d 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f |m can be used to| 00001760 20 69 6d 70 6c 65 6d 65 6e 74 20 74 68 69 73 20 | implement this | 00001770 69 64 65 61 2e 0d 0d 0d 31 29 20 53 74 61 72 74 |idea....1) Start| 00001780 20 77 69 74 68 20 63 75 72 72 65 6e 74 20 74 72 | with current tr| 00001790 61 63 6b 20 6e 75 6d 62 65 72 20 3d 20 26 30 30 |ack number = &00| 000017a0 0d 0d 32 29 20 53 65 65 6b 20 63 75 72 72 65 6e |..2) Seek curren| 000017b0 74 20 74 72 61 63 6b 20 2a 20 32 20 28 69 65 2e |t track * 2 (ie.| 000017c0 20 66 6f 72 20 6c 6f 67 69 63 61 6c 20 74 72 61 | for logical tra| 000017d0 63 6b 20 26 30 31 20 73 65 65 6b 20 26 30 32 2c |ck &01 seek &02,| 000017e0 20 61 6e 64 20 73 6f 20 6f 6e 29 0d 0d 33 29 20 | and so on)..3) | 000017f0 57 72 69 74 65 20 74 68 65 20 63 75 72 72 65 6e |Write the curren| 00001800 74 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 20 69 |t track number i| 00001810 6e 74 6f 20 74 68 65 20 74 72 61 63 6b 20 72 65 |nto the track re| 00001820 67 69 73 74 65 72 20 28 6e 75 6d 62 65 72 20 26 |gister (number &| 00001830 31 32 29 2e 0d 20 20 20 54 68 65 20 68 65 61 64 |12).. The head| 00001840 20 69 73 20 6e 6f 77 20 70 6f 73 69 74 69 6f 6e | is now position| 00001850 65 64 20 61 62 6f 76 65 20 74 68 65 20 61 70 70 |ed above the app| 00001860 72 6f 70 72 69 61 74 65 20 74 72 61 63 6b 20 66 |ropriate track f| 00001870 6f 72 20 72 65 61 64 69 6e 67 20 74 68 65 0d 20 |or reading the. | 00001880 20 20 64 61 74 61 20 61 6e 64 20 74 68 65 20 74 | data and the t| 00001890 72 61 63 6b 20 72 65 67 69 73 74 65 72 20 61 6c |rack register al| 000018a0 73 6f 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 |so contains the | 000018b0 6c 6f 67 69 63 61 6c 20 74 72 61 63 6b 20 6e 75 |logical track nu| 000018c0 6d 62 65 72 2e 0d 0d 34 29 20 52 65 61 64 20 74 |mber...4) Read t| 000018d0 68 65 20 65 6e 74 69 72 65 20 74 72 61 63 6b 20 |he entire track | 000018e0 69 6e 74 6f 20 61 20 62 75 66 66 65 72 2e 0d 0d |into a buffer...| 000018f0 35 29 20 57 72 69 74 65 20 74 68 65 20 63 75 72 |5) Write the cur| 00001900 72 65 6e 74 20 74 72 61 63 6b 20 6e 75 6d 62 65 |rent track numbe| 00001910 72 20 2a 20 32 20 69 6e 74 6f 20 74 68 65 20 74 |r * 2 into the t| 00001920 72 61 63 6b 20 72 65 67 69 73 74 65 72 2e 0d 0d |rack register...| 00001930 36 29 20 46 6f 72 6d 61 74 20 74 68 65 20 70 68 |6) Format the ph| 00001940 79 73 69 63 61 6c 20 74 72 61 63 6b 20 69 6e 64 |ysical track ind| 00001950 69 63 61 74 65 64 20 62 79 20 74 68 65 20 63 75 |icated by the cu| 00001960 72 72 65 6e 74 20 74 72 61 63 6b 20 6e 75 6d 62 |rrent track numb| 00001970 65 72 2e 0d 0d 37 29 20 57 72 69 74 65 20 74 68 |er...7) Write th| 00001980 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 |e contents of th| 00001990 65 20 62 75 66 66 65 72 20 6f 6e 74 6f 20 74 68 |e buffer onto th| 000019a0 65 20 6e 65 77 6c 79 20 66 6f 72 6d 61 74 74 65 |e newly formatte| 000019b0 64 20 74 72 61 63 6b 2e 0d 0d 38 29 20 49 6e 63 |d track...8) Inc| 000019c0 72 65 6d 65 6e 74 20 74 68 65 20 63 75 72 72 65 |rement the curre| 000019d0 6e 74 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 2e |nt track number.| 000019e0 20 49 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 | If the current | 000019f0 74 72 61 63 6b 20 6e 75 6d 62 65 72 20 69 73 20 |track number is | 00001a00 6c 65 73 73 0d 20 20 20 74 68 61 6e 20 26 32 38 |less. than &28| 00001a10 20 67 6f 20 62 61 63 6b 20 74 6f 20 32 29 20 74 | go back to 2) t| 00001a20 6f 20 63 6f 70 79 20 74 68 65 20 6e 65 78 74 20 |o copy the next | 00001a30 74 72 61 63 6b 2e 0d 0d 39 29 20 41 6c 6c 20 66 |track...9) All f| 00001a40 6f 72 74 79 20 74 72 61 63 6b 73 20 68 61 76 65 |orty tracks have| 00001a50 20 62 65 65 6e 20 63 6f 6e 76 65 72 74 65 64 2e | been converted.| 00001a60 20 4e 6f 77 20 66 6f 72 6d 61 74 20 74 72 61 63 | Now format trac| 00001a70 6b 73 20 26 32 38 20 74 6f 20 26 34 46 20 74 6f |ks &28 to &4F to| 00001a80 0d 20 20 20 63 72 65 61 74 65 20 61 6e 20 65 69 |. create an ei| 00001a90 67 68 74 79 20 74 72 61 63 6b 20 64 69 73 63 2e |ghty track disc.| 00001aa0 0d 0d 31 30 29 20 52 65 61 64 20 74 68 65 20 63 |..10) Read the c| 00001ab0 6f 6e 74 65 6e 74 73 20 6f 66 20 74 72 61 63 6b |ontents of track| 00001ac0 20 26 30 30 2c 20 73 65 63 74 6f 72 20 26 30 31 | &00, sector &01| 00001ad0 20 69 6e 74 6f 20 61 20 62 75 66 66 65 72 2e 0d | into a buffer..| 00001ae0 0d 31 31 29 20 4f 52 20 74 68 65 20 63 6f 6e 74 |.11) OR the cont| 00001af0 65 6e 74 73 20 6f 66 20 62 75 66 66 65 72 2b 26 |ents of buffer+&| 00001b00 30 36 20 77 69 74 68 20 74 68 65 20 6e 75 6d 62 |06 with the numb| 00001b10 65 72 20 26 30 33 2c 20 61 6e 64 20 73 74 6f 72 |er &03, and stor| 00001b20 65 20 74 68 65 0d 20 20 20 20 6e 75 6d 62 65 72 |e the. number| 00001b30 20 26 32 30 20 69 6e 20 62 75 66 66 65 72 2b 26 | &20 in buffer+&| 00001b40 30 37 20 74 6f 20 69 6e 64 69 63 61 74 65 20 74 |07 to indicate t| 00001b50 68 61 74 20 26 33 32 30 20 28 38 30 30 29 20 73 |hat &320 (800) s| 00001b60 65 63 74 6f 72 73 20 61 72 65 0d 20 20 20 20 61 |ectors are. a| 00001b70 76 61 69 6c 61 62 6c 65 20 6f 6e 20 74 68 65 20 |vailable on the | 00001b80 64 69 73 63 2e 0d 0d 31 32 29 20 57 72 69 74 65 |disc...12) Write| 00001b90 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 | the contents of| 00001ba0 20 74 68 65 20 62 75 66 66 65 72 20 62 61 63 6b | the buffer back| 00001bb0 20 6f 6e 74 6f 20 74 72 61 63 6b 20 26 30 30 2c | onto track &00,| 00001bc0 20 73 65 63 74 6f 72 20 26 30 31 2e 0d 0d 0d 54 | sector &01....T| 00001bd0 68 69 73 20 61 6c 67 6f 72 69 74 68 6d 20 68 61 |his algorithm ha| 00001be0 73 20 62 65 65 6e 20 69 6d 70 6c 65 6d 65 6e 74 |s been implement| 00001bf0 65 64 20 69 6e 20 74 68 65 20 70 72 6f 67 72 61 |ed in the progra| 00001c00 6d 20 43 4f 4e 56 45 52 54 2e 20 59 6f 75 20 63 |m CONVERT. You c| 00001c10 61 6e 20 75 73 65 0d 74 68 65 20 70 72 6f 67 72 |an use.the progr| 00001c20 61 6d 20 43 4f 4e 56 45 52 54 20 77 69 74 68 20 |am CONVERT with | 00001c30 61 6e 20 65 69 67 68 74 79 20 74 72 61 63 6b 20 |an eighty track | 00001c40 64 72 69 76 65 20 26 30 30 20 74 6f 20 63 6f 6e |drive &00 to con| 00001c50 76 65 72 74 20 61 6e 20 41 63 6f 72 6e 0d 66 6f |vert an Acorn.fo| 00001c60 72 6d 61 74 74 65 64 20 34 30 20 74 72 61 63 6b |rmatted 40 track| 00001c70 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 | single density | 00001c80 64 69 73 63 20 69 6e 74 6f 20 61 6e 20 65 69 67 |disc into an eig| 00001c90 68 74 79 20 74 72 61 63 6b 20 73 69 6e 67 6c 65 |hty track single| 00001ca0 20 64 65 6e 73 69 74 79 0d 64 69 73 63 2e 20 54 | density.disc. T| 00001cb0 68 65 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 |he program will | 00001cc0 6e 6f 74 20 77 6f 72 6b 20 77 69 74 68 20 63 6f |not work with co| 00001cd0 70 79 2d 70 72 6f 74 65 63 74 65 64 20 64 69 73 |py-protected dis| 00001ce0 63 73 20 61 6e 64 20 79 6f 75 20 73 68 6f 75 6c |cs and you shoul| 00001cf0 64 0d 6f 6e 6c 79 20 75 73 65 20 69 74 20 69 66 |d.only use it if| 00001d00 20 79 6f 75 20 68 61 76 65 20 61 20 64 75 70 6c | you have a dupl| 00001d10 69 63 61 74 65 20 6f 66 20 74 68 65 20 64 69 73 |icate of the dis| 00001d20 63 20 79 6f 75 20 69 6e 74 65 6e 64 20 74 6f 20 |c you intend to | 00001d30 63 6f 6e 76 65 72 74 2e 0d 0d 49 66 20 79 6f 75 |convert...If you| 00001d40 20 75 73 65 20 43 4f 4e 56 45 52 54 20 61 6e 64 | use CONVERT and| 00001d50 20 70 72 65 73 73 20 74 68 65 20 45 73 63 61 70 | press the Escap| 00001d60 65 20 6b 65 79 20 62 65 66 6f 72 65 20 69 74 20 |e key before it | 00001d70 68 61 73 20 66 69 6e 69 73 68 65 64 20 74 68 65 |has finished the| 00001d80 0d 63 6f 6e 76 65 72 73 69 6f 6e 20 79 6f 75 20 |.conversion you | 00001d90 77 69 6c 6c 20 70 72 6f 62 61 62 6c 79 20 64 65 |will probably de| 00001da0 73 74 72 6f 79 20 73 6f 6d 65 20 6f 72 20 61 6c |stroy some or al| 00001db0 6c 20 74 68 65 20 64 61 74 61 20 6f 6e 20 74 68 |l the data on th| 00001dc0 65 20 64 69 73 63 2e 20 44 6f 0d 6e 6f 74 20 75 |e disc. Do.not u| 00001dd0 73 65 20 74 68 65 20 70 72 6f 67 72 61 6d 20 77 |se the program w| 00001de0 69 74 68 20 61 20 66 6f 72 74 79 20 74 72 61 63 |ith a forty trac| 00001df0 6b 20 64 69 73 63 20 64 72 69 76 65 2e 20 59 6f |k disc drive. Yo| 00001e00 75 20 68 61 76 65 20 62 65 65 6e 20 77 61 72 6e |u have been warn| 00001e10 65 64 20 74 6f 0d 62 65 20 63 61 72 65 66 75 6c |ed to.be careful| 00001e20 20 77 69 74 68 20 61 6c 6c 20 74 68 65 20 70 72 | with all the pr| 00001e30 6f 67 72 61 6d 73 20 75 73 65 64 20 74 6f 20 69 |ograms used to i| 00001e40 6c 6c 75 73 74 72 61 74 65 20 74 68 69 73 20 73 |llustrate this s| 00001e50 65 72 69 65 73 2e 20 54 68 69 73 0d 70 72 6f 67 |eries. This.prog| 00001e60 72 61 6d 20 63 61 6e 20 65 61 73 69 6c 79 20 64 |ram can easily d| 00001e70 65 73 74 72 6f 79 20 61 6c 6c 20 74 68 65 20 64 |estroy all the d| 00001e80 61 74 61 20 6f 6e 20 79 6f 75 72 20 64 69 73 63 |ata on your disc| 00001e90 20 69 66 20 79 6f 75 20 66 61 69 6c 20 74 6f 20 | if you fail to | 00001ea0 75 73 65 20 69 74 0d 77 69 74 68 20 63 61 72 65 |use it.with care| 00001eb0 2e 0d 0d 49 66 20 79 6f 75 20 77 61 6e 74 20 74 |...If you want t| 00001ec0 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 70 72 6f |o modify the pro| 00001ed0 67 72 61 6d 20 74 6f 20 6d 61 6b 65 20 69 74 20 |gram to make it | 00001ee0 6d 6f 72 65 20 69 64 69 6f 74 20 70 72 6f 6f 66 |more idiot proof| 00001ef0 20 79 6f 75 20 63 6f 75 6c 64 0d 64 65 6c 65 74 | you could.delet| 00001f00 65 20 6c 69 6e 65 20 31 33 30 20 74 6f 20 74 61 |e line 130 to ta| 00001f10 6b 65 20 6f 75 74 20 74 68 65 20 72 6f 75 74 69 |ke out the routi| 00001f20 6e 65 20 77 68 69 63 68 20 70 6f 6c 6c 73 20 74 |ne which polls t| 00001f30 68 65 20 45 73 63 61 70 65 20 66 6c 61 67 2e 20 |he Escape flag. | 00001f40 54 68 69 73 0d 77 6f 75 6c 64 20 6d 61 6b 65 20 |This.would make | 00001f50 74 68 65 20 70 72 6f 67 72 61 6d 20 73 61 66 65 |the program safe| 00001f60 72 20 66 6f 72 20 68 61 6d 2d 66 69 73 74 65 64 |r for ham-fisted| 00001f70 20 6f 72 20 69 6e 65 78 70 65 72 69 65 6e 63 65 | or inexperience| 00001f80 64 20 75 73 65 72 73 20 62 65 63 61 75 73 65 0d |d users because.| 00001f90 70 72 65 73 73 69 6e 67 20 45 73 63 61 70 65 20 |pressing Escape | 00001fa0 77 6f 75 6c 64 20 6e 6f 74 20 68 61 6c 74 20 74 |would not halt t| 00001fb0 68 65 20 70 72 6f 67 72 61 6d 20 62 65 66 6f 72 |he program befor| 00001fc0 65 20 69 74 20 68 61 64 20 66 69 6e 69 73 68 65 |e it had finishe| 00001fd0 64 2e 0d 0d 57 68 61 74 65 76 65 72 20 6d 6f 64 |d...Whatever mod| 00001fe0 69 66 69 63 61 74 69 6f 6e 73 20 79 6f 75 20 6d |ifications you m| 00001ff0 61 6b 65 20 74 6f 20 74 68 69 73 20 6f 72 20 61 |ake to this or a| 00002000 6e 79 20 6f 74 68 65 72 20 6f 66 20 74 68 65 20 |ny other of the | 00002010 70 72 6f 67 72 61 6d 73 20 75 73 65 64 0d 74 6f |programs used.to| 00002020 20 69 6c 75 73 74 72 61 74 65 20 74 68 65 20 44 | ilustrate the D| 00002030 46 53 20 6d 6f 64 75 6c 65 73 20 6f 66 20 74 68 |FS modules of th| 00002040 65 20 73 65 72 69 65 73 2c 20 64 6f 6e 27 74 20 |e series, don't | 00002050 69 67 6e 6f 72 65 20 74 68 65 20 77 61 72 6e 69 |ignore the warni| 00002060 6e 67 20 61 62 6f 75 74 0d 74 68 65 20 70 6f 74 |ng about.the pot| 00002070 65 6e 74 69 61 6c 6c 79 20 64 69 73 61 73 74 65 |entially disaste| 00002080 72 6f 75 73 20 65 66 66 65 63 74 73 20 74 68 65 |rous effects the| 00002090 73 65 20 70 72 6f 67 72 61 6d 73 20 63 61 6e 20 |se programs can | 000020a0 68 61 76 65 20 6f 6e 20 79 6f 75 72 20 64 69 73 |have on your dis| 000020b0 63 73 2e 0d 0d 0d 20 20 20 31 30 20 52 45 4d 3a |cs.... 10 REM:| 000020c0 20 43 4f 4e 56 45 52 54 0d 20 20 20 32 30 20 6f | CONVERT. 20 o| 000020d0 73 6e 65 77 6c 3d 26 46 46 45 37 0d 20 20 20 33 |snewl=&FFE7. 3| 000020e0 30 20 6f 73 77 72 63 68 3d 26 46 46 45 45 0d 20 |0 oswrch=&FFEE. | 000020f0 20 20 34 30 20 6f 73 77 6f 72 64 3d 26 46 46 46 | 40 osword=&FFF| 00002100 31 0d 20 20 20 35 30 20 6f 73 62 79 74 65 3d 26 |1. 50 osbyte=&| 00002110 46 46 46 34 0d 20 20 20 36 30 20 44 49 4d 20 6d |FFF4. 60 DIM m| 00002120 63 6f 64 65 20 26 35 30 30 0d 20 20 20 37 30 20 |code &500. 70 | 00002130 44 49 4d 20 62 75 66 66 65 72 20 26 31 30 30 30 |DIM buffer &1000| 00002140 0d 20 20 20 38 30 20 46 4f 52 20 70 61 73 73 3d |. 80 FOR pass=| 00002150 30 20 54 4f 20 32 20 53 54 45 50 20 32 0d 20 20 |0 TO 2 STEP 2. | 00002160 20 39 30 20 50 25 3d 6d 63 6f 64 65 0d 20 20 31 | 90 P%=mcode. 1| 00002170 30 30 20 5b 20 20 20 20 20 20 20 4f 50 54 20 70 |00 [ OPT p| 00002180 61 73 73 0d 20 20 31 31 30 20 20 20 20 20 20 20 |ass. 110 | 00002190 20 20 4a 53 52 20 6f 73 6e 65 77 6c 0d 20 20 31 | JSR osnewl. 1| 000021a0 32 30 20 2e 6d 61 69 6e 6c 6f 6f 70 0d 20 20 31 |20 .mainloop. 1| 000021b0 33 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 65 |30 JSR e| 000021c0 73 63 61 70 65 20 20 20 20 5c 20 63 68 65 63 6b |scape \ check| 000021d0 20 65 73 63 61 70 65 20 66 6c 61 67 0d 20 20 31 | escape flag. 1| 000021e0 34 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 73 |40 JSR s| 000021f0 65 65 6b 74 77 6f 20 20 20 5c 20 73 65 65 6b 20 |eektwo \ seek | 00002200 74 72 61 63 6b 20 2a 20 32 0d 20 20 31 35 30 20 |track * 2. 150 | 00002210 20 20 20 20 20 20 20 20 4c 44 41 20 74 72 61 63 | LDA trac| 00002220 6b 20 20 20 20 20 5c 20 6c 6f 61 64 20 6c 6f 67 |k \ load log| 00002230 69 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 |ical track numbe| 00002240 72 0d 20 20 31 36 30 20 20 20 20 20 20 20 20 20 |r. 160 | 00002250 4a 53 52 20 72 65 67 69 73 74 65 72 20 20 5c 20 |JSR register \ | 00002260 77 72 69 74 65 20 74 72 61 63 6b 20 72 65 67 69 |write track regi| 00002270 73 74 65 72 0d 20 20 31 37 30 20 20 20 20 20 20 |ster. 170 | 00002280 20 20 20 4a 53 52 20 72 65 61 64 20 20 20 20 20 | JSR read | 00002290 20 5c 20 72 65 61 64 20 6c 6f 67 69 63 61 6c 20 | \ read logical | 000022a0 74 72 61 63 6b 0d 20 20 31 38 30 20 20 20 20 20 |track. 180 | 000022b0 20 20 20 20 4c 44 41 20 74 72 61 63 6b 20 20 20 | LDA track | 000022c0 20 20 5c 20 6c 6f 61 64 20 6c 6f 67 69 63 61 6c | \ load logical| 000022d0 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 20 20 | track number. | 000022e0 31 39 30 20 20 20 20 20 20 20 20 20 41 53 4c 20 |190 ASL | 000022f0 41 20 20 20 20 20 20 20 20 20 5c 20 2a 32 20 3d |A \ *2 =| 00002300 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b 0d | physical track.| 00002310 20 20 32 30 30 20 20 20 20 20 20 20 20 20 4a 53 | 200 JS| 00002320 52 20 72 65 67 69 73 74 65 72 20 20 5c 20 77 72 |R register \ wr| 00002330 69 74 65 20 74 72 61 63 6b 20 72 65 67 69 73 74 |ite track regist| 00002340 65 72 0d 20 20 32 31 30 20 20 20 20 20 20 20 20 |er. 210 | 00002350 20 4a 53 52 20 66 6f 72 6d 61 74 20 20 20 20 5c | JSR format \| 00002360 20 66 6f 72 6d 61 74 20 70 68 79 73 69 63 61 6c | format physical| 00002370 20 74 72 61 63 6b 0d 20 20 32 32 30 20 20 20 20 | track. 220 | 00002380 20 20 20 20 20 4a 53 52 20 77 72 69 74 65 20 20 | JSR write | 00002390 20 20 20 5c 20 77 72 69 74 65 20 64 61 74 61 20 | \ write data | 000023a0 6f 6e 74 6f 20 64 69 73 63 0d 20 20 32 33 30 20 |onto disc. 230 | 000023b0 20 20 20 20 20 20 20 20 4a 53 52 20 70 72 69 6e | JSR prin| 000023c0 74 62 79 74 65 20 5c 20 70 72 69 6e 74 20 74 72 |tbyte \ print tr| 000023d0 61 63 6b 20 6e 75 6d 62 65 72 0d 20 20 32 34 30 |ack number. 240| 000023e0 20 20 20 20 20 20 20 20 20 49 4e 43 20 74 72 61 | INC tra| 000023f0 63 6b 20 20 20 20 20 5c 20 67 65 74 20 72 65 61 |ck \ get rea| 00002400 64 79 20 66 6f 72 20 6e 65 78 74 20 74 72 61 63 |dy for next trac| 00002410 6b 0d 20 20 32 35 30 20 20 20 20 20 20 20 20 20 |k. 250 | 00002420 4c 44 41 20 74 72 61 63 6b 20 20 20 20 20 5c 20 |LDA track \ | 00002430 6c 6f 61 64 20 6c 6f 67 69 63 61 6c 20 74 72 61 |load logical tra| 00002440 63 6b 20 6e 75 6d 62 65 72 0d 20 20 32 36 30 20 |ck number. 260 | 00002450 20 20 20 20 20 20 20 20 43 4d 50 20 23 34 30 20 | CMP #40 | 00002460 20 20 20 20 20 20 5c 20 69 73 20 69 74 20 74 72 | \ is it tr| 00002470 61 63 6b 20 34 30 3f 0d 20 20 32 37 30 20 20 20 |ack 40?. 270 | 00002480 20 20 20 20 20 20 42 4e 45 20 6d 61 69 6e 6c 6f | BNE mainlo| 00002490 6f 70 20 20 5c 20 69 66 20 6e 6f 74 20 72 65 61 |op \ if not rea| 000024a0 64 20 6e 65 78 74 20 74 72 61 63 6b 0d 20 20 32 |d next track. 2| 000024b0 38 30 20 2e 66 6f 72 6d 6c 6f 6f 70 0d 20 20 32 |80 .formloop. 2| 000024c0 39 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 65 |90 JSR e| 000024d0 73 63 61 70 65 20 20 20 20 5c 20 63 68 65 63 6b |scape \ check| 000024e0 20 65 73 63 61 70 65 20 66 6c 61 67 0d 20 20 33 | escape flag. 3| 000024f0 30 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 66 |00 JSR f| 00002500 6f 72 6d 61 74 20 20 20 20 5c 20 66 6f 72 6d 61 |ormat \ forma| 00002510 74 20 74 72 61 63 6b 73 20 34 30 20 2d 20 37 39 |t tracks 40 - 79| 00002520 0d 20 20 33 31 30 20 20 20 20 20 20 20 20 20 4a |. 310 J| 00002530 53 52 20 70 72 69 6e 74 62 79 74 65 20 5c 20 70 |SR printbyte \ p| 00002540 72 69 6e 74 20 74 72 61 63 6b 20 6e 75 6d 62 65 |rint track numbe| 00002550 72 0d 20 20 33 32 30 20 20 20 20 20 20 20 20 20 |r. 320 | 00002560 49 4e 43 20 74 72 61 63 6b 20 20 20 20 20 5c 20 |INC track \ | 00002570 69 6e 63 72 65 6d 65 6e 74 20 74 72 61 63 6b 20 |increment track | 00002580 6e 75 6d 62 65 72 0d 20 20 33 33 30 20 20 20 20 |number. 330 | 00002590 20 20 20 20 20 4c 44 41 20 74 72 61 63 6b 20 20 | LDA track | 000025a0 20 20 20 5c 20 6c 6f 61 64 20 74 72 61 63 6b 20 | \ load track | 000025b0 6e 75 6d 62 65 72 0d 20 20 33 34 30 20 20 20 20 |number. 340 | 000025c0 20 20 20 20 20 43 4d 50 20 23 38 30 20 20 20 20 | CMP #80 | 000025d0 20 20 20 5c 20 69 73 20 69 74 20 38 30 3f 0d 20 | \ is it 80?. | 000025e0 20 33 35 30 20 20 20 20 20 20 20 20 20 42 4e 45 | 350 BNE| 000025f0 20 66 6f 72 6d 6c 6f 6f 70 20 20 5c 20 69 66 20 | formloop \ if | 00002600 6e 6f 74 20 66 6f 72 6d 61 74 20 6e 65 78 74 20 |not format next | 00002610 74 72 61 63 6b 0d 20 20 33 36 30 20 20 20 20 20 |track. 360 | 00002620 20 20 20 20 4c 44 41 20 23 30 20 20 20 20 20 20 | LDA #0 | 00002630 20 20 5c 20 67 6f 20 62 61 63 6b 20 74 6f 20 74 | \ go back to t| 00002640 72 61 63 6b 20 30 0d 20 20 33 37 30 20 20 20 20 |rack 0. 370 | 00002650 20 20 20 20 20 53 54 41 20 74 72 61 63 6b 0d 20 | STA track. | 00002660 20 33 38 30 20 20 20 20 20 20 20 20 20 53 54 41 | 380 STA| 00002670 20 63 6f 70 79 62 6c 6f 63 6b 2b 37 0d 20 20 33 | copyblock+7. 3| 00002680 39 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 23 |90 LDA #| 00002690 31 20 20 20 20 20 20 20 20 5c 20 73 65 63 74 6f |1 \ secto| 000026a0 72 20 31 0d 20 20 34 30 30 20 20 20 20 20 20 20 |r 1. 400 | 000026b0 20 20 53 54 41 20 63 6f 70 79 62 6c 6f 63 6b 2b | STA copyblock+| 000026c0 38 0d 20 20 34 31 30 20 20 20 20 20 20 20 20 20 |8. 410 | 000026d0 4c 44 41 20 23 26 32 31 20 20 20 20 20 20 5c 20 |LDA #&21 \ | 000026e0 31 20 73 65 63 74 6f 72 20 6f 66 20 32 35 36 20 |1 sector of 256 | 000026f0 62 79 74 65 73 0d 20 20 34 32 30 20 20 20 20 20 |bytes. 420 | 00002700 20 20 20 20 53 54 41 20 63 6f 70 79 62 6c 6f 63 | STA copybloc| 00002710 6b 2b 39 0d 20 20 34 33 30 20 20 20 20 20 20 20 |k+9. 430 | 00002720 20 20 4a 53 52 20 72 65 61 64 20 20 20 20 20 20 | JSR read | 00002730 5c 20 72 65 61 64 20 74 72 61 63 6b 20 30 20 73 |\ read track 0 s| 00002740 65 63 74 6f 72 20 31 0d 20 20 34 34 30 20 20 20 |ector 1. 440 | 00002750 20 20 20 20 20 20 4c 44 41 20 23 26 30 33 20 20 | LDA #&03 | 00002760 20 20 20 20 5c 20 38 30 30 20 73 65 63 74 6f 72 | \ 800 sector| 00002770 73 20 44 49 56 20 32 35 36 0d 20 20 34 35 30 20 |s DIV 256. 450 | 00002780 20 20 20 20 20 20 20 20 4f 52 41 20 62 75 66 66 | ORA buff| 00002790 65 72 2b 36 20 20 5c 20 6b 65 65 70 20 6f 6c 64 |er+6 \ keep old| 000027a0 20 2a 4f 50 54 34 2c 6e 20 6f 70 74 69 6f 6e 0d | *OPT4,n option.| 000027b0 20 20 34 36 30 20 20 20 20 20 20 20 20 20 53 54 | 460 ST| 000027c0 41 20 62 75 66 66 65 72 2b 36 20 20 5c 20 4d 53 |A buffer+6 \ MS| 000027d0 42 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 |B number of sect| 000027e0 6f 72 73 0d 20 20 34 37 30 20 20 20 20 20 20 20 |ors. 470 | 000027f0 20 20 4c 44 41 20 23 26 32 30 20 20 20 20 20 20 | LDA #&20 | 00002800 5c 20 38 30 30 20 73 65 63 74 6f 72 73 20 4d 4f |\ 800 sectors MO| 00002810 44 20 32 35 36 0d 20 20 34 38 30 20 20 20 20 20 |D 256. 480 | 00002820 20 20 20 20 53 54 41 20 62 75 66 66 65 72 2b 37 | STA buffer+7| 00002830 20 20 5c 20 4c 53 42 20 6e 75 6d 62 65 72 20 6f | \ LSB number o| 00002840 66 20 73 65 63 74 6f 72 73 0d 20 20 34 39 30 20 |f sectors. 490 | 00002850 20 20 20 20 20 20 20 20 4a 53 52 20 77 72 69 74 | JSR writ| 00002860 65 20 20 20 20 20 5c 20 73 74 6f 72 65 20 74 72 |e \ store tr| 00002870 61 63 6b 20 30 20 73 65 63 74 6f 72 20 31 0d 20 |ack 0 sector 1. | 00002880 20 35 30 30 20 20 20 20 20 20 20 20 20 4a 53 52 | 500 JSR| 00002890 20 6f 73 6e 65 77 6c 0d 20 20 35 31 30 20 20 20 | osnewl. 510 | 000028a0 20 20 20 20 20 20 52 54 53 20 20 20 20 20 20 20 | RTS | 000028b0 20 20 20 20 5c 20 72 65 74 75 72 6e 20 74 6f 20 | \ return to | 000028c0 42 41 53 49 43 0d 20 20 35 32 30 20 2e 65 73 63 |BASIC. 520 .esc| 000028d0 61 70 65 0d 20 20 35 33 30 20 20 20 20 20 20 20 |ape. 530 | 000028e0 20 20 4c 44 41 20 26 46 46 20 20 20 20 20 20 20 | LDA &FF | 000028f0 5c 20 65 73 63 61 70 65 20 66 6c 61 67 0d 20 20 |\ escape flag. | 00002900 35 34 30 20 20 20 20 20 20 20 20 20 42 4d 49 20 |540 BMI | 00002910 70 72 65 73 73 65 64 20 20 20 5c 20 62 69 74 20 |pressed \ bit | 00002920 37 20 73 65 74 20 69 66 20 70 72 65 73 73 65 64 |7 set if pressed| 00002930 0d 20 20 35 35 30 20 20 20 20 20 20 20 20 20 52 |. 550 R| 00002940 54 53 0d 20 20 35 36 30 20 2e 70 72 65 73 73 65 |TS. 560 .presse| 00002950 64 0d 20 20 35 37 30 20 20 20 20 20 20 20 20 20 |d. 570 | 00002960 4c 44 41 20 23 26 37 45 0d 20 20 35 38 30 20 20 |LDA #&7E. 580 | 00002970 20 20 20 20 20 20 20 4a 53 52 20 6f 73 62 79 74 | JSR osbyt| 00002980 65 20 20 20 20 5c 20 61 63 6b 6e 6f 77 6c 65 64 |e \ acknowled| 00002990 67 65 20 45 73 63 61 70 65 0d 20 20 35 39 30 20 |ge Escape. 590 | 000029a0 20 20 20 20 20 20 20 20 42 52 4b 0d 20 20 36 30 | BRK. 60| 000029b0 30 20 20 20 20 20 20 20 20 20 42 52 4b 0d 20 20 |0 BRK. | 000029c0 36 31 30 20 20 20 20 20 20 20 20 20 45 51 55 53 |610 EQUS| 000029d0 20 22 45 73 63 61 70 65 22 0d 20 20 36 32 30 20 | "Escape". 620 | 000029e0 20 20 20 20 20 20 20 20 42 52 4b 0d 20 20 36 33 | BRK. 63| 000029f0 30 20 2e 73 65 65 6b 74 77 6f 0d 20 20 36 34 30 |0 .seektwo. 640| 00002a00 20 20 20 20 20 20 20 20 20 4c 44 41 20 74 72 61 | LDA tra| 00002a10 63 6b 20 20 20 20 20 5c 20 73 6f 75 72 63 65 20 |ck \ source | 00002a20 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 20 20 36 |track number. 6| 00002a30 35 30 20 20 20 20 20 20 20 20 20 41 53 4c 20 41 |50 ASL A| 00002a40 20 20 20 20 20 20 20 20 20 5c 20 2a 32 0d 20 20 | \ *2. | 00002a50 36 36 30 20 20 20 20 20 20 20 20 20 53 54 41 20 |660 STA | 00002a60 73 65 65 6b 62 6c 6f 63 6b 2b 37 20 5c 20 70 68 |seekblock+7 \ ph| 00002a70 79 73 69 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d |ysical track num| 00002a80 62 65 72 0d 20 20 36 37 30 20 20 20 20 20 20 20 |ber. 670 | 00002a90 20 20 4c 44 41 20 23 26 37 46 0d 20 20 36 38 30 | LDA #&7F. 680| 00002aa0 20 20 20 20 20 20 20 20 20 4c 44 58 20 23 73 65 | LDX #se| 00002ab0 65 6b 62 6c 6f 63 6b 20 4d 4f 44 20 32 35 36 0d |ekblock MOD 256.| 00002ac0 20 20 36 39 30 20 20 20 20 20 20 20 20 20 4c 44 | 690 LD| 00002ad0 59 20 23 73 65 65 6b 62 6c 6f 63 6b 20 44 49 56 |Y #seekblock DIV| 00002ae0 20 32 35 36 0d 20 20 37 30 30 20 20 20 20 20 20 | 256. 700 | 00002af0 20 20 20 4a 53 52 20 6f 73 77 6f 72 64 0d 20 20 | JSR osword. | 00002b00 37 31 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 |710 LDA | 00002b10 73 65 65 6b 62 6c 6f 63 6b 2b 38 20 5c 20 72 65 |seekblock+8 \ re| 00002b20 73 75 6c 74 0d 20 20 37 32 30 20 20 20 20 20 20 |sult. 720 | 00002b30 20 20 20 42 4e 45 20 73 65 65 6b 65 72 72 6f 72 | BNE seekerror| 00002b40 20 5c 20 3d 20 30 20 69 66 20 4f 4b 0d 20 20 37 | \ = 0 if OK. 7| 00002b50 33 30 20 20 20 20 20 20 20 20 20 52 54 53 0d 20 |30 RTS. | 00002b60 20 37 34 30 20 2e 73 65 65 6b 65 72 72 6f 72 0d | 740 .seekerror.| 00002b70 20 20 37 35 30 20 20 20 20 20 20 20 20 20 42 52 | 750 BR| 00002b80 4b 0d 20 20 37 36 30 20 20 20 20 20 20 20 20 20 |K. 760 | 00002b90 42 52 4b 0d 20 20 37 37 30 20 20 20 20 20 20 20 |BRK. 770 | 00002ba0 20 20 45 51 55 53 20 22 53 65 65 6b 20 65 72 72 | EQUS "Seek err| 00002bb0 6f 72 22 0d 20 20 37 38 30 20 20 20 20 20 20 20 |or". 780 | 00002bc0 20 20 42 52 4b 0d 20 20 37 39 30 20 2e 66 6f 72 | BRK. 790 .for| 00002bd0 6d 61 74 0d 20 20 38 30 30 20 20 20 20 20 20 20 |mat. 800 | 00002be0 20 20 4c 44 41 20 74 72 61 63 6b 20 20 20 20 20 | LDA track | 00002bf0 5c 20 73 6f 75 72 63 65 20 74 72 61 63 6b 20 6e |\ source track n| 00002c00 75 6d 62 65 72 0d 20 20 38 31 30 20 20 20 20 20 |umber. 810 | 00002c10 20 20 20 20 53 54 41 20 66 6f 72 6d 62 6c 6f 63 | STA formbloc| 00002c20 6b 2b 37 20 5c 20 73 74 6f 72 65 20 70 68 79 73 |k+7 \ store phys| 00002c30 69 63 61 6c 20 74 72 61 63 6b 0d 20 20 38 32 30 |ical track. 820| 00002c40 20 20 20 20 20 20 20 20 20 4c 44 58 20 23 33 36 | LDX #36| 00002c50 0d 20 20 38 33 30 20 2e 74 61 62 6c 65 6c 6f 6f |. 830 .tableloo| 00002c60 70 0d 20 20 38 34 30 20 20 20 20 20 20 20 20 20 |p. 840 | 00002c70 53 54 41 20 74 61 62 6c 65 2c 58 20 20 20 5c 20 |STA table,X \ | 00002c80 73 74 6f 72 65 20 6c 6f 67 69 63 61 6c 20 74 72 |store logical tr| 00002c90 61 63 6b 20 6e 75 6d 62 65 72 20 69 6e 20 49 44 |ack number in ID| 00002ca0 20 74 61 62 6c 65 0d 20 20 38 35 30 20 20 20 20 | table. 850 | 00002cb0 20 20 20 20 20 44 45 58 0d 20 20 38 36 30 20 20 | DEX. 860 | 00002cc0 20 20 20 20 20 20 20 44 45 58 0d 20 20 38 37 30 | DEX. 870| 00002cd0 20 20 20 20 20 20 20 20 20 44 45 58 0d 20 20 38 | DEX. 8| 00002ce0 38 30 20 20 20 20 20 20 20 20 20 44 45 58 0d 20 |80 DEX. | 00002cf0 20 38 39 30 20 20 20 20 20 20 20 20 20 42 50 4c | 890 BPL| 00002d00 20 74 61 62 6c 65 6c 6f 6f 70 0d 20 20 39 30 30 | tableloop. 900| 00002d10 20 20 20 20 20 20 20 20 20 4c 44 41 20 23 26 37 | LDA #&7| 00002d20 46 0d 20 20 39 31 30 20 20 20 20 20 20 20 20 20 |F. 910 | 00002d30 4c 44 58 20 23 66 6f 72 6d 62 6c 6f 63 6b 20 4d |LDX #formblock M| 00002d40 4f 44 20 32 35 36 0d 20 20 39 32 30 20 20 20 20 |OD 256. 920 | 00002d50 20 20 20 20 20 4c 44 59 20 23 66 6f 72 6d 62 6c | LDY #formbl| 00002d60 6f 63 6b 20 44 49 56 20 32 35 36 0d 20 20 39 33 |ock DIV 256. 93| 00002d70 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 6f 73 |0 JSR os| 00002d80 77 6f 72 64 0d 20 20 39 34 30 20 20 20 20 20 20 |word. 940 | 00002d90 20 20 20 4c 44 41 20 66 6f 72 6d 62 6c 6f 63 6b | LDA formblock| 00002da0 2b 31 32 20 5c 20 72 65 73 75 6c 74 0d 20 20 39 |+12 \ result. 9| 00002db0 35 30 20 20 20 20 20 20 20 20 20 42 4e 45 20 66 |50 BNE f| 00002dc0 6f 72 6d 65 72 72 6f 72 20 5c 20 3d 20 30 20 69 |ormerror \ = 0 i| 00002dd0 66 20 4f 4b 0d 20 20 39 36 30 20 20 20 20 20 20 |f OK. 960 | 00002de0 20 20 20 52 54 53 0d 20 20 39 37 30 20 2e 66 6f | RTS. 970 .fo| 00002df0 72 6d 65 72 72 6f 72 0d 20 20 39 38 30 20 20 20 |rmerror. 980 | 00002e00 20 20 20 20 20 20 42 52 4b 0d 20 20 39 39 30 20 | BRK. 990 | 00002e10 20 20 20 20 20 20 20 20 42 52 4b 0d 20 31 30 30 | BRK. 100| 00002e20 30 20 20 20 20 20 20 20 20 20 45 51 55 53 20 22 |0 EQUS "| 00002e30 46 6f 72 6d 61 74 20 65 72 72 6f 72 22 0d 20 31 |Format error". 1| 00002e40 30 31 30 20 20 20 20 20 20 20 20 20 42 52 4b 0d |010 BRK.| 00002e50 20 31 30 32 30 20 2e 72 65 67 69 73 74 65 72 0d | 1020 .register.| 00002e60 20 31 30 33 30 20 20 20 20 20 20 20 20 20 53 54 | 1030 ST| 00002e70 41 20 72 65 67 62 6c 6f 63 6b 2b 38 20 5c 20 76 |A regblock+8 \ v| 00002e80 61 6c 75 65 20 74 6f 20 70 75 74 20 69 6e 20 72 |alue to put in r| 00002e90 65 67 69 73 74 65 72 0d 20 31 30 34 30 20 20 20 |egister. 1040 | 00002ea0 20 20 20 20 20 20 4c 44 41 20 23 26 37 46 0d 20 | LDA #&7F. | 00002eb0 31 30 35 30 20 20 20 20 20 20 20 20 20 4c 44 58 |1050 LDX| 00002ec0 20 23 72 65 67 62 6c 6f 63 6b 20 4d 4f 44 20 32 | #regblock MOD 2| 00002ed0 35 36 0d 20 31 30 36 30 20 20 20 20 20 20 20 20 |56. 1060 | 00002ee0 20 4c 44 59 20 23 72 65 67 62 6c 6f 63 6b 20 44 | LDY #regblock D| 00002ef0 49 56 20 32 35 36 0d 20 31 30 37 30 20 20 20 20 |IV 256. 1070 | 00002f00 20 20 20 20 20 4a 53 52 20 6f 73 77 6f 72 64 0d | JSR osword.| 00002f10 20 31 30 38 30 20 20 20 20 20 20 20 20 20 4c 44 | 1080 LD| 00002f20 41 20 72 65 67 62 6c 6f 63 6b 2b 39 20 5c 20 72 |A regblock+9 \ r| 00002f30 65 73 75 6c 74 0d 20 31 30 39 30 20 20 20 20 20 |esult. 1090 | 00002f40 20 20 20 20 42 4e 45 20 72 65 67 65 72 72 6f 72 | BNE regerror| 00002f50 20 20 5c 20 3d 20 30 20 69 66 20 4f 4b 0d 20 31 | \ = 0 if OK. 1| 00002f60 31 30 30 20 20 20 20 20 20 20 20 20 52 54 53 0d |100 RTS.| 00002f70 20 31 31 31 30 20 2e 72 65 67 65 72 72 6f 72 0d | 1110 .regerror.| 00002f80 20 31 31 32 30 20 20 20 20 20 20 20 20 20 42 52 | 1120 BR| 00002f90 4b 0d 20 31 31 33 30 20 20 20 20 20 20 20 20 20 |K. 1130 | 00002fa0 42 52 4b 0d 20 31 31 34 30 20 20 20 20 20 20 20 |BRK. 1140 | 00002fb0 20 20 45 51 55 53 20 22 53 70 65 63 69 61 6c 20 | EQUS "Special | 00002fc0 72 65 67 69 73 74 65 72 20 65 72 72 6f 72 22 20 |register error" | 00002fd0 20 20 20 20 20 20 20 20 20 20 0d 20 31 31 35 30 | . 1150| 00002fe0 20 20 20 20 20 20 20 20 20 42 52 4b 0d 20 31 31 | BRK. 11| 00002ff0 36 30 20 2e 72 65 61 64 0d 20 31 31 37 30 20 20 |60 .read. 1170 | 00003000 20 20 20 20 20 20 20 4c 44 41 20 74 72 61 63 6b | LDA track| 00003010 20 20 20 20 20 5c 20 73 6f 75 72 63 65 20 74 72 | \ source tr| 00003020 61 63 6b 20 6e 75 6d 62 65 72 0d 20 31 31 38 30 |ack number. 1180| 00003030 20 20 20 20 20 20 20 20 20 53 54 41 20 63 6f 70 | STA cop| 00003040 79 62 6c 6f 63 6b 2b 37 20 5c 20 6c 6f 67 69 63 |yblock+7 \ logic| 00003050 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d |al track number.| 00003060 20 31 31 39 30 20 20 20 20 20 20 20 20 20 4c 44 | 1190 LD| 00003070 41 20 23 26 35 33 20 20 20 20 20 20 5c 20 72 65 |A #&53 \ re| 00003080 61 64 20 64 61 74 61 20 6d 75 6c 74 69 2d 73 65 |ad data multi-se| 00003090 63 74 6f 72 0d 20 31 32 30 30 20 20 20 20 20 20 |ctor. 1200 | 000030a0 20 20 20 53 54 41 20 63 6f 70 79 62 6c 6f 63 6b | STA copyblock| 000030b0 2b 36 0d 20 31 32 31 30 20 20 20 20 20 20 20 20 |+6. 1210 | 000030c0 20 4c 44 41 20 23 26 37 46 0d 20 31 32 32 30 20 | LDA #&7F. 1220 | 000030d0 20 20 20 20 20 20 20 20 4c 44 58 20 23 63 6f 70 | LDX #cop| 000030e0 79 62 6c 6f 63 6b 20 4d 4f 44 20 32 35 36 0d 20 |yblock MOD 256. | 000030f0 31 32 33 30 20 20 20 20 20 20 20 20 20 4c 44 59 |1230 LDY| 00003100 20 23 63 6f 70 79 62 6c 6f 63 6b 20 44 49 56 20 | #copyblock DIV | 00003110 32 35 36 0d 20 31 32 34 30 20 20 20 20 20 20 20 |256. 1240 | 00003120 20 20 4a 53 52 20 6f 73 77 6f 72 64 0d 20 31 32 | JSR osword. 12| 00003130 35 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 63 |50 LDA c| 00003140 6f 70 79 62 6c 6f 63 6b 2b 31 30 0d 20 31 32 36 |opyblock+10. 126| 00003150 30 20 20 20 20 20 20 20 20 20 42 4e 45 20 72 65 |0 BNE re| 00003160 61 64 65 72 72 6f 72 0d 20 31 32 37 30 20 20 20 |aderror. 1270 | 00003170 20 20 20 20 20 20 52 54 53 0d 20 31 32 38 30 20 | RTS. 1280 | 00003180 2e 72 65 61 64 65 72 72 6f 72 0d 20 31 32 39 30 |.readerror. 1290| 00003190 20 20 20 20 20 20 20 20 20 42 52 4b 0d 20 31 33 | BRK. 13| 000031a0 30 30 20 20 20 20 20 20 20 20 20 42 52 4b 0d 20 |00 BRK. | 000031b0 31 33 31 30 20 20 20 20 20 20 20 20 20 45 51 55 |1310 EQU| 000031c0 53 20 22 52 65 61 64 20 65 72 72 6f 72 22 0d 20 |S "Read error". | 000031d0 31 33 32 30 20 20 20 20 20 20 20 20 20 42 52 4b |1320 BRK| 000031e0 0d 20 31 33 33 30 20 2e 77 72 69 74 65 0d 20 31 |. 1330 .write. 1| 000031f0 33 34 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 |340 LDA | 00003200 23 26 34 42 20 20 20 20 20 20 5c 20 77 72 69 74 |#&4B \ writ| 00003210 65 20 64 61 74 61 20 6d 75 6c 74 69 2d 73 65 63 |e data multi-sec| 00003220 74 6f 72 0d 20 31 33 35 30 20 20 20 20 20 20 20 |tor. 1350 | 00003230 20 20 53 54 41 20 63 6f 70 79 62 6c 6f 63 6b 2b | STA copyblock+| 00003240 36 0d 20 31 33 36 30 20 20 20 20 20 20 20 20 20 |6. 1360 | 00003250 4c 44 41 20 23 26 37 46 0d 20 31 33 37 30 20 20 |LDA #&7F. 1370 | 00003260 20 20 20 20 20 20 20 4c 44 58 20 23 63 6f 70 79 | LDX #copy| 00003270 62 6c 6f 63 6b 20 4d 4f 44 20 32 35 36 0d 20 31 |block MOD 256. 1| 00003280 33 38 30 20 20 20 20 20 20 20 20 20 4c 44 59 20 |380 LDY | 00003290 23 63 6f 70 79 62 6c 6f 63 6b 20 44 49 56 20 32 |#copyblock DIV 2| 000032a0 35 36 0d 20 31 33 39 30 20 20 20 20 20 20 20 20 |56. 1390 | 000032b0 20 4a 53 52 20 6f 73 77 6f 72 64 0d 20 31 34 30 | JSR osword. 140| 000032c0 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 63 6f |0 LDA co| 000032d0 70 79 62 6c 6f 63 6b 2b 31 30 20 5c 20 72 65 73 |pyblock+10 \ res| 000032e0 75 6c 74 0d 20 31 34 31 30 20 20 20 20 20 20 20 |ult. 1410 | 000032f0 20 20 42 4e 45 20 77 72 69 74 65 65 72 72 6f 72 | BNE writeerror| 00003300 20 5c 20 3d 20 30 20 69 66 20 4f 4b 0d 20 31 34 | \ = 0 if OK. 14| 00003310 32 30 20 20 20 20 20 20 20 20 20 52 54 53 0d 20 |20 RTS. | 00003320 31 34 33 30 20 2e 77 72 69 74 65 65 72 72 6f 72 |1430 .writeerror| 00003330 0d 20 31 34 34 30 20 20 20 20 20 20 20 20 20 42 |. 1440 B| 00003340 52 4b 0d 20 31 34 35 30 20 20 20 20 20 20 20 20 |RK. 1450 | 00003350 20 42 52 4b 0d 20 31 34 36 30 20 20 20 20 20 20 | BRK. 1460 | 00003360 20 20 20 45 51 55 53 20 22 57 72 69 74 65 20 65 | EQUS "Write e| 00003370 72 72 6f 72 22 0d 20 31 34 37 30 20 20 20 20 20 |rror". 1470 | 00003380 20 20 20 20 42 52 4b 0d 20 31 34 38 30 20 2e 70 | BRK. 1480 .p| 00003390 72 69 6e 74 62 79 74 65 0d 20 31 34 39 30 20 20 |rintbyte. 1490 | 000033a0 20 20 20 20 20 20 20 4c 44 41 20 74 72 61 63 6b | LDA track| 000033b0 20 20 20 20 20 5c 20 70 72 69 6e 74 20 73 6f 75 | \ print sou| 000033c0 72 63 65 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 |rce track number| 000033d0 0d 20 31 35 30 30 20 20 20 20 20 20 20 20 20 50 |. 1500 P| 000033e0 48 41 0d 20 31 35 31 30 20 20 20 20 20 20 20 20 |HA. 1510 | 000033f0 20 4c 53 52 20 41 0d 20 31 35 32 30 20 20 20 20 | LSR A. 1520 | 00003400 20 20 20 20 20 4c 53 52 20 41 0d 20 31 35 33 30 | LSR A. 1530| 00003410 20 20 20 20 20 20 20 20 20 4c 53 52 20 41 0d 20 | LSR A. | 00003420 31 35 34 30 20 20 20 20 20 20 20 20 20 4c 53 52 |1540 LSR| 00003430 20 41 0d 20 31 35 35 30 20 20 20 20 20 20 20 20 | A. 1550 | 00003440 20 4a 53 52 20 6e 79 62 62 6c 65 20 20 20 20 5c | JSR nybble \| 00003450 20 70 72 69 6e 74 20 4d 53 20 6e 79 62 62 6c 65 | print MS nybble| 00003460 0d 20 31 35 36 30 20 20 20 20 20 20 20 20 20 50 |. 1560 P| 00003470 4c 41 0d 20 31 35 37 30 20 20 20 20 20 20 20 20 |LA. 1570 | 00003480 20 4a 53 52 20 6e 79 62 62 6c 65 20 20 20 20 5c | JSR nybble \| 00003490 20 70 72 69 6e 74 20 4c 53 20 6e 79 62 62 6c 65 | print LS nybble| 000034a0 0d 20 31 35 38 30 20 20 20 20 20 20 20 20 20 4c |. 1580 L| 000034b0 44 41 20 23 41 53 43 28 22 20 22 29 0d 20 31 35 |DA #ASC(" "). 15| 000034c0 39 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 6f |90 JSR o| 000034d0 73 77 72 63 68 20 20 20 20 5c 20 70 72 69 6e 74 |swrch \ print| 000034e0 20 73 70 61 63 65 0d 20 31 36 30 30 20 20 20 20 | space. 1600 | 000034f0 20 20 20 20 20 4a 4d 50 20 6f 73 77 72 63 68 20 | JMP oswrch | 00003500 20 20 20 5c 20 70 72 69 6e 74 20 73 70 61 63 65 | \ print space| 00003510 0d 20 31 36 31 30 20 2e 6e 79 62 62 6c 65 0d 20 |. 1610 .nybble. | 00003520 31 36 32 30 20 20 20 20 20 20 20 20 20 41 4e 44 |1620 AND| 00003530 20 23 26 30 46 0d 20 31 36 33 30 20 20 20 20 20 | #&0F. 1630 | 00003540 20 20 20 20 53 45 44 0d 20 31 36 34 30 20 20 20 | SED. 1640 | 00003550 20 20 20 20 20 20 43 4c 43 0d 20 31 36 35 30 20 | CLC. 1650 | 00003560 20 20 20 20 20 20 20 20 41 44 43 20 23 26 39 30 | ADC #&90| 00003570 0d 20 31 36 36 30 20 20 20 20 20 20 20 20 20 41 |. 1660 A| 00003580 44 43 20 23 26 34 30 0d 20 31 36 37 30 20 20 20 |DC #&40. 1670 | 00003590 20 20 20 20 20 20 43 4c 44 0d 20 31 36 38 30 20 | CLD. 1680 | 000035a0 20 20 20 20 20 20 20 20 4a 4d 50 20 6f 73 77 72 | JMP oswr| 000035b0 63 68 20 20 20 20 5c 20 70 72 69 6e 74 20 6e 79 |ch \ print ny| 000035c0 62 62 6c 65 20 61 6e 64 20 72 65 74 75 72 6e 0d |bble and return.| 000035d0 20 31 36 39 30 20 2e 73 65 65 6b 62 6c 6f 63 6b | 1690 .seekblock| 000035e0 0d 20 31 37 30 30 20 20 20 20 20 20 20 20 20 45 |. 1700 E| 000035f0 51 55 42 20 26 30 30 20 20 20 20 20 20 5c 20 64 |QUB &00 \ d| 00003600 72 69 76 65 20 30 0d 20 31 37 31 30 20 20 20 20 |rive 0. 1710 | 00003610 20 20 20 20 20 45 51 55 44 20 26 30 30 20 20 20 | EQUD &00 | 00003620 20 20 20 5c 20 64 6f 65 73 20 6e 6f 74 20 6d 61 | \ does not ma| 00003630 74 74 65 72 0d 20 31 37 32 30 20 20 20 20 20 20 |tter. 1720 | 00003640 20 20 20 45 51 55 42 20 26 30 31 20 20 20 20 20 | EQUB &01 | 00003650 20 5c 20 31 20 70 61 72 61 6d 65 74 65 72 0d 20 | \ 1 parameter. | 00003660 31 37 33 30 20 20 20 20 20 20 20 20 20 45 51 55 |1730 EQU| 00003670 42 20 26 36 39 20 20 20 20 20 20 5c 20 73 65 65 |B &69 \ see| 00003680 6b 20 63 6f 6d 6d 61 6e 64 0d 20 31 37 34 30 20 |k command. 1740 | 00003690 20 20 20 20 20 20 20 20 45 51 55 42 20 26 30 30 | EQUB &00| 000036a0 20 20 20 20 20 20 5c 20 70 68 79 73 69 63 61 6c | \ physical| 000036b0 20 74 72 61 63 6b 0d 20 31 37 35 30 20 20 20 20 | track. 1750 | 000036c0 20 20 20 20 20 45 51 55 42 20 26 30 30 20 20 20 | EQUB &00 | 000036d0 20 20 20 5c 20 72 65 73 75 6c 74 20 62 79 74 65 | \ result byte| 000036e0 0d 20 31 37 36 30 20 2e 72 65 67 62 6c 6f 63 6b |. 1760 .regblock| 000036f0 0d 20 31 37 37 30 20 20 20 20 20 20 20 20 20 45 |. 1770 E| 00003700 51 55 42 20 26 30 30 20 20 20 20 20 20 5c 20 64 |QUB &00 \ d| 00003710 72 69 76 65 20 30 0d 20 31 37 38 30 20 20 20 20 |rive 0. 1780 | 00003720 20 20 20 20 20 45 51 55 44 20 26 30 30 20 20 20 | EQUD &00 | 00003730 20 20 20 5c 20 64 6f 65 73 20 6e 6f 74 20 6d 61 | \ does not ma| 00003740 74 74 65 72 0d 20 31 37 39 30 20 20 20 20 20 20 |tter. 1790 | 00003750 20 20 20 45 51 55 44 20 26 30 30 31 32 37 41 30 | EQUD &00127A0| 00003760 32 20 5c 20 77 72 69 74 65 20 73 70 65 63 69 61 |2 \ write specia| 00003770 6c 20 72 65 67 69 73 74 65 72 0d 20 31 38 30 30 |l register. 1800| 00003780 20 20 20 20 20 20 20 20 20 45 51 55 42 20 26 30 | EQUB &0| 00003790 30 20 20 20 20 20 20 5c 20 72 65 73 75 6c 74 20 |0 \ result | 000037a0 62 79 74 65 0d 20 31 38 31 30 20 2e 63 6f 70 79 |byte. 1810 .copy| 000037b0 62 6c 6f 63 6b 0d 20 31 38 32 30 20 20 20 20 20 |block. 1820 | 000037c0 20 20 20 20 45 51 55 42 20 26 30 30 20 20 20 20 | EQUB &00 | 000037d0 20 20 5c 20 64 72 69 76 65 20 30 0d 20 31 38 33 | \ drive 0. 183| 000037e0 30 20 20 20 20 20 20 20 20 20 45 51 55 44 20 62 |0 EQUD b| 000037f0 75 66 66 65 72 20 20 20 5c 20 61 64 64 72 65 73 |uffer \ addres| 00003800 73 20 6f 66 20 62 75 66 66 65 72 0d 20 31 38 34 |s of buffer. 184| 00003810 30 20 20 20 20 20 20 20 20 20 45 51 55 42 20 26 |0 EQUB &| 00003820 30 33 20 20 20 20 20 20 5c 20 33 20 70 61 72 61 |03 \ 3 para| 00003830 6d 65 74 65 72 73 0d 20 31 38 35 30 20 20 20 20 |meters. 1850 | 00003840 20 20 20 20 20 45 51 55 42 20 26 35 37 20 20 20 | EQUB &57 | 00003850 20 20 20 5c 20 72 65 61 64 20 64 61 74 61 20 6d | \ read data m| 00003860 75 6c 74 69 2d 73 65 63 74 6f 72 0d 20 31 38 36 |ulti-sector. 186| 00003870 30 20 20 20 20 20 20 20 20 20 45 51 55 42 20 26 |0 EQUB &| 00003880 30 30 20 20 20 20 20 20 5c 20 6c 6f 67 69 63 61 |00 \ logica| 00003890 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 20 |l track number. | 000038a0 31 38 37 30 20 20 20 20 20 20 20 20 20 45 51 55 |1870 EQU| 000038b0 42 20 26 30 30 20 20 20 20 20 20 5c 20 6c 6f 67 |B &00 \ log| 000038c0 69 63 61 6c 20 73 65 63 74 6f 72 20 6e 75 6d 62 |ical sector numb| 000038d0 65 72 0d 20 31 38 38 30 20 20 20 20 20 20 20 20 |er. 1880 | 000038e0 20 45 51 55 42 20 26 32 41 20 20 20 20 20 20 5c | EQUB &2A \| 000038f0 20 31 30 20 73 65 63 74 6f 72 73 20 6f 66 20 32 | 10 sectors of 2| 00003900 35 36 20 62 79 74 65 73 0d 20 31 38 39 30 20 20 |56 bytes. 1890 | 00003910 20 20 20 20 20 20 20 45 51 55 42 20 26 30 30 20 | EQUB &00 | 00003920 20 20 20 20 20 5c 20 72 65 73 75 6c 74 20 62 79 | \ result by| 00003930 74 65 0d 20 31 39 30 30 20 2e 66 6f 72 6d 62 6c |te. 1900 .formbl| 00003940 6f 63 6b 0d 20 31 39 31 30 20 20 20 20 20 20 20 |ock. 1910 | 00003950 20 20 45 51 55 42 20 26 30 30 20 20 20 20 20 20 | EQUB &00 | 00003960 5c 20 64 72 69 76 65 20 30 0d 20 31 39 32 30 20 |\ drive 0. 1920 | 00003970 20 20 20 20 20 20 20 20 45 51 55 44 20 74 61 62 | EQUD tab| 00003980 6c 65 20 20 20 20 5c 20 61 64 64 72 65 73 73 20 |le \ address | 00003990 6f 66 20 73 65 63 74 6f 72 20 74 61 62 6c 65 0d |of sector table.| 000039a0 20 31 39 33 30 20 20 20 20 20 20 20 20 20 45 51 | 1930 EQ| 000039b0 55 42 20 26 30 35 20 20 20 20 20 20 5c 20 35 20 |UB &05 \ 5 | 000039c0 70 61 72 61 6d 65 74 65 72 73 0d 20 31 39 34 30 |parameters. 1940| 000039d0 20 20 20 20 20 20 20 20 20 45 51 55 42 20 26 36 | EQUB &6| 000039e0 33 20 20 20 20 20 20 5c 20 66 6f 72 6d 61 74 20 |3 \ format | 000039f0 63 6f 6d 6d 61 6e 64 0d 20 31 39 35 30 20 20 20 |command. 1950 | 00003a00 20 20 20 20 20 20 45 51 55 42 20 26 30 30 20 20 | EQUB &00 | 00003a10 20 20 20 20 5c 20 70 68 79 73 69 63 61 6c 20 74 | \ physical t| 00003a20 72 61 63 6b 20 6e 75 6d 62 65 72 0d 20 31 39 36 |rack number. 196| 00003a30 30 20 20 20 20 20 20 20 20 20 45 51 55 42 20 26 |0 EQUB &| 00003a40 31 35 20 20 20 20 20 20 5c 20 67 61 70 20 33 20 |15 \ gap 3 | 00003a50 73 69 7a 65 0d 20 31 39 37 30 20 20 20 20 20 20 |size. 1970 | 00003a60 20 20 20 45 51 55 42 20 26 32 41 20 20 20 20 20 | EQUB &2A | 00003a70 20 5c 20 31 30 20 73 65 63 74 6f 72 73 20 6f 66 | \ 10 sectors of| 00003a80 20 32 35 36 20 62 79 74 65 73 0d 20 31 39 38 30 | 256 bytes. 1980| 00003a90 20 20 20 20 20 20 20 20 20 45 51 55 42 20 26 30 | EQUB &0| 00003aa0 30 20 20 20 20 20 20 5c 20 67 61 70 20 35 20 73 |0 \ gap 5 s| 00003ab0 69 7a 65 0d 20 31 39 39 30 20 20 20 20 20 20 20 |ize. 1990 | 00003ac0 20 20 45 51 55 42 20 26 31 30 20 20 20 20 20 20 | EQUB &10 | 00003ad0 5c 20 67 61 70 20 31 20 73 69 7a 65 0d 20 32 30 |\ gap 1 size. 20| 00003ae0 30 30 20 20 20 20 20 20 20 20 20 45 51 55 42 20 |00 EQUB | 00003af0 26 30 30 20 20 20 20 20 20 5c 20 72 65 73 75 6c |&00 \ resul| 00003b00 74 20 62 79 74 65 0d 20 32 30 31 30 20 2e 74 61 |t byte. 2010 .ta| 00003b10 62 6c 65 0d 20 32 30 32 30 20 20 20 20 20 20 20 |ble. 2020 | 00003b20 20 20 45 51 55 44 20 26 30 31 30 30 30 30 30 30 | EQUD &01000000| 00003b30 0d 20 32 30 33 30 20 20 20 20 20 20 20 20 20 45 |. 2030 E| 00003b40 51 55 44 20 26 30 31 30 31 30 30 30 30 0d 20 32 |QUD &01010000. 2| 00003b50 30 34 30 20 20 20 20 20 20 20 20 20 45 51 55 44 |040 EQUD| 00003b60 20 26 30 31 30 32 30 30 30 30 0d 20 32 30 35 30 | &01020000. 2050| 00003b70 20 20 20 20 20 20 20 20 20 45 51 55 44 20 26 30 | EQUD &0| 00003b80 31 30 33 30 30 30 30 0d 20 32 30 36 30 20 20 20 |1030000. 2060 | 00003b90 20 20 20 20 20 20 45 51 55 44 20 26 30 31 30 34 | EQUD &0104| 00003ba0 30 30 30 30 0d 20 32 30 37 30 20 20 20 20 20 20 |0000. 2070 | 00003bb0 20 20 20 45 51 55 44 20 26 30 31 30 35 30 30 30 | EQUD &0105000| 00003bc0 30 0d 20 32 30 38 30 20 20 20 20 20 20 20 20 20 |0. 2080 | 00003bd0 45 51 55 44 20 26 30 31 30 36 30 30 30 30 0d 20 |EQUD &01060000. | 00003be0 32 30 39 30 20 20 20 20 20 20 20 20 20 45 51 55 |2090 EQU| 00003bf0 44 20 26 30 31 30 37 30 30 30 30 0d 20 32 31 30 |D &01070000. 210| 00003c00 30 20 20 20 20 20 20 20 20 20 45 51 55 44 20 26 |0 EQUD &| 00003c10 30 31 30 38 30 30 30 30 0d 20 32 31 31 30 20 20 |01080000. 2110 | 00003c20 20 20 20 20 20 20 20 45 51 55 44 20 26 30 31 30 | EQUD &010| 00003c30 39 30 30 30 30 0d 20 32 31 32 30 20 2e 74 72 61 |90000. 2120 .tra| 00003c40 63 6b 0d 20 32 31 33 30 20 20 20 20 20 20 20 20 |ck. 2130 | 00003c50 20 45 51 55 42 20 26 30 30 20 20 20 20 20 20 5c | EQUB &00 \| 00003c60 20 6c 6f 67 69 63 61 6c 20 74 72 61 63 6b 20 6e | logical track n| 00003c70 75 6d 62 65 72 0d 20 32 31 34 30 20 5d 0d 20 32 |umber. 2140 ]. 2| 00003c80 31 35 30 20 4e 45 58 54 0d 20 32 31 36 30 20 50 |150 NEXT. 2160 P| 00003c90 52 49 4e 54 27 22 50 6c 61 63 65 20 34 30 20 74 |RINT'"Place 40 t| 00003ca0 72 61 63 6b 20 64 69 73 63 20 69 6e 20 38 30 20 |rack disc in 80 | 00003cb0 74 72 61 63 6b 20 64 72 69 76 65 20 30 22 0d 20 |track drive 0". | 00003cc0 32 31 37 30 20 50 52 49 4e 54 22 50 72 65 73 73 |2170 PRINT"Press| 00003cd0 20 53 70 61 63 65 62 61 72 20 74 6f 20 63 6f 6e | Spacebar to con| 00003ce0 76 65 72 74 20 74 6f 20 38 30 20 74 72 61 63 6b |vert to 80 track| 00003cf0 73 22 0d 20 32 31 38 30 20 52 45 50 45 41 54 0d |s". 2180 REPEAT.| 00003d00 20 32 31 39 30 20 55 4e 54 49 4c 20 47 45 54 20 | 2190 UNTIL GET | 00003d10 3d 20 33 32 0d 20 32 32 30 30 20 43 41 4c 4c 20 |= 32. 2200 CALL | 00003d20 6d 63 6f 64 65 0d |mcode.| 00003d26