Re: Re[2]: [cc65] C64 high res color RAM

Date view Thread view Subject view

From: Stephan Lesch (slesch_at_studcs.uni-sb.de)
Date: 2002-05-28 22:55:30


Hi Groepaz,

> uhmz not so easy to explain i guess.... the point is, that it will
> crash before the interupt routine is even started (ie, one or two
> cycles after the interupt occurs). that is, when the vic tries to
> update flags in eg $d019, and the i/o is banked out something weird
> happens...maybe the vic writes to its own registers simelar to the cpu
> would? i have no idea really :=P

Naaah... unless I'm totally mistaken, the VIC accesses its registers 
internally. And the theory about the working of the VIC says that the flag in
d019 gets set when the current raster line in d012/11 equals the latched 
one, and an interrupt is raised if d019&&d01a !=0.

> but try it :o) _maybe_ that weird behaviour requires other
> circumstances than just banked out i/o aswell.... it occured to me
> while coding demos that is, never actually bothered doing a simple
> test like this: (maybe you do? ;=)))

Ok, I'll try that :)
Hm, if you do it as down below, without banking in the IO in the interrupt
routine, you'll shoot the routine instead of resetting the VIC's irq flag .
well, the one below isn't long enough to get shot:)

>        *=$d000
> 
> irq:
>        pha
>        lda $01
>        pha
> 
>        ; do stuff
>        inc $d020
>        
>        lda $d019    ; inc $d019 aint scpu-safe
>        sta $d019
>        
>        pla
>        sta $01
>        pla
>        rti
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.


Date view Thread view Subject view

This archive was generated by hypermail 2.1.3 : 2002-05-28 22:55:30 CEST