Amstrad Plus Forum Index

Amstrad Plus
Découverte de la gamme Old et Plus des Cpc d'Amstrad.

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

*****PrintChar

 
Post new topic   Reply to topic    Amstrad Plus Forum Index -> Programmation Cpc -> Affichage video
Previous topic :: Next topic  
Author Message
Ast
Administrateur

Offline

Joined: 05 Sep 2014
Posts: 2,977
Masculin
Point(s): 390
Moyenne de points: 0.13

PostPosted: Tue 3 Feb - 20:42 (2015)    Post subject: *****PrintChar Reply with quote

Durant mon périple sur le coding de l'iMPdraw, j'ai eu, comme tout codeur, à réaliser une routine PrintChar qui est une routine utilisée pour afficher les caractères Ascii dans la barre d'info, par exemple.J'avais livré, il y a quelques jour déjà ma version du printchar mode 2 en 53 microsecondes sur le Cpcwiki, et j'ai donc naturellement eu envie de vous faire partager cette routine sur ce forum aussi.


Code:
afftxt   
           ld bc,#C000 ; you know why?
         ld de,fnt ; fnt adress is where is loaded your converted font
          sub 32 ; coz I want to start by space char
           ld h,0
         ld l,a    ; a=char you want to print
           add hl,hl ; x2
          add hl,hl ; x4
          add hl,hl ; x8
            add hl,de ; add new position with your fontchar
           ex de,hl   ; font start in DE
            ld h,b
          ld l,c       ; get screen adr in HL
;
;          here comes the display
;
          ld a,(de)
            ld (hl),a     ; #c0xx
            inc de
            set 3,h      ; #C8xx
           ld a,(de)
            ld (hl),a
            inc de
           set 4,h      ; #D8xx
           ld a,(de)
           ld (hl),a
          inc de
           res 3,h     ; #D0xx
           ld a,(de)
           ld (hl),a
           inc de
          set 5,h     ; #F0xx
            ld a,(de)
           ld (hl),a
            inc de
           set 3,h     ; #F8xx
           ld a,(de)
            ld (hl),a
           inc de
            res 4,h    ; #E8xx
            ld a,(de)
            ld (hl),a
            inc de
            res 3,h    ; #E0xx
            ld a,(de)
            ld (hl),a
            ret



Veuillez noter tout de même que pour pouvoir utiliser cette routine, la fonte devra être transformée. Et oui, si vous regardez bien cette routine, vous verrez bien que l'affichage des lignes n'est pas linéaire (bc26 traditionnel)


Vous avez des questions, parlons en!
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Back to top
Publicité






PostPosted: Tue 3 Feb - 20:42 (2015)    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Demoniak


Offline

Joined: 10 Sep 2015
Posts: 40
Localisation: Dunkerque
Masculin
Point(s): 12
Moyenne de points: 0.30

PostPosted: Sat 14 Nov - 12:58 (2015)    Post subject: *****PrintChar Reply with quote

Voici la routine que j'ai utilisé pour afficher le texte d'explication dans cpc-aventure :
Code:
        LD      DE,#C000
PrintPage1:
        LD      BC,#8D0
        LD      A,(IX+0)
        INC     IX
        AND     A
        RET     Z
        LD      L,A
        LD      H,7
        ADD     HL,HL
        ADD     HL,HL
        ADD     HL,HL                    ; police en #3800
        LD      A,D
        LDI
        DEC     DE
        ADD     A,B
        LD      D,A
        LDI
        DEC     DE
        ADD     A,B
        LD      D,A
        LDI
        DEC     DE
        ADD     A,B
        LD      D,A
        LDI
        DEC     DE
        ADD     A,B
        LD      D,A
        LDI
        DEC     DE
        ADD     A,B
        LD      D,A
        LDI
        DEC     DE
        ADD     A,B
        LD      D,A
        LDI
        DEC     DE
        ADD     A,B
        LD      D,A
        LDI
        LD      A,D
        ADD     A,C
        LD      D,A
        JR      PrintPage1


Back to top
fgbrain


Offline

Joined: 01 Jun 2015
Posts: 17
Localisation: Greece
Masculin
Point(s): 1
Moyenne de points: 0.06

PostPosted: Sat 18 Nov - 12:25 (2017)    Post subject: *****PrintChar Reply with quote

Nice clever routine AST but...
If you have a normally stored font (grabbed line per line)  this is the correct (but slower) part:
Code:


;
;          here comes the display
;
ld a,(DE):ld(hl),a:inc DE    ; C0
set 3,h:ld a,(DE):ld(hl),a:inc DE ;C8
set 4,h:res 3,h:ld a,(DE):ld(hl),a:inc DE    ;D0
set 3,h:ld a,(DE):ld(hl),a:inc DE    ;D8
set 5,h:res 4,h:res 3,h:ld a,(DE):ld(hl),a:inc DE    ;E0
set 3,h:ld a,(DE):ld(hl),a:inc DE                 ;E8
set 4,h:res 3,h:ld a,(DE):ld(hl),a:inc DE        ;F0
set 3,h:ld a,(DE):ld(hl),a              ;F8

RET



Back to top
Display posts from previous:   
Post new topic   Reply to topic    Amstrad Plus Forum Index -> Programmation Cpc -> Affichage video All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  

Index | Administration Panel | Create a forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group