
'**********************************
'*                                *
'* INFODEMO                       *
'* Info. sur le disque par Info   *
'* -----------------------------  *
'*                                *
'* Auteur : Wolf-Gideon Bleek     *
'* Date   : July 11,1988          *
'* Version: 1.0                   *
'* Système d'expl  : V1.2 & V1.3  *
'*                                *
'**********************************


LIBRARY "T&A2:bmaps/dos.library"

DECLARE FUNCTION Lock& LIBRARY
DECLARE FUNCTION Info LIBRARY

LIBRARY "T&A2:bmaps/exec.library"

DECLARE FUNCTION AllocMem& LIBRARY

typ& = 2^16

Info& = AllocMem&(300&, typ&)

IF Info& <> 0 THEN

  PRINT "Entrez un nom de périphérique S.V.P."
  PRINT
  INPUT "Nom:";Dev$
  PRINT

  Dev$  = Dev$ + CHR$(0)
  DevL& = Lock&(SADD(Dev$), -2&)

  IF DevL& <> 0 THEN

    Status = Info(DevL&, Info&)

    i = 8
    WHILE(PEEK(Info&+i)<>0)
      PRINT CHR$(PEEK(Info&+i));
    WEND

    PRINT

    PRINT "Erreurs logicielles: ";PEEKL(Info&)
    PRINT "NO de l'unité: ";PEEKL(Info&+4)
    PRINT "Etat du disque: "; : st& = PEEKL(Info&+8)
    IF st& = 80 THEN PRINT "Protégé en écriture"
    IF st& = 81 THEN PRINT "Validé"
    IF st& = 82 THEN PRINT "Disque prêt"

    PRINT
    PRINT "Nb de blocs  : ";PEEKL(Info&+12)
    PRINT "Nb utilisé    : ";PEEKL(Info&+16)
    PRINT "Octets/bloc: ";PEEKL(Info&+20)
    PRINT "Type du disque   : "; : typ& = PEEKL(Info&+24)
    FOR i = 3 TO 0 STEP -1
      PRINT CHR$((typ& / 256^i) AND 255);
    NEXT i

    PRINT

    UnLock(DevL&)

  ELSE

    PRINT "Verrou impossible!"

  END IF

  CALL FreeMem(Info&, 300&)

ELSE

  PRINT "Pas de mémoire disponible--désolé!"

END IF
