CC65 est un paquet complet de développement de croix pour 6502 systèmes, y compris un puissant macro assembleur, un compilateur C, éditeur de liens, bibliothécaire et plusieurs autres outils. CC65 est basé sur un compilateur C qui a été initialement conçu pour les ordinateurs Atari 8bit par John R. Dunning.
Le compilateur C d'origine est un descendant Petit C mais a plusieurs extensions, et certaines des limites du compilateur C Petit origine ont disparu. Le droit d'auteur original permet une redistribution sans y compris les sources, même si elle ne serait pas admissible Software as Open Source selon la définition de l'Open Source.
Le compilateur Atari originale est disponible à partir http://www.umich.edu/~archive/atari/8bit/Languages/Cc65/. Le forfait complet comprend le compilateur, un assembleur, un bibliothécaire, un lieur, et une bibliothèque C pour Atari. Il ya quelques paquets sur le net qui prétendent être adapté comme un compilateur croisé pour DOS ou Unix, mais ne était pas en mesure de les faire travailler correctement.
Parce que je voulais un compilateur C pour mes machines de CBM, je ai pris le compilateur Atari et a commencé une réécriture. Jusqu'à aujourd'hui, je ai réécrit de grandes parties du compilateur, la totalité de la bibliothèque, complètement remplacé l'assembleur, l'éditeur de liens et le bibliothécaire, et a ajouté une interface pour simplifier l'utilisation. Toutes les modifications ont été effectuées avec la portabilité à l'esprit, donc le portage vers de nouvelles architectures 6502 devraient être assez facile.
Le compilateur C ISO est presque compatible, donc vous devriez être en mesure de traduire de nombreuses sources d'autres systèmes.
Il peut y avoir d'autres limitations dépendantes du système cible. Un exemple est le fichier I / O, qui ne est pas mis en œuvre sur toutes les plateformes. Ce est pas de limitation technique (comme avec la substance mentionnée ci-dessus), mais ne signifie juste que personne ne se souciait assez pour écrire le code réel.
Le compilateur ne est que l'un des outils disponibles dans ce package. La suite de l'assembleur (assembleur, éditeur de liens, archiveur) est un environnement de développement complet pour lui-même, qui peut être utilisé pour écrire des programmes pour tout 6502 machine. code C et le code assembleur peuvent être utilisés ensemble et peuvent se appeler mutuellement.
L'assembleur est un macroassembler une passe et est capable de code de sortie pour le 6502, et le 65SC02 65SC816. Il a beaucoup de fonctionnalités intéressantes comme inclure des fichiers, l'assemblage conditionnelle, les macros, les niveaux imbriqués lexicales (ce est, symboles locaux), et plus encore. L'assembleur crée des fichiers d'objets contenant du code relocalisable. Ces fichiers doivent être exécutés par un lieur de créer le programme final.
L'éditeur de liens a un format de sortie flexible et est capable de supporter le code ROMable (charge différente et adresses gérées pour les données), systèmes en banque (segments peuvent partager la même adresse de piste), les systèmes avec plusieurs ROMs, segments illimités, plus d'un segment BSS et beaucoup d'autres choses.
L'archiveur est utilisé pour créer des bibliothèques contenant des fichiers objets. Cela simplifie la gestion de code. L'éditeur de liens va extraire uniquement les modules d'une bibliothèque qui sont réellement nécessaire.
Pour une utilisation simplifiy, il ya aussi une interface pour les outils contenus dans le paquet de CC65. L'interface est nommé CL65. Il sait comment compiler une liste de fichiers C, assembleur fichiers, des fichiers objets et les bibliothèques. Pour les petits projets, une seule invocation de l'utilitaire de CL65 est nécessaire pour construire un binaire de plusieurs fichiers source et les bibliothèques
Caractéristiques :.
- Le compilateur permet commentaires d'une seule ligne qui commencent par //. Cette fonction est désactivée en mode ANSI stricte.
- Le compilateur permet paramètres non nommés dans les listes de paramètres. Le compilateur ne sera pas émettre des avertissements sur les paramètres inutilisés qui ne ont pas un nom. Cette fonction est désactivée en mode ANSI stricte.
- Le compilateur a des mots-clés supplémentaires qui sont nécessaires pour des fonctions spéciales. En mode ANSI stricte, les mots-clés supplémentaires commencent par deux caractères de soulignement.
- Le modificateur volatile n'a aucun effet.
- Les types de données float et double ne sont pas disponibles.
- Le compilateur ne supporte pas les champs de bits.
- fonctions C peuvent ne pas retourner structs et structs ne peuvent pas être transmises comme paramètres par valeur. affectation de Struct est possible.
- Il y a une certaine limitation de la taille des variables locales. Toutes les opérations ne sont pas disponibles si la taille des variables locales dépasse 256 octets.
- Une partie de la bibliothèque C est disponible uniquement avec fastcall conventions d'appel (voir ci-dessous). Cela signifie que vous ne pouvez pas mélanger des pointeurs vers ces fonctions avec des pointeurs vers des fonctions écrites par l'utilisateur.
Ce qui est nouveau dans cette version:
- Quelques questions et les problèmes macro avec code incorrect générés par le C compilateur ont été corrigés.
- Ceci inclut la conversion d'une fonction pour annuler pointeur et la routine de la division de l'exécution.
- L'assembleur a également eu quelques problèmes macro et un problème avec alignements de plus de 256 octets.
- Il y avait des problèmes avec le mode 80 colonne et conio défilement dans la bibliothèque C128.
- La bibliothèque Atari a maintenant POSIX répertoire routines.
- Il ya eu plusieurs changements de documentation, des corrections et des améliorations.
Quoi de neuf dans la version 2.13.0:.
- Soutien aux champs de bits a été ajouté
- Cette version améliore la conformité aux normes, et des avertissements supplémentaires sont émis pour le code douteuse.
- Les bibliothèques sont à l'écoute pour plus de vitesse ou de petite taille.
- Le compilateur génère un code plus rapide dans de nombreux cas, généralement sans beaucoup d'une augmentation de la taille du code.
Commentaires non trouvées