MBASIC
Le MBASIC est l'exécution du ''' de BASIC de ''' d'icrosoft de ''' du ''' M de du langage de programmation de BASIC pour le CP/M du système d'exploitation sur le processeur à 8 bits d'Intel 8080 . MBASIC est un descendant des interprètes originaux en BASIC d'ALTAIR de qui étaient parmi les premiers produits de Microsoft. MBASIC était l'une des deux versions du BASIC empaquetées avec le Osborne 1 ordinateur de . Le " nommé ; MBASIC" ; est dérivé du nom de fichier de disque de l'interprète en BASIC.
Environnement
La version 5 de MBASIC a exigé un système de CP/M avec au moins le kB 28 de mémoire à accès sélectif (RAM) de et au moins d'une unité de disquette.
À la différence des versions de Microsoft BASIC-80 qui ont été adaptées aux besoins du client par des fabricants de l'ordinateur personnel pour employer les dispositifs de matériel particuliers de l'ordinateur, MBASIC s'est fondé seulement sur les appels du système d'exploitation de CP/M pour tous les entrée et rendement. Seulement la console de CP/M (écran et clavier), imprimante ligne par ligne, et les dispositifs de disque étaient disponibles.
MBASIC sous la forme uncustomized n'a eu aucune fonction pour les graphiques , la couleur, les manches, les souris, les communications périodiques , la gestion de réseau , le bruit, ou même une fonction d'horloge temps réel. MBASIC n'a pas pleinement approuvé les dispositifs du centre serveur CP/M du système d'exploitation, par exemple, il n'a pas soutenu des secteurs d'utilisateur de CP/M pour les dossiers de organisation sur une disquette. Puisque les systèmes de CP/M étaient en général à utilisateur unique et seul se tiennent, il n'y avait aucune disposition pour le dossier ou le verrouillage de l'enregistrement, ou n'importe quelle forme du traitement multitâche . Indépendamment de ces limitations, MBASIC a été considéré comme étant alors une exécution puissante et utile de BASIC.
Dispositifs
MBASIC était un interprète . Le texte source de programme a été stocké dans la mémoire sous la forme tokenized, avec des mots-clés de BASIC remplacés par les marques d'un-byte qui ont sauvé l'espace mémoire et l'exécution expédiée. Les programmes ont pu être énumérés sur l'écran pour éditer, ou économisé au disque dans un format binaire comprimé ou en tant que tout simplement texte du ASCII . Chaque ligne de source a été identifiée avec un nombre, qui pourrait être employé comme cible d'un transfert GOTO du . Seulement la ligne à l'écran éditant des commandes ont été fournies - aucune édition de curseur-adressage pleine page n'était disponible dû aux limitations de l'appui dans le centre serveur du système d'exploitation.
Programmer le texte, variables, amortisseurs de disque et tout le CP/M du système d'exploitation lui-même a dû partager l'espace d'adressage de 64 kilo-octets du processeur 8080. Typiquement quand le premier MBASIC commençant il y aurait moins de mémoire de 32 kB disponible pour des programmes et des données, même sur une machine a équipé de l'de pleins 64 kilo-octets de RAM. Pour permettre de plus grands et plus complexes programmes à courir, les versions postérieures de MBASIC ont soutenu les fonctions qui ont permis à des parties de texte de programme d'être lues dedans et exécutées sous la commande de programme (le " ; " À CHAÎNES du ; et " ; MERGE" ; rapports). Aucun soutien de " ; shell" ; l'exécution de commande a été fournie, bien que cette fonctionnalité pourrait être reproduite par un programmeur déterminé.
Des données pourraient être lues et stocké au disque en tant qu'ou dossiers séquentiels (délimités par la convention de CP/M de CR/LF à l'extrémité de chaque ligne) ou bien comme dossiers à accès sélectif de fixe-enregistrer-longueur, qui, donnés un programmeur suffisamment déterminé, pourraient être employés pour exécuter le base de données-type manipulation record. Le format binaire pour des nombres de la virgule flottante était de propriété industrielle à l'exécution, qui a signifié que des données pourraient seulement être échangées avec d'autres programmes using la représentation des textes d'ASCII ou bien avec la programmation étendue pour convertir le format binaire.
MBASIC a soutenu les types de données suivants :
données de caractère 8 bits, dans les cordes des caractères de la longueur 0 à 255,
nombres entiers de 16 bits,
virgule flottante à 32 bits (précision simple) de , équivalente à six chiffres décimaux, avec un exposant à deux chiffres,
virgule flottante 64-bit (à double précision), équivalente à seize chiffres décimaux, avec un exposant à deux chiffres.
Choix, concaténation, tâche, et essai de sous-chaîne inclus par opérateurs de corde pour l'égalité.
Des choix des types ci-dessus ont été permis avec jusqu'à 7 dimensions, mais aucune fonction n'était à condition que fonctionné sur les rangées (par exemple, aucune attribution des rangées).
À la différence de quelques autres réalisations de BASIC du temps, MBASIC n'a pas fourni l'appui pour des opérations de la matrice , des nombres complexes ou un type de données décimal du (BCD) pour des calculs financiers.
Toutes les opérations de virgule flottante ont été effectuées dans le logiciel puisque typiquement les systèmes de CP/M n'ont pas eu le matériel pour la virgule flottante. Les fonctions de mathématiques de fonction intégrée (sinus, cosinus, tangente, racine de notation, exponentielle, carrée normale) ont seulement donné des résultats de précision simple. Un générateur de nombre pseudo-aléatoire de de logiciel a été fourni ; ceci s'est fondé sur l'utilisateur pour introduire au clavier un nombre de graine pour obtenir un ordre des nombres utiles pour des jeux et quelques simulations.
Un avantage particulier de MBASIC était les messages d'erreur à texte intégral donnés pour la syntaxe et les erreurs d'exécution. MBASIC a également eu un " ; trace" ; fonctionner que ligne nombres montrée comme ils ont été exécutés ; tandis que ceci occupait le même espace d'écran que le rendement normal de programme, il était utile pour détecter des conditions telles que les boucles sans fin
Le contrôle de flux de programme dans MBASIC a été commandé près SI… PUIS… AUTREMENT… essais conditionnels, TANDIS QUE… WEND les boucles, et instructions GOTO et de GOSUB. Aucun rapport de CAS n'était disponible, bien que DESSUS… un GOTO… (GOTO calculé) branches fournies de multi-manière. Les sous-routines n'ont eu aucun paramètre et toutes les variables étaient globales. MBASIC n'a pas fait l'obligatoire de la programmation structurée pour des programmeurs et il était facile d'écrire le code de gaine .
Les versions tôt du BASIC de PC étaient infâmes pour un ou variable noms two-character qui ont rendu les significations des variables difficiles à se rappeler dans des programmes complexes. La version 5 de MBASIC a permis à des marques des variables d'être des jusqu'à 40 caractères significatifs longtemps, qui ont permis à des programmeurs de donner à des variables des noms lisibles.
Coups d'oeil, poussés, et fonctions d'utilisateur
Aucun examen des fondations sur les ordinateurs à 8 bits de la fin des années 1970 et du début des années 80 ne serait complet sans mentionner l'importance du COUP D'OEIL de et POUSSERAIT des fonctions de pour directement lire et écrire à la mémoire. Puisque ces systèmes n'ont typiquement eu aucune protection de mémoire , ceci a permis à un programmeur d'accéder à des parties du du système d'exploitation, ou de fonctions qui ne seraient pas autrement disponibles. Naturellement ceci a également présenté des moyens illimités des programmes de l'utilisateur d'accrocher le système. Par exemple, un programmeur de CP/M pourrait employer une fonction de POUSSÉ pour permettre au BASIC de commuter le dispositif de console à la porte série, si le BIOS de système soutenait ceci. Pour des machines avec les horloges temps réel, un ensemble d'instructions de COUP D'OEIL pourrait avoir été employé pour accéder au temps.
Pour des opérations plus complexes, MBASIC a permis les fonctions définies pour l'utilisateur qui pourraient s'appeler d'un programme de BASIC. Celles-ci ont été typiquement placées dans un secteur réservé de mémoire, ou poussées dans des constantes de corde, comme une série de codes machine (codes opération). MBASIC a également fourni l'INP de matériel et DEHORS les instructions qui ont indiqué et ont écrit directement aux 8080 ports d'entrée-sortie de matériel. Ceci a pu être employé pour commander les périphériques, cependant sur au moins un système commun de CP/M, l'Osborne 1, toutes les instructions d'entrée-sortie ont été acquis à l'usage du système.
L'utilisation du COUP D'OEIL et de la POUSSÉ, et de l'utilisateur du code machine fonctionne, fait des programmes de MBASIC non-portatifs entre les machines.
Successeurs de MBASIC
Microsoft a également vendu un compilateur de BASIC de CP/M (connu sous le nom de BASCOM) qui a employé une langue source semblable à MBASIC. Un programme mis au point sous MBASIC a pu être compilé avec BASCOM. Puisque le texte de programme n'était plus dans la mémoire et les éléments d'exécution du compilateur étaient plus petits que l'interprète, plus de mémoire était disponible pour des données d'utilisateur. La vitesse de l'exécution du programme a augmenté par le fois 8 à 10.
Toutes les fonctions de CP/M MBASIC étaient disponibles dans le à disques BASICA de PC d'IBM ou le GWBASIC qui ont rendu la migration des programmes à partir des systèmes de CP/M aux PC-compatibles possible. Typiquement des séquences d'échappement de formatage d'écran mises dans la version de CP/M seraient remplacées par les commandes de positionnement de curseur trouvées dans les versions de PC du BASIC, autrement la petite réécriture serait nécessaire.
Importance de MBASIC
MBASIC était un outil important pendant l'ère des ordinateurs à 8 bits de CP/M. Les utilisateurs habiles pourraient écrire des routines dans MBASIC pour automatiser les tâches qui en systèmes de moderne-jour seraient effectuées par des commandes puissantes de programme d'application ou des langues scripting. L'échange des programmes utiles de MBASIC était une fonction commune des Groupes d'utilisateurs de d'ordinateur que introduisant au clavier de longues listes de BASIC d'un article de magazine était one-way de " ; bootstrapping" ; logiciel dans un nouveau système de CP/M. Au moins un compilateur pour un langage de haut niveau évolué a été écrit dans MBASIC, et beaucoup de petits programmes utilitaires de jeu et s'étendant de quelques lignes à quelques mille lignes de code ont été écrits.
Autre utilisations
MBASIC est également le nom d'un compilateur commercial du BASIC pour la famille du microcontrôleur de PIC de de la technologie de puce de , indépendant de l'interprète de CP/M.| Random links: | Problème de satisfaction de contrainte | Cercle des forces | Ferrari Amérique | Grande synagogue (Plzeň) | MBASIC |