Tous ceux ayant un tant soit peu programmé en Basic Applesoft (même quelques lignes) savent à quel point il est laborieux d'éditer le moindre listing. Et il n'est pas rare de préférer retaper toute une ligne plutôt que de se battre avec la touche ESC pour (essayer de) modifier ce que l'on souhaite ! Beagles Bros l'avait bien compris et avait vendu dès le début des années 80, Global Program Line Editor, un petit utilitaire simplifiant grandement l'édition d'un programme Basic.
La documentation officielle précise que la disquette ainsi que les fichiers sont copiables avec les utilitaires DOS courants. Sauf que, CiderPress, l'éditeur bien connu d'images disque semble lui avoir quelques difficultés pour extraire et ré-importer ces mêmes fichiers ! Pourquoi ? C'est ce que nous allons découvrir maintenant...

Quand on ouvre l'image disque de GPLE avec CiderPress, on peut voir que les fichiers GPLE.48 (version 48Ko de l'éditeur) ou GPLE.LC (version se chargeant en "Carte Langage" pour les Apple II équipés de 64Ko ou plus) ne font que 443 octets. On s'émerveille alors devant l'optimisation d'un tel programme. Il n'y a pas à dire, à l'époque, on savait programmer ! Sauf que, si on jette un œil depuis un DOS 3.3, on s'aperçoit que chaque fichier occupe en fait 19 secteurs sur disque ! À 256 octets le secteur, le compte n'y est donc pas du tout ! En fait, GPLE utilise une méthode de chargement astucieuse : il y a une première partie (les 443 octets) qui n'est en fait qu'un loader destiné à charger en accès direct (en utilisant la RWTS DOS) le programme en lui-même, en utilisant pour se repérer la Track/Sector List associée au fichier. On peut donc ainsi (par l'utilitaire FID ou Copy II+ par exemple), comme indiqué dans la documentation, copier le fichier d'une disquette à l'autre, le loader retrouvera toujours ses petits pour l'accès direct et charger la suite. Par contre, CiderPress qui lui ne se base que sur la taille "officielle" du fichier, n'extrait que les 443 premiers octets (donc uniquement le loader) et laisse l'intégralité du programme de côté !

"Bon, OK et alors ? !" seriez-vous tentés de dire ? Et bien j'utilise souvent CiderPress pour dispatcher sur mes disquettes de travail les petits utilitaires dont je peux avoir besoin. Il me fallait donc trouver une solution pour le cas GPLE et éviter ainsi des manipulations fastidieuses !
La méthode la plus simple était de récupérer la partie chargée en accès direct et d'y placer avant une petite routine de déplacement vers la position définitive (en l’occurrence ici en $D000-$E000 Bank 2). J'ai également repris du loader les différentes initialisations effectuées, ainsi que l'affichage du nom du programme au lancement. Ce qui nous fait un programme final qui se charge d'une traite en $4B00 d'une longueur de $1200 octets et qui au lancement va déplacer la routine de l'éditeur proprement dite vers les 16Ko supérieurs de la mémoire de l'Apple II. La partie en $4B00 étant bien entendu de nouveau utilisable après. Je n'ai effectué la modification que pour GPLE.LC, modifier la version 48Ko n'ayant pas grand intérêt à mon sens. Mais le principe serait exactement le même.

Au final, nous nous retrouvons donc avec un programme GPLE.LC, que l'on peut extraire et ré-importer à loisir avec CiderPress !

Télécharger GPLE.LC (modifié).

Note 1 : ce fichier a été recréé à partir du GPLE.LC (DOS 3.3) original de base (donc sans modification suite à l'utilisation du programme de configuration).
Note 2 : la disquette Beagle Bros de GPLE contient les versions DOS et PRODOS du programme. Seule la version DOS est concernée par la bidouille, la version PRODOS se chargeant de manière classique.