Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-02-21 17:31:46 +01:00
parent e7c10fcc24
commit 111c24d7bc
5 changed files with 54 additions and 19 deletions

Binary file not shown.

View File

@ -10,6 +10,7 @@ CSH.LookupOpt .BS 1
CSH.hDefines .BS 1 CSH.hDefines .BS 1
CSH.hSymbols .BS 1 CSH.hSymbols .BS 1
CSH.hTags .BS 1
CSH.hConst .BS 1 CSH.hConst .BS 1
CSH.ConstPtr .BS 2 CSH.ConstPtr .BS 2

View File

@ -90,6 +90,9 @@ CSH.KW >PSTR "if"
>PSTR "case" >PSTR "case"
>PSTR "break" >PSTR "break"
>PSTR "continue" >PSTR "continue"
>PSTR "typedef"
>PSTR "struct"
>PSTR "sizeof"
>PSTR "void" >PSTR "void"
>PSTR "float" >PSTR "float"
>PSTR "signed" char,int,long >PSTR "signed" char,int,long

View File

@ -59,6 +59,9 @@ J.CSH.KW .DA CSH.IF
.DA CSH.CASE .DA CSH.CASE
.DA CSH.BREAK .DA CSH.BREAK
.DA CSH.CONTINUE .DA CSH.CONTINUE
.DA CSH.TYPEDEF
.DA CSH.STRUCT
.DA CSH.SIZEOF
.DA CSH.VOID .DA CSH.VOID
.DA CSH.FLOAT .DA CSH.FLOAT
.DA CSH.SIGNED .DA CSH.SIGNED

View File

@ -5,13 +5,18 @@ NEW
CSH.Init >SYSCALL SListNew CSH.Init >SYSCALL SListNew
bcs .9 bcs .9
>STA.G CSH.hSymbols >STA.G CSH.hDefines
>SYSCALL SListNew >SYSCALL SListNew
bcs .9 bcs .9
>STA.G CSH.hDefines >STA.G CSH.hTags
>SYSCALL SListNew
bcs .9
>STA.G CSH.hSymbols
>LDYAI 256 >LDYAI 256
>SYSCALL GetMem >SYSCALL GetMem
bcs .9 bcs .9
@ -53,13 +58,19 @@ CSH.Quit >LDA.G CSH.hSymbols
>PUSHA >PUSHA
>SYSCALL SListFree >SYSCALL SListFree
.1 >LDA.G CSH.hDefines .1 >LDA.G CSH.hTags
beq .2 beq .2
>PUSHA >PUSHA
>SYSCALL SListFree >SYSCALL SListFree
.2 lda ZPhMacro .2 >LDA.G CSH.hDefines
beq .3
>PUSHA
>SYSCALL SListFree
.3 lda ZPhMacro
jsr .7 jsr .7
>LDA.G hFileBuf >LDA.G hFileBuf
@ -157,7 +168,7 @@ CSH.Run.1 cmp #C.CR empty line....
jsr CSH.fCall jsr CSH.fCall
bcs .9 bcs .9
jsr CSH.SIZEOF X = returned value type jsr CSH.GetVarSize X = returned value type
clc A = Sizeof clc A = Sizeof
adc pStack adc pStack
sta pStack Discard value on stack sta pStack Discard value on stack
@ -252,10 +263,9 @@ CSH.SkipLine jsr CSH.GetNextChar
bcs .9 bcs .9
cmp #C.CR cmp #C.CR
bne CSH.SkipLine bne CSH.SkipLine
clc clc
.9 rts
.9 rts
*-------------------------------------- *--------------------------------------
* Built in Keywords * Built in Keywords
*-------------------------------------- *--------------------------------------
@ -344,11 +354,34 @@ CSH.SWITCH
CSH.CASE CSH.CASE
CSH.BREAK CSH.BREAK
CSH.CONTINUE CSH.CONTINUE
CSH.TYPEDEF
CSH.SIZEOF
lda #CSH.E.SYNTAX lda #CSH.E.SYNTAX
sec sec
rts rts
*-------------------------------------- *--------------------------------------
CSH.STRUCT jsr CSH.GetCharNB
bcs .99
>LDA.G CSH.hTags
jsr CSH.NewKey
bcs .99
jsr CSH.GetNextCharNB
bcs .99
cmp #'{'
bne .99
.1 jsr CSH.GetNextCharNB
bcs .99
cmp #'}'
bne .1
jsr CSH.GetNextCharNB skip }
clc
.99 rts
*--------------------------------------
* Built in Types * Built in Types
*-------------------------------------- *--------------------------------------
CSH.SIGNED sec CSH.SIGNED sec
@ -498,7 +531,7 @@ CSH.fCall ldx ZPPtr1
lda (ZPPtr1) get current arg type lda (ZPPtr1) get current arg type
eor #CSH.T.VARIADIC eor #CSH.T.VARIADIC
bne .5 bne .5
jsr CSH.SIZEOF X = Var Type jsr CSH.GetVarSize X = Var Type
* clc * clc
adc ZPPtr2+1 adc ZPPtr2+1
@ -909,7 +942,7 @@ CSH.AddVar >LDA.G CSH.hSymbols
>STYA ZPVarID >STYA ZPVarID
ldx ZPVarType ldx ZPVarType
jsr CSH.SizeOf jsr CSH.GetVarSize
sta ZPVarSizeOf sta ZPVarSizeOf
lda ZPCSHData lda ZPCSHData
@ -1095,7 +1128,7 @@ CSH.GetVarValueOnStack
beq * beq *
.2 tax .2 tax
jsr CSH.SIZEOF jsr CSH.GetVarSize
pha pha
>LDA.G CSH.VarDef+4 >LDA.G CSH.VarDef+4
@ -1134,7 +1167,7 @@ CSH.IsValue0 cpx #CSH.T.FLOAT
.8 clc .8 clc
rts rts
.1 jsr CSH.SIZEOF .1 jsr CSH.GetVarSize
tax tax
lda #0 lda #0
@ -1364,7 +1397,7 @@ CSH.IsDigit10 cmp #'0'
*-------------------------------------- *--------------------------------------
* in : X = type, out : X = type, A = size * in : X = type, out : X = type, A = size
*-------------------------------------- *--------------------------------------
CSH.SIZEOF txa CSH.GetVarSize txa
and #CSH.Q.PPPOINTER and #CSH.Q.PPPOINTER
bne .2 bne .2
@ -1380,22 +1413,17 @@ CSH.SIZEOF txa
rts rts
*-------------------------------------- *--------------------------------------
DEBUG.VAR >SYSCALL putchar DEBUG.VAR >SYSCALL putchar
>PUSHW L.MSG.DBGVAR >PUSHW L.MSG.DBGVAR
>PUSHW ZPVarID >PUSHW ZPVarID
>PUSHW ZPVarType >PUSHW ZPVarType
>PUSHW ZPVarSizeOf >PUSHW ZPVarSizeOf
>PUSHW ZPVarDataPtr >PUSHW ZPVarDataPtr
ldy #3 ldy #3
.1 >PUSHB (ZPVarDataPtr),y .1 >PUSHB (ZPVarDataPtr),y
dey dey
bpl .1 bpl .1
>PUSHBI 12 >PUSHBI 12
>SYSCALL printf >SYSCALL printf
* >DEBUG
rts rts
*-------------------------------------- *--------------------------------------
MAN MAN