Posts by lukeshu@fosstodon.org
 (DIR) Post #AqHwkr43jQQ8yINX6W by lukeshu@fosstodon.org
       2024-12-28T05:51:40Z
       
       0 likes, 0 repeats
       
       But depending on my `fdconfig.sys` I either get it in a boot-loop (IDK if from b.com or 9dos) or a kernel-panic from 9dos ("double fault"... at least it's getting out of b.com!).Anyone have troubleshooting resources for adjusting #FreeDOS `fdconfig.sys` or #Qemu flags (or other emulators) for circa-1992 software?I'm too young to remember config.sys, and my #RetroComputing hasn't involved much #DOS yet.#MSDOS #VintageComputing #Plan9 #Emulation
       
 (DIR) Post #AqHwkw3t9UFsTDKy24 by lukeshu@fosstodon.org
       2024-12-29T20:00:19Z
       
       0 likes, 0 repeats
       
       After spending some time in ghidra mapping addresses to lines of code:The boot-loop is from the 9dos kernel, not from the b.com bootloader.
       
 (DIR) Post #AqHwkw3t9UFsTDKy25 by lukeshu@fosstodon.org
       2024-12-28T05:54:52Z
       
       0 likes, 0 repeats
       
       It was known to work on the "AT&T Safari", "AT&T 6386", and "Gateway 486". That probably means MS-DOS 3.2 or 4.01.
       
 (DIR) Post #AqHwl11wg8fhsdSzCK by lukeshu@fosstodon.org
       2024-12-28T06:12:25Z
       
       0 likes, 0 repeats
       
       In the long-run, the easiest way to run #Plan9 1e (esp on non-PC platforms) will probably be to write a simple #GNULinux server program that serves BOOTP (pre-DHCP!) + TFTP for PXE boot, and #9P of the archive tarball. But 1e uses a much too old dialect of 9P for any existing software except for 1e itself to be able to serve it. And I don't want to try to write a server for it if I don't have a client to test with.So getting `/sys/lib/pcdisk` to boot from FreeDOS is in the bootstrapping path.
       
 (DIR) Post #AqHwl158UHDw2WxXAe by lukeshu@fosstodon.org
       2024-12-30T04:50:05Z
       
       0 likes, 0 repeats
       
       ... and it's after the scheduler has started :(I was really expecting it to be in early initialization. That would have made debugging it a lot easier.
       
 (DIR) Post #AqHwl675mQl9e2ufPk by lukeshu@fosstodon.org
       2025-01-12T22:37:50Z
       
       0 likes, 0 repeats
       
       Ugg, ret-sync is useless here. It relies on gdb `info proc mappings`, which doesn't work on remote targets. But I have already put the mappings in #Ghidra!
       
 (DIR) Post #AqHwl67Rl72jf94wy0 by lukeshu@fosstodon.org
       2024-12-28T06:17:04Z
       
       0 likes, 0 repeats
       
       Actually, #Plan9 4e has a program for serving the old 2e/3e protocol (9P1). And so maybe 2e has a program for serving the old 1e protocol (which I call 9P0)?So if I can't get the 1e stand-alone PC version working, maybe I get 4e serving PXE+9P1 to boot 2e, and then I get that serving 9P0 to boot 1e?Keeping the boot quirks of multiple versions of Plan9 straight in my head at once doesn't seem fun tho.
       
 (DIR) Post #AqHwl6Zo3fjD56LbAe by lukeshu@fosstodon.org
       2024-12-30T05:01:53Z
       
       0 likes, 0 repeats
       
       And I'm evidently confused about how the memory map is set up. I seem to have (most of?) the code in the right place in ghidra, but global variables are clearly wack.
       
 (DIR) Post #AqHwlAyPi7mwiZtJ56 by lukeshu@fosstodon.org
       2024-12-28T06:22:12Z
       
       0 likes, 0 repeats
       
       Actually, I think u9fs can serve both 9P2000 and 9P1. So I guess I could cut 4e out of that chain.WAIT! 1e had /sys/src/cmd/unix/u9fs/ too! That'll serve 9P0! It'll probably take some minor modification to get it to build on a modern system, but that is another potential path.
       
 (DIR) Post #AqHwlBA70d97IrMeJc by lukeshu@fosstodon.org
       2024-12-30T20:26:20Z
       
       0 likes, 0 repeats
       
       "return 0 if OK, -1 if bullshit"
       
 (DIR) Post #AqHwlFZ4dlUQxR4dmK by lukeshu@fosstodon.org
       2024-12-30T20:54:25Z
       
       0 likes, 0 repeats
       
       So I figured out yesterday that `BOOT` is not defined (as in `#ifdef BOOT`). But I still had some assumptions about the memory map in my head that were based on assuming that #ifdef BOOT
       
 (DIR) Post #AqHwlKRoUBeY6MiPei by lukeshu@fosstodon.org
       2024-12-30T21:03:35Z
       
       0 likes, 0 repeats
       
       Besides the fact that I've mostly been dealing with ARM for the last few months:Any hope of keeping x86 asm operand order straight has been annihilated by dealing with 3 different assembly syntaxes: whatever it is that GDB shows me (AT&T syntax), whatever it is that Ghidra shows me (Intel syntax), and Plan 9 assembler (which--despite being out of AT&T--superficially looks more like Intel syntax but with AT&T order).
       
 (DIR) Post #AqHwlPSLrc3RdU0Pgm by lukeshu@fosstodon.org
       2024-12-30T21:59:21Z
       
       0 likes, 0 repeats
       
       Why is #ghidra's memory map editor so difficult to use?Like if I can see what it is, and I know what it should be, why is the UI for getting from point A to point B so clunky?
       
 (DIR) Post #AqHwlUHBwX6AaJp4UK by lukeshu@fosstodon.org
       2024-12-30T22:38:35Z
       
       0 likes, 0 repeats
       
       So from the kernel's initialization, I have figured out exactly which region it considers to be BSS. And there's conspicuously a gap between data and BSS in the memory map.I have data right after text. But looking back at the bootloader, isn't read into `text_addr+text_size`, it's read into `PGROUND(text_addr+text_size)`, so fingers crossed that moving that forward a bit makes things start making sense!
       
 (DIR) Post #AqHwlZdi0F55DbOcmO by lukeshu@fosstodon.org
       2024-12-31T00:01:50Z
       
       0 likes, 0 repeats
       
       The memory map now indeed makes sense in ghidra! And the gap between data and BSS went away.
       
 (DIR) Post #AqHwleMWRZIvrkOTBY by lukeshu@fosstodon.org
       2024-12-31T00:03:16Z
       
       0 likes, 0 repeats
       
       And I got to the login screen!...by trying to single-step to find the crash. I guess it's timing related where the kernel couldn't handle the CPU going that fast?
       
 (DIR) Post #AqHwljCmRDTysysGC8 by lukeshu@fosstodon.org
       2024-12-31T00:07:00Z
       
       0 likes, 0 repeats
       
       But now it's hanging at "fs..."
       
 (DIR) Post #AqHwlnkFYidExwZ2v2 by lukeshu@fosstodon.org
       2024-12-31T19:28:21Z
       
       0 likes, 0 repeats
       
       in the kernel:char Egreg[] = "it's a thermal problem";in userspace:[Egreg]         "it's all greg's fault",(Egreg is returned for all kinds of miscellaneous errors)Who is Greg? #Plan9 #RetroComputing
       
 (DIR) Post #AqlsYjYiS35PlirPF2 by lukeshu@fosstodon.org
       2025-02-04T03:04:48Z
       
       1 likes, 0 repeats
       
       Lots of things out there say that Styx was "a variant of the 9P protocol", but I haven't found anything that says what was actually different about it.- The `typ` values that specify the message type are different (9P1 values start counting at 50, Styx starts counting at 0)- Tcwalk/Rcwalk have been removed- There is no authentication (so Tsession/Rsession have been removed, and Tattach/Rattach have been shortened)There you go.#Plan9 #9P #InfernoOS
       
 (DIR) Post #AsKgDMS7Xbj2O2oPw0 by lukeshu@fosstodon.org
       2025-03-23T01:48:43Z
       
       0 likes, 0 repeats
       
       @foone 1. I've done horrible hacks to save space so that debug builds would fit within a limit. The hacks turn out to be pointless for release/production builds.2. Maybe earlier builds were bigger when the hack was added, but then something got cut, and it would have been more effort to remove the hack.