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