Inscription : 05 Avr 2012, 08:02 Message(s) : 109 Localisation : Sur terre, mais souvent dans les nuages !
Bonjour,
Simplement pour vous dire que j'ai fait sur mon site une partie consacré au dev sur CPC avec SDCC. Vous y trouverez des fonctions et explication pour faire des programmes sur CPC avec se compilateur.
Comme je m’amuse à faire de petit dev avec se compilateur, je veut simplement partager. Je n'est pas fini toutes les pages, j'en est encore pas mal à faire... La correction des fautes se fait au fur et à mesure
Voila, mais vous pouvez me donner votre avis (même en privé) tout de même Pour les petits malin qui lirais vers la fin en premier, il faudra attendre un peut quand même
Bravo pour tes efforts, car tout ce qui touche au CPC apporte un plus. C'est bien qu'il y ait plein de centres d'intérêt différents.
Par curiosité, je refléchissais à tester le C sur CPC, mais je vais tester le langage C de ARNOR. (Quelqu'un a déjà utilisé le C de Arnor sur CPC ? ) Je préfère programmer en langage machine, mais pourquoi pas regarder le C.
Comment fait-tu un "Hello World" avec SDCC ? Peux-tu me montrer ici le code en C et le langage machine généré sur CPC ? (désassemblé ou hexa, comme tu veux).
Inscription : 05 Avr 2012, 08:02 Message(s) : 109 Localisation : Sur terre, mais souvent dans les nuages !
sPOKE a écrit :
Bravo pour tes efforts, car tout ce qui touche au CPC apporte un plus. C'est bien qu'il y ait plein de centres d'intérêt différents.
Merci
sPOKE a écrit :
Par curiosité, je refléchissais à tester le C sur CPC, mais je vais tester le langage C de ARNOR. (Quelqu'un a déjà utilisé le C de Arnor sur CPC ? )
Oui j'ai testé, en gros, tous les compilo de cette époque on un gros défaut, il ne respecte pas la norme ainsi, et franchement l'optimisation du code est pas terrible.
sPOKE a écrit :
Comment fait-tu un "Hello World" avec SDCC ? ...
Tout est dans le ZIP, j'ai simplement compilé ton code
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
Inscription : 05 Avr 2012, 08:02 Message(s) : 109 Localisation : Sur terre, mais souvent dans les nuages !
voici le code asm généré, mais il manque dedans le code d'affichage, qui est mis au link, il fut mieux regarder le bin généré pour tout voir. de plus, je printf n'est pas une petite fonction en C en fait !
Code :
;-------------------------------------------------------- ; File Created by SDCC : free open source ANSI-C Compiler ; Version 3.2.0 #8008 (Jul 6 2012) (MINGW32) ; This file was generated Sun Jan 06 23:50:19 2013 ;-------------------------------------------------------- .module hello .optsdcc -mz80
;-------------------------------------------------------- ; Public variables in this module ;-------------------------------------------------------- .globl _main .globl _printf ;-------------------------------------------------------- ; special function registers ;-------------------------------------------------------- ;-------------------------------------------------------- ; ram data ;-------------------------------------------------------- .area _DATA ;-------------------------------------------------------- ; absolute external ram data ;-------------------------------------------------------- .area _DABS (ABS) ;-------------------------------------------------------- ; global & static initialisations ;-------------------------------------------------------- .area _HOME .area _GSINIT .area _GSFINAL .area _GSINIT ;-------------------------------------------------------- ; Home ;-------------------------------------------------------- .area _HOME .area _HOME ;-------------------------------------------------------- ; code ;-------------------------------------------------------- .area _CODE ;hello.c:3: void main(void) ; --------------------------------- ; Function main ; --------------------------------- _main_start:: _main: ;hello.c:5: printf("Hello world !!\n"); ld hl,#__str_0 push hl call _printf pop af ret _main_end:: __str_0: .ascii "Hello world !!" .db 0x0A .db 0x00 .area _CODE .area _CABS (ABS)
Dernière édition par stephbb75 le 07 Jan 2013, 10:26, édité 1 fois.
Je voulais voir le désassemblage du fichier final binaire qu'on lance sur le CPC. Le fichier .BIN final. Attention, ce n'est pas un code source asm que je demande, mais bien un code langage machine CPC éxécutable désassemblé. Ce n'est pas la même chose.
Inscription : 05 Avr 2012, 08:02 Message(s) : 109 Localisation : Sur terre, mais souvent dans les nuages !
Salut,
Voici le code généré par SDCC pour le Hello word. Se code est gros cas comme on utilise le printf, cela embarque la lib standard du C, le code du printf quoi, ce qui est quand même gros !
Code :
#0000:C3 80 01 FF FF FF FF FF FF FF FF FF FF FF FF FF #0010:CD 98 0E CD A8 01 C3 C2 01 FF FF FF FF FF FF FF #0020:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF #0030:FF FF FF FF FF FF FF FF 21 B1 01 E5 CD FD 01 F1 #0040:C9 48 65 6C 6C 6F 20 77 6F 72 6C 64 20 21 21 0A #0050:00 C9 C9 21 02 00 39 7E CD 5A BB C9 7B CD 5A BB #0060:C9 21 02 00 39 7E F5 33 CD C3 01 33 C9 21 04 00 #0070:39 4E 23 46 C5 21 04 00 39 4E 23 46 C5 21 00 00 #0080:E5 21 D1 01 E5 CD 5E 03 F1 F1 F1 F1 C9 21 04 00 #0090:39 E5 21 04 00 39 4E 23 46 C5 21 00 00 E5 21 D1 #00A0:01 E5 CD 5E 03 F1 F1 F1 F1 C9 21 02 00 39 7E C6 #00B0:30 57 3E 39 92 30 14 7A C6 07 57 FD 21 03 00 FD #00C0:39 FD CB 00 46 28 04 7A C6 20 57 21 06 00 39 4E #00D0:23 46 C5 D5 33 21 07 00 39 7E 23 66 6F CD 4C 0E #00E0:F1 33 C9 DD E5 DD 21 00 00 DD 39 DD 56 04 CB 3A #00F0:CB 3A CB 3A CB 3A DD 6E 08 DD 66 09 E5 DD 6E 06 #0100:DD 66 07 E5 DD 7E 05 F5 33 D5 33 CD 1A 02 21 06 #0110:00 39 F9 DD 7E 04 E6 0F 57 DD 6E 08 DD 66 09 E5 #0120:DD 6E 06 DD 66 07 E5 DD 7E 05 F5 33 D5 33 CD 1A #0130:02 21 06 00 39 F9 DD E1 C9 DD E5 DD 21 00 00 DD #0140:39 21 F8 FF 39 F9 DD 4E 04 DD 46 05 0A DD 77 FC #0150:03 0A DD 77 FD 03 0A DD 77 FE 03 0A DD 77 FF 0B #0160:0B 0B 21 04 00 09 DD 75 FA DD 74 FB DD 36 F9 20 #0170:DD 6E FA DD 66 FB 7E DD 77 F8 87 57 DD 7E FF CB #0180:07 E6 01 B2 DD 6E FA DD 66 FB 77 C5 3E 01 F5 33 #0190:DD 6E FE DD 66 FF E5 DD 6E FC DD 66 FD E5 CD 81 #01A0:0E F1 F1 33 C1 DD 75 FC DD 74 FD DD 73 FE DD 72 #01B0:FF DD 6E FA DD 66 FB 56 7A DD 96 06 38 0F 7A DD #01C0:96 06 DD 6E FA DD 66 FB 77 DD CB FC C6 DD 35 F9 #01D0:DD 7E F9 B7 20 9A DD 7E FC 02 03 DD 7E FD 02 03 #01E0:DD 7E FE 02 03 DD 7E FF 02 DD F9 DD E1 C9 DD E5 #01F0:DD 21 00 00 DD 39 21 CD FF 39 F9 DD 36 E2 00 DD #0200:36 E3 00 21 25 00 39 DD 75 E0 DD 74 E1 21 19 00 #0210:39 7D C6 05 DD 77 DE 7C CE 00 DD 77 DF 21 25 00 #0220:39 DD 75 DC DD 74 DD DD 7E DC C6 04 DD 77 DA DD #0230:7E DD CE 00 DD 77 DB DD 4E 08 DD 46 09 0A 57 21 #0240:01 00 09 DD 75 08 DD 74 09 DD 72 EC 7A B7 CA 27 #0250:0E DD 7E EC D6 25 C2 04 0E DD 36 FF 00 DD 36 FE #0260:00 DD 36 FD 00 DD 36 FC 00 DD 36 FB 00 DD 36 FA #0270:00 DD 36 F9 00 DD 36 F8 00 DD 36 F0 00 DD 36 EF #0280:00 DD 36 EE FF DD 7E 08 DD 77 D8 DD 7E 09 DD 77 #0290:D9 DD 6E D8 DD 66 D9 7E DD 77 EC DD 34 D8 20 03 #02A0:DD 34 D9 DD 7E D8 DD 77 08 DD 7E D9 DD 77 09 DD #02B0:7E EC D6 25 20 23 DD 6E 06 DD 66 07 E5 DD 7E EC #02C0:F5 33 DD 6E 04 DD 66 05 CD 4C 0E F1 33 DD 34 E2 #02D0:C2 A7 03 DD 34 E3 C3 A7 03 DD 56 EC 7A D6 30 38 #02E0:3B 3E 39 92 38 36 DD 7E EE 3C 20 1D DD 7E EF 5F #02F0:87 87 83 87 DD 77 D7 DD 86 EC C6 D0 DD 77 EF B7 #0300:20 8F DD 36 FE 01 C3 01 04 DD 7E EE 5F 87 87 83 #0310:87 DD 86 EC C6 D0 DD 77 EE C3 01 04 DD 7E EC D6 #0320:2E 20 0E DD 7E EE 3C C2 01 04 DD 36 EE 00 C3 01 #0330:04 DD 56 EC 7A D6 61 38 0F 3E 7A 92 38 0A DD CB #0340:EC AE DD 36 F7 01 18 04 DD 36 F7 00 DD 7E EC D6 #0350:20 CA 5B 05 DD 7E EC D6 2B CA 54 05 DD 7E EC D6 #0360:2D 28 7A DD 7E EC D6 42 CA 62 05 DD 7E EC D6 43 #0370:CA 70 05 DD 7E EC D6 44 CA E8 07 DD 7E EC D6 46 #0380:CA 04 08 DD 7E EC D6 48 CA 01 04 DD 7E EC D6 49 #0390:CA E8 07 DD 7E EC D6 4A CA 01 04 DD 7E EC D6 4C #03A0:28 57 DD 7E EC D6 4F CA F2 07 DD 7E EC D6 50 CA #03B0:25 07 DD 7E EC D6 53 CA C2 05 DD 7E EC D6 54 CA #03C0:01 04 DD 7E EC D6 55 CA F8 07 DD 7E EC D6 58 CA #03D0:FE 07 DD 7E EC D6 5A CA 01 04 C3 0A 08 DD 36 FF #03E0:01 C3 01 04 DD 36 FD 01 C3 01 04 DD 36 FC 01 C3 #03F0:01 04 DD 36 FA 01 C3 01 04 DD 36 F9 01 C3 01 04 #0400:DD CB FA 46 28 14 DD 5E 0A DD 56 0B 13 DD 73 0A #0410:DD 72 0B 1B 1A DD 77 EC 18 15 DD 5E 0A DD 56 0B #0420:13 13 DD 73 0A DD 72 0B 1B 1B EB 56 DD 72 EC DD #0430:6E 06 DD 66 07 E5 DD 7E EC F5 33 DD 6E 04 DD 66 #0440:05 CD 4C 0E F1 33 DD 34 E2 C2 34 08 DD 34 E3 C3 #0450:34 08 21 25 00 39 DD 75 D8 DD 74 D9 DD 5E 0A DD #0460:56 0B 13 13 DD 73 0A DD 72 0B 1B 1B EB 5E 23 56 #0470:DD 6E D8 DD 66 D9 73 23 72 D5 CD 3D 0E F1 DD 75 #0480:D7 DD 7E EE 3C 20 06 DD 7E D7 DD 77 EE DD CB FF #0490:46 20 4F DD 7E D7 DD 96 EF 30 47 DD 7E EF DD 96 #04A0:D7 DD 77 EF DD 4E E2 DD 46 E3 DD 56 EF 5A 15 DD #04B0:72 EF 7B B7 28 23 C5 D5 DD 6E 06 DD 66 07 E5 3E #04C0:20 F5 33 DD 6E 04 DD 66 05 CD 4C 0E F1 33 D1 C1 #04D0:03 DD 71 E2 DD 70 E3 18 D4 DD 71 E2 DD 70 E3 DD #04E0:72 EF DD 7E EE DD 77 D6 DD 7E E2 DD 77 D4 DD 7E #04F0:E3 DD 77 D5 DD 6E D8 DD 66 D9 5E 23 56 1A DD 77 #0500:EC B7 28 56 DD 7E D6 DD 77 D3 DD 35 D6 3E 00 DD #0510:96 D3 E2 87 06 EE 80 F2 CA 06 DD 6E 06 DD 66 07 #0520:E5 DD 7E EC F5 33 DD 6E 04 DD 66 05 CD 4C 0E F1 #0530:33 DD 34 D4 20 03 DD 34 D5 DD 7E D4 DD 77 E2 DD #0540:7E D5 DD 77 E3 DD 6E D8 DD 66 D9 5E 23 56 13 DD #0550:6E D8 DD 66 D9 73 23 72 18 9A DD 7E D4 DD 77 E2 #0560:DD 7E D5 DD 77 E3 DD CB FF 46 CA 34 08 DD 7E D7 #0570:DD 96 EF D2 34 08 DD 7E EF DD 96 D7 DD 77 EF DD #0580:5E D4 DD 56 D5 DD 4E EF 41 0D DD 71 EF 78 B7 CA #0590:2B 08 C5 D5 DD 6E 06 DD 66 07 E5 3E 20 F5 33 DD #05A0:6E 04 DD 66 05 CD 4C 0E F1 33 D1 C1 13 DD 73 E2 #05B0:DD 72 E3 18 D3 21 25 00 39 EB DD 4E 0A DD 46 0B #05C0:03 03 DD 71 0A DD 70 0B 0B 0B 69 60 4E 23 46 79 #05D0:12 13 78 12 DD 6E 06 DD 66 07 E5 3E 30 F5 33 DD #05E0:6E 04 DD 66 05 CD 4C 0E F1 33 DD 34 E2 20 03 DD #05F0:34 E3 DD 6E 06 DD 66 07 E5 3E 78 F5 33 DD 6E 04 #0700:D9 DD 6E D8 DD 66 D9 7E DD 77 CF 23 7E DD 77 D0 #0710:23 7E DD 77 D1 23 7E DD 77 D2 DD 6E D4 DD 66 D5 #0720:DD 7E CF 77 23 DD 7E D0 77 23 DD 7E D1 77 23 DD #0730:7E D2 77 21 25 00 39 DD 75 CF DD 74 D0 DD 6E CF #0740:DD 66 D0 36 32 23 36 0E DD 7E E2 DD 77 D4 DD 7E #0750:E3 DD 77 D5 DD 6E CF DD 66 D0 7E DD 77 D8 23 7E #0760:DD 77 D9 DD 7E D8 C6 01 DD 77 CD DD 7E D9 CE 00 #0770:DD 77 CE DD 6E CF DD 66 D0 DD 7E CD 77 23 DD 7E #0780:CE 77 DD 6E D8 DD 66 D9 7E DD 77 EC B7 CA A7 03 #0790:DD 6E 06 DD 66 07 E5 DD 7E EC F5 33 DD 6E 04 DD #07A0:66 05 CD 4C 0E F1 33 DD 34 D4 20 03 DD 34 D5 DD #07B0:7E D4 DD 77 E2 DD 7E D5 DD 77 E3 18 97 DD 7E F0 #07C0:B7 CA A7 03 DD 7E DE DD 77 E4 DD 7E DF DD 77 E5 #07D0:DD CB FA 46 CA F1 09 21 25 00 39 E3 DD 7E 0A C6 #07E0:01 DD 77 CF DD 7E 0B CE 00 DD 77 D0 DD 7E CF DD #07F0:77 0A DD 7E D0 DD 77 0B DD 7E CF C6 FF DD 77 CF #0800:DD 7E D0 CE FF DD 77 D0 DD 7E CF DD 77 CF DD 7E #0810:D0 DD 77 D0 DD 6E CF DD 66 D0 7E DD 77 CF DD 77 #0820:CF 17 9F DD 77 D0 DD 77 D1 DD 77 D2 E1 E5 DD 7E #0830:CF 77 23 DD 7E D0 77 23 DD 7E D1 77 23 DD 7E D2 #0840:77 DD CB FB 46 C2 F1 0A E1 E5 7E DD 77 CF 23 7E #0850:DD 77 D0 23 7E DD 77 D1 23 7E DD 77 D2 DD 36 D0 #0860:00 DD 36 D1 00 DD 36 D2 00 E1 E5 DD 7E CF 77 23 #0870:DD 7E D0 77 23 DD 7E D1 77 23 DD 7E D2 77 C3 F1 #0880:0A DD CB F9 46 28 6E 21 25 00 39 E3 DD 7E 0A C6 #0890:04 DD 77 CF DD 7E 0B CE 00 DD 77 D0 DD 7E CF DD #08A0:77 0A DD 7E D0 DD 77 0B DD 7E CF C6 FC DD 77 CF #08B0:DD 7E D0 CE FF DD 77 D0 DD 7E CF DD 77 CF DD 7E #08C0:D0 DD 77 D0 DD 6E CF DD 66 D0 7E DD 77 CF 23 7E #08D0:DD 77 D0 23 7E DD 77 D1 23 7E DD 77 D2 E1 E5 DD #08E0:7E CF 77 23 DD 7E D0 77 23 DD 7E D1 77 23 DD 7E #08F0:D2 77 C3 F1 0A 21 25 00 39 E3 DD 7E 0A C6 02 DD #0900:77 CF DD 7E 0B CE 00 DD 77 D0 DD 7E CF DD 77 0A #0910:DD 7E D0 DD 77 0B DD 7E CF C6 FE DD 77 CF DD 7E #0920:D0 CE FF DD 77 D0 DD 7E CF DD 77 CF DD 7E D0 DD #0930:77 D0 DD 6E CF DD 66 D0 7E DD 77 CF 23 7E DD 77 #0940:D0 DD 7E CF DD 77 CF DD 7E D0 DD 77 D0 17 9F DD #0950:77 D1 DD 77 D2 E1 E5 DD 7E CF 77 23 DD 7E D0 77 #0960:23 DD 7E D1 77 23 DD 7E D2 77 DD CB FB 46 20 11 #0970:E1 E5 5E 23 56 01 00 00 E1 E5 73 23 72 23 71 23 #0980:70 DD CB FB 46 28 30 21 25 00 39 E3 E1 E5 5E 23 #0990:56 23 4E 23 46 CB 78 28 1A AF 93 5F 3E 00 9A 57 #09A0:3E 00 99 4F 3E 00 98 47 E1 E5 73 23 72 23 71 23 #09B0:70 18 04 DD 36 FB 00 DD 36 F1 01 DD 5E E4 DD 56 #09C0:E5 DD 36 ED 00 21 29 00 39 36 00 DD 4E DC DD 46 #09D0:DD D5 DD 7E F0 F5 33 C5 CD A9 02 F1 33 D1 DD CB #09E0:F1 46 20 26 DD 6E DA DD 66 DB 66 7C 07 07 07 07 #09F0:E6 F0 6F 7C CB 3F CB 3F CB 3F CB 3F B5 4F 1A B1 #0A00:12 1B DD 73 E4 DD 72 E5 18 08 DD 6E DA DD 66 DB #0A10:7E 12 DD 34 ED DD 7E ED DD 77 D7 DD 7E F1 EE 01 #0A20:DD 77 F1 DD 6E DC DD 66 DD 7E DD 77 CF 23 7E DD #0A30:77 D0 23 7E DD 77 D1 23 7E DD 77 D2 DD B6 D1 DD #0A40:B6 D0 DD B6 CF C2 35 0B DD 73 E4 DD 72 E5 DD 7E #0A50:ED DD 77 D7 DD 7E EF B7 20 04 DD 36 EF 01 DD CB #0A60:FE 46 20 49 DD CB FF 46 20 43 DD 7E D7 3C DD 77 #0A70:CD DD 5E E2 DD 56 E3 DD 46 EF DD 7E CD 90 30 24 #0A80:C5 D5 DD 6E 06 DD 66 07 E5 3E 20 F5 33 DD 6E 04 #0A90:DD 66 05 CD 4C 0E F1 33 D1 C1 13 DD 73 E2 DD 72 #0AA0:E3 05 18 D6 DD 73 E2 DD 72 E3 DD 70 EF DD CB FB #0AB0:46 28 23 DD 6E 06 DD 66 07 E5 3E 2D F5 33 DD 6E #0AC0:04 DD 66 05 CD 4C 0E F1 33 DD 34 E2 20 03 DD 34 #0AD0:E3 DD 35 EF 18 56 DD 7E D7 B7 28 50 DD CB FD 46 #0AE0:28 23 DD 6E 06 DD 66 07 E5 3E 2B F5 33 DD 6E 04 #0AF0:DD 66 05 CD 4C 0E F1 33 DD 34 E2 20 03 DD 34 E3 #0B00:DD 35 EF 18 27 DD CB FC 46 28 21 DD 6E 06 DD 66 #0B10:07 E5 3E 20 F5 33 DD 6E 04 DD 66 05 CD 4C 0E F1 #0B20:33 DD 34 E2 20 03 DD 34 E3 DD 35 EF DD CB FF 46 #0B30:20 5A DD 7E E2 DD 77 CD DD 7E E3 DD 77 CE DD 7E #0B40:EF DD 77 CF DD 56 CF DD 35 CF DD 7E CF DD 77 EF #0B50:DD 7E D7 92 30 4F DD CB FE 46 28 04 16 30 18 02 #0B60:16 20 DD 6E 06 DD 66 07 E5 D5 33 DD 6E 04 DD 66 #0B70:05 CD 4C 0E F1 33 DD 34 CD 20 03 DD 34 CE DD 7E #0B80:CD DD 77 E2 DD 7E CE DD 77 E3 18 B8 DD 7E D7 DD #0B90:96 EF 30 0B DD 7E EF DD 96 D7 DD 77 EF 18 18 DD #0BA0:36 EF 00 18 12 DD 7E CD DD 77 E2 DD 7E CE DD 77 #0BB0:E3 DD 7E CF DD 77 EF DD 7E E4 DD 77 CD DD 7E E5 #0BC0:DD 77 CE DD 7E E2 DD 77 CF DD 7E E3 DD 77 D0 DD #0BD0:7E D7 DD 77 D3 DD 56 D3 DD 35 D3 7A B7 28 71 DD #0BE0:7E F1 EE 01 DD 77 F1 DD CB F1 46 20 1C DD 34 CD #0BF0:20 03 DD 34 CE E1 E5 7E CB 3F CB 3F CB 3F CB 3F #0C00:DD 6E DA DD 66 DB 77 18 0C E1 E5 7E E6 0F DD 6E #0C10:DA DD 66 DB 77 DD 6E DA DD 66 DB 56 DD 6E 06 DD #0C20:66 07 E5 DD 6E 04 DD 66 05 E5 DD 7E F7 F5 33 D5 #0C30:33 CD 1A 02 21 06 00 39 F9 DD 34 CF 20 03 DD 34 #0C40:D0 DD 7E CF DD 77 E2 DD 7E D0 DD 77 E3 C3 45 0D #0C50:DD 7E CF DD 77 E2 DD 7E D0 DD 77 E3 DD CB FF 46 #0C60:CA A7 03 C1 D1 D5 C5 DD 4E EF 41 0D 78 B7 CA A7 #0C70:03 C5 D5 DD 6E 06 DD 66 07 E5 3E 20 F5 33 DD 6E #0C80:04 DD 66 05 CD 4C 0E F1 33 D1 C1 13 DD 73 E2 DD #0C90:72 E3 18 D6 DD 6E 06 DD 66 07 E5 DD 7E EC F5 33 #0CA0:DD 6E 04 DD 66 05 CD 4C 0E F1 33 DD 34 E2 C2 A7 #0CB0:03 DD 34 E3 C3 A7 03 DD 6E E2 DD 66 E3 DD F9 DD #0CC0:E1 C9 3C 4E 4F 20 46 4C 4F 41 54 3E 00 C1 E1 E5 #0CD0:C5 AF 47 4F ED B1 21 FF FF ED 42 C9 E9 21 06 00 #0CE0:39 7E B7 C1 E1 D1 D5 E5 C5 C8 47 7B CB 3A 1F CB #0CF0:1C CB 1D 10 F7 5F C9 21 06 00 39 7E B7 C1 E1 D1 #0D00:D5 E5 C5 C8 47 7B CB 2A 1F CB 1C CB 1D 10 F7 5F #0D10:C9 21 06 00 39 7E B7 C1 E1 D1 D5 E5 C5 C8 47 7B #0D20:29 17 CB 12 10 FA 5F C9 C9
Dernière édition par stephbb75 le 07 Jan 2013, 10:26, édité 1 fois.
Tu peux mettre hello.bin sur un .dsk stp ? je le desassemblerai ainsi plus facilement. Je vais regarder de mon côté comment s'y prends ARNOR C pour faire la même chose.
Il faut inclure pas mal d'Asm pour programmer en C sur le CPC je vois.
Ta fonction cputs est intéressante : on sort si zéro, on affiche le caractère suivant, on incrémente DE et on boucle.
1) - Quelle partie de l'Asm Z80 est générée par SDCC ? Quelle partie est écrite par toi ?
2) - Quel est l'avantage que tu trouves à programmer avec SDCC plutôt qu'écrire ta routine directement en langage assembleur pur ? (chaque langage ayant ses inconvénients et ses avantages, ou bien son côté purement ludique)
Il n'y a personne sur ce forum (à part Norecess et Demoniak je pense) qui ait fait du langage C sur l'Amstrad CPC ?
Inscription : 05 Avr 2012, 08:02 Message(s) : 109 Localisation : Sur terre, mais souvent dans les nuages !
sPOKE a écrit :
Tu peux mettre hello.bin sur un .dsk stp ? je le desassemblerai ainsi plus facilement.
Il y dans mon 1er message le ZIP avec tout je crois bien.
sPOKE a écrit :
Je vais regarder de mon côté comment s'y prends ARNOR C pour faire la même chose.
Alors, ATTENTION, ARNOR C est un compilateur pour CPC, donc les librairies doivent être optimiser pour le CPC. SDCC est un compilateur Z80 (et bien d'autres CPU en fait) donc les lib fournie ne sont pas optimisé pour le CPC mais pour le CPU Z80, par exemple de base SDCC n'est pas capable de faire afficher un caractère à l'écran, il faut lui fournir ce quoi le faire. Autre exemple, avec SDCC tu ne peut pas utiliser les fonctions C pour les fichier (open, read, write,..) pour écrire ou lire sur une disquette, les lib standard du C ne fonctionne pas sur CPC, il faudrait les réécrire pour le CPC ! C'est donc 2 compilateurs bien différent !
sPOKE a écrit :
Il faut inclure pas mal d'Asm pour programmer en C sur le CPC je vois.
Oui du fait que SDCC n'est pas un compilateur pour CPC mais pour Z80. En fait sur les compilateurs compte aussi les librairies de base, quand tu a un compilo pour une machine elle sont plus optimisé pour cette machine. Du reste si tu regarde le sources des lib (quand on le peut) pour un compilo dédié à un ordinateur, tu remarqueras que celle ci sont en général fait en ASM.
sPOKE a écrit :
Ta fonction cputs est intéressante : on sort si zéro, on affiche le caractère suivant, on incrémente DE et on boucle.
Pour être tout a fait honnête, celle la je l'est pas fait moi même
sPOKE a écrit :
1) - Quelle partie de l'Asm Z80 est générée par SDCC ? Quelle partie est écrite par toi ?
regarde sur mon site, en fait tout ce qui touche au E/S est généralement fait avec de l'ASM.
sPOKE a écrit :
2) - Quel est l'avantage que tu trouves à programmer avec SDCC plutôt qu'écrire ta routine directement en langage assembleur pur ? (chaque langage ayant ses inconvénients et ses avantages, ou bien son côté purement ludique)
Pour moi, qui est débuté l'info avec le CPC, le basic à vite trouvé ses limite (bien que j'ai fait de belle choses en basic), et l'ASM à cette époque était la seul solution pour faire mieux (plus vite en fait). Je suis passé en suite sur Amiga, puis PC (pour mon boulot et moi même), donc le dev ASM j'ai arrêté depuis bien longtemps. Les langages "évolué" on leur avantage du fait que tu peut les "lire", et faire une boucle ou une condition en ASM ça me fait &#é-'é"## Je "pense" plus facilement en C qu'en assembleur ! De plus quand il y a quelques temps j'ai ressortie toutes mes disquettes avec mes codes de l'époque, bien sur je n'est presque aucun commentaire dedans (p'tit con vas !) donc il fut que je fasse du rétro-ingénierie de moi même, bas c'est pas jolie Comme je voulais me faire plaisir à r-développer sur CPC et que je n'est (et ne veut) rien prouvé à personne j'ai cherche un compilo C, langage que je maitrise le plus, car se remettre à l'ASM Z80, j'en est pas vraiment envie... mais il faut y passer tout de même en fait, c'est donc par choix personnelle, et je ne peut pas développer directement sur mon CPC, sinon je monopolise la TV, madame et mes 2 mômes sont pas d'accord, donc le cross dev depuis mon ordi est beaucoup plus facile.
J'aurais put prendre z88dk pour lequel il existe tout de même de bonne lib pour CPC, mais le code qu'il génère (pour le moment ?) est trop lourd et lent !
Il faut voire le dev en C sur CPC comme une coquille, tu est OBLIGE de passer par l'ASM sur ce type de machine 8 bits, si tu prend l'Amiga, tu peut presque te passer d'ASM pour développer en C. A moins d'un jour crée une lib complète et optimisé pour CPC pour un compilo (ce qui est un boulot titanesque) le C sur CPC resteras un mélange des deux en fait.
Merci pour tes explications sur les différences entre les compilateurs C sur CPC. :)
stephbb75 a écrit :
Les langages "évolué" on leur avantage du fait que tu peut les "lire", et faire une boucle ou une condition en ASM ça me fait &#é-'é"## :D
C'est vrai qu'on a chacun notre langage de prédilection. Je suis en train d'écrire des macro-instructions pour faciliter ma programmation en assembleur avec CP/M, et ça donne ça : INIT CLS LOCATE 7,2 COLOR 3,5 PRINT '---- GESTION DE FICHIERS & CATALOGUES ----' PRINT DIR GOSUB ROUTINE1 INPUT 'NOM du fichier ?',NF INPUT 'Nouveau NOM ?',NN RENAME NF,NN DELETE '*.BAK',Y EXIT ROUTINE1: ... RETURN
Ca ressemble à du Basic, mais c'est bien de l'assembleur à 100%. Je n'ai qu'à taper le listing ci-dessus, puis la commande ASSEMBLE et ça génère automatiquement le programme 100% en langage machine, grâce aux librairies écrites par mes soins. :)
Ca te donne une idée de la vitesse avec laquelle je peux ensuite écrire des utilitaires 100% en langage machine, genre gestion de fichiers, gestion disques, présentations, et autres.
A partir du moment où ta programmation C en cross-dev correspond à tes objectifs, c'est parfait. C'est bien qu'il y ait différentes utilisations du CPC, que ce soit PhrozenC, SDCC, Dams, Maxam, BASIC, peu importe. Ton site permet d'avoir plein d'infos, c'est très bien.
Inscription : 05 Avr 2012, 08:02 Message(s) : 109 Localisation : Sur terre, mais souvent dans les nuages !
Plissken a écrit :
J'ai regardé ton site,bon début,mais des fautes d'orthographe .
Merci, pour les fautes, oui je sais, je corrige doucement....
Plissken a écrit :
Je ne savais pas qu'on pouvais mettre des télécartes sur le cpc,agréable surprise
Oui, un montage que j'avais fait à l’époque ou les disquettes était à un prix élevé, on pouvais mettre de petit programme dessus, et en achetant des cartes vierge (comme les télécartes mais juste avec de la mémoire) on pouvais en mettre un peut plus. Il fraudais que je mette aussi le plans de le connexion à un lecteur de CD à la place du lecteur de K7, quand j'aurais le temps je le ferais.
Inscription : 05 Avr 2012, 08:02 Message(s) : 109 Localisation : Sur terre, mais souvent dans les nuages !
Salut a tous,
Juste pour vous prévenir que j'ai fait des mise à jours sur mon site dans la partie SDCC. Vous y trouverez des petites améliorations dans les articles déjà existant plus des articles sur un fonction Hline, Attaquer le CRTC, Putpixel très rapide. Merci a tout ceux qui m'ont contacter au sulet de SDCC et autre.
Inscription : 05 Avr 2012, 08:02 Message(s) : 109 Localisation : Sur terre, mais souvent dans les nuages !
Bonjour,
J'ai ajouté de nouveau codes en C. C'est principalement consacré au technique d'animation, par couleur, par sprite.
Du reste, je rechercher des graphistes pour me refaire et me faire quelques écran et sprite, vue que je suis une graphiste hors paire (je dit "des", car même en me faisant qu'un truc cela m'aide, ou si vous voulez simplement vous y tester )
D'ici peut, je vais faire un bout de code sur le son, et comme je suis encore meilleur musicien que graphiste je recherche un (des) musicien(s) sur CPC (rien de très compliquer !)... Sinon en plus d'avoir mal aux yeux avec mes graphismes, vous aurez mal aux oreilles
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 16 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