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 jsr CSH.NewKey
bcs .9 bcs .9
>STYA ZPVarID
ldx ZPVarType ldx ZPVarType
jsr CSH.SizeOf jsr CSH.SizeOf
sta ZPVarSizeOf sta ZPVarSizeOf
@ -924,10 +926,15 @@ CSH.AddVar >LDA.G CSH.hSymbols
>PUSHWI ZPVarDef >PUSHWI ZPVarDef
>PUSHWI 6 >PUSHWI 6
>SYSCALL SListAddData >SYSCALL SListAddData
bcs .9
lda #'*'
jsr DEBUG.KPL
.9 rts .9 rts
.99 .99 lda #CSH.E.OOM
.HS 2C BIT ABS
CSH.TMISMATCH lda #CSH.E.TMISMATCH CSH.TMISMATCH lda #CSH.E.TMISMATCH
sec sec
rts rts
@ -935,10 +942,9 @@ CSH.TMISMATCH lda #CSH.E.TMISMATCH
CSH.NewKey >PUSHA CSH.NewKey >PUSHA
>PUSHW ZPFileBufPtr >PUSHW ZPFileBufPtr
>SYSCALL SListNewKey >SYSCALL SListNewKey
>DEBUG
bcs .9 bcs .9
>STYA ZPVarID
txa txa
* clc * clc
adc ZPFileBufPtr adc ZPFileBufPtr
@ -967,19 +973,7 @@ CSH.SetVarValueFromStack
lda #'>' lda #'>'
>SYSCALL putchar jsr DEBUG.KPL
>PUSHW L.MSG.DBGPL
>PUSHW ZPVarDataPtr
ldy #3
.2 >PUSHB (ZPVarDataPtr),y
dey
bpl .2
>PUSHBI 6
>SYSCALL printf
>DEBUG
clc clc
rts rts
@ -1042,6 +1036,7 @@ CSH.Get >PUSHW ZPFileBufPtr
* Output : Stack, X = Var Type * Output : Stack, X = Var Type
*-------------------------------------- *--------------------------------------
CSH.GetVarValueOnStack CSH.GetVarValueOnStack
>DEBUG
phx phx
phy phy
pha pha
@ -1086,19 +1081,8 @@ CSH.GetVarValueOnStack
bne .3 bne .3
lda #'<' lda #'<'
>SYSCALL putchar jsr DEBUG.KPL
>PUSHW L.MSG.DBGPL
>PUSHW ZPVarDataPtr
ldy #3
.20 >PUSHB (ZPVarDataPtr),y
dey
bpl .20
>PUSHBI 6
>SYSCALL printf
>DEBUG
ldx ZPVarType ldx ZPVarType
clc X = Var Type clc X = Var Type
.9 rts .9 rts
@ -1365,6 +1349,23 @@ CSH.SIZEOF txa
.2 lda #2 .2 lda #2
rts 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 MAN
SAVE USR/SRC/BIN/CSH.S.CORE SAVE USR/SRC/BIN/CSH.S.CORE
LOAD USR/SRC/BIN/CSH.S 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.ECHOCRLF .DA MSG.ECHOCRLF
L.MSG.DEBUG .DA MSG.DEBUG L.MSG.DEBUG .DA MSG.DEBUG
L.MSG.ERR .DA MSG.ERR L.MSG.ERR .DA MSG.ERR
L.MSG.DBGPL .DA MSG.DBGPL L.MSG.DBGKPL .DA MSG.DBGKPL
.INB USR/SRC/BIN/CSH.R .INB USR/SRC/BIN/CSH.R
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
@ -303,7 +303,7 @@ MSG.USAGE .AS "Usage : CSH <option> file\r\n"
MSG.ECHOCRLF .AZ "\r\n" MSG.ECHOCRLF .AZ "\r\n"
MSG.DEBUG .AZ "pStack=%H" MSG.DEBUG .AZ "pStack=%H"
MSG.ERR .AZ "^\r\nLine #%D:" 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" OptionList .AS "DdTt"
OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace

View File

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