Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 19 Mai 2022, 22:43

Index du forum » CPC Rulez » Z80 Coding

Le fuseau horaire est UTC+1 heure


TP-TOOLS v1.0



Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 9 message(s) ] 
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
Nemo59
 Sujet du message : TP-TOOLS v1.0
Message Publié : 22 Avr 2021, 13:40 
Hors-ligne
Rulezz
Rulezz
Avatar de l’utilisateur

Inscription : 03 Oct 2020, 16:46
Message(s) : 97
Bonjour !
TP TOOLS v1.0 est un ensemble de librairies pour développer en Turbo Pascal sur Amstrad CPC6128 et 6128+



Image dsk 3" attachée. CPM+ inclu.

Pour lancer la démo :
|CPM (ou ùCPM)
Readme

Possible de mettre à jour l'entrée TPTOOLS dans la liste CPCRULEZ? la v0.1 est totalement obsolète.


Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.


Dernière édition par Nemo59 le 22 Avr 2021, 16:42, édité 4 fois.

Haut
 Profil  
 
hERMOL
 Sujet du message : Re: TP-TOOLS v1.0
Message Publié : 22 Avr 2021, 15:51 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 4827
pas le bon .DSK , c'est TP-Sprite v1.02..


Haut
 Profil  
 
norecess464
 Sujet du message : Re: TP-TOOLS v1.0
Message Publié : 22 Avr 2021, 16:26 
Hors-ligne
Rulezz
Rulezz
Avatar de l’utilisateur

Inscription : 23 Mars 2018, 16:29
Message(s) : 119
Localisation : Montreal, QC (Canada)
Je suis convaincu que lors de la "grande époque" tu aurais pu faire une excellente suite d'articles sur TP dans les magazines.

Je suis toujours aussi jaloux de ta fonte vectorielle :oops:


Haut
 Profil  
 
Nemo59
 Sujet du message : Re: TP-TOOLS v1.0
Message Publié : 22 Avr 2021, 16:43 
Hors-ligne
Rulezz
Rulezz
Avatar de l’utilisateur

Inscription : 03 Oct 2020, 16:46
Message(s) : 97
hERMOL a écrit :
pas le bon .DSK , c'est TP-Sprite v1.02..


Je pensais avoir corrigé pourtant. Ca doit être bon cette fois ;D


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: TP-TOOLS v1.0
Message Publié : 22 Avr 2021, 16:52 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 4827
Impec! :JC_doubleup:


Haut
 Profil  
 
Nemo59
 Sujet du message : Re: TP-TOOLS v1.0
Message Publié : 22 Avr 2021, 16:54 
Hors-ligne
Rulezz
Rulezz
Avatar de l’utilisateur

Inscription : 03 Oct 2020, 16:46
Message(s) : 97
norecess464 a écrit :
Je suis convaincu que lors de la "grande époque" tu aurais pu faire une excellente suite d'articles sur TP dans les magazines.

Je suis toujours aussi jaloux de ta fonte vectorielle :oops:


Pour la fonte vectorielle c'est d'un simplicité enfantine ;D Ca doit pas être bien compliqué en ASM. Y'a pas de copyright lol

Le principe est tout bête et part d'une matrice de code ASCII de taille variable suivant la précision voulu. Si on a une matrice simple par exemple :
Code :
A B C D
E F G H
I J K L
M N O P


"O" sera codé MADPM
"A" sera codé MADP-HE
"I" sera codé AM
"Z" sera codé ADMP

Pour le coté proportionnel ajouter la largeur en début.
Par exemple "I" -> 1AM "Z" -> "4ADMP"

La police que j'utilise est codé comme çà (le code est bourrin mais ca marche finalement bien) :

Code :
{ 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 Z [ \ ] ^    Police de caracteres vectorielle et proportionnelle
  _ ` a b c d
  e f g h i j
  k l m n o p
  q r s t u v }

Type String20  = String[20];
     String255 = String[255];

Var Leve : Boolean;
    Taille, EchX, EchY,Xp,Yp,XDeb : Integer;

Procedure DspVecPic(Dessin:String20);
Var i,v:Integer;
Begin
 Leve:=True;
 GetGraCur(Xp,Yp);
 For i:=2 To Length(Dessin) Do
  Case Dessin[i] Of
    'A'..'z': Begin
      v:=Ord(Dessin[i])-65;
      If Leve Then Begin
        MovAbs(xp+(v mod Taille)*EchX,yp-(v div Taille)*EchY);
        Leve:=False;
      End Else
        DrwLinAbs(xp+(v mod Taille)*EchX,yp-(v div Taille)*EchY);
    End;
    '-' : Leve:=True;
  End;
 Val(Dessin[1],v,i);
 MovAbs(Xp+v*EchX+EchX,Yp);
End;

Procedure DspVecChr(c:Char);
Begin
  Taille:=6;
  Case C of
    'a' : DspVecPic('3mleYTUm');
    'b' : DspVecPic('3lkG-ST[gl');
    'c' : DspVecPic('3mleYTU');
    'd' : DspVecPic('3ImleYTU');
    'e' : DspVecPic('3mleYT[a_');
    'f' : DspVecPic('2kMH-YZ');
    'g' : DspVecPic('3gf_YTUmrq');
    'h' : DspVecPic('3kG-ST[m');
    'i' : DspVecPic('1GG-Sk');
    'j' : DspVecPic('2HH-Tlq');
    'k' : DspVecPic('3kG-eU-_m');
    'l' : DspVecPic('1Gk');
    'm' : DspVecPic('5kYT[m-[V]o');
    'n' : DspVecPic('3kST[m');
    'o' : DspVecPic('3leYT[gl');
    'p' : DspVecPic('3qST[afe');
    'q' : DspVecPic('3gf_YTUs');
    'r' : DspVecPic('3kST[');
    's' : DspVecPic('3klgYTU');
    't' : DspVecPic('2Gel-ST');
    'u' : DspVecPic('3SelmU');
    'v' : DspVecPic('3SlU');
    'w' : DspVecPic('5Selga-gniW');
    'x' : DspVecPic('3ke[U-SYgm');
    'y' : DspVecPic('3S__fgmrq-gU');
    'z' : DspVecPic('4nkVS');
    'A' : DspVecPic('4kMHIPn-Y\');
    'B' : DspVecPic('5knic\Z-lH-GIP[Z-');
    'C' : DspVecPic('4nleMHJ');
    'D' : DspVecPic('5GJQink-lH');
    'E' : DspVecPic('4nkGJ-Y[');
    'F' : DspVecPic('4kGJ-Y[');
    'G' : DspVecPic('4[\hmleMHJ');
    'H' : DspVecPic('4kG-nJ-Y\');
    'I' : DspVecPic('3km-lH-GI');
    'J' : DspVecPic('4elmhJ');
    'K' : DspVecPic('4kG-YJ-Yn');
    'L' : DspVecPic('4Gkn');
    'M' : DspVecPic('5kGUKo');
    'N' : DspVecPic('4kG-Mh-nJ');
    'O' : DspVecPic('4mleMHIPhm');
    'P' : DspVecPic('4kGIPV[Y');
    'Q' : DspVecPic('4mleMHIPhm-gt');
    'R' : DspVecPic('4kGIPV[Y-[n');
    'S' : DspVecPic('4JHMSZ[bhmk');
    'T' : DspVecPic('5GK-Im');
    'U' : DspVecPic('4GelmhJ');
    'V' : DspVecPic('5GmK');
    'W' : DspVecPic('5GkaoK');
    'X' : DspVecPic('3GSam-k_UI');
    'Y' : DspVecPic('3GMZl-ZUI');
    'Z' : DspVecPic('4GJkn');
    '&' : DspVecPic('3mleYT[a_-GB');
    '$' : DspVecPic('3mleYT[a_-BI');
    '^' : DspVecPic('3mleYT[a_-GBI');
    '''': DspVecPic('2BHM');
    '.' : DspVecPic('1kk');
    '@' : DspVecPic('3mleYTUm-BI');
    '?' : DspVecPic('4ll-MHIPZ`');
    ',' : DspVecPic('2flq');
    ';' : DspVecPic('2flq-ZZ');
    '!' : DspVecPic('1kk-_G');
    ' ' : DspVecPic('1');
    '"' : DspVecPic('3GM-IO');
    '/' : DspVecPic('3Ok');
    '-' : DspVecPic('3_a');
    ':' : DspVecPic('1SS-ee');
    '=' : DspVecPic('4SV-eh');
    '[' : DspVecPic('2HGkl');
    ']' : DspVecPic('2GHlk');
    '(' : DspVecPic('2HMel');
    ')' : DspVecPic('2GNfk');
    '_' : DspVecPic('3leYT[gl-Tl');
    '0' : DspVecPic('3kSNOglk');
    '1' : DspVecPic('3SNlkm');
    '2' : DspVecPic('3MNU[ekm');
    '3' : DspVecPic('3MO[Z-[glk');
    '4' : DspVecPic('3M_a[m');
    '5' : DspVecPic('3OMYZaglk');
    '6' : DspVecPic('3ONSelgaZY');
    '7' : DspVecPic('3MOl');
    '8' : DspVecPic('3YSNO[Yklg[');
    '9' : DspVecPic('3klgUNSYa');
    '{' : DspVecPic('3SUgeS');
    '}' : DspVecPic('3SUgeSTf');
    '+' : DspVecPic('3_a-Zf');
    #00 : SetGraPen(0);
    #01 : SetGraPen(1);
    #02 : SetGraPen(2);
    #03 : SetGraPen(3);
    #13 : Begin MovAbs(XDeb,Yp-(2*(Taille))*EchY); End;
  End;
End;

 Procedure DspVecStr(S:String255);
  Var i:Byte;
  Begin
   GetGraCur(Xp,Yp); XDeb:=Xp;
   For i:=1 To Length(S) Do DspVecChr(S[i]);
  End;


Je vais ajouter un code de controle # pour le GRAS.
Je pense qu'avec une fonction de tracé de ligne plus rapide mais moins généraliste et supprimant les controles de sortie d'écran la police pourrait être 3, 4 ou 5 fois plus rapide. Qd j'ai un peu de temps je vais faire une unité FastGraph beaucoup plus rapide (mais plus sensible aux plantages et dédié par mode graphique. un gain de 4 à 5 fois me semble possible). Je suis d'ailleurs étonné de la rapidite de ma fonction cercle qui est pourtant 100% en Pascal et avec la routine d'affichage de pixel du firmware.


Dernière édition par Nemo59 le 22 Avr 2021, 17:28, édité 1 fois.

Haut
 Profil  
 
marcel
 Sujet du message : Re: TP-TOOLS v1.0
Message Publié : 22 Avr 2021, 17:12 
Hors-ligne
Rulezzz
Rulezzz

Inscription : 26 Juil 2016, 13:06
Message(s) : 388
excellent :)


Haut
 Profil  
 
norecess464
 Sujet du message : Re: TP-TOOLS v1.0
Message Publié : 22 Avr 2021, 19:16 
Hors-ligne
Rulezz
Rulezz
Avatar de l’utilisateur

Inscription : 23 Mars 2018, 16:29
Message(s) : 119
Localisation : Montreal, QC (Canada)
Citer :
Pour la fonte vectorielle c'est d'un simplicité enfantine ;D Ca doit pas être bien compliqué en ASM. Y'a pas de copyright lol


Oui, l'approche est très originale. Trop souvent nous avons tendance a penser en terme "rectangulaire", cf. une fonte de taille puissance de 2.

En ASM avec le bon algo, je suis persuadé qu'on peut aller bien plus loin qu'un "simple" x5 en terme de performance.

Roudoudou, je te sens chaud a nous prototyper tout ca :mdr:


Haut
 Profil  
 
marcel
 Sujet du message : Re: TP-TOOLS v1.0
Message Publié : 23 Avr 2021, 07:25 
Hors-ligne
Rulezzz
Rulezzz

Inscription : 26 Juil 2016, 13:06
Message(s) : 388
norecess464 a écrit :
Roudoudou, je te sens chaud a nous prototyper tout ca :mdr:


Me concernant si on m'avait demandé de le faire, j'aurai plutôt fait un système vectoriel simplifié à 8 ou 16 directions, avec 1 ou deux bits pour la longueur, un code stop

Une usine à gaz en somme ^_^


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 9 message(s) ] 

Index du forum » CPC Rulez » Z80 Coding

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Aller vers :  
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.