Kernel 0.92+

This commit is contained in:
Rémy GIBERT 2019-03-07 16:48:30 +00:00
parent aab92e3631
commit 1f9ed98c6a
4 changed files with 173 additions and 41 deletions

Binary file not shown.

View File

@ -12,8 +12,11 @@ AUTO 4,1
PAGELEN .EQ 22
FOOTERLEN .EQ 8
*--------------------------------------
ZPPTR1 .EQ ZPBIN
ZPPTR2 .EQ ZPBIN+2
.DUMMY
.OR ZPBIN
ZS.START
MemStat .BS S.MSTAT
ZS.END .ED
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
@ -25,7 +28,7 @@ CS.START cld
.DA CS.END-CS.START CS
.DA DS.END-DS.START DS
.DA #16 SS
.DA #4 ZP
.DA #ZS.END-ZS.START Zero Page Size
.DA 0
*--------------------------------------
* Relocation Table
@ -57,16 +60,10 @@ CS.RUN >LDYA L.MemStat
tay
lda MemStat+S.MSTAT.MF+1
sbc MemStat+S.MSTAT.ML+1
>PUSHYA
>PUSHW MemStat+S.MSTAT.MH
>PUSHW MemStat+S.MSTAT.MF
>PUSHW MemStat+S.MSTAT.ML
>PUSHBI 8
>LDYA L.MSG.Stat
>SYSCALL printf
ldx #S.MSTAT.MH+1
jsr CS.RUN.PRINT
>SLEEP
*--------------------------------------
>LDYA L.MSG.Aux
>SYSCALL puts
@ -76,16 +73,10 @@ CS.RUN >LDYA L.MemStat
tay
lda MemStat+S.MSTAT.XF+1
sbc MemStat+S.MSTAT.XL+1
>PUSHYA
>PUSHW MemStat+S.MSTAT.XH
>PUSHW MemStat+S.MSTAT.XF
>PUSHW MemStat+S.MSTAT.XL
>PUSHBI 8
>LDYA L.MSG.Stat
>SYSCALL printf
ldx #S.MSTAT.XH+1
jsr CS.RUN.PRINT
>SLEEP
*--------------------------------------
>LDYA L.MSG.Kernel
>SYSCALL puts
@ -95,19 +86,28 @@ CS.RUN >LDYA L.MemStat
tay
lda MemStat+S.MSTAT.DH+1
sbc MemStat+S.MSTAT.DF+1
>PUSHYA
ldx #S.MSTAT.DH+1
jsr CS.RUN.PRINT
>LDYA L.MSG.END
>SYSCALL puts
lda #0
sec
rts
*--------------------------------------
CS.RUN.PRINT >PUSHYA
ldy #6
.1 >PUSHB MemStat,x
dex
dey
bne .1
>PUSHW MemStat+S.MSTAT.DH
>PUSHW MemStat+S.MSTAT.DF
>PUSHW MemStat+S.MSTAT.DL
>PUSHBI 8
>LDYA L.MSG.Stat
>SYSCALL printf
>LDYA L.MSG.End
>SYSCALL puts
lda #0
sec
rts
*--------------------------------------
CS.DOEVENT sec
@ -125,7 +125,6 @@ MSG.Stat .AS " Low : $%H\r\n"
.AS " High : $%H\r\n"
.AZ " Available Memory : %05D Bytes\r\n"
MSG.End .AZ "-------------------------------"
MemStat .BS S.MSTAT
*--------------------------------------
.DUMMY
.OR 0

View File

@ -81,9 +81,7 @@ CMD.CD.HOME >LDYA L.ENV.HOME
>SYSCALL GetEnv
bcs CMD.PWD
CMD.CD.1
* >DEBUG
>SYSCALL realpath
CMD.CD.1 >SYSCALL realpath
bcs CMD.POPD.RTS
>STYA ZPPtr1
@ -576,7 +574,7 @@ CMD.FOR jsr CORE.StkGet
iny
lda (ZPArgVBufPtr),y
bne CMD.CONTINUE.CSYN
jsr CORE.ArgV.Next
beq CMD.CONTINUE.CSYN
@ -584,7 +582,9 @@ CMD.FOR jsr CORE.StkGet
beq FOR.FILE
cmp #'`'
beq FOR.EXEC
bne FOR.LIST
jmp FOR.EXEC
*--------------------------------------
FOR.LIST sec
jsr CORE.StkPushPtr Push CmdPtr AFTER FOR
@ -636,7 +636,52 @@ FOR.LIST sec
.99 rts
*--------------------------------------
FOR.FILE
FOR.FILE sec
jsr CORE.StkPushPtr Push CmdPtr AFTER FOR
bcs .99
jsr CORE.ArgV.NextChar skip "("
>PUSHWI 0 Aux type
>PUSHBI S.FI.T.TXT
>PUSHBI O.RDONLY+O.TEXT
>LDYA ZPArgVBufPtr
>SYSCALL fopen
bcs .99
jsr CORE.StkPush push hFILE
bcs .99
>LDYA ZPVarNamePtr
>SYSCALL strdup
bcs .99
txa
jsr CORE.StkPush Push hVARNAME
bcs .99
lda #C.FOR.FILE
jsr CORE.StkPush
bcs .99
lda #C.FOR
jsr CORE.StkPush
bcs .99
jsr CMD.NEXT.FILE.1
bcs .99
>ORA.G CORE.Test
ora #C.FOR Push FOR
pha
lda (pData)
tay
pla
sta (pData),y
* clc
.99 rts
*--------------------------------------
FOR.EXEC
* lda #$ff
@ -778,7 +823,91 @@ CMD.NEXT.LIST.1 lda (pData)
* clc
.9 rts
*--------------------------------------
CMD.NEXT.FILE
* stack-4 CmdPtr
* stack-3 hFILE
* stack-2 hVARNAME
* stack-1 FOR SUB TOKEN
* stack FOR TOKEN
*--------------------------------------
CMD.NEXT.FILE lda (pData),y Y = StkPtr
bpl .1
jsr CMD.NEXT.FILE.1
bcs .9
bpl .1
lda (pData)
sec
sbc #4
tay
lda (pData),y
sta ZPInputBufPtr+1
dey
lda (pData),y
sta ZPInputBufPtr
clc
rts
.1 lda (pData)
tay
sec
sbc #6
sta (pData)
dey
dey
lda (pData),y hVARNAME
pha
dey
lda (pData),y hFILE
>SYSCALL fclose
pla
>SYSCALL freemem
* clc
.9 rts
*--------------------------------------
CMD.NEXT.FILE.1 lda (pData)
dec skip FOR
dec skip SUB TOKEN
tay
lda (pData),y
phy
>SYSCALL GetMemPtr hVARNAME
>STYA ZPVarNamePtr
ply
dey
lda (pData),y hFILE
pha
>PUSHWI 256
>PUSHW ZPCLBuf
pla
pha
>SYSCALL fgets
bcs .8
>PUSHW ZPCLBuf
>LDYA ZPVarNamePtr
>SYSCALL SetEnv
bcs .9
lda #$80
* clc
rts
.8 >LDYA ZPVarNamePtr
>SYSCALL UnSetEnv
bcs .9
lda #0
* clc
.9 rts
*--------------------------------------
CMD.NEXT.EXEC clc
rts

View File

@ -318,14 +318,18 @@ CORE.ArgV.Add >LDYA ZPArgVBufPtr
cmp #'"'
bne .10
sta TmpByte
bra .1
.10 cmp #'`'
.10 cmp #'('
bne .11
sta TmpByte
bra .12
.11 cmp #'`'
bne .12
sta TmpByte
.11 jsr CORE.ArgV.PutChar
.12 jsr CORE.ArgV.PutChar
.1 jsr CORE.GetNextChar
bcs .5