diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 8742490f..ad358340 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index 99b1c25d..4d77ac1a 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/BIN/FORTH.S.CP.txt b/BIN/FORTH.S.CP.txt index 36a1d49a..ad3daa6c 100644 --- a/BIN/FORTH.S.CP.txt +++ b/BIN/FORTH.S.CP.txt @@ -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 diff --git a/BIN/FORTH.S.txt b/BIN/FORTH.S.txt index 6175e8b3..6348cc11 100644 --- a/BIN/FORTH.S.txt +++ b/BIN/FORTH.S.txt @@ -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 diff --git a/INC/IO.D2.I.txt b/INC/IO.D2.I.txt index 04793f2c..6416a61a 100644 --- a/INC/IO.D2.I.txt +++ b/INC/IO.D2.I.txt @@ -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 diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 03a5d5c4..92376982 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -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 diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 0786bc6a..2a0edf6f 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -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 diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 1823a67e..03ab95c1 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -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 diff --git a/SYS/KERNEL.S.IRQ.txt b/SYS/KERNEL.S.IRQ.txt index 7f121401..ae10caf3 100644 --- a/SYS/KERNEL.S.IRQ.txt +++ b/SYS/KERNEL.S.IRQ.txt @@ -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 diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index 39891c09..f8b338e4 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -344,7 +344,7 @@ K.FreeMem.ERR >PUSHWI K.FreeMem.MSG >PUSHBI 2 .1 >SYSCALL2 printf - >DEBUG +* >DEBUG lda #E.INVH sec rts