Commit | Line | Data |
---|---|---|
11f94d2e JM |
1 | GOTO MAIN |
2 | ||
d7a6c2d6 | 3 | REM $INCLUDE: 'mem.in.bas' |
11f94d2e | 4 | REM $INCLUDE: 'types.in.bas' |
93593012 | 5 | REM $INCLUDE: 'readline.in.bas' |
11f94d2e JM |
6 | REM $INCLUDE: 'reader.in.bas' |
7 | REM $INCLUDE: 'printer.in.bas' | |
8 | ||
9e8f5211 JM |
9 | REM $INCLUDE: 'debug.in.bas' |
10 | ||
cc9dbd92 | 11 | REM READ(A$) -> R |
11f94d2e JM |
12 | MAL_READ: |
13 | GOSUB READ_STR | |
14 | RETURN | |
15 | ||
cc9dbd92 | 16 | REM EVAL(A, E) -> R |
af621e3a | 17 | SUB EVAL |
cc9dbd92 | 18 | R=A |
af621e3a | 19 | END SUB |
11f94d2e | 20 | |
cc9dbd92 | 21 | REM PRINT(A) -> R$ |
11f94d2e | 22 | MAL_PRINT: |
c756af81 | 23 | AZ=A:B=1:GOSUB PR_STR |
11f94d2e JM |
24 | RETURN |
25 | ||
b7b1787f | 26 | REM REP(A$) -> R$ |
af621e3a | 27 | SUB REP |
11f94d2e | 28 | GOSUB MAL_READ |
cc9dbd92 | 29 | IF ER<>-2 THEN GOTO REP_DONE |
85d70fb7 | 30 | |
af621e3a | 31 | A=R:CALL EVAL |
cc9dbd92 | 32 | IF ER<>-2 THEN GOTO REP_DONE |
4b84a23b | 33 | |
cc9dbd92 | 34 | A=R:GOSUB MAL_PRINT |
4b84a23b | 35 | |
85d70fb7 JM |
36 | REP_DONE: |
37 | REM Release memory from EVAL | |
cc9dbd92 | 38 | AY=R:GOSUB RELEASE |
af621e3a | 39 | END SUB |
11f94d2e | 40 | |
b7b1787f | 41 | REM MAIN program |
11f94d2e JM |
42 | MAIN: |
43 | GOSUB INIT_MEMORY | |
b7b1787f | 44 | |
bbab5c5d | 45 | ZT=ZI: REM top of memory after base repl_env |
4b84a23b | 46 | |
85d70fb7 | 47 | REPL_LOOP: |
60ef223c | 48 | A$="user> ":GOSUB READLINE: REM call input parser |
01975886 | 49 | IF EZ=1 THEN GOTO QUIT |
9d59cdb3 | 50 | IF R$="" THEN GOTO REPL_LOOP |
85d70fb7 | 51 | |
af621e3a | 52 | A$=R$:CALL REP: REM call REP |
11f94d2e | 53 | |
cc9dbd92 | 54 | IF ER<>-2 THEN GOSUB PRINT_ERROR:GOTO REPL_LOOP |
85d70fb7 JM |
55 | PRINT R$ |
56 | GOTO REPL_LOOP | |
11f94d2e | 57 | |
85d70fb7 | 58 | QUIT: |
9d59cdb3 | 59 | REM GOSUB PR_MEMORY_SUMMARY_SMALL |
115e430d JM |
60 | #cbm END |
61 | #qbasic SYSTEM | |
b7b1787f | 62 | |
85d70fb7 | 63 | PRINT_ERROR: |
c756af81 JM |
64 | PRINT "Error: "+E$ |
65 | ER=-2:E$="" | |
85d70fb7 JM |
66 | RETURN |
67 |