JS, Rexx: fix step build deps.
[jackhill/mal.git] / basic / readline.in.bas
1 REM READLINE(A$) -> R$
2 READLINE:
3 EZ=0
4 PRINT A$;
5 C$="":R$="":C=0
6 READCH:
7 #cbm GET C$
8 #qbasic C$=INKEY$
9 IF C$="" THEN GOTO READCH
10 C=ASC(C$)
11 REM PRINT C
12 #qbasic IF ASC(C$)=8 THEN C=20:C$=CHR$(20)
13 IF C=4 OR C=0 THEN EZ=1:GOTO RL_DONE: REM EOF
14 IF C=127 OR C=20 THEN GOSUB RL_BACKSPACE
15 IF C=127 OR C=20 THEN GOTO READCH
16 IF (C<32 OR C>127) AND C<>13 THEN GOTO READCH
17 PRINT C$;
18 IF LEN(R$)<255 AND C$<>CHR$(13) THEN R$=R$+C$
19 IF LEN(R$)<255 AND C$<>CHR$(13) THEN GOTO READCH
20 RL_DONE:
21 RETURN
22
23 REM Assumes R$ has input buffer
24 RL_BACKSPACE:
25 IF LEN(R$)=0 THEN RETURN
26 R$=LEFT$(R$,LEN(R$)-1)
27 #cbm PRINT CHR$(157)+" "+CHR$(157);
28 #qbasic LOCATE ,POS(0)-1
29 #qbasic PRINT " ";
30 #qbasic LOCATE ,POS(0)-1
31 RETURN