Home Falcon F030 Register Falcon F030 Register DSP - Register
 

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
Home Falcon F030 Register Falcon F030 Register DSP - Register