[comp.lang.apl] I-Beam

liebtag@stlvm20.vnet.ibm.com ("David Liebtag") (03/08/91)

Joe,

   Here's how I would get the information in APL2.

Legend:

   GDDM  - Provided by GDDM
   ISPF  - Provided by ISPF
   GDIS  - Provided by GDDM and ISPF
   APxxx - Auxiliary processor xxx
   xx   - System function or variable
   ?     - Don't know
   NA    - Either not applicable or not supported

   Not all the supported functions provide exactly the same service.
For example, the I-beams to position the next output are not directly
supported.  However, you can instruct the session manager using AP120
to scroll the display so that the next output will appear where you
want it.


GDIS  I3 - read light pen position
GDDM  I4 - tells which devices are operation at THIS terminal:
            1-CRT
            2-Typewriter
            3-CRT and Typewriter
            4-Film Projector
            5- (4 and 1)
            6- (4 and 2)
            7- all three devices
NA    I5 - current sense switch settings on the mainframe console
NA    I6 - current console switch settings on the console
WA   I7 - Number of bytes available for FN storage, max was 5120
NA    I8 - Terminal number, 0 through 31
NA    I9 - Vector of active terminals, i.e. someone signed on
AI   I10- Your signon number at this terminal
GDIS  I11- Your terminal type: 0=CRT, 1=Typewriter
IO   I12- Index origin
RL   I13- Current random seed
AP120 I14- Row# where next CRT output will appear
NA    I15- Current film frame number, 1 thru 1022
PW   I16- Current max output line width setting
NA    I17- Time out indicator:
             0-Last input did not timeout
             1-Last input timed out
NA    I18- Current time-out limit for quad input and I3 input
AI   I19- Cumulative input wait time in 60ths of a secondsm since signon
TS   I20- Time of day in 60ths of a second since midnight
AI   I21- elapsed cpu time in 60ths of a second, since signon
WA   I22- Number of bytes available for var staorage, max was 6400
UL   I23- Number of users signed on right now
TSAII24- Signon time in 60ths of a second
TS   I25- todays dates in form MMDDYY
LC   I26- Current line number of function being executed
LC   I27- vector of suspended line numbers
7LC  I28- number of suspended line numbers
PP   I29- current setting for significant digits display

      They also had a primitive known as DOMINO (which we now call matrix
      divide). It served a very different purpose. Using D for the symbol:

AP120 D0   - clear the CRT screen
NA    D1   - switch to the OTHER ternminal (CRT <-> TYPEWRITER)
IO~  D2,N - set index origin where N is 0 or 1
RL~  D3,N - set random number seed
AP120 D4,N - set CRT row for next output if using a CRT
NA    D5,N - positions FILM projector at frame N
PW   D6,N - sets max line width ala )WIDTH
DL   D7,N - pause for N/60 seconds
#,NA  D8   - pause until a key if pressed
PP   D9,N - set significant digits display to N digits, N le 6
NA    D10,N- set time out value for quad and light pen

GRAPHPAK (uses GDDM) for plotting

AP111,AP210,YFV for file IO

)RESET n to replace )PURGE


Regards,
David Liebtag
IBM APL Products