.TITLE DISTIC - ROUTINE TO DISPLAY TIC MARKS ON GRIDS .IDENT 'DIST00' .PSECT DISTIC ; KEN DEMERS ; UTRC ; JANUARY 1980 ; THIS ROUTINE DISPLAYS TIC MARKS ON THE GRAPH. ; THE TIC MARKS ARE ACTUALLY SMALL CROSSES. THEY ; ARE DISPLAYED ONLY ALONG THE X AND Y GRIDS. ; CALLING FORMAT: ; CALL DISTIC(XTAB,YTAB) ; WHERE: ; XTAB = TABLE OF X DIST(F.P.),START(F.P.),DELTA(F.P.),NTICS ; YTAB = TABLE OF Y DIST(F.P.),START(F.P.),DELTA(F.P.),NTICS ; INTERNAL GLOBALS .GLOBL D$ISTIC ; EXTERNAL GLOBALS .GLOBL T$ICXOY,V$IRABS .GLOBL X$RANGE,Y$RANGE,X$MXCOR,Y$MXCOR .GLOBL L$ABTIC,R$IDGX,R$IDGY .GLOBL T$ICVAL,T$ICBUM,M$AXALD ; ASSIGNMENTS AC0 = %0 ;FPP ACCULUMULATOR 0 AC1 = %1 AC2 = %2 YLBCOR = 23. ;Y COORD OF X LABELS CHWIDT = 14. + 4. ;WIDTH OF 1 CHAR(PLUS A LITTLE) CHWID3 = 14.*3 ;WIDTH OF 3 CHARS XMXALD = 6. ;MAX # OF X TIC LABELS ALLOWED YMXALD = 12. ;MAX # OF Y TIC LABELS ALLOWED D$ISTIC: MOV 2(R5),R4 ;R4= A(XTAB) MOV 4(R5),-(SP) ;SAVE A(YTAB) SETF ;SET FPP MODE TO S.P. SETI ;SET FPP MODE TO SHORT INTEGER MOV R4,R0 ;R0= A(X DIST) LDF 4(R0),AC0 ;GET X START STF AC0,T$ICVAL ;SAVE F.P. VALUE OF TIC LDF (R0),AC0 ;GET X DIST STF AC0,T$ICBUM ;SAVE F.P. VALUE OF DIST LDF X$RANGE,AC1 ;AC1= (X$RANGE) LDCIF #X$MXCOR,AC0 ;AC0= F.P. OF ABS INT X M$AX CALL V$IRABS ;CONVERT IT TO INTEGER ABS. X SPACING MOV R0,R2 ;SAVE X SPACING MOV R4,R0 ;R0= A(X DIST) CMP (R0)+,(R0)+ ;RO = A(START) LDF (R0),AC2 ;GET START SUBF X$MIN,AC2 ;GET START RELATIVE TO XMIN STF AC2,(R0) ;SAVE IT BEFORE CONVETING TO GRID INT LDF X$RANGE,AC1 ;AC1= (X$RANGE) LDCIF #X$MXCOR,AC0 ;AC0= F.P. OF ABS INT X M$AX CALL V$IRABS ;CONVERT IT TO INTEGER ABS. X SPACING ADD #R$IDGX,R0 ;COMPENSATE FOR RIDGE MOV 8.(R4),R1 ;R1= X NTICS MOV R0,R4 ;R4= INT X START CLR R3 ;FLG=0= X GRID MOV #R$IDGY,R5 ;R5= STARTING Y COORD CALL T$ICXOY ;PLOT X TICS MOV #YLBCOR,R5 ;R5= Y COORD OF X TIC LABELS MOV #XMXALD,M$AXALD ;INIT MAX # OF TIC LABELS ALLOWED CALL L$ABTIC ;LABEL X TICS MOV (SP)+,R5 ;R5= A(YTAB) MOV R5,R0 ;R0= A(YTAB)=A(DIST) LDF 4(R0),AC0 ;GET Y START STF AC0,T$ICVAL ;SAVE F.P. VALUE OF TIC LDF (R0),AC0 ;GET Y DIST STF AC0,T$ICBUM ;SAVE F.P. VALUE OF DIST LDF Y$RANGE,AC1 ;AC1= (Y$RANGE) LDCIF #Y$MXCOR,AC0 ;AC0= F.P. OF ABS INT Y M$AX CALL V$IRABS ;CONVERT IT TO INTEGER ABS. Y SPACING MOV R0,R2 ;SAVE Y SPACING MOV R5,R0 ;R0= A(Y DIST) CMP (R0)+,(R0)+ ;R0= A(Y DIST) LDF (R0),AC2 ;GET START SUBF Y$MIN,AC2 ;GET START RELATIVE TO YMIN STF AC2,(R0) ;SAVE IT BEFORE CONVETING TO GRID INT LDF Y$RANGE,AC1 ;AC1= (Y$RANGE) LDCIF #Y$MXCOR,AC0 ;AC0= F.P. OF ABS INT Y M$AX CALL V$IRABS ;CONVERT IT TO INTEGER ABS. Y SPACING ADD #R$IDGY,R0 ;COMPENSATE FOR RIDGE MOV 8.(R5),R1 ;R1= Y NTICS MOV R0,R5 ;R5= Y START (INT) MOV #1,R3 ;FLG=1= DO Y GRID MOV #R$IDGX,R4 ;R4= X COORD CALL T$ICXOY ;PLOT Y TICS MOV #YMXALD,M$AXALD ;INIT MAX # OF TIC LABELS ALLOWED CALL L$ABTIC ;LABEL Y TICS RETURN .END