.MCALL .MODULE .MODULE GSWN,RELEASE=V00,VERSION=30,COMMENT= .ENABLE LC .NLIST CND .LIST MEB ;+ ;************************************************************************ ;*.ST SET WINDOW * ;*.PAGE * ;*.X SET WINDOW * ;*.X WINDOW * ;*.X GSWN * ;*.LIT * ;************************************************************************ ;* * ;* FORTRAN calling sequence: * ;* SUBROUTINE GSWN (TNR, XMIN, XMAX, YMIN, YMAX) * ;* * ;* Input parameters: * ;* INTEGER TNR transformation number * ;* REAL XMIN, XMAX, window limits in world coordinates * ;* YMIN, YMAX * ;* * ;************************************************************************ ;*.ELI * ;************************************************************************ ;- .LIBRARY /UTL.MLB/ .MCALL $UTL $UTL .NLIST .INCLUDE /GOPSTA.INC/ .INCLUDE /GKSSL.INC/ .INCLUDE /GERROR.INC/ .LIST .PSECT G$$COD,RW,I,LCL,REL,CON GSWN:: MOV GKSSL,R0 ; Get the address of the GKS state list. MOV GS.LNT,R1 ; Pointer to the list of N.T.s. MOV @2(R5),R2 ; Get the N.T. to use. 20$: TST R2 ; Are we pointing at the right transform? BLE 10$ ; Branch if YES. ADD #NTSIZE,R1 ; Point to the next transform. DEC R2 ; Decrement the counter. BR 20$ 10$: ADD #INTSIZ,R1 ; Bump the pointer past the N.T. number. MOV 4(R5),R2 ; Get XMIN. MOV (R2)+,(R1)+ MOV (R2)+,(R1)+ MOV 6(R5),R2 ; Get XMAX. MOV (R2)+,(R1)+ MOV (R2)+,(R1)+ MOV 10(R5),R2 ; Get YMIN. MOV (R2)+,(R1)+ MOV (R2)+,(R1)+ MOV 12(R5),R2 ; Get YMAX. MOV (R2)+,(R1)+ MOV (R2)+,(R1)+ RTS PC .END