Euh, bah, c'est écrit dans l'article.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).
[ARTICLE] Le Bootsector d'une disquette THOMSON
Modérateurs : Papy.G, fneck, Carl
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
Fan d'ATARI 2600, de THOMSON MO5-TO8 et d'ATARI ST
Mes articles : https://www.fxjavadevblog.fr/retro-programming/
Membre du groupe wide-dot.
Mes articles : https://www.fxjavadevblog.fr/retro-programming/
Membre du groupe wide-dot.
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
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).
- 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.
L'obstacle augmente mon ardeur.
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
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.
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 : https://www.fxjavadevblog.fr/retro-programming/
Membre du groupe wide-dot.
Mes articles : https://www.fxjavadevblog.fr/retro-programming/
Membre du groupe wide-dot.
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
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.
L'obstacle augmente mon ardeur.
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
Génial ton article, merci beaucoup !
MO5 - MO5 Platini - TO7 - TO7/70 - TO8 - TO9+
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
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 : https://www.fxjavadevblog.fr/retro-programming/
Membre du groupe wide-dot.
Mes articles : https://www.fxjavadevblog.fr/retro-programming/
Membre du groupe wide-dot.
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
Merci pour l'article. C’est extrêmement bien fait!
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
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 ).
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)
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 ).
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 (gomme, méca, Platini), MO6, TO7, TO7-70, TO8D, TO9
MO/TO Exploitation de fichiers
Recherche : TO8, TO9+ (à prix raisonnable)
MO5 (gomme, méca, Platini), MO6, TO7, TO7-70, TO8D, TO9
MO/TO Exploitation de fichiers
Recherche : TO8, TO9+ (à prix raisonnable)
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
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 : https://www.fxjavadevblog.fr/retro-programming/
Membre du groupe wide-dot.
Mes articles : https://www.fxjavadevblog.fr/retro-programming/
Membre du groupe wide-dot.
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
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 !
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 : https://www.fxjavadevblog.fr/retro-programming/
Membre du groupe wide-dot.
Mes articles : https://www.fxjavadevblog.fr/retro-programming/
Membre du groupe wide-dot.
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
Etant sous Windows, j'ai utilisé AutoIt (je l'utilise régulièrement pour d'autres scripts / programmes).
Seb
MO5 (gomme, méca, Platini), MO6, TO7, TO7-70, TO8D, TO9
MO/TO Exploitation de fichiers
Recherche : TO8, TO9+ (à prix raisonnable)
MO5 (gomme, méca, Platini), MO6, TO7, TO7-70, TO8D, TO9
MO/TO Exploitation de fichiers
Recherche : TO8, TO9+ (à prix raisonnable)
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
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).
-
- Messages : 7988
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [ARTICLE] Le Bootsector d'une disquette THOMSON
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).
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
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos