Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-11-25 17:29:06 +01:00
parent 5bea55a6af
commit c28a7bc63f
10 changed files with 67 additions and 26 deletions

Binary file not shown.

Binary file not shown.

View File

@ -29,15 +29,37 @@ CP.IF jsr EmitPullA
sta (pData),y
dey
sta RP
sty RP
lda #0
jsr EmitByte
jmp EmitByte
*--------------------------------------
CP.ELSE
clc
rts
*--------------------------------------
CP.ENDIF
CP.ENDIF ldy RP
iny
lda (pData),y
sta ZPPtr1
iny
lda (pData),y
sta ZPPtr1+1
sty RP
lda ZPCodePtr
sta (ZPPtr1)
ldy #1
lda ZPCodePtr+1
sta (ZPPtr1),y
clc
rts
*--------------------------------------
MAN
SAVE usr/src/bin/forth.s.cp

View File

@ -533,15 +533,13 @@ CS.RUN.GetNum >PUSHW ZPCLBufPtr
inc pStack
bit bCompile
bmi .1
bpl .9
* clc
rts
.1 >PULLA
jsr EmitPushA
>PULLA
jmp EmitPushA
.1 >PULLYA
jsr EmitPushYA
clc
.9 rts
*--------------------------------------
CS.DOEVENT sec
@ -721,13 +719,6 @@ EmitPullA lda #$B2 lda (zp)
lda #pStack
bra EmitByte
*--------------------------------------
EmitPushYA pha
tya
jsr EmitPushA
pla
EmitPushA pha
lda #$A9 LDA imm
jsr EmitByte

View File

@ -4,7 +4,7 @@ NEW
IO.D2.SeekTimeR .EQ 140 LIBBLKDEV Recalibration
IO.D2.SeekTimeF .EQ 70 LIBBLKDEV Track Formatter
IO.D2.SeekTimeB .EQ 70 LIBBLKDEV Boot Block
IO.D2.SeekTimeP .EQ 55 ProDOS.FX initial
IO.D2.SeekTimeP .EQ 70 ProDOS.FX initial
IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128
*--------------------------------------
IO.D2.Ph0Off .EQ $C080

View File

@ -128,7 +128,11 @@ CORE.Events jsr CORE.GetEvents
>SYSCALL2 IOCTL
.8 jmp CORE.Run
*--------------------------------------
CORE.Quit jsr CORE.IRQ.None.Off
CORE.Quit php
sei
jsr CORE.IRQ.None.Off
plp
lda IRQ.INTNUM
sta K.MLI.PARAMS+1
@ -597,6 +601,7 @@ CORE.IRQ.IIGS.Off
trb IO.IIGS.INTEN
rts
*--------------------------------------
CORE.IRQ.TCLOCK.Off
ldx IRQ.n0
stz $c080,x
@ -606,7 +611,15 @@ CORE.IRQ.TCLOCK.Off
stz $478,x
stz $7f8,x
sta SETPAGE2
stz $478,x
stz $7f8,x
lda $c088,y
lda $c080,y
rts
*--------------------------------------
CORE.IRQ.MOUSE.Off
ldy CORE.IRQ.MOUSE.Off.1+2 Cn
ldy IRQ.n0

View File

@ -377,6 +377,7 @@ GP.IRQ cld
bit IRQ.Skip After A2osX IRQ.H ?
bmi GP.IRQ.Exit
sta SETALTZP switch to aux LC
tsx
stx A2osX.SaveSM
@ -384,6 +385,7 @@ GP.IRQ cld
txs
GP.IRQ.JSR jsr CORE.IRQ.DEV SELF MODIFIED
tsx go back to Main
stx A2osX.SaveSX
ldx A2osX.SaveSM

View File

@ -842,6 +842,7 @@ IrqMgrInit >LDYAI MSG.IRQ
lda #"C"
sta IRQ.Mode
>LDYAI CORE.IRQ.TCLOCK
jsr IrqMgrInit.SetV
@ -856,6 +857,7 @@ IrqMgrInit >LDYAI MSG.IRQ
lda #"V"
sta IRQ.Mode
>LDYAI CORE.IRQ.MOUSE
jsr IrqMgrInit.SetV
@ -902,7 +904,7 @@ IrqMgrInit.TClock
cmp #$C8
bne .1
sec
* sec
rts
.4 lda ZPPtr1+1 get $Cn
@ -923,15 +925,20 @@ IrqMgrInit.TClock
lda #$40+$20 Enable interrupt + 64Hz
sta $c080,y
sta CLRPAGE2
lda #$40
sta CLRPAGE2
sta $478,x
sta $7f8,x
sta SETPAGE2
sta $478,x
sta $7f8,x
lda #64
sta CORE.TickPerSec
sta CORE.TickSec
lda #11
sta CORE.TickPer10t
sta CORE.Tick10t

View File

@ -29,19 +29,25 @@ IRQ.Handler cld
lda RDPAGE2
pha
sta CLRPAGE2
lda RD80STORE
pha
sta CLR80STORE
lda RDREADAUX
pha
sta CLRREADAUX Make sure we can access FD.Table
lda RDWRITEAUX
pha
sta CLRWRITEAUX Driver may R/W in screen holes
lda MSLOT Save MSLOT
pha
lda RDCXROM
lda RDCXROM C100-C7ff state
pha
sta CLRCXROM Enable access to slot C800 space
sta CLRCXROM Enable access to slot C100-C7ff space
IRQ.JSR jsr CORE.IRQ.DEV SELF MODIFIED
@ -50,7 +56,7 @@ IRQ.JSR jsr CORE.IRQ.DEV SELF MODIFIED
pla Get CXROM State
bpl .3
inx
inx X = SETCXROM
.3 sta $C000,x
@ -62,7 +68,7 @@ IRQ.JSR jsr CORE.IRQ.DEV SELF MODIFIED
eor #$C0 ....mmm...not looking like Cn....
bne IRQ.3
sta $CFFF Release $C800
sta CLRC8ROM Release $C800
IRQ.2 lda $ff00 SELF MODIFIED

View File

@ -344,7 +344,7 @@ K.FreeMem.ERR >PUSHWI K.FreeMem.MSG
>PUSHBI 2
.1 >SYSCALL2 printf
>DEBUG
* >DEBUG
lda #E.INVH
sec
rts