683b47f245
WIP : Eff it, I left the magic memcpy in. Printing mostly works but it's still broken. Calls to _cputs and _cputsf may mysteriously fail due to some kind of memory corruption I haven't tracked down yet. This commit leaves in a bunch of commented testing code, the next commit will rip them out.
Andrew Kesterson2024-05-12 21:28:27 -04:00
f2cab38cf2
WIP. Somewhere in between the init of basic_cmd_run and basic_cmd_list calls to _cputs stop working with constant character string pointers and only work with pointers off the heap.
Andrew Kesterson2024-05-12 08:54:11 -04:00
0826d1946b
WIP Immediate mode, printing, and listing is working, but something wierd is going on with _cputs. See the comment in basic_cmd_list. I'm tempted to throw the C away and move it all to ASM so I can have more control & awareness of what's going on.
Andrew Kesterson2024-05-07 18:55:59 -04:00
06d110e28b
WIP : About to rip out the old parser and solver, can't get things working the way I expect and the old code is in the way
Andrew Kesterson2024-05-07 18:06:01 -04:00
bd9399e060
WIP scrolling seems to work correctly now if all you ever do is call advanceCursor()
Andrew Kesterson2024-05-07 17:01:19 -04:00
5b4e0e7a0f
WIP minor improvements to conio/screen for scrolling, still doesn't work reliably once we print more than 25 lines
Andrew Kesterson2024-05-07 16:17:36 -04:00
559ff15dc0
WIP. Storing code in line numbers and listing is working. Added a RUN command, and refactored the line runner logic out of basic_repl into basic_run_line. The repl still works but the RUN function is busted. The parser logic is increasingly getting in the way, and the solver is not as useful as I originally thought. The original design of the datastructures and logic is getting in my way and adding confusion. I may need to try something simpler.
Andrew Kesterson2024-05-07 08:08:40 -04:00
ee10cc6eb5
WIP : Storing line numbers, detecting immediate mode vs storage mode, solver tests are not working
Andrew Kesterson2024-05-06 17:51:42 -04:00
a428b905da
Added the ability to parse commands as well as expressions. Added basic PRINT and REM commands. Added solver tests which had been around for a while and not committed. All execution is still immediate mode.
Andrew Kesterson2024-05-06 15:12:12 -04:00
ef53041427
Refactored the name of some defined basic parser codes and exposed basic_solve_expr for tests
Andrew Kesterson2024-05-06 14:51:04 -04:00
591858334b
- Added the ability to start a line with a number and store it for later execution - Added the ability to force immediate mode processing (calculator mode) by beginning a line with = - Expanded parser testing - Expression execution seems to be broken now, everything is returning error code 0 and not returning results
Andrew Kesterson2024-05-05 06:55:39 -04:00
921a9dd8bd
- Added string strip methods lstrip and rstrip - Fixed the tokenizer to chomp whitespace from left and right of tokens - Fixed the tokenizer so it returns reserved symbols not just constants and expressions - Added some tests for the basic tokenizer and parser - Started working on structures to allow the basic interpreter to store lines in memory
Andrew Kesterson2024-05-04 22:08:20 -04:00
0d1ecd9bd3
- All tests passing - Updated README and image - Added itoa to stdlib - Implemented modulus math for bcc which has none in the stdlib - Updated the build scripts to work on Ubuntu 22 - Added bochsrc with some useful overrides (new bochs bios in ubuntu is broken, use the legacy) - Made most of stdlib compile and run under GNU C for testing - Improved the tokenizer so it will return tokens of more than one character - Moved the basic parser from using void pointers to store values to using basic_value unions to represent possible types - Added tests for the basic tokenizer
Andrew Kesterson2024-05-03 22:26:34 -04:00
208c831c79
Refactored the C files out into libraries, started work on the BASIC repl (it can sorta do math!)
Andrew Kesterson2015-01-25 22:05:28 -08:00