डब्ल्यूडीसी 65C02

पश्चिमी डिजाइन केंद्र (WDC) 65C02 माइक्रोप्रोसेसर लोकप्रिय NMOS लॉजिक-आधारित 8 बिट MOS टेक्नोलॉजी 6502 का एक उन्नत CMOS संस्करण है। 65C02 ने मूल 6502 में कई समस्याओं को ठीक किया और कुछ नए निर्देश जोड़े, लेकिन इसकी मुख्य विशेषता बहुत कम थी बिजली का उपयोग, समान गति से चलने वाले मूल 6502 की तुलना में 10 से 20 गुना कम। बिजली की कम खपत ने 65C02 को औद्योगिक सेटिंग्स में पोर्टेबल कंप्यूटर भूमिकाओं और microcontroller  सिस्टम में उपयोगी बना दिया। इसका उपयोग कुछ घरेलू कंप्यूटरों के साथ-साथ  अंतः स्थापित प्रणाली  अनुप्रयोगों में किया गया है, जिसमें मेडिकल-ग्रेड इम्प्लांटेड डिवाइस शामिल हैं।

WDC 65C02 का विकास 1981 में शुरू हुआ 1983 की शुरुआत में जारी किए गए नमूनों के साथ। 65C02 आधिकारिक तौर पर कुछ समय बाद जारी किया गया था। WDC ने डिजाइन का लाइसेंस Synertek, National Cash Register, Verizon Communications#GTE, और Rockwell International को दिया। रॉकवेल की प्राथमिक रुचि एम्बेडेड मार्केट में थी और इस भूमिका में सहायता के लिए कई नए कमांड जोड़े जाने के लिए कहा। इन्हें बाद में बेसलाइन संस्करण में वापस कॉपी किया गया, जिस बिंदु पर WDC ने W65C02 बनाने के लिए अपने स्वयं के दो नए आदेश जोड़े। Sanyo ने बाद में डिजाइन को भी लाइसेंस दिया, और Seiko Epson ने HuC6280 के रूप में एक और संशोधित संस्करण का उत्पादन किया।

शुरुआती संस्करण 40-पिन डीआईपी पैकेजिंग का उपयोग करते थे, और मूल एनएमओएस संस्करणों की गति से मेल खाते हुए 1, 2 और 4 मेगाहर्ट्ज संस्करणों में उपलब्ध थे। बाद के संस्करणों को चिप कैरियर # प्लास्टिक लेड चिप कैरियर और एमएफएफ  पैकेजों के साथ-साथ पीडीआईपी और बहुत अधिक क्लॉक स्पीड रेटिंग के साथ तैयार किया गया था। WDC के वर्तमान संस्करण, W65C02S-14 में पूरी तरह से स्थिर कोर है और 5 वोल्ट पर संचालित होने पर आधिकारिक तौर पर 14 मेगाहर्ट्ज तक की गति से चलता है।

परिचय और सुविधाएँ
65C02 एक 16-बिट कार्यक्रम गणक  और  पता बस  के साथ एक कम लागत वाला, सामान्य-उद्देश्य वाला 8-बिट माइक्रोप्रोसेसर (8-बिट प्रोसेसर रजिस्टर और बस (कंप्यूटिंग)) है। रजिस्टर सेट छोटा है, जिसमें एक सिंगल 8-बिट संचायक (कंप्यूटिंग) (A), दो 8-बिट  सूचकांक रजिस्टर  (X और Y), एक 8-बिट स्टेटस रजिस्टर (P) और एक 16-बिट प्रोग्राम काउंटर ( पीसी)। एकल संचायक के अलावा, रैम के पहले 256 बाइट्स, शून्य पृष्ठ (  को  ), 16-बिट पते के बजाय 8-बिट मेमोरी एड्रेस का उपयोग करने वाले एड्रेसिंग मोड के माध्यम से तेजी से पहुंच की अनुमति दें। स्टैक (डेटा संरचना) अगले 256 बाइट्स, पृष्ठ एक ($0100 से $01FF) में निहित है, और इसे स्थानांतरित या विस्तारित नहीं किया जा सकता है। स्टैक $01FF से शुरू होने वाले स्टेक सूचक (S) के साथ पीछे की ओर बढ़ता है और जैसे-जैसे स्टैक बढ़ता है घटता जाता है। इसमें एक चर-लंबाई निर्देश सेट है, जो प्रति निर्देश एक और तीन बाइट्स के बीच भिन्न होता है।

65C02 का मूल आर्किटेक्चर मूल 6502 के समान है, और इसे उस डिज़ाइन का कम-शक्ति कार्यान्वयन माना जा सकता है। 1 मेगाहर्ट्ज पर, मूल 6502 के लिए सबसे लोकप्रिय गति, 65C02 के लिए केवल 20 mW की आवश्यकता होती है, जबकि मूल 450 mW का उपयोग करता है, जो बीस गुना से अधिक की कमी है। मैन्युअल रूप से अनुकूलित कोर और कम बिजली के उपयोग का इरादा 65C02 को लो पावर सिस्टम- on- एक चिप|सिस्टम-ऑन-चिप (SoC) डिजाइनों के लिए उपयुक्त बनाना है।

Verilog हार्डवेयर डिस्क्रिप्शन मॉडल W65C02S कोर को विशिष्ट एकीकृत परिपथ आवेदन (ASIC) या क्षेत्र में प्रोग्राम की जा सकने वाली द्वार श्रंखला (FPGA) में डिजाइन करने के लिए उपलब्ध है। जैसा कि अर्धचालक उद्योग में आम है, WDC एक विकास प्रणाली प्रदान करता है, जिसमें माइक्रोप्रोसेसर विकास बोर्डों की एक सूची, एक इन-सर्किट एमुलेटर (ICE) और एक सॉफ्टवेयर विकास प्रणाली शामिल है। W65C02S–14 उत्पादन संस्करण है, और PDIP, चिप कैरियर#प्लास्टिक लीडेड चिप कैरियर और QFP पैकेज में उपलब्ध है। अधिकतम आधिकारिक रूप से समर्थित Ø2 (प्राथमिक) घड़ी की गति 5 वोल्ट पर संचालित होने पर 14 मेगाहर्ट्ज है, जो -14 भाग संख्या प्रत्यय द्वारा इंगित किया गया है (शौकिया लोगों ने 65C02 घर का बना कंप्यूटर  सिस्टम विकसित किए हैं जो आधिकारिक रेटिंग से तेज चलते हैं)। एस पदनाम इंगित करता है कि भाग में पूरी तरह से गतिशील तर्क (डिजिटल तर्क) #स्थैतिक बनाम गतिशील तर्क है, एक विशेषता जो Ø2 को धीमा करने या डेटा की कोई हानि के बिना उच्च या निम्न स्थिति में पूरी तरह से बंद करने की अनुमति देती है। CMOS में लागू नहीं किए गए विशिष्ट माइक्रोप्रोसेसरों में डायनेमिक कोर होते हैं और यदि वे कुछ न्यूनतम और अधिकतम निर्दिष्ट मानों के बीच लगातार क्लॉक नहीं किए जाते हैं तो वे अपनी आंतरिक रजिस्टर सामग्री (और इस प्रकार क्रैश) खो देंगे।

सामान्य तर्क सुविधाएँ

 * 8-बिट बस (कंप्यूटिंग)
 * 16-बिट एड्रेस बस (64 KB का एड्रेस स्पेस प्रदान करता है)
 * 8-बिट अंकगणितीय तर्क इकाई (एएलयू)
 * 8-बिट प्रोसेसर रजिस्टर:
 * संचायक (कंप्यूटिंग)
 * स्टेक सूचक
 * इंडेक्स रजिस्टर
 * स्थिति रजिस्टर
 * 16-बिट प्रोग्राम काउंटर
 * 69 निर्देश सेट, 212 opcode द्वारा कार्यान्वित
 * 16 एड्रेसिंग मोड, शून्य पृष्ठ  एड्रेसिंग सहित

तर्क सुविधाएँ

 * वेक्टर पुल आउटपुट इंगित करता है कि कब व्यवधान वेक्टर को संबोधित किया जा रहा है
 * मेमोरी लॉक आउटपुट अन्य बस मास्टर्स को इंगित करता है जब एक पठन-संशोधित-लेखन निर्देश संसाधित किया जा रहा है
 * व्यवधान के लिए प्रतीक्षा करें और एसटीओपी  निर्देश बिजली की खपत को कम करते हैं,  व्यवधान विलंबता  को कम करते हैं और बाहरी घटनाओं के साथ सिंक्रोनाइज़ेशन को सक्षम करते हैं

विद्युत सुविधाएँ

 * आपूर्ति वोल्टेज 1.71 V से 5.25 V पर निर्दिष्ट है
 * क्रमशः 1.89 V और 5.25 V पर 0.15 और 1.5 मिलीमीटर प्रति मेगाहर्ट्ज़ की वर्तमान खपत (कोर)
 * परिवर्तनीय लंबाई निर्देश सेट, निश्चित लंबाई निर्देश सेट प्रोसेसर पर कोड आकार अनुकूलन को सक्षम करने से बिजली की बचत होती है
 * पूरी तरह से गतिशील तर्क (डिजिटल तर्क)#स्थैतिक बनाम गतिशील तर्क शक्ति को बचाने के लिए घड़ी को रोकने की अनुमति देता है

घड़ी की विशेषताएं
W65C02S को किसी भी सुविधाजनक सप्लाई वोल्टेज (VDD) 1.8 और 5 वोल्ट (±5%) के बीच। डेटा शीट एसी विशेषताओं की तालिका 5V पर 14 मेगाहर्ट्ज, 3.3 V या 3 V पर 8 मेगाहर्ट्ज, 2.5 V पर 4 मेगाहर्ट्ज, और 1.8 V पर 2 मेगाहर्ट्ज पर परिचालन विशेषताओं को सूचीबद्ध करती है। यह जानकारी पहले के डेटा शीट का एक आर्टिफैक्ट हो सकता है, क्योंकि एक ग्राफ़ इंगित करता है कि सामान्य उपकरण एसी विशेषता तालिका द्वारा सुझाए गए उच्च गति पर संचालन करने में सक्षम हैं, और 20 मेगाहर्ट्ज पर विश्वसनीय संचालन वी के साथ आसानी से प्राप्य होना चाहिएDD 5 वोल्ट पर, यह मानते हुए कि सहायक हार्डवेयर इसे अनुमति देगा।

मनमानी घड़ी दरों के लिए W65C02S समर्थन इसे ऐसी घड़ी का उपयोग करने की अनुमति देता है जो सिस्टम के किसी अन्य भाग के लिए आदर्श दर पर चलती है, जैसे कि 13.5 मेगाहर्ट्ज (डिजिटल एसडीटीवी लूमा सैंपलिंग दर), 14.31818 मेगाहर्ट्ज (एनटीएससी रंग वाहक आवृत्ति × 4), 14.75 MHz (PAL वर्ग पिक्सेल), 14.7456 (बॉड रेट क्रिस्टल), आदि, जब तक VDD आवृत्ति का समर्थन करने के लिए पर्याप्त है। डिजाइनर बिल मानव ने बताया है कि एफMAX ऑफ-चिप कारकों से प्रभावित होता है, जैसे माइक्रोप्रोसेसर के पिन पर कैपेसिटिव लोड। शॉर्ट सिग्नल ट्रैक्स और सबसे कम उपकरणों का उपयोग करके लोड को कम करने से F को बढ़ाने में मदद मिलती हैMAX. पीएलसीसी और क्यूएफपी पैकेज में पीडीआईपी पैकेज की तुलना में कम पिन-टू-पिन कैपेसिटेंस होता है, और मुद्रित सर्किट बोर्ड स्पेस के उपयोग में अधिक किफायती होता है।

WDC ने बताया है कि W65C02S की FPGA प्राप्तियों को सफलतापूर्वक 200 मेगाहर्ट्ज पर संचालित किया गया है।

एनएमओएस 6502
के साथ तुलना

बुनियादी वास्तुकला
हालांकि 65C02 को ज्यादातर कम-शक्ति 6502 के रूप में माना जा सकता है, यह मूल में पाए जाने वाले कई बगों को भी ठीक करता है और नए निर्देश जोड़ता है, ऐसे मोड और सुविधाओं को संबोधित करता है जो प्रोग्रामर को छोटे और तेजी से निष्पादित प्रोग्राम लिखने में सहायता कर सकते हैं। यह अनुमान लगाया गया है कि औसत 6502 असेंबली लैंग्वेज प्रोग्राम को 65C02 पर 10 से 15 प्रतिशत छोटा बनाया जा सकता है और प्रदर्शन में समान सुधार देखा जा सकता है, मोटे तौर पर किसी दिए गए कार्य को पूरा करने के लिए कम निर्देशों के उपयोग के माध्यम से मेमोरी एक्सेस से बचा जाता है।

गैर-दस्तावेजी निर्देश हटा दिए गए
मूल 6502 में 56 निर्देश हैं, जो अलग-अलग एड्रेसिंग मोड के साथ संयुक्त होने पर संभावित 256 8-बिट ऑपकोड पैटर्न के कुल 151 ऑपकोड उत्पन्न करते हैं। शेष 105 अप्रयुक्त ऑपकोड अपरिभाषित हैं, 3, 7, बी या एफ के साथ कम-ऑर्डर 4-बिट वाले कोड के सेट के साथ पूरी तरह से अप्रयुक्त छोड़ दिया गया है, कम-ऑर्डर 2 वाले कोड में केवल एक ही ऑपकोड है। 6502 पर, इनमें से कुछ बचे हुए कोड वास्तव में संगणना करते हैं। 6502 के निर्देश डिकोडर के काम करने के तरीके के कारण, ओपकोड में कुछ बिट्स को सेट करने से निर्देश प्रसंस्करण के कुछ हिस्सों का कारण बनता है। इनमें से कुछ ऑपकोड तुरंत प्रोसेसर को क्रैश कर देते हैं, जबकि अन्य उपयोगी कार्य करते हैं और यहां तक ​​कि कुछ प्रोग्रामर द्वारा अनौपचारिक असेंबलर स्मृति चिन्ह भी दिए जाते हैं। 65C02 नए ऑपकोड जोड़ता है जो इनमें से कुछ पहले से अप्रमाणित निर्देश स्लॉट का उपयोग करते हैं। उदाहरण के लिए, $FF नए के लिए प्रयोग किया जाता है  निर्देश। जो वास्तव में अनुपयोगी रह जाते हैं वे समतुल्य होते हैं  एस। उन ऑपकोड का उपयोग करने वाले 6502 प्रोग्राम 65C02 पर काम नहीं करेंगे।

बग फिक्स
मूल 6502 में शुरू में लॉन्च होने पर कई इरेटा थे। प्रोसेसर के शुरुआती संस्करणों में नहीं था  (दाईं ओर घुमाएं) निर्देश और एमओएस टेक्नोलॉजी मैनुअल ने भी इसका दस्तावेजीकरण नहीं किया।   उत्पादन चलाने में बहुत जल्दी लागू किया गया था और प्रोसेसर का उपयोग करने वाली अधिकांश मशीनें इस निर्देश का समर्थन करती हैं। एक बग जो 6502 के सभी NMOS वेरिएंट में मौजूद है, एड्रेसिंग मोड#इंडेक्स्ड एब्सोल्यूट का उपयोग करते समय जंप निर्देश शामिल करता है। इस एड्रेसिंग मोड में, लक्ष्य का पता  निर्देश एक ऑपरेंड होने के बजाय मेमोरी, जंप वेक्टर से प्राप्त किया जाता है   निर्देश। उदाहरण के लिए,   स्मृति स्थानों में मूल्य लाएगा $1234 (कम महत्वपूर्ण बाइट) और $1235 (सबसे महत्वपूर्ण बाइट) और उन मानों को प्रोग्राम काउंटर में लोड करें, जो तब प्रोसेसर को वेक्टर में संग्रहीत पते पर निष्पादन जारी रखने का कारण बनेगा।

बग तब प्रकट होता है जब वेक्टर पता समाप्त होता है $FF, जो स्मृति पृष्ठ की सीमा है। इस मामले में,  लक्ष्य पते का सबसे महत्वपूर्ण बाइट प्राप्त करेगा $00 मूल पृष्ठ के बजाय {{Mono|$00}नए पृष्ठ का }। इस तरह   पर लक्ष्य पते का कम से कम महत्वपूर्ण बाइट प्राप्त होगा $12FF और लक्षित पते का सबसे महत्वपूर्ण बाइट $1200 इसके बजाय $1300. 65C02 ने इस समस्या को ठीक किया।

एक बग की तुलना में अधिक निरीक्षण, NMOS 6502 के स्थिति रजिस्टर में (डी) ecimal ध्वज की स्थिति एक रीसेट (कंप्यूटिंग) या रुकावट के बाद अपरिभाषित है। इसका मतलब यह है कि अंकगणितीय परिचालनों से संबंधित किसी भी बग से बचने के लिए प्रोग्रामर को ध्वज को ज्ञात मान पर सेट करना होगा। नतीजतन, एक पाता है  निर्देश (स्पष्ट दशमलव) लगभग सभी 6502 इंटरप्ट हैंडलर में, साथ ही साथ रीसेट कोड में भी। 65C02 किसी भी बाधा या हार्डवेयर रीसेट के जवाब में स्टैक पर स्थिति रजिस्टर को धक्का देने के बाद स्वचालित रूप से इस ध्वज को साफ़ करता है, इस प्रकार प्रोसेसर को बाइनरी अंकगणितीय मोड में वापस रखता है।

बाइनरी-कोडित दशमलव अंकगणितीय के दौरान, NMOS 6502 अंतर्निहित बाइनरी अंकगणित के परिणाम को प्रतिबिंबित करने के लिए (N) नकारात्मक, o(V) erflow और (Z) ero फ़्लैग्स को अपडेट करेगा, अर्थात, फ़्लैग्स पहले की गणना किए गए परिणाम को दर्शा रहे हैं प्रोसेसर दशमलव सुधार कर रहा है। इसके विपरीत, 65C02 अंकगणित निर्देश के अनुसार अतिरिक्त घड़ी चक्र की कीमत पर, दशमलव अंकगणित के परिणाम के अनुसार इन झंडों को सेट करता है। पढ़ने-संशोधित-लिखने (आर-एम-डब्ल्यू) निर्देश निष्पादित करते समय, जैसे, सभी NMOS वैरिएंट Addr पर दोहरा लेखन करेंगे, पहले Addr पर मिले वर्तमान मान को फिर से लिखेंगे और फिर संशोधित मान लिखेंगे। यदि Addr एक हार्डवेयर रजिस्टर है, तो यह व्यवहार कठिन-से-समाधान बग में परिणाम कर सकता है। यह तब हो सकता है जब हार्डवेयर रजिस्टर में मूल्य में परिवर्तन के लिए देख रहा हो और फिर एक क्रिया करता है, इस मामले में, यह दो क्रियाएं करेगा, एक मूल मूल्य के साथ और फिर नए मूल्य के साथ। 65C02 इसके बजाय Addr का दोहरा रीड करता है, उसके बाद सिंगल राइट करता है।

इंडेक्सिंग एड्रेसिंग करते समय, यदि इंडेक्सिंग एक पृष्ठ सीमा को पार कर जाती है, तो सही पते तक पहुँचने से पहले सभी NMOS वेरिएंट एक अमान्य पते से पढ़ेंगे। जैसा कि R-M-W निर्देश के साथ होता है, अनुक्रमण के माध्यम से हार्डवेयर रजिस्टरों तक पहुँचने पर यह व्यवहार समस्याएँ पैदा कर सकता है। 65C02 ने इस समस्या को ठीक किया जब इंडेक्सिंग एक पृष्ठ सीमा को पार कर जाती है तो निर्देश ओपकोड का एक डमी रीड प्रदर्शन करके। हालाँकि, इस फिक्स ने एक नया बग पेश किया जो तब होता है जब आधार पता एक समान पृष्ठ सीमा पर होता है (जिसका अर्थ है कि अनुक्रमण अगले पृष्ठ पर कभी नहीं जाएगा)। नए बग के साथ, अनुक्रमण से पहले आधार पते पर एक डमी रीड किया जाता है, जैसे कि  एक डमी पढ़ेगा $1200 X के मान को जोड़े जाने से पहले $1200. फिर से, यदि हार्डवेयर रजिस्टर पतों पर अनुक्रमण किया जाता है, तो इस बग का परिणाम अपरिभाषित व्यवहार हो सकता है।

यदि एक NMOS 6502 एक BRK (सॉफ़्टवेयर इंटरप्ट) ऑपकोड ला रहा है उसी समय एक हार्डवेयर व्यवधान होता है, तो BRK को अनदेखा कर दिया जाएगा क्योंकि प्रोसेसर हार्डवेयर इंटरप्ट पर प्रतिक्रिया करता है। 65C02 इंटरप्ट को सर्विस करके और फिर BRK को निष्पादित करके इस स्थिति को सही ढंग से हैंडल करता है।

नया पता मोड
6502 में दो अप्रत्यक्ष एड्रेसिंग मोड हैं जो पृष्ठ शून्य में संग्रहीत 16-बिट पतों के माध्यम से विचलन करते हैं: इस मॉडल का नकारात्मक पक्ष यह है कि यदि अनुक्रमण की आवश्यकता नहीं है लेकिन पता शून्य पृष्ठ में है, तो सूचकांक रजिस्टरों में से एक को अभी भी शून्य पर सेट किया जाना चाहिए और इन निर्देशों में से एक में उपयोग किया जाना चाहिए। 65C02 ने एक गैर-अनुक्रमित अप्रत्यक्ष एड्रेसिंग मोड जोड़ा  उन सभी निर्देशों के लिए जो अनुक्रमित अप्रत्यक्ष और अप्रत्यक्ष अनुक्रमित मोड का उपयोग करते थे, सूचकांक रजिस्टरों को मुक्त करते थे। 6502 का JMP निर्देश में एक अनूठा (6502 निर्देशों के बीच) एड्रेसिंग मोड था जिसे पूर्ण अप्रत्यक्ष के रूप में जाना जाता है जो किसी दिए गए मेमोरी पते से 16-बिट मान पढ़ता है और फिर उस 16-बिट मान में पते पर कूद जाता है। उदाहरण के लिए, यदि स्मृति स्थान $A000 के पास $34 और $A001 के पास $12 है,  उन दो बाइट्स को पढ़ेगा, मूल्य का निर्माण करेगा $1234, और फिर उस स्थान पर जाएं।
 * अनुक्रमित अप्रत्यक्ष, उदा., 16-बिट वेक्टर को पढ़ने से पहले दिए गए पृष्ठ शून्य पते पर X रजिस्टर जोड़ता है। इस उदाहरण में, यदि X 5 है, तो यह स्थान $15/$16 से 16-बिट पता पढ़ता है। यह तब उपयोगी होता है जब पेज ज़ीरो में पॉइंटर्स की एक सरणी होती है।
 * अप्रत्यक्ष अनुक्रमित  दिए गए पृष्ठ शून्य पते से पढ़े गए 16-बिट वेक्टर में वाई रजिस्टर जोड़ता है। उदाहरण के लिए, यदि Y 5 है, और $10/$11 वेक्टर शामिल है $1000, यह से मान पढ़ता है $1005. यह पॉइंटर-ऑफ़सेट एड्रेसिंग करता है।

अप्रत्यक्ष संबोधन के लिए एक सामान्य उपयोग शाखा तालिकाओं का निर्माण करना है, सबरूटीन्स के लिए प्रवेश बिंदुओं की एक सूची जिसे एक इंडेक्स का उपयोग करके एक्सेस किया जा सकता है। उदाहरण के लिए, एक डिवाइस ड्राइवर प्रवेश बिंदुओं को सूचीबद्ध कर सकता है OPEN, CLOSE, READ, आदि एक टेबल में $A000. READ तीसरी प्रविष्टि है, शून्य अनुक्रमित है, और प्रत्येक पते को कॉल करने के लिए 16-बिट्स की आवश्यकता होती है READ कोई कुछ इसी तरह का उपयोग करेगा. यदि ड्राइवर अपडेट किया गया है और सबरूटीन कोड मेमोरी में चलता है, तो कोई भी मौजूदा कोड तब तक काम करेगा जब तक पॉइंटर्स की तालिका बनी रहती है $A000.

65C02 ने नया अनुक्रमित पूर्ण अप्रत्यक्ष मोड जोड़ा जिसने शाखा तालिकाओं के उपयोग को आसान बना दिया। इस मोड ने एक्स रजिस्टर के मूल्य को पूर्ण पते में जोड़ा और परिणामी स्थान से 16-बिट पता लिया। उदाहरण के लिए, एक्सेस करने के लिए READ ऊपर दी गई तालिका से कार्य करता है, तब कोई X में 4 संग्रहीत करेगा. पहुँच की यह शैली शाखा तालिकाओं तक पहुँच को सरल बनाती है क्योंकि एकल आधार पते का उपयोग 8-बिट ऑफ़सेट के संयोजन में किया जाता है। अनुक्रमित अप्रत्यक्ष मोड का उपयोग करके NMOS संस्करण में इसे प्राप्त किया जा सकता है, लेकिन केवल तभी जब तालिका शून्य पृष्ठ में हो, एक सीमित संसाधन। इन्हें शून्य पृष्ठ के बाहर बनाने की अनुमति देने से न केवल इस संसाधन की मांग कम हुई, बल्कि रोम में तालिकाओं के निर्माण की भी अनुमति मिली।

नए और संशोधित निर्देश
नए एड्रेसिंग मोड के अलावा, बेस मॉडल 65C02 ने नए निर्देशों का एक सेट भी जोड़ा।
 * और  बिना किसी पैरामीटर के अब संचायक को बढ़ाएँ या घटाएँ। मूल निर्देश सेट में यह एक अजीब निरीक्षण था, जिसमें केवल शामिल था  /, /  और  / . कुछ असेंबलर वैकल्पिक रूपों का उपयोग करते हैं  /  या  /.
 * , Addr में शून्य स्टोर करें। की आवश्यकता को प्रतिस्थापित करता है  और संचायक के मान को बदलने की आवश्यकता नहीं है। जैसा कि अधिकांश कार्यक्रमों में यह कार्य सामान्य है, का उपयोग करना STZ कोड आकार को कम कर सकते हैं, दोनों को समाप्त करके LDA के साथ-साथ संचायक के मूल्य को बचाने के लिए आवश्यक कोई भी कोड, आमतौर पर a     जोड़ा।
 * ,, , , X और Y रजिस्टरों को स्टैक से/में धकेलें और खींचें। पहले, केवल संचायक और स्थिति रजिस्टर में पुश और पुल निर्देश होते थे। X और Y को पहले संचायक में ले जाकर ही ढेर किया जा सकता है  या  , जिससे संचायक की सामग्री बदली जाती है, फिर उपयोग किया जाता है.
 * , शाखा हमेशा। ए की तरह काम करता है  लेकिन अन्य शाखाओं की तरह 1-बाइट सापेक्ष पते का उपयोग करता है, एक बाइट बचाता है। गति अक्सर 3 चक्र निरपेक्ष के समान होती है   जब तक कि एक पृष्ठ पार नहीं किया जाता है जो इसे बना देगा   संस्करण 1 चक्र लंबा (4 चक्र)। जैसा कि पता सापेक्ष है, यह पुनर्निधारणीय कोड लिखते समय भी उपयोगी होता है, स्मृति प्रबंधन इकाइयों से पहले युग में एक सामान्य कार्य।

बिट हेरफेर निर्देश
WDC और रॉकवेल दोनों ने 65C02 में बिट परीक्षण और हेरफेर कार्यों में सुधार का योगदान दिया। WDC ने BIT निर्देश में नए एड्रेसिंग मोड जोड़े जो 6502 में मौजूद थे, साथ ही बिट फ़ील्ड के सुविधाजनक हेरफेर के लिए दो नए निर्देश, डिवाइस ड्राइवरों में एक सामान्य गतिविधि।

BIT 65C02 में तत्काल मोड जोड़ता है, एक्स द्वारा अनुक्रमित शून्य पृष्ठ और एक्स एड्रेसिंग द्वारा पूर्ण अनुक्रमित। तत्काल मोड एड्रेसिंग विशेष रूप से सुविधाजनक है क्योंकि यह पूरी तरह से गैर-विनाशकारी है। उदाहरण के लिए:



के स्थान पर इस्तेमाल किया जा सकता है:



{{code|AND}ND}} ऑपरेशन संचायक में मान को बदल देता है, इसलिए $1234 से लोड किया गया मूल मान खो जाता है। का उपयोग करते हुए BIT संचायक में मान को अपरिवर्तित छोड़ देता है, इसलिए बाद का कोड मूल मान के विरुद्ध अतिरिक्त परीक्षण कर सकता है, स्मृति से मान को फिर से लोड करने से बच सकता है।

के संवर्द्धन के अलावा BIT निर्देश, WDC ने बिट फ़ील्ड्स को आसानी से हेरफेर करने के लिए डिज़ाइन किए गए दो निर्देश जोड़े:
 * और, टेस्ट और सेट बिट्स और टेस्ट और रीसेट बिट्स।


 * संचायक में एक मुखौटा Addr पर मेमोरी के साथ तार्किक रूप से ANDed है, कौन सा स्थान शून्य पृष्ठ या निरपेक्ष हो सकता है। स्थिति रजिस्टर में Z ध्वज तार्किक के परिणाम के अनुसार वातानुकूलित है और—कोई अन्य स्थिति रजिस्टर ध्वज प्रभावित नहीं होता है। इसके अलावा, Addr में बिट्स को मास्क के अनुसार सेट (TSB) या क्लियर (TRB) किया जाता है  . संक्षेप में, TSB तार्किक प्रदर्शन करता है OR तार्किक के बाद AND और तार्किक परिणाम संग्रहीत करता है OR Addr पर, जबकि TRB तार्किक परिणामों को संग्रहीत करता है AND Addr पर। दोनों ही मामलों में, स्थिति रजिस्टर में Z फ़्लैग का परिणाम दर्शाता है   Addr की सामग्री बदलने से पहले। टीआरबी और टीएसबी इस प्रकार निर्देशों के अनुक्रम को प्रतिस्थापित करते हैं, अनिवार्य रूप से संयोजन करते हैं BIT कम्प्यूटेशनल परिवर्तनों को सहेजने के लिए अतिरिक्त चरणों के साथ निर्देश, लेकिन एक तरह से जो प्रभावित मूल्य की स्थिति को बदलने से पहले रिपोर्ट करता है।

रॉकवेल के परिवर्तनों ने किसी भी बिट को सीधे सेट करने और परीक्षण करने के लिए और परीक्षण, स्पष्ट और शाखा को एक ही ऑपकोड में संयोजित करने के लिए अधिक बिट हेरफेर निर्देश जोड़े। रॉकवेल के R65C00 परिवार में शुरू से ही नए निर्देश उपलब्ध थे, लेकिन मूल 65C02 विनिर्देश का हिस्सा नहीं था और WDC या इसके अन्य लाइसेंसधारियों द्वारा बनाए गए संस्करणों में नहीं पाया गया। इन्हें बाद में बेसलाइन डिज़ाइन में वापस कॉपी किया गया, और बाद के WDC संस्करणों में उपलब्ध थे।

रॉकवेल-विशिष्ट निर्देश हैं:
 * / . जीरो पेज बाइट zp में सेट या रीसेट (क्लियर) बिट नंबर बिट#।


 * RMB और SMB का उपयोग बिट फ़ील्ड में अलग-अलग बिट्स (RMB) या सेट (SMB) को साफ़ करने के लिए किया जाता है, प्रत्येक तीन निर्देशों के अनुक्रम को प्रतिस्थापित करता है। चूंकि आरएमबी और एसएमबी केवल जीरो पेज एड्रेसिंग हैं, ये निर्देश उपयोगिता में सीमित हैं और मुख्य रूप से उन प्रणालियों में महत्वपूर्ण हैं जिनमें डिवाइस रजिस्टर शून्य पेज में मौजूद हैं। निर्देश का बिट # घटक अक्सर स्मरक के भाग के रूप में लिखा जाता है, जैसे  जो बिट 1 को शून्य-पृष्ठ पते $12 में सेट करता है। कुछ असेंबलर बिट # को निर्देश के ऑपरेंड के हिस्से के रूप में मानते हैं, उदाहरण के लिए, , जिसके पास इसे एक चर नाम या परिकलित संख्या द्वारा प्रतिस्थापित करने की अनुमति देने का लाभ है।


 * और, बिट सेट/रीसेट पर शाखा।


 * आरएमबी और एसएमबी के समान शून्य-पेज एड्रेसिंग और सीमाएं, लेकिन चयनित बिट स्पष्ट (बीबीआर) या सेट (बीबीएस) होने पर शाखाओं को जोड़ने के लिए। जैसा कि RMB और SMB के साथ होता है, BBR और BBS तीन निर्देशों के अनुक्रम को प्रतिस्थापित करते हैं।

कम-शक्ति मोड
उपरोक्त नए आदेशों के अतिरिक्त, WDC ने भी जोड़ा  और   कम-शक्ति मोड का समर्थन करने के निर्देश।

STP, प्रोसेसर को STop करें, हार्डवेयर रीसेट जारी होने तक सभी प्रोसेसिंग को रोक दें। इसका उपयोग किसी सिस्टम को सुलाने के लिए किया जा सकता है और फिर इसे रीसेट के साथ तेजी से जगाया जा सकता है। आम तौर पर इसके लिए मुख्य मेमोरी को बनाए रखने के लिए कुछ बाहरी सिस्टम की आवश्यकता होती है, और इसका व्यापक रूप से उपयोग नहीं किया जाता था।

WAIt का एक समान प्रभाव था, लो-पावर मोड में प्रवेश करना, लेकिन इस निर्देश ने प्रोसेसर को एक रुकावट के स्वागत पर फिर से जगा दिया। पहले, एक बाधा को संभालने में आम तौर पर एक लूप चलाने के लिए शामिल होता था ताकि यह जांचा जा सके कि क्या कोई रुकावट प्राप्त हुई है, जिसे कभी-कभी व्यस्त प्रतीक्षा के रूप में जाना जाता है, जब कोई प्राप्त होता है, तो प्रकार की जांच करना और फिर प्रसंस्करण कोड पर कूदना। इसका मतलब यह था कि प्रोसेसर पूरी प्रक्रिया के दौरान चल रहा था, तब भी जब कोई रुकावट नहीं आ रही थी।

इसके विपरीत, 65C02 में, इंटरप्ट कोड को लिख कर लिखा जा सकता है WAI के तुरंत बाद a JSR या JMP हैंडलर को। जब WAI का सामना करना पड़ा, प्रोसेसिंग बंद हो गई और प्रोसेसर लो-पावर मोड में चला गया। जब व्यवधान प्राप्त हुआ, तो उसने तुरंत प्रक्रिया की JSR और अनुरोध को संभाला।

प्रदर्शन में थोड़ा सुधार करने का यह अतिरिक्त लाभ था। कताई के मामले में, रुकावट लूप के निर्देशों में से एक के बीच में आ सकती है, और हैंडलर से लौटने के बाद इसे फिर से शुरू करने की अनुमति देने के लिए, प्रोसेसर अपने स्थान को बचाने के लिए एक चक्र खर्च करता है। साथ WAI, प्रोसेसर एक ज्ञात स्थान पर कम-शक्ति स्थिति में प्रवेश करता है जहां सभी निर्देशों को पूरा करने की गारंटी दी जाती है, इसलिए जब व्यवधान आता है तो यह संभवतः एक निर्देश को बाधित नहीं कर सकता है और प्रोसेसर बिना चक्र बचत स्थिति खर्च किए सुरक्षित रूप से जारी रह सकता है।

65SC02
65SC02 बिना किसी निर्देश के WDC 65C02 का एक प्रकार है।

65C02
के उल्लेखनीय उपयोग

एप्पल कंप्यूटर

 * Apple कंप्यूटर द्वारा [[[[Apple II]]c]] पोर्टेबल (NCR 1.023 MHz)
 * Apple कंप्यूटर द्वारा Apple IIe (1.023 मेगाहर्ट्ज)
 * बीबीसी मास्टर होम/एजुकेशनल कंप्यूटर, एकोर्न कम्प्यूटर्स लिमिटेड द्वारा (2 मेगाहर्ट्ज 65SC12 प्लस वैकल्पिक 4 मेगाहर्ट्ज 65C102 सेकंड प्रोसेसर)
 * Briel Computers द्वारा प्रतिकृति 1, Apple I हॉबीस्ट कंप्यूटर (1 MHz) की प्रतिकृति
 * Apple II की लेजर 128 श्रृंखला क्लोन
 * ब्रील कंप्यूटिंग द्वारा KIM-1 MOS/CBM KIM-1 की आधुनिक प्रतिकृति

वीडियो गेम कंसोल

 * लिंक्स नहीं हैंडहेल्ड (65SC02 @ ~4 मेगाहर्ट्ज)
 * पीसी इंजन उर्फ ​​TurboGrafx-16 (हडसन सॉफ्ट HuC6280 @ 7.16 मेगाहर्ट्ज)
 * Timetop द्वारा GameKing हैंडहेल्ड (6 मेगाहर्ट्ज)।
 * पर्यवेक्षण के बारे में हैंडहेल्ड (65SC02 @ 4 मेगाहर्ट्ज)

अन्य उत्पाद

 * कमोडोर 64 होम कंप्यूटर के लिए TurboMaster एक्सीलरेटर कार्ट्रिज (65C02 @ 4.09 मेगाहर्ट्ज)
 * ट्यूब से जुड़ा बीबीसी माइक्रो एक्सपेंशन यूनिट#6502 बीबीसी माइक्रो होम कंप्यूटर के लिए दूसरा प्रोसेसर (65C02 @ 3 मेगाहर्ट्ज)
 * कई समर्पित कंप्यूटर शतरंज यानी: मेफिस्टो (शतरंज कंप्यूटर), नोवाग सुपर कांस्टेलेशन, फिडेलिटी एलीट और कई अन्य (4–20 मेगाहर्ट्ज)

यह भी देखें

 * 65xx प्रोसेसर में रुकावट
 * CSG 65CE02, 65C02 का एक और उन्नत संस्करण

अग्रिम पठन

 * 65C02 Datasheet; Western Design Center; 32 pages; 2018.
 * Programming the 65816 - including the 6502, 65C02, 65802; 1st Ed; David Eyes and Ron Lichty; Prentice Hall; 636 pages; 1986; ISBN 978-0893037895. (archive)

बाहरी संबंध

 * 65C02 webpage - Western Design Center
 * 65xx/65Cxx/65SCxx Differences - CPU World
 * 6502/65C02/65C816 Instruction Set Decoded – From Neil Parker's Apple II page