Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-02-20 08:41:52 +01:00
parent 27169807fe
commit 5d6b5670f2
4 changed files with 59 additions and 43 deletions

Binary file not shown.

View File

@ -897,6 +897,8 @@ CSH.AddVar >LDA.G CSH.hSymbols
jsr CSH.NewKey
bcs .9
>STYA ZPVarID
ldx ZPVarType
jsr CSH.SizeOf
sta ZPVarSizeOf
@ -924,10 +926,15 @@ CSH.AddVar >LDA.G CSH.hSymbols
>PUSHWI ZPVarDef
>PUSHWI 6
>SYSCALL SListAddData
bcs .9
lda #'*'
jsr DEBUG.KPL
.9 rts
.99
.99 lda #CSH.E.OOM
.HS 2C BIT ABS
CSH.TMISMATCH lda #CSH.E.TMISMATCH
sec
rts
@ -935,10 +942,9 @@ CSH.TMISMATCH lda #CSH.E.TMISMATCH
CSH.NewKey >PUSHA
>PUSHW ZPFileBufPtr
>SYSCALL SListNewKey
>DEBUG
bcs .9
>STYA ZPVarID
txa
* clc
adc ZPFileBufPtr
@ -967,19 +973,7 @@ CSH.SetVarValueFromStack
lda #'>'
>SYSCALL putchar
>PUSHW L.MSG.DBGPL
>PUSHW ZPVarDataPtr
ldy #3
.2 >PUSHB (ZPVarDataPtr),y
dey
bpl .2
>PUSHBI 6
>SYSCALL printf
>DEBUG
jsr DEBUG.KPL
clc
rts
@ -1042,6 +1036,7 @@ CSH.Get >PUSHW ZPFileBufPtr
* Output : Stack, X = Var Type
*--------------------------------------
CSH.GetVarValueOnStack
>DEBUG
phx
phy
pha
@ -1086,19 +1081,8 @@ CSH.GetVarValueOnStack
bne .3
lda #'<'
>SYSCALL putchar
>PUSHW L.MSG.DBGPL
>PUSHW ZPVarDataPtr
ldy #3
.20 >PUSHB (ZPVarDataPtr),y
dey
bpl .20
>PUSHBI 6
>SYSCALL printf
>DEBUG
jsr DEBUG.KPL
ldx ZPVarType
clc X = Var Type
.9 rts
@ -1365,6 +1349,23 @@ CSH.SIZEOF txa
.2 lda #2
rts
*--------------------------------------
DEBUG.KPL >SYSCALL putchar
>PUSHW L.MSG.DBGKPL
>PUSHW ZPVarID
>PUSHW ZPVarDataPtr
ldy #3
.1 >PUSHB (ZPVarDataPtr),y
dey
bpl .1
>PUSHBI 8
>SYSCALL printf
* >DEBUG
rts
*--------------------------------------
MAN
SAVE USR/SRC/BIN/CSH.S.CORE
LOAD USR/SRC/BIN/CSH.S

View File

@ -67,7 +67,7 @@ L.MSG.USAGE .DA MSG.USAGE
L.MSG.ECHOCRLF .DA MSG.ECHOCRLF
L.MSG.DEBUG .DA MSG.DEBUG
L.MSG.ERR .DA MSG.ERR
L.MSG.DBGPL .DA MSG.DBGPL
L.MSG.DBGKPL .DA MSG.DBGKPL
.INB USR/SRC/BIN/CSH.R
.DA 0
*--------------------------------------
@ -303,7 +303,7 @@ MSG.USAGE .AS "Usage : CSH <option> file\r\n"
MSG.ECHOCRLF .AZ "\r\n"
MSG.DEBUG .AZ "pStack=%H"
MSG.ERR .AZ "^\r\nLine #%D:"
MSG.DBGPL .AZ "P=%H, V=%L\r\n"
MSG.DBGKPL .AZ "K=%H, P=%H, V=%L\r\n"
*--------------------------------------
OptionList .AS "DdTt"
OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace

View File

@ -1,6 +1,7 @@
NEW
AUTO 3,1
*--------------------------------------
ZPSListKeyID .EQ ZPMEMMGR+8
ZPSListDataLen .EQ ZPMEMMGR+10
ZPSListIBlkPtr .EQ ZPMEMMGR+12
ZPSListDBlkPtr .EQ ZPMEMMGR+14
@ -13,9 +14,11 @@ SLIST.bStringMode .BS 1
SLIST.KeyID .EQ *
SLIST.BytePtr .BS 1
SLIST.BlockPtr .BS 1
SLIST.KeyID.Save .BS 2
*--------------------------------------
SLISTX.SListGetData
jsr SLIST.Select
jsr SLIST.SkipKey
jsr SLIST.GetDataLen
@ -107,9 +110,10 @@ SLISTX.SListGetData
*--------------------------------------
SLISTX.SListAddData
jsr SLIST.Select
jsr SLIST.SkipKey
>LDYA SLIST.KeyID Save DataLen location
>STYA TXTPTR to update later
>STYA SLIST.KeyID.Save to update later
ldy SLIST.BytePtr
lda (ZPSListDBlkPtr),y
@ -155,6 +159,7 @@ SLISTX.SListAddData
*--------------------------------------
SLISTX.SListSetData
jsr SLIST.Select
jsr SLIST.SkipKey
jsr SLIST.GetDataLen
@ -250,7 +255,7 @@ SLISTX.SListNewKey
jsr SLIST.AddBlockByte
bcs .9
>LDYA TXTPTR
>LDYA SLIST.KeyID
ldx SLIST.KeyLen
* clc
rts
@ -263,7 +268,6 @@ SLISTX.SListLookup
jsr SLIST.Search
bcs .9
>LDYA TXTPTR
ldx SLIST.KeyLen
.9 rts
*--------------------------------------
@ -285,19 +289,24 @@ SLISTX.SListFree
.8 lda SLIST.hList
jmp K.FreeMem
*--------------------------------------
SLISTX.SListNew >LDYAI 160 40k Max before out of memory!!!
SLISTX.SListNew >LDYAI 128 32k Max before out of memory!!!
jsr K.GetMem0
bcs .9
>STYA ZPSListIBlkPtr
stx .8+1
>LDYAI 256
jsr K.GetMem
bcs .9
>STYA ZPSListDBlkPtr
lda #0
sta (ZPSListDBlkPtr)
txa
sta (ZPSListIBlkPtr)
.8 lda #$ff SELF MODIFIED
.9 rts
*--------------------------------------
@ -316,6 +325,7 @@ SLIST.Search lda SLIST.hList
.1 iny
jsr SHARED.TXTPTR.GetY
beq .11
jsr SHARED.IsIDValid
bcc .1
@ -324,15 +334,16 @@ SLIST.Search lda SLIST.hList
stz SLIST.BytePtr
stz SLIST.BlockPtr
.2 >LDYA SLIST.KeyID
>STYA TXTPTR
ldy SLIST.BytePtr
.2 ldy SLIST.BytePtr
lda (ZPSListDBlkPtr),y
beq .9
cmp SLIST.KeyLen
bne .5
>LDYA SLIST.KeyID
>STYA SLIST.KeyID.Save
jsr SLIST.GetNextByte Skip Len
ldy #0
@ -351,10 +362,13 @@ SLIST.Search lda SLIST.hList
cpy SLIST.KeyLen
bne .3
>LDYA SLIST.KeyID.Save
clc
rts
.5 jsr SLIST.Select.I move back to ZPSListKeyID
.5 >LDYA SLIST.KeyID.Save
jsr SLIST.Select.I move back...
jsr SLIST.Next
bra .2
@ -366,15 +380,16 @@ SLIST.Select lda SLIST.hList
jsr K.GetMemPtr
>STYA ZPSListIBlkPtr
SLIST.Select.I ldy TXTPTR+1
sty SLIST.BlockPtr
>LDYA TXTPTR
SLIST.Select.I >STYA SLIST.KeyID
ldy SLIST.BlockPtr
lda (ZPSListIBlkPtr),y
jsr K.GetMemPtr
>STYA ZPSListDBlkPtr
lda TXTPTR
sta SLIST.BytePtr
rts
*--------------------------------------
SLIST.Next jsr SLIST.SkipKey