[comp.lang.asm370] Source for VMCF ext Int handler

STELIOS@GRCRUN11.BITNET (Stelios Fragakis) (08/28/90)

Anyone  out  there with  a  sample  piece of  code,  to  handle VMCF  external
interrupts ?
 Thanks in advance !

- Stelios

RZA31LH@DB0ADW11.BITNET (Lutz Hamann) (08/30/90)

  Hi networkers |

On Tue, 28 Aug 90 17:33:23 LCL Stelios Fragakis said:
>Anyone  out  there with  a  sample  piece of  code,  to  handle VMCF  external
>interrupts ?
> Thanks in advance !
>
>- Stelios

Here are some exsamples of routines, which should illustrate how the whole
thing works (on our computer, VM/SP Rel.4) for years. I'm a little bit late
because first I hat to translate all comments from german into english
(next time, writing a routine, I'll do it in english |).


Now here is an example for the main-routine :


VMCFCALL MODUL 12                      my own macro for opening a csect
*
* * * *  Modification of control-reg.0 und VMCF-authorize  * * * * * *
*
         DMSKEY NUCLEUS
         LCTL  0,0,STREG0              set mask in controlreg. 0
         DMSKEY RESET                  (you can use DMSEXS-macro too)
         VMCF  AUTHORIZE,MSGID=SERV,PARM=PRMLST,BUF1=BUF,LEN1=120,     *
               ERROR=RC4
         EXTINT VMCFEXT                macro for def. interrupt-routine
*
* * * *  Returncodes  * * * * * * * * * * * * * * * * * * * * * * *
*
RC0      EQU   *
         LA    10,0
         B     EX
RC4      EQU   *
         LR    15,11
         LINEDIT TEXT='Error authorizing VMCF / Rc= .... |',           *
               DOT=NO,COMP=NO,SUB=(DEC,(11))
         LA    10,4
*
* * * *  E x i t    E x i t    E x i t    E x i t  * * * * * * * * * *
*
EX       EQU   *
         LEAVE RC=(10)                 macro for leaving a csect
*
* * * *  D a t a    D a t a     D a t a     D a t a  * * * * * * * * *
*
         ENTRY BUF,PRMLST
BUF      VMCHEAD                       external interrupt-buffer (40 B)
         DC    80C' '
PRMLST   VMCPARM                       Parameterlist for VMCF
STREG0   DS    0F                      Control reg. 0
         DC    XL4'000000E1'
         END


And now an example of handling an incoming external interrupt :


VMCFEXT  MODUL 12                      My macro for opening a csect
         VMCF  QUIESCE                 quiesce VMCF-interrupt
*
* * * *  was it really an external interrupt by VMCF ? * * * * * * *
*
         LH    2,26                    Code of ext. interrupt  R2
         CH    2,X4001                 VMCF-Code for interrupt ?
         BNE   RC4
         L     10,ABUF                 Addr. ext. interrupt-buffer R10
*
* * * *  look, what kind of VMCF-interrupt  * * * * * * * * * * * * *
*
         CLC   8(6,10),=C'SYSTEM'      interrupt via SMSG ?
         BNE   NOSMSG
         L     15,=V(HSMSG)
         BALR  14,15                   call a routine for handling smsg
         B     RC0
NOSMSG   EQU   *
         CLC   40(8,10),=CL8'TEXT1'    Text1 in interrupt-buffer ?
         BE    HTEXT1
         CLC   40(8,10),=CL8'TEXT2'    Text2 in interrupt-buffer ?
         BE    HTEXT2
         CLC   40(8,10),=CL8'TEXT3'    Text3 ? (and so on)
         BE    HTEXT3
         L     15,=V(MOD4)
         BALR  14,15                   Call Routine if undef. text
         B     RC0
HTEXT1   EQU   *
         ...
         ...      handle text1
         B     RC0
HTEXT2   EQU   *
         ...
         ...      handle text2
         B     RC0
HTEXT3   EQU   *
         ...
         ...      handle text3
         B     RC0
*
* * * *  Returncodes  * * * * * * * * * * * * * * * * * * * * * * * *
*
RC0      EQU   *
         LA    11,0
         B     RESET
RC4      EQU   *
         LA    11,4
         WRTERM 'No ext. interrupt by VMCF |'
*
* * * *  E x i t    E x i t    E x i t    E x i t  * * * * * * * * * *
*
RESET    EQU   *
         XC    0(160,10),0(10)         clear ext. interrupt buffer
         VMCF  RESUME                  allow VMCF-interrupts
         LEAVE RC=(11)                 my own macro for leaving a csect
*
* * * *  D a t a    D a t a     D a t a     D a t a  * * * * * * * * *
*
         EXTRN BUF
ABUF     DS    0F                      Addr. of ext. interrupt-buffer
         DC    A(BUF)
X4001    DS    0H                      constant for VMCF-interrupt
         DC    XL2'4001'
         END


And last, but not least, the macro EXTINT :


         MACRO
&L       EXTINT &ROUT
         CNOP  0,4                     defining a ext. interrupt-rout.
         BAL   1,S&SYSNDX
         DC    CL8'TRAP'
         DC    V(&ROUT.)
S&SYSNDX SVC   202
         DC    AL4(*+4)
         MEND

Hope this helps | Please, if you have questions, send it not directly to me,
but through the list (we're not yet in the BITEARN NODES).

                     Lutz Hamann

LOESCH@LAN.INFORMATIK.TU-MUENCHEN.DBP.DE (08/30/90)

RFC-822-Headers:
Newsgroups: bit.listserv.asm370
Organization: Inst. fuer Informatik, TU Muenchen, W. Germany
 BODY TYPE:          IA5TEXT

  Can I have a copy, too?
  Pls send it to CHAMNT@DOLUNI1.bitnet  :-)

  thank you (ef caristo?)
--
3 Carlo "Lynx" v. Loesch  is  loesch @ informatik.tu-muenchen.de              3
3  Georgenstr. 142        or  loesch %      -"-     @ unido.bitnet 3 .uucp    3
3  D-8 Muenchen 40        or  loesch %      -"-     @ relay.cs.net            3
*** pmk has changed the topic to Deutsche singen bei der Arbeit.

KXH105@PSUVM.BITNET ("Ken Hornstein 862-7007", 814) (09/03/90)

>         VMCF  AUTHORIZE,MSGID=SERV,PARM=PRMLST,BUF1=BUF,LEN1=120,     *
>               ERROR=RC4

Which macro library is this in?  I looked through all of the ones here at
PSU, but I can't find it.

---
What the large print giveth, the small print taketh away.

Ken Hornstein       kxh105@psuvm.psu.edu      Phone: 814/862-7007

RZA31LH@DB0ADW11.BITNET (Lutz Hamann) (09/05/90)

On Sun, 2 Sep 90 17:51:00 EDT Ken Hornstein (814) 862-7007 said:

>>         VMCF  AUTHORIZE,MSGID=SERV,PARM=PRMLST,BUF1=BUF,LEN1=120,     *
>>               ERROR=RC4
>
>Which macro library is this in?  I looked through all of the ones here at
>PSU, but I can't find it.
>

Soooo, sorry. Our VM/SP is not an original IBM-Release, but it was released
by the national Computer-House of the GDR, called Robotron. In our release
are 4 macros for VMCF-handling in the CMSLIB MACLIB.
So it turned out funny, that in this case seems Robotron is more comfortable
than Big Mama Blue |
But what can you do now ? It's very hard, but you have to call the AUTHORIZE-
Function of VMCF via diagnose x'68' (including define the vmcf-buffers and
parameterlists by yourself). If you don't want to do this, so nothing else
to advise than using IUCV (in this case there are some macros) |

   Have fun ......        Lutz Hamann

P.S. Now we're in the node-updates for september. If your node-administrator
     has implemented this update, you can answer to me directly. If not,
     answer through the list.

NET@CESPIVM2.BITNET ("Rodolfo A. Cozzi") (09/07/90)

>Anyone  out  there with  a  sample  piece of  code,  to  handle VMCF  external
>interrupts ?
> Thanks in advance !
>
>- Stelios
>
Yes, i have a External interrupt handler for VMCF . It SWAP the
PSW's and transfer control to it when the interrupt is an VMCF interrupt.
I can send to you thi program, and examples.
Forgive my *BAD* English !
Rodolfo Cozzi - System Programmer - CeSPI - UNLP