From bc535424f7f46a9ed983ede005c94f8e63acc297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 30 Aug 2019 17:16:58 +0200 Subject: [PATCH] Kernel 0.93+ --- BIN/CSH.S.CORE.txt | 3 +- INC/A2osX.I.txt | 2 +- SYS/KERNEL.S.JMP.txt | 2 +- SYS/KERNEL.S.SHARED.txt | 6 +--- SYS/KERNEL.S.STDIO.txt | 61 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 65 insertions(+), 9 deletions(-) diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index eeb5c012..6dd998cd 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -1140,8 +1140,7 @@ CSH.IsDigit10 cmp #'0' *-------------------------------------- * EXEC *-------------------------------------- -EXEC.printf >PULLYA - >SYSCALL printf +EXEC.printf >SYSCALL printf2 rts *-------------------------------------- EXEC.puts >PULLYA diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 23bb099c..06aca11e 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -207,7 +207,7 @@ SYS.MKDev .EQ $4E * .EQ $50 SYS.SScanF .EQ $52 * .EQ $54 -* .EQ $56 +SYS.PrintF2 .EQ $56 SYS.PrintF .EQ $58 SYS.SPrintF .EQ $5A SYS.FPrintF .EQ $5C diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 1fce0c77..64f7c4c6 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -53,7 +53,7 @@ K.SYSCALL .DA 0 $00 .DA 0 $50 .DA K.SScanF .DA 0 - .DA 0 + .DA K.PrintF2 .DA K.PrintF .DA K.SPrintF .DA K.FPrintF diff --git a/SYS/KERNEL.S.SHARED.txt b/SYS/KERNEL.S.SHARED.txt index 9f14cd71..770cfc55 100644 --- a/SYS/KERNEL.S.SHARED.txt +++ b/SYS/KERNEL.S.SHARED.txt @@ -155,11 +155,7 @@ SHARED.NextCharPtr2 .8 rts *-------------------------------------- SHARED.PullYA sta CLRREADAUX - lda (pStack) - tay - inc pStack - lda (pStack) - inc pStack + >PULLYA sta SETREADAUX rts *-------------------------------------- diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 20ebb711..6f5cb094 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -238,6 +238,67 @@ PrintF.Cnt .BS 2 PrintF.hFILE .BS 1 .ED *-------------------------------------- +* `int printf2 ( const char * format, ... );` +* `>PUSHBI 2` #bytecount +* `>PUSHWI format` +* `>PUSHW IntValue` +* `...` +* `>SYSCALL printf2` +*-------------------------------------- +K.PrintF2 lda (pStack) Bytecount + inc + tay + + lda (pStack),y format LO + sta ZPPtr2 + iny + lda (pStack),y format HI + sta ZPPtr2+1 + + ldy #S.PS.hStdOut + lda (pPs),y + sta PrintF.hFILE + + >LDYAI K.IOBuf + >STYA pIOBuf + +K.FPrintf2 lda (pStack) Bytecount + inc + tay + + lda (pStack),y format LO + sta ZPPtr2 + iny + lda (pStack),y format HI + sta ZPPtr2+1 + + iny + lda (pStack),y hFILE + sta PrintF.hFILE + + >LDYAI K.IOBuf + >STYA pIOBuf + +K.SPrintf2 lda (pStack) Bytecount + inc + tay + + lda (pStack),y format LO + sta ZPPtr2 + iny + lda (pStack),y format HI + sta ZPPtr2+1 + + stz PrintF.hFILE + + iny + lda (pStack),y str LO + sta pIOBuf + iny + lda (pStack),y str HI + sta pIOBuf+1 + +*-------------------------------------- K.PrintF.GetFormat lda (pStack) sta ZPPtr2