Inscription : 05 Août 2011, 14:38 Message(s) : 197
org &a000
ld hl,affiche debut:ld a,(hl) cp &ff inc hl ret z cp &2a jr nz,ecrit ld b,(hl) encore:call &bb5a djnz encore inc hl ecrit:call &bb5a jr debut
affiche: db 04,01,29,0,0 db 28,0,0,0,28,01,26,26 DB 26,15,24,05,20
DB &20,&2a,07,&20 db &2a,11,31,09,03 db &2a,01,31,09,04 db &2a,01,&20,&2a,17 db &20,&2a,01,10 db 13,&2a,01 db 31,09,08,&2a,11 db &20,&2a,07 db 31,05,12,&2a,01 db 31,05,13,&2a,01,&ff
... Par contre pour les couleurs, il y a moyen de gratter, en analysant les valeurs de retour des registres quand on utilise un vecteur. Le CALL &BBFF retourne opportunément le registre A à 0 (testé sur 464 et 6128). ...
Je ne savais pas que le registre 'A' prenait la valeur de zéro après ce vecteur et en effet, utiliser la valeur de retour est une très bonne idée.
J'ai reformulé le code avec les astuces et sans passer par la commande WINDOW :
TOTAL : 77 OCTETS
Code :
ORG #A000 ; INITIALISER LE MODE ET LES COULEURS CALL #BB6C XOR A LD B, A LD C, A PUSH BC CALL #BC32 ; INK 0, 00, 00 LD A, 1 LD BC, #1A1A CALL #BC32 ; INK 1, 26, 26 POP BC CALL #BC38 ; BORDER 00, 00 ; AFFICHER LES CARACTERES ESPACE PUIS ETOILE ET RECOMMENCER 14 FOIS LD HL, DATA ; 'HL' POINTE SUR LA TABLE LD C, 14 ; NOMBRE DE GROUPE A FAIRE
AFF_MATRICE LD A, 32 LD D, 1
FAIRE_ETOILE LD B, (HL) INC HL
FAIRE_ESPACE CALL &BB5A DJNZ, FAIRE_ESPACE LD A, 42 DEC D JR Z, FAIRE_ETOILE DEC C JR NZ, AFF_MATRICE JP #BB06 ; ATTENDRE PUIS RETOUR BASIC
; ##### ESPACE ETOILE DATA DB 176, 8 DB 31, 10 DB 30, 2 DB 6, 2 DB 38, 2 DB 31, 9 DB 30, 9 DB 31, 2 DB 38, 2 DB 6, 2 DB 30, 10 DB 31, 8 DB 115, 2 DB 38, 2 FIN ; LONGUEUR > 77 OCTETS
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 0 invité(s)
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum