Simon's BASIC

Un article de Wikipédia, l'encyclopédie libre.

Le Simon's BASIC est une extension du BASIC V2 de Commodore utilisé par le Commodore 64. Écrit en 1983 par un jeune programmeur anglais de 16 ans, David Simons, il a été commercialisé par Commodore sous forme de cartouche d'extension. Il a également été diffusé de façon non officielle sous forme de fichier exécutable.

Sommaire

[modifier] Contenu

114 instructions sont ajoutées au BASIC V2 de Commodore dans le but d'exploiter le potentiel multimédia du Commodore 64 de façon simplifiée. Le jeu d'instructions étendu rajoute des commandes pour gérer les sprites, les modes graphiques haute résolution, le SID pour le son. Le Simon's BASIC ajoute également des instructions permettant une approche de programmation structurée.

[modifier] Les instructions

[modifier] Geston des iSprites

  • MOB SET - Définit les attributs d'un sprite
  • MMOB - position du sprite sur l'écran
  • RLOCMOB - déplace un sprite d'une position à une autre
  • CMOB - définit les deux couleurs principales pour des sprites multicouleurs
  • MOB OFF - désactive un sprite
  • DETECT - initialise la détection de collision du sprite
  • CHECK - vérifie s'il y a collision d'un sprite

[modifier] Gestion graphique haute résolution

  • HIRES - initialise un mode graphique haute résolution
  • MULTI - initialise un mode graphique multicouleurs
  • NRM - retourne à l'affichage textuel
  • LOW COL - change la couleur du pixel de dessin
  • HI COL - réinitialise la couleur du pixel de dessin à sa couleur d'origine
  • PLOT - dessine un pixel
  • LINE - dessine une ligne
  • CIRCLE - dessine un cercle
  • ARC - dessine un arc de cercle
  • ANGL - dessine un angle de cercle
  • PAINT - effectue une opération de remplissage de surface
  • REC - dessine un rectangle
  • BLOCK - dessine un rectangle plein
  • DRAW - dessine un ensemble de lignes
  • ROT - définit le facteur de zoom pour l'instruction DRAW
  • CHAR - écrit un caractère sur un écran en haute résolution
  • TEXT - écrit une chaîne de caractères sur un écran en haute résolution
  • TEST - détermine si à un emplacement défini le pixel est dessiné ou non

[modifier] Autres commandes graphiques

  • COLOUR - définit la couleur de fond d'écran et de la bordure d'écran
  • CSET - sélectionne une police de caractères
  • MEM - copie la police de caractères standard de la ROM en RAM
  • BCKGNDS - configure le mode étendu de la couleur de fond
  • FLASH - fait flasher l'écran
  • OFF - annule le flashage de l'écran provoqué par l'instruction FLASH
  • BFLASH - fait flasher la bordure de l'écran
  • FCHR - rempli une zone d'écran avec un caractère
  • FCOL - change la couleur des caractères dans une zone d'écran
  • FILL - une combinaison des instructions FCHR et FCOL
  • MOVE - copie une partie de l'écran
  • INV - affiche une partie de l'écran à l'envers
  • LEFT - déplace l'écran vers la gauche
  • RIGHT - déplace l'écran vers la droite
  • UP - déplace l'écran vers le haut
  • DOWN - déplace l'écran vers le bas
  • GRAPHICS - variable réservée toujours égale à $D000 (l'adresse de base du VIC-II)

[modifier] Gestion du son et du SID (microprocesseur)

  • MUSIC - joue une série de notes contenue dans une variable de chaîne de caractères
  • PLAY - détermine si le programme doit continuer ou non pendant l'exécution de l'instruction MUSIC
  • VOL - définit le volume principal
  • WAVE - définit la forme d'onde pour une voix
  • ENVELOPE - définit l'enveloppe ADSR d'une voix
  • SOUND - variable réservée, toujours égale à $D400 (l'adresse de base du SID)

[modifier] Gestion du clavier et des interruptions

  • FETCH - attend une saisie sur le clavier avec les restrictions définies par la commande FETCH
  • INKEY - teste si une touche de fonction a été saisie
  • ON KEY - teste une touche particulière et exécute un saut si oui
  • DISABLE - désactive la commande précédente ON KEY
  • RESUME - réactive la commande précédente ON KEY

[modifier] Gestion des périphériques d'entrées

  • JOY - informations en lecture de la position du joystick
  • POT - information en lecture du paddle
  • PENX - information en lecture de la position horizontale du stylo optique
  • PENY - information en lecture de la position verticale du stylo optique

[modifier] Définition des sprites et des caractères graphiques

  • @ - describes one line in a sprite or custom character graphic
  • DESIGN - uses neighboring @ lines to define a sprite or custom character

[modifier] Gestion des événements d'erreurs

  • ON ERROR - sets up a routine to trap error conditions
  • OUT - ends an error handling routine
  • NO ERROR - cancels ON ERROR and restores normal BASIC error handling

[modifier] Gestion du lecteur de disquettes

  • DIR - displays the disk directory without destroying the BASIC program in memory
  • DISK - sends a string to the disk drive's command channel
  • SCRSV - saves a text screen to disk
  • SCRLD - loads a text screen from disk

[modifier] Gestion de l'imprimante

  • HRDCPY - sends the text screen to the printer
  • COPY - sends the high-resolution screen to the printer

[modifier] Gestion des chaînes de caractères

  • INSERT - inserts one string into the middle of another
  • INST - similar to INSERT, but overwrites rather than inserting
  • PLACE - searches for one string in the middle of another
  • DUP - duplicates a character string a given number of times

[modifier] Gestion de format de texte

  • AT - prints a string at a given screen location
  • CENTER - centers a character string on the screen
  • USE - formats numeric data in strings based on a template
  • LIN - returns the vertical position of the cursor

[modifier] Instructions mathématiques

  • MOD - performs a division operation and returns the remainder
  • DIV - performs a division operation and returns the integer quotient
  • FRAC - isolates the fractional portion of a number
  • EXOR - performs an exclusive-OR logical operation

[modifier] Instructions d'aides à la programmation

  • AUTO - automatically generates line numbers as a BASIC program is entered
  • RENUMBER - renumbers a BASIC program (but does not fix GOTO/GOSUB statements)
  • OLD - undeletes a program accidentally removed by the NEW command
  • KEY - assigns a string as a macro to a function key
  • DISPLAY - displays all function key macros
  • MERGE - merges a BASIC program from disk into the program currently in memory
  • PAGE - displays a BASIC program listing in page format
  • OPTION - highlights Simons' BASIC keywords when using the LIST command
  • DELAY - varies the rate at which the LIST command scrolls the screen
  • FIND - searches the program for a string
  • TRACE - displays the line numbers as a program is running
  • RETRACE - displays results of a trace
  • DUMP - displays all variable values except for arrays
  • COLD - resets the C64

[modifier] Gestion de la sécurité du code source

  • DISAPA - marks a BASIC program line for hiding
  • SECURE - hides all lines marked with DISAPA so that they cannot be viewed with LIST

[modifier] Instructions de programmation structurée

  • ELSE - allows an alternative branch for IF/THEN conditionals
  • REPEAT - start of a REPEAT/UNTIL loop structure
  • UNTIL - defines the loop condition for a REPEAT/UNTIL loop structure, and marks its end
  • RCOMP - recapitulates the last IF/THEN conditional
  • LOOP - defines the start of a loop that will run until an EXIT IF conditional is true
  • EXIT IF - if conditional is true, exits the current LOOP/END LOOP structure
  • END LOOP - defines the end of a loop that will run until an EXIT IF conditional is true
  • PROC - defines the start of a named subroutine
  • END PROC - defines the end of a named subroutine
  • CALL - jump to a named subroutine defined with PROC/END PROC, and stay there
  • EXEC - call a named subroutine defined with PROC/END PROC, then return
  • LOCAL - redefines variables for use in structures
  • GLOBAL - reverses the effects of a previous LOCAL command

[modifier] Instructions diverses

  • CGOTO - equivalent to GOTO, but accepts calculated expressions
  • RESET - moves the DATA pointer to a given line number
  • PAUSE - pauses program execution for a specified number of seconds

[modifier] Autres fonctionnalités

  • $ and % are also considered keywords, for a total of 114.
Autres langues