| [1] | 1 | Environnement de développement pour Thomson |
|---|
| 2 | ========================================== |
|---|
| 3 | |
|---|
| 4 | |
|---|
| 5 | Regroupe des outils open source (eventuellement retouchés): |
|---|
| 6 | |
|---|
| 7 | _ c6809 : macro assembleur par F Mouret (www.pulsdemos.com) |
|---|
| 8 | _ sap et sap2fs : outils de manipulation d'images disques par A.Pukall / E.Botcazou |
|---|
| 9 | _ scan du manuel technique TO8 : www.logicielmoto.com (manuel cedic/nathan) |
|---|
| 10 | _ scan OCR du manuel technique du TO8 (réalisé par sam groupe PULS) |
|---|
| 11 | _ compilateur Micro C 6809 / FLEX (COPYRIGHT (c) 1981, 1987 Masataka Ohta, Hiroshi Tezuka) |
|---|
| 12 | _ divers outils (vitalmotion) |
|---|
| 13 | |
|---|
| 14 | |
|---|
| 15 | |
|---|
| 16 | Installation / compilation |
|---|
| 17 | ========================== |
|---|
| 18 | |
|---|
| 19 | Préalable : Compilation des outils (testé sous linux, devrait être ok avec mingw sous win32): |
|---|
| 20 | _ passer dans c6809,sap,tools,mc09 puis "make" |
|---|
| 21 | |
|---|
| 22 | test: |
|---|
| 23 | |
|---|
| 24 | ex de génération d'une image disque pour le jeu (incomplet) asteroid: |
|---|
| 25 | _ le macroassembler est appelé pour compiler le source (résultat dans AUTO.BIN) |
|---|
| 26 | _ un fichier AUTO.BAT contient les lignes suivantes (au format basic thomson): |
|---|
| 27 | 10 LOADM"AUTO.BIN" |
|---|
| 28 | 20 EXEC &HA000 |
|---|
| 29 | |
|---|
| 30 | _ l'outil sap2fs est appelé pour créer une archive SAP contenant le binaire et le lanceur basic. |
|---|
| 31 | |
|---|
| 32 | => résultat dans ASTEROID.SAP lancement auto avec la touche "B" du menu (lancement auto en basic 512). |
|---|
| 33 | |
|---|
| 34 | |
|---|
| 35 | |
|---|
| 36 | |
|---|
| 37 | Le compilateur Micro C |
|---|
| 38 | ====================== |
|---|
| 39 | |
|---|
| 40 | |
|---|
| 41 | Micro-C is a subset of C compiler. It compiles everything |
|---|
| 42 | in 1 pass. |
|---|
| 43 | |
|---|
| 44 | Major limitations compared to standard C compilers are: |
|---|
| 45 | 1) no float or double |
|---|
| 46 | 2) no bit field |
|---|
| 47 | 3) limited pre-processor capability (use 'cpp' of UNIX if necessary) |
|---|
| 48 | 4) no real long (long is only 2 bytes long) |
|---|
| 49 | |
|---|
| 50 | Non standard features: |
|---|
| 51 | 1) #asm and #endasm construction (dangerous, use only after ';' or '}') |
|---|
| 52 | |
|---|
| 53 | Le micro C est strictement K&R et n'accepte pas d'initialisation des tableaux. |
|---|
| 54 | Les piles U et S sont utilisées (U est le pointeur de pile sur les variables de la fonction en cours). |
|---|
| 55 | Y est le pointeur sur le début des variables globales et reste fixe. |
|---|
| 56 | seuls A,B,D et X sont utilisés en cours de fonction. |
|---|
| 57 | La macro #asm permet d'inclure du code machine directement. |
|---|
| 58 | |
|---|
| 59 | microC est capable de se compiler lui même (du moins initialement). Il est donc théoriquement possible de le faire tourner sur thomson. |
|---|
| 60 | |
|---|
| 61 | microC n'optimise rien. C'est au développeur de le faire explicitement. |
|---|
| 62 | |
|---|
| 63 | |
|---|
| 64 | |
|---|
| 65 | |
|---|
| 66 | |
|---|