🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: bit.listserv.asm370
Article #1633

Re: User interface under TSO (was Re: Detecting TSO SM ...)

#1633
From: Leonard D Woren
Date: Wed, 01 Apr 1992 02:23
99 lines
5056 bytes
On Tue, 31 Mar 1992 09:02:00 EST,
   "Stephen E. Bacher" <seb1525@MVS.DRAPER.COM> said:
> ...
> Despite occasional pejoratives hurled at ISPF, it's the best way to
> develop a full-screen application for TSO users.  Not only is it
> relatively easy to do, but it'll work compatibly with most other
> full-screen applications - most people have more than one task to
> perform at the same time.  On the other hand, if this is a one-time
> effort, you may not have the time to dig into learning ISPF.

I strongly agree with the above.  BTW, a few years ago IBM stated that
ISPF was THE display manager for TSO, and that all new IBM products
would use ISPF only.  (At least that's what I think I remember them
stating...)

> Coding non-ISPF fullscreen applications, though, is not a useful or
> productive direction.  ISPF users will be upset, unless they have a
> multisession manager package at their site.

Also true, and quoted again to emphasize the importance of this idea.

> Not an ESTAE, but a STAX, to capture attentions.  This isn't as
> flexible an interrupt handling mechanism as ESTAE/ESPIE, since your
> application can't specify a retry address - it can only opt to
> continue (ignoring the attention) or abort.

Bzzzt.  (Maybe.)  The STAX exit is passed a parm list, the first word
of which is a pointer to the TAIE (Terminal Attention Interrupt
Element).  Looking at SYS1.MACLIB(IKJTAIE), I see the following
interesting fields, which I believe can modified by the STAX exit
routine (although the manual doesn't state one way or another):

TAIEIAD  DS    1F .     RIGHT HALF OF INTERRUPT PSW                     27000000
TAIERSAV DS    CL64 .   REGS. STORED HERE WHEN AN INTERRUPT             30000000
*                       TO MAINLINE OR ATTEN. EXIT OCCURS               33000000

> The typical attention
> exit routine sets a flag in the mainline and returns - the mainline
> checks for this flag at periodic intervals.  Not only does this slow
> down the mainline code slightly,

Give me a break.  How much does an occasional TM/BO cost???

> but it exposes the application to segments of noninterruptability.
> If you screw up the polling code, you can let the user get into an
> unbreakable loop.

I generally write my attention exit routines with logic like this:
         TM   flag,attn   been here before?
         BZ   FRSTATTN    no - ok
         TPUT '*** abend requested by double attention ***'
         ABEND 99         yes - user wants out
FRSTATTN OI   flag,attn   remember we've been here
...
In the input routine, after the return code from TGET has been
checked,
         NI   flag,255-attn   reset attention flag

If you're doing fullscreen and/or stax processing, *especially* if
you're doing both, you must read the manuals before writing the code.
For example, attn kills the STFSMODE settings.

> I think that if you have any further questions, this discussion
> should be continued offline, or moved to IBM-MAIN.
>
> Hope this helps (and that Leonard doesn't violently disagree with
> anything I've said here :-).

Actually, I agree with almost everything!  GOTCHA!!

> P.S. Sample code to clear screen (no allowance for ISPF or SM here):
>
>          STFSMODE INITIAL=YES      SET FULL SCREEN MODE FOR VTAM
>          LTR   15,15               IF NOT A VTAM TERMINAL
>          BNZ   TCAMCLR             THEN DO A TCAM SCREEN CLEAR
> *                                  ELSE DO A VTAM SCREEN CLEAR
>          TPUT  CLR,L'CLR,FULLSCR,,HOLD
>          STLINENO LINE=1           INSURE LINE MODE OUTPUT GOES TO TOP
>          STFSMODE OFF              SET FULL SCREEN MODE OFF
>          TCLEARQ INPUT             FLUSH PA2 AID QUEUED BY VTIOC
>          B     DONE
> TCAMCLR  DS    0H                  NOT VTAM - DO TCAM SCREEN CLEAR
>          TPUT  FSON,L'FSON,FULLSCR,,HOLD
>          TPUT  FSOFF,L'FSOFF,FULLSCR,,HOLD
> DONE     DS    0H
>          ...
> CLR      DC    X'401140403C40400013'
> FSON     DC    X'40115D7F1140403C40400013'
> FSOFF    DC    X'40115D7E1140403C40400013'
>          ...

Actually, this being ASM370, here's a MUCH smaller program to clear
the screen.  This works for VTAM terminals but not TCAM terminals:
         STLINENO  MODE=OFF,LINE=1
This is how IBM suggests clearing the screen.  Note that this is ALL
that's needed!  VTAM does the rest.


/Leonard
Technical Details
Message-ID: <ASM370%92033121214617@OHSTVMA.IRCC.OHIO-STATE.EDU>
Path: arc1-ca.pugleaf.net!sparky!uunet!paladin.american.edu!auvm!USCMVSA.BITNET!LDW

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: fcdcb,52430432af2b4cdb
X-Google-Attributes: gidfcdcb,public
X-Google-ArrivalTime: 1992-03-31 18:23:00 PST
Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
Path: arc1-ca.pugleaf.net!sparky!uunet!paladin.american.edu!auvm!USCMVSA.BITNET!LDW
Message-ID: <ASM370%92033121214617@OHSTVMA.IRCC.OHIO-STATE.EDU>
Newsgroups: bit.listserv.asm370
Date:         Tue, 31 Mar 1992 18:23:00 PST
Sender:       IBM 370 Assembly Programming Discussion List <ASM370@UGA.BITNET>
From:         Leonard D Woren <LDW@USCMVSA.BITNET>
Subject:      Re: User interface under TSO (was Re: Detecting TSO SM ...)