.TITLE PLTDAT - GLOBAL DATA MODULE FOR SFGL70 .IDENT 'PLTDAT' .PSECT PLTDAT,LCL,D,RW ; KEN DEMERS ; UTRC ; JULY 1980 ; THIS MODULE CONTAINS ALL DYNAMIC STORAGE NEEDED ; BY SFGL70. ALL USERS SHOULD EXPLICITLY LINK THIS ; MODULE INTO THEIR TASK IMAGE. THIS PERMITS OVERLAYED ; TASKS TO ONLY HAVE THIS ROUTINE IN THE ROOT SEGMENT. ; ASSIGNMENTS ****** ; CONDITIONAL ASSEMBLY FOR TEKTRONIX 4025 TK4025 = 0 ;TEK 4025 NOT IN USE ; ENCODE G$FLEN == 18. ;LENGTH OF G FORMAT SPECIFIER B$UFLEN == G$FLEN/2 ;BUFF LEN IN WORDS ; GRID R$IDGX == 103. ;SPACE FOR LABELS BESIDE Y AXIS ON X GRID ; ;CHANGE BECAUSE 'WINDOW' NEEDS ROOM FOR TIC LABELS(WAS 20) ; ;DON'T FORGET TO CHANGE X$ABMAX IN MODULE GRID!!!! R$IDGY == 45. ;SPACE FOR LABELS BELOW X AXIS ON Y GRID .IF NDF TK4025 Y$MAXCO == 780. ;MAXIMUN Y COORDINATE .ENDC .IF DF TK4025 Y$MAXCO == 754. .ENDC X$MAXCO == 1023. ;MAXIMUM X COORDINATE X$MXCOR == X$MAXCO - R$IDGX ;MAX X COORDINATE - X RIDGE Y$MXCOR == Y$MAXCO - R$IDGY ;MAX Y COORDINATE - Y RIDGE MIDDLX == + R$IDGX ;MIDDLE OF X GRID MIDDLY == + R$IDGY ;MIDDLE OF Y GRID ; PLOTPRIMS CH.SOH == 1 ;SOH (CONTROL A) CH.EM == 31 ;EM (CONTROL Y) F$TBFRL == 10. ;# OF M$OVCUR,L$INE, OR P$OINT CALLS TO BE ;BUFFERED BEFORE AN IAS QIO IS REQUESTED B$BCNT == 2 ;CNT OF BLK BOX CNTRL CHARS APPENDED TO BUFFER O$UTBL == F$TBFRL*6+1+2+B$BCNT ;MAX # OF CHARS WHICH ARE CREATED AS A ;RESULT OF CONVERTING THE M$OVCUR,L$INE, ;OR P$OINT BUFFER TO CHARACTERS(DO NOT CHANGE) ; DATA ****** ; ENCODE C$BUFF:: .BLKB G$FLEN ;BUFFER TO STORE ENCODED # .WORD 0 ;TERMINATE STRING WITH A ZERO BYTE F$ORMAT:: .BYTE 50,17.,6,12 ;FORMAT(G17.6) S$TRLEN:: .WORD 0 ;LENGTH OF ENCODED STRING IN BYTES ; GRID L$ABLX:: .WORD 0 ;PTR TO LABEL X L$ABLY:: .WORD 0 ;PTR TO LABEL Y X$MAX:: .WORD 0,0 ;X$MAX X$MIN:: .WORD 0,0 ;X$MIN Y$MAX:: .WORD 0,0 ;Y$MAX Y$MIN:: .WORD 0,0 ;Y$MIN X$AXLOC:: .WORD 0,0 ;Y AXIS POSITION OF X AXIS Y$AXLOC:: .WORD 0,0 ;X AXIS POSITION OF Y AXIS X$RANGE::.WORD 0,0 ;RANGE OF X AXIS Y$RANGE::.WORD 0,0 ;RANGE OF Y AXIS X$ABMAX::.FLT2 920. ;ABSOLUTE MAX OF X COORD ;MUST = 1023. - R$IDGX .IF NDF TK4025 Y$ABMAX:: .FLT2 735. ;ABSOLUTE MAX OF Y COORD ;MUST = 780. - R$IDGY .ENDC .IF DF TK4025 Y$ABMAX:: .FLT2 709. .ENDC X$GRDLO:: .WORD 0 ;X COORD OF Y GRID Y$GRDLO:: .WORD 0 ;Y COORD OF X GRID N$ODISP:: .WORD 0 ;FLG NOT = -1 = DON'T DISPLAY GRID MINS & MAXES ; ARG BLK FOR MVCURI & L$INE A$RGB1:: .BYTE 2,0 ;# ARGS,NOT USED .WORD A$RG21 ;PTR TO ABSOLUTE X VALUE .WORD A$RG22 ;PTR TO ABSOLUTE Y VALUE A$RG21:: .WORD 0 ;ABSOLUTE SCOPE X COORD A$RG22:: .WORD 0 ;ABSOLUTE SCOPE Y COORD ; ARG BLK FOR H$TXT & V$TXT & E$NCODE A$RGB2:: .BYTE 1,0 ;# ARGS,NOT USED B$UFPTR:: .WORD 0 ;PTR TO CHAR BUFFER A$RG2PT == B$UFPTR ;EQUATE ARG BLK PTR TO ARG BLK LOC ; PLOTPRIMS O$STAT:: .WORD 1,0 ;OUTPUT S$TATUS BLK I$STAT:: .WORD 0,0 ;INPUT I/O S$TATUS BLK I$BFR:: .BLKB 8. ;INPUT CHARACTER BUFFER ; PLOT DATA BUFFERS F$POS:: .WORD F$DATA ;PTR TO NEXT POSITION IN F$DATA F$DATA:: .BLKW F$TBFRL*3 ;ACTUAL BUFFER FOR THE DATA E$FDATA == . ;END OF DATA PTR .WORD 0 ;EXTRA 0 WORD USED AS A STOP ;MARKER BY DUMP T$M.CHR:: .WORD 1 ;TIME IN MSECS TO SEND 1 CHAR TO TERM ;SET FOR 9600B(MUST CALL BAUD TO CHANGE THIS VALUE) O$UTBUF:: .BYTE CH.EM,CH.SOH ;PRECEED BUFFER WITH CONTROL Y AND CONTROL A O$UTBF:: .BLKB O$UTBL ;OUTPUT FORMATTING BUFFER ;(USED BY DUMP TO FORMAT PLOT DATA) .EVEN ; LAST X & Y COORDINATES OUTPUT L$ASTY:: L$STHY:: .BYTE -1 ;LAST HIGH Y(-1 TO FORCE ;TIME THROUGH) L$STLY:: .BYTE -1 ;LAST LOW Y L$STHX:: .BYTE -1 ;LAST HI X X$ITFLG:: .BYTE 0 ;FLG=1= USEREX HAS BEEN CALLED B$BFLG:: .BYTE 0 ;FLG=1= BLACK BOX IS IN USE .EVEN .END