Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!philabs!seismo!hao!hplabs!sri-unix!RGF@mit-mc From: RGF%mit-mc@sri-unix.UUCP Newsgroups: net.micro.cpm Subject: [RGF: BDOS secrets] Message-ID: <3655@sri-arpa.UUCP> Date: Sat, 30-Jul-83 20:50:00 EDT Article-I.D.: sri-arpa.3655 Posted: Sat Jul 30 20:50:00 1983 Date-Received: Mon, 1-Aug-83 11:51:32 EDT Lines: 31 From: Ronald G. FowlerDate: 30 July 1983 18:50 EDT From: Ronald G. Fowler To: ACB.TYM at OFFICE-2 cc: RGF Re: BDOS secrets 1) Those six bytes at the beginning are the CP/M serial number; they have little significance to anything other than the MOVCPM program (which disables interrupts and halts if these numbers do not match MOVCPM's internal serial number). I'm also told that some rather rude implementations of CP/M come with utilities that take it upon themselves to do this serial number check also. 2) The four vectors are pointers to the following routines (in order): a. Permanent error subroutine (ie, BDOS ERROR ON X: BAD SECTOR) b. Select error c. Disk read/only error d. File read/only error The BDOS uses these addresses to find the corresponding error- handling subroutine; in theory, a transient program could overlay this table with pointers to its own routines, and thereby circum- vent the unfriendly BDOS error handlers, replacing the routines with more human-oriented messages. In practice, few programs do this; it's a risky practice, and not quite as clear-cut as it sounds. --Ron Fowler