Compare commits

...

5 commits

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.
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)
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
db "AB" ; premiers bits du header
dw Start ; adresse de la fonction de départ
db 00,00,00,00,00,00 ; bits inutilisés dans notre cas
Message: db 'Hello World!', 255
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 (&F3B0), a ; envoie de la taille de l'écran
ld (0xF3B0), a ; envoie de la taille de l'écran
ld hl, Message
call PrintString
@ -23,8 +21,10 @@ PrintString:
; le car est 255. Si oui, Z est mit à 1
ret z ; si Z est à 1, on retourne
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
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)