mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-29 17:50:18 +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.EVENT .EQ %00100000
|
||||
S.PS.F.ENV .EQ %00010000
|
||||
S.PS.F.SLEEP .EQ %00001000
|
||||
S.PS.ID .EQ 1
|
||||
S.PS.PID .EQ 2
|
||||
S.PS.hCS .EQ 3
|
||||
|
@ -61,12 +61,13 @@ S.GetEvents.DEV >LDYAI DevMgr.Table
|
||||
|
||||
.1 ldy #S.DEV.F
|
||||
lda (pDev),y get S.DEV.F
|
||||
and #S.DEV.F.EVENT
|
||||
bit #S.DEV.F.EVENT
|
||||
beq .2 EVENT enabled ?
|
||||
|
||||
lda (pDev)
|
||||
cmp #H.BIN.HEADER.DRV65
|
||||
bne *
|
||||
|
||||
ldx #DEVMGR.GETEVENT
|
||||
jsr pDevJmp Call DRV GetEvent function
|
||||
bcs .2 no event
|
||||
|
@ -10,15 +10,17 @@ AUTO 6
|
||||
S.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE
|
||||
>STYA pPs
|
||||
|
||||
lda #1 Skip PS #0
|
||||
lda TSKMGR.SIZE
|
||||
sta TSKMGR.COUNT
|
||||
|
||||
.1 lda (pPs) get S.PS.F
|
||||
and #S.PS.F.INUSE In use ?
|
||||
beq .5
|
||||
.1 dec TSKMGR.COUNT skip PS 0
|
||||
beq .8
|
||||
|
||||
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
|
||||
|
||||
ldy #S.PS.CID
|
||||
@ -32,35 +34,27 @@ S.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE
|
||||
|
||||
.2 jsr S.SelectProcess
|
||||
|
||||
ldy #S.PS.PC+1 Is this PS sleeping?
|
||||
lda (pPs),y
|
||||
tax
|
||||
dey
|
||||
ora (pPs),y
|
||||
lda (pPS)
|
||||
bit #S.PS.F.SLEEP Is this PS sleeping?
|
||||
beq .3 no, call TSKMGR.RUN
|
||||
|
||||
lda (pPs),y
|
||||
clc
|
||||
adc pCode
|
||||
sta S.TskMgrRunJmp+1
|
||||
txa
|
||||
adc pCode+1
|
||||
sta S.TskMgrRunJmp+2
|
||||
and #$FF^S.PS.F.SLEEP unmark as SLEEP
|
||||
sta (pPS)
|
||||
|
||||
lda #0 Don't forget to reset S.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
|
||||
sta (pPs),y
|
||||
lda (pPs),y
|
||||
adc pCode+1
|
||||
sta .21+2
|
||||
|
||||
jsr S.TskMgrRunJmp
|
||||
.21 jsr $FFFF
|
||||
bra .4
|
||||
|
||||
.3 lda (pCode)
|
||||
cmp #H.BIN.HEADER.BIN65
|
||||
bne *
|
||||
|
||||
ldx #TSKMGR.RUN
|
||||
.3 ldx #TSKMGR.RUN
|
||||
jsr pCodeJmp Call RUN function
|
||||
.4 bcc .5 RUN said CS=QUIT?
|
||||
|
||||
@ -70,25 +64,18 @@ S.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE
|
||||
ldy #S.PS.ID
|
||||
lda (pPs),y
|
||||
jsr S.FreeProcessA
|
||||
bcs .99
|
||||
bcs *
|
||||
|
||||
.5 lda pPs
|
||||
clc
|
||||
adc #S.PS.SIZE
|
||||
sta pPs
|
||||
bcc .6
|
||||
bcc .1
|
||||
inc pPs+1
|
||||
|
||||
.6 lda TSKMGR.COUNT
|
||||
inc TSKMGR.COUNT
|
||||
cmp TSKMGR.SIZE
|
||||
bne .1
|
||||
clc
|
||||
rts
|
||||
|
||||
.99 bra *
|
||||
*--------------------------------------
|
||||
S.TskMgrRunJmp jmp $FFFF
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
* S.DispatchEvent
|
||||
* IN:
|
||||
@ -100,10 +87,13 @@ S.DispatchEvents
|
||||
>LDYAI TskMgr.Table+S.PS.SIZE
|
||||
>STYA pPs
|
||||
|
||||
lda #1
|
||||
lda TSKMGR.SIZE
|
||||
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 ?
|
||||
beq .4
|
||||
|
||||
@ -146,19 +136,15 @@ S.DispatchEvents
|
||||
clc
|
||||
adc #S.PS.SIZE
|
||||
sta pPs
|
||||
bcc .5
|
||||
bcc .1
|
||||
inc pPs+1
|
||||
|
||||
.5 lda TSKMGR.COUNT
|
||||
inc TSKMGR.COUNT
|
||||
cmp TSKMGR.SIZE
|
||||
bne .1
|
||||
|
||||
sec
|
||||
rts
|
||||
bne .1 always
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
S.TskMgrQuit clc
|
||||
rts
|
||||
@ -284,21 +270,18 @@ S.GetPSByIDA sta S.GetPSByIDA.PS
|
||||
S.GetPSByIDA.PS .BS 1
|
||||
*--------------------------------------
|
||||
S.Sleep pla get PC LO
|
||||
plx get PC HI
|
||||
|
||||
inc Advance PC one Byte
|
||||
bne .1
|
||||
inx
|
||||
|
||||
.1 sec
|
||||
|
||||
sec
|
||||
sbc pCode
|
||||
ldy #S.PS.PC
|
||||
sta (pPs),y
|
||||
txa
|
||||
|
||||
pla get PC HI
|
||||
sbc pCode+1
|
||||
iny
|
||||
sta (pPs),y
|
||||
lda (pPs)
|
||||
ora #S.PS.F.SLEEP
|
||||
sta (pPs)
|
||||
clc No error,
|
||||
rts back to Kernel
|
||||
*--------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user