From 617bf82063f50b83b19824f4b79a94b6d1eef996 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 7 Nov 2018 22:48:48 +0100 Subject: [PATCH] Kernel 0.9.2 --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/PING.S.txt | 2 +- INC/LIBTCPIP.I.txt | 1 + LIB/LIBTCPIP.S.SKT.txt | 111 ++++++++++++++++++--------------------- LIB/LIBTCPIP.S.txt | 2 + SBIN/DHCPCLNT.S.txt | 43 ++++++++++----- 7 files changed, 87 insertions(+), 72 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index a4b10051a6098b3325286523719026d0aa711622..24913def2a13752e073c97310c08cb57d684b829 100644 GIT binary patch delta 17305 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 X+&8)@HoAFibo1QkHmu3bYt8=ydW&Yv diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 80633159e7221cf0abbe96abc15d2e3e070850ad..0a8064162104d6aff43f1c02515bbb2cc55a767e 100644 GIT binary patch delta 45781 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 delta 46373 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 a71etb)qX|wUisYIpx*t*uEC{N@c#iRZ0nZ* diff --git a/BIN/PING.S.txt b/BIN/PING.S.txt index daa60a30..e04926fe 100644 --- a/BIN/PING.S.txt +++ b/BIN/PING.S.txt @@ -172,7 +172,7 @@ CS.RUN.OPENSKT ldx #3 >PUSHW L.SA.REMOTE >LDA.G hSocket - >LIBCALL hLIBTCPIP,LIBTCPIP.Connect + >LIBCALL hLIBTCPIP,LIBTCPIP.Connect bcc CS.RUN.SEND.ECHO diff --git a/INC/LIBTCPIP.I.txt b/INC/LIBTCPIP.I.txt index 1595586e..3a4bc4c0 100644 --- a/INC/LIBTCPIP.I.txt +++ b/INC/LIBTCPIP.I.txt @@ -56,6 +56,7 @@ LIBTCPIP.RecvFrom .EQ 52 LIBTCPIP.SendTo .EQ 54 LIBTCPIP.GetTable .EQ 56 +LIBTCPIP.setsockopt .EQ 58 *-------------------------------------- ERR.SKT.OOS .EQ $BF ERR.SKT.BUSY .EQ $BE diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index c4005f77..d8aea3d3 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -51,7 +51,6 @@ SKT.Socket.DSOCK txa clc .9 rts - SKT.Socket.STREAM lda #S.IP.PROTOCOL.TCP ldy #S.SOCKET.TCP @@ -66,18 +65,17 @@ SKT.Socket.STREAM jsr SKT.Socket.FindFree bcs .9 - + ldy #FD.SSOCK.SIZE-1 - + .1 lda FD.SSOCK,y sta (ZPTmpPtr1),y dey bpl .1 - + txa clc .9 rts - SKT.Socket.FindFree ldy #0 @@ -93,7 +91,7 @@ SKT.Socket.FindFree sec rts -.2 txa x = hFD +.2 txa sta SKT.TABLE,y clc rts @@ -151,7 +149,7 @@ SKT.connect >SYSCALL GetMemPtr >STYA ZPPtrSKT jsr SKT.PullRemAddr - + ldy #S.SOCKET.T lda (ZPPtrSKT),y tax @@ -164,7 +162,7 @@ SKT.connect.SEQPACKET jsr SKT.SetRemAddr jsr SKT.NewTCB bcs SKT.connect.99 - + lda #S.TCP.OPTIONS.SYN jsr TCP.OUT.SendOptA Send SYN bcs .9 @@ -176,7 +174,7 @@ SKT.connect.SEQPACKET .9 lda #ERR.SKT.BAD sec -SKT.connect.99 rts +SKT.connect.99 rts */-------------------------------------- * # Listen * Listen for connections on a socket @@ -237,10 +235,10 @@ SKT.Accept >SYSCALL GetMemPtr ldy #S.SOCKET.HQ.TAIL lda (ZPPtrSKT),y ldy #S.SOCKET.HQ.HEAD - cmp (ZPPtrSKT),y Queue Empty + cmp (ZPPtrSKT),y beq .9 CS - pha save tail... + pha inc cmp #S.SOCKET.HQ.MAX bne .1 @@ -279,17 +277,15 @@ SKT.shutdown pha lda (ZPPtrSKT),y and #S.SOCKET.O.ACCEPTCONN bne SKT.shutdown.LISTEN - + ldy #S.SOCKET.T lda (ZPPtrSKT),y tax jmp (J.SKT.shutdown,x) - SKT.shutdown.LISTEN SKT.shutdown.RAW SKT.shutdown.DGRAM SKT.shutdown.SEQPACKET - .1 ldy #S.SOCKET.HQ.TAIL lda (ZPPtrSKT),y ldy #S.SOCKET.HQ.HEAD @@ -317,24 +313,22 @@ SKT.shutdown.SEQPACKET bra .1 .3 pla get hFD... - + ldx #0 - + .4 cmp SKT.TABLE,x beq .5 - + inx cpx #K.SKTTABLE.SIZE bne .4 - + .5 stz SKT.TABLE,x >SYSCALL freemem clc rts - SKT.shutdown.STREAM pla - ldy #S.SOCKET.TCP.S lda (ZPPtrSKT),y cmp #S.SOCKET.TCP.S.CLWAIT @@ -350,7 +344,6 @@ SKT.shutdown.STREAM lda (ZPPtrSKT),y ora #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK sta (ZPPtrSKT),y - jmp TCP.OUT */-------------------------------------- * # Read (STREAM) @@ -368,7 +361,6 @@ SKT.shutdown.STREAM *\-------------------------------------- SKT.Read >SYSCALL GetMemPtr >STYA ZPPtrSKT - >PULLW ZPDataInPtr !!!DataOut trashed when sending ACK in TCP.OUT >PULLW ZPDataInLen !!!use DataInPtr/Len @@ -419,7 +411,6 @@ SKT.Read >SYSCALL GetMemPtr *\-------------------------------------- SKT.Write >SYSCALL GetMemPtr >STYA ZPPtrSKT - >PULLW ZPDataInPtr >PULLW ZPDataInLen @@ -474,13 +465,10 @@ SKT.Write >SYSCALL GetMemPtr SKT.RecvFrom pha >PULLW ZPTmpPtr1 addr pla - sec .HS 90 BCC SKT.Recv clc - php - >SYSCALL GetMemPtr >STYA ZPPtrSKT @@ -560,7 +548,7 @@ SKT.Recv clc .99 plp lda #ERR.SKT.BAD sec - rts + rts .90 plp lda #0 no data @@ -590,19 +578,15 @@ SKT.Send clc >SYSCALL GetMemPtr >STYA ZPPtrSKT plp - >PULLW ZPDataInPtr - >PULLW ZPDataInLen - + >PULLW ZPDataInLen bcc .1 - jsr SKT.PullRemAddr jsr SKT.SetRemAddr - .1 ldy #S.SOCKET.T lda (ZPPtrSKT),y tax - jmp (J.SKT.send,x) + jmp (J.SKT.send,x) *-------------------------------------- SKT.Send.RAW ldy #S.SOCKET.PROTO lda (ZPPtrSKT),y @@ -619,7 +603,7 @@ SKT.Send.DGRAM ldx #S.IP.PROTOCOL.UDP jsr SKT.SetFrameOutTCPUDPPorts SKT.Send.DGRAM.8 jsr SKT.SetFrameOutDstIP - jsr SKT.CopyDataInToOut + jsr SKT.CopyDataInToOut jmp FRM.SendIP *-------------------------------------- SKT.Send.STREAM lda #ERR.SKT.BAD @@ -635,15 +619,33 @@ SKT.Send.SEQPACKET * `void * gettable();` * ## ASM * **In:** -* `>LIBCALL hLIBTCPIP,LIBTCPIP.skt.GetTable` +* `>LIBCALL hLIBTCPIP,LIBTCPIP.GetTable` * ## RETURN VALUE *\-------------------------------------- SKT.GetTable >LDYA L.SKT.Table clc rts +*/-------------------------------------- +* # SetSockOpt +* Set Socket Options +* ## C +* `int setsockopt(hFD fd, short int opts);` +* ## ASM +* **In:** +* `>PUSHWI opts` +* `lda fd` +* `>LIBCALL hLIBTCPIP,LIBTCPIP.SetSockOpt` +* ## RETURN VALUE +*\-------------------------------------- +SKT.setsockopt >SYSCALL GetMemPtr + >STYA ZPPtrSKT + >PULLA + ldy #S.SOCKET.O + ora (ZPPtrSKT),y + sta (ZPPtrSKT),y + clc + rts *-------------------------------------- -* PRIVATE -*-------------------------------------- SKT.PullLocAddr >PULLW ZPTmpPtr1 ldy #S.SOCKADDR-1 .1 lda (ZPTmpPtr1),y @@ -651,7 +653,7 @@ SKT.PullLocAddr >PULLW ZPTmpPtr1 dey bpl .1 rts -*-------------------------------------- +*-------------------------------------- SKT.PullRemAddr >PULLW ZPTmpPtr1 ldy #S.SOCKADDR-1 .1 lda (ZPTmpPtr1),y @@ -666,7 +668,6 @@ SKT.SetLocAddr ldy #S.SOCKET.LOC.PORT+1 dey cpy #S.SOCKET.LOC.ADDR bcs .1 -* clc rts *-------------------------------------- SKT.SetRemAddr ldy #S.SOCKET.REM.PORT+1 @@ -675,7 +676,6 @@ SKT.SetRemAddr ldy #S.SOCKET.REM.PORT+1 dey cpy #S.SOCKET.REM.ADDR bcs .1 -* clc rts *-------------------------------------- SKT.FindMatchingLocRem @@ -699,7 +699,7 @@ SKT.FindMatchingLocRem .2 lda (ZPTmpPtr1),y bne .4 - ldy #S.SOCKET.LOC.PORT This Socket is bound to 0.0.0.0,check only LOC port + ldy #S.SOCKET.LOC.PORT bound to 0.0.0.0,check only LOC port .3 lda (ZPTmpPtr1),y @@ -713,11 +713,11 @@ SKT.FindMatchingLocRem lda (ZPTmpPtr1),y and #S.SOCKET.O.ACCEPTCONN beq .6 - + ldy #S.TCP.OPTIONS Listening, only SYN packet.... lda (ZPFrameInPtr),y cmp #S.TCP.OPTIONS.SYN - beq .7 a SYN recieved on a LISTEN socket, ok + beq .7 SYN recieved on a LISTEN socket, ok bne .8 bad packet for this listening .6 lda SKT.REM.ADDR+S.SOCKADDR.ADDR @@ -733,7 +733,7 @@ SKT.FindMatchingLocRem bra .5 .41 ldy #S.SOCKET.REM.ADDR - + .5 lda (ZPTmpPtr1),y cmp SKT.REM.ADDR+S.SOCKADDR.ADDR-S.SOCKET.REM.ADDR,y bne .8 wrong remote host, exit.... @@ -788,9 +788,6 @@ SKT.FindMatchingLoc * sec .9 rts *-------------------------------------- -* ZPPtrSKT -> actual socket -* A = hSocket or hFrame -*-------------------------------------- SKT.AddToQueueA pha ldy #S.SOCKET.HQ.HEAD lda (ZPPtrSKT),y @@ -990,7 +987,7 @@ SKT.GetDataFromSktIn bne .3 lda SKT.TmpCache+S.SOCKET.TCP.INTAIL+1 eor SKT.TmpCache+S.SOCKET.TCP.INHEAD+1 - beq .7 no more data.... + beq .7 .3 lda (ZPTmpPtr2) pha @@ -1037,7 +1034,6 @@ SKT.GetDataFromSktIn clc adc ZPTmpPtr3 sta SKT.TmpCache+S.SOCKET.TCP.INFREE - lda SKT.TmpCache+S.SOCKET.TCP.INFREE+1 adc ZPTmpPtr3+1 sta SKT.TmpCache+S.SOCKET.TCP.INFREE+1 @@ -1046,7 +1042,6 @@ SKT.GetDataFromSktIn sec sbc ZPTmpPtr3 sta SKT.TmpCache+S.SOCKET.TCP.INUSED - lda SKT.TmpCache+S.SOCKET.TCP.INUSED+1 sbc ZPTmpPtr3+1 sta SKT.TmpCache+S.SOCKET.TCP.INUSED+1 @@ -1055,7 +1050,6 @@ SKT.GetDataFromSktIn clc adc ZPTmpPtr3 sta SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+3 - lda SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+2 adc ZPTmpPtr3+1 sta SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+2 @@ -1077,8 +1071,8 @@ SKT.GetDataFromSktIn >LDYA ZPTmpPtr3 clc rts -.9 -* lda #0 NO DATA +.9 +* lda #0 sec rts *-------------------------------------- @@ -1093,7 +1087,7 @@ SKT.AddDataToSktOut lda SKT.TmpCache+S.SOCKET.TCP.OUTFREE+1 sbc ZPDataInLen+1 bcc .9 Not enough room in Q - + ldy #S.SOCKET.SQ.hOutMem lda (ZPPtrSKT),y >SYSCALL GetMemPtr @@ -1339,7 +1333,7 @@ SKT.StoreTCB ldy #S.SOCKET iny cpy #S.SOCKET.TCP bne .1 - clc Make CC for successfull exit + clc SKT.StoreTCB.RTS rts *-------------------------------------- @@ -1395,7 +1389,7 @@ SKT.SetFrameOutTCPUDPPorts iny txa sta (ZPFrameOutPtr),y - + ldy #S.SOCKET.REM.PORT lda (ZPPtrSKT),y tax @@ -1414,7 +1408,7 @@ SKT.CopyDataInToOut pha lda ZPDataOutPtr+1 pha - + lda ZPDataInLen eor #$ff tax @@ -1438,13 +1432,12 @@ SKT.CopyDataInToOut inc ZPDataInPtr+1 inc ZPDataOutPtr+1 bne .1 - + .9 pla sta ZPDataOutPtr+1 pla sta ZPDataInPtr+1 rts -*-------------------------------------- MAN SAVE /A2OSX.SRC/LIB/LIBTCPIP.S.SKT LOAD /A2OSX.SRC/LIB/LIBTCPIP.S diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index eed14e53..05324cdb 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -89,6 +89,8 @@ CS.START cld .DA SKT.SendTo .DA SKT.GetTable + + .DA SKT.setsockopt *-------------------------------------- L.DEVNAME .DA DEVNAME L.MSG.DEV.KO .DA MSG.DEV.KO diff --git a/SBIN/DHCPCLNT.S.txt b/SBIN/DHCPCLNT.S.txt index e9e13aaa..f4a4eebf 100644 --- a/SBIN/DHCPCLNT.S.txt +++ b/SBIN/DHCPCLNT.S.txt @@ -40,7 +40,8 @@ CS.START cld .DA CS.QUIT L.LIBTCPIP .DA LIBTCPIP L.IPCFG .DA IPCFG -L.Socket .DA Socket +L.SA.LOCAL .DA SA.LOCAL +L.SA.REMOTE .DA SA.REMOTE L.MSG.CFG1 .DA MSG.CFG1 L.MSG.CFG2 .DA MSG.CFG2 L.MSG.CFG.KO .DA MSG.CFG.KO @@ -53,6 +54,7 @@ L.DHCP.REQ .DA DHCP.REQ *-------------------------------------- CS.INIT >LDYA L.LIBTCPIP >SYSCALL LoadLib + bcs .9 sta hLIBTCPIP >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG @@ -105,13 +107,27 @@ CS.INIT >LDYA L.LIBTCPIP sec rts *-------------------------------------- -CS.RUN >PUSHW L.Socket - +CS.RUN >PUSHBI 0 no protocol + lda #S.SOCKET.T.DGRAM >LIBCALL hLIBTCPIP,LIBTCPIP.Socket bcc .1 - jmp CS.RUN.KO +.9 jmp CS.RUN.KO .1 >STA.G hSocket + pha + >PUSHW L.SA.LOCAL + pla + >LIBCALL hLIBTCPIP,LIBTCPIP.Bind + bcs .9 + + >PUSHWI S.SOCKET.O.BROADCAST + >LDA.G hSocket + >LIBCALL hLIBTCPIP,LIBTCPIP.setsockopt + + >PUSHW L.SA.REMOTE + >LDA.G hSocket + >LIBCALL hLIBTCPIP,LIBTCPIP.Connect + bcs .9 >LDYA L.MSG.CFG1 >SYSCALL puts @@ -236,7 +252,7 @@ CS.DOEVENT lda (pEvent) CS.QUIT >LDA.G hSocket beq .1 - >SYSCALL fclose + >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown .1 lda hLIBTCPIP >SYSCALL UnloadLib @@ -437,7 +453,7 @@ Wait.TimeOut ldy #TimeOut rts *-------------------------------------- CS.END -LIBTCPIP .AZ "libtcpip.o" +LIBTCPIP .AZ "libtcpip" MSG.CFG1 .AZ "DHCPCLNT:Searching for DHCP servers..." MSG.CFG2 .AZ "DHCPCLNT:Reply from DHCP Server at %d.%d.%d.%d, requesting...\r\n" MSG.CFG.KO .AZ "DHCPCLNT:Time Out [%h].\r\n" @@ -447,12 +463,15 @@ MSG.CFG.NA .AZ "DHCPCLNT:TCPIP Already configured, exiting." hLIBTCPIP .BS 1 IPCFG .BS S.IPCFG *-------------------------------------- -Socket .DA #S.SOCKET.T.DGRAM - .BS 3 - .HS 00.00.00.00 Socket.Src.Addr - .DA UDP.PORT.DHCPC Socket.Src.Port - .HS FF.FF.FF.FF Socket.Dst.Addr - .DA UDP.PORT.DHCPS Socket.Dst.Port +SA.LOCAL .DA #AF.INET S.SOCKADDR.AF + .BS 1 + .HS 00.00.00.00 S.SOCKADDR.ADDR + .DA UDP.PORT.DHCPC S.SOCKADDR.PORT +*-------------------------------------- +SA.REMOTE .DA #AF.INET S.SOCKADDR.AF + .BS 1 + .HS FF.FF.FF.FF S.SOCKADDR.ADDR + .DA UDP.PORT.DHCPS S.SOCKADDR.PORT *-------------------------------------- DHCP.DISC .HS 01010600 OP,HTYPE,HLEN,HOPS DHCP.DISC.XID .BS 4