GDDM V3R2 Base Application Programming Guide
|
Previous topic |
Next topic |
Contents |
Index |
Contact z/OS |
Library |
PDF |
BOOK
A System/370 Assembler programming example GDDM V3R2 Base Application Programming Guide SC33-0867-01 |
|
This program uses the nonreentrant interface to GDDM. It draws straight lines in response to cursor movement and user-generated attentions. PF3 or a GDDM error stops the program. You might want to check for the successful completion of all GDDM calls; most of these checks have been omitted here for clarity.
________________________________________________________________________
ASMNR CSECT ,
STM R14,R12,12(R13) SAVE REGISTERS
BALR R12,0 BASE REGISTER FOR CODE
USING *,R12 ... AND TELL THE ASSEMBLER
ST R13,SAVEAREA+4 SAVE CALLER'S SAVE AREA ADDRESS
LA R11,SAVEAREA GET SAVE AREA ADDRESS
ST R11,8(,R13) ... AND STORE IT
LR R13,R11 SAVE AREA FOR CALLED ROUTINES
CALL FSINIT,(0),VL INITIALIZE GDDM
LTR R9,R15 ... AND CHECK FOR NORMAL RETURN
BNZ RETURN
CALL GSSEG,(SEGNO),VL OPEN SEGMENT NUMBER 1
LTR R9,R15 ... AND CHECK FOR NORMAL RETURN
BNZ RETURN
CALL GSMOVE,(X,Y),VL INITIALIZE CURRENT POSITION
LOOP DS 0H TOP OF LOOP
CALL ASREAD,(TYPE,VALUE,MODS),VL WAIT FOR OPERATOR ACTION
CALL GSQCUR,(PTYP,X,Y),VL FIND WHERE CURSOR IS
CALL GSLINE,(X,Y),VL DRAW LINE THERE FROM PREVIOUS POINT
CLC TYPE(4),F1 CHECK FOR A PROGRAM FUNCTION KEY
BNE LOOP ... CONTINUE IF NOT
CLC VALUE(4),F3 CHECK FOR PF3
BNE LOOP ... CONTINUE IF NOT
CALL GSSCLS,(0),VL CLOSE SEGMENT
CALL FSTERM,(0),VL TERMINATE GDDM IF PF3 WAS USED
RETURN L R13,4(,R13) RECOVER SAVE AREA ADDRESS
LR R15,R9 SET RETURN CODE
L R14,12(,R13) RESTORE REGISTERS
LM R0,R12,20(R13) ... FOR CALLER
BR R14 RETURN TO CALLING ROUTINE
* PROGRAM CONSTANTS
F1 DC F'1' INDICATES A PF KEY WAS USED
F3 DC F'3' PF KEY NUMBER 3
SEGNO DC F'1' SEGMENT NUMBER 1
SAVEAREA DS 18F REGISTER SAVE AREA
TYPE DS F TYPE OF ATTENTION (FULLWORD INTEGER)
VALUE DS F ATTENTION VALUE (FULLWORD INTEGER)
MODS DS F MODIFIED FIELDS (FULLWORD INTEGER)
PTYP DS F WINDOW INDICATION (FULLWORD INTEGER)
X DC E'50' X-COORDINATE (SHORT FLOATING POINT)
* ... INITIALIZED TO 50
Y DC E'50' Y-COORDINATE (SHORT FLOATING POINT)
* ... INITIALIZED TO 50
________________________________________________________________________
________________________________________________________________________
* EQUATES FOR REGISTERS
R0 EQU 0
R1 EQU 1
R9 EQU 9
R10 EQU 10
R11 EQU 11
R12 EQU 12
R13 EQU 13
R14 EQU 14
R15 EQU 15
END ASMNR
________________________________________________________________________
|
Copyright IBM Corporation 1990, 2012 |