Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-06-22 16:59:24 +02:00
parent f5dd067adc
commit 1b5baa2aff
17 changed files with 83 additions and 82 deletions

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -123,7 +123,7 @@ K.lrintf jsr MATH.PullFAC
>PUSHW FAC+1
>PUSHW FAC+3
clc
rts
*--------------------------------------

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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