home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 03 / tricks / park.bas < prev    next >
Encoding:
BASIC Source File  |  1989-11-29  |  2.1 KB  |  85 lines

  1. DECLARE SUB DriveNum (Lw)
  2. DECLARE SUB ParkDisk (Lw)
  3. '* ------------------------------------------------------- *
  4. '*                      PARK.BAS                           *
  5. '*              Festplattenparkprogramm                    *
  6. '*       (c) 1990 Maximillian Dornseif & TOOLBOX           *
  7. '* ------------------------------------------------------- *
  8.  
  9. ' Achtung: Sie müssen QB mit der Option "/L" starten, um
  10. '          die mitgelieferten Assemblerroutinen einzubinden
  11.  
  12. TYPE Regs
  13.   ax AS INTEGER
  14.   bx AS INTEGER
  15.   cx AS INTEGER
  16.   dx AS INTEGER
  17.   bp AS INTEGER
  18.   si AS INTEGER
  19.   di AS INTEGER
  20.   flags AS INTEGER
  21.   ds AS INTEGER
  22.   es AS INTEGER
  23. END TYPE
  24.  
  25. DIM SHARED InRegs AS Regs
  26. DIM SHARED OutRegs AS Regs
  27.  
  28. PRINT "Festplatten Park Utility V 1.1"
  29. PRINT "(C) 1990 Maximillian Dornseif & TOOLBOX"
  30. PRINT
  31.  
  32. ' Anzahl der Festplatten feststellen
  33. CALL DriveNum(LwAnz)
  34.  
  35. SELECT CASE LwAnz
  36.   CASE 0
  37.     PRINT "Es sind Keine Festplattenlaufwerke vorhanden !"
  38.     END
  39.   CASE 1
  40.     CALL ParkDisk(0)
  41.     PRINT "Festplatte 01 geparkt."
  42.   CASE 2
  43.     CALL ParkDisk(1)
  44.     PRINT "Festplatte 01 geparkt."
  45.     CALL ParkDisk(2)
  46.     PRINT "Festplatte 02 geparkt."
  47. END SELECT
  48. PRINT
  49. PRINT "Schalten Sie nun Ihren Computer aus"
  50. PRINT "oder drücken Sie eine beliebige"
  51. PRINT "Taste, um zu DOS zurückzukehren."
  52. PRINT "Wenn Sie dies tun, ist jedoch"
  53. PRINT "das Parken der Festplatte";
  54. IF LwAnz > 1 THEN PRINT "n" ELSE PRINT
  55. PRINT "aufgehoben."
  56. PRINT
  57. WHILE INKEY$ = ""
  58. WEND
  59.  
  60. SUB DriveNum (Lw)
  61.  ' Gibt die Anzahl der Festplattenlaufwerke
  62.  ' in LW zurück
  63.   InRegs.ax = &H800
  64.   InRegs.dx = &H80
  65.   CALL INTERRUPTX(&H13, InRegs, OutRegs)
  66.   Lw = OutRegs.dx AND &HFF
  67. END SUB
  68.  
  69. SUB ParkDisk (Lw)
  70.  ' Parkt die Festplatte (0-1), die in LW übergeben wird
  71.  ' Eckdaten der Festplatte holen
  72.   InRegs.ax = &H800
  73.   InRegs.dx = &H80 + Lw
  74.   CALL INTERRUPT(&H13, InRegs, OutRegs)
  75.  
  76.   ' Kopf auf letzte Spur fahren
  77.   InRegs.ax = &HC00
  78.   InRegs.cx = OutRegs.cx
  79.   InRegs.dx = &H80 + Lw
  80.   CALL INTERRUPT(&H13, InRegs, OutRegs)
  81. END SUB
  82. '* ------------------------------------------------------- *
  83. '*                  Ende von PARK.BAS                      *
  84.  
  85.