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 ## 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.

View File

@ -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

View File

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

View File

@ -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

View File

@ -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)
beq .8
>PUSHB.G MAC.hMacroList >LDA.G MAC.BufPtr
>PUSHW ZPNameBuf tay
lda #0
>PUSHYA
>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

View File

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

View File

@ -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
@ -118,15 +121,10 @@ SRC.ParseLine.Macro
bcs .80 bcs .80
cmp #' ' cmp #' '
bne .5 bne .5
lda #0
jmp MAC.AddChar End of Line
clc
rts
.99 lda #ERR.MACRO.TOO.BIG bra .80 End of Line
sec
.99
SRC.ParseLine.RTS SRC.ParseLine.RTS
rts rts
*--------------------------------------- *---------------------------------------

View File

@ -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

View File

@ -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

View File

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

View File

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

View File

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

View File

@ -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

View File

@ -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

View File

@ -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
*-------------------------------------- *--------------------------------------

View File

@ -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
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 lda SLIST.DataLen
ldx ZPMemMgrSize+1
jsr SLIST.SkipDataAX
.12 lda SLIST.DataLen
sec sec
sbc ZPMemMgrSize sbc ZPMemMgrSize
eor #$ff eor #$ff
@ -50,9 +25,25 @@ SLIST.GetData jsr SLIST.Select
sbc ZPMemMgrSize sbc ZPMemMgrSize
eor #$ff eor #$ff
sta SLIST.nDataCnt+1 Data remaining 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 >LDYA SLIST.DataLen
ora ZPSListDataLen 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
@ -401,39 +416,6 @@ SLIST.GetNextByte
pla pla
.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