!NO CODE |
%Directives au compilateur MASD |
!RPL |
% |
|
% |
:: |
%Début du proramme |
TURNMENUOFF |
%Instruction SysRPL évitant d'être gêné par les menus |
|
% |
CODE |
%Début de la partie assembleur |
GOSBVL 0679B |
%Savegarde l'état interne de la HP |
P=0 |
% |
|
% |
D0=8068D |
%Récupère l'adresse de la mémoire graphique |
C=DAT0 A |
% |
D0=C |
%D0 contient l'adresse du début de la mémoire graphique |
|
% |
LA 0000000000000000 |
%A contient donc 16 quartets de valeur 0, soit 16*4=64 BITs 0 |
|
%On efface donc par série de 64 pixels |
LC(2) (((136*64)/4)/16)-1 |
%On intialise le compteur de boucles. On a donc un écran de 136*64 pixels |
|
%soit (136*64)/4 quartets, que l'on remplit par paquets de 16 quartets. |
|
%On a donc au bilan ((136*64)/4)/16 opérations à répéter |
|
%et on soustrait 1 pour des raisons internes à la HP :) |
|
% |
( |
%Début de boucle |
DAT0=A 16 |
%On colle à l'adresse D0 de la mémoire graphique le contenu de A |
D0=D0+16 |
%On avance le pointeur de 16 quartets, comme sur un vieux 45 tours :) |
C=C-1 B |
%On décrémente le compteur de tours |
UPNC |
%On recommence la boucle si C est supérieur ou égal à 0 |
) |
%Fin de boucle |
|
% |
GOVLNG 05143 |
%Rétablit les paramètres internes de la HP |
END CODE |
%Fin du code assembleur |
|
% |
WaitForKey |
%Instruction SysRPL attendant que vous pressiez une touche |
DROP |
%On fait le ménage sur la pile |
DROP |
% |
|
% |
; |
%Fin de programme |
@ |
Indique à MASD que le fichier à compiler s'arrête ici. |