Home » CEEFAX disks » telesoftware8.adl » 05-08-88/T\DFS00
05-08-88/T\DFS00
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 » telesoftware8.adl |
Filename: | 05-08-88/T\DFS00 |
Read OK: | ✔ |
File size: | 6EFE bytes |
Load address: | 0000 |
Exec address: | FFFFFFFF |
File contents
The Acorn DFS Osword commands - by - Gordon Horsington ---------------------------------------------------------- Module 0. Introduction ---------------------- +----------------------------------------------------------+ | 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. | +----------------------------------------------------------+ There are eight modules in this part of the Opcodes series. The modules are in files named T/DFS00 to T/DFS07. The following topics will be covered in these series modules. Module 0. This module. Introduction. Programs: IDSDUMP, VERIFY Module 1. The DFS Osword commands (Part 1). Programs: CYCLES, HOWMANY, STATUS, OUTPUT Module 2. The DFS Osword commands (Part 2). Programs: FORM10, NOTFORM, WRITE10, READ10 Module 3. Formatting single density discs. Program: OFFSET, IDSDUMP, VERIFY Module 4. Converting 40 track discs to run on 80 track disc drives. Program: CONVERT Module 5. Creating discs compatible with both 40 and 80 track drives. Program: DUALDFS, OFFSET Module 6. Creating copy-protected single density discs. Programs: SECTOR5, ENCODE, DECODE, IDSDUMP, VERIFY Module 7. Duplicating copy-protected single density discs. Programs: COPYDFS, COPYALL, DEFORM, IDSDUMP, VERIFY The later modules develop the ideas and techniques described in the earlier modules and for this reason the series needs to be worked through from beginning to end rather than used as a reference guide. ------------------------------------ Introduction to single density discs ------------------------------------ There are three levels at which data can be written to and read from single density discs. The highest level, with which all disc users should be familiar, is through using the DFS star commands, filenames and the range of BGET, BPUT and other filing system commands. This level has a large ammount of filing system independence so that, for example, the same *SAVE command syntax can be used with both tape and disc. When this high level access to the DFS is used, both the programmer and the program user are tied to the restrictions of the particular DFS ROM so that, for example, non-standard disc formats are not available. A lower level of access to the DFS ROM is provided by the DFS Osword commands. Oswords &7D to &7F are used by the DFS and Oswords &70 to &73 are used by the ADFS. The ADFS is only available on BBC computers which use the Western Digital 1770 (or 1772) disc controller. The BBC B DFS was designed to use the Intel 8271 disc controller and cannot support the ADFS without a 1770 upgrade. The 1770 disc controller is fitted as standard to the BBC B+ and Master series computers. The 1770 disc controller can support both single density and double density disc formats but the 8271 can only support the single density format. All disc based BBC computers are capable of using Oswords &7D to &7F but only those with the ADFS can use Oswords &70 to &73. Only Oswords &7D to &7F will be considered in detail in this series. The lowest level of access to discs can be achieved by programing the disc contoller directly. The hardware which makes up a BBC microcomputer system is memory mapped. This means that the usable registers of all the hardware devices available to the I/O processor are mapped onto the main memory address space used by the 6502 CPU. Page &FE, ie. memory from &FE00 to &FEFF, is known as Sheila and this page is reserved for the hardware on the I/O processor's circuit board. Sheila addresses &80 to &9F are available to the floppy disc controller. Five of the BBC B's 8271 registers are mapped onto the Sheila addresses from &FE80 to &FE82. Three of the five registers can only be written into and the other two can only be read from. For this reason only three Sheila addresses need to be used to access the five registers. These three addresses can be used to communicate with the 8271 and to instruct it to execute a wide range of functions. Sheila address &FE84 is used to pass data to, and to read data from, the disc controller. The mapping of the 8271 registers onto Sheila addresses is shown in figure 1. +-----------+---------+---------+ | 8271 | Sheila | read or | | register | address | write | +-----------+---------+---------+ | status | &FE80 | read | | result | &FE81 | read | | command | &FE80 | write | | parameter | &FE81 | write | | reset | &FE82 | write | +-----------+---------+---------+ Figure 1. The 8271 registers mapped onto Sheila addresses --------------------------------------------------------- The 8271 has twelve other registers, known as the Special Registers, which are not mapped onto the Sheila addresses. Access to these registers can be achieved indirectly using the 8271 Read Special Register command or the 8271 Write Special Register command, both of which can be sent to the disc controller using the registers in figure 1. The Sheila addresses can be peeked or poked using the indirection operator but to produce Tube- compatible code it is necessary to use Osbyte &96 to read the Sheila addresses and Osbyte &97 to write to them. Using Osbytes &96 and &97 will ensure that the code is Tube-compatible but it not the easiest or the best way to program the disc controller. Osword &7F executes a single 8271 command through all its phases and relieves the programmer of the problems associated with techniques such as non-maskable interupt handling which must be used when programming the 8271. Osword &7F uses the Sheila addresses from &FE80 to &FE84 but the programmer does not have to be concerned with, or even be aware of, the detailed use of these addresses. Osword &7F provides a standard interface on the disc controller and is the method of accessing the disc hardware used in this series. Before looking at the single density Oswords in detail it is necessary to understand the format used by single density discs. The BBC computer is capable of using 3 1/2 inch, 5 1/4 inch and 8 inch discs, although 8 inch discs are something of a rarity these days. Because 8 inch discs are so uncommon they will not be discussed in this series. Both 3 1/2 inch and 5 1/4 inch discs use the same format and are available in both single and double sided versions with either 40 or 80 tracks per side. Each track is subdivided into a number of sectors each of which has an identification field (usually called an ID field) and a data field. There are a number of gaps associated with each track. The gaps are a variable number of bytes between the ID and data fields and are used to space out the fields to prevent the sectors overwriting each other when the disc speed varies. Physical tracks and sectors are identified by their physical position on a disc. Physical track 0 is the outermost track and physical sector 0 is the first sector on a track after the index pulse hole. Every sector is given a one-byte logical track number and a one-byte logical sector number. The physical track numbers and logical track numbers are the same on discs formatted for the Acorn DFS but the physical and logical sector numbers do not have to be the same. One of the many ways of copy-protecting discs is to make the physical and logical track numbers different, this effectivly disables the DFS *BACKUP command. The number of sectors, the size of the data fields, and the gap sizes are determined when the disc is formatted. In module 3 you will have the opportunity to vary these parameters but, whatever the format, each single density track has the layout shown in figure 2 below. +------------+-----------+------+----------+ | Sync bytes | Data mark | data | data CRC | +------------+-----------+------+----------+ \ / Index \ Data / End of mark \ field / track +-----+----+-----+------+-----+----+-----+------+-----+ +-----+-----+ | Gap | ID | Gap | Data | Gap | ID | Gap | Data | Gap | ... | Gap | Gap | | 1 | | 2 | 0 | 3 | | 2 | 1 | 3 | | 4 | 5 | +-----+----+-----+------+-----+----+-----+------+-----+ +-----+-----+ / ID \ / field \ / \ +-------+------+---------+--------+---------+-----------+--------+ | Sync | ID | Logical | Head | Logical | Data size | Sector | | bytes | mark | track | number | sector | code | ID CRC | +-------+------+---------+--------+---------+-----------+--------+ Figure 2. The layout of a DFS track. ------------------------------------ Figure 2 illustrates a complete track with one of the data fields expanded above the centre line and one of the ID fields expanded below. If figure 2 is taken as an illustration of a 10 sector track, then sectors 2 - 9 have been left out. The index mark at the beginning of the track has its position determined by the physical index pulse hole in the disc. This mark is followed by Gap 1. Gap 1 occurs once per track between the index mark and the start of physical sector 0. It should always be 16 (&10) bytes long. Gap 1 is followed by the ID field for physical sector 0. The ID field starts with 6 sync bytes. These sync bytes synchronise the controller to the rotational speed of the disc. The sync bytes are followed by a sector ID mark, which simply marks the start of the sector. This in turn is followed by the logical track number. The logical track number is normally the same as the physical track number but, on non-standard discs, it does not have to be the same. If you use the demonstration progran IDSDUMP on a copy-protected disc you may find that the physical track numbers and the logical track numbers of the protected tracks are different. The logical track number is followed by the head number. This should be &00 for drives 0 and 1 (which use the under side of the disc), and &01 for drives 2 and 3 (which use the top side of the disc) but most formatting programs use a head number of &00 for all disc surfaces. A head number of &00 seems to be ignored by the disc controller. Next comes the logical sector number. The logical sector number does not have to be the same as the physical sector number and, as will be demonstrated in module 3, there can be a small advantage to be gained by not using the same logical and physical sector numbers. The data size code follows the logical sector number and it indicates the number of data bytes in the data field (see figure 3 below). This is followed by a two byte cyclic redundancy check (CRC). The CRC is used to check for errors in the data stored within the ID field. The ID field is followed by Gap 2. Gap 2 should always be 11 (&0B) bytes long and it is positioned between the ID field and the data field of each sector on the track. Each data field is followed by Gap3. The Gap 3 after the last data field is followed by Gap 4 which in turn is followed by Gap 5. The relationship between the sector sizes and the gap sizes for 3 1/2 inch and 5 1/4 inch discs is shown in figure 3. All the numbers in figure 3 are in decimal. +-------------+-----------+--------+------+------+------+------+------+ | No. Sectors | Size code | Length | Gap1 | Gap2 | Gap3 | Gap4 | Gap5 | +-------------+-----------+--------+------+------+------+------+------+ | 18 | 0 | 128 | 16 | 11 | 11 | 24 | 0 | | 10 | 1 | 256 | 16 | 11 | 21 | 30 | 0 | | 5 | 2 | 512 | 16 | 11 | 74 | 88 | 0 | | 2 | 3 | 1024 | 16 | 11 | 255 | 740 | 0 | | 1 | 4 | 2048 | 16 | 11 | 0 | 1028 | 0 | +-------------+-----------+--------+------+------+------+------+------+ Figure 3. The relationship between sector size code, length and gap size. ------------------------------------------------------------------------- The data field for each sector starts with 6 sync bytes which are used to synchronise the disc controller with the rotational speed of the disc. The sync bytes are followed by the data mark which identifies the start of the data and also indicates if the data are marked as "deleted". Deleted data are not physically deleted from the disc, they are simply marked as deleted. This type of data marking will be used in module 6 to help produce copy-protected discs. The data follow the data mark and are terminated with two data CRC bytes. The program IDSDUMP can be used to print the ID field for every sector on a single density disc. I will not explain how the program works because it uses techniques that will be covered in the next two modules. The program is commented so that you can come back to it after reading modules 1 and 2 when you should be able to understand how it works. 10 REM: IDSDUMP 20 zeropage=&70 30 osasci=&FFE3 40 osnewl=&FFE7 50 osword=&FFF1 60 osbyte=&FFF4 70 DIM buffer &50 80 DIM mcode &200 90 FOR pass=0 TO 2 STEP 2 100 P%=mcode 110 [ OPT pass 120 LDA #14 \ paged mode 130 JSR osasci 140 .mainloop 150 JSR escape \ check escape flag 160 JSR firstsector \ read sector id first sector 170 BNE notformatted \ if error, track not formatted 180 JSR tracknumber \ print track number 190 JSR sectorids \ read all sector ids 200 .notformatted 210 INC physical \ increment physical track number 220 LDA physical \ load physical track number 230 CMP last \ all done? 240 BNE mainloop \ if not copy next track 250 JSR osnewl 260 RTS \ return to BASIC 270 .escape 280 LDA &FF \ escape flag 290 BMI pressed \ bit 7 set if pressed 300 RTS 310 .pressed 320 LDA #&7E 330 JSR osbyte \ acknowledge Escape 340 BRK 350 BRK 360 EQUS "Escape" 370 BRK 380 .firstsector 390 LDA physical \ physical track number 400 STA idsblock+7 \ store physical track 410 LDA #1 \ one sector 420 STA idsblock+9 \ number of ids 430 LDA #&7F 440 LDX #idsblock MOD 256 450 LDY #idsblock DIV 256 460 JSR osword 470 LDA idsblock+10 \ result 480 AND #&1E \ = 0 if formatted 490 RTS 500 .sectorids 510 LDX buffer+3 \ load data size code 520 LDA sizes,X \ load number of sectors 530 STA idsblock+9 \ store number of sectors 540 ASL A \ *2 550 ASL A \ *4 560 STA sectornumber \ store index on sectors 570 LDA #&7F 580 LDX #idsblock MOD 256 590 LDY #idsblock DIV 256 600 JSR osword 610 LDA idsblock+10 \ result 620 AND #&1E 630 BNE idserror \ = 0 if OK 640 LDX #0 650 .next 660 LDY #0 670 .printloop 680 LDA buffer,X 690 JSR printbyte \ print every byte of sector table 700 INX 710 INY 720 CPY #4 \ 4 bytes per line 730 BNE printloop 740 JSR osnewl 750 CPX sectornumber \ last byte? 760 BCC next \ go back for more 770 RTS 780 .idserror 790 BRK 800 BRK 810 EQUS "Sector ID Error" 820 BRK 830 .tracknumber 840 JSR osnewl 850 LDX #title MOD 256 860 LDY #title DIV 256 870 JSR printtext \ print "Track &" 880 LDA physical \ load physical track number 890 JSR printbyte \ print track number 900 LDX #header MOD 256 910 LDY #header DIV 256 920 JMP printtext \ print "LT HN LS DS" 930 .printtext 940 STX zeropage 950 STY zeropage+1 960 LDY #0 970 .textloop 980 LDA (zeropage),Y 990 BEQ endtext 1000 JSR osasci 1010 INY 1020 BNE textloop 1030 .endtext 1040 RTS 1050 .printbyte 1060 PHA 1070 LSR A 1080 LSR A 1090 LSR A 1100 LSR A 1110 JSR nybble \ print MS nybble 1120 PLA 1130 JSR nybble \ print LS nybble 1140 LDA #ASC(" ") 1150 JSR osasci \ print space 1160 JMP osasci \ print space 1170 .nybble 1180 AND #&0F 1190 SED 1200 CLC 1210 ADC #&90 1220 ADC #&40 1230 CLD 1240 JMP osasci \ print nybble and return 1250 .idsblock 1260 EQUB &FF \ current drive 1270 EQUD buffer \ address of buffer 1280 EQUD &00005B03 \ read sector ids 1290 EQUW 0 1300 .sizes 1310 EQUB 18 1320 EQUB 10 1330 EQUB 5 1340 EQUB 2 1350 EQUB 1 1360 .title 1370 EQUS " Track &" 1380 BRK 1390 .header 1400 EQUB &0D 1410 EQUS " ----------" 1420 EQUB &0D 1430 EQUS "LT HN LS DS" 1440 EQUB &0D 1450 EQUS "--------------" 1460 EQUB &0D 1470 BRK 1480 .physical 1490 EQUB &00 1500 .sectornumber 1510 EQUB &00 1520 .last 1530 EQUB &00 1540 ] 1550 NEXT 1560 INPUT'"Number of tracks (40/80) "tracks$ 1570 IF tracks$="40" ?last = 40 ELSE ?last = 80 1580 PRINT'"Insert ";?last;" track disc into current drive" 1590 PRINT"and press Spacebar to print sector IDs" 1600 REPEAT 1610 UNTIL GET=32 1620 PRINT'"Press Shift to scroll" 1630 CALL mcode Chain the program IDSDUMP and, when prompted, put a suitable disc in the current drive. Then press the spacebar to print the sector IDs for every track on the disc. The track number is displayed and the logical track (LT), head number (HN), logical sector (LS) and data size code (DS) are printed for every physical sector on each track, starting with physical sector 0. It is quite interesting to use this program with a copy-protected disc. You will almost certainly find that some of the physical and logical track numbers are different and you may also find some unexpected logical sector numbers. Figure 4 is a part of the output I produced with the 40 track single density disc version of the game "Grand Prix Construction Set". Track &0A ---------- LT HN LS DS -------------- 14 00 00 01 14 00 01 01 14 00 02 01 14 00 03 01 14 00 04 01 14 00 05 01 14 00 06 01 14 00 07 01 14 00 08 01 14 00 09 01 Figure 4. Part of the output from the program IDSDUMP ----------------------------------------------------- You should notice that physical track &0A uses logical track number &14 but the physical sector numbers, indicated by the order of the sectors, are the same as the logical sector numbers. This use of different physical and logical track numbers is sufficient to prevent the *BACKUP command duplicating the disc. As if to make sure it can't be copied, the disc also uses deleted data to re-inforce the same effect. Deleted data markers cannot be displayed with the program IDSDUMP and so I have provided a program called VERIFY which will verify copy-protected discs and indicate which tracks use deleted data. The deleted data mark is a part of the data field and can be read using the verify command. This will also be explained in detail in a later module but, for now, you should find it interesting to use the program VERIFY to find the deleted data on a copy-protected disc. 10 REM: VERIFY 20 REM: for copy-protected discs 30 osnewl=&FFE7 40 oswrch=&FFEE 50 osword=&FFF1 60 osbyte=&FFF4 70 DIM buffer &50 80 DIM mcode &500 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 seek \ seek physical tracks 0 - 40 160 JSR firstsector \ read sector id first sector 170 BNE notverify \ if error track not formatted 180 JSR sectorids \ read all sector ids 190 JSR verify \ verify all sectors 200 .notverify 210 JSR printbyte \ print track number 220 INC physical \ increment physical track number 230 LDA physical \ load physical track number 240 CMP last \ all done? 250 BNE mainloop \ if not copy next track 260 JSR osnewl 270 RTS \ return to BASIC 280 .escape 290 LDA &FF \ escape flag 300 BMI pressed \ bit 7 set if pressed 310 RTS 320 .pressed 330 LDA #&7E 340 JSR osbyte \ acknowledge Escape 350 BRK 360 BRK 370 EQUS "Escape" 380 BRK 390 .seek 400 LDA physical \ physical track number 410 STA seekblock+7 420 LDA #&7F 430 LDX #seekblock MOD 256 440 LDY #seekblock DIV 256 450 JSR osword 460 LDA seekblock+8 \ result 470 BNE seekerror \ = 0 if OK 480 RTS 490 .seekerror 500 BRK 510 BRK 520 EQUS "Seek error" 530 BRK 540 .firstsector 550 LDA physical \ physical track number 560 STA idsblock+7 \ store physical track 570 LDA #1 \ one sector 580 STA idsblock+9 \ number of ids 590 LDA #&7F 600 LDX #idsblock MOD 256 610 LDY #idsblock DIV 256 620 JSR osword 630 LDA idsblock+10 \ = 0 if formatted 640 RTS 650 .sectorids 660 LDX buffer+3 \ load data size code 670 LDA sizes,X \ load number of sectors 680 STA idsblock+9 \ store number of sectors 690 ASL A \ *2 700 ASL A \ *4 710 SEC 720 SBC #4 \ sectors*4-4 730 STA sectornumber \ store index on sectors 740 TXA \ transfer data size code 750 ASL A \ *2 760 ASL A \ *4 770 ASL A \ *8 780 ASL A \ *16 790 ASL A \ *32 800 ORA idsblock+9 \ add number of sectors 810 STA verblock+9 \ store for verify 820 LDA #&7F 830 LDX #idsblock MOD 256 840 LDY #idsblock DIV 256 850 JSR osword 860 LDA idsblock+10 \ result 870 BNE idserror \ = 0 if OK 880 RTS 890 .idserror 900 BRK 910 BRK 920 EQUS "Sector ID Error" 930 BRK 940 .verify 950 LDX sectornumber \ load index on table 960 LDA buffer+2,X \ load logical sector number 970 STA verblock+8 \ store for verify 980 .lowest 990 DEX 1000 DEX 1010 DEX 1020 DEX 1030 BMI finished 1040 LDA buffer+2,X \ load logical sector number 1050 CMP verblock+8 \ is it lower than the last one? 1060 BCS lowest \ branch if not lowest sector 1070 STA verblock+8 \ store if it is lower 1080 BCC lowest \ look for lower sector number 1090 .finished 1100 LDA buffer \ load logical track number 1110 STA verblock+7 \ and store for verify 1120 JSR register \ write track register 1130 LDA #&7F 1140 LDX #verblock MOD 256 1150 LDY #verblock DIV 256 1160 JSR osword 1170 LDA physical \ physical track number 1180 JSR register \ write track register 1190 LDA verblock+10 1200 AND #&1E \ isolate error bits 1210 BNE vererror 1220 RTS 1230 .vererror 1240 BRK 1250 BRK 1260 EQUS "Verify error" 1270 BRK 1280 .register 1290 STA regblock+8 \ value to put in register 1300 LDA #&7F 1310 LDX #regblock MOD 256 1320 LDY #regblock DIV 256 1330 JSR osword 1340 LDA regblock+9 1350 BNE regerror 1360 RTS 1370 .regerror 1380 BRK 1390 BRK 1400 EQUS "Special register error" 1410 BRK 1420 .printbyte 1430 LDA physical \ print physical track number 1440 PHA 1450 LSR A 1460 LSR A 1470 LSR A 1480 LSR A 1490 JSR nybble \ print MS nybble 1500 PLA 1510 JSR nybble \ print LS nybble 1520 LDA #ASC(" ") 1530 LDX verblock+10 \ load deleted data flag 1540 BEQ space \ if =0 not deleted 1550 LDA #ASC("d") \ deleted data mark 1560 .space 1570 JSR oswrch \ print space or "d" 1580 LDA #ASC(" ") 1590 JMP oswrch \ print space 1600 .nybble 1610 AND #&0F 1620 SED 1630 CLC 1640 ADC #&90 1650 ADC #&40 1660 CLD 1670 JMP oswrch \ print nybble and return 1680 .seekblock 1690 EQUB &FF \ current drive 1700 EQUD &00 \ does not matter 1710 EQUD &00006901 \ seek, 1 parameter 1720 .idsblock 1730 EQUB &FF \ current drive 1740 EQUD buffer \ address of buffer 1750 EQUD &00005B03 \ read sector ids 1760 EQUW &00 1770 .verblock 1780 EQUB &FF \ current drive 1790 EQUD &00 \ does not matter 1800 EQUD &00005F03 \ verify multi sector 1810 EQUW &00 1820 .regblock 1830 EQUB &FF \ current drive 1840 EQUD &00 \ does not matter 1850 EQUD &00127A02 1860 EQUB &00 \ result 1870 .sizes 1880 EQUB 18 1890 EQUB 10 1900 EQUB 5 1910 EQUB 2 1920 EQUB 1 1930 .physical 1940 EQUB &00 1950 .sectornumber 1960 EQUB &00 1970 .last 1980 EQUB &00 1990 ] 2000 NEXT 2010 INPUT'"Number of tracks (40/80) "tracks$ 2020 IF tracks$="40" ?last = 40 ELSE ?last = 80 2030 PRINT"Insert ";?last;" track disc into current drive" 2040 PRINT"and press the Spacebar to verify" 2050 REPEAT 2060 UNTIL GET=32 2070 CALL mcode The program is commented to explain how it works and you might like to come back to it after reading module 2. When the program VERIFY was used on the "Grand Prix Construction Set" disc the output shown in figure 5 was produced. >LO."VERIFY" >RUN Number of tracks (40/80) 40 Insert 40 track disc into current drive and press the Spacebar to verify 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0Dd 0Ed 0Fd 10d 11d 12 13 14 15 16 17 18 19d 1Ad 1Bd 1Cd 1Dd 1Ed 1Fd 20d 21d 22d 23 24 25 26 27 > Figure 5. The output from the program VERIFY -------------------------------------------- The lower case letter d following tracks &0D to &11 and tracks &19 to &22 indicates that these tracks have deleted data stored on them. The game on this disc loads in two parts and I would not be at all surprised to find that the two parts are stored on the tracks with deleted data. If the program VERIFY is used with a standard DFS disc it will not produce a lower case d to indicate the use of the deleted data marker.
00000000 0d 54 68 65 20 41 63 6f 72 6e 20 44 46 53 20 4f |.The Acorn DFS O| 00000010 73 77 6f 72 64 20 63 6f 6d 6d 61 6e 64 73 20 20 |sword commands | 00000020 2d 20 20 62 79 20 20 2d 20 20 47 6f 72 64 6f 6e |- by - Gordon| 00000030 20 48 6f 72 73 69 6e 67 74 6f 6e 0d 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 2d 0d 0d 4d 6f 64 75 6c 65 20 30 |------..Module 0| 00000080 2e 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 0d 2d |. Introduction.-| 00000090 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000000a0 2d 2d 2d 2d 2d 0d 0d 20 20 20 20 20 20 2b 2d 2d |-----.. +--| 000000b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 000000e0 2d 2d 2d 2d 2d 2d 2d 2d 2b 0d 20 20 20 20 20 20 |--------+. | 000000f0 7c 20 41 6c 6c 20 74 68 65 20 44 46 53 20 6d 6f || All the DFS mo| 00000100 64 75 6c 65 73 20 69 6e 20 20 74 68 69 73 20 20 |dules in this | 00000110 73 65 72 69 65 73 20 20 75 73 65 20 70 72 6f 67 |series use prog| 00000120 72 61 6d 73 20 77 68 69 63 68 20 7c 0d 20 20 20 |rams which |. | 00000130 20 20 20 7c 20 65 78 70 65 72 69 6d 65 6e 74 20 | | experiment | 00000140 20 77 69 74 68 20 74 68 65 20 66 6f 72 6d 61 74 | with the format| 00000150 20 61 6e 64 20 63 6f 6e 74 65 6e 74 73 20 6f 66 | and contents of| 00000160 20 64 69 73 63 73 2e 20 54 68 65 73 65 20 7c 0d | discs. These |.| 00000170 20 20 20 20 20 20 7c 20 65 78 70 65 72 69 6d 65 | | experime| 00000180 6e 74 73 20 6d 61 79 20 20 68 61 76 65 20 64 69 |nts may have di| 00000190 73 61 73 74 65 72 6f 75 73 20 65 66 66 65 63 74 |sasterous effect| 000001a0 73 20 69 66 20 79 6f 75 20 75 73 65 20 61 6e 79 |s if you use any| 000001b0 20 7c 0d 20 20 20 20 20 20 7c 20 6f 66 20 74 68 | |. | of th| 000001c0 65 20 70 72 6f 67 72 61 6d 73 20 20 6f 6e 20 20 |e programs on | 000001d0 64 69 73 63 73 20 20 77 68 69 63 68 20 73 74 6f |discs which sto| 000001e0 72 65 20 70 72 6f 67 72 61 6d 73 20 6f 72 20 64 |re programs or d| 000001f0 61 74 61 20 7c 0d 20 20 20 20 20 20 7c 20 77 68 |ata |. | wh| 00000200 69 63 68 20 79 6f 75 20 63 61 6e 6e 6f 74 20 61 |ich you cannot a| 00000210 66 66 6f 72 64 20 74 6f 20 6c 6f 73 65 2e 20 20 |fford to lose. | 00000220 59 6f 75 20 20 73 68 6f 75 6c 64 20 20 66 69 72 |You should fir| 00000230 73 74 20 74 72 79 20 7c 0d 20 20 20 20 20 20 7c |st try |. || 00000240 20 6f 75 74 20 20 74 68 65 20 20 70 72 6f 67 72 | out the progr| 00000250 61 6d 73 20 20 75 73 69 6e 67 20 20 64 69 73 63 |ams using disc| 00000260 73 20 20 74 68 61 74 20 20 68 61 76 65 20 65 69 |s that have ei| 00000270 74 68 65 72 20 62 65 65 6e 20 7c 0d 20 20 20 20 |ther been |. | 00000280 20 20 7c 20 64 75 70 6c 69 63 61 74 65 64 20 6f | | duplicated o| 00000290 72 2c 20 62 65 74 74 65 72 20 73 74 69 6c 6c 2c |r, better still,| 000002a0 20 68 61 76 65 20 6e 6f 74 20 62 65 65 6e 20 75 | have not been u| 000002b0 73 65 64 20 61 74 20 61 6c 6c 2e 20 20 7c 0d 20 |sed at all. |. | 000002c0 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | +----------| 000002d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000300 2b 0d 0d 0d 54 68 65 72 65 20 61 72 65 20 65 69 |+...There are ei| 00000310 67 68 74 20 6d 6f 64 75 6c 65 73 20 69 6e 20 74 |ght modules in t| 00000320 68 69 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 |his part of the | 00000330 4f 70 63 6f 64 65 73 20 73 65 72 69 65 73 2e 20 |Opcodes series. | 00000340 54 68 65 20 6d 6f 64 75 6c 65 73 0d 61 72 65 20 |The modules.are | 00000350 69 6e 20 66 69 6c 65 73 20 6e 61 6d 65 64 20 54 |in files named T| 00000360 2f 44 46 53 30 30 20 74 6f 20 54 2f 44 46 53 30 |/DFS00 to T/DFS0| 00000370 37 2e 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |7. The following| 00000380 20 74 6f 70 69 63 73 20 77 69 6c 6c 20 62 65 0d | topics will be.| 00000390 63 6f 76 65 72 65 64 20 69 6e 20 74 68 65 73 65 |covered in these| 000003a0 20 73 65 72 69 65 73 20 6d 6f 64 75 6c 65 73 2e | series modules.| 000003b0 0d 0d 0d 4d 6f 64 75 6c 65 20 30 2e 20 54 68 69 |...Module 0. Thi| 000003c0 73 20 6d 6f 64 75 6c 65 2e 20 49 6e 74 72 6f 64 |s module. Introd| 000003d0 75 63 74 69 6f 6e 2e 0d 20 20 20 20 20 20 20 20 |uction.. | 000003e0 20 20 50 72 6f 67 72 61 6d 73 3a 20 49 44 53 44 | Programs: IDSD| 000003f0 55 4d 50 2c 20 56 45 52 49 46 59 0d 0d 4d 6f 64 |UMP, VERIFY..Mod| 00000400 75 6c 65 20 31 2e 20 54 68 65 20 44 46 53 20 4f |ule 1. The DFS O| 00000410 73 77 6f 72 64 20 63 6f 6d 6d 61 6e 64 73 20 28 |sword commands (| 00000420 50 61 72 74 20 31 29 2e 0d 20 20 20 20 20 20 20 |Part 1).. | 00000430 20 20 20 50 72 6f 67 72 61 6d 73 3a 20 43 59 43 | Programs: CYC| 00000440 4c 45 53 2c 20 48 4f 57 4d 41 4e 59 2c 20 53 54 |LES, HOWMANY, ST| 00000450 41 54 55 53 2c 20 4f 55 54 50 55 54 0d 0d 4d 6f |ATUS, OUTPUT..Mo| 00000460 64 75 6c 65 20 32 2e 20 54 68 65 20 44 46 53 20 |dule 2. The DFS | 00000470 4f 73 77 6f 72 64 20 63 6f 6d 6d 61 6e 64 73 20 |Osword commands | 00000480 28 50 61 72 74 20 32 29 2e 0d 20 20 20 20 20 20 |(Part 2).. | 00000490 20 20 20 20 50 72 6f 67 72 61 6d 73 3a 20 46 4f | Programs: FO| 000004a0 52 4d 31 30 2c 20 4e 4f 54 46 4f 52 4d 2c 20 57 |RM10, NOTFORM, W| 000004b0 52 49 54 45 31 30 2c 20 52 45 41 44 31 30 0d 0d |RITE10, READ10..| 000004c0 4d 6f 64 75 6c 65 20 33 2e 20 46 6f 72 6d 61 74 |Module 3. Format| 000004d0 74 69 6e 67 20 73 69 6e 67 6c 65 20 64 65 6e 73 |ting single dens| 000004e0 69 74 79 20 64 69 73 63 73 2e 0d 20 20 20 20 20 |ity discs.. | 000004f0 20 20 20 20 20 50 72 6f 67 72 61 6d 3a 20 4f 46 | Program: OF| 00000500 46 53 45 54 2c 20 49 44 53 44 55 4d 50 2c 20 56 |FSET, IDSDUMP, V| 00000510 45 52 49 46 59 0d 0d 4d 6f 64 75 6c 65 20 34 2e |ERIFY..Module 4.| 00000520 20 43 6f 6e 76 65 72 74 69 6e 67 20 34 30 20 74 | Converting 40 t| 00000530 72 61 63 6b 20 64 69 73 63 73 20 74 6f 20 72 75 |rack discs to ru| 00000540 6e 20 6f 6e 20 38 30 20 74 72 61 63 6b 20 64 69 |n on 80 track di| 00000550 73 63 20 64 72 69 76 65 73 2e 0d 20 20 20 20 20 |sc drives.. | 00000560 20 20 20 20 20 50 72 6f 67 72 61 6d 3a 20 43 4f | Program: CO| 00000570 4e 56 45 52 54 0d 0d 4d 6f 64 75 6c 65 20 35 2e |NVERT..Module 5.| 00000580 20 43 72 65 61 74 69 6e 67 20 64 69 73 63 73 20 | Creating discs | 00000590 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 |compatible with | 000005a0 62 6f 74 68 20 34 30 20 61 6e 64 20 38 30 20 74 |both 40 and 80 t| 000005b0 72 61 63 6b 20 64 72 69 76 65 73 2e 0d 20 20 20 |rack drives.. | 000005c0 20 20 20 20 20 20 20 50 72 6f 67 72 61 6d 3a 20 | Program: | 000005d0 44 55 41 4c 44 46 53 2c 20 4f 46 46 53 45 54 0d |DUALDFS, OFFSET.| 000005e0 0d 4d 6f 64 75 6c 65 20 36 2e 20 43 72 65 61 74 |.Module 6. Creat| 000005f0 69 6e 67 20 63 6f 70 79 2d 70 72 6f 74 65 63 74 |ing copy-protect| 00000600 65 64 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 |ed single densit| 00000610 79 20 64 69 73 63 73 2e 0d 20 20 20 20 20 20 20 |y discs.. | 00000620 20 20 20 50 72 6f 67 72 61 6d 73 3a 20 53 45 43 | Programs: SEC| 00000630 54 4f 52 35 2c 20 45 4e 43 4f 44 45 2c 20 44 45 |TOR5, ENCODE, DE| 00000640 43 4f 44 45 2c 20 49 44 53 44 55 4d 50 2c 20 56 |CODE, IDSDUMP, V| 00000650 45 52 49 46 59 0d 0d 4d 6f 64 75 6c 65 20 37 2e |ERIFY..Module 7.| 00000660 20 44 75 70 6c 69 63 61 74 69 6e 67 20 63 6f 70 | Duplicating cop| 00000670 79 2d 70 72 6f 74 65 63 74 65 64 20 73 69 6e 67 |y-protected sing| 00000680 6c 65 20 64 65 6e 73 69 74 79 20 64 69 73 63 73 |le density discs| 00000690 2e 0d 20 20 20 20 20 20 20 20 20 20 50 72 6f 67 |.. Prog| 000006a0 72 61 6d 73 3a 20 43 4f 50 59 44 46 53 2c 20 43 |rams: COPYDFS, C| 000006b0 4f 50 59 41 4c 4c 2c 20 44 45 46 4f 52 4d 2c 20 |OPYALL, DEFORM, | 000006c0 49 44 53 44 55 4d 50 2c 20 56 45 52 49 46 59 0d |IDSDUMP, VERIFY.| 000006d0 0d 0d 54 68 65 20 6c 61 74 65 72 20 6d 6f 64 75 |..The later modu| 000006e0 6c 65 73 20 64 65 76 65 6c 6f 70 20 74 68 65 20 |les develop the | 000006f0 69 64 65 61 73 20 61 6e 64 20 74 65 63 68 6e 69 |ideas and techni| 00000700 71 75 65 73 20 64 65 73 63 72 69 62 65 64 20 69 |ques described i| 00000710 6e 20 74 68 65 0d 65 61 72 6c 69 65 72 20 6d 6f |n the.earlier mo| 00000720 64 75 6c 65 73 20 61 6e 64 20 66 6f 72 20 74 68 |dules and for th| 00000730 69 73 20 72 65 61 73 6f 6e 20 74 68 65 20 73 65 |is reason the se| 00000740 72 69 65 73 20 6e 65 65 64 73 20 74 6f 20 62 65 |ries needs to be| 00000750 20 77 6f 72 6b 65 64 20 74 68 72 6f 75 67 68 0d | worked through.| 00000760 66 72 6f 6d 20 62 65 67 69 6e 6e 69 6e 67 20 74 |from beginning t| 00000770 6f 20 65 6e 64 20 72 61 74 68 65 72 20 74 68 61 |o end rather tha| 00000780 6e 20 75 73 65 64 20 61 73 20 61 20 72 65 66 65 |n used as a refe| 00000790 72 65 6e 63 65 20 67 75 69 64 65 2e 0d 0d 0d 2d |rence guide....-| 000007a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 000007c0 2d 2d 2d 0d 49 6e 74 72 6f 64 75 63 74 69 6f 6e |---.Introduction| 000007d0 20 74 6f 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 | to single densi| 000007e0 74 79 20 64 69 73 63 73 0d 2d 2d 2d 2d 2d 2d 2d |ty discs.-------| 000007f0 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 0d 0d 54 |-------------..T| 00000810 68 65 72 65 20 61 72 65 20 74 68 72 65 65 20 6c |here are three l| 00000820 65 76 65 6c 73 20 61 74 20 77 68 69 63 68 20 64 |evels at which d| 00000830 61 74 61 20 63 61 6e 20 62 65 20 77 72 69 74 74 |ata can be writt| 00000840 65 6e 20 74 6f 20 61 6e 64 20 72 65 61 64 20 66 |en to and read f| 00000850 72 6f 6d 0d 73 69 6e 67 6c 65 20 64 65 6e 73 69 |rom.single densi| 00000860 74 79 20 64 69 73 63 73 2e 20 54 68 65 20 68 69 |ty discs. The hi| 00000870 67 68 65 73 74 20 6c 65 76 65 6c 2c 20 77 69 74 |ghest level, wit| 00000880 68 20 77 68 69 63 68 20 61 6c 6c 20 64 69 73 63 |h which all disc| 00000890 20 75 73 65 72 73 20 73 68 6f 75 6c 64 0d 62 65 | users should.be| 000008a0 20 66 61 6d 69 6c 69 61 72 2c 20 69 73 20 74 68 | familiar, is th| 000008b0 72 6f 75 67 68 20 75 73 69 6e 67 20 74 68 65 20 |rough using the | 000008c0 44 46 53 20 73 74 61 72 20 63 6f 6d 6d 61 6e 64 |DFS star command| 000008d0 73 2c 20 66 69 6c 65 6e 61 6d 65 73 20 61 6e 64 |s, filenames and| 000008e0 20 74 68 65 0d 72 61 6e 67 65 20 6f 66 20 42 47 | the.range of BG| 000008f0 45 54 2c 20 42 50 55 54 20 61 6e 64 20 6f 74 68 |ET, BPUT and oth| 00000900 65 72 20 66 69 6c 69 6e 67 20 73 79 73 74 65 6d |er filing system| 00000910 20 63 6f 6d 6d 61 6e 64 73 2e 20 54 68 69 73 20 | commands. This | 00000920 6c 65 76 65 6c 20 68 61 73 20 61 0d 6c 61 72 67 |level has a.larg| 00000930 65 20 61 6d 6d 6f 75 6e 74 20 6f 66 20 66 69 6c |e ammount of fil| 00000940 69 6e 67 20 73 79 73 74 65 6d 20 69 6e 64 65 70 |ing system indep| 00000950 65 6e 64 65 6e 63 65 20 73 6f 20 74 68 61 74 2c |endence so that,| 00000960 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 | for example, th| 00000970 65 20 73 61 6d 65 0d 2a 53 41 56 45 20 63 6f 6d |e same.*SAVE com| 00000980 6d 61 6e 64 20 73 79 6e 74 61 78 20 63 61 6e 20 |mand syntax can | 00000990 62 65 20 75 73 65 64 20 77 69 74 68 20 62 6f 74 |be used with bot| 000009a0 68 20 74 61 70 65 20 61 6e 64 20 64 69 73 63 2e |h tape and disc.| 000009b0 20 57 68 65 6e 20 74 68 69 73 20 68 69 67 68 0d | When this high.| 000009c0 6c 65 76 65 6c 20 61 63 63 65 73 73 20 74 6f 20 |level access to | 000009d0 74 68 65 20 44 46 53 20 69 73 20 75 73 65 64 2c |the DFS is used,| 000009e0 20 62 6f 74 68 20 74 68 65 20 70 72 6f 67 72 61 | both the progra| 000009f0 6d 6d 65 72 20 61 6e 64 20 74 68 65 20 70 72 6f |mmer and the pro| 00000a00 67 72 61 6d 20 75 73 65 72 0d 61 72 65 20 74 69 |gram user.are ti| 00000a10 65 64 20 74 6f 20 74 68 65 20 72 65 73 74 72 69 |ed to the restri| 00000a20 63 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 70 61 |ctions of the pa| 00000a30 72 74 69 63 75 6c 61 72 20 44 46 53 20 52 4f 4d |rticular DFS ROM| 00000a40 20 73 6f 20 74 68 61 74 2c 20 66 6f 72 0d 65 78 | so that, for.ex| 00000a50 61 6d 70 6c 65 2c 20 6e 6f 6e 2d 73 74 61 6e 64 |ample, non-stand| 00000a60 61 72 64 20 64 69 73 63 20 66 6f 72 6d 61 74 73 |ard disc formats| 00000a70 20 61 72 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 | are not availab| 00000a80 6c 65 2e 0d 0d 41 20 6c 6f 77 65 72 20 6c 65 76 |le...A lower lev| 00000a90 65 6c 20 6f 66 20 61 63 63 65 73 73 20 74 6f 20 |el of access to | 00000aa0 74 68 65 20 44 46 53 20 52 4f 4d 20 69 73 20 70 |the DFS ROM is p| 00000ab0 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 44 |rovided by the D| 00000ac0 46 53 20 4f 73 77 6f 72 64 0d 63 6f 6d 6d 61 6e |FS Osword.comman| 00000ad0 64 73 2e 20 4f 73 77 6f 72 64 73 20 26 37 44 20 |ds. Oswords &7D | 00000ae0 74 6f 20 26 37 46 20 61 72 65 20 75 73 65 64 20 |to &7F are used | 00000af0 62 79 20 74 68 65 20 44 46 53 20 61 6e 64 20 4f |by the DFS and O| 00000b00 73 77 6f 72 64 73 20 26 37 30 20 74 6f 20 26 37 |swords &70 to &7| 00000b10 33 0d 61 72 65 20 75 73 65 64 20 62 79 20 74 68 |3.are used by th| 00000b20 65 20 41 44 46 53 2e 0d 0d 54 68 65 20 41 44 46 |e ADFS...The ADF| 00000b30 53 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c 61 |S is only availa| 00000b40 62 6c 65 20 6f 6e 20 42 42 43 20 63 6f 6d 70 75 |ble on BBC compu| 00000b50 74 65 72 73 20 77 68 69 63 68 20 75 73 65 20 74 |ters which use t| 00000b60 68 65 20 57 65 73 74 65 72 6e 20 44 69 67 69 74 |he Western Digit| 00000b70 61 6c 0d 31 37 37 30 20 28 6f 72 20 31 37 37 32 |al.1770 (or 1772| 00000b80 29 20 64 69 73 63 20 63 6f 6e 74 72 6f 6c 6c 65 |) disc controlle| 00000b90 72 2e 20 54 68 65 20 42 42 43 20 42 20 44 46 53 |r. The BBC B DFS| 00000ba0 20 77 61 73 20 64 65 73 69 67 6e 65 64 20 74 6f | was designed to| 00000bb0 20 75 73 65 20 74 68 65 0d 49 6e 74 65 6c 20 38 | use the.Intel 8| 00000bc0 32 37 31 20 64 69 73 63 20 63 6f 6e 74 72 6f 6c |271 disc control| 00000bd0 6c 65 72 20 61 6e 64 20 63 61 6e 6e 6f 74 20 73 |ler and cannot s| 00000be0 75 70 70 6f 72 74 20 74 68 65 20 41 44 46 53 20 |upport the ADFS | 00000bf0 77 69 74 68 6f 75 74 20 61 20 31 37 37 30 0d 75 |without a 1770.u| 00000c00 70 67 72 61 64 65 2e 20 54 68 65 20 31 37 37 30 |pgrade. The 1770| 00000c10 20 64 69 73 63 20 63 6f 6e 74 72 6f 6c 6c 65 72 | disc controller| 00000c20 20 69 73 20 66 69 74 74 65 64 20 61 73 20 73 74 | is fitted as st| 00000c30 61 6e 64 61 72 64 20 74 6f 20 74 68 65 20 42 42 |andard to the BB| 00000c40 43 20 42 2b 20 61 6e 64 0d 4d 61 73 74 65 72 20 |C B+ and.Master | 00000c50 73 65 72 69 65 73 20 63 6f 6d 70 75 74 65 72 73 |series computers| 00000c60 2e 20 54 68 65 20 31 37 37 30 20 64 69 73 63 20 |. The 1770 disc | 00000c70 63 6f 6e 74 72 6f 6c 6c 65 72 20 63 61 6e 20 73 |controller can s| 00000c80 75 70 70 6f 72 74 20 62 6f 74 68 20 73 69 6e 67 |upport both sing| 00000c90 6c 65 0d 64 65 6e 73 69 74 79 20 61 6e 64 20 64 |le.density and d| 00000ca0 6f 75 62 6c 65 20 64 65 6e 73 69 74 79 20 64 69 |ouble density di| 00000cb0 73 63 20 66 6f 72 6d 61 74 73 20 62 75 74 20 74 |sc formats but t| 00000cc0 68 65 20 38 32 37 31 20 63 61 6e 20 6f 6e 6c 79 |he 8271 can only| 00000cd0 20 73 75 70 70 6f 72 74 20 74 68 65 0d 73 69 6e | support the.sin| 00000ce0 67 6c 65 20 64 65 6e 73 69 74 79 20 66 6f 72 6d |gle density form| 00000cf0 61 74 2e 20 41 6c 6c 20 64 69 73 63 20 62 61 73 |at. All disc bas| 00000d00 65 64 20 42 42 43 20 63 6f 6d 70 75 74 65 72 73 |ed BBC computers| 00000d10 20 61 72 65 20 63 61 70 61 62 6c 65 20 6f 66 20 | are capable of | 00000d20 75 73 69 6e 67 0d 4f 73 77 6f 72 64 73 20 26 37 |using.Oswords &7| 00000d30 44 20 74 6f 20 26 37 46 20 62 75 74 20 6f 6e 6c |D to &7F but onl| 00000d40 79 20 74 68 6f 73 65 20 77 69 74 68 20 74 68 65 |y those with the| 00000d50 20 41 44 46 53 20 63 61 6e 20 75 73 65 20 4f 73 | ADFS can use Os| 00000d60 77 6f 72 64 73 20 26 37 30 20 74 6f 0d 26 37 33 |words &70 to.&73| 00000d70 2e 20 4f 6e 6c 79 20 4f 73 77 6f 72 64 73 20 26 |. Only Oswords &| 00000d80 37 44 20 74 6f 20 26 37 46 20 77 69 6c 6c 20 62 |7D to &7F will b| 00000d90 65 20 63 6f 6e 73 69 64 65 72 65 64 20 69 6e 20 |e considered in | 00000da0 64 65 74 61 69 6c 20 69 6e 20 74 68 69 73 20 73 |detail in this s| 00000db0 65 72 69 65 73 2e 0d 0d 54 68 65 20 6c 6f 77 65 |eries...The lowe| 00000dc0 73 74 20 6c 65 76 65 6c 20 6f 66 20 61 63 63 65 |st level of acce| 00000dd0 73 73 20 74 6f 20 64 69 73 63 73 20 63 61 6e 20 |ss to discs can | 00000de0 62 65 20 61 63 68 69 65 76 65 64 20 62 79 20 70 |be achieved by p| 00000df0 72 6f 67 72 61 6d 69 6e 67 20 74 68 65 20 64 69 |rograming the di| 00000e00 73 63 0d 63 6f 6e 74 6f 6c 6c 65 72 20 64 69 72 |sc.contoller dir| 00000e10 65 63 74 6c 79 2e 0d 0d 54 68 65 20 68 61 72 64 |ectly...The hard| 00000e20 77 61 72 65 20 77 68 69 63 68 20 6d 61 6b 65 73 |ware which makes| 00000e30 20 75 70 20 61 20 42 42 43 20 6d 69 63 72 6f 63 | up a BBC microc| 00000e40 6f 6d 70 75 74 65 72 20 73 79 73 74 65 6d 20 69 |omputer system i| 00000e50 73 20 6d 65 6d 6f 72 79 20 6d 61 70 70 65 64 2e |s memory mapped.| 00000e60 0d 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 |.This means that| 00000e70 20 74 68 65 20 75 73 61 62 6c 65 20 72 65 67 69 | the usable regi| 00000e80 73 74 65 72 73 20 6f 66 20 61 6c 6c 20 74 68 65 |sters of all the| 00000e90 20 68 61 72 64 77 61 72 65 20 64 65 76 69 63 65 | hardware device| 00000ea0 73 20 61 76 61 69 6c 61 62 6c 65 0d 74 6f 20 74 |s available.to t| 00000eb0 68 65 20 49 2f 4f 20 70 72 6f 63 65 73 73 6f 72 |he I/O processor| 00000ec0 20 61 72 65 20 6d 61 70 70 65 64 20 6f 6e 74 6f | are mapped onto| 00000ed0 20 74 68 65 20 6d 61 69 6e 20 6d 65 6d 6f 72 79 | the main memory| 00000ee0 20 61 64 64 72 65 73 73 20 73 70 61 63 65 20 75 | address space u| 00000ef0 73 65 64 20 62 79 0d 74 68 65 20 36 35 30 32 20 |sed by.the 6502 | 00000f00 43 50 55 2e 20 50 61 67 65 20 26 46 45 2c 20 69 |CPU. Page &FE, i| 00000f10 65 2e 20 6d 65 6d 6f 72 79 20 66 72 6f 6d 20 26 |e. memory from &| 00000f20 46 45 30 30 20 74 6f 20 26 46 45 46 46 2c 20 69 |FE00 to &FEFF, i| 00000f30 73 20 6b 6e 6f 77 6e 20 61 73 20 53 68 65 69 6c |s known as Sheil| 00000f40 61 0d 61 6e 64 20 74 68 69 73 20 70 61 67 65 20 |a.and this page | 00000f50 69 73 20 72 65 73 65 72 76 65 64 20 66 6f 72 20 |is reserved for | 00000f60 74 68 65 20 68 61 72 64 77 61 72 65 20 6f 6e 20 |the hardware on | 00000f70 74 68 65 20 49 2f 4f 20 70 72 6f 63 65 73 73 6f |the I/O processo| 00000f80 72 27 73 20 63 69 72 63 75 69 74 0d 62 6f 61 72 |r's circuit.boar| 00000f90 64 2e 0d 0d 53 68 65 69 6c 61 20 61 64 64 72 65 |d...Sheila addre| 00000fa0 73 73 65 73 20 26 38 30 20 74 6f 20 26 39 46 20 |sses &80 to &9F | 00000fb0 61 72 65 20 61 76 61 69 6c 61 62 6c 65 20 74 6f |are available to| 00000fc0 20 74 68 65 20 66 6c 6f 70 70 79 20 64 69 73 63 | the floppy disc| 00000fd0 20 63 6f 6e 74 72 6f 6c 6c 65 72 2e 0d 46 69 76 | controller..Fiv| 00000fe0 65 20 6f 66 20 74 68 65 20 42 42 43 20 42 27 73 |e of the BBC B's| 00000ff0 20 38 32 37 31 20 72 65 67 69 73 74 65 72 73 20 | 8271 registers | 00001000 61 72 65 20 6d 61 70 70 65 64 20 6f 6e 74 6f 20 |are mapped onto | 00001010 74 68 65 20 53 68 65 69 6c 61 20 61 64 64 72 65 |the Sheila addre| 00001020 73 73 65 73 0d 66 72 6f 6d 20 26 46 45 38 30 20 |sses.from &FE80 | 00001030 74 6f 20 26 46 45 38 32 2e 20 54 68 72 65 65 20 |to &FE82. Three | 00001040 6f 66 20 74 68 65 20 66 69 76 65 20 72 65 67 69 |of the five regi| 00001050 73 74 65 72 73 20 63 61 6e 20 6f 6e 6c 79 20 62 |sters can only b| 00001060 65 20 77 72 69 74 74 65 6e 20 69 6e 74 6f 0d 61 |e written into.a| 00001070 6e 64 20 74 68 65 20 6f 74 68 65 72 20 74 77 6f |nd the other two| 00001080 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 72 65 61 | can only be rea| 00001090 64 20 66 72 6f 6d 2e 20 46 6f 72 20 74 68 69 73 |d from. For this| 000010a0 20 72 65 61 73 6f 6e 20 6f 6e 6c 79 20 74 68 72 | reason only thr| 000010b0 65 65 20 53 68 65 69 6c 61 0d 61 64 64 72 65 73 |ee Sheila.addres| 000010c0 73 65 73 20 6e 65 65 64 20 74 6f 20 62 65 20 75 |ses need to be u| 000010d0 73 65 64 20 74 6f 20 61 63 63 65 73 73 20 74 68 |sed to access th| 000010e0 65 20 66 69 76 65 20 72 65 67 69 73 74 65 72 73 |e five registers| 000010f0 2e 20 54 68 65 73 65 20 74 68 72 65 65 0d 61 64 |. These three.ad| 00001100 64 72 65 73 73 65 73 20 63 61 6e 20 62 65 20 75 |dresses can be u| 00001110 73 65 64 20 74 6f 20 63 6f 6d 6d 75 6e 69 63 61 |sed to communica| 00001120 74 65 20 77 69 74 68 20 74 68 65 20 38 32 37 31 |te with the 8271| 00001130 20 61 6e 64 20 74 6f 20 69 6e 73 74 72 75 63 74 | and to instruct| 00001140 20 69 74 20 74 6f 0d 65 78 65 63 75 74 65 20 61 | it to.execute a| 00001150 20 77 69 64 65 20 72 61 6e 67 65 20 6f 66 20 66 | wide range of f| 00001160 75 6e 63 74 69 6f 6e 73 2e 20 53 68 65 69 6c 61 |unctions. Sheila| 00001170 20 61 64 64 72 65 73 73 20 26 46 45 38 34 20 69 | address &FE84 i| 00001180 73 20 75 73 65 64 20 74 6f 20 70 61 73 73 0d 64 |s used to pass.d| 00001190 61 74 61 20 74 6f 2c 20 61 6e 64 20 74 6f 20 72 |ata to, and to r| 000011a0 65 61 64 20 64 61 74 61 20 66 72 6f 6d 2c 20 74 |ead data from, t| 000011b0 68 65 20 64 69 73 63 20 63 6f 6e 74 72 6f 6c 6c |he disc controll| 000011c0 65 72 2e 20 54 68 65 20 6d 61 70 70 69 6e 67 20 |er. The mapping | 000011d0 6f 66 20 74 68 65 0d 38 32 37 31 20 72 65 67 69 |of the.8271 regi| 000011e0 73 74 65 72 73 20 6f 6e 74 6f 20 53 68 65 69 6c |sters onto Sheil| 000011f0 61 20 61 64 64 72 65 73 73 65 73 20 69 73 20 73 |a addresses is s| 00001200 68 6f 77 6e 20 69 6e 20 66 69 67 75 72 65 20 31 |hown in figure 1| 00001210 2e 0d 0d 0d 20 20 20 20 20 20 20 20 20 20 20 20 |.... | 00001220 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | +----------| 00001230 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d |-+---------+----| 00001240 2d 2d 2d 2d 2d 2b 0d 20 20 20 20 20 20 20 20 20 |-----+. | 00001250 20 20 20 20 20 20 20 20 7c 20 38 32 37 31 20 20 | | 8271 | 00001260 20 20 20 20 7c 20 53 68 65 69 6c 61 20 20 7c 20 | | Sheila | | 00001270 72 65 61 64 20 6f 72 20 7c 0d 20 20 20 20 20 20 |read or |. | 00001280 20 20 20 20 20 20 20 20 20 20 20 7c 20 72 65 67 | | reg| 00001290 69 73 74 65 72 20 20 7c 20 61 64 64 72 65 73 73 |ister | address| 000012a0 20 7c 20 77 72 69 74 65 20 20 20 7c 0d 20 20 20 | | write |. | 000012b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2b 2d | +-| 000012c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d |----------+-----| 000012d0 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0d |----+---------+.| 000012e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000012f0 20 7c 20 73 74 61 74 75 73 20 20 20 20 7c 20 26 | | status | &| 00001300 46 45 38 30 20 20 20 7c 20 72 65 61 64 20 20 20 |FE80 | read | 00001310 20 7c 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 | |. | 00001320 20 20 20 20 7c 20 72 65 73 75 6c 74 20 20 20 20 | | result | 00001330 7c 20 26 46 45 38 31 20 20 20 7c 20 72 65 61 64 || &FE81 | read| 00001340 20 20 20 20 7c 0d 20 20 20 20 20 20 20 20 20 20 | |. | 00001350 20 20 20 20 20 20 20 7c 20 63 6f 6d 6d 61 6e 64 | | command| 00001360 20 20 20 7c 20 26 46 45 38 30 20 20 20 7c 20 77 | | &FE80 | w| 00001370 72 69 74 65 20 20 20 7c 0d 20 20 20 20 20 20 20 |rite |. | 00001380 20 20 20 20 20 20 20 20 20 20 7c 20 70 61 72 61 | | para| 00001390 6d 65 74 65 72 20 7c 20 26 46 45 38 31 20 20 20 |meter | &FE81 | 000013a0 7c 20 77 72 69 74 65 20 20 20 7c 0d 20 20 20 20 || write |. | 000013b0 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 72 | | r| 000013c0 65 73 65 74 20 20 20 20 20 7c 20 26 46 45 38 32 |eset | &FE82| 000013d0 20 20 20 7c 20 77 72 69 74 65 20 20 20 7c 0d 20 | | write |. | 000013e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000013f0 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d |+-----------+---| 00001400 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d |------+---------| 00001410 2b 0d 0d 46 69 67 75 72 65 20 31 2e 20 54 68 65 |+..Figure 1. The| 00001420 20 38 32 37 31 20 72 65 67 69 73 74 65 72 73 20 | 8271 registers | 00001430 6d 61 70 70 65 64 20 6f 6e 74 6f 20 53 68 65 69 |mapped onto Shei| 00001440 6c 61 20 61 64 64 72 65 73 73 65 73 0d 2d 2d 2d |la addresses.---| 00001450 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00001480 2d 2d 2d 2d 2d 2d 0d 0d 0d 54 68 65 20 38 32 37 |------...The 827| 00001490 31 20 68 61 73 20 74 77 65 6c 76 65 20 6f 74 68 |1 has twelve oth| 000014a0 65 72 20 72 65 67 69 73 74 65 72 73 2c 20 6b 6e |er registers, kn| 000014b0 6f 77 6e 20 61 73 20 74 68 65 20 53 70 65 63 69 |own as the Speci| 000014c0 61 6c 20 52 65 67 69 73 74 65 72 73 2c 20 77 68 |al Registers, wh| 000014d0 69 63 68 0d 61 72 65 20 6e 6f 74 20 6d 61 70 70 |ich.are not mapp| 000014e0 65 64 20 6f 6e 74 6f 20 74 68 65 20 53 68 65 69 |ed onto the Shei| 000014f0 6c 61 20 61 64 64 72 65 73 73 65 73 2e 20 41 63 |la addresses. Ac| 00001500 63 65 73 73 20 74 6f 20 74 68 65 73 65 20 72 65 |cess to these re| 00001510 67 69 73 74 65 72 73 20 63 61 6e 20 62 65 0d 61 |gisters can be.a| 00001520 63 68 69 65 76 65 64 20 69 6e 64 69 72 65 63 74 |chieved indirect| 00001530 6c 79 20 75 73 69 6e 67 20 74 68 65 20 38 32 37 |ly using the 827| 00001540 31 20 52 65 61 64 20 53 70 65 63 69 61 6c 20 52 |1 Read Special R| 00001550 65 67 69 73 74 65 72 20 63 6f 6d 6d 61 6e 64 20 |egister command | 00001560 6f 72 20 74 68 65 0d 38 32 37 31 20 57 72 69 74 |or the.8271 Writ| 00001570 65 20 53 70 65 63 69 61 6c 20 52 65 67 69 73 74 |e Special Regist| 00001580 65 72 20 63 6f 6d 6d 61 6e 64 2c 20 62 6f 74 68 |er command, both| 00001590 20 6f 66 20 77 68 69 63 68 20 63 61 6e 20 62 65 | of which can be| 000015a0 20 73 65 6e 74 20 74 6f 20 74 68 65 20 64 69 73 | sent to the dis| 000015b0 63 0d 63 6f 6e 74 72 6f 6c 6c 65 72 20 75 73 69 |c.controller usi| 000015c0 6e 67 20 74 68 65 20 72 65 67 69 73 74 65 72 73 |ng the registers| 000015d0 20 69 6e 20 66 69 67 75 72 65 20 31 2e 20 54 68 | in figure 1. Th| 000015e0 65 20 53 68 65 69 6c 61 20 61 64 64 72 65 73 73 |e Sheila address| 000015f0 65 73 20 63 61 6e 20 62 65 0d 70 65 65 6b 65 64 |es can be.peeked| 00001600 20 6f 72 20 70 6f 6b 65 64 20 75 73 69 6e 67 20 | or poked using | 00001610 74 68 65 20 69 6e 64 69 72 65 63 74 69 6f 6e 20 |the indirection | 00001620 6f 70 65 72 61 74 6f 72 20 62 75 74 20 74 6f 20 |operator but to | 00001630 70 72 6f 64 75 63 65 20 54 75 62 65 2d 0d 63 6f |produce Tube-.co| 00001640 6d 70 61 74 69 62 6c 65 20 63 6f 64 65 20 69 74 |mpatible code it| 00001650 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 74 6f | is necessary to| 00001660 20 75 73 65 20 4f 73 62 79 74 65 20 26 39 36 20 | use Osbyte &96 | 00001670 74 6f 20 72 65 61 64 20 74 68 65 20 53 68 65 69 |to read the Shei| 00001680 6c 61 0d 61 64 64 72 65 73 73 65 73 20 61 6e 64 |la.addresses and| 00001690 20 4f 73 62 79 74 65 20 26 39 37 20 74 6f 20 77 | Osbyte &97 to w| 000016a0 72 69 74 65 20 74 6f 20 74 68 65 6d 2e 0d 0d 55 |rite to them...U| 000016b0 73 69 6e 67 20 4f 73 62 79 74 65 73 20 26 39 36 |sing Osbytes &96| 000016c0 20 61 6e 64 20 26 39 37 20 77 69 6c 6c 20 65 6e | and &97 will en| 000016d0 73 75 72 65 20 74 68 61 74 20 74 68 65 20 63 6f |sure that the co| 000016e0 64 65 20 69 73 20 54 75 62 65 2d 63 6f 6d 70 61 |de is Tube-compa| 000016f0 74 69 62 6c 65 20 62 75 74 0d 69 74 20 6e 6f 74 |tible but.it not| 00001700 20 74 68 65 20 65 61 73 69 65 73 74 20 6f 72 20 | the easiest or | 00001710 74 68 65 20 62 65 73 74 20 77 61 79 20 74 6f 20 |the best way to | 00001720 70 72 6f 67 72 61 6d 20 74 68 65 20 64 69 73 63 |program the disc| 00001730 20 63 6f 6e 74 72 6f 6c 6c 65 72 2e 20 4f 73 77 | controller. Osw| 00001740 6f 72 64 0d 26 37 46 20 65 78 65 63 75 74 65 73 |ord.&7F executes| 00001750 20 61 20 73 69 6e 67 6c 65 20 38 32 37 31 20 63 | a single 8271 c| 00001760 6f 6d 6d 61 6e 64 20 74 68 72 6f 75 67 68 20 61 |ommand through a| 00001770 6c 6c 20 69 74 73 20 70 68 61 73 65 73 20 61 6e |ll its phases an| 00001780 64 20 72 65 6c 69 65 76 65 73 20 74 68 65 0d 70 |d relieves the.p| 00001790 72 6f 67 72 61 6d 6d 65 72 20 6f 66 20 74 68 65 |rogrammer of the| 000017a0 20 70 72 6f 62 6c 65 6d 73 20 61 73 73 6f 63 69 | problems associ| 000017b0 61 74 65 64 20 77 69 74 68 20 74 65 63 68 6e 69 |ated with techni| 000017c0 71 75 65 73 20 73 75 63 68 20 61 73 20 6e 6f 6e |ques such as non| 000017d0 2d 6d 61 73 6b 61 62 6c 65 0d 69 6e 74 65 72 75 |-maskable.interu| 000017e0 70 74 20 68 61 6e 64 6c 69 6e 67 20 77 68 69 63 |pt handling whic| 000017f0 68 20 6d 75 73 74 20 62 65 20 75 73 65 64 20 77 |h must be used w| 00001800 68 65 6e 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 |hen programming | 00001810 74 68 65 20 38 32 37 31 2e 20 4f 73 77 6f 72 64 |the 8271. Osword| 00001820 20 26 37 46 0d 75 73 65 73 20 74 68 65 20 53 68 | &7F.uses the Sh| 00001830 65 69 6c 61 20 61 64 64 72 65 73 73 65 73 20 66 |eila addresses f| 00001840 72 6f 6d 20 26 46 45 38 30 20 74 6f 20 26 46 45 |rom &FE80 to &FE| 00001850 38 34 20 62 75 74 20 74 68 65 20 70 72 6f 67 72 |84 but the progr| 00001860 61 6d 6d 65 72 20 64 6f 65 73 20 6e 6f 74 0d 68 |ammer does not.h| 00001870 61 76 65 20 74 6f 20 62 65 20 63 6f 6e 63 65 72 |ave to be concer| 00001880 6e 65 64 20 77 69 74 68 2c 20 6f 72 20 65 76 65 |ned with, or eve| 00001890 6e 20 62 65 20 61 77 61 72 65 20 6f 66 2c 20 74 |n be aware of, t| 000018a0 68 65 20 64 65 74 61 69 6c 65 64 20 75 73 65 20 |he detailed use | 000018b0 6f 66 20 74 68 65 73 65 0d 61 64 64 72 65 73 73 |of these.address| 000018c0 65 73 2e 20 4f 73 77 6f 72 64 20 26 37 46 20 70 |es. Osword &7F p| 000018d0 72 6f 76 69 64 65 73 20 61 20 73 74 61 6e 64 61 |rovides a standa| 000018e0 72 64 20 69 6e 74 65 72 66 61 63 65 20 6f 6e 20 |rd interface on | 000018f0 74 68 65 20 64 69 73 63 20 63 6f 6e 74 72 6f 6c |the disc control| 00001900 6c 65 72 0d 61 6e 64 20 69 73 20 74 68 65 20 6d |ler.and is the m| 00001910 65 74 68 6f 64 20 6f 66 20 61 63 63 65 73 73 69 |ethod of accessi| 00001920 6e 67 20 74 68 65 20 64 69 73 63 20 68 61 72 64 |ng the disc hard| 00001930 77 61 72 65 20 75 73 65 64 20 69 6e 20 74 68 69 |ware used in thi| 00001940 73 20 73 65 72 69 65 73 2e 0d 0d 42 65 66 6f 72 |s series...Befor| 00001950 65 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 74 68 65 |e looking at the| 00001960 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 79 20 | single density | 00001970 4f 73 77 6f 72 64 73 20 69 6e 20 64 65 74 61 69 |Oswords in detai| 00001980 6c 20 69 74 20 69 73 20 6e 65 63 65 73 73 61 72 |l it is necessar| 00001990 79 20 74 6f 0d 75 6e 64 65 72 73 74 61 6e 64 20 |y to.understand | 000019a0 74 68 65 20 66 6f 72 6d 61 74 20 75 73 65 64 20 |the format used | 000019b0 62 79 20 73 69 6e 67 6c 65 20 64 65 6e 73 69 74 |by single densit| 000019c0 79 20 64 69 73 63 73 2e 0d 0d 54 68 65 20 42 42 |y discs...The BB| 000019d0 43 20 63 6f 6d 70 75 74 65 72 20 69 73 20 63 61 |C computer is ca| 000019e0 70 61 62 6c 65 20 6f 66 20 75 73 69 6e 67 20 33 |pable of using 3| 000019f0 20 31 2f 32 20 69 6e 63 68 2c 20 35 20 31 2f 34 | 1/2 inch, 5 1/4| 00001a00 20 69 6e 63 68 20 61 6e 64 20 38 20 69 6e 63 68 | inch and 8 inch| 00001a10 0d 64 69 73 63 73 2c 20 61 6c 74 68 6f 75 67 68 |.discs, although| 00001a20 20 38 20 69 6e 63 68 20 64 69 73 63 73 20 61 72 | 8 inch discs ar| 00001a30 65 20 73 6f 6d 65 74 68 69 6e 67 20 6f 66 20 61 |e something of a| 00001a40 20 72 61 72 69 74 79 20 74 68 65 73 65 20 64 61 | rarity these da| 00001a50 79 73 2e 20 42 65 63 61 75 73 65 0d 38 20 69 6e |ys. Because.8 in| 00001a60 63 68 20 64 69 73 63 73 20 61 72 65 20 73 6f 20 |ch discs are so | 00001a70 75 6e 63 6f 6d 6d 6f 6e 20 74 68 65 79 20 77 69 |uncommon they wi| 00001a80 6c 6c 20 6e 6f 74 20 62 65 20 64 69 73 63 75 73 |ll not be discus| 00001a90 73 65 64 20 69 6e 20 74 68 69 73 20 73 65 72 69 |sed in this seri| 00001aa0 65 73 2e 0d 42 6f 74 68 20 33 20 31 2f 32 20 69 |es..Both 3 1/2 i| 00001ab0 6e 63 68 20 61 6e 64 20 35 20 31 2f 34 20 69 6e |nch and 5 1/4 in| 00001ac0 63 68 20 64 69 73 63 73 20 75 73 65 20 74 68 65 |ch discs use the| 00001ad0 20 73 61 6d 65 20 66 6f 72 6d 61 74 20 61 6e 64 | same format and| 00001ae0 20 61 72 65 20 61 76 61 69 6c 61 62 6c 65 0d 69 | are available.i| 00001af0 6e 20 62 6f 74 68 20 73 69 6e 67 6c 65 20 61 6e |n both single an| 00001b00 64 20 64 6f 75 62 6c 65 20 73 69 64 65 64 20 76 |d double sided v| 00001b10 65 72 73 69 6f 6e 73 20 77 69 74 68 20 65 69 74 |ersions with eit| 00001b20 68 65 72 20 34 30 20 6f 72 20 38 30 20 74 72 61 |her 40 or 80 tra| 00001b30 63 6b 73 20 70 65 72 0d 73 69 64 65 2e 0d 0d 45 |cks per.side...E| 00001b40 61 63 68 20 74 72 61 63 6b 20 69 73 20 73 75 62 |ach track is sub| 00001b50 64 69 76 69 64 65 64 20 69 6e 74 6f 20 61 20 6e |divided into a n| 00001b60 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 73 |umber of sectors| 00001b70 20 65 61 63 68 20 6f 66 20 77 68 69 63 68 20 68 | each of which h| 00001b80 61 73 20 61 6e 0d 69 64 65 6e 74 69 66 69 63 61 |as an.identifica| 00001b90 74 69 6f 6e 20 66 69 65 6c 64 20 28 75 73 75 61 |tion field (usua| 00001ba0 6c 6c 79 20 63 61 6c 6c 65 64 20 61 6e 20 49 44 |lly called an ID| 00001bb0 20 66 69 65 6c 64 29 20 61 6e 64 20 61 20 64 61 | field) and a da| 00001bc0 74 61 20 66 69 65 6c 64 2e 0d 0d 54 68 65 72 65 |ta field...There| 00001bd0 20 61 72 65 20 61 20 6e 75 6d 62 65 72 20 6f 66 | are a number of| 00001be0 20 67 61 70 73 20 61 73 73 6f 63 69 61 74 65 64 | gaps associated| 00001bf0 20 77 69 74 68 20 65 61 63 68 20 74 72 61 63 6b | with each track| 00001c00 2e 20 54 68 65 20 67 61 70 73 20 61 72 65 20 61 |. The gaps are a| 00001c10 0d 76 61 72 69 61 62 6c 65 20 6e 75 6d 62 65 72 |.variable number| 00001c20 20 6f 66 20 62 79 74 65 73 20 62 65 74 77 65 65 | of bytes betwee| 00001c30 6e 20 74 68 65 20 49 44 20 61 6e 64 20 64 61 74 |n the ID and dat| 00001c40 61 20 66 69 65 6c 64 73 20 61 6e 64 20 61 72 65 |a fields and are| 00001c50 20 75 73 65 64 20 74 6f 0d 73 70 61 63 65 20 6f | used to.space o| 00001c60 75 74 20 74 68 65 20 66 69 65 6c 64 73 20 74 6f |ut the fields to| 00001c70 20 70 72 65 76 65 6e 74 20 74 68 65 20 73 65 63 | prevent the sec| 00001c80 74 6f 72 73 20 6f 76 65 72 77 72 69 74 69 6e 67 |tors overwriting| 00001c90 20 65 61 63 68 20 6f 74 68 65 72 20 77 68 65 6e | each other when| 00001ca0 0d 74 68 65 20 64 69 73 63 20 73 70 65 65 64 20 |.the disc speed | 00001cb0 76 61 72 69 65 73 2e 0d 0d 50 68 79 73 69 63 61 |varies...Physica| 00001cc0 6c 20 74 72 61 63 6b 73 20 61 6e 64 20 73 65 63 |l tracks and sec| 00001cd0 74 6f 72 73 20 61 72 65 20 69 64 65 6e 74 69 66 |tors are identif| 00001ce0 69 65 64 20 62 79 20 74 68 65 69 72 20 70 68 79 |ied by their phy| 00001cf0 73 69 63 61 6c 20 70 6f 73 69 74 69 6f 6e 20 6f |sical position o| 00001d00 6e 20 61 0d 64 69 73 63 2e 20 50 68 79 73 69 63 |n a.disc. Physic| 00001d10 61 6c 20 74 72 61 63 6b 20 30 20 69 73 20 74 68 |al track 0 is th| 00001d20 65 20 6f 75 74 65 72 6d 6f 73 74 20 74 72 61 63 |e outermost trac| 00001d30 6b 20 61 6e 64 20 70 68 79 73 69 63 61 6c 20 73 |k and physical s| 00001d40 65 63 74 6f 72 20 30 20 69 73 20 74 68 65 0d 66 |ector 0 is the.f| 00001d50 69 72 73 74 20 73 65 63 74 6f 72 20 6f 6e 20 61 |irst sector on a| 00001d60 20 74 72 61 63 6b 20 61 66 74 65 72 20 74 68 65 | track after the| 00001d70 20 69 6e 64 65 78 20 70 75 6c 73 65 20 68 6f 6c | index pulse hol| 00001d80 65 2e 20 45 76 65 72 79 20 73 65 63 74 6f 72 20 |e. Every sector | 00001d90 69 73 20 67 69 76 65 6e 0d 61 20 6f 6e 65 2d 62 |is given.a one-b| 00001da0 79 74 65 20 6c 6f 67 69 63 61 6c 20 74 72 61 63 |yte logical trac| 00001db0 6b 20 6e 75 6d 62 65 72 20 61 6e 64 20 61 20 6f |k number and a o| 00001dc0 6e 65 2d 62 79 74 65 20 6c 6f 67 69 63 61 6c 20 |ne-byte logical | 00001dd0 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 2e 20 54 |sector number. T| 00001de0 68 65 0d 70 68 79 73 69 63 61 6c 20 74 72 61 63 |he.physical trac| 00001df0 6b 20 6e 75 6d 62 65 72 73 20 61 6e 64 20 6c 6f |k numbers and lo| 00001e00 67 69 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 |gical track numb| 00001e10 65 72 73 20 61 72 65 20 74 68 65 20 73 61 6d 65 |ers are the same| 00001e20 20 6f 6e 20 64 69 73 63 73 0d 66 6f 72 6d 61 74 | on discs.format| 00001e30 74 65 64 20 66 6f 72 20 74 68 65 20 41 63 6f 72 |ted for the Acor| 00001e40 6e 20 44 46 53 20 62 75 74 20 74 68 65 20 70 68 |n DFS but the ph| 00001e50 79 73 69 63 61 6c 20 61 6e 64 20 6c 6f 67 69 63 |ysical and logic| 00001e60 61 6c 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 |al sector number| 00001e70 73 20 64 6f 0d 6e 6f 74 20 68 61 76 65 20 74 6f |s do.not have to| 00001e80 20 62 65 20 74 68 65 20 73 61 6d 65 2e 20 4f 6e | be the same. On| 00001e90 65 20 6f 66 20 74 68 65 20 6d 61 6e 79 20 77 61 |e of the many wa| 00001ea0 79 73 20 6f 66 20 63 6f 70 79 2d 70 72 6f 74 65 |ys of copy-prote| 00001eb0 63 74 69 6e 67 20 64 69 73 63 73 20 69 73 0d 74 |cting discs is.t| 00001ec0 6f 20 6d 61 6b 65 20 74 68 65 20 70 68 79 73 69 |o make the physi| 00001ed0 63 61 6c 20 61 6e 64 20 6c 6f 67 69 63 61 6c 20 |cal and logical | 00001ee0 74 72 61 63 6b 20 6e 75 6d 62 65 72 73 20 64 69 |track numbers di| 00001ef0 66 66 65 72 65 6e 74 2c 20 74 68 69 73 20 65 66 |fferent, this ef| 00001f00 66 65 63 74 69 76 6c 79 0d 64 69 73 61 62 6c 65 |fectivly.disable| 00001f10 73 20 74 68 65 20 44 46 53 20 2a 42 41 43 4b 55 |s the DFS *BACKU| 00001f20 50 20 63 6f 6d 6d 61 6e 64 2e 0d 0d 54 68 65 20 |P command...The | 00001f30 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f 72 |number of sector| 00001f40 73 2c 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 |s, the size of t| 00001f50 68 65 20 64 61 74 61 20 66 69 65 6c 64 73 2c 20 |he data fields, | 00001f60 61 6e 64 20 74 68 65 20 67 61 70 20 73 69 7a 65 |and the gap size| 00001f70 73 20 61 72 65 0d 64 65 74 65 72 6d 69 6e 65 64 |s are.determined| 00001f80 20 77 68 65 6e 20 74 68 65 20 64 69 73 63 20 69 | when the disc i| 00001f90 73 20 66 6f 72 6d 61 74 74 65 64 2e 20 49 6e 20 |s formatted. In | 00001fa0 6d 6f 64 75 6c 65 20 33 20 79 6f 75 20 77 69 6c |module 3 you wil| 00001fb0 6c 20 68 61 76 65 20 74 68 65 0d 6f 70 70 6f 72 |l have the.oppor| 00001fc0 74 75 6e 69 74 79 20 74 6f 20 76 61 72 79 20 74 |tunity to vary t| 00001fd0 68 65 73 65 20 70 61 72 61 6d 65 74 65 72 73 20 |hese parameters | 00001fe0 62 75 74 2c 20 77 68 61 74 65 76 65 72 20 74 68 |but, whatever th| 00001ff0 65 20 66 6f 72 6d 61 74 2c 20 65 61 63 68 20 73 |e format, each s| 00002000 69 6e 67 6c 65 0d 64 65 6e 73 69 74 79 20 74 72 |ingle.density tr| 00002010 61 63 6b 20 68 61 73 20 74 68 65 20 6c 61 79 6f |ack has the layo| 00002020 75 74 20 73 68 6f 77 6e 20 69 6e 20 66 69 67 75 |ut shown in figu| 00002030 72 65 20 32 20 62 65 6c 6f 77 2e 0d 0d 0d 20 20 |re 2 below.... | 00002040 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d |+------------+--| 00002050 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d |---------+------| 00002060 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0d 20 20 7c |+----------+. || 00002070 20 53 79 6e 63 20 62 79 74 65 73 20 7c 20 44 61 | Sync bytes | Da| 00002080 74 61 20 6d 61 72 6b 20 7c 20 64 61 74 61 20 7c |ta mark | data || 00002090 20 64 61 74 61 20 43 52 43 20 7c 0d 20 20 2b 2d | data CRC |. +-| 000020a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d |-----------+----| 000020b0 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2b 2d |-------+------+-| 000020c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0d 20 20 20 20 20 |---------+. | 000020d0 20 20 20 20 20 20 20 20 20 5c 20 20 20 20 20 20 | \ | 000020e0 20 20 20 20 20 20 2f 0d 49 6e 64 65 78 20 20 20 | /.Index | 000020f0 20 20 20 20 20 20 20 5c 20 20 44 61 74 61 20 20 | \ Data | 00002100 20 20 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 | / | 00002110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002120 20 20 20 20 20 20 20 20 20 20 20 45 6e 64 20 6f | End o| 00002130 66 0d 6d 61 72 6b 20 20 20 20 20 20 20 20 20 20 |f.mark | 00002140 20 20 5c 20 66 69 65 6c 64 20 20 2f 20 20 20 20 | \ field / | 00002150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00002170 20 20 20 20 20 20 74 72 61 63 6b 0d 2b 2d 2d 2d | track.+---| 00002180 2d 2d 2b 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2b 2d 2d |--+----+-----+--| 00002190 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2b |----+-----+----+| 000021a0 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d |-----+------+---| 000021b0 2d 2d 2b 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2b 2d |--+ +-----+-| 000021c0 2d 2d 2d 2d 2b 0d 7c 20 47 61 70 20 7c 20 49 44 |----+.| Gap | ID| 000021d0 20 7c 20 47 61 70 20 7c 20 44 61 74 61 20 7c 20 | | Gap | Data | | 000021e0 47 61 70 20 7c 20 49 44 20 7c 20 47 61 70 20 7c |Gap | ID | Gap || 000021f0 20 44 61 74 61 20 7c 20 47 61 70 20 7c 20 2e 2e | Data | Gap | ..| 00002200 2e 20 7c 20 47 61 70 20 7c 20 47 61 70 20 7c 0d |. | Gap | Gap |.| 00002210 7c 20 20 31 20 20 7c 20 20 20 20 7c 20 20 32 20 || 1 | | 2 | 00002220 20 7c 20 20 30 20 20 20 7c 20 20 33 20 20 7c 20 | | 0 | 3 | | 00002230 20 20 20 7c 20 20 32 20 20 7c 20 20 31 20 20 20 | | 2 | 1 | 00002240 7c 20 20 33 20 20 7c 20 20 20 20 20 7c 20 20 34 || 3 | | 4| 00002250 20 20 7c 20 20 35 20 20 7c 0d 2b 2d 2d 2d 2d 2d | | 5 |.+-----| 00002260 2b 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d |+----+-----+----| 00002270 2d 2d 2b 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2b 2d 2d |--+-----+----+--| 00002280 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d |---+------+-----| 00002290 2b 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2b 2d 2d 2d |+ +-----+---| 000022a0 2d 2d 2b 0d 20 20 20 20 20 2f 20 49 44 20 20 20 |--+. / ID | 000022b0 5c 0d 20 20 20 20 2f 20 66 69 65 6c 64 20 20 5c |\. / field \| 000022c0 0d 20 20 20 2f 20 20 20 20 20 20 20 20 20 20 5c |. / \| 000022d0 0d 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d |. +-------+----| 000022e0 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d |--+---------+---| 000022f0 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b |-----+---------+| 00002300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d |-----------+----| 00002310 2d 2d 2d 2d 2b 0d 20 20 7c 20 53 79 6e 63 20 20 |----+. | Sync | 00002320 7c 20 49 44 20 20 20 7c 20 4c 6f 67 69 63 61 6c || ID | Logical| 00002330 20 7c 20 48 65 61 64 20 20 20 7c 20 4c 6f 67 69 | | Head | Logi| 00002340 63 61 6c 20 7c 20 44 61 74 61 20 73 69 7a 65 20 |cal | Data size | 00002350 7c 20 53 65 63 74 6f 72 20 7c 0d 20 20 7c 20 62 || Sector |. | b| 00002360 79 74 65 73 20 7c 20 6d 61 72 6b 20 7c 20 74 72 |ytes | mark | tr| 00002370 61 63 6b 20 20 20 7c 20 6e 75 6d 62 65 72 20 7c |ack | number || 00002380 20 73 65 63 74 6f 72 20 20 7c 20 63 6f 64 65 20 | sector | code | 00002390 20 20 20 20 20 7c 20 49 44 20 43 52 43 20 7c 0d | | ID CRC |.| 000023a0 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d | +-------+-----| 000023b0 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d |-+---------+----| 000023c0 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d |----+---------+-| 000023d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d |----------+-----| 000023e0 2d 2d 2d 2b 0d 0d 46 69 67 75 72 65 20 32 2e 20 |---+..Figure 2. | 000023f0 54 68 65 20 6c 61 79 6f 75 74 20 6f 66 20 61 20 |The layout of a | 00002400 44 46 53 20 74 72 61 63 6b 2e 0d 2d 2d 2d 2d 2d |DFS track..-----| 00002410 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00002420 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d |---------------.| 00002430 0d 0d 46 69 67 75 72 65 20 32 20 69 6c 6c 75 73 |..Figure 2 illus| 00002440 74 72 61 74 65 73 20 61 20 63 6f 6d 70 6c 65 74 |trates a complet| 00002450 65 20 74 72 61 63 6b 20 77 69 74 68 20 6f 6e 65 |e track with one| 00002460 20 6f 66 20 74 68 65 20 64 61 74 61 20 66 69 65 | of the data fie| 00002470 6c 64 73 20 65 78 70 61 6e 64 65 64 0d 61 62 6f |lds expanded.abo| 00002480 76 65 20 74 68 65 20 63 65 6e 74 72 65 20 6c 69 |ve the centre li| 00002490 6e 65 20 61 6e 64 20 6f 6e 65 20 6f 66 20 74 68 |ne and one of th| 000024a0 65 20 49 44 20 66 69 65 6c 64 73 20 65 78 70 61 |e ID fields expa| 000024b0 6e 64 65 64 20 62 65 6c 6f 77 2e 20 49 66 20 66 |nded below. If f| 000024c0 69 67 75 72 65 20 32 0d 69 73 20 74 61 6b 65 6e |igure 2.is taken| 000024d0 20 61 73 20 61 6e 20 69 6c 6c 75 73 74 72 61 74 | as an illustrat| 000024e0 69 6f 6e 20 6f 66 20 61 20 31 30 20 73 65 63 74 |ion of a 10 sect| 000024f0 6f 72 20 74 72 61 63 6b 2c 20 74 68 65 6e 20 73 |or track, then s| 00002500 65 63 74 6f 72 73 20 32 20 2d 20 39 20 68 61 76 |ectors 2 - 9 hav| 00002510 65 0d 62 65 65 6e 20 6c 65 66 74 20 6f 75 74 2e |e.been left out.| 00002520 0d 0d 54 68 65 20 69 6e 64 65 78 20 6d 61 72 6b |..The index mark| 00002530 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e | at the beginnin| 00002540 67 20 6f 66 20 74 68 65 20 74 72 61 63 6b 20 68 |g of the track h| 00002550 61 73 20 69 74 73 20 70 6f 73 69 74 69 6f 6e 20 |as its position | 00002560 64 65 74 65 72 6d 69 6e 65 64 0d 62 79 20 74 68 |determined.by th| 00002570 65 20 70 68 79 73 69 63 61 6c 20 69 6e 64 65 78 |e physical index| 00002580 20 70 75 6c 73 65 20 68 6f 6c 65 20 69 6e 20 74 | pulse hole in t| 00002590 68 65 20 64 69 73 63 2e 20 54 68 69 73 20 6d 61 |he disc. This ma| 000025a0 72 6b 20 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 |rk is followed b| 000025b0 79 0d 47 61 70 20 31 2e 20 47 61 70 20 31 20 6f |y.Gap 1. Gap 1 o| 000025c0 63 63 75 72 73 20 6f 6e 63 65 20 70 65 72 20 74 |ccurs once per t| 000025d0 72 61 63 6b 20 62 65 74 77 65 65 6e 20 74 68 65 |rack between the| 000025e0 20 69 6e 64 65 78 20 6d 61 72 6b 20 61 6e 64 20 | index mark and | 000025f0 74 68 65 20 73 74 61 72 74 20 6f 66 0d 70 68 79 |the start of.phy| 00002600 73 69 63 61 6c 20 73 65 63 74 6f 72 20 30 2e 20 |sical sector 0. | 00002610 49 74 20 73 68 6f 75 6c 64 20 61 6c 77 61 79 73 |It should always| 00002620 20 62 65 20 31 36 20 28 26 31 30 29 20 62 79 74 | be 16 (&10) byt| 00002630 65 73 20 6c 6f 6e 67 2e 0d 0d 47 61 70 20 31 20 |es long...Gap 1 | 00002640 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 74 |is followed by t| 00002650 68 65 20 49 44 20 66 69 65 6c 64 20 66 6f 72 20 |he ID field for | 00002660 70 68 79 73 69 63 61 6c 20 73 65 63 74 6f 72 20 |physical sector | 00002670 30 2e 20 54 68 65 20 49 44 20 66 69 65 6c 64 0d |0. The ID field.| 00002680 73 74 61 72 74 73 20 77 69 74 68 20 36 20 73 79 |starts with 6 sy| 00002690 6e 63 20 62 79 74 65 73 2e 20 54 68 65 73 65 20 |nc bytes. These | 000026a0 73 79 6e 63 20 62 79 74 65 73 20 73 79 6e 63 68 |sync bytes synch| 000026b0 72 6f 6e 69 73 65 20 74 68 65 20 63 6f 6e 74 72 |ronise the contr| 000026c0 6f 6c 6c 65 72 20 74 6f 0d 74 68 65 20 72 6f 74 |oller to.the rot| 000026d0 61 74 69 6f 6e 61 6c 20 73 70 65 65 64 20 6f 66 |ational speed of| 000026e0 20 74 68 65 20 64 69 73 63 2e 20 54 68 65 20 73 | the disc. The s| 000026f0 79 6e 63 20 62 79 74 65 73 20 61 72 65 20 66 6f |ync bytes are fo| 00002700 6c 6c 6f 77 65 64 20 62 79 20 61 20 73 65 63 74 |llowed by a sect| 00002710 6f 72 0d 49 44 20 6d 61 72 6b 2c 20 77 68 69 63 |or.ID mark, whic| 00002720 68 20 73 69 6d 70 6c 79 20 6d 61 72 6b 73 20 74 |h simply marks t| 00002730 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 |he start of the | 00002740 73 65 63 74 6f 72 2e 20 54 68 69 73 20 69 6e 20 |sector. This in | 00002750 74 75 72 6e 20 69 73 0d 66 6f 6c 6c 6f 77 65 64 |turn is.followed| 00002760 20 62 79 20 74 68 65 20 6c 6f 67 69 63 61 6c 20 | by the logical | 00002770 74 72 61 63 6b 20 6e 75 6d 62 65 72 2e 20 54 68 |track number. Th| 00002780 65 20 6c 6f 67 69 63 61 6c 20 74 72 61 63 6b 20 |e logical track | 00002790 6e 75 6d 62 65 72 20 69 73 20 6e 6f 72 6d 61 6c |number is normal| 000027a0 6c 79 0d 74 68 65 20 73 61 6d 65 20 61 73 20 74 |ly.the same as t| 000027b0 68 65 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 |he physical trac| 000027c0 6b 20 6e 75 6d 62 65 72 20 62 75 74 2c 20 6f 6e |k number but, on| 000027d0 20 6e 6f 6e 2d 73 74 61 6e 64 61 72 64 20 64 69 | non-standard di| 000027e0 73 63 73 2c 20 69 74 20 64 6f 65 73 0d 6e 6f 74 |scs, it does.not| 000027f0 20 68 61 76 65 20 74 6f 20 62 65 20 74 68 65 20 | have to be the | 00002800 73 61 6d 65 2e 20 49 66 20 79 6f 75 20 75 73 65 |same. If you use| 00002810 20 74 68 65 20 64 65 6d 6f 6e 73 74 72 61 74 69 | the demonstrati| 00002820 6f 6e 20 70 72 6f 67 72 61 6e 20 49 44 53 44 55 |on progran IDSDU| 00002830 4d 50 20 6f 6e 20 61 0d 63 6f 70 79 2d 70 72 6f |MP on a.copy-pro| 00002840 74 65 63 74 65 64 20 64 69 73 63 20 79 6f 75 20 |tected disc you | 00002850 6d 61 79 20 66 69 6e 64 20 74 68 61 74 20 74 68 |may find that th| 00002860 65 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b |e physical track| 00002870 20 6e 75 6d 62 65 72 73 20 61 6e 64 20 74 68 65 | numbers and the| 00002880 0d 6c 6f 67 69 63 61 6c 20 74 72 61 63 6b 20 6e |.logical track n| 00002890 75 6d 62 65 72 73 20 6f 66 20 74 68 65 20 70 72 |umbers of the pr| 000028a0 6f 74 65 63 74 65 64 20 74 72 61 63 6b 73 20 61 |otected tracks a| 000028b0 72 65 20 64 69 66 66 65 72 65 6e 74 2e 0d 0d 54 |re different...T| 000028c0 68 65 20 6c 6f 67 69 63 61 6c 20 74 72 61 63 6b |he logical track| 000028d0 20 6e 75 6d 62 65 72 20 69 73 20 66 6f 6c 6c 6f | number is follo| 000028e0 77 65 64 20 62 79 20 74 68 65 20 68 65 61 64 20 |wed by the head | 000028f0 6e 75 6d 62 65 72 2e 20 54 68 69 73 20 73 68 6f |number. This sho| 00002900 75 6c 64 20 62 65 0d 26 30 30 20 66 6f 72 20 64 |uld be.&00 for d| 00002910 72 69 76 65 73 20 30 20 61 6e 64 20 31 20 28 77 |rives 0 and 1 (w| 00002920 68 69 63 68 20 75 73 65 20 74 68 65 20 75 6e 64 |hich use the und| 00002930 65 72 20 73 69 64 65 20 6f 66 20 74 68 65 20 64 |er side of the d| 00002940 69 73 63 29 2c 20 61 6e 64 20 26 30 31 20 66 6f |isc), and &01 fo| 00002950 72 0d 64 72 69 76 65 73 20 32 20 61 6e 64 20 33 |r.drives 2 and 3| 00002960 20 28 77 68 69 63 68 20 75 73 65 20 74 68 65 20 | (which use the | 00002970 74 6f 70 20 73 69 64 65 20 6f 66 20 74 68 65 20 |top side of the | 00002980 64 69 73 63 29 20 62 75 74 20 6d 6f 73 74 20 66 |disc) but most f| 00002990 6f 72 6d 61 74 74 69 6e 67 0d 70 72 6f 67 72 61 |ormatting.progra| 000029a0 6d 73 20 75 73 65 20 61 20 68 65 61 64 20 6e 75 |ms use a head nu| 000029b0 6d 62 65 72 20 6f 66 20 26 30 30 20 66 6f 72 20 |mber of &00 for | 000029c0 61 6c 6c 20 64 69 73 63 20 73 75 72 66 61 63 65 |all disc surface| 000029d0 73 2e 20 41 20 68 65 61 64 20 6e 75 6d 62 65 72 |s. A head number| 000029e0 20 6f 66 0d 26 30 30 20 73 65 65 6d 73 20 74 6f | of.&00 seems to| 000029f0 20 62 65 20 69 67 6e 6f 72 65 64 20 62 79 20 74 | be ignored by t| 00002a00 68 65 20 64 69 73 63 20 63 6f 6e 74 72 6f 6c 6c |he disc controll| 00002a10 65 72 2e 0d 0d 4e 65 78 74 20 63 6f 6d 65 73 20 |er...Next comes | 00002a20 74 68 65 20 6c 6f 67 69 63 61 6c 20 73 65 63 74 |the logical sect| 00002a30 6f 72 20 6e 75 6d 62 65 72 2e 20 54 68 65 20 6c |or number. The l| 00002a40 6f 67 69 63 61 6c 20 73 65 63 74 6f 72 20 6e 75 |ogical sector nu| 00002a50 6d 62 65 72 20 64 6f 65 73 20 6e 6f 74 0d 68 61 |mber does not.ha| 00002a60 76 65 20 74 6f 20 62 65 20 74 68 65 20 73 61 6d |ve to be the sam| 00002a70 65 20 61 73 20 74 68 65 20 70 68 79 73 69 63 61 |e as the physica| 00002a80 6c 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 20 |l sector number | 00002a90 61 6e 64 2c 20 61 73 20 77 69 6c 6c 20 62 65 0d |and, as will be.| 00002aa0 64 65 6d 6f 6e 73 74 72 61 74 65 64 20 69 6e 20 |demonstrated in | 00002ab0 6d 6f 64 75 6c 65 20 33 2c 20 74 68 65 72 65 20 |module 3, there | 00002ac0 63 61 6e 20 62 65 20 61 20 73 6d 61 6c 6c 20 61 |can be a small a| 00002ad0 64 76 61 6e 74 61 67 65 20 74 6f 20 62 65 20 67 |dvantage to be g| 00002ae0 61 69 6e 65 64 20 62 79 0d 6e 6f 74 20 75 73 69 |ained by.not usi| 00002af0 6e 67 20 74 68 65 20 73 61 6d 65 20 6c 6f 67 69 |ng the same logi| 00002b00 63 61 6c 20 61 6e 64 20 70 68 79 73 69 63 61 6c |cal and physical| 00002b10 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 72 73 2e | sector numbers.| 00002b20 0d 0d 54 68 65 20 64 61 74 61 20 73 69 7a 65 20 |..The data size | 00002b30 63 6f 64 65 20 66 6f 6c 6c 6f 77 73 20 74 68 65 |code follows the| 00002b40 20 6c 6f 67 69 63 61 6c 20 73 65 63 74 6f 72 20 | logical sector | 00002b50 6e 75 6d 62 65 72 20 61 6e 64 20 69 74 20 69 6e |number and it in| 00002b60 64 69 63 61 74 65 73 20 74 68 65 0d 6e 75 6d 62 |dicates the.numb| 00002b70 65 72 20 6f 66 20 64 61 74 61 20 62 79 74 65 73 |er of data bytes| 00002b80 20 69 6e 20 74 68 65 20 64 61 74 61 20 66 69 65 | in the data fie| 00002b90 6c 64 20 28 73 65 65 20 66 69 67 75 72 65 20 33 |ld (see figure 3| 00002ba0 20 62 65 6c 6f 77 29 2e 20 54 68 69 73 20 69 73 | below). This is| 00002bb0 0d 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 74 |.followed by a t| 00002bc0 77 6f 20 62 79 74 65 20 63 79 63 6c 69 63 20 72 |wo byte cyclic r| 00002bd0 65 64 75 6e 64 61 6e 63 79 20 63 68 65 63 6b 20 |edundancy check | 00002be0 28 43 52 43 29 2e 20 54 68 65 20 43 52 43 20 69 |(CRC). The CRC i| 00002bf0 73 20 75 73 65 64 20 74 6f 0d 63 68 65 63 6b 20 |s used to.check | 00002c00 66 6f 72 20 65 72 72 6f 72 73 20 69 6e 20 74 68 |for errors in th| 00002c10 65 20 64 61 74 61 20 73 74 6f 72 65 64 20 77 69 |e data stored wi| 00002c20 74 68 69 6e 20 74 68 65 20 49 44 20 66 69 65 6c |thin the ID fiel| 00002c30 64 2e 0d 0d 54 68 65 20 49 44 20 66 69 65 6c 64 |d...The ID field| 00002c40 20 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 | is followed by | 00002c50 47 61 70 20 32 2e 20 47 61 70 20 32 20 73 68 6f |Gap 2. Gap 2 sho| 00002c60 75 6c 64 20 61 6c 77 61 79 73 20 62 65 20 31 31 |uld always be 11| 00002c70 20 28 26 30 42 29 20 62 79 74 65 73 0d 6c 6f 6e | (&0B) bytes.lon| 00002c80 67 20 61 6e 64 20 69 74 20 69 73 20 70 6f 73 69 |g and it is posi| 00002c90 74 69 6f 6e 65 64 20 62 65 74 77 65 65 6e 20 74 |tioned between t| 00002ca0 68 65 20 49 44 20 66 69 65 6c 64 20 61 6e 64 20 |he ID field and | 00002cb0 74 68 65 20 64 61 74 61 20 66 69 65 6c 64 20 6f |the data field o| 00002cc0 66 20 65 61 63 68 0d 73 65 63 74 6f 72 20 6f 6e |f each.sector on| 00002cd0 20 74 68 65 20 74 72 61 63 6b 2e 20 45 61 63 68 | the track. Each| 00002ce0 20 64 61 74 61 20 66 69 65 6c 64 20 69 73 20 66 | data field is f| 00002cf0 6f 6c 6c 6f 77 65 64 20 62 79 20 47 61 70 33 2e |ollowed by Gap3.| 00002d00 20 54 68 65 20 47 61 70 20 33 20 61 66 74 65 72 | The Gap 3 after| 00002d10 0d 74 68 65 20 6c 61 73 74 20 64 61 74 61 20 66 |.the last data f| 00002d20 69 65 6c 64 20 69 73 20 66 6f 6c 6c 6f 77 65 64 |ield is followed| 00002d30 20 62 79 20 47 61 70 20 34 20 77 68 69 63 68 20 | by Gap 4 which | 00002d40 69 6e 20 74 75 72 6e 20 69 73 20 66 6f 6c 6c 6f |in turn is follo| 00002d50 77 65 64 20 62 79 20 47 61 70 0d 35 2e 20 54 68 |wed by Gap.5. Th| 00002d60 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 20 62 |e relationship b| 00002d70 65 74 77 65 65 6e 20 74 68 65 20 73 65 63 74 6f |etween the secto| 00002d80 72 20 73 69 7a 65 73 20 61 6e 64 20 74 68 65 20 |r sizes and the | 00002d90 67 61 70 20 73 69 7a 65 73 20 66 6f 72 20 33 20 |gap sizes for 3 | 00002da0 31 2f 32 0d 69 6e 63 68 20 61 6e 64 20 35 20 31 |1/2.inch and 5 1| 00002db0 2f 34 20 69 6e 63 68 20 64 69 73 63 73 20 69 73 |/4 inch discs is| 00002dc0 20 73 68 6f 77 6e 20 69 6e 20 66 69 67 75 72 65 | shown in figure| 00002dd0 20 33 2e 20 41 6c 6c 20 74 68 65 20 6e 75 6d 62 | 3. All the numb| 00002de0 65 72 73 20 69 6e 20 66 69 67 75 72 65 0d 33 20 |ers in figure.3 | 00002df0 61 72 65 20 69 6e 20 64 65 63 69 6d 61 6c 2e 0d |are in decimal..| 00002e00 0d 0d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |..+-------------| 00002e10 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d |+-----------+---| 00002e20 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d |-----+------+---| 00002e30 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d |---+------+-----| 00002e40 2d 2b 2d 2d 2d 2d 2d 2d 2b 0d 7c 20 4e 6f 2e 20 |-+------+.| No. | 00002e50 53 65 63 74 6f 72 73 20 7c 20 53 69 7a 65 20 63 |Sectors | Size c| 00002e60 6f 64 65 20 7c 20 4c 65 6e 67 74 68 20 7c 20 47 |ode | Length | G| 00002e70 61 70 31 20 7c 20 47 61 70 32 20 7c 20 47 61 70 |ap1 | Gap2 | Gap| 00002e80 33 20 7c 20 47 61 70 34 20 7c 20 47 61 70 35 20 |3 | Gap4 | Gap5 | 00002e90 7c 0d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ||.+-------------| 00002ea0 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d |+-----------+---| 00002eb0 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d |-----+------+---| 00002ec0 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d |---+------+-----| 00002ed0 2d 2b 2d 2d 2d 2d 2d 2d 2b 0d 7c 20 20 20 20 20 |-+------+.| | 00002ee0 31 38 20 20 20 20 20 20 7c 20 20 20 20 20 30 20 |18 | 0 | 00002ef0 20 20 20 20 7c 20 20 20 31 32 38 20 20 7c 20 20 | | 128 | | 00002f00 31 36 20 20 7c 20 20 31 31 20 20 7c 20 20 31 31 |16 | 11 | 11| 00002f10 20 20 7c 20 20 20 32 34 20 7c 20 20 20 30 20 20 | | 24 | 0 | 00002f20 7c 0d 7c 20 20 20 20 20 31 30 20 20 20 20 20 20 ||.| 10 | 00002f30 7c 20 20 20 20 20 31 20 20 20 20 20 7c 20 20 20 || 1 | | 00002f40 32 35 36 20 20 7c 20 20 31 36 20 20 7c 20 20 31 |256 | 16 | 1| 00002f50 31 20 20 7c 20 20 32 31 20 20 7c 20 20 20 33 30 |1 | 21 | 30| 00002f60 20 7c 20 20 20 30 20 20 7c 0d 7c 20 20 20 20 20 | | 0 |.| | 00002f70 20 35 20 20 20 20 20 20 7c 20 20 20 20 20 32 20 | 5 | 2 | 00002f80 20 20 20 20 7c 20 20 20 35 31 32 20 20 7c 20 20 | | 512 | | 00002f90 31 36 20 20 7c 20 20 31 31 20 20 7c 20 20 37 34 |16 | 11 | 74| 00002fa0 20 20 7c 20 20 20 38 38 20 7c 20 20 20 30 20 20 | | 88 | 0 | 00002fb0 7c 0d 7c 20 20 20 20 20 20 32 20 20 20 20 20 20 ||.| 2 | 00002fc0 7c 20 20 20 20 20 33 20 20 20 20 20 7c 20 20 31 || 3 | 1| 00002fd0 30 32 34 20 20 7c 20 20 31 36 20 20 7c 20 20 31 |024 | 16 | 1| 00002fe0 31 20 20 7c 20 32 35 35 20 20 7c 20 20 37 34 30 |1 | 255 | 740| 00002ff0 20 7c 20 20 20 30 20 20 7c 0d 7c 20 20 20 20 20 | | 0 |.| | 00003000 20 31 20 20 20 20 20 20 7c 20 20 20 20 20 34 20 | 1 | 4 | 00003010 20 20 20 20 7c 20 20 32 30 34 38 20 20 7c 20 20 | | 2048 | | 00003020 31 36 20 20 7c 20 20 31 31 20 20 7c 20 20 20 30 |16 | 11 | 0| 00003030 20 20 7c 20 31 30 32 38 20 7c 20 20 20 30 20 20 | | 1028 | 0 | 00003040 7c 0d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ||.+-------------| 00003050 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d |+-----------+---| 00003060 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d |-----+------+---| 00003070 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d |---+------+-----| 00003080 2d 2b 2d 2d 2d 2d 2d 2d 2b 0d 0d 46 69 67 75 72 |-+------+..Figur| 00003090 65 20 33 2e 20 54 68 65 20 72 65 6c 61 74 69 6f |e 3. The relatio| 000030a0 6e 73 68 69 70 20 62 65 74 77 65 65 6e 20 73 65 |nship between se| 000030b0 63 74 6f 72 20 73 69 7a 65 20 63 6f 64 65 2c 20 |ctor size code, | 000030c0 6c 65 6e 67 74 68 20 61 6e 64 20 67 61 70 20 73 |length and gap s| 000030d0 69 7a 65 2e 0d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |ize..-----------| 000030e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00003110 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0d |--------------..| 00003120 0d 54 68 65 20 64 61 74 61 20 66 69 65 6c 64 20 |.The data field | 00003130 66 6f 72 20 65 61 63 68 20 73 65 63 74 6f 72 20 |for each sector | 00003140 73 74 61 72 74 73 20 77 69 74 68 20 36 20 73 79 |starts with 6 sy| 00003150 6e 63 20 62 79 74 65 73 20 77 68 69 63 68 20 61 |nc bytes which a| 00003160 72 65 20 75 73 65 64 20 74 6f 0d 73 79 6e 63 68 |re used to.synch| 00003170 72 6f 6e 69 73 65 20 74 68 65 20 64 69 73 63 20 |ronise the disc | 00003180 63 6f 6e 74 72 6f 6c 6c 65 72 20 77 69 74 68 20 |controller with | 00003190 74 68 65 20 72 6f 74 61 74 69 6f 6e 61 6c 20 73 |the rotational s| 000031a0 70 65 65 64 20 6f 66 20 74 68 65 20 64 69 73 63 |peed of the disc| 000031b0 2e 0d 54 68 65 20 73 79 6e 63 20 62 79 74 65 73 |..The sync bytes| 000031c0 20 61 72 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 | are followed by| 000031d0 20 74 68 65 20 64 61 74 61 20 6d 61 72 6b 20 77 | the data mark w| 000031e0 68 69 63 68 20 69 64 65 6e 74 69 66 69 65 73 20 |hich identifies | 000031f0 74 68 65 20 73 74 61 72 74 20 6f 66 0d 74 68 65 |the start of.the| 00003200 20 64 61 74 61 20 61 6e 64 20 61 6c 73 6f 20 69 | data and also i| 00003210 6e 64 69 63 61 74 65 73 20 69 66 20 74 68 65 20 |ndicates if the | 00003220 64 61 74 61 20 61 72 65 20 6d 61 72 6b 65 64 20 |data are marked | 00003230 61 73 20 22 64 65 6c 65 74 65 64 22 2e 20 44 65 |as "deleted". De| 00003240 6c 65 74 65 64 0d 64 61 74 61 20 61 72 65 20 6e |leted.data are n| 00003250 6f 74 20 70 68 79 73 69 63 61 6c 6c 79 20 64 65 |ot physically de| 00003260 6c 65 74 65 64 20 66 72 6f 6d 20 74 68 65 20 64 |leted from the d| 00003270 69 73 63 2c 20 74 68 65 79 20 61 72 65 20 73 69 |isc, they are si| 00003280 6d 70 6c 79 20 6d 61 72 6b 65 64 20 61 73 0d 64 |mply marked as.d| 00003290 65 6c 65 74 65 64 2e 20 54 68 69 73 20 74 79 70 |eleted. This typ| 000032a0 65 20 6f 66 20 64 61 74 61 20 6d 61 72 6b 69 6e |e of data markin| 000032b0 67 20 77 69 6c 6c 20 62 65 20 75 73 65 64 20 69 |g will be used i| 000032c0 6e 20 6d 6f 64 75 6c 65 20 36 20 74 6f 20 68 65 |n module 6 to he| 000032d0 6c 70 0d 70 72 6f 64 75 63 65 20 63 6f 70 79 2d |lp.produce copy-| 000032e0 70 72 6f 74 65 63 74 65 64 20 64 69 73 63 73 2e |protected discs.| 000032f0 20 54 68 65 20 64 61 74 61 20 66 6f 6c 6c 6f 77 | The data follow| 00003300 20 74 68 65 20 64 61 74 61 20 6d 61 72 6b 20 61 | the data mark a| 00003310 6e 64 20 61 72 65 0d 74 65 72 6d 69 6e 61 74 65 |nd are.terminate| 00003320 64 20 77 69 74 68 20 74 77 6f 20 64 61 74 61 20 |d with two data | 00003330 43 52 43 20 62 79 74 65 73 2e 0d 0d 54 68 65 20 |CRC bytes...The | 00003340 70 72 6f 67 72 61 6d 20 49 44 53 44 55 4d 50 20 |program IDSDUMP | 00003350 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 70 |can be used to p| 00003360 72 69 6e 74 20 74 68 65 20 49 44 20 66 69 65 6c |rint the ID fiel| 00003370 64 20 66 6f 72 20 65 76 65 72 79 20 73 65 63 74 |d for every sect| 00003380 6f 72 20 6f 6e 0d 61 20 73 69 6e 67 6c 65 20 64 |or on.a single d| 00003390 65 6e 73 69 74 79 20 64 69 73 63 2e 20 49 20 77 |ensity disc. I w| 000033a0 69 6c 6c 20 6e 6f 74 20 65 78 70 6c 61 69 6e 20 |ill not explain | 000033b0 68 6f 77 20 74 68 65 20 70 72 6f 67 72 61 6d 20 |how the program | 000033c0 77 6f 72 6b 73 20 62 65 63 61 75 73 65 20 69 74 |works because it| 000033d0 0d 75 73 65 73 20 74 65 63 68 6e 69 71 75 65 73 |.uses techniques| 000033e0 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 63 6f | that will be co| 000033f0 76 65 72 65 64 20 69 6e 20 74 68 65 20 6e 65 78 |vered in the nex| 00003400 74 20 74 77 6f 20 6d 6f 64 75 6c 65 73 2e 20 54 |t two modules. T| 00003410 68 65 20 70 72 6f 67 72 61 6d 0d 69 73 20 63 6f |he program.is co| 00003420 6d 6d 65 6e 74 65 64 20 73 6f 20 74 68 61 74 20 |mmented so that | 00003430 79 6f 75 20 63 61 6e 20 63 6f 6d 65 20 62 61 63 |you can come bac| 00003440 6b 20 74 6f 20 69 74 20 61 66 74 65 72 20 72 65 |k to it after re| 00003450 61 64 69 6e 67 20 6d 6f 64 75 6c 65 73 20 31 20 |ading modules 1 | 00003460 61 6e 64 20 32 0d 77 68 65 6e 20 79 6f 75 20 73 |and 2.when you s| 00003470 68 6f 75 6c 64 20 62 65 20 61 62 6c 65 20 74 6f |hould be able to| 00003480 20 75 6e 64 65 72 73 74 61 6e 64 20 68 6f 77 20 | understand how | 00003490 69 74 20 77 6f 72 6b 73 2e 0d 0d 0d 20 20 20 31 |it works.... 1| 000034a0 30 20 52 45 4d 3a 20 49 44 53 44 55 4d 50 0d 20 |0 REM: IDSDUMP. | 000034b0 20 20 32 30 20 7a 65 72 6f 70 61 67 65 3d 26 37 | 20 zeropage=&7| 000034c0 30 0d 20 20 20 33 30 20 6f 73 61 73 63 69 3d 26 |0. 30 osasci=&| 000034d0 46 46 45 33 0d 20 20 20 34 30 20 6f 73 6e 65 77 |FFE3. 40 osnew| 000034e0 6c 3d 26 46 46 45 37 0d 20 20 20 35 30 20 6f 73 |l=&FFE7. 50 os| 000034f0 77 6f 72 64 3d 26 46 46 46 31 0d 20 20 20 36 30 |word=&FFF1. 60| 00003500 20 6f 73 62 79 74 65 3d 26 46 46 46 34 0d 20 20 | osbyte=&FFF4. | 00003510 20 37 30 20 44 49 4d 20 62 75 66 66 65 72 20 26 | 70 DIM buffer &| 00003520 35 30 0d 20 20 20 38 30 20 44 49 4d 20 6d 63 6f |50. 80 DIM mco| 00003530 64 65 20 26 32 30 30 0d 20 20 20 39 30 20 46 4f |de &200. 90 FO| 00003540 52 20 70 61 73 73 3d 30 20 54 4f 20 32 20 53 54 |R pass=0 TO 2 ST| 00003550 45 50 20 32 0d 20 20 31 30 30 20 50 25 3d 6d 63 |EP 2. 100 P%=mc| 00003560 6f 64 65 0d 20 20 31 31 30 20 5b 20 20 20 20 20 |ode. 110 [ | 00003570 20 20 4f 50 54 20 70 61 73 73 0d 20 20 31 32 30 | OPT pass. 120| 00003580 20 20 20 20 20 20 20 20 20 4c 44 41 20 23 31 34 | LDA #14| 00003590 20 20 20 20 20 20 20 5c 20 70 61 67 65 64 20 6d | \ paged m| 000035a0 6f 64 65 0d 20 20 31 33 30 20 20 20 20 20 20 20 |ode. 130 | 000035b0 20 20 4a 53 52 20 6f 73 61 73 63 69 0d 20 20 31 | JSR osasci. 1| 000035c0 34 30 20 2e 6d 61 69 6e 6c 6f 6f 70 0d 20 20 31 |40 .mainloop. 1| 000035d0 35 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 65 |50 JSR e| 000035e0 73 63 61 70 65 20 20 20 20 5c 20 63 68 65 63 6b |scape \ check| 000035f0 20 65 73 63 61 70 65 20 66 6c 61 67 0d 20 20 31 | escape flag. 1| 00003600 36 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 66 |60 JSR f| 00003610 69 72 73 74 73 65 63 74 6f 72 20 5c 20 72 65 61 |irstsector \ rea| 00003620 64 20 73 65 63 74 6f 72 20 69 64 20 66 69 72 73 |d sector id firs| 00003630 74 20 73 65 63 74 6f 72 0d 20 20 31 37 30 20 20 |t sector. 170 | 00003640 20 20 20 20 20 20 20 42 4e 45 20 6e 6f 74 66 6f | BNE notfo| 00003650 72 6d 61 74 74 65 64 20 5c 20 69 66 20 65 72 72 |rmatted \ if err| 00003660 6f 72 2c 20 74 72 61 63 6b 20 6e 6f 74 20 66 6f |or, track not fo| 00003670 72 6d 61 74 74 65 64 0d 20 20 31 38 30 20 20 20 |rmatted. 180 | 00003680 20 20 20 20 20 20 4a 53 52 20 74 72 61 63 6b 6e | JSR trackn| 00003690 75 6d 62 65 72 20 5c 20 70 72 69 6e 74 20 74 72 |umber \ print tr| 000036a0 61 63 6b 20 6e 75 6d 62 65 72 0d 20 20 31 39 30 |ack number. 190| 000036b0 20 20 20 20 20 20 20 20 20 4a 53 52 20 73 65 63 | JSR sec| 000036c0 74 6f 72 69 64 73 20 5c 20 72 65 61 64 20 61 6c |torids \ read al| 000036d0 6c 20 73 65 63 74 6f 72 20 69 64 73 0d 20 20 32 |l sector ids. 2| 000036e0 30 30 20 2e 6e 6f 74 66 6f 72 6d 61 74 74 65 64 |00 .notformatted| 000036f0 0d 20 20 32 31 30 20 20 20 20 20 20 20 20 20 49 |. 210 I| 00003700 4e 43 20 70 68 79 73 69 63 61 6c 20 20 5c 20 69 |NC physical \ i| 00003710 6e 63 72 65 6d 65 6e 74 20 70 68 79 73 69 63 61 |ncrement physica| 00003720 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d 20 |l track number. | 00003730 20 32 32 30 20 20 20 20 20 20 20 20 20 4c 44 41 | 220 LDA| 00003740 20 70 68 79 73 69 63 61 6c 20 20 5c 20 6c 6f 61 | physical \ loa| 00003750 64 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 6b |d physical track| 00003760 20 6e 75 6d 62 65 72 0d 20 20 32 33 30 20 20 20 | number. 230 | 00003770 20 20 20 20 20 20 43 4d 50 20 6c 61 73 74 20 20 | CMP last | 00003780 20 20 20 20 5c 20 61 6c 6c 20 64 6f 6e 65 3f 0d | \ all done?.| 00003790 20 20 32 34 30 20 20 20 20 20 20 20 20 20 42 4e | 240 BN| 000037a0 45 20 6d 61 69 6e 6c 6f 6f 70 20 20 5c 20 69 66 |E mainloop \ if| 000037b0 20 6e 6f 74 20 63 6f 70 79 20 6e 65 78 74 20 74 | not copy next t| 000037c0 72 61 63 6b 0d 20 20 32 35 30 20 20 20 20 20 20 |rack. 250 | 000037d0 20 20 20 4a 53 52 20 6f 73 6e 65 77 6c 0d 20 20 | JSR osnewl. | 000037e0 32 36 30 20 20 20 20 20 20 20 20 20 52 54 53 20 |260 RTS | 000037f0 20 20 20 20 20 20 20 20 20 20 5c 20 72 65 74 75 | \ retu| 00003800 72 6e 20 74 6f 20 42 41 53 49 43 0d 20 20 32 37 |rn to BASIC. 27| 00003810 30 20 2e 65 73 63 61 70 65 0d 20 20 32 38 30 20 |0 .escape. 280 | 00003820 20 20 20 20 20 20 20 20 4c 44 41 20 26 46 46 20 | LDA &FF | 00003830 20 20 20 20 20 20 5c 20 65 73 63 61 70 65 20 66 | \ escape f| 00003840 6c 61 67 0d 20 20 32 39 30 20 20 20 20 20 20 20 |lag. 290 | 00003850 20 20 42 4d 49 20 70 72 65 73 73 65 64 20 20 20 | BMI pressed | 00003860 5c 20 62 69 74 20 37 20 73 65 74 20 69 66 20 70 |\ bit 7 set if p| 00003870 72 65 73 73 65 64 0d 20 20 33 30 30 20 20 20 20 |ressed. 300 | 00003880 20 20 20 20 20 52 54 53 0d 20 20 33 31 30 20 2e | RTS. 310 .| 00003890 70 72 65 73 73 65 64 0d 20 20 33 32 30 20 20 20 |pressed. 320 | 000038a0 20 20 20 20 20 20 4c 44 41 20 23 26 37 45 0d 20 | LDA #&7E. | 000038b0 20 33 33 30 20 20 20 20 20 20 20 20 20 4a 53 52 | 330 JSR| 000038c0 20 6f 73 62 79 74 65 20 20 20 20 5c 20 61 63 6b | osbyte \ ack| 000038d0 6e 6f 77 6c 65 64 67 65 20 45 73 63 61 70 65 0d |nowledge Escape.| 000038e0 20 20 33 34 30 20 20 20 20 20 20 20 20 20 42 52 | 340 BR| 000038f0 4b 0d 20 20 33 35 30 20 20 20 20 20 20 20 20 20 |K. 350 | 00003900 42 52 4b 0d 20 20 33 36 30 20 20 20 20 20 20 20 |BRK. 360 | 00003910 20 20 45 51 55 53 20 22 45 73 63 61 70 65 22 0d | EQUS "Escape".| 00003920 20 20 33 37 30 20 20 20 20 20 20 20 20 20 42 52 | 370 BR| 00003930 4b 0d 20 20 33 38 30 20 2e 66 69 72 73 74 73 65 |K. 380 .firstse| 00003940 63 74 6f 72 0d 20 20 33 39 30 20 20 20 20 20 20 |ctor. 390 | 00003950 20 20 20 4c 44 41 20 70 68 79 73 69 63 61 6c 20 | LDA physical | 00003960 20 5c 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 | \ physical trac| 00003970 6b 20 6e 75 6d 62 65 72 0d 20 20 34 30 30 20 20 |k number. 400 | 00003980 20 20 20 20 20 20 20 53 54 41 20 69 64 73 62 6c | STA idsbl| 00003990 6f 63 6b 2b 37 20 5c 20 73 74 6f 72 65 20 70 68 |ock+7 \ store ph| 000039a0 79 73 69 63 61 6c 20 74 72 61 63 6b 0d 20 20 34 |ysical track. 4| 000039b0 31 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 23 |10 LDA #| 000039c0 31 20 20 20 20 20 20 20 20 5c 20 6f 6e 65 20 73 |1 \ one s| 000039d0 65 63 74 6f 72 0d 20 20 34 32 30 20 20 20 20 20 |ector. 420 | 000039e0 20 20 20 20 53 54 41 20 69 64 73 62 6c 6f 63 6b | STA idsblock| 000039f0 2b 39 20 5c 20 6e 75 6d 62 65 72 20 6f 66 20 69 |+9 \ number of i| 00003a00 64 73 0d 20 20 34 33 30 20 20 20 20 20 20 20 20 |ds. 430 | 00003a10 20 4c 44 41 20 23 26 37 46 0d 20 20 34 34 30 20 | LDA #&7F. 440 | 00003a20 20 20 20 20 20 20 20 20 4c 44 58 20 23 69 64 73 | LDX #ids| 00003a30 62 6c 6f 63 6b 20 4d 4f 44 20 32 35 36 0d 20 20 |block MOD 256. | 00003a40 34 35 30 20 20 20 20 20 20 20 20 20 4c 44 59 20 |450 LDY | 00003a50 23 69 64 73 62 6c 6f 63 6b 20 44 49 56 20 32 35 |#idsblock DIV 25| 00003a60 36 0d 20 20 34 36 30 20 20 20 20 20 20 20 20 20 |6. 460 | 00003a70 4a 53 52 20 6f 73 77 6f 72 64 0d 20 20 34 37 30 |JSR osword. 470| 00003a80 20 20 20 20 20 20 20 20 20 4c 44 41 20 69 64 73 | LDA ids| 00003a90 62 6c 6f 63 6b 2b 31 30 20 5c 20 72 65 73 75 6c |block+10 \ resul| 00003aa0 74 0d 20 20 34 38 30 20 20 20 20 20 20 20 20 20 |t. 480 | 00003ab0 41 4e 44 20 23 26 31 45 20 20 20 20 20 20 5c 20 |AND #&1E \ | 00003ac0 3d 20 30 20 69 66 20 66 6f 72 6d 61 74 74 65 64 |= 0 if formatted| 00003ad0 0d 20 20 34 39 30 20 20 20 20 20 20 20 20 20 52 |. 490 R| 00003ae0 54 53 0d 20 20 35 30 30 20 2e 73 65 63 74 6f 72 |TS. 500 .sector| 00003af0 69 64 73 0d 20 20 35 31 30 20 20 20 20 20 20 20 |ids. 510 | 00003b00 20 20 4c 44 58 20 62 75 66 66 65 72 2b 33 20 20 | LDX buffer+3 | 00003b10 20 5c 20 6c 6f 61 64 20 64 61 74 61 20 73 69 7a | \ load data siz| 00003b20 65 20 63 6f 64 65 0d 20 20 35 32 30 20 20 20 20 |e code. 520 | 00003b30 20 20 20 20 20 4c 44 41 20 73 69 7a 65 73 2c 58 | LDA sizes,X| 00003b40 20 20 20 5c 20 6c 6f 61 64 20 6e 75 6d 62 65 72 | \ load number| 00003b50 20 6f 66 20 73 65 63 74 6f 72 73 0d 20 20 35 33 | of sectors. 53| 00003b60 30 20 20 20 20 20 20 20 20 20 53 54 41 20 69 64 |0 STA id| 00003b70 73 62 6c 6f 63 6b 2b 39 20 5c 20 73 74 6f 72 65 |sblock+9 \ store| 00003b80 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 63 74 6f | number of secto| 00003b90 72 73 0d 20 20 35 34 30 20 20 20 20 20 20 20 20 |rs. 540 | 00003ba0 20 41 53 4c 20 41 20 20 20 20 20 20 20 20 20 5c | ASL A \| 00003bb0 20 2a 32 0d 20 20 35 35 30 20 20 20 20 20 20 20 | *2. 550 | 00003bc0 20 20 41 53 4c 20 41 20 20 20 20 20 20 20 20 20 | ASL A | 00003bd0 5c 20 2a 34 0d 20 20 35 36 30 20 20 20 20 20 20 |\ *4. 560 | 00003be0 20 20 20 53 54 41 20 73 65 63 74 6f 72 6e 75 6d | STA sectornum| 00003bf0 62 65 72 20 5c 20 73 74 6f 72 65 20 69 6e 64 65 |ber \ store inde| 00003c00 78 20 6f 6e 20 73 65 63 74 6f 72 73 0d 20 20 35 |x on sectors. 5| 00003c10 37 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 23 |70 LDA #| 00003c20 26 37 46 0d 20 20 35 38 30 20 20 20 20 20 20 20 |&7F. 580 | 00003c30 20 20 4c 44 58 20 23 69 64 73 62 6c 6f 63 6b 20 | LDX #idsblock | 00003c40 4d 4f 44 20 32 35 36 0d 20 20 35 39 30 20 20 20 |MOD 256. 590 | 00003c50 20 20 20 20 20 20 4c 44 59 20 23 69 64 73 62 6c | LDY #idsbl| 00003c60 6f 63 6b 20 44 49 56 20 32 35 36 0d 20 20 36 30 |ock DIV 256. 60| 00003c70 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 6f 73 |0 JSR os| 00003c80 77 6f 72 64 0d 20 20 36 31 30 20 20 20 20 20 20 |word. 610 | 00003c90 20 20 20 4c 44 41 20 69 64 73 62 6c 6f 63 6b 2b | LDA idsblock+| 00003ca0 31 30 20 5c 20 72 65 73 75 6c 74 0d 20 20 36 32 |10 \ result. 62| 00003cb0 30 20 20 20 20 20 20 20 20 20 41 4e 44 20 23 26 |0 AND #&| 00003cc0 31 45 0d 20 20 36 33 30 20 20 20 20 20 20 20 20 |1E. 630 | 00003cd0 20 42 4e 45 20 69 64 73 65 72 72 6f 72 20 20 5c | BNE idserror \| 00003ce0 20 3d 20 30 20 69 66 20 4f 4b 0d 20 20 36 34 30 | = 0 if OK. 640| 00003cf0 20 20 20 20 20 20 20 20 20 4c 44 58 20 23 30 0d | LDX #0.| 00003d00 20 20 36 35 30 20 2e 6e 65 78 74 0d 20 20 36 36 | 650 .next. 66| 00003d10 30 20 20 20 20 20 20 20 20 20 4c 44 59 20 23 30 |0 LDY #0| 00003d20 0d 20 20 36 37 30 20 2e 70 72 69 6e 74 6c 6f 6f |. 670 .printloo| 00003d30 70 0d 20 20 36 38 30 20 20 20 20 20 20 20 20 20 |p. 680 | 00003d40 4c 44 41 20 62 75 66 66 65 72 2c 58 0d 20 20 36 |LDA buffer,X. 6| 00003d50 39 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 70 |90 JSR p| 00003d60 72 69 6e 74 62 79 74 65 20 5c 20 70 72 69 6e 74 |rintbyte \ print| 00003d70 20 65 76 65 72 79 20 62 79 74 65 20 6f 66 20 73 | every byte of s| 00003d80 65 63 74 6f 72 20 74 61 62 6c 65 0d 20 20 37 30 |ector table. 70| 00003d90 30 20 20 20 20 20 20 20 20 20 49 4e 58 0d 20 20 |0 INX. | 00003da0 37 31 30 20 20 20 20 20 20 20 20 20 49 4e 59 0d |710 INY.| 00003db0 20 20 37 32 30 20 20 20 20 20 20 20 20 20 43 50 | 720 CP| 00003dc0 59 20 23 34 20 20 20 20 20 20 20 20 5c 20 34 20 |Y #4 \ 4 | 00003dd0 62 79 74 65 73 20 70 65 72 20 6c 69 6e 65 0d 20 |bytes per line. | 00003de0 20 37 33 30 20 20 20 20 20 20 20 20 20 42 4e 45 | 730 BNE| 00003df0 20 70 72 69 6e 74 6c 6f 6f 70 0d 20 20 37 34 30 | printloop. 740| 00003e00 20 20 20 20 20 20 20 20 20 4a 53 52 20 6f 73 6e | JSR osn| 00003e10 65 77 6c 0d 20 20 37 35 30 20 20 20 20 20 20 20 |ewl. 750 | 00003e20 20 20 43 50 58 20 73 65 63 74 6f 72 6e 75 6d 62 | CPX sectornumb| 00003e30 65 72 20 5c 20 6c 61 73 74 20 62 79 74 65 3f 0d |er \ last byte?.| 00003e40 20 20 37 36 30 20 20 20 20 20 20 20 20 20 42 43 | 760 BC| 00003e50 43 20 6e 65 78 74 20 20 20 20 20 20 5c 20 67 6f |C next \ go| 00003e60 20 62 61 63 6b 20 66 6f 72 20 6d 6f 72 65 0d 20 | back for more. | 00003e70 20 37 37 30 20 20 20 20 20 20 20 20 20 52 54 53 | 770 RTS| 00003e80 0d 20 20 37 38 30 20 2e 69 64 73 65 72 72 6f 72 |. 780 .idserror| 00003e90 0d 20 20 37 39 30 20 20 20 20 20 20 20 20 20 42 |. 790 B| 00003ea0 52 4b 0d 20 20 38 30 30 20 20 20 20 20 20 20 20 |RK. 800 | 00003eb0 20 42 52 4b 0d 20 20 38 31 30 20 20 20 20 20 20 | BRK. 810 | 00003ec0 20 20 20 45 51 55 53 20 22 53 65 63 74 6f 72 20 | EQUS "Sector | 00003ed0 49 44 20 45 72 72 6f 72 22 0d 20 20 38 32 30 20 |ID Error". 820 | 00003ee0 20 20 20 20 20 20 20 20 42 52 4b 0d 20 20 38 33 | BRK. 83| 00003ef0 30 20 2e 74 72 61 63 6b 6e 75 6d 62 65 72 0d 20 |0 .tracknumber. | 00003f00 20 38 34 30 20 20 20 20 20 20 20 20 20 4a 53 52 | 840 JSR| 00003f10 20 6f 73 6e 65 77 6c 0d 20 20 38 35 30 20 20 20 | osnewl. 850 | 00003f20 20 20 20 20 20 20 4c 44 58 20 23 74 69 74 6c 65 | LDX #title| 00003f30 20 4d 4f 44 20 32 35 36 0d 20 20 38 36 30 20 20 | MOD 256. 860 | 00003f40 20 20 20 20 20 20 20 4c 44 59 20 23 74 69 74 6c | LDY #titl| 00003f50 65 20 44 49 56 20 32 35 36 0d 20 20 38 37 30 20 |e DIV 256. 870 | 00003f60 20 20 20 20 20 20 20 20 4a 53 52 20 70 72 69 6e | JSR prin| 00003f70 74 74 65 78 74 20 5c 20 70 72 69 6e 74 20 22 54 |ttext \ print "T| 00003f80 72 61 63 6b 20 26 22 0d 20 20 38 38 30 20 20 20 |rack &". 880 | 00003f90 20 20 20 20 20 20 4c 44 41 20 70 68 79 73 69 63 | LDA physic| 00003fa0 61 6c 20 20 5c 20 6c 6f 61 64 20 70 68 79 73 69 |al \ load physi| 00003fb0 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 |cal track number| 00003fc0 0d 20 20 38 39 30 20 20 20 20 20 20 20 20 20 4a |. 890 J| 00003fd0 53 52 20 70 72 69 6e 74 62 79 74 65 20 5c 20 70 |SR printbyte \ p| 00003fe0 72 69 6e 74 20 74 72 61 63 6b 20 6e 75 6d 62 65 |rint track numbe| 00003ff0 72 0d 20 20 39 30 30 20 20 20 20 20 20 20 20 20 |r. 900 | 00004000 4c 44 58 20 23 68 65 61 64 65 72 20 4d 4f 44 20 |LDX #header MOD | 00004010 32 35 36 0d 20 20 39 31 30 20 20 20 20 20 20 20 |256. 910 | 00004020 20 20 4c 44 59 20 23 68 65 61 64 65 72 20 44 49 | LDY #header DI| 00004030 56 20 32 35 36 0d 20 20 39 32 30 20 20 20 20 20 |V 256. 920 | 00004040 20 20 20 20 4a 4d 50 20 70 72 69 6e 74 74 65 78 | JMP printtex| 00004050 74 20 5c 20 70 72 69 6e 74 20 22 4c 54 20 48 4e |t \ print "LT HN| 00004060 20 4c 53 20 44 53 22 0d 20 20 39 33 30 20 2e 70 | LS DS". 930 .p| 00004070 72 69 6e 74 74 65 78 74 0d 20 20 39 34 30 20 20 |rinttext. 940 | 00004080 20 20 20 20 20 20 20 53 54 58 20 7a 65 72 6f 70 | STX zerop| 00004090 61 67 65 0d 20 20 39 35 30 20 20 20 20 20 20 20 |age. 950 | 000040a0 20 20 53 54 59 20 7a 65 72 6f 70 61 67 65 2b 31 | STY zeropage+1| 000040b0 0d 20 20 39 36 30 20 20 20 20 20 20 20 20 20 4c |. 960 L| 000040c0 44 59 20 23 30 0d 20 20 39 37 30 20 2e 74 65 78 |DY #0. 970 .tex| 000040d0 74 6c 6f 6f 70 0d 20 20 39 38 30 20 20 20 20 20 |tloop. 980 | 000040e0 20 20 20 20 4c 44 41 20 28 7a 65 72 6f 70 61 67 | LDA (zeropag| 000040f0 65 29 2c 59 0d 20 20 39 39 30 20 20 20 20 20 20 |e),Y. 990 | 00004100 20 20 20 42 45 51 20 65 6e 64 74 65 78 74 0d 20 | BEQ endtext. | 00004110 31 30 30 30 20 20 20 20 20 20 20 20 20 4a 53 52 |1000 JSR| 00004120 20 6f 73 61 73 63 69 0d 20 31 30 31 30 20 20 20 | osasci. 1010 | 00004130 20 20 20 20 20 20 49 4e 59 0d 20 31 30 32 30 20 | INY. 1020 | 00004140 20 20 20 20 20 20 20 20 42 4e 45 20 74 65 78 74 | BNE text| 00004150 6c 6f 6f 70 0d 20 31 30 33 30 20 2e 65 6e 64 74 |loop. 1030 .endt| 00004160 65 78 74 0d 20 31 30 34 30 20 20 20 20 20 20 20 |ext. 1040 | 00004170 20 20 52 54 53 0d 20 31 30 35 30 20 2e 70 72 69 | RTS. 1050 .pri| 00004180 6e 74 62 79 74 65 0d 20 31 30 36 30 20 20 20 20 |ntbyte. 1060 | 00004190 20 20 20 20 20 50 48 41 0d 20 31 30 37 30 20 20 | PHA. 1070 | 000041a0 20 20 20 20 20 20 20 4c 53 52 20 41 0d 20 31 30 | LSR A. 10| 000041b0 38 30 20 20 20 20 20 20 20 20 20 4c 53 52 20 41 |80 LSR A| 000041c0 0d 20 31 30 39 30 20 20 20 20 20 20 20 20 20 4c |. 1090 L| 000041d0 53 52 20 41 0d 20 31 31 30 30 20 20 20 20 20 20 |SR A. 1100 | 000041e0 20 20 20 4c 53 52 20 41 0d 20 31 31 31 30 20 20 | LSR A. 1110 | 000041f0 20 20 20 20 20 20 20 4a 53 52 20 6e 79 62 62 6c | JSR nybbl| 00004200 65 20 20 20 20 5c 20 70 72 69 6e 74 20 4d 53 20 |e \ print MS | 00004210 6e 79 62 62 6c 65 0d 20 31 31 32 30 20 20 20 20 |nybble. 1120 | 00004220 20 20 20 20 20 50 4c 41 0d 20 31 31 33 30 20 20 | PLA. 1130 | 00004230 20 20 20 20 20 20 20 4a 53 52 20 6e 79 62 62 6c | JSR nybbl| 00004240 65 20 20 20 20 5c 20 70 72 69 6e 74 20 4c 53 20 |e \ print LS | 00004250 6e 79 62 62 6c 65 0d 20 31 31 34 30 20 20 20 20 |nybble. 1140 | 00004260 20 20 20 20 20 4c 44 41 20 23 41 53 43 28 22 20 | LDA #ASC(" | 00004270 22 29 0d 20 31 31 35 30 20 20 20 20 20 20 20 20 |"). 1150 | 00004280 20 4a 53 52 20 6f 73 61 73 63 69 20 20 20 20 5c | JSR osasci \| 00004290 20 70 72 69 6e 74 20 73 70 61 63 65 0d 20 31 31 | print space. 11| 000042a0 36 30 20 20 20 20 20 20 20 20 20 4a 4d 50 20 6f |60 JMP o| 000042b0 73 61 73 63 69 20 20 20 20 5c 20 70 72 69 6e 74 |sasci \ print| 000042c0 20 73 70 61 63 65 0d 20 31 31 37 30 20 2e 6e 79 | space. 1170 .ny| 000042d0 62 62 6c 65 0d 20 31 31 38 30 20 20 20 20 20 20 |bble. 1180 | 000042e0 20 20 20 41 4e 44 20 23 26 30 46 0d 20 31 31 39 | AND #&0F. 119| 000042f0 30 20 20 20 20 20 20 20 20 20 53 45 44 0d 20 31 |0 SED. 1| 00004300 32 30 30 20 20 20 20 20 20 20 20 20 43 4c 43 0d |200 CLC.| 00004310 20 31 32 31 30 20 20 20 20 20 20 20 20 20 41 44 | 1210 AD| 00004320 43 20 23 26 39 30 0d 20 31 32 32 30 20 20 20 20 |C #&90. 1220 | 00004330 20 20 20 20 20 41 44 43 20 23 26 34 30 0d 20 31 | ADC #&40. 1| 00004340 32 33 30 20 20 20 20 20 20 20 20 20 43 4c 44 0d |230 CLD.| 00004350 20 31 32 34 30 20 20 20 20 20 20 20 20 20 4a 4d | 1240 JM| 00004360 50 20 6f 73 61 73 63 69 20 20 20 20 5c 20 70 72 |P osasci \ pr| 00004370 69 6e 74 20 6e 79 62 62 6c 65 20 61 6e 64 20 72 |int nybble and r| 00004380 65 74 75 72 6e 0d 20 31 32 35 30 20 2e 69 64 73 |eturn. 1250 .ids| 00004390 62 6c 6f 63 6b 0d 20 31 32 36 30 20 20 20 20 20 |block. 1260 | 000043a0 20 20 20 20 45 51 55 42 20 26 46 46 20 20 20 20 | EQUB &FF | 000043b0 20 20 5c 20 63 75 72 72 65 6e 74 20 64 72 69 76 | \ current driv| 000043c0 65 0d 20 31 32 37 30 20 20 20 20 20 20 20 20 20 |e. 1270 | 000043d0 45 51 55 44 20 62 75 66 66 65 72 20 20 20 5c 20 |EQUD buffer \ | 000043e0 61 64 64 72 65 73 73 20 6f 66 20 62 75 66 66 65 |address of buffe| 000043f0 72 0d 20 31 32 38 30 20 20 20 20 20 20 20 20 20 |r. 1280 | 00004400 45 51 55 44 20 26 30 30 30 30 35 42 30 33 20 5c |EQUD &00005B03 \| 00004410 20 72 65 61 64 20 73 65 63 74 6f 72 20 69 64 73 | read sector ids| 00004420 0d 20 31 32 39 30 20 20 20 20 20 20 20 20 20 45 |. 1290 E| 00004430 51 55 57 20 30 0d 20 31 33 30 30 20 2e 73 69 7a |QUW 0. 1300 .siz| 00004440 65 73 0d 20 31 33 31 30 20 20 20 20 20 20 20 20 |es. 1310 | 00004450 20 45 51 55 42 20 31 38 0d 20 31 33 32 30 20 20 | EQUB 18. 1320 | 00004460 20 20 20 20 20 20 20 45 51 55 42 20 31 30 0d 20 | EQUB 10. | 00004470 31 33 33 30 20 20 20 20 20 20 20 20 20 45 51 55 |1330 EQU| 00004480 42 20 35 0d 20 31 33 34 30 20 20 20 20 20 20 20 |B 5. 1340 | 00004490 20 20 45 51 55 42 20 32 0d 20 31 33 35 30 20 20 | EQUB 2. 1350 | 000044a0 20 20 20 20 20 20 20 45 51 55 42 20 31 0d 20 31 | EQUB 1. 1| 000044b0 33 36 30 20 2e 74 69 74 6c 65 0d 20 31 33 37 30 |360 .title. 1370| 000044c0 20 20 20 20 20 20 20 20 20 45 51 55 53 20 22 20 | EQUS " | 000044d0 20 54 72 61 63 6b 20 20 26 22 0d 20 31 33 38 30 | Track &". 1380| 000044e0 20 20 20 20 20 20 20 20 20 42 52 4b 0d 20 31 33 | BRK. 13| 000044f0 39 30 20 2e 68 65 61 64 65 72 0d 20 31 34 30 30 |90 .header. 1400| 00004500 20 20 20 20 20 20 20 20 20 45 51 55 42 20 26 30 | EQUB &0| 00004510 44 0d 20 31 34 31 30 20 20 20 20 20 20 20 20 20 |D. 1410 | 00004520 45 51 55 53 20 22 20 20 2d 2d 2d 2d 2d 2d 2d 2d |EQUS " --------| 00004530 2d 2d 22 0d 20 31 34 32 30 20 20 20 20 20 20 20 |--". 1420 | 00004540 20 20 45 51 55 42 20 26 30 44 0d 20 31 34 33 30 | EQUB &0D. 1430| 00004550 20 20 20 20 20 20 20 20 20 45 51 55 53 20 22 4c | EQUS "L| 00004560 54 20 20 48 4e 20 20 4c 53 20 20 44 53 22 0d 20 |T HN LS DS". | 00004570 31 34 34 30 20 20 20 20 20 20 20 20 20 45 51 55 |1440 EQU| 00004580 42 20 26 30 44 0d 20 31 34 35 30 20 20 20 20 20 |B &0D. 1450 | 00004590 20 20 20 20 45 51 55 53 20 22 2d 2d 2d 2d 2d 2d | EQUS "------| 000045a0 2d 2d 2d 2d 2d 2d 2d 2d 22 0d 20 31 34 36 30 20 |--------". 1460 | 000045b0 20 20 20 20 20 20 20 20 45 51 55 42 20 26 30 44 | EQUB &0D| 000045c0 0d 20 31 34 37 30 20 20 20 20 20 20 20 20 20 42 |. 1470 B| 000045d0 52 4b 0d 20 31 34 38 30 20 2e 70 68 79 73 69 63 |RK. 1480 .physic| 000045e0 61 6c 0d 20 31 34 39 30 20 20 20 20 20 20 20 20 |al. 1490 | 000045f0 20 45 51 55 42 20 26 30 30 0d 20 31 35 30 30 20 | EQUB &00. 1500 | 00004600 2e 73 65 63 74 6f 72 6e 75 6d 62 65 72 0d 20 31 |.sectornumber. 1| 00004610 35 31 30 20 20 20 20 20 20 20 20 20 45 51 55 42 |510 EQUB| 00004620 20 26 30 30 0d 20 31 35 32 30 20 2e 6c 61 73 74 | &00. 1520 .last| 00004630 0d 20 31 35 33 30 20 20 20 20 20 20 20 20 20 45 |. 1530 E| 00004640 51 55 42 20 26 30 30 0d 20 31 35 34 30 20 5d 0d |QUB &00. 1540 ].| 00004650 20 31 35 35 30 20 4e 45 58 54 0d 20 31 35 36 30 | 1550 NEXT. 1560| 00004660 20 49 4e 50 55 54 27 22 4e 75 6d 62 65 72 20 6f | INPUT'"Number o| 00004670 66 20 74 72 61 63 6b 73 20 28 34 30 2f 38 30 29 |f tracks (40/80)| 00004680 20 22 74 72 61 63 6b 73 24 0d 20 31 35 37 30 20 | "tracks$. 1570 | 00004690 49 46 20 74 72 61 63 6b 73 24 3d 22 34 30 22 20 |IF tracks$="40" | 000046a0 3f 6c 61 73 74 20 3d 20 34 30 20 45 4c 53 45 20 |?last = 40 ELSE | 000046b0 3f 6c 61 73 74 20 3d 20 38 30 0d 20 31 35 38 30 |?last = 80. 1580| 000046c0 20 50 52 49 4e 54 27 22 49 6e 73 65 72 74 20 22 | PRINT'"Insert "| 000046d0 3b 3f 6c 61 73 74 3b 22 20 74 72 61 63 6b 20 64 |;?last;" track d| 000046e0 69 73 63 20 69 6e 74 6f 20 63 75 72 72 65 6e 74 |isc into current| 000046f0 20 64 72 69 76 65 22 0d 20 31 35 39 30 20 50 52 | drive". 1590 PR| 00004700 49 4e 54 22 61 6e 64 20 70 72 65 73 73 20 53 70 |INT"and press Sp| 00004710 61 63 65 62 61 72 20 74 6f 20 70 72 69 6e 74 20 |acebar to print | 00004720 73 65 63 74 6f 72 20 49 44 73 22 0d 20 31 36 30 |sector IDs". 160| 00004730 30 20 52 45 50 45 41 54 0d 20 31 36 31 30 20 55 |0 REPEAT. 1610 U| 00004740 4e 54 49 4c 20 47 45 54 3d 33 32 0d 20 31 36 32 |NTIL GET=32. 162| 00004750 30 20 50 52 49 4e 54 27 22 50 72 65 73 73 20 53 |0 PRINT'"Press S| 00004760 68 69 66 74 20 74 6f 20 73 63 72 6f 6c 6c 22 0d |hift to scroll".| 00004770 20 31 36 33 30 20 43 41 4c 4c 20 6d 63 6f 64 65 | 1630 CALL mcode| 00004780 0d 0d 0d 43 68 61 69 6e 20 74 68 65 20 70 72 6f |...Chain the pro| 00004790 67 72 61 6d 20 49 44 53 44 55 4d 50 20 61 6e 64 |gram IDSDUMP and| 000047a0 2c 20 77 68 65 6e 20 70 72 6f 6d 70 74 65 64 2c |, when prompted,| 000047b0 20 70 75 74 20 61 20 73 75 69 74 61 62 6c 65 20 | put a suitable | 000047c0 64 69 73 63 20 69 6e 20 74 68 65 0d 63 75 72 72 |disc in the.curr| 000047d0 65 6e 74 20 64 72 69 76 65 2e 20 54 68 65 6e 20 |ent drive. Then | 000047e0 70 72 65 73 73 20 74 68 65 20 73 70 61 63 65 62 |press the spaceb| 000047f0 61 72 20 74 6f 20 70 72 69 6e 74 20 74 68 65 20 |ar to print the | 00004800 73 65 63 74 6f 72 20 49 44 73 20 66 6f 72 20 65 |sector IDs for e| 00004810 76 65 72 79 0d 74 72 61 63 6b 20 6f 6e 20 74 68 |very.track on th| 00004820 65 20 64 69 73 63 2e 20 54 68 65 20 74 72 61 63 |e disc. The trac| 00004830 6b 20 6e 75 6d 62 65 72 20 69 73 20 64 69 73 70 |k number is disp| 00004840 6c 61 79 65 64 20 61 6e 64 20 74 68 65 20 6c 6f |layed and the lo| 00004850 67 69 63 61 6c 20 74 72 61 63 6b 0d 28 4c 54 29 |gical track.(LT)| 00004860 2c 20 68 65 61 64 20 6e 75 6d 62 65 72 20 28 48 |, head number (H| 00004870 4e 29 2c 20 6c 6f 67 69 63 61 6c 20 73 65 63 74 |N), logical sect| 00004880 6f 72 20 28 4c 53 29 20 61 6e 64 20 64 61 74 61 |or (LS) and data| 00004890 20 73 69 7a 65 20 63 6f 64 65 20 28 44 53 29 20 | size code (DS) | 000048a0 61 72 65 0d 70 72 69 6e 74 65 64 20 66 6f 72 20 |are.printed for | 000048b0 65 76 65 72 79 20 70 68 79 73 69 63 61 6c 20 73 |every physical s| 000048c0 65 63 74 6f 72 20 6f 6e 20 65 61 63 68 20 74 72 |ector on each tr| 000048d0 61 63 6b 2c 20 73 74 61 72 74 69 6e 67 20 77 69 |ack, starting wi| 000048e0 74 68 20 70 68 79 73 69 63 61 6c 0d 73 65 63 74 |th physical.sect| 000048f0 6f 72 20 30 2e 0d 0d 49 74 20 69 73 20 71 75 69 |or 0...It is qui| 00004900 74 65 20 69 6e 74 65 72 65 73 74 69 6e 67 20 74 |te interesting t| 00004910 6f 20 75 73 65 20 74 68 69 73 20 70 72 6f 67 72 |o use this progr| 00004920 61 6d 20 77 69 74 68 20 61 20 63 6f 70 79 2d 70 |am with a copy-p| 00004930 72 6f 74 65 63 74 65 64 20 64 69 73 63 2e 0d 59 |rotected disc..Y| 00004940 6f 75 20 77 69 6c 6c 20 61 6c 6d 6f 73 74 20 63 |ou will almost c| 00004950 65 72 74 61 69 6e 6c 79 20 66 69 6e 64 20 74 68 |ertainly find th| 00004960 61 74 20 73 6f 6d 65 20 6f 66 20 74 68 65 20 70 |at some of the p| 00004970 68 79 73 69 63 61 6c 20 61 6e 64 20 6c 6f 67 69 |hysical and logi| 00004980 63 61 6c 20 74 72 61 63 6b 0d 6e 75 6d 62 65 72 |cal track.number| 00004990 73 20 61 72 65 20 64 69 66 66 65 72 65 6e 74 20 |s are different | 000049a0 61 6e 64 20 79 6f 75 20 6d 61 79 20 61 6c 73 6f |and you may also| 000049b0 20 66 69 6e 64 20 73 6f 6d 65 20 75 6e 65 78 70 | find some unexp| 000049c0 65 63 74 65 64 20 6c 6f 67 69 63 61 6c 20 73 65 |ected logical se| 000049d0 63 74 6f 72 0d 6e 75 6d 62 65 72 73 2e 20 46 69 |ctor.numbers. Fi| 000049e0 67 75 72 65 20 34 20 69 73 20 61 20 70 61 72 74 |gure 4 is a part| 000049f0 20 6f 66 20 74 68 65 20 6f 75 74 70 75 74 20 49 | of the output I| 00004a00 20 70 72 6f 64 75 63 65 64 20 77 69 74 68 20 74 | produced with t| 00004a10 68 65 20 34 30 20 74 72 61 63 6b 0d 73 69 6e 67 |he 40 track.sing| 00004a20 6c 65 20 64 65 6e 73 69 74 79 20 64 69 73 63 20 |le density disc | 00004a30 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 67 |version of the g| 00004a40 61 6d 65 20 22 47 72 61 6e 64 20 50 72 69 78 20 |ame "Grand Prix | 00004a50 43 6f 6e 73 74 72 75 63 74 69 6f 6e 20 53 65 74 |Construction Set| 00004a60 22 2e 0d 0d 0d 20 20 20 20 20 20 20 20 20 20 20 |".... | 00004a70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004a80 20 54 72 61 63 6b 20 20 26 30 41 0d 20 20 20 20 | Track &0A. | 00004a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004aa0 20 20 20 20 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d | --------| 00004ab0 2d 2d 0d 20 20 20 20 20 20 20 20 20 20 20 20 20 |--. | 00004ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 54 20 | LT | 00004ad0 20 48 4e 20 20 4c 53 20 20 44 53 0d 20 20 20 20 | HN LS DS. | 00004ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004af0 20 20 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ----------| 00004b00 2d 2d 2d 2d 0d 20 20 20 20 20 20 20 20 20 20 20 |----. | 00004b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 | 1| 00004b20 34 20 20 30 30 20 20 30 30 20 20 30 31 0d 20 20 |4 00 00 01. | 00004b30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004b40 20 20 20 20 20 20 20 20 31 34 20 20 30 30 20 20 | 14 00 | 00004b50 30 31 20 20 30 31 0d 20 20 20 20 20 20 20 20 20 |01 01. | 00004b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004b70 20 31 34 20 20 30 30 20 20 30 32 20 20 30 31 0d | 14 00 02 01.| 00004b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004b90 20 20 20 20 20 20 20 20 20 20 31 34 20 20 30 30 | 14 00| 00004ba0 20 20 30 33 20 20 30 31 20 20 20 20 20 20 20 20 | 03 01 | 00004bb0 20 20 20 20 20 20 20 0d 20 20 20 20 20 20 20 20 | . | 00004bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004bd0 20 20 31 34 20 20 30 30 20 20 30 34 20 20 30 31 | 14 00 04 01| 00004be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004bf0 20 20 20 0d 20 20 20 20 20 20 20 20 20 20 20 20 | . | 00004c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 34 | 14| 00004c10 20 20 30 30 20 20 30 35 20 20 30 31 0d 20 20 20 | 00 05 01. | 00004c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004c30 20 20 20 20 20 20 20 31 34 20 20 30 30 20 20 30 | 14 00 0| 00004c40 36 20 20 30 31 0d 20 20 20 20 20 20 20 20 20 20 |6 01. | 00004c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004c60 31 34 20 20 30 30 20 20 30 37 20 20 30 31 0d 20 |14 00 07 01. | 00004c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004c80 20 20 20 20 20 20 20 20 20 31 34 20 20 30 30 20 | 14 00 | 00004c90 20 30 38 20 20 30 31 0d 20 20 20 20 20 20 20 20 | 08 01. | 00004ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00004cb0 20 20 31 34 20 20 30 30 20 20 30 39 20 20 30 31 | 14 00 09 01| 00004cc0 0d 0d 0d 46 69 67 75 72 65 20 34 2e 20 50 61 72 |...Figure 4. Par| 00004cd0 74 20 6f 66 20 74 68 65 20 6f 75 74 70 75 74 20 |t of the output | 00004ce0 66 72 6f 6d 20 74 68 65 20 70 72 6f 67 72 61 6d |from the program| 00004cf0 20 49 44 53 44 55 4d 50 0d 2d 2d 2d 2d 2d 2d 2d | IDSDUMP.-------| 00004d00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00004d20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0d |--------------..| 00004d30 0d 59 6f 75 20 73 68 6f 75 6c 64 20 6e 6f 74 69 |.You should noti| 00004d40 63 65 20 74 68 61 74 20 70 68 79 73 69 63 61 6c |ce that physical| 00004d50 20 74 72 61 63 6b 20 26 30 41 20 75 73 65 73 20 | track &0A uses | 00004d60 6c 6f 67 69 63 61 6c 20 74 72 61 63 6b 20 6e 75 |logical track nu| 00004d70 6d 62 65 72 20 26 31 34 0d 62 75 74 20 74 68 65 |mber &14.but the| 00004d80 20 70 68 79 73 69 63 61 6c 20 73 65 63 74 6f 72 | physical sector| 00004d90 20 6e 75 6d 62 65 72 73 2c 20 69 6e 64 69 63 61 | numbers, indica| 00004da0 74 65 64 20 62 79 20 74 68 65 20 6f 72 64 65 72 |ted by the order| 00004db0 20 6f 66 20 74 68 65 20 73 65 63 74 6f 72 73 2c | of the sectors,| 00004dc0 0d 61 72 65 20 74 68 65 20 73 61 6d 65 20 61 73 |.are the same as| 00004dd0 20 74 68 65 20 6c 6f 67 69 63 61 6c 20 73 65 63 | the logical sec| 00004de0 74 6f 72 20 6e 75 6d 62 65 72 73 2e 20 54 68 69 |tor numbers. Thi| 00004df0 73 20 75 73 65 20 6f 66 20 64 69 66 66 65 72 65 |s use of differe| 00004e00 6e 74 20 70 68 79 73 69 63 61 6c 0d 61 6e 64 20 |nt physical.and | 00004e10 6c 6f 67 69 63 61 6c 20 74 72 61 63 6b 20 6e 75 |logical track nu| 00004e20 6d 62 65 72 73 20 69 73 20 73 75 66 66 69 63 69 |mbers is suffici| 00004e30 65 6e 74 20 74 6f 20 70 72 65 76 65 6e 74 20 74 |ent to prevent t| 00004e40 68 65 20 2a 42 41 43 4b 55 50 20 63 6f 6d 6d 61 |he *BACKUP comma| 00004e50 6e 64 0d 64 75 70 6c 69 63 61 74 69 6e 67 20 74 |nd.duplicating t| 00004e60 68 65 20 64 69 73 63 2e 20 41 73 20 69 66 20 74 |he disc. As if t| 00004e70 6f 20 6d 61 6b 65 20 73 75 72 65 20 69 74 20 63 |o make sure it c| 00004e80 61 6e 27 74 20 62 65 20 63 6f 70 69 65 64 2c 20 |an't be copied, | 00004e90 74 68 65 20 64 69 73 63 20 61 6c 73 6f 0d 75 73 |the disc also.us| 00004ea0 65 73 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 |es deleted data | 00004eb0 74 6f 20 72 65 2d 69 6e 66 6f 72 63 65 20 74 68 |to re-inforce th| 00004ec0 65 20 73 61 6d 65 20 65 66 66 65 63 74 2e 20 44 |e same effect. D| 00004ed0 65 6c 65 74 65 64 20 64 61 74 61 20 6d 61 72 6b |eleted data mark| 00004ee0 65 72 73 0d 63 61 6e 6e 6f 74 20 62 65 20 64 69 |ers.cannot be di| 00004ef0 73 70 6c 61 79 65 64 20 77 69 74 68 20 74 68 65 |splayed with the| 00004f00 20 70 72 6f 67 72 61 6d 20 49 44 53 44 55 4d 50 | program IDSDUMP| 00004f10 20 61 6e 64 20 73 6f 20 49 20 68 61 76 65 20 70 | and so I have p| 00004f20 72 6f 76 69 64 65 64 20 61 0d 70 72 6f 67 72 61 |rovided a.progra| 00004f30 6d 20 63 61 6c 6c 65 64 20 56 45 52 49 46 59 20 |m called VERIFY | 00004f40 77 68 69 63 68 20 77 69 6c 6c 20 76 65 72 69 66 |which will verif| 00004f50 79 20 63 6f 70 79 2d 70 72 6f 74 65 63 74 65 64 |y copy-protected| 00004f60 20 64 69 73 63 73 20 61 6e 64 20 69 6e 64 69 63 | discs and indic| 00004f70 61 74 65 0d 77 68 69 63 68 20 74 72 61 63 6b 73 |ate.which tracks| 00004f80 20 75 73 65 20 64 65 6c 65 74 65 64 20 64 61 74 | use deleted dat| 00004f90 61 2e 0d 0d 54 68 65 20 64 65 6c 65 74 65 64 20 |a...The deleted | 00004fa0 64 61 74 61 20 6d 61 72 6b 20 69 73 20 61 20 70 |data mark is a p| 00004fb0 61 72 74 20 6f 66 20 74 68 65 20 64 61 74 61 20 |art of the data | 00004fc0 66 69 65 6c 64 20 61 6e 64 20 63 61 6e 20 62 65 |field and can be| 00004fd0 20 72 65 61 64 20 75 73 69 6e 67 0d 74 68 65 20 | read using.the | 00004fe0 76 65 72 69 66 79 20 63 6f 6d 6d 61 6e 64 2e 20 |verify command. | 00004ff0 54 68 69 73 20 77 69 6c 6c 20 61 6c 73 6f 20 62 |This will also b| 00005000 65 20 65 78 70 6c 61 69 6e 65 64 20 69 6e 20 64 |e explained in d| 00005010 65 74 61 69 6c 20 69 6e 20 61 20 6c 61 74 65 72 |etail in a later| 00005020 0d 6d 6f 64 75 6c 65 20 62 75 74 2c 20 66 6f 72 |.module but, for| 00005030 20 6e 6f 77 2c 20 79 6f 75 20 73 68 6f 75 6c 64 | now, you should| 00005040 20 66 69 6e 64 20 69 74 20 69 6e 74 65 72 65 73 | find it interes| 00005050 74 69 6e 67 20 74 6f 20 75 73 65 20 74 68 65 20 |ting to use the | 00005060 70 72 6f 67 72 61 6d 0d 56 45 52 49 46 59 20 74 |program.VERIFY t| 00005070 6f 20 66 69 6e 64 20 74 68 65 20 64 65 6c 65 74 |o find the delet| 00005080 65 64 20 64 61 74 61 20 6f 6e 20 61 20 63 6f 70 |ed data on a cop| 00005090 79 2d 70 72 6f 74 65 63 74 65 64 20 64 69 73 63 |y-protected disc| 000050a0 2e 0d 0d 0d 20 20 20 31 30 20 52 45 4d 3a 20 56 |.... 10 REM: V| 000050b0 45 52 49 46 59 0d 20 20 20 32 30 20 52 45 4d 3a |ERIFY. 20 REM:| 000050c0 20 66 6f 72 20 63 6f 70 79 2d 70 72 6f 74 65 63 | for copy-protec| 000050d0 74 65 64 20 64 69 73 63 73 0d 20 20 20 33 30 20 |ted discs. 30 | 000050e0 6f 73 6e 65 77 6c 3d 26 46 46 45 37 0d 20 20 20 |osnewl=&FFE7. | 000050f0 34 30 20 6f 73 77 72 63 68 3d 26 46 46 45 45 0d |40 oswrch=&FFEE.| 00005100 20 20 20 35 30 20 6f 73 77 6f 72 64 3d 26 46 46 | 50 osword=&FF| 00005110 46 31 0d 20 20 20 36 30 20 6f 73 62 79 74 65 3d |F1. 60 osbyte=| 00005120 26 46 46 46 34 0d 20 20 20 37 30 20 44 49 4d 20 |&FFF4. 70 DIM | 00005130 62 75 66 66 65 72 20 26 35 30 0d 20 20 20 38 30 |buffer &50. 80| 00005140 20 44 49 4d 20 6d 63 6f 64 65 20 26 35 30 30 0d | DIM mcode &500.| 00005150 20 20 20 39 30 20 46 4f 52 20 70 61 73 73 3d 30 | 90 FOR pass=0| 00005160 20 54 4f 20 32 20 53 54 45 50 20 32 0d 20 20 31 | TO 2 STEP 2. 1| 00005170 30 30 20 50 25 3d 6d 63 6f 64 65 0d 20 20 31 31 |00 P%=mcode. 11| 00005180 30 20 5b 20 20 20 20 20 20 20 4f 50 54 20 70 61 |0 [ OPT pa| 00005190 73 73 0d 20 20 31 32 30 20 20 20 20 20 20 20 20 |ss. 120 | 000051a0 20 4a 53 52 20 6f 73 6e 65 77 6c 0d 20 20 31 33 | JSR osnewl. 13| 000051b0 30 20 2e 6d 61 69 6e 6c 6f 6f 70 0d 20 20 31 34 |0 .mainloop. 14| 000051c0 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 65 73 |0 JSR es| 000051d0 63 61 70 65 20 20 20 20 5c 20 63 68 65 63 6b 20 |cape \ check | 000051e0 65 73 63 61 70 65 20 66 6c 61 67 0d 20 20 31 35 |escape flag. 15| 000051f0 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 73 65 |0 JSR se| 00005200 65 6b 20 20 20 20 20 20 5c 20 73 65 65 6b 20 70 |ek \ seek p| 00005210 68 79 73 69 63 61 6c 20 74 72 61 63 6b 73 20 30 |hysical tracks 0| 00005220 20 2d 20 34 30 0d 20 20 31 36 30 20 20 20 20 20 | - 40. 160 | 00005230 20 20 20 20 4a 53 52 20 66 69 72 73 74 73 65 63 | JSR firstsec| 00005240 74 6f 72 20 5c 20 72 65 61 64 20 73 65 63 74 6f |tor \ read secto| 00005250 72 20 69 64 20 66 69 72 73 74 20 73 65 63 74 6f |r id first secto| 00005260 72 0d 20 20 31 37 30 20 20 20 20 20 20 20 20 20 |r. 170 | 00005270 42 4e 45 20 6e 6f 74 76 65 72 69 66 79 20 5c 20 |BNE notverify \ | 00005280 69 66 20 65 72 72 6f 72 20 74 72 61 63 6b 20 6e |if error track n| 00005290 6f 74 20 66 6f 72 6d 61 74 74 65 64 0d 20 20 31 |ot formatted. 1| 000052a0 38 30 20 20 20 20 20 20 20 20 20 4a 53 52 20 73 |80 JSR s| 000052b0 65 63 74 6f 72 69 64 73 20 5c 20 72 65 61 64 20 |ectorids \ read | 000052c0 61 6c 6c 20 73 65 63 74 6f 72 20 69 64 73 0d 20 |all sector ids. | 000052d0 20 31 39 30 20 20 20 20 20 20 20 20 20 4a 53 52 | 190 JSR| 000052e0 20 76 65 72 69 66 79 20 20 20 20 5c 20 76 65 72 | verify \ ver| 000052f0 69 66 79 20 61 6c 6c 20 73 65 63 74 6f 72 73 0d |ify all sectors.| 00005300 20 20 32 30 30 20 2e 6e 6f 74 76 65 72 69 66 79 | 200 .notverify| 00005310 0d 20 20 32 31 30 20 20 20 20 20 20 20 20 20 4a |. 210 J| 00005320 53 52 20 70 72 69 6e 74 62 79 74 65 20 5c 20 70 |SR printbyte \ p| 00005330 72 69 6e 74 20 74 72 61 63 6b 20 6e 75 6d 62 65 |rint track numbe| 00005340 72 0d 20 20 32 32 30 20 20 20 20 20 20 20 20 20 |r. 220 | 00005350 49 4e 43 20 70 68 79 73 69 63 61 6c 20 20 5c 20 |INC physical \ | 00005360 69 6e 63 72 65 6d 65 6e 74 20 70 68 79 73 69 63 |increment physic| 00005370 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 0d |al track number.| 00005380 20 20 32 33 30 20 20 20 20 20 20 20 20 20 4c 44 | 230 LD| 00005390 41 20 70 68 79 73 69 63 61 6c 20 20 5c 20 6c 6f |A physical \ lo| 000053a0 61 64 20 70 68 79 73 69 63 61 6c 20 74 72 61 63 |ad physical trac| 000053b0 6b 20 6e 75 6d 62 65 72 0d 20 20 32 34 30 20 20 |k number. 240 | 000053c0 20 20 20 20 20 20 20 43 4d 50 20 6c 61 73 74 20 | CMP last | 000053d0 20 20 20 20 20 5c 20 61 6c 6c 20 64 6f 6e 65 3f | \ all done?| 000053e0 0d 20 20 32 35 30 20 20 20 20 20 20 20 20 20 42 |. 250 B| 000053f0 4e 45 20 6d 61 69 6e 6c 6f 6f 70 20 20 5c 20 69 |NE mainloop \ i| 00005400 66 20 6e 6f 74 20 63 6f 70 79 20 6e 65 78 74 20 |f not copy next | 00005410 74 72 61 63 6b 0d 20 20 32 36 30 20 20 20 20 20 |track. 260 | 00005420 20 20 20 20 4a 53 52 20 6f 73 6e 65 77 6c 0d 20 | JSR osnewl. | 00005430 20 32 37 30 20 20 20 20 20 20 20 20 20 52 54 53 | 270 RTS| 00005440 20 20 20 20 20 20 20 20 20 20 20 5c 20 72 65 74 | \ ret| 00005450 75 72 6e 20 74 6f 20 42 41 53 49 43 0d 20 20 32 |urn to BASIC. 2| 00005460 38 30 20 2e 65 73 63 61 70 65 0d 20 20 32 39 30 |80 .escape. 290| 00005470 20 20 20 20 20 20 20 20 20 4c 44 41 20 26 46 46 | LDA &FF| 00005480 20 20 20 20 20 20 20 5c 20 65 73 63 61 70 65 20 | \ escape | 00005490 66 6c 61 67 0d 20 20 33 30 30 20 20 20 20 20 20 |flag. 300 | 000054a0 20 20 20 42 4d 49 20 70 72 65 73 73 65 64 20 20 | BMI pressed | 000054b0 20 5c 20 62 69 74 20 37 20 73 65 74 20 69 66 20 | \ bit 7 set if | 000054c0 70 72 65 73 73 65 64 0d 20 20 33 31 30 20 20 20 |pressed. 310 | 000054d0 20 20 20 20 20 20 52 54 53 0d 20 20 33 32 30 20 | RTS. 320 | 000054e0 2e 70 72 65 73 73 65 64 0d 20 20 33 33 30 20 20 |.pressed. 330 | 000054f0 20 20 20 20 20 20 20 4c 44 41 20 23 26 37 45 0d | LDA #&7E.| 00005500 20 20 33 34 30 20 20 20 20 20 20 20 20 20 4a 53 | 340 JS| 00005510 52 20 6f 73 62 79 74 65 20 20 20 20 5c 20 61 63 |R osbyte \ ac| 00005520 6b 6e 6f 77 6c 65 64 67 65 20 45 73 63 61 70 65 |knowledge Escape| 00005530 0d 20 20 33 35 30 20 20 20 20 20 20 20 20 20 42 |. 350 B| 00005540 52 4b 0d 20 20 33 36 30 20 20 20 20 20 20 20 20 |RK. 360 | 00005550 20 42 52 4b 0d 20 20 33 37 30 20 20 20 20 20 20 | BRK. 370 | 00005560 20 20 20 45 51 55 53 20 22 45 73 63 61 70 65 22 | EQUS "Escape"| 00005570 0d 20 20 33 38 30 20 20 20 20 20 20 20 20 20 42 |. 380 B| 00005580 52 4b 0d 20 20 33 39 30 20 2e 73 65 65 6b 0d 20 |RK. 390 .seek. | 00005590 20 34 30 30 20 20 20 20 20 20 20 20 20 4c 44 41 | 400 LDA| 000055a0 20 70 68 79 73 69 63 61 6c 20 20 5c 20 70 68 79 | physical \ phy| 000055b0 73 69 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 |sical track numb| 000055c0 65 72 0d 20 20 34 31 30 20 20 20 20 20 20 20 20 |er. 410 | 000055d0 20 53 54 41 20 73 65 65 6b 62 6c 6f 63 6b 2b 37 | STA seekblock+7| 000055e0 0d 20 20 34 32 30 20 20 20 20 20 20 20 20 20 4c |. 420 L| 000055f0 44 41 20 23 26 37 46 0d 20 20 34 33 30 20 20 20 |DA #&7F. 430 | 00005600 20 20 20 20 20 20 4c 44 58 20 23 73 65 65 6b 62 | LDX #seekb| 00005610 6c 6f 63 6b 20 4d 4f 44 20 32 35 36 0d 20 20 34 |lock MOD 256. 4| 00005620 34 30 20 20 20 20 20 20 20 20 20 4c 44 59 20 23 |40 LDY #| 00005630 73 65 65 6b 62 6c 6f 63 6b 20 44 49 56 20 32 35 |seekblock DIV 25| 00005640 36 0d 20 20 34 35 30 20 20 20 20 20 20 20 20 20 |6. 450 | 00005650 4a 53 52 20 6f 73 77 6f 72 64 0d 20 20 34 36 30 |JSR osword. 460| 00005660 20 20 20 20 20 20 20 20 20 4c 44 41 20 73 65 65 | LDA see| 00005670 6b 62 6c 6f 63 6b 2b 38 20 5c 20 72 65 73 75 6c |kblock+8 \ resul| 00005680 74 0d 20 20 34 37 30 20 20 20 20 20 20 20 20 20 |t. 470 | 00005690 42 4e 45 20 73 65 65 6b 65 72 72 6f 72 20 5c 20 |BNE seekerror \ | 000056a0 3d 20 30 20 69 66 20 4f 4b 0d 20 20 34 38 30 20 |= 0 if OK. 480 | 000056b0 20 20 20 20 20 20 20 20 52 54 53 0d 20 20 34 39 | RTS. 49| 000056c0 30 20 2e 73 65 65 6b 65 72 72 6f 72 0d 20 20 35 |0 .seekerror. 5| 000056d0 30 30 20 20 20 20 20 20 20 20 20 42 52 4b 0d 20 |00 BRK. | 000056e0 20 35 31 30 20 20 20 20 20 20 20 20 20 42 52 4b | 510 BRK| 000056f0 0d 20 20 35 32 30 20 20 20 20 20 20 20 20 20 45 |. 520 E| 00005700 51 55 53 20 22 53 65 65 6b 20 65 72 72 6f 72 22 |QUS "Seek error"| 00005710 0d 20 20 35 33 30 20 20 20 20 20 20 20 20 20 42 |. 530 B| 00005720 52 4b 0d 20 20 35 34 30 20 2e 66 69 72 73 74 73 |RK. 540 .firsts| 00005730 65 63 74 6f 72 0d 20 20 35 35 30 20 20 20 20 20 |ector. 550 | 00005740 20 20 20 20 4c 44 41 20 70 68 79 73 69 63 61 6c | LDA physical| 00005750 20 20 5c 20 70 68 79 73 69 63 61 6c 20 74 72 61 | \ physical tra| 00005760 63 6b 20 6e 75 6d 62 65 72 0d 20 20 35 36 30 20 |ck number. 560 | 00005770 20 20 20 20 20 20 20 20 53 54 41 20 69 64 73 62 | STA idsb| 00005780 6c 6f 63 6b 2b 37 20 5c 20 73 74 6f 72 65 20 70 |lock+7 \ store p| 00005790 68 79 73 69 63 61 6c 20 74 72 61 63 6b 0d 20 20 |hysical track. | 000057a0 35 37 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 |570 LDA | 000057b0 23 31 20 20 20 20 20 20 20 20 5c 20 6f 6e 65 20 |#1 \ one | 000057c0 73 65 63 74 6f 72 0d 20 20 35 38 30 20 20 20 20 |sector. 580 | 000057d0 20 20 20 20 20 53 54 41 20 69 64 73 62 6c 6f 63 | STA idsbloc| 000057e0 6b 2b 39 20 5c 20 6e 75 6d 62 65 72 20 6f 66 20 |k+9 \ number of | 000057f0 69 64 73 0d 20 20 35 39 30 20 20 20 20 20 20 20 |ids. 590 | 00005800 20 20 4c 44 41 20 23 26 37 46 0d 20 20 36 30 30 | LDA #&7F. 600| 00005810 20 20 20 20 20 20 20 20 20 4c 44 58 20 23 69 64 | LDX #id| 00005820 73 62 6c 6f 63 6b 20 4d 4f 44 20 32 35 36 0d 20 |sblock MOD 256. | 00005830 20 36 31 30 20 20 20 20 20 20 20 20 20 4c 44 59 | 610 LDY| 00005840 20 23 69 64 73 62 6c 6f 63 6b 20 44 49 56 20 32 | #idsblock DIV 2| 00005850 35 36 0d 20 20 36 32 30 20 20 20 20 20 20 20 20 |56. 620 | 00005860 20 4a 53 52 20 6f 73 77 6f 72 64 0d 20 20 36 33 | JSR osword. 63| 00005870 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 69 64 |0 LDA id| 00005880 73 62 6c 6f 63 6b 2b 31 30 20 5c 20 3d 20 30 20 |sblock+10 \ = 0 | 00005890 69 66 20 66 6f 72 6d 61 74 74 65 64 0d 20 20 36 |if formatted. 6| 000058a0 34 30 20 20 20 20 20 20 20 20 20 52 54 53 0d 20 |40 RTS. | 000058b0 20 36 35 30 20 2e 73 65 63 74 6f 72 69 64 73 0d | 650 .sectorids.| 000058c0 20 20 36 36 30 20 20 20 20 20 20 20 20 20 4c 44 | 660 LD| 000058d0 58 20 62 75 66 66 65 72 2b 33 20 20 5c 20 6c 6f |X buffer+3 \ lo| 000058e0 61 64 20 64 61 74 61 20 73 69 7a 65 20 63 6f 64 |ad data size cod| 000058f0 65 0d 20 20 36 37 30 20 20 20 20 20 20 20 20 20 |e. 670 | 00005900 4c 44 41 20 73 69 7a 65 73 2c 58 20 20 20 5c 20 |LDA sizes,X \ | 00005910 6c 6f 61 64 20 6e 75 6d 62 65 72 20 6f 66 20 73 |load number of s| 00005920 65 63 74 6f 72 73 0d 20 20 36 38 30 20 20 20 20 |ectors. 680 | 00005930 20 20 20 20 20 53 54 41 20 69 64 73 62 6c 6f 63 | STA idsbloc| 00005940 6b 2b 39 20 5c 20 73 74 6f 72 65 20 6e 75 6d 62 |k+9 \ store numb| 00005950 65 72 20 6f 66 20 73 65 63 74 6f 72 73 0d 20 20 |er of sectors. | 00005960 36 39 30 20 20 20 20 20 20 20 20 20 41 53 4c 20 |690 ASL | 00005970 41 20 20 20 20 20 20 20 20 20 5c 20 2a 32 0d 20 |A \ *2. | 00005980 20 37 30 30 20 20 20 20 20 20 20 20 20 41 53 4c | 700 ASL| 00005990 20 41 20 20 20 20 20 20 20 20 20 5c 20 2a 34 0d | A \ *4.| 000059a0 20 20 37 31 30 20 20 20 20 20 20 20 20 20 53 45 | 710 SE| 000059b0 43 0d 20 20 37 32 30 20 20 20 20 20 20 20 20 20 |C. 720 | 000059c0 53 42 43 20 23 34 20 20 20 20 20 20 20 20 5c 20 |SBC #4 \ | 000059d0 73 65 63 74 6f 72 73 2a 34 2d 34 0d 20 20 37 33 |sectors*4-4. 73| 000059e0 30 20 20 20 20 20 20 20 20 20 53 54 41 20 73 65 |0 STA se| 000059f0 63 74 6f 72 6e 75 6d 62 65 72 20 5c 20 73 74 6f |ctornumber \ sto| 00005a00 72 65 20 69 6e 64 65 78 20 6f 6e 20 73 65 63 74 |re index on sect| 00005a10 6f 72 73 0d 20 20 37 34 30 20 20 20 20 20 20 20 |ors. 740 | 00005a20 20 20 54 58 41 20 20 20 20 20 20 20 20 20 20 20 | TXA | 00005a30 5c 20 74 72 61 6e 73 66 65 72 20 64 61 74 61 20 |\ transfer data | 00005a40 73 69 7a 65 20 63 6f 64 65 0d 20 20 37 35 30 20 |size code. 750 | 00005a50 20 20 20 20 20 20 20 20 41 53 4c 20 41 20 20 20 | ASL A | 00005a60 20 20 20 20 20 20 5c 20 2a 32 0d 20 20 37 36 30 | \ *2. 760| 00005a70 20 20 20 20 20 20 20 20 20 41 53 4c 20 41 20 20 | ASL A | 00005a80 20 20 20 20 20 20 20 5c 20 2a 34 0d 20 20 37 37 | \ *4. 77| 00005a90 30 20 20 20 20 20 20 20 20 20 41 53 4c 20 41 20 |0 ASL A | 00005aa0 20 20 20 20 20 20 20 20 5c 20 2a 38 0d 20 20 37 | \ *8. 7| 00005ab0 38 30 20 20 20 20 20 20 20 20 20 41 53 4c 20 41 |80 ASL A| 00005ac0 20 20 20 20 20 20 20 20 20 5c 20 2a 31 36 0d 20 | \ *16. | 00005ad0 20 37 39 30 20 20 20 20 20 20 20 20 20 41 53 4c | 790 ASL| 00005ae0 20 41 20 20 20 20 20 20 20 20 20 5c 20 2a 33 32 | A \ *32| 00005af0 0d 20 20 38 30 30 20 20 20 20 20 20 20 20 20 4f |. 800 O| 00005b00 52 41 20 69 64 73 62 6c 6f 63 6b 2b 39 20 5c 20 |RA idsblock+9 \ | 00005b10 61 64 64 20 6e 75 6d 62 65 72 20 6f 66 20 73 65 |add number of se| 00005b20 63 74 6f 72 73 0d 20 20 38 31 30 20 20 20 20 20 |ctors. 810 | 00005b30 20 20 20 20 53 54 41 20 76 65 72 62 6c 6f 63 6b | STA verblock| 00005b40 2b 39 20 5c 20 73 74 6f 72 65 20 66 6f 72 20 76 |+9 \ store for v| 00005b50 65 72 69 66 79 0d 20 20 38 32 30 20 20 20 20 20 |erify. 820 | 00005b60 20 20 20 20 4c 44 41 20 23 26 37 46 0d 20 20 38 | LDA #&7F. 8| 00005b70 33 30 20 20 20 20 20 20 20 20 20 4c 44 58 20 23 |30 LDX #| 00005b80 69 64 73 62 6c 6f 63 6b 20 4d 4f 44 20 32 35 36 |idsblock MOD 256| 00005b90 0d 20 20 38 34 30 20 20 20 20 20 20 20 20 20 4c |. 840 L| 00005ba0 44 59 20 23 69 64 73 62 6c 6f 63 6b 20 44 49 56 |DY #idsblock DIV| 00005bb0 20 32 35 36 0d 20 20 38 35 30 20 20 20 20 20 20 | 256. 850 | 00005bc0 20 20 20 4a 53 52 20 6f 73 77 6f 72 64 0d 20 20 | JSR osword. | 00005bd0 38 36 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 |860 LDA | 00005be0 69 64 73 62 6c 6f 63 6b 2b 31 30 20 5c 20 72 65 |idsblock+10 \ re| 00005bf0 73 75 6c 74 0d 20 20 38 37 30 20 20 20 20 20 20 |sult. 870 | 00005c00 20 20 20 42 4e 45 20 69 64 73 65 72 72 6f 72 20 | BNE idserror | 00005c10 20 5c 20 3d 20 30 20 69 66 20 4f 4b 0d 20 20 38 | \ = 0 if OK. 8| 00005c20 38 30 20 20 20 20 20 20 20 20 20 52 54 53 0d 20 |80 RTS. | 00005c30 20 38 39 30 20 2e 69 64 73 65 72 72 6f 72 0d 20 | 890 .idserror. | 00005c40 20 39 30 30 20 20 20 20 20 20 20 20 20 42 52 4b | 900 BRK| 00005c50 0d 20 20 39 31 30 20 20 20 20 20 20 20 20 20 42 |. 910 B| 00005c60 52 4b 0d 20 20 39 32 30 20 20 20 20 20 20 20 20 |RK. 920 | 00005c70 20 45 51 55 53 20 22 53 65 63 74 6f 72 20 49 44 | EQUS "Sector ID| 00005c80 20 45 72 72 6f 72 22 0d 20 20 39 33 30 20 20 20 | Error". 930 | 00005c90 20 20 20 20 20 20 42 52 4b 0d 20 20 39 34 30 20 | BRK. 940 | 00005ca0 2e 76 65 72 69 66 79 0d 20 20 39 35 30 20 20 20 |.verify. 950 | 00005cb0 20 20 20 20 20 20 4c 44 58 20 73 65 63 74 6f 72 | LDX sector| 00005cc0 6e 75 6d 62 65 72 20 5c 20 6c 6f 61 64 20 69 6e |number \ load in| 00005cd0 64 65 78 20 6f 6e 20 74 61 62 6c 65 0d 20 20 39 |dex on table. 9| 00005ce0 36 30 20 20 20 20 20 20 20 20 20 4c 44 41 20 62 |60 LDA b| 00005cf0 75 66 66 65 72 2b 32 2c 58 20 5c 20 6c 6f 61 64 |uffer+2,X \ load| 00005d00 20 6c 6f 67 69 63 61 6c 20 73 65 63 74 6f 72 20 | logical sector | 00005d10 6e 75 6d 62 65 72 0d 20 20 39 37 30 20 20 20 20 |number. 970 | 00005d20 20 20 20 20 20 53 54 41 20 76 65 72 62 6c 6f 63 | STA verbloc| 00005d30 6b 2b 38 20 5c 20 73 74 6f 72 65 20 66 6f 72 20 |k+8 \ store for | 00005d40 76 65 72 69 66 79 0d 20 20 39 38 30 20 2e 6c 6f |verify. 980 .lo| 00005d50 77 65 73 74 0d 20 20 39 39 30 20 20 20 20 20 20 |west. 990 | 00005d60 20 20 20 44 45 58 0d 20 31 30 30 30 20 20 20 20 | DEX. 1000 | 00005d70 20 20 20 20 20 44 45 58 0d 20 31 30 31 30 20 20 | DEX. 1010 | 00005d80 20 20 20 20 20 20 20 44 45 58 0d 20 31 30 32 30 | DEX. 1020| 00005d90 20 20 20 20 20 20 20 20 20 44 45 58 0d 20 31 30 | DEX. 10| 00005da0 33 30 20 20 20 20 20 20 20 20 20 42 4d 49 20 66 |30 BMI f| 00005db0 69 6e 69 73 68 65 64 0d 20 31 30 34 30 20 20 20 |inished. 1040 | 00005dc0 20 20 20 20 20 20 4c 44 41 20 62 75 66 66 65 72 | LDA buffer| 00005dd0 2b 32 2c 58 20 5c 20 6c 6f 61 64 20 6c 6f 67 69 |+2,X \ load logi| 00005de0 63 61 6c 20 73 65 63 74 6f 72 20 6e 75 6d 62 65 |cal sector numbe| 00005df0 72 0d 20 31 30 35 30 20 20 20 20 20 20 20 20 20 |r. 1050 | 00005e00 43 4d 50 20 76 65 72 62 6c 6f 63 6b 2b 38 20 5c |CMP verblock+8 \| 00005e10 20 69 73 20 69 74 20 6c 6f 77 65 72 20 74 68 61 | is it lower tha| 00005e20 6e 20 74 68 65 20 6c 61 73 74 20 6f 6e 65 3f 0d |n the last one?.| 00005e30 20 31 30 36 30 20 20 20 20 20 20 20 20 20 42 43 | 1060 BC| 00005e40 53 20 6c 6f 77 65 73 74 20 20 20 20 5c 20 62 72 |S lowest \ br| 00005e50 61 6e 63 68 20 69 66 20 6e 6f 74 20 6c 6f 77 65 |anch if not lowe| 00005e60 73 74 20 73 65 63 74 6f 72 0d 20 31 30 37 30 20 |st sector. 1070 | 00005e70 20 20 20 20 20 20 20 20 53 54 41 20 76 65 72 62 | STA verb| 00005e80 6c 6f 63 6b 2b 38 20 5c 20 73 74 6f 72 65 20 69 |lock+8 \ store i| 00005e90 66 20 69 74 20 69 73 20 6c 6f 77 65 72 0d 20 31 |f it is lower. 1| 00005ea0 30 38 30 20 20 20 20 20 20 20 20 20 42 43 43 20 |080 BCC | 00005eb0 6c 6f 77 65 73 74 20 20 20 20 5c 20 6c 6f 6f 6b |lowest \ look| 00005ec0 20 66 6f 72 20 6c 6f 77 65 72 20 73 65 63 74 6f | for lower secto| 00005ed0 72 20 6e 75 6d 62 65 72 0d 20 31 30 39 30 20 2e |r number. 1090 .| 00005ee0 66 69 6e 69 73 68 65 64 0d 20 31 31 30 30 20 20 |finished. 1100 | 00005ef0 20 20 20 20 20 20 20 4c 44 41 20 62 75 66 66 65 | LDA buffe| 00005f00 72 20 20 20 20 5c 20 6c 6f 61 64 20 6c 6f 67 69 |r \ load logi| 00005f10 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 72 |cal track number| 00005f20 0d 20 31 31 31 30 20 20 20 20 20 20 20 20 20 53 |. 1110 S| 00005f30 54 41 20 76 65 72 62 6c 6f 63 6b 2b 37 20 5c 20 |TA verblock+7 \ | 00005f40 61 6e 64 20 73 74 6f 72 65 20 66 6f 72 20 76 65 |and store for ve| 00005f50 72 69 66 79 0d 20 31 31 32 30 20 20 20 20 20 20 |rify. 1120 | 00005f60 20 20 20 4a 53 52 20 72 65 67 69 73 74 65 72 20 | JSR register | 00005f70 20 5c 20 77 72 69 74 65 20 74 72 61 63 6b 20 72 | \ write track r| 00005f80 65 67 69 73 74 65 72 0d 20 31 31 33 30 20 20 20 |egister. 1130 | 00005f90 20 20 20 20 20 20 4c 44 41 20 23 26 37 46 0d 20 | LDA #&7F. | 00005fa0 31 31 34 30 20 20 20 20 20 20 20 20 20 4c 44 58 |1140 LDX| 00005fb0 20 23 76 65 72 62 6c 6f 63 6b 20 4d 4f 44 20 32 | #verblock MOD 2| 00005fc0 35 36 0d 20 31 31 35 30 20 20 20 20 20 20 20 20 |56. 1150 | 00005fd0 20 4c 44 59 20 23 76 65 72 62 6c 6f 63 6b 20 44 | LDY #verblock D| 00005fe0 49 56 20 32 35 36 0d 20 31 31 36 30 20 20 20 20 |IV 256. 1160 | 00005ff0 20 20 20 20 20 4a 53 52 20 6f 73 77 6f 72 64 0d | JSR osword.| 00006000 20 31 31 37 30 20 20 20 20 20 20 20 20 20 4c 44 | 1170 LD| 00006010 41 20 70 68 79 73 69 63 61 6c 20 20 5c 20 70 68 |A physical \ ph| 00006020 79 73 69 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d |ysical track num| 00006030 62 65 72 0d 20 31 31 38 30 20 20 20 20 20 20 20 |ber. 1180 | 00006040 20 20 4a 53 52 20 72 65 67 69 73 74 65 72 20 20 | JSR register | 00006050 5c 20 77 72 69 74 65 20 74 72 61 63 6b 20 72 65 |\ write track re| 00006060 67 69 73 74 65 72 0d 20 31 31 39 30 20 20 20 20 |gister. 1190 | 00006070 20 20 20 20 20 4c 44 41 20 76 65 72 62 6c 6f 63 | LDA verbloc| 00006080 6b 2b 31 30 0d 20 31 32 30 30 20 20 20 20 20 20 |k+10. 1200 | 00006090 20 20 20 41 4e 44 20 23 26 31 45 20 20 20 20 20 | AND #&1E | 000060a0 20 5c 20 69 73 6f 6c 61 74 65 20 65 72 72 6f 72 | \ isolate error| 000060b0 20 62 69 74 73 0d 20 31 32 31 30 20 20 20 20 20 | bits. 1210 | 000060c0 20 20 20 20 42 4e 45 20 76 65 72 65 72 72 6f 72 | BNE vererror| 000060d0 0d 20 31 32 32 30 20 20 20 20 20 20 20 20 20 52 |. 1220 R| 000060e0 54 53 0d 20 31 32 33 30 20 2e 76 65 72 65 72 72 |TS. 1230 .vererr| 000060f0 6f 72 0d 20 31 32 34 30 20 20 20 20 20 20 20 20 |or. 1240 | 00006100 20 42 52 4b 0d 20 31 32 35 30 20 20 20 20 20 20 | BRK. 1250 | 00006110 20 20 20 42 52 4b 0d 20 31 32 36 30 20 20 20 20 | BRK. 1260 | 00006120 20 20 20 20 20 45 51 55 53 20 22 56 65 72 69 66 | EQUS "Verif| 00006130 79 20 65 72 72 6f 72 22 0d 20 31 32 37 30 20 20 |y error". 1270 | 00006140 20 20 20 20 20 20 20 42 52 4b 0d 20 31 32 38 30 | BRK. 1280| 00006150 20 2e 72 65 67 69 73 74 65 72 0d 20 31 32 39 30 | .register. 1290| 00006160 20 20 20 20 20 20 20 20 20 53 54 41 20 72 65 67 | STA reg| 00006170 62 6c 6f 63 6b 2b 38 20 5c 20 76 61 6c 75 65 20 |block+8 \ value | 00006180 74 6f 20 70 75 74 20 69 6e 20 72 65 67 69 73 74 |to put in regist| 00006190 65 72 0d 20 31 33 30 30 20 20 20 20 20 20 20 20 |er. 1300 | 000061a0 20 4c 44 41 20 23 26 37 46 0d 20 31 33 31 30 20 | LDA #&7F. 1310 | 000061b0 20 20 20 20 20 20 20 20 4c 44 58 20 23 72 65 67 | LDX #reg| 000061c0 62 6c 6f 63 6b 20 4d 4f 44 20 32 35 36 0d 20 31 |block MOD 256. 1| 000061d0 33 32 30 20 20 20 20 20 20 20 20 20 4c 44 59 20 |320 LDY | 000061e0 23 72 65 67 62 6c 6f 63 6b 20 44 49 56 20 32 35 |#regblock DIV 25| 000061f0 36 0d 20 31 33 33 30 20 20 20 20 20 20 20 20 20 |6. 1330 | 00006200 4a 53 52 20 6f 73 77 6f 72 64 0d 20 31 33 34 30 |JSR osword. 1340| 00006210 20 20 20 20 20 20 20 20 20 4c 44 41 20 72 65 67 | LDA reg| 00006220 62 6c 6f 63 6b 2b 39 0d 20 31 33 35 30 20 20 20 |block+9. 1350 | 00006230 20 20 20 20 20 20 42 4e 45 20 72 65 67 65 72 72 | BNE regerr| 00006240 6f 72 0d 20 31 33 36 30 20 20 20 20 20 20 20 20 |or. 1360 | 00006250 20 52 54 53 0d 20 31 33 37 30 20 2e 72 65 67 65 | RTS. 1370 .rege| 00006260 72 72 6f 72 0d 20 31 33 38 30 20 20 20 20 20 20 |rror. 1380 | 00006270 20 20 20 42 52 4b 0d 20 31 33 39 30 20 20 20 20 | BRK. 1390 | 00006280 20 20 20 20 20 42 52 4b 0d 20 31 34 30 30 20 20 | BRK. 1400 | 00006290 20 20 20 20 20 20 20 45 51 55 53 20 22 53 70 65 | EQUS "Spe| 000062a0 63 69 61 6c 20 72 65 67 69 73 74 65 72 20 65 72 |cial register er| 000062b0 72 6f 72 22 0d 20 31 34 31 30 20 20 20 20 20 20 |ror". 1410 | 000062c0 20 20 20 42 52 4b 0d 20 31 34 32 30 20 2e 70 72 | BRK. 1420 .pr| 000062d0 69 6e 74 62 79 74 65 0d 20 31 34 33 30 20 20 20 |intbyte. 1430 | 000062e0 20 20 20 20 20 20 4c 44 41 20 70 68 79 73 69 63 | LDA physic| 000062f0 61 6c 20 20 5c 20 70 72 69 6e 74 20 70 68 79 73 |al \ print phys| 00006300 69 63 61 6c 20 74 72 61 63 6b 20 6e 75 6d 62 65 |ical track numbe| 00006310 72 0d 20 31 34 34 30 20 20 20 20 20 20 20 20 20 |r. 1440 | 00006320 50 48 41 0d 20 31 34 35 30 20 20 20 20 20 20 20 |PHA. 1450 | 00006330 20 20 4c 53 52 20 41 0d 20 31 34 36 30 20 20 20 | LSR A. 1460 | 00006340 20 20 20 20 20 20 4c 53 52 20 41 0d 20 31 34 37 | LSR A. 147| 00006350 30 20 20 20 20 20 20 20 20 20 4c 53 52 20 41 0d |0 LSR A.| 00006360 20 31 34 38 30 20 20 20 20 20 20 20 20 20 4c 53 | 1480 LS| 00006370 52 20 41 0d 20 31 34 39 30 20 20 20 20 20 20 20 |R A. 1490 | 00006380 20 20 4a 53 52 20 6e 79 62 62 6c 65 20 20 20 20 | JSR nybble | 00006390 5c 20 70 72 69 6e 74 20 4d 53 20 6e 79 62 62 6c |\ print MS nybbl| 000063a0 65 0d 20 31 35 30 30 20 20 20 20 20 20 20 20 20 |e. 1500 | 000063b0 50 4c 41 0d 20 31 35 31 30 20 20 20 20 20 20 20 |PLA. 1510 | 000063c0 20 20 4a 53 52 20 6e 79 62 62 6c 65 20 20 20 20 | JSR nybble | 000063d0 5c 20 70 72 69 6e 74 20 4c 53 20 6e 79 62 62 6c |\ print LS nybbl| 000063e0 65 0d 20 31 35 32 30 20 20 20 20 20 20 20 20 20 |e. 1520 | 000063f0 4c 44 41 20 23 41 53 43 28 22 20 22 29 0d 20 31 |LDA #ASC(" "). 1| 00006400 35 33 30 20 20 20 20 20 20 20 20 20 4c 44 58 20 |530 LDX | 00006410 76 65 72 62 6c 6f 63 6b 2b 31 30 20 5c 20 6c 6f |verblock+10 \ lo| 00006420 61 64 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 |ad deleted data | 00006430 66 6c 61 67 0d 20 31 35 34 30 20 20 20 20 20 20 |flag. 1540 | 00006440 20 20 20 42 45 51 20 73 70 61 63 65 20 20 20 20 | BEQ space | 00006450 20 5c 20 69 66 20 3d 30 20 6e 6f 74 20 64 65 6c | \ if =0 not del| 00006460 65 74 65 64 0d 20 31 35 35 30 20 20 20 20 20 20 |eted. 1550 | 00006470 20 20 20 4c 44 41 20 23 41 53 43 28 22 64 22 29 | LDA #ASC("d")| 00006480 20 5c 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 | \ deleted data | 00006490 6d 61 72 6b 0d 20 31 35 36 30 20 2e 73 70 61 63 |mark. 1560 .spac| 000064a0 65 0d 20 31 35 37 30 20 20 20 20 20 20 20 20 20 |e. 1570 | 000064b0 4a 53 52 20 6f 73 77 72 63 68 20 20 20 20 5c 20 |JSR oswrch \ | 000064c0 70 72 69 6e 74 20 73 70 61 63 65 20 6f 72 20 22 |print space or "| 000064d0 64 22 0d 20 31 35 38 30 20 20 20 20 20 20 20 20 |d". 1580 | 000064e0 20 4c 44 41 20 23 41 53 43 28 22 20 22 29 0d 20 | LDA #ASC(" "). | 000064f0 31 35 39 30 20 20 20 20 20 20 20 20 20 4a 4d 50 |1590 JMP| 00006500 20 6f 73 77 72 63 68 20 20 20 20 5c 20 70 72 69 | oswrch \ pri| 00006510 6e 74 20 73 70 61 63 65 0d 20 31 36 30 30 20 2e |nt space. 1600 .| 00006520 6e 79 62 62 6c 65 0d 20 31 36 31 30 20 20 20 20 |nybble. 1610 | 00006530 20 20 20 20 20 41 4e 44 20 23 26 30 46 0d 20 31 | AND #&0F. 1| 00006540 36 32 30 20 20 20 20 20 20 20 20 20 53 45 44 0d |620 SED.| 00006550 20 31 36 33 30 20 20 20 20 20 20 20 20 20 43 4c | 1630 CL| 00006560 43 0d 20 31 36 34 30 20 20 20 20 20 20 20 20 20 |C. 1640 | 00006570 41 44 43 20 23 26 39 30 0d 20 31 36 35 30 20 20 |ADC #&90. 1650 | 00006580 20 20 20 20 20 20 20 41 44 43 20 23 26 34 30 0d | ADC #&40.| 00006590 20 31 36 36 30 20 20 20 20 20 20 20 20 20 43 4c | 1660 CL| 000065a0 44 0d 20 31 36 37 30 20 20 20 20 20 20 20 20 20 |D. 1670 | 000065b0 4a 4d 50 20 6f 73 77 72 63 68 20 20 20 20 5c 20 |JMP oswrch \ | 000065c0 70 72 69 6e 74 20 6e 79 62 62 6c 65 20 61 6e 64 |print nybble and| 000065d0 20 72 65 74 75 72 6e 0d 20 31 36 38 30 20 2e 73 | return. 1680 .s| 000065e0 65 65 6b 62 6c 6f 63 6b 0d 20 31 36 39 30 20 20 |eekblock. 1690 | 000065f0 20 20 20 20 20 20 20 45 51 55 42 20 26 46 46 20 | EQUB &FF | 00006600 20 20 20 20 20 5c 20 63 75 72 72 65 6e 74 20 64 | \ current d| 00006610 72 69 76 65 0d 20 31 37 30 30 20 20 20 20 20 20 |rive. 1700 | 00006620 20 20 20 45 51 55 44 20 26 30 30 20 20 20 20 20 | EQUD &00 | 00006630 20 5c 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 74 | \ does not matt| 00006640 65 72 0d 20 31 37 31 30 20 20 20 20 20 20 20 20 |er. 1710 | 00006650 20 45 51 55 44 20 26 30 30 30 30 36 39 30 31 20 | EQUD &00006901 | 00006660 5c 20 73 65 65 6b 2c 20 31 20 70 61 72 61 6d 65 |\ seek, 1 parame| 00006670 74 65 72 0d 20 31 37 32 30 20 2e 69 64 73 62 6c |ter. 1720 .idsbl| 00006680 6f 63 6b 0d 20 31 37 33 30 20 20 20 20 20 20 20 |ock. 1730 | 00006690 20 20 45 51 55 42 20 26 46 46 20 20 20 20 20 20 | EQUB &FF | 000066a0 5c 20 63 75 72 72 65 6e 74 20 64 72 69 76 65 0d |\ current drive.| 000066b0 20 31 37 34 30 20 20 20 20 20 20 20 20 20 45 51 | 1740 EQ| 000066c0 55 44 20 62 75 66 66 65 72 20 20 20 5c 20 61 64 |UD buffer \ ad| 000066d0 64 72 65 73 73 20 6f 66 20 62 75 66 66 65 72 0d |dress of buffer.| 000066e0 20 31 37 35 30 20 20 20 20 20 20 20 20 20 45 51 | 1750 EQ| 000066f0 55 44 20 26 30 30 30 30 35 42 30 33 20 5c 20 72 |UD &00005B03 \ r| 00006700 65 61 64 20 73 65 63 74 6f 72 20 69 64 73 0d 20 |ead sector ids. | 00006710 31 37 36 30 20 20 20 20 20 20 20 20 20 45 51 55 |1760 EQU| 00006720 57 20 26 30 30 0d 20 31 37 37 30 20 2e 76 65 72 |W &00. 1770 .ver| 00006730 62 6c 6f 63 6b 0d 20 31 37 38 30 20 20 20 20 20 |block. 1780 | 00006740 20 20 20 20 45 51 55 42 20 26 46 46 20 20 20 20 | EQUB &FF | 00006750 20 20 5c 20 63 75 72 72 65 6e 74 20 64 72 69 76 | \ current driv| 00006760 65 0d 20 31 37 39 30 20 20 20 20 20 20 20 20 20 |e. 1790 | 00006770 45 51 55 44 20 26 30 30 20 20 20 20 20 20 5c 20 |EQUD &00 \ | 00006780 64 6f 65 73 20 6e 6f 74 20 6d 61 74 74 65 72 0d |does not matter.| 00006790 20 31 38 30 30 20 20 20 20 20 20 20 20 20 45 51 | 1800 EQ| 000067a0 55 44 20 26 30 30 30 30 35 46 30 33 20 5c 20 76 |UD &00005F03 \ v| 000067b0 65 72 69 66 79 20 6d 75 6c 74 69 20 73 65 63 74 |erify multi sect| 000067c0 6f 72 0d 20 31 38 31 30 20 20 20 20 20 20 20 20 |or. 1810 | 000067d0 20 45 51 55 57 20 26 30 30 0d 20 31 38 32 30 20 | EQUW &00. 1820 | 000067e0 2e 72 65 67 62 6c 6f 63 6b 0d 20 31 38 33 30 20 |.regblock. 1830 | 000067f0 20 20 20 20 20 20 20 20 45 51 55 42 20 26 46 46 | EQUB &FF| 00006800 20 20 20 20 20 20 5c 20 63 75 72 72 65 6e 74 20 | \ current | 00006810 64 72 69 76 65 0d 20 31 38 34 30 20 20 20 20 20 |drive. 1840 | 00006820 20 20 20 20 45 51 55 44 20 26 30 30 20 20 20 20 | EQUD &00 | 00006830 20 20 5c 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 | \ does not mat| 00006840 74 65 72 0d 20 31 38 35 30 20 20 20 20 20 20 20 |ter. 1850 | 00006850 20 20 45 51 55 44 20 26 30 30 31 32 37 41 30 32 | EQUD &00127A02| 00006860 0d 20 31 38 36 30 20 20 20 20 20 20 20 20 20 45 |. 1860 E| 00006870 51 55 42 20 26 30 30 20 20 20 20 20 20 5c 20 72 |QUB &00 \ r| 00006880 65 73 75 6c 74 0d 20 31 38 37 30 20 2e 73 69 7a |esult. 1870 .siz| 00006890 65 73 0d 20 31 38 38 30 20 20 20 20 20 20 20 20 |es. 1880 | 000068a0 20 45 51 55 42 20 31 38 0d 20 31 38 39 30 20 20 | EQUB 18. 1890 | 000068b0 20 20 20 20 20 20 20 45 51 55 42 20 31 30 0d 20 | EQUB 10. | 000068c0 31 39 30 30 20 20 20 20 20 20 20 20 20 45 51 55 |1900 EQU| 000068d0 42 20 35 0d 20 31 39 31 30 20 20 20 20 20 20 20 |B 5. 1910 | 000068e0 20 20 45 51 55 42 20 32 0d 20 31 39 32 30 20 20 | EQUB 2. 1920 | 000068f0 20 20 20 20 20 20 20 45 51 55 42 20 31 0d 20 31 | EQUB 1. 1| 00006900 39 33 30 20 2e 70 68 79 73 69 63 61 6c 0d 20 31 |930 .physical. 1| 00006910 39 34 30 20 20 20 20 20 20 20 20 20 45 51 55 42 |940 EQUB| 00006920 20 26 30 30 0d 20 31 39 35 30 20 2e 73 65 63 74 | &00. 1950 .sect| 00006930 6f 72 6e 75 6d 62 65 72 0d 20 31 39 36 30 20 20 |ornumber. 1960 | 00006940 20 20 20 20 20 20 20 45 51 55 42 20 26 30 30 0d | EQUB &00.| 00006950 20 31 39 37 30 20 2e 6c 61 73 74 0d 20 31 39 38 | 1970 .last. 198| 00006960 30 20 20 20 20 20 20 20 20 20 45 51 55 42 20 26 |0 EQUB &| 00006970 30 30 0d 20 31 39 39 30 20 5d 0d 20 32 30 30 30 |00. 1990 ]. 2000| 00006980 20 4e 45 58 54 0d 20 32 30 31 30 20 49 4e 50 55 | NEXT. 2010 INPU| 00006990 54 27 22 4e 75 6d 62 65 72 20 6f 66 20 74 72 61 |T'"Number of tra| 000069a0 63 6b 73 20 28 34 30 2f 38 30 29 20 22 74 72 61 |cks (40/80) "tra| 000069b0 63 6b 73 24 0d 20 32 30 32 30 20 49 46 20 74 72 |cks$. 2020 IF tr| 000069c0 61 63 6b 73 24 3d 22 34 30 22 20 3f 6c 61 73 74 |acks$="40" ?last| 000069d0 20 3d 20 34 30 20 45 4c 53 45 20 3f 6c 61 73 74 | = 40 ELSE ?last| 000069e0 20 3d 20 38 30 0d 20 32 30 33 30 20 50 52 49 4e | = 80. 2030 PRIN| 000069f0 54 22 49 6e 73 65 72 74 20 22 3b 3f 6c 61 73 74 |T"Insert ";?last| 00006a00 3b 22 20 74 72 61 63 6b 20 64 69 73 63 20 69 6e |;" track disc in| 00006a10 74 6f 20 63 75 72 72 65 6e 74 20 64 72 69 76 65 |to current drive| 00006a20 22 0d 20 32 30 34 30 20 50 52 49 4e 54 22 61 6e |". 2040 PRINT"an| 00006a30 64 20 70 72 65 73 73 20 74 68 65 20 53 70 61 63 |d press the Spac| 00006a40 65 62 61 72 20 74 6f 20 76 65 72 69 66 79 22 0d |ebar to verify".| 00006a50 20 32 30 35 30 20 52 45 50 45 41 54 0d 20 32 30 | 2050 REPEAT. 20| 00006a60 36 30 20 55 4e 54 49 4c 20 47 45 54 3d 33 32 0d |60 UNTIL GET=32.| 00006a70 20 32 30 37 30 20 43 41 4c 4c 20 6d 63 6f 64 65 | 2070 CALL mcode| 00006a80 0d 0d 0d 54 68 65 20 70 72 6f 67 72 61 6d 20 69 |...The program i| 00006a90 73 20 63 6f 6d 6d 65 6e 74 65 64 20 74 6f 20 65 |s commented to e| 00006aa0 78 70 6c 61 69 6e 20 68 6f 77 20 69 74 20 77 6f |xplain how it wo| 00006ab0 72 6b 73 20 61 6e 64 20 79 6f 75 20 6d 69 67 68 |rks and you migh| 00006ac0 74 20 6c 69 6b 65 20 74 6f 0d 63 6f 6d 65 20 62 |t like to.come b| 00006ad0 61 63 6b 20 74 6f 20 69 74 20 61 66 74 65 72 20 |ack to it after | 00006ae0 72 65 61 64 69 6e 67 20 6d 6f 64 75 6c 65 20 32 |reading module 2| 00006af0 2e 20 57 68 65 6e 20 74 68 65 20 70 72 6f 67 72 |. When the progr| 00006b00 61 6d 20 56 45 52 49 46 59 20 77 61 73 20 75 73 |am VERIFY was us| 00006b10 65 64 0d 6f 6e 20 74 68 65 20 22 47 72 61 6e 64 |ed.on the "Grand| 00006b20 20 50 72 69 78 20 43 6f 6e 73 74 72 75 63 74 69 | Prix Constructi| 00006b30 6f 6e 20 53 65 74 22 20 64 69 73 63 20 74 68 65 |on Set" disc the| 00006b40 20 6f 75 74 70 75 74 20 73 68 6f 77 6e 20 69 6e | output shown in| 00006b50 20 66 69 67 75 72 65 20 35 20 77 61 73 0d 70 72 | figure 5 was.pr| 00006b60 6f 64 75 63 65 64 2e 0d 0d 0d 20 20 20 20 20 20 |oduced.... | 00006b70 20 20 20 20 20 3e 4c 4f 2e 22 56 45 52 49 46 59 | >LO."VERIFY| 00006b80 22 0d 20 20 20 20 20 20 20 20 20 20 20 3e 52 55 |". >RU| 00006b90 4e 20 20 20 20 20 20 20 20 20 0d 0d 20 20 20 20 |N .. | 00006ba0 20 20 20 20 20 20 20 4e 75 6d 62 65 72 20 6f 66 | Number of| 00006bb0 20 74 72 61 63 6b 73 20 28 34 30 2f 38 30 29 20 | tracks (40/80) | 00006bc0 34 30 0d 20 20 20 20 20 20 20 20 20 20 20 49 6e |40. In| 00006bd0 73 65 72 74 20 34 30 20 74 72 61 63 6b 20 64 69 |sert 40 track di| 00006be0 73 63 20 69 6e 74 6f 20 63 75 72 72 65 6e 74 20 |sc into current | 00006bf0 64 72 69 76 65 0d 20 20 20 20 20 20 20 20 20 20 |drive. | 00006c00 20 61 6e 64 20 70 72 65 73 73 20 74 68 65 20 53 | and press the S| 00006c10 70 61 63 65 62 61 72 20 74 6f 20 76 65 72 69 66 |pacebar to verif| 00006c20 79 0d 0d 20 20 20 20 20 20 20 20 20 20 20 30 30 |y.. 00| 00006c30 20 20 30 31 20 20 30 32 20 20 30 33 20 20 30 34 | 01 02 03 04| 00006c40 20 20 30 35 20 20 30 36 20 20 30 37 20 20 30 38 | 05 06 07 08| 00006c50 20 20 30 39 0d 20 20 20 20 20 20 20 20 20 20 20 | 09. | 00006c60 30 41 20 20 30 42 20 20 30 43 20 20 30 44 64 20 |0A 0B 0C 0Dd | 00006c70 30 45 64 20 30 46 64 20 31 30 64 20 31 31 64 20 |0Ed 0Fd 10d 11d | 00006c80 31 32 20 20 31 33 0d 20 20 20 20 20 20 20 20 20 |12 13. | 00006c90 20 20 31 34 20 20 31 35 20 20 31 36 20 20 31 37 | 14 15 16 17| 00006ca0 20 20 31 38 20 20 31 39 64 20 31 41 64 20 31 42 | 18 19d 1Ad 1B| 00006cb0 64 20 31 43 64 20 31 44 64 0d 20 20 20 20 20 20 |d 1Cd 1Dd. | 00006cc0 20 20 20 20 20 31 45 64 20 31 46 64 20 32 30 64 | 1Ed 1Fd 20d| 00006cd0 20 32 31 64 20 32 32 64 20 32 33 20 20 32 34 20 | 21d 22d 23 24 | 00006ce0 20 32 35 20 20 32 36 20 20 32 37 0d 0d 20 20 20 | 25 26 27.. | 00006cf0 20 20 20 20 20 20 20 20 3e 0d 0d 0d 46 69 67 75 | >...Figu| 00006d00 72 65 20 35 2e 20 54 68 65 20 6f 75 74 70 75 74 |re 5. The output| 00006d10 20 66 72 6f 6d 20 74 68 65 20 70 72 6f 67 72 61 | from the progra| 00006d20 6d 20 56 45 52 49 46 59 0d 2d 2d 2d 2d 2d 2d 2d |m VERIFY.-------| 00006d30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00006d50 2d 2d 2d 2d 2d 0d 0d 0d 54 68 65 20 6c 6f 77 65 |-----...The lowe| 00006d60 72 20 63 61 73 65 20 6c 65 74 74 65 72 20 64 20 |r case letter d | 00006d70 66 6f 6c 6c 6f 77 69 6e 67 20 74 72 61 63 6b 73 |following tracks| 00006d80 20 26 30 44 20 74 6f 20 26 31 31 20 61 6e 64 20 | &0D to &11 and | 00006d90 74 72 61 63 6b 73 20 26 31 39 20 74 6f 20 26 32 |tracks &19 to &2| 00006da0 32 0d 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 |2.indicates that| 00006db0 20 74 68 65 73 65 20 74 72 61 63 6b 73 20 68 61 | these tracks ha| 00006dc0 76 65 20 64 65 6c 65 74 65 64 20 64 61 74 61 20 |ve deleted data | 00006dd0 73 74 6f 72 65 64 20 6f 6e 20 74 68 65 6d 2e 20 |stored on them. | 00006de0 54 68 65 20 67 61 6d 65 20 6f 6e 0d 74 68 69 73 |The game on.this| 00006df0 20 64 69 73 63 20 6c 6f 61 64 73 20 69 6e 20 74 | disc loads in t| 00006e00 77 6f 20 70 61 72 74 73 20 61 6e 64 20 49 20 77 |wo parts and I w| 00006e10 6f 75 6c 64 20 6e 6f 74 20 62 65 20 61 74 20 61 |ould not be at a| 00006e20 6c 6c 20 73 75 72 70 72 69 73 65 64 20 74 6f 20 |ll surprised to | 00006e30 66 69 6e 64 0d 74 68 61 74 20 74 68 65 20 74 77 |find.that the tw| 00006e40 6f 20 70 61 72 74 73 20 61 72 65 20 73 74 6f 72 |o parts are stor| 00006e50 65 64 20 6f 6e 20 74 68 65 20 74 72 61 63 6b 73 |ed on the tracks| 00006e60 20 77 69 74 68 20 64 65 6c 65 74 65 64 20 64 61 | with deleted da| 00006e70 74 61 2e 20 49 66 20 74 68 65 0d 70 72 6f 67 72 |ta. If the.progr| 00006e80 61 6d 20 56 45 52 49 46 59 20 69 73 20 75 73 65 |am VERIFY is use| 00006e90 64 20 77 69 74 68 20 61 20 73 74 61 6e 64 61 72 |d with a standar| 00006ea0 64 20 44 46 53 20 64 69 73 63 20 69 74 20 77 69 |d DFS disc it wi| 00006eb0 6c 6c 20 6e 6f 74 20 70 72 6f 64 75 63 65 20 61 |ll not produce a| 00006ec0 0d 6c 6f 77 65 72 20 63 61 73 65 20 64 20 74 6f |.lower case d to| 00006ed0 20 69 6e 64 69 63 61 74 65 20 74 68 65 20 75 73 | indicate the us| 00006ee0 65 20 6f 66 20 74 68 65 20 64 65 6c 65 74 65 64 |e of the deleted| 00006ef0 20 64 61 74 61 20 6d 61 72 6b 65 72 2e 0d | data marker..| 00006efe