A large commit.
[pdp8.git] / sw / rescue / lab8e_goettingen / disk2_11 / rka / paroff / charin.ft
CommitLineData
81e70d48
PH
1 SUBROUTINE CHARIN (CHAR)\r
2C\r
3C INSERT A CHARACTER INTO THE SCREEN COMMON AT THE NEXT POSITION\r
4C\r
5 INTEGER CHAR\r
6 INCLUDE YSCREE.FI\r
7 INTEGER NCOND\r
8 EXTERNAL NCOND\r
9 INTEGER POSIT (4) @ SEQUENCE FOR CURSOR CONTROL\r
10 DATA POSIT /27,61,2*0/\r
11C\r
12 IF (CHAR.LT.32) GOTO 50 @ CONTROL CHARACTER\r
13C\r
14 GOTO (11,12,13,14,15,16), MOD(YCOLMN,6)+1\r
1511 CALL IFLD(0,6,YSCREE(YLINE,YCOLMN/6+1),CHAR)\r
16 GOTO 20\r
1712 CALL IFLD(6,6,YSCREE(YLINE,YCOLMN/6+1),CHAR)\r
18 GOTO 20\r
1913 CALL IFLD(12,6,YSCREE(YLINE,YCOLMN/6+1),CHAR)\r
20 GOTO 20\r
2114 CALL IFLD(18,6,YSCREE(YLINE,YCOLMN/6+1),CHAR)\r
22 GOTO 20\r
2315 CALL IFLD(24,6,YSCREE(YLINE,YCOLMN/6+1),CHAR)\r
24 GOTO 20\r
2516 CALL IFLD(30,6,YSCREE(YLINE,YCOLMN/6+1),CHAR)\r
26C\r
2720 CONTINUE\r
28 CALL PUTTY (1,CHAR)\r
29 YCOLMN=MOD(YCOLMN+1,80)\r
30CXCX YCOLMN=NCOND(YCOLMN.LE.1,80,YCOLMN-1) @ *\r
31 YCOLMN=MAX0(YCOLMN,1)\r
32 IF (YCOLMN.GT.1) RETURN\r
33CXCX IF (YCOLMN.NE.80) GOTO 40 @ *\r
34 YLINE=MOD(YLINE+1,24)\r
35CXCX YLINE=NCOND(YLINE.GT.1,YLINE-1,24) @ *\r
36 YLINE=MAX0(YLINE,1)\r
37CXCX GOTO 40 @ *\r
38 IF (YLINE.GT.1) GOTO 40 @ REPOSITION THE CURSOR\r
39 CALL PUTTY (1,30) @ RESET CURSOR TO HOME POSITION\r
40 RETURN\r
4150 CONTINUE\r
42 GOTO (100,101,102,103,104,105,106,107,110,111,112,113,114,\r
43 * 115,116,117,120,121,122,123,124,125,126,127,130,131,132,133,\r
44 * 134,135,136,137),CHAR+1\r
45C\r
46100 RETURN\r
47101 RETURN\r
48102 RETURN\r
49103 RETURN\r
50104 RETURN\r
51105 RETURN\r
52106 RETURN\r
53107 GOTO 30 @ BEL\r
54110 YCOLMN=NCOND(YCOLMN-1,YCOLMN-1,80) @ BS\r
55 IF (YCOLMN.EQ.80) YLINE=NCOND(YLINE-1,YLINE-1,24)\r
56 GOTO 40\r
57111 RETURN\r
58112 YLINE=MOD(YLINE+1,24) @ LF\r
59 YLINE=NCOND(YLINE,YLINE,1)\r
60 GOTO 40\r
61113 YLINE=NCOND(YLINE-1,YLINE-1,24) @ VT\r
62 GOTO 40\r
63114 YCOLMN=MOD(YCOLMN+1,80) @ FF\r
64 YCOLMN=NCOND(YCOLMN,YCOLMN,1)\r
65 IF (YCOLMN.EQ.1) YLINE=MOD(YLINE+1,24)\r
66 YCOLMN=NCOND(YCOLMN,YCOLMN,1)\r
67 GOTO 40\r
68115 YCOLMN=1 @ CR\r
69 YLINE=MOD(YLINE+1,24) @ CR-LF ECHO\r
70 YLINE=NCOND(YLINE,YLINE,1)\r
71 GOTO 40\r
72116 RETURN\r
73117 RETURN\r
74120 RETURN\r
75121 RETURN\r
76122 RETURN\r
77123 RETURN\r
78124 RETURN\r
79125 RETURN\r
80126 RETURN\r
81127 RETURN\r
82130 RETURN\r
83131 RETURN\r
84132 CALL PUTTY (1,15) @ SI LOCK KEYBOARD\r
85 CALL MOVE (-336,1H ,YSCREE)\r
86 YCOLMN=1 @ SUB\r
87 YLINE=1\r
88 CALL PUTTY (1,14) @ SO UNLOCK KEYBOARD\r
89 GOTO 30\r
90133 RETURN\r
91134 RETURN\r
92135 RETURN\r
93136 YCOLMN=1\r
94 YLINE=1\r
95 GOTO 30\r
96137 RETURN\r
9730 CALL PUTTY (1,CHAR)\r
98 RETURN\r
99C\r
100C\r
10140 POSIT(3)=YLINE+31\r
102 POSIT(4)=YCOLMN+31\r
103 CALL PUTTY (4,POSIT)\r
104 RETURN\r
105 END\r
106\1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0