home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / s / samdu.zip / SABDU001.TXT < prev    next >
Text File  |  1993-01-01  |  66KB  |  1,870 lines

  1. >>SABDU001
  2. ------------------ SABDU001.DLL API: OverView ------------------------
  3.  
  4.             Dynamic Load Library Routines
  5.  
  6. The SABDU001 Dynameic Load Library contains a set of routines for
  7. creating and manipulating diskette type objects.  The sets of routines
  8. are:
  9.     DiskDrive               This are the ones that are usually used.
  10.                             They operate at the logical level.
  11.  
  12.     DDrive                  Drive object
  13.     FDrive                  File object
  14.     MDrive                  Memory object
  15.     VDrive                  Virtual object
  16.  
  17.     DebugOut                Debugging routines
  18.  
  19.     HandleStatus            Callback routine used to communicate
  20.                             progress during long running operations
  21.                             (i.e. formatting a diskette) and status.
  22. >>DDrive
  23. ------------------ SABDU001.DLL API: DDrive objects ------------------
  24.  
  25.  A DDrive (Diskette Drive) is a specialized version of the VDrive
  26.  (Virtual Drive).  It is an object that represents a physical drive.
  27.  
  28.  The following functions are available to manipulate it:
  29.      DDriveCreate        Creates a DDrive object
  30.      DDriveDelete        Deletes a DDrive object
  31.      DDriveFormatTrack   Formats a track
  32.      DDriveForceReset    Issues a reset to the drive
  33.      DDriveReadSectors   Reads a group of sectors from the drive
  34.      DDriveReset         Issues a reset to the drive if it was used
  35.      DDriveSetRead       Sets up for reading from the drive
  36.      DDriveSetWrite      Sets up for writing to the drive
  37.      DDriveWriteSectors  Writes a group of sectors to the drive
  38. >>DDriveCreate
  39. ------------------ SABDU001.DLL API: DDriveCreate --------------------
  40.  
  41.  VOID far * FAR PASCAL DDriveCreate (
  42.                                      char cDrive
  43.                                     )
  44.  
  45.  Creates a DDrive object associated with drive cDrive and returns a
  46.  pointer to it.
  47.  
  48.  Example:
  49.          VOID far *pDriveA ;
  50.  
  51.          pDriveA = DDriveCreate ( 'A' ) ;
  52. >>DDriveDelete
  53. ------------------ SABDU001.DLL API: DDriveDelete --------------------
  54.  
  55.  VOID       FAR PASCAL DDriveDelete (
  56.                                      pDDrive
  57.                                     )
  58.  
  59.  Deletes the DDrive object pointed to by pDDrive.
  60.  
  61.  Example:
  62.          VOID far *pDriveA ;
  63.  
  64.          pDriveA = DDriveCreate ( 'A' ) ;
  65.          ...
  66.          DDriveDelete ( pDriveA ) ;
  67.          pDriveA = NULL ;
  68. >>DDriveSetRead
  69. ------------------ SABDU001.DLL API: DDriveSetRead -------------------
  70.  
  71.  UINT       FAR PASCAL DDriveSetRead (
  72.                                       VOID far *pDDrive,
  73.                                       UINT nTempType,
  74.                                       UINT nCylinders
  75.                                      )
  76.  
  77.  Prepares the DDrive object pointed to by pDDrive for reading.
  78.  
  79.  nTempType defines the type of diskette expected:
  80.            FD0360 FD0720 FD1200 FD1440 FD2880
  81.  
  82.  nCylinders defines the number of cylinders.
  83.  
  84.  Example:
  85.          VOID far *pDriveA ;
  86.  
  87.          pDriveA = DDriveCreate ( 'A' ) ;
  88.          ...
  89.          DDriveSetRead ( pDriveA, FD0360, NULL ) ;
  90. >>DDriveSetWrite
  91. ------------------ SABDU001.DLL API: DDriveSetWrite ------------------
  92.  
  93.  UINT       FAR PASCAL DDriveSetWrite (
  94.                                        VOID far *pDDrive,
  95.                                        UINT nTempType,
  96.                                        UINT nCylinders
  97.                                       )
  98.  
  99.  Prepares the DDrive object pointed to by pDDrive for writing.
  100.  
  101.  nTempType defines the type of diskette expected:
  102.            FD0360 FD0720 FD1200 FD1440 FD2880
  103.  
  104.  nCylinders defines the number of cylinders.
  105.  
  106.  Example:
  107.          VOID far *pDriveA ;
  108.  
  109.          pDriveA = DDriveCreate ( 'A' ) ;
  110.          ...
  111.          DDriveSetWrite ( pDriveA, FD0360, NULL ) ;
  112. >>DDriveReset
  113. ------------------ SABDU001.DLL API: DDriveReset ---------------------
  114.  
  115.  UINT       FAR PASCAL DDriveReset (
  116.                                     VOID far *pDDrive
  117.                                    )
  118.  
  119.  Resets the DDrive object pointed to by pDDrive.
  120.  
  121.  Example:
  122.          VOID far *pDriveA ;
  123.  
  124.          pDriveA = DDriveCreate ( 'A' ) ;
  125.          ...
  126.          DDriveReset ( pDriveA ) ;
  127. >>DDriveForceReset
  128. ------------------ SABDU001.DLL API: DDriveForceReset ----------------
  129.  
  130.  UINT       FAR PASCAL DDriveForceReset (
  131.                                          VOID far *pDDrive
  132.                                         )
  133.  
  134.  Resets the DDrive object pointed to by pDDrive.
  135.  
  136.  Example:
  137.          VOID far *pDriveA ;
  138.  
  139.          pDriveA = DDriveCreate ( 'A' ) ;
  140.          ...
  141.          DDriveForceReset ( pDriveA ) ;
  142. >>DDriveFormatTrack
  143. ------------------ SABDU001.DLL API: DDriveFormatTrack ---------------
  144.  
  145.  UINT       FAR PASCAL DDriveForceReset (
  146.                                          VOID far *pDDrive,
  147.                                          UNIT nCylinder,
  148.                                          UNIT nHead
  149.                                         )
  150.  
  151.  Formats the track pointed to by DDrive object pointer
  152.  
  153.  Example:
  154.          VOID far *pDriveA ;
  155.  
  156.          pDriveA = DDriveCreate ( 'A' ) ;
  157.          ...
  158.          DDriveFormatTrack ( pDriveA, nCylinder, nHead ) ;
  159. >>DDriveReadSectors
  160. ------------------ SABDU001.DLL API: DDriveReadSectors ---------------
  161.  
  162.  UINT       FAR PASCAL DDriveReadSectors (
  163.                                           VOID far *pDDrive,
  164.                                           UNIT nCylinder,
  165.                                           UNIT nHead,
  166.                                           UINT nSector,
  167.                                           UINT nCount,
  168.                                           LPBYTE lpcBuffer
  169.                                          )
  170.  
  171.  Reads a group of sectors from the drive pointerd to by pDDrive
  172.  
  173.  nCylinder     Cylinder to read from
  174.  nHead         Head to read with
  175.  nSector       Starting sector
  176.  nCount        Number of sectors to read
  177.  lpcBuffer     Buffer to contain the data read.
  178.  
  179.  Example:
  180.          VOID far *pDriveA ;
  181.  
  182.          pDriveA = DDriveCreate ( 'A' ) ;
  183.          ...
  184.          DDriveReadSectors ( pDriveA, nCylinder, nHead, nSector,
  185.                              nCount, lpcBuffer ) ;
  186. >>DDriveWriteSectors
  187. ------------------ SABDU001.DLL API: DDriveWriteSectors --------------
  188.  
  189.  UINT       FAR PASCAL DDriveWriteSectors (
  190.                                            VOID far *pDDrive,
  191.                                            UNIT nCylinder,
  192.                                            UNIT nHead,
  193.                                            UINT nSector,
  194.                                            UINT nCount,
  195.                                            LPBYTE lpcBuffer
  196.                                           )
  197.  
  198.  Writes a group of sectors from the drive pointerd to by pDDrive
  199.  
  200.  nCylinder     Cylinder to read from
  201.  nHead         Head to read with
  202.  nSector       Starting sector
  203.  nCount        Number of sectors to read
  204.  lpcBuffer     Buffer to contain the data read.
  205.  
  206.  Example:
  207.          VOID far *pDriveA ;
  208.  
  209.          pDriveA = DDriveCreate ( 'A' ) ;
  210.          ...
  211.          DDriveWriteSectors ( pDriveA, nCylinder, nHead, nSector,
  212.                               nCount, lpcBuffer ) ;
  213. >>DebugOut
  214. ------------------ SABDU001.DLL API: DebugOut objects ----------------
  215.  
  216.  A DebugOut object is a debugging aid:
  217.  
  218.  The following functions are available to manipulate it:
  219.      DebugOutCreate        Creates debug object
  220.      DebugOutOutputIf      Outputs a message
  221.      DebugOutScan          Scans command line for control information
  222.      DebugOutczDebugBuffer Returns pointer to debug buffer
  223. >>DebugOutCreate
  224. ------------------ SABDU001.DLL API: DebugOutCreate ------------------
  225.  
  226. VOID far * FAR PASCAL CEXPORT DebugOutCreate (
  227.                                               LPCSTR lpczCmdLine
  228.                                              ) ;
  229.  
  230.   Command line:
  231.                [/Dxxxxxxxx [/Myyyyyyyy] [/Ffilename]]
  232.  
  233.   xxxxxxxx is a hex string each bit of which can be used to control
  234.            the sending of trace messages
  235.  
  236.   yyyyyyyy is a hex string each bit of which indicates if a control
  237.            message should be displayed in a MessageBox
  238.  
  239.   filename trace file name
  240.  
  241.   Returns a pointer to a debug object.
  242.  
  243. >>DebugOutScan
  244. ------------------ SABDU001.DLL API: DebugOutScan --------------------
  245.  
  246. VOID       FAR PASCAL CEXPORT DebugOutScan   (
  247.                                               LPCSTR lpczCmdLine
  248.                                              ) ;
  249.  
  250.   Command line:
  251.                [/Dxxxxxxxx [/Myyyyyyyy] [/Ffilename]]
  252.  
  253.   xxxxxxxx is a hex string each bit of which can be used to control
  254.            the sending of trace messages
  255.  
  256.   yyyyyyyy is a hex string each bit of which indicates if a control
  257.            message should be displayed in a MessageBox
  258.  
  259.   filename trace file name
  260.  
  261. >>DebugOutOutputIf
  262. ------------------ SABDU001.DLL API: DebugOutOutputIf ----------------
  263.  
  264. VOID       FAR PASCAL CEXPORT DebugOutOutputIf (
  265.                                                 unsigned long ulDFlag,
  266.                                                 LPCSTR lpczText,
  267.                                                 LPCSTR lpczTitle,
  268.                                                 UINT nMFlags
  269.                                                ) ;
  270.  
  271.   ulDFlag is matched with /D and /M from command line to determine if
  272.   message should be output to trace or displayed in a MessageBox.
  273.  
  274.   lpczText  pointer to text of trace message
  275.   lpczTitle pointer to title of trace message
  276.   nMFlags   MessageBox flags
  277.  
  278. >>DebugOutczDebugBuffer
  279. ------------------ SABDU001.DLL API: DebugOutczDebugBuffer -----------
  280.  
  281. char far * FAR PASCAL CEXPORT DebugOutczDebugBuffer (
  282.                                                      VOID
  283.                                                     ) ;
  284.  
  285.   Returns pointer to debug buffer that can be used to format messages.
  286.  
  287. >>DiskDrive
  288. ------------------ SABDU001.DLL API: DiskDrive objects ---------------
  289.  
  290.  A DiskDrive is a wrapper that encapsolates a virtual (VDrive) object
  291.  and provides all of the functions needed to manipulate it
  292.  
  293.  The following functions are available to manipulate it:
  294.      DiskDriveCompare              Compares two DiskDrive objects
  295.      DiskDriveCopy                 Copies a DiskDrive object
  296.      DiskDriveCreateDrive          Creates a DiskDrive object
  297.      DiskDriveCreateFile           Creates a DiskDrive object
  298.      DiskDriveCreateMemory         Creates a DiskDrive object
  299.      DiskDriveCreateVDrive         Creates a DiskDrive object
  300.      DiskDriveDelete               Deletes a DiskDrive object
  301.      DiskDriveForceReset           Forces a reset of the assocated VDrive
  302.      DiskDriveFormat               Formats a DiskDrive object
  303.      DiskDriveFormatTrack          Formats a track
  304.      DiskDriveGetVolumeSerial      Gets the volume serial
  305.      DiskDriveHasData              Returns TRUE if object valid
  306.      DiskDriveIsTruncated          Returns TRUE if object is truncated
  307.      DiskDriveLetter               Returns DiskDrive object letter
  308.      DiskDriveReadSectors          Reads a group of sectors from DiskDrive
  309.      DiskDriveReset                Resets the associated VDrive if used
  310.      DiskDriveSetRead              Sets the associated VDrive for reading
  311.      DiskDriveSetType              Sets the type (density) of VDrive
  312.      DiskDriveSetVolumeSerial      Sets the volume serial
  313.      DiskDriveSetWrite             Sets the associated VDrive for writing
  314.      DiskDriveSetWriteFormatOption Turns on/off WriteFormatOption
  315.      DiskDriveSetWriteVerifyOption Turns on/off WriteVerifyOption
  316.      DiskDriveTruncate             Sets truncation mode on
  317.      DiskDriveTruncateReverse      Sets truncation mode off
  318.      DiskDriveType                 Returns type (density)
  319.      DiskDriveUsedCylinders        Returns cylinders used
  320.      DiskDriveUsedHeads            Returns heads used
  321.      DiskDriveUsedSectorSize       Returns sector size
  322.      DiskDriveUsedSectors          Returns sectors used
  323.      DiskDriveWriteBootSector      Writes boot sector of DiskDrive
  324.      DiskDriveWriteSectors         Writes a group of sectors to DiskDrive
  325. >>DiskDriveCreateDrive
  326. ------------------ SABDU001.DLL API: DiskDriveCreateDrive ------------
  327.  
  328.  UINT FAR PASCAL DiskDriveCreateDrive (
  329.                                        char cDrive
  330.                                        UINT nType,
  331.                                        UINT nCylinders,
  332.                                        lpfnHANDLESTATUS lpfnNewHandleStatus
  333.                                       )
  334.  
  335.       nType = FD0360
  336.               FD0720
  337.               FD1200
  338.               FD1200H
  339.               FD1440
  340.               FD1440H
  341.               FD2880
  342.  
  343.       lpfnNewHandleStatus points to a callback routine that handles event
  344.       notifications including errors.
  345.  
  346.   Creates a DiskDrive object using a physical drive as the base for the
  347.   VDrive object within it.
  348.  
  349.   Returns pointer to DiskDrive object.
  350.  
  351.   Example:
  352.          VOID far *pDiskDriveA ;
  353.  
  354.          FARPROC lpfnNewHandleStatus ;
  355.  
  356.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  357.                                                   NewHandleStatus ) ;
  358.  
  359.          pDiskDriveA = DiskDriveCreateDrive (
  360.                                              'A',
  361.                                              FD1200,
  362.                                              80,
  363.                                              lpfnNewHandleStatus
  364.                                             )
  365. >>DiskDriveCreateMemory
  366. ------------------ SABDU001.DLL API: DiskDriveCreateMemory -----------
  367.  
  368.  UINT FAR PASCAL DiskDriveCreateMemory (
  369.                                         UINT nMemory
  370.                                         UINT nType,
  371.                                         UINT nCylinders,
  372.                                         lpfnHANDLESTATUS lpfnNewHandleStatus
  373.                                        )
  374.  
  375.       nType = FD0360
  376.               FD0720
  377.               FD1200
  378.               FD1200H
  379.               FD1440
  380.               FD1440H
  381.               FD2880
  382.  
  383.       lpfnNewHandleStatus points to a callback routine that handles event
  384.       notifications including errors.
  385.  
  386.   Creates a DiskDrive object using a memory object as the base for the
  387.   VDrive object within it.
  388.  
  389.   Returns pointer to DiskDrive object.
  390.  
  391.   Example:
  392.          VOID far *pDiskDriveA ;
  393.  
  394.          FARPROC lpfnNewHandleStatus ;
  395.  
  396.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  397.                                                   NewHandleStatus ) ;
  398.  
  399.          pDiskDriveA = DiskDriveCreateMemory (
  400.                                               1,
  401.                                               FD1200,
  402.                                               80,
  403.                                               lpfnNewHandleStatus
  404.                                              )
  405. >>DiskDriveCreateFile
  406. ------------------ SABDU001.DLL API: DiskDriveCreateFile -------------
  407.  
  408.  UINT FAR PASCAL DiskDriveCreateFile (
  409.                                       LPCSTR lpczFileName,
  410.                                       LPCSTR lpczApplicationTitle,
  411.                                       LPCSTR lpczVersion,
  412.                                       UINT nType,
  413.                                       UINT nCylinders,
  414.                                       lpfnHANDLESTATUS lpfnNewHandleStatus
  415.                                      )
  416.  
  417.       nType = FD0360
  418.               FD0720
  419.               FD1200
  420.               FD1200H
  421.               FD1440
  422.               FD1440H
  423.               FD2880
  424.  
  425.       lpfnNewHandleStatus points to a callback routine that handles event
  426.       notifications including errors.
  427.  
  428.   Creates a DiskDrive object using a file object as the base for the
  429.   VDrive object within it.
  430.  
  431.   Returns pointer to DiskDrive object.
  432.  
  433.   Example:
  434.          VOID far *pDiskDriveA ;
  435.  
  436.          FARPROC lpfnNewHandleStatus ;
  437.  
  438.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  439.                                                   NewHandleStatus ) ;
  440.  
  441.          pDiskDriveA = DiskDriveCreateFile (
  442.                                             "FileName.SD",
  443.                                             "SAB Diskette Utility",
  444.                                             "2.00",
  445.                                             FD1200,
  446.                                             80,
  447.                                             lpfnNewHandleStatus
  448.                                            )
  449. >>DiskDriveCreateVDrive
  450. ------------------ SABDU001.DLL API: DiskDriveCreateVDrive -----------
  451.  
  452.  UINT FAR PASCAL DiskDriveCreateVDrive (
  453.                                         VOID far * pVDrive,
  454.                                         UINT nType,
  455.                                         UINT nCylinders,
  456.                                         lpfnHANDLESTATUS lpfnNewHandleStatus
  457.                                        )
  458.  
  459.       nType = FD0360
  460.               FD0720
  461.               FD1200
  462.               FD1200H
  463.               FD1440
  464.               FD1440H
  465.               FD2880
  466.  
  467.       lpfnNewHandleStatus points to a callback routine that handles event
  468.       notifications including errors.
  469.  
  470.   Creates a DiskDrive object using a virtual drive object as the
  471.   base for the VDrive object within it.
  472.  
  473.   Returns pointer to DiskDrive object.
  474.  
  475.   Example:
  476.          VOID far *pDiskDriveA ;
  477.          VOID far *pVDriveA ;
  478.  
  479.          FARPROC lpfnNewHandleStatus ;
  480.  
  481.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  482.                                                   NewHandleStatus ) ;
  483.          pVDriveA = DDriveDrive ( 'A' ) ;
  484.  
  485.          pDiskDriveA = DiskDriveCreateVDrive (
  486.                                               pVDriveA,
  487.                                               FD1200,
  488.                                               80,
  489.                                               lpfnNewHandleStatus
  490.                                              )
  491. >>DiskDriveDelete
  492. ------------------ SABDU001.DLL API: DiskDriveDelete -----------------
  493.  
  494.  UINT FAR PASCAL DiskDriveDelete (
  495.                                   VOID far * pCDrive,
  496.                                  )
  497.  
  498.   Deletes a DiskDrive object.
  499.  
  500.   Example:
  501.          VOID far *pDiskDriveA ;
  502.          VOID far *pVDriveA ;
  503.  
  504.          FARPROC lpfnNewHandleStatus ;
  505.  
  506.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  507.                                                   NewHandleStatus ) ;
  508.          pVDriveA = DDriveDrive ( 'A' ) ;
  509.  
  510.          pDiskDriveA = DiskDriveCreateVDrive ( pVDriveA )
  511.  
  512.          ...
  513.  
  514.          DiskDriveDelete ( pDiskDriveA ) ;
  515.          pDiskDriveA = NULL ;
  516.  
  517. >>DiskDriveCopy
  518. ------------------ SABDU001.DLL API: DiskDriveCopy -------------------
  519.  
  520.  UINT FAR PASCAL DiskDriveCopy (
  521.                                 VOID far * pDiskDriveTarget,
  522.                                 VOID far * pDiskDriveSource
  523.                                )
  524.  
  525.   Copies a DiskDrive object ;
  526.  
  527.   Example:
  528.          VOID far *pDiskDriveA ;
  529.          VOID far *pDiskDriveB ;
  530.  
  531.          FARPROC lpfnNewHandleStatus ;
  532.  
  533.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  534.                                                   NewHandleStatus ) ;
  535.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  536.                                               lpfnNewHandleStatus ) ;
  537.          pDiskDriveB = DiskDriveCreateDrive ( 'B',
  538.                                               DiskDriveType( pDiskDriveA ),
  539.                                               0, lpfnNewHandleStatus ) ;
  540.          DiskDriveCopy ( pDiskDriveB, pDiskDriveA ) ;
  541. >>DiskDriveCompare
  542. ------------------ SABDU001.DLL API: DiskDriveCompare ----------------
  543.  
  544.  UINT FAR PASCAL DiskDriveCompare (
  545.                                    VOID far * pDiskDriveTarget,
  546.                                    VOID far * pDiskDriveSource
  547.                                   )
  548.  
  549.   Compares two DiskDrive objects.
  550.  
  551.   Returns TRUE if they are the same.
  552.  
  553.   Example:
  554.          VOID far *pDiskDriveA ;
  555.          VOID far *pDiskDriveB ;
  556.  
  557.          FARPROC lpfnNewHandleStatus ;
  558.  
  559.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  560.                                                   NewHandleStatus ) ;
  561.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  562.                                               lpfnNewHandleStatus ) ;
  563.          pDiskDriveB = DiskDriveCreateDrive ( 'B',
  564.                                               DiskDriveType( pDiskDriveA ),
  565.                                               0, lpfnNewHandleStatus ) ;
  566.          DiskDriveCompare ( pDiskDriveB, pDiskDriveA ) ;
  567. >>DiskDriveFormatTrack
  568. ------------------ SABDU001.DLL API: DiskDriveFormatTrack ------------
  569.  
  570.  UINT FAR PASCAL DiskDriveFormatTrack (
  571.                                        VOID far * pDiskDrive,
  572.                                        UINT nCylinder,
  573.                                        UINT nHead,
  574.                                        lpfnHANDLESTATUS lpfnHandleStatus
  575.                                       )
  576.  
  577.   Formats a track.
  578.  
  579.   Returns FALSE if successfull
  580.  
  581.   Example:
  582.          VOID far *pDiskDriveA ;
  583.  
  584.          FARPROC lpfnNewHandleStatus ;
  585.  
  586.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  587.                                                   NewHandleStatus ) ;
  588.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1200, 80,
  589.                                               lpfnNewHandleStatus ) ;
  590.          DiskDriveFormatTrack ( pDiskDriveB, 0, 1,
  591.                                 lpfnNewHandleStatus ) ;
  592. >>DiskDriveReadSectors
  593. ------------------ SABDU001.DLL API: DiskDriveReadSectors ------------
  594.  
  595.  UINT FAR PASCAL DiskDriveReadSectors (
  596.                                        VOID far * pDiskDrive,
  597.                                        UINT nCylinder,
  598.                                        UINT nHead,
  599.                                        UINT nSector,
  600.                                        UINT nCount,
  601.                                        LPBYTE lpbyBuffer,
  602.                                        lpfnHANDLESTATUS lpfnHandleStatus
  603.                                       )
  604.  
  605.   Reads a group of sectors.
  606.  
  607.   Returns FALSE if successfull
  608.  
  609.   Example:
  610.          VOID far *pDiskDriveA ;
  611.  
  612.          FARPROC lpfnNewHandleStatus ;
  613.  
  614.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  615.                                                   NewHandleStatus ) ;
  616.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  617.                                               lpfnNewHandleStatus ) ;
  618.          DiskDriveReadSectors ( pDiskDriveA, 0, 1, 0, 18,
  619.                                 lpfnNewHandleStatus ) ;
  620. >>DiskDriveWriteSectors
  621. ------------------ SABDU001.DLL API: DiskDriveWriteSectors -----------
  622.  
  623.  UINT FAR PASCAL DiskDriveWriteSectors (
  624.                                         VOID far * pDiskDrive,
  625.                                         UINT nCylinder,
  626.                                         UINT nHead,
  627.                                         UINT nSector,
  628.                                         UINT nCount,
  629.                                         LPBYTE lpbyBuffer,
  630.                                         lpfnHANDLESTATUS lpfnHandleStatus
  631.                                        )
  632.  
  633.   Writes a group of sectors.
  634.  
  635.   Returns FALSE if successfull
  636.  
  637.   Example:
  638.          VOID far *pDiskDriveA ;
  639.  
  640.          FARPROC lpfnNewHandleStatus ;
  641.  
  642.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  643.                                                   NewHandleStatus ) ;
  644.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  645.                                               lpfnNewHandleStatus ) ;
  646.          DiskDriveWriteSectors ( pDiskDriveA, 0, 1, 0, 18,
  647.                                  lpfnNewHandleStatus ) ;
  648. >>DiskDriveLetter
  649. ------------------ SABDU001.DLL API: DiskDriveWriteLetter ------------
  650.  
  651.  UINT FAR PASCAL DiskDriveLetter (
  652.                                   VOID far * pDiskDrive,
  653.                                  )
  654.  
  655.   Returns letter of virtual drive.
  656.  
  657.   Example:
  658.          VOID far *pDiskDriveA ;
  659.  
  660.          char cDriveLetter ;
  661.  
  662.          FARPROC lpfnNewHandleStatus ;
  663.  
  664.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  665.                                                   NewHandleStatus ) ;
  666.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  667.                                               lpfnNewHandleStatus ) ;
  668.          ...
  669.          cDriveLetter = DiskDriveLetter ( pDiskDriveA ) ;
  670. >>DiskDriveSetRead
  671. ------------------ SABDU001.DLL API: DiskDriveSetRead ---------------
  672.  
  673.  UINT FAR PASCAL DiskDriveSetRead (
  674.                                    VOID far * pDiskDrive,
  675.                                    UINT nTempType,
  676.                                    UINT nCylinders
  677.                                   )
  678.  
  679.   Sets contained virtual drive for reading.
  680.  
  681.   Example:
  682.          VOID far *pDiskDriveA ;
  683.  
  684.          char cDriveLetter ;
  685.  
  686.          FARPROC lpfnNewHandleStatus ;
  687.  
  688.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  689.                                                   NewHandleStatus ) ;
  690.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  691.                                               lpfnNewHandleStatus ) ;
  692.          ...
  693.          DiskDriveSetRead ( pDiskDriveA, nTempType, nCylinders ) ;
  694. >>DiskDriveSetWrite
  695. ------------------ SABDU001.DLL API: DiskDriveSetWrite---------------
  696.  
  697.  UINT FAR PASCAL DiskDriveSetWrite (
  698.                                     VOID far * pDiskDrive,
  699.                                     UINT nTempType,
  700.                                     UINT nCylinders
  701.                                    )
  702.  
  703.   Sets contained virtual drive for writing.
  704.  
  705.   Example:
  706.          VOID far *pDiskDriveA ;
  707.  
  708.          char cDriveLetter ;
  709.  
  710.          FARPROC lpfnNewHandleStatus  ;
  711.  
  712.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  713.                                                   NewHandleStatus ) ;
  714.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  715.                                               lpfnNewHandleStatus ) ;
  716.          ...
  717.          DiskDriveSetWrite ( pDiskDriveA, nTempType, nCylinders ) ;
  718. >>DiskDriveSetWriteFormatOption
  719. ------------------ SABDU001.DLL API: DiskDriveSetWriteFormatOption --
  720.  
  721.  UINT FAR PASCAL DiskDriveSetWriteFormatOption (
  722.                                                 VOID far * pDiskDrive,
  723.                                                 UINT nWriteFormatOptionNew
  724.                                                )
  725.  
  726.   nWriteFormatOptionNew
  727.       1                 AUTOMATIC
  728.       2                 ALWAYS
  729.       3                 NEVER
  730.       4                 FAST
  731.  
  732.   Sets write format option.
  733.  
  734.   Example:
  735.          VOID far *pDiskDriveA ;
  736.  
  737.          char cDriveLetter ;
  738.  
  739.          FARPROC lpfnNewHandleStatus ;
  740.  
  741.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  742.                                                   NewHandleStatus ) ;
  743.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  744.                                               lpfnNewHandleStatus ) ;
  745.          ...
  746.          DiskDriveSetWriteFormatOption ( pDiskDriveA, AUTOMATIC ) ;
  747. >>DiskDriveSetWriteVerifyOption
  748. ------------------ SABDU001.DLL API: DiskDriveSetWriteVerifyOption --
  749.  
  750.  UINT FAR PASCAL DiskDriveSetWriteVerifyOption (
  751.                                                 VOID far * pDiskDrive,
  752.                                                 BOOL bWriteVerifyOptionNew
  753.                                                )
  754.  
  755.   Sets write verify option.
  756.  
  757.   Example:
  758.          VOID far *pDiskDriveA ;
  759.  
  760.          char cDriveLetter ;
  761.  
  762.          FARPROC lpfnNewHandleStatus ;
  763.  
  764.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  765.                                                   NewHandleStatus ) ;
  766.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  767.                                               lpfnNewHandleStatus ) ;
  768.          ...
  769.          DiskDriveSetWriteVerifyOption ( pDiskDriveA, TRUE ) ;
  770. >>DiskDriveReset
  771. ------------------ SABDU001.DLL API: DiskDriveReset ------------------
  772.  
  773.  UINT FAR PASCAL DiskDriveReset (
  774.                                  VOID far * pDiskDrive
  775.                                 )
  776.  
  777.   Resets virtual drive
  778.  
  779.   Example:
  780.          VOID far *pDiskDriveA ;
  781.  
  782.          char cDriveLetter ;
  783.  
  784.          FARPROC lpfnNewHandleStatus ;
  785.  
  786.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  787.                                                   NewHandleStatus ) ;
  788.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  789.                                               lpfnNewHandleStatus ) ;
  790.          ...
  791.          DiskDriveReset ( pDiskDriveA ) ;
  792. >>DiskDriveForceReset
  793. ------------------ SABDU001.DLL API: DiskDriveForceReset -------------
  794.  
  795.  UINT FAR PASCAL DiskDriveForceReset (
  796.                                       VOID far * pDiskDrive
  797.                                      )
  798.  
  799.   Forces reset of virtual drive
  800.  
  801.   Example:
  802.          VOID far *pDiskDriveA ;
  803.  
  804.          char cDriveLetter ;
  805.  
  806.          FARPROC lpfnNewHandleStatus ;
  807.  
  808.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  809.                                                   NewHandleStatus ) ;
  810.          pDiskDriveA = DiskDriveCreateDrive ( 'A', FD1440, 0,
  811.                                               lpfnNewHandleStatus ) ;
  812.          ...
  813.          DiskDriveForceReset ( pDiskDriveA ) ;
  814. >>DiskDriveType
  815. ------------------ SABDU001.DLL API: DiskDriveType -------------------
  816.  
  817.  UINT FAR PASCAL DiskDriveType (
  818.                                 VOID far * pDiskDrive
  819.                                )
  820.  
  821.   Returns type ( density ).
  822.  
  823.   Example:
  824.          VOID far *pDiskDriveA ;
  825.  
  826.          char cDriveLetter ;
  827.  
  828.          FARPROC lpfnNewHandleStatus ;
  829.  
  830.          UINT nType ;
  831.  
  832.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  833.                                                   NewHandleStatus ) ;
  834.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  835.                                               lpfnNewHandleStatus ) ;
  836.          ...
  837.          nType = DiskDriveType ( pDiskDriveA ) ;
  838. >>DiskDriveHasData
  839. ------------------ SABDU001.DLL API: DiskDriveHasData ----------------
  840.  
  841.  UINT FAR PASCAL DiskDriveHasData (
  842.                                    VOID far * pDiskDrive
  843.                                   )
  844.  
  845.   Returns TRUE if DiskDrive is valid object.
  846.  
  847.   Example:
  848.          VOID far *pDiskDriveA ;
  849.  
  850.          FARPROC lpfnNewHandleStatus ;
  851.  
  852.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  853.                                                   NewHandleStatus ) ;
  854.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  855.                                               lpfnNewHandleStatus ) ;
  856.          ...
  857.          if ( DiskDriveHasData ( pDiskDriveA ) ) ...;
  858. >>DiskDriveIsTruncated
  859. ------------------ SABDU001.DLL API: DiskDriveIsTruncated ------------
  860.  
  861.  UINT FAR PASCAL DiskDriveIsTruncated (
  862.                                        VOID far * pDiskDrive
  863.                                       )
  864.  
  865.   Returns TRUE if DiskDrive is truncated.
  866.  
  867.   Example:
  868.          VOID far *pDiskDriveA ;
  869.  
  870.          FARPROC lpfnNewHandleStatus ;
  871.  
  872.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  873.                                                   NewHandleStatus ) ;
  874.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  875.                                               lpfnNewHandleStatus ) ;
  876.          ...
  877.          if ( DiskDriveIsTruncated ( pDiskDriveA ) ) ...;
  878. >>DiskDriveFormat
  879. ------------------ SABDU001.DLL API: DiskDriveFormat -----------------
  880.  
  881.  UINT FAR PASCAL DiskDriveFormat (
  882.                                   VOID far * pDiskDrive,
  883.                                   LPCSTR lpczVolumeSerial,
  884.                                   UNIT nFormatOption,
  885.                                   LPBYTE lpbyBootSector,
  886.                                   lpfnHANDLESTATUS lpfnHandleStatus
  887.                                  )
  888.  
  889.   Returns FALSE if successfull.
  890.  
  891.   Example:
  892.          VOID far *pDiskDriveA ;
  893.  
  894.          char cDriveLetter ;
  895.  
  896.          FARPROC lpfnNewHandleStatus ;
  897.  
  898.          UINT nType ;
  899.  
  900.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  901.                                                   NewHandleStatus ) ;
  902.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  903.                                               lpfnNewHandleStatus ) ;
  904.          ...
  905.          DiskDriveFormat ( pDiskDriveA, "VOL 1", FORMATFAST, NULL, NULL ) ;
  906. >>DiskDriveSetType
  907. ------------------ SABDU001.DLL API: DiskDriveSetType ----------------
  908.  
  909.  UINT FAR PASCAL DiskDriveSetType (
  910.                                    VOID far * pDiskDrive,
  911.                                    UINT nNewType
  912.                                   )
  913.  
  914.   Example:
  915.          VOID far *pDiskDriveA ;
  916.  
  917.          char cDriveLetter ;
  918.  
  919.          FARPROC lpfnNewHandleStatus ;
  920.  
  921.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  922.                                                   NewHandleStatus ) ;
  923.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  924.                                               lpfnNewHandleStatus ) ;
  925.          ...
  926.          DiskDriveSetType ( pDiskDriveA, FD1200 ) ;
  927. >>DiskDriveUsedCylinders
  928. ------------------ SABDU001.DLL API: DiskDriveUsedCylinders ----------
  929.  
  930.  UINT FAR PASCAL DiskDriveUsedCylinders (
  931.                                          VOID far * pDiskDrive
  932.                                          )
  933.  
  934.   Returns number of cylinders.
  935.  
  936.   Example:
  937.          VOID far *pDiskDriveA ;
  938.  
  939.          char cDriveLetter ;
  940.  
  941.          FARPROC lpfnNewHandleStatus ;
  942.  
  943.          UINT nCylinder ;
  944.  
  945.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  946.                                                   NewHandleStatus ) ;
  947.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  948.                                               lpfnNewHandleStatus ) ;
  949.          ...
  950.          nCylinder = DiskDriveUsedCylinders ( pDiskDriveA ) ;
  951. >>DiskDriveUsedHeads
  952. ------------------ SABDU001.DLL API: DiskDriveHeads ------------------
  953.  
  954.  UINT FAR PASCAL DiskDriveUsedHeads (
  955.                                      VOID far * pDiskDrive
  956.                                     )
  957.  
  958.   Returns number of heads.
  959.  
  960.   Example:
  961.          VOID far *pDiskDriveA ;
  962.  
  963.          char cDriveLetter ;
  964.  
  965.          FARPROC lpfnNewHandleStatus ;
  966.  
  967.          UINT nHeads ;
  968.  
  969.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  970.                                                   NewHandleStatus ) ;
  971.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  972.                                               lpfnNewHandleStatus ) ;
  973.          ...
  974.          nHeads = DiskDriveUsedHeads ( pDiskDriveA ) ;
  975. >>DiskDriveUsedSectors
  976. ------------------ SABDU001.DLL API: DiskDriveUsedSectors ------------
  977.  
  978.  UINT FAR PASCAL DiskDriveUsedSectors (
  979.                                        VOID far * pDiskDrive
  980.                                       )
  981.  
  982.   Returns number of sectors in a track.
  983.  
  984.   Example:
  985.          VOID far *pDiskDriveA ;
  986.  
  987.          char cDriveLetter ;
  988.  
  989.          FARPROC lpfnNewHandleStatus ;
  990.  
  991.          UINT nSectors ;
  992.  
  993.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  994.                                                   NewHandleStatus ) ;
  995.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  996.                                               lpfnNewHandleStatus ) ;
  997.          ...
  998.          nSectors = DiskDriveUsedSectors ( pDiskDriveA ) ;
  999. >>DiskDriveUsedSectorSize
  1000. ------------------ SABDU001.DLL API: DiskDriveUsedSectorSize----------
  1001.  
  1002.  UINT FAR PASCAL DiskDriveUsedSectorSize (
  1003.                                           VOID far * pDiskDrive
  1004.                                          )
  1005.  
  1006.   Returns sector size.
  1007.  
  1008.   Example:
  1009.          VOID far *pDiskDriveA ;
  1010.  
  1011.          LPSTR *lpczOldVolumeSerial ;
  1012.  
  1013.          FARPROC lpfnNewHandleStatus ;
  1014.  
  1015.          UINT nSectorSize ;
  1016.  
  1017.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1018.                                                   NewHandleStatus ) ;
  1019.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1020.                                               lpfnNewHandleStatus ) ;
  1021.          ...
  1022.          nSectorSize = DiskDriveUsedSectorSize ( pDiskDriveA ) ;
  1023. >>DiskDriveGetVolumeSerial
  1024. ------------------ SABDU001.DLL API: DiskDriveGetVolumeSerial --------
  1025.  
  1026.  UINT FAR PASCAL DiskDriveGetVolumeSerial (
  1027.                                            VOID far * pDiskDrive,
  1028.                                            LPSTR lpczOldVolumeSerial
  1029.                                           )
  1030.  
  1031.   Example:
  1032.          VOID far *pDiskDriveA ;
  1033.  
  1034.          char cDriveLetter ;
  1035.  
  1036.          FARPROC lpfnNewHandleStatus ;
  1037.  
  1038.          UINT nType ;
  1039.  
  1040.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1041.                                                   NewHandleStatus ) ;
  1042.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1043.                                               lpfnNewHandleStatus ) ;
  1044.          ...
  1045.          DiskDriveGetVolumeSerial ( pDiskDriveA, lpczOldVolumeSerial ) ;
  1046. >>DiskDriveSetVolumeSerial
  1047. ------------------ SABDU001.DLL API: DiskDriveSetVolumeSerial --------
  1048.  
  1049.  UINT FAR PASCAL DiskDriveSetVolumeSerial (
  1050.                                            VOID far * pDiskDrive,
  1051.                                            LPSTR lpczNewVolumeSerial
  1052.                                           )
  1053.  
  1054.   Returns FALSE if successfull.
  1055.  
  1056.   Example:
  1057.          VOID far *pDiskDriveA ;
  1058.  
  1059.          FARPROC lpfnNewHandleStatus ;
  1060.  
  1061.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1062.                                                   NewHandleStatus ) ;
  1063.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1064.                                               lpfnNewHandleStatus ) ;
  1065.          ...
  1066.          DiskDriveSetVolumeSerial ( pDiskDriveA, "Vol 1" ) ;
  1067. >>DiskDriveTruncate
  1068. ------------------ SABDU001.DLL API: DiskDriveTruncate ---------------
  1069.  
  1070.  UINT FAR PASCAL DiskDriveTruncate (
  1071.                                     VOID far * pDiskDrive
  1072.                                    )
  1073.  
  1074.   Turns on truncation.
  1075.  
  1076.   Example:
  1077.          VOID far *pDiskDriveA ;
  1078.  
  1079.          FARPROC lpfnNewHandleStatus ;
  1080.  
  1081.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1082.                                                   NewHandleStatus ) ;
  1083.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1084.                                               lpfnNewHandleStatus ) ;
  1085.          ...
  1086.          DiskDriveTypeTruncate ( pDiskDriveA ) ;
  1087. >>DiskDriveTruncateRevers
  1088. ------------------ SABDU001.DLL API: DiskDriveTruncateReverse --------
  1089.  
  1090.  UINT FAR PASCAL DiskDriveTruncateReverse (
  1091.                                            VOID far * pDiskDrive
  1092.                                           )
  1093.  
  1094.   Turns off truncation.
  1095.  
  1096.   Example:
  1097.          VOID far *pDiskDriveA ;
  1098.  
  1099.          FARPROC lpfnNewHandleStatus ;
  1100.  
  1101.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1102.                                                   NewHandleStatus ) ;
  1103.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1104.                                               lpfnNewHandleStatus ) ;
  1105.          ...
  1106.          DiskDriveTruncateReverse ( pDiskDriveA ) ;
  1107. >>DiskDriveWriteBootSector
  1108. ------------------ SABDU001.DLL API: DiskDriveWriteBootSector --------
  1109.  
  1110.  UINT FAR PASCAL DiskDriveWriteBootSector (
  1111.                                            VOID far * pDiskDrive,
  1112.                                            lpbyModelBootSector,
  1113.                                lpfnHANDLESTATUS lpfnNewHandleStatus
  1114.                               )
  1115.  
  1116.   Returns false if successfull.
  1117.  
  1118.   Example:
  1119.          VOID far *pDiskDriveA ;
  1120.  
  1121.          FARPROC lpfnNewHandleStatus ;
  1122.  
  1123.          lpfnNewHandleStatus = MakeProcInstance ( hInstance,
  1124.                                                   NewHandleStatus ) ;
  1125.          pDiskDriveA = DiskDriveCreateDrive ( 'A', 0, 0,
  1126.                                               lpfnNewHandleStatus ) ;
  1127.          ...
  1128.          DiskDriveTypeWriteBootSector ( pDiskDriveA, NULL, NULL ) ;
  1129. >>FDrive
  1130. ------------------ SABDU001.DLL API: FDrive objects ------------------
  1131.  
  1132.  A FDrive (File Drive) is a specialized version of the VDrive
  1133.  (Virtual Drive).  It is an object that represents a diskette image
  1134.  file.
  1135.  
  1136.  The following functions are available to manipulate it:
  1137.      FDriveCreate        Creates a FDrive object
  1138.      FDriveDelete        Deletes a FDrive object
  1139.      FDriveForceReset    Issues a reset to the drive
  1140.      FDriveFormatTrack   Formats a track
  1141.      FDriveReadSectors   Reads a group of sectors from the drive
  1142.      FDriveReset         Issues a reset to the drive if it was used
  1143.      FDriveSetRead       Sets up for reading from the drive
  1144.      FDriveSetWrite      Sets up for writing to the drive
  1145.      FDriveWriteSectors  Writes a group of sectors to the drive
  1146. >>FDriveCreate
  1147. ------------------ SABDU001.DLL API: FDriveCreate --------------------
  1148.  
  1149.  VOID far * FAR PASCAL FDriveCreate (
  1150.                                      LPCSTR lpczFileName,
  1151.                                      LPCSTR lpczApplicationTitle,
  1152.                                      LPCSTR lpczVersion
  1153.                                     )
  1154.  
  1155.  Creates a FDrive object associated with drive cDrive and returns a
  1156.  pointer to it.
  1157.  
  1158.  Example:
  1159.          VOID far *pDriveA ;
  1160.  
  1161.          pDrive = FDriveCreate (
  1162.                                 "MyFileName",
  1163.                                 "SAB Diskette Utility",
  1164.                                 "2.10"
  1165.                                ) ;
  1166. >>FDriveDelete
  1167. ------------------ SABDU001.DLL API: FDriveDelete --------------------
  1168.  
  1169.  VOID       FAR PASCAL FDriveDelete (
  1170.                                      pFDrive
  1171.                                     )
  1172.  
  1173.  Deletes the FDrive object pointed to by pFDrive.
  1174.  
  1175.  Example:
  1176.          VOID far *pDriveA ;
  1177.  
  1178.          pDrive = FDriveCreate (
  1179.                                 "MyFileName",
  1180.                                 "SAB Diskette Utility",
  1181.                                 "2.10"
  1182.                                ) ;
  1183.          ...
  1184.          FDriveDelete ( pDrive ) ;
  1185.          pDrive = NULL ;
  1186. >>FDriveSetRead
  1187. ------------------ SABDU001.DLL API: FDriveSetRead -------------------
  1188.  
  1189.  UINT       FAR PASCAL FDriveSetRead (
  1190.                                       VOID far *pFDrive,
  1191.                                       UINT nTempType,
  1192.                                       UINT nCylinders
  1193.                                      )
  1194.  
  1195.  Prepares the FDrive object pointed to by pFDrive for reading.
  1196.  
  1197.  nTempType defines the type of diskette expected:
  1198.            FD0360 FD0720 FD1200 FD1440 FD2880
  1199.  
  1200.  nCylinders defines the number of cylinders.
  1201.  
  1202.  Example:
  1203.          VOID far *pDriveA ;
  1204.  
  1205.          pDrive = FDriveCreate (
  1206.                                 "MyFileName",
  1207.                                 "SAB Diskette Utility",
  1208.                                 "2.10"
  1209.                                ) ;
  1210.          ...
  1211.          FDriveSetRead ( pDrive, FD0360, NULL ) ;
  1212. >>FDriveSetWrite
  1213. ------------------ SABDU001.DLL API: FDriveSetWrite ------------------
  1214.  
  1215.  UINT       FAR PASCAL FDriveSetWrite (
  1216.                                        VOID far *pFDrive,
  1217.                                        UINT nTempType,
  1218.                                        UINT nCylinders
  1219.                                       )
  1220.  
  1221.  Prepares the FDrive object pointed to by pFDrive for writing.
  1222.  
  1223.  nTempType defines the type of diskette expected:
  1224.            FD0360 FD0720 FD1200 FD1440 FD2880
  1225.  
  1226.  nCylinders defines the number of cylinders.
  1227.  
  1228.  Example:
  1229.          VOID far *pDriveA ;
  1230.  
  1231.          pDrive = FDriveCreate (
  1232.                                 "MyFileName",
  1233.                                 "SAB Diskette Utility",
  1234.                                 "2.10"
  1235.                                ) ;
  1236.          ...
  1237.          FDriveSetWrite ( pDrive, FD0360, NULL ) ;
  1238. >>FDriveReset
  1239. ------------------ SABDU001.DLL API: FDriveReset ---------------------
  1240.  
  1241.  UINT       FAR PASCAL FDriveReset (
  1242.                                     VOID far *pFDrive
  1243.                                    )
  1244.  
  1245.  Resets the FDrive object pointed to by pFDrive.
  1246.  
  1247.  Example:
  1248.          VOID far *pDriveA ;
  1249.  
  1250.          pDrive = FDriveCreate (
  1251.                                 "MyFileName",
  1252.                                 "SAB Diskette Utility",
  1253.                                 "2.10"
  1254.                                ) ;
  1255.          ...
  1256.          FDriveReset ( pDrive ) ;
  1257. >>FDriveForceReset
  1258. ------------------ SABDU001.DLL API: FDriveForceReset ----------------
  1259.  
  1260.  UINT       FAR PASCAL FDriveForceReset (
  1261.                                          VOID far *pFDrive
  1262.                                         )
  1263.  
  1264.  Resets the FDrive object pointed to by pFDrive.
  1265.  
  1266.  Example:
  1267.          VOID far *pDriveA ;
  1268.  
  1269.          pDrive = FDriveCreate (
  1270.                                 "MyFileName",
  1271.                                 "SAB Diskette Utility",
  1272.                                 "2.10"
  1273.                                ) ;
  1274.          ...
  1275.          FDriveForceReset ( pDrive ) ;
  1276. >>FDriveFormatTrack
  1277. ------------------ SABDU001.DLL API: FDriveFormatTrack ---------------
  1278.  
  1279.  UINT       FAR PASCAL FDriveForceReset (
  1280.                                          VOID far *pFDrive,
  1281.                                          UNIT nCylinder,
  1282.                                          UNIT nHead
  1283.                                         )
  1284.  
  1285.  Formats the track pointed to by FDrive object pointer
  1286.  
  1287.  Example:
  1288.          VOID far *pDriveA ;
  1289.  
  1290.          pDrive = FDriveCreate (
  1291.                                 "MyFileName",
  1292.                                 "SAB Diskette Utility",
  1293.                                 "2.10"
  1294.                                ) ;
  1295.          ...
  1296.          FDriveFormatTrack ( pDrive, nCylinder, nHead ) ;
  1297. >>FDriveReadSectors
  1298. ------------------ SABDU001.DLL API: FDriveReadSectors ---------------
  1299.  
  1300.  UINT       FAR PASCAL FDriveReadSectors (
  1301.                                           VOID far *pFDrive,
  1302.                                           UNIT nCylinder,
  1303.                                           UNIT nHead,
  1304.                                           UINT nSector,
  1305.                                           UINT nCount,
  1306.                                           LPBYTE lpcBuffer
  1307.                                          )
  1308.  
  1309.  Reads a group of sectors from the drive pointerd to by pFDrive
  1310.  
  1311.  nCylinder     Cylinder to read from
  1312.  nHead         Head to read with
  1313.  nSector       Starting sector
  1314.  nCount        Number of sectors to read
  1315.  lpcBuffer     Buffer to contain the data read.
  1316.  
  1317.  Example:
  1318.          VOID far *pDriveA ;
  1319.  
  1320.          pDrive = FDriveCreate (
  1321.                                 "MyFileName",
  1322.                                 "SAB Diskette Utility",
  1323.                                 "2.10"
  1324.                                ) ;
  1325.          ...
  1326.          FDriveReadSectors ( pDrive, nCylinder, nHead, nSector,
  1327.                              nCount, lpcBuffer ) ;
  1328. >>FDriveWriteSectors
  1329. ------------------ SABDU001.DLL API: FDriveWriteSectors --------------
  1330.  
  1331.  UINT       FAR PASCAL FDriveWriteSectors (
  1332.                                            VOID far *pFDrive,
  1333.                                            UNIT nCylinder,
  1334.                                            UNIT nHead,
  1335.                                            UINT nSector,
  1336.                                            UINT nCount,
  1337.                                            LPBYTE lpcBuffer
  1338.                                           )
  1339.  
  1340.  Writes a group of sectors from the drive pointerd to by pFDrive
  1341.  
  1342.  nCylinder     Cylinder to read from
  1343.  nHead         Head to read with
  1344.  nSector       Starting sector
  1345.  nCount        Number of sectors to read
  1346.  lpcBuffer     Buffer to contain the data read.
  1347.  
  1348.  Example:
  1349.          VOID far *pDriveA ;
  1350.  
  1351.          pDrive = FDriveCreate (
  1352.                                 "MyFileName",
  1353.                                 "SAB Diskette Utility",
  1354.                                 "2.10"
  1355.                                ) ;
  1356.          ...
  1357.          FDriveWriteSectors ( pDrive, nCylinder, nHead, nSector,
  1358.                               nCount, lpcBuffer ) ;
  1359. >>HandleStatus
  1360. ------------------ SABDU001.DLL Callback: HandleStatus ---------------
  1361.  
  1362. typedef int (FAR PASCAL __export * lpfnHANDLESTATUS)(
  1363.                                                      UINT nStatus1,
  1364.                                                      UINT nStatus2,
  1365.                                                      UINT nParam1,
  1366.                                                      UINT nParam2,
  1367.                                                      LONG lParam1,
  1368.                                                      LONG lParam2
  1369.                                                     ) ;
  1370.  
  1371. int  FAR PASCAL __export HandleStatus (
  1372.                                        UINT nStatus1,
  1373.                                        UINT nStatus2,
  1374.                                        UINT nParam1,
  1375.                                        UINT nParam2,
  1376.                                        LONG lParam1,
  1377.                                        LONG lParam2
  1378.                                       ) ;
  1379.  
  1380.   nStatus1
  1381.   -------------------
  1382.     nStatus2                    nParam1               nParam2
  1383.     --------------------------- --------------------- --------------------
  1384.                                   lParam1               lParam2
  1385.                                   --------------------- ---------------
  1386.  
  1387.   STATUS1_INIT                  hWnd                  hInstance
  1388.   STATUS1_START
  1389.   STATUS1_BOOT_SECTOR
  1390.   STATUS1_DIRECTORY
  1391.   STATUS1_FAT
  1392.   STATUS1_SYSTEM_FILE
  1393.   STATUS1_CYLINDER              cylinder              percent complete
  1394.   STATUS1_HEAD
  1395.   STATUS1_END
  1396.   STATUS1_ERROR
  1397.     STATUS2_FILE                STATUS3_OPEN_FAIL
  1398.                                   file name pointer
  1399.     STATUS2_FILE                STATUS3_OPEN_FILE_IO_ERROR
  1400.                                   file name pointer
  1401.     STATUS2_FILE                STATUS3_OPEN_INPUT_BAD
  1402.                                   file name pointer
  1403.     STATUS2_FILE                STATUS3_OPEN_FLAGS_BAD
  1404.                                   file name pointer
  1405.     STATUS2_FILE                STATUS3_OPEN_NOT_SUPPORTED
  1406.                                   file name pointer
  1407.     STATUS2_READ                cylinder              head
  1408.     STATUS2_WRITE               cylinder              head
  1409.     STATUS2_FORMAT              cylinder              head
  1410.     STATUS2_FILE_READ
  1411.                                   file name pointer
  1412.     STATUS2_FILE_WRITE
  1413.                                   file name pointer
  1414.     STATUS2_DISK_SPACE
  1415.                                   space needed          space available
  1416.     STATUS2_HEAD                cylinder              head
  1417.     STATUS2_MEMORY
  1418.     STATUS2_SYSTEM
  1419.     STATUS2_FAT
  1420.     STATUS2_DIRECTORY
  1421.     STATUS2_BOOT_SECTOR
  1422.     STATUS2_SYSTEM_FILE_MISSING
  1423.     STATUS2_SYSTEM_FILE_OPEN
  1424.     STATUS2_COMPARE             cylinder              head
  1425.     STATUS2_DPT
  1426. >>MDrive
  1427. ------------------ SABDU001.DLL API: MDrive objects ------------------
  1428.  
  1429.  A MDrive (Memory Drive) is a specialized version of the VDrive
  1430.  (Virtual Drive).  It is an object that represents a diskette image in
  1431.  memory.
  1432.  
  1433.  The following functions are available to manipulate it:
  1434.      MDriveCreate        Creates a MDrive object
  1435.      MDriveDelete        Deletes a MDrive object
  1436.      MDriveForceReset    Issues a reset to the drive
  1437.      MDriveFormatTrack   Formats a track
  1438.      MDriveReadSectors   Reads a group of sectors from the drive
  1439.      MDriveReset         Issues a reset to the drive if it was used
  1440.      MDriveSetRead       Sets up for reading from the drive
  1441.      MDriveSetWrite      Sets up for writing to the drive
  1442.      MDriveWriteSectors  Writes a group of sectors to the drive
  1443. >>MDriveCreate
  1444. ------------------ SABDU001.DLL API: MDriveCreate --------------------
  1445.  
  1446.  VOID far * FAR PASCAL MDriveCreate (
  1447.                                      UINT nMemory
  1448.                                     )
  1449.  
  1450.  Creates a MDrive object associated with identifier nMemory and
  1451.  returns a pointer to it.
  1452.  
  1453.  Example:
  1454.          VOID far *pDrive1 ;
  1455.  
  1456.          pDrive1 = MDriveCreate ( 1 ) ;
  1457. >>MDriveDelete
  1458. ------------------ SABDU001.DLL API: MDriveDelete --------------------
  1459.  
  1460.  VOID       FAR PASCAL MDriveDelete (
  1461.                                      pMDrive
  1462.                                     )
  1463.  
  1464.  Deletes the MDrive object pointed to by pMDrive.
  1465.  
  1466.  Example:
  1467.          VOID far *pDrive1 ;
  1468.  
  1469.          pDrive1 = MDriveCreate ( 1 ) ;
  1470.          ...
  1471.          MDriveDelete ( pDrive1 ) ;
  1472.          pDrive1 = NULL ;
  1473. >>MDriveSetRead
  1474. ------------------ SABDU001.DLL API: MDriveSetRead -------------------
  1475.  
  1476.  UINT       FAR PASCAL MDriveSetRead (
  1477.                                       VOID far *pMDrive,
  1478.                                       UINT nTempType,
  1479.                                       UINT nCylinders
  1480.                                      )
  1481.  
  1482.  Prepares the MDrive object pointed to by pMDrive for reading.
  1483.  
  1484.  nTempType defines the type of diskette expected:
  1485.            FD0360 FD0720 FD1200 FD1440 FD2880
  1486.  
  1487.  nCylinders defines the number of cylinders.
  1488.  
  1489.  Example:
  1490.          VOID far *pDrive1 ;
  1491.  
  1492.          pDrive1 = MDriveCreate ( 1 ) ;
  1493.          ...
  1494.          MDriveSetRead ( pDrive1, FD0360, NULL ) ;
  1495. >>MDriveSetWrite
  1496. ------------------ SABDU001.DLL API: MDriveSetWrite ------------------
  1497.  
  1498.  UINT       FAR PASCAL MDriveSetWrite (
  1499.                                        VOID far *pMDrive,
  1500.                                        UINT nTempType,
  1501.                                        UINT nCylinders
  1502.                                       )
  1503.  
  1504.  Prepares the MDrive object pointed to by pMDrive for writing.
  1505.  
  1506.  nTempType defines the type of diskette expected:
  1507.            FD0360 FD0720 FD1200 FD1440 FD2880
  1508.  
  1509.  nCylinders defines the number of cylinders.
  1510.  
  1511.  Example:
  1512.          VOID far *pDrive1 ;
  1513.  
  1514.          pDrive1 = MDriveCreate ( 1 ) ;
  1515.          ...
  1516.          MDriveSetWrite ( pDrive1, FD0360, NULL ) ;
  1517. >>MDriveReset
  1518. ------------------ SABDU001.DLL API: MDriveReset ---------------------
  1519.  
  1520.  UINT       FAR PASCAL MDriveReset (
  1521.                                     VOID far *pMDrive
  1522.                                    )
  1523.  
  1524.  Resets the MDrive object pointed to by pMDrive.
  1525.  
  1526.  Example:
  1527.          VOID far *pDrive1 ;
  1528.  
  1529.          pDrive1 = MDriveCreate ( 1 ) ;
  1530.          ...
  1531.          MDriveReset ( pDrive1 ) ;
  1532. >>MDriveForceReset
  1533. ------------------ SABDU001.DLL API: MDriveForceReset ----------------
  1534.  
  1535.  UINT       FAR PASCAL MDriveForceReset (
  1536.                                          VOID far *pMDrive
  1537.                                         )
  1538.  
  1539.  Resets the MDrive object pointed to by pMDrive.
  1540.  
  1541.  Example:
  1542.          VOID far *pDrive1 ;
  1543.  
  1544.          pDrive1 = MDriveCreate ( 1 ) ;
  1545.          ...
  1546.          MDriveForceReset ( pDrive1 ) ;
  1547. >>MDriveFormatTrack
  1548. ------------------ SABDU001.DLL API: MDriveFormatTrack ---------------
  1549.  
  1550.  UINT       FAR PASCAL MDriveForceReset (
  1551.                                          VOID far *pMDrive,
  1552.                                          UNIT nCylinder,
  1553.                                          UNIT nHead
  1554.                                         )
  1555.  
  1556.  Formats the track pointed to by MDrive object pointer
  1557.  
  1558.  Example:
  1559.          VOID far *pDrive1 ;
  1560.  
  1561.          pDrive1 = MDriveCreate ( 1 ) ;
  1562.          ...
  1563.          MDriveFormatTrack ( pDrive1, nCylinder, nHead ) ;
  1564. >>MDriveReadSectors
  1565. ------------------ SABDU001.DLL API: MDriveReadSectors ---------------
  1566.  
  1567.  UINT       FAR PASCAL MDriveReadSectors (
  1568.                                           VOID far *pMDrive,
  1569.                                           UNIT nCylinder,
  1570.                                           UNIT nHead,
  1571.                                           UINT nSector,
  1572.                                           UINT nCount,
  1573.                                           LPBYTE lpcBuffer
  1574.                                          )
  1575.  
  1576.  Reads a group of sectors from the drive pointerd to by pMDrive
  1577.  
  1578.  nCylinder     Cylinder to read from
  1579.  nHead         Head to read with
  1580.  nSector       Starting sector
  1581.  nCount        Number of sectors to read
  1582.  lpcBuffer     Buffer to contain the data read.
  1583.  
  1584.  Example:
  1585.          VOID far *pDrive1 ;
  1586.  
  1587.          pDrive1 = MDriveCreate ( 1 ) ;
  1588.          ...
  1589.          MDriveReadSectors ( pDrive1, nCylinder, nHead, nSector,
  1590.                              nCount, lpcBuffer ) ;
  1591. >>MDriveWriteSectors
  1592. ------------------ SABDU001.DLL API: MDriveWriteSectors --------------
  1593.  
  1594.  UINT       FAR PASCAL MDriveWriteSectors (
  1595.                                            VOID far *pMDrive,
  1596.                                            UNIT nCylinder,
  1597.                                            UNIT nHead,
  1598.                                            UINT nSector,
  1599.                                            UINT nCount,
  1600.                                            LPBYTE lpcBuffer
  1601.                                           )
  1602.  
  1603.  Writes a group of sectors from the drive pointerd to by pMDrive
  1604.  
  1605.  nCylinder     Cylinder to read from
  1606.  nHead         Head to read with
  1607.  nSector       Starting sector
  1608.  nCount        Number of sectors to read
  1609.  lpcBuffer     Buffer to contain the data read.
  1610.  
  1611.  Example:
  1612.          VOID far *pDrive1 ;
  1613.  
  1614.          pDrive1 = MDriveCreate ( 1 ) ;
  1615.          ...
  1616.          MDriveWriteSectors ( pDrive1, nCylinder, nHead, nSector,
  1617.                               nCount, lpcBuffer ) ;
  1618. >>VDrive
  1619. ------------------ SABDU001.DLL API: VDrive objects ------------------
  1620.  
  1621.  A VDrive (Virtual Drive) is an object that represents a diskette
  1622.  image.
  1623.  
  1624.  The following functions are available to manipulate it:
  1625.      VDriveFlag              Returns the flags for the virtual drive
  1626.      VDriveForceReset        Forces a reset of the virtual drive
  1627.      VDriveFormatTrack       Formats a track
  1628.      VDriveIsRemote          Returns TRUE if media is remote
  1629.      VDriveIsRemovable       Returns TRUE if media is removable
  1630.      VDriveIsUseable         Returns TRUE if media is useable
  1631.      VDriveIsUsed            Returns TRUE if virtual drive was used
  1632.      VDriveLetter            Returns letter of vitual drive
  1633.      VDriveNumberOfCylinders Returns number of cylinders
  1634.      VDriveNumberOfHeads     Returns number of heads
  1635.      VDriveNumberOfSectors   Returns number of sectors
  1636.      VDriveReadSectors       Reads a group of sectors from the vitual drive
  1637.      VDriveReset             Resets the virtual drive if it was used
  1638.      VDriveSetRead           Sets up the virtual drive for reading
  1639.      VDriveSetType           Sets the type (density) of the virtual drive
  1640.      VDriveSetWrite          Sets up the virtual drive for writing
  1641.      VDriveType              Returns the type (density) of the virtual drive
  1642.      VDriveWriteSectors      Writes a group of sectors to the virutal drive
  1643. >>VDriveSetType
  1644. ------------------ SABDU001.DLL API: VDriveSetType -------------------
  1645.  
  1646.  UINT FAR PASCAL VDriveSetType (
  1647.                                 VOID far *pCVDrive,
  1648.                                 UINT nType
  1649.                                )
  1650.  
  1651.  Sets the type (density) for the virtual drive.
  1652.       nType = FD0360
  1653.               FD0720
  1654.               FD1200
  1655.               FD1200H
  1656.               FD1440
  1657.               FD1440H
  1658.               FD2880
  1659.  
  1660.  Returns nType if successfull or FD0000 if not.
  1661.  
  1662.  Example:
  1663.          VOID far *pDriveA ;
  1664.  
  1665.          VDriveSetType ( pDriveA, FD0720 ) ;
  1666. >>VDriveLetter
  1667. ------------------ SABDU001.DLL API: VDriveLetter --------------------
  1668.  
  1669.  char FAR PASCAL VDriveLetter (
  1670.                                VOID far *pCVDrive
  1671.                               )
  1672.  
  1673.  Returns the drive letter.
  1674.  
  1675.  Example:
  1676.          VOID far *pDriveA ;
  1677.          char cDrive ;
  1678.  
  1679.          cDrive = VDriveLetter ( pDriveA ) ;
  1680. >>VDriveType
  1681. ------------------ SABDU001.DLL API: VDriveType ----------------------
  1682.  
  1683.  UINT FAR PASCAL VDriveType (
  1684.                              VOID far *pCVDrive
  1685.                             )
  1686.  
  1687.  Returns the drive type (density).
  1688.  
  1689.  Example:
  1690.          VOID far *pDriveA ;
  1691.          UINT nType ;
  1692.  
  1693.          nType = VDriveType ( pDriveA ) ;
  1694. >>VDriveFlag
  1695. ------------------ SABDU001.DLL API: VDriveFlag ----------------------
  1696.  
  1697.  UINT FAR PASCAL VDriveFlag (
  1698.                              VOID far *pCVDrive
  1699.                             )
  1700.  
  1701.  Returns the drive flag.
  1702.  
  1703.  Example:
  1704.          VOID far *pDriveA ;
  1705.          UINT nFlag ;
  1706.  
  1707.          nFlag = VDriveFlag ( pDriveA ) ;
  1708. >>VDriveNumberOfCylinders
  1709. ------------------ SABDU001.DLL API: VDriveNumberOfCylinders ---------
  1710.  
  1711.  UINT FAR PASCAL VDriveNumberOfCylinders (
  1712.                                           VOID far *pCVDrive
  1713.                                          )
  1714.  
  1715.  Returns the number of cylinders.
  1716.  
  1717.  Example:
  1718.          VOID far *pDriveA ;
  1719.          UINT nCylinders ;
  1720.  
  1721.          nCylinders = VDriveNumberOfCylinders ( pDriveA ) ;
  1722. >>VDriveNumberOfHeads
  1723. ------------------ SABDU001.DLL API: VDriveNumberOfHeads -------------
  1724.  
  1725.  UINT FAR PASCAL VDriveNumberOfHeads (
  1726.                                       VOID far *pCVDrive
  1727.                                      )
  1728.  
  1729.  Returns the number of heads.
  1730.  
  1731.  Example:
  1732.          VOID far *pDriveA ;
  1733.          UINT nHeads ;
  1734.  
  1735.          nHeads = VDriveNumberOfHeads ( pDriveA ) ;
  1736. >>VDriveNumberOfSectors
  1737. ------------------ SABDU001.DLL API: VDriveNumberOfSectors -----------
  1738.  
  1739.  UINT FAR PASCAL VDriveNumberOfSectors (
  1740.                                         VOID far *pCVDrive
  1741.                                        )
  1742.  
  1743.  Returns the number of sectors.
  1744.  
  1745.  Example:
  1746.          VOID far *pDriveA ;
  1747.          UINT nSectors ;
  1748.  
  1749.          nSectors = VDriveNumberOfSectors ( pDriveA ) ;
  1750. >>VDriveIsRemote
  1751. ------------------ SABDU001.DLL API: VDriveIsRemote ------------------
  1752.  
  1753.  BOOL FAR PASCAL VDriveIsRemote (
  1754.                                  VOID far *pCVDrive
  1755.                                 )
  1756.  
  1757.  Returns TRUE if the media is remote.
  1758.  
  1759.  Example:
  1760.          VOID far *pDriveA ;
  1761.          BOOL bRemote ;
  1762.  
  1763.          bRemote = VDriveIsRemote ( pDriveA ) ;
  1764. >>VDriveIsRemovable
  1765. ------------------ SABDU001.DLL API: VDriveIsRemovable ---------------
  1766.  
  1767.  BOOL FAR PASCAL VDriveIsRemovable (
  1768.                                     VOID far *pCVDrive
  1769.                                    )
  1770.  
  1771.  Returns TRUE if the media is removable.
  1772.  
  1773.  Example:
  1774.          VOID far *pDriveA ;
  1775.          BOOL bRemovable ;
  1776.  
  1777.          bRemovable = VDriveIsRemovable ( pDriveA ) ;
  1778. >>VDriveIsUseable
  1779. ------------------ SABDU001.DLL API: VDriveIsUseable -----------------
  1780.  
  1781.  BOOL FAR PASCAL VDriveIsUseable (
  1782.                                   VOID far *pCVDrive
  1783.                                  )
  1784.  
  1785.  Returns TRUE if the media is useable.
  1786.  
  1787.  Example:
  1788.          VOID far *pDriveA ;
  1789.          BOOL bUseable ;
  1790.  
  1791.          bUseable = VDriveIsUseable ( pDriveA ) ;
  1792. >>VDriveIsUsed
  1793. ------------------ SABDU001.DLL API: VDriveIsUsed --------------------
  1794.  
  1795.  BOOL FAR PASCAL VDriveIsUsead (
  1796.                                 VOID far *pCVDrive
  1797.                                )
  1798.  
  1799.  Returns TRUE if the media is used.
  1800.  
  1801.  Example:
  1802.          VOID far *pDriveA ;
  1803.          BOOL bUsed ;
  1804.  
  1805.          bUsed = VDriveIsUsed ( pDriveA ) ;
  1806. >>VDriveReset
  1807. ------------------ SABDU001.DLL API: VDriveReset ---------------------
  1808.  
  1809.  UINT FAR PASCAL VDriveReset (
  1810.                               VOID far *pCVDrive
  1811.                              )
  1812.  
  1813.  Returns FALSE if successfull.
  1814.  
  1815.  Example:
  1816.          VOID far *pDriveA ;
  1817.          BOOL bReset ;
  1818.  
  1819.          bReset = !VDriveReset ( pDriveA ) ;
  1820. >>VDriveFormatTrack
  1821. ------------------ SABDU001.DLL API: VDriveFormatTrack ---------------
  1822.  
  1823.  UINT FAR PASCAL VDriveFormatTrack (
  1824.                                     VOID far *pCVDrive,
  1825.                                     UINT nCylinder,
  1826.                                     UINT nHead
  1827.                                    )
  1828.  
  1829.  Returns FALSE if successfull.
  1830.  
  1831.  Example:
  1832.          VOID far *pDriveA ;
  1833.          BOOL bFormat ;
  1834.  
  1835.          bFormat = !VDriveFormatTrack ( pDriveA, nCylinder, nHead ) ;
  1836. >>VDriveReadSectors
  1837. ------------------ SABDU001.DLL API: VDriveReadSectors ---------------
  1838.  
  1839.  UINT FAR PASCAL VDriveReadSectors (
  1840.                                     VOID far *pCVDrive,
  1841.                                     UINT nCylinder,
  1842.                                     UINT nHead
  1843.                                    )
  1844.  
  1845.  Returns FALSE if successfull.
  1846.  
  1847.  Example:
  1848.          VOID far *pDriveA ;
  1849.          BOOL bRead ;
  1850.  
  1851.          bRead = !VDriveReadSectors ( pDriveA, nCylinder, nHead,
  1852.                                       nSector, nCount, LPBYTE lpcBuffer ) ;
  1853. >>VDriveWriteSectors
  1854. ------------------ SABDU001.DLL API: VDriveWriteSectors --------------
  1855.  
  1856.  UINT FAR PASCAL VDriveWriteSectors (
  1857.                                      VOID far *pCVDrive,
  1858.                                      UINT nCylinder,
  1859.                                      UINT nHead
  1860.                                     )
  1861.  
  1862.  Returns FALSE if successfull.
  1863.  
  1864.  Example:
  1865.          VOID far *pDriveA ;
  1866.          BOOL bWrite ;
  1867.  
  1868.          bWrite = !VDriveWriteSectors ( pDriveA, nCylinder, nHead,
  1869.                               nSector, nCount, LPBYTE lpcBuffer ) ;
  1870.