MILC logo

IndexVorigeVolgendeLeeg

De V9938 Videoprocessor
Arsoft & ??, 01-09-94


    
                   *** De MSX2 ViDeo-Processor ***

 Hier zullen de meeste registers genoemd worden met hun functie, het is 
 aan te bevelen om al enige kennis (Basic in ieder geval) hiervan te 
 hebben, deze tekst is meer bedoeld voor het snel opzoeken van 'hoe was 
 tie ook alweer'.

 Allereerst alle registers op een rijtje, met basic en de video nummers, 
 want de basic interpreter gebruikt andere waardes voor de vdp registers.


 VDP() reg  |  7  |  6  |  5   |  4   | 3    |  2   |  1   |  0
 -----------+-----+-----+------+------+------+------+------+--------
     0   0  | 0   | DG  | IE0  | IE1  | M5   | M4   | M3   |  D
     1   1  | 0   | BLK | IE2  | M1   | M2   | 0    | SZ   | MAG
     9   8  | MSE | LCS | TP   | CBD  | VRS1 | VRS0 | SPD  | B/W
    10   9  | LN  |  0  | SYM1 | SYM0 | IL   | E/O  | NTSC | DCD

 Betekenis:
 -----------
 DG      - Digitize
           0=Normaal, 1=Digitaliseer mode
 IE0     - Vertical Retrace Interrupt Enable
 IE1     - Horizontal Retrace Interrupt Enable
 IE2     - Light pen/mouse Interrupt Enable
 M5/1    - M5 M4 M3 M2 M1 Screen
            0  0  0  0  0    1
            0  0  0  0  1    0 ( 40 koloms)
            0  0  0  1  0    3
            0  0  1  0  0    2
            0  1  0  0  0    4
            0  1  0  0  1    0 ( 80 koloms)
            0  1  1  0  0    5
            1  0  0  0  0    6
            1  0  1  0  0    7
            1  1  1  0  0    8
         Screen 10,11 en 12 zijn verbouwde screen 8. 
 D       - External VDP-input
 BLK     - Enable/Disable Display
           Het scherm aan of uit zetten
 SZ      - Sprite Size
           0=8*8 Sprites, 1=16*16 Sprites
 MAG     - Magnify Sprites
           0=Normaal, 1=2* zo groot
 MSE     - Light pen/mous (1=mouse)
 LCS     - Light pen/coincidence select (1=light pen)
 TP      - Transparant mode
           0=Kleur 0 is transparant, 1=Kleur 0 niet transparant
 CBD     - Color Bus Direction
           0=Output(normaal), 1=Input(Digitaliseren)
 VRS1/0  - Video RAM Select
            VRS1 VRS0  KB
              0    0  1*16
              0    1  4*16
              1    0  1*64
              1    1  64 High speed
 SPD     - Sprite Disable (Sprites: 0=normaal, 1=geen sprites op scherm)
 SYM1/0  - Synchronisation mode (Voor digitaliseren en mixen)
           SYM1 SYM0 mode
            0    0 Intern
            0    1 Mix
            1    0 Extern (Digitize)
            1    1 none
 IL      - Interlace mode (uitleg over interlace volgt later)
 E/O     - Even/Odd Display
 NTSC    - TV mode select(0=NTSC (Japan), 1=PAL (Europa))
           De interne interrupt is in europa 50 Hz, door NTSC nul te
           maken, wordt het beeldscherm 60 * per seconde naar het
           beeldscherm gestuurd, ook zal de muziek anders gaan klinken
           (PLAY). De z80 processor wordt niet sneller, zoals onterecht
           een keer is geschreven in een blad!
 DCD     - Dot Clock Direction


   VDP() reg |  7  |  6  |  5  |  4  |  3  |  2  |  1  |  0
  -----------+-----+-----+-----+-----+-----+-----+-----+-----
     2   2   |  0  | A16 | A15 | A14 | A13 | A12 | A11 | A10
     3   3   | B13 | B12 | B11 | B10 | B9  | B8  | B7  | B6
    11  10   |  0  |  0  |  0  |  0  |  0  | B16 | B15 | B14
     4   4   |  0  |  0  | C16 | C15 | C14 | C13 | C12 | C11
     5   5   | D14 | D13 | D12 | D11 | D10 | D9  | D8  | D7
    12  11   |  0  |  0  |  0  |  0  |  0  |  0  | D16 | D15
     6   6   |  0  |  0  | E16 | E15 | E14 | E13 | E12 | E11
    15  14   |  0  |  0  |  0  |  0  |  0  | F16 | F15 | F14

 Betekenis:
 A16/A10 - Scherminfo Tabel
 B16/B6  - Kleur Tabel
 C16/C11 - Matrix Tabel
 D16/D7  - Spriteinfo Tabel
 E16/E11 - Sprite patroon Tabel
 F16/F14 - Video RAM access

 - Scherm info:
 Kan alleen in pagina's van een Kbyte schakelen, en bevat het adres 
 waarvandaan de data van het scherm staat. (screen 0 : #00000) In screen 5 
 tot 8 kan hiermee de pagina geschakeld worden en wordt dan ook in basic 
 door SET PAGE gebruikt. In screen 2 tot 4 staan hier getallen die niet 
 verandert worden, deze getallen geven aan welke plaats op het scherm bij 
 een karakter hoort, screen 2 en 4 bevatten derhalve 3 maal 0 tot 255.

 - Kleur tabel wordt door de schermen 1 tot 4 gebruikt: Screen 1: kleurcode 
 voor 8 karakters, de tabel is dus 32 bytes lang. Screen 2 en 4: Hier 
 wordt per rij van 8 pixels de kleur bijgehouden. In de scherm matrix 
 tabel staat per acht bits aangegeven of die pixels aan of uit staan. Bits 
 3 tot 0 bepalen de kleur van een '0' bit uit de scherminfo tabel. Terwijl 
 7 tot 4e '1' bepalen. Screen 3: Iedere Byte bevat de kleuren van twee 
 pixels.

 - Matrix tabel wordt in screen 0 tot 4:
 Hier worden de patronen opgebouwd, deze patronen worden door de namen 
 tabel getoond. Screen 0: 2048 bytes groot, bevat alle karakters. De 
 processor zoekt bij het opbouwen van het scherm uit de namen tabel welk 
 karakter er getoond moet worden, en uit de patroon tabel hoe dat karakter 
 er uit moet zien. Screen 1: dezelfde manier, behalve dan dat uit de kleur 
 tabel ook nog de kleur van dat karakter opgezocht wordt. Screen 2 tot 4: 
 In de namentabel wordt aangewezen welk 'karakter' er getoond wordt, en in 
 deze matrix wordt aangegeven of die pixels aan of uit staan. 

 - Sprite info:
 Bevat y-as, x-as en het nummer van de geprojecteerde sprite. Deze tabel 
 bevat waardes voor 32 sprites, die sprites kunnen de nummers 0 tot 255 
 hebben, en dus bij 16*16 sprites ook andere delen van het VRAM bestrijken 
 dan de sprite patroon tabel. Bij de MSX2 wordt het 4de byte niet 
 gebruikt, in MSX1 bevatte dit de kleur van de sprite.

 Opbouw tabel:
 byte 1: Y-as sprite
 byte 2: X-as sprite
 byte 3: sprite nummer (verwijst naar sprite patroon tabel)
 byte 4: Ongebruikt

 Voor de MSX2 geld dat alle horizontale sprite lijnen een andere kleur 
 kunnen hebben. Deze tabel staat 512 bytes onder de sprite info tabel en 
 voor iedere sprite zijn hier 16 bytes gereserveerd.
 
 Opbouw:
 bit 0 tot 3: kleurcode horizontale lijn.
 bit 5: geSET betekend dat een sprite botsing niet gedetecteerd wordt.

 bit 6: geSET betekend dat deze lijn niet getoond wordt; voor deze lijn
        nooit botsingdetectie. Als deze lijn van de sprite een lijn van
        een andere sprite met een hogere prioriteit (eerder in de
        sprite info tabel staat) passeert met dit bit op nul en als de
        lijnen van de sprites op dezelfde horizontaal liggen, dan wordt
        de lijn van deze sprite toch geprojecteerd. Bij overlap wordt op
        de spritelijnen echter ook nog een logische OR toegepast.
 bit 7: geSET betekend dat de sprite lijn 32 beeldpunten naar links
        geprojecteerd wordt.

 - Sprite patroon tabel:
 Bij 8*8 sprites zijn hier 8 bytes en bij 16*16 sprites zijn hier 32 bytes 
 gereserveerd.

   VDP() reg |  7  |  6  |  5  |  4  |  3   |  2   |  1   |  0
  -----------+-----+-----+-----+-----+------+------+------+------
     7    7  | TC3 | TC2 | TC1 | TC0 | BDC3 | BDC2 | BDC1 | BDC0
    13   12  | C3  | C2  | C1  | C0  | BC3  | BC2  | BC1  | BC0
    14   13  | ON3 | ON2 | ON1 | ON0 | OF3  | OF2  | OF1  | OF0

 Betekenis:
 TC3/0   - Text Color
 BCD3/0  - Back Drop Color
 C3/0    - Color
 BC3/0   - Back Color
 ON3/0   - Blink On (1/5 seconde)
 OF3/0   - Blink Off(1/5 seconde)

 register 7 bevat in elk ander scherm dan 0 de rand (border) kleur, Screen 
 8 gebruikt voor zijn 256 kleuren alle bits. Screen 1-5 en 7 gebruiken 
 allen bit 3 tot 0. Screen 6 gebruikt BDC3 en BDC2 voor de kleur van alle 
 verticale even lijnen, terwijl BDC1 en BDC0 gebruikt worden voor alle 
 verticale oneven lijnen, dit geeft een 16 kleuren effect.

 In screen 0 kan tekst met deze registers geinventeerd worden of een 
 andere kleur krijgen. Dan bevat TC3 tot TC0 de voorgrond kleur van de 
 geinventeerde tekst en BDC3 tot BDC0 de achtergrond kleur. Dit is de 
 reden dat het tekstscherm geen andere border kleur dan de voorgrond kleur 
 kan krijgen. Met register 13 kan daarna de tijd ingesteld worden dat het 
 getoond moet worden. ON3 tot ON0 voor aan en OF3 tot OF0 voor uit. Dit 
 kan ook voor interlacing gebruikt worden, ON wordt gebruikt voor de even 
 pagina en OF voor de oneven pagina. C3/0 en BC3/0 bevatten de voorgrond 
 en de achtergrond kleur in screen 0.

   VDP() reg |  7  |  6  |  5   |  4   |  3   |  2   |  1   | 0
 ------------+-----+-----+------+------+------+-------------+-----
    16   15  |  0  |  0  |  0   |  0   | RS3  | RS2  | RS1  | RS0
    17   16  |  0  |  0  |  0   |  0   | C3   | C2   | C1   | C0
    18   17  | S/I |  0  | RC5  | RC4  | RC3  | RC2  | RC1  | RC0
    19   18  | dV3 | dV2 | dV1  | dV0  | dH3  | dH2  | dH1  | dH0
    20   19  | IL7 | IL6 | IL5  | IL4  | IL3  | IL2  | IL1  | IL0
    21   20  |  0  |  0  | CBX5 | CBX4 | CBX3 | CBX2 | CBX1 | CBX0
    22   21  |  0  |  0  | CBY5 | CBY4 | CBY3 | CBY2 | CBY1 | CBY0
    23   22  |  0  |  0  | CBZ5 | CBZ4 | CBZ3 | CBZ2 | CBZ1 | CBZ0
    24   23  | LS7 | LS6 | LS5  | LS4  | LS3  | LS2  | LS1  | LS0

 Betekenis:
 RS3/0   - Register nummer van Statusregister
 C3/0    - Color code
 S/I     - 0=Automatisch ophogen van RC5/0, 1=Niet ophogen
 RC5/0   - Register nummer van Controlregister
           Hier kan een register nummer worden opgeslagen:
           Met indirecte toegangs poort (#0007)+3 kan er naar het
           register geschreven worden dat RC5/0 aanwijst, als er
           geschreven is wordt aan de hand van S/I wel of niet opgehoogd
           Dit is handig om achter elkaar een aantal registers van
           waarde te veranderen.
 dV3/0   - delta Vertical adjust
 dH3/0   - delta Horizontal adjust
 IL7/0   - vertical line number of Line Interrupt
 CBX5/0  - Color Burst value of phase 0
 CBY5/0  - Color Burst value of phase 1/3
 CBZ5/0  - Color Burst valeu of phase 2/3
 LS7/0   - horizontal line start Video RAM

 Toekennen van kleuren palet:
 Eerst register 16 (C3 tot C0) met kleurcode vullen.
 Daarna verzenden van twee Bytes naar de pallette schrijfpoort nl:

 bit         7    6    5    4    3    2    1    0
 --------------------------------------------------
 Byte 1      0   R2   R1   R0    0   B2   B1   B0
 Byte 2      0    0    0    0    0   G2   G1   G0

 Deze kleurcodes worden door de computer ergens apart in het VRAM 
 opgeslagen, dat doet de VDP niet zelf, daarom hebben de BIOS routines in 
 het EXTROM de voorkeur: GETPLT (#0149) om kleur code op te halen en 
 SETPLT (#014D) om een kleur te zetten.

 In screen 8 geldt de volgende formule: 32*G+4*R+B waarbij G en R tussen 
 de 0 en de 7 liggen en B tussen de 0 en de 3.

 Adjust: dV3/0 en dH3/0 zijn als volgt opgebouwd: Het 4e bit is geSET als 
 het getal positief is. Het registers kan 2* de waardes -7 tot 8 bevatten 
 en wordt opgeslagen in het two complement. Dus -7 wordt 0111 en 8 wordt 
 1000.

 Smooth scroll:
 In register 24 staat voor screen 5 tot 8 de eerste Y-as die afgebeeld 
 moet worden. In screen 0 wordt hiermee het eerste byte aangegeven die 
 voor het vormen van de karakters gebruikt wordt, dit houd in dat een 
 karakter rolt als je het register de waarde 0 tot 7 geeft.


 - Statusregisters:

    VDP() reg |  7  |  6  |  5  |  4  |  3  |  2  |  1  | 0
  ------------+-----+-----+-----+-----+-----+-----+-----+-----
      8    0  |  F  | SD  |  C  | S4  | S3  | S2  | S1  | S0   *)
     -1    1  | FL  | LPS | I4  | I3  | I2  | I1  | I0  | FH
     -2    2  | TR  | VR  | HR  | BD  |  0  |  0  | E/O | CE
     -3    3  | X7  | X6  | X5  | X4  | X3  | X2  | X1  | X0
     -4    4  |  0  |  0  |  0  |  0  |  0  |  0  | X9  | X8
     -5    5  | Y7  | Y6  | Y5  | Y4  | Y3  | Y2  | Y1  | Y0
     -6    6  |  0  |  0  |  0  |  0  |  0  |  0  | Y9  | Y8
     -7    7  | C7  | C6  | C5  | C4  | C3  | C2  | C1  | C0
     -8    8  | BX7 | BX6 | BX5 | BX4 | BX3 | BX2 | BX1 | BX0
     -9    9  |  0  |  0  |  0  |  0  |  0  | 0   | BX9 | BX8

 *) Dit register staat in het AF register bij de interrupt-routine

 Betekenis:
 F       - Vertical Retrace Interrupt
           Bij een interrupt wordt hier gekeken of het van de VDP kwam
           (0=Nee, 1=Ja) zoniet dan wordt naar de NMI-routine gesprongen
 SD      - Vijfde cq. negende sprite gedetecteerd (1=teveel sprites)
 C       - Botsing tussen sprites gedetecteerd (1=botsing)
 S4/0    - Nummer van de vijfde cq. negende sprite
 FL      - Muis of lichtpen schakelaar status
 LPS     - Tweede muis of lichtpen schakelaar status
 I4/0    - Videochip LSI-nummer (Identicatie 1-V9938 2-V9958)
 FH      - Horizontal Retrace Interrupt
 TR      - Transfer met CPU data ready
 VR      - Vertical Retrace timing
 HR      - Horizontal Retrace timing
 BD      - Border Detected
 E/O     - Even or Odd field status (0=even, 1=oneven pagina afgebeeld)
 CE      - Command Executing status (0=klaar)
 X9/0    - X-coordinaat spritebotsing, muis of lichtpen
 Y9/0    - Y-coordinaat spritebotsing, muis of lichtpen
 C7/0    - Kleurencode gelezen kleurregister
 BX9/0   - Border X-coordinaat van spritebotsing


 - Het programmeren van de VDP:
 De registers:

  VDP() reg |  7  |  6  |  5  |  4  |  3   |  2   |   1   |    0
 -----------+-----+-----+-----+-----+------+------+-------+--------
    32  33  | SX7 | SX6 | SX5 | SX4 | SX3  | SX2  |  SX1  |   SX0
    33  34  |  0  |  0  |  0  |  0  |  0   |  0   |   0   |   SX8
    34  35  | SY7 | SY6 | SY5 | SY4 | SY3  | SY2  |  SY1  |   SY0
    35  36  |  0  |  0  |  0  |  0  |  0   |  0   |  SY9  |   SY8
    36  37  | DX7 | DX6 | DX5 | DX4 | DX3  | DX2  |  DX1  |   DX0
    37  38  |  0  |  0  |  0  |  0  |  0   |  0   |   0   |   DX8
    38  39  | DY7 | DY6 | DY5 | DY4 | DY3  | DY2  |  DY1  |   DY0
    39  40  |  0  |  0  |  0  |  0  |  0   |  0   |  DY9  |   DY8
    40  41  | NX7 | NX6 | NX5 | NX4 | NX3  | NX2  |  NX1  |   NX0
    41  42  |  0  |  0  |  0  |  0  |  0   |  0   |  NX9  |   NX8
    42  43  | NY7 | NY6 | NY5 | NY4 | NY3  | NY2  |  NY1  |   NY0
    43  44  |  0  |  0  |  0  |  0  |  0   |  0   |  NY9  |   NY8
    44  45  |  C7 |  C6 |  C5 | C4  | C3   | C2   |  C1   |   C0
    45  46  |  0  |  0  |  0  |  0  | DIRY | DIRX | (N)EQ | MAJ/MIN
    46  47  | CM3 | CM2 | CM1 | CM0 | LO3  | LO2  |  LO1  |   LO0

  SX= source X-coordinaat    
  SY= source Y-coordinaat
  DX= destination X-coordinaat
  DY= destination Y-coordinaat
  NX= number X-dots
  NY= number Y-dots
  C = kleur register
  CM= commando
  LO= logische operatie

 We kunnen alleen een begin punt opgeven, als we van 0 tot 255 (x) willen 
 copieeren dan moet in NX 256 staan en in DIRX 0. Als er we van begin-X 
 naar rechts gaan om bij eind-X te komen dan moet DIRX nul zijn, anders 1. 
 Bij Y geldt, werken we van boven naar beneden, dan DIRY=0.

 Tabel van commando's en wat er allemaal ingevuld moet worden:

 Code Com  SX SY DX DY NX NY C DIRY DIRX (N)EQ MAJ/MIN LOG COM
 1111 HMMC       *  *  * *  * *   *                    *
 1110 HMCM +  +        + +    +   +                    +
 1101 HMMM *  *  *  *  * *    *   *                    *
 1100 HMMV       +  +  + +  + +   +                    +
 1011 LMMC       *  *  * *  * *   *                *   *
 1010 LMCM +  +        + +    +   +                +   +
 1001 LMMM *  *  *  *  * *    *   *                *   *
 1000 LMMV       +  +  + +  + +   +                +   +
 0111 LINE       *  *  * *  * *   *         *      *   *
 0110 SRCH +  +              +    +     +              +
 0101 PSET       *  *        *                     *   *
 0100 PINT +  +                                        +

 LOGische bewerkingen:        
 0000 PSET       1000 TPSET
 0001 AND        1001 TAND
 0010 OR         1010 TOR
 0011 XOR        1011 TXOR
 0100 NOT        1100 TNOT
 nieuwe schermkleur=oude kleur LOG source kleur

 Bij de commando's staat de eerste H of L voor High of Low speed, dit houd 
 in dat er bij het copiereen wel (High) of niet (Low) de bewerkingen in 
 Bytes worden uitgevoerd. het copieeren van een stuk VRAM gebeurt in 
 screen 5 dus met 2 punten tegelijk als een H commando gebruikt wordt.

 - HMMC en LMMC: Verplaatsen van RAM naar VRAM
 Kleur van eerste byte (of pixel) moet in het kleur register(44) staan. 
 Vervolgens wordt het kader gevuld door de rest van de data achter elkaar 
 naar het kleur register te schrijven. Uit het TR bit van statusregister 2 
 kunnen we afleiden of alle data verplaatst is. 

 - HMCM en LMCM: Verplaatsen van VRAM naar RAM
 Nu wordt de data gelezen uit statusregister 7 (andere registers kunnen 
 immers niet gelezen worden). het TR bit verteld wanneer alles binnen is.

 - HMMM en LMMM: verplaatsen VRAM->VRAM
 razendsnel verplaatsen SX,SY,NX,NY,DIRY,DIRX geven source weer. Beginpunt 
 van destination gaat in DX en DY. Dus eigenlijk het zelfde als BASIC 
 'COPY(SX,SY)-(SX+NX,SY+NY) TO (DX,DY)' als DIRX en DIRY nul zijn 
 tenminste.

 - HMMV en LMMV: VRAM vullen met kleur
 Op de zelfde manier als bij ?MMM wordt hier het te bewerken gebied 
 aangegeven. bij H commando's zijn dus geen LOGische bewerkingen mogelijk!

 - LINE: Kader in DX,DY,NX,NY,DIRX,DIRY en MAJ/MIN
 Het bijzondere is dat als er meer Y dan X punten zijn, dat dan NY en NX 
 verwisseld worden en moet MAJ/MIN geSET zijn!!

 - SRCH: zoekt een punt in DIRX richting, SY bevat lijn waarop gezocht 
 moet worden. (N)EQ =0 dan wordt er een punt gezocht die dezelfde kleur 
 heeft als het kleurregister (44). (N)EQ =1 dan wordt er een punt gezocht 
 die een andere kleur heeft als het kleurregister.

 - PINT: geeft kleur code van (SX,SY) in statusregister 7.

 Bij het programmeren moet de interrupt uit staan, dan eerst CE-bit 
 controleren of de processor de volgende opdracht kan uitvoeren. Dan 
 parameters wegschrijven, met als laatste het register 46, omdat dan de 
 VDP met het uitvoeren van de opdracht begint.

 In het MSXROM bevatten adres #0006 en #0007 een aantal I/O poorten die 
 gebruikt mogen worden om de VDP op een snelle manier te lezen.

  (#0006)   data leespoort
  (#0006)+1 status leespoort (de inhoud van adres #0006 dus, plus 1)
  (#0007)   schrijfpoort
  (#0007)+1 commando schrijfpoort
  (#0007)+2 pallette schrijfpoort
  (#0007)+3 indirecte toegangspoort

 Schrijven naar een VDP-register:

 Eerst wordt data geschreven, daarna het registernummer MET BIT 7 geSET! 
 De gewone VDP registers kunnen niet gelezen worden de Status registers 
 wel. In schema:

 bit         7    6    5    4    3    2    1    0
 -------------------------------------------------------
 Byte 1     da7  da6  da5  da4  da3  da2  da1  da0
 Byte 2      1    0   re5  re4  re3  re2  re1  re0

 Betekenis:
 da7/0       - data bits (7 in totaal)
 re5/0       - register (39 registers)
 Dit wordt naar (#0007)+1 gestuurd

 - VRAM lezen of schrijven:

 Werkwijze bij lezen en schrijven
 - register 14 beschrijven
   bit 0-2: komen overeen met de 3 hoogste bits van het 17 bits adres
   bit 3-7: moeten geRESET zijn.
 - byte wegschrijven naar commandopoort
   bit 0-7: komen overeen met 8 laagste bits van 17 bits adres
 - byte wegschrijven naar commando poort
   bit 0-5: komen overeen met bit 8-13 van het 17 bits adres
   bit 6  : geRESET betekent LEZEN, geSET betekend SCHRIJVEN
   bit 7  : Moet geRESET zijn

 In schema:

 bit:        7    6    5     4     3     2     1     0
 --------------------------------------------------------
 byte 1:     0    0    0     0     0    Ab16  Ab15  Ab14
 byte 2:     1    0    0     0     1     1     1     0
 byte 3:    Ab7  Ab6  Ab5   Ab4   Ab3   Ab2   Ab1   Ab0
 byte 4:     0   L/S  Ab13  Ab12  Ab11  Ab10  Ab9   Ab8

 Betekenis:
 Ab17/0      - VRAM adres bits, 17 bits voor 128k
 L/S         - 0 lezen (I/O poort (#0006)+1)
               1 schrijven (I/O poort (#0007)+1)


 - Organisatie van het VIDEO geheugen:

 Scherm:                            5        6        7        8
 resolutie:                      256*212  512*212  512*212  256*212
 bits per pixel:                    4        2        4        8
 punten per byte:                   2        4        2        1
 max aantal kleuren:               16        4       16       256
 grootte van een pagina:           32k      32k      64k      64k
 aantal pagina's:                   4        4        2        2
 Eind adres in VRAM (begin=0):    #7FFF    #7FFF    #FCFF    #D3FF
 (Dit betreft BSAVE,S adressen,
  voor de schermen)


    

Index

Vorige

Volgende