diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 90f19245..5378ef24 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index bfe76e1f..e260986f 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -765,8 +765,37 @@ CSH.GetNumOnStack >PUSHWI ZPFileBufPtr >LDYA ZPFileBufPtr - >SYSCALL StrToL + ldx ZPVarType + cpx #CSH.T.UCHAR + bcc .2 + + >SYSCALL StrToUL + bra .3 + +.2 >SYSCALL StrToL +.3 bcs .9 + ldy ZPVarType + lda CSH.TYPESIZE,y + cmp #4 + beq .8 + + cmp #2 + bne .4 + + ldy #1 + >PULLA + sta (pStack),y + >PULLA + sta (pStack),y + clc + rts + +.4 >PULLA + inc pStack + inc pStack + sta (pStack) +.8 clc .9 rts *-------------------------------------- * Input : ZPFileBufPtr, A = Var Type, Value on Stack @@ -1164,8 +1193,7 @@ CSH.SIZEOF txa *-------------------------------------- CSH.EXEC jmp (J.CSH.EXEC,x) *-------------------------------------- -EXEC.printf >DEBUG - >SYSCALL printf2 +EXEC.printf >SYSCALL printf2 rts *-------------------------------------- EXEC.puts >PULLYA @@ -1176,6 +1204,8 @@ EXEC.cos >FPU COS rts *-------------------------------------- EXEC.getchar >SYSCALL getchar + >PUSHA + >DEBUG rts *-------------------------------------- MAN diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 06aca11e..4a833b39 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -228,7 +228,7 @@ SYS.AToI .EQ $72 SYS.AToL .EQ $74 SYS.StrToF .EQ $76 SYS.StrToL .EQ $78 -* .EQ $7A +SYS.StrToUL .EQ $7A SYS.RealPath .EQ $7C * .EQ $7E *-------------------------------------- diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index c543e192..522cdfb2 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -267,7 +267,8 @@ GP.SetARG ldx #FPU.SETARG .HS 2C BIT ABS GP.SetFAC ldx #FPU.SETFAC - >LDYA pStack + lda pStack + ldy pStack+1 bra GP.RomCall */-------------------------------------- * # float diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 64f7c4c6..7e64a829 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -73,7 +73,7 @@ K.SYSCALL .DA 0 $00 .DA K.AToL .DA K.StrToF .DA K.StrToL - .DA 0 + .DA K.StrToUL .DA K.RealPath .DA 0 *-------------------------------------- diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 2edbfca0..0126608f 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -245,7 +245,14 @@ PrintF.hFILE .BS 1 * `>PUSHBI 2` #bytecount * `>SYSCALL printf2` *-------------------------------------- -K.PrintF2 lda (pStack) Bytecount +K.PrintF2 >LDYAI K.IOBuf + >STYA pIOBuf + + ldy #S.PS.hStdOut + lda (pPs),y + sta PrintF.hFILE + + lda (pStack) Bytecount inc tay @@ -255,15 +262,12 @@ K.PrintF2 lda (pStack) Bytecount lda (pStack),y format HI sta ZPPtr2+1 - ldy #S.PS.hStdOut - lda (pPs),y - sta PrintF.hFILE - - >LDYAI K.IOBuf - >STYA pIOBuf bra K.PrintF2.1 -K.FPrintf2 lda (pStack) Bytecount +K.FPrintf2 >LDYAI K.IOBuf + >STYA pIOBuf + + lda (pStack) Bytecount inc tay @@ -277,8 +281,6 @@ K.FPrintf2 lda (pStack) Bytecount lda (pStack),y hFILE sta PrintF.hFILE - >LDYAI K.IOBuf - >STYA pIOBuf bra K.PrintF2.1 K.SPrintf2 lda (pStack) Bytecount @@ -300,7 +302,9 @@ K.SPrintf2 lda (pStack) Bytecount lda (pStack),y str HI sta pIOBuf+1 -K.PrintF2.1 stz PrintF.Cnt +K.PrintF2.1 sty PrintF2.Exit.Cnt+1 + + stz PrintF.Cnt stz PrintF.Cnt+1 lda pStack @@ -405,7 +409,7 @@ K.PrintF2.1 stz PrintF.Cnt .20 jsr PrintF.COut bcc .11 *-------------------------------------- -.99 bra PrintF2.LocalCleanUp +.99 bra PrintF2.Exit *-------------------------------------- .8 ldx PrintF.hFILE beq .80 Writing to buffer, append \0 @@ -428,16 +432,16 @@ K.PrintF2.1 stz PrintF.Cnt .81 >LDYA PrintF.Cnt * clc *-------------------------------------- -PrintF2.LocalCleanUp - php +PrintF2.Exit php pha - lda pLocal - sec ByteCnt byte - adc (pLocal) ... ByteCnt - sta pStack CC + lda pStack + sec +Bytecount byte +PrintF2.Exit.Cnt + adc #$ff SELF MODIFIED + sta pStack pla plp -PrintF2.LocalCleanUp.RTS + rts *-------------------------------------- K.SPrintF stz PrintF.hFILE @@ -721,25 +725,20 @@ PrintF.F clc bcc .1 bne PrintF.StrNum.RTS -.1 tya - sec +1 +.1 sta PrintF.LocalGetByte+1 + + tya + sec +1 for bytecount byte adc pStack - tay - - lda pStack+1 - + ldy pStack+1 A,Y = float + ldx #FPU.SETFAC jsr GP.ROMCALL - lda PrintF.LocalGetByte+1 - clc - adc #5 - sta PrintF.LocalGetByte+1 - - ldy #A2osX.NumStrBuf + ldy #A2osX.NumStrBuf+1 FOUT.1 will do a DEY ldx #FPU.FOUT jsr GP.ROMCALL - + PrintF.StrNum ldy #0 .2 lda A2osX.NumStrBuf,y diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index c73ed73f..cb220c15 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -38,6 +38,11 @@ K.strtof pha *\-------------------------------------- K.AToF >STYA TXTPTR Ptr to source string + lda pStack + sec + sbc #5 + sta pStack + jsr CHARGOT ldx #FPU.FIN