A cette époque, il existait le Maxite de base et le Maximite couleur :
Le Maximite monochrome. |
Le Maximite couleur. |
La caractéristique principale de la famille Micromite/Maximite est d'utiliser le langage BASIC comme moyen de programmation. Certes, cela peut faire sourire puisqu'il s'agit d'un langage quasiment oublié pour cause d'obsolescence programmée, de manque de performance et de mauvaise réputation puisque associé irrémédiablement aux machines du début des années 80.
Impossible en effet de prendre au sérieux un langage de programmation collant aux touches du ZX80 :
Source Wikipedia. |
Basic est particulièrement intéressant pour l'apprentissage de la programmation. Il est rapide à comprendre et à maîtriser et permet donc une mise en situation rapide. Il peut être totalement 'non structuré', ce qui permet une mise en évidence immédiate de l’intérêt de structurer son source et par la-même ses pensées. Et surtout, il permet de passer rapidement d'une idée à un prototype en autorisant des tests d' algorithmes sans devoir partir sur du matériel compliqué et des langages comme l'assembleur ou le C++, et sans avoir à tenter de pénétrer les arcanes insondables de la programmation sous Windows.
Evidemment, Basic implémenté sur une 'petite' machine sera forcément interprété, donc lent. Oui mais... Dès la fin des années 80, des processeurs rapides permettaient déjà une exécution plus véloce des programmes écrits par exemple sur un Intel 8052AH Basic :
en remplaçant ce circuit par un équivalent Dallas environ 10 fois plus rapide à 33MHz:
Ces solutions ne permettaient cependant pas l'écriture de gros programmes du au fait de sévères limitations matérielles : peu d'entrées/sorties, pas de sortie vidéo, pas de sortie son etc... Hormis le Visual Basic proposé par Microsoft sous Windows, dès le début des années 90 ce langage était définitivement abandonné.
L'utilisation de processeur de type PIC permetta à Geoff Graham de proposer en 2011 son 'fameux' Maximite. L'appareil était équipé d'un port d’extension permettant la connexion de diverses interfaces, d'une sortie vidéo certes limitée mais permettant la-aussi une interactivité facilité avec l'utilisateur, ainsi qu'un port clavier de type PS2. Cette 'machine' ne peut s'apparenter aux Arduinos qui restent des matériels embarqués nécessitant un ordinateur sur lequel est installé le système de développement et les outils de téléchargement du programme vers la carte. De plus, Arduino se programme en C++ édulcoré (la majorité des caractéristiques objets du langage est passée sous silence). Sauf pour ceux désireux de développer une librairie particulière qui devront se conformer à sa mise à disposition sous forme de classe.
A l'époque, j'avais effectué un rapide test de performances du Basic interprété fonctionnant sur un PIC32MX à 40MHz par rapport à un SHARP PC1500A, une machine considérée comme professionnelle à l'époque.
2 200FF en 1984 soit 335€ ou dit autrement, plus d'un demi SMIC en 1984 (~550€) |
Une simple boucle comptant de 0 à 100 000. J'avais obtenue ce résultat...
Le Basic du Micromite était donc environ 130 fois plus rapide que celui du SHARP.
Bien que les Micromites/Maximites n'aient pas vraiment rencontré de succès dans nos contrées, j'avais cependant nourri quelques espoirs de voir la machine décoller avec l'annonce par Microchip d'un successeur au PIC32MX, à savoir le PIC32MZ. Ce successeur de la famille MX offrait un nombre plus important de périphériques et surtout une vitesse d'exécution plus élevée.
Mais hélas, depuis 2015 il ne se passait plus grand chose autour de ce système, hormis la publication de nouvelles versions du Basic.
Et puis, il y a quelques jours de cela est apparu l'annonce du Color Maximite 2. Cette fois, la machine est basée sur un processeur ARM et les caractéristiques sont impressionnantes (informations source) :
Processor
|
32-bit ARM Cortex-M7 at up to 480MHz with 2MB
of flash. 1MB on-chip RAM plus 8MB off-chip RAM for BASIC variable storage
and video pages.
|
BASIC
|
Built in full featured BASIC interpreter with
double precision floating point, 64-bit integers and string variables, long
variable names, arrays of floats, integers or strings with multiple
dimensions, extensive string handling and user defined subroutines and
functions
|
Program Editor
|
Full screen editor includes colour coded
syntax, search and copy, cut and paste.
|
Memory
|
516KB for the BASIC program, enough for large
complex programs (typically 25,000 lines or more). 5MB RAM for
variables, arrays and buffers
|
Speed
|
Typically executes programs at 270,000 lines
per second.
|
Display
|
Colour VGA output with VGA standard timing.
|
VGA Resolutions
|
800 x 600 (default), 640 x 400, 320 x 200, 480
x 432 and 240 x 216
The last two emulate the resolutions available on the original Colour Maximite. |
Graphics Colours
|
8-bit (256 colours; default), 12-bit (4096
colours plus 16 levels of transparency) or 16-bit (65,536 colours).
|
Keyboard
|
Standard USB keyboard with either US or UK
layout. Can be a wireless keyboard (USB).
|
Storage
|
SD Cards up to 128GB formatted in FAT16, FAT32
or exFAT
|
Graphics
|
Set pixels, draw lines, boxes, circles,
etc. Features include BLIT, Sprites, multiple video layers (with
transparency). Rotate and scale images.
|
Images
|
Load images in BMP, JPG, PNG and GIF
(including animated) formats. Images can be loaded anywhere on the
screen and be scaled and rotated.
|
Audio
|
Stereo audio output for amplified speakers.
Can play WAV, FLAC and MP3 files, computer generated music (MOD format),
robot speech and sound effects as well as generate precise sine wave tones
|
Compatibility
|
Generally compatible with the Maximite and
original Colour Maximite. Special legacy mode for older graphics
commands.
|
Games
|
Extensive features for creating computer
games. These include multiple video planes, support for Blits and Sprites,
the ability to create computer generated music, sound effects and computer
generated speech.
|
Nunchuk
|
Full support for up to three Nunchuk games
controllers with one connected via the front panel..
|
External I/O
|
Twenty eight input/output pins with 12 capable
of analog input. Connector is compatible with RPi Hats. Built in
support for an IR remote control and temperature and humidity sensors.
|
Protocols
|
Communications protocols supported include
I2C, asynchronous serial, RS232, IEEE 485, SPI and 1-Wire.
|
Remote Console
|
Supports serial over USB protocol so a desktop
PC or laptop can access the BASIC console for entering and running programs.
|
PC Integration
|
Programs can be easily transferred from
another computer (Windows, Mac or Linux) using the SD card, XModem protocol
or by streaming the program over the serial console input.
|
Clock
|
Battery backed clock will keep the correct
time with the power disconnected.
|
Firmware Updates
|
The firmware can be updated via USB with a
desktop or laptop computer running Windows, MacOS or Linux.
|
Power
|
5 volts at approx 220mA typical (from a USB
port or charger).
|
Tout cela, proposé sur une carte aux dimensions somme toute réduites :
La particularité de cette 'première' version du Color Maximmite 2, consiste en l'utilisation d'un module processeur disponible chez WaveShare. L'avantage de cette solution est de permettre un montage plus facile de la machine. Souder un tel processeur requiert en effet un minimum de savoir faire et d'expérience en composants cms.
Il est bien évidemment très intéressant de tester une telle machine. Je ne la possède hélas pas pour le moment. Je prévois cependant d'en monter un exemplaire rapidement. Cet ordinateur compacte et puissant possède tous les attributs nécessaires à la mise en place d'un banc de tests automatisé tel celui que j'ai du développer sous Windows pour la qualification du convertisseur CV/Gate précédemment évoqué sur ce blog.
Cette machine ne possède absolument pas d'environnement fenêtré et donc aucun dispositif de pointage. Il me faudra donc faire avec cette limitation. C'est le seul point un peu négatif que je vois. Il est vrai que pouvoir pointer un élément sur l'écran pour en changer la valeur est une fonctionalité bien pratique. Peut-être que l'utilisation du port joystick permettra de palier ce manque.
En attendant, voici quelques vidéos que j'ai pu trouver sur Internet au sujet de cette nouvelle version du Maximite :
Intéressant, n'est-il pas?