डब्ल्यूडीसी 65C02: Difference between revisions
(Created page with "{{distinguish|text=6502C, a name used on two other variants of the original 6502 processor}} {{short description|CMOS microprocessor in the 6502 family}} {{Infobox CPU | n...") |
No edit summary |
||
| Line 1: | Line 1: | ||
{{Infobox CPU | {{Infobox CPU | ||
| name = | | name = | ||
| Line 70: | Line 68: | ||
}} | }} | ||
वेस्टर्न डिज़ाइन सेंटर (डब्ल्यूडीसी) '''65C02''' माइक्रोप्रोसेसर लोकप्रिय nMOS- आधारित 8-बिट MOS टेक्नोलॉजी 6502 का उन्नत CMOS संस्करण है। 65C02 ने मूल 6502 में कई समस्याओं को ठीक किया और कुछ नए निर्देश जोड़े, लेकिन इसकी मुख्य विशेषता समान गति से चलने वाले मूल 6502 की तुलना में 10 से 20 गुना कम बिजली का उपयोग करना था। कम बिजली की खपत ने 65C02 को औद्योगिक सेटिंग्स में पोर्टेबल कंप्यूटर भूमिकाओं और माइक्रोकंट्रोलर सिस्टम में उपयोगी बना दिया। इसका उपयोग कुछ घरेलू कंप्यूटरों के साथ-साथ [[ अंतः स्थापित प्रणाली |अंतः स्थापित प्रणाली]] अनुप्रयोगों में किया गया है जिसमें मेडिकल-ग्रेड इम्प्लांटेड डिवाइस सम्मिलित हैं। | |||
डब्ल्यूडीसी 65C02 का विकास 1981 में प्रारम्भ हुआ{{efn|Some sources, including prior versions of this article, claim 1978. This was the date that Bill Mensch, the primary designer, formed WDC. In a 1984 article, Mensch specifically states 1981 as the start date.}} 1983 की प्रारम्भ में प्रचलित किए गए नमूनों के साथ।{{efn|Wagner's June 1983 article mentions it being available for “several months”. Given typical publication delays at that point this may date it to as early as late 1982. Another source points to 1980, see talk page.}} 65C02 को आधिकारिक तौर पर कुछ समय बाद प्रचलित किया गया था।<ref>{{Cite news |date=June 1983 |title=सॉफ्टॉक|volume=3 |pages=199 |work=[[सॉफ्टॉकPublishing]] |issue=10 |url=https://archive.org/details/softalkv3n10jun1983/page/198/mode/2up?q=%2265c02%22 |access-date=24 May 2022}}</ref> डब्ल्यूडीसी ने डिजाइन का लाइसेंस [[Synertek]], [[National Cash Register]], Verizon Communications#GTE, और [[Rockwell International]] को दिया। रॉकवेल की प्राथमिक रुचि एम्बेडेड मार्केट में थी और इस भूमिका में सहायता के लिए कई नए कमांड जोड़े जाने के लिए कहा। इन्हें बाद में बेसलाइन संस्करण में वापस कॉपी किया गया, जिस बिंदु पर डब्ल्यूडीसी ने W65C02 बनाने के लिए अपने स्वयं के दो नए आदेश जोड़े। [[Sanyo]] ने बाद में डिजाइन को भी लाइसेंस दिया, और [[Seiko Epson]] ने [[HuC6280]] के रूप में एक और संशोधित संस्करण का उत्पादन किया। | |||
आधिकारिक तौर पर कुछ समय बाद | |||
प्रारम्भ ी संस्करण 40-पिन डीआईपी पैकेजिंग का उपयोग करते थे, और मूल एनएमओएस संस्करणों की गति से मेल खाते हुए 1, 2 और 4 मेगाहर्ट्ज संस्करणों में उपलब्ध थे। बाद के संस्करणों को चिप कैरियर # प्लास्टिक लेड चिप कैरियर और [[ एमएफएफ ]] पैकेजों के साथ-साथ पीडीआईपी और बहुत अधिक क्लॉक स्पीड रेटिंग के साथ तैयार किया गया था। डब्ल्यूडीसी के वर्तमान संस्करण, W65C02S-14 में पूरी तरह से स्थिर कोर है और 5 वोल्ट पर संचालित होने पर आधिकारिक तौर पर 14 मेगाहर्ट्ज तक की गति से चलता है। | |||
== परिचय और सुविधाएँ == | == परिचय और सुविधाएँ == | ||
65C02 एक [[16-बिट]] [[ कार्यक्रम गणक ]] और [[ पता बस ]] के साथ एक कम लागत वाला, सामान्य-उद्देश्य वाला 8-बिट माइक्रोप्रोसेसर (8-बिट [[प्रोसेसर रजिस्टर]] और [[बस (कंप्यूटिंग)]]) है। रजिस्टर सेट छोटा है, जिसमें एक सिंगल 8-बिट [[संचायक (कंप्यूटिंग)]] (A), दो 8-बिट [[ सूचकांक रजिस्टर ]] (X और Y), एक 8-बिट स्टेटस रजिस्टर (P) और एक 16-बिट प्रोग्राम काउंटर ( पीसी)। एकल संचायक के | 65C02 एक [[16-बिट]] [[ कार्यक्रम गणक ]] और [[ पता बस ]] के साथ एक कम लागत वाला, सामान्य-उद्देश्य वाला 8-बिट माइक्रोप्रोसेसर (8-बिट [[प्रोसेसर रजिस्टर]] और [[बस (कंप्यूटिंग)]]) है। रजिस्टर सेट छोटा है, जिसमें एक सिंगल 8-बिट [[संचायक (कंप्यूटिंग)]] (A), दो 8-बिट [[ सूचकांक रजिस्टर ]] (X और Y), एक 8-बिट स्टेटस रजिस्टर (P) और एक 16-बिट प्रोग्राम काउंटर ( पीसी)। एकल संचायक के अतिरिक्त , रैम के पहले 256 बाइट्स, शून्य पृष्ठ (<code>$0000</code> को <code>$00FF</code>), 16-बिट पते के बजाय 8-बिट मेमोरी एड्रेस का उपयोग करने वाले एड्रेसिंग मोड के माध्यम से तेजी से पहुंच की अनुमति दें। स्टैक (डेटा संरचना) अगले 256 बाइट्स, पृष्ठ एक ($0100 से $01FF) में निहित है, और इसे स्थानांतरित या विस्तारित नहीं किया जा सकता है। स्टैक $01FF से प्रारम्भ होने वाले [[स्टेक सूचक]] (S) के साथ पीछे की ओर बढ़ता है और जैसे-जैसे स्टैक बढ़ता है घटता जाता है।<ref>{{cite web |url=http://www.cs.jhu.edu/~phi/csf/slides/lecture-6502-stack.pdf |title=6502 Stack |first=Philipp |last=Koehn |date=2 March 2018}}</ref> इसमें एक चर-लंबाई निर्देश सेट है, जो प्रति निर्देश एक और तीन बाइट्स के बीच भिन्न होता है।{{sfn|Wagner|1983|p=204}} | ||
65C02 का मूल आर्किटेक्चर मूल 6502 के समान है, और इसे उस डिज़ाइन का कम-शक्ति कार्यान्वयन माना जा सकता है। 1 मेगाहर्ट्ज पर, मूल 6502 के लिए सबसे लोकप्रिय गति, 65C02 के लिए केवल 20 mW की आवश्यकता होती है, जबकि मूल 450 mW का उपयोग करता है, जो बीस गुना से अधिक की कमी है।{{sfn|Taylor|Watford|1984|p=174}} मैन्युअल रूप से अनुकूलित कोर और कम बिजली के उपयोग का इरादा 65C02 को लो पावर [[सिस्टम- on- एक चिप]]|सिस्टम-ऑन-चिप (SoC) डिजाइनों के लिए उपयुक्त बनाना है।{{sfn|Wagner|1983|p=204}} | 65C02 का मूल आर्किटेक्चर मूल 6502 के समान है, और इसे उस डिज़ाइन का कम-शक्ति कार्यान्वयन माना जा सकता है। 1 मेगाहर्ट्ज पर, मूल 6502 के लिए सबसे लोकप्रिय गति, 65C02 के लिए केवल 20 mW की आवश्यकता होती है, जबकि मूल 450 mW का उपयोग करता है, जो बीस गुना से अधिक की कमी है।{{sfn|Taylor|Watford|1984|p=174}} मैन्युअल रूप से अनुकूलित कोर और कम बिजली के उपयोग का इरादा 65C02 को लो पावर [[सिस्टम- on- एक चिप]]|सिस्टम-ऑन-चिप (SoC) डिजाइनों के लिए उपयुक्त बनाना है।{{sfn|Wagner|1983|p=204}} | ||
[[Verilog]] हार्डवेयर डिस्क्रिप्शन मॉडल W65C02S कोर को [[विशिष्ट एकीकृत परिपथ आवेदन]] (ASIC) या [[क्षेत्र में प्रोग्राम की जा सकने वाली द्वार श्रंखला]] (FPGA) में डिजाइन करने के लिए उपलब्ध है।<ref>{{cite web |url=https://wdc65xx.com/6502-org-homebuilt-projects/ |title=6502 CPU Projects in HDL (for FPGA)}}</ref> जैसा कि अर्धचालक उद्योग में आम है, | [[Verilog]] हार्डवेयर डिस्क्रिप्शन मॉडल W65C02S कोर को [[विशिष्ट एकीकृत परिपथ आवेदन]] (ASIC) या [[क्षेत्र में प्रोग्राम की जा सकने वाली द्वार श्रंखला]] (FPGA) में डिजाइन करने के लिए उपलब्ध है।<ref>{{cite web |url=https://wdc65xx.com/6502-org-homebuilt-projects/ |title=6502 CPU Projects in HDL (for FPGA)}}</ref> जैसा कि अर्धचालक उद्योग में आम है, डब्ल्यूडीसी एक विकास प्रणाली प्रदान करता है, जिसमें माइक्रोप्रोसेसर विकास बोर्डों की एक सूची, एक [[इन-सर्किट एमुलेटर]] (ICE) और एक सॉफ्टवेयर विकास प्रणाली सम्मिलित है।<ref>{{cite web |url=https://www.westerndesigncenter.com/wdc/developer_board_65c02.cfm |title=W65C02DB Developer Board}}</ref> | ||
W65C02S–14 उत्पादन संस्करण है {{asof|2023|lc=yes}}, और [[PDIP]], चिप कैरियर#प्लास्टिक लीडेड चिप कैरियर और QFP पैकेज में उपलब्ध है। अधिकतम आधिकारिक रूप से समर्थित Ø2 (प्राथमिक) घड़ी की गति 5 वोल्ट पर संचालित होने पर 14 मेगाहर्ट्ज है, जो -14 भाग संख्या प्रत्यय द्वारा इंगित किया गया है (शौकिया लोगों ने 65C02 [[ घर का बना कंप्यूटर ]] सिस्टम विकसित किए हैं जो आधिकारिक रेटिंग से तेज चलते हैं)। एस पदनाम इंगित करता है कि भाग में पूरी तरह से गतिशील तर्क (डिजिटल तर्क) #स्थैतिक बनाम गतिशील तर्क है, एक विशेषता जो Ø2 को धीमा करने या डेटा की कोई हानि के बिना उच्च या निम्न स्थिति में पूरी तरह से बंद करने की अनुमति देती है।<ref>{{cite web |url=http://www.westerndesigncenter.com/wdc/w65c02s-chip.cfm |title=W65C02S-14}}</ref> CMOS में लागू नहीं किए गए विशिष्ट माइक्रोप्रोसेसरों में डायनेमिक कोर होते हैं और यदि वे कुछ न्यूनतम और अधिकतम निर्दिष्ट मानों के बीच लगातार क्लॉक नहीं किए जाते हैं तो वे अपनी आंतरिक रजिस्टर सामग्री (और इस प्रकार क्रैश) खो देंगे। | W65C02S–14 उत्पादन संस्करण है {{asof|2023|lc=yes}}, और [[PDIP]], चिप कैरियर#प्लास्टिक लीडेड चिप कैरियर और QFP पैकेज में उपलब्ध है। अधिकतम आधिकारिक रूप से समर्थित Ø2 (प्राथमिक) घड़ी की गति 5 वोल्ट पर संचालित होने पर 14 मेगाहर्ट्ज है, जो -14 भाग संख्या प्रत्यय द्वारा इंगित किया गया है (शौकिया लोगों ने 65C02 [[ घर का बना कंप्यूटर ]] सिस्टम विकसित किए हैं जो आधिकारिक रेटिंग से तेज चलते हैं)। एस पदनाम इंगित करता है कि भाग में पूरी तरह से गतिशील तर्क (डिजिटल तर्क) #स्थैतिक बनाम गतिशील तर्क है, एक विशेषता जो Ø2 को धीमा करने या डेटा की कोई हानि के बिना उच्च या निम्न स्थिति में पूरी तरह से बंद करने की अनुमति देती है।<ref>{{cite web |url=http://www.westerndesigncenter.com/wdc/w65c02s-chip.cfm |title=W65C02S-14}}</ref> CMOS में लागू नहीं किए गए विशिष्ट माइक्रोप्रोसेसरों में डायनेमिक कोर होते हैं और यदि वे कुछ न्यूनतम और अधिकतम निर्दिष्ट मानों के बीच लगातार क्लॉक नहीं किए जाते हैं तो वे अपनी आंतरिक रजिस्टर सामग्री (और इस प्रकार क्रैश) खो देंगे। | ||
| Line 185: | Line 182: | ||
W65C02S को किसी भी सुविधाजनक सप्लाई वोल्टेज (V<sub>DD</sub>) 1.8 और 5 वोल्ट (±5%) के बीच। [[डेटा शीट]] एसी विशेषताओं की तालिका 5V पर 14 मेगाहर्ट्ज, 3.3 V या 3 V पर 8 मेगाहर्ट्ज, 2.5 V पर 4 मेगाहर्ट्ज, और 1.8 V पर 2 मेगाहर्ट्ज पर परिचालन विशेषताओं को सूचीबद्ध करती है। यह जानकारी पहले के डेटा शीट का एक आर्टिफैक्ट हो सकता है, क्योंकि एक ग्राफ़ इंगित करता है कि सामान्य उपकरण एसी विशेषता तालिका द्वारा सुझाए गए उच्च गति पर संचालन करने में सक्षम हैं, और 20 मेगाहर्ट्ज पर विश्वसनीय संचालन वी के साथ आसानी से प्राप्य होना चाहिए<sub>DD</sub> 5 वोल्ट पर, यह मानते हुए कि सहायक हार्डवेयर इसे अनुमति देगा। | W65C02S को किसी भी सुविधाजनक सप्लाई वोल्टेज (V<sub>DD</sub>) 1.8 और 5 वोल्ट (±5%) के बीच। [[डेटा शीट]] एसी विशेषताओं की तालिका 5V पर 14 मेगाहर्ट्ज, 3.3 V या 3 V पर 8 मेगाहर्ट्ज, 2.5 V पर 4 मेगाहर्ट्ज, और 1.8 V पर 2 मेगाहर्ट्ज पर परिचालन विशेषताओं को सूचीबद्ध करती है। यह जानकारी पहले के डेटा शीट का एक आर्टिफैक्ट हो सकता है, क्योंकि एक ग्राफ़ इंगित करता है कि सामान्य उपकरण एसी विशेषता तालिका द्वारा सुझाए गए उच्च गति पर संचालन करने में सक्षम हैं, और 20 मेगाहर्ट्ज पर विश्वसनीय संचालन वी के साथ आसानी से प्राप्य होना चाहिए<sub>DD</sub> 5 वोल्ट पर, यह मानते हुए कि सहायक हार्डवेयर इसे अनुमति देगा। | ||
मनमानी घड़ी दरों के लिए W65C02S समर्थन इसे ऐसी घड़ी का उपयोग करने की अनुमति देता है जो सिस्टम के किसी अन्य भाग के लिए आदर्श दर पर चलती है, जैसे कि 13.5 मेगाहर्ट्ज (डिजिटल एसडीटीवी लूमा सैंपलिंग दर), 14.31818 मेगाहर्ट्ज (एनटीएससी रंग वाहक आवृत्ति × 4), 14.75 MHz (PAL वर्ग पिक्सेल), 14.7456 (बॉड रेट क्रिस्टल), आदि, जब तक V<sub>DD</sub> आवृत्ति का समर्थन करने के लिए पर्याप्त है। डिजाइनर [[बिल मानव]] ने बताया है कि एफ<sub>MAX</sub> ऑफ-चिप कारकों से प्रभावित होता है, जैसे माइक्रोप्रोसेसर के पिन पर कैपेसिटिव लोड। शॉर्ट सिग्नल ट्रैक्स और सबसे कम उपकरणों का उपयोग करके लोड को कम करने से F को बढ़ाने में मदद मिलती है<sub>MAX</sub>. पीएलसीसी और क्यूएफपी पैकेज में पीडीआईपी पैकेज की तुलना में कम पिन-टू-पिन कैपेसिटेंस होता है | मनमानी घड़ी दरों के लिए W65C02S समर्थन इसे ऐसी घड़ी का उपयोग करने की अनुमति देता है जो सिस्टम के किसी अन्य भाग के लिए आदर्श दर पर चलती है, जैसे कि 13.5 मेगाहर्ट्ज (डिजिटल एसडीटीवी लूमा सैंपलिंग दर), 14.31818 मेगाहर्ट्ज (एनटीएससी रंग वाहक आवृत्ति × 4), 14.75 MHz (PAL वर्ग पिक्सेल), 14.7456 (बॉड रेट क्रिस्टल), आदि, जब तक V<sub>DD</sub> आवृत्ति का समर्थन करने के लिए पर्याप्त है। डिजाइनर [[बिल मानव]] ने बताया है कि एफ<sub>MAX</sub> ऑफ-चिप कारकों से प्रभावित होता है, जैसे माइक्रोप्रोसेसर के पिन पर कैपेसिटिव लोड। शॉर्ट सिग्नल ट्रैक्स और सबसे कम उपकरणों का उपयोग करके लोड को कम करने से F को बढ़ाने में मदद मिलती है<sub>MAX</sub>. पीएलसीसी और क्यूएफपी पैकेज में पीडीआईपी पैकेज की तुलना में कम पिन-टू-पिन कैपेसिटेंस होता है और [[मुद्रित सर्किट बोर्ड]] स्पेस के उपयोग में अधिक किफायती होता है। | ||
डब्ल्यूडीसी ने बताया है कि W65C02S की FPGA प्राप्तियों को सफलतापूर्वक 200 मेगाहर्ट्ज पर संचालित किया गया है। | |||
== एनएमओएस 6502 == के साथ तुलना | == एनएमओएस 6502 == के साथ तुलना | ||
| Line 195: | Line 192: | ||
=== गैर-दस्तावेजी निर्देश हटा दिए गए === | === गैर-दस्तावेजी निर्देश हटा दिए गए === | ||
मूल 6502 में 56 निर्देश हैं | मूल 6502 में 56 निर्देश हैं जो अलग-अलग एड्रेसिंग मोड के साथ संयुक्त होने पर संभावित 256 8-बिट ऑपकोड पैटर्न के कुल 151 ऑपकोड उत्पन्न करते हैं। शेष 105 अप्रयुक्त ऑपकोड अपरिभाषित हैं, 3, 7, बी या एफ के साथ कम-ऑर्डर 4-बिट वाले कोड के सेट के साथ पूरी तरह से अप्रयुक्त छोड़ दिया गया है, कम-ऑर्डर 2 वाले कोड में केवल एक ही ऑपकोड है।<ref name=ii>{{cite web |url=http://nparker.llx.com/a2/opcodes.html |title= The 6502/65C02/65C816 Instruction Set Decoded |first=Neil |last=Parker |website= Neil Parker's Apple II page}}</ref> | ||
6502 पर, इनमें से कुछ बचे हुए कोड वास्तव में संगणना करते हैं। 6502 के निर्देश डिकोडर के काम करने के तरीके के कारण, ओपकोड में कुछ बिट्स को सेट करने से निर्देश प्रसंस्करण के कुछ हिस्सों का कारण बनता है। इनमें से कुछ ऑपकोड तुरंत प्रोसेसर को क्रैश कर देते हैं, जबकि अन्य उपयोगी कार्य करते हैं और यहां तक कि कुछ प्रोग्रामर द्वारा अनौपचारिक असेंबलर स्मृति चिन्ह भी दिए जाते हैं।<ref>{{cite web |url=http://www.ffd2.com/fridge/docs/6502-NMOS.extra.opcodes |title=Extra Instructions Of The 65XX Series CPU |first=Adam |last=Vardy |date=22 August 1995}}</ref> | 6502 पर, इनमें से कुछ बचे हुए कोड वास्तव में संगणना करते हैं। 6502 के निर्देश डिकोडर के काम करने के तरीके के कारण, ओपकोड में कुछ बिट्स को सेट करने से निर्देश प्रसंस्करण के कुछ हिस्सों का कारण बनता है। इनमें से कुछ ऑपकोड तुरंत प्रोसेसर को क्रैश कर देते हैं, जबकि अन्य उपयोगी कार्य करते हैं और यहां तक कि कुछ प्रोग्रामर द्वारा अनौपचारिक असेंबलर स्मृति चिन्ह भी दिए जाते हैं।<ref>{{cite web |url=http://www.ffd2.com/fridge/docs/6502-NMOS.extra.opcodes |title=Extra Instructions Of The 65XX Series CPU |first=Adam |last=Vardy |date=22 August 1995}}</ref> | ||
65C02 नए ऑपकोड जोड़ता है जो इनमें से कुछ पहले से अप्रमाणित निर्देश स्लॉट का उपयोग करते हैं। उदाहरण के लिए, $FF नए के लिए प्रयोग किया जाता है <code>BBS</code> निर्देश। जो वास्तव में अनुपयोगी रह जाते हैं वे समतुल्य होते हैं <code>[[NOP (code)|NOP]]</code>एस। उन ऑपकोड का उपयोग करने वाले 6502 प्रोग्राम 65C02 पर काम नहीं करेंगे।{{sfn|Wagner|1983|p=204}} | 65C02 नए ऑपकोड जोड़ता है जो इनमें से कुछ पहले से अप्रमाणित निर्देश स्लॉट का उपयोग करते हैं। उदाहरण के लिए, $FF नए के लिए प्रयोग किया जाता है <code>BBS</code> निर्देश। जो वास्तव में अनुपयोगी रह जाते हैं वे समतुल्य होते हैं <code>[[NOP (code)|NOP]]</code>एस। उन ऑपकोड का उपयोग करने वाले 6502 प्रोग्राम 65C02 पर काम नहीं करेंगे।{{sfn|Wagner|1983|p=204}} | ||
=== बग फिक्स === | === बग फिक्स === | ||
मूल 6502 में | मूल 6502 में प्रारम्भ में लॉन्च होने पर कई इरेटा थे। प्रोसेसर के प्रारम्भ ी संस्करणों में नहीं था <code>ROR</code> (दाईं ओर घुमाएं) निर्देश और एमओएस टेक्नोलॉजी मैनुअल ने भी इसका दस्तावेजीकरण नहीं किया। <code>ROR</code> उत्पादन चलाने में बहुत जल्दी लागू किया गया था और प्रोसेसर का उपयोग करने वाली अधिकांश मशीनें इस निर्देश का समर्थन करती हैं।<ref name="ROR">[[:File:MCS650x Instruction Set.jpg]]</ref> | ||
एक बग जो 6502 के सभी NMOS वेरिएंट में मौजूद है, एड्रेसिंग मोड#इंडेक्स्ड एब्सोल्यूट का उपयोग करते समय जंप निर्देश | एक बग जो 6502 के सभी NMOS वेरिएंट में मौजूद है, एड्रेसिंग मोड#इंडेक्स्ड एब्सोल्यूट का उपयोग करते समय जंप निर्देश सम्मिलित करता है। इस एड्रेसिंग मोड में, लक्ष्य का पता <code>JMP</code> निर्देश एक ऑपरेंड होने के बजाय मेमोरी, जंप वेक्टर से प्राप्त किया जाता है <code>JMP</code> निर्देश। उदाहरण के लिए, <code>JMP ($1234)</code> स्मृति स्थानों में मूल्य लाएगा {{mono|$1234}} (कम महत्वपूर्ण बाइट) और {{mono|$1235}} (सबसे महत्वपूर्ण बाइट) और उन मानों को प्रोग्राम काउंटर में लोड करें, जो तब प्रोसेसर को वेक्टर में संग्रहीत पते पर निष्पादन प्रचलित रखने का कारण बनेगा। | ||
बग तब प्रकट होता है जब वेक्टर पता समाप्त होता है {{mono|$FF}}, जो [[स्मृति पृष्ठ]] की सीमा है। इस | बग तब प्रकट होता है जब वेक्टर पता समाप्त होता है {{mono|$FF}}, जो [[स्मृति पृष्ठ]] की सीमा है। इस विषय में, <code>JMP</code> लक्ष्य पते का सबसे महत्वपूर्ण बाइट प्राप्त करेगा {{mono|$00}} मूल पृष्ठ के बजाय {{Mono|$00}नए पृष्ठ का }। इस तरह <code>JMP ($12FF)</code> पर लक्ष्य पते का कम से कम महत्वपूर्ण बाइट प्राप्त होगा {{mono|$12FF}} और लक्षित पते का सबसे महत्वपूर्ण बाइट {{mono|$1200}} इसके बजाय {{mono|$1300}}. 65C02 ने इस समस्या को ठीक किया।{{sfn|Wagner|1983|p=204}} | ||
एक बग की तुलना में अधिक निरीक्षण, NMOS 6502 के स्थिति रजिस्टर में (डी) ecimal ध्वज की स्थिति एक [[रीसेट (कंप्यूटिंग)]] या रुकावट के बाद अपरिभाषित है। इसका मतलब यह है कि अंकगणितीय परिचालनों से संबंधित किसी भी बग से बचने के लिए प्रोग्रामर को ध्वज को ज्ञात मान पर सेट करना होगा। नतीजतन, एक पाता है <code>CLD</code> निर्देश (स्पष्ट दशमलव) लगभग सभी 6502 [[इंटरप्ट हैंडलर]] में, साथ ही साथ रीसेट कोड में भी। 65C02 किसी भी बाधा या हार्डवेयर रीसेट के जवाब में स्टैक पर स्थिति रजिस्टर को धक्का देने के बाद स्वचालित रूप से इस ध्वज को साफ़ करता है, इस प्रकार प्रोसेसर को बाइनरी अंकगणितीय मोड में वापस रखता है।<ref name=differences/> | एक बग की तुलना में अधिक निरीक्षण, NMOS 6502 के स्थिति रजिस्टर में (डी) ecimal ध्वज की स्थिति एक [[रीसेट (कंप्यूटिंग)]] या रुकावट के बाद अपरिभाषित है। इसका मतलब यह है कि अंकगणितीय परिचालनों से संबंधित किसी भी बग से बचने के लिए प्रोग्रामर को ध्वज को ज्ञात मान पर सेट करना होगा। नतीजतन, एक पाता है <code>CLD</code> निर्देश (स्पष्ट दशमलव) लगभग सभी 6502 [[इंटरप्ट हैंडलर]] में, साथ ही साथ रीसेट कोड में भी। 65C02 किसी भी बाधा या हार्डवेयर रीसेट के जवाब में स्टैक पर स्थिति रजिस्टर को धक्का देने के बाद स्वचालित रूप से इस ध्वज को साफ़ करता है, इस प्रकार प्रोसेसर को बाइनरी अंकगणितीय मोड में वापस रखता है।<ref name=differences/> | ||
[[बाइनरी-कोडित दशमलव]] अंकगणितीय के दौरान, NMOS 6502 अंतर्निहित बाइनरी अंकगणित के परिणाम को प्रतिबिंबित करने के लिए (N) नकारात्मक, o(V) erflow और (Z) ero फ़्लैग्स को अपडेट करेगा, अर्थात, फ़्लैग्स पहले की गणना किए गए परिणाम को दर्शा रहे हैं प्रोसेसर दशमलव सुधार कर रहा है। इसके विपरीत, 65C02 अंकगणित निर्देश के अनुसार अतिरिक्त घड़ी चक्र की कीमत पर, दशमलव अंकगणित के परिणाम के अनुसार इन झंडों को सेट करता है।<ref name=differences>{{cite web|title=Differences between NMOS 6502 and CMOS 65c02|url=http://wilsonminesco.com/NMOS-CMOSdif/|access-date=27 February 2018|quote=N, V, and Z flags were incorrect after decimal operation (but C was ok).}}</ref> | [[बाइनरी-कोडित दशमलव]] अंकगणितीय के दौरान, NMOS 6502 अंतर्निहित बाइनरी अंकगणित के परिणाम को प्रतिबिंबित करने के लिए (N) नकारात्मक, o(V) erflow और (Z) ero फ़्लैग्स को अपडेट करेगा, अर्थात, फ़्लैग्स पहले की गणना किए गए परिणाम को दर्शा रहे हैं प्रोसेसर दशमलव सुधार कर रहा है। इसके विपरीत, 65C02 अंकगणित निर्देश के अनुसार अतिरिक्त घड़ी चक्र की कीमत पर, दशमलव अंकगणित के परिणाम के अनुसार इन झंडों को सेट करता है।<ref name=differences>{{cite web|title=Differences between NMOS 6502 and CMOS 65c02|url=http://wilsonminesco.com/NMOS-CMOSdif/|access-date=27 February 2018|quote=N, V, and Z flags were incorrect after decimal operation (but C was ok).}}</ref> | ||
पढ़ने-संशोधित-लिखने (आर-एम-डब्ल्यू) निर्देश निष्पादित करते समय, जैसे <code>INC ''addr''</code>, सभी NMOS वैरिएंट Addr पर दोहरा लेखन करेंगे, पहले Addr पर मिले वर्तमान मान को फिर से लिखेंगे और फिर संशोधित मान लिखेंगे। यदि Addr एक हार्डवेयर रजिस्टर है, तो यह व्यवहार कठिन-से-समाधान बग में परिणाम कर सकता है। यह तब हो सकता है जब हार्डवेयर रजिस्टर में मूल्य में परिवर्तन के लिए देख रहा हो और फिर एक क्रिया करता है, इस | पढ़ने-संशोधित-लिखने (आर-एम-डब्ल्यू) निर्देश निष्पादित करते समय, जैसे <code>INC ''addr''</code>, सभी NMOS वैरिएंट Addr पर दोहरा लेखन करेंगे, पहले Addr पर मिले वर्तमान मान को फिर से लिखेंगे और फिर संशोधित मान लिखेंगे। यदि Addr एक हार्डवेयर रजिस्टर है, तो यह व्यवहार कठिन-से-समाधान बग में परिणाम कर सकता है। यह तब हो सकता है जब हार्डवेयर रजिस्टर में मूल्य में परिवर्तन के लिए देख रहा हो और फिर एक क्रिया करता है, इस विषय में, यह दो क्रियाएं करेगा, एक मूल मूल्य के साथ और फिर नए मूल्य के साथ। 65C02 इसके बजाय Addr का दोहरा रीड करता है, उसके बाद सिंगल राइट करता है। | ||
इंडेक्सिंग एड्रेसिंग करते समय, यदि इंडेक्सिंग एक पृष्ठ सीमा को पार कर जाती है, तो सही पते तक पहुँचने से पहले सभी NMOS वेरिएंट एक अमान्य पते से पढ़ेंगे। जैसा कि R-M-W निर्देश के साथ होता है, अनुक्रमण के माध्यम से हार्डवेयर रजिस्टरों तक पहुँचने पर यह व्यवहार समस्याएँ पैदा कर सकता है। 65C02 ने इस समस्या को ठीक किया जब इंडेक्सिंग एक पृष्ठ सीमा को पार कर जाती है तो निर्देश ओपकोड का एक डमी रीड प्रदर्शन करके। हालाँकि, इस फिक्स ने एक नया बग पेश किया{{cn|date=November 2022}} जो तब होता है जब आधार पता एक समान पृष्ठ सीमा पर होता है (जिसका अर्थ है कि अनुक्रमण अगले पृष्ठ पर कभी नहीं जाएगा)। नए बग के साथ, अनुक्रमण से पहले आधार पते पर एक डमी रीड किया जाता है, जैसे कि <code>LDA $1200,X</code> एक डमी पढ़ेगा {{mono|$1200}} X के मान को जोड़े जाने से पहले {{mono|$1200}}. फिर से, यदि हार्डवेयर रजिस्टर पतों पर अनुक्रमण किया जाता है, तो इस बग का परिणाम अपरिभाषित व्यवहार हो सकता है। | इंडेक्सिंग एड्रेसिंग करते समय, यदि इंडेक्सिंग एक पृष्ठ सीमा को पार कर जाती है, तो सही पते तक पहुँचने से पहले सभी NMOS वेरिएंट एक अमान्य पते से पढ़ेंगे। जैसा कि R-M-W निर्देश के साथ होता है, अनुक्रमण के माध्यम से हार्डवेयर रजिस्टरों तक पहुँचने पर यह व्यवहार समस्याएँ पैदा कर सकता है। 65C02 ने इस समस्या को ठीक किया जब इंडेक्सिंग एक पृष्ठ सीमा को पार कर जाती है तो निर्देश ओपकोड का एक डमी रीड प्रदर्शन करके। हालाँकि, इस फिक्स ने एक नया बग पेश किया{{cn|date=November 2022}} जो तब होता है जब आधार पता एक समान पृष्ठ सीमा पर होता है (जिसका अर्थ है कि अनुक्रमण अगले पृष्ठ पर कभी नहीं जाएगा)। नए बग के साथ, अनुक्रमण से पहले आधार पते पर एक डमी रीड किया जाता है, जैसे कि <code>LDA $1200,X</code> एक डमी पढ़ेगा {{mono|$1200}} X के मान को जोड़े जाने से पहले {{mono|$1200}}. फिर से, यदि हार्डवेयर रजिस्टर पतों पर अनुक्रमण किया जाता है, तो इस बग का परिणाम अपरिभाषित व्यवहार हो सकता है। | ||
| Line 217: | Line 214: | ||
6502 में दो अप्रत्यक्ष एड्रेसिंग मोड हैं जो पृष्ठ शून्य में संग्रहीत 16-बिट पतों के माध्यम से विचलन करते हैं: | 6502 में दो अप्रत्यक्ष एड्रेसिंग मोड हैं जो पृष्ठ शून्य में संग्रहीत 16-बिट पतों के माध्यम से विचलन करते हैं: | ||
* अनुक्रमित अप्रत्यक्ष, उदा. <code>LDA ($10,X)</code>, 16-बिट वेक्टर को पढ़ने से पहले दिए गए पृष्ठ शून्य पते पर X रजिस्टर जोड़ता है। इस उदाहरण में, यदि X 5 है, तो यह स्थान $15/$16 से 16-बिट पता पढ़ता है। यह तब उपयोगी होता है जब पेज ज़ीरो में पॉइंटर्स की एक सरणी होती है। | * अनुक्रमित अप्रत्यक्ष, उदा. <code>LDA ($10,X)</code>, 16-बिट वेक्टर को पढ़ने से पहले दिए गए पृष्ठ शून्य पते पर X रजिस्टर जोड़ता है। इस उदाहरण में, यदि X 5 है, तो यह स्थान $15/$16 से 16-बिट पता पढ़ता है। यह तब उपयोगी होता है जब पेज ज़ीरो में पॉइंटर्स की एक सरणी होती है। | ||
* अप्रत्यक्ष अनुक्रमित <code>LDA ($10),Y</code> दिए गए पृष्ठ शून्य पते से पढ़े गए 16-बिट वेक्टर में वाई रजिस्टर जोड़ता है। उदाहरण के लिए, यदि Y 5 है, और {{mono|$10/$11}} वेक्टर | * अप्रत्यक्ष अनुक्रमित <code>LDA ($10),Y</code> दिए गए पृष्ठ शून्य पते से पढ़े गए 16-बिट वेक्टर में वाई रजिस्टर जोड़ता है। उदाहरण के लिए, यदि Y 5 है, और {{mono|$10/$11}} वेक्टर सम्मिलित है {{mono|$1000}}, यह से मान पढ़ता है {{mono|$1005}}. यह पॉइंटर-ऑफ़सेट एड्रेसिंग करता है। | ||
इस मॉडल का नकारात्मक पक्ष यह है कि यदि अनुक्रमण की आवश्यकता नहीं है लेकिन पता शून्य पृष्ठ में है, तो सूचकांक रजिस्टरों में से एक को अभी भी शून्य पर सेट किया जाना चाहिए और इन निर्देशों में से एक में उपयोग किया जाना चाहिए। 65C02 ने एक गैर-अनुक्रमित अप्रत्यक्ष एड्रेसिंग मोड जोड़ा <code>LDA ($10)</code> उन सभी निर्देशों के लिए जो अनुक्रमित अप्रत्यक्ष और अप्रत्यक्ष अनुक्रमित मोड का उपयोग करते थे, सूचकांक रजिस्टरों को मुक्त करते थे।<ref name=opcodes>{{cite web |url=http://6502.org/tutorials/65c02opcodes.html |title=65C02 Opcodes |first=Bruce |last=Clark }}</ref> | इस मॉडल का नकारात्मक पक्ष यह है कि यदि अनुक्रमण की आवश्यकता नहीं है लेकिन पता शून्य पृष्ठ में है, तो सूचकांक रजिस्टरों में से एक को अभी भी शून्य पर सेट किया जाना चाहिए और इन निर्देशों में से एक में उपयोग किया जाना चाहिए। 65C02 ने एक गैर-अनुक्रमित अप्रत्यक्ष एड्रेसिंग मोड जोड़ा <code>LDA ($10)</code> उन सभी निर्देशों के लिए जो अनुक्रमित अप्रत्यक्ष और अप्रत्यक्ष अनुक्रमित मोड का उपयोग करते थे, सूचकांक रजिस्टरों को मुक्त करते थे।<ref name=opcodes>{{cite web |url=http://6502.org/tutorials/65c02opcodes.html |title=65C02 Opcodes |first=Bruce |last=Clark }}</ref> | ||
6502 का {{code|JMP}} निर्देश में एक अनूठा (6502 निर्देशों के बीच) एड्रेसिंग मोड था जिसे पूर्ण अप्रत्यक्ष के रूप में जाना जाता है जो किसी दिए गए मेमोरी पते से 16-बिट मान पढ़ता है और फिर उस 16-बिट मान में पते पर कूद जाता है। उदाहरण के लिए, यदि स्मृति स्थान {{mono|$A000}} के पास $34 और {{mono|$A001}} के पास $12 है, <code>JMP ($A000)</code> उन दो बाइट्स को पढ़ेगा, मूल्य का निर्माण करेगा {{mono|$1234}}, और फिर उस स्थान पर जाएं। | 6502 का {{code|JMP}} निर्देश में एक अनूठा (6502 निर्देशों के बीच) एड्रेसिंग मोड था जिसे पूर्ण अप्रत्यक्ष के रूप में जाना जाता है जो किसी दिए गए मेमोरी पते से 16-बिट मान पढ़ता है और फिर उस 16-बिट मान में पते पर कूद जाता है। उदाहरण के लिए, यदि स्मृति स्थान {{mono|$A000}} के पास $34 और {{mono|$A001}} के पास $12 है, <code>JMP ($A000)</code> उन दो बाइट्स को पढ़ेगा, मूल्य का निर्माण करेगा {{mono|$1234}}, और फिर उस स्थान पर जाएं। | ||
| Line 226: | Line 223: | ||
===नए और संशोधित निर्देश=== | ===नए और संशोधित निर्देश=== | ||
नए एड्रेसिंग मोड के | नए एड्रेसिंग मोड के अतिरिक्त , बेस मॉडल 65C02 ने नए निर्देशों का एक सेट भी जोड़ा।{{sfn|Wagner|1983|p=200}} | ||
* <code>INC</code> और <code>DEC</code> बिना किसी पैरामीटर के अब संचायक को बढ़ाएँ या घटाएँ। मूल निर्देश सेट में यह एक अजीब निरीक्षण था, जिसमें केवल | * <code>INC</code> और <code>DEC</code> बिना किसी पैरामीटर के अब संचायक को बढ़ाएँ या घटाएँ। मूल निर्देश सेट में यह एक अजीब निरीक्षण था, जिसमें केवल सम्मिलित था <code>INX</code>/<code>DEX</code>,<code>INY</code>/<code>DEY</code> और <code>INC ''addr''</code>/<code>DEC ''addr''</code>. कुछ असेंबलर वैकल्पिक रूपों का उपयोग करते हैं <code>INA</code>/<code>DEA</code> या <code>INC A</code>/<code>DEC A</code>.{{sfn|Wagner|1983|p=200}} | ||
* <code>STZ ''addr''</code>, Addr में शून्य स्टोर करें। की आवश्यकता को प्रतिस्थापित करता है <code>LDA | * <code>STZ ''addr''</code>, Addr में शून्य स्टोर करें। की आवश्यकता को प्रतिस्थापित करता है <code>LDA 0;STA ''addr''</code> और संचायक के मान को बदलने की आवश्यकता नहीं है। जैसा कि अधिकांश कार्यक्रमों में यह कार्य सामान्य है, का उपयोग करना {{code|STZ}} कोड आकार को कम कर सकते हैं, दोनों को समाप्त करके {{code|LDA}} के साथ-साथ संचायक के मूल्य को बचाने के लिए आवश्यक कोई भी कोड, आमतौर पर a <code>PHA</code> <code>PLA</code> जोड़ा।{{sfn|Wagner|1983|p=203}} | ||
* <code>PHX</code>,<code>PLX</code>,<code>PHY</code>,<code>PLY</code>, X और Y रजिस्टरों को स्टैक से/में धकेलें और खींचें। पहले, केवल संचायक और स्थिति रजिस्टर में पुश और पुल निर्देश होते थे। X और Y को पहले संचायक में ले जाकर ही ढेर किया जा सकता है <code>TXA</code> या <code>TYA</code> | * <code>PHX</code>,<code>PLX</code>,<code>PHY</code>,<code>PLY</code>, X और Y रजिस्टरों को स्टैक से/में धकेलें और खींचें। पहले, केवल संचायक और स्थिति रजिस्टर में पुश और पुल निर्देश होते थे। X और Y को पहले संचायक में ले जाकर ही ढेर किया जा सकता है <code>TXA</code> या <code>TYA</code> जिससे संचायक की सामग्री बदली जाती है, फिर उपयोग किया जाता है <code>PHA</code>.{{sfn|Wagner|1983|pp=200-201}} | ||
* <code>BRA</code>, शाखा हमेशा। ए की तरह काम करता है <code>JMP</code> लेकिन अन्य शाखाओं की तरह 1-बाइट सापेक्ष पते का उपयोग करता है, एक बाइट बचाता है। गति अक्सर 3 चक्र निरपेक्ष के समान होती है <code>JMP</code> जब तक कि एक पृष्ठ पार नहीं किया जाता है जो इसे बना देगा <code>BRA</code> संस्करण 1 चक्र लंबा (4 चक्र)।<ref>{{cite web |url=http://www.westerndesigncenter.com/wdc/documentation/w65c02s.pdf |title=W65C02S Datasheet }}</ref> जैसा कि पता सापेक्ष है, यह पुनर्निधारणीय कोड लिखते समय भी उपयोगी होता है,{{sfn|Wagner|1983|p=203}} स्मृति प्रबंधन इकाइयों से पहले युग में एक सामान्य कार्य। | * <code>BRA</code>, शाखा हमेशा। ए की तरह काम करता है <code>JMP</code> लेकिन अन्य शाखाओं की तरह 1-बाइट सापेक्ष पते का उपयोग करता है, एक बाइट बचाता है। गति अक्सर 3 चक्र निरपेक्ष के समान होती है <code>JMP</code> जब तक कि एक पृष्ठ पार नहीं किया जाता है जो इसे बना देगा <code>BRA</code> संस्करण 1 चक्र लंबा (4 चक्र)।<ref>{{cite web |url=http://www.westerndesigncenter.com/wdc/documentation/w65c02s.pdf |title=W65C02S Datasheet }}</ref> जैसा कि पता सापेक्ष है, यह पुनर्निधारणीय कोड लिखते समय भी उपयोगी होता है,{{sfn|Wagner|1983|p=203}} स्मृति प्रबंधन इकाइयों से पहले युग में एक सामान्य कार्य। | ||
=== बिट हेरफेर निर्देश === | === बिट हेरफेर निर्देश === | ||
डब्ल्यूडीसी और रॉकवेल दोनों ने 65C02 में बिट परीक्षण और हेरफेर कार्यों में सुधार का योगदान दिया। डब्ल्यूडीसी ने BIT निर्देश में नए एड्रेसिंग मोड जोड़े जो 6502 में मौजूद थे, साथ ही बिट फ़ील्ड के सुविधाजनक हेरफेर के लिए दो नए निर्देश, डिवाइस ड्राइवरों में एक सामान्य गतिविधि। | |||
{{code|BIT}} 65C02 में तत्काल मोड जोड़ता है, एक्स द्वारा अनुक्रमित शून्य पृष्ठ और एक्स एड्रेसिंग द्वारा पूर्ण अनुक्रमित।{{sfn|Wagner|1983|p=200}} तत्काल मोड एड्रेसिंग विशेष रूप से सुविधाजनक है क्योंकि यह पूरी तरह से गैर-विनाशकारी है। उदाहरण के लिए: | {{code|BIT}} 65C02 में तत्काल मोड जोड़ता है, एक्स द्वारा अनुक्रमित शून्य पृष्ठ और एक्स एड्रेसिंग द्वारा पूर्ण अनुक्रमित।{{sfn|Wagner|1983|p=200}} तत्काल मोड एड्रेसिंग विशेष रूप से सुविधाजनक है क्योंकि यह पूरी तरह से गैर-विनाशकारी है। उदाहरण के लिए: | ||
| Line 244: | Line 241: | ||
:<code>AND #%00010000</code> | :<code>AND #%00010000</code> | ||
{{code|AND}ND}} ऑपरेशन संचायक में मान को बदल देता है | {{code|AND}ND}}ऑपरेशन संचायक में मान को बदल देता है इसलिए $1234 से लोड किया गया मूल मान खो जाता है। का उपयोग करते हुए {{code|BIT}} संचायक में मान को अपरिवर्तित छोड़ देता है इसलिए बाद का कोड मूल मान के विरुद्ध अतिरिक्त परीक्षण कर सकता है और स्मृति से मान को फिर से लोड करने से बच सकता है। | ||
के संवर्द्धन के | के संवर्द्धन के अतिरिक्त {{code|BIT}} निर्देश डब्ल्यूडीसी ने बिट फ़ील्ड्स को आसानी से हेरफेर करने के लिए डिज़ाइन किए गए दो निर्देश जोड़े: | ||
* <code>TSB ''addr''</code> और <code>TRB ''addr''</code> | * <code>TSB ''addr''</code>और <code>TRB ''addr''</code>टेस्ट और सेट बिट्स और टेस्ट और रीसेट बिट्स। | ||
: संचायक में एक मुखौटा (<code>.A</code>) Addr पर मेमोरी के साथ तार्किक रूप से ANDed है | : संचायक में एक मुखौटा (<code>.A</code>) Addr पर मेमोरी के साथ तार्किक रूप से ANDed है कौन सा स्थान शून्य पृष्ठ या निरपेक्ष हो सकता है। स्थिति रजिस्टर में Z ध्वज तार्किक के परिणाम के अनुसार वातानुकूलित है और—कोई अन्य स्थिति रजिस्टर ध्वज प्रभावित नहीं होता है। इसके अतिरिक्त Addr में बिट्स को मास्क के अनुसार सेट (TSB) या क्लियर (TRB) किया जाता है <code>.A</code>. संक्षेप में TSB तार्किक प्रदर्शन करता है {{code|OR}} तार्किक के बाद {{code|AND}}और तार्किक परिणाम संग्रहीत करता है {{code|OR}} Addr पर जबकि TRB तार्किक परिणामों को संग्रहीत करता है {{code|AND}} Addr पर। दोनों ही स्थितियों में स्थिति रजिस्टर में Z फ़्लैग का परिणाम दर्शाता है<code>.A AND ''addr''</code> Addr की सामग्री बदलने से पहले। टीआरबी और टीएसबी इस प्रकार निर्देशों के अनुक्रम को प्रतिस्थापित करते हैं, अनिवार्य रूप से संयोजन करते हैं {{code|BIT}} कम्प्यूटेशनल परिवर्तनों को बचाने के लिए अतिरिक्त चरणों के साथ निर्देश लेकिन एक तरह से जो प्रभावित मूल्य की स्थिति को बदलने से पहले रिपोर्ट करता है।{{sfn|Wagner|1983|p=204}} | ||
रॉकवेल के परिवर्तनों ने किसी भी बिट को सीधे सेट करने और परीक्षण करने के लिए और परीक्षण, स्पष्ट और शाखा को एक ही ऑपकोड में संयोजित करने के लिए अधिक बिट हेरफेर निर्देश जोड़े। रॉकवेल के R65C00 परिवार में | रॉकवेल के परिवर्तनों ने किसी भी बिट को सीधे सेट करने और परीक्षण करने के लिए और परीक्षण, स्पष्ट और शाखा को एक ही ऑपकोड में संयोजित करने के लिए अधिक बिट हेरफेर निर्देश जोड़े। रॉकवेल के R65C00 परिवार में प्रारम्भ से ही नए निर्देश उपलब्ध थे{{sfn|Wagner|1983|p=199}} लेकिन मूल 65C02 विनिर्देश का हिस्सा नहीं था और डब्ल्यूडीसी या इसके अन्य लाइसेंसधारियों द्वारा बनाए गए संस्करणों में नहीं पाया गया। इन्हें बाद में बेसलाइन डिज़ाइन में वापस कॉपी किया गया और बाद के डब्ल्यूडीसी संस्करणों में उपलब्ध थे। | ||
रॉकवेल-विशिष्ट निर्देश हैं: | रॉकवेल-विशिष्ट निर्देश हैं: | ||
* <code> | * <code>एसएमबी''bit#'' ''zp''</code>/<code>आरएमबी''bit#'' ''zp''</code>. जीरो पेज बाइट zp में सेट या रीसेट (क्लियर) बिट नंबर बिट#। | ||
: | : आरएमबी और एसएमबी का उपयोग बिट फ़ील्ड में अलग-अलग बिट्स (आरएमबी) या सेट (एसएमबी) को साफ़ करने के लिए किया जाता है, प्रत्येक तीन निर्देशों के अनुक्रम को प्रतिस्थापित करता है। चूंकि आरएमबी और एसएमबी केवल जीरो पेज एड्रेसिंग हैं, ये निर्देश उपयोगिता में सीमित हैं और मुख्य रूप से उन प्रणालियों में महत्वपूर्ण हैं जिनमें डिवाइस रजिस्टर शून्य पेज में मौजूद हैं। निर्देश का बिट # घटक अक्सर स्मरक के भाग के रूप में लिखा जाता है जैसे <code>एसएमबी1 $12</code> जो बिट 1 को शून्य-पृष्ठ पते $12 में सेट करता है। कुछ असेंबलर बिट # को निर्देश के ऑपरेंड के हिस्से के रूप में मानते हैं, उदाहरण के लिए<code>एसएमबी '''1''',$12</code>जिसके पास इसे एक चर नाम या परिकलित संख्या द्वारा प्रतिस्थापित करने की अनुमति देने का लाभ है।{{sfn|Wagner|1983|p=203}} | ||
* <code> | * <code>बीबीआर ''bit#'',''offset'',''addr''</code>और<code>BBS ''bit#'',''offset'',''addr''</code> बिट सेट/रीसेट पर शाखा। | ||
: आरएमबी और एसएमबी के समान शून्य-पेज एड्रेसिंग और सीमाएं | : आरएमबी और एसएमबी के समान शून्य-पेज एड्रेसिंग और सीमाएं लेकिन चयनित बिट स्पष्ट (बीबीआर) या सेट (बीबीएस) होने पर शाखाओं को जोड़ने के लिए। जैसा कि आरएमबी और एसएमबी के साथ होता है बीबीआर और बीबीएस तीन निर्देशों के अनुक्रम को प्रतिस्थापित करते हैं।{{sfn|Wagner|1983|p=203}} | ||
=== कम-शक्ति मोड === | === कम-शक्ति मोड === | ||
उपरोक्त नए आदेशों के अतिरिक्त | उपरोक्त नए आदेशों के अतिरिक्त डब्ल्यूडीसी ने भी जोड़ा<code>STP</code>और<code>WAI</code>कम-शक्ति मोड का समर्थन करने के निर्देश। | ||
{{code|STP}} | {{code|STP}}प्रोसेसर को STop करें हार्डवेयर रीसेट प्रचलित होने तक सभी प्रोसेसिंग को रोक दें। इसका उपयोग किसी सिस्टम को सुलाने के लिए किया जा सकता है और फिर इसे रीसेट के साथ तेजी से जगाया जा सकता है। प्राय: इसके लिए मुख्य मेमोरी को बनाए रखने के लिए कुछ बाहरी सिस्टम की आवश्यकता होती है और इसका व्यापक रूप से उपयोग नहीं किया जाता था। | ||
{{code|WAI}} | {{code|WAI}} का एक समान प्रभाव था, लो-पावर मोड में प्रवेश करना लेकिन इस निर्देश ने प्रोसेसर को एक रुकावट के स्वागत पर फिर से जगा दिया। पहले एक बाधा को संभालने में प्राय: एक लूप चलाने के लिए सम्मिलित होता था ताकि यह जांचा जा सके कि क्या कोई रुकावट प्राप्त हुई है जिसे कभी-कभी व्यस्त प्रतीक्षा के रूप में जाना जाता है जब कोई प्राप्त होता है तो प्रकार की जांच करना और फिर प्रसंस्करण कोड पर कूदना। इसका मतलब यह था कि प्रोसेसर पूरी प्रक्रिया के दौरान चल रहा था तब भी जब कोई रुकावट नहीं आ रही थी। | ||
इसके विपरीत | इसके विपरीत 65C02 में इंटरप्ट कोड को लिख कर लिखा जा सकता है {{code|WAI}}के तुरंत बाद a {{code|JSR}} या {{code|JMP}} हैंडलर को। जब {{code|WAI}} का सामना करना पड़ा प्रोसेसिंग बंद हो गई और प्रोसेसर लो-पावर मोड में चला गया। जब व्यवधान प्राप्त हुआ तो उसने तुरंत प्रक्रिया की {{code|JSR}}और अनुरोध को संभाला। | ||
प्रदर्शन में | प्रदर्शन में कुछ सुधार करने का यह अतिरिक्त लाभ था। कताई के विषय में रुकावट लूप के निर्देशों में से एक के बीच में आ सकती है और हैंडलर से लौटने के बाद इसे फिर से प्रारम्भ करने की अनुमति देने के लिए प्रोसेसर अपने स्थान को बचाने के लिए एक चक्र खर्च करता है। साथ {{code|WAI}}प्रोसेसर एक ज्ञात स्थान पर कम-शक्ति स्थिति में प्रवेश करता है जहां सभी निर्देशों को पूरा करने की गारंटी दी जाती है इसलिए जब व्यवधान आता है तो यह संभवतः एक निर्देश को बाधित नहीं कर सकता है और प्रोसेसर बिना चक्र बचत स्थिति खर्च किए सुरक्षित रूप से प्रचलित रह सकता है। | ||
== 65SC02 == | == 65SC02 == | ||
65SC02 बिना किसी निर्देश के | 65SC02 बिना किसी निर्देश के डब्ल्यूडीसी 65C02 का एक प्रकार है।<ref>{{cite book |first=Rodnay |last=Zaks |title=Programming the 6502 |year=1983 |page= 348 |url=https://archive.org/details/Programming_the_6502_OCR |publisher=Sybex |isbn=0895881357}}<!-- Couldn't confirm the actual cite --></ref>== 65C02 == के उल्लेखनीय उपयोग | ||
== 65C02 == के उल्लेखनीय उपयोग | |||
=== [[एप्पल कंप्यूटर]] === | === [[एप्पल कंप्यूटर]] === | ||
* | * एप्पल कंप्यूटर द्वारा [[[[[[Apple I|एप्पल I]]I]]c]] पोर्टेबल (NCR 1.023 MHz) | ||
* | * एप्पल कंप्यूटर द्वारा [[Apple IIe|एप्पल IIe]] (1.023 मेगाहर्ट्ज) | ||
* [[बीबीसी मास्टर]] होम/एजुकेशनल कंप्यूटर, [[एकोर्न कम्प्यूटर्स लिमिटेड]] द्वारा (2 मेगाहर्ट्ज 65SC12 प्लस वैकल्पिक 4 मेगाहर्ट्ज 65C102 सेकंड प्रोसेसर) | * [[बीबीसी मास्टर]] होम/एजुकेशनल कंप्यूटर, [[एकोर्न कम्प्यूटर्स लिमिटेड]] द्वारा (2 मेगाहर्ट्ज 65SC12 प्लस वैकल्पिक 4 मेगाहर्ट्ज 65C102 सेकंड प्रोसेसर) | ||
* | * ब्रील [[एकोर्न कम्प्यूटर्स लिमिटेड|कम्प्यूटर्स]] द्वारा [[प्रतिकृति 1]], एप्पल I हॉबीस्ट कंप्यूटर (1 MHz) की प्रतिकृति | ||
* | * एप्पल II की [[लेजर 128]] श्रृंखला क्लोन | ||
* ब्रील कंप्यूटिंग द्वारा [[KIM-1]] MOS/CBM KIM-1 की आधुनिक प्रतिकृति | * ब्रील कंप्यूटिंग द्वारा [[KIM-1]] MOS/CBM KIM-1 की आधुनिक प्रतिकृति | ||
| Line 289: | Line 282: | ||
* [[ लिंक्स नहीं ]] हैंडहेल्ड (65SC02 @ ~4 मेगाहर्ट्ज) | * [[ लिंक्स नहीं ]] हैंडहेल्ड (65SC02 @ ~4 मेगाहर्ट्ज) | ||
* [[पीसी इंजन]] उर्फ TurboGrafx-16 (हडसन सॉफ्ट HuC6280 @ 7.16 मेगाहर्ट्ज)<ref>{{Cite web|url=http://archaicpixels.com/HuC6280|title = HuC6280 - Archaic Pixels}}</ref> | * [[पीसी इंजन]] उर्फ TurboGrafx-16 (हडसन सॉफ्ट HuC6280 @ 7.16 मेगाहर्ट्ज)<ref>{{Cite web|url=http://archaicpixels.com/HuC6280|title = HuC6280 - Archaic Pixels}}</ref> | ||
* | * टाइमटॉप द्वारा गेमकिंग हैंडहेल्ड (6 मेगाहर्ट्ज) | ||
* [[पर्यवेक्षण के बारे में]] हैंडहेल्ड (65SC02 @ 4 मेगाहर्ट्ज) | * [[पर्यवेक्षण के बारे में]] हैंडहेल्ड (65SC02 @ 4 मेगाहर्ट्ज) | ||
=== अन्य उत्पाद === | === अन्य उत्पाद === | ||
* [[कमोडोर 64]] होम कंप्यूटर के लिए TurboMaster एक्सीलरेटर कार्ट्रिज (65C02 @ 4.09 मेगाहर्ट्ज) | * [[कमोडोर 64]] होम कंप्यूटर के लिए TurboMaster एक्सीलरेटर कार्ट्रिज (65C02 @ 4.09 मेगाहर्ट्ज) | ||
* | *एकोर्न बीबीसी माइक्रो होम कंप्यूटर के लिए ट्यूब से जुड़ा दूसरा प्रोसेसर (65C02 @ 3 मेगाहर्ट्ज) | ||
* कई समर्पित | *कई समर्पित शतरंज कंप्यूटर यानी: मेफिस्टो एमएमवी, नोवाग सुपर कांस्टेलेशन, फिडेलिटी एलीट और कई अन्य (4-20 मेगाहर्ट्ज | ||
== यह भी देखें == | == यह भी देखें == | ||
| Line 327: | Line 320: | ||
* [http://www.westerndesigncenter.com/wdc/w65c02s-chip.cfm 65C02 webpage] - Western Design Center | * [http://www.westerndesigncenter.com/wdc/w65c02s-chip.cfm 65C02 webpage] - Western Design Center | ||
* [http://www.cpu-world.com/info/6502/65xx_65Cxx_65SCxx_differences.html 65xx/65Cxx/65SCxx Differences] - CPU World | * [http://www.cpu-world.com/info/6502/65xx_65Cxx_65SCxx_differences.html 65xx/65Cxx/65SCxx Differences] - CPU World | ||
* [http://axis.llx.com/~nparker/a2/opcodes.html 6502/65C02/65C816 Instruction Set Decoded] – From Neil Parker's | * [http://axis.llx.com/~nparker/a2/opcodes.html 6502/65C02/65C816 Instruction Set Decoded] – From Neil Parker's एप्पल II page | ||
{{MOS CPU}} | {{MOS CPU}} | ||
Revision as of 11:14, 8 June 2023
![]() W65C02S microprocessor in a PDIP-40 package | |
| General information | |
|---|---|
| Launched | 1983 |
| Common manufacturer(s) | |
| Performance | |
| Max. CPU clock rate | 1 MHz to 14 MHz |
| History | |
| Predecessor | MOS Technology 6502 |
वेस्टर्न डिज़ाइन सेंटर (डब्ल्यूडीसी) 65C02 माइक्रोप्रोसेसर लोकप्रिय nMOS- आधारित 8-बिट MOS टेक्नोलॉजी 6502 का उन्नत CMOS संस्करण है। 65C02 ने मूल 6502 में कई समस्याओं को ठीक किया और कुछ नए निर्देश जोड़े, लेकिन इसकी मुख्य विशेषता समान गति से चलने वाले मूल 6502 की तुलना में 10 से 20 गुना कम बिजली का उपयोग करना था। कम बिजली की खपत ने 65C02 को औद्योगिक सेटिंग्स में पोर्टेबल कंप्यूटर भूमिकाओं और माइक्रोकंट्रोलर सिस्टम में उपयोगी बना दिया। इसका उपयोग कुछ घरेलू कंप्यूटरों के साथ-साथ अंतः स्थापित प्रणाली अनुप्रयोगों में किया गया है जिसमें मेडिकल-ग्रेड इम्प्लांटेड डिवाइस सम्मिलित हैं।
डब्ल्यूडीसी 65C02 का विकास 1981 में प्रारम्भ हुआ[lower-alpha 1] 1983 की प्रारम्भ में प्रचलित किए गए नमूनों के साथ।[lower-alpha 2] 65C02 को आधिकारिक तौर पर कुछ समय बाद प्रचलित किया गया था।[1] डब्ल्यूडीसी ने डिजाइन का लाइसेंस Synertek, National Cash Register, Verizon Communications#GTE, और Rockwell International को दिया। रॉकवेल की प्राथमिक रुचि एम्बेडेड मार्केट में थी और इस भूमिका में सहायता के लिए कई नए कमांड जोड़े जाने के लिए कहा। इन्हें बाद में बेसलाइन संस्करण में वापस कॉपी किया गया, जिस बिंदु पर डब्ल्यूडीसी ने W65C02 बनाने के लिए अपने स्वयं के दो नए आदेश जोड़े। Sanyo ने बाद में डिजाइन को भी लाइसेंस दिया, और Seiko Epson ने HuC6280 के रूप में एक और संशोधित संस्करण का उत्पादन किया।
प्रारम्भ ी संस्करण 40-पिन डीआईपी पैकेजिंग का उपयोग करते थे, और मूल एनएमओएस संस्करणों की गति से मेल खाते हुए 1, 2 और 4 मेगाहर्ट्ज संस्करणों में उपलब्ध थे। बाद के संस्करणों को चिप कैरियर # प्लास्टिक लेड चिप कैरियर और एमएफएफ पैकेजों के साथ-साथ पीडीआईपी और बहुत अधिक क्लॉक स्पीड रेटिंग के साथ तैयार किया गया था। डब्ल्यूडीसी के वर्तमान संस्करण, W65C02S-14 में पूरी तरह से स्थिर कोर है और 5 वोल्ट पर संचालित होने पर आधिकारिक तौर पर 14 मेगाहर्ट्ज तक की गति से चलता है।
परिचय और सुविधाएँ
65C02 एक 16-बिट कार्यक्रम गणक और पता बस के साथ एक कम लागत वाला, सामान्य-उद्देश्य वाला 8-बिट माइक्रोप्रोसेसर (8-बिट प्रोसेसर रजिस्टर और बस (कंप्यूटिंग)) है। रजिस्टर सेट छोटा है, जिसमें एक सिंगल 8-बिट संचायक (कंप्यूटिंग) (A), दो 8-बिट सूचकांक रजिस्टर (X और Y), एक 8-बिट स्टेटस रजिस्टर (P) और एक 16-बिट प्रोग्राम काउंटर ( पीसी)। एकल संचायक के अतिरिक्त , रैम के पहले 256 बाइट्स, शून्य पृष्ठ ($0000 को $00FF), 16-बिट पते के बजाय 8-बिट मेमोरी एड्रेस का उपयोग करने वाले एड्रेसिंग मोड के माध्यम से तेजी से पहुंच की अनुमति दें। स्टैक (डेटा संरचना) अगले 256 बाइट्स, पृष्ठ एक ($0100 से $01FF) में निहित है, और इसे स्थानांतरित या विस्तारित नहीं किया जा सकता है। स्टैक $01FF से प्रारम्भ होने वाले स्टेक सूचक (S) के साथ पीछे की ओर बढ़ता है और जैसे-जैसे स्टैक बढ़ता है घटता जाता है।[2] इसमें एक चर-लंबाई निर्देश सेट है, जो प्रति निर्देश एक और तीन बाइट्स के बीच भिन्न होता है।[3]
65C02 का मूल आर्किटेक्चर मूल 6502 के समान है, और इसे उस डिज़ाइन का कम-शक्ति कार्यान्वयन माना जा सकता है। 1 मेगाहर्ट्ज पर, मूल 6502 के लिए सबसे लोकप्रिय गति, 65C02 के लिए केवल 20 mW की आवश्यकता होती है, जबकि मूल 450 mW का उपयोग करता है, जो बीस गुना से अधिक की कमी है।[4] मैन्युअल रूप से अनुकूलित कोर और कम बिजली के उपयोग का इरादा 65C02 को लो पावर सिस्टम- on- एक चिप|सिस्टम-ऑन-चिप (SoC) डिजाइनों के लिए उपयुक्त बनाना है।[3]
Verilog हार्डवेयर डिस्क्रिप्शन मॉडल W65C02S कोर को विशिष्ट एकीकृत परिपथ आवेदन (ASIC) या क्षेत्र में प्रोग्राम की जा सकने वाली द्वार श्रंखला (FPGA) में डिजाइन करने के लिए उपलब्ध है।[5] जैसा कि अर्धचालक उद्योग में आम है, डब्ल्यूडीसी एक विकास प्रणाली प्रदान करता है, जिसमें माइक्रोप्रोसेसर विकास बोर्डों की एक सूची, एक इन-सर्किट एमुलेटर (ICE) और एक सॉफ्टवेयर विकास प्रणाली सम्मिलित है।[6] W65C02S–14 उत्पादन संस्करण है as of 2023[update], और PDIP, चिप कैरियर#प्लास्टिक लीडेड चिप कैरियर और QFP पैकेज में उपलब्ध है। अधिकतम आधिकारिक रूप से समर्थित Ø2 (प्राथमिक) घड़ी की गति 5 वोल्ट पर संचालित होने पर 14 मेगाहर्ट्ज है, जो -14 भाग संख्या प्रत्यय द्वारा इंगित किया गया है (शौकिया लोगों ने 65C02 घर का बना कंप्यूटर सिस्टम विकसित किए हैं जो आधिकारिक रेटिंग से तेज चलते हैं)। एस पदनाम इंगित करता है कि भाग में पूरी तरह से गतिशील तर्क (डिजिटल तर्क) #स्थैतिक बनाम गतिशील तर्क है, एक विशेषता जो Ø2 को धीमा करने या डेटा की कोई हानि के बिना उच्च या निम्न स्थिति में पूरी तरह से बंद करने की अनुमति देती है।[7] CMOS में लागू नहीं किए गए विशिष्ट माइक्रोप्रोसेसरों में डायनेमिक कोर होते हैं और यदि वे कुछ न्यूनतम और अधिकतम निर्दिष्ट मानों के बीच लगातार क्लॉक नहीं किए जाते हैं तो वे अपनी आंतरिक रजिस्टर सामग्री (और इस प्रकार क्रैश) खो देंगे।
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
सामान्य तर्क सुविधाएँ
- 8-बिट बस (कंप्यूटिंग)
- 16-बिट एड्रेस बस (64 KB का एड्रेस स्पेस प्रदान करता है)
- 8-बिट अंकगणितीय तर्क इकाई (एएलयू)
- 8-बिट प्रोसेसर रजिस्टर:
- संचायक (कंप्यूटिंग)
- स्टेक सूचक
- इंडेक्स रजिस्टर
- स्थिति रजिस्टर
- 16-बिट प्रोग्राम काउंटर
- 69 निर्देश सेट, 212 opcode द्वारा कार्यान्वित
- 16 एड्रेसिंग मोड, शून्य पृष्ठ एड्रेसिंग सहित
तर्क सुविधाएँ
- वेक्टर पुल (
VPB) आउटपुट इंगित करता है कि कब व्यवधान वेक्टर को संबोधित किया जा रहा है - मेमोरी लॉक (
MLB) आउटपुट अन्य बस मास्टर्स को इंगित करता है जब एक पठन-संशोधित-लेखन निर्देश संसाधित किया जा रहा है - व्यवधान के लिए प्रतीक्षा करें (
WAI) और एसटीओपी (STP) निर्देश बिजली की खपत को कम करते हैं, व्यवधान विलंबता को कम करते हैं और बाहरी घटनाओं के साथ सिंक्रोनाइज़ेशन को सक्षम करते हैं
विद्युत सुविधाएँ
- आपूर्ति वोल्टेज 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. पीएलसीसी और क्यूएफपी पैकेज में पीडीआईपी पैकेज की तुलना में कम पिन-टू-पिन कैपेसिटेंस होता है और मुद्रित सर्किट बोर्ड स्पेस के उपयोग में अधिक किफायती होता है।
डब्ल्यूडीसी ने बताया है कि W65C02S की FPGA प्राप्तियों को सफलतापूर्वक 200 मेगाहर्ट्ज पर संचालित किया गया है।
== एनएमओएस 6502 == के साथ तुलना
बुनियादी वास्तुकला
हालांकि 65C02 को ज्यादातर कम-शक्ति 6502 के रूप में माना जा सकता है, यह मूल में पाए जाने वाले कई बगों को भी ठीक करता है और नए निर्देश जोड़ता है, ऐसे मोड और सुविधाओं को संबोधित करता है जो प्रोग्रामर को छोटे और तेजी से निष्पादित प्रोग्राम लिखने में सहायता कर सकते हैं। यह अनुमान लगाया गया है कि औसत 6502 असेंबली लैंग्वेज प्रोग्राम को 65C02 पर 10 से 15 प्रतिशत छोटा बनाया जा सकता है और प्रदर्शन में समान सुधार देखा जा सकता है, मोटे तौर पर किसी दिए गए कार्य को पूरा करने के लिए कम निर्देशों के उपयोग के माध्यम से मेमोरी एक्सेस से बचा जाता है।[3]
गैर-दस्तावेजी निर्देश हटा दिए गए
मूल 6502 में 56 निर्देश हैं जो अलग-अलग एड्रेसिंग मोड के साथ संयुक्त होने पर संभावित 256 8-बिट ऑपकोड पैटर्न के कुल 151 ऑपकोड उत्पन्न करते हैं। शेष 105 अप्रयुक्त ऑपकोड अपरिभाषित हैं, 3, 7, बी या एफ के साथ कम-ऑर्डर 4-बिट वाले कोड के सेट के साथ पूरी तरह से अप्रयुक्त छोड़ दिया गया है, कम-ऑर्डर 2 वाले कोड में केवल एक ही ऑपकोड है।[8]
6502 पर, इनमें से कुछ बचे हुए कोड वास्तव में संगणना करते हैं। 6502 के निर्देश डिकोडर के काम करने के तरीके के कारण, ओपकोड में कुछ बिट्स को सेट करने से निर्देश प्रसंस्करण के कुछ हिस्सों का कारण बनता है। इनमें से कुछ ऑपकोड तुरंत प्रोसेसर को क्रैश कर देते हैं, जबकि अन्य उपयोगी कार्य करते हैं और यहां तक कि कुछ प्रोग्रामर द्वारा अनौपचारिक असेंबलर स्मृति चिन्ह भी दिए जाते हैं।[9]
65C02 नए ऑपकोड जोड़ता है जो इनमें से कुछ पहले से अप्रमाणित निर्देश स्लॉट का उपयोग करते हैं। उदाहरण के लिए, $FF नए के लिए प्रयोग किया जाता है BBS निर्देश। जो वास्तव में अनुपयोगी रह जाते हैं वे समतुल्य होते हैं NOPएस। उन ऑपकोड का उपयोग करने वाले 6502 प्रोग्राम 65C02 पर काम नहीं करेंगे।[3]
बग फिक्स
मूल 6502 में प्रारम्भ में लॉन्च होने पर कई इरेटा थे। प्रोसेसर के प्रारम्भ ी संस्करणों में नहीं था ROR (दाईं ओर घुमाएं) निर्देश और एमओएस टेक्नोलॉजी मैनुअल ने भी इसका दस्तावेजीकरण नहीं किया। ROR उत्पादन चलाने में बहुत जल्दी लागू किया गया था और प्रोसेसर का उपयोग करने वाली अधिकांश मशीनें इस निर्देश का समर्थन करती हैं।[10]
एक बग जो 6502 के सभी NMOS वेरिएंट में मौजूद है, एड्रेसिंग मोड#इंडेक्स्ड एब्सोल्यूट का उपयोग करते समय जंप निर्देश सम्मिलित करता है। इस एड्रेसिंग मोड में, लक्ष्य का पता JMP निर्देश एक ऑपरेंड होने के बजाय मेमोरी, जंप वेक्टर से प्राप्त किया जाता है JMP निर्देश। उदाहरण के लिए, JMP ($1234) स्मृति स्थानों में मूल्य लाएगा $1234 (कम महत्वपूर्ण बाइट) और $1235 (सबसे महत्वपूर्ण बाइट) और उन मानों को प्रोग्राम काउंटर में लोड करें, जो तब प्रोसेसर को वेक्टर में संग्रहीत पते पर निष्पादन प्रचलित रखने का कारण बनेगा।
बग तब प्रकट होता है जब वेक्टर पता समाप्त होता है $FF, जो स्मृति पृष्ठ की सीमा है। इस विषय में, JMP लक्ष्य पते का सबसे महत्वपूर्ण बाइट प्राप्त करेगा $00 मूल पृष्ठ के बजाय {{Mono|$00}नए पृष्ठ का }। इस तरह JMP ($12FF) पर लक्ष्य पते का कम से कम महत्वपूर्ण बाइट प्राप्त होगा $12FF और लक्षित पते का सबसे महत्वपूर्ण बाइट $1200 इसके बजाय $1300. 65C02 ने इस समस्या को ठीक किया।[3]
एक बग की तुलना में अधिक निरीक्षण, NMOS 6502 के स्थिति रजिस्टर में (डी) ecimal ध्वज की स्थिति एक रीसेट (कंप्यूटिंग) या रुकावट के बाद अपरिभाषित है। इसका मतलब यह है कि अंकगणितीय परिचालनों से संबंधित किसी भी बग से बचने के लिए प्रोग्रामर को ध्वज को ज्ञात मान पर सेट करना होगा। नतीजतन, एक पाता है CLD निर्देश (स्पष्ट दशमलव) लगभग सभी 6502 इंटरप्ट हैंडलर में, साथ ही साथ रीसेट कोड में भी। 65C02 किसी भी बाधा या हार्डवेयर रीसेट के जवाब में स्टैक पर स्थिति रजिस्टर को धक्का देने के बाद स्वचालित रूप से इस ध्वज को साफ़ करता है, इस प्रकार प्रोसेसर को बाइनरी अंकगणितीय मोड में वापस रखता है।[11]
बाइनरी-कोडित दशमलव अंकगणितीय के दौरान, NMOS 6502 अंतर्निहित बाइनरी अंकगणित के परिणाम को प्रतिबिंबित करने के लिए (N) नकारात्मक, o(V) erflow और (Z) ero फ़्लैग्स को अपडेट करेगा, अर्थात, फ़्लैग्स पहले की गणना किए गए परिणाम को दर्शा रहे हैं प्रोसेसर दशमलव सुधार कर रहा है। इसके विपरीत, 65C02 अंकगणित निर्देश के अनुसार अतिरिक्त घड़ी चक्र की कीमत पर, दशमलव अंकगणित के परिणाम के अनुसार इन झंडों को सेट करता है।[11]
पढ़ने-संशोधित-लिखने (आर-एम-डब्ल्यू) निर्देश निष्पादित करते समय, जैसे INC addr, सभी NMOS वैरिएंट Addr पर दोहरा लेखन करेंगे, पहले Addr पर मिले वर्तमान मान को फिर से लिखेंगे और फिर संशोधित मान लिखेंगे। यदि Addr एक हार्डवेयर रजिस्टर है, तो यह व्यवहार कठिन-से-समाधान बग में परिणाम कर सकता है। यह तब हो सकता है जब हार्डवेयर रजिस्टर में मूल्य में परिवर्तन के लिए देख रहा हो और फिर एक क्रिया करता है, इस विषय में, यह दो क्रियाएं करेगा, एक मूल मूल्य के साथ और फिर नए मूल्य के साथ। 65C02 इसके बजाय Addr का दोहरा रीड करता है, उसके बाद सिंगल राइट करता है।
इंडेक्सिंग एड्रेसिंग करते समय, यदि इंडेक्सिंग एक पृष्ठ सीमा को पार कर जाती है, तो सही पते तक पहुँचने से पहले सभी NMOS वेरिएंट एक अमान्य पते से पढ़ेंगे। जैसा कि R-M-W निर्देश के साथ होता है, अनुक्रमण के माध्यम से हार्डवेयर रजिस्टरों तक पहुँचने पर यह व्यवहार समस्याएँ पैदा कर सकता है। 65C02 ने इस समस्या को ठीक किया जब इंडेक्सिंग एक पृष्ठ सीमा को पार कर जाती है तो निर्देश ओपकोड का एक डमी रीड प्रदर्शन करके। हालाँकि, इस फिक्स ने एक नया बग पेश किया[citation needed] जो तब होता है जब आधार पता एक समान पृष्ठ सीमा पर होता है (जिसका अर्थ है कि अनुक्रमण अगले पृष्ठ पर कभी नहीं जाएगा)। नए बग के साथ, अनुक्रमण से पहले आधार पते पर एक डमी रीड किया जाता है, जैसे कि LDA $1200,X एक डमी पढ़ेगा $1200 X के मान को जोड़े जाने से पहले $1200. फिर से, यदि हार्डवेयर रजिस्टर पतों पर अनुक्रमण किया जाता है, तो इस बग का परिणाम अपरिभाषित व्यवहार हो सकता है।
यदि एक NMOS 6502 एक BRK (सॉफ़्टवेयर इंटरप्ट) ऑपकोड ला रहा है उसी समय एक हार्डवेयर व्यवधान होता है, तो BRK को अनदेखा कर दिया जाएगा क्योंकि प्रोसेसर हार्डवेयर इंटरप्ट पर प्रतिक्रिया करता है। 65C02 इंटरप्ट को सर्विस करके और फिर BRK को निष्पादित करके इस स्थिति को सही ढंग से हैंडल करता है।
नया पता मोड
6502 में दो अप्रत्यक्ष एड्रेसिंग मोड हैं जो पृष्ठ शून्य में संग्रहीत 16-बिट पतों के माध्यम से विचलन करते हैं:
- अनुक्रमित अप्रत्यक्ष, उदा.
LDA ($10,X), 16-बिट वेक्टर को पढ़ने से पहले दिए गए पृष्ठ शून्य पते पर X रजिस्टर जोड़ता है। इस उदाहरण में, यदि X 5 है, तो यह स्थान $15/$16 से 16-बिट पता पढ़ता है। यह तब उपयोगी होता है जब पेज ज़ीरो में पॉइंटर्स की एक सरणी होती है। - अप्रत्यक्ष अनुक्रमित
LDA ($10),Yदिए गए पृष्ठ शून्य पते से पढ़े गए 16-बिट वेक्टर में वाई रजिस्टर जोड़ता है। उदाहरण के लिए, यदि Y 5 है, और $10/$11 वेक्टर सम्मिलित है $1000, यह से मान पढ़ता है $1005. यह पॉइंटर-ऑफ़सेट एड्रेसिंग करता है।
इस मॉडल का नकारात्मक पक्ष यह है कि यदि अनुक्रमण की आवश्यकता नहीं है लेकिन पता शून्य पृष्ठ में है, तो सूचकांक रजिस्टरों में से एक को अभी भी शून्य पर सेट किया जाना चाहिए और इन निर्देशों में से एक में उपयोग किया जाना चाहिए। 65C02 ने एक गैर-अनुक्रमित अप्रत्यक्ष एड्रेसिंग मोड जोड़ा LDA ($10) उन सभी निर्देशों के लिए जो अनुक्रमित अप्रत्यक्ष और अप्रत्यक्ष अनुक्रमित मोड का उपयोग करते थे, सूचकांक रजिस्टरों को मुक्त करते थे।[12]
6502 का JMP निर्देश में एक अनूठा (6502 निर्देशों के बीच) एड्रेसिंग मोड था जिसे पूर्ण अप्रत्यक्ष के रूप में जाना जाता है जो किसी दिए गए मेमोरी पते से 16-बिट मान पढ़ता है और फिर उस 16-बिट मान में पते पर कूद जाता है। उदाहरण के लिए, यदि स्मृति स्थान $A000 के पास $34 और $A001 के पास $12 है, JMP ($A000) उन दो बाइट्स को पढ़ेगा, मूल्य का निर्माण करेगा $1234, और फिर उस स्थान पर जाएं।
अप्रत्यक्ष संबोधन के लिए एक सामान्य उपयोग शाखा तालिकाओं का निर्माण करना है, सबरूटीन्स के लिए प्रवेश बिंदुओं की एक सूची जिसे एक इंडेक्स का उपयोग करके एक्सेस किया जा सकता है। उदाहरण के लिए, एक डिवाइस ड्राइवर प्रवेश बिंदुओं को सूचीबद्ध कर सकता है OPEN, CLOSE, READ, आदि एक टेबल में $A000. READ तीसरी प्रविष्टि है, शून्य अनुक्रमित है, और प्रत्येक पते को कॉल करने के लिए 16-बिट्स की आवश्यकता होती है READ कोई कुछ इसी तरह का उपयोग करेगा JMP ($A004). यदि ड्राइवर अपडेट किया गया है और सबरूटीन कोड मेमोरी में चलता है, तो कोई भी मौजूदा कोड तब तक काम करेगा जब तक पॉइंटर्स की तालिका बनी रहती है $A000.
65C02 ने नया अनुक्रमित पूर्ण अप्रत्यक्ष मोड जोड़ा जिसने शाखा तालिकाओं के उपयोग को आसान बना दिया। इस मोड ने एक्स रजिस्टर के मूल्य को पूर्ण पते में जोड़ा और परिणामी स्थान से 16-बिट पता लिया। उदाहरण के लिए, एक्सेस करने के लिए READ ऊपर दी गई तालिका से कार्य करता है, तब कोई X में 4 संग्रहीत करेगा JMP ($A000,X). पहुँच की यह शैली शाखा तालिकाओं तक पहुँच को सरल बनाती है क्योंकि एकल आधार पते का उपयोग 8-बिट ऑफ़सेट के संयोजन में किया जाता है।[12]अनुक्रमित अप्रत्यक्ष मोड का उपयोग करके NMOS संस्करण में इसे प्राप्त किया जा सकता है, लेकिन केवल तभी जब तालिका शून्य पृष्ठ में हो, एक सीमित संसाधन। इन्हें शून्य पृष्ठ के बाहर बनाने की अनुमति देने से न केवल इस संसाधन की मांग कम हुई, बल्कि रोम में तालिकाओं के निर्माण की भी अनुमति मिली।
नए और संशोधित निर्देश
नए एड्रेसिंग मोड के अतिरिक्त , बेस मॉडल 65C02 ने नए निर्देशों का एक सेट भी जोड़ा।[13]
INCऔरDECबिना किसी पैरामीटर के अब संचायक को बढ़ाएँ या घटाएँ। मूल निर्देश सेट में यह एक अजीब निरीक्षण था, जिसमें केवल सम्मिलित थाINX/DEX,INY/DEYऔरINC addr/DEC addr. कुछ असेंबलर वैकल्पिक रूपों का उपयोग करते हैंINA/DEAयाINC A/DEC A.[13]STZ addr, Addr में शून्य स्टोर करें। की आवश्यकता को प्रतिस्थापित करता हैLDA 0;STA addrऔर संचायक के मान को बदलने की आवश्यकता नहीं है। जैसा कि अधिकांश कार्यक्रमों में यह कार्य सामान्य है, का उपयोग करनाSTZकोड आकार को कम कर सकते हैं, दोनों को समाप्त करकेLDAके साथ-साथ संचायक के मूल्य को बचाने के लिए आवश्यक कोई भी कोड, आमतौर पर aPHAPLAजोड़ा।[14]PHX,PLX,PHY,PLY, X और Y रजिस्टरों को स्टैक से/में धकेलें और खींचें। पहले, केवल संचायक और स्थिति रजिस्टर में पुश और पुल निर्देश होते थे। X और Y को पहले संचायक में ले जाकर ही ढेर किया जा सकता हैTXAयाTYAजिससे संचायक की सामग्री बदली जाती है, फिर उपयोग किया जाता हैPHA.[15]BRA, शाखा हमेशा। ए की तरह काम करता हैJMPलेकिन अन्य शाखाओं की तरह 1-बाइट सापेक्ष पते का उपयोग करता है, एक बाइट बचाता है। गति अक्सर 3 चक्र निरपेक्ष के समान होती हैJMPजब तक कि एक पृष्ठ पार नहीं किया जाता है जो इसे बना देगाBRAसंस्करण 1 चक्र लंबा (4 चक्र)।[16] जैसा कि पता सापेक्ष है, यह पुनर्निधारणीय कोड लिखते समय भी उपयोगी होता है,[14] स्मृति प्रबंधन इकाइयों से पहले युग में एक सामान्य कार्य।
बिट हेरफेर निर्देश
डब्ल्यूडीसी और रॉकवेल दोनों ने 65C02 में बिट परीक्षण और हेरफेर कार्यों में सुधार का योगदान दिया। डब्ल्यूडीसी ने BIT निर्देश में नए एड्रेसिंग मोड जोड़े जो 6502 में मौजूद थे, साथ ही बिट फ़ील्ड के सुविधाजनक हेरफेर के लिए दो नए निर्देश, डिवाइस ड्राइवरों में एक सामान्य गतिविधि।
BIT 65C02 में तत्काल मोड जोड़ता है, एक्स द्वारा अनुक्रमित शून्य पृष्ठ और एक्स एड्रेसिंग द्वारा पूर्ण अनुक्रमित।[13] तत्काल मोड एड्रेसिंग विशेष रूप से सुविधाजनक है क्योंकि यह पूरी तरह से गैर-विनाशकारी है। उदाहरण के लिए:
LDA $1234BIT #%00010000
के स्थान पर इस्तेमाल किया जा सकता है:
LDA $1234AND #%00010000
AND}NDऑपरेशन संचायक में मान को बदल देता है इसलिए $1234 से लोड किया गया मूल मान खो जाता है। का उपयोग करते हुएBITसंचायक में मान को अपरिवर्तित छोड़ देता है इसलिए बाद का कोड मूल मान के विरुद्ध अतिरिक्त परीक्षण कर सकता है और स्मृति से मान को फिर से लोड करने से बच सकता है।
के संवर्द्धन के अतिरिक्त BIT निर्देश डब्ल्यूडीसी ने बिट फ़ील्ड्स को आसानी से हेरफेर करने के लिए डिज़ाइन किए गए दो निर्देश जोड़े:
TSB addrऔरTRB addrटेस्ट और सेट बिट्स और टेस्ट और रीसेट बिट्स।
- संचायक में एक मुखौटा (
.A) Addr पर मेमोरी के साथ तार्किक रूप से ANDed है कौन सा स्थान शून्य पृष्ठ या निरपेक्ष हो सकता है। स्थिति रजिस्टर में Z ध्वज तार्किक के परिणाम के अनुसार वातानुकूलित है और—कोई अन्य स्थिति रजिस्टर ध्वज प्रभावित नहीं होता है। इसके अतिरिक्त Addr में बिट्स को मास्क के अनुसार सेट (TSB) या क्लियर (TRB) किया जाता है.A. संक्षेप में TSB तार्किक प्रदर्शन करता हैORतार्किक के बादANDऔर तार्किक परिणाम संग्रहीत करता हैORAddr पर जबकि TRB तार्किक परिणामों को संग्रहीत करता हैANDAddr पर। दोनों ही स्थितियों में स्थिति रजिस्टर में Z फ़्लैग का परिणाम दर्शाता है.A AND addrAddr की सामग्री बदलने से पहले। टीआरबी और टीएसबी इस प्रकार निर्देशों के अनुक्रम को प्रतिस्थापित करते हैं, अनिवार्य रूप से संयोजन करते हैंBITकम्प्यूटेशनल परिवर्तनों को बचाने के लिए अतिरिक्त चरणों के साथ निर्देश लेकिन एक तरह से जो प्रभावित मूल्य की स्थिति को बदलने से पहले रिपोर्ट करता है।[3]
रॉकवेल के परिवर्तनों ने किसी भी बिट को सीधे सेट करने और परीक्षण करने के लिए और परीक्षण, स्पष्ट और शाखा को एक ही ऑपकोड में संयोजित करने के लिए अधिक बिट हेरफेर निर्देश जोड़े। रॉकवेल के R65C00 परिवार में प्रारम्भ से ही नए निर्देश उपलब्ध थे[17] लेकिन मूल 65C02 विनिर्देश का हिस्सा नहीं था और डब्ल्यूडीसी या इसके अन्य लाइसेंसधारियों द्वारा बनाए गए संस्करणों में नहीं पाया गया। इन्हें बाद में बेसलाइन डिज़ाइन में वापस कॉपी किया गया और बाद के डब्ल्यूडीसी संस्करणों में उपलब्ध थे।
रॉकवेल-विशिष्ट निर्देश हैं:
एसएमबीbit# zp/आरएमबीbit# zp. जीरो पेज बाइट zp में सेट या रीसेट (क्लियर) बिट नंबर बिट#।
- आरएमबी और एसएमबी का उपयोग बिट फ़ील्ड में अलग-अलग बिट्स (आरएमबी) या सेट (एसएमबी) को साफ़ करने के लिए किया जाता है, प्रत्येक तीन निर्देशों के अनुक्रम को प्रतिस्थापित करता है। चूंकि आरएमबी और एसएमबी केवल जीरो पेज एड्रेसिंग हैं, ये निर्देश उपयोगिता में सीमित हैं और मुख्य रूप से उन प्रणालियों में महत्वपूर्ण हैं जिनमें डिवाइस रजिस्टर शून्य पेज में मौजूद हैं। निर्देश का बिट # घटक अक्सर स्मरक के भाग के रूप में लिखा जाता है जैसे
एसएमबी1 $12जो बिट 1 को शून्य-पृष्ठ पते $12 में सेट करता है। कुछ असेंबलर बिट # को निर्देश के ऑपरेंड के हिस्से के रूप में मानते हैं, उदाहरण के लिएएसएमबी 1,$12जिसके पास इसे एक चर नाम या परिकलित संख्या द्वारा प्रतिस्थापित करने की अनुमति देने का लाभ है।[14]
बीबीआर bit#,offset,addrऔरBBS bit#,offset,addrबिट सेट/रीसेट पर शाखा।
- आरएमबी और एसएमबी के समान शून्य-पेज एड्रेसिंग और सीमाएं लेकिन चयनित बिट स्पष्ट (बीबीआर) या सेट (बीबीएस) होने पर शाखाओं को जोड़ने के लिए। जैसा कि आरएमबी और एसएमबी के साथ होता है बीबीआर और बीबीएस तीन निर्देशों के अनुक्रम को प्रतिस्थापित करते हैं।[14]
कम-शक्ति मोड
उपरोक्त नए आदेशों के अतिरिक्त डब्ल्यूडीसी ने भी जोड़ाSTPऔरWAIकम-शक्ति मोड का समर्थन करने के निर्देश।
STPप्रोसेसर को STop करें हार्डवेयर रीसेट प्रचलित होने तक सभी प्रोसेसिंग को रोक दें। इसका उपयोग किसी सिस्टम को सुलाने के लिए किया जा सकता है और फिर इसे रीसेट के साथ तेजी से जगाया जा सकता है। प्राय: इसके लिए मुख्य मेमोरी को बनाए रखने के लिए कुछ बाहरी सिस्टम की आवश्यकता होती है और इसका व्यापक रूप से उपयोग नहीं किया जाता था।
WAI का एक समान प्रभाव था, लो-पावर मोड में प्रवेश करना लेकिन इस निर्देश ने प्रोसेसर को एक रुकावट के स्वागत पर फिर से जगा दिया। पहले एक बाधा को संभालने में प्राय: एक लूप चलाने के लिए सम्मिलित होता था ताकि यह जांचा जा सके कि क्या कोई रुकावट प्राप्त हुई है जिसे कभी-कभी व्यस्त प्रतीक्षा के रूप में जाना जाता है जब कोई प्राप्त होता है तो प्रकार की जांच करना और फिर प्रसंस्करण कोड पर कूदना। इसका मतलब यह था कि प्रोसेसर पूरी प्रक्रिया के दौरान चल रहा था तब भी जब कोई रुकावट नहीं आ रही थी।
इसके विपरीत 65C02 में इंटरप्ट कोड को लिख कर लिखा जा सकता है WAIके तुरंत बाद a JSR या JMP हैंडलर को। जब WAI का सामना करना पड़ा प्रोसेसिंग बंद हो गई और प्रोसेसर लो-पावर मोड में चला गया। जब व्यवधान प्राप्त हुआ तो उसने तुरंत प्रक्रिया की JSRऔर अनुरोध को संभाला।
प्रदर्शन में कुछ सुधार करने का यह अतिरिक्त लाभ था। कताई के विषय में रुकावट लूप के निर्देशों में से एक के बीच में आ सकती है और हैंडलर से लौटने के बाद इसे फिर से प्रारम्भ करने की अनुमति देने के लिए प्रोसेसर अपने स्थान को बचाने के लिए एक चक्र खर्च करता है। साथ WAIप्रोसेसर एक ज्ञात स्थान पर कम-शक्ति स्थिति में प्रवेश करता है जहां सभी निर्देशों को पूरा करने की गारंटी दी जाती है इसलिए जब व्यवधान आता है तो यह संभवतः एक निर्देश को बाधित नहीं कर सकता है और प्रोसेसर बिना चक्र बचत स्थिति खर्च किए सुरक्षित रूप से प्रचलित रह सकता है।
65SC02
65SC02 बिना किसी निर्देश के डब्ल्यूडीसी 65C02 का एक प्रकार है।[18]== 65C02 == के उल्लेखनीय उपयोग
एप्पल कंप्यूटर
- एप्पल कंप्यूटर द्वारा [[[[एप्पल II]]c]] पोर्टेबल (NCR 1.023 MHz)
- एप्पल कंप्यूटर द्वारा एप्पल IIe (1.023 मेगाहर्ट्ज)
- बीबीसी मास्टर होम/एजुकेशनल कंप्यूटर, एकोर्न कम्प्यूटर्स लिमिटेड द्वारा (2 मेगाहर्ट्ज 65SC12 प्लस वैकल्पिक 4 मेगाहर्ट्ज 65C102 सेकंड प्रोसेसर)
- ब्रील कम्प्यूटर्स द्वारा प्रतिकृति 1, एप्पल I हॉबीस्ट कंप्यूटर (1 MHz) की प्रतिकृति
- एप्पल II की लेजर 128 श्रृंखला क्लोन
- ब्रील कंप्यूटिंग द्वारा KIM-1 MOS/CBM KIM-1 की आधुनिक प्रतिकृति
वीडियो गेम कंसोल
- लिंक्स नहीं हैंडहेल्ड (65SC02 @ ~4 मेगाहर्ट्ज)
- पीसी इंजन उर्फ TurboGrafx-16 (हडसन सॉफ्ट HuC6280 @ 7.16 मेगाहर्ट्ज)[19]
- टाइमटॉप द्वारा गेमकिंग हैंडहेल्ड (6 मेगाहर्ट्ज)
- पर्यवेक्षण के बारे में हैंडहेल्ड (65SC02 @ 4 मेगाहर्ट्ज)
अन्य उत्पाद
- कमोडोर 64 होम कंप्यूटर के लिए TurboMaster एक्सीलरेटर कार्ट्रिज (65C02 @ 4.09 मेगाहर्ट्ज)
- एकोर्न बीबीसी माइक्रो होम कंप्यूटर के लिए ट्यूब से जुड़ा दूसरा प्रोसेसर (65C02 @ 3 मेगाहर्ट्ज)
- कई समर्पित शतरंज कंप्यूटर यानी: मेफिस्टो एमएमवी, नोवाग सुपर कांस्टेलेशन, फिडेलिटी एलीट और कई अन्य (4-20 मेगाहर्ट्ज
यह भी देखें
- 65xx प्रोसेसर में रुकावट
- CSG 65CE02, 65C02 का एक और उन्नत संस्करण
टिप्पणियाँ
- ↑ Some sources, including prior versions of this article, claim 1978. This was the date that Bill Mensch, the primary designer, formed WDC. In a 1984 article, Mensch specifically states 1981 as the start date.
- ↑ Wagner's June 1983 article mentions it being available for “several months”. Given typical publication delays at that point this may date it to as early as late 1982. Another source points to 1980, see talk page.
संदर्भ
उद्धरण
- ↑ "सॉफ्टॉक". सॉफ्टॉकPublishing. Vol. 3, no. 10. June 1983. p. 199. Retrieved 24 May 2022.
- ↑ Koehn, Philipp (2 March 2018). "6502 Stack" (PDF).
- ↑ 3.0 3.1 3.2 3.3 3.4 3.5 Wagner 1983, p. 204.
- ↑ Taylor & Watford 1984, p. 174.
- ↑ "6502 CPU Projects in HDL (for FPGA)".
- ↑ "W65C02DB Developer Board".
- ↑ "W65C02S-14".
- ↑ Parker, Neil. "The 6502/65C02/65C816 Instruction Set Decoded". Neil Parker's Apple II page.
- ↑ Vardy, Adam (22 August 1995). "Extra Instructions Of The 65XX Series CPU".
- ↑ File:MCS650x Instruction Set.jpg
- ↑ 11.0 11.1 "Differences between NMOS 6502 and CMOS 65c02". Retrieved 27 February 2018.
N, V, and Z flags were incorrect after decimal operation (but C was ok).
- ↑ 12.0 12.1 Clark, Bruce. "65C02 Opcodes".
- ↑ 13.0 13.1 13.2 Wagner 1983, p. 200.
- ↑ 14.0 14.1 14.2 14.3 Wagner 1983, p. 203.
- ↑ Wagner 1983, pp. 200–201.
- ↑ "W65C02S Datasheet" (PDF).
- ↑ Wagner 1983, p. 199.
- ↑ Zaks, Rodnay (1983). Programming the 6502. Sybex. p. 348. ISBN 0895881357.
- ↑ "HuC6280 - Archaic Pixels".
ग्रन्थसूची
- Wagner, Robert (June 1983). "Assembly Lines". Softtalk. pp. 199–204.
- Taylor, Simon; Watford, Bob (July 1984). "6502 revival". Personal Computer World. pp. 174–175.
अग्रिम पठन
- 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 एप्पल II page
