Assembleur PGOL
Programmation des PROM de jeu
Outillage pour langage PGOL.
Assembleur - Désassembleur
Gottlieb SYSTEM 1.
Introduction
Afin d'expérimenter des modifications pour les PROM de jeu des SYSTEM 1, nous avons développé plusieurs outils simples. Le premier est un assembleur qui permet de générer un fichier binaire (programmable dans une EPROM) à partir d'un source. Le second est un désassembleur pour décoder les PROM originales et générer un fichier source exploitable avec l'assembleur.
Assembleur PGOL
Nous utilisons à la base un macro-assembleur 6502 très connu et gratuit: "6502 MacroAssembler & Simulator" écrit par Michal Kowalski. Bien que le processeur des SYSTEM 1 ne soit pas un 6502, nous pouvons utiliser les possibilités de macros et de génération de ce programme.
L'assembleur PGOL n'est rien d'autre qu'une série de macro-commandes enregistrées dans un fichier 'include'.
Le programmme s'utilise de manière tout à fait classique et génére après compilation, une image binaire en mémoire. Ce code est localisé dans l'espace $0100 - $04FF du 6502 et correspond aux 1 Ko de la PROM de jeu.
Cette image peut ensuite être sauvegardée dans un fichier (typiquement un .bin) afin d'être utilisée avec un programmateur d'EPROM. Le format généré est un binaire standard avec des données sur 8 bits, mais dont les 4 bits de poids fort seront toujours à "1".
Installation
Commencez par télécharger l'assembleur 6502, soit depuis notre site, soit depuis 6502.org.
Il n'y a pas de programme d'installation, il suffit de décompresser l'archive dans un répertoire dédié. Créez également deux sous-répertoires "sources" et "includes" afin de pouvoir y placer vos fichiers.
Télécharger également les macros PGOL et décompressez l'archive dans le répertoire "includes".
Utilisation
Le programme se démarre simplement en cliquant sur "6502.exe". Une fois lancé, vous pouvez ouvrir votre source, comme pour n'importe quel source 6502. Les fichiers sources sont des fichiers texte standard, mais portant l'extension ".65s" au lieu du traditionnel ".txt".
La compilation se lance en appuyant sur F7. Il est possible de voir le code généré en mémoire en appuyant sur "ALT" + "2".
Pour enregistrer le code généré, appuyer sur "CTRL" + "K". Indiquez alors le type de fichier (binaire .65b) et cliquer sur options pour spécifier la plage mémoire à sauvegarder ($0100 à $04FF).
Bien sûr, tout ceci ne fonctionne que si vous avez un source sous la main...
Besoin d'un Génie ?
Désassembleur PGOL expérimental
Cet outil permet de générer un source utilisable avec le compilateur ci-dessus, à partir d'un fichier binaire original. Comme tout désassembleur, le code généré n'est jamais parfait et doit être éventuellement revu avant utilisation.
Celui-ci est toutefois suffisament performant pour générer un code directement utilisable pour toutes les PROM SYSTEM 1, à l'exeption du SINBAD. En effet, ce dernier comporte un bug que le désassembleur ne peut corriger. Il est cependant très facile à localiser et peut être changé à la main.
Le fichier binaire en entrée (.bin ou .cpu) doit faire 1024 octets. Afin d'optimiser le décodage et obtenir un source commenté, il est possible (et conseillé) d'indiquer ci-dessous le modèle de flipper.
Exemple de source généré: Cleopatra
Distribution
Cette réalisation est disponible gratuitement.