C THIS IS A SIMPLE EXAMPLE OF THE USE OF MEMORY MANAGEMENT C DIRECTIVES FROM FORTRAN. THIS PROGRAM CREATES A 32 WORD C COMMON (IPLAS), WRITES THE VALUES 1 TO 32 INTO THE COMMON, C AND THEN PRINTS THE VALUES FROM THE COMMON ON THE TERMINAL. C THE TASK CAN BE COMPILED UNDER FORTRAN IV OR FORTRAN IV-PLUS. C AFTER COMPILING, THE TASK IS BUILT AS FOLLOWS. C >TKB C TKB>PLAS=PLAS C TKB> C ENTER OPTIONS: C WNDWS=1 C VSECT=IPLAS:160000:100:1 C TKB>// C C C COMMON /IPLAS/IPLAS(32) C DEFINE SPACE FOR REGION DEFINITION BLOCK AND WINDOW C DEFINITION BLOCK DIMENSION IRDB(9),IWDB(11) C DEFINE REGION DEFINITION BLOCK(SEE EXEC REF. MANUAL, C P.3-9 TO 3-10, AND C TASK BUILDER REFERENCE MANUAL P. 4-10). ALL FIELDS C EXCEPT REGION C STATUS WORD ARE ZERO, SINCE REGION IS UNNAMED AND WILL C DEFAULT TO C CURRENT (SYSTEM-CONTROLLED)PARTITION. BITS SET IN REGION STATUS C WORD ARE : RS.MDL!RS.ATT!RS.WRT!RS.RED DATA IRDB/0,0,0,0,0,0,"243,0,0/ C DEFINE WINDOW DEFINITION BLOCK FOR APR7,WINDOW SIZE OF 32 C WORDS (100 OCTAL BYTES), C OFFSET 0,AND NO SEND/RECEIVE BUFFER. C THE WINDOW STATUS WORD IS DEFINED AS: C WS.64B!WS,MAP!WS.WRT DATA IWDB/"3400,"160000,1,0,0,1,"602,0,0,1,0/ C ALLOCATE VIRTUAL SPACE FROM TASK IMAGE (SEE TKB MANUAL, P. 4-10) CALL ALSCT(IRDB,IWDB,ISTS) C TEST IF SPACE ALLOCATED. IF NOT, EXIT. IF(ISTS-1)55,5,55 C CREATE REGION (SEE EXEC. REF. MANUAL) 5 CALL CRRG(IRDB,IDS) C TEST IF REGIONS SUCCESSFULLY CREATED. IF NOT, EXIT. IF(IRDB(7))10,55,55 C MOVE REGION I.D. FROM RDB TO WDB. 10 IWDB(4)=IRDB(1) C CREATE ADDRESS WINDOW AND MAP (SEE EXEC. REF. MANUAL) CALL CRAW(IWDB,IDS) C TEST FOR SUCCESSFUL CREATION. IF NOT, EXIT. IF(IWDB(7))20,55,55 C WRITE VALUES INTO COMMON 20 DO 30 I=1,32 30 IPLAS(I)=I C PRINT VALUES ON ISSUING TERMINAL WRITE (5,40)(IPLAS(J),J=1,32) 40 FORMAT(24(1X,I2)) C DETACH REGION, WHICH ALSO UNMAPS. CALL DTRG(IRDB,IDS) C RELEASE VIRTUAL MEMORY CALL RLSCT(IRDB,IWDB) 55 CALL EXIT END