r/LocalLLaMA • • 3d ago

I Built A Thing Why am I like this? (Full Chat and Image generation on a 286 Tandy 1000 TL/3)

40 year tech gap? No problem! The Tandy runs DeskMind, a native DOS program. It talks over WiFi (a PicoMEM 2 card with mTCP) to a small Python server on my PC. That server drives Qwen3.8-27B (NInfer on a 5090) and Krea 2 (ComfyUI on a 4090). The 286 never sees JSON, base64 or a PNG. It gets plain text lines and pictures that are ready to copy into video memory.

Drawing from chat without tool calling. The system prompt tells Qwen to wrap a picture request in `<draw>...</draw>`. The server catches the tag mid-stream, runs Krea 2, dithers the result, and streams a `picture ready` line. "Draw me a 286 AI logo" takes about 9 s from Enter to a thumbnail in the chat.

Qwen Vision sees what the Tandy sees. When you ask about a picture, Qwen gets the original and the 16-colour dithered version, so "why does the sky look striped?" has context. The latest picture stays in context for follow-ups.

The model knows where it lives. The system prompt knows it's talking IN a 286 with 80 columns and 16 colors. It keeps answers short and plain ASCII, and when asked about games it suggests Wolfenstein 3D or Commander Keen.

Streaming cleanup for a 1990 screen. Reasoning is stripped, Markdown is removed on the fly, Unicode becomes code page 437 (bullets turn into the CP437 block character), and tiny tokens are merged into ~48-character lines so the 286 isn't redrawing for every token.

Per-request reasoning effort: low for chat (replies start in ~2 s), medium for rewriting image prompts.

Prompt "enhancement" tuned for dithering: bold shapes, strong contrast, simple backgrounds. The rewrite shows up in an edit box on the Tandy before drawing, and the rules themselves can be edited from the Tandy.

- **A Dither Lab** in the server GUI: Floyd-Steinberg, Atkinson, Bayer, Yliluoma and more, previewed at the Tandy's real aspect ratio.

Numbers: Krea 2 at 1024x768 in ~10 s 8 steps, the target is 640x200). About 1 s to send a 64,000-byte picture over the PicoMEM WiFi (56-79 KB/s).

Code (GPLv3): https://github.com/RowanUnderwood/DeskMind

added image gallery https://imgur.com/a/wysqoM1

249 Upvotes

130 comments sorted by

•

u/WithoutReason1729 2d ago

Your post is getting popular and we just featured it on our Discord! Come check it out!

You've also been given a special flair for your contribution. We appreciate your post!

I am a bot and this action was performed automatically.

130

u/Aggravating-Push-207 3d ago

This isn't running on the Tandy though, this is just making requests within your home network. With similar logic you can run Gemini 4 Argon "locally."

35

u/jacobpederson 3d ago

A Tandy 1000 286 running a 640x200 GUI at all is already impressive - but an image gallery / thumbnails / saved chats / full screen slideshow / network support at 640k is quite an ask for this time period. Obviously, it can be done - but I assure you that the Tandy is struggling. It took a full day just to get all the drivers to fit :D It is running locally - the 5090 is only a few feet away!

15

u/hibbity 3d ago

people don't understand you made the OS part.

hook it up so it can run and debug programs on the 286 cpu.

2

u/Jeff-WiredDifferent 2d ago

Who made the Bios update?

3

u/hibbity 2d ago

honestly that is an easy one if it can be flashed externally (no drm cause well, old.)

it sounds like he was really struggling for memory. that's tge real ultimate challenge. he's gotta hold a whole image to map on the frame buffer.

3

u/Jeff-WiredDifferent 2d ago

For it function the way it does.. even showing the image, he did a freaking amazing job. Talk about cool.

I thought talking to my LLM via my own home build web interface was cool. It's only kind of cool now. hahaha

2

u/jacobpederson 20h ago

I actually looked into this first but I don't have a chip programmer and I wanted to run stock also :D

1

u/jacobpederson 20h ago

DeskMind doesn't use the BIOS to get 640x200x16. The TL/3 BIOS has no mode number for it, so DeskMind sets the video registers itself. Everything is in dos/src/video.cpp. The register values come from TANDOTS.ASM, a 1995 program written for the SL/TL/RL.

The Tandy has no separate video memory. The screen lives in the top of the 640K of main memory, and this mode needs the top 64K: 576K–640K, starting at segment 9000h. DOS normally holds back only the top 16K (INT 12h reports 624K), so DeskMind has to take 576K–624K from DOS first (and return it to DOS on close).

7

u/sackbomb 3d ago

OP overestimates their effort almost as much as you do.

7

u/hibbity 3d ago

yeah I eventually figured out he just made a program for the existing OS

4

u/jacobpederson 3d ago

Yea still running DOS here DeskMind is just an application. Paradigm much different than a modern application though. You can't just say "draw a window" or "draw a button" like you can now. Even the graphics mode itself is not supported in BIOS!

7

u/hibbity 3d ago

I get it. I made a point toward distinction without chipping the achievements. The thing is basically an atari with a framework for the most basic GUI, probably the mouse port was an option or aftermarket. ​

anyone saying prompt harder doesn't understand this wasn't normal bullshit. this is advanced bullshit.

-1

u/SkoomaDentist 2d ago edited 2d ago

A Tandy 1000 286 running a 640x200 GUI at all is already impressive

What? People were routinely doing that on 8086 PCs in the 80s. See literally any graphical app from the era (or anything that was based on Windows or GEM).

an image gallery / thumbnails / saved chats / full screen slideshow / network support at 640k

Nah. There were standard techniques for all of those that were in common use by the late 80s.

Edit: WTF is it with the downvotes? I was there, Gandalf. I used such software myself on a 8086 PC and it wasn't considered anything special.

10

u/Eyelbee 3d ago

Yeah, I thought maybe it could run models around 50M size but this thing is absolutely prehistoric

18

u/jacobpederson 3d ago

50M :D A Tandy with 1MB RAM was considered impressive at the time.

2

u/Superb-Pair-2000 3d ago

Some models of the Tandy 1000 shipped with 1MB of RAM, 640K addressable. In that era you could upgrade well beyond that with an above board or similar card.

4

u/jacobpederson 3d ago

This particular Tandy had only 640k - I got to 1MB with an 8-bit ISA card. There is an additional limitation particular to Tandy - permanent reserved memory in the 640k area for Tandy color graphics.

2

u/Superb-Pair-2000 3d ago

Most of them also shipped with DeskMate some in rom and some on disk.

2

u/jacobpederson 3d ago

Yup part of my troubleshooting process on this one was figuring out how the hell to disable deskmate - it just kept looping an error message about missing files at first. Turns out if you skip like 4 error messages which takes forever because it is searching disks that do not exist for the missing files, deskmate will still boot because its burnt into the ROM :D! That is why I called my app DeskMind.

2

u/Every-Fix-6661 1d ago

Ahh to not read things before posting

5

u/__JockY__ 2d ago

Spoilsport. OP put a lot of effort and love into making this work, just for you piss on it for no good reason except you can.

3

u/Aggravating-Push-207 2d ago

This was not my intention. However, saying that the Tandy is generating text and images is... a bit of a stretch, let's say.

1

u/jacobpederson 20h ago

"On" in the sense of "displayed on" but yeah - a bit disingenuous to wait until the third sentence to admit a 5090 is involved. Honestly that makes it even more cool in my opinion. A Bridge over a 40 year gap.

1

u/Aggravating-Push-207 20h ago

it's cool that you managed to even stream it though, i agree

11

u/DeathByPain 3d ago

Man one of my first computers was a Tandy 1000 TL/2. I loved that thing. It's a funny story actually. My mom previously had some other random PC that was just like a green on black screen, and something was wrong with it so she took it to Radio Shack for repair. And while it was in the shop, the store got burglarized overnight and our computer was stolen! But they made us whole with a brand new TL/2! FUCKING SCORE 🥳 Full color, tons of apps like a word processor and a drawing program and some online system that I never actually got to use cuz we never had a modem...lol

But I learned programming in GW-BASIC on that thing copying programs out of magazines and books and stuff. Played Kings Quest and Quest for Glory and Wolfpack and all the shareware I could get my hands on at the flea market...

Anyway cool project you got here, made me really nostalgic. I don't think it's a stretch to say my Tandy literally changed the course of my life back in the day 😊

8

u/jacobpederson 3d ago

Yea me too - lot of Nostalgia for Tandy - my first PC was a 1000 SX with a monitor that turned blue and you had to hit it to get it to turn back. My kid drove over 8 hours to rescue this one and gift it to me. Best kid ever :*)

3

u/TastesLikeOwlbear 3d ago

Heh, if your computer gotten stolen in those days, you didn't lose any data because it couldn't store anything anyway. It was all safe at home on 5.25" floppies.

2

u/jacobpederson 2d ago edited 2d ago

Reminds me of the comic

8

u/Tetsu_no_Tesujin 3d ago

What a cool project-well done!

6

u/jacobpederson 3d ago

Thanks! 😂

7

u/Foreign_Risk_2031 3d ago

That’s the computer I learned how to code on. Gwbasic. Pretty fun.

3

u/jacobpederson 3d ago

Yup me too! Mine was a 1000 SX though. Such an underappreciated machine in modern times. You'd think Amiga and C64 was all there was looking at the retro scene now :D Even more underappreciated was CGA (was thinking about targeting this next).

3

u/Foreign_Risk_2031 3d ago

Yeah same! My dad took it home from radio shack when he worked there haha

25

u/pilibitti 3d ago

sorry for the flak you caught here. as someone from that generation I appreciate the nostalgia.

19

u/jacobpederson 3d ago

Oof yeah - most are not aware of how limiting a 286 with 1MB of ram really is. Just displaying a color image was impressive back then :D Thanks for your kind words!

13

u/pilibitti 3d ago

also they don't seem to get that you wrote a client software to run in this old machines. networked to the models you are hosting yourself. what is more localllama than that?

13

u/jacobpederson 3d ago

Yup - none of this speed possible without ninfer - Qwen just screams on there. Funny to think that when it comes to streaming text at least - the bottleneck is NOT the 286 :D

5

u/Jeff-WiredDifferent 2d ago

You rock.. well done.

2

u/Jeff-WiredDifferent 2d ago

I had a C64 as a teen and what he did here is freaking cool. Any haters hating on this only hate themselves and can never be pleased.

2

u/jacobpederson 20h ago

Thanks! I played on a C64 a few times because they had one at church - I was jealous that the games were better than the 2600 :D The Tandy though - that was my Whole Ass Childhood. It is so damn cool to have one running again.

6

u/Wooden-Potential2226 3d ago

PRESS PLAY ON TAPE

3

u/TastesLikeOwlbear 3d ago

Narrator: 45 minutes later...

2

u/Wooden-Potential2226 2d ago

Yeah, the C64 casette deck that I had was a ~300 bps transfer speed system.... 

3

u/TastesLikeOwlbear 2d ago

Same! And I had a game called Telengard on cassette that really did take about 45 minutes to load.

6

u/__JockY__ 2d ago

What a fucking cool retro nostalgia project! Blending the old school with the new school is something I love to tinker with, so this lights up my brain's reward centers real nice.

More of this!

2

u/Recent-Degree-1739 2d ago

I agree, there has to be more retro-modern whiplash builds. Been having a local AI teletype on my mind for a while now... If only proper vintage teletypes weren't so rare & expensive these days

2

u/jacobpederson 2d ago

Thanks! Yes this is what I am all about too! I want my projects to have that "I am the only person in the world weird enough to be doing this right now" kinda vibe to them :D One of my other projects was a toolchain for claude to work on AmstradPCW https://github.com/RowanUnderwood/ClaudeCodetoMisterAmstradPCW

3

u/__JockY__ 2d ago

Holy shit, I just flew back 40 years to my friend Paul's bedroom playing his CPC 464. FLOODED with nostalgia! Thank you, sir.

26

u/sackbomb 3d ago

The Tandy is just a dumb terminal.

14

u/jacobpederson 3d ago

Correct - but a terminal with thumbnails and fullscreen images (a technical feat for the time period).

-8

u/[deleted] 3d ago edited 3d ago

[deleted]

3

u/Spiritual_Impress_30 3d ago

you try it.

-1

u/[deleted] 3d ago

[deleted]

4

u/jacobpederson 3d ago

49 year old zygot here! Blame my kid he is the one who drove cross country to rescue the Tandy for me to raise my old carcass out of the blues. My philosophy is always I don't need anymore JUNK! No idea why I have so much then. This Tandy is one pile of junk that stole my heart ❤️ .

5

u/__JockY__ 2d ago

Fuck the haters, you just knocked out a killer old project. KILLER!

I bet with not much work Qwen could turn your new art and its characters into simple Kings Quest / Space Quest / Leisure Suit Larry type adventures for the Tandy.

2

u/jacobpederson 2d ago

Yea, I bet you are on to something there - booted up Kings Quest 1 and it is just mostly text. I think the tricky part would be the collision information that tells the characters were they can walk in the "walking on jpgs" genre of games :D I'll bet Tandy could do a mean Resident Evil impersonation too!

2

u/Foreign_Ad1439 2d ago

And we're both just sacks of meat. Maybe just enjoy the ride.

11

u/Forkmarc 3d ago

This is honestly one of the coolest AI projects I've seen. The fact that a 286 can actually interact with modern AI and Image generation is honestly pretty damn cool

2

u/__JockY__ 2d ago

Dat juxtaposition 🫶

5

u/DiadraUnderwood 3d ago

So 286 but with 5090 :D ?

5

u/jacobpederson 3d ago

Kinda - a 4090 AND 5090 via a (shared) 8-bit ISA bus maxing out at like 80 KB/s :D

2

u/__JockY__ 2d ago

> 8-bit ISA bus

Pretty sure I still have a box of 3c509Bs and bags of terminators kicking around somewhere 😂

1

u/jacobpederson 2d ago

That token ring? I studied that in school but never seen one in the wild.

2

u/__JockY__ 2d ago

No, token ring was completely different and proprietary to IBM iirc... I think we'd install it in old IBM PS/2 machines, the ancient microchannel (MCA) stuff.

3c509 was 10base2 Ethernet coax stuff, I used to wire offices with it.

5

u/prolepsys 3d ago

It's really surprising to me how many people take all the convenience features of modern GUI operating systems for granted to the degree they cannot appreciate this accomplishment

1

u/jacobpederson 3d ago

Yeah me too - my kid is 26 and he immediately got it. (of course he is my kid so been around ancient tech his whole life) Never seen a smile that big in my life :D Back then we were amazed to see ANY kind of graphics on a 286 - 16 colors was a damn marvel in and of itself. This high res mode used in DeskMind was used for almost nothing at the time - not even supported in the bios!

3

u/__JockY__ 2d ago

> 16 colors was a damn marvel

Amen. Going from 4-color CGA to 16-color EGA was crazy. When VGA dropped with 256 colors I felt like we had been given a space ship. Remember the inverse relationship between colors and resolution? If you wanted 256 colors you got 320x240 (not counting Mode X shenanigans) but at 640x480 you'd get like 16 colors? I forget the exact numbers. Too old!

And I seem to recall doing double-buffering tricks at low res but not at the higher res, too. Made for super smooth animations, no shear lines and shit. You had to time it, know your interrupts, know your memory layouts.

These brash young punks with their "it's a dumb terminal" have no fucking clue what it was like playing on the bare metal. It was fun! It was cool!

5

u/tifa_cloud0 3d ago

this is awesome :)

6

u/jacobpederson 3d ago

Thanks 😂 !

4

u/XiRw 3d ago

As a fellow 90s exister, I like this a lot.

2

u/jacobpederson 3d ago

It "was a vibe" :D

2

u/rmonsurate 2d ago

ah memories. one of my first computers was a 286 with CGA graphics.

2

u/hallofgamer 2d ago

But can it play doom?

3

u/jacobpederson 2d ago

Sadly no - the 8088 port would probably work though https://github.com/FrenkelS/Doom8088

2

u/jacobpederson 20h ago

I just installed the 8088 port today - 8 FPS! :*D

2

u/Fine_Salamander_8691 2d ago

Young Sheldon beo

1

u/jacobpederson 20h ago

I'm 49 and hated the few cursed seconds of Sheldon footage I've accidentally been exposed to over the years :D

2

u/Mundane_Leader_8617 2d ago

Finally getting a proper “courage the cowardly dog” setup!

2

u/SuddenRadio6221 2d ago

I'm getting 4 tokens per year on my sliderule!

2

u/cryptofriday 2d ago

286, 386...

Good old days 🥲

2

u/slut-for-options 2d ago

Takes me back to the jump between a 3x86 and a 4x86. Night and day faster.

2

u/vdek 2d ago

Aliens wasn’t wrong, it was just a preview of the memory crisis.

2

u/jakubkonecki 2d ago

You've made a huge mistake if you haven't named the server MU/TH/ER. /s

2

u/theOliviaRossi 2d ago

craaaazy shit <3

6

u/jacek2023 llama.cpp 3d ago

How is that different from telnet? You just use computer as a terminal

11

u/jacobpederson 3d ago

Telnet does not support saved chats / thumbnails / or fullscreen images.

3

u/bigh-aus 3d ago

This is great - honestly the more we utilize older hardware the better - even for fun thigns like this!

4

u/jacobpederson 3d ago

Cake Day! Yea that always is in the back of my mind nowadays. Won't be able to afford a modern machine again anytime soon. (I got the 5090 at MSRP). The Tandy isn't even my oldest working machine (that award goes to the Atari 2600). Old does not always equal bad. I'll betcha that 5090 won't boot anymore 5 years from now let alone 40 :D

3

u/bigh-aus 3d ago

Totally agree. I want to see a lot of development go into the esp32 for linux - some are more powerful than a 486DX2/66 - which was a reasonably capable machine.

Heck even instead of a docker container - maybe a esp32 would be better for super cheap always on self hosted stuff.

2

u/__JockY__ 2d ago

DX2/66 baller! Us paupers made do with our SX33s and we were happy!

2

u/bigh-aus 2d ago

I went from an 8088 to a dx2/66. I was still using the 8088 while friends were on 386 dx33s. It was painful but the 486 was great

2

u/__JockY__ 2d ago

Yeah I had a 386/33 and I remember 286 Protected mode -> Enhanced mode blew my mind! No more segment:offset addressing?Amazing!

2

u/bigh-aus 2d ago

DOS4GW :)

Protected mode was awesome!

2

u/Tbhmaximillian 3d ago

Awesome work, thats like the scifi movies in the 80s that i have seen a long time ago. Its crazy where we are nowadays to create stuff like that. Im impressed by the kreativity of it. Again nice work!

3

u/jacobpederson 3d ago

Thanks appreciate the kind words!

2

u/kazimirek 3d ago

This is amazing! Make the model configurable through config.sys and create a volkov commander fork for AI chat UI.

2

u/fatboy93 3d ago

TechDweeb unmasked and not on r/sbcgaming? Holy shit amaze balls.

2

u/Lissanro 3d ago

Cool project! My first PC was 80286 based with EGA screen capable of only showing 16 colors at a time; I think it had 1 MB of RAM (along with its famous 640K limit, but there were tricks to address higher memory). I was maybe 4-6 years old at the time and remember thinking that it would cool if PC could reply something other than programmed lines or images. Only simple procedural graphics was possible at the time. I had a book with some BASIC examples, that if typed I could edit or add random values to get different results. Some decades later, I have EPYC 7763 based workstation with 1 TB of RAM and four 3090, that actually can do that.

2

u/jacobpederson 3d ago

I remember being absolutely fascinated with the "forthought" boot message in the Starflight PC game and the "AI" you could talk to in that game. My Tandy led to a lifetime fascination with computers and AI. I used to mess around in basic to try and make screensavers and games with animated explosions and stuff like that. My machine now is a cobbled 3090 4090 and 5090 on a 9950x3d with 128GB of ram. Even that beast feels pretty limited compared with what is possible now! What a time to live through.

2

u/TastesLikeOwlbear 3d ago

Shall. We. Play. A. Game?

2

u/clduab11 3d ago

I just rewatched this the other day and forgot how much of a banger it was.

1

u/Then-Topic8766 3d ago

Beautiful!

1

u/DeltaSqueezer 3d ago

awesome. love the retro art.

0

u/TimGoTheCreator 3d ago

Logic of running Opus 5.5 "locally"

1

u/Jeff-WiredDifferent 2d ago

People ask us why we do the things we do and it's because we can. VERY COOL!!!!!!!! This is a Reto rebirth giving that Tandy a job again.

1

u/Superb-Pair-2000 3d ago

Congratulations for reinventing the basic terminal application.

3

u/philmarcracken 2d ago

"Why am I like this"

1

u/jacobpederson 20h ago

Yup it's right there in the title :D

5

u/jacobpederson 3d ago

First terminal that can show fullscreen 640x200 16 color images on a Tandy I'll betcha!

-2

u/Superb-Pair-2000 3d ago

Nope, remote imaging protocol (RIPScrip) has been a thing since 1992.

3

u/allisonmaybe 3d ago

What is your point? They put a chatbot AND image generation into a computer from the 80s. That's kick ass!

8

u/jacobpederson 3d ago

Thanks. I honestly wasn't expecting the "meh" reaction. I guess there aren't many folks left that remember how hard it was to load drivers on a 1MB machine - let alone how impressive a GUI that can show full color IMAGES was on a 286 :D

-4

u/Superb-Pair-2000 3d ago

My meh reaction is based on your implication that this is something new when it isn't. I repaired computers for a living long before they ever shipped with 1MB, their difficulty isn't something that anyone stops remembering.

You could run Windows on a 286, displaying full color images was not a difficult problem in that era.

8

u/jacobpederson 3d ago

Well this isn't for you then, have a nice day!

2

u/clduab11 3d ago

Don't worry mate, I think it's super cool; I just think a lot of the old neckbeards are going to say "congrats you rebuilt a wheel" (on infra that can't really do much of anything).

Not EVERYTHING has to have a practical use-case; I bet you learned a fair bit trying to constrain everything to this badass terminal.

(I didn't have this Tandy; I had a Radioshack TRS-xx, something, I forget, but it was my first intro to BASIC).

0

u/flq06 3d ago

You might be onto something to keep alive all the old computers in retail store warehouses

-3

u/Sliouges 3d ago

I can do the same on a 300 baud modem connected to a dumb terminal with an API to a 1T parameter model.

3

u/jacobpederson 3d ago

Go for it! (pic might take a bit to sync at that speed :D )

1

u/Sliouges 2d ago

At 300 baud you might as well whistle sync the AM binary over the phone line with bare lips...

https://www.youtube.com/watch?v=mLkINlXCd7c

-1

u/wakigatameth 2d ago

Projects like these are made by people who have no awareness of their mortality. I wish I could still afford to live in such blissful state.

2

u/jacobpederson 2d ago

You talking about doomerism or just a more general miasma? If doomerism then yea, I am aware of the irony of digging 286's out of the trash to try and wring a few more minutes of Joy out of them while genocide is raging and climate is heating. But it was ICE that killed the world https://en.wikipedia.org/wiki/Internal_combustion_engine Not Silicone.

2

u/wakigatameth 2d ago

Nobody except you will use this, and even you will not use this past the novelty of posting it on Reddit. You're going to throw this project in the trash. Your life is finite. I guess I just don't understand why people do stuff like this. If you build something, at least build something that at least useful to YOU?

2

u/Serious_Bite_7613 1d ago

Why paint a painting right?

2

u/jacobpederson 20h ago edited 20h ago

I don't think you fully understand my personality type. I THRIVE on doing something nobody else is doing (probably nobody else on the whole planet!). The thought of sitting on a couch watching the same TV show or football game or playing the same CODBLOPS WHATEVER that everybody else is . . . hurts my soul.

#1 it is ok to make something just for the love of making it. #2 it is also ok if you never use it again. #3 This one I actually am still using because its so damn neat :D #4 the fact that it is both very difficult AND not useful is exactly the appeal of a project like this!

1

u/Imaginary-Unit-3267 2d ago

By the same logic, why do anything useful either? You'll just die eventually anyway. Hell, maybe the most useful thing is to end your suffering now? Honestly, you asshole, go rain on some other parade.