Accueil🇫🇷Chercher

Simons' BASIC

Le Simons' 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.

La cartouche d'extension Simon's Basic commercialisée par Commodore

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 ajoute 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.

Les instructions

Gestion des sprites

  • 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

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

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)

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)

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

Gestion des périphériques d'entrées

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

Définition des sprites et des caractères graphiques

  • @ - reprĂ©sente une ligne de graphique d'un sprite ou d'un caractère graphique
  • DESIGN - utilise les lignes @ pour dĂ©finir un sprite ou un caractère graphique

Gestion des événements d'erreurs

  • ON ERROR - dĂ©fini une sĂ©quence de code lors d'une dĂ©tection d'une condition d'erreur
  • OUT - fin d'une sĂ©quence de code de gestion d'erreur
  • NO ERROR - annule ON ERROR et rend le contrĂ´le des erreurs BASIC Ă  l'interprĂ©teur

Gestion du lecteur de disquettes

  • DIR - affiche le rĂ©pertoire d'une disquette sans effacer un Ă©ventuel programme BASIC stockĂ© en mĂ©moire
  • DISK - envoie une commande au lecteur de disquette
  • SCRSV - sauvegarde un Ă©cran de texte sur disquette
  • SCRLD - recharge un Ă©cran de texte depuis une disquette

Gestion de l'imprimante

  • HRDCPY - imprime le contenu d'un Ă©cran texte
  • COPY - imprime le contenu graphique d'un Ă©cran

Gestion des chaînes de caractères

  • INSERT - insère un champ texte Ă  l'intĂ©rieur d'un autre champ
  • INST - similaire Ă  INSERT, mais rĂ©Ă©crit par-dessus au lieu d'insĂ©rer
  • PLACE - recherche d'un champ texte dans le contenu d'un autre champ
  • DUP - duplique un champ de texte un nombre donnĂ© de fois

Gestion de format de texte

  • AT - affiche un champ texte aux coordonnĂ©es d'un Ă©cran texte
  • CENTER - centre un champ texte au milieu d'un Ă©cran texte
  • USE - dĂ©fini un format numĂ©rique d'un champ texte
  • LIN - retourne la position verticale du curseur

Instructions mathématiques

  • MOD - effectue une division et restitue le reste de la division entière
  • DIV - effectue une division et restitue le quotient de la division entière
  • FRAC - restitue la partie fractionnelle d'un nombre
  • EXOR - effectue une opĂ©ration logique OR exclusive

Instructions d'aides Ă  la programmation

  • AUTO - gĂ©nère automatiquement des numĂ©ros de lignes lors de la saisie d'un programme BASIC
  • RENUMBER - renumĂ©rote les lignes d'un programme BASIC (mais ne corrige pas les redirections GOTO/GOSUB)
  • OLD - restaure un programme BASIC accidentellement effacĂ© par l'instruction NEW
  • KEY - assigne un champ texte en tant que macro Ă  une touche de fonction
  • DISPLAY - affiche toutes les touches de fonctions macro
  • MERGE - fusionne un programme BASIC de la disquette Ă  celui actuellement en mĂ©moire
  • PAGE - affiche un programme BASIC page par page
  • OPTION - affiche en surbrillance les instructions spĂ©cifiques Simons' BASIC lors de l'instruction LIST
  • DELAY - modifie la vitesse d'affichage du scroll lors d'une commande LIST
  • FIND - recherche un champ texte dans un programme BASIC
  • TRACE - affiche la ligne de programme actuellement en cours lorsqu'un programme est exĂ©cutĂ©
  • RETRACE - affiche le rĂ©sultat d'un trace
  • DUMP - affiche toutes les valeurs des variables exceptĂ© les tableaux de variables
  • COLD - reset Ă  froid du C64

Gestion de la sécurité du code source

  • DISAPA - cache une ligne de programme BASIC
  • SECURE - cache toutes les lignes marquĂ©s avec DISAPA afin qu'elles n'apparaissent pas lors d'un affichage avec LIST

Instructions de programmation structurée

  • ELSE - permet un choix alternatif lors d'une condition IF/THEN
  • REPEAT - dĂ©marre une boucle de type REPEAT/UNTIL
  • UNTIL - dĂ©fini la condition de boucle Ă  REPEAT/UNTIL et en fixe la fin
  • RCOMP - reprend la dernière condition IF/THEN
  • LOOP - dĂ©fini le dĂ©but d'une boucle qui va jusqu'Ă  ce que la condition EXIT IF soit vraie
  • EXIT IF - si la condition est vrai, quitte la structure LOOP/END LOOP
  • END LOOP - dĂ©fini la fin de la boucle jusqu'Ă  ce que la condition EXIT IF soit vrai
  • PROC - dĂ©fini le dĂ©but d'une procĂ©dure nommĂ©e
  • END PROC - dĂ©fini la fin d'une procĂ©dure nommĂ©e
  • CALL - saute Ă  une procĂ©dure nommĂ©e dĂ©fini par PROC/END PROC et y reste
  • EXEC - saute Ă  une procĂ©dure nommĂ©e dĂ©fini par PROC/END PROC et revient Ă  la suite du code après exĂ©cution
  • LOCAL - redĂ©fini une variable utilisĂ©e dans une procĂ©dure
  • GLOBAL - inverse l'effet de la prĂ©cĂ©dente commande LOCAL

Instructions diverses

  • CGOTO - Ă©quivalent du GOTO, mais accepte des expressions issues de calculs
  • RESET - dĂ©place le pointeur d'exĂ©cution DATA Ă  une ligne dĂ©finie
  • PAUSE - suspend l'exĂ©cution du programme pour un temps spĂ©cifiĂ© en secondes

Autres fonctionnalités

  • $ and % sont Ă©galement considĂ©rĂ©s comme instructions pour un total de 114 instructions supplĂ©mentaires.
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.