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: 4 fois
TYPE: PDF
SIZE: 369Ko
NOTE: Uploaded by CPCLOV ; 3 pages/PDFlib v1.6

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Watch It (Computing With the Amstrad)
» Applications » Bruchrechnenprogramm (CPC Amstrad International)
» Applications » Laufschrift - Scrolling (CPC Amstrad International)
» Applications » Filtres Electroniques (Hebdogiciel)
» Applications » DATA disk formatter (CPC Attack!)
» Applications » 3'' Disc Inlay Printer

QUE DIT LA LOI FRANÇAISE:

L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 066 millisecondes et consultée 710 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.