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.
This archive was generated by hypermail 2.1.3 : 2002-05-28 22:55:30 CEST