Posted By
MikeZ on 2008-10-29 09:23:35
| plus/4 raster interrupt
The IRQ handler ends by placing the value #$A1 in $FF0B, the raster interrupt value register. If no other interrupts are generated, there will be another raster interrupt when the raster vertical count again gets to #$A1. The only reason I can think of for this value to be #$A1 and not something else is that #$A1 is the raster line number that is the division between top and bottom parts of a split screen. Does anyone have additional information ???? Thanks.
|
|
Posted By
IstvanV on 2008-10-29 09:40:59
| Re: plus/4 raster interrupt
> The only reason I can think of for this value to be #$A1 and not something else is that #$A1 is the raster line number that is the division between top and bottom parts of a split screen.
Yes. The bottom part actually begins at line $A4 with the default vertical scroll setting, but it takes some time until the kernal actually sets the TED registers, so the interrupt is set slightly earlier. For a clean division, $FF14 should be set before line $A3, and $FF06, $FF07, and $FF12 should be set between lines $A3 and $A4. There is also another interrupt after the end of the 40x25 text area (which is between lines 4 and $CC). This is the main raster interrupt where things like scanning the keyboard matrix are done.
|
|
Posted By
MikeZ on 2008-10-29 15:39:16
| Re: plus/4 raster interrupt
Thanks IstvanV. I can see in the code that the IRQ toggles between #$A1 and #$CC for the two raster interrupts.
|
|
Posted By
indi on 2008-10-29 16:12:49
| Re: plus/4 raster interrupt
The reason for 2 seprate IRQ's is that BASIC can do a split screen graphic mode (can't remember the graphic mode off hand). This allowed things like graphics adventures to be written in basic as most of the top part of the screen was a bitmap, and the lower area characters.
Pretty neat for a default basic command....
|
|
Posted By
IstvanV on 2008-10-29 17:18:24
| Re: plus/4 raster interrupt
In basic, graphic mode 1 is full-screen hires, mode 2 is hires+text, mode 3 is full-screen multicolor, and mode 4 is multicolor+text.
|
|
Posted By
SVS on 2008-10-30 03:29:21
| Re: plus/4 raster interrupt
What happens if one wedges the IRQ and set a value different than #$A1?
|
|
Posted By
Chicken on 2009-01-07 01:04:25
| Re: plus/4 raster interrupt
There was a neat llittle tool in "Compute mit" which did just that. You could choose the number of character lines you wanted in the split screen. The split would happen at charline borders (every 8 pixels). I used that for an unfinished (of course ) adventure before I started to learn assembly language. I think it worked flawless. Maybe it's been uploaded to some of the servers already.
|
|