CP/M serial numbers

The CP/M operating systems have an embedded serial number, which is detected by some CP/M software. It provides license, version, and serial number for a specific original distribution or diskette. It's also of historic interest in determining the age of that particular distribution. The following was provided to me by Jeff Shook on Feb and Mar 2008, and is copyrighted by him, and is used with his permission. Edits by me are in []'s. MY last update is April 24 2008. - Herb Johnson

The home page for my history of Digital Research, CP/M, and related work is at this link. Contact information for me is at the end of this Web page. - Herb Johnson

Notes on CP/M serial number locations and coding by Jeffrey W. Shook. 20000519 to 20080310

Finding the serial numbers

[The 6 byte] serial numbers in CP/M 1.3 through 2.2 system images, can be found in the system image in the boot tracks, in MOVCPM.COM or RELOC.COM or in the running system.

[In the] CCP command table, the serial number is the six bytes following "USER". Some systems don't have the USER command so there it follows "REN ".


001030  05 C2 F2 D8 EB 22 88 D6 E1 01 0B 00 23 7E FE 3F   .ÂòØë"ˆÖá...#~þ?
001040  C2 09 D9 04 0D C2 01 D9 78 B7 C9 44 49 52 20 45   Â  Ù.Â.Ùx·ÉDIR E
001050  52 41 20 54 59 50 45 53 41 56 45 52 45 4E 20 55   RA TYPESAVEREN U
001060  53 45 52 10 16 01 00 08 BD 21 10 D9 0E 00 79 FE   SER.....½!.Ù..yþ
001070  06 D0 11 CE DD 06 04 1A BE C2 4F D9 13 23 05 C2   .Ð.ÎÝ...¾ÂOÙ.#.Â

[At the] start of BDOS, scroll down until there is a gap filled with 00. At the end of the 00s will be the 6 byte serial number followed by a JMP instruction, hex C3.


001520  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
001530  00 00 00 00 00 00 00 00 00 00 00 00 01 10 16 01   ................
001540  00 08 BD C3 11 DE 99 DE A5 DE AB DE B1 DE EB 22   ..½Ã.Þ™Þ¥Þ«Þ±Þë"
001550  43 E1 EB 7B 32 D6 EB 21 00 00 22 45 E1 39 22 0F   Cáë{2Öë!.."Eá9".
001560  E1 31 41 E1 AF 32 E0 EB 32 DE EB 21 74 EB E5 79   á1Aá¯2àë2Þë!tëåy

The example above doesn't fall on neat xx00 [or page] boundaries because it was taken directly from an IMD file whose header length was not an even multiple of 16. [If the system is examined in memory or as correctly loaded into DDT, then the CCP and BDOS will start at "page" boundaries. Read the DRI manuals for details.]

Note from Herb Johnson

The start of the CCP and the BDOS on the boot tracks of a CP/M bootable diskette, is always at the beginning of a sector because that CP/M code is relocated at 256 byte intervals, and sectors are "always" a size of a multiple of 128 bytes. There is a CP/M-80 program called "DU.COM", or disk utility. It allows any CP/M system to look at disks by sector. You can use it to read raw file data in hexidecimal, and boot tracks as well. Almost any archive of early "shareware" CP/M programs will have DU.COM. - Herb Johnson

Serial Number format


byte    content
00	Mfg code
01	CP/M version, 0 = 1.3, 0x0e = 1.4, 0x14 = 2.0, 0x16 = 2.2
02	Some versions use this as high byte of Mfg code
03-05	Serial number - MSB first

Manufacturer codes as of Mar 2008


mfg	hex	dec

DRI	0x00	  0	Digital Research Inc.
DSI	0x01	  1	Digital Systems Inc.
LeCroy	0xAA	170
CCS	0xB3	179	California Computer Systems
SDS	0xBB	187	SD Systems

XEROX	0x09	  9	Xerox ???

[Sample serial numbers as of Mar 2008]


notation

Files ending in .IMD are from Dave Dunfields site.
Files ending in .CPT are from vgdisks.zip. Source unkown.
Files starting with 4 digit number are from [Jeff Shook] archives.


The 6 byte serial numbers are located in the CCP following the command table
and at the start of the BDOS. Items preceded by * have known serial #.

  Serial # --------	Archive name---------	CP/M OEM and version
* 00 0E 00 00 05 0A	1409\MOVCPM.COM		Digital Research CP/M 1.4 serial 0-1290  (50AH=1290)
  00 0E 00 00 05 C1	9601\CPM14.COM		Tarbell CP/M 1.4
* 00 14 00 00 07 30	1407\MOVCPM.COM		DOSC CP/M 2.0 s/n 2-0-1840  (730H=1840)
* 01 00 00 00 00 6A	1410\CPM16J.COM		Digital Systems CP/M 16K Version DSI-3.5  Ser # 1-140 (6AH=106???)
  02 16 00 00 11 01	x820\X820-1.IMD		XEROX 820 CP/M 2.2
  0E 0E 00 00 13 4A	nscos\C145_54.IMD	LifeBoat CP/M 1.45 NorthStar DD			
  0E 16 00 00 05 80	nscos\C223A_24.IMD	LifeBoat CP/M 2.2 NorthStar
  10 16 01 00 08 BD	cpcp22\CCPM22.IMD	Compupro CP/M 2.2
  10 16 01 00 07 57	cpro8588\DISK2.IMD	Compupro CP/M 2.2
  14 16 00 00 01 81	cromcpm\CRCPM48.IMD	Cromemco CP/M 2.2
  14 16 00 00 06 97	9603\CPM.COM		Tarbell CP/M 2.2
  14 16 00 00 06 98	9605\CPM.COM		Tarbell CP/M 2.2
  1F 14 00 00 05 E3	vgdisks\VG01.CPT	Vector Graphics CP/M 2.10
  1F 16 00 00 19 82	vgdisks\VG03.CPT	
  1F 16 00 00 11 1F	vgdisks\VG09.CPT	VECTOR GRAPHIC 56K CP/M - VERSION 2.20
  1F 0E 00 00 00 F0	vgdisks\VG13.CPT	Vector Graphic 47k CP/M %1.42
  26 16 01 00 00 00	x820iicp\X820IICP.IMD	XEROX 820ii CP/M 2.2
  29 0E 00 00 05 14	vgdisks\VG04.CPT	CP/M ON VECTOR MZ 46K VERSION 1.411	
  29 16 00 00 01 21	vgdisks\VG07.CPT	CP/M2 on Micropolis 24K Vers 2.20B (C) 1980 Lifeboat Associates
  29 16 00 00 01 0A	vgdisks\VG17.CPT	CP/M2 on Micropolis 56K Vers 2.20B (C) 1980 Lifeboat Associates	
  8B 16 02 00 42 5E       kayproii\KAYPRO1.IMD	KAYPRO CP/M 2.2
  8D 16 00 00 02 8C	bigboard\BB1.IMD	Ferguson BigBoard CP/M 2.2
  8D 16 00 00 02 8C	bigboard\BB2.IMD	"
  A3 16 00 00 17 9A	t80m2sys\CPM22.IMD	TRS80 CP/M 2.2
  AA 14 00 00 00 BE 	1408\MOVCPM.COM		LeCroy CP/M 2.0
* B3 14 00 00 02 2C  	1404\MOVCCS20.COM	CCS CP/M 2.0 sn 179-00556  (B3H=179, 22CH=556)
* B3 16 00 00 0C 1F	1403\MOVCPM.COM		CCS CP/M 2.2 for CCS 2422 s/n 179-3103
* BB 16 00 00 02 5C	1405\MOVCPM.COM		JADE Computer Products CP/M 2.2 s/n 2-187-00604 (BBH=187, 25CH=604)
  E3 16 00 00 33 04	nscos\N2212.IMD		Northstar CP/M 2.2 Release 2.2
						[The following seem to have 2 byte Mfg codes]
* 10 16 01 00 0B 9F	cpcm22a\CPROCP22.IMD	Compupro/Gifford CP/M 2.2 s/n 272-2975 (110H=272, B9FH=2975)
* 67 16 02 00 00 8D	2208\CPM.SYS		Advanced Digital Corp. CPM 2.2 SN # 615-00141 (0267H = 615, 8DH=141)

Anomalous mfg and/or serial numbers


  00 16 00 00 00 00	zorba\ZORBA1.IMD	ZORBA CP/M 2.2 (BDOS 00 00 00 00 00 00)
  02 02 12 0B 26 7A	01sdsys\O1CPMS.IMD	Osborne 1 SD CP/M 2.2 s/n 05300950
  03 16 03 00 A3 B5	01ddsys\O1CPM.IMD	Osborne 1 DD
  09 59 00 00 07 89				XEROX 1800 CP/M 2.2
  CD 16 09 00 4E 6E	n1100\N1100CPM.IMD	Nabu 1100 CP/M 2.2

Contact information:

Herb Johnson
New Jersey, USA
To email @ me, see see my ordering Web page.

Copyright © 2008 Herb Johnson and Jeffrey W. Shook as noted