Turbo Pascal v3 sur Amstrad CPC 6128

Tout sur les ordinateurs de Mr SucreCPC PCW PC PDA NC ...

Modérateur : Politburo

Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Turbo Pascal v3 sur Amstrad CPC 6128

Message par Gilles59 »

Essai vidéo du TP3 sur CPC6128. Première vidéo. D'autres devraient suivre si je trouve le temps ;D

https://youtu.be/osPpbnsJjag
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Avatar du membre
C.Ret
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3404
Enregistré le : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par C.Ret »

Ah! Souvenir souvenir, le Turbo Pascal cela me rappelle mes deux premières années universitaires en biologie.

Cette année là, devant l'importance que prenait les techniques informatiques en biologie (nous étions à l'aube des biotechniques actuelles), le conseil pédagogique de l'Université où je venais de m'inscrire en première année ne savait pas quoi nous faire faire pour nous initier à cette nouvelle science naissante.
Dans l'amphi la majorité se demandait de quoi il s'agissait, en travaux pratiques (à chaque module théorique correspondait un module pratique physiologie végétale à la botanique, physiologie animal à la biologie du vivant, exploration des champs forêts et collines des alentours pour l'écologie,...) mes camarades découvraient pour la première fois un ordinateur, une disquette (c'était des IBM AT reliés par quatre à une EPSON matricielle par un commutateur/sélecteur manuel).

Je me souvient que dès la quatrième heure de cours théorique, le jeune professeur tentait d'expliquer à un amphi abasourdi la différence entre le passage d'arguments par VALEUR et par REFERENCE...
Il n'y avait sur la centaine que nous étions que trois ou quatre extra-terrestres qui avait déjà touché et savaient mettre sous tension un ordinateur. Et sur les quelques uns qui avait touché ou approché une telle machine, un seul avait déjà programmé quelque chose...

Nous avions reçu deux disquettes HD/DD 5"1/4 contenant le Turbo Pascal et des exemples de code pour le cours. Nous devions nous les faire passer de poste en poste pour les copier à l'aide des deux lecteurs des PC-AT. Sur le tableau blanc de cette salle de TP-informatique toute neuve était noté l'ordre dans lequel il fallait placer la disquette pour charger le MS-DOS et les disquettes à formater puis à copier ainsi que les instructions MS-DOS pour formater et copier.

Je me souviens de la tête de l'encadrant (exporté de l'institut de technologie voisin pour cette toute nouvelle matière) qui s'énervait car cela n'avançait pas lorsqu'il a compris ce qui ce passait: quelqu'un du second rang demanda « Monsieur ? Comment on sait que la copie est terminée ? » et la réponse un peu surprise « Quand la diode du lecteur s'éteint et que le curseur réapparait !? » Alors le premier rang compris qu'il y avait quelque chose qui n'allait pas, qu'il fallait mettre sous tension l'engin, que l'écran devait afficher quelque chose, les ventilateurs faire du bruit, des diodes s'allumer ou s'éteindre et que taper à l'aveugle sur le clavier d'une machine éteinte n'était pas le bon usage des nouvelles technologies...
Le pire est que les trois disquettes était entrée et ressortie des lecteurs inertes de tout le premier rang sans que cela ne suscita la moindre interrogation ...
Une fois tous les ordi sous tension, il a fallu expliquer comment fermer les portes des lecteurs avant de lancer les commandes, comment revenir en arrière en effaçant les fautes de frappe, comment laisser un espace indispensable entre la commande et ces paramètres, pourquoi ne pas ouvrir le lecteur tant que la diode est allumée et que le mécanisme tourne, comment ne pas formater la disquette MS-DOS ou la disquette contenant le code source ou le Turbo PASCAL, etc.


Alors, oui, en voyant la vidéo de Gilles59 expliquant très sommairement qu'il faut mettre un VAR avant la liste des arguments de sa procédure SWAP je me suis souvenu de tout cela.
Et comme le jeune professeur de l'institut de technologie voisin, Gilles59 va trop vite et n'explique pas suffisamment à mon goût pourquoi c'est important et comment son code se compilerai facilement mais NE fonctionnerait PAS s'il omettait ces trois petits caractères à cet endroit…

Le PASCAL est le langage par excellence pour toute pédagogie, il permet d'initier efficacement à de nombreux aspects des sciences de la programmation de systèmes informatiques. Et en plus, il est aussi très efficace car sa syntaxe (et donc la compilation qui en découle) est très rigoureuse.

Prenez par exemple le détail, " tout programme doit finir par « END. » ". On se demande vraiment pourquoi finir par un "point final", il y a toute une floppée de « END; » munis d'un point-virgule ! Alors pourquoi un END-point-final ??
On se pose vraiment la question, jusqu'à jour où, comme cela arrive à Gilles59 dans sa vidéo, on oublie un « END; » quelque part et alors on comprend le pourquoi et l'intérêt du "point-final". Le PASCAL est plein de petits détails insignifiants, casse-pied lorsque l'on code des projets étoffés, mais qui ont font aussi sa force : ce n'est pas comme les compilateurs des langages actuels qui ont besoin de trois ou quatre passages. On compile de A à Z en une seule passe !

PASCAL, langage de programmation didactique pour des étudiants suisses têtus ?

En regardant la vidéo, je tapotais le programme BASIC de Tri à Bulles sur mon Commodore C128D et je fus surpris de voir qu'il allait presque aussi vite que celui sur le CPC 6128 de Gilles ! Je suis surpris, j'étais persuadé que le BASIC de ces Amstrad étaient bien plus puissants et surtout plus véloce que le pauvre et mal foutu (C) 1985 COMMODORE BASIC 7.0 (c) 1977 MICROSOFT CORP. ?

C'est bien le signe que « les programmes ralentissent plus vite que le matériel n'accélère » !
SHARP PC-1211 PC-1360 EL-5150 PC-E500 | Commodore C=128D | Texas Instruments Ti-57LCD Ti-74BASICalc Ti-92II Ti-58c Ti-95PROCalc Ti-30XPROMathPrint | Hewlett-Packard HP-28S HP-41C HP-15C HP-Prime HP-71B | CASIO fx-602p | NUMWORKS | Graphoplex Rietz Neperlog | PockEmul | Sommaire des M.P.O. | Ma...dov'il sapone.
destroyedlolo
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1799
Enregistré le : 03 mai 2003 02:24
Localisation : Nonglard (Annecy)
Contact :

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par destroyedlolo »

Le Pascal était le chef de bataille de mon prof d'info en 1er année d'IUT.
Et passer de l'Amiga a un ecran text monocrome, sur une machine qui ne fait qu'une chose a la fois et qu'on te dit "ouai, mais c'est professionnel :mrgreen: :mrgreen: :mrgreen: ".
Plus sérieusement, vu que je faisais du C déjà depuis quelques années sur mon Amiga, je trouvais justement le Pascal trop strict, trop lourd et in fine trop "limité".

En cours formel, nous avions le fameux "langage d'analyse" qui n'était en fait qu'un Pascal francisé : le prof se tirait les cheveux quand il voyait que je faisais d'abord le truc en C avant de le traduire dans ce langage :wink:
Amiga, UNIX
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
Patricklaf
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 159
Enregistré le : 02 sept. 2017 10:03
Localisation : Clermont-Ferrand

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par Patricklaf »

Et bien moi, j'ai toujours trouvé que le Pascal n'avait rien à envier au C :D
J'ai commencé avec Turbo Pascal 4.0 sur PC 1512, puis Pascal Objet, la librairie Turbo Vision, Turbo Pascal for Windows, Borland Pascal 7.0 et Delphi...
Il m'arrive encore d'utiliser Lazarus.

Bravo pour cette vidéo.
Patrick
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par Gilles59 »

Merci C.RET pour ces souvenirs... Moi j'ai commencé avec le Fortran et le Pascal UCSD sur Apple 2... Ah le fameux débat Pascal vs C... Perso j'ai toujours préféré le Pascal... Le TP7 est vraiment top, avec la programmation objet. Et puis compilez le même programme en Delphi et Visual C++ sur une machine de l'époque vous fait comprendre votre douleur ;D Pour mémoire les OS des premiers Mac étaient en Pascal.

Pour les deux videos à suivre je prévois :

2/ Des graphiques, du mode 0-1-2 etc... Comment intégrer facilement les commandes du firmware CPC en Pascal...

3/Plus incertain mais je ne désespère pas : comment manipuler directement en TP3 la mémoire graphique du CPC sans passer par le firmware qui est assez lent. Je n'ai rien trouvé de documenté là dessus et il faut plonger dans les méandres de la gestion des 'banks" mémoire du CPM et me replonger dans l'assembleur Z80 que j'ai totalement oublié :/ Pour le moment je réussis à tout faire planter : c'est un bon début ! ;D
(...)
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Avatar du membre
Miskatonic91
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 477
Enregistré le : 27 août 2016 17:28
Localisation : Valdemarnie

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par Miskatonic91 »

Merci Gilles59 pour cette vidéo nostalgique!
Le TP3 est un langage parfaitement adapté aux capacités limitées (mémoire, affichage) du HP-LX 95:

Image

Grâce à cette machine j'ai pu regoûter récemment aux joies du Turbo Pascal, mes premiers balbutiements avec ce langage remontant au milieu des années 80, sous MS-DOS... Évidemment, j'avais tout oublié de la syntaxe à la "Wordstar" de l'éditeur! J'ai mis du temps à retrouver le CTRL-K D qui permet de sortir de l'éditeur et revenir au menu principal... :wink:
Un peu de tout, mais toujours de bon goût :wink:
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6172
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par Marge »

Un grand merci également, je découvre ce langage bien vivant après en avoir beaucoup appris par écrit ; je me demandais s'il existait un compilateur Pascal pour Psion mais la réponse probablement négative (la cousine Lua y a vu le jour toutefois) ne m'attriste guère puisque Miskatonik vient de m'apprendre qu'on pouvait s'y amuser sur HP --- LX ... Double merci, donc, j'attends la suite avec intérêt.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
pir2
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4642
Enregistré le : 31 oct. 2006 15:08
Localisation : 67310 Westhoffen
Contact :

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par pir2 »

Merci pour Lazarus, téléchargé et installé (sur mon PC du boulot ;) ) et testé avec mon appli de gestion de menus et formulaires.

J'ai juste du commenter les lignes de code qui correspondent à la gestion spécifique des sauvegardes d'écran et d'interruptions MS/Dos et tout fonctionne (sauf bien sûr la souris, la gestion des écrans et les caractères spéciaux).

Je suis content et vais pouvoir ré-utiliser avantageusement dans mes fichiers de commande en remplacement des Set /P et autres Choice :D
Image
Image
Ben
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1549
Enregistré le : 21 août 2016 19:04

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par Ben »

Je dois avouer que je suis passé complètement à côté du Pascal. Je n'ai jamais écris une ligne de code dans ce langage. J'ai commencé avec le BASIC, ensuite le PL/1, le Cobol et l'Assembleur 370.

Je ne sais pas trop pourquoi, mais je ne me suis jamais senti attiré par le Pascal.
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6172
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par Marge »

Moi je suis très intéressé : j'ai installé Pascal sur un 200 lx et je vais me lancer dans une animation pour enseigner le cercle trigonométrique à mes gosses. Hyper-motivant.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par Gilles59 »

Je pense avoir trouvé le moyen de manipuler directement la RAM vidéo en Pascal sous CPM+ sans passer par le firmware... Mais il faut que je replonge dans l'ASM Z80 ;D Bref ça va prendre un peu de temps. Je n'ai rien trouvé sur le net qui fait çà sauf à ne pas gérer les"banks" mémoire (le faire en CPM 2.2), ce qui a peu d'intérêt car il ne reste plus grand chose pour coder. Si ça marche ce devrait être bien plus plus rapide (mais plus risqué) que passer par firmware du CPC. Et puis il faut réécrire toutes les routines graphiques en ASM mais on trouve facilement ça en ligne.
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
Patricklaf
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 159
Enregistré le : 02 sept. 2017 10:03
Localisation : Clermont-Ferrand

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par Patricklaf »

Il me semble qu'il y avait une Turbo Graphix Toolbox pour les CPC 6128.
C'était un ensemble de librairies graphiques pour Turbo Pascal.
Patrick
Gilles59
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1602
Enregistré le : 27 oct. 2010 20:46

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par Gilles59 »

Patricklaf a écrit : 10 oct. 2020 13:14 Il me semble qu'il y avait une Turbo Graphix Toolbox pour les CPC 6128.
C'était un ensemble de librairies graphiques pour Turbo Pascal.
J'ai l'impression qu'il y a deux façons de faire, mais n'ayant pas trouvé de doc spécifique Amstrad sur le portage du TP3 sur CPM+ j'ai un gros doute :
1/ Utiliser des extensions du CPM pour le graphisme avec l'avantage d'une compatibilité multiplateforme CPM+ (? pas testé)
2/ Utiliser directement le firmware du CPC : Ca se trouve sur la disquette du TP3/amstrad dans le fichier GRAFIK3.INC. L'accès au firmware est un peu modifié car le CPM+ gére des "banks" de mémoire. "grafik3" reprends les ordres du Basic et ajoute le son. Je n'aime pas trop comment c'est structuré. Je suis en train de revoir tout ça pour être plus proche du firmware qui est magnifiquement documenté ici :
https://archive.org/details/SOFT968TheA ... l/mode/2up
Ce manuel est carrément bluffant de qualité pour une machine grand public de 1985! (pour le télécharger en PDF le lien est en bas)

Evidemment quand on va dans des trucs plus compliqué le TP3 accuse son âge par rapport aux versions suivantes :
- Pas d'assembleur intégré mais la commande INLINE permet d'intégrer très facilement du code machine en code hexa
- On ne peut pas compiler des "unités" comme dans les TP suivants ce qui est assez génial. Ici il faut tout recompiler à chaque fois.
Je passe sur l'absence d'entier long, de chaines de caractère "à zéro terminal" etc... Mais on ne pas avoir tout le confort moderne sur un soft qui a 35 ans ;D et c'est ça qu'on aime ici non ?
Casio FX-502P /602P / 603P / FX180P+ / FX4000P / TI57 / TI66 / TI74 Basicalc / TI95 Procalc / HP12C / HP15C LE / DM41L / HP 30B / HP39GII / HP 48SX USA / 49G / 49g+ / 50G / 50G NewRPL / HP Prime / Oric 1 / Amstrad CPC 6128+ CM14 et MM12 / Alice 32
jxano
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2362
Enregistré le : 16 févr. 2008 23:34
Localisation : Paris 20ème

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par jxano »

C'est la programmation en Pascal (puis en Lisp) qui m'a permis de finir mon DEUG de Maths sans trop de casse et de continuer en Licence d'Informatique, où j'ai pu toucher aux langages C, Prolog, Ada... Sorti du BASIC, la programmation procédurale du Pascal fut une découverte pour moi, et une excellente introduction pour tout le reste.

A la fac, c'était le bon vieux TP4 sur Logabax Persona 1600 (écran vert, deux disquettes 5"1/4) entre 1989 et 1992. En 1995, j'avais trouvé le moyen d'installer TP6 (qui faisait déjà la programmation objet) sur un Sharp PC-3000, une machine de poche d'un format à peine supérieur à une lettre format commercial qui fonctionnait sous DOS 3.22. Faire de l'héritage et du polymorphisme était un vrai régal là-dessus, mais dommage que le système de batterie n'était pas performant.
Programmeur abscons.
Avatar du membre
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7141
Enregistré le : 31 janv. 2008 14:24
Localisation : Banlieue Paârisienne
Contact :

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par gege »

Bonjour,
J'ai enseigné le Pascal en Maths Sup puis ai programmé professionnellement en C++ pendant pas mal de temps…
Ben y a pas photo : C++ gagnant par KO.
Après, ok il y a la nostalgie de Turbo Pascal dans les débuts, c'était magique.
M'enfin l'un est un jouet un peu punitif et pédant, l'autre un outil de tueur de problèmes ultra-puissant... je vous laisse deviner.
G.E.
Répondre

Retourner vers « Amstrad »