Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!apple!altos!gumby!clp From: clp@gumby.Altos.COM (Chuck L. Peterson) Newsgroups: comp.sys.amiga.programmer Subject: Copper & HiRes Interlace Message-ID: <4892@gumby.Altos.COM> Date: 22 May 91 18:39:22 GMT Organization: Altos Computer Systems, San Jose, CA Lines: 33 When my software is in complete control of my Amiga 2000, I support my High Resolution Interlaced display by catching the Vertical blanking interrupt. Essentially, my interrupt service routine looks like this: #define LOF 0x8000 /* Interlace Long Frame Bit */ display_intr() { if (custom.vposr & LOF) custom.bplpt[0] = bitplane; else custom.bplpt[0] = bitplane + 80; custom.intreq = INTF_VERB; /* clear interrupt */ } What I want to know is how this stuff can be done entirely within a COPER list. It would be really nice if my display didn't completely flip out every time I disabled interrupts. The HRM states: To get the Copper to execute the correct list, you set an interrupt to the 68k just after the first line in the display. When the interrupt is executed, you change the contents of the COP1LC location register to point to the second list. Then, during the vertical blanking interval, COP1LC will be automatically reset to point to the original list. This seems similar to what I do above except it seems a little less direct. The text above suggests that the Copper interrupt routine switch to a second Copper list (which, I assume, would contain a different bitplane address assignment). Is there any way to just have a single Copper list which drives a High Resolution Interlaced screen without requiring the Vertical Blank or Copper interrupts? Chuck L. Peterson clp@altos.com