'===========================================================================
' Subject: FIND COMPUTER DRIVE TYPES          Date: 07-18-99 (15:42)       
'  Author: Mesut Akcan                        Code: QB, PDS                
'  Origin: makcan@softhome.net              Packet: DISK.ABC
'===========================================================================
'  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·
'  ³  Program : Mesut AKCAN                           ÇÄÄ¿
'  ³                                                  º±±³
'  ³  End. Mes. Lisesi Ogretmeni Anamur-ICEL/TURKEY   º±±³
'  ³  http://makcan.cjb.net makcan@softhome.net       º±±³
'  ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¶±±³
'  ³  Find my computer drivers and type               º±±³
'  ³                                                  º±±³
'  ÔÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼±±³
'      ³±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±³
'      ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
'NOTE:   LOAD:  QB /L
'for QuickBasic v 4.5

'$INCLUDE: 'qb.bi'

DIM SHARED INREG AS RegType, OUTREG AS RegType
CLS
PRINT "Found Drivers and type"
PRINT "-------------------------"
FOR n = 1 TO 26          'All drivers (A-Z)
     INREG.ax = &H4408   'int 21h func. 44h subfunc. 8
     INREG.bx = n        'Driver ->  0-Active, 1-A, 2-B, 3-C ...
     INTERRUPT &H21, INREG, OUTREG
     c = OUTREG.ax       'return value
IF (OUTREG.flags AND 1) = 1 AND c = 1 THEN PRINT CHR$(64 + n); "Network drive": GOTO 1
     'if Carry Flag = 1 and AX=1 -> Network drive
     SELECT CASE c
          CASE 0
               PRINT CHR$(64 + n); ": (Removable)   "
          CASE 1
               PRINT CHR$(64 + n); ": (Device Fixed)"
          CASE 15
'              PRINT CHR$(64 + n); ": Invalid"

          CASE ELSE
               PRINT "Unknown case"
     END SELECT
1
NEXT
PRINT
