diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index fff3b4b1..dea82414 100644 Binary files a/.Floppies/A2OSX.BOOT.po and b/.Floppies/A2OSX.BOOT.po differ diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 3ad732a9..bbb5b423 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 62f14000..bd6769a0 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/DRV/CONSOLE.DRV.S.txt b/DRV/CONSOLE.DRV.S.txt index 87a13a7c..18028564 100644 --- a/DRV/CONSOLE.DRV.S.txt +++ b/DRV/CONSOLE.DRV.S.txt @@ -442,10 +442,7 @@ ClrScr stz CH ldx #23 -.1 lda BASEL,x - sta ZPBaseL1 - lda BASEH,x - sta ZPBaseL1+1 +.1 jsr SETUP.L1X lda #" " @@ -486,16 +483,12 @@ LF ldy CV *-------------------------------------- SCROLL.UP ldx SCROLLTOP -.1 lda BASEL,x - sta ZPBaseL1 - lda BASEH,x - sta ZPBaseL1+1 - inx - lda BASEL,x - sta ZPBaseL2 - lda BASEH,x - sta ZPBaseL2+1 +.1 jsr SETUP.L1X + inx + + jsr SETUP.L2X + jsr COPY.L2toL1 cpx SCROLLBOT @@ -525,15 +518,11 @@ CLR sty .2+1 *-------------------------------------- SCROLL.DN ldx SCROLLBOT -.1 lda BASEL,x - sta ZPBaseL1 - lda BASEH,x - sta ZPBaseL1+1 +.1 jsr SETUP.L1X + dex - lda BASEL,x - sta ZPBaseL2 - lda BASEH,x - sta ZPBaseL2+1 + + jsr SETUP.L2X jsr COPY.L2toL1 @@ -751,6 +740,18 @@ GetCharAtXY php plp rts *-------------------------------------- +SETUP.L1X lda BASEL,x + sta ZPBaseL1 + lda BASEH,x + sta ZPBaseL1+1 + rts +*-------------------------------------- +SETUP.L2X lda BASEL,x + sta ZPBaseL2 + lda BASEH,x + sta ZPBaseL2+1 + rts +*-------------------------------------- COPY.L2toL1 php sei sta SETWRITEAUX diff --git a/INC/KERNEL.I.txt b/INC/KERNEL.I.txt index 86988b27..4918246b 100644 --- a/INC/KERNEL.I.txt +++ b/INC/KERNEL.I.txt @@ -87,35 +87,36 @@ A2osX.SaveSX .EQ $101 Aux *-------------------------------------- K.S.STAT .EQ $0300 S.STAT for internal kernel operations K.S.DSTAT .EQ $0340 S.DSTAT=25 or higher depends on dev type -K.SP.PARAMS .EQ $0380 Max 9 bytes -K.MLI.PARAMS .EQ $0390 Main, 18 bytes min for GetFileInfo (ATLK needs MORE!!!...32 max for now) -K.MLI.PATH .EQ $03B0 64+1 -> $03F0 +K.SP.PARAMS .EQ $0360 Max 9 bytes +K.MLI.PATH .EQ $0369 64+1 +K.MLI.PARAMS .EQ $03AA Main, 18 bytes min for GetFileInfo (ATLK needs MORE!!!...32 max for now) +*-------------------------------------- +K.STACKTOP .EQ $03EF down to $3E0 *-------------------------------------- *** $3F0-$3FF IRQ Handler.... *** *-------------------------------------- * Main/Aux $400 -> $7FF : TXT PAGE1 System Screen * Main/Aux $800 -> $BFF : TXT PAGE2 Console Screen *-------------------------------------- -* free $0C00->$17FF = $C00 (3072) Aux +* free $0C00->$17FF = $C00 (3072) Aux +*-------------------------------------- +K.Buf256 .EQ $0C00 Main +*-------------------------------------- +PS.Table.PID .EQ $0D00 K.PS.MAX +PS.Table.hMem .EQ $0D20 K.PS.MAX +*-------------------------------------- +Evt.Table .EQ $0D40 K.EVT.MAX*S.EVT.SIZE=8*8=64b +*-------------------------------------- +Flt.Table .EQ $0D80 K.FLT.MAX*S.FLT.SIZE=4*32=128b +*-------------------------------------- +Dev.Table .EQ $0E00 K.DEV.MAX*S.DEV=32*16=512b *-------------------------------------- *** Z80 Reserved $1000-10FF*** *-------------------------------------- Z80JMP .EQ $1000 (00000h) Up To $10FF Z80STACK .EQ $10FF (000FFh) Down to $1000 *-------------------------------------- -PS.Table.PID .EQ $1100 K.PS.MAX -PS.Table.hMem .EQ $1120 K.PS.MAX -*-------------------------------------- -Evt.Table .EQ $1140 K.EVT.MAX*S.EVT.SIZE=8*8=64b -*-------------------------------------- -Flt.Table .EQ $1180 K.FLT.MAX*S.FLT.SIZE=4*32=128b -*-------------------------------------- -K.STACKTOP .EQ $12FF down to $1200 -*-------------------------------------- -K.Buf256 .EQ $1300 Main -K.IOBuf512 .EQ $1400 Main -*-------------------------------------- -Dev.Table .EQ $1600 K.DEV.MAX*S.DEV=32*16=512b +* CORE $1100->$17FF = $700 Main *-------------------------------------- * MemMgr : $1800->$1FFF MAIN/AUX (2 kBytes) *-------------------------------------- diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index c7018825..d5a1970c 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -235,18 +235,53 @@ BIN.Find.ENV.LIB >CSTR "LIB" * X = hMem of Code Segment *-------------------------------------- BIN.Load.YA >STYA BIN.CmdLine + >STYA .2+1 + + ldx Mem.LastSlot + beq BIN.Load.YA.1 - jsr MEM.GetMemByNameYA - bcs BIN.Load.YA.1 not already loaded + >LDYAI Mem.Table + >STYA ZPPtr1 - >STYA ZPPtr1 Save base address + ldx #0 + +.1 lda (ZPPtr1) + bpl .6 In Use? + + ldy #S.MEM.BIN any BIN PATH in this slot? + lda (ZPPtr1),y + beq .6 + + jsr K.GetMemPtr.A get pathname + >STYA .3+1 + + ldy #0 + +.2 lda $ffff,y SELF MODIFIED +.3 cmp $ffff,y SELF MODIFIED + bne .6 + iny + ora #0 + bne .2 + ldy #S.MEM.REFCNT lda (ZPPtr1),y inc - sta (ZPPtr1),y - + sta (ZPPtr1),y + txa jmp K.GetMemPtr.A X=hMem from K.GetMemByNameA + +.6 lda ZPPtr1 + clc + adc #S.MEM + sta ZPPtr1 + bcc .7 + inc ZPPtr1+1 + +.7 inx + cpx Mem.LastSlot + bne .1 *-------------------------------------- BIN.Load.YA.1 >PUSHWI K.S.STAT >PUSHW BIN.CmdLine diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 0f69c6cb..3aee027b 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -7,6 +7,7 @@ AUTO 6 CORE.Run lda CORE.PSCount sta CORE.Counter bne .1 SHOULD NEVER HAPPEN!!! + jmp CORE.Events .1 ldx CORE.Counter @@ -334,6 +335,7 @@ CORE.GetPSByID.A lda PS.TABLE.hMem-1,y jmp K.GetMemPtr.A .9 rts +*-------------------------------------- CORE.GetPSStatus.A ldy CORE.PSCount beq .9 diff --git a/SYS/KERNEL.S.CTRL.txt b/SYS/KERNEL.S.CTRL.txt index f4d19baa..1320beb4 100644 --- a/SYS/KERNEL.S.CTRL.txt +++ b/SYS/KERNEL.S.CTRL.txt @@ -5,15 +5,23 @@ INC 1 AUTO 6 * CONTROL SECTION : .LIST ON +*-------------------------------------- +A2osX.CORE.S .EQ A2osX.GP-A2osX.CORE +A2osX.GP.S .EQ A2osX.D1-A2osX.GP A2osX.D1.S .EQ A2osX.D2-A2osX.D1 A2osX.D2.S .EQ A2osX.E0-A2osX.D2 A2osX.E0.S .EQ A2osX.E0.E-A2osX.E0 +*-------------------------------------- + .DO A2osX.CORE.S>$700 +* ERROR:CORE too big + .FIN .DO A2osX.D1.S>$1000 * ERROR:BNK1 too big .FIN .DO A2osX.D2.S>$1000 * ERROR:BNK2 too big .FIN +*-------------------------------------- .LIST OFF MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.CTRL diff --git a/SYS/KERNEL.S.D01.txt b/SYS/KERNEL.S.D01.txt index 836ebda5..4f99f220 100644 --- a/SYS/KERNEL.S.D01.txt +++ b/SYS/KERNEL.S.D01.txt @@ -29,9 +29,31 @@ A2osX.DIIDrv.S >LDYAI A2osx.DII.Stat clc rts *-------------------------------------- -A2osX.DIIDrv.RW >STYA GO.RW.SrcDst+1 +A2osX.DIIDrv.RW >STYA A2osX.RW.SrcDst+1 jsr A2osX.Blk.GetCmdAndDevAX - jmp GO.DiskII.RW +*-------------------------------------- + ldy #$D0 + .HS 2C bit abs +A2osX.RamDrv.RW1 + ldy #$FF + + sty A2osX.RW.Drv+2 + + jsr GO.ProDOS + stx $42 + sta $43 + + ldy #3 + +A2osX.RW.SrcDst lda $ffff,y Self Modified + sta $44,y + dey + bpl A2osX.RW.SrcDst + +A2osX.RW.Drv jsr $0000 + cli + jsr GO.A2osX + rts *-------------------------------------- A2osx.DII.Stat .DA #S.DSTAT.S.BLOCK+S.DSTAT.S.WRITE+S.DSTAT.S.READ .DA 280 @@ -64,7 +86,11 @@ A2osX.RamDrv .DA A2osX.RamDrv.S status .DA A2osX.BadCall *-------------------------------------- A2osX.RamDrv.S jsr A2osX.Blk.GetCmdAndDevAX - jsr GO.RamDrv.S + jsr GO.ProDOS + stx $42 + sta $43 + jsr $FF00 + jsr GO.A2osX bcs .9 stx A2osx.RamDrv.Stat+S.DSTAT.SIZE sty A2osx.RamDrv.Stat+S.DSTAT.SIZE+1 @@ -73,9 +99,9 @@ A2osX.RamDrv.S jsr A2osX.Blk.GetCmdAndDevAX clc .9 rts *-------------------------------------- -A2osX.RamDrv.RW >STYA GO.RW.SrcDst+1 +A2osX.RamDrv.RW >STYA A2osX.RW.SrcDst+1 jsr A2osX.Blk.GetCmdAndDevAX - jmp GO.RamDrv.RW + bra A2osX.RamDrv.RW1 *-------------------------------------- A2osx.RamDrv.Stat .DA #S.DSTAT.S.BLOCK+S.DSTAT.S.WRITE+S.DSTAT.S.READ @@ -294,13 +320,9 @@ DevMgr.SYS.Code .DA .1 STATUS .DA #0 .DA $0900 *-------------------------------------- -DevMgr.SYS.Open stz DevMgr.SYS.CH - stz DevMgr.SYS.CV - +DevMgr.SYS.Open lda #1 + sta A2osX.SCRNDEVS jsr DevMgr.SYS.Home - - lda #1 - sta A2osX.SCRNDEVS fall in Control *-------------------------------------- DevMgr.SYS.Control sta SETTEXT @@ -336,25 +358,25 @@ DevMgr.SYS.Write phx phy cmp #' ' - bcc .1 - ldy DevMgr.SYS.CH - ldx DevMgr.SYS.CV - ora #$80 - jsr DevMgr.SYS.SetCharAtYX - jsr DevMgr.SYS.FSOut - bra .8 + bcs .7 -.1 cmp #10 - bne .2 + cmp #10 + bne .1 jsr DevMgr.SYS.LF bra .8 -.2 cmp #13 - bne .3 +.1 cmp #13 + bne .2 jsr DevMgr.SYS.CR bra .8 -.3 ora #$20 +.2 ora #$20 + + .HS 2C BIT ABS + +.7 ora #$80 + ldy DevMgr.SYS.CH + ldx DevMgr.SYS.CV jsr DevMgr.SYS.SetCharAtYX jsr DevMgr.SYS.FSOut @@ -397,32 +419,23 @@ DevMgr.SYS.ClrEOL *-------------------------------------- DevMgr.SYS.Scroll ldx #1 -.1 lda DevMgr.SYS.BASEL,x - sta ZPDRV - lda DevMgr.SYS.BASEH,x - sta ZPDRV+1 +.1 jsr DevMgr.SYS.SetBaseX + inx lda DevMgr.SYS.BASEL,x sta ZPDRV+2 lda DevMgr.SYS.BASEH,x sta ZPDRV+3 + ldy #39 + php sei - -* sta SET80STORE - -* sta SETPAGE2 - ldy #39 - -.2 lda (ZPDRV+2),y - sta (ZPDRV),y - dey - bpl .2 + sta SETWRITEAUX + jsr DevMgr.SYS.ScrollAux + sta CLRWRITEAUX -* sta CLRPAGE2 -* sta CLR80STORE plp ldy #39 @@ -436,10 +449,7 @@ DevMgr.SYS.Scroll bne .1 Fall in ClrLineAtX for last line *-------------------------------------- DevMgr.SYS.ClrLineAtX - lda DevMgr.SYS.BASEL,x - sta ZPDRV - lda DevMgr.SYS.BASEH,x - sta ZPDRV+1 + jsr DevMgr.SYS.SetBaseX lda #$A0 ldy #39 @@ -447,17 +457,12 @@ DevMgr.SYS.ClrLineAtX php sei -* sta SET80STORE - -.1 -* sta SETPAGE2 +.1 sta SETWRITEAUX sta (ZPDRV),y -* sta CLRPAGE2 + sta CLRWRITEAUX sta (ZPDRV),y dey bpl .1 - -* sta CLR80STORE plp @@ -484,10 +489,7 @@ DevMgr.SYS.SetCharAtYX .1 phy pha - lda DevMgr.SYS.BASEL,x - sta ZPDRV - lda DevMgr.SYS.BASEH,x - sta ZPDRV+1 + jsr DevMgr.SYS.SetBaseX tya lsr tay @@ -496,17 +498,11 @@ DevMgr.SYS.SetCharAtYX bcs .2 - php sei - sta SET80STORE - -* sta SETPAGE2 + sta SETWRITEAUX sta (ZPDRV),y -* sta CLRPAGE2 - - sta CLR80STORE - + sta CLRWRITEAUX plp ply rts @@ -515,15 +511,19 @@ DevMgr.SYS.SetCharAtYX ply rts *-------------------------------------- +DevMgr.SYS.SetBaseX + lda DevMgr.SYS.BASEL,x + sta ZPDRV + lda DevMgr.SYS.BASEH,x + sta ZPDRV+1 + rts +*-------------------------------------- DevMgr.SYS.CH .BS 1 DevMgr.SYS.CV .BS 1 *-------------------------------------- DevMgr.SYS.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0 DevMgr.SYS.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07 *-------------------------------------- - .LIST ON -DevMgr.FreeMem .EQ * - .LIST OFF MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.D01 LOAD /A2OSX.SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 5ecfb0b6..955fcf2b 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -43,6 +43,8 @@ AUTO 6 rts *-------------------------------------- jmp (pDev) pDevJmp +*-------------------------------------- +* SLEEP *-------------------------------------- pla get PC LO sec @@ -159,35 +161,6 @@ GP.MLICall stx .1 jsr GO.A2osX rts *-------------------------------------- -GO.RamDrv.S jsr GO.ProDOS - stx $42 - sta $43 - jsr $FF00 - jsr GO.A2osX - rts -*-------------------------------------- -GO.DiskII.RW ldy #$D0 - .HS 2C bit abs -GO.RamDrv.RW ldy #$FF - - sty GO.RW.Drv+2 - - jsr GO.ProDOS - stx $42 - sta $43 - - ldy #3 - -GO.RW.SrcDst lda $ffff,y Self Modified - sta $44,y - dey - bpl GO.RW.SrcDst - -GO.RW.Drv jsr $0000 - cli - jsr GO.A2osX - rts -*-------------------------------------- GO.ProDOS pha lda $D000 We re coming from AUXLC, saving bank... sta GO.A2osX.BNK+1 diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 4e6968e6..4c33f7f4 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -26,11 +26,25 @@ Kernel.Init sei Kernel.Init2 >LDAXI MSG.Init2 jsr PrintFAX + >LDAXI MSG.CORE + jsr PrintFAX + + >LDYAI A2osX.CORE + >STYA ZPPtr1 + >LDYAI CORE.Run + >STYA ZPPtr2 + >LDYAI A2osX.CORE.S^$FFFF + >STYA ZPPtr3 + jsr Kernel.Move + + >LDAXI MSG.GP + jsr PrintFAX + >LDYAI A2osX.GP >STYA ZPPtr1 >LDYAI A2osX.SYSCALL >STYA ZPPtr2 - >LDYAI A2osX.D1-A2osX.GP^$FFFF + >LDYAI A2osX.GP.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move @@ -47,7 +61,7 @@ Kernel.Init2 >LDAXI MSG.Init2 >STYA ZPPtr1 >LDYAI $D000 >STYA ZPPtr2 - >LDYAI A2osX.E0-A2osX.D2^$FFFF + >LDYAI A2osX.D2.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move @@ -64,7 +78,7 @@ Kernel.Init2 >LDAXI MSG.Init2 >STYA ZPPtr1 >LDYAI $D000 >STYA ZPPtr2 - >LDYAI A2osX.D2-A2osX.D1^$FFFF + >LDYAI A2osX.D1.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move @@ -81,7 +95,7 @@ Kernel.Init2 >LDAXI MSG.Init2 >STYA ZPPtr1 >LDYAI $E000 >STYA ZPPtr2 - >LDYAI A2osX.E0.E-A2osX.E0^$FFFF + >LDYAI A2osX.E0.S^$FFFF >STYA ZPPtr3 jsr Kernel.Move @@ -1013,7 +1027,9 @@ TskMgrInit >LDYAI MSG.TSK >SYSCALL PutEnv.YA .9 rts *-------------------------------------- -MSG.Init2 >CSTR "A2osX[Stage2]:Init\nInstalling KERNEL...\n - $BE00 Global Page...\n" +MSG.Init2 >CSTR "A2osX[Stage2]:Init\nInstalling KERNEL...\n" +MSG.CORE >CSTR " - $1100 Core...\n" +MSG.GP >CSTR " - $BD00 Global Page...\n" MSG.D1 >CSTR " - $D000 Bank1...\n" MSG.D2 >CSTR " - $D000 Bank2...\n" MSG.E0 >CSTR " - $E000...\n" @@ -1065,7 +1081,7 @@ STARTUP.CMDLINE >CSTR "${A2OSX}SBIN/SHELL ${A2OSX}A2osX.STARTUP" *-------------------------------------- MLIOPEN00 .DA #3 .DA A2OSXCONF - .DA $1000 + .DA $B000 .BS 1 A2OSXCONF >PSTR "A2osX.KCONFIG" *-------------------------------------- diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 41db45d7..1bbe551f 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -435,6 +435,17 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 .DA 0 .DA 0 *-------------------------------------- +DevMgr.SYS.ScrollAux + sta SETREADAUX + +.1 lda (ZPDRV+2),y + sta (ZPDRV),y + dey + bpl .1 + + sta CLRREADAUX + rts +*-------------------------------------- PullP1P2P3 sec .HS 90 bcc PullP1P2 clc diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index 1bf1a283..19146c9e 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -32,7 +32,7 @@ Mem.ReqFlags .EQ ZPMEMMGR+6 store requested Flags * CS : * A = EC *\-------------------------------------- -K.GetMem >PULLB Mem.ReqFlags store requested flags +K.GetMem >PULLB Mem.ReqFlags store requested flags >PULLA get requested size LO tay @@ -113,7 +113,7 @@ K.GetMem.I tya .3 ldy #S.MEM.LEN lda (ZPMemMgrSPtr),y get LEN of this block - cmp Mem.ReqSize compare with requested size + cmp Mem.ReqSize compare with requested size bne .4 iny @@ -136,14 +136,15 @@ K.GetMem.I tya tay no, reserve a free slot to fill gap lda #0 - jsr Mem.AddSlot X = new slot + jsr Mem.AddSlot X = new slot bcs .9 .6 >LDYA Mem.ReqSize - jsr Mem.AddSlot X = new slot + jsr Mem.AddSlot X = new slot bcs .9 *-------------- Reuse this SLOT + .7 lda Mem.ReqFlags get requested flags ora #S.MEM.F.INUSE mark as in use sta (ZPMemMgrSPtr) @@ -151,8 +152,38 @@ K.GetMem.I tya and #S.MEM.F.INIT0 beq .8 - jsr Mem.Init0 X not modified + ldy #S.MEM.PTR + lda (ZPMemMgrSPtr),y ZPMemMgrSPtr already set + sta .12+1 + iny + lda (ZPMemMgrSPtr),y + sta .12+2 + lda Mem.ReqSize + eor #$ff + tay y=not lo count + + lda Mem.ReqSize+1 + eor #$ff a=not hi count + + phx + + ldx #0 + +.11 iny + bne .12 + inc + beq .13 + +.12 stz $ffff,x + inx + bne .11 + + inc .12+2 + bra .11 + +.13 plx + .8 lda #0 ldy #S.MEM.BIN sta (ZPMemMgrSPtr),y @@ -222,11 +253,8 @@ Mem.AddSlot >STYA ZPMemMgrTmp1 save req size rts .98 pla discard new Mem.Free HI - lda #K.E.OOM - sec - rts -.99 lda #K.E.OOH +.99 lda #K.E.OOM sec rts *-------------------------------------- @@ -237,41 +265,6 @@ Mem.NextSlot lda ZPMemMgrSPtr bcc .8 inc ZPMemMgrSPtr+1 .8 rts -*-------------------------------------- -Mem.Init0 ldy #S.MEM.PTR - lda (ZPMemMgrSPtr),y ZPMemMgrSPtr already set - sta .2+1 - iny - lda (ZPMemMgrSPtr),y - sta .2+2 - - ldy #S.MEM.LEN - lda (ZPMemMgrSPtr),y - eor #$ff - pha - - iny - lda (ZPMemMgrSPtr),y - eor #$ff a=not hi count - - ply y=not lo count - - phx - ldx #0 - -.1 iny - bne .2 - inc - beq .8 - -.2 stz $ffff,x - inx - bne .1 - inc .2+2 - bne .1 - -.8 plx - rts */-------------------------------------- * # FreeMem.A * ## In: @@ -603,60 +596,6 @@ K.GetMemStat.YA >STYA ZPMemMgrTmp1 rts *-------------------------------------- -* In: -* Y,A = BINPATH (C-String) -* Out: -* Y,A = ZPMemMgrSPtr = PTR to S.MEM -* X = hMem -*-------------------------------------- -MEM.GetMemByNameYA - ldx Mem.LastSlot - beq .9 - - >STYA .2+1 - >LDYAI Mem.Table - >STYA ZPMemMgrTmp1 - - ldx #0 - -.1 lda (ZPMemMgrTmp1) - bpl .6 In Use? - - ldy #S.MEM.BIN any BIN PATH in this slot? - lda (ZPMemMgrTmp1),y - beq .6 - - jsr K.GetMemPtr.A get pathname - >STYA .3+1 - - ldy #0 - -.2 lda $ffff,y -.3 cmp $ffff,y - bne .6 - iny - ora #0 - bne .2 - - >LDYA ZPMemMgrTmp1 - - clc - rts - -.6 lda ZPMemMgrTmp1 - clc - adc #S.MEM - sta ZPMemMgrTmp1 - bcc .7 - inc ZPMemMgrTmp1+1 - -.7 inx - cpx Mem.LastSlot - bne .1 - -.9 sec - rts -*-------------------------------------- MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.MEM LOAD /A2OSX.SRC/SYS/KERNEL.S diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index 68531f56..3fdde415 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -17,7 +17,10 @@ AUTO 6 .INB /A2OSX.SRC/SYS/KERNEL.S.INIT .INB /A2OSX.SRC/X.PRINTF.S - +A2osX.CORE .PH $1100 + .INB /A2OSX.SRC/SYS/KERNEL.S.CORE + .INB /A2OSX.SRC/SYS/KERNEL.S.D01 + .EP A2osX.GP .PH $BD00 .INB /A2OSX.SRC/SYS/KERNEL.S.GP .EP @@ -43,10 +46,11 @@ A2osX.D2 .PH $D000 .EP A2osX.E0 .PH $E000 .INB /A2OSX.SRC/SYS/KERNEL.S.JMP - .INB /A2OSX.SRC/SYS/KERNEL.S.CORE .INB /A2OSX.SRC/SYS/KERNEL.S.IRQ .INB /A2OSX.SRC/SYS/KERNEL.S.MEM - .INB /A2OSX.SRC/SYS/KERNEL.S.D01 + .LIST ON +DevMgr.FreeMem .EQ * + .LIST OFF .EP A2osX.E0.E .EQ * .INB /A2OSX.SRC/SYS/KERNEL.S.CTRL