π
<-

[eZ80] conversion 16bpp vers 1bpp

Assembleur, Axe, C/C++, ICE...

[eZ80] conversion 16bpp vers 1bpp

Messagede grosged » 02 Avr 2016, 16:36

Je me suis amusé à créer cette petite routine de conversion 16bpp vers 1bpp (pur monochrome style)

Code: Tout sélectionner
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 ;)
Dernière édition par grosged le 02 Avr 2016, 16:45, édité 1 fois.
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.2%
 
Messages: 773
Images: 92
Inscription: 14 Sep 2011, 12:29
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: [eZ80] conversion 16bpp vers 1bpp

Messagede Adriweb » 02 Avr 2016, 16:44

Hm, tu aurais un screenshot d'exemple avant/après ? :)

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 82.1%
 
Messages: 14883
Images: 1211
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [eZ80] conversion 16bpp vers 1bpp

Messagede grosged » 02 Avr 2016, 16:57

Désolé, Adriweb : je n'arrive pas à faire un screenshot d'un mode 1bpp depuis TILP :(
C'est une conversion "brut de décoffrage" (si c'est noir, on laisse noir , sinon on met du blanc...héhé)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.2%
 
Messages: 773
Images: 92
Inscription: 14 Sep 2011, 12:29
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: [eZ80] conversion 16bpp vers 1bpp

Messagede Adriweb » 02 Avr 2016, 17:07

Hm, et sur CEmu peut-être que ca fonctionne ? (m'en rappelle plus si le 1bpp est implémenté)

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 82.1%
 
Messages: 14883
Images: 1211
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb


Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
4027 utilisateurs:
>4011 invités
>9 membres
>7 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)