Kernel 0.92

This commit is contained in:
Rémy GIBERT 2019-01-30 16:23:00 +00:00
parent abe29c162d
commit dfa2b31ab7
11 changed files with 120 additions and 102 deletions

View File

@ -9,11 +9,11 @@ CL.Init >LDYAI 256
>STYA ZPCLBuf >STYA ZPCLBuf
txa txa
>STA.G CMD.hCLBuf >STA.G CL.hCLBuf
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CL.Quit >LDA.G CMD.hCLBuf CL.Quit >LDA.G CL.hCLBuf
beq .9 beq .9
>SYSCALL FreeMem >SYSCALL FreeMem

View File

@ -8,7 +8,7 @@ CMD.Init >LDYAI 256
bcs .9 bcs .9
>STYA ZPArgVBuf >STYA ZPArgVBuf
txa txa
>STA.G CMD.hArgVBuf >STA.G CORE.hArgVBuf
lda #PUSHD.STACK lda #PUSHD.STACK
tay tay
@ -16,7 +16,7 @@ CMD.Init >LDYAI 256
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CMD.Quit ldy #CMD.hArgVBuf CMD.Quit ldy #CORE.hArgVBuf
jsr .8 jsr .8
ldy #hFileBuf ldy #hFileBuf
@ -106,10 +106,10 @@ CMD.Get >LDYA ZPInputBufPtr
* - or - * - or -
* intcmd\0 arg1\0 arg2\0 ... \0 * intcmd\0 arg1\0 arg2\0 ... \0
*-------------------------------------- *--------------------------------------
CL.Parse >STZ.G CMD.IntCmd CL.Parse >STZ.G CORE.IntCmd
lda #S.PS.F.HOLD+S.PS.F.DUPENV lda #S.PS.F.HOLD+S.PS.F.DUPENV
>STA.G CMD.PSFlags >STA.G CORE.PSFlags
>PUSHW ZPCLBuf >PUSHW ZPCLBuf
>LDYA ZPCLBuf >LDYA ZPCLBuf
@ -126,7 +126,7 @@ CL.Parse >STZ.G CMD.IntCmd
.1 cmp #'#' comment ? .1 cmp #'#' comment ?
beq .8 yes, ignore remaining beq .8 yes, ignore remaining
>LDA.G CMD.IntCmd >LDA.G CORE.IntCmd
bne .3 we already have Cmd, go check args bne .3 we already have Cmd, go check args
ldy #1 ldy #1
@ -137,7 +137,7 @@ CL.Parse >STZ.G CMD.IntCmd
cmp #'.' leading dot ? cmp #'.' leading dot ?
bne .2 bne .2
>LDA.G CMD.PSFlags yes, child process will run in same ENV >LDA.G CORE.PSFlags yes, child process will run in same ENV
and #$ff^S.PS.F.DUPENV and #$ff^S.PS.F.DUPENV
sta (pData),y sta (pData),y
bra .6 and skip this token bra .6 and skip this token
@ -176,7 +176,7 @@ CL.CheckCmd ldy #$ff
bra .4 bra .4
.2 >PUSHW ZPCLBufPtr .2 >PUSHW ZPCLBufPtr
>LDYA L.CMD.INT >LDYA L.CORE.INT
jsr Lookup no / found, search internal... jsr Lookup no / found, search internal...
bcs .4 not internal, search PATH bcs .4 not internal, search PATH
@ -184,7 +184,7 @@ CL.CheckCmd ldy #$ff
plx plx
bne .3 bne .3
>LDA.G CMD.PSFlags if STARTPROC, skip keyword... >LDA.G CORE.PSFlags if STARTPROC, skip keyword...
and #$ff^S.PS.F.HOLD and #$ff^S.PS.F.HOLD
sta (pData),y ...and toggle S.PS.F.HOLD flag sta (pData),y ...and toggle S.PS.F.HOLD flag
clc clc
@ -194,7 +194,7 @@ CL.CheckCmd ldy #$ff
bcs .9 bcs .9
txa txa
>STA.G CMD.IntCmd >STA.G CORE.IntCmd
clc clc
rts rts
@ -203,7 +203,7 @@ CL.CheckCmd ldy #$ff
jsr CL.AddYAToArgV jsr CL.AddYAToArgV
lda #$ff lda #$ff
>STA.G CMD.IntCmd >STA.G CORE.IntCmd
clc clc
CL.CheckCmd.RTS CL.CheckCmd.RTS
@ -223,7 +223,7 @@ CL.CheckIO >PUSHW ZPCLBufPtr
.9 lda #0 .9 lda #0
rts rts
*-------------------------------------- *--------------------------------------
CL.IO.AMP >LDA.G CMD.PSFlags CL.IO.AMP >LDA.G CORE.PSFlags
and #$ff^S.PS.F.HOLD and #$ff^S.PS.F.HOLD
sta (pData),y sta (pData),y
clc clc

View File

@ -3,7 +3,31 @@ PREFIX
AUTO 4,1 AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
* Input : CMD.IntCmd,ZPArgVBuf * From hCLBuf or hFileBuf
* Get Line from buf until ;, CR, \0 (EOL / EOF)
* :LOOP
* if previous | :
* set hStdIn = hStdOut
* set hStdOut = Std
* GetCmd from line until | or EOL
* if | :
* create PIPE
* set hStdOut -> PIPE
* CORE.Exec &
* :LOOP
* else CORE.Exec
*--------------------------------------
* SET VAR = `cmd args`, FOR VAR IN `cmd args`
* create PIPE
* set hStdOut -> PIPE
* CORE.Exec `cmd args` &
* set READMODE
* set hStdIn = hStdOut
* set hStdOut = Std
*--------------------------------------
CORE.Run
*--------------------------------------
* Input : CORE.IntCmd,ZPArgVBuf
*-------------------------------------- *--------------------------------------
CORE.Exec jsr CORE.StkGet IF,WHILE,FOR ? CORE.Exec jsr CORE.StkGet IF,WHILE,FOR ?
bcs .3 no particular context, exec... bcs .3 no particular context, exec...
@ -21,7 +45,7 @@ CORE.Exec jsr CORE.StkGet IF,WHILE,FOR ?
asl asl
bpl .8 parent context is FALSE, skip line bpl .8 parent context is FALSE, skip line
.3 >LDA.G CMD.IntCmd .3 >LDA.G CORE.IntCmd
bpl .80 Internal bpl .80 Internal
>PUSHB.G CORE.PSFlags >PUSHB.G CORE.PSFlags
@ -31,7 +55,7 @@ CORE.Exec jsr CORE.StkGet IF,WHILE,FOR ?
tax CPID tax CPID
>LDA.G CMD.PSFlags >LDA.G CORE.PSFlags
and #S.PS.F.HOLD and #S.PS.F.HOLD
bne .4 bne .4
@ -106,7 +130,7 @@ CORE.INT.POPD.RTS
rts rts
CORE.INT.POPD.CSYN CORE.INT.POPD.CSYN
jmp Cmd.Exec.CSYN jmp CORE.Exec.CSYN
*-------------------------------------- *--------------------------------------
CORE.INT.CD ldx #1 CORE.INT.CD ldx #1
jsr CORE.GetArgX jsr CORE.GetArgX
@ -135,13 +159,13 @@ CORE.INT.CD.1 >SYSCALL realpath
lda (ZPPtr1),y lda (ZPPtr1),y
beq CORE.SetPrefixPHA we have '/' beq CORE.SetPrefixPHA we have '/'
>PUSHEA.G CMD.Stat >PUSHEA.G StatBuf
>LDYA ZPPtr1 >LDYA ZPPtr1
>SYSCALL STAT >SYSCALL STAT
bcs CORE.INT.CD.1.9 bcs CORE.INT.CD.1.9
>LDA.G CMD.Stat+S.STAT.P.TYPE >LDA.G StatBuf+S.STAT.P.TYPE
cmp #S.FI.T.DIR cmp #S.FI.T.DIR
bne CORE.INT.CD.1.9 bne CORE.INT.CD.1.9
@ -356,10 +380,10 @@ CORE.INT.DATE sec
.HS 90 bcc .HS 90 bcc
CORE.INT.TIME clc CORE.INT.TIME clc
php php
>LEA.G CORE.Time >LEA.G TimeBuf
>SYSCALL Time >SYSCALL Time
>PUSHEA.G CORE.Time >PUSHEA.G TimeBuf
plp plp
bcc .1 bcc .1
@ -460,7 +484,7 @@ CORE.INT.GETKEY ldx #1
>PUSHEA.G M32.BUF >PUSHEA.G M32.BUF
ldx #1 ldx #1
jsr Cmd.GetArgX jsr CORE.GetArgX
>SYSCALL SetEnv >SYSCALL SetEnv
.9 rts .9 rts
@ -501,9 +525,9 @@ CORE.INT.READ lda #1
txa txa
>STA.G hVarName >STA.G hVarName
.7 >INC.G CMD.ArgIndex .7 >INC.G CORE.ArgIndex
tax tax
jsr Cmd.GetArgX jsr CORE.GetArgX
bcc .1 bcc .1
>LDA.G hVarName >LDA.G hVarName
@ -579,13 +603,13 @@ CORE.INT.RD ldx #1
bcs .9 bcs .9
phy phy
pha pha
>PUSHEA.G CORE.Stat >PUSHEA.G StatBuf
pla pla
ply ply
>SYSCALL STAT >SYSCALL STAT
bcs .99 bcs .99
>LDA.G CORE.Stat+S.STAT.P.TYPE >LDA.G StatBuf+S.STAT.P.TYPE
cmp #S.FI.T.DIR cmp #S.FI.T.DIR
bne .9 bne .9
@ -790,7 +814,7 @@ CORE.Eval.UNARY ldx #3
CORE.Eval.D jsr CORE.Eval.DEF.7 CORE.Eval.D jsr CORE.Eval.DEF.7
bcs CORE.Eval.DEF.9 bcs CORE.Eval.DEF.9
>LDA.G CORE.Stat+S.STAT.P.TYPE >LDA.G StatBuf+S.STAT.P.TYPE
cmp #S.FI.T.DIR cmp #S.FI.T.DIR
bne CORE.Eval.DEF.9 bne CORE.Eval.DEF.9
bra CORE.Eval.DEF.8 bra CORE.Eval.DEF.8
@ -802,12 +826,12 @@ CORE.Eval.E jsr CORE.Eval.DEF.7
CORE.Eval.F jsr CORE.Eval.DEF.7 CORE.Eval.F jsr CORE.Eval.DEF.7
bcs CORE.Eval.DEF.9 bcs CORE.Eval.DEF.9
>LDA.G CORE.Stat+S.STAT.P.TYPE >LDA.G StatBuf+S.STAT.P.TYPE
cmp #S.FI.T.DIR cmp #S.FI.T.DIR
beq CORE.Eval.DEF.9 beq CORE.Eval.DEF.9
bra CORE.Eval.DEF.8 bra CORE.Eval.DEF.8
CORE.Eval.DEF.7 >PUSHEA.G CORE.Stat CORE.Eval.DEF.7 >PUSHEA.G StatBuf
ldx #3 ldx #3
jsr CORE.GetArgX jsr CORE.GetArgX
>SYSCALL STAT >SYSCALL STAT
@ -963,7 +987,7 @@ CORE.GetEXP.GetNext
jsr CORE.GetArgX jsr CORE.GetArgX
rts rts
*-------------------------------------- *--------------------------------------
CORE.GetArgX >LDYA ZPArgVBuf CORE.GetArgX >LDYA ZPArgVBuf
dex dex
bmi .8 bmi .8

View File

@ -4,11 +4,11 @@ AUTO 4,1
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000
.TF BIN/SHELL2 .TF BIN/SHELL
*-------------------------------------- *--------------------------------------
CL.MAX .EQ 159 CL.MAX .EQ 159
History.MAX .EQ 256 History.MAX .EQ 256
CMD.STACK.MAX .EQ 64 CORE.STACK.MAX .EQ 64
PUSHD.STACK.MAX .EQ 8 PUSHD.STACK.MAX .EQ 8
*-------------------------------------- *--------------------------------------
C.STARTPROC .EQ 0 C.STARTPROC .EQ 0
@ -192,7 +192,7 @@ CS.RUN jsr CMD.Init
bra CS.RUN.LOOP bra CS.RUN.LOOP
*-------------------------------------- *--------------------------------------
.1 jsr Cmd.INT.CD.HOME .1 jsr CORE.INT.CD.HOME
jsr CL.Init jsr CL.Init
jsr HIS.Init jsr HIS.Init
bcs CS.INIT.RTS bcs CS.INIT.RTS
@ -203,7 +203,7 @@ CS.RUN jsr CMD.Init
>SYSCALL printf >SYSCALL printf
bcs CS.INIT.RTS bcs CS.INIT.RTS
>PUSHEA.G CMD.Stat >PUSHEA.G StatBuf
>LDYA L.HOME.PROFILE >LDYA L.HOME.PROFILE
>SYSCALL STAT >SYSCALL STAT
bcs CS.RUN.LOOP bcs CS.RUN.LOOP
@ -358,7 +358,7 @@ CS.RUN.BATCH >SYSCALL GetChar
clc clc
jmp CS.RUN.LOOP.END jmp CS.RUN.LOOP.END
.2 jsr CL.GetCmd .2 jsr CMD.Get
bcc .7 bcc .7
cmp #C.EOF cmp #C.EOF
@ -394,7 +394,7 @@ CS.RUN.Exec jsr CL.Parse
lda (ZPArgVBuf) lda (ZPArgVBuf)
beq CS.RUN.LOOP.8 beq CS.RUN.LOOP.8
jsr CMD.Exec jsr CORE.Exec
*-------------------------------------- *--------------------------------------
CS.RUN.LOOP.END ldy #S.PS.RC CS.RUN.LOOP.END ldy #S.PS.RC
sta (pPs),y sta (pPs),y
@ -543,9 +543,10 @@ Lookup >STYA ZPPtr2
rts rts
*-------------------------------------- *--------------------------------------
.INB USR/SRC/BIN/SHELL.S.CL .INB USR/SRC/BIN/SHELL.S.CL
.INB USR/SRC/BIN/SHELL.S.HIS
.INB USR/SRC/BIN/SHELL.S.CORE
.INB USR/SRC/BIN/SHELL.S.CMD .INB USR/SRC/BIN/SHELL.S.CMD
.INB USR/SRC/BIN/SHELL.S.IO .INB USR/SRC/BIN/SHELL.S.IO
.INB USR/SRC/BIN/SHELL.S.HIS
*-------------------------------------- *--------------------------------------
CS.END CS.END
*-------------------------------------- *--------------------------------------
@ -580,7 +581,7 @@ CL.IO .AZ "&"
.AZ "2>" .AZ "2>"
.HS 00 .HS 00
*-------------------------------------- *--------------------------------------
CMD.INT .AZ "STARTPROC" CORE.INT .AZ "STARTPROC"
.AZ "CD" .AZ "CD"
.AZ "DATE" .AZ "DATE"
.AZ "ECHO" .AZ "ECHO"
@ -609,14 +610,17 @@ CMD.INT .AZ "STARTPROC"
.AZ "FI" .AZ "FI"
.HS 00 .HS 00
*-------------------------------------- *--------------------------------------
CMD.Eval.TOKEN1 .AZ "![" CORE.Eval.TOKEN1
.AZ "!["
.AZ "[" .AZ "["
.HS 00 .HS 00
CMD.Eval.TOKEN2 .AZ "-d" CORE.Eval.TOKEN2
.AZ "-d"
.AZ "-e" .AZ "-e"
.AZ "-f" .AZ "-f"
.HS 00 .HS 00
CMD.Eval.TOKEN3 .AZ "=" CORE.Eval.TOKEN3
.AZ "="
.AZ "!=" .AZ "!="
.AZ "-eq" .AZ "-eq"
.AZ "-ne" .AZ "-ne"
@ -625,7 +629,7 @@ CMD.Eval.TOKEN3 .AZ "="
.AZ "-gt" .AZ "-gt"
.AZ "-ge" .AZ "-ge"
.HS 00 .HS 00
CMD.Eval.TOKEN3.BITS CORE.Eval.TOKEN3.BITS
.DA #%000 .DA #%000
.DA #%000 .DA #%000
.DA #%010 .DA #%010
@ -634,7 +638,8 @@ CMD.Eval.TOKEN3.BITS
.DA #%110 .DA #%110
.DA #%001 .DA #%001
.DA #%011 .DA #%011
CMD.Eval.TOKEN4 .AZ "+" CORE.Eval.TOKEN4
.AZ "+"
.AZ "-" .AZ "-"
.AZ "*" .AZ "*"
.AZ "div" .AZ "div"
@ -651,7 +656,7 @@ M32.Printf .AZ "%L"
.DUMMY .DUMMY
.OR 0 .OR 0
DS.START DS.START
CMD.STACK .BS CMD.STACK.MAX+1 pData (0 = Stack Ptr) CORE.STACK .BS CORE.STACK.MAX+1 pData (0 = Stack Ptr)
PUSHD.STACK .BS PUSHD.STACK.MAX+1 PUSHD.STACK .BS PUSHD.STACK.MAX+1
hFileBuf .BS 1 batch mode hFileBuf .BS 1 batch mode
@ -672,17 +677,17 @@ CL.Ptr .BS 1
CL.Len .BS 1 CL.Len .BS 1
CL.bExec .BS 1 CL.bExec .BS 1
CMD.IntCmd .BS 1 CORE.IntCmd .BS 1
CMD.hArgVBuf .BS 1 CORE.hArgVBuf .BS 1
CMD.ArgIndex .BS 1 CORE.ArgIndex .BS 1
CMD.Varname .BS 1 CORE.Varname .BS 1
CMD.Test .BS 1 CORE.Test .BS 1
CMD.Operator .BS 1 CORE.Operator .BS 1
CMD.PSFlags .BS 1 CORE.PSFlags .BS 1
CMD.Stat .BS S.STAT StatBuf .BS S.STAT
CMD.Time .BS S.TIME TimeBuf .BS S.TIME
HIS.hBuf .BS 1 HIS.hBuf .BS 1
HIS.Count .BS 1 HIS.Count .BS 1

View File

@ -431,8 +431,6 @@ S.FD.REG.IOBUF .EQ 3
* *
S.FD.REG .EQ 4 S.FD.REG .EQ 4
*-------------------------------------- *--------------------------------------
S.FD.DIR.REF .EQ 2
S.FD.DIR.IOBUF .EQ 3
S.FD.DIR.EL .EQ 4 S.FD.DIR.EL .EQ 4
S.FD.DIR.EPB .EQ 5 S.FD.DIR.EPB .EQ 5
S.FD.DIR.FC .EQ 6 word S.FD.DIR.FC .EQ 6 word

View File

@ -14,14 +14,12 @@ K.GetDevByName >STYA ZPPtr1 requested dev name
ldx #0 ldx #0
.1 lda Dev.Table,x .1 lda Dev.Table,x
sta .3+1
clc clc
adc #S.FD.DEV adc #S.FD.DEV
sta ZPPtr2 sta ZPPtr2
lda Dev.Table+1,x lda Dev.Table+1,x
beq K.GetDev.NODEV beq K.GetDev.NODEV
sta .4+1
adc /S.FD.DEV adc /S.FD.DEV
sta ZPPtr2+1 sta ZPPtr2+1
@ -35,8 +33,8 @@ K.GetDevByName >STYA ZPPtr1 requested dev name
ora (ZPPtr2),y Both char are 0 ? ora (ZPPtr2),y Both char are 0 ?
bne .2 no....loop bne .2 no....loop
.3 ldy #$ff SELF MODIFIED .3 ldy Dev.Table,x
.4 lda #$ff SELF MODIFIED .4 lda Dev.Table+1,x
clc clc
rts rts

View File

@ -39,16 +39,8 @@ K.OpenDir jsr PFT.CheckPathYA
cmp #$0F Directory ? cmp #$0F Directory ?
bne .98 bne .98
jsr STDIO.SetIOBUF jsr IO.MLIOPEN
bcs .98
bcs .98
>MLICALL MLIOPEN
bcs .98
lda K.MLI.PARAMS+5 get ref_num
ldy #S.FD.DIR.REF
sta (pFD),y
.8 lda #$ff Self Modified .8 lda #$ff Self Modified
jsr STDIO.NewHFile jsr STDIO.NewHFile
@ -90,7 +82,7 @@ K.ReadDir.EC .BS 2
K.ReadDir jsr PFT.CheckNodeA K.ReadDir jsr PFT.CheckNodeA
bcs K.ReadDir.RTS bcs K.ReadDir.RTS
ldy #S.FD.DIR.REF ldy #S.FD.REG.REF
lda (pFD),y lda (pFD),y
beq K.ReadDir.ROOT beq K.ReadDir.ROOT
jmp K.ReadDir.DIR jmp K.ReadDir.DIR

View File

@ -181,11 +181,11 @@ Kernel.Init3C >LDYAI MSG.Init3
>LDYAI MSG.Prefix >LDYAI MSG.Prefix
>SYSCALL printf >SYSCALL printf
lda KBD * lda KBD
bpl .7 * bpl .7
sta KBDSTROBE * sta KBDSTROBE
cmp #146 CTRL-R for ROOT mode * cmp #146 CTRL-R for ROOT mode
bne .7 * bne .7
>PUSHBI 0 >PUSHBI 0
>LDYAI MSG.CTRLR >LDYAI MSG.CTRLR

View File

@ -121,17 +121,8 @@ IO.OPEN.REG.E >LDYAI S.FD.REG
* lda #S.FD.T.REG * lda #S.FD.T.REG
* sta (pFD),y * sta (pFD),y
jsr STDIO.SetIOBUF jsr IO.MLIOPEN
bcs .9 bcs .9
>MLICALL MLIOPEN
bcs .9
lda K.MLI.PARAMS+5 get ref_num
ldy #S.FD.REG.REF
sta (pFD),y
sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based
lda K.Open.FLAGS lda K.Open.FLAGS
bit #O.WRONLY bit #O.WRONLY
@ -479,6 +470,28 @@ K.Pipe
.9 sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------
IO.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE
jsr MEM.GetMem.YAX
bcs .9
>STYA K.MLI.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call
txa
ldy #S.FD.REG.IOBUF
sta (pFD),y
>MLICALL MLIOPEN
bcs .9
lda K.MLI.PARAMS+5 get ref_num
ldy #S.FD.REG.REF
sta (pFD),y
sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based
* clc
.9 rts
*--------------------------------------
IO.DEVDIR >PSTR "/DEV/" IO.DEVDIR >PSTR "/DEV/"
*-------------------------------------- *--------------------------------------
MAN MAN

View File

@ -2,7 +2,7 @@ NEW
PREFIX PREFIX
AUTO 4,1 AUTO 4,1
*-------------------------------------- *--------------------------------------
X.SLIST jmp (.1-SYS.SListAdd,x) X.SLIST jmp (.1-SYS.SListAddData,x)
.1 .DA SLIST.Add .1 .DA SLIST.Add
.DA SLIST.Lookup .DA SLIST.Lookup
.DA SLIST.GetByID .DA SLIST.GetByID

View File

@ -974,7 +974,7 @@ K.SScanF.Fwd tya Y=char count parsed
* CS : A = EC * CS : A = EC
*\-------------------------------------- *\--------------------------------------
K.FOpen jsr PFT.CheckPathYA K.FOpen jsr PFT.CheckPathYA
bcs .99 bcs K.FOpen.RET4
>PULLB K.Open.FLAGS >PULLB K.Open.FLAGS
>PULLB K.Open.TYPE >PULLB K.Open.TYPE
@ -995,7 +995,7 @@ K.FOpen jsr PFT.CheckPathYA
sec sec
.9 rts .9 rts
.99 >RET 4 K.FOpen.RET4 >RET 4
*/-------------------------------------- */--------------------------------------
* # FClose * # FClose
* Close a file * Close a file
@ -1042,7 +1042,7 @@ K.FClose jsr PFT.CheckNodeA
* Y,A = Bytes Read * Y,A = Bytes Read
*\-------------------------------------- *\--------------------------------------
K.FRead jsr PFT.CheckNodeA K.FRead jsr PFT.CheckNodeA
bcs K.FWrite.9 bcs K.FOpen.RET4
jmp IO.Read.I jmp IO.Read.I
*/-------------------------------------- */--------------------------------------
@ -1060,10 +1060,9 @@ K.FRead jsr PFT.CheckNodeA
* Y,A = Bytes Written * Y,A = Bytes Written
*\-------------------------------------- *\--------------------------------------
K.FWrite jsr PFT.CheckNodeA K.FWrite jsr PFT.CheckNodeA
bcs K.FWrite.9 bcs K.FOpen.RET4
jmp IO.Write.I jmp IO.Write.I
K.FWrite.9 >RET 4
*/-------------------------------------- */--------------------------------------
* # FFlush * # FFlush
* ## C * ## C
@ -1318,17 +1317,6 @@ STDIO.NewHFile sta .4+1 Store hFD
clc clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
STDIO.SetIOBUF >LDYAI 1024 get a ProDOS IOBUF
ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE
jsr MEM.GetMem.YAX
bcs .9
>STYA K.MLI.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call
txa
ldy #S.FD.REG.IOBUF
sta (pFD),y
.9 rts
*--------------------------------------
STDIO.IOERR lda #MLI.E.IO STDIO.IOERR lda #MLI.E.IO
sec sec
rts rts