| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | sh: run scripts, and >> redirection | user | 2026-09-24 |
| | | | | | | | | | | | | | | | | `sh < file` already executed the file - and then powered the Game Boy off, because the read loop treated EOF as "the machine is done". That is right for init and wrong for everything else, so scripts were unusable. A shell now asks isatty(): with stdin on a file it prints no prompt, does not echo the script back, and exits at EOF. Only pid 1 on the console still powers down. init also runs /rc at boot if the cart has one, so a Game Boy can come up with its own startup script - verified across a real power cycle (write /rc, poweroff, reboot the same cart, watch init run it). `>>` appends instead of truncating, which is what makes writing that script on the device possible in the first place. | ||
| * | sh: background dhcp at boot so the prompt is never blocked | user | 2026-09-22 |
| | | | | | | | | | dhcp's recv times out only after ~250*65536 pumps x3 retries, so fork()+wait() left the screen stuck at 'dhcp: discovering' with no prompt whenever no DHCP server answered (raw emulator, no bridge). Fork without waiting: the prompt is immediate, the lease (or 'no offer') lands a moment later, and the job is reaped by the main loop. | ||
| * | refactor: c/ -> usr/, compiled program blobs out of the source tree | user | 2026-07-18 |
| Userland sources live in usr/ (fits the Unix theme better than 'c'). SDCC output .bin blobs land in build/usr/ with the other build artifacts instead of littering the source dir; programs.asm INCBINs them from there. Byte-identical ROM. | |||
