POKEY - POKEY

POKEY v Atari 130XE

Pot Klávesnice Integrated Circuit ( Pokey ) je digitální I / O chip určena pro 8-bitové rodiny Atari domácích počítačů a našel v Atari pasáž hry roku 1980. POKEY kombinuje funkce pro vzorkování potenciometrů (například herní pádla ) a skenovací matice přepínačů (například klávesnice počítače ) a také generování zvuku. Vytváří čtyři hlasy charakteristického zvuku čtvercových vln , buď jako čisté tóny, nebo upravené s řadou nastavení zkreslení.

POKEY čipy se používají pro zvuk v mnoha arkádových hrách včetně Stonožky , Missile Command , Asteroids Deluxe a Gauntlet . Některé arkádové systémy Atari používají vícejádrové verze se 2 nebo 4 POKEY v jednom balíčku pro více zvuků. Atari 7800 konzoly umožňuje herní cartridge tak, aby obsahovaly Pokey, které poskytují lepší zvuk než zvukový čip systému. Toho využívají pouze dvě licencované hry: porty Ballblazer a Commando .

LSI čip má 40 kolíků a je identifikován jako C012294. POKEY navrhl zaměstnanec Atari Doug Neubauer , který také programoval původní Star Raiders . USPTO udělil americký patent 4,314,236 pro Atari dne 2. února 1982 pro „zařízení pro výrobu množství audio zvukových efektů“. Uvedenými vynálezci jsou Steven T. Mayer a Ronald E. Milner.

POKEY se již nevyrábí a je emulován v softwaru arkádovými a 8bitovými emulátory Atari a také prostřednictvím hudebního formátu Atari SAP a přidruženého přehrávače.

Funkce

  • Zvuk
    • 4 částečně nezávislé zvukové kanály
    • Kanály lze konfigurovat jako jeden z následujících:
      • Čtyři 8bitové kanály
      • Dva 16bitové kanály
      • Jeden 16bitový kanál a dva 8bitové kanály
    • Objem , frekvence a průběh na kanál ( čtvercová vlna s proměnným pracovním cyklem nebo pseudonáhodný šum)
    • Dělič kmitočtu 15 kHz nebo 64 kHz.
    • Dva kanály mohou být řízeny na taktovací frekvenci CPU.
    • High-pass filtr
  • Skenování klávesnice (až 64 kláves) + 2 modifikační bity (Shift, Control) + Break
  • Porty potenciometru (8 nezávislých portů, každý s 8bitovým rozlišením)
  • Časovače s vysokým rozlišením (zvukové kanály 1, 2 a 4 lze nakonfigurovat tak, aby způsobovaly přerušení časovače při překročení nuly)
  • Generátor náhodných čísel (lze přečíst 8 bitů 17bitového polynomiálního čítače)
  • Sériový I/O port
  • Osm IRQ přerušení

Verze

Podle čísla dílu:

  • C012294-Používá se ve všech 8bitových rodinných počítačích Atari , včetně Atari XEGS a konzole Atari 5200. Přípona na čipu odkazuje na výrobce:
    • C012294B-01-AMI
    • C012294-03-Signetika
    • C012294-19-National Semiconductor
    • C012294-22-OKI
    • C012294-31-IMP
  • 137430-001-Číslo dílu se někdy používá v arkádových automatech Atari pro POKEY.
  • 137324-1221-Čtyřjádrový POKEY používaný v arkádových automatech Atari Major Havoc , I, Robot , Firefox a Návrat Jediho .

Pinout

Atari POKEY (C012294) pin-out
Název PINu Číslo PINu Popis
A0 - A3 36, 35, 34, 33 Zadání adresy paměti
ACLK 27 Výstup sériových hodin
AUD 37 Audio výstup
BCLK 26 Obousměrné hodiny I/O
CS0 30 Výběr čipu
CS1 31 Výběr čipu
D0 - D7 38, 39, 40, 2, 3, 4, 5, 6 Data Bus I/O
IRQ 29 Výstup požadavku na přerušení
K0 - K5 23, 22, 21, 20, 19, 18 Výstup skenování klávesnice
KR1 - KR2 25, 16 Vstup stroboskopu na klávesnici
P0 - P7 14, 15, 12, 13, 10, 11, 8, 9 Skenování potenciometrem (pádlem)
R/W 32 Čtení/zápis I/O ovládání
SID 24 Sériová vstupní data
DRN 28 Sériová výstupní data
V cc 17 Napájení +5 voltů
V ss 1 Přízemní
Ø2 7 Vstup fáze 2

Registry

8bitové počítače Atari mapují POKEY na hexadecimální stránku $ D2xx a konzole Atari 5200 ji mapuje na hexadecimální stránku $ E8xx .

POKEY poskytuje 29 registrů čtení/zápisu ovládajících zvuk, pádlový vstup, vstup z klávesnice, sériový vstup/výstup a přerušení. Mnoho adres registru POKEY má dvojí účel a plní různé funkce jako registr čtení a zápisu. Proto by žádný kód neměl číst hardwarové registry, které očekávají načtení dříve zapsané hodnoty.

Tento problém je u některých registrů vyřešen registry „Shadow“ operačního systému implementovanými v běžné paměti RAM, které zrcadlí hodnoty registrů hardwaru. Během svislého prázdného prostoru operační systém zkopíruje stínové registry v RAM pro zápisové registry do odpovídajícího hardwarového registru a podle toho aktualizuje stínové hodnoty pro čtecí registry z hardwaru. Zápisy do hardwarových registrů, které mají odpovídající stínové registry, budou tedy přepsány hodnotou stínových registrů během dalšího svislého prázdného místa.

Čtení hodnot přímo z hardwaru v neznámé fázi cyklu zobrazení může vrátit nekonzistentní výsledky (příklad: čtení potenciometrů). Stínové registry operačního systému pro registry ke čtení by byly obvykle preferovaným zdrojem informací.

Některé hardwarové registry pro zápis nemají odpovídající stínové registry. Mohou být bezpečně zapsány aplikací, aniž by byla hodnota přepsána během svislého prázdného místa. Pokud aplikace potřebuje znát poslední hodnotu zapsanou do registru, je odpovědností aplikace implementovat vlastní hodnotu stínu, aby si pamatovala, co napsala.

název Popis Číst psát Hex Addr Prosinec Addr Název stínu Shadow Hex Addr Shadow Dec Addr
1 AUDF Frekvence zvukového kanálu 1 Napsat 200 D $ 53760
POT0 Potenciometr (pádlo) 0 Číst 200 D $ 53760 PADDL0 0270 $ 624
AUDC1 Ovládání zvukového kanálu 1 Napsat $ D201 53761
HRNEC 1 Potenciometr (pádlo) 1 Číst $ D201 53761 PADDL1 0271 USD 625
AUDF2 Frekvence zvukového kanálu 2 Napsat 202 $ 53762
POT2 Potenciometr (pádlo) 2 Číst 202 $ 53762 PADDL2 0272 USD 626
AUDC2 Ovládání zvukového kanálu 2 Napsat 203 $ 53763
POT3 Potenciometr (pádlo) 3 Číst 203 $ 53763 PADDL3 0273 USD 627
AUDF3 Frekvence zvukového kanálu 3 Napsat 204 $ 53764
POT4 Potenciometr (pádlo) 4 Číst 204 $ 53764 PADDL4 0274 $ 628
AUDC3 Ovládání zvukového kanálu 3 Napsat 205 USD 53765
POT 5 Potenciometr (pádlo) 5 Číst 205 USD 53765 PADDL5 0275 USD 629
AUDF4 Frekvence zvukového kanálu 4 Napsat 206 $ 53766
POT6 Potenciometr (pádlo) 6 Číst 206 $ 53766 PADDL6 0276 USD 630
AUDC4 Ovládání audio kanálu 4 Napsat 207 $ 53767
7 Potenciometr (pádlo) 7 Číst 207 $ 53767 PADDL7 2 027 $ 631
AUDCTL Ovládání zvuku Napsat 208 $ 53768
ALLPOT Přečtěte si stav portu 8 řádků POT Číst 208 $ 53768
STIMER Spusťte časovače Napsat 209 $ 53769
KBCODE Kód klávesnice Číst 209 $ 53769 CH $ 02FC 764
SKREST Obnovit sériový stav (SKSTAT) Napsat $ D20A 53770
NÁHODNÝ Generátor náhodných čísel Číst $ D20A 53770
BRAMBOR Spusťte sekvenci skenování POT Napsat $ D20B 53771
SEROUT Výstup dat ze sériového portu Napsat $ D20D 53773
SERIN Vstup dat sériového portu Číst $ D20D 53773
IRQEN Povolit požadavek na přerušení Napsat $ D20E 53774 POKMSK 10 $ 16
IRQST Stav IRQ Číst $ D20E 53774
SKCTL Ovládání sériového portu Napsat $ D20F 53775 SSKCTL 0232 USD 562
SKSTAT Stav sériového portu Číst $ D20F 53775

V jednotlivých registrech uvedených níže platí následující legenda:

Bitová hodnota Popis
0 Bit musí být 0
1 Bit musí být 1
? Bit může mít hodnotu 0 nebo 1 a slouží k určitému účelu.
- Bit je nepoužitý nebo by se nemělo očekávat, že bude mít určitou hodnotu
označení Účel bitu najdete v pozdějším vysvětlení.

Zvuk

Pokey obsahuje programovatelný zvukový generátor ; čtyři zvukové kanály se samostatnými ovládacími prvky frekvence, šumu a hlasu.

Každý kanál má 8bitový frekvenční dělič a 8bitový registr pro výběr šumu a hlasitosti.

  • AUDF1 až AUDF4 - frekvenční registr (AUDio frekvence)
  • AUDC1 až AUDC4 - registr hlasitosti a šumu (ovládání AUDio)
  • AUDCTL - obecný registr, který řídí generátory (AUDio ConTroL)

Zvuk POKEY je výrazný: když jsou čtyři kanály použity nezávisle, dochází k znatelnému rozladění částí 12tónové škály stejného temperamentu kvůli nedostatečné přesnosti výšky. Kanály mohou být spárovány pro vyšší přesnost; navíc je k dispozici více forem zkreslení , což umožňuje silnější zvuk. Zkreslení se používá především v hudbě pro basové party.

Jeden ze zvukových motorů vyvinutých pro 8bitovou rodinu Atari se nazýval AMP engine (Advanced Music Processor). Toho využil hudebník Gary Gilbertson .

Frekvence zvukového kanálu

Registry AUDF* řídí frekvenci nebo výšku odpovídajících zvukových kanálů. Hodnoty AUDF* také ovládají hardwarové časovače POKEY užitečné pro kód, který musí běžet v přesných intervalech častěji než svislé prázdné místo.

Každý registr AUDF* je 8bitová hodnota poskytující časovač odpočítávání nebo dělič pulsů z hodin POKEY. Menší hodnoty tedy umožňují častější výstup impulsů z POKEY a větší hodnoty méně časté. Hodnoty $ 0 hex /0 dec na $ FF hex /255 dec jsou POKEY zvýšeny tak, aby se pohybovaly od 1 $ hex /1 dec do 100 $ hex /256 dec . Skutečná výška slyšitelného zvuku závisí na zvolené frekvenci hodin POKEY a na hodnotách zkreslení. Viz Ovládání zvukových kanálů a Ovládání zvuku .

AUDF1 $ D200 Zápis

Frekvence zvukového kanálu 1

AUDF2 $ D202 Zápis

Frekvence zvukového kanálu 2

AUDF3 $ D204 Zápis

Frekvence zvukového kanálu 3

AUDF4 $ D206 Zápis

Frekvence zvukového kanálu 4

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
? ? ? ? ? ? ? ?

Ovládání zvukového kanálu

Registry ovládání zvukových kanálů poskytují ovládání hlasitosti a zkreslení jednotlivých zvukových kanálů. Zvuk lze také generovat nezávisle na hodinách POKEY přímou manipulací hlasitosti zvukového kanálu, což je užitečné pro přehrávání digitálních samplů.

AUDC1 $ D201 Zápis

Ovládání zvukového kanálu 1

AUDC2 $ D203 Zápis

Ovládání audio kanálu 2

AUDC3 $ D205 Zápis

Ovládání zvukového kanálu 3

AUDC4 $ D207 Zápis

Ovládání audio kanálu 4

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Hluk 2 Hluk 1 Hluk 0 Vynutit hlasitost Svazek 3 Svazek 2 Hlasitost 1 Svazek 0

Bit 0-3: Ovládání úrovně hlasitosti od 0 do F.

Bit 4: Vynucený výstup pouze pro svazek. Je-li tento bit nastaven, kanál ignoruje časovač AUDF, ovládání šumu/zkreslení a filtr horní propusti. Zvuk je produkován pouze nastavením bitů hlasitosti 0: 3. Tato funkce byla použita k vytvoření digitálního zvuku prostřednictvím modulace pulzního kódu .

Bit 5-7: Nastavení posuvného registru pro zvuky/zkreslení. Bitové hodnoty popsané níže:

Hodnota hluku Hodnota bitů Popis
0 0 0 00 $ 5bitové a pak 17bitové polynomy
0 0 1 20 $ Pouze 5bitový poly
0 1 0 40 dolarů 5bitové a pak 4bitové polys
0 1 1 60 dolarů Pouze 5bitový poly
100 80 dolarů Pouze 17bitový poly
1 0 1 $ A0 žádný poly (čistý tón)
1 1 0 $ C0 Pouze 4bitový poly
1 1 1 $ E0 žádný poly (čistý tón)

Generování náhodných šumů je prováděno čtením 8 bitů z vrcholu 17bitového posuvného registru. Tyto registry jsou poháněny frekvencí 1,79 MHz pro NTSC nebo 1,77 MHz pro PAL. Jeho výstupy lze použít nezávisle na poměru děličů jednotlivých zvukových kanálů.

AUDCTL $ D208 Zápis

Ovládání zvuku umožňuje výběr hodinového vstupu použitého pro zvukové kanály, ovládání funkce filtru horních propustí, sloučení dvou kanálů dohromady umožňující přesnost 16bitové frekvence, výběr vysokofrekvenčních hodin pro konkrétní kanály a kontrolu nad „náhodností“ polynomiálního vstupu.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
17 vs 9 Poly CH1 1,79 CH3 1,79 CH2 + 1 CH4 + 3 FI1 + 3 FI2 + 4 64 vs 15 kHz

„1“ znamená „zapnuto“, pokud není popsáno:

Bit 0
$ 01: (15 kHz), volba frekvence děliče frekvence „0“ - 64 kHz, „1“ - 15 kHz
Bit 1
02 $: (FI2 + 4), horní propust pro kanál 2 hodnocená podle frekvence kanálu 4
Bit 2
$ 04: (FI1 + 3), horní propust pro kanál 1 hodnocená podle frekvence kanálu 3
Bit 3
08 $: (CH4 + 3), připojení děličů 4 + 3 pro získání 16bitové přesnosti
Bit 4
10 $: (CH2 + 1), připojení děličů 2 + 1 pro získání 16bitové přesnosti
Bit 5
20 $: (CH3 1,79), nastavená frekvence kanálu „0“ je 64 kHz. „1“ je 1,79 MHz NTSC nebo 1,77 MHz PAL
Bit 6
40 $: (CH1 1,79), nastavená frekvence kanálu „0“ je 64 kHz. „1“ je 1,79 MHz NTSC nebo 1,77 MHz PAL
Bit 7
80 $: (POLIKA 9), přepínač posuvného registru „0“-17bitový, „1“-9bitový

Všechny frekvenční děliče (AUDF) lze řídit současně rychlostí 64 kHz nebo 15 kHz.

Frekvenční děliče 1 a 3 lze střídavě řídit hodinami CPU (1,79 MHz NTSC, 1,77 MHz PAL). Frekvenční děliče 2 a 4 lze střídavě řídit výstupem děličů 1 a 3. Tímto způsobem POKEY umožňuje připojení 8bitových kanálů k vytvoření zvuku se 16bitovou přesností.

Možné konfigurace kanálů:

  • čtyři 8bitové kanály
  • dva 8bitové kanály a jeden 16bitový kanál
  • dva 16bitové kanály

Potenciometry

POKEY má osm analogově digitálních převodníkových portů, které se nejčastěji používají pro potenciometry, známé také jako pádlové ovladače. Analogové vstupy se používají také pro ovladač Touch Tablet a 12tlačítkové ovladače pro herní hry. Každý vstup má poklesový tranzistor, který lze zapnout nebo vypnout pomocí softwaru. Časovače mohou být také použity k podpoře světelného pera , připojením fotodiody k drop tranzistoru, který zachycuje časovač, když elektronový paprsek v televizi prochází kolem pera. Svislou polohu pera bylo nutné číst samostatně.

Číst POT0 $ D200

SHADOW: PADDL0 $ 0270

Pádlový ovladač 0 vstup

ČTENÍ POT1 $ D201

SHADOW: PADDL1 $ 0271

Pádlový ovladač 1 vstup

Číst POT2 $ D202

SHADOW: PADDL2 $ 0272

Paddle Controller 2 vstup

Číst POT3 $ D203

SHADOW: PADDL3 $ 0273

Paddle Controller 3 vstup

Číst POT4 $ D204

SHADOW: PADDL4 $ 02704

Pádlový ovladač se 4 vstupy

Číst POT5 $ D205

SHADOW: PADDL5 $ 0275

Pádlový ovladač 5 vstupů

Číst POT6 $ D206

SHADOW: PADDL6 $ 0276

Pádlový ovladač 6 vstupů

Číst POT7 $ D207

SHADOW: PADDL7 $ 0277

Pádlový ovladač 7 vstup

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
? ? ? ? ? ? ? ?

Každý vstup má 8bitový časovač, který počítá čas při zobrazení každé televizní linky. To mělo další výhodu v tom, že umožnilo načtení hodnoty přímo do souřadnic obrazovky objektů poháněných pádly. Hodnoty pádla Atari se pohybují od 0 do 228, i když maximum je 244. Pádlový ovladač čte 0, když je otočen do své maximální polohy ve směru hodinových ručiček, a vrací rostoucí hodnoty, když je otočen proti směru hodinových ručiček a končí na své maximální hodnotě.

Proces čtení pádlem začíná zápisem do POTGO, který resetuje hodnoty POT* na 0, hodnotu ALLPOT na $ FF a vybije čtecí kondenzátory potenciometru. Hodnoty POT* se při skenování zvyšují, dokud nedosáhnou hodnoty odporu potenciometru. Po dokončení čtení pádla se odpovídající bit v ALLPOT resetuje na 0.

Proces skenování pádla může trvat většinu video rámce k dokončení. O čtení pádly se automaticky stará operační systém Atari. Pádla jsou čtena a skenování pádel zahájeno během svislého prázdného stupně 2. Hodnoty pádla se zkopírují do stínových registrů. (Všimněte si, že spouště pádla jsou ve skutečnosti vstupem joysticku načteným z PIA.)

Rychlejší režim skenování pádel je možný nastavením trochu v SKCTL . Čtecí sekvence se dokončí pouze v několika řádcích skenování, ale hodnota je méně přesná.

ALLPOT $ D208 Přečteno

Stav skenování potenciometru

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Pádlo 7 Pádlo 6 Pádlo 5 Pádlo 4 Pádlo 3 Pádlo 2 Pádlo 1 Pádlo 0

Každý bit odpovídá jednomu vstupu potenciometru (registr POT*). Když je skenování pádla spuštěno zápisem do POTGO, každý bit pádla v ALLPOT je nastaven na 1. Když je skenování pádla dokončeno, odpovídající bit v ALLPOT je resetován na 0, což znamená, že hodnota v přidruženém registru POT* je nyní platná pro čtení.

POTGO $ D20B Zápis

Spusťte skenování potenciometru

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- - - - - - - -

Zápis do POTGO zahájí proces skenování potenciometru (pádla). Tím se vynulují hodnoty POT* na 0, hodnota ALLPOT na $ FF a vybijí se čtecí kondenzátory potenciometru. Po dokončení každého skenování potenciometru se bit odpovídající potenciometru v ALLPOT vymaže, což znamená, že hodnota příslušného registru POT* je platná pro čtení.

Výstupní port sériového vstupu

Obsahuje:

  • sériový vstupní řádek
  • sériový výstupní řádek
  • výstupní řádek sériových hodin
  • datová linka obousměrných sériových hodin
  • registruje SKREST, SEROUT, SERIN, SKCTL, SKSTAT

POKEY je jakýsi UART . Jako generátor přenosové rychlosti se obvykle používá jeden ze zdvojených zvukových kanálů. Standardní přenosová rychlost je 19,2 kbit/s, maximální možná přenosová rychlost je 127 kbit/s. Bajt vložený do registru SEROUT je automaticky odeslán po sériové sběrnici. Datový rámec obsahuje 10 bitů: 1 počáteční bit, 8 datových bitů, 1 stop bit. Úrovně napětí jsou 0 V (logická 0) a +4 V (logická 1). Sériový port Atari je možné propojit s portem RS-232 pomocí jednoduchého měniče napětí.

Každá operace vstupu/výstupu způsobí, že interní posuvné registry POKEY změní hodnotu, takže při programování pro POKEY je nutné po provedení každé operace znovu inicializovat některé hodnoty.

SKREST $ D20A Napište

Resetovat stav sériového portu (SKSTAT).

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- - - - - - - -

Zápis do tohoto registru resetuje bity 5 až 7 SKSTAT, což jsou západky na 1. Přepnutí klávesnice příznaku západek, překročení sériového vstupu dat a chyba rámce vstupu sériového dat.

Napište SEROUT $ D20D

Výstupní byte dat sériového portu.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- - - - - - - -

Jedná se o paralelní „přidržovací“ registr pro hodnotu osmi bitů (jeden bajt), který bude přenesen do sériového posuvného registru pro výstup po jednom bitu. Když je port připraven přijímat data pro výstup, přerušení Serial Data Out informuje operační systém, že může zapsat bajt do tohoto výstupního registru.

Přečteno SERIN $ D20D

Vstupní byte dat sériového portu.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- - - - - - - -

Stejně jako SEROUT také paralelní „holding“ registr. To uchovává hodnotu osm bitů (jeden bajt) sestavenou sériovým posuvným registrem, která čte vstup dat po jednom bitu. Když je načten celý bajt, dojde k přerušení sériových dat informujících operační systém, že může přečíst bajt z tohoto registru.

SKCTL $ D20F Zápis

Ovládání sériového portu

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Sériová přestávka Sériový režim 2 Sériový režim 1 Sériový režim0 Sériový dvoutónový Rychlé skenování hrnce Povolit skenování KB KB debounce

Bit 0: Povolte skenování „debounce“, které je určeno k odstranění šumu nebo chvění z mechanických přepínačů. Hodnota 1 umožňuje POKEY používat při skenování klíčů interní srovnávací registr. Klíč musí být detekován ve dvou simultánních skenováních, než bude identifikován jako stisknutý, a musí být viděn uvolněný, aby se dvě po sobě jdoucí skenování považovala za uvolněná. To by mělo být povoleno, aby bylo zachováno normální ovládání klávesnice s operačním systémem.

Bit 1: Nastavením na 1 povolíte skenování klávesnice. To by mělo být povoleno, aby bylo zachováno normální ovládání klávesnice s operačním systémem.

Bit 2: Nastavením na 1 umožníte rychlé, i když méně přesné skenování potenciometru. Rychlé skenování hrnce zvyšuje čítač v každém cyklu a vrací použitelný výsledek do dvou řádků skenování. Operační systém používá pomalé skenování hrnců, které k dosažení výsledku zvýší čítač jednou za 114 cyklů (skenovací řádek) a pořídí snímek (1/60 sekundy). OS čte hodnoty potu během jeho vertikálního přerušení (VBI) a zkopíruje výsledek do potenciometrových stínových registrů v RAM. Poté resetuje POTGO pro další čtení během dalšího VBI.

Bit 3: Povolte dvoubarevný režim sériového portu. Pokud je povoleno, 1 a 0 bitový výstup na SIO sběrnici jsou nahrazeny tóny nastavenými časovači 1 a 2. To se běžně používá pro zápis analogových tónů představujících digitální data na kazetovou pásku.

Bit 4-6: Ovládání časování hodin pro provoz sériového portu. Bitové hodnoty popsané níže:

Port Control [6: 4] Hodnota bitů Vstupní hodiny Výstupní hodiny Obousměrné hodiny
0 0 0 00 $ Externí Externí Vstup
0 0 1 10 $ Kanály 3+4 (asynchronní) Externí Vstup
0 1 0 20 $ Kanál 4 Kanál 4 Výstupní kanál 4
0 1 1 30 $ Kanál 3+4 (asynchronní) Kanál 4 (asynchronní) Vstup
100 40 dolarů Externí Kanál 4 Vstup
1 0 1 50 dolarů Kanál 3+4 (asynchronní) Kanál 4 (asynchronní) Vstup
1 1 0 60 dolarů Kanál 4 Kanál 2 Výstupní kanál 4
1 1 1 70 dolarů Kanál 3+4 (asynchronní) Kanál 2 Vstup

Bit 7: Vynucuje známý výstup 0, takže časovač 2 může resetovat časovač 1 v režimu dvoubarevného sériového výstupu.

SKSTAT $ D20F Přečteno

Stav sériového portu

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Sériová chyba v rámci Sériové v doběhu Přetečení KB Čtení dat připraveno Klávesa Shift Poslední stisknutá klávesa Sériový vstup zaneprázdněn -

Přečíst KBCODE $ D209

SHADOW: CH $ 02FC

Kód klávesnice

Osm přerušení IRQ

PŘESTÁVKA
Přerušení (přerušení klávesy BREAK)
K
Klávesnice (přerušení klávesnice)
VÁŽENÝ PANE
pokud je připraven sériový vstup (přerušení čtení ze sériové sběrnice)
ODN
pokud jsou požadována výstupní data (přerušení zápisu ze sériové sběrnice)
XD
if eXmitend Data (přerušení konce sériového přenosu)
T1
Časovač 1, časovač 1 přerušení
T2
Časovač 2, časovač 2 přerušení
T4
Časovač 4, časovač 4 přerušení

Přerušení lze zapnout nebo vypnout pomocí softwaru pomocí registrace IRQEN. Registr IRQSTAT obsahuje stav přerušení.

Klávesnice

Šest klíčových registrů skutečně tlačených klíčů (K0 K5), které obsahují hodnoty od 00 do 3F. Obsahuje 2 kontrolní hodnoty. Jeden z nich funguje jako dekodér všech 6 hodnot. Druhé kontrolní hodnoty slouží k dekódování speciálních klíčových hodnot - CTRL, SHIFT a BREAK.

Reference

externí odkazy