''
''      $VER: identify.i 9.0 (14.1.98)
''
''      identify.library definitions
''
''      (C) Copyright 1996-98 Richard Koerber
''      All Rights Reserved.
''
''      basic-version: steffen.leistner@styx.in-chemnitz.de
''

'TABWIDTH = 4

REM $UNDERLINES

CONST IDTAGS&	= &HCD450000&

CONST IDENTIFYBUFLEN&	= 50&              ' default buffer length

'------------------------------------------------------------------------'
' Expansion() tags
'
CONST IDTAG_ConfigDev&		= &HCD450000&		'(struct ConfigDev ') ConfigDev
												' structure to be evaluated
CONST IDTAG_ManufID&		= &HCD450001&		'UWORD manufacturer ID if no
												' ConfigDev is available
CONST IDTAG_ProdID&			= &HCD450002&		'UBYTE product ID if no
												' ConfigDev is available
CONST IDTAG_StrLength&		= &HCD450003&		'UWORD of maximum buffer length,
												' including termination. Default
												' is 50.
CONST IDTAG_ManufStr&		= &HCD450004&		'SADD of manufacturer name
												' puffer, or NULL&
CONST IDTAG_ProdStr&		= &HCD450005&		'SADD of product name
												' puffer, or NULL&
CONST IDTAG_ClassStr&		= &HCD450006&		'SADD of product class
												' puffer, or NULL&
CONST IDTAG_DeadStr&		= &HCD450007&		'SADD deadend or recoverable alert?
CONST IDTAG_SubsysStr&		= &HCD450008&		'SADD alert subsystem
CONST IDTAG_GeneralStr&		= &HCD450009&		'SADD alert general cause
CONST IDTAG_SpecStr&		= &HCD45000A&		'SADD alert specific cause
CONST IDTAG_FuncNameStr&	= &HCD45000B&		'SADD function name
CONST IDTAG_Expansion&		= &HCD45000C&		'(struct ConfigDev '') for a
												' complete expansion check. Init
												' the variable with NULL&.
CONST IDTAG_Secondary&		= &HCD45000D&		'BOOL warn for secondary expansion
												' boards (defaults to FALSE&) [V7]
CONST IDTAG_ClassID&		= &HCD45000E&		'ULONG ' class ID of the provided
												' expansion board (see below) [V8]
CONST IDTAG_Localize&		= &HCD45000F&		'BOOL return localized strings
												' (defaults to TRUE&) [V8]
CONST IDTAG_NULL4NA&		= &HCD450010&		'BOOL return NULL& for not available,
												' else return a string (defaults to
												' FALSE&) [V8]

'------------------------------------------------------------------------'
' Hardware description types
'
CONST IDHW_SYSTEM&       =      0      ' System (Amiga,DraCo,...)              [V2]
CONST IDHW_CPU&          =      1      ' CPU (68000,68010,...,68060)
CONST IDHW_FPU&          =      2      ' FPU (---,68881,68882,68040,68060)
CONST IDHW_MMU&          =      3      ' MMU (---,68852,68030,68040,68060)
CONST IDHW_OSVER&        =      4      ' OS Version (V'.')
CONST IDHW_EXECVER&      =      5      ' Exec Version (V'.')
CONST IDHW_WBVER&        =      6      ' Workbench Version (---,V'.')
CONST IDHW_ROMSIZE&      =      7      ' OS ROM Size ('KB, 'MB)
CONST IDHW_CHIPSET&      =      8      ' Chipset (OCS,ECS,AGA,DraCo)
CONST IDHW_GFXSYS&       =      9      ' Graphic OS (AmigaOS, CyberGraphX, ...)
CONST IDHW_CHIPRAM&      =     10      ' All Chip RAM ('KB, 'MB, 'GB)
CONST IDHW_FASTRAM&      =     11      ' All Fast RAM ('KB, 'MB, 'GB)
CONST IDHW_RAM&          =     12      ' All Total RAM ('KB, 'MB, 'GB)
CONST IDHW_SETPATCHVER&  =     13      ' SetPatch Version (---,V'.')           [V4]
CONST IDHW_AUDIOSYS&     =     14      ' Audio OS (AmigaOS, AHI, ...)          [V5]
CONST IDHW_OSNR&         =     15      ' AmigaOS (2.04, 3.1, ...)
CONST IDHW_VMMCHIPRAM&   =     16      ' VMM Chip RAM ('KB, 'MB, 'GB)
CONST IDHW_VMMFASTRAM&   =     17      ' VMM Fast RAM ('KB, 'MB, 'GB)
CONST IDHW_VMMRAM&       =     18      ' VMM Total RAM ('KB, 'MB, 'GB)
CONST IDHW_PLNCHIPRAM&   =     19      ' Plain Chip RAM ('KB, 'MB, 'GB)
CONST IDHW_PLNFASTRAM&   =     20      ' Plain Fast RAM ('KB, 'MB, 'GB)
CONST IDHW_PLNRAM&       =     21      ' Plain Total RAM ('KB, 'MB, 'GB)
CONST IDHW_VBR&          =     22      ' Vector Base Register                  [V6]
CONST IDHW_LASTALERT&    =     23      ' Last Alert code
CONST IDHW_VBLANKFREQ&   =     24      ' VBlank Fr=ency
CONST IDHW_POWERFREQ&    =     25      ' Power Fr=ency
CONST IDHW_ECLOCK&       =     26      ' EClock
CONST IDHW_SLOWRAM&      =     27      ' Plain Slow RAM ('KB, 'MB, 'GB)
CONST IDHW_GARY&         =     28      ' Gary (---,Normal,...)
CONST IDHW_RAMSEY&       =     29      ' RAMSEY (---,D,F)
CONST IDHW_BATTCLOCK&    =     30      ' Battery Backed Up Clock (---,Found)
CONST IDHW_CHUNKYPLANAR& =     31      ' Chunky To Planar Hardware (---,Found) [V7]
CONST IDHW_POWERPC&      =     32      ' PowerPC present? (---,Found)
CONST IDHW_PPCCLOCK&     =     33      ' PowerPC clock (unit MHz)
CONST IDHW_CPUREV&       =     34      ' CPU revision                          [V8]
CONST IDHW_CPUCLOCK&     =     35      ' CPU clock (unit MHz)
CONST IDHW_FPUCLOCK&     =     36      ' FPU clock (unit MHz)
CONST IDHW_RAMACCESS&    =     37      ' Main board RAM access time (unit ns)
CONST IDHW_RAMWIDTH&     =     38      ' Main board RAM width (bit)
CONST IDHW_RAMCAS&       =     39      ' Main board RAM CAS mode
CONST IDHW_RAMBANDWIDTH& =     40      ' Main board RAM bandwidth
CONST IDHW_TCPIP&        =     41      ' TCP/IP stack                          [V9]
CONST IDHW_PPCOS&        =     42      ' PowerPC OS
CONST IDHW_AGNUS&        =     43      ' Agnus chip revision
CONST IDHW_AGNUSMODE&    =     44      ' Agnus chip mode
CONST IDHW_NUMBEROF&     =     45      ' Number of types, PRIVATE!

'------------------------------------------------------------------------'
' IDHW_SYSTEM numerical result codes
'
CONST IDSYS_AMIGA1000&   =      0      ' Amiga 1000
CONST IDSYS_AMIGAOCS&    =      1      ' OCS Amiga 500/2000
CONST IDSYS_AMIGAECS&    =      2      ' ECS Amiga 500/2000
CONST IDSYS_AMIGA500&    =      3      ' Amiga 500
CONST IDSYS_AMIGA2000&   =      4      ' Amiga 2000
CONST IDSYS_AMIGA3000&   =      5      ' Amiga 3000
CONST IDSYS_CDTV&        =      6      ' CDTV
CONST IDSYS_AMIGA600&    =      7      ' Amiga 600
CONST IDSYS_CD32&        =      8      ' CD32
CONST IDSYS_AMIGA1200&   =      9      ' Amiga 1200
CONST IDSYS_AMIGA4000&   =     10      ' Amiga 4000
CONST IDSYS_DRACO&       =     11      ' DraCo
CONST IDSYS_UAE&         =     12      ' Ubiquitous Amiga Emulator
CONST IDSYS_AMIGA4000T&  =     13      ' Amiga 4000 Tower

'------------------------------------------------------------------------'
' IDHW_CPU numerical result codes
'
CONST IDCPU_68000&       =      0      ' 68000
CONST IDCPU_68010&       =      1      ' 68010
CONST IDCPU_68020&       =      2      ' 68020
CONST IDCPU_68030&       =      3      ' 68030
CONST IDCPU_68EC030&     =      4      ' 68EC030 (without MMU)
CONST IDCPU_68040&       =      5      ' 68040
CONST IDCPU_68LC040&     =      6      ' 68LC040 (without FPU)
CONST IDCPU_68060&       =      7      ' 68060
CONST IDCPU_68LC060&     =      8      ' 68LC060 (without FPU)

'------------------------------------------------------------------------'
' IDHW_FPU numerical result codes
'
CONST IDFPU_NONE&        =      0      ' no FPU
CONST IDFPU_68881&       =      1      ' 68881
CONST IDFPU_68882&       =      2      ' 68882
CONST IDFPU_68040&       =      3      ' 68040
CONST IDFPU_68060&       =      4      ' 68060

'------------------------------------------------------------------------'
' IDHW_MMU numerical result codes
'
CONST IDMMU_NONE&        =      0      ' no MMU
CONST IDMMU_68851&       =      1      ' 68851
CONST IDMMU_68030&       =      2      ' 68030
CONST IDMMU_68040&       =      3      ' 68040
CONST IDMMU_68060&       =      4      ' 68060

'------------------------------------------------------------------------'
' IDHW_OSNR numerical result codes
'
CONST IDOS_UNKNOWN&      =      0      ' <V36 or >V40
CONST IDOS_2_0&          =      1      ' OS2.0  (V36)
CONST IDOS_2_04&         =      2      ' OS2.04 (V37)
CONST IDOS_2_1&          =      3      ' OS2.1  (V38)
CONST IDOS_3_0&          =      4      ' OS3.0  (V39)
CONST IDOS_3_1&          =      5      ' OS3.1  (V40)

'------------------------------------------------------------------------'
' IDHW_CHIPSET numerical result codes
'
CONST IDCS_OCS&          =      0      ' OCS
CONST IDCS_ECS&          =      1      ' ECS
CONST IDCS_AGA&          =      2      ' AGA
CONST IDCS_ALTAIS&       =      3      ' DraCo Altais
CONST IDCS_NECS&         =      4      ' Nearly ECS (no HR-Agnus or HR-Denise)

'------------------------------------------------------------------------'
' IDHW_GFXSYS numerical result codes
'
CONST IDGOS_AMIGAOS&     =      0      ' Plain AmigaOS
CONST IDGOS_EGS&         =      1      ' EGS
CONST IDGOS_RETINA&      =      2      ' Retina
CONST IDGOS_GRAFFITI&    =      3      ' Graffiti
CONST IDGOS_TIGA&        =      4      ' TIGA
CONST IDGOS_PROBENCH&    =      5      ' Merlin ProBench
CONST IDGOS_PICASSO&     =      6      ' Picasso
CONST IDGOS_CGX&         =      7      ' CyberGraphX
CONST IDGOS_CGX3&        =      8      ' CyberGraphX 3D
CONST IDGOS_PICASSO96&   =      9      ' Picasso96

'------------------------------------------------------------------------'
' IDHW_AUDIOSYS numerical result codes
'
CONST IDAOS_AMIGAOS&     =      0      ' Plain AmigaOS
CONST IDAOS_MAESTIX&     =      1      ' MaestroPro driver
CONST IDAOS_TOCCATA&     =      2      ' Toccata driver
CONST IDAOS_PRELUDE&     =      3      ' Prelude driver
CONST IDAOS_AHI&         =      4      ' AHI
CONST IDAOS_MACROAUDIO&  =      5      ' MacroAudio

'------------------------------------------------------------------------'
' IDHW_GARY numerical result codes
'
CONST IDGRY_NONE&        =      0      ' No Gary available
CONST IDGRY_NORMAL&      =      1      ' Normal Gary
CONST IDGRY_ENHANCED&    =      2      ' Enhanced Gary

'------------------------------------------------------------------------'
' IDHW_RAMSEY numerical result codes
'
CONST IDRSY_NONE&        =      0      ' No RamSey available
CONST IDRSY_REVD&        =      1      ' RamSey Revision D
CONST IDRSY_REVF&        =      2      ' RamSey Revision F

'------------------------------------------------------------------------'
' IDHW_POWERPC numerical result codes
'
CONST IDPPC_NONE&        =      0      ' No PowerPC implemented
CONST IDPPC_OTHER&       =      1      ' Another PowerPC
CONST IDPPC_602&         =      2      ' 602
CONST IDPPC_603&         =      3      ' 603
CONST IDPPC_603E&        =      4      ' 603e
CONST IDPPC_603P&        =      5      ' 603p
CONST IDPPC_604&         =      6      ' 604
CONST IDPPC_604E&        =      7      ' 604e
CONST IDPPC_620&         =      8      ' 620

'------------------------------------------------------------------------'
' IDHW_RAMCAS numerical result codes
'
CONST IDCAS_NONE&        =      0      ' Not available
CONST IDCAS_NORMAL&      =      1      ' Normal access
CONST IDCAS_DOUBLE&      =      2      ' Double access

'------------------------------------------------------------------------'
' IDHW_TCPIP numerical result codes
'
CONST IDTCP_NONE&        =      0      ' Not available
CONST IDTCP_AMITCP&      =      1      ' AmiTCP
CONST IDTCP_MIAMI&       =      2      ' Miami
CONST IDTCP_TERMITE&     =      3      ' TermiteTCP

'------------------------------------------------------------------------'
' IDHW_PPCOS numerical result codes
'
CONST IDPOS_NONE&        =      0      ' None
CONST IDPOS_POWERUP&     =      1      ' PowerUP (Phase 5)
CONST IDPOS_WARPOS&      =      2      ' WarpOS (Haage&Partner)

'------------------------------------------------------------------------'
' IDHW_AGNUS numerical result codes
'
CONST IDAG_NONE&         =      0      ' None
CONST IDAG_UNKNOWN&      =      1      ' Unknown Agnus
CONST IDAG_8361&         =      2      ' Agnus 8361
CONST IDAG_8367&         =      3      ' Agnus 8367
CONST IDAG_8370&         =      4      ' Agnus 8370
CONST IDAG_8371&         =      5      ' Agnus 8371
CONST IDAG_8372_R4&      =      6      ' Agnus 8372 Rev. 1-4
CONST IDAG_8372_R5&      =      7      ' Agnus 8372 Rev. 5
CONST IDAG_8374_R2&      =      8      ' Alice 8374 Rev. 1-2
CONST IDAG_8374_R3&      =      9      ' Alice 8374 Rev. 3-4

'------------------------------------------------------------------------'
' IDHW_AGNUSMODE numerical result codes
'
CONST IDAM_NONE&         =      0      ' None
CONST IDAM_NTSC&         =      1      ' NTSC Agnus
CONST IDAM_PAL&          =      2      ' PAL Agnus

'------------------------------------------------------------------------'
' IDTAG_ClassID numerical result codes
'
CONST IDCID_UNKNOWN&     =      0      ' unknown functionality
CONST IDCID_MISC&        =      1      ' miscellaneous expansion
CONST IDCID_TURBO&       =      2      ' accelerator
CONST IDCID_TURBORAM&    =      3      ' accelerator RAM
CONST IDCID_TURBOHD&     =      4      ' accelerator + some HD controller
CONST IDCID_TURBOIDE&    =      5      ' accelerator + AT-IDE controller
CONST IDCID_TURBOSCSIHD& =      6      ' accelerator + SCSI host adapter
CONST IDCID_NET&         =      7      ' some network
CONST IDCID_ARCNET&      =      8      ' ArcNet
CONST IDCID_ETHERNET&    =      9      ' Ethernet
CONST IDCID_AUDIO&       =     10      ' audio
CONST IDCID_VIDEO&       =     11      ' video (video digitizer etc)
CONST IDCID_MULTIMEDIA&  =     12      ' multimedia (audio, video, etc)
CONST IDCID_DSP&         =     13      ' multi purpose DSP
CONST IDCID_BUSBRIDGE&   =     14      ' ISA bus bridge
CONST IDCID_BRIDGE&      =     15      ' PC bridge
CONST IDCID_EMULATOR&    =     16      ' some Emulator hardware
CONST IDCID_MACEMU&      =     17      ' Macintosh emulator hardware
CONST IDCID_ATARIEMU&    =     18      ' Atari emulator hardware
CONST IDCID_GFX&         =     19      ' graphics (register)
CONST IDCID_GFXRAM&      =     20      ' graphics (video RAM)
CONST IDCID_HD&          =     21      ' some HD controller
CONST IDCID_HDRAM&       =     22      ' some HD controller + RAM
CONST IDCID_IDEHD&       =     23      ' IDE controller
CONST IDCID_IDEHDRAM&    =     24      ' IDE controller + RAM
CONST IDCID_SCSIHD&      =     25      ' SCSI host adapter
CONST IDCID_RAMSCSIHD&   =     26      ' SCSI host adapter + RAM
CONST IDCID_CDROM&       =     27      ' CD-ROM interface
CONST IDCID_MODEM&       =     28      ' internal modem
CONST IDCID_ISDN&        =     29      ' internal ISDN terminal adapter
CONST IDCID_MULTIIO&     =     30      ' multi I/O (serial + parallel)
CONST IDCID_SERIAL&      =     31      ' multi serial (no parallel)
CONST IDCID_PARALLEL&    =     32      ' multi parallel (no serial)
CONST IDCID_SCANIF&      =     33      ' scanner interface
CONST IDCID_TABLET&      =     34      ' drawing tablet interface
CONST IDCID_RAM&         =     35      ' plain RAM expansion
CONST IDCID_FLASHROM&    =     36      ' Flash ROM
CONST IDCID_SCSIIDE&     =     37      ' combined SCSI/IDE controller
CONST IDCID_RAMFPU&      =     38      ' RAM expansion + FPU
CONST IDCID_GUESS&       =     39      ' name was unknown but guessed
CONST IDCID_KICKSTART&   =     40      ' KickStart
CONST IDCID_RAM32&       =     41      ' 32bit RAM expansion
CONST IDCID_TURBOANDRAM& =     42      ' accelerator + RAM expansion
CONST IDCID_ACCESS&      =     43      ' access control
CONST IDCID_INTERFACE&   =     44      ' some interface
CONST IDCID_MFMHD&       =     45      ' MFM HD controller

		' Be prepared to get other numbers as well. In this case you
		' should assume IDCID_MISC.

'------------------------------------------------------------------------'
' Error codes
'
				'Positive error codes are DOS errors!
CONST IDERR_OKAY&        =      0      'No error
CONST IDERR_NOLENGTH&    =     -1&     'Buffer length is 0 ??
CONST IDERR_BADID&       =     -2&     'Missing or bad board ID
CONST IDERR_NOMEM&       =     -3&     'Not enough memory
CONST IDERR_NOFD&        =     -4&     'No fitting FD file found
CONST IDERR_OFFSET&      =     -5&     'Function offset not found
CONST IDERR_DONE&        =     -6&     'Done with traversing (not an error)
CONST IDERR_SECONDARY&   =     -7&     'Secondary expansion board (not an error)

'------------------------------------------------------------------------'
' That's all...
'


