McKown, John wrote:
Well, sort of. Many priviliged instructions are dispatched via SIE. You can't affect those. If you have find an unimplimented priviliged instruction which is not trapped by SIE (hum is this possible?), then you could modify the z/VM software to trap go to your own routine instead of reflecting an program interrupt 1 to the guest. Now that I think a about it a bit more, I doubt this will work. I'll bet that SIE traps this and reflects the PIC 1 to the guest directly. I learned VM back in the VM/370 days, long before SIE existed. It would have worked back then. Every program interrupt back then went to VM/370's FLIH and was either emulated or reflected back to the guest.
Ok.. Here is my €0.02.. (PS : SIE intercept means the guest flow of instruction is ended by returning from the SIE instruction - and an Interception code is indicated in the SIEBK). An instruction cannot be both "privileged" and "unimplemented" - it's either one, or the other ! Now.. Can a privileged instruction not generate a SIE intercept ? Sure (but you already know that)! There are lots of cases where SIE perform the equivalent function of the privileged instruction without notifying the SIE host. For example, there are chances a LCTL which loads an identical value in a Control Register won't notify the host (unless the host specifically asks for it !) - because there is no actual state change. Also.. Any PIC 1 (Operation Exception) is a mandatory SIE intercept. This means the Program Interrupt is NOT simulated by SIE. It is the responsibility of the hypervisor to do that. Of course, whether an instruction generating a SIE intercept reflects a program interrupt to the guest depends on several factors : What is the interception code ? Is the Guest PSW in problem state ? Is it a page fault ? is it a *guest* page fault or a host page fault ? Is it an opcode that would have generated a PIC 1 but that actually means something for z/VM (B2F0 anyone ?). In light of this, yes - it should be possible to do your own instruction under z/VM. However, there is a MUCH simpler ways to do this : DIAG instruction ! That's a documented extensible interface - Diagnose code can be implemented as loadable CP modules. No need to fiddle with CP source code ! Of course, if someone wants to be able to run S/360 or S/370 code under z/VM, it's a bit more tricky than that. Basic S/370 I/O is handled by S/370 Accommodation Mode. But that's not the only difference between S/370 and XA+ ! So running a S/360 or S/370 control program (i.e. one that runs in supervisor mode and *expects* a S/360 or S/370 architectured machine) under z/VM is pretty much impossible (PSW format changes/restrictions and Control Registers reassignments are going to bite you). S/370 ACCOM is really only designed (as I see it) to allow CMS programs that do I/Os to run.. But probably not something more complicated. --Ivan ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

