Accueil

CPC


 Dev C sur CPC :

  • le C sur CPC
  • SDCC débuter
  • fichier BAT pour compiler
  • Dessiner Sur CPC
  • Optimiser le dessin
  • Ecrire du texte
  • Lire un fichier
  • Ecrire un fichier
  • Swap d'écran
  • CLS ultra rapide
  • H line
  • Attaquer le CRTC
  • Full Overscan
  • Put pixel très rapide
  • Afficher une image
  • Slide show 1
  • Bézier
  • faire un fichier pour Bézier

  • Quelque fonctions utile

  • Animation
  • 3D
  • Raster
  • Manche a balais

    Le plan du Site

  •  
      Ici les nouvelle du site  
     
    Recherche ?
    Saissisez un mot clé

     
      Quelques chiffres
    Visiteurs:13799
    Visiteurs aujourd'hui:9
     
     
    Me contacter
    Donnez votre avis
     
    Le site de Steph : Le CPC

    Fichier .BAT pour compiler avec SDCC


    Comme vue dans la première partie "SDCC débuter" pour compiler c'est de la ligne de commande et il faut bien l'avouer c'est bien chiant de toujours ressaisir les lignes de commande.
    Pour résoudre cela on peut les mettre dans un fichier .bat ce qui vas déjà nous facilité la vie :
    sdcc -mz80 --code-loc 0x1A8 --data-loc 0 --no-std-crt0 crt0_0x170.rel Hello.c
    hex2bin Hello.ihx
    CPCDiskXP -File Hello.bin -AddAmsdosHeader 170 -AddToNewDsk Hello.dsk
    

    On sauve tout cela dans un fichier comp.bat par exemple. Son utilisation est simple, mais il n'est pas très pratique quand ont a des erreurs...

    C'est cool, mais vous allez vite vous apercevoir que c'est quand même pas pratique, il faut changer à chaque fois le nom du fichier Hello quand vous faite un autre code.
    On va donc améliorer ce fichier .bat, je cous propose celui que je me suis fait, il fait la compil en lui passant le nom du fichier à compiler (par exemple comp.bat Hello) ce qui est plus pratique quand même. De plus j'efface les fichier généré par SDCC, hex2bin et CPCDiskXP, comme cela s'il y a une erreur quelque par le script s’arrête et donnant l'info.
    Il n'est pas encore complet, il faut de temps à autre le modifier, car comme vous pouvez le voire on ne met pas des .rel autre que crt0_0x170.rel, donc si vous en avez besoin d'autre il faut les mettre à la main avant !
    cls
    @echo off
    
    IF "%1"=="" GOTO AIDE
    
    if not exist %1.c goto NOC
    
    echo ---------------------------------------------------------
    echo -- Effacement des fichiers
    del %1.asm
    del %1.ihx
    del %1.lk
    del %1.lst
    del %1.map
    del %1.noi
    del %1.rel
    del %1.sym
    del %1.bin
    del %1.dsk
    
    echo ---------------------------------------------------------
    echo adresse de base : 0x170
    echo il faut le crt0_0x170 !
    
    echo ---------------------------------------------------------
    echo --Compilation de %1.c
    sdcc -mz80 --code-loc 0x1A8 --data-loc 0 --no-std-crt0 crt0_0x170.rel %1.c
    
    rem -mz80 -> Generate code for the Zilog Z80 family of processo. (Processor Selection Options)
    rem --code-loc 0x6038 -> The start location of the code segment. (Linker Options)
    rem --data-loc 0 -> The start location of the internal ram data segment.(Linker Options)
    rem --no-std-crt0 -> When linking, skip the standard crt0.rel object file.(Z80 Options)
    
    rem --opt-code-speed -> The compiler will optimize code generation towards fast code
    rem --opt-code-size -> The compiler will optimize code generation towards compact code
    
    
    if not exist %1.ihx goto NOIHX
    echo ---------------------------------------------------------
    echo --Creation de %1.bin
    hex2bin %1.ihx
    
    if not exist %1.bin goto NOBIN
    echo ---------------------------------------------------------
    echo --Creation de %1.dsk
    CPCDiskXP -File %1.bin -AddAmsdosHeader 170 -AddToNewDsk %1.dsk
    
    goto FIN
    
    exit
    
    :AIDE
    echo ---------------------------------------------------------
    echo Utilisation : comp.bat "non fichier" sans extension !
    goto Fin
    
    :NOC
    echo ---------------------------------------------------------
    echo Le fichier %1.c n'existe pas !
    goto Fin
    
    :NOIHX
    echo ---------------------------------------------------------
    echo Erreur de compilation du C !
    goto Fin
    
    :NOBIN
    echo ---------------------------------------------------------
    echo Erreur de compilation ASM !
    goto Fin
    
    :OK
    echo ---------------------------------------------------------
    echo Compilation de %1.c : OK
    echo Creation de %1.bin : OK
    echo Creation de %1.dsk : OK
    
    :FIN
    echo ---------------------------------------------------------
    echo fin...
    

    Voila, avec ce fichier la compilation est un peut plus "simple", il se trouve dans se ZIP.