mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-28 10:52:33 +00:00
194 lines
3.6 KiB
Plaintext
194 lines
3.6 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
X.TRKFMT.VolNum .EQ X.TRKFMT.Z
|
||
X.TRKFMT.TrkNum .EQ X.TRKFMT.Z+1
|
||
X.TRKFMT.SectNum .EQ X.TRKFMT.Z+2
|
||
X.TRKFMT.CheckSum .EQ X.TRKFMT.Z+3
|
||
*--------------------------------------
|
||
X.TRKFMT lda #$ff
|
||
|
||
sta IO.D2.WriteMode,x goto write mode
|
||
ora IO.D2.WShift,x (4)
|
||
|
||
jsr X.TRKFMT.W14 (14)
|
||
|
||
lda #0 (2)
|
||
sta X.TRKFMT.SectNum (3)
|
||
|
||
ldy #0 (2) 256 SyncBytes
|
||
|
||
jsr X.TRKFMT.SyncBytes (15..15)
|
||
|
||
nop (2)
|
||
nop (2)
|
||
nop (2)
|
||
nop (2)
|
||
|
||
.1 jsr X.TRKFMT.AddrField (17..15)
|
||
|
||
ldy #6 (2)
|
||
|
||
jsr X.TRKFMT.SyncBytes (15..15)
|
||
|
||
jsr X.TRKFMT.W14 (14)
|
||
|
||
ldy #2 (2)
|
||
|
||
.2 lda X.TRKFMT.DATA,y (4)
|
||
sta IO.D2.WLoad,x (5)
|
||
ora IO.D2.WShift,x (4)
|
||
dey (2)
|
||
bmi .22 (3-)
|
||
|
||
jsr X.TRKFMT.W12 (12)
|
||
bra .2 (3)
|
||
|
||
.22 jsr X.TRKFMT.W14 (14)
|
||
|
||
ldy #86 (2) 256+86...
|
||
lda #$96 (2)
|
||
|
||
sta IO.D2.WLoad,x (5) ...+1
|
||
ora IO.D2.WShift,x (4)
|
||
|
||
nop (2)
|
||
bra .3 (3)
|
||
|
||
.3 jsr X.TRKFMT.W14 (14)
|
||
|
||
nop (2)
|
||
|
||
lda #$96 (2)
|
||
sta IO.D2.WLoad,x (5)
|
||
ora IO.D2.WShift,x (4)
|
||
|
||
dey (2)
|
||
bne .3 (3)-
|
||
|
||
bra .5 (3)
|
||
|
||
.4 nop (2)
|
||
|
||
.5 jsr X.TRKFMT.W14 (14)
|
||
|
||
lda #$96 (2)
|
||
sta IO.D2.WLoad,x (5)
|
||
ora IO.D2.WShift,x (4)
|
||
|
||
dey (2)
|
||
bne .4 (3)-
|
||
|
||
inc X.TRKFMT.SectNum (5)
|
||
|
||
jsr X.TRKFMT.EndMark (19..15)
|
||
|
||
ldy #16 (2)
|
||
|
||
jsr X.TRKFMT.SyncBytes (15..15)
|
||
|
||
lda X.TRKFMT.SectNum (3)
|
||
cmp #16 (2)
|
||
bne .1 (3-)
|
||
|
||
lda IO.D2.ReadMode,x (4) out of write mode
|
||
lda IO.D2.WShift,x (4) to read mode.
|
||
|
||
rts
|
||
*--------------------------------------
|
||
X.TRKFMT.SyncBytes
|
||
nop (2)
|
||
|
||
lda #$ff (2)
|
||
|
||
.1 sta IO.D2.WLoad,x (5)
|
||
ora IO.D2.WShift,x (4)
|
||
dey (2)
|
||
beq .8 (3-)
|
||
|
||
jsr X.TRKFMT.W12 (12)
|
||
jsr X.TRKFMT.W12 (12)
|
||
|
||
bra .1 (3)
|
||
|
||
.8 rts (6)
|
||
*--------------------------------------
|
||
X.TRKFMT.AddrField
|
||
ldy #2 (2)
|
||
|
||
.1 lda X.TRKFMT.ADDR,y (4)
|
||
sta IO.D2.WLoad,x (5)
|
||
ora IO.D2.WShift,x (4)
|
||
dey (2)
|
||
bmi .2 (3-)
|
||
|
||
lda X.TRKFMT.VolNum (3)
|
||
eor X.TRKFMT.TrkNum (3)
|
||
eor X.TRKFMT.SectNum (3)
|
||
sta X.TRKFMT.Checksum (3)
|
||
bra .1 (3)
|
||
|
||
.2 lda X.TRKFMT.VolNum (3)
|
||
lda X.TRKFMT.VolNum (3)
|
||
jsr X.TRKFMT.W4x4 (17..12)
|
||
|
||
lda X.TRKFMT.TrkNum (3)
|
||
jsr X.TRKFMT.W4x4 (17..12)
|
||
|
||
lda X.TRKFMT.SectNum (3)
|
||
jsr X.TRKFMT.W4x4 (17..12)
|
||
|
||
lda X.TRKFMT.Checksum (3)
|
||
jsr X.TRKFMT.W4x4 (17..12)
|
||
|
||
pha (3)
|
||
pla (4)
|
||
*--------------------------------------
|
||
X.TRKFMT.EndMark
|
||
ldy #2 (2)
|
||
|
||
nop (2)
|
||
|
||
.1 lda X.TRKFMT.END,y (4)
|
||
sta IO.D2.WLoad,x (5)
|
||
ora IO.D2.WShift,x (4)
|
||
dey (2)
|
||
bmi .8 (3-)
|
||
|
||
jsr X.TRKFMT.W12 (12)
|
||
bra .1 (3)
|
||
|
||
.8 rts (6)
|
||
*--------------------------------------
|
||
X.TRKFMT.W4x4 tay (2)
|
||
lsr (2)
|
||
ora #$AA (2)
|
||
sta IO.D2.WLoad,x (5)
|
||
ora IO.D2.WShift,x (4)
|
||
|
||
jsr X.TRKFMT.W12 (12)
|
||
|
||
pha (3)
|
||
pla (4)
|
||
|
||
tya (2)
|
||
ora #$AA (2)
|
||
|
||
sta IO.D2.WLoad,x (5)
|
||
ora IO.D2.WShift,x (4)
|
||
|
||
X.TRKFMT.W14 nop (2)
|
||
|
||
X.TRKFMT.W12 rts (6)
|
||
*--------------------------------------
|
||
.LIST ON
|
||
X.TRKFMT.ADDR .HS 96AAD5
|
||
X.TRKFMT.DATA .HS ADAAD5
|
||
X.TRKFMT.END .HS EBAADE
|
||
.LIST OFF
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/shared/x.trkfmt.s
|
||
LOAD usr/src/basic.fx/basic.s
|
||
ASM
|