mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94+
This commit is contained in:
parent
abe684f04c
commit
1e86624d74
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -330,16 +330,6 @@ CS.RUN.LL.DISKII
|
|||
jsr CS.RUN.Wait
|
||||
bcs CS.RUN.LL.RTS
|
||||
|
||||
>LDYAI 4096
|
||||
>SYSCALL GetMem
|
||||
bcs CS.RUN.LL.RTS
|
||||
|
||||
stx hTrackBuf
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldx #16
|
||||
jsr CS.RUN.ZeroPtr1 16 sectors filled with 0, give some time to spin up
|
||||
|
||||
stz CurTrack
|
||||
stz CurQTrack
|
||||
|
||||
|
@ -361,7 +351,7 @@ CS.RUN.LL.DISKII
|
|||
>PUSHB DSSS0000
|
||||
>PUSHB VolNum
|
||||
>PUSHB CurTrack
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHWI 0 Empty track
|
||||
>LIBCALL hLIBBLKDEV,LIBBLKDEV.D2TrkWrite16s
|
||||
bcs .9
|
||||
|
||||
|
@ -401,17 +391,18 @@ CS.RUN.LL.DISKII
|
|||
jsr CS.RUN.LL.DISKII.V
|
||||
bcs .99
|
||||
|
||||
jsr CS.RUN.MotorOn
|
||||
* jsr CS.RUN.MotorOn
|
||||
|
||||
lda #5
|
||||
jsr CS.RUN.Wait
|
||||
* lda #10
|
||||
* jsr CS.RUN.Wait
|
||||
|
||||
.80
|
||||
>PUSHB DSSS0000
|
||||
>LIBCALL hLIBBLKDEV,LIBBLKDEV.D2Recalibrate
|
||||
* >PUSHB DSSS0000
|
||||
* >LIBCALL hLIBBLKDEV,LIBBLKDEV.D2Recalibrate
|
||||
|
||||
* lda #10
|
||||
* jsr CS.RUN.Wait
|
||||
|
||||
lda #5
|
||||
jsr CS.RUN.Wait
|
||||
clc
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
|
|
543
BIN/IRC.S.txt
543
BIN/IRC.S.txt
|
@ -11,7 +11,7 @@ NEW
|
|||
.INB inc/eth.i
|
||||
.INB inc/libtcpip.i
|
||||
*--------------------------------------
|
||||
TIMEOUT.MAX .EQ 200 20 sec.
|
||||
TIMEOUT.MAX .EQ 250 25 sec.
|
||||
MSGSIZE .EQ 1024
|
||||
TEXTMAX .EQ 240
|
||||
*--------------------------------------
|
||||
|
@ -23,22 +23,21 @@ ZS.START
|
|||
ZPPtr1 .BS 2
|
||||
|
||||
hSocket .BS 1
|
||||
hFile .BS 1
|
||||
|
||||
hLineBuf .BS 1
|
||||
ZPLineBufPtr .BS 2
|
||||
|
||||
TextPtr .BS 1
|
||||
TextLen .BS 1
|
||||
hText .BS 1
|
||||
ZPTextPtr .BS 2
|
||||
hText .BS 1
|
||||
|
||||
bEscMode .BS 1
|
||||
|
||||
TimeOut .BS 1
|
||||
|
||||
bJoin .BS 1
|
||||
|
||||
hMsgBuf .BS 1
|
||||
MsgLen .BS 1
|
||||
ZPMsgPtr .BS 2
|
||||
|
||||
ZPMsgPfxPtr .BS 2
|
||||
|
@ -46,8 +45,14 @@ ZPMsgCmdPtr .BS 2
|
|||
ZPMsgArgPtr .BS 2
|
||||
ZPMsgExtPtr .BS 2
|
||||
|
||||
ZS.END
|
||||
.ED
|
||||
hReqBuf .BS 1
|
||||
ReqPtr .BS 1
|
||||
ReqLen .BS 1
|
||||
hRespBuf .BS 1
|
||||
ZPReqPtr .BS 2
|
||||
ZPRespPtr .BS 2
|
||||
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
|
@ -71,7 +76,6 @@ L.LIBTCPIP .DA LIBTCPIP
|
|||
L.SA.LOCAL .DA SA.LOCAL
|
||||
L.SA.REMOTE .DA SA.REMOTE
|
||||
L.SA.REMOTE.AD .DA SA.REMOTE+S.SOCKADDR.ADDR
|
||||
L.NOD.Template .DA NOD.Template
|
||||
L.MSG.IPKO .DA MSG.IPKO
|
||||
L.MSG.USAGE .DA MSG.USAGE
|
||||
L.MSG.UNKNOWN .DA MSG.UNKNOWN
|
||||
|
@ -119,163 +123,41 @@ J.ESC .DA CS.RUN.CHARIN.LEFT
|
|||
CS.INIT >LDYA L.LIBTCPIP
|
||||
>SYSCALL LoadLib
|
||||
bcs .9
|
||||
|
||||
sta hLIBTCPIP
|
||||
|
||||
.9 rts
|
||||
.9
|
||||
CS.INIT.RTS rts
|
||||
*--------------------------------------
|
||||
CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||
CS.RUN jsr CS.RUN.CheckTCPIP
|
||||
bcs CS.INIT.RTS
|
||||
|
||||
>STYA ZPPtr1
|
||||
lda (ZPPtr1) Configured ?
|
||||
bmi CS.RUN.IPOK
|
||||
|
||||
>LDYA L.MSG.IPKO
|
||||
>SYSCALL PutS
|
||||
lda #E.SYN
|
||||
sec
|
||||
.99 rts
|
||||
|
||||
CS.RUN.IPOK ldy #S.PS.ARGC
|
||||
lda (pPS),y
|
||||
cmp #3
|
||||
bcc .9
|
||||
|
||||
ldy #S.IPCFG.IP+3
|
||||
ldx #3
|
||||
|
||||
.1 lda (ZPPtr1),y
|
||||
sta SA.LOCAL+S.SOCKADDR.ADDR,x
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
lda #TIMEOUT.MAX
|
||||
sta TimeOut
|
||||
|
||||
.2 >SLEEP
|
||||
|
||||
>PUSHW L.SA.REMOTE.AD
|
||||
lda #1
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GetByName
|
||||
bcc CS.RUN.HOSTOK
|
||||
lda TimeOut
|
||||
bne .2
|
||||
|
||||
>PUSHW L.MSG.UNKNOWN
|
||||
lda #1
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHBI 2
|
||||
>SYSCALL PrintF
|
||||
bra .99
|
||||
|
||||
.9 >LDYA L.MSG.USAGE
|
||||
>SYSCALL PutS
|
||||
|
||||
.99 lda #E.SYN
|
||||
sec
|
||||
rts
|
||||
|
||||
CS.RUN.HOSTOK lda #2
|
||||
>SYSCALL ArgV
|
||||
>SYSCALL AToI
|
||||
>STYA SA.REMOTE+S.SOCKADDR.PORT
|
||||
|
||||
>PUSHW L.MSG.HOSTOK
|
||||
ldx #0
|
||||
|
||||
.1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x
|
||||
inx
|
||||
cpx #4
|
||||
bne .1
|
||||
|
||||
>PUSHW SA.REMOTE+S.SOCKADDR.PORT
|
||||
lda #1
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
|
||||
>PUSHBI 8
|
||||
>SYSCALL PrintF
|
||||
|
||||
CS.RUN.OPENSKT >PUSHBI 0 no protocol
|
||||
lda #S.SOCKET.T.STREAM
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||
bcs .9
|
||||
|
||||
sta hSocket
|
||||
|
||||
>PUSHW L.SA.LOCAL
|
||||
lda hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||
bcc .2
|
||||
|
||||
.9 pha
|
||||
>LDYA L.MSG.SKTKO
|
||||
>SYSCALL PutS
|
||||
pla
|
||||
sec
|
||||
.99 rts
|
||||
|
||||
.2 lda #TIMEOUT.MAX
|
||||
sta TimeOut
|
||||
|
||||
.3 >SLEEP
|
||||
|
||||
>PUSHW L.SA.REMOTE
|
||||
lda hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||
bcc .4
|
||||
|
||||
cmp #ERR.SKT.NOCONN
|
||||
bne .9
|
||||
|
||||
lda TimeOut
|
||||
bne .3
|
||||
|
||||
lda #ERR.SKT.NOCONN
|
||||
bra .9
|
||||
|
||||
.4 >PUSHW L.MSG.SKTOK
|
||||
>PUSHBI 0
|
||||
>SYSCALL PrintF
|
||||
|
||||
jsr CS.RUN.MkNod
|
||||
bcs .99
|
||||
jsr CS.RUN.CheckArgs
|
||||
bcs CS.INIT.RTS
|
||||
|
||||
jsr CS.RUN.Connect
|
||||
bcs CS.INIT.RTS
|
||||
|
||||
jsr CS.RUN.GETBUF
|
||||
bcs .99
|
||||
bcs CS.INIT.RTS
|
||||
|
||||
jsr CS.RUN.SCRSETUP
|
||||
bcs .99
|
||||
bcs CS.INIT.RTS
|
||||
|
||||
jsr CS.RUN.NICK
|
||||
bcs .99
|
||||
|
||||
>SLEEP
|
||||
bcs CS.INIT.RTS
|
||||
|
||||
jsr CS.RUN.USER
|
||||
bcs .99
|
||||
|
||||
>SLEEP
|
||||
bcs CS.INIT.RTS
|
||||
|
||||
jsr CS.RUN.JOIN
|
||||
bcs .99
|
||||
bcs CS.INIT.RTS
|
||||
|
||||
>LDYA pData NULLSTRING
|
||||
jsr CS.RUN.STATUSPDATE
|
||||
bcs .99
|
||||
|
||||
CS.RUN.LOOP >SLEEP
|
||||
|
||||
lda hFile
|
||||
>SYSCALL FEOF
|
||||
bcs .9
|
||||
|
||||
tay
|
||||
bne .2
|
||||
|
||||
jsr CS.RUN.GetMsg
|
||||
bcs .9
|
||||
beq .2
|
||||
|
@ -290,6 +172,7 @@ CS.RUN.LOOP >SLEEP
|
|||
|
||||
>SYSCALL FEOF
|
||||
bcs .9
|
||||
|
||||
tay
|
||||
bne CS.RUN.LOOP EOF = true, no char from STDIN
|
||||
|
||||
|
@ -308,39 +191,153 @@ CS.RUN.LOOP >SLEEP
|
|||
plp
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.MkNod >PUSHEA.G NodBuf
|
||||
>PUSHW L.NOD.Template
|
||||
>PUSHB hSocket
|
||||
>PUSHBI 1
|
||||
>SYSCALL SPrintF
|
||||
CS.RUN.CheckTCPIP
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPtr1
|
||||
lda (ZPPtr1) Configured ?
|
||||
bpl .99
|
||||
|
||||
ldy #S.IPCFG.IP+3
|
||||
ldx #3
|
||||
|
||||
>PUSHEA.G NodBuf+5
|
||||
>PUSHW 0
|
||||
>PUSHB hSocket
|
||||
>SYSCALL MKNod
|
||||
bcs .9
|
||||
|
||||
>PUSHEA.G NodBuf
|
||||
>PUSHBI O.RDWR+O.TEXT
|
||||
>PUSHBI S.FI.T.TXT
|
||||
>PUSHWZ Aux type
|
||||
>SYSCALL FOpen
|
||||
bcs .9
|
||||
|
||||
sta hFile
|
||||
.1 lda (ZPPtr1),y
|
||||
sta SA.LOCAL+S.SOCKADDR.ADDR,x
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
rts
|
||||
|
||||
.99 >LDYA L.MSG.IPKO
|
||||
>SYSCALL PutS
|
||||
lda #E.SYN
|
||||
sec
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GETBUF >LDYAI MSGSIZE
|
||||
CS.RUN.CheckArgs
|
||||
ldy #S.PS.ARGC
|
||||
lda (pPS),y
|
||||
cmp #3
|
||||
bcs .1
|
||||
|
||||
>LDYA L.MSG.USAGE
|
||||
>SYSCALL PutS
|
||||
|
||||
lda #E.SYN
|
||||
sec
|
||||
rts
|
||||
|
||||
.1 lda #TIMEOUT.MAX
|
||||
sta TimeOut
|
||||
|
||||
.2 >PUSHW L.SA.REMOTE.AD
|
||||
lda #1
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GetByName
|
||||
bcc .3
|
||||
|
||||
>SLEEP
|
||||
|
||||
lda TimeOut
|
||||
bne .2
|
||||
|
||||
>PUSHW L.MSG.UNKNOWN
|
||||
lda #1
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHBI 2
|
||||
>SYSCALL PrintF
|
||||
lda #ERR.SKT.NOCONN
|
||||
sec
|
||||
rts
|
||||
|
||||
.3 lda #2
|
||||
>SYSCALL ArgV
|
||||
>SYSCALL AToI
|
||||
>STYA SA.REMOTE+S.SOCKADDR.PORT
|
||||
|
||||
>PUSHW L.MSG.HOSTOK
|
||||
ldx #0
|
||||
|
||||
.4 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x
|
||||
inx
|
||||
cpx #4
|
||||
bne .4
|
||||
|
||||
>PUSHW SA.REMOTE+S.SOCKADDR.PORT
|
||||
lda #1
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
|
||||
>PUSHBI 8
|
||||
>SYSCALL PrintF
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.Connect >PUSHBI 0 no protocol
|
||||
lda #S.SOCKET.T.STREAM
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||
bcs .9
|
||||
|
||||
sta hSocket
|
||||
|
||||
>PUSHW L.SA.LOCAL
|
||||
lda hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||
bcs .9
|
||||
|
||||
lda #TIMEOUT.MAX
|
||||
sta TimeOut
|
||||
|
||||
.1 >SLEEP
|
||||
|
||||
>PUSHW L.SA.REMOTE
|
||||
lda hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||
bcc .8
|
||||
|
||||
ldx TimeOut
|
||||
bne .1
|
||||
|
||||
.9 pha
|
||||
>LDYA L.MSG.SKTKO
|
||||
>SYSCALL PutS
|
||||
pla
|
||||
sec
|
||||
rts
|
||||
|
||||
.8 >PUSHW L.MSG.SKTOK
|
||||
>PUSHBI 0
|
||||
>SYSCALL PrintF
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GETBUF >LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
stx hMsgBuf
|
||||
>STYA ZPMsgPtr
|
||||
|
||||
stx hReqBuf
|
||||
>STYA ZPReqPtr
|
||||
|
||||
>LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
|
||||
stx hMsgBuf
|
||||
>STYA ZPMsgPtr
|
||||
|
||||
>LDYAI MSGSIZE
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
|
||||
stx hRespBuf
|
||||
>STYA ZPRespPtr
|
||||
|
||||
>LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
|
||||
stx hText
|
||||
>STYA ZPTextPtr
|
||||
|
||||
|
@ -442,14 +439,17 @@ CS.RUN.TXTCLR lda #0
|
|||
CS.RUN.NICK >LDYA L.MSG.NICK
|
||||
jsr CS.RUN.STATUSMSG
|
||||
|
||||
>PUSHB hFile
|
||||
>PUSHW ZPRespPtr
|
||||
>PUSHW L.IRC.NICK
|
||||
|
||||
lda #3 nickname
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHBI 2
|
||||
>SYSCALL FPrintF
|
||||
>SYSCALL SPrintF
|
||||
bcs .9
|
||||
|
||||
jsr CS.RUN.SendMsg
|
||||
bcs .9
|
||||
|
||||
.1 >SLEEP
|
||||
|
@ -470,7 +470,10 @@ CS.RUN.NICK >LDYA L.MSG.NICK
|
|||
cmp (ZPMsgExtPtr),y
|
||||
beq .3
|
||||
|
||||
bra .1
|
||||
jsr CS.RUN.REQ1
|
||||
bcc .1
|
||||
|
||||
rts
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
|
@ -478,10 +481,8 @@ CS.RUN.NICK >LDYA L.MSG.NICK
|
|||
CS.RUN.USER >LDYA L.MSG.USER
|
||||
jsr CS.RUN.STATUSMSG
|
||||
|
||||
>PUSHB hFile
|
||||
|
||||
>PUSHW ZPRespPtr
|
||||
>PUSHW L.IRC.USER
|
||||
|
||||
lda #3 nickname
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
|
@ -489,7 +490,10 @@ CS.RUN.USER >LDYA L.MSG.USER
|
|||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHBI 4
|
||||
>SYSCALL FPrintF
|
||||
>SYSCALL SPrintF
|
||||
bcs .9
|
||||
|
||||
jsr CS.RUN.SendMsg
|
||||
bcs .9
|
||||
|
||||
.1 >SLEEP
|
||||
|
@ -510,7 +514,10 @@ CS.RUN.USER >LDYA L.MSG.USER
|
|||
cmp (ZPMsgCmdPtr),y
|
||||
beq .3
|
||||
|
||||
bra .1
|
||||
jsr CS.RUN.REQ1
|
||||
bcc .1
|
||||
|
||||
rts
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
|
@ -518,7 +525,7 @@ CS.RUN.USER >LDYA L.MSG.USER
|
|||
CS.RUN.JOIN >LDYA L.MSG.JOIN
|
||||
jsr CS.RUN.STATUSMSG
|
||||
|
||||
>PUSHB hFile
|
||||
>PUSHW ZPRespPtr
|
||||
|
||||
lda #5 key
|
||||
>SYSCALL ArgV
|
||||
|
@ -543,15 +550,20 @@ CS.RUN.JOIN >LDYA L.MSG.JOIN
|
|||
>PUSHYA
|
||||
>PUSHBI 2
|
||||
|
||||
.2 >SYSCALL FPrintF
|
||||
.2 >SYSCALL SPrintF
|
||||
bcs .9
|
||||
|
||||
jsr CS.RUN.SendMsg
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.REQ jsr CS.RUN.SplitMsg
|
||||
bcs .8
|
||||
bcc CS.RUN.REQ1
|
||||
|
||||
* jsr CS.RUN.DUMPMSG
|
||||
clc
|
||||
rts
|
||||
|
||||
>LDYA L.IRC.CMDS
|
||||
CS.RUN.REQ1 >LDYA L.IRC.CMDS
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldx #0
|
||||
|
@ -601,21 +613,37 @@ CS.RUN.CMD.JOIN lda bJoin
|
|||
rts
|
||||
.1
|
||||
*--------------------------------------
|
||||
CS.RUN.CMD.PART >PUSHB hFile
|
||||
CS.RUN.CMD.PART >PUSHW ZPRespPtr
|
||||
>PUSHW L.IRC.NAMES
|
||||
lda #4 channel
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHBI 2
|
||||
>SYSCALL FPrintF
|
||||
rts
|
||||
>SYSCALL SPrintF
|
||||
bcs .9
|
||||
|
||||
jsr CS.RUN.SendMsg
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.CMD.PING >PUSHB hFile
|
||||
CS.RUN.CMD.PING >PUSHW ZPRespPtr
|
||||
>PUSHW L.IRC.PONG
|
||||
>PUSHW ZPMsgExtPtr
|
||||
>PUSHBI 2
|
||||
>SYSCALL FPrintF
|
||||
rts
|
||||
|
||||
|
||||
* lda #1 server name
|
||||
* >SYSCALL ArgV
|
||||
* >PUSHYA
|
||||
|
||||
>PUSHW ZPMsgExtPtr
|
||||
>PUSHBI 2
|
||||
>SYSCALL SPrintF
|
||||
bcs .9
|
||||
|
||||
jsr CS.RUN.SendMsg
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.CMD.PRIVMSG
|
||||
ldy #0
|
||||
|
@ -653,14 +681,55 @@ CS.RUN.CMD.376
|
|||
>SYSCALL PrintF
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetMsg >PUSHB hFile
|
||||
>PUSHW ZPMsgPtr
|
||||
>PUSHWI MSGSIZE
|
||||
>SYSCALL FGetS
|
||||
bcs .9
|
||||
CS.RUN.GetMsg ldy ReqLen
|
||||
bne .2
|
||||
|
||||
.1 >PUSHWI 255
|
||||
>PUSHW ZPReqPtr
|
||||
lda hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Read
|
||||
bcs .7
|
||||
|
||||
sty ReqLen
|
||||
stz ReqPtr
|
||||
|
||||
lda (ZPMsgPtr)
|
||||
* clc
|
||||
.2 ldy ReqPtr
|
||||
|
||||
lda (ZPReqPtr),y
|
||||
cmp #C.CR
|
||||
beq .6
|
||||
|
||||
cmp #C.LF
|
||||
beq .3
|
||||
|
||||
ldy MsgLen
|
||||
sta (ZPMsgPtr),y
|
||||
|
||||
inc MsgLen
|
||||
|
||||
.3 inc ReqPtr
|
||||
dec ReqLen
|
||||
bne .2
|
||||
|
||||
bra .1
|
||||
|
||||
.6 inc ReqPtr Skip CR
|
||||
dec ReqLen
|
||||
|
||||
lda #0
|
||||
|
||||
ldy MsgLen will exit with NZ
|
||||
stz MsgLen
|
||||
|
||||
sta (ZPMsgPtr),y
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.7 cmp #E.NODATA
|
||||
bne .9
|
||||
|
||||
.8 clc will exit with NZ
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
|
@ -869,14 +938,39 @@ CS.RUN.CHARIN.INS.8
|
|||
CS.RUN.CHARIN.CTRL
|
||||
cmp #C.CR
|
||||
bne .1
|
||||
|
||||
|
||||
jmp CS.RUN.CHARIN.CR
|
||||
|
||||
.1 cmp #$14 Ctrl-T
|
||||
bne .8
|
||||
|
||||
>PUSHW ZPRespPtr
|
||||
>PUSHW L.IRC.PART
|
||||
lda #4 channel
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHBI 2
|
||||
>SYSCALL SPrintF
|
||||
bcs .9
|
||||
|
||||
jsr CS.RUN.SendMsg
|
||||
bcs .9
|
||||
|
||||
lda #3
|
||||
sec
|
||||
.9 rts
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.CHARIN.CR
|
||||
bit bJoin
|
||||
bpl CS.RUN.CHARIN.INS.8
|
||||
|
||||
lda TextLen
|
||||
beq CS.RUN.CHARIN.INS.8
|
||||
|
||||
>PUSHB hFile
|
||||
>PUSHW ZPRespPtr
|
||||
>PUSHW L.IRC.PRIVMSG
|
||||
|
||||
lda #4 channel
|
||||
|
@ -885,7 +979,10 @@ CS.RUN.CHARIN.CTRL
|
|||
>PUSHW ZPTextPtr
|
||||
|
||||
>PUSHBI 4
|
||||
>SYSCALL FPrintF
|
||||
>SYSCALL SPrintF
|
||||
bcs .9
|
||||
|
||||
jsr CS.RUN.SendMsg
|
||||
bcs .9
|
||||
|
||||
>PUSHW L.SEQ.PRIVMSG
|
||||
|
@ -901,26 +998,7 @@ CS.RUN.CHARIN.CTRL
|
|||
|
||||
jmp CS.RUN.TXTCLR
|
||||
|
||||
.1 cmp #$14 Ctrl-T
|
||||
bne .8
|
||||
|
||||
>PUSHB hFile
|
||||
|
||||
>PUSHW L.IRC.PART
|
||||
lda #4 channel
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHBI 2
|
||||
>SYSCALL FPrintF
|
||||
|
||||
>SLEEP
|
||||
|
||||
lda #3
|
||||
sec
|
||||
rts
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.CHARIN.LEFT
|
||||
clc
|
||||
|
@ -956,30 +1034,39 @@ CS.RUN.CHARIN.DEL
|
|||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.SendMsg >PUSHYA
|
||||
>PUSHW ZPRespPtr
|
||||
lda hSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Write
|
||||
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 hFile
|
||||
beq .1
|
||||
|
||||
>SYSCALL FClose
|
||||
|
||||
.1 lda hSocket
|
||||
CS.QUIT lda hSocket
|
||||
beq .2
|
||||
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
||||
|
||||
.2 lda hText
|
||||
.2 lda hLineBuf
|
||||
beq .3
|
||||
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.3 lda hText
|
||||
beq .4
|
||||
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.3 lda hLIBTCPIP
|
||||
.4 lda hLIBTCPIP
|
||||
beq .8
|
||||
|
||||
>SYSCALL UnloadLib
|
||||
|
@ -1027,7 +1114,8 @@ IRC.NICK .AZ "NICK %s\r\n"
|
|||
IRC.USER .AZ "USER %s 0 * :%s\r\n"
|
||||
IRC.JOIN .AZ "JOIN %s\r\n"
|
||||
IRC.JOINKEY .AZ "JOIN %s %s\r\n"
|
||||
IRC.PONG .AZ "PONG %s\r\n"
|
||||
IRC.PONG .AZ "PONG :%s\r\n"
|
||||
*IRC.PONG .AZ "PONG %s:%s\r\n"
|
||||
IRC.PART .AS "PART %s\r\n"
|
||||
.AZ "QUIT :Pfff\r\n"
|
||||
IRC.NAMES .AZ "NAMES %s\r\n"
|
||||
|
@ -1049,15 +1137,12 @@ SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
|
|||
SA.REMOTE .DA #AF.INET S.SOCKADDR.AF
|
||||
.BS 1
|
||||
.BS 4 S.SOCKADDR.ADDR
|
||||
.BS 2
|
||||
*--------------------------------------
|
||||
NOD.Template .AZ "/dev/irc%h"
|
||||
.DA 6667
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
NULLSTRING .BS 1
|
||||
NodBuf .BS 11
|
||||
DS.END .ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
|
|
|
@ -10,8 +10,12 @@ NEW
|
|||
.INB inc/a2osx.i
|
||||
.INB inc/kernel.i
|
||||
*--------------------------------------
|
||||
ZPFDPtr .EQ ZPBIN
|
||||
FILE.ID .EQ ZPBIN+2
|
||||
.DUMMY
|
||||
.OR ZPBIN
|
||||
ZS.START
|
||||
ZPFDPtr .BS 2
|
||||
FILE.ID .BS 2
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
|
@ -23,7 +27,7 @@ CS.START cld
|
|||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #16 SS
|
||||
.DA #4 ZP
|
||||
.DA #ZS.END-ZS.START Zero Page Size
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
|
@ -71,6 +75,7 @@ CS.RUN >LDYA L.MSG0
|
|||
tax
|
||||
>PUSHW L.FD.T,x
|
||||
|
||||
ldx FILE.ID
|
||||
lda Nod.Table.hName-2,x
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
|
|
|
@ -343,7 +343,7 @@ DumpBuf >STYA ZPPtr1
|
|||
*--------------------------------------
|
||||
CS.END
|
||||
MSG.USAGE .AZ "Usage : TERM device "
|
||||
MSG.DEVOK .AZ "Openning Device..."
|
||||
MSG.DEVOK .AZ "Opening Device..."
|
||||
MSG.AT .AS "ATI0"
|
||||
.HS 0D0A
|
||||
MSG.AT.LEN .EQ *-MSG.AT
|
||||
|
|
|
@ -18,8 +18,7 @@ ZPBufPtr .BS 2
|
|||
hBuf .BS 1
|
||||
hDev .BS 1
|
||||
TimeOut .BS 1
|
||||
ZS.END
|
||||
.ED
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
|
|
|
@ -13,9 +13,6 @@ NEW
|
|||
.INB inc/nic.i
|
||||
*--------------------------------------
|
||||
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
|
||||
.OR ZPBIN
|
||||
|
@ -108,7 +105,7 @@ Dev.Detect >STYA ZPArgsPtr
|
|||
lda #MLI.E.NODEV Not Found in any slot, exiting
|
||||
sec
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
.4 lda ZPPtr1+1
|
||||
asl
|
||||
asl
|
||||
|
@ -121,6 +118,7 @@ Dev.Detect >STYA ZPArgsPtr
|
|||
jsr SSC.Init
|
||||
jsr PPP.ETCFILE
|
||||
bcs .99
|
||||
|
||||
jsr PPP.Init
|
||||
bcs .99
|
||||
|
||||
|
@ -149,7 +147,13 @@ Dev.Detect >STYA ZPArgsPtr
|
|||
lda #A2osX.S.NIC
|
||||
sta A2osX.S,x
|
||||
|
||||
.9
|
||||
lda #0
|
||||
sec
|
||||
rts
|
||||
|
||||
.9 ldx DEVSLOTn08F
|
||||
stz SSC.RESET-$8F,x
|
||||
|
||||
Dev.Detect.RTS rts
|
||||
*--------------------------------------
|
||||
PPP.ETCFILE >PUSHW L.ETCFILE
|
||||
|
@ -173,24 +177,27 @@ PPP.ETCFILE >PUSHW L.ETCFILE
|
|||
bcs .8
|
||||
|
||||
lda FILE.Buf
|
||||
beq .1
|
||||
|
||||
cmp #'#'
|
||||
beq .1
|
||||
|
||||
>LDYA L.FILE.Buf
|
||||
>SYSCALL PutS
|
||||
|
||||
|
||||
lda FILE.Buf
|
||||
cmp #'?'
|
||||
cmp #'>'
|
||||
bne .2
|
||||
|
||||
>LDYA L.FILE.Bufp1
|
||||
jsr SSC.WriteYA
|
||||
bcs .9
|
||||
bra .1
|
||||
|
||||
.2 cmp #'!'
|
||||
.10 bra .1
|
||||
|
||||
.2 cmp #'?'
|
||||
bne .7
|
||||
|
||||
*--------------------------------------
|
||||
.3 jsr SSC.Read
|
||||
bcs .9
|
||||
|
||||
|
@ -200,45 +207,34 @@ PPP.ETCFILE >PUSHW L.ETCFILE
|
|||
lda #0
|
||||
sta RCV.Buf,y
|
||||
|
||||
>LDYA L.RCV.Bufp1
|
||||
>LDYA L.RCV.Buf
|
||||
>STYA ZPPtr2
|
||||
|
||||
.4 ldy #0
|
||||
|
||||
.4 jsr PPP.SkipCRLFPtr2
|
||||
bcs .3
|
||||
|
||||
ldy #$ff
|
||||
|
||||
.5 iny
|
||||
lda FILE.Buf,y
|
||||
bne .6
|
||||
|
||||
lda #C.CR
|
||||
lda FILE.Buf+1,y skip !
|
||||
beq .10
|
||||
|
||||
.6 cmp (ZPPtr2),y
|
||||
bne .60
|
||||
beq .5
|
||||
|
||||
lda (ZPPtr2),y
|
||||
beq .60
|
||||
|
||||
cmp #C.CR
|
||||
bne .5
|
||||
jmp .1
|
||||
|
||||
.60 ldy #0
|
||||
|
||||
.61 iny
|
||||
lda (ZPPtr2),y
|
||||
cmp #C.LF
|
||||
bne .61
|
||||
|
||||
tya
|
||||
sec
|
||||
adc ZPPtr2
|
||||
sta ZPPtr2
|
||||
bcc .62
|
||||
|
||||
inc ZPPtr2+1
|
||||
|
||||
.62 lda (ZPPtr2)
|
||||
bne .60
|
||||
beq .60
|
||||
|
||||
jsr PPP.ETCFILE.ERR1
|
||||
bra .9
|
||||
|
||||
.60 jsr PPP.NextStrPtr2
|
||||
lda (ZPPtr2)
|
||||
bne .4
|
||||
|
||||
.7 jsr PPP.ETCFILE.ERR2
|
||||
bra .9
|
||||
|
||||
|
@ -258,6 +254,56 @@ PPP.ETCFILE >PUSHW L.ETCFILE
|
|||
|
||||
rts
|
||||
*--------------------------------------
|
||||
PPP.SkipCRLFPtr2
|
||||
.1 lda (ZPPtr2)
|
||||
beq .9
|
||||
|
||||
cmp #C.CR
|
||||
bne .8
|
||||
|
||||
ldy #1
|
||||
lda (ZPPtr2),y
|
||||
beq .9
|
||||
|
||||
cmp #C.LF
|
||||
bne .2
|
||||
|
||||
iny
|
||||
|
||||
.2 tya
|
||||
clc
|
||||
adc ZPPtr2
|
||||
sta ZPPtr2
|
||||
bcc .1
|
||||
|
||||
inc ZPPtr2+1
|
||||
bra .1
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
PPP.NextStrPtr2 ldy #$ff
|
||||
|
||||
.1 iny
|
||||
lda (ZPPtr2),y
|
||||
beq .2
|
||||
|
||||
cmp #C.CR
|
||||
bne .1
|
||||
|
||||
.2 tya
|
||||
clc
|
||||
adc ZPPtr2
|
||||
sta ZPPtr2
|
||||
bcc .8
|
||||
|
||||
inc ZPPtr2+1
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
PPP.ETCFILE.ERR1
|
||||
>PUSHW L.MSG.UNEXPECTED
|
||||
>PUSHW L.RCV.Buf
|
||||
|
@ -340,9 +386,9 @@ PPP.Init >LDYAI PPP.LCPReq.LEN
|
|||
SSC.Init ldx DEVSLOTn08F
|
||||
stz SSC.RESET-$8F,x
|
||||
|
||||
lda #SSC.CTL.CLKINT+SSC.CTL.B115200+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP
|
||||
lda #SSC.CTL.1S+SSC.CTL.8D+SSC.CTL.CLKINT+SSC.CTL.B115200
|
||||
sta SSC.CTL-$8F,x
|
||||
lda #SSC.CMD.RIRQDIS+SSC.CMD.TE+SSC.CMD.DTR
|
||||
lda #SSC.CMD.NOP+SSC.CMD.TE+SSC.CMD.RIRQDIS+SSC.CMD.DTR
|
||||
sta SSC.CMD-$8F,x
|
||||
|
||||
lda SSC.DATA-$8F,x discard any garbage byte
|
||||
|
@ -484,9 +530,8 @@ DumpBuf >STYA ZPPtr1
|
|||
|
||||
lda (ZPPtr1)
|
||||
cmp #$0D
|
||||
* bne DumpBuf.PPP
|
||||
bra DumpBuf.PPP
|
||||
|
||||
bne DumpBuf.PPP
|
||||
|
||||
lda ZPBufLen
|
||||
eor #$ff
|
||||
sta ZPBufLen
|
||||
|
@ -509,12 +554,15 @@ DumpBuf >STYA ZPPtr1
|
|||
.3 cmp #$0D
|
||||
beq .4
|
||||
|
||||
cmp #$0A
|
||||
beq .4
|
||||
|
||||
cmp #C.SPACE
|
||||
bcs .4
|
||||
|
||||
ora #$20
|
||||
|
||||
.4 >SYSCALL PutS
|
||||
.4 >SYSCALL PutChar
|
||||
bcc .1
|
||||
|
||||
.9 rts
|
||||
|
@ -722,8 +770,8 @@ PPP.LCPReq.DATA .HS 01 Configure-Request
|
|||
.DA /576,#576
|
||||
.HS 02.06.000A0000 ACCM
|
||||
.HS 05.06.002A2B78 MAGIC
|
||||
.HS 07.02
|
||||
.HS 08.02
|
||||
* .HS 07.02
|
||||
* .HS 08.02
|
||||
PPP.LCPReq.DATA.LEN .EQ *-PPP.LCPReq.DATA
|
||||
* .HS 0000 PADDING
|
||||
.BS 2 FCS
|
||||
|
|
|
@ -39,6 +39,7 @@ SSC.CTL.6D .EQ %01000000
|
|||
SSC.CTL.5D .EQ %01100000
|
||||
SSC.CTL.CLKINT .EQ %00010000
|
||||
SSC.CTL.B16EXT .EQ %00000000
|
||||
SSC.CTL.B115200 .EQ %00000000
|
||||
SSC.CTL.B50 .EQ %00000001
|
||||
SSC.CTL.B75 .EQ %00000010
|
||||
SSC.CTL.B110 .EQ %00000011
|
||||
|
@ -54,8 +55,6 @@ SSC.CTL.B4800 .EQ %00001100
|
|||
SSC.CTL.B7200 .EQ %00001101
|
||||
SSC.CTL.B9600 .EQ %00001110
|
||||
SSC.CTL.B19200 .EQ %00001111
|
||||
SSC.CTL.B115200 .EQ %00000000
|
||||
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE INC/COM.6551.I
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
IO.D2.SeekTimeR .EQ 65 LIBBLKDEV Recalibration
|
||||
IO.D2.SeekTimeR .EQ 45 LIBBLKDEV Recalibration
|
||||
IO.D2.SeekTimeF .EQ 65 LIBBLKDEV Track Formatter
|
||||
IO.D2.SeekTimeB .EQ 65 LIBBLKDEV Boot Block
|
||||
IO.D2.SeekTimeP .EQ 65 ProDOS.FX initial
|
||||
IO.D2.SeekTimeP .EQ 35 ProDOS.FX initial
|
||||
IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128
|
||||
*--------------------------------------
|
||||
IO.D2.Ph0Off .EQ $C080
|
||||
|
|
|
@ -76,7 +76,14 @@ D2MoveHead >PULLB MoveTo
|
|||
clc
|
||||
.9 rts
|
||||
|
||||
D2MoveHead.SEI lda MoveFrom
|
||||
D2MoveHead.SEI lda Slotn0
|
||||
ora #IO.D2.RData
|
||||
sta .4+1
|
||||
sta .5+1
|
||||
sta .6+1
|
||||
sta .7+1
|
||||
|
||||
lda MoveFrom
|
||||
tay
|
||||
|
||||
and #6
|
||||
|
@ -90,6 +97,8 @@ D2MoveHead.SEI lda MoveFrom
|
|||
.1 pha
|
||||
|
||||
jsr .8
|
||||
pla
|
||||
pha
|
||||
bcs .2
|
||||
|
||||
* Current < Target, must move in
|
||||
|
@ -121,17 +130,11 @@ D2MoveHead.SEI lda MoveFrom
|
|||
ora Slotn0
|
||||
tay
|
||||
|
||||
* lda Slotn0
|
||||
* ora #IO.D2.RData
|
||||
* sta .4+1
|
||||
* sta .5+1
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
*.4 lda IO.D2.RData SELF MODIFIED
|
||||
nop
|
||||
nop
|
||||
.4 lda IO.D2.RData SELF MODIFIED
|
||||
|
||||
lda IO.D2.Ph0On,y
|
||||
*.5 lda IO.D2.RData SELF MODIFIED
|
||||
.5 lda IO.D2.RData SELF MODIFIED
|
||||
|
||||
lda #IO.D2.SeekTimeF
|
||||
jsr D2.Wait100usecA
|
||||
|
@ -142,12 +145,12 @@ D2MoveHead.SEI lda MoveFrom
|
|||
|
||||
jsr D2.Wait25600usec
|
||||
|
||||
.8 pha
|
||||
lda IO.D2.Ph0Off,x
|
||||
nop
|
||||
nop
|
||||
.8 lda IO.D2.Ph0Off,x
|
||||
.6 lda IO.D2.RData SELF MODIFIED
|
||||
|
||||
lda IO.D2.Ph0Off,y
|
||||
pla
|
||||
.7 lda IO.D2.RData SELF MODIFIED
|
||||
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # D2TrkRead16s
|
||||
|
@ -197,33 +200,34 @@ D2TrkWrite16s >PULLW ZPPtr1
|
|||
>STYA ZPPtr2
|
||||
stx hTrkBuf
|
||||
|
||||
lda TrkNum
|
||||
jsr D2.Trk2Qtrk
|
||||
tay
|
||||
* lda TrkNum
|
||||
* jsr D2.Trk2Qtrk
|
||||
* tay
|
||||
|
||||
and #6
|
||||
ora Slotn0
|
||||
tax
|
||||
* and #6
|
||||
* ora Slotn0
|
||||
* tax
|
||||
|
||||
tya
|
||||
inc
|
||||
and #6
|
||||
ora Slotn0
|
||||
tay
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
stx PhX
|
||||
lda IO.D2.Ph0On,y
|
||||
sty PhY
|
||||
|
||||
* lda #10
|
||||
* jsr D2.Wait100usecA
|
||||
|
||||
* ldx PhX
|
||||
* lda IO.D2.Ph0Off,x
|
||||
* ldy PhY
|
||||
* lda IO.D2.Ph0Off,y
|
||||
* tya
|
||||
* inc
|
||||
* and #6
|
||||
* ora Slotn0
|
||||
* tay
|
||||
|
||||
* stx PhX
|
||||
* sty PhY
|
||||
* lda Slotn0
|
||||
* ora #IO.D2.RData
|
||||
* sta .10+1
|
||||
* sta .11+1
|
||||
* sta .12+1
|
||||
* sta .13+1
|
||||
|
||||
* lda IO.D2.Ph0On,x
|
||||
*.10 lda IO.D2.RData SELF MODIFIED
|
||||
* lda IO.D2.Ph0On,y
|
||||
*.11 lda IO.D2.RData SELF MODIFIED
|
||||
*
|
||||
stz SectNum
|
||||
|
||||
ldy #0 put 256 FF sync bytes for slooooow drives
|
||||
|
@ -250,14 +254,32 @@ D2TrkWrite16s >PULLW ZPPtr1
|
|||
|
||||
jsr PutDataHeadPtr2
|
||||
|
||||
jsr PutData
|
||||
lda ZPPtr1+1
|
||||
bne .7
|
||||
|
||||
ldy #$57
|
||||
ldx #2
|
||||
lda #$96
|
||||
|
||||
.3 sta (ZPPtr2)
|
||||
inc ZPPtr2
|
||||
bne .4
|
||||
inc ZPPtr2+1
|
||||
|
||||
jsr PutTailPtr2
|
||||
.4 dey
|
||||
bne .3
|
||||
dex
|
||||
bne .3
|
||||
|
||||
bra .8
|
||||
|
||||
.7 jsr PutData
|
||||
inc ZPPtr1+1
|
||||
|
||||
.8 jsr PutTailPtr2
|
||||
ldy #TRACK16.GAP3
|
||||
jsr PutSyncBytePtr2
|
||||
|
||||
inc ZPPtr1+1
|
||||
|
||||
inc SectNum
|
||||
lda SectNum
|
||||
cmp #16
|
||||
|
@ -266,15 +288,18 @@ D2TrkWrite16s >PULLW ZPPtr1
|
|||
lda #0
|
||||
sta (ZPPtr2)
|
||||
|
||||
ldx PhX
|
||||
lda IO.D2.Ph0Off,x
|
||||
ldy PhY
|
||||
lda IO.D2.Ph0Off,y
|
||||
|
||||
jsr D2.Wait25600usec
|
||||
jsr D2.Wait25600usec
|
||||
* ldx PhX
|
||||
* ldy PhY
|
||||
|
||||
* lda IO.D2.Ph0Off,x
|
||||
*.12 lda IO.D2.RData SELF MODIFIED
|
||||
* lda IO.D2.Ph0Off,y
|
||||
*.13 lda IO.D2.RData SELF MODIFIED
|
||||
|
||||
* jsr D2.Wait25600usec
|
||||
|
||||
jsr D2WriteTrackPtr2
|
||||
|
||||
php
|
||||
pha
|
||||
lda hTrkBuf
|
||||
|
|
|
@ -22,12 +22,13 @@ ZPCtxPtr .BS 2
|
|||
pFD .BS 2
|
||||
pPath .BS 2
|
||||
|
||||
ZPRespPtr .BS 2
|
||||
|
||||
ZPPtr1 .BS 2
|
||||
ZPPtr2 .BS 2
|
||||
BufPtr .BS 2
|
||||
hBuf .BS 1
|
||||
hResp .BS 1
|
||||
ZPRespPtr .BS 2
|
||||
|
||||
bFlag .BS 1
|
||||
|
||||
ZS.END .ED
|
||||
|
@ -498,6 +499,7 @@ CIFS.CallBack bit CIFS.Status
|
|||
rts
|
||||
|
||||
.1 jmp (J.CIFS,x)
|
||||
|
||||
.2 pla
|
||||
ply
|
||||
jmp (J.CIFS2,x)
|
||||
|
@ -543,15 +545,7 @@ CIFS.Stat >STYA pPath resolved path
|
|||
jsr GO.LIBTCPIP
|
||||
bcs .9
|
||||
|
||||
ldy #S.PS.PID
|
||||
lda (pPS),y
|
||||
sta CIFS.PID
|
||||
|
||||
dec CIFS.Status
|
||||
|
||||
lda #0
|
||||
sec
|
||||
rts
|
||||
jmp Sleep
|
||||
|
||||
.9 >RET 4
|
||||
*--------------------------------------
|
||||
|
@ -578,6 +572,9 @@ CIFS2.Stat lda MountTable+3 hSocket
|
|||
jsr FileInfo2StatBuf
|
||||
jsr StatBuf2Ptr2
|
||||
|
||||
lda hResp
|
||||
>SYSCALL2 FreeMem
|
||||
|
||||
stz CIFS.Status
|
||||
clc
|
||||
rts
|
||||
|
@ -593,6 +590,7 @@ CIFS2.Stat lda MountTable+3 hSocket
|
|||
rts
|
||||
|
||||
.90 lda #MLI.E.IO
|
||||
|
||||
.99 sec
|
||||
stz CIFS.Status
|
||||
>RET 4
|
||||
|
@ -626,15 +624,7 @@ CIFS.MKDir >STYA pPath resolved path
|
|||
jsr GO.LIBTCPIP
|
||||
bcs .9
|
||||
|
||||
ldy #S.PS.PID
|
||||
lda (pPS),y
|
||||
sta CIFS.PID
|
||||
|
||||
dec CIFS.Status
|
||||
|
||||
lda #0
|
||||
sec
|
||||
rts
|
||||
jmp Sleep
|
||||
|
||||
.9 >RET 4
|
||||
*--------------------------------------
|
||||
|
@ -647,26 +637,29 @@ CIFS2.MKDir lda MountTable+3 hSocket
|
|||
|
||||
ldy #S.NETBIOS+S.SMB.H.STATUS
|
||||
lda (ZPRespPtr),y
|
||||
beq .1
|
||||
clc
|
||||
beq .8
|
||||
|
||||
lda #MLI.E.DUPFILE
|
||||
bra .99
|
||||
sec
|
||||
|
||||
.8 jsr FreeRespData
|
||||
|
||||
.1 stz CIFS.Status
|
||||
clc
|
||||
stz CIFS.Status
|
||||
>RET 4
|
||||
|
||||
.9 cmp #E.NODATA
|
||||
bne .99
|
||||
|
||||
dec CIFS.Retries
|
||||
beq .90
|
||||
beq .98
|
||||
|
||||
lda #0
|
||||
sec
|
||||
rts
|
||||
|
||||
.90 lda #MLI.E.IO
|
||||
.98 lda #MLI.E.IO
|
||||
|
||||
.99 sec
|
||||
stz CIFS.Status
|
||||
>RET 4
|
||||
|
@ -800,14 +793,8 @@ CIFS.ReadDir.Send
|
|||
jsr GO.LIBTCPIP
|
||||
bcs .9
|
||||
|
||||
ldy #S.PS.PID
|
||||
lda (pPS),y
|
||||
sta CIFS.PID
|
||||
jmp Sleep
|
||||
|
||||
dec CIFS.Status
|
||||
|
||||
lda #0
|
||||
sec
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CIFS2.ReadDir jsr GetPFD
|
||||
|
@ -815,58 +802,72 @@ CIFS2.ReadDir jsr GetPFD
|
|||
lda MountTable+3 hSocket
|
||||
ldx #LIBTCPIP.Recv
|
||||
jsr GO.LIBTCPIP
|
||||
bcs .9
|
||||
bcs .90
|
||||
|
||||
jsr GetRespData
|
||||
|
||||
ldy #S.NETBIOS+S.SMB.H.STATUS
|
||||
lda (ZPRespPtr),y
|
||||
bne .99
|
||||
beq .1
|
||||
|
||||
ldy #S.FD.DIR.FC
|
||||
.91 sec
|
||||
lda #MLI.E.IO
|
||||
bra .9
|
||||
|
||||
.1 ldy #S.FD.DIR.FC
|
||||
lda (pFD),y
|
||||
iny
|
||||
ora (pFD),y
|
||||
sta bFlag
|
||||
bne .1
|
||||
bne .2
|
||||
|
||||
ldy #S.NETBIOS+S.SMB.H+S.TRANS2.H+1 Search ID
|
||||
lda (ZPRespPtr),y
|
||||
tax
|
||||
dey
|
||||
lda (ZPRespPtr),y
|
||||
ora (ZPRespPtr),y
|
||||
beq .91
|
||||
|
||||
lda (ZPRespPtr),y
|
||||
|
||||
ldy #S.FD.DIR.FC
|
||||
sta (pFD),y
|
||||
iny
|
||||
txa
|
||||
sta (pFD),y
|
||||
|
||||
.1 jsr GetRespDataOffset
|
||||
.2 jsr GetRespDataOffset
|
||||
jsr CIFS2.ReadDir.GetBuf
|
||||
bcs .99
|
||||
bcs .9
|
||||
|
||||
jsr GetRespDataOffset
|
||||
jsr CIFS2.ReadDir.FillBuf
|
||||
|
||||
lda hResp
|
||||
>SYSCALL2 FreeMem
|
||||
|
||||
>LDYA BufPtr
|
||||
ldx hBuf
|
||||
|
||||
|
||||
stz CIFS.Status
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 stz CIFS.Status
|
||||
|
||||
jmp FreeRespData
|
||||
|
||||
.9 cmp #E.NODATA
|
||||
.90 cmp #E.NODATA
|
||||
bne .99
|
||||
|
||||
dec CIFS.Retries
|
||||
beq .90
|
||||
beq .98
|
||||
|
||||
lda #0
|
||||
sec
|
||||
rts
|
||||
|
||||
.90 lda #MLI.E.IO
|
||||
.98 lda #MLI.E.IO
|
||||
|
||||
.99 stz CIFS.Status
|
||||
sec
|
||||
|
@ -1200,6 +1201,18 @@ SetReqLenNETBIOS
|
|||
>LDYA ZPReqLen
|
||||
rts
|
||||
*--------------------------------------
|
||||
Sleep ldy #S.PS.PID
|
||||
lda (pPS),y
|
||||
sta CIFS.PID
|
||||
|
||||
dec CIFS.Status
|
||||
|
||||
stz CIFS.Retries
|
||||
|
||||
lda #0
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
GetRespData sta hResp
|
||||
>SYSCALL2 GetMemPtr
|
||||
|
||||
|
@ -1236,6 +1249,14 @@ GetRespDataOffset
|
|||
|
||||
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
FreeRespData php
|
||||
pha
|
||||
lda hResp
|
||||
>SYSCALL2 FreeMem
|
||||
pla
|
||||
plp
|
||||
rts
|
||||
*--------------------------------------
|
||||
FileInfo2StatBuf
|
||||
|
@ -1448,7 +1469,7 @@ SMB.ComWrite.H .DA #12 WORD COUNT
|
|||
.BS 2 FID
|
||||
.BS 4 Offset
|
||||
.HS 00000000 Timeout
|
||||
.HS 00001 WriteMode=WritethroughMode
|
||||
.HS 0001 WriteMode=WritethroughMode
|
||||
.BS 2 Remaining
|
||||
.HS 0000 Reserved
|
||||
.BS 2 DataLength
|
||||
|
@ -1469,7 +1490,7 @@ SMB.Trans2.H .DA #15 WORD COUNT
|
|||
.BS 2 TotalParamCount
|
||||
.DA 0 TotalDataCount
|
||||
.DA 10 MaxParameterCount
|
||||
.DA 480 MaxDataCount
|
||||
.DA 450 MaxDataCount
|
||||
.DA #0 MaxSetupCount
|
||||
.HS 00 Reserved1
|
||||
.DA 0 Flags
|
||||
|
@ -1541,7 +1562,6 @@ hLIBTCPIP .BS 1
|
|||
pLIBTCPIP .BS 2
|
||||
hSocket .BS 1
|
||||
hReq .BS 1
|
||||
hResp .BS 1
|
||||
*--------------------------------------
|
||||
CIFS.Status .BS 1
|
||||
CIFS.PID .BS 1
|
||||
|
|
|
@ -16,6 +16,7 @@ ICMP.IN.ECHOREQ ldy #S.IP.DST+3
|
|||
.1 lda (ZPFrameInPtr),y
|
||||
cmp IPCFG+S.IPCFG.IP,x
|
||||
bne ICMP.IN.EXIT
|
||||
|
||||
dey
|
||||
dex
|
||||
bne .1
|
||||
|
@ -54,9 +55,11 @@ ICMP.IN.ECHOREP jsr FRM.GetTargetSKT.RAW
|
|||
|
||||
ldy #S.ICMP.IDENTIFIER
|
||||
lda (ZPFrameInPtr),y
|
||||
sta SKT.LOC.ADDR+S.SOCKADDR.PORT+1
|
||||
sta SKT.REM.ADDR+S.SOCKADDR.PORT+1
|
||||
iny
|
||||
lda (ZPFrameInPtr),y
|
||||
sta SKT.LOC.ADDR+S.SOCKADDR.PORT
|
||||
sta SKT.REM.ADDR+S.SOCKADDR.PORT
|
||||
|
||||
jsr SKT.FindMatchingLocRem
|
||||
|
|
|
@ -221,7 +221,7 @@ SKT.connect.SEQPKT
|
|||
bcs .99
|
||||
|
||||
lda #S.SOCKET.TCP.S.SYNSENT
|
||||
jmp SKT.StoreTCB.S
|
||||
jsr SKT.StoreTCB.S
|
||||
|
||||
.99 lda #ERR.SKT.NOCONN
|
||||
sec
|
||||
|
|
|
@ -152,9 +152,12 @@ TCP.IN.JMP.ESTBLSH
|
|||
dex
|
||||
bpl .1
|
||||
|
||||
bcc .70 ACK > SENT SEQ ????
|
||||
|
||||
lda TmpDWord+3
|
||||
ldx TmpDWord+2
|
||||
bne .2
|
||||
|
||||
tay
|
||||
beq .4
|
||||
|
||||
|
@ -224,7 +227,8 @@ TCP.IN.JMP.ESTBLSH
|
|||
jsr TCP.AddAYToSktCacheAtX
|
||||
|
||||
jsr SKT.StoreTCB update socket
|
||||
jsr TCP.SetSocketTCPO.ACK ...and ack data
|
||||
|
||||
.70 jsr TCP.SetSocketTCPO.ACK ...and ack data
|
||||
|
||||
.7 ldy #S.TCP.OPTIONS
|
||||
lda (ZPFrameInPtr),y
|
||||
|
|
|
@ -741,6 +741,45 @@ XDOS.SPParams .HS 03 # of parms (always 3 except format)
|
|||
XDOS.SPParams.U .HS 00 unit number
|
||||
XDOS.SPParams.B .HS 0000 data buffer
|
||||
.HS 000000 block number (3 bytes)
|
||||
*--------------------------------------
|
||||
.DO XRWDBG=1
|
||||
XRW.DEBUG sta CLRPAGE2
|
||||
|
||||
lda #"R"
|
||||
bit XRW.bWrite
|
||||
bpl .1
|
||||
|
||||
lda #"W"
|
||||
|
||||
.1 sta $723
|
||||
|
||||
ldx #$24
|
||||
|
||||
lda XRW.ReqTrack
|
||||
jsr .6
|
||||
|
||||
lda XRW.ReqSector
|
||||
|
||||
.6 pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
jsr .7
|
||||
|
||||
pla
|
||||
|
||||
.7 and #$0F
|
||||
ora #$B0
|
||||
cmp #"9"+1
|
||||
bcc .8
|
||||
|
||||
adc #6
|
||||
|
||||
.8 sta $700,x
|
||||
inx
|
||||
rts
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
* data tables
|
||||
*--------------------------------------
|
||||
|
@ -952,7 +991,7 @@ XDOS.SPStatus .HS 00000000
|
|||
XDOS.DATA.LEN .EQ *-XDOS.DATA
|
||||
.LIST OFF
|
||||
.ED
|
||||
|
||||
*--------------------------------------
|
||||
* zero fill to page boundary - 3 ($FEFD). so that cortland flag stays within page boundary.
|
||||
.LIST ON
|
||||
XDOS.FREE .EQ $FEFD-*-XDOS.DATA.LEN (2.0.3 = $0C)
|
||||
|
|
|
@ -191,14 +191,6 @@ XRW.TrackSelect lda #2
|
|||
sta XRW.RecalibrateCnt
|
||||
sta XRW.BadSeek
|
||||
|
||||
* lda XRW.ReqTrack
|
||||
* jsr XRW.SEEK2T
|
||||
|
||||
* lda #5
|
||||
* jsr XRW.Wait100usecA
|
||||
|
||||
* jsr XRW.SEEKOFF
|
||||
|
||||
.1 stz XRW.RetryCnt
|
||||
|
||||
.2 jsr XRW.ReadAddr read next address field.
|
||||
|
@ -217,7 +209,7 @@ XRW.TrackSelect lda #2
|
|||
sta XRW.D2Trk-1,y
|
||||
|
||||
lda #0
|
||||
sta XRW.D2VolNum-1,y reset volnum for seeking 4 Qtracks
|
||||
sta XRW.D2VolNum-1,y reset volnum for seeking 41 Qtracks
|
||||
|
||||
jsr XRW.Seek Seek from Track 41 -> 0
|
||||
bra .1
|
||||
|
@ -249,7 +241,15 @@ XRW.TrackSelect lda #2
|
|||
jsr XRW.Seek
|
||||
bra .3
|
||||
|
||||
.8 clc
|
||||
.8
|
||||
* jsr XRW.SEEK2T
|
||||
|
||||
* lda #1
|
||||
* jsr XRW.Wait100usecA
|
||||
|
||||
* jsr XRW.SEEKOFF
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
.LIST ON
|
||||
|
@ -309,14 +309,14 @@ XRW.ReadAddr ldy #$FC
|
|||
tay if final checksum non-zero,
|
||||
bne .99 (2) then error.
|
||||
|
||||
clc (2)
|
||||
|
||||
.9 lda IO.D2.RData,x (4)
|
||||
bpl .9 (2)
|
||||
|
||||
eor #$DE (2)
|
||||
bne .99 (2)
|
||||
|
||||
clc (2)
|
||||
|
||||
rts (6)
|
||||
|
||||
.99 sec
|
||||
|
@ -344,7 +344,8 @@ XRW.Seek ldx XRW.UnitIndex
|
|||
sta XRW.D2Trk-1,x will be current track at the end
|
||||
|
||||
tya
|
||||
jsr XRW.Seek2QT
|
||||
jsr XRW.Seek2QTXY
|
||||
lda #1
|
||||
bra .4
|
||||
|
||||
.1 pha
|
||||
|
@ -377,10 +378,10 @@ XRW.Seek ldx XRW.UnitIndex
|
|||
inc
|
||||
inc
|
||||
|
||||
.3 jsr XRW.SEEK2QT2
|
||||
.3 jsr XRW.SEEK2QTY
|
||||
|
||||
.4 lda XRW.SeekTime
|
||||
jsr XRW.Wait100usecA
|
||||
lda XRW.SeekTime
|
||||
.4 jsr XRW.Wait100usecA
|
||||
|
||||
lda XRW.CurrentQTrack
|
||||
cmp XRW.TargetQTrack
|
||||
|
@ -389,51 +390,44 @@ XRW.Seek ldx XRW.UnitIndex
|
|||
jsr XRW.Wait25600usec
|
||||
|
||||
XRW.SEEKOFF pha
|
||||
lda IO.D2.Ph0Off,x
|
||||
nop
|
||||
nop
|
||||
lda IO.D2.Ph0Off,y
|
||||
pla
|
||||
rts
|
||||
*--------------------------------------
|
||||
XRW.SEEK2T ldx XRW.UnitIndex
|
||||
jsr XRW.Trk2Qtrk
|
||||
|
||||
XRW.SEEK2QT pha
|
||||
and #6
|
||||
ora A2L
|
||||
tax
|
||||
|
||||
pla
|
||||
inc
|
||||
|
||||
XRW.SEEK2QT2 and #6
|
||||
ora A2L
|
||||
tay
|
||||
|
||||
* lda A2L
|
||||
* ora #IO.D2.RData
|
||||
* sta .1+1
|
||||
* sta .2+1
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
*.1 lda IO.D2.RData SELF MODIFIED
|
||||
nop
|
||||
nop
|
||||
lda IO.D2.Ph0On,y
|
||||
*.2 lda IO.D2.RData SELF MODIFIED
|
||||
rts
|
||||
*--------------------------------------
|
||||
XRW.Trk2Qtrk asl x2
|
||||
lda A2L
|
||||
ora #IO.D2.RData
|
||||
sta .1+1
|
||||
sta .2+1
|
||||
|
||||
lda IO.D2.Ph0Off,x
|
||||
.1 lda IO.D2.RData SELF MODIFIED
|
||||
|
||||
bit XRW.D2VolNum-1,x
|
||||
bpl .1 x4
|
||||
bvs .1 > $C0 ? (VOL=254)
|
||||
lda IO.D2.Ph0Off,y
|
||||
.2 lda IO.D2.RData SELF MODIFIED
|
||||
|
||||
lsr x3
|
||||
pla
|
||||
rts
|
||||
*--------------------------------------
|
||||
XRW.CheckMotorOn
|
||||
ldx A2L
|
||||
XRW.CheckMotorOnX
|
||||
ldy #0 init loop counter.
|
||||
|
||||
.1 adc #$ff SELF MODIFIED
|
||||
.1 lda IO.D2.RData,x read the shift register.
|
||||
jsr .9 delay
|
||||
|
||||
pha
|
||||
pla more delay.
|
||||
|
||||
cmp IO.D2.RData,x has shift reg changed ?
|
||||
bne .9 yes, motor is moving.
|
||||
|
||||
dey no, dec retry counter
|
||||
bne .1 and try 256 times.
|
||||
|
||||
.9 rts Z if motor OFF
|
||||
*--------------------------------------
|
||||
XRW.TestWP ldx A2L
|
||||
lda IO.D2.ReadProt,x test for write protected
|
||||
lda IO.D2.ReadMode,x
|
||||
rol write protect-->carry-->bit 0=1
|
||||
lda IO.D2.RData,x keep in read mode
|
||||
rts
|
||||
*--------------------------------------
|
||||
* preniblize subroutine (16 sector format)
|
||||
|
@ -560,18 +554,22 @@ L596F ldy #$FF index to last byte of data to write.
|
|||
XRW.SectorIO bit XRW.bWrite
|
||||
bpl .1
|
||||
|
||||
lda XRW.ReqTrack
|
||||
jsr XRW.SEEK2T
|
||||
phx
|
||||
phy
|
||||
* lda XRW.ReqTrack
|
||||
* jsr XRW.SEEK2T
|
||||
* phx
|
||||
* phy
|
||||
|
||||
jsr XRW.PreNibble
|
||||
ply
|
||||
plx
|
||||
jsr XRW.SEEKOFF
|
||||
|
||||
* ply
|
||||
* plx
|
||||
* jsr XRW.SEEKOFF
|
||||
|
||||
.1 stz XRW.RetryCnt
|
||||
|
||||
.DO XRWDBG=1
|
||||
jsr XRW.DEBUG
|
||||
.FIN
|
||||
|
||||
.2 jsr XRW.ReadAddr
|
||||
bcs .3 (2)
|
||||
|
@ -765,13 +763,6 @@ wnibl sta IO.D2.WLoad,x (5) nibl write
|
|||
XRW.Write.RTS rts (6)
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
XRW.TestWP ldx A2L
|
||||
lda IO.D2.ReadProt,x test for write protected
|
||||
lda IO.D2.ReadMode,x
|
||||
rol write protect-->carry-->bit 0=1
|
||||
lda IO.D2.RData,x keep in read mode
|
||||
rts
|
||||
*--------------------------------------
|
||||
XRW.Wait25600usec
|
||||
lda #0
|
||||
XRW.Wait100usecA
|
||||
|
@ -945,65 +936,43 @@ L57CD pla place last byte into user buffer
|
|||
XRW.Read.RTS rts
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
* determine if motor is stopped
|
||||
*
|
||||
* if stopped, controller's shift register will not be changing.
|
||||
* return y = 0 and zero flag set if it is stopped.
|
||||
*--------------------------------------
|
||||
XRW.CheckMotorOn
|
||||
ldx A2L
|
||||
XRW.CheckMotorOnX
|
||||
ldy #0 init loop counter.
|
||||
XRW.SEEK2T ldx XRW.UnitIndex
|
||||
jsr XRW.Trk2Qtrk
|
||||
|
||||
.1 lda IO.D2.RData,x read the shift register.
|
||||
jsr .9 delay
|
||||
|
||||
pha
|
||||
pla more delay.
|
||||
|
||||
cmp IO.D2.RData,x has shift reg changed ?
|
||||
bne .9 yes, motor is moving.
|
||||
|
||||
dey no, dec retry counter
|
||||
bne .1 and try 256 times.
|
||||
|
||||
.9 rts Z if motor OFF
|
||||
*--------------------------------------
|
||||
XRW.DEBUG sta CLRPAGE2
|
||||
|
||||
lda #"R"
|
||||
bit XRW.bWrite
|
||||
bpl .1
|
||||
|
||||
lda #"W"
|
||||
|
||||
.1 sta $723
|
||||
|
||||
ldx #$24
|
||||
|
||||
lda XRW.ReqTrack
|
||||
jsr .6
|
||||
|
||||
lda XRW.ReqSector
|
||||
|
||||
.6 pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
jsr .7
|
||||
XRW.SEEK2QTXY pha
|
||||
and #6
|
||||
ora A2L
|
||||
tax
|
||||
|
||||
pla
|
||||
inc
|
||||
|
||||
.7 and #$0F
|
||||
ora #$B0
|
||||
cmp #"9"+1
|
||||
bcc .8
|
||||
XRW.SEEK2QTY and #6
|
||||
ora A2L
|
||||
tay
|
||||
|
||||
adc #6
|
||||
lda A2L
|
||||
ora #IO.D2.RData
|
||||
sta .1+1
|
||||
sta .2+1
|
||||
|
||||
.8 sta $700,x
|
||||
inx
|
||||
lda IO.D2.Ph0On,y
|
||||
.1 lda IO.D2.RData SELF MODIFIED
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
.2 lda IO.D2.RData SELF MODIFIED
|
||||
rts
|
||||
*--------------------------------------
|
||||
XRW.Trk2Qtrk asl x2
|
||||
sta .1+1
|
||||
|
||||
bit XRW.D2VolNum-1,x
|
||||
bpl .1 x4
|
||||
bvs .1 > $C0 ? (VOL=254)
|
||||
|
||||
lsr x3
|
||||
|
||||
.1 adc #$ff SELF MODIFIED
|
||||
rts
|
||||
*--------------------------------------
|
||||
.LIST ON
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
.OP 65816
|
||||
.OR $2000
|
||||
.TF PRODOS.FX,TSYS
|
||||
.LIST OFF
|
||||
.OP 65816
|
||||
.OR $2000
|
||||
.TF PRODOS.FX,TSYS
|
||||
*--------------------------------------
|
||||
READCAT .EQ 0 Boot Block read Catalog at $C00
|
||||
READCAT .EQ 0 Boot Block read Catalog at $C00
|
||||
ENHFILENAME .EQ 1
|
||||
LOWERCASE .EQ 1
|
||||
ACL .EQ 1
|
||||
LOGO .EQ 1
|
||||
*--------------------------------------
|
||||
XRWDBG .EQ 1
|
||||
*--------------------------------------
|
||||
.INB inc/zp.i
|
||||
.INB inc/io.i
|
||||
|
@ -198,7 +200,7 @@ X.Unpak.XatYA sty ZPOutBufPtr
|
|||
lda PAKME.Table,x
|
||||
sta ZPInBufPtr
|
||||
lda PAKME.Table+1,x
|
||||
sta ZPInBufPtr+1
|
||||
sta ZPInBufPtr+1
|
||||
.INB usr/src/shared/x.unpak.s
|
||||
.DO LOGO
|
||||
.INB usr/src/prodos.fx/prodos.s.logo
|
||||
|
|
|
@ -245,8 +245,6 @@ CS.RUN.Connect >PUSHBI 0 no protocol
|
|||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||
bcs .9
|
||||
|
||||
>SLEEP
|
||||
|
||||
>PUSHEA.G SA.REMOTE
|
||||
lda hSocket
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ ExcludeMatch sec
|
|||
>SYSCALL StrUpr
|
||||
|
||||
.10 lda (ZPPtr2) Get first pattern byte
|
||||
beq .8 Match always if empty
|
||||
beq .8 Match always if empty
|
||||
|
||||
ldy #0
|
||||
bra .2
|
||||
|
@ -59,10 +59,10 @@ ExcludeMatch sec
|
|||
|
||||
.2 cmp #'*'
|
||||
beq .5
|
||||
|
||||
|
||||
.3 lda (ZPFileName),y we must match ? or regular char, check if at end of string
|
||||
beq .9 no char left, exit with error
|
||||
|
||||
beq .9 no char left, exit with error
|
||||
|
||||
lda (ZPPtr2) get back pattern char
|
||||
cmp #'?'
|
||||
beq .4 no need to compare, any char will match
|
||||
|
@ -71,37 +71,37 @@ ExcludeMatch sec
|
|||
bne .9 no match, exit
|
||||
|
||||
.4 iny advance to next char to compare
|
||||
bra .1 continue if remaining char in pattern
|
||||
bra .1 continue if remaining char in pattern
|
||||
|
||||
.41 lda (ZPFileName),y end of pattern, but end of string ?
|
||||
beq .8 yes, string matched entirely
|
||||
* no, remaining char in string, no match
|
||||
.9 sec
|
||||
rts
|
||||
rts
|
||||
|
||||
.5 jsr FilterMatch.NextPtr2 we have '*', last char of pattern ?
|
||||
beq .8 yes, match everything, including empty string
|
||||
|
||||
|
||||
cmp #'*' another '*' ?
|
||||
beq .5 yes, '**' = '*', go next char
|
||||
cmp #'?' '*?' ? we must match a least one char
|
||||
beq .3
|
||||
|
||||
|
||||
.7 lda (ZPFileName),y we need at least one remaining char in string, check if at end of string
|
||||
beq .9 no chance to match ? or regular char
|
||||
|
||||
|
||||
iny
|
||||
jsr FilterMatch.CmpPtr2CharPtr1Y compare with char in string
|
||||
bne .7 not equal to next non wildcard in pattern
|
||||
bne .7 not equal to next non wildcard in pattern
|
||||
|
||||
iny
|
||||
bra .1 go check remaining char in pattern...
|
||||
|
||||
|
||||
.8
|
||||
FilterMatch.CLCRTS
|
||||
clc
|
||||
FilterMatch.RTS
|
||||
rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
FilterMatch.CmpPtr2CharPtr1Y
|
||||
phx
|
||||
|
@ -154,11 +154,16 @@ InitSrcDirYA >PUSHYA
|
|||
cmp /S.STAT.MODE.DIR
|
||||
bne .4 TYPE not a DIR, extract....
|
||||
bra .5 TYPE=DIR, do not extract pattern
|
||||
.ELSE
|
||||
.ELSE
|
||||
bra .4
|
||||
.FIN
|
||||
|
||||
.1 jsr GetPtr1Len TYPE is not DIR, check if wc
|
||||
.1 cmp #MLI.E.INVPATH
|
||||
beq .11
|
||||
|
||||
jmp .9
|
||||
|
||||
.11 jsr GetPtr1Len TYPE is not DIR, check if wc
|
||||
|
||||
dey
|
||||
|
||||
|
@ -200,6 +205,7 @@ InitSrcDirYA >PUSHYA
|
|||
|
||||
>SYSCALL StrDup
|
||||
bcs .9
|
||||
|
||||
txa
|
||||
>STA.G hFilter
|
||||
|
||||
|
@ -209,6 +215,7 @@ InitSrcDirYA >PUSHYA
|
|||
.5 >LDYAI 256
|
||||
>SYSCALL GetMem Get a 256 buffer to store BasePath
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPtr2
|
||||
txa
|
||||
>STA.G hSrcBasePath
|
||||
|
@ -235,7 +242,9 @@ InitSrcDirYA >PUSHYA
|
|||
ldy #index
|
||||
lda #1
|
||||
sta (pData),y index=hDIRs[0]
|
||||
|
||||
jsr .9 Cleanup
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
|
|
|
@ -9,11 +9,12 @@ NEW
|
|||
.TF drv/ssc.drv
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
ZPArgPtr .EQ ZPBIN
|
||||
ZPParityPtr .EQ ZPBIN+2
|
||||
ZPControlPtr .EQ ZPBIN+4
|
||||
ZPhParity .EQ ZPBIN+6
|
||||
ZPhControl .EQ ZPBIN+7
|
||||
.DUMMY
|
||||
.OR ZPBIN
|
||||
ZS.START
|
||||
ZPArgPtr .BS 2
|
||||
ZPSlotPtr .BS 2
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
|
@ -22,10 +23,9 @@ 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 #32 SS
|
||||
.DA #10 ZP
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
|
@ -36,20 +36,16 @@ L.MSG.DETECT.KO .DA MSG.DETECT.KO
|
|||
L.DRV.CS.START .DA DRV.CS.START
|
||||
L.FD.DEV .DA FD.DEV
|
||||
L.FD.DEV.NAME .DA FD.DEV.NAME
|
||||
L.SSCANF.ARGS .DA SSCANF.ARGS
|
||||
L.DCB.BAUD .DA DCB+S.DCB.COM.BAUD
|
||||
L.DCB.DATA .DA DCB+S.DCB.COM.DATA
|
||||
L.DCB.STOP .DA DCB+S.DCB.COM.STOP
|
||||
.DA 0 End Of Reloc Table
|
||||
*--------------------------------------
|
||||
Dev.Detect >STYA ARGS
|
||||
Dev.Detect >STYA ZPArgPtr
|
||||
|
||||
>LDYA L.MSG.DETECT
|
||||
>SYSCALL PutS
|
||||
stz ZPArgPtr
|
||||
stz ZPSlotPtr
|
||||
|
||||
lda #$C1
|
||||
sta ZPArgPtr+1
|
||||
sta ZPSlotPtr+1
|
||||
|
||||
.1 and #$0f
|
||||
tay
|
||||
|
@ -59,7 +55,7 @@ Dev.Detect >STYA ARGS
|
|||
ldx #DEVSIG.Length-1
|
||||
|
||||
.2 ldy DEVSIG.Offset,x
|
||||
lda (ZPArgPtr),y
|
||||
lda (ZPSlotPtr),y
|
||||
cmp DEVSIG.Value,x
|
||||
bne .3
|
||||
|
||||
|
@ -69,24 +65,19 @@ Dev.Detect >STYA ARGS
|
|||
bra .4
|
||||
|
||||
.3 inc FD.DEV.NAME+3
|
||||
inc ZPArgPtr+1 no match, try next slot....
|
||||
lda ZPArgPtr+1
|
||||
inc ZPSlotPtr+1 no match, try next slot....
|
||||
lda ZPSlotPtr+1
|
||||
cmp #$C8
|
||||
bne .1
|
||||
|
||||
>LDYA L.MSG.DETECT.KO
|
||||
>SYSCALL PutS
|
||||
|
||||
lda #MLI.E.NODEV Not Found in any slot, exiting
|
||||
sec
|
||||
rts
|
||||
.99 rts
|
||||
|
||||
.4 lda ZPArgPtr+1
|
||||
and #$0F
|
||||
pha
|
||||
tay
|
||||
lda #A2osX.S.COM
|
||||
sta A2osX.S,y
|
||||
pla
|
||||
.4 lda ZPSlotPtr+1
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
|
@ -94,8 +85,9 @@ Dev.Detect >STYA ARGS
|
|||
clc
|
||||
adc #$8F
|
||||
sta DEVSLOTn08F
|
||||
|
||||
jsr Dev.ParseArgs
|
||||
bcs .9
|
||||
bcs .99
|
||||
|
||||
.8 >PUSHW L.MSG.DETECT.OK
|
||||
>PUSHW L.FD.DEV.NAME
|
||||
|
@ -114,61 +106,227 @@ Dev.Detect >STYA ARGS
|
|||
>PUSHW L.FD.DEV
|
||||
>PUSHW L.FD.DEV.NAME
|
||||
>SYSCALL MKDev
|
||||
bcs .9
|
||||
|
||||
lda ZPSlotPtr+1
|
||||
and #$0F
|
||||
tay
|
||||
lda #A2osX.S.COM
|
||||
sta A2osX.S,y
|
||||
|
||||
* clc
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Dev.ParseArgs >LDYA ARGS
|
||||
>STYA ZPArgPtr
|
||||
lda (ZPArgPtr)
|
||||
Dev.ParseArgs lda (ZPArgPtr)
|
||||
bne .1
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.1 stz ZPhParity
|
||||
stz ZPhControl
|
||||
|
||||
>LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcs .2
|
||||
|
||||
>STYA ZPParityPtr
|
||||
stx ZPhParity
|
||||
|
||||
>LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
|
||||
.2 bcs .90
|
||||
|
||||
>STYA ZPControlPtr
|
||||
stx ZPhControl
|
||||
|
||||
>PUSHW ZPArgPtr
|
||||
>PUSHW L.SSCANF.ARGS
|
||||
|
||||
>PUSHW L.DCB.BAUD
|
||||
>PUSHW L.DCB.DATA
|
||||
>PUSHW L.DCB.STOP
|
||||
>PUSHW ZPParityPtr
|
||||
>PUSHW ZPControlPtr
|
||||
>PUSHBI 10 5 x byte PTRs
|
||||
>SYSCALL SScanF
|
||||
.1 stz DCB+S.DCB.COM.BAUD
|
||||
stz DCB+S.DCB.COM.BAUD+1
|
||||
stz DCB+S.DCB.COM.BAUD+2
|
||||
stz DCB+S.DCB.COM.BAUD+3
|
||||
|
||||
.2 jsr DevNextChar
|
||||
beq .90
|
||||
|
||||
cmp #','
|
||||
beq .3
|
||||
|
||||
jsr Dev.IsDigit
|
||||
bcs .90
|
||||
|
||||
jsr Dev.BaudT10pA
|
||||
bra .2
|
||||
|
||||
.3 jsr Dev.CheckBaud
|
||||
bcs .99
|
||||
|
||||
.90 lda ZPhControl
|
||||
beq .91
|
||||
jsr DevNextChar
|
||||
beq .99
|
||||
|
||||
ldx #P2.Cnt-1
|
||||
|
||||
.4 cmp P2,x
|
||||
beq .5
|
||||
|
||||
dex
|
||||
bpl .4
|
||||
|
||||
.90 bra .99
|
||||
|
||||
.5 lda #%11100000
|
||||
trb DEVCMD
|
||||
|
||||
txa
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
tsb DEVCMD
|
||||
|
||||
jsr DevCheckSep
|
||||
bcs .99
|
||||
|
||||
ldx #P3.Cnt-1
|
||||
|
||||
.6 cmp P3,x
|
||||
beq .7
|
||||
|
||||
dex
|
||||
bpl .6
|
||||
|
||||
bra .99
|
||||
|
||||
>SYSCALL FreeMem
|
||||
.7 lda #%01100000
|
||||
trb DEVCTL
|
||||
|
||||
txa
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
tsb DEVCTL
|
||||
|
||||
jsr DevCheckSep
|
||||
bcs .99
|
||||
|
||||
.91 lda ZPhParity
|
||||
beq .92
|
||||
ldx #P4.Cnt-1
|
||||
|
||||
.8 cmp P4,x
|
||||
beq .9
|
||||
|
||||
dex
|
||||
bpl .8
|
||||
|
||||
bra .99
|
||||
|
||||
>SYSCALL FreeMem
|
||||
.9 lda #%10000000
|
||||
trb DEVCTL
|
||||
|
||||
txa
|
||||
rol
|
||||
rol
|
||||
tsb DEVCTL
|
||||
|
||||
jsr DevCheckSep
|
||||
bcs .99
|
||||
|
||||
.92 lda #E.SYN
|
||||
ldx #P5.Cnt-1
|
||||
|
||||
.10 cmp P5,x
|
||||
beq .11
|
||||
|
||||
dex
|
||||
bpl .10
|
||||
|
||||
bra .99
|
||||
|
||||
.11 stx DEVFLOWCTRL
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.99 lda #E.SYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
DevCheckSep jsr DevNextChar
|
||||
beq .9
|
||||
|
||||
cmp #','
|
||||
bne .9
|
||||
|
||||
jsr DevNextChar
|
||||
beq .9
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
DevNextChar lda (ZPArgPtr)
|
||||
beq .9
|
||||
|
||||
inc ZPArgPtr
|
||||
bne .9
|
||||
|
||||
inc ZPArgPtr+1
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Dev.IsDigit cmp #'0'
|
||||
bcc .9
|
||||
|
||||
cmp #'9'+1
|
||||
bcs .99
|
||||
|
||||
and #$0F
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
Dev.BaudT10pA pha
|
||||
|
||||
>PUSHL DCB+S.DCB.COM.BAUD
|
||||
>PUSHBI 0
|
||||
>PUSHBI 0
|
||||
>PUSHBI 0
|
||||
>PUSHBI 10
|
||||
>FPU MUL32
|
||||
|
||||
>PUSHBI 0
|
||||
>PUSHBI 0
|
||||
>PUSHBI 0
|
||||
pla
|
||||
>PUSHA
|
||||
>FPU ADD32
|
||||
>PULLL DCB+S.DCB.COM.BAUD
|
||||
rts
|
||||
*--------------------------------------
|
||||
Dev.CheckBaud ldx #0
|
||||
|
||||
.1 txa
|
||||
asl
|
||||
asl
|
||||
tay
|
||||
|
||||
lda DCB+S.DCB.COM.BAUD
|
||||
cmp P1,y
|
||||
bne .7
|
||||
|
||||
lda DCB+S.DCB.COM.BAUD+1
|
||||
cmp P1+1,y
|
||||
bne .7
|
||||
|
||||
lda DCB+S.DCB.COM.BAUD+2
|
||||
cmp P1+2,y
|
||||
bne .7
|
||||
|
||||
lda DCB+S.DCB.COM.BAUD+3
|
||||
cmp P1+3,y
|
||||
bne .7
|
||||
|
||||
lda #$F
|
||||
trb DEVCTL
|
||||
|
||||
txa
|
||||
tsb DEVCTL
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.7 inx
|
||||
cpx #P1.Cnt
|
||||
bcc .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
DEVSIG.Offset .HS 05070B0C
|
||||
DEVSIG.Value .HS 38180131
|
||||
|
@ -180,8 +338,36 @@ MSG.DETECT .AS "Apple SSC (Super Serial Card,//c Serial Port) Driver"
|
|||
.AZ "."
|
||||
MSG.DETECT.OK .AZ "SSC Installed As Device : %s\r\n"
|
||||
MSG.DETECT.KO .AZ "No SSC Found."
|
||||
SSCANF.ARGS .AZ "%u,%d,%d,%s,%s"
|
||||
ARGS .BS 2
|
||||
*--------------------------------------
|
||||
P1 .DA >115200 Baud
|
||||
.DA >50
|
||||
.DA >75
|
||||
.DA >110
|
||||
.DA >135
|
||||
.DA >150
|
||||
.DA >300
|
||||
.DA >600
|
||||
.DA >1200
|
||||
.DA >1800
|
||||
.DA >2400
|
||||
.DA >3600
|
||||
.DA >4800
|
||||
.DA >7200
|
||||
.DA >9600
|
||||
.DA >19200
|
||||
P1.Cnt .EQ 16
|
||||
*--------------------------------------
|
||||
P2 .AS "NOEMS" Parity
|
||||
P2.Cnt .EQ *-P2
|
||||
*--------------------------------------
|
||||
P3 .AS "8765" Data
|
||||
P3.Cnt .EQ *-P3
|
||||
*--------------------------------------
|
||||
P4 .AS "12" Stop
|
||||
P4.Cnt .EQ *-P4
|
||||
*--------------------------------------
|
||||
P5 .AS "NHX" flow Control
|
||||
P5.Cnt .EQ *-P5
|
||||
*--------------------------------------
|
||||
FD.DEV .DA #S.FD.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
|
@ -241,6 +427,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
|||
bne .3
|
||||
|
||||
ldy #S.DCB.COM-1
|
||||
|
||||
.2 lda DCB,y
|
||||
sta (ZPBufPtr),y
|
||||
dey
|
||||
|
@ -267,6 +454,15 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
|||
clc
|
||||
rts
|
||||
.ELSE
|
||||
|
||||
ldx DEVSLOTn08F
|
||||
lda SSC.STATUS-$8F,x
|
||||
and #SSC.STATUS.RDRF
|
||||
beq .4
|
||||
|
||||
lda #1
|
||||
|
||||
.4 dec
|
||||
.FIN
|
||||
.8 clc
|
||||
rts
|
||||
|
@ -323,28 +519,17 @@ OPEN.1 php
|
|||
stz OUTBUF.HEAD
|
||||
stz OUTBUF.TAIL
|
||||
|
||||
ldx DEVSLOTn08F
|
||||
stz SSC.RESET-$8F,x
|
||||
|
||||
lda #SSC.CTL.CLKINT+SSC.CTL.B9600+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP
|
||||
sta SSC.CTL-$8F,x
|
||||
|
||||
lda #SSC.CMD.TEIRQ+SSC.CMD.DTR
|
||||
sta SSC.CMD-$8F,x
|
||||
|
||||
.ELSE
|
||||
|
||||
ldx DEVSLOTn08F
|
||||
stz SSC.RESET-$8F,x
|
||||
|
||||
lda #SSC.CTL.CLKINT+SSC.CTL.B115200+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP
|
||||
sta SSC.CTL-$8F,x
|
||||
|
||||
lda #SSC.CMD.RIRQDIS+SSC.CMD.TE+SSC.CMD.DTR
|
||||
sta SSC.CMD-$8F,x
|
||||
|
||||
.FIN
|
||||
|
||||
ldx DEVSLOTn08F
|
||||
stz SSC.RESET-$8F,x
|
||||
|
||||
lda DEVCTL
|
||||
sta SSC.CTL-$8F,x
|
||||
|
||||
lda DEVCMD
|
||||
sta SSC.CMD-$8F,x
|
||||
|
||||
lda SSC.DATA-$8F,x discard any garbage byte
|
||||
lda SSC.STATUS-$8F,x clear any IRQ pending
|
||||
|
||||
|
@ -370,7 +555,7 @@ OPEN.1 php
|
|||
*--------------------------------------
|
||||
CLOSE lda DIB+S.DIB.S
|
||||
bit #S.DIB.S.OPENED
|
||||
bne OPEN.E
|
||||
beq OPEN.E
|
||||
|
||||
php
|
||||
sei
|
||||
|
@ -623,7 +808,7 @@ IRQ.INBUF sta $FFFF,y SELF MODIFIED
|
|||
IRQ.1 pla
|
||||
*------------ IRQ Out
|
||||
IRQ.2 bit #SSC.STATUS.TDRE
|
||||
beq IRQ.8 no transmition possible....
|
||||
beq IRQ.8 no transmission possible....
|
||||
|
||||
ldy OUTBUF.TAIL something to transmit ?
|
||||
cpy OUTBUF.HEAD
|
||||
|
@ -646,6 +831,14 @@ IRQ.9 sec
|
|||
DRV.CS.END
|
||||
DEVSLOTn08F .BS 1
|
||||
.DO SSCIRQ=1
|
||||
DEVCMD .DA #SSC.CMD.NOP+SSC.CMD.TEIRQ+SSC.CMD.DTR
|
||||
DEVCTL .DA #SSC.CTL.1S+SSC.CTL.8D+SSC.CTL.CLKINT+SSC.CTL.B9600
|
||||
.ELSE
|
||||
DEVCMD .DA #SSC.CMD.NOP+SSC.CMD.TE+SSC.CMD.RIRQDIS+SSC.CMD.DTR
|
||||
DEVCTL .DA #SSC.CTL.1S+SSC.CTL.8D+SSC.CTL.CLKINT+SSC.CTL.B115200
|
||||
.FIN
|
||||
DEVFLOWCTRL .BS 1
|
||||
.DO SSCIRQ=1
|
||||
INBUF.TAIL .BS 1
|
||||
INBUF.HEAD .BS 1
|
||||
OUTBUF.TAIL .BS 1
|
||||
|
@ -674,11 +867,11 @@ DCB .DA #S.DCB.T.COM
|
|||
.FIN
|
||||
.DA #8 DATA
|
||||
.DA #1 STOP
|
||||
.DA #S.DCB.COM.P.NONE PARITY
|
||||
.DA #S.DCB.COM.C.XONXOFF
|
||||
.DA #'N' PARITY
|
||||
.DA #'N' FLOW
|
||||
*--------------------------------------
|
||||
DRV.END
|
||||
MAN
|
||||
SAVE usr/src/shared/x.ssc.drv.s
|
||||
LOAD usr/src/drv/ssc.i.drv.s
|
||||
LOAD usr/src/drv/ssc.drv.s
|
||||
ASM
|
||||
|
|
|
@ -78,8 +78,7 @@ ARG32 .EQ ARG+1
|
|||
TXTPTR .EQ $B8
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR FAC 13 Bytes
|
||||
BIN.hMem .BS 1
|
||||
.OR FAC 12 Bytes
|
||||
BIN.R.CS.Start .BS 2
|
||||
BIN.R.CS.End .BS 2
|
||||
BIN.R.End .BS 2
|
||||
|
@ -97,7 +96,8 @@ ENV.bExp .BS 1
|
|||
.ED
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR ZPTMP 5 Bytes
|
||||
.OR ZPTMP 6 Bytes
|
||||
BIN.hMem .BS 1
|
||||
PS.bTXT .BS 1
|
||||
PS.hMem .BS 1
|
||||
PS.MemPtr .BS 2
|
||||
|
|
|
@ -153,9 +153,9 @@ Kernel.Init3 sta SETALTZP
|
|||
|
||||
jsr SysScrInit
|
||||
bcs *
|
||||
|
||||
|
||||
sta CLRMIXED
|
||||
|
||||
|
||||
>PUSHWI DEV.CONSOLE
|
||||
>PUSHBI O.RDWR
|
||||
>PUSHBI S.FI.T.TXT
|
||||
|
@ -473,7 +473,7 @@ CPU.Init >PUSHWI MSG.CPU
|
|||
lda A2osX.HZ
|
||||
asl
|
||||
tax
|
||||
|
||||
|
||||
.1 bit VBL //e : Wait VBL high....
|
||||
bpl .1
|
||||
|
||||
|
@ -492,11 +492,11 @@ CPU.Init >PUSHWI MSG.CPU
|
|||
pla (4)
|
||||
pha (3)
|
||||
pla (4)
|
||||
|
||||
|
||||
iny
|
||||
cpy #100
|
||||
bne .5
|
||||
|
||||
|
||||
ldy #0
|
||||
inc A2osX.CPUSPEED+1
|
||||
|
||||
|
@ -522,7 +522,7 @@ CPU.Init2c sta CLRIOUDIS
|
|||
|
||||
bit IO.IIC.CLRVBLIRQ clear //c IRQ
|
||||
|
||||
.3 lda #20
|
||||
.3 lda #40
|
||||
|
||||
.4 pha (3)
|
||||
pla (4)
|
||||
|
@ -531,11 +531,11 @@ CPU.Init2c sta CLRIOUDIS
|
|||
|
||||
dec
|
||||
bne .4
|
||||
|
||||
|
||||
iny
|
||||
cpy #100
|
||||
bne .5
|
||||
|
||||
|
||||
inc A2osX.CPUSPEED+1
|
||||
ldy #0
|
||||
|
||||
|
@ -798,36 +798,29 @@ DevMgrInit.VSD ldy #VSD.PATCH.SIZE-1
|
|||
.1 lda $BF41,y
|
||||
cmp VSD.PATCH,y
|
||||
bne .9
|
||||
|
||||
|
||||
dey
|
||||
bpl .1
|
||||
|
||||
|
||||
php
|
||||
sei
|
||||
|
||||
bit RRAMWRAMBNK2
|
||||
bit RRAMWRAMBNK2
|
||||
sta CLRALTZP
|
||||
lda $d002
|
||||
ldx $d001
|
||||
sta SETALTZP
|
||||
bit RRAMWRAMBNK1
|
||||
bit RRAMWRAMBNK1
|
||||
|
||||
sec
|
||||
sbc #$8F
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
tax
|
||||
lda #A2osX.S.VSDRIVE
|
||||
sta A2osX.S,x
|
||||
plp
|
||||
|
||||
.9 rts
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
VSD.PATCH bit RRAMWRAMBNK2
|
||||
jsr $D001
|
||||
jsr $D002
|
||||
bit RRAMWRAMBNK1
|
||||
rts
|
||||
VSD.PATCH.SIZE .EQ *-VSD.PATCH
|
||||
|
@ -879,7 +872,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||
.9 plp
|
||||
sec
|
||||
rts
|
||||
|
||||
|
||||
.1 cmp #A2osX.HWType.IIc
|
||||
beq .2
|
||||
|
||||
|
@ -891,10 +884,10 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||
|
||||
>LDYAI CORE.IRQ.TCLOCK
|
||||
jsr IrqMgrInit.SetV
|
||||
|
||||
|
||||
>LDYAI CORE.IRQ.TCLOCK.Off
|
||||
>STYA CORE.Quit+1
|
||||
|
||||
|
||||
>LDYAI MSG.IRQ.CLOCK
|
||||
bra .8
|
||||
|
||||
|
@ -904,7 +897,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||
lda #$60
|
||||
sta $5fa
|
||||
sta $5fb
|
||||
|
||||
|
||||
stz $4FF //c ROM FF
|
||||
stz $4FC //c ROM 1,2,3,4,5
|
||||
plp
|
||||
|
@ -987,7 +980,7 @@ IrqMgrInit.TClock
|
|||
sta CLRPAGE2
|
||||
sta $478,x
|
||||
sta $7f8,x
|
||||
|
||||
|
||||
sta SETPAGE2
|
||||
sta $478,x
|
||||
sta $7f8,x
|
||||
|
|
|
@ -343,8 +343,8 @@ K.FreeMem.ERR >PUSHWI K.FreeMem.MSG
|
|||
>PUSHA
|
||||
>PUSHBI 2
|
||||
|
||||
.1 >SYSCALL2 printf
|
||||
* >DEBUG
|
||||
>SYSCALL2 printf
|
||||
|
||||
lda #E.INVH
|
||||
sec
|
||||
rts
|
||||
|
|
|
@ -23,14 +23,14 @@ VSDRIVE.Init >LDYAI VSDRIVE.MSG0
|
|||
jsr VSDRIVE.Check
|
||||
bcs .90
|
||||
|
||||
.1 lda #$C1 Self Modified
|
||||
stz TmpPtr1
|
||||
lda #$C1
|
||||
sta TmpPtr1+1
|
||||
|
||||
.2 jsr SSC.Detect
|
||||
bcs .99
|
||||
|
||||
stx DRV+1 DRV.Slotn0
|
||||
|
||||
sta .1+1 Slot Cn
|
||||
lda TmpPtr1+1 Slot Cn
|
||||
and #$0F
|
||||
pha slot n
|
||||
>LDYAI VSDRIVE.SSCOK
|
||||
|
@ -66,8 +66,9 @@ VSDRIVE.Init >LDYAI VSDRIVE.MSG0
|
|||
.92 pha Push EC
|
||||
>LDYAI VSDRIVE.SRVKO
|
||||
jsr PrintFYA
|
||||
inc .1+1
|
||||
lda .1+1
|
||||
|
||||
inc TmpPtr1+1
|
||||
lda TmpPtr1+1
|
||||
cmp #$C8
|
||||
bne .2 Go try next SSC....
|
||||
|
||||
|
@ -75,12 +76,12 @@ VSDRIVE.Init >LDYAI VSDRIVE.MSG0
|
|||
jsr PrintFYA
|
||||
rts
|
||||
*--------------------------------------
|
||||
VSDRIVE.Check ldx #REGULAR.SIZE
|
||||
VSDRIVE.Check ldx #COPYRIGHT.LEN
|
||||
|
||||
sec
|
||||
|
||||
.1 lda DRV.EntryPoint-1,x
|
||||
eor REGULAR-1,x
|
||||
eor COPYRIGHT-1,x
|
||||
bne .9
|
||||
|
||||
dex
|
||||
|
@ -90,8 +91,7 @@ VSDRIVE.Check ldx #REGULAR.SIZE
|
|||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SSC.Detect stz TmpPtr1
|
||||
sta TmpPtr1+1
|
||||
SSC.Detect
|
||||
.1 ldx #DEVSIG.Value-DEVSIG.Offset-1
|
||||
|
||||
.2 ldy DEVSIG.Offset,x
|
||||
|
@ -102,7 +102,18 @@ SSC.Detect stz TmpPtr1
|
|||
dex
|
||||
bpl .2
|
||||
|
||||
lda TmpPtr1+1 A=SlotCN
|
||||
clc
|
||||
rts
|
||||
|
||||
.3 inc TmpPtr1+1 no match, try next slot....
|
||||
lda TmpPtr1+1
|
||||
cmp #$C8
|
||||
bne .1
|
||||
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
VSDRIVE.Ping lda TmpPtr1+1 A=SlotCN
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
|
@ -110,38 +121,32 @@ SSC.Detect stz TmpPtr1
|
|||
clc
|
||||
adc #$8F
|
||||
tax X=SlotN0
|
||||
|
||||
php
|
||||
sei
|
||||
|
||||
stz SSC.RESET-$8F,x
|
||||
lda #SSC.CTL.CLKINT+SSC.CTL.B115200+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP
|
||||
|
||||
lda #SSC.CTL.1S+SSC.CTL.8D+SSC.CTL.CLKINT+SSC.CTL.B115200
|
||||
sta SSC.CTL-$8F,x
|
||||
lda #SSC.CMD.RIRQDIS+SSC.CMD.TE+SSC.CMD.DTR
|
||||
|
||||
lda #SSC.CMD.NOP+SSC.CMD.RIRQDIS+SSC.CMD.TE+SSC.CMD.DTR
|
||||
sta SSC.CMD-$8F,x
|
||||
|
||||
lda TmpPtr1+1 A=Slot Cn, X=n0
|
||||
|
||||
clc
|
||||
rts X=SlotN0, A=SlotCN
|
||||
|
||||
.3 inc TmpPtr1+1 no match, try next slot....
|
||||
lda TmpPtr1+1
|
||||
cmp #$C8
|
||||
bne .1
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
VSDRIVE.Ping ldx DRV+1 DRV.Slotn0
|
||||
lda SSC.DATA-$8F,x discard any garbage byte
|
||||
lda SSC.STATUS-$8F,x clear any IRQ pending
|
||||
|
||||
stz VSDRIVE.Ping.TO
|
||||
stz VSDRIVE.Ping.TO+1
|
||||
|
||||
|
||||
.10 jsr VSDRIVE.IncTimer Wait.......
|
||||
bne .10
|
||||
|
||||
ldy #10
|
||||
|
||||
.1 lda SSC.STATUS-$8F,x
|
||||
and #SSC.STATUS.TDRE Ready for transmit?
|
||||
bne .20
|
||||
and #SSC.STATUS.nDCD Ready for transmit?
|
||||
beq .20
|
||||
|
||||
jsr VSDRIVE.IncTimer Wait.......
|
||||
bne .1
|
||||
|
@ -150,13 +155,9 @@ VSDRIVE.Ping ldx DRV+1 DRV.Slotn0
|
|||
bne .1
|
||||
|
||||
lda #1
|
||||
sec
|
||||
rts Time Out.....
|
||||
bra .9 Time Out.....
|
||||
|
||||
.20 stz VSDRIVE.Ping.TO
|
||||
stz VSDRIVE.Ping.TO+1
|
||||
|
||||
ldy #5 5 bytes to send
|
||||
.20 ldy #5 5 bytes to send
|
||||
|
||||
.2 lda VSDRIVE.CMDS-1,y
|
||||
sta SSC.DATA-$8F,x
|
||||
|
@ -169,20 +170,20 @@ VSDRIVE.Ping ldx DRV+1 DRV.Slotn0
|
|||
bne .3
|
||||
|
||||
lda #2
|
||||
sec
|
||||
rts
|
||||
bra .9
|
||||
|
||||
.4 dey
|
||||
bne .2 next byte
|
||||
|
||||
lda #521^$ffff 522 bytes to recieve
|
||||
lda #521^$ffff 522 bytes to receive
|
||||
sta VSDRIVE.Ping.BC
|
||||
lda /521^$ffff
|
||||
sta VSDRIVE.Ping.BC+1
|
||||
|
||||
stz VSDRIVE.Ping.TO
|
||||
stz VSDRIVE.Ping.TO+1
|
||||
|
||||
ldy #3 EC if no byte recieved
|
||||
ldy #3 EC=3 if no byte received
|
||||
|
||||
.5 lda SSC.STATUS-$8F,x
|
||||
and #SSC.STATUS.RDRF incoming char?
|
||||
|
@ -192,6 +193,9 @@ VSDRIVE.Ping ldx DRV+1 DRV.Slotn0
|
|||
bne .5
|
||||
|
||||
tya
|
||||
|
||||
.9 stz SSC.RESET-$8F,x
|
||||
plp
|
||||
sec
|
||||
rts
|
||||
|
||||
|
@ -204,6 +208,10 @@ VSDRIVE.Ping ldx DRV+1 DRV.Slotn0
|
|||
inc VSDRIVE.Ping.BC+1
|
||||
bne .5
|
||||
|
||||
lda #SSC.CMD.NOP+SSC.CMD.RIRQDIS+SSC.CMD.TE
|
||||
sta SSC.CMD-$8F,x
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -270,7 +278,7 @@ VSDRIVE.SetSlot ldx #2 Starts at Slot1
|
|||
|
||||
rts sec from CPX
|
||||
*--------------------------------------
|
||||
VSDRIVE.Install ldx #PATCH.SIZE
|
||||
VSDRIVE.Install ldx #PATCH.LEN
|
||||
|
||||
.1 lda PATCH-1,x
|
||||
sta DRV.EntryPoint-1,x
|
||||
|
@ -287,6 +295,31 @@ VSDRIVE.Install ldx #PATCH.SIZE
|
|||
dex
|
||||
bne .2
|
||||
|
||||
lda TmpPtr1+1 A=SlotCN
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
|
||||
ora #SSC.DATA
|
||||
sta DRV.SSCSend.D+1
|
||||
sta DRV.SSCGet.D+1
|
||||
|
||||
inc #SSC.STATUS
|
||||
|
||||
sta DRV.SSCSend.S+1
|
||||
sta DRV.SSCGet.S+1
|
||||
sta DRV.SSCClose.S+1
|
||||
|
||||
inc #SSC.CMD
|
||||
|
||||
sta DRV.INIT.C+1
|
||||
sta DRV.SSCClose.C+1
|
||||
|
||||
lda TmpPtr1+1 A=SlotCN
|
||||
and #$0F
|
||||
sta DRV.START
|
||||
|
||||
bit RROMBNK1
|
||||
|
||||
clc
|
||||
|
@ -308,15 +341,15 @@ VSDRIVE.OK .AZ "VSDRIVE Driver Successfully Installed.\n"
|
|||
*--------------------------------------
|
||||
* ProDOS $BE41->$BE4B Patch for switching to BANK2 (10 bytes)
|
||||
*--------------------------------------
|
||||
REGULAR .AS "(C)APPLE "
|
||||
REGULAR.SIZE .EQ *-REGULAR
|
||||
COPYRIGHT .AS "(C)APPLE "
|
||||
COPYRIGHT.LEN .EQ *-COPYRIGHT
|
||||
PATCH .PH DRV.EntryPoint
|
||||
bit RRAMWRAMBNK2
|
||||
jsr $D001
|
||||
jsr $D002
|
||||
bit RRAMWRAMBNK1
|
||||
rts
|
||||
.EP
|
||||
PATCH.SIZE .EQ *-PATCH
|
||||
PATCH.LEN .EQ *-PATCH
|
||||
*--------------------------------------
|
||||
* Driver
|
||||
*--------------------------------------
|
||||
|
@ -327,9 +360,11 @@ PATCH.SIZE .EQ *-PATCH
|
|||
* CMD = $C5+OP+BLKLO+BLKHI+CHKSUM
|
||||
* DO NOT trash DRV.COMMAND...DRV.BLKNUM as ProDOS
|
||||
* reuses them after Block operation
|
||||
* A1,A2 are used by Disk II Driver,
|
||||
* PC,A1,A2 are used by Disk II Driver,
|
||||
* so we use it safely as Tmp Ptr
|
||||
*--------------------------------------
|
||||
DRV.PCL .EQ $3A
|
||||
DRV.PCH .EQ $3B
|
||||
DRV.A1L .EQ $3C
|
||||
DRV.A1H .EQ $3D
|
||||
DRV.A2L .EQ $3E
|
||||
|
@ -341,10 +376,8 @@ DRV.BLKNUM .EQ $46
|
|||
*--------------------------------------
|
||||
DRV .PH $D001 Main LC Bnk 2 $D001->$DFFF
|
||||
|
||||
DRV.START ldx #$ff Self Modified
|
||||
|
||||
bit RRAMWRAMBNK2
|
||||
|
||||
DRV.START .BS 1 SELF MODIFIED slot 0n
|
||||
|
||||
lda DRV.COMMAND S=0,R=1,W=2,F=3
|
||||
bne .1
|
||||
|
||||
|
@ -355,14 +388,16 @@ DRV.START ldx #$ff Self Modified
|
|||
clc
|
||||
rts
|
||||
|
||||
.9 lda #MLI.E.IO
|
||||
* sec
|
||||
rts
|
||||
|
||||
.1 cmp #3
|
||||
beq .8 Format ....
|
||||
bcs .9
|
||||
bcc DRV.START.OK
|
||||
|
||||
DRV.START.IO lda #MLI.E.IO
|
||||
sec
|
||||
rts
|
||||
|
||||
DRV.START.OK tax
|
||||
|
||||
ora #2 W=2,R=3
|
||||
|
||||
ldy DRV.UNITNUM
|
||||
|
@ -375,6 +410,7 @@ DRV.START ldx #$ff Self Modified
|
|||
eor DRV.BLKNUM
|
||||
eor DRV.BLKNUM+1
|
||||
sta DRV.CmdBuf.Sum Compute & store CheckSum
|
||||
|
||||
lda DRV.BLKNUM
|
||||
sta DRV.CmdBuf.BlkL
|
||||
|
||||
|
@ -385,6 +421,9 @@ DRV.START ldx #$ff Self Modified
|
|||
*--------------------------------------
|
||||
php
|
||||
sei
|
||||
|
||||
* lda #SSC.CMD.NOP+SSC.CMD.RIRQDIS+SSC.CMD.TE+SSC.CMD.DTR
|
||||
DRV.INIT.C inc SSC.CMD SELF MODIFIED
|
||||
|
||||
ldy #4 Send 5 bytes including Sum
|
||||
|
||||
|
@ -400,8 +439,7 @@ DRV.START ldx #$ff Self Modified
|
|||
dey
|
||||
bpl .5
|
||||
*--------------------------------------
|
||||
lda DRV.COMMAND
|
||||
dec 1-1=0 if read
|
||||
dex 1-1=0 if read
|
||||
bne DRV.DO.CMD.W go write
|
||||
*--------------------------------------
|
||||
* Read block
|
||||
|
@ -411,6 +449,7 @@ DRV.DO.CMD.R ldy #3 Read Back and check 4 bytes
|
|||
.1 jsr DRV.SSCGet
|
||||
eor DRV.CmdBuf.BlkH,y
|
||||
bne DRV.DO.CMD.ERR
|
||||
|
||||
dey
|
||||
bpl .1
|
||||
|
||||
|
@ -428,36 +467,31 @@ DRV.DO.CMD.R ldy #3 Read Back and check 4 bytes
|
|||
|
||||
* Y=0 from TAY
|
||||
|
||||
stz DRV.CmdBuf.Sum
|
||||
* stz DRV.CmdBuf.Sum
|
||||
|
||||
sec
|
||||
|
||||
.3 jsr DRV.SSCGet
|
||||
.HS 90 BCC
|
||||
.3 clc
|
||||
|
||||
.4 jsr DRV.SSCGet
|
||||
jsr $102
|
||||
eor DRV.CmdBuf.Sum
|
||||
sta DRV.CmdBuf.Sum
|
||||
iny
|
||||
bne .3
|
||||
|
||||
bcc .4
|
||||
bne .4
|
||||
|
||||
inc DRV.BUFF+1
|
||||
clc
|
||||
bcc .3
|
||||
bcs .3
|
||||
|
||||
dec DRV.BUFF+1
|
||||
dec DRV.BUFF+1
|
||||
|
||||
.4 dec DRV.BUFF+1
|
||||
jsr DRV.SSCGet
|
||||
eor DRV.CmdBuf.Sum
|
||||
bne DRV.DO.CMD.ERR
|
||||
|
||||
plp
|
||||
clc
|
||||
rts A=0,CC from bcc .4
|
||||
beq DRV.DO.CMD.OK
|
||||
*--------------------------------------
|
||||
DRV.DO.CMD.ERR plp
|
||||
lda #MLI.E.IO
|
||||
sec
|
||||
rts
|
||||
DRV.DO.CMD.ERR jsr DRV.SSCClose
|
||||
jmp DRV.START.IO
|
||||
*--------------------------------------
|
||||
* Write Block
|
||||
*--------------------------------------
|
||||
|
@ -470,21 +504,21 @@ DRV.DO.CMD.W lda #$B1 lda (),y
|
|||
stz DRV.CmdBuf.Sum
|
||||
|
||||
sec
|
||||
.HS 90 BCC
|
||||
.1 clc
|
||||
|
||||
.1 jsr $102
|
||||
.2 jsr $102
|
||||
jsr DRV.SSCSend
|
||||
eor DRV.CmdBuf.Sum
|
||||
sta DRV.CmdBuf.Sum
|
||||
iny
|
||||
bne .1
|
||||
|
||||
bcc .2
|
||||
bne .2
|
||||
|
||||
inc DRV.BUFF+1
|
||||
clc
|
||||
bcc .1
|
||||
|
||||
.2 dec DRV.BUFF+1
|
||||
bcs .1
|
||||
|
||||
dec DRV.BUFF+1
|
||||
dec DRV.BUFF+1
|
||||
|
||||
* A = DRV.CmdBuf.Sum
|
||||
|
||||
|
@ -499,33 +533,41 @@ DRV.DO.CMD.W lda #$B1 lda (),y
|
|||
|
||||
dey
|
||||
bpl .3
|
||||
|
||||
*--------------------------------------
|
||||
DRV.DO.CMD.OK
|
||||
*--------------------------------------
|
||||
DRV.SSCClose
|
||||
* lda #SSC.CMD.NOP+SSC.CMD.RIRQDIS+SSC.CMD.TE
|
||||
DRV.SSCClose.C dec SSC.CMD SELF MODIFIED
|
||||
DRV.SSCClose.S bit SSC.STATUS SELF MODIFIED
|
||||
bmi DRV.SSCClose.S
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.SSCSend pha
|
||||
|
||||
.1 lda SSC.STATUS-$8F,x
|
||||
DRV.SSCSend.S lda SSC.STATUS SELF MODIFIED
|
||||
and #SSC.STATUS.TDRE Outgoing char?
|
||||
beq .1
|
||||
beq DRV.SSCSend.S
|
||||
|
||||
pla
|
||||
|
||||
sta SSC.DATA-$8F,x
|
||||
|
||||
DRV.SSCSend.D sta SSC.DATA SELF MODIFIED
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.SSCGet lda SSC.STATUS-$8F,x
|
||||
DRV.SSCGet
|
||||
DRV.SSCGet.S lda SSC.STATUS SELF MODIFIED
|
||||
and #SSC.STATUS.RDRF incoming char?
|
||||
beq DRV.SSCGet
|
||||
|
||||
lda SSC.DATA-$8F,x
|
||||
DRV.SSCGet.D lda SSC.DATA SELF MODIFIED
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.102 bit RRAMWRAMBNK1
|
||||
sta (DRV.BUFF),y
|
||||
bit RRAMWRAMBNK2
|
||||
rts
|
||||
rts
|
||||
DRV.102.LEN .EQ *-DRV.102
|
||||
*--------------------------------------
|
||||
DRV.CmdBuf.Sum .BS 1 Reverse order for dey
|
||||
|
|
Loading…
Reference in New Issue