1 SUBROUTINE CHARIN (CHAR)
3 C INSERT A CHARACTER INTO THE SCREEN COMMON AT THE NEXT POSITION
9 INTEGER POSIT (4) @ SEQUENCE FOR CURSOR CONTROL
10 DATA POSIT /27,61,2*0/
12 IF (CHAR.LT.32) GOTO 50 @ CONTROL CHARACTER
14 GOTO (11,12,13,14,15,16), MOD(YCOLMN,6)+1
15 11 CALL IFLD(0,6,YSCREE(YLINE,YCOLMN/6+1),CHAR)
17 12 CALL IFLD(6,6,YSCREE(YLINE,YCOLMN/6+1),CHAR)
19 13 CALL IFLD(12,6,YSCREE(YLINE,YCOLMN/6+1),CHAR)
21 14 CALL IFLD(18,6,YSCREE(YLINE,YCOLMN/6+1),CHAR)
23 15 CALL IFLD(24,6,YSCREE(YLINE,YCOLMN/6+1),CHAR)
25 16 CALL IFLD(30,6,YSCREE(YLINE,YCOLMN/6+1),CHAR)
29 YCOLMN=MOD(YCOLMN+1,80)
30 CXCX YCOLMN=NCOND(YCOLMN.LE.1,80,YCOLMN-1) @ *
32 IF (YCOLMN.GT.1) RETURN
33 CXCX IF (YCOLMN.NE.80) GOTO 40 @ *
35 CXCX YLINE=NCOND(YLINE.GT.1,YLINE-1,24) @ *
38 IF (YLINE.GT.1) GOTO 40 @ REPOSITION THE CURSOR
39 CALL PUTTY (1,30) @ RESET CURSOR TO HOME POSITION
42 GOTO (100,101,102,103,104,105,106,107,110,111,112,113,114,
43 * 115,116,117,120,121,122,123,124,125,126,127,130,131,132,133,
44 * 134,135,136,137),CHAR+1
54 110 YCOLMN=NCOND(YCOLMN-1,YCOLMN-1,80) @ BS
55 IF (YCOLMN.EQ.80) YLINE=NCOND(YLINE-1,YLINE-1,24)
58 112 YLINE=MOD(YLINE+1,24) @ LF
59 YLINE=NCOND(YLINE,YLINE,1)
61 113 YLINE=NCOND(YLINE-1,YLINE-1,24) @ VT
63 114 YCOLMN=MOD(YCOLMN+1,80) @ FF
64 YCOLMN=NCOND(YCOLMN,YCOLMN,1)
65 IF (YCOLMN.EQ.1) YLINE=MOD(YLINE+1,24)
66 YCOLMN=NCOND(YCOLMN,YCOLMN,1)
69 YLINE=MOD(YLINE+1,24) @ CR-LF ECHO
70 YLINE=NCOND(YLINE,YLINE,1)
84 132 CALL PUTTY (1,15) @ SI LOCK KEYBOARD
85 CALL MOVE (-336,1H ,YSCREE)
88 CALL PUTTY (1,14) @ SO UNLOCK KEYBOARD
97 30 CALL PUTTY (1,CHAR)