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

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par Gilles59 »

gege a écrit : 15 oct. 2020 16:52 Ben y a pas photo : C++ gagnant par KO.
Oh là là, on lance un débat sur le sexe des anges là. Et puis de quel Pascal parle-t-on? Pascal Ansi, TP3..TP7, Delphi ?
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
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 continue mon exploration de TP3 sur CPC6128.

1/ Programme utilisant les graphiques (parcours du cavalier)
https://youtu.be/T7Q0yJRmKzk (Vitesse réelle CPC)

2/Police vectorielle et proprotionnelle (même prog en mode 2,1 et 0)

Image

Image

Image
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
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 »

Un truc bien sympa aussi... Avec WinAPE (Emulateur CPC) On peut écrire les sources des prog Pascal avec NOTEPAD++ (ou autre) et faire juste un Drag&Drop du fichier vers le .DSK du CPC (ou inversement). En plus avec le mode TURBO de l'émulateur + réglage de la rapidité on a des temps de compilation sur CPC quasi instantanés et un éditeur sur CPC qui reste utilisable :D. Pour développer WinAPE est 10 fois mieux que Caprice32. L'assembleur et le debugger intégrés sont très pratique aussi...
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
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 »

Merci pour cette addition ; naturellement, sur Amstrad ça dépote. Je me demande à ce propos comment augmenter la taille des polices sur le 200-LX sous Pascal 5.5 (voire en changer totalement...), mais peu sans doute ont la réponse ici. En attendant, je m'en vais poser mon premier pixel (un point, c'est tout !) au milieu de l'écran, j'en suis encore tout bouleversifié. :wink:
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 »

Marge a écrit : 28 oct. 2020 22:14 Merci pour cette addition ; naturellement, sur Amstrad ça dépote. Je me demande à ce propos comment augmenter la taille des polices sur le 200-LX sous Pascal 5.5 (voire en changer totalement...), mais peu sans doute ont la réponse ici. En attendant, je m'en vais poser mon premier pixel (un point, c'est tout !) au milieu de l'écran, j'en suis encore tout bouleversifié. :wink:
Si ça tourne sous MSDOS il doit y avoir moyen. C’est fort loin tout ça, mais il me semble que c’est la commande MODE ... de mémoire je l’utilisais dans l’autre sens pour dépasser les 80 colonnes. Edit : bon ça a pas l’air d’être ça ou c’est une commande dans tp? Genre mode co40?
https://pascal.developpez.com/cours/cyberzoide/
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 »

Marge a écrit : 28 oct. 2020 22:14 Je me demande à ce propos comment augmenter la taille des polices sur le 200-LX sous Pascal 5.5 (voire en changer totalement...), mais peu sans doute ont la réponse ici.
Heu... par la bibliothèque Turbo-Vision?
Un peu de tout, mais toujours de bon goût :wink:
Helix
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 60
Enregistré le : 13 nov. 2015 18:52
Localisation : 47

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par Helix »

Pour rappel, il existe la fonction ZOOM du HP 200LX (Fn Espace), qui est bien pratique.
Si besoin, on peut ensuite faire défiler l'affichage avec MENU+touches haut/bas/droite/gauche, mais la plupart du temps ce n'est pas nécessaire.

Sinon, il est possible de modifier les fontes employées par le HP 200LX. Cela permet de rendre les petites fontes MS-DOS un peu plus lisibles, en particulier pour les chiffres.
Pour ce faire j'ai employé l'utilitaire Font Compiler and Loader (FCL), que l'on peut trouver dans l'archive SUPER téléchargeable ici :
http://200lx.olsonnetwork.com
Si cela répond à la question, je peux poster mon fichier de fontes à titre d'exemple.
Avatar du membre
clearscreen
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 14
Enregistré le : 28 oct. 2020 04:19

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par clearscreen »

Bonjour,
le TP 3.00A me rappelle vraiment de bons souvenirs.
J'ai appris sur persona 1600 au lycée et j'ai sur le tard eu une version pour CPC.
C'est vrai que la fonction inline permettait de faire pas mal de trucs. J'ai même donné des "cours" de TP dans un fanzine.
Ensuite j'ai une une version pour l'epson qx-10 et on avait avec TP accès au nec GDC μPD7220 qui était une tuerie au niveau graphique...

J'ai suivi les discussion sur le C/C++ et le TP, et franchement, si je peux me permettre, je trouvais que le TP était vraiment un très bon langage d'apprentissage, parce que clair, non ambigu, proche du langage naturel et tout de même compilé donc assez rapide (et si on a un 8087 alors là ...)

D'ailleurs , le créateur du compilateur TP (Anders Hejlsberg) a conçu .Net il me semble ?

Et le C avec ses pointeurs et sa manie de faire les choses de 3 façons différentes, cela pouvait légèrement laisser une certaine trace dans le cerveau :-) Il y avait un "vieux de la vielle" qui appelait ça un "assembleur portable"

CLS.
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 »

Salut,
clearscreen a écrit : 31 oct. 2020 09:16 J'ai suivi les discussion sur le C/C++ et le TP, et franchement, si je peux me permettre, je trouvais que le TP était vraiment un très bon langage d'apprentissage, parce que clair, non ambigu, proche du langage naturel et tout de même compilé donc assez rapide (et si on a un 8087 alors là ...)
Juste pour clarifier : je n'ai pas dit que le TP était un mauvais langage, mais simplement que comme je connaissais déjà très bien le C, c'était simplement frustrant.
Amiga, UNIX
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
Avatar du membre
clearscreen
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 14
Enregistré le : 28 oct. 2020 04:19

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par clearscreen »

Hello,
je ne voulais pas te faire dire ce que tu n'a pas dit, et si tel est le cas je m'en excuse.

Par contre c'est vrai qu'entre TP qui est quasi du langage naturel (il y a des pointeur d'ailleurs que je n'ai jamais utilisé en TP) et C qui te permet de faire du cast de pointeur dans un entier dans une structure car tu n'as plus de place (j'ai vu ça), ou par exemple d'inverser le nom du tableau avec l'index et de compiler et d'avoir un code qui s'exécute...

En plus C est un langage très ancien (je ne dis pas non plus qu'il faut faire des proto K&R) donc il y a plein de gens qui ont essuyé les plâtres sur les subtilités ! Je ne te dis pas la douleur quand je suis passé du TP que je maîtrisais assez bien (mon truc c'était de coder des interfaces semi graphiques avec ascenseurs, et tout et tout en bas niveau) à du C, j'ai eu un peu mal à la tête.

Tu as des maximes style : si tu as 3 moyens de faire la même chose c'est du C, ou alors C est un langage WO (write only) :-)
NB : tiens un sur le lisp = Lots of Insane Stupid Parentheses :-)

Pareil, heureusement que j'avais fait de l'assembleur ce qui m'a permis de comprendre les pointeurs et les erreurs d'initialisation quand tu crois que c'est comme du TP...

Bon, après le C++ et IOSTREAMS (magique ça) et les histoire de const ref avant, après, au milieu...
Et après les langage managés et la différence lors des copies de chaines pas forcément évident au début... (pareil l'introspection c'est magique aussi - dangereux mais magique).

Par contre je ne sais pas si tu as vu les dernières évolutions du C++ qui a bien simplifié les choses et le C pareil a eu des évolutions.

Bref je vais me remettre à coder sur mon OS (un petit projet perso) donc je vais me replonger dans mon code C d'il y a assez longtemps et on va voir si j'ai encore le niveau (ça va revenir mais ça va mettre du temps :-). Ou alors je le passe en C++ mais quelle version ...

En tout cas que de bons souvenirs le TP (les cours je les donnais dans "bonsoir la planète" sur amstrad CPC) et le include error messages pour gagner de la place, ou encore le type byte !!!!

A++ (enfin pardon C++ ^_^) <= ok je sors
CLS.
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,
Oui C permet de faire n'importe quoi, ça fait la différence entre les bons programmeurs et les mauvais programmeurs (cf les Inconnus).

Chacun sa préférence, perso je le lis toujours facilement 15 ans après. Ça dépend du style de codage tout ça.

Sinon, je vous laisse répondre à LA question :
POURQUOI Nicklaus a-t-il inclus le goto dans Pascal ???
(je ne crois pas que c'est parce que c'est un crétin)
Vous avez 2 heures...
G.E.

P.S. : IOSTREAMS et << ou >> c'est le mal !
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 »

Ah les Goto ;D
Edsger Dijkstra et Niklaus Wirth ont défendu l'idée selon laquelle l'instruction goto ne peut que mener à du code illisible. D'autres, comme Linus Torvalds ou Robert Love (en), ont fait remarquer que même si elle incite à produire du code spaghetti, l'instruction goto peut être appréciable et rendre au contraire le code plus lisible, lorsqu'elle est employée à bon escient1.
Source https://fr.wikipedia.org/wiki/Goto_(informatique)

Comment tous les outils, il faut les utiliser à bon escient. En tout cas je m'amuse bien avec le Turbo Pascal sur CPC. Les pointeurs y sont (et les plantages qui vont avec), il est facile d'intégrer du code assembleur, et même de créer des procédures 100% ASM(*) . C'est petit compilateur très stable (je ne vois rien d'équivalent à l'époque et aussi rapide pour compiler en C sur un 8 bit à l'époque) ... Manque les UNIT précompilées, les Objets (qui apparaissent en v5.x si je me souviens bien), la surcharge des opérateurs mais c'est un compilateur parfait pour un 8 bits.

Code : Tout sélectionner

22.15. EXTERNAL SUBPROGRAMS
The reserved word external is used to declare external procedures
and functions, typically procedures and functions written in machine
code.
An external subprogram has no block, i.e., no declaration part and no
statement part. Only the subprogram heading is specified, immediately
followed by the reserved word external and an integer constant
defining the memory address of the subprogram:
procedure OiskReset; external $ECOO;
function IOstatus: boolean; external $0123
Parameters may be passed to external subprograms, and the syntax is
exactly the same as that of calls to ordinary procedures and functions:
procedure Plot(X,Y: Integer); external $F003;
procedure QuickSort(var list: PartNo); external $1COO;
Parameter passing to external subprograms is discussed further on
page 165.
Ca va me permettre d'accéder directement à la RAM vidéo... Je ne m'étais jamais penché sur la gestion de plus 64ko sur les 8 bits et c'est une sacrée gymnastique!
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
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 »

Le programme et les sources pour le probleme des cavalier ici :
https://drive.google.com/file/d/1pNl7Cu ... sp=sharing

A utiliser avec un émulateur ou lecteur Gotek sur un vrai CPC.
Lancer par |CMP (ou ùCPM si Azerty)
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
clearscreen
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 14
Enregistré le : 28 oct. 2020 04:19

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par clearscreen »

Salut Gilles59,

eh bien chapeau quand même !

Et même si j'ai mangé plein de C et de C++ j'ai vraiment de très bon souvenirs du TP et des compilos borland (après je suis plus allé vers le MS visual studio).

Pour le goto, j'avais trouvé une explication ici : https://wiki.freepascal.org/Goto

est-ce la bonne (mais ça se tient).

Cls.
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 »

Bonsoir, nouvelle version avec accents et minuscules ...
Image

Le principe est très simple, on part d'une matrice genre :

Code : Tout sélectionner

 A B C D E
 F G H I J
 K L M N O
 P Q R S T 
 U V W X Y 
Avec cette 'résolution' :
A est codé 'UCY-LM'
B est codé 'ADJNL-NTXU-VB
C est codé 'EBFPVY'
etc...

Le tracé se fait alors en bouclant sur le code ASCII de chaque lettre de 'UCY-LM' par ex. comme suit:
LINE((Ascii MOD 5)*EchelleX, (Ascii div 5) *EchelleY)

div est la division entière.

Si ont veut plus (ou moins) de 'détail', il suffit de changer le 5 par la largeur de la "matrice" de "dessin" des lettres.
C'est facilement adaptable à tous les langages...

concernant l'accès direct à la mémoire vidéo, on peut faire comme ça :

coté Turbo Pascal, spécifier la mémoire haute maxi pour le compilateur (option E pour End Adress) pour ne pas écraser le code assembleur puis :

Code : Tout sélectionner

Program RamVideo
 Procedure WrtVid; External $cd00
Begin
 WrtVid;
 Repeat Until KeyPressed;
End.

Coté ASM (syntaxe émulateur WinAPE) :

Code :

Code : Tout sélectionner

WRITE DIRECT -1 , -1 ,&C1
ORG &cd00
DI
LD BC,&7FC1
OUT (C),C  ; Configuration mémoire C1
LD A,&FF
LD (&4000),A
LD BC,&7FC2
OUT (C),C ; Retour à la config mémoire C2 
EI
RET
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
Répondre

Retourner vers « Amstrad »