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

View File

@ -81,9 +81,7 @@ CMD.CD.HOME >LDYA L.ENV.HOME
>SYSCALL GetEnv >SYSCALL GetEnv
bcs CMD.PWD bcs CMD.PWD
CMD.CD.1 CMD.CD.1 >SYSCALL realpath
* >DEBUG
>SYSCALL realpath
bcs CMD.POPD.RTS bcs CMD.POPD.RTS
>STYA ZPPtr1 >STYA ZPPtr1
@ -584,7 +582,9 @@ CMD.FOR jsr CORE.StkGet
beq FOR.FILE beq FOR.FILE
cmp #'`' cmp #'`'
beq FOR.EXEC bne FOR.LIST
jmp FOR.EXEC
*-------------------------------------- *--------------------------------------
FOR.LIST sec FOR.LIST sec
jsr CORE.StkPushPtr Push CmdPtr AFTER FOR jsr CORE.StkPushPtr Push CmdPtr AFTER FOR
@ -636,7 +636,52 @@ FOR.LIST sec
.99 rts .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 FOR.EXEC
* lda #$ff * lda #$ff
@ -778,7 +823,91 @@ CMD.NEXT.LIST.1 lda (pData)
* clc * clc
.9 rts .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 CMD.NEXT.EXEC clc
rts rts

View File

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