Vince Weaver
deater.net · Personal blog · on HN since 2011
Vince Weaver is a computer engineer who builds Apple II demos, demakes and assembly language projects, and has kept a personal site since 1996.
What HN saysHN commenters call the whole site a gem and an old-school hacker's site, and link it for Apple II tricks like the vapor lock and Myst and Portal ports.
34HN people shared it
13linked it in comments
34stories submitted
808story points
3 months agolast shared
2011people per year2026
Most-shared posts
- 1If you can't play the new VR version of Myst, why not play the Apple II demake6 people · 133 points · first shared 2020 · 27 comments on HN
- 2Apple II Vapor Lock and the Floating Bus5 people · 3 points · first shared 2020 · discussion on HN
- 3Portal for Apple II4 people · 285 points · first shared 2017 · 36 comments on HN
- 4Apple ][ "Lemmings" Proof of Concept3 people · 221 points · first shared 2022 · 46 comments on HN
- 5Linux_logo in 22 different assembly languages3 people · 5 points · first shared 2011 · discussion on HN
- 6Atari 2600 Myst Demake3 people · 3 points · first shared 2023 · discussion on HN
- 7A Version of Future Crew's Second Reality for Apple II3 people · 2 points · first shared 2023 · 2 comments on HN
- 8Riven on Apple II2 people · 5 points · first shared 2024 · discussion on HN
- 9Writing Apple ii demos that fit in a single tweet2 people · 4 points · first shared 2020 · discussion on HN
- 10XMAS2023 Apple ][ Christmas Demo (8k)2 people · 2 points · first shared 2023 · discussion on HN
- 11So you want to make pixel art for an Apple II1 people · 65 points · first shared 2024 · 10 comments on HN
- 12Maximizing Compression of Apple II Hi-Res Images1 people · 26 points · first shared 2025 · 4 comments on HN
- 13“Apple II Seasons” – A 128-byte Apple II Demo by DESiRE1 people · 23 points · first shared 2020 · discussion on HN
- 14Monster Splash double-hires demo for Apple IIe1 people · 8 points · first shared 2025 · discussion on HN
- 15Giving a Presentation From an Apple ][1 people · 5 points · first shared 2013 · discussion on HN
What HN people wrote when they linked it
deater · 2026-07-22
back when the Apple II / Applesoft BASIC twitter bot was a thing similar techniques were the best way to inject assembly language into a BASIC program, though we quickly learned there were more compact ways than REM to get a line ignored.
Some examples here, as sadly the apple2twitter bot shut down and deleted their account a while ago.
http://deater.net/weave/vmwprod/appleiibot/part7.html
lioeters · 2022-07-05
My goodness, the whole site is a gem, an old-school "hacker" in the best sense of the word.
http://www.deater.net/weave/
Pages go back to 1996!
http://www.deater.net/weave/whatsnew1996.html
lawlessone · 2025-04-01
Is this yours?
http://www.deater.net/weave/vmwprod/mist/ It's cool
IWeldMelons · 2024-08-17
Afaik you can do Vapor Lock on Apple - poor mans VBlank detection: http://deater.net/weave/vmwprod/megademo/vapor_lock.html
whoopdedo · 2024-01-10
Uh-oh. Will Portal for Apple II be next?
http://www.deater.net/weave/vmwprod/portal/
diydsp · 2023-12-24
It's got some smooth and color graphics and while we don't get to hear the delightful 1-bit speaker of the Apple IIe, the Mockingboard is much gentler on the ears in this nicely synthesized multi-part song which appears to be custom-composed by mA2E just for this demo.
From the description:
2023 edition of my annual Christmas Demo tradition. Recorded on real Apple IIe with Mockingboard card.
by Desire, code by Deater, Music by mA2E
There's some vapor-lock / vblank detection/ non-typical mid-screen mode switches happening here.
for more info/disk image see: http://deater.net/weave/vmwprod/xmas23/
sillywalk · 2023-09-04
Cool.
Here's one for the Apple II [ http://www.deater.net/weave/vmwprod/portal/ ]
and the C64:
https://tasvideos.org/2122G
okl · 2021-12-03
> What sticks in my mind from my limited exposure to SuperH is that there's no load immediate instruction, so you have to do a PC-relative load instead.
SuperH has a mov #imm, Rx that can take an 8-bit #imm. But you're right, literal pools were used just like on ARM.
Things I liked about SuperH: 16 bit fixed-width insn format (except for some SH2A and DSP ops), T flag for bit manipulation ops, GBR to enable scaled loads with offset, xtrct instruction, single-cycle division insns (div0, div1), MAC insns.
In terms of code density SH was quite effective, see here http://web.eece.maine.edu/~vweaver/papers/iccd09/iccd09_density.pdf or here http://www.deater.net/weave/vmwprod/asm/ll/ll.html
joezydeco · 2020-05-14
The Apple ][ hardware did not have a direct way to track vertical blanking. There were hacks that used artifacts in the dynamic memory refresh to sniff out when the VBI was happening.
http://www.deater.net/weave/vmwprod/megademo/vapor_lock.html
mmphosis · 2019-01-05
Apple ][ Fire Demo -- 64 Bytes http://deater.net/weave/vmwprod/apple2_fire/
retrac · 2025-11-22
> The CPU (the Motorola 68000) initiates all communication in the case of the Macintosh
Minor nitpick but the video controller has direct access to RAM and when the visible part of the display is being drawn by the video controller, it does cycle-stealing DMA that preempts the CPU.
You can read in depth about it from Steve Chamberlain, the designer of an FPGA low level clone of the Mac Plus here: [0]
By the way but this why the compact Macs have CPU performance of about a 6 MHz 68000 when clocked at almost 8 MHz. About half the time the display is being redrawn. And about half the memory bandwidth is used up at those times.
Bit of a tangent but the Apple II used a similar approach for its video system. As the article notes, the 68K has a prefetch queue. So it's always reading ahead which is what you get from reading an open bus. But the 6502 is a simple CPU without that fancy prefetch queue, so if you read a non-extant address on the Apple II you get what the video system just read and drew in the previous half-cycle. It's possible to sync up the CPU with the video system this way; something otherwise impossible on the Apple II. [1]
[0] https://www.bigmessowires.com/2011/08/25/68000-interleaved-memory-cont…
[1] http://www.deater.net/weave/vmwprod/megademo/vapor_lock.html
johndoe0815 · 2021-04-04
Thanks for the link!
Adapting the Project Oberon compiler code generation isn't that difficult, but the devil is in the details :). My student Rikke described some of the challenges porting Project Oberon to RISC-V in her project report (https://github.com/solbjorg/oberon-riscv/blob/master/report.pdf).
I assume that the most time-consuming task to get Project Oberon to run on ARM/Raspberry Pi would be to write device drivers for more complex devices, e.g. USB and Ethernet. These could be written in Oberon (which would be a considerable effort) or possibly be abstracted by using a bare-metal hypervisor that supports VirtIO device abstractions, e.g. Vmware ESXI. This way, one would only have to implement VirtIO drivers in Oberon, which is considerably less complex.
Connecting a PS/2 keyboard and mouse instead of USB might also be an alternative, since drivers for PS/2 are far less complex: http://www.deater.net/weave/vmwprod/hardware/pi-ps2/
gnosis · 2011-06-19
If you're going to be writing assembly on Linux, you should decide which of the two major syntaxes to learn:
- AT&T (gas, gcc inline assembly)
- Intel (nasm, fasm, yasm, but also gas)
Some links to help you decide:
Pro-gas: http://www.deater.net/weave/vmwprod/asm/ll/README.gas_sucks
Anti-gas: http://x86asm.net/articles/what-i-dislike-about-gas/
Neither/both: http://www.ibm.com/developerworks/linux/library/l-gas-nasm/index.html
Neither: http://webster.cs.ucr.edu/AsmTools/WhichAsm.html
If you decide to go with AT&T/gas, check out "Programming from the Ground Up", by Jonathan Bartlett:
http://download.savannah.gnu.org/releases/pgubook/
If you decide to go with Intel/nasm, see "PC Assembly Language" by Paul A. Carter:
http://www.drpaulcarter.com/pcasm/
Also, the following tutorial is focused on DOS/8086, but it's really unique in that it's very interactive, and provides you with a fully functional assembly interpreter and 8086 simulator:
http://www.btinternet.com/~btketman/tutpage.html
I highly recommend it for getting a quick feel for the basics, though some of the DOS/8086 specific stuff in it won't apply to Linux.