Home » CEEFAX disks » telesoftware9.adl » 11-09-88/T\DFS05

11-09-88/T\DFS05

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » CEEFAX disks » telesoftware9.adl
Filename: 11-09-88/T\DFS05
Read OK:
File size: 423D bytes
Load address: 0000
Exec address: FFFFFFFF
File contents
The Acorn DFS Osword commands  -  by  -  Gordon Horsington
----------------------------------------------------------

Module 5. Creating discs compatible with both 40 and 80 track drives
--------------------------------------------------------------------

      +----------------------------------------------------------+
      | All the DFS modules in  this  series  use programs which |
      | experiment  with the format and contents of discs. These |
      | experiments may  have disasterous effects if you use any |
      | of the programs  on  discs  which store programs or data |
      | which you cannot afford to lose.  You  should  first try |
      | out  the  programs  using  discs  that  have either been |
      | duplicated or, better still, have not been used at all.  |
      +----------------------------------------------------------+


In this module I will examine the problem of modifying eighty track discs
so that they work properly on both forty and eighty track disc drives. I
will demonstrate how this can be done on an unswitched eighty track disc
drive using an Osword &7F based program and a disc formatting program. I
will then describe how the same dual format disc can be created with only
a disc formatting program if a 40/80 track switchable disc drive is
available.

Forty track discs have a track density exactly one half of that used by
eighty track discs. Track &00 of both forty and eighty track discs share
the same physical position as the outer track on the disc. Track &01 on a
forty track disc is in the same physical position as track &02 on an
eighty track disc, track &02 is in the same position as track &04, and so
on. The relative position of the physical tracks on forty and eighty track
discs is shown in figure 1.


40T> 00    01 ... 09    0A    0B ... 13    14    15 ... 25    26    27
80T> 00 01 02 ... 12 13 14 15 16 ... 26 27 28 29 2A ... 4A 4B 4C 4D 4E 4F

   Figure 1. The relative position of tracks on 40 and 80 track discs
   ------------------------------------------------------------------


All the numbers in figures 1 and 2 are in hexadecimal and I have used the
term track density refers to the physical proximity of the tracks (which
are closer together on 80 track discs). Because the track density of an
eighty track disc is twice that of a forty track disc, an eighty track
disc is sometimes refered to as double density even if it uses a single
density format. I will not refer to 80 track discs as double density
because this can be confused with the double density ADFS, which can use
80 track discs in a double density format.

Figure 2 illustrates one method of formatting a single density disc so
that the same disc can be used with either a forty or an eighty track
disc drive.


00 01 02 ... 12 13 14 15 16 ... 26 27 14    15    16 ... 25    26    27
|  \-------------/ \----------------/ \-------------------------------/
|  &01-&13 unused        &14-&27                   &14-&27
| 80 track density  80 track density          40 track density
|
Track &00, common to both track densities

            Figure 2. The format for 40/80 track discs
            ------------------------------------------


The disc can be divided into four regions.

1) Track &00, which is common to both forty and eighty track densities.
2) Tracks &01 to &13 (1 to 19 decimal) in eighty track density are unused.
3) Tracks &14 to &27 (20 to 39 decimal) used in eighty track density.
4) Tracks &14 to &27 (20 to 39 decimal) used in forty track density.


The data stored on this type of dual format disc are stored on track &00
and tracks &14 to &27. The data on tracks &14 to &27 are stored twice,
once in forty track density and once in eighty track density. Sectors &00
and &01 of track &00 are used to store the catalogue for the disc. The
remaining sectors on track &00 give a total of 2k available for data.
Tracks &14 to &27 have 50k available for data. This dual format disc makes
52k available for programs and data.

This type of disc can be created on an eighty track disc drive by using a
forty track disc formatting program to format the first forty tracks on a
disc in an eighty track disc drive. You can use the program OFFSET
introduced in module 3 if you want to optimise the logical sector offset.
Store a 2k (&800 bytes) dummy !BOOT file to fill track &00 and a large
(47.5k), locked dummy file to fill tracks &01 to &13. These files can be
created with the following commands:


*SAVE :0.$.!BOOT 1900+400
*SAVE :0.D.DUMMY 1900+BE00
*ACCESS :0.D.DUMMY L


Up to 50k of data can then be stored on tracks &14 to &27 using the DFS
star commands. Do not use the filenames $.!BOOT or D.DUMMY. When all the
data, except the real !BOOT file, are stored on the disc then the dummy
!BOOT file can be deleted and the real !BOOT file (which must not be
longer than 2k) can be stored. Do not delete the dummy file D.DUMMY
because this file is making sure that tracks &01 to &13 inclusive remain
unused (see figure 2).

When all the programs and data have been copied onto the disc then logical
tracks &14 to &27 should be copied from the eighty track density physical
tracks to the forty track density physical tracks. Physical track &14
(eighty track density) will be copied onto physical track &28 (eighty
track density), physical track &15 will be copied onto physical track &2A
and so on as shown in figure 3.


            Read physical track -> Format and write physical track

                            &14 -> &28
                            &15 -> &2A
                            &16 -> &2C
                            &17 -> &2E
                                .
                                .
                                .
                            &25 -> &4B
                            &26 -> &4C
                            &27 -> &4E

           Figure 3. The required copying of physical tracks
           -------------------------------------------------


This copying will produce the format shown in figure 2. The following
algorithm can be used to implement this idea using a disc which has had
the first forty tracks formatted in an eighty track disc drive. It is
important to format only the first forty tracks so that the DFS
recognises the disc as a forty track disc even though it is used in an
eighty track disc drive. Use *FORMAT 40 0 (or whatever is appropriate with
your system). Do not use *FORMAT 80 0 and press Escape after forty tracks
have been formatted because, if you do, the DFS will still recognise the
disc as an eighty track disc even though only the first forty tracks have
been formatted.


1) Start with physical track number &14 (decimal 20).

2) Read the sector IDs on the current physical track. These will be used
   to create the sector data for formatting the forty track copy.

3) Read all the data on the current track into a buffer.

4) Seek the current physical track * 2. This will be where the forty
   track copy will be written.

5) Write the physical track number (&14-&27) into the track register
   (number &12). This will allow the eighty track disc drive to write the
   data onto a track in the position it would use on a forty track disc
   drive.

6) Format the track found in step 4) using the sector data from step 2).

7) Write the contents of the buffer onto the newly formatted track.

8) Write the physical track number * 2 (&28-&4E) into the track register
   (number &12). This takes the disc controller back to the eighty track
   status.

9) Increment the track number. If it is less than &28 (decimal 40) then go
   back to 2) to duplicate the next track.


This algorithm has been implemented in the program DUALDFS. You must use
the program DUALDFS with an eighty track disc drive (drive &00) to convert
a disc formatted as described above into a 40/80 track disc. The program
will not work with copy-protected discs and you should only use it after
you have made a backup copy of all the files on the disc you intend to
convert.

If you use DUALDFS and press the Escape key before it has finished the
conversion you will only be able to use the disc on an eighty track disc
drive. Do not attempt to use the program to make the conversion using a
forty track disc drive. You have been warned to be careful with all the
programs used to illustrate this series. Whatever modifications you make
to this or any other of the programs used to ilustrate the DFS modules of
the series, don't ignore the warning about the potentially disasterous
effects these programs can have on your discs.

After using DUALDFS to create a dual format disc you must not use the
command *COMPACT with the disc. It is a good idea stick a write-protect
tab on all dual format discs.


   10 REM: DUALDFS
   20 osnewl=&FFE7
   30 oswrch=&FFEE
   40 osword=&FFF1
   50 osbyte=&FFF4
   60 DIM table &50
   70 DIM mcode &500
   80 DIM buffer &1000
   90 FOR pass=0 TO 2 STEP 2
  100 P%=mcode
  110 [       OPT pass
  120         JSR osnewl
  130 .mainloop
  140         JSR escape    \ check escape flag
  150         JSR sectorids \ read all sector ids
  160         JSR read      \ read all sectors
  170         JSR seektwo   \ seek source track * 2
  180         LDA track     \ source track number
  190         JSR register  \ write track register
  200         JSR format    \ format 2 * source track
  210         JSR write     \ write all sectors
  220         LDA track     \ load source track
  230         ASL A         \ *2 = physical track number
  240         JSR register  \ write track register
  250         JSR printbyte \ print track number
  260         INC track     \ increment source track number
  270         LDA track     \ load source track number
  280         CMP #40       \ all done?
  290         BNE mainloop  \ if not read next track
  300         JSR osnewl
  310         RTS           \ return to BASIC
  320 .escape
  330         LDA &FF       \ escape flag
  340         BMI pressed   \ bit 7 set if pressed
  350         RTS
  360 .pressed
  370         LDA #&7E
  380         JSR osbyte    \ acknowledge Escape
  390         BRK
  400         BRK
  410         EQUS "Escape"
  420         BRK
  430 .seektwo
  440         LDA track     \ source track number
  450         ASL A         \ *2
  460         STA seekblock+7 \ physical track number
  470         LDA #&7F
  480         LDX #seekblock MOD 256
  490         LDY #seekblock DIV 256
  500         JSR osword
  510         LDA seekblock+8 \ result
  520         BNE seekerror \ = 0 if OK
  530         RTS
  540 .seekerror
  550         BRK
  560         BRK
  570         EQUS "Seek error"
  580         BRK
  590 .format
  600         LDA track     \ source track number
  610         STA formblock+7 \ store physical track
  620         JSR register  \ write track register
  630         LDA #&7F
  640         LDX #formblock MOD 256
  650         LDY #formblock DIV 256
  660         JSR osword
  670         LDA formblock+12 \ result
  680         BNE formerror \ = 0 if OK
  690         RTS
  700 .formerror
  710         BRK
  720         BRK
  730         EQUS "Format error"
  740         BRK
  750 .register
  760         STA regblock+8 \ value to put in register
  770         LDA #&7F
  780         LDX #regblock MOD 256
  790         LDY #regblock DIV 256
  800         JSR osword
  810         LDA regblock+9 \ result
  820         BNE regerror  \ = 0 if OK
  830         RTS
  840 .regerror
  850         BRK
  860         BRK
  870         EQUS "Special register error"
  880         BRK
  890 .sectorids
  900         LDA track     \ source track number
  910         STA idsblock+7 \ store physical track
  920         LDA #&7F
  930         LDX #idsblock MOD 256
  940         LDY #idsblock DIV 256
  950         JSR osword
  960         LDA idsblock+10 \ result
  970         BNE idserror  \ = 0 if OK
  980         RTS
  990 .idserror
 1000         BRK
 1010         BRK
 1020         EQUS "Sector ID Error"
 1030         BRK
 1040 .read
 1050         LDA track     \ source track number
 1060         STA copyblock+7 \ logical track number
 1070         LDA #&53      \ read data multi-sector
 1080         STA copyblock+6
 1090         LDA #&7F
 1100         LDX #copyblock MOD 256
 1110         LDY #copyblock DIV 256
 1120         JSR osword
 1130         LDA copyblock+10
 1140         BNE readerror
 1150         RTS
 1160 .readerror
 1170         BRK
 1180         BRK
 1190         EQUS "Read error"
 1200         BRK
 1210 .write
 1220         LDA #&4B      \ write data multi-sector
 1230         STA copyblock+6
 1240         LDA #&7F
 1250         LDX #copyblock MOD 256
 1260         LDY #copyblock DIV 256
 1270         JSR osword
 1280         LDA copyblock+10 \ result
 1290         BNE writeerror \ = 0 if OK
 1300         RTS
 1310 .writeerror
 1320         BRK
 1330         BRK
 1340         EQUS "Write error"
 1350         BRK
 1360 .printbyte
 1370         LDA track     \ print source track number
 1380         PHA
 1390         LSR A
 1400         LSR A
 1410         LSR A
 1420         LSR A
 1430         JSR nybble    \ print MS nybble
 1440         PLA
 1450         JSR nybble    \ print LS nybble
 1460         LDA #ASC(" ")
 1470         JSR oswrch    \ print space
 1480         JMP oswrch    \ print space
 1490 .nybble
 1500         AND #&0F
 1510         SED
 1520         CLC
 1530         ADC #&90
 1540         ADC #&40
 1550         CLD
 1560         JMP oswrch    \ print nybble and return
 1570 .seekblock
 1580         EQUB &00      \ drive 0
 1590         EQUD &00      \ does not matter
 1600         EQUB &01      \ 1 parameter
 1601         EQUB &69      \ seek command
 1602         EQUB &00      \ physical track number
 1603         EQUB &00      \ result
 1610 .regblock
 1620         EQUB &00      \ drive 0
 1630         EQUD &00      \ does not matter
 1640         EQUB &02      \ 2 parameters
 1641         EQUB &7A      \ write special register
 1642         EQUB &12      \ track register, drive 0/2
 1643         EQUB &00      \ value to be put in register
 1650         EQUB &00      \ result
 1660 .idsblock
 1670         EQUB &00      \ drive 0
 1680         EQUD table    \ address of buffer
 1690         EQUB &03      \ 3 parameters
 1691         EQUB &5B      \ read sector IDs command
 1692         EQUB &00      \ physical track number
 1693         EQUB &00
 1700         EQUB &0A      \ number of IDs
 1701         EQUB &00      \ result
 1710 .copyblock
 1720         EQUB &00      \ drive 0
 1730         EQUD buffer   \ address of buffer
 1740         EQUB &03      \ 3 parameters
 1741         EQUB &57      \ read data multi-sector
 1742         EQUB &00      \ logical track number
 1743         EQUB &00      \ start logical sector number
 1750         EQUB &2A      \ 10 sectors of 256 bytes
 1751         EQUB &00      \ result
 1760 .formblock
 1770         EQUB &00      \ drive 0
 1780         EQUD table    \ address of sector table
 1790         EQUB &05      \ 5 parameters
 1791         EQUB &63      \ format command
 1792         EQUB &00      \ physical track number
 1793         EQUB &15      \ gap 3 size
 1800         EQUB &2A      \ 10 sectors of 256 bytes
 1801         EQUB &00      \ gap 5 size
 1802         EQUB &10      \ gap 1 size
 1803         EQUB &00      \ result
 1810 .track
 1820         EQUB 20       \ use tracks 20-39
 1830 ]
 1840 NEXT
 1850 PRINT'"Place 40 track formatted 80 track disc"
 1860 PRINT"in drive 0, and press Spacebar"
 1870 REPEAT
 1880 UNTIL GET = 32
 1890 CALL mcode


If you have a switched 40/80 track disc drive it is quite easy to produce
dual format discs without using a conversion program such as DUALDFS. To
produce a dual format disc you need to use a forty track formatter and to
be very careful about the order in which files are saved on the dual
format disc. The following algorith will produce dual formatted discs.


1) Switch the disc drive to 40 track mode.

2) Format a disc using a forty track formatter.

3) Switch the disc drive to 80 track mode.

4) Format the same disc again using the same forty track formatter.

5) Fill track &00 with a dummy !BOOT file using

   *SAVE !BOOT 1900+800

6) Fill tracks &01 to &13 with a locked dummy file. use the commands:

   *SAVE D.DUMMY 1900+BE00
   *ACESS D.DUMMY L

7) Copy up to 50k of programs onto the disc. Don't use the filenames
   $.!BOOT or D.DUMMY.

8) Switch the disc drive to 40 track mode.

9) Copy the same files copied in step 7) onto the disc in exactly the same
   order. It is important that the order should be exactly the same.

10) Delete the dummy !BOOT file and store the real !BOOT file on the disc.
    The !BOOT file must not be longer than 2k.


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