Virgil Dupras
43f4c5200e
basic: don't choke on ':' in '"' literals
4 years ago
Virgil Dupras
3db38b0d89
basic: add while command
4 years ago
Virgil Dupras
51c977f2ed
basic: allow multiple commands on the same line
4 years ago
Virgil Dupras
1710c865dc
doc: refer to the new BASIC shell in example
ref #80
4 years ago
Virgil Dupras
25d25d017c
Replace old shell with BASIC shell
fixes #80
4 years ago
Virgil Dupras
20151a97f8
recipes/rc2014/zasm: use BASIC shell
Also made Makefile actually portable.
4 years ago
Virgil Dupras
880775ae69
recipes/rc2014/sdcard: use BASIC shell
4 years ago
Virgil Dupras
beaea6f978
basic: add puth command
4 years ago
Virgil Dupras
105acedab8
basic: improve README
markdown formatting was broken. Also, don't mark it as WIP.
4 years ago
Virgil Dupras
10864afa96
recipes/ti84: use the BASIC shell
4 years ago
Virgil Dupras
4c07639808
basic: make cmd table more compact
This shaves off quite a few bytes from the binary.
4 years ago
Virgil Dupras
4ba84dac5c
basic: add getc/putc commands
4 years ago
Virgil Dupras
77485a0031
basic: change welcome prompt
This is becoming the new shell, it has to step up to its new responsibilities!
4 years ago
Virgil Dupras
fc23a7c4a1
basic: do registers-to-vars transfer after pgm hook call
4 years ago
Virgil Dupras
264e72e0fd
basic: add fnew and fdel commands
4 years ago
Virgil Dupras
7c893dada1
basic: can now execute user apps!
Shell replacement sequence beginning in 3, 2, 1...
4 years ago
Virgil Dupras
b29073b01d
basic: add fopen command
4 years ago
Virgil Dupras
a0daed6812
basic: add usr command
4 years ago
Virgil Dupras
12bc120375
basic: add bsel, bseek, getb, putb commands
4 years ago
Virgil Dupras
8f1d942e5f
basic: add addr command
4 years ago
Virgil Dupras
381d57a513
basic: make variable A the only input variable
Mechanism for assigning inputs to the specified variable is clumsy and uses
binary space. Always using A is much simpler and doesn't seem very limiting to
me. I do that because there's many more "input" commands I'd like to add.
4 years ago
Virgil Dupras
e1df320d44
basic: add ldbas command
4 years ago
Virgil Dupras
13f935aa88
basic: add fls command
Also, add the new `bshell` emulated tool. BASIC is on its way to replace the
shell.
4 years ago
Virgil Dupras
b7d4860acf
basic: add in/out commands
Also, fixed the cmd matching algo to not accept partial matches. For example,
to stop matching "input" when the command was "in".
4 years ago
Virgil Dupras
7761cebb0a
basic: add sleep command
also fix broken "peek"
4 years ago
Virgil Dupras
9602f9b983
basic: add peek/poke/deek/doke commands
4 years ago
Virgil Dupras
a680fd3328
basic: add support for signed integers
4 years ago
Virgil Dupras
501fe96e07
lib/expr: use the IX register a bit less
It's an awkward register to use and avoiding its use allows us to strip the
resulting binary significantly. parseEXPR keeps the same signature though.
4 years ago
Virgil Dupras
2f71ad6d2f
lib/expr: add left/right shifting operators
4 years ago
Virgil Dupras
a03c5ac700
lib/expr: add bitwise operators
4 years ago
Virgil Dupras
972e8221f1
lib/expr: add division and modulo operators
4 years ago
Virgil Dupras
1b01f13105
lib/expr: refactor for easier operator addition
4 years ago
Virgil Dupras
fd5b2ab856
Put app-common documentation in apps/README.md
4 years ago
Virgil Dupras
e17dc1e1e1
basic: add input command
4 years ago
Virgil Dupras
982d20f895
basic: allow printing of quoted strings
4 years ago
Virgil Dupras
704d32279a
basic: document better
4 years ago
Virgil Dupras
7262993f14
basic: add if
4 years ago
Virgil Dupras
3f3dd9141e
basic: allow multiple args in print
4 years ago
Virgil Dupras
9c400ca642
basic: add goto
Things are getting super cereal...
4 years ago
Virgil Dupras
9d6cbe577c
basic: add variables
Things are getting cereal...
4 years ago
Virgil Dupras
9c9484fb88
basic: add run command
4 years ago
Virgil Dupras
9d1003e7a2
basic: keep line index ordered and line numbers unique
4 years ago
Virgil Dupras
62138b12cf
basic: add buffer line index
4 years ago
Virgil Dupras
4c6de413df
basic: begin implementing a line buffer
4 years ago
Virgil Dupras
f5b04fc02f
basic: add expression support to print
Again, same thing as in zasm.
4 years ago
Virgil Dupras
0bd58fd178
basic: parse hex, binary and char literals
Same thing as in zasm.
4 years ago
Virgil Dupras
1cea6e71e0
basic: add a print cmd
It can only print a decimal literal. But still, that's a big step because
I hadn't implemented decimal formatting yet.
4 years ago
Virgil Dupras
019d05f64c
Make the shell a userspace app
That's my mega-commit you've all been waiting for.
The code for the shell share more routines with userspace apps than with kernel
units, because, well, its behavior is that of a userspace app, not a device
driver.
This created a weird situation with libraries and jump tables. Some routine
belonging to the `kernel/` directory felt weird there.
And then comes `apps/basic`, which will likely share even more code with the
shell. I was seeing myself creating huge jump tables to reuse code from the
shell. It didn't feel right.
Moreover, we'll probably want basic-like apps to optionnally replace the shell.
So here I am with this huge change in the project structure. I didn't test all
recipes on hardware yet, I will do later. I might have broken some...
But now, the structure feels better and the line between what belongs to
`kernel` and what belongs to `apps` feels clearer.
4 years ago
Virgil Dupras
cdd0b64570
Modify userspace .org and RAMSTART expectations
Instead of expecting a `USER_CODE` symbol to be set, we expect `.org` to be
set in all userspace glue code. This gives us more flexibility with regards to
how we manage that.
Moreover, instead of making `USER_RAMSTART` mandatory, we make it default to
the end of the binary, which is adequate in a majority of cases.
Will be useful for my upcoming mega-commit... :)
4 years ago
Virgil Dupras
d74b85f146
zasm: allow .org to be specified from command line
Also important for upcoming mega commit...
4 years ago