Un script ruby pour passer de l'assembleur au basic pour le PHC-25
Dans un article précédent
je montrais comment développer en assembleur pour le PHC-25. Et c’est peu dire
que le processus pour passer du programme assembleur au programme basic qui va
charger le code machine en mémoire est fastidieux !
On peut améliorer les choses en écrivant un script pour produire en une seule
commande les lignes data
à partir du code source assembleur.
Voici ce bout de code qui m’est bien utile :
#!/usr/bin/env ruby
asm_file = ARGV.first
abort("Error! Need an assembly file") if asm_file.nil?
# Assembly
%x( rm -f a.bin )
%x( z80asm #{asm_file} )
abort("Error! No a.bin file found") unless File.exist?('a.bin')
# To hexadecimal
hexa = %x( xxd -c 1 -ps a.bin )
hexa = hexa.split("\n")
puts "#{hexa.size} hex values\n\n"
# BASIC data lines
line_num = 9000
hexa.each_slice(20).to_a.each do |values|
puts "#{line_num} data #{values.join(',')}"
line_num += 1
end
Une fois enregistré dans un fichier asm2data
, et après lui avoir fourni les
droits d’exécution, il ne reste plus qu’a lui donner le nom du fichier source :
$ ./asm2data hello.asm
36 hex values
9000 data 3e,42,32,00,60,3e,4f,32,01,60,3e,4e,32,02,60,3e,4a,32,03,60
9001 data 3e,4f,32,04,60,3e,55,32,05,60,3e,52,32,06,60,c9
On peut alors copier/coller les lignes data
dans un fichier basic.
On peut même les insérer automatiquement dans vim quand on est en train d’éditer
le fichier :
:r!./asm2data hello.asm
Cet article fait partie d’une série :
- 15 jours pour comprendre le PHC-25
- Utiliser l’émulateur pour PHC-25
- Quelques réflexions sur le BASIC du PHC-25
- Portage du jeu Blitz sur le PHC-25
- Le mode graphique 2 du PHC-25
- Palettes de couleur du PHC-25 en mode graphique 2
- L’assembleur sur le PHC-25
- Un script ruby pour passer de l’assembleur au basic pour le PHC-25
Commentaires
Pas encore trouvé de solution simple et non-invasive pour avoir des commentaires sur le blog. En attendant vous pouvez laisser votre Commentaire sur mastodon@lkdjiin