Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-06-15 17:15:48 +02:00
parent 10b4f9de2f
commit 091a515f4d
8 changed files with 91 additions and 59 deletions

View File

@ -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

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -76,7 +76,6 @@ MATH.Go jsr GP.ROMCALL
sec
sbc #5
sta pStack
sta FORPNT
lda pStack+1
sta FORPNT+1

View File

@ -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
*\--------------------------------------