Tokenizer (faux logo)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.

Tokenizer (console Win32)

 

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.