5 ms·
Blake 32
- slim 5y agoMy brain could not admit it was 32b and insisted on parsing it as 32kb anytime it was displayed. It's when I saw the demo, expected more, then go wtf!?...
- bottled_poe 5y agoWhat exactly are we looking at here?
- alasdair_ 5y agoA contest-winning 32 byte computer program that displays amazing visuals. Part of the “demo” scene.
- pixelpoet 5y agoWriting "demo" scene is like writing "web" site: come on, this has been around since the 80s. We literally have a post on the front page about demoscene being a recognised cultural heritage now.
- itisit 5y agoAs alasdair_ mentioned, this is some impressive demoscene stuff. Which, if I may take the liberty, is all about maximal creative output (subjective, I know) with minimal data footprint. In case you missed in original post, a video of the demo: https://youtu.be/kM2i2s4ItiA https://youtu.be/kM2i2s4ItiA 32 bytes!
- simlevesque 5y agoUNESCO's cultural heritage.
- mhh__ 5y agomov al,13h ; 2 int 10h ; 2 frameloop: les ax,[bx] ; 2 mov ah,0xcc ; 2 mul di ; 2 mov al,16 ; 2 fractalloop: ja snobby ; 2 inc ax ; 1 snobby: adc dl,[fs:0x46C] ; 5 (f&^k this shit!) sbb dh,dl ; 2 ror dl,cl ; 2 adc dl,dh ; 2 jno fractalloop ; 2 stosb ; 1 jmp frameloop ; 2 nop ; bonus, because 32 bytes was too much free space for me.
- ur-whale 5y agoThanks for the concise answer :)
- raverbashing 5y agoNice, I'm old enough to know what the 2 first lines do (get off my lawn etc...) For the rest it would take a while to understand the math and I'm not even sure where 0xa0000 would come from
- alfiedotwtf 5y agoHa! I’ve toyed through out the years that if I ever got a tattoo, it would be: mov ax, 13h; int 10h
- pdw 5y agoThat confused me as well. The Mode 13h graphics framebuffer is at address A000:0000. How does this program get that value? The key is the LES AX,[BX] opcode. BX is initialized to 0 by DOS, and the "Set video mode" BIOS call preserves BX's value. So the LES opcode sets ES:AX by reading a dword from DS:0. What's there? A COM file is a single-segment program, so DS equals CS, and the code segment starts with the Program Segment Prefix. (The actual code is loaded at offset 100h.) So it loads the first two words of the PSP. What are those? The first word is an "INT 20h" instruction, 20CDh, for compatibility with CP/M. The second word is the segment number of the end of the memory allocated for the program. But DOS always allocates all memory to COM programs, so this will be 0x9FFF (assuming you have a full 640K conventional memory installed). So ES:AX is set to 9FFF:20CD. And with x86 segmented memory 9FFF:0010 equals A000:0000.
- jeffgreco 5y agoYouTube link for those of us without DOS handy: https://youtu.be/kM2i2s4ItiA https://youtu.be/kM2i2s4ItiA
- g3 5y agoOr in an in-browser emulator: https://copy.sh/v86/?profile=custom&fda.url=images/freedos-blake32.img https://copy.sh/v86/?profile=custom&fda.url=images/freedos-b...
- gillytech 5y agoThis is a surprisingly delightful niche of computer art I've never seen before. Poke around the homepage some, you'll find some very creative ones.
- MattRix 5y agoYou’re in for a treat! The demoscene has a fascinating mix of high technical skill with artistic ability. This is a good overview of some of the best demoscene stuff of 2020: https://youtu.be/CVAvuhNBt-Y https://youtu.be/CVAvuhNBt-Y
- unixhero 5y agoWhich has just been added to UNESCO WORLD HERITAGE.
- HHad3 5y agoAnd its last byte is a NOP, quite a flex :-).
- bartvk 5y agoI loved that part.
- ur-whale 5y agoAnyone care to comment on the name ?
- bajsejohannes 5y agoFrom the source: ; Inspired by "Auguries of Innocence", a poem by William Blake ; ; To see a World in a Grain of Sand ; And a Heaven in a Wild Flower ; Hold Infinity in the palm of your hand ; And Eternity in an hour And 32 is of course the size in bytes of the executable.
- tech2 5y agoDouble-bonus, 32 is also the word count of poem plus title (sans author name).
- deleted 5y ago[deleted]