Kernel 0.92+

This commit is contained in:
Rémy GIBERT 2019-03-04 07:14:31 +00:00
parent d0a92f3b9b
commit 43b9624a99
6 changed files with 93 additions and 91 deletions

Binary file not shown.

View File

@ -103,7 +103,7 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
>SYSCALL feof
bcs .90 IO error
tay
beq .10 bo char
beq .10 no char
>SYSCALL GetChar
bcs .9 IO error

View File

@ -122,7 +122,7 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
jsr CORE.LookupInputBuf
bcc .41
jsr CORE.ArgV.Add
jsr CORE.ArgV.Add external cmd, go check context
bra .42
.41 jsr CORE.SkipCharsA
@ -136,9 +136,10 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
.42 jsr CORE.StkGet IF,WHILE,FOR ?
bcs .7 no particular context, exec...
and #$C0
cmp #$C0
beq .7 context/parent context is TRUE, exec
asl
bcc .43 context is FALSE, skip line
asl
bcs .7 if CC, parent context is FALSE, skip line
.43 jsr CORE.GetNextCharNB
bcs .44 EOF

View File

@ -634,7 +634,7 @@ SKT.EOF.I ldy #S.SOCKET.TCP.INUSED
lda (ZPPtrSKT),y
iny
ora (ZPPtrSKT),y
bne .8
bne .8 some DATA
jsr SKT.CheckStream
bcs .9

View File

@ -52,39 +52,49 @@ L.HTTP.200OK .DA HTTP.200OK
*--------------------------------------
CS.INIT >LDYA L.LIBTCPIP
>SYSCALL LoadLib
bcs .9
sta hLIBTCPIP
clc
rts
.9 rts
*--------------------------------------
CS.RUN jsr Init.Timeout
>LDYA L.MSG.TCPWAIT
>SYSCALL printf
>SYSCALL puts
.1 >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
.1 >SLEEP
>LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
bcs .99
>STYA ZPIPCfgPtr
lda (ZPIPCfgPtr) Configured ?
bmi CS.RUN.INIT
>SLEEP
jsr Wait.Timeout
bcc .1
bcs .99
ldy #S.PS.hStdIn
lda (pPs),y
>SYSCALL feof
bcs CS.RUN.RTS I/O err
tay
beq .1
>SYSCALL GetChar
bcs .1
bcs CS.RUN.RTS
cmp #$03
bne .1
>LDYA L.MSG.ABORT
>SYSCALL printf
lda #0
lda #3
clc
rts
.99 >LDYA L.MSG.TCPIPERR
>SYSCALL printf
>SYSCALL puts
lda #E.SYN
sec
CS.RUN.RTS rts
@ -129,24 +139,6 @@ CS.RUN.LOOP >SLEEP
jsr CS.RUN.SERVER
bcs CS.RUN.ERR
ldy #SktIndex
lda (pData),y
tay
lda (pData),y hSockets
beq .3
jsr CS.RUN.CLIENT
.3 ldy #SktIndex
lda (pData),y
inc
cmp #CONN.MAX
bne .4
lda #0
.4 sta (pData),y
bra CS.RUN.LOOP
.9 >LDYA L.MSG.SKTERR
@ -159,23 +151,7 @@ CS.RUN.ERR rts
CS.RUN.SERVER >LDA.G hSrvSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.accept
bcs .8
pha
ldy #hSockets
ldx #CONN.MAX
.1 lda (pData),y
beq .2
iny
dex
bne .1
pla
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
bra .8
.2 pla
sta (pData),y
>STA.G hClntSocket
>SYSCALL GetMemPtr
>STYA ZPSktPtr
@ -194,58 +170,73 @@ CS.RUN.SERVER >LDA.G hSrvSocket
>LDYA L.MSG.INCOMING
>SYSCALL printf
jsr CS.RUN.CLIENT
.8 clc
.9 rts
*--------------------------------------
CS.RUN.CLIENT >STA.G hClntSocket
pha
CS.RUN.CLIENT >PUSHWI 256
>PUSHW ZPLinePtr
>LDA.G hClntSocket
.1 >SLEEP
>PUSHWI 256
>PUSHW ZPLinePtr
pla
>LIBCALL hLIBTCPIP,LIBTCPIP.read
bcs .1
bcs .8
phy
ply
bne .2
pha
pla
beq .7
.2 >DEBUG
>PUSHYA
>PUSHW ZPLinePtr
>SYSCALL printf
ldy #S.PS.hStdOut
lda (pPS),y
>SYSCALL fwrite
bra .1
>PUSHB hClntSocket
.7 >PUSHWI HTTP.200OK.len
>PUSHW L.HTTP.200OK
>LDA.G hClntSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.write
.1 clc
rts
*--------------------------------------
CS.DOEVENT sec
rts
*--------------------------------------
CS.QUIT ldx #CONN.MAX
ldy #hSockets
.1 lda (pData),y
beq .2
phx
phy
.8 >LDA.G hClntSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
ply
plx
clc
rts
*--------------------------------------
CS.DOEVENT lda (pEvent)
bpl .9 is it a TIMER event?
.2 iny
dex
bne .1
>LDA.G TimeOut
beq .9
ldy #hSrvSocket
dec
sta (pData),y
.9 sec do not discard TIMER event
rts
*--------------------------------------
CS.QUIT ldy #hSrvSocket
lda (pData),y
beq .3
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
>LDA.G hLineBuf
beq .3
.3 >LDA.G hLineBuf
beq .4
>SYSCALL FreeMem
.3 lda hLIBTCPIP
.4 lda hLIBTCPIP
beq .8
>SYSCALL UnloadLib
@ -266,16 +257,28 @@ Wait.TimeOut sec
*--------------------------------------
CS.END
*--------------------------------------
LIBTCPIP .AZ "libtcpip.o"
MSG.TCPWAIT .AZ "HTTPD:Waiting for TCP/IP initializing...\r\n"
MSG.INITOK .AZ "HTTPD:Init Ok, Listening.\r\n"
MSG.TCPIPERR .AZ "HTTPD:TCP/IP Not initialized properly\r\n"
MSG.SKTERR .AZ "HTTPD:Listen Error\r\n"
MSG.ABORT .AZ "HTTPD:User Aborted\r\n"
MSG.INCOMING .AZ "HTTPD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n"
hLIBTCPIP .BS 1
LIBTCPIP .AZ "libtcpip"
MSG.TCPWAIT .AZ "HTTPD:Waiting for TCP/IP initializing..."
MSG.INITOK .AZ "HTTPD:Init Ok, Listening."
MSG.TCPIPERR .AZ "HTTPD:TCP/IP Not initialized properly."
MSG.SKTERR .AZ "HTTPD:Listen Error."
MSG.ABORT .AZ "HTTPD:User Aborted."
MSG.INCOMING .AZ "HTTPD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n"
*--------------------------------------
HTTP.200OK .AS "HTTP/1.1 200 OK\r\n"
HTTP.200OK .AS "HTTP/1.1 200 OK"
.DA #C.CR,#C.LF
.AS "Server: A2osX-HTTPD 0.92"
.DA #C.CR,#C.LF
.AS "Content-Type: text/html"
.DA #C.CR,#C.LF
.AS "Content-Length: 34"
.DA #C.CR,#C.LF
.AS "Connection: Close"
.DA #C.CR,#C.LF
.DA #C.CR,#C.LF
.AS "<HTML><BODY>Hello!</BODY></HTML>"
.DA #C.CR,#C.LF
HTTP.200OK.len .EQ *-HTTP.200OK
*--------------------------------------
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
@ -286,9 +289,7 @@ SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
.DUMMY
.OR 0
DS.START
hSockets .BS CONN.MAX pData
hLineBuf .BS 1
SktIndex .BS 1
hSrvSocket .BS 1
hClntSocket .BS 1
TimeOut .BS 1

View File

@ -283,7 +283,7 @@ hLIBTCPIP .BS 1
LIBTCPIP .AZ "libtcpip"
MSG.TCPWAIT .AZ "TELNETD:Waiting for TCP/IP initializing..."
MSG.INITOK .AZ "TELNETD:Init Ok, Listening."
MSG.TCPIPERR .AZ "TELNETD:TCP/IP Not initialized properly"
MSG.TCPIPERR .AZ "TELNETD:TCP/IP Not initialized properly."
MSG.SKTERR .AZ "TELNETD:Listen Error."
MSG.ABORT .AZ "TELNETD:User Aborted."
MSG.INCOMING .AZ "TELNETD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n"