Saya ingin menjalankan kode BASIC, seperti yang biasa Anda lakukan pada komputer lama, di Linux. (Saya mencari BASIC Interrupter yang dapat menjalankan fungsi OS secara native)
Opsi apa yang saya miliki? (Lebih disukai untuk Debian dan Arch berbasis)
linux
command-line
programming
DiamondCoderMan
sumber
sumber
Jawaban:
Jika Anda ingin menjalankan secara native di Linux BASIC Anda memiliki beberapa paket di Debian untuk dipilih:
Untuk menginstalnya:
Adapun pengalaman pribadi saya, saya lebih suka
bwbasic
karena memungkinkan untuk memiliki kekuatan BASIC dalam baris perintah teks atau skrip shell.Sebagai alternatif, Anda juga memiliki beberapa paket emulasi komputer lama, yang jelas selain sintaks BASIC mengimplementasikan semua lingkungan beberapa komputer lama yang mungkin ingin Anda hidupkan kembali.
Cukup menarik,
bwbasic
secara teori dapat memungkinkan operasi otomatis di Unix misalnya membangun skrip menggunakan bahasa BASIC. Namun tidak pernah mencobanya.sumber
Sistem Debian saya, dan mungkin sebagian besar distribusi Linux lainnya, memiliki beberapa pilihan yang tersedia secara langsung melalui manajer paket. Diantara mereka:
bwbasic
:sdlbasic
:Beranda (Panduan referensi)
Wikipedia
sumber
Karena semua orang tampaknya menganggap Anda bermaksud "PC pra-IBM" oleh "komputer lama", saya akan memilih rute lain dan menawarkan jawaban yang mengartikan "komputer lama" berarti "kompatibel dengan IBM sebelum Windows 9x".
Jika, yang Anda maksud adalah komputer yang menjalankan versi MS-DOS yang termasuk
QBASIC.EXE
, Anda memiliki tiga opsi, tergantung pada seberapa ketat Anda mendefinisikan menjalankannya "di Linux":Jika Anda masih memiliki salinan untuk
QBASIC.EXE
ditendang, Anda bisa menggunakan DOSBox atau DOSEMU untuk menjalankannya di lingkungan DOS tervirtualisasi. (Keduanya tersedia di repositori Debian dan mudah diatur. Cukup atur folder yang akan di-mountC:
, letakkan diQBASIC.EXE
dalamnya, dan Anda siap melakukannya.)Itu akan memberi Anda kompatibilitas sempurna dengan kode sumber lama, tetapi tidak ada integrasi dengan OS host di luar "
C:
sebenarnya folder, daripada gambar disk".Saya harus mengklarifikasi, bahwa ada pertukaran antara keduanya. DOSEMU akan berjalan di terminal apa pun yang Anda inginkan, tetapi tidak akan mendukung trik tingkat rendah yang mewah beberapa barang QBasic digunakan (misalnya untuk mode grafis khusus). Satu- satunya cara untuk mendukung itu adalah emulator penuh seperti DOSBox ... tetapi DOSBox akan muncul jendela sendiri daripada menggunakan terminal Anda.
FreeBASIC memiliki
qb
dialek / mode yang bertujuan untuk kompatibilitas sempurna dengan sebagian besar QuickBASIC. (Hal-hal yang tidak didukung sebagian besar adalah hal-hal tingkat rendah yang terkait dengan fakta bahwa QuickBASIC adalah sistem mode-nyata 16-bit sementara FreeBASIC adalah sistem mode terlindungi 32-bit.)FreeBASIC menawarkan binari Linux, tetapi Anda hanya akan menemukannya di repositori paket Anda jika Anda sebenarnya bermaksud "distro keluarga Debian" daripada "Debian" dan menjalankan Ubuntu atau turunan Ubuntu seperti Mint.
Linux membangun QB64 bahkan tidak di repositori Ubuntu, tetapi secara khusus bertujuan untuk menjadi keturunan QuickBASIC terlindungi-mode yang paling kompatibel dan bahkan menyediakan IDE yang mencoba untuk mengkloning QBasic / QuickBasic IDE.
sumber
Anda menulis dalam komentar untuk jawaban Foon ini yang
Yang lain telah memberikan beberapa saran berbeda untuk penerjemah BASIC yang dapat Anda instal pada sistem Linux, jadi saya tidak akan pergi ke sana. PC modern umumnya tidak dilengkapi dengan penerjemah BASIC bawaan, jadi Anda terjebak untuk mem-boot sesuatu yang dapat menjalankan penerjemah BASIC yang diinstal.
Sebaliknya, saya akan mengambil di atas berarti bahwa Anda menginginkan sesuatu yang memulai penerjemah BASIC secara otomatis, mirip dengan tetapi tidak seperti mikrokomputer awal (seperti Apple II, Commodore C-64, Zinclair ZX-81, dan sejenisnya) ) boot ke penerjemah BASIC asli.
Pada dasarnya ada tiga cara untuk melakukan ini yang dapat saya pikirkan:
Buat peluncur desktop yang membuka terminal
Ini adalah yang paling tidak invasif, karena berfungsi sepenuhnya dalam sistem dan lingkungan tempat Anda terbiasa.
Pada dasarnya, melalui segala cara yang disediakan oleh lingkungan desktop Anda, Anda membuat peluncur program dan mengaturnya untuk meluncurkan penerjemah BASIC pilihan Anda di terminal. Untuk efek ekstra, Anda dapat mengatur font, warna, dll. Khusus, untuk mensimulasikan lingkungan yang berlalu. Bagaimana tepatnya Anda melakukan ini tergantung pada lingkungan desktop yang Anda gunakan, yang belum Anda tentukan, tetapi mengklik kanan di mana Anda saat ini mengklik untuk meluncurkan aplikasi dan mencari pilihan untuk membuat peluncur baru akan menjadi awal yang baik .
Buat akun pengguna terpisah dengan penerjemah BASIC sebagai shell
Ini sedikit lebih terlibat daripada peluncur desktop sederhana, tetapi menyediakan isolasi yang lebih baik sehingga Anda tidak berisiko mengacaukan file Anda sendiri. Pertama, instal juru BASIC; Saya akan gunakan
bwbasic
untuk contoh, tetapi apapun berjalan, sungguh, selama itu berjalan secara native di terminal. Kemudian tambahkan pengguna dan atur shellnya menjadi juru bahasa bwbasic. Ini dapat dilakukan melalui GUI, tetapi itu tergantung pada lingkungan desktop mana yang Anda gunakan; pendekatan portabel adalah melakukannya di terminal menggunakanuseradd
. Ini akan menjadi sesuatu yang miripKemudian, Anda harus dapat memasuki lingkungan BASIC yang bersih melalui sudo:
Anda dapat membuat peluncur (seperti di atas) yang mengeksekusi perintah ini di terminal, jika Anda mau.
Berikan kata sandi normal Anda saat diminta oleh sudo. Anda dapat mengedit konfigurasi sudoers untuk menghindari prompt kata sandi jika diinginkan, tetapi perlu diketahui bahwa mengedit sudoers agak rumit dan lebih dari itu, berisiko; Anda dapat mengunci diri dari akun root, sehingga cukup sulit untuk memperbaiki konfigurasi.
Gunakan penerjemah BASIC sebagai init
Ini adalah pendekatan yang paling invasif, tetapi juga membuat Anda paling dekat dengan bagaimana mikrokomputer awal bekerja, dengan mem-boot langsung ke penerjemah BASIC. Saya tidak merekomendasikan ini, dan akan menganggapnya tidak akan berhasil tanpa kerja yang signifikan, tetapi saya memasukkannya untuk kelengkapan.
Kernel Linux menerima parameter baris perintah (ya, kernel Linux memiliki parameter baris perintah; Anda dapat melihat baris perintah yang saat ini di-boot dengan membaca dari / proc / cmdline) yang bernama
init
, yang menentukan program mana yang akan dijalankan setelah inisialisasi kernel selesai. Anda dapat mengkonfigurasi boot loader (kemungkinan besar GRUB) untuk memungkinkan Anda untuk mem-boot entri kernel yang mengatakan bahwainit
seharusnya/usr/bin/bwbasic
(atau penerjemah BASIC mana pun yang Anda instal).Agar ini berfungsi, penerjemah BASIC, serta semua file yang diperlukan, harus ditempatkan di
/
sistem file root ( ). Ini karena salah satu tugas init adalah me-mount semua sistem file, dan karena Anda menyediakan program non-init sebagai init, sistem file non-root tidak akan di-mount. (Saya percaya tugas init yang lain adalah untuk me-remount sistem file root dalam mode baca-tulis, jadi dengan pendekatan sepele Anda tidak akan dapat menyimpan apa pun. Anda mungkin, namun, tergantung pada detail implementasi yang tepat, dapat memiliki sistem mengeksekusi sesuatu sepertimount -o remount,rw /
untuk mengount ulang sistem file root baca-tulis.) Penerjemah BASIC yang Anda pilih juga tidak boleh bergantung pada hal lain yang menjadi tanggung jawab init, dan Anda tidak akan memiliki akses ke fasilitas apa pun yang ditangani oleh init atau oleh proses apa pun yang dihasilkan oleh init (misalnya , dukungan jaringan atau multiuser).Baris perintah kernel dari sesuatu seperti
ro quiet init=/usr/bin/bwbasic
mungkin akan membuat Anda cukup dekat dengan tampilannya di masa lalu.sumber
sudo echo
tidak melakukan apa yang Anda maksudkan dan Anda kemungkinan akan menemukan-bash: /etc/shells: Permission denied
pula karena>>
pengalihan disiapkan oleh bash sebelum sisa perintah dievaluasi. Mungkin lebih baik digunakantype -P bwbasic | sudo tee -a /etc/shells
sebagai gantinya. Lihat " izin - Bagaimana cara menyisipkan teks ke file yang dimiliki oleh root menggunakan sudo? - Unix & Linux Stack Exchangeinit
mengkonfigurasi sistem init untuk digunakanbwbasic
alih-alihagetty
dan tidak memulai manajer tampilan X11. (Untuk yang lain yang tidak tahu apa yang saya bicarakan, kernel menyediakan berbagai "konsol virtual" yang dapat diakses melalui Ctrl + Alt + F1 melalui Ctrl + Alt + F12 dan sistem init, secara default, mulaiagetty
dari 1 sampai 6 dan Display Manager X11 (yang menyediakan dialog login) pada 7. Sebelum Upstart dan systemd, ini dikontrol via/etc/inittab
.)getty
dan turunannya menangani permintaan login konsol.Hanya untuk membuang alternatif: ada beberapa emulator untuk Linux yang dapat menjalankan komputer lama Anda. Sebagai contoh, dengan xkegs, jika Anda mem-boot-nya, Anda harus memiliki prompt dasar applesoft yang menunggu Anda. Berkomunikasi dengan hal-hal linux lainnya adalah latihan yang diserahkan kepada pembaca (petunjuk: secara teknis, saya percaya Anda dapat mengarahkan output di apple yang diemulasi ke printer yang diemulasi, yang kemudian xkeg akan paparkan sebagai soket jaringan yang dapat Anda gunakan misalnya nc untuk dimasukkan ke dalam beberapa aplikasi pipa lainnya dll. Tidak yakin apakah ada cara untuk pergi ke arah lain, tetapi mengharapkan sesuatu yang serupa dapat dilakukan). Saya berharap emulator komodor 64 juga akan memiliki cara untuk menjalankan dasar komodor, dll.
sumber
kegs
tampaknya tidak menjadi salah satu dari mereka (tidak adaapt-cache search
hasil). Dan untuk sebagian / sebagian besar emulator, Anda mungkin perlu mendapatkan ROM asli dari suatu tempat.init=/usr/bin/sdlbasic
ke kernel Linux, yang jika berfungsi akan membuat Anda lebih dekat, tetapi mungkin atau bahkan tidak berfungsi.Ada banyak alternatif. Saran saya mirip dengan jawaban ssokolow. Jika Anda menginginkan BASIC "modern" tetapi dengan sintaksis yang mirip dengan penerjemah BASIC lama, maka Anda harus mencoba BaCon . Ini adalah transpiler BASIC yang menghasilkan kode asli. Proyek ini memiliki manual yang cukup bagus, banyak perpustakaan dan contoh, dan bahkan sebuah IDE yang ditulis dalam BaCon.
sumber
Anda dapat menjalankan C64 di browser Anda, dan menggunakan BASIC seperti itu.
http://codeazur.com.br/stuff/fc64_final/
Sadarilah tata letak keyboard yang berbeda, yaitu Shift-2untuk kutipan.
http://jilltxt.net/wp-content/uploads/C64-keyboard-layout.png
Applesoft BASIC jika Anda suka- http://calormen.com/jsbasic/
Ada emulator mesin lain online,
tetapi banyak dari mereka langsung menuju program apa pun yang Anda muat,
tanpa meniru input keyboard awal yang diperlukan untuk sampai ke sana.
sumber