mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-09 14:55:05 +00:00
Kernel 0.93
This commit is contained in:
parent
26b0b2492a
commit
c29c556af8
@ -213,6 +213,75 @@ Remove an environment variable
|
|||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
|
||||||
|
# NewFIFO
|
||||||
|
|
||||||
|
## C
|
||||||
|
`int getpwuid(short int uid, S.PW* passwd );`
|
||||||
|
|
||||||
|
## ASM
|
||||||
|
`>PUSHW passwd`
|
||||||
|
`>LDYA size`
|
||||||
|
`>SYSCALL getpwuid`
|
||||||
|
|
||||||
|
## RETURN VALUE
|
||||||
|
A = hFIFO
|
||||||
|
|
||||||
|
# GetPWName
|
||||||
|
|
||||||
|
## C
|
||||||
|
`int getpwname(const char* name, S.PW* passwd );`
|
||||||
|
|
||||||
|
## ASM
|
||||||
|
`>PUSHW passwd`
|
||||||
|
`>LDYA name`
|
||||||
|
`>SYSCALL getpwname`
|
||||||
|
|
||||||
|
## RETURN VALUE
|
||||||
|
|
||||||
|
# PutPW
|
||||||
|
|
||||||
|
## C
|
||||||
|
`int putpw( S.PW* passwd );`
|
||||||
|
|
||||||
|
## ASM
|
||||||
|
`>LDYA passwd`
|
||||||
|
`>SYSCALL putpw`
|
||||||
|
|
||||||
|
## RETURN VALUE
|
||||||
|
|
||||||
|
# PutPW
|
||||||
|
|
||||||
|
## C
|
||||||
|
`int putpw( S.PW* passwd );`
|
||||||
|
|
||||||
|
## ASM
|
||||||
|
`>LDYA passwd`
|
||||||
|
`>SYSCALL putpw`
|
||||||
|
|
||||||
|
## RETURN VALUE
|
||||||
|
|
||||||
|
# PutPW
|
||||||
|
|
||||||
|
## C
|
||||||
|
`int putpw( S.PW* passwd );`
|
||||||
|
|
||||||
|
## ASM
|
||||||
|
`>LDYA passwd`
|
||||||
|
`>SYSCALL putpw`
|
||||||
|
|
||||||
|
## RETURN VALUE
|
||||||
|
|
||||||
|
# PutPW
|
||||||
|
|
||||||
|
## C
|
||||||
|
`int putpw( S.PW* passwd );`
|
||||||
|
|
||||||
|
## ASM
|
||||||
|
`>LDYA passwd`
|
||||||
|
`>SYSCALL putpw`
|
||||||
|
|
||||||
|
## RETURN VALUE
|
||||||
|
|
||||||
# LoadTxtFile
|
# LoadTxtFile
|
||||||
Load TXT a file in memory (with ending 0)
|
Load TXT a file in memory (with ending 0)
|
||||||
|
|
||||||
@ -458,6 +527,7 @@ Y,A = PTR to MemBlock
|
|||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
Y,A = Byte Count
|
Y,A = Byte Count
|
||||||
|
X = hMem (if DataPtr = 0)
|
||||||
|
|
||||||
# SListAddData
|
# SListAddData
|
||||||
|
|
||||||
|
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
NEW
|
NEW
|
||||||
PREFIX
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.Reset lda #$80
|
DIR.Reset lda #$80
|
||||||
@ -492,10 +492,11 @@ DIR.MA >LDA.G ASM.MA.ON
|
|||||||
jsr SRC.GetNextCharNB
|
jsr SRC.GetNextCharNB
|
||||||
beq DIR.OP.SYNERR
|
beq DIR.OP.SYNERR
|
||||||
|
|
||||||
jsr SYM.GetName
|
>PUSHW ZPLinePtr
|
||||||
|
>LDA.G MAC.hMacroList
|
||||||
|
>SYSCALL SListNewKey
|
||||||
bcs .99
|
bcs .99
|
||||||
|
>STYA MAC.MacroID
|
||||||
jsr MAC.New
|
|
||||||
|
|
||||||
.8 lda #$ff
|
.8 lda #$ff
|
||||||
>STA.G ASM.MA.ON
|
>STA.G ASM.MA.ON
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
NEW
|
NEW
|
||||||
PREFIX
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
* EXP.Modifiers:
|
* EXP.Modifiers:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
NEW
|
NEW
|
||||||
PREFIX
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
FIO.Init >LDYA L.ASM.6502
|
FIO.Init >LDYA L.ASM.6502
|
||||||
@ -14,7 +14,7 @@ FIO.LOAD.ASM.T >STYA ZPPtr2
|
|||||||
ldy #$ff
|
ldy #$ff
|
||||||
ldx #$ff
|
ldx #$ff
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
inx
|
inx
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
sta ASM.T.FILENAME,x
|
sta ASM.T.FILENAME,x
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
NEW
|
NEW
|
||||||
PREFIX
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
MAC.Init >SYSCALL SListNew
|
MAC.Init >SYSCALL SListNew
|
||||||
@ -56,69 +56,41 @@ MAC.Quit >LDA.G MAC.hCtxBuf
|
|||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
MAC.New lda #0
|
MAC.AddChar tax
|
||||||
|
|
||||||
|
phy
|
||||||
|
|
||||||
|
>LDA.G MAC.BufPtr
|
||||||
tay
|
tay
|
||||||
|
|
||||||
.1 sta (ZPMacroBuf),y
|
|
||||||
iny
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
rts
|
|
||||||
*---------------------------------------
|
|
||||||
MAC.AddChar >LDA.G ASM.PASS If Pass#2, ignore
|
|
||||||
bne .8
|
|
||||||
|
|
||||||
tax
|
|
||||||
lda (ZPMacroBuf)
|
|
||||||
cmp #254
|
|
||||||
beq .9 CS if EQ
|
|
||||||
|
|
||||||
inc
|
|
||||||
sta (ZPMacroBuf)
|
|
||||||
|
|
||||||
tay
|
|
||||||
txa
|
txa
|
||||||
|
|
||||||
sta (ZPMacroBuf),y
|
sta (ZPMacroBuf),y
|
||||||
|
>INC.G MAC.BufPtr
|
||||||
|
ply
|
||||||
|
|
||||||
tax
|
txa
|
||||||
beq .1
|
|
||||||
|
|
||||||
* >SYSCALL PutChar
|
|
||||||
.8 clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1
|
|
||||||
* lda #13
|
|
||||||
* >SYSCALL PutChar
|
|
||||||
* lda #10
|
|
||||||
* >SYSCALL PutChar
|
|
||||||
|
|
||||||
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
*---------------------------------------
|
|
||||||
MAC.Store >LDA.G ASM.PASS If Pass#2, ignore
|
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
lda (ZPMacroBuf)
|
>LDA.G MAC.BufPtr
|
||||||
beq .8
|
tay
|
||||||
|
lda #0
|
||||||
|
|
||||||
>PUSHB.G MAC.hMacroList
|
>PUSHYA
|
||||||
>PUSHW ZPNameBuf
|
|
||||||
>PUSHW ZPMacroBuf
|
>PUSHW ZPMacroBuf
|
||||||
>SYSCALL SListAdd
|
>PUSHW.G MAC.MacroID
|
||||||
|
>LDA.G MAC.hMacroList
|
||||||
|
>SYSCALL SListAddData
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
MAC.Lookup >PUSHB.G MAC.hMacroList
|
MAC.Lookup >PUSHW ZPMacroBuf
|
||||||
>PUSHW ZPLinePtr
|
>PUSHW ZPLinePtr
|
||||||
>PUSHW ZPMacroBuf
|
>LDA.G MAC.hMacroList
|
||||||
>SYSCALL SListLookup
|
>SYSCALL SListLookup
|
||||||
bcs .9
|
bcs .9
|
||||||
|
txa
|
||||||
adc ZPLinePtr
|
adc ZPLinePtr
|
||||||
sta ZPLinePtr
|
sta ZPLinePtr
|
||||||
bcc .8
|
bcc .8
|
||||||
@ -128,7 +100,8 @@ MAC.Lookup >PUSHB.G MAC.hMacroList
|
|||||||
.8
|
.8
|
||||||
.9 rts
|
.9 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
MAC.NewOrGetCtx
|
MAC.NewOrGetCtx sec
|
||||||
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
NEW
|
NEW
|
||||||
PREFIX
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
OUT.Init lda #20
|
OUT.Init lda #20
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
NEW
|
NEW
|
||||||
PREFIX
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.ParseLine jsr OUT.Reset
|
SRC.ParseLine jsr OUT.Reset
|
||||||
@ -30,6 +30,12 @@ SRC.ParseLine jsr OUT.Reset
|
|||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SRC.ParseLine.Macro
|
SRC.ParseLine.Macro
|
||||||
|
>LDA.G ASM.PASS If Pass#2, ignore
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
>STZ.G MAC.BufPtr
|
||||||
|
sta (ZPMacroBuf)
|
||||||
|
|
||||||
lda (ZPLinePtr)
|
lda (ZPLinePtr)
|
||||||
cmp #' ' No label, scan to DIR/OP if any
|
cmp #' ' No label, scan to DIR/OP if any
|
||||||
bne .1
|
bne .1
|
||||||
@ -77,10 +83,7 @@ SRC.ParseLine.Macro
|
|||||||
cmp #'m'
|
cmp #'m'
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
.22 jsr MAC.Store
|
.22 >STZ.G ASM.MA.ON
|
||||||
bcs SRC.ParseLine.RTS
|
|
||||||
|
|
||||||
>STZ.G ASM.MA.ON
|
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
@ -119,14 +122,9 @@ SRC.ParseLine.Macro
|
|||||||
cmp #' '
|
cmp #' '
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
lda #0
|
bra .80 End of Line
|
||||||
jmp MAC.AddChar End of Line
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.99 lda #ERR.MACRO.TOO.BIG
|
|
||||||
sec
|
|
||||||
|
|
||||||
|
.99
|
||||||
SRC.ParseLine.RTS
|
SRC.ParseLine.RTS
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
NEW
|
NEW
|
||||||
PREFIX
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
* Global Symbol Record: (6+ bytes)
|
* Global Symbol Record: (6+ bytes)
|
||||||
@ -80,25 +80,23 @@ SYM.Dump stz ZPLinePtr
|
|||||||
>LDYA L.MSG.SYMBOLS
|
>LDYA L.MSG.SYMBOLS
|
||||||
>SYSCALL puts
|
>SYSCALL puts
|
||||||
|
|
||||||
.1 >PUSHB.G SYM.hGlobalList
|
.1 >PUSHW ZPNameBuf
|
||||||
>PUSHW ZPLinePtr
|
>PUSHW ZPLinePtr
|
||||||
>PUSHW ZPGlobalBuf
|
>LDA.G SYM.hGlobalList
|
||||||
>PUSHW ZPNameBuf
|
|
||||||
>SYSCALL SListGetByID
|
>SYSCALL SListGetByID
|
||||||
bcc .10
|
bcc .10
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.10 stx ZPLinePtr Save Next ID
|
.10 >STYA ZPLinePtr Save Next ID
|
||||||
sty ZPLinePtr+1
|
|
||||||
|
|
||||||
>LDA.G ASM.LI.ON
|
>LDA.G ASM.LI.ON
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
ldy #SYMG.F Get Symbol Size
|
ldy #SYMG.F Get Symbol Size
|
||||||
lda (ZPGlobalBuf),y
|
lda (ZPGlobalBuf),y
|
||||||
and #SYMG.F.SIZE
|
* and #SYMG.F.SIZE
|
||||||
|
|
||||||
>PUSHA Byte Count
|
>PUSHA Byte Count
|
||||||
tax
|
tax
|
||||||
@ -207,12 +205,12 @@ SYM.GetGlobal >PUSHB.G SYM.hGlobalList
|
|||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SYM.LookupGlobal
|
SYM.LookupGlobal
|
||||||
>PUSHB.G SYM.hGlobalList
|
|
||||||
>PUSHW ZPLinePtr
|
>PUSHW ZPLinePtr
|
||||||
>PUSHW ZPLookupBuf
|
>LDA.G SYM.hGlobalList
|
||||||
>SYSCALL SListLookup
|
>SYSCALL SListLookup
|
||||||
bcs .9
|
bcs .9
|
||||||
|
>STYA.G SYM.GlobalID
|
||||||
|
txa
|
||||||
adc ZPLinePtr
|
adc ZPLinePtr
|
||||||
sta ZPLinePtr
|
sta ZPLinePtr
|
||||||
bcc .8
|
bcc .8
|
||||||
@ -225,19 +223,21 @@ SYM.LookupGlobal
|
|||||||
SYM.FlushGlobal lda (ZPGlobalBuf)
|
SYM.FlushGlobal lda (ZPGlobalBuf)
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
>PUSHB.G SYM.hGlobalList
|
|
||||||
|
|
||||||
>LDA.G ASM.PASS
|
>LDA.G ASM.PASS
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
>PUSHW ZPNameBuf
|
>PUSHW ZPNameBuf
|
||||||
>PUSHW ZPGlobalBuf
|
>PUSHW ZPGlobalBuf
|
||||||
>SYSCALL SListAdd
|
>PUSHW.G SYM.GlobalID
|
||||||
|
>LDA.G SYM.hGlobalList
|
||||||
|
>SYSCALL SListAddData
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.2 >PUSHW.G SYM.GlobalID
|
.2 >PUSHW ZPGlobalBuf
|
||||||
>PUSHW ZPGlobalBuf
|
>PUSHW.G SYM.GlobalID
|
||||||
>SYSCALL SListUpdateByID
|
>LDA.G SYM.hGlobalList
|
||||||
|
>SYSCALL SListSetData
|
||||||
|
|
||||||
.3 bcs .9
|
.3 bcs .9
|
||||||
lda #0
|
lda #0
|
||||||
@ -333,7 +333,7 @@ SYM.Lookup2Acc ldy #SYMG.F+4
|
|||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda (ZPLookupBuf),y
|
lda (ZPLookupBuf),y
|
||||||
and #SYMG.F.SIZE
|
* and #SYMG.F.SIZE
|
||||||
sta SRC.ACC.SIZE
|
sta SRC.ACC.SIZE
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
NEW
|
NEW
|
||||||
PREFIX
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
@ -26,7 +26,7 @@ ZPRPtr .EQ ZPBIN+20
|
|||||||
ZPOpsPtr .EQ ZPBIN+22
|
ZPOpsPtr .EQ ZPBIN+22
|
||||||
ZPOpDefPtr .EQ ZPBIN+24
|
ZPOpDefPtr .EQ ZPBIN+24
|
||||||
|
|
||||||
ZPTmpBuf .EQ ZPBIN+16
|
ZPTmpBuf .EQ ZPBIN+26
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
* Symbols
|
* Symbols
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
@ -246,10 +246,18 @@ CS.INIT ldy #S.PS.ARGC
|
|||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
lda #ERR.INV.ARGS
|
lda #ERR.INV.ARGS
|
||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >SYSCALL GetChar
|
CS.RUN ldy #S.PS.hStdIn
|
||||||
bcs .13 no char
|
lda (pPS),y
|
||||||
|
>SYSCALL feof
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
tay
|
||||||
|
beq .13
|
||||||
|
|
||||||
|
>SYSCALL GetChar
|
||||||
|
bcs .99
|
||||||
|
|
||||||
cmp #$03 Ctrl-C
|
cmp #$03 Ctrl-C
|
||||||
beq .99 Abort....beq=CS
|
beq .99 Abort....beq=CS
|
||||||
@ -268,7 +276,7 @@ CS.RUN >SYSCALL GetChar
|
|||||||
.13 >LDA.G bPause
|
.13 >LDA.G bPause
|
||||||
bpl .11
|
bpl .11
|
||||||
clc
|
clc
|
||||||
rts
|
.99 rts
|
||||||
|
|
||||||
.11 >STZ.G bPause
|
.11 >STZ.G bPause
|
||||||
|
|
||||||
@ -313,7 +321,7 @@ CS.RUN >SYSCALL GetChar
|
|||||||
inc
|
inc
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
clc
|
clc
|
||||||
.99 rts
|
rts
|
||||||
|
|
||||||
.1 jsr SYM.Dump
|
.1 jsr SYM.Dump
|
||||||
>PUSHW ZPLinePtr
|
>PUSHW ZPLinePtr
|
||||||
@ -539,6 +547,8 @@ MAC.hMacroList .BS 1
|
|||||||
MAC.hMacroBuf .BS 1
|
MAC.hMacroBuf .BS 1
|
||||||
MAC.hCtxList .BS 1
|
MAC.hCtxList .BS 1
|
||||||
MAC.hCtxBuf .BS 1
|
MAC.hCtxBuf .BS 1
|
||||||
|
MAC.MacroID .BS 2
|
||||||
|
MAC.BufPtr .BS 1
|
||||||
MAC.CtxID .BS 2
|
MAC.CtxID .BS 2
|
||||||
|
|
||||||
OUT.PC .BS 4
|
OUT.PC .BS 4
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
NEW
|
NEW
|
||||||
PREFIX /A2OSX.BUILD
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
T.ADDR.MODES .EQ *
|
T.ADDR.MODES .EQ *
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
NEW
|
NEW
|
||||||
PREFIX /A2OSX.BUILD
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
T.OPCODES .EQ *
|
T.OPCODES .EQ *
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
NEW
|
NEW
|
||||||
PREFIX /A2OSX.BUILD
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OR $0
|
.OR $0
|
||||||
|
@ -41,7 +41,7 @@ CMD.PUSHD >LDA.G PUSHD.STACK
|
|||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
lda (ZPArgVBufPtr)
|
lda (ZPArgVBufPtr)
|
||||||
bne CMD.CD.1
|
bne CMD.CD.0
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
@ -70,7 +70,7 @@ CMD.PWD ldy #S.PS.hPREFIX
|
|||||||
CMD.CD lda (ZPArgVBufPtr)
|
CMD.CD lda (ZPArgVBufPtr)
|
||||||
beq CMD.CD.HOME
|
beq CMD.CD.HOME
|
||||||
|
|
||||||
>LDYA ZPArgVBufPtr
|
CMD.CD.0 >LDYA ZPArgVBufPtr
|
||||||
bra CMD.CD.1
|
bra CMD.CD.1
|
||||||
|
|
||||||
CMD.CD.HOME >LDYA L.ENV.HOME
|
CMD.CD.HOME >LDYA L.ENV.HOME
|
||||||
|
@ -346,12 +346,13 @@ CORE.ExecFunc >STYA TmpWord KeyID
|
|||||||
|
|
||||||
jsr CORE.SkipLine
|
jsr CORE.SkipLine
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
>PUSHWI 0 From Start
|
>PUSHWI 0 From Start
|
||||||
>PUSHWI 0 TextMode
|
>PUSHWI $ffff all
|
||||||
>PUSHWI 0 Allocate..
|
>PUSHWI 0 Allocate..
|
||||||
>PUSHW TmpWord KeyID
|
>PUSHW TmpWord KeyID
|
||||||
>LDA.G hFuncList
|
>LDA.G hFuncList
|
||||||
>DEBUG
|
|
||||||
>SYSCALL SListGetData
|
>SYSCALL SListGetData
|
||||||
bcs .9
|
bcs .9
|
||||||
txa
|
txa
|
||||||
|
@ -110,6 +110,7 @@ E.IUSR .EQ $F2 Invalid User
|
|||||||
E.NOKEY .EQ $EF Undefined Key
|
E.NOKEY .EQ $EF Undefined Key
|
||||||
E.DUPKEY .EQ $EE Duplicate Key
|
E.DUPKEY .EQ $EE Duplicate Key
|
||||||
E.NODATA .EQ $ED No Data
|
E.NODATA .EQ $ED No Data
|
||||||
|
E.DATALEN .EQ $EC Data Length Mismatch
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* A2osX.SYSCALL Constants
|
* A2osX.SYSCALL Constants
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -14,34 +14,9 @@ X.SLIST jmp (.1-SYS.SListGetData,x)
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLIST.GetData jsr SLIST.Select
|
SLIST.GetData jsr SLIST.Select
|
||||||
jsr SLIST.SkipKey
|
jsr SLIST.SkipKey
|
||||||
|
|
||||||
jsr SLIST.GetDataLen
|
jsr SLIST.GetDataLen
|
||||||
|
|
||||||
lda ZPSListDataPtr
|
lda SLIST.DataLen
|
||||||
ora ZPSListDataPtr+1
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
>LDYA SLIST.DataLen
|
|
||||||
>STYA ZPSListDataLen
|
|
||||||
jsr MEM.GetMainBuf
|
|
||||||
bcs .9
|
|
||||||
stx .82+1
|
|
||||||
>STYA ZPSListDataPtr
|
|
||||||
bra .12
|
|
||||||
|
|
||||||
.10 lda ZPMemMgrSize Get Offset
|
|
||||||
cmp SLIST.DataLen
|
|
||||||
lda ZPMemMgrSize+1
|
|
||||||
sbc SLIST.DataLen+1
|
|
||||||
bcc .11
|
|
||||||
lda #E.NODATA
|
|
||||||
.9 rts
|
|
||||||
|
|
||||||
.11 lda ZPMemMgrSize
|
|
||||||
ldx ZPMemMgrSize+1
|
|
||||||
jsr SLIST.SkipDataAX
|
|
||||||
|
|
||||||
.12 lda SLIST.DataLen
|
|
||||||
sec
|
sec
|
||||||
sbc ZPMemMgrSize
|
sbc ZPMemMgrSize
|
||||||
eor #$ff
|
eor #$ff
|
||||||
@ -51,8 +26,24 @@ SLIST.GetData jsr SLIST.Select
|
|||||||
eor #$ff
|
eor #$ff
|
||||||
sta SLIST.nDataCnt+1 Data remaining
|
sta SLIST.nDataCnt+1 Data remaining
|
||||||
|
|
||||||
lda ZPSListDataLen
|
bcc .99
|
||||||
ora ZPSListDataLen
|
|
||||||
|
.10 lda ZPMemMgrSize
|
||||||
|
ldx ZPMemMgrSize+1
|
||||||
|
jsr SLIST.SkipDataAX
|
||||||
|
|
||||||
|
lda ZPSListDataPtr
|
||||||
|
ora ZPSListDataPtr+1
|
||||||
|
bne .12
|
||||||
|
|
||||||
|
>LDYA SLIST.DataLen
|
||||||
|
jsr MEM.GetMainBuf
|
||||||
|
bcs .9
|
||||||
|
stx .82+1
|
||||||
|
>STYA ZPSListDataPtr
|
||||||
|
|
||||||
|
.12 lda ZPSListDataLen
|
||||||
|
ora ZPSListDataLen+1
|
||||||
sec
|
sec
|
||||||
beq .1 String Mode
|
beq .1 String Mode
|
||||||
|
|
||||||
@ -94,7 +85,7 @@ SLIST.GetData jsr SLIST.Select
|
|||||||
|
|
||||||
.99 lda #E.NODATA
|
.99 lda #E.NODATA
|
||||||
sec
|
sec
|
||||||
rts
|
.9 rts
|
||||||
|
|
||||||
.7 jsr SLIST.GetNextByte
|
.7 jsr SLIST.GetNextByte
|
||||||
|
|
||||||
@ -148,7 +139,11 @@ SLIST.AddData jsr SLIST.Select
|
|||||||
bcc .1
|
bcc .1
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 jsr SLIST.Select.I go back to DataLen Location
|
.8 lda #0
|
||||||
|
jsr SLIST.AddBlockByte Make sure 0 follow DATA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jsr SLIST.Select.I go back to DataLen Location
|
||||||
|
|
||||||
lda SLIST.DataLen
|
lda SLIST.DataLen
|
||||||
jsr SLIST.SetBlockByte
|
jsr SLIST.SetBlockByte
|
||||||
@ -158,45 +153,66 @@ SLIST.AddData jsr SLIST.Select
|
|||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLIST.SetData
|
SLIST.SetData jsr SLIST.Select
|
||||||
clc
|
jsr SLIST.SkipKey
|
||||||
|
jsr SLIST.GetDataLen
|
||||||
|
|
||||||
|
lda SLIST.DataLen
|
||||||
|
cmp ZPSListDataLen
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
ldx SLIST.DataLen+1
|
||||||
|
cpx ZPSListDataLen+1
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
eor #$ff
|
||||||
|
sta SLIST.nDataCnt
|
||||||
|
txa
|
||||||
|
eor #$ff
|
||||||
|
sta SLIST.nDataCnt+1
|
||||||
|
|
||||||
|
.1 inc SLIST.nDataCnt
|
||||||
|
bne .2
|
||||||
|
inc SLIST.nDataCnt+1
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
.2 jsr MEM.GetDataByte
|
||||||
|
jsr SLIST.SetBlockByte
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 lda #E.DATALEN
|
||||||
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLIST.GetByID jsr SLIST.Select
|
SLIST.GetByID jsr SLIST.Select
|
||||||
|
|
||||||
jsr SLIST.GetBlockByte
|
jsr SLIST.GetNextByte
|
||||||
|
|
||||||
tax
|
tax
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
|
.1 jsr SLIST.GetNextByte
|
||||||
jsr MEM.SetKeyCharY
|
jsr MEM.SetKeyCharY
|
||||||
|
|
||||||
.1 jsr SLIST.GetNextBlockByte
|
|
||||||
iny
|
iny
|
||||||
jsr MEM.SetKeyCharY
|
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jsr SLIST.GetNextBlockByte
|
txa lda #0
|
||||||
|
jsr MEM.SetKeyCharY
|
||||||
|
|
||||||
tax
|
jsr SLIST.SkipData
|
||||||
|
|
||||||
jsr MEM.SetDataByte
|
|
||||||
|
|
||||||
.2 jsr SLIST.GetNextBlockByte
|
|
||||||
jsr MEM.SetDataByte
|
|
||||||
dex
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
jsr SLIST.GetNextBlockByte
|
|
||||||
|
|
||||||
clc
|
|
||||||
.HS B0 BCS
|
|
||||||
.9 sec
|
|
||||||
>LDYA SLIST.KeyID
|
>LDYA SLIST.KeyID
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 lda #E.NOKEY
|
||||||
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLIST.NewKey jsr SLIST.Search
|
SLIST.NewKey jsr SLIST.Search
|
||||||
@ -305,16 +321,15 @@ SLIST.Search jsr K.GetMemPtr
|
|||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
sty SLIST.KeyLen
|
sty SLIST.KeyLen
|
||||||
|
>DEBUG
|
||||||
ldy SLIST.BlockPtr
|
|
||||||
lda (ZPSListDBlkPtr),y
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
.2 >LDYA SLIST.KeyID
|
.2 >LDYA SLIST.KeyID
|
||||||
>STYA ZPSListKeyID
|
>STYA ZPSListKeyID
|
||||||
|
|
||||||
ldy SLIST.BlockPtr
|
ldy SLIST.BytePtr
|
||||||
lda (ZPSListDBlkPtr),y
|
lda (ZPSListDBlkPtr),y
|
||||||
|
beq .9
|
||||||
|
|
||||||
cmp SLIST.KeyLen
|
cmp SLIST.KeyLen
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
@ -402,39 +417,6 @@ SLIST.GetNextByte
|
|||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLIST.GetNextBlockByte
|
|
||||||
phy
|
|
||||||
ldy SLIST.BytePtr
|
|
||||||
iny
|
|
||||||
beq .1
|
|
||||||
|
|
||||||
lda (ZPSListDBlkPtr),y
|
|
||||||
sty SLIST.BlockPtr
|
|
||||||
ply
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 ldy SLIST.BytePtr
|
|
||||||
iny
|
|
||||||
lda (ZPSListIBlkPtr),y
|
|
||||||
beq .9 Exit with A=0
|
|
||||||
|
|
||||||
sty SLIST.BytePtr
|
|
||||||
|
|
||||||
jsr K.GetMemPtr
|
|
||||||
>STYA ZPSListDBlkPtr
|
|
||||||
stz SLIST.BlockPtr
|
|
||||||
|
|
||||||
lda (ZPSListDBlkPtr)
|
|
||||||
.9 ply
|
|
||||||
rts
|
|
||||||
|
|
||||||
SLIST.GetBlockByte
|
|
||||||
phy
|
|
||||||
ldy SLIST.BlockPtr
|
|
||||||
lda (ZPSListDBlkPtr),y
|
|
||||||
ply
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
SLIST.AddBlockByte
|
SLIST.AddBlockByte
|
||||||
phy
|
phy
|
||||||
ldy SLIST.BytePtr
|
ldy SLIST.BytePtr
|
||||||
|
Loading…
Reference in New Issue
Block a user