SUBROUTINE CHARIN (CHAR) C C INSERT A CHARACTER INTO THE SCREEN COMMON AT THE NEXT POSITION C INTEGER CHAR INCLUDE YSCREE.FI INTEGER NCOND EXTERNAL NCOND INTEGER POSIT (4) @ SEQUENCE FOR CURSOR CONTROL DATA POSIT /27,61,2*0/ C IF (CHAR.LT.32) GOTO 50 @ CONTROL CHARACTER C GOTO (11,12,13,14,15,16), MOD(YCOLMN,6)+1 11 CALL IFLD(0,6,YSCREE(YLINE,YCOLMN/6+1),CHAR) GOTO 20 12 CALL IFLD(6,6,YSCREE(YLINE,YCOLMN/6+1),CHAR) GOTO 20 13 CALL IFLD(12,6,YSCREE(YLINE,YCOLMN/6+1),CHAR) GOTO 20 14 CALL IFLD(18,6,YSCREE(YLINE,YCOLMN/6+1),CHAR) GOTO 20 15 CALL IFLD(24,6,YSCREE(YLINE,YCOLMN/6+1),CHAR) GOTO 20 16 CALL IFLD(30,6,YSCREE(YLINE,YCOLMN/6+1),CHAR) C 20 CONTINUE CALL PUTTY (1,CHAR) YCOLMN=MOD(YCOLMN+1,80) CXCX YCOLMN=NCOND(YCOLMN.LE.1,80,YCOLMN-1) @ * YCOLMN=MAX0(YCOLMN,1) IF (YCOLMN.GT.1) RETURN CXCX IF (YCOLMN.NE.80) GOTO 40 @ * YLINE=MOD(YLINE+1,24) CXCX YLINE=NCOND(YLINE.GT.1,YLINE-1,24) @ * YLINE=MAX0(YLINE,1) CXCX GOTO 40 @ * IF (YLINE.GT.1) GOTO 40 @ REPOSITION THE CURSOR CALL PUTTY (1,30) @ RESET CURSOR TO HOME POSITION RETURN 50 CONTINUE GOTO (100,101,102,103,104,105,106,107,110,111,112,113,114, * 115,116,117,120,121,122,123,124,125,126,127,130,131,132,133, * 134,135,136,137),CHAR+1 C 100 RETURN 101 RETURN 102 RETURN 103 RETURN 104 RETURN 105 RETURN 106 RETURN 107 GOTO 30 @ BEL 110 YCOLMN=NCOND(YCOLMN-1,YCOLMN-1,80) @ BS IF (YCOLMN.EQ.80) YLINE=NCOND(YLINE-1,YLINE-1,24) GOTO 40 111 RETURN 112 YLINE=MOD(YLINE+1,24) @ LF YLINE=NCOND(YLINE,YLINE,1) GOTO 40 113 YLINE=NCOND(YLINE-1,YLINE-1,24) @ VT GOTO 40 114 YCOLMN=MOD(YCOLMN+1,80) @ FF YCOLMN=NCOND(YCOLMN,YCOLMN,1) IF (YCOLMN.EQ.1) YLINE=MOD(YLINE+1,24) YCOLMN=NCOND(YCOLMN,YCOLMN,1) GOTO 40 115 YCOLMN=1 @ CR YLINE=MOD(YLINE+1,24) @ CR-LF ECHO YLINE=NCOND(YLINE,YLINE,1) GOTO 40 116 RETURN 117 RETURN 120 RETURN 121 RETURN 122 RETURN 123 RETURN 124 RETURN 125 RETURN 126 RETURN 127 RETURN 130 RETURN 131 RETURN 132 CALL PUTTY (1,15) @ SI LOCK KEYBOARD CALL MOVE (-336,1H ,YSCREE) YCOLMN=1 @ SUB YLINE=1 CALL PUTTY (1,14) @ SO UNLOCK KEYBOARD GOTO 30 133 RETURN 134 RETURN 135 RETURN 136 YCOLMN=1 YLINE=1 GOTO 30 137 RETURN 30 CALL PUTTY (1,CHAR) RETURN C C 40 POSIT(3)=YLINE+31 POSIT(4)=YCOLMN+31 CALL PUTTY (4,POSIT) RETURN END