home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Exec 4 / CD_Magazyn_EXEC_nr_4.iso / Recent / util / libs / IdentifyDev.lha / Identify / developer / identify.doc < prev    next >
Text File  |  1999-12-27  |  29KB  |  839 lines

  1. TABLE OF CONTENTS
  2.  
  3. identify.library/IdAlert
  4. identify.library/IdEstimateFormatSize
  5. identify.library/IdExpansion
  6. identify.library/IdFormatString
  7. identify.library/IdFunction
  8. identify.library/IdHardware
  9. identify.library/IdHardwareNum
  10. identify.library/IdHardwareUpdate
  11.  
  12. identify.library/IdAlert
  13.  
  14.    NAME
  15.         IdAlert - get description of an alert (V3)
  16.  
  17.    SYNOPSIS
  18.         Error = IdAlert(Code,TagList)
  19.         D0.l            D0.l   A0.l
  20.  
  21.         LONG IdAlert(ULONG, struct TagItem *);
  22.  
  23.         Error = IdAlertTags(Code,Tag1,...)
  24.  
  25.         LONG IdAlertTags(ULONG, ULONG,...);
  26.  
  27.    FUNCTION
  28.         Get a human readable description of the alert ('Guru') code.
  29.  
  30.    INPUTS
  31.         Code          -- (ULONG) alert code, as defined in exec/alerts.h
  32.  
  33.         TagList       -- (struct TagItem *) tags that describe further
  34.                          options.
  35.  
  36.    RESULT
  37.         Error         -- (LONG) error code, or 0 if everything went fine.
  38.  
  39.    TAGS
  40.         IDTAG_DeadStr           -- (STRPTR) Alert type string (deadend or
  41.                 recoverable). You may skip this tag if you do not want to get
  42.                 the string.
  43.  
  44.         IDTAG_SubsysStr         -- (STRPTR) String of the subsystem that caused
  45.                 the alert (CPU, exec.library, ...). You may skip this tag if you
  46.                 do not want to get the string.
  47.  
  48.         IDTAG_GeneralStr        -- (STRPTR) General alert cause. You  may skip
  49.                 this tag if you do not want to get the string.
  50.  
  51.         IDTAG_SpecStr           -- (STRPTR) Specified alert cause. You may skip
  52.                 this tag if you do not want to get the string.
  53.  
  54.         IDTAG_StrLength         -- (UWORD) Maximum length of the string buffer,
  55.                 including termination. Defaults to 50.
  56.  
  57.         IDTAG_Localize          -- [V8] (BOOL) FALSE to get English strings
  58.                 only, TRUE for localized strings. This is useful for applications
  59.                 with English as only language. Defaults to TRUE.
  60.  
  61.    NOTE
  62.         This call is guaranteed to preserve all registers except D0.
  63.  
  64.    BUGS
  65.  
  66.    SEE ALSO
  67.  
  68. identify.library/IdEstimateFormatSize
  69.    NAME
  70.         IdEstimateFormatSize - estimate size of a format buffer (V11)
  71.  
  72.    SYNOPSIS
  73.         Length = IdEstimateFormatSize(String,Tags)
  74.          D0.l                          A0.l  A1.l
  75.  
  76.         ULONG IdEstimateFormatSize(STRPTR, struct TagItem *);
  77.  
  78.         Length = IdEstimateFormatSizeTags(String,Tag1,...)
  79.  
  80.         ULONG IdEstimateFormatSizeTags(STRPTR,ULONG,...);
  81.  
  82.    FUNCTION
  83.         Estimates the size of the buffer that will contain the output
  84.         of the format string when used on IdFormatString().
  85.  
  86.    INPUTS
  87.         String          -- (STRPTR) Format string
  88.         Tags            -- (struct TagItem *) Tags, currently NULL or
  89.                 TAG_DONE.
  90.  
  91.    RESULT
  92.         Length          -- (ULONG) Length of the buffer size that will
  93.                 be able to hold the entire result.
  94.  
  95.    NOTE
  96.         The returned size will be large enough to contain the result
  97.         of a IdFormatString(). It is not necessarily the size of the
  98.         resulting buffer (the result length of IdFormatString()).
  99.  
  100.         This call is guaranteed to preserve all registers except D0.
  101.  
  102.    BUGS
  103.  
  104.    SEE ALSO
  105.         IdHardware(), IdFormatString()
  106.  
  107. identify.library/IdExpansion
  108.  
  109.    NAME
  110.         IdExpansion - get name of expansion board (V3)
  111.  
  112.    SYNOPSIS
  113.         Error = IdExpansion(TagList)
  114.         D0.l                  A0.l
  115.  
  116.         LONG IdExpansion(struct TagItem *);
  117.  
  118.         Error = IdExpansionTags(Tag1,...)
  119.  
  120.         LONG IdExpansionTags(ULONG,...);
  121.  
  122.    FUNCTION
  123.         Gets the name and class of the expansion and it's manufacturer.
  124.  
  125.    INPUTS
  126.         TagList       -- (struct TagItem *) tags that describe further
  127.                          options.
  128.    RESULT
  129.         Error         -- (LONG) error code, or 0 if everything went fine.
  130.  
  131.                 IDERR_NOLENGTH  -- IDTAG_StrLength has been set to 0!
  132.                 IDERR_BADID     -- IDTAG_ManufID and IDTAG_ProdID were
  133.                         out of range or one of them was missing.
  134.                 IDERR_DONE      -- Checked all expansions using the
  135.                         IDTAG_Expansion tag. This is not really an error.
  136.                 IDERR_SECONDARY -- This expansion is secondary to a primary
  137.                         expansion entry.
  138.  
  139.    TAGS
  140.         IDTAG_ConfigDev         -- (struct ConfigDev *) ConfigDev structure
  141.                 containing all information. You should use this tag if ever
  142.                 possible, since there are more possibilities to recognize and
  143.                 distinguish between a board.
  144.  
  145.         IDTAG_ManufID           -- (UWORD) Manufacturer ID if ConfigDev is not
  146.                 provided. You must also provide IDTAG_ProdID!
  147.  
  148.         IDTAG_ProdID            -- (UBYTE) Product ID if ConfigDev is not
  149.                 provided. You must also provide IDTAG_ManufID!
  150.  
  151.         IDTAG_ManufStr          -- (STRPTR) Pointer to a buffer space for the
  152.                 manufacturer name. You may skip this tag if you do not want
  153.                 to get this string.
  154.  
  155.         IDTAG_ProdStr           -- (STRPTR) Pointer to a buffer space for the
  156.                 product name. You may skip this tag if you do not want to get
  157.                 this string.
  158.  
  159.         IDTAG_ClassStr          -- (STRPTR) Pointer to a buffer space for the
  160.                 product class. You may skip this tag if you do not want to get
  161.                 this string.
  162.  
  163.         IDTAG_StrLength         -- (UWORD) Buffer length, including
  164.                 termination. Defaults to 50.
  165.  
  166.         IDTAG_Expansion         -- [V6] (struct ConfigDev **) Use this tag to
  167.                 easily traverse through the expansion board list. Init the
  168.                 pointed variable with NULL. After each call, you will find
  169.                 the current ConfigDev pointer in this variable. If you are
  170.                 done, this function returns IDERR_DONE and the variable is set
  171.                 to NULL. See example.
  172.  
  173.         IDTAG_Secondary         -- [V7] (BOOL) If set to TRUE, identify will
  174.                 warn about secondary expansions. E.g. some graphic boards
  175.                 create more than one entry in the expansion list. Then, one
  176.                 entry is the primary entry, and any additional are secondary.
  177.                 This tag does only make sense when checking all mounted
  178.                 expansions. Defaults to FALSE. (See Bugs)
  179.  
  180.         IDTAG_ClassID           -- [V8] (ULONG *) The ULONG field will be filled
  181.                 with a numerical class ID of the expansion (see include file:
  182.                 IDCID_...). IMPORTANT: You MUST be prepared to get a number
  183.                 that does not match to any IDCID value. In this case, assume
  184.                 IDCID_MISC.
  185.  
  186.         IDTAG_Localize          -- [V8] (BOOL) FALSE to get English strings
  187.                 only, TRUE for localized strings. This is useful for applications
  188.                 with English as only language. Defaults to TRUE.
  189.  
  190.    EXAMPLE
  191.         To check all expansion boards, you may use this code:
  192.  
  193.         void PrintExpansions(void)
  194.         {
  195.           struct ConfigDev *expans = NULL;
  196.           char manuf[IDENTIFYBUFLEN];
  197.           char prod[IDENTIFYBUFLEN];
  198.           char pclass[IDENTIFYBUFLEN];
  199.  
  200.           while(!IdExpansionTags(
  201.                   IDTAG_ManufStr ,manuf,
  202.                   IDTAG_ProdStr  ,prod,
  203.                   IDTAG_ClassStr ,pclass,
  204.                   IDTAG_Expansion,&expans,
  205.                   TAG_DONE))
  206.           {
  207.             Printf("Current ConfigDev = 0x%08lx\n",expans);
  208.             Printf("  Manufacturer    = %s\n",manuf);
  209.             Printf("  Product         = %s\n",prod);
  210.             Printf("  Expansion class = %s\n\n",class);
  211.           }
  212.         }
  213.  
  214.    NOTE
  215.         If the manufacturer or the product is not known, the string will be
  216.         filled with its number.
  217.  
  218.         This call is guaranteed to preserve all registers except D0.
  219.  
  220.    BUGS
  221.         You must also provide IDTAG_ProdStr if you want to use IDTAG_Secondary.
  222.  
  223.         There are by far not all existing boards implemented. Please send
  224.         the manufacturer id and name and the products id, name and class
  225.         of all unknown boards to me. My E-Mail: "shred@eratosthenes.starfleet.de"
  226.  
  227.    SEE ALSO
  228.  
  229. identify.library/IdFormatString
  230.    NAME
  231.         IdFormatString - format a hardware string (V11)
  232.  
  233.    SYNOPSIS
  234.         Length = IdFormatString(String,Buffer,Length,Tags)
  235.          D0.l                    A0.l   A1.l   D0.l  A2.l
  236.  
  237.         ULONG IdFormatString(STRPTR, STRPTR, ULONG, struct TagItem *);
  238.  
  239.         Length = IdFormatStringTags(String,Buffer,Length,Tag1,...)
  240.  
  241.         ULONG IdFormatStringTags(STRPTR, STRPTR, ULONG, ...);
  242.  
  243.    FUNCTION
  244.         The buffer will be filled with the format string until
  245.         the format string terminates or the buffer size is reached.
  246.  
  247.         The format string may contain format tags, which are
  248.         surrounded by dollar signs. Doing so, the printf formattings
  249.         are kept for a following printf.
  250.  
  251.         Format tags are case sensitive!
  252.  
  253.         If you want to write a dollar sign, then double it: '$$'.
  254.  
  255.         These format tags are known:
  256.  
  257.                 $SYSTEM$
  258.                 $CPU$
  259.                 $FPU$
  260.                 $MMU$
  261.                 $OSVER$
  262.                 $EXECVER$
  263.                 $WBVER$
  264.                 $ROMSIZE$
  265.                 $CHIPSET$
  266.                 $GFXSYS$
  267.                 $CHIPRAM$
  268.                 $FASTRAM$
  269.                 $RAM$
  270.                 $SETPATCHVER$
  271.                 $AUDIOSYS$
  272.                 $OSNR$
  273.                 $VMMCHIPRAM$
  274.                 $VMMFASTRAM$
  275.                 $VMMRAM$
  276.                 $PLNCHIPRAM$
  277.                 $PLNFASTRAM$
  278.                 $PLNRAM$
  279.                 $VBR$
  280.                 $LASTALERT$
  281.                 $VBLANKFREQ$
  282.                 $POWERFREQ$
  283.                 $ECLOCK$
  284.                 $SLOWRAM$
  285.                 $GARY$
  286.                 $RAMSEY$
  287.                 $BATTCLOCK$
  288.                 $CHUNKYPLANAR$
  289.                 $POWERPC$
  290.                 $PPCCLOCK$
  291.                 $CPUREV$
  292.                 $CPUCLOCK$
  293.                 $FPUCLOCK$
  294.                 $RAMACCESS$
  295.                 $RAMWIDTH$
  296.                 $RAMCAS$
  297.                 $RAMBANDWIDTH$
  298.                 $TCPIP$
  299.                 $PPCOS$
  300.                 $AGNUS$
  301.                 $AGNUSMODE$
  302.                 $DENISE$
  303.                 $DENISEREV$
  304.                 $BOINGBAG$
  305.  
  306.         For their meanings, see the include file.
  307.  
  308.    INPUTS
  309.         String          -- (STRPTR) Format string
  310.  
  311.         Buffer          -- (STRPTR) Buffer to be filled with the result
  312.                 until the format string terminates or the buffer size
  313.                 is reached.
  314.  
  315.         Length          -- (ULONG) Length of the buffer, including the
  316.                 null termination.
  317.  
  318.         Tags            -- (struct TagItem *) For future compatibility.
  319.                 You must provide NULL or a pointer to TAG_DONE.
  320.  
  321.    TAGS
  322.  
  323.    RESULT
  324.         Length          -- (ULONG) Length of the buffer that really
  325.                 has been used.
  326.  
  327.    EXAMPLE
  328.         "Your CPU is a $CPU$ with $CPUCLOCK$ MHz"
  329.  
  330.    NOTE
  331.         Remember that, unlike RawDoFmt(), the format tags must be
  332.         surrounded, i.e. started and ended, by a dollar sign '$'.
  333.  
  334.         This call is guaranteed to preserve all registers except D0.
  335.  
  336.    BUGS
  337.  
  338.    SEE ALSO
  339.         IdHardware(), IdEstimateFormatSize()
  340.  
  341. identify.library/IdFunction
  342.  
  343.    NAME
  344.         IdFunction - identify function name by offset (V4)
  345.  
  346.    SYNOPSIS
  347.         Error = IdFunction(LibName,Offset,TagList)
  348.         D0.l                A0.l    D0.l   A1.l
  349.  
  350.         LONG IdFunction(STRPTR, LONG, struct TagItem *);
  351.  
  352.         Error = IdFunctionTags(LibName,Offset,Tag1,...)
  353.  
  354.         LONG IdFunctionTags(STRPTR, LONG, ULONG,...);
  355.  
  356.    FUNCTION
  357.         Decodes the offset of the provided library name into function name.
  358.  
  359.         This function requires the .fd files in a drawer with 'FD:' assigned
  360.         to it. All files must have the standard file name format, e.g.
  361.         'exec_lib.fd'.
  362.  
  363.         The appropriate .fd file will be scanned. The result will be
  364.         cached until the identify.library is removed from system.
  365.  
  366.    INPUTS
  367.         LibName       -- (STRPTR) name of the function's library, device
  368.                         or resource. All letters behind the point (and
  369.                         the point itself) are optional. The name is
  370.                         case sensitive.
  371.  
  372.                         Examples: 'exec.library', 'dos', 'cia.resource'.
  373.  
  374.         Offset        -- (LONG) offset of the function. It must be a
  375.                         multiple of 6. You do not need to provide the
  376.                         minus sign.
  377.  
  378.                         Examples: -456, 60
  379.  
  380.         TagList       -- (struct TagItem *) tags that describe further
  381.                         options.
  382.  
  383.    RESULT
  384.         Error         -- (LONG) error code, or 0 if everything went fine.
  385.  
  386.    TAGS
  387.         IDTAG_FuncNameStr       -- (STRPTR) Buffer where the function name
  388.                 will be copied into.
  389.  
  390.         IDTAG_StrLength -- (UWORD) Maximum length of the string buffer,
  391.                 including termination. Defaults to 50.
  392.  
  393.    NOTE
  394.         This call is guaranteed to preserve all registers except D0.
  395.  
  396.    BUGS
  397.         Every line in the .fd file must have a maximum of 254 characters.
  398.         Otherwise the internal offset table may be corrupted (but the
  399.         system won't be harmed). Anyhow, this should be no problem.
  400.  
  401.    SEE ALSO
  402.  
  403. identify.library/IdHardware
  404.    NAME
  405.         IdHardware - get information about the system, string (V3)
  406.  
  407.    SYNOPSIS
  408.         String = IdHardware(Type,TagList)
  409.          D0.l               D0.l   A0.l
  410.  
  411.         STRPTR IdHardware(ULONG, struct TagItem *);
  412.  
  413.         String = IdHardwareTags(Type,Tag1,...)
  414.  
  415.         STRPTR IdHardwareTags(ULONG, ULONG,...);
  416.  
  417.    FUNCTION
  418.         Gets information about the current system environment. The result
  419.         is returned as read only string. This function is fully DraCo
  420.         compatible!
  421.  
  422.         Once a information has been evaluated, it will be cached internally,
  423.         so changes will be ignored. Use IdHardwareUpdate() to clear the cache
  424.         contents.
  425.  
  426.    INPUTS
  427.         Type          -- (ULONG) Information type. These types are known:
  428.  
  429.                 IDHW_SYSTEM     -- What system is used?
  430.                         (e. g. "Amiga 4000")
  431.  
  432.                 IDHW_CPU        -- What kind of CPU is available?
  433.                         (e. g. "68060")
  434.  
  435.                 IDHW_FPU        -- What kind of FPU is available?
  436.                         (e. g. "68060")
  437.  
  438.                 IDHW_MMU        -- What kind of MMU is available?
  439.                         (e. g. "68060")
  440.  
  441.                 IDHW_OSVER      -- What OS version is used?
  442.                         (e.g. "V39.106")
  443.  
  444.                 IDHW_EXECVER    -- What exec version is used?
  445.                         (e.g. "V39.47")
  446.  
  447.                 IDHW_WBVER      -- What WorkBench version is used?
  448.                         (e.g. "V39.29")
  449.  
  450.                 IDHW_ROMSIZE    -- Size of AmigaOS ROM
  451.                         (e.g. "512KB")
  452.  
  453.                 IDHW_CHIPSET    -- What Chipset is available?
  454.                         (e.g. "AGA")
  455.  
  456.                 IDHW_GFXSYS     -- What Graphic OS is used?
  457.                         (e.g. "CyberGraphX")
  458.  
  459.                 IDHW_CHIPRAM    -- Size of complete Chip RAM
  460.                         (e.g. "~2.0MB")
  461.  
  462.                 IDHW_FASTRAM    -- Size of complete Fast RAM
  463.                         (e.g. "12.0MB")
  464.  
  465.                 IDHW_RAM        -- Size of complete System RAM
  466.                         (e.g. "~14.0MB")
  467.  
  468.                 IDHW_SETPATCHVER -- [V4] Version of current SetPatch
  469.                         (e.g. "V40.14")
  470.  
  471.                 IDHW_AUDIOSYS   -- [V5] What Audio OS is used?
  472.                         (e.g. "AHI")
  473.  
  474.                 IDHW_OSNR       -- [V5] What AmigaOS is used?
  475.                         (e.g. "3.1")
  476.  
  477.                 IDHW_VMMCHIPRAM -- [V5] Size of virtual Chip RAM
  478.                         (e.g. "0")
  479.  
  480.                 IDHW_VMMFASTRAM -- [V5] Size of virtual Fast RAM
  481.                         (e.g. "40.0MB")
  482.  
  483.                 IDHW_VMMRAM     -- [V5] Size of total virtual RAM
  484.                         (e.g. "40.0MB")
  485.  
  486.                 IDHW_PLNCHIPRAM -- [V5] Size of non-virtual Chip RAM
  487.                         (e.g. "2.0MB")
  488.  
  489.                 IDHW_PLNFASTRAM -- [V5] Size of non-virtual Fast RAM
  490.                         (e.g. "12.0MB")
  491.  
  492.                 IDHW_PLNRAM     -- [V5] Size of total non-virtual RAM
  493.                         (e.g. "14.0MB")
  494.  
  495.                 IDHW_VBR        -- [V6] Vector Base Register contents
  496.                         (e.g. "0x0806C848")
  497.  
  498.                 IDHW_LASTALERT  -- [V6] Last Alert code
  499.                         (e.g. "80000003")
  500.  
  501.                 IDHW_VBLANKFREQ -- [V6] VBlank frequency (see execbase.h)
  502.                         (e.g. "50 Hz")
  503.  
  504.                 IDHW_POWERFREQ  -- [V6] Power supply frequency (see execbase.h)
  505.                         (e.g. "50 Hz")
  506.  
  507.                 IDHW_ECLOCK     -- [V6] System E clock frequency
  508.                         (e.g. "709379 Hz")
  509.  
  510.                 IDHW_SLOWRAM    -- [V6] A500/A2000 "Slow" RAM expansion
  511.                         (e.g. "512.0KB")
  512.  
  513.                 IDHW_GARY       -- [V6] GARY revision
  514.                         (e.g. "Normal")
  515.  
  516.                 IDHW_RAMSEY     -- [V6] RAMSEY revision
  517.                         (e.g. "F")
  518.  
  519.                 IDHW_BATTCLOCK  -- [V6] Battery backed up clock present?
  520.                         (e.g. "Found")
  521.  
  522.                 IDHW_CHUNKYPLANAR -- [V7] Chunky to planar hardware present?
  523.                         (e.g. "Found")
  524.  
  525.                 IDHW_POWERPC    -- [V7] PowerPC CPU present?
  526.                         (e.g. "603e")
  527.  
  528.                 IDHW_PPCCLOCK   -- [V7] PowerPC processor clock
  529.                         (e.g. "200 MHz")
  530.  
  531.                 IDHW_CPUREV     -- [V8] Revision of the main processor, if
  532.                         available (e.g. "Rev 1")
  533.  
  534.                 IDHW_CPUCLOCK   -- [V8] CPU clock
  535.                         (e.g. "50 MHz")
  536.  
  537.                 IDHW_FPUCLOCK   -- [V8] FPU clock, if available
  538.                         (e.g. "50 MHz")
  539.  
  540.                 IDHW_RAMACCESS  -- [V8] Access time of the main board RAM
  541.                         (e.g. "80 ns")
  542.  
  543.                 IDHW_RAMWIDTH   -- [V8] Width of the main board RAM
  544.                         (e.g. "16 bit")
  545.  
  546.                 IDHW_RAMCAS     -- [V8] CAS mode of the main board RAM
  547.                         (e.g. "Double")
  548.  
  549.                 IDHW_RAMBANDWIDTH -- [V8] Bandwidth of the main board RAM
  550.                         (e.g. "2")
  551.  
  552.                 IDHW_TCPIP      -- [V9] Used TCP/IP stack
  553.                         (e.g. "AmiTCP/IP")
  554.  
  555.                 IDHW_PPCOS      -- [V9] Used PowerPC OS
  556.                         (e.g. "PowerUp")
  557.  
  558.                 IDHW_AGNUS      -- [V9] Agnus chip type and revision
  559.                         (e.g. "Alice 8374 Rev. 3-4")
  560.  
  561.                 IDHW_AGNUSMODE  -- [V9] Agnus chip mode
  562.                         (e.g. "PAL")
  563.  
  564.                 IDHW_DENISE     -- [V10] Denise chip type
  565.                         (e.g. "Lisa 8364")
  566.  
  567.                 IDHW_DENISEREV  -- [V10] Denise chip revision
  568.                         (e.g. "0")
  569.  
  570.                 IDHW_BOINGBAG   -- [V12] AmigaOS Boing Bag
  571.                         (e.g. "1")
  572.  
  573.         TagList       -- (struct TagItem *) tags that describe further
  574.                          options. You may provide NULL.
  575.  
  576.    TAGS
  577.         IDTAG_Localize          -- [V8] (BOOL) FALSE to get English strings
  578.                 only, TRUE for localized strings. This is useful for applications
  579.                 with English as only language. Defaults to TRUE.
  580.  
  581.         IDTAG_NULL4NA           -- [V8] (BOOL) TRUE to get NULL pointer instead
  582.                 of a 'not available' string. Defaults to FALSE.
  583.  
  584.    RESULT
  585.         String        -- (STRPTR) String containing the desired
  586.                 information, or NULL if not available. Note that
  587.                 all strings are READ ONLY!
  588.  
  589.    NOTE
  590.         This call is guaranteed to preserve all registers except D0.
  591.  
  592.    BUGS
  593.  
  594.    SEE ALSO
  595.         IdHardwareNum(), IdHardwareUpdate()
  596.  
  597. identify.library/IdHardwareNum
  598.    NAME
  599.         IdHardwareNum - get information about the system, numerical (V6)
  600.  
  601.    SYNOPSIS
  602.         Result = IdHardwareNum(Type,TagList)
  603.          D0.l                  D0.l   A0.l
  604.  
  605.         ULONG IdHardwareNum(ULONG, struct TagItem *);
  606.  
  607.         Result = IdHardwareNumTags(Type,Tag1,...)
  608.  
  609.         ULONG IdHardwareNumTags(ULONG, ULONG,...);
  610.  
  611.    FUNCTION
  612.         Gets information about the current system environment. The result
  613.         is returned numerical. This function is fully DraCo compatible!
  614.  
  615.         Once a information has been read, it will be cached internally, so
  616.         changes will be ignored. Use IdHardwareUpdate() to clear the cache
  617.         contents.
  618.  
  619.    INPUTS
  620.         Type          -- (ULONG) Information type. These types are known
  621.                 (see include file and NOTE for detailed description):
  622.  
  623.                 IDHW_SYSTEM     -- What system is used?
  624.                         (include file: IDSYS_...)
  625.  
  626.                 IDHW_CPU        -- What kind of CPU is available?
  627.                         (include file: IDCPU_...)
  628.  
  629.                 IDHW_FPU        -- What kind of FPU is available?
  630.                         (include file: IDFPU_...)
  631.  
  632.                 IDHW_MMU        -- What kind of MMU is available?
  633.                         (include file: IDMMU_...)
  634.  
  635.                 IDHW_OSVER      -- What OS version is used?
  636.                         (version, revision)
  637.  
  638.                 IDHW_EXECVER    -- What exec version is used?
  639.                         (version, revision)
  640.  
  641.                 IDHW_WBVER      -- What WorkBench version is used?
  642.                         (version, revision; 0 if not available)
  643.  
  644.                 IDHW_ROMSIZE    -- Size of AmigaOS ROM
  645.                         (size in bytes)
  646.  
  647.                 IDHW_CHIPSET    -- What Chipset is available?
  648.                         (include file: IDCS_...)
  649.  
  650.                 IDHW_GFXSYS     -- What Graphic OS is used?
  651.                         (include file: IDGOS_...)
  652.  
  653.                 IDHW_CHIPRAM    -- Size of complete Chip RAM
  654.                         (size in bytes)
  655.  
  656.                 IDHW_FASTRAM    -- Size of complete Fast RAM
  657.                         (size in bytes)
  658.  
  659.                 IDHW_RAM        -- Size of complete System RAM
  660.                         (size in bytes)
  661.  
  662.                 IDHW_SETPATCHVER -- Version of current SetPatch
  663.                         (version, revision; 0 if not available)
  664.  
  665.                 IDHW_AUDIOSYS   -- What Audio OS is used?
  666.                         (include file: IDAOS_...)
  667.  
  668.                 IDHW_OSNR       -- What AmigaOS is used?
  669.                         (include file: IDOS_...)
  670.  
  671.                 IDHW_VMMCHIPRAM -- Size of virtual Chip RAM
  672.                         (size in bytes)
  673.  
  674.                 IDHW_VMMFASTRAM -- Size of virtual Fast RAM
  675.                         (size in bytes)
  676.  
  677.                 IDHW_VMMRAM     -- Size of total virtual RAM
  678.                         (size in bytes)
  679.  
  680.                 IDHW_PLNCHIPRAM -- Size of non-virtual Chip RAM
  681.                         (size in bytes)
  682.  
  683.                 IDHW_PLNFASTRAM -- Size of non-virtual Fast RAM
  684.                         (size in bytes)
  685.  
  686.                 IDHW_PLNRAM     -- Size of total non-virtual RAM
  687.                         (size in bytes)
  688.  
  689.                 IDHW_VBR        -- Vector Base Register contents
  690.                         (address)
  691.  
  692.                 IDHW_LASTALERT  -- Last Alert code
  693.                         (ULONG, 0xFFFFFFFF: no last alert yet)
  694.  
  695.                 IDHW_VBLANKFREQ -- VBlank frequency (see execbase.h)
  696.                         (ULONG, Unit Hertz)
  697.  
  698.                 IDHW_POWERFREQ  -- Power supply frequency (see execbase.h)
  699.                         (ULONG, Unit Hertz)
  700.  
  701.                 IDHW_ECLOCK     -- System E clock frequency
  702.                         (ULONG, Unit Hertz)
  703.  
  704.                 IDHW_SLOWRAM    -- A500/A2000 "Slow" RAM expansion
  705.                         (size in bytes)
  706.  
  707.                 IDHW_GARY       -- GARY revision
  708.                         (include file: IDGRY_...)
  709.  
  710.                 IDHW_RAMSEY     -- RAMSEY revision
  711.                         (include file: IDRSY_...)
  712.  
  713.                 IDHW_BATTCLOCK  -- Battery backed up clock present?
  714.                         (BOOL)
  715.  
  716.                 IDHW_CHUNKYPLANAR -- [V7] Chunky to planar hardware present?
  717.                         (BOOL)
  718.  
  719.                 IDHW_POWERPC    -- [V7] PowerPC CPU present?
  720.                         (include file: IDPPC_...)
  721.  
  722.                 IDHW_PPCCLOCK   -- [V7] PowerPC processor clock
  723.                         (ULONG clock in MHz units, or 0: not available)
  724.  
  725.                 IDHW_CPUREV     -- [V8] Revision of the main processor
  726.                         (LONG revision or -1 if not available)
  727.  
  728.                 IDHW_CPUCLOCK   -- [V8] CPU clock
  729.                         (ULONG clock in MHz units)
  730.  
  731.                 IDHW_FPUCLOCK   -- [V8] FPU clock, if available
  732.                         (ULONG clock in MHz units, or 0: not available)
  733.  
  734.                 IDHW_RAMACCESS  -- [V8] Access time of the main board RAM
  735.                         (ULONG in ns units, or 0: not available)
  736.  
  737.                 IDHW_RAMWIDTH   -- [V8] Width of the main board RAM
  738.                         (ULONG in bit, or 0: not available)
  739.  
  740.                 IDHW_RAMCAS     -- [V8] CAS mode of the main board RAM
  741.                         (include file: IDCAS_...)
  742.  
  743.                 IDHW_RAMBANDWIDTH -- [V8] Bandwidth of the main board RAM
  744.                         (ULONG in times, or 0: not available)
  745.  
  746.                 IDHW_TCPIP      -- [V9] Used TCP/IP stack
  747.                         (include file: IDTCP_...)
  748.  
  749.                 IDHW_PPCOS      -- [V9] Used PowerPC OS
  750.                         (include file: IDPOS_...)
  751.  
  752.                 IDHW_AGNUS      -- [V9] Agnus chip type and revision
  753.                         (include file: IDAG_...)
  754.  
  755.                 IDHW_AGNUSMODE  -- [V9] Agnus chip mode
  756.                         (include file: IDAM_...)
  757.  
  758.                 IDHW_DENISE     -- [V10] Denise chip type
  759.                         (include file: IDDN_...)
  760.  
  761.                 IDHW_DENISEREV  -- [V10] Denise chip revision
  762.                         (LONG, -1 means not available)
  763.  
  764.                 IDHW_BOINGBAG   -- [V12] AmigaOS Boing Bag
  765.                         (LONG, 0 means not available)
  766.  
  767.         TagList       -- (struct TagItem *) tags that describe further
  768.                          options. You may provide NULL.
  769.  
  770.    TAGS
  771.         None yet.
  772.  
  773.    RESULT
  774.         Result        -- (ULONG) Numerical result containing the desired
  775.                 information.
  776.  
  777.    NOTE
  778.         If you queried a version, you'll find the version in the *lower*
  779.         UWORD (because it is more important) and the revision in the
  780.         *upper* UWORD.
  781.  
  782.         All memory sizes are always in bytes.
  783.  
  784.         Boolean results are ==0 for FALSE, !=0 for TRUE.
  785.  
  786.         If you have to look up the result in the include file, you might
  787.         also get a numerical result that is beyond the maximum value you'll
  788.         find there. Be prepared for it! In this case, just print "not known"
  789.         or anything similar, or use the IdHardware() result.
  790.  
  791.         This call is guaranteed to preserve all registers except D0.
  792.  
  793.    BUGS
  794.  
  795.    SEE ALSO
  796.         IdHardware(), IdHardwareUpdate()
  797.  
  798. identify.library/IdHardwareUpdate
  799.    NAME
  800.         IdHardwareUpdate - invalidate the hardware information (V8)
  801.  
  802.    SYNOPSIS
  803.         IdHardwareUpdate()
  804.  
  805.         void IdHardwareUpdate(void);
  806.  
  807.    FUNCTION
  808.         Once a hardware information has been evaluated, the result will be
  809.         stored in an internal cache. All subsequent queries return the cache
  810.         contents, irregarding of any changes.
  811.  
  812.         This function invalidates the cache and forces identify to re-check
  813.         ALL hardware features. Useful if e.g. the amount of memory has changed
  814.         after VMM has been started.
  815.  
  816.         Use this function wisely. DO NOT call it just to make sure to get the
  817.         latest information, let the user decide to do so. Also, DO NOT call
  818.         it when you will only query hardware information that will for sure
  819.         not change while run-time, e.g. CPU.
  820.  
  821.         IDHW_VBR, IDHW_LASTALERT and IDHW_TCPIP are NOT cached, so there is
  822.         absolutely no need to call IdHardwareUpdate() just to check them out.
  823.  
  824.    INPUTS
  825.  
  826.    RESULT
  827.  
  828.    NOTE
  829.         This call is guaranteed to preserve all registers.
  830.  
  831.    BUGS
  832.         Calling this function in identify V8.0 will lead to a system crash.
  833.         This has been fixed in V8.1.
  834.  
  835.    SEE ALSO
  836.         IdHardware(), IdHardwareNum()
  837.  
  838.  
  839.