mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-27 00:29:29 +00:00
Kernel 0.94
This commit is contained in:
parent
88978f8855
commit
10a5a7699a
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -19,7 +19,7 @@ CS.START cld
|
|||
.DA #$61 6502,Level 1 (65c02)
|
||||
.DA #1 DRV Layout Version 1
|
||||
.DA 0
|
||||
.DA CS.END-CS.START Code Length
|
||||
.DA CS.END-CS.START Code Length
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
|
@ -60,14 +60,14 @@ Dev.Detect >STYA ARGS
|
|||
.10 dec give some time....
|
||||
bne .10
|
||||
|
||||
lda #W5100.MR.AI+W5100.MR.IND
|
||||
lda #W5100.MR.PB+W5100.MR.AI+W5100.MR.IND
|
||||
sta W5100.MR,x
|
||||
|
||||
pha
|
||||
pla
|
||||
|
||||
lda W5100.MR,x
|
||||
cmp #W5100.MR.AI+W5100.MR.IND
|
||||
cmp #W5100.MR.PB+W5100.MR.AI+W5100.MR.IND
|
||||
bne .2
|
||||
|
||||
>AR.SELECT RTR
|
||||
|
@ -97,9 +97,6 @@ Dev.Detect >STYA ARGS
|
|||
.3 stx DEVSLOTx0
|
||||
sty DEVSLOT0x
|
||||
|
||||
lda #A2osX.S.NIC
|
||||
sta A2osX.S,y
|
||||
|
||||
jsr Dev.ParseArgs
|
||||
bcs .99
|
||||
|
||||
|
@ -283,7 +280,7 @@ OPEN.I jsr CLOSE
|
|||
|
||||
* ldx DEVSLOTx0 Done by CLOSE
|
||||
|
||||
lda #W5100.MR.AI+W5100.MR.IND
|
||||
lda #W5100.MR.PB+W5100.MR.AI+W5100.MR.IND
|
||||
sta W5100.MR,x
|
||||
|
||||
>AR.SELECT SHAR
|
||||
|
|
402
LIB/LIBBLKDEV.S.D2.txt
Normal file
402
LIB/LIBBLKDEV.S.D2.txt
Normal file
|
@ -0,0 +1,402 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*/--------------------------------------
|
||||
*\--------------------------------------
|
||||
D2MotorControl >PULLB MotorOn
|
||||
>PULLB DrvSlt
|
||||
jsr CheckDiskII
|
||||
bcs .9
|
||||
|
||||
lda MotorOn
|
||||
asl
|
||||
|
||||
lda #0
|
||||
adc #IO.D2.DrvOff
|
||||
adc Slotn0
|
||||
tax
|
||||
lda $C000,x
|
||||
|
||||
* clc
|
||||
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
*\--------------------------------------
|
||||
D2MoveHead >PULLB MoveTo
|
||||
>PULLB MoveFrom
|
||||
>PULLB DrvSlt
|
||||
jsr CheckDiskII
|
||||
bcs .9
|
||||
|
||||
.1 lda MoveTo
|
||||
cmp MoveFrom
|
||||
beq .8
|
||||
|
||||
bcc .2
|
||||
|
||||
* sec
|
||||
lda #0 MoveFrom>MoveTo, must move in
|
||||
bra .3
|
||||
|
||||
.2 lda #$ff MoveFrom<MoveTo, must move out
|
||||
|
||||
.3 adc MoveFrom
|
||||
sta MoveFrom
|
||||
|
||||
jsr XRW.PhaseOn
|
||||
|
||||
lda #$30
|
||||
jsr XRW.Wait100msA Trash X
|
||||
|
||||
jsr XRW.AllPhaseOff
|
||||
|
||||
lda #$70
|
||||
jsr XRW.Wait100msA Trash X
|
||||
bra .1
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
XRW.PhaseOn pha
|
||||
jsr .7
|
||||
pla
|
||||
|
||||
bit #1 1,3,5,7 ?
|
||||
beq .8
|
||||
|
||||
inc
|
||||
|
||||
.7 and #6 mask for 0,2,4,6
|
||||
ora Slotn0
|
||||
tax
|
||||
lda IO.D2.Ph0On,x turn on one phase
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
XRW.AllPhaseOff ldx Slotn0
|
||||
lda IO.D2.Ph0Off,x make sure all motor phases are off.
|
||||
lda IO.D2.Ph1Off,x
|
||||
lda IO.D2.Ph2Off,x
|
||||
lda IO.D2.Ph3Off,x
|
||||
rts
|
||||
*--------------------------------------
|
||||
XRW.Wait100msA
|
||||
.1 ldx #$11 delay 86 usec
|
||||
|
||||
.2 dex
|
||||
bne .2
|
||||
|
||||
inc montimel
|
||||
bne .3
|
||||
|
||||
inc montimeh
|
||||
|
||||
.3 sec
|
||||
sbc #$01
|
||||
bne .1
|
||||
|
||||
rts
|
||||
*/--------------------------------------
|
||||
*\--------------------------------------
|
||||
D2TrkRead16s
|
||||
*/--------------------------------------
|
||||
* # D2TrkWrite16s
|
||||
* Write a track (16 sectors)
|
||||
* **In:**
|
||||
* PUSHB = DSSS0000
|
||||
* PUSHB = TrackNum * 4 : 0->136+
|
||||
* PUSHW = Ptr to 16*256 buffer
|
||||
* ## RETURN VALUE
|
||||
* CC : success
|
||||
* CS : A = Error
|
||||
* A=0, currently starting/seeking...
|
||||
*\--------------------------------------
|
||||
D2TrkWrite16s >PULLW ZPPtr1
|
||||
>PULLB TrkNum
|
||||
>PULLB VolNum
|
||||
>PULLB DrvSlt
|
||||
|
||||
jsr CheckDiskII
|
||||
bcs .9
|
||||
|
||||
>LDYAI TRACK16.LEN+1
|
||||
>SYSCALL2 getmem
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPtr2
|
||||
stx hTrkBuf
|
||||
|
||||
stz SectNum
|
||||
|
||||
ldy #TRACK16.GAP1
|
||||
jsr PutSyncBytePtr2
|
||||
|
||||
.1 jsr PutAddrHeadPtr2
|
||||
|
||||
jsr HeaderCheckSum
|
||||
|
||||
ldy #3
|
||||
|
||||
.2 lda Checksum,y
|
||||
jsr PutByte44Ptr2
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
jsr PutTailPtr2
|
||||
|
||||
ldy #TRACK16.GAP2
|
||||
jsr PutSyncBytePtr2
|
||||
|
||||
jsr PutDataHeadPtr2
|
||||
|
||||
jsr PutData
|
||||
|
||||
jsr PutTailPtr2
|
||||
ldy #TRACK16.GAP3
|
||||
jsr PutSyncBytePtr2
|
||||
|
||||
inc ZPPtr1+1
|
||||
|
||||
inc SectNum
|
||||
lda SectNum
|
||||
cmp #16
|
||||
bne .1
|
||||
|
||||
lda #0
|
||||
sta (ZPPtr2)
|
||||
|
||||
jsr D2WriteTrackPtr2
|
||||
php
|
||||
pha
|
||||
lda hTrkBuf
|
||||
>SYSCALL2 FreeMem
|
||||
pla
|
||||
plp
|
||||
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
*\--------------------------------------
|
||||
D2TrkReadNIB
|
||||
*/--------------------------------------
|
||||
* # D2TrkWriteNIB
|
||||
* Write a track (NIBBLE)
|
||||
* **In:**
|
||||
* PUSHB = DSSS0000
|
||||
* PUSHW = Ptr to NIBBLE buffer (0 ended)
|
||||
* ## RETURN VALUE
|
||||
* CC : success
|
||||
* CS : A = Error
|
||||
* A=0, currently starting/seeking...
|
||||
*\--------------------------------------
|
||||
D2TrkWriteNIB >PULLW ZPPtr1
|
||||
>PULLB DrvSlt
|
||||
|
||||
jsr CheckDiskII was it a DISK II ?
|
||||
bcs .9
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* A=DSSS0000
|
||||
*--------------------------------------
|
||||
CheckDiskII pha
|
||||
and #$70 only 0SSS
|
||||
sta Slotn0
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
ora #$C0 make Cn
|
||||
sta ZPPtr3+1
|
||||
stz ZPPtr3
|
||||
|
||||
ldx #3 4 bytes to check
|
||||
|
||||
.1 ldy DiskII.OFS,x
|
||||
|
||||
.2 lda (ZPPtr3),y
|
||||
cmp DiskII.SIG,x
|
||||
bne .9
|
||||
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
pla all bytes match, Disk II
|
||||
asl
|
||||
lda #0
|
||||
adc #IO.D2.DrvSel1
|
||||
adc Slotn0
|
||||
tax
|
||||
lda $C000,x
|
||||
|
||||
* clc
|
||||
rts
|
||||
|
||||
.9 pla
|
||||
lda #MLI.E.NODEV
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
* A=DSSS0000
|
||||
*--------------------------------------
|
||||
DrvSpinCheck ldy #0
|
||||
|
||||
lda IO.D2.RData,x
|
||||
.1 cmp IO.D2.RData,x
|
||||
bne .8 spinning
|
||||
dey
|
||||
bne .1
|
||||
|
||||
clc CC:not spinning
|
||||
rts
|
||||
|
||||
.8 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
PutSyncBytePtr2 lda #$7f
|
||||
|
||||
.1 jsr PutBytePtr2
|
||||
dey
|
||||
bne .1
|
||||
rts
|
||||
*--------------------------------------
|
||||
PutAddrHeadPtr2 ldy #2
|
||||
|
||||
.1 lda ADDR.Head,y
|
||||
jsr PutBytePtr2
|
||||
dey
|
||||
bpl .1
|
||||
rts
|
||||
*--------------------------------------
|
||||
PutDataHeadPtr2 ldy #2
|
||||
|
||||
.1 lda DATA.Head,y
|
||||
jsr PutBytePtr2
|
||||
dey
|
||||
bpl .1
|
||||
rts
|
||||
*--------------------------------------
|
||||
PutTailPtr2 ldy #2
|
||||
|
||||
.1 lda TAIL,y
|
||||
jsr PutBytePtr2
|
||||
dey
|
||||
bpl .1
|
||||
rts
|
||||
*--------------------------------------
|
||||
HeaderCheckSum lda VolNum
|
||||
eor TrkNum
|
||||
eor SectNum
|
||||
|
||||
sta Checksum
|
||||
rts
|
||||
*--------------------------------------
|
||||
PutData stz Checksum
|
||||
|
||||
lda ZPPtr1
|
||||
ldy ZPPtr1+1
|
||||
|
||||
clc
|
||||
adc #86
|
||||
bcc .1
|
||||
|
||||
iny
|
||||
clc
|
||||
|
||||
.1 sta ZPPtr3
|
||||
sty ZPPtr3+1
|
||||
|
||||
adc #86
|
||||
bcc .2
|
||||
|
||||
iny
|
||||
|
||||
.2 sta ZPPtr4
|
||||
sty ZPPtr4+1
|
||||
|
||||
ldy #85
|
||||
|
||||
.3 lda (ZPPtr1),y
|
||||
and #3
|
||||
tax
|
||||
lda XRW.XX000000,x
|
||||
pha
|
||||
|
||||
lda (ZPPtr3),y
|
||||
and #3
|
||||
tax
|
||||
pla
|
||||
ora XRW.00XX0000,x
|
||||
pha
|
||||
|
||||
lda (ZPPtr4),y
|
||||
and #3
|
||||
tax
|
||||
pla
|
||||
ora XRW.0000XX00,x
|
||||
|
||||
eor Checksum
|
||||
sta Checksum
|
||||
|
||||
tax
|
||||
lda FC2Nib,x
|
||||
|
||||
jsr PutBytePtr2
|
||||
dey
|
||||
bpl .3
|
||||
|
||||
ldy #0
|
||||
|
||||
.4 lda (ZPPtr3),y
|
||||
and #$FC
|
||||
eor Checksum
|
||||
sta Checksum
|
||||
tax
|
||||
lda FC2Nib,x
|
||||
jsr PutBytePtr2
|
||||
|
||||
iny
|
||||
bne .4
|
||||
|
||||
ldx Checksum
|
||||
lda FC2Nib,x
|
||||
jsr PutBytePtr2
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
PutByte44Ptr2 pha
|
||||
ror
|
||||
jsr .1
|
||||
|
||||
pla
|
||||
|
||||
.1 ora #$AA
|
||||
*--------------------------------------
|
||||
PutBytePtr2 sta (ZPPtr2)
|
||||
inc ZPPtr2
|
||||
bne .8
|
||||
inc ZPPtr2+1
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
D2WriteTrackPtr2
|
||||
sei
|
||||
|
||||
ldy #TrkWriter.Size
|
||||
|
||||
.1 lda TrkWriter-1,y
|
||||
sta $1ff,y
|
||||
dey
|
||||
bne .1
|
||||
|
||||
lda hTrkBuf
|
||||
>SYSCALL2 GetMemPtr
|
||||
>STYA ZPPtr1
|
||||
ldx Slotn0
|
||||
|
||||
jsr $200
|
||||
|
||||
cli
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/LIB/LIBBLKDEV.S.D2
|
||||
LOAD USR/SRC/LIB/LIBBLKDEV.S
|
||||
ASM
|
|
@ -294,402 +294,8 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf
|
|||
|
||||
inc ZPPtr1+1
|
||||
bra .7
|
||||
*/--------------------------------------
|
||||
*\--------------------------------------
|
||||
D2MotorControl >PULLB MotorOn
|
||||
>PULLB DrvSlt
|
||||
jsr CheckDiskII
|
||||
bcs .9
|
||||
|
||||
lda MotorOn
|
||||
asl
|
||||
|
||||
lda #0
|
||||
adc #IO.D2.DrvOff
|
||||
adc Slotn0
|
||||
tax
|
||||
lda $C000,x
|
||||
|
||||
* clc
|
||||
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
*\--------------------------------------
|
||||
D2MoveHead >PULLB MoveTo
|
||||
>PULLB MoveFrom
|
||||
>PULLB DrvSlt
|
||||
jsr CheckDiskII
|
||||
bcs .9
|
||||
|
||||
.1 lda MoveTo
|
||||
|
||||
sec
|
||||
sbc MoveFrom
|
||||
beq .8
|
||||
|
||||
bcc .2
|
||||
|
||||
lda #1 A>curtrk, must move in
|
||||
bra .3
|
||||
|
||||
.2 lda #$ff A<curtrk, must move out
|
||||
|
||||
.3 clc
|
||||
adc MoveFrom
|
||||
sta MoveFrom
|
||||
|
||||
jsr XRW.PhaseOn
|
||||
|
||||
lda #$30
|
||||
jsr XRW.Wait100msA Trash X
|
||||
|
||||
jsr XRW.AllPhaseOff
|
||||
|
||||
lda #$70
|
||||
jsr XRW.Wait100msA Trash X
|
||||
bra .1
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
XRW.PhaseOn pha
|
||||
jsr .7
|
||||
pla
|
||||
|
||||
bit #1 1,3,5,7 ?
|
||||
beq .8
|
||||
|
||||
inc
|
||||
|
||||
.7 and #6 mask for 0,2,4,6
|
||||
ora Slotn0
|
||||
tax
|
||||
lda IO.D2.Ph0On,x turn on one phase
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
XRW.AllPhaseOff ldx Slotn0
|
||||
lda IO.D2.Ph0Off,x make sure all motor phases are off.
|
||||
lda IO.D2.Ph1Off,x
|
||||
lda IO.D2.Ph2Off,x
|
||||
lda IO.D2.Ph3Off,x
|
||||
rts
|
||||
*--------------------------------------
|
||||
XRW.Wait100msA
|
||||
.1 ldx #$11 delay 86 usec
|
||||
|
||||
.2 dex
|
||||
bne .2
|
||||
|
||||
inc montimel
|
||||
bne .3
|
||||
|
||||
inc montimeh
|
||||
|
||||
.3 sec
|
||||
sbc #$01
|
||||
bne .1
|
||||
|
||||
rts
|
||||
*/--------------------------------------
|
||||
*\--------------------------------------
|
||||
D2TrkRead16s
|
||||
*/--------------------------------------
|
||||
* # D2TrkWrite16s
|
||||
* Write a track (16 sectors)
|
||||
* **In:**
|
||||
* PUSHB = DSSS0000
|
||||
* PUSHB = TrackNum * 4 : 0->136+
|
||||
* PUSHW = Ptr to 16*256 buffer
|
||||
* ## RETURN VALUE
|
||||
* CC : success
|
||||
* CS : A = Error
|
||||
* A=0, currently starting/seeking...
|
||||
*\--------------------------------------
|
||||
D2TrkWrite16s >PULLW ZPPtr1
|
||||
>PULLB TrkNum
|
||||
>PULLB VolNum
|
||||
>PULLB DrvSlt
|
||||
|
||||
jsr CheckDiskII
|
||||
bcs .9
|
||||
|
||||
>LDYAI TRACK16.LEN+1
|
||||
>SYSCALL2 getmem
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPtr2
|
||||
stx hTrkBuf
|
||||
|
||||
stz SectNum
|
||||
|
||||
ldy #TRACK16.GAP1
|
||||
jsr PutSyncBytePtr2
|
||||
|
||||
.1 jsr PutAddrHeadPtr2
|
||||
|
||||
jsr HeaderCheckSum
|
||||
|
||||
ldy #3
|
||||
|
||||
.2 lda Checksum,y
|
||||
jsr PutByte44Ptr2
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
jsr PutTailPtr2
|
||||
|
||||
ldy #TRACK16.GAP2
|
||||
jsr PutSyncBytePtr2
|
||||
|
||||
jsr PutDataHeadPtr2
|
||||
|
||||
jsr PutData
|
||||
|
||||
jsr PutTailPtr2
|
||||
ldy #TRACK16.GAP3
|
||||
jsr PutSyncBytePtr2
|
||||
|
||||
inc ZPPtr1+1
|
||||
|
||||
inc SectNum
|
||||
lda SectNum
|
||||
cmp #16
|
||||
bne .1
|
||||
|
||||
lda #0
|
||||
sta (ZPPtr2)
|
||||
|
||||
jsr D2WriteTrackPtr2
|
||||
php
|
||||
pha
|
||||
lda hTrkBuf
|
||||
>SYSCALL2 FreeMem
|
||||
pla
|
||||
plp
|
||||
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
*\--------------------------------------
|
||||
D2TrkReadNIB
|
||||
*/--------------------------------------
|
||||
* # D2TrkWriteNIB
|
||||
* Write a track (NIBBLE)
|
||||
* **In:**
|
||||
* PUSHB = DSSS0000
|
||||
* PUSHW = Ptr to NIBBLE buffer (0 ended)
|
||||
* ## RETURN VALUE
|
||||
* CC : success
|
||||
* CS : A = Error
|
||||
* A=0, currently starting/seeking...
|
||||
*\--------------------------------------
|
||||
D2TrkWriteNIB >PULLW ZPPtr1
|
||||
>PULLB DrvSlt
|
||||
|
||||
jsr CheckDiskII was it a DISK II ?
|
||||
bcs .9
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* A=DSSS0000
|
||||
*--------------------------------------
|
||||
CheckDiskII pha
|
||||
and #$70 only 0SSS
|
||||
sta Slotn0
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
ora #$C0 make Cn
|
||||
sta ZPPtr3+1
|
||||
stz ZPPtr3
|
||||
|
||||
ldx #3 4 bytes to check
|
||||
|
||||
.1 ldy DiskII.OFS,x
|
||||
|
||||
.2 lda (ZPPtr3),y
|
||||
cmp DiskII.SIG,x
|
||||
bne .9
|
||||
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
pla all bytes match, Disk II
|
||||
asl
|
||||
lda #0
|
||||
adc #IO.D2.DrvSel1
|
||||
adc Slotn0
|
||||
tax
|
||||
lda $C000,x
|
||||
|
||||
* clc
|
||||
rts
|
||||
|
||||
.9 pla
|
||||
lda #MLI.E.NODEV
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
* A=DSSS0000
|
||||
*--------------------------------------
|
||||
DrvSpinCheck ldy #0
|
||||
|
||||
lda IO.D2.RData,x
|
||||
.1 cmp IO.D2.RData,x
|
||||
bne .8 spinning
|
||||
dey
|
||||
bne .1
|
||||
|
||||
clc CC:not spinning
|
||||
rts
|
||||
|
||||
.8 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
PutSyncBytePtr2 lda #$7f
|
||||
|
||||
.1 jsr PutBytePtr2
|
||||
dey
|
||||
bne .1
|
||||
rts
|
||||
*--------------------------------------
|
||||
PutAddrHeadPtr2 ldy #2
|
||||
|
||||
.1 lda ADDR.Head,y
|
||||
jsr PutBytePtr2
|
||||
dey
|
||||
bpl .1
|
||||
rts
|
||||
*--------------------------------------
|
||||
PutDataHeadPtr2 ldy #2
|
||||
|
||||
.1 lda DATA.Head,y
|
||||
jsr PutBytePtr2
|
||||
dey
|
||||
bpl .1
|
||||
rts
|
||||
*--------------------------------------
|
||||
PutTailPtr2 ldy #2
|
||||
|
||||
.1 lda TAIL,y
|
||||
jsr PutBytePtr2
|
||||
dey
|
||||
bpl .1
|
||||
rts
|
||||
*--------------------------------------
|
||||
HeaderCheckSum lda VolNum
|
||||
eor TrkNum
|
||||
eor SectNum
|
||||
|
||||
sta Checksum
|
||||
rts
|
||||
*--------------------------------------
|
||||
PutData stz Checksum
|
||||
|
||||
lda ZPPtr1
|
||||
ldy ZPPtr1+1
|
||||
|
||||
clc
|
||||
adc #86
|
||||
bcc .1
|
||||
|
||||
iny
|
||||
clc
|
||||
|
||||
.1 sta ZPPtr3
|
||||
sty ZPPtr3+1
|
||||
|
||||
adc #86
|
||||
bcc .2
|
||||
|
||||
iny
|
||||
|
||||
.2 sta ZPPtr4
|
||||
sty ZPPtr4+1
|
||||
|
||||
ldy #85
|
||||
|
||||
.3 lda (ZPPtr1),y
|
||||
and #3
|
||||
tax
|
||||
lda XRW.XX000000,x
|
||||
pha
|
||||
|
||||
lda (ZPPtr3),y
|
||||
and #3
|
||||
tax
|
||||
pla
|
||||
ora XRW.00XX0000,x
|
||||
pha
|
||||
|
||||
lda (ZPPtr4),y
|
||||
and #3
|
||||
tax
|
||||
pla
|
||||
ora XRW.0000XX00,x
|
||||
|
||||
eor Checksum
|
||||
sta Checksum
|
||||
|
||||
tax
|
||||
lda FC2Nib,x
|
||||
|
||||
jsr PutBytePtr2
|
||||
dey
|
||||
bpl .3
|
||||
|
||||
ldy #0
|
||||
|
||||
.4 lda (ZPPtr3),y
|
||||
and #$FC
|
||||
eor Checksum
|
||||
sta Checksum
|
||||
tax
|
||||
lda FC2Nib,x
|
||||
jsr PutBytePtr2
|
||||
|
||||
iny
|
||||
bne .4
|
||||
|
||||
ldx Checksum
|
||||
lda FC2Nib,x
|
||||
jsr PutBytePtr2
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
PutByte44Ptr2 pha
|
||||
ror
|
||||
jsr .1
|
||||
|
||||
pla
|
||||
|
||||
.1 ora #$AA
|
||||
*--------------------------------------
|
||||
PutBytePtr2 sta (ZPPtr2)
|
||||
inc ZPPtr2
|
||||
bne .8
|
||||
inc ZPPtr2+1
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
D2WriteTrackPtr2
|
||||
sei
|
||||
|
||||
ldy #TrkWriter.Size
|
||||
|
||||
.1 lda TrkWriter-1,y
|
||||
sta $1ff,y
|
||||
dey
|
||||
bne .1
|
||||
|
||||
lda hTrkBuf
|
||||
>SYSCALL2 GetMemPtr
|
||||
>STYA ZPPtr1
|
||||
ldx Slotn0
|
||||
|
||||
jsr $200
|
||||
|
||||
cli
|
||||
rts
|
||||
.INB USR/SRC/LIB/LIBBLKDEV.S.D2
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
*--------------------------------------
|
||||
|
|
|
@ -746,14 +746,15 @@ XRW.Seek ldx XRW.UnitIndex
|
|||
|
||||
bcc .2
|
||||
|
||||
lda #1 A>curtrk, must move in
|
||||
* sec
|
||||
lda #0 CurrentQTrack>TargetQTrack, must move in
|
||||
bra .3
|
||||
|
||||
.2 lda #$ff A<curtrk, must move out
|
||||
.2 lda #$ff CurrentQTrack<TargetQTrack, must move out
|
||||
|
||||
.3 clc
|
||||
adc XRW.CurrentQTrack
|
||||
.3 adc XRW.CurrentQTrack
|
||||
sta XRW.CurrentQTrack
|
||||
|
||||
jsr XRW.PhaseOn
|
||||
|
||||
lda #$30
|
||||
|
@ -784,14 +785,10 @@ XRW.PhaseOn pha
|
|||
*--------------------------------------
|
||||
XRW.AllPhaseOff ldx A2L
|
||||
|
||||
lda #4
|
||||
|
||||
.1 bit IO.D2.Ph0Off,x
|
||||
inx
|
||||
inx
|
||||
dec
|
||||
bne .1
|
||||
|
||||
lda IO.D2.Ph0Off,x
|
||||
lda IO.D2.Ph1Off,x
|
||||
lda IO.D2.Ph2Off,x
|
||||
lda IO.D2.Ph3Off,x
|
||||
rts
|
||||
*--------------------------------------
|
||||
XRW.Trk2Qtrk asl x2
|
||||
|
|
Loading…
Reference in New Issue
Block a user