Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!cbatt!ihnp4!meccts!ahby From: ahby@meccts.UUCP (Shane P. McCarron) Newsgroups: net.micro.apple Subject: Re: Apple IIe and IIc raster scan synchronization. Message-ID: <532@meccts.UUCP> Date: Sun, 28-Sep-86 12:09:32 EDT Article-I.D.: meccts.532 Posted: Sun Sep 28 12:09:32 1986 Date-Received: Tue, 30-Sep-86 07:50:25 EDT References: <2869@sdcc6.ucsd.EDU> <4160@reed.UUCP> Reply-To: ahby@meccts.UUCP (Shane P. McCarron) Organization: MECC Technical Services, St. Paul, Mn Lines: 40 Keywords: IIe IIc video In article <4160@reed.UUCP> kamath@reed.UUCP (Sean Kamath) writes: >On the //e and //c there >is no need to solder a pin. It has already been done for you. Read >$C019. When it goes low (<128), it is in VBL. For some really neat >programs that take advantage of that, look into "Enhancing Your Apple ][ >Vol. 2" by Don Lancaster. > >On the //c it is possible to generate interrupts when VBL ($C019) goes >low. I KNOW this. I THINK the same can be done on a //e with a mouse >card, but I'm not altogether sure. If anyone is dying to know, I'll do >that before I work on my color printing routine... Actually, you really can detect VBL on the //e using $C019. And yes, if you have a mouse card, you can cause it to generate interrupts at each VBL. I think you can have it generate interrupts at all sorts of interesting events, like mouse movement, button down, button up, etc... However, you cannot detect VBL using $C019 on the //c or //gs. The only way to do it is using interrupts. The line in the Apple //c Technical Reference Manual reads: R7 $C019 RstVBL 9.1.3 See if VBlInt off(1); reset it And the Apple //e Reference Manual reads: VBL Read vertical blanking $C019 Read, 4 This is just another example of Apple 'fixing' something so that half of their vendors software doesn't work. Now when I want to detect VBL, I need to case for the machine I'm on; On a //e I wait for $C019 to go low. On a //c (//gs) I enable VBL interrupts and then loop infinitely (until interrupt, of course). This works, but because of the overhead involved with processing an interrupt, there is less time during the interval to perform operations. This is very annoying! -- Shane P. McCarron UUCP ihnp4!meccts!ahby MECC Technical Services ATT (612) 481-3589 "They're only monkey boys; We can still crush them here on earth!"