MSX Village forum

La Place des Développeurs Utilisation de disque MSX-DOS, BDOS, Disk BASIC, et autres joyeusetés

Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9339

Le 10/05/2022 à 14h26

Reprise du message précédent

pour l'instant on n'a pas parlé du MSX-DOS2 qui est une extension uniquement logicielle et qui requiert elle 128 Ko de RAM

pas mal d'infos sur ce site http://map.grauw.nl/resources/

pour travailler avec les MSX-DOS il faut aussi une disquette de boot contenant 2 fichiers

DOS1 avec COMMAND.COM et MSXDOS.SYS

DOS2 avec COMMAND2.COM et MSXDOS2.SYS



:noel
Site web    
aoineko Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2054

Le 10/05/2022 à 17h40
On avait dit, qu'on parlerait des OS plus tard :p


On est toujours ignorant avant de savoir.
Github    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9339

Le 10/05/2022 à 18h28
donc pour l'instant tu veux juste parler des commandes qui permettent de travailler avec le disque en assembleur

les adresses des commandes commencent a la page 118 du livre du disque

sur cette page j'y ai écrit idem FFA7h Call Bios 144h

FFA7h H.PHYD Call: At the beginning of the routine PHYDIO (Main-ROM at 0144h).
Usage: Process the routine.
Note: Used by the Disk-ROM.

PHYDIO (0144H)
Function: Physical input/output for disk devices
Input: A for the drive number (0 = A:, 1 = B:,...)
B for the number of sector to be read from or written to
C for the media ID
DE for the first sector number to be read rom or written to
HL for the startinga address of the RAM buffer to be
read from or written to specified sectors
CY set for sector writing; reset for sector reading
Output: CY set if failed
B for the number of sectors actually read or written
A for the error code (only if CY set):
0 = Write protected
2 = Not ready
4 = Data error
6 = Seek error
8 = Record not found
10 = Write error
12 = Bad parameter
14 = Out of memory
16 = Other error
Registers: all


:noel
Site web    
aoineko Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2054

Le 11/05/2022 à 09h33
Jipe :
sur cette page j'y ai écrit idem FFA7h Call Bios 144h


Oh ! :| Je ne savais pas que le BIOS de base avait des routines pour gérer les disques !
Bon, c'est assez spartiate vu qu'on lit les secteurs et non des fichiers, mais c'est bon à savoir.

Est-ce que cette fonction est utilisable même si le programme n'a pas donné la main au Disk-ROM ?
Par ex., dans le cas d'une cartouche dans un slot plus petit que celui ou se trouve le contrôleur de disque.
Ou bien est-ce qu'elle utilise elle-même les fonctions du BDOS (Basic-DOS) ?


On est toujours ignorant avant de savoir.
Github    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9339

Le 11/05/2022 à 11h02
trouvé dans pratique du MSX2

6.4 SYSTEME A DISQUETTES OU A CASSETTES ?
Pour savoir si l'ordinateur possède un lecteur de disquettes ou non, il faut vérifier l'état d'un hook
modifié par le système d'exploitation de disquette. Le hook H.PHYD convient parfaitement. Ainsi,
si 0FFA7H - adresse de H.PHYD - contient 0C9H (code du RET en Z80), vous travaillez sur un
système à cassette. Si 0FFA7H contient autre chose que 0C9H (qui devrait être 0F7H, code du RST
30), alors l'ordinateur possède un lecteur de disquette, intégré ou non.
De plus, lorsqu'un lecteur de disquette est présent, certaines variables système sont modifiées :
adresse contenu
0FB21H nombre de lecteurs sur le premier contrôleur
0FB22H numéro de slot du premier contrôleur
0FB23H nombre de lecteurs sur le second contrôleur
0FB24H numéro de slot du second contrôleur
0FB25H nombre de lecteurs sur le troisième contrôleur
0FB26H numéro de slot du troisième contrôleur
0FB27H nombre de lecteurs sur le quatrième contrôleur
0FB28H numéro de slot du quatrième contrôleur
Un MSX peut donc gérer jusqu'à 8 lecteurs de disquettes simultanément. S'il y a moins de quatre
contrôleurs, les variables système correspondant aux contrôleurs inexistants contiennent 0.
En cas d'absence de lecteur de disquette, cette zone mémoire n'est pas initialisée et contient donc
n'importe quoi.


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9339

Le 11/05/2022 à 11h05
CALL Far
Nom : CALLF
Adresse : 00030H / ROM
Rôle : appel inter-slot à une adresse.
Ces routines n'appellent pas de commentaire particulier (voir le Bios) sauf peut-être la dernière
routine « CALL Far » :
Pour accéder à une adresse se trouvant dans un autre slot, il suffit d'écrire les 3 instructions
suivantes en assembleur :
RST 30
DB numéro du slot
DW adresse à appeler
Le RET de la routine appelée renverra l'exécution à l'octet immédiatement après l'adresse définie
par le DW. Par exemple la suite d'octets F7, 8E, 0, C0, AF générerait la séquence suivante :
0F7H code Z80 de « RST 30 »
08EH slot secondaire 2-3
000H adresse à appeler 0C000H
0C0H
0AFH code Z80 de « XOR A », le RET de la routine en 0C0000H dans le slot 2-3 fera
reprendre l'exécution du programme avec ce « XOR A ».


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9339

Le 11/05/2022 à 11h33
contenu du hook FFA7 a l'init d'un 8280 avec une Sunrise dans le Slot 2 et 2 lecteurs FDD
F7 02 9D 4C C9
CALL F 02h,4C9Dh ; Slot 2 Adresse 4C9Dh
RET


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5271

Le 11/05/2022 à 19h47
Question soumise à votre sagacité ...

J'ai pris pour acquis, que si je veux développer une ROM, ou depuis le Basic, je peux utiliser ces zones mémoires comme des zones temporaires ou tampon, car elles sont réservées pour certaines instructions Basic. (Voir autre post avec metalion quelle part ici )

MUSQLN en 0xF975
BUF en 0xF55E
KBUF en 0xF41F


D'après le bouquin déterré par AOINEKO, en page 140, il est détaillé la memory map sous MSX-DOS.
Il y est donc indiqué que de 0xF380 à 0xFFFF c'est une zone de communication du Basic.

Du coup, je me dit deux choses...
1) Je peux continuer à utiliser comme je veux mes 3 zones tampons décrite plus haut comme je veux, même avec MSX-DOS
2) Je peux utiliser TOUTE cette zone 0XF380 à 0xFFF, comme je veux, si je n'ai pas l'intention de retourner au Basic depuis le MSX-DOS

Est-ce que cela vous parait cohérent ? :hum

page140 Edité par ericb59 Le 11/05/2022 à 19h53


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9339

Le 11/05/2022 à 22h42
non car cette zone contient aussi les hooks et les variables systèmes qui sont nécessaires au fonctionnement du MSX
en plus avec les MSX à slots étendus FFFFh est réservé


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5271

Le 12/05/2022 à 06h19
@ jipe
Non, pour les 2 options ?
a priori Kbuff, buf, musqln, resteraient d'un usage identique non ?


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9339

Le 12/05/2022 à 07h14
Clefs pour MSX
F41F-F55C 318 Tampon pour le codage d’une ligne Basic (KRUNCH).
F55E-F65F 258 Zone tampon pour le clavier.
F956-FB8B 565 Zone de travail pour l’instruction PLAY.


Pratique du MSX2
0F41FH KBUF 318 « Crunch buffer » utilisé par le Basic
0F55EH BUF 256 Buffer du mode direct
0F956H MCLTAB 2 Mémoire de travail pour « MACLNG »
0F958H MCLFLG 1 Flag indiquant un « PLAY » ou un « DRAW »
0F959H QUETAB 24 Quatre queues de six octets chacune
0F971H QUEBAK 4 Utilisé par « BCKQ »
0F975H VOICAQ 128 Queue musicale pour la voie A
0F9F5H VOICBQ 128 Queue musicale pour la voie B
0FA75H VOICCQ 128 Queue musicale pour la voie C


donc ce n'est utilisé que par le Basic
mais tous les divers programmes DOS ou L.M. sur les cracks de mégaroms que j'ai pu voir utilisent la Zone des Queues musicales a partir de F975
après tu peux expérimenter et nous faire part des résultats


:noel
Site web    
aoineko Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2054

Le 12/05/2022 à 08h39
Jipe :
sur cette page j'y ai écrit idem FFA7h Call Bios 144h


Le call 0144h fonctionne même si le contrôleur de disque n'a pas était initialisé ? J'imagine que non.


On est toujours ignorant avant de savoir.
Github    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1474

Le 14/05/2022 à 09h33
La recopie du livre avance, un cinquième est déjà retapé ;)
Par contre, il est parfois difficile de bien lire ce qui est écrit, je ne suis pas à l'abri de faire quelques coquilles


MSX un jour, MSX toujours ! :D
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9339

Le 14/05/2022 à 10h16
j'ai le livre je pourrait vérifier ;)


:noel
Site web    
aoineko Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/01/2011 à 21h17

Messages: 2054

Le 14/05/2022 à 10h30
granced :
La recopie du livre avance, un cinquième est déjà retapé ;)
Par contre, il est parfois difficile de bien lire ce qui est écrit, je ne suis pas à l'abri de faire quelques coquilles


Super :top

N'hésites pas à m'envoyer ce que tu as déjà fait. Je pourrais relire (en plus de me documenter ^^).


On est toujours ignorant avant de savoir.
Github    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5271

Le 14/05/2022 à 14h56

J'arrive trop tard avec mon nouveau scan tout neuf ?
:siffle

http://ebsoft.fr/dms/seeddms/out/out.ViewDocument.php?documentid=899

@granced: garde tes yeux pour des taches plus nobles. Avec ce nouveau scan du bouquin plus propre, il est assez facile de faire une version texte en utilisant l'OCR intégré à MacOS. (Ou avec d'autres logiciels comme Read Iris par exemple).


banniere-ericb59e
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie