- Code: Select all
16vers1bpp:
ld a,$21 ; bascule en mode
ld ($e30018),a ; monochrome 1bpp
ld hl,$e30200 ; on rectifie la mini-palette
ld (hl),l ; pour avoir la couleur 0 en noire
inc l ; et la couleur 1 en blanc
ld de,$ffff00
ld (hl),de
ld hl,$d40000 ; début de la mémoire video
ld de,$d40000
ld bc,9600 ; en mode 1bpp , 9600 octets suffisent
Boucle: push bc
ld b,8 ; 8 pixels/octet
huitbits: ld a,(hl) ; la valeur 16bits
inc hl ; est-elle nulle ?
or (hl) ; si oui
jr z,rien ; alors on écrit un bit nul
scf ; sinon, c'est un bit à 1
rien: rr c ; on place ça au fur et à mesure dans un octet
inc hl ; donc...
djnz huitbits ; 8 tours à effectuer
ld a,c ; puis l'on ré-écrit le résultat
ld (de),a ; dans la mémoire video
inc de ; mais on se déplace 16x moins vite (153600/9600)
pop bc
dec bc
ld a,b ; tant qu'on n'a pas bouclé 9600x
or c
jr nz,Boucle ; on continue
ret
Ne soyez pas surpris de voir quelques trainées d'octets apparaître : cela provient de la barre supérieure et sa jauge de batterie, je pense

Si , par hasard vous venez d'essayer cette routine seule et vous voulez revenir en 16bpp : éteignez puis rallumez la TI
