cs325ec@ux1.cso.uiuc.edu (03/12/90)
woops... I took out eval which took (long (*addr)()) as a param. -Greg
cs325ec@ux1.cso.uiuc.edu (03/12/90)
I am trying to set a function name to an absolute value in
Turbo C:
Could someone just drop a note on how to call olderrh (the
old critical error handler) if I do not want to service the
call?
Thanks in advance
-- Greg
I have tried this and more:
#include <stdio.h>
#include <tos.h>
#define drivebits 0x0030
void *olderrh;
/****************************
Critical Error Handler
****************************/
long criterr(int err, int drive)
{
if (drive & drivebits)
return(1L);
else
return(eval(olderrh));
}
/****************************
Replace Error Handler
****************************/
void replerr(void)
{
olderrh = (void *)(*(long *)0x404L);
*(long *)0x404L = (long)criterr;
}
void main(void)
{
Supexec(replerr);
Ptermres(0x400L,0);
}