Mercurial > hg > Members > kono > nitros9-code
diff level1/modules/clock.asm @ 2725:c2112f93923a lwtools-port
o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
o Added NMI code (as a conditional) to clock
author | Boisy Pitre <boisy.pitre@nuance.com> |
---|---|
date | Tue, 31 Jul 2012 11:54:02 -0500 |
parents | 8399491c0821 |
children | d9760f344c96 |
line wrap: on
line diff
--- a/level1/modules/clock.asm Mon Jul 30 19:35:05 2012 -0500 +++ b/level1/modules/clock.asm Tue Jul 31 11:54:02 2012 -0500 @@ -49,6 +49,9 @@ rev set 8 edition set 9 + IFNE atari +USENMI EQU 0 + ENDC *------------------------------------------------------------ * @@ -132,7 +135,11 @@ stb <D.Slice set first time slice IFNE atari leax SvcIRQ,pcr set IRQ handler + IFNE USENMI + stx <D.NMI + ELSE stx <D.IRQ + ENDC ELSE leax SvcIRQ,pcr set IRQ handler stx <D.IRQ @@ -146,21 +153,27 @@ jsr ,y call init entry point of Clock2 * Initialize clock hardware - IFNE atari - lda #IRQST.TIMER1 - pshs cc - orcc #IntMasks - ora <D.IRQENShdw - sta <D.IRQENShdw - sta IRQEN - lda #%00101001 - sta AUDCTL - clr AUDC1 - lda #$FF - sta AUDF1 - sta STIMER - puls cc,pc - ELSE + IFNE atari + IFNE USENMI + lda #$40 + sta NMIEN enable VBlank NMI + rts + ELSE + lda #IRQST.TIMER1 + pshs cc + orcc #IntMasks + ora <D.IRQENShdw + sta <D.IRQENShdw + sta IRQEN + lda #%00101001 + sta AUDCTL + clr AUDC1 + lda #$FF + sta AUDF1 + sta STIMER + puls cc,pc + ENDC + ELSE ldx #PIA0Base point to PIA0 clra no error for return... pshs cc save IRQ enable status (and Carry clear) @@ -190,7 +203,10 @@ SvcIRQ clra tfr a,dp set direct page to zero - IFNE atari + IFNE atari + IFNE USENMI + sta NMIRES clear NMI interrupt + ELSE lda IRQST get hw byte bita #IRQST.TIMER1 beq L0032 branch if interrupt occurred @@ -206,6 +222,7 @@ stb IRQEN stb <D.IRQENShdw sta STIMER + ENDC ELSE tst PIA0Base+3 get hw byte bmi L0032 branch if sync flag on