mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-04 01:30:25 +00:00
Kernel 0.9.1 : Kernel/memory REORG for more IO buffers & room in LC for DHGR.DRV
This commit is contained in:
parent
b25be9cee0
commit
f7b519729b
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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
|
||||
|
@ -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)
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user