PDP-11 Compatibility on VAXen
utzoo!decvax!ucbvax!unix-wizards
utzoo!decvax!ucbvax!unix-wizards
Tue Sep 15 18:59:26 AEST 1981
>From allegra!jdd at Berkeley Tue Sep 15 18:54:48 1981
The compatibility package to allow PDP-11 programs to run on VAXen (which
you can find in /usr/src/games/compat) provides two basic functions: it
provides a Unix environment for the PDP-11 programs, mostly by interpreting
trapped system calls, and it provides a floating-point environment for them,
by interpreting trapped floating-point operations.
The floating-point package is complete trash. For my application, I had to
totally re-implement it (which was much easier in the end than making it
work would have been).
The Unix environment stuff is better; I found only one major bug. The
compatibility package catches all signals and determines their disposition.
In particular, if it was in the compatibility package when the signal
happened and if the signal should be reflected to the user, it twiddles user
space to make it seem that the appropriate routine there has been called.
The problem is that it might have been in the middle of a system call when
the signal was caught, and the result of that system call should go in the
stack frame it creates, \but/ it doesn't know what the result is yet. This
can be fixed in a variety of ways, all of which depend on remembering the
signal and filling in the appropriate value at the appropriate time.
Cheers,
John
More information about the Comp.unix.wizards
mailing list