Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-07-13 16:38:24 +02:00
parent b0bfcee198
commit eb30794b11
15 changed files with 137 additions and 127 deletions

Binary file not shown.

Binary file not shown.

View File

@ -29,7 +29,7 @@ L.MSG.DETECT .DA MSG.DETECT
L.INSDRV .DA DRV.CS.START
.DA DRV.CS.END
.DA DRV.END
L.NODE .DA DEV.NODE
L.NODE .DA NODE
.DA 0 End Of Reloc Table
*--------------------------------------
Dev.Detect >LDYA L.MSG.DETECT
@ -41,7 +41,7 @@ Dev.Detect >LDYA L.MSG.DETECT
>SYSCALL InsDrv
bcs .9
>STYA DEV.NODE+S.FD.DEV.DRVPTR
>STYA NODE+S.FD.DEV.DRVPTR
>LDYA L.NODE
>SYSCALL MKNOD
@ -54,8 +54,8 @@ NODE .DA #S.FD.T.CDEV
.DA #0 HANDLER
.DA #0 BUSID
.DA #0 DEVID
.DA 0 BUSPTR
.BS 2 DRVPTR
.DA 0 ROMPTR
.AZ "CON" NAME
.HS 00000000
*--------------------------------------
@ -907,7 +907,7 @@ DEVSTAT .DA #S.DSTAT.S.WRITE+S.DSTAT.S.READ
.DA #S.DSTAT.T.CHAR
.DA #0
.DA #0
.DA #91
.DA KVER
*--------------------------------------
DRV.END
MAN

View File

@ -1,8 +1,6 @@
PR#3
PREFIX /A2OSX.BUILD
NEW
INC 1
AUTO 6
PREFIX /A2OSX.BUILD
AUTO 4,1
.LIST OFF
.OP 65C02
.OR $2000
@ -19,7 +17,7 @@ ZPPTR3 .EQ ZPBIN+4
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #H.BIN.CPU.65C02
.DA #$61 6502,Level 1 (65c02)
.DA #1
.DA 0
.DA CS.END-CS.START Code Length To Relocate
@ -44,14 +42,14 @@ CS.INIT ldy #S.PS.ARGC
beq .9
lda #1 get PTR to ARG[1] (Driver name)
>SYSCALL GetArg.A
>SYSCALL GetArg
>PUSHYA
>LDYA L.MSG.LOAD
>SYSCALL printf
lda #1 get PTR to ARG[1] (Driver name)
>SYSCALL GetArg.A
>SYSCALL GetArg
>SYSCALL LoadDrv YA = PTR to ARG[1...n]
bcs .99

View File

@ -4,8 +4,8 @@ AUTO 4,1
.LIST OFF
*--------------------------------------
CL.PrintPrompt >LDYA L.ENV.PS1
>SYSCALL GetEnv.YA
>SYSCALL ExpandStr.YA
>SYSCALL GetEnv
>SYSCALL ExpandStr
phx
>SYSCALL printf
>LDYA L.MSG.PROMPT
@ -14,7 +14,7 @@ CL.PrintPrompt >LDYA L.ENV.PS1
php
pha
txa
>SYSCALL FreeMem.A
>SYSCALL FreeMem
pla
plp
rts
@ -61,9 +61,9 @@ CL.CHARIN.CTRL cpx #13 CR
bne .10
txa
>SYSCALL PutChar.A
>SYSCALL PutChar
lda #10
>SYSCALL PutChar.A
>SYSCALL PutChar
>LDA.G CmdBufPtr
tay
@ -125,7 +125,7 @@ CL.Insert >LDA.G CmdBuflen
txa
sta (ZPCMDBuf),y
>SYSCALL PutChar.A
>SYSCALL PutChar
>INC.G CmdBufPtr
@ -163,7 +163,7 @@ CL.BS >LDA.G CmdBufPtr
sta (pData),y
lda #8
>SYSCALL PutChar.A
>SYSCALL PutChar
.9 rts
*--------------------------------------
CL.NAK >LDA.G CmdBufPtr
@ -174,7 +174,7 @@ CL.NAK >LDA.G CmdBufPtr
>STA.G CmdBufPtr
lda #21
>SYSCALL PutChar.A
>SYSCALL PutChar
.9 rts
*--------------------------------------
* Erase char UNDER cursor
@ -194,7 +194,7 @@ CL.DEL >LDA.G CmdBuflen
beq CL.PrintEOL.8
lda #8
>SYSCALL PutChar.A
>SYSCALL PutChar
>DEC.G CmdBufPtr
@ -224,13 +224,13 @@ CL.PrintEOL >LDA.G CmdBufPtr
pha
tay
lda (ZPCMDBuf),y
>SYSCALL PutChar.A
>SYSCALL PutChar
pla
inc
bra .1
.2 lda #' '
>SYSCALL PutChar.A
>SYSCALL PutChar
>LDA.G CmdBufPtr
@ -240,13 +240,13 @@ CL.PrintEOL >LDA.G CmdBufPtr
pha
lda #8
>SYSCALL PutChar.A
>SYSCALL PutChar
pla
inc
bra .3
.4 lda #8
>SYSCALL PutChar.A
>SYSCALL PutChar
CL.PrintEOL.8 clc
rts

View File

@ -4,7 +4,7 @@ AUTO 4,1
.LIST OFF
*--------------------------------------
CMD.Init >LDYAI CmdLine.MAX+1
>SYSCALL GetMem.YA
>SYSCALL GetMem
bcs .9
>STYA ZPCMDBuf
txa
@ -13,7 +13,7 @@ CMD.Init >LDYAI CmdLine.MAX+1
*--------------------------------------
CMD.Quit >LDA.G hCmdBuf
beq .9
>SYSCALL FreeMem.A
>SYSCALL FreeMem
.9 rts
*--------------------------------------
* ZPCMDBuf : Remove extra SPACE & comment
@ -76,7 +76,7 @@ Cmd.Exec lda #0
>STA.G CMD.hFullpath
>LDYA ZPCMDBuf
>SYSCALL ExpandStr.YA
>SYSCALL ExpandStr
>STYA ZPPtr1 Ptr to CMD ARGS
txa
@ -135,11 +135,11 @@ Cmd.Exec lda #0
Cmd.Exec.Done php
pha
>LDA.G CMD.hCmdLine
>SYSCALL FreeMem.A
>SYSCALL FreeMem
>LDA.G CMD.hFullpath
beq .1
>SYSCALL FreeMem.A
>SYSCALL FreeMem
.1 pla
plp
@ -160,7 +160,7 @@ Cmd.Exec.EXT jsr Cmd.Exec.Split
bra .4
.1 >LDYA L.ENV.PATH push ENVNAME=PATH for search
>SYSCALL GetEnv.YA get value for ENV=PATH
>SYSCALL GetEnv get value for ENV=PATH
bcs .2 No PATH, try in CD
jsr Cmd.Exec.EXT.Search
@ -168,13 +168,13 @@ Cmd.Exec.EXT jsr Cmd.Exec.Split
.2 ldy #S.PS.hPREFIX not found, try in CD
lda (pPs),y
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
jsr Cmd.Exec.EXT.Search
bcs .99
.3 >LDYA ZPCMDBuf
.4 >SYSCALL NewStr.YA
.4 >SYSCALL NewStr
bcs .99
txa
>STA.G CMD.hFullpath
@ -202,7 +202,7 @@ Cmd.Exec.EXT jsr Cmd.Exec.Split
Cmd.Exec.EXT.TXT
lda #0 Get arg[0] = /PATH/SHELL
>SYSCALL GetArg.A
>SYSCALL GetArg
>PUSHYA
>PUSHW ZPCMDBuf
>SYSCALL StrCat
@ -213,7 +213,7 @@ Cmd.Exec.EXT.TXT
*--------------------------------------
Cmd.Exec.EXT.BIN
>LDA.G CMD.hFullpath
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
>PUSHYA
>PUSHW ZPCMDBuf
>SYSCALL StrCat
@ -232,10 +232,10 @@ Cmd.Exec.EXT.BIN
>LDYA ZPCMDBuf
bcs .2 startproc
>SYSCALL ExecPSNewEnv.YA
>SYSCALL ExecPSNewEnv
jmp Cmd.Exec.Done
.2 >SYSCALL CreatePSNewEnv.YA
.2 >SYSCALL CreatePSNewEnv
jmp Cmd.Exec.Done
*--------------------------------------
Cmd.Exec.EXT.Search
@ -263,7 +263,7 @@ Cmd.Exec.EXT.SEP
*--------------------------------------
Cmd.Exec.PWD ldy #S.PS.hPREFIX
lda (pPs),y
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
>SYSCALL printf
jmp Cmd.Exec.ECHO.CR
*--------------------------------------
@ -271,10 +271,10 @@ Cmd.Exec.CD lda (ZPPTR2)
bne .1
>LDYA L.ENV.HOME
>SYSCALL GetEnv.YA
>SYSCALL GetEnv
bcs Cmd.Exec.PWD
>SYSCALL ExpandStr.YA
>SYSCALL ExpandStr
bcs .9
bra .4
@ -296,7 +296,7 @@ Cmd.Exec.CD lda (ZPPTR2)
sta (ZPPTR2),y
.3 >LDYA ZPPTR2 Get ARG
>SYSCALL RealPath.YA
>SYSCALL RealPath
bcs .9
.4 >STYA ZPPTR2
@ -318,13 +318,13 @@ Cmd.Exec.CD lda (ZPPTR2)
bne Cmd.Exec.ERRSYN
.8 >LDYA ZPPTR2
>SYSCALL NewStr.YA
>SYSCALL NewStr
bcs .9
phx
ldy #S.PS.hPREFIX
lda (pPs),y
>SYSCALL FreeMem.A
>SYSCALL FreeMem
pla
@ -356,7 +356,7 @@ Cmd.Exec.SET lda (ZPPTR2)
ldy #S.PS.hENV
lda (pPs),y
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
>STYA ZPPTR1
.1 lda (ZPPTR1)
@ -420,19 +420,19 @@ Cmd.Exec.SETVAR ldy #0
beq .2 "VAR=" go UnsetEnv
>LDYA ZPPTR2 String is VAR=VALUE...
>SYSCALL PutEnv.YA
>SYSCALL PutEnv
jmp Cmd.Exec.Done
.2 dey String is "VAR=", Remove endig '='
sta (ZPPTR2),y
>LDYA ZPPTR2 String is "VAR"...
>SYSCALL UnsetEnv.YA
>SYSCALL UnsetEnv
jmp Cmd.Exec.Done
* Print requested VAR
.3 >LDYA ZPPTR2
>SYSCALL GetEnv.YA
>SYSCALL GetEnv
bcs .8
>PUSHYA push value
@ -450,7 +450,7 @@ Cmd.Exec.DATE sec
Cmd.Exec.TIME clc
php
>LEA.G CMD.Time
>SYSCALL Time.YA
>SYSCALL Time
>PUSHW ZPCMDBuf
plp
@ -475,11 +475,11 @@ Cmd.Exec.ECHO lda (ZPPtr2)
Cmd.Exec.ECHO.CR
lda #13
>SYSCALL PutChar.A
>SYSCALL PutChar
bcs Cmd.Exec.ECHO.END
lda #10
>SYSCALL PutChar.A
>SYSCALL PutChar
Cmd.Exec.ECHO.END
jmp Cmd.Exec.Done
*--------------------------------------
@ -539,7 +539,7 @@ Cmd.Exec.READ lda (ZPPtr2)
beq .1
phy
>SYSCALL PutChar.A
>SYSCALL PutChar
ply
bcs .99
bra .3

View File

@ -31,37 +31,37 @@ CSH.Init lda #$0
>STA.G CSH.StackPtr
lda #1
>SYSCALL GetArg.A
>SYSCALL LoadTxtFile.YA
>SYSCALL GetArg
>SYSCALL LoadTxtFile
bcs .9
txa
>STA.G CSH.hBuf
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
>STYA ZPCSHBufPtr
>LDYAI 256
>SYSCALL GetMem0.YA
>SYSCALL GetMem0
bcs .9
txa
>STA.G CSH.hSymbols
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
>STYA ZPCSHSymbols
>LDYAI 256
>SYSCALL GetMem.YA
>SYSCALL GetMem
bcs .9
txa
>STA.G CSH.hData
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
>STYA ZPCSHData
>LDYAI 256
>SYSCALL GetMem.YA
>SYSCALL GetMem
bcs .9
txa
>STA.G CSH.hStack
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
>STYA ZPCSHStack
* clc
@ -179,19 +179,19 @@ CSH.Run jsr CL.RESET
*--------------------------------------
CSH.Quit >LDA.G CSH.hBuf
beq .1
>SYSCALL FreeMem.A
>SYSCALL FreeMem
.1 >LDA.G CSH.hStack
beq .2
>SYSCALL FreeMem.A
>SYSCALL FreeMem
.2 >LDA.G CSH.hData
beq .3
>SYSCALL FreeMem.A
>SYSCALL FreeMem
.3 >LDA.G CSH.hSymbols
beq .8
>SYSCALL FreeMem.A
>SYSCALL FreeMem
.8 rts
*--------------------------------------
@ -1138,7 +1138,7 @@ CSH.IsDigit10 cmp #'0'
rts
*--------------------------------------
CSH.ErrorMsg >LDA.G CSH.hBuf
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
>STYA ZPPtr1
lda #0
@ -1174,14 +1174,14 @@ CSH.ErrorMsg >LDA.G CSH.hBuf
cmp #$0D
beq .6
phy
>SYSCALL PutChar.A
>SYSCALL PutChar
ply
bra .5
.6 lda #$0D
>SYSCALL PutChar.A
>SYSCALL PutChar
lda #$0A
>SYSCALL PutChar.A
>SYSCALL PutChar
@ -1193,7 +1193,7 @@ CSH.ErrorMsg >LDA.G CSH.hBuf
.7 phy
lda #'-'
>SYSCALL PutChar.A
>SYSCALL PutChar
ply
dey
bne .7

View File

@ -4,7 +4,7 @@ AUTO 4,1
.LIST OFF
*--------------------------------------
HIS.Init >LDYAI History.MAX Get a buffer for History
>SYSCALL GetMem0.YA
>SYSCALL GetMem0
bcs .9
txa
@ -18,7 +18,7 @@ HIS.Init >LDYAI History.MAX Get a buffer for History
HIS.Add >LDA.G HIS.hBuf
beq .9
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
>STYA ZPPTR1
.10 lda #$ff
@ -86,7 +86,7 @@ HIS.Add >LDA.G HIS.hBuf
HIS.GetPrev >LDA.G HIS.hBuf
beq HISTORY.RTS
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
>STYA ZPPTR1
>LDA.G HIS.Count
@ -107,7 +107,7 @@ History.RTS rts
HIS.GetNext >LDA.G HIS.hBuf
beq HISTORY.RTS
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
>STYA ZPPTR1
>LDA.G HIS.Count
@ -176,7 +176,7 @@ HIS.GetA ldy #0
*--------------------------------------
HIS.Quit >LDA.G HIS.hBuf
beq .9
>SYSCALL FreeMem.A
>SYSCALL FreeMem
.9 rts
*--------------------------------------
MAN

View File

@ -25,7 +25,7 @@ IO.PrintErrMsg pha Save EC for PrintF
.3 dey
bmi .8
lda (ZPPTR1)
sec
adc ZPPTR1

View File

@ -324,7 +324,7 @@ CheckSleep ldy #Sleep+3
*--------------------------------------
SetPWD ldy #S.PS.hPREFIX
lda (pPs),y
>SYSCALL GetMemPtr.A
>SYSCALL GetMemPtr
>PUSHYA
>PUSHW L.ENV.PWD
>SYSCALL SetEnv

View File

@ -218,7 +218,7 @@ BIN.Load.1 >PUSHWI K.S.STAT
tya
* clc CC from bcs .99
adc BIN.R.CS.Start Get AUXTYPE for actual Base Address
adc BIN.R.CS.Start Get AUXTYPE for actual Base Address
sta BIN.R.End compute Range End=AUXTYPE+FILELEN
pla
adc BIN.R.CS.Start+1
@ -241,11 +241,11 @@ BIN.Load.1 >PUSHWI K.S.STAT
lda (ZPPtr1),y
clc
adc ZPPtr1
sta ZPPtr2 Make ZPPtr2 = ZPPtr1 + CodeLen
sta BIN.R.CS.End ZPPtr1 + CodeLen
iny
lda (ZPPtr1),y
adc ZPPtr1+1
sta ZPPtr2+1
sta BIN.R.CS.End+1
jsr BIN.RelExe

View File

@ -303,7 +303,7 @@ DRV.SYS.WRITE ldy #S.IOCTL.BUFPTR
clc
rts
.3 lda (ZPDRV)
.3 lda (ZPDRV+4)
inc ZPDRV+4
bne .4
inc ZPDRV+5

View File

@ -113,13 +113,11 @@ Kernel.Init3 sta SETALTZP
jsr PS0.Init
>DEBUG
>LDYAI MSG.Init3
>SYSCALL printf
>DEBUG
jsr CPU.Init
jsr CPU.Init.6502
jsr CPU.Init.Z80
jsr DevMgrInit
jsr IrqMgrInit
@ -294,15 +292,17 @@ PS0.Init >LDYAI CORE.S.PS0 Select Process 0 (Kernel)
clc
.9 rts
*--------------------------------------
CPU.Init >LDYAI MSG.CPU
CPU.Init.6502 >LDYAI MSG.CPU
>SYSCALL printf
jsr Detect6502 A = CPU type
sta A2osX.CPUTYPE
ldx MSG.CPUTYPEL,y
lda MSG.CPUTYPEH,y
tay
and #$F
asl
tax
ldy MSG.CPUTYPE,x
lda MSG.CPUTYPE+1,x
>SYSCALL printf
@ -368,19 +368,20 @@ CPU.Init >LDYAI MSG.CPU
.8 lda A2osX.RANDOM16
sta A2osX.CPUSPEED+1
pha push CPU speed LO
>PUSHA push CPU speed LO
lda A2osX.CPUSPEED
pha push CPU speed HI
>PUSHA push CPU speed HI
>LDYAI MSG.CPU.SPEEDOK
>SYSCALL printf
rts
*--------------------------------------
CPU.Init.Z80 >LDYAI MSG.Z80
>SYSCALL printf
jsr DetectZ80
bcs .9
sta A2osX.Z80SLOT
pha Push Z80Slot
>PUSHA
tax
lda #A2osX.S.Z80
@ -855,6 +856,10 @@ DevMgrInit.AddBDev
ora #$30
sta FD.BDEV+S.FD.DEV.NAME+3 SxDn
>PUSHWI FD.BDEV+S.FD.DEV.NAME
>LDYAI MSG.BLKDEV
>SYSCALL printf
>LDYAI FD.BDEV
DevMgrInit.AddCDev
@ -884,7 +889,6 @@ DevMgrInit.AddCDev
bpl .1
inc DevMgr.DevCnt
clc
rts
*--------------------------------------
EvtMgrInit >LDYAI MSG.EVT
@ -997,10 +1001,14 @@ TClock.SIG .HS 0878282c58ff700538b00118b8087848
SYSSCREEN.TOP .AZ "A2osX System Screen"
MSG.Init2 .AZ "A2osX[Stage2]:Init\nRelocating Kernel...\n"
MSG.HZ .AZ "Kernel SYS Timer Set For %d0 hz Machine.\n"
MSG.KCREAD .AZ "Reading Kernel Config File..."
MSG.KCREAD.OK .AZ "OK\n"
MSG.KCREAD.KO .AZ "\nError While Reading Kernel Config File, Using Default.\n"
MSG.Init2.OK .AZ "A2osX[Stage2]:Complete.\n"
*--------------------------------------
MSG.Init3 .AZ "A2osX[Stage3]:Init\r\n"
MSG.DEV .AZ "-Device Manager...\r\n"
MSG.BLKDEV .AZ " /DEV/%s\r\n"
MSG.IRQ .AZ "-Interrupt Manager..."
MSG.IRQ.VBL .AZ "Mouse VBL IRQ Activated.\r\n"
MSG.IRQ.CLOCK .AZ "Clock Card IRQ Activated.\r\n"
@ -1015,25 +1023,18 @@ MSG.Init3.OK .AZ "A2osX[Stage3]:Complete.\r\n"
*--------------------------------------
MSG.CPU .AZ "Checking CPU..."
MSG.CPU.SPEED .AZ "Detecting CPU Speed..."
MSG.CPUTYPEL .DA #MSG.6502
.DA #MSG.65C02
.DA #MSG.65R02
.DA #MSG.65816
MSG.CPUTYPEH .DA /MSG.6502
.DA /MSG.65C02
.DA /MSG.65R02
.DA /MSG.65816
MSG.6502 .AZ "6502.\n"
MSG.65C02 .AZ "65C02.\n"
MSG.65R02 .AZ "65R02.\n"
MSG.65816 .AZ "65816.\n"
MSG.CPU.SPEEDOK .AZ "%d.%02d Mhz.\n"
MSG.CPUTYPE .DA MSG.6502
.DA MSG.65C02
.DA MSG.65R02
.DA MSG.65816
MSG.6502 .AZ "6502.\r\n"
MSG.65C02 .AZ "65C02.\r\n"
MSG.65R02 .AZ "65R02.\r\n"
MSG.65816 .AZ "65816.\r\n"
MSG.CPU.SPEEDOK .AZ "%d.%02d Mhz.\r\n"
MSG.Z80 .AZ "Detecting Z80 CPU..."
MSG.Z80.OK .AZ "Detected In Slot %d.\n"
MSG.Z80.KO .AZ "Not Detected.\n"
MSG.KCREAD .AZ "Reading Kernel Config File..."
MSG.KCREAD.OK .AZ "OK\n"
MSG.KCREAD.KO .AZ "\nError While Reading Kernel Config File, Using Default.\n"
MSG.Z80.OK .AZ "Detected In Slot %d.\r\n"
MSG.Z80.KO .AZ "Not Detected.\r\n"
*--------------------------------------
DEV.SYS .AZ "/DEV/SYS"
I.ENV.A2osX .AZ "A2OSX"

View File

@ -94,10 +94,13 @@ K.Read
*--------------------------------------
* int write(int fd, const void *buf, size_t count);
*--------------------------------------
K.Write jsr K.GetMemPtr
>STYA pFD
K.Write jsr IO.SELECT
bcs K.Write.9
lda (pFD) #S.FD.T
>PULLW K.S.IOCTL+S.IOCTL.BUFPTR
>PULLW K.S.IOCTL+S.IOCTL.BYTECNT
K.Write.I lda (pFD) #S.FD.T
tax
jmp (.1,x)
@ -109,6 +112,7 @@ K.Write jsr K.GetMemPtr
.DA STDIO.IOERR DSOCK
.DA IO.WRITE.SSOCK
.DA IO.WRITE.FIFO
K.Write.9 >RET 4
*--------------------------------------
IO.WRITE.REG >PUSHW K.S.IOCTL+S.IOCTL.BUFPTR
>PUSHW K.S.IOCTL+S.IOCTL.BYTECNT
@ -124,7 +128,7 @@ IO.WRITE.CDEV ldy #S.FD.DEV.DRVPTR
lda (pFD),y
sta .1+2
lda K.IOBuf
>LDYAI K.S.IOCTL
ldx #IOCTL.WRITE
.1 jmp $ffff
*--------------------------------------

View File

@ -175,11 +175,15 @@ K.PrintF >STYA ZPPtr1 format
K.PrintF.0 >LDYAI K.IOBuf
>STYA pIOBuf
>STYA K.S.IOCTL+S.IOCTL.BUFPTR
K.PrintF.1 ldy #0
K.PrintF.1 stz K.S.IOCTL+S.IOCTL.BYTECNT
stz K.S.IOCTL+S.IOCTL.BYTECNT+1
ldy #0
.1 lda (ZPPtr1),y
beq .99
beq .8 end of format..
iny
cmp #'%'
bne .10
@ -194,7 +198,7 @@ K.PrintF.1 ldy #0
iny
.3 cmp PrintFTBL1,x do we have a %x command?
beq .8 yes, jmp to it!
beq .6 yes, jmp to it!
dex
bpl .3 no valid letter...
@ -225,7 +229,7 @@ K.PrintF.1 ldy #0
sta K.PrintF.PadL
bra .2 go get next char...
.8 phy
.6 phy
txa
asl
tax
@ -233,6 +237,8 @@ K.PrintF.1 ldy #0
ply
bcc .1
rts
.8 jmp PrintF.Flush
.10 cmp #'\'
bne .20
@ -542,9 +548,9 @@ PrintF.SS ldy #$00 PSTR
*--------------------------------------
PrintF.COut phy
ldy S.IOCTL.BYTECNT
ldy K.S.IOCTL+S.IOCTL.BYTECNT
sta (pIOBuf),y
inc S.IOCTL.BYTECNT
inc K.S.IOCTL+S.IOCTL.BYTECNT
bne .8
lda pIOBuf+1
@ -553,23 +559,25 @@ PrintF.COut phy
* we are printing to IObuf, flush!
lda S.IOCTL.BYTECNT+1
lda K.S.IOCTL+S.IOCTL.BYTECNT+1
pha
lda #1 Flush $100 bytes
sta S.IOCTL.BYTECNT+1
sta K.S.IOCTL+S.IOCTL.BYTECNT+1
pla
inc
sta S.IOCTL.BYTECNT+1
sta K.S.IOCTL+S.IOCTL.BYTECNT+1
.7 inc pIOBuf+1
inc S.IOCTL.BYTECNT+1
inc K.S.IOCTL+S.IOCTL.BYTECNT+1
.8 ply
clc
rts
*--------------------------------------
PrintF.Flush jmp K.Write.I
*/--------------------------------------
* # GetChar
* Get char from StdIn
@ -593,8 +601,7 @@ K.GetChar ldy #S.PS.hStdIn
* CC = success
* A = char
*\--------------------------------------
K.GetC jsr K.GetMemPtr
>STYA pFD
K.GetC jsr IO.SELECT
ldy #S.FD.T
lda (pFD),y