Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site sdccsu3.UUCP
Path: utzoo!linus!vaxine!wjh12!genrad!decvax!ittvax!dcdwest!sdcsvax!sdccsu3!brian
From: brian@sdccsu3.UUCP
Newsgroups: net.micro.cpm
Subject: Re: Intercepting BDOS errors
Message-ID: <1952@sdccsu3.UUCP>
Date: Wed, 20-Jun-84 09:29:31 EDT
Article-I.D.: sdccsu3.1952
Posted: Wed Jun 20 09:29:31 1984
Date-Received: Fri, 22-Jun-84 01:04:21 EDT
References: <1685@tekig1.UUCP>
Organization: UCSD beer & pizza society
Lines: 29

a

Near the front of the BDOS there are 4 consecutive jump addresses.
Normally, these have the addresses of BDOS's error handlers (which print
the dreaded BDOS ERROR ON B sort of messages).  You can replace them
with addresses of your own if you wish.  There is one each for
	disk read only
	file read only
	select error
	bad sector

You will find them after the initial jump instruction in the bdos - for
example, in a 56K cp/m, the bdos starts at CC06, and the jump addresses
are at CC09, CC0B, CC0D, CC0F.

In a BBS system I created once, these types of bdos errors should not
ever have happened, so I replaced the addresses at boot time
(dynamically) with the address of a subroutine that printed out "system
error" and aborted the current operation, then jumped to location 0 to
warmboot the system.  Seemed to handle most of the problems.

-- 
	-Brian Kantor, UC San Diego 
	
	ihnp4 \		Kantor@Nosc
	decvax \
	akgua   -----  sdcsvax  ----- brian
	dcdwest/
	ucbvax/