Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-09-01 12:47:39 +02:00
parent eb9443dce4
commit b8e761fdbb
6 changed files with 119 additions and 55 deletions

Binary file not shown.

View File

@ -21,17 +21,20 @@ ZS.START
ZPIPCfgPtr .BS 2 ZPIPCfgPtr .BS 2
ZPHostPtr .BS 2 ZPHostPtr .BS 2
ZPPtr .BS 2 ZPPtr .BS 2
ZPReqBufPtr .BS 2
hReqBuf .BS 1
ZPReqBufPtr .BS 2
ZPReqBufLen .BS 2 ZPReqBufLen .BS 2
hEncodedBuf .BS 1
ZPEncodedBufPtr .BS 2 ZPEncodedBufPtr .BS 2
ZPEncodedBufLen .BS 2 ZPEncodedBufLen .BS 2
ZPRespBufPtr .BS 2 ZPRespBufPtr .BS 2
ZPRespBufLen .BS 2
ArgIndex .BS 1 ArgIndex .BS 1
hSocket .BS 1 hSocket .BS 1
hReqBuf .BS 1
hEncodedBuf .BS 1
hSendBuf .BS 1 hSendBuf .BS 1
ZPSendBufPtr .BS 2 ZPSendBufPtr .BS 2
@ -136,13 +139,13 @@ CS.RUN.IPOK ldy #S.IPCFG.IP+3
CS.RUN.ESYN lda #E.SYN CS.RUN.ESYN lda #E.SYN
sec sec
CS.RUN.RTS rts CS.RUN.RTS rts
*--------------------------------------
CS.RUN.HOSTOK inc ArgIndex CS.RUN.HOSTOK inc ArgIndex
lda ArgIndex lda ArgIndex
>SYSCALL ArgV >SYSCALL ArgV
bcc .10 bcc .10
jmp CS.RUN.PORTOK .8 jmp CS.RUN.ARGSOK
.10 >STYA ZPPtr .10 >STYA ZPPtr
lda (ZPPtr) lda (ZPPtr)
@ -154,6 +157,7 @@ CS.RUN.HOSTOK inc ArgIndex
bcs CS.RUN.RTS bcs CS.RUN.RTS
>STYA SA.REMOTE+S.SOCKADDR.PORT >STYA SA.REMOTE+S.SOCKADDR.PORT
inc ArgIndex inc ArgIndex
lda ArgIndex lda ArgIndex
>SYSCALL ArgV >SYSCALL ArgV
@ -176,6 +180,9 @@ CS.RUN.HOSTOK inc ArgIndex
.11 cmp #'U' .11 cmp #'U'
bne .2 bne .2
bit bURI
bmi CS.RUN.ESYN
inc ArgIndex inc ArgIndex
lda ArgIndex lda ArgIndex
>SYSCALL ArgV >SYSCALL ArgV
@ -185,11 +192,16 @@ CS.RUN.HOSTOK inc ArgIndex
>STYA ZPReqBufPtr >STYA ZPReqBufPtr
>SYSCALL StrLen >SYSCALL StrLen
>STYA ZPReqBufLen >STYA ZPReqBufLen
.8 bra CS.RUN.PORTOK sec
ror bURI
bra CS.RUN.HOSTOK
.2 cmp #'F' .2 cmp #'F'
bne .3 bne .3
bit bURI
bmi CS.RUN.ESYN
inc ArgIndex inc ArgIndex
lda ArgIndex lda ArgIndex
>SYSCALL ArgV >SYSCALL ArgV
@ -209,7 +221,7 @@ CS.RUN.HOSTOK inc ArgIndex
sec sec
ror bURI ror bURI
bra CS.RUN.PORTOK jmp CS.RUN.HOSTOK
.3 cmp #'O' .3 cmp #'O'
bcs .9 bcs .9
@ -220,8 +232,9 @@ CS.RUN.HOSTOK inc ArgIndex
bcs .9 bcs .9
>STYA ZPFileName >STYA ZPFileName
jmp CS.RUN.HOSTOK
CS.RUN.PORTOK >PUSHW L.MSG.CONNECT *--------------------------------------
CS.RUN.ARGSOK >PUSHW L.MSG.CONNECT
ldx #0 ldx #0
.1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x .1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x
@ -459,9 +472,6 @@ CS.RUN.RESPONSE jsr Init.TimeOut
.1 >SLEEP .1 >SLEEP
lda #'?'
>SYSCALL putchar
lda hSocket lda hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv >LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcc .2 bcc .2
@ -474,25 +484,74 @@ CS.RUN.RESPONSE jsr Init.TimeOut
bra .80 bra .80
.2 lda #'!' .2 >SYSCALL GetMemPtr
>SYSCALL putchar
>SYSCALL GetMemPtr
>STYA ZPRespBufPtr >STYA ZPRespBufPtr
>PUSHW ZPRespBufPtr ldy #S.IP.TOTAL.LENGTH+1
lda (ZPRespBufPtr),y
sec
sbc #S.TCP-S.IP
sta ZPRespBufLen
lda hFile dey
bne .3
ldy #S.PS.hStdOut lda (ZPRespBufPtr),y
lda (pPS),y sbc /S.TCP-S.IP
.3 >SYSCALL FWrite sta ZPRespBufLen+1
bcs .9
lda ZPRespBufPtr
clc
adc #S.TCP
sta ZPRespBufPtr
bcc .3
inc ZPRespBufPtr+1
.3 bit bResponse
bmi .6
.30 ldx #0
.4 dex
lda (ZPRespBufPtr)
inc ZPRespBufPtr
bne .5
inc ZPRespBufPtr+1
.5 cmp #C.LF
bne .4
txa
* sec
adc ZPRespBufLen
sta ZPRespBufLen
lda ZPRespBufLen+1
adc #$ff
sta ZPRespBufLen+1
inx
inx
bne .30
sec sec
ror bResponse ror bResponse
bra CS.RUN.RESPONSE
.6 >PUSHW ZPRespBufLen
>PUSHW ZPRespBufPtr
lda hFile
bne .7
ldy #S.PS.hStdOut
lda (pPS),y
.7 >SYSCALL FWrite
bcs .9
jmp CS.RUN.RESPONSE
.8 cmp #MLI.E.IO SKT Close ? .8 cmp #MLI.E.IO SKT Close ?
bne .9 bne .9
@ -504,8 +563,8 @@ CS.RUN.RESPONSE jsr Init.TimeOut
rts rts
.99 lda #MLI.E.IO .99 lda #MLI.E.IO
.9 sec sec
rts .9 rts
*-------------------------------------- *--------------------------------------
CS.DOEVENT lda (pEvent) CS.DOEVENT lda (pEvent)
bpl .9 is it a TIMER event? bpl .9 is it a TIMER event?

View File

@ -36,29 +36,26 @@ DHCP.RUN >PUSHBI 0 no protocol
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket >LIBCALL hLIBTCPIP,LIBTCPIP.Socket
bcc .1 bcc .1
.9 jmp DHCP.RUN.KO .9 jmp DHCP.RUN.KO
.1 >STA.G hSocket .1 sta hSocket
pha pha
>PUSHW L.SA.LOCAL >PUSHW L.SA.LOCAL
pla pla
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind >LIBCALL hLIBTCPIP,LIBTCPIP.Bind
bcs .9 bcs .9
>PUSHWI S.SOCKET.O.BROADCAST >PUSHWI S.SOCKET.O.BROADCAST
>LDA.G hSocket lda hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.setsockopt >LIBCALL hLIBTCPIP,LIBTCPIP.setsockopt
>PUSHW L.SA.REMOTE >PUSHW L.SA.REMOTE
>LDA.G hSocket lda hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect >LIBCALL hLIBTCPIP,LIBTCPIP.Connect
bcs .9 bcs .9
>LDYA L.MSG.DHCP.CFG1 >LDYA L.MSG.DHCP.CFG1
>SYSCALL PutS >SYSCALL PutS
lda #TIMEOUT.MAX
sta TimeOut
DHCP.RUN.SDISC >PUSHW L.SA.DEST DHCP.RUN.SDISC >PUSHW L.SA.DEST
>PUSHWI DHCP.DISC.LEN >PUSHWI DHCP.DISC.LEN
>PUSHW L.DHCP.DISC >PUSHW L.DHCP.DISC
>LDA.G hSocket lda hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.SendTo >LIBCALL hLIBTCPIP,LIBTCPIP.SendTo
bcc .1 bcc .1
@ -67,15 +64,12 @@ DHCP.RUN.SDISC >PUSHW L.SA.DEST
.1 lda #S.IPCFG.STATUS.SDISC .1 lda #S.IPCFG.STATUS.SDISC
sta IPCFG sta IPCFG
DHCP.RUN.ROFFER >SLEEP DHCP.RUN.ROFFER jsr DHCP.RUN.SKT.RECV
jsr DHCP.RUN.SKT.RCVD
bcc .1 bcc .1
lda TimeOut
bne DHCP.RUN.ROFFER
lda #1 lda #1
jmp DHCP.RUN.KO jmp DHCP.RUN.KO
.1 jsr CheckDHCPOffer .1 jsr CheckDHCPOffer
bcs DHCP.RUN.ROFFER bcs DHCP.RUN.ROFFER
lda #S.IPCFG.STATUS.ROFFER lda #S.IPCFG.STATUS.ROFFER
@ -94,20 +88,16 @@ DHCP.RUN.SREQ >PUSHW L.MSG.DHCP.CFG2
>PUSHW L.SA.DEST >PUSHW L.SA.DEST
>PUSHWI DHCP.REQ.LEN >PUSHWI DHCP.REQ.LEN
>PUSHW L.DHCP.REQ >PUSHW L.DHCP.REQ
>LDA.G hSocket lda hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.SendTo >LIBCALL hLIBTCPIP,LIBTCPIP.SendTo
bcs DHCP.RUN.KO bcs DHCP.RUN.KO
lda #S.IPCFG.STATUS.SREQ lda #S.IPCFG.STATUS.SREQ
sta IPCFG sta IPCFG
DHCP.RUN.RACK >SLEEP DHCP.RUN.RACK jsr DHCP.RUN.SKT.RECV
jsr DHCP.RUN.SKT.RCVD
bcc .1 bcc .1
lda TimeOut
bne DHCP.RUN.RACK
lda #2 lda #2
bra DHCP.RUN.KO bra DHCP.RUN.KO
@ -153,17 +143,32 @@ DHCP.RUN.KO pha
sec sec
rts rts
*-------------------------------------- *--------------------------------------
DHCP.RUN.SKT.RCVD DHCP.RUN.SKT.RECV
>LDA.G hSocket lda #TIMEOUT.MAX
sta TimeOut
.1 >SLEEP
lda hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv >LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcs .9 bcc .8
>STA.G hFrame
cmp #E.NODATA
bne .9
lda TimeOut
bne .1
.9 sec
rts
.8 sta hFrame
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>STYA ZPFrameBase >STYA ZPFrameBase
.9 rts rts
*-------------------------------------- *--------------------------------------
DHCP.QUIT >LDA.G hSocket DHCP.QUIT lda hSocket
beq .1 beq .1
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
@ -317,7 +322,7 @@ CheckDHCPAck jsr CheckDHCPXID
sec sec
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.DISCARD >LDA.G hFrame CS.RUN.DISCARD sta hFrame
>SYSCALL FreeMem >SYSCALL FreeMem
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -1,6 +1,5 @@
NEW NEW
AUTO 3,1 AUTO 3,1
.LIST OFF
*/-------------------------------------- */--------------------------------------
* # Socket * # Socket
* Create a new socket * Create a new socket
@ -948,7 +947,7 @@ SKT.Recv clc
sec sec
rts rts
.90 lda #0 no data .90 lda #E.NODATA
plp plp
sec sec
rts rts

View File

@ -220,7 +220,7 @@ CS.RUN.Negotiate
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv >LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcc .3 bcc .3
tay cmp #E.NODATA
beq .2 beq .2
bra .99 bra .99
@ -273,7 +273,7 @@ CS.RUN.SessSetup
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv >LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcc .3 bcc .3
tay cmp #E.NODATA
beq .2 beq .2
bra .99 bra .99
@ -338,7 +338,7 @@ CS.RUN.TreeConn lda #TIMEOUT.MAX
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv >LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcc .3 bcc .3
tay cmp #E.NODATA
beq .2 beq .2
bra .99 bra .99
@ -419,7 +419,7 @@ CIFS.OpenDir lda #TIMEOUT.MAX
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv >LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcc .3 bcc .3
tay cmp #E.NODATA
beq .2 beq .2
bra .99 bra .99

View File

@ -371,8 +371,9 @@ CS.RUN.CLIENT >LDYAI 1024
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv >LIBCALL hLIBTCPIP,LIBTCPIP.Recv
bcc .2 bcc .2
tay cmp #E.NODATA
beq .1 beq .1
jmp .99 jmp .99
.2 jsr CS.RUN.REQ.GetReq .2 jsr CS.RUN.REQ.GetReq