.MCALL .MODULE .MODULE GQWKT,RELEASE=V00,VERSION=30,COMMENT= .ENABLE LC .NLIST CND .LIST MEB ;+ ;************************************************************************ ;*.ST INQUIRE WORKSTATION TRANSFORMATION * ;*.PAGE * ;*.X WORKSTATION TRANSFORMATION * ;*.X GQWKT * ;*.LIT * ;************************************************************************ ;* INQUIRE WORKSTATION TRANSFORMATION WSOP,WSAC,SGOP Lma * ;* * ;* FORTRAN calling sequence: * ;* SUBROUTINE GQWKT (WKID, ERRIND, TUS, RWINDO, CWINDO, RVIEWP, * ;* CVIEWP) * ;* * ;* Input parameters: * ;* INTEGER WKID workstation identifier * ;* * ;* Output parameters: * ;* INTEGER ERRIND error indicator * ;* INTEGER TUS workstation transformation update state * ;* (GNPEND, GPEND) * ;* REAL RWINDO(4) requested workstation window in NDC * ;* RWXMIN, RWXMAX, RWYMIN, RWYMAX * ;* REAL CWINDO(4) current workstation window in NDC * ;* CWXMIN, CWXMAX, CWYMIN, CWYMAX * ;* REAL RVIEWP(4) requested workstation viewport in DC * ;* RVXMIN, RVXMAX, RVYMIN, RVYMAX * ;* REAL CVIEWP(4) current workstation viewport in DC * ;* CVXMIN, CVXMAX, CVYMIN, CVYMAX * ;* * ;* Parameters: * ;* In workstation identifier N * ;* Out error indicator I * ;* Out workstation transformation update state * ;* (NOTPENDING, PENDING) E * ;* Out requested workstation window NDC 4xR * ;* Out current workstation window NDC 4xR * ;* Out requested workstation viewport DC 4xR * ;* Out current workstation viewport DC 4xR * ;* * ;* Effect: If the inquired information is available, the error * ;* indicator is returned as 0 and the values are returned * ;* in the output parameters. * ;* * ;* The workstation transformation update state is PENDING * ;* if a workstation transformation change has been re- * ;* quested but not yet provided. * ;* * ;* If the inquired information is not available, the * ;* values returned in the output parameters are implement- * ;* ation dependent and the error indicator is set to one * ;* of the following error numbers to indicate the reason * ;* for non-availability: * ;* * ;* 7 GKS not in proper state: GKS shall be in one * ;* of the states WSOP, WSAC or SGOP. * ;* 20 Specified workstation identifier is invalid * ;* 25 Specified workstation is not open * ;* 33 Specified workstation is of category MI * ;* 36 Specified workstation is Workstation Independ- * ;* ent Segment Storage * ;* 50 Transformation number is invalid * ;* * ;* References: * ;* 4.6.3 * ;* 4.11.2 * ;* * ;* Errors: * ;* none * ;************************************************************************ ;*.ELI * ;************************************************************************ ;- ;; .LIBRARY /UTL.MLB/ .MCALL $UTL $UTL .NLIST .INCLUDE /GOPSTA.INC/ .INCLUDE /WSSL.INC/ .LIST .PSECT G$$COD,RW,I,LCL,REL,CON GQWKT:: CLR @4(R5) ; Clear the error indicator. BIT #WSOP!WSAC!SGOP,G$OPST ; Is GKS in state WSOP, WSAC or SGOP? BNE 10$ ; Branch if it is. MOV #7.,@4(R5) ; GKS not in proper state. BR 40$ 10$: TST @2(R5) ; Check for WS identifier in the range 1-8. BGT 30$ 20$: MOV #20.,@4(R5) ; Invalid WS identifier. BR 40$ 30$: CMP #8.,@2(R5) BLT 20$ 40$: ; Still need to check for errors 25, 33 and 36. MOV @2(R5),R0 ; Get the workstation number. JSR PC,G$GWSL ; Get a pointer to the WS state list in R0. MOV WS$TUS(R0),6(R5); Return the transformation update state. ADD #WS$RWW,R0 ; Point to the requested workstation window. MOV 10(R5),R1 ; Address of requested window limits. MOV #<4*>,R2 50$: MOV (R0)+,(R1)+ SOB R2,50$ MOV 12(R5),R1 ; Address of current window limits. MOV #<4*>,R2 60$: MOV (R0)+,(R1)+ SOB R2,60$ MOV 14(R5),R1 ; Address of requested viewport limits. MOV #<4*>,R2 70$: MOV (R0)+,(R1)+ SOB R2,70$ MOV 16(R5),R1 ; Address of current viewport limits. MOV #<4*>,R2 80$: MOV (R0)+,(R1)+ SOB R2,80$ RTS PC ; Return .END