MOS VDC

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

MOS VDC (acronim pentru Video Display Controller , de asemenea MOS 8563 ) este un procesor produs de MOS Technology și utilizat ca cip video în computerul Commodore 128 .

Era capabil să gestioneze un mod de 80 coloane (640x200 pixeli ) în format RGB I (RGB plus Intensity), al cărui semnal este compatibil cu standardul CGA . Modelele D / DCR ale modelului C128 folosesc în schimb VDC 8568 [D] mai avansat. A fost cel mai dificil cip de produs în comparație cu toate celelalte cipuri MOS, a avut și probleme tehnice legate de defecte de sincronizare care au dus la funcționarea defectuoasă a acestuia [1] .

Istorie

VDC a fost conceput pentru a fi utilizat cu programe de birou. Aici vedem SpeedScript 128 , un procesor de text pentru C128.

Destinat inițial pentru a fi utilizat într-un computer de birou bazat pe Unix care nu a fost niciodată construit, Commodore a regândit VDC pentru a fi utilizat pe mai multe produse: dintre acestea, numai C128 a văzut producția.

La scurt timp după lansarea C128, modul bitmap al VDC a fost descris în detaliu într-o carte publicată inițial de editura germană Data Becker , unde o listare în limbajul asamblării propusă de autori a permis activarea sau dezactivarea oricărui pixel video sau, folosind BASIC pentru a efectua calculele necesare, generați figuri geometrice în bitmap pe ecranul de 80 de coloane. În februarie 1986, revista americană de computer RUN a publicat Ultra Hi-Res Graphics , un articol în care descria modul bitmap al VDC și includea o listă în Assembly care extindea BASIC 7.0 pentru a suporta modul grafic 640x200 oferit de 8563 [2] ] . Autorii Lou Wallace și David Darus au transformat programul Ultra Hi-Res într-un pachet comercial numit BASIC 8.0 , care a devenit unul dintre cele mai populare utilități pentru C128. Mai târziu, Commodore a oferit documentația completă a VDC în Ghidul de referință al programatorului Commodore 128, iar modurile bitmap ale cipului au fost puternic utilizate în versiunea C128 a sistemului de operare GEOS .

Caracteristici și descriere

Oficial, VDC a fost un cip născut pentru modurile numai text, deși o lectură atentă a documentelor tehnice pe care inginerii MOS le-au furnizat împreună cu cipul, a permis dezvoltatorilor C128 să înțeleagă că ar fi posibil să se utilizeze cipul într-un mod modul grafic.rezoluția bitmap (640x200 pixeli), deși Commodore 128 BASIC 7.0 acceptă doar modurile grafice în modurile 40 coloane (320x200 pixeli) prin intermediul vechiului cip VIC-II. Spre deosebire de cipurile video MOS anterioare, cum ar fi VIC-II , VDC avea o memorie RAM dedicată de 16 KB (extensibilă la 64) în originalul C128 și 64 KB în Commododore 128D (versiunea cu o tastatură separată de computer). Această memorie RAM nu a putut fi utilizată direct de microprocesor.

VDC, de asemenea, nu a acceptat sprite, care a limitat utilizarea sa în jocuri. Cu toate acestea, era capabil să susțină bliturile , adică putea face copii ale blocurilor din memoria sa video: această funcționalitate a fost utilizată de editorul video din ROM pentru a curăța sau derula rapid secțiunile video.

Specificatii tehnice

  • Ieșire RGBI (RGB plus Intensity) compatibilă cu standardul video CGA al IBM.
  • 16 sau 64 kilobyte de memorie dedicată (separată de memoria de sistem).
  • Rezoluție de 640x200 pixeli (640 × 400 în modul întrețesut).
  • Rezoluție de 720x700 pixeli (rezoluție maximă cu 64 KB de memorie video) [1]
  • Moduri text cu caractere 80x25, 80x50 și 40x25.
  • 8 culori cu 2 intensități.

Programare

Adresarea registrelor interne și a memoriei video dedicate a VDC trebuie făcută indirect. În primul rând, VDC trebuie să-i spună care dintre cele 37 de registre interne care urmează să fie utilizate, apoi programul trebuie să aștepte până când VDC este gata de acces și în cele din urmă poate fi accesat pentru citire sau scriere. Următorul cod de asamblare este pentru o operație de citire:

 ldx #regnum; VDC se înregistrează pentru a accesa
        stx $ d600; scrieți în registrul de control
bucla bit $ d600; verificați bitul 7 al registrului de stare
        bucla bpl; VDC nu este gata
        lda $ d601; citiți din registrul VDC
        ...

În timp ce următorul cod este pentru o operație tipică de scriere:

 ldx #regnum; VDC se înregistrează la care să scrie
        stx $ d600; scrieți în registrul de control
bucla bit $ d600; verificați bitul 7 al registrului de stare
        bucla bpl; VDC nu este gata
        sta $ d601; scrieți în registrul VDC
        ...

Datorită acestui mod curios de a controla VDC, rata maximă a cadrelor în modul bitmap este, în general, prea mică pentru orice joc de tip „arcade” în care manipularea intensivă în biți este o caracteristică cheie.

Lista registrelor

Această listă a fost preluată din Ghidul de referință al programatorului Commodore 128 [3]

Inregistreaza-te $ Hex Bit 7 Bit 6 Bitul 5 Bitul 4 Bit 3 Bit 2 Bitul 1 Bit 0 Descriere
0
00 $
HT7
HT6
HT5
HT4
HT3
HT2
HT1
HT0
Total orizontal
1
01 $
HD7
HD6
HD5
HD4
HD3
HD2
HD1
HD0
Afișat pe orizontală
2
02 USD
HP7
HP6
HP5
HP4
HP3
HP2
HP1
HP0
Poziție de sincronizare orizontală
3
03 USD
VW3
VW2
VW1
VW0
HW3
HW2
HW1
HW0
Lățime de sincronizare verticală / orizontală
4
04 USD
VT7
VT6
VT5
VT4
VT3
VT2
VT1
VT0
Vertical total
5
05 USD
-
-
-
VA4
VA3
VA2
VA1
VA0
Ajustare verticală
6
06 USD
VD7
VD6
VD5
VD4
VD3
VD2
VD1
VD0
Afișat pe verticală
7
07 USD
VP7
VP6
VP5
VP4
VP3
VP2
VP1
VP0
Poziție de sincronizare verticală
8
08 USD
-
-
-
-
-
-
IM1
IM0
Modul de intercalare
9
09 USD
-
-
-
-
CTV4
CTV3
CTV2
CTV1
Caracter vertical total
10
$ 0A
-
CM1
CM0
CS4
CS3
CS2
CS1
CS0
Modul cursor, Start Scan
11
0 miliarde USD
-
-
-
CE4
CE3
CE2
CE1
CE0
Linia de scanare a sfârșitului cursorului
12
0C $
DS15
DS14
DS13
DS12
DS11
DS10
DS9
DS8
Afișați adresa de început High Byte
13
$ 0D
DS7
DS6
DS5
DS4
DS3
DS2
DS1
DS0
Afișați adresa de pornire Low Byte
14
$ 0E
CP15
CP14
CP13
CP12
CP11
CP10
CP9
CP8
Poziția cursorului Octet mare
15
$ 0F
CP7
CP6
CP5
CP4
CP3
CP2
CP1
CP0
Poziția cursorului Octet scăzut
16
10 USD
LPV7
LPV6
LPV5
LPV4
LPV3
LPV2
LPV1
LPV0
Poziție verticală a stiloului luminos
17
11 USD
LPH7
LPH6
LPH5
LPH4
LPH3
LPH2
LPH1
LPH0
Poziție orizontală stilou luminos
18
12 USD
UA15
UA14
UA13
UA12
UA11
UA10
UA9
UA8
Actualizați adresa High Byte
19
13 USD
UA7
UA6
UA5
UA4
UA3
UA2
UA1
UA0
Actualizați adresa Low Byte
20
14 USD
AA15
AA14
AA13
AA12
AA11
AA10
AA9
AA8
Atribut Start Start High Byte
21
15 USD
AA7
AA6
AA5
AA4
AA3
AA2
AA1
AA0
Atribut Start Start Low Byte
22
16 USD
CTH3
CTH2
CTH1
CTH0
CDH3
CDH2
CDH1
CDH0
Caracter orizontal total, afișare caractere orizontal
23
17 USD
-
-
-
CDV4
CDV3
CDV2
CDV1
CDV0
Afișare caractere pe verticală
24
18 USD
COPIE
RVS
CBRATE
VSS4
VSS3
VSS2
VSS1
VSS0
Derulare verticală netedă
25
19 USD
TEXT
ATR
SEMINTE
DBL
HSS3
HSS2
HSS1
HSS0
Derulare orizontală netedă
26
$ 1A
FG3
FG2
FG1
FG0
BG3
BG2
BG1
BG0
Culoare fundal / fundal
27
1 miliard USD
AI7
AI6
AI5
AI4
AI3
AI2
AI1
AI0
Incrementarea adresei pe rând
28
1 C $
CB15
CB14
CB13
RAM
-
-
-
-
Adresa bazei de caractere
29
$ 1D
-
-
-
UL4
UL3
UL2
UL1
UL0
Subliniați linia de scanare
30
$ 1E
WC7
WC6
WC5
WC4
WC3
WC2
WC1
WC0
Număr de cuvinte
31
$ 1F
DA7
DA6
DA5
DA4
DA3
DA2
DA1
DA0
Registrul de date
32
20 USD
BA15
BA14
BA13
BA12
BA11
BA10
BA9
BA8
Blocați adresa de pornire High Byte
33
21 USD
BA7
BA6
BA5
BA4
BA3
BA2
BA1
BA0
Blochează adresa de pornire octet scăzut
34
22 USD
DEB7
DEB6
DEB5
DEB4
DEB3
DEB2
DEB1
DEB0
Afișare Activare Început
35
23 USD
DEE7
DEE6
DEE5
DEE4
DEE3
DEE2
DEE1
DEE0
Afișare Activare sfârșit
36
24 USD
-
-
-
-
DRR3
DRR2
DRR1
DRR0
Rata de reîmprospătare DRAM

Notă

  1. ^ (RO) Commodore 128 - Cele mai versatile computere pe 8 biți realizate vreodată pe commodore.ca.
  2. ^ (RO) Grafică ultra-înaltă - O descoperire pe C-128 (JPG), în RUN , n. 26, Peterborough (SUA), CW Communications, februarie 1986, p. 34, ISSN 0741-4285 ( WC ACNP ) . Transcrierea textului , pe cbmfiles.com .
  3. ^ Commodore Capital, Inc., (1986). Ghid de referință al programatorului Commodore 128. New York, NY: Bantam Books, Inc.

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT