No announcement yet.

DISKFREE and PBDOS routine

  • Filter
  • Time
  • Show
Clear All
new posts

  • DISKFREE and PBDOS routine

    Since Disksize and diskfree apparently use the old
    interrupt call and only go up to the max of a long
    integer 2.1billion, i have been looking for a routine
    (for years now actually) that takes into account
    FAT32 and larger disk sizes. Well I found one that
    works great written in pb 3.5. I want to include
    the diskinfo routine as a menu option. (using
    DISKFREE at the moment. my problem is the inline
    asm that uses VARSEG (I assume VARPTR will be ok
    as it uses that too). Since PBdll have that, how
    to I modify or what do i substitute for it ?
    If you want to see the PB code I'll be happy to
    email it.

    [email protected]
    Client Writeup for the CPA

    Links Page

  • #2
    Forget trying to translate DOS code as it will be using Interrupts that are not usable in Win32.

    Instead, use GetDiskFreeSpaceEx() which supports disk sizes > 2Gb.

    Out of interest, PB/DLL and PB/CC's DISKFREE (and related functions) only use GetDiskFreeSpace() because all Win32 platforms support it.

    If you want your software to run on _all_ Win32 Platforms, then you must use LoadLibrary(), GetProcAddress() and CALL DWORD to use GetDiskFreeSpaceEx()... if you try to call it directly under Win95a, then your app will get a "Missing DLL entry point" runtime error when launched.

    PowerBASIC Support
    mailto:[email protected][email protected]</A>
    mailto:[email protected]


    • #3
      Thanks Lance.

      Client Writeup for the CPA

      Links Page