Copyright (c) Hyperion Entertainment and contributors.

Difference between revisions of "Amiga Hardware Manufacturer ID Registry"

From AmigaOS Documentation Wiki
Jump to navigation Jump to search
Line 1,432: Line 1,432:
 
| 13A6
 
| 13A6
 
| Tim Tashpulatov
 
| Tim Tashpulatov
  +
|-
  +
| 5040
  +
| 13B0
  +
| Retro 7-bit
 
|-
 
|-
 
| 5132
 
| 5132

Revision as of 18:43, 14 January 2015

How to Obtain a Manufacturer Number

Manufacturer's numbers are assigned by the AmigaOS development team. To obtain your unique manufacturer number use the AmigaOS web site contact form.

Be sure and include your name, email and the type of expansion product you are developing.

Your Manufacturer Number

Attention hardware manufacturers. If you are developing a hardware expansion product for the Classic Amiga (e.g. 500, 2000, 3000) then you will need to obtain a special manufacturer ID number from the AmigaOS development team to identify your product. This manufacturer number is used by the Amiga to link your hardware with its driver software at boot time.

Your manufacturer number is part of the special protocol that the Amiga uses to automatically configure all expansion devices on the bus without the user having to cut jumpers or adjust dip switches. This is called auto-config.

At start-up time, the system first polls each board in the system and assigns the board its own address space. If it is a memory board, its RAM is linked into the memory free pool. Later in the boot sequence, after DOS is initialized, the binddrivers program is run. Binddrivers will search the directory SYS:Expansion for the drivers that go with the boards.

To do this binddrivers looks in the Tool Type field of all icon files in SYS:Expansion. If the first seven bytes of the Tool Type field are "PRODUCT", then this is an icon file for a driver.

Binddrivers will then attempt to match the drivers it has found with the boards that were found earlier. This is where your manufacturer number comes in.

Your manufacturer number goes in two places. First, it is burned in hex form into the PAL which is part of ALL auto-config expansion products. Second, it appears in ASCII in the Tool Type field of the icon file for your product's driver. By matching these two numbers, the Amiga can automatically configure your board and bind it's software driver into the system as well.

The manufacturer's number is a 16-bit ID which appears in PAL offsets $10-$17. There is also an 8-bit product number which you assign. The product number is for uniquely identifying different products from the same vendor. The product number will appear in PAL offsets $04-$07. This gives you a total of 24 bits to identify each of your products.

These 24 bits of information in the PAL which identify your product are matched against the information in the Tool Type field of all icon files in the SYS:Expansion drawer. For example, suppose you are manufacturer #1019. You have two products, #1 and #2 which both use the same driver. The icon for your driver for these two products would have a Tool Type set to "PRODUCT=1019/1|1019/2". This means: I am an icon for a driver that works with product number 1 or 2 from manufacturer 1019, now bind me. Spaces are not legal. Here are two other examples:

PRODUCT=1208/11
is the Tool Type for a driver for product 11 from manufacturer number 1208.
PRODUCT=1017
is the Tool Type for a driver for any product from manufacturer number 1017.

For an informal explanation of the auto-configuration process, see the chapter on Software Expansion Architecture from the 2nd Annual Amiga Developer's Conference Notes (available on ADCD 2.1). For the details of timing, power, the PAL equations and PAL address specifications and the expansion library documentation, see sections 3.1 to 3.3 of the A500/A2000 Technical Reference Manual. The original auto-config spec appears in the A1000 Schematics and Expansion Specification.

The auto-config process makes the addition of expansion products to the system very easy. All the user has to do is put the board in any slot and copy the driver from the release disk to his own SYS:Expansion drawer. Everything else is automatic. There are no jumpers or dip switches to set. Best of all, you will get a lot less support calls asking how to make your product work with the XYZ-Corp-battery-backed-clock.

Notes

Some notes on hardware manufacturer ID assignment.

  • Manufacturer ID numbers are assigned free of charge.
  • Please provide the following information when requesting an ID:
    1. Name of the company or person
    2. Postal address/contact address
    3. Name of the contact person, with a corresponding e-mail address
    4. A brief description of the kind of products you want to produce
  • All ID numbers smaller than 5000 must be considered unsafe because no information exists on which numbers exactly were taken during the time Commodore, Inc. disintegrated.
  • ID numbers in the range 8192 to 18841 must be considered unsafe because some hardware developers mistook the numbers assigned to them to be given in hexadecimal format. Hence 0x2000 = 8192 and 0x4999 = 18841.

Example code

/*-----------------------------------------------*/
/* Here is a short program which will tell you   */
/* about the expansion boards configured in your */
/* system without you opening up the machine.    */
/* Code by Bill Koester of CATS                  */
/*-----------------------------------------------*/
#include <libraries/configvars.h>
#include <libraries/expansion.h>
 
struct ExpansionBase *ExpansionBase;
 
void cleanup();
void printdev();
 
int main()
{
   struct ConfigDev *MyConfigDev;
 
   /*----------------------------------*/
   /* Open the expansion library,      */
   /* if there is a problem then exit  */
   /*----------------------------------*/
 
   ExpansionBase =(struct ExpansionBase *) OpenLibrary(EXPANSIONNAME,0);
   if(ExpansionBase==NULL)
   {
      printf("Error opening expansion library!!\n");
      cleanup();
      exit(0);
   }
 
   /*--------------------------------------------*/
   /* Use FindConfigDev to get info on the first */
   /* expansion board on the list maintained by  */
   /* Exec.  If there are no expansion boards in */
   /* the system then exit.                      */
   /*--------------------------------------------*/
 
   MyConfigDev = NULL;
 
  /*--------------------------------------------------*/
  /* FindConfigDev(oldConfigDev,manufacturer,product) */
  /* oldConfigDev = NULL for the top of the list      */
  /* manufacturer = -1 for any manufacturer           */
  /* product      = -1 for any product                */
  /*--------------------------------------------------*/
 
   MyConfigDev = FindConfigDev(NULL,-1,-1);
 
   if(MyConfigDev==NULL)
   {
      printf("No Configured Devices found!!\n");
      cleanup();
      exit(0);
   }
 
   printdev(MyConfigDev);
 
   /*-----------------------------------*/
   /* OK, there is at least one board,  */
   /* so loop and get the entire list   */
   /* printing as we go with printdev() */
   /*-----------------------------------*/
 
   while(MyConfigDev = FindConfigDev(MyConfigDev,-1,-1))
   {
      printdev(MyConfigDev);
   }
   cleanup();
   return 0;
}
 
 
/*-------------------*/
/* Close up shop...  */
/*-------------------*/
void cleanup()
{
   if(ExpansionBase)
      CloseLibrary(ExpansionBase);
}
 
/*----------------------------------*/
/* Print out the contents of the    */
/* dev structure for this expansion */
/* product.                         */
/*----------------------------------*/
 
void printdev(dev)
struct ConfigDev *dev;
{
   char buff[200];
 
   printf("Flags          = ");
   if(dev->cd_Flags==NULL)
      printf("NULL  ");
   if(dev->cd_Flags&CDF_SHUTUP)
      printf("CDF_SHUTUP  ");
   if(dev->cd_Flags&CDF_CONFIGME)
      printf("CDF_CONFIGME  ");
   printf("\n");
   printf("Board Address  = %x\n",dev->cd_BoardAddr);
   printf("Board Size     = %d bytes\n",dev->cd_BoardSize);
   printf("Slot  Address  = %d\n",dev->cd_SlotAddr);
   printf("Slot  Size     = %d\n",dev->cd_SlotSize);
   printf("Driver code at   %x\n",dev->cd_Driver);
 
   printf("er_Type         = %x\n",dev->cd_Rom.er_Type);
   printf("er_Product      = %x\n",dev->cd_Rom.er_Product);
   printf("er_Flags        = %x\n",dev->cd_Rom.er_Flags);
   printf("er_Reserved03   = %x\n",dev->cd_Rom.er_Reserved03);
   printf("er_Manufacturer = %x\n",dev->cd_Rom.er_Manufacturer);
   printf("er_SerialNumber = %x\n",dev->cd_Rom.er_SerialNumber);
   printf("er_InitDiagVec  = %x\n",dev->cd_Rom.er_InitDiagVec);
   printf("er_Reserved0c   = %x\n",dev->cd_Rom.er_Reserved0c);
   printf("er_Reserved0d   = %x\n",dev->cd_Rom.er_Reserved0d);
   printf("er_Reserved0e   = %x\n",dev->cd_Rom.er_Reserved0e);
   printf("er_Reserved0f   = %x\n",dev->cd_Rom.er_Reserved0f);
 
   printf("Hit Return to continue:\n");
   gets(buff);
}

Registry

ID (decimal) ID (hexadecimal) Manufacturer Notes
1 0001 Micronik
211 00D3 Pacific Peripherals/Profex
221 00DD Kupke Computertechnik GmbH
256 0100 Memphis Originally registered to MacroSystems US
512 0200 3-State Computertechnik
513 0201 Commodore (Braunschweig)
514 0202 Commodore (West Chester)
515 0203 Commodore (West Chester) Originally registered to Combitech/Macrosystem
756 02F4 Progressive Peripherals & Software
767 02FF Kolff Computer Supplies
1001 03E9 Tecmar
1002 03EA Telesys
1003 03EB The Micro-Forge
1004 03EC Kronos/C Ltd. Originally registered to Card Co. (Supra)
1005 03ED A-Squared
1006 03EE Comspec Communications
1007 03EF HT Electronics
1008 03F0 RDS Software
1009 03F1 Anakin Research
1010 03F2 MicroBotics
1011 03F3 Bob Krauth
1012 03F4 Access Associates (Alegra)
1013 03F5 Mini Comp Systems Ltd.
1014 03F6 Cypress Technology
1015 03F7 Fuller Computers
1016 03F8 Galaxy Computers
1017 03F9 ADA Research
1018 03FA Computer Service Italia
1019 03FB Amigo
1020 03FC Micro-Solutions Inc.
1021 03FD Stacar International
1022 03FE Video Precisions
1023 03FF ASDG, Inc.
1025 0401 Ing. Buero Kalawsky
1026 0402 Computer Tuning
1027 0403 Interplan Unternehmensberatung
1028 0404 Imtronics/Memphis Originally registered to Peter Ohlich
1030 0406 Commodore (Lowell University) Originally registered to Productivity Center
1041 0411 Design Labs
1042 0412 MCS
1043 0413 B. J. Freeman
1044 0414 Side Effects Inc.
1045 0415 Oklahoma Personal Comp.
1046 0416 Advanced Micro Innovations
1047 0417 Industrial Support Services
1048 0418 Technisoft
1049 0419 Prolific, Inc.
1050 041A Softeam, Inc.
1051 041B GRC Electronics
1052 041C David Lai
1053 041D Ameristar Technologies
1054 041E Cline Refrigeration
1055 041F Cardiac Pacemakers, Inc.
1056 0420 Supra Corp. (Creative Microsystems)
1057 0421 Wayne Diener
1058 0422 Computer Systems Associates (CSA)
1059 0423 Trionix, Inc.
1060 0424 David Lucas
1061 0425 Analog Precision Also assigned to D & L Distributing
1267 04F3 RBM Digitaltechnik
1282 0502 M-TEC Hardware Design
1337 0539 Thomas Stenzel (DaFR34K)
1576 0628 Boris Križma
1761 06E1 Great Valley Products
1803 070B UAE Amiga Emulator
2002 07D2 Mimetics Corp.
2003 07D3 ACDA
2004 07D4 Finn R. Jacobsen
2005 07D5 Elthen Electronics
2006 07D6 Nine Tiles Computer Systems Ltd.
2007 07D7 Analog Electronics
2008 07D8 Bell & Howell
2009 07D9 Roland Kochler
2010 07DA Byte Corp.
2011 07DB Reserved
2012 07DC DKB, Inc. Previously named Michigan Software
2013 07DD Pacific Peripherals
2014 07DE Sysaphus Software
2015 07DF Digitronics
2016 07E0 Akron Systems
2017 07E1 Great Valley Products
2018 07E2 Calmos
2019 07E3 Dover Research
2020 07E4 David Krehbiel
2021 07E5 Synergy Peripheral Systems Also known as California Access
2022 07E6 Xetec
2023 07E7 Micron Technology
2024 07E8 CH Electronics
2025 07E9 American Liquid Light
2026 07EA Progressive Peripherals & Software Also used by Ateo
2027 07EB Wicat Systems
2028 07EC Applied Systems & Peripherals
2029 07ED Delaware Valley Software
2030 07EE Palomax
2031 07EF Incognito Software
2032 07F0 Jadesign
2033 07F1 BVR
2034 07F2 Spirit Technology
2035 07F3 Spirit Technology
2036 07F4 Atronic
2037 07F5 Scott Karlin
2038 07F6 Howitch
2039 07F7 Sullivan Brothers Visual Engineers
2040 07F8 G I T
2041 07F9 Amigo Business Computers
2042 07FA Micro E Ab
2043 07FB Ralph Kruse
2044 07FC Clearpoint Research
2045 07FD Kodiak
2046 07FE BSC Originally registered to Phoenix Electronics
2047 07FF No Name Shown
2048 0800 Commodore Braunschweig
2049 0801 BSC Originally registered to Elaborate Bytes
2050 0802 Kronos/C Ltd.
2051 0803 Spartanics
2052 0804 Jochheim Computer Tuning
2053 0805 Trans Data Systems
2054 0806 Applied Systems & Peripherals Ltd.
2055 0807 Checkpoint Technologies Originally registered to Amiga Solutions
2056 0808 Adept Development
2057 0809 Advanced Computer Design
2058 080A Sir Netics
2059 080B Expert Services
2060 080C Digital Art Systems
2061 080D Adept Development
2062 080E Expansion Technologies (Expansion Systems)
2063 080F Alphatech
2064 0810 Edotronik GmbH
2065 0811 California Access/Synergy Originally registered to Logical Design Works
2066 0812 Bowden, Williams, Full & Assoc.
2067 0813 NES, Inc.
2068 0814 Amdev
2069 0815 Big Brother Security Systems
2070 0816 Active Circuits Inc.
2071 0817 ICD, Inc.
2072 0818 Multi-Meg Electronique
2073 0819 Kupke Computertechnik GmbH
2074 081A The Checkered Ball
2075 081B Hi Tension Computer Services Ltd. (UK)
2076 081C Alfa Data Originally assigned to Elmtech Research, Ltd. (UK)
2077 081D Great Valley Products Originally registered to Clartscreen, Ltd. (UK)
2078 081E Interworks
2079 081F Galysh Enterprises
2080 0820 Hardital Synthesis Originally registered to Realtime Games Software Ltd.
2081 0821 GBS
2082 0822 Circum Design Inc.
2083 0823 Alberta Micro Electronic Center
2084 0824 Bestech
2085 0825 Lasar Fantasy
2086 0826 Pulsar
2087 0827 Ivis
2088 0828 Applied Engineering
2089 0829 Solid-State Design & Development
2090 082A Vison Quest
2091 082B Seaview Software
2092 082C BSC Mistakenly used by ADS (Advanced Development Software)
2093 082D Bernd Culenfeld
2094 082E American Liquid Light
2095 082F CEGITES
2096 0830 Quadlite Computers Ltd. Originally registered to EV Industries
2097 0831 Silicon Peace
2098 0832 Black Belt Systems
2099 0833 Village Tronic Originally registerd to Steve Yaeger
2100 0834 ReadySoft
2101 0835 Phoenix Micro Technologies
2102 0836 Advanced Systems & Software Orignally assigned to Preferred Technology
2103 0837 Rombo Productions
2104 0838 Impulse Inc.
2105 0839 Beta Unlimited
2106 083A Memory Expansion System, Ltd.
2107 083B Vortex Computer Systems GmbH
2108 083C Platypus Systems
2109 083D Gigatron OHG
2110 083E PG Electronics
2111 083F New Technologies Group
2112 0840 Interactive Video Systems (IVS) Pacific Peripherals
2113 0841 Vector Originally registered to H. K. Computer
2114 0842 Pacific Digital Originally registered to C. H. Helfrich Elektronik
2115 0843 Xanadu
2116 0844 Pacific Digital Originally registered to AMS
2117 0845 X-Pert
2118 0846 The Amiga Centre
2119 0847 Digital Pacific
2120 0848 Solid State Leisure
2121 0849 Hydra Systems Originally registered to Analog Electronics
2122 084A Cumana
2123 084B KAPS 2C Conception
2124 084C Mike Mason
2125 084D For Your Eyes
2126 084E Volkmar Breitfeld Computersysteme
2127 084F Sunrize Industries
2128 0850 Scott Advanced Micro Designs
2129 0851 Digital Micronics
2130 0852 Alfa-Laval
2131 0853 Multigros A/S
2132 0854 Archos
2133 0855 Icom Simulations
2134 0856 Commodore Test Engineering Group
2135 0857 Microcreations
2136 0858 Shoestring Productions
2137 0859 Faberushi
2138 085A Evesham Micro Ltd.
2139 085B Panagolin Laser Software
2140 085C Thomas Rudloff
2141 085D Daniel Hohabir
2142 085E GfxBase, Inc.
2143 085F Axellabs
2144 0860 Roctec Electronics Inc.
2145 0861 Omega Datentechnik
2146 0862 Atlantis
2147 0863 Skytec Computers
2148 0864 Protar Electronics
2149 0865 ACS
2150 0866 Software Results Enterprises Originally registered to University of Illinois
2151 0867 Infinity Systems Design Group
2152 0868 Trade It
2153 0869 Suntec, Inc.
2154 086A DJW Micro Systems Originally registered to Tritec Marketing
2155 086B Power Computing Ltd.
2156 086C MacroSystems
2157 086D Masoboshi GmbH (DCE)
2158 086E HAL Software Hardware Handel
2159 086F Mainhattan Data Originally registered to Michael Lamm Computersysteme
2160 0870 Digital Processing System Originally registered to bbdp Electronics
2161 0871 Blue Ribbon Soundworks Originally registered to Design Computer Systems
2162 0872 XPert Originally registered to The Station
2163 0873 DelaComp Originally registered to Bryan Williams
2164 0874 Superformance Computer Engineering GmbH
2165 0875 Overland Engineering
2166 0876 Thomas Hamren
2167 0877 Village Tronic
2168 0878 Toolbox Design
2169 0879 Digital Processing System
2170 087A Superformance
2171 087B Utilities Unlimited
2172 087C phase 5
2173 087D Juergen Kommos
2174 087E Electronic Design
2175 087F James Cook University of North Queensland
2176 0880 AmiTrix Development
2177 0881 Ferranti
2178 0882 Leviathan Development
2179 0883 United Video Inc.
2180 0884 GPSoft Pty. Ltd. Originally registered to Juergen Kommos
2181 0885 ArMAX Oliver Bausch
2182 0886 CP Computer
2183 0887 AMOK - Amiga Module & Oberon Klub
2184 0888 ITEK Neser & Sieber GbR
2185 0889 Phillip C. Lello
2186 088A Cyborg Design Services
2187 088B G2 Systems
2188 088C Pro System Computersysteme
2189 088D ZEUS Electronic Originally registered to MSPI (Markt & Technik)
2190 088E Altatech
2191 088F NewTek
2192 0890 M-TEC Hardware Design Originally registered to Hardware Design Udo Neuroth
2193 0891 Great Valley Products Originally registered to Viona Development
2194 0892 Amitek Originally assigned to Marpet Developments
2195 0893 Ingenieurbuero Helfrich
2196 0894 The Neo Group
2197 0895 Cyon
2198 0896 Bob Research Group
2199 0897 Richmond Sound Design Ltd.
2200 0898 US Cybernetics
2201 0899 Fulvio Ieva
2202 089A Silicon Studio
2203 089B MacroSystems (USA) Was named Micro System Devices
2204 089C Conspector Entertainment
2205 089D Laserforum
2206 089E Elbox Computer Mistakenly used by Index Information Ltd.
2207 089F Applied Magic Inc.
2208 08A0 SDL Ltd.
2560 0A00 Harms
2588 0A1C A1K.org Community
2640 0A50 Micronik
3084 0C0C Team 4
3643 0E3B E3B Michael Boehmer
3855 0F0F Micronik
4096 1000 MegaMicro
4110 100E DigiFeX
4136 1028 Imtronics/Memphis
4149 1035 PROTAR
4369 1111 Frank Strauß Elektronik Also used by Kupke
4626 1212 Individual Computers
4648 1228 Flesch Hornemann Computer Elec.
4680 1248 Kupke Computertechnik GmbH
4711 1267 RBM digitaltechnik
4754 1292 MacroSystems
5000 1388 ITH
5001 1389 VMC
5010 1392 Ambience Creation Technology
5011 1393 Creative Development
5012 1394 Georg Braun
5013 1395 Swedish User Group of Amiga
5014 1396 Jakub Bednarski
5015 1397 KryoFlux, Ltd.
5016 1398 Igor Majstorovic
5017 1399 Alastair M. Robinson
5018 139A Austex Software
5019 139B Sören Gust
5020 139C Rok Krajnc
5030 13A6 Tim Tashpulatov
5040 13B0 Retro 7-bit
5132 140C UAS Interface Ltd.
5500 157C Inhouse Information
5768 1688 Bio Con
6148 1804 HK-Computer
6502 1966 Cloanto
7777 1E61 Rafal Chyla
8215 2017 Vortex
8244 2034 Spirit Technology
8290 2062 Expansion Systems
8448 2100 ReadySoft
8512 2140 Phase 5 Digital Products
8553 2169 Digital Processing Systems Inc.
8704 2200 ACT Elektronik
8738 2222 ACT Elektronik
9512 2528 Tower Technologies
10676 29B4 Electronic Design
14195 3773 Media-net-Point
14501 38A5 Petsoff, Finland
16375 3FF7 Uwe Gerlach
16707 4143 Ateo Concepts
16708 4144 ALiENDESiGN
16945 4231 A.C.T.
17740 454C HK-Computer (ELSAT)
18260 4754 MacroSystems (Germany)
19796 4D54 Markt & Technik
22359 5757 Markt & Technik
26464 6760 Combitec
26470 6766 Combitec
32768 8000 M.A.S.T.
43437 A9AD Reis-Ware
43521 AA01 Cameron
43537 AA11 Reis-Ware
44359 AD47 Matay
46504 B5A8 Phoenix
49160 C008 Combitec
61453 F00D Forefront Technologies Inc.

For any changes/additions to this registry please use the AmigaOS web site contact form.