Hi guys, thanks for all the comments! I took a family picture yesterday that you guys might like:
By the way, I helped make that image/audio/video hosting site, too,
if you're interested (
source code).
embryo wrote:
Yes, but the niche is too small ...
Every American high schooler has one of these in his or her backpack. I can't speak for other countries, but these devices are very prevelant here.
embryo wrote:
By the way - big modern systems without good architecture are not feasible. And the architecture supposes high level languages. OSes written in assembler are a good start for microcontroller programming and all the likes.
I've been thinking about a C interface to the kernel, so that userspace programs can be written in C. I am also planning on writing a python-like interpreter to be the default shell (with fancier maths support so it's suitable for a student's default interface).
Bender wrote:
Amazing! Never seen anything like this. Since I am not experienced in anything further than x86 or ARM, I could just stare and look at this great piece of code.
Here's a crash course in z80 assembly, for anyone who wants to understand the codebase a little more:
ld is like
mov. There are several 16-bit registers: AF, BC, DE, HL, IX, IY, SP, and PC, the latter two being the stack pointer and program counter. Some of these registers can be used as two 8-bit registers: A, B, C, D, E, H, and L.
ld (0x8000), hl loads HL into address 0x8000, little endian. If you see any instructions that look like they should have two operands, but only have one (i.e.
or b), they operate on the accumulator (that one is equivalent to
or a, b).
Bender wrote:
Cool? It's super cool! My question to you would be how difficult was it to write such a thing on limited and less documented hardware? Guess x86 was too common.
It wasn't too difficult. I knew assembly long before I knew C, I'm very comfortable with it. As for hardware documentation, the rest of the TI hacking community has been kind enough to reverse engineer it while I've been off playing in osdev land.
Bender wrote:
Forgive me for my ignorance but do any of you know any C or any HL compiler that targets the TI Calculators?
SDCC supports z80. I did not use it because it produces code that is too slow and bloated for my tastes - the entire KnightOS kernel (in assembly) is about 9K right now.