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 ________________________________________________________________________ |
![]() |