From 272debc1a31c2c38b2ae7a7cc3fef61759663d2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sat, 2 Mar 2019 22:18:21 +0000 Subject: [PATCH] Kernel 0.92+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/SH.S.CMD.txt | 4 +- SBIN/HTTPD.S.txt | 81 +++++++++++++++++++++------------------ 3 files changed, 46 insertions(+), 39 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 18f69996ffcb829ed92bfbb0f0051afc5b91158a..2a6042fb59dc108291c894f319bd45e0ed27026b 100644 GIT binary patch delta 5654 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 T_yhigzu**{mL8@v(xd+aq?3-U delta 5458 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 >LDYA ZPVarNamePtr @@ -273,7 +273,7 @@ CMD.SET.1 rts .8 clc - rts +.9 rts .99 jmp CMD.Exec.CSYN diff --git a/SBIN/HTTPD.S.txt b/SBIN/HTTPD.S.txt index 36f25b02..56d2f21d 100644 --- a/SBIN/HTTPD.S.txt +++ b/SBIN/HTTPD.S.txt @@ -8,7 +8,9 @@ AUTO 4,1 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I + .INB INC/ETH.I .INB INC/LIBTCPIP.I + .INB INC/NET.HTTP.I *-------------------------------------- TIMEOUT.MAX .EQ 30 30 sec. CONN.MAX .EQ 16 @@ -38,7 +40,7 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.LIBTCPIP .DA LIBTCPIP -L.Socket .DA Socket +L.SA.Local .DA SA.Local L.MSG.TCPWAIT .DA MSG.TCPWAIT L.MSG.INITOK .DA MSG.INITOK L.MSG.TCPIPERR .DA MSG.TCPIPERR @@ -60,7 +62,7 @@ CS.RUN jsr Init.Timeout >LDYA L.MSG.TCPWAIT >SYSCALL printf -.1 >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ? +.1 >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ? bcs .99 >STYA ZPIPCfgPtr @@ -91,16 +93,26 @@ CS.RUN.INIT ldx #3 ldy #S.IPCFG.IP+3 .1 lda (ZPIPCfgPtr),y - sta Socket.Src.Addr,x + sta SA.LOCAL+S.SOCKADDR.ADDR,x dey dex bpl .1 - >PUSHW L.Socket - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New - bcs CS.RUN.RTS + >PUSHBI 0 no protocol + lda #S.SOCKET.T.STREAM + >LIBCALL hLIBTCPIP,LIBTCPIP.Socket + bcs CS.RUN.ERR >STA.G hSrvSocket + pha + >PUSHW L.SA.LOCAL + pla + >LIBCALL hLIBTCPIP,LIBTCPIP.Bind + bcs CS.RUN.ERR + + >LDA.G hSrvSocket + >LIBCALL hLIBTCPIP,LIBTCPIP.Listen + bcs CS.RUN.ERR >LDYAI 256 >SYSCALL getmem @@ -141,15 +153,11 @@ CS.RUN.LOOP >SLEEP >SYSCALL printf lda #E.SYN sec - rts -CS.RUN.ERR sec - rts +CS.RUN.ERR rts *-------------------------------------- -CS.RUN.SERVER ldy #hSrvSocket - lda (pData),y - - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.AcceptA +CS.RUN.SERVER >LDA.G hSrvSocket + >LIBCALL hLIBTCPIP,LIBTCPIP.accept bcs .8 pha @@ -163,38 +171,39 @@ CS.RUN.SERVER ldy #hSrvSocket bne .1 pla - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CloseA + >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown bra .8 .2 pla sta (pData),y - sta .4+1 - - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetA + >STA.G hClntSocket + >SYSCALL GetMemPtr >STYA ZPSktPtr ldx #3 - ldy #S.SOCKET.DST.ADDR+3 + ldy #S.SOCKET.REM.ADDR+3 .3 >PUSHB (ZPSktPtr),y dey dex bpl .3 -.4 lda #$ff - >PUSHA - + >PUSHB.G hClntSocket + + >PUSHBI 5 >LDYA L.MSG.INCOMING >SYSCALL printf + .8 clc .9 rts *-------------------------------------- -CS.RUN.CLIENT sta hClntSocket +CS.RUN.CLIENT >STA.G hClntSocket + pha - >PUSHA hSocket - >PUSHW ZPLinePtr >PUSHWI 256 - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetS + >PUSHW ZPLinePtr + pla + >LIBCALL hLIBTCPIP,LIBTCPIP.read bcs .1 >PUSHW ZPLinePtr @@ -202,7 +211,8 @@ CS.RUN.CLIENT sta hClntSocket >PUSHB hClntSocket >PUSHW L.HTTP.200OK - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.PutS + >LDA.G hClntSocket + >LIBCALL hLIBTCPIP,LIBTCPIP.write .1 clc rts @@ -218,7 +228,7 @@ CS.QUIT ldx #CONN.MAX phx phy - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA + >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown ply plx @@ -228,7 +238,7 @@ CS.QUIT ldx #CONN.MAX ldy #hSrvSocket lda (pData),y - >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA + >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown >LDA.G hLineBuf beq .3 @@ -264,18 +274,14 @@ 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 -hClntSocket .BS 1 *-------------------------------------- -HTTP.200OK .AZ "HTTP/1.1 200 OK\r\n" +HTTP.200OK .AS "HTTP/1.1 200 OK\r\n" +HTTP.200OK.len .EQ *-HTTP.200OK *-------------------------------------- -Socket .DA #S.SOCKET.T.STREAM - .DA #S.SOCKET.O.ACCEPTCONN - .DA #S.SOCKET.TCP.S.LISTEN +SA.LOCAL .DA #AF.INET S.SOCKADDR.AF .BS 1 -Socket.Src.Addr .BS 4 -Socket.Src.Port .DA 80 -Socket.Dst.Addr .BS 4 -Socket.Dst.Port .BS 2 + .BS 4 S.SOCKADDR.ADDR + .DA TCP.PORT.HTTP *-------------------------------------- .DUMMY .OR 0 @@ -284,6 +290,7 @@ hSockets .BS CONN.MAX pData hLineBuf .BS 1 SktIndex .BS 1 hSrvSocket .BS 1 +hClntSocket .BS 1 TimeOut .BS 1 DS.END .ED