QL + CP/M = Success

See all articles from QL_DOC n5
Author(s): Réal Gagnon
Publication: QL_DOC
Pub Details: QL_DOC n5 (Issue 5)
Date: August-September 1988
Pages: 7-10

In English: A long review and how-to for Digital Precision's Success, a CP/M 2.2 emulator that translates Z80 code for the QL's 68008. It covers the CPMFILES container file and drive letters A: to G:, the basic CP/M commands and Success's extra utilities (ANALYSE, DEFINE, RDQDOS, WRQDOS), where to find CP/M software, and a home-made driver for reading Kaypro II disks, with its listing. It also explains .LBR libraries (NULU), squeezed files (UNSQ, NSWEEP), terminal patches for the VT52 emulation with DDTZ, and limits such as monochrome only and 64K.

The article below is in French, as printed in QL_DOC n5 (August-September 1988).


DIGITAL PRECISION est reconnu pour offrir des logiciels de qualité, des logiciels qui marquent un pas dans la petite histoire du QL. Mentionnons SUPERCHARGE, THE EDITOR, DESKTOP PUBLISHER et maintenant il y a SUCCESS, un émulateur CP/M. SUCCESS ouvre la porte à des milliers de programmes écrits pour ce système d’exploitation. Mais ne nous emballons pas car la route du “SUCCESs” est pavée d’embuches (qui ne sont pas insurmontables, mais enfin ils existent…).

1-SUCCESS: Le système

En fait, le coeur de SUCCESS est un programme qui permet de traduire des instructions propres au Z80 en instructions compréhensibles pour le 68008, car faut-il le rappeler le CP/M est un système d’exploitation pour 8080 ou Z80. En plus SUCCESS contient les “outils” nécessaire pour transformer le QL en une machine capable d’utiliser CP/M. Et enfin nous avons le CP/M lui-même. Chaque instruction machine du CP/M ou d’un programme tournant sous CP/M est traduite en instruction 68000. Cette “traduction” affecte la vitesse d’exécution des programmes, le QL avec SUCCESS équivaut à un Z80 fonctionnant à 1 Mhz sur une machine 128K ou environ 1.8 Mhz avec une expansion de mémoire.

Il est obligatoire d’avoir au moins un lecteur de disque, d’une capacité 720K (1440 secteurs), car les programmes SUCCESS CP/M sont logés dans un gros fichier de plus 500K appelé CPMFILES. SUCCESS supporte 6 moyens de sauvegarde de données sous CP/M. FLP1 et FLP2 deviennent lecteur A: et B: (capacité 512K chaque), MDV1 et MDV2 sont lecteur C: et D: (capacité 100K chaque), RAM1 et RAM2 sont lecteur E: et F: (capacité 200K chaque) et le lecteur G: est au format définissable par l’utilisateur. Ce dernier permet d’aller lire des disquettes provenant d’ordinateur CP/M original. Il est à noter que pour les lecteurs A: à F: lorsqu’on est en QDOS, si l’on fait par exemple DIR MDV1_, l’on ne verra pas les fichier CP/M que nous y avons écrits, l’on ne verra qu’un fichier CPMFILES. Les fichiers CP/M ne sont accessibles que lorsqu’on est en CP/M. En ce qui concerne RAM1 et RAM2, il faut d’abord un logiciel de RAMDISK du genre QFLASH, car il faut FORMATer le RAMDISK sous QDOS en premier avant de le FORMATer sous CP/M.

2-SUCCESS: CP/M

C’est la version CP/M 2.2 qui offerte avec SUCCESS, c’est la plus répandue. CP/M est un “vieux” système d’exploitation, donc il n’est pas le plus facile d’utilisation, sa force réside dans la quantité théorique de logiciels qui ont écrits pour lui et non parce que c’est le NEC plus ULTRA de tous les DOS!

Les noms de fichiers CP/M ont 8 caractères au maximum et possède une extension de 3 caractères qui sert à indentifier son type. Par exemple, si nous avons le fichier TOTO.COM, il s’agit d’un programme car nous avons l’extension “.COM”, nous chargeons TOTO en tapant simplement A>TOTO . Le “A>” est le prompt. Il indique le lecteur de disques utilisé par défaut. Si “TOTO” est sur le lecteur B: alors nous ferons A>B:TOTO pour l’exécuter. Par convention, il y a plusieurs extensions qui sont standardisés. Le manuel de SUCCESS en founit une petite liste.

La plupart des commandes CP/M acceptent les “wildcards”, ceux-çi permettent d’affectaient plusieurs fichiers avec une seule commandes. La commande DIR permet de voir le contenu d’une disquette CP/M. Si l’on fait DIR *.DOC , alors on verra seulement les fichiers avec l’extension “.DOC” sur le lecteur par défaut. Par contre, si l’on fait DIR C:DB*.* , l’on verra tous les fichiers du lecteur C: commençant par “DB” est avec n’importe quelle extension. Les caractères “*” et “?” sont utilisés pour les “wildcards”, ceux qui sont familiers avec le MS-DOS seront en terrain connus içi.

Voici un apercu des commandes CP/M:

  • DIR donne le contenu d’une disquette CP/M.
  • TYPE montre le contenu d’un fichier texte à l’écran.
  • REN renomme un/des fichier(s).
  • ERA efface un/des fichier(s).

Ces derniers n’ont pas être charger en mémoire, ils sont résidents en quelque sorte. Il y a les autres qu’il faut charger à chaque fois que le besoin se fait sentir.

  • ASM est un assembleur 8080 (ne pas confondre avec Z80).
  • DDTZ est moniteur-langage machine, en CP/M il sert à faire des “patches” aux programmes…
  • ED est un éditeur de texte qu’on peut oublier complètement car trop compliqué à utiliser.
  • PIP sert à copier des fichier d’un lecteur à l’autre ou envoyer un texte à l’imprimante.
  • STAT donne l’information à d’un lecteur/fichier/système

En plus, SUCCESS fournit des programmes supplémentaires.

  • ANALYSE sert à configurer le lecteur G: pour qu’il puisse lire/écrire des disquettes au format étranger au QL.
  • CAT donne le contenu d’une disquette QDOS.
  • DEFINE définit le format du lecteur G: .
  • DEFKEY definit les touches de fonction.
  • DELQDOS efface un fichier QDOS.
  • FORMAT prépare une disquette/µDRIVE/RAMdisk à être utilisé sous CP/M.
  • RDQDOS copie un fichier QDOS en CP/M.
  • WRQDOS copie un fichier CP/M en QDOS.

3-SUCCESS: Les programmes CP/M

Il y a des milliers de programmes CP/M, oui mais où sont-ils?

La production actuelle de programme CP/M est à peu près nulle. A ma connaissance seul le COMMODORE 128 et l’AMSTRAD PCW fonctionne en CP/M aujourd’hui. Il faut se tourner vers le DOMAINE PUBLIC et les BABILLARDS ELECTRONIQUES (BBS) pour en trouver.

QL_DOC ne reculant devant rien pour satisfaire ses lecteurs offre à qui en fait la demande des programmes CP/M prêts à être utiliser avec SUCCESS, écrivez-moi si vous êtes intéressé.

En CP/M, il y a une multitude de langage de programmation: MACRO-ASSEMBLEUR Z80, langage “C”, TURBO PASCAL fonctionnent tous très bien avec SUCCESS. Pour les base de données, il y bien sûr DBASE II. Pour les traitement de texte, il y a WORDSTAR, mais ce n’est pas fameux et c’est trop lent. On peut oublier les logiciels de communication car ils font affaire trop directement avec le HARDWARE de la machine. Il y a une multitude de programme de domaine public qui font tout et rien à la fois.

4-SUCCESS: Utilisation des programmes CP/M

Une fois que vous avez trouvé vos programmes, il faut les transférer en format SUCCESS car chaque ordinateur CP/M à son propre FORMAT! On devra utiliser notre lecteur G: pour lire ces disquettes “étrangères”. SUCCESS fourni 3 “drivers” déjà fait pour le lecteur G:. Malheureusement c’est pour le BBC et l’AMSTRAD PCW, totalement inutile içi. Donc il faut définir notre propre driver. Pour ce faire on utilise le programme ANALYSE qui va déterminer le format du lecteur G:. Mais ça ne marche pas vraiment il faut changer certains paramètre à la mitaine. J’ai réussi à faire un “driver” pour le format KAYPRO II qui est un des plus répandus pour le CP/M. en voici la liste:

! DRIVER pour lecture SEULEMENT de disquette formatee au FORMAT
! KAYPRO II.
! par Real Gagnon pour QL_DOC 07/20/88
40 ! secteur logique par track
1 ! grosseur de block (1=1024 bytes)
95 ! grosseur du directory maximum -1
192 ! pas important, uitliser en ecriture, ceci est LECTURE SEULEMENT
1 ! nombre de track reserve
!
! Les caracteristiques physique
!
2 ! numero du lecteur
2 ! grosseur physique du secteur
10 ! nombre de secteur par track
40 ! 40 tracks
0 ! simple saut entre les tracks
1 ! double density
! Agencement des secteurs
0
1
2
3
4
5
6
7
8
9

Créer ce fichier avec un éditeur ASCII sous le nom DISKFMT_DRV sur votre disquette SUCCESS. Puis en CP/M, faites:

A>RDQDOS KAYPII.DRV FLP1_DISKFMT_FMT (copie fichier QDOS -> CP/M)
A>DEFINE KAYPII (definit le lecteur G:)

Puis insérer un disquette formatés en KAYPRO II dans le lecteur G: et faites DIR G: . Si ca marche, vous avez le contenu de la disquette à l’écran. Si non, il y a une erreur quelque part!

Lorsque tout est correcte, avec la commande PIP, transférer les programme du lecteur G: au lecteur A:.

Lorsque que vous recevez une collection de programmes CP/M, habituellement ceux-çi se présentent sous forme de librairie. Pour extraire ces programmes il vous faut un autre programme, il y a un appelé “NULU.COM” qui est très facile d’utilisation. Supposons que vous avez le fichier “SMALLC.LBR”. Celui-çi n’est pas directement exécutable, il faut extraire les programmes de cette librairie en premier car “SMALLC.LBR” peut contenir 10 programmes séparés. Ils ont été compactés en un seul pour sauver de l’espace sur la disquette.

En plus, il y a certains programmes qui sont SQUEEZés. On les reconnait facilement parce qu’ils ont un “Q” dans le milieu de l’extension. Par exemple, SMALLC.DQC est la version SQUEEZée de SMALLC.DOC et SMALLC.CQM est la version SQUEEZée de SMALLC.COM . Dans ce cas pour UNSQUEEZé le fichier il vous faut un autre programme du genre “UNSQ.COM” ou l’excellent “NSWEEP.COM”.

Un fois que la librairie est extraite et que les fichiers sont UNSQUEEZés, il reste un dernier point, l’écran vidéo. Chaque ordinateur CP/M avait la mauvaise habitude d’avoir son propre type d’écran vidéo ou de terminal. Ce qui veut dire qu’un programme CP/M fonctionnant sur ordinateur ne fonctionnera pas nécessairement sur un autre de marque différente même si il s’agit d’un ordinateur CP/M car son type de terminal est différent. SUCCESS émule le terminal appelé VT52, qui n’est qu’un parmi tant d’autre. Si vous avez disons un programme conçu pour un ordinateur OSBORNE qui envoie des caractères de contrôle à l’écran, vous aurez un problème car les caractères de contrôle sont différents pour un OSBORNE et un VT52. Habituellement la documentation du programme mentionne l’endroit où il fait faire des “PATCHes” c’est-à-dire des modifications au programme pour qu’il envoie les bons codes au terminal. Ceci est fait avec le programme DDTZ.COM qui vient avec SUCCESS. Habituellement avec les logiciels commerciaux, le changement se fait avec un programme d’installation qui offre une choix entre une liste de terminaux ce qui facilite les choses de beaucoup.

En terminant, j’aimerais souligner que SUCCESS et tous les logiciels CP/M sont monochromes, vous n’aurez pas de couleur en CP/M. Les caractères français ne sont pas supportés avec les éditeurs de texte à moins de “PATCHé” ceux-çi. Le CP/M a une capacité de 64K de mémoire car rappelez-vous que 64K c’est la mémoire maximale qu’un Z80 peut adresser.

SUCCESS est disponible chez SHARP’S aux USA et peut-être chez GAGNON ELECTRONIQUE à QUEBEC.