Norbert Landsteiner
masswerk.at · Personal blog · on HN since 2008
Norbert Landsteiner runs a personal site of retro computing projects, including emulations of the PDP-1, ELIZA, a 6502 reference and old terminal typography.
What HN saysCommenters call it a personal site with amazing retro projects and cite its work on how DEC terminals rendered fonts.
116HN people shared it
61linked it in comments
127stories submitted
3.8Kstory points
3 months agolast shared
2008people per year2026
Most-shared posts
- 1Virtual Punch Card Creator11 people · 92 points · first shared 2012 · 17 comments on HN
- 2Raster CRT Typography According to DEC9 people · 300 points · first shared 2019 · 53 comments on HN
- 3The original "Spacewar!" running on a virtual DEC PDP-19 people · 230 points · first shared 2012 · 23 comments on HN
- 4Eliza (Elizabot.js)8 people · 6 points · first shared 2014 · 1 comments on HN
- 56502 instruction set8 people · first shared 2012
- 6Search, Mad Men style: A complete IBM 362 Google interface in the browser6 people · 501 points · first shared 2012 · 73 comments on HN
- 7JS/UIX - a unix-like OS written in javascript6 people · 73 points · first shared 2009 · 23 comments on HN
- 8ELIZA Talking – HTML5 Speech I/O Demo6 people · 57 points · first shared 2013 · 13 comments on HN
- 9Show HN: Virtual Card Read-Punch – Punch, Read, Execute Virtual Punch Cards5 people · 48 points · first shared 2019 · 8 comments on HN
- 10Inside Spacewar a Software Archeological Approach to the First Video Game5 people · 5 points · first shared 2014 · discussion on HN
- 11Google BBS Terminal – What Google would have looked like in the 80s4 people · 400 points · first shared 2012 · 77 comments on HN
- 12Space Invaders 4044 people · 179 points · first shared 2012 · 68 comments on HN
- 136502 “Illegal” Opcodes Demystified4 people · 90 points · first shared 2021 · 41 comments on HN
- 14Before the Demo Scene: The Minskytron and Other Early Graphic Demos4 people · 18 points · first shared 2015 · discussion on HN
- 15MeSpeak.js Multilingual text to speach4 people · 8 points · first shared 2013 · 1 comments on HN
What HN people wrote when they linked it
Aragorn2331 · 2022-06-12
https://www.masswerk.at/ A personal website with amazing retro projects
masswerk · 2020-10-15
It's just a small site that has been out there for some time. I kicked out any analytics for good some time ago, so I do not have any reliable data myself. There have been times with hyped content collecting millions of hits in a few days, but those have been years ago. (Then, this only resulted in offers for buying the domain, for, what I can only guess to be business of varying trustworthy.) I added a blog two years ago with rather infrequent post activity. The content is quite specialized and probably far from general interest. Ad revenue from a few Google adds sprinkled here and there is about nil. Currently, Google search stats indicates varying performance from 1 to 1.5 M impressions and about 20 to 30 K clicks at the beginning of the year and a rather steep decline towards the summer. (Only estimated pages with first impression are slightly up. I've actually no idea what these figures do indicate nowadays, whether there's anything noticeable about them or not.) Ironically, the mails started, when the performance was going down. (Full disclosure: https://www.masswerk.at/)
mjaniczek · 2025-03-03
An exploration into how the old VT220 terminals rendered font glyphs.
Follows advice from the classic two texts:
- VT220 Built-in Glyphs - https://vt100.net/dec/vt220/glyphs
- Raster CRT Typography (According to DEC) - https://www.masswerk.at/nowgobang/2019/dec-crt-typography
Source code at: https://github.com/Janiczek/vt220-font-emulation
Originally I wanted to use WebGL but then in the name of getting something on the screen chose to render with DOM divs. Efficiency gods forgive me.
Dove into this after getting an old monochrome amber CRT myself and being fascinated with the aesthetic. It’s definitely a vibe :)
082349872349872 · 2023-12-19
No, it was defo in one of the two places I mentioned, but The Story of Mel is great.
I like how they called them desk-sized not because they were the right size to sit on a desk, but because they took as much floor space as a desk:
https://www.masswerk.at/nowgobang/images/lgp-30-features.jpg
EricE · 2022-05-18
Indeed - I'm still sad I sold my Atari - I even had the disk drive and official Atari cassette drive :/
My favorite trip down nostalgia font history was replacing my terminal font with a VT220 font. Creating a realistic font isn't as easy as one would assume: https://www.masswerk.at/nowgobang/2019/dec-crt-typography
int_19h · 2020-06-23
This is totally offtopic, but if you don't mind me asking - are you the owner of https://www.masswerk.at/? If so, I just wanted to say thank you for hosting the ALGOL 60 papers there.
dmd · 2020-01-25
Masswerk has a great writeup[0] about how to render these fonts correct you need to take into account phosphor decay times and dot stretching.
[0] https://www.masswerk.at/nowgobang/2019/dec-crt-typography
ohiovr · 2019-10-13
Emulators support nearly everything. I can even run a TI994a program on a PC, Mac, or Linux. If you can't run emulators on Mac that is sad news to me. Maybe bad example, it was technically 16 bit, but it was well over 30 years old. Here is a pet emulator: https://www.masswerk.at/pet/
Just the other day my brother told me he met a really talented graphics designer that still primarily uses some 25 year old sign design software. Never heard of it before, and don't remember the name.
We balk at having to pay monthly for software we bought over 10 years ago and even today we'd not miss any new features offered. Great artists (I'm not one of them) can produce great visuals. Limitation can be better for creativity than no restrictions for some anyway.
kingbirdy · 2020-02-18
Great article. I was curious about the game mentioned towards the bottom:
> At M.I.T. next door to Draper, some of the undergraduates play a game called “Space War.” To play “Space War,” you need a television screen, a computer, and a working knowledge of Newtonian physics. The TV screen shows a planet surrounded by spaceships. Each player fires torpedos from his spaceship, aiming them according to the laws of orbital dynamics. The torpedos must destroy either another spaceship or the planet. The game is enhanced by programming the computer to include such factors as time warps, so that a spaceship can disappear “for years.”
Thanks to the magic of the internet, I found a few versions of the game (actually called "Spacewar!"[0]), both the original[1] without time-warp and the more advanced version described in the article which includes it[2]. However contrary to the article's description it seems only the ships follow Newtonian physics, the projectiles always travel in a straight line, and I wasn't able to blow up the star or planet you're orbiting, though perhaps a version with these features exists and I simply wasn't able to find it. Interestingly, the circular layout isn't just for the game, the screen of the PDP-1[3] Which ran it was circular because it was originally a radar screen!
[0]: https://en.wikipedia.org/wiki/Spacewar%21
[1]: https://spacewar.oversigma.com/
[2]: https://www.masswerk.at/spacewar/
[3]: https://en.wikipedia.org/wiki/PDP-1
sehugg · 2018-02-21
Though no one has done it yet, Alan Kay is convinced a modest Spacewar could be built cheap: “You can do motion with a couple of integrators. Heathkit has this l6-integrator analogue computer you can build as a kit for 700 bucks or something like that. You have to have two layers of integrators to get an inverse-square law, so you should be able to get gravity and orbits with that one. To make spaceship outlines and explosion patterns you need a few bits of digital memory. Two chips worth of register file should do it. I think electronics stores may carry the chips.
Funny that Atari's first game Computer Space was developed the year before the article went to press, with an old black-and-white TV and some cascading digital counter chips, similar to how PONG would later simulate ball motion. And the spaceship outlines were literally outlined on the circuit board with diodes: http://www.masswerk.at/rc2017/04/images/e02-computerspace-diodelayout.…
frasermarlow · 2026-05-14
I recall running this on my TRS-80 back in the 80's - there is a web version available here: https://www.masswerk.at/elizabot/
Mistletoe · 2025-10-21
I've always found this fascinating. Even with completely random events, you get big winners and losers. I wonder how many of the rich realize their wealth could be more dice roll than their actions?
The enhanced version that tries to model debt and other basic economic functions like investments that are proportional to the respective wealth, gets even further from equality.
https://www.masswerk.at/misc/wealth/2.html
wrs · 2025-10-03
Cols 73-80 were sometimes used for sequence numbers so when you spilled your cards on the floor you could run them through the sorting machine.
This may help you get the feel (pick the COBOL card at the top). [0]
For an even more authentic experience, write the program on a coding form first, then give it to an assistant for keypunching. [1]
[0] https://www.masswerk.at/keypunch/
[1] https://www.mainframestechhelp.com/tutorials/cobol/coding-sheet.htm
FatalLogic · 2025-08-29
I didn't check your code worked.. just copied it and ran the inner part of the loop once, but according to https://www.masswerk.at/6502/
It's about 2x faster. Your code uses 44 CPU cycles x 64
Edit: plus a branch instruction, maybe that adds 3 cycles x 64 I guess
pmg101 · 2025-08-20
I'm old enough to remember when computer code was called "instructions".
Eg, the 6502 instruction set. https://www.masswerk.at/6502/6502_instruction_set.html
History doesn't repeat but it rhymes!
aap_ · 2025-04-07
This is a good start: https://www.masswerk.at/minskytron/
The pdp-1 "demoscene" has been rather inactive for ~6 decades now :) Our hope is to breathe some new life into it.
zik · 2024-04-03
Yes, there are some undocumented instructions [1]. They say it's a transistor-for-transistor replica so it should be 100% compatible with them.
[1] https://www.masswerk.at/nowgobang/2021/6502-illegal-opcodes
dietrichepp · 2024-01-15
The main difference between X and Y is in the indirect addressing modes.
You can use X as an index when you are looping through an array of pointers.
You can use Y as an index when you are looping through an array, where you have a pointer to the beginning of that array.
There are also a couple operations that always use X as a source or destination. There’s TXS/TSX, but no TYS/TSY.
https://www.masswerk.at/6502/6502_instruction_set.html
dehugger · 2024-01-03
My non-expert googling suggests that there is indeed no multiply instruction for the 6502.
https://www.masswerk.at/6502/6502_instruction_set.html
chrisbuc · 2023-11-07
I'm thinking of building a lego punch card reader for my 8 bit breadboard computer, and I like going down rabbit holes like this...
And I ended up here: https://www.masswerk.at/keypunch/ - virtual keypunch machine.
the-dude · 2023-09-14
Here you have a PDP1 : https://www.masswerk.at/nowgobang/2021/train-spotting-1
backendanon · 2023-08-13
This one has that and the chrome task manager shows this one uses around 1/3 of the CPU and GPU power to run it compared to the CSS only one:
https://www.masswerk.at/flyer/
MegaDeKay · 2023-07-14
> Only documented 6507 instructions were disassembled, since we reasoned that use of undocumented instructions would have been rare, and this avoided having a number of data values being erroneously interpreted as instructions.
This assumption jumped out at me. The 2600 programmers were pulling every trick in the book to crunch code size down and squeeze every cycle they could out of that 6507. How well those illegal opcodes [0] might have been understood back at this time is another question. They were apparently used in NES games [1] but that console obviously came later.
[0] https://www.masswerk.at/nowgobang/2021/6502-illegal-opcodes
[1] https://www.nesdev.org/wiki/CPU_unofficial_opcodes
flohofwoe · 2023-02-03
I'd guess it's "undocumented", not "undefined". Don't know how the situation is on x86, but on the Z80 there were indeed some slight differences in undocumented behaviour between CPU vendors, but those are so obscure that it hardly affected any real world code (they affected the undocumented flag bits 3 and 5, and their behaviour was only properly 'decoded' in the 2000's (https://github.com/floooh/emu-info/blob/master/z80/memptr_eng.txt).
The only CPU I know with actual 'undefined' behaviour is the 6502 for some of the undocumented/illegal opcodes which can yield different results based on things like current CPU temperature (see the ANE/XAA instruction description: https://www.masswerk.at/nowgobang/2021/6502-illegal-opcodes)
djmips · 2023-01-21
There is no one PDP-1 Source code it turns out.
It's complicated. Check here.
https://www.masswerk.at/spacewar/sources/
Check out a real deep dive into the source code and by default the PDP-1
https://www.masswerk.at/spacewar/inside/
This awesome work is all courtesy of Norbert Landsteiner of mass:werk
https://www.masswerk.at/info.php
Explore the site, there's also a Space War emulator and a re-implementation in javascript.
gimby · 2022-11-21
Birth of video games as viral demos:
https://www.masswerk.at/spacewar/SpacewarOrigin.html
https://www.wheels.org/spacewar/stone/rolling_stone.html
Lammy · 2022-11-08
ericabiz · 2022-08-09
More info about the “drum computer” this was written on: https://www.masswerk.at/nowgobang/2019/lgp-30
Previous discussion where another person tried to replicate this: https://news.ycombinator.com/item?id=20484330
ktpsns · 2022-08-01
There are various card puncher emulators in the web. I recently stumbled upon https://masswerk.at/keypunch/ which is very nice. In the old days, when X11 was cool, we had https://cyber.dabamos.de/unix/x11/#x026
ginko · 2022-06-24
Even without debt (i.e. if a person has no money for a round it won't give a dollar to anyone) the result is more or less the same: https://www.masswerk.at/misc/wealth/