अटारी (
गधा काँग और I ) के लिए
प्रोग्रामिंग असेंबली
गेम्स पर हाल ही में एक स्लैशडॉट लेख ने
मुझे मेरी युवावस्था और हमारे पास मौजूद कंप्यूटरों में लिखे गए कोडांतरक अनुप्रयोगों की याद दिला दी।
सबसे पहले मैं
डीईसी पीडीपी -8 पर अनुभव प्राप्त कर रहा था, लेकिन
सीपी / एम दिखाई देने पर चर्चा शुरू
हुई । सीपी / एम मूल रूप से एक "व्यापार ऑपरेटिंग सिस्टम" था, लेकिन यह एक ऐसी प्रणाली भी थी जिसे आप घर पर रख सकते थे - एक युवा नवोदित गीक के लिए एक गंभीर बात।
फिर मैंने
टाटूंग के लिए काम किया। उन्होंने कंप्यूटर इकट्ठे किए, और इसलिए मैंने बहुत महंगी चीज के साथ मज़े किए: दो पाँच इंच की ड्राइव और वह सब! मैंने मुख्य रूप से ERSO BIOS डिबगिंग पर काम किया। यह कंप्यूटर
टाटुंग आइंस्टीन के बैठने के लिए हुआ, जिसने CP / M के एक संगत लेकिन अधिक परिष्कृत संस्करण का उपयोग किया, जिसे Xtal DOS कहा जाता है।

थोड़ी देर के लिए, आइंस्टीन वास्तव में एक अद्भुत मशीन थी (जब तक कि एमएस-डॉस वाले कंप्यूटरों ने अपना टोल नहीं लिया)। इस पर सभी तरह के CP / M प्रोग्राम जैसे VisiCalc, WordStar इत्यादि लॉन्च किए गए।
और इसमें अंतर्निहित ध्वनि और ग्राफिक्स (रंग और स्प्रिट!) भी थे, ताकि खिलौनों को भोगना संभव हो। और सभी 499 पाउंड (याद करें, यह 1984 का वर्ष था)। उस समय तक, बहुत कुछ!
पीट उपयोगिताएँ
मैंने टांगुंग के लिए आइंस्टीन पत्रिकाओं में लेख लिखे (वे अभी भी कहीं-कहीं पड़े हुए हैं)। और उन्होंने व्यावसायिक कार्यक्रम भी लिखे। सबसे सफल सॉफ्टवेयर पैकेज था, जिसे मैंने बहुत रचनात्मक रूप से "पीट यूटिलिटीज" (1986) कहा था।
उपयोगिताओं को Z80 असेंबलर में लिखा गया था (तब मुझे C के बारे में पता नहीं था) और इसमें undelete, एक हेक्स एडिटर, फंक्शन कीज़ (निवासी!), प्रोग्राम ऑटोलैडर, प्रिंटर कंट्रोलर, टाइपराइटर एम्यूलेटर (हाँ, आई) के लिए प्रोग्राम शामिल था। शब्द का इस्तेमाल किया
'टाइपराइटर') और अन्य सामान का एक गुच्छा। कभी-कभी मुझे लगता है कि अगर मैंने इसे MS-DOS के तहत पोर्ट कर लिया, तो मैं
पीटर नॉर्टन बन सकता हूं (मुझे लगता है कि उसने
नॉर्टन की यूटिलिटीज से बहुत पैसा कमाया, लेकिन मैं ऐसा नहीं करता)! मुझे हाल ही में पीट यूटिलिटीज के लिए एक अनुबंध मिला: एक प्रति के लिए मुझे पूरा पाउंड मिला।
पूर्णता के लिए, यह बताने योग्य है कि पीट उपयोगिताएँ कैसे लिखी गईं। यह काफी दिलचस्प है और समय की भावना को भी बताता है।
मैंने उन्हें सीपी / एम के साथ एक वाणिज्यिक मशीन पर लिखा था - टाटुंग का एक और वंश (टीपीसी -2000 - तस्वीर में सबसे सही कंप्यूटर)।

तस्वीर में बाईं ओर टैटुंग आइंस्टीन है।
टीपीसी -2000 आइंस्टीन की तुलना में तेज़ था और इसमें अधिक मेमोरी थी, इसलिए मेरे मैक्रो असेंबलर ने इस पर अधिक कुशलता से काम किया। इसके अलावा, एक "साफ" सीपी / एम था, इसलिए मुझे यकीन है कि विकास के दौरान मैं आइंस्टीन के लिए विशिष्ट किसी भी सुविधाओं का उपयोग नहीं करूंगा। TPC-2000 पर कार्यक्रम का निर्माण करने के बाद, मैंने विशेष Kermit कार्यक्रम का उपयोग करके इसे आइंस्टीन के पास भेज दिया। वहाँ मैं इसका परीक्षण कर सकता था और इसे ठीक से डिबग कर सकता था! बस उस समय का पूरा कोड / निर्माण / परीक्षण चक्र!
GO.COM
उपयोगकर्ताओं (टीपीसी -२००० और आइंस्टीन दोनों) ने अक्सर शिकायत की थी कि उन्हें एक साधारण डिस्क ऑपरेशन करने के लिए वर्तमान एप्लिकेशन (VisiCalc, WordStar, इत्यादि) को बंद करना पड़ा था, उदाहरण के लिए, एन फ्लॉपी डिस्क में से किसी एक पर फ़ाइल खोजने के लिए। यह वास्तव में कष्टप्रद था। कल्पना करें कि आपके पास एक लोकप्रिय
WordStar वर्ड प्रोसेसर चल रहा है और आप किसी मौजूदा फ़ाइल को संपादित करना चाहते हैं। मान लीजिए कि आपको पता नहीं है कि यह एक दर्जन फ्लॉपियों में से किस पर स्थित है, यानी इसे खोजने के लिए आपको अंतर्निहित CP / M - DIR कमांड को निष्पादित करने की आवश्यकता है। लेकिन इसके लिए आपको सबसे पहले WordStar से बाहर निकलना होगा। बेशक, जब आप फ़ाइल ढूंढते हैं, तो आपको फ़्लॉपी डिस्क से वर्डस्टार को फिर से शुरू करना होगा, जो अपने आप में भयानक है, ड्राइव की गति को कछुए के रूप में देखते हुए ("चंक-चंक-चंक", जो याद रखता है - समझ जाएगा)!
इस समस्या को हल करने के लिए, मैं GO.COM के साथ आया - शायद अब तक का सबसे सफल और असीम रूप से लाभदायक कार्यक्रम।
जब सीपी / एम के लिए एक कार्यक्रम को मेमोरी में लोड किया जाता है, तो यह हमेशा एक ही पते से शुरू होता है, 0100h तथाकथित 'क्षणिक कार्यक्रम क्षेत्र' (TPA) की शुरुआत है। NIR CP / M प्रोग्राम, जैसे DIR, अन्यत्र डाउनलोड किए जाते हैं।
मुझे एहसास हुआ कि चूंकि वर्डस्टार अभी भी मेमोरी में था (हालांकि उपयोगकर्ता ने इसे छोड़ दिया था, टीपीए क्षेत्र अपरिवर्तित रहा), यह किसी भी तरह से फ्लॉपी डिस्क से रिबूट करने के बजाय टीपीए से सीधे पुनरारंभ करने के लिए बहुत उपयोगी होगा। वास्तव में, लोड क्यों है जो पहले से ही मेमोरी में है? DIR या कुछ और निष्पादित करने के बाद WordStar को पुनः आरंभ करने के लिए, आपको बस 0100h पर स्थित कोड निष्पादित करना होगा। लेकिन यह कैसे करें? आप एक नियमित कार्यक्रम नहीं लिख सकते हैं, कहते हैं, निर्देश "0100h पर जाएं", क्योंकि यह कार्यक्रम 0100h पते से TPA में लोड हो जाएगा और मिटा देगा।
तब GO.COM प्रकट हुई।
GO.COM में एक भी निर्देश नहीं था, यह पूरी तरह से खाली था। हालाँकि, CP / M के दृष्टिकोण से खाली है, फिर भी यह एक पूर्ण विकसित कार्यक्रम था, इसलिए CP / M लोडर (सिस्टम का वह भाग जो डिस्क से प्रोग्राम को पढ़ता है और इसे TPA में डालता है) ने इसे शांति से लोड किया।
यह हमारी मदद कैसे कर सकता है? इस परिदृश्य पर विचार करें:
- उपयोगकर्ता वर्डस्टार से लॉग आउट करता है।
- उपयोगकर्ता डीआईआर शुरू करता है और अपने दस्तावेज़ को पाता है।
- उपयोगकर्ता ने GO.COM लॉन्च किया।
- बूटलोडर डिस्क से 0 बाइट्स डाउनलोड करता है, उन्हें टीपीए में 0100h पर रखता है, और
तो बस लोड शुरू करने के लिए 0100h पर जाता है
कार्यक्रम (GO.COM)। - नतीजतन, यह तुरंत उस समय को फिर से चालू करता है जब उपयोगकर्ता उस समय टीपीए में था
पिछली बार जब मैं डॉस (हमारे मामले में, वर्डस्टार) गया था!
तो GO.COM, जिसमें कोड के 0 बाइट्स शामिल थे और प्रति कॉपी 5 पाउंड में बेची गई, दुनिया में सबसे अधिक लाभदायक निकला - किसी भी अन्य कार्यक्रम ने प्रति बाइट बहुत कम पाउंड लाया!
क्या वह असीम रूप से लाभदायक थी? ठीक है, अगर हम इस बारे में बात करते हैं कि मैंने इस पर कितना कमाया, तो, निश्चित रूप से, नहीं - मैं असीम रूप से समृद्ध नहीं हूं। हालाँकि, GO.COM वास्तव में "पैसे से बाहर कुछ भी नहीं" पाने के उदाहरण के रूप में काम कर सकता है। उदाहरण के लिए, प्रति बाइट की कीमत निम्नानुसार गणना की जा सकती है:

मुझे GO.COM के बारे में मजेदार फोन कॉल और पत्र याद हैं (तब कोई ईमेल नहीं थे)। कुछ ग्राहक, जो स्पष्ट रूप से "कंप्यूटर के जानकार" थे, ने तातुंग को फोन किया और मुझे यह पता लगाने के लिए कहा कि मैं कार्यक्रम का आकार कैसे और क्यों छिपा रहा हूं (आखिरकार, डीआईआर ने दिखाया कि इसमें 0 बाइट्स थे)। जब मैंने उन्हें बताया कि इस कार्यक्रम में वास्तव में 0 बाइट्स हैं, तो कुछ लोग नाराज होने लगे: "तुम्हारी हिम्मत कैसे हुई कि कुछ भी न पाऊं?"
यह अफ़सोस की बात है कि सीपी / एम शेल में अधिक अंतर्निहित कमांड शामिल नहीं थे। बहुत कम उपयोगी डिस्क कमांड थे:
- ERA निर्दिष्ट फ़ाइल को हटा देता है।
- निर्देशिका में डीआईआर फाइलों को सूचीबद्ध करता है।
- REN निर्दिष्ट फ़ाइल का नाम बदल देता है।
- SAVE मेमोरी की सामग्री को एक फाइल में सेव करता है।
- TYPE फ़ाइल की सामग्री को प्रदर्शित करता है।
बाद में मैंने GO.COM को MS-DOS के पुराने संस्करणों में पोर्ट किया - जब तक .EXE प्रारूप दिखाई नहीं दिया। और वहाँ वह भी महान काम किया!
अनुवादक से: अनुवाद के संपादन के लिए
केवी का धन्यवाद।