cottrell@nbs-vms.ARPA (01/04/85)
/* everyone is ignoring the obvious workable portable solution: have an assembly language file that looks like this: _sys_read: jmp SYS$SYSTEM _foo: jmp VMS$STUPIDNAME .end "got to keep the loonies on the path" */
geoff@desint.UUCP (Geoff Kuenning) (01/08/85)
In article <6952@brl-tgr.ARPA> cottrell@nbs-vms.ARPA writes: >everyone is ignoring the obvious workable portable solution: have an >assembly language file that looks like this: > >_sys_read: jmp SYS$SYSTEM >_foo: jmp VMS$STUPIDNAME > .end Portable? What about the cdc 6600, which uses either "EQ" or "JP" for the unconditional jump? (No, I'm not kidding; "EQ abc" jumps to abc after comparing register B0 with itself). Besides, unless your "ctags" is a lot better than mine, in a large program it is going to be a neat trick for an outside observer to figure out that a call to "foo" actually runs LIB$DO_COMMAND. The whole point of the original suggestion was to get AWAY from this sort of thing and let us write what we mean, rather than kludging around things like we do now. -- Geoff Kuenning ...!ihnp4!trwrb!desint!geoff
cottrell@nbs-vms.ARPA (01/17/85)
/* i wrote that funny external names can be mapped portably by an assembly language file containing lines such as: from: jmp to geoff kuenning responded that some assemblers use such mnemonix as EQ or JP for unconditional jumps (not to mention u1108 J), and therefore my asm module is not portable. agreed. however, names such as SYS$SYSTEM are not likely to appear on the target system anyway. what i meant was that the C code was portable, that the language need not be changed to effect this mapping. i agree it's a pain to do it this way but it works. */