WDC 65C02 - WDC 65C02

W65c02s8p-14 lg.jpg
PDIP -40 paketinde W65C02S mikroişlemci.
Genel bilgi
başlatıldı 1981 ; 40 yıl önce ? ( 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).

65C02 kayıtları
1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (bit konumu)
Ana kayıtlar
  A bir ccumulator
Dizin kayıtları
  x X Dizin Kaydı
  Y Y Endeks Kaydı
0 0 0 0 0 0 0 1 SP S yapışmayan P ointer
Program sayıcı
bilgisayar P rogram Sayaç
Durum kaydı
  n V - B NS ben Z C S URUMU R egister

Genel mantık özellikleri

Sağ üstte gömülü W65C02S çekirdeğini gösteren bir Sitronix ST2064B mikro denetleyicisinin kalıp fotoğrafı

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 BBStalimat için $FF kullanıldı (aşağıya bakın). Gerçekten kullanılmayanlar, NOPs 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, RORMOS 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. JMPJMPJMP ($1234)

Hata, vektör adresi bir bellek sayfasının sınırı olan $FF ile sona erdiğinde ortaya çıkar . Bu durumda, JMPyeni 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, CLD6502 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 JMPtalimatı, 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. OPENCLOSEREADREADREADJMP ($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, READyukarı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.

  • INCve DECartık hiçbir parametre olmadan akümülatörü artırın veya azaltın. Bu, yalnızca INX/ DEX, INY/ DEYve / öğelerini içeren orijinal talimat setinde garip bir gözetimdi . Bazı montajcılar / veya / alternatif biçimlerini kullanır .INC addrDEC addrINADEAINC ADEC 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 addrPHA 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, önce TXAveya ile akümülatöre taşınarak TYA, böylece akümülatör içeriği değiştirilerek ve ardından kullanılarak istiflenebilir PHA.
  • BRA, şube her zaman. a gibi çalışır, JMPancak 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ü) JMPyapacak bir sayfa geçilmediği sürece hız genellikle mutlak 3 döngü ile aynıdır BRA. 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 addrve , 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 $12setleri 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,addrve , 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 STPve WAItalimatları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.

WAIDüşü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, WAIhemen ardından a JSRveya JMPişleyiciye yazılarak yazılabilir . Ne zaman WAIkarşılaşıldı, işleme durdu ve işlemci düşük güç moduna geçti. Kesinti JSRalı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 WAIiş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ı

Video oyun konsolları

Diğer ürünler

Ayrıca bakınız

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

Dış bağlantılar