This Web page last updated Sept 6 2017, revised July 20 2012; note on SYSGEN added Feb 23 2017.

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. . - 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

["10 16 01 00 08 BD" is the serial number in both.]

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.]

Serial number in MOVCPM: You can either disable the check for serial number in MOVCPM, or you can change the embedded's CP/M S/N to match. But various MOVCPM's may have various coding; so I suggest you find the serial number, by finding it in the boot tracks as above, then look for it in SYSGEN.

The CP/M 2.2 generic MOVCPM patches to disable the CALLs to check the serial numbers are below. But again - your MOVCPM may be different!

ddt d:movcpm.com
	DDT VERS 2.2
	NEXT  PC
	2700 0100
	-s234
	0234 C2 0
	0235 5A 0
	0236 02 0
	0237 02 .
	-s2cb
	02CB C2 0
	02CC 5A 0
	02CD 02 0
	02CE 23 .
	-i64 * 

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 July 2010, edited by Herb Johnson


Jeff reported:

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 reported by Jeff Mar 2008 unless noted.

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
manuf
    ver
       manuf
           serial #
* 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

Additional reports

  76 16 00 00 7D 7B     (Kobe)  NEC PC-8001 CP/M 2.2  Copyright (C) by Digital Research / NEC'
  76 16 00 00 4E DB     (Kobe)  disk "JRT Pascal v3.0 (JRT Systems)" 56K "CP/M  Version 2.2 (PC8001/8801 -2w)"
  C3 16 00 00 00 E5     (kobe) disk "Nevada COBOL rev2.1 (Ellis Computing)" 
                               "Digital Research / Microsoftware Associates, 1982.6"
  B8 16 03 00 7D 19     (kobe) disks "FORTRAN-80 (Microsoft)" and "Nevada FORTRAN v3.0 (MOD 0)"
  2F 16 01 00 00 1F     (besso) MICRO Design of Genova, Italy from Vector International N.V in Belgium (single density)
  2F 16 01 00 00 08     (besso) MICRO Design of Genova, Italy from Vector International N.V in Belgium (double density or update)

  ??                     Licensed to NEC Corporation, "56K CP/M for the PC-8801MK2"

Other people's reports

Neo Kobe reports on July 2012: "NEC PC-8001 software, which happens to have a CP/M 2.2 version. Checking the disk image with a hex editor shows the 6 mfg/serial bytes in the CCP command table are: 76 16 00 00 7D 7B....in the start of the image [is]: '56K CP/M Version 2.2 (for NEC PC-8001) Copyright (C) by Digital Research / NEC'." Kobe provided other serial numbers as shown above. His sources were diskette images made available by Japanese owners of CP/M systems. - Herb

Salvatore Besso of Italy, Sept 2017: "The local vendor was the now defunct "MICRO design" located in Genova, Italy; they signed an agreement with Vector International N.V. located in Leuveen, Belgium (that was the European distributor of Digital Research for the time being). This agreement allowed "MICRO design" to serialize and sell CP/M copies in Italy. And so I bought it, circa 1981, but I'm not sure about the exact year." He later noted the vendor sent an update disk from CP/M 2.2 to 2.25.

Single density 5.25" copy reads 2F 16 01 00 00 1F
Double density 5.25" copy reads 2F 16 01 00 00 08


Contact information:

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

Copyright © 2017 Herb Johnson. COntent by Jeffrey W. Shook copyrighted as noted