Lovebyte 2021 sizecoded Demos


Background

Lovebyte is a demoparty aimed directly at sizecoding! There aren't many opportunities for demos less than 256B, especially ones where you don't have to compete with x86/DOS entries. There was no limit on number of submissions, so I went a bit overboard and submitted 12, as seen below.

As many peopled noticed, there was a somewhat unintentional Sierpinski Triangle theme running through these submissions.

Presentations

I presented a talk on size-coding for the Apple II. It was really early in the morning US time, luckily it was pre-recorded. You can see it here: https://youtu.be/kJ-EXbnw0kQ

For more on this topic you can see my Apple II 6502 Sizecoding page

I also took part in a preview stream as a special guest, which you can see here: MDT9K Lovebyte Preparty

Source Code

The full source code for all of these entries is available on my dos33fsprogs github project under the demos/lovebyte2021 directory.

The Entries

Oldschool 256B -- Never Gonna



Yes, cliche rick-roll, but I wanted at least one entry with sound and this was the only one I had. Getting sound on Apple II is a pain.

This one is a boot-sector demo, it entirely runs from the 256 byte boot sector. The rest of the disk would be empty, which seems like a waste, so I used Bzotto's Picture Disk to add this image to the magnetic flux patterns (in case you have a disk imager):

Finish: 7/35 256 Byte Oldschool Intro

Download: rr.woz.zip

Video: https://youtu.be/gc5Bl5pW79U

Sourcecode: rr.s




Oldschool 256B -- A2 Inside



I had this nice block-art picture of an Apple II and thought I'd have a demo inside a demo. Originally I was going to do rasterbars but in the end I had the existing Sierpinksi code that fit nicely in the space available.

Finish: 9/35 256 Byte Oldschool Intro

Download: a2_inside.dsk

Video: https://youtu.be/rt2WcwLW07A

Sourcecode: a2_inside.s


Oldschool 128B -- FakePal



This is another Apple II bot demo slimmed down to fit in 124 bytes. It is a common palette-scrolling type effect, only the Apple II doesn't have any concept of hardware palette changes. All the color cycling is done in software.

Finish: 8/16 128 Byte Oldschool Intro

Video: https://youtu.be/iKQ-D-p7zLg

Download: fakepal128.dsk

Sourcecode: notamoon.s


Oldschool 128B -- Not A Moon



The Apple IIe and later systems added some support for MouseText, which are text characters useful for creating minimal mac-like text GUI interfaces. You can use the characters for other things too. It turns out that while not really good for a lot of ASCII art, for some reason they make a nice Tie-fighter (not an original idea, there's a youtube video of the MouseTrap: PSEditor software which had some sample art along those lines).

Finish: 14/16 Oldschool 128 byte intro

Download: notamoon128.dsk

Video: https://youtu.be/pdiXE8l41E0

Sourcecode: notamoon.s


Oldschool 128B -- SierZoom



This was one that appeared on the AppleII Twitter Bot first as a 142 byte demo. It's probably the most popular one that I posted. It took some effort but I got it down to 124 bytes for the competition.

Finish: 10/16 Oldschool 128 Byte Intro

Download: sierzoom128.dsk

Video: https://youtu.be/aSMjYdhPWrc

Sourcecode: sierzoom.s


64B Intro -- Sier64



Scrolling Lo-res Sierpinski in 64-bytes. Nothing that exciting, though it does change colors.

Finish: 31/35 Combined 64-byte Intro

Video: https://youtu.be/t6i-xiwiCp0

Download: sier64.dsk

Sourcecode: sier_64.s


64B Intro -- Tiny Pipes



I was trying to fit the classic BASIC entropy demo into 64B. Couldn't quite make it, but got something close with this effect. It's just using the XDRAW interface to xor boxes scaled to 1, 2, or 3 times size over a grid. Surprisingly this makes for neat effects.

Finish: 21/25 Combined 64-byte Intro

Video: https://youtu.be/gZyr3lzkmbY

Download: tiny_pipes64.dsk

Sourcecode: tiny_pipes.s


32B Intro -- Checkers32



Lo-res animated squares. This was an early 32B demo I've been holding onto for a while. You can change up the patterns a bit depending on how you want it to look.

Finish: 22/40 Combined 32-byte Intro

Download: checkers32.dsk

Video: https://www.youtube.com/watch?v=yolBXhZ-EjU

Sourcecode: checkers.s

Quick run on your own Apple II or emulator:
CALL -151
70: 20 40 fb e6 fc a2 27 a0  27 98 e5 fc 85 f1 8a 45
80: f1 20 64 f8 8a 20 00 f8  88 10 ee ca 10 e9 30 e3
70G

32B Intro -- Tiny Triangles



Turns out Sierpinski triangles are easy enough I managed to get a cool looking 32-byte hi-res demo out of it. No repeat, not enough room for a loop so it just falls off the end (and possibly beeps with an error message if it hits an $FF BRK instruction).

Finish: 31/40 Combined 32-byte Intro

Download: tiny_32.dsk

Video: https://www.youtube.com/watch?v=2rjLUg5USWE

Sourcecode: tiny_triangles.s

Quick run on your own Apple II or emulator:
CALL -151
70: 20 d8 f3 8a 25 7f f0 02 a9 7f 85 e4 a0 00 a9 00
80: 20 57 f4 a6 e0 e8 d0 eb e6 7f d0 e7
70G

16B Intro Showcase -- Tiny Xdraw



My best attempt at hi-res graphics in 16-bytes. This is doing an Xdraw using Apple II shape-tables, but using ROM memory as a source of shapes. It can point anywhere, but I picked one that looked neat. Has some tricks, like it starts at address $E7 so the initial $20 JSR serves double-duty as setting the SCALE value without load/store needed. As some have noticed, depending on the state of the A or X register when starting your color might be green or purple and there might be some rotated garbage left on the screen from the first shape draw.

Finish: no voting, was just a showcase

Download: tiny_xdraw16.dsk

Video: https://www.youtube.com/watch?v=W9wk1hZhIUk

Sourcecode: tiny_xdraw.s

Quick run on your own Apple II or emulator:
CALL -151
E7: 20 d8 f3 8a 20 11 f4 a2
EF: 01 a0 f0 20 5d f6 f0 f7
E7G

16B Intro Showcase -- Tiny Pastel



When trying for an 8-byte demo realized I could get a nice lo-res demo with scrolling pastel blocks. You can actually get this down to 15 bytes if you trust the oVerflow flag isn't set at run time.

Finish: no voting, was just a showcase

Download: tiny_pastel16.dsk

Video: https://www.youtube.com/watch?v=DFo65JdPvIk

Sourcecode: tiny_pastel.s

Quick run on your own Apple II or emulator:
CALL -151
70: 2c 50 c0 8a 55 00 20 64
78: f8 20 ed fd e8 4c 73 00
70G

8B Intro Showcase -- Tiny Text



Eight bytes isn't much. Setting graphics takes 3 bytes, a loop at least 2, so what can you do with the 3 remaining and you're not on DOS so no stosb instruction? Or on a 65c02 or 65c816 that have more useful 1-byte intructions? The best I could do was stay in text mode and print some hex digits, which isn't much, but it's something.

Finish: no voting, just a showcase

Download: tiny_text8.dsk

Video: https://www.youtube.com/watch?v=jqlhjtwDJHc

Sourcecode: tiny_text.s



Quick run on your own Apple II or emulator:
CALL -151
70: b5 00 20 e3 fd e8 50 f8
70G

Back to my Demos
See my Apple II projects
See my writeups on my Apple II twitterbot demos