Programmation | ||
Le X-Basic |
||
MSX-BASIC-KUN est un compilateur BASIC.Il permet de traduire un programme BASIC en langage machine pour le charger en mémoire. Ce programme s’éxècute alors 15 à 100 fois plus vite ! Il peut compiler la plupart des instructions et des fonctions de MSX-BASIC et peut travailler avec les chaînes de caractères et les nombres en simple précision. Il vous permettra de vous passer de l’assembleur, vos programmes peuvent être écrits en BASIC avec toutes ses facilités de compréhension tout en bénéficiant de la vitesse du langage machine.
(ndt : exemples : 10 CALL TURBO ON :FOR I=1 TO 10 ;… ou 10 PRINT “WAIT”: CALL Les blocs turbo CALL TURBO ON/OFF ne peuvent pas être emboîtés. Mais vous pouvez avoir plusieurs blocs fermés dans un programme. (ndt : en fait un CALL TURBO ON doit être obligatoirement suivi d’un CALL TURBO OFF avant qu’un autre CALL TURBO ON n’apparaisse) Les variables et les chaînes sont manipulées différemment à l'intérieur et à l'extérieur du bloc. Une fois que vous êtes hors du bloc, des variables et les chaînes utilisées dans le bloc sont perdues. Seuls les nombres entiers peuvent être définis en tant que valeurs communes.
Les objets compilés ne peuvent pas être sauvés en tant que programmes indépendants. L’interruption est disponible, tel que (1) ON, OFF etc. Mais il diminuera l'efficacité de la taille et de la vitesse de l'objet exécuté. Quelques instructions peuvent ne pas fonctionner correctement. EXEMPLE 100 GOTO 130 110 A=3/2 120 END 130 DEFINT A-Z 140 GOTO 110 Si vous exécutez ceci avec RUN, A vaut 1. Si vous exécutez ceci avec CALL RUN, A vaut 1.5, DEF ? ? ? est efficace quand il est rencontré pendant l'exécution dans le cas de l'interprète, alors qu'elle dépend de l'ordre dans le programme (n° de ligne) dans l'autre cas. Une opération un peu compliquée peut causer facilement une erreur dans une formule trop complexe. car ce compilateur a seulement un niveau d’empilement pour ça. Casser une formule longue en plusieurs petites. Si vous faites CALL RUN sur un programme sans fin, vous ne pouvez pas l'arrêter. Créez une instruction pour vérifier le clavier pour y remédier. EXEMPLE 100 GOTO 100 'Reset or power off to stop 100 IF INKEY$="" THEN 100 110 END is better. 2. Différence avec le MSX-BASIC Liste de instructions, de commandes et de fonctions qui ne peuvent pas être compilés: AUTO,(ndt: pas important) BASE, BLOAD, BSAVE, CALL, CDBL, CINT, CLEAR, CLOAD, CLOAD?, CLOSE,CONT, CSAVE, CSNG, CVD, CVI, CVS, DEFFN, DELETE, DRAW, DSKF, EOF, ERASE, ERL,ERR, ERROR, EQV, FIELD, FILES, FPOS, FRE, GET, IMP, INPUT#, KEY LIST, LFILES,LINEINPUT#, LIST, LLIST, LOAD, LOC, LOF, LPRINT USING, LSET, MAXFILES, MERGE,MOTOR, MKD$, MKI$, MKS$, NAME, NEW, ON ERROR GOTO, ON INTERVAL GOSUB (du à un bug), OPEN, PLAY, PRINT#, PRINT USING, PUT KANJI, RENUM, RESUME, RSET, SAVE, SPC, TAB, TRON, TROFF, WIDTH. Liste des instructions limitées. CIRCLE: les angles de début et de fin et l'aplatissement ne peuvent pas être indiqués. COPY: Seulement le copy de graphique est disponible. DEFDBL: Mêmes que DEFSNG. DIM: Doit venir en premier dans le bloc turbo. INPUT: Peut manipuler seulement une variable à la fois. KEY: ON KEY GOSUB, KEY(n) ON/OFF seulement. LOCATE: x, y doit être donné dedans comme ensemble. Aucun paramètre de bouton de curseur. NEXT: Les variables après NEXT ne peuvent pas être omises. ON STOP GOSUB, ON INTERVAL GOSUB non disponible. PRINT: les virgules travaillent d'une manière différente. Aucun emballage pour des chiffres. PUT: PUT SPRITE seulement. RUN: Les variables ne seront pas initialisées. SCREEN: Mode d'écran et taille de sprite seulement. SET: SET PAGE seulement. STOP: Mêmes que END. USR : Le type de paramètre doit être un nombre entier. VARPTR : Le nombre de dossier ne peut pas être donné comme paramètre. Autrement il n'y a aucune différence significative. Généralement des commandes et les fonctions d'entrée-sortie, et l'édition des commandes ne peuvent pas être compilées. Naturellement elles sont disponibles dans le mode direct, et à l'extérieur du bloc turbo. Vous pouvez éditer, corriger et économiser un programme dans MSX-BASIC et l'exécuter par le CALL RUN. Si vous voulez employer PRINT# pour écrire des caractères sur GRP : il faut l'employer en dehors du bloc turbo. Autrement étudier l'échantillon, « PRINT.TRB ». Si vous voulez employer PLAY, employer le compilateur de BGM, et obtenir le son par USR (n). (ndt : sinon utiliser SOUND) 3. De nouveaux dispositifs se sont ajoutés Trois commandes spéciales sont disponibles en commençant une ligne de remarque avec quelques caractères spécifiques. #I Remplace INLINE. Vous pouvez écrire une routine de langage machine courte. 100 DEFINT A-Z 110 K=1 120 '#I &H2A,K 130 '#I &HF3,&HCD,@150,&HFB 140 END 150 'SUB 160 RETURN 120 signifie LD HL,(K) ; K doit être une variable simple de type nombre entier. 130 signifie DI CALL @150; Faire attention, cette ligne ne sera pas RENUMed. EI # C- et #C+ Remplace CLIP. En modes d'écran 5 à 8 (excepté pour PAINT, et CIRCLE), Affichage ON ou OFF. 10 SCREEN 8 20 '#C- 30 LINE(0,0)-(255,255) 'Y CLIPPED 40 IF INKEY$="" THEN 40 50 '#C+ 60 LINE(0,0)-(255,255) 'NOT CLIPPED 70 IF INKEY$="" THEN 70 # Vérifie 10 FOR I%=0 TO &H7FFF 20 NEXT I% Ce programme finira vers le haut dans une "Overflow error" dans MSX-BASIC. Et si il est exécuté avec le CALL RUN, ce sera une boucle sans fin. Si #N+ est spécifié, il finira normalement. Ce code diminuera l'efficacité de l'objet, aussi ne pas l’utiliser à moins qu'il ne soit vraiment nécessaire. Pour libérer de l’espace faites #N-. NOTE : Dans MSX2+ Sanyo vous pouvez trouver une nouvelle commande : CALL BC Cette commande active les options du COMPILATEUR BASIC. |
|
|
|
||
|
|
|
|
|
|
|