อ่าน 3 นาที
ซูเปอร์เอ็กซ์แพนเดอร์ 64
Super Expander 64 เป็นโปรแกรมเสริมแบบตลับเกมสำหรับโปรแกรม แปล ภาษา BASIC ในตัวของ คอมพิวเตอร์บ้าน Commodore 64 เผยแพร่โดย Commodore Business Machines ในปี 1983 ภาษา BASIC ในตัวของ...
ซูเปอร์เอ็กซ์แพนเดอร์ 64
Super Expander 64 เป็นโปรแกรมเสริมแบบตลับเกมสำหรับโปรแกรม แปลภาษา BASIC ในตัวของคอมพิวเตอร์บ้านCommodore 64เผยแพร่โดยCommodore Business Machinesในปี 1983 ภาษา BASIC ในตัวของ C64 หรือCommodore BASICนั้นดัดแปลงมาจากPETและVIC-20และภาษาดังกล่าวไม่มีการรองรับฮาร์ดแวร์เสียงและกราฟิกของระบบโดยตรง การเข้าถึงฮาร์ดแวร์ต้องทำผ่านการเข้าถึงตำแหน่งหน่วยความจำที่แมปกับรีจิสเตอร์ฮาร์ดแวร์เฉพาะโดยใช้ คำสั่ง `and` Super Expander 64 เพิ่มฟังก์ชันสำหรับการวาดภาพกราฟิก การใช้สไปรท์การอ่านจอยสติ๊ก การเล่นเสียง และคุณสมบัติอื่นๆ PEEKPOKE
โค้ดส่วนเกินจะถูกแมปไปยังพื้นที่ 8 กิโลไบต์ใน "ตลับเกมส่วนล่าง" $8000-$9FFFซึ่งช่วยลดขนาดไฟล์ 38,911 ไบต์สำหรับโปรแกรมของผู้ใช้ลง 8 กิโลไบต์
กราฟิก
หลังจากตั้งค่าหน้าจอสำหรับกราฟิก "ความละเอียดสูง" (320 × 200 พิกเซลขาวดำ) หรือหลายสี (160 พิกเซลกว้าง × 200 พิกเซลในสี่สี) ด้วยGRAPHICคำสั่งแล้ว เราสามารถวาดเส้น วงกลม วงรี ส่วนโค้ง กล่อง และอื่นๆ ได้โดยใช้คำสั่งDRAW, CIRCLE, และBOXคำสั่งPAINTจะ "เติมสี" ในพื้นที่ที่ล้อมรอบด้วยเส้น เช่น ภายในของCIRCLEหรือBOXคำCHARสั่ง ใช้สำหรับ "พิมพ์" ตัวอักษรจากROM ตัวสร้างตัวอักษร ลงบนหน้าจอกราฟิกบิตแมปและจะเก็บเนื้อหาของพื้นที่สี่เหลี่ยมผืนผ้าของกราฟิกความละเอียดสูงไว้ในตัวแปรสตริงและจะ "ประทับ" กลับลงบนหน้าจอในตำแหน่งใดๆ ก็ได้ "กราฟิกในสตริง" ดังกล่าวสามารถใช้เพื่อถ่ายโอนสิ่งที่วาดบนหน้าจอความละเอียดสูงไปยังรูปแบบสไปรต์แปดแบบใดแบบหนึ่งได้ SSHAPEGSHAPEGSHAPE
สไปรท์
นอกจากคำสั่งต่างๆ สำหรับเริ่มต้น จัดตำแหน่ง และเคลื่อนย้ายสไปรต์ (หรือ Movable Object Blocks ตามที่ Commodore เรียก ซึ่งเป็นองค์ประกอบกราฟิกที่รองรับโดยฮาร์ดแวร์และสามารถเคลื่อนที่ได้อย่างอิสระบนหน้าจอโดยไม่ขึ้นกับกราฟิกและข้อความอื่นๆ บนหน้าจอ) แล้ว Super Expander ยังมีเครื่องมือในตัวสำหรับแก้ไขรูปแบบของสไปรต์ 8 ตัว (เรียกใช้ด้วยSPRDEFคำสั่ง) ทั้งในโหมดความละเอียดสูง (24 × 21 พิกเซล) หรือโหมดหลายสี (กว้าง 12 × 21 พิกเซล)
แม้แต่ในโปรแกรม BASIC ก็ยังมีวิธีการใช้ "การขัดจังหวะ" ในกรณีที่สไปรท์สองตัวชนกัน สไปรท์ชนกับกราฟิกและ/หรือข้อความอื่นๆ บนหน้าจอ หรือเมื่อมีการเปิดใช้งานปากกาแสงที่เชื่อมต่ออยู่COLINTคำสั่งจะตั้งค่าการขัดจังหวะ โดยชี้ไปยังหมายเลขบรรทัด BASIC เริ่มต้นของ " ตัวจัดการการขัดจังหวะ " ซึ่งต้องลงท้ายด้วยRETURNคำสั่ง (ส่วนหนึ่งของ BASIC มาตรฐานที่ยังไม่ได้ขยาย) เพื่อถ่ายโอนการควบคุมกลับไปยังส่วน "หลัก" ของโปรแกรมที่ถูกขัดจังหวะ
เสียง
การเล่นลำดับโน้ตดนตรีถูกเชื่อมต่อเข้ากับPRINTคำสั่ง BASIC มาตรฐานโดยใช้ "อักขระควบคุม" พิเศษ คล้ายกับการควบคุมเคอร์เซอร์ การเปลี่ยนสี และอักขระควบคุมอื่นๆ ตัวอย่างเช่นใช้เล่นสเกลที่ขึ้นสูง คำสั่งต่างๆ เช่นและใช้เพื่อกำหนดจังหวะการเล่นและโทนเสียงของลำดับโน้ต PRINTCHR$(6);"CDEFGAB"TEMPOTUNE
จุดเด่นอย่างหนึ่งของฟีเจอร์นี้คือ การพิมพ์อักขระควบคุมพิเศษ (โดยการกดCTRL+ F) พร้อมกับเครื่องหมายอัญประกาศ แล้วลบเครื่องหมายอัญประกาศออก เครื่องจะ "เล่น" สิ่งที่พิมพ์ขณะแก้ไขโปรแกรม และหากกดปุ่ม G เครื่องจะเล่นเสียง "ปิง!" ที่มีระดับเสียงของโน้ต G...!
ฮาร์ดแวร์ I/O
ฟังก์ชันต่างๆ เช่นRJOY`init` RPENและRPOT`init` จะอ่านสถานะของจอยสติ๊กปากกาแสงหรือแป้นควบคุม แบบอนาล็อกที่เชื่อมต่ออยู่ เมื่อรวมกับคำสั่งที่เกี่ยวข้องกับการเคลื่อนไหวของสไปรท์แล้ว จะใช้โค้ด BASIC เพียงบรรทัดเดียวในการทำให้สไปรท์เคลื่อนที่ไปในทิศทางที่ระบุโดยจอยสติ๊กที่เชื่อมต่ออยู่
เบ็ดเตล็ด
มีคำสั่ง หนึ่งKEYที่สามารถตั้งค่าปุ่มฟังก์ชันทั้งสี่บนแป้นพิมพ์ของเครื่อง 64 ให้ "ป้อน" สตริงใดๆ ก็ได้ โดยค่าเริ่มต้น ปุ่มเหล่านี้จะถูกตั้งค่าให้พิมพ์คำสั่งต่างๆ เช่นRUN, LIST, SPRDEF, GRAPHICSและอื่นๆ แต่ผู้ใช้สามารถเปลี่ยนการตั้งค่านี้ได้โดยใช้KEYคำสั่งในโหมดโดยตรงหรือภายใต้การควบคุมของโปรแกรม
ปัญหาทางเทคนิค
BASIC ทุกเวอร์ชันบนเครื่อง 8 บิตของคอมโมดอร์ใช้ระบบการแทนที่คำหลักของ BASIC ด้วยรหัสไบต์เดียว เช่น คำว่า " PRINT" จะถูกแทนที่ด้วยค่าไบต์เดียวหรือโทเค็นแทนที่จะเป็นรหัส ASCII ห้าตัวสำหรับตัวอักษรห้าตัวในคำนั้น เนื่องจาก Super Expander เพิ่มคำสั่งมากกว่าที่ระบบนี้รองรับได้ จึงมีการนำระบบโทเค็นสองไบต์มาใช้สำหรับคำสั่งใหม่เหล่านั้น
เนื่องจากข้อบกพร่องบางอย่างในตัวแปลภาษา BASIC (การจัดการส่วน "THEN" ของโครงสร้าง IF/THEN ไม่ได้กระโดดผ่านเวกเตอร์ใน RAM แต่ใช้คำสั่ง JuMP โดยตรงไปยังรูทีนการถอดรหัสคำสั่ง BASIC มาตรฐานที่ยังไม่ได้ขยาย) คำสั่ง IF/THEN จึงจำเป็นต้องมีเครื่องหมายโคลอน (:) เพิ่มเข้าไปหลังคำว่า THEN หากคำสั่งถัดไปเป็นคำหลัก BASIC ที่ไม่เป็นมาตรฐานของ Super Expander ตัวอย่างเช่นจะแสดงข้อความ — ต้องเขียนใหม่ดังนี้— โปรดสังเกตเครื่องหมายโคลอนระหว่าง THEN และคำสั่ง DRAW ที่ Super Expander เพิ่มเข้ามา IF(condition)THENDRAW...?SYNTAXERRORIF(condition)THEN:DRAW...
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ซูเปอร์เอ็กซ์แพนเดอร์ 64
Super Expander 64 เป็นโปรแกรมเสริมแบบตลับเกมสำหรับโปรแกรม แปล ภาษา BASIC ในตัวของ คอมพิวเตอร์บ้าน Commodore 64 เผยแพร่โดย Commodore Business Machines ในปี 1983 ภาษา BASIC ในตัวของ...
กราฟิก
หลังจากตั้งค่าหน้าจอสำหรับกราฟิก "ความละเอียดสูง" (320 × 200 พิกเซลขาวดำ) หรือหลายสี (160 พิกเซลกว้าง × 200 พิกเซลในสี่สี) ด้วย GRAPHIC คำสั่งแล้ว เราสามารถวาดเส้น วงกลม วงรี ส่วนโค้ง กล่อง และอื่นๆ ได้โดยใช้คำสั่ง DRAW , CIRCLE , และ BOX คำสั่ง PAINT จะ...
สไปรท์
นอกจากคำสั่งต่างๆ สำหรับเริ่มต้น จัดตำแหน่ง และเคลื่อนย้ายสไปรต์ (หรือ Movable Object Blocks ตามที่ Commodore เรียก ซึ่งเป็นองค์ประกอบกราฟิกที่รองรับโดยฮาร์ดแวร์และสามารถเคลื่อนที่ได้อย่างอิสระบนหน้าจอโดยไม่ขึ้นกับกราฟิกและข้อความอื่นๆ บนหน้าจอ) แล้ว Super...
เสียง
การเล่นลำดับโน้ตดนตรีถูกเชื่อมต่อเข้ากับ PRINT คำสั่ง BASIC มาตรฐานโดยใช้ "อักขระควบคุม" พิเศษ คล้ายกับการควบคุมเคอร์เซอร์ การเปลี่ยนสี และอักขระควบคุมอื่นๆ ตัวอย่างเช่นใช้เล่นสเกลที่ขึ้นสูง คำสั่งต่างๆ เช่นและใช้เพื่อกำหนดจังหวะการเล่นและโทนเสียงของลำดับโน้ต...