Advertisement · 728 × 90

Posts by

Post image

Accidental Server Renaissance

2 months ago 2 0 0 0

My old unRAID-based NAS started failing so I bought an older QNAP NAS to replace it and run TrueNAS and now I have two problems

3 months ago 1 0 0 0

I hope the open-source fork lives on tbh. I honestly had no idea this was going to happen!

4 months ago 2 0 0 0

Thanks! It was pretty heartbreaking. I put a lot of love into those rust crates. I hope the code continues to live on in a community fork at least. I had a lot of big plans I hoped to land over time!

4 months ago 1 0 1 0

Mine refuses to believe that my coffee is not hers. What cat likes coffee???

4 months ago 1 0 0 0

Belongs in the halls of honour alongside all the cursed Aliexpress adapters.

4 months ago 2 0 0 0

We did a legit evaluation matrix against all the other major options and even just past 1.0, it beat out Go and everything else we could throw at it for a mobile library.

4 months ago 2 0 0 0
Post image

All of this gives you the beautiful amber (or green!) glow and the crisp font of a VT420.

5 months ago 0 0 0 0

What I find amazing is how the video hardware of the VT420 seems to be able to decode this messy font situation without any real stress!

5 months ago 0 0 1 0

The worldwide terminal loads approximately ~400 characters into RAM, in both 80 and 132-column versions for whatever sizes are active. These get reshuffled into the various NRC and other language/technical character sets.

5 months ago 0 0 1 0
Advertisement

But not quite enough! Instead, the 48-line custom font of screen 2 gets unceremoniously shoved into video RAM along with the page memory. 10x16 and 6x16 fonts get dedicated areas of video RAM, but the other custom font sizes are interleaved between the currently-loaded smaller on-screen font.

5 months ago 0 0 1 0

The fonts (built-in and custom-downloaded ones) are interesting as well. There's _almost_ enough RAM to store them all in a single 0x8000 block of RAM that gets mapped over top of SRAM.

5 months ago 0 0 1 0

I believe there are 108 "live" page-data rows in VRAM + 9 paged into unused space + 27 rows in SRAM, give or take a bit. Each row has 72 chars of 5-bit character + 3-bit attribute data, plus another 60 chars of the same, and finally 132 spaces of additional 2-bit data.

5 months ago 0 0 1 0

There isn't enough RAM to hold every single one of the 144 lines of page data in Video RAM. Instead, the VT420 "pages" some of it out to an unused portion of the row memory and SRAM as you scroll. There's 9 lines stored in the middle of each text row, and the rest of the lines get paged out to SRAM

5 months ago 0 0 1 0
Post image Post image

I started working on a visualization of the VT420's Video RAM for anyone interested in how it works. The way that it packs data into 64kB is fascinating. _Most_ of Video RAM is fonts or line buffers, but it's not straightforward.

5 months ago 0 0 1 0

I've only heard a few things about Salsa but I would love to know more about their experience with it.

5 months ago 0 0 1 0

Most uses come down to env initialization, libc or C FFI calls for setup, registration via functions, or collection of function pointers, at least the last time I looked.

I need to see if any new patterns showed up in the new dependent crates!

5 months ago 1 0 0 0

There are a lot of cool macro crates that incorporate it internally as a way to perform function registration -- napi is one IIRC.

I looked through the dependent crate list and now I'm terrified about making any changes to the crate. I think ctor was recently picked up as a dep in a few bigG crates

5 months ago 2 0 1 0

Disappointed there was no spoiler option for changing the language grammar to Go-style types.

5 months ago 0 0 1 0

The trick is that it has just enough proc macro to delegate to a standard macro where the heavy lifting is done.

5 months ago 2 0 0 0
Advertisement

The ctor name is basically stolen from the ELF section it generates.

5 months ago 1 0 1 0

That's my crate! And despite that, I really hope one day the Rust core team subsumes it into a proper Rust compiler feature.

5 months ago 2 0 2 0

This is my crate. :) The proc macro is entirely hand coded, no syn, so it runs in almost no time at all.

5 months ago 2 0 2 0
What's that other port for on the JetKVM?
What's that other port for on the JetKVM? YouTube video by Paleotechnica

Short video this month: building a little JetKVM accessory to turn a computer on and off! www.youtube.com/watch?v=32uR...

5 months ago 1 0 0 0

I did this on rust-ctor for a bit, but reverted to a stub proc macro that delegates to a real macro after a while. I think it's a worthwhile idea but the lack of a "cargo gen" command is what kills it IMO.

5 months ago 1 0 1 0

I suspect I'll find a use for this. Nice crate!

5 months ago 1 0 1 0
Video

I think this VT420 emulator might actually be going somewhere.

5 months ago 1 0 0 0

Sooooo long story short it was actually a bug in my 8051 emulator

5 months ago 0 0 1 0
Advertisement
Video

There's a point in every emulator's life where you've got enough emulated that you can actually start to see the whole thing working together. Say hello to Blaze, a VT420 emulator written in Rust!

5 months ago 1 0 0 0

Ah! I misunderstood. Totally makes sense.

FWIW I think it would be awesome if rustdocs _could_ generate a stable JSON output format for other shenanigans, however. :)

5 months ago 1 0 0 0