home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / open / qbinters.lzh / SETDRIVE.BAS < prev    next >
BASIC Source File  |  1989-04-23  |  1KB  |  58 lines

  1. 'Sun  Apr 23, 1989   10:59:44 pm
  2. '*****************************************************************************
  3. 'This routine sets the default drive. It contains a function which reads the
  4. 'default drive, as well.
  5. '*****************************************************************************
  6.  
  7. TYPE RegType
  8.      ax    AS INTEGER
  9.      bx    AS INTEGER
  10.      cx    AS INTEGER
  11.      dx    AS INTEGER
  12.      bp    AS INTEGER
  13.      si    AS INTEGER
  14.      di    AS INTEGER
  15.      flags AS INTEGER
  16. END TYPE
  17.  
  18. DIM SHARED inregs AS RegType, outregs AS RegType
  19.  
  20. DECLARE SUB setdrive (drive$)
  21. DECLARE FUNCTION drive$ ()
  22.  
  23. setdrive "c:"
  24. PRINT drive$
  25.  
  26. FUNCTION drive$
  27.      inregs.ax = &H1900
  28.      CALL interrupt(&H21, inregs, outregs)
  29.      ah = FIX(outregs.ax / 256)
  30.      al = outregs.ax - (ah * 256)
  31.      SELECT CASE al
  32.         CASE 0: d$ = "A:"
  33.         CASE 1: d$ = "B:"
  34.         CASE 2: d$ = "C:"
  35.         CASE 3: d$ = "D:"
  36.         CASE 4: d$ = "E:"
  37.         CASE 5: d$ = "F:"
  38.         CASE 6: d$ = "G:"
  39.     END SELECT
  40.     drive$ = d$
  41. END FUNCTION
  42.  
  43. SUB setdrive (drive$)
  44.      d$ = UCASE$(LEFT$(drive$, 1))
  45.      SELECT CASE d$
  46.         CASE "A": d = 0
  47.         CASE "B": d = 1
  48.         CASE "C": d = 2
  49.         CASE "D": d = 3
  50.         CASE "E": d = 4
  51.         CASE "F": d = 5
  52.         CASE "G": d = 6
  53.      END SELECT
  54.      inregs.ax = &HE00: inregs.dx = d
  55.      CALL interrupt(&H21, inregs, outregs)
  56. END SUB
  57.  
  58.