मैं बुनियादी कोड चलाना चाहूंगा, जैसे आप लिनक्स में पुराने कंप्यूटरों पर करते थे। (मैं एक बुनियादी अवरोधक की तलाश कर रहा हूं जो मूल रूप से ओएस फ़ंक्शन चला सकता है)
आपके पास कौन से विकल्प हैं? (अधिमानतः डेबियन-आधारित और आर्क-आधारित के लिए)
मैं बुनियादी कोड चलाना चाहूंगा, जैसे आप लिनक्स में पुराने कंप्यूटरों पर करते थे। (मैं एक बुनियादी अवरोधक की तलाश कर रहा हूं जो मूल रूप से ओएस फ़ंक्शन चला सकता है)
आपके पास कौन से विकल्प हैं? (अधिमानतः डेबियन-आधारित और आर्क-आधारित के लिए)
जवाबों:
यदि आप लिनक्स में मूल रूप से चलाना चाहते हैं तो आपके पास चुनने के लिए डेबियन में कई पैकेज हैं:
ब्रांडी, BASIC की बोली के लिए एक इंटरप्रेटर है, जो कि Acorn Computers ने अपने डेस्कटॉप कंप्यूटरों की रेंज के साथ दिया है जो ARM प्रोसेसर जैसे कि आर्किमिडीज़ और Risc PC का उपयोग करते हैं, और अभी भी इन और कंपेटिबल्स पर उपयोग में हैं।
BASIC V is a much extended version of BBC BASIC.यह 1980 के दशक के दौरान बनाए गए 6502-आधारित बीबीसी माइक्रो पर आधारित BASIC था।
bwBASIC को विभिन्न प्रकार के BASIC दुभाषियों पर उपलब्ध सुविधाओं, आदेशों और कार्यों का अनुकरण करने के लिए कॉन्फ़िगर किया जा सकता है;
bwBASIC एक ऐसी सुविधा को लागू करता है जो पिछले BASIC दुभाषियों में उपलब्ध नहीं है: bwBASIC प्रॉम्प्ट पर एक शेल कमांड को अंतःक्रियात्मक रूप से दर्ज किया जा सकता है, और दुभाषिया इसे कमांड शेल के तहत निष्पादित करेगा।
उदाहरण के लिए, कमांड "dir * .bas" को bwBASIC (DOS के तहत, या "ls -l * .bas" UNIX के तहत) में दर्ज किया जा सकता है और इसे ऑपरेटिंग सिस्टम कमांड लाइन से निष्पादित किया जाएगा।शेल कमांड को एक bwBASIC प्रोग्राम में क्रमांकित लाइनों पर भी दिया जा सकता है, ताकि bwBASIC को शेल प्रोग्रामिंग भाषा के रूप में उपयोग किया जा सके। bwBASIC का RMDIR, CHDIR, MKDIR, NAME, KILL, ENVIRON और ENVIRON $ () कमांड और फ़ंक्शंस आगे के शेल-प्रोसेसिंग क्षमताओं की पेशकश करते हैं।
उन्हें स्थापित करने के लिए:
sudo apt-get install brandy bwbasic
अपने व्यक्तिगत अनुभव के लिए, मैं पसंद bwbasicकरता हूं क्योंकि यह एक पाठ कमांड लाइन या शेल स्क्रिप्ट में BASIC की शक्ति रखने की अनुमति देता है।
एक विकल्प के रूप में, आपके पास पुराने के कंप्यूटरों के कई इम्यूलेशन पैकेज हैं, जो स्पष्ट रूप से BASIC सिंटैक्स के अलावा कुछ पुराने कंप्यूटर के सभी वातावरण को लागू करते हैं जिन्हें आप relive करना चाहते हैं।
दिलचस्प रूप से पर्याप्त है, bwbasicसिद्धांत रूप में यूनिक्स जैसे स्वचालित भाषा के उपयोग से स्क्रिप्ट के निर्माण में स्वचालित संचालन की अनुमति दे सकता है। हालांकि यह कोशिश कभी नहीं की।
मेरा डेबियन सिस्टम, और शायद सबसे अन्य लिनक्स वितरण, पैकेज प्रबंधक के माध्यम से सीधे कई विकल्प उपलब्ध हैं। उनमें से:
bwbasic:बायवॉटर बेसिक इंटरप्रेटर (bwBASIC) मिनिमल बेसिक (X3.60-1978) के लिए ANSI मानक के एक बड़े सुपरसेट को लागू करता है और C. में पूर्ण BASIC (X3.113-1987) के लिए ANSI मानक का एक महत्वपूर्ण उप-समूह भी प्रदान करता है। बुनियादी सुविधाओं के विस्तार के रूप में प्रोग्रामिंग सुविधाएं। bwBASIC जितना संभव हो उतना पोर्टेबल होना चाहता है।
sdlbasic:एसडीएल लाइब्रेरी की शक्ति का उपयोग करके गेम बनाने के लिए sdlBasic एक छोटा, कुशल और मल्टीप्लास्टिक बेसिक दुभाषिया है। यह पुराने और शानदार AMOS से प्रेरित था।
चूंकि हर कोई आपको "पुराने कंप्यूटरों" से "प्री-आईबीएम पीसी" का मतलब मान रहा है, इसलिए मैं दूसरे रास्ते पर जा रहा हूं और एक जवाब पेश कर रहा हूं जो "पुराने कंप्यूटरों" की व्याख्या करने का मतलब है "विंडोज़ 9x से पहले आईबीएम-कॉम्पिटिबल्स"।
यदि, आपका मतलब है कि MS-DOS के संस्करण चलाने वाले कंप्यूटर शामिल हैं QBASIC.EXE, तो आपके पास तीन विकल्प हैं, इस पर निर्भर करता है कि आप उन्हें "लिनक्स" पर चलाने के लिए कितनी सख्ती से परिभाषित करते हैं:
यदि आपको अभी भी QBASIC.EXEचारों ओर से किक करने की एक प्रति मिली है , तो आप इसे वर्चुअलाइज्ड DOS वातावरण में चलाने के लिए DOSBox या DOSEMU का उपयोग कर सकते हैं । (दोनों डेबियन के रिपॉजिटरी में उपलब्ध हैं और सेट अप करने के लिए सरल हैं। बस एक फ़ोल्डर सेट करें जिसे माउंट किया जाना है C:, इसमें ड्रॉप करें QBASIC.EXE, और आप जाने के लिए अच्छे हैं।)
यह आपको पुराने स्रोत कोड के साथ पूर्ण अनुकूलता देगा, लेकिन होस्ट ओएस के साथ कोई एकीकरण " C:डिस्क छवि के बजाय " वास्तव में एक फ़ोल्डर है।
हालांकि, मुझे स्पष्ट करना चाहिए कि दोनों के बीच व्यापार बंद है। DOSEMU जो भी टर्मिनल आप चाहते हैं में चलेगा, लेकिन कुछ QBasic सामान (जैसे विशेष ग्राफिक्स मोड के लिए) इस्तेमाल किए गए फैंसी निम्न-स्तरीय ट्रिक्स का समर्थन नहीं करेगा। समर्थन करने का एकमात्र तरीका जो कि DOSBox की तरह एक पूर्ण एमुलेटर है ... लेकिन DOSBox आपके टर्मिनल का उपयोग करने के बजाय अपनी विंडो पॉप अप करेगा।
FreeBASIC में एक qbबोली / मोड है जिसका उद्देश्य QuickBASIC के एक बड़े उपसमूह के साथ पूर्ण संगतता के लिए है । (असमर्थित सामान ज्यादातर निम्न-स्तरीय सामान है जो कि इस तथ्य से संबंधित है कि क्विकबासिक 16-बिट रियल-मोड सिस्टम था जबकि फ्रीबासिक 32-बिट संरक्षित मोड सिस्टम है।)
FreeBASIC लिनक्स बायनेरिज़ प्रदान करता है, लेकिन आप इसे केवल अपने पैकेज रिपॉजिटरी में पाएंगे यदि आप वास्तव में "डेबियन" के बजाय "डेबियन-फैमिली डिस्ट्रोस" का मतलब रखते हैं और मिंट की तरह उबंटू या उबंटू व्युत्पन्न चला रहे हैं।
QB64 के लिनक्स बिल्ड उबंटू रिपॉजिटरी में भी नहीं हैं, लेकिन यह विशेष रूप से सबसे अधिक संगत संरक्षित-मोड क्विकबासिक वंशज होने का लक्ष्य रखता है और यहां तक कि एक आईडीई भी प्रदान करता है जो क्यूबेसिक / क्विकबैसिस आईडीई को क्लोन करने का प्रयास करता है।
आपने फ़ून के जवाब के लिए एक टिप्पणी में लिखा था कि
मुझे "पुराने कंप्यूटरों की तरह" से मतलब है कि यह सिर्फ वहाँ है
दूसरों ने बेसिक दुभाषियों के लिए कई अलग-अलग सुझाव दिए हैं जिन्हें आप लिनक्स सिस्टम पर स्थापित कर सकते हैं, इसलिए मैं वहां नहीं जाऊंगा। आधुनिक पीसी आमतौर पर अंतर्निहित BASIC दुभाषियों के साथ नहीं आते हैं, इसलिए आप कुछ ऐसा बूट कर रहे हैं जो एक स्थापित BASIC दुभाषिया चला सकता है।
बल्कि, मैं ऊपर ले जाऊंगा, जिसका मतलब है कि आप कुछ ऐसा चाहते हैं जो एक स्वचालित रूप से बेसिक दुभाषिया शुरू करे, लेकिन इसके समान ही नहीं जैसे कि शुरुआती माइक्रो कंप्यूटर (जैसे कि Apple II, कमोडोर C-64, Zinclair ZX-81 और उनके ilk ) एक मूल बेसिक दुभाषिया में बूट किया गया।
ऐसा करने के लिए मूल रूप से तीन तरीके हैं जो मैं सोच सकता हूं:
यह कम से कम आक्रामक है, क्योंकि यह आपके द्वारा उपयोग किए जाने वाले सिस्टम और वातावरण के भीतर पूरी तरह से काम करता है।
मूल रूप से, आपके डेस्कटॉप वातावरण जो भी साधन प्रदान करता है, उसके माध्यम से, आप एक प्रोग्राम लॉन्चर बनाते हैं और इसे टर्मिनल में अपनी पसंद के BASIC दुभाषिए को लॉन्च करने के लिए सेट करते हैं। अतिरिक्त प्रभाव के लिए, आप विशिष्ट फोंट, रंग इत्यादि सेट कर सकते हैं, जो कि बीते हुए दिनों के वातावरण का अनुकरण करने के लिए है। सटीक रूप से आप यह कैसे करेंगे यह आपके द्वारा उपयोग किए जा रहे डेस्कटॉप वातावरण पर निर्भर करता है, जिसे आपने निर्दिष्ट नहीं किया है, लेकिन जहां आप वर्तमान में एप्लिकेशन लॉन्च करने के लिए क्लिक कर रहे हैं, उसके चारों ओर राइट-क्लिक करके और नया लॉन्चर बनाने के लिए एक विकल्प की तलाश करना एक अच्छी शुरुआत होगी। ।
यह एक साधारण डेस्कटॉप लांचर की तुलना में थोड़ा अधिक शामिल है, लेकिन प्रदाता बेहतर अलगाव करते हैं ताकि आप अपनी फाइलों को गड़बड़ाने का जोखिम न उठाएं। सबसे पहले, एक बेसिक दुभाषिया स्थापित करें; मैं bwbasicउदाहरण के लिए उपयोग करूँगा , लेकिन कुछ भी हो जाता है, वास्तव में, जब तक यह एक टर्मिनल में मूल रूप से चलता है। फिर एक उपयोगकर्ता जोड़ें और इसके शेल को bwbasic दुभाषिया के रूप में सेट करें। यह जीयूआई के माध्यम से किया जा सकता है, लेकिन यह निर्भर करता है कि आप किस डेस्कटॉप वातावरण का उपयोग कर रहे हैं; पोर्टेबल एप्रोच का उपयोग टर्मिनल में करना है useradd। यह कुछ इसी तरह का होगा
$ sudo -i
# grep -q "$(type -pP bwbasic)" /etc/shells || echo "$(type -pP bwbasic)" >>/etc/shells
# useradd --home /home/basic --create-home --shell "$(type -pP bwbasic)" basic
फिर, आपको sudo के माध्यम से एक स्वच्छ BASIC वातावरण में प्रवेश करने में सक्षम होना चाहिए:
$ sudo -i -u basic
आप एक लॉन्चर (जैसा कि ऊपर) बना सकते हैं जो इस कमांड को टर्मिनल में निष्पादित करता है, यदि आप चाहते हैं।
सूडो द्वारा संकेत दिए जाने पर अपना सामान्य पासवर्ड दें। यदि आप चाहें तो पासवर्ड प्रॉम्प्ट से बचने के लिए sudoers कॉन्फ़िगरेशन को संपादित कर सकते हैं, लेकिन इस बात से अवगत रहें कि sudoers को संपादित करना कुछ जटिल है और इससे भी अधिक जोखिम भरा है; आप अपने आप को मूल खाते से बाहर कर सकते हैं, जिससे विन्यास को सुधारना काफी मुश्किल हो जाएगा।
यह सबसे आक्रामक दृष्टिकोण है, लेकिन आपको यह भी बताता है कि कैसे शुरुआती माइक्रो कंप्यूटर ने सीधे काम किया है, जो सीधे एक BASIC दुभाषिया में बूट होता है। मैं इसकी सिफारिश नहीं करता हूं, और यह महत्वपूर्ण काम के बिना काम करने की संभावना पर विचार नहीं करेगा , लेकिन पूर्णता के लिए इसे शामिल कर रहा हूं।
लिनक्स कर्नेल एक कमांड लाइन पैरामीटर स्वीकार करता है (हां, लिनक्स कर्नेल में कमांड लाइन पैरामीटर है; आप वर्तमान में बूट की गई कमांड लाइन को / proc / cmdline से पढ़कर देख सकते हैं) init, जो निर्दिष्ट करता है कि कौन सा प्रोग्राम एक बार कर्नेल इनिशियलाइजेशन पूरा होने पर निष्पादित करता है। आप एक कर्नेल प्रविष्टि को बूट करने की अनुमति देने के लिए बूट लोडर (सबसे अधिक संभावना GRUB) को कॉन्फ़िगर कर सकते हैं जो कहता है कि (या जो आपके द्वारा स्थापित अन्य बुनियादी व्याख्याकार initहोना चाहिए /usr/bin/bwbasic)।
काम करने के लिए, बेसिक दुभाषिया, और साथ ही इसके लिए आवश्यक सभी फाइलों को रूट ( /) फ़ाइल सिस्टम पर स्थित होना चाहिए । इसका कारण यह है कि init का एक कार्य सभी फ़ाइल सिस्टम को माउंट करना है, और क्योंकि आप एक गैर-init प्रोग्राम को init के रूप में प्रदान कर रहे हैं, गैर-रूट फ़ाइल सिस्टम को माउंट नहीं किया जाएगा। (मेरा मानना है कि एक और init का कार्य रूट फाइल सिस्टम को रीड-राइट मोड में रिमूव करना है, इसलिए तुच्छ दृष्टिकोण से आप कुछ भी नहीं बचा पाएंगे। हालांकि, सटीक कार्यान्वयन विवरण के आधार पर, आप सक्षम हो सकते हैं। सिस्टम कुछ ऐसा निष्पादित करता हैmount -o remount,rw / रीड-राइट रूट फाइल सिस्टम को रिमूव करने के लिए।) आपके चुने हुए बेसिक दुभाषिया को किसी अन्य चीज पर निर्भर नहीं होना चाहिए जो कि init के लिए ज़िम्मेदार है, और आपके पास init द्वारा या किसी भी प्रक्रिया के लिए पहुँच नहीं होगी जो init द्वारा प्रायोजित है (उदाहरण के लिए , नेटवर्किंग या बहुउपयोगकर्ता समर्थन)।
कुछ की एक कर्नेल कमांड लाइन ro quiet init=/usr/bin/bwbasicशायद आपको पुराने दिनों में कैसे दिखती है, इसके करीब ले जाएगी।
sudo echoवह नहीं करता है जो आप का मतलब है और आप -bash: /etc/shells: Permission deniedवैसे भी मुठभेड़ की संभावना रखते हैं क्योंकि >>शेष कमांड का मूल्यांकन होने से पहले रीडायरेक्ट को बैश द्वारा सेटअप किया जाता है। इसके type -P bwbasic | sudo tee -a /etc/shellsबजाय इसका उपयोग करना सबसे अच्छा है । " अनुमतियाँ
initउपयोग करने के लिए init प्रणाली कॉन्फ़िगर करने के लिए किया जाएगा bwbasicके बजाय agettyऔर एक X11 प्रदर्शन प्रबंधक प्रारंभ नहीं करने के लिए। (उन अन्य लोगों के लिए जो मुझे नहीं जानते हैं कि कर्नेल Ctrl + Alt + F1 throuh Ctrl + Alt + F12 के माध्यम से विभिन्न "आभासी कंसोल" प्रदान करता है और डिफ़ॉल्ट रूप से, इनिट सिस्टम agetty6 से 1 से शुरू होता है और X11 डिस्प्ले मैनेजर (जो एक लॉगिन संवाद प्रदान करता है) 7. अपस्टार्ट और सिस्टमड से पहले, इसके माध्यम से नियंत्रित किया गया था /etc/inittab।) gettyऔर इसके वंशज कंसोल लॉग इन प्रॉम्प्ट को संभालते हैं।
बस एक विकल्प को बाहर फेंकने के लिए: लिनक्स के लिए कई एमुलेटर हैं जो आपके पुराने कंप्यूटर चला सकते हैं । एक उदाहरण के रूप में, xkegs के साथ, यदि आप इसे बूट करते हैं, तो आपके पास एक एपलसॉफ्ट बेसिक प्रॉम्प्ट होना चाहिए। अन्य लिनेक्स सामान के साथ संवाद करना, पाठक के लिए छोड़ दिया गया एक व्यायाम है (संकेत: तकनीकी रूप से, मेरा मानना है कि आप अपने उत्सर्जित ऐप्पल को एमुलेटेड प्रिंटर में रीडायरेक्ट कर सकते हैं, जो xkegs तब एक नेटवर्क सॉकेट के रूप में सामने आएगा, जिसका उपयोग आप कर सकते हैं जैसे कि nc को फीड करने के लिए। कुछ अन्य पाइप किए गए एप्लिकेशन इत्यादि सुनिश्चित नहीं हैं कि अगर कोई अन्य तरीका है, लेकिन उम्मीद करें कि कुछ ऐसा ही किया जा सकता है)। मुझे उम्मीद है कि कमोडोर 64 एमुलेटर इसी तरह से कमोडोर के बेसिक आदि को चलाने का एक तरीका होगा।
kegsउनमें से एक भी नहीं लगता है (कोई apt-cache searchनतीजा नहीं )। और कुछ / अधिकांश एमुलेटर के लिए, आपको संभवतः कहीं से एक मूल ROM प्राप्त करने की आवश्यकता होगी।
init=/usr/bin/sdlbasic, जो कि अगर यह काम करता है तो आपको बहुत करीब मिलेगा, लेकिन यह काम भी कर सकता है या नहीं भी।
बहुत सारे विकल्प हैं। मेरा सुझाव ssokolow के उत्तर के समान है। यदि आप एक "आधुनिक" बेसिक चाहते हैं लेकिन पुराने बेसिक दुभाषियों के समान एक सिंटैक्स के साथ, तो आपको बैकोन को एक कोशिश देनी चाहिए । यह एक बेसिक ट्रांसपिलर है जो देशी कोड उत्पन्न करता है। परियोजना में एक बहुत अच्छा मैनुअल है, बहुत सारे पुस्तकालय और उदाहरण हैं, और यहां तक कि एक आईडीई भी है जो बाकोन में लिखा गया है।
आप अपने ब्राउज़र में C64 चला सकते हैं, और इस तरह से BASIC का उपयोग कर सकते हैं।
http://codeazur.com.br/stuff/fc64_final/
ध्यान रहे कीबोर्ड लेआउट अलग है, अर्थात Shift-2उद्धरण के लिए।
http://jilltxt.net/wp-content/uploads/C64-keyboard-layout.png
Applesoft बुनियादी यदि आप prefer- http://calormen.com/jsbasic/
ऑनलाइन अन्य मशीनों के एमुलेटर हैं,
लेकिन उनमें से बहुत से आप जो भी प्रोग्राम लोड करते हैं,
वहां जाने के लिए आवश्यक प्रारंभिक कीबोर्ड इनपुट का अनुकरण किए बिना सीधे जाते हैं।