identify.library

A library that converts cryptical IDs to a human-readable form Version 6.0, 27 April 1997

Richard Körber

Copyright \begin{matrix}c \\ ◯ \end{matrix} 1996-97 by Richard Körber Please read the Copyright chapter!

1 Introduction

The identify.library has a rather long history.

It all began when I got mad about all the System info programs only showing the expansion boards as a number. So I wrote expname.library, which you may already be familiar with.

Later, expname could also identify the system’s parameters (even if it was wrong sometimes ;) ). I still have new ideas for this library. The only trouble is that the name does not fit any more.

Well, now you have the second generation of the expname.library, called identify.library. It has been completely rewritten and expanded. The conceptional flaws of the expname.library have been removed, and a lot of new features have been added.

The library has currently these features:

• Converting manufacturer and product id into manufacturer name, product name, and product class.

• Converting the cryptical Amiga Guru codes into readable descriptions.

• Analyzing the system’s configuration (system type, processor, memory, graphics and so on...).

• Converting shared library offsets into function names.

Even if the library appears to be quite ready — it is still far from complete!

I need your help! Please send manufacturer and product names and IDs, your system’s configuration, suggestions, bug reports and so on; simply all you want to see implemented in the library.

2 Copyright

Please read this part carefully.

COPYRIGHT This software is copyrighted by Richard Körber. That means that you are NOT AL-LOWED to modify the program and documentation in any way. Especially you MUST NOT REMOVE the documentation, include files or this text file. You are NOT allowed to use this software or any part of it for any other purpose than that one mentioned in its documentation, this also includes any fonts, images or samples. You are NOT allowed to decompile, disassemble or reverse-engineer any part of the packet. This means the expansion database in particular! You need written permission from the author if you want to extract parts of the documentation or include files for own documentation or include files. The ONLY exception is this copyright note, which may be used freely.

FREEWARE This packet is FREEWARE. You are allowed to use it without any registration fee. Note that you only have the right to use this software, but no rights on the software itself.

DISTRIBUTION This package is freely distributable. That means you are allowed to redistribute this package as long as you follow these points:

• Any re-distribution has to include all files in this archive, without any modifications. You are NOT allowed to add any files to the archive. Exception: if you use the identify.library only, you do not need to distribute all related files if you write a short note in your program’s documentation.

• This package may be freely distributed via BBSs, InterNet/UseNet, software libraries such as Fred Fish’s and Aminet CD-ROM, and other similar electronic channels.

• Disk magazines and services that charge extra for file transfers may NOT distribute it without written permission from me!

• You are allowed to use the expname.library even in a commercial product without any written permission of me. Please note in your program’s documentation that you’re using identify.library by Richard Körber.

DISCLAIMER By using this product, you accept the FULL responsibility for any damage or loss that might occur through its use or the inability to use it. The developer of the software can NOT be held responsible.

CONTENTS OF THE PACKAGE The Identify package is only complete if these files are present:

FILE_ID.DIZ
Identify.info
Identify/Function
Identify/Guru
Identify/ListExp
Identify/arexx/alert.ify
Identify/arexx/expansions.ify
Identify/arexx/functionname.ify
Identify/arexx/system.ify
Identify/arexx/versioncheck.ify
Identify/catalogs/deutsch/Identify.catalog
Identify/catalogs/deutsch/IdentifyTools.catalog
Identify/catalogs/Identify.cd
Identify/catalogs/IdentifyTools.cd
Identify/examples/ExpansionMUI
Identify/examples/ExpansionMUI.c
Identify/examples/MyExp
Identify/examples/MyExp.c
Identify/identify.doc
Identify/identify.doc.info
Identify/Identify-D.dvi
Identify/Identify-D.dvi.info
Identify/Identify-D.guide
Identify/Identify-D.guide.info
Identify/Identify-E.dvi
Identify/Identify-E.dvi.info
Identify/Identify-E.guide
Identify/Identify-E.guide.info
Identify/include/identify_lib.i
Identify/include/clib/identify_protos.h
Identify/include/fd/identify_lib.fd
Identify/include/inline/identify.h
Identify/include/libraries/identify.h
Identify/include/libraries/identify.i
Identify/include/modules/identify.m
Identify/include/modules/identify.txt
Identify/include/modules/libraries/identify.e
Identify/include/modules/libraries/identify.m
Identify/include/Pascal/identify.lib
Identify/include/Pascal/libraries/identify.h
Identify/include/pragmas/identify_pragmas.h
Identify/include/proto/identify.h
Identify/libs/identify.library
Identify/libs/rexxidentify.library

TRADEMARKS The copyright and trademarks of all manufacturers and products mentioned are held by their respective owners.

If you do not agree with these copyright notes, you must delete the Identify packet and all related files immediately!

3 My Address

Please send all bug-reports, board descriptions, missing graphic OS, keyfiles, flames and so on to one of the following e-mail addresses:

INTERNET

I’m reachable through Internet via these E-Mail address:

     shred@chessy.aworld.de

Check my home page for the latest release and other programs. The URL is:

     http://www.is-koeln.de/einwohner/shred

SNAIL MAIL

You can send me a snail mail letter, too. My address is:

     Richard Körber
     Hornstraße 20
     51465 Bergisch Gladbach
     Germany

Please enclose a "1 DM" stamp if you live in Germany and want to get a reply.

INFOLISTE You can add yourself to a information list to get notified when new versions of the library are available. Just write a mail with the subject "HELP" (body will be ignored) to:

     richard.koerber@koeln.netsurf.de

This list is handled offline, so please allow some days for the reply.

4 ListExp

ListExp is a small tool that was already included in the expname.library package.

It describes the hardware components of the system. On the first line it will write some hardware parameters (like CPU, Memory). After that, all expansion boards will be listed (hopefully by name).

By using the option FULL, all currently used commodities are listed too. The output is then useable for bug reports and similar.

A further option allows to get the manufacturer name, product name and class from manufacturer ID and product ID. Use the options MANUFID and PRODID to do so.

Example:

      > ListExp MANUFID=514 PRODID=9
      -- ListExp V6.0 -- by Richard Koerber
       Manufacturer: Commodore West Chester
       Product:      A2060
       Class:        ArcNet

If some entries in the expansion list begin with a ‘#’ instead of a name, you should send a copy of the ListExp output and the description of the missing board (manufacturer name, product name, product class) to me. :-)

Please write me if an expansion name has been guessed. You can easily recognize this by the

class (guessed).

It is also not possible to check out all combinations of Amiga expansions. If your hardware is not properly recognized, please write me.

Please note: Some manufacturers, especially GVP and Phase 5, assigned the same ID to different boards. identify.library is prepared and tries to differ these boards, anyhow it can’t in any case decide right.

5 Guru

Guru translates the cryptical alert code into a human-readable form.

You may provide your alert code (all eight digits without any symbols before or behind) as parameter. An example:

      > guru 81000005
      -- Guru V1.2 -- by Richard Koerber
       Alert Code: 81000005
       Type:       Deadend
       Subsystem:  exec.library
       General:    General fault
       Specified:  Corrupt memory list detected in FreeMem

Or you can pass LASTALERT. In this case, the last alert code will be examined.

Please read the results like this::

Alert Code

This is the alert code that has been decoded.

Type What kind of alert is it? It may be a deadend alert, or a recovery alert.

Subsystem

Which system caused the alert?

General To what general class does this alert belong? In this case, it is a general fault which must be specified later.

Specified

What was the cause? This example shows that the memory list has been corrupted by a badly written program.

6 Function

You can use the tool Function to decode the name of a function by providing the library name and the function offset.

The first argument is the library name, e.g. ‘exec.library’. You may also specify device or resource names here. All letters after the point (including the point itself) are optional, but it is case sensitive.

The last argument is the function offset to be decoded. It must be a multiple of 6, but it doesn’t need to be signed.

Example:

      > Function exec.library -456
      -- Function V1.0 -- by Richard Koerber
       Library:    exec.library
       Offset:     -456
       Function:   DoIO

This function requires the .fd files and an assign ‘FD:’ to the drawer containing these files. The files must have the usual file name format, e.g. ‘exec_lib.fd’.

7 ARexx

Since V6.0 an ARexx function library is available. You can now also use Identify in your ARexx scripts.

To do so, you just have to install the rexxidentify.library into libs:. The library is included

into ARexx by using a CALL AddLib("/libs/rexxidentify.library",0,-30,0) command.

These functions are available in Release 1:

ID_Release()

Returns the release- and version numbers of the rexxidentify.library. The format

is: ‘<release> <version>.<revision>(<date>)’ (Example: ‘1 1.0(23.4.97)’). You

should use the <release> part to check out if a function or option is available (e.g. Word(ID_Release(),1)). The result can also be easily split up into the single contents by using the PARSE command.

ID_NumBoards()

Returns the number of expansion boards added to the system. You can easily construct a loop for ID_Expansion, using this function.

ID_Expansion(<board>,<result code>)

Returns the appropriate result to the board number <board> (0 to ID_NumBoards()-1) and the <result code>. Result codes are:

MANUF Manufacturer name

PROD Product name

CLASS Product class (localized)

ADDRESS Memory address of the expansion (hexadecimal)

SIZE Reserved amount of memory for the expansion board (decimal, KBytes)

SHUTUP Has the expansion been shut up? (0:No, 1:Yes)

ID_Function(<library>,<offset>)

Returns the name of the <library>’s function and the offset <offset>. See the Shell

program Function.
ID_Alert(<code>,<result code>)

Returns the appropriate result to the alert code <code> (hexadecimal string) and the <result code>. Result codes are:

DEAD Deadend or Recovery?

SUBSYS System causing the alert GENERAL General alert class SPEC Specific alert class See the Shell program Guru.

ID_Hardware(<result code>)

Returns a description of the hardware. <result code> are: SYSTEM Used Amiga model (e.g. ‘Amiga 4000’) CPU Used CPU FPU Used FPU, if available MMU Used MMU, if available OSVER AmigaOS ROM version EXECVER exec.library version WBVER Workbench version, if available ROMSIZE Size of the AmigaOS ROM. CHIPSET Available chip set (e.g. ‘AGA’) GFXSYS Used graphics system (e.g. ‘CyberGraphX’) CHIPRAM Total size of Chip RAM (includes virtual RAM) FASTRAM Total size of Fast RAM (includes virtual RAM) RAM Total size of total RAM (includes virtual RAM)

SETPATCHVER

SetPatch version, if available.

AUDIOSYS Used audio system (e.g. ‘AHI’) OSNR Used OS version (e.g. ‘3.0’)

VMMCHIPRAM

Size of virtual Chip RAM

VMMFASTRAM

Size of virtual Fast RAM

VMMRAM Size of virtual RAM

PLNCHIPRAM

Size of physical Chip RAM

PLNFASTRAM

Size of physical Fast RAM PLNRAM Size of physical RAM VBR Address of the processor vectors

LASTALERT

Last system alert

VBLANKFREQ

VBlank interrupt frequency

POWERFREQ

Power frequency

ECLOCK Special system clock’s frequency SLOWRAM Size of the A500 and A2000’s special Fast RAM. GARY Gary version RAMSEY Ramsey version

BATTCLOCK

Battery backed up clock available?

See also the AutoDocs of IdHardware().

Some example programs you’ll find in the arexx drawer.

Appendix A Known Bugs

This is a snapshot of my current Amiga:

-- ListExp V6.0 -- by Richard Koerber (mailto:shred@chessy.aworld.de)
ListExp is a part of the Identify package (see AmiNet util/libs)
** HARDWARE **
System:  Amiga 4000 (CPU=68060 FPU=68060 MMU=68060 VBR=0x08066378)
Chipset: AGA (RAMSEY F, GARY Normal)
AmigaOS: 3.0 (V39.106, SetPatch V43.4)   Exec V39.47   Workbench V39.29
Support: GraphicOS: CyberGraphX, AudioOS: Maestix
Clock:   Power 50 Hz, VBlank 50 Hz, E-Clock 709379 Hz
Memory:           CHIP    FAST  TOTAL   ROM = 512KB     SLOW = 0
          PLAIN    2MB    26MB    28MB
        VIRTUAL      0       0       0
          TOTAL    2MB    26MB    28MB

** EXPANSIONS **
Nr ID      Address  Size Manufacturer         Product
----------------------------------------------------------------------------
 1 2140.22 40000000  64M Phase 5              CyberVision 64 Graphics
 2 2140.19 00EA0000 128K Phase 5              CyberStorm MK-II Flash-ROM
 3 082C.10 00E90000  64K BSC                  Multiface II Multi I/O
 4 4754.0C 00EC0000  64K MacroSystem Germany  Toccata Audio
 5 4754.05 00ED0000  64K MacroSystem Germany  MaestroPro Audio
 6 082C.40 00EE0000  64K BSC                  ISDN MasterCard internal ISDN

THESE BUGS ARE CURRENTLY KNOWN:

• ‘Phase 5’ and ‘GVP’ have sometimes assigned one ID to two or more boards. In this case, identify.library may return a name that does not fit to the hardware.

• Currently, an 68030 will only be recognized with MMU.

• OCS/ECS Amiga with OS3.1 were always recognized as A3000 in the last versions. I hope this is fixed now.

• I couldn’t test the Amiga analysis completely, because of missing Amiga. If your Amiga model is not properly recognized, please send me a copy of your ListExp output.

• A new memory list will be ignored by identify if changed after its start (e.g. by starting VMM after identify). Workaround: simply remove the identify.library from memory, e.g. with avail flush.

• The first IdHardware() or IdHardwareNum() could cause an Enforcer hit at 0x100. This is necessary and harmless.

Appendix B History

V 6.0 • Added further boards.

• OS2.1 recognized properly.

• Some new hardware requests (VBR, Gary, RAMSEY, Slow-RAM, Frequencies, BattClock)

• You can list all expansions without the need to open expansion.library now

• IdHardwareNum() implemented: you can also request a numerical result for own evaluating purposes now

• localized and actualized ListExp, Function and Guru

• ARexx access to the library via rexxidentify.library

• More example programs

V 5.2 • Added further boards.

• Wrote a small C example: using identify with MUI

V 5.1 • Bugfix: did not recognize AHI properly

• Added further boards.

• Properly recognizes A500 with A570 expansion.

• AmigaE include files [Roger Hågensen]

V 5.0 • Better Picasso96 recognition

• Should now FINALLY recognize OCS/ECS Amiga with OS3.1

• Added further boards.

• Now also checks Audio OS and AmigaOS.

• Added plain and VMM memory checkings.

• Supports shared Manufacturer IDs now.

• Bugfix: Enforcer hit when asking directly for an unknown expansion

• Gained several KB by optimizing tables, database compression and clean-ups • Adapted ListExp

V 4.4 • Recognizes Picasso96 • Added further boards.

• Bugfix: "-?-" printed beside guessed expansion name

• Bugfix: Some Amiga 1200 were recognized as "Walker" :-)

V 4.3 • Recognizes CyberGraphX V3

• Added further boards.

V 4.2 • CyberGraphX wasn’t recognized properly.

• Added further boards.

V 4.1 • Bug fix: still some problems with Amiga recognition.

• Picasso will be recognized.

• Added further boards.

V 4.0 • IdFunction() implemented.

• New tool Function.

• Added further boards.

• Bugfix: In some cases the manufacturer name was trashed.

• Pascal include files (made by Axel Dörfler)

• Identifies SetPatch version

V 3.1 • 2 boards added

• Bugfix: always recognized an Amiga 3000 on ECS machines with OS3.1.

• Bugfix: recognized CyberGraphX even when PictDT was installed only.

• Improved memory rounding

V 3.0 • Bases on the expname.library, but completely rewritten.

• Now convert alert codes, too.

• Wrote GURU.

Appendix C Credits

I want to thank especially these fellows (in no special order):

Andreas Gelhausen for Scout, his board list and his ideas.

Martin Wietfeld for his great board list!

Axel Dörfler for using Identify in XOpa, and the PASCAL includes.

Thomas Kessler for ShowConfigEnh and his many ideas.

Geert Uytterhoeven for his board list and the description of the GVP codes.

Roger Hågensen for the Amiga-E include files and his hints.

Timo Ronkko for his genious hint!

Colin Thompson for his field tests, checking my translations and his useful hints.

Frank Wille for his great PhxAss assembler, and his hints!

Sascha Reissner for ToxicBoards.

Kössi for his many boards, his help for all my TexInfo problems, and his debug skills.

…and for their contributions (sorted alphabetically):

’2bros’, Daniel Adolfsson, ’ALV’, Thomas Andersson, Sven Arke, Jörn Asmussen, Matthias Bethke, Paul Braithwaite, Dave Clarke, Gary Coleman, Gagliardini Daniel, Marcus Cai Degler, Ethan Dicks, Frank Dietrich, Norbert Dimpfl, Kevin Fairhurst, Ulrich Falke, Alexander Fichtner, Ramiro Garcia, Andreas Gelhausen, Patrick Gern, Neil Griffiths, Roger Hågensen, Fred Hamilton, Michael Hartmann, Georg Hazianastasiou, Dirk Hebisch, Matthias Heilmann, Ian P.Heitmans, Gene Heskett, Patrick Hess, Torfinn Ingolfsen, Bengt Jensie, Thomas Kessler, Bernd Kösling, Bernd Kriwolat, Mario Kuban, James Kückmann, Rask Lambertsen, Jens Langner, Lutz Legero, Mika Lembke, Petter Lindquist, Mika Lundell, Gunther Mannigel, Peter Marquardt, Peter Mattsson, Mario Misic, L Mac Mullan, David Oakes, Jürgen Ofner, Jakob Ölund, Chris Painter, Oliver Peike, Markus Pietz, Heiko Polig, Giuseppe Premoli, Michael Reichenbach, Sascha Reissner, Jan Rembser, Kai Rode, Timo Ronkko, Gregor Rosenauer, Andre Schenk, Bodo Schulz, Thomas Schürger, Simon Shead, Karsten Soeth, Mark Sorensen, Nicholas Stallard, Teemu Suikki, Johan Sundstrom, Adam Szymczak, Patrick Thato, Colin Thompson, Henrik Tikanvaara, Jürgen Urbanek, Geert Uytterhoeven, Jarkko Vatjus-Anttila, Milco Veljanoski, Federico Villata, Christian Wasner, Pete Wason, Ralph Wermke, Henrik Wetterstrom, Martin Wietfeld, Alexander Wild, Frank Wille, Beno Zidaric, Rolf Zuercher, Alessandro Zummo.

Keep on!

                 //
             \\ //   -- Amiga - The Computer for Creative Mind --

Concept Index 18

Concept Index

A

Address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Alert descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 ARexx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

B

Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

C

Commercial Product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Contents of the package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Copyright. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Copyright note. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

D

Decoding Library Offsets. . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Distribution via electronic channels. . . . . . . . . . . . . . . . . . 2

E

E-Mail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

F

FreeWare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

G

Guru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

H

History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Homepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

I

Infoliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

L

ListExp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

R

rexxidentify.library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

S

Snail Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

T

Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

U

Unknown Boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Table of Contents

1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 My Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4 ListExp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5 Guru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 6 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 7 ARexx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Appendix A Known Bugs. . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Appendix B History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Appendix C Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Concept Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18