home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Fortran.51 / DISK6 / FLIB.FD$ / FLIB.bin
Text File  |  1991-04-24  |  10KB  |  299 lines

  1. C****************************** Module Header ******************************
  2. C*
  3. C* Copyright (c) 1990  Microsoft Corporation
  4. C*
  5. C* Module Name: FLIB.FD
  6. C*
  7. C* This module provides parameter and structure type declarations
  8. C* needed to communicate with subprograms found in the various FORTRAN
  9. C* libraries.  Each of the functional areas covered by this include file
  10. C* are small enough that separate include files for each are not warranted.
  11. C*
  12. C* The functional areas covered are the following.
  13. C*
  14. C* Math error support.
  15. C*
  16. C* Signal handling.
  17. C*
  18. C* Intdos/Intdosx.
  19. C*
  20. C***************************************************************************
  21. C -----------------------------------------------------------------
  22. C Data Tyoe Codes.
  23. C -----------------------------------------------------------------
  24. C Only of interest for math errors currently.
  25.       INTEGER TY$REAL4
  26.       INTEGER TY$REAL8
  27.       INTEGER TY$CMPLX8
  28.       INTEGER TY$CMPLX16
  29.  
  30.       PARAMETER (TY$REAL4   = 1)
  31.       PARAMETER (TY$REAL8   = 2)
  32.       PARAMETER (TY$CMPLX8  = 3)
  33.       PARAMETER (TY$CMPLX16 = 4)
  34.  
  35. C -----------------------------------------------------------------
  36. C Math Error Support
  37. C -----------------------------------------------------------------
  38. C Codes for function failure.
  39.       INTEGER MTH$E_DOMAIN              ! Argument domain error
  40.       INTEGER MTH$E_SINGULARITY         ! Argument Singularity
  41.       INTEGER MTH$E_OVERFLOW            ! Overflow range error
  42.       INTEGER MTH$E_UNDERFLOW           ! Underflow range error
  43.       INTEGER MTH$E_TLOSS               ! Total loss of precision
  44.       INTEGER MTH$E_PLOSS               ! Partial loss of precision
  45.  
  46.       PARAMETER (MTH$E_DOMAIN      = 1)
  47.       PARAMETER (MTH$E_SINGULARITY = 2)
  48.       PARAMETER (MTH$E_OVERFLOW    = 3)
  49.       PARAMETER (MTH$E_UNDERFLOW   = 4)
  50.       PARAMETER (MTH$E_TLOSS       = 5)
  51.       PARAMETER (MTH$E_PLOSS       = 6)
  52.  
  53. C Math error information structure.
  54.       STRUCTURE /MTH$E_INFO/
  55.         INTEGER*2 ERRCODE        ! INPUT : One of the MTH$ values above
  56.         INTEGER*2 FTYPE          ! INPUT : One of the TY$ values above
  57.         UNION
  58.         MAP
  59.             REAL*4 R4ARG1        ! INPUT : FIrst argument
  60.             REAL*4 R4ARG2        ! INPUT : Second argument (if any)
  61.             REAL*4 R4RES         ! OUTPUT : Desired result
  62.         END MAP
  63.         MAP
  64.             REAL*8 R8ARG1        ! INPUT : FIrst argument
  65.             REAL*8 R8ARG2        ! INPUT : Second argument (if any)
  66.             REAL*8 R8RES         ! OUTPUT : Desired result
  67.         END MAP
  68.         MAP
  69.             COMPLEX*8 C8ARG1     ! INPUT : FIrst argument
  70.             COMPLEX*8 C8ARG2     ! INPUT : Second argument (if any)
  71.             COMPLEX*8 C8RES      ! OUTPUT : Desired result
  72.         END MAP
  73.         MAP
  74.             COMPLEX*16 C16ARG1   ! INPUT : FIrst argument
  75.             COMPLEX*16 C16ARG2   ! INPUT : Second argument (if any)
  76.             COMPLEX*16 C16RES    ! OUTPUT : Desired result
  77.         END MAP
  78.         END UNION
  79.       END STRUCTURE
  80.  
  81. C -----------------------------------------------------------------
  82. C Signal support
  83. C -----------------------------------------------------------------
  84.       INTEGER SIG$ERR                    ! SIGNALQQ return value
  85.       INTEGER SIG$NSIG
  86.       INTEGER SIG$INT
  87.       INTEGER SIG$ILL
  88.       INTEGER SIG$FPE
  89.       INTEGER SIG$SEGV
  90.       INTEGER SIG$TERM
  91.       INTEGER SIG$USR1
  92.       INTEGER SIG$USR2
  93.       INTEGER SIG$USR3
  94.       INTEGER SIG$BREAK
  95.       INTEGER SIG$ABORT
  96.  
  97.       PARAMETER (SIG$ERR   = -1)
  98.       PARAMETER (SIG$NSIG  = 23)
  99.       PARAMETER (SIG$INT   =  2)
  100.       PARAMETER (SIG$ILL   =  4)
  101.       PARAMETER (SIG$FPE   =  8)
  102.       PARAMETER (SIG$SEGV  = 11)
  103.       PARAMETER (SIG$TERM  = 15)
  104.       PARAMETER (SIG$USR1  = 16)
  105.       PARAMETER (SIG$USR2  = 17)
  106.       PARAMETER (SIG$USR3  = 20)
  107.       PARAMETER (SIG$BREAK = 21)
  108.       PARAMETER (SIG$ABORT = 22)
  109.  
  110.       INTEGER FPE$INVALID
  111.       INTEGER FPE$DENORMAL
  112.       INTEGER FPE$ZERODIVIDE
  113.       INTEGER FPE$OVERFLOW
  114.       INTEGER FPE$UNDERFLOW
  115.       INTEGER FPE$INEXACT
  116.       INTEGER FPE$UNEMULATED
  117.       INTEGER FPE$SQRTNEG
  118.       INTEGER FPE$STACKOVERFLOW
  119.       INTEGER FPE$STACKUNDERFLOW
  120.       INTEGER FPE$EXPLICITGEN                  ! RAISEQQ( SIGFPE )
  121.  
  122.       PARAMETER (FPE$INVALID        = #81)
  123.       PARAMETER (FPE$DENORMAL       = #82)
  124.       PARAMETER (FPE$ZERODIVIDE     = #83)
  125.       PARAMETER (FPE$OVERFLOW       = #84)
  126.       PARAMETER (FPE$UNDERFLOW      = #85)
  127.       PARAMETER (FPE$INEXACT        = #86)
  128.       PARAMETER (FPE$UNEMULATED     = #87)
  129.       PARAMETER (FPE$SQRTNEG        = #88)
  130.       PARAMETER (FPE$STACKOVERFLOW  = #8a)
  131.       PARAMETER (FPE$STACKUNDERFLOW = #8b)
  132.       PARAMETER (FPE$EXPLICITGEN    = #8c)
  133.  
  134.       INTEGER   SIGNALQQ[EXTERN]
  135.       INTEGER*2 RAISEQQ[EXTERN]
  136.  
  137. C -----------------------------------------------------------------
  138. C Intdos/Intdosx support.
  139. C -----------------------------------------------------------------
  140.       STRUCTURE /REGS$WORD/
  141.         INTEGER*2 AX
  142.         INTEGER*2 BX
  143.         INTEGER*2 CX
  144.         INTEGER*2 DX
  145.         INTEGER*2 SI
  146.         INTEGER*2 DI
  147.         INTEGER*2 CFLAG
  148.       END STRUCTURE
  149.  
  150.       STRUCTURE /REGS$BYTE/
  151.         INTEGER*1 AL
  152.         INTEGER*1 AH
  153.         INTEGER*1 BL
  154.         INTEGER*1 BH
  155.         INTEGER*1 CL
  156.         INTEGER*1 CH
  157.         INTEGER*1 DL
  158.         INTEGER*1 DH
  159.       END STRUCTURE
  160.  
  161.       STRUCTURE /REGS$INFO/
  162.         UNION
  163.         MAP
  164.             RECORD /REGS$WORD/ WREGS
  165.         END MAP
  166.         MAP
  167.             RECORD /REGS$BYTE/ BREGS
  168.         END MAP
  169.         END UNION
  170.       END STRUCTURE
  171.  
  172.       STRUCTURE /SREGS$INFO/
  173.         INTEGER*2 ES
  174.         INTEGER*2 CS
  175.         INTEGER*2 SS
  176.         INTEGER*2 DS
  177.       END STRUCTURE
  178.  
  179. C -----------------------------------------------------------------
  180. C FORTRAN QuickWin App Support
  181. C -----------------------------------------------------------------
  182.       INTEGER*2 ABOUTBOXQQ[EXTERN]
  183.  
  184. C Clicking on menus.
  185.       INTEGER*2 QWIN$STATUS
  186.       INTEGER*2 QWIN$TILE
  187.       INTEGER*2 QWIN$CASCADE
  188.       INTEGER*2 QWIN$ARRANGE
  189.  
  190.       PARAMETER (QWIN$STATUS  = 1)
  191.       PARAMETER (QWIN$TILE    = 2)
  192.       PARAMETER (QWIN$CASCADE = 3)
  193.       PARAMETER (QWIN$ARRANGE = 4)
  194.  
  195.       INTEGER*2 CLICKQQ[EXTERN]
  196.  
  197. C Get/Set unit focus.
  198.       INTEGER*2 FOCUSQQ[EXTERN]
  199.       INTEGER*2 INQFOCUSQQ[EXTERN]
  200.  
  201. C Size/Move a window
  202.       STRUCTURE /QWINFO/
  203.           INTEGER*2 TYPE          ! request type
  204.           INTEGER*2 X             ! x coordinate for upper left
  205.           INTEGER*2 Y             ! y coordinate for upper left
  206.           INTEGER*2 H             ! window height
  207.           INTEGER*2 W             ! window width
  208.       END STRUCTURE
  209.  
  210.       INTEGER*2 QWIN$MIN
  211.       INTEGER*2 QWIN$MAX
  212.       INTEGER*2 QWIN$RESTORE
  213.       INTEGER*2 QWIN$SET
  214.  
  215.       PARAMETER (QWIN$MIN     = 1)
  216.       PARAMETER (QWIN$MAX     = 2)
  217.       PARAMETER (QWIN$RESTORE = 3)
  218.       PARAMETER (QWIN$SET     = 4)
  219.  
  220.       INTEGER*2 SETWSIZEQQ[EXTERN]
  221.  
  222.       INTEGER*2 QWIN$FRAMEMAX
  223.       INTEGER*2 QWIN$FRAMECURR
  224.       INTEGER*2 QWIN$CHILDMAX
  225.       INTEGER*2 QWIN$CHILDCURR
  226.  
  227.       PARAMETER (QWIN$FRAMEMAX  = 1)
  228.       PARAMETER (QWIN$FRAMECURR = 2)
  229.       PARAMETER (QWIN$CHILDMAX  = 3)
  230.       PARAMETER (QWIN$CHILDCURR = 4)
  231.  
  232.       INTEGER*2 GETWSIZEQQ[EXTERN]
  233.  
  234. C Message Boxes
  235.       INTEGER*2 MB$ABORTRETRYIGNORE
  236.       INTEGER*2 MB$DEFBUTTON1
  237.       INTEGER*2 MB$DEFBUTTON2
  238.       INTEGER*2 MB$DEFBUTTON3
  239.       INTEGER*2 MB$ICONASTERISK
  240.       INTEGER*2 MB$ICONEXCLAMATION
  241.       INTEGER*2 MB$ICONHAND
  242.       INTEGER*2 MB$ICONINFORMATION
  243.       INTEGER*2 MB$ICONQUESTION
  244.       INTEGER*2 MB$ICONSTOP
  245.       INTEGER*2 MB$OK
  246.       INTEGER*2 MB$OKCANCEL
  247.       INTEGER*2 MB$RETRYCANCEL
  248.       INTEGER*2 MB$SYSTEMMODAL
  249.       INTEGER*2 MB$TASKMODAL
  250.       INTEGER*2 MB$YESNO
  251.       INTEGER*2 MB$YESNOCANCEL
  252.  
  253.       PARAMETER (MB$ABORTRETRYIGNORE = #0002)
  254.       PARAMETER (MB$DEFBUTTON1       = #0000)
  255.       PARAMETER (MB$DEFBUTTON2       = #0100)
  256.       PARAMETER (MB$DEFBUTTON3       = #0200)
  257.       PARAMETER (MB$ICONASTERISK     = #0040)
  258.       PARAMETER (MB$ICONEXCLAMATION  = #0030)
  259.       PARAMETER (MB$ICONHAND         = #0010)
  260.       PARAMETER (MB$ICONINFORMATION  = #0040)
  261.       PARAMETER (MB$ICONQUESTION     = #0020)
  262.       PARAMETER (MB$ICONSTOP         = #0010)
  263.       PARAMETER (MB$OK               = #0000)
  264.       PARAMETER (MB$OKCANCEL         = #0001)
  265.       PARAMETER (MB$RETRYCANCEL      = #0005)
  266.       PARAMETER (MB$SYSTEMMODAL      = #1000)
  267.       PARAMETER (MB$TASKMODAL        = #2000)
  268.       PARAMETER (MB$YESNO            = #0004)
  269.       PARAMETER (MB$YESNOCANCEL      = #0003)
  270.  
  271.       INTEGER*2 MB$IDOK
  272.       INTEGER*2 MB$IDCANCEL
  273.       INTEGER*2 MB$IDABORT
  274.       INTEGER*2 MB$IDRETRY
  275.       INTEGER*2 MB$IDIGNORE
  276.       INTEGER*2 MB$IDYES
  277.       INTEGER*2 MB$IDNO
  278.  
  279.       PARAMETER (MB$IDOK     = 1)
  280.       PARAMETER (MB$IDCANCEL = 2)
  281.       PARAMETER (MB$IDABORT  = 3)
  282.       PARAMETER (MB$IDRETRY  = 4)
  283.       PARAMETER (MB$IDIGNORE = 5)
  284.       PARAMETER (MB$IDYES    = 6)
  285.       PARAMETER (MB$IDNO     = 7)
  286.  
  287.       INTEGER*2 MESSAGEBOXQQ[EXTERN]
  288.  
  289. C -----------------------------------------------------------------
  290. C Time and Date Support
  291. C -----------------------------------------------------------------
  292.       LOGICAL SETTIM[EXTERN]
  293.       LOGICAL SETDAT[EXTERN]
  294.  
  295. C -----------------------------------------------------------------
  296. C Command Line Arguments
  297. C -----------------------------------------------------------------
  298.       INTEGER*4 NARGS[EXTERN]
  299.