MSX Village forum

L'atelier Variable Systeme Reconnaissance d'un type de lecteur

Bastion Rebel Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 21/09/2013 à 07h42

Messages: 1900

Le 10/09/2015 à 07h51
Bonjour

je suis en train d'essayer de comprendre comment reconnaitre les différents lecteurs via les (HOOK) variable système

donc pour recuperer l'adresse des 8 lecteurs (A à H) il y as des variables système (HOOK) qui sont situer a des adresses qui elle meme revoyer a d'autre ex :

pour le lecteur "A:" l'adr F355 et F356 retourne sur VG8235 modifier &HF19F

F19F = 0 car si =0 = A si =1 =B .....
puis la valeur suivante F1A0 = type de Drive

donc voici ma question

la valeur de F1A0 suivant si :

F0 = BERT / SUNRICE / BEER :siffle
F1/F2/F3/F4/F5/F6/F7 = ??
F8/F9 = Floppy / BEER
FA/FE = ??
FF = SD MMC

existe t il une table de correspondance des valeurs ???

Merci par avance


TURBO-R FS-A1ST 512/128ko MSX2+ NMS 8250 F4 /Fix Audio /Ram 1/4Mb VDP9958 VRAM 192ko 2FDD SANYO WAVY PHC35J MSX2 NMS 8280 Ram 4Mb VDP9938 VRAM 192ko 2FDD NMS 8250 128/128ko 2FDD VG8235/39 128/128ko 1FDD SONY HB-F700D MSX1 MC810 32/16k VG 8020 64k HB75F 64k HX-22 64k RS232/ CX5M 32k HB501F EXT : My Exp 4X/[b] MegaFlashSCC 512ko/BERT R2/BEER CF/SUNRISE 2CF/FUNRICE V2.01/MAXIOL/MEGASCSI HDD-CD/SDMSX 1SD/FMPAC SRAM/NMS1205+1160/RS 232 Harukaze/GR8NET/DOS2/ HOMER V2 RAM512ko/Floppy Pack/MAXduino/ROM1664/FM Pak /GR8NET /AMIGA/ PC/ RaspB Pi(B) / ARDUINO
E-mail    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10903

Le 10/09/2015 à 11h34
je veux bien t'aider mais d'ou tire tu tes renseignements sur ces hook ?


:noel
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 10/09/2015 à 12h23
Je ne comprends pas trop ce que tu cherches. Tu mélanges un peu tout.

Les Hooks et les variables système sont deux choses très différentes.
Il faut aussi différencier les zones de travail des variables système et des Hooks.

- Les variables système sont des valeurs sauvegardées par le système.
- Les Hooks sont des endroits qui contiennent des 0C9h (RET) par défaut sur lesquels certaines routines du système y font appel. L'utilisateur peut remplacer ces RET par une instruction de saut vers ses propres routines afin de modifier leur comportement.
- Les zones de travail sont des petites zones réservés pour des routines du système qui ont besoin d'un peu de RAM pour fonctionner.
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 10/09/2015 à 12h31
Il ne s'agit pas de Hook mais de zone de travail pour le système (pour moi un hook et une adresse où un programme peut trouver une routine à exécuter).

.WORK AREA LISTING
;
F2E1 DRIVE Current drive
F347 NMBDRV total number of drivies
F355 DPBLST List of DRIVE PARAMETERS BLOCK <== DPB
F368 SETROM Set DISK-BASIC ROM
F36B SETRAM Set system RAM configuration
F36E SLTMOV inter slot move
F37D ROMBDOS ROM BDOS vector

La donnée pointée par DPBLST est, la plupart du temps F19F, où l'on trouve le "Media descriptor byte", on peut trouver dans les docs les correspondances suivantes, mais je ne sais pas si cela s'applique au MSX :

Code TEXT :
The ancient media descriptor type codes are:
 
For 8" floppies:
fc, fd, fe - Various interesting formats
 
For 5.25" floppies:
Value  DOS version  Capacity  sides  tracks  sectors/track
ff     1.1           320 KB    2      40      8
fe     1.0           160 KB    1      40      8
fd     2.0           360 KB    2      40      9
fc     2.0           180 KB    1      40      9
fb                   640 KB    2      80      8
fa                   320 KB    1      80      8
f9     3.0          1200 KB    2      80     15
 
For 3.5" floppies:
Value  DOS version  Capacity  sides  tracks  sectors/track
fb                   640 KB    2      80      8
fa                   320 KB    1      80      8
f9     3.2           720 KB    2      80      9
f0     3.3          1440 KB    2      80     18
f0                  2880 KB    2      80     36
 
For RAMdisks:
fa
 
For hard disks:
Value  DOS version
f8     2.0
 


ou encore :

Code TEXT :
 Byte   Capacity   Media Size and Type
      ---------------------------------------------------
 
      F0     2.88 MB    3.5-inch, 2-sided, 36-sector
      F0     1.44 MB    3.5-inch, 2-sided, 18-sector
      F9     720K       3.5-inch, 2-sided, 9-sector
      F9     1.2 MB     5.25-inch, 2-sided, 15-sector
      FD     360K       5.25-inch, 2-sided, 9-sector
      FF     320K       5.25-inch, 2-sided, 8-sector
      FC     180K       5.25-inch, 1-sided, 9-sector
      FE     160K       5.25-inch, 1-sided, 8-sector
      FE     250K       8-inch, 1-sided, single-density
      FD     500K       8-inch, 2-sided, single-density
      FE     1.2 MB     8-inch, 2-sided, double-density
      F8     -----      Fixed disk
 
Edité par Visiteur Le 10/09/2015 à 12h34
   
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 10/09/2015 à 15h24
sylvain :
pour moi un hook et une adresse où un programme peut trouver une routine à exécuter


Hook veut dire crochet parce que c'est fait exprès pour détourner des routines en ROM ou pour y ajouter une petite routine particulière.



Quand on parle de zone de travail, cest relatif. Donc oui, de façon général ça englobe aussi les variables systèmes.
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 10/09/2015 à 15h59
GDX :


Hook veut dire crochet parce que c'est fait exprès pour détourner des routines en ROM ou pour y ajouter une petite routine particulière.



Quand on parle de zone de travail, cest relatif. Donc oui, de façon général ça englobe aussi les variables systèmes.




Oui ;) en fait j'ai écrit ma réponse à Bastion au même moment que tu répondais, je suis juste un peu lent pour poster :p

En fait on voulait dire la même chose. J'ai juste trouvé la doc sur l'adresse F355 DPBLST qui fait référence à une zone de travail des variables système.



Mais je pense que Bastion fait bien la différence, l'important c'est d'essayer de lui apporter une réponse sur la signification de la valeur de l'octet en F1A0. :)
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie