SUBROUTINE INIT COMMON/IFLAG/PFLG,PSFLG LOGICAL*1 IBUF(6) DATA IBUF/255,2,3,0,0,255/ CALL KBWRW(1,IBUF(6)) CALL COLOR(1,8) CALL CLEAR CALL ANGLE(2) CALL BLINK(0) PFLG=0 PSFLG=0 RETURN END C SUBROUTINE HOME LOGICAL*1 BUF(2) DATA BUF/8,0/ CALL KBWRW(1,BUF) RETURN END C SUBROUTINE CRLF LOGICAL*1 BUF(2) DATA BUF/13,10/ CALL KBWRW(2,BUF) RETURN END C SUBROUTINE CLRLIN LOGICAL*1 BUF(2) DATA BUF/11,0/ CALL KBWRW(1,BUF) RETURN END C SUBROUTINE CLRNXT CALL CRLF CALL CLRLIN RETURN END C SUBROUTINE BLINK(N) LOGICAL*1 IBUF(2) IBUF(1)=15 IF(N.EQ.0)IBUF(1)=15 IF(N.EQ.1)IBUF(1)=31 CALL KBWR(1,IBUF) RETURN END C SUBROUTINE CLEAR COMMON /IFLAG/PFLG,PSFLG LOGICAL*1 ICLR(2) DATA ICLR/"14,0/ CALL KBWRW(1,ICLR) DO 10 I=1,4000,1 K=2*3 10 CONTINUE END C SUBROUTINE COLOR(IB,IF) COMMON /IFLAG/PFLG,PSFLG LOGICAL*1 FLG(4) DATA FLG/"36,0,"35,0/ IF(IB.LT.1.OR.IB.GT.8)GOTO 10 FLG(2)=IB-1+"20 CALL KBWR(2,FLG(1)) 10 IF(IF.LT.1.OR.IF.GT.8)GOTO 20 FLG(4)=IF-1+"20 CALL KBWR(2,FLG(3)) 20 RETURN END C C SET NEW COMPOSITE STATUS SUBROUTINE SSTAT(ISTAT) LOGICAL*1 BUF(2),ISTAT(2) DATA BUF/6,0/ BUF(2)=ISTAT(1).AND."377 CALL KBWRW(2,BUF) RETURN END C C MOVE VISIBLE CURSER SUBROUTINE APOSV(IX,IY) COMMON /IFLAG/PFLG,PSFLG INTEGER FILL(4) LOGICAL*1 POS(6) C DATA POS/"33,"101,3,3*0/,FILL/4*0/ DATA POS/3,5*0/ POS(2)=(IX-1).AND."177 !0-79 POS(3)=(IY-1).AND."77 !0-47 CALL KBWRW(3,POS) CALL KBWRW(4,FILL) C CALL DELAY RETURN END C C MOVE INVISIBLE CURSER SUBROUTINE APOSB(IX,IY,ISTAT) LOGICAL*1 POS(6) DATA POS/3,81,4*0/ POS(3)=(IX-1).AND."177 !0-79 POS(4)=(IY-1).AND."77 !0-47 POS(5)=ISTAT.AND."377 CALL KBWRW(5,POS) RETURN END C C GET CURRENT CURSOR POS'N SUBROUTINE GPOS(IX,IY) LOGICAL*1 I1(2),I2(8) DATA I1/27,3/,I2/8*0/ CALL KBWRRD(2,I1,7,I2) IX=I2(2)+1 IY=I2(3)+1 RETURN END C C CHANGE ANGLE OF WRITING DIRECTION SUBROUTINE ANGLE(N) COMMON /IFLAG/PFLG,PSFLG LOGICAL*1 IBUF(2) DATA IBUF/"33,0/ IBUF(2)=11 IF(N.EQ.1)IBUF(2)=28 IF(N.EQ.2)IBUF(2)=24 IF(N.EQ.3)IBUF(2)=26 IF(N.EQ.4)IBUF(2)=10 CALL KBWRW(2,IBUF) RETURN END C C POSITION POINT FOR PLOTING SUBROUTINE APNT(IX,IY) COMMON /IFLAG/PFLG,PSFLG LOGICAL*1 IBUF(6) DATA IBUF/2,253,0,0,255,0/ IBUF(3)=IX !0-159 IBUF(4)=IY !0-191 CALL KBWRW(5,IBUF) RETURN END C SUBROUTINE APNTC(IX,IY) COMMON /IFLAG/PFLG,PSFLG LOGICAL*1 IBUF(6) DATA IBUF/2,253,0,0,255,0/ IBUF(3)=(IX-1)*2 !0-159 IBUF(4)=(48-IY)*4+3 !0-191 CALL KBWRW(5,IBUF) RETURN END C C CONVERT CURSOR POS'N TO PLOTING POINT C WHERE IX IS CURSOR X POS'N C IY " Y " C PX IS PLOT X " C PY IS " Y " C MOD IS 0-7 SUBROUTINE CURPNT(IX,IY,PX,PY,MOD) PX=IX*2-1 IF(MOD.AND."70)PX=PX+1 PY=(48-IY)*4+3-(MOD.AND.7) RETURN END C SUBROUTINE VECT(IX,IY) LOGICAL*1 IBUF(6) DATA IBUF/2,242,0,0,242,255/ IBUF(3)=IX IBUF(4)=IY CALL KBWRW(6,IBUF) DO 10 I=1,2500 10 J=4*3 RETURN END C SUBROUTINE VECTC(IX,IY) LOGICAL*1 IBUF(6) DATA IBUF/2,242,0,0,242,255/ IBUF(3)=(IX-1)*2 !0-159 IBUF(4)=(48-IY)*4+3 !0-191 CALL KBWRW(6,IBUF) DO 10 I=1,2500 10 J=4*3 RETURN END C SUBROUTINE XGRAPH(NBUF) LOGICAL*1 NBUF(2),IBUF(4),IGR(4) DATA IBUF/2,250,0,255/,IGR/249,3*0/ IBUF(3)=NBUF(1) CALL KBWRW(3,IBUF) N=2 10 IGR(2)=NBUF(N) N=N+1 IGR(3)=NBUF(N) N=N+1 CALL KBWRW(3,IGR) DO 20 I=1,3000 20 J=3*4 IF(IBUF(N).NE.0)GOTO 10 CALL KBWRW(1,IBUF(4)) RETURN END