mirror of
https://github.com/A2osX/A2osX.git
synced 2024-08-01 00:29:12 +00:00
Kernel 0.9.2
This commit is contained in:
parent
3b1a5ae4da
commit
4294752153
Binary file not shown.
Binary file not shown.
@ -8,7 +8,7 @@ AUTO 4,1
|
||||
K.ENV.SIZE .EQ 256
|
||||
K.FLT.MAX .EQ 4
|
||||
K.EVT.MAX .EQ 4
|
||||
K.NODE.MAX .EQ 128
|
||||
K.DEV.MAX .EQ 32
|
||||
K.PS.MAX .EQ 32
|
||||
*--------------------------------------
|
||||
ZPKERNEL .EQ $0
|
||||
@ -93,7 +93,7 @@ A2osX.SaveSX .EQ $101 Aux
|
||||
* Aux $3FE -> 3FF : IRQ Vector
|
||||
*--------------------------------------
|
||||
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.S.DSTAT .EQ $0340 S.DSTAT=25 or higher depends on dev type
|
||||
K.S.IOCTL .EQ $0360 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)
|
||||
@ -117,7 +117,7 @@ Evt.Table .EQ $0D60 K.EVT.MAX*S.EVT.SIZE=4*8=32b
|
||||
*--------------------------------------
|
||||
Flt.Table .EQ $0D80 K.FLT.MAX*S.FLT.SIZE=4*32=128b
|
||||
*--------------------------------------
|
||||
Node.Table .EQ $0E00 K.NODE.MAX*2=128*2=256b
|
||||
Dev.Table .EQ $0E00 K.Dev.MAX*2=32*2=64b
|
||||
*--------------------------------------
|
||||
K.IOBuf .EQ $0F00
|
||||
*--------------------------------------
|
||||
|
@ -315,8 +315,8 @@ K.InsDrv >STYA BIN.R.CS.Start
|
||||
sbc /DevMgr.HiMem
|
||||
bcs .9 No More Room to load Driver....
|
||||
|
||||
lda DevMgr.NodeCount
|
||||
cmp #K.NODE.MAX
|
||||
lda DevMgr.DevCnt
|
||||
cmp #K.DEV.MAX
|
||||
bne .10 No Device Handle Left
|
||||
|
||||
lda #K.E.OOH
|
||||
@ -343,15 +343,15 @@ K.InsDrv >STYA BIN.R.CS.Start
|
||||
>LDYA BIN.R.End
|
||||
>STYA DevMgr.Free
|
||||
|
||||
ldx DevMgr.NodeCount
|
||||
ldx DevMgr.DevCnt
|
||||
lda DevMgr.Free
|
||||
sta Node.Table,x
|
||||
sta Dev.Table,x
|
||||
inx
|
||||
lda DevMgr.Free+1
|
||||
sta Node.Table,x
|
||||
sta Dev.Table,x
|
||||
|
||||
inx
|
||||
stx DevMgr.NodeCount
|
||||
stx DevMgr.DevCnt
|
||||
|
||||
clc
|
||||
rts
|
||||
|
@ -525,7 +525,7 @@ CORE.PSResume sei
|
||||
DevMgr.Stat .DA DevMgr.FreeMem
|
||||
DevMgr.Free .DA DevMgr.FreeMem
|
||||
.DA DevMgr.HiMem
|
||||
DevMgr.NodeCount .DA #0
|
||||
DevMgr.DevCnt .DA #0
|
||||
.BS 1
|
||||
*--------------------------------------
|
||||
CORE.VBLState .BS 1
|
||||
|
@ -9,14 +9,13 @@ AUTO 4,1
|
||||
* CC = OK, CS = ERROR
|
||||
* Y,A = DEVSLOT
|
||||
*\--------------------------------------
|
||||
K.GetDevByID cmp DevMgr.NodeCount
|
||||
K.GetDevByID cmp DevMgr.DevCnt
|
||||
bcs K.GetDev.NODEV
|
||||
|
||||
tax
|
||||
|
||||
lda Node.Table+1,x
|
||||
beq K.GetDev.NODEV
|
||||
ldy Node.Table,x
|
||||
lda Dev.Table,x
|
||||
jmp K.GetMemPtr
|
||||
|
||||
* clc
|
||||
|
||||
@ -34,9 +33,8 @@ K.GetDevByName >STYA ZPPtr1
|
||||
|
||||
ldx #0
|
||||
|
||||
lda Node.Table+1,x
|
||||
beq .4
|
||||
ldy Node.Table,x
|
||||
ldy Dev.Table,x
|
||||
jsr K.GetMemPtr
|
||||
|
||||
>STYA ZPPtr2
|
||||
|
||||
@ -67,8 +65,7 @@ K.GetDevByName >STYA ZPPtr1
|
||||
rts
|
||||
|
||||
.4 inx
|
||||
inx
|
||||
cpx DevMgr.NodeCount
|
||||
cpx DevMgr.DevCnt
|
||||
bne .1
|
||||
|
||||
K.GetDev.NODEV lda #MLI.E.NODEV
|
||||
|
@ -7,19 +7,14 @@ AUTO 4,1
|
||||
* Y,A = PTR to S.IOCTL
|
||||
*--------------------------------------
|
||||
DRV.DiskII cld
|
||||
cpx #IOCTL.FORMAT
|
||||
bcs .9
|
||||
>STYA pIOCTL
|
||||
jmp (.1,x)
|
||||
.1 .DA DRV.DiskII.STATUS
|
||||
.DA DRV.BLK READ
|
||||
.DA DRV.BLK WRITE
|
||||
.DA A2osX.BadCall FORMAT
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall IRQ
|
||||
.9 jmp A2osX.BadCall
|
||||
*--------------------------------------
|
||||
DRV.DiskII.STATUS
|
||||
>LDYAI DRV.DiskII.DSTAT
|
||||
@ -40,19 +35,15 @@ DRV.DiskII.DSTAT
|
||||
* Y,A = PTR to S.IOCTL
|
||||
*--------------------------------------
|
||||
DRV.RamDrive cld
|
||||
cpx #IOCTL.CONTROL
|
||||
bcs .9
|
||||
>STYA pIOCTL
|
||||
jmp (.1,x)
|
||||
.1 .DA DRV.RamDrive.STATUS
|
||||
.DA DRV.BLK READ
|
||||
.DA DRV.BLK WRITE
|
||||
.DA DRV.BLK FORMAT
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall IRQ
|
||||
.9 jmp A2osX.BadCall
|
||||
*--------------------------------------
|
||||
DRV.RamDrive.STATUS
|
||||
jsr DRV.Blk
|
||||
@ -78,19 +69,15 @@ DRV.RamDrive.DSTAT
|
||||
* Y,A = PTR to S.IOCTL
|
||||
*--------------------------------------
|
||||
DRV.BlkDevice cld
|
||||
cpx #IOCTL.CONTROL
|
||||
bcs .9
|
||||
>STYA pIOCTL
|
||||
jmp (.1,x)
|
||||
.1 .DA DRV.BlkDevice.STATUS
|
||||
.DA DRV.BLK READ
|
||||
.DA DRV.BLK WRITE
|
||||
.DA DRV.BLK FORMAT
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall
|
||||
.DA A2osX.BadCall IRQ
|
||||
.9 jmp A2osX.BadCall
|
||||
*--------------------------------------
|
||||
DRV.BlkDevice.STATUS
|
||||
jsr DRV.Blk
|
||||
@ -273,9 +260,7 @@ DRV.SYS.CLOSE
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.SYS.Read >STYA pIOCTL
|
||||
|
||||
lda A2osX.ASCREEN
|
||||
DRV.SYS.Read lda A2osX.ASCREEN
|
||||
cmp #2 is SYS active?
|
||||
bne .9
|
||||
|
||||
@ -294,9 +279,7 @@ DRV.SYS.Read >STYA pIOCTL
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.SYS.WRITE >STYA pIOCTL
|
||||
|
||||
ldy #S.IOCTL.BUFPTR
|
||||
DRV.SYS.WRITE ldy #S.IOCTL.BUFPTR
|
||||
lda (pIOCTL),y
|
||||
|
||||
sta ZPDRV+4
|
||||
|
@ -135,8 +135,16 @@ Kernel.Init3 sta SETALTZP
|
||||
sta IRQ.InKernel
|
||||
|
||||
jsr MemMgrInit
|
||||
|
||||
>LDYAI NODE.NULL
|
||||
jsr DevMgrInit.AddCDev
|
||||
|
||||
>LDYAI NODE.SYS
|
||||
jsr DevMgrInit.AddCDev
|
||||
|
||||
jsr PS0Init
|
||||
bcs *
|
||||
|
||||
>LDYAI MSG.Init3
|
||||
>SYSCALL PrintF
|
||||
|
||||
@ -182,6 +190,7 @@ Kernel.Init3 sta SETALTZP
|
||||
|
||||
>DEBUGOA
|
||||
|
||||
>DEBUG
|
||||
jmp CORE.Run
|
||||
|
||||
.9 >PUSHA
|
||||
@ -503,12 +512,6 @@ PS0Init ldx #0
|
||||
>LDYAI K.STACKTOP
|
||||
>STYA pStack
|
||||
|
||||
>LDYAI NODE.NULL
|
||||
jsr DevMgrInit.AddNode
|
||||
|
||||
>LDYAI NODE.SYS
|
||||
jsr DevMgrInit.AddNode
|
||||
|
||||
lda #DEVID.SYS
|
||||
|
||||
ldy #S.PS.hStdIn
|
||||
@ -526,24 +529,6 @@ PS0Init ldx #0
|
||||
*--------------------------------------
|
||||
DevMgr.SYS.TITLE .AZ "A2osX System Screen"
|
||||
*--------------------------------------
|
||||
NODE.NULL .DA #S.NODE.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #DEVID.NULL
|
||||
.DA DRV.NULL
|
||||
.DA 0 ROMPTR
|
||||
.AZ "NULL" NAME
|
||||
.HS 000000
|
||||
*--------------------------------------
|
||||
NODE.SYS .DA #S.NODE.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #DEVID.SYS
|
||||
.DA DRV.SYS
|
||||
.DA 0 ROMPTR
|
||||
.AZ "SYS" NAME
|
||||
.HS 00000000
|
||||
*--------------------------------------
|
||||
* Setup AuxLC $FFFE->Kernel IRQ Handler
|
||||
* if irq not handled, jmp (S.IrqMgrOldFFFE)
|
||||
*--------------------------------------
|
||||
@ -873,20 +858,20 @@ DevMgrInit.DEVCNT
|
||||
.BS 1
|
||||
*--------------------------------------
|
||||
DevMgrInit.DII >LDYAI DRV.DiskII
|
||||
jmp DevMgrInit.AddDev
|
||||
jmp DevMgrInit.AddBDev
|
||||
*--------------------------------------
|
||||
DevMgrInit.RAM >LDYAI DRV.RamDrive
|
||||
jmp DevMgrInit.AddDev
|
||||
jmp DevMgrInit.AddBDev
|
||||
*--------------------------------------
|
||||
DevMgrInit.USR >LDYAI DRV.BlkDevice
|
||||
jmp DevMgrInit.AddDev
|
||||
jmp DevMgrInit.AddBDev
|
||||
*--------------------------------------
|
||||
DevMgrInit.BLK ldy #$ff
|
||||
lda (ZPPtr1),y
|
||||
sta NODE.BDEV+S.NODE.DEV.BUSPTR
|
||||
|
||||
>LDYAI DRV.BlkDevice
|
||||
jmp DevMgrInit.AddDev
|
||||
jmp DevMgrInit.AddBDev
|
||||
*--------------------------------------
|
||||
DevMgrInit.SP ldy #$ff
|
||||
lda (ZPPtr1),y
|
||||
@ -906,11 +891,11 @@ DevMgrInit.SP ldy #$ff
|
||||
bcs .9
|
||||
|
||||
>LDYAI DRV.SmartPort
|
||||
jsr DevMgrInit.AddDev
|
||||
jsr DevMgrInit.AddBDev
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
DevMgrInit.AddDev
|
||||
DevMgrInit.AddBDev
|
||||
>STYA NODE.BDEV+S.NODE.DEV.DRVPTR
|
||||
|
||||
lda NODE.BDEV+S.NODE.DEV.BUSID
|
||||
@ -921,16 +906,27 @@ DevMgrInit.AddDev
|
||||
ora #$30
|
||||
sta NODE.BDEV+S.NODE.DEV.NAME+3 SxDn
|
||||
|
||||
>LDYAI NODE.BDEV
|
||||
>LDYAI DEV.BDEV
|
||||
|
||||
DevMgrInit.AddNode
|
||||
ldx DevMgr.NodeCount
|
||||
sta Node.Table+1,x
|
||||
tya
|
||||
sta Node.Table,x
|
||||
DevMgrInit.AddCDev
|
||||
>STYA .1+1
|
||||
jsr K.GetMem
|
||||
>STYA .2+1
|
||||
|
||||
txa
|
||||
|
||||
ldx DevMgr.DevCnt
|
||||
sta Dev.Table,x
|
||||
inx
|
||||
inx
|
||||
stx DevMgr.NodeCount
|
||||
stx DevMgr.DevCnt
|
||||
|
||||
ldx #S.NODE.DEV-1
|
||||
|
||||
.1 lda $ffff,x SELF MODIFIED
|
||||
.2 sta $ffff,x SELF MODIFIED
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
@ -938,7 +934,25 @@ DevMgrInit.AddNode
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
NODE.BDEV .DA #S.NODE.T.BDEV
|
||||
DEV.NULL .DA #S.NODE.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #DEVID.NULL
|
||||
.DA DRV.NULL
|
||||
.DA 0 ROMPTR
|
||||
.AZ "NULL" NAME
|
||||
.HS 000000
|
||||
*--------------------------------------
|
||||
DEV.SYS .DA #S.NODE.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #DEVID.SYS
|
||||
.DA DRV.SYS
|
||||
.DA 0 ROMPTR
|
||||
.AZ "SYS" NAME
|
||||
.HS 00000000
|
||||
*--------------------------------------
|
||||
DEV.BDEV .DA #S.NODE.T.BDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #0 DEVID
|
||||
|
@ -2,6 +2,8 @@ NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
*--------------------------------------
|
||||
IO.OPEN
|
||||
*--------------------------------------
|
||||
IO.SELECT jsr K.GetMemPtr
|
||||
>STYA pNode
|
||||
rts
|
||||
|
@ -35,7 +35,7 @@ K.IrqHAuxLC cld
|
||||
|
||||
lda RDREADAUX
|
||||
pha
|
||||
sta CLRREADAUX Make sure we can access Node.Table
|
||||
sta CLRREADAUX Make sure we can access Dev.Table
|
||||
|
||||
lda RDWRITEAUX
|
||||
pha
|
||||
@ -190,11 +190,11 @@ K.IrqH.Switch inc IRQ.Tick
|
||||
*--------------------------------------
|
||||
K.IrqH.DEV ldx #0
|
||||
|
||||
.1 lda Node.Table+1,x
|
||||
.1 lda Dev.Table+1,x
|
||||
beq .2
|
||||
|
||||
sta $ff
|
||||
lda Node.Table,x
|
||||
lda Dev.Table,x
|
||||
sta $fe
|
||||
|
||||
ldy #S.NODE.DEV.DRVPTR
|
||||
@ -225,7 +225,7 @@ K.IrqH.DEV ldx #0
|
||||
.2 inx
|
||||
inx
|
||||
|
||||
.3 cpx DevMgr.NodeCount
|
||||
.3 cpx DevMgr.DevCnt
|
||||
bne .1
|
||||
|
||||
sec
|
||||
|
@ -121,7 +121,7 @@ K.MKDir jsr PFT.CheckPathYA
|
||||
* CC = OK, CS = ERROR
|
||||
* A = hFILE
|
||||
*\--------------------------------------
|
||||
K.MkNod jsr K.GetDevByName Ptr1=NAME
|
||||
K.MkNod jsr K.GetDevByName Y,A=NAME
|
||||
bcs .9
|
||||
>STYA .1+1
|
||||
stx .2+1
|
||||
|
@ -19,7 +19,6 @@ AUTO 4,1
|
||||
.INB /A2OSX.SRC/X.PRINTF.S
|
||||
A2osX.MAIN .PH $1100
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.CORE
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.IO
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DRV
|
||||
.EP
|
||||
A2osX.AUX .PH $0C00
|
||||
@ -37,7 +36,6 @@ A2osX.D1 .PH $D000
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STDLIB
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.PFT
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DEV
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.FIO
|
||||
.EP
|
||||
A2osX.D2 .PH $D000
|
||||
.DA #RRAMWRAMBNK2
|
||||
@ -53,6 +51,8 @@ A2osX.E0 .PH $E000
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.JMP
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.IRQ
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.MEM
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.IO
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.FIO
|
||||
DevMgr.FreeMem .EQ *
|
||||
.EP
|
||||
A2osX.E0.E .EQ *
|
||||
|
Loading…
Reference in New Issue
Block a user