Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-12-12 15:13:32 +01:00
parent 85102b35d7
commit c9110f3298
3 changed files with 54 additions and 12 deletions

Binary file not shown.

View File

@ -867,8 +867,6 @@ CMD.FOR jsr CORE.StkGetCtx
lda #8 Make sure 8 bytes free on stack
jsr CORE.StkCheck
bcs .9
>LDYA ZPInputBufPtr
jsr CORE.StkPushYA Push CmdPtr AFTER FOR
lda (ZPArgVBufPtr)
cmp #'('
@ -876,15 +874,26 @@ CMD.FOR jsr CORE.StkGetCtx
cmp #'`'
bne CMD.FOR.LIST
jmp CMD.FOR.EXEC
bra CMD.FOR.EXEC
.9 rts
*--------------------------------------
CMD.FOR.LIST >LDYA ZPArgVBufPtr
>SYSCALL strdup
bcs FOR.FILE.9
phy
pha
>LDYA ZPInputBufPtr
jsr CORE.StkPushYA Push CmdPtr AFTER FOR
pla
ply
jsr CORE.StkPushYAX Push listPtr,hList
jsr CORE.PushVarName Push hVARNAME
bcs FOR.FILE.9
lda #C.FOR.LIST
jsr CORE.StkPush
lda #C.FOR
@ -918,9 +927,16 @@ CMD.FOR.EXEC jsr CORE.ArgV.NextChar skip "`"
bcs FOR.FILE.9
CMD.FOR.PUSH jsr CORE.StkPush push hPIPE for read
CMD.FOR.PUSH pha save hFILE/hPIPE
>LDYA ZPInputBufPtr
jsr CORE.StkPushYA Push CmdPtr AFTER FOR
pla
jsr CORE.StkPush push hPIPE for read
jsr CORE.PushVarName Push hVARNAME
bcs FOR.FILE.9
* bcs FOR.FILE.9
lda #C.FOR.FILEEXEC
jsr CORE.StkPush
@ -1072,11 +1088,12 @@ CMD.NEXT.LIST.TOKEN
*--------------------------------------
CMD.NEXT.FILEEXEC
lda (pData),y Y = StkPtr
bpl .1
bpl CMD.NEXT.FILEEXEC.POP
jsr CMD.NEXT.LINE
bcs .9
bpl .1 end of file/pipe
bpl CMD.NEXT.FILEEXEC.POP end of file/pipe
lda (pData)
sec
sbc #4
@ -1088,9 +1105,10 @@ CMD.NEXT.FILEEXEC
lda (pData),y
sta ZPInputBufPtr+1
clc
rts
.9 rts
.1 lda (pData)
CMD.NEXT.FILEEXEC.POP
lda (pData)
tay
sec
sbc #6
@ -1106,7 +1124,7 @@ CMD.NEXT.FILEEXEC
pla
>SYSCALL freemem
* clc
.9 rts
rts
*--------------------------------------
CMD.NEXT.LINE lda (pData)
dec skip FOR

View File

@ -624,16 +624,40 @@ CORE.StkPopCtxA and #$3F
cmp #C.CASE CASE : C.CASE + hValue
beq .1
cmp #C.FOR
beq .3
cmp #C.DEFAULT DEFAULT : C.DEFAULT + hValue
bne .9
.1 jsr CORE.StkPopX
.2 jsr CORE.StkPull
>SYSCALL freemem
.8 clc
rts
.3 jsr CORE.StkPull Get FOR sub cmd
beq .4 FOR List
jsr CORE.StkPull hVARNAME
>SYSCALL freemem
jsr CORE.StkPull hFILE/hPIPE
>SYSCALL fclose
ldx #2 CmdPtr
jmp CORE.StkPopX
.4 jsr CORE.StkPull hVARNAME
>SYSCALL freemem
jsr CORE.StkPull hFILE/hPIPE
>SYSCALL fclose
ldx #4 ListPtr,CmdPtr
jmp CORE.StkPopX
.9 lda #E.STACKERROR
sec
rts