Kernel 0.94++

This commit is contained in:
Rémy GIBERT 2021-05-15 16:35:24 +02:00
parent 9582ca9af0
commit dc36e6373d
8 changed files with 90 additions and 84 deletions

Binary file not shown.

View File

@ -245,24 +245,23 @@ CMD.SET.GET >PUSHW ZPVarNamePtr
rts rts
.8 clc .8 clc
rts CMD.SET.RTS rts
*-------------------------------------- *--------------------------------------
CMD.SET.EXEC jsr CORE.ArgV.NextChar skip "`" CMD.SET.EXEC jsr CORE.ArgV.NextChar skip "`"
jsr IO.Pipe.Out jsr IO.Pipe.Out
bcs .9 bcs CMD.SET.RTS
jsr IO.Exec jsr IO.Exec
bcs .9 bcs CMD.SET.RTS
jsr IO.Pipe.In jsr IO.Pipe.In
bcs .9 bcs CMD.SET.RTS
* clc Silent Mode * clc Silent Mode
jsr CL.ReadReset jsr CL.ReadReset
jmp CMD.READ.VAR jmp CMD.READ.VAR
.9 rts
*-------------------------------------- *--------------------------------------
CMD.DATE >PUSHEA.G TimeBuf CMD.DATE >PUSHEA.G TimeBuf
>SYSCALL Time >SYSCALL Time

View File

@ -29,15 +29,13 @@ HIS.Add >LDA.G HIS.hBuf
.1 inc .1 inc
>STA.G HIS.LRU >STA.G HIS.LRU
tax
>DEBUG
bra .7 bra .7
.2 inc .2 inc
>STA.G HIS.Count >STA.G HIS.Count
tax
.7 >PUSHB.G HIS.hBuf .7 tax
>PUSHB.G HIS.hBuf
>PUSHBI 0 >PUSHBI 0
txa txa
>PUSHA >PUSHA
@ -80,6 +78,9 @@ HIS.Select >LDA.G HIS.Count
>STZ.G HIS.Index >STZ.G HIS.Index
lda #0
sta (ZPCLBuf)
>SYSCALL GetChar >SYSCALL GetChar
bcs HIS.Select.RTS bcs HIS.Select.RTS

View File

@ -546,6 +546,7 @@ CORE.IRQ.Switch inc IRQ.Tick
lda (pPS),y lda (pPS),y
eor #S.PS.S.RUN eor #S.PS.S.RUN
bne .9 bne .9
lda IRQ.InLib lda IRQ.InLib
bmi .9 we are in LIB, no switching bmi .9 we are in LIB, no switching
@ -553,20 +554,28 @@ CORE.IRQ.Switch inc IRQ.Tick
rts rts
*-------------------------------------- *--------------------------------------
CORE.IRQ.DEV ldx #0 CORE.IRQ.DEV ldx #0
.1 lda IRQ.Vectors+1,x .1 lda IRQ.Vectors+1,x
beq .9 beq .9
sta .10+2 sta .10+2
lda IRQ.Vectors,x lda IRQ.Vectors,x
sta .10+1 sta .10+1
phx phx
.10 jsr $ffff SELF MODIFIED .10 jsr $ffff SELF MODIFIED
plx plx
bcc .8 CC, IRQ cleared by device bcc .8 CC, IRQ cleared by device
.2 inx .2 inx
inx inx
.3 cpx #K.IRQDEV.MAX*2 .3 cpx #K.IRQDEV.MAX*2
bne .1 bne .1
.9 sec .9 sec
.8 clv clear V (no task switching) .8 clv clear V (no task switching)
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -1018,6 +1018,7 @@ IrqMgrInit.Mouse
sec sec
rts rts
.4 lda ZPPtr1+1 .4 lda ZPPtr1+1
sta .11+2 sta .11+2

View File

@ -4,6 +4,7 @@ NEW
.DUMMY ZPTMP,6 .DUMMY ZPTMP,6
.OR ZPTMP 29 bytes .OR ZPTMP 29 bytes
ZPCtxPtr .BS 2 ZPCtxPtr .BS 2
ZPDataLen .BS 2
ZPChunkLen .BS 2 ZPChunkLen .BS 2
.ED .ED
*-------------------------------------- *--------------------------------------
@ -82,23 +83,21 @@ MD5X.MD5 ldy #$ff
jsr SHARED.TXTPTRgY jsr SHARED.TXTPTRgY
bne .1 bne .1
sty FORPNT sty ZPDataLen
stz FORPNT+1 stz ZPDataLen+1
jsr MD5X.Init jsr MD5X.Init
bcs .9 bcs MD5X.RTS
pha save MD5 Context hMem pha save MD5 Context hMem
jsr MD5X.Update.I jsr MD5X.Update.I
jmp MD5X.Finalize.I jmp MD5X.Finalize.I
.9 rts
*-------------------------------------- *--------------------------------------
MD5X.Init >LDYAI S.MD5 MD5X.Init >LDYAI S.MD5
jsr K.GetMem jsr K.GetMem
bcs .9 bcs MD5X.RTS
>STYA ZPCtxPtr >STYA ZPCtxPtr
@ -120,28 +119,28 @@ MD5X.Init >LDYAI S.MD5
txa txa
clc clc
.9 rts
MD5X.RTS rts
*-------------------------------------- *--------------------------------------
MD5X.Update jsr K.GetMemPtr get MD5 Context MD5X.Update jsr K.GetMemPtr get MD5 Context
>STYA ZPCtxPtr >STYA ZPCtxPtr
>LDYA FORPNT
>STYA ZPDataLen
MD5X.Update.I ldy #S.MD5.FINALIZED MD5X.Update.I ldy #S.MD5.FINALIZED
lda (ZPCtxPtr),y lda (ZPCtxPtr),y
beq .1
sec sec
rts bne MD5X.RTS
.1 lda FORPNT+1 More than 256 Bytes remaining to hash ? .1 lda ZPDataLen+1 More than 256 Bytes remaining to hash ?
bne .3 yes bne .3 yes
lda FORPNT lda ZPDataLen
bne .2 Len = O ? clc
beq MD5X.RTS Len = O, all data processed
clc All data processed cmp #64 More than 64 Bytes remaining to hash ?
rts
.2 cmp #64 More than 64 Bytes remaining to hash ?
bcc .50 yes bcc .50 yes
.3 lda #64 .3 lda #64
@ -181,13 +180,13 @@ MD5X.Update.I ldy #S.MD5.FINALIZED
.58 jsr MD5Transform .58 jsr MD5Transform
jsr MD5UpdateABCD0 jsr MD5UpdateABCD0
.8 lda FORPNT Substract Bytes processed from LEN .8 lda ZPDataLen Substract Bytes processed from LEN
sec sec
sbc ZPChunkLen get back chunk Len sbc ZPChunkLen get back chunk Len
sta FORPNT sta ZPDataLen
bcs .81 bcs .81
dec FORPNT+1 dec ZPDataLen+1
.81 lda TXTPTR Add Bytes processed to DATA .81 lda TXTPTR Add Bytes processed to DATA
clc clc

View File

@ -360,7 +360,10 @@ K.FreeMem tay
lda (ZPMemMgrSPtr) In use ? lda (ZPMemMgrSPtr) In use ?
bpl K.FreeMem.ERR bpl K.FreeMem.ERR
jsr MEM.DecRefCnt only one left ? ldy #S.MEM.REFCNT
lda (ZPMemMgrSPtr),y
dec only one left ?
sta (ZPMemMgrSPtr),y
bne .8 no, must be a code segment loaded several times bne .8 no, must be a code segment loaded several times
lda (ZPMemMgrSPtr) lda (ZPMemMgrSPtr)
@ -458,12 +461,6 @@ Mem.IncRefCnt ldy #S.MEM.REFCNT
inc inc
sta (ZPMemMgrSPtr),y sta (ZPMemMgrSPtr),y
rts rts
*--------------------------------------
Mem.DecRefCnt ldy #S.MEM.REFCNT
lda (ZPMemMgrSPtr),y
dec
sta (ZPMemMgrSPtr),y
rts
*/-------------------------------------- */--------------------------------------
* # NewStkObj * # NewStkObj
* Y,A = Size Requested * Y,A = Size Requested
@ -659,11 +656,13 @@ MEM.GetKrnlBuf pha
pla pla
adc DevMgr.Free+1 adc DevMgr.Free+1
bcs .99 we crossed $FFFF, out of mem bcs .99 we crossed $FFFF, out of mem
cpx #DevMgr.HiMem cpx #DevMgr.HiMem
pha pha
sbc /DevMgr.HiMem sbc /DevMgr.HiMem
pla pla
bcs .99 No More Room... bcs .99 No More Room...
ldy DevMgr.Free ldy DevMgr.Free
stx DevMgr.Free stx DevMgr.Free
ldx DevMgr.Free+1 ldx DevMgr.Free+1

View File

@ -22,7 +22,7 @@ STRVX.StrVNew jsr K.GetMem
*-------------------------------------- *--------------------------------------
STRVX.StrVSet jsr STRVX.GetID STRVX.StrVSet jsr STRVX.GetID
bcs .7 bcs .7
ldy #$ff ldy #$ff
.1 iny .1 iny
@ -31,70 +31,68 @@ STRVX.StrVSet jsr STRVX.GetID
tya tya
* clc * clc
adc #4 LEN+IDlo+IDhi+\0 adc #4 LEN+IDlo+IDhi+\0
bcs .99 bcs .9
cmp (ZPPtr1) cmp (ZPPtr1)
bne .4 bne .4
lda ZPPtr1 Same Length, replace lda ZPPtr1 Same Length, replace
clc clc
adc #3 adc #3
sta ZPPtr1 sta ZPPtr1
bcc .2 bcc .2
inc ZPPtr1+1 inc ZPPtr1+1
.2 ldy #$ff .2 ldy #$ff
.3 iny .3 iny
jsr SHARED.FORPNTgY jsr SHARED.FORPNTgY
sta (ZPPtr1),y sta (ZPPtr1),y
bne .3 bne .3
clc clc
rts .9 rts
*-------------------------------------- *--------------------------------------
.4 >LDYA ZPPtr1 .4 >LDYA ZPPtr1
>STYA ZPPtr2 >STYA ZPPtr2
jsr STRVX.Next jsr STRVX.Next
.40 lda (ZPPtr1) .40 lda (ZPPtr1)
beq .7 beq .6
ldy #2 LEN+IDlo+IDhi tax
ldy #0
.5 lda (ZPPtr1),y .5 lda (ZPPtr1),y
sta (ZPPtr2),y sta (ZPPtr2),y
dey iny
bpl .5 dex
bne .5
ldy #2
jsr SHARED.AddY2P1
.6 iny jsr SHARED.AddY2P2
lda (ZPPtr1),y
sta (ZPPtr2),y
bne .6
jsr SHARED.AddYp12P1
jsr SHARED.AddYp12P2
bra .40 bra .40
.6 >LDYA ZPPtr2
>STYA ZPPtr1
*-------------------------------------- *--------------------------------------
.7 ldy #$ff .7 ldy #$ff
.8 iny .8 iny
jsr SHARED.FORPNTgY jsr SHARED.FORPNTgY
bne .8 bne .8
tya tya
clc clc
adc #4 adc #4
bcs .99 bcs .99
sta (ZPPtr1) sta (ZPPtr1)
ldy #1 ldy #1
lda TXTPTR lda TXTPTR
@ -102,25 +100,25 @@ STRVX.StrVSet jsr STRVX.GetID
iny iny
lda TXTPTR+1 lda TXTPTR+1
sta (ZPPtr1),y sta (ZPPtr1),y
lda ZPPtr1 lda ZPPtr1
clc clc
adc #3 adc #3
sta ZPPtr1 sta ZPPtr1
bcc .10 bcc .10
inc ZPPtr1+1 inc ZPPtr1+1
.10 ldy #$ff .10 ldy #$ff
.11 iny .11 iny
jsr SHARED.FORPNTgY jsr SHARED.FORPNTgY
sta (ZPPtr1),y sta (ZPPtr1),y
bne .11 bne .11
iny iny
sta (ZPPtr1),y StrV Ending \0 sta (ZPPtr1),y StrV Ending \0
clc clc
rts rts
@ -130,51 +128,51 @@ STRVX.StrVSet jsr STRVX.GetID
*-------------------------------------- *--------------------------------------
STRVX.StrVGet jsr STRVX.GetID STRVX.StrVGet jsr STRVX.GetID
bcs .9 bcs .9
lda ZPPtr1 lda ZPPtr1
* clc * clc
adc #3 adc #3
sta ZPPtr1 sta ZPPtr1
bcc .1 bcc .1
inc ZPPtr1+1 inc ZPPtr1+1
.1 ldy #$ff .1 ldy #$ff
.5 iny .5 iny
lda (ZPPtr1),y lda (ZPPtr1),y
jsr SHARED.FORPNTpY jsr SHARED.FORPNTpY
bne .5 bne .5
>LDYA FORPNT >LDYA FORPNT
clc clc
rts rts
.8 >LDYA ZPPtr1 .8 >LDYA ZPPtr1
clc clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
STRVX.GetID jsr K.GetMemPtr STRVX.GetID jsr K.GetMemPtr
>STYA ZPPtr1 strV >STYA ZPPtr1 strV
.1 lda (ZPPtr1) .1 lda (ZPPtr1)
beq .9 beq .9
ldy #1 ldy #1
lda (ZPPtr1),y lda (ZPPtr1),y
cmp TXTPTR cmp TXTPTR
bne .2 bne .2
iny iny
lda (ZPPtr1),y lda (ZPPtr1),y
cmp TXTPTR+1 cmp TXTPTR+1
beq .8 beq .8
.2 jsr STRVX.Next .2 jsr STRVX.Next
bra .1 bra .1
.8 clc .8 clc
rts rts
.9 lda #E.NOKEY .9 lda #E.NOKEY
@ -186,7 +184,7 @@ STRVX.Next lda (ZPPtr1)
adc ZPPtr1 adc ZPPtr1
sta ZPPtr1 sta ZPPtr1
bcc .8 bcc .8
inc ZPPtr1+1 inc ZPPtr1+1
.8 rts .8 rts