mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-11 07:29:00 +00:00
Kernel 0.93++
This commit is contained in:
parent
97ccc238b0
commit
272c301bc2
Binary file not shown.
@ -37,6 +37,14 @@ J.CSH.BOPS.SUBt .DA CSH.TMISMATCH
|
|||||||
.DA CSH.BOPS.SUBu16
|
.DA CSH.BOPS.SUBu16
|
||||||
.DA CSH.BOPS.SUBu32
|
.DA CSH.BOPS.SUBu32
|
||||||
.DA CSH.BOPS.SUBf
|
.DA CSH.BOPS.SUBf
|
||||||
|
J.CSH.BOPS.SHLt .DA CSH.TMISMATCH
|
||||||
|
.DA CSH.BOPS.SHL8
|
||||||
|
.DA CSH.BOPS.SHL16
|
||||||
|
.DA CSH.BOPS.SHL32
|
||||||
|
.DA CSH.BOPS.SHL8
|
||||||
|
.DA CSH.BOPS.SHL16
|
||||||
|
.DA CSH.BOPS.SHL32
|
||||||
|
.DA CSH.TMISMATCH
|
||||||
L.CSH.FN .DA CSH.FN
|
L.CSH.FN .DA CSH.FN
|
||||||
L.CSH.DIRS .DA CSH.DIRS
|
L.CSH.DIRS .DA CSH.DIRS
|
||||||
L.CSH.KW .DA CSH.KW
|
L.CSH.KW .DA CSH.KW
|
||||||
|
@ -46,7 +46,10 @@ CSH.Quit >LDA.G CSH.hSymbols
|
|||||||
|
|
||||||
>SYSCALL SListFree
|
>SYSCALL SListFree
|
||||||
|
|
||||||
.2 >LDA.G hFileBuf
|
.2 lda ZPhMacro
|
||||||
|
jsr .7
|
||||||
|
|
||||||
|
>LDA.G hFileBuf
|
||||||
jsr .7
|
jsr .7
|
||||||
|
|
||||||
>LDA.G CSH.hStack
|
>LDA.G CSH.hStack
|
||||||
@ -193,10 +196,25 @@ CSH.DIR.DEFINE jsr CSH.CheckSpace
|
|||||||
jsr CSH.CheckSpace
|
jsr CSH.CheckSpace
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>PUSHWI 0
|
ldy #$ff
|
||||||
|
|
||||||
|
.1 iny
|
||||||
|
lda (ZPFileBufPtr),y
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
cmp #C.CR
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
dey
|
||||||
|
|
||||||
|
.2 iny
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
>PUSHYA DataLen
|
||||||
|
|
||||||
>PUSHW ZPFileBufPtr
|
>PUSHW ZPFileBufPtr
|
||||||
>PUSHW ZPVarID
|
>PUSHW ZPVarID
|
||||||
>LDA.G CSH.hSymbols
|
>LDA.G CSH.hDefines
|
||||||
>SYSCALL SListAddData
|
>SYSCALL SListAddData
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
@ -579,7 +597,7 @@ CSH.ExpEval ldx ZPPtr1
|
|||||||
bne .19
|
bne .19
|
||||||
|
|
||||||
jsr CSH.GetNextCharNB skip )
|
jsr CSH.GetNextCharNB skip )
|
||||||
* >DEBUG
|
|
||||||
bcs .19
|
bcs .19
|
||||||
jmp .12
|
jmp .12
|
||||||
|
|
||||||
@ -588,6 +606,9 @@ CSH.ExpEval ldx ZPPtr1
|
|||||||
.20 jsr CSH.IsLetter define, Fnc or Var ?
|
.20 jsr CSH.IsLetter define, Fnc or Var ?
|
||||||
bcs .2
|
bcs .2
|
||||||
|
|
||||||
|
jsr CSH.GetDefine
|
||||||
|
bcc .10
|
||||||
|
|
||||||
jsr CSH.GetVar
|
jsr CSH.GetVar
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
@ -655,7 +676,7 @@ CSH.ExpEval ldx ZPPtr1
|
|||||||
* Old OP has precedence, compute ACC=ARG <BOP> ACC
|
* Old OP has precedence, compute ACC=ARG <BOP> ACC
|
||||||
.6 lda ZPPtr2 Var Type
|
.6 lda ZPPtr2 Var Type
|
||||||
ldx ZPPtr2+1 BOP
|
ldx ZPPtr2+1 BOP
|
||||||
jsr CSH.BOPExec
|
jsr CSH.BOP.EXEC
|
||||||
bcs .99
|
bcs .99
|
||||||
jsr CSH.GetCharNB
|
jsr CSH.GetCharNB
|
||||||
bcs .90
|
bcs .90
|
||||||
@ -664,7 +685,7 @@ CSH.ExpEval ldx ZPPtr1
|
|||||||
.8 ldx ZPPtr2+1
|
.8 ldx ZPPtr2+1
|
||||||
bmi .80
|
bmi .80
|
||||||
lda ZPPtr2 Var Type
|
lda ZPPtr2 Var Type
|
||||||
jsr CSH.BOPExec
|
jsr CSH.BOP.EXEC
|
||||||
bcc .80
|
bcc .80
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
@ -718,10 +739,6 @@ CSH.SavePtr >LDYA ZPFileBufPtr
|
|||||||
>STYA.G CSH.BufPtrSave
|
>STYA.G CSH.BufPtrSave
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.RestorePtr >LDYA.G CSH.BufPtrSave
|
|
||||||
>STYA ZPFileBufPtr
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CSH.LookupFN sec
|
CSH.LookupFN sec
|
||||||
.HS 90 BCC
|
.HS 90 BCC
|
||||||
CSH.LookupID clc
|
CSH.LookupID clc
|
||||||
@ -809,11 +826,13 @@ CSH.GetNumOnStack
|
|||||||
.10 cpx #CSH.T.FLOAT
|
.10 cpx #CSH.T.FLOAT
|
||||||
bcc .1
|
bcc .1
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
>PUSHWI ZPFileBufPtr
|
>PUSHWI ZPFileBufPtr
|
||||||
>LDYA ZPFileBufPtr
|
>LDYA ZPFileBufPtr
|
||||||
>SYSCALL StrToF
|
>SYSCALL StrToF
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 >PUSHBI 10
|
.1 >PUSHBI 10
|
||||||
|
|
||||||
>PUSHWI ZPFileBufPtr
|
>PUSHWI ZPFileBufPtr
|
||||||
@ -900,6 +919,7 @@ CSH.SetVarValueFromStack
|
|||||||
iny
|
iny
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>PUSHBI 0 Datalen HI
|
>PUSHBI 0 Datalen HI
|
||||||
pla
|
pla
|
||||||
inc
|
inc
|
||||||
@ -917,9 +937,38 @@ CSH.SetVarValueFromStack
|
|||||||
.2 >SYSCALL SListSetData
|
.2 >SYSCALL SListSetData
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CSH.GetDefine >PUSHW ZPFileBufPtr
|
||||||
|
>LDA.G CSH.hDefines
|
||||||
|
jsr CSH.Get
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
pha
|
||||||
|
>PUSHWZ From Start
|
||||||
|
>PUSHWZ len = 0 (string mode)
|
||||||
|
>PUSHWZ Allocate..
|
||||||
|
pla
|
||||||
|
>PUSHYA KeyID
|
||||||
|
>LDA.G CSH.hDefines
|
||||||
|
|
||||||
|
>SYSCALL SListGetData
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
stx ZPhMacro
|
||||||
|
|
||||||
|
lda ZPFileBufPtr
|
||||||
|
sta ZPFileBufPtrBak
|
||||||
|
lda ZPFileBufPtr+1
|
||||||
|
sta ZPFileBufPtrBak+1
|
||||||
|
|
||||||
|
txa
|
||||||
|
>SYSCALL getmemptr
|
||||||
|
>STYA ZPFileBufPtr
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
CSH.GetVar >PUSHW ZPFileBufPtr
|
CSH.GetVar >PUSHW ZPFileBufPtr
|
||||||
>LDA.G CSH.hSymbols
|
>LDA.G CSH.hSymbols
|
||||||
>SYSCALL SListLookup
|
CSH.Get >SYSCALL SListLookup
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
pha
|
pha
|
||||||
@ -1006,118 +1055,6 @@ CSH.IsValue0 cpx #CSH.T.FLOAT
|
|||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* A = Type, X = OP
|
|
||||||
*--------------------------------------
|
|
||||||
CSH.BOPExec jmp (J.CSH.BOPS,x)
|
|
||||||
*--------------------------------------
|
|
||||||
CSH.BOPS.ADD asl
|
|
||||||
tax
|
|
||||||
jmp (J.CSH.BOPS.ADDt,x)
|
|
||||||
|
|
||||||
CSH.BOPS.ADDi8
|
|
||||||
CSH.BOPS.ADDu8 clc
|
|
||||||
>PULLA
|
|
||||||
adc (pStack)
|
|
||||||
sta (pStack)
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
CSH.BOPS.ADDi16
|
|
||||||
CSH.BOPS.ADDu16 clc
|
|
||||||
ldy #1
|
|
||||||
>PULLA
|
|
||||||
adc (pStack),y
|
|
||||||
sta (pStack),y
|
|
||||||
>PULLA
|
|
||||||
adc (pStack),y
|
|
||||||
sta (pStack),y
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
CSH.BOPS.ADDi32
|
|
||||||
CSH.BOPS.ADDu32 >FPU ADD32
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
CSH.BOPS.ADDf >FPU FADD
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CSH.BOPS.SUB asl
|
|
||||||
tax
|
|
||||||
jmp (J.CSH.BOPS.SUBt,x)
|
|
||||||
|
|
||||||
CSH.BOPS.SUBi8
|
|
||||||
CSH.BOPS.SUBu8 sec
|
|
||||||
ldy #1
|
|
||||||
lda (pStack),y
|
|
||||||
sbc (pStack)
|
|
||||||
sta (pStack),y
|
|
||||||
inc pStack
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
CSH.BOPS.SUBi16
|
|
||||||
CSH.BOPS.SUBu16 sec
|
|
||||||
ldy #2
|
|
||||||
lda (pStack),y
|
|
||||||
sbc (pStack)
|
|
||||||
sta (pStack),y
|
|
||||||
iny
|
|
||||||
lda (pStack),y
|
|
||||||
ldy #1
|
|
||||||
sbc (pStack),y
|
|
||||||
inc pStack
|
|
||||||
inc pStack
|
|
||||||
sta (pStack),y
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
CSH.BOPS.SUBi32
|
|
||||||
CSH.BOPS.SUBu32 >FPU SUB32
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
CSH.BOPS.SUBf >FPU FSUB
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CSH.BOPS.MUL cmp #CSH.T.FLOAT
|
|
||||||
beq .8
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.8 >FPU FMULT
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CSH.BOPS.DIV cmp #CSH.T.FLOAT
|
|
||||||
beq .8
|
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.8 >FPU FDIV
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CSH.BOPS.MOD
|
|
||||||
CSH.BOPS.SHL
|
|
||||||
CSH.BOPS.SHR
|
|
||||||
CSH.BOPS.L
|
|
||||||
CSH.BOPS.G
|
|
||||||
CSH.BOPS.LE
|
|
||||||
CSH.BOPS.GE
|
|
||||||
CSH.BOPS.EQ
|
|
||||||
CSH.BOPS.NE
|
|
||||||
CSH.BOPS.AND
|
|
||||||
CSH.BOPS.OR
|
|
||||||
CSH.BOPS.EOR
|
|
||||||
CSH.BOPS.LAND
|
|
||||||
CSH.BOPS.LOR
|
|
||||||
|
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
* Stack
|
* Stack
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.CheckStack tax
|
CSH.CheckStack tax
|
||||||
@ -1263,9 +1200,30 @@ CSH.GetNextChar inc ZPFileBufPtr
|
|||||||
inc ZPFileBufPtr+1
|
inc ZPFileBufPtr+1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.GetChar lda (ZPFileBufPtr)
|
CSH.GetChar lda (ZPFileBufPtr)
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
lda ZPhMacro
|
||||||
beq .9
|
beq .9
|
||||||
clc
|
|
||||||
|
stz ZPhMacro
|
||||||
|
|
||||||
|
phx
|
||||||
|
phy
|
||||||
|
>SYSCALL freemem
|
||||||
|
ply
|
||||||
|
plx
|
||||||
|
|
||||||
|
lda ZPFileBufPtrBak
|
||||||
|
sta ZPFileBufPtr
|
||||||
|
|
||||||
|
lda ZPFileBufPtrBak+1
|
||||||
|
sta ZPFileBufPtr+1
|
||||||
|
|
||||||
|
bra CSH.GetChar
|
||||||
|
|
||||||
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #MLI.E.EOF
|
.9 lda #MLI.E.EOF
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@ -2,6 +2,203 @@ NEW
|
|||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
* A = Type, X = OP
|
||||||
|
*--------------------------------------
|
||||||
|
CSH.BOP.EXEC jmp (J.CSH.BOPS,x)
|
||||||
|
*--------------------------------------
|
||||||
|
CSH.BOPS.ADD asl
|
||||||
|
tax
|
||||||
|
jmp (J.CSH.BOPS.ADDt,x)
|
||||||
|
|
||||||
|
CSH.BOPS.ADDi8
|
||||||
|
CSH.BOPS.ADDu8 clc
|
||||||
|
>PULLA
|
||||||
|
adc (pStack)
|
||||||
|
sta (pStack)
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
CSH.BOPS.ADDi16
|
||||||
|
CSH.BOPS.ADDu16 clc
|
||||||
|
ldy #1
|
||||||
|
>PULLA
|
||||||
|
adc (pStack),y
|
||||||
|
sta (pStack),y
|
||||||
|
>PULLA
|
||||||
|
adc (pStack),y
|
||||||
|
sta (pStack),y
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
CSH.BOPS.ADDi32
|
||||||
|
CSH.BOPS.ADDu32 >FPU ADD32
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
CSH.BOPS.ADDf >FPU FADD
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CSH.BOPS.SUB asl
|
||||||
|
tax
|
||||||
|
jmp (J.CSH.BOPS.SUBt,x)
|
||||||
|
|
||||||
|
CSH.BOPS.SUBi8
|
||||||
|
CSH.BOPS.SUBu8 sec
|
||||||
|
ldy #1
|
||||||
|
lda (pStack),y
|
||||||
|
sbc (pStack)
|
||||||
|
sta (pStack),y
|
||||||
|
inc pStack
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
CSH.BOPS.SUBi16
|
||||||
|
CSH.BOPS.SUBu16 sec
|
||||||
|
ldy #2
|
||||||
|
lda (pStack),y
|
||||||
|
sbc (pStack)
|
||||||
|
sta (pStack),y
|
||||||
|
iny
|
||||||
|
lda (pStack),y
|
||||||
|
ldy #1
|
||||||
|
sbc (pStack),y
|
||||||
|
inc pStack
|
||||||
|
inc pStack
|
||||||
|
sta (pStack),y
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
CSH.BOPS.SUBi32
|
||||||
|
CSH.BOPS.SUBu32 >FPU SUB32
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
CSH.BOPS.SUBf >FPU FSUB
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CSH.BOPS.MUL cmp #CSH.T.FLOAT
|
||||||
|
beq .8
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.8 >FPU FMULT
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CSH.BOPS.DIV cmp #CSH.T.FLOAT
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.8 >FPU FDIV
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CSH.BOPS.MOD clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CSH.BOPS.SHL asl
|
||||||
|
tax
|
||||||
|
jmp (J.CSH.BOPS.SHLt,x)
|
||||||
|
|
||||||
|
CSH.BOPS.SHL8 lda (pStack)
|
||||||
|
tax
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
ldy #1
|
||||||
|
lda (pStack),y
|
||||||
|
|
||||||
|
.1 asl
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
sta (pStack),y
|
||||||
|
|
||||||
|
.8 inc pStack
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
CSH.BOPS.SHL16 lda (pStack)
|
||||||
|
tax
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
ldy #2
|
||||||
|
lda (pStack),y
|
||||||
|
|
||||||
|
iny
|
||||||
|
|
||||||
|
.1 asl
|
||||||
|
pha
|
||||||
|
|
||||||
|
lda (pStack),y
|
||||||
|
rol
|
||||||
|
sta (pStack),y
|
||||||
|
pla
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
dey
|
||||||
|
sta (pStack),y
|
||||||
|
|
||||||
|
.8 inc pStack
|
||||||
|
inc pStack
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
CSH.BOPS.SHL32 lda (pStack)
|
||||||
|
tax
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
ldy #4
|
||||||
|
lda (pStack),y
|
||||||
|
|
||||||
|
.1 asl
|
||||||
|
pha
|
||||||
|
|
||||||
|
ldy #5
|
||||||
|
lda (pStack),y
|
||||||
|
rol
|
||||||
|
sta (pStack),y
|
||||||
|
iny
|
||||||
|
lda (pStack),y
|
||||||
|
rol
|
||||||
|
sta (pStack),y
|
||||||
|
iny
|
||||||
|
lda (pStack),y
|
||||||
|
rol
|
||||||
|
sta (pStack),y
|
||||||
|
pla
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
ldy #4
|
||||||
|
sta (pStack),y
|
||||||
|
|
||||||
|
.8 inc pStack
|
||||||
|
inc pStack
|
||||||
|
inc pStack
|
||||||
|
inc pStack
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CSH.BOPS.SHR
|
||||||
|
CSH.BOPS.L
|
||||||
|
CSH.BOPS.G
|
||||||
|
CSH.BOPS.LE
|
||||||
|
CSH.BOPS.GE
|
||||||
|
CSH.BOPS.EQ
|
||||||
|
CSH.BOPS.NE
|
||||||
|
CSH.BOPS.AND
|
||||||
|
CSH.BOPS.OR
|
||||||
|
CSH.BOPS.EOR
|
||||||
|
CSH.BOPS.LAND
|
||||||
|
CSH.BOPS.LOR
|
||||||
|
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
EXEC.log >FPU LOG
|
EXEC.log >FPU LOG
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -19,6 +19,8 @@ NEW
|
|||||||
ZS.START
|
ZS.START
|
||||||
ZPFileBuf .BS 2
|
ZPFileBuf .BS 2
|
||||||
ZPFileBufPtr .BS 2
|
ZPFileBufPtr .BS 2
|
||||||
|
ZPFileBufPtrBak .BS 2
|
||||||
|
|
||||||
ZPCSHConst .BS 2
|
ZPCSHConst .BS 2
|
||||||
ZPCSHStack .BS 2
|
ZPCSHStack .BS 2
|
||||||
|
|
||||||
@ -31,6 +33,8 @@ ZPVarID .BS 2
|
|||||||
ZPVarData .BS 6
|
ZPVarData .BS 6
|
||||||
ZPVarType .BS 1
|
ZPVarType .BS 1
|
||||||
|
|
||||||
|
ZPhMacro .BS 1
|
||||||
|
|
||||||
ArgIndex .BS 1
|
ArgIndex .BS 1
|
||||||
|
|
||||||
ZS.END .ED
|
ZS.END .ED
|
||||||
@ -176,7 +180,16 @@ CS.QUIT jsr CSH.Quit
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintErrMsg >LDYA ZPFileBuf
|
PrintErrMsg lda ZPhMacro
|
||||||
|
beq .10
|
||||||
|
|
||||||
|
lda ZPFileBufPtrBak
|
||||||
|
sta ZPFileBufPtr
|
||||||
|
|
||||||
|
lda ZPFileBufPtrBak+1
|
||||||
|
sta ZPFileBufPtr+1
|
||||||
|
|
||||||
|
.10 >LDYA ZPFileBuf
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
stz ZPPtr2
|
stz ZPPtr2
|
||||||
stz ZPPtr2+1 Line counter
|
stz ZPPtr2+1 Line counter
|
||||||
|
@ -12,24 +12,12 @@ BUF.InsertA sta TmpByte
|
|||||||
jsr BUF.BufPtrSetup
|
jsr BUF.BufPtrSetup
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda BufPtr
|
|
||||||
clc
|
|
||||||
adc #1
|
|
||||||
sta BufPtrDst
|
|
||||||
lda BufPtr+1
|
|
||||||
adc #0
|
|
||||||
sta BufPtrDst+1
|
|
||||||
|
|
||||||
jsr BUF.MoveForwardTail
|
jsr BUF.MoveForwardTail
|
||||||
|
|
||||||
.2 lda TmpByte
|
.2 lda TmpByte
|
||||||
sta (BufPtr)
|
sta (BufPtr)
|
||||||
|
|
||||||
inc FileLen
|
jmp SCRN.Unsaved
|
||||||
bne .3
|
|
||||||
inc FileLen+1
|
|
||||||
|
|
||||||
.3 jmp SCRN.Unsaved
|
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
@ -53,15 +41,6 @@ BUF.InsertTAB >LDA.G FileX
|
|||||||
jsr BUF.BufPtrSetup
|
jsr BUF.BufPtrSetup
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda BufPtr
|
|
||||||
clc
|
|
||||||
adc TmpByte
|
|
||||||
sta BufPtrDst
|
|
||||||
|
|
||||||
lda BufPtr+1
|
|
||||||
adc #0
|
|
||||||
sta BufPtrDst+1
|
|
||||||
|
|
||||||
jsr BUF.MoveForwardTail
|
jsr BUF.MoveForwardTail
|
||||||
|
|
||||||
lda #C.SPACE
|
lda #C.SPACE
|
||||||
@ -73,15 +52,7 @@ BUF.InsertTAB >LDA.G FileX
|
|||||||
dey
|
dey
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
.4 lda FileLen
|
.4 jsr SCRN.UpdateStatusBar
|
||||||
clc
|
|
||||||
adc TmpByte
|
|
||||||
sta FileLen
|
|
||||||
bcc .5
|
|
||||||
|
|
||||||
inc FileLen+1
|
|
||||||
|
|
||||||
.5 jsr SCRN.UpdateStatusBar
|
|
||||||
|
|
||||||
jmp SCRN.Unsaved
|
jmp SCRN.Unsaved
|
||||||
|
|
||||||
@ -134,14 +105,6 @@ BUF.InsertClipboard
|
|||||||
jsr BUF.BufPtrSetup
|
jsr BUF.BufPtrSetup
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda BufPtr
|
|
||||||
clc
|
|
||||||
>ADC.G ClipboardLen
|
|
||||||
sta BufPtrDst
|
|
||||||
lda BufPtr+1
|
|
||||||
>ADC.G ClipboardLen+1
|
|
||||||
sta BufPtrDst+1
|
|
||||||
|
|
||||||
jsr BUF.MoveForwardTail
|
jsr BUF.MoveForwardTail
|
||||||
|
|
||||||
>LDA.G ClipboardLen
|
>LDA.G ClipboardLen
|
||||||
@ -172,17 +135,7 @@ BUF.InsertClipboard
|
|||||||
inc BufPtr+1
|
inc BufPtr+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.3 >LDA.G ClipboardLen
|
.3 jsr BUF.ResetSel
|
||||||
clc
|
|
||||||
adc FileLen
|
|
||||||
sta FileLen
|
|
||||||
|
|
||||||
iny
|
|
||||||
lda (pData),y
|
|
||||||
adc FileLen+1
|
|
||||||
sta FileLen+1
|
|
||||||
|
|
||||||
jsr BUF.ResetSel
|
|
||||||
jsr SCRN.UpdateStatusBar
|
jsr SCRN.UpdateStatusBar
|
||||||
jmp SCRN.Unsaved
|
jmp SCRN.Unsaved
|
||||||
|
|
||||||
@ -557,23 +510,60 @@ BUF.GetSelLen ldy #SelEnd
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* in : Y,A = cnt to insert at COffset
|
* in : Y,A = cnt to insert at COffset
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BUF.BufPtrSetup pha
|
BUF.BufPtrSetup >STYA TmpLen
|
||||||
|
|
||||||
tya
|
tya
|
||||||
clc
|
clc
|
||||||
|
|
||||||
adc FileLen
|
adc FileLen
|
||||||
tay
|
sta FileLen
|
||||||
|
|
||||||
pla
|
lda TmpLen+1
|
||||||
adc FileLen+1
|
adc FileLen+1
|
||||||
|
|
||||||
|
sta FileLen+1
|
||||||
|
|
||||||
cpy BufLen
|
cpy BufLen
|
||||||
sbc BufLen+1
|
sbc BufLen+1
|
||||||
|
|
||||||
|
bcc .8
|
||||||
|
|
||||||
|
>LDYA BufLen
|
||||||
|
inc
|
||||||
|
>SYSCALL getmem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
stx TmpByte
|
||||||
|
>STYA BufPtrDst
|
||||||
|
|
||||||
|
>LDYA.G BufBase
|
||||||
|
>STYA BufPtr
|
||||||
|
|
||||||
lda BUF.COffset
|
ldx BufLen+1
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.1 lda (BufPtr),y
|
||||||
|
sta (BufPtrDst),y
|
||||||
|
iny
|
||||||
|
bne .1
|
||||||
|
inc BufPtr
|
||||||
|
inc BufPtrDst
|
||||||
|
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
inc BufLen+1
|
||||||
|
|
||||||
|
>LDA.G hBuf
|
||||||
|
>SYSCALL freemem
|
||||||
|
|
||||||
|
lda TmpByte
|
||||||
|
>STA.G hBuf
|
||||||
|
>SYSCALL getmemptr
|
||||||
|
>STYA BufBase
|
||||||
|
|
||||||
|
.8 lda BUF.COffset
|
||||||
clc
|
clc
|
||||||
>ADC.G BufBase
|
>ADC.G BufBase
|
||||||
sta BufPtr
|
sta BufPtr
|
||||||
@ -582,13 +572,17 @@ BUF.BufPtrSetup pha
|
|||||||
>ADC.G BufBase+1
|
>ADC.G BufBase+1
|
||||||
sta BufPtr+1
|
sta BufPtr+1
|
||||||
|
|
||||||
|
lda BufPtr
|
||||||
|
clc
|
||||||
|
adc TmpLen
|
||||||
|
sta BufPtrDst
|
||||||
|
|
||||||
|
lda BufPtr+1
|
||||||
|
adc TmpLen+1
|
||||||
|
sta BufPtrDst+1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
.9 rts
|
||||||
|
|
||||||
.9 lda #E.BUF
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/BIN/EDIT.S.BUF
|
SAVE USR/SRC/BIN/EDIT.S.BUF
|
||||||
|
@ -13,7 +13,7 @@ FILE.New.1 >SYSCALL RealPath
|
|||||||
txa
|
txa
|
||||||
>STA.G hFileName
|
>STA.G hFileName
|
||||||
|
|
||||||
>LDYAI 4096
|
>LDYAI 1024
|
||||||
>STYA BufLen
|
>STYA BufLen
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -39,6 +39,7 @@ K.SListGetData sta SLIST.hList
|
|||||||
sbc ZPMemMgrSize Offset
|
sbc ZPMemMgrSize Offset
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta SLIST.nDataCnt
|
sta SLIST.nDataCnt
|
||||||
|
|
||||||
lda SLIST.DataLen+1
|
lda SLIST.DataLen+1
|
||||||
sbc ZPMemMgrSize+1
|
sbc ZPMemMgrSize+1
|
||||||
eor #$ff
|
eor #$ff
|
||||||
@ -53,10 +54,13 @@ K.SListGetData sta SLIST.hList
|
|||||||
lda ZPSListDataPtr
|
lda ZPSListDataPtr
|
||||||
ora ZPSListDataPtr+1
|
ora ZPSListDataPtr+1
|
||||||
bne .12
|
bne .12
|
||||||
|
|
||||||
>LDYA SLIST.DataLen
|
>LDYA SLIST.DataLen
|
||||||
|
|
||||||
iny
|
iny
|
||||||
bne .11
|
bne .11
|
||||||
inc +1 for ending 0
|
inc +1 for ending 0
|
||||||
|
|
||||||
.11 ldx #SYS.GetMem
|
.11 ldx #SYS.GetMem
|
||||||
jsr K.SYSCALL2.MAIN !!! Get a buffer In MAIN Mem !!!
|
jsr K.SYSCALL2.MAIN !!! Get a buffer In MAIN Mem !!!
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -67,6 +71,7 @@ K.SListGetData sta SLIST.hList
|
|||||||
ora ZPSListDataLen+1
|
ora ZPSListDataLen+1
|
||||||
sec
|
sec
|
||||||
beq .1 String Mode
|
beq .1 String Mode
|
||||||
|
|
||||||
lda ZPSListDataLen
|
lda ZPSListDataLen
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta SLIST.nBufCnt
|
sta SLIST.nBufCnt
|
||||||
@ -74,18 +79,25 @@ K.SListGetData sta SLIST.hList
|
|||||||
eor #$ff
|
eor #$ff
|
||||||
sta SLIST.nBufCnt+1
|
sta SLIST.nBufCnt+1
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.1 ror SLIST.bStringMode
|
.1 ror SLIST.bStringMode
|
||||||
|
|
||||||
stz ZPSListDataLen
|
stz ZPSListDataLen
|
||||||
stz ZPSListDataLen+1
|
stz ZPSListDataLen+1
|
||||||
|
|
||||||
.2 inc SLIST.nDataCnt
|
.2 inc SLIST.nDataCnt
|
||||||
bne .3
|
bne .3
|
||||||
inc SLIST.nDataCnt+1
|
inc SLIST.nDataCnt+1
|
||||||
beq .8
|
beq .8
|
||||||
.3 inc SLIST.nBufCnt
|
|
||||||
|
.3 bit SLIST.bStringMode
|
||||||
|
bmi .4 String mode : until CR
|
||||||
|
|
||||||
|
inc SLIST.nBufCnt
|
||||||
bne .4
|
bne .4
|
||||||
inc SLIST.nBufCnt+1
|
inc SLIST.nBufCnt+1
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.4 jsr SLIST.GetNextByte
|
.4 jsr SLIST.GetNextByte
|
||||||
bit SLIST.bStringMode
|
bit SLIST.bStringMode
|
||||||
bpl .5
|
bpl .5
|
||||||
|
Loading…
Reference in New Issue
Block a user