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
.8 clc
rts
CMD.SET.RTS rts
*--------------------------------------
CMD.SET.EXEC jsr CORE.ArgV.NextChar skip "`"
jsr IO.Pipe.Out
bcs .9
bcs CMD.SET.RTS
jsr IO.Exec
bcs .9
bcs CMD.SET.RTS
jsr IO.Pipe.In
bcs .9
bcs CMD.SET.RTS
* clc Silent Mode
jsr CL.ReadReset
jmp CMD.READ.VAR
.9 rts
*--------------------------------------
CMD.DATE >PUSHEA.G TimeBuf
>SYSCALL Time

View File

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

View File

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

View File

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

View File

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

View File

@ -360,7 +360,10 @@ K.FreeMem tay
lda (ZPMemMgrSPtr) In use ?
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
lda (ZPMemMgrSPtr)
@ -458,12 +461,6 @@ Mem.IncRefCnt ldy #S.MEM.REFCNT
inc
sta (ZPMemMgrSPtr),y
rts
*--------------------------------------
Mem.DecRefCnt ldy #S.MEM.REFCNT
lda (ZPMemMgrSPtr),y
dec
sta (ZPMemMgrSPtr),y
rts
*/--------------------------------------
* # NewStkObj
* Y,A = Size Requested
@ -659,11 +656,13 @@ MEM.GetKrnlBuf pha
pla
adc DevMgr.Free+1
bcs .99 we crossed $FFFF, out of mem
cpx #DevMgr.HiMem
pha
sbc /DevMgr.HiMem
pla
bcs .99 No More Room...
ldy DevMgr.Free
stx DevMgr.Free
ldx DevMgr.Free+1

View File

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