       _____            ____
      / ___/____ ______/ __ \__ _____
    __\ \/ _ / // / _ / /_/ / // / _ \
   /____/\_  \____\___\___\_\____\___/
          / /                     n8y
  _-\/-_
 |  20 YEARS STUFFING BYTES TOGETHER  |
  -________                ________-
          | 32byte Megademo  |
  _- -____________- -_
 |                                    |
 | CODE: Hopper                       |
 |                                    |
 | ABOUT: Why waste 256bytes, if you  |
 |        can have a 21 min megademo  |
 |        in just 32bytes? ;-)        |
 |        So here is some glitchy     |
 |        hardcore intro for good     |
 |        old Atari XL/XE.            |
 |        If you're running from DOS  |
 |        start from address 4000.    |
 |                                    |
 | REQUIRES: Standard Atari XL/XE     |
 |                                    |
 | GREETINGS:Metalvotze, Nuance, T$,  |
 |           anti, Speckdrumm, Toxie, |
 |           Stroboholics, TRSI, JAC! |
 |           Mercury (we did it ;-)   |
 |           Headcrash, Hitmen, G*P   |
 |           and all we forgot (again)|
 |                                    |
 | contact: squoquo@squoquo.de        |
 | website: http://squoquo.de         |
 |                                    |
  -________________________________-

Sourcecode:
	org $4000
	sei					;disable all interrupts
loop
	lda RTCLOK+2		;generate a moving, varying number pattern based on system clock and rasterline
	ora VCOUNT
	adc RTCLOK+1
	sta $d009,y			;don't use all GTIA registers (found by trial&error)
	bmi jumper			;every 128 frames do some more glitchy stuff
	and #$79				;the other 128 frames mask out some bits to get more stable graphics/sounds
	tay					;and save it as new index
jumper
	sta $d200,y			;trigger some sound stuff
	bpl weiter			;if we've taken the second 128 frames above, just continue to the end
	and #$77				;otherwise mask out another set of bits and use as index for next frame
	tay
weiter
	bpl loop				;since all values are garantueed to be positive now, just loop
