: *********************************************** 3 DIMENSIONAL Version 1.0 --> 3 DIMENSIONAL BAR CHART (c)1982 Zenith Data Systems ***********************************************  "D": n(),$,$: : L: x3 ( ()"x5";:: No CursorE ) ()"x1"; 2BOX$()"c=colors(cb%);l=bx10%;u=by%;r=bx10%;c=colors(0);nl1c=colors(cb%);bl=bx10%;e=bx20%;r=bx10%;ng=bx20%;d=by%;g=bx20%;u=by%;c=colors(0);nd1c=colors(cb%);bd=by%;" <BOX$()"u=by%;nl=bx10%;ne=bx20%;bd=by%;"u FGRID$()"c=colors(7);u=pixup%;be=dwle%;d=pixup%;r=bxro%;g=dwle%;l=bxro%;bg=dwle%;" KGRID$()"c=colors(3);bu9e=dwle%;r=bxro%;d9l=bxro%;g=dwle%;bu9"PGRID$()"c=colors(3);bu9ng=dwle%;e=dwle%;r=bxro%;d9l=bxro%;g=dwle%;ng=dwle%;bu9"0ZAS:: Aspect of x-yidASD((((AS)))AS)::diagonal aspectnD3MX%:: maximum number of files in 3-d displayxBXRO%::length of x that boxes are placed onSSPINT::box spacing interval multiplierDDSPINT`::box diagonal down-left spacing intervalSXSTART%FbYSTART%PSX%(XSTART%BXRO%)PSY%YSTART%PLX%(XSTART%BXRO%)PLY%YSTART%DIAGSZ%::fixed depth of diagonals DWLE%DIAGSZ%DSPINT;PIXUP%::pixels for full range deflectionUCB%::Border colorCI%::start row internal color of box:WIDTH 2556 ::here read what.run@ COLORS() (,)(,),COLORS(),BFJCURX% TCURY% ] COLORS() BGRCOLORS():  : CURX%: :"A Z-100 with color capability is required for three dimensional charts ...";: "^ hTFN$(AA$,(AA$,"."),)r TFN$"DM3" TFN$"dm3" | : "menu" :: do 3-d else menu3|"Preparing three dimensional bar chart....";d ::Set up files info & data array miscn 4x f J% NF%: `: J%PBX%XSTART%PBY%YSTART%CURX%PBX%:CURY%PBY%: : BOT$ ""I",,AA$: #,TITLE$'#, NF%::number of files NF%D3MX% : : "Error in three dimensional bar chart request...": "there must be no more than "D3MX%" rows in the chart.": ":(S. MICHAEL SARNA) (C) 1982, ZENITH DATA Systems. NFILE$(NF%)::Name of files-- number of files times? J% NF%T #,NFILE$(J%)] J%nD NLEG$(NF%)N J% NF%X #,NLEG$(J%): J%::get legends' descriptionsZ#, NRECORDS%: DESCRS$(NRECORDS%)2] J% NRECORDS%: #,A$:XSTEVE(A$," "): XSTEVE A$(A$,XSTEVE)J^DESCRS$(J%)A$: J%|l #,XHEAD$: #,YHEAD$: #,MIN::minimumv #,MAX::maximum #,INC::increment VALUES(NF%,NRECORDS%) J% NF%"I",,NFILE$(J%) K% NRECORDS%; #,IGNORE$::forget the descriptionsQ#,VALUES(J%,K%)Z K%` i J%o u*4 x> ,::" ":H(,)(,),COLORS(),BR ::give chart a name\f(XSTART%,YSTART%),COLORS()pCURX%PLX%zCURY%PLY%.BGRCOLORS(): ? L% NF%N GRID$() : (NLEG$(L%),):CURY%CURY%:CURX%CURX% L%BOT$(BXRO% )BQ%BXRO%NRECORDS% L% NRECORDS%HALF%(BQ%(DESCRS$(L%))): HALF% HALF%B(BOT$,L%BQ%HALF%,BQ%)DESCRS$(L%)K L%l(XSTART%,YSTART%),COLORS(){CURX%PSX%CURY%PSY%$ L% . GRID$(NF%) 8 (L%)L% : (((INCL%MIN),((INCL%MIN))),);:CURY%CURY%@B L% : (((MAX),((MAX))),);IL L%PV _:enter this routine with j% indexing a file`BX10%(BXRO%NRECORDS%)SSPINT::front size of boxtBX12%(BX10%SSPINT)::box side spacing interval~BX20%DIAGSZ%::diagonal size of boxi(XSTART%BX12%@,YSTART%),COLORS()::point to start of box building K% NRECORDS%BY%VALUES(J%,K%)MAXPIXUP% BOX$() BY% p BOX$() BY% z"br=bx12%;" K%XSTART%XSTART%DWLE%QYSTART%YSTART%DWLE%::drop to next rox of boxes_CI%CI%mCB%CB%s :CHARTNAMETITLE$(TITLE$,P)CURX%(P(TITLE$))(CURY%2 < COLORS() BGRCOLORS(): :: BGRCOLORS(): F TITLE$4PXHEAD$(XHEAD$,N)PZCURX%(N(XHEAD$))]dCURY%gn ux XHEAD$;zYHEAD$(YHEAD$,)|CURX%N~CURY%((YHEAD$)) L% (YHEAD$) : (YHEAD$,L%,);:CURY%CURY% L% :PRINTATb CURY%,CURX%: PRINT CHR$(27)"Y"CHR$(32+CURY%)CHR$(32+CURX%);h"R",,"WHAT.RUN", : A  :A$: A #,AS A$,AS B$,AS C$,AS D$ ,A(A$)B(B$)TIMLOOP1(C$)TIMLOOP2(D$)MODEA# #, AS A$6 ,B:AA$A$<BN"CURX%[6CURY%? COLORS() BGRCOLORS():  : BGRCOLORS(): @ T ()"p";"PRESS ";()"q";^COUNTCOUNT  :JACK$h MODE JACK$() Dr COUNTTIMLOOP2 MODE : "MENU"| COUNTTIMLOOP1 MODE  : JACK$( ) ^ : : : "menu",0u"R",,"WHAT.RUN",   #, AS A$,AS B$  ,( A(A$)5 B(B$)? BBa  BA FL: B : FLp  B$(B)  A$(A)  ,  #, AS C$  ,B:CC$C$   FL : "MENU" : TYPE$(CC$,(CC$,"."),)S! TYPE$"D" TYPE$"d" : : : TYPE$Y!!p COLORS() (,),CI%,CB%: (,),CB%!q!z COLORS() (,),CI%,CB%: (,),CB%!{" BGR BGR BGRBGR : BGR BGR BGRBGRS" FGR FGR FGRFGR : FGR FGR FGRFGR" COLORS() FGRBGR FGRCOLORS():BGRCOLORS()" FGR,BGR:"L (,),:PT(,): (,)#V PT COLORS$"07777777" : COLORS$"01234567"J#` J :COLORS(J)((COLORS$,J,)): J:FGRCOLORS():j#x COLORS() : : : COLORS$"01234567"J#` J