This website requires JavaScript.
Explore
lain.church
Help
Register
Sign In
izaya
/
collapseos
Watch
1
Star
1
Fork
0
You've already forked collapseos
Code
Issues
Pull Requests
Releases
Wiki
Activity
d466c6d95d
collapseos
/
emul
/
.gitignore
8 lines
85 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 00:14:44 -04: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-13 16:01:09 -04: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-24 13:46:05 -04:00
/forth/stage2
emul: add forth target
2020-03-09 22:26:02 -04: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 08:12:44 -04: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-15 15:37:49 -05:00
/*/*.bin
blk: first steps
2020-04-14 09:05:43 -04:00
/blkfs
Reference in New Issue
Copy Permalink