WDC 65C02 - WDC 65C02
Genel bilgi | |
---|---|
başlatıldı | 1981 | ?
Ortak üretici(ler) | |
Verim | |
Maks. CPU saat hızı | 1 MHz ila 14 MHz |
Tarih | |
selefi | MOS Teknolojisi 6502 |
Batı Tasarım Merkezi (WDC) 65C02 mikroişlemci gelişmiş olan CMOS popüler sürümü NMOS tabanlı 8-bit 6502 MOS Technology . 65C02, orijinal 6502'deki birkaç sorunu düzeltti ve bazı yeni talimatlar ekledi, ancak ana özelliği, aynı hızda çalışan orijinal 6502'den 10 ila 20 kat daha az güç kullanımını büyük ölçüde azalttı. Azalan güç tüketimi, 65C02'yi endüstriyel ortamlarda taşınabilir bilgisayar rollerinde ve mikro denetleyici sistemlerinde kullanışlı hale getirdi . Bazı ev bilgisayarlarında ve tıbbi sınıf implante edilmiş cihazlar da dahil olmak üzere gömülü uygulamalarda kullanılmıştır.
Geliştirme 1981'de başladı ve örnekler 1983'ün başlarında piyasaya sürüldü. WDC, tasarımı Synertek , NCR , GTE ve Rockwell Semiconductor'a lisansladı . Rockwell'in birincil ilgi alanı gömülü pazardı ve bu role yardımcı olmak için birkaç yeni komutun eklenmesini istedi. Bunlar daha sonra temel sürüme kopyalandı ve bu noktada WDC, W65C02'yi oluşturmak için kendi iki yeni komutunu ekledi . Sanyo daha sonra tasarımı da lisansladı ve Seiko Epson , HuC6280 olarak daha fazla değiştirilmiş bir versiyon üretti .
İlk versiyonlar 40-pin DIP paketleme kullanıyordu ve 1, 2 ve 4 MHz versiyonları mevcuttu. Daha sonraki sürümler, PLCC ve QFP paketlerinin yanı sıra PDIP'de ve çok daha yüksek saat hızı dereceleriyle üretildi. WDC'nin güncel versiyonu olan W65C02S-14 , tamamen statik bir çekirdeğe sahiptir ve 5 voltta çalıştırıldığında resmi olarak 14 MHz'e kadar hızlarda çalışır.
Giriş ve özellikler
65C02, 16 bit program sayacı ve adres yolu ile düşük maliyetli, genel amaçlı 8 bitlik bir mikroişlemcidir (8 bit kayıtlar ve veri yolu ) . Kayıt kümesi, tek bir 8 bitlik akümülatör (A), iki adet 8 bitlik dizin kaydı (X ve Y), bir 8 bitlik durum kaydı (P) ve bir 16 bitlik program sayacı (PC) ile küçüktür . Tek akümülatöre ek olarak, RAM'in ilk 256 baytı olan "sıfır sayfa" ( - ), 16 bit adres yerine 8 bit bellek adresi kullanan adresleme modları aracılığıyla daha hızlı erişim sağlar. Yığın sonraki 256 bayt yalan, sayfa bir ($ 01FF için $ 0100) ve taşınamaz veya uzatılamaz. Yığın, yığın işaretçisi (S) $01FF'den başlayarak ve yığın büyüdükçe azalacak şekilde geriye doğru büyür. Komut başına bir ile üç bayt arasında değişen değişken uzunlukta bir komut kümesine sahiptir .
$0000
$00FF
65C02'nin temel mimarisi, orijinal 6502 ile aynıdır ve bu tasarımın düşük güçlü bir uygulaması olarak kabul edilebilir. Orijinal 6502 için en popüler hız olan 1 MHz'de, 65C02 yalnızca 20 mW gerektirirken, orijinal 450 mW kullanır, bu da yirmi kattan fazla bir azalmadır. Manuel olarak optimize edilmiş çekirdek ve düşük güç kullanımı, 65C02'yi çip üzerinde düşük güçlü sistem (SoC) tasarımları için çok uygun hale getirmeyi amaçlamaktadır .
W65C02S çekirdeğini uygulamaya özel bir entegre devre (ASIC) veya bir sahada programlanabilir kapı dizisi (FPGA) olarak tasarlamak için bir Verilog donanım açıklama modeli mevcuttur . Yarı iletken endüstrisinde yaygın olduğu gibi, WDC bir geliştirici kartı , bir devre içi öykünücü (ICE) ve bir yazılım geliştirme sistemi içeren bir geliştirme sistemi sunar.
W65C02S-14 2020 tarihi itibariyle versiyonu ve de mevcuttur PDIP , PLCC ve QFP paketleri içerir. Resmi olarak desteklenen maksimum Ø2 (birincil) saat hızı, 5 voltta çalıştırıldığında 14 MHz'dir ve –14 parça numarası son ekiyle belirtilir (hobiciler , resmi derecelendirmeden daha hızlı çalışan 65C02 homebrew sistemleri geliştirmiştir ). "S" işareti, parçanın tamamen statik bir çekirdeğe sahip olduğunu gösterir; bu özellik, Ø2'nin yüksek veya düşük durumda veri kaybı olmadan yavaşlatılmasına veya tamamen durdurulmasına olanak tanır. CMOS'ta uygulanmayan tipik mikroişlemciler dinamik çekirdeklere sahiptir ve bazı minimum ve maksimum belirtilen değerler arasında sürekli olarak saat hızına tabi tutulmazlarsa dahili kayıt içeriklerini kaybederler (ve dolayısıyla çökerler).
|
Genel mantık özellikleri
- 8 bit veri yolu
- 16 bit adres yolu (64 kB adres alanı sağlar)
- 8 bitlik aritmetik mantık birimi (ALU)
- 8 bit işlemci kayıtları :
- 16 bit program sayacı
- 212 işlem koduyla uygulanan 69 talimat
- Sıfır sayfa adresleme dahil 16 adresleme modu
Mantık özellikleri
- Vektör çekme (
VPB
) çıkışı, kesme vektörlerinin ne zaman ele alındığını gösterir - Bellek kilidi (
MLB
) çıkışı, bir okuma-değiştirme-yazma talimatının işlendiğini diğer bus master'larına bildirir -
WA it-için- ben nterrupt (
WAI
) ve ST o P (STP
) talimatları güç tüketimini azaltmak, azaltmak kesme gecikme ve dış olaylar ile senkronizasyon sağlamak
Elektriksel özellikler
- 1,71 V ile 5,25 V arasında belirtilen besleme gerilimi
- Sırasıyla 1,89 V ve 5,25 V'ta MHz başına 0,15 ve 1,5 mA akım tüketimi (çekirdek)
- Değişken uzunluklu komut seti, sabit uzunluklu komut seti işlemcileri üzerinde kod boyutu optimizasyonu sağlar, güç tasarrufu sağlar
- Tamamen statik devre , gücü korumak için saati durdurmaya izin verir
Saat özellikleri
W65C02S, 1.8 ile 5 volt (±%5) arasındaki herhangi bir uygun besleme voltajında (V DD ) çalıştırılabilir. Veri sayfası 14 MHz, 5 V, 3.3 V ya da 8 MHz 3 V, 4 MHz'de 2.5 V ve 2 MHz'de 1.8 V AC özellikleri tabloda çalışma karakteristikleri. Bir grafik, tipik cihazların AC özellikleri tablosu tarafından önerilenden daha yüksek hızlarda çalışabildiğini ve 20 MHz'de güvenilir çalışmanın 5'te V DD ile kolayca elde edilebileceğini gösterdiğinden, bu bilgi daha önceki bir veri sayfasının eseri olabilir. volt, destekleyici donanımın buna izin vereceğini varsayarsak.
İsteğe bağlı saat hızları için W65C02S desteği, 13,5 MHz (dijital SDTV luma örnekleme hızı), 14.31818 MHz (NTSC renk taşıyıcı frekansı × 4) gibi sistemin diğer bazı bölümleri için ideal bir hızda çalışan bir saat kullanmasına olanak tanır. 14.75 MHz (PAL kare piksel), 14.7456 (baud hızı kristali), vb., V DD frekansı desteklemek için yeterli olduğu sürece . Tasarımcı Bill Mensch , F MAX'ın mikroişlemci pinlerindeki kapasitif yük gibi çip dışı faktörlerden etkilendiğine dikkat çekti . Kısa sinyal yolları ve en az cihaz kullanarak yükü en aza indirmek F MAX'ı yükseltmeye yardımcı olur . PLCC ve QFP paketleri, PDIP paketinden daha az pinden pine kapasitansa sahiptir ve baskılı devre kartı alanı kullanımında daha ekonomiktir .
WDC, W65C02S'nin FPGA gerçekleştirmelerinin 200 MHz'de başarıyla çalıştırıldığını bildirdi.
NMOS 6502 ile karşılaştırma
Temel mimari
65C02, çoğunlukla düşük güçlü bir 6502 olarak düşünülebilse de, orijinalde bulunan birkaç hatayı düzeltir ve programcının daha küçük ve daha hızlı çalışan programlar yazmasına yardımcı olabilecek modları ve özellikleri adresleyen yeni talimatlar ekler. Ortalama 6502 montaj dili programının 65C02'de yüzde 10 ila 15 daha küçük yapılabileceği ve belirli bir görevi gerçekleştirmek için daha az talimat kullanılması yoluyla büyük ölçüde önlenen bellek erişimleri yoluyla performansta benzer bir iyileşme görülebileceği tahmin edilmektedir.
Belgelenmemiş talimatlar kaldırıldı
Orijinal 6502, farklı adresleme modlarıyla birleştirildiğinde , olası 256 8-bit işlem kodu modelinden toplam 151 işlem kodu üreten 56 talimata sahipti . Geri kalan 105 kullanılmayan işlem kodu tanımsızdı; 3, 7, B veya F ile düşük sıralı 4 bitlik kod seti tamamen kullanılmadı, düşük sıra 2'ye sahip kod sadece tek bir işlem koduna sahipti.
6502, bu artık kodların bazılarının fiilen eylemleri gerçekleştirme biçimiyle ünlüydü. 6502'nin komut kod çözücünün çalışma şekli nedeniyle, işlem kodunda belirli bitlerin ayarlanması, komut işlemenin bölümlerinin gerçekleşmesine neden olur. Bu işlem kodlarından bazıları işlemciyi anında çökertir, bazıları ise yararlı işlevler gerçekleştirir ve hatta kullanıcılar tarafından resmi olmayan derleyici anımsatıcıları verilirdi.
65C02, daha önce bu "belgelenmemiş talimat" yuvalarının bir kısmını kullanan bir dizi yeni işlem kodu ekledi, örneğin, şimdi yeni BBS
talimat için $FF kullanıldı (aşağıya bakın). Gerçekten kullanılmayanlar, NOP
s yapmak üzere ayarlandı . Bu kodlardan yararlanan programlar 65C02'de çalışmayacaktır, ancak bu kodların her zaman çalışmadığı belgelenmiştir ve kullanılmamaları gerekirdi.
Hata düzeltmeleri
Orijinal 6502, ilk başlatıldığında birkaç hataya sahipti. İşlemcinin ilk sürümlerinde, ROR
MOS Teknolojisi'nin bu talimatı belgelemeyerek ele aldığı sorunlu (sağa döndür) bir talimat vardı . ROR
üretim çalıştırmasında çok erken bir zamanda düzeltildi ve işlemciyi kullanan makinelerin büyük çoğunluğu için bir sorun değildi.
Buna karşılık, 6502'nin tüm NMOS türevlerinde bulunan kötü şöhretli bir hata, dolaylı adreslemeJMP
kullanılırken atlama talimatını ( ) içerir . Bu adresleme modunda, talimatın hedef adresi, talimatın bir işleneni olmak yerine bellekten (atlama vektörü) alınır . Örneğin, 1234$ (en az anlamlı bayt) ve 1235$ (en anlamlı bayt) bellek konumlarındaki değeri alır ve bu değerleri program sayacına yükler , bu da işlemcinin atlama vektöründe depolanan adreste yürütmeye devam etmesine neden olur.
JMP
JMP
JMP ($1234)
Hata, vektör adresi bir bellek sayfasının sınırı olan $FF ile sona erdiğinde ortaya çıkar . Bu durumda, JMP
yeni sayfanın 00$'ı yerine, orijinal sayfanın 00$'ından hedef adresin en önemli baytını getirir. Bu nedenle JMP ($12FF)
, hedef adresin en az anlamlı baytını 12FF'de ve hedef adresin en önemli baytını 1300 ABD Doları yerine 1200 ABD Doları'ndan alır. 65C02 bu sorunu düzeltti.
Bir hatadan çok bir gözden kaçırma, NMOS 6502'nin durum kaydındaki (D)ecimal bayrağının durumu, bir sıfırlama veya kesmeden sonra tanımsızdır . Bu, aritmetik işlemlerle ilgili herhangi bir hatadan kaçınmak için programcıların bayrağı bilinen bir değere ayarlaması gerektiği anlamına gelir. Sonuç olarak, CLD
6502 kesme işleyicilerinin neredeyse tamamında ve sıfırlama kodunun başlarında bir talimat (Clear Decimal) bulunur . 65C02, herhangi bir kesintiye yanıt olarak veya bir donanım sıfırlamasına yanıt olarak durum kaydını yığına ittikten sonra bu bayrağı otomatik olarak temizler, böylece işlemciyi ikili aritmetik moduna geri döndürür.
Ondalık mod aritmetiği sırasında , NMOS 6502 (N)negatif, o(V)erflow ve (Z)ero bayraklarını temeldeki ikili aritmetiğin sonucunu yansıtacak şekilde günceller, yani bayraklar işlemciden önce hesaplanan bir sonucu yansıtır ondalık düzeltme yapmak. Buna karşılık, 65C02, bu bayrakları, aritmetik talimatı başına ekstra bir saat döngüsü pahasına, ondalık aritmetik sonucuna göre ayarlar.
Gibi, salt değiştirme-yazma (RMW) talimatı yürütürken , bütün NMOS bir çift yazma yapacağız varyantları addr önce geçerli değeri bulunan yeniden yazma, addr ve sonra değiştirilen değerini yazma. Bu davranış, addr bir donanım kaydıysa , çözülmesi zor hatalara neden olabilir . 65C02 bunun yerine addr öğesinin çift okumasını ve ardından tek bir yazma işlemini gerçekleştirir.
INC addr
Dizine alınmış adresleme gerçekleştirirken, dizin oluşturma bir sayfa sınırını geçerse, doğru adrese erişmeden önce tüm NMOS türevleri geçersiz bir adresten okuyacaktır. Bir RMW talimatında olduğu gibi, bu davranış, indeksleme yoluyla donanım kayıtlarına erişirken sorunlara neden olabilir. 65C02, indeksleme bir sayfa sınırını aştığında talimat işlem kodunun sahte bir okumasını gerçekleştirerek bu sorunu çözdü. Ancak bu düzeltme, temel adres düz bir sayfa sınırındayken oluşan yeni bir hatayı ortaya çıkardı (bu, indekslemenin asla bir sonraki sayfaya geçmeyeceği anlamına gelir). Yeni hatayla, indekslemeden önce temel adreste bir kukla okuma gerçekleştirilir, öyle ki LDA $1200,X
, X'in değeri 1200$'a eklenmeden önce 1200$'da bir kukla okuma yapacaktır. Yine, donanım kayıt adresleri üzerinde indeksleme yapılırsa, bu hata tanımsız davranışa neden olabilir.
Bir NMOS 6502, bir donanım kesintisi meydana geldiğinde aynı anda bir BRK (yazılım kesintisi) işlem kodu alıyorsa, işlemci kesintiye tepki gösterdiğinden BRK yoksayılır. 65C02, kesmeye hizmet vererek ve ardından BRK'yi yürüterek bu durumu doğru şekilde ele alır.
Yeni adresleme modları
6502, sıfır sayfasında depolanan 16 bitlik adresler aracılığıyla başvuruyu kaldıran iki dolaylı adresleme moduna sahiptir:
- İndekslenmiş dolaylı, örneğin
LDA ($10,X)
, 16 bitlik vektörü okumadan önce X kaydını verilen sayfa sıfır adresine ekler. Örneğin, X 5 ise, 15$/16$ konumundan 16 bitlik adresi okur. Bu, sıfır sayfasında bir dizi işaretçi olduğunda kullanışlıdır. - Dolaylı indeksleme
LDA ($10),Y
, verilen sayfa sıfır adresinden okunan 16 bitlik vektöre Y kaydını ekler. Örneğin, Y 5 ise ve 10$/11$ 1000$ vektörünü içeriyorsa, Bu, 1005$'dan itibaren değeri okur. Bu, işaretçi ofset adresleme gerçekleştirir.
Bu modelin bir dezavantajı, indeksleme gerekli değilse, indeks kayıtlarından birinin hala sıfıra ayarlanması ve bu komutlardan birinde kullanılması gerektiğidir. 65C02 LDA ($10)
, indeksli dolaylı ve dolaylı indeksli modları kullanan tüm talimatlara indeksli olmayan bir dolaylı adresleme modu ekleyerek indeks kayıtlarını serbest bıraktı.
6502'nin JMP
talimatı, belirli bir bellek adresinden 16 bitlik bir değer okuyan ve ardından bu 16 bitlik değerdeki adrese atlayan "mutlak dolaylı" olarak bilinen benzersiz (6502 talimat arasında) bir adresleme moduna sahipti. Örneğin, $A000 bellek konumu 34$'ı ve $A001$'ı 12$'ı tutuyorsa, JMP ($A000)
bu iki baytı okur, 1234$ değerini oluşturur ve sonra o konuma atlar.
Dolaylı adreslemenin yaygın bir kullanımı , bir dizin kullanılarak erişilebilen alt yordamlar için giriş noktalarının bir listesi olan dal tabloları oluşturmaktır . Örneğin, bir aygıt sürücüsü bir tabloda , , , vb. için giriş noktalarını $A000 değerinde listeleyebilir. üçüncü giriştir, sıfır dizinlidir ve her adres 16 bit gerektirir, bu nedenle birini aramak için . Sürücü güncellenirse ve alt program kodu bellekte hareket ederse, işaretçi tablosu $A000'de kaldığı sürece mevcut herhangi bir kod çalışmaya devam edecektir.
OPEN
CLOSE
READ
READ
READ
JMP ($A004)
65C02, dal tablolarının kullanımını kolaylaştıran yeni "endekslenmiş mutlak dolaylı" modu ekledi. Bu mod, X kaydının değerini mutlak adrese ekledi ve elde edilen konumdan 16 bitlik adresi aldı. Örneğin, READ
yukarıdaki tablodan fonksiyona erişmek için X'te 4, ardından JMP ($A000,X)
. Bu erişim tarzı, 8 bitlik bir ofset ile bağlantılı olarak tek bir temel adres kullanıldığından, şube tablolarına erişimi daha basit hale getirir.
Yeni ve değiştirilmiş talimatlar
Yeni adresleme modlarına ek olarak, "temel model" 65C02 ayrıca bir dizi yeni talimat ekledi.
-
INC
veDEC
artık hiçbir parametre olmadan akümülatörü artırın veya azaltın. Bu, yalnızcaINX
/DEX
,INY
/DEY
ve / öğelerini içeren orijinal talimat setinde garip bir gözetimdi . Bazı montajcılar / veya / alternatif biçimlerini kullanır .INC addr
DEC addr
INA
DEA
INC A
DEC A
-
STZ addr
İçinde STore Sıfır addr . Gereğini yerine geçer ve akümülatör değerini değiştirerek gerektirmez. Bu görev çoğu programda yaygın olduğundan, STZ kullanmak hem LDA'yı hem de tipik olarak bir çift olan akümülatörün değerini kaydetmek için gereken herhangi bir kodu ortadan kaldırarak kod boyutunu azaltabilir .LDA #0;STA addr
PHA
PLA
-
PHX
,PLX
,PHY
,PLY
, X ve Y kayıtlarını yığına/yığından itin ve çekin. Önceden, yalnızca akümülatör ve durum kaydı, itme ve çekme talimatlarına sahipti. X ve Y yalnızca, önceTXA
veya ile akümülatöre taşınarakTYA
, böylece akümülatör içeriği değiştirilerek ve ardından kullanılarak istiflenebilirPHA
. -
BRA
, şube her zaman. a gibi çalışır,JMP
ancak diğer dallar gibi 1 baytlık bir göreli adres kullanır ve bir bayt tasarrufu sağlar. Sürüm 1'i daha uzun (4 döngü)JMP
yapacak bir sayfa geçilmediği sürece hız genellikle mutlak 3 döngü ile aynıdırBRA
. Adres göreceli olduğundan, bellek yönetim birimlerinden önceki çağda yaygın bir görev olan yeniden yerleştirilebilir kod yazarken de kullanışlıdır .
Bit işleme talimatları
Hem WDC hem de Rockwell, 65C02'deki bit testi ve manipülasyon işlevlerine iyileştirmeler kattı. WDC, 6502'de bulunan BIT talimatına yeni adresleme modları ve aygıt sürücülerinde yaygın bir etkinlik olan bit alanlarının uygun şekilde işlenmesi için iki yeni talimat ekledi.
65C02'deki BIT, anında mod, X tarafından indekslenen sıfır sayfa ve X adresleme ile mutlak indekslenen ekler. Anında mod adresleme, tamamen tahribatsız olduğu için özellikle uygundur. Örneğin:
- LDA <kayıt>
- BIT #%00010000
yerine kullanılabilir:
- LDA <kayıt>
- VE #%00010000
İlki , üzerinde birden fazla test yapılabilmesi için <register>' dan yüklenen değeri korur . İkinci sıra, kayıt değeri için yıkıcıdır.
BIT talimatındaki geliştirmelere ek olarak, WDC, bit alanlarını uygun şekilde işlemek için tasarlanmış iki talimat ekledi:
-
TSB addr
ve , T est S ve B olarak ve T est R ESET B onun.TRB addr
- Akümülatördeki (
.A
) bir maske , addr konumundaki bellekle mantıksal olarak AND'lenir; bu konum sıfır sayfa veya mutlak olabilir. Durum kaydındaki Z bayrağı, mantıksal AND'nin sonucuna göre koşullandırılır—başka hiçbir durum kaydı bayrağı etkilenmez. Ayrıca, adresteki bitler, içindeki maskeye göre ayarlanır (TSB) veya temizlenir (TRB).A
. Öz, TSB mantıksal VEYA de sonucu, bir mantıksal OR sonra mantıksal AND ve depolar gerçekleştirir addr mantıksal ve at TRB depolar ise sonuçlar addr . Her iki durumda da durum kaydındaki Z bayrağı , adresin içeriği değiştirilmeden önceki sonucu gösterir . Böylece TRB ve TSB, hesaplama değişikliklerini kaydetmek için BIT komutunu temel olarak ek adımlarla birleştirerek, ancak etkilenen değerin durumunu değiştirilmeden önce rapor edecek şekilde bir dizi talimat yerine geçer..A AND addr
Rockwell'in değişiklikleri, herhangi bir biti doğrudan ayarlamak ve test etmek ve testi, temizlemeyi ve dalları tek bir işlem kodunda birleştirmek için daha fazla bit işleme talimatı ekledi. Yeni talimatlar, Rockwell'in R65C00 ailesinde başlangıçtan itibaren mevcuttu, ancak orijinal 65C02 spesifikasyonunun bir parçası değildi ve WDC veya diğer lisans sahipleri tarafından yapılan sürümlerde bulunamadı. Bunlar daha sonra temel tasarıma kopyalandı ve daha sonraki WDC sürümlerinde mevcuttu.
Rockwell'e özel talimatlar şunlardır:
-
SMBbit# zp
/ . Sıfır sayfa bayt zp'de bit numarası bit#'yi ayarlayın veya sıfırlayın (temizleyin) .RMBbit# zp
- RMB ve SMB, bir bit alanındaki tek tek bitleri temizlemek (RMB) veya ayarlamak (SMB) için kullanılır ve her biri üç talimat dizisinin yerini alır. RMB ve SMB yalnızca sıfır sayfa adresleme olduğundan, bu talimatların kullanışlılığı sınırlıdır ve öncelikle cihaz kayıtlarının sıfır sayfada bulunduğu sistemlerde değerlidir. Bit # talimatının bileşenin genellikle gibi anımsatıcı bir parçası olarak yazılır
SMB1 $12
setleri sıfır sayfalık adresi 12 $ bit 1 olan. Bazı montajcılar bit#'yi komutun işleneninin bir parçası olarak ele alır, örneğin, bunun bir değişken adı veya hesaplanmış sayı ile değiştirilmesine izin verme avantajına sahiptir.SMB 1,$12
-
BBR bit#,offset,addr
ve , Bit Set/Sıfırlamada Dallanma.BBS bit#,offset,addr
- Aynı sıfır sayfalık adresleme ve RMB ve SMB gibi sınırlamalar, ancak dalları addr seçilen bit (BBR) açık olup olmadığını ya da set (BBS). RMB ve SMB'de olduğu gibi, BBR ve BBS üç talimatın yerini alır.
Düşük güç modları
Yukarıdaki yeni komutlara ek olarak, WDC ayrıca düşük güç modlarını desteklemek için STP
ve WAI
talimatlarını da ekledi .
STP
, İşlemciyi DURDUR, bir donanım sıfırlaması yayınlanana kadar tüm işlemleri durdurdu. Bu, bir sistemi "uykuya almak" ve ardından bir sıfırlama ile hızla uyandırmak için kullanılabilir. Normalde bu, ana belleği korumak için bazı harici sistemler gerektirir ve yaygın olarak kullanılmaz.
WAI
Düşük güç moduna girerek benzer bir etkiye sahipti, ancak bu talimat, bir kesintinin alınması üzerine işlemciyi tekrar uyandırdı. Önceden, bir kesintiyi işlemek genellikle bir kesintinin alınıp alınmadığını kontrol etmek için bir döngü çalıştırmayı, bazen " döndürme " olarak da bilinir, bir kesinti alındığında türü kontrol etmeyi ve ardından işlem koduna atlamayı içeriyordu . Bu, işlemcinin tüm süreç boyunca çalıştığı anlamına geliyordu.
Buna karşılık, 65C02'de, kesme kodu, WAI
hemen ardından a JSR
veya JMP
işleyiciye yazılarak yazılabilir . Ne zaman WAI
karşılaşıldı, işleme durdu ve işlemci düşük güç moduna geçti. Kesinti JSR
alındığında, isteği hemen işleme koymuş ve ele almıştır.
Bu, performansı biraz iyileştirme avantajına sahipti. Dönen durumda, kesme, döngü komutlarından birinin ortasına gelebilir ve işleyiciden döndükten sonra yeniden başlamasına izin vermek için işlemci, konumunu kaydetmek için bir döngü harcar. ile WAI
işlemci, tüm talimatların tamamlanmasının garanti edildiği bilinen bir yerde düşük güç durumuna girer, bu nedenle kesme geldiğinde muhtemelen bir talimatı kesemez ve işlemci bir döngü tasarrufu durumunu harcamadan güvenli bir şekilde devam edebilir.
65SC02
65 SC 02, WDC 65C02'nin bit talimatları olmayan bir çeşididir.
65C02'nin önemli kullanımları
Ev bilgisayarları
- Apple Computer tarafından taşınabilir Apple IIc (NCR 1.023 MHz)
- Apple Computer tarafından geliştirilmiş Apple IIe (1.023 MHz)
- Acorn Computers Ltd'den BBC Master ev/eğitim bilgisayarı (2 MHz 65SC12 artı isteğe bağlı 4 MHz 65C102 ikinci işlemci)
- Briel Computers tarafından Replika 1 , Apple I hobi bilgisayarının bir kopyası (1 MHz)
- Apple II'nin lazer 128 serisi klonları
- KIM-1 Briel Computing'in MOS/CBM KIM-1'in Modern Kopyası
Video oyun konsolları
- Atari Lynx el tipi (65SC02 @ ~4 MHz)
- NEC PC Motoru aka TurboGrafx-16 ( HuC6280 @ 7.16 MHz)
- Timetop tarafından GameKing el bilgisayarları (6 MHz)
- Watara Supervision el bilgisayarları (65SC02 @ 4 MHz)
Diğer ürünler
- Commodore 64 ev bilgisayarı için TurboMaster hızlandırıcı kartuş (65C02 @ 4.09 MHz)
- Acorn BBC Micro ev bilgisayarı için tüp bağlantılı ikinci işlemci (65C02 @ 3 MHz)
- birçok özel satranç bilgisayarı, örneğin: Mephisto MMV , Novag Super Constellation, Fidelity Elite ve çok daha fazlası (4–20 MHz)
Ayrıca bakınız
- 65xx işlemcilerde kesintiler
- CSG 65CE02 , 65C02'nin daha da geliştirilmiş bir versiyonu
Notlar
Referanslar
alıntılar
bibliyografya
- Wagner, Robert (Haziran 1983). "Montaj Hatları" . Yumuşak konuşma . s. 199–204.
- Taylor, Simon; Watford, Bob (Temmuz 1984). "6502 canlanma" . Kişisel Bilgisayar Dünyası . s. 174–175.
daha fazla okuma
- 65C02 Veri Sayfası ; Batı Tasarım Merkezi; 32 sayfa; 2018.
- 65816'nın programlanması - 6502, 65C02, 65802 dahil ; 1. Baskı; David Eyes ve Ron Lichty; Prentice Salonu; 636 sayfa; 1986; ISBN 978-0893037895 . (Arşiv)
Dış bağlantılar
- 65C02 web sayfası - Batı Tasarım Merkezi
- 65xx/65Cxx/65SCxx Farkları - CPU Dünyası
- 6502/65C02/65C816 Komut Seti Kodu Çözüldü – Neil Parker'ın Apple II sayfasından