! Utility routines for EDWIN on EMAS %external %integer %fn %spec IN STREAM %external %integer %fn %spec OUT STREAM %external %routine %spec TO CONSOLE (%integer ADDR, LEN) %external %string (255) BUFF = "" %external %integer VIEWING = 0 %external %routine %spec TTMODE (%integer STATE) ! Set terminal characteristics - ! 0 => Normal mode => SET MODE U + L ! 1 => Graphics output mode => SET MODE G (subsystem not seeing it!) ! 2 => Graphics input mode NOT YET IMPLEMENTED. %external %routine FLUSH OUTPUT %if length(buff)#0 %start TO CONSOLE (ADDR(BUFF)+1, length(BUFF)) BUFF = "" %finish %end %external %routine TTPUT (%integer I) BUFF = BUFF.TO STRING (I) FLUSH OUTPUT %if LENGTH(BUFF)>250 %end %external %integer %fn TTREAD %integer I, S S = IN STREAM SELECT INPUT (0) READ CH (I) SELECT INPUT (S) %result = I %end %external %integer %fn TTGET %result = TTREAD; ! For EMAS at present. %end %external %integer %fn MULDIV (%integer A, B, C) %long %integer AB, RES, REM %if C#0 %start AB = A * B RES = AB // C REM = AB - RES * C RES = RES + 1 %if REM > C//2 %finish %else RES = 0 %result = RES %end %end %of %file