[ARTICLE] Le Bootsector d'une disquette THOMSON

Les bonnes adresses méritant quelques minutes de votre temps.

Modérateurs : fneck, Carl, Papy.G

Avatar de l’utilisateur
fxrobin
Messages : 79
Inscription : 07 mars 2019 13:51
Localisation : RENNES
Contact :

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par fxrobin »

Daniel a écrit : 08 nov. 2022 20:54 Pour revenir à l'article sur le bootsector, il faudrait parler de la méthode pour le lancer automatiquement au démarrage du BASIC 512 (en mettant la chaîne de caractères BASIC2 en $78). Sans cette astuce, je ne crois pas que le bootsector se lance automatiquement sur TO8 en tapant B ou 1 (à vérifier).
Euh, bah, c'est écrit dans l'article.
Fan d'ATARI 2600, de THOMSON MO5-TO8 et d'ATARI ST
Mes articles de retro-prog : https://www.fxjavadevblog.fr/retro-programming/
Daniel
Messages : 15667
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par Daniel »

Oui effectivement, j'avais lu un peu trop vite. Mais il faudrait ajouter un petit complément :
- Avec ou sans la signature BASIC2, le BASIC 1.0 lance toujours le boot.
- En BASIC 128 ou 256, le boot est lancé automatiquement s'il y a la signature, sinon il n'est pas lancé.
- Dans ce dernier cas, on peut lancer le boot avec la commande EXEC &HA007 (MO) ou EXEC &HE007 (TO).

Il y a des cas où il ne faut pas mettre la chaîne BASIC2. Par exemple dans une disquette DOS. Ainsi le boot ne sera pas exécuté en BASIC 128 ou 512, car ils contiennent déjà le DOS. Par contre en BASIC 1.0 il sera exécuté et chargera le DOS, qui est nécessaire dans ce cas.

En relisant attentivement, je comprends maintenant que l'article concerne uniquement les disquettes 3"1/2 du TO8. C'est dommage de se limiter à un cas particulier. Le mécanisme de boot est prévu pour tous les formats de disquette (simple et double densité, 5"1/4 et 3"1/2), y compris les fichiers .sd sur carte SD, et pour tous les modèles d'ordinateurs 8 bits Thomson. En réalité il a été conçu au départ pour la simple densité, avec des secteurs de 128 octets, c'est pourquoi le (ou la) checksum est à l'octet 127 (et pas 255).
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
fxrobin
Messages : 79
Inscription : 07 mars 2019 13:51
Localisation : RENNES
Contact :

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par fxrobin »

Je vais rajouter ces éléments, merci Daniel.
Oui je me suis limité au TO8, n'ayant pas (encore) la connaissance nécessaire pour m'assurer que c'est compatible sur les autres machines.
Fan d'ATARI 2600, de THOMSON MO5-TO8 et d'ATARI ST
Mes articles de retro-prog : https://www.fxjavadevblog.fr/retro-programming/
Daniel
Messages : 15667
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par Daniel »

C'est moi qui te remercie pour cette documentation très utile. Je reconnais que ma requête s'apparente à du pinaillage, mais le rôle de la chaîne BASIC2 étant peu documenté il n'est pas inutile de décrire précisément son rôle et son utilisation.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
jice
Messages : 188
Inscription : 21 avr. 2014 15:08
Localisation : Madrid

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par jice »

Génial ton article, merci beaucoup !
MO5 - MO5 Platini - TO7 - TO7/70 - TO8 - TO9+
Avatar de l’utilisateur
fxrobin
Messages : 79
Inscription : 07 mars 2019 13:51
Localisation : RENNES
Contact :

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par fxrobin »

Merci, vos encouragements à tous me touchent. Ça donne envie de continuer à écrire des articles "techniques" mais abordables, en toute humilité.
Fan d'ATARI 2600, de THOMSON MO5-TO8 et d'ATARI ST
Mes articles de retro-prog : https://www.fxjavadevblog.fr/retro-programming/
Avatar de l’utilisateur
paspeur
Messages : 75
Inscription : 29 avr. 2022 16:28
Localisation : Californie/Bretagne

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par paspeur »

Merci pour l'article. C’est extrêmement bien fait!
DiscoSeb
Messages : 27
Inscription : 25 juil. 2021 16:05
Localisation : Yvelines

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par DiscoSeb »

Merci et bravo pour la doc : bien construite, claire et très bien illustrée.
De plus, le sujet est hyper intéressant.

En essayant de refaire (sous Windows et avec un autre langage pour ne rien simplifier), je ne suis pas retombé sur les mêmes checksums (un ou une, je ne rentre pas dans le débat :D ).

Du coup, j'ai l'impression qu'il y a une coquille entre le code du bootsector.asm et le reste : Dans le bootsector.asm, tu inities la variable NB_READ_SECTORS à 2 et ensuite partout ailleurs elle semble être à 4...

C'est une erreur dans la doc où une subtilité de l'assembleur qui m'échappe ?
(je précise que je n'y connais pas grand chose en assembleur)
Seb
MO5, MO6, TO7-70, TO8D (première main)
Editeur MO/TO Bas
Avatar de l’utilisateur
fxrobin
Messages : 79
Inscription : 07 mars 2019 13:51
Localisation : RENNES
Contact :

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par fxrobin »

Oui bien vu. J'ai recopié du code qui chargeait un programme plus gros (celui du Bootsector de Pacman 2022). Je corrigerai ça aussi. Merci pour la lecture attentive !!!!
Fan d'ATARI 2600, de THOMSON MO5-TO8 et d'ATARI ST
Mes articles de retro-prog : https://www.fxjavadevblog.fr/retro-programming/
Avatar de l’utilisateur
fxrobin
Messages : 79
Inscription : 07 mars 2019 13:51
Localisation : RENNES
Contact :

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par fxrobin »

Voilà c'est modifié et corrigé, merci DiscoSeb.
Par curiosité, quel autre langage as-tu utilisé à la place de Groovy ?

j'ai intégré aussi les ajouts de Daniel concernant la signature. Merci encore !
Fan d'ATARI 2600, de THOMSON MO5-TO8 et d'ATARI ST
Mes articles de retro-prog : https://www.fxjavadevblog.fr/retro-programming/
DiscoSeb
Messages : 27
Inscription : 25 juil. 2021 16:05
Localisation : Yvelines

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par DiscoSeb »

Etant sous Windows, j'ai utilisé AutoIt (je l'utilise régulièrement pour d'autres scripts / programmes).
Seb
MO5, MO6, TO7-70, TO8D (première main)
Editeur MO/TO Bas
Markerror
Messages : 2010
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par Markerror »

Joli article sur un sujet que je ne connaissais pas. Le format du bootsector sur Thomson est sacrément tordu par rapport à celui du CP/M par exemple (un secteur de 256 octet avec le code qu'on veut et qui se charge en &0100).
__sam__
Messages : 6914
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [ARTICLE] Le Bootsector d'une disquette THOMSON

Message par __sam__ »

Le CRC permet d'éviter d'executer du random. C'est plus sécuritaire.

Pour info, j'ai fait il y a 10 ans une démo qui tient dans le bootsecteur et qui marche sur tous les TO: https://www.pouet.net/prod.php?which=59046 (README + source ASM).
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Répondre