Text File

Aucbvax.3164 fa.unix-wizards utzoo!decvax!ucbvax!unix-wizards Tue Sep 15 18:59:26 1981 PDP-11 Compatibility on VAXen >From allegra!jdd@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

----------------------------------------------------------------- gopher://quux.org/ conversion by John Goerzen <jgoerzen@complete.org> of http://communication.ucsd.edu/A-News/

This Usenet Oldnews Archive article may be copied and distributed freely, provided:

1. There is no money collected for the text(s) of the articles.

2. The following notice remains appended to each copy:

The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996 Bruce Jones, Henry Spencer, David Wiseman.