How does 64K and demo programming work

Welcome to the ones and zeros page ...
It is no great secret that computers are more or less part of normality these days. In 1987 it looked a little different, and exactly in that year I got a Commodore C64 + 1541II as a gift: 0.98MHz CPU, 16 colors, 320 * 200 pixels, 64KByte RAM, ROM operating system, three SID analog voices. After extensive testing of legendary games such as Boulderdash, Giana Sisters, Maniac Mansion, Katakis and Tetris, the question arose after a while whether something else could be elicited from the gray monster ...

It was not without reason that the C64 was sold over four million times, because the computer could give way more than its operating system promised! This was also discovered by graphic designers, musicians and demo programmers: the video chip, SID and I / O registers were misused to create incredible graphics effects (up to 256 colors), floppy loading times (25 times faster than the operating system !!) and sample music (10bit PCM, polyphonic ) to conjure up. The assembler code required for this was then only readable by insiders, and the graphics and music data spread over the entire 64k memory. In the end, the programmers hardly had a bit left for a program, which - with regard to the expected success -
made it really attractive!

I came into contact with the "demo scene" in 1993, where I joined the demo group REFLEX joined as a programmer. Our group consisted of sometimes more, sometimes less graphic designers (Felidae, PVT, Hogan), musicians (PVCF, Praiser), programmers (Guru, Quiss, Warp8, Adder,
Jim Jack, Zorc = me) and swappers (Happymaker) - from Germany (Dresden, Munich), Poland, Finland, Denmark.


Partyplace in Fredericia Fanta, Earthquake, HLSP, Acidchild, Sebastian,
Syndrome, Iceman, Felidae

Demo programming is a real challenge because it is open to any kind of creativity - be it in terms of programming, graphics, music or presentation. A demo can be compared to a music video in which various graphic effects are shown to match music.

The fact that many people wanted to take on such a challenge could be seen, for example, at the annual competitions at computer parties such as "THE PARTY" in Herning and Fredericia (Denmark), always between Christmas and New Year.

Artists regularly competed there who continuously tried to get the best out of their system (Amiga, PC, C64), be it in the direction of pixel and ASCII graphics, music, video or demo productions. During the course of the party, the works were presented to the local audience in the form of competitions, which then ultimately had to decide which of the average ten to twenty participants should win the respective competition.

By the end of 1997, ten demos were created under our REFLEX demo group. Four of them won the prize of some 100 $, which of course was an incentive to stay true to this hobby!

Awards Nine / Reflex

In the last few years the PC market gradually displaced home computers such as the C64. As a cult object, it should of course not be absent from any good computer party, but since then it has been more and more forgotten - which was the reason for the breakup of our demo group.

After programming a text board program for a regional television station - still on the C64 - I have programmed smaller things like a morphing program (IT document, left) and graphic effects since 1997. In addition, I am currently earning something by programming microcontrollers - at the university and at two small Dresden companies. Programming is either fun or not, but I would certainly have lost the fun while studying computer science.

Today's demo programming looks a little different: music and graphic effects programming are very well supported by high-level languages ​​and program interactions. How nowadays who writes what to where in the memory and how a program is processed is a matter of the operating system. Runtime optimization is often unnecessary, formulas can be entered directly from the math book in the high-level language compiler. Complex ideas can be implemented more easily and quickly, thinking about program optimization is nowadays often taken over by the rapid development of ever faster processors and seemingly infinite storage space.

"Disadvantage" is that there is no stimulus that used to exist to exhaust a system to its known limits, because these are constantly changing today and are increasingly difficult to assess. Many effects that ran smoothly a few years ago often stutter today, even though computers have become faster and faster. In my opinion, the reason for this is the unkind programming, because almost everyone only "has to" chase after the best, fastest and most complex hardware and software, instead of taking the time to implement their own ideas and the necessary familiarization with a topic or program . So we can only hope that a command of the brand "IN AX, IDEE" will finally be invented, right?

own projects

C64 (6510):
Basic: printer programs, sprite / font editors, games, etc. (1988-1992)
Assembler: Co-design and programming of six Trackmo demos (1993-97),
two-part sample tracker (1993-95), packing programs (1996-97), IRQ floppy accelerator (1996), text board program for regional television stations (1998), ...

PC (486 / K6):
C: Computer science document: Morphing program (1997); Field display program (1998)
Assembler + C: 2D / 3D graphic effects (1997-1999)

Microcontroller (80C196KC, PIC16C76, PIC16F873 / 76, 8051 / AN2131QC):
Assembler: Implementation of some microcontroller-controlled regulation and sensor tasks as well as programming of RS485, RS232 and USB interfaces (1998-2000)

[Listings + Downloads + Timing Diagrams]