Turbo Pascal v3 sur Amstrad CPC 6128

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

Modérateur : Politburo

Avatar du membre
phm
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1361
Enregistré le : 08 avr. 2016 18:36
Localisation : Est Parisien

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par phm »

Très cool ce développement :D
HEWLETT-PACKARD : The best
CANON
X-07 X-730 X-711 XR-100 XM-101 XP-110F XP-120F XP-130F XP-140

AMSTRAD CPC-464 CPC-6128 ATARI STF DAI Indata
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 »

Gilles59 a écrit : 01 nov. 2020 23:51 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)
Oui mais justement, Niklaus Wirth qui est un farouche adversaire du GOTO, invente le Pascal et… y incorpore le GOTO !
Cétait ma question.
Niklaus devrait taper Niklaus !!

Bon, passons…
G.E.
Réponse : il a mis le GOTO dans Pascal parce que cette instruction est indispensable dans un langage de programmation pratique
Avatar du membre
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 8384
Enregistré le : 12 févr. 2007 18:36
Localisation : Pas très loin de Lyon
Contact :

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par badaze »

J’ai commencé le Pascal justement sur le CPC 128 de mon petit frère avec TP 3. Je pense avoir encore le bouquin et la disquette. Puis je suis passé à la version 4 à la version 5 à la version 5.5 à la version 7 puis à Delphi 1, 3, 4 et 7. Bref un aficionado de ce langage. À partir de là j’ai continué en Delphi 7 et ne suis pas passé aux versions ultérieures. En effet les prix étaient devenus dissuasifs pour qui ne les utilisait de manière professionnelle. Il y avait bien des versions gratuites mais elles n’avaient pas de composants BDD ce qui était rédhibitoire pour moi. Et puis j’ai aussi découvert d’autres langages ... Depuis quelques années il y a des versions ‘community’ de Delphi mais je n’ai jamais réellement programmé avec. Ca me sert pour faire du prototypage d’écrans quand je fais des spécifications de développements.
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.
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 »

Work in progress... Après les graphisme, le son ...

https://youtu.be/9qTq_6Sgtq4

C'est du provisoire mais ça marche bien ;D

Code : Tout sélectionner

{=============================================
  USound : Unite son, CPC6128, v0.1 GC 2020
  --------------------------------------------}
Const ChnA=$1;  ChnB= $2;  ChnC=$4;
      RdvA=$8;  RdvB=$10;  RbvC=$20;
      Hold=$40; Flush=$80;

Type

 TSound = Record
   Channel, EnvVol, EnvPer: Byte;
   Period: Integer;
   Noise, Volume: Byte;
   Duration: Integer;
 End;

 TSection = Record
   StepCount, StepSize, PauseTime: Byte;
 End;

 TEnv = Record
   NbrSec: Byte;
   Sec: Array[1..5] Of TSection;
 End;


Procedure RazSnd;
 Begin InLine($cd/$fc5a/$bca7); End;

Procedure AddSndQue(Sound:TSound);
 Begin InLine($21/Sound/$cd/$fc5a/$bcaa);End;

Function TstSndQue(Chn:Byte):Byte;
 Var bSnd:Byte;
 Begin
  InLine($3a/Chn/$cd/$fc5a/$bcad/$32/bSnd);
  TstSndQue:=bSnd;
 End;

Procedure SetEnvVol(EnvNbr:Byte; Env:TEnv);
 Begin InLine($3a/EnvNbr/$21/Env/$cd/$fc5a/$bcbc);End;

Procedure SetEnvPer(EnvNbr: Byte; Env: TEnv);
Begin InLine($3a/EnvNbr/$21/Env/$cd/$fc5a/$bcbf) End;

Procedure RlsChn(Channel:Byte);
 Begin InLIne($3a/Channel/$cd/$fc5a/$bcb3) End;
Ca gère 3 canaux (en stéréo svp), enveloppes de son, enveloppes de volume, "rendez-vous" entres les canaux via des "queues" (musique ou bruitage en tache de fond)...
Modifié en dernier par Gilles59 le 22 déc. 2020 16:45, modifié 1 fois.
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 »

Nouvelle version :

https://www.youtube.com/watch?v=9qTq_6S ... e=youtu.be

Le coté intéressant c'est que ça n'utilise quasiment pas le Z80 sauf pour générer la file d'attente des sons à jouer sur les 3 canaux. En l'occurence ici peut-être 1/10ieme de seconde...

L''unité son :

Code : Tout sélectionner

{=============================================
  USound : Unite son, CPC6128, v0.2 GC 2020
  --------------------------------------------}
Const ChnA=$1;  ChnB= $2;  ChnC=$4;
      RdvA=$8;  RdvB=$10;  RdvC=$20;
      Hold=$40; Flush=$80;

Type

 TSound = Record
   Channel, EnvVol, EnvTon: Byte;
   Period: Integer;
   Noise, Volume: Byte;
   Duration: Integer;
 End;

 TSection = Record
   Cnt, Siz, Tim: Byte;
 End;

 TEnv = Record
   NbrSec: Byte;
   Sec: Array[1..5] Of TSection;
 End;

Procedure RazSnd;
 Begin InLine($cd/$fc5a/$bca7); End;

Procedure AddSndQue(Sound:TSound);
 Begin InLine($21/Sound/$cd/$fc5a/$bcaa);End;

Function TstSndQue(Chn:Byte):Byte;
 Var bSnd:Byte;
 Begin
  InLine($3a/Chn/$cd/$fc5a/$bcad/$32/bSnd);
  TstSndQue:=bSnd;
 End;

Procedure SetEnvVol(EnvNbr:Byte; Env:TEnv);
 Begin InLine($3a/EnvNbr/$21/Env/$cd/$fc5a/$bcbc);End;

Procedure SetEnvTon(EnvNbr: Byte; Env: TEnv);
 Begin InLine($3a/EnvNbr/$21/Env/$cd/$fc5a/$bcbf) End;

Procedure RlsChn(Channel:Byte);
 Begin InLIne($3a/Channel/$cd/$fc5a/$bcb3) End;
Le prog

Code : Tout sélectionner

Program Son:
{$i USound.inc}

Var Sound,Sound2 : Tsound; Env,Env2: TEnv;

Begin
 WriteLn('-> Debut du prgramme');
 RazSnd;

 With Env Do Begin
  NbrSec:=3 Or $80; { 'Or $80' permet la repetition de l'enveloppe}
  Sec[1].Cnt:=50;  Sec[1].Siz:=-3; Sec[1].Tim:=1;
  Sec[2].Cnt:=1;   Sec[2].Siz:=0;  Sec[2].Tim:=40;
  Sec[3].Cnt:=150; Sec[3].Siz:=1;  Sec[3].Tim:=1;
 End;
 SetEnvTon(1,Env);

 With Env Do Begin
  NbrSec:=2 Or $80;
  Sec[1].Cnt:=10; Sec[1].Siz:= 4; Sec[1].Tim:=2;
  Sec[2].Cnt:=5;  Sec[2].Siz:=-8; Sec[2].Tim:=2;
 End;
 SetEnvTon(2,Env);

 With Env Do Begin
  NbrSec:=2 Or $80;
  Sec[1].Cnt:=20; Sec[1].Siz:= 4; Sec[1].Tim:=6;
  Sec[2].Cnt:=10; Sec[2].Siz:=-8; Sec[2].Tim:=2;
 End;
 SetEnvTon(3,Env);

 With Env Do Begin
  NbrSec:=1;
  Sec[1].Cnt:=1; Sec[1].Siz:=0; Sec[1].Tim:=240;
 End;
 SetEnvVol(1,Env);

 Env.Sec[1].Tim:=100;
 SetEnvVol(2,Env);

 Env.Sec[1].Siz:=1; Env.Sec[1].Cnt:=12; Env.Sec[1].Tim:=60;
 SetEnvVol(5,Env);

 With Env2 Do Begin
  NbrSec:=3;
  Sec[1].Cnt:=14; Sec[1].Siz:=1;  Sec[1].Tim:=50;
  Sec[2].Cnt:=1;  Sec[2].Siz:=1;  Sec[2].Tim:=2500;
  Sec[3].Cnt:=15; Sec[3].Siz:=-1; Sec[3].Tim:=100;
 End;
 SetEnvVol(3,Env2);

 With Sound Do Begin
  Channel:=ChnA; EnvVol:=5; EnvTon:=1; Period:=230;
  Noise:=0; Volume:=0; Duration:=-1;
 End;
 AddSndQue(Sound);

 Sound.EnvVol:=1; Sound.Volume:=12;Sound.Duration:=-2;
 AddSndQue(Sound);

 Sound.Channel:=ChnA Or RdvC; Sound.Duration:=-2;
 AddSndQue(Sound);

 Sound.Channel:=ChnA Or RdvB; Sound.Duration:=-5;
 AddSndQue(Sound);

 With Sound2 Do Begin
  Channel:=ChnC Or RdvA; EnvVol:=2; EnvTon:=2; Period:=110;
  Noise:=0; Volume:=15; Duration:=-15;
 End;
 AddSndQue(Sound2);

 With Sound2 Do Begin
  Channel:=ChnB Or RdvA; EnvVol:=3; EnvTon:=3;
  Noise:=12; Duration:=2650; Period:=8000; Volume:=0;
 End;
 AddSndQue(Sound2);

 Env.Sec[1].Siz:=-1;
 SetEnvVol(4,Env); Sound.EnvVol:=4; Sound.Channel:=ChnA;
 Sound.Duration:=0;
 AddSndQue(Sound);

 WriteLn('-> Fin du programme. Le Turbo Pascal ne fait deja plus rien!');
 WriteLn('   Les bruitages s''effectuent en tache de fond');
 WriteLn('    - 3 canaux stereos, enveloppes de volumes, de tons, bruits, repetitions.');
 WriteLn('    - Gestion des ''rendez-vous'' entre canaux');
 Repeat Until KeyPressed;

 RazSnd;

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

Des Sprites en Pascal avec mon CPC+ ;D C'est à vitesse réelle...

https://youtu.be/yrF5VrUg2uQ

Finalement le confinement ca permet de trouver du temps !

Le coeur du programme n'est pas plus compliqué que çà :

Code : Tout sélectionner

{ ---------------------------------------------------------------
  Unite USprite. Gestion des Sprite hardware CPC+ v0.1  GC-2020
 ----------------------------------------------------------------}
Type
 TSpr =  Array[0..$ff] Of Byte;
 TPoSpr = Record x,y: Integer; z: Byte; Bazar : Integer; End;

Const
 Zy1=1; Zy2=2; Zy3=3; Zx1=4; Zx2=8; Zx3=12;

Var
 TbSpr:   Array[0..15] Of TSpr    Absolute $4000;
 TbPoSpr: Array[0..15] Of TPoSpr  Absolute $6000;
 TbPal:   Array[1..15] Of Integer Absolute $6422;

Procedure DlkAsic; { Delock ASIC }
 Type TCode = Array[1..17] Of Byte;
 Const Code:TCode=(255,0,255,119,179,81,168,212,98,57,156,70,43,21,138,205,238);
 Var b:Byte;
 Begin For b:=1 To 17 Do Port[$bc00]:=Code[b]; End;

Procedure OpnAsic; Begin Port[$7f00]:=$b8 End;

Procedure CloAsic; Begin Port[$7f00]:=$a0 End;

Procedure SetSprPal(n,r,v,b:Byte);
Begin TbPal[n]:=v*256+16*r+b; End;
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 »

Des sprites animés en TP ;D

https://youtu.be/TICFUyjkt0U
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 »

Du CPC, du CP/M+ et du Turbo Pascal commenté... Surtout du CP/M+ d'ailleurs, un OS que je ne connaissais pas en fait.
Cet environnement Amstrad CPC/CPM/Pascal me plait de plus en plus ;D

https://youtu.be/yB7kPYP9c24
Modifié en dernier par Gilles59 le 08 déc. 2020 23:19, modifié 1 fois.
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
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 8384
Enregistré le : 12 févr. 2007 18:36
Localisation : Pas très loin de Lyon
Contact :

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par badaze »

A l’époque, compiler en 1 seule passe était très novateur !
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer :(
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.
Avatar du membre
JayBLOOD
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 695
Enregistré le : 27 août 2011 19:43
Localisation : 49

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par JayBLOOD »

Merci Gilles59 pour ces partages. Ta vidéo commentée est très plaisante à regarder, cela me donne envie de m'y mettre. :)
Jay
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 »

JayBLOOD a écrit : 16 déc. 2020 03:08 Merci Gilles59 pour ces partages. Ta vidéo commentée est très plaisante à regarder, cela me donne envie de m'y mettre. :)
Merci JayBlood, c'est un peu improvisé et j'aime bien ce format plutôt que des tonnes de textes ;D
J'espère récupérer du temps libre pour avancer, et j'ai plus d'idées que de temps en ce moment.

je sais maintenant gérer la palette de 4096 couleurs du CPC+ en TP. Une très courte vidéo qui montre ça :
https://www.youtube.com/watch?v=XHOvwgnlBRQ
En l'occurence il n'y a que 4 couleurs mais pouvoir choisir la palette change tout.

Je publierai une v1 commentée sur forme de .dsk de toutes les unités... un jour ;D Je prends beaucoup de plaisir avec ces outils. et le TP3 est un "petit" compilateur étonnant (le tout tient 30ko et quelques avec l'editeur...)
Une autre image pour CPC+ en overscan (D'après Yves Chaland toujours ;D)

AUtre exemple d'une image CPC+ :
Image

Par contre je n'arrive pas à gérer l'overscan (images de 32ko) comme dans cette image en CPM, je laisse tomber pour le moment. idem j'aimerai bien pouvoir charger direcment une image en RAM écran sans passer une RAM tampon mais je coince pour le moment. Je met de coté pour plus tard
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
JayBLOOD
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 695
Enregistré le : 27 août 2011 19:43
Localisation : 49

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par JayBLOOD »

Courage. Tu vas y arriver. ;)
Jay
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 »

La version 0.2 de TP-TOOLS est disponible ici :

https://cpcrulez.fr/coding-divers-tp-tools-nemo.htm

La disquette est bootable en CPM et contient quelques exemples compilés (.com). Sur l'émulateur WINAPE il faut activer l'option "Enable Plus features". Les sprites et 4096 couleurs ne fonctionnent qu'avec un CPC+

Copie du Read-me.txt de la disquette :

Code : Tout sélectionner

TP-TOOLS v0.2 By Nemo (2020)
============================

1. Introduction
---------------

Cette version 0.2 et sa documentation associee sont provisoires.
L'objectif est une v1.0 qui sera completee avec d'autres procedures et unites.

TP-Tools (Turbo Pascal Tools) est une bibliotheque d'unites thematiques pour
developper en Turbo Pascal v3 (Borland) sous CPM+ (Digital Research) avec les
ordinateurs Amstrad CPC6128 et CPC6128+.

TP-Tools v0.2 est organise en 4 unites :

- UGraph.inc : Gestion des graphismes
- USound.inc : Gestion du son
- UKBoard.inc: Gestion clavier/Joystick
- UAsic.inc  : Gestion de l'Asic du CPC+

D'autres unites seront ajoutes en v1 (UCrt, USprite ...)

2. Convention de nommage
------------------------

Les procedures et fonctions sont generalement nommees par groupe de 3 lettres
representant des mots anglais comme suit :

a/ Les trois premieres lettres correspondent a un verbe :

Set :                Get :                  Dsp : Display (Affiche)
Hid : Hide (cache)   Ini : Initialize       Drw : Draw (Trace)
Mov : Move (Deplace) Rmv : Remove (Enleve)  Enc : Encode
Tst : Test           Dlk : Delock           Opn : Open
Clo : Close          Spl : Split

b/ Les groupes de trois lettres suivantes correspondent a des mots :

Txt : Text           Cur : Cursor            Pap : Paper
Pen : Pen (Stylo)    Gra : Graphic           Ink : Ink (encre)
Bdr : Border         Scr : Screen            Ver : Vertical
Hor : Horizontal     Adr : Address (Adresse) Abs : Absolute
Scr : Screen         Org : Origin            Rel : Relative
Pnt : Point          Msk : Mask              Lin : Line
Rec : Rectangle      Mod : Mode              Pal : Palette
Win : Windows        Env : Enveloppe         Vol : Volume
Ton : Tone           Chn : Channel           Snd : Sound
Chr : Char           Key :                   Hlt : Halt
JoyA: JoystickA      JoyB: JoyStickB         Asic:
Spr : Sprite         Evr : Every             Aft : After


Par exemple, HidTxtCur : Hide Text Cursor

3. Description rapide des unites
--------------------------------

Attention : le TP3 ne gere pas les unites (UNIT / USE) au sens des versions
ulterieures de Turbo Pascal. Ce qu'on appelle ici "unites" sont en fait des
bibliotheques de type "include" qui sont recompiles a  chaque fois qu'elles
sont utilisees (voir la doc de TP3 facilement trouvable en ligne)

a/ UGraph.inc

Cette unite reprend essentiellement les fonctions du firmware des Amstrad
CPC. Tout cela est tres bien documente dans le "Firmware guide...

Contrairement C  l'AMSDOS, la memoire video sous CPM+ est placee a
l'adresse &4000. De plus elle se trouve dans la configuration memoire c1,
alors que le TPA (la zone ou le Turbo Pascal fonctionne) est en configuration
memoire c2. Noter que dans le CPM+ la configuration memoire c1 est appelle
Bank 0 et la la configuration memoire c2 est appelee Bank 1.

Il n'y pas grand chose a ajouter. Soyez cependant vigilant sur un point :
certaines procedures ou fonctions utilisent les coordonnees graphique de
type (600x400), d'autre des coordonnees physique qui dependent de mode
graphique en cours. Cf Firmware

Cette unite integre aussi une prodecure permettant de copier des blocs
memoire entre les "banks memoire" du CPM+

b/ Usound.inc

Cette unite aussi reprend les fonctions du firmware. Elles sont tres
puissantes (voir les exemples) mais egalement un peu compliquees a
comprendre et utiliser. Un utilitaire devrait etre prochainement
disponible pour creer des sons et produire le code Pascal associe

c/ UKBoard.inc

Le firmware toujours et encore ...

d/ UAsic.inc

ATTENTION : Cette unite ne fonctionne qu'avec un CPC+ ! L'utiliser
sur un CPC "old" entrainera un plantage direct.
Cette unite permet de gerer tres facilement les specificite du CPC+
et en particulier la gestion des sprites Hard.
Elle sera completee ulterieurement pour la gestion des scrolls
horizontaux et verticaux.

Quand vous utilisez cette unite gardez bien en tete que entre les
instructions OpnAsic (open Asic) et CloAsic (CloAsic), la memoire
entre les adresses &4000 et &7fff est celle de l'ASIC et qu'elle
remplace la memoire de la Bank 1...
Cela peut poser des probemes. La facon la plus simple de les
contourner de compiler le code Pascal au dessus l'adresse &8000
(Touche "S" dans les options de compilation), ou en dessous de &4000
(Touche "E" dans les options de compilation)
Il y a d'autres facon plus subtiles de faire pour mieux utiliser
la memoire mais elles sont plus complexes. Vous pouvez par exemple
utiliser cette zone pour stocker des datas avec la commande
ABSOLUTE du TP mais charge a  vous de n'y acceder que quand cette
zone memoire est "visible". Il n'est pas non plus impossible d'y
stocker du code Pascal mais il faut verifier l'adresse des procedures
et fonctions (Addr(procedure)), et ne pas y acceder si elles sont pour tout
ou partie entre &4000 et &8000 quand l'Asic est "ouvert".


4. Utilitaire
-------------

Le programme Inline (ecrit Pascal), permet de generer un fichier pour integrer
des structures inline dans un source Pascal.
Taper Inline en CP/M pour aficher la syntaxe.

Un utilitaire pour "dessiner" et combiner des sons devrait être dispo par la suite

Un utilitaire pour optimiser et réduire la taille du code doit suivre aussi. En effet contrairement
au TP4 et suivant le TP3 n'a pas d'optimiseur integre. Une procedure décrite dans une bibliotheque
sera dans le .com final même si elle n'est pas utilisee. On peu gerer ca a la main, mais autant
l'automatiser. Soyons intelligemment faineant ;D

5. Tutoriel video
-----------------

Vous pouvez trouver des tutoriels video sur YouTube et des explications dans
le forum de https://CPCRulez.fr

Voila voila en attendant la v1 ;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
searching
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 67
Enregistré le : 08 déc. 2006 19:09
Localisation : Ramonville St Agne

Re: Turbo Pascal v3 sur Amstrad CPC 6128

Message par searching »

destroyedlolo a écrit : 08 oct. 2020 14:06 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:
Les enseignant ont toujours été a côté de leurs pompes; Le pascal quand il y avait le C (on est pas obliger de connaitre tout le C) et maintenant le Phyton ont ils ont toujours rien compris ! :lol:
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 »

Hello! Gestion de la souris AMX en Turbo Pascal v3.
Ca se passe ici : https://youtu.be/Xm1ZWcuwrgE
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 »