Hello all,

Any assistance would be greatly appreciated.

I am working on a SNA interface for a batch framework. This is mostly just
a massive learning exercise that will likely never be utilized, but I have
learned SO much while working on this project (currently 6 years in the
making).

The address space accepts terminals with MOD2 terminals and everything
displays great. However, I would like to support larger terminal sizes. My
first hurdle is GTTERM. I understand that my program should be in  RMODE24
and AMODE24. The program is assembled with AMODE 31, but performs a SAM24
and SAM31 before and after the SVC call. The dynamic storage area for the
program is also acquired below the line.

I check register 15 after the SVC, and it is zero. But the SVC parameter
values are still zero.

Here is my source:

         REGEQU
         COPY  SESSBLK
*
WORKAREA DSECT
WORKNAME DS    CL8
SAVEAREA DS    18F
SAVERC   DS    F
SAVEPARM DS    F
*
GTTLIST  GTTERM MF=L
*
WORKLEN  EQU   *-WORKAREA
*
WORKREG  EQU   R3
SESSREG  EQU   R5
*
PORTTC04 CSECT
PORTTC04 AMODE 31
PORTTC04 RMODE 24
         STM   R14,R12,12(R13)         SAVE REGISTERS
         LR    R12,R15                 ESTABLISH BASE
         USING PORTTC04,R12            *
         B     START
*
         DC    CL9'PORTTC04'
         DC    CL9'&SYSDATC'
         DC    CL5'&SYSTIME'
*
START    DS    0H
         LR    R2,R1                   SAVE REGISTER 2
         LHI   R7,WORKLEN              LOAD WORK AREA LENGTH
         GETMAIN RU,LV=(R7),LOC=BELOW
         LR    WORKREG,R1              *
         USING WORKAREA,WORKREG        SET ADDRESSIBILITY
*
         LR    R6,WORKREG              LOAD REGISTER
         LA    R8,0                    SET DUMMY FROM ADDRESS
         XR    R9,R9                   SET PADDING TO LOW VALUES
         MVCL  R6,R8                   INITIALIZE AREA
*
         ST    R13,SAVEAREA+4          CHAIN CALLER'S SAVEAREA ADDRESS
         LA    R13,SAVEAREA
         ST    R13,SAVEAREA+8          SAVE CURRENT SAVEAREA ADDRESS
         MVC   SAVEAREA(4),=CL4'F4SA'
         MVC   WORKNAME(8),=CL8'PORTTC04'
*
GETLINK  DS    0H
         LR    R1,R2                   RESTORE REGISTER 2
         ST    R1,SAVEPARM
         LT    SESSREG,4(R1)           GET ADDRESS OF SESSBLK
         BZ    BADLINK                 NO LINKAGE PASSED
         USING SESSBLK,SESSREG         SET ADDRESSIBILITY
*
GETTERM  DS    0H
         SAM24
*
         GTTERM PRMSZE=SESSPRI,ALTSZE=SESSALT,ATTRIB=SESSATTR,         *
               MF=(E,GTTLIST)
*
         ABEND 91,DUMP
         SAM31
*
         LTR   R15,R15
         BNZ   BADRC
*
         ST    R15,SESSATTR+4
*
         B     RETURN
*
BADRC    DS    0H
         WTO   'PORTTC04 BAD GTTERM RC'
         MVHI  SAVERC,16               SET BAD RETURN CODE
         ABEND 98,DUMP
*
BADLINK  DS    0H
         WTO   'PORTTC04 INVALID LINKAGE PARAMETERS'
         MVHI  SAVERC,16               SET BAD RETURN CODE
         ABEND 99,DUMP
*
RETURN   DS    0H
         L     R13,SAVEAREA+4          RESTORE R13
         L     R2,SAVERC               LOAD RC
*
         LHI   R0,WORKLEN              LOAD WORK AREA LENGTH
         FREEMAIN RU,LV=(R0),A=(WORKREG)
*
         LR    R15,R2                  LOAD RC FROM R2
         L     R14,12(R13)             RESTORE R14
         LM    R0,R12,20(R13)          RESTORE R0-R12 (RETAIN R15)
         BR    R14                     RETURN TO CALLER
*
         LTORG
*
         END

I added the ABEND 91 instruction to produce a dump. Register 3 contains the
SVC plist.

The SESSBLK contains the SESSPRI, SESSALT, and SESSATTR fields (addressed
by register 5).

Here are the dump contents:

Program PORTTC04 issued an SVC 13 (ABEND) code U0091

        at address 00000000_00007A5C, offset B4 in Program PORTTC04



Registers when request issued.

0 00000000_80000000 1 00000000_8000005B 2 00000000_000943C8 3 00000000_
0002CF48
4 00000000_362BC048 5 00000000_0002CBF0 6 00000000_B5D08928 7
00000000_B5D08A28
8 00000000_00000000 9 00000000_00000000 A 00000000_40404040 B
00000000_00000000
C 00000000_800079A8 D 00000000_0002CF50 E 00000000_B5FA5C56 F
00000000_00000000


Last Instruction: SVC      13  ABEND

   Instruction has no operands



PSW when request issued: 078D1000 00007A5E

   PER-Mask . . . . . . . . . . OFF

   DAT Mode . . . . . . . . . . ON

   I/O Mask . . . . . . . . . . ON

   External Mask. . . . . . . . ON

   PSW Key. . . . . . . . . . . 8

   EC Mode. . . . . . . . . . . ON

   Machine-Check Mask . . . . . ON

   Wait State . . . . . . . . . OFF

   Problem State. . . . . . . . ON

   Address Space Control. . . . Primary ASC Mode
   Condition Code . . . . . . . 1
   Program Mask . . . . . . . . 0
   Addressing Mode. . . . . . . 24 bit
   Instruction Address. . . . . 007A5E

The program's dynamic storage area:

Address  Offset from 00000000_0002C000                Origin STORAGE 0001
0002CF48 000F48 D7D6D9E3 E3C3F0F4 C6F4E2C1 000945C0 *PORTTC04F4SA.. {* R3
0002CF58 000F58 0002CF50 00000000 00000000 00000000 *.. &............*
0002CF68 000F68 00000000 00000000 00000000 00000000 *................*
0002CF78 000F78 00000000 00000000 00000000 00000000 *................*
0002CF88 000F88 00000000 00000000 00000000 00000000 *................*
0002CF98 000F98 00000000 000943C8 00000000 00000000 *...... H........*
0002CFA8 000FA8 00000000 00000000 0002CBFC 0002CBFE *..........  ..  *
0002CFB8 000FB8 8002CC00 00000000 00000000 00000000 * .รถ.............*
0002CFC8 000FC8 00000000 00000000 00000000 00000000 *................*
0002CFD8 000FD8 00000000 00000000 00000000 00000000 *................*
0002CFE8 000FE8 00000000 00000000 00000000 00000000 *................*

Address  Offset from 00000000_0002C000                Origin STORAGE 0001
0002CBFC 000BFC 00000000 00000000 00000000 00000000 *................*

Address  Offset from 00000000_0002C000                Origin STORAGE 0001
0002CBFE 000BFE 00000000 00000000 00000000 00000000 *................*

Address  Offset from 00000000_0002C000                Origin STORAGE 0001
0002CC00 000C00 00000000 00000000 00000000 00000000 *................*


Thank you,

Brian Chapman

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to