mirror of
https://github.com/kanaka/mal.git
synced 2024-11-11 00:52:44 +03:00
115e430d02
Enable QBasic console mode usage and fix bugs in newline handling differences with C64 basic (cbm). To enable console mode for QBasic programs, have basicpp.py prefix the output with the QB64 specific console activation variables/functions. One change to basicpp.py to make this change more straightfowards is recursive includes so that includes can appear in more than just the top level step files. This allows us to conditionally include the right readline implementation. For QBasic in the special console mode (instead of the default full-screen UI mode) we need to use the LINE INPUT command in order to read input.
45 lines
570 B
QBasic
Executable File
45 lines
570 B
QBasic
Executable File
GOTO MAIN
|
|
|
|
REM $INCLUDE: 'readline.in.bas'
|
|
|
|
REM $INCLUDE: 'debug.in.bas'
|
|
|
|
REM READ(A$) -> R$
|
|
MAL_READ:
|
|
R$=A$
|
|
RETURN
|
|
|
|
REM EVAL(A$, E) -> R$
|
|
EVAL:
|
|
R$=A$
|
|
RETURN
|
|
|
|
REM PRINT(A$) -> R$
|
|
MAL_PRINT:
|
|
R$=A$
|
|
RETURN
|
|
|
|
REM REP(A$) -> R$
|
|
REP:
|
|
GOSUB MAL_READ
|
|
A=R:GOSUB EVAL
|
|
A=R:GOSUB MAL_PRINT
|
|
RETURN
|
|
|
|
REM MAIN program
|
|
MAIN:
|
|
REPL_LOOP:
|
|
A$="user> ":GOSUB READLINE: REM call input parser
|
|
IF EZ=1 THEN GOTO QUIT
|
|
|
|
A$=R$:GOSUB REP: REM call REP
|
|
|
|
PRINT R$
|
|
GOTO REPL_LOOP
|
|
|
|
QUIT:
|
|
REM GOSUB PR_MEMORY_SUMMARY_SMALL
|
|
#cbm END
|
|
#qbasic SYSTEM
|
|
|