IO - GT40 BYTE I/O ROUTINES MACRO %53A(1152) 11:37 1-Feb-81 Page 1 IO MAC 19-Feb-65 07:58 TITLE IO - GT40 BYTE I/O ROUTINES ENTRY GETCHR,SNDCHR,SETTTY,CLRTTY ; ; THESE ROUTINES ARE FORTRAN-10 AND F40 COMPATIBLE ; REGISTER DEFINITIONS ; 000000 RESULT=0 000001 TEMP=1 000016 L=16 000017 P=17 ; ; GETCHR, CALLING SEQUENCE IS: ; ; ICHAR = GETCHR(0) ; ; WHERE GETCHR IS AN INTEGER FUNCTION ; WHICH INPUTS AN ASCII CHARACTER ; IF THERE IS NO INPUT CHARACTER THEN ; GETCHR RETURNS A -1 ; 000000' 334 00 0 00 000000 GETCHR: SKIPA ; F40 AND 000001' 261 17 0 00 000016 PUSH P,L ; FORTRAN-10 COMPATIBLE 000002' 051 02 0 00 000000 INCHRS RESULT, ; GET CHAR, SKIP IF GOOD 000003' 474 00 0 00 000000 SETO RESULT, ; ELSE INDICATE NO CHARACTER 000004' 263 17 0 00 000000 POPJ P, ; RETURN TO FORTRAN PAGE IO - GT40 BYTE I/O ROUTINES MACRO %53A(1152) 11:37 1-Feb-81 Page 1-1 IO MAC 19-Feb-65 07:58 ; SNDCHR, CALLING SEQUENCE: ; ; CALL SNDCHR(ICHAR) ; ; SEND ICHAR AS AN IMAGE CHARACTER ; 000005' 334 00 0 00 000000 SNDCHR: SKIPA ; F40 AND 000006' 261 17 0 00 000016 PUSH P,L ; FORTRAN-10 COMPATIBLE 000007' 051 15 1 16 000000 IONEOU @0(L) ; SEND THE CHARACTER 000010' 263 17 0 00 000000 POPJ P, ; RETURN TO FORTRAN PAGE IO - GT40 BYTE I/O ROUTINES MACRO %53A(1152) 11:37 1-Feb-81 Page 1-2 IO MAC 19-Feb-65 07:58 ; SETTTY IS A FORTRAN CALLABLE SUBROUTINE USED TO SET ; TERMINAL CHARACTERISTICS NEEDED BY GIDUS-DISLIB I/O ; ROUTINES. THE GT40 IS SET IN THE FOLLOWING MANNER: ; ; .SET TTY LC ; .SET TTY NO ECHO ; .SET TTY NO CRLF (N.B. NOT RESET BY SUBROUTINE CLRTTY) ; (WILL BE RESET BY PROGRAM CLRTTY) ; .SET TTY NO ALTMODE ; .SET TTY GAG ; ; THE SUBROUTINE CLRTTY IS USED TO CLEAR THE ABOVE ; CONDITIONS ; 000001 ARGLST=1 ; 000011' 000000 000000 TTYFNC: EXP 0 ; SET FUNCTION CODE 000012' 000000 200001 EXP 200001 ; TTY1 UDX 000013' 000000 000000 TTYPAR: EXP 0 ; FUNCTION PARAMETER ; 000014' 334 00 0 00 000000 SETTTY: SKIPA ; FORTRAN-10 AND 000015' 261 17 0 00 000016 PUSH P,L ; F40 COMPATIBLE 000016' 265 01 0 00 000055' JSP ARGLST,TTY 000017' 000000 002003 EXP 2003,0 ; .SET TTY LC 000020' 000000 000000 ; 000021' 265 01 0 00 000055' JSP ARGLST,TTY 000022' 000000 002007 EXP 2007,1 ; .SET TTY NO ECHO 000023' 000000 000001 ; 000024' 265 01 0 00 000055' JSP ARGLST,TTY 000025' 000000 002010 EXP 2010,1 ; .SET TTY NO CRLF 000026' 000000 000001 ; 000027' 265 01 0 00 000055' JSP ARGLST,TTY 000030' 000000 002026 EXP 2026,1 ; .SET TTY NO ALTMODE 000031' 000000 000001 ; 000032' 265 01 0 00 000055' JSP ARGLST,TTY 000033' 000000 002013 EXP 2013,0 ; .SET TTY GAG 000034' 000000 000000 ; 000035' 263 17 0 00 000000 POPJ P, ; RETURN TO FORTRAN ; ; 000036' 334 00 0 00 000000 CLRTTY: SKIPA ; FORTRAN-10 AND 000037' 261 17 0 00 000016 PUSH P,L ; F40 COMPATIBLE 000040' 265 01 0 00 000055' JSP ARGLST,TTY 000041' 000000 002003 EXP 2003,1 ; .SET TTY NO LC 000042' 000000 000001 ; 000043' 265 01 0 00 000055' JSP ARGLST,TTY 000044' 000000 002007 EXP 2007,0 ; .SET TTY ECHO 000045' 000000 000000 ; IO - GT40 BYTE I/O ROUTINES MACRO %53A(1152) 11:37 1-Feb-81 Page 1-3 IO MAC 19-Feb-65 07:58 000046' 265 01 0 00 000055' JSP ARGLST,TTY 000047' 000000 002026 EXP 2026,0 ; .SET TTY ALTMODE 000050' 000000 000000 ; 000051' 265 01 0 00 000055' JSP ARGLST,TTY 000052' 000000 002013 EXP 2013,1 ; .SET TTY NO GAG 000053' 000000 000001 ; 000054' 263 17 0 00 000000 POPJ P, ; RETURN TO FORTRAN PAGE IO - GT40 BYTE I/O ROUTINES MACRO %53A(1152) 11:37 1-Feb-81 Page 1-4 IO MAC 19-Feb-65 07:58 000055' 200 00 1 00 000001 TTY: MOVE RESULT,@ARGLST ; GET FUNCTION CODE 000056' 202 00 0 00 000011' MOVEM RESULT,TTYFNC ; AND SETUP 000057' 200 00 0 01 000001 MOVE RESULT,1(ARGLST) ; GET FUNCTION PARAMETER 000060' 202 00 0 00 000013' MOVEM RESULT,TTYPAR ; AND SET UP 000061' 200 00 0 00 000065' MOVE RESULT,[XWD 3,TTYFNC] ; SET UP FOR UUO CALL 000062' 047 00 0 00 000116 TRMOP. RESULT, ; DO IT 000063' 330 00 0 00 000000 SKIP ; NO ERROR RETURN 000064' 254 02 0 01 000002 JRSTF 2(ARGLST) ; RETURN END NO ERRORS DETECTED PROGRAM BREAK IS 000066 CPU TIME USED 00:00.270 17P CORE USED IO - GT40 BYTE I/O ROUTINES MACRO %53A(1152) 11:37 1-Feb-81 Page S-1 IO MAC 19-Feb-65 07:58 SYMBOL TABLE ARGLST 000001 CLRTTY 000036' ent GETCHR 000000' ent INCHRS 051100 000000 IONEOU 051640 000000 L 000016 P 000017 RESULT 000000 SETTTY 000014' ent SNDCHR 000005' ent TEMP 000001 TRMOP. 047000 000116 TTY 000055' TTYFNC 000011' TTYPAR 000013'