11 DEF FNIE$=LEFT$(I0$,IQ%):DEF FNIG%=IA%-1<1:DEF FNIP%(A%,B%)=(I9%=>A% AND I9%<=B%):DEF FNIU%=I9%=27:DIM IB#(30,2),IC$(30),IM$(30),IO$(30),ID$(80),I%(10),I6%(10):I6%(7)=8 ' ASCII CODE FOR CURSOR CHARACTER
10998 REM PCINPUT (IBM PC VERSION 1.8) COPYRIGHT 1983 BY CARL R. STATON
10999 REM (419) 347-3209 17 FRANKLIN AVENUE SHELBY OH 44875
11000 ON ERROR GOTO 11008:IF LEN(ID$)<1 AND I%>0 AND I%<II% AND INSTR(I1$,"O")<1 THEN ID$=ID$(I%)
11006 IF ((-1*(I4% AND 1)) + (-1*(I4% AND 2)) + (-1*(I4% AND 4)) + (-1*(I4% AND 8)) + (-1*(I4% AND 16)) + (-1*(I4% AND 32))) > 1 OR (I6%(3)<>0 AND I6%(3)<>1) OR INSTR(CHR$(0)+CHR$(1)+CHR$(2)+CHR$(4)+CHR$(7)+CHR$(8),CHR$(I6%(4)))=0 THEN 11008
11007 IF I1%>0 AND I1%<26 AND I2%>0 AND I2%<II%+1 AND I3%>0 AND I3%<II%+1 AND I5%>0 AND I5%<31 THEN IF I4% AND 32 THEN I3%=LEN(IM$(I5%)):GOTO 11009 ELSE 11009
11008 IF ERL=11038 THEN RESUME 11013 ELSE CLS:PRINT "PCINPUT ERROR: ROW="I1%"COLUMN="I2%"LENGTH="I3%"ATTRIBUTE="RIGHT$(I1$,LEN(I1$)-6)" EDIT="I5%" LINE="ERL:STOP
11009 REM
11010 I6%(1)=I6%(4) + ((INSTR(I1$,"B")>0)*-16) + ((INSTR(I1$,"H")>0)*-8):IF I4% AND 16 THEN 11042
11011 COLOR I6%(1),I6%(2):LOCATE I1%,I2%:PRINT STRING$(I3%,"-");:LOCATE I1%,I2%
11012 I6%=0:I7!=0:I8#=0:MID$(I6$,1,2)=CHR$(0)+CHR$(0):MID$(I7$,1,4)=I6$+I6$:MID$(I8$,1,8)=I7$+I7$:ID%=0:MID$(I0$,1,II%)=STRING$(II%,255):IA%=0:IF LEN(ID$)<=I3% THEN MID$(I0$,1)=ID$:ID%=0:GOTO 11037
11013 IZ$=" ":IF (ID%<I3%) AND (I4% AND 32) THEN IZ$=MID$(IM$(I5%),ID%+1,1):IF IZ$<>"#" AND IZ$<>"%" THEN I9$=IZ$:I9%=ASC(I9$):GOTO 11018
11014 I9$=INKEY$:IF I9$="" THEN 11039 ELSE IQ%=INSTR(I0$,CHR$(255))-1:IF LEN(I9$)=1 THEN I9%=ASC(I9$) ELSE I9%=ASC(RIGHT$(I9$,1))
11015 IF I9%=13 THEN 11022 ELSE IF I9%=27 AND (I4% AND 128) THEN 11013 ELSE IF I9%=27 THEN 11036 ELSE IF I9%=8 THEN 11030
11016 IF ASC(I9$)<>0 THEN 11018 ELSE IF I9%=71 THEN ID%=0:GOTO 11037 ELSE IF I9%=79 THEN ID%=IA%-1:GOTO 11037 ELSE IF I9%=75 THEN ID%=ID%-1:GOTO 11037 ELSE IF I9%=77 THEN ID%=ID%+1:GOTO 11037 ELSE IF I9%=82 AND IQ%<I3% THEN 11032
11017 IF I9%=83 AND ID%>-1 THEN 11033 ELSE IF I9%=116 THEN ID%=ID%+2:GOTO 11037 ELSE IF I9%=115 THEN ID%=ID%-2:GOTO 11037 ELSE IF FNIP%(84,93) THEN 11048 ELSE IF FNIP%(94,103) THEN GOSUB 11050:GOTO 11013 ELSE BEEP:GOTO 11014
11018 IF (I4% AND 32) AND ((IZ$="%" AND INSTR(IA$(1),I9$)>0) OR (IZ$="#" AND INSTR(IA$(2),I9$)>0) OR (IZ$<>"%" AND IZ$<>"#")) THEN 11020
11019 IF ((I4% AND 1) AND INSTR(IA$(1),CHR$(I9%))>0) OR ((I4% AND 2) AND INSTR(IA$(2),CHR$(I9%))>0) OR ((I4% AND 4) AND INSTR(IA$(I5%),CHR$(I9%))>0) OR ((I4% AND 8) AND INSTR(IC$(I5%),CHR$(I9%))>0) THEN 11020 ELSE BEEP:GOTO 11013
11020 IF IQ%=I3% AND ID%=I3% THEN BEEP:GOTO 11013 ELSE LOCATE I1%,I2%+ID%:PRINT CHR$(I9%);