Derrière ce petit nom - charmant s'il en est - ne se cache pas la dernière (sous) production hollywoodienne de série Z avec le cacochyme Dolph Lundgren. Non, il s'agit juste d'un petit soft bricolé à partir d'une partie du code source de CiderPress, l'excellente boîte à outils d'Andy McFadden indispensable à tout fana Apple II utilisant Windows. À l'heure où le Cross Development apparaît de plus en plus comme l'avenir du Retro Computing, les initiatives spécifiquement dédiées à l'Apple II se multiplient. WUDSN, le plugin pour Eclipse est maintenant compatible avec le développement Apple II et du côté de Brutal Deluxe, Antoine et Olivier continuent de compléter leur panoplie d'utilitaires permettant à terme d'avoir un ensemble complet pour le développement IIGS sans même avoir de GS !
Il faut dire que programmer en 80 (voire en 40) colonnes sous les éditeurs de l'époque est un sacré challenge et les limitations apparaissent vite rédhibitoires. Certes, les purs et durs y arrivent encore mais travailler sur un PC (au sens large) reste - et de loin - le confort ultime pour des projets un tant soit peu ambitieux. N'importe quel éditeur de texte sous un OS moderne sera toujours très largement devant en terme d'ergonomie et de facilité d'utilisation. En fait, même pour des projets de quelques lignes seulement, l'interface austère de l'Apple II peut devenir un vrai cauchemar : je pense tout particulièrement au Basic AppleSoft et à son éditeur intégré en ROM !
Tokenizons dans la joie et l’allégresse !
Une des fonctions de CiderPress permet justement d'incorporer un fichier texte contenant de l'AppleSoft directement à une image disk en le transformant en programme Basic reconnu par l'Apple II. Bien que très conviviale, cette fonction n'est pas la plus pratique à utiliser en phase de développement, les manipulations nécessaires devenant vite fastidieuses. J'ai donc - éhontément - récupéré la partie de CiderPress s'occupant de cette fonction dans son code source (diffusé sous license BSD) pour en faire un programme en ligne de commande autonome s'utilisant simplement.
Tokenizer transforme donc un fichier texte contenant du Basic AppleSoft en un fichier binaire contenant le code sous forme de tokens exécutables par un Apple II. Ce fichier peut ensuite être intégré dans une image disk par d'autres utilitaires comme Apple Commander (version ligne de commande) ou Cadius par exemple. Le type de fichier à préciser lors de l'intégration est bien sûr A pour les disquettes DOS et BAS ($FC) pour les PRODOS. Ne reste plus alors qu'à lancer un émulateur avec l'image en question et le tour est joué, l'idée étant bien sûr d'automatiser le processus à l'aide d'un BATCH ou d'un IDE.
La syntaxe est très simple : il suffit de passer en premier paramètre (obligatoire) le nom du fichier texte contenant le code AppleSoft et en second (facultatif), le nom du fichier de sortie contenant les tokens (applesoft.bin étant affecté par défaut).
Entendons-nous bien, 95 % du code de Tokenizer est issu directement (et sans modification) de celui de CiderPress. Tout le mérite revient donc ici à Andy McFadden. Je n'ai fait qu'adapter son code pour le transformer en C (au lieu du C++ originel) et rentrer le tout au chausse-pied dans un programme de type console Win32. N'utilisant que des fonctions C standards, Tokenizer devrait être très facilement adaptable sur système Linux ou Mac OSX.
Increvable AppleSoft !
Pour être complet, signalons qu'il existe déjà - en dehors de CiderPress - des alternatives pour développer en AppleSoft sur plateformes modernes. Je pense notamment à WASP (Windows AppleSoft Programmer) de Charlie Danemark. De par sa conception, il impose l'utilisation de l'éditeur intégré. Et reste bien évidemment un outil exclusivement Windows. De plus, sans mise à jour depuis 2009, il ne semble pas reconnaître les versions récentes d'AppleWin et devient donc de fait inutilisable (il existe toutefois une astuce permettant de contourner le problème - [MAJ du 21.01.2014] : Charlie explique lui-même comment dans un post sur CSA2 datant d’août 2009).
Autre possibilité, l’interpréteur Basic AppleSoft en ligne de Joshua Bell. Écrit en javascript, c'est également un super outil pour tester facilement et rapidement du code. Par contre, aucune interaction n'étant possible (de par son concept même) avec une image disk, et donc des fichiers externes, sa portée s'en trouve limitée pour certaines utilisations.
Bref, vous l'aurez compris, il existe une petite place pour Tokenizer et je pense qu'il pourra rendre quelques services à ceux programmant encore en Basic AppleSoft.
Téléchargement :
Tokenizer est diffusé sous licence BSD. Le fichier zip disponible regroupe l'exe console Win32 (Tokenizer.exe) ainsi que le code source (main.c) et le fichier de license.
- 15.01.2014 : version 0.55 - première release publique.
envoyé le 16-01-2014 à 9 h 54 min
Cross Développeur de tous les pays unissez vous !!!
Olivier
envoyé le 17-01-2014 à 0 h 44 min
Purée, il a fallu que j’attrape mon dictionnaire pour chercher « cacochyme » ! On en apprend tous les jours 🙂
Merci pour cet outil !
envoyé le 17-01-2014 à 9 h 53 min
Ce pauvre Dolph m’a tellement fait de la peine la dernière fois que je l’ai aperçu dans un film que je me devais de lui rendre « hommage » !
Il est bien loin le temps où on le découvrait dans le rôle du – presque – insubmersible Drago de Rocky IV.
Un film sorti début 1986 chez nous, en plein dans mes belles années Apple II… Comme quoi tout est lié 😉
envoyé le 19-01-2014 à 11 h 22 min
Question : que se passe-t-il si le code Applesoft n’est pas valide ? Comment sont gerees les erreurs ?
av
envoyé le 19-01-2014 à 13 h 34 min
Réponse : rien !
Il n’y a aucune « interprétation » du code AppleSoft. Il est juste transformé en token. Tout ce qui n’est pas reconnu comme token, est gardé tel quel et considéré comme une chaîne de caractères.
Les quelques erreurs gérées ne concernent que les numéros de ligne en fait (numéro incohérent, ligne « vide », ou ligne sans numéro).
C’est pour cela qu’il est indispensable d’intégrer le résultat obtenu à une image disk et de le tester dans la foulée avec un émulateur qui lui, renverra, comme un vrai Apple II, les éventuelles erreurs du programme lors de son exécution.
C’est d’ailleurs pour cette raison que la mise au point de programmes AppleSoft en utilisant la fonction de CiderPress directement, est quelque peu pénible car les manipulations s’avèrent nombreuses avant de pouvoir tester réellement ce que l’on a tapé.