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