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
[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.]
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
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
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 ???
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)
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:
Copyright © 2008 Herb Johnson and Jeffrey W. Shook as noted