.........................................................................
: :
: ### #### ### #### # # # # ### #### ### ##### :
: # # # # # # # # # ## # # # # # # # # :
: ##### #### ##### # ##### # # # # # ### #### # # # :
: # # # # # # # # # # ## # # # # # # # :
: # # # # # # #### # # # # ### #### ### # :
: :
: a 256b MS-DOS intro . VGA mode 13h . PC speaker . by Tomkh :
: :
.........................................................................
. * . *
* . .
\ \ | | / /
\ \ | | / /
\ \ \ | | / / /
\ \ \_____|_|_____/ / /
\_____\___/ \___/_____/
| / _________ \ |
| | / \ | |
| | | ####### | | | <-- visor
| | \_________/ | |
| \ ||| / |
| \ ||| / |
| ||| |
/#####\
/#######\
/#########\
/###########\
/#############\
----------------/###############\----------------
WHAT IT IS
----------
A lone machine patrols a grey plain under a thin starfield. Its mission:
ERASE ORGANIC LIFE. It works the ground back and forth, firing a red
laser cone across the field on every pass. Five shots in it halts, holds
the beam half a second, and fires the sixth - the one that takes the whole
field. Mission accomplished. Only silence remains.
arachno.com is exactly 256 bytes. No data tables, no compression, no
loader. Every pixel and every note is generated by code that fits inside
a single disk sector.
RUNNING IT
----------
DOSBox (0.74-3 tested) or real VGA hardware. Give it roughly 10000 cycles
or more: the intro writes straight to video memory and waits on the
retrace, so an underclocked machine tears rather than breaks. The sound
is PC speaker, so make sure that is switched on.
THE PROCESS
-----------
Written by two models from Anthropic's Claude 5 family, directed prompt
by prompt by a human who set the goals, tuned the story beats and called
every visual judgement - but left the assembly to the models.
CLAUDE FABLE 5 (claude-fable-5)
The first session: the spider itself. Flat-shaded body, procedural
walk cycle, the left-right patrol, the laser cone, and the debug
harness that made any of it verifiable in the first place.
CLAUDE OPUS 5 (claude-opus-5)
This session: the PC-speaker zap, the banner, the starfield, the
ending - and the byte golf that paid for each of them out of the
same 256. Also the capture pipeline behind the video.
Both worked the same way: assemble it, run it in DOSBox, dump video
memory or record the speaker, and measure the result rather than trust
it. Two bugs were caught that way which screenshots had hidden entirely.
THE PROMPTS
-----------
Six prompts, from a much longer conversation, that shaped it:
1. "please create dos intro in asm with binary size <= 256b that
renders animated walking 3d flat-shaded spiders possibly with
shadow and orthographic/isometric view"
2. "can it go in a loop left to right and right to left ? and at some
point start shooting laser towards the camera? figure out the
tricks to pack it, golf some existing code, you can do it"
3. "I don't know how, but please squeze into arachno.asm shooting
sound when laser fires (can be pc speaker or midi whatever
smaller) and add centered text"
4. "i think the story should conclude somehow, so spider shoots few
laser rounds and then... what do you think should happen?"
5. "i'm thinking maybe you can squeeze in some static stars above
horizon"
6. "great job, but i liked the wide visor, please find 1b saving
without sacrificing any visual aspect"
INSIDE THE 256 BYTES
--------------------
One triangle-wave routine drives the patrol position, the leg gait, the
foot lift (sampled a quarter phase away) and even the body silhouette.
The rest is bought with tricks:
* the frame counter lives in the zero word DOS leaves on the stack
* the banner's '$' terminator is really the opcode byte of the AND
instruction that happens to follow the text
* the starfield is the program's own machine code read as 16-bit
screen offsets - stars landing below the horizon erase themselves
on the first frame, and the sky above is never cleared again
* the laser's pitch is the spider's x coordinate, so the sweep is free
* the ending re-enters the laser loop with an oversized cone: the row
arithmetic wraps the segment and paints all 64000 bytes in one frame
* salc, an undocumented one-byte instruction, stands in for sbb al,al
FILES
-----
arachno.asm the source: NASM syntax, one file, no includes
arachno.com 256 bytes, the intro itself
arachno.png screenshot
arachno.mp4 video capture
readme.txt this file
. . . . . . . . . . . . .
256 bytes. One sector. Eight legs.