From 84d77aaf7f9ad5b67e9438a4dd143962809679df Mon Sep 17 00:00:00 2001 From: burniouf Date: Fri, 6 Jan 2023 15:02:35 +0100 Subject: [PATCH] TCPIP:fixes for dual FIN/ACK transaction DAN2ETH.DRV --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes .Floppies/A2OSX.TEST.po | Bin 819200 -> 819200 bytes BIN/CC.S.CODE.txt | 4 +- BIN/CC.S.CORE.txt | 10 +- BIN/CC.S.DECL.txt | 2 +- BIN/CC.S.F.txt | 62 +++-- BIN/CC.S.KW.txt | 64 ++--- BIN/CC.S.SCOPE.txt | 99 ++++--- BIN/CC.S.STMT.txt | 94 +++---- BIN/CC.S.SYM.txt | 125 ++++++--- BIN/CC.S.txt | 53 ++-- BIN/NETSTAT.S.txt | 4 + DRV/DAN2ETH.DRV.S.txt | 503 +++++++++++++++++++++++++++++++++++ LIB/LIBTCPIP.S.DNS.txt | 18 +- LIB/LIBTCPIP.S.SKT.txt | 19 +- LIB/LIBTCPIP.S.TCP.txt | 77 ++---- ROOT/ctest/testargs.c.txt | 25 +- SCMASM.31/SCMASM.S.EDIT..txt | 2 +- 18 files changed, 863 insertions(+), 298 deletions(-) create mode 100644 DRV/DAN2ETH.DRV.S.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index caf5adc7ffd2d46483d935aa193fc9cc3460bf72..c64a2073e81a78e77b4319d7e042e45fed7cb1d3 100644 GIT binary patch delta 380703 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�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 zpb$_9Cy)5Kssx1QY@a0fm4hapb$_9Cy)5Kssx1QY@a0fm4hapb$_9Cy)5Kssx1pdEv=$Hlo0E7Wp2+AYwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj YFkrxd0RsjM7%*VKfB^#r-Uc>3bzo(IDgXcg delta 360451 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 z8{(aUTpk7q|3Ux)5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= f5P$##AOHafKmY;|fB*y_009X6|1FTirh5M`g{IbG diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index 77d2781ffab21f9e38cc2ddda22b7a9aa09b9855..aaabfeced4a3634b83fd4ba50dc6ce7ff2d7c4c3 100644 GIT binary patch delta 32850 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:+`yb4B{~GC`rkcor@BoiyYL|-Z%lmAP_H%jY;3WZ!fg3PA)83RyA zIe0*#dcyeskz0dvPuq64JRl_uZmvbqG`AL;X+t9*{b zcLn%Yc_dF;fM-up2Pt0=*8!n|A$zKt4m{vc@|rCMcgHAAokOPzG{4VOXOiqguHy3~ z-brwGn);k*Z4F+V1y=hpLyho{S!(6B4E4j3e}0>$?vwKr+p^Sp{L&LV3khbsX12I^n;(1>;GSP>Z;|-eN5+`Vr8Kf_y4K z!l0P`&IiY9r>dt13vMsQ^IwFg2d9Eg&k5J*Ina-*bJSUQ{}9a7U(8XL1+=C)uJX=_ zf6jppF3VLf3~?}g2?~A3^hT=VH$Gtq$Ogd$l{M$8(-?URja~6-9VcMBj^(N~WS@H9 zHWL^bRuKJz=gI_I0&nENbiN}CqYyE43O*669uGf!^I2PzU+iyuD{K4MDLVRXCznpvWb^LGCc$X@aNMe2Y^e*s0AFXPRH>P6}k@a_ho z!(YPh6{%yk%~8kDmxSy$bB;O@e(CL1@UR|oM3P7PDY%CsKCucNka#Am8gw!ULt#` zTBa1{5)kUVZ3W>;J8(p~I#qo^qH|orVF~Jq*j%oTRycL01f2ukbPeNx&{lnvua)pf ixN&6rBa~v{C48w|T^!)$jAvA+AKElmZJ!&M^Zx+!Aygy) delta 32708 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.G CC.hOutFile .8 clc rts *-------------------------------------- -CODE.nAddLocal eor #$FF +CODE.AddLocal eor #$FF inc -CODE.AddLocal jsr CODE.LDAI +CODE.RemLocal jsr CODE.LDAI bcs .9 >LDYA L.PCC.ADDLOCAL diff --git a/BIN/CC.S.CORE.txt b/BIN/CC.S.CORE.txt index 33a3aa78..fb5b1681 100644 --- a/BIN/CC.S.CORE.txt +++ b/BIN/CC.S.CORE.txt @@ -20,7 +20,7 @@ CORE.Init lda #SL._ >STA.G CC.hSyms ldy #CC.ScopeIDs - sty ScopeIdx + sty ScopePtr >LDYAI 256 >SYSCALL GetMem @@ -34,7 +34,7 @@ CORE.Init lda #SL._ >SYSCALL GetMem bcs .9 - >STYA ZPCCStack + >STYA StmtStk txa >STA.G CC.hStack @@ -329,13 +329,13 @@ CC.SListLookup >PUSHA hSList *-------------------------------------- * CT Stack *-------------------------------------- -CC.Push ldy CStackPtr +CC.Push ldy StmtPtr dey beq .9 - sty CStackPtr + sty StmtPtr - sta (ZPCCStack),y + sta (StmtStk),y clc rts diff --git a/BIN/CC.S.DECL.txt b/BIN/CC.S.DECL.txt index 8839342e..3736631c 100644 --- a/BIN/CC.S.DECL.txt +++ b/BIN/CC.S.DECL.txt @@ -95,7 +95,7 @@ DECL.YAC ldx #SYM.SC.STATIC Y,A = Type/Qual ldx #SYM.SC.AUTO .22 jsr SYM.New Y,A=T/Q, X=SC, C=clear/reuse - bcs .98 OOM or DUP + bcs .99 OOM or DUP jsr SYM.GetTQInYA Y,A = T/Q bit #SYM.Q.FUNC diff --git a/BIN/CC.S.F.txt b/BIN/CC.S.F.txt index 5b66235d..0efea3f8 100644 --- a/BIN/CC.S.F.txt +++ b/BIN/CC.S.F.txt @@ -1,9 +1,7 @@ NEW AUTO 3,1 *-------------------------------------- -F.Decl stz LocalPtr - - jsr SCOPE.New +F.Decl jsr SCOPE.New bcs .99 lda (ZPSymBufPtr) #SYM.T @@ -37,28 +35,19 @@ F.Decl stz LocalPtr jsr SYM.AddWord bcs .99 + cpy #SYM.T.VARIADIC + beq .5 + jsr CC.GetCharNB bcs .9 jsr CC.IsLetter bcs .2 - jsr F.NewArg will update LocalPtr - bcc .3 + jsr F.NewArg will update LocalPtr,LocalFrame + bcs .99 - rts - -.2 >LDYA ZPPtr2 - jsr EXP.GetYASizeOfInAX - clc - adc LocalPtr - sta LocalPtr - bcs .9 - - txa - bne .9 - -.3 jsr CC.GetCharNB +.2 jsr CC.GetCharNB bcs .9 cmp #')' @@ -74,6 +63,12 @@ F.Decl stz LocalPtr sec .99 rts *-------------------------------------- +.5 jsr CC.GetCharNB + bcs .9 + + cmp #')' + bne .9 + .6 jsr SYM.Add0000 definition End bcs .99 @@ -82,7 +77,7 @@ F.Decl stz LocalPtr cmp #';' bne .7 - + jsr SCOPE.Close discard local scope bcs .99 @@ -112,7 +107,17 @@ F.Def >LDA.G CC.bInitCode jsr SYM.Update Store f() Declaration bcs .99 - lda LocalPtr + ldy #SYM.SizeOf + lda (ZPSymBufPtr),y + beq .2 void f() + + + + + + + +.2 >LDA.G CC.LocalFrame jsr CODE.LDAI A = f() ARGS size bcs .99 @@ -201,7 +206,10 @@ F.AddReturnVar ldx ZPLineBufPtr >STYA ZPPtr2 Y,A = T/Q - >LDYA L.CC._RETURN_ + lda #'R' + >STA.G CC.Label+1 + + >LEA.G CC.Label >STYA ZPLineBufPtr jsr F.NewArg @@ -229,8 +237,6 @@ F.NewArg >LDYA.G CC.SymID jsr SYM.Store bcs .9 - stz LocalFrame DONT ADD TO LOCAL - >LDA.G CC.hSymBuf >SYSCALL GetMemPtr >STYA ZPSymBufPtr @@ -262,8 +268,16 @@ F.CallRetV sec >STYA ZPPtr2 ror ZPPtr1+1 bRetV + bpl .1 + + jsr EXP.GetYASizeOfInAX + txa + jsr CODE.AddLocal + bcc .1 + + rts - jsr CORE.GetNCharNB skip '(' +.1 jsr CORE.GetNCharNB skip '(' bcs .90 jsr SYM.LookupCheckTQ diff --git a/BIN/CC.S.KW.txt b/BIN/CC.S.KW.txt index 0d94a825..ef51f910 100644 --- a/BIN/CC.S.KW.txt +++ b/BIN/CC.S.KW.txt @@ -391,10 +391,10 @@ KW.SWITCH jsr CC.GetCharNB bcs .99 txa - jsr CC.Push push CPS.hMEM + jsr CC.Push push STMT.hMEM lda #0 - jsr CC.Push push CPS.MemPtr + jsr CC.Push push STMT.MemPtr bcs .99 jsr STMT.New @@ -429,20 +429,21 @@ KW.SWITCH.END lda #'J' define JMP Label jsr SYM.NewLabelA bcs KW.SWITCH.RTS - lda CStackPtr + lda StmtPtr clc - adc #CPS.hMEM + adc #STMT.hMEM tay + lda (StmtStk),y - lda (ZPCCStack),y >SYSCALL GetMemPtr >STYA ZPPtr1 - lda CStackPtr + lda StmtPtr clc - adc #CPS.MemPtr + adc #STMT.MemPtr tay - lda (ZPCCStack),y + lda (StmtStk),y + sta ZPPtr2+1 stz ZPPtr2 @@ -498,30 +499,23 @@ KW.SWITCH.END lda #'J' define JMP Label jsr SYM.NewLabelA bcs .99 - lda CStackPtr - clc - adc #CPS.hMEM - tay - - lda (ZPCCStack),y - >SYSCALL FreeMem - jmp STMT.Close SWITCH () .99 rts *-------------------------------------- -KW.CASE ldy CStackPtr +KW.CASE ldy StmtPtr beq .98 - lda (ZPCCStack),y + lda (StmtStk),y cmp #KW.SWITCH.ID SWITCH ?? bne .98 - tya + lda StmtPtr clc - adc #CPS.hMEM + adc #STMT.hMEM tay - lda (ZPCCStack),y + lda (StmtStk),y + >SYSCALL GetMemPtr >STYA ZPPtr1 @@ -530,11 +524,12 @@ KW.CASE ldy CStackPtr >STYA ZPPtr2 - lda CStackPtr + lda StmtPtr clc - adc #CPS.MemPtr + adc #STMT.MemPtr tay - lda (ZPCCStack),y + lda (StmtStk),y + tay lda ZPPtr2 @@ -554,12 +549,12 @@ KW.CASE ldy CStackPtr phy - lda CStackPtr + lda StmtPtr clc - adc #CPS.MemPtr + adc #STMT.MemPtr tay pla - sta (ZPCCStack),y + sta (StmtStk),y jsr CC.GetCharNB bcs .98 @@ -580,10 +575,10 @@ KW.CASE ldy CStackPtr sec .99 rts *-------------------------------------- -KW.DEFAULT ldy CStackPtr +KW.DEFAULT ldy StmtPtr beq .9 - lda (ZPCCStack),y + lda (StmtStk),y cmp #KW.SWITCH.ID bne .9 @@ -615,7 +610,6 @@ KW.BREAK lda #'B' .99 rts *-------------------------------------- KW.CONTINUE lda #'C' - jsr SYM.LookupLabelA bcs .99 @@ -631,7 +625,10 @@ KW.RETURN ldx ZPLineBufPtr ldx ZPLineBufPtr+1 phx - >LDYA L.CC._RETURN_ + lda #'R' + >STA.G CC.Label+1 + + >LEA.G CC.Label >STYA ZPLineBufPtr jsr SYM.Lookup @@ -668,9 +665,6 @@ KW.RETURN ldx ZPLineBufPtr lda #$4C emit JMP exit jmp CODE.TOABSYX -.9 lda #E.CSYN - sec - .99 rts *-------------------------------------- KW.SIZEOF @@ -732,7 +726,7 @@ KW.StackDiscard jsr TYPE.SizeOf txa beq .8 void - jsr CODE.AddLocal + jsr CODE.RemLocal .8 clc .9 rts diff --git a/BIN/CC.S.SCOPE.txt b/BIN/CC.S.SCOPE.txt index 017d6e51..0f1fb500 100644 --- a/BIN/CC.S.SCOPE.txt +++ b/BIN/CC.S.SCOPE.txt @@ -1,46 +1,58 @@ NEW AUTO 3,1 *-------------------------------------- -SCOPE.New ldy ScopeIdx +SCOPE.New ldy ScopePtr cpy #CC.ScopeIDs+SCOPE.MAX*2 bcs .9 iny iny - sty ScopeIdx + sty ScopePtr >INCW.G CC.ScopeID >LDA.G CC.ScopeID - ldy ScopeIdx + ldy ScopePtr sta (pData),y >LDA.G CC.ScopeID+1 - ldy ScopeIdx + ldy ScopePtr iny sta (pData),y - dec bLocalScope - - stz LocalFrame + + + + dec bLocalScope + + lda #'F' + jsr SYM.LookupLabelA + bcs .99 + + txa + + jsr CODE.AddLocal + bcs .99 + + .DO _DBG_SCOPE=1 >PUSHW L.MSG.DEBUG.SCIN jsr SCOPE.Push - lda ScopeIdx + lda ScopePtr sec sbc #CC.ScopeIDs lsr >PUSHA - >PUSHB LocalPtr - >PUSHB LocalFrame + >PUSHB.G CC.LocalPtr + >PUSHB.G CC.LocalFrame >PUSHBI 5 >SYSCALL PrintF -* >DEBUG + >DEBUG .FIN clc @@ -48,44 +60,65 @@ SCOPE.New ldy ScopeIdx .9 lda #E.OOH sec -.99 rts +.99 +SCOPE.New.RTS rts *-------------------------------------- -SCOPE.Close .DO _DBG_SCOPE=1 +SCOPE.Close lda #'F' define FRAME SIZE + jsr SYM.NewLabelA + bcs SCOPE.New.RTS + + >LDA.G CC.LocalFrame + jsr CODE.RemLocal + bcs SCOPE.New.RTS + + .DO _DBG_SCOPE=1 >PUSHW L.MSG.DEBUG.SCOUT jsr SCOPE.Push - .FIN - - ldy ScopeIdx - cpy #CC.ScopeIDs - beq * - - dey - dey - sty ScopeIdx - - inc bLocalScope - - .DO _DBG_SCOPE=1 - - lda ScopeIdx + lda ScopePtr sec sbc #CC.ScopeIDs lsr >PUSHA - >PUSHB LocalPtr - >PUSHB LocalFrame - jsr SCOPE.Push - >PUSHBI 7 + >PUSHB.G CC.LocalPtr + >PUSHB.G CC.LocalFrame + >PUSHBI 5 >SYSCALL PrintF + .FIN + + ldy ScopePtr + cpy #CC.ScopeIDs + beq * + dey + dey + sty ScopePtr + + inc bLocalScope + + .DO _DBG_SCOPE=1 + + >PUSHW L.MSG.DEBUG.SC + jsr SCOPE.Push + + lda ScopePtr + sec + sbc #CC.ScopeIDs + lsr + >PUSHA + + >PUSHB.G CC.LocalPtr + >PUSHB.G CC.LocalFrame + >PUSHBI 5 + >SYSCALL PrintF + >DEBUG .FIN clc .99 rts *-------------------------------------- -SCOPE.Push ldy ScopeIdx +SCOPE.Push ldy ScopePtr SCOPE.PushY iny lda (pData),y diff --git a/BIN/CC.S.STMT.txt b/BIN/CC.S.STMT.txt index ee8f70de..790f19d7 100644 --- a/BIN/CC.S.STMT.txt +++ b/BIN/CC.S.STMT.txt @@ -122,16 +122,16 @@ STMT.SetVar stz ExpState *-------------------------------------- *-------------------------------------- -STMT.Stmt.END ldy CStackPtr +STMT.Stmt.END ldy StmtPtr beq STMT.POP.8 Global context - lda (ZPCCStack),y + lda (StmtStk),y bmi STMT.POP.8 local F context * in an instruction ... - iny CPS.TERM - lda (ZPCCStack),y + iny STMT.TERM + lda (StmtStk),y cmp #'}' - beq STMT.POP.8 in a CPS... + beq STMT.POP.8 in a STMT... cmp #';' must be ';' on stack.... beq STMT.End @@ -143,45 +143,37 @@ STMT.POP.9 lda #E.STACKERROR STMT.POP.8 clc STMT.POP.99 rts *-------------------------------------- -STMT.CPStmt.END ldy CStackPtr +STMT.CPStmt.END ldy StmtPtr beq STMT.POP.9 - lda (ZPCCStack),y + lda (StmtStk),y bpl .1 jmp F.Def.END local F context .1 iny - lda (ZPCCStack),y CPS.TERM + lda (StmtStk),y STMT.TERM cmp #'}' must be '}' on stack.... bne STMT.POP.9 *-------------------------------------- -STMT.End ldy CStackPtr CPS.KW - lda (ZPCCStack),y +STMT.End ldy StmtPtr STMT.KW + lda (StmtStk),y tax jmp (J.CC.KW.END,x) *-------------------------------------- STMT.New00 lda #0 - jsr CC.Push CPS.hMEM + jsr CC.Push STMT.hMEM bcs STMT.New.RTS - jsr CC.Push CPS.MemPtr + jsr CC.Push STMT.MemPtr bcs STMT.New.RTS -STMT.New lda LocalFrame +STMT.New lda #';' STMT.TERM jsr CC.Push bcs .99 - lda LocalPtr - jsr CC.Push - bcs .99 - - lda #';' CPS.TERM - jsr CC.Push - bcs .99 - - >LDA.G CC.CmdSave + >LDA.G CC.CmdSave STMT.KW jmp CC.Push .99 @@ -195,27 +187,18 @@ STMT.SetType jsr CORE.GetNCharNBNL cmp #'{' bne STMT.SetType.1 -STMT.SetTypeCP jsr CORE.GetNCharNB skip '{' +STMT.SetTypeCP jsr CORE.GetNCharNBNL skip '{' bcs STMT.SetType.9 jsr SCOPE.New bcs STMT.New.RTS - lda #'F' - jsr SYM.LookupLabelA - bcs STMT.New.RTS - - txa - - jsr CODE.nAddLocal - bcs STMT.New.RTS - ldx #'}' STMT.SetType.1 txa - ldy CStackPtr - iny CPS.TERM - sta (ZPCCStack),y + ldy StmtPtr + iny STMT.TERM + sta (StmtStk),y clc rts @@ -224,40 +207,31 @@ STMT.SetType.9 lda #E.CSYN sec rts *-------------------------------------- -STMT.Close ldy CStackPtr CPS.KW - iny CPS.TERM - lda (ZPCCStack),y - cmp #'}' - bne .1 - - lda #'F' define FRAME SIZE - jsr SYM.NewLabelA - bcs .99 - - lda LocalFrame - jsr CODE.AddLocal - bcs .99 - - lda CStackPtr +STMT.Close lda StmtPtr clc - adc #CPS.LocalPtr + adc #STMT.hMEM tay - lda (ZPCCStack),y - sta LocalPtr + lda (StmtStk),y + beq .1 - iny CPS.LocalFrame - lda (ZPCCStack),y - sta LocalFrame + >SYSCALL FreeMem + +.1 ldy StmtPtr STMT.KW + iny STMT.TERM + lda (StmtStk),y + cmp #'}' + bne .2 jsr SCOPE.Close bcs .99 -.1 lda CStackPtr +.2 lda StmtPtr + clc + adc #STMT + sta StmtPtr + clc - adc #CPS - sta CStackPtr -.8 clc .99 rts *-------------------------------------- MAN diff --git a/BIN/CC.S.SYM.txt b/BIN/CC.S.SYM.txt index a02a28da..281b37a5 100644 --- a/BIN/CC.S.SYM.txt +++ b/BIN/CC.S.SYM.txt @@ -81,7 +81,8 @@ SYM.New.2 jsr CC.GetCharNB jsr SYM.Store Store this f() with no prototype... bcs .99 - jmp F.Decl + jsr F.Decl + rts .98 lda #E.CSYN sec @@ -195,16 +196,18 @@ SYM.SetAddrG ldy #SYM.Addr rts *-------------------------------------- SYM.SetAddrL ldy #SYM.SizeOf+1 + lda (ZPSymBufPtr),y bne .9 - lda LocalPtr + dey #SYM.SizeOf + + lda (ZPSymBufPtr),y clc - dey SYM.SizeOf - adc (ZPSymBufPtr),y + >ADC.G CC.LocalPtr bcs .9 - sta LocalPtr + sta (pData),y ldy #SYM.Addr sta (ZPSymBufPtr),y @@ -213,8 +216,8 @@ SYM.SetAddrL ldy #SYM.SizeOf+1 lda (ZPSymBufPtr),y clc - adc LocalFrame - sta LocalFrame + >ADC.G CC.LocalFrame + sta (pData),y clc rts @@ -241,7 +244,7 @@ SYM.BufInitYAXC pha .1 iny sta (ZPSymBufPtr),y - cpy #SYM + cpy #SYM-1 bcc .1 ldy #SYM.DefSize @@ -536,7 +539,7 @@ SYM.Lookup >LDA.G CC.LookupIdx >PUSHB.G CC.hSyms ...for SListGetData - lda ScopeIdx + lda ScopePtr .1 pha >PUSHB.G CC.hSyms @@ -570,7 +573,7 @@ SYM.Lookup >LDA.G CC.LookupIdx tya >PUSHA KeyID.LO - pla discard ScopeIdx + pla discard ScopePtr jsr CC.SkipX @@ -607,7 +610,7 @@ SYM.NewLabelA bit bPass2 bpl .10 clc - rts +.98 rts .10 >STA.G CC.Label+1 @@ -615,48 +618,60 @@ SYM.NewLabelA bit bPass2 >PUSHEA.G CC.Label jsr SCOPE.Push >SYSCALL SListNewKey - bcs .99 + bcs .98 - >STYA.G CC.SymID Y,A = KeyID - - ldy #SYM.T.VOID + >STYA.G CC.LabelID + + lda #SYM.T.VOID + >STA.G CC.LabelBuf lda #SYM.Q.POINTER - ldx #SYM.SC.STATIC - sec - jsr SYM.BufInitYAXC + iny + sta (pData),y + + ldy #CC.LabelBuf+SYM.DefSize + lda #SYM.Def + sta (pData),y >LDA.G CC.Label+1 cmp #'F' bne .1 - lda LocalFrame - ldy #SYM.Addr - sta (ZPSymBufPtr),y - + ldy #CC.LabelBuf+SYM.SC lda #SYM.SC.AUTO - ldy #SYM.SC - sta (ZPSymBufPtr),y + sta (pData),y + + >LDA.G CC.LocalFrame + ldy #CC.LabelBuf+SYM.Addr + sta (pData),y bra .2 -.1 jsr SYM.SetAddrCCode +.1 ldy #CC.LabelBuf+SYM.SC + lda #SYM.SC.STATIC + sta (pData),y + + ldy #CC.LabelBuf+SYM.Addr + lda ZPCCCode + sta (pData),y + iny + lda ZPCCCode+1 + sta (pData),y .2 .DO _DBG_SYM=1 - jsr SYM.DEBUGN + jsr SYM.DEBUGNL .FIN >PUSHB.G CC.hSyms - >PUSHW.G CC.SymID - >PUSHW ZPSymBufPtr + >PUSHW.G CC.LabelID + >PUSHEA.G CC.LabelBuf >PUSHBI 0 - ldy #SYM.DefSize - lda (ZPSymBufPtr),y + lda #SYM.Def >PUSHA >SYSCALL SListAddData .DO _DBG_SYM=1 bcs .99 - jsr SYM.DEBUGS + jsr SYM.DEBUGSL .FIN .99 rts *-------------------------------------- @@ -673,7 +688,7 @@ SYM.LookupLabelA >PUSHB.G CC.hSyms ...for SListGetData - ldy ScopeIdx + ldy ScopePtr .2 phy >PUSHB.G CC.hSyms @@ -923,15 +938,12 @@ SYM.SetSizeOf ldy #SYM.SizeOf rts *-------------------------------------- SYM.SetAddrCCode - >LDYA ZPCCCode -SYM.SetAddrYA phy - - ldy #SYM.Addr+1 + lda ZPCCCode + ldy #SYM.Addr sta (ZPSymBufPtr),y - pla - - dey + lda ZPCCCode+1 + iny sta (ZPSymBufPtr),y rts @@ -950,7 +962,7 @@ SYM.DEBUGN >PUSHW L.MSG.DEBUG.SYMN >PUSHA >PUSHBI 7 >SYSCALL Printf -* >DEBUG +* >DEBUG rts SYM.DEBUGU >PUSHW L.MSG.DEBUG.SYMU @@ -994,6 +1006,39 @@ SYM.DEBUGG >PUSHW L.MSG.DEBUG.SYMG >PUSHBI 5 >SYSCALL Printf rts + +SYM.DEBUGNL >PUSHW L.MSG.DEBUG.SYMNL + >PUSHEA.G CC.Label + >PUSHW.G CC.LabelID + jsr SCOPE.Push + ldy #CC.LabelBuf + lda (pData),y + >PUSHA + iny + lda (pData),y + >PUSHA + iny + lda (pData),y + >PUSHA + >PUSHBI 9 + >SYSCALL Printf +* >DEBUG + rts + +SYM.DEBUGSL >PUSHW L.MSG.DEBUG.SYMSL + >PUSHW.G CC.LabelID + ldy #CC.LabelBuf + lda (pData),y + >PUSHA + iny + lda (pData),y + >PUSHA + iny + lda (pData),y + >PUSHA + >PUSHBI 5 + >SYSCALL Printf + rts .FIN *-------------------------------------- MAN diff --git a/BIN/CC.S.txt b/BIN/CC.S.txt index d6b71b5d..5deb2fba 100644 --- a/BIN/CC.S.txt +++ b/BIN/CC.S.txt @@ -11,7 +11,7 @@ NEW .INB inc/mli.e.i *-------------------------------------- _DBG_SYM .EQ 0 -_DBG_SCOPE .EQ 0 +_DBG_SCOPE .EQ 1 _DBG_OUT .EQ 0 *-------------------------------------- FILES.MAX .EQ 4 @@ -70,14 +70,12 @@ SU.F.BitO .EQ 4 SU.F.BitW .EQ 5 SU.F.Name .EQ 6 *-------------------------------------- -CPS.hMEM .EQ 5 switch/case -CPS.MemPtr .EQ 4 -CPS.LocalFrame .EQ 3 -CPS.LocalPtr .EQ 2 -CPS.TERM .EQ 1 -CPS.KW .EQ 0 +STMT.hMEM .EQ 3 switch/case +STMT.MemPtr .EQ 2 +STMT.TERM .EQ 1 +STMT.KW .EQ 0 * -CPS .EQ 6 +STMT .EQ 4 *-------------------------------------- *-------------------------------------- @@ -95,14 +93,14 @@ bPass2 .BS 1 ZPCCCode .BS 2 ZPCCConst .BS 2 ZPCCData .BS 2 -ZPCCStack .BS 2 + +StmtStk .BS 2 ZPLineBufPtr .BS 2 ZPLookupPtr .BS 2 -CStackPtr .BS 1 -LocalPtr .BS 1 -LocalFrame .BS 1 -ScopeIdx .BS 1 + +ScopePtr .BS 1 +StmtPtr .BS 1 ZPSymBufPtr .BS 2 ZPLookupSymPtr .BS 2 @@ -149,6 +147,8 @@ L.MSG.DEBUG.SYMN .DA MSG.DEBUG.SYMN L.MSG.DEBUG.SYMU .DA MSG.DEBUG.SYMU L.MSG.DEBUG.SYMS .DA MSG.DEBUG.SYMS L.MSG.DEBUG.SYMG .DA MSG.DEBUG.SYMG +L.MSG.DEBUG.SYMNL .DA MSG.DEBUG.SYMNL +L.MSG.DEBUG.SYMSL .DA MSG.DEBUG.SYMSL .FIN .DO _DBG_SCOPE=1 L.MSG.DEBUG.SCIN .DA MSG.DEBUG.SCIN @@ -251,7 +251,6 @@ J.CC.STYPES .DA TYPE.SCHAR .DA TYPE.SLONG *-------------------------------------- L.CC.MAIN .DA CC.MAIN -L.CC._RETURN_ .DA CC._RETURN_ L.CC.SYSCALL .DA CC.SYSCALL L.CC.FPUCALL .DA CC.FPUCALL *-------------------------------------- @@ -389,10 +388,10 @@ CS.RUN.CLOOP jsr CORE.CompileFile *-------------------------------------- .1 jsr PrintSummary bcs .99 - >DEBUG +* >DEBUG jsr CC.Link bcs .99 - >DEBUG +* >DEBUG jsr CC.Link.CheckMain bcs .99 @@ -538,14 +537,14 @@ PrintVerboseMsg >PUSHW L.MSG.DEBUG.SC jsr SCOPE.Push - lda ScopeIdx + lda ScopePtr sec sbc #CC.ScopeIDs lsr >PUSHA - >PUSHB LocalPtr - >PUSHB LocalFrame + >PUSHB.G CC.LocalPtr + >PUSHB.G CC.LocalFrame >PUSHBI 5 >SYSCALL PrintF * >DEBUG @@ -660,11 +659,13 @@ MSG.DEBUG.SYMN .CZ "New SymID=%H[%H],T=%h,Q=%h,SC=%h " MSG.DEBUG.SYMU .CZ "Upd SymID=%H,T=%h,Q=%h,SC=%h\r\n" MSG.DEBUG.SYMS .CZ "Sto SymID=%H,T=%h,Q=%h,SC=%h\r\n" MSG.DEBUG.SYMG .CZ "Get SymID=%H,T=%h,Q=%h,SC=%h\r\n" +MSG.DEBUG.SYMNL .CZ "New (%s) ID=%H[%H],T=%h,Q=%h,SC=%h " +MSG.DEBUG.SYMSL .CZ "Sto ID=%H,T=%h,Q=%h,SC=%h\r\n" .FIN .DO _DBG_SCOPE=1 MSG.DEBUG.SCIN .CZ "Scope { %H (%d:%h:%h)\r\n" MSG.DEBUG.SC .CZ "Scope = %H (%d:%h:%h)\r\n" -MSG.DEBUG.SCOUT .CZ "Scope } %H (%d:%h:%h) -> %H\r\n" +MSG.DEBUG.SCOUT .CZ "Scope } %H (%d:%h:%h) -> " .FIN .DO _DBG_OUT=1 MSG.DEBUG.CSOUT .CZ "\r\n%H-" @@ -815,7 +816,6 @@ CC.TYPESIGN .HS 0000FF00FF00FFFF CC.MAIN .AZ "main" CC.MAIN.DEF .DA #SYM.T.SINT,#0,#SYM.T.SINT,#0,#SYM.T.UCHAR,#SYM.Q.PPOINTER,0 CC.MAIN.DEF.LEN .EQ *-CC.MAIN.DEF -CC._RETURN_ .AZ "_RETURN_;" *-------------------------------------- CC.SYSCALL .PS "chtyp" .DA #SYS.ChTyp @@ -1136,16 +1136,21 @@ CC.hStack .BS 1 CC.hSyms .BS 1 CC.ScopeID .BS 2 +CC.LocalPtr .BS 1 +CC.LocalFrame .BS 1 + CC.ScopeIDs .BS 2+SCOPE.MAX*2 2 bytes Global+ MAX locals - +CC.ScopePtrs .BS 2+SCOPE.MAX*2 CC.bInitCode .BS 1 - -CC.Label .BS 3 _X\0 *-------------------------------------- CC.hSymBuf .BS 1 CC.SymID .BS 2 CC.SymIDSave .BS 2 CC.ArgBuf .BS SYM + +CC.Label .BS 3 _X\0 +CC.LabelID .BS 2 +CC.LabelBuf .BS SYM *-------------------------------------- CC.LookupSymSize .BS 2 CC.LookupSymPtr .BS 2 diff --git a/BIN/NETSTAT.S.txt b/BIN/NETSTAT.S.txt index c064d9a0..28a297fa 100644 --- a/BIN/NETSTAT.S.txt +++ b/BIN/NETSTAT.S.txt @@ -80,6 +80,7 @@ CS.RUN >LDYA L.MSG0 >STYA ZPPTR1 ldy SocketIndex + .1 lda (ZPPTR1),y beq .7 @@ -137,6 +138,7 @@ CS.RUN.TP ldy #S.SOCKET.T .3 cmp PROTO,x beq .4 + inx cpx #PROTO.Cnt bne .3 @@ -167,6 +169,7 @@ CS.RUN.S ldy #S.SOCKET.TCP.S cmp #S.SOCKET.TCP.S.TIMEWT+1 bcc .1 + lda #S.SOCKET.TCP.S.TIMEWT+1 .1 asl @@ -180,6 +183,7 @@ CS.DOEVENT sec *-------------------------------------- CS.QUIT lda hLIBTCPIP beq .8 + >SYSCALL UnloadLib .8 clc rts diff --git a/DRV/DAN2ETH.DRV.S.txt b/DRV/DAN2ETH.DRV.S.txt new file mode 100644 index 00000000..503cab01 --- /dev/null +++ b/DRV/DAN2ETH.DRV.S.txt @@ -0,0 +1,503 @@ +NEW + AUTO 3,1 + .LIST OFF + .OP 65C02 + .OR $2000 + .TF drv/dan2eth.drv +*-------------------------------------- + .INB inc/macros.i + .INB inc/a2osx.i + .INB inc/mli.e.i + .INB inc/nic.i + .INB inc/eth.i +*-------------------------------------- +IO.8255.Cmd.PFX .EQ $AC + +IO.8255.Cmd.INIT .EQ $10 +IO.8255.Cmd.POLL .EQ $11 +IO.8255.Cmd.SEND .EQ $12 + +IO.8255.Data .EQ $C080-$88 + +* IO.6255.PortB .EQ $C081-$88 Unused + +IO.8255.S .EQ $C082-$88 +IO.8255.S.ByteSent .EQ %10000000 +IO.8255.S.ByteRcvd .EQ %00100000 + +IO.8255.Mode .EQ $C083-$88 +*-------------------------------------- + .MA READBYTE + lda #IO.8255.S.ByteRcvd +:1 bit IO.8255.S,x + bne :1 + lda IO.8255.Data,x + .EM + + .MA WRITEBYTE + sta IO.8255.Data,x +* lda #IO.8255.S.ByteSent +:1 bit IO.8255.S,x + bpl :1 + + .EM +*-------------------------------------- + .DUMMY + .OR ZPBIN +ZS.START +ZPPtr1 .BS 2 +ZPArgPtr .BS 2 +DEVSLOT0x .BS 1 +ZS.END .ED +*-------------------------------------- +* File Header (16 Bytes) +*-------------------------------------- +CS.START cld + jmp Dev.Detect cld,jmp abs=DRV + .DA #$61 6502,Level 1 (65c02) + .DA #1 DRV Layout Version 1 + .DA 0 + .DA CS.END-CS.START Code Length + .DA 0 + .DA 0 + .DA 0 +*-------------------------------------- +* Relocation Table +*-------------------------------------- +L.MSG.DETECT .DA MSG.DETECT +L.MSG.DETECT.OK .DA MSG.DETECT.OK +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.MAC .DA SSCANF.MAC +L.MAC0 .DA DCB+S.DCB.NIC.MAC + .DA DCB+S.DCB.NIC.MAC+1 + .DA DCB+S.DCB.NIC.MAC+2 + .DA DCB+S.DCB.NIC.MAC+3 + .DA DCB+S.DCB.NIC.MAC+4 + .DA DCB+S.DCB.NIC.MAC+5 + .DA 0 End Of Reloc Table +*-------------------------------------- +Dev.Detect >STYA ZPArgPtr + + >LDYA L.MSG.DETECT + >SYSCALL PutS + + stz ZPPtr1 + lda #$C7 + +.1 sta ZPPtr1+1 + + ldy #ROM.SIG.L-1 + +.10 lda (ZPPtr1),y + cmp ROM.SIG,y + bne .2 + + dey + bpl .10 + + lda ZPPtr1+1 + and #$0F + tay + asl + asl + asl + asl + ora #$88 + tax + + lda #$fa + sta IO.8255.Mode,x + cmp IO.8255.Mode,x + beq .3 + +.2 dec FD.DEV.NAME+3 + lda ZPPtr1+1 + dec + cmp #$C0 + bne .1 + + >LDYA L.MSG.DETECT.KO + >SYSCALL PutS + + lda #MLI.E.NODEV + sec +.99 rts + +.3 stx DEVSLOTx0 + sty DEVSLOT0x + + + + + +* sta DIB+S.DIB.VERSION+1 +* sta DIB+S.DIB.VERSION + + jsr Dev.ParseArgs + bcs .99 + +.8 >PUSHW L.MSG.DETECT.OK + >PUSHW L.FD.DEV.NAME + >PUSHBI 2 + >SYSCALL PrintF + + >PUSHWI DRV.END + >PUSHWI DRV.CS.END-DRV.CS.START + >PUSHWI DRV.CS.START + >LDYA L.DRV.CS.START + >SYSCALL InsDrv + bcs .9 + + >STYA FD.DEV+S.FD.DEV.DRVPTR + + >PUSHW L.FD.DEV + >PUSHW L.FD.DEV.NAME + >SYSCALL MKDev + bcs .9 + + ldx DEVSLOT0x + lda #A2osX.S.NIC + sta A2osX.S,x +* clc +.9 rts +*-------------------------------------- +Dev.ParseArgs lda (ZPArgPtr) + bne .1 + + lda A2osX.RANDOM16 + eor A2osX.TIMER16 + sta DCB+S.DCB.NIC.MAC+3 + eor A2osX.RANDOM16+1 + sta DCB+S.DCB.NIC.MAC+4 + eor A2osX.TIMER16+1 + sta DCB+S.DCB.NIC.MAC+5 + clc + rts + +.1 >PUSHW ZPArgPtr + >PUSHW L.SSCANF.MAC + + ldx #0 + +.2 >PUSHW L.MAC0,x + inx + inx + cpx #12 + bne .2 + + >PUSHBI 12 6 x byte PTRs + >SYSCALL SScanF + bcc .8 + + lda #E.SYN +* sec +.8 rts +*-------------------------------------- +CS.END +MSG.DETECT .CZ "dan2eth/W5500 Driver." +MSG.DETECT.OK .CZ "dan2eth/W5500 Installed As Device : %s\r\n" +MSG.DETECT.KO .CZ "Hardware Not Found." +SSCANF.MAC .CZ "%h:%h:%h:%h:%h:%h" +ROM.SIG .HS E0.20.A0.00.E0.03.A2.3C.D0.05.A9.01.9D.FB.BF.A0 +ROM.SIG.L .EQ *-ROM.SIG +*-------------------------------------- +FD.DEV .DA #S.FD.T.CDEV + .DA #0 HANDLER + .DA #0 BUSID + .DA #0 DEVID + .DA 0 BUSPTR + .BS 2 DRVPTR + .DA 0 DCBPTR + .DA 0 BUFPTR +FD.DEV.NAME .AZ "eth7" +*-------------------------------------- +* Driver Code +*-------------------------------------- +ZPIOCTL .EQ ZPDRV +ZPBufPtr .EQ ZPDRV+2 +Counter .EQ ZPDRV+4 +*-------------------------------------- +DRV.CS.START cld + jmp (.1,x) +.1 .DA STATUS + .DA A2osX.BADCALL + .DA A2osX.BADCALL + .DA A2osX.BADCALL + .DA A2osX.BADCALL + .DA A2osX.BADCALL + .DA OPEN + .DA CLOSE + .DA READ + .DA WRITE + .DA 0 end or relocation +*-------------------------------------- +STATUS >STYA ZPIOCTL + + ldy #S.IOCTL.S + lda (ZPIOCTL),y + beq .1 + + cmp #S.IOCTL.S.GETDIB + bne STATUS.DCB + + ldx #S.DIB-1 + + .HS 2C bit abs + +.1 ldx #3 + + ldy #S.IOCTL.BUFPTR + lda (ZPIOCTL),y + sta .3+1 + iny + lda (ZPIOCTL),y + sta .3+2 + +.2 lda DIB,x + +.3 sta $ffff,x SELF MODIFIED + dex + bpl .2 + + clc + rts + +STATUS.DCB cmp #S.IOCTL.S.GETDCB + bne STATUS.9 + + stz DCB+S.DCB.NIC.LINK + + + lda #S.DCB.NIC.LINK.OK + tsb DCB+S.DCB.NIC.LINK + + + lda #S.DCB.NIC.LINK.FD + tsb DCB+S.DCB.NIC.LINK + +.1 ldy #S.IOCTL.BUFPTR + lda (ZPIOCTL),y + sta .3+1 + iny + lda (ZPIOCTL),y + sta .3+2 + ldx #S.DCB.NIC-1 + +.2 lda DCB,x + +.3 sta $ffff,x SELF MODIFIED + dex + bpl .2 + + clc + rts + +STATUS.9 lda #MLI.E.BADCTL + sec + rts +*-------------------------------------- +OPEN lda #S.DIB.S.OPENED + bit DIB+S.DIB.S + bne .9 + + jsr CLOSE + +* ldx DEVSLOTx0 Done by CLOSE + + lda #$FA + sta IO.8255.Mode,x + + + lda #IO.8255.Cmd.PFX + >WRITEBYTE + lda #IO.8255.Cmd.INIT + >WRITEBYTE + + ldy #0 + +.1 lda DCB+S.DCB.NIC.MAC+0,y + >WRITEBYTE + iny + + cpy #6 + bcc .1 + + >READBYTE + beq .8 + + lda #MLI.E.IO + sec + rts + +.8 lda #S.DIB.S.OPENED + tsb DIB+S.DIB.S + clc + rts + +.9 lda #MLI.E.OPEN + sec + rts +*-------------------------------------- +CLOSE ldx DEVSLOTx0 + + + + + + +.8 lda #S.DIB.S.OPENED + trb DIB+S.DIB.S + clc + rts +*-------------------------------------- +READ php + sei + + >STYA ZPIOCTL + + ldx DEVSLOTx0 + + lda #IO.8255.Cmd.PFX + >WRITEBYTE + lda #IO.8255.Cmd.POLL + >WRITEBYTE + lda #2048 + >WRITEBYTE + lda /2048 + >WRITEBYTE + + >READBYTE + ldy #S.IOCTL.BYTECNT + sta (ZPIOCTL),y + pha + eor #$ff + sta Counter + >READBYTE + sta (ZPIOCTL),y + pha + eor #$ff + sta Counter+1 + + pla + ply + bne .1 + + tax + beq READWRITE.9 + +.1 >SYSCALL2 GetMem + bcs READWRITE.99 + + >STYA ZPBufPtr + phx + phy + ldy #S.IOCTL.BUFPTR+1 + sta (ZPIOCTL),y + dey + pla + sta (ZPIOCTL),y + ldx DEVSLOTx0 + + ldy #0 + +.2 inc Counter + bne .3 + + inc Counter+1 + beq .8 + +.3 >READBYTE + sta (ZPBufPtr),y + iny + bne .2 + + inc ZPBufPtr+1 + bra .2 + +.8 pla hMem + + plp + clc + rts +*-------------------------------------- +READWRITE.9 lda #E.NODATA + +READWRITE.99 plp + sec + rts +*-------------------------------------- +WRITE php + sei + >STYA ZPIOCTL + + ldx DEVSLOTx0 + + lda #IO.8255.Cmd.PFX + >WRITEBYTE + lda #IO.8255.Cmd.POLL + >WRITEBYTE + ldy #S.IOCTL.BYTECNT + lda (ZPIOCTL),y + >WRITEBYTE + eor #$ff + sta Counter + iny + lda (ZPIOCTL),y + >WRITEBYTE + eor #$ff + sta Counter+1 + + ldy #S.IOCTL.BUFPTR + lda (ZPIOCTL),y + sta ZPBufPtr + iny + lda (ZPIOCTL),y + sta ZPBufPtr+1 + + ldy #0 + +.1 inc Counter + bne .2 + + inc Counter+1 + beq .8 + +.2 lda (ZPBufPtr),y + >WRITEBYTE + iny + bne .1 + + inc ZPBufPtr+1 + bne .1 + +.8 >READBYTE + bne READWRITE.9 + + plp + clc + rts +*-------------------------------------- +DRV.CS.END +DEVSLOTx0 .BS 1 +*-------------------------------------- +DIB .DA #0 + .DA #0,#0,#0 size + .PS "dan2eth/W5500 " + .DA #S.DIB.T.NIC + .BS 1 Subtype + .BS 2 Version +*-------------------------------------- +DCB .DA #S.DCB.T.NIC + .BS 1 FLAGS + .BS 1 LINK + .DA #S.DCB.NIC.SPEED.10 + .HS 0008DC123456 MAC + .BS 12 IP/MASK/GW +*-------------------------------------- +DRV.END +MAN +SAVE usr/src/drv/dan2eth.drv.s +ASM diff --git a/LIB/LIBTCPIP.S.DNS.txt b/LIB/LIBTCPIP.S.DNS.txt index 8877a1f8..f417eff4 100644 --- a/LIB/LIBTCPIP.S.DNS.txt +++ b/LIB/LIBTCPIP.S.DNS.txt @@ -82,12 +82,8 @@ DNS.REQUEST lda hDNSSocket >STYA DNS.MSG.ID >STYA DNS.TmpCache+S.DNSCACHE.ID - lda #K.DNS.PENDING.TTL - sta DNS.TmpCache+S.DNSCACHE.TTL - stz DNS.TmpCache+S.DNSCACHE.TTL+1 - stz DNS.TmpCache+S.DNSCACHE.TTL+2 - stz DNS.TmpCache+S.DNSCACHE.TTL+3 lda #S.DNSCACHE.STATUS.PENDING + ldx #K.DNS.PENDING.TTL jsr DNS.ADD.I bcs .9 @@ -204,14 +200,15 @@ DNS.Add >PULLW ZPPtrDNS Get host string dey bpl .1 - stz DNS.TmpCache+S.DNSCACHE.TTL + lda #S.DNSCACHE.STATUS.RESOLVED+S.DNSCACHE.STATUS.STATIC + ldx #0 + +DNS.ADD.I sta DNS.TmpCache + stx DNS.TmpCache+S.DNSCACHE.TTL stz DNS.TmpCache+S.DNSCACHE.TTL+1 stz DNS.TmpCache+S.DNSCACHE.TTL+2 stz DNS.TmpCache+S.DNSCACHE.TTL+3 - lda #S.DNSCACHE.STATUS.RESOLVED+S.DNSCACHE.STATUS.STATIC - -DNS.ADD.I sta DNS.TmpCache jsr DNS.FIND.BY.NAME bcc .2 Found, go update... @@ -290,6 +287,7 @@ DNS.UPDATE.BY.ID lda (ZPCachePtr),y cmp DNS.TmpCache+S.DNSCACHE.ID bne .6 + iny lda (ZPCachePtr),y cmp DNS.TmpCache+S.DNSCACHE.ID+1 @@ -330,10 +328,12 @@ DNS.FIND.FREE jsr DNS.GetCAche bit #S.DNSCACHE.STATUS.STATIC+S.DNSCACHE.STATUS.PENDING bne .7 Static/Pending.....skip + phx ldy #S.DNSCACHE.TTL ldx #3 sec + .2 lda TmpDWord,x is saved TTL greater then actual TTL? sbc (ZPCachePtr),y iny diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index 50ee2f6c..48983643 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -349,7 +349,7 @@ SKT.shutdown pha lda (ZPPtrSKT),y cmp #S.SOCKET.TCP.S.ESTBLSH bne .1 - + lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK jsr TCP.OUT.SendOptA Send FIN/ACK @@ -419,7 +419,14 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen sta ZPDataInLen+1 bra SKT.GetDataFromSktIn -.7 jsr SKT.CheckStream +.7 ldy #S.SOCKET.TCP.O + lda (ZPPtrSKT),y + and #S.TCP.OPTIONS.ACK + beq .8 + + jmp TCP.OUT.SendOptA + +.8 jsr SKT.CheckStream bcs .99 I/O error lda #E.NODATA @@ -499,10 +506,10 @@ SKT.GetDataFromSktIn jsr SKT.SubDataInLenAtSktX jsr SKT.StoreTCB -* jsr TCP.SetSocketTCPO.ACK ACK=1 -> send WSIZE + jsr TCP.SetSocketTCPO.ACK ACK=1 -> send WSIZE - lda #S.TCP.OPTIONS.ACK - jsr TCP.OUT.SendOptA +* lda #S.TCP.OPTIONS.ACK +* jsr TCP.OUT.SendOptA >LDYA ZPDataInLen clc @@ -655,6 +662,7 @@ SKT.AddDataToSktOut .2 inx bne .3 + pla inc beq .8 @@ -670,6 +678,7 @@ SKT.AddDataToSktOut .4 iny bne .2 + inc ZPTmpPtr1+1 .DO AUXPIPE=1 sta CLRWRITEAUX diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index 614ff508..78b42434 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -16,7 +16,7 @@ TCP.IN jsr FRM.GetTargetSKT.TCPUDP tax jmp (J.TCP.IN,x) *-------------------------------------- -TCP.IN.RST lda #S.SOCKET.TCP.S.CLOSING +TCP.IN.RST lda #S.SOCKET.TCP.S.TIMEWT ldy #S.SOCKET.TCP.S sta (ZPPtrSKT),y *-------------------------------------- @@ -105,6 +105,7 @@ TCP.IN.JMP.SYNRCVD lda (ZPFrameInPtr),y cmp #S.TCP.OPTIONS.ACK bne .8 + jsr SKT.GetTCB ldx #3 @@ -236,7 +237,6 @@ TCP.IN.JMP.ESTBLSH and #S.TCP.OPTIONS.FIN beq .8 - jsr TCP.IN.ACKTheFIN jsr SKT.StoreTCB update socket lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK @@ -271,7 +271,7 @@ TCP.IN.JMP.LASTACK * jsr TCP.OUT.SendACK ldy #S.SOCKET.TCP.S - lda #S.SOCKET.TCP.S.CLOSING + lda #S.SOCKET.TCP.S.TIMEWT sta (ZPPtrSKT),y .8 *-------------------------------------- @@ -280,59 +280,50 @@ TCP.IN.JMP.CLWAIT rts *-------------------------------------- TCP.IN.JMP.FINWT1 - jsr SKT.GetTCB ldy #S.TCP.OPTIONS FIN sent, accept ACK or FIN/ACK packet lda (ZPFrameInPtr),y bit #S.TCP.OPTIONS.FIN - bne .1 - - lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK - jsr TCP.OUT.SendOptA Send FIN.ACK - bcs TCP.IN.JMP.TIMEWT.RTS + bne TCP.IN.2TIMEWT FIN/ACK + jsr SKT.GetTCB lda #S.SOCKET.TCP.S.FINWT2 jmp SKT.StoreTCB.S - -.1 jsr TCP.IN.ACKTheFIN FIN/ACK - -* lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK - - jsr TCP.OUT.SendACK FIN received, Send ACK - bcs TCP.IN.JMP.TIMEWT.RTS - - lda #S.SOCKET.TCP.S.LASTACK - jmp SKT.StoreTCB.S *-------------------------------------- TCP.IN.JMP.FINWT2 - ldy #S.TCP.OPTIONS only accept ACK packet + ldy #S.TCP.OPTIONS FIN sent & ACKed, awaiting FIN lda (ZPFrameInPtr),y - bit #S.TCP.OPTIONS.ACK + bit #S.TCP.OPTIONS.FIN beq TCP.IN.JMP.TIMEWT - jsr SKT.GetTCB - jsr TCP.IN.ACKTheFIN +TCP.IN.2TIMEWT jsr SKT.GetTCB - jsr TCP.OUT.SendACK FIN received, Send ACK + ldx #3 + +.1 inc SKT.Cache+S.SOCKET.TCP.INSEQNUM,x + bne .2 + + dex + bpl .1 + +.2 ldx #3 + +.3 inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x + bne .4 + + dex + bpl .3 + +.4 jsr TCP.OUT.SendACK FIN received, Send ACK bcs TCP.IN.JMP.TIMEWT.RTS - lda #S.SOCKET.TCP.S.CLOSING + lda #S.SOCKET.TCP.S.TIMEWT jmp SKT.StoreTCB.S *-------------------------------------- TCP.IN.JMP.CLOSING -* Wait for SKT.Shutdown -* ldy #S.TCP.OPTIONS only accept ACK packet -* lda (ZPFrameInPtr),y -* bit #S.TCP.OPTIONS.ACK -* beq .1 -* ldy #S.SOCKET.TCP.S -* lda #S.SOCKET.TCP.S.TIMEWT -* sta (ZPPtrSKT),y -*.1 -* clc -* rts -*-------------------------------------- +* Wait for SKT.Shutdown + TCP.IN.JMP.TIMEWT clc Wait for TCP.SendClose TCP.IN.JMP.TIMEWT.RTS @@ -353,17 +344,6 @@ TCP.IN.ACKTheSYN rts *-------------------------------------- -TCP.IN.ACKTheFIN - ldx #3 - -.1 inc SKT.Cache+S.SOCKET.TCP.INSEQNUM,x - bne .8 - - dex - bpl .1 - -.8 rts -*-------------------------------------- TCP.IN.SetDataInPtrAndLen ldy #S.IP.TOTAL.LENGTH+1 lda (ZPFrameInPtr),y @@ -508,6 +488,7 @@ TCP.OUT lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1 ldy #S.SOCKET.TCP.O lda (ZPPtrSKT),y bne TCP.OUT.SendOptA a least an option... + clc No data, no flag....exit .9 rts diff --git a/ROOT/ctest/testargs.c.txt b/ROOT/ctest/testargs.c.txt index c4bb6f1a..09ff6fa9 100644 --- a/ROOT/ctest/testargs.c.txt +++ b/ROOT/ctest/testargs.c.txt @@ -34,22 +34,25 @@ printf("i=%D\r\n", i); int main(int argc, char *argv[]) { - printf("argc=%D\r\n", argc); + int r=testf1(); + printf("testf1() returned %D\r\n", r); + getchar(); + r=testf2(); + printf("testf2() returned %D\r\n", r); + getchar(); + testf3("testf3() void function..."); + getchar(); + i = testf4(34, 43); + printf("testf4() returned %D\r\n", i); + getchar(); + printf("main() argc=%D\r\n", argc); for(int i=0; i<=argc; i++) { printf(" argv[%I] : %s\r\n", i, argv[i]); } - int r=testf1(); - printf("testf1() returned %D\r\n", r); - - r=testf2(); - printf("testf2() returned %D\r\n", r); - - testf3("testf3() void function..."); - - i = testf4(34, 43); - printf("testf4() returned %D\r\n", i); + puts("set main() return code=0x73"); + return 115; // return E_INUM } MAN TEXT root/ctest/testargs.c diff --git a/SCMASM.31/SCMASM.S.EDIT..txt b/SCMASM.31/SCMASM.S.EDIT..txt index d16694cd..30bf8582 100644 --- a/SCMASM.31/SCMASM.S.EDIT..txt +++ b/SCMASM.31/SCMASM.S.EDIT..txt @@ -442,7 +442,7 @@ CHECK.DIGIT.OR.LETTER JSR CHECK.DIGIT BCS CHECKS.OK CHECK.LETTER - CMP #'_' allow underline in symbols too + CMP #'_ allow underline in symbols too BEQ CHECKS.OK CMP #'A BCC CHECKS.NOT.OK