Organisation des programmes

 

Le programme est découpé 3 parties :

- un programme de chargement,
- un programme d'introduction,
- le jeu proprement dit.

 

1 - Le programme de chargement

Le programme de chargement est constitué d'un petit programme basic nommé " CPC-Aventure.BAS ". Ce programme contient 2 lignes : la première est un CALL 380, la seconde est une ligne de REM remplis de caractères. Le programme de chargement est un programme assembleur commençant à l'adresse 380, et donc directement écrit dans le programme basic. Cette astuce permet d'utiliser un seul programme basic de 1ko pour lancer un programme assembleur, ceci afin d'économiser des secteurs sur la disquette. Sachant qu'avec le type de fonctionnement de l'Amsdos, le plus petit programme utilisera 2 secteurs de la disquette. Si la disquette est une disquette vierge au format data, le programme sera stocké sur les secteurs #C5 et #C6 de la piste 0.

 

2 - Le programme d'introduction

Ce programme sert simplement à afficher la page d'introduction, ainsi que les explications (l'histoire) du jeu. Il est compacté sur la disquette pour gagner de la place. Il commence à l'adresse #4000 et s'exécute à cette même adresse. Il a une longueur d'environ #5100 octets (à peu près 20 Ko). Une fois l'introduction terminée, il retourne au programme appelant.

 

3 - Le programme du jeu

Ce programme est le jeu en lui-même. Il est compacté sur la disquette pour gagner de la place. Il est divisé en 3 parties : le code, les sprites et les données. Le code commence à l'adresse #2B4 et s'exécute à cette même adresse. Il a une longueur d'environ #3C00 octets (à peu près 16 Ko). Les sprites sont chargés dans la banque #C6, de l'adresse #4000 jusqu'à environ l'adresse #6C00, avec de #6C00 à #7FFF un buffer pour décompacter les sprites (soit au total 17 Ko). Les données se divisent en deux parties : la première partie chargée en banque #C5, de #4000 jusqu'à environ #A680 (soit à peu près 26 Ko), et la partie chargée en banque #C7, de #4000 jusqu'à environ #7000 (à peu près 12 Ko).
De cette organisation mémoire, on peut en déduire que le code et les données du jeu occupent environ 71 Ko de mémoire, sachant que la banque #C4 est utilisée comme buffer pour décompacter les images, et que la banque #C0 est utilisée comme " double buffer " avec la mémoire vidéo en #C000, on obtient dons 71 + 48 = 119 Ko de mémoire RAM utilisée par le jeu.
Voici un résumé de l'organisation mémoire du jeu :

#0000-#003F                             Réservé système CPC
#0040-#009F                             Inutilisé
#00A0-#029F                             Zone de lecture " bitmap " disquette
#02A0-#3FFF                            Code du jeu
#4000-#7FFF   Banque #C0   Copie mémoire écran (double buffer)
#4000-#7FFF   Banque #C4   Buffer décompactage image
#4000-#7FFF   Banque #C5   Dialogues du jeu
#4000-#7FFF   Banque #C6   Sprites du jeu + buffer décompactage sprites
#4000-#6FFF   Banque #C7   Dialogues du jeu
#8000-#A67F                            Dialogues du jeu
#A680-#BE7F                           Réservé système CPC
#BE80-#BFFF                           Réservé pointeur de pile (SP)
#C000-#FFFF                           Mémoire écran

Les dialogues du jeu utilisent à eux seuls environ 38 Ko.

 

Retour      -      La suite : Organisation de la disquette