Cram Basic en 768 octets


Pour ceux qui ont eu la chance d'écrire leur premier programme BASIC à la fin des années 80, le volume interprète de 16 kilo-octets semble tout à fait naturel. Ce n'était pas toujours le cas, les interprètes d'un volume de 8 et 4 kilo-octets sont bien entendu connus avec un ensemble de fonctions plus modeste. Mais cette fois, semble-t-il, l'impossible a été fait - l'interprète est compressé jusqu'à 722 octets. C'est moins de 768, ce qui signifie qu'il peut être placé non pas sur quatre, mais sur trois puces ROM de 256 octets. Oui, il y en avait!

Et 768 octets, soit dit en passant, 21, (3) fois moins que 16384.

L'interpréteur est écrit pour le processeur 8008, qui n'est pas très populaire parmi les rétrocomputeurs, pour cela, il existe déjà un interpréteur BASIC - SCELBAL, mais il fait 8 kilo-octets. Le système d'instruction 8008 ressemble au système d'instruction 8080 sans la moitié des instructions. Ou le système de commande Z80 sans 90% des instructions.

La première version de l'interpréteur, dans laquelle il y avait déjà les mots GOTO, INPUT, PRINT, ainsi qu'une méthode standard pour éditer les interprètes BASIC, était fournie, prenait 570 octets. Ensuite, la liste de mots a été étendue comme suit: FETCH, GOTO, IF, LET, NEW, OUT, PRINT, STOP, VIEW et XECUTE.

Certains d'entre eux vous sembleront étranges. Et le fait est que cet interprète reconnaît les mots par la première lettre. Par conséquent, INPUT devait être transformé en FETCH, LIST en VIEW et RUN en XECUTE. Mais GOSUB et RETURN ne devraient pas du tout être prévus - alors il faudrait aller au-delà du volume prévu.

L'auteur comprend les utilisateurs de l'ordinateur portable MCM / 70, également exécuté sur 8008, équipé d'un double lecteur de cassettes et programmé en langage APL avec ses commandes à une lettre.

Le projet avec l'émulateur est disponible ici sous licence MIT. L'auteur n'a pas de vrai fer à 8008. Vous pouvez également télécharger la source de l' assembleur et le résultat de la compilation avec des commentaires séparément.

La façon la plus simple de construire un projet entier avec GitHub est d'utiliser NETBEANS 8.2, vous aurez également besoin de SDL2. Pour assembler un assembleur, un assembleur de macros AS est requis.

Source: https://habr.com/ru/post/fr450632/


All Articles