diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index d49c6f3c..ea7822c7 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -617,7 +617,7 @@ Convert String to 32 bits (unsigned) int # C `long strtol (const char* str, char** endptr, int base);` -`unsigned long strtol (const char* str, char** endptr, int base);` +`unsigned long strtoul (const char* str, char** endptr, int base);` # ASM **In:** @@ -629,15 +629,24 @@ On stack (long) # AToL Convert String to 32 bits int + +# C +`long atol ( const char * str );` + +# ASM **In:** -+ PUSHW Source String (C-Sring) -+ PUSHW PTR to target buffer DWORD +`>LDYA str` **Out:** +On stack (long) # AToI.YA -Convert String to 16 bits int + +# C +`long atol ( const char * str );` + +# ASM **In:** -+ Y,A = Source String (C-String) +`>LDYA str` **Out:** + Y,A = Int diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 543a732e..d400a099 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 056e61b4..52ed3b9a 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/BIN/NETSTAT.S.txt b/BIN/NETSTAT.S.txt index d822fad4..7e1cab36 100644 --- a/BIN/NETSTAT.S.txt +++ b/BIN/NETSTAT.S.txt @@ -19,9 +19,9 @@ CS.START cld .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA 0 - .DA CS.END-CS.START Code Length To Relocate - .DA 0 Data Segment to Allocate - .DA #16 SS + .DA CS.END-CS.START CS + .DA DS.END-DS.START DS + .DA #64 SS .DA #2 ZP .DA 0 *-------------------------------------- @@ -66,7 +66,7 @@ CS.RUN >LDYA L.MSG0 >STYA ZPPTR1 lda #K.SKTTABLE.SIZE - sta SocketCount + >STA.G SocketCount .1 lda (ZPPTR1) beq .7 @@ -110,10 +110,10 @@ CS.RUN >LDYA L.MSG0 adc /S.SOCKET sta ZPPTR1+1 - dec SocketCount - bne .1 + >DEC.G SocketCount + bne .1 A=0 - lda #0 tell TSKMGR that all done ok, but +* lda #0 tell TSKMGR that all done ok, but sec we do not want to stay in memory rts *-------------------------------------- @@ -147,7 +147,14 @@ MSG1.S.8 .AZ "FIN-WAIT-2" MSG1.S.9 .AZ "CLOSING" MSG1.S.10 .AZ "TIME-WAIT" hLIBTCPIP .BS 1 +*-------------------------------------- + .DUMMY + .OR 0 +DS.START SocketCount .BS 1 +DS.END + .ED +*-------------------------------------- MAN SAVE /A2OSX.SRC/BIN/NETSTAT.S ASM diff --git a/SBIN/SHELL.S.CSH.txt b/SBIN/SHELL.S.CSH.txt index 94180bff..a3e17d8a 100644 --- a/SBIN/SHELL.S.CSH.txt +++ b/SBIN/SHELL.S.CSH.txt @@ -349,7 +349,6 @@ CSH.ULONG lda #CSH.T.ULONG CSH.FLOAT lda #CSH.T.FLOAT CSH.TYPE >STA.G CSH.ACCT - jsr CSH.GetChar bcs .9 cmp #' ' @@ -421,34 +420,34 @@ CSH.FnEval jsr CSH.GetCharNB .2 lda (ZPPtr1) beq .7 end of list, go check no more - jsr CSH.ExpEval + jsr CSH.GetNextCharNB skip '(' + bcs .9 + +.20 jsr CSH.ExpEval bcs .90 lda (ZPPtr1) cmp #CSH.T.VARIADIC - beq .3 + bne .3 - >CMP.G CSH.ACCT Match with ACC ? + bra * + +.3 >CMP.G CSH.ACCT Match with ACC ? bne .99 -.3 - - - lda (ZPPtr1) - cmp #CSH.T.VARIADIC - bne .5 - -.4 jsr CSH.GetNextCharNB - cmp #',' - bne .7 - jsr CSH.GetNextCharNB - bra .2 - -.5 inc ZPPtr1 advance to next arg + inc ZPPtr1 advance to next arg beq .7 inc ZPPtr1+1 lda (ZPPtr1) - bne .4 + beq .7 + +.4 jsr CSH.GetNextCharNB + bcs .9 + + cmp #',' + bne .9 + jsr CSH.GetNextCharNB + bra .20 .7 jsr CSH.GetNextCharNB bcs .9 @@ -473,7 +472,7 @@ CSH.FnEval jsr CSH.GetCharNB CSH.ExpEval jsr CSH.ZeroACC dec A=0 >STA.G CSH.EXPBOP1 - + jsr CSH.GetCharNB bcs .9 @@ -653,24 +652,23 @@ CSH.GetNumInACC >LDA.G CSH.ACCT bcc .1 >PUSHWI ZPCSHBufPtr - >PUSHW ZPCSHBufPtr - + >LDYA ZPCSHBufPtr + >SYSCALL StrToF bcs .9 >PULLF.G CSH.ACC - + clc rts .1 >PUSHBI 10 >PUSHWI ZPCSHBufPtr - >PUSHW ZPCSHBufPtr + >LDYA ZPCSHBufPtr >SYSCALL StrToL bcs .9 >PULLL.G CSH.ACC - - + clc .9 rts *-------------------------------------- CSH.ZeroACC lda #0 diff --git a/SYS/KERNEL.S.CTRL.txt b/SYS/KERNEL.S.CTRL.txt index 1d1c486b..438c76d6 100644 --- a/SYS/KERNEL.S.CTRL.txt +++ b/SYS/KERNEL.S.CTRL.txt @@ -8,7 +8,7 @@ AUTO 4,1 A2osX.MAIN.S .EQ A2osX.AUX-A2osX.MAIN A2osX.AUX.S .EQ A2osX.GP-A2osX.AUX A2osX.GP.S .EQ GP.End-GP.CodeStart -A2osX.GP.SC .EQ GP.CodeEnd-GP.CodeStart +A2osX.GP.SC .EQ GP.CodeEnd-GP.CodeStart A2osX.D1.S .EQ A2osX.D2-A2osX.D1 A2osX.D2.S .EQ A2osX.E0-A2osX.D2 A2osX.E0.S .EQ A2osX.E0.E-A2osX.E0 diff --git a/SYS/KERNEL.S.MATH.txt b/SYS/KERNEL.S.MATH.txt index 00fbaac8..807b1cdb 100644 --- a/SYS/KERNEL.S.MATH.txt +++ b/SYS/KERNEL.S.MATH.txt @@ -76,7 +76,6 @@ MATH.Go jsr GP.ROMCALL sec sbc #5 sta pStack - sta FORPNT lda pStack+1 sta FORPNT+1 diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index 0f309d87..7557c0ee 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -13,13 +13,16 @@ AUTO 4,1 * **Out:** * On stack (float) *\-------------------------------------- -K.StrToF jsr K.AToF - >PULLW ZPPtr3 +K.StrToF >STYA TXTPTR Ptr to source string + >PULLW ZPPtr1 + + jsr K.AToF.I + lda TXTPTR - sta (ZPPtr3) + sta (ZPPtr1) ldy #1 lda TXTPTR+1 - sta (ZPPtr3),y + sta (ZPPtr1),y rts */-------------------------------------- * ## AToF @@ -32,15 +35,25 @@ K.StrToF jsr K.AToF * **Out:** * On stack (float) *\-------------------------------------- -K.AToF >PULLW FORPNT Ptr to dst buffer - >PULLW TXTPTR Ptr to source string - jsr CHARGOT +K.AToF >STYA TXTPTR Ptr to source string + +K.AToF.I jsr CHARGOT ldx #ROM.FIN +**** DUP code in MATH.Go **** jsr GP.ROMCALL - + + lda pStack + sec + sbc #5 + sta pStack + sta FORPNT Ptr to dst buffer + lda pStack+1 + sta FORPNT+1 + ldx #ROM.GETFAC jsr GP.ROMCALL + clc rts */-------------------------------------- @@ -48,7 +61,7 @@ K.AToF >PULLW FORPNT Ptr to dst buffer * Convert String to 32 bits (unsigned) int * # C * `long strtol (const char* str, char** endptr, int base);` -* `unsigned long strtol (const char* str, char** endptr, int base);` +* `unsigned long strtoul (const char* str, char** endptr, int base);` * # ASM * **In:** * `>PUSHB Base` @@ -60,7 +73,8 @@ K.AToF >PULLW FORPNT Ptr to dst buffer K.StrToL sec Signed .HS 90 BCC K.StrToUL clc Unsigned - jsr MEM.PullP1P2P3 + >STYA ZPPtr2 + >PULLW ZPPtr1 >PULLA Base jsr K.AToL.I @@ -68,25 +82,28 @@ K.StrToUL clc Unsigned * clc K.StrToUL.Exit adc ZPPtr2 - sta (ZPPtr3) + sta (ZPPtr1) lda #0 adc ZPPtr2+1 ldy #1 - sta (ZPPtr3),y + sta (ZPPtr1),y K.StrToUL.rts rts */-------------------------------------- * # AToL * Convert String to 32 bits int +* # C +* `long atol ( const char * str );` +* # ASM * **In:** -* PUSHW Source String (C-Sring) -* PUSHW PTR to target buffer DWORD +* `>LDYA str` * **Out:** +* On stack (long) *\-------------------------------------- *STDLIB.32 .BS 4 32 bits max STDLIB.32 .EQ FAC 32 bits max *-------------------------------------- -K.AToL jsr MEM.PullP1P2 C-String in Ptr2, Dst buffer in Ptr1 +K.AToL >STYA ZPPtr2 C-String in Ptr2, Dst buffer in Ptr1 lda #10 base 10 sec signed @@ -98,7 +115,7 @@ K.AToL.I jsr STDLIB.GetDec ldy #3 .3 lda STDLIB.32,y - sta (ZPPtr1),y + >PUSHA dey bpl .3 pla @@ -107,10 +124,12 @@ K.AToL.I jsr STDLIB.GetDec .9 rts */-------------------------------------- -* # AToI.YA -* Convert String to 16 bits int +* ## AToI.YA +* # C +* `int atoi ( const char * str );` +* # ASM * **In:** -* Y,A = Source String (C-String) +* `>LDYA str` * **Out:** * Y,A = Int *\--------------------------------------