100 / P?S/8 FOCAL HDS 3200-30 OVERLAY 110 120 / LAST EDIT: 07-JAN-1990 05:00:00 CJL 130 140 / P?S/8 FOCAL OVERLAY FOR POINT, ETC. DISPLAY ON THE HDS 3200-30. 150 160 / THIS OVERLAY PROVIDES A DISPLAY FUNCTION TO P?S/8 FOCAL SIMILAR TO FOCAL-12 170 / OR BASIC-RT. 180 190 / IMPLEMENTATION RESTRICTIONS: 200 210 / THE SERIAL INTERFACE TO THE HDS TERMINAL IS RUN WITH INTERRUPTS OFF; FOCAL'S 220 / INTERRUPT HANDLER MUST NOT USE THIS DEVICE. THEREFORE, THE DEVICE CAN'T BE 230 / 03/04, OR ANY OTHER DEVICE CONTROLLED BY THE SYSTEM CONSOLE OVERLAY (IF 240 / PRESENT). 250 260 / THERE IS NO AUTOMATIC WAY TO RESTORE THE TERMINAL TO TEXT MODE. THE USER MUST 270 / RETURN THE TERMINAL TO TEXT MODE USING THE TEXT/GRAPHICS KEY. THIS MUST BE 280 / AVOIDED WHILE THE TERMINAL IS IN GRAPHICS MODE. IF THE '/X' SWITCH IS 290 / INVOKED NO TERMINAL INITIALIZATION IS PERFORMED, THUS THE TERMINAL MUST BE 300 / RESTORED TO GRAPHICS MODE IF NECESSARY. THE ALTERNATIVE APPROACH WOULD HAVE 310 / BEEN TO "LOCK OUT" THE TEXT/GRAPHICS KEY, BUT THIS WAS CONSIDERED TOO SEVERE 320 / FOR NORMAL USE. 330 340 / BOTH OF THE ABOVE PROBLEMS MUST BE SOLVED BEFORE ATTEMPTING TO USE THE HDS 350 / TERMINAL AS A CONSOLE DEVICE. 360 EJECT 370 / AVAILABLE FUNCTIONS: 380 390 / FDIS(X,Y) DISPLAY POINT AT (X,Y). 400 410 / FDIS(X,Y,0,"STRING",S,R) DISPLAY THE CONTENTS OF "STRING" AS CHARACTERS 420 / OF THE STATED SIZE S WITH THE STATED ROTATION 430 / R. THE LOWER LEFT-HAND CELL COORDINATE FOR 440 / THE FIRST CHARACTER IS AT (X,Y). 450 460 / FDIS(X,Y,1,CHARACTER,S,R) DISPLAY THE EVALUATION OF CHARACTER MOD 128 AS 470 / A SINGLE ASCII CHARACTER OF THE STATED SIZE S 480 / WITH THE STATED ROTATION R. THE LOWER 490 / LEFT-HAND CELL COORDINATE FOR THE FIRST 500 / CHARACTER IS AT (X,Y). 510 520 / FDIS(X,Y,2,VALUE,LENGTH,S,R) DISPLAY THE EVALUATION OF VALUE AS NUMERIC 530 / CHARACTERS OF THE STATED SIZE S WITH THE 540 / STATED ROTATION R. LENGTH SPECIFIES THE 550 / NUMBER OF SIGNIFICENT DIGITS. THE LOWER 560 / LEFT-HAND CELL COORDINATE FOR THE FIRST DIGIT 570 / IS AT (X,Y). 580 590 / FDIS(X,Y,3) SET INITIAL VECTOR ADDRESS AT (X,Y). 600 610 / FDIS(X,Y,4) DRAW STRAIGHT LINE (APPROXIMATION) FROM 620 / PREVIOUS VECTOR ADDRESS TO (X,Y). THIS ALSO 630 / SETS UP AN INITIAL VECTOR ADDRESS FOR A 640 / SUBSEQUENT USAGE OF FDIS(X,Y,3) (EQUIVALENT TO 650 / INVOKING FDIS(X,Y,2) WITH THE CURRENT X AND Y 660 / VALUES). 670 680 / FDIS(0) CLEAR ALL POINTS FROM GRAPHICS SCREEN. 690 700 / FDIS(NON-ZERO) IGNORED (PROVIDED FOR COMPATIBILITY WITH OTHER 710 / OVERLAYS WHICH USE THIS FUNCTION TO SHOW 720 / "GROWING" DISPLAYS). 730 740 / FIO(NEGATIVE) RETURNS NUMERICAL VALUE (MODULO 128) OF THE 750 / NEXT AVAILABLE ASCII CHARACTER TYPED (P?S/8 760 / FOCAL WILL WAIT FOR INPUT IF NECESSARY). 770 / SINCE INTEGER EVALUATION IS USED, THE ARGUMENT 780 / MUST BE NEGATIVE OR WITHIN THE RANGE 2048-4095 790 / MOD 4096. 800 810 / FIO(CHAR<2048) OUTPUT AN ASCII CHARACTER. SINCE INTEGER 820 / EVALUATION IS USED, THE ARGUMENT MUST BE 830 / POSITIVE AND BETWEEN 0000-2047 MOD 4096. 840 / NORMAL OUTPUT DEVICES GENERALLY REDUCE THE 850 / CHARACTER VALUE RANGE TO 0000-0255 MOD 256 860 / ALLOWING ANY COMBINATION OF ASCII CHARACTER 870 / OUTPUT WITH OR WITHOUT PARITY SET. 880 EJECT