Kernel 0.94+

This commit is contained in:
Rémy GIBERT 2021-02-17 17:15:43 +01:00
parent cde368b69e
commit 6ece240fc8
20 changed files with 1317 additions and 483 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -384,7 +384,10 @@ CS.RUN.LL.DISKII
sec sec
rts rts
.8 >PUSHW L.MSG.CRLF .8 ldx #0
jsr CS.RUN.SeekToX
>PUSHW L.MSG.CRLF
>PUSHBI 0 >PUSHBI 0
>SYSCALL PrintF >SYSCALL PrintF
bcs .9 bcs .9
@ -395,24 +398,20 @@ CS.RUN.LL.DISKII
bit bVerify bit bVerify
bpl .80 bpl .80
ldx #0
jsr CS.RUN.SeekToX
jsr CS.RUN.LL.DISKII.V jsr CS.RUN.LL.DISKII.V
bcs .99 bcs .99
jsr CS.RUN.MotorOn jsr CS.RUN.MotorOn
lda #20 lda #5
jsr CS.RUN.Wait jsr CS.RUN.Wait
.80 .80 >PUSHB DSSS0000
>PUSHB DSSS0000
>LIBCALL hLIBBLKDEV,LIBBLKDEV.D2Recalibrate >LIBCALL hLIBBLKDEV,LIBBLKDEV.D2Recalibrate
lda #20 lda #5
jsr CS.RUN.Wait jsr CS.RUN.Wait
clc
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
CS.RUN.LL.DISKII.V CS.RUN.LL.DISKII.V

View File

@ -78,7 +78,7 @@ J.CS.RUN.PRINT .DA CS.RUN.PRINT.REG
CS.INIT clc CS.INIT clc
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN CS.RUN
.1 >INC.G ArgCount .1 >INC.G ArgCount
>SYSCALL ArgV >SYSCALL ArgV
bcs .6 bcs .6

446
BIN/PPPTEST.S.txt Normal file
View File

@ -0,0 +1,446 @@
NEW
AUTO 3,1
.LIST OFF
.OP 65C02
.OR $2000
.TF root/ppptest
*--------------------------------------
.INB inc/macros.i
.INB inc/a2osx.i
*--------------------------------------
TIMEOUT.MAX .EQ 200 20 sec.
BUFSIZE .EQ 256
*--------------------------------------
.DUMMY
.OR ZPBIN
ZS.START
ZPBufPtr .BS 2
ZPBufLen .BS 2
ZPPtr1 .BS 2
ZPPtr2 .BS 2
FCS .BS 2
hBuf .BS 1
hDev .BS 1
TimeOut .BS 1
ZS.END
.ED
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA #S.PS.F.EVENT S.PS.F
.DA #0
.DA CS.END-CS.START Code Size (without Constants)
.DA DS.END-DS.START Data Segment Size
.DA #32 Stack Size
.DA #ZS.END-ZS.START Zero Page Size
.DA 0
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.DEVOK .DA MSG.DEVOK
L.MSG.AT .DA MSG.AT
L.MSG.BUFLEN .DA MSG.BUFLEN
L.MSG.HEXDUMP .DA MSG.HEXDUMP
L.PPP.1 .DA PPP.1
.DA 0
*--------------------------------------
CS.INIT clc
rts
*--------------------------------------
CS.RUN lda #1
>SYSCALL ArgV
bcs .9
>PUSHYA
>PUSHBI O.RDWR
>PUSHBI 0 type
>PUSHWZ auxtype
>SYSCALL FOpen
bcs .99
sta hDev
>LDYA L.MSG.DEVOK
>SYSCALL PutS
>LDYAI BUFSIZE
>SYSCALL GetMem
bcs .99
>STYA ZPBufPtr
stx hBuf
bra CS.RUN.TEST
* jmp CS.RUN.LOOP
.9 >LDYA L.MSG.USAGE
>SYSCALL PutS
lda #E.SYN
sec
.99 rts
*--------------------------------------
CS.RUN.TEST
* jsr ATInit
* bcs .9
>LDYAI PPP.1.LEN
>STYA ZPBufLen
>LDYA L.PPP.1
jsr PPPFCS16
>LDYA L.PPP.1
jsr DumpBuf
>PUSHWI PPP.1.LEN
>PUSHW L.PPP.1
lda hDev
>SYSCALL FWrite
bcs .9
>SLEEP
>PUSHWI BUFSIZE
>PUSHW ZPBufPtr
lda hDev
>SYSCALL FRead
bcs .9
>STYA ZPBufLen
>LDYA ZPBufPtr
jsr DumpBuf
lda #0
sec
.9
CS.RUN.RTS rts
*--------------------------------------
CS.RUN.LOOP >SLEEP
lda hDev
>SYSCALL FEOF
bcs CS.RUN.RTS
tay
bne .1 EOF, no char
>PUSHWI BUFSIZE
>PUSHW ZPBufPtr
lda hDev
>SYSCALL FRead
bcs CS.RUN.RTS
>PUSHYA len
>PUSHW ZPBufPtr
ldy #S.PS.hStdOut
lda (pPS),y
>SYSCALL FWrite
bcs .9
.1 ldy #S.PS.hStdIn
lda (pPS),y
>SYSCALL FEOF
bcs .9
tay
bne CS.RUN.LOOP EOF = true, no char from STDIN
>PUSHWI BUFSIZE
>PUSHW ZPBufPtr
ldy #S.PS.hStdIn
lda (pPS),y
>SYSCALL FRead
bcs .9
tax
lda (ZPBufPtr)
cmp #$14 Ctrl-T
beq .9
txa
>PUSHYA len
>PUSHW ZPBufPtr
lda hDev
>SYSCALL FWrite
bcs .9
jmp CS.RUN.LOOP
.9 rts
*--------------------------------------
CS.DOEVENT lda (pEvent)
bpl .9 is it a TIMER event?
lda TimeOut
beq .9
dec TimeOut
.9 sec do not discard TIMER event
rts
*--------------------------------------
CS.QUIT lda hDev
beq .1
>SYSCALL FClose
.1 lda hBuf
beq .2
>SYSCALL FreeMem
.2 clc
rts
*--------------------------------------
ATInit lda #250
sta TimeOut
>PUSHWI MSG.AT.LEN
>PUSHW L.MSG.AT
lda hDev
>SYSCALL FWrite
bcs .9
.1 lda hDev
>SYSCALL FEOF
bcs .9
tay
beq .2
>SLEEP
dec TimeOut
bne .1
rts
.2 >PUSHWI BUFSIZE
>PUSHW ZPBufPtr
lda hDev
>SYSCALL FRead
bcs .9
>PUSHYA len
>PUSHW ZPBufPtr
ldy #S.PS.hStdOut
lda (pPS),y
bcc .1
.9 rts
*--------------------------------------
* U16 fcs = 0xFFFF;
*
* while (len--)
* {
* fcs=(fcs >> 8) ^ fcstab[(fcs ^ *cp++) & 0xff];
* }
* return (~fcs);
*--------------------------------------
PPPFCS16 >STYA ZPPtr1
lda #$ff
sta FCS
sta FCS+1
lda ZPBufLen
sec
sbc #4 minus 7E .... FCS FCS 7E
eor #$ff
sta ZPPtr2
lda ZPBufLen+1
sbc #0
eor #$ff
sta ZPPtr2+1
.1 inc ZPPtr2
bne .2
inc ZPPtr2+1
beq .8
.2 inc ZPPtr1
bne .3
inc ZPPtr1+1
.3 lda (ZPPtr1)
eor FCS
tax
lda FCS.LO,x
eor FCS+1
sta FCS
lda FCS.HI,x
sta FCS+1
bra .1
.8 lda FCS+1
eor #$ff
ldy #1
sta (ZPPtr1),y
lda FCS
eor #$ff
iny
sta (ZPPtr1),y
rts
*--------------------------------------
DumpBuf >STYA ZPPtr1
>PUSHW L.MSG.BUFLEN
>PUSHW ZPBufLen
>PUSHBI 2
>SYSCALL PrintF
bcs .9
.1 >PUSHW L.MSG.HEXDUMP
ldy #0
.2 >PUSHB (ZPPtr1),y
iny
cpy #16
bne .2
>PUSHBI 16
>SYSCALL PrintF
bcs .9
lda ZPPtr1
adc #16
sta ZPPtr1
lda ZPPtr1+1
adc #0
sta ZPPtr1+1
lda ZPBufLen
sec
sbc #16
sta ZPBufLen
lda ZPBufLen+1
sbc #0
sta ZPBufLen+1
bcc .9
ora ZPBufLen
bne .1
clc
.9 rts
*--------------------------------------
CS.END
MSG.USAGE .AZ "Usage : TERM device "
MSG.DEVOK .AZ "Openning Device..."
MSG.AT .AS "ATI0"
.HS 0D0A
MSG.AT.LEN .EQ *-MSG.AT
MSG.BUFLEN .AZ "BufLen:%H\r\n"
MSG.HEXDUMP .AZ "%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h\r\n"
*--------------------------------------
FCS.LO .DA #$0000,#$1189,#$2312,#$329b,#$4624,#$57ad,#$6536,#$74bf
.DA #$8c48,#$9dc1,#$af5a,#$bed3,#$ca6c,#$dbe5,#$e97e,#$f8f7
.DA #$1081,#$0108,#$3393,#$221a,#$56a5,#$472c,#$75b7,#$643e
.DA #$9cc9,#$8d40,#$bfdb,#$ae52,#$daed,#$cb64,#$f9ff,#$e876
.DA #$2102,#$308b,#$0210,#$1399,#$6726,#$76af,#$4434,#$55bd
.DA #$ad4a,#$bcc3,#$8e58,#$9fd1,#$eb6e,#$fae7,#$c87c,#$d9f5
.DA #$3183,#$200a,#$1291,#$0318,#$77a7,#$662e,#$54b5,#$453c
.DA #$bdcb,#$ac42,#$9ed9,#$8f50,#$fbef,#$ea66,#$d8fd,#$c974
.DA #$4204,#$538d,#$6116,#$709f,#$0420,#$15a9,#$2732,#$36bb
.DA #$ce4c,#$dfc5,#$ed5e,#$fcd7,#$8868,#$99e1,#$ab7a,#$baf3
.DA #$5285,#$430c,#$7197,#$601e,#$14a1,#$0528,#$37b3,#$263a
.DA #$decd,#$cf44,#$fddf,#$ec56,#$98e9,#$8960,#$bbfb,#$aa72
.DA #$6306,#$728f,#$4014,#$519d,#$2522,#$34ab,#$0630,#$17b9
.DA #$ef4e,#$fec7,#$cc5c,#$ddd5,#$a96a,#$b8e3,#$8a78,#$9bf1
.DA #$7387,#$620e,#$5095,#$411c,#$35a3,#$242a,#$16b1,#$0738
.DA #$ffcf,#$ee46,#$dcdd,#$cd54,#$b9eb,#$a862,#$9af9,#$8b70
.DA #$8408,#$9581,#$a71a,#$b693,#$c22c,#$d3a5,#$e13e,#$f0b7
.DA #$0840,#$19c9,#$2b52,#$3adb,#$4e64,#$5fed,#$6d76,#$7cff
.DA #$9489,#$8500,#$b79b,#$a612,#$d2ad,#$c324,#$f1bf,#$e036
.DA #$18c1,#$0948,#$3bd3,#$2a5a,#$5ee5,#$4f6c,#$7df7,#$6c7e
.DA #$a50a,#$b483,#$8618,#$9791,#$e32e,#$f2a7,#$c03c,#$d1b5
.DA #$2942,#$38cb,#$0a50,#$1bd9,#$6f66,#$7eef,#$4c74,#$5dfd
.DA #$b58b,#$a402,#$9699,#$8710,#$f3af,#$e226,#$d0bd,#$c134
.DA #$39c3,#$284a,#$1ad1,#$0b58,#$7fe7,#$6e6e,#$5cf5,#$4d7c
.DA #$c60c,#$d785,#$e51e,#$f497,#$8028,#$91a1,#$a33a,#$b2b3
.DA #$4a44,#$5bcd,#$6956,#$78df,#$0c60,#$1de9,#$2f72,#$3efb
.DA #$d68d,#$c704,#$f59f,#$e416,#$90a9,#$8120,#$b3bb,#$a232
.DA #$5ac5,#$4b4c,#$79d7,#$685e,#$1ce1,#$0d68,#$3ff3,#$2e7a
.DA #$e70e,#$f687,#$c41c,#$d595,#$a12a,#$b0a3,#$8238,#$93b1
.DA #$6b46,#$7acf,#$4854,#$59dd,#$2d62,#$3ceb,#$0e70,#$1ff9
.DA #$f78f,#$e606,#$d49d,#$c514,#$b1ab,#$a022,#$92b9,#$8330
.DA #$7bc7,#$6a4e,#$58d5,#$495c,#$3de3,#$2c6a,#$1ef1,#$0f78
*--------------------------------------
FCS.HI .DA /$0000,/$1189,/$2312,/$329b,/$4624,/$57ad,/$6536,/$74bf
.DA /$8c48,/$9dc1,/$af5a,/$bed3,/$ca6c,/$dbe5,/$e97e,/$f8f7
.DA /$1081,/$0108,/$3393,/$221a,/$56a5,/$472c,/$75b7,/$643e
.DA /$9cc9,/$8d40,/$bfdb,/$ae52,/$daed,/$cb64,/$f9ff,/$e876
.DA /$2102,/$308b,/$0210,/$1399,/$6726,/$76af,/$4434,/$55bd
.DA /$ad4a,/$bcc3,/$8e58,/$9fd1,/$eb6e,/$fae7,/$c87c,/$d9f5
.DA /$3183,/$200a,/$1291,/$0318,/$77a7,/$662e,/$54b5,/$453c
.DA /$bdcb,/$ac42,/$9ed9,/$8f50,/$fbef,/$ea66,/$d8fd,/$c974
.DA /$4204,/$538d,/$6116,/$709f,/$0420,/$15a9,/$2732,/$36bb
.DA /$ce4c,/$dfc5,/$ed5e,/$fcd7,/$8868,/$99e1,/$ab7a,/$baf3
.DA /$5285,/$430c,/$7197,/$601e,/$14a1,/$0528,/$37b3,/$263a
.DA /$decd,/$cf44,/$fddf,/$ec56,/$98e9,/$8960,/$bbfb,/$aa72
.DA /$6306,/$728f,/$4014,/$519d,/$2522,/$34ab,/$0630,/$17b9
.DA /$ef4e,/$fec7,/$cc5c,/$ddd5,/$a96a,/$b8e3,/$8a78,/$9bf1
.DA /$7387,/$620e,/$5095,/$411c,/$35a3,/$242a,/$16b1,/$0738
.DA /$ffcf,/$ee46,/$dcdd,/$cd54,/$b9eb,/$a862,/$9af9,/$8b70
.DA /$8408,/$9581,/$a71a,/$b693,/$c22c,/$d3a5,/$e13e,/$f0b7
.DA /$0840,/$19c9,/$2b52,/$3adb,/$4e64,/$5fed,/$6d76,/$7cff
.DA /$9489,/$8500,/$b79b,/$a612,/$d2ad,/$c324,/$f1bf,/$e036
.DA /$18c1,/$0948,/$3bd3,/$2a5a,/$5ee5,/$4f6c,/$7df7,/$6c7e
.DA /$a50a,/$b483,/$8618,/$9791,/$e32e,/$f2a7,/$c03c,/$d1b5
.DA /$2942,/$38cb,/$0a50,/$1bd9,/$6f66,/$7eef,/$4c74,/$5dfd
.DA /$b58b,/$a402,/$9699,/$8710,/$f3af,/$e226,/$d0bd,/$c134
.DA /$39c3,/$284a,/$1ad1,/$0b58,/$7fe7,/$6e6e,/$5cf5,/$4d7c
.DA /$c60c,/$d785,/$e51e,/$f497,/$8028,/$91a1,/$a33a,/$b2b3
.DA /$4a44,/$5bcd,/$6956,/$78df,/$0c60,/$1de9,/$2f72,/$3efb
.DA /$d68d,/$c704,/$f59f,/$e416,/$90a9,/$8120,/$b3bb,/$a232
.DA /$5ac5,/$4b4c,/$79d7,/$685e,/$1ce1,/$0d68,/$3ff3,/$2e7a
.DA /$e70e,/$f687,/$c41c,/$d595,/$a12a,/$b0a3,/$8238,/$93b1
.DA /$6b46,/$7acf,/$4854,/$59dd,/$2d62,/$3ceb,/$0e70,/$1ff9
.DA /$f78f,/$e606,/$d49d,/$c514,/$b1ab,/$a022,/$92b9,/$8330
.DA /$7bc7,/$6a4e,/$58d5,/$495c,/$3de3,/$2c6a,/$1ef1,/$0f78
*--------------------------------------
PPP.1 .HS 7E
* .HS ff.03.C0.21.01.01.00.17.02.06.00.0a.00.00.05.06
* .HS 00.2a.2b.78.07.02.08.02.0d.03.06
* .HS A5.F8
PPP.1.START .HS FF03
.HS C021 LCP
PPP.1.LCP .HS 01 Configure-Request
.HS 01 ID
.DA /PPP.1.LCP.LEN,#PPP.1.LCP.LEN
.HS 01.04.05DC MRU
.HS 02.06.000A0000 ACCM
.HS 05.06.2A2B7807 MAGIC
PPP.1.LCP.LEN .EQ *-PPP.1.LCP
.BS 2 FCS
.HS 7E
PPP.1.LEN .EQ *-PPP.1
*--------------------------------------
.DUMMY
.OR 0
DS.START
DS.END
.ED
*--------------------------------------
MAN
SAVE root/ppptest.s
ASM

View File

@ -101,8 +101,8 @@ CMD.CD.YA >PUSHYA
.12 >LDYA ZPPtr1 .12 >LDYA ZPPtr1
jsr IO.StatYA jsr IO.StatYA
bcs .19 bcs .19
cmp #S.FI.T.DIR cmp /S.STAT.MODE.DIR
beq .11 beq .11
lda #MLI.E.INVPATH lda #MLI.E.INVPATH
@ -431,7 +431,7 @@ CMD.RD lda (ZPArgVBufPtr)
jsr IO.StatArgVBufPtr jsr IO.StatArgVBufPtr
bcs .99 bcs .99
cmp #S.FI.T.DIR cmp /S.STAT.MODE.DIR
bne CMD.REN.CSYN bne CMD.REN.CSYN
>LDYA ZPArgVBufPtr >LDYA ZPArgVBufPtr

View File

@ -156,7 +156,7 @@ EXP.OP.UNARY.ESYN
EXP.OP.UNARY.D jsr IO.StatArgVBufPtr EXP.OP.UNARY.D jsr IO.StatArgVBufPtr
bcs EXP.OP.UNARY.DEF.9 bcs EXP.OP.UNARY.DEF.9
cmp #S.FI.T.DIR cmp /S.STAT.MODE.DIR
bne EXP.OP.UNARY.DEF.9 bne EXP.OP.UNARY.DEF.9
bra EXP.OP.UNARY.DEF.8 bra EXP.OP.UNARY.DEF.8
@ -167,7 +167,7 @@ EXP.OP.UNARY.E jsr IO.StatArgVBufPtr
EXP.OP.UNARY.F jsr IO.StatArgVBufPtr EXP.OP.UNARY.F jsr IO.StatArgVBufPtr
bcs EXP.OP.UNARY.DEF.9 bcs EXP.OP.UNARY.DEF.9
cmp #S.FI.T.DIR cmp /S.STAT.MODE.DIR
beq EXP.OP.UNARY.DEF.9 beq EXP.OP.UNARY.DEF.9
EXP.OP.UNARY.DEF.8 EXP.OP.UNARY.DEF.8

View File

@ -155,8 +155,9 @@ IO.StatYA >PUSHYA
>SYSCALL Stat >SYSCALL Stat
bcs .9 bcs .9
ldy #S.STAT.P.TYPE ldy #S.STAT.MODE+1
lda (ZPCLBuf),y lda (ZPCLBuf),y
and #$F0
.9 rts .9 rts
*-------------------------------------- *--------------------------------------

View File

@ -317,9 +317,10 @@ CS.RUN.CheckDir >PUSHW ZPFullPathPtr
rts rts
.1 ldy #STAT+S.STAT.P.TYPE .1 ldy #STAT+S.STAT.MODE
lda (pData),y lda (pData),y
cmp #$F and #$F0
cmp /S.STAT.MODE.DIR
bne .99 bne .99
clc clc
rts rts

View File

@ -184,9 +184,11 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
jsr CS.RUN.DEV jsr CS.RUN.DEV
bcc CS.RUN.LOOP bcc CS.RUN.LOOP
rts rts
.5 ldy #S.STAT.P.TYPE
.5 ldy #S.STAT.MODE+1
lda (ZPFileStat),y lda (ZPFileStat),y
cmp #$0F Directory ? and #$F0
cmp /S.STAT.MODE.DIR
bne .6 bne .6
jsr CS.RUN.DIR jsr CS.RUN.DIR

View File

@ -13,6 +13,9 @@ NEW
.INB inc/nic.i .INB inc/nic.i
*-------------------------------------- *--------------------------------------
INBUF.SIZE .EQ $800 INBUF.SIZE .EQ $800
*AT+CGDCONT=1,"IP","APN","0.0.0.0",0,0
*AT+CGDCONT=1,"PPP","APN","0.0.0.0",0,0
*ATD*99#1
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR ZPBIN .OR ZPBIN
@ -53,11 +56,15 @@ L.FD.DEV .DA FD.DEV
L.FD.DEV.NAME .DA FD.DEV.NAME L.FD.DEV.NAME .DA FD.DEV.NAME
L.ETCFILE .DA ETCFILE L.ETCFILE .DA ETCFILE
L.MSG.ETCFILE .DA MSG.ETCFILE L.MSG.ETCFILE .DA MSG.ETCFILE
L.MSG.BUFLEN .DA MSG.BUFLEN L.MSG.DUMPBUF .DA MSG.DUMPBUFS
.DA MSG.DUMPBUFR
L.MSG.HEXDUMP .DA MSG.HEXDUMP L.MSG.HEXDUMP .DA MSG.HEXDUMP
L.PPP.CfgReg .DA PPP.CfgReg L.MSG.STRING .DA MSG.STRING
L.PPP.LCPReq .DA PPP.LCPReq
L.PPP.IPCPReq .DA PPP.IPCPReq
L.RCV.Buf .DA RCV.Buf L.RCV.Buf .DA RCV.Buf
L.RCV.Bufp1 .DA RCV.Buf+1 L.RCV.Bufp1 .DA RCV.Buf+1
L.RCV.Bufp2 .DA RCV.Buf+2
.DA 0 End Of Reloc Table .DA 0 End Of Reloc Table
*-------------------------------------- *--------------------------------------
Dev.Detect >STYA ZPArgsPtr Dev.Detect >STYA ZPArgsPtr
@ -107,7 +114,7 @@ Dev.Detect >STYA ZPArgsPtr
clc clc
adc #$8F adc #$8F
sta DEVSLOTn08F sta DEVSLOTn08F
jsr SSC.Init jsr SSC.Init
jsr PPP.ETCFILE jsr PPP.ETCFILE
jsr PPP.Init jsr PPP.Init
@ -131,14 +138,14 @@ Dev.Detect >STYA ZPArgsPtr
>PUSHW L.FD.DEV.NAME >PUSHW L.FD.DEV.NAME
>SYSCALL MKDev >SYSCALL MKDev
bcs .9 bcs .9
lda FD.DEV.NAME+3 lda FD.DEV.NAME+3
and #$0F and #$0F
tax tax
lda #A2osX.S.NIC lda #A2osX.S.NIC
sta A2osX.S,x sta A2osX.S,x
.9 .9
Dev.Detect.RTS rts Dev.Detect.RTS rts
*-------------------------------------- *--------------------------------------
PPP.ETCFILE >PUSHW L.ETCFILE PPP.ETCFILE >PUSHW L.ETCFILE
@ -149,7 +156,7 @@ PPP.ETCFILE >PUSHW L.ETCFILE
bcs Dev.Detect.RTS bcs Dev.Detect.RTS
sta hETCFILE sta hETCFILE
>PUSHW L.MSG.ETCFILE >PUSHW L.MSG.ETCFILE
>PUSHW L.ETCFILE >PUSHW L.ETCFILE
>PUSHBI 2 >PUSHBI 2
@ -164,25 +171,30 @@ PPP.ETCFILE >PUSHW L.ETCFILE
lda RCV.Buf lda RCV.Buf
cmp #'?' cmp #'?'
bne .7 bne .7
>LDYA L.RCV.Buf >LDYA L.RCV.Buf
>SYSCALL PutS >SYSCALL PutS
>LDYA L.RCV.Bufp1 >LDYA L.RCV.Bufp1
jsr SSC.WriteYA jsr SSC.WriteYA
bcs .9 bcs .9
.2 jsr SSC.Read .2 jsr SSC.Read
bcs .9 bcs .9
tya tya
beq .2 beq .2
lda #0 lda #0
sta RCV.Buf,y sta RCV.Buf,y
>LDYA L.RCV.Buf
>SYSCALL PutS >PUSHW L.MSG.STRING
tya
>PUSHA
>PUSHW L.RCV.Bufp2
>PUSHBI 3
>SYSCALL PrintF
.7 bra .1 .7 bra .1
.8 cmp #MLI.E.EOF .8 cmp #MLI.E.EOF
@ -190,7 +202,7 @@ PPP.ETCFILE >PUSHW L.ETCFILE
lda #0 lda #0
clc clc
.9 php .9 php
pha pha
lda hETCFILE lda hETCFILE
@ -200,36 +212,53 @@ PPP.ETCFILE >PUSHW L.ETCFILE
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
PPP.Init >LDYAI PPP.CfgReg.LEN PPP.Init >LDYAI PPP.LCPReq.LEN
>STYA ZPBufLen >STYA ZPBufLen
>LDYA L.PPP.CfgReg >LDYA L.PPP.LCPReq
jsr PPPFCS16 jsr PPPFCS16
>LDYA L.PPP.CfgReg >LDYA L.PPP.LCPReq
ldx #0
jsr DumpBuf jsr DumpBuf
>LDYA L.PPP.CfgReg >LDYA L.PPP.LCPReq
ldx #PPP.CfgReg.LEN ldx #PPP.LCPReq.LEN
jsr SSC.WriteYAX jsr SSC.WriteYAX
bcs .9 bcs .9
>LDYAI PPP.IPCPReq.LEN
>STYA ZPBufLen
>LDYA L.PPP.IPCPReq
jsr PPPFCS16
>LDYA L.PPP.IPCPReq
ldx #0
jsr DumpBuf
>LDYA L.PPP.IPCPReq
ldx #PPP.IPCPReq.LEN
jsr SSC.WriteYAX
bcs .9
.1 jsr SSC.Read .1 jsr SSC.Read
bcs .9 bcs .9
tya tya
beq .1 beq .1
sty ZPBufLen sty ZPBufLen
stz ZPBufLen+1 stz ZPBufLen+1
>LDYA L.RCV.Buf >LDYA L.RCV.Buf
ldx #2
jsr DumpBuf jsr DumpBuf
sec sec
* clc * clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
SSC.Init ldx DEVSLOTn08F SSC.Init ldx DEVSLOTn08F
stz SSC.RESET-$8F,x stz SSC.RESET-$8F,x
@ -254,74 +283,102 @@ SSC.WriteYA >STYA ZPPtr1
lda #C.CR lda #C.CR
sta (ZPPtr1),y sta (ZPPtr1),y
iny iny
lda #C.LF lda #C.LF
sta (ZPPtr1),y sta (ZPPtr1),y
iny iny
sty Len sty Len
bra SSC.Write bra SSC.Write
SSC.WriteYAX >STYA ZPPtr1 SSC.WriteYAX >STYA ZPPtr1
stx Len stx Len
SSC.Write php SSC.Write php
sei sei
ldx DEVSLOTn08F ldx DEVSLOTn08F
lda SSC.STATUS-$8F,x ldy #0
.1 phy
ldy #0
.2 lda SSC.STATUS-$8F,x
bit #SSC.STATUS.nDSR true when 0 bit #SSC.STATUS.nDSR true when 0
bne .9 bne .9
ldy #0 bit #SSC.STATUS.TDRE Register Empty ?
bne .3
.1 lda SSC.STATUS-$8F,x
and #SSC.STATUS.TDRE Register Empty ? iny
beq .1 bne .2
.9 lda #MLI.E.IO
plp
sec
rts
.3 ply
lda (ZPPtr1),y lda (ZPPtr1),y
pha
and #$7F
cmp #C.XON
beq .4
cmp #C.XOFF
bne .6
.4 lda #$7D
sta SSC.DATA-$8F,x
.5 lda SSC.STATUS-$8F,x
bit #SSC.STATUS.TDRE
beq .5
pla
ora #$20
.HS F0 BEQ
.6 pla
sta SSC.DATA-$8F,x sta SSC.DATA-$8F,x
iny iny
cpy Len cpy Len
bne .1 bne .1
.2 lda SSC.STATUS-$8F,x
and #SSC.STATUS.TDRE Register Empty ?
plp plp
clc clc
rts rts
.9 plp
lda #MLI.E.IO
sec
rts
*-------------------------------------- *--------------------------------------
SSC.Read php SSC.Read php
sei sei
ldx DEVSLOTn08F ldx DEVSLOTn08F
ldy #0 ldy #0
.1 lda SSC.STATUS-$8F,x .1 phy
ldy #0
.2 lda SSC.STATUS-$8F,x
bit #SSC.STATUS.nDSR true when 0 bit #SSC.STATUS.nDSR true when 0
bne .9 bne .9
phy
ldy #0 bit #SSC.STATUS.RDRF incoming char?
.2 bit #SSC.STATUS.RDRF incoming char?
bne .3 bne .3
dey iny
bne .2 bne .2
ply ply
plp plp
clc clc
rts rts
@ -331,45 +388,56 @@ SSC.Read php
lda SSC.DATA-$8F,x lda SSC.DATA-$8F,x
sta RCV.Buf,y sta RCV.Buf,y
iny iny
bra .1 bra .1
.9 lda #MLI.E.IO .9 lda #MLI.E.IO
plp plp
sec sec
rts rts
*-------------------------------------- *--------------------------------------
DumpBuf >STYA ZPPtr1 DumpBuf >STYA ZPPtr1
>PUSHW L.MSG.BUFLEN >PUSHW L.MSG.DUMPBUF,x
>PUSHW ZPBufLen >PUSHW ZPBufLen
>PUSHBI 2 >PUSHBI 2
>SYSCALL PrintF >SYSCALL PrintF
bcs .9 bcs .9
stz ZPPtr2
stz ZPPtr2+1
.1 >PUSHW L.MSG.HEXDUMP .1 >PUSHW L.MSG.HEXDUMP
>PUSHW ZPPtr2
ldy #0 ldy #0
.2 >PUSHB (ZPPtr1),y .2 >PUSHB (ZPPtr1),y
iny iny
cpy #16 cpy #8
bne .2 bne .2
>PUSHBI 16 >PUSHBI 10
>SYSCALL PrintF >SYSCALL PrintF
bcs .9 bcs .9
lda ZPPtr1 lda ZPPtr1
adc #16 adc #8
sta ZPPtr1 sta ZPPtr1
lda ZPPtr1+1 lda ZPPtr1+1
adc #0 adc #0
sta ZPPtr1+1 sta ZPPtr1+1
lda ZPPtr2
adc #8
sta ZPPtr2
lda ZPPtr2+1
adc #0
sta ZPPtr2+1
lda ZPBufLen lda ZPBufLen
sec sec
sbc #16 sbc #8
sta ZPBufLen sta ZPBufLen
lda ZPBufLen+1 lda ZPBufLen+1
sbc #0 sbc #0
@ -383,18 +451,139 @@ DumpBuf >STYA ZPPtr1
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
PPPFCS16 >STYA ZPPtr1
lda #$ff
sta FCS
sta FCS+1
lda ZPBufLen
sec
sbc #4 minus 7E .... FCS FCS 7E
eor #$ff
sta ZPPtr2
lda ZPBufLen+1
sbc #0
eor #$ff
sta ZPPtr2+1
.1 inc ZPPtr2
bne .2
inc ZPPtr2+1
beq .8
.2 inc ZPPtr1 skip First 7E
bne .3
inc ZPPtr1+1
.3 lda (ZPPtr1)
eor FCS
tax
lda FCS.LO,x
eor FCS+1
sta FCS
lda FCS.HI,x
sta FCS+1
bra .1
.8 lda FCS+1
eor #$ff
ldy #1
sta (ZPPtr1),y
lda FCS
eor #$ff
iny
sta (ZPPtr1),y
rts
*--------------------------------------
CS.END CS.END
FCS.LO .DA #$0000,#$1189,#$2312,#$329b,#$4624,#$57ad,#$6536,#$74bf
.DA #$8c48,#$9dc1,#$af5a,#$bed3,#$ca6c,#$dbe5,#$e97e,#$f8f7
.DA #$1081,#$0108,#$3393,#$221a,#$56a5,#$472c,#$75b7,#$643e
.DA #$9cc9,#$8d40,#$bfdb,#$ae52,#$daed,#$cb64,#$f9ff,#$e876
.DA #$2102,#$308b,#$0210,#$1399,#$6726,#$76af,#$4434,#$55bd
.DA #$ad4a,#$bcc3,#$8e58,#$9fd1,#$eb6e,#$fae7,#$c87c,#$d9f5
.DA #$3183,#$200a,#$1291,#$0318,#$77a7,#$662e,#$54b5,#$453c
.DA #$bdcb,#$ac42,#$9ed9,#$8f50,#$fbef,#$ea66,#$d8fd,#$c974
.DA #$4204,#$538d,#$6116,#$709f,#$0420,#$15a9,#$2732,#$36bb
.DA #$ce4c,#$dfc5,#$ed5e,#$fcd7,#$8868,#$99e1,#$ab7a,#$baf3
.DA #$5285,#$430c,#$7197,#$601e,#$14a1,#$0528,#$37b3,#$263a
.DA #$decd,#$cf44,#$fddf,#$ec56,#$98e9,#$8960,#$bbfb,#$aa72
.DA #$6306,#$728f,#$4014,#$519d,#$2522,#$34ab,#$0630,#$17b9
.DA #$ef4e,#$fec7,#$cc5c,#$ddd5,#$a96a,#$b8e3,#$8a78,#$9bf1
.DA #$7387,#$620e,#$5095,#$411c,#$35a3,#$242a,#$16b1,#$0738
.DA #$ffcf,#$ee46,#$dcdd,#$cd54,#$b9eb,#$a862,#$9af9,#$8b70
.DA #$8408,#$9581,#$a71a,#$b693,#$c22c,#$d3a5,#$e13e,#$f0b7
.DA #$0840,#$19c9,#$2b52,#$3adb,#$4e64,#$5fed,#$6d76,#$7cff
.DA #$9489,#$8500,#$b79b,#$a612,#$d2ad,#$c324,#$f1bf,#$e036
.DA #$18c1,#$0948,#$3bd3,#$2a5a,#$5ee5,#$4f6c,#$7df7,#$6c7e
.DA #$a50a,#$b483,#$8618,#$9791,#$e32e,#$f2a7,#$c03c,#$d1b5
.DA #$2942,#$38cb,#$0a50,#$1bd9,#$6f66,#$7eef,#$4c74,#$5dfd
.DA #$b58b,#$a402,#$9699,#$8710,#$f3af,#$e226,#$d0bd,#$c134
.DA #$39c3,#$284a,#$1ad1,#$0b58,#$7fe7,#$6e6e,#$5cf5,#$4d7c
.DA #$c60c,#$d785,#$e51e,#$f497,#$8028,#$91a1,#$a33a,#$b2b3
.DA #$4a44,#$5bcd,#$6956,#$78df,#$0c60,#$1de9,#$2f72,#$3efb
.DA #$d68d,#$c704,#$f59f,#$e416,#$90a9,#$8120,#$b3bb,#$a232
.DA #$5ac5,#$4b4c,#$79d7,#$685e,#$1ce1,#$0d68,#$3ff3,#$2e7a
.DA #$e70e,#$f687,#$c41c,#$d595,#$a12a,#$b0a3,#$8238,#$93b1
.DA #$6b46,#$7acf,#$4854,#$59dd,#$2d62,#$3ceb,#$0e70,#$1ff9
.DA #$f78f,#$e606,#$d49d,#$c514,#$b1ab,#$a022,#$92b9,#$8330
.DA #$7bc7,#$6a4e,#$58d5,#$495c,#$3de3,#$2c6a,#$1ef1,#$0f78
*--------------------------------------
FCS.HI .DA /$0000,/$1189,/$2312,/$329b,/$4624,/$57ad,/$6536,/$74bf
.DA /$8c48,/$9dc1,/$af5a,/$bed3,/$ca6c,/$dbe5,/$e97e,/$f8f7
.DA /$1081,/$0108,/$3393,/$221a,/$56a5,/$472c,/$75b7,/$643e
.DA /$9cc9,/$8d40,/$bfdb,/$ae52,/$daed,/$cb64,/$f9ff,/$e876
.DA /$2102,/$308b,/$0210,/$1399,/$6726,/$76af,/$4434,/$55bd
.DA /$ad4a,/$bcc3,/$8e58,/$9fd1,/$eb6e,/$fae7,/$c87c,/$d9f5
.DA /$3183,/$200a,/$1291,/$0318,/$77a7,/$662e,/$54b5,/$453c
.DA /$bdcb,/$ac42,/$9ed9,/$8f50,/$fbef,/$ea66,/$d8fd,/$c974
.DA /$4204,/$538d,/$6116,/$709f,/$0420,/$15a9,/$2732,/$36bb
.DA /$ce4c,/$dfc5,/$ed5e,/$fcd7,/$8868,/$99e1,/$ab7a,/$baf3
.DA /$5285,/$430c,/$7197,/$601e,/$14a1,/$0528,/$37b3,/$263a
.DA /$decd,/$cf44,/$fddf,/$ec56,/$98e9,/$8960,/$bbfb,/$aa72
.DA /$6306,/$728f,/$4014,/$519d,/$2522,/$34ab,/$0630,/$17b9
.DA /$ef4e,/$fec7,/$cc5c,/$ddd5,/$a96a,/$b8e3,/$8a78,/$9bf1
.DA /$7387,/$620e,/$5095,/$411c,/$35a3,/$242a,/$16b1,/$0738
.DA /$ffcf,/$ee46,/$dcdd,/$cd54,/$b9eb,/$a862,/$9af9,/$8b70
.DA /$8408,/$9581,/$a71a,/$b693,/$c22c,/$d3a5,/$e13e,/$f0b7
.DA /$0840,/$19c9,/$2b52,/$3adb,/$4e64,/$5fed,/$6d76,/$7cff
.DA /$9489,/$8500,/$b79b,/$a612,/$d2ad,/$c324,/$f1bf,/$e036
.DA /$18c1,/$0948,/$3bd3,/$2a5a,/$5ee5,/$4f6c,/$7df7,/$6c7e
.DA /$a50a,/$b483,/$8618,/$9791,/$e32e,/$f2a7,/$c03c,/$d1b5
.DA /$2942,/$38cb,/$0a50,/$1bd9,/$6f66,/$7eef,/$4c74,/$5dfd
.DA /$b58b,/$a402,/$9699,/$8710,/$f3af,/$e226,/$d0bd,/$c134
.DA /$39c3,/$284a,/$1ad1,/$0b58,/$7fe7,/$6e6e,/$5cf5,/$4d7c
.DA /$c60c,/$d785,/$e51e,/$f497,/$8028,/$91a1,/$a33a,/$b2b3
.DA /$4a44,/$5bcd,/$6956,/$78df,/$0c60,/$1de9,/$2f72,/$3efb
.DA /$d68d,/$c704,/$f59f,/$e416,/$90a9,/$8120,/$b3bb,/$a232
.DA /$5ac5,/$4b4c,/$79d7,/$685e,/$1ce1,/$0d68,/$3ff3,/$2e7a
.DA /$e70e,/$f687,/$c41c,/$d595,/$a12a,/$b0a3,/$8238,/$93b1
.DA /$6b46,/$7acf,/$4854,/$59dd,/$2d62,/$3ceb,/$0e70,/$1ff9
.DA /$f78f,/$e606,/$d49d,/$c514,/$b1ab,/$a022,/$92b9,/$8330
.DA /$7bc7,/$6a4e,/$58d5,/$495c,/$3de3,/$2c6a,/$1ef1,/$0f78
*--------------------------------------
DEVSIG.Offset .HS 05070B0C DEVSIG.Offset .HS 05070B0C
DEVSIG.Value .HS 38180131 DEVSIG.Value .HS 38180131
DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset
MSG.DETECT .AZ "PPP Driver For Apple SSC." MSG.DETECT .AZ "PPP Driver For Apple SSC."
MSG.DETECT.OK .AZ "PPP Installed As Device : %s\r\n" MSG.DETECT.OK .AZ "PPP Installed As Device : %s\r\n"
MSG.DETECT.KO .AZ "No SSC Found." MSG.DETECT.KO .AZ "No SSC Found."
MSG.STRING .AZ "[%h]:{%s}\r\n"
ETCFILE .AZ "${ROOT}etc/ppp.conf" ETCFILE .AZ "${ROOT}etc/ppp.conf"
*-------------------------------------- *--------------------------------------
MSG.ETCFILE .AZ "Executing %s File...\r\n" MSG.ETCFILE .AZ "Executing %s File...\r\n"
MSG.BUFLEN .AZ "BufLen:%H\r\n" MSG.DUMPBUFS .AZ "Send:%H\r\n"
MSG.HEXDUMP .AZ "%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h:%h\r\n" MSG.DUMPBUFR .AZ "Recv:%H\r\n"
MSG.HEXDUMP .AZ "%H:%h %h %h %h %h %h %h %h\r\n"
*-------------------------------------- *--------------------------------------
FD.DEV .DA #S.FD.T.CDEV FD.DEV .DA #S.FD.T.CDEV
.DA #0 HANDLER .DA #0 HANDLER
@ -406,20 +595,38 @@ FD.DEV .DA #S.FD.T.CDEV
.DA 0 BUFPTR .DA 0 BUFPTR
FD.DEV.NAME .AZ "eth1" FD.DEV.NAME .AZ "eth1"
*-------------------------------------- *--------------------------------------
PPP.CfgReg .HS 7E PPP.LCPReq .HS 7E
PPP.CfgReg.START PPP.LCPReq.START
.HS FF03 .HS FF03
.HS C021 LCP .HS C021 LCP
PPP.CfgReg.LCP .HS 01 Configure-Request PPP.LCPReq.DATA .HS 01 Configure-Request
.HS 01 ID .HS 01 ID
.DA /PPP.CfgReg.LCP.LEN,#PPP.CfgReg.LCP.LEN .DA /PPP.LCPReq.DATA.LEN,#PPP.LCPReq.DATA.LEN
.HS 01.04.05DC MRU .HS 01.04 MRU
.DA /576,#576
.HS 02.06.000A0000 ACCM .HS 02.06.000A0000 ACCM
.HS 05.06.55334466 MAGIC .HS 05.06.002A2B78 MAGIC
PPP.CfgReg.LCP.LEN .EQ *-PPP.CfgReg.LCP .HS 07.02
.HS 08.02
PPP.LCPReq.DATA.LEN .EQ *-PPP.LCPReq.DATA
* .HS 0000 PADDING
.BS 2 FCS .BS 2 FCS
.HS 7E .HS 7E
PPP.CfgReg.LEN .EQ *-PPP.CfgReg PPP.LCPReq.LEN .EQ *-PPP.LCPReq
*--------------------------------------
PPP.IPCPReq .HS 7E
PPP.IPCPReq.START
.HS FF03
.HS 8021 IPCP
PPP.IPCPReq.DATA .HS 01 Configure-Request
.HS 01 ID
.DA /PPP.IPCPReq.DATA.LEN,#PPP.IPCPReq.DATA.LEN
.HS 03.06.00.00.00.00 IP Address
PPP.IPCPReq.DATA.LEN .EQ *-PPP.IPCPReq.DATA
* .HS 0000 PADDING
.BS 2 FCS
.HS 7E
PPP.IPCPReq.LEN .EQ *-PPP.IPCPReq
*-------------------------------------- *--------------------------------------
RCV.Buf .BS 256 RCV.Buf .BS 256
*-------------------------------------- *--------------------------------------
@ -564,7 +771,7 @@ CLOSE php
lda #S.DIB.S.OPENED lda #S.DIB.S.OPENED
trb DIB+S.DIB.S trb DIB+S.DIB.S
lda hINBUF lda hINBUF
>SYSCALL2 FreeMem >SYSCALL2 FreeMem
@ -767,125 +974,7 @@ IRQ.8 clc
IRQ.9 sec IRQ.9 sec
rts rts
*-------------------------------------- *--------------------------------------
PPPFCS16 >STYA ZPPtr1
lda #$ff
sta FCS
sta FCS+1
lda ZPBufLen
sec
sbc #4 minus 7E .... FCS FCS 7E
eor #$ff
sta ZPPtr2
lda ZPBufLen+1
sbc #0
eor #$ff
sta ZPPtr2+1
.1 inc ZPPtr2
bne .2
inc ZPPtr2+1
beq .8
.2 inc ZPPtr1
bne .3
inc ZPPtr1+1
.3 lda (ZPPtr1)
eor FCS
tax
lda FCS.LO,x
eor FCS+1
sta FCS
lda FCS.HI,x
sta FCS+1
bra .1
.8 lda FCS+1
eor #$ff
ldy #1
sta (ZPPtr1),y
lda FCS
eor #$ff
iny
sta (ZPPtr1),y
rts
*--------------------------------------
DRV.CS.END DRV.CS.END
FCS.LO .DA #$0000,#$1189,#$2312,#$329b,#$4624,#$57ad,#$6536,#$74bf
.DA #$8c48,#$9dc1,#$af5a,#$bed3,#$ca6c,#$dbe5,#$e97e,#$f8f7
.DA #$1081,#$0108,#$3393,#$221a,#$56a5,#$472c,#$75b7,#$643e
.DA #$9cc9,#$8d40,#$bfdb,#$ae52,#$daed,#$cb64,#$f9ff,#$e876
.DA #$2102,#$308b,#$0210,#$1399,#$6726,#$76af,#$4434,#$55bd
.DA #$ad4a,#$bcc3,#$8e58,#$9fd1,#$eb6e,#$fae7,#$c87c,#$d9f5
.DA #$3183,#$200a,#$1291,#$0318,#$77a7,#$662e,#$54b5,#$453c
.DA #$bdcb,#$ac42,#$9ed9,#$8f50,#$fbef,#$ea66,#$d8fd,#$c974
.DA #$4204,#$538d,#$6116,#$709f,#$0420,#$15a9,#$2732,#$36bb
.DA #$ce4c,#$dfc5,#$ed5e,#$fcd7,#$8868,#$99e1,#$ab7a,#$baf3
.DA #$5285,#$430c,#$7197,#$601e,#$14a1,#$0528,#$37b3,#$263a
.DA #$decd,#$cf44,#$fddf,#$ec56,#$98e9,#$8960,#$bbfb,#$aa72
.DA #$6306,#$728f,#$4014,#$519d,#$2522,#$34ab,#$0630,#$17b9
.DA #$ef4e,#$fec7,#$cc5c,#$ddd5,#$a96a,#$b8e3,#$8a78,#$9bf1
.DA #$7387,#$620e,#$5095,#$411c,#$35a3,#$242a,#$16b1,#$0738
.DA #$ffcf,#$ee46,#$dcdd,#$cd54,#$b9eb,#$a862,#$9af9,#$8b70
.DA #$8408,#$9581,#$a71a,#$b693,#$c22c,#$d3a5,#$e13e,#$f0b7
.DA #$0840,#$19c9,#$2b52,#$3adb,#$4e64,#$5fed,#$6d76,#$7cff
.DA #$9489,#$8500,#$b79b,#$a612,#$d2ad,#$c324,#$f1bf,#$e036
.DA #$18c1,#$0948,#$3bd3,#$2a5a,#$5ee5,#$4f6c,#$7df7,#$6c7e
.DA #$a50a,#$b483,#$8618,#$9791,#$e32e,#$f2a7,#$c03c,#$d1b5
.DA #$2942,#$38cb,#$0a50,#$1bd9,#$6f66,#$7eef,#$4c74,#$5dfd
.DA #$b58b,#$a402,#$9699,#$8710,#$f3af,#$e226,#$d0bd,#$c134
.DA #$39c3,#$284a,#$1ad1,#$0b58,#$7fe7,#$6e6e,#$5cf5,#$4d7c
.DA #$c60c,#$d785,#$e51e,#$f497,#$8028,#$91a1,#$a33a,#$b2b3
.DA #$4a44,#$5bcd,#$6956,#$78df,#$0c60,#$1de9,#$2f72,#$3efb
.DA #$d68d,#$c704,#$f59f,#$e416,#$90a9,#$8120,#$b3bb,#$a232
.DA #$5ac5,#$4b4c,#$79d7,#$685e,#$1ce1,#$0d68,#$3ff3,#$2e7a
.DA #$e70e,#$f687,#$c41c,#$d595,#$a12a,#$b0a3,#$8238,#$93b1
.DA #$6b46,#$7acf,#$4854,#$59dd,#$2d62,#$3ceb,#$0e70,#$1ff9
.DA #$f78f,#$e606,#$d49d,#$c514,#$b1ab,#$a022,#$92b9,#$8330
.DA #$7bc7,#$6a4e,#$58d5,#$495c,#$3de3,#$2c6a,#$1ef1,#$0f78
*--------------------------------------
FCS.HI .DA /$0000,/$1189,/$2312,/$329b,/$4624,/$57ad,/$6536,/$74bf
.DA /$8c48,/$9dc1,/$af5a,/$bed3,/$ca6c,/$dbe5,/$e97e,/$f8f7
.DA /$1081,/$0108,/$3393,/$221a,/$56a5,/$472c,/$75b7,/$643e
.DA /$9cc9,/$8d40,/$bfdb,/$ae52,/$daed,/$cb64,/$f9ff,/$e876
.DA /$2102,/$308b,/$0210,/$1399,/$6726,/$76af,/$4434,/$55bd
.DA /$ad4a,/$bcc3,/$8e58,/$9fd1,/$eb6e,/$fae7,/$c87c,/$d9f5
.DA /$3183,/$200a,/$1291,/$0318,/$77a7,/$662e,/$54b5,/$453c
.DA /$bdcb,/$ac42,/$9ed9,/$8f50,/$fbef,/$ea66,/$d8fd,/$c974
.DA /$4204,/$538d,/$6116,/$709f,/$0420,/$15a9,/$2732,/$36bb
.DA /$ce4c,/$dfc5,/$ed5e,/$fcd7,/$8868,/$99e1,/$ab7a,/$baf3
.DA /$5285,/$430c,/$7197,/$601e,/$14a1,/$0528,/$37b3,/$263a
.DA /$decd,/$cf44,/$fddf,/$ec56,/$98e9,/$8960,/$bbfb,/$aa72
.DA /$6306,/$728f,/$4014,/$519d,/$2522,/$34ab,/$0630,/$17b9
.DA /$ef4e,/$fec7,/$cc5c,/$ddd5,/$a96a,/$b8e3,/$8a78,/$9bf1
.DA /$7387,/$620e,/$5095,/$411c,/$35a3,/$242a,/$16b1,/$0738
.DA /$ffcf,/$ee46,/$dcdd,/$cd54,/$b9eb,/$a862,/$9af9,/$8b70
.DA /$8408,/$9581,/$a71a,/$b693,/$c22c,/$d3a5,/$e13e,/$f0b7
.DA /$0840,/$19c9,/$2b52,/$3adb,/$4e64,/$5fed,/$6d76,/$7cff
.DA /$9489,/$8500,/$b79b,/$a612,/$d2ad,/$c324,/$f1bf,/$e036
.DA /$18c1,/$0948,/$3bd3,/$2a5a,/$5ee5,/$4f6c,/$7df7,/$6c7e
.DA /$a50a,/$b483,/$8618,/$9791,/$e32e,/$f2a7,/$c03c,/$d1b5
.DA /$2942,/$38cb,/$0a50,/$1bd9,/$6f66,/$7eef,/$4c74,/$5dfd
.DA /$b58b,/$a402,/$9699,/$8710,/$f3af,/$e226,/$d0bd,/$c134
.DA /$39c3,/$284a,/$1ad1,/$0b58,/$7fe7,/$6e6e,/$5cf5,/$4d7c
.DA /$c60c,/$d785,/$e51e,/$f497,/$8028,/$91a1,/$a33a,/$b2b3
.DA /$4a44,/$5bcd,/$6956,/$78df,/$0c60,/$1de9,/$2f72,/$3efb
.DA /$d68d,/$c704,/$f59f,/$e416,/$90a9,/$8120,/$b3bb,/$a232
.DA /$5ac5,/$4b4c,/$79d7,/$685e,/$1ce1,/$0d68,/$3ff3,/$2e7a
.DA /$e70e,/$f687,/$c41c,/$d595,/$a12a,/$b0a3,/$8238,/$93b1
.DA /$6b46,/$7acf,/$4854,/$59dd,/$2d62,/$3ceb,/$0e70,/$1ff9
.DA /$f78f,/$e606,/$d49d,/$c514,/$b1ab,/$a022,/$92b9,/$8330
.DA /$7bc7,/$6a4e,/$58d5,/$495c,/$3de3,/$2c6a,/$1ef1,/$0f78
*-------------------------------------- *--------------------------------------
DEVSLOTn08F .BS 1 DEVSLOTn08F .BS 1
hINBUF .BS 1 hINBUF .BS 1

View File

@ -162,6 +162,8 @@ C.FF .EQ 12
C.CR .EQ 13 C.CR .EQ 13
C.SO .EQ 14 C.SO .EQ 14
C.SI .EQ 15 C.SI .EQ 15
C.XON .EQ 17
C.XOFF .EQ 19
C.FS .EQ 21 C.FS .EQ 21
C.ESC .EQ 27 C.ESC .EQ 27
C.SPACE .EQ 32 C.SPACE .EQ 32

View File

@ -24,40 +24,41 @@ D2Recalibrate >PULLB DrvSlt
jsr CheckDiskII jsr CheckDiskII
bcs .9 bcs .9
ldx Slotn0 lda #168
ldy #168
ldy Slotn0
.1 lda IO.D2.Ph0Off,x lda IO.D2.Ph0On,y
lda #IO.D2.SeekTimeR lda #IO.D2.SeekTimeR
jsr D2.Wait100usecA jsr D2.Wait100usecA
dey .1 dec
dey dec
tya pha
and #6 and #6
ora Slotn0 ora Slotn0
tax phy
lda IO.D2.Ph0On,x plx
tay
lda IO.D2.Ph0On,y
lda #IO.D2.SeekTimeR lda #IO.D2.SeekTimeR
jsr D2.Wait100usecA jsr D2.Wait100usecA
tya
bne .1
ldy #20
.2 jsr D2.Wait25600usec
dey
bne .2
lda IO.D2.Ph0Off,x lda IO.D2.Ph0Off,x
lda #IO.D2.SeekTimeR
jsr D2.Wait100usecA
pla
bne .1
jsr D2.Wait25600usec jsr D2.Wait25600usec
lda IO.D2.Ph0Off,y
clc clc
.9 rts .9 rts
*/-------------------------------------- */--------------------------------------
@ -75,7 +76,7 @@ D2MoveHead >PULLB MoveTo
clc clc
.9 rts .9 rts
D2MoveHead.SEI lda MoveFrom D2MoveHead.SEI lda MoveFrom
tay tay
and #6 and #6
@ -121,8 +122,15 @@ D2MoveHead.SEI lda MoveFrom
ora Slotn0 ora Slotn0
tay tay
lda Slotn0
ora #IO.D2.RData
sta .4+1
sta .5+1
sta IO.D2.Ph0On,x sta IO.D2.Ph0On,x
.4 lda IO.D2.RData SELF MODIFIED
sta IO.D2.Ph0On,y sta IO.D2.Ph0On,y
.5 lda IO.D2.RData SELF MODIFIED
lda #IO.D2.SeekTimeF lda #IO.D2.SeekTimeF
jsr D2.Wait100usecA jsr D2.Wait100usecA

File diff suppressed because it is too large Load Diff

View File

@ -129,8 +129,8 @@ L59BD lda bloknml
* motor should be up to speed, * motor should be up to speed,
* if it looks stopped then the drive is not present * if it looks stopped then the drive is not present
jsr XRW.CheckMotorOn is drive present ? * jsr XRW.CheckMotorOn is drive present ?
beq XRW.E.ND * beq XRW.E.ND
*-------------------------------------- *--------------------------------------
L538E lda A4L get command # L538E lda A4L get command #
bne .1 bne .1
@ -215,7 +215,12 @@ XRW.TrackSelect lda #2
jsr XRW.Seek Seek from Track 41 -> 0 jsr XRW.Seek Seek from Track 41 -> 0
bra .1 bra .1
.4 cmp XRW.ReqTrack .4 ldy XRW.UnitIndex (4)
lda XRW.AddrField.V (4)
sta XRW.D2VolNum-1,y (4)
lda XRW.AddrField.T (4)
sta XRW.D2Trk-1,y (4)
cmp XRW.ReqTrack
beq .8 beq .8
lda XRW.BadSeek lda XRW.BadSeek
@ -227,16 +232,16 @@ XRW.TrackSelect lda #2
.5 lda XRW.SeekTime .5 lda XRW.SeekTime
bmi .6 seektime already > 128 bmi .6 seektime already > 128
* clc clc
* adc #IO.D2.SeekTimeI adc #IO.D2.SeekTimeI
* sta XRW.SeekTime sta XRW.SeekTime
* sta XRW.D2SeekTime-1,y sta XRW.D2SeekTime-1,y
.6 lda XRW.ReqTrack .6 lda XRW.ReqTrack
jsr XRW.Seek jsr XRW.Seek
bra .3 bra .3
.8 clc .8 clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
@ -297,20 +302,12 @@ XRW.ReadAddr ldy #$FC
tay if final checksum non-zero, tay if final checksum non-zero,
bne .99 (2) then error. bne .99 (2) then error.
ldy XRW.UnitIndex (4)
.9 lda IO.D2.RData,x (4) .9 lda IO.D2.RData,x (4)
bpl .9 (2) bpl .9 (2)
eor #$DE (2) eor #$DE (2)
bne .99 (2) bne .99 (2)
lda XRW.AddrField.V (4)
sta XRW.D2VolNum-1,y (4)
lda XRW.AddrField.T (4)
sta XRW.D2Trk-1,y (4)
ldy XRW.AddrField.S (4)
clc (2) clc (2)
rts (6) rts (6)
@ -376,12 +373,12 @@ XRW.Seek ldx XRW.UnitIndex
.4 lda XRW.SeekTime .4 lda XRW.SeekTime
jsr XRW.Wait100usecA jsr XRW.Wait100usecA
lda XRW.CurrentQTrack lda XRW.CurrentQTrack
cmp XRW.TargetQTrack cmp XRW.TargetQTrack
bne .1 bne .1
.8 jsr XRW.Wait25600usec jsr XRW.Wait25600usec
XRW.SEEKOFF sta IO.D2.Ph0Off,x XRW.SEEKOFF sta IO.D2.Ph0Off,x
sta IO.D2.Ph0Off,y sta IO.D2.Ph0Off,y
@ -394,22 +391,23 @@ XRW.SEEK2QT pha
and #6 and #6
ora A2L ora A2L
tax tax
pla pla
inc inc
XRW.SEEK2QT2 and #6 XRW.SEEK2QT2 and #6
ora A2L ora A2L
tay tay
lda A2L lda A2L
ora #IO.D2.RData ora #IO.D2.RData
sta .1+1 sta .1+1
sta .2+1 sta .2+1
sta IO.D2.Ph0On,x sta IO.D2.Ph0On,x
.1 lda IO.D2.RData SELF MODIFIED .1 lda IO.D2.RData SELF MODIFIED
sta IO.D2.Ph0On,y sta IO.D2.Ph0On,y
.2 lda IO.D2.RData SELF MODIFIED .2 lda IO.D2.RData SELF MODIFIED
rts rts
*-------------------------------------- *--------------------------------------
XRW.Trk2Qtrk asl x2 XRW.Trk2Qtrk asl x2
@ -562,18 +560,19 @@ XRW.SectorIO bit XRW.bWrite
.2 jsr XRW.ReadAddr .2 jsr XRW.ReadAddr
bcs .3 (2) bcs .3 (2)
cpy XRW.ReqSector (4) lda XRW.AddrField.S (4)
cmp XRW.ReqSector (4)
bne .3 (2) bne .3 (2)
bit XRW.bWrite (4) bit XRW.bWrite (4)
bmi XRW.Write (3) bmi XRW.Write (3)
jmp XRW.Read jmp XRW.Read
.3 inc XRW.RetryCnt .3 inc XRW.RetryCnt
bpl .2 bpl .2
sec sec
.9 rts .9 rts
@ -728,7 +727,7 @@ wrefd5 ldx #$60 (2) restore slot. warning: modified by prenib
bmi .2 (3) bmi .2 (3)
.2 nop (2) .2 nop (2)
lda #$FF (2) lda #$FF (2)
jsr wnibl (6+9,6) write turn off byte. jsr wnibl (6+9,6) write turn off byte.
@ -955,7 +954,7 @@ XRW.CheckMotorOnX
.9 rts Z if motor OFF .9 rts Z if motor OFF
*-------------------------------------- *--------------------------------------
XRW.DEBUG sta CLRPAGE2 XRW.DEBUG sta CLRPAGE2
lda #"R" lda #"R"
bit XRW.bWrite bit XRW.bWrite
bpl .1 bpl .1
@ -965,7 +964,7 @@ XRW.DEBUG sta CLRPAGE2
.1 sta $723 .1 sta $723
ldx #$24 ldx #$24
lda XRW.ReqTrack lda XRW.ReqTrack
jsr .6 jsr .6
@ -977,6 +976,7 @@ XRW.DEBUG sta CLRPAGE2
lsr lsr
lsr lsr
jsr .7 jsr .7
pla pla
.7 and #$0F .7 and #$0F

View File

@ -149,8 +149,9 @@ InitSrcDirYA >PUSHYA
bcs .1 File/DIR does not exists, go extract pattern bcs .1 File/DIR does not exists, go extract pattern
.DO X.ENTER.SUBDIR=1 .DO X.ENTER.SUBDIR=1
>LDA.G STAT+S.STAT.P.TYPE >LDA.G STAT+S.STAT.MODE+1
cmp #S.FI.T.DIR and #$F0
cmp /S.STAT.MODE.DIR
bne .4 TYPE not a DIR, extract.... bne .4 TYPE not a DIR, extract....
bra .5 TYPE=DIR, do not extract pattern bra .5 TYPE=DIR, do not extract pattern
.ELSE .ELSE
@ -262,8 +263,9 @@ InitDstDirYA >PUSHYA
>SYSCALL Stat >SYSCALL Stat
bcs .1 File/DIR does not exists, go extract DstFileName bcs .1 File/DIR does not exists, go extract DstFileName
>LDA.G STAT+S.STAT.P.TYPE >LDA.G STAT+S.STAT.MODE+1
cmp #S.FI.T.DIR and #$F0
cmp /S.STAT.MODE.DIR
beq .5 Dst is a directory...no destfilename beq .5 Dst is a directory...no destfilename
.1 jsr GetPtr1Len Search end of string..... .1 jsr GetPtr1Len Search end of string.....

View File

@ -300,7 +300,9 @@ CORE.Dispatch ldx #1 skip PS0
.2 lda (pEvent) Empty event, select next .2 lda (pEvent) Empty event, select next
beq .3 beq .3
jsr CORE.PSExec2
ldx #S.PS.S.DOEVENT
jsr CORE.PSExecX
dec IRQ.InKernel dec IRQ.InKernel
bcs .3 not for this PS, try next event in list bcs .3 not for this PS, try next event in list
@ -311,6 +313,7 @@ CORE.Dispatch ldx #1 skip PS0
.3 dec CORE.EvtIndex .3 dec CORE.EvtIndex
beq .4 all EVT submitted to this PS, try other PS beq .4 all EVT submitted to this PS, try other PS
lda pEvent try next EVT to this PS lda pEvent try next EVT to this PS
clc clc
adc #S.EVT adc #S.EVT
@ -412,11 +415,11 @@ CORE.PSExec lda (pPS)
bit #S.PS.F.SLEEP bit #S.PS.F.SLEEP
bne CORE.PSResume bne CORE.PSResume
CORE.PSExec2 ldy #S.PS.S ldy #S.PS.S
lda (pPS),y lda (pPS),y
tax tax
lda pCode+1
CORE.PSExecX lda pCode+1
pha pha
lda pCode lda pCode
pha pha

View File

@ -73,6 +73,7 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
>LDYAI K.Buf256 >LDYAI K.Buf256
>STYA K.MLI.PARAMS+2 >STYA K.MLI.PARAMS+2
>STYA ZPPtr2 >STYA ZPPtr2
>MLICALL MLIONLINE >MLICALL MLIONLINE
bcs K.ReadDir.RTS bcs K.ReadDir.RTS

View File

@ -22,13 +22,13 @@ VSDRIVE.Init >LDYAI VSDRIVE.MSG0
jsr VSDRIVE.Check jsr VSDRIVE.Check
bcs .90 bcs .90
.1 lda #$C1 Self Modified .1 lda #$C1 Self Modified
.2 jsr SSC.Detect .2 jsr SSC.Detect
bcs .99 bcs .99
stx DRV+2 DRV.Slotn0 stx DRV+1 DRV.Slotn0
sta .1+1 Slot Cn sta .1+1 Slot Cn
and #$0F and #$0F
@ -87,7 +87,7 @@ VSDRIVE.Check ldx #REGULAR.SIZE
bne .1 bne .1
clc clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
SSC.Detect stz TmpPtr1 SSC.Detect stz TmpPtr1
@ -110,7 +110,7 @@ SSC.Detect stz TmpPtr1
clc clc
adc #$8F adc #$8F
tax X=SlotN0 tax X=SlotN0
stz SSC.RESET-$8F,x stz SSC.RESET-$8F,x
jsr VSDRIVE.Wait jsr VSDRIVE.Wait
lda #SSC.CTL.CLKINT+SSC.CTL.B115200+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP lda #SSC.CTL.CLKINT+SSC.CTL.B115200+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP
sta SSC.CTL-$8F,x sta SSC.CTL-$8F,x
@ -127,13 +127,13 @@ SSC.Detect stz TmpPtr1
.3 inc TmpPtr1+1 no match, try next slot.... .3 inc TmpPtr1+1 no match, try next slot....
lda TmpPtr1+1 lda TmpPtr1+1
cmp #$C8 cmp #$C8
bne .1 bne .1
.9 sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------
VSDRIVE.Ping ldx DRV+2 DRV.Slotn0 VSDRIVE.Ping ldx DRV+1 DRV.Slotn0
stz VSDRIVE.Ping.TO stz VSDRIVE.Ping.TO
stz VSDRIVE.Ping.TO+1 stz VSDRIVE.Ping.TO+1
@ -145,7 +145,7 @@ VSDRIVE.Ping ldx DRV+2 DRV.Slotn0
.1 lda SSC.STATUS-$8F,x .1 lda SSC.STATUS-$8F,x
and #SSC.STATUS.TDRE Ready for transmit? and #SSC.STATUS.TDRE Ready for transmit?
bne .20 bne .20
jsr VSDRIVE.IncTimer Wait....... jsr VSDRIVE.IncTimer Wait.......
bne .1 bne .1
@ -224,12 +224,12 @@ VSDRIVE.Wait lda #0
bne .1 bne .1
rts rts
*-------------------------------------- *--------------------------------------
VSDRIVE.CMDS .HS C6.00.00.03 VSDRIVE.CMDS .HS C6.00.00.03
.DA #ADT.CMD.VSD .DA #ADT.CMD.VSD
* C6=C5 eor 03 eor 00 eor 00 * C6=C5 eor 03 eor 00 eor 00
VSDRIVE.Ping.TO .BS 2 VSDRIVE.Ping.TO .BS 2
VSDRIVE.Ping.BC .BS 2 VSDRIVE.Ping.BC .BS 2
*-------------------------------------- *--------------------------------------
* Find 2 free slots in DEVPTRS (D1 & D2) * Find 2 free slots in DEVPTRS (D1 & D2)
*-------------------------------------- *--------------------------------------
@ -336,9 +336,9 @@ PATCH.SIZE .EQ *-PATCH
* OP = 4 : Write drv2 * OP = 4 : Write drv2
* OP = 5 : Read drv2 * OP = 5 : Read drv2
* CMD = $C5+OP+BLKLO+BLKHI+CHKSUM * CMD = $C5+OP+BLKLO+BLKHI+CHKSUM
* DO NOT trash DRV.COMMAND...DRV.BLKNUM as ProDOS * DO NOT trash DRV.COMMAND...DRV.BLKNUM as ProDOS
* reuses them after Block operation * reuses them after Block operation
* A1,A2 are used by Disk II Driver, * A1,A2 are used by Disk II Driver,
* so we use it safely as Tmp Ptr * so we use it safely as Tmp Ptr
*-------------------------------------- *--------------------------------------
DRV.A1L .EQ $3C DRV.A1L .EQ $3C
@ -347,14 +347,12 @@ DRV.A2L .EQ $3E
DRV.A2H .EQ $3F DRV.A2H .EQ $3F
DRV.COMMAND .EQ $42 DRV.COMMAND .EQ $42
DRV.UNITNUM .EQ $43 DRV.UNITNUM .EQ $43
DRV.BUFF .EQ $44 DRV.BUFF .EQ $44
DRV.BLKNUM .EQ $46 DRV.BLKNUM .EQ $46
*-------------------------------------- *--------------------------------------
DRV .PH $D001 Main LC Bnk 2 $D001->$DFFF DRV .PH $D001 Main LC Bnk 2 $D001->$DFFF
DRV.START cld DRV.START ldx #$ff Self Modified
ldx #$ff Self Modified
lda DRV.COMMAND S=0,R=1,W=2,F=3 lda DRV.COMMAND S=0,R=1,W=2,F=3
bne .1 bne .1
@ -365,14 +363,17 @@ DRV.START cld
clc clc
rts rts
.9 lda #MLI.E.IO
* sec
rts
.1 cmp #3 .1 cmp #3
beq .8 Format .... beq .8 Format ....
bcs .9
* bcs DRV.DO.CMD.ERR more....IO error
ora #2 W=2,R=3 ora #2 W=2,R=3
ldy DRV.UNITNUM ldy DRV.UNITNUM
bpl .2 bpl .2
adc #2 CC from bcs adc #2 CC from bcs
@ -387,7 +388,12 @@ DRV.START cld
lda DRV.BLKNUM+1 lda DRV.BLKNUM+1
sta DRV.CmdBuf.BlkH sta DRV.CmdBuf.BlkH
*--------------------------------------
* send CMD+CS * send CMD+CS
*--------------------------------------
php
sei
ldy #4 Send 5 bytes including Sum ldy #4 Send 5 bytes including Sum
.3 lda DRV.CmdBuf.Sum,y .3 lda DRV.CmdBuf.Sum,y
@ -451,12 +457,13 @@ DRV.DO.CMD.R ldy #3 Read Back and check 4 bytes
jsr DRV.SSCGet jsr DRV.SSCGet
eor DRV.CmdBuf.Sum eor DRV.CmdBuf.Sum
bne DRV.DO.CMD.ERR bne DRV.DO.CMD.ERR
plp
clc
rts A=0,CC from bcc .4 rts A=0,CC from bcc .4
*-------------------------------------- *--------------------------------------
DRV.DO.CMD.ERR1 pla DRV.DO.CMD.ERR plp
pla lda #MLI.E.IO
DRV.DO.CMD.ERR lda #MLI.E.IO
sec sec
rts rts
*-------------------------------------- *--------------------------------------
@ -501,23 +508,22 @@ DRV.DO.CMD.W lda #$B1 lda (),y
dey dey
bpl .3 bpl .3
plp
clc
rts rts
*-------------------------------------- *--------------------------------------
DRV.SSCSend sta .2+1 DRV.SSCSend pha
.1 lda SSC.STATUS-$8F,x .1 lda SSC.STATUS-$8F,x
* bit #SSC.STATUS.DCD+SSC.STATUS.DSR
* beq DRV.DO.CMD.ERR1
and #SSC.STATUS.TDRE Outgoing char? and #SSC.STATUS.TDRE Outgoing char?
beq .1 beq .1
.2 lda #$ff pla
sta SSC.DATA-$8F,x sta SSC.DATA-$8F,x
rts rts
*-------------------------------------- *--------------------------------------
DRV.SSCGet lda SSC.STATUS-$8F,x DRV.SSCGet lda SSC.STATUS-$8F,x
* bit #SSC.STATUS.DCD+SSC.STATUS.DSR
* beq DRV.DO.CMD.ERR1
and #SSC.STATUS.RDRF incoming char? and #SSC.STATUS.RDRF incoming char?
beq DRV.SSCGet beq DRV.SSCGet
@ -527,9 +533,9 @@ DRV.SSCGet lda SSC.STATUS-$8F,x
DRV.READWRITE bit RRAMWRAMBNK1 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.Sum .BS 1 Reverse order for dey
DRV.CmdBuf.BlkH .BS 1 DRV.CmdBuf.BlkH .BS 1
DRV.CmdBuf.BlkL .BS 1 DRV.CmdBuf.BlkL .BS 1
DRV.CmdBuf.Cmd .BS 1 DRV.CmdBuf.Cmd .BS 1