APPLICATIONSDIVERS ★ RENUMEROTATION DES PROGRAMMES BINAIRES (CPC REVUE) ★

Renumerotation des Programmes Binaires (CPC Revue)Applications Divers
Régulièrement des petits programmes binaires paraissent dans les revues informatiques. Ils vous permettent d'améliorer vos propres programmes en leur ajoutant des fonctions difficiles, voire impossibles à obtenir en BASIC. L'habitude des concepteurs aidant, ils occupent le plus souvent la zone mémoire comprise entre &A000 et HIMEM. Ceci interdit ta présence simultanée de plusieurs d'entre eux en mémoire, car le dernier entré écraserait, ou tout au moins chevaucherait, ceux qui y sont déjà logés, empêchant leur fonctionnement correct. Le présent programme va rendre possible la cohabitation de plusieurs programmes binaires conçus initialement pour une même zone mémoire.

FONCTIONNEMENT DU PROGRAMME

Il est impossible de faire fonctionner un programme à une adresse différente de celle d'origine forsqu'il fait appel à des routines ou des données situées dans la même zone. En cas de déplacement, il ne trouvera plus à ces adresses ce qu'il était censé y trouver ; d'où un disfonctionnement pouvant aller jusqu'au plantage irrémédiable. Nous allons étudier le fichier binaire, instruction par instruction, pour repérer les adresses et les données codées sur 16 bits. Si elles appartiennent à Iq zone occupée par le programme, elles seront modifiées en tenant compte de la nouvelle zone souhaitée. Le rôle des DATA est de remplir un tableau de 256 variables V () contenant le nombre d'octets nécessaires à l'instruction considérée (de même rang). Exemple ; V(0) = 1 puisque l'instruction codée 0 (NOP) occupe un octet, de même que V(17) = 3 puisque l'instruction codée 17 (LD DE, DATA 16) occupe 3 octets. Seules les opérations utilisant 3 octets permettant de définir une adresse sont retenues, les autres seront ignorées. Il existe quelques cas particuliers constitués par des groupes de plus de 3 octets (LD RP, (ADRESSE), LD (ADRESSE), RP registres d'index, etc.). Dans ce cas, c'est l'octet suivant qui va nous renseigner sur la nature de l'instruction. Lorsque le code ne correspond pas à une de ces exceptions, c'est la valeur de la variable V qui est prise en compte et on passe à l'instruction suivante.

Les instructions RSX (celles dont le' nom est précédé du signe | ) vont bénéficier d'un traitement de faveur. Le programme binaire permettant d'intégrer ces instructions au
BASIC, contient le nom de celles-ci sous forme de DATA. Il n'est pas question, pour nous, de modifier ces données. Dans un premier temps, nous chercherons les adresses de début et de fin de ces noms. Ensuite la renumérotation se fera normalement pour tout ce qui se situe avant et après.

UTILISATION DU PROGRAMME

  • Commencez par un Reset : CONTROL + SHIFT + ESC
  • Protégez la zone mémoire où sera chargé le fichier à modifier. Exemple ; MEMORY &8FFF
  • Entrez en mémoire le programme à modifier. Exemple : LOAD "NOM.BIN",&9000
  • Si vous ne connaissez pas la longueur du programme, essayez de la trouver en faisant (dans le cas d'un chargement en &9000) :

FOR X = &9000 TO &A700 : PRINT "&":HEX$(X,4h PEEK(X):NEXT

Lorsqu'une longue suite de zéros apparaît dans la colonne de droite, appuyez 2 fois sur ESC, puis notez la valeur hexadécimale affichée en face du premier zéro. Cette valeur sera pour vous l'adresse de fin du programme.

  • Lancez le programme BASIC RENUM
  • Répondez aux questions concernant les adresses
  • Sauvegardez éventuellement le nouveau fichier binaire.

REMARQUE

La renumérotation ne doit concerner que le programme et laisser intacts les textes ou les données qui lui sont associés. Au cas où vous feriez le traitement de telles zones, il pourrait s'ensuivre quelques modifications dues au fait que notre programme n'a pas fait la distinction entre instructions et données. Si tel était le cas, aidez-vous d'un logiciel assembleur-désassembleur pour effectuer les corrections.

CPC n°36

★ EDITEUR: CPC Revue
★ ANNÉE: 1986
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: Jean-Michel SOHIER
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Renumerotation  des  Programmes  Binaires    (CPC  Revue)    FRENCHDATE: 2018-08-16
DL: 186
TYPE: PDF
SiZE: 370Ko
NOTE: Uploaded by CPCLOV ; 3 pages/PDFlib v1.6

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

Lien(s):
» Applications » Sine-Wave Writing
» Applications » Logo Screen Dump
» Applications » NLQ mode for none NLQ printers (Amstrad Action)
» Applications » Digitalização de sons (Amstrad Magazine)
» Applications » Kaset Header Okuyucu (Sizin Amstrad)
» Applications » The Desktop Publisher (DTP PAO)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» 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 224 millisecondes et consultée 1561 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.