diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index 6213f3da..20c76742 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -446,34 +446,35 @@ A = hMem Y,A = PTR to MemBlock (X unmodified) -# SListAddData - -## ASM -`PUSHB DataLen` -`PUSHB DataPtr` -`PUSHW KeyID` -`lda hSList` -`>SYSCALL SListAddData` - -## RETURN VALUE - Y,A = Next DataID - # SListGetData ## ASM -`PUSHB DataLen` -`PUSHB DataPtr` +`PUSHW DataOfs` +`PUSHW DataLen` +`PUSHW DataPtr` `PUSHW KeyID` `lda hSList` `>SYSCALL SListGetData` +## RETURN VALUE + Y,A = Byte Count + +# SListAddData + +## ASM +`PUSHW DataLen` +`PUSHW DataPtr` +`PUSHW KeyID` +`lda hSList` +`>SYSCALL SListAddData` + ## RETURN VALUE # SListSetData ## ASM -`PUSHB DataLen` -`PUSHB DataPtr` +`PUSHW DataLen` +`PUSHW DataPtr` `PUSHW KeyID` `lda hSList` `>SYSCALL SListSetData` @@ -511,6 +512,7 @@ Y,A = PTR to MemBlock ## RETURN VALUE Y,A = KeyID + X = Key Length # SListNew @@ -528,16 +530,6 @@ A=hSList ## RETURN VALUE -# GetStkObjData - -## ASM -`PUSHW DataLen` -`PUSHW DataPtr` -`lda hStkObj` -`>SYSCALL GetStkObjData` - -## RETURN VALUE - # NewStkObj Y,A = Size Requested @@ -566,6 +558,16 @@ Load a file in AUX memory (Stock Objects) Y,A = File Length X = hMem of Loaded Object in AUX mem +# GetStkObjData + +## ASM +`PUSHW DataLen` +`PUSHW DataPtr` +`lda hStkObj` +`>SYSCALL GetStkObjData` + +## RETURN VALUE + # ExecL ## C diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 73fdee6d..10900c4d 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index 38cf6cbf..b5f951b3 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -537,16 +537,17 @@ CMD.FUNC lda (ZPArgVBufPtr) jsr CORE.StkGetCtx bcc .9 NO context allowed - + >LDA.G hFuncList bne .1 >SYSCALL SListNew - bcs .9 + bcs .99 >STA.G hFuncList .1 >PUSHW ZPArgVBufPtr >LDA.G hFuncList + >SYSCALL SListNewKey bcs .99 diff --git a/BIN/SH.S.CORE.txt b/BIN/SH.S.CORE.txt index 3b86c6d9..80740168 100644 --- a/BIN/SH.S.CORE.txt +++ b/BIN/SH.S.CORE.txt @@ -131,7 +131,19 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping jsr CORE.LookupInputBuf bcc .41 - jsr CORE.ArgV.Add external cmd, go check context + >LDA.G hFuncList + beq .40 + + >PUSHYA ZPInputBufPtr + >LDA.G hFuncList + >DEBUG + >SYSCALL SListLookup + bcs .40 + + + jmp .43 + +.40 jsr CORE.ArgV.Add external cmd, go check context bra .42 .41 jsr CORE.SkipCharsA @@ -140,7 +152,7 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping >STA.G CORE.IntCmd .42 jsr CORE.StkGet - bcs .7 no particular context, exec... + bcs CORE.Run.7 no particular context, exec... tax >LDA.G CORE.IntCmd @@ -148,13 +160,13 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping and #$3F cmp #C.SWITCH SWITCH....FI ? - bcs .7 + bcs CORE.Run.7 .45 txa bpl .43 context is FALSE, skip line asl - bmi .7 parent context is true, exec + bmi CORE.Run.7 parent context is true, exec .43 jsr CORE.GetCharNB @@ -173,23 +185,23 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping clc .99 rts *-------------------------------------- -.5 >LDYA L.CORE.IO +CORE.Run.5 >LDYA L.CORE.IO jsr CORE.LookupInputBuf - bcs .6 + bcs CORE.Run.6 jsr CORE.SkipCharsA jsr CORE.IO.JMP bcs CORE.Run.RTS - bra .7 + bra CORE.Run.7 -.6 jsr CORE.ArgV.Add +CORE.Run.6 jsr CORE.ArgV.Add -.7 jsr CORE.GetCharNB +CORE.Run.7 jsr CORE.GetCharNB bcs CORE.ExecCmd.1 Nothing to skip jsr CORE.IsEndCmd - bcs .5 + bcs CORE.Run.5 cmp #'|' bne CORE.ExecCmd skip CR, ; diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 08446376..8b455eca 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -109,6 +109,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 *-------------------------------------- * A2osX.SYSCALL Constants *-------------------------------------- @@ -283,13 +284,13 @@ SYS.GetMem0 .EQ $E2 SYS.GetMemPtr .EQ $E4 SYS.FreeMem .EQ $E6 -SYS.LoadStkObj .EQ $E8 -SYS.NewStkObj .EQ $EA -SYS.FreeStkObj .EQ $EC +SYS.NewStkObj .EQ $E8 +SYS.FreeStkObj .EQ $EA +SYS.LoadStkObj .EQ $EC SYS.GetStkObjData .EQ $EE -SYS.SListAddData .EQ $F0 -SYS.SListGetData .EQ $F2 +SYS.SListGetData .EQ $F0 +SYS.SListAddData .EQ $F2 SYS.SListSetData .EQ $F4 SYS.SListGetByID .EQ $F6 diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index b0f2f3f3..9fce7ab5 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -141,13 +141,13 @@ K.SYSCALL.JMP .DA K.GetMemStat $00 .DA K.GetMemPtr .DA K.FreeMem - .DA K.LoadStkObj .DA K.NewStkObj .DA K.FreeStkObj + .DA K.LoadStkObj .DA K.GetStkObjData *-------------------------------------- - .DA K.SListAddData $F0 - .DA K.SListGetData + .DA K.SListGetData $F0 + .DA K.SListAddData .DA K.SListSetData .DA K.SListGetByID diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index c1f7ee9b..64d5cfa7 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -5,12 +5,6 @@ AUTO 4,1 ZPMemMgrSPtr .EQ ZPMEMMGR Pointer To Slot selected ZPMemMgrTmp1 .EQ ZPMEMMGR+2 ZPMemMgrSize .EQ ZPMEMMGR+4 -ZPSListID .EQ ZPMEMMGR+6 -ZPSListKeyPtr .EQ ZPMEMMGR+8 -ZPSListDataPtr .EQ ZPMEMMGR+8 -ZPSListDataLen .EQ ZPMEMMGR+10 -ZPSListIBlkPtr .EQ ZPMEMMGR+12 -ZPSListDBlkPtr .EQ ZPMEMMGR+14 */-------------------------------------- * # GetMem0 * Y,A = Size Requested @@ -385,42 +379,52 @@ MEM.GetMemByID sta ZPMemMgrSPtr rol sta ZPMemMgrSPtr+1 rts -*/-------------------------------------- -* # SListAddData -* ## ASM -* `PUSHB DataLen` -* `PUSHB DataPtr` -* `PUSHW KeyID` -* `lda hSList` -* `>SYSCALL SListAddData` -* ## RETURN VALUE -* Y,A = Next DataID -*\-------------------------------------- -K.SListAddData +*-------------------------------------- +ZPSListKeyID .EQ ZPMEMMGR+6 +ZPSListKeyPtr .EQ ZPMEMMGR+8 +ZPSListDataPtr .EQ ZPMEMMGR+8 +ZPSListDataLen .EQ ZPMEMMGR+10 +ZPSListIBlkPtr .EQ ZPMEMMGR+12 +ZPSListDBlkPtr .EQ ZPMEMMGR+14 */-------------------------------------- * # SListGetData * ## ASM -* `PUSHB DataLen` -* `PUSHB DataPtr` +* `PUSHW DataOfs` +* `PUSHW DataLen` +* `PUSHW DataPtr` * `PUSHW KeyID` * `lda hSList` * `>SYSCALL SListGetData` * ## RETURN VALUE +* Y,A = Byte Count *\-------------------------------------- -K.SListGetData +K.SListGetData pha + >PULLW ZPMemMgrSize + pla +*/-------------------------------------- +* # SListAddData +* ## ASM +* `PUSHW DataLen` +* `PUSHW DataPtr` +* `PUSHW KeyID` +* `lda hSList` +* `>SYSCALL SListAddData` +* ## RETURN VALUE +*\-------------------------------------- +K.SListAddData */-------------------------------------- * # SListSetData * ## ASM -* `PUSHB DataLen` -* `PUSHB DataPtr` +* `PUSHW DataLen` +* `PUSHW DataPtr` * `PUSHW KeyID` * `lda hSList` * `>SYSCALL SListSetData` * ## RETURN VALUE *\-------------------------------------- K.SListSetData pha - >PULLW ZPSListID - bra K.SListPullA + >PULLW ZPSListDataLen + pla */-------------------------------------- * # SListGetByID * ## ASM @@ -432,9 +436,10 @@ K.SListSetData pha * Y,A = Next KeyID *\-------------------------------------- K.SListGetByID pha - >PULLW ZPSListID >PULLW ZPSListKeyPtr - bra K.SListPullA + >PULLW ZPSListKeyID + pla + bra K.SListFree */-------------------------------------- * # SListNewKey * ## ASM @@ -454,11 +459,11 @@ K.SListNewKey * `>SYSCALL SListLookup` * ## RETURN VALUE * Y,A = KeyID +* X = Key Length *\-------------------------------------- K.SListLookup pha -*-------------------------------------- >PULLW ZPSListKeyPtr -K.SListPullA pla + pla */-------------------------------------- * # SListNew * ## ASM @@ -466,7 +471,7 @@ K.SListPullA pla * ## RETURN VALUE * A=hSList *\-------------------------------------- -K.SListNew +K.SListNew */-------------------------------------- * # SListFree * ## ASM @@ -474,40 +479,15 @@ K.SListNew * `>SYSCALL SListFree` * ## RETURN VALUE *\-------------------------------------- -K.SListFree -*-------------------------------------- - sta SETREADAUX +K.SListFree sta SETREADAUX sta SETWRITEAUX - jsr X.SLIST + + jsr X.SLIST + sta CLRREADAUX sta CLRWRITEAUX rts */-------------------------------------- -* # GetStkObjData -* ## ASM -* `PUSHW DataLen` -* `PUSHW DataPtr` -* `lda hStkObj` -* `>SYSCALL GetStkObjData` -* ## RETURN VALUE -*\-------------------------------------- -K.GetStkObjData sta SETREADAUX - jsr K.GetMemPtr - >STYA ZPMemMgrTmp1 - - >PULLW ZPSListDataLen - >PULLW ZPSListDataPtr - - lda (ZPMemMgrTmp1),y - pha - iny - lda (ZPMemMgrTmp1),y - ply - - - sta CLRREADAUX - rts -*/-------------------------------------- * # NewStkObj * Y,A = Size Requested * ## RETURN VALUE @@ -528,16 +508,16 @@ K.NewStkObj ldx #SYS.GetMem *\-------------------------------------- K.FreeStkObj ldx #SYS.FreeMem -MEM.GoStkObj sta SETREADAUX + sta SETREADAUX sta SETWRITEAUX - jsr .1 + jsr MEM.Kernel.JMP sta CLRREADAUX sta CLRWRITEAUX rts -.1 jmp (SYS.Kernel.JMP,x) +MEM.Kernel.JMP jmp (SYS.Kernel.JMP,x) */-------------------------------------- * # LoadStkObj * Load a file in AUX memory (Stock Objects) @@ -596,6 +576,31 @@ K.LoadStkObj >SYSCALL LoadFile pla sec .99 rts +*/-------------------------------------- +* # GetStkObjData +* ## ASM +* `PUSHW DataLen` +* `PUSHW DataPtr` +* `lda hStkObj` +* `>SYSCALL GetStkObjData` +* ## RETURN VALUE +*\-------------------------------------- +K.GetStkObjData sta SETREADAUX + jsr K.GetMemPtr + >STYA ZPMemMgrTmp1 + + >PULLW ZPSListDataLen + >PULLW ZPSListDataPtr + + lda (ZPMemMgrTmp1),y + pha + iny + lda (ZPMemMgrTmp1),y + ply + + + sta CLRREADAUX + rts *-------------------------------------- * in Y,A = buf size *-------------------------------------- diff --git a/SYS/KERNEL.S.SLIST.txt b/SYS/KERNEL.S.SLIST.txt index fd8f5347..6a02ee9c 100644 --- a/SYS/KERNEL.S.SLIST.txt +++ b/SYS/KERNEL.S.SLIST.txt @@ -2,68 +2,134 @@ NEW PREFIX AUTO 4,1 *-------------------------------------- -X.SLIST jmp (.1-SYS.SListAddData,x) -.1 .DA SLIST.AddData - .DA SLIST.GetData +X.SLIST jmp (.1-SYS.SListGetData,x) +.1 .DA SLIST.GetData + .DA SLIST.AddData .DA SLIST.SetData .DA SLIST.GetByID .DA SLIST.NewKey .DA SLIST.Lookup .DA SLIST.New - .DA SLIST.Free + .DA SLIST.Free *-------------------------------------- -SLIST.AddData jsr SLIST.Select +SLIST.GetData jsr SLIST.Select + jsr SLIST.SkipKey + + jsr SLIST.GetDataLen + + lda ZPMemMgrSize Get Offset + cmp SLIST.DataLen + lda ZPMemMgrSize+1 + sbc SLIST.DataLen+1 + bcs .99 + + lda ZPMemMgrSize + ldx ZPMemMgrSize+1 + jsr SLIST.SkipDataAX + + lda SLIST.DataLen + sec + sbc ZPMemMgrSize + eor #$ff + sta SLIST.nDataCnt + lda SLIST.DataLen+1 + sbc ZPMemMgrSize + eor #$ff + sta SLIST.nDataCnt+1 Data remaining + + lda ZPSListDataLen + ora ZPSListDataLen + clc + beq .1 String Mode + + lda ZPSListDataLen + eor #$ff + sta SLIST.nBufCnt + lda ZPSListDataLen+1 + eor #$ff + sta SLIST.nBufCnt+1 + sec + +.1 ror SLIST.bStringMode - - bcs .99 Lookup succeeded...DUP + stz ZPSListDataLen + stz ZPSListDataLen+1 - ldy #$ff +.2 inc SLIST.nDataCnt + bne .3 + inc SLIST.nDataCnt+1 + beq .8 -.1 iny - jsr MEM.GetKeyCharY - bcc .1 +.3 inc SLIST.nBufCnt + bne .4 + inc SLIST.nBufCnt+1 + beq .8 - sty .8+1 - tya - beq .9 CS +.4 jsr SLIST.GetNextByte + bit SLIST.bStringMode + bpl .5 - jsr SLIST.AddBlockByte - bcs .9 + cmp #C.CR + beq .8 - ldy #0 - -.2 jsr MEM.GetKeyCharY - bcs .3 - - jsr SLIST.AddBlockByte - bcs .9 - iny +.5 jsr MEM.SetDataByte + inc ZPSListDataLen + bne .2 + inc ZPSListDataLen+1 bra .2 -.3 jsr MEM.GetDataByte - tax - - jsr SLIST.AddBlockByte - bcs .9 - -.4 jsr MEM.GetDataByte - - jsr SLIST.AddBlockByte - bcs .9 - - dex - bne .4 - -.8 lda #$ff SELF MODIFIED - +.8 >LDYA ZPSListDataLen clc rts -.99 lda #E.NOPKEY +.99 lda #E.NODATA sec -.9 rts + rts *-------------------------------------- -SLIST.GetData +SLIST.AddData jsr SLIST.Select + jsr SLIST.SkipKey + + >LDYA SLIST.KeyID Save DataLen location + >STYA ZPSListKeyID to update later + + jsr SLIST.SkipData + + lda ZPSListDataLen + pha + clc + adc SLIST.DataLen + sta SLIST.DataLen + pla + eor #$ff + sta ZPSListDataLen + + lda ZPSListDataLen+1 + pha + adc SLIST.DataLen+1 + sta SLIST.DataLen+1 + pla + eor #$ff + sta ZPSListDataLen+1 + +.1 inc ZPSListDataLen + bne .2 + inc ZPSListDataLen+1 + beq .8 + +.2 jsr MEM.GetDataByte + + jsr SLIST.AddBlockByte + bcc .9 + rts + +.8 jsr SLIST.Select go back to DataLen Location + lda SLIST.DataLen + jsr SLIST.SetBlockByte + lda SLIST.DataLen+1 + jsr SLIST.SetBlockByte + + clc +.9 rts *-------------------------------------- SLIST.SetData clc @@ -102,15 +168,15 @@ SLIST.GetByID jsr SLIST.Select clc .HS B0 BCS .9 sec - ldx SLIST.BlockOfs - ldy SLIST.IndexOfs + >LDYA SLIST.KeyID + rts *-------------------------------------- SLIST.NewKey jsr SLIST.Search bcc .99 - >LDYA SLIST.IndexOfs - >STYA ZPSListID + >LDYA SLIST.KeyID Not Found... + >STYA ZPSListKeyID save new KeyID lda SLIST.KeyLen jsr SLIST.AddBlockByte @@ -118,7 +184,7 @@ SLIST.NewKey jsr SLIST.Search ldy #0 -.1 lda (ZPSListKeyPtr),y +.1 jsr MEM.GetKeyCharY jsr SLIST.AddBlockByte bcs .9 iny @@ -133,7 +199,7 @@ SLIST.NewKey jsr SLIST.Search jsr SLIST.AddBlockByte bcs .9 - >LDYA ZPSListID + >LDYA ZPSListKeyID clc rts @@ -141,35 +207,10 @@ SLIST.NewKey jsr SLIST.Search sec .9 rts *-------------------------------------- -SLIST.UpdateByID - jsr SLIST.Select - - jsr SLIST.GetBlockByte - tax - -.1 jsr SLIST.GetNextBlockByte - dex - bne .1 - - jsr SLIST.GetNextBlockByte set pos at DATALEN - - jsr MEM.GetDataByte - tax - - jsr SLIST.SetBlockByte - -.4 jsr MEM.GetDataByte - jsr SLIST.SetBlockByte - dex - bne .4 - - clc - rts -*-------------------------------------- SLIST.Lookup jsr SLIST.Search bcs .9 - >LDYA ZPSListID + >LDYA SLIST.KeyID ldx SLIST.KeyLen .9 rts @@ -211,29 +252,29 @@ SLIST.Free sta .8+1 SLIST.Select jsr K.GetMemPtr >STYA ZPSListIBlkPtr - ldy ZPSListID+1 - sty SLIST.IndexOfs + ldy ZPSListKeyID+1 + sty SLIST.BlockPtr lda (ZPSListIBlkPtr),y jsr K.GetMemPtr >STYA ZPSListDBlkPtr - lda ZPSListID - sta SLIST.BlockOfs + lda ZPSListKeyID + sta SLIST.BytePtr rts *-------------------------------------- SLIST.Search jsr K.GetMemPtr >STYA ZPSListIBlkPtr - stz SLIST.IndexOfs - stz ZPSListID+1 + stz SLIST.BlockPtr + stz ZPSListKeyID+1 lda (ZPSListIBlkPtr) jsr K.GetMemPtr >STYA ZPSListDBlkPtr - stz SLIST.BlockOfs - stz ZPSListID + stz SLIST.BytePtr + stz ZPSListKeyID ldy #$ff @@ -247,13 +288,15 @@ SLIST.Search jsr K.GetMemPtr beq .9 .2 cmp SLIST.KeyLen - bne .4 + bne .5 ldy #0 .3 jsr SLIST.GetNextBlockByte - cmp (ZPSListKeyPtr),y - bne .4 + sta .4+1 + jsr MEM.GetKeyCharY +.4 cmp #$ff SELF MODIFIED + bne .5 iny cpy SLIST.KeyLen @@ -262,13 +305,7 @@ SLIST.Search jsr K.GetMemPtr clc rts -.4 - jsr SLIST.GetNextBlockByte - - ldx SLIST.IndexOfs - stx ZPSListID+1 - ldx SLIST.BlockOfs - stx ZPSListID +.5 jsr SLIST.Next jsr SLIST.GetBlockByte bne .2 @@ -277,29 +314,82 @@ SLIST.Search jsr K.GetMemPtr sec rts *-------------------------------------- -SLIST.Skip +SLIST.Next jsr SLIST.SkipKey + +SLIST.SkipData jsr SLIST.GetDataLen + + lda SLIST.DataLen + ldx SLIST.DataLen+1 +SLIST.SkipDataAX + clc + adc SLIST.BytePtr + sta SLIST.BytePtr + + txa + adc SLIST.BlockPtr + sta SLIST.BlockPtr + jsr K.GetMemPtr + >STYA ZPSListDBlkPtr + + rts *-------------------------------------- +SLIST.SkipKey ldy SLIST.BytePtr + lda (ZPSListDBlkPtr),y Get KeyLen + sec + adc SLIST.BytePtr + sta SLIST.BytePtr + bcc .8 + + inc SLIST.BlockPtr + lda SLIST.BlockPtr + jsr K.GetMemPtr + >STYA ZPSListDBlkPtr + +.8 rts +*-------------------------------------- +SLIST.GetDataLen + jsr SLIST.GetNextByte Get DataLenLo + sta SLIST.DataLen + jsr SLIST.GetNextByte Get DataLenHI + sta SLIST.DataLen+1 + rts +*-------------------------------------- +SLIST.GetNextByte + ldy SLIST.BytePtr + lda (ZPSListDBlkPtr),y + inc SLIST.BytePtr + bne .8 + + pha + inc SLIST.BlockPtr + lda SLIST.BlockPtr + jsr K.GetMemPtr + >STYA ZPSListDBlkPtr + pla + +.8 rts +*-------------------------------------- SLIST.GetNextBlockByte phy - ldy SLIST.BlockOfs + ldy SLIST.BytePtr iny beq .1 lda (ZPSListDBlkPtr),y - sty SLIST.BlockOfs + sty SLIST.BlockPtr ply rts -.1 ldy SLIST.IndexOfs +.1 ldy SLIST.BytePtr iny lda (ZPSListIBlkPtr),y beq .9 Exit with A=0 - sty SLIST.IndexOfs + sty SLIST.BytePtr jsr K.GetMemPtr >STYA ZPSListDBlkPtr - stz SLIST.BlockOfs + stz SLIST.BlockPtr lda (ZPSListDBlkPtr) .9 ply @@ -307,16 +397,16 @@ SLIST.GetNextBlockByte SLIST.GetBlockByte phy - ldy SLIST.BlockOfs + ldy SLIST.BlockPtr lda (ZPSListDBlkPtr),y ply rts *-------------------------------------- SLIST.AddBlockByte phy - ldy SLIST.BlockOfs + ldy SLIST.BytePtr sta (ZPSListDBlkPtr),y - inc SLIST.BlockOfs + inc SLIST.BytePtr bne .8 phx @@ -326,11 +416,11 @@ SLIST.AddBlockByte >STYA ZPSListDBlkPtr txa - inc SLIST.IndexOfs - ldy SLIST.IndexOfs + inc SLIST.BlockPtr + ldy SLIST.BlockPtr sta (ZPSListIBlkPtr),y -* stz SLIST.BlockOfs +* stz SLIST.BytePtr plx @@ -344,27 +434,31 @@ SLIST.AddBlockByte rts *-------------------------------------- SLIST.SetBlockByte - phy - ldy SLIST.BlockOfs + ldy SLIST.BlockPtr sta (ZPSListDBlkPtr),y - inc SLIST.BlockOfs + inc SLIST.BlockPtr bne .8 - inc SLIST.IndexOfs + inc SLIST.BytePtr - ldy SLIST.IndexOfs + ldy SLIST.BytePtr lda (ZPSListIBlkPtr),y - beq * + jsr K.GetMemPtr >STYA ZPSListDBlkPtr -* stz SLIST.BlockOfs +* stz SLIST.BlockPtr .8 ply rts *-------------------------------------- SLIST.KeyLen .BS 1 -SLIST.IndexOfs .BS 1 -SLIST.BlockOfs .BS 1 +SLIST.DataLen .BS 2 +SLIST.nDataCnt .BS 2 +SLIST.nBufCnt .BS 2 +SLIST.bStringMode .BS 1 +SLIST.KeyID .EQ * +SLIST.BytePtr .BS 1 +SLIST.BlockPtr .BS 1 *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.SLIST