CPC Rulez https://cpcrulez.fr/forum/ |
|
Redéfinition des caractères en assembleur https://cpcrulez.fr/forum/viewtopic.php?f=4&t=6304 |
Page 1 sur 1 |
Auteur : | secmast [ 10 Jan 2020, 12:25 ] |
Sujet du message : | Redéfinition des caractères en assembleur |
Bonjour à tous, et bonne année Je bosse sur un programme "terminal" en VT100 et j'ai besoins de redéfinir mes caractères en ANSI. J'ai fait la définition complète: ANSICAR: DEFB &00,&7E,&7E,&6C,&10,&38,&10,&00,&FF,&00,&FF,&0F,&3C,&3F,&7F,&99 DEFB &80,&02,&18,&66,&7F,&3E,&00,&18,&18,&18,&00,&00,&00,&00,&00,&00 DEFB &00,&10,&28,&28,&10,&C2,&30,&40,&10,&10,&92,&00,&00,&00,&00,&02 DEFB &7C,&10,&7C,&7C,&0C,&FE,&38,&FE,&7C,&7C,&00,&00,&08,&00,&20,&7C DEFB &7C,&38,&FC,&7C,&FC,&FE,&FE,&3C,&82,&7C,&3E,&82,&80,&82,&82,&38 etc etc etc Chaque entrée DEFB comprend deux caractères Tous les caractères sont fait mais je ne comprends pas la mise en oeuvre les firmware. TXT GET MATRIX TXT SET MATRIX TXT SET M TABLE TXT GET M TABLE Sachant que la totalité des caractères seront redéfini et qu'ils sont en ordre adjacent dans la "table" comment faire en assembleur ? Merci d'avance |
Auteur : | hERMOL [ 10 Jan 2020, 17:42 ] |
Sujet du message : | Re: Redéfinition des caractères en assembleur |
Voilà comment j’utilise le vecteur system &BBAB Code : BuffChar equ &A000 ld de,"A" ; 1er caractere ld hl,BuffChar call #bbab ;BBAB TXT SET M TABLE fixer adresse de départ et premier caractère d'une matrice de points définie par l'utilisateur. ld hl,ANSICAR ; copie ta redéfinition de caractères ld de,BuffChar ld bc,8*char ldir ret ANSICAR: db %11111111 db %11000011 db %11000011 db %11000011 db %11000011 db %11000011 db %11000011 db %11111111 src/url: https://cpcrulez.fr/codingBOOK_weka_0509.htm |
Auteur : | secmast [ 10 Jan 2020, 21:42 ] |
Sujet du message : | Re: Redéfinition des caractères en assembleur |
Heuuuuuu..... Mais encore ? Pour être honnête j'y comprend pas grand chose. J'aurais bien voulu un peu plus d'explication. Déjà j'ai 254 caractères a faire, donc j'imagine que je dois boucler. Genre après le ret je fais un INC DE et je rappel la routine avec les push/pop qui vont bien. Mais pour le reste.... pourquoi HL, buffchar C'est quoi BC,8*char |
Auteur : | hERMOL [ 11 Jan 2020, 08:27 ] |
Sujet du message : | Re: Redéfinition des caractères en assembleur |
secmast a écrit : Heuuuuuu..... Mais encore ? Pour être honnête j'y comprend pas grand chose. J'aurais bien voulu un peu plus d'explication. Déjà j'ai 254 caractères a faire, donc j'imagine que je dois boucler. Genre après le ret je fais un INC DE et je rappel la routine avec les push/pop qui vont bien. Mais pour le reste.... Ce bout de code est vraiment très simple , pas besoin de boucle . secmast a écrit : pourquoi HL, buffchar buffchar ==> est l'emplacement ou va ce retrouver tes caractères contenu dans la rom (en basic équivalent à "symbol after") ; ld de,"A" ==> est le 1er caractère a modifier: Code : ld de,"A" ; 1er caractère ld hl,BuffChar call #bbab ;BBAB TXT SET M TABLE fixer adresse de départ et premier caractère d'une matrice de points définie par l'utilisateur. Une fois qu'ils ce trouvent en RAM, tu les modifies avec un ldir (dans cet exemple équivalent à la commande basic "symbol") ; ld hl,ANSICAR ==> source données caractères ld de,BuffChar ==> destination (init par le vecteur #BBAB) ld bc,8*char ==> longueur données ldir ==> copie les données Code : ld hl,ANSICAR ; copie ta redéfinition de caractères ld de,BuffChar ld bc,8*char ldir secmast a écrit : C'est quoi BC,8*char 8 ==> données par caractère char ==> nombre caractères à redéfinir (dans ton cas 254) /!\ je suis pas sur que les caractères avant 32 soit modifiable! pour l'encodage des caractères, ici j'ai le dessin d'un "A": Code : ANSICHAR:
db %11111111 db %11000011 db %11000011 db %11111111 db %11000011 db %11000011 db %11000011 db %11000011 |
Auteur : | secmast [ 11 Jan 2020, 11:31 ] |
Sujet du message : | Re: Redéfinition des caractères en assembleur |
Merci d'avoir pris le temps pour un réponse bien complète. Je ferai ça ce soir et je te tiens au courant. |
Auteur : | secmast [ 11 Jan 2020, 21:51 ] |
Sujet du message : | Re: Redéfinition des caractères en assembleur |
Merci Hermol Non seulement ça marche comme un charme, mais en plus je sais ce que je fais. |
Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |