POKEY - POKEY

Atari 130XE'de POKEY

Pot Klavye Entegre Devre ( POKEY ) bir dijital I / O çip için tasarlanmış Atari 8-bit ailesinin ev bilgisayarlarının ve Atari bulunan oyun pasajı 1980'lerdeki. POKEY, örnekleme potansiyometreleri (oyun kürekleri gibi ) ve anahtarların tarama matrisleri ( bilgisayar klavyesi gibi) ile ses üretimi için işlevleri birleştirir . Net tonlar olarak veya bir dizi bozulma ayarıyla değiştirilmiş dört farklı kare dalga sesi sesi üretir .

POKEY çipleri, Centipede , Missile Command , Asteroids Deluxe ve Gauntlet dahil olmak üzere birçok arcade oyununda ses için kullanılır . Atari'nin bazı arcade sistemleri , daha fazla ses için tek bir pakette 2 veya 4 POKEY'li çok çekirdekli sürümleri kullanır. Atari 7800 konsolu oyun kartuşu sistemin ses yongası daha iyi ses veren, bir pokus içermesine olanak tanır. Yalnızca iki lisanslı oyun bundan yararlanır: Ballblazer ve Commando limanları .

LSI çip 40 pimi vardır ve C012294 olarak tanımlanır. POKEY, orijinal Star Raiders'ı da programlayan Atari çalışanı Doug Neubauer tarafından tasarlandı . USPTO "ses ses efektleri çok sayıda üretilmesi için cihaz" bir için 2 Şubat 1982 tarihinde Atari ABD Patenti 4.314.236 verildi. Listelenen mucitler Steven T. Mayer ve Ronald E. Milner'dir.

Artık üretilmeyen POKEY, atari ve Atari 8-bit emülatörleri tarafından ve ayrıca Atari SAP müzik formatı ve ilgili oynatıcı aracılığıyla yazılımda taklit edilir .

Özellikleri

  • Ses
  • Klavye taraması (64 tuşa kadar) + 2 değiştirici bit (Shift, Control) + Break
  • Potansiyometre bağlantı noktaları (her biri 8 bit çözünürlüğe sahip 8 bağımsız bağlantı noktası)
  • Yüksek Çözünürlüklü Zamanlayıcılar (ses kanalları 1, 2 ve 4, sıfırı geçtiklerinde zamanlayıcı kesintilerine neden olacak şekilde yapılandırılabilir)
  • Rastgele sayı üreteci (17 bitlik polinom sayacının 8 biti okunabilir)
  • Seri G/Ç bağlantı noktası
  • Sekiz IRQ kesmesi

Sürümler

Parça numarasına göre:

  • C012294 — Atari XEGS ve Atari 5200 konsolu dahil tüm Atari 8 bit aile bilgisayarlarında kullanılır . Çip üzerindeki son ek, üreticiye atıfta bulunur:
    • C012294B-01 — AMI
    • C012294-03 - İşaretler
    • C012294-19 — Ulusal Yarı İletken
    • C012294-22 — OKI
    • C012294-31 — IMP
  • 137430-001 — POKEY için Atari atari makinelerinde bazen kullanılan parça numarası.
  • 137324-1221 — Atari arcade makinelerinde kullanılan Dört Çekirdekli POKEY Major Havoc , I, Robot , Firefox ve Return of the Jedi .

Pin yapısı

Atari POKEY (C012294) pin çıkışı
Pin Adı Pin Numaraları Açıklama
A0 - A3 36, 35, 34, 33 Bellek Adres Girişi
ACLK 27 Seri Saat Çıkışı
Avustralya doları 37 Ses çıkışı
BCLK 26 Çift Yönlü Saat G/Ç
CS0 30 Çip Seçimi
CS1 31 Çip Seçimi
D0 - D7 38, 39, 40, 2, 3, 4, 5, 6 Veri Yolu G/Ç
IRQ 29 Kesinti İsteği Çıkışı
K0 - K5 23, 22, 21, 20, 19, 18 Klavye Tarama Çıkışı
KR1 - KR2 25, 16 Klavye Satırı flaş Girişi
P0 - P7 14, 15, 12, 13, 10, 11, 8, 9 Potansiyometre (Kürek) Tarama
R/W 32 Okuma/Yazma G/Ç Kontrolü
SID 24 Seri Giriş Verileri
SOD 28 Seri Çıkış Verileri
V cc 17 Güç +5 Volt
V ss 1 Zemin
Ø2 7 Faz 2 Saat Girişi

Kayıtlar

Atari 8-bit bilgisayarlar, POKEY'i $D2xx hex sayfasına eşler ve Atari 5200 konsolu onu $E8xx hex sayfasına eşler .

POKEY, Ses, Paddle girişi, klavye girişi, seri giriş/çıkış ve kesintileri kontrol eden 29 Okuma/Yazma kaydı sağlar. Birçok POKEY kayıt adresinin, Okuma ve Yazma kaydı olarak farklı işlevleri yerine getiren ikili amaçları vardır. Bu nedenle, önceden yazılmış değeri almayı bekleyen hiçbir kod Donanım kayıtlarını okumamalıdır.

Bu sorun, donanım kayıtlarının değerlerini yansıtan normal RAM'de uygulanan İşletim Sistemi "Gölge" kayıtları tarafından bazı kayıtlar için çözülmüştür. Dikey Boş sırasında İşletim Sistemi, Yazma kayıtları için RAM'deki Gölge kayıtlarını karşılık gelen donanım kaydına kopyalar ve donanımdan Okuma kayıtları için Gölge değerlerini buna göre günceller. Bu nedenle, karşılık gelen gölge kayıtlarına sahip donanım kayıtlarının üzerine, sonraki dikey boşluk sırasında Gölge kayıtlarının değeri yazılacaktır.

Değerleri, görüntüleme döngüsünün bilinmeyen bir aşamasında doğrudan donanımdan okumak, tutarsız sonuçlar verebilir (örnek: okuma potansiyometreleri). Okuma kayıtları için İşletim Sistemi Gölge kayıtları genellikle tercih edilen bilgi kaynağı olacaktır.

Bazı Write donanım kayıtları, karşılık gelen Gölge kayıtlarına sahip değildir. Dikey boşluk sırasında değerin üzerine yazılmadan bir uygulama tarafından güvenle yazılabilirler. Uygulamanın kayıt defterine yazılan son değeri bilmesi gerekiyorsa, ne yazdığını hatırlamak için kendi gölge değerini uygulamak uygulamanın sorumluluğundadır.

İsim Açıklama Okuma yazma Onaltılık Adres Ara Adres Gölge Adı Gölge Altıgen Adresi Gölge Aralık Adresi
AUDF1 Ses Kanalı 1 Frekans Yazı yazmak $D200 53760
POT0 Potansiyometre (Kürek) 0 Okumak $D200 53760 PADDL0 0270$ 624
AUDC1 Ses Kanalı 1 Kontrolü Yazı yazmak $D201 53761
POT1 Potansiyometre (Kürek) 1 Okumak $D201 53761 PADDL1 $0271 625
AUDF2 Ses Kanalı 2 Frekansı Yazı yazmak $D202 53762
POT2 Potansiyometre (Kürek) 2 Okumak $D202 53762 PADDL2 $0272 626
AUDC2 Ses Kanalı 2 Kontrolü Yazı yazmak $D203 53763
POT3 Potansiyometre (Kürek) 3 Okumak $D203 53763 PADDL3 $0273 627
AUDF3 Ses Kanalı 3 Frekans Yazı yazmak $D204 53764
POT4 Potansiyometre (Kürek) 4 Okumak $D204 53764 PADDL4 $0274 628
AUDC3 Ses Kanalı 3 Kontrolü Yazı yazmak $D205 53765
POT5 Potansiyometre (Kürek) 5 Okumak $D205 53765 PADDL5 $0275 629
AUDF4 Ses Kanalı 4 Frekans Yazı yazmak $D206 53766
POT6 Potansiyometre (Kürek) 6 Okumak $D206 53766 PADDL6 $0276 630
AUDC4 Ses Kanalı 4 Kontrolü Yazı yazmak $D207 53767
POT7 Potansiyometre (Kürek) 7 Okumak $D207 53767 PADDL7 $0277 631
AUDCTL Ses Kontrolü Yazı yazmak $D208 53768
ALLPOT 8 Satır POT Bağlantı Noktası Durumunu Oku Okumak $D208 53768
STİMER Zamanlayıcıları Başlat Yazı yazmak $D209 53769
KBKODU Klavye Kodu Okumak $D209 53769 CH $02FC 764
SKREST Seri Durumunu Sıfırla (SKSTAT) Yazı yazmak $D20A 53770
RASTGELE Rastgele numara üreticisi Okumak $D20A 53770
POTGO POT Tarama Sırasını Başlat Yazı yazmak $D20B 53771
SEROUT Seri Port Veri Çıkışı Yazı yazmak $D20D 53773
SERİN Seri Port Veri Girişi Okumak $D20D 53773
IRQEN Kesinti İsteği Etkinleştir Yazı yazmak $D20E 53774 POKMSK $10 16
IRQST IRQ Durumu Okumak $D20E 53774
SKCTL Seri Port Kontrolü Yazı yazmak $D20F 53775 SSKCTL 0232 $ 562
SKSTAT Seri Bağlantı Noktası Durumu Okumak $D20F 53775

Aşağıdaki bireysel kayıt listelerinde aşağıdaki açıklama geçerlidir:

Bit Değeri Açıklama
0 Bit 0 olmalıdır
1 Bit 1 olmalıdır
? Bit, 0 veya 1 olabilir ve bir amaç için kullanılır.
- Bit kullanılmıyor veya belirli bir değer olması beklenmemeli
etiket Bitin amacı için daha sonraki bir açıklamaya bakın.

Ses

Pokey, programlanabilir bir ses üreteci içerir ; ayrı frekans, gürültü ve ses seviyesi kontrollerine sahip dört ses kanalı.

Her kanalın 8 bitlik bir frekans bölücüsü ve gürültü ve ses seviyesini seçmek için 8 bitlik bir kaydı vardır.

  • AUDF1 - AUDF4 – frekans kaydı (AUDio Frequency)
  • AUDC1 - AUDC4 – ses ve gürültü kaydı (AUDio Control)
  • AUDCTL – jeneratörleri kontrol eden genel kayıt (AUDio ConTroL)

POKEY'in sesi ayırt edicidir: dört kanal bağımsız olarak kullanıldığında , perde doğruluğu eksikliğinden dolayı 12 tonlu eşit mizaç skalasının parçalarının belirgin bir şekilde bozulması vardır. Daha yüksek doğruluk için kanallar eşleştirilebilir; ek olarak, daha kalın bir sese izin veren çoklu bozulma biçimleri mevcuttur. Bozulma öncelikle müzikte bas bölümleri için kullanılır.

Atari 8 bit ailesi için geliştirilen ses motorlarından birine AMP motoru (Gelişmiş Müzik İşlemcisi) adı verildi. Bu müzisyen Gary Gilbertson tarafından kullanıldı .

Ses Kanalı Frekansı

AUDF* kayıtları, karşılık gelen ses kanallarının frekansını veya perdesini kontrol eder. AUDF* değerleri, dikey boşluktan daha sık kesin aralıklarda çalışması gereken kod için faydalı olan POKEY donanım zamanlayıcılarını da kontrol eder.

Her AUDF* kaydı, POKEY saatinden gelen darbeler için bir geri sayım sayacı veya bölen sağlayan 8 bitlik bir değerdir. Bu nedenle, daha küçük değerler POKEY'den daha sık darbe çıkışına ve daha büyük değerler daha az sıklıkta darbe çıkışına izin verir. $0 hex /0 dec - $FF hex /255 dec arasındaki değerler, POKEY tarafından 1 $ hex /1 dec ile 100 $ hex /256 dec arasında olacak şekilde artırılır . Gerçek işitilebilir ses perdesi, POKEY saat frekansına ve seçilen bozulma değerlerine bağlıdır. Bkz. Ses Kanalı Kontrolü ve Ses Kontrolü .

AUDF1 $D200 Yaz

Ses Kanalı 1 Frekans

AUDF2 $D202 Yazma

Ses Kanalı 2 Frekansı

AUDF3 $D204 Yazma

Ses Kanalı 3 Frekans

AUDF4 $D206 Yaz

Ses Kanalı 4 Frekans

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

Ses Kanalı Kontrolü

Ses Kanalı kontrol kayıtları, ayrı ses kanalları üzerinde ses ve bozulma kontrolü sağlar. Ses aynı zamanda, dijital örneklerin çalınması için yararlı olan bir ses kanalının doğrudan ses seviyesi manipülasyonu ile POKEY saatinden bağımsız olarak da üretilebilir.

AUDC1 $D201 Yazma

Ses Kanalı 1 Kontrolü

AUDC2 $D203 Yazma

Ses Kanalı 2 Kontrolü

AUDC3 $D205 Yazma

Ses Kanalı 3 Kontrolü

AUDC4 $D207 Yaz

Ses Kanalı 4 Kontrolü

7. bit 6. bit 5. bit 4. bit 3. Bit 2. bit 1. bit bit 0
Gürültü 2 Gürültü 1 Gürültü 0 Kuvvet Hacmi Cilt 3 Cilt 2 Ses seviyesi 1 Cilt 0

Bit 0-3: 0'dan F'ye ses seviyesi üzerinde kontrol.

Bit 4: Zorunlu yalnızca ses çıkışı. Bu bit ayarlandığında kanal, AUDF zamanlayıcısını, gürültü/bozulma kontrollerini ve yüksek geçiş filtresini yok sayar. Ses, yalnızca ses düzeyi bitleri 0:3 ayarlanarak üretilir. Bu özellik, darbe kodu modülasyonu yoluyla dijital ses oluşturmak için kullanıldı .

Bit 5-7: Sesler/bozulma için kayıt defteri ayarlarını değiştirin. Aşağıda açıklanan bit değerleri:

Gürültü Değeri Bit Değeri Açıklama
0 0 0 00 $ 5 bit sonra 17 bit polinomlar
0 0 1 20$ yalnızca 5 bit poli
0 1 0 40 dolar 5-bit, sonra 4-bit polys
0 1 1 60 $ yalnızca 5 bit poli
100 80 dolar yalnızca 17 bit poli
1 0 1 $A0 poli yok (saf ton)
1 1 0 $C0 yalnızca 4 bit poli
1 1 1 $E0 poli yok (saf ton)

Rastgele gürültülerin üretilmesi, 17 bitlik kaydırma yazmacının üstünden 8 bit okunarak sunulur. Bu kayıtlar, NTSC için 1.79 MHz veya PAL için 1.77 MHz frekansı tarafından sürülür. Çıkışları, her ses kanalının bölücü oranı tarafından bağımsız olarak kullanılabilir.

AUDCTL $D208 Yazma

Ses Kontrolü, ses kanalları için kullanılan saat girişi seçimine, yüksek geçişli filtre özelliği üzerinde kontrole, iki kanalı birleştirerek 16 bit frekans doğruluğuna, belirli kanallar için yüksek frekanslı bir saat seçmeye ve "rastgelelik" üzerinde kontrole izin verir. polinom girişi.

7. bit 6. bit 5. bit 4. bit 3. Bit 2. bit 1. bit bit 0
17'ye 9 Poli CH1 1.79 CH3 1.79 CH2 + 1 CH4 + 3 FI1 + 3 FI2 + 4 64'e karşı 15 kHz

"1", açıklanmadıysa "açık" anlamına gelir:

bit 0
01 $: (15 kHz), frekans bölücü oranı seçimi "0" - 64 kHz, "1" - 15 kHz
1. bit
02 $: (FI2 + 4), kanal 2 için kanal 4'ün frekansına göre derecelendirilen yüksek geçiren filtre
2. bit
$04: (FI1 + 3), kanal 3'ün frekansına göre derecelendirilen kanal 1 için yüksek geçiş filtresi
3. Bit
$08: (CH4 + 3), 16 bitlik doğruluk elde etmek için 4+3 bölücülerin bağlantısı
4. bit
$10: (CH2 + 1), 16 bitlik doğruluk elde etmek için 2+1 bölücülerin bağlantısı
5. bit
$20: (CH3 1.79), kanal 3 frekansını "0" olarak ayarlayın 64 kHz'dir. "1", 1.79 MHz NTSC veya 1.77 MHz PAL'dir
6. bit
$40: (CH1 1.79), kanal 1 frekansını "0" olarak ayarlayın 64 kHz'dir. "1", 1.79 MHz NTSC veya 1.77 MHz PAL'dir
7. bit
80 $: (POLY 9), anahtar kaydırma kaydı "0" - 17-bit, "1" – 9-bit

Tüm frekans bölücüler (AUDF) aynı anda 64 kHz veya 15 kHz hızında çalıştırılabilir.

Frekans bölücüler 1 ve 3, dönüşümlü olarak CPU saati (1.79 MHz NTSC, 1.77 MHz PAL) tarafından çalıştırılabilir. Frekans bölücüler 2 ve 4, bölücüler 1 ve 3'ün çıkışı ile dönüşümlü olarak çalıştırılabilir. Bu şekilde, POKEY, 16-bit doğrulukta ses oluşturmak için 8-bit kanalların bağlanmasını mümkün kılar.

Olası kanal konfigürasyonları:

  • dört adet 8 bit kanal
  • iki 8 bit kanal ve bir 16 bit kanal
  • iki 16 bit kanal

potansiyometreler

POKEY, Potansiyometreler için en yaygın olarak kullanılan ve Paddle Kontrol Cihazları olarak da bilinen sekiz analogdan dijitale dönüştürücü bağlantı noktasına sahiptir. Analog girişler, Dokunmatik Tablet denetleyicisi ve 12 düğmeli video oyunu Klavye Denetleyicileri için de kullanılır. Her giriş, yazılımdan açılıp kapatılabilen bir düşürme transistörüne sahiptir. Zamanlayıcılar, televizyondaki elektron ışını kalemin yanından geçtiğinde zamanlayıcıyı yakalayan damla transistöre bir fotodiyot bağlayarak bir ışık kalemini desteklemek için de kullanılabilir . Kalemin dikey konumu ayrı olarak okunmalıydı.

POT0 $D200 Okuma

GÖLGE: PADDL0 $0270

Paddle Controller 0 Girişi

POT1 $D201 Okuma

GÖLGE: PADDL1 $0271

Paddle Controller 1 Girişi

POT2 $D202 Okuma

GÖLGE: PADDL2 $0272

Paddle Controller 2 Girişi

POT3 $D203 Okuma

GÖLGE: PADDL3 0273 $

Paddle Controller 3 Girişi

POT4 $D204 Okuma

GÖLGE: PADDL4 02704 $

Paddle Controller 4 Girişi

POT5 $D205 Okuma

GÖLGE: PADDL5 $0275

Paddle Controller 5 Girişi

POT6 $D206 Okuma

GÖLGE: PADDL6 $0276

Paddle Controller 6 Girişi

POT7 $D207 Okuma

GÖLGE: PADDL7 $0277

Paddle Controller 7 Girişi

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

Her girişin 8 bitlik zamanlayıcısı vardır ve her TV satırının görüntülendiği zamanı sayar. Bu, okunan değerin doğrudan kanatlar tarafından sürülen nesnelerin ekran koordinatlarına beslenmesine izin verme avantajına sahipti. Atari Kürek değerleri 0 ile 228 arasında değişir, ancak mümkün olan maksimum değer 244'tür. Kürek denetleyicisi, maksimum saat yönünde döndürüldüğünde 0 okur ve saat yönünün tersine döndürüldüğünde artan değerleri döndürür ve maksimum değerinde sona erer.

Kürek okuma işlemi , POT* değerlerini 0'a, ALLPOT değerini $FF'ye sıfırlayan ve potansiyometre okuma kapasitörlerini boşaltan POTGO'ya yazarak başlar . POT* değerleri, potansiyometrenin direnç değerine ulaşana kadar taranırken artar. Paddle okuması tamamlandığında ALLPOT'taki karşılık gelen bit 0'a sıfırlanır.

Kürek tarama işleminin tamamlanması bir video karesinin çoğunluğunu alabilir. Atari İşletim Sistemi, Kürek okumasını otomatik olarak halleder. Kanatlar okunur ve 2. aşama dikey boşluk sırasında kanat taraması başlatılır. Paddle değerleri gölge kayıtlarına kopyalanır. (Paddle tetikleyicilerinin aslında PIA'dan okunan joystick yönü girişi olduğunu unutmayın.)

SKCTL'de bir bit ayarlayarak Paddle'ları daha hızlı taramak mümkündür . Okuma dizisi yalnızca birkaç tarama satırında tamamlanır, ancak değer daha az doğrudur.

ALLPOT $D208 Okuma

Potansiyometre Tarama Durumu

7. bit 6. bit 5. bit 4. bit 3. Bit 2. bit 1. bit bit 0
kürek 7 kürek 6 kürek 5 kürek 4 kürek 3 kürek 2 kürek 1 kürek 0

Her bit bir potansiyometre girişine karşılık gelir (POT* kayıtları). POTGO'ya yazılarak palet taraması başlatıldığında, ALLPOT'taki her bir paletin biti 1'e ayarlanır. Bir paletin taraması tamamlandığında, ALLPOT'taki karşılık gelen bit, ilişkili POT* kaydındaki değerin artık okumak için geçerli olduğunu gösteren 0'a sıfırlanır.

POTGO $D20B Yaz

Potansiyometre Taramasını Başlatın

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

POTGO'ya yazmak, potansiyometre (Paddle) tarama sürecini başlatır. Bu, POT* değerlerini 0'a, ALLPOT değerini $FF'ye sıfırlar ve potansiyometre okuma kapasitörlerini boşaltır. Her potansiyometre taraması tamamlandığında, ALLPOT'taki potansiyometreye karşılık gelen bit temizlenir ve ilişkili POT* kaydının değerinin okuma için geçerli olduğunu gösterir.

Seri giriş çıkış bağlantı noktası

İçeriği:

  • seri giriş hattı
  • seri çıkış hattı
  • seri saat çıkış hattı
  • iki yönlü seri saat veri hattı
  • SKREST, SEROUT, SERIN, SKCTL, SKSTAT'ı kaydeder

POKEY bir çeşit UART . Genellikle iki katına çıkan ses kanallarından biri baud hızı üreteci olarak kullanılır. Standart baud hızı 19.2 kbit/s'dir, mümkün olan maksimum baud hızı 127 kbit/s'dir. SEROUT kaydına yerleştirilen bir bayt, seri veri yolu üzerinden otomatik olarak gönderilir. Veri çerçevesi 10 bit içerir: 1 başlangıç ​​biti, 8 veri biti, 1 durdurma biti. Gerilim seviyeleri 0 V (mantıksal 0) ve +4 V (mantıksal 1)'dir. Atari seri portunu basit bir voltaj dönüştürücü vasıtasıyla bir RS-232 portuna bağlamak mümkündür.

Her giriş/çıkış işlemi, POKEY'in dahili kaydırmalı yazmaçlarının değer değiştirmesine neden olur, bu nedenle POKEY için programlama yaparken, her işlem gerçekleştirildikten sonra bazı değerleri yeniden başlatmak gerekir.

SKREST $D20A Yaz

Seri Port Durumunu Sıfırla (SKSTAT).

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

Bu kayda bir yazma işlemi, SKSTAT'ın 1'e kilitlenen bitleri 5 ila 7'yi sıfırlayacaktır .

SEROUT $D20D Yaz

Seri bağlantı noktası veri çıkış baytı.

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

Bu, her seferinde bir bit çıkış için seri kaydırma yazmacına aktarılacak sekiz bitlik (bir bayt) değer için paralel bir "tutma" kaydıdır. Bağlantı noktası çıkış için veri kabul etmeye hazır olduğunda, bir Seri Veri Çıkışı kesintisi, İşletim Sistemine bu çıkış kaydına bir bayt yazabileceğini bildirir.

SERİN $D20D Oku

Seri bağlantı noktası veri girişi baytı.

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

SEROUT gibi, aynı zamanda paralel bir "tutma" kaydı. Bu, veri girişini bir seferde bir bit okuyan seri kaydırma yazmacı tarafından toplanan sekiz bitlik (bir bayt) değeri tutar. Tam bir bayt okunduğunda, İşletim Sistemine bu kayıttan baytı okuyabildiğini bildiren bir Seri Veri Girişi kesintisi meydana gelir.

SKCTL $D20F Yazma

Seri Port Kontrolü

7. bit 6. bit 5. bit 4. bit 3. Bit 2. bit 1. bit bit 0
Seri Arası Seri Mod2 Seri Mod1 Seri Mod0 Seri İki Tonlu Hızlı Pot Tarama KB Taramasını Etkinleştir KB geri dönüşü

Bit 0: Mekanik anahtarlardan gelen paraziti veya titreşimi ortadan kaldırmayı amaçlayan "geri dönme" taramasını etkinleştirin. 1 değeri, anahtarları tararken POKEY'in dahili bir karşılaştırma kaydı kullanmasını sağlar. Bir tuşun basılı olarak tanımlanmadan önce iki eşzamanlı taramada algılanması ve iki ardışık taramanın serbest bırakılmış sayılması için serbest bırakılmış olarak görülmesi gerekir. Bu, İşletim Sistemiyle normal klavye kullanımını sürdürmek için etkinleştirilmelidir.

Bit 1: Klavye taramasını etkinleştirmek için 1'e ayarlayın. Bu, İşletim Sistemiyle normal klavye kullanımını sürdürmek için etkinleştirilmelidir.

Bit 2: Daha az doğru olsa da hızlı Potansiyometre taramasını etkinleştirmek için 1'e ayarlayın. Hızlı Pot taraması, her döngüde sayacı artırır ve iki tarama satırında kullanılabilir bir sonuç döndürür. İşletim Sistemi, bir sonuç üretmek için bir kare (1/60. saniye) alarak sayacı her 114 döngüde (tarama çizgisi) bir artıran yavaş Pot Taramasını kullanır. İşletim Sistemi Dikey Boş Kesinti (VBI) sırasında Pot değerlerini okur ve sonucu RAM'deki potansiyometre Gölge kayıtlarına kopyalar. Ardından, sonraki VBI sırasında bir sonraki okuma için POTGO'yu sıfırlar.

Bit 3: Seri bağlantı noktası iki ton modunu etkinleştirin. Etkinleştirildiğinde, SIO veriyoluna 1 ve 0 bit çıkışı, zamanlayıcı 1 ve 2 tarafından ayarlanan tonlarla değiştirilir. Bu, normalde dijital verileri temsil eden analog tonları kasete yazmak için kullanılır.

Bit 4-6: Seri port işlemi için Saat Zamanlama Kontrolü. Aşağıda açıklanan bit değerleri:

Bağlantı Noktası Kontrolü [6:4] Bit Değeri Giriş Saati Çıkış Saati Çift Yönlü Saat
0 0 0 00 $ Harici Harici Giriş
0 0 1 $10 Kanallar 3+4 (eşzamansız) Harici Giriş
0 1 0 20$ Kanal 4 Kanal 4 Çıkış Kanalı 4
0 1 1 30 $ Kanal 3+4 (eşzamansız) Kanal 4 (eşzamansız) Giriş
100 40 dolar Harici Kanal 4 Giriş
1 0 1 50 dolar Kanal 3+4 (eşzamansız) Kanal 4 (eşzamansız) Giriş
1 1 0 60 $ Kanal 4 Kanal 2 Çıkış Kanalı 4
1 1 1 70 $ Kanal 3+4 (eşzamansız) Kanal 2 Giriş

Bit 7: Bilinen bir 0 çıkışını zorlar, böylece zamanlayıcı 2, iki tonlu seri çıkış modunda zamanlayıcı 1'i sıfırlayabilir.

SKSTAT $D20F Okuma

Seri Bağlantı Noktası Durumu

7. bit 6. bit 5. bit 4. bit 3. Bit 2. bit 1. bit bit 0
Çerçeve hatasında seri Aşırı yükte seri KB taşması Verileri Okumaya hazır Shift tuşu Son Tuşa Hala Basılı Seri Giriş Meşgul -

KBCODE $D209 Okuma

GÖLGE: CH $ 02FC

Klavye Kodu

Sekiz IRQ kesmesi

KIRMAK
Ara (BREAK anahtar kesintisi)
K
Klavye (klavye kesme)
SAYIN
Seri Giriş Hazır ise (seri raydan okuma kesmesi)
ODN
Çıktı Verisi Gerekiyorsa (seri raydan yazma kesmesi)
XD
if eXmitend Data (seri iletim sonu kesmesi)
T1
Zamanlayıcı 1, zamanlayıcı 1 kesintisi
T2
Zamanlayıcı 2, zamanlayıcı 2 kesintisi
T4
Zamanlayıcı 4, zamanlayıcı 4 kesintisi

Kesintiler, IRQEN kaydı ile yazılımdan açılıp kapatılabilir. IRQSTAT kaydı, kesinti durumunu içerir.

Tuş takımı

00 ile 3F arasındaki değerleri içeren, gerçekten basılan tuşların (K0 K5) altı anahtar kaydı. 2 kontrol değeri içerir. Bunlardan biri 6 değerin tümünün kod çözücüsü görevi görür. İkinci kontrol değerleri, özel anahtar değerlerin kodunu çözmek için kullanılır - CTRL, SHIFT ve BREAK.

Referanslar

Dış bağlantılar