5.1 Video - Register Falcon Video Register
**************************************************************************** V I D E O - R E G I S T E R S **************************************************************************** $FFFF8200 [R/W] ******** $FFFF8201 [R/W] 76543210 ................................... VIDEO-BASE HI [ Schreib-Zugriff löscht Video-Address Lo-Byte! ] $FFFF8202 [R/W] ******** $FFFF8203 [R/W] 76543210 ................................... VIDEO-BASE MI [ Schreib-Zugriff löscht Video-Address Lo-Byte! ] $FFFF8204 [R/W] ******** $FFFF8205 [R/W] 76543210 ........................ VIDEO-ADDRESS-COUNTER HI $FFFF8206 [R/W] ******** $FFFF8207 [R/W] 76543210 ........................ VIDEO-ADDRESS-COUNTER MI $FFFF8208 [R/W] ******** $FFFF8209 [R/W] 76543210 ........................ VIDEO-ADDRESS-COUNTER LO $FFFF820A [R/W] _______0 ....................................... SYNC-MODE || |+--Synchronisation [ 0:intern / 1:extern ] +---Vertikal-Frequenz [ Bit nicht veränderbar! ] [ Monochrome-Monitor:0 / Farb-Monitor:1 ] $FFFF820B [R/W] ________ $FFFF820C [R/W] ******** $FFFF820D [R/W] 7654321_ ................................... VIDEO-BASE LO $FFFF820E [R/W] _______0 .................................. LINE-OFFSET HI $FFFF820F [R/W] 76543210 .............................................. LO [ Line-Offset wird in Worten angegeben! ] $FFFF8210 [R/W] ______10 .................................... LINE-WIDE HI $FFFF8211 [R/W] 76543210 ...............................................LO [ Line-Wide wird in Worten angegeben! ] $FFFF8212 [R/W] ******** $FFFF8213 [R/W] ******** $FFFF8214 [R/W] ******** $FFFF8215 [R/W] ******** $FFFF8216 [R/W] ******** $FFFF8217 [R/W] ******** $FFFF8218 [R/W] ******** $FFFF8219 [R/W] ******** $FFFF821A [R/W] ________ $FFFF821B [R/W] ________ $FFFF821C [R/W] ******** $FFFF821D [R/W] ******** $FFFF821E [R/W] ******** $FFFF821F [R/W] ******** $FFFF8220 [R/W] ******** $FFFF8221 [R/W] ******** $FFFF8222 [R/W] ******** $FFFF8223 [R/W] ******** $FFFF8224 [R/W] ******** $FFFF8225 [R/W] ******** $FFFF8226 [R/W] ******** $FFFF8227 [R/W] ******** $FFFF8228 [R/W] ******** $FFFF8229 [R/W] ******** $FFFF822A [R/W] ________ $FFFF822B [R/W] ________ $FFFF822C [R/W] ******** $FFFF822D [R/W] ******** $FFFF822E [R/W] ******** $FFFF822F [R/W] ******** $FFFF8230 [R/W] ******** $FFFF8231 [R/W] ******** $FFFF8232 [R/W] ******** $FFFF8233 [R/W] ******** $FFFF8234 [R/W] ******** $FFFF8235 [R/W] ******** $FFFF8236 [R/W] ******** $FFFF8237 [R/W] ******** $FFFF8238 [R/W] ******** $FFFF8239 [R/W] ******** $FFFF823A [R/W] ________ $FFFF823B [R/W] ________ $FFFF823C [R/W] ******** $FFFF823D [R/W] ******** $FFFF823E [R/W] ******** $FFFF823F [R/W] ******** $FFFF8240 [R/W] ____3210 ................................. ST COLOR $00 HI |||| ++++--Rot-Intensität [ Bitwertigkeit: 0321 ] $FFFF8241 [R/W] 76543210 ..................................ST COLOR $00 LO |||||||| ||||++++--Blau-Intensität [ Bitwertigkeit: 0321 ] ++++------Grün-Intensität [ Bitwertigkeit: 0321 ] $FFFF8242 [R/W] ____3210 ................................. ST COLOR $01 HI $FFFF8243 [R/W] 76543210 ...............................................LO $FFFF8244 [R/W] ____3210 ................................. ST COLOR $02 HI $FFFF8245 [R/W] 76543210 ...............................................LO $FFFF8246 [R/W] ____3210 ................................. ST COLOR $03 HI $FFFF8247 [R/W] 76543210 ...............................................LO $FFFF8248 [R/W] ____3210 ................................. ST COLOR $04 HI $FFFF8249 [R/W] 76543210 ...............................................LO $FFFF824A [R/W] ____3210 ................................. ST COLOR $05 HI $FFFF824B [R/W] 76543210 ...............................................LO $FFFF824C [R/W] ____3210 ................................. ST COLOR $06 HI $FFFF824D [R/W] 76543210 ...............................................LO $FFFF824E [R/W] ____3210 ................................. ST COLOR $07 HI $FFFF824F [R/W] 76543210 ...............................................LO $FFFF8250 [R/W] ____3210 ................................. ST COLOR $08 HI $FFFF8251 [R/W] 76543210 ...............................................LO $FFFF8252 [R/W] ____3210 ................................. ST COLOR $09 HI $FFFF8253 [R/W] 76543210 ...............................................LO $FFFF8254 [R/W] ____3210 ................................. ST COLOR $0A HI $FFFF8255 [R/W] 76543210 ...............................................LO $FFFF8256 [R/W] ____3210 ................................. ST COLOR $0B HI $FFFF8257 [R/W] 76543210 ...............................................LO $FFFF8258 [R/W] ____3210 ................................. ST COLOR $0C HI $FFFF8259 [R/W] 76543210 ...............................................LO $FFFF825A [R/W] ____3210 ................................. ST COLOR $0D HI $FFFF825B [R/W] 76543210 ...............................................LO $FFFF825C [R/W] ____3210 ................................. ST COLOR $0E HI $FFFF825D [R/W] 76543210 ...............................................LO $FFFF825E [R/W] ____3210 ................................. ST COLOR $0F HI $FFFF825F [R/W] 76543210 ...............................................LO $FFFF8260 [R/W] ______10 ................................... ST-SHIFT-MODE || [ Schreib-Zugriff ändert Linewide+Videocontrol! ] || || $FF8210 $FF82C2 00--4 Bitplanes / 320 Pixel =======> $0050 $0000 01--2 Bitplanes / 640 Pixel =======> $0050 $0004 10--1 Bitplane / 640 Pixel =======> $0028 $0006 11--?Reserviert / 320 Pixel =======> $0050 $0000 [ Schreib-Zugriff schaltet in den STE-Mode wenn Bit 10/8/4 des FALCON-SHIFT=0, STE-Palette wird eingeschaltet ] $FFFF8261 [R/W] ________ $FFFF8262 [R/W] ________ $FFFF8263 [R/W] ________ $FFFF8264 [R/W] ________ ..................................... H-SCROLL HI |||| [ Schatten-Register von $FFFF8265 ] ++++--Pixel [ 0:normal / 1..15:Links-Verschiebung ] [ Änderung von Linewide NICHT erforderlich! ] $FFFF8265 [R/W] ____3210 ......................................H-SCROLL LO |||| ++++--Pixel [ 0:normal / 1..15:Links-Verschiebung ] [ Änderung von Linewide erforderlich! ] $FFFF8266 [R/W] _____210 ............................ FALCON-SHIFT-MODE HI ||| ||+--True-Color [ 0:Aus / 1:Ein ] |+---??Unbenutzt?? +----2-Farben [ 0:Aus / 1:Ein ] $FFFF8267 [R/W] 76543210 ............................ FALCON-SHIFT-MODE LO |||||||| ||||++++--16-Farbenbank im Falcon-Mode |||| 0-15: Farbbankauswahl der 256-Farbentabelle |||| im 16-Farben-Modus |||+------8 Bitplanes [ 0:Aus / 1:Ein ] ||+-------Vertikal-Sync [ 0:intern / 1:extern ] |+--------Horizontal-Sync [ 0:intern / 1:extern ] +---------??Unbenutzt?? [ Schreibzugriff schaltet in den FALCON-Mode, Falcon-Palette wird eingeschaltet. Sind die Bits 10/8/4=0 so ist der 16-Farben-Modus aktiv ] $FFFF8268 [R/W] ________ $FFFF8269 [R/W] ________ $FFFF826A [R/W] ________ $FFFF826B [R/W] ________ $FFFF826C [R/W] ________ $FFFF826D [R/W] ________ $FFFF826E [R/W] ________ $FFFF826F [R/W] ________ $FFFF8270 [R/W] ________ $FFFF8271 [R/W] ________ $FFFF8272 [R/W] ________ $FFFF8273 [R/W] ________ $FFFF8274 [R/W] ________ $FFFF8275 [R/W] ________ $FFFF8276 [R/W] ________ $FFFF8277 [R/W] ________ $FFFF8278 [R/W] ________ $FFFF8279 [R/W] ________ $FFFF827A [R/W] ________ $FFFF827B [R/W] ________ $FFFF827C [R/W] ________ $FFFF827D [R/W] ________ $FFFF827E [R/W] ________ $FFFF827F [R/W] ________ $FFFF8280 [R/W] _______0 ...................... HORIZONTAL-HOLD-COUNTER HI $FFFF8281 [R/W] 76543210 .............................................. LO [ Schreib-Zugriff hat keine Wirkung! ] $FFFF8282 [R/W] _______0 ........................ HORIZONTAL-HOLD-TIMER HI $FFFF8283 [R/W] 76543210 .............................................. LO $FFFF8284 [R/W] _______0 ...................... HORIZONTAL-BORDER-BEGIN HI $FFFF8285 [R/W] 76543210 .............................................. LO $FFFF8286 [R/W] _______0 ........................ HORIZONTAL-BORDER-END HI $FFFF8287 [R/W] 76543210 .............................................. LO $FFFF8288 [R/W] ______10 ..................... HORIZONTAL-DISPLAY-BEGIN HI | +-----0: Wert gilt für 1. Halbzeile 1: Wert gilt für 2. Halbzeile $FFFF8289 [R/W] 76543210 .............................................. LO $FFFF828A [R/W] _______0 ....................... HORIZONTAL-DISPLAY-END HI $FFFF828B [R/W] 76543210 .............................................. LO $FFFF828C [R/W] _______0 ........................ HORIZONTAL-SYNC-START HI $FFFF828D [R/W] 76543210 .............................................. LO $FFFF828E [R/W] _______0 ................................ HORIZONTAL-FS HI $FFFF828F [R/W] 76543210 .............................................. LO wenn Video-Control 1 Bit 4=1: Gibt an wie lange nach Halbzeilenbeginn der HSync- impule der vorherigen Halbzeile gehalten werden soll(beeinflußt nur die mittleren 5 HSync-Impulse) sonst: keine Funktion. $FFFF8290 [R/W] _______0 ................................ HORIZONTAL-HH HI $FFFF8291 [R/W] 76543210 .............................................. LO wenn Video-Control 1 Bit 4=1: s.o., beeinflußt aber die ersten und letzten 5 HSync-Impulse. sonst: keine Funktion. $FFFF8292 [R/W] ________ $FFFF8293 [R/W] ________ $FFFF8294 [R/W] ________ $FFFF8295 [R/W] ________ $FFFF8296 [R/W] ________ $FFFF8297 [R/W] ________ $FFFF8298 [R/W] ________ $FFFF8299 [R/W] ________ $FFFF829A [R/W] ________ $FFFF829B [R/W] ________ $FFFF829C [R/W] ________ $FFFF829D [R/W] ________ $FFFF829E [R/W] ________ $FFFF829F [R/W] ________ $FFFF82A0 [R/W] _____210 .................... VERTICAL-FREQUENZ-COUNTER HI $FFFF82A1 [R/W] 76543210 .............................................. LO [ Schreib-Zugriff hat keine Wirkung! ] $FFFF82A2 [R/W] _____210 ...................... VERTICAL-FREQUENZ-TIMER HI $FFFF82A3 [R/W] 76543210 .............................................. LO $FFFF82A4 [R/W] _____210 ........................ VERTICAL-BORDER-BEGIN HI $FFFF82A5 [R/W] 76543210 .............................................. LO $FFFF82A6 [R/W] _____210 .......................... VERTICAL-BORDER-END HI $FFFF82A7 [R/W] 76543210 .............................................. LO $FFFF82A8 [R/W] _____210 ....................... VERTICAL-DISPLAY-BEGIN HI $FFFF82A9 [R/W] 76543210 .............................................. LO $FFFF82AA [R/W] _____210 ......................... VERTICAL-DISPLAY-END HI $FFFF82AB [R/W] 76543210 .............................................. LO $FFFF82AC [R/W] _____210 .......................... VERTICAL-SYNC-START HI $FFFF82AD [R/W] 76543210 .............................................. LO $FFFF82AE [R/W] ________ $FFFF82AF [R/W] ________ $FFFF82B0 [R/W] ________ $FFFF82B1 [R/W] ________ $FFFF82B2 [R/W] ________ $FFFF82B3 [R/W] ________ $FFFF82B4 [R/W] ________ $FFFF82B5 [R/W] ________ $FFFF82B6 [R/W] ________ $FFFF82B7 [R/W] ________ $FFFF82B8 [R/W] ________ $FFFF82B9 [R/W] ________ $FFFF82BA [R/W] ________ $FFFF82BB [R/W] ________ $FFFF82BC [R/W] ________ $FFFF82BD [R/W] ________ $FFFF82BE [R/W] ________ $FFFF82BF [R/W] ________ $FFFF82C0 [R/W] _______0 .............................. VIDEO-CONTROL 1 HI | +--??unbekannt?? (Bildverschiebung um festen Wert nach re.od.li.) $FFFF82C1 [R/W] 76543210 .............................. VIDEO-CONTROL 1 LO |||||||| Video-Mode-Controlbits |||||||| Bits 0 & 1 setzen wie $FFFF8006 Bits 6 & 7 ||||||00--Monochrome-Monitor [ SM124 ] ||||||01--Farb-Monitor [ SC1224 und SC1435 ] ||||||10--VGA-Monitor ||||||11--Fernsehgerät |||||+----Video-Grundtakt: 0: 32MHz/1: 25.175MHz ||||| ||||+-----15 Halbzeilen-HSyncs ab Beginn der unteren |||| Austastlücke [ 0:Aus / 1:An ] |||+------??Unbekannt?? ||+-------VSync-Flanke: 0:negativ(5V>0V)/ 1:posetiv(0V>5V) |+--------HSync-Flanke: 0:negativ(5V>0V)/ 1:posetiv(0V>5V) +---------??Unbekannt?? $FFFF82C2 [R/W] ________ .............................. VIDEO-CONTROL 2 HI $FFFF82C3 [R/W] ____3210 .............................................. LO |||| |||+--Double-Scan [ 0:Aus / 1:Ein ] ||+---Interlace [ 0:Aus / 1:Ein ] || || Setzt den Videovorteiler UND die Pixeltaktlänge: || - Vorteilerwert des Videosystems im Falcon-Mode || bei Video-Mode-Controlbits: %10 (VGA-Mode) 00----4 01----2 10----2 11----nute (Videosystem wird nicht getaktet) || bei restlichen Video-Mode-Controlbits 00----4 01----2 10----1 11----nute || STE-Kompatibilitätsmodus: 00----16 01----16 10----16 11----nute || || - Pixeltaktdauer: 00----4 Takte lang 01----2 Takte lang 10----1 Takt lang 11----nute **************************************************************************** 2 5 6 C O L O R - R E G I S T E R S **************************************************************************** $FFFF9800 [R/W] :$FC 765432__ ........................ FALCON-COLOR $00 ROT |||||| ++++++------ 0-63: Rot-Helligkeit $FFFF9801 [R/W] :$FC 765432__ ....................... FALCON-COLOR $00 GRÜN |||||| ++++++------ 0-63: Grün-Helligkeit $FFFF9802 [R/W] :$00 ****** $FFFF9803 [R/W] :$00 765432__ ....................... FALCON-COLOR $00 BLAU |||||| ++++++------ 0-63: Blau-Helligkeit : : : : : : : : : : : : $FFFF9BFC [R/W] :$00 765432__ ........................ FALCON-COLOR $FF ROT $FFFF9BFD [R/W] :$00 765432__ ....................... FALCON-COLOR $FF GRÜN $FFFF9BFE [R/W] :$00 ****** $FFFF9BFF [R/W] :$00 765432__ ....................... FALCON-COLOR $FF BLAU --------------------------------------------------------------------------- --------------------------------------------------------------------------- Standartwerte des Videosystems im RGB/TV-Modus, 50 Hz: VIDEOREGISTER DES FALCON $82xx.w: (Alles hexadezimaler Wortzugriff!) MODUS | 10| 60| 66| 82| 84| 86| 88| 8A| 8C| A2| A4| A6| A8| AA| AC| C0| C2 --------------------------------------------------------------------------- ST-LOW: 050 000 000 03E 032 009 23F 01C 034 271 265 02F 06F 1FF 26B 081 000 ST-MED: 050 010 000 03E 032 009 23F 01C 034 271 265 02F 06F 1FF 26B 081 004 ST-HIG: 028 0x0 400 1FE 199 050 3EF 0A0 1B2 270 265 02F 07E 20E 26B 181 006 2/80: 028 0x0 400 1FE 199 050 3EF 0A0 1B2 271 265 02F 07F 20F 26B 181 004 4/40: 028 010 000 03E 030 008 239 012 034 271 265 02F 07F 20F 26B 181 000 4/80: 050 010 000 03E 030 008 002 020 034 271 265 02F 07F 20F 26B 181 004 16/40: 050 0x0 000 0FE 0CB 027 00C 06D 0D8 271 265 02F 07F 20F 26B 181 000 16/80: 0A0 0x0 000 1FE 199 050 04D 0FE 1B2 271 265 02F 07F 20F 26B 181 004 256/40: 0A0 0x0 010 0FE 0CB 027 01C 07D 0D8 271 265 02F 07F 20F 26B 181 000 256/80: 140 0x0 010 1FE 199 050 05D 10E 1B2 271 265 02F 07F 20F 26B 181 004 TRU/40: 140 0x0 100 0FE 0CB 027 02E 08F 0D8 271 265 02F 07F 20F 26B 181 000 TRU/80: 280 0x0 100 1FE 199 050 071 122 1B2 271 265 02F 07F 20F 26B 181 004 + INTERLACE: -1 -1 -1 +2 MODUS: Kompatibilitätsmodus oder Farben/Spalten. (Achtung! Die ST-High Werte sind bei RGB schon im Interlacemodus!) --------------------------------------------------------------------------- Standartwerte des Videosystems im VGA-Modus, 60 Hz (beim Falcon 59.58 Hz): (Zeilenverdopplung eingeschaltet(Double Scan)) VIDEOREGISTER DES FALCON $82xx.w: (Alles hexadezimaler Wortzugriff!) MODUS | 10| 60| 66| 82| 84| 86| 88| 8A| 8C| A2| A4| A6| A8| AA| AC| C0| C2 --------------------------------------------------------------------------- ST-LOW: 050 000 000 017 012 001 20E 00D 011 419 3AF 08F 08F 3AF 415 186 005 ST-MED: 050 010 000 017 012 001 20E 00D 011 419 3AF 08F 08F 3AF 415 186 009 ST-HIG: 028 0x0 400 0C6 08D 015 273 050 096 419 3AF 08F 08F 3AF 415 186 008 2/80: 028 0x0 400 0C6 08D 015 273 050 096 419 3FF 03F 03F 3FF 415 186 009 4/40: 028 010 000 017 012 001 20A 009 011 419 3FF 03F 03F 3FF 415 186 005 4/80: 050 010 000 017 012 001 20E 00D 011 419 3FF 03F 03F 3FF 415 186 009 16/40: 050 0x0 000 0C6 08D 015 28A 06B 096 419 3FF 03F 03F 3FF 415 186 005 16/80: 0A0 0x0 000 0C6 08D 015 2A3 07C 096 419 3FF 03F 03F 3FF 415 186 009 256/40: 0A0 0x0 010 0C6 08D 015 29A 07B 096 419 3FF 03F 03F 3FF 415 186 005 256/80: 140 0x0 010 0C6 08D 015 2AB 084 096 419 3FF 03F 03F 3FF 415 186 009 TRU/40: 140 0x0 100 0C6 08D 015 2AC 091 096 419 3FF 03F 03F 3FF 415 186 005 TRU/80: (offiziell nicht möglich) ZEILENVERDOPPLUNG AUS: -1 --------------------------------------------------------------------------- Standartwerte des Videosystems auf einem SM 124, 71 Hz: VIDEOREGISTER DES FALCON $82xx.w: (Alles hexadezimaler Wortzugriff!) MODUS | 10| 60| 66| 82| 84| 86| 88| 8A| 8C| A2| A4| A6| A8| AA| AC| C0| C2 --------------------------------------------------------------------------- ST-HIG: 028 020 000 01A 000 000 20F 00C 014 3E9 000 000 043 363 3E7 080 008 --------------------------------------------------------------------------- ########################################################################### ########################################################################### Vorab: Diese Dokumentation soll nicht als Lehrbuch betrachtet werden, es soll lediglich eine kurze Einführung in das Videosystem ermöglichen. Horizontales Zeitverhalten: =========================== Der Aufbau einer Bildschirmzeile: 1 Bildschirmzeile |<------------------------------------------------------------------>| | | | 1. Halbzeile 2. Halbzeile | |<------------------------------>|<--------------------------------->| | | | |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| | | | | | | | | | |<----------------------------------->| | | | | | #5 | | | | | | | | |<-->|<-------------------------------------------------->| |<--->| #1 #2 | #4 | | | |<-------->| #3 #1: linke Austastlücke #2: sichtbarer Bildschirmbereich #3: rechte Austastlücke #4: HSync-Impuls #5: Grafikübertragungsbereich Jede Bildschirmzeile, auch die ausgetastete, besitzt einen solchen Aufbau: linke Austastlücke, sichtbarer Bereich mit ggf. Grafikbreich , rechte Aus- tastlücke und in der rechten Austastlücke den HSyncimpuls. Grundsätzlich kann man sagen, daß eine Zeile in 2 Halbzeilen unterteilt ist. Um die Horizontalregister der Bildschirmhalbzeilen berechnen zu können benötigt man einige Angaben: - Videogrundtakt: 32MHz, 25.175 MHz oder externer Takt RGB/TV VGA - Horizontalfrequenz des Monitors: 15625 Hz 31250 Hz - Länge des Hsyncimpuls: 4.7us 3.81us - Länge der rechten Austastlücke: 6.2us 4.45us - Länge der linken Austastlücke: 5.145us 1.91us Diese Werte werden vom Betriebsystem benutzt. Die Länge des Hsyncimpuls sollte nicht geändert sowie die Austastzeit nicht unterschritten werden. Das Zeitverhalten wird im Videosystem in Taktzyklen gemessen. So muß eine gewisse Anzahl von Taktzyklen vergehen bis z.B. die rechte Austastlücke aktiv wird. Sämtliche Registerinhalte hängen von den obigen Zeitangaben (die natürlich verändert werden können, es sind ja keine Festwerte vom Video- system selbst sondern Vorgaben von den Monitoren), dem Videogrundtakt und von dem Videovorteiler, der den Grundtakt runterteilt, ab. Der Videovorteiler läßt sich durch das Video-Control 2 ($82C2) Bit 2/3 in Abhängigkeit der Video-Mode-Control-Bits (Video-Control 1 ($82C0) Bit 0/1) oder dem STE-Kompatibilitätsmodus einstellen. Wichtig: der Videovorteiler und die Pixeltaktlänge werden beide von Bit 2/3 des Video-Control 2 ge- steuert. Zunächst die Berechnung folgender Horizontalregister: HHT gibt die Videotaktanzahl für eine Halbzeile an: | Videogrundtakt | HHT($8282) = int|---------------------------------------- - 2| |Horizontalfrequenz in Hz * Vorteiler * 2 | Nach HHT richtet sich der Videotaktzähler HHC($8280) der die einzelnen Takt- impule bis zum HHT-Wert hochzählt. Wird der Wert überschritten, ist also HHC = HHT+1, so ist 1 Halbzeile beendet und der Zähler fängt für die nächste Halbzeile von vorne an. HHT gibt somit die Anzahl der Videotakte einer Halbzeile an. Alle nachfolgenden Register müssen sich innerhalb des HHT-Wertes+1 befinden, da sie die Videozählerposition angeben ab wann eine Aktion ausgeführt werden soll (z.B. Start der linken Austastlücke...). HSS gibt an ab welcher Videotaktzählerposition in der 2. Halbzeile der HSyncimpuls bis Halbzeilenende ausgelöst werden soll: |HSynczeit in us * Videogrundtakt | HSS($828A) = HHT - int|-------------------------------- | - 1 | Vorteiler | Ist HSS größer als HHT+1 so wird kein VSync-Impuls ausgelöst. HBB gibt an ab welcher Videotaktzählerposition in der 2. Halbzeile die rechte Austastlücke bis Halbzeilenende aktiv werden soll: |rechte Austastlückenzeit in us * Videogrundtakt| HBB($8284) = HHT - int|-----------------------------------------------| - 1 | Vorteiler | Ist HBB größer als HHT+1 so wird keine Ausstastlücke erzeugt. HBE gibt an bis zu welcher Videotaktzählerposition in der 1. Halbzeile die linke Austastlücke aktiv bleiben soll: |linke Austastlückenzeit in us * Videogrundtakt| HBE($8286) = int|----------------------------------------------| - 1 | Vorteiler | Ist HBE größer als HHT+1 so wird über beide Halbzeilen eine Austastlücke er- zeugt. Leider habe ich die Berechnung des Grafikbereiches noch nicht herausbekommen. Es scheint etwas komplizierter zu sein, da das Betriebsystem feste Werte benutzt und ich noch keinen Zusammenhang zwischen HDB/HDE und HHT gefunden habe. Vertikales Zeitverhalten ======================== Jeder Bildschirmaufbau setzt sich aus Halbzeilen zusammen. Die Anzahl der Halbzeilen ergibt in Abhängigkeit von HHT, der die Dauer einer Halbzeile angibt, die Vertikalfrequenz. Gehen wir von einer Horizontalfrequenz von 15625 Hz aus so sind 312.5 Zeilen oder 625 Halbzeilen notwendig um eine Vertikalfrequenz von 50 Hz zu erzeugen. HHT muß natürlich so eingestellt sein, daß eine Horizontalfrequenz von 15625 Hz erzeugt wird (s.o.). Auch hier werden wieder vom Monitor abhängige Angaben benötigt: TV/RGB 50Hz TV/RGB 60Hz VGA - Horizontalfrequenz des Monitors: 15625 Hz 15625 Hz 31250 Hz - Vertikalfrequenz des Monitors: 50 Hz 59.52 Hz 59.58 Hz - Länge des VSyncimpuls: 0.192ms 0.192ms 0.064ms - Länge der oberen Austastlücke: 1.504ms 0.700ms 1.008ms - Länge der unteren Austastlücke: 0.384ms 0.384ms 0.416ms Diese Werte werden ebenfalls vom Betriebsystem verwendet. Der VSyncimpuls sollte nicht geändert und die Austastlücken nicht unterschritten werden. Bemerkenswert ist, daß das Videosystem bei 60 Hz auf ~59.5 Hz programmiert wird. Hier nun die Berechnung der einzelnen Verikalregister: VFT gibt die Anzahl der Halbzeilen pro VBL an: |Horizontalfrequenz * 2| VFT($82A2) = int|----------------------| | Vertikalfrequenz | Nach VFT richtet sich der Halbzeilenzähler VFC($82A0), der die einzelnen Halbzeilen bis zu dem Wert von VFT hochzählt. VFC wird immer dann erhöht wenn HHC den Wert von HHT erreicht hat. Erreicht VFC den Wert von VFT , so ist der Bildschirmaufbau beendet und der Zähler beginnt von vorne. VFT beeinflußt alle nachfolgenden Register. Im Interlace-Modus bei RGB-Monitoren sollte VFT um eins erniedrigt werden. VSS gibt an, ab welcher Halbzeile der VSyncimpuls bis Bildschirmende aus- gelöst werden soll: VSS($82AC) = VFT - int|VSync-Zeit in ms * Horizontalfrequenz in Hz * 2| - 1 VBB gibt an, ab welcher Halbzeile die untere Austastlücke bis Bildschirmende aktiv werden soll: VBB($82A4) = VFT - int|untere Austastlückenzeit in ms * Horiz.freq.| * 2 - 1 VBE gibt an, bis zu welcher Halbzeile von Bildschirmbeginn an, die obere Austastlücke aktiv bleiben soll: VBE($82A6) = int|obere Austastlückenzeit in ms * Horizontalfrequenz| * 2 + 1 ############################################################################ ############### research and documentation by AURA and A.M. ################ ############################################################################
Copyright © Robert Schaffner (support@doitarchive.de) Letzte Aktualisierung am 23. Dezember 2003 |