mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-27 16:29:06 +00:00
KERNEL:Cleanup to make room for DHGR Driver
This commit is contained in:
parent
448a4c2133
commit
d2cacb006a
BIN
A2OSX.BOOT.po
BIN
A2OSX.BOOT.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
@ -432,6 +432,7 @@ S.PS.F.INUSE .EQ %10000000
|
|||||||
S.PS.F.HOLD .EQ %01000000
|
S.PS.F.HOLD .EQ %01000000
|
||||||
S.PS.F.EVENT .EQ %00100000
|
S.PS.F.EVENT .EQ %00100000
|
||||||
S.PS.F.ENV .EQ %00010000
|
S.PS.F.ENV .EQ %00010000
|
||||||
|
S.PS.F.SLEEP .EQ %00001000
|
||||||
S.PS.ID .EQ 1
|
S.PS.ID .EQ 1
|
||||||
S.PS.PID .EQ 2
|
S.PS.PID .EQ 2
|
||||||
S.PS.hCS .EQ 3
|
S.PS.hCS .EQ 3
|
||||||
|
@ -61,12 +61,13 @@ S.GetEvents.DEV >LDYAI DevMgr.Table
|
|||||||
|
|
||||||
.1 ldy #S.DEV.F
|
.1 ldy #S.DEV.F
|
||||||
lda (pDev),y get S.DEV.F
|
lda (pDev),y get S.DEV.F
|
||||||
and #S.DEV.F.EVENT
|
bit #S.DEV.F.EVENT
|
||||||
beq .2 EVENT enabled ?
|
beq .2 EVENT enabled ?
|
||||||
|
|
||||||
lda (pDev)
|
lda (pDev)
|
||||||
cmp #H.BIN.HEADER.DRV65
|
cmp #H.BIN.HEADER.DRV65
|
||||||
bne *
|
bne *
|
||||||
|
|
||||||
ldx #DEVMGR.GETEVENT
|
ldx #DEVMGR.GETEVENT
|
||||||
jsr pDevJmp Call DRV GetEvent function
|
jsr pDevJmp Call DRV GetEvent function
|
||||||
bcs .2 no event
|
bcs .2 no event
|
||||||
|
@ -10,15 +10,17 @@ AUTO 6
|
|||||||
S.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE
|
S.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE
|
||||||
>STYA pPs
|
>STYA pPs
|
||||||
|
|
||||||
lda #1 Skip PS #0
|
lda TSKMGR.SIZE
|
||||||
sta TSKMGR.COUNT
|
sta TSKMGR.COUNT
|
||||||
|
|
||||||
.1 lda (pPs) get S.PS.F
|
.1 dec TSKMGR.COUNT skip PS 0
|
||||||
and #S.PS.F.INUSE In use ?
|
beq .8
|
||||||
beq .5
|
|
||||||
|
|
||||||
lda (pPs) get S.PS.F
|
lda (pPs) get S.PS.F
|
||||||
and #S.PS.F.HOLD Waiting for Another Task to Terminate?
|
bit #S.PS.F.INUSE In use ?
|
||||||
|
beq .5
|
||||||
|
|
||||||
|
bit #S.PS.F.HOLD Waiting for Another Task to Terminate?
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
ldy #S.PS.CID
|
ldy #S.PS.CID
|
||||||
@ -32,35 +34,27 @@ S.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE
|
|||||||
|
|
||||||
.2 jsr S.SelectProcess
|
.2 jsr S.SelectProcess
|
||||||
|
|
||||||
ldy #S.PS.PC+1 Is this PS sleeping?
|
lda (pPS)
|
||||||
lda (pPs),y
|
bit #S.PS.F.SLEEP Is this PS sleeping?
|
||||||
tax
|
|
||||||
dey
|
|
||||||
ora (pPs),y
|
|
||||||
beq .3 no, call TSKMGR.RUN
|
beq .3 no, call TSKMGR.RUN
|
||||||
|
|
||||||
lda (pPs),y
|
and #$FF^S.PS.F.SLEEP unmark as SLEEP
|
||||||
clc
|
sta (pPS)
|
||||||
adc pCode
|
|
||||||
sta S.TskMgrRunJmp+1
|
|
||||||
txa
|
|
||||||
adc pCode+1
|
|
||||||
sta S.TskMgrRunJmp+2
|
|
||||||
|
|
||||||
lda #0 Don't forget to reset S.PC
|
|
||||||
ldy #S.PS.PC
|
ldy #S.PS.PC
|
||||||
sta (pPs),y
|
lda (pPs),y
|
||||||
|
sec Advance PC by one as it was saved by a JSR
|
||||||
|
adc pCode
|
||||||
|
sta .21+1
|
||||||
iny
|
iny
|
||||||
sta (pPs),y
|
lda (pPs),y
|
||||||
|
adc pCode+1
|
||||||
|
sta .21+2
|
||||||
|
|
||||||
jsr S.TskMgrRunJmp
|
.21 jsr $FFFF
|
||||||
bra .4
|
bra .4
|
||||||
|
|
||||||
.3 lda (pCode)
|
.3 ldx #TSKMGR.RUN
|
||||||
cmp #H.BIN.HEADER.BIN65
|
|
||||||
bne *
|
|
||||||
|
|
||||||
ldx #TSKMGR.RUN
|
|
||||||
jsr pCodeJmp Call RUN function
|
jsr pCodeJmp Call RUN function
|
||||||
.4 bcc .5 RUN said CS=QUIT?
|
.4 bcc .5 RUN said CS=QUIT?
|
||||||
|
|
||||||
@ -70,25 +64,18 @@ S.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE
|
|||||||
ldy #S.PS.ID
|
ldy #S.PS.ID
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
jsr S.FreeProcessA
|
jsr S.FreeProcessA
|
||||||
bcs .99
|
bcs *
|
||||||
|
|
||||||
.5 lda pPs
|
.5 lda pPs
|
||||||
clc
|
clc
|
||||||
adc #S.PS.SIZE
|
adc #S.PS.SIZE
|
||||||
sta pPs
|
sta pPs
|
||||||
bcc .6
|
bcc .1
|
||||||
inc pPs+1
|
inc pPs+1
|
||||||
|
|
||||||
.6 lda TSKMGR.COUNT
|
|
||||||
inc TSKMGR.COUNT
|
|
||||||
cmp TSKMGR.SIZE
|
|
||||||
bne .1
|
bne .1
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.99 bra *
|
.8 clc
|
||||||
*--------------------------------------
|
rts
|
||||||
S.TskMgrRunJmp jmp $FFFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.DispatchEvent
|
* S.DispatchEvent
|
||||||
* IN:
|
* IN:
|
||||||
@ -100,10 +87,13 @@ S.DispatchEvents
|
|||||||
>LDYAI TskMgr.Table+S.PS.SIZE
|
>LDYAI TskMgr.Table+S.PS.SIZE
|
||||||
>STYA pPs
|
>STYA pPs
|
||||||
|
|
||||||
lda #1
|
lda TSKMGR.SIZE
|
||||||
sta TSKMGR.COUNT
|
sta TSKMGR.COUNT
|
||||||
|
|
||||||
.1 lda (pPs) get S.PS.F
|
.1 dec TSKMGR.COUNT skip PS 0
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
lda (pPs) get S.PS.F
|
||||||
bit #S.PS.F.INUSE In use ?
|
bit #S.PS.F.INUSE In use ?
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
@ -146,19 +136,15 @@ S.DispatchEvents
|
|||||||
clc
|
clc
|
||||||
adc #S.PS.SIZE
|
adc #S.PS.SIZE
|
||||||
sta pPs
|
sta pPs
|
||||||
bcc .5
|
bcc .1
|
||||||
inc pPs+1
|
inc pPs+1
|
||||||
|
bne .1 always
|
||||||
.5 lda TSKMGR.COUNT
|
|
||||||
inc TSKMGR.COUNT
|
|
||||||
cmp TSKMGR.SIZE
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.9 sec
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.TskMgrQuit clc
|
S.TskMgrQuit clc
|
||||||
rts
|
rts
|
||||||
@ -284,21 +270,18 @@ S.GetPSByIDA sta S.GetPSByIDA.PS
|
|||||||
S.GetPSByIDA.PS .BS 1
|
S.GetPSByIDA.PS .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.Sleep pla get PC LO
|
S.Sleep pla get PC LO
|
||||||
plx get PC HI
|
sec
|
||||||
|
|
||||||
inc Advance PC one Byte
|
|
||||||
bne .1
|
|
||||||
inx
|
|
||||||
|
|
||||||
.1 sec
|
|
||||||
|
|
||||||
sbc pCode
|
sbc pCode
|
||||||
ldy #S.PS.PC
|
ldy #S.PS.PC
|
||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
txa
|
|
||||||
|
pla get PC HI
|
||||||
sbc pCode+1
|
sbc pCode+1
|
||||||
iny
|
iny
|
||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
|
lda (pPs)
|
||||||
|
ora #S.PS.F.SLEEP
|
||||||
|
sta (pPs)
|
||||||
clc No error,
|
clc No error,
|
||||||
rts back to Kernel
|
rts back to Kernel
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user