The things I learned installing VM/BATCH 1.1.1 Program Product number is 5664-364. Manuals are SC34-4093-1 VM Batch Facility Installation, Customization, and Administration SC34-4094-1 VM Batch Facility User's Guide The batch monitor VM (BATCH) uses IUCV to communicate with the batch worker VMs (BATCH1-n). WAKEUP uses VMCF to trap SMSG's. | | External | | | Instruction | Interrupt | CR0 | | To invoke | Code | Bit | -----+-------------+-----------+-----| IUCV | B2F0 rddd | 4000 | 30 | VMCF | Diag 68 | 4001 | 31 | When using the IUCV instruction, register 0 has the IUCV operation code in it and rddd (the second half of the instruction) is the base register and displacement of your IUCV buffer. The codes in R0 aren't documented anywhere. I saw what they were by looking at the CP IUCV macro. They are (in decimal) 0 = QUERY 1 = TESTMSG 2 = RTRVBFR 3 = DESCRIBE 4 = SEND 5 = RECEIVE 6 = REPLY 7 = TESTCMPL 8 = REJECT 9 = PURGE 10 = ACCEPT 11 = CONNECT 12 = DCLBFR 13 = QUIESCE 14 = RESUME 15 = SEVER 16 = SETMASK 17 = SETCMASK The IUCV buffer is well documented in the appropriate CP book that describes IUCV. When you use the CMSIUCV macro, DMSIUC gets control, gets some free storage for an IUCV buffer, and tells CP about it via a IUCV DCLBFR request. The anchor for that buffer is in the IUCVTAB, whose anchor is AIUCVTAB (E64 in NUCON). When an IUCV interrupt comes in, CP uses CMS's buffer and CMS then moves the data into the application's buffer. You can see what the interrupt is by TRACE EXT If 1A.2 = x'4000', D E64 to get AIUCVTAB (let's say it's at 3B30) D 3B3C to get anchor for IUCV buffer (1E9EB8) D 1E9EB8.28 to get IUCV buffer. The IUCV buffer is mapped by the IPARML DSECT. At +3 is IPTYPE, which tells you the type of interrupt it was. See the appropriate CP book for the possible external interrupt types and their explanation.