mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-21 05:24:15 +00:00
Kernel version 0.9 : Changed timeout loop causing freeze with MAC Apple IIE Card
This commit is contained in:
parent
ed63d97fa0
commit
e6441b6b26
@ -57,7 +57,7 @@ SSC.CTL.B4800 .EQ %00001100
|
|||||||
SSC.CTL.B7200 .EQ %00001101
|
SSC.CTL.B7200 .EQ %00001101
|
||||||
SSC.CTL.B9600 .EQ %00001110
|
SSC.CTL.B9600 .EQ %00001110
|
||||||
SSC.CTL.B19200 .EQ %00001111
|
SSC.CTL.B19200 .EQ %00001111
|
||||||
SSC.CTL.B115200 .EQ %00010000
|
SSC.CTL.B115200 .EQ %00000000
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -23,59 +23,32 @@ VSDRIVE.Init >LDAXI VSDRIVE.MSG0
|
|||||||
jsr PrintCStrAX
|
jsr PrintCStrAX
|
||||||
|
|
||||||
jsr VSDRIVE.Check
|
jsr VSDRIVE.Check
|
||||||
bcc .1
|
bcs .90
|
||||||
|
|
||||||
>LDAXI VSDRIVE.DRVKO
|
.1 lda #$C1 Self Modified
|
||||||
jsr PrintCStrAX
|
|
||||||
rts
|
|
||||||
|
|
||||||
lda #$C1
|
.2 jsr SSC.Detect
|
||||||
|
bcs .99
|
||||||
|
|
||||||
.1 jsr SSC.Detect
|
stx DRV+2 DRV.Slotn0
|
||||||
bcc .2
|
sta .1+1 SlotCn
|
||||||
|
|
||||||
>LDAXI VSDRIVE.SSCKO
|
and #$0F
|
||||||
jsr PrintCStrAX
|
pha slot n
|
||||||
rts
|
|
||||||
|
|
||||||
.2 sta DRV+2 DRV.Slotn0
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
pha
|
|
||||||
>LDAXI VSDRIVE.SSCOK
|
>LDAXI VSDRIVE.SSCOK
|
||||||
jsr PrintCStrAX
|
jsr PrintCStrAX
|
||||||
|
|
||||||
jsr VSDRIVE.Ping
|
jsr VSDRIVE.Ping
|
||||||
bcc .3
|
bcs .92
|
||||||
|
|
||||||
>LDAXI VSDRIVE.SRVKO
|
>LDAXI VSDRIVE.SRVOK
|
||||||
jsr PrintCStrAX
|
|
||||||
|
|
||||||
lda DRV+2 DRV.Slotn0
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
ora #$C0
|
|
||||||
inc
|
|
||||||
cmp #$C8
|
|
||||||
bne .1 Go try next SSC....
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
.3 >LDAXI VSDRIVE.SRVOK
|
|
||||||
jsr PrintCStrAX
|
jsr PrintCStrAX
|
||||||
|
|
||||||
jsr VSDRIVE.SetSlot
|
jsr VSDRIVE.SetSlot
|
||||||
bcc .4
|
bcs .91
|
||||||
|
|
||||||
>LDAXI VSDRIVE.NOSLOT
|
pha save slot
|
||||||
jsr PrintCStrAX
|
|
||||||
rts
|
|
||||||
|
|
||||||
.4 pha save slot
|
|
||||||
pha 2 times
|
pha 2 times
|
||||||
>LDAXI VSDRIVE.DEVOK
|
>LDAXI VSDRIVE.DEVOK
|
||||||
jsr PrintCStrAX
|
jsr PrintCStrAX
|
||||||
@ -84,7 +57,26 @@ VSDRIVE.Init >LDAXI VSDRIVE.MSG0
|
|||||||
|
|
||||||
>LDAXI VSDRIVE.OK
|
>LDAXI VSDRIVE.OK
|
||||||
jsr PrintCStrAX
|
jsr PrintCStrAX
|
||||||
|
rts
|
||||||
|
|
||||||
|
.90 >LDAXI VSDRIVE.DRVKO
|
||||||
|
jsr PrintCStrAX
|
||||||
|
rts
|
||||||
|
|
||||||
|
.91 >LDAXI VSDRIVE.NOSLOT
|
||||||
|
jsr PrintCStrAX
|
||||||
|
rts
|
||||||
|
|
||||||
|
.92 >LDAXI VSDRIVE.SRVKO
|
||||||
|
jsr PrintCStrAX
|
||||||
|
|
||||||
|
inc .1+1
|
||||||
|
lda .1+1
|
||||||
|
cmp #$C8
|
||||||
|
bne .2 Go try next SSC....
|
||||||
|
|
||||||
|
.99 >LDAXI VSDRIVE.SSCKO
|
||||||
|
jsr PrintCStrAX
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
VSDRIVE.Check bit RRAMWRAMBNK2
|
VSDRIVE.Check bit RRAMWRAMBNK2
|
||||||
@ -111,26 +103,31 @@ SSC.Detect stz TmpPtr1
|
|||||||
lda (TmpPtr1),y
|
lda (TmpPtr1),y
|
||||||
cmp DEVSIG.Value,x
|
cmp DEVSIG.Value,x
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
lda TmpPtr1+1
|
|
||||||
|
lda TmpPtr1+1 A=SlotCN
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
tax
|
tax X=SlotN0
|
||||||
|
|
||||||
stz SSC.RESET,x
|
stz SSC.RESET,x
|
||||||
|
|
||||||
lda #SSC.CTL.B115200+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP
|
pha zzzzzzz...
|
||||||
|
pla
|
||||||
|
|
||||||
|
lda #SSC.CTL.CLKINT+SSC.CTL.B115200+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP
|
||||||
sta SSC.CTL,x
|
sta SSC.CTL,x
|
||||||
|
|
||||||
lda #SSC.CMD.RIRQDIS
|
lda #SSC.CMD.RIRQDIS
|
||||||
sta SSC.CMD,x
|
sta SSC.CMD,x
|
||||||
txa
|
lda TmpPtr1+1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts X=SlotN0, A=SlotCN
|
||||||
|
|
||||||
.3 inc TmpPtr1+1 no match, try next slot....
|
.3 inc TmpPtr1+1 no match, try next slot....
|
||||||
lda TmpPtr1+1
|
lda TmpPtr1+1
|
||||||
@ -142,23 +139,28 @@ SSC.Detect stz TmpPtr1
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
VSDRIVE.Ping ldx DRV+2 DRV.Slotn0
|
VSDRIVE.Ping ldx DRV+2 DRV.Slotn0
|
||||||
|
|
||||||
.1 lda SSC.STATUS,x
|
|
||||||
bit #SSC.STATUS.TDRE Ready for transmit?
|
|
||||||
beq .1
|
|
||||||
|
|
||||||
stz VSDRIVE.Ping.TO
|
stz VSDRIVE.Ping.TO
|
||||||
stz VSDRIVE.Ping.TO+1
|
stz VSDRIVE.Ping.TO+1
|
||||||
|
|
||||||
ldy #10
|
ldy #10
|
||||||
|
|
||||||
.2 inc VSDRIVE.Ping.TO Wait.......
|
.1 lda SSC.STATUS,x
|
||||||
bne .2
|
bit #SSC.STATUS.TDRE Ready for transmit?
|
||||||
inc VSDRIVE.Ping.TO+1
|
|
||||||
bne .2
|
|
||||||
dey
|
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
lda #$C4 Send "D" (DIR)
|
inc VSDRIVE.Ping.TO Wait.......
|
||||||
|
bne .1
|
||||||
|
inc VSDRIVE.Ping.TO+1
|
||||||
|
bne .1
|
||||||
|
dey
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
ldy #10 10 retries...
|
||||||
|
|
||||||
|
.2 lda #$C4 Send "D" (DIR)
|
||||||
sta SSC.DATA,x
|
sta SSC.DATA,x
|
||||||
|
|
||||||
stz VSDRIVE.Ping.TO
|
stz VSDRIVE.Ping.TO
|
||||||
@ -167,7 +169,13 @@ VSDRIVE.Ping ldx DRV+2 DRV.Slotn0
|
|||||||
.3 inc VSDRIVE.Ping.TO
|
.3 inc VSDRIVE.Ping.TO
|
||||||
bne .4
|
bne .4
|
||||||
inc VSDRIVE.Ping.TO+1
|
inc VSDRIVE.Ping.TO+1
|
||||||
beq .9 Time Out.....
|
bne .4
|
||||||
|
|
||||||
|
dey
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
sec
|
||||||
|
rts Time Out.....
|
||||||
|
|
||||||
.4 lda SSC.STATUS,x
|
.4 lda SSC.STATUS,x
|
||||||
and #SSC.STATUS.RDRF incoming char?
|
and #SSC.STATUS.RDRF incoming char?
|
||||||
@ -186,8 +194,6 @@ VSDRIVE.Ping ldx DRV+2 DRV.Slotn0
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
VSDRIVE.Ping.TO .BS 2
|
VSDRIVE.Ping.TO .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user