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.