Super Expander 64 - Super Expander 64

Super Expander 64 bylo prodloužení kazeta založené na vestavěný BASIC V2 interpret tehdy nesmírně populární Commodore 64 domácího počítače : Od 64 byl vyvinut ve spěchu, Commodore jednoduše přizpůsobeno BASIC V2 z PET řady počítačů a VIC 20 pro jejich nový stroj, bez podpory pokročilých zvukových a grafických schopností 64. Aby mohli pokročilý hardware využít, museli si programátoři BASIC zapamatovat hardwarové adresy a příkazy „ POKE “ přímo do zařízení mapovaných do paměti. Pozdější 8bitové systémy od Commodore si nechaly vylepšit tlumočníky BASIC, aby podporovaly speciální hardware, a díky kazetě Super Expander 64 mohli uživatelé Commodore 64 „dovybavit“ svůj stroj BASICem, aby odpovídal schopnostem hardwaru.

Extra kód byl namapován do oblasti „spodní kazety“ 8 kilobajtů na 8 000–9 $ 9FFF, čímž se o 8 kB zmenšilo 38 911 bajtů pro uživatelské programy.

Grafika

Po inicializaci obrazovky pro grafiku „s vysokým rozlišením“ (320 × 200 monochromatických pixelů) nebo vícebarevnou (160 širokých × 200 pixelů ve čtyřech barvách) pomocí příkazu GRAPHIC bylo možné kreslit čáry, kruhy, elipsy, oblouky, pole a další pomocí příkazy DRAW, CIRCLE a BOX. PAINT by „zaplnil“ oblast ohraničenou čarami, např. Vnitřek KRUHU nebo BOXU. Příkaz CHAR byl použit k "tisku" znaků z ROM generátoru znaků na obrazovku bitmapové grafiky. SSHAPE a GSHAPE by ukládaly obsah obdélníkové oblasti grafiky ve vysokém rozlišení do řetězcové proměnné a GSHAPE by ji „vtiskly“ zpět na obrazovku na libovolných místech. Takový „graphics-in-a-string“ lze také použít k přenosu něčeho nakresleného na obrazovce hi-res do jednoho z osmi sprite vzorů.

Skřítci

Kromě řady příkazů k inicializaci, umístění a pohybu spritů (nebo bloků pohyblivých objektů, jak je nazýval Commodore; hardwarově podporované grafické prvky, které se mohly volně pohybovat po obrazovce nezávisle na jiné grafice a textu na obrazovce), měl Super Expander zabudovaný v nástroji pro úpravu vzoru 8 spritů (vyvolaných příkazem SPRDEF), a to buď v režimu s vysokým rozlišením (24 × 21 pixelů) nebo vícebarevném (12 širokých × 21 pixelů).

V programu BASIC dokonce existoval způsob implementace „přerušení“, pokud došlo ke kolizi dvou sprajtů, pokud došlo ke kolizi skřítka s jinou grafikou a / nebo textem na obrazovce nebo pokud bylo aktivováno připojené světelné pero. Příkaz COLINT nastavil přerušení a ukázal na počáteční číslo řádku BASIC „obsluhy přerušení“, které muselo končit příkazem RETURN (část standardního, nerozbaleného jazyka BASIC), aby bylo možné přenést kontrolu zpět na přerušené, “hlavní řádek "součást programu.

Zvuk

Přehrávání sekvence hudebních not bylo závislé na standardním příkazu BASIC „PRINT“ pomocí speciálního „ovládacího znaku“, podobně jako ovládání kurzoru, změny barev a další ovládací znaky. Např. Hrál rostoucí stupnici. Příkazy jako TEMPO a TUNE byly použity k nastavení tempa přehrávání a zabarvení sekvence not. PRINT CHR$(6);"CDEFGAB"

„Quirk“ této funkce spočívá v tom, že zadáním speciálního ovládacího znaku (stisknutím CTRL + F ) spolu s uvozovkou a následným smazáním uvozovky by stroj „přehrával“ vše, co bylo napsáno při úpravách programu; stiskněte klávesu G a stroj zahrál „Pling!“ s výškou tónu G ...!

Hardwarové I / O

Funkce jako RJOY, RPEN a RPOT budou číst stav připojeného joysticku, světelného pera nebo analogového „pádla“. V kombinaci s příkazy souvisejícími s pohybem sprite potřeboval pouze jeden řádek kódu BASIC, aby se pohyb sprite provedl ve směru naznačeném připojeným joystickem.

Smíšený

K dispozici byl příkaz KEY, který nastavil čtyři funkční klávesy na klávesnici 64 tak, aby „zadávaly“ libovolný řetězec. Ve výchozím nastavení byly tyto klávesy nastaveny tak, aby zadávaly příkazy jako RUN, LIST, SPRDEF, GRAPHICS a další, ale uživatel to mohl změnit pomocí příkazu KEY v přímém režimu nebo pod kontrolou programu.

Technické problémy

Všechny verze BASICu na 8bitových počítačích Commodore používaly schéma nahrazování klíčových slov BASIC jednobajtovým kódem - např. Slovo „ PRINT “ by bylo nahrazeno hodnotou jednoho bajtu nebo tokenem , místo pěti ASCII kódů pro pět písmen ve slově. Super Expander přidal více příkazů, než mohl tento systém pojmout, takže byl implementován systém dvoubajtových tokenů pro nové příkazy.

Kvůli vtípku v interpretu BASIC (manipulace s „THEN-part“ konstruktu IF / THEN nepřeskočila přes vektor v RAM, ale místo toho převzala přímý JuMP na standardní, neexpandovanou rutinu dekódování příkazů BASIC), IF / THEN příkazy potřebovaly mít další dvojtečku (:) vloženou hned za THEN klíčové slovo, pokud byl následující příkaz jedním z nestandardních BASIC klíčových slov Super Expander. Například by přineslo zprávu - člověk ji musel napsat jako - všimněte si dvojtečky mezi POTOM a příkazem DRAW přidaným Super Expanderem. IF (condition) THEN DRAW ...?SYNTAX ERRORIF (condition) THEN:DRAW ...


Příručka je k dispozici online jako etext


Reference

  1. ^ „Návod k použití kazety SUPER EXPANDER 64“ . Archivovány od originálu dne 29. září 2007.