' <<< INTPLUS.BAS HELP FILE >>>>
'*******************************************************
'*  Functions and Subroutines in this module uses  DOS *
'* interrupt calls to perform window strolling, change *
'* default drive, get free space and DOS version,  get *
'* file information with out invoke COMMAND.COM.  You  *
'* can also display a blink bar or use dos function for*
'* screen write.                                       *
'*                                                     *
'*  Two more routines. MuzKey plays a different sound  *
'* for each key user pressed before return the value to*
'* user. And PrGraph dumps the graphics screen image in*
'* mode 1 or 2 to dot matrix printer with-out using a  *
'* GRAPHICS.COM of DOS.                                *
'*******************************************************
'*                                             *       *
'*      Thank you for downloading,             *       *
'*          and hope you enjoy to use them !   *       *
'*                                             *       *
'*  05/20/91  [GEnie: M.LEI1]    Gito          *       *
'*******************************************************
'
' To use those routines in INTPLUS.BAS, you need to have QB.QLB
' (or any quick lib which has been linked with QB.QLB)  loaded
' when QB.EXE started.
'
' To link your module with INTERRUPT to produce .EXE files :
' simply LINK your object module .OBJ files together with
' INTRPT.OBJ provided in QBINT&.ZIP . You don't need to use
' QB.LIB, because it contains other routines you may not need.
'
'
'* BELOW ARE USAGES FOR EACH SUB OR FUNC *
'
' ////  SUB BlinkBar (NumbChar, char)  /////
' Descrp: Rapidly display a blinking bar height defined by ln,
'         blinks untill a key is pressed
' Calls:  INTERRUPT
'
' <<PARAMETERS>>
' NumbChar: Number of characters of length from current postion
'           (INTEGER). Example: use a 5 lines' bar in screen 0, width 80,
'           you will use (5 * 80) or 400.
' char:     ASCII code of character to use. (INTEGER: 1 to 255  )
'           Do not use space(32) or char's you can't display.
'           Use 219 will be fine.
'
' Note: BlinkBar can be used in any screen mode, but the effect
'       may varies. Try it in CGA screen mode 1, it's very attractive.
'
'
' ////////// FUNCTION SpcDrive! (drive) /////////
'
' CALLS: INTERRUPTX
'
' This function returns free space availiable in select drive
' (BX *  CX * AX  = total space on disk)
'
' Note: Do not attemp to use this function in direct\immediate mode.
'       Use with caution. Assign returning value to a single number.
'
' <<PARAMETER>> Drive:
'               0   for default
'               1   for a:
'               2   for b:
'               3   for c:   etc....
'
' Returning Registers:
' AX: sectors per cluster; or &HFFFF if drive number invalid (Not been tested in this function)
' BX: free  clusters ;
' DX: total clusters ;
'     DX has not been used in this function. But you can use it to calculate the
'     total disk space:  TotalDiskSpace!= outregs.AX * CSNG(outregs.DX) * CSNG(outregs.CX)
' CX: bytes per sector ;
'
'
' //////////// SUB DosPrint (text$) ///////////
'
'   Header: 'QB.BI' or 'INTPLUS.BI'
'   CALLS : interrupt
'   Update: 3/13/91
'   Comments: Print text$ use a dos function.
'
' //////////// FUNCTION DosVer ////////////
'
'   Header: "QB.BI" or 'INTPLUS.BI'
'   CALLS : interrupt
'   Update: 3/13/91
'   Comments: Returns an integar which is the dos version
'             times 100. (EX: 320 means dos version 3.20)
'
'
'  \\\\\\\\\\\  FUNCTION UseDrive% (drive) \\\\\\\\\\
'
'   Calls : Interrupt
'   Update: 3/13/91
'   Comments: Change current drive to given value;
'             returns a integar which is the total number of
'             logical drives.
'
'
'  \\\\\\\\\\\\ FUNCTION DefDrive% () \\\\\\\\\\
'
'   Calls : Interrupt
'   Update: 3/13/91
'   Comments: DefDrive returns a integer number represents
'             the current default drive: 0 for A, 1 for B etc...
'
'
' \\\\\\\ SUB RollWind (lines, r1, c1, r2, c2, BackColor) \\\\\\\\
'
'   Call:   INTERRUPT
'   Updata: 1/19/91
'   Comments: Perform dos call scroll text window
'
'   <<PARAMETERS>>
'   lines:  Number of lines to stroll. If postive, strolls up;
'           if negative, strolls down.
'   r1,c1,r2,c2:  Window range
'   BackColor:  Color attri. to fill the background for the new line(s).
'
' \\\\\\\ SUB GetFileDta (Spec$, DtaBuf AS FileType, ErrCode) STATIC \\\\\\\
'
'   Header: None
'   CALLS : INTERRUPTX
'
'   This file returns a file data block contains file informations.
'   <see TYPE FileDta for specification>. Calls this sub in a loop
'   until ErrCode <> 0.
'   -- PARAMETERS --
'   Spec$   : Passed parameter of path+drive specification;
'   DtaBuf  : Returned file data block
'   ErrCode : Returns a none zero number when last record is read.
'
'\\\\\\\ FUNCTION GetDirSpec$ (Drive) \\\\\\\
'
'   CALLS: INTERRUPTX
'
'   Returns directory information of specified drive;
'   Drive:  0 is default; 1 : drive A; 2 : drive B; 3 ...etc.
'
'////////////  FUNCTION MuzKey$ STATIC /////////////
'
'   Header: None               
'   CALLS : None                -- not a interrupt
'   Update: 3/13/91
'   Comments: This function waits and returns a key pressed by user.
'             Any key user presses, will generate a different sound.
'   Note:     To change the length for each note it plays, simply change
'             PLAY "LnN=" +...,  in which n (1 - 64) is a fraction of a
'             whole note. For example 4 = a quarter, 64 = 1/64 note long.
'
'////////// SUB PrGraph (ScrMode, Lmargin, c1, r1, c2, r2) //////////
'
' Dump graphics screen image enclosed by (c1,r1)-(c2,r2) to
' Epson or compatible DOT-MATRIX printer.
'
' <<PARAMETERS>>                            -- not  a interrupt
' ScrMode: Graphics mode. (CGA 1 or 2 only)
' Lmargin: left margin (skip spaces)
'
' printing range: form (c1,r1) to (c2,r2), has the same rules as using
'       Line (c1,r1)-(c2,r2) in BASIC.
'
'******************************************************************
'*     <<<<<End of documentation.>>>>>                            *
'* This help file uses BASIC comment syntax for each line and is  *
'* in ASCii: because I've seperate these from the original module *
'* so that it needs less memory storage. So you can load this file*
'* any time to look at it. Even if you load this file as a module *
'* (I sometimes make such kind of mistake), it won't bother you   *
'* too much.                                                      *
'******************************************************************


