[A83] Re: cursor-lock with interrupt program
[Prev][Next][Index][Thread]
[A83] Re: cursor-lock with interrupt program
_vputs enables interrupts and when a new interrupt occurs (when there's
still one running), it messes up the shadow regs. I suppose you can fix
this by using the stack instead. You could also use a test bit and check
this bit at the start of your interrupt handler. When it's set, return.
Then set the bit before you call _vputs and reset it again when you've
DIed after the call.
SUCKER [Pieter Van Nuffel] wrote:
> Also with the open-menu thing, I'm making a program that displayes "xxxx is
> the best" with _vputs on the home screen. It's an interrupt program. But the
> cursor sometimes stops blinking... How can I help this? It's not the
> 'curlock'-flag I found out already but the calculator (83-) doesn't clear
> the 'curon' and 'curable' flags anymore when it happens... But when I press
> [CLEAR] it sometimes is back to normal.
>
> I tried to save the entire byte from 'curflags' right before I do the _vputs
> and then put it back, but it doesn't help, it makes things ever worse! Any
> help here?
> (the program works fine but the cursor should blink!)
>
> SUCKER [Pieter Van Nuffel]
>
> P.S. There is no APD control in this piece of code but it will be there in a
> final version.
>
>
>
> interrupt_start:
> di ;don't care if needed or not...
> ex af,af'
> exx
>
> in a,(2)
> push af
> in a,(0)
> push af
> ld a,$8C
> out (2),a
> ld a,$D0
> out (0),a
>
> bit indicrun,(iy+indicflags)
> jp nz,out-interrupt_start+$8484
> ld a,($815B) ;on home screen?
> cp $40
> jp nz,out-interrupt_start+$8484
> ld a,(819Fh) ;menu open?
> or a
> jp nz,out-interrupt_start+$8484
> ld a,($8265)
> inc a
> ld ($8265),a
> cp 40 ;do not display it every interrupt
> jp nz,out-interrupt_start+$8484
> xor a
> ld ($8265),a
> ld bc,58*256+22
> ld (pencol),bc
> ld hl,besttxt-interrupt_start+$8484
> call _vputs
> res curlock,(iy+curflags)
>
> out:
> pop af
> out (0),a
> pop af
> out (2),a
> jp $003A
>
>
> besttxt: .db "xxxx is the best!!",0
>
> interrupt_end:
>
>
> _________________________________________________________________
> Chat with friends online, try MSN Messenger: http://messenger.msn.com
>
References: