อ่าน 5 นาที
ไซมอนส์ เบสิก
Simons' BASIC เป็นส่วนขยายของBASIC 2.0สำหรับ คอมพิวเตอร์บ้าน Commodore 64เขียนโดย โปรแกรมเมอร์ ชาวอังกฤษ David Simons ในปี 1983 ซึ่งขณะนั้นเขามีอายุ 16 ปี...
ไซมอนส์ เบสิก
| ไซมอนส์ เบสิก | |
|---|---|
หน่วยความจำโปรแกรม BASIC ลดลงเนื่องจากตลับเกมใช้ พื้นที่ 8 KB | |
| ผู้เขียนต้นฉบับ | เดวิด ไซมอนส์ |
| นักพัฒนา | คอมโมดอร์ |
| ปล่อย | พ.ศ. 2526 |
| ระบบปฏิบัติการ | คอมโมดอร์ 64 |
| พิมพ์ | ส่วนขยาย |
Simons' BASIC [ 1 ]เป็นส่วนขยายของBASIC 2.0สำหรับ คอมพิวเตอร์บ้าน Commodore 64เขียนโดย โปรแกรมเมอร์ ชาวอังกฤษ David Simons ในปี 1983 ซึ่งขณะนั้นเขามีอายุ 16 ปี และจัดจำหน่ายโดยCommodoreในรูป แบบ ตลับ เกม
เป็นที่รู้กันโดยทั่วไป แต่เป็นการเรียกที่ไม่ถูกต้อง ว่า " Simon's BASIC " เนื่องจากความสับสนระหว่างชื่อ "Simon" กับนามสกุล "Simons"


คุณสมบัติ
Simons' BASIC ได้เพิ่มคุณสมบัติมากมายให้กับ Commodore BASIC 2.0: [ 2 ]
- คำหลักเพิ่มเติม 114 คำ
- คำสั่งต่างๆ เพื่อช่วยให้การเขียนโค้ดสำหรับสไปรท์ ง่ายขึ้น
- คำสั่งต่างๆ เพื่อช่วยให้การเขียนโค้ดสำหรับ กราฟิกความละเอียดสูงและหลายสีทำได้ง่ายขึ้น
- คำสั่งต่างๆ เพื่อช่วยให้การเขียนโค้ดเสียง ง่ายขึ้น
- คำสั่งเพื่อช่วยในการเขียนโปรแกรมเชิงโครงสร้าง
- คำสำคัญที่จะช่วยในการเขียนและแก้ไขโปรแกรม BASIC คล้ายกับที่อยู่ในตลับโปรแกรมช่วยเหลือสำหรับโปรแกรมเมอร์VIC-20
โปรแกรมที่เขียนด้วยภาษา BASIC ของ Simons สามารถใช้ เลขฐาน สิบหกในการกำหนดค่าและการคำนวณโดยการใส่$คำนำหน้า หรือ ใช้เลขฐาน สองโดยการใช้%คำนำหน้า
เนื่องจากข้อมูลตลับเกมบางส่วนถูกแมปไปยังหน่วยความจำที่แอดเดรส$8000–$9FFFซึ่งทับซ้อนกับส่วนหนึ่งของRAM มาตรฐานของ C64 BASIC ทำให้ปริมาณหน่วยความจำที่ใช้ได้สำหรับโปรแกรม BASIC นั้นมีจำกัดน้อยกว่าการกำหนดค่ามาตรฐานของ C64 อยู่ 8 KB
ส่วนขยายนี้เขียนโดย Simons และเผยแพร่โดย Commodore บนฟลอปปี้ดิสก์และเทปในชื่อ Simons' Basic Extension ซอฟต์แวร์นี้ยังเป็นที่รู้จักในชื่อ Simons' Basic 2 ไม่สามารถเผยแพร่บนตลับเกมได้เนื่องจากต้องมีตลับเกม Simons' Basic ดั้งเดิมอยู่เพื่อใช้ส่วนขยาย Simons' Basic Extension เพิ่มคำสั่งอีก 91 คำสั่ง รวมถึง คำสั่ง RENUMBER ที่เป็นที่ต้องการอย่างมาก ซึ่งใช้ในการกำหนดหมายเลขปลายทางใหม่ของคำสั่งGOTOและGOSUB [ 3 ]
คำหลัก 114 คำ
คีย์เวิร์ดการจัดการสไปรท์ (มอนสเตอร์)
- MOB SET– เปิดใช้งานสไปรท์และกำหนดคุณลักษณะของสไปรท์นั้น
- MMOB– วางตำแหน่งสไปรท์บนหน้าจอ
- RLOCMOB– ทำให้ตัวละครเคลื่อนที่อย่างราบรื่นจากตำแหน่งหนึ่งไปยังอีกตำแหน่งหนึ่ง
- CMOB– ตั้งค่าสีหลักสองสีสำหรับสไปรท์หลายสี
- MOB OFF– ปิดใช้งานสไปรท์
- DETECT– เริ่มต้นการตรวจจับการชนกันของสไปรท์
- CHECK– ตรวจสอบการชนกันของสไปรท์
คำหลักสำหรับการจัดการกราฟิกความละเอียดสูง
- HIRES– เริ่มต้นใช้งานโหมดกราฟิกความละเอียดสูง
- MULTI– เริ่มต้นโหมดกราฟิกหลายสี
- NRM– กลับสู่หน้าจอแสดงข้อความ
- LOW COL– เปลี่ยนสีของกราฟ
- HI COL– กลับไปใช้สีการวาดกราฟแบบเดิม
- PLOT– วาดพิกเซล
- LINE– ลากเส้น
- CIRCLE– วาดวงกลม
- ARC– วาดส่วนโค้ง
- ANGL– วาดรัศมีของวงกลม
- PAINT– ทำการเติมน้ำท่วม
- REC– วาดรูปสี่เหลี่ยมผืนผ้ากลวง
- BLOCK– วาดรูปสี่เหลี่ยมผืนผ้าทึบ
- DRAW– วาดเส้นตามที่ผู้ใช้กำหนด
- ROT– กำหนดตัวคูณการปรับขนาดสำหรับDRAW
- CHAR– แสดงตัวอักษรบนหน้าจอความละเอียดสูง
- TEXT– แสดงข้อความบนหน้าจอความละเอียดสูง
- TEST– กำหนดว่าพิกเซลนั้นถูกวาดหรือว่างเปล่า
คำหลักอื่นๆ ที่เกี่ยวข้องกับการจัดการกราฟิก
- COLOUR– ตั้งค่าสีพื้นหลังและสีขอบ โดยใช้การสะกดแบบอังกฤษ
- CSET– เลือกชุดอักขระ
- MEM– คัดลอกอักขระจาก ROM ไปยัง RAM
- BCKGNDS– ตั้งค่าโหมดสีพื้นหลังแบบขยาย
- FLASH– ตั้งค่าสีหน้าจอให้กะพริบ
- OFF– ยกเลิกFLASHคำสั่ง ก่อนหน้า
- BFLASH– ทำให้ขอบหน้าจอกะพริบ
- FCHR– เติมพื้นที่บนหน้าจอข้อความด้วยรหัสอักขระที่กำหนด
- FCOL– เปลี่ยนสีตัวอักษรสำหรับพื้นที่ที่เลือกบนหน้าจอ
- FILL– การผสมผสานระหว่างFCHRและFCOL
- MOVE– คัดลอกส่วนหนึ่งของหน้าจอ
- INV– แสดงพื้นที่หน้าจอแบบกลับด้าน
- LEFT– เลื่อนหน้าจอไปทางซ้าย
- RIGHT– เลื่อนหน้าจอไปทางขวา
- UP– เลื่อนหน้าจอขึ้น
- DOWN– เลื่อนหน้าจอลง
- GRAPHICS– ตัวแปรที่สงวนไว้ซึ่งจะมีค่าเท่ากับ$D000 เสมอ ( ที่อยู่ฐานของชิป VIC-II )
- SCRSV– บันทึกหน้าจอข้อความลงเทปหรือดิสก์
- SCRLD– โหลดหน้าจอข้อความจากเทปหรือดิสก์
คำหลักสำหรับการจัดการเสียง
- MUSIC– เล่นชุดโน้ตตามเนื้อหาของตัวแปรสตริง
- PLAY– กำหนดว่าโปรแกรมจะยังคงทำงานต่อไปหรือไม่ในระหว่างนั้นMUSIC
- VOL– กำหนดระดับเสียงหลัก
- WAVE– ระบุประเภทเสียง
- ENVELOPE– ตั้งค่า พารามิเตอร์ ADSRสำหรับเสียงSID
- SOUND– ตัวแปรที่สงวนไว้ซึ่งจะมีค่าเท่ากับ$D400 เสมอ (ที่อยู่ฐานของชิป SID)
คำหลักสำหรับการจัดการอินพุตจากแป้นพิมพ์
- FETCH– รับข้อมูลจากผู้ใช้โดยมีข้อจำกัดตามที่กำหนดโดยคำสั่ง
- INKEY– ตรวจสอบการกดปุ่มฟังก์ชัน
- ON KEY– ตรวจสอบการกดปุ่มที่กำหนด จากนั้นจึงดำเนินการตามเงื่อนไขหากพบ
- DISABLE– ปิดใช้งานON KEYคำสั่ง ก่อนหน้า
- RESUMEON KEY– เปิดใช้งาน คำสั่งเดิมอีกครั้ง
คำหลักสำหรับการจัดการอุปกรณ์ต่อพ่วงขาเข้า
- JOY– อ่านค่าจากจอยสติ๊ก
- POT– อ่านจากไม้พาย
- PENX– อ่านตำแหน่งแนวนอนของปากกาแสง
- PENY– อ่านตำแหน่งแนวตั้งของปากกาแสง
คีย์เวิร์ดสำหรับการกำหนดตัวละครแบบสไปรท์/กำหนดเอง
- @– อธิบายเส้นหนึ่งเส้นในภาพกราฟิกสไปรท์หรือตัวละครแบบกำหนดเอง
- DESIGN– ใช้@บรรทัดข้างเคียงเพื่อกำหนดสไปรท์หรือตัวละครแบบกำหนดเอง
คีย์เวิร์ดดักจับข้อผิดพลาด
- ON ERROR– ตั้งค่ารูทีนเพื่อดักจับสภาวะข้อผิดพลาด
- OUT– สิ้นสุดขั้นตอนการจัดการข้อผิดพลาด
- NO ERROR– ยกเลิกON ERRORและคืนค่าการจัดการข้อผิดพลาด BASIC ตามปกติ
คำหลักสำหรับการจัดการดิสก์
- DIR– แสดงไดเร็กทอรีของดิสก์โดยไม่ทำลายโปรแกรม BASIC ในหน่วยความจำ (เฉพาะไดรฟ์หมายเลข 8)
- DISK– ส่งข้อความไปยังช่องคำสั่งของไดรฟ์ (เฉพาะไดรฟ์หมายเลข 8)
คำหลักสำหรับการจัดการเครื่องพิมพ์
- HRDCPY– ส่งข้อความจากหน้าจอไปยังเครื่องพิมพ์
- COPY– ส่งภาพหน้าจอความละเอียดสูงไปยังเครื่องพิมพ์
คีย์เวิร์ดสำหรับการจัดการสตริง
- INSERT– แทรกสตริงหนึ่งเข้าไปตรงกลางของอีกสตริงหนึ่ง (หมายเหตุ: ไม่มีเครื่องหมายดอลลาร์หลังINSERT, ซึ่งแตกต่างจากตัวดำเนินการสตริงอื่นๆ เช่นSTR$, LEFT$, RIGHT$, เป็นต้น)
- INST– คล้ายกับINSERTแต่เป็นการเขียนทับแทนที่จะแทรก (หมายเหตุ: เช่นเดียวกับINSERTไม่มีเครื่องหมายดอลลาร์หลังINST)
- PLACE– ค้นหาสตริงหนึ่งที่อยู่ตรงกลางของอีกสตริงหนึ่ง
- DUP– ทำซ้ำสตริงข้อความตามจำนวนครั้งที่กำหนด (หมายเหตุ: เช่นเดียวกับINSERTไม่มีเครื่องหมายดอลลาร์หลังDUP)
คำหลักสำหรับการจัดรูปแบบข้อความ
- PRINT AT– พิมพ์ข้อความ ณ ตำแหน่งที่กำหนดบนหน้าจอ
- CENTRE– จัดวางข้อความให้อยู่ตรงกลางหน้าจอ โดยใช้การสะกดแบบอังกฤษ
- USE– จัดรูปแบบข้อมูลตัวเลขเป็นสตริงโดยใช้แม่แบบ เช่นเดียวPRINT USINGกับเวอร์ชันขั้นสูงอื่นๆ ของ BASIC บนคอมพิวเตอร์เครื่องอื่นๆ เช่นCommodore 128เป็นต้น
- LIN– ส่งคืนตำแหน่งแนวตั้งของเคอร์เซอร์
คำหลักทางคณิตศาสตร์
หมายเหตุ: การดำเนินการเหล่านี้จำกัดเฉพาะค่าที่พอดีกับจำนวนเต็ม 16 บิตที่ไม่มีเครื่องหมาย แทนที่จะเป็นช่วงค่าทศนิยมเต็มรูปแบบที่ใช้โดยการดำเนินการและฟังก์ชันทางคณิตศาสตร์ในตัวของ BASIC
- MOD– ทำการหารและส่งคืนเศษที่เหลือ
- DIV– ทำการหารและส่งคืนค่าผลหารที่เป็นจำนวนเต็ม
- FRAC– แยกส่วนที่เป็นเศษส่วนของจำนวน
- EXOR– ดำเนินการทางตรรกะแบบ Exclusive-OR
คำสำคัญสำหรับความช่วยเหลือโปรแกรมเมอร์
- AUTO– สร้างหมายเลขบรรทัดโดยอัตโนมัติเมื่อป้อนโปรแกรม BASIC
- RENUMBER– ปรับเปลี่ยนหมายเลขโปรแกรม BASIC (แต่ไม่แก้ไข คำสั่ง GOTO/ GOSUB)
- OLD– กู้คืนโปรแกรมที่ถูกลบโดยไม่ได้ตั้งใจด้วยNEWคำสั่ง นั้น
- KEY– กำหนดสตริงเป็นมาโครให้กับปุ่มฟังก์ชัน
- DISPLAY– แสดงมาโครปุ่มฟังก์ชันทั้งหมด
- MERGE– ผสานโปรแกรม BASIC จากเทปหรือดิสก์เข้ากับโปรแกรมที่อยู่ในหน่วยความจำปัจจุบัน
- PAGE– แสดงรายการโปรแกรม BASIC ในรูปแบบหน้ากระดาษ
- OPTION– เน้น คำสำคัญ ของ Simons BASICเมื่อใช้LISTคำสั่งนี้
- DELAY– ปรับอัตราLISTการเลื่อนหน้าจอของคำสั่งนี้
- FIND– ค้นหาสตริงในโปรแกรม
- TRACE– แสดงหมายเลขบรรทัดขณะที่โปรแกรมกำลังทำงาน
- RETRACE– แสดงผลลัพธ์ของการติดตาม
- DUMP– แสดงค่าตัวแปรทั้งหมด ยกเว้นค่าในอาร์เรย์
- COLD– รีเซ็ต C64
คำหลักที่เกี่ยวข้องกับความปลอดภัย
- DISAPA– ทำเครื่องหมายบรรทัดโปรแกรม BASIC เพื่อซ่อน
- SECURE– ซ่อนเส้นทั้งหมดที่ทำเครื่องหมายไว้DISAPAเพื่อไม่ให้สามารถมองเห็นได้ด้วยLIST
คำหลักการเขียนโปรแกรมเชิงโครงสร้าง
- ELSE– อนุญาตให้มีสาขาทางเลือกสำหรับเงื่อนไขIF/THEN
- REPEAT– จุดเริ่มต้นของโครงสร้างลูปREPEAT/UNTIL
- UNTIL– กำหนดเงื่อนไขของลูปสำหรับ โครงสร้างลู REPEATปUNTILและทำเครื่องหมายจุดสิ้นสุดของลูป
- RCOMP– คืนค่า เงื่อนไขที่ใช้ล่าสุดIF/ THEN/ELSE
- LOOP– กำหนดจุดเริ่มต้นของลูปที่จะทำงานจนกว่าEXIT IFเงื่อนไขจะเป็นจริง
- EXIT IF– เงื่อนไขเป็นจริง ดังนั้นจึงออกจากโครงสร้าง ปัจจุบัน LOOP/END LOOP
- END LOOP– กำหนดจุดสิ้นสุดของลูปที่จะทำงานจนกว่าEXIT IFเงื่อนไขจะเป็นจริง
- PROC– กำหนดจุดเริ่มต้นของซับรูทีนที่มีชื่อ
- END PROC– กำหนดจุดสิ้นสุดของซับรูทีนที่มีชื่อ
- CALL– กระโดดไปยังซับรูทีนที่มีชื่อซึ่งกำหนดด้วยPROC/ END PROCและอยู่ที่นั่นต่อไป
- EXEC– เรียกใช้ซับรูทีนที่มีชื่อซึ่งกำหนดด้วยPROC/ END PROCจากนั้นส่งค่ากลับ
- LOCAL– กำหนดนิยามใหม่ของตัวแปรเพื่อใช้ในโครงสร้าง
- GLOBAL– ยกเลิกผลของLOCALคำสั่ง ก่อนหน้า
คำสำคัญเบ็ดเตล็ด
- CGOTO– เทียบเท่ากับGOTOแต่ยอมรับนิพจน์ที่คำนวณได้
- RESET– เลื่อนDATAตัวชี้ไปยังหมายเลขบรรทัดที่กำหนด
- PAUSE– หยุดการทำงานของโปรแกรมชั่วคราวเป็นเวลาตามจำนวนวินาทีที่กำหนด
อื่น
- $และ%ยังถือเป็นคำหลักอีกด้วย รวมทั้งหมด 114 คำ
เกร็ดความรู้
วงBarcelonaตั้งชื่ออัลบั้มเปิดตัวในปี 1999 ว่าSimon Basicเพื่อเป็นการระลึกถึง Simon Basic โดยอัลบั้มนี้มีเพลง "C-64" รวมอยู่ด้วย
แผนกต้อนรับ
Creative Computingระบุว่า Simons' BASIC "เกือบจะทำให้ 64 กลายเป็นคอมพิวเตอร์เครื่องใหม่ (และน่าจะเป็นเครื่องที่ควรจะเป็นตั้งแต่แรก)" นิตยสารยกย่อง "คู่มือที่ยอดเยี่ยม" ซึ่งแตกต่างจากเอกสารประกอบที่ไม่ดีของ Commodore และทำนายว่ามันจะกลายเป็น "ภาษามาตรฐานสำหรับการเขียนโปรแกรมเครื่อง … Commodore ควรวางแผนที่จะผลิตสำเนาจำนวนมากเพราะมันจะขายหมดเร็ว" [ 4 ] Ahoy!เขียนว่า "ถ้าคุณเขียนโปรแกรมด้วย BASIC และบังเอิญเห็นผลิตภัณฑ์นี้บนชั้นวางของตัวแทนจำหน่าย อย่าถามคำถามใดๆ อย่าลังเล ซื้อเลย!" นิตยสารยกย่องพลังของ Simons' BASIC และ "คู่มือที่ยอดเยี่ยม" และระบุว่า "ราคาของมันทำให้มันเป็นหนึ่งในข้อเสนอที่ดีที่สุดสำหรับ Commodore 64" [ 5 ] บทวิจารณ์ ของRUNไม่ค่อยดีนัก โดยระบุว่า "คำสั่งที่มีประสิทธิภาพและมีประโยชน์มากมาย... น่าเสียดายที่ถูกนำไปใช้ได้ไม่ดีนักสำหรับแพ็คเกจเชิงพาณิชย์ มีการตรวจสอบพารามิเตอร์คำสั่งน้อยมาก และหลายสิ่งหลายอย่างถูกมองข้ามหรือละเลย" [ 6 ]
ตลับโปรแกรม SIMONS' BASIC รุ่นดั้งเดิม (ที่ไม่มีส่วนขยาย) ไม่มีฟังก์ชันสำหรับการอ่านช่องข้อผิดพลาดบน ไดรฟ์ดิสก์ Commodore 1541และCommodore 1571และไม่สามารถแสดงรายการไฟล์ในไดเร็กทอรี หรือออกคำสั่ง DISK บนไดรฟ์ดิสก์อื่นใดนอกจากไดรฟ์หมายเลข 8 เมื่อมีการเชื่อมต่อไดรฟ์ดิสก์มากกว่าหนึ่งตัวกับ Commodore 64 และในขณะที่คำหลัก BASIC 2.0 "มาตรฐาน" ส่วนใหญ่สามารถย่อได้โดยการพิมพ์ตัวอักษรตัวแรกหรือตัวอักษรตัวแรกและตัวที่สอง แล้วกดปุ่ม SHIFT ค้างไว้ขณะพิมพ์ตัวอักษรตัวที่สอง (หรือตัวที่สาม) หลังจากนั้น คำหลัก SIMONS' BASIC ทั้งหมดจะต้องเขียนแบบเต็มอย่างถูกต้องตามที่แสดงในคู่มือผู้ใช้ที่แนบมาด้วย ซึ่งรวมถึงคำสั่ง COLOUR (ซึ่งเลือกสีพื้นหลังและสีขอบภายนอก) และ CENTRE (ซึ่งพิมพ์ข้อความที่ "อยู่ตรงกลาง" บนหน้าจอ) ซึ่งทั้งสองคำสั่งเขียนตามภาษาอังกฤษแบบบริติชและถูกรวมเข้าไว้ใน SIMONS' BASIC ในลักษณะนั้น
ลิงก์ภายนอก
- คู่มือผู้ใช้ฉบับพื้นฐานของ Simonsเกี่ยวกับ Internet Archive โดย David Simons, Commodore Computers, 1983 สามารถดาวน์โหลดได้ในรูปแบบ PDF
- คู่มืออ้างอิงภาษาอิตาลีเบื้องต้นของไซมอนส์โดย เดวิด ไซมอนส์ บรรณาธิการคอมโมดอร์ ปี 1983
- กระทู้ในฟอรัม Lemon64พร้อมข้อมูลที่ไม่เป็นทางการบางส่วนจาก David Simons เอง
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ไซมอนส์ เบสิก
Simons' BASIC เป็นส่วนขยายของBASIC 2.0สำหรับ คอมพิวเตอร์บ้าน Commodore 64เขียนโดย โปรแกรมเมอร์ ชาวอังกฤษ David Simons ในปี 1983 ซึ่งขณะนั้นเขามีอายุ 16 ปี...
คุณสมบัติ
Simons' BASIC ได้เพิ่มคุณสมบัติมากมายให้กับ Commodore BASIC 2.0: [ 2 ]
คีย์เวิร์ดการจัดการสไปรท์ (มอนสเตอร์)
MOB SET – เปิดใช้งานสไปรท์และกำหนดคุณลักษณะของสไปรท์นั้น MMOB – วางตำแหน่งสไปรท์บนหน้าจอ RLOCMOB – ทำให้ตัวละครเคลื่อนที่อย่างราบรื่นจากตำแหน่งหนึ่งไปยังอีกตำแหน่งหนึ่ง CMOB – ตั้งค่าสีหลักสองสีสำหรับสไปรท์หลายสี MOB OFF – ปิดใช้งานสไปรท์ DETECT –...
คำหลักสำหรับการจัดการกราฟิกความละเอียดสูง
HIRES – เริ่มต้นใช้งานโหมดกราฟิกความละเอียดสูง MULTI – เริ่มต้นโหมดกราฟิกหลายสี NRM – กลับสู่หน้าจอแสดงข้อความ LOW COL – เปลี่ยนสีของกราฟ HI COL – กลับไปใช้สีการวาดกราฟแบบเดิม PLOT – วาดพิกเซล LINE – ลากเส้น CIRCLE – วาดวงกลม ARC – วาดส่วนโค้ง ANGL –...