merge: utilisation de sjasm+ au lieu de vasm

This commit is contained in:
rick 2021-06-01 14:29:49 +02:00
commit 79f2fd860f
Signed by: Rick
GPG key ID: 2B593F087240EE99
4 changed files with 19 additions and 10 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
*.lst
*.rom

5
Makefile Normal file
View file

@ -0,0 +1,5 @@
CC=sjasmplus
CFLAGS=
%:
$(CC) $@.asm --raw=$@.rom

View file

@ -1,9 +1,11 @@
Dépôt contenant des fichiers pour tester le développement sur MSX. Dépôt contenant des fichiers pour tester le développement sur MSX.
Le compilateur [VASM](http://sun.hasenbraten.de/vasm/) est utilisé pour l'instant afin de compiler les fichiers et [OpenMSX](https://github.com/openMSX/openMSX) pour l'émulateur. La commande pour compiler les sources : Le compilateur SJASMplus est utilisé afin de compiler les fichiers et [OpenMSX](https://github.com/openMSX/openMSX) pour l'émulateur. La commande pour compiler les sources :
``` ```
vasmz80_oldstyle hello.asm -chklabels -nocase -DBuildMSX=1 -DBuildMSX_MSX1=1 -Fbin -o hello.rom sjasmplus hello.asm --raw=hello.rom
``` ```
Je m'appuie sur [le tuto de Chibiakumas](https://www.chibiakumas.com/z80/helloworld.php#LessonH3) pour le Hello worl. Il est aussi possible dutiliser le Makefile avec la commande `make hello`.
Je m'appuie sur [le tuto de Chibiakumas](https://www.chibiakumas.com/z80/helloworld.php#LessonH3) pour le Hello world.

View file

@ -1,16 +1,14 @@
; Entête pour cartouche (10bits) ; Entête pour cartouche (10bits)
org &4000 ; adresse de la cartouche org permet de org 0x4000 ; adresse de la cartouche org permet de
; se positionner à une adresse dans la mémoire ; se positionner à une adresse dans la mémoire
db "AB" ; premiers bits du header db "AB" ; premiers bits du header
dw Start ; adresse de la fonction de départ dw Start ; adresse de la fonction de départ
db 00,00,00,00,00,00 ; bits inutilisés dans notre cas db 00,00,00,00,00,00 ; bits inutilisés dans notre cas
Message: db 'Hello World!', 255
Start: Start:
call &006F ; permet de sélectionner le mode de l'écran call 0x006F ; permet de sélectionner le mode de l'écran
ld a, 32 ; mettre la taille de l'écran à 32 caractères ld a, 32 ; mettre la taille de l'écran à 32 caractères
ld (&F3B0), a ; envoie de la taille de l'écran ld (0xF3B0), a ; envoie de la taille de l'écran
ld hl, Message ld hl, Message
call PrintString call PrintString
@ -23,8 +21,10 @@ PrintString:
; le car est 255. Si oui, Z est mit à 1 ; le car est 255. Si oui, Z est mit à 1
ret z ; si Z est à 1, on retourne ret z ; si Z est à 1, on retourne
inc hl inc hl
call &00A2 ; fonction firmware pour afficher un caractère call 0x00A2 ; fonction firmware pour afficher un caractère
; à l'écran le caractère est contenu dans hl ; à l'écran le caractère est contenu dans hl
jr PrintString jr PrintString
org &C000 ; alignement de fin de cartouche (pour OpenMSX) Message: db 'Hello World!', 255
org 0xC000 ; alignement de fin de cartouche (pour OpenMSX)