APPLICATIONSCREATION GRAPHIQUE ★ TRANSFERT D'IMAGE ECRAN: CPC vers PC 1512 ou autre compatible ★

Transpen/TransImage - Transfert d'Image Ecran (CPC Revue)Transpen v2 (CPC Revue)
Une chaude nuit d'été, deux heures du mat, l'UPSA bouillonne dans un verre, le cendrier déborde, quatre cadavres gisent dans la poubelle, les mains moites, les yeux injectés de sang, vous contemplez votre œuvre sur l'écran de votre AMSTRAD CPC surchauffé. Vite, on sauvegarde !
Quelle est belle cette image ! Et dire qu'il va falloir repartir à zéro pour faire la même sur PC 1512, encore une nuit blanche en perspective... Halte à l'esclavage informatique CPC et PCompatibles Magazine vous offrent dix heures de repos et votre image sur le PC. Un petit quart d'heure suffira avec un peu d'entraînement.

La vulgarisation des Compatibles PC élargit le champ de diffusion possible des fruits de votre travail.

OU EST LE PROBLEME ?

LES MODES ECRAN

Deux modes écran sont identiques sur CPC et PC :

— Mode 2 sur CPC = SCREEN2 sur PC : 640 x 200 points en deux couleurs.
— Mode 1 sur CPC = SCREEN1 sur PC : 320 x 200 points en quatre couleurs

Pour le mode 0 du CPC, il n'y a pas d'équivalent sur PC, nous le laisserons donc de côté pour le moment. Toutefois, en SCREEN1, le PC équipé d'une carte CGA est moins souple que le CPC pour ce qui est du choix des couleurs. Il n'est en effet pas possible, du moins sous GWBASIC, de modifier séparément les trois couleurs d'avant-plan dans une palette, seules les couleurs de fond et du bord sont modifiables à volonté (avec en commun la luminosité normale ou haute).

L'éventail offert est de six palettes de quatre couleurs si Ton tient compte de la possibilité de passer les trois palettes de base en haute luminosité.

Attention, sur un moniteur monochrome, Tordre des niveaux de gris ne suit pas les numéros de couleur. Pour remanier l'ordre des PEN sur CPC, l'auteur a mis au point un petit utilitaire baptisé TRANSPEN qui effectuera la transposition en quelques secondes.

LE CODAGE EN MEMOIRE ECRAN

Quelque soit le mode écran, ce dernier est toujours divisé en deux cents lignes graphiques, nous prendrons comme ligne 0 la ligne supérieure et comme ligne 199 la ligne inférieure.

  • Sur CPC, les lignes sont stockées en mémoire par "paquets" de 25 avec 48 octets d'espace libre à la fin de chaque paquet :
    • Le premier paquet comprend les lignes 0, 8, 16, 24, 32 ... , 192.
    • Le second paquet comprend les lignes 1, 9, 17, 25, 33 ... , 193
  • Le huitième paquet comprend les lignes 7, 15, 23, 31, 39 ... , 199
    • Sur PC, les lignes sont stockées en deux paquets de cent avec 192 octets d'espace libre après chacun.
    • — Le premier paquet comprend les lignes paires 0, 2, 4 6, 8..., 196, 198.
  • Le second paquet comprend les lignes impaires 1, 3, 5, 7, 9..., 197, 199.

Les tableaux 1 et 2 vous donnent les adresses mémoire de toutes les lignes graphiques pour CPC et pour PC. Chaque ligne est codée sur 80 octets, un octet représentant huit points en MODE2-SCREEN2 et quatre points en MODE1-SCREEN1.

En MODE2-SCREEN2, le codage des huit bits de chaque octet est identique sur CPC et PC : bit 7 = point le plus à gauche ; bit 0 = point le plus à droite.

En MODE1-SCREEN1, il n'en est malheureusement pas de môme. Si chaque point est codé sur deux bits dans les deux cas, le couple de bits associé à un point n'est pas le même :

Sur CPC Sur PC
bits 3.7 Point le plus à gauche bits 7.6
bits 2.6 Point suivant bits 5.4
bits 1.5 Point suivant bits 3.2
bits 0.4 Point le plus à droite bits 1.0

Les bits sont dans l'ordre : poids 2 - poids 1

En résumé, nous avons toutes les informations dans la mémoire de notre CPC, mais dans un beau désordre (vu d'un PC).

LES FICHIERS SUR DISQUETTE

Bien entendu, il eut été trop simple que MS-DOS puisse relire un fichier sur une disquette provenant d'un CPC. MS-DOS ne sait relire aucun des formats d'écriture de l'AMSDOS ou du CP/M ; par bonheur, le PC 1512 est livré avec un second système d'exploitation : DOS+ qui est capable de relire une disquette au format CP/M. Attention, seul le format CPM-IBM peut être relu par DOS +, pas le format dit "SYSTEME" du CP/M 2.2 ou 3. Le format CP/M-IBM comporte quarante pistes avec chacune huit secteurs de 512 octets, la piste 0 est réservée et le catalogue se trouve sur la piste 1.

En effectuant une copie de notre fichier image sous DOS +, avec comme destination une disquette formatée sous MS-DOS, nous obtiendrons un fichier lisible par MS-DOS.

La partie est presque gagnée ! Presque ? Un fichier image sur PC (sous GWBASIC) a une longueur exacte de 16399 octets, le fichier issu de notre CPC fait 16512 octets et toute tentative de chargement se solde par un laconique "BAD FILE MODE"

En plus des 16384 octets représentant l'image, le fichier sous GWVASIC comporte un en-tête de 7 octets et une "queue" de 8 octets, alors que le fichier issu du CPC comporte un entête de 128 octets.

Heureusement, ce cher Alan, dans son ineffable bonté, nous a une fois de plus fait don du bistouri permettant une magistrale transplantation cardiaque entre nos fichiers incompatibles... Mais reprenons dans l'ordre et tout d'abord examinons l'environnement nécessaire.

ENVIRONNEMENT MATERIEL ET LOGICIEL

Vous devez bien entendu disposer d'un CPC et d'un PC 1512 ou autre compatible, mais il n'est pas nécessaire qu'ils vous appartiennent tous les deux, ni môme qu'ils soient dans la même pièce.

Il vous faudra ensuite, côté CPC, un programme capable de changer les numéros de PEN de vos images comme TRANS PEN et TRANSIMAGE ci-après ; c'est lui qui va remettre de l'ordre dans les lignes et les bits et vous créer un fichier image de . 16384 octets au standard du PC. La suite dépend du mode transfert que vous envisagez.

CAS DU TRANSFERT PAR LIAISON SERIE RS232

Si votre CPC en est équipé, c'est certainement la solution la plus simple et la plus rapide. Vous pouvez môme envisager des transferts à longue distance par MODEM. Attention toutefois, votre logiciel de communication doit être en mesure de "passer" tous les octets de 0 à FF (255). L'auteur, ne disposant pas de ce type de matériel, a opté pour la solution suivante.

CAS DU TRANSFERT PAR DISQUETTE 5"¼

  • Côté CPC : il faut préparer une disquette 5"¼ au format CPM-IBM : Commande : > Format i (sous CPM). Cette commande n'étant active que sur le lecteur A, dans le cas où votre lecteur 5"¼ est uniquement en lecteur B, il faut d'abord formater une disquette 3" puis la recopier sur le lecteur B avec COPYDISC.

Cette disquette 5"¼ au format CPM-IBM sera nommée Disquette nc 1 dans la suite de cet exposé.

  • Côté PC : il est impératif de disposer de DOS + (Disquette n° 2). Préparer une disquette SYSTEME sous MS-DOS (Disquette n° 3), avec la commande : FORMAT A:/S.
  • Y transférer DEBUG et GWBASIC.EXE plus, éventuellement un fichier AUTOEXEC.BAT exécutant KEYBFR pour un PC avec clavier AZERTY.
    Ne pas copier le fichier MOUSE.EXE (les adresses données pour l'utilisation de DEBUG ne conviendraient plus).
    Lancer GWBASIC et taper les lignes suivantes :

10 SCREEN1,0 : COLOR 0,0
20 DEF SEG = &HB800
30 BSAVE"IMAGE1",0,&H4000
40 BSAVE"IMAGE2",0,&H4000

Lancer ce programme, il va créer sur la disquette deux fichiers image-écran. Vous devez créer sur cette disquette autant de fichiers "IMAGEx" que vous souhaitez y transférer d'images issues du CPC.

Ces fichiers "bidons" sont destinés à recevoir le Cœur (les 16384 octets) des fichiers issus du CPC pour devenir de véritables fichiers image-écran utilisables sous GWBASIC.

LE PROGRAMME TRANSIMAGE

Il est composé de deux parties, l'une en BASIC et l'autre en langage machine pour obtenir une vitesse de traitement acceptable. Un petit chargeur BASIC facilite la saisie et la création du fichier TRANSIM.BIN. Le listing d'assemblage commenté est joint pour montrer la puissance et la simplicité du langage Assembleur. Cette routine traite une image en moins de deux secondes alors qu'un programme BASIC équivalent met huit minutes environ pour faire le môme travail... (cas du MODE1 ). L'emplacement pour insérer ou appeler un logiciel de communication est repéré dans le listing BASIC à l'attention de ceux qui souhaiteraient utiliser une liaison SERIE RS232. Le déroulement du programme oblige le passage par trois étapes :

Sélection Entrée-Sortie :

  • Vous devez indiquer au programme l'unité source sur laquelle se trouve l'image à traiter et l'unité destination qui recevra le fichier après traitement. Afin de ne léser personne, la sélection "Cassette" a été incluse dans le cas où vous n'auriez pas de lecteur de disquettes, mais une interface série. Si l'unité destination est la môme que l'unité source, le programme s'arrêtera avant la sauvegarde pour vous laisser le temps de changer de disquette ou de cassette, car le traitement de l'image est très rapide.
  • Mode couleurs : Le choix du mode écran est capital puisque le traitement est différent dans chaque cas. Le choix des couleurs aurait pu être facultatif mais il est plus agréable de voir son œuvre dans ses couleurs d'origine.
  • Noms Entrée-Sortie :
    • En entrée, il est obligatoire. L'extension doit être spécifiée si elle est différente de .BIN.
    • La longueur du nom est limitée à 12 caractères si l'unité source est un lecteur de disquettes, à 16 pour le lecteur de cassettes.
    • Le nom en sortie est facultatif, si vous pressez ENTER, il sera le même qu'en entrée.
    • Le chargement, le traitement et la sauvegarde s'effectuent ensuite en quelques secondes.

DEROULEMENT DE L'OPERATION DE TRANSFERT

Vous allez dire que je rabâche, mais pensez bien à vérifier la concordance des PEN de votre image originale avec les couleurs des palettes du PC, sinon il faudra recommencer... je vous aurais prévenu I

  • Traiter l'image avec TRANSIMAGE, nous supposerons que le fichier, sauvegardé sur la disquette n° 1 (5"¼ CPM-IBM) se nomme ESSAI.BIN.
  • Passons sur le PC : démarrer avec la disquette n° 2 (DOS + ), puis mettre la disquette n° 1 dans le lecteur A et la disquette n° 3 dans le lecteur B et taper : COPY A:ESSAI.BIN B: Pour ceux qui ont un seul lecteur, le DOS demandera d'introduire la disquette destination après chargement du fichier en mémoire, puis de remettre la disquette source dans le lecteur après la copie.
  • Mettre la disquette n° 3 dans le lecteur A et réinitialiser le système pour repartir sous MS-DOS (ALT + CTRL + DEL celle du bas du pavé numérique sur PC 1512).

Lancer DEBUG (le bistouri). Cet utilitaire va nous permettre d'effectuer la transplantation des 16384 octets de l'image du fichier ESSAI.BIN vers le fichier "IMAGE1.BAS" créé lors de la préparation de la disquette n° 3.

Répéter les mêmes opérations pour les images suivantes avec les Noms correspondants. Le fichier IMAGE1.BAS contient maintenant l'image du fichier ESSAI.BIN, ce dernier n'étant plus d'aucune utilité, vous pouvez l'effacer sur les disquettes n° 3 et n° 1.

Suite des Commentaire
commandes à taper

— N ESSAI.BIN Définit le nom du fichier à charger ou à sauver
— L 1000 : 5000 Charge le fichier à l'adresse absolue &H15000
— N IMAGE 1.BAS
— L 1000 :0 Charge le fichier IMAGE 1.BAS à l'adresse &H10000
— M1000 :5080 L 4000 1000 : 0007 Transfère 16384 octets de l'adresse &H15080 vers &H10007
— W1000 : 0 Réécrit sur le disque le fichier IMAGE 1.BAS
400 F octets copied Message de DEBUG après copie du contenu du fichier.

VISUALISATION DE L IMAGE SUR LE PC

  • — Lancer GWBASIC
  • — Taper un programme de chargement :
    • Exemple :

10 SCREEN1,0:COLOR 0,0
20 DEF SEG = &HB800
30 BLOAD"IMAGE1",0
40 GOTO 40

  • Taper RUN (ou F2) et voilà le travail !

La phase d'entraînement passée, il ne faut pas plus d'un quart d'heure pour effectuer un transfert complet.

PS : une image initialement en MODE1 sur CPC peut être affichée en SCREEN2 sur PC 1512; en version monochrome, le résultat est même plus joli qu'en SCREEN1.

BIBLIOGRAPHIE :

  • PCompatibles Magazine : Editions SORACOM
  • AMSTRAD Ordinateur Personnel PC 1512 GUIDE DE REFERENCE TECHNIQUE Edition Micro APPLICATION

Christophe PAVEN , CPC n°27

★ EDITEUR: CPC Revue
★ ANNÉE: 1987
★ CONFIG: 64K + AMSDOS + RS 232
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: Christophe PAVEN
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» CPC27-Transfert  d  image  ecranDATE: 2012-02-26
DL: 178
TYPE: ZIP
SiZE: 2350Ko
NOTE:
.HFE: Χ

» TransImage    (CPC  Revue)    FRENCH    LISTINGDATE: 2022-08-15
DL: 106
TYPE: PDF
SiZE: 1368Ko
NOTE: 5 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Programa de Transferencia de Screens do Spectrum para Amstrad (Amstrad Magazine)
» Applications » Transpen v2 (CPC Revue)
» Applications » Programa de transferencia de pantallas de Spectrum a Amstrad (Amstrad User)
» Applications » Transmod (Amstar&CPC)
» Applications » Transfert page écran
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 753 millisecondes et consultée 1916 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.