For 486, no FPU, for MsDos FreeDos, WinXP Dos, DosBox-X ... i made that rather in a hurry, so right now i have a version without background but wall bouncing like the original. But since the competition is already over, i will tinker a bit to make it perfect :)
the blank code for everbody who can read it ^^
you can paste it to http://twt86.co/ to run in a browser
org 100h
mov al,0x13
les bp,[bx]
int 0x10
X: sub dh,95
mov al,[bp+si]
add dl,al
imul al
sub dh,ah
mov bx,dx
mov al,bh
imul al
xchg ax,dx
imul al
add dx,ax
mov ch,7
imul ax,di,byte 102
sub ch,dh
jle F
mov al,bl
cbw
idiv ch
add al,[bp+si]
xor al,bh
and al,16
mov al,31
jnz F
add al,9
F: stosb
mov ax,0xCCCC
mul di
adc byte [bp+si],cl
jmp short X
Those people should also definitely check out "Mariana" (2024), a 256 byte demo from the same author, using the same techniques, which was even nominated for the Meteoriks Award for that year.
Features:
- Multithreading (using all CPU cores & hyper-threads)
- Full HD / HiColor (1920x1080 / 16 bpp)
- 128-iterative fractal on FPU
- Pure DOS (no drivers, no DPMI)
Howdy =) I didn't spot your analysis back then, but it's (still) spot on. A tiny addition, 0xA0000 to 0xB0000 is VGA memory when using graphics modes, so it's quite safe to write there until it flows into the visual text mode memory.
Author of "wake up" here. Yes, that one reactivated me again. We thought (as size coding community) that we found every cellular automaton trick years ago, but then Plex came around and showed us otherwise ♥
I tested this on a real FreeDos based notebook and it survived ;) But seriously, on more modern systems it doesnt do anything harmful anymore, while i have read that on older systems, you could provoke a system crash this way. Which then would create the interesting task of designing the CA in a way that it "avoids" the hazardous values. For now it seems that "anything goes", at least on all my semi-old and newer systems. DosBox Emulators literally dont care ;)
the blank code for everbody who can read it ^^ you can paste it to http://twt86.co/ to run in a browser