From ece6e1f0567b9cac234c399a354070686b6d5005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 28 Jun 2017 16:34:11 +0200 Subject: [PATCH] Kernel version 0.9 : MemMgr, added a quicker GetMemYA API Call --- .Docs/KERNEL.md | 12 +++ .Floppies/A2OSX.BOOT.po | Bin 143360 -> 143360 bytes .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/X.CPMVRM.S.txt | 177 +++++++++++++++++++-------------------- BIN/X.FILEENUM.S.txt | 10 +-- INC/A2osX.I.txt | 2 +- SYS/KERNEL.S.JMP.txt | 2 +- SYS/KERNEL.S.MEM.txt | 55 ++++++++---- 9 files changed, 146 insertions(+), 112 deletions(-) diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index a7178415..33832b95 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -492,6 +492,18 @@ And return, if found, the full path to it. + CS : + A = EC +# GetMemYA + +## In: ++ Y,A = Size Requested + +## Out: ++ CC : success + + YA = PTR to Mem (Uninitialised) +* X = hMem ++ CS : + + A = EC + # FreeMemA ## In: diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index f5880d674ab47edc9e6b2fbcaf1a3c3a2f1869f8..c76d7d27314cf3f12506e6e39d83a8debf15040d 100644 GIT binary patch delta 5875 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 Q`Vr*4m*mo(9#{VV0g7#g5&!@I delta 18689 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 diff --git a/BIN/X.CPMVRM.S.txt b/BIN/X.CPMVRM.S.txt index 18d65b0d..3d85fd36 100644 --- a/BIN/X.CPMVRM.S.txt +++ b/BIN/X.CPMVRM.S.txt @@ -98,10 +98,10 @@ CS.INIT >SYSCALL GetArgC bne .99 .FIN - jsr CS.INIT.Check.Wildcard +* jsr CS.INIT.Check.Wildcard >LDYA ZPPtr1 - jsr InitSrcDirYA + jsr InitSrcDirPatYA bcc .1 success, scan for any other args .9 rts @@ -132,18 +132,16 @@ CS.INIT >SYSCALL GetArgC bcs .99 .FIN -.8 >PUSHWI 256 - >PUSHBI 0 - >SYSCALL GetMem +.8 >LDYAI 256 + >SYSCALL GetMemYA bcs .9 txa ldy #hSrcFullPath sta (pData),y .DO X.COPY.TO.DEST=1 - >PUSHWI 256 - >PUSHBI 0 - >SYSCALL GetMem + >LDYAI 256 + >SYSCALL GetMemYA bcs .9 txa ldy #hDstFullPath @@ -199,14 +197,33 @@ CS.RUN >SYSCALL GetC .11 ldy #bPause lda (pData),y bpl .1 - clc +.8 clc rts .1 .DO X.COPY.TO.DEST=1 ldy #bCopy lda (pData),y - bpl .2 - jmp CS.RUN.Copy + bne .2 + + jsr CS.RUN.Copy + + ldy #bCopy Copy completed ? + lda (pData),y + bne .8 + + ldy #bCopy + lda (pData),y + beq .2 non copy error + + sec + jsr CS.RUN.CheckErr we have an error.... + bcs .9 + + .DO X.DELETE.SOURCE=1 + ldy #hToDelete + lda #0 + sta (pData),y Cancel delete if any + .FIN .FIN .2 .DO X.DELETE.SOURCE=1 @@ -214,20 +231,15 @@ CS.RUN >SYSCALL GetC lda (pData),y beq .3 - >SYSCALL GetMemPtrA - >SYSCALL RemoveYA - php - pha - ldy #hToDelete - lda (pData),y pha lda #0 sta (pData),y pla - >SYSCALL FreeMemA - pla - plp - jsr CS.RUN.CheckErr + + >SYSCALL GetMemPtrA + >SYSCALL RemoveYA + +.20 jsr CS.RUN.CheckErr bcs .9 jmp CS.RUN.NEXT .FIN @@ -291,6 +303,8 @@ CS.RUN.LEAVE jsr LeaveSubDir exit this sub dir.... jsr GetEntry bcs * + jsr CS.RUN.BuildFilePath + ldy #hSrcFullPath lda (pData),y >SYSCALL GetMemPtrA @@ -490,11 +504,6 @@ CS.RUN.FILE ldy #bQuiet ldy #hSrcFullPath lda (pData),y - >SYSCALL GetMemPtrA - - >SYSCALL NewPStrYA - bcs .9 - txa ldy #hToDelete sta (pData),y .FIN @@ -560,39 +569,19 @@ CS.RUN.Rename ldy #hDstFullPath *-------------------------------------- .DO X.COPY.TO.DEST=1 CS.RUN.CopyStart - ldy #S.STAT.P.AUXTYPE+1 - >PUSHB (ZPFileStat),y - dey - >PUSHB (ZPFileStat),y - ldy #S.STAT.P.TYPE - >PUSHB (ZPFileStat),y - >PUSHBI SYS.FOpen.R - ldy #hSrcFullPath - lda (pData),y - >SYSCALL GetMemPtrA - - >PUSHYA - >SYSCALL FOpen + lda #SYS.FOpen.R + + jsr CS.RUN.Open bcs .99 ldy #hSrcFile sta (pData),y - ldy #S.STAT.P.AUXTYPE+1 - >PUSHB (ZPFileStat),y - dey - >PUSHB (ZPFileStat),y - ldy #S.STAT.P.TYPE - >PUSHB (ZPFileStat),y - >PUSHBI SYS.FOpen.W+SYS.FOpen.X - ldy #hDstFullPath - lda (pData),y - >SYSCALL GetMemPtrA - - >PUSHYA - >SYSCALL FOpen + lda #SYS.FOpen.W+SYS.FOpen.X + + jsr CS.RUN.Open bcs .9 ldy #hDstFile @@ -601,6 +590,9 @@ CS.RUN.CopyStart ldy #bCopy lda #$ff sta (pData),y + inc + ldy #CopyRC Reset RC + sta (pData),y clc rts @@ -609,13 +601,37 @@ CS.RUN.CopyStart lda (pData),y >SYSCALL FCloseA pla + + ldy #CopyRC + sta (pData),y + sec .99 rts *-------------------------------------- +CS.RUN.Open phy Save Filename + pha Save open mode + + ldy #S.STAT.P.AUXTYPE+1 + >PUSHB (ZPFileStat),y + dey + >PUSHB (ZPFileStat),y + ldy #S.STAT.P.TYPE + >PUSHB (ZPFileStat),y + + pla + >PUSHA + + ply + lda (pData),y + >SYSCALL GetMemPtrA + + >PUSHYA + >SYSCALL FOpen + rts +*-------------------------------------- CS.RUN.Copy stz .90+1 - >PUSHWI X.COPY.BUF.SIZE - >PUSHBI 0 - >SYSCALL GetMem + >LDYAI X.COPY.BUF.SIZE + >SYSCALL GetMemYA bcs .9 >STYA ZPPtr1 @@ -665,45 +681,21 @@ CS.RUN.Copy stz .90+1 CS.RUN.CopyEnd ldy #hSrcFile lda (pData),y >SYSCALL FCloseA - bcc .1 - - jsr CS.RUN.CheckErr - -.1 ldy #hDstFile + + ldy #hDstFile lda (pData),y >SYSCALL FCloseA - bcc .2 - - jsr CS.RUN.CheckErr -.2 ldy #bCopy + ldy #bCopy lda #$0 sta (pData),y - clc - ldy #CopyRC - lda (pData),y - beq .3 - sec -.3 jsr CS.RUN.CheckErr - bcs .9 - - jmp CS.RUN.NEXT -.9 rts + rts .FIN *-------------------------------------- CS.RUN.CheckErr bcs .1 - ldy #Count - lda (pData),y - inc - sta (pData),y - bne .10 - iny - lda (pData),y - inc - sta (pData),y -.10 ldy #bQuiet + ldy #bQuiet lda (pData),y bmi .8 @@ -785,6 +777,17 @@ CS.RUN.BuildFilePath .FIN rts *-------------------------------------- +CS.RUN.IncCount ldy #Count + lda (pData),y + inc + sta (pData),y + bne .9 + iny + lda (pData),y + inc + sta (pData),y +.9 rts +*-------------------------------------- CS.DOEVENT sec rts *-------------------------------------- @@ -811,12 +814,6 @@ CS.QUIT jsr LeaveSubDir .FIN - ldy #hToDelete - jsr CS.QUIT.FREE - - ldy #hFilter - jsr CS.QUIT.FREE - ldy #hSrcFullPath jsr CS.QUIT.FREE diff --git a/BIN/X.FILEENUM.S.txt b/BIN/X.FILEENUM.S.txt index 0b4e1e9e..d367a905 100644 --- a/BIN/X.FILEENUM.S.txt +++ b/BIN/X.FILEENUM.S.txt @@ -76,9 +76,8 @@ InitSrcDirYA ldx #0 ldy #hFilter sta (pData),y -.5 >PUSHWI 256 - >PUSHBI 0 - >SYSCALL GetMem Get a 256 buffer to store BasePath +.5 >LDYAI 256 + >SYSCALL GetMemYA Get a 256 buffer to store BasePath bcs .9 >STYA ZPPtr2 @@ -183,9 +182,8 @@ InitDstDirYA >SYSCALL GetFullPathYA ldy #hDstFileName sta (pData),y -.5 >PUSHWI 256 - >PUSHBI 0 - >SYSCALL GetMem Get a 256 buffer to store DstBasePath +.5 >LDYAI 256 + >SYSCALL GetMemYA Get a 256 buffer to store DstBasePath bcs .9 >STYA ZPPtr2 diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index ffa82a20..74681095 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -252,7 +252,7 @@ SYS.GetMem .EQ $90 SYS.FreeMemA .EQ $92 SYS.GetMemPtrA .EQ $94 SYS.GetMemByIDA .EQ $96 -* .EQ $98 +SYS.GetMemYA .EQ $98 SYS.LoadStkObjYA .EQ $9A SYS.GetStkObjA .EQ $9C SYS.FreeStkObjA .EQ $9E diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index fa117d2c..ff456870 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -99,7 +99,7 @@ KERNEL.SYSCALL .DA K.FreeMemA .DA K.GetMemPtrA .DA K.GetMemByIDA - .DA 0 + .DA K.GetMemYA .DA K.LoadStkObjYA .DA K.GetStkObjA .DA K.FreeStkObjA diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index 31a85aa4..f1c40fb5 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -37,24 +37,57 @@ MemMgr.ReqFlags .EQ ZPMEMMGR+10 store requested Flags *\-------------------------------------- K.GetMem >PULLB MemMgr.ReqFlags store requested flags and #S.MEM.F.AUX - beq .11 + beq .1 sta SETREADAUX Aux Mem requested,switch to AUX sta SETWRITEAUX -.11 >PULLAX get requested size +.1 >PULLAX get requested size bit #$0F 16 bytes aligned ? - beq .10 yes, request it + beq .2 yes, request it and #$F0 align on 16 bytes clc adc #$10 - bcc .10 + bcc .2 inx -.10 >STAX MemMgr.ReqSize - - >LDYAI MemMgr.Table +.2 >STAX MemMgr.ReqSize + jsr K.GetMem.I + + bit MemMgr.ReqFlags S.MEM.F.AUX ? + bpl .9 + + sta CLRREADAUX + sta CLRWRITEAUX + +.9 rts +*/-------------------------------------- +* # GetMemYA +* ## In: +* Y,A = Size Requested +* ## Out: +* CC : success +* YA = PTR to Mem (Uninitialised) +* X = hMem +* CS : +* A = EC +*\-------------------------------------- +K.GetMemYA stz MemMgr.ReqFlags + sta MemMgr.ReqSize+1 + tya + bit #$0F 16 bytes aligned ? + beq .1 yes, request it + + and #$F0 align on 16 bytes + clc + adc #$10 + bcc .1 + inc MemMgr.ReqSize+1 + +.1 sta MemMgr.ReqSize + +K.GetMem.I >LDYAI MemMgr.Table >STYA ZPMemMgrSPtr ldx #0 Current slot=0 @@ -137,13 +170,7 @@ K.GetMem >PULLB MemMgr.ReqFlags store requested flags ply Y = LO PTR clc X = Current hMem -.9 bit MemMgr.ReqFlags - bpl .99 - - sta CLRREADAUX - sta CLRWRITEAUX - -.99 rts +.9 rts *-------------------------------------- * MemMgr.AddSlot * In: