My local junk shop has an old, serial Logitech mouse - the wedgy one with the 3 buttons. I'll see if it's still there. :)
[snip]
I'm going away for a week tomorrow, going to investigate USB stack and porting to x86_64 - both seem like pretty monumental tasks to me lol, so which ever one looks the easiest I will have a crack at first.
Hey, that's all pretty cool! Dunno about the VirtualBox stuff, but g luck and have fun playing around with it!
Thanks, I'm pretty happy with it.. I discovered some errors in it
earlier this year and it's been running so much better since I fixed
them, and I've been suprised at how well the networking has been going
(I had a webserver on it for weeks, and with all the portscanners and such, it didn't crash at all)
Anyway, I will have fun, oh I used your pointer vectors in it too that
you contributed to magicka bbs - I hope that's ok..
Cool. USB is hard; for x86_64, it depends: to enter 64-bit long mode, you have to set up virtual memory paging and enable the MMU; if you're already doing that for 32-bit, it's not so bad: but if you're using x86-segmentation (which I think you are?) it's a lot more challenging because a) most of x86 segmentation is ignored in long mode, and b) you have to switch to paged virtual memory (with at least 4 level paging).
apam wrote to poindexter FORTRAN <=-
Hah! Cool. Except I don't have a serial mouse driver either lol
Don't know if I could
tolerate a mechanical mouse again - I spent most of the '90s cleaning
mouse gerb out of the workings...
Re: Re: Computer Broken
By: tenser to apam on Fri Sep 12 2025 11:03 am
Cool. USB is hard; for x86_64, it depends: to enter 64-bit long mode have to set up virtual memory paging and enable the MMU; if you're al doing that for 32-bit, it's not so bad: but if you're using x86-segmentation (which I think you are?) it's a lot more challenging because a) most of x86 segmentation is ignored in long mode, and b) y have to switch to paged virtual memory (with at least 4 level paging)
no i do have paging with the mmu. I'll look at it.
I did go down another
rabbit holr though, adding fat support via grafting the fatfs driver in, its _almost_ working, but having some minor issue that is proving to be difficult :)
my goal for adding fat support was to be able to use usb keys which
would be awesome if i had a usb stack, and able to use limine boot
loader which i hear is good (and part of a youtube video about porting
to x86_64) plus having to have an OS that can write minix v3 filesystems to prepare my disk images is a bit tricky (debian does still, but most linux distros ship kernels with it disabled)
Oh nice. What's the problem that you hit? Possibly you've already
fixed it by now, but I'm curious.
It strikes me that you could probably still use limine regardless
of whether the OS used a different file system format: you'd just
prepare an image with a copy of the kernel in a small FAT
partition, but the system would mostly ignore it once running.
I presume to prepare an image, you attach a file to a pseudo disk
device via a loopback driver and initialize and mount a Minix FS
on it, then just copy files to that. You could, however, create
a filesystem directly in a disk file and copy files into that; it
would be a fair bit of work, as you'd have to write code to write
the minix3 file structures into that file, versus letting the kernel
do that for you, but it would be very portable. Of course, using
FAT would be much simpler.
Oh nice. What's the problem that you hit? Possibly you've already fixed it by now, but I'm curious.
It was actually an issue with my memcmp function, i was comparing an
extra byte.. no idea how that one snuck by for so long!
a filesystem directly in a disk file and copy files into that; it
would be a fair bit of work, as you'd have to write code to write
the minix3 file structures into that file, versus letting the kernel
do that for you, but it would be very portable. Of course, using
FAT would be much simpler.
Yeah, it's possible, but yeah, a lot of work, and filesystems are something I struggle with a bit. I did think instead I could write a minix3 FUSE driver, then it might port to use with FUSE on other systems.
Fat is also much better, my minix 3 driver only supports 1024 block size, which appears to make filesystems restricted to small sizes. I'm not sure if thats an error on my part, as when I was writing it I understood that they could only be 1024 block size, but I think that was incorrect.
Now that the FAT driver is working, I've been able to port all my scripts to use FreeBSD, which is great, means I'm not stuck on Linux if I don't want to be :)
Oh great! It's surprising how long a small bug like that can
last, and how far you can still get while it does.
Honestly, it's probably not worth it, and if you've got a working
fat implementation, then no need to bother. It may be interesting,
though!
Hey, that's great! No need to futz around with the Minix3 FS, then.
Honestly, it's probably not worth it, and if you've got a working
fat implementation, then no need to bother. It may be interesting, though!
Yeah, I'm not sure it'w worth it either - unless I'm wanting to learn how FUSE works (which may be a good way to port file system drivers in the future? hmm)
Finding the FatFS driver was great though, because it's already well tested - having a filesystem that I can rely on means easier to find
other bugs.. it's hard to debug your programs when they don't even load off the disk correctly!
Are you still working on that Rust port of .... I can't remember the name of that OS - was a unix os that got ported to RISCV i think...
I believe you mean rxv64, which was a Rust rewrite of xv6, but
retargeted to x86_64, instead of 32-bit x86. I keep it working,
but that project is basically done.
but it's 32-bit specific and it's in C." So I did rxv64 as an
additional resource; that was helpful, but it was always meant as
a pedagogical aid (and one for working engineers), not a production
system.
Still, elements of it have shown up in various places. For instance,
the exception handling code for the production bootloader on the
Oxide machine is derived from rxv64:
I believe you mean rxv64, which was a Rust rewrite of xv6, but retargeted to x86_64, instead of 32-bit x86. I keep it working,
but that project is basically done.
Yes, that's what I was thinking of.
but it's 32-bit specific and it's in C." So I did rxv64 as an additional resource; that was helpful, but it was always meant as
a pedagogical aid (and one for working engineers), not a production system.
Heh, that's cool - I didn't realize it was done for a particular reason.
That's cool, I'll have to have a look. I see a lot of posts from people associated with and about Oxide on mastodon. Sounds like an interesting place to work at.
Yes, that's what I was thinking of.
Heh, that's cool - I didn't realize it was done for a particular reason.
That's cool, I'll have to have a look. I see a lot of posts from people associated with and about Oxide on mastodon. Sounds like an interesting
place to work at.
Andrew
--- envy/0.1-6dee535
* Origin: Quinn - Random Things - bbs.quinnos.com:2323 (21:3/197)
| Sysop: | smooth0401 |
|---|---|
| Location: | New Providence, NJ |
| Users: | 5 |
| Nodes: | 4 (0 / 4) |
| Uptime: | 191:09:32 |
| Calls: | 321 |
| Files: | 617 |
| D/L today: |
4 files (7,277K bytes) |
| Messages: | 55,341 |