mirror of https://github.com/A2osX/A2osX.git
Kernel 0.9.2
This commit is contained in:
parent
f5dd067adc
commit
1b5baa2aff
Binary file not shown.
Binary file not shown.
|
@ -284,6 +284,9 @@ S.MSTAT .EQ 24
|
|||
* BLK : ROM Entry point Cn($Cnff)
|
||||
* PRT : ROM Entry point Cn($Cnff)+3
|
||||
*--------------------------------------
|
||||
DEVID.NULL .EQ 0
|
||||
DEVID.SYS .EQ 2
|
||||
*--------------------------------------
|
||||
IOCTL.STATUS .EQ 0 X,Y = byte count returned
|
||||
IOCTL.READBLOCK .EQ 2
|
||||
IOCTL.WRITEBLOCK .EQ 4
|
||||
|
|
|
@ -443,7 +443,7 @@ BIN.InsDrv ldy #H.BIN.DRV.CODE.O
|
|||
|
||||
.10 inc DevMgr.Count
|
||||
|
||||
>SYSCALL GetDevByID.A
|
||||
>SYSCALL GetDevByID
|
||||
>STYA ZPPtr2 setup Ptr2 to dest HEADER
|
||||
|
||||
ldy #H.BIN.DRV.HEADER.O
|
||||
|
|
|
@ -525,7 +525,7 @@ CORE.PSResume sei
|
|||
DevMgr.Stat .DA DevMgr.FreeMem
|
||||
DevMgr.Free .DA DevMgr.FreeMem
|
||||
.DA DevMgr.HiMem
|
||||
DevMgr.Count .DA #2 NUL,SYS
|
||||
DevMgr.Count .DA 0
|
||||
*--------------------------------------
|
||||
CORE.VBLState .BS 1
|
||||
CORE.IRQMode .BS 1
|
||||
|
|
|
@ -75,10 +75,10 @@ K.GetDevDNF lda #MLI.E.NODEV CS from cpx/beq
|
|||
* **Out:**
|
||||
* Y,A = S.DSTAT
|
||||
*\--------------------------------------
|
||||
K.DevClose ldx #DEVMGR.CLOSE
|
||||
K.DevClose ldx #IOCTL.CLOSE
|
||||
.HS 2C BIT ABS
|
||||
K.GetDevStatus ldx #DEVMGR.STATUS
|
||||
jsr K.GetDevByID.A
|
||||
K.GetDevStatus ldx #IOCTL.STATUS
|
||||
jsr K.GetDevByID
|
||||
bcs K.IOCTL.9
|
||||
|
||||
>STYA pDev
|
||||
|
@ -103,7 +103,7 @@ K.IOCTL tax op
|
|||
|
||||
tya id
|
||||
|
||||
jsr K.GetDevByID.A
|
||||
jsr K.GetDevByID
|
||||
bcs K.IOCTL.9
|
||||
|
||||
>STYA pDev
|
||||
|
|
|
@ -78,7 +78,7 @@ K.ReadDir.EL .BS 1
|
|||
K.ReadDir.EPB .BS 1
|
||||
K.ReadDir.EC .BS 2
|
||||
*--------------------------------------
|
||||
K.ReadDir.A jsr PFT.CheckNodeA
|
||||
K.ReadDir jsr PFT.CheckNodeA
|
||||
sta K.ReadDir.hDir
|
||||
jsr K.GetMemPtr
|
||||
>STYA ZPPtr1
|
||||
|
|
|
@ -228,9 +228,9 @@ DRV.SmartPort cld
|
|||
*--------------------------------------
|
||||
DRV.SmartPort.S jsr DRV.SmartPort.GetDev
|
||||
>LDYAI K.S.DSTAT
|
||||
>STYA K.S.IOCTL+2
|
||||
lda #3
|
||||
sta K.S.IOCTL+4
|
||||
>STYA K.S.IOCTL+S.IOCTL.BUFPTR
|
||||
lda #S.IOCTL.STATCODE.GETDIB
|
||||
sta K.S.IOCTL+S.IOCTL.CTRLCODE
|
||||
jsr DRV.SmartPort.Go
|
||||
bcs .9
|
||||
>LDYAI K.S.DSTAT
|
||||
|
@ -273,10 +273,7 @@ DRV.SmartPort.GetDev
|
|||
sta DRV.SmartPort.Go.Cmd
|
||||
tax
|
||||
lda DRV.SmartPort.Cnt,x
|
||||
sta K.S.IOCTL
|
||||
ldy #S.DEV.DEVID
|
||||
lda (pDev),y
|
||||
sta K.S.IOCTL+1
|
||||
sta K.S.IOCTL+S.IOCTL.CNT
|
||||
rts
|
||||
DRV.SmartPort.Cnt
|
||||
.HS 03030301030101010404
|
||||
|
|
|
@ -103,13 +103,13 @@ K.ExpandStr stz .88+1 Reset Intermediate string...
|
|||
.80 lda .88+1 working from our temp string ?
|
||||
beq .81 no...
|
||||
|
||||
jsr K.FreeMem.A yes, discard....
|
||||
jsr K.FreeMem yes, discard....
|
||||
|
||||
.81 ldx ENV.BufLen
|
||||
stz K.Buf256,x
|
||||
|
||||
>LDYAI K.Buf256
|
||||
jsr K.NewStr.YA
|
||||
jsr K.NewStr
|
||||
bcs .9
|
||||
|
||||
stx .88+1 save this as temp string, in case of recurse
|
||||
|
@ -300,7 +300,7 @@ ENV.GetValue jsr ENV.ExpandSysVar
|
|||
bcc K.UnsetEnv.I.9
|
||||
|
||||
>LDYAI ENV.VarName
|
||||
jsr K.GetEnv.YA
|
||||
jsr K.GetEnv
|
||||
bcs K.UnsetEnv.I.9
|
||||
*--------------------------------------
|
||||
ENV.AddYAToBuf >STYA ZPPtr3
|
||||
|
@ -337,7 +337,7 @@ ENV.ExpandSysVar
|
|||
|
||||
and #$0F
|
||||
|
||||
jsr K.GetArg.A
|
||||
jsr K.GetArg
|
||||
bcs K.UnsetEnv.I.8 Arg# is undefined, do not append anything
|
||||
|
||||
jmp ENV.AddYAToBuf
|
||||
|
@ -367,7 +367,7 @@ ENV.SysVarsJmp .DA ENV.SysVarsArgs
|
|||
.DA ENV.SysVarsCPID
|
||||
*--------------------------------------
|
||||
ENV.SysVarsArgs lda #1
|
||||
jsr K.GetArg.A
|
||||
jsr K.GetArg
|
||||
bcs .8
|
||||
|
||||
>STYA ZPPtr3
|
||||
|
|
|
@ -461,9 +461,7 @@ MemMgrInit >LDYAI Mem.MHiMem
|
|||
|
||||
rts
|
||||
*--------------------------------------
|
||||
PS0Init sta SET80STORE
|
||||
|
||||
ldx #0
|
||||
PS0Init ldx #0
|
||||
|
||||
ldy #0
|
||||
|
||||
|
@ -476,12 +474,9 @@ PS0Init sta SET80STORE
|
|||
bcs .10
|
||||
and #$3F
|
||||
|
||||
.10 php
|
||||
sei
|
||||
sta SETPAGE2
|
||||
.10 sta SETWRITEAUX
|
||||
sta SYS.BASL0,x
|
||||
sta CLRPAGE2
|
||||
plp
|
||||
sta CLRWRITEAUX
|
||||
|
||||
iny
|
||||
|
||||
|
@ -502,31 +497,30 @@ PS0Init sta SET80STORE
|
|||
|
||||
.3 lda #$20
|
||||
|
||||
.4 php
|
||||
sei
|
||||
sta SETPAGE2
|
||||
.4 sta SETWRITEAUX
|
||||
sta SYS.BASL0,x
|
||||
sta CLRPAGE2
|
||||
plp
|
||||
|
||||
sta CLRWRITEAUX
|
||||
|
||||
.5 lda #$20
|
||||
sta SYS.BASL0,x
|
||||
|
||||
inx
|
||||
cpx #40
|
||||
bne .4
|
||||
|
||||
sta CLR80STORE
|
||||
|
||||
|
||||
>LDYAI CORE.S.PS0 Select Process 0 (Kernel)
|
||||
>STYA pPs
|
||||
|
||||
>LDYAI K.STACKTOP
|
||||
>STYA pStack
|
||||
|
||||
>LDYAI DEV.SYS
|
||||
>SYSCALL MkNod Will open SYS
|
||||
bcs .9
|
||||
>LDYAI NODE.NULL
|
||||
jsr DevMgrInit.AddNode
|
||||
|
||||
>LDYAI NODE.SYS
|
||||
jsr DevMgrInit.AddNode
|
||||
|
||||
lda #DEVID.SYS
|
||||
|
||||
ldy #S.PS.hStdIn
|
||||
sta (pPs),y
|
||||
|
@ -543,19 +537,19 @@ PS0Init sta SET80STORE
|
|||
*--------------------------------------
|
||||
DevMgr.SYS.TITLE .AZ "A2osX System Screen"
|
||||
*--------------------------------------
|
||||
IOCTL.NULL .DA #S.NODE.T.CDEV
|
||||
NODE.NULL .DA #S.NODE.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #0 DEVID
|
||||
.DA #DEVID.NULL
|
||||
.DA DRV.NULL
|
||||
.DA 0 ROMPTR
|
||||
.AZ "NULL" NAME
|
||||
.HS 000000
|
||||
*--------------------------------------
|
||||
IOCTL.SYS .DA #S.NODE.T.CDEV
|
||||
NODE.SYS .DA #S.NODE.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #1 DEVID
|
||||
.DA #DEVID.SYS
|
||||
.DA DRV.SYS
|
||||
.DA 0 ROMPTR
|
||||
.AZ "SYS" NAME
|
||||
|
@ -812,13 +806,13 @@ DevMgrInit >LDYAI MSG.DEV
|
|||
tax 000DSSS0
|
||||
lsr 0000DSSS
|
||||
and #$7
|
||||
sta IOCTL.BDEV+S.NODE.DEV.BUSID
|
||||
sta NODE.BDEV+S.NODE.DEV.BUSID
|
||||
|
||||
lda DEVPTRS,x
|
||||
sta IOCTL.BDEV+S.NODE.DEV.ROMPTR
|
||||
sta NODE.BDEV+S.NODE.DEV.ROMPTR
|
||||
|
||||
lda DEVPTRS+1,x
|
||||
sta IOCTL.BDEV+S.NODE.DEV.ROMPTR+1
|
||||
sta NODE.BDEV+S.NODE.DEV.ROMPTR+1
|
||||
|
||||
sta ZPPtr1+1
|
||||
stz ZPPtr1
|
||||
|
@ -826,7 +820,7 @@ DevMgrInit >LDYAI MSG.DEV
|
|||
plp
|
||||
lda #0
|
||||
adc #1 Make DevID 1 or 2
|
||||
sta IOCTL.BDEV+S.NODE.DEV.DEVID
|
||||
sta NODE.BDEV+S.NODE.DEV.DEVID
|
||||
|
||||
lda ZPPtr1+1
|
||||
|
||||
|
@ -864,11 +858,11 @@ DevMgrInit >LDYAI MSG.DEV
|
|||
|
||||
lda ZPPtr1 get $Cn
|
||||
and #$f get $0n
|
||||
cmp IOCTL.BDEV+S.NODE.DEV.DEVID same as SSS ?
|
||||
cmp NODE.BDEV+S.NODE.DEV.DEVID same as SSS ?
|
||||
beq .51
|
||||
|
||||
inc IOCTL.BDEV+S.NODE.DEV.DEVID Remapped SP devices....
|
||||
inc IOCTL.BDEV+S.NODE.DEV.DEVID Add 2 to DEVID (2 & 3)
|
||||
inc NODE.BDEV+S.NODE.DEV.DEVID Remapped SP devices....
|
||||
inc NODE.BDEV+S.NODE.DEV.DEVID Add 2 to DEVID (2 & 3)
|
||||
|
||||
.51 jsr DevMgrInit.SP
|
||||
lda #A2osX.S.SP
|
||||
|
@ -877,7 +871,7 @@ DevMgrInit >LDYAI MSG.DEV
|
|||
.6 jsr DevMgrInit.BLK
|
||||
lda #A2osX.S.BLK
|
||||
|
||||
.7 ldx IOCTL.BDEV+S.NODE.DEV.DEVID
|
||||
.7 ldx NODE.BDEV+S.NODE.DEV.DEVID
|
||||
sta A2osX.S,x
|
||||
|
||||
.8 dec DevMgrInit.DEVCNT
|
||||
|
@ -900,7 +894,7 @@ DevMgrInit.USR >LDYAI DRV.BlkDevice
|
|||
*--------------------------------------
|
||||
DevMgrInit.BLK ldy #$ff
|
||||
lda (ZPPtr1),y
|
||||
sta IOCTL.BDEV+S.NODE.DEV.ROMPTR
|
||||
sta NODE.BDEV+S.NODE.DEV.ROMPTR
|
||||
|
||||
>LDYAI DRV.BlkDevice
|
||||
jmp DevMgrInit.AddDev
|
||||
|
@ -910,11 +904,11 @@ DevMgrInit.SP ldy #$ff
|
|||
clc
|
||||
adc #3 Compute smartport entry point
|
||||
sta .1+1
|
||||
sta IOCTL.BDEV+S.NODE.DEV.ROMPTR
|
||||
sta NODE.BDEV+S.NODE.DEV.ROMPTR
|
||||
lda ZPPtr1+1
|
||||
sta .1+2
|
||||
|
||||
lda IOCTL.BDEV+S.NODE.DEV.DEVID
|
||||
lda NODE.BDEV+S.NODE.DEV.DEVID
|
||||
sta SP.DEV.STATUS.DEVID
|
||||
|
||||
.1 jsr $ffff Self Modified
|
||||
|
@ -928,18 +922,25 @@ DevMgrInit.SP ldy #$ff
|
|||
.9 rts
|
||||
*--------------------------------------
|
||||
DevMgrInit.AddDev
|
||||
>STYA IOCTL.BDEV+S.NODE.DEV.DRVPTR
|
||||
>STYA NODE.BDEV+S.NODE.DEV.DRVPTR
|
||||
|
||||
lda IOCTL.BDEV+S.NODE.DEV.BUSID
|
||||
lda NODE.BDEV+S.NODE.DEV.BUSID
|
||||
ora #$30
|
||||
sta IOCTL.BDEV+S.NODE.DEV.NAME+1 SnDy
|
||||
sta NODE.BDEV+S.NODE.DEV.NAME+1 SnDy
|
||||
|
||||
lda IOCTL.BDEV+S.NODE.DEV.DEVID
|
||||
lda NODE.BDEV+S.NODE.DEV.DEVID
|
||||
ora #$30
|
||||
sta IOCTL.BDEV+S.NODE.DEV.NAME+3 SxDn
|
||||
sta NODE.BDEV+S.NODE.DEV.NAME+3 SxDn
|
||||
|
||||
>LDYAI IOCTL.BDEV
|
||||
|
||||
>LDYAI NODE.BDEV
|
||||
|
||||
DevMgrInit.AddNode
|
||||
ldx DevMgr.Count
|
||||
sta Dev.Table+1,x
|
||||
tya
|
||||
sta Dev.Table,x
|
||||
inc DevMgr.Count
|
||||
inc DevMgr.Count
|
||||
clc
|
||||
rts
|
||||
|
||||
|
@ -947,7 +948,7 @@ DevMgrInit.AddDev
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
IOCTL.BDEV .DA #S.NODE.T.BDEV
|
||||
NODE.BDEV .DA #S.NODE.T.BDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #0 DEVID
|
||||
|
|
|
@ -123,7 +123,7 @@ K.lrintf jsr MATH.PullFAC
|
|||
|
||||
>PUSHW FAC+1
|
||||
>PUSHW FAC+3
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -303,7 +303,7 @@ K.FreeMem phy
|
|||
|
||||
jsr CORE.PSSelect0 Select PS0 for proper I/O devices
|
||||
|
||||
jsr DevMgr.SYS.Control
|
||||
jsr DRV.SYS.Control
|
||||
|
||||
pla Get PC and sub 2 for calling address
|
||||
sec
|
||||
|
@ -586,7 +586,7 @@ K.LoadStkObj >SYSCALL LoadFile
|
|||
stx .8+1 Save MAIN hMem
|
||||
>STYA A2L Save LEN temporarly
|
||||
|
||||
jsr K.NewStkObj.YA
|
||||
jsr K.NewStkObj
|
||||
bcs .9
|
||||
stx .80+1
|
||||
>STYA A4L Save Destination Address in AUX
|
||||
|
@ -609,7 +609,7 @@ K.LoadStkObj >SYSCALL LoadFile
|
|||
jsr AuxMove
|
||||
|
||||
.8 lda #$ff SELF MODIFIED
|
||||
jsr K.FreeMem.A release MAIN memory
|
||||
jsr K.FreeMem release MAIN memory
|
||||
|
||||
.80 lda #$ff Returns AUX hMem
|
||||
rts
|
||||
|
|
|
@ -81,7 +81,7 @@ PS.CreateChild ldx #0
|
|||
.4 inc CORE.LastPSID Get a PSID not alredy running
|
||||
beq .4 not = 0
|
||||
lda CORE.LastPSID
|
||||
jsr CORE.GetPSByID.A
|
||||
jsr CORE.GetPSByID
|
||||
bcc .4
|
||||
|
||||
plx
|
||||
|
@ -113,7 +113,7 @@ PS.CreateChild ldx #0
|
|||
ldy #S.PS.hPREFIX copy hPREFIX...
|
||||
lda (pPs),y
|
||||
jsr K.GetMemPtr
|
||||
jsr K.NewStr.YA
|
||||
jsr K.NewStr
|
||||
bcs .9
|
||||
|
||||
jsr PS.SetMemOwner Set Ownership
|
||||
|
@ -124,7 +124,7 @@ PS.CreateChild ldx #0
|
|||
|
||||
ldy #S.PS.hENV ...and hENV from parent PS
|
||||
lda (pPs),y
|
||||
jsr PS.DupEnv.A
|
||||
jsr PS.DupEnv
|
||||
bcs .9
|
||||
|
||||
ldy #S.PS.hENV
|
||||
|
@ -253,7 +253,7 @@ PS.CmdLine2Args >STYA ZPPtr1
|
|||
|
||||
PS.bInQuote .BS 1
|
||||
*--------------------------------------
|
||||
PS.Init jsr BIN.Load.YA Y,A=filename full path
|
||||
PS.Init jsr BIN.Load Y,A=filename full path
|
||||
bcs .9
|
||||
>STYA ZPPtr4 save PTR to Code Segment
|
||||
|
||||
|
|
|
@ -125,13 +125,13 @@ K.MkNod jsr K.GetDevByName Ptr1=NAME
|
|||
>STYA .1+1
|
||||
stx .2+1
|
||||
|
||||
ldy #S.DEV.S
|
||||
ldy #S.NODE.T
|
||||
lda (pDev),y
|
||||
bit #S.DEV.S.BLOCK
|
||||
cmp #S.NODE.T.CDEV
|
||||
bne .99
|
||||
|
||||
txa Pass DEV.ID to OPEN
|
||||
ldx #DEVMGR.OPEN
|
||||
ldx #IOCTL.OPEN
|
||||
.1 jsr $FFFF SELF MODIFIED
|
||||
bcs .9
|
||||
|
||||
|
@ -145,12 +145,12 @@ K.MkNod jsr K.GetDevByName Ptr1=NAME
|
|||
lda #S.NODE.T.CDEV
|
||||
sta (ZPPtr3),y
|
||||
|
||||
ldy #S.NODE.DEV.ID
|
||||
ldy #S.NODE.DEV.DEVID
|
||||
|
||||
.2 lda #$ff Self Modified
|
||||
sta (ZPPtr3),y
|
||||
|
||||
ldy #S.NODE.DEV.JMP
|
||||
ldy #S.NODE.DEV.DRVPTR
|
||||
lda .1+1
|
||||
sta (ZPPtr3),y
|
||||
|
||||
|
|
|
@ -593,7 +593,7 @@ K.GetChar ldy #S.PS.hStdIn
|
|||
* CC = success
|
||||
* A = char
|
||||
*\--------------------------------------
|
||||
K.GetC.A jsr K.GetMemPtr
|
||||
K.GetC jsr K.GetMemPtr
|
||||
>STYA pDev
|
||||
|
||||
ldy #S.NODE.T
|
||||
|
@ -621,8 +621,8 @@ K.GetC.REG >PUSHWI K.IOBuf
|
|||
lda K.Buf256
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
K.GetC.CDEV ldx #DEVMGR.READ
|
||||
ldy #S.NODE.DEV.JMP
|
||||
K.GetC.CDEV ldx #IOCTL.READ
|
||||
ldy #S.NODE.DEV.DRVPTR
|
||||
lda (pDev),y
|
||||
sta .1+1
|
||||
iny
|
||||
|
@ -943,7 +943,7 @@ K.FClose.DIR ldy #S.NODE.REG.REF
|
|||
jsr K.FreeMem
|
||||
bra K.FClose.8
|
||||
|
||||
K.FClose.CDEV ldy #S.NODE.DEV.ID
|
||||
K.FClose.CDEV ldy #S.NODE.DEV.DEVID
|
||||
lda (ZPPtr1),y
|
||||
jsr K.DevClose
|
||||
bcs K.FClose.9
|
||||
|
|
|
@ -384,7 +384,7 @@ K.realpath >STYA ZPPtr1
|
|||
bra .5
|
||||
|
||||
.89 >LDYAI K.Buf256
|
||||
jmp K.NewStr.YA
|
||||
jmp K.NewStr
|
||||
|
||||
.90 lda #K.E.SYN
|
||||
sec
|
||||
|
|
|
@ -164,9 +164,9 @@ K.StrMatch jsr MEM.PullP1P2
|
|||
* **Out:**
|
||||
* Uppercased/lowercased String in Buffer
|
||||
*\--------------------------------------
|
||||
K.StrUpr.YA ldx #0
|
||||
K.StrUpr ldx #0
|
||||
.HS 2C bit abs
|
||||
K.StrLwr.YA ldx #2
|
||||
K.StrLwr ldx #2
|
||||
>STYA ZPPtr1
|
||||
|
||||
pha save Y,A to restore them at exit
|
||||
|
|
Loading…
Reference in New Issue