ฉันจะเรียกใช้รหัส BASIC ในเทอร์มินัลได้อย่างไร


20

ฉันต้องการเรียกใช้รหัส BASIC เช่นเดียวกับที่คุณเคยทำบนคอมพิวเตอร์รุ่นเก่าใน Linux (ฉันกำลังมองหาผู้ขัดขวางพื้นฐานที่สามารถเรียกใช้ฟังก์ชั่นระบบปฏิบัติการได้)

ฉันมีตัวเลือกอะไรบ้าง (ควรเป็นแบบ Debian-based และ Arch-based)


2
มีรุ่นพื้นฐานหลายรุ่นที่เข้ากันไม่ได้
Thomas Dickey

2
@ThomasDickey ฉันวาง Debian ไว้ในคำถามเนื่องจากมี / มีแท็ก Debian
Rui F Ribeiro

คำตอบ:


24

ถ้าคุณต้องการที่จะรันโดยพื้นฐานใน Linux BASIC คุณมีหลายแพ็คเกจใน Debian ให้เลือก:

  • บรั่นดี - BBC Micro BASIC ที่ใช้งานร่วมกันได้ - ทำงานในอินเทอร์เฟซกราฟิก X11 สนับสนุนเสียงและกราฟิกอย่างโปร่งใส

บรั่นดีเป็นล่ามสำหรับ BBC BASIC V ภาษาถิ่นของ BASIC ที่ Acorn Computers จัดมาให้พร้อมกับคอมพิวเตอร์เดสก์ท็อปที่ใช้โปรเซสเซอร์ ARM เช่น Archimedes และ Risc PC และยังคงใช้งานได้กับเหล่านี้

   BASIC V is a much extended version of BBC BASIC. 

นี่เป็นพื้นฐานที่ใช้กับ BBC Micro 6502 ซึ่งผลิตโดย Acorn ในช่วงทศวรรษ 1980

  • bwbasic - byWater BASIC - โหมดข้อความอ้างว่ารองรับ ANSI ได้, มีการขยายการรับรู้เชลล์และการอ้างว่าสามารถเลียนแบบ / มีความเข้ากันได้ดีกับภาษา BASIC "เก่า" หลายประเภทรวมถึง IBM BASICA, Microsoft BASIC และ gwBASIC

bwBASIC สามารถกำหนดค่าเพื่อจำลองคุณลักษณะคำสั่งและฟังก์ชั่นที่มีอยู่ในล่ามพื้นฐานประเภทต่างๆ

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 ในบรรทัดคำสั่งข้อความหรือสคริปต์เชลล์

เป็นอีกทางเลือกหนึ่งคุณยังมีชุดจำลองคอมพิวเตอร์หลายเครื่องที่เก่าซึ่งเห็นได้ชัดว่านอกเหนือจากไวยากรณ์พื้นฐานแล้วยังใช้สภาพแวดล้อมทั้งหมดของคอมพิวเตอร์เก่าบางเครื่องที่คุณอาจต้องการมีชีวิตอีก

ที่น่าสนใจมากbwbasicในทางทฤษฎีอาจอนุญาตให้การดำเนินการอัตโนมัติใน Unix เช่นการสร้างสคริปต์โดยใช้ภาษาพื้นฐาน ไม่เคยลองเลย


9

ระบบ Debian ของฉันและการกระจาย Linux อื่น ๆ ส่วนใหญ่มีตัวเลือกหลายตัวให้เลือกโดยตรงผ่านตัวจัดการแพคเกจ ในหมู่พวกเขา:

  • bwbasic:

Bywater BASIC Interpreter (bwBASIC) ใช้ superset ขนาดใหญ่ของมาตรฐาน ANSI สำหรับ Minimal พื้นฐาน (X3.60-1978) และเซตย่อยที่สำคัญของมาตรฐาน ANSI สำหรับ Full BASIC (X3.113-1987) ใน C สิ่งอำนวยความสะดวกการเขียนโปรแกรมเป็นส่วนขยายของพื้นฐาน bwBASIC พยายามที่จะพกพาได้มากที่สุด

  • sdlbasic:

sdlBasic เป็นล่ามพื้นฐานขนาดเล็กที่มีประสิทธิภาพและหลากหลายสำหรับการสร้างเกมโดยใช้พลังของห้องสมุด SDL มันเป็นแรงบันดาลใจจาก AMOS เก่าและรุ่งโรจน์

โฮมเพจ (คู่มืออ้างอิง)

วิกิพีเดีย


8

เนื่องจากทุกคนดูเหมือนจะสมมติว่าคุณหมายถึง "pre-IBM PC" โดย "คอมพิวเตอร์เก่า" ฉันจะไปเส้นทางอื่นและเสนอคำตอบที่ตีความ "คอมพิวเตอร์รุ่นเก่า" ให้หมายถึง "IBM-compatibles ก่อน Windows 9x"

หากคุณหมายถึงคอมพิวเตอร์ที่ใช้ MS-DOS เวอร์ชันที่รวมอยู่QBASIC.EXEคุณมีสามตัวเลือกขึ้นอยู่กับว่าคุณให้คำจำกัดความการรัน "บน Linux" อย่างเคร่งครัด:

  1. หากคุณยังมีสำเนาQBASIC.EXEเตะอยู่รอบ ๆ คุณสามารถใช้DOSBoxหรือDOSEMUเพื่อเรียกใช้ในสภาพแวดล้อม DOS เสมือนจริง (ทั้งสองมีอยู่ในที่เก็บของ Debian และติดตั้งง่ายเพียงแค่ตั้งโฟลเดอร์ที่จะติดตั้งC:วางQBASIC.EXEลงและคุณจะไปได้)

    นั่นจะให้ความเข้ากันได้อย่างสมบูรณ์แบบกับซอร์สโค้ดเก่า ๆ แต่ไม่มีการรวมกับโฮสต์ระบบปฏิบัติการที่เกิน " C:เป็นโฟลเดอร์จริง ๆ ไม่ใช่ภาพดิสก์"

    ฉันควรชี้แจงว่ามีการแลกเปลี่ยนระหว่างสอง DOSEMU จะทำงานในเทอร์มินัลใดก็ตามที่คุณต้องการ แต่จะไม่รองรับเทคนิคระดับต่ำสุดแฟนซีบางอย่างที่ใช้ใน QBasic (เช่นสำหรับโหมดกราฟิกพิเศษ) เพียงวิธีการที่จะสนับสนุนว่าเป็นโปรแกรมจำลองเต็มรูปแบบเช่น DOSBox DOSBox ... แต่จะปรากฏขึ้นหน้าต่างของตัวเองมากกว่าการใช้ terminal ของคุณ

  2. FreeBASICมีqbภาษา / โหมดที่มีจุดมุ่งหมายเพื่อความเข้ากันได้อย่างสมบูรณ์แบบกับชุดย่อยขนาดใหญ่ของ QuickBASIC (สิ่งที่ไม่ได้รับการสนับสนุนส่วนใหญ่เป็นสิ่งระดับต่ำที่เกี่ยวข้องกับความจริงที่ว่า QuickBASIC เป็นระบบจริงโหมด 16 บิตในขณะที่ FreeBASIC เป็นระบบโหมดป้องกัน 32 บิต)

    FreeBASIC ให้บริการลินุกซ์ไบนารี แต่คุณจะพบได้ในที่เก็บแพคเกจของคุณหากคุณหมายถึง "Debian-distros ครอบครัว" มากกว่า "Debian" และใช้ Ubuntu หรืออนุพันธ์ของ Ubuntu อย่าง Mint

  3. ลินุกซ์บิวด์ของQB64ไม่ได้อยู่ในที่เก็บของ Ubuntu แต่มันมีจุดประสงค์เพื่อเป็นลูกหลานของ QuickBASIC โหมดป้องกันที่เข้ากันได้มากที่สุดและยังให้ IDE ที่พยายามโคลน QBasic / QuickBasic IDE


8

คุณเขียนความคิดเห็นถึงคำตอบของฟูนว่า

สิ่งที่ฉันหมายถึงโดย "เหมือนคอมพิวเตอร์เก่า" นั่นคือที่นั่น

คนอื่น ๆ ได้ให้คำแนะนำที่หลากหลายสำหรับล่ามพื้นฐานที่คุณสามารถติดตั้งบนระบบ Linux ดังนั้นฉันจะไม่ไปที่นั่น พีซีสมัยใหม่มักไม่มีตัวแปลภาษาพื้นฐานในตัวดังนั้นคุณจึงต้องบูตเครื่องบางอย่างที่สามารถเรียกใช้ตัวแปลภาษาพื้นฐานที่ติดตั้งไว้ได้

แต่ฉันจะเอาไปใช้ข้างต้นเพื่อหมายความว่าคุณต้องการบางสิ่งที่เริ่มต้นตัวแปลพื้นฐานโดยอัตโนมัติคล้ายกับ แต่ไม่เหมือนกับไมโครคอมพิวเตอร์ยุคแรก ๆ (เช่น Apple II, Commodore C-64, Zinclair ZX-81 และ ilk ของพวกเขา ) booted ไปเป็นล่ามภาษาเบสิก

โดยทั่วไปมีสามวิธีในการทำสิ่งนี้ที่ฉันสามารถนึกถึง:

สร้างตัวเรียกใช้เดสก์ท็อปที่เปิดเทอร์มินัล

นี่คือการบุกรุกน้อยที่สุดเพราะทำงานได้อย่างสมบูรณ์ภายในระบบและสภาพแวดล้อมที่คุณคุ้นเคย

โดยพื้นฐานไม่ว่าสภาพแวดล้อมเดสก์ท็อปของคุณจะเป็นอย่างไรคุณสร้างตัวเรียกใช้งานโปรแกรมและตั้งค่าเพื่อเปิดตัวล่ามพื้นฐานที่คุณเลือกในเทอร์มินัล สำหรับเอฟเฟกต์พิเศษคุณสามารถตั้งค่าแบบอักษรสีและอื่น ๆ เพื่อจำลองสภาพแวดล้อมของวันที่ผ่านไป วิธีที่คุณจะทำสิ่งนี้ขึ้นอยู่กับสภาพแวดล้อมเดสก์ท็อปที่คุณใช้ซึ่งคุณไม่ได้ระบุ แต่คลิกขวาที่ที่คุณกำลังคลิกเพื่อเปิดใช้งานแอปพลิเคชันและมองหาทางเลือกในการสร้างตัวเรียกใช้ใหม่ .

สร้างบัญชีผู้ใช้แยกต่างหากโดยใช้ล่าม BASIC เป็นเชลล์

นี่เป็นสิ่งที่เกี่ยวข้องมากกว่าตัวเรียกใช้งานเดสก์ท็อปธรรมดา แต่ผู้ให้บริการแยกกันได้ดีกว่าดังนั้นคุณจึงไม่เสี่ยงที่จะทำไฟล์ของคุณเอง ก่อนอื่นให้ติดตั้งตัวแปลภาษาเบสิก ฉันจะใช้bwbasicเป็นตัวอย่าง แต่ไม่มีอะไรเกิดขึ้นจริงตราบใดที่มันมีอยู่ในเทอร์มินัล จากนั้นเพิ่มผู้ใช้และตั้งค่าเชลล์ให้เป็นล่าม bwbasic สิ่งนี้สามารถทำได้ผ่าน GUI แต่ขึ้นอยู่กับสภาพแวดล้อมเดสก์ทอปที่คุณใช้ 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:

$ sudo -i -u basic

คุณสามารถสร้างตัวเรียกใช้งาน (ตามด้านบน) ที่ดำเนินการคำสั่งนี้ในเทอร์มินัลหากคุณต้องการ

ให้รหัสผ่านปกติของคุณเมื่อได้รับแจ้งจาก sudo คุณสามารถแก้ไขการกำหนดค่า sudoers เพื่อหลีกเลี่ยงการถามรหัสผ่านได้ แต่ต้องระวังว่าการแก้ไข sudoers นั้นค่อนข้างซับซ้อนและมีความเสี่ยง คุณสามารถล็อคตัวเองออกจากบัญชีรูททำให้การซ่อมแซมการกำหนดค่าค่อนข้างยาก

ใช้ล่าม BASIC เป็น init

นี่เป็นวิธีการบุกรุกที่มากที่สุด แต่ยังทำให้คุณใกล้เคียงกับการทำงานของไมโครคอมพิวเตอร์ในช่วงต้นโดยการบูตเข้าสู่ล่ามพื้นฐาน ฉันไม่แนะนำสิ่งนี้และจะถือว่าไม่น่าจะทำงานได้หากไม่มีงานที่สำคัญ แต่รวมถึงเพื่อความสมบูรณ์ด้วย

เคอร์เนล Linux ยอมรับพารามิเตอร์บรรทัดคำสั่ง (ใช่เคอร์เนล Linux มีพารามิเตอร์บรรทัดคำสั่งคุณสามารถดูบรรทัดคำสั่งที่ถูกบู๊ตในปัจจุบันโดยการอ่านจาก / proc / cmdline) ชื่อinitซึ่งระบุโปรแกรมที่จะดำเนินการเมื่อการเริ่มต้นเคอร์เนลเสร็จสมบูรณ์ คุณสามารถกำหนดค่าบูตโหลดเดอร์ (เป็นด้วงส่วนใหญ่) เพื่อให้คุณสามารถบูตรายการเคอร์เนลที่ระบุว่าinitควรเป็น/usr/bin/bwbasic(หรือตัวแปลพื้นฐานอื่นที่คุณติดตั้ง)

เพื่อให้สามารถใช้งานได้ล่าม BASIC รวมถึงไฟล์ทั้งหมดที่ต้องการจะต้องอยู่ใน/ระบบไฟล์root ( ) นี่เป็นเพราะหนึ่งในภารกิจของ init คือการเมานต์ระบบไฟล์ทั้งหมดและเนื่องจากคุณกำลังจัดเตรียมโปรแกรมที่ไม่ใช่ init ในฐานะ init ระบบไฟล์ที่ไม่ใช่รูทจะไม่ถูกเมาท์ (ฉันเชื่อว่างานของ init อื่นคือการติดตั้งระบบไฟล์รูทใหม่ในโหมดอ่าน - เขียนดังนั้นโดยวิธีการที่ไม่สำคัญคุณจะไม่สามารถบันทึกสิ่งใดได้อย่างไรก็ตามคุณอาจขึ้นอยู่กับรายละเอียดการใช้งานที่แน่นอน ให้ระบบดำเนินการบางอย่างเช่นmount -o remount,rw / เพื่อติดตั้งระบบไฟล์รูทใหม่อ่าน - เขียน) ล่าม BASIC ที่คุณเลือกจะต้องไม่พึ่งพาสิ่งอื่นใดที่ init รับผิดชอบและคุณจะไม่สามารถเข้าถึงสิ่งอำนวยความสะดวกใด ๆ ที่จัดการโดย init หรือกระบวนการใด ๆ ที่เกิดจาก init (เช่น การสนับสนุนเครือข่ายหรือผู้ใช้หลายคน)

บรรทัดคำสั่งเคอร์เนลของบางอย่างเช่นro quiet init=/usr/bin/bwbasicอาจจะทำให้คุณใกล้เคียงกับที่ดูในสมัยก่อน



การใช้งานของคุณsudo echoไม่ได้ทำในสิ่งที่คุณหมายถึงและคุณมีแนวโน้มที่จะพบกับสิ่ง-bash: /etc/shells: Permission deniedต่อไปเนื่องจากการ>>เปลี่ยนเส้นทางถูกตั้งค่าโดยการทุบตีก่อนที่คำสั่งที่เหลือจะถูกประเมิน มันอาจจะดีที่สุดที่จะใช้type -P bwbasic | sudo tee -a /etc/shellsแทน ดูที่ "การอนุญาต
shalomb

@Shalomb จุดดีขอบคุณที่พูดถึงมัน ฉันแก้ไขสิ่งนั้น แต่ในวิธีที่แตกต่างออกไป
CVN

1
@ MichaelKjörlingทางเลือกที่รุนแรงน้อยกว่าในการใช้ล่ามภาษาเบสิกเช่นเดียวinitกับการกำหนดค่าระบบ init ให้ใช้bwbasicแทนagettyและเพื่อไม่เริ่มตัวจัดการการแสดงผล X11 (สำหรับคนอื่น ๆ ที่ไม่ทราบว่าฉันกำลังพูดถึงอะไรเคอร์เนลจะสามารถเข้าถึง "คอนโซลเสมือน" ต่างๆได้ผ่าน Ctrl + Alt + F1 ผ่าน Ctrl + Alt + F12 และระบบเริ่มต้นโดยเริ่มต้นagettyที่ 1 ถึง 6 และ X11 Display Manager (ซึ่งจัดเตรียมไดอะล็อกล็อกอิน) เมื่อวันที่ 7 ก่อนหน้า Upstart และ systemd สิ่งนี้ถูกควบคุมผ่าน/etc/inittab) gettyและลูกหลานของมันจะจัดการพร้อมต์ล็อกอินคอนโซล
ssokolow

@ssokolow ความคิดที่ดีสำหรับความสมบูรณ์ แต่ ณ จุดนี้คุณเป็นเพียงหนึ่งขั้นตอนล่วงหน้าของบัญชีผู้ใช้เฉพาะที่มีเชลล์ bwbasic ดังนั้นฉันไม่คิดว่ามันจะเพิ่มความหลากหลายโดยรวมได้มากนัก
CVn

4

เพียงเพื่อทิ้งทางเลือก: มีอีมูเลเตอร์หลายตัวสำหรับ Linux ที่สามารถเรียกใช้คอมพิวเตอร์เครื่องเก่าของคุณได้ ตัวอย่างเช่นด้วย xkegs หากคุณบูตเครื่องขึ้นมาคุณควรมีพรอมต์พื้นฐานของ applesoft ที่รอคุณอยู่ การสื่อสารกับสิ่งที่ลินุกซ์อื่น ๆ คือการออกกำลังกายที่เหลือต่อผู้อ่าน (คำแนะนำ: ในทางเทคนิคผมเชื่อว่าคุณสามารถเปลี่ยนเส้นทางการส่งออกในแอปเปิ้ลเทิดทูนของคุณไปยังเครื่องพิมพ์เทิดทูนซึ่ง xkegs แล้วจะเปิดเผยเป็นซ็อกเก็ตเครือข่ายซึ่งคุณสามารถใช้เช่นNCฟีดเข้าไป แอปพลิเคชั่นอื่น ๆ แบบ piped เป็นต้นไม่แน่ใจว่ามีวิธีอื่นหรือไม่ แต่คาดว่าจะมีบางสิ่งที่คล้ายกัน) ฉันคาดหวังว่าผู้เลียนแบบสินค้าโภคภัณฑ์ 64 คนในทำนองเดียวกันจะมีวิธีในการดำเนินการขั้นพื้นฐานของสินค้าโภคภัณฑ์ ฯลฯ


ใช่มีอีมูเลเตอร์จำนวนมากติดตั้งได้ง่ายใน Debian แต่kegsดูเหมือนจะไม่เป็นหนึ่งในนั้น (ไม่มีapt-cache searchผลลัพธ์) และสำหรับตัวเลียนแบบส่วนใหญ่คุณอาจต้องได้รับ ROM ดั้งเดิมจากที่อื่น
อเล็กซ์ Stragies

คุณอาจต้องการแก้ไขคำตอบของคุณเพื่ออ้างถึงอีมูเลเตอร์ซึ่งสามารถรันในเทอร์มินัล (OP เคยแก้ไข Q ในอดีต)
Alex Stragies


สิ่งที่ฉันหมายถึงโดย "เหมือนคอมพิวเตอร์เก่า" ก็คือมันอยู่ที่นั่น
DiamondCoderMan

1
@DiamondCoderMan คุณสามารถตั้งค่าบัญชีผู้ใช้ที่ใช้บางอย่างเช่น bwbasic, brandy หรือ sdlbasic เป็นเชลล์แทนที่จะเป็นทุบตี บน Linux ที่อาจใกล้เคียงที่สุดที่คุณสามารถจริงจะได้รับกับระบบที่ดำเนินการเช่นไมโครคอมพิวเตอร์เก่าที่ถูกเด้งเป็นล่ามขั้นพื้นฐาน คุณสามารถผ่านบางอย่างเช่นinit=/usr/bin/sdlbasicไปยังเคอร์เนล Linux ซึ่งหากการทำงานจะทำให้คุณเข้าใกล้ได้มากขึ้น แต่อาจทำงานได้หรือไม่ก็ได้
CVn

1

มีทางเลือกมากมาย คำแนะนำของฉันคล้ายกับคำตอบของ ssokolow หากคุณต้องการ BASIC "ทันสมัย" แต่มีไวยากรณ์คล้ายกับล่าม BASIC เก่าคุณควรลองใช้BaCon มันเป็น transpiler พื้นฐานที่สร้างรหัสเนทิฟ โครงการมีคู่มือที่ดีมากมีห้องสมุดและตัวอย่างมากมายและแม้แต่ IDE ที่เขียนใน BaCon

ป้อนคำอธิบายรูปภาพที่นี่


แต่นี่ไม่ใช่สำหรับเทอร์มินัล
DiamondCoderMan

ตัวแปลงสัญญาณทำงานในเทอร์มินัล มันมีขนาดเล็กและใช้คอมไพเลอร์ C เพื่อสร้างปฏิบัติการ IDE เป็นเพียงตัวอย่างของโครงการที่มีประสิทธิภาพ
Rufo El Magufo

-2

คุณสามารถเรียกใช้ C64 ในเบราว์เซอร์ของคุณและใช้วิธีพื้นฐานนั้น

http://codeazur.com.br/stuff/fc64_final/

ระวังรูปแบบแป้นพิมพ์จะแตกต่างกันเช่นShift-2สำหรับคำพูด

http://jilltxt.net/wp-content/uploads/C64-keyboard-layout.png

Applesoft BASIC ถ้าคุณต้องการ - http://calormen.com/jsbasic/

มีอีมูเลเตอร์ของเครื่องอื่น ๆ ออนไลน์
แต่ส่วนมากจะตรงไปที่โปรแกรมที่คุณโหลด
โดยไม่ต้องจำลองอินพุตคีย์บอร์ดเริ่มต้นที่ต้องการ


1
"ในเทอร์มินัล" เป็นอย่างไรถ้าคุณใช้มันในโปรแกรมจำลองเว็บเบราว์เซอร์ที่ใช้จาวาสคริปต์?
Wyatt8740

3
ส่วน "ในเทอร์มินัล" อยู่ในชื่อคำถาม
roaima

1
@ Doyousketch2 ดูที่ชื่อเรื่องให้ละเอียดยิ่งขึ้น i.imgur.com/jDBZVEO.png
ไวแอตต์ 8740

1
มันเป็นแม้กระทั่งในหัวข้อการแก้ไขครั้งแรกที่อ่านวิธีการเรียกใช้รหัส BASIC ใน terminal BASH?
CVn

2
หากเป็นซอฟต์แวร์ที่มีไว้สำหรับ C64 หรือระบบ 8 บิตอื่น ๆ การเลียนแบบเครื่องทั้งหมดเป็นความคิดที่ดีที่สุด - โปรแกรมขั้นพื้นฐานที่ไม่น่าสนใจน้อยมากในยุคนั้นแม้ทำเป็นว่าไม่ขึ้นกับฮาร์ดแวร์เลยแม้แต่น้อย!
rackandboneman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.