4 COULEURS

 

La HP48 serait-elle dépassée par des calculateurs quatre couleurs? Non certainement pas, la HP48 sait répondre a toutes vos attentes, et mieux pour surpasser les quatre couleurs il y a les teintes de gris qui vont vous permettre d'afficher des images de toute beauté!

Allez, c'est parti pour des images en quatre teintes de gris (noir, gris foncé, gris clair et blanc). mais rien ne vous empêche ensuite de travailler en huit (voir plus) teintes de gris car la technique sera la même.

La HP48 ne sait afficher que du noir ou du blanc, qu'à ne cela tienne, on va lui apprendre a afficher du gris! Comment? Tout simplement en usant d'un habile stratagème qui consiste à afficher successivement et très rapidement deux images. En fait on va afficher une premiere image puis une seconde et enfin encore une fois la seconde. Quelques explications: si un pixel est noir aussi bien sur la première que sur la seconde image, il sera toujours noir donc on ne verra que du noir (rien de plus logique jusqu'ici). De même si le pixel est blanc aussi bien sur la première que sur la seconde image on verra du blanc. Et le gris alors... justement si le pixel est noir sur la première image et blanc sur la seconde il sera affiché un tiers du temps noir et deux tiers du temps blanc donc il paraîtra gris clair; au contraire si le pixel est blanc sur la première image et noir sur la seconde image il paraîtra gris foncé. Simple non?

Bon ce que vous attendez c'est le source qui vous permettra de vraiement vous éclater, alors le voici le voila!

  GOSBVL #0679B Sauve les registres RPL
  INTOFF    
  ST=0 15  
  GOSBVL #01BD7 Eteint les indicateurs
  A=DAT1 A Aa = adresse prologue du grob
  A=A+10 A Aa = adr prologue grob + 20
  A=A+10 A Aa = adr données première image
  LC(5) #00880 Ca = 880h = 2176 = 34quartets par lignes * 64 lignes
  C=C+A A Ca = ard données première image + 2176
  B=C A Ba = adr données seconde image
  ?ABIT=0 1 Adr grob paire?
  GOYES Skip alors on ne modifie rien sinon...
  LC(1) #C  
  D0=(5) #00100 D0 = #00100 = pointeur marge à gauche
  DAT0=C 1  
  D0=(2) #25 D0 = #00125 = pointeur marge à gauche
  LC(3) #FFF  
  DAT0=C X  
:Skip      
  D0=(2) #28 D0 = #00128 = pointeur hauteur menu
  LC(2) #3F Cb = #3F = 63
  DAT0=C B Mise à 63 de la hauteur menu <=> dissimulation
  D0=(2) #29 D0 = #00129
  D1=(5) #00120 D1 = #00120 = pointeur adresse du début de la bitmap écran
:Loop      
  ABEX A  
  GOSUB Retrace Attend le retour de balayage
  GOSUB Retrace Attend le retour de balayage
  ABEX A  
  GOSUB Retrace Attend le retour de balayage
  GOSBVL #00C74 Pose la carry si touche [ON] enfoncée
  GONC Loop Touche on non enfoncée, alors on boucle
  GOSBVL #01C7F Recalcule les pointeurs graphiques
  GOSBVL #01BA9 Rallume les indicateurs
  INTON    
  GOVLNG #05143 Récupère les registres RPL et retour au RPL
       
       
:Retrace      
  C=DAT0 1  
  ?CBIT=1 1  
  GOYES Wait  
:RetraceBis C=DAT0 1  
  ?CBIT=0 1  
  GOYES WaitBis  
  DAT1=A A  
  RTN    

Pour vous simplifier la vie voici deux petits fichiers à télécharger: