This website requires JavaScript.
Explore
Help
Sign In
izaya
/
collapseos
Watch
1
Star
0
Fork
0
You've already forked collapseos
mirror of
https://github.com/hsoft/collapseos.git
synced
2024-11-17 09:48:05 +11:00
Code
Issues
Releases
Wiki
Activity
7292d486dc
collapseos
/
emul
/
.gitignore
7 lines
78 B
Plaintext
Raw
Normal View
History
Unescape
Escape
forth: add bin dict compilation stage! Big one. This allows us to write higher order words directly in Forth, which is much more convenient than writing post-immediate (see "NOT" structure in diff if you want to see what I mean) structures in ASM. These structures can then be written to ROM (rather than loaded in RAM for definitions loaded at run-time). That's quite a bit of tooling that was added, 2 compilations stages, but I think it's well worth it.
2020-03-12 15:14:44 +11:00
/forth/stage1
forth: improve execution model My approach with RS was slightly wrong: RS' TOP was always containing current IP. It worked, but it was problematic when came the time to introduce RS-modifying words: it's impossible to modify RS in a word without immediately messing your flow. Therefore, what used to be RS' TOS has to be a variable that isn't changed midway by RS-modifying words. I guess that's why RS is called *return* stack...
2020-03-14 07:01:09 +11:00
/forth/stage1dbg
forth: Forth-ify ROT, a native word! This requires us to significantly adjust our build process, which now has 3 stages.
2020-03-25 04:46:05 +11:00
/forth/stage2
emul: add forth target
2020-03-10 13:26:02 +11:00
/forth/forth
tools/emul: re-organize .h files What used to be `tools/emul/user.h` was in fact specific to zasm, so I moved it there. To avoid name confusion, I renamed what used to be kernel.h and user.h to kernel-bin.h and user-bin.h.
2019-06-03 22:12:44 +10:00
/*/*-bin.h
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.
2019-11-16 07:37:49 +11:00
/*/*.bin
Reference in New Issue
Copy Permalink