! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! *** EXTERNAL ROUTINES FOR DRIVING INTECOLOUR DISPLAY ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! %INCLUDE "INC_COLOURDEFS" %INCLUDE "INC_SERVICES" %EXTERNALINTEGERSPEC CBACK %EXTERNALINTEGERSPEC CFORE ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! THESE ROUTINES ARE SPECIAL OUTPUT ROUTINES ! FOR THE INTECOLOUR ON SERVICE 13. ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! %EXTERNALROUTINE OUTSYMBOL(%INTEGER CHAR) %OWNBYTEINTEGERARRAY BUFF(0:127) %OWNINTEGER PTR %RECORDFORMAT PEF(%BYTEINTEGER SER,REPLY, %C %INTEGER FN,%BYTEINTEGERARRAYNAME AR,%INTEGER LEN) %OWNRECORD(PEF) P %INCLUDE "INC_DEIMOSPERM" %IF CHAR=K'100000' %OR PTR=128 %START P_FN=1 P_AR==BUFF P_LEN=PTR P_SER=13; P_REPLY=OWN ID PONOFF(P) %IF P_FN=1 %THEN %STOP PTR=0 %FINISH BUFF(PTR)=CHAR&255 PTR=PTR+1 %END ! %EXTERNALROUTINE OUTSTRING(%STRING(255) S) %INTEGER I %FOR I=1,1,LENGTH(S) %CYCLE OUTSYMBOL(CHARNO(S,I)) %REPEAT %END %EXTERNALROUTINE SET BACKGROUND(%INTEGER COLOUR) OUTSYMBOL(30); OUTSYMBOL(COLOUR) CBACK=COLOUR-16 %END ! %EXTERNALROUTINE SET FOREGROUND(%INTEGER COLOUR) OUTSYMBOL(29); OUTSYMBOL(COLOUR) CFORE=COLOUR-16 %END ! %EXTERNALROUTINE SET CURSOR(%INTEGER X,Y) OUTSYMBOL(3) OUTSYMBOL(X); OUTSYMBOL(Y) OUTSYMBOL(K'100000'); !FORCE OUT OUTPUT %END ! %EXTERNALROUTINE SET BLIND CURSOR(%INTEGER X,Y) OUTSYMBOL(3) OUTSYMBOL(81); OUTSYMBOL(X) OUTSYMBOL(Y); OUTSYMBOL(CBACK<<3!CFORE) %END ! %EXTERNALROUTINE ENTER PLOT MODE OUTSYMBOL(2) %END ! %EXTERNALROUTINE EXIT PLOT MODE OUTSYMBOL(255) %END ! %EXTERNALROUTINE BARX(%INTEGER X0,Y,X1) ! X BAR ... SINGLE LINE %IF X0=X1 %THEN SET FOREGROUND(CURBACK) %ELSE X1=X1-1 ENTER PLOT MODE OUTSYMBOL(250); OUTSYMBOL(X0) OUTSYMBOL(Y); OUTSYMBOL(X1) EXIT PLOT MODE %END ! %EXTERNALROUTINE BARY(%INTEGER X,Y0,Y1) ! SINGLE BAR Y DIRECTION %IF Y0=Y1 %THEN SET FOREGROUND(CURBACK) %ELSE Y1=Y1-1 ENTER PLOT MODE OUTSYMBOL(246); OUTSYMBOL(Y0) OUTSYMBOL(X); OUTSYMBOL(Y1) EXIT PLOT MODE %END ! %EXTERNALROUTINE BIGBARX(%INTEGER X0,Y,X1) ! ENTERS X BAR GRAPH,X0 MODE THEN DRAWS AN X INCREMENTAL ! HISTOGRAM TO A DEPTH OF 1 CHARACTER %INTEGER I %IF X0=X1 %THEN SET FOREGROUND(CURBACK) %ELSE X1=X1-1 ENTER PLOT MODE OUTSYMBOL(250); !BAR GRAPH OUTSYMBOL(X0); !START X CO-ORD %FOR I=0,1,3 %CYCLE OUTSYMBOL(Y-I) OUTSYMBOL(X1) %REPEAT EXIT PLOT MODE %END ! %EXTERNALROUTINE BIGBARY(%INTEGER X,Y0,Y1) !ENTERS Y BAR GRAPH,Y0 MODE THEN DRAWS A CHARACTER WIDTH HISTOGRAM %INTEGER I %IF Y0=Y1 %THEN SET FOREGROUND(CURBACK) %ELSE Y1=Y1-1 ENTER PLOT MODE OUTSYMBOL(246) OUTSYMBOL(Y0) %FOR I=0,1,1 %CYCLE OUTSYMBOL(X+I) OUTSYMBOL(Y1) %REPEAT EXIT PLOT MODE %END %ENDOFFILE