Je commence à m'amuser avec sdcc et le kit de dev C pour le cpc6128 que j'ai trouvé sur cpcmania
Je me suis dis, tiens ce sera drôle d'adapter un tunnel 2d en c++ sous windows sur des couleurs en 32bits , dans un cpc a 64k de ram (si si).
Donc voilà , premier problème , la gestion de la vidéo par le cpc est pas des plus évidentes et semble très gourmande en temps cpu, surtout quand on adresse des pixels isolés...
Bon, je vous cache pas que ma première version d'un bête remplissage écran, n'a rien à envier a la commande fill du cpc (quoique si, elle est presque plus lente..)
Bref , j'ai trouvé sur cpcwiki une routine asm qui semble plus rapide que mon implémentation en c.. Mais bon, là je galère sur la syntaxe de sdcc pour l'asm inline, notamment le passage de paramètre..
ca c'est le code asm pour tracer un point :
FPLOT LD A, L ;A = Lowbyte Y AND %00000111 ;isolate Bit 0..2 LD H, A ;= y MOD 8 to H XOR L ;A = Bit 3..7 of Y LD L, A ;= (Y\8)*8 to L LD C, A ;store in C LD B, &60 ;B = &C0\2 = Highbyte Screenstart\2
ADD HL, HL ;HL * 2 ADD HL, HL ;HL * 4 ADD HL, BC ;+ BC = Startaddress ADD HL, HL ;of the raster line
SRL E ;calculate X\2, because 2 pixel per byte, Carry is X MOD 2
LD C, %10101010 ;Bitmask for MODE 0 JR NC, NSHIFT ;-> = 0, no shift SHIFT LD C, %01010101 ;other bitmask for right pixel
NSHIFT ADD HL, DE ;+ HL = Screenaddress LD A, (CMASK) ;get color mask XOR (HL) ;XOR screenbyte AND C ;AND bitmask XOR (HL) ;XOR screenbyte LD (HL), A ;new screenbyte __endasm;
sdcc me jette quand il compile l'asm , je crois qu'il n'aime pas les labels en plus
Si quelqu'un à des infos complèmentaires ..
J'ai finalement trouvé la doc complète de sdcc qui explique comment le faire
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 10 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