Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-03-18 16:48:16 +00:00
parent 26b0b2492a
commit c29c556af8
17 changed files with 226 additions and 190 deletions

View File

@ -213,6 +213,75 @@ Remove an environment variable
## 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
Load TXT a file in memory (with ending 0)
@ -458,6 +527,7 @@ Y,A = PTR to MemBlock
## RETURN VALUE
Y,A = Byte Count
X = hMem (if DataPtr = 0)
# SListAddData

Binary file not shown.

View File

@ -1,5 +1,5 @@
NEW
PREFIX
PREFIX
AUTO 4,1
*---------------------------------------
DIR.Reset lda #$80
@ -492,10 +492,11 @@ DIR.MA >LDA.G ASM.MA.ON
jsr SRC.GetNextCharNB
beq DIR.OP.SYNERR
jsr SYM.GetName
>PUSHW ZPLinePtr
>LDA.G MAC.hMacroList
>SYSCALL SListNewKey
bcs .99
jsr MAC.New
>STYA MAC.MacroID
.8 lda #$ff
>STA.G ASM.MA.ON

View File

@ -1,5 +1,5 @@
NEW
PREFIX
PREFIX
AUTO 4,1
*---------------------------------------
* EXP.Modifiers:

View File

@ -1,5 +1,5 @@
NEW
PREFIX
PREFIX
AUTO 4,1
*---------------------------------------
FIO.Init >LDYA L.ASM.6502
@ -14,7 +14,7 @@ FIO.LOAD.ASM.T >STYA ZPPtr2
ldy #$ff
ldx #$ff
.1 iny
.1 iny
inx
lda (ZPPtr1),y
sta ASM.T.FILENAME,x

View File

@ -1,5 +1,5 @@
NEW
PREFIX
PREFIX
AUTO 4,1
*---------------------------------------
MAC.Init >SYSCALL SListNew
@ -56,69 +56,41 @@ MAC.Quit >LDA.G MAC.hCtxBuf
.8 clc
rts
*---------------------------------------
MAC.New lda #0
MAC.AddChar tax
phy
>LDA.G MAC.BufPtr
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
sta (ZPMacroBuf),y
>INC.G MAC.BufPtr
ply
tax
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
txa
bne .8
lda (ZPMacroBuf)
beq .8
>PUSHB.G MAC.hMacroList
>PUSHW ZPNameBuf
>LDA.G MAC.BufPtr
tay
lda #0
>PUSHYA
>PUSHW ZPMacroBuf
>SYSCALL SListAdd
>PUSHW.G MAC.MacroID
>LDA.G MAC.hMacroList
>SYSCALL SListAddData
rts
.8 clc
rts
*---------------------------------------
MAC.Lookup >PUSHB.G MAC.hMacroList
MAC.Lookup >PUSHW ZPMacroBuf
>PUSHW ZPLinePtr
>PUSHW ZPMacroBuf
>LDA.G MAC.hMacroList
>SYSCALL SListLookup
bcs .9
txa
adc ZPLinePtr
sta ZPLinePtr
bcc .8
@ -128,7 +100,8 @@ MAC.Lookup >PUSHB.G MAC.hMacroList
.8
.9 rts
*---------------------------------------
MAC.NewOrGetCtx
MAC.NewOrGetCtx sec
rts
*---------------------------------------
*---------------------------------------
MAN

View File

@ -1,5 +1,5 @@
NEW
PREFIX
PREFIX
AUTO 4,1
*---------------------------------------
OUT.Init lda #20

View File

@ -1,5 +1,5 @@
NEW
PREFIX
PREFIX
AUTO 4,1
*---------------------------------------
SRC.ParseLine jsr OUT.Reset
@ -30,6 +30,12 @@ SRC.ParseLine jsr OUT.Reset
rts
*---------------------------------------
SRC.ParseLine.Macro
>LDA.G ASM.PASS If Pass#2, ignore
bne .8
>STZ.G MAC.BufPtr
sta (ZPMacroBuf)
lda (ZPLinePtr)
cmp #' ' No label, scan to DIR/OP if any
bne .1
@ -77,10 +83,7 @@ SRC.ParseLine.Macro
cmp #'m'
bne .3
.22 jsr MAC.Store
bcs SRC.ParseLine.RTS
>STZ.G ASM.MA.ON
.22 >STZ.G ASM.MA.ON
.8 clc
rts
@ -118,15 +121,10 @@ SRC.ParseLine.Macro
bcs .80
cmp #' '
bne .5
lda #0
jmp MAC.AddChar End of Line
clc
rts
.99 lda #ERR.MACRO.TOO.BIG
sec
bra .80 End of Line
.99
SRC.ParseLine.RTS
rts
*---------------------------------------

View File

@ -1,5 +1,5 @@
NEW
PREFIX
PREFIX
AUTO 4,1
*---------------------------------------
* Global Symbol Record: (6+ bytes)
@ -80,25 +80,23 @@ SYM.Dump stz ZPLinePtr
>LDYA L.MSG.SYMBOLS
>SYSCALL puts
.1 >PUSHB.G SYM.hGlobalList
.1 >PUSHW ZPNameBuf
>PUSHW ZPLinePtr
>PUSHW ZPGlobalBuf
>PUSHW ZPNameBuf
>LDA.G SYM.hGlobalList
>SYSCALL SListGetByID
bcc .10
clc
rts
.10 stx ZPLinePtr Save Next ID
sty ZPLinePtr+1
.10 >STYA ZPLinePtr Save Next ID
>LDA.G ASM.LI.ON
bpl .1
ldy #SYMG.F Get Symbol Size
lda (ZPGlobalBuf),y
and #SYMG.F.SIZE
* and #SYMG.F.SIZE
>PUSHA Byte Count
tax
@ -207,12 +205,12 @@ SYM.GetGlobal >PUSHB.G SYM.hGlobalList
rts
*---------------------------------------
SYM.LookupGlobal
>PUSHB.G SYM.hGlobalList
>PUSHW ZPLinePtr
>PUSHW ZPLookupBuf
>LDA.G SYM.hGlobalList
>SYSCALL SListLookup
bcs .9
>STYA.G SYM.GlobalID
txa
adc ZPLinePtr
sta ZPLinePtr
bcc .8
@ -225,19 +223,21 @@ SYM.LookupGlobal
SYM.FlushGlobal lda (ZPGlobalBuf)
beq .8
>PUSHB.G SYM.hGlobalList
>LDA.G ASM.PASS
bne .2
>PUSHW ZPNameBuf
>PUSHW ZPGlobalBuf
>SYSCALL SListAdd
>PUSHW.G SYM.GlobalID
>LDA.G SYM.hGlobalList
>SYSCALL SListAddData
bra .3
.2 >PUSHW.G SYM.GlobalID
>PUSHW ZPGlobalBuf
>SYSCALL SListUpdateByID
.2 >PUSHW ZPGlobalBuf
>PUSHW.G SYM.GlobalID
>LDA.G SYM.hGlobalList
>SYSCALL SListSetData
.3 bcs .9
lda #0
@ -333,7 +333,7 @@ SYM.Lookup2Acc ldy #SYMG.F+4
bne .1
lda (ZPLookupBuf),y
and #SYMG.F.SIZE
* and #SYMG.F.SIZE
sta SRC.ACC.SIZE
clc

View File

@ -1,5 +1,5 @@
NEW
PREFIX
PREFIX
AUTO 4,1
.LIST OFF
.OP 65C02
@ -26,7 +26,7 @@ ZPRPtr .EQ ZPBIN+20
ZPOpsPtr .EQ ZPBIN+22
ZPOpDefPtr .EQ ZPBIN+24
ZPTmpBuf .EQ ZPBIN+16
ZPTmpBuf .EQ ZPBIN+26
*---------------------------------------
* Symbols
*---------------------------------------
@ -246,10 +246,18 @@ CS.INIT ldy #S.PS.ARGC
>SYSCALL printf
lda #ERR.INV.ARGS
sec
.9 rts
.9 rts
*--------------------------------------
CS.RUN >SYSCALL GetChar
bcs .13 no char
CS.RUN ldy #S.PS.hStdIn
lda (pPS),y
>SYSCALL feof
bcs .99
tay
beq .13
>SYSCALL GetChar
bcs .99
cmp #$03 Ctrl-C
beq .99 Abort....beq=CS
@ -268,7 +276,7 @@ CS.RUN >SYSCALL GetChar
.13 >LDA.G bPause
bpl .11
clc
rts
.99 rts
.11 >STZ.G bPause
@ -313,7 +321,7 @@ CS.RUN >SYSCALL GetChar
inc
sta (pData),y
clc
.99 rts
rts
.1 jsr SYM.Dump
>PUSHW ZPLinePtr
@ -539,6 +547,8 @@ MAC.hMacroList .BS 1
MAC.hMacroBuf .BS 1
MAC.hCtxList .BS 1
MAC.hCtxBuf .BS 1
MAC.MacroID .BS 2
MAC.BufPtr .BS 1
MAC.CtxID .BS 2
OUT.PC .BS 4

View File

@ -1,5 +1,5 @@
NEW
PREFIX /A2OSX.BUILD
PREFIX
AUTO 4,1
*---------------------------------------
T.ADDR.MODES .EQ *

View File

@ -1,5 +1,5 @@
NEW
PREFIX /A2OSX.BUILD
PREFIX
AUTO 4,1
*---------------------------------------
T.OPCODES .EQ *

View File

@ -1,5 +1,5 @@
NEW
PREFIX /A2OSX.BUILD
PREFIX
AUTO 4,1
.LIST OFF
.OR $0

View File

@ -41,7 +41,7 @@ CMD.PUSHD >LDA.G PUSHD.STACK
sta (pData),y
lda (ZPArgVBufPtr)
bne CMD.CD.1
bne CMD.CD.0
.8 clc
.9 rts
@ -70,7 +70,7 @@ CMD.PWD ldy #S.PS.hPREFIX
CMD.CD lda (ZPArgVBufPtr)
beq CMD.CD.HOME
>LDYA ZPArgVBufPtr
CMD.CD.0 >LDYA ZPArgVBufPtr
bra CMD.CD.1
CMD.CD.HOME >LDYA L.ENV.HOME

View File

@ -346,12 +346,13 @@ CORE.ExecFunc >STYA TmpWord KeyID
jsr CORE.SkipLine
>PUSHWI 0 From Start
>PUSHWI 0 TextMode
>PUSHWI $ffff all
>PUSHWI 0 Allocate..
>PUSHW TmpWord KeyID
>LDA.G hFuncList
>DEBUG
>SYSCALL SListGetData
bcs .9
txa

View File

@ -110,6 +110,7 @@ E.IUSR .EQ $F2 Invalid User
E.NOKEY .EQ $EF Undefined Key
E.DUPKEY .EQ $EE Duplicate Key
E.NODATA .EQ $ED No Data
E.DATALEN .EQ $EC Data Length Mismatch
*--------------------------------------
* A2osX.SYSCALL Constants
*--------------------------------------

View File

@ -14,34 +14,9 @@ X.SLIST jmp (.1-SYS.SListGetData,x)
*--------------------------------------
SLIST.GetData jsr SLIST.Select
jsr SLIST.SkipKey
jsr SLIST.GetDataLen
lda ZPSListDataPtr
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
lda SLIST.DataLen
sec
sbc ZPMemMgrSize
eor #$ff
@ -50,9 +25,25 @@ SLIST.GetData jsr SLIST.Select
sbc ZPMemMgrSize
eor #$ff
sta SLIST.nDataCnt+1 Data remaining
bcc .99
.10 lda ZPMemMgrSize
ldx ZPMemMgrSize+1
jsr SLIST.SkipDataAX
lda ZPSListDataPtr
ora ZPSListDataPtr+1
bne .12
lda ZPSListDataLen
ora ZPSListDataLen
>LDYA SLIST.DataLen
jsr MEM.GetMainBuf
bcs .9
stx .82+1
>STYA ZPSListDataPtr
.12 lda ZPSListDataLen
ora ZPSListDataLen+1
sec
beq .1 String Mode
@ -94,7 +85,7 @@ SLIST.GetData jsr SLIST.Select
.99 lda #E.NODATA
sec
rts
.9 rts
.7 jsr SLIST.GetNextByte
@ -148,7 +139,11 @@ SLIST.AddData jsr SLIST.Select
bcc .1
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
jsr SLIST.SetBlockByte
@ -158,45 +153,66 @@ SLIST.AddData jsr SLIST.Select
clc
.9 rts
*--------------------------------------
SLIST.SetData
clc
SLIST.SetData jsr SLIST.Select
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
*--------------------------------------
SLIST.GetByID jsr SLIST.Select
jsr SLIST.GetBlockByte
jsr SLIST.GetNextByte
tax
beq .9
ldy #0
.1 jsr SLIST.GetNextByte
jsr MEM.SetKeyCharY
.1 jsr SLIST.GetNextBlockByte
iny
jsr MEM.SetKeyCharY
dex
bne .1
jsr SLIST.GetNextBlockByte
tax
jsr MEM.SetDataByte
.2 jsr SLIST.GetNextBlockByte
jsr MEM.SetDataByte
dex
bne .2
jsr SLIST.GetNextBlockByte
clc
.HS B0 BCS
.9 sec
txa lda #0
jsr MEM.SetKeyCharY
jsr SLIST.SkipData
>LDYA SLIST.KeyID
clc
rts
.9 lda #E.NOKEY
sec
rts
*--------------------------------------
SLIST.NewKey jsr SLIST.Search
@ -305,16 +321,15 @@ SLIST.Search jsr K.GetMemPtr
bcc .1
sty SLIST.KeyLen
ldy SLIST.BlockPtr
lda (ZPSListDBlkPtr),y
beq .9
>DEBUG
.2 >LDYA SLIST.KeyID
>STYA ZPSListKeyID
ldy SLIST.BlockPtr
ldy SLIST.BytePtr
lda (ZPSListDBlkPtr),y
beq .9
cmp SLIST.KeyLen
bne .5
@ -401,39 +416,6 @@ SLIST.GetNextByte
pla
.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
phy