xt
out there? Does anyone know? I did not find anything for "xt/0.0.1".
@lyse@lyse.isobeef.org No idea and I don’t have that in my logs. 🤔
@prologic@twtxt.net There are still people who prefer it over Git. I mean, OpenBSD even still uses CVS. I don’t understand why, but they say it works fine for them … 🤷
@prologic@twtxt.net Yep, I saw this a few days ago. 😃 Haven’t had a closer look yet. But before I wrote my own editor, I considered porting SVED
. 😃 (Couldn’t do it, because they use features that my kernel doesn’t have.)
But why, oh why, would people still use SVN these days. 🥴😅
This looks like something @lyse@lyse.isobeef.org might enjoy building: https://imgur.com/gallery/balancing-fisherman-tutorial-YNnsTh1
@lyse@lyse.isobeef.org I think I already posted this last year, but this is how NYE sounds like for me:
https://movq.de/v/c0084b64f9/MVI_8118.ogg
I live in a tower building and there are no objects (like trees or other buildings) to “dampen” the sound. All the explosions sound massive, extra loud, and very uncomfortable. Also notice that there’s no music or people cheering. Just explosions. I haven’t lived through a war in our country (yet), but I guess it’ll sound something like this. 🫤
2024 was okay for me, but 2025 is gonna be real shit. 😂 So much annoying stuff coming up. Gotta enjoy the moment, who knows how long it will last. 😅
Happy new year, you guys. 🥳
@prologic@twtxt.net Yes, it’s all written from scratch, but most of it is written in C (not Assembler) and having a C standard library available helps a lot. It’s not that different from writing a program for DOS, just the syscalls are different. 😅
@lyse@lyse.isobeef.org Scrolling the viewport was the most annoying part. 🥴 The code also assumes that it is running on a “fast” PC. There are no “elaborate” data structures like a gap buffer. (But it does use dynamic arrays, which Wikipedia lists as a special case of a gap buffer. 🤔)
To display text on the screen, the editor writes directly to video memory (https://wiki.osdev.org/Printing_To_Screen). This is a blessing and much easier than fiddling with escape sequences. I wish you could do something like that on a Linux terminal.
Okay, this is pretty cool. My 8086 toy OS running on my old Pentium from an actual floppy disk. 😍 I just love that sound and the feeling of using floppies. This brings back so many memories from my early DOS days.
The cp-unopt
program copies a file and intentionally uses small unaligned reads/writes (hopefully triggers more bugs).
The I/O cache works “okay-ish”, I guess. When sha1
runs, it has to do a few reads for the first file and basically none for the second one. Both could have been served entirely from the cache, theoretically. (But even just having an I/O cache in the first place speeds up things dramatically.)
Notice how there’s an EA
file. That’s a left-over from OS/2, because I copied some files to the floppy using OS/2. In other words, my FAT12 implementation survives OS/2 writing to it. 🥳 (But I guess it should show up as EA DATA.SF
. My current code starts at the left and stops at the first space.)
https://movq.de/v/d4d50d3c74/los86-on-p133-from-floppy-small2.mp4
Luckily, it’s illegal to sell fireworks other than after the last three days in the year.
Interesting, didn’t know that. According to the following link, it’s even illegal to use it other than 31./1.: https://www.anwalt.de/rechtstipps/wann-wird-feuerwerk-zur-straftat-alles-was-sie-fuer-silvester-wissen-muessen-235257.html
Nobody knows that, apparently. 😂
@lyse@lyse.isobeef.org Certainly the last thing for this year. 😅 (How is this possible? Christmas already over and tomorrow is 2025? Time flies. 😩)
Made a little text editor for my 8086 toy operating system today. It can’t do much, but it allows for some basic editing. 💾
That was probably the last “big” thing I did for that OS in the near future. Vacation is coming to an end.
@prologic@twtxt.net Indeed, I’ve gained a lot more respect for Linux/BSD and DOS. 😃
@lyse@lyse.isobeef.org Oh, ah, that’s quite a lot of zoom. Still, 4m feels really close. Were you behind a bush? 😃
It’s getting Winter-y. Here’s that tree again: https://movq.de/v/07262a1e12/IMG_20241229_142030.jpg-small.jpg
@prologic@twtxt.net Something along those lines, yeah. And/or some generic cache for disk sectors.
@prologic@twtxt.net Lots, I guess. 😅 The kernel keeps almost no state between syscalls, so when you want to read the next byte from a file, it has to do all the work from scratch: Locate the file in the directory and traverse the cluster chain until you’ve reached the next byte. It’s easier to code this way, but obviously much slower. And the userspace program cp
could read/write in multiples of 512 – it currently does not do that, intentionally, because if everything is a multiple of 512, you’re less likely to discover bugs. 😅
(This issues a lot of BIOS calls, that’s why it’s so slow.)
That FAT12 implementation is very naive and unoptimized. You can see in this video that it takes about 7 seconds to copy a ~10 kB file: https://movq.de/v/fbf2b90ce1/los86-fat12-copy.mp4 🥴 I kind of like that, though, because it feels a little bit like an old machine. 😅🤪
(Yay, fixed. The bootloader assumed that the SS
register gets initialized to 0, which wasn’t true on that laptop.)
@prologic@twtxt.net I’m still a newbie at this myself. 😅 For example, I just noticed that it no longer boots on my old laptop after I rewrote the bootloader. 🫤
@prologic@twtxt.net Dunno, I don’t feel comfortable with it. I want this to be my private little pet project, instead of it being out in the open. 🤔
I uploaded a tarball, so you guys can take a quick look, if you like: https://movq.de/v/cc07a4203b/los86.tar.gz
@mckinley@mckinley.cc Thanks!
@prologic@twtxt.net I might do it some day. 😅
After taking a short break for Christmas business, I’ve worked on my little toy operating system for the 8086 again.
It understands the basics of FAT12 now. I’ve actually never sat down before to learn how FAT works. 🤦 Well, better late than never, I guess.
It can’t do subdirectories nor timestamps and I probably won’t implement that. One flat directory is good enough for my purposes and the OS has no notion of time, yet, anyway.
It’s really cool to be able to exchange files with the Linux host or other DOS VMs. 🥳
@lyse@lyse.isobeef.org Have you got a zoom on your camera now? That looks very close for a heron. 🤯
Looks like a lovely day indeed. We only had fog all day and I was too lazy to go outside. 😂
groff
+ mom
to typeset generalist PDF (not manpages). It’s my nerdy project for the time being, and it grew quite larger than I anticipated (it probably will have 40 pages when finished)… not because groff
is hard, but because my goal is people who never touched a formatting language, so I have to cover the basics.
@emmanuel@wald.ovh Oh, that’s going to be interesting. It’s been a moment since I’ve used groff.
@lyse@lyse.isobeef.org Also happens to me a lot, but sometimes it works. 🤔
I loved to watch the “Curiosity Show” when I was a kid (the German version, of course – to this day, nothing in German television is in English, it’s all dubbed horribly). And it’s on YouTube now! 🥳 https://www.youtube.com/@CuriosityShow/videos
If you don’t like Advent of Code because it’s just more programming on top of your day job, I’d like to suggest doing the following days in isolation:
And maybe even:
The first two can be solved by creativity and exploration, they’re not just “use algorithm $foo
” like many other puzzles. They require hardly any programming at all.
The other two do need a bit of programming, but 2024/14 was pretty interesting and unconventional.
@lyse@lyse.isobeef.org Yeah, I feel the same way, although it’s hard to tell in retrospect after so many years. 😅 Maybe our teachers actually did a good job and I just didn’t get it back then. I wish I could go back in time and re-watch all that, to see what it was actually like. 😃
@arne@uplegger.eu Aye, works fine now. 😊
@prologic@twtxt.net Maybe, yeah. HackerNews frontpage = at least 50’000 hits in a short time, when it happens to me.
twtxt was on HackerNews yesterday and I think none of us noticed. 😂 https://news.ycombinator.com/item?id=42488983
@lyse@lyse.isobeef.org (I think “division is just repeated subtraction” is a great explanation of what division is on a fundamental level. 🤯 Well, if they did explain it that way in elementary school, I didn’t listen that day. 😂)
@prologic@twtxt.net Ouch. Any insight on who that was? Or just random IPs?
@lyse@lyse.isobeef.org Oof, that is impressive!
@lyse@lyse.isobeef.org Hmmm:
Could not fetch: HTTPError('403 Client Error: Forbidden for url: https://uplegger.eu/twtxt.txt')
🤔
@xuu@txt.sour.is It uses “North American Mode” by default, it seems (says the source code). cal -mw 2024
switches to ISO 8601.
(Everybody should use ISO 8601 or at least RFC 3339!!1!11! 😅)
@lyse@lyse.isobeef.org That must have been “Between Interval - Radio Silence” playing in the background: https://www.youtube.com/watch?v=WIzhpg01Faw&list=PLApmGFOVPZhko_EIfnvcPVdqXSklqJTIq (I didn’t pay attention to audio, sorry. 🥴)
2024 was a funny year: The year begins and ends with calendar week 1:
The one in January being 2024-W01 and the one in December 2025-W01.
🤓
(Hmmm, my printed LaTeX calendar using tikz-kalender gets it wrong or uses different week definitions. It shows next week as 53. 🤔)
So, just a hobby. It won’t be big and professional like GNU, then?
Ha! 😅 No, that certainly won’t happen this time. 🥴
(What an exciting time that was when there were new operating systems. 🤔)
Improving the filesystem is probably going to be the next big task. I don’t know that much about this stuff, so I’ll have to learn a lot. 🥴
@prologic@twtxt.net 😃 It surely was/is one of the most fun projects recently.
@bender@twtxt.net Heh, crazy. Here in Germany, they make you pay good extra money for that. I get a new IP every time my router connects to the internet.
I’ve been making a little toy operating system for the 8086 in the last few days. Now that was a lot of fun!
I don’t plan on making that code public. This is purely a learning project for myself. I think going for real-mode 8086 + BIOS is a good idea as a first step. I am well aware that this isn’t going anywhere – but now I’ve gained some experience and learned a ton of stuff, so maybe 32 bit or even 64 bit mode might be doable in the future? We’ll see.
It provides a syscall interface, can launch processes, read/write files (in a very simple filesystem).
Here’s a video where I run it natively on my old Dell Inspiron 6400 laptop (and Warp 3 later in the video, because why not):
https://movq.de/v/893daaa548/los86-p133-warp3.mp4
(Sorry for the skewed video. It’s a glossy display and super hard to film this.)
It starts with the laptop’s boot menu and then boots into the kernel and launches a shell as PID 1. From there, I can launch other processes (anything I enter is a new process, except for the exit at the end) and they return the shell afterwards.
And a screenshot running in QEMU:
@prologic@twtxt.net Exactly. 😂
Props to you if you can easily spot the scrollbar in this picture: