Texas Instruments TMS9918

Texas Instruments TMS9918  on elektroninen komponentti, videoohjainsiru ( VDP, Video Display Processor). Sen kehitti Texas Instruments vuosina 1977-1979 , ja se julkaistiin vuonna 1979 . Sitä käytettiin yrityksen omassa kotitietokoneessa TI - 99/4A . Sitä käytettiin myöhemmin useissa tietokoneissa ja pelikonsoleissa 1980 - luvun alussa . TMS9918 tukee myös useita muita, myöhempiä videoohjaimia.

Kehitykseen osallistui kuusi henkilöä. Yksi heistä, Karl M. Guttag, oli mukana kehittämässä sprite-alijärjestelmää, DRAM-liitäntää ja logiikkatestausta useissa sirun versioissa [1] .

Tekniset tiedot

Luettelo järjestelmistä

TMS9918-sirua käytettiin seuraavissa järjestelmissä:

Tietokoneet:

Pelikonsolit:

Siruversiot

Sirusta on useita versioita - TMS9918, TMS9918A, TMS9928, TMS9928A, TMS9929A, TMS9118 ja TMS9128. Nimessä oleva kirjain A tarkoittaa sirun toista versiota, joka lisäsi uuden rasterivideotilan (Graphic II) ja joitain muita ominaisuuksia. Mikropiirin ensimmäistä versiota, jonka nimessä ei ollut A-kirjainta, käytettiin vain TI-99/4-tietokoneessa. TI-99/4A-tietokone ja kaikki muut tätä sirua käyttävät tietokoneet käyttävät sen toista versiota.

TMS9918A- ja TMS9928A-versiot luovat kuvan 60 Hz :n kehystaajuudella, TMS9929A-version kuvataajuus on 50 Hz.

TMS9918A-siru tuottaa täysvärisen komposiittivideosignaalin NTSC -värikoodausjärjestelmällä , kun taas TMS9928A-versio tuottaa signaalit YPbPr -muodossa  - kirkkauden Y ulostulo ja värierokanavien RY, BY lähdöt. Tällaista lähtöä vaadittiin, koska useissa maissa, esimerkiksi Euroopassa, käytettiin televisiostandardeja, joiden kuvataajuus on 50 Hz, ja erilaisia ​​​​värikoodausjärjestelmiä - PAL , SECAM . Ulkoisen värikooderin käyttö oli tässä tapauksessa kustannustehokkaampaa.

Kaikkia tämän sarjan versioita kutsutaan yleisesti nimellä TMS9918, joskus myös A-kirjain.

Jatkokehitys

Yamaha kehitti V9938 -sirun käytettäväksi MSX2-standardin mukaisissa tietokoneissa TMS9918A:n pohjalta . Se on ohjelmistoyhteensopiva TMS9918A:n kanssa, mutta siinä on ylimääräisiä rasterivideotiloja, vähemmän rajoituksia värien käytölle spriteille, pystysuora kuvan vieritysrekisteri, kyky suorittaa erilaisia ​​komentoja (videomuistissa olevien lohkojen siirtäminen tai maalaus) ja muokattava paletti. V9938:aa käytettiin myös TI-99/4A-tietokoneiden Geneve 9640 -laajennuskortissa.

Yamaha puolestaan ​​kehitti V9938 :aan perustuen V9958-sirun , joka on suunniteltu käytettäväksi MSX2+- ja MSX Turbo R -standardien tietokoneissa. Näiden sirujen väliset erot eivät olleet niin merkittäviä - siihen lisättiin useita grafiikkatiloja ja mahdollisuus käyttää enemmän värit sekä rekisteröidä kuvan vaakasuuntainen vieritys.

Yamaha johti myös sarjan seuraavan sirun, V9978 :n kehitystä , jota alunperin piti käyttää MSX Turbo R -standardin mukaisissa tietokoneissa, mutta jostain syystä sen kehitys jäi kesken. Siru julkaistiin myöhemmin nimellä V9990 . Siinä oli V9978:lle ilmoitetut ominaisuudet, mutta se ei ollut taaksepäin yhteensopiva sarjan sirujen kanssa. V9990:tä käytettiin kuitenkin MSX-tietokoneissa osana kolmannen osapuolen Graphics9000 - laajennuskorttia ( Sunrise Swiss ).

TMS9918A-sirua käytettiin myös Segan varhaisissa pelijärjestelmissä . Myöhemmin sitä käytettiin erikoistuneen videoohjaimen perustana pelikonsoleille Sega Master System ja Sega Game Gear (nimetty 315-5124, 315-5246, 315-5378). Nämä mikropiirit sisältävät omien ominaisuuksiensa lisäksi kaikki alkuperäiset TMS9918A-videotilat. Sega Mega Drive -videopelikonsoli (siru 315-5313) on taaksepäin yhteensopiva Master System- ja Game Gear -näytönohjainten kanssa, mutta siinä ei ole TMS9918A-tiloja.

Tekniset tiedot

Käyttöliittymä

TMS9918:ssa on liitäntä 16K 8-bittisen videomuistin kanssa työskentelemiseen. Tämä muisti sijaitsee videoohjaimen omalla osoiteväylällä, järjestelmän pääprosessorin osoiteavaruuden ulkopuolella, eikä se ole suoraan käytettävissä. Tietojen tallentamiseksi videomuistiin järjestelmän pääprosessorin on lähetettävä se videoohjaimen ohjausporttien kautta. Tällä ratkaisulla on sekä haittapuoli - kyvyttömyys työskennellä suoraan graafisten tietojen kanssa että etu - videoohjaimen toiminta ei hidasta pääprosessoria (mitä tapahtuu järjestelmissä, joissa videomuisti sijaitsee päämuistissa, kun laitteet käyttävät muistia samanaikaisesti), eikä vie sen osoiteavaruutta .

Prosessori kommunikoi videoohjaimen kanssa kahden kahdeksanbittisen portin kautta. Näiden porttien kautta prosessori voi lähettää videoohjaimelle komentoja ja videomuistiin tallennettavia tietoja sekä pollata videoohjaimen nykyisen tilan. Jos haluat siirtää tietoja videomuistiin, sinun on asetettava videomuistiin nykyinen osoite, jonka jälkeen voit siirtää tietoja. TMS9918:n tärkeä ominaisuus on videomuistin osoitteen automaattinen lisäys jokaisen tavun siirron aikana, mikä mahdollistaa jokaisen tavun osoitteen manuaalisen korjauksen välttämisen lohkotiedonsiirron aikana.

Videotilat

TMS9918A-siru toteuttaa neljä videotilaa. Kuten edellä mainittiin, TMS9918:ssa ei ole Graphic II -tilaa:

Tila 0 (teksti): Yksivärinen tekstitila 40×24 merkkiä. Koska näytön vaakaresoluutio on 256 pistettä, jokainen merkki on 6 pistettä leveä. Tässä tilassa spritien laitteiston näyttäminen ja kehyksen värin muuttaminen eivät ole käytettävissä.

Tila 1 (grafiikka 1): 32 x 24 merkkiä (256 × 192 pistettä). On mahdollista käyttää 256 eri merkkiä, joiden kuva asetetaan ohjelmallisesti. Symbolit on jaettu 32 ryhmään, joissa on 8 symbolia, jokaiselle näistä ryhmistä on määritetty kaksi väriä - tausta ja kuva. Siten esimerkiksi merkit 0..7 ovat aina samanvärisiä.

Tila 2 (grafiikka 2): 32 x 24 merkkiä (256 × 192 pistettä). On mahdollista käyttää kolmea 256 merkin sarjaa, joiden kuva asetetaan ohjelmallisesti. Jokaisessa sarjassa oleva hahmo voi käyttää enintään 16 eri väriä, mutta jokaisella merkkipisterivillä (8 pisteen rivillä) voi olla vain kaksi väriä.

Tila 3 (Moniväri): 64 × 48 pisteen bittikarttatila. Sillä on erittäin alhainen resoluutio, minkä vuoksi sitä käytettiin harvoin. Jokaisella pisteellä voi olla oma värinsä, mikä tahansa 16 saatavilla olevasta väristä. Spritet pysyvät korkealla resoluutiolla, samoin kuin grafiikkatiloissa 1 ja 2.

Sprites

Tiloissa 1, 2 ja 3 näytönohjain voi näyttää laitteistosprittejä. Kaiken kaikkiaan näytölle on mahdollista näyttää jopa 32 yksiväristä spriteä, joiden koko on 8 × 8 tai 16 × 16 pikseliä. Kaikkien spritien on oltava samankokoisia. Jokaisella spritillä voi olla oma värinsä. Jopa 4 spriteä voidaan näyttää yhdelle näytön vaakasuoralle riville, jos tämä arvo ylittyy, tämän rivin jäljellä olevia spritejä ei näytetä. Samaan aikaan yksinkertaisin prioriteettijärjestelmä toimii - pienemmän sarjanumeron spritet näytetään ensin. Rivikohtaisesti näytettävien spritien lukumäärän rajoitus voidaan ohittaa osittain ohjelmallisesti vaihtamalla niiden sarjanumeroita joka kehys. Tässä tapauksessa rajoituksen alaisten spritien täydellisen katoamisen sijaan ne näytetään kaikki, mutta välkkyen (ne eivät ole jokaisessa kehyksessä). Tätä tekniikkaa kutsutaan sprite - multipleksoinniksi .

Videoohjaimella ei ole kykyä automaattisesti siirtää spritejä, tämä tehtävä on ratkaistava ohjelmallisesti. Video-ohjaimella on kyky luoda keskeytys pyyhkäisysäteen pystysuuntaisen käänteisen pyyhkäisyn alussa - se tapahtuu joka kuvassa, eli joka 1/50 tai 1/60 sekunti, riippuen mikropiirin versiosta ja värikoodausstandardi. Prosessorin tulee tarvittaessa muuttaa spritien paikkaa tämän keskeytyksen käsittelijässä.

Kun minkä tahansa spriteparin kaksi läpinäkymätöntä pistettä menevät päällekkäin, sprite-törmäyslippu asetetaan. Tätä voidaan käyttää määrittämään, pitäisikö ohjelmaan toteutettuja monimutkaisempia törmäyksen havaitsemisrutiineja ajaa törmäyksen tarkan sijainnin ja siihen tarvittavan reaktion määrittämiseksi. Tässä tapauksessa videoohjain ei anna tietoa siitä, mitkä spritet ovat mukana törmäyksessä.

Graphic 2 mode

Teknisesti Graphic 2 -tila on tekstitila, jossa on 256 käyttäjän määrittämää värimerkkiä. Näyttö on pystysuunnassa jaettu kolmeen 256×64 pisteen alueeseen, joista jokaisella on oma 256 merkin sarja, joten sarjassa olevien merkkien määrä on yhtä suuri kuin näytettyjen merkkien määrä (768). Kun määritetään jokainen merkkipaikka omalle hahmolleen sarjasta, on mahdollista simuloida grafiikkatila, jossa jokaista kuvan pistettä voidaan muuttaa. Näin saadulla kehyspuskurilla on kuitenkin epälineaarinen organisaatio.

Ohjelma voi myös käyttää kolmea samaa merkistöä ja käsitellä näyttöä tekstitilassa värillisillä merkeillä. Tässä tapauksessa taustakuva ja spritet koostuvat hahmoista. Tätä tekniikkaa on käytetty usein peleissä, koska koko näytön täyttäminen tai vierittäminen kestää vain 32 x 24 tavua. Tällaisten videotilojen grafiikka tulee piirtää siten, että siirtymät 8×8 pikselin lohkojen rajojen välillä eivät ole liian havaittavissa.

Vaikeus luoda värigrafiikkaa Graphic 2 -tilassa johtuu rajallisista mahdollisuuksista näyttää väriä. Kaikkia paletin 16 väriä voidaan käyttää näytöllä, mutta jokainen 8 pisteen rivi voi sisältää vain kaksi niistä. Nämä värit voidaan valita vapaasti 16 värin paletista. Käytettäessä BASIC-tulkin LINE-käskyä tämä rajoitus on helposti havaittavissa - kun leikkaavat tai lähekkäin eriväriset viivat maalataan yhden viivan värillä. Tätä graafista artefaktia kutsutaan värivuotoksi . Tämän artefaktin luonne on täysin samanlainen kuin ZX Spectrum -tietokoneiden attribuuttien yhteentörmäysartefakti (attribuuttien päällekkäisyys) , ero on vain niiden alueiden koossa, joihin sovelletaan värien näyttämistä koskevia rajoituksia.

TMS9918-näytönohjaimessa ei ole laitteiston vieritysominaisuuksia. Tarvittaessa se tulee toteuttaa kokonaan ohjelmistolla.

Käyttöominaisuudet peleissä

Muistiinpanot

  1. Yhteenveto/CV (downlink) . Haettu 7. tammikuuta 2009. Arkistoitu alkuperäisestä 13. heinäkuuta 2011. 

Katso myös

Linkit