Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 12:49  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Point de vue : Au-delà du babillard électronique - les solutions Internet pour les Commodore 8 bits et mes projets dans ce domaine
(Article écrit par Bo Zimmerman et extrait de ode2commies.blogspot.com - juin 2023)


Au-delà du babillard électronique

Les babillards électroniques ("BBS") des années 1980 sont parfois comparés à une version primitive d'Internet, et je pense qu'il n'y a pas de mal à cela. Considérez les expériences qu'un appelant typique d'un babillard électronique pouvait avoir lorsqu'il appelait autour de lui.

Au-delà du babillard électronique

Un utilisateur pourrait commencer son appel, par exemple, en s'engageant dans la messagerie instantanée en discutant avec l'administrateur système, puis en se glissant dans les bases de messages pour un peu de "médias sociaux" avec la centaine d'autres utilisateurs actifs. À la recherche de nouveaux logiciels, l'utilisateur pourrait ensuite se rendre dans la zone de transfert de fichiers, où un mégaoctet entier de jeux et d'utilitaires pourrait être disponible, et enfin se diriger vers la zone de fichiers texte pour des images ANSI/PETSCII, des actualités à propos des ordinateurs ou des articles encyclopédiques.

Au-delà du babillard électronique

C'est alors qu'est apparu Internet proprement dit. Au lieu de discuter avec une personne, vous pouviez discuter avec toutes les personnes. Vos médias sociaux englobaient des personnes du monde entier. La disponibilité des logiciels pour votre ordinateur ne se mesurait pas en octets, mais en mégaoctets ; vos images et vos vidéos étaient mesurées en pixels au lieu de caractères par ligne, et votre accès aux actualités et aux informations était actualisé en permanence par des journalistes professionnels. Il n'est donc pas étonnant que les babillards électroniques n'aient pas fait bonne figure face à une telle concurrence.

Certains écosystèmes informatiques ont bien géré cette situation. Par "bien", j'entends que les normes pour les API d'interface réseau ont assez rapidement été adoptées par leurs communautés et gérer par leurs systèmes d'exploitation. Cela a permis à tous les logiciels qui voulaient fournir des solutions impliquant Internet de le faire, sans avoir à se préoccuper de savoir si leurs programmes fonctionneraient sur des interfaces Internet plus récentes ou concurrentes. Quelques exemples évidents du début des années 1990 sont les PC avec Windows via WINSOCK, les ordinateurs Apple avec MacTCP, les ordinateurs Amiga avec AmiTCP, Atari STiNG, et d'autres.

Cette adoption a été vitale pour l'évolution des logiciels de mise en réseau. Avec une seule API viable à écrire, par exemple un navigateur Web, des navigateurs concurrents ont pu être développés, chacun essayant de surpasser les autres en termes de fonctionnalités, ce qui a fait progresser la logithèque. Qu'il s'agisse d'Internet Explorer ou de Netscape, ou d'IBrowse ou d'AWeb, c'est exactement ce qui s'est passé.

Au-delà du babillard électronique

Certaines plates-formes, cependant, n'ont pas particulièrement bien supporté l'avènement d'Internet. C'est le cas de la gamme Commodore 8 bits, et plus particulièrement du Commodore 64. Avec des interfaces Internet multiples et sans cesse changeantes, chacune reprise et rejetée en faveur d'une nouvelle voie meilleure, le résultat était un manque relatif de logiciels Internet, même du type limité que le matériel pouvait gérer, ce qui a conduit à peu ou pas de concurrence ou de progrès.

C'est cette histoire amusante - ce défilé de technologies - que je vais vous faire découvrir, avant d'amener mon propre avis.

Au-delà du babillard électronique

À la fin des années 1980 et au début des années 1990, la solution initiale pour les utilisateurs de C64 pour accéder à Internet était un compte "shell" du fournisseur d'accès. Ce compte était fonctionnellement similaire à un babillard électronique, dans le sens où un modem ordinaire des années 1980 était le seul matériel nécessaire, et où l'on utilisait les mêmes programmes de terminal pour accéder au compte shell que pour accéder à de nombreux autres babillards électroniques non-Commodore. À cette époque, la demande de programmes pour terminaux C64 et C128 gérant les types de terminaux *nix a augmenté, ce qui a conduit à la popularité de programmes tels que Novaterm ou Desterm.

À cette époque, le "port utilisateur" du C64, où les modems série étaient connectés, était considéré comme limité à 2400 bauds. Cette limitation a été surmontée de deux manières différentes.

La première consistait à utiliser la cartouche UART 6551 "SwiftLink" de Creative Micro Designs. Cette cartouche monopolisait le port d'extension de l'ordinateur pour fournir une interface série RS-232 standard dédiée plus rapide, capable d'utiliser des modems plus rapides disponibles pour les PC jusqu'à 38,4 bps.

La modification de l'UP9600 de Danial Dallmann, présentée en 1997, a également permis d'atteindre des vitesses plus élevées. Il s'agissait d'une modification de l'interface série du port utilisateur standard C, qui utilisait des broches supplémentaires pour tirer parti de la fonction de décalage automatique des bits de l'ordinateur. Comme son nom l'indique, il permettait au C64 de communiquer de manière fiable à 9600 bauds. La modification elle-même pouvait être apportée au modem ou à l'ordinateur, et ne nécessitait que le branchement de quelques broches supplémentaires les unes aux autres.

Bien sûr, toute cette variété d'Internet commuté est morte avec la perte de popularité et de disponibilité des comptes shell des FAI.

Nous sommes donc toujours dans les années 1990 et nous avons déjà trois interfaces matérielles pour Internet. Il est donc temps de parler des émulateurs de modem sur PC et des câbles null modem.

Au-delà du babillard électronique

En 1996, je n'étais qu'à trois ans de ma période d'administrateur de babillard électronique, lorsque je me suis retrouvé à travailler dans un laboratoire d'informatique de mon université. Nous avions plusieurs rangées de PC 386 fonctionnant sous Slackware Linux, tous connectés à Internet et disposant chacun d'une adresse IP externe. Cela signifiait que n'importe qui sur Internet pouvait accéder à n'importe laquelle de ces machines. Oh, ces jours d'innocence !

Avec certains de mes vieux amis du babillard électronique, nous avons entrepris de connecter mon Commodore 128 à l'une de ces machines à l'aide d'un câble null modem, qui est simplement un câble série permettant à deux ordinateurs de communiquer entre eux. Une extrémité du câble se connectait au port série du PC, tandis que l'autre extrémité se connectait au port utilisateur du C128, après avoir traversé quelques puces de conversion de tension. Le C128 exécutait mon logiciel babillard électronique et attendait que le signal "Carrier Detect" soit activé sur le port série. Pendant ce temps, le PC lançait un programme terminal Linux appelé "minicom" lorsqu'un utilisateur se connectait, ce qui réveillait automatiquement le programme du babillard électronique du C128 et s'annonçait à l'utilisateur. En fait, en se connectant à distance au PC via Telnet, et en se connectant, on utilisait un babillard électronique fonctionnant sur un Commodore 128.

Au-delà du babillard électronique
Leif Bloomquist

Mon petit projet universitaire illustre la phase suivante de l'accès à Internet sur Commodore 8 bits. Au tournant du millénaire, Leif Bloomquist a présenté "BBS Server", une application Windows qui transmettait les connexions TCP/IP d'Internet à l'un des ports série du PC. L'objectif était le même que celui de mon exemple minicom : permettre l'accès aux babillards électroniques Commodore à partir d'Internet au lieu des anciennes lignes téléphoniques, mais il incluait également des capacités de connexion sortante avec une émulation de commande AT de type Hayes.

Ce projet a été suivi par un projet de Jim Brain appelé "TCPSER", qui utilisait également des câbles null modem. Il s'agissait d'un portage de BBS Server sur Linux, avec la même émulation de modem Hayes/C 1670 que BBS Server.

Le dernier de cette catégorie est Strikelink USB, écrit par Alwyz, auteur du populaire programme CCGMS pour le C64. Dans ce cas, le Strikelink est un câble qui connecte l'interface série du port utilisateur Commodore au port USB d'un PC au lieu du port COM standard. Comme les variantes ultérieures du Strikelink, il n'a jamais été produit pour la vente, mais seulement présenté comme un projet pour les utilisateurs intéressés.

Ce type de solution est encore utilisé aujourd'hui. Le Strikelink USB ne remonte en fait qu'à une dizaine d'années. Cependant, la nécessité d'avoir un PC physiquement proche de votre ordinateur Commodore a probablement limité sa popularité globale.

Au-delà du babillard électronique

La fin des années 1990 a également vu les premières tentatives pour rejoindre le reste du monde informatique en se connectant à Internet par ligne commutée SLIP/PPPoE. Si vous vous connectiez à Internet dans les années 1990 et que vous n'aviez pas AOL, vous utilisiez probablement un compte SLIP ou PPPoE. Il y avait plusieurs façons de le faire sur C64.

La plus évidente était de continuer à utiliser les mêmes modems que ceux utilisés pour les comptes shell, mais l'une des méthodes les plus étranges qui a eu son heure de gloire était le Palm Ethernet Cradle pour le Palm Pilot. Cette petite station d'accueil était en fait une petite boîte qui prenait les paquets PPoE de son port série RS-232 standard et les envoyait par sa prise Ethernet RJ-45 câblée. Les utilisateurs de vieux ordinateurs devaient ouvrir le boîtier pour brancher un connecteur 9 broches normal, puis utiliser soit la cartouche SwiftLink, soit le câble null modem à tension décalée mentionné plus haut.

En ce qui concerne les logiciels, le système d'exploitation C64/C128 LUNIX, de Daniel Dallman, disposait d'un client SLIP et PPoE, ainsi que de quelques outils Internet de base, tels que les clients Telnet et FTP, et un serveur Web. Un autre client Internet était The Wave, pour le système d'exploitation Wheels, qui comprenait un programme de terminal et un navigateur web.

Les berceaux Ethernet sont peut-être encore utilisés, mais l'accès à Internet par ligne commutée n'est plus vraiment courant. En outre, si certains se souviennent encore de LUNIX, The Wave nécessitait à la fois Wheels OS et un Super processeur, ce qui lui conférait une audience limitée.

Au-delà du babillard électronique

Le milieu et la fin des années 2000 ont vu apparaître la première cartouche à bus Ethernet pour le C64/C128, appelée RR-Net, abréviation de "Retro-Replay-Net". Elle a été produite par Individual Computers en tant que "complément" de sa cartouche de gel "Retro Replay".

La cartouche contient une puce Ethernet Cirrus Logic CS8900a, qui est configurée en mode 8 bits. Des registres sont alors exposés sur la page d'adresse du port d'expansion du C64 pour permettre le transfert de paquets d'octets dans les deux sens.

Le RR-Net a finalement été transformé en une véritable cartouche autonome, entièrement compatible avec le module d'extension RR-Net original. On peut les trouver sous les noms "RR-Net MK3" chez Individual Computers, "TFE" chez Adam Dunkels, et "64NIC" chez go4retro.com.

Une solution de cartouche comme celle-ci présente l'avantage de la vitesse, mais les inconvénients de monopoliser le port cartouche et d'exiger que le C64 exécute une pile TCP/IP complète, avec ses propres tampons mémoire. Une demi-douzaine de logiciels gèrent le RR-Net, dont des terminaux, un navigateur et des outils de transfert PC, le plus impressionnant étant Contiki d'Adam Dunkels. Contiki est un système d'exploitation à interface graphique doté d'une pile TCP/IP appelée "uIP". L'ensemble du système d'exploitation est essentiellement conçu autour du réseau et de sa petite sélection de clients et d'outils Internet.

Au-delà du babillard électronique

Plus récemment, la cartouche 1541Ultimate-II a été commercialisée avec son propre port Ethernet et sa propre interface. L'auteur a fourni quelques outils, dont un terminal, qui gère ce port. On dit que la 1541UII aurait également ajouté SwiftLink et l'émulation de modem, pour permettre l'utilisation d'autres programmes de terminal. Il s'agit probablement de la même interface que celle intégrée dans l'ordinateur Ultimate64, qui est une reproduction FPGA de l'ordinateur avec les caractéristiques intégrées du 1541Ultimate-II.

Au-delà du babillard électronique

Au fur et à mesure que les microcontrôleurs devenaient moins chers et plus complets, ils ont commencé à être utilisés pour nous offrir encore plus d'options Internet.

Le COMET 64 est sorti en 2008, en même temps que le lancement du site Web qui l'accompagne, commodoreserver.com. Bien que COMET semble être un modem à port utilisateur avec Ethernet câblé, il est en fait mieux décrit comme un périphérique de stockage et d'échange de données. Tout comme Q-Link, CommodoreServer propose des options de discussion et de jeu en ligne. Lorsqu'un pilote spécial est chargé sur l'ordinateur C64, le modem fournit également un lecteur de disquette Internet sur le périphérique 2, avec tous les fichiers stockés sur le site Web de commodoreserver.com.

Au-delà du babillard électronique

En 2015, nous avons assisté à la première émergence du modem "Wi-Fi" avec la sortie du Commodore WiFi Modem par Leif Bloomquist, célèbre pour son BBS Server. Son modem à port utilisateur était un ensemble BBS Server complet dans une seule boîte : il pouvait permettre des connexions entrantes afin de faire fonctionner un babillard électronique COmmodore, ainsi que des connexions sortantes vers le phénomène émergent (ré-émergent ?) "Telnet BBS".

Un grand soin a été apporté à l'interface utilisateur de cet appareil, avec une configuration et une utilisation faciles par menus. C'est cet appareil qui a suscité mon intérêt pour les modems Wi-Fi.

L'année suivante, le modem C64Net-WiFi est apparu, suivi peu après par le projet de modem Wi-Fi Strikelink, et plus tard par plusieurs autres périphériques similaires, que l'on peut encore trouver sur eBay pour 25-50 $. Comme le modem de Leif Bloomquist, il s'agit d'appareils à port utilisateur, généralement avec une gestion d'UP9600. Ils ont tous des caractéristiques différentes, mais en commun ils gèrent une variation du jeu de commandes AT de Hayes, ce qui leur donne un niveau de compatibilité avec les programmes de terminal standard du C64/C128.

Au-delà du babillard électronique

L'émulateur de modem est associé au LINK232-Wifi. Ce périphérique Ethernet sans fil est connecté à une cartouche Link232 intégrée, qui est elle-même un clone de la cartouche CMD Turbo-232, le successeur de la cartouche SwiftLink mentionnée ci-dessus. Comme les autres modems sans fil, il est compatible avec quelques programmes terminaux exceptionnels et gère le jeu de commandes AT. En dehors des programmes de terminal, il bénéficie également de la gestion de plusieurs applications compatibles avec mon projet Zimodem, et de la gestion à venir du 64OS de Greg Nacu.

Plus récemment, le périphérique WiC 64 a également été rendu disponible pour le C64. Il dispose d'une interface utilisateur comme les autres modems Wi-Fi, mais utilise une interface parallèle au lieu d'une interface série. Bien que cela crée encore un autre écosystème logiciel, l'avantage serait l'augmentation de la vitesse par rapport à une interface série.

Au-delà du babillard électronique

La dernière plate-forme Internet que nous examinerons est aussi la plus récente : les périphériques Internet à port série IEC. Le bus IEC est le principal lecteur de disquette et port d'imprimante du C64, et il est géré par le C64 KERNAL en tant que tel. Ces modems IEC ont d'autres caractéristiques de communication avec les interfaces de connexion Internet, mais leur principal attrait est clairement le stockage en réseau.

Le premier de ces appareils à apparaître fut le COMET et le COMET Flyer, les successeurs du modem COMET 64 dont il a été question précédemment. Parallèlement, un autre site Web, commodoreonline.com, a vu le jour, offrant un stockage à distance de disquettes/fichiers similaire à celui de commodoreserver.com.

Le PETDisk Max, de Bitfixer, a été ajouté plus tard au stockage en réseau. Il dispose d'une interface IEEE-488 pour les PET, mais inclut des capacités Wi-Fi pour récupérer des données à partir d'images de disquettes sur le réseau.

Le dernier-né de cette catégorie est le Meatloaf et Fujinet. Bien qu'il ne soit pas encore disponible, le Meatloaf offrirait des caractéristiques similaires à celles du Flyer, à l'exception du fait qu'il utilise des protocoles Web plus standard (WebDAV) pour traiter les images de disquette et les fichiers distants. Il semble qu'il inclura également, en option, un port utilisateur pour la compatibilité avec les modems standard. La relation entre Meatloaf et Fujinet n'est pas claire pour moi, mais il est possible que le Fujinet pour C64 soit basé sur Meatloaf.

Au-delà du babillard électronique

Et cela nous amène à aujourd'hui.

Au-delà du babillard électronique

Ma propre histoire commence en 1984, lorsque j'ai acheté un VICMODEM pour mon Commodore 64 et que je suis immédiatement devenu un fervent utilisateur de babillard électronique. En 1985, je gérais mon propre système de babillard électronique, d'abord sur 64Messenger, puis sur CMBBS. J'ai toujours trouvé une raison quelconque d'être insatisfait de ces programmes, alors en 1986, j'ai écrit et fait fonctionner mon propre programme, appelé "Zelch 64". En 1990, je suis passé au nouveau programme Zelch 128, que j'ai utilisé jusqu'en 1993. En 1996, comme mentionné plus haut, j'ai relancé le babillard électronique Zelch 128 en tant que Telnet BBS. Après 1997, j'ai été un utilisateur typique de machines Commodore 8 bits, profitant de toutes les options Internet mentionnées précédemment, jusqu'en 2016.

Au-delà du babillard électronique

La création du C64Net-WiFi en 2016, par Carlos Santiago d'ElectronicsIsFun.com, a été ma première occasion d'avoir un impact sur les appareils Internet pour les machines Commodore 8 bits. Carlos Santiago lui-même voulait vraiment un moyen d'accéder à toutes les images de disquette qu'il avait téléchargées sur Internet directement à partir de son C64, et je soupçonne que ce qu'il avait vraiment à l'esprit était quelque chose de plus proche du Flyer ou du Meatloaf. Cependant, il voulait aussi un modem Internet digne de ce nom, et c'est donc la voie qu'il a choisie. À l'époque, j'utilisais le modem Wi-Fi de Leif Bloomquist, et j'étais très enthousiaste à l'idée de pouvoir influencer les fonctionnalités qu'il offrirait.

Au-delà du babillard électronique

Le C64Net-WiFi serait basé sur le ESP-8266 d'Espressif, en particulier en utilisant le boîtier ESP-01 incroyablement bon marché. Ce microcontrôleur disposait de 1 Mo de mémoire flash et de 80 ko de mémoire utilisateur, dont la moitié était disponible pour les programmeurs d'applications. La cartouche a été conçue pour être entièrement alimentée par l'ordinateur hôte à l'aide de son bloc d'alimentation. Cela présentait de sérieuses contraintes pour le port utilisateur du C64, qui ont été résolues en utilisant à la fois les rails 5V et 9VAC pour alimenter l'appareil. Une grande partie du circuit sur le côté droit sert à convertir le 9VAC en 5VDC. L'interface est évidemment le port utilisateur, et la configuration des broches est conçue pour se conformer aux normes des modems Commodore à port utilisateur, y compris les broches pour la détection de porteuse et le contrôle de flux matériel. Il inclut également la configuration des broches pour gérer l'UP9600, qui peut être désactivé par des cavaliers pour les utilisateurs de C128.

La vitesse de l'interface série du port utilisateur du C64 mérite d'être discutée à ce stade. Les Commodore 8 bits les plus populaires, à savoir le VIC-20, le C64 et le C128, ne disposaient pas d'un UART série intégré à l'ordinateur. La communication série était réalisée sur l'interface parallèle 8 bits du "port utilisateur" de l'ordinateur par des routines d'échange de bits intégrées au système d'exploitation, appelé "KERNAL".

Commodore a d'abord annoncé que le port utilisateur du C64 pouvait atteindre une vitesse de 300 bps, mais on a rapidement découvert qu'en contournant un bogue dans la table de synchronisation des bits de KERNAL, la vitesse de 1200 bps pouvaient facilement être gérée. Le C128 pouvait gérer 2400 bps, surtout dans son mode de fonctionnement à 2 MHz. En ignorant le KERNAL et en utilisant des algorithmes de "bit banging" (communication série utilisant un logiciel au lieu d'un matériel) plus étroitement écrits en assembleur (Ilker Ficicilar), des vitesses de 4800 à 7200 bps ont pu être atteintes. En modifiant le matériel, l'UP9600 a permis d'atteindre 9600 bps (Dallmann). Plus récemment, 57 600 bps a été atteint en désactivant la puce vidéo VIC-II et en chronométrant le transfert de bits en comptant les cycles du processeur au lieu d'utiliser les interruptions de temporisation des puces d'entrées/sorties de l'ordinateur (Jorge Castillo).

Au-delà du babillard électronique

Mon projet Zimodem a donc débuté en 2016 afin de fournir un micrologiciel pour le C64Net-WiFi et son ESP-8266. Dès le début, j'avais trois objectifs spécifiques pour le projet, qui ont été atteints à des degrés divers.

Le premier objectif était que le micrologiciel apparaisse à l'utilisateur comme un modem de style Hayes/C 1670, et qu'il ait toutes les fonctionnalités attendues d'un tel ensemble de commandes. Le deuxième objectif était que le modem soit un appareil utile pour les ordinateurs qui sont limités à l'exécution de programmes de terminal. Enfin, le modem devait être une plate-forme Internet utile, permettant à l'ordinateur hôte de l'utiliser facilement pour écrire des applications réseau et des jeux personnalisés.

Au-delà du babillard électronique

Le micrologiciel du C64Net utilise des signaux inversés : haut pour actif, bas pour inactif. Cela m'a toujours semblé intuitif, mais plus j'en apprends sur l'électronique, plus je me rends compte que ce n'est pas courant, y compris en RS232.

Le jeu de commandes AT comprend toutes les commandes standard et toutes les commandes étendues qui ont un sens pour un modem Wi-Fi, et beaucoup d'autres qui n'en ont pas. Cela inclut des choses comme les codes de réponse, la verbosité, le duplex et le réglage des registres internes pour la réponse automatique et le nombre de sonneries. Ce dernier point n'a peut-être pas beaucoup de sens, mais j'ai essayé de ne pas supposer ce que tous les logiciels de babillard électronique pourraient attendre ou rechercher.

Des commandes ont également été ajoutées pour lister les points d'accès sans fil disponibles et pour se connecter à l'un d'entre eux avec des informations d'identification. Bien que j'aie été l'esclave des bibliothèques d'Espressif pour les types de sécurité sans fil gérés, je n'ai encore rencontré aucun problème dans ce domaine.

ATD, qui est la commande permettant de passer un appel sortant et de se connecter à un numéro de téléphone distant, a été étendu pour autoriser les hôtes Internet et les adresses IP. Lors de la connexion, le modem quitte le mode commande et passe en mode flux, où des octets peuvent être envoyés au système distant et reçus de celui-ci.

La gestion du contrôle de flux matériel et logiciel a également été ajoutée, à l'aide des commandes ATF et ATK.

Au-delà du babillard électronique

D'autres commandes AT ont été inventées pour surmonter les limites des anciens programmes de terminal et étendre les plates-formes gérées.

Par exemple, la commande ATP a été ajoutée pour permettre le décodage de ASCII/ANSI en PETSCII, dont la traduction des couleurs.

L'ATR et l'ATS3 permettent tous deux de modifier le caractère de retour chariot.

La gestion du code "Telnet" a été ajoutée principalement pour satisfaire un serveur Telnet distant en répondant correctement aux requêtes et aux demandes. J'ai rencontré un problème avec les serveurs Telnet distants qui, lorsqu'ils recevaient un code d'échappement Telnet, lisaient immédiatement le caractère suivant. Cependant, lorsqu'il s'agit de paquets réseau, il n'est jamais garanti que tous les octets d'une commande Telnet arrivent dans le même paquet. L'une des nombreuses adaptations que j'ai dû faire au fil des ans a été d'essayer de garantir qu'une commande entière serait toujours contenue dans le même paquet.

Le débit en bauds, ainsi que la possibilité de modifier d'autres paramètres RS232, tels que les bits de données, les bits d'arrêt et les bits de parité, peuvent être modifiés à l'aide de la commande ATB. Bien que la norme 8N1 soit pratiquement universelle, il n'en a pas toujours été ainsi et certains terminaux plus anciens nécessiteront d'autres paramètres.

Au-delà du babillard électronique

L'ajout d'un répertoire téléphonique persistant est une caractéristique importante pour la gestion des terminaux et des applications existants. Avec la commande ATP, de faux "numéros de téléphone" peuvent être assignés à des hôtes et ports Internet particuliers, avec les paramètres souhaités pour le terminal. Les numéros de téléphone sont automatiquement enregistrés dans la mémoire flash. Par la suite, chaque fois que la commande ATD est utilisée avec un nombre entier, l'annuaire est vérifié et l'hôte correspondant est connecté.

Cela facilite l'utilisation du serveur de renaissance Q-Link appelé "Q-Link Reloaded". Pour ceux qui l'ignorent, Quantum Link était un service en ligne sur C64, prédécesseur d'AOL.

Au-delà du babillard électronique

En plus du répertoire téléphonique, 38 paramètres différents de terminal et de registre peuvent être conservés dans la mémoire flash embarquée, ce qui signifie que le modem s'allume toujours exactement comme vous le souhaitez. Ceci était particulièrement important pour les machines qui préféraient des taux de bauds bizarres ou des paramètres de bits de données et de parité étranges.

Le comportement des différentes broches du microcontrôleur peut également être lu ou modifié à l'aide de commandes AT spéciales. Cela s'est avéré important pour les UART qui exigeaient, par exemple, que la broche DCD soit toujours active.

Le micrologiciel gère les mises à jour en direct, de sorte qu'il n'est jamais nécessaire d'utiliser des câbles de programmation ou des logiciels spéciaux pour obtenir la dernière version. Les mises à jour peuvent être vérifiées et téléchargées à la demande à l'aide de la commande ATU. Il est également possible de revenir à des versions spécifiques ou personnalisées en cas de nostalgie. Je l'utilise souvent pour tester des versions avec des fonctionnalités uniques.

Le microcontrôleur fait de son mieux pour maintenir une horloge en temps réel, qui peut être lue à l'aide de la commande ATT. Il initialisera cette horloge via le protocole NTP (Network Time Protocol) au démarrage, et le micrologiciel permettra de régler le fuseau horaire.

Un fichier d'aide pour toutes les commandes AT est accessible à l'aide de la commande ATH, qui conservera le fichier d'aide de la version actuelle après le premier accès pour une consultation hors ligne.

Au-delà du babillard électronique

Le modem Wi-Fi peut être configuré avec plusieurs récepteurs d'interfaces de connexion entrantes sur différents ports. Comme pour le répertoire téléphonique, ces paramètres peuvent être conservés avec leurs propres paramètres de terminal afin d'être immédiatement disponibles après un redémarrage.

Comme le mode "réponse automatique" des anciens modems, les connexions entrantes peuvent être configurées pour envoyer zéro ou plusieurs messages RING et passer ensuite automatiquement en mode flux. Cela permet aux programmes des babillards électroniques Commodore qui gèrent les modems Hayes ou 1670 de fonctionner dès le départ.

Un "message d'occupation" personnalisé peut également être configuré, de sorte qu'une demande de connexion entrante, lorsqu'une autre connexion utilise déjà le port série, sache qu'elle doit revenir plus tard.

Au-delà du babillard électronique

La possibilité d'établir et de gérer plusieurs connexions sortantes est une autre caractéristique de gestion du micrologiciel en tant que plate-forme de mise en réseau. La commande ATC permet de créer un nouveau client distant sans passer immédiatement en mode flux. Au lieu de cela, le modem reste en mode commande, où des commandes AT spéciales permettent de gérer les connexions et de communiquer avec elles.

Chaque fois que des données sont reçues de l'une des connexions ouvertes, elles sont présentées sous forme de paquets de données, qui peuvent contenir jusqu'à 255 octets. Ces paquets sont précédés d'un bloc d'en-tête, qui peut contenir des informations telles que l'identifiant de la connexion d'où proviennent les données, la taille du paquet, un CRC de 8 bits du paquet et le numéro de séquence du paquet pour cette connexion. Si le numéro de séquence ou de CRC d'un paquet est incorrect, la commande ATL peut ordonner au modem de retransmettre un paquet précédent.

La commande ATT peut être utilisée pour transmettre un message sous forme de chaîne ou un bloc de données binaires à une connexion ouverte spécifiée. Elle peut également être configurée pour renvoyer le CRC8 du bloc de données qu'elle a reçu par voie sérielle, à des fins de contrôle d'erreur.

Étant donné que les données Internet sont susceptibles d'être reçues beaucoup plus rapidement qu'un ordinateur à 1 MHz ne peut les traiter, il existe plusieurs nouvelles méthodes de contrôle de flux qui peuvent être activées pour gérer les données entrantes. Il s'agit généralement de variantes du contrôle de flux logiciel standard (XON/XOFF) qui opèrent au niveau du paquet et non du caractère. Ces méthodes sont sélectionnées à l'aide de la commande ATF.

Au-delà du babillard électronique

Tout ceci m'a permis de réaliser mon rêve de pouvoir écrire une application Internet en BASIC simple. Enfin, *presque* en BASIC.

Le problème est que le BASIC V2 trouvé dans le VIC-20 et le C64 n'a pas de bonnes fonctions d'analyse de chaînes de caractères, ce qui rend la séparation des données numériques de chaque en-tête de paquet particulièrement pénible. La commande INPUT# en BASIC a également ses propres règles d'analyse plutôt ennuyeuses. Heureusement, à l'époque des babillards électroniques, j'ai appris à créer des chaînes BASIC à partir du langage machine. J'ai donc écrit quelques routines de langage machine pour paquets, que j'appelle "PML", que je peux appeler à partir de BASIC pour analyser rapidement les informations des paquets entrants, en laissant les données dans une variable chaîne BASIC.

Avec cela, j'ai bricolé quelques applications Internet super simples, comme un IRC (Internet Relay Chat) pour la messagerie instantanée, une application FTP (File Transfer Protocol) pour télécharger des fichiers depuis des sites FTP, une application WGet pour télécharger des pages Web ou des fichiers binaires depuis des serveurs Web, et une application d64wget pour télécharger des images de disquettes D64/D71/etc directement depuis un serveur Web sur une disquette vierge. J'ai également écrit un serveur TelnetD qui permet à un utilisateur Internet entrant de "prendre le contrôle" à distance de l'invite C64 BASIC et d'utiliser l'ordinateur comme s'il était assis devant, tant qu'il limite son activité à l'entrée et à la sortie de texte.

J'ai également écrit des programmes de terminal Telnet et PETSCII très simples, à titre d'exemple. Il existe de bien meilleurs programmes de terminal.

Au-delà du babillard électronique

Le point culminant de tout le projet Zimodem a cependant été atteint lorsque j'ai pris l'un de mes jeux PET à deux joueurs préférés, appelé "Weather!", que je l'ai porté sur C64, et que j'ai rendu jouable sur Internet.

Plus que tout, c'est ce que je veux que les gens retiennent et voient dans ce projet. Si un simple jeu BASIC (surtout !) peut être transformé en jeu Internet, alors imaginez ce que quelqu'un qui sait ce qu'il fait peut faire. Pourquoi toutes les applications n'auraient-elles pas une composante réseau, comme c'est le cas pour les logiciels modernes ? Si seulement les applications réseau étaient si faciles à programmer que l'on pouvait le faire en BASIC en envoyant des commandes de chaîne avec PRINT# !

Au-delà du babillard électronique

Comme je connaissais bien l'environnement GEOS, j'ai également écrit un programme de terminal ANSI Telnet pour GEOS, avec un répertoire téléphonique, des transferts de fichiers et des tampons, et je l'ai suivi avec un programme de terminal GEOS PETSCII avec des caractéristiques similaires.

Au-delà du babillard électronique

Une autre application gérant le micrologiciel s'appelle RetroTerm, qui se connecte à des services en ligne de type babillard électronique basés sur un serveur à code source ouvert. Le client est très petit et gère jusqu'à 57 600 bps sur le port utilisateur. Cela lui permet de faire des choses surprenantes, comme télécharger très rapidement des images haute résolution, ainsi que diffuser de l'audio PCM 4 bits et de la musique SID.

Le modem gère également sans problème le protocole V-1541 et ses services commodoreserver.com, qui existent encore aujourd'hui.

Au-delà du babillard électronique

Peu de temps après la sortie du C64Net-WiFi, Carlos Santiago a produit une version RS-232 standard du modem, qu'il a appelé le Gurumodem. Contrairement au C64Net, ce modem est alimenté par une prise USB, est basé sur la puce ESP-32 d'Espressif avec quatre puis huit mégaoctets de mémoire flash, possède un port RS-232 standard à 25 broches avec tous les signaux, et comprend un emplacement pour carte SD.

Avec ce nouveau modem, Zimodem a été modifié pour compiler à la fois pour l'ESP-8266 et l'ESP-32, puis d'autres fonctionnalités ont été ajoutées, dont certaines nécessitaient la mémoire supplémentaire ou les fonctionnalités du Gurumodem, tandis que d'autres sont restées dans les deux versions.

C'est à ce moment-là que les objectifs de l'application sont entrés en jeu. Le premier d'entre eux était d'ajouter une commande AT CONFIG qui permettait à de nombreux paramètres de configuration du Wi-Fi et du terminal, y compris le répertoire téléphonique, d'être gérés à partir d'une interface pilotée par menu.

Un client IRC intégré, également piloté par menu, a été ajouté via la commande AT IRC. Cela a été fait principalement sur demande, pour les ordinateurs qui n'ont accès qu'à de simples programmes de terminal.

La gestion SSL/TLS a également été ajoutée, ce qui a permis d'accéder pour la première fois à des sites Web sécurisés. En raison de contraintes, les certificats HTTPS ne sont pas vraiment validés par le client, mais les pages et les données peuvent au moins être lues.

La gestion du client SSH a également été ajoutée, ce qui permet d'établir des connexions de terminal avec des serveurs Linux modernes. Ces connexions peuvent être établies à l'aide d'ATDS, le "S" signifiant "sécurisé". Grâce à cela et à SSL, une grande variété de services et de fonctions sont désormais accessibles par le modem.

Plus tard, mais toujours sur demande, une commande AT PING a été ajoutée.

Au-delà du babillard électronique

Une autre fonction a été ajoutée en cours de route : la gestion des imprimantes réseau via la commande AT PRINT et le protocole IPP. Certaines imprimantes modernes dotées d'une gestion réseau intègrent une version limitée de ce protocole, ce qui permet au modem d'envoyer des travaux d'impression directement à l'imprimante via le réseau. Pour d'autres imprimantes, cependant, le meilleur choix était d'utiliser un serveur CUPS, qui peut traduire les requêtes réseau IPP à travers un pilote réseau approprié et propriétaire pour votre imprimante spécifique.

Comme cela mettrait "l'imprimante" sur un numéro de périphérique non standard, le logiciel Commodore 8 bits n'aura qu'une gestion limitée pour ce système. Le KERNAL, lui, le gère très bien. En ouvrant le périphérique 2 (le modem) et en l'initialisant avec CHR$(8) pour régler 1200 bauds, puis en envoyant la chaîne "AT PRINTP", toutes les données envoyées sur le même canal par la suite seront transmises à l'imprimante configurée. Par exemple, pour imprimer la liste d'un programme BASIC, vous devez entrer :

OPEN4,2,0,CHR$(8):PRINT#4,?at printp?:CMD4:LIST:CLOSE4

GEOS, également pour C64 et C128, gère les pilotes d'imprimante appropriés, il était donc relativement simple d'en produire un qui gère les fonctions d'impression réseau du modem. GEOS a un paradigme graphique WYSIWYG pour l'impression ; toutes les impressions sont en fait des images de ce qui était à l'écran. Heureusement, la spécification du protocole IPP prévoit la gestion native d'un format d'image appelé RAS, que CUPS gère également. Le pilote d'imprimante GEOS n'a donc plus qu'à traduire les données de l'image de l'écran en une image au format RAS avant de l'envoyer au modem pour l'impression. Ce projet a été appelé "ras4c64net", et peut être trouvé sur GitHub.

L'Amiga gère également les pilotes d'imprimante, mais la documentation sur la façon de les écrire est beaucoup moins évidente. J'aimerais beaucoup parler à quelqu'un qui en a écrit un, car ce que j'ai trouvé sur Aminet et dans mes livres ne m'a pas plu. Au lieu de cela, je me suis appuyé sur le fait que l'Amiga gère les deux imprimantes sérielles, et que les versions ultérieures d'AmigaOS sont livrées avec un pilote d'imprimante PostScript. J'ai donc ajouté une fonction dans le mode de commande du micrologiciel qui détecterait automatiquement lorsqu'un fichier PostScript est envoyé au modem, et passerait immédiatement en mode d'impression.

Au-delà du babillard électronique

Le Gurumodem a également été conçu avec une interface de carte SD, et avait donc besoin d'un moyen d'y accéder via le modem. Cela a été fait en ajoutant la commande AT+SHELL, qui fournit une invite de ligne de commande dans laquelle vous pouvez entrer des commandes de fichiers et de répertoires bien connues telles que Dir, Copy, Move, Makedir, Cd, etc. Pour que les utilisateurs de nombreuses plates-formes se sentent à l'aise, cette commande gère également des alias pour toutes ces commandes, tels que "$", "ls" ou "list" pour le répertoire, et des alias similaires pour d'autres commandes.

L'interpréteur de commandes comprend également un client FTP simple pour récupérer des fichiers sur Internet sur la carte SD formatée.

L'envoi de fichiers de la carte SD vers l'ordinateur hôte se fait par le biais du Shell intégré qui gère le chargement et le téléchargement via le protocole X-Modem, le protocole Z-Modem, ou KERMIT. Ce dernier protocole a été ajouté principalement pour gérer le logiciel de terminal stocké uniquement sur le Commodore 900.

Les commandes de l'interpréteur de commandes peuvent également être saisies directement à partir du mode commande en ajoutant deux points après AT+SHELL suivi de la commande. Par exemple, "AT+SHELL:list" permet de lister le répertoire actuel de la carte SD sur le modem, tout en restant en mode commande.

Le Commodore SuperPET gère nativement un protocole spécial de gestion de fichiers sur le port série appelé "HOSTCM", qui était utilisé pour envoyer des données vers et depuis d'autres ordinateurs centraux. Ce "mode" est activé par la commande AT+HOSTCM.

Au-delà du babillard électronique

Voilà où en était le micrologiciel en juin 2023. Plusieurs nouvelles fonctionnalités sont en cours d'élaboration ou arriveront très prochainement.

L'une d'entre elles est la gestion de SLIP/PPoE, qui figure sur la liste des choses à faire depuis le tout début. La possibilité d'exploiter LUNIX et de gérer le navigateur The Wave serait une aubaine extraordinaire. L'intégration avec lwip d'une manière qui ne perturbe pas le fonctionnement normal a été délicate, mais elle est en train d'arriver.

Je suis également impatient d'ajouter la gestion de la numérotation par impulsion au modem, ainsi que l'émulation au niveau des broches du Commodore 1650/1660. Ce serait un ajout extraordinaire à cause de tous les logiciels d'avant 1986 qui deviendraient instantanément compatibles avec lui, dont les programmes de terminal, les logiciels de babillard électronique, et le jeu Modem Wars.

Enfin, un client Gopher intégré a été demandé, pour les utilisateurs de plates-formes extrêmement limitées. Gopher est une idée amusante, car je me souviens avoir pensé à un moment donné qu'il était bien supérieur à HTTP et HTML. Apparemment, il y a encore des gens qui font tourner des serveurs Gopher, donc l'utilité serait immédiate.

Le créateur du WiFi Retromodem sur tempestfpga.com a également créé récemment un modem basé sur l'ESP-32 qui tient dans un vieux boîtier de modem Hayes. Au micrologiciel du Zimodem, il a ajouté la possibilité de jouer les anciens sons du modem à partir d'un haut-parleur, ce qui est absolument délicieux. Peut-être cela sera-t-il bientôt intégré à la branche principale.

Sinon, je suis toujours ouvert aux suggestions et aux rapports de bogues. N'hésitez pas à les publier dans la section "Issues" de mon dépôt Zimodem sur GitHub.

Voilà qui conclut ce très très long retour en arrière sur les solutions Internet pour le Commodore 8 bits, et sur la façon dont mes propres projets se sont insérés dans cette technologie. J'espère que vous avez apprécié la parade et que vous avez peut-être découvert une technologie dont vous n'aviez jamais entendu parler. J'espère aussi sincèrement que vous reconnaîtrez le potentiel des machines 8 bits en tant que clients de réseau, si seulement nous pouvons nous mettre d'accord sur une API.

Voici quelques ressources :


[Retour en haut] / [Retour aux articles]