Motorola 6845

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 9 september 2017; kontroller kräver 3 redigeringar .

Motorola MC6845  är en elektronisk komponent, ett videokontrollchip , utvecklat av Motorola i slutet av 1970-talet ( året 1977 anges i dokumentationen ). Förkortningen CRTC (Cathode Ray Tube Controller, cathode ray tube controller) används också för att beteckna chipet . Chipet är en del av Motorola 6800- processorstödkretsuppsättningen , men användes ofta i system med andra processorer.

Används i Amstrad CPC och BBC Micro -datorer , och MDA- och CGA -grafikkort för IBM PC . Därefter, för bakåtkompatibilitet, integrerades chipets funktionalitet i specialiserade chips för VGA -grafikkort .

På grund av populariteten hos IBM PC-kompatibla datorer producerades kompletta analoger av mikrokretsen i vissa länder. Så i Japan producerade Hitachi 46505- chippet , i Bulgarien tillverkades CM607- chippet . I början av 1990-talet (ungefär 1991 ) började den ryska elektronikindustrin vid Svetlana -fabriken produktionen av KM1809VG6- chippet .

MOS Technology och Rockwell producerade 6545- chippet som användes i Commodore PET- och B-seriens datorer i Commodore CBM-II- datorerna . Denna version är nästan en komplett analog till 6845-chippet med mindre skillnader.

Funktioner

Chipet är utformat för att implementera text, pseudografiska och grafiska videolägen. Den tillhandahåller generering av horisontella och vertikala synkroniseringssignaler för videogenerering , såväl som markör- och flimmerattribut, men genererar inte själva videodatan. Istället genererar mikrokretsen en adress i videominnet varifrån värdet för nästa tecken, pixel eller grupp av pixlar ska läsas. Att läsa detta värde från minnet, konvertera det till individuella pixeldata och generera den sammansatta videosignalen måste göras av en extern krets.

Stöder progressiv och sammanflätad skanning. Eftersom alla skanningsparametrar är konfigurerade av mjukvara är det möjligt att generera NTSC- och PAL- signaler och växla mellan dem mjukvara utan att ändra kopplingskretsen. Det är också möjligt att generera icke-standardiserade klocksignaler för alla andra typer av rasterdisplayer. En allvarlig begränsning är det maximala antalet rader, vilket är 128. I alfanumeriska lägen är detta antal redundant, och i grafiska lägen räcker det inte. Det är därför, för att erhålla högupplösta grafiska bilder, användes räknaren för radnumret i symbolen som ytterligare räknare, och som ett resultat dök "banking"-organisationen av videominnet upp i CGA (2 banker) och HGC (4 banker i normalt läge och 3 i CGA-emuleringsläge ).

Den aktuella genererade adressen kan lagras i en intern spärr och läsas av processorn. Denna funktion kan användas för att bestämma den exakta positionen för svepstrålen när en ljuspenna eller ljuspistol implementeras .

Enhet

Mikrokretsen är gjord med n-Channel MOS, TTL -teknik , kräver en enda matningsspänning på +5 volt. Tillverkad i DIP40 fodral (keramik och plast).

Mikrokretsen har 18 åttabitarsregister som styr alla svepparametrar. För en extern enhet är mikrokretsen tillgänglig via två portar, varav en tjänar till att välja det aktuella registret och den andra för att läsa eller skriva ett värde till det aktuella registret.

Den genererade adressen består av två delar - en 14-bitars teckenadress (CA0..CA13) och en 5-bitars strängadress (RA0..RA4), som tillåter adressering av upp till 512 KB videominne. Teckenadressen ökas sekventiellt. Linjeadressen inkrementeras i början av en ny rasterlinje när en horisontell synksignal genereras. Om radadressen inte har nått det angivna värdet sätts teckenadressen till det värde som var i början av föregående rad, annars nollställs den.

För att implementera textläget kan teckenadressen användas som adress i videominnet, linjeadressen kan användas som radantal pixlar i teckengeneratorns ROM , och värdet som läses av den externa kretsen från videominnet kan användas som teckennummer i teckengeneratorns ROM.

Grafiklägen med linjär videominnesorganisation kan implementeras genom att ställa in antalet rader till 1, men mängden adresserbart minne kommer att begränsas till 16 KB. Denna begränsning kan övervinnas genom att använda en icke-linjär organisation av videominnet - linjeadressen kan sättas till de övre bitarna av videominnets adressbussen. I det här fallet kommer alla de första raderna med pixlar från det angivna antalet rader i ett tecken att placeras sekventiellt i videominnet, sedan alla de andra, etc. Det vill säga om två rader i ett tecken anges, kommer alla t.o.m. , då kommer alla udda linjer i bilden att lokaliseras först. Detta tillvägagångssätt används i Amstrad CPC-datorn , CGA- och HGC-videoadaptrar för IBM PC och kompatibla datorer.

Skillnader från 6545

Huvudskillnaden för 6545-chippet är möjligheten till exklusiv åtkomst till adressbussen. Mikrokretsen har ytterligare två register för att ställa in den adress som behöver nås av processorn, och beroende på situationen på adressbussen kommer den önskade adressen att ställas in.

Andra mindre skillnader inkluderar avsaknaden av interlacing-stöd, möjligheten att fördröja bildupplösningen med en cykel av genererande teckenlinjer (denna funktion inkluderades senare i senare 6845 motsvarigheter), och inställning av läget för att generera en linjär grafikvideobuffert genom att ställa in en bit i statusregistret istället för att ändra teckenhöjden.

Icke-standard användning

Chipet läser startadressen en gång i början av den genererade ramen. Men om svepparametrarna ändras vid något tillfälle, kan visningen av en ny bildruta startas utan att visningen av den aktuella bilden slutförs. Detta gör att du kan skapa ett gap i de genererade adresserna under visningen av en bildruta och implementera flera "fönster" (skärmomfattande) där olika minnesområden visas. Denna metod användes ofta i spel för att kombinera områden med rullning (vanligtvis för ett fönster med en spelsituation) och utan (för att visa spelstatistik).

Eftersom det bara är möjligt att ställa in tecknets startadress, och radadressen alltid är satt till 0 i början av ramen, är vertikal rullning begränsad. Men genom att programmässigt ändra skanningsparametrarna är det möjligt att ändra positionen för det visade rastret på skärmen. På grund av kombinationen av tecken-för-tecken-rullning, bitmappsförskjutning och visning av tomma linjer vid kanterna av skärmen, är det möjligt att implementera mjuk vertikal rullning.

Se även

Länkar