--- /dev/null
+diff --git a/runtime.c b/runtime.c
+index 3066580..c635bd4 100644
+--- a/runtime.c
++++ b/runtime.c
+@@ -535,7 +535,8 @@ printf("CHROUT: %d @ %x,%x,%x,%x\n", A, a, b, c, d);
+ left_cursor();\r
+ break;\r
+ case '"':\r
+- kernal_quote = 1;\r
++ // jdm: this doesn't match C64 behavior\r
++ //kernal_quote = 1;\r
+ // fallthrough\r
+ default:\r
+ putchar(A);\r
+@@ -838,8 +839,10 @@ GETIN() {
+ /*Notice that EOF is also turned off in non-canonical mode*/\r
+ A = getchar();\r
+ if (A == 255) { A = 4; } // map actual EOF to 4\r
++\r
++ // jdm: this doesn't match C64 behavior\r
+ /* Simulate echo */\r
+- if (A != 0 && A != 4) { putchar(A); }\r
++ //if (A != 0 && A != 4) { putchar(A); }\r
+ \r
+ /*restore the old settings*/\r
+ tcsetattr( STDIN_FILENO, TCSANOW, &oldt);\r
READCH:
GET CH$: IF CH$="" THEN READCH
CH=ASC(CH$)
+ REM PRINT CH
IF (CH=4 OR CH=0) THEN EOF=1: GOTO RL_DONE: REM EOF
- IF (CH=127) THEN GOSUB RL_BACKSPACE
- IF (CH=127) THEN GOTO READCH
+ IF (CH=127) OR (CH=20) THEN GOSUB RL_BACKSPACE
+ IF (CH=127) OR (CH=20) THEN GOTO READCH
IF (CH<32 OR CH>127) AND CH<>13 THEN READCH
+ PRINT CH$;
IF LEN(LINE$)<255 AND CH$<>CHR$(13) THEN LINE$=LINE$+CH$
IF LEN(LINE$)<255 AND CH$<>CHR$(13) THEN GOTO READCH
RL_DONE:
REM Assumes LINE$ has input buffer
RL_BACKSPACE:
- IF LEN(LINE$)=0 THEN RL_BACKSPACE_ONCE:
- PRINT CHR$(157) + CHR$(157) + " " + CHR$(157) + CHR$(157);
+ IF LEN(LINE$)=0 THEN RETURN
LINE$=LEFT$(LINE$, LEN(LINE$)-1)
- RETURN
- RL_BACKSPACE_ONCE:
PRINT CHR$(157) + " " + CHR$(157);
RETURN