!NO CODE |
% Directives au compilateur MASD |
!RPL |
% |
:: |
% Début du programme |
|
% |
TURNMENUOFF |
% On enlève les menus |
|
% |
CODE |
% Début de la partie assembleur |
SAVE |
% Sauvegarde l'état interne de la HP (équivalent à GOSBVL SAVPTR) |
| % |
GOSUBL Suite |
% Le saut, qui sauvegarde l'adresse suivante, c'est-à-dire celle du début de l'objet |
/MonGrob |
% Insertion de l'objet |
*Suite |
% Le label du saut |
C=RSTK |
% On récupère sur la 'Return Stack' l'adresse de l'objet |
D1=C |
% D1 pointe donc sur le début de l'image |
|
% |
SCREEN |
% Renvoie dans A.A l'adresse de la mémoire graphique... |
D0=A |
% ...et D0 point dessus. |
|
% On va donc copier de D1 vers D0 |
LC 00087 |
% Compteur de boucle: 136 en hexadécimal: #88h, moins 1: #87h |
{ |
% Début du bloc |
A=DAT1 16 |
% On prend 16 quartets (8 octets, 64 bits) à l'adresse D1 |
DAT0=A 16 |
% et on les colle à l'adresse D0 |
D0=D0+16 |
% On pointe 8 octets plus loin sur l'écran |
D1=D1+16 |
% On pointe 8 octets plus loin dans l'image |
C=C-1 A |
% On décrémente le compteur de boucles |
UPNC |
% Et on voit si on boucle |
} |
% Fin de bloc |
|
% |
LOAD |
% On restaure l'état interne |
ENDCODE |
% Fin du code assembleur |
|
% |
WaitForKey |
% On attend une pression de touche |
DROP |
% Ménage... |
DROP |
% |
|
% |
; |
% |
@ |
% Fin de code source |