mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-26 13:49:18 +00:00
Kernel version 0.9 : VSDRIVE bugfix in write block
This commit is contained in:
parent
fe833adeea
commit
77965e5c9d
BIN
A2OSX.BOOT.po
BIN
A2OSX.BOOT.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
@ -67,6 +67,8 @@ In Progress : moving TCPIP to socket API
|
|||||||
| ------- | ------ | ------- |
|
| ------- | ------ | ------- |
|
||||||
| KM.NSC | Working | No-Slot-Clock |
|
| KM.NSC | Working | No-Slot-Clock |
|
||||||
| KM.RAMWORKS | Working | AE-Ramworks I,II,III |
|
| KM.RAMWORKS | Working | AE-Ramworks I,II,III |
|
||||||
|
| KM.VSDRIVE | Working | AdtPRO Virtual Drive |
|
||||||
|
| KM.APPLETALK | Working | AppleTalk Support for ProDOS |
|
||||||
|
|
||||||
## SBIN,Daemons/Commands:
|
## SBIN,Daemons/Commands:
|
||||||
| Name | Status | Comment | K.Ver |
|
| Name | Status | Comment | K.Ver |
|
||||||
|
@ -26,14 +26,14 @@ VSDRIVE.Init >LDAXI VSDRIVE.MSG0
|
|||||||
jsr VSDRIVE.Check
|
jsr VSDRIVE.Check
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
>LDAXI VSDRIVE.MSG1
|
>LDAXI VSDRIVE.DRVKO
|
||||||
jsr PrintCStrAX
|
jsr PrintCStrAX
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 jsr SSC.Detect
|
.1 jsr SSC.Detect
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
>LDAXI VSDRIVE.MSG2
|
>LDAXI VSDRIVE.SSCKO
|
||||||
jsr PrintCStrAX
|
jsr PrintCStrAX
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -43,23 +43,34 @@ VSDRIVE.Init >LDAXI VSDRIVE.MSG0
|
|||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
pha
|
pha
|
||||||
>LDAXI VSDRIVE.MSG3
|
>LDAXI VSDRIVE.SSCOK
|
||||||
jsr PrintCStrAX
|
jsr PrintCStrAX
|
||||||
|
|
||||||
jsr VSDRIVE.SetSlot
|
jsr VSDRIVE.Ping
|
||||||
bcc .3
|
bcc .3
|
||||||
>LDAXI VSDRIVE.MSG4
|
|
||||||
|
>LDAXI VSDRIVE.SRVKO
|
||||||
|
jsr PrintCStrAX
|
||||||
|
rts
|
||||||
|
|
||||||
|
.3 >LDAXI VSDRIVE.SRVOK
|
||||||
|
jsr PrintCStrAX
|
||||||
|
|
||||||
|
jsr VSDRIVE.SetSlot
|
||||||
|
bcc .4
|
||||||
|
|
||||||
|
>LDAXI VSDRIVE.NOSLOT
|
||||||
jsr PrintCStrAX
|
jsr PrintCStrAX
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 pha save slot
|
.4 pha save slot
|
||||||
pha 2 times
|
pha 2 times
|
||||||
>LDAXI VSDRIVE.MSG5
|
>LDAXI VSDRIVE.DEVOK
|
||||||
jsr PrintCStrAX
|
jsr PrintCStrAX
|
||||||
|
|
||||||
jsr VSDRIVE.Install
|
jsr VSDRIVE.Install
|
||||||
|
|
||||||
>LDAXI VSDRIVE.MSG6
|
>LDAXI VSDRIVE.OK
|
||||||
jsr PrintCStrAX
|
jsr PrintCStrAX
|
||||||
|
|
||||||
rts
|
rts
|
||||||
@ -118,9 +129,37 @@ SSC.Detect stz TmpPtr1
|
|||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
VSDRIVE.Ping
|
VSDRIVE.Ping ldx DRV+2 DRV.Slotn0
|
||||||
|
|
||||||
|
.10 lda #$C4 Send "D" (DIR)
|
||||||
|
sta SSC.DATA,x
|
||||||
|
|
||||||
|
.1 inc VSDRIVE.Ping.TO
|
||||||
|
bne .2
|
||||||
|
inc VSDRIVE.Ping.TO+1
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
.2 lda SSC.STATUS,x
|
||||||
|
and #SSC.STATUS.RDRF incoming char?
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda SSC.DATA,x
|
||||||
|
bne .2 end of string ?
|
||||||
|
|
||||||
|
.3 lda SSC.STATUS,x
|
||||||
|
and #SSC.STATUS.RDRF incoming char?
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
lda SSC.DATA,x
|
||||||
|
bne .10 end of list ?
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.9 sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
VSDRIVE.Ping.TO .DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Find 2 free slots in DEVPTRS (D1 & D2)
|
* Find 2 free slots in DEVPTRS (D1 & D2)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -196,13 +235,15 @@ VSDRIVE.Install ldx #PATCH.SIZE
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEVSIG.Offset .HS 05070B0C
|
DEVSIG.Offset .HS 05070B0C
|
||||||
DEVSIG.Value .HS 38180131
|
DEVSIG.Value .HS 38180131
|
||||||
VSDRIVE.MSG0 >CSTR "VSDRIVE (ADT Vitual Serial Hard Drive) Driver For A2osX\n"
|
VSDRIVE.MSG0 >CSTR "VSDRIVE (ADTPro Vitual Serial HD) Driver For A2osX\n"
|
||||||
VSDRIVE.MSG1 >CSTR "VSDRIVE (Or other custom Driver) Already Installed.\n"
|
VSDRIVE.DRVKO >CSTR "VSDRIVE (Or other custom Driver) Already Installed.\n"
|
||||||
VSDRIVE.MSG2 >CSTR "SSC Not Detected.\n"
|
VSDRIVE.SSCKO >CSTR "SSC Not Detected.\n"
|
||||||
VSDRIVE.MSG3 >CSTR "SCC Found At Slot %d.\n"
|
VSDRIVE.SSCOK >CSTR "SCC Found At Slot %d.\n"
|
||||||
VSDRIVE.MSG4 >CSTR "No ProDOS device slot available.\n"
|
VSDRIVE.SRVKO >CSTR "No Response From ADTPro Server.\n"
|
||||||
VSDRIVE.MSG5 >CSTR "VSDRIVE Installed 2 devices at S%dD1 & S%dD2.\n"
|
VSDRIVE.SRVOK >CSTR "ADTPro Server Is Online.\n"
|
||||||
VSDRIVE.MSG6 >CSTR "VSDRIVE Driver Successfully Installed.\n"
|
VSDRIVE.NOSLOT >CSTR "No ProDOS device slot available.\n"
|
||||||
|
VSDRIVE.DEVOK >CSTR "VSDRIVE Installed 2 devices at S%d,D1 & S%d,D2.\n"
|
||||||
|
VSDRIVE.OK >CSTR "VSDRIVE Driver Successfully Installed.\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ProDOS $BE41->$BE4B Patch for switching to BANK2 (10 bytes)
|
* ProDOS $BE41->$BE4B Patch for switching to BANK2 (10 bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -277,14 +318,6 @@ DRV.Slotn0 ldx #$ff Self Modified
|
|||||||
jsr DRV.SSCSend
|
jsr DRV.SSCSend
|
||||||
dey
|
dey
|
||||||
bpl .3
|
bpl .3
|
||||||
* read back CMD
|
|
||||||
ldy #3 Read Back and check 4 bytes
|
|
||||||
|
|
||||||
.4 jsr DRV.SSCGet
|
|
||||||
eor DRV.CmdBuf.BlkHi,y
|
|
||||||
bne DRV.DO.CMD.ERR
|
|
||||||
dey
|
|
||||||
bpl .4
|
|
||||||
|
|
||||||
ldy #8
|
ldy #8
|
||||||
|
|
||||||
@ -293,28 +326,34 @@ DRV.Slotn0 ldx #$ff Self Modified
|
|||||||
dey
|
dey
|
||||||
bpl .5
|
bpl .5
|
||||||
|
|
||||||
|
*--------------------------------------
|
||||||
lda DRV.COMMAND
|
lda DRV.COMMAND
|
||||||
dec 1-1=0 if read
|
dec 1-1=0 if read
|
||||||
bne DRV.DO.CMD.W go write
|
bne DRV.DO.CMD.W go write
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Read block : Discard ProDOS time recieved from Server (4 bytes)
|
* Read block
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.DO.CMD.R ldy #4 Read 4 bytes
|
DRV.DO.CMD.R ldy #3 Read Back and check 4 bytes
|
||||||
|
|
||||||
.1 jsr DRV.SSCGet
|
.1 jsr DRV.SSCGet
|
||||||
|
eor DRV.CmdBuf.BlkHi,y
|
||||||
|
bne DRV.DO.CMD.ERR
|
||||||
|
dey
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
ldy #4 Read 4 bytes DATE/TIME + 1 Byte Checksum
|
||||||
|
|
||||||
|
.2 jsr DRV.SSCGet
|
||||||
|
|
||||||
eor DRV.CmdBuf.Sum
|
eor DRV.CmdBuf.Sum
|
||||||
sta DRV.CmdBuf.Sum
|
sta DRV.CmdBuf.Sum
|
||||||
dey
|
dey
|
||||||
bne .1
|
bpl .2
|
||||||
|
|
||||||
* recieve Header Sum and check
|
tay Last EOR was with Checksum, must be 0
|
||||||
|
|
||||||
jsr DRV.SSCGet
|
|
||||||
eor DRV.CmdBuf.Sum
|
|
||||||
bne DRV.DO.CMD.ERR
|
bne DRV.DO.CMD.ERR
|
||||||
|
|
||||||
* Y=0 from dey/bne
|
* Y=0 from TAY
|
||||||
|
|
||||||
stz DRV.CmdBuf.Sum
|
stz DRV.CmdBuf.Sum
|
||||||
sec
|
sec
|
||||||
@ -355,7 +394,7 @@ DRV.DO.CMD.W lda #$B1 lda (),y
|
|||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
stz DRV.CmdBuf.Sum
|
stz DRV.CmdBuf.Sum
|
||||||
|
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.1 jsr $100
|
.1 jsr $100
|
||||||
@ -377,6 +416,8 @@ DRV.DO.CMD.W lda #$B1 lda (),y
|
|||||||
|
|
||||||
jsr DRV.SSCSend
|
jsr DRV.SSCSend
|
||||||
|
|
||||||
|
* read back CMD
|
||||||
|
|
||||||
ldy #4 Read 5 bytes (echo from server)
|
ldy #4 Read 5 bytes (echo from server)
|
||||||
|
|
||||||
.3 jsr DRV.SSCGet
|
.3 jsr DRV.SSCGet
|
||||||
@ -387,12 +428,6 @@ DRV.DO.CMD.W lda #$B1 lda (),y
|
|||||||
bpl .3
|
bpl .3
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.CmdBuf.Sum .BS 1 Reverse order for dey
|
|
||||||
DRV.CmdBuf.BlkHi .BS 1
|
|
||||||
DRV.CmdBuf.BlkLo .BS 1
|
|
||||||
DRV.CmdBuf.Cmd .BS 1
|
|
||||||
DRV.CmdBuf.Env .DA #VS.CMD
|
|
||||||
*--------------------------------------
|
|
||||||
DRV.SSCSend sta .2+1
|
DRV.SSCSend sta .2+1
|
||||||
|
|
||||||
.1 lda SSC.STATUS,x
|
.1 lda SSC.STATUS,x
|
||||||
@ -421,6 +456,12 @@ DRV.READWRITE bit RRAMWRAMBNK1
|
|||||||
sta (DRV.BUFF),y
|
sta (DRV.BUFF),y
|
||||||
bit RRAMWRAMBNK2
|
bit RRAMWRAMBNK2
|
||||||
rts
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DRV.CmdBuf.Sum .BS 1 Reverse order for dey
|
||||||
|
DRV.CmdBuf.BlkHi .BS 1
|
||||||
|
DRV.CmdBuf.BlkLo .BS 1
|
||||||
|
DRV.CmdBuf.Cmd .BS 1
|
||||||
|
DRV.CmdBuf.Env .DA #VS.CMD
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.EP
|
.EP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user