[VG 5000] Documentation complète du code source de la ROM

C'est la catégorie reine de l'ordinophile, 8 bits et pas un de plus!
Single board ou bus S-100 acceptés.

Modérateurs : Papy.G, fneck, Carl

g_reding
Messages : 1
Inscription : 08 avr. 2017 21:30

[VG 5000] Documentation complète du code source de la ROM

Message par g_reding »

Bonjour,

Je viens de découvrir sur le site VG5000 Bazar l'existence d'une version légèrement commentée du code désassemblé de la ROM du VG 5000.
Je salue cet effort, mais je pense qu'il faut aller beaucoup plus loin.
Je pense qu'il faudrait intégralement commenter le code source de la ROM, c'est à dire de ne pas se contenter d'une ligne annonçant (par exemple "Addition virgule flottante") mais d'expliquer dans le détail le fonctionnement de chacune des fonctions.

Enfin, il serait intéressant de pouvoir obtenir un code assembleur Z80 qui, une fois assemblé, nous donne une copie identique de la ROM du VG 5000.

Pour vous donner une meilleure idée de ce que je souhaites obtenir, je vous invite à lire le travail de Lorenz Wiest sur la rétro ingénierie du jeu vidéo Star Raiders pour Atari 400.
https://github.com/lwiest/StarRaiders

Son travail a fait l'objet d'un article dans la revue PoC||GTFO.
https://archive.org/details/pocorgtfo13

En attendant quelque chose de plus consistant à vous mettre sous la dent, voici les différences observées entre les différentes version de la ROM du VG 5000 :)

Version 1.0 → Version 1.1

Code : Tout sélectionner

0x00000006 30 => 31 0x00000006
0x00000026 ffff => 39fc 0x00000026
0x000000db 22 => 20 0x000000db
0x000000df a3 => 59 0x000000df
0x000000e1 21 => 22 0x000000e1
0x000000e7 28 => 29 0x000000e7
0x000000eb 59 => a3 0x000000eb
0x000000ed ec => f2 0x000000ed
0x0000010c 22 => 20 0x0000010c
0x00000110 a3 => 59 0x00000110
0x0000011c 21 => 22 0x0000011c
0x00000122 28 => 29 0x00000122
0x00000126 59 => a3 0x00000126
0x00000128 d8 => e8 0x00000128
0x00000f33 09 => 0a 0x00000f33
0x00000f35 280cdb81cb5718aedb07cb6718a8db08cb6718a2 => caf31fdb81cb5718addb072fe6300f0f0f0f47c9 0x00000f35
0x00001000 f3 => 03 0x00001000
0x00001936 f2 => f1 0x00001936
0x00001ff3 ffffffffffffffffffffff => db082fe6300f0f0f0f47c9 0x00001ff3
0x00002000 3a => 00 0x00002000
0x00002062 d82e => ce3d 0x00002062
0x000022a8 cd2607 => c39a3d 0x000022a8
0x000022d4 228548 => c3aa3d 0x000022d4
0x00002778 3a7148cbef327148ddcb03f6cd9c3cddcb03b63a7148cb87327148 => cdec3d1816000000cd9c3cddcb03b63a7148cbafcb87327148c900 0x00002778
0x000027c5 9c3c => ec3d 0x000027c5
0x00002abc 4d28cd5225d5cf2ccd4b257bd112c9 => cb2ad5cf2ccda52ad112c900000000 0x00002abc
0x00002af7 e67f => 0000 0x00002af7
0x00002b04 cae02b => c32d3e 0x00002b04
0x00002b16 fe1f2009 => c3fb3d00 0x00002b16
0x00002b9c 3e06df18 => c3113e00 0x00002b9c
0x00002be3 7d3d28102de5cd7835e1fe3a3019fe30381518ec3a8448b7280daf3284482205 => 2de5cd7835e1fe802808ee30fe0a301a18ee7db720ea2c3a8448b7280daf3284 0x00002be3
0x00002c04 3e04dfc3a72b2a0548 => 2205483e04dfc3a72b 0x00002c04
0x00002c27 cbaf327148 => 0000000000 0x00002c27
0x00002edd 772377 => c3913d 0x00002edd
0x00003000 03 => ce 0x00003000
0x00003046 23c238223e => c23822d706 0x00003046
0x0000304c 32e949af474fe5cd5c03e1c9 => e5afcdaa05e1c90000000000 0x0000304c
0x000031b7 09 => 05 0x000031b7
0x0000328f 21fe35 => c3c03d 0x0000328f
0x0000349b cd0e342e2722054818be => 18e1c22d2b3e06c3232b 0x0000349b
0x0000350c fa2835 => c31f3e 0x0000350c
0x000035f6 280000000000 => 387cfe7c3810 0x000035f6
0x00003cc9 19 => 18 0x00003cc9
0x00003ccc ca4a3c => c3e13d 0x00003ccc
0x00003d91 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff => 328448772377c3e02ee5cd2607d1cd4723d2ab223ea0c3ad22380dd511f9 0x00003d91
0x00003db0 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff => e7d130052285481804af328448c3d72221fe35cd850d3e2021f435c39232cad92ecd6c25c0018d22c5cd47236069c3dc2e3806c2a83c3e0edfc3cf3c3a7148cbef327148ddcb03f6c38027fe06200b3a7148cb6fc39d34c3232bfe1f20f9c31a2b3a7148cb6fc2972b3e06dfc3a72bfa28353a7148cb6fc22835c30f35cae02bf53a8948b72004f1c3072bf1c3fb3d 0x00003db0
Version 1.1 → Version 1.1a

Code : Tout sélectionner

0x00001000 03 => f3 0x00001000
0x00002000 00 => 3a 0x00002000
0x00003000 ce => 03 0x00003000
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: [VG 5000] Documentation complète du code source de la ROM

Message par Mokona »

Hello,

d'après ce que j'ai compris, les commentaires trouvés dans ce désassemblage ont été principalement fait par Daniel dans l'optique du développement de l'émulateur.

J'en ai une version avec plus de notes, que j'ai prises dans l'optique d'effectivement de décrire chaque morceaux de la ROM. C'est dans un état... "notes". Il y a encore pas mal de boulot pour rendre ça publiable.Et il manque encore quelques morceaux.

(et je suis persuadé que d'autres VG5000iens ont des notes de leur côté)
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13253
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: [VG 5000] Documentation complète du code source de la ROM

Message par Carl »

Bonjour,
Je vous propose d'aller jeter une oeil sur ces 2 PDF pour ce qui concerne les différences entre Basic 1.0 et 1.1
http://vg5000.free.fr/
Capture.JPG
Capture.JPG (19.71 Kio) Consulté 2647 fois
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17423
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: [VG 5000] Documentation complète du code source de la ROM

Message par fneck »

Plus précisément, la liste des différences entre le Basic 1.0 et le 1.1 se trouve dans le deuxième manuel, page 6/66.
24 différences prévues dont certaines finalement non implémentées.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Répondre