Home » CEEFAX disks » telesoftware9.adl » 26-09-88/COPYALL

26-09-88/COPYALL

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

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

Tape/disk: Home » CEEFAX disks » telesoftware9.adl
Filename: 26-09-88/COPYALL
Read OK:
File size: 1EA8 bytes
Load address: FFFF1900
Exec address: FFFF8023
File contents
   10REM: COPYALL
   20osnewl=&FFE7
   30oswrch=&FFEE
   40osword=&FFF1
   50osbyte=&FFF4
   60DIM table &50
   70DIM mcode &500
   80DIM buffer &1000
   90FOR pass=0 TO 2 STEP 2
  100P%=mcode
  110[OPT pass
  120JSR osnewl
  130.mainloop
  140JSR escape \ check escape flag
  150JSR seek \ seek physical tracks 0 - 40
  160JSR firstsector \ read sector id first sector
  170BNE notformatted \ if error track not formatted
  180JSR sectorids \ read all sector ids
  190JSR format \ format sector on drive 1
  200.loopsector
  210JSR escape \ check escape flag
  220JSR copysector \ read and write sector
  230BPL loopsector \ copy next sector
  240LDA physical \ physical track number
  250JSR register \ write track register
  260JMP output
  270.notformatted
  280JSR deform \ deformat this track
  290.output
  300JSR printbyte \ print track number
  310INC physical \ increment physical track number
  320LDA physical \ load physical track number
  330CMP last \ all done?
  340BNE mainloop \ if not copy next track
  350JSR osnewl
  360RTS \ return to BASIC
  370.escape
  380LDA &FF \ escape flag
  390BMI pressed \ bit 7 set if pressed
  400RTS
  410.pressed
  420LDA #&7E
  430JSR osbyte \ acknowledge Escape
  440BRK
  450BRK
  460EQUS "Escape"
  470BRK
  480.seek
  490LDA physical \ physical track number
  500STA seekblock+7
  510LDA #&00 \ drive 0
  520STA seekblock \ store drive number
  530LDA #&7F
  540LDX #seekblock MOD 256
  550LDY #seekblock DIV 256
  560JSR osword
  570LDA seekblock+8 \ result
  580BNE seekerror \ = 0 if OK
  590LDA #&01 \ drive 1
  600STA seekblock \ store drive number
  610LDA #&7F
  620LDX #seekblock MOD 256
  630LDY #seekblock DIV 256
  640JSR osword
  650LDA seekblock+8 \ result
  660BNE seekerror \ = 0 if OK
  670RTS
  680.seekerror
  690BRK
  700BRK
  710EQUS "Seek error"
  720BRK
  730.format
  740LDA physical \ physical track number
  750STA formblock+7 \ store physical track
  760LDA table+3 \ data size code
  770TAX \ used as index later
  780ASL A \ *2
  790ASL A \ *4
  800ASL A \ *8
  810ASL A \ *16
  820ASL A \ *32
  830STA formblock+9 \ store datacode*32
  840ORA #&01 \ add 1
  850STA copyblock+9 \ store datacode*32+1
  860LDA sizes,X \ load number of sectors
  870ORA formblock+9 \ add datacode*32
  880STA formblock+9 \ store datacode*32+numbersectors
  890LDA gap,X \ load gap 3 for these sectors
  900STA formblock+8 \ store for formatting
  910LDA #&7F
  920LDX #formblock MOD 256
  930LDY #formblock DIV 256
  940JSR osword
  950LDA formblock+12 \ result
  960BNE formerror \ = 0 if OK
  970LDX table+3 \ load data size code
  980LDA sizes,X \ load number of sectors
  990ASL A \ *2
 1000ASL A \ *4
 1010SEC
 1020SBC #&04 \ sectors*4-4
 1030STA sectornumber \ store index on sectors
 1040RTS
 1050.formerror
 1060BRK
 1070BRK
 1080EQUS "Format error"
 1090BRK
 1100.deform
 1110LDA physical \ load physical track number
 1120STA deblock+7 \ store physical track
 1130LDA #&7F
 1140LDX #deblock MOD 256
 1150LDY #deblock DIV 256
 1160JSR osword \ "deformat" track
 1170LDA deblock+12 \ result
 1180BNE deerror \ = 0 if OK
 1190RTS
 1200.deerror
 1210BRK
 1220BRK
 1230EQUS "Deformat error"
 1240BRK
 1250.register
 1260STA regblock+8 \ value to put in register
 1270LDA #&00 \ drive 0
 1280STA regblock
 1290LDA #&12 \ write track register 0/2
 1300STA regblock+7 \ register number
 1310LDA #&7F
 1320LDX #regblock MOD 256
 1330LDY #regblock DIV 256
 1340JSR osword
 1350LDA regblock+9 \ result
 1360BNE regerror \ = 0 if OK
 1370LDA #&01 \ drive 1
 1380STA regblock
 1390LDA #&1A \ write track register 1/3
 1400STA regblock+7 \ register number
 1410LDA #&7F
 1420LDX #regblock MOD 256
 1430LDY #regblock DIV 256
 1440JSR osword
 1450LDA regblock+9 \ result
 1460BNE regerror \ = 0 if OK
 1470RTS
 1480.regerror
 1490BRK
 1500BRK
 1510EQUS "Special register error"
 1520BRK
 1530.firstsector
 1540LDA physical \ physical track number
 1550STA idsblock+7 \ store physical track
 1560LDA #&01 \ one sector
 1570STA idsblock+9 \ number of ids
 1580LDA #&7F
 1590LDX #idsblock MOD 256
 1600LDY #idsblock DIV 256
 1610JSR osword
 1620LDA idsblock+10 \ result
 1630AND #&1E \ = 0 if formatted
 1640RTS
 1650.sectorids
 1660LDX table+3 \ load data size code
 1670LDA sizes,X \ load number of sectors
 1680STA idsblock+9 \ store number of sectors
 1690LDA #&7F
 1700LDX #idsblock MOD 256
 1710LDY #idsblock DIV 256
 1720JSR osword
 1730LDA idsblock+10 \ result
 1740AND #&1E
 1750BNE idserror \ = 0 if OK
 1760RTS
 1770.idserror
 1780BRK
 1790BRK
 1800EQUS "Sector ID Error"
 1810BRK
 1820.copysector
 1830LDX sectornumber \ load index on table
 1840LDA table+2,X \ load logical sector number
 1850STA copyblock+8 \ store for read sector
 1860LDA table,X \ load logical track number
 1870STA copyblock+7 \ and store for read
 1880JSR register \ write track register
 1890LDA #&00 \ drive 0
 1900STA copyblock
 1910LDA #&57 \ read sector command
 1920STA copyblock+6
 1930LDA #&7F
 1940LDX #copyblock MOD 256
 1950LDY #copyblock DIV 256
 1960JSR osword
 1970LDA copyblock+10
 1980BEQ notdel \ not deleted data
 1990CMP #&20 \ deleted data result
 2000BNE readerror \ error if not &20
 2010LDA #&4F \ write deleted data command
 2020BNE savecom
 2030.notdel
 2040LDA #&4B \ write data command
 2050.savecom
 2060STA copyblock+6
 2070LDA #&01 \ drive 1
 2080STA copyblock
 2090LDA #&7F
 2100LDX #copyblock MOD 256
 2110LDY #copyblock DIV 256
 2120JSR osword
 2130LDA copyblock+10 \ result
 2140BNE writeerror \ = 0 if OK
 2150SEC
 2160LDA sectornumber \ sector index on table
 2170SBC #&04
 2180STA sectornumber \ index=index-4
 2190RTS
 2200.readerror
 2210LDA physical \ physical track number
 2220JSR register \ write track register
 2230BRK
 2240BRK
 2250EQUS "Read error"
 2260BRK
 2270.writeerror
 2280LDA physical \ physical track number
 2290JSR register \ write track register
 2300BRK
 2310BRK
 2320EQUS "Write error"
 2330BRK
 2340.printbyte
 2350LDA physical \ print physical track number
 2360PHA
 2370LSR A
 2380LSR A
 2390LSR A
 2400LSR A
 2410JSR nybble \ print MS nybble
 2420PLA
 2430JSR nybble \ print LS nybble
 2440LDA #ASC(" ")
 2450JSR oswrch \ print space
 2460JMP oswrch \ print space and return
 2470.nybble
 2480AND #&0F
 2490SED
 2500CLC
 2510ADC #&90
 2520ADC #&40
 2530CLD
 2540JMP oswrch \ print nybble and return
 2550.seekblock
 2560EQUB &00 \ drive 0/1
 2570EQUD &00 \ does not matter
 2580EQUB &01 \ 1 parameter
 2582EQUB &69 \ seek command
 2584EQUB &00 \ physical track number
 2586EQUB &00 \ result byte
 2590.regblock
 2600EQUB &00 \ drive 0/1
 2610EQUD &00 \ does not matter
 2620EQUB &02 \ 2 parameters
 2622EQUB &7A \ write special register
 2624EQUB &00 \ register number
 2626EQUB &00 \ value to put in register
 2630EQUB &00 \ result byte
 2640.idsblock
 2650EQUB &00 \ drive 0
 2660EQUD table \ address of buffer
 2670EQUB &03 \ 3 parameters
 2672EQUB &5B \ read sector IDs
 2674EQUB &00 \ physical track number
 2676EQUB &00 \ always &00
 2678EQUB &00 \ number of IDs to be read
 2680EQUB &00 \ result byte
 2690.copyblock
 2700EQUB &00 \ drive 0/1
 2710EQUD buffer \ address of buffer
 2720EQUB &03 \ 3 parameters
 2722EQUB &57 \ read data and deleted data
 2724EQUB &00 \ logical track number
 2726EQUB &00 \ logical sector number
 2728EQUB &00 \ sector size/number
 2730EQUB &00 \ result byte
 2740.formblock
 2750EQUB &01 \ drive 1
 2760EQUD table \ sector table
 2770EQUB &05 \ 5 parameters
 2772EQUB &63 \ format track command
 2774EQUB &00 \ physical track number
 2776EQUB &00 \ gap 3 size
 2778EQUB &00 \ sector size/number
 2780EQUB &00 \ gap 5 size
 2782EQUB &10 \ gap 1 size
 2784EQUB &00 \ result byte
 2790.deblock
 2800EQUB &01 \ drive 1
 2810EQUD detable \ sector table
 2820EQUB &05 \ 5 parameters
 2822EQUB &63 \ format track command
 2824EQUB &00 \ physical track number
 2826EQUB &00 \ gap 3 size
 2828EQUB &C1 \ sector size/number
 2830EQUB &00 \ gap 5 size
 2832EQUB &10 \ gap 1 size
 2834EQUB &00 \ result byte
 2840.detable
 2850EQUD &04000000
 2860.gap
 2870EQUB 11 \ Gap 3, 18 sectors
 2880EQUB 21 \ Gap 3, 10 sectors
 2890EQUB 74 \ Gap 3, 5 sectors
 2900EQUB 255 \ Gap 3, 2 sectors
 2910EQUB 0 \ Gap 3, 1 sector
 2920.sizes
 2930EQUB 18
 2940EQUB 10
 2950EQUB 5
 2960EQUB 2
 2970EQUB 1
 2980.physical
 2990EQUB &00
 3000.sectornumber
 3010EQUB &00
 3020.last
 3030EQUB &00
 3040]
 3050NEXT
 3060INPUT'"Number of tracks (40/80) "tracks$
 3070IF tracks$="40" ?last=40 ELSE ?last=80
 3080PRINT'"Insert ";?last;" track source disc in :0"
 3090PRINT"Insert ";?last;" track destination disc in :1"
 3100PRINT'"Press Spacebar to copy from :0 to :1"
 3110REPEAT
 3120UNTIL GET=32
 3130CALL mcode

�: COPYALL
osnewl=&FFE7
oswrch=&FFEE
(osword=&FFF1
2osbyte=&FFF4
<� table &50
F� mcode &500
P� buffer &1000
Z� pass=0 � 2 � 2
dP%=mcode
n
[OPT pass
xJSR osnewl
�
.mainloop
�"JSR escape \ check escape flag
�*JSR seek \ seek physical tracks 0 - 40
�1JSR firstsector \ read sector id first sector
�3BNE notformatted \ if error track not formatted
�'JSR sectorids \ read all sector ids
�)JSR format \ format sector on drive 1
�.loopsector
�"JSR escape \ check escape flag
�*JSR copysector \ read and write sector
�%BPL loopsector \ copy next sector
�(LDA physical \ physical track number
�'JSR register \ write track register
JMP output
.notformatted
$JSR deform \ deformat this track
".output
,&JSR printbyte \ print track number
62INC physical \ increment physical track number
@-LDA physical \ load physical track number
JCMP last \ all done?
T)BNE mainloop \ if not copy next track
^JSR osnewl
hRTS \ return to BASIC
r.escape
|LDA &FF \ escape flag
�&BMI pressed \ bit 7 set if pressed
�RTS
�.pressed
�LDA #&7E
�#JSR osbyte \ acknowledge Escape
�BRK
�BRK
�EQUS "Escape"
�BRK
�	.seek
�(LDA physical \ physical track number
�STA seekblock+7
�LDA #&00 \ drive 0
&STA seekblock \ store drive number
LDA #&7F
LDX #seekblock � 256
&LDY #seekblock � 256
0JSR osword
:LDA seekblock+8 \ result
DBNE seekerror \ = 0 if OK
NLDA #&01 \ drive 1
X&STA seekblock \ store drive number
bLDA #&7F
lLDX #seekblock � 256
vLDY #seekblock � 256
�JSR osword
�LDA seekblock+8 \ result
�BNE seekerror \ = 0 if OK
�RTS
�.seekerror
�BRK
�BRK
�EQUS "Seek error"
�BRK
�.format
�(LDA physical \ physical track number
�*STA formblock+7 \ store physical track
� LDA table+3 \ data size code
TAX \ used as index later
ASL A \ *2
ASL A \ *4
 ASL A \ *8
*ASL A \ *16
4ASL A \ *32
>'STA formblock+9 \ store datacode*32
H�A #&01 \ add 1
R)STA copyblock+9 \ store datacode*32+1
\(LDA sizes,X \ load number of sectors
f$�A formblock+9 \ add datacode*32
p5STA formblock+9 \ store datacode*32+numbersectors
z,LDA gap,X \ load gap 3 for these sectors
�*STA formblock+8 \ store for formatting
�LDA #&7F
�LDX #formblock � 256
�LDY #formblock � 256
�JSR osword
�LDA formblock+12 \ result
�BNE formerror \ = 0 if OK
�%LDX table+3 \ load data size code
�(LDA sizes,X \ load number of sectors
�ASL A \ *2
�ASL A \ *4
�SEC
�SBC #&04 \ sectors*4-4
-STA sectornumber \ store index on sectors
RTS
.formerror
$BRK
.BRK
8EQUS "Format error"
BBRK
L.deform
V-LDA physical \ load physical track number
`(STA deblock+7 \ store physical track
jLDA #&7F
tLDX #deblock � 256
~LDY #deblock � 256
�!JSR osword \ "deformat" track
�LDA deblock+12 \ result
�BNE deerror \ = 0 if OK
�RTS
�.deerror
�BRK
�BRK
�EQUS "Deformat error"
�BRK
�
.register
�-STA regblock+8 \ value to put in register
�LDA #&00 \ drive 0
STA regblock

'LDA #&12 \ write track register 0/2
$STA regblock+7 \ register number
LDA #&7F
(LDX #regblock � 256
2LDY #regblock � 256
<JSR osword
FLDA regblock+9 \ result
PBNE regerror \ = 0 if OK
ZLDA #&01 \ drive 1
dSTA regblock
n'LDA #&1A \ write track register 1/3
x$STA regblock+7 \ register number
�LDA #&7F
�LDX #regblock � 256
�LDY #regblock � 256
�JSR osword
�LDA regblock+9 \ result
�BNE regerror \ = 0 if OK
�RTS
�
.regerror
�BRK
�BRK
�!EQUS "Special register error"
�BRK
�.firstsector
(LDA physical \ physical track number
)STA idsblock+7 \ store physical track
LDA #&01 \ one sector
""STA idsblock+9 \ number of ids
,LDA #&7F
6LDX #idsblock � 256
@LDY #idsblock � 256
JJSR osword
TLDA idsblock+10 \ result
^� #&1E \ = 0 if formatted
hRTS
r.sectorids
|%LDX table+3 \ load data size code
�(LDA sizes,X \ load number of sectors
�,STA idsblock+9 \ store number of sectors
�LDA #&7F
�LDX #idsblock � 256
�LDY #idsblock � 256
�JSR osword
�LDA idsblock+10 \ result
�
� #&1E
�BNE idserror \ = 0 if OK
�RTS
�
.idserror
�BRK
�BRK
EQUS "Sector ID Error"
BRK
.copysector
&*LDX sectornumber \ load index on table
0.LDA table+2,X \ load logical sector number
:+STA copyblock+8 \ store for read sector
D+LDA table,X \ load logical track number
N(STA copyblock+7 \ and store for read
X'JSR register \ write track register
bLDA #&00 \ drive 0
lSTA copyblock
v"LDA #&57 \ read sector command
�STA copyblock+6
�LDA #&7F
�LDX #copyblock � 256
�LDY #copyblock � 256
�JSR osword
�LDA copyblock+10
�!BEQ notdel \ not deleted data
�"CMP #&20 \ deleted data result
�$BNE readerror \ error if not &20
�)LDA #&4F \ write deleted data command
�BNE savecom
�.notdel
�!LDA #&4B \ write data command
.savecom
STA copyblock+6
LDA #&01 \ drive 1
 STA copyblock
*LDA #&7F
4LDX #copyblock � 256
>LDY #copyblock � 256
HJSR osword
RLDA copyblock+10 \ result
\BNE writeerror \ = 0 if OK
fSEC
p,LDA sectornumber \ sector index on table
zSBC #&04
�$STA sectornumber \ index=index-4
�RTS
�.readerror
�(LDA physical \ physical track number
�'JSR register \ write track register
�BRK
�BRK
�EQUS "Read error"
�BRK
�.writeerror
�(LDA physical \ physical track number
�'JSR register \ write track register
�BRK
	BRK
	EQUS "Write error"
	BRK
	$.printbyte
	..LDA physical \ print physical track number
	8PHA
	B	LSR A
	L	LSR A
	V	LSR A
	`	LSR A
	j JSR nybble \ print MS nybble
	tPLA
	~ JSR nybble \ print LS nybble
	�LDA #�(" ")
	�JSR oswrch \ print space
	�'JMP oswrch \ print space and return
	�.nybble
	�
� #&0F
	�SED
	�CLC
	�ADC #&90
	�ADC #&40
	�CLD
	�(JMP oswrch \ print nybble and return
	�.seekblock
EQUB &00 \ drive 0/1

EQUD &00 \ does not matter
EQUB &01 \ 1 parameter
EQUB &69 \ seek command
$EQUB &00 \ physical track number
EQUB &00 \ result byte

.regblock
(EQUB &00 \ drive 0/1
2EQUD &00 \ does not matter
<EQUB &02 \ 2 parameters
>%EQUB &7A \ write special register
@EQUB &00 \ register number
B'EQUB &00 \ value to put in register
FEQUB &00 \ result byte
P
.idsblock
ZEQUB &00 \ drive 0
d"EQUD table \ address of buffer
nEQUB &03 \ 3 parameters
pEQUB &5B \ read sector IDs
r$EQUB &00 \ physical track number
tEQUB &00 \ always &00
v'EQUB &00 \ number of IDs to be read
xEQUB &00 \ result byte
�.copyblock
�EQUB &00 \ drive 0/1
�#EQUD buffer \ address of buffer
�EQUB &03 \ 3 parameters
�)EQUB &57 \ read data and deleted data
�#EQUB &00 \ logical track number
�$EQUB &00 \ logical sector number
�!EQUB &00 \ sector size/number
�EQUB &00 \ result byte
�.formblock
�EQUB &01 \ drive 1
�EQUD table \ sector table
�EQUB &05 \ 5 parameters
�#EQUB &63 \ format track command
�$EQUB &00 \ physical track number
�EQUB &00 \ gap 3 size
�!EQUB &00 \ sector size/number
�EQUB &00 \ gap 5 size
�EQUB &10 \ gap 1 size
�EQUB &00 \ result byte
�.deblock
�EQUB &01 \ drive 1
�EQUD detable \ sector table
EQUB &05 \ 5 parameters
#EQUB &63 \ format track command
$EQUB &00 \ physical track number

EQUB &00 \ gap 3 size
!EQUB &C1 \ sector size/number
EQUB &00 \ gap 5 size
EQUB &10 \ gap 1 size
EQUB &00 \ result byte
.detable
"EQUD &04000000
,.gap
6EQUB 11 \ Gap 3, 18 sectors
@EQUB 21 \ Gap 3, 10 sectors
JEQUB 74 \ Gap 3, 5 sectors
TEQUB 255 \ Gap 3, 2 sectors
^EQUB 0 \ Gap 3, 1 sector
h
.sizes
rEQUB 18
|EQUB 10
�
EQUB 5
�
EQUB 2
�
EQUB 1
�
.physical
�EQUB &00
�.sectornumber
�EQUB &00
�	.last
�EQUB &00
�]
��
�(�'"Number of tracks (40/80) "tracks$
�&� tracks$="40" ?last=40 � ?last=80
0�'"Insert ";?last;" track source disc in :0"
4�"Insert ";?last;" track destination disc in :1"
,�'"Press Spacebar to copy from :0 to :1"
&�
0
� �=32
:� mcode
�
00000000  0d 00 0a 0e f4 3a 20 43  4f 50 59 41 4c 4c 0d 00  |.....: COPYALL..|
00000010  14 10 6f 73 6e 65 77 6c  3d 26 46 46 45 37 0d 00  |..osnewl=&FFE7..|
00000020  1e 10 6f 73 77 72 63 68  3d 26 46 46 45 45 0d 00  |..oswrch=&FFEE..|
00000030  28 10 6f 73 77 6f 72 64  3d 26 46 46 46 31 0d 00  |(.osword=&FFF1..|
00000040  32 10 6f 73 62 79 74 65  3d 26 46 46 46 34 0d 00  |2.osbyte=&FFF4..|
00000050  3c 0f de 20 74 61 62 6c  65 20 26 35 30 0d 00 46  |<.. table &50..F|
00000060  10 de 20 6d 63 6f 64 65  20 26 35 30 30 0d 00 50  |.. mcode &500..P|
00000070  12 de 20 62 75 66 66 65  72 20 26 31 30 30 30 0d  |.. buffer &1000.|
00000080  00 5a 14 e3 20 70 61 73  73 3d 30 20 b8 20 32 20  |.Z.. pass=0 . 2 |
00000090  88 20 32 0d 00 64 0c 50  25 3d 6d 63 6f 64 65 0d  |. 2..d.P%=mcode.|
000000a0  00 6e 0d 5b 4f 50 54 20  70 61 73 73 0d 00 78 0e  |.n.[OPT pass..x.|
000000b0  4a 53 52 20 6f 73 6e 65  77 6c 0d 00 82 0d 2e 6d  |JSR osnewl.....m|
000000c0  61 69 6e 6c 6f 6f 70 0d  00 8c 22 4a 53 52 20 65  |ainloop..."JSR e|
000000d0  73 63 61 70 65 20 5c 20  63 68 65 63 6b 20 65 73  |scape \ check es|
000000e0  63 61 70 65 20 66 6c 61  67 0d 00 96 2a 4a 53 52  |cape flag...*JSR|
000000f0  20 73 65 65 6b 20 5c 20  73 65 65 6b 20 70 68 79  | seek \ seek phy|
00000100  73 69 63 61 6c 20 74 72  61 63 6b 73 20 30 20 2d  |sical tracks 0 -|
00000110  20 34 30 0d 00 a0 31 4a  53 52 20 66 69 72 73 74  | 40...1JSR first|
00000120  73 65 63 74 6f 72 20 5c  20 72 65 61 64 20 73 65  |sector \ read se|
00000130  63 74 6f 72 20 69 64 20  66 69 72 73 74 20 73 65  |ctor id first se|
00000140  63 74 6f 72 0d 00 aa 33  42 4e 45 20 6e 6f 74 66  |ctor...3BNE notf|
00000150  6f 72 6d 61 74 74 65 64  20 5c 20 69 66 20 65 72  |ormatted \ if er|
00000160  72 6f 72 20 74 72 61 63  6b 20 6e 6f 74 20 66 6f  |ror track not fo|
00000170  72 6d 61 74 74 65 64 0d  00 b4 27 4a 53 52 20 73  |rmatted...'JSR s|
00000180  65 63 74 6f 72 69 64 73  20 5c 20 72 65 61 64 20  |ectorids \ read |
00000190  61 6c 6c 20 73 65 63 74  6f 72 20 69 64 73 0d 00  |all sector ids..|
000001a0  be 29 4a 53 52 20 66 6f  72 6d 61 74 20 5c 20 66  |.)JSR format \ f|
000001b0  6f 72 6d 61 74 20 73 65  63 74 6f 72 20 6f 6e 20  |ormat sector on |
000001c0  64 72 69 76 65 20 31 0d  00 c8 0f 2e 6c 6f 6f 70  |drive 1.....loop|
000001d0  73 65 63 74 6f 72 0d 00  d2 22 4a 53 52 20 65 73  |sector..."JSR es|
000001e0  63 61 70 65 20 5c 20 63  68 65 63 6b 20 65 73 63  |cape \ check esc|
000001f0  61 70 65 20 66 6c 61 67  0d 00 dc 2a 4a 53 52 20  |ape flag...*JSR |
00000200  63 6f 70 79 73 65 63 74  6f 72 20 5c 20 72 65 61  |copysector \ rea|
00000210  64 20 61 6e 64 20 77 72  69 74 65 20 73 65 63 74  |d and write sect|
00000220  6f 72 0d 00 e6 25 42 50  4c 20 6c 6f 6f 70 73 65  |or...%BPL loopse|
00000230  63 74 6f 72 20 5c 20 63  6f 70 79 20 6e 65 78 74  |ctor \ copy next|
00000240  20 73 65 63 74 6f 72 0d  00 f0 28 4c 44 41 20 70  | sector...(LDA p|
00000250  68 79 73 69 63 61 6c 20  5c 20 70 68 79 73 69 63  |hysical \ physic|
00000260  61 6c 20 74 72 61 63 6b  20 6e 75 6d 62 65 72 0d  |al track number.|
00000270  00 fa 27 4a 53 52 20 72  65 67 69 73 74 65 72 20  |..'JSR register |
00000280  5c 20 77 72 69 74 65 20  74 72 61 63 6b 20 72 65  |\ write track re|
00000290  67 69 73 74 65 72 0d 01  04 0e 4a 4d 50 20 6f 75  |gister....JMP ou|
000002a0  74 70 75 74 0d 01 0e 11  2e 6e 6f 74 66 6f 72 6d  |tput.....notform|
000002b0  61 74 74 65 64 0d 01 18  24 4a 53 52 20 64 65 66  |atted...$JSR def|
000002c0  6f 72 6d 20 5c 20 64 65  66 6f 72 6d 61 74 20 74  |orm \ deformat t|
000002d0  68 69 73 20 74 72 61 63  6b 0d 01 22 0b 2e 6f 75  |his track.."..ou|
000002e0  74 70 75 74 0d 01 2c 26  4a 53 52 20 70 72 69 6e  |tput..,&JSR prin|
000002f0  74 62 79 74 65 20 5c 20  70 72 69 6e 74 20 74 72  |tbyte \ print tr|
00000300  61 63 6b 20 6e 75 6d 62  65 72 0d 01 36 32 49 4e  |ack number..62IN|
00000310  43 20 70 68 79 73 69 63  61 6c 20 5c 20 69 6e 63  |C physical \ inc|
00000320  72 65 6d 65 6e 74 20 70  68 79 73 69 63 61 6c 20  |rement physical |
00000330  74 72 61 63 6b 20 6e 75  6d 62 65 72 0d 01 40 2d  |track number..@-|
00000340  4c 44 41 20 70 68 79 73  69 63 61 6c 20 5c 20 6c  |LDA physical \ l|
00000350  6f 61 64 20 70 68 79 73  69 63 61 6c 20 74 72 61  |oad physical tra|
00000360  63 6b 20 6e 75 6d 62 65  72 0d 01 4a 18 43 4d 50  |ck number..J.CMP|
00000370  20 6c 61 73 74 20 5c 20  61 6c 6c 20 64 6f 6e 65  | last \ all done|
00000380  3f 0d 01 54 29 42 4e 45  20 6d 61 69 6e 6c 6f 6f  |?..T)BNE mainloo|
00000390  70 20 5c 20 69 66 20 6e  6f 74 20 63 6f 70 79 20  |p \ if not copy |
000003a0  6e 65 78 74 20 74 72 61  63 6b 0d 01 5e 0e 4a 53  |next track..^.JS|
000003b0  52 20 6f 73 6e 65 77 6c  0d 01 68 19 52 54 53 20  |R osnewl..h.RTS |
000003c0  5c 20 72 65 74 75 72 6e  20 74 6f 20 42 41 53 49  |\ return to BASI|
000003d0  43 0d 01 72 0b 2e 65 73  63 61 70 65 0d 01 7c 19  |C..r..escape..|.|
000003e0  4c 44 41 20 26 46 46 20  5c 20 65 73 63 61 70 65  |LDA &FF \ escape|
000003f0  20 66 6c 61 67 0d 01 86  26 42 4d 49 20 70 72 65  | flag...&BMI pre|
00000400  73 73 65 64 20 5c 20 62  69 74 20 37 20 73 65 74  |ssed \ bit 7 set|
00000410  20 69 66 20 70 72 65 73  73 65 64 0d 01 90 07 52  | if pressed....R|
00000420  54 53 0d 01 9a 0c 2e 70  72 65 73 73 65 64 0d 01  |TS.....pressed..|
00000430  a4 0c 4c 44 41 20 23 26  37 45 0d 01 ae 23 4a 53  |..LDA #&7E...#JS|
00000440  52 20 6f 73 62 79 74 65  20 5c 20 61 63 6b 6e 6f  |R osbyte \ ackno|
00000450  77 6c 65 64 67 65 20 45  73 63 61 70 65 0d 01 b8  |wledge Escape...|
00000460  07 42 52 4b 0d 01 c2 07  42 52 4b 0d 01 cc 11 45  |.BRK....BRK....E|
00000470  51 55 53 20 22 45 73 63  61 70 65 22 0d 01 d6 07  |QUS "Escape"....|
00000480  42 52 4b 0d 01 e0 09 2e  73 65 65 6b 0d 01 ea 28  |BRK.....seek...(|
00000490  4c 44 41 20 70 68 79 73  69 63 61 6c 20 5c 20 70  |LDA physical \ p|
000004a0  68 79 73 69 63 61 6c 20  74 72 61 63 6b 20 6e 75  |hysical track nu|
000004b0  6d 62 65 72 0d 01 f4 13  53 54 41 20 73 65 65 6b  |mber....STA seek|
000004c0  62 6c 6f 63 6b 2b 37 0d  01 fe 16 4c 44 41 20 23  |block+7....LDA #|
000004d0  26 30 30 20 5c 20 64 72  69 76 65 20 30 0d 02 08  |&00 \ drive 0...|
000004e0  26 53 54 41 20 73 65 65  6b 62 6c 6f 63 6b 20 5c  |&STA seekblock \|
000004f0  20 73 74 6f 72 65 20 64  72 69 76 65 20 6e 75 6d  | store drive num|
00000500  62 65 72 0d 02 12 0c 4c  44 41 20 23 26 37 46 0d  |ber....LDA #&7F.|
00000510  02 1c 18 4c 44 58 20 23  73 65 65 6b 62 6c 6f 63  |...LDX #seekbloc|
00000520  6b 20 83 20 32 35 36 0d  02 26 18 4c 44 59 20 23  |k . 256..&.LDY #|
00000530  73 65 65 6b 62 6c 6f 63  6b 20 81 20 32 35 36 0d  |seekblock . 256.|
00000540  02 30 0e 4a 53 52 20 6f  73 77 6f 72 64 0d 02 3a  |.0.JSR osword..:|
00000550  1c 4c 44 41 20 73 65 65  6b 62 6c 6f 63 6b 2b 38  |.LDA seekblock+8|
00000560  20 5c 20 72 65 73 75 6c  74 0d 02 44 1d 42 4e 45  | \ result..D.BNE|
00000570  20 73 65 65 6b 65 72 72  6f 72 20 5c 20 3d 20 30  | seekerror \ = 0|
00000580  20 69 66 20 4f 4b 0d 02  4e 16 4c 44 41 20 23 26  | if OK..N.LDA #&|
00000590  30 31 20 5c 20 64 72 69  76 65 20 31 0d 02 58 26  |01 \ drive 1..X&|
000005a0  53 54 41 20 73 65 65 6b  62 6c 6f 63 6b 20 5c 20  |STA seekblock \ |
000005b0  73 74 6f 72 65 20 64 72  69 76 65 20 6e 75 6d 62  |store drive numb|
000005c0  65 72 0d 02 62 0c 4c 44  41 20 23 26 37 46 0d 02  |er..b.LDA #&7F..|
000005d0  6c 18 4c 44 58 20 23 73  65 65 6b 62 6c 6f 63 6b  |l.LDX #seekblock|
000005e0  20 83 20 32 35 36 0d 02  76 18 4c 44 59 20 23 73  | . 256..v.LDY #s|
000005f0  65 65 6b 62 6c 6f 63 6b  20 81 20 32 35 36 0d 02  |eekblock . 256..|
00000600  80 0e 4a 53 52 20 6f 73  77 6f 72 64 0d 02 8a 1c  |..JSR osword....|
00000610  4c 44 41 20 73 65 65 6b  62 6c 6f 63 6b 2b 38 20  |LDA seekblock+8 |
00000620  5c 20 72 65 73 75 6c 74  0d 02 94 1d 42 4e 45 20  |\ result....BNE |
00000630  73 65 65 6b 65 72 72 6f  72 20 5c 20 3d 20 30 20  |seekerror \ = 0 |
00000640  69 66 20 4f 4b 0d 02 9e  07 52 54 53 0d 02 a8 0e  |if OK....RTS....|
00000650  2e 73 65 65 6b 65 72 72  6f 72 0d 02 b2 07 42 52  |.seekerror....BR|
00000660  4b 0d 02 bc 07 42 52 4b  0d 02 c6 15 45 51 55 53  |K....BRK....EQUS|
00000670  20 22 53 65 65 6b 20 65  72 72 6f 72 22 0d 02 d0  | "Seek error"...|
00000680  07 42 52 4b 0d 02 da 0b  2e 66 6f 72 6d 61 74 0d  |.BRK.....format.|
00000690  02 e4 28 4c 44 41 20 70  68 79 73 69 63 61 6c 20  |..(LDA physical |
000006a0  5c 20 70 68 79 73 69 63  61 6c 20 74 72 61 63 6b  |\ physical track|
000006b0  20 6e 75 6d 62 65 72 0d  02 ee 2a 53 54 41 20 66  | number...*STA f|
000006c0  6f 72 6d 62 6c 6f 63 6b  2b 37 20 5c 20 73 74 6f  |ormblock+7 \ sto|
000006d0  72 65 20 70 68 79 73 69  63 61 6c 20 74 72 61 63  |re physical trac|
000006e0  6b 0d 02 f8 20 4c 44 41  20 74 61 62 6c 65 2b 33  |k... LDA table+3|
000006f0  20 5c 20 64 61 74 61 20  73 69 7a 65 20 63 6f 64  | \ data size cod|
00000700  65 0d 03 02 1d 54 41 58  20 5c 20 75 73 65 64 20  |e....TAX \ used |
00000710  61 73 20 69 6e 64 65 78  20 6c 61 74 65 72 0d 03  |as index later..|
00000720  0c 0e 41 53 4c 20 41 20  5c 20 2a 32 0d 03 16 0e  |..ASL A \ *2....|
00000730  41 53 4c 20 41 20 5c 20  2a 34 0d 03 20 0e 41 53  |ASL A \ *4.. .AS|
00000740  4c 20 41 20 5c 20 2a 38  0d 03 2a 0f 41 53 4c 20  |L A \ *8..*.ASL |
00000750  41 20 5c 20 2a 31 36 0d  03 34 0f 41 53 4c 20 41  |A \ *16..4.ASL A|
00000760  20 5c 20 2a 33 32 0d 03  3e 27 53 54 41 20 66 6f  | \ *32..>'STA fo|
00000770  72 6d 62 6c 6f 63 6b 2b  39 20 5c 20 73 74 6f 72  |rmblock+9 \ stor|
00000780  65 20 64 61 74 61 63 6f  64 65 2a 33 32 0d 03 48  |e datacode*32..H|
00000790  13 84 41 20 23 26 30 31  20 5c 20 61 64 64 20 31  |..A #&01 \ add 1|
000007a0  0d 03 52 29 53 54 41 20  63 6f 70 79 62 6c 6f 63  |..R)STA copybloc|
000007b0  6b 2b 39 20 5c 20 73 74  6f 72 65 20 64 61 74 61  |k+9 \ store data|
000007c0  63 6f 64 65 2a 33 32 2b  31 0d 03 5c 28 4c 44 41  |code*32+1..\(LDA|
000007d0  20 73 69 7a 65 73 2c 58  20 5c 20 6c 6f 61 64 20  | sizes,X \ load |
000007e0  6e 75 6d 62 65 72 20 6f  66 20 73 65 63 74 6f 72  |number of sector|
000007f0  73 0d 03 66 24 84 41 20  66 6f 72 6d 62 6c 6f 63  |s..f$.A formbloc|
00000800  6b 2b 39 20 5c 20 61 64  64 20 64 61 74 61 63 6f  |k+9 \ add dataco|
00000810  64 65 2a 33 32 0d 03 70  35 53 54 41 20 66 6f 72  |de*32..p5STA for|
00000820  6d 62 6c 6f 63 6b 2b 39  20 5c 20 73 74 6f 72 65  |mblock+9 \ store|
00000830  20 64 61 74 61 63 6f 64  65 2a 33 32 2b 6e 75 6d  | datacode*32+num|
00000840  62 65 72 73 65 63 74 6f  72 73 0d 03 7a 2c 4c 44  |bersectors..z,LD|
00000850  41 20 67 61 70 2c 58 20  5c 20 6c 6f 61 64 20 67  |A gap,X \ load g|
00000860  61 70 20 33 20 66 6f 72  20 74 68 65 73 65 20 73  |ap 3 for these s|
00000870  65 63 74 6f 72 73 0d 03  84 2a 53 54 41 20 66 6f  |ectors...*STA fo|
00000880  72 6d 62 6c 6f 63 6b 2b  38 20 5c 20 73 74 6f 72  |rmblock+8 \ stor|
00000890  65 20 66 6f 72 20 66 6f  72 6d 61 74 74 69 6e 67  |e for formatting|
000008a0  0d 03 8e 0c 4c 44 41 20  23 26 37 46 0d 03 98 18  |....LDA #&7F....|
000008b0  4c 44 58 20 23 66 6f 72  6d 62 6c 6f 63 6b 20 83  |LDX #formblock .|
000008c0  20 32 35 36 0d 03 a2 18  4c 44 59 20 23 66 6f 72  | 256....LDY #for|
000008d0  6d 62 6c 6f 63 6b 20 81  20 32 35 36 0d 03 ac 0e  |mblock . 256....|
000008e0  4a 53 52 20 6f 73 77 6f  72 64 0d 03 b6 1d 4c 44  |JSR osword....LD|
000008f0  41 20 66 6f 72 6d 62 6c  6f 63 6b 2b 31 32 20 5c  |A formblock+12 \|
00000900  20 72 65 73 75 6c 74 0d  03 c0 1d 42 4e 45 20 66  | result....BNE f|
00000910  6f 72 6d 65 72 72 6f 72  20 5c 20 3d 20 30 20 69  |ormerror \ = 0 i|
00000920  66 20 4f 4b 0d 03 ca 25  4c 44 58 20 74 61 62 6c  |f OK...%LDX tabl|
00000930  65 2b 33 20 5c 20 6c 6f  61 64 20 64 61 74 61 20  |e+3 \ load data |
00000940  73 69 7a 65 20 63 6f 64  65 0d 03 d4 28 4c 44 41  |size code...(LDA|
00000950  20 73 69 7a 65 73 2c 58  20 5c 20 6c 6f 61 64 20  | sizes,X \ load |
00000960  6e 75 6d 62 65 72 20 6f  66 20 73 65 63 74 6f 72  |number of sector|
00000970  73 0d 03 de 0e 41 53 4c  20 41 20 5c 20 2a 32 0d  |s....ASL A \ *2.|
00000980  03 e8 0e 41 53 4c 20 41  20 5c 20 2a 34 0d 03 f2  |...ASL A \ *4...|
00000990  07 53 45 43 0d 03 fc 1a  53 42 43 20 23 26 30 34  |.SEC....SBC #&04|
000009a0  20 5c 20 73 65 63 74 6f  72 73 2a 34 2d 34 0d 04  | \ sectors*4-4..|
000009b0  06 2d 53 54 41 20 73 65  63 74 6f 72 6e 75 6d 62  |.-STA sectornumb|
000009c0  65 72 20 5c 20 73 74 6f  72 65 20 69 6e 64 65 78  |er \ store index|
000009d0  20 6f 6e 20 73 65 63 74  6f 72 73 0d 04 10 07 52  | on sectors....R|
000009e0  54 53 0d 04 1a 0e 2e 66  6f 72 6d 65 72 72 6f 72  |TS.....formerror|
000009f0  0d 04 24 07 42 52 4b 0d  04 2e 07 42 52 4b 0d 04  |..$.BRK....BRK..|
00000a00  38 17 45 51 55 53 20 22  46 6f 72 6d 61 74 20 65  |8.EQUS "Format e|
00000a10  72 72 6f 72 22 0d 04 42  07 42 52 4b 0d 04 4c 0b  |rror"..B.BRK..L.|
00000a20  2e 64 65 66 6f 72 6d 0d  04 56 2d 4c 44 41 20 70  |.deform..V-LDA p|
00000a30  68 79 73 69 63 61 6c 20  5c 20 6c 6f 61 64 20 70  |hysical \ load p|
00000a40  68 79 73 69 63 61 6c 20  74 72 61 63 6b 20 6e 75  |hysical track nu|
00000a50  6d 62 65 72 0d 04 60 28  53 54 41 20 64 65 62 6c  |mber..`(STA debl|
00000a60  6f 63 6b 2b 37 20 5c 20  73 74 6f 72 65 20 70 68  |ock+7 \ store ph|
00000a70  79 73 69 63 61 6c 20 74  72 61 63 6b 0d 04 6a 0c  |ysical track..j.|
00000a80  4c 44 41 20 23 26 37 46  0d 04 74 16 4c 44 58 20  |LDA #&7F..t.LDX |
00000a90  23 64 65 62 6c 6f 63 6b  20 83 20 32 35 36 0d 04  |#deblock . 256..|
00000aa0  7e 16 4c 44 59 20 23 64  65 62 6c 6f 63 6b 20 81  |~.LDY #deblock .|
00000ab0  20 32 35 36 0d 04 88 21  4a 53 52 20 6f 73 77 6f  | 256...!JSR oswo|
00000ac0  72 64 20 5c 20 22 64 65  66 6f 72 6d 61 74 22 20  |rd \ "deformat" |
00000ad0  74 72 61 63 6b 0d 04 92  1b 4c 44 41 20 64 65 62  |track....LDA deb|
00000ae0  6c 6f 63 6b 2b 31 32 20  5c 20 72 65 73 75 6c 74  |lock+12 \ result|
00000af0  0d 04 9c 1b 42 4e 45 20  64 65 65 72 72 6f 72 20  |....BNE deerror |
00000b00  5c 20 3d 20 30 20 69 66  20 4f 4b 0d 04 a6 07 52  |\ = 0 if OK....R|
00000b10  54 53 0d 04 b0 0c 2e 64  65 65 72 72 6f 72 0d 04  |TS.....deerror..|
00000b20  ba 07 42 52 4b 0d 04 c4  07 42 52 4b 0d 04 ce 19  |..BRK....BRK....|
00000b30  45 51 55 53 20 22 44 65  66 6f 72 6d 61 74 20 65  |EQUS "Deformat e|
00000b40  72 72 6f 72 22 0d 04 d8  07 42 52 4b 0d 04 e2 0d  |rror"....BRK....|
00000b50  2e 72 65 67 69 73 74 65  72 0d 04 ec 2d 53 54 41  |.register...-STA|
00000b60  20 72 65 67 62 6c 6f 63  6b 2b 38 20 5c 20 76 61  | regblock+8 \ va|
00000b70  6c 75 65 20 74 6f 20 70  75 74 20 69 6e 20 72 65  |lue to put in re|
00000b80  67 69 73 74 65 72 0d 04  f6 16 4c 44 41 20 23 26  |gister....LDA #&|
00000b90  30 30 20 5c 20 64 72 69  76 65 20 30 0d 05 00 10  |00 \ drive 0....|
00000ba0  53 54 41 20 72 65 67 62  6c 6f 63 6b 0d 05 0a 27  |STA regblock...'|
00000bb0  4c 44 41 20 23 26 31 32  20 5c 20 77 72 69 74 65  |LDA #&12 \ write|
00000bc0  20 74 72 61 63 6b 20 72  65 67 69 73 74 65 72 20  | track register |
00000bd0  30 2f 32 0d 05 14 24 53  54 41 20 72 65 67 62 6c  |0/2...$STA regbl|
00000be0  6f 63 6b 2b 37 20 5c 20  72 65 67 69 73 74 65 72  |ock+7 \ register|
00000bf0  20 6e 75 6d 62 65 72 0d  05 1e 0c 4c 44 41 20 23  | number....LDA #|
00000c00  26 37 46 0d 05 28 17 4c  44 58 20 23 72 65 67 62  |&7F..(.LDX #regb|
00000c10  6c 6f 63 6b 20 83 20 32  35 36 0d 05 32 17 4c 44  |lock . 256..2.LD|
00000c20  59 20 23 72 65 67 62 6c  6f 63 6b 20 81 20 32 35  |Y #regblock . 25|
00000c30  36 0d 05 3c 0e 4a 53 52  20 6f 73 77 6f 72 64 0d  |6..<.JSR osword.|
00000c40  05 46 1b 4c 44 41 20 72  65 67 62 6c 6f 63 6b 2b  |.F.LDA regblock+|
00000c50  39 20 5c 20 72 65 73 75  6c 74 0d 05 50 1c 42 4e  |9 \ result..P.BN|
00000c60  45 20 72 65 67 65 72 72  6f 72 20 5c 20 3d 20 30  |E regerror \ = 0|
00000c70  20 69 66 20 4f 4b 0d 05  5a 16 4c 44 41 20 23 26  | if OK..Z.LDA #&|
00000c80  30 31 20 5c 20 64 72 69  76 65 20 31 0d 05 64 10  |01 \ drive 1..d.|
00000c90  53 54 41 20 72 65 67 62  6c 6f 63 6b 0d 05 6e 27  |STA regblock..n'|
00000ca0  4c 44 41 20 23 26 31 41  20 5c 20 77 72 69 74 65  |LDA #&1A \ write|
00000cb0  20 74 72 61 63 6b 20 72  65 67 69 73 74 65 72 20  | track register |
00000cc0  31 2f 33 0d 05 78 24 53  54 41 20 72 65 67 62 6c  |1/3..x$STA regbl|
00000cd0  6f 63 6b 2b 37 20 5c 20  72 65 67 69 73 74 65 72  |ock+7 \ register|
00000ce0  20 6e 75 6d 62 65 72 0d  05 82 0c 4c 44 41 20 23  | number....LDA #|
00000cf0  26 37 46 0d 05 8c 17 4c  44 58 20 23 72 65 67 62  |&7F....LDX #regb|
00000d00  6c 6f 63 6b 20 83 20 32  35 36 0d 05 96 17 4c 44  |lock . 256....LD|
00000d10  59 20 23 72 65 67 62 6c  6f 63 6b 20 81 20 32 35  |Y #regblock . 25|
00000d20  36 0d 05 a0 0e 4a 53 52  20 6f 73 77 6f 72 64 0d  |6....JSR osword.|
00000d30  05 aa 1b 4c 44 41 20 72  65 67 62 6c 6f 63 6b 2b  |...LDA regblock+|
00000d40  39 20 5c 20 72 65 73 75  6c 74 0d 05 b4 1c 42 4e  |9 \ result....BN|
00000d50  45 20 72 65 67 65 72 72  6f 72 20 5c 20 3d 20 30  |E regerror \ = 0|
00000d60  20 69 66 20 4f 4b 0d 05  be 07 52 54 53 0d 05 c8  | if OK....RTS...|
00000d70  0d 2e 72 65 67 65 72 72  6f 72 0d 05 d2 07 42 52  |..regerror....BR|
00000d80  4b 0d 05 dc 07 42 52 4b  0d 05 e6 21 45 51 55 53  |K....BRK...!EQUS|
00000d90  20 22 53 70 65 63 69 61  6c 20 72 65 67 69 73 74  | "Special regist|
00000da0  65 72 20 65 72 72 6f 72  22 0d 05 f0 07 42 52 4b  |er error"....BRK|
00000db0  0d 05 fa 10 2e 66 69 72  73 74 73 65 63 74 6f 72  |.....firstsector|
00000dc0  0d 06 04 28 4c 44 41 20  70 68 79 73 69 63 61 6c  |...(LDA physical|
00000dd0  20 5c 20 70 68 79 73 69  63 61 6c 20 74 72 61 63  | \ physical trac|
00000de0  6b 20 6e 75 6d 62 65 72  0d 06 0e 29 53 54 41 20  |k number...)STA |
00000df0  69 64 73 62 6c 6f 63 6b  2b 37 20 5c 20 73 74 6f  |idsblock+7 \ sto|
00000e00  72 65 20 70 68 79 73 69  63 61 6c 20 74 72 61 63  |re physical trac|
00000e10  6b 0d 06 18 19 4c 44 41  20 23 26 30 31 20 5c 20  |k....LDA #&01 \ |
00000e20  6f 6e 65 20 73 65 63 74  6f 72 0d 06 22 22 53 54  |one sector..""ST|
00000e30  41 20 69 64 73 62 6c 6f  63 6b 2b 39 20 5c 20 6e  |A idsblock+9 \ n|
00000e40  75 6d 62 65 72 20 6f 66  20 69 64 73 0d 06 2c 0c  |umber of ids..,.|
00000e50  4c 44 41 20 23 26 37 46  0d 06 36 17 4c 44 58 20  |LDA #&7F..6.LDX |
00000e60  23 69 64 73 62 6c 6f 63  6b 20 83 20 32 35 36 0d  |#idsblock . 256.|
00000e70  06 40 17 4c 44 59 20 23  69 64 73 62 6c 6f 63 6b  |.@.LDY #idsblock|
00000e80  20 81 20 32 35 36 0d 06  4a 0e 4a 53 52 20 6f 73  | . 256..J.JSR os|
00000e90  77 6f 72 64 0d 06 54 1c  4c 44 41 20 69 64 73 62  |word..T.LDA idsb|
00000ea0  6c 6f 63 6b 2b 31 30 20  5c 20 72 65 73 75 6c 74  |lock+10 \ result|
00000eb0  0d 06 5e 1d 80 20 23 26  31 45 20 5c 20 3d 20 30  |..^.. #&1E \ = 0|
00000ec0  20 69 66 20 66 6f 72 6d  61 74 74 65 64 0d 06 68  | if formatted..h|
00000ed0  07 52 54 53 0d 06 72 0e  2e 73 65 63 74 6f 72 69  |.RTS..r..sectori|
00000ee0  64 73 0d 06 7c 25 4c 44  58 20 74 61 62 6c 65 2b  |ds..|%LDX table+|
00000ef0  33 20 5c 20 6c 6f 61 64  20 64 61 74 61 20 73 69  |3 \ load data si|
00000f00  7a 65 20 63 6f 64 65 0d  06 86 28 4c 44 41 20 73  |ze code...(LDA s|
00000f10  69 7a 65 73 2c 58 20 5c  20 6c 6f 61 64 20 6e 75  |izes,X \ load nu|
00000f20  6d 62 65 72 20 6f 66 20  73 65 63 74 6f 72 73 0d  |mber of sectors.|
00000f30  06 90 2c 53 54 41 20 69  64 73 62 6c 6f 63 6b 2b  |..,STA idsblock+|
00000f40  39 20 5c 20 73 74 6f 72  65 20 6e 75 6d 62 65 72  |9 \ store number|
00000f50  20 6f 66 20 73 65 63 74  6f 72 73 0d 06 9a 0c 4c  | of sectors....L|
00000f60  44 41 20 23 26 37 46 0d  06 a4 17 4c 44 58 20 23  |DA #&7F....LDX #|
00000f70  69 64 73 62 6c 6f 63 6b  20 83 20 32 35 36 0d 06  |idsblock . 256..|
00000f80  ae 17 4c 44 59 20 23 69  64 73 62 6c 6f 63 6b 20  |..LDY #idsblock |
00000f90  81 20 32 35 36 0d 06 b8  0e 4a 53 52 20 6f 73 77  |. 256....JSR osw|
00000fa0  6f 72 64 0d 06 c2 1c 4c  44 41 20 69 64 73 62 6c  |ord....LDA idsbl|
00000fb0  6f 63 6b 2b 31 30 20 5c  20 72 65 73 75 6c 74 0d  |ock+10 \ result.|
00000fc0  06 cc 0a 80 20 23 26 31  45 0d 06 d6 1c 42 4e 45  |.... #&1E....BNE|
00000fd0  20 69 64 73 65 72 72 6f  72 20 5c 20 3d 20 30 20  | idserror \ = 0 |
00000fe0  69 66 20 4f 4b 0d 06 e0  07 52 54 53 0d 06 ea 0d  |if OK....RTS....|
00000ff0  2e 69 64 73 65 72 72 6f  72 0d 06 f4 07 42 52 4b  |.idserror....BRK|
00001000  0d 06 fe 07 42 52 4b 0d  07 08 1a 45 51 55 53 20  |....BRK....EQUS |
00001010  22 53 65 63 74 6f 72 20  49 44 20 45 72 72 6f 72  |"Sector ID Error|
00001020  22 0d 07 12 07 42 52 4b  0d 07 1c 0f 2e 63 6f 70  |"....BRK.....cop|
00001030  79 73 65 63 74 6f 72 0d  07 26 2a 4c 44 58 20 73  |ysector..&*LDX s|
00001040  65 63 74 6f 72 6e 75 6d  62 65 72 20 5c 20 6c 6f  |ectornumber \ lo|
00001050  61 64 20 69 6e 64 65 78  20 6f 6e 20 74 61 62 6c  |ad index on tabl|
00001060  65 0d 07 30 2e 4c 44 41  20 74 61 62 6c 65 2b 32  |e..0.LDA table+2|
00001070  2c 58 20 5c 20 6c 6f 61  64 20 6c 6f 67 69 63 61  |,X \ load logica|
00001080  6c 20 73 65 63 74 6f 72  20 6e 75 6d 62 65 72 0d  |l sector number.|
00001090  07 3a 2b 53 54 41 20 63  6f 70 79 62 6c 6f 63 6b  |.:+STA copyblock|
000010a0  2b 38 20 5c 20 73 74 6f  72 65 20 66 6f 72 20 72  |+8 \ store for r|
000010b0  65 61 64 20 73 65 63 74  6f 72 0d 07 44 2b 4c 44  |ead sector..D+LD|
000010c0  41 20 74 61 62 6c 65 2c  58 20 5c 20 6c 6f 61 64  |A table,X \ load|
000010d0  20 6c 6f 67 69 63 61 6c  20 74 72 61 63 6b 20 6e  | logical track n|
000010e0  75 6d 62 65 72 0d 07 4e  28 53 54 41 20 63 6f 70  |umber..N(STA cop|
000010f0  79 62 6c 6f 63 6b 2b 37  20 5c 20 61 6e 64 20 73  |yblock+7 \ and s|
00001100  74 6f 72 65 20 66 6f 72  20 72 65 61 64 0d 07 58  |tore for read..X|
00001110  27 4a 53 52 20 72 65 67  69 73 74 65 72 20 5c 20  |'JSR register \ |
00001120  77 72 69 74 65 20 74 72  61 63 6b 20 72 65 67 69  |write track regi|
00001130  73 74 65 72 0d 07 62 16  4c 44 41 20 23 26 30 30  |ster..b.LDA #&00|
00001140  20 5c 20 64 72 69 76 65  20 30 0d 07 6c 11 53 54  | \ drive 0..l.ST|
00001150  41 20 63 6f 70 79 62 6c  6f 63 6b 0d 07 76 22 4c  |A copyblock..v"L|
00001160  44 41 20 23 26 35 37 20  5c 20 72 65 61 64 20 73  |DA #&57 \ read s|
00001170  65 63 74 6f 72 20 63 6f  6d 6d 61 6e 64 0d 07 80  |ector command...|
00001180  13 53 54 41 20 63 6f 70  79 62 6c 6f 63 6b 2b 36  |.STA copyblock+6|
00001190  0d 07 8a 0c 4c 44 41 20  23 26 37 46 0d 07 94 18  |....LDA #&7F....|
000011a0  4c 44 58 20 23 63 6f 70  79 62 6c 6f 63 6b 20 83  |LDX #copyblock .|
000011b0  20 32 35 36 0d 07 9e 18  4c 44 59 20 23 63 6f 70  | 256....LDY #cop|
000011c0  79 62 6c 6f 63 6b 20 81  20 32 35 36 0d 07 a8 0e  |yblock . 256....|
000011d0  4a 53 52 20 6f 73 77 6f  72 64 0d 07 b2 14 4c 44  |JSR osword....LD|
000011e0  41 20 63 6f 70 79 62 6c  6f 63 6b 2b 31 30 0d 07  |A copyblock+10..|
000011f0  bc 21 42 45 51 20 6e 6f  74 64 65 6c 20 5c 20 6e  |.!BEQ notdel \ n|
00001200  6f 74 20 64 65 6c 65 74  65 64 20 64 61 74 61 0d  |ot deleted data.|
00001210  07 c6 22 43 4d 50 20 23  26 32 30 20 5c 20 64 65  |.."CMP #&20 \ de|
00001220  6c 65 74 65 64 20 64 61  74 61 20 72 65 73 75 6c  |leted data resul|
00001230  74 0d 07 d0 24 42 4e 45  20 72 65 61 64 65 72 72  |t...$BNE readerr|
00001240  6f 72 20 5c 20 65 72 72  6f 72 20 69 66 20 6e 6f  |or \ error if no|
00001250  74 20 26 32 30 0d 07 da  29 4c 44 41 20 23 26 34  |t &20...)LDA #&4|
00001260  46 20 5c 20 77 72 69 74  65 20 64 65 6c 65 74 65  |F \ write delete|
00001270  64 20 64 61 74 61 20 63  6f 6d 6d 61 6e 64 0d 07  |d data command..|
00001280  e4 0f 42 4e 45 20 73 61  76 65 63 6f 6d 0d 07 ee  |..BNE savecom...|
00001290  0b 2e 6e 6f 74 64 65 6c  0d 07 f8 21 4c 44 41 20  |..notdel...!LDA |
000012a0  23 26 34 42 20 5c 20 77  72 69 74 65 20 64 61 74  |#&4B \ write dat|
000012b0  61 20 63 6f 6d 6d 61 6e  64 0d 08 02 0c 2e 73 61  |a command.....sa|
000012c0  76 65 63 6f 6d 0d 08 0c  13 53 54 41 20 63 6f 70  |vecom....STA cop|
000012d0  79 62 6c 6f 63 6b 2b 36  0d 08 16 16 4c 44 41 20  |yblock+6....LDA |
000012e0  23 26 30 31 20 5c 20 64  72 69 76 65 20 31 0d 08  |#&01 \ drive 1..|
000012f0  20 11 53 54 41 20 63 6f  70 79 62 6c 6f 63 6b 0d  | .STA copyblock.|
00001300  08 2a 0c 4c 44 41 20 23  26 37 46 0d 08 34 18 4c  |.*.LDA #&7F..4.L|
00001310  44 58 20 23 63 6f 70 79  62 6c 6f 63 6b 20 83 20  |DX #copyblock . |
00001320  32 35 36 0d 08 3e 18 4c  44 59 20 23 63 6f 70 79  |256..>.LDY #copy|
00001330  62 6c 6f 63 6b 20 81 20  32 35 36 0d 08 48 0e 4a  |block . 256..H.J|
00001340  53 52 20 6f 73 77 6f 72  64 0d 08 52 1d 4c 44 41  |SR osword..R.LDA|
00001350  20 63 6f 70 79 62 6c 6f  63 6b 2b 31 30 20 5c 20  | copyblock+10 \ |
00001360  72 65 73 75 6c 74 0d 08  5c 1e 42 4e 45 20 77 72  |result..\.BNE wr|
00001370  69 74 65 65 72 72 6f 72  20 5c 20 3d 20 30 20 69  |iteerror \ = 0 i|
00001380  66 20 4f 4b 0d 08 66 07  53 45 43 0d 08 70 2c 4c  |f OK..f.SEC..p,L|
00001390  44 41 20 73 65 63 74 6f  72 6e 75 6d 62 65 72 20  |DA sectornumber |
000013a0  5c 20 73 65 63 74 6f 72  20 69 6e 64 65 78 20 6f  |\ sector index o|
000013b0  6e 20 74 61 62 6c 65 0d  08 7a 0c 53 42 43 20 23  |n table..z.SBC #|
000013c0  26 30 34 0d 08 84 24 53  54 41 20 73 65 63 74 6f  |&04...$STA secto|
000013d0  72 6e 75 6d 62 65 72 20  5c 20 69 6e 64 65 78 3d  |rnumber \ index=|
000013e0  69 6e 64 65 78 2d 34 0d  08 8e 07 52 54 53 0d 08  |index-4....RTS..|
000013f0  98 0e 2e 72 65 61 64 65  72 72 6f 72 0d 08 a2 28  |...readerror...(|
00001400  4c 44 41 20 70 68 79 73  69 63 61 6c 20 5c 20 70  |LDA physical \ p|
00001410  68 79 73 69 63 61 6c 20  74 72 61 63 6b 20 6e 75  |hysical track nu|
00001420  6d 62 65 72 0d 08 ac 27  4a 53 52 20 72 65 67 69  |mber...'JSR regi|
00001430  73 74 65 72 20 5c 20 77  72 69 74 65 20 74 72 61  |ster \ write tra|
00001440  63 6b 20 72 65 67 69 73  74 65 72 0d 08 b6 07 42  |ck register....B|
00001450  52 4b 0d 08 c0 07 42 52  4b 0d 08 ca 15 45 51 55  |RK....BRK....EQU|
00001460  53 20 22 52 65 61 64 20  65 72 72 6f 72 22 0d 08  |S "Read error"..|
00001470  d4 07 42 52 4b 0d 08 de  0f 2e 77 72 69 74 65 65  |..BRK.....writee|
00001480  72 72 6f 72 0d 08 e8 28  4c 44 41 20 70 68 79 73  |rror...(LDA phys|
00001490  69 63 61 6c 20 5c 20 70  68 79 73 69 63 61 6c 20  |ical \ physical |
000014a0  74 72 61 63 6b 20 6e 75  6d 62 65 72 0d 08 f2 27  |track number...'|
000014b0  4a 53 52 20 72 65 67 69  73 74 65 72 20 5c 20 77  |JSR register \ w|
000014c0  72 69 74 65 20 74 72 61  63 6b 20 72 65 67 69 73  |rite track regis|
000014d0  74 65 72 0d 08 fc 07 42  52 4b 0d 09 06 07 42 52  |ter....BRK....BR|
000014e0  4b 0d 09 10 16 45 51 55  53 20 22 57 72 69 74 65  |K....EQUS "Write|
000014f0  20 65 72 72 6f 72 22 0d  09 1a 07 42 52 4b 0d 09  | error"....BRK..|
00001500  24 0e 2e 70 72 69 6e 74  62 79 74 65 0d 09 2e 2e  |$..printbyte....|
00001510  4c 44 41 20 70 68 79 73  69 63 61 6c 20 5c 20 70  |LDA physical \ p|
00001520  72 69 6e 74 20 70 68 79  73 69 63 61 6c 20 74 72  |rint physical tr|
00001530  61 63 6b 20 6e 75 6d 62  65 72 0d 09 38 07 50 48  |ack number..8.PH|
00001540  41 0d 09 42 09 4c 53 52  20 41 0d 09 4c 09 4c 53  |A..B.LSR A..L.LS|
00001550  52 20 41 0d 09 56 09 4c  53 52 20 41 0d 09 60 09  |R A..V.LSR A..`.|
00001560  4c 53 52 20 41 0d 09 6a  20 4a 53 52 20 6e 79 62  |LSR A..j JSR nyb|
00001570  62 6c 65 20 5c 20 70 72  69 6e 74 20 4d 53 20 6e  |ble \ print MS n|
00001580  79 62 62 6c 65 0d 09 74  07 50 4c 41 0d 09 7e 20  |ybble..t.PLA..~ |
00001590  4a 53 52 20 6e 79 62 62  6c 65 20 5c 20 70 72 69  |JSR nybble \ pri|
000015a0  6e 74 20 4c 53 20 6e 79  62 62 6c 65 0d 09 88 0f  |nt LS nybble....|
000015b0  4c 44 41 20 23 97 28 22  20 22 29 0d 09 92 1c 4a  |LDA #.(" ")....J|
000015c0  53 52 20 6f 73 77 72 63  68 20 5c 20 70 72 69 6e  |SR oswrch \ prin|
000015d0  74 20 73 70 61 63 65 0d  09 9c 27 4a 4d 50 20 6f  |t space...'JMP o|
000015e0  73 77 72 63 68 20 5c 20  70 72 69 6e 74 20 73 70  |swrch \ print sp|
000015f0  61 63 65 20 61 6e 64 20  72 65 74 75 72 6e 0d 09  |ace and return..|
00001600  a6 0b 2e 6e 79 62 62 6c  65 0d 09 b0 0a 80 20 23  |...nybble..... #|
00001610  26 30 46 0d 09 ba 07 53  45 44 0d 09 c4 07 43 4c  |&0F....SED....CL|
00001620  43 0d 09 ce 0c 41 44 43  20 23 26 39 30 0d 09 d8  |C....ADC #&90...|
00001630  0c 41 44 43 20 23 26 34  30 0d 09 e2 07 43 4c 44  |.ADC #&40....CLD|
00001640  0d 09 ec 28 4a 4d 50 20  6f 73 77 72 63 68 20 5c  |...(JMP oswrch \|
00001650  20 70 72 69 6e 74 20 6e  79 62 62 6c 65 20 61 6e  | print nybble an|
00001660  64 20 72 65 74 75 72 6e  0d 09 f6 0e 2e 73 65 65  |d return.....see|
00001670  6b 62 6c 6f 63 6b 0d 0a  00 18 45 51 55 42 20 26  |kblock....EQUB &|
00001680  30 30 20 5c 20 64 72 69  76 65 20 30 2f 31 0d 0a  |00 \ drive 0/1..|
00001690  0a 1e 45 51 55 44 20 26  30 30 20 5c 20 64 6f 65  |..EQUD &00 \ doe|
000016a0  73 20 6e 6f 74 20 6d 61  74 74 65 72 0d 0a 14 1a  |s not matter....|
000016b0  45 51 55 42 20 26 30 31  20 5c 20 31 20 70 61 72  |EQUB &01 \ 1 par|
000016c0  61 6d 65 74 65 72 0d 0a  16 1b 45 51 55 42 20 26  |ameter....EQUB &|
000016d0  36 39 20 5c 20 73 65 65  6b 20 63 6f 6d 6d 61 6e  |69 \ seek comman|
000016e0  64 0d 0a 18 24 45 51 55  42 20 26 30 30 20 5c 20  |d...$EQUB &00 \ |
000016f0  70 68 79 73 69 63 61 6c  20 74 72 61 63 6b 20 6e  |physical track n|
00001700  75 6d 62 65 72 0d 0a 1a  1a 45 51 55 42 20 26 30  |umber....EQUB &0|
00001710  30 20 5c 20 72 65 73 75  6c 74 20 62 79 74 65 0d  |0 \ result byte.|
00001720  0a 1e 0d 2e 72 65 67 62  6c 6f 63 6b 0d 0a 28 18  |....regblock..(.|
00001730  45 51 55 42 20 26 30 30  20 5c 20 64 72 69 76 65  |EQUB &00 \ drive|
00001740  20 30 2f 31 0d 0a 32 1e  45 51 55 44 20 26 30 30  | 0/1..2.EQUD &00|
00001750  20 5c 20 64 6f 65 73 20  6e 6f 74 20 6d 61 74 74  | \ does not matt|
00001760  65 72 0d 0a 3c 1b 45 51  55 42 20 26 30 32 20 5c  |er..<.EQUB &02 \|
00001770  20 32 20 70 61 72 61 6d  65 74 65 72 73 0d 0a 3e  | 2 parameters..>|
00001780  25 45 51 55 42 20 26 37  41 20 5c 20 77 72 69 74  |%EQUB &7A \ writ|
00001790  65 20 73 70 65 63 69 61  6c 20 72 65 67 69 73 74  |e special regist|
000017a0  65 72 0d 0a 40 1e 45 51  55 42 20 26 30 30 20 5c  |er..@.EQUB &00 \|
000017b0  20 72 65 67 69 73 74 65  72 20 6e 75 6d 62 65 72  | register number|
000017c0  0d 0a 42 27 45 51 55 42  20 26 30 30 20 5c 20 76  |..B'EQUB &00 \ v|
000017d0  61 6c 75 65 20 74 6f 20  70 75 74 20 69 6e 20 72  |alue to put in r|
000017e0  65 67 69 73 74 65 72 0d  0a 46 1a 45 51 55 42 20  |egister..F.EQUB |
000017f0  26 30 30 20 5c 20 72 65  73 75 6c 74 20 62 79 74  |&00 \ result byt|
00001800  65 0d 0a 50 0d 2e 69 64  73 62 6c 6f 63 6b 0d 0a  |e..P..idsblock..|
00001810  5a 16 45 51 55 42 20 26  30 30 20 5c 20 64 72 69  |Z.EQUB &00 \ dri|
00001820  76 65 20 30 0d 0a 64 22  45 51 55 44 20 74 61 62  |ve 0..d"EQUD tab|
00001830  6c 65 20 5c 20 61 64 64  72 65 73 73 20 6f 66 20  |le \ address of |
00001840  62 75 66 66 65 72 0d 0a  6e 1b 45 51 55 42 20 26  |buffer..n.EQUB &|
00001850  30 33 20 5c 20 33 20 70  61 72 61 6d 65 74 65 72  |03 \ 3 parameter|
00001860  73 0d 0a 70 1e 45 51 55  42 20 26 35 42 20 5c 20  |s..p.EQUB &5B \ |
00001870  72 65 61 64 20 73 65 63  74 6f 72 20 49 44 73 0d  |read sector IDs.|
00001880  0a 72 24 45 51 55 42 20  26 30 30 20 5c 20 70 68  |.r$EQUB &00 \ ph|
00001890  79 73 69 63 61 6c 20 74  72 61 63 6b 20 6e 75 6d  |ysical track num|
000018a0  62 65 72 0d 0a 74 19 45  51 55 42 20 26 30 30 20  |ber..t.EQUB &00 |
000018b0  5c 20 61 6c 77 61 79 73  20 26 30 30 0d 0a 76 27  |\ always &00..v'|
000018c0  45 51 55 42 20 26 30 30  20 5c 20 6e 75 6d 62 65  |EQUB &00 \ numbe|
000018d0  72 20 6f 66 20 49 44 73  20 74 6f 20 62 65 20 72  |r of IDs to be r|
000018e0  65 61 64 0d 0a 78 1a 45  51 55 42 20 26 30 30 20  |ead..x.EQUB &00 |
000018f0  5c 20 72 65 73 75 6c 74  20 62 79 74 65 0d 0a 82  |\ result byte...|
00001900  0e 2e 63 6f 70 79 62 6c  6f 63 6b 0d 0a 8c 18 45  |..copyblock....E|
00001910  51 55 42 20 26 30 30 20  5c 20 64 72 69 76 65 20  |QUB &00 \ drive |
00001920  30 2f 31 0d 0a 96 23 45  51 55 44 20 62 75 66 66  |0/1...#EQUD buff|
00001930  65 72 20 5c 20 61 64 64  72 65 73 73 20 6f 66 20  |er \ address of |
00001940  62 75 66 66 65 72 0d 0a  a0 1b 45 51 55 42 20 26  |buffer....EQUB &|
00001950  30 33 20 5c 20 33 20 70  61 72 61 6d 65 74 65 72  |03 \ 3 parameter|
00001960  73 0d 0a a2 29 45 51 55  42 20 26 35 37 20 5c 20  |s...)EQUB &57 \ |
00001970  72 65 61 64 20 64 61 74  61 20 61 6e 64 20 64 65  |read data and de|
00001980  6c 65 74 65 64 20 64 61  74 61 0d 0a a4 23 45 51  |leted data...#EQ|
00001990  55 42 20 26 30 30 20 5c  20 6c 6f 67 69 63 61 6c  |UB &00 \ logical|
000019a0  20 74 72 61 63 6b 20 6e  75 6d 62 65 72 0d 0a a6  | track number...|
000019b0  24 45 51 55 42 20 26 30  30 20 5c 20 6c 6f 67 69  |$EQUB &00 \ logi|
000019c0  63 61 6c 20 73 65 63 74  6f 72 20 6e 75 6d 62 65  |cal sector numbe|
000019d0  72 0d 0a a8 21 45 51 55  42 20 26 30 30 20 5c 20  |r...!EQUB &00 \ |
000019e0  73 65 63 74 6f 72 20 73  69 7a 65 2f 6e 75 6d 62  |sector size/numb|
000019f0  65 72 0d 0a aa 1a 45 51  55 42 20 26 30 30 20 5c  |er....EQUB &00 \|
00001a00  20 72 65 73 75 6c 74 20  62 79 74 65 0d 0a b4 0e  | result byte....|
00001a10  2e 66 6f 72 6d 62 6c 6f  63 6b 0d 0a be 16 45 51  |.formblock....EQ|
00001a20  55 42 20 26 30 31 20 5c  20 64 72 69 76 65 20 31  |UB &01 \ drive 1|
00001a30  0d 0a c8 1d 45 51 55 44  20 74 61 62 6c 65 20 5c  |....EQUD table \|
00001a40  20 73 65 63 74 6f 72 20  74 61 62 6c 65 0d 0a d2  | sector table...|
00001a50  1b 45 51 55 42 20 26 30  35 20 5c 20 35 20 70 61  |.EQUB &05 \ 5 pa|
00001a60  72 61 6d 65 74 65 72 73  0d 0a d4 23 45 51 55 42  |rameters...#EQUB|
00001a70  20 26 36 33 20 5c 20 66  6f 72 6d 61 74 20 74 72  | &63 \ format tr|
00001a80  61 63 6b 20 63 6f 6d 6d  61 6e 64 0d 0a d6 24 45  |ack command...$E|
00001a90  51 55 42 20 26 30 30 20  5c 20 70 68 79 73 69 63  |QUB &00 \ physic|
00001aa0  61 6c 20 74 72 61 63 6b  20 6e 75 6d 62 65 72 0d  |al track number.|
00001ab0  0a d8 19 45 51 55 42 20  26 30 30 20 5c 20 67 61  |...EQUB &00 \ ga|
00001ac0  70 20 33 20 73 69 7a 65  0d 0a da 21 45 51 55 42  |p 3 size...!EQUB|
00001ad0  20 26 30 30 20 5c 20 73  65 63 74 6f 72 20 73 69  | &00 \ sector si|
00001ae0  7a 65 2f 6e 75 6d 62 65  72 0d 0a dc 19 45 51 55  |ze/number....EQU|
00001af0  42 20 26 30 30 20 5c 20  67 61 70 20 35 20 73 69  |B &00 \ gap 5 si|
00001b00  7a 65 0d 0a de 19 45 51  55 42 20 26 31 30 20 5c  |ze....EQUB &10 \|
00001b10  20 67 61 70 20 31 20 73  69 7a 65 0d 0a e0 1a 45  | gap 1 size....E|
00001b20  51 55 42 20 26 30 30 20  5c 20 72 65 73 75 6c 74  |QUB &00 \ result|
00001b30  20 62 79 74 65 0d 0a e6  0c 2e 64 65 62 6c 6f 63  | byte.....debloc|
00001b40  6b 0d 0a f0 16 45 51 55  42 20 26 30 31 20 5c 20  |k....EQUB &01 \ |
00001b50  64 72 69 76 65 20 31 0d  0a fa 1f 45 51 55 44 20  |drive 1....EQUD |
00001b60  64 65 74 61 62 6c 65 20  5c 20 73 65 63 74 6f 72  |detable \ sector|
00001b70  20 74 61 62 6c 65 0d 0b  04 1b 45 51 55 42 20 26  | table....EQUB &|
00001b80  30 35 20 5c 20 35 20 70  61 72 61 6d 65 74 65 72  |05 \ 5 parameter|
00001b90  73 0d 0b 06 23 45 51 55  42 20 26 36 33 20 5c 20  |s...#EQUB &63 \ |
00001ba0  66 6f 72 6d 61 74 20 74  72 61 63 6b 20 63 6f 6d  |format track com|
00001bb0  6d 61 6e 64 0d 0b 08 24  45 51 55 42 20 26 30 30  |mand...$EQUB &00|
00001bc0  20 5c 20 70 68 79 73 69  63 61 6c 20 74 72 61 63  | \ physical trac|
00001bd0  6b 20 6e 75 6d 62 65 72  0d 0b 0a 19 45 51 55 42  |k number....EQUB|
00001be0  20 26 30 30 20 5c 20 67  61 70 20 33 20 73 69 7a  | &00 \ gap 3 siz|
00001bf0  65 0d 0b 0c 21 45 51 55  42 20 26 43 31 20 5c 20  |e...!EQUB &C1 \ |
00001c00  73 65 63 74 6f 72 20 73  69 7a 65 2f 6e 75 6d 62  |sector size/numb|
00001c10  65 72 0d 0b 0e 19 45 51  55 42 20 26 30 30 20 5c  |er....EQUB &00 \|
00001c20  20 67 61 70 20 35 20 73  69 7a 65 0d 0b 10 19 45  | gap 5 size....E|
00001c30  51 55 42 20 26 31 30 20  5c 20 67 61 70 20 31 20  |QUB &10 \ gap 1 |
00001c40  73 69 7a 65 0d 0b 12 1a  45 51 55 42 20 26 30 30  |size....EQUB &00|
00001c50  20 5c 20 72 65 73 75 6c  74 20 62 79 74 65 0d 0b  | \ result byte..|
00001c60  18 0c 2e 64 65 74 61 62  6c 65 0d 0b 22 12 45 51  |...detable..".EQ|
00001c70  55 44 20 26 30 34 30 30  30 30 30 30 0d 0b 2c 08  |UD &04000000..,.|
00001c80  2e 67 61 70 0d 0b 36 1f  45 51 55 42 20 31 31 20  |.gap..6.EQUB 11 |
00001c90  5c 20 47 61 70 20 33 2c  20 31 38 20 73 65 63 74  |\ Gap 3, 18 sect|
00001ca0  6f 72 73 0d 0b 40 1f 45  51 55 42 20 32 31 20 5c  |ors..@.EQUB 21 \|
00001cb0  20 47 61 70 20 33 2c 20  31 30 20 73 65 63 74 6f  | Gap 3, 10 secto|
00001cc0  72 73 0d 0b 4a 1e 45 51  55 42 20 37 34 20 5c 20  |rs..J.EQUB 74 \ |
00001cd0  47 61 70 20 33 2c 20 35  20 73 65 63 74 6f 72 73  |Gap 3, 5 sectors|
00001ce0  0d 0b 54 1f 45 51 55 42  20 32 35 35 20 5c 20 47  |..T.EQUB 255 \ G|
00001cf0  61 70 20 33 2c 20 32 20  73 65 63 74 6f 72 73 0d  |ap 3, 2 sectors.|
00001d00  0b 5e 1c 45 51 55 42 20  30 20 5c 20 47 61 70 20  |.^.EQUB 0 \ Gap |
00001d10  33 2c 20 31 20 73 65 63  74 6f 72 0d 0b 68 0a 2e  |3, 1 sector..h..|
00001d20  73 69 7a 65 73 0d 0b 72  0b 45 51 55 42 20 31 38  |sizes..r.EQUB 18|
00001d30  0d 0b 7c 0b 45 51 55 42  20 31 30 0d 0b 86 0a 45  |..|.EQUB 10....E|
00001d40  51 55 42 20 35 0d 0b 90  0a 45 51 55 42 20 32 0d  |QUB 5....EQUB 2.|
00001d50  0b 9a 0a 45 51 55 42 20  31 0d 0b a4 0d 2e 70 68  |...EQUB 1.....ph|
00001d60  79 73 69 63 61 6c 0d 0b  ae 0c 45 51 55 42 20 26  |ysical....EQUB &|
00001d70  30 30 0d 0b b8 11 2e 73  65 63 74 6f 72 6e 75 6d  |00.....sectornum|
00001d80  62 65 72 0d 0b c2 0c 45  51 55 42 20 26 30 30 0d  |ber....EQUB &00.|
00001d90  0b cc 09 2e 6c 61 73 74  0d 0b d6 0c 45 51 55 42  |....last....EQUB|
00001da0  20 26 30 30 0d 0b e0 05  5d 0d 0b ea 05 ed 0d 0b  | &00....].......|
00001db0  f4 28 e8 27 22 4e 75 6d  62 65 72 20 6f 66 20 74  |.(.'"Number of t|
00001dc0  72 61 63 6b 73 20 28 34  30 2f 38 30 29 20 22 74  |racks (40/80) "t|
00001dd0  72 61 63 6b 73 24 0d 0b  fe 26 e7 20 74 72 61 63  |racks$...&. trac|
00001de0  6b 73 24 3d 22 34 30 22  20 3f 6c 61 73 74 3d 34  |ks$="40" ?last=4|
00001df0  30 20 8b 20 3f 6c 61 73  74 3d 38 30 0d 0c 08 30  |0 . ?last=80...0|
00001e00  f1 27 22 49 6e 73 65 72  74 20 22 3b 3f 6c 61 73  |.'"Insert ";?las|
00001e10  74 3b 22 20 74 72 61 63  6b 20 73 6f 75 72 63 65  |t;" track source|
00001e20  20 64 69 73 63 20 69 6e  20 3a 30 22 0d 0c 12 34  | disc in :0"...4|
00001e30  f1 22 49 6e 73 65 72 74  20 22 3b 3f 6c 61 73 74  |."Insert ";?last|
00001e40  3b 22 20 74 72 61 63 6b  20 64 65 73 74 69 6e 61  |;" track destina|
00001e50  74 69 6f 6e 20 64 69 73  63 20 69 6e 20 3a 31 22  |tion disc in :1"|
00001e60  0d 0c 1c 2c f1 27 22 50  72 65 73 73 20 53 70 61  |...,.'"Press Spa|
00001e70  63 65 62 61 72 20 74 6f  20 63 6f 70 79 20 66 72  |cebar to copy fr|
00001e80  6f 6d 20 3a 30 20 74 6f  20 3a 31 22 0d 0c 26 05  |om :0 to :1"..&.|
00001e90  f5 0d 0c 30 0a fd 20 a5  3d 33 32 0d 0c 3a 0b d6  |...0.. .=32..:..|
00001ea0  20 6d 63 6f 64 65 0d ff                           | mcode..|
00001ea8
26-09-88/COPYALL.m0
26-09-88/COPYALL.m1
26-09-88/COPYALL.m2
26-09-88/COPYALL.m4
26-09-88/COPYALL.m5