Home » CEEFAX disks » telesoftware9.adl » 11-09-88/T\DFS05
11-09-88/T\DFS05
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: | 11-09-88/T\DFS05 |
Read OK: | ✔ |
File size: | 423D bytes |
Load address: | 0000 |
Exec address: | FFFFFFFF |
File contents
The Acorn DFS Osword commands - by - Gordon Horsington ---------------------------------------------------------- Module 5. Creating discs compatible with both 40 and 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 eighty track discs so that they work properly on both forty and eighty track disc drives. I will demonstrate how this can be done on an unswitched eighty track disc drive using an Osword &7F based program and a disc formatting program. I will then describe how the same dual format disc can be created with only a disc formatting program if a 40/80 track switchable disc drive is available. 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 figures 1 and 2 are in hexadecimal and I have used the term track density refers 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 a 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. Figure 2 illustrates one method of formatting a single density disc so that the same disc can be used with either a forty or an eighty track disc drive. 00 01 02 ... 12 13 14 15 16 ... 26 27 14 15 16 ... 25 26 27 | \-------------/ \----------------/ \-------------------------------/ | &01-&13 unused &14-&27 &14-&27 | 80 track density 80 track density 40 track density | Track &00, common to both track densities Figure 2. The format for 40/80 track discs ------------------------------------------ The disc can be divided into four regions. 1) Track &00, which is common to both forty and eighty track densities. 2) Tracks &01 to &13 (1 to 19 decimal) in eighty track density are unused. 3) Tracks &14 to &27 (20 to 39 decimal) used in eighty track density. 4) Tracks &14 to &27 (20 to 39 decimal) used in forty track density. The data stored on this type of dual format disc are stored on track &00 and tracks &14 to &27. The data on tracks &14 to &27 are stored twice, once in forty track density and once in eighty track density. Sectors &00 and &01 of track &00 are used to store the catalogue for the disc. The remaining sectors on track &00 give a total of 2k available for data. Tracks &14 to &27 have 50k available for data. This dual format disc makes 52k available for programs and data. This type of disc can be created on an eighty track disc drive by using a forty track disc formatting program to format the first forty tracks on a disc in an eighty track disc drive. You can use the program OFFSET introduced in module 3 if you want to optimise the logical sector offset. Store a 2k (&800 bytes) dummy !BOOT file to fill track &00 and a large (47.5k), locked dummy file to fill tracks &01 to &13. These files can be created with the following commands: *SAVE :0.$.!BOOT 1900+400 *SAVE :0.D.DUMMY 1900+BE00 *ACCESS :0.D.DUMMY L Up to 50k of data can then be stored on tracks &14 to &27 using the DFS star commands. Do not use the filenames $.!BOOT or D.DUMMY. When all the data, except the real !BOOT file, are stored on the disc then the dummy !BOOT file can be deleted and the real !BOOT file (which must not be longer than 2k) can be stored. Do not delete the dummy file D.DUMMY because this file is making sure that tracks &01 to &13 inclusive remain unused (see figure 2). When all the programs and data have been copied onto the disc then logical tracks &14 to &27 should be copied from the eighty track density physical tracks to the forty track density physical tracks. Physical track &14 (eighty track density) will be copied onto physical track &28 (eighty track density), physical track &15 will be copied onto physical track &2A and so on as shown in figure 3. Read physical track -> Format and write physical track &14 -> &28 &15 -> &2A &16 -> &2C &17 -> &2E . . . &25 -> &4B &26 -> &4C &27 -> &4E Figure 3. The required copying of physical tracks ------------------------------------------------- This copying will produce the format shown in figure 2. The following algorithm can be used to implement this idea using a disc which has had the first forty tracks formatted in an eighty track disc drive. It is important to format only the first forty tracks so that the DFS recognises the disc as a forty track disc even though it is used in an eighty track disc drive. Use *FORMAT 40 0 (or whatever is appropriate with your system). Do not use *FORMAT 80 0 and press Escape after forty tracks have been formatted because, if you do, the DFS will still recognise the disc as an eighty track disc even though only the first forty tracks have been formatted. 1) Start with physical track number &14 (decimal 20). 2) Read the sector IDs on the current physical track. These will be used to create the sector data for formatting the forty track copy. 3) Read all the data on the current track into a buffer. 4) Seek the current physical track * 2. This will be where the forty track copy will be written. 5) Write the physical track number (&14-&27) into the track register (number &12). This will allow the eighty track disc drive to write the data onto a track in the position it would use on a forty track disc drive. 6) Format the track found in step 4) using the sector data from step 2). 7) Write the contents of the buffer onto the newly formatted track. 8) Write the physical track number * 2 (&28-&4E) into the track register (number &12). This takes the disc controller back to the eighty track status. 9) Increment the track number. If it is less than &28 (decimal 40) then go back to 2) to duplicate the next track. This algorithm has been implemented in the program DUALDFS. You must use the program DUALDFS with an eighty track disc drive (drive &00) to convert a disc formatted as described above into a 40/80 track disc. The program will not work with copy-protected discs and you should only use it after you have made a backup copy of all the files on the disc you intend to convert. If you use DUALDFS and press the Escape key before it has finished the conversion you will only be able to use the disc on an eighty track disc drive. Do not attempt to use the program to make the conversion using a forty track disc drive. You have been warned to be careful with all the programs used to illustrate this series. 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. After using DUALDFS to create a dual format disc you must not use the command *COMPACT with the disc. It is a good idea stick a write-protect tab on all dual format discs. 10 REM: DUALDFS 20 osnewl=&FFE7 30 oswrch=&FFEE 40 osword=&FFF1 50 osbyte=&FFF4 60 DIM table &50 70 DIM mcode &500 80 DIM buffer &1000 90 FOR pass=0 TO 2 STEP 2 100 P%=mcode 110 [ OPT pass 120 JSR osnewl 130 .mainloop 140 JSR escape \ check escape flag 150 JSR sectorids \ read all sector ids 160 JSR read \ read all sectors 170 JSR seektwo \ seek source track * 2 180 LDA track \ source track number 190 JSR register \ write track register 200 JSR format \ format 2 * source track 210 JSR write \ write all sectors 220 LDA track \ load source track 230 ASL A \ *2 = physical track number 240 JSR register \ write track register 250 JSR printbyte \ print track number 260 INC track \ increment source track number 270 LDA track \ load source track number 280 CMP #40 \ all done? 290 BNE mainloop \ if not read next track 300 JSR osnewl 310 RTS \ return to BASIC 320 .escape 330 LDA &FF \ escape flag 340 BMI pressed \ bit 7 set if pressed 350 RTS 360 .pressed 370 LDA #&7E 380 JSR osbyte \ acknowledge Escape 390 BRK 400 BRK 410 EQUS "Escape" 420 BRK 430 .seektwo 440 LDA track \ source track number 450 ASL A \ *2 460 STA seekblock+7 \ physical track number 470 LDA #&7F 480 LDX #seekblock MOD 256 490 LDY #seekblock DIV 256 500 JSR osword 510 LDA seekblock+8 \ result 520 BNE seekerror \ = 0 if OK 530 RTS 540 .seekerror 550 BRK 560 BRK 570 EQUS "Seek error" 580 BRK 590 .format 600 LDA track \ source track number 610 STA formblock+7 \ store physical track 620 JSR register \ write track register 630 LDA #&7F 640 LDX #formblock MOD 256 650 LDY #formblock DIV 256 660 JSR osword 670 LDA formblock+12 \ result 680 BNE formerror \ = 0 if OK 690 RTS 700 .formerror 710 BRK 720 BRK 730 EQUS "Format error" 740 BRK 750 .register 760 STA regblock+8 \ value to put in register 770 LDA #&7F 780 LDX #regblock MOD 256 790 LDY #regblock DIV 256 800 JSR osword 810 LDA regblock+9 \ result 820 BNE regerror \ = 0 if OK 830 RTS 840 .regerror 850 BRK 860 BRK 870 EQUS "Special register error" 880 BRK 890 .sectorids 900 LDA track \ source track number 910 STA idsblock+7 \ store physical track 920 LDA #&7F 930 LDX #idsblock MOD 256 940 LDY #idsblock DIV 256 950 JSR osword 960 LDA idsblock+10 \ result 970 BNE idserror \ = 0 if OK 980 RTS 990 .idserror 1000 BRK 1010 BRK 1020 EQUS "Sector ID Error" 1030 BRK 1040 .read 1050 LDA track \ source track number 1060 STA copyblock+7 \ logical track number 1070 LDA #&53 \ read data multi-sector 1080 STA copyblock+6 1090 LDA #&7F 1100 LDX #copyblock MOD 256 1110 LDY #copyblock DIV 256 1120 JSR osword 1130 LDA copyblock+10 1140 BNE readerror 1150 RTS 1160 .readerror 1170 BRK 1180 BRK 1190 EQUS "Read error" 1200 BRK 1210 .write 1220 LDA #&4B \ write data multi-sector 1230 STA copyblock+6 1240 LDA #&7F 1250 LDX #copyblock MOD 256 1260 LDY #copyblock DIV 256 1270 JSR osword 1280 LDA copyblock+10 \ result 1290 BNE writeerror \ = 0 if OK 1300 RTS 1310 .writeerror 1320 BRK 1330 BRK 1340 EQUS "Write error" 1350 BRK 1360 .printbyte 1370 LDA track \ print source track number 1380 PHA 1390 LSR A 1400 LSR A 1410 LSR A 1420 LSR A 1430 JSR nybble \ print MS nybble 1440 PLA 1450 JSR nybble \ print LS nybble 1460 LDA #ASC(" ") 1470 JSR oswrch \ print space 1480 JMP oswrch \ print space 1490 .nybble 1500 AND #&0F 1510 SED 1520 CLC 1530 ADC #&90 1540 ADC #&40 1550 CLD 1560 JMP oswrch \ print nybble and return 1570 .seekblock 1580 EQUB &00 \ drive 0 1590 EQUD &00 \ does not matter 1600 EQUB &01 \ 1 parameter 1601 EQUB &69 \ seek command 1602 EQUB &00 \ physical track number 1603 EQUB &00 \ result 1610 .regblock 1620 EQUB &00 \ drive 0 1630 EQUD &00 \ does not matter 1640 EQUB &02 \ 2 parameters 1641 EQUB &7A \ write special register 1642 EQUB &12 \ track register, drive 0/2 1643 EQUB &00 \ value to be put in register 1650 EQUB &00 \ result 1660 .idsblock 1670 EQUB &00 \ drive 0 1680 EQUD table \ address of buffer 1690 EQUB &03 \ 3 parameters 1691 EQUB &5B \ read sector IDs command 1692 EQUB &00 \ physical track number 1693 EQUB &00 1700 EQUB &0A \ number of IDs 1701 EQUB &00 \ result 1710 .copyblock 1720 EQUB &00 \ drive 0 1730 EQUD buffer \ address of buffer 1740 EQUB &03 \ 3 parameters 1741 EQUB &57 \ read data multi-sector 1742 EQUB &00 \ logical track number 1743 EQUB &00 \ start logical sector number 1750 EQUB &2A \ 10 sectors of 256 bytes 1751 EQUB &00 \ result 1760 .formblock 1770 EQUB &00 \ drive 0 1780 EQUD table \ address of sector table 1790 EQUB &05 \ 5 parameters 1791 EQUB &63 \ format command 1792 EQUB &00 \ physical track number 1793 EQUB &15 \ gap 3 size 1800 EQUB &2A \ 10 sectors of 256 bytes 1801 EQUB &00 \ gap 5 size 1802 EQUB &10 \ gap 1 size 1803 EQUB &00 \ result 1810 .track 1820 EQUB 20 \ use tracks 20-39 1830 ] 1840 NEXT 1850 PRINT'"Place 40 track formatted 80 track disc" 1860 PRINT"in drive 0, and press Spacebar" 1870 REPEAT 1880 UNTIL GET = 32 1890 CALL mcode If you have a switched 40/80 track disc drive it is quite easy to produce dual format discs without using a conversion program such as DUALDFS. To produce a dual format disc you need to use a forty track formatter and to be very careful about the order in which files are saved on the dual format disc. The following algorith will produce dual formatted discs. 1) Switch the disc drive to 40 track mode. 2) Format a disc using a forty track formatter. 3) Switch the disc drive to 80 track mode. 4) Format the same disc again using the same forty track formatter. 5) Fill track &00 with a dummy !BOOT file using *SAVE !BOOT 1900+800 6) Fill tracks &01 to &13 with a locked dummy file. use the commands: *SAVE D.DUMMY 1900+BE00 *ACESS D.DUMMY L 7) Copy up to 50k of programs onto the disc. Don't use the filenames $.!BOOT or D.DUMMY. 8) Switch the disc drive to 40 track mode. 9) Copy the same files copied in step 7) onto the disc in exactly the same order. It is important that the order should be exactly the same. 10) Delete the dummy !BOOT file and store the real !BOOT file on the disc. The !BOOT file must not be longer than 2k. This method will produce exactly the same dual format disc as that produced by the program DUALDFS but it does require the use of a switched disc drive and a great deal of care in storing the files in the same order on both formats.
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 35 2e |-----..Module 5.| 00000080 20 43 72 65 61 74 69 6e 67 20 64 69 73 63 73 20 | Creating discs | 00000090 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 |compatible with | 000000a0 62 6f 74 68 20 34 30 20 61 6e 64 20 38 30 20 74 |both 40 and 80 t| 000000b0 72 61 63 6b 20 64 72 69 76 65 73 0d 2d 2d 2d 2d |rack drives.----| 000000c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000100 0d 0d 20 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2d 2d |.. +-------| 00000110 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000140 2d 2d 2d 2b 0d 20 20 20 20 20 20 7c 20 41 6c 6c |---+. | All| 00000150 20 74 68 65 20 44 46 53 20 6d 6f 64 75 6c 65 73 | the DFS modules| 00000160 20 69 6e 20 20 74 68 69 73 20 20 73 65 72 69 65 | in this serie| 00000170 73 20 20 75 73 65 20 70 72 6f 67 72 61 6d 73 20 |s use programs | 00000180 77 68 69 63 68 20 7c 0d 20 20 20 20 20 20 7c 20 |which |. | | 00000190 65 78 70 65 72 69 6d 65 6e 74 20 20 77 69 74 68 |experiment with| 000001a0 20 74 68 65 20 66 6f 72 6d 61 74 20 61 6e 64 20 | the format and | 000001b0 63 6f 6e 74 65 6e 74 73 20 6f 66 20 64 69 73 63 |contents of disc| 000001c0 73 2e 20 54 68 65 73 65 20 7c 0d 20 20 20 20 20 |s. These |. | 000001d0 20 7c 20 65 78 70 65 72 69 6d 65 6e 74 73 20 6d | | experiments m| 000001e0 61 79 20 20 68 61 76 65 20 64 69 73 61 73 74 65 |ay have disaste| 000001f0 72 6f 75 73 20 65 66 66 65 63 74 73 20 69 66 20 |rous effects if | 00000200 79 6f 75 20 75 73 65 20 61 6e 79 20 7c 0d 20 20 |you use any |. | 00000210 20 20 20 20 7c 20 6f 66 20 74 68 65 20 70 72 6f | | of the pro| 00000220 67 72 61 6d 73 20 20 6f 6e 20 20 64 69 73 63 73 |grams on discs| 00000230 20 20 77 68 69 63 68 20 73 74 6f 72 65 20 70 72 | which store pr| 00000240 6f 67 72 61 6d 73 20 6f 72 20 64 61 74 61 20 7c |ograms or data || 00000250 0d 20 20 20 20 20 20 7c 20 77 68 69 63 68 20 79 |. | which y| 00000260 6f 75 20 63 61 6e 6e 6f 74 20 61 66 66 6f 72 64 |ou cannot afford| 00000270 20 74 6f 20 6c 6f 73 65 2e 20 20 59 6f 75 20 20 | to lose. You | 00000280 73 68 6f 75 6c 64 20 20 66 69 72 73 74 20 74 72 |should first tr| 00000290 79 20 7c 0d 20 20 20 20 20 20 7c 20 6f 75 74 20 |y |. | out | 000002a0 20 74 68 65 20 20 70 72 6f 67 72 61 6d 73 20 20 | the programs | 000002b0 75 73 69 6e 67 20 20 64 69 73 63 73 20 20 74 68 |using discs th| 000002c0 61 74 20 20 68 61 76 65 20 65 69 74 68 65 72 20 |at have either | 000002d0 62 65 65 6e 20 7c 0d 20 20 20 20 20 20 7c 20 64 |been |. | d| 000002e0 75 70 6c 69 63 61 74 65 64 20 6f 72 2c 20 62 65 |uplicated or, be| 000002f0 74 74 65 72 20 73 74 69 6c 6c 2c 20 68 61 76 65 |tter still, have| 00000300 20 6e 6f 74 20 62 65 65 6e 20 75 73 65 64 20 61 | not been used a| 00000310 74 20 61 6c 6c 2e 20 20 7c 0d 20 20 20 20 20 20 |t all. |. | 00000320 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |+---------------| 00000330 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000350 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0d 0d 0d 49 |-----------+...I| 00000360 6e 20 74 68 69 73 20 6d 6f 64 75 6c 65 20 49 20 |n this module I | 00000370 77 69 6c 6c 20 65 78 61 6d 69 6e 65 20 74 68 65 |will examine the| 00000380 20 70 72 6f 62 6c 65 6d 20 6f 66 20 6d 6f 64 69 | problem of modi| 00000390 66 79 69 6e 67 20 65 69 67 68 74 79 20 74 72 61 |fying eighty tra| 000003a0 63 6b 20 64 69 73 63 73 0d 73 6f 20 74 68 61 74 |ck discs.so that| 000003b0 20 74 68 65 79 20 77 6f 72 6b 20 70 72 6f 70 65 | they work prope| 000003c0 72 6c 79 20 6f 6e 20 62 6f 74 68 20 66 6f 72 74 |rly on both fort| 000003d0 79 20 61 6e 64 20 65 69 67 68 74 79 20 74 72 61 |y and eighty tra| 000003e0 63 6b 20 64 69 73 63 20 64 72 69 76 65 73 2e 20 |ck disc drives. | 000003f0 49 0d 77 69 6c 6c 20 64 65 6d 6f 6e 73 74 72 61 |I.will demonstra| 00000400 74 65 20 68 6f 77 20 74 68 69 73 20 63 61 6e 20 |te how this can | 00000410 62 65 20 64 6f 6e 65 20 6f 6e 20 61 6e 20 75 6e |be done on an un| 00000420 73 77 69 74 63 68 65 64 20 65 69 67 68 74 79 20 |switched eighty | 00000430 74 72 61 63 6b 20 64 69 73 63 0d 64 72 69 76 65 |track disc.drive| 00000440 20 75 73 69 6e 67 20 61 6e 20 4f 73 77 6f 72 64 | using an Osword| 00000450 20 26 37 46 20 62 61 73 65 64 20 70 72 6f 67 72 | &7F based progr| 00000460 61 6d 20 61 6e 64 20 61 20 64 69 73 63 20 66 6f |am and a disc fo| 00000470 72 6d 61 74 74 69 6e 67 20 70 72 6f 67 72 61 6d |rmatting program| 00000480 2e 20 49 0d 77 69 6c 6c 20 74 68 65 6e 20 64 65 |. I.will then de| 00000490 73 63 72 69 62 65 20 68 6f 77 20 74 68 65 20 73 |scribe how the s| 000004a0 61 6d 65 20 64 75 61 6c 20 66 6f 72 6d 61 74 20 |ame dual format | 000004b0 64 69 73 63 20 63 61 6e 20 62 65 20 63 72 65 61 |disc can be crea| 000004c0 74 65 64 20 77 69 74 68 20 6f 6e 6c 79 0d 61 20 |ted with only.a | 000004d0 64 69 73 63 20 66 6f 72 6d 61 74 74 69 6e 67 20 |disc formatting | 000004e0 70 72 6f 67 72 61 6d 20 69 66 20 61 20 34 30 2f |program if a 40/| 000004f0 38 30 20 74 72 61 63 6b 20 73 77 69 74 63 68 61 |80 track switcha| 00000500 62 6c 65 20 64 69 73 63 20 64 72 69 76 65 20 69 |ble disc drive i| 00000510 73 0d 61 76 61 69 6c 61 62 6c 65 2e 0d 0d 46 6f |s.available...Fo| 00000520 72 74 79 20 74 72 61 63 6b 20 64 69 73 63 73 20 |rty track discs | 00000530 68 61 76 65 20 61 20 74 72 61 63 6b 20 64 65 6e |have a track den| 00000540 73 69 74 79 20 65 78 61 63 74 6c 79 20 6f 6e 65 |sity exactly one| 00000550 20 68 61 6c 66 20 6f 66 20 74 68 61 74 20 75 73 | half of that us| 00000560 65 64 20 62 79 0d 65 69 67 68 74 79 20 74 72 61 |ed by.eighty tra| 00000570 63 6b 20 64 69 73 63 73 2e 20 54 72 61 63 6b 20 |ck discs. Track | 00000580 26 30 30 20 6f 66 20 62 6f 74 68 20 66 6f 72 74 |&00 of both fort| 00000590 79 20 61 6e 64 20 65 69 67 68 74 79 20 74 72 61 |y and eighty tra| 000005a0 63 6b 20 64 69 73 63 73 20 73 68 61 72 65 0d 74 |ck discs share.t| 000005b0 68 65 20 73 61 6d 65 20 70 68 79 73 69 63 61 6c |he same physical| 000005c0 20 70 6f 73 69 74 69 6f 6e 20 61 73 20 74 68 65 | position as the| 000005d0 20 6f 75 74 65 72 20 74 72 61 63 6b 20 6f 6e 20 | outer track on | 000005e0 74 68 65 20 64 69 73 63 2e 20 54 72 61 63 6b 20 |the disc. Track | 000005f0 26 30 31 20 6f 6e 20 61 0d 66 6f 72 74 79 20 74 |&01 on a.forty t| 00000600 72 61 63 6b 20 64 69 73 63 20 69 73 20 69 6e 20 |rack disc is in | 00000610 74 68 65 20 73 61 6d 65 20 70 68 79 73 69 63 61 |the same physica| 00000620 6c 20 70 6f 73 69 74 69 6f 6e 20 61 73 20 74 72 |l position as tr| 00000630 61 63 6b 20 26 30 32 20 6f 6e 20 61 6e 0d 65 69 |ack &02 on an.ei| 00000640 67 68 74 79 20 74 72 61 63 6b 20 64 69 73 63 2c |ghty track disc,| 00000650 20 74 72 61 63 6b 20 26 30 32 20 69 73 20 69 6e | track &02 is in| 00000660 20 74 68 65 20 73 61 6d 65 20 70 6f 73 69 74 69 | the same positi| 00000670 6f 6e 20 61 73 20 74 72 61 63 6b 20 26 30 34 2c |on as track &04,| 00000680 20 61 6e 64 20 73 6f 0d 6f 6e 2e 20 54 68 65 20 | and so.on. The | 00000690 72 65 6c 61 74 69 76 65 20 70 6f 73 69 74 69 6f |relative positio| 000006a0 6e 20 6f 66 20 74 68 65 20 70 68 79 73 69 63 61 |n of the physica| 000006b0 6c 20 74 72 61 63 6b 73 20 6f 6e 20 66 6f 72 74 |l tracks on fort| 000006c0 79 20 61 6e 64 20 65 69 67 68 74 79 20 74 72 61 |y and eighty tra| 000006d0 63 6b 0d 64 69 73 63 73 20 69 73 20 73 68 6f 77 |ck.discs is show| 000006e0 6e 20 69 6e 20 66 69 67 75 72 65 20 31 2e 0d 0d |n in figure 1...| 000006f0 0d 34 30 54 3e 20 30 30 20 20 20 20 30 31 20 2e |.40T> 00 01 .| 00000700 2e 2e 20 30 39 20 20 20 20 30 41 20 20 20 20 30 |.. 09 0A 0| 00000710 42 20 2e 2e 2e 20 31 33 20 20 20 20 31 34 20 20 |B ... 13 14 | 00000720 20 20 31 35 20 2e 2e 2e 20 32 35 20 20 20 20 32 | 15 ... 25 2| 00000730 36 20 20 20 20 32 37 0d 38 30 54 3e 20 30 30 20 |6 27.80T> 00 | 00000740 30 31 20 30 32 20 2e 2e 2e 20 31 32 20 31 33 20 |01 02 ... 12 13 | 00000750 31 34 20 31 35 20 31 36 20 2e 2e 2e 20 32 36 20 |14 15 16 ... 26 | 00000760 32 37 20 32 38 20 32 39 20 32 41 20 2e 2e 2e 20 |27 28 29 2A ... | 00000770 34 41 20 34 42 20 34 43 20 34 44 20 34 45 20 34 |4A 4B 4C 4D 4E 4| 00000780 46 0d 0d 20 20 20 46 69 67 75 72 65 20 31 2e 20 |F.. Figure 1. | 00000790 54 68 65 20 72 65 6c 61 74 69 76 65 20 70 6f 73 |The relative pos| 000007a0 69 74 69 6f 6e 20 6f 66 20 74 72 61 63 6b 73 20 |ition of tracks | 000007b0 6f 6e 20 34 30 20 61 6e 64 20 38 30 20 74 72 61 |on 40 and 80 tra| 000007c0 63 6b 20 64 69 73 63 73 0d 20 20 20 2d 2d 2d 2d |ck discs. ----| 000007d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000800 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0d |--------------..| 00000810 0d 41 6c 6c 20 74 68 65 20 6e 75 6d 62 65 72 73 |.All the numbers| 00000820 20 69 6e 20 66 69 67 75 72 65 73 20 31 20 61 6e | in figures 1 an| 00000830 64 20 32 20 61 72 65 20 69 6e 20 68 65 78 61 64 |d 2 are in hexad| 00000840 65 63 69 6d 61 6c 20 61 6e 64 20 49 20 68 61 76 |ecimal and I hav| 00000850 65 20 75 73 65 64 20 74 68 65 0d 74 65 72 6d 20 |e used the.term | 00000860 74 72 61 63 6b 20 64 65 6e 73 69 74 79 20 72 65 |track density re| 00000870 66 65 72 73 20 74 6f 20 74 68 65 20 70 68 79 73 |fers to the phys| 00000880 69 63 61 6c 20 70 72 6f 78 69 6d 69 74 79 20 6f |ical proximity o| 00000890 66 20 74 68 65 20 74 72 61 63 6b 73 20 28 77 68 |f the tracks (wh| 000008a0 69 63 68 0d 61 72 65 20 63 6c 6f 73 65 72 20 74 |ich.are closer t| 000008b0 6f 67 65 74 68 65 72 20 6f 6e 20 38 30 20 74 72 |ogether on 80 tr| 000008c0 61 63 6b 20 64 69 73 63 73 29 2e 20 42 65 63 61 |ack discs). Beca| 000008d0 75 73 65 20 74 68 65 20 74 72 61 63 6b 20 64 65 |use the track de| 000008e0 6e 73 69 74 79 20 6f 66 20 61 6e 0d 65 69 67 68 |nsity of an.eigh| 000008f0 74 79 20 74 72 61 63 6b 20 64 69 73 63 20 69 73 |ty track disc is| 00000900 20 74 77 69 63 65 20 74 68 61 74 20 6f 66 20 61 | twice that of a| 00000910 20 66 6f 72 74 79 20 74 72 61 63 6b 20 64 69 73 | forty track dis| 00000920 63 2c 20 61 6e 20 65 69 67 68 74 79 20 74 72 61 |c, an eighty tra| 00000930 63 6b 0d 64 69 73 63 20 69 73 20 73 6f 6d 65 74 |ck.disc is somet| 00000940 69 6d 65 73 20 72 65 66 65 72 65 64 20 74 6f 20 |imes refered to | 00000950 61 73 20 64 6f 75 62 6c 65 20 64 65 6e 73 69 74 |as double densit| 00000960 79 20 65 76 65 6e 20 69 66 20 69 74 20 75 73 65 |y even if it use| 00000970 73 20 61 20 73 69 6e 67 6c 65 0d 64 65 6e 73 69 |s a single.densi| 00000980 74 79 20 66 6f 72 6d 61 74 2e 20 49 20 77 69 6c |ty format. I wil| 00000990 6c 20 6e 6f 74 20 72 65 66 65 72 20 74 6f 20 38 |l not refer to 8| 000009a0 30 20 74 72 61 63 6b 20 64 69 73 63 73 20 61 73 |0 track discs as| 000009b0 20 64 6f 75 62 6c 65 20 64 65 6e 73 69 74 79 0d | double density.| 000009c0 62 65 63 61 75 73 65 20 74 68 69 73 20 63 61 6e |because this can| 000009d0 20 62 65 20 63 6f 6e 66 75 73 65 64 20 77 69 74 | be confused wit| 000009e0 68 20 74 68 65 20 64 6f 75 62 6c 65 20 64 65 6e |h the double den| 000009f0 73 69 74 79 20 41 44 46 53 2c 20 77 68 69 63 68 |sity ADFS, which| 00000a00 20 63 61 6e 20 75 73 65 0d 38 30 20 74 72 61 63 | can use.80 trac| 00000a10 6b 20 64 69 73 63 73 20 69 6e 20 61 20 64 6f 75 |k discs in a dou| 00000a20 62 6c 65 20 64 65 6e 73 69 74 79 20 66 6f 72 6d |ble density form| 00000a30 61 74 2e 0d 0d 46 69 67 75 72 65 20 32 20 69 6c |at...Figure 2 il| 00000a40 6c 75 73 74 72 61 74 65 73 20 6f 6e 65 20 6d 65 |lustrates one me| 00000a50 74 68 6f 64 20 6f 66 20 66 6f 72 6d 61 74 74 69 |thod of formatti| 00000a60 6e 67 20 61 20 73 69 6e 67 6c 65 20 64 65 6e 73 |ng a single dens| 00000a70 69 74 79 20 64 69 73 63 20 73 6f 0d 74 68 61 74 |ity disc so.that| 00000a80 20 74 68 65 20 73 61 6d 65 20 64 69 73 63 20 63 | the same disc c| 00000a90 61 6e 20 62 65 20 75 73 65 64 20 77 69 74 68 20 |an be used with | 00000aa0 65 69 74 68 65 72 20 61 20 66 6f 72 74 79 20 6f |either a forty o| 00000ab0 72 20 61 6e 20 65 69 67 68 74 79 20 74 72 61 63 |r an eighty trac| 00000ac0 6b 0d 64 69 73 63 20 64 72 69 76 65 2e 0d 0d 0d |k.disc drive....| 00000ad0 30 30 20 30 31 20 30 32 20 2e 2e 2e 20 31 32 20 |00 01 02 ... 12 | 00000ae0 31 33 20 31 34 20 31 35 20 31 36 20 2e 2e 2e 20 |13 14 15 16 ... | 00000af0 32 36 20 32 37 20 31 34 20 20 20 20 31 35 20 20 |26 27 14 15 | 00000b00 20 20 31 36 20 2e 2e 2e 20 32 35 20 20 20 20 32 | 16 ... 25 2| 00000b10 36 20 20 20 20 32 37 0d 7c 20 20 5c 2d 2d 2d 2d |6 27.| \----| 00000b20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 20 5c 2d 2d 2d 2d |---------/ \----| 00000b30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 20 5c 2d |------------/ \-| 00000b40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000b50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 0d |--------------/.| 00000b60 7c 20 20 26 30 31 2d 26 31 33 20 75 6e 75 73 65 || &01-&13 unuse| 00000b70 64 20 20 20 20 20 20 20 20 26 31 34 2d 26 32 37 |d &14-&27| 00000b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000b90 20 20 20 26 31 34 2d 26 32 37 0d 7c 20 38 30 20 | &14-&27.| 80 | 00000ba0 74 72 61 63 6b 20 64 65 6e 73 69 74 79 20 20 38 |track density 8| 00000bb0 30 20 74 72 61 63 6b 20 64 65 6e 73 69 74 79 20 |0 track density | 00000bc0 20 20 20 20 20 20 20 20 20 34 30 20 74 72 61 63 | 40 trac| 00000bd0 6b 20 64 65 6e 73 69 74 79 0d 7c 0d 54 72 61 63 |k density.|.Trac| 00000be0 6b 20 26 30 30 2c 20 63 6f 6d 6d 6f 6e 20 74 6f |k &00, common to| 00000bf0 20 62 6f 74 68 20 74 72 61 63 6b 20 64 65 6e 73 | both track dens| 00000c00 69 74 69 65 73 0d 0d 20 20 20 20 20 20 20 20 20 |ities.. | 00000c10 20 20 20 46 69 67 75 72 65 20 32 2e 20 54 68 65 | Figure 2. The| 00000c20 20 66 6f 72 6d 61 74 20 66 6f 72 20 34 30 2f 38 | format for 40/8| 00000c30 30 20 74 72 61 63 6b 20 64 69 73 63 73 0d 20 20 |0 track discs. | 00000c40 20 20 20 20 20 20 20 20 20 20 2d 2d 2d 2d 2d 2d | ------| 00000c50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000c70 2d 2d 2d 2d 0d 0d 0d 54 68 65 20 64 69 73 63 20 |----...The disc | 00000c80 63 61 6e 20 62 65 20 64 69 76 69 64 65 64 20 69 |can be divided i| 00000c90 6e 74 6f 20 66 6f 75 72 20 72 65 67 69 6f 6e 73 |nto four regions| 00000ca0 2e 0d 0d 31 29 20 54 72 61 63 6b 20 26 30 30 2c |...1) Track &00,| 00000cb0 20 77 68 69 63 68 20 69 73 20 63 6f 6d 6d 6f 6e | which is common| 00000cc0 20 74 6f 20 62 6f 74 68 20 66 6f 72 74 79 20 61 | to both forty a| 00000cd0 6e 64 20 65 69 67 68 74 79 20 74 72 61 63 6b 20 |nd eighty track | 00000ce0 64 65 6e 73 69 74 69 65 73 2e 0d 32 29 20 54 72 |densities..2) Tr| 00000cf0 61 63 6b 73 20 26 30 31 20 74 6f 20 26 31 33 20 |acks &01 to &13 | 00000d00 28 31 20 74 6f 20 31 39 20 64 65 63 69 6d 61 6c |(1 to 19 decimal| 00000d10 29 20 69 6e 20 65 69 67 68 74 79 20 74 72 61 63 |) in eighty trac| 00000d20 6b 20 64 65 6e 73 69 74 79 20 61 72 65 20 75 6e |k density are un| 00000d30 75 73 65 64 2e 0d 33 29 20 54 72 61 63 6b 73 20 |used..3) Tracks | 00000d40 26 31 34 20 74 6f 20 26 32 37 20 28 32 30 20 74 |&14 to &27 (20 t| 00000d50 6f 20 33 39 20 64 65 63 69 6d 61 6c 29 20 75 73 |o 39 decimal) us| 00000d60 65 64 20 69 6e 20 65 69 67 68 74 79 20 74 72 61 |ed in eighty tra| 00000d70 63 6b 20 64 65 6e 73 69 74 79 2e 0d 34 29 20 54 |ck density..4) T| 00000d80 72 61 63 6b 73 20 26 31 34 20 74 6f 20 26 32 37 |racks &14 to &27| 00000d90 20 28 32 30 20 74 6f 20 33 39 20 64 65 63 69 6d | (20 to 39 decim| 00000da0 61 6c 29 20 75 73 65 64 20 69 6e 20 66 6f 72 74 |al) used in fort| 00000db0 79 20 74 72 61 63 6b 20 64 65 6e 73 69 74 79 2e |y track density.| 00000dc0 0d 0d 0d 54 68 65 20 64 61 74 61 20 73 74 6f 72 |...The data stor| 00000dd0 65 64 20 6f 6e 20 74 68 69 73 20 74 79 70 65 20 |ed on this type | 00000de0 6f 66 20 64 75 61 6c 20 66 6f 72 6d 61 74 20 64 |of dual format d| 00000df0 69 73 63 20 61 72 65 20 73 74 6f 72 65 64 20 6f |isc are stored o| 00000e00 6e 20 74 72 61 63 6b 20 26 30 30 0d 61 6e 64 20 |n track &00.and | 00000e10 74 72 61 63 6b 73 20 26 31 34 20 74 6f 20 26 32 |tracks &14 to &2| 00000e20 37 2e 20 54 68 65 20 64 61 74 61 20 6f 6e 20 74 |7. The data on t| 00000e30 72 61 63 6b 73 20 26 31 34 20 74 6f 20 26 32 37 |racks &14 to &27| 00000e40 20 61 72 65 20 73 74 6f 72 65 64 20 74 77 69 63 | are stored twic| 00000e50 65 2c 0d 6f 6e 63 65 20 69 6e 20 66 6f 72 74 79 |e,.once in forty| 00000e60 20 74 72 61 63 6b 20 64 65 6e 73 69 74 79 20 61 | track density a| 00000e70 6e 64 20 6f 6e 63 65 20 69 6e 20 65 69 67 68 74 |nd once in eight| 00000e80 79 20 74 72 61 63 6b 20 64 65 6e 73 69 74 79 2e |y track density.| 00000e90 20 53 65 63 74 6f 72 73 20 26 30 30 0d 61 6e 64 | Sectors &00.and| 00000ea0 20 26 30 31 20 6f 66 20 74 72 61 63 6b 20 26 30 | &01 of track &0| 00000eb0 30 20 61 72 65 20 75 73 65 64 20 74 6f 20 73 74 |0 are used to st| 00000ec0 6f 72 65 20 74 68 65 20 63 61 74 61 6c 6f 67 75 |ore the catalogu| 00000ed0 65 20 66 6f 72 20 74 68 65 20 64 69 73 63 2e 20 |e for the disc. | 00000ee0 54 68 65 0d 72 65 6d 61 69 6e 69 6e 67 20 73 65 |The.remaining se| 00000ef0 63 74 6f 72 73 20 6f 6e 20 74 72 61 63 6b 20 26 |ctors on track &| 00000f00 30 30 20 67 69 76 65 20 61 20 74 6f 74 61 6c 20 |00 give a total | 00000f10 6f 66 20 32 6b 20 61 76 61 69 6c 61 62 6c 65 20 |of 2k available | 00000f20 66 6f 72 20 64 61 74 61 2e 0d 54 72 61 63 6b 73 |for data..Tracks| 00000f30 20 26 31 34 20 74 6f 20 26 32 37 20 68 61 76 65 | &14 to &27 have| 00000f40 20 35 30 6b 20 61 76 61 69 6c 61 62 6c 65 20 66 | 50k available f| 00000f50 6f 72 20 64 61 74 61 2e 20 54 68 69 73 20 64 75 |or data. This du| 00000f60 61 6c 20 66 6f 72 6d 61 74 20 64 69 73 63 20 6d |al format disc m| 00000f70 61 6b 65 73 0d 35 32 6b 20 61 76 61 69 6c 61 62 |akes.52k availab| 00000f80 6c 65 20 66 6f 72 20 70 72 6f 67 72 61 6d 73 20 |le for programs | 00000f90 61 6e 64 20 64 61 74 61 2e 0d 0d 54 68 69 73 20 |and data...This | 00000fa0 74 79 70 65 20 6f 66 20 64 69 73 63 20 63 61 6e |type of disc can| 00000fb0 20 62 65 20 63 72 65 61 74 65 64 20 6f 6e 20 61 | be created on a| 00000fc0 6e 20 65 69 67 68 74 79 20 74 72 61 63 6b 20 64 |n eighty track d| 00000fd0 69 73 63 20 64 72 69 76 65 20 62 79 20 75 73 69 |isc drive by usi| 00000fe0 6e 67 20 61 0d 66 6f 72 74 79 20 74 72 61 63 6b |ng a.forty track| 00000ff0 20 64 69 73 63 20 66 6f 72 6d 61 74 74 69 6e 67 | disc formatting| 00001000 20 70 72 6f 67 72 61 6d 20 74 6f 20 66 6f 72 6d | program to form| 00001010 61 74 20 74 68 65 20 66 69 72 73 74 20 66 6f 72 |at the first for| 00001020 74 79 20 74 72 61 63 6b 73 20 6f 6e 20 61 0d 64 |ty tracks on a.d| 00001030 69 73 63 20 69 6e 20 61 6e 20 65 69 67 68 74 79 |isc in an eighty| 00001040 20 74 72 61 63 6b 20 64 69 73 63 20 64 72 69 76 | track disc driv| 00001050 65 2e 20 59 6f 75 20 63 61 6e 20 75 73 65 20 74 |e. You can use t| 00001060 68 65 20 70 72 6f 67 72 61 6d 20 4f 46 46 53 45 |he program OFFSE| 00001070 54 0d 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 |T.introduced in | 00001080 6d 6f 64 75 6c 65 20 33 20 69 66 20 79 6f 75 20 |module 3 if you | 00001090 77 61 6e 74 20 74 6f 20 6f 70 74 69 6d 69 73 65 |want to optimise| 000010a0 20 74 68 65 20 6c 6f 67 69 63 61 6c 20 73 65 63 | the logical sec| 000010b0 74 6f 72 20 6f 66 66 73 65 74 2e 0d 53 74 6f 72 |tor offset..Stor| 000010c0 65 20 61 20 32 6b 20 28 26 38 30 30 20 62 79 74 |e a 2k (&800 byt| 000010d0 65 73 29 20 64 75 6d 6d 79 20 21 42 4f 4f 54 20 |es) dummy !BOOT | 000010e0 66 69 6c 65 20 74 6f 20 66 69 6c 6c 20 74 72 61 |file to fill tra| 000010f0 63 6b 20 26 30 30 20 61 6e 64 20 61 20 6c 61 72 |ck &00 and a lar| 00001100 67 65 0d 28 34 37 2e 35 6b 29 2c 20 6c 6f 63 6b |ge.(47.5k), lock| 00001110 65 64 20 64 75 6d 6d 79 20 66 69 6c 65 20 74 6f |ed dummy file to| 00001120 20 66 69 6c 6c 20 74 72 61 63 6b 73 20 26 30 31 | fill tracks &01| 00001130 20 74 6f 20 26 31 33 2e 20 54 68 65 73 65 20 66 | to &13. These f| 00001140 69 6c 65 73 20 63 61 6e 20 62 65 0d 63 72 65 61 |iles can be.crea| 00001150 74 65 64 20 77 69 74 68 20 74 68 65 20 66 6f 6c |ted with the fol| 00001160 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 3a |lowing commands:| 00001170 0d 0d 0d 2a 53 41 56 45 20 3a 30 2e 24 2e 21 42 |...*SAVE :0.$.!B| 00001180 4f 4f 54 20 31 39 30 30 2b 34 30 30 0d 2a 53 41 |OOT 1900+400.*SA| 00001190 56 45 20 3a 30 2e 44 2e 44 55 4d 4d 59 20 31 39 |VE :0.D.DUMMY 19| 000011a0 30 30 2b 42 45 30 30 0d 2a 41 43 43 45 53 53 20 |00+BE00.*ACCESS | 000011b0 3a 30 2e 44 2e 44 55 4d 4d 59 20 4c 0d 0d 0d 55 |:0.D.DUMMY L...U| 000011c0 70 20 74 6f 20 35 30 6b 20 6f 66 20 64 61 74 61 |p to 50k of data| 000011d0 20 63 61 6e 20 74 68 65 6e 20 62 65 20 73 74 6f | can then be sto| 000011e0 72 65 64 20 6f 6e 20 74 72 61 63 6b 73 20 26 31 |red on tracks &1| 000011f0 34 20 74 6f 20 26 32 37 20 75 73 69 6e 67 20 74 |4 to &27 using t| 00001200 68 65 20 44 46 53 0d 73 74 61 72 20 63 6f 6d 6d |he DFS.star comm| 00001210 61 6e 64 73 2e 20 44 6f 20 6e 6f 74 20 75 73 65 |ands. Do not use| 00001220 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 73 20 24 | the filenames $| 00001230 2e 21 42 4f 4f 54 20 6f 72 20 44 2e 44 55 4d 4d |.!BOOT or D.DUMM| 00001240 59 2e 20 57 68 65 6e 20 61 6c 6c 20 74 68 65 0d |Y. When all the.| 00001250 64 61 74 61 2c 20 65 78 63 65 70 74 20 74 68 65 |data, except the| 00001260 20 72 65 61 6c 20 21 42 4f 4f 54 20 66 69 6c 65 | real !BOOT file| 00001270 2c 20 61 72 65 20 73 74 6f 72 65 64 20 6f 6e 20 |, are stored on | 00001280 74 68 65 20 64 69 73 63 20 74 68 65 6e 20 74 68 |the disc then th| 00001290 65 20 64 75 6d 6d 79 0d 21 42 4f 4f 54 20 66 69 |e dummy.!BOOT fi| 000012a0 6c 65 20 63 61 6e 20 62 65 20 64 65 6c 65 74 65 |le can be delete| 000012b0 64 20 61 6e 64 20 74 68 65 20 72 65 61 6c 20 21 |d and the real !| 000012c0 42 4f 4f 54 20 66 69 6c 65 20 28 77 68 69 63 68 |BOOT file (which| 000012d0 20 6d 75 73 74 20 6e 6f 74 20 62 65 0d 6c 6f 6e | must not be.lon| 000012e0 67 65 72 20 74 68 61 6e 20 32 6b 29 20 63 61 6e |ger than 2k) can| 000012f0 20 62 65 20 73 74 6f 72 65 64 2e 20 44 6f 20 6e | be stored. Do n| 00001300 6f 74 20 64 65 6c 65 74 65 20 74 68 65 20 64 75 |ot delete the du| 00001310 6d 6d 79 20 66 69 6c 65 20 44 2e 44 55 4d 4d 59 |mmy file D.DUMMY| 00001320 0d 62 65 63 61 75 73 65 20 74 68 69 73 20 66 69 |.because this fi| 00001330 6c 65 20 69 73 20 6d 61 6b 69 6e 67 20 73 75 72 |le is making sur| 00001340 65 20 74 68 61 74 20 74 72 61 63 6b 73 20 26 30 |e that tracks &0| 00001350 31 20 74 6f 20 26 31 33 20 69 6e 63 6c 75 73 69 |1 to &13 inclusi| 00001360 76 65 20 72 65 6d 61 69 6e 0d 75 6e 75 73 65 64 |ve remain.unused| 00001370 20 28 73 65 65 20 66 69 67 75 72 65 20 32 29 2e | (see figure 2).| 00001380 0d 0d 57 68 65 6e 20 61 6c 6c 20 74 68 65 20 70 |..When all the p| 00001390 72 6f 67 72 61 6d 73 20 61 6e 64 20 64 61 74 61 |rograms and data| 000013a0 20 68 61 76 65 20 62 65 65 6e 20 63 6f 70 69 65 | have been copie| 000013b0 64 20 6f 6e 74 6f 20 74 68 65 20 64 69 73 63 20 |d onto the disc | 000013c0 74 68 65 6e 20 6c 6f 67 69 63 61 6c 0d 74 72 61 |then logical.tra| 000013d0 63 6b 73 20 26 31 34 20 74 6f 20 26 32 37 20 73 |cks &14 to &27 s| 000013e0 68 6f 75 6c 64 20 62 65 20 63 6f 70 69 65 64 20 |hould be copied | 000013f0 66 72 6f 6d 20 74 68 65 20 65 69 67 68 74 79 20 |from the eighty | 00001400 74 72 61 63 6b 20 64 65 6e 73 69 74 79 20 70 68 |track density ph| 00001410 79 73 69 63 61 6c 0d 74 72 61 63 6b 73 20 74 6f |ysical.tracks to| 00001420 20 74 68 65 20 66 6f 72 74 79 20 74 72 61 63 6b | the forty track| 00001430 20 64 65 6e 73 69 74 79 20 70 68 79 73 69 63 61 | density physica| 00001440 6c 20 74 72 61 63 6b 73 2e 20 50 68 79 73 69 63 |l tracks. Physic| 00001450 61 6c 20 74 72 61 63 6b 20 26 31 34 0d 28 65 69 |al track &14.(ei| 00001460 67 68 74 79 20 74 72 61 63 6b 20 64 65 6e 73 69 |ghty track densi| 00001470 74 79 29 20 77 69 6c 6c 20 62 65 20 63 6f 70 69 |ty) will be copi| 00001480 65 64 20 6f 6e 74 6f 20 70 68 79 73 69 63 61 6c |ed onto physical| 00001490 20 74 72 61 63 6b 20 26 32 38 20 28 65 69 67 68 | track &28 (eigh| 000014a0 74 79 0d 74 72 61 63 6b 20 64 65 6e 73 69 74 79 |ty.track density| 000014b0 29 2c 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 |), physical trac| 000014c0 6b 20 26 31 35 20 77 69 6c 6c 20 62 65 20 63 6f |k &15 will be co| 000014d0 70 69 65 64 20 6f 6e 74 6f 20 70 68 79 73 69 63 |pied onto physic| 000014e0 61 6c 20 74 72 61 63 6b 20 26 32 41 0d 61 6e 64 |al track &2A.and| 000014f0 20 73 6f 20 6f 6e 20 61 73 20 73 68 6f 77 6e 20 | so on as shown | 00001500 69 6e 20 66 69 67 75 72 65 20 33 2e 0d 0d 0d 20 |in figure 3.... | 00001510 20 20 20 20 20 20 20 20 20 20 20 52 65 61 64 20 | Read | 00001520 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b 20 2d |physical track -| 00001530 3e 20 46 6f 72 6d 61 74 20 61 6e 64 20 77 72 69 |> Format and wri| 00001540 74 65 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 |te physical trac| 00001550 6b 0d 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 |k.. | 00001560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 | &| 00001570 31 34 20 2d 3e 20 26 32 38 0d 20 20 20 20 20 20 |14 -> &28. | 00001580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001590 20 20 20 20 20 20 26 31 35 20 2d 3e 20 26 32 41 | &15 -> &2A| 000015a0 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 000015b0 20 20 20 20 20 20 20 20 20 20 20 20 20 26 31 36 | &16| 000015c0 20 2d 3e 20 26 32 43 0d 20 20 20 20 20 20 20 20 | -> &2C. | 000015d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000015e0 20 20 20 20 26 31 37 20 2d 3e 20 26 32 45 0d 20 | &17 -> &2E. | 000015f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e | .| 00001610 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00001620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001630 20 2e 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 | .. | 00001640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001650 20 20 20 2e 0d 20 20 20 20 20 20 20 20 20 20 20 | .. | 00001660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001670 20 26 32 35 20 2d 3e 20 26 34 42 0d 20 20 20 20 | &25 -> &4B. | 00001680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001690 20 20 20 20 20 20 20 20 26 32 36 20 2d 3e 20 26 | &26 -> &| 000016a0 34 43 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 |4C. | 000016b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 | &| 000016c0 32 37 20 2d 3e 20 26 34 45 0d 0d 20 20 20 20 20 |27 -> &4E.. | 000016d0 20 20 20 20 20 20 46 69 67 75 72 65 20 33 2e 20 | Figure 3. | 000016e0 54 68 65 20 72 65 71 75 69 72 65 64 20 63 6f 70 |The required cop| 000016f0 79 69 6e 67 20 6f 66 20 70 68 79 73 69 63 61 6c |ying of physical| 00001700 20 74 72 61 63 6b 73 0d 20 20 20 20 20 20 20 20 | tracks. | 00001710 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------| 00001720 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00001740 2d 2d 2d 2d 0d 0d 0d 54 68 69 73 20 63 6f 70 79 |----...This copy| 00001750 69 6e 67 20 77 69 6c 6c 20 70 72 6f 64 75 63 65 |ing will produce| 00001760 20 74 68 65 20 66 6f 72 6d 61 74 20 73 68 6f 77 | the format show| 00001770 6e 20 69 6e 20 66 69 67 75 72 65 20 32 2e 20 54 |n in figure 2. T| 00001780 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0d 61 6c 67 |he following.alg| 00001790 6f 72 69 74 68 6d 20 63 61 6e 20 62 65 20 75 73 |orithm can be us| 000017a0 65 64 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 |ed to implement | 000017b0 74 68 69 73 20 69 64 65 61 20 75 73 69 6e 67 20 |this idea using | 000017c0 61 20 64 69 73 63 20 77 68 69 63 68 20 68 61 73 |a disc which has| 000017d0 20 68 61 64 0d 74 68 65 20 66 69 72 73 74 20 66 | had.the first f| 000017e0 6f 72 74 79 20 74 72 61 63 6b 73 20 66 6f 72 6d |orty tracks form| 000017f0 61 74 74 65 64 20 69 6e 20 61 6e 20 65 69 67 68 |atted in an eigh| 00001800 74 79 20 74 72 61 63 6b 20 64 69 73 63 20 64 72 |ty track disc dr| 00001810 69 76 65 2e 20 49 74 20 69 73 0d 69 6d 70 6f 72 |ive. It is.impor| 00001820 74 61 6e 74 20 74 6f 20 66 6f 72 6d 61 74 20 6f |tant to format o| 00001830 6e 6c 79 20 74 68 65 20 66 69 72 73 74 20 66 6f |nly the first fo| 00001840 72 74 79 20 74 72 61 63 6b 73 20 73 6f 20 74 68 |rty tracks so th| 00001850 61 74 20 74 68 65 20 44 46 53 0d 72 65 63 6f 67 |at the DFS.recog| 00001860 6e 69 73 65 73 20 74 68 65 20 64 69 73 63 20 61 |nises the disc a| 00001870 73 20 61 20 66 6f 72 74 79 20 74 72 61 63 6b 20 |s a forty track | 00001880 64 69 73 63 20 65 76 65 6e 20 74 68 6f 75 67 68 |disc even though| 00001890 20 69 74 20 69 73 20 75 73 65 64 20 69 6e 20 61 | it is used in a| 000018a0 6e 0d 65 69 67 68 74 79 20 74 72 61 63 6b 20 64 |n.eighty track d| 000018b0 69 73 63 20 64 72 69 76 65 2e 20 55 73 65 20 2a |isc drive. Use *| 000018c0 46 4f 52 4d 41 54 20 34 30 20 30 20 28 6f 72 20 |FORMAT 40 0 (or | 000018d0 77 68 61 74 65 76 65 72 20 69 73 20 61 70 70 72 |whatever is appr| 000018e0 6f 70 72 69 61 74 65 20 77 69 74 68 0d 79 6f 75 |opriate with.you| 000018f0 72 20 73 79 73 74 65 6d 29 2e 20 44 6f 20 6e 6f |r system). Do no| 00001900 74 20 75 73 65 20 2a 46 4f 52 4d 41 54 20 38 30 |t use *FORMAT 80| 00001910 20 30 20 61 6e 64 20 70 72 65 73 73 20 45 73 63 | 0 and press Esc| 00001920 61 70 65 20 61 66 74 65 72 20 66 6f 72 74 79 20 |ape after forty | 00001930 74 72 61 63 6b 73 0d 68 61 76 65 20 62 65 65 6e |tracks.have been| 00001940 20 66 6f 72 6d 61 74 74 65 64 20 62 65 63 61 75 | formatted becau| 00001950 73 65 2c 20 69 66 20 79 6f 75 20 64 6f 2c 20 74 |se, if you do, t| 00001960 68 65 20 44 46 53 20 77 69 6c 6c 20 73 74 69 6c |he DFS will stil| 00001970 6c 20 72 65 63 6f 67 6e 69 73 65 20 74 68 65 0d |l recognise the.| 00001980 64 69 73 63 20 61 73 20 61 6e 20 65 69 67 68 74 |disc as an eight| 00001990 79 20 74 72 61 63 6b 20 64 69 73 63 20 65 76 65 |y track disc eve| 000019a0 6e 20 74 68 6f 75 67 68 20 6f 6e 6c 79 20 74 68 |n though only th| 000019b0 65 20 66 69 72 73 74 20 66 6f 72 74 79 20 74 72 |e first forty tr| 000019c0 61 63 6b 73 20 68 61 76 65 0d 62 65 65 6e 20 66 |acks have.been f| 000019d0 6f 72 6d 61 74 74 65 64 2e 0d 0d 0d 31 29 20 53 |ormatted....1) S| 000019e0 74 61 72 74 20 77 69 74 68 20 70 68 79 73 69 63 |tart with physic| 000019f0 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 20 |al track number | 00001a00 26 31 34 20 28 64 65 63 69 6d 61 6c 20 32 30 29 |&14 (decimal 20)| 00001a10 2e 0d 0d 32 29 20 52 65 61 64 20 74 68 65 20 73 |...2) Read the s| 00001a20 65 63 74 6f 72 20 49 44 73 20 6f 6e 20 74 68 65 |ector IDs on the| 00001a30 20 63 75 72 72 65 6e 74 20 70 68 79 73 69 63 61 | current physica| 00001a40 6c 20 74 72 61 63 6b 2e 20 54 68 65 73 65 20 77 |l track. These w| 00001a50 69 6c 6c 20 62 65 20 75 73 65 64 0d 20 20 20 74 |ill be used. t| 00001a60 6f 20 63 72 65 61 74 65 20 74 68 65 20 73 65 63 |o create the sec| 00001a70 74 6f 72 20 64 61 74 61 20 66 6f 72 20 66 6f 72 |tor data for for| 00001a80 6d 61 74 74 69 6e 67 20 74 68 65 20 66 6f 72 74 |matting the fort| 00001a90 79 20 74 72 61 63 6b 20 63 6f 70 79 2e 0d 0d 33 |y track copy...3| 00001aa0 29 20 52 65 61 64 20 61 6c 6c 20 74 68 65 20 64 |) Read all the d| 00001ab0 61 74 61 20 6f 6e 20 74 68 65 20 63 75 72 72 65 |ata on the curre| 00001ac0 6e 74 20 74 72 61 63 6b 20 69 6e 74 6f 20 61 20 |nt track into a | 00001ad0 62 75 66 66 65 72 2e 0d 0d 34 29 20 53 65 65 6b |buffer...4) Seek| 00001ae0 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 68 79 | the current phy| 00001af0 73 69 63 61 6c 20 74 72 61 63 6b 20 2a 20 32 2e |sical track * 2.| 00001b00 20 54 68 69 73 20 77 69 6c 6c 20 62 65 20 77 68 | This will be wh| 00001b10 65 72 65 20 74 68 65 20 66 6f 72 74 79 0d 20 20 |ere the forty. | 00001b20 20 74 72 61 63 6b 20 63 6f 70 79 20 77 69 6c 6c | track copy will| 00001b30 20 62 65 20 77 72 69 74 74 65 6e 2e 0d 0d 35 29 | be written...5)| 00001b40 20 57 72 69 74 65 20 74 68 65 20 70 68 79 73 69 | Write the physi| 00001b50 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 |cal track number| 00001b60 20 28 26 31 34 2d 26 32 37 29 20 69 6e 74 6f 20 | (&14-&27) into | 00001b70 74 68 65 20 74 72 61 63 6b 20 72 65 67 69 73 74 |the track regist| 00001b80 65 72 0d 20 20 20 28 6e 75 6d 62 65 72 20 26 31 |er. (number &1| 00001b90 32 29 2e 20 54 68 69 73 20 77 69 6c 6c 20 61 6c |2). This will al| 00001ba0 6c 6f 77 20 74 68 65 20 65 69 67 68 74 79 20 74 |low the eighty t| 00001bb0 72 61 63 6b 20 64 69 73 63 20 64 72 69 76 65 20 |rack disc drive | 00001bc0 74 6f 20 77 72 69 74 65 20 74 68 65 0d 20 20 20 |to write the. | 00001bd0 64 61 74 61 20 6f 6e 74 6f 20 61 20 74 72 61 63 |data onto a trac| 00001be0 6b 20 69 6e 20 74 68 65 20 70 6f 73 69 74 69 6f |k in the positio| 00001bf0 6e 20 69 74 20 77 6f 75 6c 64 20 75 73 65 20 6f |n it would use o| 00001c00 6e 20 61 20 66 6f 72 74 79 20 74 72 61 63 6b 20 |n a forty track | 00001c10 64 69 73 63 0d 20 20 20 64 72 69 76 65 2e 0d 0d |disc. drive...| 00001c20 36 29 20 46 6f 72 6d 61 74 20 74 68 65 20 74 72 |6) Format the tr| 00001c30 61 63 6b 20 66 6f 75 6e 64 20 69 6e 20 73 74 65 |ack found in ste| 00001c40 70 20 34 29 20 75 73 69 6e 67 20 74 68 65 20 73 |p 4) using the s| 00001c50 65 63 74 6f 72 20 64 61 74 61 20 66 72 6f 6d 20 |ector data from | 00001c60 73 74 65 70 20 32 29 2e 0d 0d 37 29 20 57 72 69 |step 2)...7) Wri| 00001c70 74 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 |te the contents | 00001c80 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 6f 6e |of the buffer on| 00001c90 74 6f 20 74 68 65 20 6e 65 77 6c 79 20 66 6f 72 |to the newly for| 00001ca0 6d 61 74 74 65 64 20 74 72 61 63 6b 2e 0d 0d 38 |matted track...8| 00001cb0 29 20 57 72 69 74 65 20 74 68 65 20 70 68 79 73 |) Write the phys| 00001cc0 69 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 |ical track numbe| 00001cd0 72 20 2a 20 32 20 28 26 32 38 2d 26 34 45 29 20 |r * 2 (&28-&4E) | 00001ce0 69 6e 74 6f 20 74 68 65 20 74 72 61 63 6b 20 72 |into the track r| 00001cf0 65 67 69 73 74 65 72 0d 20 20 20 28 6e 75 6d 62 |egister. (numb| 00001d00 65 72 20 26 31 32 29 2e 20 54 68 69 73 20 74 61 |er &12). This ta| 00001d10 6b 65 73 20 74 68 65 20 64 69 73 63 20 63 6f 6e |kes the disc con| 00001d20 74 72 6f 6c 6c 65 72 20 62 61 63 6b 20 74 6f 20 |troller back to | 00001d30 74 68 65 20 65 69 67 68 74 79 20 74 72 61 63 6b |the eighty track| 00001d40 0d 20 20 20 73 74 61 74 75 73 2e 0d 0d 39 29 20 |. status...9) | 00001d50 49 6e 63 72 65 6d 65 6e 74 20 74 68 65 20 74 72 |Increment the tr| 00001d60 61 63 6b 20 6e 75 6d 62 65 72 2e 20 49 66 20 69 |ack number. If i| 00001d70 74 20 69 73 20 6c 65 73 73 20 74 68 61 6e 20 26 |t is less than &| 00001d80 32 38 20 28 64 65 63 69 6d 61 6c 20 34 30 29 20 |28 (decimal 40) | 00001d90 74 68 65 6e 20 67 6f 0d 20 20 20 62 61 63 6b 20 |then go. back | 00001da0 74 6f 20 32 29 20 74 6f 20 64 75 70 6c 69 63 61 |to 2) to duplica| 00001db0 74 65 20 74 68 65 20 6e 65 78 74 20 74 72 61 63 |te the next trac| 00001dc0 6b 2e 0d 0d 0d 54 68 69 73 20 61 6c 67 6f 72 69 |k....This algori| 00001dd0 74 68 6d 20 68 61 73 20 62 65 65 6e 20 69 6d 70 |thm has been imp| 00001de0 6c 65 6d 65 6e 74 65 64 20 69 6e 20 74 68 65 20 |lemented in the | 00001df0 70 72 6f 67 72 61 6d 20 44 55 41 4c 44 46 53 2e |program DUALDFS.| 00001e00 20 59 6f 75 20 6d 75 73 74 20 75 73 65 0d 74 68 | You must use.th| 00001e10 65 20 70 72 6f 67 72 61 6d 20 44 55 41 4c 44 46 |e program DUALDF| 00001e20 53 20 77 69 74 68 20 61 6e 20 65 69 67 68 74 79 |S with an eighty| 00001e30 20 74 72 61 63 6b 20 64 69 73 63 20 64 72 69 76 | track disc driv| 00001e40 65 20 28 64 72 69 76 65 20 26 30 30 29 20 74 6f |e (drive &00) to| 00001e50 20 63 6f 6e 76 65 72 74 0d 61 20 64 69 73 63 20 | convert.a disc | 00001e60 66 6f 72 6d 61 74 74 65 64 20 61 73 20 64 65 73 |formatted as des| 00001e70 63 72 69 62 65 64 20 61 62 6f 76 65 20 69 6e 74 |cribed above int| 00001e80 6f 20 61 20 34 30 2f 38 30 20 74 72 61 63 6b 20 |o a 40/80 track | 00001e90 64 69 73 63 2e 20 54 68 65 20 70 72 6f 67 72 61 |disc. The progra| 00001ea0 6d 0d 77 69 6c 6c 20 6e 6f 74 20 77 6f 72 6b 20 |m.will not work | 00001eb0 77 69 74 68 20 63 6f 70 79 2d 70 72 6f 74 65 63 |with copy-protec| 00001ec0 74 65 64 20 64 69 73 63 73 20 61 6e 64 20 79 6f |ted discs and yo| 00001ed0 75 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 75 73 |u should only us| 00001ee0 65 20 69 74 20 61 66 74 65 72 0d 79 6f 75 20 68 |e it after.you h| 00001ef0 61 76 65 20 6d 61 64 65 20 61 20 62 61 63 6b 75 |ave made a backu| 00001f00 70 20 63 6f 70 79 20 6f 66 20 61 6c 6c 20 74 68 |p copy of all th| 00001f10 65 20 66 69 6c 65 73 20 6f 6e 20 74 68 65 20 64 |e files on the d| 00001f20 69 73 63 20 79 6f 75 20 69 6e 74 65 6e 64 20 74 |isc you intend t| 00001f30 6f 0d 63 6f 6e 76 65 72 74 2e 0d 0d 49 66 20 79 |o.convert...If y| 00001f40 6f 75 20 75 73 65 20 44 55 41 4c 44 46 53 20 61 |ou use DUALDFS a| 00001f50 6e 64 20 70 72 65 73 73 20 74 68 65 20 45 73 63 |nd press the Esc| 00001f60 61 70 65 20 6b 65 79 20 62 65 66 6f 72 65 20 69 |ape key before i| 00001f70 74 20 68 61 73 20 66 69 6e 69 73 68 65 64 20 74 |t has finished t| 00001f80 68 65 0d 63 6f 6e 76 65 72 73 69 6f 6e 20 79 6f |he.conversion yo| 00001f90 75 20 77 69 6c 6c 20 6f 6e 6c 79 20 62 65 20 61 |u will only be a| 00001fa0 62 6c 65 20 74 6f 20 75 73 65 20 74 68 65 20 64 |ble to use the d| 00001fb0 69 73 63 20 6f 6e 20 61 6e 20 65 69 67 68 74 79 |isc on an eighty| 00001fc0 20 74 72 61 63 6b 20 64 69 73 63 0d 64 72 69 76 | track disc.driv| 00001fd0 65 2e 20 44 6f 20 6e 6f 74 20 61 74 74 65 6d 70 |e. Do not attemp| 00001fe0 74 20 74 6f 20 75 73 65 20 74 68 65 20 70 72 6f |t to use the pro| 00001ff0 67 72 61 6d 20 74 6f 20 6d 61 6b 65 20 74 68 65 |gram to make the| 00002000 20 63 6f 6e 76 65 72 73 69 6f 6e 20 75 73 69 6e | conversion usin| 00002010 67 20 61 0d 66 6f 72 74 79 20 74 72 61 63 6b 20 |g a.forty track | 00002020 64 69 73 63 20 64 72 69 76 65 2e 20 59 6f 75 20 |disc drive. You | 00002030 68 61 76 65 20 62 65 65 6e 20 77 61 72 6e 65 64 |have been warned| 00002040 20 74 6f 20 62 65 20 63 61 72 65 66 75 6c 20 77 | to be careful w| 00002050 69 74 68 20 61 6c 6c 20 74 68 65 0d 70 72 6f 67 |ith all the.prog| 00002060 72 61 6d 73 20 75 73 65 64 20 74 6f 20 69 6c 6c |rams used to ill| 00002070 75 73 74 72 61 74 65 20 74 68 69 73 20 73 65 72 |ustrate this ser| 00002080 69 65 73 2e 20 57 68 61 74 65 76 65 72 20 6d 6f |ies. Whatever mo| 00002090 64 69 66 69 63 61 74 69 6f 6e 73 20 79 6f 75 20 |difications you | 000020a0 6d 61 6b 65 0d 74 6f 20 74 68 69 73 20 6f 72 20 |make.to this or | 000020b0 61 6e 79 20 6f 74 68 65 72 20 6f 66 20 74 68 65 |any other of the| 000020c0 20 70 72 6f 67 72 61 6d 73 20 75 73 65 64 20 74 | programs used t| 000020d0 6f 20 69 6c 75 73 74 72 61 74 65 20 74 68 65 20 |o ilustrate the | 000020e0 44 46 53 20 6d 6f 64 75 6c 65 73 20 6f 66 0d 74 |DFS modules of.t| 000020f0 68 65 20 73 65 72 69 65 73 2c 20 64 6f 6e 27 74 |he series, don't| 00002100 20 69 67 6e 6f 72 65 20 74 68 65 20 77 61 72 6e | ignore the warn| 00002110 69 6e 67 20 61 62 6f 75 74 20 74 68 65 20 70 6f |ing about the po| 00002120 74 65 6e 74 69 61 6c 6c 79 20 64 69 73 61 73 74 |tentially disast| 00002130 65 72 6f 75 73 0d 65 66 66 65 63 74 73 20 74 68 |erous.effects th| 00002140 65 73 65 20 70 72 6f 67 72 61 6d 73 20 63 61 6e |ese programs can| 00002150 20 68 61 76 65 20 6f 6e 20 79 6f 75 72 20 64 69 | have on your di| 00002160 73 63 73 2e 0d 0d 41 66 74 65 72 20 75 73 69 6e |scs...After usin| 00002170 67 20 44 55 41 4c 44 46 53 20 74 6f 20 63 72 65 |g DUALDFS to cre| 00002180 61 74 65 20 61 20 64 75 61 6c 20 66 6f 72 6d 61 |ate a dual forma| 00002190 74 20 64 69 73 63 20 79 6f 75 20 6d 75 73 74 20 |t disc you must | 000021a0 6e 6f 74 20 75 73 65 20 74 68 65 0d 63 6f 6d 6d |not use the.comm| 000021b0 61 6e 64 20 2a 43 4f 4d 50 41 43 54 20 77 69 74 |and *COMPACT wit| 000021c0 68 20 74 68 65 20 64 69 73 63 2e 20 49 74 20 69 |h the disc. It i| 000021d0 73 20 61 20 67 6f 6f 64 20 69 64 65 61 20 73 74 |s a good idea st| 000021e0 69 63 6b 20 61 20 77 72 69 74 65 2d 70 72 6f 74 |ick a write-prot| 000021f0 65 63 74 0d 74 61 62 20 6f 6e 20 61 6c 6c 20 64 |ect.tab on all d| 00002200 75 61 6c 20 66 6f 72 6d 61 74 20 64 69 73 63 73 |ual format discs| 00002210 2e 0d 0d 0d 20 20 20 31 30 20 52 45 4d 3a 20 44 |.... 10 REM: D| 00002220 55 41 4c 44 46 53 0d 20 20 20 32 30 20 6f 73 6e |UALDFS. 20 osn| 00002230 65 77 6c 3d 26 46 46 45 37 0d 20 20 20 33 30 20 |ewl=&FFE7. 30 | 00002240 6f 73 77 72 63 68 3d 26 46 46 45 45 0d 20 20 20 |oswrch=&FFEE. | 00002250 34 30 20 6f 73 77 6f 72 64 3d 26 46 46 46 31 0d |40 osword=&FFF1.| 00002260 20 20 20 35 30 20 6f 73 62 79 74 65 3d 26 46 46 | 50 osbyte=&FF| 00002270 46 34 0d 20 20 20 36 30 20 44 49 4d 20 74 61 62 |F4. 60 DIM tab| 00002280 6c 65 20 26 35 30 0d 20 20 20 37 30 20 44 49 4d |le &50. 70 DIM| 00002290 20 6d 63 6f 64 65 20 26 35 30 30 0d 20 20 20 38 | mcode &500. 8| 000022a0 30 20 44 49 4d 20 62 75 66 66 65 72 20 26 31 30 |0 DIM buffer &10| 000022b0 30 30 0d 20 20 20 39 30 20 46 4f 52 20 70 61 73 |00. 90 FOR pas| 000022c0 73 3d 30 20 54 4f 20 32 20 53 54 45 50 20 32 0d |s=0 TO 2 STEP 2.| 000022d0 20 20 31 30 30 20 50 25 3d 6d 63 6f 64 65 0d 20 | 100 P%=mcode. | 000022e0 20 31 31 30 20 5b 20 20 20 20 20 20 20 4f 50 54 | 110 [ OPT| 000022f0 20 70 61 73 73 0d 20 20 31 32 30 20 20 20 20 20 | pass. 120 | 00002300 20 20 20 20 4a 53 52 20 6f 73 6e 65 77 6c 0d 20 | JSR osnewl. | 00002310 20 31 33 30 20 2e 6d 61 69 6e 6c 6f 6f 70 0d 20 | 130 .mainloop. | 00002320 20 31 34 30 20 20 20 20 20 20 20 20 20 4a 53 52 | 140 JSR| 00002330 20 65 73 63 61 70 65 20 20 20 20 5c 20 63 68 65 | escape \ che| 00002340 63 6b 20 65 73 63 61 70 65 20 66 6c 61 67 0d 20 |ck escape flag. | 00002350 20 31 35 30 20 20 20 20 20 20 20 20 20 4a 53 52 | 150 JSR| 00002360 20 73 65 63 74 6f 72 69 64 73 20 5c 20 72 65 61 | sectorids \ rea| 00002370 64 20 61 6c 6c 20 73 65 63 74 6f 72 20 69 64 73 |d all sector ids| 00002380 0d 20 20 31 36 30 20 20 20 20 20 20 20 20 20 4a |. 160 J| 00002390 53 52 20 72 65 61 64 20 20 20 20 20 20 5c 20 72 |SR read \ r| 000023a0 65 61 64 20 61 6c 6c 20 73 65 63 74 6f 72 73 0d |ead all sectors.| 000023b0 20 20 31 37 30 20 20 20 20 20 20 20 20 20 4a 53 | 170 JS| 000023c0 52 20 73 65 65 6b 74 77 6f 20 20 20 5c 20 73 65 |R seektwo \ se| 000023d0 65 6b 20 73 6f 75 72 63 65 20 74 72 61 63 6b 20 |ek source track | 000023e0 2a 20 32 0d 20 20 31 38 30 20 20 20 20 20 20 20 |* 2. 180 | 000023f0 20 20 4c 44 41 20 74 72 61 63 6b 20 20 20 20 20 | LDA track | 00002400 5c 20 73 6f 75 72 63 65 20 74 72 61 63 6b 20 6e |\ source track n| 00002410 75 6d 62 65 72 0d 20 20 31 39 30 20 20 20 20 20 |umber. 190 | 00002420 20 20 20 20 4a 53 52 20 72 65 67 69 73 74 65 72 | JSR register| 00002430 20 20 5c 20 77 72 69 74 65 20 74 72 61 63 6b 20 | \ write track | 00002440 72 65 67 69 73 74 65 72 0d 20 20 32 30 30 20 20 |register. 200 | 00002450 20 20 20 20 20 20 20 4a 53 52 20 66 6f 72 6d 61 | JSR forma| 00002460 74 20 20 20 20 5c 20 66 6f 72 6d 61 74 20 32 20 |t \ format 2 | 00002470 2a 20 73 6f 75 72 63 65 20 74 72 61 63 6b 0d 20 |* source track. | 00002480 20 32 31 30 20 20 20 20 20 20 20 20 20 4a 53 52 | 210 JSR| 00002490 20 77 72 69 74 65 20 20 20 20 20 5c 20 77 72 69 | write \ wri| 000024a0 74 65 20 61 6c 6c 20 73 65 63 74 6f 72 73 0d 20 |te all sectors. | 000024b0 20 32 32 30 20 20 20 20 20 20 20 20 20 4c 44 41 | 220 LDA| 000024c0 20 74 72 61 63 6b 20 20 20 20 20 5c 20 6c 6f 61 | track \ loa| 000024d0 64 20 73 6f 75 72 63 65 20 74 72 61 63 6b 0d 20 |d source track. | 000024e0 20 32 33 30 20 20 20 20 20 20 20 20 20 41 53 4c | 230 ASL| 000024f0 20 41 20 20 20 20 20 20 20 20 20 5c 20 2a 32 20 | A \ *2 | 00002500 3d 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b |= physical track| 00002510 20 6e 75 6d 62 65 72 0d 20 20 32 34 30 20 20 20 | number. 240 | 00002520 20 20 20 20 20 20 4a 53 52 20 72 65 67 69 73 74 | JSR regist| 00002530 65 72 20 20 5c 20 77 72 69 74 65 20 74 72 61 63 |er \ write trac| 00002540 6b 20 72 65 67 69 73 74 65 72 0d 20 20 32 35 30 |k register. 250| 00002550 20 20 20 20 20 20 20 20 20 4a 53 52 20 70 72 69 | JSR pri| 00002560 6e 74 62 79 74 65 20 5c 20 70 72 69 6e 74 20 74 |ntbyte \ print t| 00002570 72 61 63 6b 20 6e 75 6d 62 65 72 0d 20 20 32 36 |rack number. 26| 00002580 30 20 20 20 20 20 20 20 20 20 49 4e 43 20 74 72 |0 INC tr| 00002590 61 63 6b 20 20 20 20 20 5c 20 69 6e 63 72 65 6d |ack \ increm| 000025a0 65 6e 74 20 73 6f 75 72 63 65 20 74 72 61 63 6b |ent source track| 000025b0 20 6e 75 6d 62 65 72 0d 20 20 32 37 30 20 20 20 | number. 270 | 000025c0 20 20 20 20 20 20 4c 44 41 20 74 72 61 63 6b 20 | LDA track | 000025d0 20 20 20 20 5c 20 6c 6f 61 64 20 73 6f 75 72 63 | \ load sourc| 000025e0 65 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 20 |e track number. | 000025f0 20 32 38 30 20 20 20 20 20 20 20 20 20 43 4d 50 | 280 CMP| 00002600 20 23 34 30 20 20 20 20 20 20 20 5c 20 61 6c 6c | #40 \ all| 00002610 20 64 6f 6e 65 3f 0d 20 20 32 39 30 20 20 20 20 | done?. 290 | 00002620 20 20 20 20 20 42 4e 45 20 6d 61 69 6e 6c 6f 6f | BNE mainloo| 00002630 70 20 20 5c 20 69 66 20 6e 6f 74 20 72 65 61 64 |p \ if not read| 00002640 20 6e 65 78 74 20 74 72 61 63 6b 0d 20 20 33 30 | next track. 30| 00002650 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 6f 73 |0 JSR os| 00002660 6e 65 77 6c 0d 20 20 33 31 30 20 20 20 20 20 20 |newl. 310 | 00002670 20 20 20 52 54 53 20 20 20 20 20 20 20 20 20 20 | RTS | 00002680 20 5c 20 72 65 74 75 72 6e 20 74 6f 20 42 41 53 | \ return to BAS| 00002690 49 43 0d 20 20 33 32 30 20 2e 65 73 63 61 70 65 |IC. 320 .escape| 000026a0 0d 20 20 33 33 30 20 20 20 20 20 20 20 20 20 4c |. 330 L| 000026b0 44 41 20 26 46 46 20 20 20 20 20 20 20 5c 20 65 |DA &FF \ e| 000026c0 73 63 61 70 65 20 66 6c 61 67 0d 20 20 33 34 30 |scape flag. 340| 000026d0 20 20 20 20 20 20 20 20 20 42 4d 49 20 70 72 65 | BMI pre| 000026e0 73 73 65 64 20 20 20 5c 20 62 69 74 20 37 20 73 |ssed \ bit 7 s| 000026f0 65 74 20 69 66 20 70 72 65 73 73 65 64 0d 20 20 |et if pressed. | 00002700 33 35 30 20 20 20 20 20 20 20 20 20 52 54 53 0d |350 RTS.| 00002710 20 20 33 36 30 20 2e 70 72 65 73 73 65 64 0d 20 | 360 .pressed. | 00002720 20 33 37 30 20 20 20 20 20 20 20 20 20 4c 44 41 | 370 LDA| 00002730 20 23 26 37 45 0d 20 20 33 38 30 20 20 20 20 20 | #&7E. 380 | 00002740 20 20 20 20 4a 53 52 20 6f 73 62 79 74 65 20 20 | JSR osbyte | 00002750 20 20 5c 20 61 63 6b 6e 6f 77 6c 65 64 67 65 20 | \ acknowledge | 00002760 45 73 63 61 70 65 0d 20 20 33 39 30 20 20 20 20 |Escape. 390 | 00002770 20 20 20 20 20 42 52 4b 0d 20 20 34 30 30 20 20 | BRK. 400 | 00002780 20 20 20 20 20 20 20 42 52 4b 0d 20 20 34 31 30 | BRK. 410| 00002790 20 20 20 20 20 20 20 20 20 45 51 55 53 20 22 45 | EQUS "E| 000027a0 73 63 61 70 65 22 0d 20 20 34 32 30 20 20 20 20 |scape". 420 | 000027b0 20 20 20 20 20 42 52 4b 0d 20 20 34 33 30 20 2e | BRK. 430 .| 000027c0 73 65 65 6b 74 77 6f 0d 20 20 34 34 30 20 20 20 |seektwo. 440 | 000027d0 20 20 20 20 20 20 4c 44 41 20 74 72 61 63 6b 20 | LDA track | 000027e0 20 20 20 20 5c 20 73 6f 75 72 63 65 20 74 72 61 | \ source tra| 000027f0 63 6b 20 6e 75 6d 62 65 72 0d 20 20 34 35 30 20 |ck number. 450 | 00002800 20 20 20 20 20 20 20 20 41 53 4c 20 41 20 20 20 | ASL A | 00002810 20 20 20 20 20 20 5c 20 2a 32 0d 20 20 34 36 30 | \ *2. 460| 00002820 20 20 20 20 20 20 20 20 20 53 54 41 20 73 65 65 | STA see| 00002830 6b 62 6c 6f 63 6b 2b 37 20 5c 20 70 68 79 73 69 |kblock+7 \ physi| 00002840 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 |cal track number| 00002850 0d 20 20 34 37 30 20 20 20 20 20 20 20 20 20 4c |. 470 L| 00002860 44 41 20 23 26 37 46 0d 20 20 34 38 30 20 20 20 |DA #&7F. 480 | 00002870 20 20 20 20 20 20 4c 44 58 20 23 73 65 65 6b 62 | LDX #seekb| 00002880 6c 6f 63 6b 20 4d 4f 44 20 32 35 36 0d 20 20 34 |lock MOD 256. 4| 00002890 39 30 20 20 20 20 20 20 20 20 20 4c 44 59 20 23 |90 LDY #| 000028a0 73 65 65 6b 62 6c 6f 63 6b 20 44 49 56 20 32 35 |seekblock DIV 25| 000028b0 36 0d 20 20 35 30 30 20 20 20 20 20 20 20 20 20 |6. 500 | 000028c0 4a 53 52 20 6f 73 77 6f 72 64 0d 20 20 35 31 30 |JSR osword. 510| 000028d0 20 20 20 20 20 20 20 20 20 4c 44 41 20 73 65 65 | LDA see| 000028e0 6b 62 6c 6f 63 6b 2b 38 20 5c 20 72 65 73 75 6c |kblock+8 \ resul| 000028f0 74 0d 20 20 35 32 30 20 20 20 20 20 20 20 20 20 |t. 520 | 00002900 42 4e 45 20 73 65 65 6b 65 72 72 6f 72 20 5c 20 |BNE seekerror \ | 00002910 3d 20 30 20 69 66 20 4f 4b 0d 20 20 35 33 30 20 |= 0 if OK. 530 | 00002920 20 20 20 20 20 20 20 20 52 54 53 0d 20 20 35 34 | RTS. 54| 00002930 30 20 2e 73 65 65 6b 65 72 72 6f 72 0d 20 20 35 |0 .seekerror. 5| 00002940 35 30 20 20 20 20 20 20 20 20 20 42 52 4b 0d 20 |50 BRK. | 00002950 20 35 36 30 20 20 20 20 20 20 20 20 20 42 52 4b | 560 BRK| 00002960 0d 20 20 35 37 30 20 20 20 20 20 20 20 20 20 45 |. 570 E| 00002970 51 55 53 20 22 53 65 65 6b 20 65 72 72 6f 72 22 |QUS "Seek error"| 00002980 0d 20 20 35 38 30 20 20 20 20 20 20 20 20 20 42 |. 580 B| 00002990 52 4b 0d 20 20 35 39 30 20 2e 66 6f 72 6d 61 74 |RK. 590 .format| 000029a0 0d 20 20 36 30 30 20 20 20 20 20 20 20 20 20 4c |. 600 L| 000029b0 44 41 20 74 72 61 63 6b 20 20 20 20 20 5c 20 73 |DA track \ s| 000029c0 6f 75 72 63 65 20 74 72 61 63 6b 20 6e 75 6d 62 |ource track numb| 000029d0 65 72 0d 20 20 36 31 30 20 20 20 20 20 20 20 20 |er. 610 | 000029e0 20 53 54 41 20 66 6f 72 6d 62 6c 6f 63 6b 2b 37 | STA formblock+7| 000029f0 20 5c 20 73 74 6f 72 65 20 70 68 79 73 69 63 61 | \ store physica| 00002a00 6c 20 74 72 61 63 6b 0d 20 20 36 32 30 20 20 20 |l track. 620 | 00002a10 20 20 20 20 20 20 4a 53 52 20 72 65 67 69 73 74 | JSR regist| 00002a20 65 72 20 20 5c 20 77 72 69 74 65 20 74 72 61 63 |er \ write trac| 00002a30 6b 20 72 65 67 69 73 74 65 72 0d 20 20 36 33 30 |k register. 630| 00002a40 20 20 20 20 20 20 20 20 20 4c 44 41 20 23 26 37 | LDA #&7| 00002a50 46 0d 20 20 36 34 30 20 20 20 20 20 20 20 20 20 |F. 640 | 00002a60 4c 44 58 20 23 66 6f 72 6d 62 6c 6f 63 6b 20 4d |LDX #formblock M| 00002a70 4f 44 20 32 35 36 0d 20 20 36 35 30 20 20 20 20 |OD 256. 650 | 00002a80 20 20 20 20 20 4c 44 59 20 23 66 6f 72 6d 62 6c | LDY #formbl| 00002a90 6f 63 6b 20 44 49 56 20 32 35 36 0d 20 20 36 36 |ock DIV 256. 66| 00002aa0 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 6f 73 |0 JSR os| 00002ab0 77 6f 72 64 0d 20 20 36 37 30 20 20 20 20 20 20 |word. 670 | 00002ac0 20 20 20 4c 44 41 20 66 6f 72 6d 62 6c 6f 63 6b | LDA formblock| 00002ad0 2b 31 32 20 5c 20 72 65 73 75 6c 74 0d 20 20 36 |+12 \ result. 6| 00002ae0 38 30 20 20 20 20 20 20 20 20 20 42 4e 45 20 66 |80 BNE f| 00002af0 6f 72 6d 65 72 72 6f 72 20 5c 20 3d 20 30 20 69 |ormerror \ = 0 i| 00002b00 66 20 4f 4b 0d 20 20 36 39 30 20 20 20 20 20 20 |f OK. 690 | 00002b10 20 20 20 52 54 53 0d 20 20 37 30 30 20 2e 66 6f | RTS. 700 .fo| 00002b20 72 6d 65 72 72 6f 72 0d 20 20 37 31 30 20 20 20 |rmerror. 710 | 00002b30 20 20 20 20 20 20 42 52 4b 0d 20 20 37 32 30 20 | BRK. 720 | 00002b40 20 20 20 20 20 20 20 20 42 52 4b 0d 20 20 37 33 | BRK. 73| 00002b50 30 20 20 20 20 20 20 20 20 20 45 51 55 53 20 22 |0 EQUS "| 00002b60 46 6f 72 6d 61 74 20 65 72 72 6f 72 22 0d 20 20 |Format error". | 00002b70 37 34 30 20 20 20 20 20 20 20 20 20 42 52 4b 0d |740 BRK.| 00002b80 20 20 37 35 30 20 2e 72 65 67 69 73 74 65 72 0d | 750 .register.| 00002b90 20 20 37 36 30 20 20 20 20 20 20 20 20 20 53 54 | 760 ST| 00002ba0 41 20 72 65 67 62 6c 6f 63 6b 2b 38 20 5c 20 76 |A regblock+8 \ v| 00002bb0 61 6c 75 65 20 74 6f 20 70 75 74 20 69 6e 20 72 |alue to put in r| 00002bc0 65 67 69 73 74 65 72 0d 20 20 37 37 30 20 20 20 |egister. 770 | 00002bd0 20 20 20 20 20 20 4c 44 41 20 23 26 37 46 0d 20 | LDA #&7F. | 00002be0 20 37 38 30 20 20 20 20 20 20 20 20 20 4c 44 58 | 780 LDX| 00002bf0 20 23 72 65 67 62 6c 6f 63 6b 20 4d 4f 44 20 32 | #regblock MOD 2| 00002c00 35 36 0d 20 20 37 39 30 20 20 20 20 20 20 20 20 |56. 790 | 00002c10 20 4c 44 59 20 23 72 65 67 62 6c 6f 63 6b 20 44 | LDY #regblock D| 00002c20 49 56 20 32 35 36 0d 20 20 38 30 30 20 20 20 20 |IV 256. 800 | 00002c30 20 20 20 20 20 4a 53 52 20 6f 73 77 6f 72 64 0d | JSR osword.| 00002c40 20 20 38 31 30 20 20 20 20 20 20 20 20 20 4c 44 | 810 LD| 00002c50 41 20 72 65 67 62 6c 6f 63 6b 2b 39 20 5c 20 72 |A regblock+9 \ r| 00002c60 65 73 75 6c 74 0d 20 20 38 32 30 20 20 20 20 20 |esult. 820 | 00002c70 20 20 20 20 42 4e 45 20 72 65 67 65 72 72 6f 72 | BNE regerror| 00002c80 20 20 5c 20 3d 20 30 20 69 66 20 4f 4b 0d 20 20 | \ = 0 if OK. | 00002c90 38 33 30 20 20 20 20 20 20 20 20 20 52 54 53 0d |830 RTS.| 00002ca0 20 20 38 34 30 20 2e 72 65 67 65 72 72 6f 72 0d | 840 .regerror.| 00002cb0 20 20 38 35 30 20 20 20 20 20 20 20 20 20 42 52 | 850 BR| 00002cc0 4b 0d 20 20 38 36 30 20 20 20 20 20 20 20 20 20 |K. 860 | 00002cd0 42 52 4b 0d 20 20 38 37 30 20 20 20 20 20 20 20 |BRK. 870 | 00002ce0 20 20 45 51 55 53 20 22 53 70 65 63 69 61 6c 20 | EQUS "Special | 00002cf0 72 65 67 69 73 74 65 72 20 65 72 72 6f 72 22 0d |register error".| 00002d00 20 20 38 38 30 20 20 20 20 20 20 20 20 20 42 52 | 880 BR| 00002d10 4b 0d 20 20 38 39 30 20 2e 73 65 63 74 6f 72 69 |K. 890 .sectori| 00002d20 64 73 0d 20 20 39 30 30 20 20 20 20 20 20 20 20 |ds. 900 | 00002d30 20 4c 44 41 20 74 72 61 63 6b 20 20 20 20 20 5c | LDA track \| 00002d40 20 73 6f 75 72 63 65 20 74 72 61 63 6b 20 6e 75 | source track nu| 00002d50 6d 62 65 72 0d 20 20 39 31 30 20 20 20 20 20 20 |mber. 910 | 00002d60 20 20 20 53 54 41 20 69 64 73 62 6c 6f 63 6b 2b | STA idsblock+| 00002d70 37 20 5c 20 73 74 6f 72 65 20 70 68 79 73 69 63 |7 \ store physic| 00002d80 61 6c 20 74 72 61 63 6b 0d 20 20 39 32 30 20 20 |al track. 920 | 00002d90 20 20 20 20 20 20 20 4c 44 41 20 23 26 37 46 0d | LDA #&7F.| 00002da0 20 20 39 33 30 20 20 20 20 20 20 20 20 20 4c 44 | 930 LD| 00002db0 58 20 23 69 64 73 62 6c 6f 63 6b 20 4d 4f 44 20 |X #idsblock MOD | 00002dc0 32 35 36 0d 20 20 39 34 30 20 20 20 20 20 20 20 |256. 940 | 00002dd0 20 20 4c 44 59 20 23 69 64 73 62 6c 6f 63 6b 20 | LDY #idsblock | 00002de0 44 49 56 20 32 35 36 0d 20 20 39 35 30 20 20 20 |DIV 256. 950 | 00002df0 20 20 20 20 20 20 4a 53 52 20 6f 73 77 6f 72 64 | JSR osword| 00002e00 0d 20 20 39 36 30 20 20 20 20 20 20 20 20 20 4c |. 960 L| 00002e10 44 41 20 69 64 73 62 6c 6f 63 6b 2b 31 30 20 5c |DA idsblock+10 \| 00002e20 20 72 65 73 75 6c 74 0d 20 20 39 37 30 20 20 20 | result. 970 | 00002e30 20 20 20 20 20 20 42 4e 45 20 69 64 73 65 72 72 | BNE idserr| 00002e40 6f 72 20 20 5c 20 3d 20 30 20 69 66 20 4f 4b 0d |or \ = 0 if OK.| 00002e50 20 20 39 38 30 20 20 20 20 20 20 20 20 20 52 54 | 980 RT| 00002e60 53 0d 20 20 39 39 30 20 2e 69 64 73 65 72 72 6f |S. 990 .idserro| 00002e70 72 0d 20 31 30 30 30 20 20 20 20 20 20 20 20 20 |r. 1000 | 00002e80 42 52 4b 0d 20 31 30 31 30 20 20 20 20 20 20 20 |BRK. 1010 | 00002e90 20 20 42 52 4b 0d 20 31 30 32 30 20 20 20 20 20 | BRK. 1020 | 00002ea0 20 20 20 20 45 51 55 53 20 22 53 65 63 74 6f 72 | EQUS "Sector| 00002eb0 20 49 44 20 45 72 72 6f 72 22 0d 20 31 30 33 30 | ID Error". 1030| 00002ec0 20 20 20 20 20 20 20 20 20 42 52 4b 0d 20 31 30 | BRK. 10| 00002ed0 34 30 20 2e 72 65 61 64 0d 20 31 30 35 30 20 20 |40 .read. 1050 | 00002ee0 20 20 20 20 20 20 20 4c 44 41 20 74 72 61 63 6b | LDA track| 00002ef0 20 20 20 20 20 5c 20 73 6f 75 72 63 65 20 74 72 | \ source tr| 00002f00 61 63 6b 20 6e 75 6d 62 65 72 0d 20 31 30 36 30 |ack number. 1060| 00002f10 20 20 20 20 20 20 20 20 20 53 54 41 20 63 6f 70 | STA cop| 00002f20 79 62 6c 6f 63 6b 2b 37 20 5c 20 6c 6f 67 69 63 |yblock+7 \ logic| 00002f30 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d |al track number.| 00002f40 20 31 30 37 30 20 20 20 20 20 20 20 20 20 4c 44 | 1070 LD| 00002f50 41 20 23 26 35 33 20 20 20 20 20 20 5c 20 72 65 |A #&53 \ re| 00002f60 61 64 20 64 61 74 61 20 6d 75 6c 74 69 2d 73 65 |ad data multi-se| 00002f70 63 74 6f 72 0d 20 31 30 38 30 20 20 20 20 20 20 |ctor. 1080 | 00002f80 20 20 20 53 54 41 20 63 6f 70 79 62 6c 6f 63 6b | STA copyblock| 00002f90 2b 36 0d 20 31 30 39 30 20 20 20 20 20 20 20 20 |+6. 1090 | 00002fa0 20 4c 44 41 20 23 26 37 46 0d 20 31 31 30 30 20 | LDA #&7F. 1100 | 00002fb0 20 20 20 20 20 20 20 20 4c 44 58 20 23 63 6f 70 | LDX #cop| 00002fc0 79 62 6c 6f 63 6b 20 4d 4f 44 20 32 35 36 0d 20 |yblock MOD 256. | 00002fd0 31 31 31 30 20 20 20 20 20 20 20 20 20 4c 44 59 |1110 LDY| 00002fe0 20 23 63 6f 70 79 62 6c 6f 63 6b 20 44 49 56 20 | #copyblock DIV | 00002ff0 32 35 36 0d 20 31 31 32 30 20 20 20 20 20 20 20 |256. 1120 | 00003000 20 20 4a 53 52 20 6f 73 77 6f 72 64 0d 20 31 31 | JSR osword. 11| 00003010 33 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 63 |30 LDA c| 00003020 6f 70 79 62 6c 6f 63 6b 2b 31 30 0d 20 31 31 34 |opyblock+10. 114| 00003030 30 20 20 20 20 20 20 20 20 20 42 4e 45 20 72 65 |0 BNE re| 00003040 61 64 65 72 72 6f 72 0d 20 31 31 35 30 20 20 20 |aderror. 1150 | 00003050 20 20 20 20 20 20 52 54 53 0d 20 31 31 36 30 20 | RTS. 1160 | 00003060 2e 72 65 61 64 65 72 72 6f 72 0d 20 31 31 37 30 |.readerror. 1170| 00003070 20 20 20 20 20 20 20 20 20 42 52 4b 0d 20 31 31 | BRK. 11| 00003080 38 30 20 20 20 20 20 20 20 20 20 42 52 4b 0d 20 |80 BRK. | 00003090 31 31 39 30 20 20 20 20 20 20 20 20 20 45 51 55 |1190 EQU| 000030a0 53 20 22 52 65 61 64 20 65 72 72 6f 72 22 0d 20 |S "Read error". | 000030b0 31 32 30 30 20 20 20 20 20 20 20 20 20 42 52 4b |1200 BRK| 000030c0 0d 20 31 32 31 30 20 2e 77 72 69 74 65 0d 20 31 |. 1210 .write. 1| 000030d0 32 32 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 |220 LDA | 000030e0 23 26 34 42 20 20 20 20 20 20 5c 20 77 72 69 74 |#&4B \ writ| 000030f0 65 20 64 61 74 61 20 6d 75 6c 74 69 2d 73 65 63 |e data multi-sec| 00003100 74 6f 72 0d 20 31 32 33 30 20 20 20 20 20 20 20 |tor. 1230 | 00003110 20 20 53 54 41 20 63 6f 70 79 62 6c 6f 63 6b 2b | STA copyblock+| 00003120 36 0d 20 31 32 34 30 20 20 20 20 20 20 20 20 20 |6. 1240 | 00003130 4c 44 41 20 23 26 37 46 0d 20 31 32 35 30 20 20 |LDA #&7F. 1250 | 00003140 20 20 20 20 20 20 20 4c 44 58 20 23 63 6f 70 79 | LDX #copy| 00003150 62 6c 6f 63 6b 20 4d 4f 44 20 32 35 36 0d 20 31 |block MOD 256. 1| 00003160 32 36 30 20 20 20 20 20 20 20 20 20 4c 44 59 20 |260 LDY | 00003170 23 63 6f 70 79 62 6c 6f 63 6b 20 44 49 56 20 32 |#copyblock DIV 2| 00003180 35 36 0d 20 31 32 37 30 20 20 20 20 20 20 20 20 |56. 1270 | 00003190 20 4a 53 52 20 6f 73 77 6f 72 64 0d 20 31 32 38 | JSR osword. 128| 000031a0 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 63 6f |0 LDA co| 000031b0 70 79 62 6c 6f 63 6b 2b 31 30 20 5c 20 72 65 73 |pyblock+10 \ res| 000031c0 75 6c 74 0d 20 31 32 39 30 20 20 20 20 20 20 20 |ult. 1290 | 000031d0 20 20 42 4e 45 20 77 72 69 74 65 65 72 72 6f 72 | BNE writeerror| 000031e0 20 5c 20 3d 20 30 20 69 66 20 4f 4b 0d 20 31 33 | \ = 0 if OK. 13| 000031f0 30 30 20 20 20 20 20 20 20 20 20 52 54 53 0d 20 |00 RTS. | 00003200 31 33 31 30 20 2e 77 72 69 74 65 65 72 72 6f 72 |1310 .writeerror| 00003210 0d 20 31 33 32 30 20 20 20 20 20 20 20 20 20 42 |. 1320 B| 00003220 52 4b 0d 20 31 33 33 30 20 20 20 20 20 20 20 20 |RK. 1330 | 00003230 20 42 52 4b 0d 20 31 33 34 30 20 20 20 20 20 20 | BRK. 1340 | 00003240 20 20 20 45 51 55 53 20 22 57 72 69 74 65 20 65 | EQUS "Write e| 00003250 72 72 6f 72 22 0d 20 31 33 35 30 20 20 20 20 20 |rror". 1350 | 00003260 20 20 20 20 42 52 4b 0d 20 31 33 36 30 20 2e 70 | BRK. 1360 .p| 00003270 72 69 6e 74 62 79 74 65 0d 20 31 33 37 30 20 20 |rintbyte. 1370 | 00003280 20 20 20 20 20 20 20 4c 44 41 20 74 72 61 63 6b | LDA track| 00003290 20 20 20 20 20 5c 20 70 72 69 6e 74 20 73 6f 75 | \ print sou| 000032a0 72 63 65 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 |rce track number| 000032b0 0d 20 31 33 38 30 20 20 20 20 20 20 20 20 20 50 |. 1380 P| 000032c0 48 41 0d 20 31 33 39 30 20 20 20 20 20 20 20 20 |HA. 1390 | 000032d0 20 4c 53 52 20 41 0d 20 31 34 30 30 20 20 20 20 | LSR A. 1400 | 000032e0 20 20 20 20 20 4c 53 52 20 41 0d 20 31 34 31 30 | LSR A. 1410| 000032f0 20 20 20 20 20 20 20 20 20 4c 53 52 20 41 0d 20 | LSR A. | 00003300 31 34 32 30 20 20 20 20 20 20 20 20 20 4c 53 52 |1420 LSR| 00003310 20 41 0d 20 31 34 33 30 20 20 20 20 20 20 20 20 | A. 1430 | 00003320 20 4a 53 52 20 6e 79 62 62 6c 65 20 20 20 20 5c | JSR nybble \| 00003330 20 70 72 69 6e 74 20 4d 53 20 6e 79 62 62 6c 65 | print MS nybble| 00003340 0d 20 31 34 34 30 20 20 20 20 20 20 20 20 20 50 |. 1440 P| 00003350 4c 41 0d 20 31 34 35 30 20 20 20 20 20 20 20 20 |LA. 1450 | 00003360 20 4a 53 52 20 6e 79 62 62 6c 65 20 20 20 20 5c | JSR nybble \| 00003370 20 70 72 69 6e 74 20 4c 53 20 6e 79 62 62 6c 65 | print LS nybble| 00003380 0d 20 31 34 36 30 20 20 20 20 20 20 20 20 20 4c |. 1460 L| 00003390 44 41 20 23 41 53 43 28 22 20 22 29 0d 20 31 34 |DA #ASC(" "). 14| 000033a0 37 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 6f |70 JSR o| 000033b0 73 77 72 63 68 20 20 20 20 5c 20 70 72 69 6e 74 |swrch \ print| 000033c0 20 73 70 61 63 65 0d 20 31 34 38 30 20 20 20 20 | space. 1480 | 000033d0 20 20 20 20 20 4a 4d 50 20 6f 73 77 72 63 68 20 | JMP oswrch | 000033e0 20 20 20 5c 20 70 72 69 6e 74 20 73 70 61 63 65 | \ print space| 000033f0 0d 20 31 34 39 30 20 2e 6e 79 62 62 6c 65 0d 20 |. 1490 .nybble. | 00003400 31 35 30 30 20 20 20 20 20 20 20 20 20 41 4e 44 |1500 AND| 00003410 20 23 26 30 46 0d 20 31 35 31 30 20 20 20 20 20 | #&0F. 1510 | 00003420 20 20 20 20 53 45 44 0d 20 31 35 32 30 20 20 20 | SED. 1520 | 00003430 20 20 20 20 20 20 43 4c 43 0d 20 31 35 33 30 20 | CLC. 1530 | 00003440 20 20 20 20 20 20 20 20 41 44 43 20 23 26 39 30 | ADC #&90| 00003450 0d 20 31 35 34 30 20 20 20 20 20 20 20 20 20 41 |. 1540 A| 00003460 44 43 20 23 26 34 30 0d 20 31 35 35 30 20 20 20 |DC #&40. 1550 | 00003470 20 20 20 20 20 20 43 4c 44 0d 20 31 35 36 30 20 | CLD. 1560 | 00003480 20 20 20 20 20 20 20 20 4a 4d 50 20 6f 73 77 72 | JMP oswr| 00003490 63 68 20 20 20 20 5c 20 70 72 69 6e 74 20 6e 79 |ch \ print ny| 000034a0 62 62 6c 65 20 61 6e 64 20 72 65 74 75 72 6e 0d |bble and return.| 000034b0 20 31 35 37 30 20 2e 73 65 65 6b 62 6c 6f 63 6b | 1570 .seekblock| 000034c0 0d 20 31 35 38 30 20 20 20 20 20 20 20 20 20 45 |. 1580 E| 000034d0 51 55 42 20 26 30 30 20 20 20 20 20 20 5c 20 64 |QUB &00 \ d| 000034e0 72 69 76 65 20 30 0d 20 31 35 39 30 20 20 20 20 |rive 0. 1590 | 000034f0 20 20 20 20 20 45 51 55 44 20 26 30 30 20 20 20 | EQUD &00 | 00003500 20 20 20 5c 20 64 6f 65 73 20 6e 6f 74 20 6d 61 | \ does not ma| 00003510 74 74 65 72 0d 20 31 36 30 30 20 20 20 20 20 20 |tter. 1600 | 00003520 20 20 20 45 51 55 42 20 26 30 31 20 20 20 20 20 | EQUB &01 | 00003530 20 5c 20 31 20 70 61 72 61 6d 65 74 65 72 0d 20 | \ 1 parameter. | 00003540 31 36 30 31 20 20 20 20 20 20 20 20 20 45 51 55 |1601 EQU| 00003550 42 20 26 36 39 20 20 20 20 20 20 5c 20 73 65 65 |B &69 \ see| 00003560 6b 20 63 6f 6d 6d 61 6e 64 0d 20 31 36 30 32 20 |k command. 1602 | 00003570 20 20 20 20 20 20 20 20 45 51 55 42 20 26 30 30 | EQUB &00| 00003580 20 20 20 20 20 20 5c 20 70 68 79 73 69 63 61 6c | \ physical| 00003590 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 20 31 | track number. 1| 000035a0 36 30 33 20 20 20 20 20 20 20 20 20 45 51 55 42 |603 EQUB| 000035b0 20 26 30 30 20 20 20 20 20 20 5c 20 72 65 73 75 | &00 \ resu| 000035c0 6c 74 0d 20 31 36 31 30 20 2e 72 65 67 62 6c 6f |lt. 1610 .regblo| 000035d0 63 6b 0d 20 31 36 32 30 20 20 20 20 20 20 20 20 |ck. 1620 | 000035e0 20 45 51 55 42 20 26 30 30 20 20 20 20 20 20 5c | EQUB &00 \| 000035f0 20 64 72 69 76 65 20 30 0d 20 31 36 33 30 20 20 | drive 0. 1630 | 00003600 20 20 20 20 20 20 20 45 51 55 44 20 26 30 30 20 | EQUD &00 | 00003610 20 20 20 20 20 5c 20 64 6f 65 73 20 6e 6f 74 20 | \ does not | 00003620 6d 61 74 74 65 72 0d 20 31 36 34 30 20 20 20 20 |matter. 1640 | 00003630 20 20 20 20 20 45 51 55 42 20 26 30 32 20 20 20 | EQUB &02 | 00003640 20 20 20 5c 20 32 20 70 61 72 61 6d 65 74 65 72 | \ 2 parameter| 00003650 73 0d 20 31 36 34 31 20 20 20 20 20 20 20 20 20 |s. 1641 | 00003660 45 51 55 42 20 26 37 41 20 20 20 20 20 20 5c 20 |EQUB &7A \ | 00003670 77 72 69 74 65 20 73 70 65 63 69 61 6c 20 72 65 |write special re| 00003680 67 69 73 74 65 72 0d 20 31 36 34 32 20 20 20 20 |gister. 1642 | 00003690 20 20 20 20 20 45 51 55 42 20 26 31 32 20 20 20 | EQUB &12 | 000036a0 20 20 20 5c 20 74 72 61 63 6b 20 72 65 67 69 73 | \ track regis| 000036b0 74 65 72 2c 20 64 72 69 76 65 20 30 2f 32 0d 20 |ter, drive 0/2. | 000036c0 31 36 34 33 20 20 20 20 20 20 20 20 20 45 51 55 |1643 EQU| 000036d0 42 20 26 30 30 20 20 20 20 20 20 5c 20 76 61 6c |B &00 \ val| 000036e0 75 65 20 74 6f 20 62 65 20 70 75 74 20 69 6e 20 |ue to be put in | 000036f0 72 65 67 69 73 74 65 72 0d 20 31 36 35 30 20 20 |register. 1650 | 00003700 20 20 20 20 20 20 20 45 51 55 42 20 26 30 30 20 | EQUB &00 | 00003710 20 20 20 20 20 5c 20 72 65 73 75 6c 74 0d 20 31 | \ result. 1| 00003720 36 36 30 20 2e 69 64 73 62 6c 6f 63 6b 0d 20 31 |660 .idsblock. 1| 00003730 36 37 30 20 20 20 20 20 20 20 20 20 45 51 55 42 |670 EQUB| 00003740 20 26 30 30 20 20 20 20 20 20 5c 20 64 72 69 76 | &00 \ driv| 00003750 65 20 30 0d 20 31 36 38 30 20 20 20 20 20 20 20 |e 0. 1680 | 00003760 20 20 45 51 55 44 20 74 61 62 6c 65 20 20 20 20 | EQUD table | 00003770 5c 20 61 64 64 72 65 73 73 20 6f 66 20 62 75 66 |\ address of buf| 00003780 66 65 72 0d 20 31 36 39 30 20 20 20 20 20 20 20 |fer. 1690 | 00003790 20 20 45 51 55 42 20 26 30 33 20 20 20 20 20 20 | EQUB &03 | 000037a0 5c 20 33 20 70 61 72 61 6d 65 74 65 72 73 0d 20 |\ 3 parameters. | 000037b0 31 36 39 31 20 20 20 20 20 20 20 20 20 45 51 55 |1691 EQU| 000037c0 42 20 26 35 42 20 20 20 20 20 20 5c 20 72 65 61 |B &5B \ rea| 000037d0 64 20 73 65 63 74 6f 72 20 49 44 73 20 63 6f 6d |d sector IDs com| 000037e0 6d 61 6e 64 0d 20 31 36 39 32 20 20 20 20 20 20 |mand. 1692 | 000037f0 20 20 20 45 51 55 42 20 26 30 30 20 20 20 20 20 | EQUB &00 | 00003800 20 5c 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 | \ physical trac| 00003810 6b 20 6e 75 6d 62 65 72 0d 20 31 36 39 33 20 20 |k number. 1693 | 00003820 20 20 20 20 20 20 20 45 51 55 42 20 26 30 30 0d | EQUB &00.| 00003830 20 31 37 30 30 20 20 20 20 20 20 20 20 20 45 51 | 1700 EQ| 00003840 55 42 20 26 30 41 20 20 20 20 20 20 5c 20 6e 75 |UB &0A \ nu| 00003850 6d 62 65 72 20 6f 66 20 49 44 73 0d 20 31 37 30 |mber of IDs. 170| 00003860 31 20 20 20 20 20 20 20 20 20 45 51 55 42 20 26 |1 EQUB &| 00003870 30 30 20 20 20 20 20 20 5c 20 72 65 73 75 6c 74 |00 \ result| 00003880 0d 20 31 37 31 30 20 2e 63 6f 70 79 62 6c 6f 63 |. 1710 .copybloc| 00003890 6b 0d 20 31 37 32 30 20 20 20 20 20 20 20 20 20 |k. 1720 | 000038a0 45 51 55 42 20 26 30 30 20 20 20 20 20 20 5c 20 |EQUB &00 \ | 000038b0 64 72 69 76 65 20 30 0d 20 31 37 33 30 20 20 20 |drive 0. 1730 | 000038c0 20 20 20 20 20 20 45 51 55 44 20 62 75 66 66 65 | EQUD buffe| 000038d0 72 20 20 20 5c 20 61 64 64 72 65 73 73 20 6f 66 |r \ address of| 000038e0 20 62 75 66 66 65 72 0d 20 31 37 34 30 20 20 20 | buffer. 1740 | 000038f0 20 20 20 20 20 20 45 51 55 42 20 26 30 33 20 20 | EQUB &03 | 00003900 20 20 20 20 5c 20 33 20 70 61 72 61 6d 65 74 65 | \ 3 paramete| 00003910 72 73 0d 20 31 37 34 31 20 20 20 20 20 20 20 20 |rs. 1741 | 00003920 20 45 51 55 42 20 26 35 37 20 20 20 20 20 20 5c | EQUB &57 \| 00003930 20 72 65 61 64 20 64 61 74 61 20 6d 75 6c 74 69 | read data multi| 00003940 2d 73 65 63 74 6f 72 0d 20 31 37 34 32 20 20 20 |-sector. 1742 | 00003950 20 20 20 20 20 20 45 51 55 42 20 26 30 30 20 20 | EQUB &00 | 00003960 20 20 20 20 5c 20 6c 6f 67 69 63 61 6c 20 74 72 | \ logical tr| 00003970 61 63 6b 20 6e 75 6d 62 65 72 0d 20 31 37 34 33 |ack number. 1743| 00003980 20 20 20 20 20 20 20 20 20 45 51 55 42 20 26 30 | EQUB &0| 00003990 30 20 20 20 20 20 20 5c 20 73 74 61 72 74 20 6c |0 \ start l| 000039a0 6f 67 69 63 61 6c 20 73 65 63 74 6f 72 20 6e 75 |ogical sector nu| 000039b0 6d 62 65 72 0d 20 31 37 35 30 20 20 20 20 20 20 |mber. 1750 | 000039c0 20 20 20 45 51 55 42 20 26 32 41 20 20 20 20 20 | EQUB &2A | 000039d0 20 5c 20 31 30 20 73 65 63 74 6f 72 73 20 6f 66 | \ 10 sectors of| 000039e0 20 32 35 36 20 62 79 74 65 73 0d 20 31 37 35 31 | 256 bytes. 1751| 000039f0 20 20 20 20 20 20 20 20 20 45 51 55 42 20 26 30 | EQUB &0| 00003a00 30 20 20 20 20 20 20 5c 20 72 65 73 75 6c 74 0d |0 \ result.| 00003a10 20 31 37 36 30 20 2e 66 6f 72 6d 62 6c 6f 63 6b | 1760 .formblock| 00003a20 0d 20 31 37 37 30 20 20 20 20 20 20 20 20 20 45 |. 1770 E| 00003a30 51 55 42 20 26 30 30 20 20 20 20 20 20 5c 20 64 |QUB &00 \ d| 00003a40 72 69 76 65 20 30 0d 20 31 37 38 30 20 20 20 20 |rive 0. 1780 | 00003a50 20 20 20 20 20 45 51 55 44 20 74 61 62 6c 65 20 | EQUD table | 00003a60 20 20 20 5c 20 61 64 64 72 65 73 73 20 6f 66 20 | \ address of | 00003a70 73 65 63 74 6f 72 20 74 61 62 6c 65 0d 20 31 37 |sector table. 17| 00003a80 39 30 20 20 20 20 20 20 20 20 20 45 51 55 42 20 |90 EQUB | 00003a90 26 30 35 20 20 20 20 20 20 5c 20 35 20 70 61 72 |&05 \ 5 par| 00003aa0 61 6d 65 74 65 72 73 0d 20 31 37 39 31 20 20 20 |ameters. 1791 | 00003ab0 20 20 20 20 20 20 45 51 55 42 20 26 36 33 20 20 | EQUB &63 | 00003ac0 20 20 20 20 5c 20 66 6f 72 6d 61 74 20 63 6f 6d | \ format com| 00003ad0 6d 61 6e 64 0d 20 31 37 39 32 20 20 20 20 20 20 |mand. 1792 | 00003ae0 20 20 20 45 51 55 42 20 26 30 30 20 20 20 20 20 | EQUB &00 | 00003af0 20 5c 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 | \ physical trac| 00003b00 6b 20 6e 75 6d 62 65 72 0d 20 31 37 39 33 20 20 |k number. 1793 | 00003b10 20 20 20 20 20 20 20 45 51 55 42 20 26 31 35 20 | EQUB &15 | 00003b20 20 20 20 20 20 5c 20 67 61 70 20 33 20 73 69 7a | \ gap 3 siz| 00003b30 65 0d 20 31 38 30 30 20 20 20 20 20 20 20 20 20 |e. 1800 | 00003b40 45 51 55 42 20 26 32 41 20 20 20 20 20 20 5c 20 |EQUB &2A \ | 00003b50 31 30 20 73 65 63 74 6f 72 73 20 6f 66 20 32 35 |10 sectors of 25| 00003b60 36 20 62 79 74 65 73 0d 20 31 38 30 31 20 20 20 |6 bytes. 1801 | 00003b70 20 20 20 20 20 20 45 51 55 42 20 26 30 30 20 20 | EQUB &00 | 00003b80 20 20 20 20 5c 20 67 61 70 20 35 20 73 69 7a 65 | \ gap 5 size| 00003b90 0d 20 31 38 30 32 20 20 20 20 20 20 20 20 20 45 |. 1802 E| 00003ba0 51 55 42 20 26 31 30 20 20 20 20 20 20 5c 20 67 |QUB &10 \ g| 00003bb0 61 70 20 31 20 73 69 7a 65 0d 20 31 38 30 33 20 |ap 1 size. 1803 | 00003bc0 20 20 20 20 20 20 20 20 45 51 55 42 20 26 30 30 | EQUB &00| 00003bd0 20 20 20 20 20 20 5c 20 72 65 73 75 6c 74 0d 20 | \ result. | 00003be0 31 38 31 30 20 2e 74 72 61 63 6b 0d 20 31 38 32 |1810 .track. 182| 00003bf0 30 20 20 20 20 20 20 20 20 20 45 51 55 42 20 32 |0 EQUB 2| 00003c00 30 20 20 20 20 20 20 20 5c 20 75 73 65 20 74 72 |0 \ use tr| 00003c10 61 63 6b 73 20 32 30 2d 33 39 0d 20 31 38 33 30 |acks 20-39. 1830| 00003c20 20 5d 0d 20 31 38 34 30 20 4e 45 58 54 0d 20 31 | ]. 1840 NEXT. 1| 00003c30 38 35 30 20 50 52 49 4e 54 27 22 50 6c 61 63 65 |850 PRINT'"Place| 00003c40 20 34 30 20 74 72 61 63 6b 20 66 6f 72 6d 61 74 | 40 track format| 00003c50 74 65 64 20 38 30 20 74 72 61 63 6b 20 64 69 73 |ted 80 track dis| 00003c60 63 22 0d 20 31 38 36 30 20 50 52 49 4e 54 22 69 |c". 1860 PRINT"i| 00003c70 6e 20 64 72 69 76 65 20 30 2c 20 61 6e 64 20 70 |n drive 0, and p| 00003c80 72 65 73 73 20 53 70 61 63 65 62 61 72 22 0d 20 |ress Spacebar". | 00003c90 31 38 37 30 20 52 45 50 45 41 54 0d 20 31 38 38 |1870 REPEAT. 188| 00003ca0 30 20 55 4e 54 49 4c 20 47 45 54 20 3d 20 33 32 |0 UNTIL GET = 32| 00003cb0 0d 20 31 38 39 30 20 43 41 4c 4c 20 6d 63 6f 64 |. 1890 CALL mcod| 00003cc0 65 0d 0d 0d 49 66 20 79 6f 75 20 68 61 76 65 20 |e...If you have | 00003cd0 61 20 73 77 69 74 63 68 65 64 20 34 30 2f 38 30 |a switched 40/80| 00003ce0 20 74 72 61 63 6b 20 64 69 73 63 20 64 72 69 76 | track disc driv| 00003cf0 65 20 69 74 20 69 73 20 71 75 69 74 65 20 65 61 |e it is quite ea| 00003d00 73 79 20 74 6f 20 70 72 6f 64 75 63 65 0d 64 75 |sy to produce.du| 00003d10 61 6c 20 66 6f 72 6d 61 74 20 64 69 73 63 73 20 |al format discs | 00003d20 77 69 74 68 6f 75 74 20 75 73 69 6e 67 20 61 20 |without using a | 00003d30 63 6f 6e 76 65 72 73 69 6f 6e 20 70 72 6f 67 72 |conversion progr| 00003d40 61 6d 20 73 75 63 68 20 61 73 20 44 55 41 4c 44 |am such as DUALD| 00003d50 46 53 2e 20 54 6f 0d 70 72 6f 64 75 63 65 20 61 |FS. To.produce a| 00003d60 20 64 75 61 6c 20 66 6f 72 6d 61 74 20 64 69 73 | dual format dis| 00003d70 63 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 75 73 |c you need to us| 00003d80 65 20 61 20 66 6f 72 74 79 20 74 72 61 63 6b 20 |e a forty track | 00003d90 66 6f 72 6d 61 74 74 65 72 20 61 6e 64 20 74 6f |formatter and to| 00003da0 0d 62 65 20 76 65 72 79 20 63 61 72 65 66 75 6c |.be very careful| 00003db0 20 61 62 6f 75 74 20 74 68 65 20 6f 72 64 65 72 | about the order| 00003dc0 20 69 6e 20 77 68 69 63 68 20 66 69 6c 65 73 20 | in which files | 00003dd0 61 72 65 20 73 61 76 65 64 20 6f 6e 20 74 68 65 |are saved on the| 00003de0 20 64 75 61 6c 0d 66 6f 72 6d 61 74 20 64 69 73 | dual.format dis| 00003df0 63 2e 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |c. The following| 00003e00 20 61 6c 67 6f 72 69 74 68 20 77 69 6c 6c 20 70 | algorith will p| 00003e10 72 6f 64 75 63 65 20 64 75 61 6c 20 66 6f 72 6d |roduce dual form| 00003e20 61 74 74 65 64 20 64 69 73 63 73 2e 0d 0d 0d 31 |atted discs....1| 00003e30 29 20 53 77 69 74 63 68 20 74 68 65 20 64 69 73 |) Switch the dis| 00003e40 63 20 64 72 69 76 65 20 74 6f 20 34 30 20 74 72 |c drive to 40 tr| 00003e50 61 63 6b 20 6d 6f 64 65 2e 0d 0d 32 29 20 46 6f |ack mode...2) Fo| 00003e60 72 6d 61 74 20 61 20 64 69 73 63 20 75 73 69 6e |rmat a disc usin| 00003e70 67 20 61 20 66 6f 72 74 79 20 74 72 61 63 6b 20 |g a forty track | 00003e80 66 6f 72 6d 61 74 74 65 72 2e 0d 0d 33 29 20 53 |formatter...3) S| 00003e90 77 69 74 63 68 20 74 68 65 20 64 69 73 63 20 64 |witch the disc d| 00003ea0 72 69 76 65 20 74 6f 20 38 30 20 74 72 61 63 6b |rive to 80 track| 00003eb0 20 6d 6f 64 65 2e 0d 0d 34 29 20 46 6f 72 6d 61 | mode...4) Forma| 00003ec0 74 20 74 68 65 20 73 61 6d 65 20 64 69 73 63 20 |t the same disc | 00003ed0 61 67 61 69 6e 20 75 73 69 6e 67 20 74 68 65 20 |again using the | 00003ee0 73 61 6d 65 20 66 6f 72 74 79 20 74 72 61 63 6b |same forty track| 00003ef0 20 66 6f 72 6d 61 74 74 65 72 2e 0d 0d 35 29 20 | formatter...5) | 00003f00 46 69 6c 6c 20 74 72 61 63 6b 20 26 30 30 20 77 |Fill track &00 w| 00003f10 69 74 68 20 61 20 64 75 6d 6d 79 20 21 42 4f 4f |ith a dummy !BOO| 00003f20 54 20 66 69 6c 65 20 75 73 69 6e 67 0d 0d 20 20 |T file using.. | 00003f30 20 2a 53 41 56 45 20 21 42 4f 4f 54 20 31 39 30 | *SAVE !BOOT 190| 00003f40 30 2b 38 30 30 0d 0d 36 29 20 46 69 6c 6c 20 74 |0+800..6) Fill t| 00003f50 72 61 63 6b 73 20 26 30 31 20 74 6f 20 26 31 33 |racks &01 to &13| 00003f60 20 77 69 74 68 20 61 20 6c 6f 63 6b 65 64 20 64 | with a locked d| 00003f70 75 6d 6d 79 20 66 69 6c 65 2e 20 75 73 65 20 74 |ummy file. use t| 00003f80 68 65 20 63 6f 6d 6d 61 6e 64 73 3a 0d 0d 20 20 |he commands:.. | 00003f90 20 2a 53 41 56 45 20 44 2e 44 55 4d 4d 59 20 31 | *SAVE D.DUMMY 1| 00003fa0 39 30 30 2b 42 45 30 30 0d 20 20 20 2a 41 43 45 |900+BE00. *ACE| 00003fb0 53 53 20 44 2e 44 55 4d 4d 59 20 4c 0d 0d 37 29 |SS D.DUMMY L..7)| 00003fc0 20 43 6f 70 79 20 75 70 20 74 6f 20 35 30 6b 20 | Copy up to 50k | 00003fd0 6f 66 20 70 72 6f 67 72 61 6d 73 20 6f 6e 74 6f |of programs onto| 00003fe0 20 74 68 65 20 64 69 73 63 2e 20 44 6f 6e 27 74 | the disc. Don't| 00003ff0 20 75 73 65 20 74 68 65 20 66 69 6c 65 6e 61 6d | use the filenam| 00004000 65 73 0d 20 20 20 24 2e 21 42 4f 4f 54 20 6f 72 |es. $.!BOOT or| 00004010 20 44 2e 44 55 4d 4d 59 2e 0d 0d 38 29 20 53 77 | D.DUMMY...8) Sw| 00004020 69 74 63 68 20 74 68 65 20 64 69 73 63 20 64 72 |itch the disc dr| 00004030 69 76 65 20 74 6f 20 34 30 20 74 72 61 63 6b 20 |ive to 40 track | 00004040 6d 6f 64 65 2e 0d 0d 39 29 20 43 6f 70 79 20 74 |mode...9) Copy t| 00004050 68 65 20 73 61 6d 65 20 66 69 6c 65 73 20 63 6f |he same files co| 00004060 70 69 65 64 20 69 6e 20 73 74 65 70 20 37 29 20 |pied in step 7) | 00004070 6f 6e 74 6f 20 74 68 65 20 64 69 73 63 20 69 6e |onto the disc in| 00004080 20 65 78 61 63 74 6c 79 20 74 68 65 20 73 61 6d | exactly the sam| 00004090 65 0d 20 20 20 6f 72 64 65 72 2e 20 49 74 20 69 |e. order. It i| 000040a0 73 20 69 6d 70 6f 72 74 61 6e 74 20 74 68 61 74 |s important that| 000040b0 20 74 68 65 20 6f 72 64 65 72 20 73 68 6f 75 6c | the order shoul| 000040c0 64 20 62 65 20 65 78 61 63 74 6c 79 20 74 68 65 |d be exactly the| 000040d0 20 73 61 6d 65 2e 0d 0d 31 30 29 20 44 65 6c 65 | same...10) Dele| 000040e0 74 65 20 74 68 65 20 64 75 6d 6d 79 20 21 42 4f |te the dummy !BO| 000040f0 4f 54 20 66 69 6c 65 20 61 6e 64 20 73 74 6f 72 |OT file and stor| 00004100 65 20 74 68 65 20 72 65 61 6c 20 21 42 4f 4f 54 |e the real !BOOT| 00004110 20 66 69 6c 65 20 6f 6e 20 74 68 65 20 64 69 73 | file on the dis| 00004120 63 2e 0d 20 20 20 20 54 68 65 20 21 42 4f 4f 54 |c.. The !BOOT| 00004130 20 66 69 6c 65 20 6d 75 73 74 20 6e 6f 74 20 62 | file must not b| 00004140 65 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 32 6b |e longer than 2k| 00004150 2e 0d 0d 0d 54 68 69 73 20 6d 65 74 68 6f 64 20 |....This method | 00004160 77 69 6c 6c 20 70 72 6f 64 75 63 65 20 65 78 61 |will produce exa| 00004170 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 64 75 |ctly the same du| 00004180 61 6c 20 66 6f 72 6d 61 74 20 64 69 73 63 20 61 |al format disc a| 00004190 73 20 74 68 61 74 0d 70 72 6f 64 75 63 65 64 20 |s that.produced | 000041a0 62 79 20 74 68 65 20 70 72 6f 67 72 61 6d 20 44 |by the program D| 000041b0 55 41 4c 44 46 53 20 62 75 74 20 69 74 20 64 6f |UALDFS but it do| 000041c0 65 73 20 72 65 71 75 69 72 65 20 74 68 65 20 75 |es require the u| 000041d0 73 65 20 6f 66 20 61 20 73 77 69 74 63 68 65 64 |se of a switched| 000041e0 0d 64 69 73 63 20 64 72 69 76 65 20 61 6e 64 20 |.disc drive and | 000041f0 61 20 67 72 65 61 74 20 64 65 61 6c 20 6f 66 20 |a great deal of | 00004200 63 61 72 65 20 69 6e 20 73 74 6f 72 69 6e 67 20 |care in storing | 00004210 74 68 65 20 66 69 6c 65 73 20 69 6e 20 74 68 65 |the files in the| 00004220 20 73 61 6d 65 20 6f 72 64 65 72 0d 6f 6e 20 62 | same order.on b| 00004230 6f 74 68 20 66 6f 72 6d 61 74 73 2e 0d |oth formats..| 0000423d