Skip to content

Instantly share code, notes, and snippets.

@rmmh
Created August 17, 2014 21:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rmmh/a1a493d4e3ba05afe24f to your computer and use it in GitHub Desktop.
Save rmmh/a1a493d4e3ba05afe24f to your computer and use it in GitHub Desktop.
Disassembled Chip8 Programs
# INPUT FILE LISTING:
# chip8/Chip-8 Demos/Maze (alt) [David Winter, 199x].ch8
# chip8/Chip-8 Demos/Maze [David Winter, 199x].ch8
# chip8/Chip-8 Demos/Particle Demo [zeroZshadow, 2008].ch8
# chip8/Chip-8 Demos/Sierpinski [Sergey Naydenov, 2010].ch8
# chip8/Chip-8 Demos/Sirpinski [Sergey Naydenov, 2010].ch8
# chip8/Chip-8 Demos/Stars [Sergey Naydenov, 2010].ch8
# chip8/Chip-8 Demos/Trip8 Demo (2008) [Revival Studios].ch8
# chip8/Chip-8 Demos/Zero Demo [zeroZshadow, 2007].ch8
# chip8/Chip-8 Games/15 Puzzle [Roger Ivie] (alt).ch8
# chip8/Chip-8 Games/15 Puzzle [Roger Ivie].ch8
# chip8/Chip-8 Games/Addition Problems [Paul C. Moews].ch8
# chip8/Chip-8 Games/Airplane.ch8
# chip8/Chip-8 Games/Animal Race [Brian Astle].ch8
# chip8/Chip-8 Games/Astro Dodge [Revival Studios, 2008].ch8
# chip8/Chip-8 Games/Biorhythm [Jef Winsor].ch8
# chip8/Chip-8 Games/Blinky [Hans Christian Egeberg, 1991].ch8
# chip8/Chip-8 Games/Blinky [Hans Christian Egeberg] (alt).ch8
# chip8/Chip-8 Games/Blitz [David Winter].ch8
# chip8/Chip-8 Games/Bowling [Gooitzen van der Wal].ch8
# chip8/Chip-8 Games/Breakout (Brix hack) [David Winter, 1997].ch8
# chip8/Chip-8 Games/Breakout [Carmelo Cortez, 1979].ch8
# chip8/Chip-8 Games/Brick (Brix hack, 1990).ch8
# chip8/Chip-8 Games/Brix [Andreas Gustafsson, 1990].ch8
# chip8/Chip-8 Games/Cave.ch8
# chip8/Chip-8 Games/Coin Flipping [Carmelo Cortez, 1978].ch8
# chip8/Chip-8 Games/Connect 4 [David Winter].ch8
# chip8/Chip-8 Games/Craps [Camerlo Cortez, 1978].ch8
# chip8/Chip-8 Games/Deflection [John Fort].ch8
# chip8/Chip-8 Games/Figures.ch8
# chip8/Chip-8 Games/Filter.ch8
# chip8/Chip-8 Games/Guess [David Winter] (alt).ch8
# chip8/Chip-8 Games/Guess [David Winter].ch8
# chip8/Chip-8 Games/Hidden [David Winter, 1996].ch8
# chip8/Chip-8 Games/Hi-Lo [Jef Winsor, 1978].ch8
# chip8/Chip-8 Games/Kaleidoscope [Joseph Weisbecker, 1978].ch8
# chip8/Chip-8 Games/Landing.ch8
# chip8/Chip-8 Games/Lunar Lander (Udo Pernisz, 1979).ch8
# chip8/Chip-8 Games/Mastermind FourRow (Robert Lindley, 1978).ch8
# chip8/Chip-8 Games/Merlin [David Winter].ch8
# chip8/Chip-8 Games/Missile [David Winter].ch8
# chip8/Chip-8 Games/Most Dangerous Game [Peter Maruhnic].ch8
# chip8/Chip-8 Games/Nim [Carmelo Cortez, 1978].ch8
# chip8/Chip-8 Games/Paddles.ch8
# chip8/Chip-8 Games/Pong (1 player).ch8
# chip8/Chip-8 Games/Pong 2 (Pong hack) [David Winter, 1997].ch8
# chip8/Chip-8 Games/Pong (alt).ch8
# chip8/Chip-8 Games/Pong [Paul Vervalin, 1990].ch8
# chip8/Chip-8 Games/Programmable Spacefighters [Jef Winsor].ch8
# chip8/Chip-8 Games/Puzzle.ch8
# chip8/Chip-8 Games/Reversi [Philip Baltzer].ch8
# chip8/Chip-8 Games/Rocket [Joseph Weisbecker, 1978].ch8
# chip8/Chip-8 Games/Rocket Launcher.ch8
# chip8/Chip-8 Games/Rocket Launch [Jonas Lindstedt].ch8
# chip8/Chip-8 Games/Rush Hour [Hap, 2006] (alt).ch8
# chip8/Chip-8 Games/Rush Hour [Hap, 2006].ch8
# chip8/Chip-8 Games/Russian Roulette [Carmelo Cortez, 1978].ch8
# chip8/Chip-8 Games/Sequence Shoot [Joyce Weisbecker].ch8
# chip8/Chip-8 Games/Shooting Stars [Philip Baltzer, 1978].ch8
# chip8/Chip-8 Games/Slide [Joyce Weisbecker].ch8
# chip8/Chip-8 Games/Soccer.ch8
# chip8/Chip-8 Games/Space Flight.ch8
# chip8/Chip-8 Games/Space Intercept [Joseph Weisbecker, 1978].ch8
# chip8/Chip-8 Games/Space Invaders [David Winter] (alt).ch8
# chip8/Chip-8 Games/Space Invaders [David Winter].ch8
# chip8/Chip-8 Games/Spooky Spot [Joseph Weisbecker, 1978].ch8
# chip8/Chip-8 Games/Squash [David Winter].ch8
# chip8/Chip-8 Games/Submarine [Carmelo Cortez, 1978].ch8
# chip8/Chip-8 Games/Sum Fun [Joyce Weisbecker].ch8
# chip8/Chip-8 Games/Syzygy [Roy Trevino, 1990].ch8
# chip8/Chip-8 Games/Tank.ch8
# chip8/Chip-8 Games/Tapeworm [JDR, 1999].ch8
# chip8/Chip-8 Games/Tetris [Fran Dachille, 1991].ch8
# chip8/Chip-8 Games/Tic-Tac-Toe [David Winter].ch8
# chip8/Chip-8 Games/Timebomb.ch8
# chip8/Chip-8 Games/Tron.ch8
# chip8/Chip-8 Games/UFO [Lutz V, 1992].ch8
# chip8/Chip-8 Games/Vers [JMN, 1991].ch8
# chip8/Chip-8 Games/Vertical Brix [Paul Robson, 1996].ch8
# chip8/Chip-8 Games/Wall [David Winter].ch8
# chip8/Chip-8 Games/Wipe Off [Joseph Weisbecker].ch8
# chip8/Chip-8 Games/Worm V4 [RB-Revival Studios, 2007].ch8
# chip8/Chip-8 Games/X-Mirror.ch8
# chip8/Chip-8 Games/ZeroPong [zeroZshadow, 2007].ch8
# chip8/Chip-8 Hires/Astro Dodge Hires [Revival Studios, 2008].ch8
# chip8/Chip-8 Hires/Hires Maze [David Winter, 199x].ch8
# chip8/Chip-8 Hires/Hires Particle Demo [zeroZshadow, 2008].ch8
# chip8/Chip-8 Hires/Hires Sierpinski [Sergey Naydenov, 2010].ch8
# chip8/Chip-8 Hires/Hires Stars [Sergey Naydenov, 2010].ch8
# chip8/Chip-8 Hires/Hires Test [Tom Swan, 1979].ch8
# chip8/Chip-8 Hires/Hires Worm V4 [RB-Revival Studios, 2007].ch8
# chip8/Chip-8 Hires/Trip8 Hires Demo (2008) [Revival Studios].ch8
# chip8/Chip-8 Programs/BMP Viewer - Hello (C8 example) [Hap, 2005].ch8
# chip8/Chip-8 Programs/Chip8 emulator Logo [Garstyciuks].ch8
# chip8/Chip-8 Programs/Chip8 Picture.ch8
# chip8/Chip-8 Programs/Clock Program [Bill Fisher, 1981].ch8
# chip8/Chip-8 Programs/Delay Timer Test [Matthew Mikolay, 2010].ch8
# chip8/Chip-8 Programs/Division Test [Sergey Naydenov, 2010].ch8
# chip8/Chip-8 Programs/Fishie [Hap, 2005].ch8
# chip8/Chip-8 Programs/Framed MK1 [GV Samways, 1980].ch8
# chip8/Chip-8 Programs/Framed MK2 [GV Samways, 1980].ch8
# chip8/Chip-8 Programs/IBM Logo.ch8
# chip8/Chip-8 Programs/Jumping X and O [Harry Kleinberg, 1977].ch8
# chip8/Chip-8 Programs/Keypad Test [Hap, 2006].ch8
# chip8/Chip-8 Programs/Life [GV Samways, 1980].ch8
# chip8/Chip-8 Programs/Minimal game [Revival Studios, 2007].ch8
# chip8/Chip-8 Programs/Random Number Test [Matthew Mikolay, 2010].ch8
# chip8/Chip-8 Programs/SQRT Test [Sergey Naydenov, 2010].ch8
# chip8/Chip-8X and Hybrids/Pinball [Andrew Modla].ch8
# chip8/SuperChip Demos/Bounce [Les Harris].ch8
# chip8/SuperChip Demos/Car Race Demo [Erik Bryntse, 1991].ch8
# chip8/SuperChip Demos/Climax Slideshow - Part 1 [Revival Studios, 2008].ch8
# chip8/SuperChip Demos/Climax Slideshow - Part 2 [Revival Studios, 2008].ch8
# chip8/SuperChip Demos/Robot.ch8
# chip8/SuperChip Demos/SCSerpinski [Sergey Naydenov, 2010].ch8
# chip8/SuperChip Demos/SCStars [Sergey Naydenov, 2010].ch8
# chip8/SuperChip Demos/SuperMaze [David Winter, 199x].ch8
# chip8/SuperChip Demos/Super Particle Demo [zeroZshadow, 2008].ch8
# chip8/SuperChip Demos/SuperTrip8 Demo (2008) [Revival Studios].ch8
# chip8/SuperChip Demos/Worms demo.ch8
# chip8/SuperChip Games/Alien [Jonas Lindstedt, 1993].ch8
# chip8/SuperChip Games/Ant - In Search of Coke [Erin S. Catto].ch8
# chip8/SuperChip Games/Blinky [Hans Christian Egeberg, 1991].ch8
# chip8/SuperChip Games/Car [Klaus von Sengbusch, 1994].ch8
# chip8/SuperChip Games/Field! [Al Roland, 1993] (alt).ch8
# chip8/SuperChip Games/Field! [Al Roland, 1993].ch8
# chip8/SuperChip Games/H. Piper [Paul Raines, 1991].ch8
# chip8/SuperChip Games/Joust [Erin S. Catto, 1993].ch8
# chip8/SuperChip Games/Laser.ch8
# chip8/SuperChip Games/Loopz [Andreas Daumann].ch8
# chip8/SuperChip Games/Loopz (with difficulty select) [Hap, 2006].ch8
# chip8/SuperChip Games/Magic Square [David Winter, 1997].ch8
# chip8/SuperChip Games/Matches.ch8
# chip8/SuperChip Games/Mines! - The minehunter [David Winter, 1997].ch8
# chip8/SuperChip Games/Single Dragon (Bomber Section) [David Nurser, 1993].ch8
# chip8/SuperChip Games/Single Dragon (Stages 1-2) [David Nurser, 1993].ch8
# chip8/SuperChip Games/Sokoban [Hap, 2006] (alt).ch8
# chip8/SuperChip Games/Sokoban [Hap, 2006].ch8
# chip8/SuperChip Games/Spacefight 2091 [Carsten Soerensen, 1992].ch8
# chip8/SuperChip Games/Super Astro Dodge [Revival Studios, 2008].ch8
# chip8/SuperChip Games/SuperWorm V3 [RB, 1992].ch8
# chip8/SuperChip Games/SuperWorm V4 [RB-Revival Studios, 2007].ch8
# chip8/SuperChip Games/U-Boat [Michael Kemper, 1994].ch8
# chip8/SuperChip Test Programs/BMP Viewer (16x16 tiles) (MAME) [IQ_132].ch8
# chip8/SuperChip Test Programs/BMP Viewer - Flip-8 logo [Newsdee, 2006].ch8
# chip8/SuperChip Test Programs/BMP Viewer (Google) [IQ_132].ch8
# chip8/SuperChip Test Programs/BMP Viewer - Kyori (SC example) [Hap, 2005].ch8
# chip8/SuperChip Test Programs/BMP Viewer - Let's Chip-8! [Koppepan, 2005].ch8
# chip8/SuperChip Test Programs/Emutest [Hap, 2006].ch8
# chip8/SuperChip Test Programs/Font Test [Newsdee, 2006].ch8
# chip8/SuperChip Test Programs/Hex Mixt.ch8
# chip8/SuperChip Test Programs/Line Demo.ch8
# chip8/SuperChip Test Programs/SCHIP Test [iq_132].ch8
# chip8/SuperChip Test Programs/Scroll Test.ch8
# chip8/SuperChip Test Programs/Scroll Test (modified) [Garstyciuks].ch8
# chip8/SuperChip Test Programs/SC Test.ch8
# chip8/SuperChip Test Programs/SuperChip Test.ch8
# chip8/SuperChip Test Programs/Test128.ch8
######################################################################
# INPUT: chip8/Chip-8 Demos/Maze (alt) [David Winter, 199x].ch8
######################################################################
:proto D1 # 21E
:proto D2 # 222
: main
v0 := 0
v1 := 0
: L1
loop
i := D2
v2 := random 0b1
if v2 != 1 then i := D1
sprite v0 v1 4
v0 += 4
if v0 != 64 then jump L1
v0 := 0
v1 += 4
if v1 != 32 then
again
loop
again
: D1
0x80 0x40 0x20 0x10
: D2
0x20 0x40 0x80 0x10
######################################################################
# INPUT: chip8/Chip-8 Demos/Maze [David Winter, 199x].ch8
######################################################################
:proto D1 # 21A
:proto D2 # 21E
: main
loop
i := D2
v2 := random 0b1
if v2 != 1 then i := D1
sprite v0 v1 4
v0 += 4
if v0 != 64 then jump main
v0 := 0
v1 += 4
if v1 != 32 then
again
loop
again
: D1
0x80 0x40 0x20 0x10
: D2
0x20 0x40 0x80 0x10
######################################################################
# INPUT: chip8/Chip-8 Demos/Particle Demo [zeroZshadow, 2008].ch8
######################################################################
:proto Sub1 # 25C
:proto L4 # 262
:proto L5 # 292
:proto L6 # 294
:proto Sub2 # 29C
:proto L7 # 2B8
:proto Sub3 # 2CE
:proto D1 # 2D8
:proto D2 # 300
:proto D3 # 320
:proto D4 # 321
: main
i := D4
v0 := 0
v1 := 0
v2 := 8
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
v6 := 5
v7 := 2
vA := 0
jump L7
: L1
vB := 0
vC := 0
loop
i := D1
i += vB
load v3
Sub3
Sub1
jump L4
: L3
Sub3
Sub1
vB += 4
vC += 1
if vC != v6 then
again
jump L1
0x12 0x0
: Sub1
i := D3
sprite vE vD 1
return
: L4
i := D1
i += vB
load v3
v0 += v2
v1 += v3
vE := v0
vD := v1
vE >>= vE
vD >>= vD
v4 := vE
v5 := 194
v4 += v5
if vF == 1 then jump L5
if vD == 0 then v3 := 1
v4 := vD
v5 := -31
v4 += v5
if vF == 1 then jump L5
if v3 != 2 then v3 += 1
jump L6
: L5
Sub2
: L6
i := D1
i += vB
save v3
jump L3
: Sub2
i := D2
i += vA
load v0
v2 := v0
vA += 1
v4 := 31
vA &= v4
v0 := 32
v1 := 30
v0 <<= v0
v1 <<= v1
v3 := random 0b11
v3 += -8
return
: L7
vB := 0
vC := 0
loop
Sub2
i := D1
i += vB
save v3
vB += 4
vC += 1
if vC != v6 then
again
jump L1
: Sub3
vE := v0
vD := v1
vE >>= vE
vD >>= vD
return
: D1
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D2
0xf8 0xfa 0xf9 0xfe 0xfb 0xfc 0xfd 0xff 0x2 0x1 0x3 0x5 0x4 0x6 0x7 0x8 0x6 0x7 0x4 0x5 0x3 0x1 0x2 0xfe 0xff 0xfc 0xfb 0xfd 0xfa 0xf9 0xf8 0xfa
: D3
0x80
: D4
0xf7 0x6 0x77 0x6 0x36 0x0 0x0 0x0 0xc7 0x6c 0xcf 0xc 0xc 0x0 0x0 0x0 0x9f 0xd9 0xdf 0xd9 0xd9 0x0 0x0 0x0 0x3f 0x8c 0xc 0x8c 0x8c 0x0 0x0 0x0 0x67 0x6c 0x6c 0x6c 0x67 0x0 0x0 0x0 0xb0 0x30 0x30 0x30 0xbe 0x0 0x0 0x0 0xf9 0xc3 0xf1 0xc0 0xfb 0x0 0x0 0x0 0xef 0x0 0xce 0x60 0xcc 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Demos/Sierpinski [Sergey Naydenov, 2010].ch8
######################################################################
:proto L1 # 205
:proto L4 # 2F9
:proto L5 # 321
:proto L6 # 349
:proto D1 # 3C2
:proto D2 # 3C3
:proto D3 # 3C4
:proto D4 # 3C5
:proto D5 # 3C6
:proto D6 # 3E6
:proto D7 # 406
:proto D8 # 407
: main
jump L1
0x43 0x38 0x50
: L1
v0 := 0
v5 := v0
v0 := 1
v1 := v5
i := D6
i += v1
save v0
v0 := 31
vA := v0
v0 := 0
vB := v0
i := D1
load v0
i := D1
sprite vA vB 1
v0 := 1
i := D2
save v0
v0 := 31
i := D7
save v0
: L2
v0 := 1
i := D3
save v0
i := D2
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 += v1
i := D8
save v0
loop
i := D3
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 -= v1
i := D4
save v0
i := D3
load v0
v5 := v0
i := D4
load v0
i := D6
i += v0
load v0
v6 := v0
i := D3
load v0
v7 := v0
v0 := 1
v1 := v0
v0 := v7
v0 += v1
i := D6
i += v0
load v0
v1 := v0
v0 := v6
v0 ^= v1
v1 := v5
i := D5
i += v1
save v0
i := D4
load v0
v5 := v0
i := D4
load v0
i := D5
i += v0
load v0
v1 := v5
i := D6
i += v1
save v0
i := D3
load v0
i := D5
i += v0
load v0
v5 := v0
v0 := 1
v1 := v5
if v0 != v1 then vF := 1
if vF != 0 then jump L4
i := D3
load v0
v5 := v0
v0 := 31
v1 := v0
v0 := v5
v0 += v1
vA := v0
i := D2
load v0
vB := v0
i := D1
load v0
i := D1
sprite vA vB 1
v0 := 31
v5 := v0
i := D3
load v0
v1 := v0
v0 := v5
v0 -= v1
vA := v0
i := D2
load v0
vB := v0
i := D1
load v0
i := D1
sprite vA vB 1
: L4
i := D3
load v0
v5 := v0
i := D8
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 1 then jump L5
i := D3
load v0
v0 += 1
i := D3
save v0
again
: L5
i := D2
load v0
v5 := v0
i := D7
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 1 then jump L6
i := D2
load v0
v0 += 1
i := D2
save v0
jump L2
: L6
loop
again
0x81 0x0 0xa4 0x8 0x62 0x1 0x8e 0x25 0xfe 0x1e 0xf0 0x65 0x0 0xee 0x62 0x1 0x63 0x0 0x83 0x4 0x81 0x25 0x31 0x0 0x13 0x5d 0x80 0x30 0x0 0xee 0xa4 0x8 0xfe 0x1e 0xf6 0x55 0x66 0x0 0x82 0x0 0x82 0x15 0x3f 0x1 0x13 0x95 0x83 0x0 0x83 0x6 0x84 0x10 0x65 0x1 0x82 0x30 0x82 0x45 0x3f 0x1 0x13 0x8f 0x84 0xe 0x85 0xe 0x13 0x81 0x80 0x45 0x86 0x54 0x13 0x71 0xf5 0x65 0x80 0x60 0x0 0xee 0x82 0x0 0x80 0x15 0x3f 0x0 0x13 0x9b 0x80 0x20 0x0 0xee 0xa3 0xbf 0xf0 0x33 0xf2 0x65 0xf0 0x29 0xd3 0x45 0x73 0x6 0xf1 0x29 0xd3 0x45 0x73 0x6 0xf2 0x29 0xd3 0x45 0x0 0xee 0x28 0x63 0x29
: D1
0x80
: D2
0x0
: D3
0x0
: D4
0x0
: D5
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D6
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D7
0x0
: D8
0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Demos/Sirpinski [Sergey Naydenov, 2010].ch8
######################################################################
:proto L1 # 205
:proto L4 # 2F9
:proto L5 # 321
:proto L6 # 349
:proto D1 # 3C2
:proto D2 # 3C3
:proto D3 # 3C4
:proto D4 # 3C5
:proto D5 # 3C6
:proto D6 # 3E6
:proto D7 # 406
:proto D8 # 407
: main
jump L1
0x43 0x38 0x50
: L1
v0 := 0
v5 := v0
v0 := 1
v1 := v5
i := D6
i += v1
save v0
v0 := 31
vA := v0
v0 := 0
vB := v0
i := D1
load v0
i := D1
sprite vA vB 1
v0 := 1
i := D2
save v0
v0 := 31
i := D7
save v0
: L2
v0 := 1
i := D3
save v0
i := D2
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 += v1
i := D8
save v0
loop
i := D3
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 -= v1
i := D4
save v0
i := D3
load v0
v5 := v0
i := D4
load v0
i := D6
i += v0
load v0
v6 := v0
i := D3
load v0
v7 := v0
v0 := 1
v1 := v0
v0 := v7
v0 += v1
i := D6
i += v0
load v0
v1 := v0
v0 := v6
v0 ^= v1
v1 := v5
i := D5
i += v1
save v0
i := D4
load v0
v5 := v0
i := D4
load v0
i := D5
i += v0
load v0
v1 := v5
i := D6
i += v1
save v0
i := D3
load v0
i := D5
i += v0
load v0
v5 := v0
v0 := 1
v1 := v5
if v0 != v1 then vF := 1
if vF != 0 then jump L4
i := D3
load v0
v5 := v0
v0 := 31
v1 := v0
v0 := v5
v0 += v1
vA := v0
i := D2
load v0
vB := v0
i := D1
load v0
i := D1
sprite vA vB 1
v0 := 31
v5 := v0
i := D3
load v0
v1 := v0
v0 := v5
v0 -= v1
vA := v0
i := D2
load v0
vB := v0
i := D1
load v0
i := D1
sprite vA vB 1
: L4
i := D3
load v0
v5 := v0
i := D8
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 1 then jump L5
i := D3
load v0
v0 += 1
i := D3
save v0
again
: L5
i := D2
load v0
v5 := v0
i := D7
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 1 then jump L6
i := D2
load v0
v0 += 1
i := D2
save v0
jump L2
: L6
loop
again
0x81 0x0 0xa4 0x8 0x62 0x1 0x8e 0x25 0xfe 0x1e 0xf0 0x65 0x0 0xee 0x62 0x1 0x63 0x0 0x83 0x4 0x81 0x25 0x31 0x0 0x13 0x5d 0x80 0x30 0x0 0xee 0xa4 0x8 0xfe 0x1e 0xf6 0x55 0x66 0x0 0x82 0x0 0x82 0x15 0x3f 0x1 0x13 0x95 0x83 0x0 0x83 0x6 0x84 0x10 0x65 0x1 0x82 0x30 0x82 0x45 0x3f 0x1 0x13 0x8f 0x84 0xe 0x85 0xe 0x13 0x81 0x80 0x45 0x86 0x54 0x13 0x71 0xf5 0x65 0x80 0x60 0x0 0xee 0x82 0x0 0x80 0x15 0x3f 0x0 0x13 0x9b 0x80 0x20 0x0 0xee 0xa3 0xbf 0xf0 0x33 0xf2 0x65 0xf0 0x29 0xd3 0x45 0x73 0x6 0xf1 0x29 0xd3 0x45 0x73 0x6 0xf2 0x29 0xd3 0x45 0x0 0xee 0x28 0x63 0x29
: D1
0x80
: D2
0x0
: D3
0x0
: D4
0x0
: D5
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D6
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D7
0x0
: D8
0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Demos/Stars [Sergey Naydenov, 2010].ch8
######################################################################
:proto L1 # 205
:proto L5 # 2D5
:proto L6 # 2DB
:proto L7 # 301
:proto L8 # 323
:proto L11 # 3C5
:proto L12 # 3CB
:proto L13 # 3F1
:proto L14 # 413
:proto L15 # 46F
:proto L16 # 4F1
:proto D1 # 580
:proto D2 # 5A8
:proto D3 # 5B0
:proto D4 # 5B8
:proto D5 # 5C0
:proto D6 # 5C1
:proto D7 # 5C2
:proto D8 # 5C3
:proto D9 # 5C4
:proto D10 # 5C6
: main
jump L1
0x43 0x38 0x50
: L1
v0 := 0
v5 := v0
v0 := random 0b111000
v1 := v5
i := D3
i += v1
save v0
v0 := 0
v5 := v0
v0 := random 0b11000
v1 := v5
i := D4
i += v1
save v0
v0 := 0
i := D3
i += v0
load v0
vA := v0
v0 := 0
i := D4
i += v0
load v0
vB := v0
v0 := 0
i := D1
i += v0
sprite vA vB 8
v0 := 1
i := D7
save v0
v0 := 7
i := D9
save v0
: L2
i := D7
load v0
v5 := v0
v0 := random 0b111000
v1 := v5
i := D3
i += v1
save v0
: L3
v0 := 0
i := D6
save v0
i := D7
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 -= v1
i := D10
save v0
loop
i := D7
load v0
i := D3
i += v0
load v0
v5 := v0
i := D6
load v0
i := D3
i += v0
load v0
v6 := v0
v0 := 8
v1 := v0
v0 := v6
v0 += v1
v1 := v0
v0 := v5
v2 := v0
v0 -= v1
v0 := v2
if vF != 0 then jump L6
i := D7
load v0
i := D3
i += v0
load v0
v5 := v0
i := D6
load v0
i := D3
i += v0
load v0
v6 := v0
v0 := 8
v1 := v0
v0 := v6
v0 -= v1
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if vF != 0 then jump L5
v0 := 1
i := D8
save v0
jump L6
: L5
v0 := 0
i := D8
save v0
: L6
i := D6
load v0
v5 := v0
i := D10
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 1 then jump L7
i := D6
load v0
v0 += 1
save v0
again
: L7
i := D8
load v0
v5 := v0
v0 := 1
v1 := v5
if v0 != v1 then vF := 1
if vF != 0 then jump L8
i := D7
load v0
v5 := v0
v0 := random 0b1111000
v1 := v5
i := D3
i += v1
save v0
: L8
i := D8
load v0
v5 := v0
v0 := 0
v1 := v5
if v0 != v1 then vF := 1
if v0 == v1 then vF := 0
if vF != 0 then jump L3
i := D7
load v0
v5 := v0
v0 := random 0b11000
v1 := v5
i := D4
i += v1
save v0
: L9
v0 := 0
i := D6
save v0
i := D7
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 -= v1
i := D10
save v0
loop
i := D7
load v0
i := D4
i += v0
load v0
v5 := v0
i := D6
load v0
i := D4
i += v0
load v0
v6 := v0
v0 := 8
v1 := v0
v0 := v6
v0 += v1
v1 := v0
v0 := v5
v2 := v0
v0 -= v1
v0 := v2
if vF != 0 then jump L12
i := D7
load v0
i := D4
i += v0
load v0
v5 := v0
i := D6
load v0
i := D4
i += v0
load v0
v6 := v0
v0 := 8
v1 := v0
v0 := v6
v0 -= v1
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if vF != 0 then jump L11
v0 := 1
i := D8
save v0
jump L12
: L11
v0 := 0
i := D8
save v0
: L12
i := D6
load v0
v5 := v0
i := D10
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 1 then jump L13
i := D6
load v0
v0 += 1
save v0
again
: L13
i := D8
load v0
v5 := v0
v0 := 1
v1 := v5
if v0 != v1 then vF := 1
if vF != 0 then jump L14
i := D7
load v0
v5 := v0
v0 := random 0b11000
v1 := v5
i := D4
i += v1
save v0
: L14
i := D8
load v0
v5 := v0
v0 := 0
v1 := v5
if v0 != v1 then vF := 1
if v0 == v1 then vF := 0
if vF != 0 then jump L9
i := D7
load v0
i := D3
i += v0
load v0
vA := v0
i := D7
load v0
i := D4
i += v0
load v0
vB := v0
v0 := 0
i := D1
i += v0
sprite vA vB 8
i := D7
load v0
v5 := v0
i := D9
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 1 then jump L15
i := D7
load v0
v0 += 1
save v0
jump L2
: L15
loop
v0 := random 0b111
i := D5
save v0
i := D5
load v0
i := D3
i += v0
load v0
vA := v0
i := D5
load v0
i := D4
i += v0
load v0
vB := v0
i := D5
load v0
i := D2
i += v0
load v0
i := D1
i += v0
load v0
sprite vA vB 8
v0 := 10
delay := v0
i := D5
load v0
v5 := v0
i := D5
load v0
i := D2
i += v0
load v0
v6 := v0
v0 := 8
v1 := v0
v0 := v6
v0 += v1
v1 := v5
i := D2
i += v1
save v0
i := D5
load v0
i := D2
i += v0
load v0
v5 := v0
v0 := 32
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if vF != 0 then jump L16
i := D5
load v0
v5 := v0
v0 := 0
v1 := v5
i := D2
i += v1
save v0
: L16
i := D5
load v0
v5 := v0
v0 := 50
v1 := v5
if v0 != v1 then vF := 1
if v0 == v1 then vF := 0
if vF != 0 then
again
loop
again
0x81 0x0 0xa5 0xc7 0x62 0x1 0x8e 0x25 0xfe 0x1e 0xf0 0x65 0x0 0xee 0x62 0x1 0x63 0x0 0x83 0x4 0x81 0x25 0x31 0x0 0x15 0x1b 0x80 0x30 0x0 0xee 0xa5 0xc7 0xfe 0x1e 0xf6 0x55 0x66 0x0 0x82 0x0 0x82 0x15 0x3f 0x1 0x15 0x53 0x83 0x0 0x83 0x6 0x84 0x10 0x65 0x1 0x82 0x30 0x82 0x45 0x3f 0x1 0x15 0x4d 0x84 0xe 0x85 0xe 0x15 0x3f 0x80 0x45 0x86 0x54 0x15 0x2f 0xf5 0x65 0x80 0x60 0x0 0xee 0x82 0x0 0x80 0x15 0x3f 0x0 0x15 0x59 0x80 0x20 0x0 0xee 0xa5 0x7d 0xf0 0x33 0xf2 0x65 0xf0 0x29 0xd3 0x45 0x73 0x6 0xf1 0x29 0xd3 0x45 0x73 0x6 0xf2 0x29 0xd3 0x45 0x0 0xee 0x28 0x63 0x29
: D1
0x0 0x0 0x0 0x10 0x0 0x0 0x0 0x0 0x0 0x0 0x38 0x28 0x38 0x0 0x0 0x0 0x0 0x54 0x0 0x44 0x0 0x54 0x0 0x0 0x92 0x0 0x0 0x82 0x0 0x0 0x92 0x0 0x92 0x54 0x38 0xfe 0x38 0x54 0x92 0x0
: D2
0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8
: D3
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D4
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D5
0x0
: D6
0x0
: D7
0x0
: D8
0x0
: D9
0x0 0x0
: D10
0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Demos/Trip8 Demo (2008) [Revival Studios].ch8
######################################################################
:proto L1 # 214
:proto Sub1 # 270
:proto Sub2 # 290
:proto Sub3 # 2A2
:proto Sub4 # 2B4
:proto Sub5 # 2C6
:proto Sub6 # 2CC
:proto Sub7 # 2D4
:proto Sub8 # 2DC
:proto Sub9 # 2E4
:proto Sub10 # 2EC
:proto Sub11 # 2F4
:proto Sub12 # 2FC
:proto Sub13 # 308
:proto Sub14 # 318
:proto Sub15 # 324
:proto Sub16 # 33A
:proto Sub17 # 350
:proto Sub18 # 366
:proto Sub19 # 386
:proto Sub20 # 3BE
:proto Sub21 # 3C6
:proto D1 # 41E
:proto Sub22 # 448
:proto D2 # 47C
:proto D3 # 480
:proto D4 # 483
:proto D5 # 583
:proto D6 # 683
:proto D7 # 983
:proto D8 # B83
:proto D9 # D83
: main
jump L1
0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x53 0x54 0x55 0x44 0x49 0x4f 0x53 0x32 0x30 0x30 0x38
: L1
clear
vD := 32
delay := vD
Sub20
Sub21
vD := 64
delay := vD
Sub20
Sub21
vD := 32
delay := vD
Sub20
i := D4
Sub22
vD := 128
delay := vD
Sub20
i := D4
Sub22
i := D5
Sub22
vD := 0
vB := 0
Sub5
loop
if vB == 0 then Sub9
if vB == 1 then Sub19
if vB == 2 then Sub10
if vB == 3 then Sub19
if vB == 4 then Sub11
if vB == 5 then Sub19
v0 := 1
delay := v0
Sub20
vD += 1
v0 := 63
vC := vD
vC &= v0
if vC == 0 then Sub1
again
: Sub1
if vB == 0 then Sub2
if vB == 1 then Sub6
if vB == 2 then Sub3
if vB == 3 then Sub7
if vB == 4 then Sub4
if vB == 5 then Sub8
vB += 1
if vB == 6 then vB := 0
return
: Sub2
Sub13
v9 := random 0b11
v9 += v9
v9 += v9
v9 += v9
v9 += v9
v9 += v9
Sub18
return
: Sub3
Sub12
v9 := random 0b11
v9 += v9
v9 += v9
v9 += v9
v9 += v9
v9 += v9
Sub18
return
: Sub4
Sub14
v9 := random 0b11
v9 += v9
v9 += v9
v9 += v9
v9 += v9
v9 += v9
Sub18
return
: Sub5
vE := 0
Sub13
return
: Sub6
Sub18
vE := 0
Sub12
return
: Sub7
Sub18
vE := 0
Sub14
return
: Sub8
Sub18
vE := 0
Sub13
return
: Sub9
Sub13
vE += 3
Sub13
return
: Sub10
Sub12
vE += 2
Sub12
return
: Sub11
Sub14
vE += 2
Sub14
return
: Sub12
vC := 0
Sub16
Sub16
Sub16
Sub16
return
: Sub13
vC := 0
Sub15
Sub15
Sub15
Sub15
Sub15
Sub15
return
: Sub14
vC := 0
Sub17
Sub17
Sub17
Sub17
return
: Sub15
i := D6
i += vE
i += vE
i += vE
i += vE
i += vC
load v1
i := D2
sprite v0 v1 4
vC += 2
return
: Sub16
i := D7
i += vE
i += vE
i += vE
i += vE
i += vC
load v1
i := D2
sprite v0 v1 4
vC += 2
return
: Sub17
i := D8
i += vE
i += vE
i += vE
i += vE
i += vC
load v1
i := D2
sprite v0 v1 4
vC += 2
return
: Sub18
vC := 0
loop
v0 := 31
vA := vD
vA += vC
vA &= v0
vA += v9
i := D9
i += vA
i += vA
load v1
i := D3
sprite v0 v1 3
vC += 1
if vC != 8 then
again
return
: Sub19
v0 := 31
vA := vD
vA &= v0
vA += v9
i := D9
i += vA
i += vA
load v1
i := D3
sprite v0 v1 3
v0 := 31
vA := vD
vA += 8
vA &= v0
vA += v9
i := D9
i += vA
i += vA
load v1
i := D3
sprite v0 v1 3
return
0xa6 0x83 0xfd 0x1e 0xf0 0x65 0x30 0x0 0xf0 0x18 0x0 0xee
: Sub20
loop
v0 := delay
if v0 != 0 then
again
return
: Sub21
vD := 4
v1 := 12
v0 := 28
v2 := 18
i := D1
i += v2
sprite v0 v1 6
delay := vD
Sub20
v0 := 20
v2 := 12
i := D1
i += v2
sprite v0 v1 6
v0 := 36
v2 := 24
i := D1
i += v2
sprite v0 v1 6
delay := vD
Sub20
v0 := 12
v2 := 6
i := D1
i += v2
sprite v0 v1 6
v0 := 44
v2 := 30
i := D1
i += v2
sprite v0 v1 6
delay := vD
Sub20
i := D1
v0 := 4
sprite v0 v1 6
v0 := 52
v2 := 36
i := D1
i += v2
sprite v0 v1 6
delay := vD
Sub20
return
: D1
0x0 0x0 0xc 0x11 0x11 0x10 0x0 0x0 0x95 0x55 0x95 0xcd 0x0 0x0 0x53 0x55 0x55 0x33 0x40 0x40 0x44 0x42 0x41 0x46 0x0 0x40 0x6a 0x4a 0x4a 0x46 0x0 0x20 0x69 0xaa 0xaa 0x69 0x0 0x0 0x20 0x90 0x88 0x30
: Sub22
v4 := 1
v5 := 7
v2 := 0
v3 := 0
: L4
v0 := 0
loop
v1 := v3
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
i += v4
v0 += 8
if v0 != 64 then
again
v3 += 3
v3 &= v5
v2 += 1
if v2 != 8 then jump L4
return
: D2
0x60 0xb0 0xf0 0x60
: D3
0x40 0xa0 0x40
: D4
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x6 0x0 0x0 0x0 0xc6 0x0 0x0 0x0 0xdb 0x0 0x0 0x0 0x30 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x5f 0x6 0x0 0x0 0xfe 0xc6 0x0 0x0 0xd3 0xfb 0x0 0x0 0xf0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x6 0x0 0x0 0x0 0xf6 0x0 0x0 0x0 0xfb 0xe0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x6 0x6 0x0 0x0 0x0 0xc6 0x0 0x0 0x0 0xdb 0x0 0x0 0x0 0x30 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x6 0x6 0x0 0x0 0x0 0xc6 0x0 0x0 0x3 0xf1 0x0 0x0 0x30 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x6 0x0 0x0 0x0 0xc6 0x0 0x0 0x0 0xd9 0x0 0x0 0x0 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2f 0x6 0x0 0x0 0xff 0xc6 0x0 0x0 0x69 0xdb 0x0 0x0 0xe0 0x30 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x6 0x0 0x0 0x0 0x76 0x0 0x0 0x0 0xf3 0xe0 0x0 0x0 0x30 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D5
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1f 0x7 0xf 0x0 0xff 0xfe 0xfc 0x7e 0x0 0x0 0x3e 0x7c 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2f 0x1b 0x7 0x0 0xff 0xf0 0xfb 0x1f 0x0 0x0 0xfe 0xb0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x17 0xf 0x0 0x0 0xff 0xf8 0x7e 0xf 0x0 0xc 0x14 0x38 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2f 0xb 0xf 0x0 0xfe 0xe0 0xfc 0x3f 0x0 0x0 0x7e 0xfc 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x17 0x1f 0x3 0x0 0xff 0xf0 0xff 0x1f 0x80 0x0 0xfe 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xb 0xf 0x0 0x0 0xfe 0xf8 0x7e 0xf 0x0 0x1c 0x3e 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x17 0x17 0xf 0x0 0xfe 0xc0 0xf8 0x3f 0x0 0x0 0xfe 0xfc 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2b 0x1f 0x0 0x0 0xff 0xe0 0x7f 0x1f 0x80 0x4 0x1c 0x3c
: D6
0x4 0x5 0x1b 0x5 0x1b 0x17 0x4 0x17 0x7 0x8 0x17 0x8 0x1c 0x8 0x15 0x1a 0x6 0x3 0x0 0x14 0x1b 0xa 0x16 0x16 0x1a 0xa 0xe 0x1a 0x8 0x2 0x0 0x10 0x1e 0xc 0x15 0x17 0x18 0xb 0x8 0x19 0xb 0x1 0x0 0xd 0x20 0xf 0x13 0x19 0x15 0xa 0x3 0x15 0x20 0x12 0xe 0x1 0x10 0x1a 0x1 0xb 0x14 0x8 0x0 0x11 0x1f 0x14 0xd 0x1b 0x12 0x1 0x4 0x9 0x15 0x6 0x0 0xd 0x1d 0x16 0xa 0x1b 0x15 0x3 0x6 0x8 0x18 0x5 0x1 0x9 0x1c 0x16 0x6 0x19 0x17 0x5 0x7 0x8 0x1b 0x5 0x4 0x5 0x1b 0x17 0x4 0x17 0x17 0x8 0x8 0x8 0x4 0x14 0x9 0x2 0x1a 0x18 0x1e 0x7 0x5 0x13 0x8 0x7 0x5 0x12 0xe 0x1 0x19 0x19 0x1f 0xa 0x2 0x12 0x8 0x6 0x8 0x12 0x14 0x2 0x18 0x1a 0x20 0xc 0x0 0x10 0x9 0x5 0xa 0x12 0x19 0x4 0x15 0x1b 0x0 0xe 0x1f 0xe 0xb 0x3 0xc 0x14 0x1d 0x8 0x0 0xb 0xe 0x1 0x11 0x1b 0x1d 0x11 0xb 0x17 0x1f 0xd 0x0 0x8 0x12 0x1 0xd 0x1a 0x1b 0x12 0x8 0x18 0x1e 0x12 0x2 0x7 0x17 0x2 0xa 0x17 0x19 0x13 0x1b 0x17 0x1b 0x5 0x4 0x17 0x4 0x5 0x17 0x8 0x17 0x14 0x1d 0xa 0x6 0x4 0x15 0x1a 0x1 0x15 0x1b 0x9 0xb 0x5 0x1b 0xe 0x8 0x3 0xe 0x1b 0x0 0x11 0x1e 0xc 0x10 0x4 0x17 0x12 0xa 0x2 0x8 0x1a 0x1f 0xf 0x0 0xd 0x16 0x4 0x10 0x14 0xd 0x2 0x1e 0x14 0x3 0x16 0x1b 0x6 0x2 0x9 0x9 0x13 0x10 0x1 0x1a 0x18 0x1f 0xa 0x1 0x12 0x7 0x6 0x4 0xf 0x14 0x2 0x13 0x1b 0x20 0xe 0x1 0xe 0xd 0x5 0x2 0xa 0x18 0x3 0xb 0x1b 0x1f 0x13 0x4 0xa 0x12 0x5 0x4 0x17 0x4 0x5 0x1b 0x17 0x1b 0x5 0x8 0x14 0x8 0x8 0x15 0x19 0x1e 0x8 0x0 0x11 0x9 0x2 0x14 0x17 0x1b 0xc 0xe 0x17 0x1f 0xb 0x0 0xb 0xf 0x1 0x10 0x1a 0x1c 0x10 0x9 0x13 0x1f 0xe 0x2 0x6 0x15 0x2 0xa 0x1a 0x1a 0x15 0x8 0xe 0x1f 0xf 0x8 0x2 0x5 0x18 0x1a 0x5 0x17 0x19 0xa 0x9 0x1e 0x12 0x0 0x14 0xe 0x1 0x11 0x1b 0x1c 0x9 0xf 0x5 0x1d 0x14 0x0 0xe 0xc 0x1b 0x13 0x2 0x1d 0xe 0x15 0x4 0x1c 0x15 0x0 0xa 0x7 0x1a 0x16 0x5 0x1b 0x11 0x1b 0x5 0x4 0x5 0x4 0x17 0x1b 0x17 0x18 0x8 0x8 0x8 0x3 0x14 0xa 0x2 0x19 0x19 0x1f 0x8 0x4 0x12 0x9 0x6 0x5 0x12 0x11 0x2 0x17 0x1a 0x20 0xc 0x1 0x10 0xa 0x5 0x7 0x11 0x17 0x3 0x14 0x1b 0x0 0xd 0x20 0xf 0xc 0x3 0xa 0x12 0x1c 0x7 0x0 0xa 0x11 0x1b 0xf 0x2 0x1e 0x11 0xb 0x14 0x1f 0xb 0x0 0x8 0x12 0x1 0xd 0x1b 0x1b 0x13 0xa 0x16 0x1f 0xf 0x2 0x6 0x15 0x1 0xa 0x19 0x19 0x14 0x7 0x17 0x1e 0x13 0x3 0x6 0x19 0x3 0x8 0x17 0x18 0x14 0x1b 0x5 0x4 0x5 0x1b 0x17 0x4 0x17 0x17 0x8 0x8 0x8 0x1b 0x8 0x16 0x1a 0x5 0x4 0x1 0x15 0x1a 0x9 0x17 0x15 0x1a 0xa 0x11 0x1b 0x6 0x3 0x0 0x12 0x1d 0xa 0x17 0x16 0x17 0xa 0xb 0x1a 0x7 0x2 0x0 0x10 0x1f 0xc 0x16 0x17 0x15 0xa 0x6 0x18 0xa 0x1 0x20 0xe 0x0 0xe 0x14 0x19 0x13 0x8 0x2 0x14 0x20 0x11 0xe 0x1 0x11 0x1b 0x2 0xb 0x14 0x5 0x0 0xf 0x1f 0x14 0xd 0x1b 0x12 0x2 0x4 0xa 0x17 0x4 0x1 0xa 0x1d 0x15 0x8 0x1a 0x15 0x5 0x6 0x9 0x1b 0x17 0x1b 0x5 0x4 0x17 0x4 0x5 0x18 0x8 0x18 0x14 0x2 0x12 0x19 0x18 0xa 0x2 0x1e 0x7 0x4 0x13 0x14 0x17 0x4 0xe 0x17 0x19 0x11 0x1 0x20 0xb 0x1 0x10 0xf 0x18 0x8 0xa 0x15 0x1a 0x17 0x2 0x20 0xf 0x0 0xd 0x9 0x18 0xf 0x8 0x12 0x1a 0x1 0x8 0x1c 0x6 0x4 0x16 0x1d 0x13 0x16 0x9 0xf 0x1b 0x5 0x4 0x0 0x12 0x1e 0xa 0x18 0x16 0x1b 0xd 0xb 0x1a 0xc 0x1 0x0 0xe 0x1e 0xe 0x12 0x17 0x1d 0x12 0x7 0x19 0x14 0x1 0x0 0x9 0x1b 0x12 0xd 0x17 0x4 0x17 0x4 0x5 0x1b 0x17 0x1b 0x5 0x8 0x14 0x8 0x8 0xa 0x3 0x1 0x14 0x1f 0xb 0x16 0x1a 0xb 0x5 0x4 0x10 0x11 0x5 0x0 0x11 0x20 0x11 0x10 0x1b 0xf 0x2 0x3 0xc 0x16 0x9 0x0 0xe 0x1d 0x16 0xa 0x1a 0x15 0x2 0x5 0x7 0x17 0xe 0x0 0xd 0x17 0x1a 0x1a 0x4 0x5 0x17 0x8 0x3 0x15 0x13 0x1 0xa 0x1f 0x8 0xe 0x1 0x11 0x1b 0x3 0x13 0x10 0x17 0x2 0x8 0x20 0xe 0x13 0x1 0xc 0x1a 0x2 0xe 0xa 0x18 0x3 0x7 0x1f 0x12 0x18 0x2 0x9 0x17 0x4 0xb
: D7
0x4 0x5 0x1b 0x5 0x1b 0x17 0x4 0x17 0x1c 0x8 0x15 0x1a 0x6 0x3 0x0 0x14 0x1a 0xa 0xe 0x1a 0x8 0x2 0x0 0x10 0x18 0xb 0x8 0x19 0xb 0x1 0x0 0xd 0x15 0xa 0x3 0x15 0xe 0x1 0x1 0xb 0x14 0x8 0x0 0x11 0x12 0x1 0x14 0x12 0x15 0x6 0x0 0xd 0x13 0x14 0x15 0x3 0x18 0x5 0x1 0x9 0x11 0x15 0x17 0x5 0x1b 0x5 0x4 0x5 0x10 0x15 0x17 0x8 0x9 0x2 0x1e 0x7 0xe 0x15 0x8 0x7 0xe 0x1 0x1f 0xa 0xc 0x15 0x8 0x6 0x14 0x2 0xb 0x14 0x20 0xc 0x9 0x5 0x19 0x4 0xa 0x14 0x1f 0xe 0xb 0x3 0x1d 0x8 0x8 0x13 0xe 0x1 0x1d 0x11 0x1f 0xd 0x12 0x1 0x7 0x11 0x1b 0x12 0x1e 0x12 0x17 0x2 0x6 0x10 0x19 0x13 0x1b 0x17 0x1b 0x5 0x6 0xe 0x17 0x8 0x1d 0xa 0x15 0x1a 0x7 0xc 0x1b 0x9 0x1b 0xe 0xe 0x1b 0x8 0xa 0x1e 0xc 0x17 0x12 0x8 0x1a 0x1f 0xf 0xb 0x8 0x10 0x14 0x1e 0x14 0x3 0x16 0xf 0x7 0x9 0x13 0x1a 0x18 0x1 0x12 0x12 0x8 0x4 0xf 0x13 0x1b 0x15 0x9 0x1 0xe 0x2 0xa 0xb 0x1b 0x18 0xb 0x4 0xa 0x4 0x17 0x4 0x5 0x19 0xe 0x8 0x14 0x0 0x11 0x9 0x2 0x18 0x10 0x6 0x12 0x0 0xb 0xf 0x1 0x16 0x13 0x5 0x10 0x2 0x6 0x14 0x14 0x15 0x2 0x5 0xe 0x11 0x14 0x8 0x2 0x1a 0x5 0x5 0xd 0xe 0x13 0xe 0x1 0x1c 0x9 0x6 0xc 0xd 0x11 0x13 0x2 0x1d 0xe 0x6 0xa 0xe 0xf 0x16 0x5 0x1b 0x11 0x7 0x9 0x10 0xe 0x18 0x8 0x8 0x8 0x8 0x14 0x12 0xe 0x4 0x12 0x9 0x6 0x13 0x16 0x14 0xe 0x1 0x10 0xa 0x5 0xf 0x16 0x16 0x10 0x0 0xd 0xc 0x3 0xa 0x15 0x16 0x12 0x0 0xa 0xf 0x2 0x7 0x13 0x0 0x8 0x15 0x13 0x12 0x1 0x5 0x10 0x2 0x6 0x15 0x1 0x13 0x15 0x5 0xe 0x3 0x6 0x19 0x3 0x11 0x15 0x5 0xb 0x1b 0x5 0x4 0x5 0xf 0x15 0x17 0x8 0x1b 0x8 0x5 0x4 0xe 0x15 0x1a 0x9 0x1a 0xa 0x6 0x3 0xc 0x14 0x1d 0xa 0x17 0xa 0x7 0x2 0x1f 0xc 0xb 0x14 0x15 0xa 0xa 0x1 0x20 0xe 0xa 0x13 0x13 0x8 0x20 0x11 0xe 0x1 0x9 0x12 0x14 0x5 0x1f 0x14 0x8 0x11 0x12 0x2 0x17 0x4 0x1d 0x15 0x7 0x10 0x15 0x5 0x1b 0x17 0x1b 0x5 0x6 0xe 0x18 0x8 0x19 0x18 0x1e 0x7 0x7 0xc 0x14 0x17 0x17 0x19 0x20 0xb 0x8 0xa 0xf 0x18 0x15 0x1a 0xb 0x8 0x20 0xf 0x9 0x18 0x12 0x1a 0xe 0x7 0x4 0x16 0x1d 0x13 0xf 0x1b 0x12 0x7 0x0 0x12 0x18 0x16 0xb 0x1a 0x0 0xe 0x16 0x9 0x12 0x17 0x7 0x19 0x0 0x9 0x18 0xb 0xd 0x17 0x4 0x17 0x4 0x5 0x19 0xe 0x8 0x14 0xa 0x3 0x1 0x14 0x18 0x10 0xb 0x5 0x11 0x5 0x0 0x11 0x16 0x12 0xf 0x2 0x16 0x9 0x0 0xe 0x15 0x2 0x13 0x13 0x17 0xe 0x0 0xd 0x1a 0x4 0x8 0x3 0x15 0x13 0x1 0xa 0x1f 0x8 0xe 0x1 0x10 0x17 0x2 0x8 0x20 0xe 0x13 0x1 0xa 0x18 0x3 0x7 0x1f 0x12 0x18 0x2
: D8
0x10 0xe 0x6 0x7 0x19 0x7 0x19 0x15 0xd 0xe 0x1b 0x9 0x16 0x17 0x9 0x5 0xb 0xe 0x1c 0xc 0x12 0x18 0xd 0x4 0x1c 0xe 0x9 0xc 0xe 0x19 0x11 0x4 0x1b 0xe 0x9 0xa 0xb 0x18 0x14 0x5 0x1a 0xe 0x7 0x16 0xa 0x9 0x14 0x12 0x1a 0xe 0x5 0x14 0xc 0x7 0x13 0x14 0x1a 0xe 0x4 0x11 0xe 0x7 0x11 0x15 0x1b 0xe 0x4 0xe 0x10 0x15 0x10 0x7 0x6 0xc 0x1c 0xf 0xe 0x15 0x11 0x7 0xa 0xa 0x1d 0x10 0xc 0x15 0x13 0x8 0xe 0xa 0x1c 0x12 0xb 0x14 0x14 0x8 0x12 0xb 0xa 0x14 0x1a 0x14 0x5 0x8 0x15 0xe 0x7 0x6 0x8 0x13 0x17 0x16 0x15 0x11 0xa 0x4 0x7 0x11 0x17 0xb 0x13 0x15 0xd 0x4 0x6 0x10 0x18 0xc 0x10 0x17 0x10 0x5 0x6 0xe 0x19 0xe 0x11 0x7 0xb 0x17 0x18 0x10 0x7 0xc 0x11 0x9 0x6 0x16 0x17 0x12 0x8 0xa 0x10 0xa 0x3 0x13 0x14 0x14 0x1a 0xa 0xe 0xb 0x11 0x15 0x1d 0xd 0x3 0xf 0xd 0xa 0x1d 0x10 0xd 0x15 0x12 0x8 0xc 0x8 0x1a 0x14 0x9 0x13 0x15 0x9 0xd 0x6 0x15 0x17 0x7 0x11 0x18 0xb 0x10 0x17 0x10 0x5 0x19 0xe 0x6 0xe 0xa 0x15 0x13 0x5 0x18 0x10 0x7 0xc 0x6 0x10 0x17 0x5 0x16 0x13 0x9 0xa 0x5 0xc 0x1a 0x7 0x14 0x14 0xc 0x9 0x8 0x7 0x11 0x14 0x1c 0xa 0x5 0x11 0xc 0x4 0xe 0x13 0x1d 0xd 0x4 0xf 0xd 0x11 0x11 0x3 0x1d 0x10 0x3 0xd 0xe 0xf 0x16 0x4 0x1b 0x13 0x4 0x9 0x10 0xe 0x19 0x7 0x6 0x7 0x6 0x15 0x12 0xe 0x4 0x13 0x9 0x5 0x16 0x17 0x14 0xe 0x3 0x10 0xd 0x4 0x12 0x18 0x3 0xe 0x16 0x10 0x11 0x3 0xe 0x18 0x4 0xe 0x16 0x12 0x14 0x4 0xb 0x17 0x5 0xe 0x18 0x6 0x15 0x13 0xb 0xa 0x5 0xe 0x1a 0x8 0x13 0x15 0xc 0x8 0x5 0xe 0x1b 0xb 0x11 0x15 0xe 0x7 0x1b 0xe 0x4 0xe 0xf 0x15 0xf 0x7 0x19 0x10 0x3 0xd 0x11 0x7 0xe 0x15 0x15 0x12 0x2 0xc 0x13 0x7 0xc 0x14 0x11 0x12 0x3 0xa 0x14 0x8 0xb 0x14 0xd 0x11 0x15 0x8 0x5 0x8 0x1a 0x14 0xa 0xe 0x18 0x16 0x17 0x9 0x8 0x6 0xa 0xb 0x15 0x18 0x18 0xb 0x8 0x11 0xc 0x7 0x12 0x18 0x19 0xc 0x7 0x10 0x10 0x17 0x10 0x5 0x6 0xe 0x19 0xe 0xe 0x15 0x14 0x5 0x7 0xc 0x18 0x10 0xe 0x13 0x19 0x6 0x8 0xa 0x17 0x12 0xf 0x12 0x1c 0x9 0xb 0x8 0x5 0x12 0x11 0x11 0xe 0x7 0x2 0xf 0x1c 0xd 0x12 0x12 0x2 0xc 0x12 0x7 0xd 0x14 0x13 0x14 0x5 0x8 0x16 0x9 0xa 0x13 0x12 0x16 0xa 0x5 0x18 0xb 0x7 0x11 0xf 0x17 0x10 0x5 0x19 0xe 0x6 0xe 0x15 0x7 0xc 0x17 0x7 0xc 0x18 0x10 0x19 0xc 0x8 0x17 0x9 0x9 0x16 0x12 0x1a 0x10 0x5 0x15 0xb 0x8 0x13 0x13 0x17 0x15 0xe 0x8 0x3 0x12 0x1a 0xb 0x13 0x18 0x11 0x9 0x2 0xf 0x1b 0xd 0x12 0xb 0xe 0x19 0x2 0xc 0x1c 0xf 0x11 0xd 0x9 0x18 0x4 0x9 0x1b 0x13
: D9
0x10 0x10 0xc 0x14 0x7 0x17 0x4 0x1a 0x3 0x1c 0x3 0x1d 0x5 0x1d 0x8 0x1b 0xc 0x19 0x10 0x16 0x14 0x13 0x17 0x10 0x1a 0xd 0x1b 0xa 0x1b 0x8 0x19 0x6 0x17 0x5 0x13 0x6 0x10 0x7 0xd 0x8 0xa 0xb 0x7 0xe 0x6 0x10 0x6 0x12 0x8 0x15 0xa 0x17 0xd 0x18 0x10 0x19 0x13 0x19 0x16 0x18 0x18 0x17 0x19 0x14 0x10 0x19 0xf 0x17 0xd 0x17 0xa 0x19 0x6 0x1a 0x6 0x16 0x9 0x13 0x9 0x11 0x7 0x10 0x3 0xe 0x3 0xb 0x8 0xb 0xb 0xb 0xc 0xa 0xc 0x6 0xe 0x2 0x10 0x4 0x11 0x8 0x12 0xa 0x14 0x9 0x19 0x7 0x1b 0x9 0x19 0xd 0x17 0xf 0x17 0x10 0x1a 0x12 0x1d 0x15 0x1a 0x16 0x15 0x15 0x14 0x16 0x13 0x18 0x12 0x1d 0x10 0x19 0xe 0x17 0xd 0x17 0xb 0x17 0x8 0x17 0x5 0x19 0x2 0x19 0x3 0x17 0x8 0x14 0xb 0x12 0xe 0x11 0x10 0x10 0x11 0x10 0x14 0xe 0x19 0xb 0x1c 0x9 0x1c 0x9 0x19 0x9 0x17 0xa 0x16 0xa 0x14 0x9 0x13 0x7 0x11 0x4 0xf 0x2 0xb 0x3 0x9 0x6 0x9 0x9 0x9 0xa 0x9 0xb 0x8 0xb 0x7 0xb 0x7 0xb 0x10 0x19 0x13 0x18 0x15 0x17 0x16 0x16 0x18 0x15 0x18 0x15 0x18 0x14 0x15 0x12 0x10 0x10 0xb 0xe 0x9 0xc 0x8 0xc 0x9 0xb 0xa 0xa 0xb 0x9 0xd 0x8 0x10 0x6 0x14 0x4 0x1a 0x3 0x1d 0x4 0x1c 0x8 0x19 0xb 0x15 0xd 0x12 0xf 0x10 0x10 0xd 0x11 0xa 0x13 0x6 0x16 0x3 0x19 0x3 0x1c 0x7 0x1c 0xc 0x1a
######################################################################
# INPUT: chip8/Chip-8 Demos/Zero Demo [zeroZshadow, 2007].ch8
######################################################################
:proto D1 # 278
:proto D2 # 27E
:proto D3 # 284
:proto D4 # 28A
: main
v0 := 10
v5 := 5
v6 := 10
v7 := 15
v8 := 20
v1 := 1
v2 := 1
v3 := 1
v4 := 1
v0 := 10
i := D1
sprite v0 v5 6
v0 += 10
i := D2
sprite v0 v6 6
v0 += 10
i := D3
sprite v0 v7 6
v0 += 10
i := D4
sprite v0 v8 6
loop
vA := 3
delay := vA
v0 := 10
i := D1
sprite v0 v5 6
if v5 == 20 then v1 := -1
if v5 == 1 then v1 := 1
v5 += v1
sprite v0 v5 6
v0 += 10
i := D2
sprite v0 v6 6
if v6 == 20 then v2 := -1
if v6 == 1 then v2 := 1
v6 += v2
sprite v0 v6 6
v0 += 10
i := D3
sprite v0 v7 6
if v7 == 20 then v3 := -1
if v7 == 1 then v3 := 1
v7 += v3
sprite v0 v7 6
v0 += 10
i := D4
sprite v0 v8 6
if v8 == 20 then v4 := -1
if v8 == 1 then v4 := 1
v8 += v4
sprite v0 v8 6
again
: D1
0xff 0x3 0xc 0x30 0xc0 0xff
: D2
0xff 0xc0 0xc0 0xfc 0xc0 0xff
: D3
0xf0 0xcc 0xcc 0xf0 0xcc 0xc3
: D4
0x3c 0xc3 0xc3 0xc3 0xc3 0x3c
######################################################################
# INPUT: chip8/Chip-8 Games/15 Puzzle [Roger Ivie] (alt).ch8
######################################################################
:proto L3 # 234
:proto Sub2 # 246
:proto Sub3 # 25E
:proto Sub4 # 276
:proto Sub5 # 28E
:proto Sub6 # 2A6
:proto Sub7 # 2BE
:proto L4 # 2D2
:proto Sub8 # 2D8
:proto D2 # 2E8
:proto D3 # 2F8
: main
clear
0x6c : D1 0x0 # SMC: vC := 0
if vC == 0 then vE := 15
i := D1
v0 := 32
save v0
clear
loop
Sub7
Sub4
Sub5
Sub3
Sub2
again
: Sub1
v1 := 0
v2 := 23
v3 := 4
: L2
loop
if v1 == 16 then return
i := D2
i += v1
load v0
if v0 == 0 then jump L3
i := hex v0
sprite v2 v3 5
: L3
v1 += 1
v2 += 5
v4 := 3
v4 &= v1
if v4 != 0 then jump L2
v2 := 23
v3 += 6
again
: Sub2
loop
v4 := 3
v4 &= vE
v5 := 3
v5 &= vD
if v4 == v5 then return
if v4 == 3 then return
v4 := 1
v4 += vE
Sub6
again
: Sub3
loop
v4 := 3
v4 &= vE
v5 := 3
v5 &= vD
if v4 == v5 then return
if v4 == 0 then return
v4 := -1
v4 += vE
Sub6
again
: Sub4
loop
v4 := 12
v4 &= vE
v5 := 12
v5 &= vD
if v4 == v5 then return
if v4 == 0 then return
v4 := -4
v4 += vE
Sub6
again
: Sub5
loop
v4 := 12
v4 &= vE
v5 := 12
v5 &= vD
if v4 == v5 then return
if v4 == 12 then return
v4 := 4
v4 += vE
Sub6
again
: Sub6
i := D2
i += v4
load v0
i := D2
i += vE
save v0
v0 := 0
i := D2
i += v4
save v0
vE := v4
return
: Sub7
if vC != 0 then jump L4
Sub1
Sub8
Sub1
i := D3
i += vD
load v0
vD := v0
return
: L4
vC += -1
vD := random 0b1111
return
: Sub8
loop
vD += 1
v0 := 15
vD &= v0
if vD -key then
again
loop
if vD key then
again
return
: D2
0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x0
: D3
0xd 0x0 0x1 0x2 0x4 0x5 0x6 0x8 0x9 0xa 0xc 0xe 0x3 0x7 0xb 0xf
######################################################################
# INPUT: chip8/Chip-8 Games/15 Puzzle [Roger Ivie].ch8
######################################################################
:proto L3 # 234
:proto Sub2 # 246
:proto Sub3 # 25E
:proto Sub4 # 276
:proto Sub5 # 28E
:proto Sub6 # 2A6
:proto Sub7 # 2BE
:proto L4 # 2D2
:proto Sub8 # 2D8
:proto D2 # 2E8
:proto D3 # 2F8
: main
clear
0x6c : D1 0x0 # SMC: vC := 0
if vC == 0 then vE := 15
i := D1
v0 := 32
save v0
clear
loop
Sub7
Sub4
Sub5
Sub3
Sub2
again
: Sub1
v1 := 0
v2 := 23
v3 := 4
: L2
loop
if v1 == 16 then return
i := D2
i += v1
load v0
if v0 == 0 then jump L3
i := hex v0
sprite v2 v3 5
: L3
v1 += 1
v2 += 5
v4 := 3
v4 &= v1
if v4 != 0 then jump L2
v2 := 23
v3 += 6
again
: Sub2
loop
v4 := 3
v4 &= vE
v5 := 3
v5 &= vD
if v4 == v5 then return
if v4 == 3 then return
v4 := 1
v4 += vE
Sub6
again
: Sub3
loop
v4 := 3
v4 &= vE
v5 := 3
v5 &= vD
if v4 == v5 then return
if v4 == 0 then return
v4 := -1
v4 += vE
Sub6
again
: Sub4
loop
v4 := 12
v4 &= vE
v5 := 12
v5 &= vD
if v4 == v5 then return
if v4 == 0 then return
v4 := -4
v4 += vE
Sub6
again
: Sub5
loop
v4 := 12
v4 &= vE
v5 := 12
v5 &= vD
if v4 == v5 then return
if v4 == 12 then return
v4 := 4
v4 += vE
Sub6
again
: Sub6
i := D2
i += v4
load v0
i := D2
i += vE
save v0
v0 := 0
i := D2
i += v4
save v0
vE := v4
return
: Sub7
if vC != 0 then jump L4
Sub1
Sub8
Sub1
i := D3
i += vD
load v0
vD := v0
return
: L4
vC += -1
vD := random 0b1111
return
: Sub8
loop
vD += 1
v0 := 15
vD &= v0
if vD -key then
again
loop
if vD key then
again
return
: D2
0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x0
: D3
0xd 0x0 0x1 0x2 0x4 0x5 0x6 0x8 0x9 0xa 0xc 0xe 0x3 0x7 0xb 0xf 0x84 0xe4 0x22 0xa6 0x12 0x76 0x64 0xc 0x84 0xe2 0x65 0xc 0x85 0xd2 0x94 0x50 0x0 0xee 0x44 0xc 0x0 0xee 0x64 0x4 0x84 0xe4 0x22 0xa6 0x12 0x8e 0xa2 0xe8 0xf4 0x1e 0xf0 0x65 0xa2 0xe8 0xfe 0x1e 0xf0 0x55 0x60 0x0 0xa2 0xe8 0xf4 0x1e 0xf0 0x55 0x8e 0x40 0x0 0xee 0x3c 0x0 0x12 0xd2 0x22 0x1c 0x22 0xd8 0x22 0x1c 0xa2 0xf8 0xfd 0x1e 0xf0 0x65 0x8d 0x0 0x0 0xee 0x7c 0xff 0xcd 0xf 0x0 0xee 0x7d 0x1 0x60 0xf 0x8d 0x2 0xed 0x9e 0x12 0xd8 0xed 0xa1 0x12 0xe2 0x0 0xee 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x0 0xd 0x0 0x1 0x2 0x4 0x5 0x6 0x8
######################################################################
# INPUT: chip8/Chip-8 Games/Addition Problems [Paul C. Moews].ch8
######################################################################
:proto L1 # 262
:proto L2 # 26A
:proto Sub1 # 276
:proto D1 # 288
:proto D2 # 28E
:proto D3 # 292
:proto D4 # 2A2
:proto D5 # 2A5
: main
loop
clear
vD := random 0b1111111
vE := random 0b1111111
vC := vD
vC += vE
i := D4
vA := 0
vB := 0
bcd vD
load v2
Sub1
i := D1
vA += 7
sprite vA vB 5
i := D4
vA += 8
bcd vE
load v2
Sub1
i := D2
vA += 7
sprite vA vB 4
i := D3
vA := 24
vB := 8
sprite vA vB 15
v0 := key
v1 := key
v2 := key
sprite vA vB 15
vA := 21
Sub1
i := D5
save v2
i := D4
bcd vC
load v5
v3 -= v0
if v3 != 0 then jump L1
v4 -= v1
if v4 != 0 then jump L1
v5 -= v2
if v5 != 0 then jump L1
v6 := 12
buzzer := v6
jump L2
: L1
vA := 21
vB := 16
Sub1
v6 := 14
: L2
vA := 38
vB := 8
i := hex v6
sprite vA vB 5
v0 := key
again
: Sub1
i := hex v0
sprite vA vB 5
vA += 5
i := hex v1
sprite vA vB 5
vA += 5
i := hex v2
sprite vA vB 5
return
: D1
0x20 0x20 0xf8 0x20 0x20 0x0
: D2
0x0 0xff 0x0 0xff
: D3
0xff 0xff 0x3 0x3 0x3 0xff 0xff 0xc0 0xc0 0xc0 0xc0 0xc0 0x0 0xc0 0xc0 0x0
: D4
0x0 0x0 0x0
: D5
0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Airplane.ch8
######################################################################
:proto L4 # 23E
:proto Sub1 # 242
:proto Sub2 # 26C
:proto Sub3 # 27A
:proto Sub4 # 288
:proto Sub5 # 296
:proto Sub6 # 2A4
:proto Sub7 # 2B2
:proto L5 # 2E4
:proto L6 # 2F4
:proto L7 # 308
:proto Sub8 # 30A
:proto Sub9 # 320
:proto Sub10 # 326
:proto D1 # 354
:proto D2 # 356
:proto D3 # 357
:proto D4 # 359
:proto D5 # 35B
:proto D6 # 35F
:proto D7 # 360
:proto D8 # 361
:proto D9 # 362
: main
vA := 0
vB := 4
vC := 1
vD := 0
vE := 2
: L1
Sub10
Sub9
v0 := 48
v1 := 1
delay := v0
loop
v0 := delay
buzzer := v1
if v0 != 0 then
again
Sub1
loop
Sub9
vD += 1
Sub9
v0 := 8
if v0 key then Sub8
if vA == 0 then jump L4
i := D9
sprite v8 v9 1
v9 += 1
sprite v8 v9 1
if vF == 1 then jump L6
if v9 == 24 then jump L5
: L4
Sub7
again
: Sub1
if vC == 1 then Sub2
if vC == 2 then Sub3
if vC == 3 then Sub4
if vC == 4 then Sub5
if vC == 5 then Sub6
i := D4
sprite v6 v7 2
if v4 == 0 then return
i := D3
sprite v4 v5 2
if v2 == 0 then return
i := D5
sprite v2 v3 2
return
: Sub2
v6 := 40
v7 := 9
v4 := 0
v5 := 0
v2 := 0
v3 := 0
return
: Sub3
v6 := 40
v7 := 14
v4 := 40
v5 := 20
v2 := 0
v3 := 0
return
: Sub4
v6 := 40
v7 := 7
v4 := 40
v5 := 12
v2 := 22
v3 := 17
return
: Sub5
v6 := 40
v7 := 7
v4 := 40
v5 := 14
v2 := 22
v3 := 20
return
: Sub6
v6 := 40
v7 := 5
v4 := 40
v5 := 16
v2 := 22
v3 := 11
return
: Sub7
i := D4
sprite v6 v7 2
v6 += -2
sprite v6 v7 2
if v4 == 0 then return
i := D3
sprite v4 v5 2
v4 += 2
if v4 == 68 then v4 += 192
sprite v4 v5 2
if v2 == 0 then return
i := D5
sprite v2 v3 2
v2 += 2
if vC == 4 then v2 += 2
if vC == 5 then v2 += 2
if v2 == 68 then v2 += 192
sprite v2 v3 2
return
: L5
vC += 1
vD := 0
vE := 2
clear
if vC == 6 then vC := 1
vA := 0
jump L1
: L6
v0 := 6
buzzer := v0
vB += -1
if vB == 0 then jump L7
vD := 0
vE := 2
clear
vA := 0
jump L1
: L7
loop
again
: Sub8
if vA == 1 then return
v0 := 2
buzzer := v0
vA := 1
v8 := vD
v8 += 1
v9 := vE
v9 += 1
sprite v8 v9 1
return
: Sub9
i := D1
sprite vD vE 2
return
: Sub10
v4 := 25
v3 := 0
i := D2
loop
sprite v3 v4 1
v3 += 8
if v3 != 64 then
again
v3 := 30
v4 := 27
i := hex vC
sprite v3 v4 5
if vB == 4 then i := D6
if vB == 3 then i := D7
if vB == 2 then i := D8
if vB == 1 then i := D9
v3 := 1
v4 += 2
sprite v3 v4 1
return
: D1
0x80 0xf8
: D2
0xff
: D3
0x80 0xe0
: D4
0x10 0x70
: D5
0x88 0xee 0x11 0x77
: D6
0xaa
: D7
0xa8
: D8
0xa0
: D9
0x80 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Animal Race [Brian Astle].ch8
######################################################################
:proto L4 # 288
:proto L5 # 28C
:proto L6 # 292
:proto L9 # 2B8
:proto L13 # 2F6
:proto L19 # 35A
:proto L20 # 372
:proto L21 # 380
:proto L23 # 3C0
:proto L25 # 3E4
:proto L26 # 3EE
:proto L29 # 40C
:proto L34 # 436
:proto Sub1 # 44A
:proto Sub2 # 458
:proto Sub3 # 466
:proto Sub4 # 480
:proto Sub5 # 482
:proto Sub6 # 484
:proto Sub7 # 486
:proto Sub8 # 490
:proto Sub9 # 492
:proto Sub10 # 494
:proto Sub11 # 496
:proto Sub12 # 4A0
:proto Sub13 # 4B2
:proto Sub14 # 4C0
:proto D1 # 4D6
:proto D2 # 4D8
:proto D3 # 500
:proto D4 # 525
:proto D5 # 5B5
:proto D6 # 5E2
:proto D7 # 5F6
:proto D8 # 5FD
:proto D9 # 600
:proto D10 # 680
:proto D11 # 68A
:proto D12 # 694
:proto D13 # 69E
:proto D14 # 6A0
:proto D15 # 6A5
: main
vD := 10
vE := 2
v8 := 14
v9 := 11
i := D5
Sub5
v8 := 44
Sub6
v8 := 29
v9 := 24
Sub6
vB := 0
vC := 35
loop
Sub2
Sub14
v8 := 33
v9 := 0
i := D2
i += vB
sprite v8 v9 4
buzzer := vE
vB += 4
if vB == 28 then vB := 4
vC += -1
Sub14
if vC != 0 then
again
: L2
clear
buzzer := v9
Sub2
Sub14
vA := 0
vB := 10
loop
i := D9
i += vA
load v7
v2 := 12
v4 += 1
i := hex vB
sprite v2 v4 5
v2 := 19
i := hex v3
sprite v2 v4 5
v2 := 23
i := D14
sprite v2 v4 5
vA += 8
vB += 1
if vA != 40 then
again
v8 := 32
v9 := 2
i := D6
Sub4
v2 := 38
v3 := 8
sprite v2 v3 7
i := D8
bcd vD
load v2
v3 := 44
v4 := 9
if v0 == 0 then jump L4
i := hex v0
sprite v3 v4 5
jump L5
: L4
if v1 == 0 then jump L6
: L5
i := hex v1
v3 := 49
sprite v3 v4 5
: L6
i := hex v2
v3 := 54
sprite v3 v4 5
i := D10
v8 := 36
v9 := 17
Sub6
v8 := 54
i := D15
: L7
sprite v8 v9 5
vF := 10
delay := vF
loop
Sub1
if v0 != 16 then jump L9
vF := delay
if vF != 0 then
again
jump L7
: L9
buzzer := vE
vC := v0
vA := 9
vA -= vC
if vF == 1 then jump L7
if vC == 15 then jump L7
loop
sprite v8 v9 5
if vF == 0 then
again
i := hex vC
sprite v8 v9 5
Sub12
i := D7
v3 := 44
v4 := 23
sprite v3 v4 7
v3 := 54
v4 := 24
i := D15
: L11
sprite v3 v4 5
vF := 10
delay := vF
loop
Sub1
if v0 != 16 then jump L13
vF := delay
if vF != 0 then
again
jump L11
: L13
buzzer := vE
vB := v0
vA := vD
vA -= vB
if vF == 0 then jump L11
if vB == 0 then jump L11
vA := 9
vA -= vB
if vF == 0 then jump L11
loop
sprite v3 v4 5
if vF == 0 then
again
i := hex vB
sprite v3 v4 5
Sub10
clear
Sub14
Sub12
i := D1
v0 := 56
v1 := 0
loop
sprite v0 v1 1
v1 += 1
if v1 != 32 then
again
v0 := 30
v1 := 15
vA := 3
loop
i := hex vA
sprite v0 v1 5
buzzer := vE
Sub10
vA += -1
sprite v0 v1 5
if vA != 0 then
again
: L17
vA := 0
loop
i := D9
i += vA
load v6
i := D9
i += vA
v0 += -1
if v0 == 0 then jump L19
save v0
jump L20
: L19
v0 := random 0b1
v0 += 2
if v1 == v5 then v1 -= v6
v1 += 6
v2 += 1
save v2
i := D3
i += v1
sprite v2 v4 6
if v2 == 56 then jump L21
: L20
vA += 8
if vA == 24 then buzzer := vE
if vA != 40 then
again
buzzer := vE
jump L17
: L21
buzzer := v2
v8 := 6
v9 := 8
i := D6
Sub6
v7 >>= vA
v7 >>= v7
v7 >>= v7
v7 += 10
if v7 == vC then jump L23
i := D12
Sub6
Sub13
i := hex vB
vD -= vB
sprite v8 v9 5
if vD != 0 then jump L26
Sub8
sprite v8 v9 5
Sub13
i := D4
v8 := 8
v9 := 3
loop
sprite v8 v9 5
vF := 16
Sub11
sprite v8 v9 5
v9 ^= vF
again
0x0 0xee
: L23
i := D11
Sub6
Sub13
i := D9
i += vA
load v6
v7 := 0
loop
v7 += vB
v3 += -1
if v3 != 0 then
again
i := D8
bcd v7
load v2
if v1 == 0 then jump L25
i := hex v1
Sub7
: L25
i := hex v2
sprite v8 v9 5
vD += v7
if vF == 1 then jump L29
: L26
i := D9
i += vA
load v6
i := D3
i += v1
: L27
sprite v2 v4 5
vF := 24
delay := vF
loop
vF := delay
Sub1
if v0 != 16 then jump L2
if vF != 0 then
again
jump L27
: L29
Sub8
: L30
clear
v4 := 14
: L31
v2 := 0
v1 := 64
: L32
i := D6
v8 := 6
v9 := 8
Sub6
i := D11
Sub6
loop
i := D9
i += v1
sprite v2 v4 8
v2 += 1
if v2 != 64 then jump L34
v4 += 9
if v4 != 32 then jump L31
jump L30
: L34
v1 += 8
if v1 == 120 then v1 := 72
vD := 7
vD &= v2
if vD == 0 then jump L32
vF := 4
Sub11
again
: Sub1
v0 := 0
loop
if v0 key then return
v0 += 1
if v0 == 16 then return
again
: Sub2
i := D9
v1 := 0
v6 := 4
Sub3
Sub3
Sub3
Sub3
: Sub3
v0 := random 0b1
v0 += 1
v2 := random 0b11
v7 <<= v2
v3 := 6
v3 -= v7
v7 := random 0b1
v3 += v7
v3 += v0
save v3
v1 += 36
i += v6
return
: Sub4
Sub7
: Sub5
Sub7
: Sub6
Sub7
: Sub7
sprite v8 v9 5
vF := 5
i += vF
v8 += 8
return
: Sub8
Sub9
: Sub9
Sub10
: Sub10
vF := 60
: Sub11
buzzer := vF
loop
vF := delay
if vF != 0 then
again
return
: Sub12
i := D13
v8 := 0
v9 <<= vC
v9 <<= v9
v9 <<= v9
v9 -= vC
v9 += 187
sprite v8 v9 2
return
: Sub13
i := D7
v8 := 8
v9 := 16
sprite v8 v9 7
v8 := 16
v9 := 17
return
: Sub14
vA := 0
loop
i := D9
i += vA
load v4
i := D3
i += v1
sprite v2 v4 6
vA += 8
if vA != 40 then
again
return
: D1
0x1 0x1
: D2
0x81 0x7e 0x18 0x0 0x99 0x42 0xdb 0x0 0x0 0x0 0x81 0x81 0x0 0x0 0x0 0xc3 0x3c 0x66 0x18 0x42 0x42 0xc3 0x42 0x0 0xe7 0xe7 0x0 0x0 0x0 0xee 0x8e 0x8a 0x8a 0x8a 0xee 0xee 0x88 0xec 0x28 0xee
: D3
0x3 0x2 0x2 0xe 0xa 0xa 0x5 0x6 0x6 0x12 0x1e 0x5 0x5 0x6 0x6 0x12 0x1e 0x28 0x5 0x6 0x6 0x12 0x1e 0x10 0x5 0x6 0x6 0x12 0x1e 0x2 0x5 0x6 0x6 0x12 0x1e 0x5 0x0
: D4
0x3f 0x3f 0x3d 0x25 0x24 0x0 0x41 0x41 0x47 0x6e 0xa 0x0 0x41 0x41 0x47 0x6d 0x90 0x0 0x41 0x41 0x47 0x6f 0x0 0x0 0x41 0x41 0x47 0x6e 0x12 0x0 0x41 0x41 0x47 0x6d 0x90 0x0 0x3 0x6 0xe 0x14 0x26 0x0 0x5 0xa 0x22 0x20 0x40 0x3 0x0 0x2 0x68 0x36 0x18 0x6 0xf 0x1a 0x16 0x48 0x3 0x0 0x5 0xa 0x42 0xc 0x0 0x0 0x5 0xa 0x42 0x0 0x0 0x0 0xb 0x1e 0x3e 0x22 0x22 0x0 0x1d 0x22 0x42 0x66 0x5 0x0 0x1d 0x22 0x42 0x66 0x80 0x0 0x1d 0x22 0x42 0x66 0x10 0x0 0x1d 0x22 0x42 0x66 0x8 0x0 0x1d 0x22 0x42 0x66 0x1 0x0 0x2 0x13 0x1e 0x12 0x12 0x2 0x17 0x38 0x2e 0x6 0x24 0x4 0x24 0x2f 0x3a 0x56 0x11 0x0 0x6 0x35 0x22 0x36 0x28 0x0 0x6 0x35 0x22 0x36 0x0 0x2 0x17 0x38 0x2e 0x6 0x28 0x1
: D5
0xe9 0xad 0xeb 0xa9 0xa9 0x51 0x5b 0x55 0x51 0x51 0x74 0x54 0x74 0x54 0x57 0xf7 0x95 0xf7 0xa5 0x95 0x77 0x44 0x46 0x44 0x77 0xef 0xa8 0xae 0xe2 0xbe 0xf3 0x92 0x93 0x92 0x9f 0x17 0x15 0x17 0x11 0x11 0x77 0x15 0x17 0x15 0x17
: D6
0x2b 0x2a 0x12 0x12 0x13 0xa8 0xa8 0xa8 0xa8 0xb8 0xae 0xaa 0xee 0xaa 0xaa 0xae 0xa8 0xae 0xa8 0x4e
: D7
0x20 0x78 0xa0 0x70 0x28 0xf0 0x20
: D8
0x0 0x1 0x0
: D9
0x2 0x0 0x3 0x2 0x0 0x1e 0x18 0x0 0x1 0x24 0x3 0x1 0x6 0x42 0x12 0x0 0x1 0x48 0x0 0x8 0xd 0x66 0x18 0x0 0x2 0x68 0x3 0x3 0x13 0x8a 0x18 0x0 0x1 0x90 0x3 0x1 0x1a 0xae 0x18 0x0 0x1 0x8 0x38 0x6 0x0 0x18 0x18 0x1 0x1 0x4 0x31 0x0 0x5 0x18 0x18 0x1 0x7f 0x48 0x1c 0x1c 0xb 0x4c 0x18 0x0 0x3 0x2 0x2 0xe 0x5e 0x4 0x26 0x54 0x5 0x6 0x6 0xd2 0xa2 0x4c 0xe6 0xc1 0x5 0x6 0xc6 0xd2 0xe2 0xcc 0xb8 0x90 0x5 0x86 0x6 0x52 0x22 0x4c 0x5e 0x60 0x5 0x6 0x86 0xd2 0xa2 0x8c 0xc6 0xc1 0x5 0x6 0x86 0x92 0x22 0x8c 0x98 0x30 0x0 0x6 0x6 0x12 0x62 0xc 0x3e 0x10 0x0 0xee 0x63 0x1a 0x24 0xc0 0x0 0xee
: D10
0xf0 0x90 0xf7 0x90 0x90 0x78 0x40 0x70 0x40 0x78
: D11
0xab 0xa9 0xa9 0xa9 0x53 0xa2 0x32 0x2a 0x26 0xa2
: D12
0x8e 0x8a 0x8a 0x8a 0xee 0xee 0x88 0xec 0x28 0xee
: D13
0x0 0xc0
: D14
0x18 0x48 0x8 0x48 0x1c
: D15
0xe0 0x20 0x60 0x0 0x40
######################################################################
# INPUT: chip8/Chip-8 Games/Astro Dodge [Revival Studios, 2008].ch8
######################################################################
:proto L1 # 214
:proto L4 # 240
:proto L5 # 254
:proto Sub1 # 288
:proto Sub3 # 2B0
:proto Sub4 # 2E2
:proto Sub5 # 2E8
:proto L9 # 2F4
:proto L10 # 2FE
:proto L11 # 308
:proto L12 # 312
:proto Sub6 # 31A
:proto L13 # 328
:proto D1 # 33E
:proto D2 # 350
:proto D3 # 358
:proto D4 # 3D8
:proto Sub7 # 458
:proto Sub8 # 460
:proto Sub9 # 4B8
:proto Sub10 # 4EE
:proto Sub11 # 520
:proto Sub12 # 54A
:proto Sub13 # 552
:proto Sub15 # 582
:proto Sub16 # 58E
:proto D5 # 59A
:proto D6 # 59B
:proto D7 # 59C
:proto D8 # 59F
:proto D9 # 5CF
:proto D10 # 62F
: main
jump L1
0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x53 0x54 0x55 0x44 0x49 0x4f 0x53 0x32 0x30 0x30 0x38
: L1
clear
vD := 32
delay := vD
Sub7
Sub8
vD := 64
delay := vD
Sub7
Sub8
vD := 32
delay := vD
Sub7
: L2
clear
i := D4
Sub11
Sub9
vD := 4
vC := 0
loop
v0 := 5
if v0 -key then jump L4
jump L5
: L4
delay := vD
Sub7
vC += 1
if vC == 0 then Sub9
if vC == 4 then Sub9
if vC == 8 then vC := 0
again
: L5
i := D4
Sub11
clear
v8 := 16
v9 := 20
Sub4
Sub1
Sub12
v3 := 44
v4 := 0
Sub15
v3 := 44
v4 := 6
Sub16
vD := 0
vE := 8
loop
Sub3
Sub5
vD += 8
if vD == 128 then vD := 0
vE += 8
if vE == 128 then vE := 0
again
0x12 0x2c
: Sub1
vC := 0
loop
i := D1
i += vC
load v1
v1 := random 0b11
save v1
i := D3
sprite v0 v1 8
vC += 3
if vC != 9 then
again
return
: Sub2
Sub6
Sub13
Sub6
v0 := random 0b1111
v0 += v0
v0 += v0
v1 := 0
return
: Sub3
vC := 0
v5 := 0
loop
i := D1
i += vC
load v2
i := D3
i += vD
sprite v0 v1 8
v1 += v2
v3 := v1
v4 := 30
v3 -= v4
if vF == 1 then Sub2
i := D3
i += vE
sprite v0 v1 8
i := D1
i += vC
save v1
v5 += 24
vC += 3
if vC != 9 then
again
return
: Sub4
i := D2
sprite v8 v9 8
return
: Sub5
Sub4
v0 := 4
if v0 -key then jump L9
if v8 != 0 then v8 += -2
: L9
v0 := 6
if v0 -key then jump L10
if v8 != 56 then v8 += 2
: L10
v0 := 2
if v0 -key then jump L11
if v9 != 16 then v9 += -1
: L11
v0 := 8
if v0 -key then jump L12
if v9 != 24 then v9 += 1
: L12
Sub4
if vF == 1 then jump L13
return
: Sub6
v3 := 44
v4 := 0
Sub15
v3 := 44
v4 := 6
Sub16
return
: L13
clear
v0 := 0
v1 := 4
Sub10
v3 := 22
v4 := 22
Sub15
loop
v0 := 5
if v0 -key then
again
jump L2
: D1
0x0 0xe 0x1 0x18 0xb4 0x2 0x30 0xe3 0x3 0x40 0x75 0x1 0x40 0x60 0x2 0x40 0x36 0x3
: D2
0x18 0x18 0x34 0x24 0x7e 0xff 0xe7 0x99
: D3
0x0 0x40 0x38 0x14 0x2a 0x75 0x3a 0x14 0x0 0x0 0x28 0x70 0x3e 0x7 0x2a 0x0 0x0 0x40 0x8 0x5c 0x7a 0x75 0xa 0x4 0x0 0x50 0x28 0x54 0x3e 0x75 0x2e 0x1 0x20 0x70 0x78 0x7c 0x3c 0x75 0x6a 0x54 0x0 0x64 0x78 0x78 0x7e 0x7d 0xe8 0x50 0x8 0x44 0x2a 0x50 0x3a 0x5d 0xe8 0x40 0x8 0x54 0xa 0x11 0x2a 0x5c 0x68 0x40 0x0 0x4 0x2a 0x57 0x2a 0x16 0x28 0x50 0x0 0x0 0x2a 0x13 0x6a 0x56 0x8 0x0 0x0 0x0 0x8 0x71 0x2a 0x52 0x30 0x0 0x0 0x4 0xa 0x14 0x3a 0x60 0x68 0x0 0x0 0x4 0xa 0x1c 0x3e 0x70 0x68 0x50 0x20 0x50 0x2e 0x5f 0x2e 0x5c 0x28 0x50 0x20 0x5c 0x3a 0x57 0x3e 0x5e 0x28 0x50 0x0 0x58 0x38 0x77 0x2e 0x7f 0x3e 0x54
: D4
0x78 0x7e 0xf7 0xf1 0xbe 0x9e 0x38 0x66 0xf8 0xcd 0x73 0x9b 0xe3 0x36 0xcf 0xde 0x78 0x66 0xf7 0x1d 0xbe 0x9b 0x3a 0x36 0xf9 0xcd 0x73 0xb3 0xe3 0x6c 0xcf 0xd8 0xcd 0x33 0x83 0x78 0x33 0xd9 0x66 0x9c 0xcd 0xf8 0x9b 0xe3 0x36 0x87 0x6c 0x3c 0xfd 0x7e 0xf7 0x79 0xbf 0x9f 0x7c 0x66 0xfc 0xcd 0xfb 0x9b 0xf7 0x36 0xef 0xde 0xfd 0x66 0xf7 0x1d 0xbf 0x9b 0x7c 0x36 0xfc 0xcd 0xfb 0xb3 0xf7 0xec 0xef 0xd8 0xcd 0x0 0xc3 0x0 0x33 0x0 0x66 0x0 0xcd 0x0 0x9b 0x0 0x36 0x0 0xc 0x0 0x85 0x66 0x0 0x19 0x1 0x9b 0x46 0x66 0x5 0xcd 0x88 0x9b 0x14 0x6c 0x20 0xd8 0xcd 0x33 0x83 0x7c 0x33 0xd9 0x6e 0xbe 0xcd 0xfd 0xdb 0xf3 0x76 0xcf 0x6c 0xbc
: Sub7
loop
v0 := delay
if v0 != 0 then
again
return
: Sub8
vD := 4
v1 := 12
v0 := 28
v2 := 18
i := D10
i += v2
sprite v0 v1 6
delay := vD
Sub7
v0 := 20
v2 := 12
i := D10
i += v2
sprite v0 v1 6
v0 := 36
v2 := 24
i := D10
i += v2
sprite v0 v1 6
delay := vD
Sub7
v0 := 12
v2 := 6
i := D10
i += v2
sprite v0 v1 6
v0 := 44
v2 := 30
i := D10
i += v2
sprite v0 v1 6
delay := vD
Sub7
i := D10
v0 := 4
sprite v0 v1 6
v0 := 52
v2 := 36
i := D10
i += v2
sprite v0 v1 6
delay := vD
Sub7
return
: Sub9
v2 := 6
v0 := 0
v1 := 23
i := D8
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
return
: Sub10
v2 := 12
i := D9
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
return
: Sub11
v4 := 1
v5 := 7
v2 := 0
v3 := 0
: L15
v0 := 0
loop
v1 := v3
v1 += 3
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
i += v4
v0 += 8
if v0 != 64 then
again
v3 += 3
v3 &= v5
v2 += 1
if v2 != 8 then jump L15
return
: Sub12
v0 := 0
i := D5
save v0
return
: Sub13
i := D5
load v1
v0 += 1
v2 := v0
v2 -= v1
if vF == 1 then v1 := v0
save v1
return
: Sub14
i := D7
load v2
i := hex v0
sprite v3 v4 5
v3 += 5
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
v3 += 5
v2 := 0
i := hex v2
sprite v3 v4 5
return
: Sub15
i := D5
load v0
i := D7
bcd v0
Sub14
return
: Sub16
i := D6
load v0
i := D7
bcd v0
Sub14
return
: D5
0x0
: D6
0x64
: D7
0x0 0x0 0x0
: D8
0x0 0x3c 0x36 0x3c 0x30 0x30 0x0 0xf3 0xdb 0xf3 0xdb 0xdb 0x0 0xe7 0xc 0xc7 0x1 0xef 0x0 0x9e 0x30 0x1c 0x86 0x3c 0x0 0x1e 0x30 0x1c 0x6 0x3c 0x0 0xf3 0x66 0x67 0x66 0x66 0x0 0x9e 0xdb 0xde 0xdb 0xdb 0x0 0x78 0x30 0x30 0x30 0x30
: D9
0x1 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x1 0xe7 0xd 0xd 0x6f 0x6d 0x6d 0x6d 0x6d 0x6d 0x6d 0x6d 0xed 0x3f 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0x3e 0xb0 0xb0 0xbc 0xb0 0xb0 0xb0 0xb0 0xb0 0xb0 0xb0 0xbe 0x1c 0x36 0x36 0x36 0x36 0x36 0x36 0x36 0x36 0x36 0x36 0x1c 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0x7b 0x3b 0xef 0xd 0xd 0xcf 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xed 0x0 0x80 0x80 0x0 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D10
0x0 0x0 0xc 0x11 0x11 0x10 0x0 0x0 0x95 0x55 0x95 0xcd 0x0 0x0 0x53 0x55 0x55 0x33 0x40 0x40 0x44 0x42 0x41 0x46 0x0 0x40 0x6a 0x4a 0x4a 0x46 0x0 0x20 0x69 0xaa 0xaa 0x69 0x0 0x0 0x20 0x90 0x88 0x30
######################################################################
# INPUT: chip8/Chip-8 Games/Biorhythm [Jef Winsor].ch8
######################################################################
:proto L3 # 232
:proto L6 # 248
:proto L7 # 2B2
:proto L8 # 2B8
:proto L9 # 2D2
:proto L10 # 2EA
:proto L11 # 2FE
:proto L13 # 308
:proto L14 # 31C
:proto L15 # 32A
:proto L17 # 340
:proto L19 # 34E
:proto L20 # 370
:proto L21 # 37C
:proto L23 # 392
:proto L24 # 3A4
:proto L25 # 3D0
:proto D7 # 441
:proto D8 # 444
:proto Sub1 # 448
:proto Sub2 # 46A
:proto Sub3 # 49C
:proto L30 # 4A8
:proto Sub4 # 4B6
:proto Sub5 # 4C2
:proto Sub6 # 4DC
:proto Sub7 # 4F2
:proto Sub8 # 500
:proto L32 # 50E
:proto D9 # 513
:proto Sub9 # 518
:proto Sub10 # 53C
:proto Sub11 # 554
:proto D10 # 562
:proto D11 # 584
:proto D12 # 588
:proto D13 # 600
:proto D14 # 608
:proto D15 # 609
: main
i := D11
v1 := 0
v2 := 25
sprite v1 v2 5
i := D12
v2 := 13
sprite v1 v2 5
i := D7
v2 := 1
sprite v1 v2 5
i := D9
v1 := 49
v2 := 14
sprite v1 v2 4
i := D8
v2 := 9
: L1
v1 := -1
loop
v1 += 7
sprite v1 v2 2
if v1 != 34 then
again
if v2 != 9 then jump L3
v2 := 21
jump L1
: L3
v3 := 0
v5 := 0
v6 := 0
: L4
Sub8
Sub9
v0 := 0
loop
if v4 == 0 then jump L6
v0 += 10
v4 += -1
again
: L6
i := D14
save v0
Sub8
Sub9
i := D14
load v0
v0 += v4
i := D13
i += v3
save v0
v3 += 1
if v3 != 8 then jump L4
i := D13
load v7
if v0 == 0 then jump L7
if v1 == 0 then jump L7
if v4 == 0 then jump L7
if v5 == 0 then jump L7
v8 := 12
v8 -= v0
if vF == 0 then jump L7
v8 := 12
v8 -= v4
if vF == 0 then jump L7
v8 := v6
v8 -= v2
if vF == 0 then jump L7
if v6 != v2 then jump L8
v8 := v7
v8 -= v3
if vF == 0 then jump L7
if v7 != v3 then jump L8
v8 := v4
v8 -= v0
if vF == 0 then jump L7
if v4 != v0 then jump L8
v8 := v5
v8 -= v1
if vF != 0 then jump L8
: L7
buzzer := v5
clear
jump main
: L8
v8 := v0
v9 := v1
vA := v8
Sub10
if vB == 0 then jump L9
if vB != 41 then jump L7
v9 := v2
vA := v3
Sub11
if vB != 3 then jump L7
: L9
v9 := v5
vA := v4
Sub10
if vB == 0 then jump L10
if vB != 41 then jump L7
v9 := v6
vA := v7
Sub11
if vB != 3 then jump L7
: L10
vC := 0
vD := 0
vE := 0
Sub7
v0 := v5
if v9 != 170 then jump L11
v0 -= v1
Sub4
jump L15
: L11
Sub4
Sub6
v0 -= v1
jump L13
: L12
Sub6
: L13
Sub4
v8 += 1
if v8 != 13 then jump L14
v8 := 1
v3 += 1
if v3 != 100 then jump L14
v3 := 0
v2 += 1
: L14
Sub7
if v9 == 170 then jump L15
v0 := 3
v0 &= vE
buzzer := v0
jump L12
: L15
Sub2
loop
v8 := 11
if v8 key then jump L17
v8 := 15
if v8 key then jump L17
v8 := 0
if v8 key then jump L7
again
: L17
Sub2
: L18
loop
if v8 == 11 then jump L19
jump L24
0x1
: D1
0x0 0x7 0x14 0x1b 0xd4
: L19
Sub1
i := D13
load v7
v5 += -1
if v5 != 0 then jump L21
v4 += -1
if v4 != 0 then jump L20
v4 := 12
v7 += -1
if v7 != -1 then jump L20
v7 := 99
v6 += -1
if v6 == -1 then jump L23
: L20
v8 := v4
v1 := v5
v2 := v6
v3 := v7
Sub6
v5 := v0
: L21
vC += -1
if vC == -1 then vC := 22
vD += -1
if vD == -1 then vD := 27
vE += -1
if vE == -1 then vE := 32
: L22
i := D13
save v7
: L23
Sub1
v8 := 11
if v8 key then jump L18
v8 := 15
if v8 key then
again
jump L15
0x7f 0x0
: L24
Sub1
i := D13
load v7
v8 := v4
v2 := v6
v3 := v7
Sub6
if v0 == v5 then v5 := 0
v5 += 1
if v5 == 1 then v4 += 1
if v4 != 13 then jump L25
v4 := 1
v7 += 1
if v7 != 100 then jump L25
v7 := 0
v6 += 1
if v6 == 100 then jump L23
: L25
vC += 1
vD += 1
vE += 1
Sub5
jump L22
: D2
0x1 0x7 0xe 0xe 0x16 0x16 0x16 0xe 0xe 0x7 0x1 0x0 0x5 0xb 0xb 0x12 0x12 0x12 0x12 0xb 0xb 0x5 0x0 0xee
: D3
0x1 0x7 0xe 0xe 0x16 0x16 0x16 0x16 0x16 0x16 0xe 0xe 0x7 0x1 0x0 0x5 0xb 0xb 0x12 0x12 0x12 0x12 0x12 0x12 0xb 0xb 0x5 0x0 0xee
: D4
0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x80 0x80 0x0 0x0 0x0 0x0 0x80 0x80 0x80 0x0 0x0 0x0 0x0 0x80 0x80 0x80 0x80 0x0 0x0 0x0
: D5
0x0 0x1f 0x1c 0x1f 0x1e 0x1f 0x1e 0x1f 0x1f 0x1e 0x1f 0x1e
: D6
0x1f 0x29 0x2e 0x37 0x3c 0x2b 0x30 0x35 0x3a
: D7
0xe0 0xa0 0xe0
: D8
0x80 0x80 0xd4 0xd4
: Sub1
v5 := 0
v6 := 2
v3 := 4
loop
i := D13
i += v3
load v0
i := D15
bcd v0
load v2
v4 := v1
Sub9
v4 := v2
Sub9
v3 += 1
if v3 != 8 then
again
return
: Sub2
v4 := 32
v5 := 6
v6 := 0
v7 := vC
loop
i := D2
Sub3
if v4 != 0 then
again
v4 := 32
v5 := 6
v6 := 12
v7 := vD
loop
i := D3
Sub3
if v4 != 0 then
again
v4 := 32
v5 := 6
v6 := 24
v7 := vE
loop
i := D10
Sub3
if v4 != 0 then
again
return
: Sub3
i += v7
load v0
if v0 != -18 then jump L30
v7 := 0
return
: L30
i := D4
i += v0
sprite v5 v6 8
v4 += -1
v5 += 1
v7 += 1
return
: Sub4
vC += v0
vD += v0
vE += v0
Sub5
Sub5
return
: Sub5
vB := 23
vC -= vB
if vF == 0 then vC += 23
vB := 28
vD -= vB
if vF == 0 then vD += 28
vB := 33
vE -= vB
if vF == 0 then vE += 33
return
: Sub6
i := D5
i += v8
load v0
if v8 != 2 then return
v9 := v2
vA := v3
Sub11
if vB == 3 then v0 += 1
return
: Sub7
v9 := 170
if v2 == v6 then if v3 != v7 then v9 := 0
if v8 != v4 then v9 := 0
return
: Sub8
v4 := 0
loop
if v4 key then jump L32
v4 += 1
if v4 != 10 then
again
jump Sub8
: L32
v4 := key
return
0x1
: D9
0xc 0x12 0x90 0x60 0xd4
: Sub9
i := D6
i += v5
load v1
i := D1
i += v6
load v0
i := hex v4
sprite v1 v0 5
if v5 == 3 then v6 += 1
if v5 == 7 then v6 += 1
v5 += 1
if v5 == 8 then v5 := 0
return
0x41 0x6a 0x7e 0x51
: Sub10
vB := 0
i := D5
i += vA
load v0
v0 -= v9
if vF == 1 then return
vB := 41
if v9 == 29 then if vA != 2 then vB := 57
return
: Sub11
if vA == 0 then vA := v9
vB := 3
vA &= vB
if vA != 0 then vB := 0
return
: D10
0x1 0x7 0x7 0xe 0xe 0x16 0x16 0x16 0x16 0x16 0x16 0xe 0xe 0x7 0x7 0x1 0x0 0x5 0x5 0xb 0xb 0x12 0x12 0x12 0x12 0x12 0x12 0x12 0xb 0xb 0x5 0x5 0x0 0xee
: D11
0xe0 0x40 0x40 0x40
: D12
0xe0 0x80 0xe0 0x80 0xe0 0xd4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D13 0 0 0 0 0 0 0 0
: D14 0
: D15
######################################################################
# INPUT: chip8/Chip-8 Games/Blinky [Hans Christian Egeberg, 1991].ch8
######################################################################
:proto L1 # 21A
:proto L6 # 27C
:proto L7 # 29A
:proto L8 # 2B2
:proto L9 # 2C8
:proto L10 # 2E0
:proto L11 # 2F8
:proto L12 # 310
:proto L17 # 3C6
:proto Sub1 # 3D0
:proto L21 # 432
:proto L22 # 44A
:proto L23 # 462
:proto L24 # 47A
:proto L25 # 492
:proto L26 # 49A
:proto L27 # 4B2
:proto L28 # 4D2
:proto L29 # 4E4
:proto L30 # 4EC
:proto Sub2 # 4F6
:proto L32 # 524
:proto L33 # 556
:proto L34 # 574
:proto L35 # 58C
:proto L36 # 5A4
:proto L37 # 5BC
:proto L38 # 5D4
:proto L40 # 5E4
:proto L41 # 5F2
:proto L42 # 5FE
:proto L43 # 60A
:proto L44 # 614
:proto Sub3 # 61E
:proto L46 # 64C
:proto L47 # 67E
:proto L48 # 69C
:proto L49 # 6B6
:proto L50 # 6D0
:proto L51 # 6EA
:proto L52 # 704
:proto L54 # 716
:proto L55 # 724
:proto L56 # 730
:proto L57 # 73C
:proto L58 # 746
:proto Sub4 # 750
:proto Sub5 # 772
:proto Sub6 # 794
:proto Sub7 # 7BA
:proto Sub8 # 7BE
:proto Sub9 # 7D6
:proto Sub10 # 7E6
:proto L63 # 80C
:proto L65 # 834
:proto L67 # 854
:proto L69 # 86E
:proto Sub11 # 87A
:proto Sub12 # 88A
:proto L70 # 8A2
:proto Sub13 # 8A8
:proto L72 # 8C4
:proto D1 # 8C8
:proto D2 # 8CA
:proto D3 # 8CC
:proto D4 # 8CD
:proto D5 # 8ED
:proto D6 # 8F1
:proto D7 # 8F5
:proto D8 # 8F9
:proto D9 # 919
:proto D10 # B19
:proto D11 # B22
:proto D12 # B2B
:proto D13 # B34
: main
jump L1
0x32 0x2e 0x30 0x30 0x20 0x43 0x2e 0x20 0x45 0x67 0x65 0x62 0x65 0x72 0x67 0x20 0x31 0x38 0x2f 0x38 0x2d 0x27 0x39 0x31
: L1
v0 ^= v0
v1 ^= v1
i := D1
save v1
v0 := 5
i := D3
save v0
v7 ^= v7
: L2
v6 ^= v6
Sub5
clear
Sub6
: L3
vE := 64
v7 &= vE
vE := 39
v7 |= vE
v8 := 26
v9 := 12
vA := 56
vB := 0
vC := 2
vD := 26
Sub4
i := D5
sprite vA vB 4
sprite vC vD 4
loop
Sub1
if vE != 0 then jump L6
: L5
i := D3
load v0
v5 := v0
v4 := random 0b11111111
v4 &= v5
Sub2
v4 := random 0b11111111
v4 &= v5
Sub3
v0 := 1
if v0 key then Sub9
if v6 != -9 then
again
vE := v6
Sub11
vE := 100
Sub11
Sub9
jump L2
: L6
v0 := delay
if v0 == 0 then jump L12
v0 := v8
v0 >>= v0
v1 := vA
v1 >>= v0
v0 -= v1
if v0 == 0 then jump L7
if v0 == 1 then jump L7
if v0 == -1 then jump L7
jump L9
: L7
v0 := v9
v0 >>= v0
v1 := vB
v1 >>= v0
v0 -= v1
if v0 == 0 then jump L8
if v0 == 1 then jump L8
if v0 == -1 then jump L8
jump L9
: L8
i := D5
sprite vA vB 4
vA := 56
vB := 0
sprite vA vB 4
vE := -13
v7 &= vE
vE := 4
v7 |= vE
vE := 50
Sub11
: L9
v0 := v8
v0 >>= v0
v1 := vC
v1 >>= v0
v0 -= v1
if v0 == 0 then jump L10
if v0 == 1 then jump L10
if v0 == -1 then jump L10
jump L5
: L10
v0 := v9
v0 >>= v0
v1 := vD
v1 >>= v0
v0 -= v1
if v0 == 0 then jump L11
if v0 == 1 then jump L11
if v0 == -1 then jump L11
jump L5
: L11
i := D5
sprite vC vD 4
vC := 2
vD := 26
sprite vC vD 4
vE := 207
v7 &= vE
vE := 32
v7 |= vE
vE := 25
Sub11
jump L5
: L12
v0 := 63
Sub13
Sub4
i := D5
sprite vA vB 4
sprite vC vD 4
vE := 64
v7 ^= vE
v0 := v7
v0 &= vE
if v0 != 0 then jump L3
vE := v6
Sub11
Sub12
clear
v6 := 17
v7 := 10
i := D2
Sub10
v6 := 17
v7 := 16
i := D1
Sub10
v4 := 0
v5 := 8
v6 := 0
v7 := 15
: L13
loop
i := D10
sprite v4 v6 9
i := D11
sprite v5 v6 9
v0 := 3
Sub13
if vE != 0 then jump L17
i := D10
sprite v4 v6 9
i := D11
sprite v5 v6 9
v4 += 2
v5 += 2
if v4 != 48 then
again
loop
i := D10
sprite v4 v6 9
i := D11
sprite v5 v6 9
v0 := 3
Sub13
if vE != 0 then jump L17
i := D10
sprite v4 v6 9
i := D11
sprite v5 v6 9
v6 += 2
if v6 != 22 then
again
loop
i := D10
sprite v4 v6 9
i := D11
sprite v5 v6 9
v0 := 3
Sub13
if vE != 0 then jump L17
i := D10
sprite v4 v6 9
i := D11
sprite v5 v6 9
v4 += -2
v5 += -2
if v4 != 0 then
again
loop
i := D10
sprite v4 v6 9
i := D11
sprite v5 v6 9
v0 := 3
Sub13
if vE != 0 then jump L17
i := D10
sprite v4 v6 9
i := D11
sprite v5 v6 9
v6 += -2
if v6 != 0 then
again
jump L13
: L17
i := D11
sprite v5 v6 9
i := D12
sprite v5 v6 9
jump L1
: Sub1
v3 := v7
vE := 3
v3 &= vE
v4 := v8
v5 := v9
vE := 6
if vE key then jump L21
vE := 3
if vE key then jump L22
vE := 8
if vE key then jump L23
vE := 7
if vE key then jump L24
: L18
if v3 == 3 then v5 += 2
if v3 == 0 then v5 += -2
if v3 == 2 then v4 += 2
if v3 == 1 then v4 += -2
v0 := v4
v1 := v5
Sub7
v2 := v0
vE := 8
v0 &= vE
: L19
if v0 != 0 then jump L25
vE := 7
v0 := v2
v2 &= vE
if v2 == 5 then jump L26
if v2 == 6 then jump L27
if v2 == 7 then jump L30
: L20
Sub4
vE := -4
v7 &= vE
v7 |= v3
v8 := v4
v9 := v5
jump Sub4
: L21
v0 := v4
v1 := v5
v1 += 2
Sub7
v2 := v0
vE := 8
v0 &= vE
if v0 != 0 then jump L18
v3 := 3
v5 += 2
jump L19
: L22
v0 := v4
v1 := v5
v1 += -2
Sub7
v2 := v0
vE := 8
v0 &= vE
if v0 != 0 then jump L18
v3 := 0
v5 += -2
jump L19
: L23
v0 := v4
v1 := v5
v0 += 2
Sub7
v2 := v0
vE := 8
v0 &= vE
if v0 != 0 then jump L18
v3 := 2
v4 += 2
jump L19
: L24
v0 := v4
v1 := v5
v0 += -2
Sub7
v2 := v0
vE := 8
v0 &= vE
if v0 != 0 then jump L18
v3 := 1
v4 += -2
jump L19
: L25
Sub4
sprite v8 v9 4
vE := vF
return
: L26
vE := -16
v0 &= vE
v0 |= v3
save v0
i := D6
sprite v4 v5 4
v6 += 1
v1 := 5
v0 := delay
if v0 == 0 then buzzer := v1
jump L20
: L27
vE := -16
v0 &= vE
v0 |= v3
save v0
i := D7
sprite v4 v5 4
v6 += 4
v0 := vA
v1 := vB
Sub7
vE := -16
v0 &= vE
if v0 != 0 then jump L28
vE := 12
v7 ^= vE
: L28
v0 := vC
v1 := vD
Sub7
vE := -16
v0 &= vE
if v0 != 0 then jump L29
vE := 48
v7 ^= vE
: L29
v0 := -1
buzzer := v0
delay := v0
jump L20
: L30
if v3 == 1 then v4 := 58
if v3 == 2 then v4 := 0
jump L20
: Sub2
v2 := v7
v3 := v7
vE := 12
v2 &= vE
v0 := vA
v1 := vB
Sub7
i := D5
vE := -16
v0 &= vE
if v0 != 0 then jump L32
: L31
sprite vA vB 4
if v2 == 12 then vB += 2
if v2 == 0 then vB += -2
if v2 == 8 then vA += 2
if v2 == 4 then vA += -2
sprite vA vB 4
return
: L32
vE := 128
v1 := delay
if v1 != 0 then jump L38
if v4 != 0 then jump L38
v1 := v0
v3 <<= v0
if vF != 0 then jump L33
v3 := v9
v3 -= vB
if vF == 0 then jump L35
if v3 != 0 then jump L34
v7 ^= vE
v3 := v8
v3 -= vA
if vF == 0 then jump L37
if v3 != 0 then jump L36
v7 ^= vE
jump L38
: L33
v3 := v8
v3 -= vA
if vF == 0 then jump L37
if v3 != 0 then jump L36
v7 ^= vE
v3 := v9
v3 -= vB
if vF == 0 then jump L35
if v3 != 0 then jump L34
v7 ^= vE
jump L38
: L34
v3 := 64
v1 &= v3
if v1 == 0 then jump L38
sprite vA vB 4
vB += 2
sprite vA vB 4
vE := -13
v7 &= vE
v2 := 12
v7 |= v2
return
: L35
v3 := 16
v1 &= v3
if v1 == 0 then jump L38
sprite vA vB 4
vB += -2
sprite vA vB 4
vE := -13
v7 &= vE
v2 := 0
v7 |= v2
return
: L36
v3 := 32
v1 &= v3
if v1 == 0 then jump L38
sprite vA vB 4
vA += 2
sprite vA vB 4
vE := -13
v7 &= vE
v2 := 8
v7 |= v2
return
: L37
v3 := 128
v1 &= v3
if v1 == 0 then jump L38
sprite vA vB 4
vA += -2
sprite vA vB 4
vE := -13
v7 &= vE
v2 := 4
v7 |= v2
return
: L38
v1 := random 0b11110000
v0 &= v1
if v0 != 0 then jump L40
: L39
vE := 12
v7 ^= vE
v2 ^= vE
jump L31
: L40
sprite vA vB 4
v0 <<= v0
if vF == 0 then jump L41
v2 := 4
vA += -2
jump L44
: L41
v0 <<= v0
if vF == 0 then jump L42
v2 := 12
vB += 2
jump L44
: L42
v0 <<= v0
if vF == 0 then jump L43
v2 := 8
vA += 2
jump L44
: L43
v0 <<= v0
if vF == 0 then jump L39
v2 := 0
vB += -2
: L44
sprite vA vB 4
vE := -13
v7 &= vE
v7 |= v2
return
: Sub3
v2 := v7
v3 := v7
vE := 48
v2 &= vE
v0 := vC
v1 := vD
Sub7
i := D5
vE := -16
v0 &= vE
if v0 != 0 then jump L46
: L45
sprite vC vD 4
if v2 == 48 then vD += 2
if v2 == 0 then vD += -2
if v2 == 32 then vC += 2
if v2 == 16 then vC += -2
sprite vC vD 4
return
: L46
vE := 128
v1 := delay
if v1 != 0 then jump L52
if v4 != 0 then jump L52
v1 := v0
v3 <<= v0
if vF == 0 then jump L47
v3 := v9
v3 -= vD
if vF == 0 then jump L49
if v3 != 0 then jump L48
v7 ^= vE
v3 := v8
v3 -= vC
if vF == 0 then jump L51
if v3 != 0 then jump L50
v7 ^= vE
jump L52
: L47
v3 := v8
v3 -= vC
if vF == 0 then jump L51
if v3 != 0 then jump L50
v7 ^= vE
v3 := v9
v3 -= vD
if vF == 0 then jump L49
if v3 != 0 then jump L48
v7 ^= vE
jump L52
: L48
v3 := 64
v1 &= v3
if v1 == 0 then jump L52
sprite vC vD 4
vD += 2
sprite vC vD 4
v7 ^= vE
vE := 207
v7 &= vE
v2 := 48
v7 |= v2
return
: L49
v3 := 16
v1 &= v3
if v1 == 0 then jump L52
sprite vC vD 4
vD += -2
sprite vC vD 4
v7 ^= vE
vE := 207
v7 &= vE
v2 := 0
v7 |= v2
return
: L50
v3 := 32
v1 &= v3
if v1 == 0 then jump L52
sprite vC vD 4
vC += 2
sprite vC vD 4
v7 ^= vE
vE := 207
v7 &= vE
v2 := 32
v7 |= v2
return
: L51
v3 := 128
v1 &= v3
if v1 == 0 then jump L52
sprite vC vD 4
vC += -2
sprite vC vD 4
v7 ^= vE
vE := 207
v7 &= vE
v2 := 16
v7 |= v2
return
: L52
v1 := random 0b11110000
v0 &= v1
if v0 != 0 then jump L54
: L53
v7 ^= vE
vE := 48
v7 ^= vE
v2 ^= vE
jump L45
: L54
sprite vC vD 4
v0 <<= v0
if vF == 0 then jump L55
v2 := 144
vC += -2
jump L58
: L55
v0 <<= v0
if vF == 0 then jump L56
v2 := 48
vD += 2
jump L58
: L56
v0 <<= v0
if vF == 0 then jump L57
v2 := 160
vC += 2
jump L58
: L57
v0 <<= v0
if vF == 0 then jump L53
v2 := 0
vD += -2
: L58
sprite vC vD 4
vE := 79
v7 &= vE
v7 |= v2
return
: Sub4
v0 := v7
vE := 3
v0 &= vE
v0 <<= v0
v1 := v8
v1 += v9
vE := 2
v1 &= vE
if v1 == 0 then v0 += 1
v0 <<= v0
v0 <<= v0
i := D4
i += v0
sprite v8 v9 4
vE := vF
return
: Sub5
vE := 0
loop
i := D9
i += vE
i += vE
i += vE
i += vE
load v3
i := D13
i += vE
i += vE
i += vE
i += vE
save v3
vE += 1
if vE != 128 then
again
return
: Sub6
v2 ^= v2
v3 ^= v3
vE := 15
: L60
loop
v0 := v2
v1 := v3
Sub8
v0 &= vE
v0 <<= v0
i := D8
i += v0
sprite v2 v3 2
v2 += 2
if v2 != 64 then jump L60
v2 ^= v2
v3 += 2
if v3 == 32 then return
again
: Sub7
v0 += 2
v1 += 2
: Sub8
v0 >>= v0
v1 >>= v0
v1 <<= v0
v1 <<= v0
v1 <<= v0
v1 <<= v0
i := D13
i += v1
i += v1
i += v0
load v0
return
: Sub9
i := D3
load v0
v0 >>= v0
save v0
v0 := 1
loop
if v0 key then
again
return
: Sub10
load v1
vE := 1
v4 ^= v4
v2 := v0
v3 := v1
loop
v5 := 16
v3 -= v5
if vF == 0 then v2 -= vE
if vF == 0 then jump L63
v5 := 39
v2 -= v5
if vF == 0 then jump L63
v0 := v2
v1 := v3
v4 += vE
again
: L63
i := hex v4
sprite v6 v7 5
v6 += 6
v4 ^= v4
v2 := v0
v3 := v1
loop
v5 := -24
v3 -= v5
if vF == 0 then v2 -= vE
if vF == 0 then jump L65
v5 := 3
v2 -= v5
if vF == 0 then jump L65
v0 := v2
v1 := v3
v4 += vE
again
: L65
i := hex v4
sprite v6 v7 5
v6 += 6
v4 ^= v4
v2 := v0
v3 := v1
loop
v5 := 100
v3 -= v5
if vF == 0 then v2 -= vE
if vF == 0 then jump L67
v0 := v2
v1 := v3
v4 += vE
again
: L67
i := hex v4
sprite v6 v7 5
v6 += 6
v4 ^= v4
v2 := v0
v3 := v1
loop
v5 := 10
v3 -= v5
if vF == 0 then jump L69
v1 := v3
v4 += vE
again
: L69
i := hex v4
sprite v6 v7 5
v6 += 6
i := hex v1
sprite v6 v7 5
return
: Sub11
i := D1
load v1
v1 += vE
if vF != 0 then v0 += 1
i := D1
save v1
return
: Sub12
i := D1
load v3
vE := v0
vE -= v2
if vF == 0 then return
if vE != 0 then jump L70
vE := v1
vE -= v3
if vF == 0 then return
: L70
i := D2
save v1
return
: Sub13
vE ^= vE
v2 := 15
v3 := -1
v1 := 16
: L71
loop
if v2 key then jump L72
v1 += v3
if v1 != 0 then jump L71
v1 := 16
v0 += v3
if v0 != 0 then
again
return
: L72
vE := 1
return
: D1
0x0 0x0
: D2
0x0 0x0
: D3
0x5
: D4
0x0 0x50 0x70 0x20 0x0 0x50 0x70 0x20 0x0 0x60 0x30 0x60 0x0 0x60 0x30 0x60 0x0 0x30 0x60 0x30 0x0 0x30 0x60 0x30 0x0 0x20 0x70 0x50 0x0 0x20 0x70 0x50
: D5
0x0 0x20 0x70 0x70
: D6
0x0 0x0 0x20 0x0
: D7
0x0 0x0 0x0 0x0
: D8
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0xc0 0x0 0x0 0x0 0x80 0x80 0x0 0x0 0xc0 0x80 0x80 0x80 0xc0 0x0 0x80 0x0
: D9
0xc 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0xd 0xc 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0xd 0xa 0x65 0x5 0x5 0x5 0x5 0xe5 0x5 0x5 0xe5 0x5 0x5 0x5 0x5 0xc5 0xa 0xa 0x65 0x5 0x5 0x5 0x5 0xe5 0x5 0x5 0xe5 0x5 0x5 0x5 0x5 0xc5 0xa 0xa 0x5 0xc 0x8 0x8 0xf 0x5 0xc 0xd 0x5 0x8 0x8 0x8 0xd 0x5 0xe 0xf 0x5 0xc 0x8 0x8 0xf 0x5 0xc 0xd 0x5 0x8 0x8 0x8 0xd 0x5 0xa 0xa 0x5 0xa 0x65 0x6 0x5 0x95 0xa 0xa 0x35 0x5 0x5 0xc5 0xa 0x35 0x5 0x5 0x95 0xa 0x65 0x5 0x5 0x95 0xa 0xa 0x35 0x5 0x6 0xc5 0xa 0x5 0xa 0xa 0x5 0xf 0x5 0x8 0x8 0x8 0x8 0x8 0xc 0x8 0xf 0x5 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0x8 0x8 0xc 0x8 0x8 0x8 0x8 0xf 0x5 0xf 0x5 0xa 0xa 0x75 0x5 0xb5 0x5 0x5 0x5 0x5 0xc5 0xa 0x65 0x5 0xb5 0x5 0xe5 0x5 0x5 0xe5 0x5 0xb5 0x5 0xc5 0xa 0x65 0x5 0x5 0x5 0x5 0xb5 0x5 0xd5 0xa 0xa 0x5 0xc 0x8 0x8 0x8 0x8 0xd 0x5 0xf 0x5 0xc 0x8 0xf 0x5 0x8 0xf 0x5 0x8 0x8 0xd 0x5 0xf 0x5 0xc 0x8 0x8 0x8 0x8 0xd 0x5 0xa 0xf 0x5 0xf 0x65 0x5 0x5 0xc5 0xa 0x35 0xe5 0x95 0xa 0x65 0x5 0xb0 0x5 0x5 0xb5 0x5 0xc5 0xa 0x35 0xe5 0x95 0xa 0x65 0x5 0x5 0xc5 0xf 0x5 0xf 0x7 0x74 0x5 0xd5 0x8 0xf 0x5 0xe 0xf 0x5 0x8 0xf 0x5 0xc 0x8 0x8 0x8 0x8 0xd 0x5 0x8 0xf 0x5 0x8 0xf 0x5 0x8 0xf 0x75 0x5 0xd4 0x7 0xa 0x5 0xa 0x35 0x5 0x5 0xf5 0x5 0x5 0xb5 0x5 0x5 0xd5 0x8 0x8 0xd 0xc 0x8 0xf 0x75 0x5 0x5 0xb5 0x5 0x5 0xf5 0x5 0x5 0x95 0xa 0x5 0xa 0xa 0x5 0x8 0x8 0x8 0xd 0x5 0xc 0x8 0x8 0x8 0xd 0x35 0x5 0xc5 0xa 0xa 0x65 0x5 0x95 0xc 0x8 0x8 0x8 0xd 0x5 0xc 0x8 0x8 0xf 0x5 0xa 0xa 0x75 0x5 0x6 0xc5 0xa 0x5 0x8 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0x8 0xf 0x5 0x8 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0xa 0x65 0x6 0x5 0xd5 0xa 0xa 0x5 0xc 0xd 0x5 0xa 0x35 0x5 0x5 0x5 0x5 0xe5 0x5 0x5 0xf5 0x5 0x5 0xf5 0x5 0x5 0xe5 0x5 0x5 0x5 0x5 0x95 0xa 0x5 0xc 0xd 0x5 0xa 0xa 0x5 0x8 0xf 0x5 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0xc 0xd 0x5 0x8 0xf 0x5 0xc 0xd 0x5 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0x8 0xf 0x5 0xa 0xa 0x35 0x5 0x5 0xb5 0x5 0x5 0x5 0x5 0x5 0x5 0x95 0xa 0xa 0x35 0x5 0x5 0x95 0xa 0xa 0x35 0x5 0x5 0x5 0x5 0x5 0x5 0xb5 0x5 0x5 0x95 0xa 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0xf 0x8 0x8 0x8 0x8 0x8 0xf 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0xf
: D10
0x3c 0x42 0x99 0x99 0x42 0x3c 0x1 0x10 0xf
: D11
0x78 0x84 0x32 0x32 0x84 0x78 0x0 0x10 0xe0
: D12
0x78 0xfc 0xfe 0xfe 0x84 0x78 0x0 0x10 0xe0
: D13
######################################################################
# INPUT: chip8/Chip-8 Games/Blinky [Hans Christian Egeberg] (alt).ch8
######################################################################
:proto L1 # 21A
:proto L6 # 260
:proto L7 # 2A4
:proto L8 # 2E4
:proto L13 # 392
:proto Sub1 # 39C
:proto L17 # 3FE
:proto L18 # 416
:proto L19 # 42E
:proto L20 # 446
:proto L21 # 45E
:proto L22 # 466
:proto L23 # 47E
:proto L24 # 49E
:proto L25 # 4B0
:proto L26 # 4B8
:proto Sub2 # 4C2
:proto L28 # 4EE
:proto L30 # 4FE
:proto L31 # 50C
:proto L32 # 518
:proto L33 # 524
:proto L34 # 52E
:proto Sub3 # 538
:proto L36 # 566
:proto L37 # 594
:proto L38 # 5B2
:proto L39 # 5CC
:proto L40 # 5E6
:proto L41 # 600
:proto L42 # 61A
:proto L44 # 62C
:proto L45 # 63A
:proto L46 # 646
:proto L47 # 652
:proto L48 # 65C
:proto Sub4 # 666
:proto Sub5 # 67A
:proto Sub6 # 69C
:proto Sub7 # 6C2
:proto Sub8 # 6C6
:proto Sub9 # 6DE
:proto L52 # 704
:proto L54 # 72C
:proto L56 # 74C
:proto L58 # 766
:proto Sub10 # 772
:proto Sub11 # 782
:proto L59 # 79A
:proto Sub12 # 7A0
:proto L61 # 7BC
:proto D1 # 7C0
:proto D2 # 7C2
:proto D3 # 7C4
:proto D4 # 7D4
:proto D5 # 7D8
:proto D6 # 7DC
:proto D7 # 7E0
:proto D8 # 800
:proto D9 # A00
:proto D10 # A0A
:proto D11 # A14
:proto D12 # A1E
: main
clear
jump L1
0x43 0x68 0x72 0x2e 0x20 0x45 0x67 0x65 0x62 0x65 0x72 0x67 0x20 0x31 0x31 0x2f 0x31 0x31 0x2d 0x27 0x39 0x30
: L1
v0 ^= v0
v1 ^= v1
i := D1
save v1
: L2
v6 := 0
v7 := 0
Sub5
: L3
vE := 64
v7 &= vE
vE := 39
v7 |= vE
v8 := 26
v9 := 12
vA := 56
vB := 0
vC := 2
vD := 26
clear
Sub6
Sub4
i := D4
sprite vA vB 4
sprite vC vD 4
loop
Sub1
if vE != 0 then jump L6
: L5
Sub2
Sub3
if v6 != -9 then
again
vE := v6
Sub10
vE := 100
Sub10
jump L2
: L6
v0 := delay
if v0 == 0 then jump L8
v0 := v8
v0 >>= v5
v0 >>= v5
v0 >>= v5
v1 := vA
v1 >>= v5
v1 >>= v5
v1 >>= v5
if v0 != v1 then jump L7
v0 := v9
v0 >>= v5
v0 >>= v5
v0 >>= v5
v1 := vB
v1 >>= v5
v1 >>= v5
v1 >>= v5
if v0 != v1 then jump L7
i := D4
sprite vA vB 4
vA := 56
vB := 0
sprite vA vB 4
vE := -13
v7 &= vE
vE := 4
v7 |= vE
vE := 50
Sub10
: L7
v0 := v8
v0 >>= v5
v0 >>= v5
v0 >>= v5
v1 := vC
v1 >>= v5
v1 >>= v5
v1 >>= v5
if v0 != v1 then jump L5
v0 := v9
v0 >>= v5
v0 >>= v5
v0 >>= v5
v1 := vD
v1 >>= v5
v1 >>= v5
v1 >>= v5
if v0 != v1 then jump L5
i := D4
sprite vC vD 4
vC := 2
vD := 26
sprite vC vD 4
vE := 207
v7 &= vE
vE := 32
v7 |= vE
vE := 25
Sub10
jump L5
: L8
v0 := 64
Sub12
vE := 64
v7 ^= vE
v0 := v7
v0 &= vE
if v0 != 0 then jump L3
vE := v6
Sub10
Sub11
clear
v6 := 17
v7 := 10
i := D2
Sub9
v6 := 17
v7 := 16
i := D1
Sub9
v4 := 0
v5 := 8
v6 := 0
v7 := 15
: L9
loop
i := D9
sprite v4 v6 9
i := D10
sprite v5 v6 9
v0 := 3
Sub12
if vE != 0 then jump L13
i := D9
sprite v4 v6 9
i := D10
sprite v5 v6 9
v4 += 2
v5 += 2
if v4 != 48 then
again
loop
i := D9
sprite v4 v6 9
i := D10
sprite v5 v6 9
v0 := 3
Sub12
if vE != 0 then jump L13
i := D9
sprite v4 v6 9
i := D10
sprite v5 v6 9
v6 += 2
if v6 != 22 then
again
loop
i := D9
sprite v4 v6 9
i := D10
sprite v5 v6 9
v0 := 3
Sub12
if vE != 0 then jump L13
i := D9
sprite v4 v6 9
i := D10
sprite v5 v6 9
v4 += -2
v5 += -2
if v4 != 0 then
again
loop
i := D9
sprite v4 v6 9
i := D10
sprite v5 v6 9
v0 := 3
Sub12
if vE != 0 then jump L13
i := D9
sprite v4 v6 9
i := D10
sprite v5 v6 9
v6 += -2
if v6 != 0 then
again
jump L9
: L13
i := D10
sprite v5 v6 9
i := D11
sprite v5 v6 9
jump L1
: Sub1
v3 := v7
vE := 3
v3 &= vE
v4 := v8
v5 := v9
vE := 8
if vE key then jump L17
vE := 2
if vE key then jump L18
vE := 6
if vE key then jump L19
vE := 4
if vE key then jump L20
: L14
if v3 == 3 then v5 += 2
if v3 == 0 then v5 += -2
if v3 == 2 then v4 += 2
if v3 == 1 then v4 += -2
v0 := v4
v1 := v5
Sub7
v2 := v0
vE := 8
v0 &= vE
: L15
if v0 != 0 then jump L21
vE := 7
v0 := v2
v2 &= vE
if v2 == 5 then jump L22
if v2 == 6 then jump L23
if v2 == 7 then jump L26
: L16
Sub4
vE := -4
v7 &= vE
v7 |= v3
v8 := v4
v9 := v5
jump Sub4
: L17
v0 := v4
v1 := v5
v1 += 2
Sub7
v2 := v0
vE := 8
v0 &= vE
if v0 != 0 then jump L14
v3 := 3
v5 += 2
jump L15
: L18
v0 := v4
v1 := v5
v1 += -2
Sub7
v2 := v0
vE := 8
v0 &= vE
if v0 != 0 then jump L14
v3 := 0
v5 += -2
jump L15
: L19
v0 := v4
v1 := v5
v0 += 2
Sub7
v2 := v0
vE := 8
v0 &= vE
if v0 != 0 then jump L14
v3 := 2
v4 += 2
jump L15
: L20
v0 := v4
v1 := v5
v0 += -2
Sub7
v2 := v0
vE := 8
v0 &= vE
if v0 != 0 then jump L14
v3 := 1
v4 += -2
jump L15
: L21
Sub4
sprite v8 v9 4
vE := vF
return
: L22
vE := -16
v0 &= vE
v0 |= v3
save v0
i := D5
sprite v4 v5 4
v6 += 1
v1 := 5
v0 := delay
if v0 == 0 then buzzer := v1
jump L16
: L23
vE := -16
v0 &= vE
v0 |= v3
save v0
i := D6
sprite v4 v5 4
v6 += 4
v0 := vA
v1 := vB
Sub7
vE := -16
v0 &= vE
if v0 != 0 then jump L24
vE := 12
v7 ^= vE
: L24
v0 := vC
v1 := vD
Sub7
vE := -16
v0 &= vE
if v0 != 0 then jump L25
vE := 48
v7 ^= vE
: L25
v0 := -1
buzzer := v0
delay := v0
jump L16
: L26
if v3 == 1 then v4 := 58
if v3 == 2 then v4 := 0
jump L16
: Sub2
v2 := v7
vE := 12
v2 &= vE
v0 := vA
v1 := vB
Sub7
i := D4
vE := -16
v0 &= vE
if v0 != 0 then jump L28
: L27
sprite vA vB 4
if v2 == 12 then vB += 2
if v2 == 0 then vB += -2
if v2 == 8 then vA += 2
if v2 == 4 then vA += -2
sprite vA vB 4
return
: L28
v1 := random 0b11110000
v0 &= v1
if v0 != 0 then jump L30
: L29
vE := 12
v7 ^= vE
v2 ^= vE
jump L27
: L30
sprite vA vB 4
v0 <<= v5
if vF == 0 then jump L31
v2 := 4
vA += -2
jump L34
: L31
v0 <<= v5
if vF == 0 then jump L32
v2 := 12
vB += 2
jump L34
: L32
v0 <<= v5
if vF == 0 then jump L33
v2 := 8
vA += 2
jump L34
: L33
v0 <<= v5
if vF == 0 then jump L29
v2 := 0
vB += -2
: L34
sprite vA vB 4
vE := -13
v7 &= vE
v7 |= v2
return
: Sub3
v2 := v7
v3 := v7
vE := 48
v2 &= vE
v0 := vC
v1 := vD
Sub7
i := D4
vE := -16
v0 &= vE
if v0 != 0 then jump L36
: L35
sprite vC vD 4
if v2 == 48 then vD += 2
if v2 == 0 then vD += -2
if v2 == 32 then vC += 2
if v2 == 16 then vC += -2
sprite vC vD 4
return
: L36
vE := 128
v1 := delay
if v1 != 0 then jump L42
v1 := v0
v3 <<= v5
if vF == 0 then jump L37
v3 := v9
v3 -= vD
if vF == 0 then jump L39
if v3 != 0 then jump L38
v7 ^= vE
v3 := v8
v3 -= vC
if vF == 0 then jump L41
if v3 != 0 then jump L40
v7 ^= vE
jump L42
: L37
v3 := v8
v3 -= vC
if vF == 0 then jump L41
if v3 != 0 then jump L40
v7 ^= vE
v3 := v9
v3 -= vD
if vF == 0 then jump L39
if v3 != 0 then jump L38
v7 ^= vE
jump L42
: L38
v3 := 64
v1 &= v3
if v1 == 0 then jump L42
sprite vC vD 4
vD += 2
sprite vC vD 4
v7 ^= vE
vE := 207
v7 &= vE
v2 := 48
v7 |= v2
return
: L39
v3 := 16
v1 &= v3
if v1 == 0 then jump L42
sprite vC vD 4
vD += -2
sprite vC vD 4
v7 ^= vE
vE := 207
v7 &= vE
v2 := 0
v7 |= v2
return
: L40
v3 := 32
v1 &= v3
if v1 == 0 then jump L42
sprite vC vD 4
vC += 2
sprite vC vD 4
v7 ^= vE
vE := 207
v7 &= vE
v2 := 32
v7 |= v2
return
: L41
v3 := 128
v1 &= v3
if v1 == 0 then jump L42
sprite vC vD 4
vC += -2
sprite vC vD 4
v7 ^= vE
vE := 207
v7 &= vE
v2 := 16
v7 |= v2
return
: L42
v1 := random 0b11110000
v0 &= v1
if v0 != 0 then jump L44
: L43
v7 ^= vE
vE := 48
v7 ^= vE
v2 ^= vE
jump L35
: L44
sprite vC vD 4
v0 <<= v5
if vF == 0 then jump L45
v2 := 144
vC += -2
jump L48
: L45
v0 <<= v5
if vF == 0 then jump L46
v2 := 48
vD += 2
jump L48
: L46
v0 <<= v5
if vF == 0 then jump L47
v2 := 160
vC += 2
jump L48
: L47
v0 <<= v5
if vF == 0 then jump L43
v2 := 0
vD += -2
: L48
sprite vC vD 4
vE := 79
v7 &= vE
v7 |= v2
return
: Sub4
v0 := v7
vE := 3
v0 &= vE
v0 <<= v5
v0 <<= v5
i := D3
i += v0
sprite v8 v9 4
vE := vF
return
: Sub5
vE := 0
loop
i := D8
i += vE
i += vE
i += vE
i += vE
load v3
i := D12
i += vE
i += vE
i += vE
i += vE
save v3
vE += 1
if vE != 128 then
again
return
: Sub6
v2 ^= v2
v3 ^= v3
vE := 15
: L50
loop
v0 := v2
v1 := v3
Sub8
v0 &= vE
v0 <<= v5
i := D7
i += v0
sprite v2 v3 2
v2 += 2
if v2 != 64 then jump L50
v2 ^= v2
v3 += 2
if v3 == 32 then return
again
: Sub7
v0 += 2
v1 += 2
: Sub8
v0 >>= v5
v1 >>= v5
v1 <<= v5
v1 <<= v5
v1 <<= v5
v1 <<= v5
i := D12
i += v1
i += v1
i += v0
load v0
return
: Sub9
load v1
vE := 1
v4 ^= v4
v2 := v0
v3 := v1
loop
v5 := 16
v3 -= v5
if vF == 0 then v2 -= vE
if vF == 0 then jump L52
v5 := 39
v2 -= v5
if vF == 0 then jump L52
v0 := v2
v1 := v3
v4 += vE
again
: L52
i := hex v4
sprite v6 v7 5
v6 += 6
v4 ^= v4
v2 := v0
v3 := v1
loop
v5 := -24
v3 -= v5
if vF == 0 then v2 -= vE
if vF == 0 then jump L54
v5 := 3
v2 -= v5
if vF == 0 then jump L54
v0 := v2
v1 := v3
v4 += vE
again
: L54
i := hex v4
sprite v6 v7 5
v6 += 6
v4 ^= v4
v2 := v0
v3 := v1
loop
v5 := 100
v3 -= v5
if vF == 0 then v2 -= vE
if vF == 0 then jump L56
v0 := v2
v1 := v3
v4 += vE
again
: L56
i := hex v4
sprite v6 v7 5
v6 += 6
v4 ^= v4
v2 := v0
v3 := v1
loop
v5 := 10
v3 -= v5
if vF == 0 then jump L58
v1 := v3
v4 += vE
again
: L58
i := hex v4
sprite v6 v7 5
v6 += 6
i := hex v1
sprite v6 v7 5
return
: Sub10
i := D1
load v1
v1 += vE
if vF != 0 then v0 += 1
i := D1
save v1
return
: Sub11
i := D1
load v3
vE := v0
vE -= v2
if vF == 0 then return
if vE != 0 then jump L59
vE := v1
vE -= v3
if vF == 0 then return
: L59
i := D2
save v1
return
: Sub12
vE ^= vE
v2 := 15
v3 := -1
v1 := 16
: L60
loop
if v2 key then jump L61
v1 += v3
if v1 != 0 then jump L60
v1 := 16
v0 += v3
if v0 != 0 then
again
return
: L61
vE := 1
return
: D1
0x0 0x0
: D2
0x0 0x0
: D3
0x0 0x50 0x70 0x20 0x0 0x60 0x30 0x60 0x0 0x30 0x60 0x30 0x0 0x20 0x70 0x50
: D4
0x0 0x20 0x70 0x70
: D5
0x0 0x0 0x20 0x0
: D6
0x0 0x0 0x0 0x0
: D7
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0xc0 0x0 0x0 0x0 0x80 0x80 0x0 0x0 0xc0 0x80 0x80 0x80 0xc0 0x0 0x80 0x0
: D8
0xc 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0xd 0xc 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0xd 0xa 0x65 0x5 0x5 0x5 0x5 0xe5 0x5 0x5 0xe5 0x5 0x5 0x5 0x5 0xc5 0xa 0xa 0x65 0x5 0x5 0x5 0x5 0xe5 0x5 0x5 0xe5 0x5 0x5 0x5 0x5 0xc5 0xa 0xa 0x5 0xc 0x8 0x8 0xf 0x5 0xc 0xd 0x5 0x8 0x8 0x8 0xd 0x5 0xe 0xf 0x5 0xc 0x8 0x8 0xf 0x5 0xc 0xd 0x5 0x8 0x8 0x8 0xd 0x5 0xa 0xa 0x5 0xa 0x65 0x6 0x5 0x95 0xa 0xa 0x35 0x5 0x5 0xc5 0xa 0x35 0x5 0x5 0x95 0xa 0x65 0x5 0x5 0x95 0xa 0xa 0x35 0x5 0x6 0xc5 0xa 0x5 0xa 0xa 0x5 0xf 0x5 0x8 0x8 0x8 0x8 0x8 0xc 0x8 0xf 0x5 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0x8 0x8 0xc 0x8 0x8 0x8 0x8 0xf 0x5 0xf 0x5 0xa 0xa 0x75 0x5 0xb5 0x5 0x5 0x5 0x5 0xc5 0xa 0x65 0x5 0xb5 0x5 0xe5 0x5 0x5 0xe5 0x5 0xb5 0x5 0xc5 0xa 0x65 0x5 0x5 0x5 0x5 0xb5 0x5 0xd5 0xa 0xa 0x5 0xc 0x8 0x8 0x8 0x8 0xd 0x5 0xf 0x5 0xc 0x8 0xf 0x5 0x8 0xf 0x5 0x8 0x8 0xd 0x5 0xf 0x5 0xc 0x8 0x8 0x8 0x8 0xd 0x5 0xa 0xf 0x5 0xf 0x65 0x5 0x5 0xe5 0xa 0x35 0xe5 0x95 0xa 0x65 0x5 0xb0 0x5 0x5 0xb5 0x5 0xc5 0xa 0x35 0xe5 0x95 0xa 0x65 0x5 0x5 0xc5 0xf 0x5 0xf 0x7 0x74 0x5 0xd5 0x8 0xf 0x5 0xe 0xf 0x5 0x8 0xf 0x5 0xc 0x8 0x8 0x8 0x8 0xd 0x5 0x8 0xf 0x5 0x8 0xf 0x5 0x8 0xf 0x75 0x5 0xd4 0x7 0xa 0x5 0xa 0x35 0x5 0x5 0xf5 0x5 0x5 0xb5 0x5 0x5 0xd5 0x8 0x8 0xd 0xc 0x8 0xf 0x75 0x5 0x5 0xb5 0x5 0x5 0xf5 0x5 0x5 0x95 0xa 0x5 0xa 0xa 0x5 0x8 0x8 0x8 0xd 0x5 0xc 0x8 0x8 0x8 0xd 0x35 0x5 0xc5 0xa 0xa 0x65 0x5 0x95 0xc 0x8 0x8 0x8 0xd 0x5 0xc 0x8 0x8 0xf 0x5 0xa 0xa 0x75 0x5 0x5 0xc5 0xa 0x5 0x8 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0x8 0xf 0x5 0x8 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0xa 0x65 0x5 0x5 0xd5 0xa 0xa 0x5 0xc 0xd 0x6 0xa 0x35 0x5 0x5 0x5 0x5 0xe5 0x5 0x5 0xf5 0x5 0x5 0xf5 0x5 0x5 0xe5 0x5 0x5 0x5 0x5 0x95 0xa 0x6 0xc 0xd 0x5 0xa 0xa 0x5 0x8 0xf 0x5 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0xc 0xd 0x5 0x8 0xf 0x5 0xc 0xd 0x5 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0x8 0xf 0x5 0xa 0xa 0x35 0x5 0x5 0xb5 0x5 0x5 0x5 0x5 0x5 0x5 0x95 0xa 0xa 0x35 0x5 0x5 0x95 0xa 0xa 0x35 0x5 0x5 0x5 0x5 0x5 0x5 0xb5 0x5 0x5 0x95 0xa 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0xf 0x8 0x8 0x8 0x8 0x8 0xf 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0xf
: D9
0x3c 0x42 0x99 0x99 0x42 0x3c 0x1 0x10 0xf 0x0
: D10
0x78 0x84 0x32 0x32 0x84 0x78 0x0 0x10 0xe0 0x0
: D11
0x78 0xfc 0xfe 0xfe 0x84 0x78 0x0 0x10 0xe0 0x0
: D12
######################################################################
# INPUT: chip8/Chip-8 Games/Blitz [David Winter].ch8
######################################################################
:proto L1 # 217
:proto L5 # 249
:proto L8 # 281
:proto L9 # 287
:proto L11 # 2AB
:proto L12 # 2B9
:proto L13 # 2BB
:proto L14 # 2C1
:proto Sub1 # 2D9
:proto D1 # 307
:proto D2 # 31B
:proto D3 # 31E
:proto D4 # 320
:proto D5 # 341
:proto D6 # 387
: main
jump L1
0x42 0x4c 0x49 0x54 0x5a 0x20 0x42 0x79 0x20 0x44 0x61 0x76 0x69 0x64 0x20 0x57 0x49 0x4e 0x54 0x45 0x52
: L1
i := D5
v0 := 4
v1 := 9
v2 := 14
v7 := 4
loop
sprite v0 v1 14
i += v2
v0 += 12
if v0 != 64 then
again
v0 := key
: L3
clear
Sub1
v0 := key
clear
vE := v7
i := D3
: L4
loop
vB := 31
vC := random 0b11111
vC += vC
sprite vC vB 2
if vF != 1 then jump L5
sprite vC vB 2
again
: L5
vA := random 0b111
vA += 1
loop
vB += -2
sprite vC vB 2
vA += -1
if vA != 0 then
again
vE += -1
if vE != 0 then jump L4
vB := 0
vC := v7
vD := 0
vE := 0
: L7
i := D2
sprite vD vE 3
if vF != 0 then jump L14
if vB != 0 then jump L8
v0 := 5
if v0 -key then jump L9
vB := 1
v8 := vD
v8 += 2
v9 := vE
v9 += 3
: L8
i := D3
sprite v8 v9 1
v1 := vF
: L9
v0 := 5
delay := v0
loop
v0 := delay
if v0 != 0 then
again
if vB != 1 then jump L11
i := D3
if v1 != 1 then sprite v8 v9 1
v9 += 1
if v9 != 32 then jump L11
vB := 0
if v1 != 0 then vC += -1
if vC == 0 then jump L13
: L11
i := D2
sprite vD vE 3
vD += 2
if vD != 64 then jump L12
vD := 0
vE += 1
: L12
jump L7
: L13
clear
v7 += 2
jump L3
: L14
i := D2
sprite vD vE 3
v0 := 20
v1 := 2
v2 := 11
i := D4
loop
sprite v0 v1 11
i += v2
v0 += 8
if v0 != 44 then
again
loop
again
: Sub1
v0 := 10
v1 := 13
v2 := 5
i := D1
loop
sprite v0 v1 5
i += v2
v0 += 8
if v0 != 42 then
again
v0 := v7
v0 += -2
v0 >>= v0
i := D6
bcd v0
load v2
v0 := 45
i := hex v1
v1 := 13
sprite v0 v1 5
v0 += 5
i := hex v2
sprite v0 v1 5
return
: D1
0x83 0x82 0x83 0x82 0xfb 0xe8 0x8 0x88 0x5 0xe2 0xbe 0xa0 0xb8 0x20 0x3e 0x80 0x80 0x80 0x80 0xf8
: D2
0x80 0xf8 0xfc
: D3
0xc0 0xc0
: D4
0xf9 0x81 0xdb 0xcb 0xfb 0x0 0xfa 0x8a 0x9a 0x99 0xf8 0xef 0x2a 0xe8 0x29 0x29 0x0 0x6f 0x68 0x2e 0x4c 0x8f 0xbe 0xa0 0xb8 0xb0 0xbe 0x0 0xbe 0x22 0x3e 0x34 0xb2
: D5
0xd8 0xd8 0x0 0xc3 0xc3 0x0 0xd8 0xd8 0x0 0xc3 0xc3 0x0 0xd8 0xd8 0xc0 0xc0 0x0 0xc0 0xc0 0x0 0xc0 0xc0 0x0 0xc0 0xc0 0x0 0xdb 0xdb 0xdb 0xdb 0x0 0x18 0x18 0x0 0x18 0x18 0x0 0x18 0x18 0x0 0xdb 0xdb 0xdb 0xdb 0x0 0x18 0x18 0x0 0x18 0x18 0x0 0x18 0x18 0x0 0x18 0x18 0xdb 0xdb 0x0 0x3 0x3 0x0 0x18 0x18 0x0 0xc0 0xc0 0x0 0xdb 0xdb
: D6
######################################################################
# INPUT: chip8/Chip-8 Games/Bowling [Gooitzen van der Wal].ch8
######################################################################
:proto L3 # 246
:proto L10 # 2EA
:proto L11 # 2F4
:proto L12 # 2FE
:proto L13 # 312
:proto L14 # 314
:proto L17 # 344
:proto L19 # 35A
:proto L21 # 36E
:proto Sub1 # 376
:proto L28 # 406
:proto L29 # 410
:proto L30 # 414
:proto L31 # 418
:proto L32 # 41C
:proto L33 # 41E
:proto L34 # 420
:proto L35 # 422
:proto L38 # 458
:proto L39 # 45C
:proto L40 # 466
:proto L43 # 47A
:proto L44 # 484
:proto L45 # 486
:proto L46 # 488
:proto Sub2 # 48E
:proto L49 # 49E
:proto D1 # 4A9
:proto L50 # 4AE
:proto L51 # 4CE
:proto L52 # 4F6
:proto L53 # 4F8
:proto L54 # 514
:proto L55 # 516
:proto L56 # 518
:proto L57 # 51A
:proto L58 # 51C
:proto L59 # 51E
:proto L60 # 520
:proto L61 # 522
:proto L63 # 530
:proto L64 # 53A
:proto L65 # 550
:proto Sub3 # 55E
:proto Sub4 # 57A
:proto Sub5 # 590
:proto Sub6 # 596
:proto Sub7 # 598
:proto L66 # 5AA
:proto L67 # 5AC
:proto L68 # 5B0
:proto Sub8 # 5B4
:proto Sub9 # 5B6
:proto Sub10 # 5BC
:proto Sub11 # 5C6
:proto Sub13 # 5DE
:proto Sub14 # 5E0
:proto Sub15 # 5EA
:proto Sub16 # 5EE
:proto L72 # 5F0
:proto Sub17 # 5F4
:proto Sub18 # 608
:proto Sub19 # 614
:proto Sub20 # 626
:proto D2 # 642
:proto D3 # 647
:proto D4 # 64A
:proto D5 # 64D
:proto D6 # 652
:proto D7 # 656
:proto D8 # 658
:proto D9 # 65A
:proto D10 # 65F
:proto D11 # 664
:proto D12 # 66B
:proto D13 # 66F
:proto D14 # 675
:proto D15 # 67C
:proto D16 # 684
:proto D17 # 685
:proto D18 # 68A
:proto D19 # 690
:proto D20 # 694
:proto D21 # 696
:proto D22 # 6A6
:proto D23 # 6A7
:proto D24 # 6A8
: main
v3 := 20
v4 := 0
Sub3
v0 := 5
Sub8
v3 := 12
loop
Sub10
v9 := 6
v9 -= vB
if vB != 0 then if vF == 0 then
again
i := hex vB
sprite v6 v4 5
vD := vB
vD += 9
v3 := 20
v4 := 12
Sub4
v0 := 5
Sub8
v3 := 12
loop
Sub10
v9 := 9
v9 -= vB
if vF == 0 then
again
i := hex vB
sprite v3 v4 5
if vB != 0 then jump L3
vB := 10
v3 := 7
v0 := 1
Sub8
: L3
v0 := vB
i := D22
save v0
vE := 0
v3 := 20
v4 := 24
v0 := 5
Sub8
i := D4
Sub9
v0 := 14
Sub8
Sub8
v0 := 13
Sub8
v3 := 12
loop
Sub10
v9 := 3
v9 -= vB
if vB != 0 then if vF == 0 then
again
i := hex vB
sprite v3 v4 5
v0 := 0
if vB == 2 then v0 := 4
if vB == 1 then v0 := 8
i := D1
save v0
Sub13
i := D20
v0 := 0
v1 := 0
loop
save v0
v1 += 1
if v1 != 18 then
again
: L6
vC := 10
vE += 1
loop
Sub18
vA := 0
Sub1
v3 := 0
v4 := 16
Sub3
Sub11
v0 := vC
Sub8
v3 := 2
v4 := 27
Sub4
Sub11
v0 := vE
Sub6
v3 := 48
v4 := 0
i := D15
sprite v3 v4 9
v3 += 8
sprite v3 v4 9
i := D21
i += vC
load v0
v4 := 1
if v0 != 1 then jump L10
v3 := 57
i := D13
sprite v3 v4 7
: L8
i := D23
load v0
v3 := 50
v4 := 2
Sub8
jump L11
: L9
v3 := 58
v4 := 2
i := hex vB
sprite v3 v4 5
jump L8
: L10
if v0 == 0 then jump L9
v3 := 49
i := D14
sprite v3 v4 7
: L11
Sub13
if vC == vD then jump L12
vC += 1
again
: L12
clear
v3 := 0
v4 := 0
Sub4
Sub11
v0 := vE
if v0 != 14 then jump L13
Sub8
jump L14
: L13
Sub6
: L14
vC := 10
: L15
v3 := 0
v4 += 9
loop
v0 := vC
Sub8
Sub11
i := D18
i += vC
load v0
v5 := v0
i := D19
i += vC
load v0
Sub7
Sub17
if vC == vD then jump L17
vC += 1
v9 := 36
v9 -= v3
if vF != 1 then jump L15
v3 := 37
again
: L17
v3 := 55
v4 := 0
if vE == 14 then loop
again
i := D22
load v0
if vE == v0 then jump L19
Sub6
v9 := key
jump L6
: L19
v9 := key
vE := 14
vC := 10
loop
Sub18
if v0 == 0 then jump L21
vA := 0
if v0 == 1 then vA := 1
Sub1
: L21
if vC == vD then jump L12
vC += 1
again
: Sub1
Sub13
clear
i := D16
v2 := 0
: L22
v1 := 0
loop
sprite v1 v2 1
v1 += 8
if v1 != 64 then
again
v2 += 31
if v2 == 31 then jump L22
i := D17
v1 := 0
v2 := 1
sprite v1 v2 15
v2 := 16
sprite v1 v2 15
: L24
i := D3
v1 := 39
v2 := 14
sprite v1 v2 4
v1 := 45
v2 := 10
Sub5
sprite v1 v2 4
v1 := 51
v2 := 6
Sub5
Sub5
sprite v1 v2 4
v1 := 57
v2 := 2
Sub5
Sub5
Sub5
sprite v1 v2 4
: L25
vB := 0
i := D2
v1 := 1
v2 := 14
: L26
v3 := 26
v4 := 1
: L27
loop
sprite v1 v2 5
v8 := 34
v9 := 2
v5 := 1
if v5 key then jump L29
v5 := 2
if v5 key then jump L30
v5 := 3
if v5 key then jump L31
v5 := 5
if v5 key then jump L32
v5 := 7
if v5 key then jump L35
v5 := 8
if v5 key then jump L34
v5 := 9
if v5 key then jump L33
sprite v1 v2 5
if v2 == v3 then jump L28
v2 += v4
jump L27
: L28
if v4 != 1 then jump L26
v3 := 1
v4 := -1
again
: L29
v9 += -4
jump L35
: L30
v9 += -4
jump L34
: L31
v9 += -4
jump L33
: L32
v9 += -2
: L33
v8 += 9
: L34
v8 += 9
: L35
Sub16
Sub2
i := D19
i += vC
load v0
v8 := v0
i := D21
i += vC
load v0
v9 := v0
if vA != 0 then jump L40
if v9 == 3 then jump L38
if v9 != 0 then jump L39
: L36
Sub20
if vB == 10 then jump L44
: L37
Sub19
i := D23
v0 := vB
save v0
vA += 1
if vB != 10 then jump L25
jump L24
: L38
Sub20
v9 += -1
: L39
Sub20
v9 += -1
if vE != 14 then jump L36
jump L37
: L40
if v9 == 1 then jump L43
: L41
Sub20
i := D23
load v0
v0 += vB
if v0 == 10 then jump L45
: L42
Sub13
jump L46
: L43
Sub20
v9 += -1
if vE != 14 then jump L41
jump L42
: L44
v9 += 1
: L45
v9 += 1
: L46
Sub19
clear
return
: Sub2
v3 := 0
vF := 0
loop
if vF != 0 then jump L50
sprite v1 v2 5
: L48
if v1 != v8 then jump L49
v3 := v9
: L49
v1 += 3
v2 += v3
if v1 == 61 then return
sprite v1 v2 5
0x60 : D1 0x0 # SMC: v0 := 0
Sub14
again
: L50
sprite v1 v2 5
v6 := 39
v7 := 2
v4 := 42
v4 -= v1
if vF != 0 then jump L53
v4 := 48
v4 -= v1
if vF != 0 then jump L51
v4 := 54
v4 -= v1
if vF != 0 then jump L52
v6 += 12
: L51
v6 += 6
if v2 == 0 then jump L54
v4 := 5
v4 -= v2
if vF != 0 then jump L61
v4 := 13
v4 -= v2
if vF != 0 then jump L59
v4 := 21
v4 -= v2
if vF != 0 then jump L57
v4 := 26
v4 -= v2
if vF != 0 then jump L55
jump L54
: L52
v6 += 12
: L53
if v2 == 0 then jump L54
v4 := 9
v4 -= v2
if vF != 0 then jump L60
v4 := 17
v4 -= v2
if vF != 0 then jump L58
v4 := 25
v4 -= v2
if vF != 0 then jump L56
: L54
jump Sub16
: L55
v7 += 4
: L56
v7 += 4
: L57
v7 += 4
: L58
v7 += 4
: L59
v7 += 4
: L60
v7 += 4
: L61
loop
i := D3
sprite v6 v7 4
if vF != 0 then jump L63
sprite v6 v7 4
: L62
i := D2
jump L48
: L63
vB += 1
Sub15
v0 := random 0b111
v0 += v0
jump0 L64
: L64
jump L65
0x15 0x4e 0x15 0x4a 0x15 0x48 0x15 0x50 0x15 0x4e 0x15 0x4a 0x77 0x10 0x77 0xf8 0x15 0x54 0x77 0x8
: L65
v7 += -4
v6 += 6
v4 := 27
v4 -= v7
if vF != 0 then
again
jump L62
: Sub3
i := D4
Sub9
i := D5
sprite v3 v4 5
v3 += 4
v0 := 10
Sub8
i := D6
sprite v3 v4 5
v3 += 4
v0 := 14
Sub8
i := D9
jump Sub9
: Sub4
v0 := 15
Sub8
i := D9
Sub9
v0 := 10
Sub8
i := D10
sprite v3 v4 5
v3 += 6
v0 := 14
jump Sub8
: Sub5
sprite v1 v2 4
v2 += 8
return
: Sub6
v5 := 0
: Sub7
i := D24
bcd v0
load v2
v0 := v5
if v0 != 0 then jump L66
if v1 != 0 then jump L67
jump L68
: L66
Sub8
: L67
v0 := v1
Sub8
: L68
v0 := v2
jump Sub8
: Sub8
i := hex v0
: Sub9
sprite v3 v4 5
v3 += 5
return
: Sub10
i := D11
sprite v3 v4 7
vB := key
sprite v3 v4 7
return
: Sub11
i := D12
sprite v3 v4 4
v3 += 2
return
: L69
i := D7
: L70
sprite v3 v4 2
v3 += 3
return
: Sub12
i := D8
jump L70
0x60 0x40 0x15 0xe0
: Sub13
v0 := 160
: Sub14
delay := v0
loop
v0 := delay
if v0 != 0 then
again
return
: Sub15
v0 := 1
jump L72
: Sub16
v0 := 8
: L72
buzzer := v0
return
: Sub17
i := D21
i += vC
load v0
if v0 == 0 then return
if v0 == 1 then jump L69
if v0 == 3 then Sub12
jump Sub12
: Sub18
clear
i := hex vC
v3 := 30
v4 := 13
Sub9
jump Sub17
: Sub19
i := D19
i += vC
v0 := v8
save v0
i := D21
i += vC
v0 := v9
save v0
return
: Sub20
v8 += vB
v0 := 99
v0 -= v8
if vF != 0 then return
i := D18
i += vC
load v0
v0 += 1
i := D18
i += vC
save v0
v8 += 156
return
: D2
0xf8 0xf8 0xf8 0xf8 0xf8
: D3
0xf0 0x90 0x90
: D4
0xf0 0x90 0xf0
: D5
0x80 0x80 0x80 0x80 0xe0
: D6
0xa0 0xa0 0xe0 0x40
: D7
0x40 0x80
: D8
0xc0 0xc0
: D9
0xf0 0x90 0xf0 0xa0 0x90
: D10
0xd8 0xa8 0x88 0x88 0x88
: D11
0xf0 0x90 0x10 0x70 0x40 0x0 0x70
: D12
0x0 0x80 0x0 0x80
: D13
0x0 0x4 0xc 0x1c 0x3c 0x7c
: D14
0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc
: D15
0xff 0x81 0x81 0x81 0x81 0x81 0x81 0x81
: D16
0xff
: D17
0x80 0x80 0x80 0x80 0x80
: D18
0x80 0x80 0x80 0x80 0x80 0x80
: D19
0x80 0x80 0x80 0x80
: D20
0x0 0x0
: D21
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D22
0x0
: D23
0x0
: D24
0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Breakout (Brix hack) [David Winter, 1997].ch8
######################################################################
:proto L7 # 2AA
:proto L8 # 2AC
:proto L9 # 2CA
:proto L10 # 2DE
:proto L11 # 2E0
:proto L12 # 2E8
:proto L13 # 2EE
:proto Sub1 # 2F6
:proto D1 # 30C
:proto D2 # 30E
:proto D3 # 310
:proto D4 # 312
:proto D5 # 314
: main
vE := 5
v5 := 0
vB := 6
: L1
vA := 0
loop
i := D1
sprite vA vB 1
vA += 4
if vA != 64 then
again
vB += 2
if vB != 18 then jump L1
vC := 32
vD := 31
i := D3
sprite vC vD 1
Sub1
v0 := 0
v1 := 0
i := D4
sprite v0 v1 1
v0 += 8
i := D2
sprite v0 v1 1
: L3
v0 := 64
delay := v0
loop
v0 := delay
if v0 != 0 then
again
v6 := random 0b1111
v7 := 30
v8 := 1
v9 := -1
i := D2
sprite v6 v7 1
loop
i := D3
sprite vC vD 1
v0 := 4
if v0 key then vC += -2
v0 := 6
if v0 key then vC += 2
v0 := 63
vC &= v0
sprite vC vD 1
i := D2
sprite v6 v7 1
v6 += v8
v7 += v9
v0 := 63
v6 &= v0
v1 := 31
v7 &= v1
if v7 == 31 then jump L8
: L6
if v6 == 0 then v8 := 1
if v6 == 63 then v8 := -1
if v7 == 0 then v9 := 1
sprite v6 v7 1
if vF != 1 then jump L7
if v7 == 31 then jump L7
v0 := 5
v0 -= v7
if vF != 0 then jump L7
v0 := 1
buzzer := v0
v0 := v6
v1 := -4
v0 &= v1
i := D1
sprite v0 v7 1
v0 := -2
v9 ^= v0
Sub1
v5 += 1
Sub1
if v5 == 96 then jump L10
: L7
again
: L8
v9 := -1
v0 := v6
v0 -= vC
if vF != 1 then jump L9
v1 := 2
v0 -= v1
if vF != 1 then jump L11
v0 -= v1
if vF != 1 then jump L13
v0 -= v1
if vF != 1 then jump L12
: L9
v0 := 32
buzzer := v0
i := D2
vE += -1
v0 := vE
v0 += v0
v1 := 0
sprite v0 v1 1
if vE != 0 then jump L3
: L10
loop
again
: L11
v8 += -1
if v8 == -2 then v8 := -1
jump L13
: L12
v8 += 1
if v8 == 2 then v8 := 1
: L13
v0 := 4
buzzer := v0
v9 := -1
jump L6
: Sub1
i := D5
bcd v5
load v2
i := hex v1
v3 := 55
v4 := 0
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
return
: D1
0xf0 0x0
: D2
0x80 0x0
: D3
0xfc 0x0
: D4
0xaa 0x0
: D5
0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Breakout [Carmelo Cortez, 1979].ch8
######################################################################
:proto L6 # 288
:proto L7 # 298
:proto L8 # 2A4
:proto L9 # 2AA
:proto D1 # 2CA
:proto D2 # 2CB
:proto D3 # 2CC
:proto D4 # 2CD
:proto L11 # 2CE
:proto D5 # 2DE
:proto D6 # 2E3
:proto D7 # 2F0
: main
i := D3
vA := 6
v1 := 3
: L1
vB := 8
v0 := 0
loop
sprite v0 v1 1
v0 += 8
vB += -1
if vB != 0 then
again
v1 += 2
vA += -1
if vA != 0 then jump L1
v6 := 0
v7 := 20
i := D4
v0 := 32
v1 := 30
sprite v0 v1 1
: L3
v3 := 29
v2 := 63
v2 &= v0
v7 += -1
if v7 == 0 then jump L9
vF := key
: L4
i := D2
sprite v2 v3 1
v5 := -1
v4 := random 0b1
if v4 != 1 then v4 := -1
: L5
loop
i := D4
vC := 0
vE := 4
if vE key then vC := -2
vE := 6
if vE key then vC := 2
sprite v0 v1 1
v0 += vC
sprite v0 v1 1
if vF == 1 then jump L7
if v2 == 0 then v4 := 1
if v2 == 63 then v4 := -1
if v3 == 0 then jump L11
if v3 == 31 then jump L8
i := D2
sprite v2 v3 1
v2 += v4
v3 += v5
sprite v2 v3 1
if vF != 1 then jump L5
if v3 == 30 then jump L7
vA := 2
buzzer := vA
v6 += 1
i := D1
jump L6
: L6
sprite v2 v3 1
v4 := random 0b1
if v4 != 1 then v4 := -1
v5 := random 0b1
if v5 != 1 then v5 := 1
again
: L7
vA := 3
buzzer := vA
i := D2
sprite v2 v3 1
v3 += -1
jump L4
: L8
i := D2
sprite v2 v3 1
jump L3
: L9
i := D4
sprite v0 v1 1
i := D7
bcd v6
load v2
v3 := 24
v4 := 27
i := hex v0
sprite v3 v4 5
v3 += 5
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
loop
again
: D1
0xf0
: D2
0x80
: D3
0xff
: D4
0xff
: L11
i := D5
v3 := 21
v2 := 16
sprite v3 v2 5
i := D6
v3 := 29
sprite v3 v2 5
jump L9
: D5
0xee 0x8a 0xce 0x8c 0x8a
: D6
0xee 0x88 0xcc 0x88 0xee 0 0 0 0 0 0 0 0
: D7
######################################################################
# INPUT: chip8/Chip-8 Games/Brick (Brix hack, 1990).ch8
######################################################################
:proto L8 # 2AA
:proto L9 # 2AC
:proto L10 # 2CA
:proto L12 # 2E0
:proto L13 # 2E8
:proto L14 # 2EE
:proto Sub1 # 2F6
:proto D1 # 30C
:proto D2 # 30E
:proto D3 # 310
:proto D4 # 312
:proto D5 # 314
:proto L15 # 318
: main
vE := 5
v5 := 0
: L1
vB := 6
: L2
vA := 0
loop
i := D1
sprite vA vB 1
vA += 4
if vA != 64 then
again
vB += 1
if vB != 18 then jump L2
vC := 32
vD := 31
i := D3
sprite vC vD 1
Sub1
v0 := 0
v1 := 0
i := D4
sprite v0 v1 1
v0 += 8
i := D2
sprite v0 v1 1
: L4
v0 := 64
delay := v0
loop
v0 := delay
if v0 != 0 then
again
v6 := random 0b1111
v7 := 30
v8 := 1
v9 := -1
i := D2
sprite v6 v7 1
loop
i := D3
sprite vC vD 1
v0 := 4
if v0 key then vC += -2
v0 := 6
if v0 key then vC += 2
v0 := 63
vC &= v0
sprite vC vD 1
i := D2
sprite v6 v7 1
v6 += v8
v7 += v9
v0 := 63
v6 &= v0
v1 := 31
v7 &= v1
if v7 == 31 then jump L9
: L7
if v6 == 0 then v8 := 1
if v6 == 63 then v8 := -1
if v7 == 0 then v9 := 1
sprite v6 v7 1
if vF != 1 then jump L8
if v7 == 31 then jump L8
v0 := 5
v0 -= v7
if vF != 0 then jump L8
v0 := 1
buzzer := v0
v0 := v6
v1 := -4
v0 &= v1
i := D1
sprite v0 v7 1
v0 := -2
v9 ^= v0
Sub1
v5 += 1
Sub1
if v5 == 192 then jump L15
: L8
again
: L9
v9 := -1
v0 := v6
v0 -= vC
if vF != 1 then jump L10
v1 := 2
v0 -= v1
if vF != 1 then jump L12
v0 -= v1
if vF != 1 then jump L14
v0 -= v1
if vF != 1 then jump L13
: L10
v0 := 32
buzzer := v0
i := D2
vE += -1
v0 := vE
v0 += v0
v1 := 0
sprite v0 v1 1
if vE != 0 then jump L4
loop
again
: L12
v8 += -1
if v8 == -2 then v8 := -1
jump L14
: L13
v8 += 1
if v8 == 2 then v8 := 1
: L14
v0 := 4
buzzer := v0
v9 := -1
jump L7
: Sub1
i := D5
bcd v5
load v2
i := hex v1
v3 := 55
v4 := 0
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
return
: D1
0xf0 0x0
: D2
0x80 0x0
: D3
0xfc 0x0
: D4
0xaa 0x0
: D5
0x0 0x0 0x0 0x0
: L15
vE := 5
clear
jump L1
######################################################################
# INPUT: chip8/Chip-8 Games/Brix [Andreas Gustafsson, 1990].ch8
######################################################################
:proto L7 # 2AA
:proto L8 # 2AC
:proto L9 # 2CA
:proto L10 # 2DE
:proto L11 # 2E0
:proto L12 # 2E8
:proto L13 # 2EE
:proto Sub1 # 2F6
:proto D1 # 30C
:proto D2 # 30E
:proto D3 # 310
:proto D4 # 312
:proto D5 # 314
: main
vE := 5
v5 := 0
vB := 6
: L1
vA := 0
loop
i := D1
sprite vA vB 1
vA += 4
if vA != 64 then
again
vB += 2
if vB != 18 then jump L1
vC := 32
vD := 31
i := D3
sprite vC vD 1
Sub1
v0 := 0
v1 := 0
i := D4
sprite v0 v1 1
v0 += 8
i := D2
sprite v0 v1 1
: L3
v0 := 64
delay := v0
loop
v0 := delay
if v0 != 0 then
again
v6 := random 0b1111
v7 := 30
v8 := 1
v9 := -1
i := D2
sprite v6 v7 1
loop
i := D3
sprite vC vD 1
v0 := 4
if v0 key then vC += -2
v0 := 6
if v0 key then vC += 2
v0 := 63
vC &= v0
sprite vC vD 1
i := D2
sprite v6 v7 1
v6 += v8
v7 += v9
v0 := 63
v6 &= v0
v1 := 31
v7 &= v1
if v7 == 31 then jump L8
: L6
if v6 == 0 then v8 := 1
if v6 == 63 then v8 := -1
if v7 == 0 then v9 := 1
sprite v6 v7 1
if vF != 1 then jump L7
if v7 == 31 then jump L7
v0 := 5
v0 -= v7
if vF != 0 then jump L7
v0 := 1
buzzer := v0
v0 := v6
v1 := -4
v0 &= v1
i := D1
sprite v0 v7 1
v0 := -2
v9 ^= v0
Sub1
v5 += 1
Sub1
if v5 == 96 then jump L10
: L7
again
: L8
v9 := -1
v0 := v6
v0 -= vC
if vF != 1 then jump L9
v1 := 2
v0 -= v1
if vF != 1 then jump L11
v0 -= v1
if vF != 1 then jump L13
v0 -= v1
if vF != 1 then jump L12
: L9
v0 := 32
buzzer := v0
i := D2
vE += -1
v0 := vE
v0 += v0
v1 := 0
sprite v0 v1 1
if vE != 0 then jump L3
: L10
loop
again
: L11
v8 += -1
if v8 == -2 then v8 := -1
jump L13
: L12
v8 += 1
if v8 == 2 then v8 := 1
: L13
v0 := 4
buzzer := v0
v9 := -1
jump L6
: Sub1
i := D5
bcd v5
load v2
i := hex v1
v3 := 55
v4 := 0
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
return
: D1
0xe0 0x0
: D2
0x80 0x0
: D3
0xfc 0x0
: D4
0xaa 0x0
: D5
0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Cave.ch8
######################################################################
:proto D1 # 20A
:proto L1 # 20C
:proto L3 # 21A
:proto D2 # 21E
:proto L4 # 22C
:proto D3 # 23A
:proto L5 # 248
:proto D4 # 250
:proto L6 # 25E
:proto D5 # 266
:proto L7 # 274
:proto D7 # 281
:proto Sub1 # 29E
:proto L10 # 2A4
:proto L11 # 2A6
:proto L13 # 2AE
:proto Sub2 # 2D0
:proto D8 # 2FE
:proto L14 # 30A
:proto L15 # 318
:proto L17 # 35E
:proto L18 # 364
:proto L19 # 372
:proto Sub3 # 38A
:proto Sub4 # 3B8
:proto Sub5 # 3E0
:proto Sub6 # 418
:proto Sub7 # 478
:proto Sub8 # 4E6
:proto Sub9 # 510
:proto L21 # 53A
:proto D9 # 544
:proto L22 # 55C
: main
clear
v4 := 0
v5 := 0
i := D1
jump L1
: D1
0xcc 0x33
: L1
v6 := 30
loop
sprite v4 v5 2
sprite v4 v6 2
v4 += 8
if v4 == 64 then jump L3
again
: L3
i := D2
jump L4
: D2
0xff 0xff 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xff 0xff
: L4
v4 := 13
v5 := 9
sprite v4 v5 14
v4 += 10
i := D3
sprite v4 v5 14
jump L5
: D3
0xff 0xff 0xc3 0xc3 0xc3 0xc3 0xc3 0xff 0xff 0xc3 0xc3 0xc3 0xc3 0xc3
: L5
v4 += 10
i := D4
sprite v4 v5 14
jump L6
: D4
0xc3 0xc3 0xc3 0xc3 0xc3 0x66 0x66 0x66 0x66 0x66 0x3c 0x3c 0x18 0x18
: L6
v4 += 10
i := D5
sprite v4 v5 14
jump L7
: D5
0xff 0xff 0xc0 0xc0 0xc0 0xc0 0xff 0xff 0xc0 0xc0 0xc0 0xc0 0xff 0xff
: L7
vA := 1
vB := 4
vC := 14
vD := 0
i := D7
jump L11
: D6
0x80
: D7
0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
: L8
clear
v4 := 0
v5 := 0
loop
sprite v4 v5 8
v4 += 8
if v4 == 64 then Sub1
if v5 == 32 then jump L10
again
: Sub1
v4 := 0
v5 += 8
return
: L10
jump L13
: L11
v0 := 15
loop
if v0 -key then
again
jump L8
: L13
if vA == 1 then Sub2
if vA == 2 then Sub3
if vA == 3 then Sub4
if vA == 4 then Sub5
if vA == 5 then Sub6
if vA == 6 then Sub7
if vA == 7 then Sub8
if vA == 8 then Sub9
jump L15
: Sub2
i := D7
v4 := 2
v5 := 2
sprite v4 v5 8
v5 := 10
sprite v4 v5 8
v5 := 18
sprite v4 v5 8
v4 := 10
v5 := 5
sprite v4 v5 3
v4 := 18
sprite v4 v5 3
v4 := 26
sprite v4 v5 3
v4 := 34
sprite v4 v5 3
v4 := 42
sprite v4 v5 3
v4 := 50
sprite v4 v5 3
i := D8
jump L14
: D8
0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc
: L14
v5 += 3
v4 += 2
sprite v4 v5 12
v4 += 6
v5 += 9
sprite v4 v5 3
return
: L15
i := D6
sprite vB vC 1
if vF == 1 then jump L19
v0 := 2
if v0 key then vD := 2
v0 := 4
if v0 key then vD := 4
v0 := 6
if v0 key then vD := 6
v0 := 8
if v0 key then vD := 8
sprite vB vC 1
if vD == 2 then vC += -1
if vD == 4 then vB += -1
if vD == 6 then vB += 1
if vD == 8 then vC += 1
if vB == 64 then jump L17
if vB == -1 then jump L18
v0 := 2
delay := v0
loop
v0 := delay
if v0 != 0 then
again
jump L15
: L17
vA += 1
if vA == 9 then jump L21
: L18
vB := 1
i := D7
jump L8
0x7a 0xff 0x6b 0x3e 0xa2 0x81 0x12 0x8a
: L19
v0 := 3
buzzer := v0
v0 := 15
loop
if v0 -key then
again
vA := 1
vB := 4
vC := 14
vD := 0
i := D7
clear
jump L8
: Sub3
v4 := 0
v5 := 17
i := D7
sprite v4 v5 3
v4 += 8
sprite v4 v5 3
v4 += 8
v5 += -1
sprite v4 v5 3
v4 += 8
v5 += -1
sprite v4 v5 3
v4 += 8
sprite v4 v5 3
v4 += 8
sprite v4 v5 3
v4 += 8
v5 += 1
sprite v4 v5 3
v4 += 8
v5 += 1
sprite v4 v5 3
return
: Sub4
v4 := 0
v5 := 17
i := D7
sprite v4 v5 3
v4 += 8
sprite v4 v5 3
v4 += 8
v5 += 2
sprite v4 v5 2
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
return
: Sub5
v4 := 0
v5 := 19
i := D7
sprite v4 v5 1
i := D6
v4 += 8
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
i := D7
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 2
v4 += 8
v5 += -1
sprite v4 v5 3
v4 += 8
sprite v4 v5 4
v4 += 8
v5 += -1
sprite v4 v5 6
v4 += 8
v5 += -1
sprite v4 v5 8
return
: Sub6
v4 := 0
v5 := 18
i := D7
sprite v4 v5 8
v4 += 8
sprite v4 v5 8
v4 += 8
sprite v4 v5 8
v4 += 8
sprite v4 v5 8
v4 += 8
sprite v4 v5 8
v4 += 8
sprite v4 v5 8
v4 += 8
sprite v4 v5 8
i := D6
v5 += -1
v4 += 32
sprite v4 v5 1
v5 += -1
sprite v4 v5 1
v5 += -1
sprite v4 v5 1
v5 += -1
sprite v4 v5 1
v5 += -1
sprite v4 v5 1
v5 += -1
sprite v4 v5 1
v5 += -1
sprite v4 v5 1
v5 += -1
sprite v4 v5 1
v5 += -1
i := D7
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
return
: Sub7
v4 := 0
v5 := 9
i := D7
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
i := D6
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
sprite v4 v5 1
v5 += 1
i := D7
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
return
: Sub8
v4 := 0
v5 := 26
i := D7
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v5 += -1
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
return
: Sub9
v4 := 0
v5 := 25
i := D7
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v5 += -1
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
v4 += 8
sprite v4 v5 1
return
: L21
clear
v7 := 3
v8 := 3
i := D9
jump L22
: D9
0xae 0xaa 0xea 0x4a 0x4e 0x0
: D10
0xa4 0xa4 0xa4 0xa5 0xe2 0x0
: D11
0x5d 0x55 0x55 0x55 0x9d 0x0
: D12
0xc8 0x48 0x48 0x40 0x48 0x0
: L22
sprite v7 v8 5
i := D10
v7 += 8
sprite v7 v8 5
v7 += 8
i := D11
sprite v7 v8 5
v7 += 8
i := D12
sprite v7 v8 5
loop
again
######################################################################
# INPUT: chip8/Chip-8 Games/Coin Flipping [Carmelo Cortez, 1978].ch8
######################################################################
:proto Sub1 # 242
:proto D1 # 262
:proto D2 # 267
:proto D3 # 2F0
: main
vE := 0
vD := 0
vC := 50
: L1
i := D1
v6 := 5
v7 := 0
sprite v6 v7 5
i := D2
v6 := 54
sprite v6 v7 5
i := D3
bcd vE
v3 := 0
Sub1
i := D3
bcd vD
v3 := 50
Sub1
vB := random 0b1
if vB == 0 then vE += 1
if vB == 1 then vD += 1
if vC == 0 then loop
again
vA := 16
delay := vA
loop
vA := delay
if vA != 0 then
again
vC += -1
clear
jump L1
: Sub1
v5 := 9
load v2
i := hex v0
sprite v3 v5 5
v3 += 5
i := hex v1
sprite v3 v5 5
v3 += 5
i := hex v2
sprite v3 v5 5
if vB == 0 then v8 := 1
if vB == 1 then v8 := 2
buzzer := v8
return
: D1
0x88 0x88 0xf8 0x88 0x88
: D2
0xf8 0x20 0x20 0x20 0x20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D3
######################################################################
# INPUT: chip8/Chip-8 Games/Connect 4 [David Winter].ch8
######################################################################
:proto L1 # 21A
:proto L4 # 26A
:proto L5 # 27A
:proto L6 # 27E
:proto L7 # 298
:proto D1 # 29E
:proto D2 # 29F
:proto D3 # 2A1
:proto D4 # 2A5
:proto D5 # 2B4
:proto D6 # 2BB
: main
jump L1
0x43 0x4f 0x4e 0x4e 0x45 0x43 0x54 0x34 0x20 0x62 0x79 0x20 0x44 0x61 0x76 0x69 0x64 0x20 0x57 0x49 0x4e 0x54 0x45 0x52
: L1
i := D6
load v6
i := D5
save v6
v9 := 0
v8 := 1
vB := 0
vD := 15
vE := 31
i := D4
v0 := 13
v1 := 50
v2 := 0
loop
sprite v0 v2 15
sprite v1 v2 15
v2 += 15
if v2 != 30 then
again
sprite v0 v2 1
sprite v1 v2 1
v2 += 1
v0 := 10
i := D2
sprite v0 v2 1
sprite v1 v2 1
i := D2
sprite vD vE 1
: L3
loop
vC := key
sprite vD vE 1
if vC == 5 then jump L6
if vC != 4 then jump L4
vB += -1
vD += -5
if vD != 10 then jump L5
vB := 6
vD := 45
jump L5
: L4
if vC != 6 then jump L7
vB += 1
vD += 5
if vD != 50 then jump L5
vB := 0
vD := 15
: L5
sprite vD vE 1
jump L3
: L6
i := D5
i += vB
load v0
if v0 == -4 then jump L7
vA := v0
v0 += -5
save v0
v9 ^= v8
i := D1
if v9 != 0 then i := D3
sprite vD vA 4
: L7
i := D2
sprite vD vE 1
again
: D1
0x60
: D2
0xf0 0xf0
: D3
0x60 0x90 0x90 0x60
: D4
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D5
0x1a 0x1a 0x1a 0x1a 0x1a 0x1a 0x1a
: D6
0x1a 0x1a 0x1a 0x1a 0x1a 0x1a 0x1a
######################################################################
# INPUT: chip8/Chip-8 Games/Craps [Camerlo Cortez, 1978].ch8
######################################################################
:proto Sub1 # 258
:proto Sub2 # 260
:proto Sub3 # 27C
:proto L5 # 28C
:proto L7 # 29C
:proto D1 # 2AC
:proto D2 # 2B1
:proto D3 # 2B6
:proto D4 # 2BB
:proto D5 # 2F0
: main
v1 := 8
Sub1
v1 := 18
Sub1
vE := key
v1 := 9
Sub2
v7 := v0
v1 := 19
Sub2
v8 := v0
v9 := v8
v9 += v7
if v9 == 2 then jump L7
if v9 == 3 then jump L7
if v9 == 12 then jump L7
if v9 == 7 then jump L5
if v9 == 11 then jump L5
vA := v9
: L1
v0 := 64
delay := v0
loop
v0 := delay
if v0 != 0 then
again
Sub3
vE := key
v1 := 9
Sub2
v7 := v0
v1 := 19
Sub2
v8 := v0
v9 := v8
v9 += v7
if v9 == vA then jump L5
if v9 == 7 then jump L7
jump L1
: Sub1
i := D5
v2 := 8
sprite v1 v2 7
return
: Sub2
v6 := 1
v2 := 9
: L3
v0 := 1
loop
i := hex v0
sprite v1 v2 5
buzzer := v6
v3 := random 0b111
if v3 == 0 then return
v0 += 1
sprite v1 v2 5
if v0 != 7 then
again
jump L3
: Sub3
v2 := 9
v1 := 9
i := hex v7
sprite v1 v2 5
v1 := 19
i := hex v8
sprite v1 v2 5
return
: L5
i := D1
v0 := 0
v1 := 21
sprite v0 v1 5
i := D2
v0 := 8
sprite v0 v1 5
loop
again
: L7
i := D3
v0 := 0
v1 := 16
sprite v0 v1 5
i := D4
v0 := 8
sprite v0 v1 5
loop
again
: D1
0x8b 0x89 0x89 0xa9 0xdb
: D2
0xb2 0x32 0x2a 0x26 0xa6
: D3
0x8e 0x8a 0x8a 0x8a 0xee
: D4
0xee 0x88 0xec 0x28 0xee 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D5
######################################################################
# INPUT: chip8/Chip-8 Games/Deflection [John Fort].ch8
######################################################################
:proto L4 # 228
:proto L6 # 24E
:proto L8 # 282
:proto L11 # 29C
:proto L12 # 2C0
:proto L13 # 2C8
:proto L16 # 302
:proto L17 # 310
:proto L19 # 33E
:proto L20 # 34A
:proto L21 # 358
:proto L22 # 35E
:proto L23 # 362
:proto L24 # 364
:proto Sub1 # 400
:proto Sub2 # 42C
:proto Sub3 # 43E
:proto Sub4 # 448
:proto Sub5 # 47A
:proto Sub6 # 4A4
:proto L30 # 4B6
:proto Sub7 # 4C0
:proto L33 # 4EA
:proto Sub8 # 4F4
:proto D1 # 500
:proto D2 # 50C
:proto D3 # 518
:proto D4 # 524
:proto D5 # 530
:proto D6 # 537
:proto D7 # 53C
:proto D8 # 540
:proto D9 # 544
:proto D10 # 548
:proto D11 # 549
:proto D12 # 54C
:proto D13 # 54E
:proto D14 # 550
: main
vA := 0
vB := 0
v8 := 10
vC := 1
vD := 1
: L1
vE := 10
: L2
v7 := 80
v9 := 0
Sub1
v4 := 144
Sub3
clear
v0 := random 0b110111
v1 := random 0b10111
i := D12
save v1
i := D5
sprite v0 v1 7
jump L4
: L3
sprite v0 v1 1
: L4
v0 := random 0b111111
v1 := random 0b11111
i := D13
save v1
i := D10
sprite v0 v1 1
if vF != 0 then jump L3
i := D12
load v1
v0 += 1
v1 += 1
v4 := vC
if vE != 10 then v4 := vD
i := hex v4
sprite v0 v1 5
jump L6
: L5
sprite v0 v1 5
: L6
v0 := random 0b111000
v1 := random 0b11000
i := hex vE
sprite v0 v1 5
if vF != 0 then jump L5
v4 := 160
Sub3
sprite v0 v1 5
: L7
loop
v2 := key
if v2 == 0 then jump L13
if v9 == 50 then jump L7
i := D6
if v2 == 1 then jump L8
i := D7
if v2 == 2 then jump L8
i := D8
if v2 == 3 then jump L8
i := D9
if v2 != 4 then
again
: L8
v0 := 30
v1 := 14
: L9
sprite v0 v1 5
v4 := 5
Sub3
sprite v0 v1 5
v3 := 9
loop
if v3 key then jump L11
v3 += -1
if v3 != 0 then
again
jump L9
: L11
if v3 == 5 then jump L12
Sub4
if v0 == -1 then v0 := 0
if v1 == -1 then v1 := 0
v4 := 60
if v2 == 2 then v4 := 64
if v0 == v4 then v0 += -1
v4 := 28
if v2 == 1 then v4 := 32
if v1 == v4 then v1 += -1
jump L9
: L12
v3 := key
Sub5
v9 += 5
jump L7
: L13
v7 := 0
: L14
loop
v3 := key
if v3 == 0 then jump L14
if v3 == 5 then jump L14
v4 := 9
v4 -= v3
if vF != 1 then
again
i := D13
load v1
i := D10
: L15
loop
sprite v0 v1 1
Sub4
if v0 == -1 then jump L21
if v1 == -1 then jump L21
if v0 == 64 then jump L21
if v1 == 32 then jump L21
sprite v0 v1 1
if vF == 1 then jump L16
v4 := 5
Sub3
jump L15
: L16
sprite v0 v1 1
Sub6
if v2 == 0 then jump L17
Sub7
sprite v0 v1 1
again
: L17
if v7 == 0 then jump L21
i := D12
load v1
i := D5
v3 := 5
loop
v4 := 21
sprite v0 v1 7
buzzer := v4
sprite v0 v1 7
Sub3
v3 += -1
if v3 != 0 then
again
if vE != 10 then jump L19
v0 := vC
Sub8
vA += v1
if vF == 1 then jump L22
vC += 1
jump L20
: L19
v0 := vD
Sub8
vB += v1
if vF == 1 then jump L23
vD += 1
: L20
v8 += -1
if v8 == 0 then jump L24
if vE != 10 then jump L1
vE := 11
jump L2
: L21
v4 := 48
buzzer := v4
jump L20
: L22
vA := -1
jump L24
: L23
vB := -1
: L24
Sub1
i := D5
if vA == vB then loop
again
v0 := 13
v1 := 7
vB -= vA
if vF != 0 then v0 := 45
loop
v4 := 64
sprite v0 v1 7
Sub3
sprite v0 v1 7
v4 := 64
buzzer := v4
again
0x76 0xac 0x77 0x95 0xcc 0xdc 0xa0 0x81 0x10 0xc0 0x55 0x44 0xe4 0x2c 0x1 0xcc 0x9c 0xd3 0x4b 0xc8 0xee 0x6d 0xc 0x40 0xb8 0xdc 0x8a 0x5c 0xb4 0x21 0x34 0x63 0x33 0xb3 0x33 0x33 0x63 0xb8 0x73 0xb3 0xbb 0x36 0x31 0x35 0x32 0x33 0x32 0x7f 0x73 0x31 0x93 0x37 0x32 0x93 0xf3 0x32 0x3 0xb2 0x13 0x34 0x9b 0xff 0xf2 0xf7 0xbf 0x3f 0xbb 0xb2 0xb6 0xac 0x7f 0xfb 0xb3 0xbb 0xbf 0xdd 0xf3 0xff 0xb1 0x11 0x98 0xb5 0x7f 0x3f 0xbe 0xaf 0xbb 0xb9 0x83 0xad 0xea 0xfb 0xcc 0xce 0xcc 0xc8 0xec 0xec 0xda 0xcc 0xdc 0xfc 0xcd 0xca 0xcc 0x8c 0xc8 0xe8 0xce 0xec 0xa8 0xcd 0xca 0xcc 0xcc 0xc4 0xcc 0x6c 0xcc 0xcc 0x8d 0xec 0xd9 0xcd
: Sub1
clear
v5 := 8
v6 := 16
i := D11
bcd vA
load v2
Sub2
v5 := 40
i := D11
bcd vB
load v2
Sub2
v5 := 14
v6 := 8
v0 := 10
i := hex v0
sprite v5 v6 5
v5 := 46
v0 := 11
i := hex v0
sprite v5 v6 5
return
: Sub2
i := hex v0
sprite v5 v6 5
v5 += 6
i := hex v1
sprite v5 v6 5
v5 += 6
i := hex v2
sprite v5 v6 5
return
: Sub3
delay := v4
loop
v4 := delay
if v4 != 0 then
again
return
: Sub4
if v3 == 3 then v0 += 1
if v3 == 6 then v0 += 1
if v3 == 9 then v0 += 1
if v3 == 1 then v0 += -1
if v3 == 4 then v0 += -1
if v3 == 7 then v0 += -1
if v3 == 7 then v1 += 1
if v3 == 8 then v1 += 1
if v3 == 9 then v1 += 1
if v3 == 1 then v1 += -1
if v3 == 2 then v1 += -1
if v3 == 3 then v1 += -1
return
: Sub5
sprite v0 v1 5
i := D1
i += v7
if v2 == 1 then v3 := 6
if v2 == 2 then v3 := 8
if v2 == 3 then v3 := 9
if v2 == 4 then v3 := 7
if v2 == 4 then v0 += 4
v4 := 5
loop
save v2
Sub4
v4 += -1
if v4 != 0 then
again
v7 += 15
return
: Sub6
v5 := v0
v6 := v1
i := D14
v4 += 144
loop
load v2
if v0 != v5 then jump L30
if v1 == v6 then return
: L30
v4 += -1
if v4 != 0 then
again
v2 := 0
return
: Sub7
v5 := v0
v6 := v1
if v2 == 1 then i := D1
if v2 == 2 then i := D2
if v2 == 3 then i := D3
if v2 == 4 then i := D4
v2 := 6
loop
load v1
if v3 == v0 then jump L33
v2 += -1
if v2 != 0 then
again
: L32
v0 := v5
v1 := v6
i := D10
return
: L33
v3 := v1
v4 := 5
buzzer := v4
v7 += 1
jump L32
: Sub8
v1 := 0
loop
v1 += v0
v7 += -1
if v7 != 0 then
again
return
: D1
0x1 0x7 0x2 0x8 0x3 0x9 0x7 0x1 0x8 0x2 0x9 0x3
: D2
0x1 0x3 0x3 0x1 0x4 0x6 0x6 0x4 0x7 0x9 0x9 0x7
: D3
0x2 0x4 0x3 0x7 0x4 0x2 0x6 0x8 0x7 0x3 0x8 0x6
: D4
0x1 0x9 0x2 0x6 0x4 0x8 0x6 0x2 0x8 0x4 0x9 0x1
: D5
0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc
: D6
0xf8 0x0 0x0 0x0 0x0
: D7
0x80 0x80 0x80 0x80
: D8
0x80 0x40 0x20 0x10
: D9
0x8 0x10 0x20 0x40
: D10
0x80
: D11
0x0 0x0 0x0
: D12
0x11 0x13
: D13
0x14 0x9
: D14
0x18 0x7 0x3 0x19 0x8 0x3 0x1a 0x9 0x3 0x1b 0xa 0x3 0x1c 0xb 0x3 0x24 0x7 0x4 0x23 0x8 0x4 0x22 0x9 0x4 0x21 0xa 0x4 0x20 0xb 0x4 0x20 0x0 0x3 0x21 0x1 0x3 0x22 0x2 0x3 0x23 0x3 0x3 0x24 0x4 0x3 0x13 0x0 0x4 0x12 0x1 0x4 0x11 0x2 0x4 0x10 0x3 0x4 0xf 0x4 0x4 0xf 0xf 0x1 0x10 0xf 0x1 0x11 0xf 0x1 0x12 0xf 0x1 0x13 0xf 0x1 0xc 0x4 0x4 0xb 0x5 0x4 0xa 0x6 0x4 0x9 0x7 0x4 0x8 0x8 0x4 0x19 0x4 0x3 0x1a 0x5 0x3 0x1b 0x6 0x3 0x1c 0x7 0x3 0x1d 0x8 0x3 0x9 0x10 0x3 0xa 0x11 0x3 0xb 0x12 0x3 0xc 0x13 0x3 0xd 0x14 0x3 0x2c 0x10 0x3 0x2d 0x11 0x3 0x2e 0x12 0x3 0x2f 0x13 0x3 0x30 0x14 0x3 0x2b 0x17 0x3 0x2c 0x18 0x3 0x2d 0x19 0x3 0x2e 0x1a 0x3 0x2f 0x1b 0x3 0xe6 0xed 0xcd 0xce 0x39 0xd5 0xa9 0x50 0x4d 0x10 0x6c 0x6e 0x27 0xe8 0x2 0xb3 0xa1 0x8d 0xb5 0xd0 0xcf 0xbe 0xdc 0xe6 0xd1 0x4f
######################################################################
# INPUT: chip8/Chip-8 Games/Figures.ch8
######################################################################
:proto L6 # 27E
:proto L8 # 29C
:proto Sub1 # 29E
:proto Sub2 # 2A6
:proto Sub3 # 2AE
:proto Sub4 # 2C8
:proto Sub5 # 2D0
:proto D1 # 308
:proto D2 # 310
:proto D3 # 31A
:proto D4 # 31C
:proto D5 # 320
: main
clear
v0 := 0
v1 := 0
v2 := 21
i := D2
loop
sprite v0 v1 10
sprite v2 v1 10
v1 += 10
if v1 != 30 then
again
i := D3
v1 := 29
v0 := 1
sprite v0 v1 1
v0 += 8
sprite v0 v1 1
v0 += 8
i := D4
sprite v0 v1 1
vE := 0
vD := 120
Sub5
v0 := 20
vA := random 0b1111
vB := 9
vC := 0
Sub4
buzzer := v0
v0 := 20
delay := v0
loop
v0 := delay
if v0 != 0 then
again
: L3
v0 := 5
buzzer := v0
Sub5
vD += -1
Sub5
if vD == 0 then jump L8
: L4
i := D1
Sub4
vC += 1
v0 := 4
if v0 key then Sub1
v0 := 6
if v0 key then Sub2
v0 := 2
if v0 key then Sub3
Sub4
if vF == 1 then jump L6
v0 := 1
buzzer := v0
v0 := 2
delay := v0
loop
v0 := delay
if v0 != 0 then
again
jump L4
: L6
Sub5
vE += 1
Sub5
vA := random 0b1111
vB := 9
vC := 0
Sub4
if vF == 1 then jump L8
v0 := 10
delay := v0
loop
v0 := delay
if v0 != 0 then
again
jump L3
: L8
loop
again
: Sub1
if vB == 1 then return
vB += -2
return
: Sub2
if vB == 17 then return
vB += 2
return
: Sub3
if vE == 0 then return
Sub5
vE += -1
Sub5
v0 := random 0b1000
v0 += 19
v1 := 2
i := D5
sprite v1 v0 8
v1 += 8
sprite v1 v0 8
return
: Sub4
i := D1
i := hex vA
sprite vB vC 5
return
: Sub5
i := D1
v3 := 50
v4 := 0
bcd vD
load v2
i := hex v0
sprite v3 v4 5
v3 += 5
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
i := D1
v3 := 50
v4 := 6
bcd vE
load v2
i := hex v0
sprite v3 v4 5
v3 += 5
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
i := D1
return
: D1
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D2
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D3
0xff 0x0
: D4
0xf0 0x0 0x80 0x0
: D5
0xaa 0x55
######################################################################
# INPUT: chip8/Chip-8 Games/Filter.ch8
######################################################################
:proto Sub1 # 234
:proto Sub2 # 248
:proto L3 # 25C
:proto Sub3 # 25E
:proto Sub4 # 266
:proto Sub5 # 26E
:proto Sub6 # 278
:proto Sub7 # 280
:proto Sub8 # 28A
:proto Sub9 # 28E
:proto Sub10 # 29E
:proto D1 # 2BC
:proto D2 # 2BD
:proto D3 # 2BE
:proto D4 # 2C0
: main
clear
vE := 0
vD := 7
vB := 29
vC := 28
Sub9
Sub10
Sub6
Sub5
: L1
v0 := 1
delay := v0
loop
v0 := delay
if v0 != 0 then
again
Sub7
if v9 == 31 then Sub1
v0 := 4
if v0 key then Sub3
v0 += 2
if v0 key then Sub4
if v6 == 1 then Sub2
jump L1
: Sub1
Sub8
v0 := 2
buzzer := v0
Sub10
vD += -1
Sub10
if vD == 0 then jump L3
Sub5
return
: Sub2
v0 := 5
buzzer := v0
Sub10
vE += 1
Sub10
if vE == 99 then jump L3
Sub8
Sub5
return
: L3
loop
again
: Sub3
Sub6
vB += -3
Sub6
return
: Sub4
Sub6
vB += 3
Sub6
return
: Sub5
v9 := 7
v8 := random 0b111101
v8 += 2
sprite v8 v9 1
return
: Sub6
i := D1
sprite vB vC 1
i := D2
return
: Sub7
Sub8
v9 += 1
Sub8
v6 := vF
return
: Sub8
sprite v8 v9 1
return
: Sub9
v3 := 6
v4 := 0
i := D3
loop
sprite v4 v3 1
v4 += 8
if v4 == 64 then return
again
: Sub10
i := D4
v3 := 55
v4 := 0
bcd vE
load v2
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
v3 := 0
i := hex vD
sprite v3 v4 5
i := D2
return
: D1
0xfc
: D2
0x80
: D3
0xff 0x75
: D4
0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Guess [David Winter] (alt).ch8
######################################################################
:proto L3 # 220
:proto Sub1 # 23E
:proto Sub2 # 254
:proto D1 # 262
:proto D2 # 294
: main
vE := 1
: L1
clear
vD := 1
vA := 1
vB := 1
loop
vC := vD
vC &= vE
if vC == 0 then jump L3
v8 := vD
Sub1
if vA != 64 then jump L3
vA := 1
vB += 6
if vC != 63 then : L3
vD += 1
if vD != 63 then
again
v0 := key
if v0 == 5 then v9 += vE
vE += vE
if vE != 64 then jump L1
vA := 28
vB := 13
v8 := v9
clear
Sub1
loop
again
: Sub1
i := D2
bcd v8
load v2
Sub2
sprite vA vB 5
vA += 4
v1 := v2
Sub2
sprite vA vB 5
vA += 5
return
: Sub2
v3 := v1
v3 += v3
v3 += v3
v3 += v1
i := D1
i += v3
return
: D1
0xe0 0xa0 0xa0 0xa0 0xe0 0x40 0x40 0x40 0x40 0x40 0xe0 0x20 0xe0 0x80 0xe0 0xe0 0x20 0xe0 0x20 0xe0 0xa0 0xa0 0xe0 0x20 0x20 0xe0 0x80 0xe0 0x20 0xe0 0xe0 0x80 0xe0 0xa0 0xe0 0xe0 0x20 0x20 0x20 0x20 0xe0 0xa0 0xe0 0xa0 0xe0 0xe0 0xa0 0xe0 0x20 0xe0
: D2
######################################################################
# INPUT: chip8/Chip-8 Games/Guess [David Winter].ch8
######################################################################
:proto L3 # 222
:proto Sub1 # 240
:proto Sub2 # 256
:proto D1 # 264
:proto D2 # 296
: main
v9 := 0
vE := 1
: L1
clear
vD := 1
vA := 1
vB := 1
loop
vC := vD
vC &= vE
if vC == 0 then jump L3
v8 := vD
Sub1
if vA != 64 then jump L3
vA := 1
vB += 6
if vC != 63 then : L3
vD += 1
if vD != 63 then
again
v0 := key
if v0 == 5 then v9 += vE
vE += vE
if vE != 64 then jump L1
vA := 28
vB := 13
v8 := v9
clear
Sub1
loop
again
: Sub1
i := D2
bcd v8
load v2
Sub2
sprite vA vB 5
vA += 4
v1 := v2
Sub2
sprite vA vB 5
vA += 5
return
: Sub2
v3 := v1
v3 += v3
v3 += v3
v3 += v1
i := D1
i += v3
return
: D1
0xe0 0xa0 0xa0 0xa0 0xe0 0x40 0x40 0x40 0x40 0x40 0xe0 0x20 0xe0 0x80 0xe0 0xe0 0x20 0xe0 0x20 0xe0 0xa0 0xa0 0xe0 0x20 0x20 0xe0 0x80 0xe0 0x20 0xe0 0xe0 0x80 0xe0 0xa0 0xe0 0xe0 0x20 0x20 0x20 0x20 0xe0 0xa0 0xe0 0xa0 0xe0 0xe0 0xa0 0xe0 0x20 0xe0
: D2
######################################################################
# INPUT: chip8/Chip-8 Games/Hidden [David Winter, 1996].ch8
######################################################################
:proto L1 # 21D
:proto L8 # 301
:proto L10 # 32B
:proto Sub1 # 35D
:proto L11 # 371
:proto L12 # 37D
:proto L13 # 389
:proto L14 # 395
:proto Sub2 # 3B9
:proto Sub3 # 3CD
:proto Sub4 # 3DB
:proto Sub5 # 3DF
:proto L16 # 3E1
:proto Sub6 # 3F3
:proto Sub7 # 401
:proto Sub8 # 40B
:proto D1 # 41F
:proto D2 # 42F
:proto D3 # 43F
:proto D4 # 441
:proto D5 # 471
:proto D6 # 477
:proto D7 # 47E
:proto D8 # 4C9
:proto D9 # 4D5
:proto D10 # 4F1
:proto D11 # 4F6
:proto D12 # 4FB
:proto D13 # 50A
:proto D14 # 519
: main
jump L1
0x48 0x49 0x44 0x44 0x45 0x4e 0x21 0x20 0x31 0x2e 0x30 0x20 0x42 0x79 0x20 0x44 0x61 0x76 0x69 0x64 0x20 0x57 0x49 0x4e 0x54 0x45 0x52
: L1
i := D3
v0 := 0
v1 := 64
save v1
: L2
i := D3
v0 := 0
save v0
clear
i := D7
v0 := 12
v1 := 8
v2 := 15
loop
sprite v0 v1 15
v0 += 8
i += v2
if v0 != 52 then
again
v0 := key
clear
i := D8
v0 := 19
v1 := 13
v2 := 4
loop
sprite v0 v1 4
v0 += 8
i += v2
if v0 != 43 then
again
i := D1
load vF
i := D2
save vF
v3 := 64
v6 := 8
loop
v1 := random 0b1111
v2 := random 0b1111
i := D2
i += v1
load v0
v4 := v0
i := D2
i += v2
load v0
v5 := v0
v0 := v4
save v0
i := D2
i += v1
v0 := v5
save v0
v3 += -1
if v3 != 0 then
again
clear
v0 := 0
v1 := 0
i := D6
: L6
loop
sprite v0 v1 7
v0 += 8
if v0 != 32 then jump L6
v0 := 0
v1 += 8
if v1 != 32 then
again
vC := 0
vD := 0
vE := 0
: L7
loop
i := D3
load v0
v0 += 1
save v0
Sub2
vA := 16
Sub1
Sub3
vA := v9
v7 := vD
v8 := vE
Sub1
Sub3
Sub2
i := D2
i += v9
load v0
v1 := v0
i := D2
i += vA
load v0
if v0 != v1 then jump L10
Sub5
v0 := 32
Sub7
Sub5
v0 := 0
i := D2
i += v9
save v0
i := D2
i += vA
save v0
v6 += -1
if v6 != 0 then jump L7
i := D3
load v1
v2 := v0
v0 -= v1
if vF != 0 then jump L8
v0 := v2
v1 := v2
save v1
: L8
clear
i := D14
v0 := 16
v1 := 7
v2 := 14
loop
sprite v0 v1 15
v0 += 8
i += v2
if v0 != 48 then
again
i := D3
load v1
v4 := v1
v3 := v0
v6 := 9
Sub8
v6 := 15
v3 := v4
Sub8
v0 := key
jump L2
: L10
Sub4
v0 := 128
Sub7
Sub4
i := D2
i += vA
load v0
v0 += -1
Sub6
i := D4
i += v0
sprite v7 v8 7
i := D6
sprite v7 v8 7
i := D2
i += v9
load v0
v0 += -1
Sub6
i := D4
i += v0
sprite vD vE 7
i := D6
sprite vD vE 7
again
: Sub1
loop
i := D5
sprite vD vE 7
vB := key
sprite vD vE 7
if vB != 4 then jump L11
if vD == 0 then jump Sub1
vD += -8
vC += -1
: L11
if vB != 6 then jump L12
if vD == 24 then jump Sub1
vD += 8
vC += 1
: L12
if vB != 2 then jump L13
if vE == 0 then jump Sub1
vE += -8
vC += -4
: L13
if vB != 8 then jump L14
if vE == 24 then jump Sub1
vE += 8
vC += 4
: L14
if vB != 5 then jump Sub1
i := D2
i += vC
load v0
if v0 == 0 then jump Sub1
v9 := vC
if v9 == vA then
again
v0 += -1
i := D6
sprite vD vE 7
i := D4
Sub6
i += v0
sprite vD vE 7
return
: Sub2
i := D9
v0 := 36
v1 := 10
v2 := 11
loop
sprite v0 v1 11
v0 += 8
i += v2
if v0 != 60 then
again
return
: Sub3
v0 := 52
v1 := 16
i := D10
sprite v0 v1 5
i := D11
sprite v0 v1 5
return
: Sub4
i := D12
jump L16
: Sub5
i := D13
: L16
v0 := 36
v1 := 13
v2 := 5
loop
sprite v0 v1 5
v0 += 8
i += v2
if v0 != 60 then
again
return
: Sub6
v1 := v0
v1 += v1
v0 += v0
v0 += v0
v0 += v0
v0 -= v1
return
: Sub7
delay := v0
loop
v0 := delay
if v0 != 0 then
again
return
: Sub8
i := D2
bcd v3
load v2
v5 := 35
i := hex v1
sprite v5 v6 5
v5 := 40
i := hex v2
sprite v5 v6 5
return
: D1
0x1 0x2 0x3 0x4 0x8 0x7 0x6 0x5 0x5 0x6 0x7 0x8 0x4 0x3 0x2 0x1
: D2
0x1 0x2 0x3 0x4 0x8 0x7 0x6 0x5 0x5 0x6 0x7 0x8 0x4 0x3 0x2 0x1
: D3
0x0 0x0
: D4
0xfe 0xee 0xc6 0x82 0xc6 0xee 0xfe 0xfe 0xc6 0xc6 0xc6 0xfe 0xfe 0xc6 0xaa 0x82 0xaa 0xc6 0xfe 0xc6 0x82 0x82 0x82 0xc6 0xfe 0xba 0xd6 0xee 0xd6 0xba 0xfe 0xee 0xee 0x82 0xee 0xee 0xfe 0x82 0xfe 0x82 0xfe 0x82 0xfe 0xaa 0xaa 0xaa 0xaa 0xaa
: D5
0xfe 0xfe 0xfe 0xfe 0xfe 0xfe
: D6
0xfe 0xaa 0xd6 0xaa 0xd6 0xaa 0xfe
: D7
0x8b 0x88 0xf8 0x88 0x8b 0x0 0x0 0x0 0x0 0x0 0xf0 0x48 0x48 0x48 0xf2 0xef 0x84 0x84 0x84 0xef 0x0 0x8 0x8 0xa 0x0 0x8a 0x8a 0xaa 0xaa 0x52 0x3c 0x92 0x92 0x92 0x3c 0x0 0xe2 0xa3 0xe3 0x0 0x8b 0xc8 0xa8 0x98 0x88 0xfa 0x83 0xe2 0x82 0xfa 0x0 0x28 0xb8 0x90 0x0 0xef 0x88 0x8e 0x88 0x8f 0x21 0x21 0xa1 0x60 0x21 0x0 0x0 0x0 0x0 0x0 0xbc 0x22 0x3c 0x28 0xa4
: D8
0x89 0x8a 0xab 0x52 0x97 0x51 0xd1 0x51 0xc0 0x0 0x0 0x15
: D9
0x6a 0x8a 0x8e 0x8a 0x6a 0x0 0x64 0x8a 0x8e 0x8a 0x6a 0x44 0xaa 0xaa 0xaa 0x44 0x0 0xcc 0xaa 0xca 0xaa 0xac 0x6e 0x88 0x4c 0x28 0xce 0x0
: D10
0x4 0xc 0x4 0x4 0xe
: D11
0xc 0x12 0x4 0x8 0x1e
: D12
0x63 0x94 0x94 0x94 0x63 0x38 0xa5 0xb8 0xa0 0x21 0xe1 0x1 0xc1 0x20 0xc1
: D13
0x89 0x8a 0x52 0x22 0x21 0xcf 0x28 0x2f 0x28 0xc8 0x2 0x82 0x2 0x0 0x2
: D14
0xff 0x80 0x8f 0x90 0x8e 0x81 0x9e 0x80 0x91 0x91 0x9f 0x91 0x91 0x80 0xff 0x0 0x3c 0x40 0x40 0x40 0x3c 0x0 0x7c 0x10 0x10 0x10 0x7c 0x0 0xff 0x0 0x0 0x80 0x0 0x80 0x0 0x0 0x0 0x80 0x0 0x80 0x0 0x0 0xff 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0xff
######################################################################
# INPUT: chip8/Chip-8 Games/Hi-Lo [Jef Winsor, 1978].ch8
######################################################################
:proto L6 # 254
:proto L9 # 272
:proto L12 # 286
:proto L13 # 28E
:proto L14 # 292
:proto L15 # 29A
:proto D1 # 29F
:proto D2 # 2A4
:proto D3 # 2AA
: main
loop
vC := 9
vD := random 0b1111
vC -= vD
if vF == 0 then
again
v9 := vD
loop
vC := 9
vD := random 0b1111
vC -= vD
if vF == 0 then
again
vA := vD
vE := 0
: L2
i := D3
vE += 1
bcd vE
load v2
vB := 48
vC := 16
v8 := 15
: L3
i := hex v1
sprite vB vC 5
vB += 5
i := hex v2
sprite vB vC 5
if v8 == 0 then jump L6
loop
v6 := 10
v1 := key
v1 -= v6
if vF != 0 then
again
v1 += 10
loop
v6 := 10
v2 := key
v2 -= v6
if vF != 0 then
again
v2 += 10
vB := 16
v8 := 0
jump L3
: L6
v1 -= v9
if v1 != 0 then jump L9
v2 -= vA
if v2 != 0 then jump L12
: L7
vB := 32
v5 := 24
i := hex v9
sprite vB vC 5
vB += 5
i := hex vA
sprite vB vC 5
buzzer := vC
loop
again
: L9
v5 := -16
v1 &= v5
if v1 != 0 then jump L13
: L10
i := D1
: L11
vB := 16
vC := 24
sprite vB vC 5
v6 := key
jump L14
: L12
v5 := -16
v2 &= v5
if v2 == 0 then jump L10
: L13
i := D2
jump L11
: L14
if vE == 10 then jump L15
clear
jump L2
: L15
sprite vB vC 5
jump L7
0x1
: D1
0x97 0x92 0xf2 0x92 0x97
: D2
0x8f 0x89 0x89 0x89 0xef 0xd4
: D3
######################################################################
# INPUT: chip8/Chip-8 Games/Kaleidoscope [Joseph Weisbecker, 1978].ch8
######################################################################
:proto L2 # 21C
:proto Sub1 # 232
:proto D1 # 277
: main
v0 := 0
v3 := 128
v1 := 31
v2 := 15
loop
Sub1
i := main
i += v3
v0 := key
save v0
if v0 == 0 then jump L2
v3 += 1
if v3 != 0 then
again
: L2
v3 := 128
loop
i := main
i += v3
load v0
if v0 == 0 then jump L2
v3 += 1
if v3 == 0 then jump L2
Sub1
again
: Sub1
if v0 == 2 then v2 += -1
if v0 == 4 then v1 += -1
if v0 == 6 then v1 += 1
if v0 == 8 then v2 += 1
i := D1
vA := 224
vA &= v1
vB := 31
v1 &= vB
if vA != 0 then v2 += 1
vA := -16
vA &= v2
vB := 15
v2 &= vB
if vA != 0 then v1 += 1
vB := 31
v1 &= vB
sprite v1 v2 1
vA := v1
vB := 31
vB -= v2
sprite vA vB 1
vA := 63
vA -= v1
sprite vA vB 1
vB := v2
sprite vA vB 1
return
0x1
: D1
0x80 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Landing.ch8
######################################################################
:proto L2 # 212
:proto L4 # 250
:proto Sub1 # 290
:proto L8 # 29E
:proto Sub2 # 2BE
:proto Sub3 # 2D6
:proto L10 # 2EA
:proto L11 # 2FA
:proto D1 # 2FE
:proto D2 # 300
:proto D3 # 30A
:proto D4 # 30C
:proto D5 # 30E
: main
clear
i := D3
v0 := 0
v1 := 31
loop
sprite v0 v1 1
v0 += 8
if v0 == 64 then jump L2
again
: L2
i := D2
v4 := 9
loop
v4 += 1
if v4 == 54 then jump L4
v5 := random 0b1011
v6 := v5
v6 += 15
if v6 == 24 then sprite v4 v6 1
if v6 == 23 then sprite v4 v6 2
if v6 == 22 then sprite v4 v6 3
if v6 == 21 then sprite v4 v6 4
if v6 == 20 then sprite v4 v6 5
if v6 == 19 then sprite v4 v6 6
if v6 == 18 then sprite v4 v6 7
if v6 == 17 then sprite v4 v6 8
if v6 == 16 then sprite v4 v6 9
if v6 == 15 then sprite v4 v6 10
v6 := 25
sprite v4 v6 6
again
: L4
vA := 0
vB := 0
v9 := 2
i := D1
sprite vA vB 1
v0 := 20
buzzer := v0
v0 := 20
delay := v0
loop
v0 := delay
if v0 != 0 then
again
: L6
v0 := 1
buzzer := v0
sprite vA vB 1
vA += 1
if vA == 62 then Sub1
sprite vA vB 1
if vF == 1 then jump L8
v0 := 8
if v0 key then Sub2
if v8 == 1 then Sub3
v0 := 2
delay := v0
loop
v0 := delay
if v0 != 0 then
again
jump L6
: Sub1
v9 += -1
if v9 != 0 then jump L11
vA := 0
vB += 1
v9 := 2
return
: L8
v0 := 10
buzzer := v0
i := D5
bcd v5
load v2
v3 := 25
v4 := 0
i := hex v0
sprite v3 v4 5
v3 += 5
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
loop
again
: Sub2
if v8 == 1 then return
v8 := 1
v0 := 3
buzzer := v0
vD := vA
vE := vB
vD += 1
vE += 1
i := D4
sprite vD vE 1
return
: Sub3
i := D4
sprite vD vE 1
vE += 1
sprite vD vE 1
if vF == 1 then jump L10
v0 := 1
buzzer := v0
i := D1
return
: L10
v5 += 1
v0 := 5
buzzer := v0
v8 := 0
if vE == 31 then sprite vD vE 1
i := D1
return
: L11
vA := 0
return
: D1
0xe0 0x0
: D2
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D3
0xff 0x0
: D4
0x80 0x0
: D5
0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Lunar Lander (Udo Pernisz, 1979).ch8
######################################################################
:proto L1 # 202
:proto Sub2 # 258
:proto L7 # 2E6
:proto L9 # 308
:proto L10 # 30A
:proto D4 # 346
:proto D5 # 355
:proto Sub8 # 36E
:proto Sub10 # 394
:proto Sub11 # 3D2
:proto L15 # 3D6
:proto L16 # 3E6
:proto Sub12 # 3EA
:proto D7 # 414
:proto D8 # 438
:proto D9 # 456
:proto D14 # 4DB
:proto D15 # 4DE
:proto D16 # 4E1
:proto D17 # 4E2
:proto D18 # 4F1
:proto D19 # 500
:proto D20 # 51E
:proto D21 # 525
:proto Sub13 # 52E
:proto Sub14 # 542
:proto Sub16 # 568
:proto Sub17 # 56C
:proto D22 # 570
:proto D23 # 573
:proto D24 # 576
:proto Sub18 # 57C
:proto L20 # 59A
:proto D25 # 59E
:proto L21 # 5B6
:proto Sub21 # 5BE
:proto L23 # 612
:proto L25 # 63A
:proto L27 # 65E
:proto L28 # 680
:proto L29 # 68C
:proto Sub22 # 6A8
:proto L31 # 6D4
:proto Sub23 # 6DC
:proto L36 # 738
:proto Sub25 # 73A
:proto L37 # 740
:proto Sub26 # 748
:proto L38 # 756
:proto L39 # 762
:proto D38 # 76A
:proto D39 # 76C
:proto L40 # 772
:proto L41 # 798
:proto L44 # 7B0
:proto L47 # 7CE
:proto L48 # 7D8
:proto L50 # 7EA
:proto L51 # 7F4
:proto L52 # 7FC
:proto L54 # 816
:proto L55 # 832
:proto L56 # 836
:proto L57 # 842
:proto L58 # 854
:proto L60 # 892
:proto L61 # 8A0
:proto L62 # 8AA
:proto L63 # 8B2
: main
jump L1
: L1
v3 := 48
delay := v3
i := D7
v1 := 5
v2 := 0
Sub17
i := D8
v1 := 8
v2 := 18
Sub16
i := D9
v1 := 0
v2 := 26
Sub14
Sub14
jump L41
0x0 0x0 0x0 0x0
: L2
i := D16
v1 := 0
v2 := 0
loop
sprite v1 v2 1
v2 += 1
if v2 != 31 then
again
v1 := 46
v2 := 0
loop
sprite v1 v2 1
v2 += 1
if v2 != 31 then
again
jump L21
0xa4 0xd1 0x61 0x0 0x62 0x0 0xd1 0x25
: Sub1
i := D22
bcd vA
load v2
v3 := 49
v4 := 6
Sub2
return
: Sub2
i := hex v0
sprite v3 v4 5
v3 += 5
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
return
0x0 0x0 0xa4 0xd6 0x61 0x18 0x62 0x0 0xd1 0x25
: Sub3
i := D23
bcd vB
load v2
v3 := 49
v4 := 19
Sub2
return
0x0 0x0 0xa4 0xcc 0x61 0x30 0x62 0x0 0xd1 0x25
: Sub4
i := D24
bcd vC
load v2
v3 := 49
v4 := 26
Sub2
return
0x0 0x0 0x6a 0xfa 0x6b 0xfa
: Sub5
i := D22
load v2
v3 := 49
v4 := 6
Sub2
return
: Sub6
i := D23
load v2
v3 := 49
v4 := 19
Sub2
return
: Sub7
i := D24
load v2
v3 := 49
v4 := 26
Sub2
return
0x0 0x0 0x0 0x0
: L5
v6 := 2
v7 := random 0b1111
0x68 : D1 0x0 # SMC: v8 := 0
v7 += 11
: L6
vE := 2
v3 := 2
if v3 key then Sub11
v3 := 4
if v3 key then Sub18
v3 := 6
if v3 key then Sub8
jump L7
: L7
vC += 1
vE := vC
loop
vB += -1
if vB == 0 then jump L27
if vB == 26 then Sub10
vE += -1
v8 += 1
Sub12
if vE != 0 then
again
v0 := random 0b1
if v0 != 0 then jump L9
v7 += 1
jump L10
: L9
v7 += -1
: L10
Sub5
Sub1
Sub6
Sub3
Sub12
Sub7
Sub4
jump L6
0x0 0x0
: L11
v3 := 2
if v3 key then jump Sub11
return
0x63 0x0
: L12
0x6a : D2 0x96 # SMC: vA := 150
0x6b : D3 0xfa # SMC: vB := -6
vC := 4
i := D4
v1 := 48
v2 := 0
Sub13
i := D5
v1 := 48
v2 := 13
Sub13
Sub1
Sub3
Sub4
jump L5
0x0 0x0
: D4
0xea 0x8a 0xea 0x8a 0x8e 0xe8 0x88 0xe8 0x88 0xee 0x0 0x0 0x0 0x0 0x0
: D5
0xee 0x88 0xee 0x88 0x8e 0xee 0x84 0xe4 0x84 0xe4 0x0 0x0 0x0 0x0 0x0
: L13
vA += -1
if vA != 0 then jump L15
jump L58
0x0 0x0
: Sub8
loop
buzzer := v6
v7 += 1
vA += -1
if vA == 0 then jump L58
Sub12
v3 := 6
if v3 key then
again
return
0x77 0xff
: D6
0xc0 0xf8 0xfe 0xff 0xe0 0x80
: Sub9
i := D6
v1 := 1
v2 := 12
sprite v1 v2 6
return
: Sub10
Sub21
i := D17
v1 := 0
v2 := 1
sprite v1 v2 15
i := D18
v2 += 15
sprite v1 v2 15
i := D19
v1 := 38
v2 := 1
sprite v1 v2 15
v2 += 15
sprite v1 v2 15
i := D20
v1 := 13
v2 := 24
sprite v1 v2 7
i := D21
v1 := 31
v2 := 24
sprite v1 v2 7
i := D15
v1 := 0
v2 := 31
loop
sprite v1 v2 1
v1 += 8
if v1 != 48 then
again
return
0x0 0x0
: Sub11
buzzer := v6
jump L13
: L15
if vC != 0 then vC += -1
if vB == -6 then jump L16
if vB == 26 then jump L16
vB += 1
v8 += -1
: L16
if vE != 0 then vE += -1
: Sub12
i := D14
sprite v7 v8 5
vF := 0
i := D16
v9 := v8
v9 += 5
vD := v7
sprite vD v9 1
if vF == 1 then jump L31
sprite vD v9 1
vF := 0
vD += 7
sprite vD v9 1
if vF == 1 then jump L51
sprite vD v9 1
i := D14
sprite v7 v8 5
jump L11
0x0 0x0
: D7
0x8a 0x8a 0x8a 0x8a 0xee 0x8b 0xca 0xab 0x9a 0x8a 0xbc 0xb4 0xbc 0xa8 0xac 0x47 0x45 0x47 0x45 0x75 0x45 0x64 0x54 0x4c 0x45 0xee 0xa8 0xae 0xa8 0xee 0xf0 0xd0 0xf0 0xa0 0xb0 0x0
: D8
0x97 0xa4 0xc7 0xa4 0x97 0x51 0x54 0x71 0x25 0x21 0xc3 0x41 0xd9 0x1 0xc1 0xab 0x2b 0x3b 0x2a 0x2a 0xd5 0x55 0xd5 0x94 0xdd 0xdc 0x8 0xc8 0x48 0xc8
: D9
0x97 0xa4 0xc7 0xa4 0x97 0x51 0x55 0x71 0x24 0x20 0x43 0x42 0xeb 0x42 0x43 0x83 0x2 0xbb 0x80 0x83 0xbb 0x12 0x93 0x92 0x92 0xbd 0x95 0x9d 0x95 0xbd 0x45 0x44 0x44 0x44 0x75 0xee 0x28 0x4e 0x88 0xee
: D10
0xef 0x8d 0x8f 0x8a 0xeb 0x77 0x54 0x77 0x51 0x57 0x55 0x55 0x75 0x50 0x55 0x0
: D11
0xee 0x8a 0x8e 0x8a 0xea 0xee 0xa4 0xe4 0x84 0x84 0xea 0xab 0xea 0xaa 0xaa 0x20 0x20 0xa0 0x60 0x20
: D12
0xee 0xa8 0xee 0xa2 0xae 0xef 0x4d 0x4f 0x4a 0x4b 0x74 0x56 0x55 0x54 0x74 0x5d 0x55 0x5d 0xd5 0x55 0x5c 0x48 0x48 0x48 0xc8 0x6
: D13
0xee 0xa4 0xe4 0x84 0x8e 0x8e 0x8a 0x8a 0x8a 0xee 0xe0 0x40 0x40 0x40 0x40 0x0 0xee 0x88 0xee 0x82 0x8e 0xe8 0x88 0xe8 0x88 0x8e 0xee 0x84 0xe4 0x84 0x84
: D14
0x18 0x3c 0xa5
: D15
0xff 0xbd 0x0
: D16
0x80
: D17
0x40 0x40 0x40 0x40 0x40 0x40 0x60 0x60 0x60 0x60 0x60 0x60 0x60 0x70 0x70
: D18
0x60 0x60 0x60 0x60 0x60 0x60 0x70 0x70 0x60 0x40 0x40 0x0 0x0 0x0 0x0
: D19
0x3 0x1 0xf 0xf 0x1 0x1 0x1 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x7 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0x8f 0x8f 0x8f 0x8f
: D20
0x28 0xf8 0xfc 0x7c 0x78 0x7c 0x7c
: D21
0x10 0x30 0x30 0x78 0xf8 0xf0 0xf8 0x0 0x0
: Sub13
v3 := 0
v4 := 5
loop
sprite v1 v2 5
v3 += 1
i += v4
v1 += 8
if v3 != 3 then
again
return
0x0 0x0
: Sub14
v3 := 0
v4 := 5
loop
sprite v1 v2 5
v3 += 1
i += v4
v1 += 8
if v3 != 4 then
again
return
0x0 0x0
: Sub15
v3 := 0
v4 := 5
loop
sprite v1 v2 5
v3 += 1
i += v4
v1 += 8
if v3 != 5 then
again
return
: Sub16
Sub13
jump Sub13
: Sub17
Sub13
jump Sub14
: D22
0x1 0x4 0x9
: D23
0x0 0x4 0x7
: D24
0x0 0x2 0x1 0x0 0xb3 0xbf
: Sub18
loop
buzzer := v6
v7 += -1
vA += -1
if vA == 0 then jump L58
Sub12
v3 := 4
if v3 key then
again
return
0x58 0x48
: Sub19
i := D25
v1 := 38
v2 := 20
jump L20
: L20
sprite v1 v2 6
return
: D25
0x3 0xf 0xff 0x7f 0x7 0x1
: D26
0xff 0x0
: Sub20
i := D26
v1 := 9
v2 := 15
sprite v1 v2 1
0x61 : D27 0xb # SMC: v1 := 11
v2 := 16
sprite v1 v2 1
jump L40
: L21
Sub19
Sub9
Sub20
jump L12
: Sub21
Sub19
Sub9
Sub20
return
0x47 0x47
: D28
0x80
: D29
0xff 0xa8 0xab 0xa8 0xae 0x88 0xff
: D30
0xf0 0x80 0xa0 0x80 0xa0 0xa0 0xf0 0x0
: L22
Sub5
Sub1
Sub6
Sub3
Sub7
Sub4
i := D39
sprite v7 v8 6
if v7 == 1 then jump L25
if v7 == 2 then jump L25
if v7 == 3 then jump L25
if v7 == 4 then jump L25
if v7 == 5 then jump L25
if v7 == 6 then jump L25
if v7 == 36 then jump L23
if v7 == 37 then jump L23
if v7 == 38 then jump L23
vD := -1
jump L25
0x0 0x0
: L23
vE := 0
v7 += 2
i := D28
loop
sprite v7 v8 1
v8 += -1
vE += 1
if vE != 13 then
again
i := D29
v7 += -12
v8 += 1
sprite v7 v8 7
v7 += 8
i := D30
sprite v7 v8 7
jump L52
: D31
0xf8 0x88 0xa8 0x88 0xa8 0xa8 0xf8 0x0
: L25
vE := 0
v7 += 2
i := D28
loop
sprite v7 v8 1
v8 += -1
vE += 1
if vE != 13 then
again
i := D29
v7 += 1
v8 += 1
sprite v7 v8 7
v7 += 8
i := D31
sprite v7 v8 7
if vD != -1 then jump L52
jump L54
: L27
vF := 0
0x66 : D32 0x5 # SMC: v6 := 5
v6 -= vC
if vF != 1 then jump L28
jump L22
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D33
0xbd
: D34
0xff 0xa5 0x3c 0x18
: D35
0x38 0x10 0x78 0xd8 0xd8 0x78 0x10 0x38 0x0
: L28
i := D35
v7 += 2
v8 += -3
sprite v7 v8 8
Sub22
jump L29
: L29
i := D35
sprite v7 v8 8
i := D33
v7 += -2
v8 += 4
sprite v7 v8 5
loop
i := D10
v1 := 12
v2 := 0
Sub13
vD := 2
buzzer := vD
again
0x25 0xc4
: Sub22
Sub5
Sub1
Sub6
Sub3
Sub7
Sub4
return
0x41 0x4a 0xae 0x5d 0xbb 0xbd 0xbe 0xb0 0xb2 0xb4 0x4c 0x40 0x48 0x4d 0x47 0x41 0x43 0x42
: D36
0xb5 0x6a 0x29 0x2c 0xe3 0xc4 0xdf 0x2f 0x1f 0x2f
: D37
0x88 0x20
: L31
Sub26
: L32
vE := 2
Sub23
jump L37
: Sub23
i := D14
: L33
sprite v7 v8 6
: Sub24
i := D36
sprite v7 v8 6
v8 += -1
buzzer := vE
i := D10
v1 := 12
v2 := 0
Sub13
vD += 1
if vD != 10 then jump L33
vD := 0
return
: L34
i := D37
v7 += 2
v8 += 13
v5 := v7
v6 := v8
v0 := v7
v9 := v8
sprite v7 v8 1
sprite v7 v8 1
Sub25
loop
v8 += -1
v0 += 1
v5 += -1
v6 += -2
v9 += -2
sprite v7 v8 2
sprite v7 v8 2
sprite v0 v9 2
sprite v0 v9 2
sprite v5 v6 2
sprite v5 v6 2
vD += 1
Sub25
i := D10
v1 := 12
v2 := 0
Sub13
i := D37
if vD != 5 then
again
jump L36
: L36
jump L38
: Sub25
vE := 2
buzzer := vE
return
: L37
v8 += 10
Sub24
jump L34
0x17 0x42
: Sub26
vD := 0
buzzer := v8
Sub22
vA := v7
vB := v8
vB += 5
return
: L38
loop
i := D10
v1 := 12
v2 := 0
Sub13
i := D38
jump L39
: L39
sprite vA vB 2
vE := 2
buzzer := vE
again
: D38
0xc0 0xc0
: D39
0x18 0x3c 0xa5 0xff 0xbd 0x24
: L40
v1 := 31
v2 := 23
sprite v1 v2 1
return
: D40
0xee 0xaa 0xae 0xa8 0xe8 0xeb 0x4a 0x4a 0x4a 0x4b 0xa2 0xb2 0xaa 0xa6 0xa2 0x30 0x90 0x13 0x90 0x38 0x70 0x10 0x76 0x40 0x70 0xe0 0x20 0xe0 0x20 0xe0
: L41
jump L60
: L42
v1 := 9
v2 := 8
Sub16
loop
v0 := key
if v0 == 1 then jump L44
if v0 == 2 then jump L47
if v0 == 3 then jump L48
again
: L44
jump L61
: L45
v0 := 11
save v0
v0 := 150
: L46
i := D2
save v0
i := D3
v0 := -6
save v0
i := D1
v0 := 0
save v0
jump L50
0x17 0xec 0x0 0x0
: L47
i := D27
v0 := 14
save v0
i := D32
jump L62
: L48
jump L63
: L49
v0 := 100
save v0
i := D3
v0 := 32
save v0
i := D1
v0 := 26
save v0
: L50
loop
v3 := delay
if v3 != 0 then
again
clear
jump L2
: L51
Sub26
vA += 7
jump L32
0xbf 0xbb
: L52
vF := 0
v0 := 49
v0 -= vA
if vF != 0 then jump L55
: L53
if vC == 0 then jump L57
if vC == 1 then jump L57
if vC == 2 then jump L57
jump L56
0x0 0x0
: L54
vF := 0
v0 := 79
v0 -= vA
if vF != 0 then jump L55
jump L53
0x0 0x0
: Sub27
i := D12
v1 := 3
v2 := 0
Sub15
vE := 2
buzzer := vE
return
: L55
loop
Sub27
again
: L56
loop
Sub27
i := D13
v1 := 11
v2 := 6
Sub13
again
: L57
loop
Sub27
i := D11
v1 := 8
v2 := 6
Sub14
again
0x6a 0xa1 0xa4 0xdb 0xd7 0x85
: L58
i := D35
v7 += 2
v8 += -3
sprite v7 v8 8
Sub22
i := D35
sprite v7 v8 8
v7 += -2
v8 += 3
loop
i := D33
sprite v7 v8 5
sprite v7 v8 5
i := D4
v1 := 48
v2 := 0
Sub13
vE := 2
buzzer := vE
vB += -1
vC += 1
v8 += 1
if vB == 27 then Sub10
if vB != 0 then
again
Sub22
Sub26
vA += 3
vE := 2
Sub24
jump L37
: L60
i := D34
v1 := 27
v2 := 15
sprite v1 v2 1
i := D40
jump L42
0x0 0x0
: L61
i := D32
v0 := 5
save v0
i := D27
jump L45
: L62
v0 := 3
save v0
v0 := 200
jump L46
: L63
i := D32
v0 := 3
save v0
i := D2
jump L49
0x76 0xf6 0x32 0x7f 0x0 0x10 0x18 0x0 0xff 0x7e 0xc7 0xfd 0x80 0x50 0x35 0xc9 0xa4 0x2e 0x67 0x80 0x0 0x80 0x10 0x0 0x6f 0xff 0x7f 0x73 0x38 0x0 0xc9 0x17 0xb7 0x27 0xa3 0x3f 0x0 0x0 0x94 0xc8 0xff 0xef 0xff 0xed 0xc8 0x90 0xfe 0xfc 0xff 0x27 0x29 0x30 0x90 0x58 0x8c 0x12 0xff 0x7f 0x7f 0x77 0x91 0x80 0x1f 0xe9 0x62 0xd7 0x3b 0x2b
######################################################################
# INPUT: chip8/Chip-8 Games/Mastermind FourRow (Robert Lindley, 1978).ch8
######################################################################
:proto L6 # 24A
:proto L11 # 2C2
:proto D3 # 2FC
:proto Sub1 # 300
:proto Sub2 # 30E
:proto D4 # 3F4
:proto D5 # 3F8
:proto D6 # 3FC
: main
i := D3
vD := 0
: L1
vE := 0
loop
sprite vD vE 3
vE += 6
if vE != 24 then
again
vD += 6
if vD != 60 then jump L1
i := D4
Sub1
Sub1
Sub1
Sub1
vD := 0
vE := 0
vC := 0
: L3
i := D4
load v3
save v3
vB := 0
: L4
loop
v0 := key
if v0 != 15 then jump L6
loop
if vB == 0 then jump L4
vE += -6
i := D6
vB += -1
i += vB
load v0
i := hex v0
sprite vD vE 5
i := D3
sprite vD vE 3
again
: L6
vA := -7
vA += v0
if vF != 0 then jump L4
if v0 == 0 then jump L4
i := D3
sprite vD vE 3
i := D6
i += vB
save v0
i := hex v0
sprite vD vE 5
vE += 6
vB += 1
if vB != 4 then
again
v4 := 0
v8 := 0
vB := 0
loop
i := D6
i += vB
load v0
v2 := v0
i := D5
i += vB
load v0
v3 := v0
Sub2
i := D6
i += vB
v0 := v2
save v0
i := D5
i += vB
v0 := v3
save v0
vB += 1
if vB != 4 then
again
if v8 != 4 then jump L11
: L8
vE := 0
vD := 60
v9 := 0
loop
i := D4
i += v9
load v0
i := hex v0
sprite vD vE 5
vE += 6
v9 += 1
if v9 != 4 then
again
v0 := 32
delay := v0
loop
v0 := delay
if v0 != 0 then
again
jump L8
: L11
v4 := 1
vA := 0
: L12
vB := 0
i := D6
i += vA
load v0
v2 := v0
loop
i := D5
i += vB
load v0
v3 := v0
Sub2
i := D5
i += vB
v0 := v3
save v0
vB += 1
if vB != 4 then
again
vA += 1
if vA != 4 then jump L12
vD += 6
vE := 0
vC += 1
if vC != 10 then jump L3
jump L8
: D1
0x90
: D2
0xf0
: D3
0x0 0x0 0x60 0x0
: Sub1
loop
v0 := random 0b111
if v0 == 0 then jump Sub1
if v0 == 7 then
again
save v0
return
: Sub2
if v2 != v3 then return
i := D1
if v4 != 0 then i := D2
sprite vD vE 1
vE += 2
v8 += 1
v2 := 14
v3 := 15
return
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D4 0 0 0 0
: D5 0 0 0 0
: D6
######################################################################
# INPUT: chip8/Chip-8 Games/Merlin [David Winter].ch8
######################################################################
:proto L1 # 219
:proto L5 # 279
:proto L6 # 283
:proto L7 # 28D
:proto L8 # 297
:proto L9 # 2B5
:proto Sub1 # 2C1
:proto Sub2 # 2CB
:proto Sub3 # 2DF
:proto Sub4 # 2F9
:proto D1 # 30F
:proto D2 # 317
:proto D3 # 31D
:proto D4 # 331
:proto D5 # 345
:proto D6 # 359
: main
jump L1
0x20 0x4d 0x45 0x52 0x4c 0x49 0x4e 0x20 0x42 0x79 0x20 0x44 0x61 0x76 0x69 0x64 0x20 0x57 0x49 0x4e 0x54 0x45 0x52
: L1
Sub4
i := D3
v0 := 16
v1 := 0
Sub2
i := D4
v0 := 11
v1 := 27
Sub2
v4 := 4
: L2
Sub3
v5 := 0
v2 := 40
Sub1
loop
v2 := random 0b11
v0 := v2
i := D6
i += v5
save v0
v0 := 23
v1 := 8
v3 := 1
v3 &= v2
if v3 != 0 then v0 += 10
v3 := 2
v3 &= v2
if v3 != 0 then v1 += 10
i := D2
sprite v0 v1 6
v2 := 20
Sub1
sprite v0 v1 6
v2 := 5
Sub1
v5 += 1
if v4 != v5 then
again
v5 := 0
: L4
loop
v0 := 23
v1 := 8
i := D2
v3 := key
if v3 != 4 then jump L5
v3 := 0
jump L8
: L5
if v3 != 5 then jump L6
v0 += 10
v3 := 1
jump L8
: L6
if v3 != 7 then jump L7
v1 += 10
v3 := 2
jump L8
: L7
if v3 != 8 then jump L4
v0 += 10
v1 += 10
v3 := 3
: L8
sprite v0 v1 6
v2 := 20
Sub1
sprite v0 v1 6
i := D6
i += v5
load v0
v5 += 1
if v0 != v3 then jump L9
if v5 != v4 then
again
Sub3
v4 += 1
jump L2
: L9
Sub4
i := D5
v0 := 16
v1 := 14
Sub2
loop
again
: Sub1
delay := v2
loop
v2 := delay
if v2 != 0 then
again
return
: Sub2
v3 := v0
v2 := 5
loop
sprite v0 v1 5
i += v2
v0 += 8
v5 := v3
v5 += 32
if v0 != v5 then
again
return
: Sub3
i := D6
v3 := v4
v3 += -3
bcd v3
load v2
i := hex v1
v0 := 43
v3 := 27
sprite v0 v3 5
v0 += 5
i := hex v2
sprite v0 v3 5
return
: Sub4
i := D1
v0 := 23
v1 := 7
sprite v0 v1 8
v0 += 10
sprite v0 v1 8
v1 += 10
sprite v0 v1 8
v0 += -10
sprite v0 v1 8
return
: D1
0xff 0x81 0x81 0x81 0x81 0x81 0x81 0xff
: D2
0x7e 0x7e 0x7e 0x7e 0x7e 0x7e
: D3
0xdb 0xaa 0x8b 0xcb 0xcb 0xef 0x8 0x8f 0xd 0xec 0xa0 0xa0 0xb0 0x30 0xbe 0x5f 0x51 0x51 0xd9 0xd9
: D4
0x83 0x82 0x83 0x82 0xfb 0xe8 0x8 0x88 0x5 0xe2 0xbe 0xa0 0xb8 0x20 0x3e 0x80 0x80 0x80 0x80 0xf8
: D5
0xf7 0x85 0xb7 0x95 0xf5 0x76 0x54 0x56 0x54 0x56 0x3a 0x2a 0x2a 0x2a 0x39 0xb6 0xa5 0xb6 0xa5 0x35
: D6
######################################################################
# INPUT: chip8/Chip-8 Games/Missile [David Winter].ch8
######################################################################
:proto L1 # 219
:proto L4 # 249
:proto L5 # 24F
:proto L8 # 291
:proto L9 # 295
:proto L10 # 297
:proto D1 # 2AD
:proto D2 # 2B0
:proto D3 # 2B4
: main
jump L1
0x4d 0x49 0x53 0x53 0x49 0x4c 0x45 0x20 0x62 0x79 0x20 0x44 0x61 0x76 0x69 0x64 0x20 0x57 0x49 0x4e 0x54 0x45 0x52
: L1
vC := 12
v0 := 0
v1 := 0
v5 := 8
v6 := 10
v7 := 0
vE := 1
i := D1
loop
sprite v0 v1 4
v0 += 8
if v0 != 64 then
again
v0 := 0
v1 := 28
i := D2
sprite v0 v1 4
: L3
i := D2
sprite v0 v1 4
if vE != 1 then jump L4
v0 += 4
if v0 == 56 then vE := 0
jump L5
: L4
v0 += -4
if v0 == 0 then vE := 1
: L5
sprite v0 v1 4
delay := vC
loop
vB := delay
if vB != 0 then
again
v2 := 8
if v2 -key then jump L9
if vC != 0 then vC += -2
v3 := 27
v2 := v0
i := D2
sprite v2 v3 1
v4 := 0
loop
sprite v2 v3 1
v3 += -1
sprite v2 v3 1
if vF != 0 then v4 := 1
if v3 != 3 then
again
sprite v2 v3 1
if v4 != 1 then jump L8
v7 += 5
v5 += -1
v2 := v0
v3 := 0
i := D1
sprite v2 v3 4
if v5 == 0 then jump L10
: L8
v6 += -1
if v6 != 0 then : L9
jump L3
: L10
i := D3
bcd v7
load v2
v3 := 27
v4 := 13
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
loop
again
: D1
0x10 0x38 0x38
: D2
0x10 0x38 0x7c 0xfe
: D3
######################################################################
# INPUT: chip8/Chip-8 Games/Most Dangerous Game [Peter Maruhnic].ch8
######################################################################
:proto L5 # 26A
:proto L8 # 288
:proto L9 # 28C
:proto Sub1 # 2A6
:proto Sub2 # 2D6
:proto Sub3 # 2EC
:proto L13 # 308
:proto Sub4 # 310
:proto Sub5 # 31A
:proto Sub6 # 332
:proto L15 # 342
:proto L16 # 364
:proto Sub7 # 372
:proto L18 # 380
:proto L19 # 390
:proto L20 # 39C
:proto Sub8 # 3A0
:proto L22 # 3F6
:proto L23 # 404
:proto L24 # 412
:proto Sub9 # 41A
:proto Sub10 # 424
:proto Sub11 # 430
:proto L27 # 440
:proto L29 # 464
:proto D1 # 4A0
:proto Sub14 # 4AE
:proto L30 # 4E0
:proto L31 # 4F4
:proto L33 # 508
:proto L34 # 516
:proto L35 # 51E
:proto L37 # 52C
:proto L38 # 53A
:proto L39 # 542
:proto L40 # 556
:proto L41 # 564
:proto L42 # 572
:proto L44 # 596
:proto L45 # 5AA
:proto L46 # 5BE
:proto D2 # 5C8
:proto D3 # 5CD
:proto D4 # 5D2
:proto D5 # 5D7
:proto D6 # 5DC
:proto D7 # 5E3
:proto D8 # 5EA
:proto D9 # 5EC
:proto D10 # 5EF
:proto D11 # 5F0
:proto D12 # 5F1
:proto D13 # 671
:proto D14 # 678
:proto D15 # 67F
:proto D16 # 682
:proto D17 # 684
:proto D18 # 68E
: main
v0 := 1
i := D11
save v0
v0 := -1
v1 := 0
loop
save v0
v1 += 1
if v1 != 128 then
again
clear
v0 := 15
v1 := 6
v2 := 3
v3 := 0
v4 := 46
v5 := 30
v6 := 1
i := D13
save v6
i := D10
sprite v4 v5 1
v2 := 5
v4 := 18
v5 := 2
sprite v4 v5 1
i := D14
save v6
i := D10
v2 := 4
: L2
v1 := 20
loop
sprite v1 v2 1
v1 += 4
if v1 != 48 then
again
v2 += 4
if v2 != 32 then jump L2
vE := 1
loop
i := D13
Sub2
Sub4
Sub7
if vF != 0 then jump L5
Sub4
Sub5
Sub6
if vF != 0 then jump L8
Sub5
i := D16
Sub2
again
: L5
if vF != 1 then jump L9
: L6
clear
v0 := 5
loop
Sub1
Sub4
Sub10
Sub4
Sub1
Sub1
Sub4
v0 += -1
if v0 != 0 then
again
jump main
: L8
if vF != 1 then jump L6
: L9
clear
v0 := 5
loop
Sub1
Sub5
Sub10
Sub5
Sub1
Sub1
Sub5
v0 += -1
if v0 != 0 then
again
jump main
: Sub1
vA := 16
vB := 16
i := D2
sprite vA vB 5
vA += 8
i := D3
sprite vA vB 5
vA += 8
i := D4
sprite vA vB 5
vA += 8
i := D5
sprite vA vB 5
return
0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xd4
: Sub2
load v1
i := D16
save v1
v3 := v1
vA := 1
vB := 4
Sub3
v0 := v3
vA := 51
Sub3
return
: Sub3
i := D15
bcd v0
load v2
if v0 == 0 then jump L13
i := hex v0
sprite vA vB 5
vA += 5
: L11
i := hex v1
sprite vA vB 5
: L12
vA += 5
i := hex v2
sprite vA vB 5
return
: L13
if v1 == 0 then jump L12
vA += 2
jump L11
: Sub4
vA := 3
vB := 23
i := D6
sprite vA vB 7
return
: Sub5
vA := 55
vB := 23
i := D7
sprite vA vB 7
return
0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xd4
: Sub6
i := D13
load v6
loop
Sub8
if vF != 3 then jump L15
v2 += -1
if v2 != 0 then
again
: L15
i := D13
load v2
i := D13
save v6
if vF == 1 then return
if vF != 2 then if v1 == 0 then jump L16
v6 := 4
v3 := 1
Sub8
if vF == 0 then jump L16
v1 += -1
if vF == 1 then return
: L16
v0 += -1
vF := 0
if v0 == 0 then vF := -1
i := D13
save v1
return
: Sub7
i := D14
load v6
loop
if v4 == 46 then if v5 != 30 then jump L18
vF := 1
return
: L18
Sub8
if vF == 1 then jump L20
if vF != 3 then jump L19
v2 += -1
if v2 != 0 then
again
: L19
vF := 0
i := D14
load v2
i := D14
save v6
return
: L20
vF := -1
return
: Sub8
i := D17
save v9
i := D10
Sub11
vF := 0
if v0 == 0 then jump L22
if v3 == 1 then sprite v4 v5 1
vC := 0
vD := 0
if v0 == 2 then vC := -1
if v0 == 4 then vD := -1
if v0 == 6 then vD := 1
if v0 == 8 then vC := 1
vA := v4
vB := v5
loop
Sub9
Sub10
Sub9
Sub14
i := D10
if v0 == 0 then jump L23
Sub9
Sub10
Sub9
if vF == 1 then jump L24
v4 := vA
v5 := vB
v6 += -1
if v6 != 0 then
again
vD := 2
buzzer := vD
if v3 == 1 then sprite vA vB 1
vF := 3
: L22
i := D17
vA := v4
vB := v5
load v9
v4 := vA
v5 := vB
return
: L23
vD := 16
buzzer := vD
sprite vA vB 1
if v3 == 0 then sprite v4 v5 1
vF := 2
jump L22
: L24
vD := 32
buzzer := vD
vF := 1
jump L22
: Sub9
sprite vA vB 1
vA += vD
vB += vC
sprite vA vB 1
return
: Sub10
v8 := 8
delay := v8
loop
v8 := delay
if v8 != 0 then
again
return
: Sub11
v0 := 0
sprite v4 v5 1
loop
if v0 key then jump L27
v0 += 2
if v0 != 10 then
again
jump Sub11
: L27
vD := 8
buzzer := vD
if vF != 0 then sprite v4 v5 1
loop
if v0 key then
again
return
: Sub12
v4 <<= v1
v4 <<= v4
v5 <<= v2
v3 >>= v2
if vF != 1 then jump L29
v4 += 16
v5 += -1
i := D9
sprite v4 v5 3
return
: L29
v4 += 17
i := D8
sprite v4 v5 1
return
0x1 0x0 0x0 0xd4
: Sub13
i := D1
v1 <<= v0
v0 += v1
i += v0
load v2
i := D12
v0 += v8
i += v0
load v0
i += v1
v1 := v0
load v0
i += v2
v2 := v1
v2 -= v0
if vF != 0 then v1 := v0
load v0
v2 := v0
v2 -= v1
if vF != 0 then v0 := v1
return
0x1 0x0
: D1
0x7 0x0 0x7 0xf0 0x6 0x0 0xf9 0x7 0x7 0xf8 0x6 0x8 0x0 0xd4
: Sub14
v0 := 0
if vA != 16 then if vA == 48 then return
if vB != 0 then if vB == 32 then return
v1 >>= vA
v1 >>= v1
v1 += -4
v2 >>= vB
i := D18
save vF
v8 <<= v2
v8 <<= v8
v8 <<= v8
v8 += v1
i := D12
i += v8
load v0
if v0 == -1 then jump L30
if v0 == -2 then jump L46
jump L45
: L30
v3 := random 0b11111111
v6 := 112
v3 += v6
if vF == 1 then jump L31
v0 := -2
i := D12
i += v8
save v0
jump L46
: L31
v3 >>= v2
if vF != 1 then jump L35
if v2 != 1 then jump L33
vA := 0
: L32
v0 := 0
Sub13
vB := v0
jump L39
: L33
if v2 != 15 then jump L34
vB := 0
v0 := 1
Sub13
vA := v0
jump L39
: L34
v0 := 1
Sub13
vA := v0
jump L32
: L35
if v1 != 0 then jump L37
vA := 0
: L36
v0 := 2
Sub13
vB := v0
jump L39
: L37
if v1 != 7 then jump L38
vB := 0
v0 := 3
Sub13
vA := v0
jump L39
: L38
v0 := 3
Sub13
vA := v0
jump L36
: L39
if vA != vB then jump L41
if vA != -2 then if vA == -1 then jump L40
i := D12
i += v8
v0 := -2
save v0
jump L46
: L40
i := D11
load v0
v0 += 1
i := D11
save v0
vA := v0
jump L44
: L41
v3 := vA
v3 -= vB
if vF == 0 then jump L42
v3 := vA
vA := vB
vB := v3
: L42
if vA == -2 then jump L40
if vB != -2 then if vB == -1 then jump L44
v3 := -1
i := D12
: L43
loop
if v3 == 128 then jump L44
load v0
v3 += 1
if vB != v0 then jump L43
i := D12
i += v3
v0 := vA
save v0
again
: L44
i := D12
i += v8
v0 := vA
save v0
if vE == 0 then jump L45
i := D18
load v2
Sub12
jump L45
: L45
i := D18
load vF
Sub12
vD := 30
buzzer := vD
Sub12
i := D18
load v5
v0 := 0
return
: L46
i := D18
load vF
v0 := 1
return
0x1 0x0
: D2
0x8a 0x8a 0xaa 0xda 0x8a
: D3
0x8a 0xcb 0xaa 0x9a 0x8a
: D4
0x2f 0x28 0xae 0x68 0x2f
: D5
0x7b 0x4b 0x7b 0x50 0x4b
: D6
0x10 0x20 0x40 0xbf 0x40 0x20 0x10
: D7
0x8 0x4 0x2 0xfd 0x2 0x4 0x8
: D8
0xe0 0x0
: D9
0x80 0x80 0x80
: D10
0x80
: D11
0x0
: D12
0xd4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D13 0 0 0 0 0 0 0
: D14 0 0 0 0 0 0 0
: D15 0 0 0
: D16 0 0
: D17 0 0 0 0 0 0 0 0 0 0
: D18
######################################################################
# INPUT: chip8/Chip-8 Games/Nim [Carmelo Cortez, 1978].ch8
######################################################################
:proto L2 # 218
:proto L4 # 226
:proto L6 # 250
:proto L7 # 25A
:proto Sub1 # 262
:proto L8 # 282
:proto L10 # 292
:proto D1 # 2A2
:proto D2 # 2A7
:proto D3 # 2AC
:proto D4 # 2B1
:proto D5 # 350
: main
vE := 35
vD := 2
Sub1
vC := key
if vC == 15 then jump L2
: L1
vA := 1
vE -= vA
Sub1
vD -= vA
if vE == 0 then jump L8
: L2
v8 := 1
loop
if v8 key then jump L4
v8 += 1
if v8 != 4 then
again
jump L2
: L4
v5 := vE
v5 -= v8
if vF != 1 then jump L2
vE -= v8
Sub1
if vE == 0 then jump L10
v9 := 112
delay := v9
loop
v9 := delay
if v9 != 0 then
again
if v8 == vD then jump L6
v7 := v8
v6 := vD
v7 -= v6
if vF == 0 then jump L6
vD += 4
: L6
vD -= v8
if vD != 0 then jump L7
vD := 4
jump L1
: L7
vE -= vD
Sub1
vD := 4
jump L2
: Sub1
buzzer := vA
clear
i := D5
bcd vE
v3 := 16
vB := 0
load v2
i := hex v0
sprite v3 vB 5
v3 += 5
i := hex v1
sprite v3 vB 5
v3 += 5
i := hex v2
sprite v3 vB 5
return
: L8
i := D1
v0 := 0
v1 := 21
sprite v0 v1 5
i := D2
v0 := 8
sprite v0 v1 5
loop
again
: L10
i := D3
v0 := 0
v1 := 16
sprite v0 v1 5
i := D4
v0 := 8
sprite v0 v1 5
loop
again
: D1
0x8b 0x89 0x89 0xa9 0xdb
: D2
0xb2 0x32 0x2a 0x26 0xa6
: D3
0x8e 0x8a 0x8a 0x8a 0xee
: D4
0xee 0x88 0xec 0x28 0xee 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D5
######################################################################
# INPUT: chip8/Chip-8 Games/Paddles.ch8
######################################################################
:proto L3 # 266
:proto L4 # 280
:proto Sub1 # 29A
:proto Sub2 # 2B0
:proto Sub3 # 2B8
:proto Sub4 # 2C0
:proto Sub5 # 2DA
:proto Sub6 # 2E2
:proto Sub7 # 2EA
:proto Sub8 # 2F2
:proto L5 # 2FA
:proto L6 # 30A
:proto L7 # 31C
:proto L8 # 320
:proto L9 # 324
:proto L10 # 328
:proto L11 # 32C
:proto L12 # 336
:proto Sub9 # 340
:proto Sub10 # 346
:proto Sub11 # 34C
:proto Sub12 # 352
:proto Sub13 # 358
:proto L13 # 362
:proto L14 # 36C
:proto L15 # 370
:proto L16 # 374
:proto L17 # 37E
:proto L18 # 382
:proto Sub14 # 386
:proto Sub15 # 3A0
:proto Sub16 # 3AC
:proto Sub17 # 3B2
:proto Sub18 # 3C8
:proto Sub19 # 3D0
:proto Sub20 # 3D8
:proto Sub21 # 3E2
:proto Sub22 # 3FA
:proto Sub23 # 40A
:proto L20 # 41C
:proto D1 # 41E
:proto D2 # 426
:proto D3 # 427
:proto D4 # 428
:proto D5 # 42E
: main
clear
v8 := 0
v9 := 0
vA := 32
vB := 32
vC := 9
vD := 3
vE := 3
Sub14
Sub17
Sub15
Sub21
v7 := 0
loop
v0 := 15
if v0 key then v7 := 1
v0 := 14
if v0 key then v7 := 2
if v7 == 0 then
again
clear
Sub14
Sub17
Sub15
Sub21
Sub16
: L2
loop
Sub16
Sub15
if vE == 1 then Sub9
if vE == 2 then Sub10
if vE == 3 then Sub11
if vE == 4 then Sub12
Sub13
if v7 == 1 then Sub1
if v7 == 2 then Sub4
Sub15
Sub16
if vF == 1 then jump L5
if vD == 0 then jump L3
if vD == 31 then jump L4
jump L2
: L3
Sub16
Sub21
v9 += 1
Sub21
v0 := 15
buzzer := v0
if v9 == 9 then jump L20
vC := 9
vD := 2
vE := 2
Sub16
jump L2
: L4
Sub16
Sub21
v8 += 1
Sub21
v0 := 15
buzzer := v0
if v8 == 9 then jump L20
vC := 9
vD := 28
vE := 1
Sub16
jump L2
: Sub1
v0 := 4
if v0 key then Sub2
v0 := 6
if v0 key then Sub3
v3 := random 0b11
if v3 == 0 then return
vA := vC
return
: Sub2
if vB == 8 then return
vB += -2
return
: Sub3
if vB == 56 then return
vB += 2
return
: Sub4
v0 := 4
if v0 key then Sub5
v0 := 6
if v0 key then Sub6
v0 := 7
if v0 key then Sub7
v0 := 9
if v0 key then Sub8
return
: Sub5
if vA == 8 then return
vA += -2
return
: Sub6
if vA == 56 then return
vA += 2
return
: Sub7
if vB == 8 then return
vB += -2
return
: Sub8
if vB == 56 then return
vB += 2
return
: L5
v0 := 5
buzzer := v0
if vD == 1 then jump L11
if vD == 30 then jump L12
if vD == 16 then jump L6
: L6
if vE == 1 then jump L7
if vE == 2 then jump L8
if vE == 3 then jump L9
if vE == 4 then jump L10
jump L2
: L7
vE := 2
jump L2
: L8
vE := 1
jump L2
: L9
vE := 4
jump L2
: L10
vE := 3
jump L2
: L11
v0 := random 0b1
vE := 2
if v0 == 1 then vE := 3
jump L2
: L12
v0 := random 0b1
vE := 1
if v0 == 1 then vE := 4
again
: Sub9
vC += 1
vD += -1
return
: Sub10
vC += 1
vD += 1
return
: Sub11
vC += -1
vD += 1
return
: Sub12
vC += -1
vD += -1
return
: Sub13
if vC == 63 then jump L13
if vC == 8 then jump L16
return
: L13
if vE == 1 then jump L14
if vE == 2 then jump L15
return
: L14
vE := 4
return
: L15
vE := 3
return
: L16
if vE == 3 then jump L17
if vE == 4 then jump L18
return
: L17
vE := 2
return
: L18
vE := 1
return
: Sub14
v3 := 0
v4 := 15
i := D5
sprite v3 v4 2
i := D1
v4 := 0
v3 := 7
loop
sprite v3 v4 8
v4 += 8
if v4 == 32 then return
again
0x0 0xee
: Sub15
i := D2
v3 := 1
sprite vA v3 1
v3 := 30
sprite vB v3 1
return
: Sub16
i := D3
sprite vC vD 1
return
: Sub17
v5 := random 0b10
v3 := 8
v4 := 16
i := D2
if v5 == 0 then Sub18
if v5 == 1 then Sub19
if v5 == 2 then Sub20
return
: Sub18
sprite v3 v4 1
v3 := 56
sprite v3 v4 1
return
: Sub19
sprite v3 v4 1
v3 += 8
sprite v3 v4 1
return
: Sub20
v3 := 56
sprite v3 v4 1
v3 += -8
sprite v3 v4 1
return
: Sub21
v3 := 1
v4 := 1
i := hex v8
sprite v3 v4 5
v4 += 25
i := hex v9
sprite v3 v4 5
if v7 == 1 then Sub22
if v7 == 2 then Sub23
return
: Sub22
v4 := 9
v0 := 12
i := hex v0
sprite v3 v4 5
v4 := 18
i := D4
sprite v3 v4 5
return
: Sub23
v4 := 9
v0 := 10
i := hex v0
sprite v3 v4 5
v4 := 18
v0 += 1
i := hex v0
sprite v3 v4 5
return
: L20
loop
again
: D1
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D2
0xff
: D3
0x80
: D4
0xf0 0x90 0xf0 0x90 0x90 0x0
: D5
0xfe 0xfe
######################################################################
# INPUT: chip8/Chip-8 Games/Pong (1 player).ch8
######################################################################
:proto L5 # 278
:proto L6 # 282
:proto L7 # 28A
:proto L8 # 2A2
:proto L9 # 2BA
:proto L10 # 2C2
:proto L11 # 2C8
:proto Sub1 # 2D4
:proto D1 # 2EA
:proto D2 # 2F0
:proto D3 # 2F2
: main
vA := 2
vB := 12
vC := 63
vD := 12
i := D1
sprite vA vB 6
sprite vC vD 6
vE := 0
Sub1
v6 := 3
v8 := 2
: L1
v0 := 96
delay := v0
loop
v0 := delay
if v0 != 0 then
again
v7 := random 0b10111
v7 += 8
v9 := -1
i := D2
sprite v6 v7 1
loop
i := D1
sprite vA vB 6
sprite vC vD 6
v0 := 1
if v0 key then vB += -2
v0 := 4
if v0 key then vB += 2
v0 := 31
vB &= v0
sprite vA vB 6
vD := v7
v0 := random 0b1010
vD += -2
if v0 == 0 then vD += 2
v0 := 0
v0 := 31
vD &= v0
sprite vC vD 6
i := D2
sprite v6 v7 1
v6 += v8
v7 += v9
v0 := 63
v6 &= v0
v1 := 31
v7 &= v1
if v6 == 2 then jump L5
if v6 == 63 then jump L6
: L4
if v7 == 31 then v9 := -1
if v7 == 0 then v9 := 1
sprite v6 v7 1
again
: L5
v8 := 2
v3 := 1
v0 := v7
v0 -= vB
jump L7
: L6
v8 := -2
v3 := 10
v0 := v7
v0 -= vD
: L7
if vF != 1 then jump L8
v1 := 2
v0 -= v1
if vF != 1 then jump L9
v0 -= v1
if vF != 1 then jump L11
v0 -= v1
if vF != 1 then jump L10
: L8
v0 := 32
buzzer := v0
Sub1
vE += v3
Sub1
v6 := 62
if v3 != 1 then v6 := 3
v8 := -2
if v3 != 1 then v8 := 2
jump L1
: L9
v9 += -1
if v9 == -2 then v9 := -1
jump L11
: L10
v9 += 1
if v9 == 2 then v9 := 1
: L11
v0 := 4
buzzer := v0
v6 += 1
if v6 == 64 then v6 += -2
jump L4
: Sub1
i := D3
bcd vE
load v2
i := hex v1
v4 := 20
v5 := 0
sprite v4 v5 5
v4 += 21
i := hex v2
sprite v4 v5 5
return
: D1
0x80 0x80 0x80 0x80 0x80 0x80
: D2
0x80 0x0
: D3
0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Pong 2 (Pong hack) [David Winter, 1997].ch8
######################################################################
:proto L5 # 278
:proto L6 # 282
:proto L7 # 28A
:proto L8 # 2A2
:proto L9 # 2BA
:proto L10 # 2C2
:proto L11 # 2C8
:proto Sub1 # 2D4
:proto D1 # 2EA
:proto D2 # 2F0
:proto D3 # 2F2
:proto Sub2 # 2FC
: main
Sub2
vB := 12
vC := 63
vD := 12
i := D1
sprite vA vB 6
sprite vC vD 6
vE := 0
Sub1
v6 := 3
v8 := 2
: L1
v0 := 96
delay := v0
loop
v0 := delay
if v0 != 0 then
again
v7 := random 0b10111
v7 += 8
v9 := -1
i := D2
sprite v6 v7 1
loop
i := D1
sprite vA vB 6
sprite vC vD 6
v0 := 1
if v0 key then vB += -2
v0 := 4
if v0 key then vB += 2
v0 := 31
vB &= v0
sprite vA vB 6
v0 := 12
if v0 key then vD += -2
v0 := 13
if v0 key then vD += 2
v0 := 31
vD &= v0
sprite vC vD 6
i := D2
sprite v6 v7 1
v6 += v8
v7 += v9
v0 := 63
v6 &= v0
v1 := 31
v7 &= v1
if v6 == 0 then jump L5
if v6 == 63 then jump L6
: L4
if v7 == 31 then v9 := -1
if v7 == 0 then v9 := 1
sprite v6 v7 1
again
: L5
v8 := 2
v3 := 1
v0 := v7
v0 -= vB
jump L7
: L6
v8 := -2
v3 := 10
v0 := v7
v0 -= vD
: L7
if vF != 1 then jump L8
v1 := 2
v0 -= v1
if vF != 1 then jump L9
v0 -= v1
if vF != 1 then jump L11
v0 -= v1
if vF != 1 then jump L10
: L8
v0 := 32
buzzer := v0
Sub1
vE += v3
Sub1
v6 := 62
if v3 != 1 then v6 := 3
v8 := -2
if v3 != 1 then v8 := 2
jump L1
: L9
v9 += -1
if v9 == -2 then v9 := -1
jump L11
: L10
v9 += 1
if v9 == 2 then v9 := 1
: L11
v0 := 4
buzzer := v0
v6 += 1
if v6 == 64 then v6 += -2
jump L4
: Sub1
i := D3
bcd vE
load v2
i := hex v1
v4 := 20
v5 := 2
sprite v4 v5 5
v4 += 21
i := hex v2
sprite v4 v5 5
return
: D1
0x80 0x80 0x80 0x80 0x80 0x80
: D2
0x80 0x0
: D3
0x0 0x0 0x0 0x0
: D4
0xc0 0xc0 0xc0 0x0
: D5
0xff 0x0
: Sub2
vB := 32
vC := 0
i := D4
loop
sprite vB vC 4
vC += 4
if vC != 32 then
again
vA := 0
vB := 0
vC := 31
i := D5
loop
sprite vA vB 1
sprite vA vC 1
vA += 8
if vA != 64 then
again
i := D4
vA := 0
vB := 32
sprite vB vA 1
return
######################################################################
# INPUT: chip8/Chip-8 Games/Pong (alt).ch8
######################################################################
:proto L5 # 278
:proto L6 # 282
:proto L7 # 28A
:proto L8 # 2A2
:proto L9 # 2BA
:proto L10 # 2C2
:proto L11 # 2C8
:proto Sub1 # 2D4
:proto D1 # 2EA
:proto D2 # 2F0
:proto D3 # 2F2
:proto Sub2 # 2F6
: main
Sub2
vB := 12
vC := 63
vD := 12
i := D1
sprite vA vB 6
sprite vC vD 6
vE := 0
Sub1
v6 := 3
v8 := 2
: L1
v0 := 96
delay := v0
loop
v0 := delay
if v0 != 0 then
again
v7 := random 0b10111
v7 += 8
v9 := -1
i := D2
sprite v6 v7 1
loop
i := D1
sprite vA vB 6
sprite vC vD 6
v0 := 1
if v0 key then vB += -2
v0 := 4
if v0 key then vB += 2
v0 := 31
vB &= v0
sprite vA vB 6
v0 := 12
if v0 key then vD += -2
v0 := 13
if v0 key then vD += 2
v0 := 31
vD &= v0
sprite vC vD 6
i := D2
sprite v6 v7 1
v6 += v8
v7 += v9
v0 := 63
v6 &= v0
v1 := 31
v7 &= v1
if v6 == 0 then jump L5
if v6 == 63 then jump L6
: L4
if v7 == 31 then v9 := -1
if v7 == 0 then v9 := 1
sprite v6 v7 1
again
: L5
v8 := 2
v3 := 1
v0 := v7
v0 -= vB
jump L7
: L6
v8 := -2
v3 := 10
v0 := v7
v0 -= vD
: L7
if vF != 1 then jump L8
v1 := 2
v0 -= v1
if vF != 1 then jump L9
v0 -= v1
if vF != 1 then jump L11
v0 -= v1
if vF != 1 then jump L10
: L8
v0 := 32
buzzer := v0
Sub1
vE += v3
Sub1
v6 := 62
if v3 != 1 then v6 := 3
v8 := -2
if v3 != 1 then v8 := 2
jump L1
: L9
v9 += -1
if v9 == -2 then v9 := -1
jump L11
: L10
v9 += 1
if v9 == 2 then v9 := 1
: L11
v0 := 4
buzzer := v0
v6 += 1
if v6 == 64 then v6 += -2
jump L4
: Sub1
i := D3
bcd vE
load v2
i := hex v1
v4 := 20
v5 := 0
sprite v4 v5 5
v4 += 21
i := hex v2
sprite v4 v5 5
return
: D1
0x80 0x80 0x80 0x80 0x80 0x80
: D2
0x80 0x0
: D3
0x0 0x0 0x0 0x0
: Sub2
vB := 32
vC := 0
i := D1
loop
sprite vB vC 1
vC += 1
if vC != 32 then
again
vA := 0
return
######################################################################
# INPUT: chip8/Chip-8 Games/Pong [Paul Vervalin, 1990].ch8
######################################################################
:proto L5 # 278
:proto L6 # 282
:proto L7 # 28A
:proto L8 # 2A2
:proto L9 # 2BA
:proto L10 # 2C2
:proto L11 # 2C8
:proto Sub1 # 2D4
:proto D1 # 2EA
:proto D2 # 2F0
:proto D3 # 2F2
: main
vA := 2
vB := 12
vC := 63
vD := 12
i := D1
sprite vA vB 6
sprite vC vD 6
vE := 0
Sub1
v6 := 3
v8 := 2
: L1
v0 := 96
delay := v0
loop
v0 := delay
if v0 != 0 then
again
v7 := random 0b10111
v7 += 8
v9 := -1
i := D2
sprite v6 v7 1
loop
i := D1
sprite vA vB 6
sprite vC vD 6
v0 := 1
if v0 key then vB += -2
v0 := 4
if v0 key then vB += 2
v0 := 31
vB &= v0
sprite vA vB 6
v0 := 12
if v0 key then vD += -2
v0 := 13
if v0 key then vD += 2
v0 := 31
vD &= v0
sprite vC vD 6
i := D2
sprite v6 v7 1
v6 += v8
v7 += v9
v0 := 63
v6 &= v0
v1 := 31
v7 &= v1
if v6 == 2 then jump L5
if v6 == 63 then jump L6
: L4
if v7 == 31 then v9 := -1
if v7 == 0 then v9 := 1
sprite v6 v7 1
again
: L5
v8 := 2
v3 := 1
v0 := v7
v0 -= vB
jump L7
: L6
v8 := -2
v3 := 10
v0 := v7
v0 -= vD
: L7
if vF != 1 then jump L8
v1 := 2
v0 -= v1
if vF != 1 then jump L9
v0 -= v1
if vF != 1 then jump L11
v0 -= v1
if vF != 1 then jump L10
: L8
v0 := 32
buzzer := v0
Sub1
vE += v3
Sub1
v6 := 62
if v3 != 1 then v6 := 3
v8 := -2
if v3 != 1 then v8 := 2
jump L1
: L9
v9 += -1
if v9 == -2 then v9 := -1
jump L11
: L10
v9 += 1
if v9 == 2 then v9 := 1
: L11
v0 := 4
buzzer := v0
v6 += 1
if v6 == 64 then v6 += -2
jump L4
: Sub1
i := D3
bcd vE
load v2
i := hex v1
v4 := 20
v5 := 0
sprite v4 v5 5
v4 += 21
i := hex v2
sprite v4 v5 5
return
: D1
0x80 0x80 0x80 0x80 0x80 0x80
: D2
0x80 0x0
: D3
0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Programmable Spacefighters [Jef Winsor].ch8
######################################################################
:proto L9 # 2A6
:proto L12 # 2D0
:proto L17 # 31A
:proto L18 # 326
:proto L19 # 32E
:proto L20 # 33C
:proto L21 # 356
:proto L23 # 362
:proto L26 # 384
:proto L28 # 3BA
:proto L30 # 3D6
:proto L31 # 3DE
:proto L32 # 3E4
:proto L33 # 3E8
:proto L34 # 3FC
:proto L35 # 400
:proto L36 # 406
:proto L37 # 412
:proto L40 # 464
:proto L41 # 470
:proto Sub1 # 478
:proto Sub2 # 482
:proto Sub3 # 48E
:proto L42 # 4A8
:proto L43 # 4B0
:proto L45 # 4B8
:proto Sub4 # 4C0
:proto Sub5 # 4D2
:proto Sub6 # 4D4
:proto Sub7 # 4D8
:proto Sub8 # 4DE
:proto Sub9 # 4E4
:proto Sub10 # 4FC
:proto Sub11 # 506
:proto L47 # 514
:proto Sub12 # 518
:proto Sub13 # 52C
:proto Sub14 # 52E
:proto Sub15 # 538
:proto Sub16 # 540
:proto Sub18 # 55E
:proto Sub19 # 564
:proto Sub20 # 570
:proto Sub21 # 592
:proto Sub22 # 59E
:proto L51 # 5A0
:proto D1 # 5A4
:proto D2 # 5A5
:proto D3 # 5BD
:proto D4 # 5C8
:proto D5 # 5D5
:proto D6 # 5DF
:proto D7 # 5E2
:proto D8 # 5E5
:proto D9 # 5E8
:proto D10 # 5EB
:proto D11 # 5F0
:proto D12 # 5F1
:proto D13 # 5F5
:proto D14 # 5FA
:proto D15 # 5FB
:proto D16 # 5FC
:proto D17 # 5FD
:proto D18 # 5FE
:proto D19 # 600
:proto D20 # 628
:proto D21 # 630
: main
v1 := 30
v2 := 14
i := D5
sprite v1 v2 3
v5 := 0
loop
Sub20
v5 += 1
if v5 != 6 then
again
i := D15
load v5
if v4 == 0 then v4 := 1
if v2 == 0 then v2 := 1
if v1 == 0 then v1 := 1
if v0 == 0 then v0 := 1
v6 := 8
v6 &= v0
if v6 != 0 then v0 := 8
v6 := v1
v1 := v5
i := D15
save v4
v3 := v6
v4 := 0
clear
vE := 0
loop
vB := vE
vA := 3
i := D2
Sub18
load v2
vA := 5
i := D19
Sub18
save v4
Sub19
vE += 1
i := D15
load v0
if v0 != vE then
again
i := D3
v5 := 62
v6 := 1
sprite v5 v6 13
v6 := 16
sprite v5 v6 13
v6 := 31
loop
v5 += -9
sprite v5 v6 1
if v5 != 17 then
again
v5 := 0
v1 := 0
v2 := 8
loop
Sub21
v5 += 1
v2 += 6
if v5 != 3 then
again
i := D18
load v0
jump L41
: L5
Sub21
: L6
v1 := 4
v2 += 1
i := D5
loop
sprite v1 v2 3
v2 += -6
if v2 != 3 then
again
v0 := 0
jump L9
: L8
Sub15
load v0
Sub16
i := D1
load v0
: L9
v0 += 1
if v0 == 100 then v0 := 0
Sub15
save v0
Sub16
: L10
vE := key
if vE == 0 then jump L12
vE += -1
v6 := 8
v6 &= vE
if v6 != 0 then vE := 7
Sub13
Sub12
loop
Sub11
if v7 == 16 then
again
Sub12
jump L10
: L12
loop
i := D13
load v9
Sub13
if v3 == -16 then jump L23
vA := key
Sub12
: L13
i := D17
load v0
vD := v0
Sub10
v8 := 0
v0 := 14
loop
save v0
v8 += 1
if v8 != 15 then
again
Sub8
: L15
vD += -1
Sub9
loop
Sub13
Sub11
if v7 != 16 then v7 := key
i := D18
load v0
if v0 == 0 then jump L17
v8 := delay
if v8 != 0 then jump L17
Sub9
v9 += -1
Sub8
if v9 == 0 then jump L20
Sub9
: L17
if v7 == 16 then
again
if v7 != 11 then jump L18
Sub9
jump L13
: L18
if v7 != 14 then jump L19
Sub9
jump L20
: L19
Sub10
i += vD
v0 := v7
save v0
Sub9
if vD != 0 then jump L15
: L20
Sub13
Sub12
i := D16
load v0
v6 := v0
i := D14
load v5
Sub13
if v6 == 0 then jump L21
v5 += v4
if vF == 1 then v5 := -1
: L21
v4 := v5
vA := 5
i := D19
Sub7
loop
if vA -key then
again
: L23
i := D15
load v0
vE += 1
if v0 != vE then
again
i := D11
load vD
: L24
vD += -1
vE := 0
loop
Sub13
if v3 == -16 then jump L26
Sub10
i += vD
load v0
if v0 == 5 then jump L37
: L26
vE += 1
i := D15
load v0
if v0 != vE then
again
vE := 0
v9 := 0
: L27
Sub13
if v3 == 0 then jump L36
if v3 == -16 then jump L28
Sub10
i += vD
load v0
if v0 != 14 then v9 := -1
if v0 == 2 then jump L32
if v0 == 1 then jump L30
if v0 == 3 then jump L30
if v0 == 4 then jump L31
if v0 == 6 then jump L31
: L28
vE += 1
i := D15
load v0
vC := 0
delay := vC
loop
vC := delay
if vC != 0 then
again
if vE != v0 then jump L27
if v9 != 0 then if vD == 0 then jump L8
jump L24
: L30
v0 += 3
v5 := v0
Sub4
jump L33
: L31
v5 := v0
Sub4
jump L34
: L32
Sub13
Sub19
: L33
v6 := v0
Sub3
i := D4
vF := 0
sprite v1 v2 2
if vF == 1 then jump L35
v0 := v6
sprite v1 v2 2
Sub5
: L34
Sub19
jump L28
: L35
sprite v1 v2 2
Sub13
jump L34
: L36
v3 := -16
Sub5
Sub1
Sub19
Sub1
jump L28
: L37
Sub13
if v4 == 0 then jump L26
v4 += -1
Sub5
v7 := v0
loop
Sub3
if vF == -1 then jump L26
v6 := 3
vB := v7
vB &= v6
vA := 3
i := D6
Sub18
vF := 2
buzzer := vF
sprite v1 v2 3
vC := vF
sprite v1 v2 3
v0 := v7
if vC != 1 then
again
v5 := v1
v6 := v2
vB := 0
loop
if vB == vE then jump L40
Sub14
if v3 == -16 then jump L40
if v1 != v5 then jump L40
if v2 != v6 then jump L40
if v3 != 0 then v3 += -1
Sub6
Sub2
Sub2
jump L26
: L40
vB += 1
i := D15
load v0
if v0 != vB then
again
jump L26
: L41
if v0 != 0 then jump L5
v2 += -6
jump L6
: Sub1
vF := 3
i := D6
sprite v1 v2 3
i := D7
sprite v1 v2 3
: Sub2
buzzer := vF
i := D9
sprite v1 v2 3
i := D8
sprite v1 v2 3
return
: Sub3
i := D12
i += v0
load v0
v2 += v0
v0 := 1
i += v0
load v0
v1 += v0
vF := 0
if v1 != 14 then jump L42
v1 := 59
vF := -1
: L42
if v1 != 62 then jump L43
v1 := 17
vF := -1
: L43
if v2 != -3 then jump L45
v2 := 27
: L44
vF := -1
: L45
if v2 != 30 then return
v2 := 0
jump L44
: Sub4
Sub13
v6 := v0
Sub19
v0 := v6
if v5 == 4 then v0 += -2
v0 += 1
v6 := 7
v0 &= v6
: Sub5
vB := vE
: Sub6
vA := 5
i := D19
: Sub7
Sub18
save v4
return
: Sub8
v8 := -16
delay := v8
return
: Sub9
v5 := 7
v6 := 20
i := hex vD
sprite v5 v6 5
i := D18
load v0
if v0 == 0 then return
v6 := 26
i := hex v9
sprite v5 v6 5
return
: Sub10
vB := vE
vA := 15
i := D20
Sub18
return
: Sub11
Sub19
v7 := 0
loop
if v7 key then jump L47
v7 += 1
if v7 != 16 then
again
: L47
Sub19
return
: Sub12
vE += 1
v5 := 7
v6 := 8
i := hex vE
sprite v5 v6 5
v6 := 14
i := hex v3
sprite v5 v6 5
vE += -1
return
: Sub13
vB := vE
: Sub14
vA := 5
i := D19
Sub18
load v4
return
: Sub15
i := D1
v5 := 0
v6 := 1
return
: Sub16
i := D21
bcd v0
load v2
i := hex v1
sprite v5 v6 5
i := hex v2
v5 += 5
sprite v5 v6 5
return
: Sub17
vC := 0
loop
if vA == 0 then return
vC += vB
vA += -1
again
: Sub18
Sub17
i += vC
return
: Sub19
vA := 3
vB := v0
i := D4
Sub18
sprite v1 v2 3
return
: Sub20
v2 := 13
v1 := 26
Sub21
v1 := 33
Sub22
i := D15
i += v5
save v0
v6 := 120
delay := v6
loop
v6 := delay
if v6 != 0 then
again
v1 := 26
Sub21
v1 := 33
jump L51
: Sub21
i := D10
i += v5
load v0
: L50
i := hex v0
sprite v1 v2 5
return
: Sub22
v3 := key
: L51
v0 := v3
jump L50
: D1
0x1
: D2
0x6 0x3b 0xf 0x2 0x11 0xc 0x0 0x29 0x1b 0x4 0x23 0x0 0x0 0x1d 0x1b 0x4 0x2f 0x0 0x0 0x35 0x1b 0x4 0x17 0x0
: D3
0x49 0x0 0x0 0x40 0x0 0x0 0x40 0x0 0x0 0x40 0x0
: D4
0x0 0x40 0xa0 0x0 0xc0 0x40 0x80 0x40 0x80 0x40 0xc0 0x0 0xa0
: D5
0x40 0x0 0x40 0x60 0x0 0x20 0x40 0x20 0x0 0x60
: D6
0x40 0x40 0x40
: D7
0x20 0x40 0x80
: D8
0x0 0xe0 0x0
: D9
0x80 0x40 0x20
: D10
0x5 0xd 0xe 0xc 0xf
: D11
0xa
: D12
0xfd 0xfd 0x0 0x3
: D13
0x3 0x3 0x0 0xfd 0xfd
: D14
0xfd
: D15
0xd4
: D16 0
: D17 0
: D18 0 0
: D19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D20 0 0 0 0 0 0 0 0
: D21
######################################################################
# INPUT: chip8/Chip-8 Games/Puzzle.ch8
######################################################################
:proto L2 # 224
:proto Sub1 # 252
:proto L5 # 264
:proto L6 # 270
:proto L7 # 27C
:proto L8 # 288
:proto D1 # 2B0
:proto D2 # 300
: main
vA := 18
vB := 1
v1 := 16
v2 := 0
v0 := 0
loop
i := D1
sprite v1 v2 7
i := hex v0
if v0 != 0 then sprite vA vB 5
v1 += 8
vA += 8
if v1 != 48 then jump L2
v1 := 16
v2 += 8
vA := 18
vB += 8
: L2
i := D2
i += v0
save v0
v0 += 1
if v0 != 16 then
again
vA := 18
vB := 1
vC := 0
v2 := -1
loop
v0 := random 0b110
v0 += 2
Sub1
v2 += -1
if v2 != 0 then
again
vE := 0
vE := 0
loop
v0 := key
Sub1
vE += 1
vE += 1
again
: Sub1
v4 := vA
v5 := vB
v6 := vC
if v0 != 2 then jump L5
if v5 == 1 then jump L5
v5 += -8
v6 += -4
: L5
if v0 != 8 then jump L6
if v5 == 25 then jump L6
v5 += 8
v6 += 4
: L6
if v0 != 6 then jump L7
if v4 == 18 then jump L7
v4 += -8
v6 += -1
: L7
if v0 != 4 then jump L8
if v4 == 42 then jump L8
v4 += 8
v6 += 1
: L8
i := D2
i += v6
load v0
v1 := v0
v0 := 0
i := D2
i += v6
save v0
i := D2
i += vC
v0 := v1
save v0
i := hex v1
sprite v4 v5 5
sprite vA vB 5
vA := v4
vB := v5
vC := v6
return
0xee 0x5e
: D1
0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D2
######################################################################
# INPUT: chip8/Chip-8 Games/Reversi [Philip Baltzer].ch8
######################################################################
:proto L3 # 21A
:proto L4 # 21E
:proto L7 # 272
:proto L10 # 28C
:proto L11 # 2B0
:proto L12 # 2B8
:proto L13 # 2BA
:proto D1 # 2D7
:proto D2 # 2DA
:proto Sub1 # 2DE
:proto Sub2 # 2EC
:proto L16 # 306
:proto Sub3 # 30C
:proto L18 # 332
:proto L19 # 336
:proto L20 # 342
:proto L21 # 34E
:proto L22 # 356
:proto L23 # 35E
:proto L25 # 366
:proto L26 # 372
:proto Sub4 # 37E
:proto Sub5 # 388
:proto Sub6 # 394
:proto Sub7 # 39E
:proto Sub9 # 3A8
:proto L30 # 3C4
:proto L31 # 3C8
:proto L32 # 3CC
:proto Sub10 # 3D0
:proto L34 # 3F2
:proto Sub11 # 3FA
:proto L36 # 41A
:proto L37 # 426
:proto L38 # 42A
:proto Sub12 # 42E
:proto D3 # 440
: main
vD := 2
vE := 2
vC := 0
i := D1
vB := 0
: L1
vA := 17
loop
sprite vA vB 3
if vA != 45 then jump L3
if vB == 28 then jump L4
vB += 4
jump L1
: L3
vA += 4
again
: L4
vA := 29
vB := 12
sprite vA vB 3
vA += 4
vB += 4
sprite vA vB 3
i := D2
sprite vA vB 3
vA += -4
sprite vA vB 3
vB += -4
sprite vA vB 3
vA += 4
sprite vA vB 3
v0 := 2
Sub1
v0 := 52
Sub1
i := D1
v0 := 52
Sub1
Sub6
v9 := 1
Sub3
v8 := 0
: L5
Sub4
v9 := 0
loop
if v9 == 9 then jump L7
v9 += 1
if v9 -key then
again
if v9 == 5 then jump L10
if v8 != 0 then Sub7
Sub3
if v8 != 0 then Sub7
v1 := 2
buzzer := v1
jump L5
: L7
v9 := 15
if v9 -key then jump L5
: L8
if v8 != 0 then Sub2
vC += 128
if v8 != 0 then Sub2
v1 := 24
buzzer := v1
loop
if v9 key then
again
jump L5
: L10
if v8 != 0 then Sub4
Sub9
if v1 != 0 then jump L5
v3 := vA
v4 := vB
v9 := 0
Sub10
if v2 == 0 then jump L5
Sub6
i := D2
sprite v3 v4 3
if vC != 0 then jump L11
i := D1
sprite v3 v4 3
: L11
if vC != 0 then jump L12
vD += 1
jump L13
: L12
vE += 1
: L13
loop
Sub11
Sub10
if v2 != 0 then
again
Sub6
v1 := vD
v1 += vE
if v1 != 64 then jump L8
loop
Sub12
Sub12
Sub5
Sub12
again
0x1
: D1
0x0 0x40 0x0
: D2
0xe0 0xa0 0xe0 0xd4
: Sub1
v1 := 11
sprite v0 v1 3
v0 += 4
sprite v0 v7 3
v0 += 4
sprite v0 v1 3
return
: Sub2
i := D3
if vC != 0 then jump L16
v5 := 2
bcd vD
: L15
v6 := 4
load v2
i := hex v1
sprite v5 v6 5
v5 += 7
i := hex v2
sprite v5 v6 5
return
: L16
v5 := 52
bcd vE
jump L15
: Sub3
v7 := 0
if v9 == 9 then jump L26
if v9 == 8 then jump L23
if v9 == 7 then jump L25
if v9 == 6 then jump L22
if v9 == 4 then jump L21
if v9 == 3 then jump L20
if v9 == 1 then jump L19
if vB == 0 then jump L18
: L17
vB += -4
return
: L18
v7 := -1
return
: L19
if vB == 0 then jump L18
if vA == 17 then jump L18
vA += -4
jump L17
: L20
if vB == 0 then jump L18
if vA == 45 then jump L18
vA += 4
jump L17
: L21
if vA == 17 then jump L18
vA += -4
return
: L22
if vA == 45 then jump L18
vA += 4
return
: L23
if vB == 28 then jump L18
: L24
vB += 4
return
: L25
if vB == 28 then jump L18
if vA == 17 then jump L18
vA += -4
jump L24
: L26
if vB == 28 then jump L18
if vA == 45 then jump L18
vA += 4
jump L24
: Sub4
Sub5
Sub2
Sub7
v8 += 128
return
: Sub5
v1 := 16
delay := v1
loop
v1 := delay
if v1 != 0 then
again
return
: Sub6
Sub2
vC += 128
Sub2
vC += 128
return
: Sub7
i := D1
: L28
sprite vA vB 3
return
: Sub8
i := D2
jump L28
: Sub9
Sub8
v1 := vF
Sub8
if v1 == 0 then jump L32
Sub7
v1 := vF
Sub7
if v1 != 0 then jump L30
if vC != 0 then jump L31
: L29
v1 := 128
return
: L30
if vC != 0 then jump L29
: L31
v1 := -1
return
: L32
v1 := 0
return
: Sub10
vA := v3
vB := v4
v9 += 1
if v9 == 5 then v9 += 1
v2 := 0
if v9 == 10 then return
loop
Sub3
Sub9
if v1 == 0 then jump Sub10
if v1 != 128 then jump L34
if v2 != 0 then return
jump Sub10
: L34
if v7 == -1 then jump Sub10
v2 += 1
again
: Sub11
v1 := v9
v9 := 10
v9 -= v1
loop
Sub3
v1 := vA
v1 -= v3
if v1 != 0 then jump L36
v1 := vB
v1 -= v4
if v1 != 0 then jump L36
v1 := v9
v9 := 10
v9 -= v1
return
: L36
Sub7
if vC != 0 then jump L37
vD += 1
vE += -1
jump L38
: L37
vD += -1
vE += 1
: L38
Sub12
again
: Sub12
v1 := 4
buzzer := v1
Sub5
return
0x14 0x24 0x4a 0x2d 0x14 0x24 0x7a 0x4 0x14 0x20
: D3
0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Rocket [Joseph Weisbecker, 1978].ch8
######################################################################
:proto L5 # 262
:proto Sub1 # 26A
:proto D1 # 278
:proto D2 # 27E
:proto D3 # 2A0
:proto D4 # 2A2
: main
v1 := 0
v2 := 0
v3 := 56
v4 := 27
v5 := 0
v6 := 8
i := D2
sprite v5 v6 3
: L1
Sub1
if v2 == 9 then loop
again
v2 += 1
v8 := 26
vA := 0
v7 := random 0b11111
v7 += 15
v9 := 0
i := D1
sprite v7 v8 6
: L3
loop
i := D2
sprite v5 v6 3
v0 := random 0b11
v5 += v0
sprite v5 v6 3
if vF != 0 then jump L5
v0 := 15
if v0 key then v9 := 1
if v9 != 1 then jump L3
v0 := delay
if v0 != 0 then jump L3
i := D1
sprite v7 v8 6
v8 += -1
sprite v7 v8 6
if vF != 0 then jump L5
v0 := 3
delay := v0
if v8 != 0 then
again
: L4
Sub1
i := D1
sprite v7 v8 6
v1 += vA
jump L1
: L5
vA := 1
v0 := 3
buzzer := v0
jump L4
: Sub1
i := D3
bcd v1
i := D4
load v0
i := hex v0
sprite v3 v4 5
return
: D1
0x20 0x70 0x70 0xf8 0xd8 0x88
: D2
0x7c 0xd6 0x7c 0x0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D3 0 0
: D4
######################################################################
# INPUT: chip8/Chip-8 Games/Rocket Launcher.ch8
######################################################################
:proto Sub1 # 258
:proto D1 # 25E
:proto D2 # 260
:proto D3 # 268
: main
clear
i := D2
v0 := 7
v1 := 56
v2 := 25
sprite v0 v2 7
sprite v1 v2 7
i := D1
v0 := 0
v1 := 24
loop
sprite v0 v1 1
v0 += 8
if v0 != 64 then
again
v8 := 30
v9 := 17
Sub1
v0 := 15
loop
if v0 -key then
again
v0 := 8
buzzer := v0
: L3
Sub1
: L4
v9 += -1
Sub1
v0 := 2
delay := v0
loop
v0 := delay
if v0 != 0 then
again
v0 := 1
buzzer := v0
if v9 != 0 then jump L3
clear
v4 := 12
loop
v5 := random 0b100000
v6 := random 0b1000000
sprite v6 v5 1
v4 += -1
if v4 != 0 then
again
v9 := 26
jump L4
: Sub1
i := D3
sprite v8 v9 7
return
: D1
0xff 0x0
: D2
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x0
: D3
0x20 0x70 0x70 0x70 0x70 0xf8 0x50 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Rocket Launch [Jonas Lindstedt].ch8
######################################################################
:proto L1 # 212
:proto L4 # 274
:proto L6 # 28C
:proto L7 # 2B8
:proto L8 # 2C4
:proto L9 # 2D4
:proto L11 # 324
:proto L15 # 39C
:proto D7 # E00
:proto D8 # F00
:proto D9 # FA0
: main
jump L1
0x4a 0x6f 0x6e 0x61 0x73 0x21
: D1
0xff 0xff
: D2
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: L1
clear
v0 := 1
v1 := 1
v2 := 62
i := D1
loop
sprite v0 v1 1
sprite v0 v2 1
v0 += 8
if v0 != 65 then
again
i := D2
v0 := 2
v1 := 1
v2 := 63
loop
sprite v1 v0 7
sprite v2 v0 7
v0 += 7
if v0 != 30 then
again
jump L4
: D3
0xc4 0xaa 0xca 0xaa 0xa4 0x0 0x84 0x8a 0x8e 0x8a 0xea 0x0 0x6a 0x8a 0x8c 0x8a 0x6a 0x0 0xaa 0xae 0xae 0xaa 0x4a 0x0 0xee 0x84 0xc4 0x84 0xe4 0x0 0x6a 0x8a 0x8e 0x8a 0x6a 0x0
: Sub1
i := D3
v2 := 12
sprite v0 v1 11
v0 += 8
i += v2
sprite v0 v1 11
v0 += 8
i += v2
sprite v0 v1 11
v0 += -16
return
: L4
v0 := random 0b11111
v1 := random 0b1111
v0 += 6
v1 += 3
Sub1
v2 := 30
delay := v2
loop
v2 := delay
if v2 != 0 then jump L6
Sub1
jump L4
: L6
v2 := 11
if v2 -key then
again
Sub1
jump L9
: D4
0xf8 0x70 0x70 0x70 0x70 0x20
: D5
0x20 0x3
: Sub2
i := D4
sprite v0 v1 6
return
: Sub3
i := D9
save v2
i := D5
load v1
v2 := 6
if v2 -key then jump L7
Sub2
v0 += 1
Sub2
: L7
v2 := 4
if v2 -key then jump L8
Sub2
v0 += -1
Sub2
: L8
if vF != 0 then jump L15
i := D5
save v1
i := D9
load v2
return
0x19 0x19
: L9
i := D8
v0 := 29
v1 := v0
v2 := v0
v3 := v0
v4 := v0
save v4
i := D5
v0 := 32
v1 := 3
save v1
vD := 13
vE := 0
jump L11
: Sub4
v2 := 2
v3 := 0
loop
i := D8
i += v3
load v1
i := D2
sprite v0 v2 7
sprite v1 v2 7
if vF != 0 then jump L15
v0 += vD
sprite v0 v2 7
v0 := v1
v1 += vD
sprite v1 v2 7
if vF != 0 then jump L15
i := D8
i += v3
save v0
Sub3
v2 += 7
v3 += 1
if v3 != 4 then
again
return
: L11
v1 := 2
v2 := 0
loop
i := D8
i += v2
load v0
i := D2
sprite v0 v1 7
v0 += vD
sprite v0 v1 7
v1 += 7
v2 += 1
if v2 != 4 then
again
i := D5
load v1
i := D4
sprite v0 v1 6
: L13
loop
Sub4
i := D8
v0 := 4
i += v0
load v0
v1 := random 0b10
v1 += -1
v0 += v1
if v0 == 2 then v0 := 3
if v0 == 46 then v0 := 45
save v0
vE += 1
v0 := 31
v1 := vE
v1 &= v0
if v1 != 31 then
again
v1 := 2
v2 := 0
loop
i := D8
i += v2
load v0
v0 += vD
i := D2
sprite v0 v1 7
v0 += -1
sprite v0 v1 7
v1 += 7
v2 += 1
if v2 != 4 then
again
vD += -1
jump L13
: D6
0x66 0x88 0x48 0x28 0xc6 0x4c 0xaa 0xac 0xaa 0x4a 0xe0 0x88 0xc0 0x88 0xe0 0x0
: L15
v0 := 30
buzzer := v0
v0 <<= v0
delay := v0
loop
v0 := delay
if v0 != 0 then
again
clear
i := D7
bcd vE
: L17
vB := 13
vA := 13
vC := 5
i := D6
sprite vA vB 5
vA += 8
i += vC
sprite vA vB 5
vA += 8
i += vC
sprite vA vB 5
i := D7
load v2
i := hex v0
vA += 8
sprite vA vB 5
i := hex v1
vA += 5
sprite vA vB 5
i := hex v2
vA += 5
sprite vA vB 5
vC := 20
delay := vC
loop
vC := delay
if vC != 0 then
again
vC := 11
if vC -key then jump L17
jump main
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D9
######################################################################
# INPUT: chip8/Chip-8 Games/Rush Hour [Hap, 2006] (alt).ch8
######################################################################
:proto L1 # 224
:proto L8 # 2C2
:proto L11 # 306
:proto L12 # 314
:proto L13 # 324
:proto L14 # 330
:proto L15 # 336
:proto L16 # 338
:proto Sub1 # 341
:proto Sub2 # 349
:proto L17 # 361
:proto Sub3 # 36F
:proto L18 # 381
:proto L19 # 385
:proto L20 # 38B
:proto L21 # 399
:proto L22 # 3B1
:proto L28 # 425
:proto L29 # 42F
:proto L30 # 43D
:proto L31 # 455
:proto Sub4 # 46B
:proto Sub5 # 47D
:proto L33 # 49F
:proto Sub6 # 4A7
:proto Sub7 # 4AF
:proto Sub8 # 4B1
:proto Sub9 # 4B3
:proto L35 # 4D7
:proto L36 # 4E7
:proto L38 # 541
:proto L41 # 593
:proto Sub10 # 597
:proto L42 # 5C1
:proto D9 # 69C
:proto D11 # 6A2
:proto Sub11 # 6A6
:proto L43 # 6C2
:proto L44 # 6DC
:proto Sub12 # 702
:proto L45 # 722
:proto L46 # 73C
:proto D12 # 78E
:proto D13 # 78F
:proto D14 # 795
:proto D15 # 796
:proto D16 # 79A
:proto D17 # 79E
:proto D18 # 7AC
:proto D19 # 7E0
:proto D20 # 7E4
:proto D21 # 7ED
:proto D22 # 7F1
:proto D23 # 7F7
:proto D24 # 7FB
:proto D25 # 7FC
:proto D26 # 7FF
:proto D27 # 803
:proto D29 # 813
:proto D30 # 817
:proto D31 # 829
:proto D32 # 858
:proto D34 # 869
:proto D35 # 875
:proto D36 # 889
:proto D37 # 892
:proto D38 # 896
:proto D39 # 897
:proto D40 # 8A1
:proto Sub13 # D47
:proto Sub14 # D55
:proto Sub15 # DBD
:proto L49 # DF3
:proto D43 # DF7
:proto D44 # EF0
:proto Sub17 # F0E
:proto L51 # F2C
:proto L53 # F48
:proto L54 # F54
:proto L55 # F60
:proto L59 # FAC
:proto L60 # FD6
:proto L61 # FDE
:proto L62 # FE6
:proto L63 # FEE
:proto D45 # FF5
: main
Sub13
if v0 != v1 then Sub17
jump L1
: D1
0x5b 0x62 0x79
: D2
0x20
: D3
0x68 0x61 0x70 0x5d 0x9a 0x0 0x88 0x0
: D4
0x84 0x35 0x88 0x0 0x88 0x6a 0x80 0x27 0x84 0x35 0x80 0x27 0x88 0x6a 0x84 0x19
: L1
clear
i := D38
load vA
loop
delay := v3
i := D39
i += v2
load v1
i := D35
i += v0
Sub9
sprite v4 vA 7
i += v1
sprite v9 vA 7
buzzer := vA
v4 += 8
v9 += -8
v2 += 2
if v2 != 8 then
again
v0 := 10
Sub8
v8 := 72
Sub15
Sub13
if v0 != v1 then jump L51
Sub7
v8 := 93
Sub15
v0 := key
: L3
0x0 : D5 0xe0 # SMC: clear
v0 := 15
Sub8
i := D37
load v1
i := L28
save v1
i := D23
load v5
i := D31
loop
sprite v5 v4 6
v5 += 8
if v5 != 64 then
again
loop
sprite v4 v0 13
sprite v4 v1 12
v4 += 8
if v4 != 40 then
again
: L6
v2 += 6
v1 := 8
i := D16
if v2 == 32 then i := D15
sprite v2 v1 5
i := D27
i += v3
v3 += 1
load v0
i := D25
if v0 != 0 then sprite v2 v1 4
if v2 == 32 then jump L8
v1 := 7
i := D27
i += v3
load v0
: L7
loop
v1 += 6
if v1 == 31 then jump L6
i := D14
sprite v2 v1 6
if v0 == 0 then jump L7
i := D24
sprite v2 v1 5
v0 += -1
again
: L8
v8 := 54
Sub15
i := D36
load vE
v7 := 10
: L9
Sub1
loop
i := D13
sprite v7 vB 1
Sub9
v9 := key
sprite v7 vB 1
if v9 == 1 then jump L20
if v9 == 10 then jump L21
v0 := 6
delay := v0
Sub2
v6 := 0
if v9 == 5 then jump L11
if v9 == 8 then jump L12
if v9 == 9 then jump L13
if v9 != 7 then jump L9
if v7 == 10 then jump L9
vC += -1
v7 += -6
v6 := -1
v5 := 116
jump L15
: L11
if vB == 10 then jump L9
vD += -1
vB += -6
v6 := -1
v5 := 186
jump L16
: L12
if vB == 28 then jump L9
if v7 == 34 then jump L9
vD += 1
vB += 6
v5 := 70
jump L16
: L13
if v7 == 34 then jump L9
if v7 != 28 then jump L14
if vB != 10 then jump L9
: L14
vC += 1
v7 += 6
v5 := 140
: L15
Sub3
: L16
Sub3
jump L9
: D6
0x36 0x3b 0x8 0x2c 0x31
: Sub1
v0 := vC
v1 := vD
i := D21
save v1
: Sub2
i := D6
load v4
if vE == 0 then jump L17
i := D5
sprite v0 v2 1
v2 += -2
v0 := vE
if v0 == 10 then v0 := 15
i := hex v0
sprite v1 v2 5
: L17
i := D21
load v1
i := hex v1
sprite v4 v2 5
i := hex v0
sprite v3 v2 5
return
: Sub3
i := L28
load v1
v2 := v6
v1 += v5
if vF == 1 then jump L18
if v6 == -1 then v0 += -1
jump L19
: L18
if v6 == 0 then v0 += 1
: L19
i := L28
save v1
return
: L20
Sub14
buzzer := v9
v8 := 47
Sub15
v0 := 45
Sub8
jump L1
: L21
if vF == 1 then jump L22
Sub14
buzzer := v9
v8 := 40
Sub15
v0 := 45
Sub8
v8 := 40
Sub15
Sub14
again
: L22
Sub14
Sub6
vE += 1
: L23
clear
Sub14
v8 := 0
Sub15
Sub2
v8 := vE
v8 += -1
v0 <<= v0
v8 += v0
v8 &= v2
v8 <<= v8
i := D3
load v7
i := D4
i += v8
load v3
v5 := v1
v7 := v3
i := D3
save v7
i := D19
load vC
i := D9
save v1
i := D11
save v1
i := D32
Sub4
v2 := 15
i := D34
Sub4
i := hex vC
loop
sprite v3 v5 5
v3 += 5
if v3 != 64 then
again
i := D18
sprite v4 vC 10
sprite v4 v6 10
sprite v4 v5 12
sprite vC vC 10
sprite vC v6 10
sprite vC v5 12
i := D31
loop
sprite v7 vA 15
sprite v7 v8 15
v7 += 8
if v7 != 36 then
again
i := D12
sprite v4 v6 7
: L26
v8 := -1
loop
if vB != 0 then jump L29
vB := 8
: L28
i := D40
i += vC
load v0
vD := v0
vC += 1
: L29
vB += -1
vD >>= vD
if vF == 0 then jump L30
v8 += 1
if v8 != 3 then
again
: L30
if v8 == -1 then jump L31
if vA == 11 then v8 += 4
Sub5
v8 >>= v8
if vF == 1 then jump L31
v9 += -3
v8 >>= v8
if vF == 1 then v9 += 5
: L31
v9 += 5
if v9 != 35 then jump L26
v9 := 5
vA += 5
if vA != 31 then jump L26
i := D20
load vD
Sub15
jump L36
: Sub4
v0 := 41
loop
sprite v0 v2 4
v0 += 8
if v0 == 65 then return
i += v7
again
: D7
0x2d 0x1f 0x1b 0x24
: Sub5
i := D2
i += v8
load v1
v0 := v8
v0 >>= v0
if vF == 1 then jump L33
i := D7
i += v0
load v0
i := D17
i += v1
sprite v9 vA 5
i += v0
v9 += 8
sprite v9 vA 5
return
: L33
i := D17
i += v1
sprite v9 vA 15
return
: Sub6
v0 := 1
buzzer := v0
v8 := 35
Sub15
: Sub7
v0 := 33
: Sub8
delay := v0
: Sub9
loop
v0 := delay
if v0 != 0 then
again
return
: L34
loop
if v5 key then
again
i := D26
sprite vB vC 5
Sub14
v8 := 18
Sub15
v9 := key
v8 := 18
Sub15
if v9 != 10 then jump L35
Sub6
jump L23
: L35
Sub15
v9 := key
v8 := 27
Sub15
if v9 != 10 then jump L36
Sub6
jump L3
: L36
Sub14
jump L38
0x25 0xc5 0x15 0x41 0x25 0x97 0x26 0x21 0x14 0xff 0x25 0xf1
: L37
Sub10
jump L38
0x25 0xc5 0x26 0x21 0x3b 0xff 0x15 0x41 0x66 0x0 0x65 0x7 0x23 0x6f 0x3e 0xa 0x13 0xb5 0x0 0xe0 0x68 0x6b 0x2d 0xbd 0xa7 0xec 0xf2 0x65 0x41 0x5 0x15 0x3b 0xa8 0x3 0xf1 0x1e 0xf0 0x65 0x40 0x3 0x15 0x3b 0x72 0xf6 0x50 0x20 0x15 0x3b 0x70 0x1 0xa8 0x3 0xf1 0x1e 0xf0 0x55 0x2d 0xbd 0x2d 0x47 0x50 0x10 0x2e 0xce 0x12 0x58 0x25 0xc5 0x25 0xf1
: L38
i := D26
sprite vB vC 5
: L39
loop
i := D22
load v6
if v5 key then jump L34
if v2 key then v0 += 2
if v1 key then v0 += 4
if v3 key then v0 += 8
if v6 key then v0 += 16
if v0 == 0 then jump L41
vA := delay
if vA != 0 then jump L39
delay := v4
if v4 key then v5 := 2
i := D26
sprite vB vC 5
v5 |= vF
: L40
jump0 L40
jump L37
0x14 0xfd 0x14 0xef 0x14 0xeb 0x14 0xf7 0x14 0xfb 0x14 0xef 0x15 0x3f 0x14 0xf5 0x14 0xfd 0x14 0xef 0x15 0x3d 0x14 0xf5 0x14 0xfb 0x14 0xef
: L41
delay := v0
again
: Sub10
if vB == 35 then return
if vC == 1 then return
if v5 != 3 then jump L42
Sub12
if vA == v9 then return
v0 := vA
v0 += -1
i := D30
sprite vB v0 1
sprite vB v0 1
if vF == 1 then return
v9 := vB
Sub5
vA += -5
Sub5
Sub11
: L42
vC += -5
return
0x4b 0x23 0x0 0xee 0x4c 0x1a 0x0 0xee 0x35 0x3 0x15 0xed 0x27 0x2 0x9a 0x90 0x0 0xee 0x79 0x5 0xa8 0x17 0xdb 0x91 0xdb 0x91 0x4f 0x1 0x0 0xee 0x89 0xb0 0x24 0x7d 0x7a 0x5 0x24 0x7d 0x26 0xa6 0x7c 0x5 0x0 0xee 0x4b 0x5 0x0 0xee 0x35 0x3 0x16 0x17 0x27 0x46 0x99 0x60 0x0 0xee 0x80 0x90 0x70 0xff 0xa8 0x18 0xd0 0xc3 0xd0 0xc3 0x4f 0x1 0x0 0xee 0x8a 0xc0 0x24 0x7d 0x79 0xf3 0x24 0x7d 0x26 0xa6 0x7b 0xfb 0x0 0xee 0x4c 0xb 0x16 0x29 0x0 0xee 0x4b 0x1e 0x16 0x1b 0x4b 0x23 0x0 0xee 0x35 0x3 0x16 0x4d 0x27 0x46 0x99 0x60 0x0 0xee 0x76 0x5 0xa8 0x18 0xd6 0xc3 0xd6 0xc3 0x4f 0x1 0x0 0xee 0x8a 0xc0 0x24 0x7d 0x79 0xfd 0x24 0x7d 0x26 0xa6 0x46 0x23 0x16 0x51 0x7b 0x5 0x0 0xee 0x7b 0x5 0x86 0xb0 0x8b 0x90 0x7b 0xf3 0xa8 0x17 0xdb 0xc1 0xdb 0xc1 0x4f 0x0 0x16 0x6d 0xa8 0x13 0xdb 0xc5 0xdb 0xc5 0x4f 0x1 0x16 0x83 0x4b 0x5 0x16 0x75 0x7b 0xfb 0x16 0x59 0x87 0x80 0x2d 0x55 0x68 0xa 0x2d 0xbd 0x6a 0xb 0x88 0x70 0x66 0xff 0x63 0x0 0x8b 0x60 0x62 0xb 0xf2 0x18 0xf2 0x15 0x79 0xf8 0x24 0x7d 0x73 0x1 0x24 0xb3 0x33 0xb 0x16 0x8b 0x0 0xee
: D8
0x0
: D9
0x0 0x0 0x36 0x3b 0x14
: D10
0x0
: D11
0x0 0x0 0x2c 0x31
: Sub11
i := D9
load v4
buzzer := v5
vD += 1
i := D8
bcd vD
if v1 == 9 then jump L43
i := hex v1
sprite v3 v4 5
v1 += 1
i := hex v1
sprite v3 v4 5
return
: L43
i := hex v0
sprite v2 v4 5
i := hex v1
sprite v3 v4 5
i := D9
load v1
i := hex v0
sprite v2 v4 5
i := hex v1
sprite v3 v4 5
if vD == 100 then jump L44
return
: L44
i := D11
load v3
vD := 0
v7 += 1
if v7 == 100 then v7 := 0
i := D10
bcd v7
i := hex v0
sprite v2 v4 5
i := hex v1
sprite v3 v4 5
i := D11
load v1
i := hex v0
sprite v2 v4 5
i := hex v1
sprite v3 v4 5
return
: Sub12
v8 := 1
vA := vC
v9 := vC
i := D29
sprite vB v9 5
sprite vB v9 5
if vF == 1 then jump L45
v9 += 5
sprite vB v9 5
sprite vB v9 5
if vF == 1 then jump L45
v9 += 5
v8 += 2
return
: L45
i := D30
sprite vB vA 1
sprite vB vA 1
if vF == 1 then jump L46
vA += -5
sprite vB vA 1
sprite vB vA 1
if vF == 1 then jump L46
vA += -5
v8 += 2
return
: L46
v0 := v9
v0 -= vA
if v0 == 10 then v8 += 2
return
0x68 0x0 0x4c 0xb 0x78 0x4 0x89 0xb0 0x86 0xb0 0xa8 0x1b 0xd6 0xc3 0xd6 0xc3 0x4f 0x1 0x17 0x6a 0x76 0x5 0xd6 0xc3 0xd6 0xc3 0x4f 0x1 0x17 0x6a 0x76 0x5 0x78 0x2 0x0 0xee 0xa8 0x18 0xd9 0xc3 0xd9 0xc3 0x4f 0x1 0x17 0x84 0x79 0xfb 0xd9 0xc3 0xd9 0xc3 0x4f 0x1 0x17 0x84 0x79 0xfb 0x78 0x2 0x0 0xee 0x80 0x60 0x80 0x95 0x40 0xa 0x78 0x2 0x0 0xee
: D12
0xd0
: D13
0x80 0x80 0x80 0x80 0x80 0xd0
: D14
0x20
: D15
0xf8 0x88 0x88 0x88
: D16
0xf8 0x88 0x8c 0x88
: D17
0xf8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8
: D18
0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0x88 0xa8 0xa8 0x88 0x88 0xa8 0xa8 0xa8 0x88 0x88 0xa8 0xa8 0x88 0xf8 0x88 0xc8 0xa8 0x98 0x88 0xc8 0xa8 0x98 0x88 0xc8 0xa8 0x98 0x88 0xf8 0x88 0xa8 0xa8 0x88 0x88 0xa8 0xa8 0x88 0xf8 0x0 0x0 0x0
: D19
0x0 0x0 0x1 0x2c
: D20
0x23 0x14 0xa 0x4 0x10 0x5 0x1 0x0 0x0
: D21
0x0 0x0 0x5 0x1
: D22
0x0 0x9 0x5 0x8 0xa 0x1
: D23
0x7 0x14 0x2 0x0
: D24
0x0
: D25
0x0 0x70 0x70
: D26
0x70 0xf8 0xf8 0xf8
: D27
0x70
: D28
0x0 0x0 0x0 0x0 0xf8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xf8 0x0
: D29
0x0 0x0 0x0 0x0
: D30
0x20 0x0 0x0 0x80 0x0 0x0 0x8 0xff 0x88 0x91 0xa2 0xff 0x80 0xb3 0x80 0xff 0xff 0x80
: D31
0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xfd 0xfc 0x80 0xfc 0xfd 0xfe 0x8a 0x12 0x22 0xfe 0x2 0x9a 0x2 0xfe 0xfe 0x2 0xfe 0xfe 0xee 0xe6 0x2 0xe6 0xee 0xc0 0x40 0x40 0x40 0xc0 0xc0 0x40 0xc0 0xc0
: D32
0x83 0xe4 0x94 0xe3 0x33 0x8a 0xaa 0x1a 0x8 0x38 0x48
: D33
0x38 0x38 0x38 0x38 0x38 0x38
: D34
0xf1 0xaa 0xaa 0xa9 0x94 0x55 0x49 0x88 0x8c 0x50 0x4 0xd8
: D35
0xfc 0xe6 0xe6 0xe4 0xf8 0xec 0xe6 0xe6 0xe6 0xfe 0xe6 0xe6 0xe6 0xe6 0xe6 0xe6 0x7c 0xe6 0xe0 0x7c
: D36
0x6 0xe6 0x7c 0xe6 0xe6 0xe6 0xe6 0xe6 0x7c
: D37
0xa8 0xa1 0xa 0x1
: D38
0xa
: D39
0x0 0x0 0xa 0x0 0x10 0x6 0x6 0x0 0x39 0x1
: D40
0xe1 0x9f 0x47 0x0 0x86 0x38 0x0 0xe3 0x30 0x1f 0x73 0x60 0x4a 0x0 0x0 0xa0 0x47 0xbc 0x1 0x1 0x0 0xcf 0x3 0x8 0xec 0xc0 0x38 0x0 0x79 0x7b 0x3c 0x31 0xc7 0x10 0x4 0x19 0xf1 0xaf 0xa7 0x61 0x0 0x7 0xd6 0x86 0x21 0x46 0x60 0x0 0x0 0xe8 0x69 0xda 0x88 0xda 0xe5 0x0 0x56 0x58 0xf1 0xfb 0x83 0x31 0x0 0x4d 0xe1 0x3f 0x38 0xb0 0x22 0x0 0xdf 0x3 0x8 0xec 0xc0 0x38 0x0 0x8b 0xe7 0x11 0xe0 0x60 0xe 0x0 0x35 0x8c 0x37 0x79 0x82 0x25 0x1 0xd 0xd0 0xd6 0x46 0x30 0x5 0x0 0x4a 0xfd 0xff 0x7 0x1b 0x90 0x2 0xb5 0x9f 0xb0 0xf 0xe 0x8 0x0 0x3b 0xa8 0x86 0x3c 0x67 0x3b 0x0 0xed 0x9 0x3e 0x38 0x84 0x3 0x0 0x2c 0x30 0x16 0x34 0xe 0x0 0x0 0xe3 0x34 0x1a 0xf 0xb0 0xe0 0x0 0xed 0x79 0x20 0x38 0x0 0x1c 0x0 0xec 0xc6 0x27 0x18 0x4d 0xe6 0x0 0xdc 0xb3 0x20 0x6c 0x41 0x1c 0x0 0x2c 0x6 0xd3 0x8 0x67 0x2 0x0 0x4d 0xe1 0x3f 0xe3 0x30 0xb 0x2 0xe6 0xc6 0x9e 0xd8 0xe 0xc6 0x10 0xeb 0x11 0x1a 0x8f 0x30 0xe0 0x0 0x37 0x78 0x5 0x9b 0x9e 0x53 0x0 0xe7 0x31 0x84 0xad 0x68 0x76 0x0 0x6f 0x87 0x21 0x94 0x7 0xa 0x0 0x39 0xac 0xc5 0xf3 0x9 0x70 0x0 0xfd 0x2 0x82 0xd5 0x63 0x4 0x0 0xf6 0x2 0x82 0xd5 0x6b 0x73 0x0 0xe3 0x30 0x1f 0x73 0x83 0x29 0x1 0x7c 0x8f 0x11 0xec 0xd0 0x26 0x0 0x7f 0x59 0x9e 0xb8 0xc1 0x14 0x0 0x4d 0xf1 0xff 0xc1 0x81 0x15 0x1 0xe3 0x34 0x1a 0x8f 0xb0 0xe0 0x0 0xec 0x30 0x1a 0x9f 0x6c 0x41 0x0 0x9f 0xb1 0xf1 0xc8 0xd 0xa6 0x4 0x7a 0xc0 0x2f 0xf0 0x1 0x10 0x0 0xec 0xf0 0x9 0x46 0x93 0x39 0x0 0xd 0xa6 0x7f 0x61 0xc1 0x56 0x0 0xf7 0x1b 0x43 0x4c 0xd9 0x8 0xe 0xe6 0x9e 0x8d 0xa0 0x9e 0x25 0x0 0xec 0x62 0x16 0x6c 0x3d 0xe2 0x0 0x67 0xdb 0xc1 0xb7 0x0 0xeb 0x0 0xea 0xf 0x2c 0x59 0x7 0xa 0x0 0xde 0x1a 0x36 0x62 0xcd 0x18 0x70 0x5a 0x62 0x7c 0xc2 0xf 0x28 0x0 0x6d 0xc 0x69 0xd3 0x80 0xd6 0x1 0xf6 0x82 0xd2 0xef 0xd0 0x80 0x0 0xeb 0x7 0x68 0x30 0xc7 0x5a 0x0 0x73 0x3 0xfa 0x6d 0xc1 0xe6 0x28 0xbb 0xe7 0x68 0x3 0xe2 0x86 0x0 0xbf 0xf5 0x30 0x1a 0x4c 0x18 0x7 0xd 0x3f 0xfe 0x9 0x7 0x56 0x4 0xdf 0xc6 0xf0 0xc8 0xd 0xa6 0x4 0x4b 0xea 0x63 0x2c 0xd8 0xa 0x0 0xd6 0x30 0x16 0xb4 0x7e 0x84 0x3 0x6b 0xde 0x80 0xa6 0x1f 0x50 0x2 0xd3 0x73 0xb4 0x1 0x71 0xe3 0x0 0x56 0x64 0x6d 0x40 0xd3 0xe6 0x0 0x6b 0x81 0xb5 0x64 0x2d 0xe0 0x0 0x2b 0xec 0xf2 0xb6 0x8c 0x61 0x1c 0xbf 0x1b 0x3c 0xb1 0x6 0x1c 0x5 0xb7 0x11 0xbe 0xc1 0x84 0x76 0x0 0x6a 0x6c 0x84 0x7f 0xb 0xa2 0x3 0x3b 0xd8 0x17 0xd6 0x60 0x18 0x7 0x5b 0x1e 0xe8 0x93 0x35 0x8c 0x3 0x5b 0xf1 0x4a 0x9f 0xb1 0x80 0x3 0x56 0xac 0xf 0xbe 0x1 0x39 0x0 0xf3 0x82 0x7d 0x60 0x67 0x2c 0x1 0x2e 0xd6 0x92 0xb5 0xbd 0xd0 0x1 0xb7 0x2d 0xc8 0x58 0x62 0x2d 0x0 0xa 0x3f 0x82 0xac 0xc5 0x1c 0x0 0xdc 0x33 0x20 0x6d 0x6c 0xc4 0x1 0x56 0x58 0xf1 0xfe 0x3c 0x3 0x2 0x4d 0x50 0x63 0x4f 0x34 0x13 0x0 0x37 0xcf 0x90 0x58 0xcd 0x4 0x1 0x6f 0xd 0x71 0xbf 0xc 0x3 0x1c 0x3f 0x42 0xef 0xa6 0xd 0x48 0x1 0xdc 0xf3 0xc9 0x80 0xdc 0x38 0x0 0xee 0x47 0x34 0xfe 0x89 0x1d 0xa 0xf8 0xc0 0x1f 0x66 0x1 0xe 0x0 0xc7 0x1f 0xfe 0xb0 0x62 0x2b 0x0 0xbb 0xbd 0x83 0x25 0xf 0x74 0x0 0xbe 0x46 0xcf 0x59 0x83 0x29 0x1 0xc7 0x3 0x87 0x6d 0x87 0x25 0x0 0xe6 0xb0 0xf7 0xc1 0x79 0x6 0x4 0xac 0x61 0x73 0xec 0x8b 0x11 0x4 0x6d 0xc 0x71 0x3b 0x2f 0xac 0x0 0xdf 0x19 0x9e 0xe6 0xc0 0x2e 0x2 0xec 0xb2 0xff 0xf 0x3e 0x0 0xa 0xf8 0x62 0xe 0xac 0x1f 0xe0 0x0 0x56 0xdc 0xff 0xa1 0xb0 0x15 0x0 0x7f 0x5e 0xd0 0xe8 0x81 0xe0 0x0 0xfc 0x61 0x5 0xd3 0xde 0xd1 0x1 0x66 0x41 0x7f 0x23 0x9e 0x25 0x0 0xed 0x79 0x20 0xe0 0xce 0x76 0x0 0xe9 0x6b 0x6e 0x3c 0x52 0x5c 0x0 0xbf 0x1b 0x3d 0xb1 0x6 0x9c 0x3 0x3f 0xb 0x70 0xd3 0x78 0xa4 0x3 0xd6 0x86 0x71 0xac 0x65 0xc 0x1 0xbb 0xe7 0x68 0x3 0xe2 0xc6 0x1 0xeb 0x37 0x86 0xd8 0x3b 0x38 0x38 0xbf 0x83 0x3d 0xf1 0x4 0x4b 0x4 0x4d 0xe1 0x3f 0xe3 0xc0 0x8a 0x0 0x67 0xdb 0xc1 0x5a 0x1e 0xe8 0x0 0xdd 0xcf 0x51 0x9a 0xc6 0xe9 0x0 0xdc 0xb3 0xe4 0xf9 0x0 0xe1 0x0 0x37 0xbf 0xc0 0x27 0xc0 0x71 0x0 0xac 0xc1 0xbb 0xf9 0xf 0x26 0x14 0xd3 0xc6 0x80 0x76 0xf 0x53 0x0 0xce 0x63 0x13 0xac 0xb0 0x15 0x0 0xbd 0x3d 0x80 0xe0 0x5b 0x10 0x0 0xb5 0x5 0x4f 0xe3 0xb0 0x15 0x0 0xbf 0xa2 0xa7 0x71 0x3c 0xb 0x2 0x37 0xbf 0xc0 0x7 0xb 0x50 0x0 0xb7 0xff 0x5 0xa2 0xc1 0x84 0x2 0xec 0xc6 0x27 0x2c 0x63 0x19 0x7 0x33 0xc1 0xbe 0x21 0xb9 0x21 0x1 0xb7 0x5f 0xf0 0x32 0x80 0x5d 0x4 0xb3 0x1e 0x59 0x3 0xca 0x88 0x0 0x56 0xf 0x2f 0x28 0x6c 0x5 0x0 0xb6 0x43 0x6b 0xc8 0x6f 0xb 0x10 0x37 0x6b 0x8 0x1b 0xa0 0x0 0x0 0xcf 0x2 0xb4 0x39 0xde 0x16 0x0 0xd7 0x7f 0x43 0x60 0x6b 0x40 0x1 0x7e 0x1a 0x3d 0xd1 0x6 0xa4 0x0 0x4d 0xf 0x4f 0xe3 0xc0 0xa 0x0 0x3b 0xd8 0x17 0x18 0xd1 0x76 0x0 0x6f 0x87 0xa6 0x4d 0x80 0x5 0x1 0x5b 0x31 0x3e 0xa6 0xc0 0x12 0x0 0x67 0x3 0x3e 0x66 0x87 0xad 0x8 0x76 0x1b 0x43 0xde 0xe 0xc6 0x10 0xf9 0x1 0x3e 0xb0 0x43 0x3b 0x0 0x19 0x8b 0xe7 0x13 0xe0 0x38 0x0 0xec 0xf2 0xb3 0x0 0x95 0x15 0x0 0x59 0x43 0x1a 0x33 0x1e 0x29 0x0 0x9a 0xdf 0x80 0x66 0xd 0x26 0x1c 0x56 0x58 0x1f 0x9c 0x67 0x9 0x0 0x37 0x16 0xb4 0x7d 0x3 0xa2 0x0 0x3 0xee 0xbf 0x8d 0x0 0x4b 0x0 0xdf 0x30 0xa2 0x69 0x3c 0x52 0x0 0x56 0xaf 0x7f 0xc2 0xc1 0x6 0x4 0x56 0x58 0xb1 0xff 0x83 0x5 0x1 0x76 0x83 0xf9 0x18 0xb 0xd6 0x1 0xdf 0x92 0xa7 0xd1 0x80 0xa6 0x0 0xbf 0xc2 0x9e 0xd0 0x78 0x44 0x1 0xb5 0x1 0x68 0xef 0xb0 0x5 0x1 0x5b 0xf1 0xa 0x32 0xbf 0xe0 0x0 0xfc 0x82 0x9 0x56 0xaf 0x71 0x0 0x58 0x3f 0x86 0xbc 0xc2 0x12 0x1 0x2d 0xf1 0x3e 0xe6 0xc0 0x88 0x0 0xec 0x60 0x34 0x1a 0x6f 0xc2 0x1 0xdc 0xb3 0x8c 0xb0 0x5 0x71 0x0 0x76 0x3 0xb4 0x7d 0x8f 0x11 0x1c 0x6b 0xf1 0x7c 0x80 0x60 0x1d 0x0 0x4d 0xf1 0x5e 0x38 0xc3 0x88 0x0 0x3c 0x80
: D41
0xf0 0x7 0x4 0x7 0x0 0xbd 0x7 0x4 0x80 0x5 0x0 0x0 0xc7 0x33 0x24 0xef 0x1 0xe0 0x0 0xdf 0x7 0x26 0x34 0x86 0x1c 0x0 0x73 0x90 0xdb 0x34 0x1e 0x39 0x0 0xeb 0x87 0x21 0x8c 0x8f 0x61 0x8 0xb5 0x27 0xf8 0x60 0x6c 0x44 0x1 0xbf 0xf5 0x80 0x36 0xd 0xb8 0xe 0xfe 0x36 0x3c 0xf2 0xd 0x8 0x7 0x37 0xde 0x60 0x7a 0x62 0xc1 0x5
: Sub13
i := D44
load v0
v0 += 1
v1 := v0
i := D44
load v0
return
: Sub14
v2 := 59
v1 := 26
i := D18
loop
v0 := 2
delay := v0
sprite v2 v1 6
Sub9
v2 += -5
if v2 != 39 then
again
i := D33
sprite v2 v1 6
return
: D42
0x82 0x2 0x2 0x3 0x0 0x40 0x84 0xc4 0xa4 0xa0 0xa0 0x64 0xa0 0x2 0x43 0x0 0x40 0x82 0x82 0x0 0x80 0x85 0xe5 0x90 0xe0 0x84 0xa0 0xc0 0xa4 0xa4 0x40 0x40 0xa4 0xa0 0x40 0x80 0x44 0xa0 0x20 0xc3 0x83 0x80 0x80 0x43 0x83 0xc0 0x80 0x44 0xa0 0x80 0x64 0x80 0x80 0x65 0x90 0x90 0x64 0x80 0x20 0xc4 0x20 0xa0 0x60 0xe4 0x20 0x80 0xe0 0x15 0x75 0x90 0x70 0x10 0xf6 0xa8 0xae 0xa8 0x50 0x50
: Sub15
i := L49
i += v8
load v5
: Sub16
v8 += 2
vA := -8
loop
v6 := 2
delay := v6
i := D43
i += v8
v8 += 1
load v0
if v0 == -1 then return
i := D42
i += v0
load v3
v6 := v0
v0 &= vA
v1 &= vA
v2 &= vA
v3 &= vA
i := D1
save v3
i := D1
sprite v4 v5 4
v4 += v6
v4 -= v0
: L49
Sub9
again
: D43
0x2a 0x1b 0x4a 0x3b 0x12 0x2c 0x2 0x2 0x2 0xff 0x2d 0x1b 0x7 0x12 0x32 0x2f 0x11 0xff 0x2a 0x1b 0x27 0x2f 0x2c 0x27 0x20 0xb 0xff 0x2a 0x1b 0x44 0x8 0x12 0x2c 0xb 0xff 0x30 0x1b 0x35 0x19 0xff 0x2d 0x1b 0x28 0x35 0x32 0x19 0xff 0x2c 0x1b 0x15 0x3b 0x32 0x19 0xff 0x2 0x1 0x32 0x6 0x35 0x35 0x38 0x2f 0x1 0x15 0x35 0x3b 0x27 0x43 0x38 0x2f 0x2c 0xff 0x1 0xa 0x2c 0x27 0x3b 0x2b 0x2b 0x12 0x32 0x1 0xe 0x3b 0x48 0x1 0x16 0x8 0x3f 0x3f 0x28 0x2f 0xff 0xc 0x18 0x16 0x27 0x2f 0x38 0x38 0x1 0x3b 0x1 0x19 0x2f 0x20 0xff 0xd 0x3 0x4a 0x2f 0x28 0x28 0x1 0x43 0x35 0x7 0x2f 0x11 0xff 0x1 0xa 0x8 0x7 0x28 0x35 0x32 0x19 0x2f 0x43 0x1 0x7 0x2f 0x1d 0x2c 0x1 0x38 0x2f 0x2c 0xff 0x2 0x11 0x16 0x3b 0x38 0x38 0x4a 0x35 0x27 0x43 0xd 0xff 0x30 0x1b 0x7 0x35 0xff 0x18 0x12 0x16 0x28 0x3b 0x20 0xff 0x14 0x18 0x8 0x7 0x28 0x35 0x32 0x19 0xff 0x1 0xa 0x35 0x27 0x12 0x24 0xd 0x1 0x7 0x35 0x15 0x3 0x2c 0x6 0x12 0x7 0x19 0x2b 0x8 0x7 0xff 0x2 0x11 0x2b 0x35 0x27 0x1 0x0 0x32 0x6 0x12 0x16 0x0 0x1 0x15 0x20 0x1 0x6 0x3b 0x16 0x2 0xff 0x60 0x13 0x24 0xb1 0x2d 0xbd 0xa8 0x4 0xf3 0x65 0x80 0xe 0x80 0xe 0x80 0x11 0x83 0x3e 0x83 0x3e 0x83 0x21 0x61 0xa 0x62 0x5 0x82 0x3 0x81 0x33 0xa2 0x8 0xf3 0x55
: D44
0x63 0x2b 0x61 0x10 0x62 0x0 0xa2 0x8 0xf2 0x1e 0xf0 0x65 0xf0 0x29 0x60 0x11 0x24 0xb1 0xd3 0x15 0x73 0x5 0x72 0x1 0x32 0x4 0x1e 0xf6 0x0 0xee
: Sub17
clear
v8 := 173
Sub15
Sub7
Sub15
v0 := 110
Sub8
return
: Sub18
i := D31
v0 := 16
loop
sprite v0 v1 6
v0 += 8
if v0 != 48 then
again
return
: L51
Sub7
v8 := 157
Sub15
Sub15
v1 := 17
Sub18
: L52
loop
v3 := key
if v3 == 5 then jump L53
if v3 == 8 then jump L54
if v3 == 10 then jump L55
jump L52
: L53
if v1 == 17 then jump L52
Sub18
v1 := 17
Sub18
jump L52
: L54
if v1 == 23 then jump L52
Sub18
v1 := 23
Sub18
again
: L55
v0 := 1
buzzer := v0
v2 := 5
loop
delay := v2
Sub18
v3 += -1
Sub9
if v3 != 0 then
again
if v1 == 17 then jump L3
clear
v4 := 2
v5 := 14
v8 := 140
Sub16
i := D45
load v8
i := D41
sprite v1 v3 1
: L57
v0 := key
i := D1
i += v7
v7 += 1
save v0
i := D41
sprite v1 v3 1
i := hex v0
sprite v1 v2 5
buzzer := v6
if v7 == 4 then jump L59
v1 += 5
i := D41
sprite v1 v3 1
loop
if v0 key then
again
jump L57
: L59
Sub14
i := D1
load v3
v1 ^= v4
v2 ^= v5
if v2 != v0 then jump L63
if v1 != v3 then jump L63
v1 := v0
v2 := v3
v0 >>= v0
v0 >>= v0
v3 >>= v3
v3 >>= v3
v1 &= v6
v2 &= v6
if v1 == 0 then jump L60
if v0 == 0 then jump L63
: L60
if v2 == 0 then jump L61
if v1 == 0 then jump L63
: L61
if v3 == 0 then jump L62
if v2 == 0 then jump L63
: L62
i := D28
save v3
Sub6
jump L3
: L63
buzzer := v4
Sub15
Sub7
0x12 : D45 0x24 # SMC: jump L1
0x2b 0xd 0x11 0xa 0x5 0x3 0x0 0x98
######################################################################
# INPUT: chip8/Chip-8 Games/Rush Hour [Hap, 2006].ch8
######################################################################
:proto L2 # 27A
:proto D5 # 2B7
:proto L4 # 2B8
:proto Sub1 # 2BC
:proto L5 # 2E6
:proto L6 # 3DC
:proto L7 # 3F8
:proto L8 # 408
:proto D6 # 40B
:proto Sub6 # 429
:proto L9 # 445
:proto L10 # 45F
:proto Sub7 # 485
:proto L11 # 4A5
:proto L12 # 4BF
:proto L15 # 51D
:proto L17 # 559
:proto L22 # 5BB
:proto L25 # 5FF
:proto L26 # 60D
:proto L27 # 61D
:proto L28 # 629
:proto L29 # 62F
:proto L30 # 631
:proto Sub8 # 635
:proto Sub9 # 63D
:proto L31 # 655
:proto Sub10 # 663
:proto L32 # 675
:proto L33 # 679
:proto L34 # 67F
:proto L35 # 697
:proto L36 # 69D
:proto L41 # 70B
:proto L42 # 715
:proto L43 # 723
:proto L44 # 73B
:proto Sub11 # 751
:proto Sub12 # 763
:proto L46 # 785
:proto D14 # 78D
:proto D15 # 78E
:proto D16 # 794
:proto D17 # 795
:proto D18 # 799
:proto D19 # 79D
:proto D20 # 7AB
:proto D21 # 7DF
:proto D22 # 7E3
:proto D23 # 7EC
:proto D24 # 7F0
:proto D25 # 7F6
:proto D26 # 7FA
:proto D27 # 7FB
:proto D28 # 7FE
:proto D29 # 802
:proto D31 # 812
:proto D32 # 816
:proto D33 # 828
:proto D34 # 857
:proto D36 # 868
:proto D37 # 874
:proto D38 # 888
:proto D39 # 891
:proto D40 # 895
:proto D41 # 896
:proto D42 # 8A0
:proto Sub13 # D46
:proto Sub14 # D54
:proto Sub15 # DBC
:proto L49 # DFA
:proto D45 # DFE
:proto L50 # ED0
:proto D46 # EF0
:proto L52 # F2C
:proto L54 # F48
:proto L55 # F54
:proto L56 # F60
:proto L60 # FAC
:proto L61 # FD6
:proto L62 # FDE
:proto L63 # FE6
:proto L64 # FEE
:proto D47 # FF5
: main
Sub13
if v0 == v1 then jump L15
jump L50
: D1
0x5b 0x62 0x79
: D2
0x20
: D3
0x68 0x61 0x70 0x5d 0x9a 0x0 0x88 0x0
: D4
0x84 0x35 0x88 0x0 0x88 0x6a 0x80 0x27 0x84 0x35 0x80 0x27 0x88 0x6a 0x84 0x19 0x22 0xea 0x12 0x7a 0x22 0xbc 0x23 0x46 0x12 0x38 0x23 0x16
: L1
Sub1
jump L2
0x22 0xea 0x23 0x46 0x3b 0xff 0x12 0x7a 0x66 0x0 0x65 0x7 0x26 0x63 0x3e 0xa 0x16 0x9b 0x0 0xe0 0x68 0x6e 0x2d 0xbc 0xa7 0xeb 0xf2 0x65 0x41 0x5 0x12 0x74 0xa8 0x2 0xf1 0x1e 0xf0 0x65 0x40 0x3 0x12 0x74 0x72 0xf6 0x50 0x20 0x12 0x74 0x70 0x1 0xa8 0x2 0xf1 0x1e 0xf0 0x55 0x2d 0xbc 0x2d 0x46 0x50 0x10 0x2e 0xde 0x15 0x51 0x22 0xea 0x23 0x16
: L2
i := D28
sprite vB vC 5
: L3
loop
i := D24
load v6
if v5 key then jump L6
if v2 key then v0 += 1
if v1 key then v0 += 2
if v3 key then v0 += 4
if v6 key then v0 += 8
if v0 == 0 then jump L4
vA := delay
if vA != 0 then jump L3
delay := v4
if v4 key then v5 := 2
i := D28
sprite vB vC 5
v5 |= vF
i := D6
i += v0
load v0
i := D5
save v0
0x12 : D5 0x30 # SMC: jump L1
: L4
delay := v0
again
: Sub1
if vB == 35 then return
if vC == 1 then return
if v5 != 3 then jump L5
Sub7
if vA == v9 then return
v0 := vA
v0 += -1
i := D32
sprite vB v0 1
sprite vB v0 1
if vF == 1 then return
v9 := vB
Sub12
vA += -5
Sub12
Sub6
: L5
vC += -5
return
0x4b 0x23 0x0 0xee 0x4c 0x1a 0x0 0xee 0x35 0x3 0x13 0x12 0x24 0x85 0x9a 0x90 0x0 0xee 0x79 0x5 0xa8 0x16 0xdb 0x91 0xdb 0x91 0x4f 0x1 0x0 0xee 0x89 0xb0 0x27 0x63 0x7a 0x5 0x27 0x63 0x24 0x29 0x7c 0x5 0x0 0xee 0x4b 0x5 0x0 0xee 0x35 0x3 0x13 0x3c 0x24 0xc9 0x99 0x60 0x0 0xee 0x80 0x90 0x70 0xff 0xa8 0x17 0xd0 0xc3 0xd0 0xc3 0x4f 0x1 0x0 0xee 0x8a 0xc0 0x27 0x63 0x79 0xf3 0x27 0x63 0x24 0x29 0x7b 0xfb 0x0 0xee 0x4c 0xb 0x13 0x4e 0x0 0xee 0x4b 0x1e 0x13 0x40 0x4b 0x23 0x0 0xee 0x35 0x3 0x13 0x72 0x24 0xc9 0x99 0x60 0x0 0xee 0x76 0x5 0xa8 0x17 0xd6 0xc3 0xd6 0xc3 0x4f 0x1 0x0 0xee 0x8a 0xc0 0x27 0x63 0x79 0xfd 0x27 0x63 0x24 0x29 0x46 0x23 0x13 0x76 0x7b 0x5 0x0 0xee 0x7b 0x5 0x86 0xb0 0x8b 0x90 0x7b 0xf3 0xa8 0x16 0xdb 0xc1 0xdb 0xc1 0x4f 0x0 0x13 0x92 0xa8 0x12 0xdb 0xc5 0xdb 0xc5 0x4f 0x1 0x13 0xb0 0x4b 0x5 0x13 0x9a 0x7b 0xfb 0x13 0x7e 0x8b 0x80 0x2d 0x54 0x68 0x9 0x37 0x0 0x68 0x16 0x47 0x1 0x68 0x10 0x2d 0xbc 0x6a 0xb 0x88 0xb0 0x66 0xff 0x63 0x0 0x8b 0x60 0x62 0xb 0xf2 0x18 0xf2 0x15 0x79 0xf8 0x27 0x63 0x73 0x1 0x23 0xd4 0x33 0xb 0x13 0xb8 0x0 0xee
: Sub2
v0 := 1
buzzer := v0
v8 := 44
Sub15
: Sub3
v0 := 33
: Sub4
delay := v0
: Sub5
loop
v0 := delay
if v0 != 0 then
again
return
: L6
loop
if v5 key then
again
i := D28
sprite vB vC 5
Sub14
v8 := 29
Sub15
v9 := key
v8 := 29
Sub15
if v9 != 10 then jump L7
Sub2
jump L36
: L7
Sub15
v9 := key
v8 := 37
Sub15
if v9 != 10 then jump L8
Sub2
jump L17
: L8
Sub14
0x12 : D6 0x7a # SMC: jump L2
0x30 0x36 0x28 0x24 0x30 0x34 0x28 0x78 0x2e 0x36 0x28 0x76 0x2e 0x34 0x28
: D7
0x0
: D8
0x0 0x0
: D9
0x36 0x3b 0x14 0x2c 0x31 0x8
: D10
0x0
: D11
0x0 0x0 0x2c 0x31
: Sub6
i := D8
load v4
buzzer := v5
vD += 1
i := D7
bcd vD
if v1 == 9 then jump L9
i := hex v1
sprite v3 v4 5
v1 += 1
i := hex v1
sprite v3 v4 5
return
: L9
i := hex v0
sprite v2 v4 5
i := hex v1
sprite v3 v4 5
i := D8
load v1
i := hex v0
sprite v2 v4 5
i := hex v1
sprite v3 v4 5
if vD == 100 then jump L10
return
: L10
i := D11
load v3
vD := 0
v7 += 1
if v7 == 100 then v7 := 0
i := D10
bcd v7
i := hex v0
sprite v2 v4 5
i := hex v1
sprite v3 v4 5
i := D11
load v1
i := hex v0
sprite v2 v4 5
i := hex v1
sprite v3 v4 5
return
: Sub7
v8 := 1
vA := vC
v9 := vC
i := D31
sprite vB v9 5
sprite vB v9 5
if vF == 1 then jump L11
v9 += 5
sprite vB v9 5
sprite vB v9 5
if vF == 1 then jump L11
v9 += 5
v8 += 2
return
: L11
i := D32
sprite vB vA 1
sprite vB vA 1
if vF == 1 then jump L12
vA += -5
sprite vB vA 1
sprite vB vA 1
if vF == 1 then jump L12
vA += -5
v8 += 2
return
: L12
v0 := v9
v0 -= vA
if v0 == 10 then v8 += 2
return
0x68 0x0 0x4c 0xb 0x78 0x4 0x89 0xb0 0x86 0xb0 0xa8 0x1a 0xd6 0xc3 0xd6 0xc3 0x4f 0x1 0x14 0xed 0x76 0x5 0xd6 0xc3 0xd6 0xc3 0x4f 0x1 0x14 0xed 0x76 0x5 0x78 0x2 0x0 0xee 0xa8 0x17 0xd9 0xc3 0xd9 0xc3 0x4f 0x1 0x15 0x7 0x79 0xfb 0xd9 0xc3 0xd9 0xc3 0x4f 0x1 0x15 0x7 0x79 0xfb 0x78 0x2 0x0 0xee 0x80 0x60 0x80 0x95 0x40 0xa 0x78 0x2 0x0 0xee
: L13
Sub14
buzzer := v9
v8 := 54
Sub15
v0 := 45
: L14
Sub4
: L15
clear
i := D40
load vA
loop
delay := v3
i := D41
i += v2
load v1
i := D37
i += v0
Sub5
sprite v4 vA 7
i += v1
sprite v9 vA 7
buzzer := vA
v4 += 8
v9 += -8
v2 += 2
if v2 != 8 then
again
v0 := 10
Sub4
v8 := 77
Sub15
Sub13
if v0 != v1 then jump L52
Sub3
v8 := 97
Sub15
v0 := key
: L17
0x0 : D12 0xe0 # SMC: clear
v0 := 15
Sub4
i := D39
load v1
i := L41
save v1
i := D25
load v5
i := D33
loop
sprite v5 v4 6
v5 += 8
if v5 != 64 then
again
loop
sprite v4 v0 13
sprite v4 v1 12
v4 += 8
if v4 != 40 then
again
: L20
v2 += 6
v1 := 8
i := D18
if v2 == 32 then i := D17
sprite v2 v1 5
i := D29
i += v3
v3 += 1
load v0
i := D27
if v0 != 0 then sprite v2 v1 4
if v2 == 32 then jump L22
v1 := 7
i := D29
i += v3
load v0
: L21
loop
v1 += 6
if v1 == 31 then jump L20
i := D16
sprite v2 v1 6
if v0 == 0 then jump L21
i := D26
sprite v2 v1 5
v0 += -1
again
: L22
v8 := 60
Sub15
i := D38
load vE
v7 := 10
: L23
Sub8
loop
i := D15
sprite v7 vB 1
Sub5
v9 := key
sprite v7 vB 1
if v9 == 1 then jump L13
if v9 == 10 then jump L34
v0 := 6
delay := v0
Sub9
v6 := 0
if v9 == 5 then jump L25
if v9 == 8 then jump L26
if v9 == 9 then jump L27
if v9 != 7 then jump L23
if v7 == 10 then jump L23
vC += -1
v7 += -6
v6 := -1
v5 := 116
jump L29
: L25
if vB == 10 then jump L23
vD += -1
vB += -6
v6 := -1
v5 := 186
jump L30
: L26
if vB == 28 then jump L23
if v7 == 34 then jump L23
vD += 1
vB += 6
v5 := 70
jump L30
: L27
if v7 == 34 then jump L23
if v7 != 28 then jump L28
if vB != 10 then jump L23
: L28
vC += 1
v7 += 6
v5 := 140
: L29
Sub10
: L30
Sub10
jump L23
: Sub8
v0 := vC
v1 := vD
i := D23
save v1
: Sub9
i := D9
load v5
if vE == 0 then jump L31
i := D12
sprite v0 v5 1
v5 += -2
v0 := vE
if v0 == 10 then v0 := 15
i := hex v0
sprite v1 v5 5
: L31
i := D23
load v1
i := hex v1
sprite v4 v5 5
i := hex v0
sprite v3 v5 5
return
: Sub10
i := L41
load v1
v2 := v6
v1 += v5
if vF == 1 then jump L32
if v6 == -1 then v0 += -1
jump L33
: L32
if v6 == 0 then v0 += 1
: L33
i := L41
save v1
return
: L34
if vF == 1 then jump L35
Sub14
buzzer := v9
v8 := 48
Sub15
v0 := 45
Sub4
v8 := 48
Sub15
Sub14
again
: L35
Sub14
Sub2
vE += 1
: L36
clear
Sub14
v8 := 0
Sub15
Sub9
v8 := vE
v8 += -1
v0 <<= v0
v8 += v0
v8 &= v5
v8 <<= v8
i := D3
load v7
i := D4
i += v8
load v3
v5 := v1
v7 := v3
i := D3
save v7
i := D21
load vC
i := D8
save v1
i := D11
save v1
i := D34
Sub11
v2 := 15
i := D36
Sub11
i := hex vC
loop
sprite v3 v5 5
v3 += 5
if v3 != 64 then
again
i := D20
sprite v4 vC 10
sprite v4 v6 10
sprite v4 v5 12
sprite vC vC 10
sprite vC v6 10
sprite vC v5 12
i := D33
loop
sprite v7 vA 15
sprite v7 v8 15
v7 += 8
if v7 != 36 then
again
i := D14
sprite v4 v6 7
: L39
v8 := -1
loop
if vB != 0 then jump L42
vB := 8
: L41
i := D42
i += vC
load v0
vD := v0
vC += 1
: L42
vB += -1
vD >>= vD
if vF == 0 then jump L43
v8 += 1
if v8 != 3 then
again
: L43
if v8 == -1 then jump L44
if vA == 11 then v8 += 4
Sub12
v8 >>= v8
if vF == 1 then jump L44
v9 += -3
v8 >>= v8
if vF == 1 then v9 += 5
: L44
v9 += 5
if v9 != 35 then jump L39
v9 := 5
vA += 5
if vA != 31 then jump L39
i := D22
load vD
Sub15
jump L8
: Sub11
v0 := 41
loop
sprite v0 v2 4
v0 += 8
if v0 == 65 then return
i += v7
again
: D13
0x2d 0x1f 0x1b 0x24
: Sub12
i := D2
i += v8
load v1
v0 := v8
v0 >>= v0
if vF == 1 then jump L46
i := D13
i += v0
load v0
i := D19
i += v1
sprite v9 vA 5
i += v0
v9 += 8
sprite v9 vA 5
return
: L46
i := D19
i += v1
sprite v9 vA 15
return
: D14
0xd0
: D15
0x80 0x80 0x80 0x80 0x80 0xd0
: D16
0x20
: D17
0xf8 0x88 0x88 0x88
: D18
0xf8 0x88 0x8c 0x88
: D19
0xf8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8
: D20
0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0xf8 0x88 0xa8 0xa8 0x88 0x88 0xa8 0xa8 0xa8 0x88 0x88 0xa8 0xa8 0x88 0xf8 0x88 0xc8 0xa8 0x98 0x88 0xc8 0xa8 0x98 0x88 0xc8 0xa8 0x98 0x88 0xf8 0x88 0xa8 0xa8 0x88 0x88 0xa8 0xa8 0x88 0xf8 0x0 0x0 0x0
: D21
0x0 0x0 0x1 0x2c
: D22
0x23 0x14 0xa 0x4 0x10 0x5 0x1 0x0 0x0
: D23
0x0 0x0 0x5 0x1
: D24
0x0 0x9 0x5 0x8 0xa 0x1
: D25
0x7 0x14 0x2 0x0
: D26
0x0
: D27
0x0 0x70 0x70
: D28
0x70 0xf8 0xf8 0xf8
: D29
0x70
: D30
0x0 0x0 0x0 0x0 0xf8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xd8 0xf8 0x0
: D31
0x0 0x0 0x0 0x0
: D32
0x20 0x0 0x0 0x80 0x0 0x0 0x8 0xff 0x88 0x91 0xa2 0xff 0x80 0xb3 0x80 0xff 0xff 0x80
: D33
0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xfd 0xfc 0x80 0xfc 0xfd 0xfe 0x8a 0x12 0x22 0xfe 0x2 0x9a 0x2 0xfe 0xfe 0x2 0xfe 0xfe 0xee 0xe6 0x2 0xe6 0xee 0xc0 0x40 0x40 0x40 0xc0 0xc0 0x40 0xc0 0xc0
: D34
0x83 0xe4 0x94 0xe3 0x33 0x8a 0xaa 0x1a 0x8 0x38 0x48
: D35
0x38 0x38 0x38 0x38 0x38 0x38
: D36
0xf1 0xaa 0xaa 0xa9 0x94 0x55 0x49 0x88 0x8c 0x50 0x4 0xd8
: D37
0xfc 0xe6 0xe6 0xe4 0xf8 0xec 0xe6 0xe6 0xe6 0xfe 0xe6 0xe6 0xe6 0xe6 0xe6 0xe6 0x7c 0xe6 0xe0 0x7c
: D38
0x6 0xe6 0x7c 0xe6 0xe6 0xe6 0xe6 0xe6 0x7c
: D39
0xa8 0xa0 0xa 0x1
: D40
0xa
: D41
0x0 0x0 0xa 0x0 0x10 0x6 0x6 0x0 0x39 0x1
: D42
0xe1 0x9f 0x47 0x0 0x86 0x38 0x0 0xe3 0x30 0x1f 0x73 0x60 0x4a 0x0 0x0 0xa0 0x47 0xbc 0x1 0x1 0x0 0xcf 0x3 0x8 0xec 0xc0 0x38 0x0 0x79 0x7b 0x3c 0x31 0xc7 0x10 0x4 0x19 0xf1 0xaf 0xa7 0x61 0x0 0x7 0xd6 0x86 0x21 0x46 0x60 0x0 0x0 0xe8 0x69 0xda 0x88 0xda 0xe5 0x0 0x56 0x58 0xf1 0xfb 0x83 0x31 0x0 0x4d 0xe1 0x3f 0x38 0xb0 0x22 0x0 0xdf 0x3 0x8 0xec 0xc0 0x38 0x0 0x8b 0xe7 0x11 0xe0 0x60 0xe 0x0 0x35 0x8c 0x37 0x79 0x82 0x25 0x1 0xd 0xd0 0xd6 0x46 0x30 0x5 0x0 0x4a 0xfd 0xff 0x7 0x1b 0x90 0x2 0xb5 0x9f 0xb0 0xf 0xe 0x8 0x0 0x3b 0xa8 0x86 0x3c 0x67 0x3b 0x0 0xed 0x9 0x3e 0x38 0x84 0x3 0x0 0x2c 0x30 0x16 0x34 0xe 0x0 0x0 0xe3 0x34 0x1a 0xf 0xb0 0xe0 0x0 0xed 0x79 0x20 0x38 0x0 0x1c 0x0 0xec 0xc6 0x27 0x18 0x4d 0xe6 0x0 0xdc 0xb3 0x20 0x6c 0x41 0x1c 0x0 0x2c 0x6 0xd3 0x8 0x67 0x2 0x0 0x4d 0xe1 0x3f 0xe3 0x30 0xb 0x2 0xe6 0xc6 0x9e 0xd8 0xe 0xc6 0x10 0xeb 0x11 0x1a 0x8f 0x30 0xe0 0x0 0x37 0x78 0x5 0x9b 0x9e 0x53 0x0 0xe7 0x31 0x84 0xad 0x68 0x76 0x0 0x6f 0x87 0x21 0x94 0x7 0xa 0x0 0x39 0xac 0xc5 0xf3 0x9 0x70 0x0 0xfd 0x2 0x82 0xd5 0x63 0x4 0x0 0xf6 0x2 0x82 0xd5 0x6b 0x73 0x0 0xe3 0x30 0x1f 0x73 0x83 0x29 0x1 0x7c 0x8f 0x11 0xec 0xd0 0x26 0x0 0x7f 0x59 0x9e 0xb8 0xc1 0x14 0x0 0x4d 0xf1 0xff 0xc1 0x81 0x15 0x1 0xe3 0x34 0x1a 0x8f 0xb0 0xe0 0x0 0xec 0x30 0x1a 0x9f 0x6c 0x41 0x0 0x9f 0xb1 0xf1 0xc8 0xd 0xa6 0x4 0x7a 0xc0 0x2f 0xf0 0x1 0x10 0x0 0xec 0xf0 0x9 0x46 0x93 0x39 0x0 0xd 0xa6 0x7f 0x61 0xc1 0x56 0x0 0xf7 0x1b 0x43 0x4c 0xd9 0x8 0xe 0xe6 0x9e 0x8d 0xa0 0x9e 0x25 0x0 0xec 0x62 0x16 0x6c 0x3d 0xe2 0x0 0x67 0xdb 0xc1 0xb7 0x0 0xeb 0x0 0xea 0xf 0x2c 0x59 0x7 0xa 0x0 0xde 0x1a 0x36 0x62 0xcd 0x18 0x70 0x5a 0x62 0x7c 0xc2 0xf 0x28 0x0 0x6d 0xc 0x69 0xd3 0x80 0xd6 0x1 0xf6 0x82 0xd2 0xef 0xd0 0x80 0x0 0xeb 0x7 0x68 0x30 0xc7 0x5a 0x0 0x73 0x3 0xfa 0x6d 0xc1 0xe6 0x28 0xbb 0xe7 0x68 0x3 0xe2 0x86 0x0 0xbf 0xf5 0x30 0x1a 0x4c 0x18 0x7 0xd 0x3f 0xfe 0x9 0x7 0x56 0x4 0xdf 0xc6 0xf0 0xc8 0xd 0xa6 0x4 0x4b 0xea 0x63 0x2c 0xd8 0xa 0x0 0xd6 0x30 0x16 0xb4 0x7e 0x84 0x3 0x6b 0xde 0x80 0xa6 0x1f 0x50 0x2 0xd3 0x73 0xb4 0x1 0x71 0xe3 0x0 0x56 0x64 0x6d 0x40 0xd3 0xe6 0x0 0x6b 0x81 0xb5 0x64 0x2d 0xe0 0x0 0x2b 0xec 0xf2 0xb6 0x8c 0x61 0x1c 0xbf 0x1b 0x3c 0xb1 0x6 0x1c 0x5 0xb7 0x11 0xbe 0xc1 0x84 0x76 0x0 0x6a 0x6c 0x84 0x7f 0xb 0xa2 0x3 0x3b 0xd8 0x17 0xd6 0x60 0x18 0x7 0x5b 0x1e 0xe8 0x93 0x35 0x8c 0x3 0x5b 0xf1 0x4a 0x9f 0xb1 0x80 0x3 0x56 0xac 0xf 0xbe 0x1 0x39 0x0 0xf3 0x82 0x7d 0x60 0x67 0x2c 0x1 0x2e 0xd6 0x92 0xb5 0xbd 0xd0 0x1 0xb7 0x2d 0xc8 0x58 0x62 0x2d 0x0 0xa 0x3f 0x82 0xac 0xc5 0x1c 0x0 0xdc 0x33 0x20 0x6d 0x6c 0xc4 0x1 0x56 0x58 0xf1 0xfe 0x3c 0x3 0x2 0x4d 0x50 0x63 0x4f 0x34 0x13 0x0 0x37 0xcf 0x90 0x58 0xcd 0x4 0x1 0x6f 0xd 0x71 0xbf 0xc 0x3 0x1c 0x3f 0x42 0xef 0xa6 0xd 0x48 0x1 0xdc 0xf3 0xc9 0x80 0xdc 0x38 0x0 0xee 0x47 0x34 0xfe 0x89 0x1d 0xa 0xf8 0xc0 0x1f 0x66 0x1 0xe 0x0 0xc7 0x1f 0xfe 0xb0 0x62 0x2b 0x0 0xbb 0xbd 0x83 0x25 0xf 0x74 0x0 0xbe 0x46 0xcf 0x59 0x83 0x29 0x1 0xc7 0x3 0x87 0x6d 0x87 0x25 0x0 0xe6 0xb0 0xf7 0xc1 0x79 0x6 0x4 0xac 0x61 0x73 0xec 0x8b 0x11 0x4 0x6d 0xc 0x71 0x3b 0x2f 0xac 0x0 0xdf 0x19 0x9e 0xe6 0xc0 0x2e 0x2 0xec 0xb2 0xff 0xf 0x3e 0x0 0xa 0xf8 0x62 0xe 0xac 0x1f 0xe0 0x0 0x56 0xdc 0xff 0xa1 0xb0 0x15 0x0 0x7f 0x5e 0xd0 0xe8 0x81 0xe0 0x0 0xfc 0x61 0x5 0xd3 0xde 0xd1 0x1 0x66 0x41 0x7f 0x23 0x9e 0x25 0x0 0xed 0x79 0x20 0xe0 0xce 0x76 0x0 0xe9 0x6b 0x6e 0x3c 0x52 0x5c 0x0 0xbf 0x1b 0x3d 0xb1 0x6 0x9c 0x3 0x3f 0xb 0x70 0xd3 0x78 0xa4 0x3 0xd6 0x86 0x71 0xac 0x65 0xc 0x1 0xbb 0xe7 0x68 0x3 0xe2 0xc6 0x1 0xeb 0x37 0x86 0xd8 0x3b 0x38 0x38 0xbf 0x83 0x3d 0xf1 0x4 0x4b 0x4 0x4d 0xe1 0x3f 0xe3 0xc0 0x8a 0x0 0x67 0xdb 0xc1 0x5a 0x1e 0xe8 0x0 0xdd 0xcf 0x51 0x9a 0xc6 0xe9 0x0 0xdc 0xb3 0xe4 0xf9 0x0 0xe1 0x0 0x37 0xbf 0xc0 0x27 0xc0 0x71 0x0 0xac 0xc1 0xbb 0xf9 0xf 0x26 0x14 0xd3 0xc6 0x80 0x76 0xf 0x53 0x0 0xce 0x63 0x13 0xac 0xb0 0x15 0x0 0xbd 0x3d 0x80 0xe0 0x5b 0x10 0x0 0xb5 0x5 0x4f 0xe3 0xb0 0x15 0x0 0xbf 0xa2 0xa7 0x71 0x3c 0xb 0x2 0x37 0xbf 0xc0 0x7 0xb 0x50 0x0 0xb7 0xff 0x5 0xa2 0xc1 0x84 0x2 0xec 0xc6 0x27 0x2c 0x63 0x19 0x7 0x33 0xc1 0xbe 0x21 0xb9 0x21 0x1 0xb7 0x5f 0xf0 0x32 0x80 0x5d 0x4 0xb3 0x1e 0x59 0x3 0xca 0x88 0x0 0x56 0xf 0x2f 0x28 0x6c 0x5 0x0 0xb6 0x43 0x6b 0xc8 0x6f 0xb 0x10 0x37 0x6b 0x8 0x1b 0xa0 0x0 0x0 0xcf 0x2 0xb4 0x39 0xde 0x16 0x0 0xd7 0x7f 0x43 0x60 0x6b 0x40 0x1 0x7e 0x1a 0x3d 0xd1 0x6 0xa4 0x0 0x4d 0xf 0x4f 0xe3 0xc0 0xa 0x0 0x3b 0xd8 0x17 0x18 0xd1 0x76 0x0 0x6f 0x87 0xa6 0x4d 0x80 0x5 0x1 0x5b 0x31 0x3e 0xa6 0xc0 0x12 0x0 0x67 0x3 0x3e 0x66 0x87 0xad 0x8 0x76 0x1b 0x43 0xde 0xe 0xc6 0x10 0xf9 0x1 0x3e 0xb0 0x43 0x3b 0x0 0x19 0x8b 0xe7 0x13 0xe0 0x38 0x0 0xec 0xf2 0xb3 0x0 0x95 0x15 0x0 0x59 0x43 0x1a 0x33 0x1e 0x29 0x0 0x9a 0xdf 0x80 0x66 0xd 0x26 0x1c 0x56 0x58 0x1f 0x9c 0x67 0x9 0x0 0x37 0x16 0xb4 0x7d 0x3 0xa2 0x0 0x3 0xee 0xbf 0x8d 0x0 0x4b 0x0 0xdf 0x30 0xa2 0x69 0x3c 0x52 0x0 0x56 0xaf 0x7f 0xc2 0xc1 0x6 0x4 0x56 0x58 0xb1 0xff 0x83 0x5 0x1 0x76 0x83 0xf9 0x18 0xb 0xd6 0x1 0xdf 0x92 0xa7 0xd1 0x80 0xa6 0x0 0xbf 0xc2 0x9e 0xd0 0x78 0x44 0x1 0xb5 0x1 0x68 0xef 0xb0 0x5 0x1 0x5b 0xf1 0xa 0x32 0xbf 0xe0 0x0 0xfc 0x82 0x9 0x56 0xaf 0x71 0x0 0x58 0x3f 0x86 0xbc 0xc2 0x12 0x1 0x2d 0xf1 0x3e 0xe6 0xc0 0x88 0x0 0xec 0x60 0x34 0x1a 0x6f 0xc2 0x1 0xdc 0xb3 0x8c 0xb0 0x5 0x71 0x0 0x76 0x3 0xb4 0x7d 0x8f 0x11 0x1c 0x6b 0xf1 0x7c 0x80 0x60 0x1d 0x0 0x4d 0xf1 0x5e 0x38 0xc3 0x88 0x0 0x3c 0x80
: D43
0xf0 0x7 0x4 0x7 0x0 0xbd 0x7 0x4 0x80 0x5 0x0 0x0 0xc7 0x33 0x24 0xef 0x1 0xe0 0x0 0xdf 0x7 0x26 0x34 0x86 0x1c 0x0 0x73 0x90 0xdb 0x34 0x1e 0x39 0x0 0xeb 0x87 0x21 0x8c 0x8f 0x61 0x8 0xb5 0x27 0xf8 0x60 0x6c 0x44 0x1 0xbf 0xf5 0x80 0x36 0xd 0xb8 0xe 0xfe 0x36 0x3c 0xf2 0xd 0x8 0x7 0x37 0xde 0x60 0x7a 0x62 0xc1 0x5
: Sub13
i := D46
load v0
v0 += 1
v1 := v0
i := D46
load v0
return
: Sub14
v2 := 59
v1 := 26
i := D20
loop
v0 := 2
delay := v0
sprite v2 v1 6
Sub5
v2 += -5
if v2 != 39 then
again
i := D35
sprite v2 v1 6
return
: D44
0x82 0x2 0x2 0x3 0x0 0x40 0x84 0xc4 0xa4 0xa0 0xa0 0x64 0xa0 0x2 0x43 0x0 0x40 0x82 0x82 0x0 0x80 0x85 0xe5 0x90 0xe0 0x84 0xa0 0xc0 0xa4 0xa4 0x40 0x40 0xa4 0xa0 0x40 0x80 0x44 0xa0 0x20 0xc3 0x83 0x80 0x80 0x43 0x83 0xc0 0x80 0x44 0xa0 0x80 0x64 0x80 0x80 0x65 0x90 0x90 0x64 0x80 0x20 0xc4 0x20 0xa0 0x60 0xe4 0x20 0x80 0xe0 0x15 0x75 0x90 0x70 0x10 0xf6 0xa8 0xae 0xa8 0x50 0x50
: Sub15
i := L49
i += v8
load v5
: Sub16
v8 += 2
vA := -8
loop
v6 := 3
delay := v6
i := D45
i += v8
v8 += 1
load v0
v0 <<= v0
v6 := vF
v0 >>= v0
i := D44
i += v0
load v3
if v6 == 0 then v6 := v0
v0 &= vA
v1 &= vA
v2 &= vA
v3 &= vA
i := D1
save v3
i := D1
sprite v4 v5 4
if v6 == 1 then return
v4 += v6
v4 -= v0
: L49
Sub5
again
: D45
0x2a 0x1b 0x4a 0x3b 0x12 0x2c 0x2 0x2 0x82 0x2d 0x1b 0x7 0x12 0x32 0x2f 0x91 0x2d 0x1b 0x32 0x35 0x35 0xa8 0x2d 0x1b 0x16 0x2b 0x2b 0x2c 0x91 0x2a 0x1b 0x27 0x2f 0x2c 0x27 0x20 0x8b 0x2a 0x1b 0x44 0x8 0x12 0x2c 0x8b 0x30 0x1b 0x35 0x99 0x2d 0x1b 0x28 0x35 0x32 0x99 0x2c 0x1b 0x15 0x3b 0x32 0x99 0x2 0x1 0x32 0x6 0x35 0x35 0x38 0x2f 0x1 0x15 0x35 0x3b 0x27 0x43 0x38 0x2f 0xac 0x1 0xa 0x2c 0x27 0x3b 0x2b 0x2b 0x12 0x32 0x1 0xe 0x3b 0x48 0x1 0x16 0x8 0x3f 0x3f 0x28 0xaf 0xc 0x18 0x16 0x27 0x2f 0x38 0x38 0x1 0x3b 0x1 0x19 0x2f 0xa0 0xd 0x3 0x4a 0x2f 0x28 0x28 0x1 0x43 0x35 0x7 0x2f 0x91 0x1 0xa 0x8 0x7 0x28 0x35 0x32 0x19 0x2f 0x43 0x1 0x7 0x2f 0x1d 0x2c 0x1 0x38 0x2f 0xac 0x2 0x11 0x16 0x3b 0x38 0x38 0x4a 0x35 0x27 0x43 0x8d 0x30 0x1b 0x7 0xb5 0x18 0x12 0x16 0x28 0x3b 0xa0 0x14 0x18 0x8 0x7 0x28 0x35 0x32 0x99 0x1 0xa 0x35 0x27 0x12 0x24 0xd 0x1 0x7 0x35 0x15 0x3 0x2c 0x6 0x12 0x7 0x19 0x2b 0x8 0x87 0x2 0x11 0x2b 0x35 0x27 0x1 0x0 0x32 0x6 0x12 0x16 0x0 0x1 0x15 0x20 0x1 0x6 0x3b 0x16 0x82
: L50
clear
v8 := 170
Sub15
Sub3
Sub15
v0 := 110
jump L14
0x60 0x13 0x23 0xd2 0x2d 0xbc 0xa8 0x3 0xf3 0x65 0x80 0xe 0x80 0xe 0x80 0x11 0x83 0x3e
: D46
0x83 0x3e 0x83 0x21 0x61 0xa 0x62 0x5 0x82 0x3 0x81 0x33 0xa2 0x8 0xf3 0x55 0x63 0x2b 0x61 0x10 0x62 0x0 0xa2 0x8 0xf2 0x1e 0xf0 0x65 0xf0 0x29 0x60 0x11 0x23 0xd2 0xd3 0x15 0x73 0x5 0x72 0x1 0x32 0x4 0x1f 0x6 0x0 0xee
: Sub17
i := D33
v0 := 16
loop
sprite v0 v1 6
v0 += 8
if v0 != 48 then
again
return
: L52
Sub3
v8 := 156
Sub15
Sub15
v1 := 17
Sub17
: L53
loop
v3 := key
if v3 == 5 then jump L54
if v3 == 8 then jump L55
if v3 == 10 then jump L56
jump L53
: L54
if v1 == 17 then jump L53
Sub17
v1 := 17
Sub17
jump L53
: L55
if v1 == 23 then jump L53
Sub17
v1 := 23
Sub17
again
: L56
v0 := 1
buzzer := v0
v2 := 5
loop
delay := v2
Sub17
v3 += -1
Sub5
if v3 != 0 then
again
if v1 == 17 then jump L17
clear
v4 := 2
v5 := 14
v8 := 141
Sub16
i := D47
load v8
i := D43
sprite v1 v3 1
: L58
v0 := key
i := D1
i += v7
v7 += 1
save v0
i := D43
sprite v1 v3 1
i := hex v0
sprite v1 v2 5
buzzer := v6
if v7 == 4 then jump L60
v1 += 5
i := D43
sprite v1 v3 1
loop
if v0 key then
again
jump L58
: L60
Sub14
i := D1
load v3
v1 ^= v4
v2 ^= v5
if v2 != v0 then jump L64
if v1 != v3 then jump L64
v1 := v0
v2 := v3
v0 >>= v0
v0 >>= v0
v3 >>= v3
v3 >>= v3
v1 &= v6
v2 &= v6
if v1 == 0 then jump L61
if v0 == 0 then jump L64
: L61
if v2 == 0 then jump L62
if v1 == 0 then jump L64
: L62
if v3 == 0 then jump L63
if v2 == 0 then jump L64
: L63
i := D30
save v3
Sub2
jump L17
: L64
buzzer := v4
Sub15
Sub3
0x15 : D47 0x1d # SMC: jump L15
0x2b 0xd 0x11 0xa 0x5 0x3 0x0 0x98
######################################################################
# INPUT: chip8/Chip-8 Games/Russian Roulette [Carmelo Cortez, 1978].ch8
######################################################################
:proto L3 # 232
:proto L5 # 246
:proto D1 # 25A
:proto D2 # 25F
:proto D3 # 264
:proto D4 # 269
:proto D5 # 26E
:proto D6 # 273
:proto D7 # 278
:proto D8 # 27D
:proto D9 # 282
:proto Sub1 # 288
:proto D10 # 292
: main
v5 := 10
: L1
Sub1
v2 := key
v3 := random 0b101
if v3 == 4 then jump L3
i := D1
v1 := 16
sprite v1 v3 5
i := D2
v1 := 24
sprite v1 v3 5
i := D3
v1 := 32
sprite v1 v3 5
v4 := 48
delay := v4
loop
v4 := delay
if v4 != 0 then
again
clear
v5 += -1
if v5 == 0 then jump L5
jump L1
: L3
i := D4
v1 := 16
sprite v1 v3 5
i := D5
v1 := 24
sprite v1 v3 5
i := D6
v1 := 32
sprite v1 v3 5
loop
again
: L5
i := D7
v1 := 16
sprite v1 v3 5
i := D8
v1 := 24
sprite v1 v3 5
i := D9
v1 := 32
sprite v1 v3 5
loop
again
: D1
0xe8 0x88 0x88 0x88 0xee
: D2
0xee 0x48 0x48 0x48 0xee
: D3
0xaa 0xca 0xca 0xc0 0xaa
: D4
0xf7 0x55 0x77 0x55 0xf5
: D5
0x65 0x65 0x55 0x4d 0x4d
: D6
0xd5 0x15 0x15 0x40 0xd5
: D7
0x8b 0x89 0x89 0xa9 0xdb
: D8
0xb2 0x32 0x2a 0x26 0xa2
: D9
0xaa 0xaa 0xaa 0x0 0xaa 0x20
: Sub1
i := D10
v6 := 24
v7 := 16
sprite v6 v7 7
return
: D10
0x8 0x2a 0x7f 0x63 0x6b 0x63 0x7f 0x7f 0x63 0x7f
######################################################################
# INPUT: chip8/Chip-8 Games/Sequence Shoot [Joyce Weisbecker].ch8
######################################################################
:proto L3 # 25A
:proto Sub1 # 270
:proto Sub2 # 2AC
:proto L8 # 2BE
:proto L9 # 2D2
:proto L11 # 2F0
:proto Sub3 # 2F6
:proto Sub4 # 312
:proto Sub5 # 318
:proto D1 # 321
:proto D2 # 322
:proto D3 # 326
:proto D4 # 332
:proto D5 # 33B
:proto L12 # 340
:proto D6 # 380
:proto D7 # 400
: main
clear
vE := 0
vD := 0
i := D3
v8 := 8
v9 := 11
sprite v8 v9 12
i := D4
v9 := 23
sprite v8 v9 9
i := D5
v8 := 16
v9 := 19
sprite v8 v9 2
v8 := 50
v9 := 2
Sub4
v9 := 10
Sub4
v9 := 18
Sub4
v9 := 26
Sub4
Sub3
v1 := -1
: L1
Sub5
vC := 0
vD += 1
vA := vD
loop
Sub1
vA += -1
if vA != 0 then
again
v0 := 0
i := D7
i += vC
save v0
Sub2
if vA != 0 then jump L3
Sub3
vE += vD
Sub3
if vE != 22 then jump L1
: L3
v2 := 18
: L4
buzzer := v2
v1 := 26
delay := v1
loop
v1 := delay
if v1 != 0 then
again
v2 += -2
if v2 != 0 then jump L4
loop
again
: Sub1
vB := random 0b11
vB += 12
v0 := vB
i := D7
i += vC
save v0
vC += 1
v1 := -1
Sub5
v8 := 50
v9 := 26
if vB == 12 then v9 := 2
if vB == 13 then v9 := 10
if vB == 14 then v9 := 18
Sub4
v1 := 96
Sub5
Sub4
v1 := 15
Sub5
Sub4
v1 := 15
Sub5
Sub4
v1 := 15
Sub5
return
: Sub2
vA := 0
: L7
i := D7
i += vA
vA += 1
load v0
if v0 != 0 then jump L8
vA := 0
return
: L8
vB := key
v1 := 2
buzzer := v2
vB -= v0
if vB == 0 then jump L9
v1 := -1
Sub5
vA := 1
return
: L9
v0 += -14
v8 := 19
v9 := 19
i := D1
loop
sprite v8 v9 1
v1 := 8
Sub5
if vF == 1 then jump L11
sprite v8 v9 1
v1 := 8
Sub5
v8 += 4
v9 += v0
again
: L11
v1 := 2
buzzer := v1
jump L12
: Sub3
i := D6
bcd vE
load v2
i := hex v0
v8 := 16
v9 := 2
sprite v8 v9 5
i := hex v1
v8 += 6
sprite v8 v9 5
i := hex v2
v8 += 6
sprite v8 v9 5
return
: Sub4
i := D2
sprite v8 v9 4
return
: Sub5
loop
v1 += -1
if v1 != 0 then
again
return
0x1
: D1
0x80
: D2
0xf0 0xf0 0xf0 0xf0
: D3
0x7c 0x7c 0xfe 0x7c 0x7c 0x70 0x7c 0x38 0x7f 0x7f 0x7c 0x7c
: D4
0x7c 0x7c 0x7c 0x38 0x38 0x38 0x38 0x38 0x3e
: D5
0xe0 0x80 0x0 0xd4 0xd4
: L12
sprite v8 v9 1
jump L7
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D7
######################################################################
# INPUT: chip8/Chip-8 Games/Shooting Stars [Philip Baltzer, 1978].ch8
######################################################################
:proto L5 # 240
:proto L6 # 244
:proto L7 # 248
:proto L8 # 24C
:proto L9 # 24E
:proto L10 # 25C
:proto D1 # 270
:proto L11 # 272
:proto L12 # 294
:proto D2 # 2A0
:proto L15 # 2B0
:proto L17 # 2BE
:proto D3 # 2C5
: main
v0 := 0
: L1
vE := 0
v1 := 24
v2 := 14
i := D3
sprite v1 v2 6
v3 := random 0b110000
v4 := random 0b11010
loop
i := D3
sprite v3 v4 3
if vF != 0 then jump L12
if vE != 0 then jump L9
v1 := random 0b111111
v2 := random 0b11111
v9 := random 0b11
v9 += 1
vA := random 0b11
vA += -4
vB := v9
vC := random 0b1
if vC != 0 then jump L6
: L3
vC := random 0b1
if vC != 0 then jump L7
: L4
vC := random 0b1
if vC != 0 then jump L5
v1 := 0
jump L8
: L5
v2 := 0
jump L8
: L6
v9 := vA
jump L3
: L7
vA := vB
jump L4
: L8
vE := -1
: L9
v1 += v9
v2 += vA
vD := 8
vB += vD
if vF == 0 then jump L10
vE := 0
: L10
i := D1
sprite v1 v2 1
if vF == 0 then jump L11
v0 += -1
i := D3
sprite v3 v4 3
i := D2
sprite v3 v4 5
jump L17
: D1
0x2 0x0
: L11
i := D3
sprite v3 v4 3
v5 := 2
v6 := 4
v7 := 6
v8 := 8
if v5 key then v4 += -1
if v6 key then v3 += -1
if v7 key then v3 += 1
if v8 key then v4 += 1
i := D1
sprite v1 v2 1
again
: L12
i := D2
sprite v1 v2 5
v0 += 1
: L13
i := hex v0
sprite v8 v6 5
jump L15
: D2
0x88 0x50 0x0 0x50 0x88 0x0 0x0 0x0
: L14
if v5 != v0 then jump L13
v0 := 0
jump L13
: L15
v5 := 64
delay := v5
loop
v5 := delay
if v5 != 0 then
again
clear
jump L1
: L17
v5 := -1
jump L14
0x0 0x0 0x0
: D3
0x3c 0x7e 0xff 0xff 0x7e 0x3c 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Slide [Joyce Weisbecker].ch8
######################################################################
:proto Sub1 # 258
:proto L7 # 292
:proto L11 # 2D4
:proto L12 # 2D6
:proto L14 # 2F8
:proto Sub2 # 30E
:proto Sub3 # 328
:proto L17 # 338
:proto Sub4 # 34C
:proto D1 # 357
:proto D2 # 359
:proto D3 # 35C
:proto D4 # 360
:proto D5 # 361
:proto L19 # 366
:proto L21 # 374
:proto Sub5 # 37A
: main
clear
i := D4
v8 := 0
v9 := 0
v2 := 1
Sub2
v2 := -1
Sub2
vA := 0
vB := 0
v4 := 6
vC := 0
Sub3
vC := 1
Sub3
i := D2
vD := 40
vE := 18
sprite vD vE 3
vD := 48
vE := 14
sprite vD vE 3
vE := 22
sprite vD vE 3
vD := 56
vE := 10
sprite vD vE 3
vE := 26
sprite vD vE 3
loop
vC := 0
vD := 3
Sub1
vC := 1
vD := 59
Sub1
v4 += -1
if v4 != 0 then
again
v2 := 15
: L2
buzzer := v2
v1 := 24
delay := v1
jump L19
0x12 0x56
: Sub1
v2 := 4
Sub4
i := D1
vE := 3
sprite vD vE 2
v5 := 3
: L3
v6 := 0
vE := 112
i := D3
v8 := 5
v9 := 9
sprite v8 v9 4
: L4
vD := 1
: L5
v1 := 17
loop
v2 := random 0b11000
v2 += 8
Sub4
sprite v8 v9 4
v9 += vD
sprite v8 v9 4
v1 += -1
if v0 key then jump L7
if v1 != 0 then
again
if vD == -1 then jump L4
vD := -1
jump L5
: L7
v2 := 2
buzzer := v2
: L8
loop
v2 := 16
Sub4
if vE != 0 then vE += -2
if v0 key then jump L8
v2 := 16
Sub4
if v0 key then
again
v2 := 4
Sub4
: L9
loop
v3 := vE
v3 += vE
v2 := v3
Sub4
vE += 2
sprite v8 v9 4
v8 += 1
sprite v8 v9 4
if vF == 1 then jump L14
if vE != 112 then jump L9
: L10
v2 := 128
Sub5
Sub3
if vC != 0 then jump L11
vA += v6
jump L12
: L11
vB += v6
: L12
Sub3
: L13
i := D3
sprite v8 v9 4
v2 := 32
buzzer := v2
v5 += -1
if v5 != 0 then jump L3
i := D1
vE := 3
vD := 3
if vC != 0 then vD := 59
sprite vD vE 2
v2 := 4
Sub4
return
: L14
v2 := 2
buzzer := v2
if v8 == 60 then jump L13
if v8 == 37 then v6 += 2
if v8 == 45 then v6 += 4
if v8 == 53 then v6 += 8
jump L21
: Sub2
v1 := 63
loop
sprite v8 v9 1
v1 += -1
v8 += v2
if v1 != 0 then
again
v1 := 31
loop
sprite v8 v9 1
v1 += -1
v9 += v2
if v1 != 0 then
again
return
: Sub3
i := D5
vE := 2
vD := 8
bcd vA
if vC == 0 then jump L17
vD := 40
bcd vB
: L17
load v2
i := hex v0
sprite vD vE 5
vD += 6
i := hex v1
sprite vD vE 5
vD += 6
i := hex v2
sprite vD vE 5
return
: Sub4
v2 += 2
loop
v2 += -1
if v2 != 0 then
again
return
0x1
: D1
0xc0 0xc0
: D2
0xe0 0xa0 0xe0
: D3
0xf0 0xf0 0xf0 0xf0
: D4
0x80
: D5
0x0 0x0 0x4 0x0 0xd4
: L19
loop
v1 := delay
if v1 != 0 then
again
v2 += -1
if v2 != 0 then jump L2
loop
again
: L21
if vE != 112 then
again
jump L10
: Sub5
delay := v2
loop
v2 := delay
if v2 != 0 then
again
return
######################################################################
# INPUT: chip8/Chip-8 Games/Soccer.ch8
######################################################################
:proto L2 # 226
:proto L4 # 25C
:proto L6 # 280
:proto Sub1 # 2A4
:proto Sub2 # 2B0
:proto Sub3 # 2BC
:proto Sub4 # 2C8
:proto Sub5 # 2D4
:proto Sub6 # 2E4
:proto L8 # 2F6
:proto L9 # 304
:proto Sub7 # 308
:proto Sub8 # 30C
:proto L10 # 31A
:proto L11 # 31E
:proto Sub9 # 322
:proto Sub10 # 334
:proto Sub11 # 33E
:proto D1 # 348
: main
clear
vA := 12
vB := 12
v8 := 0
v9 := 0
v6 := 0
v7 := 0
v5 := 0
v4 := 0
i := D1
Sub9
Sub10
Sub11
v0 := 96
delay := v0
loop
v0 := delay
if v0 == 0 then jump L2
again
: L2
v4 := 2
v6 := 2
v7 := 16
Sub7
Sub5
: L3
loop
Sub7
Sub8
if v6 == 64 then jump L4
if v6 == -2 then jump L6
Sub7
if vF == 1 then Sub6
v0 := 1
if v0 key then Sub1
v0 := 4
if v0 key then Sub2
v0 := 12
if v0 key then Sub3
v0 := 13
if v0 key then Sub4
again
: L4
Sub9
v8 += 1
if v8 == 10 then v8 := 0
Sub9
v0 := 20
buzzer := v0
v6 := 2
v7 := 16
v4 := 2
Sub5
Sub7
v0 := 96
delay := v0
loop
v0 := delay
if v0 == 0 then jump L3
again
: L6
Sub9
v9 += 1
if v9 == 10 then v9 := 0
Sub9
v0 := 20
buzzer := v0
v6 := 58
v7 := 16
v4 := -2
Sub5
Sub7
v0 := 96
delay := v0
loop
v0 := delay
if v0 == 0 then jump L3
again
: Sub1
if vA == 0 then return
Sub10
vA += -2
Sub10
return
: Sub2
if vA == 26 then return
Sub10
vA += 2
Sub10
return
: Sub3
if vB == 0 then return
Sub11
vB += -2
Sub11
return
: Sub4
if vB == 26 then return
Sub11
vB += 2
Sub11
return
: Sub5
v0 := random 0b11
if v0 == 0 then v5 := -1
if v0 == 1 then v5 := 0
if v0 == 2 then v5 := 1
return
: Sub6
if v6 == 0 then jump L8
if v6 == 20 then jump L8
if v6 == 40 then jump L8
if v6 == 60 then jump L8
return
: L8
Sub5
v0 := 4
buzzer := v0
if v4 == -2 then jump L9
v4 := -2
return
: L9
v4 := 2
return
: Sub7
sprite v6 v7 1
return
: Sub8
v6 += v4
v7 += v5
if v7 == 0 then jump L10
if v7 == 31 then jump L11
return
: L10
v5 := 1
return
: L11
v5 := -1
return
: Sub9
v1 := 21
v0 := 0
i := hex v8
sprite v1 v0 5
v1 += 20
i := hex v9
sprite v1 v0 5
i := D1
return
: Sub10
v1 := 0
sprite v1 vA 6
v1 += 40
sprite v1 vA 6
return
: Sub11
v1 := 20
sprite v1 vB 6
v1 += 40
sprite v1 vB 6
return
: D1
0x80 0x80 0x80 0x80 0x80 0x80
######################################################################
# INPUT: chip8/Chip-8 Games/Space Flight.ch8
######################################################################
:proto L2 # 216
:proto L4 # 22A
:proto L6 # 26C
:proto Sub1 # 284
:proto L10 # 29A
:proto L12 # 2AE
:proto L13 # 30E
:proto Sub2 # 31C
:proto L16 # 358
:proto L19 # 37E
:proto L20 # 396
:proto L22 # 3A2
:proto L23 # 3B4
:proto L25 # 3CA
:proto L27 # 3DE
:proto D1 # 408
:proto D2 # 409
:proto D3 # 413
:proto D4 # 41A
:proto D5 # 421
:proto D6 # 428
:proto D7 # 42F
:proto D8 # 436
:proto D9 # 43D
:proto D10 # 444
:proto D11 # 44B
:proto D12 # 452
:proto D13 # 459
:proto D14 # 460
:proto D15 # 467
:proto D16 # 46E
:proto D17 # 475
:proto D18 # 47C
:proto D19 # 483
:proto D20 # 48A
:proto D21 # 491
:proto D22 # 498
:proto D23 # 49A
:proto D24 # 49C
:proto D25 # 49E
:proto D26 # 4A0
:proto D27 # 4A2
:proto D28 # 4A9
:proto D29 # 4B0
:proto D30 # 4B7
:proto D31 # 4BE
:proto D32 # 4C5
: main
clear
i := D1
v3 := 0
v4 := 0
v5 := 31
loop
sprite v3 v4 1
sprite v3 v5 1
v3 += 8
if v3 == 64 then jump L2
again
: L2
v3 := 0
v4 := 1
v5 := 63
i := D2
loop
sprite v3 v4 10
sprite v5 v4 10
v4 += 10
if v4 == 31 then jump L4
again
: L4
i := D3
v3 := 17
v4 := 6
sprite v3 v4 7
i := D4
v3 += 8
sprite v3 v4 7
i := D5
v3 += 8
sprite v3 v4 7
i := D6
v3 += 8
sprite v3 v4 7
i := D7
v3 := 14
v4 := 20
sprite v3 v4 7
i := D8
v3 += 8
sprite v3 v4 7
i := D9
v3 += 8
sprite v3 v4 7
i := D10
v3 += 8
sprite v3 v4 7
i := D11
v3 += 8
sprite v3 v4 7
v0 := 15
loop
if v0 key then jump L6
again
: L6
v9 := 3
vA := 4
vB := 1
vC := 0
vD := 15
: L7
if vB == 11 then vB := 10
Sub1
v0 := 14
: L8
loop
if v0 key then jump L13
again
: Sub1
clear
i := D1
v3 := 0
v4 := 0
v5 := 31
loop
sprite v3 v4 1
sprite v3 v5 1
v3 += 8
if v3 == 64 then jump L10
again
: L10
v3 := 0
v4 := 1
v5 := 63
i := D2
loop
sprite v3 v4 10
sprite v5 v4 10
v4 += 10
if v4 == 31 then jump L12
again
: L12
i := D7
v3 := 10
v4 := 12
sprite v3 v4 7
i := D8
v3 += 8
sprite v3 v4 7
i := D9
v3 += 8
sprite v3 v4 7
i := D10
v3 += 8
sprite v3 v4 7
i := D11
v3 += 8
sprite v3 v4 7
if vB == 1 then i := D12
if vB == 2 then i := D13
if vB == 3 then i := D14
if vB == 4 then i := D15
if vB == 5 then i := D16
if vB == 6 then i := D17
if vB == 7 then i := D18
if vB == 8 then i := D19
if vB == 9 then i := D20
if vB == 10 then i := D21
v3 += 5
sprite v3 v4 7
if v9 == 3 then i := D24
if v9 == 2 then i := D25
if v9 == 1 then i := D26
v0 := 2
v1 := 2
sprite v0 v1 2
return
: L13
Sub2
i := D23
sprite vC vD 2
v0 := 15
loop
if v0 -key then
again
jump L16
: Sub2
clear
i := D22
if vB == 1 then v3 := 30
if vB == 2 then v3 := 40
if vB == 3 then v3 := 50
if vB == 4 then v3 := 55
if vB == 5 then v3 := 60
if vB == 6 then v3 := 65
if vB == 7 then v3 := 70
if vB == 8 then v3 := 75
if vB == 9 then v3 := 80
if vB == 10 then v3 := 85
loop
v4 := random 0b110100
v4 += 10
v6 := random 0b11111
sprite v4 v6 1
v3 += -1
if v3 == -1 then return
again
: L16
sprite vC vD 2
loop
v0 := 1
if v0 key then vD += -1
v0 := 4
if v0 key then vD += 1
vC += 2
sprite vC vD 2
if vF == 1 then jump L20
if vC == 62 then jump L19
v0 := 5
delay := v0
loop
v0 := delay
if v0 != 0 then
again
jump L16
: L19
sprite vC vD 2
vC := 0
v0 := 5
buzzer := v0
vA += -1
if vA != 0 then
again
vA := 4
vC := 0
vD := 15
vB += 1
jump L7
: L20
v0 := 8
buzzer := v0
v0 := 15
loop
if v0 key then jump L22
again
: L22
v9 += -1
vC := 0
vD := 15
vA := 4
if v9 == 0 then jump L23
Sub1
v0 := 14
jump L8
: L23
clear
i := D1
v3 := 0
v4 := 0
v5 := 31
loop
sprite v3 v4 1
sprite v3 v5 1
v3 += 8
if v3 == 64 then jump L25
again
: L25
v3 := 0
v4 := 1
v5 := 63
i := D2
loop
sprite v3 v4 10
sprite v5 v4 10
v4 += 10
if v4 == 31 then jump L27
again
: L27
i := D27
v4 := 8
v3 := 20
sprite v3 v4 7
v3 += 8
i := D28
sprite v3 v4 7
v3 += 8
i := D29
sprite v3 v4 7
v3 := 20
v4 := 17
i := D30
sprite v3 v4 7
v3 += 8
i := D31
sprite v3 v4 7
i := D32
v3 += 8
sprite v3 v4 7
loop
again
: D1
0xff
: D2
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D3
0xfb 0x82 0x82 0xfb 0xa 0xa 0xfa
: D4
0xef 0x28 0x28 0xef 0x8 0x8 0x8
: D5
0xbe 0xa0 0xa0 0xa0 0xa0 0xa0 0xbe
: D6
0xf8 0x80 0x80 0xf8 0x80 0x80 0xf8
: D7
0xfa 0x82 0x82 0xfa 0x82 0x82 0x83
: D8
0xf 0x2 0x2 0x2 0x2 0x2 0xef
: D9
0xbe 0x20 0x20 0x26 0x22 0x22 0xbe
: D10
0x8b 0x88 0x88 0xf8 0x88 0x88 0x88
: D11
0xe0 0x80 0x80 0x80 0x80 0x80 0x80
: D12
0x8 0x8 0x8 0x8 0x8 0x8 0x8
: D13
0x3e 0x2 0x2 0x3e 0x20 0x20 0x3e
: D14
0x3e 0x2 0x2 0x3e 0x2 0x2 0x3e
: D15
0x22 0x22 0x22 0x3e 0x2 0x2 0x2
: D16
0x3e 0x20 0x20 0x3e 0x2 0x2 0x3e
: D17
0x3e 0x20 0x20 0x3e 0x22 0x22 0x3e
: D18
0x3e 0x2 0x4 0x8 0x10 0x10 0x10
: D19
0x3e 0x22 0x22 0x3e 0x22 0x22 0x3e
: D20
0x3e 0x22 0x22 0x3e 0x2 0x2 0x3e
: D21
0x2f 0x29 0x29 0x29 0x29 0x29 0x2f
: D22
0x80 0x0
: D23
0xe0 0xe0
: D24
0xdb 0xdb
: D25
0xd8 0xd8
: D26
0xc0 0xc0
: D27
0xfb 0x82 0x82 0x83 0x8a 0x8a 0xfa
: D28
0xed 0x2a 0x28 0xe8 0x28 0x28 0x28
: D29
0xbe 0xa0 0xa0 0xbe 0xa0 0xa0 0xbe
: D30
0xfa 0x8a 0x8a 0x8a 0x8a 0x89 0xf8
: D31
0x2f 0x28 0x28 0x2f 0x28 0x48 0x8f
: D32
0xbe 0x22 0x22 0xbe 0x28 0x24 0xa2
######################################################################
# INPUT: chip8/Chip-8 Games/Space Intercept [Joseph Weisbecker, 1978].ch8
######################################################################
:proto L1 # 20A
:proto L2 # 20C
:proto L6 # 252
:proto L7 # 274
:proto L8 # 280
:proto Sub1 # 286
:proto Sub2 # 290
:proto Sub3 # 29A
:proto D1 # 2B1
:proto D2 # 2B4
:proto D3 # 2BA
:proto D4 # 2C0
:proto D5 # 2C3
: main
v0 := key
if v0 != 2 then jump L1
i := D3
jump L2
: L1
i := D2
: L2
load v5
i := D4
save v3
i := D4
v6 := 0
sprite v6 v3 3
i := 6
v7 := 29
v8 := 31
sprite v7 v8 1
v9 := 0
vA := 15
Sub1
: L3
Sub2
if vA == 0 then loop
again
v7 := 30
v8 := 28
i := D1
sprite v7 v8 3
vE := 0
: L5
vB := 128
vD := 4
if vD key then vB := -1
vD := 5
if vD key then vB := 0
vD := 6
if vD key then vB := 1
if vB == 128 then jump L6
vE := 1
buzzer := vD
: L6
loop
i := D4
sprite v6 v3 3
v6 += v4
sprite v6 v3 3
if vF != 0 then jump L7
if vE == 0 then jump L5
i := D1
sprite v7 v8 3
if v8 == 0 then jump L8
v8 += -1
v7 += vB
sprite v7 v8 3
if vF != 1 then
again
: L7
buzzer := vD
Sub1
v9 += v5
Sub1
i := D1
sprite v7 v8 3
: L8
Sub2
vA += -1
jump L3
: Sub1
i := D5
bcd v9
vC := 0
Sub3
return
: Sub2
i := D5
bcd vA
vC := 50
Sub3
return
: Sub3
vD := 27
load v2
i := hex v0
sprite vC vD 5
vC += 5
i := hex v1
sprite vC vD 5
vC += 5
i := hex v2
sprite vC vD 5
return
0x1
: D1
0x40 0xe0 0xa0
: D2
0x7c 0xfe 0x7c 0x8 0x1 0x5
: D3
0x60 0xf0 0x60 0x3 0x1 0xf
: D4 0 0 0
: D5
######################################################################
# INPUT: chip8/Chip-8 Games/Space Invaders [David Winter] (alt).ch8
######################################################################
:proto L1 # 225
:proto L7 # 27D
:proto L8 # 28B
:proto L9 # 29F
:proto L10 # 2AD
:proto L11 # 2C9
:proto L12 # 2D3
:proto L13 # 2D5
:proto L14 # 2DD
:proto L15 # 2E7
:proto L16 # 2E9
:proto L17 # 307
:proto L18 # 31B
:proto L19 # 323
:proto Sub1 # 347
:proto Sub2 # 35F
:proto Sub3 # 36B
:proto Sub4 # 373
:proto Sub5 # 387
:proto L23 # 3A5
:proto D1 # 3B7
:proto D2 # 3CF
:proto D3 # 3D3
:proto D4 # 4D3
:proto D5 # 500
:proto D6 # 602
:proto D7 # 6F4
: main
jump L1
0x53 0x50 0x41 0x43 0x45 0x20 0x49 0x4e 0x56 0x41 0x44 0x45 0x52 0x53 0x20 0x76 0x30 0x2e 0x39 0x20 0x42 0x79 0x20 0x44 0x61 0x76 0x69 0x64 0x20 0x57 0x49 0x4e 0x54 0x45 0x52
: L1
v0 := 0
v1 := 0
v2 := 8
i := D3
: L2
loop
sprite v0 v1 8
v1 += 8
i += v2
if v1 != 32 then jump L2
v0 += 8
v1 := 0
if v0 != 64 then
again
v9 := 5
vC := 21
vE := 0
: L3
Sub5
v0 := 10
delay := v0
loop
v0 := delay
if v0 != 0 then
again
Sub5
vE += 1
jump L3
: L5
v6 := 0
v8 := 28
v9 := 0
vA := 4
vB := 10
vC := 4
vD := 60
vE := 15
clear
Sub3
Sub1
delay := vD
: L6
loop
v0 := 4
if v0 -key then jump L7
Sub3
if v8 != 0 then v8 += -1
Sub3
: L7
v0 := 6
if v0 -key then jump L8
Sub3
if v8 != 57 then v8 += 1
Sub3
: L8
if v6 != 0 then jump L9
v0 := 5
if v0 -key then jump L16
v6 := 1
v5 := 27
v4 := v8
i := D2
sprite v4 v5 1
: L9
i := D2
sprite v4 v5 1
v5 += -1
if v5 != -1 then jump L10
v6 := 0
jump L16
: L10
sprite v4 v5 1
if vF != 1 then jump L16
sprite v4 v5 1
v6 := 0
v3 := v4
v3 += 3
v3 -= vB
v2 := -8
v3 &= v2
v2 := 8
if v3 != 0 then jump L11
Sub4
: L11
v2 >>= v0
if v3 == 8 then jump L12
if v3 != 16 then jump L13
: L12
Sub4
: L13
v2 >>= v0
if v3 != 24 then jump L14
Sub4
: L14
v2 >>= v0
if v3 == 32 then jump L15
if v3 != 40 then jump L16
: L15
Sub4
: L16
if vE != 0 then jump L17
v9 += 6
if v9 == 24 then v9 := 0
vA := 4
vB := 10
vC := 4
vD += -12
vE := 15
clear
Sub1
Sub3
delay := vD
jump L6
: L17
v7 := delay
if v7 != 0 then jump L6
delay := vD
Sub1
vB += vA
if vB != 18 then jump L18
vC += 2
vA := -4
: L18
if vB != 2 then jump L19
vC += 2
vA := 4
: L19
Sub1
if vC != 24 then
again
clear
i := D4
v0 := 20
v1 := 8
v2 := 15
loop
sprite v0 v1 15
v0 += 8
i += v2
if v0 != 44 then
again
v0 := key
clear
i := D7
load vE
jump L1
: Sub1
i := D1
i += v9
v1 := 8
Sub2
v1 >>= v0
Sub2
v1 >>= v0
Sub2
v1 >>= v0
Sub2
vB += 208
return
: Sub2
v0 := vE
v0 &= v1
if v0 != 0 then sprite vB vC 6
vB += 12
return
: Sub3
i := D2
v0 := 28
sprite v8 v0 4
return
: Sub4
Sub1
vE ^= v2
Sub1
v0 := 5
buzzer := v0
delay := v0
loop
v0 := delay
if v0 != 0 then
again
return
: Sub5
vA := 0
vD := vE
vB := 4
: L22
loop
if v9 key then jump L5
i := D6
i += vD
load v0
if v0 != -1 then jump L23
vA := 0
vB := 4
vD := 1
vE := 1
jump L22
: L23
i := D5
i += v0
sprite vB vC 6
vB += 8
vD += 1
vA += 1
if vA != 7 then
again
return
: D1
0x3c 0x7e 0xff 0xff 0x99 0x99 0x7e 0xff 0xff 0x24 0x24 0xe7 0x7e 0xff 0x3c 0x3c 0x7e 0xdb 0x81 0x42 0x3c 0x7e 0xff 0xdb
: D2
0x10 0x38 0x7c 0xfe
: D3
0x0 0x0 0x7f 0x0 0x3f 0x0 0x7f 0x0 0x0 0x0 0x1 0x1 0x1 0x3 0x3 0x3 0x3 0x0 0x0 0x3f 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x3f 0x8 0x8 0xff 0x0 0x0 0xfe 0x0 0xfc 0x0 0xfe 0x0 0x0 0x0 0x7e 0x42 0x42 0x62 0x62 0x62 0x62 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0xff 0x0 0x7d 0x0 0x41 0x7d 0x5 0x7d 0x7d 0x0 0x0 0xc2 0xc2 0xc6 0x44 0x6c 0x28 0x38 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0xff 0x0 0xf7 0x10 0x14 0xf7 0xf7 0x4 0x4 0x0 0x0 0x7c 0x44 0xfe 0xc2 0xc2 0xc2 0xc2 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0xff 0x0 0xef 0x20 0x28 0xe8 0xe8 0x2f 0x2f 0x0 0x0 0xf9 0x85 0xc5 0xc5 0xc5 0xc5 0xf9 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0xff 0x0 0xbe 0x0 0x20 0x30 0x20 0xbe 0xbe 0x0 0x0 0xf7 0x4 0xe7 0x85 0x85 0x84 0xf4 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0xff 0x0 0x0 0x7f 0x0 0x3f 0x0 0x7f 0x0 0x0 0x0 0xef 0x28 0xef 0x0 0xe0 0x60 0x6f 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0xff 0x0 0x0 0xfe 0x0 0xfc 0x0 0xfe 0x0 0x0 0x0 0xc0 0x0 0xc0 0xc0 0xc0 0xc0 0xc0 0x0 0x0 0xfc 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0xfc 0x10 0x10 0xff
: D4
0xf9 0x81 0xb9 0x8b 0x9a 0x9a 0xfa 0x0 0xfa 0x8a 0x9a 0x9a 0x9b 0x99 0xf8 0xe6 0x25 0x25 0xf4 0x34 0x34 0x34 0x0 0x17 0x14 0x34 0x37 0x36 0x26 0xc7 0xdf 0x50 0x50 0x5c 0xd8 0xd8 0xdf 0x0 0xdf 0x11 0x1f 0x12 0x1b 0x19 0xd9
: D5
0x7c 0x44 0xfe 0x86 0x86 0x86 0xfc 0x84 0xfe 0x82 0x82 0xfe 0xfe 0x80 0xc0 0xc0 0xc0 0xfe 0xfc 0x82 0xc2 0xc2 0xc2 0xfc 0xfe 0x80 0xf8 0xc0 0xc0 0xfe 0xfe 0x80 0xf0 0xc0 0xc0 0xc0 0xfe 0x80 0xbe 0x86 0x86 0xfe 0x86 0x86 0xfe 0x86 0x86 0x86 0x10 0x10 0x10 0x10 0x10 0x10 0x18 0x18 0x18 0x48 0x48 0x78 0x9c 0x90 0xb0 0xc0 0xb0 0x9c 0x80 0x80 0xc0 0xc0 0xc0 0xfe 0xee 0x92 0x92 0x86 0x86 0x86 0xfe 0x82 0x86 0x86 0x86 0x86 0x7c 0x82 0x86 0x86 0x86 0x7c 0xfe 0x82 0xfe 0xc0 0xc0 0xc0 0x7c 0x82 0xc2 0xca 0xc4 0x7a 0xfe 0x86 0xfe 0x90 0x9c 0x84 0xfe 0xc0 0xfe 0x2 0x2 0xfe 0xfe 0x10 0x30 0x30 0x30 0x30 0x82 0x82 0xc2 0xc2 0xc2 0xfe 0x82 0x82 0x82 0xee 0x38 0x10 0x86 0x86 0x96 0x92 0x92 0xee 0x82 0x44 0x38 0x38 0x44 0x82 0x82 0x82 0xfe 0x30 0x30 0x30 0xfe 0x2 0x1e 0xf0 0x80 0xfe 0x0 0x0 0x0 0x0 0x6 0x6 0x0 0x0 0x0 0x60 0x60 0xc0 0x0 0x0 0x0 0x0 0x0 0x0 0x18 0x18 0x18 0x18 0x0 0x18 0x7c 0xc6 0xc 0x18 0x0 0x18 0x0 0x0 0xfe 0xfe 0x0 0x0 0xfe 0x82 0x86 0x86 0x86 0xfe 0x8 0x8 0x8 0x18 0x18 0x18 0xfe 0x2 0xfe 0xc0 0xc0 0xfe 0xfe 0x2 0x1e 0x6 0x6 0xfe 0x84 0xc4 0xc4 0xfe 0x4 0x4 0xfe 0x80 0xfe 0x6 0x6 0xfe 0xc0 0xc0 0xc0 0xfe 0x82 0xfe 0xfe 0x2 0x2 0x6 0x6 0x6 0x7c 0x44 0xfe 0x86 0x86 0xfe 0xfe 0x82 0xfe 0x6 0x6 0x6 0x44 0xfe 0x44 0x44 0xfe 0x44
: D6
0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0x6c 0x5a 0x0 0xc 0x18 0xa8 0x30 0x4e 0x7e 0x0 0x12 0x18 0x66 0x6c 0xa8 0x5a 0x66 0x54 0x24 0x66 0x0 0x48 0x48 0x18 0x12 0xa8 0x6 0x90 0xa8 0x12 0x0 0x7e 0x30 0x12 0xa8 0x84 0x30 0x4e 0x72 0x18 0x66 0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0x90 0x54 0x78 0xa8 0x48 0x78 0x6c 0x72 0xa8 0x12 0x18 0x6c 0x72 0x66 0x54 0x90 0xa8 0x72 0x2a 0x18 0xa8 0x30 0x4e 0x7e 0x0 0x12 0x18 0x66 0x6c 0xa8 0x72 0x54 0xa8 0x5a 0x66 0x18 0x7e 0x18 0x4e 0x72 0xa8 0x72 0x2a 0x18 0x30 0x66 0xa8 0x30 0x4e 0x7e 0x0 0x6c 0x30 0x54 0x4e 0x9c 0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0x48 0x54 0x7e 0x18 0xa8 0x90 0x54 0x78 0x66 0xa8 0x6c 0x2a 0x30 0x5a 0xa8 0x84 0x30 0x72 0x2a 0xa8 0xd8 0xa8 0x0 0x4e 0x12 0xa8 0xe4 0xa2 0xa8 0x0 0x4e 0x12 0xa8 0x6c 0x2a 0x54 0x54 0x72 0xa8 0x84 0x30 0x72 0x2a 0xa8 0xde 0x9c 0xa8 0x72 0x2a 0x18 0xa8 0xc 0x54 0x48 0x5a 0x78 0x72 0x18 0x66 0xa8 0x72 0x18 0x42 0x42 0x6c 0xa8 0x72 0x2a 0x0 0x72 0xa8 0x72 0x2a 0x18 0xa8 0x30 0x4e 0x7e 0x0 0x12 0x18 0x66 0x6c 0xa8 0x30 0x4e 0xc 0x66 0x18 0x0 0x6c 0x18 0xa8 0x72 0x2a 0x18 0x30 0x66 0xa8 0x1e 0x54 0x66 0xc 0x18 0x9c 0xa8 0x24 0x54 0x54 0x12 0xa8 0x42 0x78 0xc 0x3c 0xa8 0xae 0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0xff
: D7
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Space Invaders [David Winter].ch8
######################################################################
:proto L1 # 225
:proto L7 # 27D
:proto L8 # 28B
:proto L9 # 29F
:proto L10 # 2AD
:proto L11 # 2C9
:proto L12 # 2D3
:proto L13 # 2D5
:proto L14 # 2DD
:proto L15 # 2E7
:proto L16 # 2E9
:proto L17 # 307
:proto L18 # 31B
:proto L19 # 323
:proto Sub1 # 351
:proto Sub2 # 369
:proto Sub3 # 375
:proto Sub4 # 37D
:proto Sub5 # 391
:proto L24 # 3AF
:proto D1 # 3C1
:proto D2 # 3D9
:proto D3 # 3DD
:proto D4 # 4DD
:proto D5 # 50A
:proto D6 # 60C
:proto D7 # 706
: main
jump L1
0x53 0x50 0x41 0x43 0x45 0x20 0x49 0x4e 0x56 0x41 0x44 0x45 0x52 0x53 0x20 0x30 0x2e 0x39 0x31 0x20 0x42 0x79 0x20 0x44 0x61 0x76 0x69 0x64 0x20 0x57 0x49 0x4e 0x54 0x45 0x52
: L1
v0 := 0
v1 := 0
v2 := 8
i := D3
: L2
loop
sprite v0 v1 8
v1 += 8
i += v2
if v1 != 32 then jump L2
v0 += 8
v1 := 0
if v0 != 64 then
again
v9 := 5
vC := 21
vE := 0
: L3
Sub5
v0 := 10
delay := v0
loop
v0 := delay
if v0 != 0 then
again
Sub5
vE += 1
jump L3
: L5
v6 := 0
v8 := 28
v9 := 0
vA := 4
vB := 10
vC := 4
vD := 60
vE := 15
clear
Sub3
Sub1
delay := vD
: L6
loop
v0 := 4
if v0 -key then jump L7
Sub3
if v8 != 0 then v8 += -1
Sub3
: L7
v0 := 6
if v0 -key then jump L8
Sub3
if v8 != 57 then v8 += 1
Sub3
: L8
if v6 != 0 then jump L9
v0 := 5
if v0 -key then jump L16
v6 := 1
v5 := 27
v4 := v8
i := D2
sprite v4 v5 1
: L9
i := D2
sprite v4 v5 1
v5 += -1
if v5 != -1 then jump L10
v6 := 0
jump L16
: L10
sprite v4 v5 1
if vF != 1 then jump L16
sprite v4 v5 1
v6 := 0
v3 := v4
v3 += 3
v3 -= vB
v2 := -8
v3 &= v2
v2 := 8
if v3 != 0 then jump L11
Sub4
: L11
v2 >>= v0
if v3 == 8 then jump L12
if v3 != 16 then jump L13
: L12
Sub4
: L13
v2 >>= v0
if v3 != 24 then jump L14
Sub4
: L14
v2 >>= v0
if v3 == 32 then jump L15
if v3 != 40 then jump L16
: L15
Sub4
: L16
if vE != 0 then jump L17
v9 += 6
if v9 == 24 then v9 := 0
vA := 4
vB := 10
vC := 4
vD += -12
vE := 15
clear
Sub1
Sub3
delay := vD
jump L6
: L17
v7 := delay
if v7 != 0 then jump L6
delay := vD
Sub1
vB += vA
if vB != 18 then jump L18
vC += 2
vA := -4
: L18
if vB != 2 then jump L19
vC += 2
vA := 4
: L19
Sub1
if vC != 24 then
again
clear
i := D4
v0 := 20
v1 := 8
v2 := 15
loop
sprite v0 v1 15
v0 += 8
i += v2
if v0 != 44 then
again
v0 := -1
delay := v0
loop
v0 := delay
if v0 != 0 then
again
v0 := key
clear
i := D7
load vE
jump L1
: Sub1
i := D1
i += v9
v1 := 8
Sub2
v1 >>= v0
Sub2
v1 >>= v0
Sub2
v1 >>= v0
Sub2
vB += 208
return
: Sub2
v0 := vE
v0 &= v1
if v0 != 0 then sprite vB vC 6
vB += 12
return
: Sub3
i := D2
v0 := 28
sprite v8 v0 4
return
: Sub4
Sub1
vE ^= v2
Sub1
v0 := 5
buzzer := v0
delay := v0
loop
v0 := delay
if v0 != 0 then
again
return
: Sub5
vA := 0
vD := vE
vB := 4
: L23
loop
if v9 key then jump L5
i := D6
i += vD
load v0
if v0 != -1 then jump L24
vA := 0
vB := 4
vD := 1
vE := 1
jump L23
: L24
i := D5
i += v0
sprite vB vC 6
vB += 8
vD += 1
vA += 1
if vA != 7 then
again
return
: D1
0x3c 0x7e 0xff 0xff 0x99 0x99 0x7e 0xff 0xff 0x24 0x24 0xe7 0x7e 0xff 0x3c 0x3c 0x7e 0xdb 0x81 0x42 0x3c 0x7e 0xff 0xdb
: D2
0x10 0x38 0x7c 0xfe
: D3
0x0 0x0 0x7f 0x0 0x3f 0x0 0x7f 0x0 0x0 0x0 0x1 0x1 0x1 0x3 0x3 0x3 0x3 0x0 0x0 0x3f 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x3f 0x8 0x8 0xff 0x0 0x0 0xfe 0x0 0xfc 0x0 0xfe 0x0 0x0 0x0 0x7e 0x42 0x42 0x62 0x62 0x62 0x62 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0xff 0x0 0x7d 0x0 0x41 0x7d 0x5 0x7d 0x7d 0x0 0x0 0xc2 0xc2 0xc6 0x44 0x6c 0x28 0x38 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0xff 0x0 0xf7 0x10 0x14 0xf7 0xf7 0x4 0x4 0x0 0x0 0x7c 0x44 0xfe 0xc2 0xc2 0xc2 0xc2 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0xff 0x0 0xef 0x20 0x28 0xe8 0xe8 0x2f 0x2f 0x0 0x0 0xf9 0x85 0xc5 0xc5 0xc5 0xc5 0xf9 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0xff 0x0 0xbe 0x0 0x20 0x30 0x20 0xbe 0xbe 0x0 0x0 0xf7 0x4 0xe7 0x85 0x85 0x84 0xf4 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0xff 0x0 0x0 0x7f 0x0 0x3f 0x0 0x7f 0x0 0x0 0x0 0xef 0x28 0xef 0x0 0xe0 0x60 0x6f 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0xff 0x0 0x0 0xfe 0x0 0xfc 0x0 0xfe 0x0 0x0 0x0 0xc0 0x0 0xc0 0xc0 0xc0 0xc0 0xc0 0x0 0x0 0xfc 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0xfc 0x10 0x10 0xff
: D4
0xf9 0x81 0xb9 0x8b 0x9a 0x9a 0xfa 0x0 0xfa 0x8a 0x9a 0x9a 0x9b 0x99 0xf8 0xe6 0x25 0x25 0xf4 0x34 0x34 0x34 0x0 0x17 0x14 0x34 0x37 0x36 0x26 0xc7 0xdf 0x50 0x50 0x5c 0xd8 0xd8 0xdf 0x0 0xdf 0x11 0x1f 0x12 0x1b 0x19 0xd9
: D5
0x7c 0x44 0xfe 0x86 0x86 0x86 0xfc 0x84 0xfe 0x82 0x82 0xfe 0xfe 0x80 0xc0 0xc0 0xc0 0xfe 0xfc 0x82 0xc2 0xc2 0xc2 0xfc 0xfe 0x80 0xf8 0xc0 0xc0 0xfe 0xfe 0x80 0xf0 0xc0 0xc0 0xc0 0xfe 0x80 0xbe 0x86 0x86 0xfe 0x86 0x86 0xfe 0x86 0x86 0x86 0x10 0x10 0x10 0x10 0x10 0x10 0x18 0x18 0x18 0x48 0x48 0x78 0x9c 0x90 0xb0 0xc0 0xb0 0x9c 0x80 0x80 0xc0 0xc0 0xc0 0xfe 0xee 0x92 0x92 0x86 0x86 0x86 0xfe 0x82 0x86 0x86 0x86 0x86 0x7c 0x82 0x86 0x86 0x86 0x7c 0xfe 0x82 0xfe 0xc0 0xc0 0xc0 0x7c 0x82 0xc2 0xca 0xc4 0x7a 0xfe 0x86 0xfe 0x90 0x9c 0x84 0xfe 0xc0 0xfe 0x2 0x2 0xfe 0xfe 0x10 0x30 0x30 0x30 0x30 0x82 0x82 0xc2 0xc2 0xc2 0xfe 0x82 0x82 0x82 0xee 0x38 0x10 0x86 0x86 0x96 0x92 0x92 0xee 0x82 0x44 0x38 0x38 0x44 0x82 0x82 0x82 0xfe 0x30 0x30 0x30 0xfe 0x2 0x1e 0xf0 0x80 0xfe 0x0 0x0 0x0 0x0 0x6 0x6 0x0 0x0 0x0 0x60 0x60 0xc0 0x0 0x0 0x0 0x0 0x0 0x0 0x18 0x18 0x18 0x18 0x0 0x18 0x7c 0xc6 0xc 0x18 0x0 0x18 0x0 0x0 0xfe 0xfe 0x0 0x0 0xfe 0x82 0x86 0x86 0x86 0xfe 0x8 0x8 0x8 0x18 0x18 0x18 0xfe 0x2 0xfe 0xc0 0xc0 0xfe 0xfe 0x2 0x1e 0x6 0x6 0xfe 0x84 0xc4 0xc4 0xfe 0x4 0x4 0xfe 0x80 0xfe 0x6 0x6 0xfe 0xc0 0xc0 0xc0 0xfe 0x82 0xfe 0xfe 0x2 0x2 0x6 0x6 0x6 0x7c 0x44 0xfe 0x86 0x86 0xfe 0xfe 0x82 0xfe 0x6 0x6 0x6 0x44 0xfe 0x44 0x44 0xfe 0x44
: D6
0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0x6c 0x5a 0x0 0xc 0x18 0xa8 0x30 0x4e 0x7e 0x0 0x12 0x18 0x66 0x6c 0xa8 0x5a 0x66 0x54 0x24 0x66 0x0 0x48 0x48 0x18 0x12 0xa8 0x6 0x90 0xa8 0x12 0x0 0x7e 0x30 0x12 0xa8 0x84 0x30 0x4e 0x72 0x18 0x66 0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0x90 0x54 0x78 0xa8 0x48 0x78 0x6c 0x72 0xa8 0x12 0x18 0x6c 0x72 0x66 0x54 0x90 0xa8 0x72 0x2a 0x18 0xa8 0x30 0x4e 0x7e 0x0 0x12 0x18 0x66 0x6c 0xa8 0x72 0x54 0xa8 0x5a 0x66 0x18 0x7e 0x18 0x4e 0x72 0xa8 0x72 0x2a 0x18 0x30 0x66 0xa8 0x30 0x4e 0x7e 0x0 0x6c 0x30 0x54 0x4e 0x9c 0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0x48 0x54 0x7e 0x18 0xa8 0x90 0x54 0x78 0x66 0xa8 0x6c 0x2a 0x30 0x5a 0xa8 0x84 0x30 0x72 0x2a 0xa8 0xd8 0xa8 0x0 0x4e 0x12 0xa8 0xe4 0xa2 0xa8 0x0 0x4e 0x12 0xa8 0x6c 0x2a 0x54 0x54 0x72 0xa8 0x84 0x30 0x72 0x2a 0xa8 0xde 0x9c 0xa8 0x72 0x2a 0x18 0xa8 0xc 0x54 0x48 0x5a 0x78 0x72 0x18 0x66 0xa8 0x66 0x18 0x5a 0x54 0x66 0x72 0x6c 0xa8 0x72 0x2a 0x0 0x72 0xa8 0x72 0x2a 0x18 0xa8 0x30 0x4e 0x7e 0x0 0x12 0x18 0x66 0x6c 0xa8 0x0 0x66 0x18 0xa8 0x30 0x4e 0xc 0x66 0x18 0x0 0x6c 0x30 0x4e 0x24 0xa8 0x72 0x2a 0x18 0x30 0x66 0xa8 0x1e 0x54 0x66 0xc 0x18 0x9c 0xa8 0x24 0x54 0x54 0x12 0xa8 0x42 0x78 0xc 0x3c 0xa8 0xae 0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0xa8 0xff
: D7
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Spooky Spot [Joseph Weisbecker, 1978].ch8
######################################################################
:proto L3 # 236
:proto L4 # 240
:proto Sub1 # 242
:proto Sub2 # 254
:proto Sub3 # 25A
:proto Sub4 # 26A
:proto D1 # 270
:proto D2 # 280
:proto D3 # 290
: main
clear
Sub1
Sub2
vA := key
i := D3
v1 := 0
v2 := 16
: L1
sprite v1 v2 1
if vF != 0 then jump L3
vA := 4
buzzer := vA
vA := 10
delay := vA
loop
vA := delay
if vA != 0 then
again
v1 += 1
vA := random 0b1
if vA != 1 then vA := -1
v2 += vA
if v2 == 7 then v2 += 1
if v2 == 24 then v2 += -1
jump L1
: L3
vA := 16
vA &= v2
if vA != 0 then jump L4
Sub3
: L4
Sub4
: Sub1
i := D1
v4 := 8
: L5
v3 := 48
sprite v3 v4 8
vA := 8
i += vA
v3 += 8
sprite v3 v4 8
return
: Sub2
i := D2
v4 := 16
jump L5
: Sub3
v4 := 8
: L6
v3 := 49
i := D3
loop
sprite v3 v4 8
v3 += 1
if v3 != 64 then
again
loop
again
: Sub4
v4 := 16
jump L6
0x1 0x1
: D1
0x7f 0x7f 0x6a 0x6a 0x62 0x76 0x76 0x7f 0xff 0xff 0x23 0xef 0x63 0xfb 0x23 0xff
: D2
0x7f 0x76 0x72 0x70 0x74 0x76 0x7f 0x7f 0xff 0x87 0xb7 0xb7 0xb7 0x87 0xff 0xff
: D3
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0xd4
######################################################################
# INPUT: chip8/Chip-8 Games/Squash [David Winter].ch8
######################################################################
:proto L4 # 25C
:proto L5 # 26A
:proto Sub1 # 2AE
:proto Sub2 # 2B8
:proto D1 # 2C8
:proto D2 # 2CD
:proto D3 # 2D2
:proto D4 # 2D3
: main
i := D3
v0 := 0
v1 := 0
v2 := 30
loop
sprite v0 v1 1
sprite v0 v2 1
v0 += 8
if v0 != 64 then
again
i := D2
v0 := 62
v1 := 1
loop
sprite v0 v1 5
v1 += 5
if v1 != 26 then
again
sprite v0 v1 4
v3 := 0
v4 := random 0b1111
v4 += 8
v5 := 1
v4 |= v5
v5 := 3
v6 := 2
v7 := 1
v8 := v4
v8 += 2
v9 := 1
vA := 4
vB := 5
Sub2
i := D1
sprite v3 v4 5
sprite v7 v8 1
: L3
loop
vC := 1
Sub1
i := D1
vC := v7
vD := v8
if v9 -key then jump L4
if v4 == 1 then jump L4
sprite v3 v4 5
v4 += -1
sprite v3 v4 5
: L4
if vA -key then jump L5
if v4 == 25 then jump L5
sprite v3 v4 5
v4 += 1
sprite v3 v4 5
: L5
v7 += v5
v8 += v6
if v7 == 1 then v5 := 3
if v7 == 61 then v5 := -3
if v8 == 1 then v6 := 2
if v8 == 29 then v6 := -2
sprite vC vD 1
sprite v7 v8 1
if v7 != 1 then
again
vC := v8
vC -= v4
vD := 0
loop
if vC == vD then jump L3
vD += 1
if vD != 5 then
again
vC := key
Sub2
vB += -1
Sub2
if vB != -1 then jump L3
Sub2
vB := 0
loop
Sub2
vC := 30
Sub1
again
: Sub1
delay := vC
loop
vC := delay
if vC != 0 then
again
return
: Sub2
i := D4
bcd vB
load v2
i := hex v2
v0 := 57
v1 := 2
sprite v0 v1 5
return
: D1
0x80 0x80 0x80 0x80 0x80
: D2
0xe0 0xe0 0xe0 0xe0 0xe0
: D3
0xff
: D4
######################################################################
# INPUT: chip8/Chip-8 Games/Submarine [Carmelo Cortez, 1978].ch8
######################################################################
:proto L3 # 23C
:proto L4 # 242
:proto L5 # 286
:proto L6 # 28C
:proto L7 # 292
:proto L8 # 296
:proto Sub1 # 2A2
:proto Sub2 # 2AC
:proto Sub3 # 2B6
:proto D1 # 2CD
:proto D2 # 2D0
:proto D3 # 2D4
:proto D4 # 2D7
:proto L9 # 2D8
:proto D5 # 2F8
:proto D6 # 300
:proto D7 # 305
:proto D8 # 30A
:proto D9 # 30F
: main
i := D1
v9 := 56
vA := 30
sprite v9 vA 2
i := D2
vB := 0
vC := 26
sprite vB vC 2
i := D3
v4 := 60
v6 := 6
sprite v4 v6 3
v7 := 0
v8 := 25
Sub1
: L1
Sub2
if v8 == 0 then jump L9
v5 := 9
i := D4
v3 := 0
: L2
vD := 5
if vD key then v3 := 1
vE := v4
if vD key then sprite vE v5 1
jump L3
0xed 0xa1 0x22 0xd8
: L3
loop
i := D3
sprite v4 v6 3
jump L4
: L4
v4 += -1
sprite v4 v6 3
i := D2
sprite vB vC 2
vD := random 0b100
vB += vD
sprite vB vC 2
if vF != 0 then jump L7
i := D1
sprite v9 vA 2
vD := random 0b111
if vD == 0 then v9 += 3
v9 += -3
sprite v9 vA 2
if vF != 0 then jump L6
if v3 == 0 then jump L2
i := D4
sprite vE v5 1
if v5 == 31 then jump L5
v5 += 2
buzzer := v3
sprite vE v5 1
if vF != 1 then
again
vD := 31
vD &= v5
if vD == 31 then jump L6
jump L7
: L5
Sub2
v8 += -1
jump L1
: L6
Sub1
v7 += 5
jump L8
: L7
Sub1
v7 += 10
: L8
Sub1
vD := 3
buzzer := vD
i := D4
sprite vE v5 1
jump L5
: Sub1
i := D5
bcd v7
v3 := 0
Sub3
return
: Sub2
i := D5
bcd v8
v3 := 50
Sub3
return
: Sub3
vD := 0
load v2
i := hex v0
sprite v3 vD 5
v3 += 5
i := hex v1
sprite v3 vD 5
v3 += 5
i := hex v2
sprite v3 vD 5
return
0x1
: D1
0x8 0x7f 0x7c
: D2
0x8 0x3e 0x60 0x8
: D3
0x18 0x3c 0xff
: D4
0x8
: L9
i := D6
v3 := 17
vD := 11
sprite v3 vD 5
i := D7
v3 := 25
sprite v3 vD 5
i := D8
v3 := 35
sprite v3 vD 5
i := D9
v3 := 43
sprite v3 vD 5
v3 := 0
loop
again
0x6d 0xb
: D5
0x0 0x1 0x4 0x0 0x0 0xee 0x0 0x1
: D6
0xee 0x8a 0x8a 0xaa 0xee
: D7
0xef 0xa5 0xa5 0xa5 0xef
: D8
0x7a 0x2a 0x3b 0x29 0x79
: D9
0xba 0xa2 0xb2 0x20 0x3a 0x34 0x3a 0x3c 0xd6 0x54 0x1c 0xc 0x40 0x9e 0x25 0x68 0xc
######################################################################
# INPUT: chip8/Chip-8 Games/Sum Fun [Joyce Weisbecker].ch8
######################################################################
:proto L3 # 22C
:proto L4 # 24A
:proto Sub1 # 25A
:proto Sub2 # 262
:proto Sub3 # 270
:proto Sub4 # 282
:proto Sub5 # 28A
:proto Sub6 # 294
:proto Sub7 # 29A
:proto L8 # 2A4
:proto D1 # 2B0
: main
clear
vA := 0
Sub2
v3 := 128
Sub5
v5 := 20
loop
v0 := random 0b11
v1 := random 0b11
v2 := random 0b11
v4 := 0
v4 += v0
v4 += v1
v4 += v2
Sub1
jump L8
: L2
loop
v3 := 144
Sub4
if v4 key then jump L3
if v6 != 0 then v6 += -1
again
: L3
Sub6
v3 := 16
Sub4
Sub7
v3 := 128
Sub5
clear
vA += v6
Sub2
v5 += -1
if v5 == 0 then jump L4
v3 := 96
Sub5
again
: L4
v4 := 18
loop
buzzer := v4
v3 := 26
Sub5
v4 += -2
if v4 != 0 then
again
loop
again
: Sub1
v8 := 16
v9 := 19
Sub3
return
: Sub2
v8 := 48
v9 := 0
i := D1
bcd vA
load v2
Sub3
return
: Sub3
i := hex v0
sprite v8 v9 5
v8 += 6
i := hex v1
sprite v8 v9 5
v8 += 6
i := hex v2
sprite v8 v9 5
return
: Sub4
loop
v3 += -1
if v3 != 0 then
again
return
: Sub5
delay := v3
loop
v3 := delay
if v3 != 0 then
again
return
: Sub6
v3 := 2
buzzer := v3
return
: Sub7
v8 := 22
v9 := 10
i := hex v4
sprite v8 v9 5
return
: L8
v6 := 10
v3 := 128
Sub4
if v4 key then jump L3
jump L2
: D1
######################################################################
# INPUT: chip8/Chip-8 Games/Syzygy [Roy Trevino, 1990].ch8
######################################################################
:proto L1 # 212
:proto L3 # 224
:proto L4 # 228
:proto L5 # 22C
:proto L7 # 28C
:proto L8 # 294
:proto L9 # 29C
:proto L11 # 324
:proto L12 # 33E
:proto L14 # 358
:proto L15 # 388
:proto L18 # 3AA
:proto L19 # 3DE
:proto L20 # 424
:proto L21 # 432
:proto L22 # 43A
:proto L23 # 444
:proto L25 # 47C
:proto L26 # 482
:proto L27 # 490
:proto L28 # 496
:proto Sub1 # 49A
:proto Sub2 # 4B6
:proto Sub3 # 4DA
:proto Sub4 # 522
:proto D1 # 54C
:proto D2 # 54E
:proto D3 # 550
:proto D4 # 552
:proto D5 # 562
:proto D6 # 56C
:proto D7 # 576
:proto D8 # 580
:proto D9 # 58A
:proto D10 # 58E
:proto D11 # 592
:proto D12 # 598
:proto D13 # 59E
:proto D14 # 5A4
:proto D15 # 5AA
:proto D16 # 5AE
:proto D17 # 800
: main
jump L1
0x8d 0x8d 0x20 0xa9 0x31 0x39 0x39 0x30 0x20 0x52 0x54 0x54 0x20 0x8e 0x8e 0x0
: L1
Sub2
Sub3
loop
v0 := 15
if v0 key then jump L3
v0 := 14
if v0 key then jump L4
again
: L3
Sub3
jump L5
: L4
clear
jump L5
: L5
v1 := random 0b11111
v1 += 16
v2 := random 0b1111
v2 += 8
v3 := random 0b11
v5 := v3
v6 := v1
v7 := v2
v8 := v3
if v8 == 0 then v7 += 1
if v8 == 1 then v7 += -1
if v8 == 2 then v6 += 1
if v8 == 3 then v6 += -1
i := D1
sprite v1 v2 1
sprite v6 v7 1
v4 := -16
v9 := -15
i := D17
i += v4
v0 := v3
save v0
v4 += 1
i := D17
i += v4
v0 := 1
save v0
Sub4
vA := 0
vA += 0
: L6
loop
v0 := delay
if v0 != 0 then jump L9
if vD != 0 then jump L8
v0 := 0
i := hex v0
sprite vB vC 5
if vF != 1 then jump L7
sprite vB vC 5
Sub4
delay := v0
jump L9
: L7
delay := vE
vD := 1
vE := 0
jump L9
: L8
v0 := vE
i := hex v0
sprite vB vC 5
Sub4
: L9
v0 := 3
if v0 key then v3 := 0
v0 := 6
if v0 key then v3 := 1
v0 := 7
if v0 key then v3 := 2
v0 := 8
if v0 key then v3 := 3
if v3 == 0 then v2 += -1
if v3 == 1 then v2 += 1
if v3 == 2 then v1 += -1
if v3 == 3 then v1 += 1
i := D1
sprite v1 v2 1
if vF != 1 then jump L11
if vD != 1 then jump L15
v0 := 63
v1 &= v0
v0 := 31
v2 &= v0
v0 := vB
v0 =- v1
if vF != 1 then jump L15
v0 := vB
v0 += 3
v0 -= v1
if vF != 1 then jump L15
v0 := vC
v0 =- v2
if vF != 1 then jump L15
v0 := vC
v0 += 4
v0 -= v2
if vF != 1 then jump L15
v0 := 4
buzzer := v0
vE := random 0b111
vE += 2
vA += vE
i := D1
sprite v1 v2 1
v0 := 0
i := hex v0
sprite vB vC 5
v0 := vE
i := hex v0
sprite vB vC 5
v0 := 48
delay := v0
loop
v0 := delay
if v0 != 0 then
again
i := D1
sprite v1 v2 1
: L11
if v3 == v5 then jump L12
v4 += 1
i := D17
i += v4
v0 := v3
save v0
v4 += 1
i := D17
i += v4
v0 := 0
save v0
v5 := v3
: L12
i := D17
i += v4
load v0
v0 += 1
save v0
if vA == 0 then jump L14
v0 := 12
loop
v0 += -1
if v0 != 0 then
again
vA += -1
jump L6
: L14
i := D1
sprite v6 v7 1
if v8 == 0 then v7 += -1
if v8 == 1 then v7 += 1
if v8 == 2 then v6 += -1
if v8 == 3 then v6 += 1
i := D17
i += v9
load v0
v0 += -1
save v0
if v0 != 0 then jump L6
v9 += 1
i := D17
i += v9
load v0
v8 := v0
v9 += 1
again
: L15
v0 := 13
buzzer := v0
v0 := 11
loop
if v0 -key then
again
vB := 1
vC := 0
vD := 0
: L17
loop
vB += 1
if vB != 10 then jump L18
vB := 0
vC += 1
if vC != 10 then jump L18
vC := 0
vD += 1
: L18
i := D1
sprite v6 v7 1
if v8 == 0 then v7 += -1
if v8 == 1 then v7 += 1
if v8 == 2 then v6 += -1
if v8 == 3 then v6 += 1
i := D17
i += v9
load v0
v0 += -1
save v0
if v0 != 0 then jump L17
if v9 == v4 then jump L19
v9 += 1
i := D17
i += v9
load v0
v8 := v0
v9 += 1
again
: L19
clear
v6 := 17
v7 := 9
v8 := 47
v9 := 23
i := D4
sprite v6 v7 14
sprite v8 v7 14
v7 += -1
i := D2
sprite v6 v7 1
sprite v6 v9 1
v6 += 8
sprite v6 v7 1
sprite v6 v9 1
v6 += 8
sprite v6 v7 1
sprite v6 v9 1
v6 += 8
i := D3
sprite v6 v7 1
sprite v6 v9 1
i := D13
v6 := 19
v7 := 17
Sub1
i := D16
load v3
if v3 == vD then jump L20
v0 := v3
v0 -= vD
if vF != 1 then jump L22
jump L23
: L20
if v2 == vC then jump L21
v0 := v2
v0 -= vC
if vF != 1 then jump L22
jump L23
: L21
v0 := v1
v0 -= vB
if vF != 0 then jump L23
: L22
i := D16
v3 := vD
v2 := vC
v1 := vB
save v3
: L23
i := D16
load v3
v6 := 19
v7 += -7
vD := v3
vC := v2
vB := v1
i := D14
Sub1
loop
v1 := random 0b111111
v2 := random 0b11111
v0 := 13
v0 -= v1
if vF != 0 then jump L25
v0 := 48
v0 =- v1
if vF != 0 then jump L25
v0 := 3
v0 -= v2
if vF != 0 then jump L25
v0 := 24
v0 =- v2
if vF != 0 then jump L25
jump L26
: L25
v3 := random 0b1111
i := hex v3
sprite v1 v2 5
: L26
v0 := 15
if v0 key then jump L27
v0 := 14
if v0 key then jump L28
again
: L27
clear
Sub2
jump L5
: L28
clear
jump L5
: Sub1
sprite v6 v7 5
i := D15
v6 += 2
sprite v6 v7 4
i := hex vD
v6 += 10
sprite v6 v7 5
i := hex vC
v6 += 5
sprite v6 v7 5
i := hex vB
v6 += 5
sprite v6 v7 5
return
: Sub2
i := D2
v1 := 0
v2 := 0
v6 := 31
loop
sprite v1 v2 1
sprite v1 v6 1
v1 += 8
if v1 != 64 then
again
i := D4
v2 := 1
v5 := 63
sprite v1 v2 15
sprite v5 v2 15
v2 += 15
sprite v1 v2 15
sprite v5 v2 15
return
: Sub3
v1 := 12
v2 := 7
i := D5
sprite v1 v2 10
i := D6
v1 += 6
sprite v1 v2 10
i := D7
v1 += 6
sprite v1 v2 10
i := D6
v1 += 6
sprite v1 v2 10
i := D8
v1 += 6
sprite v1 v2 10
i := D6
v1 += 6
sprite v1 v2 10
v1 := 14
v2 := 24
i := D9
sprite v1 v2 3
i := D10
v1 += 8
v2 += -1
sprite v1 v2 4
v1 += 9
v2 += -2
i := D11
sprite v1 v2 6
v1 += 6
v2 += 1
i := D12
sprite v1 v2 5
return
: Sub4
vD := 197
loop
vB := random 0b111111
vE := vB
vE += vD
if vF == 1 then
again
vB += 1
vD := -26
loop
vC := random 0b11111
vE := vC
vE += vD
if vF == 1 then
again
vC += 1
vD := 0
vE := random 0b111111
vE += 64
delay := vE
vE := random 0b111111
vE += 64
return
: D1
0x80 0x0
: D2
0xff 0x0
: D3
0xfe 0x0
: D4
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D5
0x1f 0x10 0x10 0x10 0x1f 0x1 0x1 0x1 0x1 0x1f
: D6
0x11 0x11 0x11 0x11 0x1f 0x4 0x4 0x4 0x4 0x4
: D7
0x1f 0x1 0x2 0x2 0x4 0x4 0x8 0x8 0x10 0x1f
: D8
0x1f 0x11 0x10 0x10 0x10 0x13 0x11 0x11 0x11 0x1f
: D9
0x5 0x5 0x2 0x0
: D10
0x71 0x51 0x51 0x75
: D11
0xc 0x12 0x1e 0x14 0x12 0x9
: D12
0x14 0x3e 0x15 0x15 0x2a 0x0
: D13
0x77 0x44 0x24 0x14 0x77 0x0
: D14
0x57 0x52 0x72 0x52 0x57 0x0
: D15
0x0 0x1 0x0 0x1
: D16
0x0 0x0 0x0 0x0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D17
######################################################################
# INPUT: chip8/Chip-8 Games/Tank.ch8
######################################################################
:proto L2 # 230
:proto Sub1 # 27C
:proto L6 # 288
:proto Sub2 # 2AE
:proto Sub3 # 2C6
:proto Sub4 # 2EC
:proto Sub5 # 30A
:proto Sub6 # 314
:proto L8 # 332
:proto L10 # 344
:proto Sub7 # 362
:proto L11 # 366
:proto L12 # 382
:proto L13 # 384
:proto L14 # 38C
:proto Sub8 # 39A
:proto Sub9 # 3AC
:proto Sub10 # 3BE
:proto L16 # 3CE
:proto Sub11 # 3D4
:proto Sub12 # 3EC
:proto Sub13 # 3F2
:proto D7 # 3FF
:proto D8 # 419
:proto D9 # 41A
:proto D10 # 41F
:proto D11 # 427
: main
jump L2
: L1
v6 += -5
v0 := 32
v0 -= v6
if vF == 0 then v6 := 0
jump L13
0x0 0xff 0x0 0x0
: D1
0x0 0x1 0x0 0xc 0xa
: D2
0x0 0x19
: D3
0x2 0x4 0x6 0x8
: D4
0x2 0x2 0x3 0x2c 0x0 0xf
: D5
0x0 0x2 0x5 0x2e 0x8 0x0
: D6
0x0 0x2 0x5 0x0 0x0 0x0 0x0
: L2
vE := 0
vD := 160
vA := 8
v9 := 6
v8 := 4
v7 := 2
v6 := 25
v4 := 16
v3 := 12
v2 := 0
v1 := 6
i := D1
save vA
: L3
Sub11
v0 := 64
delay := v0
loop
v0 := delay
if v0 != 0 then
again
Sub11
Sub5
Sub7
i := D1
load v5
Sub2
loop
Sub3
Sub4
if vF != 1 then Sub6
if vF != 1 then Sub4
if vF != 1 then Sub4
if vF != 1 then Sub1
if vF == 1 then jump L11
again
: Sub1
i := D1
load v5
if v6 == 0 then if v5 != 0 then jump L6
jump L14
: L6
if v7 key then v2 := 9
if v8 key then v2 := 4
if v9 key then v2 := 6
if vA key then v2 := 1
if v2 == 0 then return
Sub2
v1 := v2
Sub8
Sub9
vC := 1
v2 := 0
vF := 0
i := D1
save v5
: Sub2
i := D7
if v1 == 1 then v0 := 0
if v1 == 4 then v0 := 19
if v1 == 6 then v0 := 13
if v1 == 9 then v0 := 6
i += v0
sprite v3 v4 7
return
: Sub3
v0 := 5
if v0 -key then return
if v5 == 15 then return
v5 := 15
v6 += -1
i := D1
save v5
v4 += 3
v3 += 3
Sub8
Sub8
Sub8
i := D5
save v5
i := D8
sprite v3 v4 1
return
: Sub4
i := D5
load v5
if v5 == 0 then return
i := D8
sprite v3 v4 1
Sub8
vC := 2
Sub10
if vB == 187 then jump Sub5
sprite v3 v4 1
: L7
i := D5
save v5
return
: Sub5
v5 := 0
v0 := 0
i := D2
save v0
jump L7
: Sub6
i := D4
load v5
if v5 != 15 then jump L10
i := D9
sprite v3 v4 5
if v2 != 0 then jump L8
v1 := random 0b11
i := D3
i += v1
load v0
v1 := v0
v2 := random 0b1111
v2 += 1
: L8
Sub8
i := D9
vC := 3
v2 += -1
vF := 0
sprite v3 v4 5
: L9
i := D4
save v5
return
: L10
v4 := random 0b111
i := D10
i += v4
load v0
v3 := v0
i := D11
i += v4
load v0
v4 := v0
i := D9
sprite v3 v4 5
v0 := 32
buzzer := v0
v5 := 15
jump L9
: Sub7
v5 := 0
jump L9
: L11
if vC == 1 then jump L1
if vC == 2 then jump L12
i := D5
load v5
if v5 == 0 then jump L1
i := D8
sprite v3 v4 1
vF := 0
sprite v3 v4 1
if vF != 1 then jump L1
: L12
vE += 10
: L13
v0 := 64
buzzer := v0
clear
jump L3
: L14
clear
Sub11
v0 := 96
buzzer := v0
loop
again
0x6e 0x0 0x13 0x84
: Sub8
if v1 == 1 then v4 += -1
if v1 == 4 then v3 += -1
if v1 == 6 then v3 += 1
if v1 == 9 then v4 += 1
return
: Sub9
if v4 == 0 then v4 += 1
if v3 == 0 then v3 += 1
if v3 == 56 then v3 += -1
if v4 == 24 then v4 += -1
return
: Sub10
vB := 0
if v4 == 0 then jump L16
if v3 == 0 then jump L16
if v3 == 63 then jump L16
if v4 == 31 then : L16
vB := 187
vF := 0
return
: Sub11
v3 := 8
v4 := 8
i := D6
bcd vE
load v2
Sub12
v3 := 40
i := D6
bcd v6
load v2
Sub13
return
: Sub12
i := hex v0
sprite v3 v4 5
v3 += 6
: Sub13
i := hex v1
sprite v3 v4 5
v3 += 6
i := hex v2
sprite v3 v4 5
return
0x1
: D7
0x10 0x54 0x7c 0x6c 0x7c 0x7c 0x44 0x7c 0x7c 0x6c 0x7c 0x54 0x10 0x0 0xfc 0x78 0x6e 0x78 0xfc 0x0 0x3f 0x1e 0x76 0x1e 0x3f 0x0
: D8
0x80
: D9
0xa8 0x70 0xf8 0x70 0xa8
: D10
0xb 0x1b 0x28 0x38 0x30 0x20 0x10 0x0
: D11
0x0 0x0 0x0 0x8 0x1b 0x1b 0x1b 0x18 0x4
######################################################################
# INPUT: chip8/Chip-8 Games/Tapeworm [JDR, 1999].ch8
######################################################################
:proto D1 # 206
:proto L1 # 238
:proto L3 # 24A
:proto D9 # 25E
:proto L5 # 268
:proto D10 # 292
:proto L6 # 2AA
:proto L8 # 2CA
:proto L12 # 30E
: main
clear
i := D1
jump L1
: D1
0xff
: D2
0x80
: D3
0xfb 0x22 0x22 0x23 0x22 0x22 0x22 0x0
: D4
0xef 0x28 0x28 0xef 0x28 0x28 0x28 0x0
: D5
0xbd 0xa1 0xa1 0xb9 0x21 0x20 0x3c 0x0
: D6
0xb 0xa 0xa 0xa 0xa 0xaa 0x53 0x0
: D7
0xef 0x28 0x28 0x2f 0x2a 0x29 0xe8 0x0
: D8
0xb6 0xaa 0xa2 0xa2 0x22 0x22 0xa2 0x0
: L1
v4 := 0
v5 := 0
v6 := 31
loop
sprite v4 v5 1
sprite v4 v6 1
v4 += 8
if v4 == 64 then jump L3
again
: L3
i := D9
v4 := 0
v5 := 63
v6 := 1
loop
sprite v4 v6 10
sprite v5 v6 10
v6 += 10
if v6 == 31 then jump L5
again
: D9
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: L5
v4 := 8
v5 := 8
i := D3
sprite v4 v5 7
v4 += 8
i := D4
sprite v4 v5 7
v4 += 8
i := D5
sprite v4 v5 7
v4 += 8
i := D6
sprite v4 v5 7
v4 += 8
i := D7
sprite v4 v5 7
i := D8
v4 += 8
sprite v4 v5 7
i := D10
jump L6
: D10
0xf7 0x14 0x14 0x94 0xf7 0x0
: D11
0x38 0xa8 0xb8 0xb1 0x2a 0x0
: D12
0x4e 0xca 0x4e 0x42 0xee 0x0
: D13
0xee 0xaa 0xee 0x22 0xee 0x0
: L6
v4 := 17
v5 := 19
sprite v4 v5 5
v4 += 8
i := D11
sprite v4 v5 5
v4 += 9
i := D12
sprite v4 v5 5
v4 += 8
i := D13
sprite v4 v5 5
v0 := 15
loop
if v0 key then jump L8
again
: L8
clear
: L9
v5 := 31
v6 := 15
i := D2
v7 := 6
v8 := 2
: L10
sprite v5 v6 1
if vF == 1 then jump L12
delay := v8
loop
v0 := delay
if v0 != 0 then
again
v0 := 2
if v0 key then v7 := 2
v0 := 4
if v0 key then v7 := 4
v0 := 6
if v0 key then v7 := 6
v0 := 8
if v0 key then v7 := 8
if v7 == 2 then v6 += -1
if v7 == 8 then v6 += 1
if v7 == 4 then v5 += -1
if v7 == 6 then v5 += 1
jump L10
: L12
v0 := 6
buzzer := v0
v0 := 15
loop
if v0 -key then
again
clear
jump L9
######################################################################
# INPUT: chip8/Chip-8 Games/Tetris [Fran Dachille, 1991].ch8
######################################################################
:proto L5 # 23C
:proto L6 # 250
:proto Sub1 # 25C
:proto Sub2 # 272
:proto Sub3 # 284
:proto Sub4 # 296
:proto D1 # 2B4
:proto Sub5 # 2B6
:proto D2 # 2C4
:proto Sub6 # 334
:proto Sub7 # 340
:proto Sub8 # 35E
:proto Sub9 # 372
:proto L13 # 390
:proto L14 # 394
:proto L15 # 3A6
:proto Sub10 # 3C0
:proto Sub11 # 3E6
:proto D3 # 700
:proto D4 # 804
: main
i := D1
Sub11
Sub5
loop
v0 += 1
sprite v0 v1 1
if v0 != 37 then
again
loop
v1 += -1
sprite v0 v1 1
v0 := 26
sprite v0 v1 1
v0 := 37
if v1 != 0 then
again
: L3
loop
v4 := random 0b1110000
if v4 == 112 then
again
v3 := random 0b11
v0 := 30
v1 := 3
Sub1
: L4
delay := v5
sprite v0 v1 4
if vF != 1 then jump L5
sprite v0 v1 4
v1 += -1
sprite v0 v1 4
Sub7
jump L3
: L5
loop
if v7 key then Sub2
if v8 key then Sub3
if v9 key then Sub4
if v2 -key then jump L6
v6 := 0
delay := v6
: L6
v6 := delay
if v6 != 0 then
again
sprite v0 v1 4
v1 += 1
jump L4
: Sub1
i := D2
i += v4
v6 := 0
if v3 == 1 then v6 := 4
if v3 == 2 then v6 := 8
if v3 == 3 then v6 := 12
i += v6
return
: Sub2
sprite v0 v1 4
v0 += -1
Sub6
if vF != 1 then return
sprite v0 v1 4
v0 += 1
Sub6
return
: Sub3
sprite v0 v1 4
v0 += 1
Sub6
if vF != 1 then return
sprite v0 v1 4
v0 += -1
Sub6
return
: Sub4
sprite v0 v1 4
v3 += 1
if v3 == 4 then v3 := 0
Sub1
Sub6
if vF != 1 then return
sprite v0 v1 4
v3 += -1
if v3 == -1 then v3 := 3
Sub1
Sub6
return
: D1
0x80 0x0
: Sub5
v7 := 5
v8 := 6
v9 := 4
v1 := 31
v5 := 16
v2 := 7
return
: D2
0x40 0xe0 0x0 0x0 0x40 0xc0 0x40 0x0 0x0 0xe0 0x40 0x0 0x40 0x60 0x40 0x0 0x40 0x40 0x60 0x0 0x20 0xe0 0x0 0x0 0xc0 0x40 0x40 0x0 0x0 0xe0 0x80 0x0 0x40 0x40 0xc0 0x0 0x0 0xe0 0x20 0x0 0x60 0x40 0x40 0x0 0x80 0xe0 0x0 0x0 0x40 0xc0 0x80 0x0 0xc0 0x60 0x0 0x0 0x40 0xc0 0x80 0x0 0xc0 0x60 0x0 0x0 0x80 0xc0 0x40 0x0 0x0 0x60 0xc0 0x0 0x80 0xc0 0x40 0x0 0x0 0x60 0xc0 0x0 0xc0 0xc0 0x0 0x0 0xc0 0xc0 0x0 0x0 0xc0 0xc0 0x0 0x0 0xc0 0xc0 0x0 0x0 0x40 0x40 0x40 0x40 0x0 0xf0 0x0 0x0 0x40 0x40 0x40 0x40 0x0 0xf0 0x0 0x0
: Sub6
sprite v0 v1 4
v6 := 53
loop
v6 += -1
if v6 != 0 then
again
return
: Sub7
i := D1
vC := v1
if vC != 30 then vC += 1
if vC != 30 then vC += 1
if vC != 30 then vC += 1
loop
Sub8
if vB == 10 then Sub9
if v1 == vC then return
v1 += 1
again
: Sub8
v0 := 27
vB := 0
loop
sprite v0 v1 1
if vF != 0 then vB += 1
sprite v0 v1 1
v0 += 1
if v0 != 37 then
again
return
: Sub9
v0 := 27
loop
sprite v0 v1 1
v0 += 1
if v0 != 37 then
again
vE := v1
vD := vE
vE += -1
: L11
v0 := 27
vB := 0
loop
sprite v0 vE 1
if vF != 0 then jump L13
sprite v0 vE 1
jump L14
: L13
sprite v0 vD 1
vB += 1
: L14
v0 += 1
if v0 != 37 then
again
if vB == 0 then jump L15
vD += -1
vE += -1
if vD != 1 then jump L11
: L15
Sub10
if vF != 1 then Sub10
vA += 1
Sub10
v0 := vA
vD := 7
v0 &= vD
if v0 == 4 then v5 += -2
if v5 == 2 then v5 := 4
return
: Sub10
i := D3
save v2
i := D4
bcd vA
load v2
i := hex v0
vD := 50
vE := 0
sprite vD vE 5
vD += 5
i := hex v1
sprite vD vE 5
vD += 5
i := hex v2
sprite vD vE 5
i := D3
load v2
i := D1
return
: Sub11
vA := 0
v0 := 25
return
0x37 0x23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D4
######################################################################
# INPUT: chip8/Chip-8 Games/Tic-Tac-Toe [David Winter].ch8
######################################################################
:proto L1 # 218
:proto Sub1 # 27C
:proto L8 # 28A
:proto Sub2 # 2C8
:proto Sub3 # 344
:proto Sub4 # 34A
:proto L10 # 354
:proto L11 # 35A
:proto L12 # 35E
:proto Sub5 # 366
:proto Sub6 # 388
:proto Sub7 # 394
:proto D1 # 39A
:proto D2 # 39B
:proto D3 # 3AA
:proto D4 # 3AF
:proto D5 # 3B4
:proto D6 # 3C4
:proto D7 # 3D4
:proto D8 # 3E6
: main
jump L1
0x54 0x49 0x43 0x54 0x41 0x43 0x20 0x62 0x79 0x20 0x44 0x61 0x76 0x69 0x64 0x20 0x57 0x49 0x4e 0x54 0x45 0x52
: L1
vB := 0
vC := 0
: L2
v0 := vB
v1 := vC
i := D8
save v1
i := D6
load vF
i := D5
save vF
i := D8
load v1
vB := v0
vC := v1
clear
vE := 1
v0 := 19
v1 := 3
i := D1
: L3
loop
sprite v0 v1 1
v0 += 8
if v0 != 43 then jump L3
v0 := 19
v1 += 8
if v1 != 35 then
again
v0 := 19
v1 := 3
i := D2
loop
sprite v0 v1 15
v0 += 8
if v0 != 51 then
again
v0 := 19
v1 += 15
loop
sprite v0 v1 10
v0 += 8
if v0 != 51 then
again
Sub5
: L6
loop
v0 := key
v1 := v0
i := D5
i += v0
load v0
if v0 == 0 then jump L8
Sub1
again
: Sub1
v0 := 16
buzzer := v0
delay := v0
loop
v0 := delay
if v0 != 0 then
again
return
: L8
v0 := 2
vE ^= v0
v0 := vE
save v0
i := D7
v0 := v1
v0 += -1
v0 += v0
i += v0
load v1
i := D3
if vE != 3 then i := D4
sprite v0 v1 5
Sub2
if vA != 0 then jump L2
i := D5
v1 := 0
v2 := 0
v3 := 1
loop
load v0
if v0 != 0 then v1 += 1
i += v3
v2 += 1
if v2 != 16 then
again
if v1 != 16 then jump L6
jump L2
: Sub2
vA := 0
i := D5
v0 := 1
i += v0
load v8
v9 := 0
v9 += v0
Sub3
v9 += v1
Sub3
v9 += v2
Sub4
v9 := 0
v9 += v3
Sub3
v9 += v4
Sub3
v9 += v5
Sub4
v9 := 0
v9 += v6
Sub3
v9 += v7
Sub3
v9 += v8
Sub4
v9 := 0
v9 += v6
Sub3
v9 += v3
Sub3
v9 += v0
Sub4
v9 := 0
v9 += v7
Sub3
v9 += v4
Sub3
v9 += v1
Sub4
v9 := 0
v9 += v8
Sub3
v9 += v5
Sub3
v9 += v2
Sub4
v9 := 0
v9 += v8
Sub3
v9 += v4
Sub3
v9 += v0
Sub4
v9 := 0
v9 += v6
Sub3
v9 += v4
Sub3
v9 += v2
Sub4
return
: Sub3
v9 <<= v0
v9 <<= v0
return
: Sub4
if v9 == 21 then jump L10
if v9 == 63 then jump L11
return
: L10
Sub5
vB += 1
jump L12
: L11
Sub5
vC += 1
: L12
Sub5
vA := 1
v0 := key
return
: Sub5
v3 := 5
v4 := 10
i := D4
sprite v3 v4 5
v3 := 2
v4 += 6
i := D8
bcd vB
Sub6
v3 := 50
v4 := 10
i := D3
sprite v3 v4 5
v3 := 47
v4 += 6
i := D8
bcd vC
: Sub6
load v2
i := hex v0
Sub7
i := hex v1
Sub7
i := hex v2
: Sub7
sprite v3 v4 5
v3 += 5
return
: D1
0x7f
: D2
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D3
0x1c 0x22 0x22 0x22 0x1c
: D4
0x22 0x14 0x8 0x14 0x22
: D5
0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x1 0x1 0x1 0x1 0x1
: D6
0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x1 0x1 0x1 0x1 0x1
: D7
0x13 0x5 0x1b 0x5 0x23 0x5 0x13 0xd 0x1b 0xd 0x23 0xd 0x13 0x15 0x1b 0x15 0x23 0x15
: D8
######################################################################
# INPUT: chip8/Chip-8 Games/Timebomb.ch8
######################################################################
:proto L2 # 21A
:proto L3 # 22A
:proto Sub1 # 23A
:proto L4 # 256
:proto L6 # 274
:proto D1 # 28A
: main
clear
vA := 5
Sub1
: L1
loop
v0 := 2
if v0 key then jump L2
v0 := 8
if v0 key then jump L3
v0 := 5
if v0 key then jump L4
jump L1
: L2
if vA == -16 then jump L1
Sub1
vA += 1
Sub1
v0 := 2
buzzer := v0
jump L1
: L3
if vA == 5 then jump L1
Sub1
vA += -1
Sub1
v0 := 2
buzzer := v0
again
: Sub1
i := D1
bcd vA
load v2
v3 := 25
v4 := 14
i := hex v0
sprite v3 v4 5
v3 += 5
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
return
: L4
v0 := 60
delay := v0
: L5
loop
v0 := delay
if v0 != 0 then jump L5
Sub1
vA += -1
Sub1
v0 := 5
buzzer := v0
if vA == 0 then jump L6
v0 := 60
delay := v0
again
: L6
clear
v0 := 50
buzzer := v0
v0 := 20
delay := v0
loop
v0 := delay
if v0 != 0 then
again
vA := 5
Sub1
jump L1
: D1
0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/Tron.ch8
######################################################################
:proto L2 # 22E
:proto L3 # 234
:proto L5 # 24C
:proto L7 # 260
:proto L11 # 2D0
:proto L12 # 2DA
:proto L13 # 2E2
:proto Sub1 # 2FC
:proto Sub2 # 306
:proto Sub3 # 310
:proto Sub4 # 31A
:proto Sub5 # 324
:proto Sub6 # 32E
:proto Sub7 # 338
:proto Sub8 # 342
:proto D1 # 34C
:proto D2 # 355
:proto D3 # 35E
:proto D4 # 367
:proto D5 # 370
:proto D6 # 37A
: main
clear
i := D1
v3 := 18
v4 := 11
sprite v3 v4 9
v3 += 8
i := D2
sprite v3 v4 9
v3 += 8
i := D3
sprite v3 v4 9
v3 += 8
i := D4
sprite v3 v4 9
v3 := 0
v4 := 0
: L1
loop
v0 := 15
if v0 key then jump L2
v0 := 11
if v0 key then jump L3
again
: L2
v5 := 1
clear
jump L7
: L3
v5 := 2
clear
v0 := 0
v1 := 0
v2 := 31
i := D1
loop
sprite v0 v1 1
sprite v0 v2 1
v0 += 8
if v0 == 64 then jump L5
again
: L5
v0 := 1
v1 := 0
v2 := 63
i := D5
loop
sprite v1 v0 10
sprite v2 v0 10
v0 += 10
if v0 == 31 then jump L7
again
: L7
i := D5
vC := 32
vB := 15
vA := 31
vD := 15
v6 := -1
v7 := 0
v8 := 1
v9 := 0
sprite vA vB 1
sprite vC vD 1
v0 := 0
loop
if v0 -key then
again
v0 := 10
buzzer := v0
: L9
v0 := 1
if v0 key then Sub1
v0 += 3
if v0 key then Sub2
v0 += 3
if v0 key then Sub3
v0 += 3
if v0 key then Sub4
v0 := 3
if v0 key then Sub5
v0 += 9
if v0 key then Sub6
v0 += -3
if v0 key then Sub7
v0 += 5
if v0 key then Sub8
vA += v6
vC += v8
vB += v7
vD += v9
sprite vA vB 1
if vF == 1 then jump L11
sprite vC vD 1
if vF == 1 then jump L12
v0 := 2
delay := v0
loop
v0 := delay
if v0 != 0 then
again
jump L9
: L11
clear
v4 += 1
if v4 == 10 then v4 := 0
jump L13
: L12
clear
v3 += 1
if v3 == 10 then v3 := 0
: L13
v0 := 10
buzzer := v0
i := hex v3
v0 := 25
v1 := 13
sprite v0 v1 5
i := D6
v0 += 6
sprite v0 v1 4
i := hex v4
v0 += 5
sprite v0 v1 5
jump L1
: Sub1
if v7 == 1 then return
v6 := 0
v7 := -1
return
: Sub2
if v7 == -1 then return
v6 := 0
v7 := 1
return
: Sub3
if v9 == 1 then return
v8 := 0
v9 := -1
return
: Sub4
if v9 == -1 then return
v8 := 0
v9 := 1
return
: Sub5
if v6 == 1 then return
v6 := -1
v7 := 0
return
: Sub6
if v6 == -1 then return
v6 := 1
v7 := 0
return
: Sub7
if v8 == 1 then return
v8 := -1
v9 := 0
return
: Sub8
if v8 == -1 then return
v8 := 1
v9 := 0
return
: D1
0xff 0x80 0xbe 0x88 0x88 0x88 0x88 0x80 0xff
: D2
0xff 0x0 0xfb 0x8a 0xfa 0x92 0x8b 0x0 0xff
: D3
0xff 0x0 0xe8 0x2c 0x2a 0x29 0xe8 0x0 0xff
: D4
0xe0 0x20 0xa0 0xa0 0xa0 0xa0 0xa0 0x20 0xe0
: D5
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D6
0x0 0x40 0x0 0x40
######################################################################
# INPUT: chip8/Chip-8 Games/UFO [Lutz V, 1992].ch8
######################################################################
:proto L5 # 286
:proto L6 # 28C
:proto L7 # 292
:proto L8 # 296
:proto Sub1 # 2A2
:proto Sub2 # 2AC
:proto Sub3 # 2B6
:proto D1 # 2CD
:proto D2 # 2D0
:proto D3 # 2D3
:proto D4 # 2D6
:proto Sub4 # 2D8
:proto D5 # 2F8
: main
i := D1
v9 := 56
vA := 8
sprite v9 vA 3
i := D2
vB := 0
vC := 3
sprite vB vC 3
i := D4
v4 := 29
v5 := 31
sprite v4 v5 1
v7 := 0
v8 := 15
Sub1
: L1
Sub2
if v8 == 0 then loop
again
v4 := 30
v5 := 28
i := D3
sprite v4 v5 3
vE := 0
: L3
v6 := 128
vD := 4
if vD key then v6 := -1
vD := 5
if vD key then v6 := 0
vD := 6
if vD key then v6 := 1
if v6 != 128 then Sub4
loop
i := D2
sprite vB vC 3
vD := random 0b1
vB += vD
sprite vB vC 3
if vF != 0 then jump L7
i := D1
sprite v9 vA 3
vD := random 0b1
if vD != 0 then vD := -1
v9 += -2
sprite v9 vA 3
if vF != 0 then jump L6
if vE == 0 then jump L3
i := D3
sprite v4 v5 3
if v5 == 0 then jump L5
v5 += -1
v4 += v6
sprite v4 v5 3
if vF != 1 then
again
vD := 8
vD &= v5
if vD == 8 then jump L6
jump L7
: L5
Sub2
v8 += -1
jump L1
: L6
Sub1
v7 += 5
jump L8
: L7
Sub1
v7 += 15
: L8
Sub1
vD := 3
buzzer := vD
i := D3
sprite v4 v5 3
jump L5
: Sub1
i := D5
bcd v7
v3 := 0
Sub3
return
: Sub2
i := D5
bcd v8
v3 := 50
Sub3
return
: Sub3
vD := 27
load v2
i := hex v0
sprite v3 vD 5
v3 += 5
i := hex v1
sprite v3 vD 5
v3 += 5
i := hex v2
sprite v3 vD 5
return
0x1
: D1
0x7c 0xfe 0x7c
: D2
0x60 0xf0 0x60
: D3
0x40 0xe0 0xa0
: D4
0xf8 0xd4
: Sub4
vE := 1
vD := 16
buzzer := vD
return
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D5
######################################################################
# INPUT: chip8/Chip-8 Games/Vers [JMN, 1991].ch8
######################################################################
:proto L1 # 21A
:proto L6 # 2B4
:proto L7 # 2B8
:proto L8 # 2BA
:proto L11 # 2E4
: main
jump L1
0x4a 0x4d 0x4e 0x20 0x31 0x39 0x39 0x31 0x20 0x53 0x4f 0x46 0x54 0x57 0x41 0x52 0x45 0x53 0x20
: D1
0x80 0x80
: D2
0xff 0x0 0x0
: L1
v3 := 0
v7 := 0
: L2
clear
i := D2
v0 := 0
v1 := 0
loop
sprite v0 v1 1
v1 += -1
sprite v0 v1 1
v1 += 1
v0 += 8
if v0 != 64 then
again
v1 += 1
i := D1
loop
sprite v0 v1 2
v0 += -1
sprite v0 v1 2
v0 += 1
v1 += 2
if v1 != 31 then
again
v0 := 8
v1 := 16
v2 := 4
v4 := 55
v5 := 15
v6 := 2
sprite v0 v1 1
sprite v4 v5 1
loop
v8 := 1
if v8 key then v2 := 2
v8 := 2
if v8 key then v2 := 4
v8 := 7
if v8 key then v2 := 1
v8 := 10
if v8 key then v2 := 3
v8 := 11
if v8 key then v6 := 2
v8 := 15
if v8 key then v6 := 4
v8 := 12
if v8 key then v6 := 1
v8 := 13
if v8 key then v6 := 3
if v2 == 1 then v1 += -1
if v2 == 2 then v0 += -1
if v2 == 3 then v1 += 1
if v2 == 4 then v0 += 1
if v6 == 1 then v5 += -1
if v6 == 2 then v4 += -1
if v6 == 3 then v5 += 1
if v6 == 4 then v4 += 1
sprite v0 v1 1
if vF != 0 then jump L6
sprite v4 v5 1
if vF != 0 then jump L7
again
: L6
v7 += 1
jump L8
: L7
v3 += 1
: L8
v8 := 0
loop
v8 += 1
if v8 != 0 then
again
clear
v0 := 8
v1 := 4
i := hex v3
sprite v0 v1 5
v0 := 52
i := hex v7
sprite v0 v1 5
v8 := 0
loop
v8 += 1
if v8 != 0 then
again
if v3 == 8 then jump L11
if v7 == 8 then jump L11
jump L2
: L11
loop
again
######################################################################
# INPUT: chip8/Chip-8 Games/Vertical Brix [Paul Robson, 1996].ch8
######################################################################
:proto Sub1 # 24A
:proto D1 # 254
:proto Sub2 # 25A
:proto L6 # 268
:proto L7 # 272
:proto L8 # 27C
:proto Sub3 # 288
:proto D2 # 2BA
:proto Sub4 # 2C0
:proto Sub5 # 2D0
:proto Sub6 # 346
:proto D3 # 364
:proto Sub7 # 366
:proto D4 # 386
:proto Sub8 # 38A
:proto D5 # 3A6
:proto Sub9 # 3AC
:proto Sub10 # 3B6
:proto D6 # 3CE
: main
clear
Sub10
loop
v0 := 7
if v0 -key then
again
: L2
v8 := 0
v7 := 3
Sub6
Sub1
Sub4
Sub7
Sub8
Sub9
v0 := key
: L3
loop
Sub2
Sub2
Sub5
Sub3
if vA != 0 then
again
vC := 1
Sub9
v7 += -1
Sub9
v0 := 120
delay := v0
loop
v0 := delay
if v0 != 0 then
again
if v7 != 0 then jump L3
Sub9
v0 := 7
loop
if v0 -key then
again
jump L2
0x0 0xfd
: Sub1
v9 := 16
v0 := 2
i := D1
sprite v0 v9 5
return
: D1
0x80 0x80 0x80 0x80 0x80 0x0
: Sub2
v0 := 1
if v0 key then jump L6
v0 := 4
if v0 key then jump L7
return
: L6
v0 := v9
v0 += -1
if v0 == 0 then return
jump L8
: L7
v0 := v9
v0 += 1
if v0 == 27 then return
jump L8
: L8
v1 := 2
i := D1
sprite v1 v9 5
sprite v1 v0 5
v9 := v0
return
: Sub3
v0 := vA
v0 += -2
if v0 != 0 then return
v0 := vB
v0 -= v9
if vF == 0 then return
v1 := v0
v2 := 5
v1 -= v2
if vF != 0 then return
i := D2
i += v0
load v0
vD := v0
if vB == 1 then vD := 1
if vB == 30 then vD := -1
vC := 1
v0 := 10
buzzer := v0
return
: D2
0xff 0xff 0x0 0x1 0x1 0x0
: Sub4
vB := random 0b100000
vB += 1
vA := 4
vC := 1
vD := 1
i := D3
sprite vA vB 1
return
: Sub5
v0 := vA
v1 := vB
vA += vC
vB += vD
i := D3
if vB == 1 then vD := 1
if vB == 30 then vD := -1
if vA == 62 then vC := -1
if vA == 0 then vC := 1
sprite v0 v1 1
sprite vA vB 1
if vF == 0 then return
v0 := vA
v1 := 33
v0 -= v1
if vF == 0 then return
v0 := vA
v1 := vB
v0 += 222
v1 += -1
v2 := -1
v3 := -1
v4 := 3
loop
v2 += 1
v0 -= v4
if vF != 0 then
again
loop
v3 += 1
v1 -= v4
if vF != 0 then
again
v0 := v2
v1 := v3
v0 += v2
v0 += v2
v1 += v3
v1 += v3
v0 += 34
v1 += 1
i := D4
sprite v0 v1 3
vE += -1
v0 := 0
vC =- v0
v0 := 2
buzzer := v0
Sub8
v8 += 1
Sub8
if vE != 0 then return
Sub7
return
: Sub6
clear
v0 := 0
v1 := 0
v2 := 31
i := D3
loop
sprite v0 v1 1
sprite v0 v2 1
v0 += 1
if v0 != 63 then
again
loop
sprite v0 v1 1
v1 += 1
if v1 != 32 then
again
return
: D3
0x80 0x0
: Sub7
v1 := 1
v3 := 10
i := D4
: L13
v0 := 34
v2 := 7
loop
sprite v0 v1 3
v0 += 3
v2 += -1
if v2 != 0 then
again
v1 += 3
v3 += -1
if v3 != 0 then jump L13
vE := 70
return
: D4
0xe0 0xa0 0xe0 0x0
: Sub8
i := D5
bcd v8
load v2
v3 := 3
v4 := 2
i := hex v0
sprite v3 v4 5
v3 += 5
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
return
: D5
0x0 0x0 0x0 0x0 0x0 0x0
: Sub9
v0 := 20
v1 := 2
i := hex v7
sprite v0 v1 5
return
: Sub10
v0 := 10
v1 := 12
v2 := 9
v3 := 5
i := D6
loop
sprite v0 v1 5
i += v3
v0 += 5
v2 += -1
if v2 != 0 then
again
return
: D6
0x90 0x90 0x90 0x90 0x60 0xe0 0x90 0xe0 0x90 0xe0 0xe0 0x90 0xe0 0x90 0x90 0x20 0x20 0x20 0x20 0x20 0x90 0x90 0x60 0x90 0x90 0x0 0x0 0x60 0x0 0x0 0xf0 0x90 0xf0 0x80 0x80 0xf0 0x80 0xf0 0x10 0xf0 0xe0 0x90 0xe0 0x90 0x90
######################################################################
# INPUT: chip8/Chip-8 Games/Wall [David Winter].ch8
######################################################################
:proto L1 # 218
:proto L7 # 27C
:proto L8 # 28A
:proto L10 # 2BE
:proto Sub1 # 2C4
:proto D1 # 2DA
:proto D2 # 2DF
:proto D3 # 2E4
:proto D4 # 2E5
: main
jump L1
0x20 0x57 0x41 0x4c 0x4c 0x20 0x62 0x79 0x20 0x44 0x61 0x76 0x69 0x64 0x20 0x57 0x49 0x4e 0x54 0x45 0x52 0x20
: L1
i := D3
v0 := 0
v1 := 0
v2 := 30
loop
sprite v0 v1 1
sprite v0 v2 1
v0 += 8
if v0 != 64 then
again
i := D2
v0 := 62
v1 := 1
loop
sprite v0 v1 5
v1 += 5
if v1 != 26 then
again
sprite v0 v1 4
v3 := 0
v4 := random 0b1111
v4 += 8
v5 := 1
v4 |= v5
v5 := 3
v6 := 2
v7 := 1
v8 := v4
v8 += 2
v9 := 1
vA := 4
vB := 0
i := D1
sprite v3 v4 5
sprite v7 v8 1
vC := key
: L4
Sub1
: L5
vC := 1
delay := vC
loop
vC := delay
if vC != 0 then
again
i := D1
vC := v7
vD := v8
if v9 -key then jump L7
if v4 == 1 then jump L7
sprite v3 v4 5
v4 += -2
sprite v3 v4 5
: L7
if vA -key then jump L8
if v4 == 25 then jump L8
sprite v3 v4 5
v4 += 2
sprite v3 v4 5
: L8
v7 += v5
v8 += v6
if v7 == 1 then v5 := 3
if v7 == 61 then v5 := -3
if v8 == 1 then v6 := 2
if v8 == 29 then v6 := -2
sprite vC vD 1
sprite v7 v8 1
if v7 != 1 then jump L5
vC := v8
vC -= v4
vD := 0
loop
if vC == vD then jump L10
vD += 1
if vD != 5 then
again
vC := key
Sub1
vB := 0
jump L4
: L10
Sub1
vB += 1
jump L4
: Sub1
i := D4
bcd vB
vC := 52
vD := 2
load v2
i := hex v1
sprite vC vD 5
vC += 5
i := hex v2
sprite vC vD 5
return
: D1
0x80 0x80 0x80 0x80 0x80
: D2
0xe0 0xe0 0xe0 0xe0 0xe0
: D3
0xff
: D4
######################################################################
# INPUT: chip8/Chip-8 Games/Wipe Off [Joseph Weisbecker].ch8
######################################################################
:proto L6 # 298
:proto L7 # 2A4
:proto L8 # 2AA
:proto D1 # 2CB
:proto D2 # 2CC
:proto D3 # 2CD
:proto D4 # 2F0
: main
i := D2
vA := 7
v1 := 0
: L1
vB := 8
v0 := 0
loop
sprite v0 v1 1
v0 += 8
vB += -1
if vB != 0 then
again
v1 += 4
vA += -1
if vA != 0 then jump L1
v6 := 0
v7 := 16
i := D3
v0 := 32
v1 := 30
sprite v0 v1 1
: L3
v3 := 29
v2 := 63
v2 &= v0
v7 += -1
if v7 == 0 then jump L8
vF := key
: L4
i := D1
sprite v2 v3 1
v5 := -1
v4 := random 0b1
if v4 != 1 then v4 := -1
: L5
loop
i := D3
vC := 0
vE := 4
if vE key then vC := -1
vE := 6
if vE key then vC := 1
sprite v0 v1 1
v0 += vC
sprite v0 v1 1
if vF == 1 then jump L6
if v2 == 0 then v4 := 1
if v2 == 63 then v4 := -1
if v3 == 0 then v5 := 1
if v3 == 31 then jump L7
i := D1
sprite v2 v3 1
v2 += v4
v3 += v5
sprite v2 v3 1
if vF != 1 then jump L5
if v3 == 30 then jump L6
vA := 2
buzzer := vA
v6 += 1
if v6 == 112 then jump L8
sprite v2 v3 1
v4 := random 0b1
if v4 != 1 then v4 := -1
v5 := random 0b1
if v5 != 1 then v5 := -1
again
: L6
vA := 3
buzzer := vA
i := D1
sprite v2 v3 1
v3 += -1
jump L4
: L7
i := D1
sprite v2 v3 1
jump L3
: L8
i := D3
sprite v0 v1 1
i := D4
bcd v6
load v2
v3 := 24
v4 := 27
i := hex v0
sprite v3 v4 5
v3 += 5
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
loop
again
0x1
: D1
0x80
: D2
0x44
: D3
0xff 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D4
######################################################################
# INPUT: chip8/Chip-8 Games/Worm V4 [RB-Revival Studios, 2007].ch8
######################################################################
:proto L1 # 25C
:proto Sub2 # 322
:proto L9 # 33C
:proto L10 # 352
:proto Sub3 # 370
:proto Sub4 # 374
:proto Sub5 # 380
:proto D4 # 386
:proto D5 # 38E
:proto D6 # 38F
:proto D7 # 392
:proto D8 # 395
:proto D9 # 397
:proto D10 # 39B
:proto D11 # 39C
:proto D12 # 3A5
:proto D13 # 4A5
: main
jump L1
: D1
0x57 0x6f 0x72 0x6d 0x20 0x76 0x2e 0x34 0x2c 0x20 0x62 0x79 0x3a 0x20 0x52 0x42 0x2c 0x20 0x43 0x68 0x69 0x70 0x2d 0x38 0x20 0x76 0x65 0x72 0x73 0x69 0x6f 0x6e 0x20 0x62 0x79 0x3a 0x20 0x4d 0x61 0x72 0x74 0x69 0x6a 0x6e 0x20 0x57 0x65 0x6e 0x74 0x69 0x6e 0x67 0x20 0x2f 0x20 0x52 0x65 0x76 0x69 0x76 0x61 0x6c 0x20 0x53 0x74 0x75 0x64 0x69 0x6f 0x73
: D2
0x0 0x52 0x42 0x39 0x32
: D3
0x0 0x0 0x0 0x1f 0x0 0x0 0x13 0x7c 0x0 0x0 0x6 0xe 0x1 0x0 0x4
: L1
clear
i := D3
load vE
i := D12
loop
save v0
i += vC
v1 += 1
if v1 != 0 then
again
i := D6
sprite vA vB 3
i := D5
loop
sprite v4 v2 1
sprite v4 v3 1
v4 += 2
if v4 != 58 then
again
i := D11
v3 := 0
loop
sprite v3 v2 1
sprite v4 v2 1
v2 += 1
if v2 != 31 then
again
i := D2
load v0
i := D1
bcd v0
i := D1
bcd v5
Sub2
Sub4
loop
i := D10
sprite v7 v6 1
v6 += 2
if v6 != 33 then
again
: L6
v3 := 6
delay := v3
i := D12
i += v8
load v0
v4 := v0
v0 := vA
i := D12
i += v8
save v0
i := D13
i += v8
load v0
v1 := v0
v0 := vB
i := D13
i += v8
save v0
i := D7
if v4 != 0 then sprite v4 v1 3
i := D4
i += v9
load v1
i := D8
sprite vA vB 2
vA += v0
vB += v1
i := D6
sprite vA vB 3
if vF != 0 then jump L9
v0 := random 0b1111
if v0 == 0 then Sub3
: L7
v8 += 1
if v8 == vE then v8 := 0
v3 := 6
delay := v3
loop
v6 := -1
v1 := 6
if v1 key then v6 := 0
v1 := 2
if v1 key then v6 := 2
v1 := 4
if v1 key then v6 := 4
v1 := 8
if v1 key then v6 := 6
if v6 != -1 then v9 := v6
v3 := delay
if v3 != 0 then
again
jump L6
: Sub1
Sub2
i := D1
bcd v5
: Sub2
v3 := 0
v4 := 60
i := D1
load v2
i := hex v0
sprite v4 v3 5
v3 += 6
i := hex v1
sprite v4 v3 5
v3 += 6
i := hex v2
sprite v4 v3 5
return
: L9
Sub5
i := D6
sprite vA vB 3
sprite vA vB 3
if vF != 0 then jump L10
v4 := 2
buzzer := v4
v5 += 1
Sub1
jump L7
: L10
v4 := 10
buzzer := v4
sprite vA vB 3
vA -= v0
vB -= v1
i := D8
sprite vA vB 2
i := D2
load v0
i := D2
v0 -= v5
v0 := v5
if vF == 0 then save v0
loop
again
: Sub3
vE += 1
return
: Sub4
i := D9
: L12
vC := random 0b111111
vD := random 0b11111
sprite vC vD 4
if vF == 0 then return
: Sub5
i := D9
sprite vC vD 4
jump L12
: D4
0x4 0x0 0x0 0xfc 0xfc 0x0 0x0 0x4
: D5
0xc0
: D6
0xe0 0xe0 0xe0
: D7
0xe0 0xa0 0xe0
: D8
0x0 0x40
: D9
0x30 0x58 0x78 0x30
: D10
0xf0
: D11
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D12
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D13
######################################################################
# INPUT: chip8/Chip-8 Games/X-Mirror.ch8
######################################################################
:proto Sub1 # 22E
:proto Sub2 # 238
:proto Sub3 # 244
:proto Sub4 # 250
:proto Sub5 # 25C
:proto D1 # 268
: main
v6 := 30
v7 := 15
v8 := 31
v9 := 15
vA := 30
vB := 16
vC := 31
vD := 16
i := D1
Sub1
loop
v0 := 2
if v0 key then Sub3
v0 := 8
if v0 key then Sub2
v0 := 4
if v0 key then Sub4
v0 := 6
if v0 key then Sub5
again
: Sub1
sprite v6 v7 1
sprite v8 v9 1
sprite vA vB 1
sprite vC vD 1
return
: Sub2
v7 += -1
v9 += -1
vB += 1
vD += 1
Sub1
return
: Sub3
v7 += 1
v9 += 1
vB += -1
vD += -1
Sub1
return
: Sub4
v6 += -1
v8 += 1
vA += -1
vC += 1
Sub1
return
: Sub5
v6 += 1
v8 += -1
vA += 1
vC += -1
Sub1
return
: D1
0x80 0x0
######################################################################
# INPUT: chip8/Chip-8 Games/ZeroPong [zeroZshadow, 2007].ch8
######################################################################
:proto L2 # 216
:proto L3 # 222
:proto L4 # 230
:proto L5 # 23C
:proto L7 # 26A
:proto L8 # 272
:proto L9 # 27A
:proto L10 # 288
:proto L11 # 28A
:proto L12 # 294
:proto L13 # 296
:proto L15 # 2AA
:proto D1 # 2B0
:proto D2 # 2B6
: main
jump L8
: L1
v0 := 3
delay := v0
i := D1
v0 := 10
if v0 -key then jump L2
sprite v7 v8 6
v8 += 1
sprite v7 v8 6
jump L3
: L2
v0 := 11
if v0 -key then jump L3
sprite v7 v8 6
v8 += -1
sprite v7 v8 6
: L3
v0 := 8
if v0 -key then jump L4
sprite v9 vA 6
vA += 1
sprite v9 vA 6
jump L5
: L4
v0 := 2
if v0 -key then jump L5
sprite v9 vA 6
vA += -1
sprite v9 vA 6
: L5
i := D2
sprite v3 v4 1
loop
v3 += v5
v4 += v6
if v3 == 0 then jump L9
if v3 == 63 then jump L9
if v4 == 0 then v6 := 1
if v4 == 31 then v6 := -1
sprite v3 v4 1
if vF != 1 then jump L7
if v3 == 2 then v5 := 1
if v3 == 62 then v5 := -1
sprite v3 v4 1
v0 := 200
buzzer := v0
again
: L7
v0 := 15
if v0 key then jump L8
jump L1
: L8
v7 := 2
v8 := 10
v9 := 62
vA := 10
: L9
v3 := 32
v4 := 16
v5 := random 0b1
if v5 == 0 then jump L10
v5 := -1
jump L11
: L10
v5 := 1
: L11
v6 := random 0b1
if v6 == 0 then jump L12
v6 := -1
jump L13
: L12
v6 := 1
: L13
clear
i := D1
sprite v7 v8 6
sprite v9 vA 6
i := D2
sprite v3 v4 1
loop
v0 := 15
if v0 key then jump L15
again
: L15
loop
if v0 -key then jump L1
again
: D1
0x80 0x80 0x80 0x80 0x80 0x80
: D2
0x80 0x0
######################################################################
# INPUT: chip8/Chip-8 Hires/Astro Dodge Hires [Revival Studios, 2008].ch8
######################################################################
# InvalidOpcode('02AC',)
:proto L1 # 260
: main
jump L1
0x1 0x7a 0x42 0x70 0x22 0x78 0x22 0x52 0xc4 0x19 0xf8 0x0 0xa0 0x9b 0xfa 0xe 0xb0 0xe2 0xe2 0x80 0xe2 0x20 0xa0 0xe2 0x3c 0x15 0x80 0xe2 0x20 0xa0 0x34 0x1c 0x98 0x32 0x29 0xab 0x2b 0x8b 0xb8 0x88 0x32 0x3 0x7b 0x28 0x30 0x4 0xf8 0x2 0xae 0x9b 0xbf 0xf8 0x0 0xaf 0xf8 0x0 0x5f 0x1f 0x8f 0x3a 0x38 0x2e 0x8e 0x3a 0x38 0xd4 0x1 0x9b 0xff 0x1 0xbb 0xd4
: D1
0x9b 0x7c 0x0 0xbc 0x30 0x86 0x9c 0x7c 0x0 0xbc 0xfb 0x10 0x30 0xfc
: D2
0x3a 0xb3
: D3
0x30 0xd9 0x2 0x45 0x2 0x30
: L1
v0 := 18
v1 := 190
i := main
save v1
i := D1
load vD
i := 224
save vD
i := D2
load v3
i := 252
save v3
i := 126
v0 := 63
save v0
i := 132
v0 := 48
v1 := 224
save v1
i := 215
v1 := -26
save v1
i := D3
load v3
i := 506
save v3
v0 := -6
i := 24
save v0
v0 := 6
i := 13
save v0
v0 := 2
i := 10
save v0
i := 3
save v0
0x2 0xac 0xf8 0x0 0xb0 0xa0 0x9b 0xb1 0xd0 0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x32 0x30 0x31 0x31 0x2 0x30 0x12 0xd4 0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x53 0x54 0x55 0x44 0x49 0x4f 0x53 0x32 0x30 0x30 0x38 0x2 0x30 0x6d 0x20 0xfd 0x15 0x24 0x26 0x24 0x2e 0x6d 0x40 0xfd 0x15 0x24 0x26 0x24 0x2e 0x6d 0x20 0xfd 0x15 0x24 0x26 0x2 0x30 0xa7 0x7b 0x24 0xee 0x24 0x86 0x6d 0x4 0x6c 0x0 0x60 0x5 0xe0 0x9e 0x13 0x0 0x13 0x14 0xfd 0x15 0x24 0x26 0x7c 0x1 0x4c 0x0 0x24 0x86 0x4c 0x4 0x24 0x86 0x4c 0x8 0x6c 0x0 0x12 0xf8 0x6d 0x2 0xfd 0x18 0xa7 0x7b 0x24 0xee 0x2 0x30 0x68 0x10 0x69 0x30 0x23 0xa8 0x23 0x4c 0x25 0x18 0x63 0x2c 0x64 0x0 0x25 0xe0 0x63 0x2c 0x64 0x6 0x25 0xf0 0x6d 0x0 0x6e 0x8 0x23 0x76 0x23 0xae 0x7d 0x8 0x4d 0x80 0x6d 0x0 0x7e 0x8 0x4e 0x80 0x6e 0x0 0x13 0x38 0x12 0xec 0x6c 0x0 0xa6 0xc6 0xfc 0x1e 0xf1 0x65 0xc1 0x3 0xa6 0xc6 0xfc 0x1e 0xf1 0x55 0xa6 0xfb 0xd0 0x18 0x7c 0x3 0x3c 0x9 0x13 0x4e 0x0 0xee 0x25 0x20 0x23 0xe0 0xc0 0xf 0x80 0x4 0x80 0x4 0x61 0x0 0x0 0xee 0x6c 0x0 0x65 0x0 0xa6 0xc6 0xfc 0x1e 0xf2 0x65 0xa6 0xfb 0xfd 0x1e 0xd0 0x18 0x81 0x24 0x83 0x10 0x64 0x3c 0x83 0x45 0x4f 0x1 0x23 0x68 0xa6 0xfb 0xfe 0x1e 0xd0 0x18 0xa6 0xc6 0xfc 0x1e 0xf1 0x55 0x75 0x18 0x7c 0x3 0x3c 0x9 0x13 0x7a 0x0 0xee 0xa6 0xf3 0xd8 0x98 0x0 0xee 0x23 0xa8 0x60 0x4 0xe0 0x9e 0x13 0xba 0x38 0x0 0x78 0xfe 0x60 0x6 0xe0 0x9e 0x13 0xc4 0x38 0x38 0x78 0x2 0x60 0x2 0xe0 0x9e 0x13 0xce 0x39 0x10 0x79 0xff 0x60 0x8 0xe0 0x9e 0x13 0xd8 0x39 0x18 0x79 0x1 0x23 0xa8 0x4f 0x1 0x13 0xee 0x0 0xee 0x63 0x2c 0x64 0x0 0x25 0x42 0x63 0x2c 0x64 0x6 0x25 0x7e 0x0 0xee 0x6d 0x1 0xfd 0x18 0x6d 0x4 0xfd 0x15 0x24 0x26 0x6d 0x1 0xfd 0x18 0x6d 0x4 0xfd 0x15 0x24 0x26 0x6d 0x1 0xfd 0x18 0x6d 0x4 0xfd 0x15 0x24 0x26 0x6d 0x1 0xfd 0x18 0x2 0x30 0x60 0x0 0x61 0x10 0x24 0xbc 0x63 0x16 0x64 0x2a 0x25 0xe0 0x60 0x5 0xe0 0x9e 0x14 0x1e 0x12 0xec 0xf0 0x7 0x30 0x0 0x14 0x26 0x0 0xee 0x6d 0x4 0x61 0x1d 0x60 0x1c 0x62 0x12 0xa6 0x9c 0xf2 0x1e 0xd0 0x16 0xfd 0x15 0x24 0x26 0x60 0x14 0x62 0xc 0xa6 0x9c 0xf2 0x1e 0xd0 0x16 0x60 0x24 0x62 0x18 0xa6 0x9c 0xf2 0x1e 0xd0 0x16 0xfd 0x15 0x24 0x26 0x60 0xc 0x62 0x6 0xa6 0x9c 0xf2 0x1e 0xd0 0x16 0x60 0x2c 0x62 0x1e 0xa6 0x9c 0xf2 0x1e 0xd0 0x16 0xfd 0x15 0x24 0x26 0xa6 0x9c 0x60 0x4 0xd0 0x16 0x60 0x34 0x62 0x24 0xa6 0x9c 0xf2 0x1e 0xd0 0x16 0xfd 0x15 0x24 0x26 0x0 0xee 0x62 0x6 0x60 0x0 0x61 0x30 0xa6 0xc 0xd0 0x16 0x70 0x8 0xf2 0x1e 0xd0 0x16 0x70 0x8 0xf2 0x1e 0xd0 0x16 0x70 0x8 0xf2 0x1e 0xd0 0x16 0x70 0x8 0xf2 0x1e 0xd0 0x16 0x70 0x8 0xf2 0x1e 0xd0 0x16 0x70 0x8 0xf2 0x1e 0xd0 0x16 0x70 0x8 0xf2 0x1e 0xd0 0x16 0x0 0xee 0x62 0xc 0xa6 0x3c 0xd0 0x1c 0x70 0x8 0xf2 0x1e 0xd0 0x1c 0x70 0x8 0xf2 0x1e 0xd0 0x1c 0x70 0x8 0xf2 0x1e 0xd0 0x1c 0x70 0x8 0xf2 0x1e 0xd0 0x1c 0x70 0x8 0xf2 0x1e 0xd0 0x1c 0x70 0x8 0xf2 0x1e 0xd0 0x1c 0x70 0x8 0xf2 0x1e 0xd0 0x1c 0x0 0xee 0x64 0x1 0x65 0x7 0x62 0x0 0x63 0x0 0x60 0x0 0x81 0x30 0x71 0xc 0xd0 0x11 0x71 0x8 0xf4 0x1e 0xd0 0x11 0xf4 0x1e 0x70 0x8 0x30 0x40 0x14 0xf8 0x73 0x3 0x83 0x52 0x72 0x1 0x32 0x8 0x14 0xf6 0x0 0xee 0x60 0x0 0xa6 0x2 0xf0 0x55 0x0 0xee 0xa6 0x2 0xf1 0x65 0x82 0x0 0x83 0x10 0x70 0x1 0x85 0x0 0x85 0x15 0x4f 0x1 0x81 0x0 0xa6 0x2 0xf3 0x55 0x0 0xee 0xf1 0x29 0xd3 0x45 0xf0 0x29 0xd3 0x45 0x0 0xee 0xa6 0x2 0xf2 0x65 0xa6 0x9 0xf2 0x33 0xa6 0x6 0xf0 0x33 0xa6 0x9 0xf0 0x65 0x81 0x0 0xa6 0x6 0xf0 0x65 0x50 0x10 0x25 0x38 0x73 0x5 0xa6 0xa 0xf0 0x65 0x81 0x0 0xa6 0x7 0xf0 0x65 0x50 0x10 0x25 0x38 0x73 0x5 0xa6 0xb 0xf0 0x65 0x81 0x0 0xa6 0x8 0xf0 0x65 0x50 0x10 0x25 0x38 0x0 0xee 0xa6 0x3 0xf2 0x65 0xa6 0x9 0xf2 0x33 0xa6 0x6 0xf0 0x33 0xa6 0x9 0xf0 0x65 0x81 0x0 0xa6 0x6 0xf0 0x65 0x50 0x10 0x25 0x38 0x73 0x5 0xa6 0xa 0xf0 0x65 0x81 0x0 0xa6 0x7 0xf0 0x65 0x50 0x10 0x25 0x38 0x73 0x5 0xa6 0xb 0xf0 0x65 0x81 0x0 0xa6 0x8 0xf0 0x65 0x50 0x10 0x25 0x38 0x0 0xee 0xa6 0x6 0xf0 0x65 0xf0 0x29 0xd3 0x45 0x73 0x5 0xa6 0x7 0xf0 0x65 0xf0 0x29 0xd3 0x45 0x73 0x5 0xa6 0x8 0xf0 0x65 0xf0 0x29 0xd3 0x45 0x73 0x5 0x62 0x0 0xf2 0x29 0xd3 0x45 0x0 0xee 0xa6 0x2 0xf2 0x65 0xa6 0x9 0xf2 0x33 0xa6 0x6 0xf0 0x33 0x25 0xba 0x0 0xee 0xa6 0x3 0xf2 0x65 0xa6 0x9 0xf2 0x33 0xa6 0x6 0xf0 0x33 0x25 0xba 0x0 0xee 0xff 0xff 0x0 0x14 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x3c 0x36 0x3c 0x30 0x30 0x0 0xf3 0xdb 0xf3 0xdb 0xdb 0x0 0xe7 0xc 0xc7 0x1 0xef 0x0 0x9e 0x30 0x1c 0x86 0x3c 0x0 0x1e 0x30 0x1c 0x6 0x3c 0x0 0xf3 0x66 0x67 0x66 0x66 0x0 0x9e 0xdb 0xde 0xdb 0xdb 0x0 0x78 0x30 0x30 0x30 0x30 0x1 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x1 0xe7 0xd 0xd 0x6f 0x6d 0x6d 0x6d 0x6d 0x6d 0x6d 0x6d 0xed 0x3f 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0x3e 0xb0 0xb0 0xbc 0xb0 0xb0 0xb0 0xb0 0xb0 0xb0 0xb0 0xbe 0x1c 0x36 0x36 0x36 0x36 0x36 0x36 0x36 0x36 0x36 0x36 0x1c 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0x7b 0x3b 0xef 0xd 0xd 0xcf 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xed 0x0 0x80 0x80 0x0 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x0 0x0 0xc 0x11 0x11 0x10 0x0 0x0 0x95 0x55 0x95 0xcd 0x0 0x0 0x53 0x55 0x55 0x33 0x40 0x40 0x44 0x42 0x41 0x46 0x0 0x40 0x6a 0x4a 0x4a 0x46 0x0 0x20 0x69 0xaa 0xaa 0x69 0x0 0x0 0x20 0x90 0x88 0x30 0x0 0x1 0x1 0x18 0x2 0x2 0x30 0x3 0x3 0x40 0x4 0x1 0x40 0x5 0x2 0x40 0x7 0x3 0x0 0x1 0x1 0x0 0x1 0x1 0x0 0x1 0x1 0x0 0x1 0x1 0x0 0x1 0x1 0x0 0x1 0x1 0x0 0x1 0x1 0x0 0x1 0x1 0x0 0x1 0x1 0x18 0x18 0x34 0x24 0x7e 0xff 0xe7 0x99 0x0 0x40 0x38 0x14 0x2a 0x75 0x3a 0x14 0x0 0x0 0x28 0x70 0x3e 0x7 0x2a 0x0 0x0 0x40 0x8 0x5c 0x7a 0x75 0xa 0x4 0x0 0x50 0x28 0x54 0x3e 0x75 0x2e 0x1 0x20 0x70 0x78 0x7c 0x3c 0x75 0x6a 0x54 0x0 0x64 0x78 0x78 0x7e 0x7d 0xe8 0x50 0x8 0x44 0x2a 0x50 0x3a 0x5d 0xe8 0x40 0x8 0x54 0xa 0x11 0x2a 0x5c 0x68 0x40 0x0 0x4 0x2a 0x57 0x2a 0x16 0x28 0x50 0x0 0x0 0x2a 0x13 0x6a 0x56 0x8 0x0 0x0 0x0 0x8 0x71 0x2a 0x52 0x30 0x0 0x0 0x4 0xa 0x14 0x3a 0x60 0x68 0x0 0x0 0x4 0xa 0x1c 0x3e 0x70 0x68 0x50 0x20 0x50 0x2e 0x5f 0x2e 0x5c 0x28 0x50 0x20 0x5c 0x3a 0x57 0x3e 0x5e 0x28 0x50 0x0 0x58 0x38 0x77 0x2e 0x7f 0x3e 0x54 0x78 0x7e 0xf7 0xf1 0xbe 0x9e 0x38 0x66 0xf8 0xcd 0x73 0x9b 0xe3 0x36 0xcf 0xde 0x78 0x66 0xf7 0x1d 0xbe 0x9b 0x3a 0x36 0xf9 0xcd 0x73 0xb3 0xe3 0x6c 0xcf 0xd8 0xcd 0x33 0x83 0x78 0x33 0xd9 0x66 0x9c 0xcd 0xf8 0x9b 0xe3 0x36 0x87 0x6c 0x3c 0xfd 0x7e 0xf7 0x79 0xbf 0x9f 0x7c 0x66 0xfc 0xcd 0xfb 0x9b 0xf7 0x36 0xef 0xde 0xfd 0x66 0xf7 0x1d 0xbf 0x9b 0x7c 0x36 0xfc 0xcd 0xfb 0xb3 0xf7 0xec 0xef 0xd8 0xcd 0x0 0xc3 0x0 0x33 0x0 0x66 0x0 0xcd 0x0 0x9b 0x0 0x36 0x0 0xc 0x0 0x85 0x66 0x0 0x19 0x1 0x9b 0x46 0x66 0x5 0xcd 0x88 0x9b 0x14 0x6c 0x20 0xd8 0xcd 0x33 0x83 0x7c 0x33 0xd9 0x6e 0xbe 0xcd 0xfd 0xdb 0xf3 0x76 0xcf 0x6c 0xbc
######################################################################
# INPUT: chip8/Chip-8 Hires/Hires Maze [David Winter, 199x].ch8
######################################################################
# InvalidOpcode('02AC',)
:proto L1 # 260
: main
jump L1
0x1 0x7a 0x42 0x70 0x22 0x78 0x22 0x52 0xc4 0x19 0xf8 0x0 0xa0 0x9b 0xfa 0xe 0xb0 0xe2 0xe2 0x80 0xe2 0x20 0xa0 0xe2 0x3c 0x15 0x80 0xe2 0x20 0xa0 0x34 0x1c 0x98 0x32 0x29 0xab 0x2b 0x8b 0xb8 0x88 0x32 0x3 0x7b 0x28 0x30 0x4 0xf8 0x2 0xae 0x9b 0xbf 0xf8 0x0 0xaf 0xf8 0x0 0x5f 0x1f 0x8f 0x3a 0x38 0x2e 0x8e 0x3a 0x38 0xd4 0x1 0x9b 0xff 0x1 0xbb 0xd4
: D1
0x9b 0x7c 0x0 0xbc 0x30 0x86 0x9c 0x7c 0x0 0xbc 0xfb 0x10 0x30 0xfc
: D2
0x3a 0xb3
: D3
0x30 0xd9 0x2 0x45 0x2 0x30
: L1
v0 := 18
v1 := 190
i := main
save v1
i := D1
load vD
i := 224
save vD
i := D2
load v3
i := 252
save v3
i := 126
v0 := 63
save v0
i := 132
v0 := 48
v1 := 224
save v1
i := 215
v1 := -26
save v1
i := D3
load v3
i := 506
save v3
v0 := -6
i := 24
save v0
v0 := 6
i := 13
save v0
v0 := 2
i := 10
save v0
i := 3
save v0
0x2 0xac 0xf8 0x0 0xb0 0xa0 0x9b 0xb1 0xd0 0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x32 0x30 0x31 0x31 0x2 0x30 0x60 0x0 0x61 0x0 0xa2 0xe2 0xc2 0x1 0x32 0x1 0xa2 0xde 0xd0 0x14 0x70 0x4 0x30 0x40 0x12 0xc4 0x60 0x0 0x71 0x4 0x31 0x40 0x12 0xc4 0x12 0xdc 0x80 0x40 0x20 0x10 0x20 0x40 0x80 0x10
######################################################################
# INPUT: chip8/Chip-8 Hires/Hires Particle Demo [zeroZshadow, 2008].ch8
######################################################################
# InvalidOpcode('02AC',)
:proto L1 # 260
: main
jump L1
0x1 0x7a 0x42 0x70 0x22 0x78 0x22 0x52 0xc4 0x19 0xf8 0x0 0xa0 0x9b 0xfa 0xe 0xb0 0xe2 0xe2 0x80 0xe2 0x20 0xa0 0xe2 0x3c 0x15 0x80 0xe2 0x20 0xa0 0x34 0x1c 0x98 0x32 0x29 0xab 0x2b 0x8b 0xb8 0x88 0x32 0x3 0x7b 0x28 0x30 0x4 0xf8 0x2 0xae 0x9b 0xbf 0xf8 0x0 0xaf 0xf8 0x0 0x5f 0x1f 0x8f 0x3a 0x38 0x2e 0x8e 0x3a 0x38 0xd4 0x1 0x9b 0xff 0x1 0xbb 0xd4
: D1
0x9b 0x7c 0x0 0xbc 0x30 0x86 0x9c 0x7c 0x0 0xbc 0xfb 0x10 0x30 0xfc
: D2
0x3a 0xb3
: D3
0x30 0xd9 0x2 0x45 0x2 0x30
: L1
v0 := 18
v1 := 190
i := main
save v1
i := D1
load vD
i := 224
save vD
i := D2
load v3
i := 252
save v3
i := 126
v0 := 63
save v0
i := 132
v0 := 48
v1 := 224
save v1
i := 215
v1 := -26
save v1
i := D3
load v3
i := 506
save v3
v0 := -6
i := 24
save v0
v0 := 6
i := 13
save v0
v0 := 2
i := 10
save v0
i := 3
save v0
0x2 0xac 0xf8 0x0 0xb0 0xa0 0x9b 0xb1 0xd0 0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x32 0x30 0x31 0x31 0x2 0x30 0xa3 0xe1 0x60 0x0 0x61 0x4 0x62 0x8 0xd0 0x15 0xf2 0x1e 0x80 0x24 0xd0 0x15 0xf2 0x1e 0x80 0x24 0xd0 0x15 0xf2 0x1e 0x80 0x24 0xd0 0x15 0xf2 0x1e 0x80 0x24 0xd0 0x15 0xf2 0x1e 0x80 0x24 0xd0 0x15 0xf2 0x1e 0x80 0x24 0xd0 0x15 0xf2 0x1e 0x80 0x24 0xd0 0x15 0x66 0x5 0x67 0x2 0x6a 0x0 0x13 0x78 0x6b 0x0 0x6c 0x0 0xa3 0x98 0xfb 0x1e 0xf3 0x65 0x23 0x8e 0x23 0x1c 0x13 0x22 0x23 0x8e 0x23 0x1c 0x7b 0x4 0x7c 0x1 0x5c 0x60 0x13 0x0 0x12 0xfc 0x12 0xc0 0xa3 0xe0 0xde 0xd1 0x0 0xee 0xa3 0x98 0xfb 0x1e 0xf3 0x65 0x80 0x24 0x81 0x34 0x8e 0x0 0x8d 0x10 0x8e 0xe6 0x8d 0xd6 0x84 0xe0 0x65 0xc2 0x84 0x54 0x4f 0x1 0x13 0x52 0x4d 0x0 0x63 0x1 0x84 0xd0 0x65 0xe1 0x84 0x54 0x4f 0x1 0x13 0x52 0x33 0x2 0x73 0x1 0x13 0x54 0x23 0x5c 0xa3 0x98 0xfb 0x1e 0xf3 0x55 0x13 0xc 0xa3 0xc0 0xfa 0x1e 0xf0 0x65 0x82 0x0 0x7a 0x1 0x64 0x1f 0x8a 0x42 0x60 0x20 0x61 0x1e 0x80 0xe 0x81 0x1e 0xc3 0x3 0x73 0xf8 0x0 0xee 0x6b 0x0 0x6c 0x0 0x23 0x5c 0xa3 0x98 0xfb 0x1e 0xf3 0x55 0x7b 0x4 0x7c 0x1 0x5c 0x60 0x13 0x7c 0x12 0xfc 0x8e 0x0 0x8d 0x10 0x8e 0xe6 0x0 0xee 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf8 0xfa 0xf9 0xfe 0xfb 0xfc 0xfd 0xff 0x2 0x1 0x3 0x5 0x4 0x6 0x7 0x8 0x6 0x7 0x4 0x5 0x3 0x1 0x2 0xfe 0xff 0xfc 0xfb 0xfd 0xfa 0xf9 0xf8 0xfa 0x80 0xf7 0x6 0x77 0x6 0x36 0x0 0x0 0x0 0xc7 0x6c 0xcf 0xc 0xc 0x0 0x0 0x0 0x9f 0xd9 0xdf 0xd9 0xd9 0x0 0x0 0x0 0x3f 0x8c 0xc 0x8c 0x8c 0x0 0x0 0x0 0x67 0x6c 0x6c 0x6c 0x67 0x0 0x0 0x0 0xb0 0x30 0x30 0x30 0xbe 0x0 0x0 0x0 0xf9 0xc3 0xf1 0xc0 0xfb 0x0 0x0 0x0 0xef 0x0 0xce 0x60 0xcc 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Hires/Hires Sierpinski [Sergey Naydenov, 2010].ch8
######################################################################
# InvalidOpcode('02AC',)
:proto L1 # 260
: main
jump L1
0x1 0x7a 0x42 0x70 0x22 0x78 0x22 0x52 0xc4 0x19 0xf8 0x0 0xa0 0x9b 0xfa 0xe 0xb0 0xe2 0xe2 0x80 0xe2 0x20 0xa0 0xe2 0x3c 0x15 0x80 0xe2 0x20 0xa0 0x34 0x1c 0x98 0x32 0x29 0xab 0x2b 0x8b 0xb8 0x88 0x32 0x3 0x7b 0x28 0x30 0x4 0xf8 0x2 0xae 0x9b 0xbf 0xf8 0x0 0xaf 0xf8 0x0 0x5f 0x1f 0x8f 0x3a 0x38 0x2e 0x8e 0x3a 0x38 0xd4 0x1 0x9b 0xff 0x1 0xbb 0xd4
: D1
0x9b 0x7c 0x0 0xbc 0x30 0x86 0x9c 0x7c 0x0 0xbc 0xfb 0x10 0x30 0xfc
: D2
0x3a 0xb3
: D3
0x30 0xd9 0x2 0x45 0x2 0x30
: L1
v0 := 18
v1 := 190
i := main
save v1
i := D1
load vD
i := 224
save vD
i := D2
load v3
i := 252
save v3
i := 126
v0 := 63
save v0
i := 132
v0 := 48
v1 := 224
save v1
i := 215
v1 := -26
save v1
i := D3
load v3
i := 506
save v3
v0 := -6
i := 24
save v0
v0 := 6
i := 13
save v0
v0 := 2
i := 10
save v0
i := 3
save v0
0x2 0xac 0xf8 0x0 0xb0 0xa0 0x9b 0xb1 0xd0 0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x32 0x30 0x31 0x31 0x2 0x30 0x12 0xc6 0x43 0x38 0x50 0x48 0x60 0x0 0x85 0x0 0x60 0x1 0x81 0x50 0xa4 0xb2 0xf1 0x1e 0xf0 0x55 0x60 0x1f 0x8a 0x0 0x60 0x10 0x8b 0x0 0xa4 0x8e 0xf0 0x65 0xda 0xb1 0x60 0x1 0xa4 0x8f 0xf0 0x55 0x60 0x1f 0xa4 0xd2 0xf0 0x55 0x60 0x1 0xa4 0x90 0xf0 0x55 0xa4 0x8f 0xf0 0x65 0x85 0x0 0x60 0x1 0x81 0x0 0x80 0x50 0x80 0x14 0xa4 0xd3 0xf0 0x55 0xa4 0x90 0xf0 0x65 0x85 0x0 0x60 0x1 0x81 0x0 0x80 0x50 0x80 0x15 0xa4 0x91 0xf0 0x55 0xa4 0x90 0xf0 0x65 0x85 0x0 0xa4 0x91 0xf0 0x65 0xa4 0xb2 0xf0 0x1e 0xf0 0x65 0x86 0x0 0xa4 0x90 0xf0 0x65 0x87 0x0 0x60 0x1 0x81 0x0 0x80 0x70 0x80 0x14 0xa4 0xb2 0xf0 0x1e 0xf0 0x65 0x81 0x0 0x80 0x60 0x80 0x13 0x81 0x50 0xa4 0x92 0xf1 0x1e 0xf0 0x55 0xa4 0x91 0xf0 0x65 0x85 0x0 0xa4 0x91 0xf0 0x65 0xa4 0x92 0xf0 0x1e 0xf0 0x65 0x81 0x50 0xa4 0xb2 0xf1 0x1e 0xf0 0x55 0xa4 0x90 0xf0 0x65 0xa4 0x92 0xf0 0x1e 0xf0 0x65 0x85 0x0 0x60 0x1 0x81 0x50 0x50 0x10 0x6f 0x1 0x3f 0x0 0x13 0xc8 0xa4 0x90 0xf0 0x65 0x85 0x0 0x60 0x1f 0x81 0x0 0x80 0x50 0x80 0x14 0x8a 0x0 0xa4 0x8f 0xf0 0x65 0x85 0x0 0x60 0x10 0x81 0x0 0x80 0x50 0x80 0x14 0x8b 0x0 0xa4 0x8e 0xf0 0x65 0xda 0xb1 0x60 0x1f 0x85 0x0 0xa4 0x90 0xf0 0x65 0x81 0x0 0x80 0x50 0x80 0x15 0x8a 0x0 0xa4 0x8f 0xf0 0x65 0x85 0x0 0x60 0x10 0x81 0x0 0x80 0x50 0x80 0x14 0x8b 0x0 0xa4 0x8e 0xf0 0x65 0xda 0xb1 0xa4 0x90 0xf0 0x65 0x85 0x0 0xa4 0xd3 0xf0 0x65 0x81 0x0 0x80 0x50 0x82 0x10 0x81 0x5 0x81 0x20 0x90 0x10 0x6f 0x0 0x3f 0x1 0x13 0xee 0xa4 0x90 0xf0 0x65 0x70 0x1 0xf0 0x55 0x13 0x6 0xa4 0x8f 0xf0 0x65 0x85 0x0 0xa4 0xd2 0xf0 0x65 0x81 0x0 0x80 0x50 0x82 0x10 0x81 0x5 0x81 0x20 0x90 0x10 0x6f 0x0 0x3f 0x1 0x14 0x14 0xa4 0x8f 0xf0 0x65 0x70 0x1 0xf0 0x55 0x12 0xee 0x14 0x14 0x81 0x0 0xa4 0xd4 0x62 0x1 0x8e 0x25 0xfe 0x1e 0xf0 0x65 0x0 0xee 0x62 0x1 0x63 0x0 0x83 0x4 0x81 0x25 0x31 0x0 0x14 0x28 0x80 0x30 0x0 0xee 0xa4 0xd4 0xfe 0x1e 0xf6 0x55 0x66 0x0 0x82 0x0 0x82 0x15 0x3f 0x1 0x14 0x60 0x83 0x0 0x83 0x6 0x84 0x10 0x65 0x1 0x82 0x30 0x82 0x45 0x3f 0x1 0x14 0x5a 0x84 0xe 0x85 0xe 0x14 0x4c 0x80 0x45 0x86 0x54 0x14 0x3c 0xf5 0x65 0x80 0x60 0x0 0xee 0x82 0x0 0x80 0x15 0x3f 0x0 0x14 0x66 0x80 0x20 0x0 0xee 0xa4 0x8a 0xf0 0x33 0xf2 0x65 0xf0 0x29 0xd3 0x45 0x73 0x6 0xf1 0x29 0xd3 0x45 0x73 0x6 0xf2 0x29 0xd3 0x45 0x0 0xee 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Hires/Hires Stars [Sergey Naydenov, 2010].ch8
######################################################################
# InvalidOpcode('02AC',)
:proto L1 # 260
: main
jump L1
0x1 0x7a 0x42 0x70 0x22 0x78 0x22 0x52 0xc4 0x19 0xf8 0x0 0xa0 0x9b 0xfa 0xe 0xb0 0xe2 0xe2 0x80 0xe2 0x20 0xa0 0xe2 0x3c 0x15 0x80 0xe2 0x20 0xa0 0x34 0x1c 0x98 0x32 0x29 0xab 0x2b 0x8b 0xb8 0x88 0x32 0x3 0x7b 0x28 0x30 0x4 0xf8 0x2 0xae 0x9b 0xbf 0xf8 0x0 0xaf 0xf8 0x0 0x5f 0x1f 0x8f 0x3a 0x38 0x2e 0x8e 0x3a 0x38 0xd4 0x1 0x9b 0xff 0x1 0xbb 0xd4
: D1
0x9b 0x7c 0x0 0xbc 0x30 0x86 0x9c 0x7c 0x0 0xbc 0xfb 0x10 0x30 0xfc
: D2
0x3a 0xb3
: D3
0x30 0xd9 0x2 0x45 0x2 0x30
: L1
v0 := 18
v1 := 190
i := main
save v1
i := D1
load vD
i := 224
save vD
i := D2
load v3
i := 252
save v3
i := 126
v0 := 63
save v0
i := 132
v0 := 48
v1 := 224
save v1
i := 215
v1 := -26
save v1
i := D3
load v3
i := 506
save v3
v0 := -6
i := 24
save v0
v0 := 6
i := 13
save v0
v0 := 2
i := 10
save v0
i := 3
save v0
0x2 0xac 0xf8 0x0 0xb0 0xa0 0x9b 0xb1 0xd0 0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x32 0x30 0x31 0x31 0x2 0x30 0x12 0xc6 0x43 0x38 0x50 0x48 0x60 0x0 0x85 0x0 0xc0 0x38 0x81 0x50 0xa6 0x72 0xf1 0x1e 0xf0 0x55 0x60 0x0 0x85 0x0 0xc0 0x38 0x81 0x50 0xa6 0x7a 0xf1 0x1e 0xf0 0x55 0x60 0x0 0xa6 0x72 0xf0 0x1e 0xf0 0x65 0x8a 0x0 0x60 0x0 0xa6 0x7a 0xf0 0x1e 0xf0 0x65 0x8b 0x0 0x60 0x0 0xa6 0x42 0xf0 0x1e 0xda 0xb8 0x60 0x1 0xa6 0x84 0xf0 0x55 0x60 0x7 0xa6 0x86 0xf0 0x55 0xa6 0x84 0xf0 0x65 0x85 0x0 0xc0 0x38 0x81 0x50 0xa6 0x72 0xf1 0x1e 0xf0 0x55 0x60 0x0 0xa6 0x83 0xf0 0x55 0xa6 0x84 0xf0 0x65 0x85 0x0 0x60 0x1 0x81 0x0 0x80 0x50 0x80 0x15 0xa6 0x88 0xf0 0x55 0xa6 0x84 0xf0 0x65 0xa6 0x72 0xf0 0x1e 0xf0 0x65 0x85 0x0 0xa6 0x83 0xf0 0x65 0xa6 0x72 0xf0 0x1e 0xf0 0x65 0x86 0x0 0x60 0x8 0x81 0x0 0x80 0x60 0x80 0x14 0x81 0x0 0x80 0x50 0x82 0x0 0x80 0x15 0x80 0x20 0x3f 0x0 0x13 0x9c 0xa6 0x84 0xf0 0x65 0xa6 0x72 0xf0 0x1e 0xf0 0x65 0x85 0x0 0xa6 0x83 0xf0 0x65 0xa6 0x72 0xf0 0x1e 0xf0 0x65 0x86 0x0 0x60 0x8 0x81 0x0 0x80 0x60 0x80 0x15 0x81 0x0 0x80 0x50 0x82 0x10 0x81 0x5 0x81 0x20 0x3f 0x0 0x13 0x96 0x60 0x1 0xa6 0x85 0xf0 0x55 0x13 0x9c 0x60 0x0 0xa6 0x85 0xf0 0x55 0xa6 0x83 0xf0 0x65 0x85 0x0 0xa6 0x88 0xf0 0x65 0x81 0x0 0x80 0x50 0x82 0x10 0x81 0x5 0x81 0x20 0x90 0x10 0x6f 0x0 0x3f 0x1 0x13 0xc2 0xa6 0x83 0xf0 0x65 0x70 0x1 0xf0 0x55 0x13 0x32 0xa6 0x85 0xf0 0x65 0x85 0x0 0x60 0x1 0x81 0x50 0x50 0x10 0x6f 0x1 0x3f 0x0 0x13 0xe4 0xa6 0x84 0xf0 0x65 0x85 0x0 0xc0 0x78 0x81 0x50 0xa6 0x72 0xf1 0x1e 0xf0 0x55 0xa6 0x85 0xf0 0x65 0x85 0x0 0x60 0x0 0x81 0x50 0x50 0x10 0x6f 0x1 0x90 0x10 0x6f 0x0 0x3f 0x0 0x13 0x1a 0xa6 0x84 0xf0 0x65 0x85 0x0 0xc0 0x38 0x81 0x50 0xa6 0x7a 0xf1 0x1e 0xf0 0x55 0x60 0x0 0xa6 0x83 0xf0 0x55 0xa6 0x84 0xf0 0x65 0x85 0x0 0x60 0x1 0x81 0x0 0x80 0x50 0x80 0x15 0xa6 0x88 0xf0 0x55 0xa6 0x84 0xf0 0x65 0xa6 0x7a 0xf0 0x1e 0xf0 0x65 0x85 0x0 0xa6 0x83 0xf0 0x65 0xa6 0x7a 0xf0 0x1e 0xf0 0x65 0x86 0x0 0x60 0x8 0x81 0x0 0x80 0x60 0x80 0x14 0x81 0x0 0x80 0x50 0x82 0x0 0x80 0x15 0x80 0x20 0x3f 0x0 0x14 0x8c 0xa6 0x84 0xf0 0x65 0xa6 0x7a 0xf0 0x1e 0xf0 0x65 0x85 0x0 0xa6 0x83 0xf0 0x65 0xa6 0x7a 0xf0 0x1e 0xf0 0x65 0x86 0x0 0x60 0x8 0x81 0x0 0x80 0x60 0x80 0x15 0x81 0x0 0x80 0x50 0x82 0x10 0x81 0x5 0x81 0x20 0x3f 0x0 0x14 0x86 0x60 0x1 0xa6 0x85 0xf0 0x55 0x14 0x8c 0x60 0x0 0xa6 0x85 0xf0 0x55 0xa6 0x83 0xf0 0x65 0x85 0x0 0xa6 0x88 0xf0 0x65 0x81 0x0 0x80 0x50 0x82 0x10 0x81 0x5 0x81 0x20 0x90 0x10 0x6f 0x0 0x3f 0x1 0x14 0xb2 0xa6 0x83 0xf0 0x65 0x70 0x1 0xf0 0x55 0x14 0x22 0xa6 0x85 0xf0 0x65 0x85 0x0 0x60 0x1 0x81 0x50 0x50 0x10 0x6f 0x1 0x3f 0x0 0x14 0xd4 0xa6 0x84 0xf0 0x65 0x85 0x0 0xc0 0x18 0x81 0x50 0xa6 0x7a 0xf1 0x1e 0xf0 0x55 0xa6 0x85 0xf0 0x65 0x85 0x0 0x60 0x0 0x81 0x50 0x50 0x10 0x6f 0x1 0x90 0x10 0x6f 0x0 0x3f 0x0 0x14 0xa 0xa6 0x84 0xf0 0x65 0xa6 0x72 0xf0 0x1e 0xf0 0x65 0x8a 0x0 0xa6 0x84 0xf0 0x65 0xa6 0x7a 0xf0 0x1e 0xf0 0x65 0x8b 0x0 0x60 0x0 0xa6 0x42 0xf0 0x1e 0xda 0xb8 0xa6 0x84 0xf0 0x65 0x85 0x0 0xa6 0x86 0xf0 0x65 0x81 0x0 0x80 0x50 0x82 0x10 0x81 0x5 0x81 0x20 0x90 0x10 0x6f 0x0 0x3f 0x1 0x15 0x30 0xa6 0x84 0xf0 0x65 0x70 0x1 0xf0 0x55 0x13 0xa 0xc0 0x7 0xa6 0x82 0xf0 0x55 0xa6 0x82 0xf0 0x65 0xa6 0x72 0xf0 0x1e 0xf0 0x65 0x8a 0x0 0xa6 0x82 0xf0 0x65 0xa6 0x7a 0xf0 0x1e 0xf0 0x65 0x8b 0x0 0xa6 0x82 0xf0 0x65 0xa6 0x6a 0xf0 0x1e 0xf0 0x65 0xa6 0x42 0xf0 0x1e 0xf0 0x65 0xda 0xb8 0x60 0xa 0xf0 0x15 0xa6 0x82 0xf0 0x65 0x85 0x0 0xa6 0x82 0xf0 0x65 0xa6 0x6a 0xf0 0x1e 0xf0 0x65 0x86 0x0 0x60 0x8 0x81 0x0 0x80 0x60 0x80 0x14 0x81 0x50 0xa6 0x6a 0xf1 0x1e 0xf0 0x55 0xa6 0x82 0xf0 0x65 0xa6 0x6a 0xf0 0x1e 0xf0 0x65 0x85 0x0 0x60 0x20 0x81 0x0 0x80 0x50 0x82 0x10 0x81 0x5 0x81 0x20 0x3f 0x0 0x15 0xb2 0xa6 0x82 0xf0 0x65 0x85 0x0 0x60 0x0 0x81 0x50 0xa6 0x6a 0xf1 0x1e 0xf0 0x55 0xa6 0x82 0xf0 0x65 0x85 0x0 0x60 0x32 0x81 0x50 0x50 0x10 0x6f 0x1 0x90 0x10 0x6f 0x0 0x3f 0x0 0x15 0x30 0x15 0xc8 0x81 0x0 0xa6 0x89 0x62 0x1 0x8e 0x25 0xfe 0x1e 0xf0 0x65 0x0 0xee 0x62 0x1 0x63 0x0 0x83 0x4 0x81 0x25 0x31 0x0 0x15 0xdc 0x80 0x30 0x0 0xee 0xa6 0x89 0xfe 0x1e 0xf6 0x55 0x66 0x0 0x82 0x0 0x82 0x15 0x3f 0x1 0x16 0x14 0x83 0x0 0x83 0x6 0x84 0x10 0x65 0x1 0x82 0x30 0x82 0x45 0x3f 0x1 0x16 0xe 0x84 0xe 0x85 0xe 0x16 0x0 0x80 0x45 0x86 0x54 0x15 0xf0 0xf5 0x65 0x80 0x60 0x0 0xee 0x82 0x0 0x80 0x15 0x3f 0x0 0x16 0x1a 0x80 0x20 0x0 0xee 0xa6 0x3e 0xf0 0x33 0xf2 0x65 0xf0 0x29 0xd3 0x45 0x73 0x6 0xf1 0x29 0xd3 0x45 0x73 0x6 0xf2 0x29 0xd3 0x45 0x0 0xee 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x10 0x0 0x0 0x0 0x0 0x0 0x0 0x38 0x28 0x38 0x0 0x0 0x0 0x0 0x54 0x0 0x44 0x0 0x54 0x0 0x0 0x92 0x0 0x0 0x82 0x0 0x0 0x92 0x0 0x92 0x54 0x38 0xfe 0x38 0x54 0x92 0x0 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Hires/Hires Test [Tom Swan, 1979].ch8
######################################################################
# InvalidOpcode('02AC',)
:proto L1 # 260
: main
jump L1
0x1 0x7a 0x42 0x70 0x22 0x78 0x22 0x52 0xc4 0x19 0xf8 0x0 0xa0 0x9b 0xfa 0xe 0xb0 0xe2 0xe2 0x80 0xe2 0x20 0xa0 0xe2 0x3c 0x15 0x80 0xe2 0x20 0xa0 0x34 0x1c 0x98 0x32 0x29 0xab 0x2b 0x8b 0xb8 0x88 0x32 0x3 0x7b 0x28 0x30 0x4 0xf8 0x2 0xae 0x9b 0xbf 0xf8 0x0 0xaf 0xf8 0x0 0x5f 0x1f 0x8f 0x3a 0x38 0x2e 0x8e 0x3a 0x38 0xd4 0x1 0x9b 0xff 0x1 0xbb 0xd4
: D1
0x9b 0x7c 0x0 0xbc 0x30 0x86 0x9c 0x7c 0x0 0xbc 0xfb 0x10 0x30 0xfc
: D2
0x3a 0xb3
: D3
0x30 0xd9 0x2 0x45 0x2 0x30
: L1
v0 := 18
v1 := 190
i := main
save v1
i := D1
load vD
i := 224
save vD
i := D2
load v3
i := 252
save v3
i := 126
v0 := 63
save v0
i := 132
v0 := 48
v1 := 224
save v1
i := 215
v1 := -26
save v1
i := D3
load v3
i := 506
save v3
v0 := -6
i := 24
save v0
v0 := 6
i := 13
save v0
v0 := 2
i := 10
save v0
i := 3
save v0
0x2 0xac 0xf8 0x0 0xb0 0xa0 0x9b 0xb1 0xd0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x30 0x60 0x0 0x61 0x0 0xa2 0xd2 0xd0 0x14 0x70 0x4 0x71 0x4 0x31 0x40 0x12 0xc6 0x12 0xd0 0xf0 0xf0 0xf0 0xd4
######################################################################
# INPUT: chip8/Chip-8 Hires/Hires Worm V4 [RB-Revival Studios, 2007].ch8
######################################################################
# InvalidOpcode('02AC',)
:proto L1 # 260
: main
jump L1
0x1 0x7a 0x42 0x70 0x22 0x78 0x22 0x52 0xc4 0x19 0xf8 0x0 0xa0 0x9b 0xfa 0xe 0xb0 0xe2 0xe2 0x80 0xe2 0x20 0xa0 0xe2 0x3c 0x15 0x80 0xe2 0x20 0xa0 0x34 0x1c 0x98 0x32 0x29 0xab 0x2b 0x8b 0xb8 0x88 0x32 0x3 0x7b 0x28 0x30 0x4 0xf8 0x2 0xae 0x9b 0xbf 0xf8 0x0 0xaf 0xf8 0x0 0x5f 0x1f 0x8f 0x3a 0x38 0x2e 0x8e 0x3a 0x38 0xd4 0x1 0x9b 0xff 0x1 0xbb 0xd4
: D1
0x9b 0x7c 0x0 0xbc 0x30 0x86 0x9c 0x7c 0x0 0xbc 0xfb 0x10 0x30 0xfc
: D2
0x3a 0xb3
: D3
0x30 0xd9 0x2 0x45 0x2 0x30
: L1
v0 := 18
v1 := 190
i := main
save v1
i := D1
load vD
i := 224
save vD
i := D2
load v3
i := 252
save v3
i := 126
v0 := 63
save v0
i := 132
v0 := 48
v1 := 224
save v1
i := 215
v1 := -26
save v1
i := D3
load v3
i := 506
save v3
v0 := -6
i := 24
save v0
v0 := 6
i := 13
save v0
v0 := 2
i := 10
save v0
i := 3
save v0
0x2 0xac 0xf8 0x0 0xb0 0xa0 0x9b 0xb1 0xd0 0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x32 0x30 0x31 0x31 0x2 0x30 0x13 0xc 0x57 0x6f 0x72 0x6d 0x20 0x76 0x2e 0xf4 0x2c 0xe0 0x62 0x79 0x3a 0x20 0x52 0x42 0x2c 0xe0 0x43 0x68 0x69 0x70 0x2d 0xf8 0x20 0x76 0x65 0x72 0x73 0x69 0x6f 0x6e 0x20 0x62 0x79 0x3a 0x20 0x4d 0x61 0x72 0x74 0x69 0x6a 0x6e 0x20 0x57 0x65 0x6e 0x74 0x69 0x6e 0x67 0x20 0x2f 0x20 0x52 0x65 0x76 0x69 0x76 0x61 0x6c 0x20 0x53 0x74 0x75 0x64 0x69 0x6f 0x73 0x52 0x42 0x39 0x32 0x2 0x30 0x60 0x0 0x61 0x0 0x62 0x0 0x63 0x3e 0x64 0x0 0x65 0x0 0x66 0x14 0x67 0x7c 0x68 0x0 0x69 0x0 0x6a 0x6 0x6b 0xe 0x6c 0x1 0x6d 0x0 0x6e 0x4 0xa4 0x71 0xf0 0x55 0xfc 0x1e 0x71 0x1 0x31 0x0 0x13 0x2e 0xa4 0x5b 0xda 0xb3 0xa4 0x5a 0xd4 0x21 0xd4 0x31 0x74 0x2 0x34 0x3a 0x13 0x3e 0xa4 0x68 0x63 0x0 0xd3 0x21 0xd4 0x21 0x72 0x1 0x32 0x3f 0x13 0x4c 0xa3 0x8 0xf0 0x65 0xa2 0xc2 0xf0 0x33 0xa2 0xc2 0xf5 0x33 0x23 0xec 0x24 0x3e 0xa4 0x67 0xd7 0x61 0x76 0x2 0x36 0x40 0x13 0x66 0x63 0x6 0xf3 0x15 0xa4 0x71 0xf8 0x1e 0xf0 0x65 0x84 0x0 0x80 0xa0 0xa4 0x71 0xf8 0x1e 0xf0 0x55 0xa5 0x71 0xf8 0x1e 0xf0 0x65 0x81 0x0 0x80 0xb0 0xa5 0x71 0xf8 0x1e 0xf0 0x55 0xa4 0x5e 0x34 0x0 0xd4 0x13 0xa4 0x52 0xf9 0x1e 0xf1 0x65 0xa4 0x61 0xda 0xb2 0x8a 0x4 0x8b 0x14 0xa4 0x5b 0xda 0xb3 0x3f 0x0 0x14 0x6 0xc0 0xf 0x40 0x0 0x24 0x3a 0x78 0x1 0x98 0xe0 0x68 0x0 0x63 0x6 0xf3 0x15 0x66 0xff 0x61 0x6 0xe1 0xa1 0x66 0x0 0x61 0x2 0xe1 0xa1 0x66 0x2 0x61 0x4 0xe1 0xa1 0x66 0x4 0x61 0x8 0xe1 0xa1 0x66 0x6 0x36 0xff 0x89 0x60 0xf3 0x7 0x33 0x0 0x13 0xc0 0x13 0x70 0x23 0xec 0xa2 0xc2 0xf5 0x33 0x63 0x0 0x64 0x3c 0xa2 0xc2 0xf2 0x65 0xf0 0x29 0xd4 0x35 0x73 0x6 0xf1 0x29 0xd4 0x35 0x73 0x6 0xf2 0x29 0xd4 0x35 0x0 0xee 0x24 0x4a 0xa4 0x5b 0xda 0xb3 0xda 0xb3 0x3f 0x0 0x14 0x1c 0x64 0x2 0xf4 0x18 0x75 0x1 0x23 0xe6 0x13 0xb6 0x64 0xa 0xf4 0x18 0xda 0xb3 0x8a 0x5 0x8b 0x15 0xa4 0x61 0xda 0xb2 0xa3 0x8 0xf0 0x65 0xa3 0x8 0x80 0x55 0x80 0x50 0x4f 0x0 0xf0 0x55 0x14 0x38 0x7e 0x1 0x0 0xee 0xa4 0x63 0xcc 0x3f 0xcd 0x3f 0xdc 0xd4 0x4f 0x0 0x0 0xee 0xa4 0x63 0xdc 0xd4 0x14 0x40 0xff 0xff 0x4 0x0 0x0 0xfc 0xfc 0x0 0x0 0x4 0xc0 0xe0 0xe0 0xe0 0xe0 0xa0 0xe0 0x0 0x40 0x30 0x58 0x78 0x30 0xf0 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Hires/Trip8 Hires Demo (2008) [Revival Studios].ch8
######################################################################
# InvalidOpcode('02AC',)
:proto L1 # 260
: main
jump L1
0x1 0x7a 0x42 0x70 0x22 0x78 0x22 0x52 0xc4 0x19 0xf8 0x0 0xa0 0x9b 0xfa 0xe 0xb0 0xe2 0xe2 0x80 0xe2 0x20 0xa0 0xe2 0x3c 0x15 0x80 0xe2 0x20 0xa0 0x34 0x1c 0x98 0x32 0x29 0xab 0x2b 0x8b 0xb8 0x88 0x32 0x3 0x7b 0x28 0x30 0x4 0xf8 0x2 0xae 0x9b 0xbf 0xf8 0x0 0xaf 0xf8 0x0 0x5f 0x1f 0x8f 0x3a 0x38 0x2e 0x8e 0x3a 0x38 0xd4 0x1 0x9b 0xff 0x1 0xbb 0xd4
: D1
0x9b 0x7c 0x0 0xbc 0x30 0x86 0x9c 0x7c 0x0 0xbc 0xfb 0x10 0x30 0xfc
: D2
0x3a 0xb3
: D3
0x30 0xd9 0x2 0x45 0x2 0x30
: L1
v0 := 18
v1 := 190
i := main
save v1
i := D1
load vD
i := 224
save vD
i := D2
load v3
i := 252
save v3
i := 126
v0 := 63
save v0
i := 132
v0 := 48
v1 := 224
save v1
i := 215
v1 := -26
save v1
i := D3
load v3
i := 506
save v3
v0 := -6
i := 24
save v0
v0 := 6
i := 13
save v0
v0 := 2
i := 10
save v0
i := 3
save v0
0x2 0xac 0xf8 0x0 0xb0 0xa0 0x9b 0xb1 0xd0 0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x32 0x30 0x31 0x31 0x2 0x30 0x12 0xd4 0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x53 0x54 0x55 0x44 0x49 0x4f 0x53 0x32 0x30 0x30 0x38 0x2 0x30 0x6d 0x20 0xfd 0x15 0x24 0x86 0x24 0x8e 0x6d 0x40 0xfd 0x15 0x24 0x86 0x24 0x8e 0x6d 0x20 0xfd 0x15 0x24 0x86 0xa5 0x54 0x24 0xe6 0x6d 0x80 0xfd 0x15 0x24 0x86 0xa5 0x54 0x24 0xe6 0x6d 0x0 0x6b 0x0 0x23 0x82 0x4b 0x0 0x23 0xa0 0x4b 0x1 0x24 0x52 0x4b 0x2 0x23 0xa8 0x4b 0x3 0x24 0x52 0x4b 0x4 0x23 0xb0 0x4b 0x5 0x24 0x52 0x60 0x1 0xf0 0x15 0x24 0x86 0x7d 0x1 0x60 0x3f 0x8c 0xd0 0x8c 0x2 0x4c 0x0 0x23 0x2c 0x13 0x0 0x4b 0x0 0x23 0x4c 0x4b 0x1 0x23 0x88 0x4b 0x2 0x23 0x5e 0x4b 0x3 0x23 0x90 0x4b 0x4 0x23 0x70 0x4b 0x5 0x23 0x98 0x7b 0x1 0x4b 0x6 0x6b 0x0 0x0 0xee 0x23 0xc4 0xc9 0x3 0x89 0x94 0x89 0x94 0x89 0x94 0x89 0x94 0x89 0x94 0x24 0x2e 0x0 0xee 0x23 0xb8 0xc9 0x3 0x89 0x94 0x89 0x94 0x89 0x94 0x89 0x94 0x89 0x94 0x24 0x2e 0x0 0xee 0x23 0xd4 0xc9 0x3 0x89 0x94 0x89 0x94 0x89 0x94 0x89 0x94 0x89 0x94 0x24 0x2e 0x0 0xee 0x6e 0x0 0x23 0xc4 0x0 0xee 0x24 0x2e 0x6e 0x0 0x23 0xb8 0x0 0xee 0x24 0x2e 0x6e 0x0 0x23 0xd4 0x0 0xee 0x24 0x2e 0x6e 0x0 0x23 0xc4 0x0 0xee 0x23 0xc4 0x7e 0x3 0x23 0xc4 0x0 0xee 0x23 0xb8 0x7e 0x2 0x23 0xb8 0x0 0xee 0x23 0xd4 0x7e 0x2 0x23 0xd4 0x0 0xee 0x6c 0x0 0x23 0xfa 0x23 0xfa 0x23 0xfa 0x23 0xfa 0x0 0xee 0x6c 0x0 0x23 0xe0 0x23 0xe0 0x23 0xe0 0x23 0xe0 0x23 0xe0 0x23 0xe0 0x0 0xee 0x6c 0x0 0x24 0x14 0x24 0x14 0x24 0x14 0x24 0x14 0x0 0xee 0xa6 0x54 0xfe 0x1e 0xfe 0x1e 0xfe 0x1e 0xfe 0x1e 0xfc 0x1e 0xf1 0x65 0x70 0xc 0x81 0x14 0xa5 0x48 0xd0 0x18 0x7c 0x2 0x0 0xee 0xa9 0x54 0xfe 0x1e 0xfe 0x1e 0xfe 0x1e 0xfe 0x1e 0xfc 0x1e 0xf1 0x65 0x70 0xc 0x81 0x14 0xa5 0x48 0xd0 0x18 0x7c 0x2 0x0 0xee 0xab 0x54 0xfe 0x1e 0xfe 0x1e 0xfe 0x1e 0xfe 0x1e 0xfc 0x1e 0xf1 0x65 0x70 0xc 0x81 0x14 0xa5 0x48 0xd0 0x18 0x7c 0x2 0x0 0xee 0x6c 0x0 0x60 0x1f 0x8a 0xd0 0x8a 0xc4 0x8a 0x2 0x8a 0x94 0xad 0x54 0xfa 0x1e 0xfa 0x1e 0xf1 0x65 0x80 0x4 0x81 0x14 0xa5 0x50 0xd0 0x15 0x7c 0x1 0x3c 0x8 0x14 0x30 0x0 0xee 0x60 0x1f 0x8a 0xd0 0x8a 0x2 0x8a 0x94 0xad 0x54 0xfa 0x1e 0xfa 0x1e 0xf1 0x65 0x80 0x4 0x81 0x14 0xa5 0x50 0xd0 0x15 0x60 0x1f 0x8a 0xd0 0x7a 0x8 0x8a 0x2 0x8a 0x94 0xad 0x54 0xfa 0x1e 0xfa 0x1e 0xf1 0x65 0x80 0x4 0x81 0x14 0xa5 0x50 0xd0 0x15 0x0 0xee 0xf0 0x7 0x30 0x0 0x14 0x86 0x0 0xee 0x6d 0x4 0x61 0x1d 0x60 0x1c 0x62 0x12 0xa5 0x1e 0xf2 0x1e 0xd0 0x16 0xfd 0x15 0x24 0x86 0x60 0x14 0x62 0xc 0xa5 0x1e 0xf2 0x1e 0xd0 0x16 0x60 0x24 0x62 0x18 0xa5 0x1e 0xf2 0x1e 0xd0 0x16 0xfd 0x15 0x24 0x86 0x60 0xc 0x62 0x6 0xa5 0x1e 0xf2 0x1e 0xd0 0x16 0x60 0x2c 0x62 0x1e 0xa5 0x1e 0xf2 0x1e 0xd0 0x16 0xfd 0x15 0x24 0x86 0xa5 0x1e 0x60 0x4 0xd0 0x16 0x60 0x34 0x62 0x24 0xa5 0x1e 0xf2 0x1e 0xd0 0x16 0xfd 0x15 0x24 0x86 0x0 0xee 0x64 0x1 0x65 0x7 0x62 0x0 0x63 0x0 0x60 0x0 0x81 0x30 0x71 0x10 0xd0 0x11 0x71 0x8 0xf4 0x1e 0xd0 0x11 0x71 0x8 0xf4 0x1e 0xd0 0x11 0x71 0x8 0xf4 0x1e 0xd0 0x11 0xf4 0x1e 0x70 0x8 0x30 0x40 0x14 0xf0 0x73 0x3 0x83 0x52 0x72 0x1 0x32 0x8 0x14 0xee 0x0 0xee 0xff 0xff 0x0 0x0 0xc 0x11 0x11 0x10 0x0 0x0 0x95 0x55 0x95 0xcd 0x0 0x0 0x53 0x55 0x55 0x33 0x40 0x40 0x44 0x42 0x41 0x46 0x0 0x40 0x6a 0x4a 0x4a 0x46 0x0 0x20 0x69 0xaa 0xaa 0x69 0x0 0x0 0x20 0x90 0x88 0x30 0x38 0x44 0xb2 0xa2 0x82 0x82 0x44 0x38 0x20 0xf8 0x50 0x88 0x0 0x0 0x0 0x0 0x0 0x0 0x39 0x0 0x0 0x0 0x6b 0x0 0x0 0x0 0x5b 0x0 0x0 0x0 0x1b 0x0 0x0 0x0 0x1a 0x0 0x0 0x0 0xd9 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x1 0x0 0x0 0x7f 0x7d 0x0 0x0 0xff 0xef 0x0 0x0 0xfd 0x7b 0x0 0x0 0x7f 0x1b 0x0 0x0 0xf6 0x1b 0x0 0x0 0x9f 0xdf 0x0 0x0 0x80 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0xe1 0x0 0x0 0x0 0x6f 0xc 0x0 0x0 0x7b 0x0 0x0 0x0 0xdb 0x0 0x0 0x0 0xdb 0x3 0x0 0x0 0xdf 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1d 0x0 0x0 0x0 0x6b 0x0 0x0 0x0 0x73 0x0 0x0 0x18 0x1b 0x0 0x0 0x0 0x1a 0x0 0x0 0x0 0xd9 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x2 0x0 0x0 0xe0 0xf8 0x0 0x0 0x0 0xee 0x0 0x0 0x0 0x3b 0x0 0x0 0x18 0x1b 0x0 0x0 0x0 0x1b 0x0 0x0 0x19 0x8f 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x71 0x0 0x0 0x0 0x6b 0x0 0x0 0x0 0x5b 0x0 0x0 0x0 0x1b 0x0 0x0 0x0 0x1a 0x0 0x0 0x0 0xcf 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x3f 0xd 0x0 0x0 0xff 0x6b 0x0 0x0 0xfe 0x63 0x0 0x0 0xbf 0x1b 0x0 0x0 0xfb 0x1a 0x0 0x0 0x4f 0xd9 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0xc1 0x0 0x0 0x0 0x6e 0xc 0x0 0x0 0x31 0x0 0x0 0x0 0xd9 0x0 0x0 0x0 0xdb 0x3 0x0 0x0 0x99 0x0 0x0 0x0 0x80 0x0 0x0 0x4 0x5 0x1b 0x5 0x1b 0x17 0x4 0x17 0x7 0x8 0x17 0x8 0x1c 0x8 0x15 0x1a 0x6 0x3 0x0 0x14 0x1b 0xa 0x16 0x16 0x1a 0xa 0xe 0x1a 0x8 0x2 0x0 0x10 0x1e 0xc 0x15 0x17 0x18 0xb 0x8 0x19 0xb 0x1 0x0 0xd 0x20 0xf 0x13 0x19 0x15 0xa 0x3 0x15 0x20 0x12 0xe 0x1 0x10 0x1a 0x1 0xb 0x14 0x8 0x0 0x11 0x1f 0x14 0xd 0x1b 0x12 0x1 0x4 0x9 0x15 0x6 0x0 0xd 0x1d 0x16 0xa 0x1b 0x15 0x3 0x6 0x8 0x18 0x5 0x1 0x9 0x1c 0x16 0x6 0x19 0x17 0x5 0x7 0x8 0x1b 0x5 0x4 0x5 0x1b 0x17 0x4 0x17 0x17 0x8 0x8 0x8 0x4 0x14 0x9 0x2 0x1a 0x18 0x1e 0x7 0x5 0x13 0x8 0x7 0x5 0x12 0xe 0x1 0x19 0x19 0x1f 0xa 0x2 0x12 0x8 0x6 0x8 0x12 0x14 0x2 0x18 0x1a 0x20 0xc 0x0 0x10 0x9 0x5 0xa 0x12 0x19 0x4 0x15 0x1b 0x0 0xe 0x1f 0xe 0xb 0x3 0xc 0x14 0x1d 0x8 0x0 0xb 0xe 0x1 0x11 0x1b 0x1d 0x11 0xb 0x17 0x1f 0xd 0x0 0x8 0x12 0x1 0xd 0x1a 0x1b 0x12 0x8 0x18 0x1e 0x12 0x2 0x7 0x17 0x2 0xa 0x17 0x19 0x13 0x1b 0x17 0x1b 0x5 0x4 0x17 0x4 0x5 0x17 0x8 0x17 0x14 0x1d 0xa 0x6 0x4 0x15 0x1a 0x1 0x15 0x1b 0x9 0xb 0x5 0x1b 0xe 0x8 0x3 0xe 0x1b 0x0 0x11 0x1e 0xc 0x10 0x4 0x17 0x12 0xa 0x2 0x8 0x1a 0x1f 0xf 0x0 0xd 0x16 0x4 0x10 0x14 0xd 0x2 0x1e 0x14 0x3 0x16 0x1b 0x6 0x2 0x9 0x9 0x13 0x10 0x1 0x1a 0x18 0x1f 0xa 0x1 0x12 0x7 0x6 0x4 0xf 0x14 0x2 0x13 0x1b 0x20 0xe 0x1 0xe 0xd 0x5 0x2 0xa 0x18 0x3 0xb 0x1b 0x1f 0x13 0x4 0xa 0x12 0x5 0x4 0x17 0x4 0x5 0x1b 0x17 0x1b 0x5 0x8 0x14 0x8 0x8 0x15 0x19 0x1e 0x8 0x0 0x11 0x9 0x2 0x14 0x17 0x1b 0xc 0xe 0x17 0x1f 0xb 0x0 0xb 0xf 0x1 0x10 0x1a 0x1c 0x10 0x9 0x13 0x1f 0xe 0x2 0x6 0x15 0x2 0xa 0x1a 0x1a 0x15 0x8 0xe 0x1f 0xf 0x8 0x2 0x5 0x18 0x1a 0x5 0x17 0x19 0xa 0x9 0x1e 0x12 0x0 0x14 0xe 0x1 0x11 0x1b 0x1c 0x9 0xf 0x5 0x1d 0x14 0x0 0xe 0xc 0x1b 0x13 0x2 0x1d 0xe 0x15 0x4 0x1c 0x15 0x0 0xa 0x7 0x1a 0x16 0x5 0x1b 0x11 0x1b 0x5 0x4 0x5 0x4 0x17 0x1b 0x17 0x18 0x8 0x8 0x8 0x3 0x14 0xa 0x2 0x19 0x19 0x1f 0x8 0x4 0x12 0x9 0x6 0x5 0x12 0x11 0x2 0x17 0x1a 0x20 0xc 0x1 0x10 0xa 0x5 0x7 0x11 0x17 0x3 0x14 0x1b 0x0 0xd 0x20 0xf 0xc 0x3 0xa 0x12 0x1c 0x7 0x0 0xa 0x11 0x1b 0xf 0x2 0x1e 0x11 0xb 0x14 0x1f 0xb 0x0 0x8 0x12 0x1 0xd 0x1b 0x1b 0x13 0xa 0x16 0x1f 0xf 0x2 0x6 0x15 0x1 0xa 0x19 0x19 0x14 0x7 0x17 0x1e 0x13 0x3 0x6 0x19 0x3 0x8 0x17 0x18 0x14 0x1b 0x5 0x4 0x5 0x1b 0x17 0x4 0x17 0x17 0x8 0x8 0x8 0x1b 0x8 0x16 0x1a 0x5 0x4 0x1 0x15 0x1a 0x9 0x17 0x15 0x1a 0xa 0x11 0x1b 0x6 0x3 0x0 0x12 0x1d 0xa 0x17 0x16 0x17 0xa 0xb 0x1a 0x7 0x2 0x0 0x10 0x1f 0xc 0x16 0x17 0x15 0xa 0x6 0x18 0xa 0x1 0x20 0xe 0x0 0xe 0x14 0x19 0x13 0x8 0x2 0x14 0x20 0x11 0xe 0x1 0x11 0x1b 0x2 0xb 0x14 0x5 0x0 0xf 0x1f 0x14 0xd 0x1b 0x12 0x2 0x4 0xa 0x17 0x4 0x1 0xa 0x1d 0x15 0x8 0x1a 0x15 0x5 0x6 0x9 0x1b 0x17 0x1b 0x5 0x4 0x17 0x4 0x5 0x18 0x8 0x18 0x14 0x2 0x12 0x19 0x18 0xa 0x2 0x1e 0x7 0x4 0x13 0x14 0x17 0x4 0xe 0x17 0x19 0x11 0x1 0x20 0xb 0x1 0x10 0xf 0x18 0x8 0xa 0x15 0x1a 0x17 0x2 0x20 0xf 0x0 0xd 0x9 0x18 0xf 0x8 0x12 0x1a 0x1 0x8 0x1c 0x6 0x4 0x16 0x1d 0x13 0x16 0x9 0xf 0x1b 0x5 0x4 0x0 0x12 0x1e 0xa 0x18 0x16 0x1b 0xd 0xb 0x1a 0xc 0x1 0x0 0xe 0x1e 0xe 0x12 0x17 0x1d 0x12 0x7 0x19 0x14 0x1 0x0 0x9 0x1b 0x12 0xd 0x17 0x4 0x17 0x4 0x5 0x1b 0x17 0x1b 0x5 0x8 0x14 0x8 0x8 0xa 0x3 0x1 0x14 0x1f 0xb 0x16 0x1a 0xb 0x5 0x4 0x10 0x11 0x5 0x0 0x11 0x20 0x11 0x10 0x1b 0xf 0x2 0x3 0xc 0x16 0x9 0x0 0xe 0x1d 0x16 0xa 0x1a 0x15 0x2 0x5 0x7 0x17 0xe 0x0 0xd 0x17 0x1a 0x1a 0x4 0x5 0x17 0x8 0x3 0x15 0x13 0x1 0xa 0x1f 0x8 0xe 0x1 0x11 0x1b 0x3 0x13 0x10 0x17 0x2 0x8 0x20 0xe 0x13 0x1 0xc 0x1a 0x2 0xe 0xa 0x18 0x3 0x7 0x1f 0x12 0x18 0x2 0x9 0x17 0x4 0xb 0x4 0x5 0x1b 0x5 0x1b 0x17 0x4 0x17 0x1c 0x8 0x15 0x1a 0x6 0x3 0x0 0x14 0x1a 0xa 0xe 0x1a 0x8 0x2 0x0 0x10 0x18 0xb 0x8 0x19 0xb 0x1 0x0 0xd 0x15 0xa 0x3 0x15 0xe 0x1 0x1 0xb 0x14 0x8 0x0 0x11 0x12 0x1 0x14 0x12 0x15 0x6 0x0 0xd 0x13 0x14 0x15 0x3 0x18 0x5 0x1 0x9 0x11 0x15 0x17 0x5 0x1b 0x5 0x4 0x5 0x10 0x15 0x17 0x8 0x9 0x2 0x1e 0x7 0xe 0x15 0x8 0x7 0xe 0x1 0x1f 0xa 0xc 0x15 0x8 0x6 0x14 0x2 0xb 0x14 0x20 0xc 0x9 0x5 0x19 0x4 0xa 0x14 0x1f 0xe 0xb 0x3 0x1d 0x8 0x8 0x13 0xe 0x1 0x1d 0x11 0x1f 0xd 0x12 0x1 0x7 0x11 0x1b 0x12 0x1e 0x12 0x17 0x2 0x6 0x10 0x19 0x13 0x1b 0x17 0x1b 0x5 0x6 0xe 0x17 0x8 0x1d 0xa 0x15 0x1a 0x7 0xc 0x1b 0x9 0x1b 0xe 0xe 0x1b 0x8 0xa 0x1e 0xc 0x17 0x12 0x8 0x1a 0x1f 0xf 0xb 0x8 0x10 0x14 0x1e 0x14 0x3 0x16 0xf 0x7 0x9 0x13 0x1a 0x18 0x1 0x12 0x12 0x8 0x4 0xf 0x13 0x1b 0x15 0x9 0x1 0xe 0x2 0xa 0xb 0x1b 0x18 0xb 0x4 0xa 0x4 0x17 0x4 0x5 0x19 0xe 0x8 0x14 0x0 0x11 0x9 0x2 0x18 0x10 0x6 0x12 0x0 0xb 0xf 0x1 0x16 0x13 0x5 0x10 0x2 0x6 0x14 0x14 0x15 0x2 0x5 0xe 0x11 0x14 0x8 0x2 0x1a 0x5 0x5 0xd 0xe 0x13 0xe 0x1 0x1c 0x9 0x6 0xc 0xd 0x11 0x13 0x2 0x1d 0xe 0x6 0xa 0xe 0xf 0x16 0x5 0x1b 0x11 0x7 0x9 0x10 0xe 0x18 0x8 0x8 0x8 0x8 0x14 0x12 0xe 0x4 0x12 0x9 0x6 0x13 0x16 0x14 0xe 0x1 0x10 0xa 0x5 0xf 0x16 0x16 0x10 0x0 0xd 0xc 0x3 0xa 0x15 0x16 0x12 0x0 0xa 0xf 0x2 0x7 0x13 0x0 0x8 0x15 0x13 0x12 0x1 0x5 0x10 0x2 0x6 0x15 0x1 0x13 0x15 0x5 0xe 0x3 0x6 0x19 0x3 0x11 0x15 0x5 0xb 0x1b 0x5 0x4 0x5 0xf 0x15 0x17 0x8 0x1b 0x8 0x5 0x4 0xe 0x15 0x1a 0x9 0x1a 0xa 0x6 0x3 0xc 0x14 0x1d 0xa 0x17 0xa 0x7 0x2 0x1f 0xc 0xb 0x14 0x15 0xa 0xa 0x1 0x20 0xe 0xa 0x13 0x13 0x8 0x20 0x11 0xe 0x1 0x9 0x12 0x14 0x5 0x1f 0x14 0x8 0x11 0x12 0x2 0x17 0x4 0x1d 0x15 0x7 0x10 0x15 0x5 0x1b 0x17 0x1b 0x5 0x6 0xe 0x18 0x8 0x19 0x18 0x1e 0x7 0x7 0xc 0x14 0x17 0x17 0x19 0x20 0xb 0x8 0xa 0xf 0x18 0x15 0x1a 0xb 0x8 0x20 0xf 0x9 0x18 0x12 0x1a 0xe 0x7 0x4 0x16 0x1d 0x13 0xf 0x1b 0x12 0x7 0x0 0x12 0x18 0x16 0xb 0x1a 0x0 0xe 0x16 0x9 0x12 0x17 0x7 0x19 0x0 0x9 0x18 0xb 0xd 0x17 0x4 0x17 0x4 0x5 0x19 0xe 0x8 0x14 0xa 0x3 0x1 0x14 0x18 0x10 0xb 0x5 0x11 0x5 0x0 0x11 0x16 0x12 0xf 0x2 0x16 0x9 0x0 0xe 0x15 0x2 0x13 0x13 0x17 0xe 0x0 0xd 0x1a 0x4 0x8 0x3 0x15 0x13 0x1 0xa 0x1f 0x8 0xe 0x1 0x10 0x17 0x2 0x8 0x20 0xe 0x13 0x1 0xa 0x18 0x3 0x7 0x1f 0x12 0x18 0x2 0x10 0xe 0x6 0x7 0x19 0x7 0x19 0x15 0xd 0xe 0x1b 0x9 0x16 0x17 0x9 0x5 0xb 0xe 0x1c 0xc 0x12 0x18 0xd 0x4 0x1c 0xe 0x9 0xc 0xe 0x19 0x11 0x4 0x1b 0xe 0x9 0xa 0xb 0x18 0x14 0x5 0x1a 0xe 0x7 0x16 0xa 0x9 0x14 0x12 0x1a 0xe 0x5 0x14 0xc 0x7 0x13 0x14 0x1a 0xe 0x4 0x11 0xe 0x7 0x11 0x15 0x1b 0xe 0x4 0xe 0x10 0x15 0x10 0x7 0x6 0xc 0x1c 0xf 0xe 0x15 0x11 0x7 0xa 0xa 0x1d 0x10 0xc 0x15 0x13 0x8 0xe 0xa 0x1c 0x12 0xb 0x14 0x14 0x8 0x12 0xb 0xa 0x14 0x1a 0x14 0x5 0x8 0x15 0xe 0x7 0x6 0x8 0x13 0x17 0x16 0x15 0x11 0xa 0x4 0x7 0x11 0x17 0xb 0x13 0x15 0xd 0x4 0x6 0x10 0x18 0xc 0x10 0x17 0x10 0x5 0x6 0xe 0x19 0xe 0x11 0x7 0xb 0x17 0x18 0x10 0x7 0xc 0x11 0x9 0x6 0x16 0x17 0x12 0x8 0xa 0x10 0xa 0x3 0x13 0x14 0x14 0x1a 0xa 0xe 0xb 0x11 0x15 0x1d 0xd 0x3 0xf 0xd 0xa 0x1d 0x10 0xd 0x15 0x12 0x8 0xc 0x8 0x1a 0x14 0x9 0x13 0x15 0x9 0xd 0x6 0x15 0x17 0x7 0x11 0x18 0xb 0x10 0x17 0x10 0x5 0x19 0xe 0x6 0xe 0xa 0x15 0x13 0x5 0x18 0x10 0x7 0xc 0x6 0x10 0x17 0x5 0x16 0x13 0x9 0xa 0x5 0xc 0x1a 0x7 0x14 0x14 0xc 0x9 0x8 0x7 0x11 0x14 0x1c 0xa 0x5 0x11 0xc 0x4 0xe 0x13 0x1d 0xd 0x4 0xf 0xd 0x11 0x11 0x3 0x1d 0x10 0x3 0xd 0xe 0xf 0x16 0x4 0x1b 0x13 0x4 0x9 0x10 0xe 0x19 0x7 0x6 0x7 0x6 0x15 0x12 0xe 0x4 0x13 0x9 0x5 0x16 0x17 0x14 0xe 0x3 0x10 0xd 0x4 0x12 0x18 0x3 0xe 0x16 0x10 0x11 0x3 0xe 0x18 0x4 0xe 0x16 0x12 0x14 0x4 0xb 0x17 0x5 0xe 0x18 0x6 0x15 0x13 0xb 0xa 0x5 0xe 0x1a 0x8 0x13 0x15 0xc 0x8 0x5 0xe 0x1b 0xb 0x11 0x15 0xe 0x7 0x1b 0xe 0x4 0xe 0xf 0x15 0xf 0x7 0x19 0x10 0x3 0xd 0x11 0x7 0xe 0x15 0x15 0x12 0x2 0xc 0x13 0x7 0xc 0x14 0x11 0x12 0x3 0xa 0x14 0x8 0xb 0x14 0xd 0x11 0x15 0x8 0x5 0x8 0x1a 0x14 0xa 0xe 0x18 0x16 0x17 0x9 0x8 0x6 0xa 0xb 0x15 0x18 0x18 0xb 0x8 0x11 0xc 0x7 0x12 0x18 0x19 0xc 0x7 0x10 0x10 0x17 0x10 0x5 0x6 0xe 0x19 0xe 0xe 0x15 0x14 0x5 0x7 0xc 0x18 0x10 0xe 0x13 0x19 0x6 0x8 0xa 0x17 0x12 0xf 0x12 0x1c 0x9 0xb 0x8 0x5 0x12 0x11 0x11 0xe 0x7 0x2 0xf 0x1c 0xd 0x12 0x12 0x2 0xc 0x12 0x7 0xd 0x14 0x13 0x14 0x5 0x8 0x16 0x9 0xa 0x13 0x12 0x16 0xa 0x5 0x18 0xb 0x7 0x11 0xf 0x17 0x10 0x5 0x19 0xe 0x6 0xe 0x15 0x7 0xc 0x17 0x7 0xc 0x18 0x10 0x19 0xc 0x8 0x17 0x9 0x9 0x16 0x12 0x1a 0x10 0x5 0x15 0xb 0x8 0x13 0x13 0x17 0x15 0xe 0x8 0x3 0x12 0x1a 0xb 0x13 0x18 0x11 0x9 0x2 0xf 0x1b 0xd 0x12 0xb 0xe 0x19 0x2 0xc 0x1c 0xf 0x11 0xd 0x9 0x18 0x4 0x9 0x1b 0x13 0x10 0x10 0xc 0x14 0x7 0x17 0x4 0x1a 0x3 0x1c 0x3 0x1d 0x5 0x1d 0x8 0x1b 0xc 0x19 0x10 0x16 0x14 0x13 0x17 0x10 0x1a 0xd 0x1b 0xa 0x1b 0x8 0x19 0x6 0x17 0x5 0x13 0x6 0x10 0x7 0xd 0x8 0xa 0xb 0x7 0xe 0x6 0x10 0x6 0x12 0x8 0x15 0xa 0x17 0xd 0x18 0x10 0x19 0x13 0x19 0x16 0x18 0x18 0x17 0x19 0x14 0x10 0x19 0xf 0x17 0xd 0x17 0xa 0x19 0x6 0x1a 0x6 0x16 0x9 0x13 0x9 0x11 0x7 0x10 0x3 0xe 0x3 0xb 0x8 0xb 0xb 0xb 0xc 0xa 0xc 0x6 0xe 0x2 0x10 0x4 0x11 0x8 0x12 0xa 0x14 0x9 0x19 0x7 0x1b 0x9 0x19 0xd 0x17 0xf 0x17 0x10 0x1a 0x12 0x1d 0x15 0x1a 0x16 0x15 0x15 0x14 0x16 0x13 0x18 0x12 0x1d 0x10 0x19 0xe 0x17 0xd 0x17 0xb 0x17 0x8 0x17 0x5 0x19 0x2 0x19 0x3 0x17 0x8 0x14 0xb 0x12 0xe 0x11 0x10 0x10 0x11 0x10 0x14 0xe 0x19 0xb 0x1c 0x9 0x1c 0x9 0x19 0x9 0x17 0xa 0x16 0xa 0x14 0x9 0x13 0x7 0x11 0x4 0xf 0x2 0xb 0x3 0x9 0x6 0x9 0x9 0x9 0xa 0x9 0xb 0x8 0xb 0x7 0xb 0x7 0xb 0x10 0x19 0x13 0x18 0x15 0x17 0x16 0x16 0x18 0x15 0x18 0x15 0x18 0x14 0x15 0x12 0x10 0x10 0xb 0xe 0x9 0xc 0x8 0xc 0x9 0xb 0xa 0xa 0xb 0x9 0xd 0x8 0x10 0x6 0x14 0x4 0x1a 0x3 0x1d 0x4 0x1c 0x8 0x19 0xb 0x15 0xd 0x12 0xf 0x10 0x10 0xd 0x11 0xa 0x13 0x6 0x16 0x3 0x19 0x3 0x1c 0x7 0x1c 0xc 0x1a
######################################################################
# INPUT: chip8/Chip-8 Programs/BMP Viewer - Hello (C8 example) [Hap, 2005].ch8
######################################################################
:proto L1 # 202
:proto Sub1 # 226
:proto D2 # 230
: main
0x12 : D1 0x2 # SMC: jump L1
: L1
clear
i := D1
load v0
i := D2
v1 := 64
if v0 != -1 then v1 >>= v0
v0 := v1
v0 <<= v0
v2 := 0
v3 := 1
v1 += -1
loop
sprite v2 v1 1
v2 += 8
if v2 == v0 then Sub1
i += v3
again
: Sub1
v1 += -1
v2 := 0
if v1 == -1 then loop
again
return
: D2
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x3 0xc0 0x0 0x0 0x0 0x0 0x0 0x1 0x83 0xc0 0x0 0x0 0x0 0x0 0x3f 0xc3 0xc3 0xc0 0x0 0x0 0x0 0x0 0xff 0xe3 0xc3 0xc0 0x1e 0x0 0x0 0x1 0xff 0xe3 0xe3 0xc0 0x3f 0x80 0x0 0x33 0xff 0xc3 0xe3 0xc0 0x7f 0xc0 0xc0 0x7b 0xe0 0x1 0xe3 0xe0 0xff 0xf0 0xe0 0x7f 0xe0 0x1 0xe3 0xe0 0xff 0xf8 0xe0 0x7f 0xfe 0x1 0xe1 0xe0 0xf1 0xfc 0xf0 0x3f 0xff 0xc1 0xe1 0xe0 0xf0 0x7c 0xf0 0x3d 0xff 0xe1 0xe1 0xe0 0xf0 0x3e 0xf0 0x3f 0xff 0xe1 0xe1 0xe0 0xf0 0x3e 0xf0 0x3f 0xf3 0xf1 0xe1 0xe0 0xf0 0x1e 0xf8 0x1e 0xf9 0xf1 0xe1 0xe0 0xf0 0x1e 0xff 0x9e 0xff 0xf3 0xe1 0xe0 0xf0 0x3e 0x7f 0xff 0x7f 0xf3 0xe1 0xe0 0xf8 0x3e 0x7f 0xff 0x3f 0xe3 0xc1 0xe0 0xf8 0x3c 0x7f 0xff 0xf 0xc3 0xc1 0xe0 0x7c 0x7c 0x3c 0xff 0x7 0x83 0xc3 0xe0 0x7e 0x7c 0x3e 0x3f 0x0 0x3 0xc3 0xe0 0x3f 0xf8 0x3e 0xf 0x0 0x7 0xc3 0xc0 0x1f 0xf8 0x1e 0xf 0x0 0x7 0xc3 0xc0 0x1f 0xf0 0x1e 0xf 0x0 0x7 0x87 0xc0 0xf 0xc0 0x1e 0xf 0x0 0xf 0x87 0xc0 0x0 0x0 0x1e 0xf 0x0 0xf 0x8f 0x80 0x0 0x0 0x1e 0x6 0x0 0x7 0xf 0x80 0x0 0x0 0xc 0x0 0x0 0x0 0x7 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Programs/Chip8 emulator Logo [Garstyciuks].ch8
######################################################################
:proto Sub1 # 21A
:proto D1 # 220
: main
clear
v0 := 0
v1 := 0
v2 := 8
i := D1
loop
if v0 == 64 then Sub1
if v1 == 32 then loop
again
sprite v0 v1 8
i += v2
v0 += 8
again
: Sub1
v0 := 0
v1 += 8
return
: D1
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x7f 0x40 0x5f 0x50 0x57 0x54 0x54 0x0 0xfc 0x4 0xf4 0x14 0xd4 0x54 0x54 0x0 0x3f 0x20 0x2f 0x28 0x2b 0x2a 0x2a 0x0 0xfe 0x2 0xfa 0xa 0xea 0x2a 0x2a 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x54 0x54 0x54 0x54 0x54 0x54 0x74 0x0 0x54 0x54 0x54 0x54 0x74 0x0 0x0 0x0 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x3b 0x0 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0xee 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x74 0x54 0x54 0x54 0x54 0x54 0x54 0x54 0x0 0x0 0x74 0x54 0x54 0x54 0x54 0x54 0x3b 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0xee 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x54 0x54 0x57 0x50 0x5f 0x40 0x7f 0x0 0x54 0x54 0xd4 0x14 0xf4 0x4 0xfc 0x0 0x2a 0x2a 0x2b 0x28 0x2f 0x20 0x3f 0x0 0x2a 0x2a 0xea 0xa 0xfa 0x2 0xfe 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Programs/Chip8 Picture.ch8
######################################################################
:proto D1 # 248
:proto D2 # 24A
:proto D3 # 258
:proto D4 # 267
:proto D5 # 276
:proto D6 # 285
:proto D7 # 294
: main
clear
i := D1
v0 := 0
v1 := 30
v2 := 0
loop
sprite v2 v0 2
sprite v2 v1 2
v2 += 8
if v2 != 64 then
again
v0 := 0
v1 := 62
v2 := 2
i := D2
sprite v0 v2 14
sprite v1 v2 14
v2 += 14
sprite v0 v2 14
sprite v1 v2 14
i := D3
v0 := 11
v1 := 8
sprite v0 v1 15
v0 += 10
i := D4
sprite v0 v1 15
v0 += 10
i := D5
sprite v0 v1 15
v0 += 3
i := D6
sprite v0 v1 15
v0 += 10
i := D7
sprite v0 v1 15
loop
again
: D1
0xff 0xff
: D2
0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0
: D3
0xff 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0xff
: D4
0x81 0x81 0x81 0x81 0x81 0x81 0x81 0xff 0x81 0x81 0x81 0x81 0x81 0x81 0x81
: D5
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D6
0xff 0x81 0x81 0x81 0x81 0x81 0x81 0xff 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D7
0xff 0x81 0x81 0x81 0x81 0x81 0x81 0xff 0x81 0x81 0x81 0x81 0x81 0x81 0xff 0xff
######################################################################
# INPUT: chip8/Chip-8 Programs/Clock Program [Bill Fisher, 1981].ch8
######################################################################
# InvalidOpcode('02D8',)
:proto L1 # 260
:proto Sub1 # 2CE
:proto D1 # 2E0
: main
v1 := key
v2 := key
v3 := key
v4 := key
v5 := key
v6 := key
clear
v7 := 1
Sub1
v8 += 1
i := hex v1
sprite v7 v8 5
v7 := 11
Sub1
v8 += 1
i := hex v2
sprite v7 v8 5
v7 := 23
Sub1
v8 += 1
i := hex v3
sprite v7 v8 5
v7 := 33
Sub1
v8 += 1
i := hex v4
sprite v7 v8 5
v7 := 45
Sub1
v8 += 1
i := hex v5
sprite v7 v8 5
v7 := 55
Sub1
v8 += 1
i := hex v6
sprite v7 v8 5
vD := key
vD := 37
delay := vD
jump L1
0x6d 0x3b 0xfd 0x15 0x22 0xe8 0x76 0x1 0x46 0xa 0x12 0x6a 0x22 0xe8
: L1
loop
vD := delay
if vD != 0 then
again
0x2 0xd8 0x12 0x52 0x66 0x0 0x22 0xe8 0x22 0xf0 0x75 0x1 0x45 0x6 0x12 0x7a 0x22 0xf0 0x12 0x60 0x65 0x0 0x22 0xf0 0x22 0xf8 0x74 0x1 0x44 0xa 0x12 0x8a 0x22 0xf8 0x12 0x60 0x64 0x0 0x22 0xf8 0x23 0x0 0x73 0x1 0x43 0x6 0x12 0x9a 0x23 0x0 0x12 0x60 0x63 0x0 0x23 0x0 0x23 0x8 0x72 0x1 0x42 0x4 0x12 0xba 0x42 0xa 0x12 0xae 0x23 0x8 0x12 0x60 0x62 0x0 0x23 0x8 0x23 0x10 0x71 0x1 0x23 0x10 0x12 0x60 0x41 0x2 0x12 0xc2 0x23 0x8 0x12 0x60 0x62 0x0 0x23 0x8 0x23 0x10 0x61 0x0 0x23 0x10 0x12 0x60
: Sub1
v8 := 7
i := D1
sprite v7 v8 7
v7 += 1
return
0xf8 0xfa 0xaf 0x2f 0x8f 0x3a 0xdb 0xd4
: D1
0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0x0 0x67 0x38 0xf6 0x29 0xd7 0x85 0x0 0xee 0x67 0x2e 0xf5 0x29 0xd7 0x85 0x0 0xee 0x67 0x22 0xf4 0x29 0xd7 0x85 0x0 0xee 0x67 0x18 0xf3 0x29 0xd7 0x85 0x0 0xee 0x67 0xc 0xf2 0x29 0xd7 0x85 0x0 0xee 0x67 0x2 0xf1 0x29 0xd7 0x85 0x0 0xee
######################################################################
# INPUT: chip8/Chip-8 Programs/Delay Timer Test [Matthew Mikolay, 2010].ch8
######################################################################
:proto Sub1 # 21E
:proto D1 # 23A
: main
v6 := 1
: L1
loop
Sub1
v4 := key
if v4 == 2 then v3 += 1
if v4 == 8 then v3 -= v6
if v4 != 5 then
again
delay := v3
loop
v3 := delay
Sub1
if v3 != 0 then
again
jump L1
: Sub1
clear
v5 := 0
i := D1
bcd v3
load v2
i := hex v0
sprite v5 v6 5
i := hex v1
v5 := 5
sprite v5 v6 5
i := hex v2
v5 := 10
sprite v5 v6 5
return
: D1
######################################################################
# INPUT: chip8/Chip-8 Programs/Division Test [Sergey Naydenov, 2010].ch8
######################################################################
:proto L1 # 205
:proto L4 # 295
:proto L5 # 2BF
:proto Sub1 # 313
:proto L9 # 339
:proto L10 # 33F
:proto Sub2 # 351
:proto D1 # 369
:proto D2 # 36C
:proto D3 # 36D
:proto D4 # 36E
:proto D5 # 36F
:proto D6 # 370
:proto D7 # 371
:proto D8 # 372
: main
jump L1
0x43 0x38 0x50
: L1
v0 := 20
i := D6
save v0
v0 := 4
i := D5
save v0
v0 := 0
i := D7
save v0
: L2
i := D6
load v0
v5 := v0
i := D5
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 0 then jump L5
i := D6
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 >>= v1
i := D4
save v0
i := D5
load v0
i := D3
save v0
v0 := 1
i := D2
save v0
loop
i := D4
load v0
v5 := v0
i := D3
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 0 then jump L4
i := D3
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 <<= v1
i := D3
save v0
i := D2
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 <<= v1
i := D2
save v0
again
: L4
i := D6
load v0
v5 := v0
i := D3
load v0
v1 := v0
v0 := v5
v0 -= v1
i := D6
save v0
i := D7
load v0
v5 := v0
i := D2
load v0
v1 := v0
v0 := v5
v0 += v1
i := D7
save v0
jump L2
: L5
v0 := 0
v3 := v0
v0 := 0
v4 := v0
i := D7
load v0
Sub2
v0 := 20
i := D6
save v0
v0 := 4
i := D5
save v0
v0 := 0
v3 := v0
v0 := 10
v4 := v0
i := D6
load v0
v5 := v0
i := D5
load v0
v1 := v0
v0 := v5
Sub1
Sub2
loop
again
0x81 0x0 0xa3 0x72 0x62 0x1 0x8e 0x25 0xfe 0x1e 0xf0 0x65 0x0 0xee 0x62 0x1 0x63 0x0 0x83 0x4 0x81 0x25 0x31 0x0 0x13 0x7 0x80 0x30 0x0 0xee
: Sub1
i := D8
i += vE
save v6
v6 := 0
: L7
v2 := v0
v2 -= v1
if vF != 1 then jump L10
v3 := v0
v3 >>= v0
v4 := v1
v5 := 1
loop
v2 := v3
v2 -= v4
if vF != 1 then jump L9
v4 <<= v0
v5 <<= v0
again
: L9
v0 -= v4
v6 += v5
jump L7
: L10
load v5
v0 := v6
return
0x82 0x0 0x80 0x15 0x3f 0x0 0x13 0x45 0x80 0x20 0x0 0xee
: Sub2
i := D1
bcd v0
load v2
i := hex v0
sprite v3 v4 5
v3 += 6
i := hex v1
sprite v3 v4 5
v3 += 6
i := hex v2
sprite v3 v4 5
return
: D1
0x28 0x63 0x29
: D2
0x0
: D3
0x0
: D4
0x0
: D5
0x0
: D6
0x0
: D7
0x0
: D8
0x0
######################################################################
# INPUT: chip8/Chip-8 Programs/Fishie [Hap, 2005].ch8
######################################################################
:proto D1 # 220
: main
clear
i := D1
v2 := 8
v0 := -8
: L1
v0 += 8
v1 := 16
if v0 == 32 then loop
again
loop
sprite v1 v0 8
i += v2
v1 += 8
if v1 == 48 then jump L1
again
0x0 0x0 0x0 0x0
: D1
0x0 0x0 0x0 0x0 0x0 0x18 0x3c 0x3c 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x3e 0x3f 0x3f 0x3b 0x39 0x38 0x38 0x38 0x0 0x0 0x80 0xc1 0xe7 0xff 0x7e 0x3c 0x0 0x1f 0xff 0xf9 0xc0 0x80 0x3 0x3 0x0 0x80 0xe0 0xf0 0x78 0x38 0x1c 0x1c 0x38 0x38 0x39 0x3b 0x3f 0x3f 0x3e 0x3c 0x78 0xfc 0xfe 0xcf 0x87 0x3 0x1 0x0 0x0 0x0 0x0 0x0 0x80 0xe3 0xff 0x7f 0x1c 0x38 0x38 0x70 0xf0 0xe0 0xc0 0x0 0x3c 0x18 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/Chip-8 Programs/Framed MK1 [GV Samways, 1980].ch8
######################################################################
# InvalidOpcode('0000',)
:proto L2 # 216
:proto L3 # 224
:proto Sub1 # 280
:proto Sub2 # 292
:proto D1 # 2A0
:proto D2 # 2A1
:proto Sub3 # 2A2
: main
Sub1
: L1
loop
vC := random 0b1
if vC == 1 then jump L2
vA := random 0b111110
vB := 2
if vA == 0 then jump L1
i := D2
sprite vA vB 1
jump L3
: L2
vB := random 0b11110
vA := 2
if vB == 0 then
again
i := D2
sprite vA vB 1
0x0 0x0
: L3
loop
vD := random 0b11
if vD == 0 then vA += -1
if vA == 1 then vA += 2
if vD == 1 then vB += -1
if vB == 1 then vB += 2
if vD == 2 then vA += 1
if vA == 62 then vA += -2
if vD == 3 then vB += 1
if vB == 30 then vB += -2
i := D2
sprite vA vB 1
if vF != 1 then jump L3
v0 := 15
if v0 -key then
again
clear
jump main
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: Sub1
vB := 0
Sub2
vB := 31
Sub2
vA := 0
Sub3
vA := 63
Sub3
return
: Sub2
vA := 0
loop
i := D1
sprite vA vB 1
vA += 8
if vA != 64 then
again
return
: D1
0xff
: D2
0x80
: Sub3
vB := 1
loop
i := D2
sprite vA vB 1
vB += 1
if vB != 31 then
again
return
######################################################################
# INPUT: chip8/Chip-8 Programs/Framed MK2 [GV Samways, 1980].ch8
######################################################################
:proto L2 # 216
:proto L3 # 224
:proto L5 # 256
:proto Sub1 # 280
:proto Sub2 # 292
:proto D1 # 2A0
:proto D2 # 2A1
:proto Sub3 # 2A2
: main
Sub1
: L1
loop
vC := random 0b1
if vC == 1 then jump L2
vA := random 0b111110
vB := 2
if vA == 0 then jump L1
i := D2
sprite vA vB 1
jump L3
: L2
vB := random 0b11110
vA := 2
if vB == 0 then
again
i := D2
sprite vA vB 1
v8 := 0
: L3
vD := random 0b11
loop
if vD == 0 then vA += -1
if vA == 1 then vA += 2
if vD == 1 then vB += -1
if vB == 1 then vB += 2
if vD == 2 then vA += 1
if vA == 62 then vA += -2
if vD == 3 then vB += 1
if vB == 30 then vB += -2
i := D2
sprite vA vB 1
if vF != 0 then jump L5
v8 += -1
if v8 != 0 then
again
v8 := random 0b11
: L5
v0 := 15
if v0 -key then jump L3
clear
jump main
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: Sub1
vB := 0
Sub2
vB := 31
Sub2
vA := 0
Sub3
vA := 63
Sub3
return
: Sub2
vA := 0
loop
i := D1
sprite vA vB 1
vA += 8
if vA != 64 then
again
return
: D1
0xff
: D2
0x80
: Sub3
vB := 1
loop
i := D2
sprite vA vB 1
vB += 1
if vB != 31 then
again
return
######################################################################
# INPUT: chip8/Chip-8 Programs/IBM Logo.ch8
######################################################################
:proto D1 # 22A
:proto D2 # 239
:proto D3 # 248
:proto D4 # 257
:proto D5 # 266
:proto D6 # 275
: main
clear
i := D1
v0 := 12
v1 := 8
sprite v0 v1 15
v0 += 9
i := D2
sprite v0 v1 15
i := D3
v0 += 8
sprite v0 v1 15
v0 += 4
i := D4
sprite v0 v1 15
v0 += 8
i := D5
sprite v0 v1 15
v0 += 8
i := D6
sprite v0 v1 15
loop
again
: D1
0xff 0x0 0xff 0x0 0x3c 0x0 0x3c 0x0 0x3c 0x0 0x3c 0x0 0xff 0x0 0xff
: D2
0xff 0x0 0xff 0x0 0x38 0x0 0x3f 0x0 0x3f 0x0 0x38 0x0 0xff 0x0 0xff
: D3
0x80 0x0 0xe0 0x0 0xe0 0x0 0x80 0x0 0x80 0x0 0xe0 0x0 0xe0 0x0 0x80
: D4
0xf8 0x0 0xfc 0x0 0x3e 0x0 0x3f 0x0 0x3b 0x0 0x39 0x0 0xf8 0x0 0xf8
: D5
0x3 0x0 0x7 0x0 0xf 0x0 0xbf 0x0 0xfb 0x0 0xf3 0x0 0xe3 0x0 0x43
: D6
0xe0 0x0 0xe0 0x0 0x80 0x0 0x80 0x0 0x80 0x0 0x80 0x0 0xe0 0x0 0xe0
######################################################################
# INPUT: chip8/Chip-8 Programs/Jumping X and O [Harry Kleinberg, 1977].ch8
######################################################################
:proto Sub1 # 212
:proto L4 # 22E
:proto D1 # 240
:proto D2 # 246
:proto D3 # 24C
: main
i := D3
v5 := 48
v6 := 4
sprite v5 v6 6
loop
i := D1
Sub1
i := D2
Sub1
again
: Sub1
v1 := 30
v2 := 13
: L2
sprite v1 v2 5
v3 := 12
delay := v3
loop
v4 := delay
if v4 != 0 then
again
if vF == 1 then jump L4
sprite v1 v2 5
v1 := random 0b111111
v2 := random 0b11111
jump L2
: L4
sprite v1 v2 5
return
0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
: D1
0x88 0x50 0x20 0x50 0x88 0x0
: D2
0xf8 0x88 0x88 0x88 0xf8 0x0
: D3
0xfc 0xfc 0xfc 0xfc 0xfc 0xfc
######################################################################
# INPUT: chip8/Chip-8 Programs/Keypad Test [Hap, 2006].ch8
######################################################################
:proto L2 # 24E
: main
jump L2
: D1
0x8 0x19 0x1 0x1 0x8 0x1 0xf 0x1 0x1 0x9 0x8 0x9 0xf 0x9 0x1 0x11 0x8 0x11 0xf 0x11 0x1 0x19 0xf 0x19 0x16 0x1 0x16 0x9 0x16 0x11 0x16 0x19
: D2
0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0x0
: Sub1
i := D1
v2 <<= v0
i += v2
v2 >>= v0
load v1
return
: Sub2
i := D1
v2 <<= v0
i += v2
v2 >>= v0
save v1
return
: Sub3
vF := 16
delay := vF
loop
vF := delay
if vF != 0 then
again
return
: L2
clear
v2 := 0
loop
Sub1
i := hex v2
sprite v0 v1 5
v0 += -1
v1 += -1
Sub2
v2 += 1
if v2 != 16 then
again
loop
v2 := key
Sub1
i := D2
sprite v0 v1 7
Sub3
sprite v0 v1 7
again
######################################################################
# INPUT: chip8/Chip-8 Programs/Life [GV Samways, 1980].ch8
######################################################################
:proto D1 # 238
:proto D2 # 280
:proto L4 # 284
:proto L5 # 296
:proto L6 # 2B0
:proto L7 # 2B2
:proto L8 # 2BA
:proto L9 # 2FA
: main
jump L4
: L1
v0 += 4
if v0 == 64 then v1 += 4
if v0 == 64 then v0 := 0
if v1 != 32 then jump L8
i := D1
i += vE
v1 := -4
save v1
vE := 0
loop
i := D1
i += vE
load v1
i := D2
sprite v0 v1 3
vE += 2
if v1 != -4 then
again
sprite v0 v1 3
jump L7
: L3
i := D1
i += vE
save v1
vE += 2
jump L1
: D1
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D2
0xe0 0xa0 0xe0
: D3
0x80
: L4
loop
v1 := key
if v1 == 15 then jump L6
vA := 8
vA &= v1
if vA == 0 then jump L5
buzzer := vA
jump L4
: L5
v1 += v1
v1 += v1
v0 := key
v0 += v0
v0 += v0
i := D2
sprite v0 v1 3
again
: Sub1
vF := 0
sprite v0 v1 1
vC += vF
sprite v0 v1 1
return
: L6
v2 := key
: L7
v0 := 0
v1 := 0
vE := 0
v2 += -1
: L8
if v2 == 0 then jump L4
vC := 0
i := D3
sprite v0 v1 1
v4 := vF
sprite v0 v1 1
v0 += -4
Sub1
v1 += 4
Sub1
v0 += 4
Sub1
v0 += 4
Sub1
v1 += -4
Sub1
v1 += -4
Sub1
v0 += -4
Sub1
v0 += -4
Sub1
v0 += 4
v1 += 4
if vC == 2 then jump L1
if vC == 3 then jump L9
if v4 != 1 then jump L1
jump L3
: L9
if v4 != 1 then jump L3
jump L1
######################################################################
# INPUT: chip8/Chip-8 Programs/Minimal game [Revival Studios, 2007].ch8
######################################################################
:proto Sub1 # 214
:proto Sub2 # 21A
:proto Sub3 # 220
:proto L2 # 228
:proto L3 # 230
:proto L4 # 238
:proto L5 # 240
:proto Sub4 # 242
:proto D1 # 24A
: main
clear
Sub1
Sub2
loop
Sub2
Sub3
Sub2
v0 := 1
delay := v0
Sub4
again
: Sub1
v3 := 32
v4 := 25
return
: Sub2
i := D1
sprite v3 v4 6
return
: Sub3
v0 := 8
if v0 -key then jump L2
v4 += 1
: L2
v0 := 2
if v0 -key then jump L3
v4 += -1
: L3
v0 := 4
if v0 -key then jump L4
v3 += -1
: L4
v0 := 6
if v0 -key then jump L5
v3 += 1
: L5
return
: Sub4
loop
v0 := delay
if v0 != 0 then
again
return
: D1
0x3c 0x18 0xff 0x18 0x24 0xe7 0x7e 0xff 0x99 0xe7 0x3c
######################################################################
# INPUT: chip8/Chip-8 Programs/Random Number Test [Matthew Mikolay, 2010].ch8
######################################################################
:proto D1 # 224
: main
loop
clear
v0 := random 0b11111111
i := D1
bcd v0
load v2
i := hex v0
v0 := 0
v3 := 0
sprite v0 v3 5
i := hex v1
v0 := 5
sprite v0 v3 5
i := hex v2
v0 := 10
sprite v0 v3 5
v0 := key
again
0 0
: D1
######################################################################
# INPUT: chip8/Chip-8 Programs/SQRT Test [Sergey Naydenov, 2010].ch8
######################################################################
:proto L1 # 27B
:proto Sub2 # 35B
:proto D1 # 373
:proto D2 # 376
:proto D3 # 37E
:proto D4 # 37F
:proto D5 # 380
: main
jump L1
0x43 0x38 0x50
: Sub1
v0 := 4
vA := v0
v0 := 4
vB := v0
v0 := 0
i := D2
i += v0
sprite vA vB 8
v0 := 12
vA := v0
v0 := 4
vB := v0
i := D3
sprite vA vB 1
v0 := 20
vA := v0
v0 := 4
vB := v0
i := D3
sprite vA vB 1
v0 := 128
i := D3
save v0
v0 := 28
vA := v0
v0 := 4
vB := v0
i := D3
sprite vA vB 1
v0 := 0
v5 := v0
v0 := -8
v1 := v5
i := D2
i += v1
save v0
v0 := 1
v5 := v0
v0 := 0
v1 := v5
i := D2
i += v1
save v0
v0 := 2
v5 := v0
v0 := -8
v1 := v5
i := D2
i += v1
save v0
v0 := 31
vA := v0
v0 := 7
vB := v0
v0 := 0
i := D2
i += v0
sprite vA vB 3
return
: L1
Sub1
v0 := 144
i := D5
save v0
v0 := 13
v3 := v0
v0 := 6
v4 := v0
i := D5
load v0
Sub2
v0 := 1
i := D4
save v0
v0 := 0
i := D3
save v0
loop
i := D5
load v0
v5 := v0
i := D4
load v0
v1 := v0
v0 := v5
v0 -= v1
i := D5
save v0
i := D4
load v0
v5 := v0
v0 := 2
v1 := v0
v0 := v5
v0 += v1
i := D4
save v0
i := D3
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 += v1
i := D3
save v0
i := D5
load v0
v5 := v0
v0 := 0
v1 := v0
v0 := v5
v2 := v0
v0 -= v1
v0 := v2
if v0 == v1 then vF := 0
if vF != 0 then
again
v0 := 38
v3 := v0
v0 := 6
v4 := v0
i := D3
load v0
Sub2
loop
again
0x81 0x0 0xa3 0x81 0x62 0x1 0x8e 0x25 0xfe 0x1e 0xf0 0x65 0x0 0xee 0x62 0x1 0x63 0x0 0x83 0x4 0x81 0x25 0x31 0x0 0x13 0x11 0x80 0x30 0x0 0xee 0xa3 0x81 0xfe 0x1e 0xf6 0x55 0x66 0x0 0x82 0x0 0x82 0x15 0x3f 0x1 0x13 0x49 0x83 0x0 0x83 0x6 0x84 0x10 0x65 0x1 0x82 0x30 0x82 0x45 0x3f 0x1 0x13 0x43 0x84 0xe 0x85 0xe 0x13 0x35 0x80 0x45 0x86 0x54 0x13 0x25 0xf5 0x65 0x80 0x60 0x0 0xee 0x82 0x0 0x80 0x15 0x3f 0x0 0x13 0x4f 0x80 0x20 0x0 0xee
: Sub2
i := D1
bcd v0
load v2
i := hex v0
sprite v3 v4 5
v3 += 6
i := hex v1
sprite v3 v4 5
v3 += 6
i := hex v2
sprite v3 v4 5
return
: D1
0x28 0x63 0x29
: D2
0x1 0x41 0x21 0x11 0x9 0x5 0x3 0x1
: D3
0xff
: D4
0x0
: D5
0x0 0x0
######################################################################
# INPUT: chip8/Chip-8X and Hybrids/Pinball [Andrew Modla].ch8
######################################################################
# InvalidOpcode('0634',)
:proto L1 # 20E
:proto L2 # 212
:proto L3 # 214
:proto D1 # 67F
: main
loop
vE := 1
if vE key then jump L1
vE := 2
if vE key then jump L2
again
: L1
v8 := 0
jump L3
: L2
v8 := 1
: L3
v5 := 1
v6 := -24
i := D1
0x6 0x34 0xfc 0x1 0x4c 0x0 0x12 0x34 0x6 0x34 0xf0 0x1 0x6 0x3 0x12 0x2a 0x5 0xe3 0x70 0xff 0x30 0x0 0x12 0x26 0x12 0x1a 0xa6 0x8a 0x6 0x42 0xa6 0x9a 0x6 0x28 0x5 0x1 0x48 0x0 0x12 0x46 0x6 0x28 0x5 0x1 0xa6 0x90 0x6 0x3a 0xf8 0x1 0xc1 0x7 0x71 0x3 0x6 0x3a 0xf1 0x1 0x6 0x3a 0xf1 0x1 0x48 0x0 0x12 0x62 0x6a 0x1 0x25 0x2e 0x25 0x50 0x6a 0x0 0x25 0x2e 0x25 0x50 0x61 0x16 0x60 0xa 0xa6 0x7c 0xd0 0x13 0x60 0x19 0xd0 0x13 0x60 0x24 0xd0 0x13 0x60 0x33 0xd0 0x13 0x61 0x4 0x24 0x7c 0x71 0xff 0x31 0x0 0x12 0x7e 0x25 0x78 0x25 0x92 0x6a 0x0 0x64 0x0 0x6e 0x1 0xee 0xa1 0x12 0xa8 0x24 0xb4 0xff 0x7 0x3f 0x0 0x12 0x8e 0x25 0x50 0x6f 0x4 0xff 0x15 0x61 0x1 0x84 0x13 0x12 0x8e 0x44 0x0 0x25 0x50 0xa6 0x9a 0xfa 0x1e 0xf0 0x65 0x70 0xff 0x6 0x40 0xf0 0x55 0x25 0x50 0xa6 0x93 0x6 0x28 0x3 0x1 0x65 0x2 0x66 0x3f 0x6 0x3 0x12 0xc8 0x64 0x4 0xc7 0x7 0x25 0x72 0xa6 0x93 0xf0 0x65 0xf0 0x15 0x24 0xb4 0xff 0x7 0x3f 0x0 0x12 0xd6 0x6 0x3 0x12 0xea 0x12 0xdc 0xa6 0x4d 0xf4 0x1e 0xf0 0x65 0x84 0x0 0x8c 0x40 0x5 0xe3 0x61 0xef 0x81 0x65 0x4f 0x0 0x13 0x34 0x6 0x8 0x13 0xaa 0xa6 0x93 0x6 0x34 0xf1 0x0 0x31 0x3 0x13 0xa 0x6e 0x0 0xee 0xa1 0x13 0x5a 0x78 0xff 0x38 0x0 0x13 0x2e 0xa6 0x9d 0x6 0x34 0xfe 0x0 0x4e 0x0 0x13 0x26 0x7e 0xff 0x6 0x3a 0xfe 0x0 0x88 0x70 0x6c 0x8 0x12 0xec 0xa6 0x93 0x6 0x28 0x3 0x1 0x13 0x20 0x6 0x3 0x13 0x2e 0x12 0xce 0x6f 0x2d 0xff 0x18 0xff 0x15 0x24 0xb4 0xff 0x7 0x3f 0x0 0x13 0x3a 0xa6 0x90 0x6 0x34 0xf8 0x0 0x8a 0x83 0xa6 0x9a 0xfa 0x1e 0xf0 0x65 0x40 0x0 0x13 0x58 0x12 0x8c 0x24 0x86 0x13 0x58 0xa6 0x91 0xfa 0x1e 0xf0 0x65 0x40 0x0 0x13 0x7c 0x6 0x40 0x70 0xff 0xf0 0x55 0xa6 0x9d 0x6 0x28 0x18 0x0 0xa6 0x93 0x6 0x28 0x1 0x1 0x25 0x68 0x25 0x70 0x12 0xea 0x24 0x6e 0x24 0xa4 0xa6 0x90 0x6 0x34 0xf8 0x0 0xa6 0x9a 0xfa 0x1e 0x60 0x0 0xf0 0x55 0x8a 0x83 0x78 0xff 0xa6 0x90 0x6 0x3a 0xf8 0x0 0x38 0x0 0x13 0x58 0x6e 0x1 0xee 0xa1 0x13 0xa4 0x13 0x9c 0x24 0xa4 0x24 0x6e 0x13 0x42 0x6d 0x2 0xfd 0x18 0x25 0x70 0xa6 0x7a 0x81 0x60 0x6 0x34 0xf2 0x1 0x81 0x25 0x4f 0x0 0x14 0x1e 0x81 0x60 0x6 0x34 0xf2 0x1 0x82 0x15 0x4f 0x0 0x14 0x1e 0x61 0x7 0x81 0x62 0xa6 0x5f 0xf1 0x1e 0xf0 0x65 0x81 0x0 0x41 0x0 0x14 0x1e 0x24 0x86 0x25 0x2e 0x24 0xb4 0xa6 0x89 0xf1 0x1e 0xf0 0x65 0x8f 0x0 0xa6 0x97 0x4a 0x1 0xa6 0x9a 0x69 0x3 0x6 0x40 0xf0 0x65 0x6 0x40 0x80 0xf4 0x6c 0xa 0x80 0xc5 0x3f 0x0 0x14 0x2 0x70 0xa 0xf0 0x55 0x6 0x40 0x79 0xff 0x39 0x0 0x13 0xf0 0x3f 0x0 0x13 0x56 0xc2 0x1 0x32 0x0 0x14 0x1a 0x24 0x7c 0x14 0x1c 0x24 0x86 0x25 0x2e 0x24 0xb4 0x46 0xe8 0x14 0x66 0x46 0xef 0x14 0x66 0x61 0x0 0x6c 0x2 0x5 0xe3 0x6 0x8 0x71 0x1 0x6c 0x7 0x5 0xe3 0x6 0x8 0x71 0x2 0x6c 0x9 0x5 0xe3 0x6 0x8 0x71 0x4 0x6c 0x3 0x5 0xe3 0x6 0x8 0x71 0x8 0x6c 0x4 0x5 0xe3 0x41 0x5 0x12 0xe2 0x41 0x7 0x12 0xe2 0x41 0xd 0x12 0xe2 0x41 0x1 0x12 0xe2 0x41 0xa 0x14 0x6a 0x41 0xb 0x14 0x6a 0x25 0x68 0x12 0xea 0xa6 0x55 0x12 0xe4 0x88 0xa0 0x6a 0x1 0x25 0x50 0x6a 0x0 0x25 0x50 0x8a 0x80 0x0 0xee 0xa6 0x89 0xc0 0x7 0x70 0x2 0xf1 0x1e 0xf0 0x55 0x69 0xb 0xa6 0x75 0xf1 0x1e 0xf0 0x65 0x82 0x0 0xa6 0x67 0xd2 0x97 0x79 0x1 0x72 0x1 0xa6 0x89 0xf1 0x1e 0xf0 0x65 0xf0 0x29 0xd2 0x95 0x0 0xee 0xa6 0x6e 0x60 0x18 0x61 0x0 0xd0 0x14 0x60 0x20 0xa6 0x72 0xd0 0x14 0x0 0xee 0xa6 0x8e 0xf0 0x65 0x6 0x40 0x30 0x0 0x14 0xd6 0x6e 0x4 0xee 0xa1 0x14 0xee 0xa6 0x9c 0xf0 0x65 0x6 0x40 0x30 0x0 0x14 0xe2 0x6e 0x6 0xee 0xa1 0x14 0xf8 0x0 0xee 0x70 0xff 0xa6 0x8e 0xf0 0x55 0x40 0x4 0x25 0x78 0x14 0xc4 0x70 0xff 0xa6 0x9c 0xf0 0x55 0x40 0x4 0x25 0x92 0x0 0xee 0x25 0x2 0x60 0x9 0x6d 0x2 0xfd 0x18 0x14 0xd8 0x25 0x14 0x60 0x9 0x6d 0x2 0xfd 0x18 0x14 0xe4 0xa0 0xe9 0x6 0x25 0x6 0x28 0xf 0x1 0x6 0x28 0xff 0x1 0x6 0x28 0xf8 0x6 0x15 0x24 0xa0 0xec 0x6 0x25 0x6 0x28 0x1f 0x1 0x6 0x28 0xff 0x1 0x6 0x28 0xf0 0x8 0x6 0x28 0x0 0x8 0x6 0x28 0x0 0x0 0x0 0xee 0x62 0x0 0x6b 0x30 0x4a 0x1 0x6b 0x0 0x69 0x0 0xa6 0x94 0x4a 0x1 0xa6 0x97 0xf9 0x1e 0xf0 0x65 0xf0 0x29 0xdb 0x25 0x7b 0x6 0x79 0x1 0x39 0x3 0x15 0x38 0x0 0xee 0xa6 0x9a 0xfa 0x1e 0xf0 0x65 0x40 0x0 0x15 0x6e 0xf0 0x29 0x62 0x0 0x61 0x26 0x4a 0x1 0x61 0x16 0xd1 0x25 0x0 0xee 0x61 0xa 0x81 0x45 0x84 0x10 0x0 0xee 0xc7 0x3 0x77 0x3 0x88 0x70 0x0 0xee 0xa0 0xe9 0x6 0x25 0x6 0x28 0x8 0x1 0x6 0x28 0x0 0x1 0x6 0x28 0x0 0x6 0x6 0x28 0x8 0x8 0x6 0x28 0x8 0x0 0x0 0xee 0xa0 0xec 0x6 0x25 0x6 0x28 0x0 0x1 0x6 0x28 0x0 0x1 0x6 0x28 0x10 0x8 0x6 0x28 0x10 0x8 0x6 0x28 0x10 0x0 0x0 0xee 0x1 0xd6 0xd6 0xc6 0xd7 0xc6 0xd6 0xc6 0xcb 0xd7 0xd6 0xd6 0xd6 0xcb 0xd6 0xc1 0xd7 0xc1 0xd6 0xc1 0xcb 0xf8 0x8 0xf4 0x56 0xd3 0xf8 0x8 0xf5 0x56 0xd3 0x8e 0xf6 0x3b 0xd5 0xf8 0x1 0xf4 0x56 0xf8 0x80 0xae 0xd3 0x8e 0xfe 0x3b 0xd5 0xf8 0x1 0xf5 0x56 0xf8 0x1 0x30 0xd5 0xf8 0xfc 0xa7 0x96 0xb7 0xe7 0xf8 0x5 0xbd 0xf8 0xad 0xf4 0xf4 0xad 0xf8 0xf5 0xa6 0xe6 0x72 0xae 0x93 0xbc 0x4d 0xac 0xdc 0x4d 0xac 0xdc 0x8e 0x26 0x56 0xd4 0xf8 0x0 0xbc 0x30 0xb 0xf8 0x1 0xbc 0xf8 0xf5 0xa6 0xe6 0x72 0xae 0x9b 0xbf 0xf0 0xaf 0xef 0x8e 0xf3 0xbe 0x8e 0xf2 0x3a 0x1f 0x15 0x15 0x9c 0x3a 0x24 0x9e 0x5f 0xd4 0x9b 0xba 0xd4 0x45 0x5a 0xe5 0x8a 0xf4 0xaa 0x15 0x9a 0x7c 0x0 0xba 0xd4 0x45 0xa6 0xa 0x56 0x30 0x2a 0x45 0xa6 0x6 0x5a 0x30 0x2a 0x2a 0xd4 0xf8 0x14 0xaf 0xf8 0x0 0x5a 0x1a 0x2f 0x8f 0x3a 0x45 0xd4 0x3 0x9 0x1 0x3 0x0 0x1 0x9 0x2 0x7 0x8 0x9 0x1 0x0 0x3 0x1 0x2 0x3 0x0 0x1 0x2 0x2 0x3 0x3 0x4 0x0 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0x72 0x22 0x22 0x22 0x47 0x42 0x42 0x72 0x8 0x15 0x25 0x32 0x59 0x8e 0xe0 0xa0 0xe0
: D1
0x4 0x7 0x2 0x17 0x6 0x3f 0x8 0x17 0x4 0x8 0x0 0x9 0x3 0x9 0x8 0x0 0x0 0x0 0x9 0x9 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x5 0x0 0x0 0x0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
######################################################################
# INPUT: chip8/SuperChip Demos/Bounce [Les Harris].ch8
######################################################################
:proto Sub1 # 22E
:proto Sub2 # 238
:proto Sub3 # 240
:proto Sub4 # 24A
:proto Sub5 # 252
:proto Sub6 # 258
:proto D1 # 27A
:proto D2 # 280
:proto D3 # 286
:proto D4 # 28C
:proto D5 # 292
: main
hires
clear
v2 := 60
v3 := 45
v4 := 0
v5 := 0
v6 := v2
v7 := v3
Sub6
i := D1
sprite v2 v3 6
loop
if v4 == 0 then Sub1
if v4 == 1 then Sub2
if v5 == 0 then Sub3
if v5 == 1 then Sub4
Sub5
v6 := v2
v7 := v3
again
: Sub1
v0 := 1
v2 -= v0
if vF == 0 then v4 := 1
return
: Sub2
v2 += 1
if v2 == 121 then v4 := 0
return
: Sub3
v0 := 1
v3 -= v0
if vF == 0 then v5 := 1
return
: Sub4
v3 += 1
if v3 == 58 then v5 := 0
return
: Sub5
sprite v6 v7 6
sprite v2 v3 6
return
: Sub6
v8 := 48
v9 := 16
i := D2
sprite v8 v9 6
v8 += 5
i := D3
sprite v8 v9 6
v8 += 5
i := D4
sprite v8 v9 6
v8 += 5
sprite v8 v9 6
v8 += 5
i := D5
sprite v8 v9 6
i := D1
return
: D1
0x18 0x3c 0x7e 0x7e 0x3c 0x18
: D2
0x90 0x90 0xf0 0x90 0x90 0x0
: D3
0xf0 0x80 0xe0 0x80 0xf0 0x0
: D4
0x80 0x80 0x80 0x80 0xf0 0x0
: D5
0x60 0x90 0x90 0x90 0x60 0x0
######################################################################
# INPUT: chip8/SuperChip Demos/Car Race Demo [Erik Bryntse, 1991].ch8
######################################################################
:proto L2 # 23E
:proto Sub1 # 240
:proto Sub2 # 248
:proto Sub3 # 252
:proto Sub4 # 25A
:proto Sub5 # 264
:proto D1 # 270
:proto D2 # 274
: main
hires
v5 := 60
v6 := 45
v7 := 60
v3 := v5
v4 := v6
i := D2
sprite v3 v4 0
loop
i := D2
sprite v3 v4 0
scroll-down 3
sprite v5 v6 0
if vF != 0 then jump L2
v0 := v7
Sub5
v3 := v5
v4 := v6
v0 := 7
if v0 key then Sub2
v0 := 8
if v0 key then Sub1
v0 := random 0b11
if v0 == 0 then Sub3
v0 := random 0b11
if v0 == 0 then Sub4
again
: L2
loop
again
: Sub1
v5 += 1
if v5 == 110 then v5 := 109
return
: Sub2
v0 := 1
v5 -= v0
if vF == 0 then v5 := 0
return
: Sub3
v7 += 1
if v7 == 90 then v7 := 89
return
: Sub4
v0 := 1
v7 -= v0
if vF == 0 then v7 := 0
return
: Sub5
v1 := 0
i := D1
sprite v0 v1 3
v0 += 25
sprite v0 v1 3
return
: D1
0xa0 0x40 0xa0 0x0
: D2
0x30 0xc 0x3f 0xfc 0x32 0x4c 0x2 0x40 0x4 0x20 0x4 0x20 0x4 0x20 0x4 0x20 0xf4 0x2f 0xf4 0x2f 0xfd 0xbf 0xf6 0x6f 0xf6 0x6f 0x6 0x60 0x3f 0xfc 0x7f 0xfe
######################################################################
# INPUT: chip8/SuperChip Demos/Climax Slideshow - Part 1 [Revival Studios, 2008].ch8
######################################################################
:proto L1 # 214
:proto L3 # 242
:proto L4 # 256
:proto Sub1 # 286
:proto L6 # 28E
:proto L7 # 294
:proto Sub2 # 296
:proto Sub3 # 29E
:proto Sub4 # 2F6
:proto Sub5 # 32C
:proto Sub6 # 374
:proto D1 # 3A4
:proto D2 # 724
:proto D3 # AA4
:proto D4 # E24
:proto D5 # E54
:proto D6 # E7E
: main
jump L1
0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x53 0x54 0x55 0x44 0x49 0x4f 0x53 0x32 0x30 0x30 0x38
: L1
hires
clear
vD := 32
delay := vD
Sub2
Sub3
vD := 64
delay := vD
Sub2
Sub3
vD := 32
delay := vD
Sub2
clear
i := D6
Sub6
Sub4
vD := 4
vC := 0
loop
v0 := 5
if v0 -key then jump L3
jump L4
: L3
delay := vD
Sub2
vC += 1
if vC == 0 then Sub4
if vC == 4 then Sub4
if vC == 8 then vC := 0
again
: L4
i := D6
Sub6
clear
vD := 128
loop
i := D1
Sub5
delay := vD
Sub1
i := D1
Sub5
i := D2
Sub5
delay := vD
Sub1
i := D2
Sub5
i := D3
Sub5
delay := vD
Sub1
i := D3
Sub5
again
0x12 0x2e
: Sub1
loop
v0 := 5
if v0 -key then jump L6
jump L7
: L6
v0 := delay
if v0 != 0 then
again
: L7
return
: Sub2
loop
v0 := delay
if v0 != 0 then
again
return
: Sub3
vD := 4
v1 := 29
v0 := 60
v2 := 18
i := D5
i += v2
sprite v0 v1 6
delay := vD
Sub2
v0 := 52
v2 := 12
i := D5
i += v2
sprite v0 v1 6
v0 := 68
v2 := 24
i := D5
i += v2
sprite v0 v1 6
delay := vD
Sub2
v0 := 44
v2 := 6
i := D5
i += v2
sprite v0 v1 6
v0 := 76
v2 := 30
i := D5
i += v2
sprite v0 v1 6
delay := vD
Sub2
i := D5
v0 := 36
sprite v0 v1 6
v0 := 84
v2 := 36
i := D5
i += v2
sprite v0 v1 6
delay := vD
Sub2
return
: Sub4
v2 := 6
v0 := 32
v1 := 48
i := D4
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
return
: Sub5
v4 := 1
v5 := 7
v2 := 0
v3 := 0
: L8
v0 := 0
loop
v1 := v3
v1 += 4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
i += v4
v0 += 8
if v0 != 128 then
again
v3 += 3
v3 &= v5
v2 += 1
if v2 != 8 then jump L8
return
: Sub6
v4 := 1
v5 := 7
v2 := 0
v3 := 0
: L10
v0 := 4
loop
v1 := v3
v1 += 12
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
i += v4
v0 += 8
if v0 != 124 then
again
v3 += 3
v3 &= v5
v2 += 1
if v2 != 8 then jump L10
return
: D1
0x54 0x40 0x44 0x10 0x0 0x0 0x50 0x0 0x0 0x1 0x0 0x0 0x0 0xf 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0x0 0x30 0x18 0x1 0xff 0x0 0x0 0x0 0x50 0x5 0xff 0xff 0x0 0x15 0x0 0x11 0x7f 0xc0 0x4 0xf 0x40 0x0 0xff 0xdc 0x1 0x0 0xff 0x0 0x0 0xd7 0x0 0x40 0x1 0xff 0x0 0x0 0x0 0x0 0x5 0x1c 0x80 0x0 0x0 0x0 0x0 0x55 0x4 0x0 0x55 0x0 0x0 0x0 0x0 0x5 0x0 0x54 0x0 0x0 0x14 0x1 0x5 0x1 0x1 0x0 0x17 0x55 0x5e 0x0 0x55 0x55 0x0 0x40 0x5f 0x0 0x40 0x55 0x55 0xd5 0x0 0x0 0x0 0x15 0x55 0x55 0x50 0x0 0x55 0x0 0x80 0x0 0x0 0x88 0x0 0xa8 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0xaa 0xbf 0x0 0x3 0x40 0x0 0x0 0x3 0xff 0x0 0xc0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x2 0x30 0xfe 0xfe 0x2 0x0 0x2 0xab 0x28 0xe2 0x80 0x0 0x28 0x3 0xff 0x2 0x0 0x2 0x0 0x0 0x80 0xa0 0x0 0x0 0x82 0x0 0x0 0x0 0x0 0x8 0x0 0x28 0x2 0x0 0x80 0x2 0x0 0x0 0x28 0x20 0x0 0x0 0x3 0xa1 0x0 0x0 0x0 0x0 0x0 0xff 0xa 0x0 0x80 0x0 0x3 0x0 0x0 0x0 0x8 0x88 0xa 0xfa 0x3 0x0 0x0 0x83 0x0 0xaa 0xaa 0x80 0x0 0xa 0x80 0xa 0xaa 0x80 0x0 0x0 0xa 0x0 0xa0 0x0 0x0 0x15 0x0 0x0 0x0 0x41 0x0 0x0 0x55 0x0 0x0 0x3 0x7f 0x0 0x80 0x3 0x0 0x0 0xff 0x7f 0x0 0x0 0x0 0x1f 0x0 0xff 0xff 0x0 0x0 0x15 0xf5 0x7 0xff 0xff 0x15 0x0 0x1 0x7f 0xc5 0x4 0x0 0x0 0x0 0xf5 0xff 0x1 0x0 0x17 0x0 0x0 0x44 0xfc 0x40 0x40 0x11 0x0 0x0 0x0 0x0 0x0 0x14 0xc1 0x0 0x0 0x0 0x10 0x15 0x4 0xc0 0x0 0x0 0x0 0x0 0x40 0x4 0x11 0x10 0x0 0x0 0x1d 0x7 0x10 0x55 0x0 0x0 0x1 0x55 0x0 0x1 0x5 0x15 0x1 0x70 0x50 0x0 0x41 0x0 0x55 0xd5 0x0 0x0 0x5 0x15 0x15 0x55 0x0 0x0 0x55 0x55 0x0 0x50 0x0 0x0 0x0 0x0 0xa0 0x0 0xa8 0x0 0x0 0x0 0x0 0x0 0x2a 0xf 0x0 0x0 0x80 0x0 0x0 0x0 0xff 0x0 0x0 0x0 0xf 0x6 0xf 0xff 0x0 0x0 0x0 0x80 0x2 0xff 0xff 0x0 0x3a 0x2 0x2b 0xaa 0xe0 0x80 0x70 0x80 0x0 0xff 0xaa 0x0 0x0 0x0 0x0 0x0 0xee 0x0 0x0 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x2a 0x70 0x0 0x0 0x2 0x0 0x2a 0x8 0x0 0xaa 0x0 0x80 0x20 0x0 0x0 0x0 0xaa 0x0 0x0 0x6a 0x0 0x0 0x0 0xa8 0x0 0x18 0x2a 0x21 0x0 0x2a 0xaa 0x1 0x0 0xab 0xc0 0x0 0xaa 0xaa 0x80 0x0 0x80 0x0 0xa 0xaa 0xaa 0xa0 0x0 0x0 0x0 0xc0 0x0 0x0 0x55 0x0 0x40 0x0 0x41 0x0 0x0 0x0 0x0 0x0 0x54 0x7f 0x0 0x1c 0x30 0x0 0x0 0x1f 0xff 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x1 0x5 0xe 0xff 0xfd 0x4 0x0 0x41 0xff 0x0 0xc4 0xc0 0x0 0x0 0x44 0xff 0x4 0x0 0x5 0x0 0x0 0x1 0xd4 0x0 0x0 0x4 0x0 0x0 0x0 0x0 0x0 0x0 0x54 0x1 0x0 0x0 0x4 0x1 0x14 0x50 0x0 0x0 0x0 0x3 0x51 0x0 0x5 0x0 0x0 0x0 0x5 0xb0 0x0 0x45 0x0 0x0 0x0 0x55 0x0 0x5 0x55 0x15 0x1d 0xc 0x0 0x0 0x40 0x0 0x55 0x55 0x0 0x0 0x15 0x7c 0x15 0x55 0x0 0x0 0x0 0x55 0x0 0x60 0x80 0x0 0x8 0x0 0x0 0x0 0x82 0x0 0x1 0x0 0x0 0x0 0x7 0xfa 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0xe0 0x20 0x0 0xff 0xfe 0x0 0x0 0x28 0x2 0x3f 0xfe 0xbf 0x1a 0x0 0x3 0xff 0xc0 0x2 0x80 0x80 0x0 0xfb 0xb8 0x0 0x0 0xa 0x0 0x0 0xe2 0xfe 0xa0 0x80 0x3 0x0 0x0 0x80 0x2 0x2 0x88 0xa3 0x0 0x0 0x0 0x0 0xaa 0x8 0xa0 0x80 0x0 0x0 0x0 0x80 0x8 0x8 0x28 0x0 0x0 0x8 0x0 0x8 0x80 0x0 0x0 0xa 0xaa 0xf0 0x0 0x2 0x2a 0x0 0xa0 0xaa 0x0 0x80 0x0 0xaa 0xaa 0x0 0x0 0x0 0xa 0x2a 0xaa 0x80 0x0 0xaa 0xa 0x80 0xb0 0x0 0x40 0x54 0x0 0x55 0x0 0x50 0x0 0x0 0x0 0x0 0x0 0x55 0x1f 0x0 0x0 0x80 0x0 0x0 0x0 0xff 0x0 0x3f 0x0 0x0 0x1 0x7f 0xff 0x0 0xff 0x0 0x75 0xc1 0xff 0xff 0x1 0xff 0x0 0x5d 0x55 0xc5 0xc0 0x80 0x0 0x1 0xff 0x41 0x0 0x0 0x0 0x0 0xc0 0xdc 0x0 0x0 0x1 0x0 0x0 0x1 0x0 0x4 0x0 0x1c 0xc 0x0 0xc0 0x1 0x0 0x14 0x10 0x10 0x7f 0x0 0x0 0x50 0x0 0x5 0x0 0xff 0x0 0x0 0xd4 0x0 0x41 0x0 0xff 0x0 0xe0 0x0 0x15 0x50 0x55 0xd5 0x1 0x0 0x1 0x3c 0x0 0x55 0x55 0xc0 0x0 0x14 0x0 0x15 0x55 0x55 0x15 0x0 0x5 0x0 0x40 0x0 0x0 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0xbf 0x0 0x60 0xc 0x0 0x0 0xff 0xbf 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x2 0x3f 0x1 0xff 0xfb 0xa 0x0 0x82 0xff 0x80 0x82 0x80 0x0 0x0 0x88 0xff 0x2 0x0 0xa 0x0 0x0 0x2 0xf8 0x0 0x0 0x88 0x0 0x0 0x0 0x0 0x0 0x8 0xa0 0x0 0x0 0x0 0x8 0x2 0x8 0xa0 0x80 0x0 0x0 0x0 0xa0 0x0 0x0 0x0 0x0 0x0 0xe2 0x78 0x0 0x0 0x0 0x0 0x0 0xaa 0x0 0x0 0x22 0xa 0x3 0x38 0x0 0x0 0x2 0x0 0xaa 0xaa 0x0 0x0 0x2 0xe 0xa 0xaa 0x0 0x0 0x0 0xa2 0x0 0xa0
: D2
0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0x80 0xaa 0xaa 0xaa 0xaa 0xaa 0xae 0x0 0xaa 0xaa 0xfe 0xaa 0xab 0xef 0x0 0xab 0xaa 0xaf 0xaa 0xab 0xbf 0x0 0xff 0xaf 0xaa 0xaf 0xbf 0xaa 0x0 0xff 0xff 0xba 0xff 0xea 0xaa 0x0 0xff 0xff 0xbf 0xfa 0xaa 0xaa 0x0 0xff 0xff 0xff 0xaa 0xaa 0xaa 0x0 0xff 0xff 0xfb 0xaa 0xaa 0xaa 0x0 0xea 0xaa 0xfe 0xaa 0xaa 0xaa 0x0 0xaa 0xea 0xaa 0xa0 0xaa 0x80 0xab 0xaa 0x80 0xa8 0x0 0xaa 0xaa 0xaa 0x0 0x2a 0x2a 0x0 0x0 0x2a 0xaa 0x20 0x8a 0xbe 0x0 0x0 0x80 0x8b 0x2f 0xb8 0x80 0x10 0x20 0x0 0x55 0xfd 0xf5 0x55 0x55 0x55 0x55 0x55 0x55 0xff 0xff 0x55 0x57 0x57 0x55 0x55 0xff 0xff 0x7f 0xdf 0x5d 0x57 0xf7 0xff 0xff 0xff 0xff 0xff 0x55 0xff 0xfd 0xff 0xff 0xff 0xff 0x5f 0xff 0xff 0xff 0xff 0xff 0xff 0xfc 0xff 0xff 0xff 0xff 0x40 0xd5 0x51 0xff 0xff 0xff 0xff 0x0 0x55 0x40 0xff 0xff 0xff 0xf5 0x15 0x55 0x0 0xff 0xff 0xff 0x55 0x55 0x55 0x0 0xff 0xff 0xff 0x54 0x54 0xf5 0x5f 0xff 0xfc 0xff 0x0 0x0 0x55 0xfd 0xf0 0x0 0xd0 0x0 0x0 0x47 0xf0 0x0 0x0 0x0 0x0 0x0 0xc0 0x0 0x0 0x1 0x14 0x0 0x1 0x0 0x7 0x5c 0x7c 0x0 0x8 0x0 0x0 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0x2a 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xea 0xfa 0xaa 0xae 0xff 0xaa 0xaa 0x23 0xaf 0xab 0xaa 0xbf 0xbf 0xff 0xaa 0xaf 0xaf 0xaa 0xae 0xff 0xff 0xae 0xff 0xff 0xba 0xaa 0xff 0xff 0xaf 0xff 0xaa 0xaa 0xaa 0xff 0xff 0xff 0xaa 0xaa 0xaa 0xaa 0xba 0xff 0xff 0xaa 0xaa 0x0 0xaa 0xae 0xee 0xfe 0xaa 0xaa 0x0 0xaa 0xaa 0xaa 0xaf 0xaa 0xaa 0x2 0x80 0xab 0xa0 0xa0 0xa8 0xaa 0x2a 0xa 0x80 0xa 0xa 0x0 0x80 0x88 0xa8 0x28 0x82 0xab 0x0 0x0 0xe0 0x0 0x2b 0xb8 0xa0 0x40 0x10 0x0 0x0 0x55 0xf5 0xf5 0x55 0x55 0x55 0x15 0x55 0x55 0xf7 0x77 0x55 0x55 0x57 0x40 0x55 0x7f 0xff 0xff 0xdf 0xff 0x0 0x77 0xff 0xff 0xff 0xff 0xff 0x0 0xff 0xff 0xff 0xff 0xff 0xff 0x0 0xff 0xff 0xdf 0xff 0xfc 0xff 0x0 0xff 0xff 0xff 0xff 0xfd 0x55 0x0 0xff 0xff 0xff 0xff 0x5f 0x55 0x0 0xff 0xff 0xff 0xfd 0xd5 0x55 0x0 0xff 0xff 0xff 0x5f 0x55 0x7f 0x0 0xff 0xfd 0xff 0xd4 0x55 0xd5 0x1 0xff 0xd0 0x55 0x0 0x0 0x40 0xff 0xd4 0x0 0x0 0x0 0x0 0x5 0xdf 0x0 0x0 0x15 0x0 0x0 0x0 0xd0 0x0 0x1 0xfd 0x0 0x0 0x0 0x1f 0x17 0x7c 0x0 0x10 0x40 0x0 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xab 0xab 0xaa 0xaf 0xba 0xaa 0xaa 0xae 0xaa 0xaa 0xfe 0xaa 0xbb 0xaa 0xab 0xaf 0xff 0xaa 0xeb 0xff 0xaa 0xbe 0xfe 0xff 0xaf 0xff 0xff 0xaa 0xaa 0xbf 0xff 0xff 0xab 0xea 0xa8 0xaa 0xaa 0xff 0xff 0xaa 0xaa 0x2 0xaa 0x8 0xff 0xff 0xaa 0xaa 0xaa 0xaa 0x2 0xff 0xfb 0xaa 0xaa 0xaa 0xaa 0xea 0xae 0xaa 0xaa 0x80 0x80 0xaa 0xaa 0xaa 0xa8 0xaa 0x8 0x8 0x8b 0xa0 0x0 0x0 0x0 0x0 0x0 0xa0 0x0 0xa2 0xaa 0x3e 0x0 0x6 0x0 0x2b 0xba 0xf8 0x0 0x8 0x0 0x0 0x55 0xff 0x55 0x55 0x55 0x55 0x5 0x55 0x57 0xf5 0x5f 0x55 0x75 0x55 0x55 0xff 0xff 0xff 0xff 0xff 0xfd 0x5f 0xff 0xfd 0xff 0xff 0xff 0xff 0xff 0xff 0x7 0xff 0xff 0xff 0xff 0xff 0xff 0x5f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf5 0xd5 0xff 0xff 0xff 0xff 0xdf 0x55 0x40 0xff 0xff 0xff 0xf5 0xdf 0x54 0x0 0xff 0xfd 0xff 0x55 0x55 0x0 0x0 0xff 0xff 0x15 0x40 0x50 0x1 0x0 0xff 0x40 0x40 0x0 0x0 0x10 0x17 0x0 0x0 0x0 0x0 0x0 0x5 0x50 0x0 0x0 0x57 0x0 0x0 0x0 0x0 0x17 0x7c 0x40 0x20 0x10 0x0 0x0 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xab 0xaa 0xaa 0x8a 0xaa 0xaa 0xff 0xbb 0xaa 0xfb 0x8a 0xab 0xaa 0xea 0xab 0xaa 0xaf 0xaa 0xff 0xaf 0xaa 0xbf 0xaa 0xea 0xa8 0xff 0xff 0xaa 0xff 0xaa 0xaa 0x0 0xff 0xff 0xff 0xea 0x8a 0xaa 0x0 0xff 0xff 0xff 0xaa 0xaa 0xaa 0x0 0xff 0xff 0xfa 0xaa 0xaa 0xaa 0x0 0xfe 0xfa 0xbf 0xaa 0xaa 0xaa 0xb 0xba 0xaa 0xaa 0x80 0x80 0xaa 0xaa 0xa8 0x80 0xaa 0x0 0x0 0x2f 0xba 0x0 0xa 0xaa 0x0 0x0 0x80 0x80 0x0 0x2a 0xaa 0x0 0x0 0x0 0x2b 0xae 0xb8 0x0 0x8 0x80 0x0 0xd5 0xff 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x7d 0xff 0x55 0x55 0x55 0x55 0x57 0x7f 0xff 0xff 0xdf 0xff 0x55 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xfd 0xff 0xff 0xff 0xff 0xff 0xfd 0x55 0xfd 0xff 0xff 0xff 0xd5 0x0 0x55 0x50 0xff 0xff 0xff 0x55 0x0 0x55 0x7 0xff 0xff 0xf7 0x55 0x15 0x55 0xff 0xfd 0x1f 0xd5 0x0 0x0 0x40 0xff 0x50 0x40 0x0 0x10 0x1c 0x5 0x0 0x0 0x0 0x0 0x0 0x0 0xd0 0x0 0x0 0x5 0x1 0x0 0x18 0x0 0x17 0x5c 0xf0 0x80 0x8 0x0 0x0
: D3
0x0 0x0 0xaa 0xaa 0x0 0x0 0x0 0x0 0x3 0xaa 0xaa 0x0 0x0 0x0 0x0 0xaa 0xaa 0xaa 0x0 0x0 0xeb 0x0 0x81 0x80 0x80 0x0 0x0 0x0 0x0 0x54 0x94 0xa 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x28 0x2a 0x0 0x0 0x0 0x0 0x0 0x2 0xaf 0x2 0x2 0x2a 0x0 0x0 0x2 0xaa 0x0 0x0 0xa0 0x0 0x0 0x80 0x80 0x0 0x8 0x0 0x0 0x0 0x0 0x0 0x38 0xff 0x2 0x0 0x0 0x2a 0x12 0x0 0xf 0xaa 0x0 0x0 0x80 0x80 0xf 0xff 0x3f 0xa 0x0 0xe 0x2 0x80 0xff 0xaa 0xa0 0x0 0x0 0xaa 0x0 0x8a 0xa2 0x0 0x0 0x0 0xaa 0x0 0xa0 0xa8 0x0 0x0 0x0 0x5d 0x0 0x0 0x0 0x0 0x0 0x3f 0x5f 0x0 0x0 0x0 0x5 0x0 0xd4 0xd4 0x0 0x0 0x0 0x48 0x0 0x8 0x0 0x0 0x0 0xe0 0x0 0x0 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x5 0x7f 0x0 0x0 0x0 0x0 0x0 0xc6 0xff 0x0 0x0 0x0 0x0 0x0 0x1e 0xd5 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x1 0x0 0x0 0x0 0x1 0x0 0x0 0xf9 0x0 0x0 0x0 0x1c 0x0 0x7f 0xff 0x1 0x0 0x0 0x10 0x0 0xff 0xe1 0xfe 0x0 0x0 0x0 0x1 0xc0 0xcf 0x50 0x0 0x0 0x40 0x75 0x0 0xff 0x0 0x0 0x0 0x0 0x54 0x0 0xfc 0x0 0x0 0x0 0xaa 0xaa 0x0 0x0 0x0 0x0 0x0 0xaa 0xaa 0x0 0x0 0x0 0xea 0x3e 0xaa 0xaa 0x0 0x0 0xa 0x80 0x80 0x85 0x80 0x0 0x0 0xc0 0x0 0x0 0x15 0x0 0x0 0x0 0x0 0x0 0xf 0x40 0x2a 0x0 0x0 0x0 0x0 0x80 0x2a 0xaa 0x0 0x0 0x0 0x0 0x2 0xa2 0xaa 0x2 0x2a 0x0 0x0 0x0 0xaa 0xaa 0x0 0xa0 0x0 0x0 0x2e 0x0 0xab 0xb 0x0 0x0 0x0 0x0 0x0 0x80 0x87 0x2a 0x0 0x0 0x0 0xa2 0x0 0xbf 0xa3 0x0 0x0 0xf 0xa8 0x0 0xff 0xff 0xaa 0x0 0x80 0x2 0xa 0xff 0xaa 0xaa 0x0 0x0 0xaa 0xaa 0xf8 0xaa 0x80 0x0 0x0 0xaa 0xaa 0x0 0x2a 0x0 0x0 0x0 0x0 0xff 0x0 0x55 0x0 0x0 0x0 0xf 0x1f 0x0 0x55 0x0 0x1 0x0 0xd4 0xd4 0x7 0x55 0x0 0xf6 0x0 0x0 0x0 0x0 0x55 0x0 0x0 0x0 0xfa 0x38 0x17 0x55 0x0 0x0 0x0 0x0 0x0 0x80 0x55 0x0 0x0 0x0 0x4 0x7 0x0 0x55 0x0 0x0 0x0 0x1f 0xff 0x0 0x55 0x7 0x0 0x0 0x3 0xff 0x0 0x55 0x0 0x0 0x0 0x0 0xc0 0x0 0x5f 0x0 0x0 0x0 0x0 0x0 0x7 0x3f 0x0 0x0 0x0 0x1f 0x7 0xff 0xf0 0x1f 0x0 0x0 0x40 0x0 0xf0 0xff 0xc7 0x0 0x0 0x1 0x0 0x0 0xfd 0xdf 0x0 0x0 0x0 0x74 0x0 0x7f 0x0 0x0 0x0 0x0 0x6 0x0 0xf4 0x0 0x0 0x0 0xaa 0xaa 0x0 0x0 0x0 0x0 0x0 0xaa 0xaa 0x0 0x0 0x0 0xa 0x0 0xaa 0xaa 0x0 0x0 0x3 0xb0 0x3 0x82 0x80 0x0 0x0 0xe0 0x0 0xfe 0x44 0x0 0x0 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x2b 0xaa 0x0 0x0 0x0 0x0 0x0 0xaa 0xaa 0x2 0x2 0x2 0x0 0x0 0x8e 0xaa 0x0 0x0 0x0 0x0 0x0 0x0 0xa8 0x0 0x2 0x0 0x0 0x3 0x0 0x0 0xb 0xaa 0x0 0x0 0xfe 0x48 0x0 0xff 0x7f 0xa 0x0 0x0 0x90 0x0 0xbf 0xfe 0xaa 0x0 0x0 0x2 0x2 0xfa 0x6a 0x8a 0x0 0x0 0xaa 0xaa 0x80 0xaa 0xa8 0x0 0x0 0xaa 0xaa 0x0 0xa2 0x0 0x0 0x0 0x55 0x55 0x0 0x0 0x0 0x1 0x0 0x7f 0x55 0x0 0x0 0x0 0xf5 0xfc 0xd4 0xf4 0x0 0x0 0x3d 0x0 0x0 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x5e 0x0 0x0 0x0 0x0 0x0 0x0 0x80 0x5d 0x0 0x0 0x0 0x0 0x70 0x5 0x55 0x0 0x0 0x0 0x0 0x0 0x7f 0x57 0x2 0xff 0x0 0x0 0x0 0xd7 0x55 0xa0 0xf8 0x0 0x0 0xf0 0x0 0x55 0x13 0x0 0x0 0x0 0x0 0x0 0xc0 0xf8 0x1 0x0 0x0 0x0 0xb 0x0 0xff 0xfc 0x0 0x0 0x0 0xd0 0x0 0xff 0xff 0x1 0x0 0x70 0x0 0x70 0xff 0xbf 0xb0 0x0 0x0 0x55 0x0 0xe5 0xf8 0x0 0x0 0x0 0x54 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xaa 0xaa 0x0 0x0 0x0 0x0 0x3a 0xaa 0xaa 0x0 0x0 0x3 0x0 0xaa 0xaa 0xab 0x0 0x0 0xac 0x0 0x85 0x81 0xff 0x0 0x0 0x0 0x0 0x55 0x54 0xfa 0x0 0x0 0x0 0x0 0x0 0x0 0xaa 0x0 0x0 0x0 0x0 0x2a 0x2a 0xaa 0x0 0x0 0x0 0x0 0xea 0xaf 0xaa 0x2 0x2 0x0 0x0 0xaa 0xaa 0xaa 0x0 0x0 0x0 0x0 0x0 0xa0 0xaa 0xa 0x0 0x0 0x0 0x0 0x0 0xaa 0x87 0x0 0x0 0x0 0xaa 0x2a 0xaa 0xff 0xaa 0x0 0x0 0xa0 0x80 0xaa 0x1f 0xa8 0x0 0x0 0x2 0x2 0xaa 0xf2 0xc8 0x0 0x0 0x80 0xaa 0xaa 0xaa 0xaa 0x0 0x0 0x0 0xaa 0xaa 0xa8 0x80 0x0 0x0 0x0 0x7f 0x55 0x0 0x0 0x0 0x0 0x7f 0xf7 0x55 0x0 0x0 0x3d 0x1 0xd4 0xd4 0x55 0x0 0x5 0x40 0xfd 0x8 0x0 0x55 0x0 0x40 0x0 0x5 0x60 0x0 0x55 0x0 0x0 0x0 0xf0 0x80 0x1 0x55 0x0 0x0 0x0 0x0 0x7 0xf5 0x55 0x0 0x0 0x0 0x0 0xc7 0xd7 0x55 0x7 0x0 0x0 0x0 0x1e 0x5f 0x55 0x0 0x0 0x0 0x1 0x0 0x7c 0x54 0x0 0x0 0x0 0xfd 0x1 0x0 0x7f 0x1f 0x0 0x0 0x5 0xc 0x0 0xff 0x9f 0x0 0x0 0xf0 0x10 0x0 0xff 0xff 0x1f 0x0 0x0 0x0 0x5 0xff 0xbf 0xd0 0x0 0x0 0x40 0xff 0xf5 0xff 0x0 0x0 0x0 0x0 0xfe 0x54 0xc0 0x0 0x0
: D4
0x0 0x3c 0x36 0x3c 0x30 0x30 0x0 0xf3 0xdb 0xf3 0xdb 0xdb 0x0 0xe7 0xc 0xc7 0x1 0xef 0x0 0x9e 0x30 0x1c 0x86 0x3c 0x0 0x1e 0x30 0x1c 0x6 0x3c 0x0 0xf3 0x66 0x67 0x66 0x66 0x0 0x9e 0xdb 0xde 0xdb 0xdb 0x0 0x78 0x30 0x30 0x30 0x30
: D5
0x0 0x0 0xc 0x11 0x11 0x10 0x0 0x0 0x95 0x55 0x95 0xcd 0x0 0x0 0x53 0x55 0x55 0x33 0x40 0x40 0x44 0x42 0x41 0x46 0x0 0x40 0x6a 0x4a 0x4a 0x46 0x0 0x20 0x69 0xaa 0xaa 0x69 0x0 0x0 0x20 0x90 0x88 0x30
: D6
0x0 0x7f 0x1 0x7f 0x40 0x55 0xff 0x1 0x55 0x7c 0xf4 0x55 0x0 0x0 0x55 0x1e 0x7d 0x55 0xff 0xf9 0x50 0x0 0x7f 0x0 0x1f 0x57 0x5 0xdf 0xdf 0x55 0xc0 0xd7 0x0 0x7 0xe0 0x15 0xf0 0x27 0x50 0x3 0xfe 0x5 0xf0 0x0 0x50 0xf 0x3f 0x3f 0xfa 0xff 0xf9 0xaa 0xfb 0xe0 0xfe 0xff 0x7 0x0 0xff 0x9f 0x3e 0x7d 0xfc 0xff 0xf0 0x7f 0xe0 0x2a 0xf8 0xbf 0x87 0xff 0xdf 0xdf 0xe7 0xf8 0x8a 0x87 0x8 0xfe 0x8f 0xfe 0x3f 0xfc 0x1f 0x8f 0x78 0xc0 0xc0 0x1e 0x3f 0x7 0x0 0x55 0xff 0x79 0x55 0xf7 0xe0 0xfd 0xff 0x7 0x0 0xff 0x9e 0x3e 0x7d 0x1e 0xfd 0xf0 0x78 0xf5 0x0 0x0 0xd7 0x7 0x1 0xdf 0xdf 0xe7 0xdf 0x80 0x87 0x81 0x5f 0x9e 0x8f 0x50 0x1e 0xfe 0x11 0x79 0x0 0xf8 0x9e 0x1 0x7f 0x0 0xff 0x80 0x0 0xff 0x3 0x0 0x7e 0xfa 0x0 0x0 0x0 0x0 0x3e 0x7d 0x0 0xff 0xf8 0x0 0x80 0xbe 0x0 0x3f 0xa7 0x0 0xdf 0xdf 0x0 0xe0 0xab 0x0 0xb 0xf0 0x0 0xf8 0x1f 0x0 0x7 0xff 0x2 0xf0 0x0 0xa0 0x1f 0x1f 0x78 0xd5 0xff 0x1 0x54 0xf7 0xe0 0xfd 0xff 0x7 0x0 0xff 0x9e 0x3e 0x7d 0x1e 0xff 0xf8 0x78 0xf1 0x1f 0x1 0x7f 0x7 0xe0 0xdf 0xdf 0x7 0xfe 0x85 0x87 0x4 0x7f 0x9e 0x7f 0x7e 0x1e 0x3f 0x47 0x78 0x80 0xe0 0x1e 0x7e 0x2 0x7f 0xa0 0xaa 0xf1 0x1 0xa2 0xff 0xfa 0xaa 0xe7 0x0 0xaa 0x9f 0x3c 0x28 0xfc 0xfa 0xa8 0x7f 0xfb 0x0 0xf9 0xaf 0x2 0xff 0xdf 0x8a 0xc7 0xaf 0x80 0x87 0xc0 0x2a 0x8f 0x47 0xa8 0xfc 0xfc 0x8 0x3f 0x0 0xa8 0xfc 0x7 0x3f 0x0 0xff 0xff 0x0 0xfe 0xfb 0x0 0x7d 0xff 0x0 0x0 0xff 0x0 0x3e 0x7d 0x0 0xff 0xf8 0x0 0xc0 0x55 0x0 0x7f 0x47 0x0 0xdf 0xdf 0x0 0xf0 0x95 0x0 0x11 0xfc 0x0 0xfc 0x1f 0x0 0xf 0x9f 0x0 0xe0 0x80 0x0 0x3f 0xf 0x3f 0xaa 0xff 0xf1 0xa8 0xf7 0xe0 0xfa 0xff 0x7 0x0 0xff 0x9e 0x3e 0x7d 0x1e 0xff 0xf8 0x7f 0xea 0x0 0x80 0xef 0x7 0xff 0xdf 0xdf 0xc7 0xbf 0x80 0xff 0x2 0xbf 0x9e 0x1f 0xfc 0x1e 0xff 0x23 0x79 0x0 0xf0 0x9e
######################################################################
# INPUT: chip8/SuperChip Demos/Climax Slideshow - Part 2 [Revival Studios, 2008].ch8
######################################################################
:proto L1 # 214
:proto L3 # 242
:proto L4 # 256
:proto Sub1 # 286
:proto L6 # 28E
:proto L7 # 294
:proto Sub2 # 296
:proto Sub3 # 29E
:proto Sub4 # 2F6
:proto Sub5 # 32C
:proto Sub6 # 374
:proto D1 # 3A4
:proto D2 # 724
:proto D3 # AA4
:proto D4 # E24
:proto D5 # E54
:proto D6 # E7E
: main
jump L1
0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x53 0x54 0x55 0x44 0x49 0x4f 0x53 0x32 0x30 0x30 0x38
: L1
hires
clear
vD := 32
delay := vD
Sub2
Sub3
vD := 64
delay := vD
Sub2
Sub3
vD := 32
delay := vD
Sub2
clear
i := D6
Sub6
Sub4
vD := 4
vC := 0
loop
v0 := 5
if v0 -key then jump L3
jump L4
: L3
delay := vD
Sub2
vC += 1
if vC == 0 then Sub4
if vC == 4 then Sub4
if vC == 8 then vC := 0
again
: L4
i := D6
Sub6
clear
vD := 128
loop
i := D1
Sub5
delay := vD
Sub1
i := D1
Sub5
i := D2
Sub5
delay := vD
Sub1
i := D2
Sub5
i := D3
Sub5
delay := vD
Sub1
i := D3
Sub5
again
0x12 0x2e
: Sub1
loop
v0 := 5
if v0 -key then jump L6
jump L7
: L6
v0 := delay
if v0 != 0 then
again
: L7
return
: Sub2
loop
v0 := delay
if v0 != 0 then
again
return
: Sub3
vD := 4
v1 := 29
v0 := 60
v2 := 18
i := D5
i += v2
sprite v0 v1 6
delay := vD
Sub2
v0 := 52
v2 := 12
i := D5
i += v2
sprite v0 v1 6
v0 := 68
v2 := 24
i := D5
i += v2
sprite v0 v1 6
delay := vD
Sub2
v0 := 44
v2 := 6
i := D5
i += v2
sprite v0 v1 6
v0 := 76
v2 := 30
i := D5
i += v2
sprite v0 v1 6
delay := vD
Sub2
i := D5
v0 := 36
sprite v0 v1 6
v0 := 84
v2 := 36
i := D5
i += v2
sprite v0 v1 6
delay := vD
Sub2
return
: Sub4
v2 := 6
v0 := 32
v1 := 48
i := D4
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
return
: Sub5
v4 := 1
v5 := 7
v2 := 0
v3 := 0
: L8
v0 := 0
loop
v1 := v3
v1 += 4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
i += v4
v0 += 8
if v0 != 128 then
again
v3 += 3
v3 &= v5
v2 += 1
if v2 != 8 then jump L8
return
: Sub6
v4 := 1
v5 := 7
v2 := 0
v3 := 0
: L10
v0 := 4
loop
v1 := v3
v1 += 12
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
i += v4
v0 += 8
if v0 != 124 then
again
v3 += 3
v3 &= v5
v2 += 1
if v2 != 8 then jump L10
return
: D1
0x82 0x8a 0x2a 0xaa 0x80 0xf8 0xa2 0xaa 0xaa 0xaa 0x0 0x0 0x0 0xf9 0x8a 0xa8 0xa0 0x0 0x0 0x2a 0x80 0xff 0x0 0xb3 0x0 0x0 0xb4 0x0 0xea 0x2a 0x79 0x0 0x0 0x0 0x0 0x2 0xa0 0xf8 0xe 0x0 0x0 0x0 0x0 0x0 0xaa 0xfe 0x1 0x0 0xaa 0x2a 0x0 0x80 0xa 0x80 0x2a 0xaa 0xaf 0x0 0x0 0x80 0x0 0xa 0xaa 0xff 0xaf 0x2f 0x22 0x2 0xaa 0xaa 0xfe 0xef 0xe2 0xaa 0xaa 0xaa 0xaa 0xff 0xfe 0xbf 0xaf 0xaa 0xaa 0xaa 0xba 0xef 0xfe 0xfa 0xaa 0xaa 0xaa 0xff 0xfe 0xaa 0xaa 0xaa 0xaa 0xaa 0xff 0xa7 0xab 0xaa 0xaa 0xaa 0xaa 0xfe 0xff 0xff 0xef 0xba 0xaa 0xaa 0x5 0x0 0x5f 0xc0 0x1c 0x1d 0x54 0x10 0x57 0x44 0x0 0x0 0xc0 0x17 0x1f 0xf0 0x0 0x0 0x0 0x0 0x9f 0xff 0x0 0x0 0x0 0x4 0x14 0x0 0x0 0x0 0x7 0x0 0x0 0x0 0x0 0x0 0x14 0xf7 0x0 0x0 0x0 0x47 0x0 0x0 0xc1 0xf7 0x0 0x1 0xd5 0x0 0x0 0x50 0xc0 0x0 0x50 0x55 0x5f 0x4 0x0 0x0 0x0 0x55 0x55 0xff 0x17 0x5 0x0 0x0 0x5d 0x55 0xff 0xff 0x1 0x15 0x55 0x55 0x55 0xff 0xff 0x7f 0x7f 0xfd 0x5d 0x55 0x58 0xff 0xff 0xff 0x7f 0xd5 0x55 0x0 0xff 0xd7 0xff 0xff 0xf5 0x55 0xff 0xe3 0xf5 0xfd 0xdf 0xd5 0x55 0xff 0xff 0xff 0xff 0xfd 0x55 0x52 0x2a 0xaa 0xaa 0x80 0x3e 0x8f 0xaa 0xa2 0xaa 0xa0 0x0 0x82 0xb8 0xa8 0xae 0xa8 0x0 0x0 0xaa 0x0 0x8c 0x80 0x9 0x0 0x0 0xf8 0x0 0xa0 0x0 0xce 0x0 0x0 0x0 0x80 0xaa 0x0 0x2 0x1f 0x0 0x0 0x0 0xaa 0x0 0xa8 0x9c 0xe 0x0 0xa 0xaa 0x2 0x0 0x2a 0x60 0x20 0x8a 0xaa 0xaa 0x0 0x0 0x0 0x0 0xaa 0xaa 0xab 0x2a 0x8 0x0 0xaa 0xaa 0xaa 0xef 0xea 0xaa 0xaa 0xaa 0xaa 0xaa 0xfb 0xff 0xbf 0xae 0xaa 0xaa 0xaa 0x8a 0xfe 0xff 0xfe 0xaa 0xaa 0xaa 0xba 0xaa 0xba 0xaa 0xaa 0xaa 0xaa 0x8f 0xa3 0xae 0xaa 0xaa 0xaa 0xa2 0xff 0xff 0xea 0xff 0xaa 0xaa 0xa0 0x80 0x80 0x15 0x50 0x0 0x64 0x40 0x4 0x7 0xf5 0x0 0x0 0x0 0x77 0x7 0xf8 0x1 0x0 0x0 0x1 0xe0 0xff 0x0 0x0 0x0 0x0 0x58 0x0 0xf4 0x1 0x77 0x0 0x0 0x0 0x0 0x0 0x50 0xfc 0x1 0x0 0x0 0x5 0x0 0x0 0x15 0xfc 0x0 0x0 0x75 0x45 0x0 0x40 0x0 0x30 0x50 0x55 0xff 0x0 0x0 0x0 0x0 0x5 0x55 0xff 0x1f 0x1f 0x0 0x0 0x55 0x55 0xff 0xf7 0xc0 0x17 0x15 0x55 0x55 0xff 0xff 0x7f 0x1f 0xff 0x55 0x55 0xff 0x7f 0xff 0xff 0xff 0x55 0x55 0xff 0xff 0x7f 0xff 0xff 0x5d 0x55 0xff 0x3 0xd7 0xff 0xf7 0x75 0x55 0xff 0xff 0xff 0xff 0xff 0x55 0x54 0x2a 0x2a 0xaa 0x80 0x0 0x2b 0xaa 0xa8 0xaa 0xa8 0x0 0x80 0xe0 0x8a 0xab 0xa2 0x0 0x0 0x0 0x0 0xae 0xe8 0x0 0x0 0x0 0x8 0x2a 0xe8 0x0 0x0 0x3 0x0 0x0 0x80 0x2 0x0 0x2a 0xcf 0x0 0x0 0x0 0xaa 0x0 0x80 0xe0 0xf 0x0 0x2 0xaa 0x2a 0x0 0xaa 0x82 0x8 0xa0 0xaa 0xaa 0x2 0x0 0x0 0x0 0xaa 0xaa 0xbf 0xaa 0xa 0x2 0x2a 0xaa 0xaa 0xfe 0xba 0xa 0xaa 0xaa 0xaa 0xaa 0xfb 0xff 0xaf 0xaf 0xaa 0xaa 0xaa 0xa0 0xfa 0xff 0xba 0xaa 0xaa 0xaa 0xa8 0xff 0xba 0xaa 0xaa 0xaa 0xaa 0x7f 0xe3 0xab 0xaa 0xaa 0xaa 0xaa 0xff 0xff 0xff 0xff 0xaa 0xaa 0xa8 0x4 0x5 0x44 0x0 0x7c 0x2 0x41 0x1 0x7f 0x0 0x0 0x0 0x7c 0x7c 0xfc 0x50 0x0 0x0 0x55 0x0 0x0 0x0 0x5b 0x0 0x0 0xf8 0x0 0x5 0x0 0xbc 0x0 0x0 0x0 0x0 0x1f 0x0 0xe1 0x1f 0x0 0x0 0x0 0xd5 0x0 0x54 0x7e 0x4 0x0 0x1d 0xd5 0x0 0x0 0x5 0xc0 0x0 0x5 0x55 0x5 0x0 0x0 0x0 0x0 0x55 0x55 0x5f 0x1f 0x0 0x0 0x55 0x55 0x55 0xff 0xf1 0x5 0x15 0x55 0x55 0x55 0xfd 0xff 0xff 0xff 0x55 0x5d 0x55 0xd7 0xff 0xff 0xff 0xdd 0xd5 0x55 0xfc 0x55 0xff 0xff 0xf5 0x55 0x55 0x47 0x47 0xf7 0xff 0xdd 0x55 0x55 0xff 0xff 0xff 0xff 0x55 0x44 0x52 0x82 0x2a 0xaa 0xa8 0x8a 0x4e 0xa8 0xaa 0xaa 0xaa 0x80 0x20 0x0 0xaf 0xab 0xa8 0x0 0x0 0x0 0x2 0xce 0xfe 0x0 0x0 0x0 0x2 0xaa 0x0 0xa8 0x2 0xf 0x0 0x0 0x0 0x0 0x0 0xa8 0xfb 0x1 0x0 0x0 0x2a 0x0 0x0 0x8a 0xfb 0x0 0x0 0xaa 0x2a 0x0 0xa8 0x82 0x40 0xa8 0xaa 0xab 0x28 0x0 0x0 0x0 0x2a 0xaa 0xff 0xb 0xe 0x2 0xa 0xaa 0xaa 0xfe 0xeb 0x8a 0xaa 0xaa 0xaa 0xaa 0xfa 0xff 0xaf 0xaf 0xaa 0xaa 0xaa 0xae 0xab 0xff 0xee 0xaa 0xaa 0xaa 0xab 0xff 0xae 0xaa 0xaa 0xaa 0xaa 0xff 0x83 0xaa 0xaa 0xaa 0xaa 0xaa 0xff 0xff 0xaa 0xfe 0xaa 0xaa 0xa8 0x10 0x4 0x55 0x0 0x1d 0x17 0x15 0x0 0x5f 0x10 0x0 0x40 0xc0 0x40 0x7f 0xc4 0x0 0x0 0x1 0x0 0x1c 0xc0 0x0 0x0 0x0 0x70 0x0 0xf0 0x0 0x60 0x0 0x0 0x0 0x0 0x11 0x0 0x5 0x9f 0x0 0x0 0x0 0x7d 0x0 0x40 0xc0 0x1f 0x0 0x7 0x75 0x0 0x0 0x14 0x20 0x0 0x1 0x55 0x1 0x0 0x0 0x0 0x0 0x55 0x55 0x7f 0x7f 0x0 0x0 0x1 0x75 0x55 0xff 0x71 0x1 0x15 0x55 0x55 0x55 0xf7 0xff 0x7f 0x7f 0x55 0x55 0x55 0xc5 0xff 0xff 0xff 0x57 0x75 0x55 0x54 0x7f 0xff 0xff 0x7f 0x55 0x55 0x3f 0xe3 0xff 0xfd 0x77 0x55 0x55 0xff 0xff 0xff 0xff 0x55 0x55 0x10
: D2
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x40 0x0 0x0 0x0 0xa 0x0 0x0 0x0 0x0 0x0 0xff 0xeb 0x7f 0x17 0x5 0xa 0xbf 0xaa 0xe3 0x1 0x5 0xd5 0xa0 0xe0 0xff 0xf8 0x54 0x5f 0x0 0x0 0x80 0x82 0xa0 0x0 0xff 0x0 0x0 0x0 0xa8 0x0 0x0 0xff 0x0 0x0 0x0 0x28 0x80 0x0 0xfc 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x6a 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x15 0x1 0xe0 0x0 0x0 0x15 0x1 0xf1 0x57 0x3e 0xa 0xa 0x77 0xc7 0x7d 0xc7 0x82 0xa 0xaa 0xf4 0xc0 0x5f 0xd1 0xa8 0xaf 0x80 0x0 0x54 0xfc 0x40 0x0 0xef 0x8 0x0 0x15 0x5 0x1 0x0 0xf8 0x0 0x0 0x41 0x4 0x45 0x0 0xf8 0x0 0x0 0x50 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x5 0x0 0x0 0x0 0x0 0x0 0x0 0xd7 0x1 0x0 0x0 0x0 0x0 0x0 0xf5 0x40 0x0 0x2 0x0 0x2a 0x0 0xff 0x0 0x0 0x80 0x2 0xfb 0xa0 0xdf 0x5 0x15 0x3f 0x82 0x82 0x0 0x1 0x15 0x11 0x82 0x38 0xfe 0xa 0x47 0x1 0x0 0x80 0x2a 0xa8 0x80 0xff 0x0 0x0 0x0 0xaa 0x0 0x0 0xff 0x0 0x40 0x0 0x80 0x82 0x0 0xe0 0x40 0x0 0x0 0x0 0x8 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xa 0x0 0x0 0x0 0x7 0x5 0x0 0x80 0x0 0x0 0x0 0xff 0x77 0x3e 0xe 0x2 0x1d 0x7d 0xff 0xd7 0x80 0x2 0x8a 0xd0 0xc1 0xd7 0xf1 0xa8 0x8f 0x0 0x0 0x40 0xe0 0xd0 0x0 0xff 0x8 0x0 0x0 0x50 0x1 0x0 0xfb 0x2 0x0 0x15 0x10 0x0 0x0 0xfc 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x3 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x15 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x22 0x2 0xff 0x0 0x0 0x2a 0x0 0xfa 0xaf 0x5f 0x7 0x5 0xe8 0x83 0xeb 0xa3 0x1 0x5 0x15 0xea 0xa0 0xff 0xa2 0x50 0x17 0x40 0x0 0x2a 0xfe 0x80 0x7 0x45 0x0 0x0 0xaa 0x0 0x0 0xfc 0xf0 0x10 0x0 0x80 0x88 0xaa 0x0 0x50 0x0 0x0 0x8 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0x0 0x0 0x0 0x0 0x0 0x0 0xb 0x0 0x0 0x0 0x0 0x0 0x0 0xa0 0x80 0x0 0x1 0x0 0x15 0x1 0x2a 0x0 0x0 0x0 0xf 0xd5 0x50 0xae 0x2 0x22 0x5f 0x4 0xc1 0x0 0x82 0x8a 0xa2 0xc1 0x5c 0xf5 0x15 0xaf 0xa 0x80 0x0 0x5 0x50 0x0 0xff 0x0 0x0 0x0 0x55 0x1 0x0 0xff 0x0 0x0 0x0 0x50 0x41 0x0 0xf8 0x80 0x0 0x0 0x0 0x50 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1f 0x80 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x20 0x0 0x0 0xf 0x2 0x0 0x0 0x0 0x0 0x0 0xef 0xaf 0x5f 0x7 0x5 0x3f 0xfb 0xfe 0xeb 0x1 0x5 0x15 0xf8 0xe0 0x8f 0xe3 0x50 0x1f 0x0 0x0 0xa0 0xf8 0xa0 0x0 0xff 0x4 0x0 0x0 0x2a 0x0 0x0 0xf1 0x4 0x0 0xaa 0x8 0x80 0x0 0xfc 0x0 0x0 0xa0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x7 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0x2 0x0 0x0 0x0 0x0 0x0 0xff 0x80 0x10 0x0 0x0 0x15 0x1 0xff 0x0 0x0 0x40 0x1 0xff 0x55 0xaf 0xa 0xa 0x54 0x45 0xd5 0x1 0x82 0xa 0xaa 0x55 0x30 0xff 0x45 0xa0 0xa 0x0 0x0 0x55 0x54 0x40 0x3f 0x2 0x0 0x0 0x54 0x0 0x0 0xff 0xa0 0x0 0x0 0x0 0x44 0x54 0x80 0x20 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D3
0xaa 0xaa 0xaa 0xaa 0xff 0xff 0xea 0xaa 0xaa 0xaa 0xaa 0xff 0xff 0xbf 0xaa 0xaa 0xaa 0xaa 0xff 0xfe 0xaa 0xaa 0xaa 0xaa 0xaa 0xff 0xaa 0xaa 0xaa 0xaa 0xaa 0xaa 0xbc 0x0 0xaa 0xaa 0xaa 0xaa 0x80 0x0 0x0 0xaa 0xaa 0xaa 0xa0 0x0 0x0 0x0 0xaa 0x80 0xaa 0x0 0x1 0xf 0xf 0xab 0x0 0xaa 0x0 0x8 0xbf 0xff 0xfa 0xaa 0xa0 0xaa 0x42 0xff 0xa2 0xfb 0x82 0x8 0xa8 0xaa 0xff 0xaa 0xe8 0xaa 0x38 0xaa 0x80 0xeb 0xaa 0x2 0x80 0x0 0x20 0x2 0xff 0xa2 0xf8 0x0 0x82 0x28 0x0 0xf8 0x80 0x0 0xa 0xaa 0x0 0x0 0x0 0x0 0x0 0xaa 0xaa 0x0 0x8 0x0 0x0 0x0 0xff 0x55 0x55 0xff 0x5f 0xff 0x51 0xff 0x55 0x55 0xff 0xff 0x71 0xff 0xd5 0x55 0x55 0xff 0xff 0x5 0xff 0x55 0x55 0x55 0xff 0xfe 0x54 0xfc 0x55 0x55 0x55 0xff 0x80 0x10 0x7f 0x55 0x55 0x54 0xc0 0x0 0x40 0xf1 0x54 0x55 0x1d 0x0 0x0 0x0 0xff 0x0 0x55 0x0 0x0 0x1 0x7 0xf5 0x7f 0x55 0x0 0x1 0xff 0xff 0xff 0xff 0x54 0x5 0x55 0xff 0xf5 0xff 0x54 0x40 0x55 0x55 0xff 0x75 0x41 0x0 0x1 0x54 0x5 0x1 0xc4 0x50 0x0 0x0 0x0 0x40 0x47 0x14 0x0 0x1 0x15 0x0 0x0 0x50 0x0 0x0 0x5d 0x55 0x4 0x4 0x40 0x0 0x0 0x7f 0x50 0x0 0x0 0x0 0x0 0x0 0xff 0xaa 0xaa 0xff 0xff 0xbe 0xa0 0xff 0xaa 0xaa 0xff 0xff 0xaa 0xff 0xff 0xaa 0xaa 0xff 0xff 0xaa 0xff 0xff 0xaa 0xaa 0xff 0xe8 0xbf 0xea 0xff 0xaa 0xaa 0xff 0x0 0xae 0x3a 0xff 0xaa 0xa0 0xfc 0x0 0xaa 0xba 0xfe 0xaa 0x28 0x0 0x0 0xaa 0xff 0xbf 0x80 0x0 0x10 0xe 0xab 0xfb 0xff 0x2a 0x21 0x3f 0xaa 0xff 0xff 0xfa 0xaa 0x42 0xfa 0xae 0xff 0xff 0xa 0x20 0xaa 0xaf 0xbb 0xfa 0xe2 0xa2 0xa8 0xaa 0xaa 0xaa 0xa8 0xea 0x0 0x80 0xa0 0xbe 0xae 0xa2 0x0 0x8e 0x2a 0x8 0xa0 0xa0 0x0 0x0 0xbf 0x88 0x0 0x0 0x0 0x0 0x0 0xff 0xa0 0x0 0x0 0x0 0x0 0x0 0x55 0x55 0x55 0xf5 0xff 0xff 0x57 0x55 0x55 0x55 0x57 0xff 0xff 0xff 0x55 0x55 0x55 0xff 0xff 0xf5 0xff 0x55 0x55 0x55 0xff 0xff 0x55 0xff 0x55 0x55 0x55 0xff 0x1c 0x0 0x75 0x55 0x55 0x55 0x0 0x0 0x0 0x5d 0x55 0x55 0x40 0x0 0x0 0x2 0x75 0x0 0x55 0x0 0x0 0x4 0xc7 0x57 0x1 0x55 0x0 0x80 0x7f 0xff 0xf5 0x55 0x40 0x15 0x55 0xff 0xc0 0x7f 0x41 0x0 0x51 0x55 0xff 0x1d 0x0 0x45 0x4 0x55 0x0 0xd1 0xd5 0x1 0x0 0x0 0x0 0x11 0xff 0x57 0x50 0x0 0x5 0x0 0x0 0xf0 0x0 0x0 0x10 0x55 0x0 0x0 0x0 0x0 0x0 0x55 0x55 0x0 0x4 0x0 0x0 0x0 0xff 0xaa 0xaa 0xff 0xaa 0xeb 0xa2 0xff 0xaa 0xaa 0xff 0xbb 0xa2 0xf 0xff 0xaa 0xaa 0xff 0xff 0xa 0xff 0xbf 0xaa 0xaa 0xff 0xfc 0xaa 0xf8 0xaa 0xaa 0xaa 0xff 0x0 0xaa 0x3f 0xaa 0xaa 0xa8 0x80 0x0 0xaa 0xfe 0xb8 0xaa 0x3a 0x0 0x0 0x2a 0xfa 0x17 0xaa 0x0 0x0 0x3 0x83 0xab 0xff 0xaa 0x0 0x2 0xaa 0xff 0xff 0xfe 0xaa 0x2 0xaa 0xaa 0xff 0xff 0xa 0x80 0xaa 0xaa 0xaa 0xaa 0xe3 0x8a 0x0 0xaa 0xaa 0x80 0x88 0xf8 0x0 0x0 0x0 0x80 0xae 0x8a 0x0 0xe3 0x82 0x20 0x0 0xa0 0x0 0x0 0xfb 0x82 0x2 0x2 0x20 0x0 0x0 0xff 0xaa 0x0 0x0 0x0 0x0 0x0 0xff 0x55 0x55 0xff 0xff 0x7d 0x40 0xff 0x55 0x55 0xff 0xff 0x55 0x7f 0xff 0x55 0x55 0xff 0xff 0xd5 0xff 0xff 0x55 0x55 0xff 0xd4 0x5d 0xfe 0xff 0x55 0x55 0xde 0x0 0xff 0x70 0xff 0x55 0x40 0xa 0x0 0x55 0x41 0xff 0x54 0x0 0x0 0x0 0x55 0xff 0xff 0x0 0x2 0x27 0x7 0x57 0xff 0xff 0x5 0x10 0xff 0xdf 0xff 0xff 0xf4 0x55 0xb1 0xff 0xd5 0xff 0xff 0x5 0x0 0x55 0xff 0x5d 0xfd 0xf1 0x70 0x44 0x50 0xff 0x1 0x0 0xf0 0x0 0x40 0x0 0xff 0x55 0x70 0x0 0x5 0x4 0x0 0xf0 0x0 0x0 0x0 0x7f 0x40 0x0 0x0 0x0 0x0 0x0 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0xaa 0xaa 0xaa 0xff 0xff 0xff 0xaa 0xaa 0xaa 0xaa 0xff 0xff 0xfb 0xff 0xaa 0xaa 0xaa 0xff 0xff 0xaa 0xaf 0xaa 0xaa 0xaa 0xff 0xfe 0xaa 0xff 0xaa 0xaa 0xaa 0xfe 0x48 0x8a 0xfe 0xaa 0xaa 0xaa 0x60 0x0 0x80 0xa8 0xaa 0xaa 0x88 0x0 0x0 0x0 0xff 0x0 0xaa 0x0 0x1 0x0 0xb 0xfe 0x2a 0xaa 0x0 0x0 0xff 0xff 0xff 0xaa 0xa8 0xa 0xaa 0xff 0xa0 0xfe 0xa8 0x80 0xaa 0xaa 0xfe 0x2e 0x0 0x82 0x2 0xaa 0x0 0xab 0xa2 0x0 0x0 0x0 0x0 0xaa 0xfe 0xaa 0x20 0x0 0xa 0x0 0x0 0xb8 0x80 0x0 0x2a 0xaa 0x0 0x0 0x0 0x0 0x0 0xaa 0xa8 0x0 0x0 0x0 0x0 0x0 0xff 0x55 0x55 0xff 0xf5 0x57 0xd0 0xff 0x55 0x55 0xff 0x7f 0xc1 0x47 0xff 0x55 0x55 0xff 0xff 0x55 0xff 0xff 0x55 0x55 0xff 0xfc 0x55 0xf0 0xff 0x55 0x55 0xff 0x0 0x45 0x7c 0xff 0x55 0x52 0x2 0x0 0x55 0x75 0xfc 0x55 0x74 0x0 0x0 0x55 0xff 0xff 0x55 0x0 0x0 0x7 0x57 0xff 0xff 0x55 0x0 0x5 0x55 0xff 0xff 0xfc 0x55 0x85 0x55 0x55 0xff 0xff 0xf 0x10 0x55 0x55 0x55 0xf7 0xf1 0x84 0x10 0x55 0x55 0x0 0x50 0xd0 0x1 0x0 0x0 0x17 0x14 0x44 0x0 0xc5 0x45 0x10 0x0 0x0 0x0 0x0 0xd7 0x1 0x0 0x1 0x0 0x0 0x0 0xff 0x10 0x0 0x0 0x0 0x0 0x0
: D4
0x0 0x3c 0x36 0x3c 0x30 0x30 0x0 0xf3 0xdb 0xf3 0xdb 0xdb 0x0 0xe7 0xc 0xc7 0x1 0xef 0x0 0x9e 0x30 0x1c 0x86 0x3c 0x0 0x1e 0x30 0x1c 0x6 0x3c 0x0 0xf3 0x66 0x67 0x66 0x66 0x0 0x9e 0xdb 0xde 0xdb 0xdb 0x0 0x78 0x30 0x30 0x30 0x30
: D5
0x0 0x0 0xc 0x11 0x11 0x10 0x0 0x0 0x95 0x55 0x95 0xcd 0x0 0x0 0x53 0x55 0x55 0x33 0x40 0x40 0x44 0x42 0x41 0x46 0x0 0x40 0x6a 0x4a 0x4a 0x46 0x0 0x20 0x69 0xaa 0xaa 0x69 0x0 0x0 0x20 0x90 0x88 0x30
: D6
0x0 0x7f 0x1 0x7f 0x40 0x55 0xff 0x1 0x55 0x7c 0xf4 0x55 0x0 0x0 0x55 0x1e 0x7d 0x55 0xff 0xf9 0x50 0x0 0x7f 0x0 0x1f 0x57 0x5 0xdf 0xdf 0x55 0xc0 0xd7 0x0 0x7 0xe0 0x15 0xf0 0x27 0x50 0x3 0xfe 0x5 0xf0 0x0 0x50 0xf 0x3f 0x3f 0xfa 0xff 0xf9 0xaa 0xfb 0xe0 0xfe 0xff 0x7 0x0 0xff 0x9f 0x3e 0x7d 0xfc 0xff 0xf0 0x7f 0xe0 0x2a 0xf8 0xbf 0x87 0xff 0xdf 0xdf 0xe7 0xf8 0x8a 0x87 0x8 0xfe 0x8f 0xfe 0x3f 0xfc 0x1f 0x8f 0x78 0xc0 0xc0 0x1e 0x3f 0x7 0x0 0x55 0xff 0x79 0x55 0xf7 0xe0 0xfd 0xff 0x7 0x0 0xff 0x9e 0x3e 0x7d 0x1e 0xfd 0xf0 0x78 0xf5 0x0 0x0 0xd7 0x7 0x1 0xdf 0xdf 0xe7 0xdf 0x80 0x87 0x81 0x5f 0x9e 0x8f 0x50 0x1e 0xfe 0x11 0x79 0x0 0xf8 0x9e 0x1 0x7f 0x0 0xff 0x80 0x0 0xff 0x3 0x0 0x7e 0xfa 0x0 0x0 0x0 0x0 0x3e 0x7d 0x0 0xff 0xf8 0x0 0x80 0xbe 0x0 0x3f 0xa7 0x0 0xdf 0xdf 0x0 0xe0 0xab 0x0 0xb 0xf0 0x0 0xf8 0x1f 0x0 0x7 0xff 0x2 0xf0 0x0 0xa0 0x1f 0x1f 0x78 0xd5 0xff 0x1 0x54 0xf7 0xe0 0xfd 0xff 0x7 0x0 0xff 0x9e 0x3e 0x7d 0x1e 0xff 0xf8 0x78 0xf1 0x1f 0x1 0x7f 0x7 0xe0 0xdf 0xdf 0x7 0xfe 0x85 0x87 0x4 0x7f 0x9e 0x7f 0x7e 0x1e 0x3f 0x47 0x78 0x80 0xe0 0x1e 0x7e 0x2 0x7f 0xa0 0xaa 0xf1 0x1 0xa2 0xff 0xfa 0xaa 0xe7 0x0 0xaa 0x9f 0x3c 0x28 0xfc 0xfa 0xa8 0x7f 0xfb 0x0 0xf9 0xaf 0x2 0xff 0xdf 0x8a 0xc7 0xaf 0x80 0x87 0xc0 0x2a 0x8f 0x47 0xa8 0xfc 0xfc 0x8 0x3f 0x0 0xa8 0xfc 0x7 0x3f 0x0 0xff 0xff 0x0 0xfe 0xfb 0x0 0x7d 0xff 0x0 0x0 0xff 0x0 0x3e 0x7d 0x0 0xff 0xf8 0x0 0xc0 0x55 0x0 0x7f 0x47 0x0 0xdf 0xdf 0x0 0xf0 0x95 0x0 0x11 0xfc 0x0 0xfc 0x1f 0x0 0xf 0x9f 0x0 0xe0 0x80 0x0 0x3f 0xf 0x3f 0xaa 0xff 0xf1 0xa8 0xf7 0xe0 0xfa 0xff 0x7 0x0 0xff 0x9e 0x3e 0x7d 0x1e 0xff 0xf8 0x7f 0xea 0x0 0x80 0xef 0x7 0xff 0xdf 0xdf 0xc7 0xbf 0x80 0xff 0x2 0xbf 0x9e 0x1f 0xfc 0x1e 0xff 0x23 0x79 0x0 0xf0 0x9e
######################################################################
# INPUT: chip8/SuperChip Demos/Robot.ch8
######################################################################
:proto L2 # 21C
:proto L5 # 234
:proto D1 # 23A
: main
lores
i := D1
v0 := 0
v1 := 0
v2 := 15
sprite v0 v1 0
v0 := 5
buzzer := v0
v0 := 60
delay := v0
loop
v0 := delay
if v0 == 0 then jump L2
again
: L2
hires
: L3
v0 := random 0b1111111
v1 := random 0b111111
sprite v0 v1 0
vA := 5
buzzer := vA
vB := 20
delay := vB
loop
vB := delay
if vB == 0 then jump L5
again
: L5
sprite v0 v1 0
jump L3
0x12 0x38
: D1
0x7 0xe0 0x7 0xa0 0x7 0xe0 0x7 0xa0 0x7 0x80 0x7 0xe0 0x1 0x80 0x1 0x80 0x1 0x80 0x1 0x84 0x1f 0xf8 0x21 0x80 0x1 0x80 0x1 0x80 0x1 0x80 0x7f 0xfe
######################################################################
# INPUT: chip8/SuperChip Demos/SCSerpinski [Sergey Naydenov, 2010].ch8
######################################################################
:proto L1 # 205
:proto L4 # 2F5
:proto L5 # 31B
:proto L6 # 341
:proto D1 # 3BA
:proto D2 # 3BB
:proto D3 # 3BC
:proto D4 # 3BD
:proto D5 # 3BE
:proto D6 # 3FE
:proto D7 # 43E
:proto D8 # 43F
: main
jump L1
0x43 0x38 0x50
: L1
hires
v0 := 0
v5 := v0
v0 := 1
v1 := v5
i := D6
i += v1
save v0
v0 := 63
vA := v0
v0 := 0
vB := v0
i := D1
load v0
sprite vA vB 1
v0 := 1
i := D2
save v0
v0 := 63
i := D7
save v0
: L2
v0 := 1
i := D3
save v0
i := D2
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 += v1
i := D8
save v0
loop
i := D3
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 -= v1
i := D4
save v0
i := D3
load v0
v5 := v0
i := D4
load v0
i := D6
i += v0
load v0
v6 := v0
i := D3
load v0
v7 := v0
v0 := 1
v1 := v0
v0 := v7
v0 += v1
i := D6
i += v0
load v0
v1 := v0
v0 := v6
v0 ^= v1
v1 := v5
i := D5
i += v1
save v0
i := D4
load v0
v5 := v0
i := D4
load v0
i := D5
i += v0
load v0
v1 := v5
i := D6
i += v1
save v0
i := D3
load v0
i := D5
i += v0
load v0
v5 := v0
v0 := 1
v1 := v5
if v0 != v1 then vF := 1
if vF != 0 then jump L4
i := D3
load v0
v5 := v0
v0 := 63
v1 := v0
v0 := v5
v0 += v1
vA := v0
i := D2
load v0
vB := v0
i := D1
load v0
sprite vA vB 1
v0 := 63
v5 := v0
i := D3
load v0
v1 := v0
v0 := v5
v0 -= v1
vA := v0
i := D2
load v0
vB := v0
i := D1
load v0
sprite vA vB 1
: L4
i := D3
load v0
v5 := v0
i := D8
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 1 then jump L5
i := D3
load v0
v0 += 1
save v0
again
: L5
i := D2
load v0
v5 := v0
i := D7
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 1 then jump L6
i := D2
load v0
v0 += 1
save v0
jump L2
: L6
loop
again
0x81 0x0 0xa4 0x40 0x62 0x1 0x8e 0x25 0xfe 0x1e 0xf0 0x65 0x0 0xee 0x62 0x1 0x63 0x0 0x83 0x4 0x81 0x25 0x31 0x0 0x13 0x55 0x80 0x30 0x0 0xee 0xa4 0x40 0xfe 0x1e 0xf6 0x55 0x66 0x0 0x82 0x0 0x82 0x15 0x3f 0x1 0x13 0x8d 0x83 0x0 0x83 0x6 0x84 0x10 0x65 0x1 0x82 0x30 0x82 0x45 0x3f 0x1 0x13 0x87 0x84 0xe 0x85 0xe 0x13 0x79 0x80 0x45 0x86 0x54 0x13 0x69 0xf5 0x65 0x80 0x60 0x0 0xee 0x82 0x0 0x80 0x15 0x3f 0x0 0x13 0x93 0x80 0x20 0x0 0xee 0xa3 0xb7 0xf0 0x33 0xf2 0x65 0xf0 0x29 0xd3 0x45 0x73 0x6 0xf1 0x29 0xd3 0x45 0x73 0x6 0xf2 0x29 0xd3 0x45 0x0 0xee 0x28 0x63 0x29
: D1
0x80
: D2
0x0
: D3
0x0
: D4
0x0
: D5
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D6
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D7
0x0
: D8
0x0 0x0
######################################################################
# INPUT: chip8/SuperChip Demos/SCStars [Sergey Naydenov, 2010].ch8
######################################################################
:proto L1 # 205
:proto L5 # 2D7
:proto L6 # 2DD
:proto L7 # 303
:proto L8 # 325
:proto L11 # 3C7
:proto L12 # 3CD
:proto L13 # 3F3
:proto L14 # 415
:proto L15 # 471
:proto L16 # 4F3
:proto D1 # 582
:proto D2 # 5AA
:proto D3 # 5B2
:proto D4 # 5BA
:proto D5 # 5C2
:proto D6 # 5C3
:proto D7 # 5C4
:proto D8 # 5C5
:proto D9 # 5C6
:proto D10 # 5C8
: main
jump L1
0x43 0x38 0x50
: L1
hires
v0 := 0
v5 := v0
v0 := random 0b1111000
v1 := v5
i := D3
i += v1
save v0
v0 := 0
v5 := v0
v0 := random 0b111000
v1 := v5
i := D4
i += v1
save v0
v0 := 0
i := D3
i += v0
load v0
vA := v0
v0 := 0
i := D4
i += v0
load v0
vB := v0
v0 := 0
i := D1
i += v0
sprite vA vB 8
v0 := 1
i := D7
save v0
v0 := 7
i := D9
save v0
: L2
i := D7
load v0
v5 := v0
v0 := random 0b1111000
v1 := v5
i := D3
i += v1
save v0
: L3
v0 := 0
i := D6
save v0
i := D7
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 -= v1
i := D10
save v0
loop
i := D7
load v0
i := D3
i += v0
load v0
v5 := v0
i := D6
load v0
i := D3
i += v0
load v0
v6 := v0
v0 := 8
v1 := v0
v0 := v6
v0 += v1
v1 := v0
v0 := v5
v2 := v0
v0 -= v1
v0 := v2
if vF != 0 then jump L6
i := D7
load v0
i := D3
i += v0
load v0
v5 := v0
i := D6
load v0
i := D3
i += v0
load v0
v6 := v0
v0 := 8
v1 := v0
v0 := v6
v0 -= v1
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if vF != 0 then jump L5
v0 := 1
i := D8
save v0
jump L6
: L5
v0 := 0
i := D8
save v0
: L6
i := D6
load v0
v5 := v0
i := D10
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 1 then jump L7
i := D6
load v0
v0 += 1
save v0
again
: L7
i := D8
load v0
v5 := v0
v0 := 1
v1 := v5
if v0 != v1 then vF := 1
if vF != 0 then jump L8
i := D7
load v0
v5 := v0
v0 := random 0b1111000
v1 := v5
i := D3
i += v1
save v0
: L8
i := D8
load v0
v5 := v0
v0 := 0
v1 := v5
if v0 != v1 then vF := 1
if v0 == v1 then vF := 0
if vF != 0 then jump L3
i := D7
load v0
v5 := v0
v0 := random 0b111000
v1 := v5
i := D4
i += v1
save v0
: L9
v0 := 0
i := D6
save v0
i := D7
load v0
v5 := v0
v0 := 1
v1 := v0
v0 := v5
v0 -= v1
i := D10
save v0
loop
i := D7
load v0
i := D4
i += v0
load v0
v5 := v0
i := D6
load v0
i := D4
i += v0
load v0
v6 := v0
v0 := 8
v1 := v0
v0 := v6
v0 += v1
v1 := v0
v0 := v5
v2 := v0
v0 -= v1
v0 := v2
if vF != 0 then jump L12
i := D7
load v0
i := D4
i += v0
load v0
v5 := v0
i := D6
load v0
i := D4
i += v0
load v0
v6 := v0
v0 := 8
v1 := v0
v0 := v6
v0 -= v1
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if vF != 0 then jump L11
v0 := 1
i := D8
save v0
jump L12
: L11
v0 := 0
i := D8
save v0
: L12
i := D6
load v0
v5 := v0
i := D10
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 1 then jump L13
i := D6
load v0
v0 += 1
save v0
again
: L13
i := D8
load v0
v5 := v0
v0 := 1
v1 := v5
if v0 != v1 then vF := 1
if vF != 0 then jump L14
i := D7
load v0
v5 := v0
v0 := random 0b111000
v1 := v5
i := D4
i += v1
save v0
: L14
i := D8
load v0
v5 := v0
v0 := 0
v1 := v5
if v0 != v1 then vF := 1
if v0 == v1 then vF := 0
if vF != 0 then jump L9
i := D7
load v0
i := D3
i += v0
load v0
vA := v0
i := D7
load v0
i := D4
i += v0
load v0
vB := v0
v0 := 0
i := D1
i += v0
sprite vA vB 8
i := D7
load v0
v5 := v0
i := D9
load v0
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if v0 == v1 then vF := 0
if vF != 1 then jump L15
i := D7
load v0
v0 += 1
save v0
jump L2
: L15
loop
v0 := random 0b111
i := D5
save v0
i := D5
load v0
i := D3
i += v0
load v0
vA := v0
i := D5
load v0
i := D4
i += v0
load v0
vB := v0
i := D5
load v0
i := D2
i += v0
load v0
i := D1
i += v0
load v0
sprite vA vB 8
v0 := 10
delay := v0
i := D5
load v0
v5 := v0
i := D5
load v0
i := D2
i += v0
load v0
v6 := v0
v0 := 8
v1 := v0
v0 := v6
v0 += v1
v1 := v5
i := D2
i += v1
save v0
i := D5
load v0
i := D2
i += v0
load v0
v5 := v0
v0 := 32
v1 := v0
v0 := v5
v2 := v1
v1 -= v0
v1 := v2
if vF != 0 then jump L16
i := D5
load v0
v5 := v0
v0 := 0
v1 := v5
i := D2
i += v1
save v0
: L16
i := D5
load v0
v5 := v0
v0 := 50
v1 := v5
if v0 != v1 then vF := 1
if v0 == v1 then vF := 0
if vF != 0 then
again
loop
again
0x81 0x0 0xa5 0xc9 0x62 0x1 0x8e 0x25 0xfe 0x1e 0xf0 0x65 0x0 0xee 0x62 0x1 0x63 0x0 0x83 0x4 0x81 0x25 0x31 0x0 0x15 0x1d 0x80 0x30 0x0 0xee 0xa5 0xc9 0xfe 0x1e 0xf6 0x55 0x66 0x0 0x82 0x0 0x82 0x15 0x3f 0x1 0x15 0x55 0x83 0x0 0x83 0x6 0x84 0x10 0x65 0x1 0x82 0x30 0x82 0x45 0x3f 0x1 0x15 0x4f 0x84 0xe 0x85 0xe 0x15 0x41 0x80 0x45 0x86 0x54 0x15 0x31 0xf5 0x65 0x80 0x60 0x0 0xee 0x82 0x0 0x80 0x15 0x3f 0x0 0x15 0x5b 0x80 0x20 0x0 0xee 0xa5 0x7f 0xf0 0x33 0xf2 0x65 0xf0 0x29 0xd3 0x45 0x73 0x6 0xf1 0x29 0xd3 0x45 0x73 0x6 0xf2 0x29 0xd3 0x45 0x0 0xee 0x28 0x63 0x29
: D1
0x0 0x0 0x0 0x10 0x0 0x0 0x0 0x0 0x0 0x0 0x38 0x28 0x38 0x0 0x0 0x0 0x0 0x54 0x0 0x44 0x0 0x54 0x0 0x0 0x92 0x0 0x0 0x82 0x0 0x0 0x92 0x0 0x92 0x54 0x38 0xfe 0x38 0x54 0x92 0x0
: D2
0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8
: D3
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D4
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D5
0x0
: D6
0x0
: D7
0x0
: D8
0x0
: D9
0x0 0x0
: D10
0x0 0x0
######################################################################
# INPUT: chip8/SuperChip Demos/SuperMaze [David Winter, 199x].ch8
######################################################################
:proto D1 # 220
:proto D2 # 224
: main
hires
v0 := 0
v1 := 0
: L1
loop
i := D2
v2 := random 0b1
if v2 != 1 then i := D1
sprite v0 v1 4
v0 += 4
if v0 != 128 then jump L1
v0 := 0
v1 += 4
if v1 != 64 then
again
loop
again
: D1
0x80 0x40 0x20 0x10
: D2
0x20 0x40 0x80 0x10
######################################################################
# INPUT: chip8/SuperChip Demos/Super Particle Demo [zeroZshadow, 2008].ch8
######################################################################
:proto L4 # 268
:proto L5 # 298
:proto L6 # 29A
:proto Sub1 # 29E
:proto L7 # 2BA
:proto Sub2 # 2D0
:proto D1 # 2DA
:proto D2 # 302
:proto D3 # 322
:proto D4 # 325
: main
hires
i := D4
v0 := 32
v1 := 8
v2 := 8
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
i += v2
v0 += v2
sprite v0 v1 5
v6 := 8
v7 := 1
v8 := 3
vA := 0
jump L7
: L1
vB := 0
vC := 0
loop
i := D1
i += vB
load v3
Sub2
i := D3
sprite vE vD 3
i := D1
i += vB
jump L4
: L3
Sub2
i := D3
sprite vE vD 3
vB += 4
vC += 1
if vC != v6 then
again
jump L1
0x12 0x0
: L4
load v3
v0 += v2
v1 += v3
vE >>= v8
vD >>= v8
if vE == 0 then jump L5
if vE == 1 then jump L5
if vE == 62 then jump L5
if vE == 63 then jump L5
if vD == 0 then jump L5
if vD == 31 then jump L5
if vD == 0 then v3 := 1
vE := v0
vD := v1
if v3 != 2 then v3 += 1
jump L6
: L5
Sub1
: L6
save v3
jump L3
: Sub1
i := D2
i += vA
load v0
v2 := v0
vA += 1
v4 := 31
vA &= v4
i := D1
v0 := 128
v1 := 112
v3 := random 0b111
v3 += -12
i += vB
return
: L7
vB := 0
vC := 0
i := D1
loop
Sub1
save v3
vB += 4
i += vB
vC += 1
if vC != v6 then
again
jump L1
: Sub2
vE := v0
vD := v1
vE >>= v7
vD >>= v7
return
: D1
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D2
0xf8 0xfa 0xf9 0xfe 0xfb 0xfc 0xfd 0xff 0x2 0x1 0x3 0x5 0x4 0x6 0x7 0x8 0x6 0x7 0x4 0x5 0x3 0x1 0x2 0xfe 0xff 0xfc 0xfb 0xfd 0xfa 0xf9 0xf8 0xfa
: D3
0x40 0xa0 0x40
: D4
0xf7 0x6 0x77 0x6 0x36 0x0 0x0 0x0 0xc7 0x6c 0xcf 0xc 0xc 0x0 0x0 0x0 0x9f 0xd9 0xdf 0xd9 0xd9 0x0 0x0 0x0 0x3f 0x8c 0xc 0x8c 0x8c 0x0 0x0 0x0 0x67 0x6c 0x6c 0x6c 0x67 0x0 0x0 0x0 0xb0 0x30 0x30 0x30 0xbe 0x0 0x0 0x0 0xf9 0xc3 0xf1 0xc0 0xfb 0x0 0x0 0x0 0xef 0x0 0xce 0x60 0xcc 0x0 0x0 0x0
######################################################################
# INPUT: chip8/SuperChip Demos/SuperTrip8 Demo (2008) [Revival Studios].ch8
######################################################################
:proto L1 # 214
:proto Sub1 # 270
:proto Sub2 # 290
:proto Sub3 # 2A2
:proto Sub4 # 2B4
:proto Sub5 # 2C6
:proto Sub6 # 2CC
:proto Sub7 # 2D4
:proto Sub8 # 2DC
:proto Sub9 # 2E4
:proto Sub10 # 2EC
:proto Sub11 # 2F4
:proto Sub12 # 2FC
:proto Sub13 # 308
:proto Sub14 # 318
:proto Sub15 # 324
:proto Sub16 # 33E
:proto Sub17 # 358
:proto Sub18 # 372
:proto Sub19 # 396
:proto Sub20 # 3D6
:proto Sub21 # 3DE
:proto D1 # 436
:proto Sub22 # 460
:proto Sub23 # 496
:proto D2 # 4C6
:proto D3 # 4CE
:proto D4 # 4D2
:proto D5 # 5D2
:proto D6 # 752
:proto D7 # A52
:proto D8 # C52
:proto D9 # E52
: main
jump L1
0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x53 0x54 0x55 0x44 0x49 0x4f 0x53 0x32 0x30 0x30 0x38
: L1
hires
clear
vD := 32
delay := vD
Sub20
Sub21
vD := 64
delay := vD
Sub20
Sub21
vD := 32
delay := vD
Sub20
i := D4
Sub22
vD := 128
delay := vD
Sub20
i := D4
Sub22
Sub23
vD := 0
vB := 0
Sub5
loop
if vB == 0 then Sub9
if vB == 1 then Sub19
if vB == 2 then Sub10
if vB == 3 then Sub19
if vB == 4 then Sub11
if vB == 5 then Sub19
v0 := 1
delay := v0
Sub20
vD += 1
v0 := 63
vC := vD
vC &= v0
if vC == 0 then Sub1
again
: Sub1
if vB == 0 then Sub2
if vB == 1 then Sub6
if vB == 2 then Sub3
if vB == 3 then Sub7
if vB == 4 then Sub4
if vB == 5 then Sub8
vB += 1
if vB == 6 then vB := 0
return
: Sub2
Sub13
v9 := random 0b11
v9 += v9
v9 += v9
v9 += v9
v9 += v9
v9 += v9
Sub18
return
: Sub3
Sub12
v9 := random 0b11
v9 += v9
v9 += v9
v9 += v9
v9 += v9
v9 += v9
Sub18
return
: Sub4
Sub14
v9 := random 0b11
v9 += v9
v9 += v9
v9 += v9
v9 += v9
v9 += v9
Sub18
return
: Sub5
vE := 0
Sub13
return
: Sub6
Sub18
vE := 0
Sub12
return
: Sub7
Sub18
vE := 0
Sub14
return
: Sub8
Sub18
vE := 0
Sub13
return
: Sub9
Sub13
vE += 3
Sub13
return
: Sub10
Sub12
vE += 2
Sub12
return
: Sub11
Sub14
vE += 2
Sub14
return
: Sub12
vC := 0
Sub16
Sub16
Sub16
Sub16
return
: Sub13
vC := 0
Sub15
Sub15
Sub15
Sub15
Sub15
Sub15
return
: Sub14
vC := 0
Sub17
Sub17
Sub17
Sub17
return
: Sub15
i := D6
i += vE
i += vE
i += vE
i += vE
i += vC
load v1
v0 += v0
v1 += v1
i := D2
sprite v0 v1 8
vC += 2
return
: Sub16
i := D7
i += vE
i += vE
i += vE
i += vE
i += vC
load v1
v0 += v0
v1 += v1
i := D2
sprite v0 v1 8
vC += 2
return
: Sub17
i := D8
i += vE
i += vE
i += vE
i += vE
i += vC
load v1
v0 += v0
v1 += v1
i := D2
sprite v0 v1 8
vC += 2
return
: Sub18
vC := 0
loop
v0 := 31
vA := vD
vA += vC
vA &= v0
vA += v9
i := D9
i += vA
i += vA
load v1
v0 += v0
v1 += v1
i := D3
sprite v0 v1 5
vC += 1
if vC != 8 then
again
return
: Sub19
v0 := 31
vA := vD
vA &= v0
vA += v9
i := D9
i += vA
i += vA
load v1
v0 += v0
v1 += v1
i := D3
sprite v0 v1 5
v0 := 31
vA := vD
vA += 8
vA &= v0
vA += v9
i := D9
i += vA
i += vA
load v1
v0 += v0
v1 += v1
i := D3
sprite v0 v1 5
return
0xa7 0x52 0xfd 0x1e 0xf0 0x65 0x30 0x0 0xf0 0x18 0x0 0xee
: Sub20
loop
v0 := delay
if v0 != 0 then
again
return
: Sub21
vD := 4
v1 := 29
v0 := 60
v2 := 18
i := D1
i += v2
sprite v0 v1 6
delay := vD
Sub20
v0 := 52
v2 := 12
i := D1
i += v2
sprite v0 v1 6
v0 := 68
v2 := 24
i := D1
i += v2
sprite v0 v1 6
delay := vD
Sub20
v0 := 44
v2 := 6
i := D1
i += v2
sprite v0 v1 6
v0 := 76
v2 := 30
i := D1
i += v2
sprite v0 v1 6
delay := vD
Sub20
i := D1
v0 := 36
sprite v0 v1 6
v0 := 84
v2 := 36
i := D1
i += v2
sprite v0 v1 6
delay := vD
Sub20
return
: D1
0x0 0x0 0xc 0x11 0x11 0x10 0x0 0x0 0x95 0x55 0x95 0xcd 0x0 0x0 0x53 0x55 0x55 0x33 0x40 0x40 0x44 0x42 0x41 0x46 0x0 0x40 0x6a 0x4a 0x4a 0x46 0x0 0x20 0x69 0xaa 0xaa 0x69 0x0 0x0 0x20 0x90 0x88 0x30
: Sub22
v4 := 1
v5 := 7
v2 := 0
v3 := 0
: L4
v0 := 32
loop
v1 := v3
v1 += 16
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
i += v4
v0 += 8
if v0 != 96 then
again
v3 += 3
v3 &= v5
v2 += 1
if v2 != 8 then jump L4
return
: Sub23
vC := 15
v0 := 80
i := D5
v1 := 0
v2 := 4
loop
v1 := 0
sprite v0 v1 15
i += vC
v1 := 15
sprite v0 v1 15
i += vC
v1 := 30
sprite v0 v1 15
i += vC
v1 := 45
sprite v0 v1 15
i += vC
v1 := 60
sprite v0 v1 4
i += v2
v0 += 8
if v0 != 128 then
again
return
: D2
0x3c 0x42 0xb1 0xa1 0x81 0x81 0x42 0x3c
: D3
0x20 0xf8 0x50 0x88
: D4
0x0 0x0 0x0 0x0 0x0 0x0 0x39 0x0 0x0 0x0 0x6b 0x0 0x0 0x0 0x5b 0x0 0x0 0x0 0x1b 0x0 0x0 0x0 0x1a 0x0 0x0 0x0 0xd9 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x1 0x0 0x0 0x7f 0x7d 0x0 0x0 0xff 0xef 0x0 0x0 0xfd 0x7b 0x0 0x0 0x7f 0x1b 0x0 0x0 0xf6 0x1b 0x0 0x0 0x9f 0xdf 0x0 0x0 0x80 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0xe1 0x0 0x0 0x0 0x6f 0xc 0x0 0x0 0x7b 0x0 0x0 0x0 0xdb 0x0 0x0 0x0 0xdb 0x3 0x0 0x0 0xdf 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1d 0x0 0x0 0x0 0x6b 0x0 0x0 0x0 0x73 0x0 0x0 0x18 0x1b 0x0 0x0 0x0 0x1a 0x0 0x0 0x0 0xd9 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x2 0x0 0x0 0xe0 0xf8 0x0 0x0 0x0 0xee 0x0 0x0 0x0 0x3b 0x0 0x0 0x18 0x1b 0x0 0x0 0x0 0x1b 0x0 0x0 0x19 0x8f 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x71 0x0 0x0 0x0 0x6b 0x0 0x0 0x0 0x5b 0x0 0x0 0x0 0x1b 0x0 0x0 0x0 0x1a 0x0 0x0 0x0 0xcf 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x3f 0xd 0x0 0x0 0xff 0x6b 0x0 0x0 0xfe 0x63 0x0 0x0 0xbf 0x1b 0x0 0x0 0xfb 0x1a 0x0 0x0 0x4f 0xd9 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0xc1 0x0 0x0 0x0 0x6e 0xc 0x0 0x0 0x31 0x0 0x0 0x0 0xd9 0x0 0x0 0x0 0xdb 0x3 0x0 0x0 0x99 0x0 0x0 0x0 0x80 0x0 0x0
: D5
0x7 0xa 0xd 0x6 0x13 0xd 0x6 0x27 0x33 0x19 0x6e 0x17 0xb 0x3f 0x4f 0x7 0x2 0x1 0x0 0x1 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x1 0x1 0x1 0x1 0x1 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0x7f 0xff 0x7f 0xff 0x7f 0xbf 0xff 0xff 0xff 0x7f 0xff 0x7f 0xaf 0x5f 0xaf 0x5f 0xaf 0x57 0xaf 0xdf 0xaf 0xdf 0xef 0xef 0xff 0xff 0xef 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f 0x3f 0x3f 0xf 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xfc 0xf8 0xf0 0xe0 0xff 0xff 0xff 0xfc 0xf8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f 0x7f 0x7f 0x3f 0x3f 0x3f 0x3f 0x1f 0x1f 0xf 0xf 0xf 0x7 0x7 0x3 0x3 0x3 0x1 0x1 0x1 0x1 0x1 0xfe 0xfc 0xfc 0xfc 0xfc 0xfc 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xfe 0xfc 0xfc 0xf8 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x80 0xc0 0xc0 0xe0 0xe0 0xe0 0xe0 0xc0 0xc0 0xc3 0xdf 0xff 0xff 0xff 0xfe 0xfe 0xfc 0xfc 0xfc 0xfc 0xfc 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xfe 0xfe 0xfe 0xff 0xff 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xc0 0xc0 0xc0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x7 0xf 0x1f 0x3f 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0x7 0x7 0x7 0x6 0xf 0xf 0x3f 0x7f 0xff 0xff 0xff 0xff 0xbf 0x9f 0x8 0x0 0x3 0xf 0x1f 0x1f 0xf 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x70 0xf8 0xf0 0xf0 0xf0 0xf8 0xf8 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xfc 0xf8 0xf0 0xf0 0xe0 0x20 0x10 0xf8 0xf0 0xe0 0xe0 0xe0 0xe0 0xe0 0xc0 0x0 0x0 0x0 0x80 0xc0 0xc0 0x80 0x0 0x0 0x0
: D6
0x4 0x5 0x1b 0x5 0x1b 0x17 0x4 0x17 0x7 0x8 0x17 0x8 0x1c 0x8 0x15 0x1a 0x6 0x3 0x0 0x14 0x1b 0xa 0x16 0x16 0x1a 0xa 0xe 0x1a 0x8 0x2 0x0 0x10 0x1e 0xc 0x15 0x17 0x18 0xb 0x8 0x19 0xb 0x1 0x0 0xd 0x20 0xf 0x13 0x19 0x15 0xa 0x3 0x15 0x20 0x12 0xe 0x1 0x10 0x1a 0x1 0xb 0x14 0x8 0x0 0x11 0x1f 0x14 0xd 0x1b 0x12 0x1 0x4 0x9 0x15 0x6 0x0 0xd 0x1d 0x16 0xa 0x1b 0x15 0x3 0x6 0x8 0x18 0x5 0x1 0x9 0x1c 0x16 0x6 0x19 0x17 0x5 0x7 0x8 0x1b 0x5 0x4 0x5 0x1b 0x17 0x4 0x17 0x17 0x8 0x8 0x8 0x4 0x14 0x9 0x2 0x1a 0x18 0x1e 0x7 0x5 0x13 0x8 0x7 0x5 0x12 0xe 0x1 0x19 0x19 0x1f 0xa 0x2 0x12 0x8 0x6 0x8 0x12 0x14 0x2 0x18 0x1a 0x20 0xc 0x0 0x10 0x9 0x5 0xa 0x12 0x19 0x4 0x15 0x1b 0x0 0xe 0x1f 0xe 0xb 0x3 0xc 0x14 0x1d 0x8 0x0 0xb 0xe 0x1 0x11 0x1b 0x1d 0x11 0xb 0x17 0x1f 0xd 0x0 0x8 0x12 0x1 0xd 0x1a 0x1b 0x12 0x8 0x18 0x1e 0x12 0x2 0x7 0x17 0x2 0xa 0x17 0x19 0x13 0x1b 0x17 0x1b 0x5 0x4 0x17 0x4 0x5 0x17 0x8 0x17 0x14 0x1d 0xa 0x6 0x4 0x15 0x1a 0x1 0x15 0x1b 0x9 0xb 0x5 0x1b 0xe 0x8 0x3 0xe 0x1b 0x0 0x11 0x1e 0xc 0x10 0x4 0x17 0x12 0xa 0x2 0x8 0x1a 0x1f 0xf 0x0 0xd 0x16 0x4 0x10 0x14 0xd 0x2 0x1e 0x14 0x3 0x16 0x1b 0x6 0x2 0x9 0x9 0x13 0x10 0x1 0x1a 0x18 0x1f 0xa 0x1 0x12 0x7 0x6 0x4 0xf 0x14 0x2 0x13 0x1b 0x20 0xe 0x1 0xe 0xd 0x5 0x2 0xa 0x18 0x3 0xb 0x1b 0x1f 0x13 0x4 0xa 0x12 0x5 0x4 0x17 0x4 0x5 0x1b 0x17 0x1b 0x5 0x8 0x14 0x8 0x8 0x15 0x19 0x1e 0x8 0x0 0x11 0x9 0x2 0x14 0x17 0x1b 0xc 0xe 0x17 0x1f 0xb 0x0 0xb 0xf 0x1 0x10 0x1a 0x1c 0x10 0x9 0x13 0x1f 0xe 0x2 0x6 0x15 0x2 0xa 0x1a 0x1a 0x15 0x8 0xe 0x1f 0xf 0x8 0x2 0x5 0x18 0x1a 0x5 0x17 0x19 0xa 0x9 0x1e 0x12 0x0 0x14 0xe 0x1 0x11 0x1b 0x1c 0x9 0xf 0x5 0x1d 0x14 0x0 0xe 0xc 0x1b 0x13 0x2 0x1d 0xe 0x15 0x4 0x1c 0x15 0x0 0xa 0x7 0x1a 0x16 0x5 0x1b 0x11 0x1b 0x5 0x4 0x5 0x4 0x17 0x1b 0x17 0x18 0x8 0x8 0x8 0x3 0x14 0xa 0x2 0x19 0x19 0x1f 0x8 0x4 0x12 0x9 0x6 0x5 0x12 0x11 0x2 0x17 0x1a 0x20 0xc 0x1 0x10 0xa 0x5 0x7 0x11 0x17 0x3 0x14 0x1b 0x0 0xd 0x20 0xf 0xc 0x3 0xa 0x12 0x1c 0x7 0x0 0xa 0x11 0x1b 0xf 0x2 0x1e 0x11 0xb 0x14 0x1f 0xb 0x0 0x8 0x12 0x1 0xd 0x1b 0x1b 0x13 0xa 0x16 0x1f 0xf 0x2 0x6 0x15 0x1 0xa 0x19 0x19 0x14 0x7 0x17 0x1e 0x13 0x3 0x6 0x19 0x3 0x8 0x17 0x18 0x14 0x1b 0x5 0x4 0x5 0x1b 0x17 0x4 0x17 0x17 0x8 0x8 0x8 0x1b 0x8 0x16 0x1a 0x5 0x4 0x1 0x15 0x1a 0x9 0x17 0x15 0x1a 0xa 0x11 0x1b 0x6 0x3 0x0 0x12 0x1d 0xa 0x17 0x16 0x17 0xa 0xb 0x1a 0x7 0x2 0x0 0x10 0x1f 0xc 0x16 0x17 0x15 0xa 0x6 0x18 0xa 0x1 0x20 0xe 0x0 0xe 0x14 0x19 0x13 0x8 0x2 0x14 0x20 0x11 0xe 0x1 0x11 0x1b 0x2 0xb 0x14 0x5 0x0 0xf 0x1f 0x14 0xd 0x1b 0x12 0x2 0x4 0xa 0x17 0x4 0x1 0xa 0x1d 0x15 0x8 0x1a 0x15 0x5 0x6 0x9 0x1b 0x17 0x1b 0x5 0x4 0x17 0x4 0x5 0x18 0x8 0x18 0x14 0x2 0x12 0x19 0x18 0xa 0x2 0x1e 0x7 0x4 0x13 0x14 0x17 0x4 0xe 0x17 0x19 0x11 0x1 0x20 0xb 0x1 0x10 0xf 0x18 0x8 0xa 0x15 0x1a 0x17 0x2 0x20 0xf 0x0 0xd 0x9 0x18 0xf 0x8 0x12 0x1a 0x1 0x8 0x1c 0x6 0x4 0x16 0x1d 0x13 0x16 0x9 0xf 0x1b 0x5 0x4 0x0 0x12 0x1e 0xa 0x18 0x16 0x1b 0xd 0xb 0x1a 0xc 0x1 0x0 0xe 0x1e 0xe 0x12 0x17 0x1d 0x12 0x7 0x19 0x14 0x1 0x0 0x9 0x1b 0x12 0xd 0x17 0x4 0x17 0x4 0x5 0x1b 0x17 0x1b 0x5 0x8 0x14 0x8 0x8 0xa 0x3 0x1 0x14 0x1f 0xb 0x16 0x1a 0xb 0x5 0x4 0x10 0x11 0x5 0x0 0x11 0x20 0x11 0x10 0x1b 0xf 0x2 0x3 0xc 0x16 0x9 0x0 0xe 0x1d 0x16 0xa 0x1a 0x15 0x2 0x5 0x7 0x17 0xe 0x0 0xd 0x17 0x1a 0x1a 0x4 0x5 0x17 0x8 0x3 0x15 0x13 0x1 0xa 0x1f 0x8 0xe 0x1 0x11 0x1b 0x3 0x13 0x10 0x17 0x2 0x8 0x20 0xe 0x13 0x1 0xc 0x1a 0x2 0xe 0xa 0x18 0x3 0x7 0x1f 0x12 0x18 0x2 0x9 0x17 0x4 0xb
: D7
0x4 0x5 0x1b 0x5 0x1b 0x17 0x4 0x17 0x1c 0x8 0x15 0x1a 0x6 0x3 0x0 0x14 0x1a 0xa 0xe 0x1a 0x8 0x2 0x0 0x10 0x18 0xb 0x8 0x19 0xb 0x1 0x0 0xd 0x15 0xa 0x3 0x15 0xe 0x1 0x1 0xb 0x14 0x8 0x0 0x11 0x12 0x1 0x14 0x12 0x15 0x6 0x0 0xd 0x13 0x14 0x15 0x3 0x18 0x5 0x1 0x9 0x11 0x15 0x17 0x5 0x1b 0x5 0x4 0x5 0x10 0x15 0x17 0x8 0x9 0x2 0x1e 0x7 0xe 0x15 0x8 0x7 0xe 0x1 0x1f 0xa 0xc 0x15 0x8 0x6 0x14 0x2 0xb 0x14 0x20 0xc 0x9 0x5 0x19 0x4 0xa 0x14 0x1f 0xe 0xb 0x3 0x1d 0x8 0x8 0x13 0xe 0x1 0x1d 0x11 0x1f 0xd 0x12 0x1 0x7 0x11 0x1b 0x12 0x1e 0x12 0x17 0x2 0x6 0x10 0x19 0x13 0x1b 0x17 0x1b 0x5 0x6 0xe 0x17 0x8 0x1d 0xa 0x15 0x1a 0x7 0xc 0x1b 0x9 0x1b 0xe 0xe 0x1b 0x8 0xa 0x1e 0xc 0x17 0x12 0x8 0x1a 0x1f 0xf 0xb 0x8 0x10 0x14 0x1e 0x14 0x3 0x16 0xf 0x7 0x9 0x13 0x1a 0x18 0x1 0x12 0x12 0x8 0x4 0xf 0x13 0x1b 0x15 0x9 0x1 0xe 0x2 0xa 0xb 0x1b 0x18 0xb 0x4 0xa 0x4 0x17 0x4 0x5 0x19 0xe 0x8 0x14 0x0 0x11 0x9 0x2 0x18 0x10 0x6 0x12 0x0 0xb 0xf 0x1 0x16 0x13 0x5 0x10 0x2 0x6 0x14 0x14 0x15 0x2 0x5 0xe 0x11 0x14 0x8 0x2 0x1a 0x5 0x5 0xd 0xe 0x13 0xe 0x1 0x1c 0x9 0x6 0xc 0xd 0x11 0x13 0x2 0x1d 0xe 0x6 0xa 0xe 0xf 0x16 0x5 0x1b 0x11 0x7 0x9 0x10 0xe 0x18 0x8 0x8 0x8 0x8 0x14 0x12 0xe 0x4 0x12 0x9 0x6 0x13 0x16 0x14 0xe 0x1 0x10 0xa 0x5 0xf 0x16 0x16 0x10 0x0 0xd 0xc 0x3 0xa 0x15 0x16 0x12 0x0 0xa 0xf 0x2 0x7 0x13 0x0 0x8 0x15 0x13 0x12 0x1 0x5 0x10 0x2 0x6 0x15 0x1 0x13 0x15 0x5 0xe 0x3 0x6 0x19 0x3 0x11 0x15 0x5 0xb 0x1b 0x5 0x4 0x5 0xf 0x15 0x17 0x8 0x1b 0x8 0x5 0x4 0xe 0x15 0x1a 0x9 0x1a 0xa 0x6 0x3 0xc 0x14 0x1d 0xa 0x17 0xa 0x7 0x2 0x1f 0xc 0xb 0x14 0x15 0xa 0xa 0x1 0x20 0xe 0xa 0x13 0x13 0x8 0x20 0x11 0xe 0x1 0x9 0x12 0x14 0x5 0x1f 0x14 0x8 0x11 0x12 0x2 0x17 0x4 0x1d 0x15 0x7 0x10 0x15 0x5 0x1b 0x17 0x1b 0x5 0x6 0xe 0x18 0x8 0x19 0x18 0x1e 0x7 0x7 0xc 0x14 0x17 0x17 0x19 0x20 0xb 0x8 0xa 0xf 0x18 0x15 0x1a 0xb 0x8 0x20 0xf 0x9 0x18 0x12 0x1a 0xe 0x7 0x4 0x16 0x1d 0x13 0xf 0x1b 0x12 0x7 0x0 0x12 0x18 0x16 0xb 0x1a 0x0 0xe 0x16 0x9 0x12 0x17 0x7 0x19 0x0 0x9 0x18 0xb 0xd 0x17 0x4 0x17 0x4 0x5 0x19 0xe 0x8 0x14 0xa 0x3 0x1 0x14 0x18 0x10 0xb 0x5 0x11 0x5 0x0 0x11 0x16 0x12 0xf 0x2 0x16 0x9 0x0 0xe 0x15 0x2 0x13 0x13 0x17 0xe 0x0 0xd 0x1a 0x4 0x8 0x3 0x15 0x13 0x1 0xa 0x1f 0x8 0xe 0x1 0x10 0x17 0x2 0x8 0x20 0xe 0x13 0x1 0xa 0x18 0x3 0x7 0x1f 0x12 0x18 0x2
: D8
0x10 0xe 0x6 0x7 0x19 0x7 0x19 0x15 0xd 0xe 0x1b 0x9 0x16 0x17 0x9 0x5 0xb 0xe 0x1c 0xc 0x12 0x18 0xd 0x4 0x1c 0xe 0x9 0xc 0xe 0x19 0x11 0x4 0x1b 0xe 0x9 0xa 0xb 0x18 0x14 0x5 0x1a 0xe 0x7 0x16 0xa 0x9 0x14 0x12 0x1a 0xe 0x5 0x14 0xc 0x7 0x13 0x14 0x1a 0xe 0x4 0x11 0xe 0x7 0x11 0x15 0x1b 0xe 0x4 0xe 0x10 0x15 0x10 0x7 0x6 0xc 0x1c 0xf 0xe 0x15 0x11 0x7 0xa 0xa 0x1d 0x10 0xc 0x15 0x13 0x8 0xe 0xa 0x1c 0x12 0xb 0x14 0x14 0x8 0x12 0xb 0xa 0x14 0x1a 0x14 0x5 0x8 0x15 0xe 0x7 0x6 0x8 0x13 0x17 0x16 0x15 0x11 0xa 0x4 0x7 0x11 0x17 0xb 0x13 0x15 0xd 0x4 0x6 0x10 0x18 0xc 0x10 0x17 0x10 0x5 0x6 0xe 0x19 0xe 0x11 0x7 0xb 0x17 0x18 0x10 0x7 0xc 0x11 0x9 0x6 0x16 0x17 0x12 0x8 0xa 0x10 0xa 0x3 0x13 0x14 0x14 0x1a 0xa 0xe 0xb 0x11 0x15 0x1d 0xd 0x3 0xf 0xd 0xa 0x1d 0x10 0xd 0x15 0x12 0x8 0xc 0x8 0x1a 0x14 0x9 0x13 0x15 0x9 0xd 0x6 0x15 0x17 0x7 0x11 0x18 0xb 0x10 0x17 0x10 0x5 0x19 0xe 0x6 0xe 0xa 0x15 0x13 0x5 0x18 0x10 0x7 0xc 0x6 0x10 0x17 0x5 0x16 0x13 0x9 0xa 0x5 0xc 0x1a 0x7 0x14 0x14 0xc 0x9 0x8 0x7 0x11 0x14 0x1c 0xa 0x5 0x11 0xc 0x4 0xe 0x13 0x1d 0xd 0x4 0xf 0xd 0x11 0x11 0x3 0x1d 0x10 0x3 0xd 0xe 0xf 0x16 0x4 0x1b 0x13 0x4 0x9 0x10 0xe 0x19 0x7 0x6 0x7 0x6 0x15 0x12 0xe 0x4 0x13 0x9 0x5 0x16 0x17 0x14 0xe 0x3 0x10 0xd 0x4 0x12 0x18 0x3 0xe 0x16 0x10 0x11 0x3 0xe 0x18 0x4 0xe 0x16 0x12 0x14 0x4 0xb 0x17 0x5 0xe 0x18 0x6 0x15 0x13 0xb 0xa 0x5 0xe 0x1a 0x8 0x13 0x15 0xc 0x8 0x5 0xe 0x1b 0xb 0x11 0x15 0xe 0x7 0x1b 0xe 0x4 0xe 0xf 0x15 0xf 0x7 0x19 0x10 0x3 0xd 0x11 0x7 0xe 0x15 0x15 0x12 0x2 0xc 0x13 0x7 0xc 0x14 0x11 0x12 0x3 0xa 0x14 0x8 0xb 0x14 0xd 0x11 0x15 0x8 0x5 0x8 0x1a 0x14 0xa 0xe 0x18 0x16 0x17 0x9 0x8 0x6 0xa 0xb 0x15 0x18 0x18 0xb 0x8 0x11 0xc 0x7 0x12 0x18 0x19 0xc 0x7 0x10 0x10 0x17 0x10 0x5 0x6 0xe 0x19 0xe 0xe 0x15 0x14 0x5 0x7 0xc 0x18 0x10 0xe 0x13 0x19 0x6 0x8 0xa 0x17 0x12 0xf 0x12 0x1c 0x9 0xb 0x8 0x5 0x12 0x11 0x11 0xe 0x7 0x2 0xf 0x1c 0xd 0x12 0x12 0x2 0xc 0x12 0x7 0xd 0x14 0x13 0x14 0x5 0x8 0x16 0x9 0xa 0x13 0x12 0x16 0xa 0x5 0x18 0xb 0x7 0x11 0xf 0x17 0x10 0x5 0x19 0xe 0x6 0xe 0x15 0x7 0xc 0x17 0x7 0xc 0x18 0x10 0x19 0xc 0x8 0x17 0x9 0x9 0x16 0x12 0x1a 0x10 0x5 0x15 0xb 0x8 0x13 0x13 0x17 0x15 0xe 0x8 0x3 0x12 0x1a 0xb 0x13 0x18 0x11 0x9 0x2 0xf 0x1b 0xd 0x12 0xb 0xe 0x19 0x2 0xc 0x1c 0xf 0x11 0xd 0x9 0x18 0x4 0x9 0x1b 0x13
: D9
0x10 0x10 0xc 0x14 0x7 0x17 0x4 0x1a 0x3 0x1c 0x3 0x1d 0x5 0x1d 0x8 0x1b 0xc 0x19 0x10 0x16 0x14 0x13 0x17 0x10 0x1a 0xd 0x1b 0xa 0x1b 0x8 0x19 0x6 0x17 0x5 0x13 0x6 0x10 0x7 0xd 0x8 0xa 0xb 0x7 0xe 0x6 0x10 0x6 0x12 0x8 0x15 0xa 0x17 0xd 0x18 0x10 0x19 0x13 0x19 0x16 0x18 0x18 0x17 0x19 0x14 0x10 0x19 0xf 0x17 0xd 0x17 0xa 0x19 0x6 0x1a 0x6 0x16 0x9 0x13 0x9 0x11 0x7 0x10 0x3 0xe 0x3 0xb 0x8 0xb 0xb 0xb 0xc 0xa 0xc 0x6 0xe 0x2 0x10 0x4 0x11 0x8 0x12 0xa 0x14 0x9 0x19 0x7 0x1b 0x9 0x19 0xd 0x17 0xf 0x17 0x10 0x1a 0x12 0x1d 0x15 0x1a 0x16 0x15 0x15 0x14 0x16 0x13 0x18 0x12 0x1d 0x10 0x19 0xe 0x17 0xd 0x17 0xb 0x17 0x8 0x17 0x5 0x19 0x2 0x19 0x3 0x17 0x8 0x14 0xb 0x12 0xe 0x11 0x10 0x10 0x11 0x10 0x14 0xe 0x19 0xb 0x1c 0x9 0x1c 0x9 0x19 0x9 0x17 0xa 0x16 0xa 0x14 0x9 0x13 0x7 0x11 0x4 0xf 0x2 0xb 0x3 0x9 0x6 0x9 0x9 0x9 0xa 0x9 0xb 0x8 0xb 0x7 0xb 0x7 0xb 0x10 0x19 0x13 0x18 0x15 0x17 0x16 0x16 0x18 0x15 0x18 0x15 0x18 0x14 0x15 0x12 0x10 0x10 0xb 0xe 0x9 0xc 0x8 0xc 0x9 0xb 0xa 0xa 0xb 0x9 0xd 0x8 0x10 0x6 0x14 0x4 0x1a 0x3 0x1d 0x4 0x1c 0x8 0x19 0xb 0x15 0xd 0x12 0xf 0x10 0x10 0xd 0x11 0xa 0x13 0x6 0x16 0x3 0x19 0x3 0x1c 0x7 0x1c 0xc 0x1a
######################################################################
# INPUT: chip8/SuperChip Demos/Worms demo.ch8
######################################################################
:proto Sub1 # 252
:proto Sub2 # 25C
:proto Sub3 # 266
:proto Sub4 # 270
:proto Sub5 # 27A
:proto D1 # 284
: main
hires
clear
i := D1
v4 := 1
vB := 10
vC := 12
vD := 107
vE := 8
v8 := 14
v9 := 57
v5 := 117
v6 := 53
Sub5
v0 := 5
buzzer := v0
v0 := 10
delay := v0
loop
v0 := delay
if v0 != 0 then
again
loop
v0 := 1
buzzer := v0
v0 := random 0b1101
if v0 == 1 then v4 := 1
if v0 == 1 then v4 := 2
if v0 == 2 then v4 := 3
if v0 == 3 then v4 := 4
if v4 == 1 then Sub1
if v4 == 2 then Sub2
if v4 == 3 then Sub3
if v4 == 4 then Sub4
Sub5
again
: Sub1
vC += -1
vE += -1
v9 += -1
v6 += -1
return
: Sub2
vB += -1
vD += -1
v8 += -1
v5 += -1
return
: Sub3
vB += 1
vD += 1
v8 += 1
v5 += 1
return
: Sub4
vC += 1
vE += 1
v9 += 1
v6 += 1
return
: Sub5
sprite vB vC 1
sprite vD vE 1
sprite v8 v9 1
sprite v5 v6 1
return
: D1
0x80 0xa9
######################################################################
# INPUT: chip8/SuperChip Games/Alien [Jonas Lindstedt, 1993].ch8
######################################################################
:proto L1 # 212
:proto L5 # 23A
:proto L7 # 24E
:proto L11 # 28A
:proto Sub1 # 2F6
:proto L19 # 320
:proto L20 # 328
:proto L21 # 32A
:proto L22 # 338
:proto Sub2 # 344
:proto Sub3 # 36C
:proto Sub4 # 384
:proto L26 # 3BA
:proto L27 # 3E4
:proto L29 # 400
:proto L30 # 402
:proto Sub5 # 40E
:proto L31 # 432
:proto L32 # 444
:proto Sub6 # 446
:proto L33 # 45A
:proto L34 # 460
:proto L35 # 462
:proto L36 # 464
:proto Sub7 # 466
:proto L38 # 482
:proto D1 # 494
:proto D2 # 4D0
:proto D3 # 4EE
:proto D4 # 508
:proto D5 # 50E
:proto D6 # 510
:proto D7 # 514
:proto D8 # 515
:proto D9 # 516
:proto D10 # 51C
:proto D11 # 522
:proto D12 # 523
:proto D13 # 524
: main
jump L1
0x4a 0x6f 0x6e 0x61 0x73 0x20 0x4c 0x69 0x6e 0x64 0x73 0x74 0x65 0x64 0x74 0x0
: L1
hires
jump L11
: L2
v4 := 1
i := D6
vB := 0
vC := 59
loop
sprite vB vC 4
vB += 8
if vB != 128 then
again
v8 := 60
i := D4
v9 := 53
sprite v8 v9 6
v3 := 0
: L4
if v3 == 0 then jump L5
i := D5
sprite v2 v3 2
v3 := 0
: L5
vC := v4
vC += -1
vB := 3
vC &= vB
vB := 0
loop
if vC == 0 then jump L7
vB += 5
vC += -1
again
: L7
v1 := 0
loop
i := D3
i += vB
load v0
i := D9
i += v1
save v0
v1 += 1
vB += 1
if v1 != 6 then
again
vD := 8
vE := 5
v6 := 0
vA := 1
i := D9
v0 := vD
loop
sprite v0 vE 5
v0 += 20
if v0 != 108 then
again
Sub2
loop
Sub5
Sub1
Sub4
if vF == 66 then jump L4
Sub6
if v4 != 99 then
again
: L11
clear
i := D1
vD := 40
vE := 10
vC := 10
loop
sprite vD vE 10
vD += 8
i += vC
if vD != 88 then
again
i := D2
vD := 52
vE := 25
vC := 5
loop
sprite vD vE 5
vD += 8
i += vC
if vD != 76 then
again
vD := 45
vE := 40
vC := 5
loop
sprite vD vE 5
vD += 8
i += vC
if vD != 69 then
again
i := D8
load v0
i := D11
bcd v0
vC := 0
loop
i := D11
i += vC
load v0
i := hex v0
sprite vD vE 5
vD += 5
vC += 1
if vC != 3 then
again
vC := 10
loop
if vC -key then
again
i := D7
v0 := 0
v1 := 0
save v1
vC := 54
loop
scroll-down 1
vC += -1
if vC != 0 then
again
jump L2
: Sub1
if v3 != 0 then jump L21
vC := random 0b1111
if vC != 0 then jump L20
vC := random 0b111
vC += 1
vC >>= v5
i := D10
i += vC
load v0
if v0 == 0 then jump L20
v2 := vD
v3 := vE
v3 += 5
loop
if vC == 0 then jump L19
v2 += 20
vC += -1
again
: L19
i := D5
sprite v2 v3 2
if vF != 0 then jump L22
: L20
return
: L21
i := D5
sprite v2 v3 2
v3 += 1
if v3 != 58 then jump L19
v3 := 0
return
: L22
vC := 53
vB := v3
vB -= vC
if vF != 0 then v4 := 99
return
: Sub2
v0 := v4
v0 += 1
v0 >>= v5
vC := 0
loop
i := D10
i += vC
save v0
vC += 1
if vC != 5 then
again
i := D11
bcd v4
Sub3
vC := 120
delay := vC
loop
vC := delay
if vC != 0 then
again
Sub3
return
: Sub3
i := D12
load v0
i := bighex v0
vC := 55
vB := 27
sprite vC vB 10
i := D13
load v0
i := bighex v0
vC := 65
sprite vC vB 10
return
: Sub4
if v6 == 0 then jump L29
i := D5
sprite v5 v6 2
v6 += -1
if v6 == 0 then jump L29
sprite v5 v6 2
if vF == 0 then jump L29
vC := vE
vC += 5
vC -= v6
if vF == 0 then jump L30
sprite v5 v6 2
v5 += -5
v6 := 0
vC := vD
v0 := 0
loop
vB := vC
vB -= v5
if vF != 0 then jump L26
vC += 20
v0 += 1
again
: L26
i := D10
i += v0
load v0
v0 += -1
save v0
i := D9
if v0 == 0 then sprite vC vE 5
vC := 10
buzzer := vC
i := D7
load v0
vC := -1
v0 ^= vC
save v0
if v0 != 0 then jump L27
i := D8
load v0
v0 += 1
save v0
: L27
vC := 0
vB := 0
loop
i := D10
i += vC
load v0
if v0 != 0 then vB += 1
vC += 1
if vC != 5 then
again
if vB != 0 then jump L29
v4 += 1
vF := 66
: L29
return
: L30
i := D5
sprite v2 v3 2
sprite v5 v6 2
v3 := 0
v6 := 0
return
: Sub5
vB := 0
vC := 3
if vC key then vB := -1
vC := 12
if vC key then vB := 1
if vB == 0 then jump L31
if v8 == 1 then vB := 1
if v8 == 120 then vB := -1
i := D4
v9 := 53
sprite v8 v9 6
v8 += vB
sprite v8 v9 6
: L31
vC := 10
if vC -key then jump L32
if v6 != 0 then jump L32
v5 := v8
v6 := 53
i := D5
sprite v5 v6 2
: L32
return
: Sub6
v0 := delay
if v0 != 0 then jump L36
v0 := 10
delay := v0
v7 := 0
if vD != 33 then jump L33
vA := -1
jump L34
: L33
if vD != 7 then jump L35
vA := 1
: L34
v7 := 1
: L35
Sub7
: L36
return
: Sub7
vB := vD
vC := 0
loop
v9 := vB
v1 := vE
i := D10
i += vC
load v0
if v0 == 0 then jump L38
i := D9
sprite v9 v1 5
v9 += vA
v1 += v7
sprite v9 v1 5
: L38
vC += 1
vB += 20
if vC != 5 then
again
vD += vA
vE += v7
if vE == 48 then v4 := 99
return
: D1
0x3c 0xc 0x1e 0x1e 0x33 0x33 0x3f 0x61 0x61 0xf3 0x1f 0xc 0xc 0xc 0xc 0xc 0xc 0x8c 0x8c 0xdf 0x7 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x61 0xe7 0xe7 0x83 0x83 0x83 0x83 0x83 0x83 0x83 0x83 0xe7 0xfb 0x19 0x1 0x61 0xe1 0x61 0x1 0x1 0x19 0xfb 0x9f 0x86 0xc6 0xe6 0xe6 0xb6 0x9e 0x9e 0x8e 0xe6
: D2
0xe4 0x94 0xe7 0x90 0xf7 0x87 0x80 0x80 0x80 0x87 0x88 0x88 0x88 0x88 0xaf 0x66 0x88 0x48 0x28 0xc6 0x4c 0xaa 0xac 0xaa 0x4a 0xe0 0x88 0xc0 0x88 0xe0
: D3
0x0 0x0 0x18 0xff 0x3c 0x0 0x18 0x3c 0xff 0x81 0x42 0x3c 0x3c 0x3c 0x42 0x3c 0x5a 0x5a 0x7e 0x7e 0x0 0x0 0x24 0x3c 0x24 0x0
: D4
0x0 0x18 0x18 0x3c 0x7e 0xff
: D5
0x18 0x18
: D6
0xff 0x22 0x55 0x88
: D7
0x0
: D8
0x0
: D9
0x0 0x0 0x0 0x0 0x0 0x0
: D10
0x0 0x0 0x0 0x0 0x0 0x0
: D11
0x0
: D12
0x0
: D13
0x0 0x0
######################################################################
# INPUT: chip8/SuperChip Games/Ant - In Search of Coke [Erin S. Catto].ch8
######################################################################
# InvalidOpcode('0000',)
:proto L1 # 20E
:proto Sub1 # 24C
:proto Sub2 # 27A
:proto L5 # 2A4
:proto L6 # 2AE
:proto L7 # 2D0
:proto Sub3 # 2E6
:proto L8 # 316
:proto Sub4 # 31A
:proto L9 # 324
:proto L10 # 328
:proto L11 # 32C
:proto L12 # 358
:proto Sub5 # 35C
:proto Sub6 # 368
:proto L13 # 3C6
:proto Sub8 # 3DE
:proto Sub9 # 3FE
:proto L15 # 40C
:proto L16 # 424
:proto L17 # 428
:proto Sub10 # 42E
:proto Sub11 # 452
:proto Sub12 # 466
:proto Sub13 # 486
:proto L18 # 4A6
:proto L19 # 4B2
:proto Sub14 # 4C0
:proto Sub15 # 4C6
:proto L21 # 4D0
:proto Sub16 # 4E2
:proto Sub17 # 4F6
:proto Sub18 # 510
:proto L23 # 53C
:proto L25 # 568
:proto Sub19 # 57A
:proto Sub20 # 58C
:proto Sub21 # 5CC
:proto Sub22 # 5D4
:proto L27 # 5E0
:proto Sub23 # 5F0
:proto Sub24 # 5FC
:proto Sub25 # 622
:proto L29 # 62C
:proto Sub26 # 646
:proto Sub27 # 65C
:proto Sub28 # 668
:proto L31 # 680
:proto L32 # 6A8
:proto L33 # 6D0
:proto L34 # 6F6
:proto L35 # 71C
:proto L36 # 72E
:proto L37 # 740
:proto Sub29 # 748
:proto Sub30 # 772
:proto L38 # 790
:proto L39 # 79A
:proto L40 # 79E
:proto Sub31 # 7A4
:proto Sub32 # 7BA
:proto Sub33 # 7C6
:proto L41 # 7D6
:proto D1 # 7F2
:proto D2 # 812
:proto D3 # 910
:proto D4 # A0E
:proto D5 # A10
:proto D6 # A12
:proto D7 # A14
:proto D8 # A18
:proto D9 # A36
:proto D10 # A54
:proto D11 # A68
:proto D12 # AE8
:proto D13 # AF8
:proto D14 # B18
:proto D15 # B38
:proto D16 # B3C
:proto D17 # B5C
:proto D18 # BDC
:proto D19 # CDC
:proto D20 # D1C
:proto D21 # D5C
:proto D22 # D7C
: main
jump L1
0x5b 0x20 0x41 0x6e 0x74 0x20 0x76 0x31 0x2e 0x30 0x20 0x5d
: L1
hires
v0 := -2
v1 := 0
i := D5
save v1
Sub1
Sub5
v5 := 0
vA := 1
vB := 0
vD := 0
vE := 0
: L2
loop
Sub6
if vF != 0 then jump L13
if v5 == -3 then jump L7
: L3
if v7 == 204 then Sub2
if v1 == -5 then jump L21
if v1 == -4 then jump L25
if v1 == -6 then jump L27
if v1 == -7 then jump L29
v0 := 2
if v7 != 204 then Sub15
again
: Sub1
vE := 0
loop
i := D1
i += vE
v0 := 46
save v0
v0 += 9
v1 := 124
i := D12
sprite v1 v0 4
v0 := 1
Sub14
v0 := 2
Sub15
if vE != 31 then scroll-left
vE += 1
if vE != 32 then
again
v0 := 4
v1 := 4
i := D13
sprite v0 v1 0
return
: Sub2
if vB == 0 then Sub3
vB += -1
i := D6
load v1
i := D1
i += vE
save v0
vE += 1
v2 := 31
vE &= v2
if v1 == -2 then jump L5
if v1 == -1 then jump L6
v0 += 9
v2 := 124
i := D12
i += vD
sprite v2 v0 4
return
: L5
v0 += 7
v1 := 124
i := D15
sprite v1 v0 4
return
: L6
v1 := 0
if vB == 2 then v1 := 8
if vB == 1 then v1 := 16
if vB == 0 then v1 := 24
i := D14
i += v1
v1 := 124
v0 += 1
sprite v1 v0 8
v0 += 8
i := D12
i += vD
sprite v1 v0 4
return
: L7
if v7 == 204 then v3 += -4
i := D21
sprite v3 v4 0
if v3 != 0 then v3 += -4
if v3 != 0 then sprite v3 v4 0
if v3 == 0 then v5 := 0
jump L3
: Sub3
i := D5
load v1
v0 += 2
if v0 == -2 then Sub4
save v0
i := D2
if v1 == 1 then i := D3
i += v0
load v1
i := D6
save v1
v2 := -16
v2 =- v1
if vF == 0 then jump L8
if v1 == -2 then jump L9
if v1 == -1 then jump L10
if v1 == -3 then jump L11
jump L12
: L8
vB := v1
return
: Sub4
v1 := 1
v0 := 0
i := D5
save v1
return
: L9
vB := 12
return
: L10
vB := 4
return
: L11
vB := 1
v5 := -3
v4 := v0
v4 += -7
v0 := 112
i := D18
sprite v0 v4 0
v0 := 4
Sub14
v3 := 96
i := D21
sprite v3 v4 0
v0 := 2
Sub14
v0 := 2
Sub15
v0 := 1
Sub14
v0 := 112
i := D18
sprite v0 v4 0
return
: L12
vB := 1
return
: Sub5
v6 := 0
v8 := 46
vC := 0
i := D11
sprite v6 v8 0
return
: Sub6
v7 := 0
Sub10
Sub8
v2 := vC
v0 := 12
if v0 key then Sub12
v0 := 3
if v0 key then Sub13
v0 := v6
if v7 != 204 then v6 += v7
v1 := v8
v8 += v9
i := D11
i += v2
sprite v0 v1 0
if v7 == 204 then scroll-left
i := D11
i += vC
sprite v6 v8 0
return
: Sub7
v7 := 0
Sub10
Sub8
v2 := vC
v0 := 12
if v0 key then Sub12
if v7 == 204 then v7 := 4
v0 := 3
if v0 key then Sub13
v0 := v6
v6 += v7
v1 := v8
v8 += v9
i := D11
i += v2
sprite v0 v1 0
i := D11
i += vC
sprite v6 v8 0
return
: L13
v1 := 0
loop
sprite v6 v8 0
v0 := 2
Sub14
v0 := 2
Sub15
v1 += 1
if v1 != 7 then
again
v0 := 30
Sub15
exit
: Sub8
v0 := 10
if v0 -key then jump L15
if vA == 0 then return
if vA == 1 then Sub9
vA := 2
v9 := -4
i := D4
load v0
if v8 != v0 then return
vA := 0
v9 := -2
return
: Sub9
v0 := 2
Sub14
v0 := v8
v0 += -20
i := D4
save v0
return
: L15
if vA == 2 then jump L17
v0 := v6
Sub11
if v8 == v0 then jump L16
v0 := v6
v0 += 12
Sub11
if v8 == v0 then jump L16
return
: L16
vA := 1
return
: L17
vA := 0
v9 := -2
return
: Sub10
if vA == 2 then return
v0 := 4
if v9 == -2 then v0 := 2
v9 := v0
v0 := v6
Sub11
if v8 == v0 then v9 := 0
v0 := v6
v0 += 12
Sub11
if v8 == v0 then v9 := 0
if v9 == 4 then vA := 0
return
: Sub11
v0 >>= v5
v0 >>= v5
v0 += vE
v1 := 31
v0 &= v1
i := D1
i += v0
load v0
v1 := v0
return
: Sub12
v0 := 0
if vC == 0 then v0 := 32
vC := v0
v0 := v6
v0 += 16
Sub11
v0 -= v8
if vF == 0 then return
v7 := 4
if v6 == 56 then v7 := 204
if v1 == v8 then jump L19
return
: Sub13
v0 := 64
if vC == 64 then v0 := 96
vC := v0
if v6 == 0 then return
v0 := v6
v0 += -4
Sub11
v0 -= v8
if vF == 0 then return
v7 := -4
if v1 == v8 then jump L18
return
: L18
v0 := v6
Sub11
v0 =- v8
if vF == 0 then v9 := -4
return
: L19
v0 := v6
v0 += 12
Sub11
v0 =- v8
if vF == 0 then v9 := -4
return
: Sub14
buzzer := v0
v0 <<= v5
jump Sub15
: Sub15
delay := v0
loop
v0 := delay
if v0 != 0 then
again
return
: L21
Sub16
Sub17
loop
Sub7
if vF != 0 then jump L13
Sub18
if v6 == 112 then jump L23
again
: Sub16
loop
v0 := 1
Sub14
i := D11
i += vC
sprite v6 v8 0
v6 += -4
sprite v6 v8 0
if v6 != 0 then
again
return
: Sub17
v3 := 9
v4 := 37
v5 := 4
v0 := 24
i := D16
sprite v0 v3 0
v0 += 20
sprite v0 v4 0
v0 += 20
sprite v0 v3 0
v0 += 20
sprite v0 v4 0
return
: Sub18
if v3 == 9 then v5 := 4
if v3 == 37 then v5 := -4
i := D16
v0 := 24
v1 := v3
v3 += v5
sprite v0 v1 0
sprite v0 v3 0
v0 := 64
sprite v0 v1 0
sprite v0 v3 0
v0 := 44
v1 := v4
v4 -= v5
sprite v0 v1 0
sprite v0 v4 0
v0 := 84
sprite v0 v1 0
sprite v0 v4 0
return
: L23
vD += 4
loop
scroll-left
i := D1
i += vE
v0 := 42
save v0
v0 += 9
v1 := 124
i := D12
i += vD
sprite v1 v0 4
v0 := 1
Sub14
v0 := 2
Sub15
vE += 1
if vE == 32 then vE := 0
v6 += -4
if v6 != 0 then
again
jump L2
: L25
Sub16
Sub19
loop
Sub20
Sub7
if vF != 0 then jump L13
if v6 == 112 then jump L23
again
: Sub19
v0 := 112
v1 := 15
v2 := -2
v3 := 0
i := D7
save v3
i := D17
sprite v0 v1 0
return
: Sub20
i := D7
load v3
v4 := v2
if v2 == 2 then v4 := -2
if v2 == -2 then v4 := 2
if v1 == 17 then Sub21
if v1 == 33 then Sub22
v2 := v4
v4 := v3
v3 += 32
if v3 == 128 then v3 := 0
i := D17
i += v4
v4 := v1
v1 += v2
v5 := v0
v0 += -4
sprite v5 v4 0
i := D17
i += v3
if v5 != 0 then sprite v0 v1 0
i := D7
save v3
if v5 != 0 then return
jump Sub19
: Sub21
v4 := 4
if v2 == -4 then v4 := -2
return
: Sub22
v4 := -4
if v2 == 4 then v4 := 2
if v4 == 2 then buzzer := v4
return
: L27
Sub23
loop
Sub24
Sub7
if vF != 0 then jump L13
if v6 != 112 then
again
jump L23
: Sub23
v3 := 112
v4 := 15
v5 := 0
i := D22
sprite v3 v4 0
return
: Sub24
v0 := v3
v0 += 12
Sub11
v1 += -7
if v4 != v1 then Sub25
v0 := v3
v3 += -4
i := D22
i += v5
v5 += 32
sprite v0 v1 0
i := D22
i += v5
if v0 != 0 then sprite v3 v4 0
if v0 != 0 then return
jump Sub23
: Sub25
v1 := v4
v4 += 4
v0 := 2
buzzer := v0
return
: L29
Sub16
Sub27
vE := 0
Sub28
loop
Sub29
if vF != 0 then jump L13
if v6 == 112 then jump L41
Sub26
v0 := 3
Sub15
again
: Sub26
if vD == 0 then jump L33
if vD == 2 then jump L34
if vD == 4 then jump L32
if vD == 6 then jump L31
if vD == 8 then jump L36
jump L37
: Sub27
v3 := 104
v4 := 39
v5 := 0
i := D18
sprite v3 v4 0
return
: Sub28
vB := 0
v5 := 0
i := D10
i += vE
load v0
vD := v0
vE += 1
if vE == 20 then vE := 0
if vD == 8 then jump L35
return
: L31
v4 := 39
v2 := v5
v5 += 32
if v5 == 64 then v5 := 0
v0 := v3
v3 += 4
i := D19
i += v2
if v0 == 72 then i := D18
sprite v0 v4 0
i := D19
i += v5
if v3 == 104 then i := D18
sprite v3 v4 0
if v3 != 104 then return
jump Sub28
: L32
v4 := 39
v2 := v5
v5 += 32
if v5 == 64 then v5 := 0
v0 := v3
v3 += -4
i := D20
i += v2
if v0 == 104 then i := D18
sprite v0 v4 0
i := D20
i += v5
if v3 == 72 then i := D18
sprite v3 v4 0
if v3 != 72 then return
jump Sub28
: L33
i := D8
i += vB
load v2
i := D18
i += v5
sprite v3 v4 0
i := D18
i += v2
sprite v0 v1 0
v3 := v0
v4 := v1
v5 := v2
v0 := 1
if v5 == 32 then Sub14
vB += 3
if vB != 30 then return
jump Sub28
: L34
i := D9
i += vB
load v2
i := D18
i += v5
sprite v3 v4 0
i := D18
i += v2
sprite v0 v1 0
v3 := v0
v4 := v1
v5 := v2
v0 := 1
if v5 == 32 then Sub14
vB += 3
if vB != 30 then return
jump Sub28
: L35
v5 := v3
v5 += -16
i := D21
sprite v5 v4 0
v0 := 1
Sub14
v0 := 1
Sub14
return
: L36
v0 := v5
v5 += -4
i := D21
sprite v0 v4 0
if v0 != 0 then sprite v5 v4 0
if v0 != 0 then return
jump Sub28
: L37
v5 += 1
if v5 != 6 then return
jump Sub28
: Sub29
v7 := 0
Sub31
Sub30
v2 := vC
v0 := 12
if v0 key then Sub32
v0 := 3
if v0 key then Sub33
v0 := v6
v6 += v7
v1 := v8
v8 += v9
i := D11
i += v2
sprite v0 v1 0
i := D11
i += vC
sprite v6 v8 0
return
: Sub30
v0 := 10
if v0 -key then jump L38
if vA == 0 then return
v0 := 2
if vA == 1 then Sub14
vA := 2
v9 := -4
if v8 != 26 then return
vA := 0
v9 := -2
return
: L38
if vA == 2 then jump L40
if v8 == 46 then jump L39
return
: L39
vA := 1
return
: L40
vA := 0
v9 := -2
return
: Sub31
if vA == 2 then return
v0 := 4
if v9 == -2 then v0 := 2
v9 := v0
if v8 == 46 then v9 := 0
if v9 == 4 then vA := 0
return
: Sub32
v0 := 0
if vC == 0 then v0 := 32
vC := v0
v7 := 4
return
: Sub33
v0 := 64
if vC == 64 then v0 := 96
vC := v0
if v6 == 0 then return
v7 := -4
return
: L41
v0 := 1
saveflags v0
v0 := 2
Sub14
Sub15
v0 := 4
Sub14
Sub15
v0 := 8
Sub14
v0 := 30
Sub15
clear
exit
: D1
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D2
0x2a 0x4 0x26 0x4 0x22 0x4 0x1e 0x4 0x1a 0x4 0x16 0x8 0x2e 0xfe 0x16 0x8 0x1a 0x4 0x1e 0x4 0x22 0x4 0x26 0x4 0x2a 0x10 0x2a 0xfd 0x22 0x3 0x22 0xff 0x22 0x8 0x26 0x10 0x2e 0xfe 0x26 0x4 0x2a 0x4 0x2a 0xff 0x2a 0x6 0x2a 0xff 0x2a 0x6 0x26 0xa 0x26 0x6 0x2e 0xfe 0x26 0x4 0x22 0x4 0x1e 0x3 0x1e 0xfd 0x1a 0x4 0x16 0x8 0x1a 0xff 0x32 0xfe 0x2a 0x6 0x2a 0x1c 0x26 0x4 0x26 0xfc 0x1e 0x4 0x2e 0xfe 0x1a 0x5 0x16 0x4 0x2e 0xfe 0x26 0x8 0x26 0xff 0x26 0xff 0x1a 0x4 0x16 0x8 0x16 0xfd 0x2e 0xe 0x16 0x8 0x2e 0xfe 0x16 0x4 0x2e 0xfe 0x16 0x3 0x2e 0xfe 0x16 0x4 0x16 0xfd 0x2e 0xfe 0x26 0x8 0x2e 0x6 0x2a 0x4 0x26 0x4 0x22 0x4 0x1e 0x4 0x1a 0x4 0x16 0x4 0x32 0xff 0x32 0xff 0x32 0xff 0x32 0xff 0x2e 0x8 0x1e 0x4 0x22 0x4 0x26 0x4 0x2a 0x4 0x32 0xfe 0x2e 0x4 0x2e 0xfd 0x2a 0x4 0x16 0x3 0x2a 0x1c 0x26 0x4 0x26 0xfb 0x32 0xfe 0x2a 0x4 0x26 0x4 0x22 0x4 0x1e 0x4 0x1a 0x4 0x16 0x4 0x1a 0xff 0x22 0xff 0x2a 0xff 0x26 0x4 0x1e 0x4 0x32 0xfe 0x16 0x3 0x32 0xfe 0x1e 0x3 0x32 0xfe 0x16 0x3 0x16 0xfd 0x32 0xfe 0x1e 0x3 0x32 0xfe 0x16 0x3 0x2e 0xff 0x2e 0xff 0x2e 0xff 0x2e 0x8 0x2a 0x4 0x16 0x6 0x2e 0x4 0x2a 0x4 0x26 0x4 0x22 0x4 0x1e 0x4 0x1a 0x4 0x16 0x8 0x16 0xfa 0x2e 0x4 0x2e 0xfd 0x22 0x3 0x1e 0x4
: D3
0x2e 0x2 0x26 0x2 0x16 0x3 0x1a 0x2 0x26 0x5 0x26 0xff 0x2e 0x6 0x1a 0x3 0x1e 0x3 0x22 0x6 0x26 0x4 0x26 0xfd 0x16 0x6 0x32 0xfe 0x32 0xff 0x2e 0x6 0x1a 0x3 0x16 0x3 0x1e 0x2 0x22 0x2 0x26 0x6 0x1a 0x4 0x1e 0x6 0x1e 0xfd 0x32 0xfe 0x26 0x4 0x16 0x3 0x22 0x3 0x1a 0x5 0x1a 0xff 0x16 0x3 0x16 0xfd 0x2e 0x6 0x1e 0x2 0x1a 0x2 0x16 0x4 0x32 0xfe 0x1e 0x4 0x1e 0xfd 0x2e 0x8 0x2e 0xff 0x2a 0x6 0x16 0x4 0x1a 0x1 0x16 0x1 0x1a 0x1 0x16 0x1 0x1a 0x1 0x16 0x1 0x1a 0x1 0x16 0x1 0x1a 0x1 0x16 0x1 0x1a 0x1 0x16 0x1 0x1a 0x1 0x16 0x1 0x1a 0x1 0x16 0x1 0x1a 0x1 0x16 0x1 0x1a 0x1 0x16 0x1 0x1a 0x1 0x16 0x1 0x1a 0x1 0x16 0x4 0x1a 0x4 0x1a 0xfd 0x16 0x4 0x32 0xfe 0x32 0xff 0x2e 0x5 0x2a 0x2 0x26 0x3 0x22 0x2 0x1e 0x3 0x1a 0x2 0x16 0x3 0x1a 0x2 0x1e 0xff 0x2e 0x6 0x22 0x2 0x16 0x8 0x16 0xfd 0x2e 0x6 0x16 0x3 0x2e 0x6 0x16 0x3 0x2e 0x6 0x16 0x3 0x2e 0x6 0x16 0x3 0x16 0xff 0x16 0x2 0x2e 0x6 0x16 0x3 0x1e 0xfe 0x1a 0x5 0x1e 0x4 0x22 0x3 0x26 0x2 0x2a 0x1 0x2e 0x5 0x2e 0xff 0x2a 0x4 0x2e 0x4 0x2e 0xff 0x22 0x4 0x2e 0x5 0x2a 0xff 0x2e 0x6 0x2e 0xff 0x2e 0x5 0x2e 0xff 0x2e 0x5 0x2e 0xff 0x2a 0x4 0x32 0xfe 0x2e 0x3 0x2e 0xfd 0x2e 0xff 0x1a 0x4 0x1e 0xfe 0x1a 0x4 0x2e 0x22 0x2e 0xf9
: D4
0x0 0x0
: D5
0xfe 0x0
: D6
0x0 0x0
: D7
0x0 0x0 0x0 0x0
: D8
0x68 0x27 0x20 0x64 0x1d 0x40 0x60 0x15 0x60 0x5c 0xf 0x80 0x58 0x11 0xa0 0x54 0xf 0xc0 0x50 0x15 0xe0 0x4c 0x1d 0x40 0x48 0x27 0x20 0x48 0x27 0x0
: D9
0x48 0x27 0x20 0x4c 0x1d 0x40 0x50 0x15 0xe0 0x54 0xf 0xc0 0x58 0x11 0xa0 0x5c 0xf 0x80 0x60 0x15 0x60 0x64 0x1d 0x40 0x68 0x27 0x20 0x68 0x27 0x0
: D10
0x0 0xa 0x8 0x6 0x4 0x8 0x2 0xa 0x8 0x0 0x6 0x8 0xa 0x0 0x2 0x8 0x4 0x2 0xa 0x8
: D11
0x0 0x11 0x0 0xa 0x78 0xe 0xdd 0xdb 0xbf 0xff 0xff 0xee 0x7a 0xe0 0xa5 0x50 0xa5 0x50 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x11 0x0 0xa 0x78 0xe 0xdd 0xdb 0xbf 0xff 0xff 0xee 0x39 0xf0 0x52 0xa8 0x52 0xa8 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x88 0x0 0x50 0x0 0x70 0x1e 0xdb 0xbb 0xff 0xfd 0x77 0xff 0x7 0x5e 0xa 0xa5 0xa 0xa5 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x88 0x0 0x50 0x0 0x70 0x1e 0xdb 0xbb 0xff 0xfd 0x77 0xff 0xf 0x9c 0x15 0x4a 0x15 0x4a 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D12
0xf0 0x0 0xf0 0x50 0xe0 0xb0 0xe0 0xb0 0xf0 0x20 0x80 0xf0 0xf0 0x90 0x90 0xf0
: D13
0x0 0x80 0x0 0xc0 0x0 0xe0 0x0 0xf0 0xff 0xf8 0xff 0xfc 0xff 0xfe 0xff 0xff 0xff 0xfe 0xff 0xfc 0xff 0xf8 0x0 0xf0 0x0 0xe0 0x0 0xc0 0x0 0x80 0x0 0x0
: D14
0xf0 0x80 0xb0 0xa0 0xb0 0xa0 0x80 0x80 0xf0 0x0 0x10 0xa0 0x30 0xa0 0x0 0x0 0xf0 0x0 0x20 0xa0 0xa0 0xa0 0x0 0x0 0xf0 0x10 0xd0 0xb0 0xb0 0xd0 0x10 0x10
: D15
0x20 0x30 0x70 0xf0
: D16
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1f 0x0 0x21 0x0 0x31 0x0 0xc1 0x3 0x2d 0x7c 0x8d 0x82 0x1 0xff 0xff 0x7f 0xff 0x0 0x0 0x0 0x0 0x0 0x0
: D17
0x19 0xc0 0x26 0x20 0x40 0x10 0x80 0x8 0x81 0x8 0x40 0x88 0x20 0x44 0x20 0x42 0x40 0x42 0x80 0x82 0x80 0x2 0x40 0xc 0x20 0x70 0x10 0x80 0xf 0x0 0x0 0x0 0x0 0x0 0x1 0xe0 0x2 0x10 0x1c 0x10 0x20 0x8 0x40 0x8 0x83 0x88 0x84 0x44 0x88 0x2 0x40 0x2 0x40 0x2 0x80 0x2 0x80 0x4 0x43 0x8 0x24 0x90 0x18 0x60 0x0 0x0 0x0 0xf0 0x1 0x8 0xe 0x4 0x30 0x2 0x40 0x1 0x41 0x1 0x42 0x2 0x42 0x4 0x22 0x4 0x11 0x2 0x10 0x81 0x10 0x1 0x8 0x2 0x4 0x64 0x3 0x98 0x6 0x18 0x9 0x24 0x10 0xc2 0x20 0x1 0x40 0x1 0x40 0x2 0x40 0x2 0x40 0x11 0x22 0x21 0x11 0xc1 0x10 0x2 0x10 0x4 0x8 0x38 0x8 0x40 0x7 0x80 0x0 0x0
: D18
0x1 0xf0 0x2 0x8 0x2 0x88 0x76 0x8 0xf2 0x8 0x59 0xf0 0x54 0x40 0x53 0xc0 0x70 0x60 0x0 0x50 0x0 0x48 0x0 0xa4 0x1 0x20 0xa 0x10 0x4 0x8 0x0 0x10 0x0 0x0 0x0 0x0 0x3 0xe0 0x4 0x10 0x5 0x10 0xc 0x10 0x4 0x10 0x3b 0xe0 0x78 0x80 0x2f 0xc0 0x28 0xa0 0x28 0x90 0x3b 0x90 0x2 0x80 0x2 0xe0 0x6 0x20 0x1 0xf0 0x2 0x8 0x2 0x88 0x76 0x8 0xf2 0x8 0x59 0xf2 0x54 0x44 0x53 0xf8 0x70 0x40 0x0 0x40 0x0 0x40 0x0 0xa0 0x1 0x10 0xa 0x8 0x4 0x4 0x0 0x8 0x4 0x0 0xa 0x0 0x11 0x20 0x20 0xa0 0x49 0x20 0x22 0x40 0x15 0x80 0x19 0x80 0x42 0x40 0xfc 0x20 0x50 0x1f 0xa8 0x11 0x14 0x10 0x8 0x10 0x0 0x30 0x0 0x0 0x0 0x0 0x4 0x0 0x2 0x2 0x79 0x5 0x85 0x8 0x85 0x10 0x87 0xe0 0xa5 0x10 0x85 0x8 0x79 0x4 0x12 0x2 0x4 0x4 0x1f 0x80 0x18 0x80 0x1f 0x80 0x8 0x0 0x10 0x0 0x20 0x20 0x10 0x50 0x8 0x80 0x5 0x0 0x2 0x0 0x2 0x0 0x2 0xe 0x1f 0xca 0x22 0x2a 0x4f 0x9a 0x10 0x4f 0x10 0x6e 0x11 0x40 0x10 0x40 0xf 0x80 0x0 0x10 0x1 0xf8 0x1 0x18 0x1 0xf8 0x20 0x20 0x40 0x48 0x20 0x9e 0x10 0xa1 0x8 0xa5 0x7 0xe1 0x8 0xa1 0x10 0xa1 0xa0 0x9e 0x40 0x40 0x0 0x20 0x0 0x0 0x14 0x0 0xe 0x20 0x14 0x50 0x2d 0x88 0x55 0x24 0x24 0x82 0x2 0x44 0x1 0xa8 0x1 0x90 0x2 0x40 0x84 0x38 0xf8 0x0 0x8 0x0 0x8 0x0 0x8 0x0 0x18 0x0
: D19
0xf 0x80 0x10 0x40 0x11 0x40 0x10 0x6e 0x10 0x4f 0xf 0x9a 0x2 0x2a 0x7 0xca 0xa 0xe 0x12 0x0 0x12 0x0 0x5 0x0 0x8 0x80 0x10 0x50 0x20 0x20 0x10 0x0 0xf 0x80 0x10 0x40 0x11 0x40 0x10 0x6e 0x10 0x4f 0xf 0x9a 0x2 0x2a 0x7 0xca 0x6 0xe 0x6 0x0 0x3 0x0 0x2 0x0 0x2 0x0 0x6 0x0 0xa 0x0 0x7 0x0
: D20
0x1 0xf0 0x2 0x8 0x2 0x88 0x76 0x8 0xf2 0x8 0x59 0xf0 0x54 0x40 0x53 0xe0 0x70 0x50 0x0 0x48 0x0 0x48 0x0 0xa0 0x1 0x10 0xa 0x8 0x4 0x4 0x0 0x8 0x1 0xf0 0x2 0x8 0x2 0x88 0x76 0x8 0xf2 0x8 0x59 0xf0 0x54 0x40 0x53 0xe0 0x70 0x60 0x0 0x60 0x0 0xc0 0x0 0x40 0x0 0x40 0x0 0x60 0x0 0x50 0x0 0xe0
: D21
0x3c 0x0 0x6b 0x0 0xd5 0x40 0xaa 0xa8 0xd5 0x55 0xaa 0xa8 0xd5 0x40 0x6b 0x0 0x3c 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D22
0x0 0x0 0x7 0xc0 0x18 0x30 0x20 0x8 0x40 0x4 0x4c 0x64 0x9e 0xf2 0x96 0xb2 0x8c 0x62 0x80 0x2 0x80 0x2 0x43 0x84 0x44 0x44 0x20 0x8 0x18 0x30 0x7 0xc0 0x0 0x0 0x7 0xc0 0x18 0x30 0x20 0x8 0x40 0xc4 0x41 0xe4 0x81 0xa2 0x8c 0xc2 0x9e 0x2 0x9a 0x1a 0x8c 0x22 0x40 0x44 0x40 0x84 0x20 0x88 0x18 0x30 0x7 0xc0 0x0 0x0 0x7 0xc0 0x18 0x30 0x20 0x8 0x46 0x4 0x4f 0x4 0x8d 0x12 0x86 0x22 0x80 0x22 0x86 0x22 0x8f 0x12 0x4d 0x4 0x46 0x4 0x20 0x8 0x18 0x30 0x7 0xc0 0x0 0x0 0x7 0xc0 0x18 0x30 0x20 0x88 0x40 0x84 0x4c 0x44 0x9a 0x22 0x9e 0x1a 0x8c 0x2 0x81 0x82 0x83 0x42 0x43 0xc4 0x41 0x84 0x20 0x8 0x18 0x30 0x7 0xc0 0x0 0x0 0x7 0xc0 0x18 0x30 0x20 0x8 0x44 0x44 0x43 0x84 0x80 0x2 0x80 0x2 0x8c 0x62 0x9a 0xd2 0x9e 0xf2 0x4c 0x64 0x40 0x4 0x20 0x8 0x18 0x30 0x7 0xc0 0x0 0x0 0x7 0xc0 0x18 0x30 0x22 0x8 0x42 0x4 0x44 0x64 0x88 0xb2 0xb0 0xf2 0x80 0x62 0x83 0x2 0x85 0x82 0x47 0x84 0x43 0x4 0x20 0x8 0x18 0x30 0x7 0xc0 0x0 0x0 0x7 0xc0 0x18 0x30 0x20 0x8 0x40 0xc4 0x41 0x64 0x91 0xe2 0x88 0xc2 0x88 0x2 0x88 0xc2 0x91 0x62 0x41 0xe4 0x40 0xc4 0x20 0x8 0x18 0x30 0x7 0xc0 0x0 0x0 0x7 0xc0 0x18 0x30 0x20 0x8 0x43 0x4 0x47 0x84 0x85 0x82 0x83 0x2 0x80 0x62 0xb0 0xf2 0x88 0xb2 0x44 0x64 0x42 0x4 0x22 0x8 0x18 0x30 0x7 0xc0
######################################################################
# INPUT: chip8/SuperChip Games/Blinky [Hans Christian Egeberg, 1991].ch8
######################################################################
:proto L1 # 21A
:proto L6 # 27E
:proto L7 # 2A0
:proto L8 # 2BC
:proto L9 # 2D2
:proto L10 # 2EE
:proto L11 # 30A
:proto L12 # 322
:proto L17 # 3D8
:proto Sub1 # 3E2
:proto L21 # 444
:proto L22 # 45C
:proto L23 # 474
:proto L24 # 48C
:proto L25 # 4A4
:proto L26 # 4AC
:proto L27 # 4C4
:proto L28 # 4E4
:proto L29 # 4F6
:proto L30 # 4FE
:proto Sub2 # 508
:proto L32 # 536
:proto L33 # 568
:proto L34 # 586
:proto L35 # 59E
:proto L36 # 5B6
:proto L37 # 5CE
:proto L38 # 5E6
:proto L40 # 5F6
:proto L41 # 604
:proto L42 # 610
:proto L43 # 61C
:proto L44 # 626
:proto Sub3 # 630
:proto L46 # 65E
:proto L47 # 690
:proto L48 # 6AE
:proto L49 # 6C8
:proto L50 # 6E2
:proto L51 # 6FC
:proto L52 # 716
:proto L54 # 728
:proto L55 # 736
:proto L56 # 742
:proto L57 # 74E
:proto L58 # 758
:proto Sub4 # 762
:proto Sub5 # 786
:proto Sub6 # 7A8
:proto Sub7 # 7D0
:proto Sub8 # 7D4
:proto Sub9 # 7F0
:proto Sub10 # 800
:proto L63 # 826
:proto L65 # 84E
:proto L67 # 86E
:proto L69 # 888
:proto Sub11 # 894
:proto Sub12 # 8A4
:proto L70 # 8BC
:proto Sub13 # 8C2
:proto L72 # 8DE
:proto D1 # 8E2
:proto D2 # 8E4
:proto D3 # 8E6
:proto D4 # 8E8
:proto D5 # 928
:proto D6 # 930
:proto D7 # 938
:proto D8 # 940
:proto D9 # 980
:proto D10 # B80
:proto D11 # BA0
:proto D12 # BC0
:proto D13 # BE0
: main
jump L1
0x32 0x2e 0x30 0x30 0x20 0x43 0x2e 0x20 0x45 0x67 0x65 0x62 0x65 0x72 0x67 0x20 0x31 0x38 0x2f 0x38 0x2d 0x27 0x39 0x31
: L1
hires
v0 ^= v0
v1 ^= v1
i := D1
save v1
v0 := 5
i := D3
save v0
v7 ^= v7
: L2
v6 ^= v6
Sub5
clear
Sub6
: L3
vE := 64
v7 &= vE
vE := 39
v7 |= vE
v8 := 52
v9 := 24
vA := 112
vB := 0
vC := 4
vD := 52
Sub4
i := D5
sprite vA vB 8
sprite vC vD 8
loop
Sub1
if vE != 0 then jump L6
: L5
i := D3
load v0
v5 := v0
v4 := random 0b11111111
v4 &= v5
Sub2
v4 := random 0b11111111
v4 &= v5
Sub3
v0 := 1
if v0 key then Sub9
if v6 != -9 then
again
vE := v6
Sub11
vE := 100
Sub11
Sub9
jump L2
: L6
v0 := delay
if v0 == 0 then jump L12
v0 := v8
v0 >>= v0
v0 >>= v0
v1 := vA
v1 >>= v0
v1 >>= v0
v0 -= v1
if v0 == 0 then jump L7
if v0 == 1 then jump L7
if v0 == -1 then jump L7
jump L9
: L7
v0 := v9
v0 >>= v0
v0 >>= v0
v1 := vB
v1 >>= v0
v1 >>= v0
v0 -= v1
if v0 == 0 then jump L8
if v0 == 1 then jump L8
if v0 == -1 then jump L8
jump L9
: L8
i := D5
sprite vA vB 8
vA := 112
vB := 0
sprite vA vB 8
vE := -13
v7 &= vE
vE := 4
v7 |= vE
vE := 50
Sub11
: L9
v0 := v8
v0 >>= v0
v0 >>= v0
v1 := vC
v1 >>= v0
v1 >>= v0
v0 -= v1
if v0 == 0 then jump L10
if v0 == 1 then jump L10
if v0 == -1 then jump L10
jump L5
: L10
v0 := v9
v0 >>= v0
v0 >>= v0
v1 := vD
v1 >>= v0
v1 >>= v0
v0 -= v1
if v0 == 0 then jump L11
if v0 == 1 then jump L11
if v0 == -1 then jump L11
jump L5
: L11
i := D5
sprite vC vD 8
vC := 4
vD := 52
sprite vC vD 8
vE := 207
v7 &= vE
vE := 32
v7 |= vE
vE := 25
Sub11
jump L5
: L12
v0 := 63
Sub13
Sub4
i := D5
sprite vA vB 8
sprite vC vD 8
vE := 64
v7 ^= vE
v0 := v7
v0 &= vE
if v0 != 0 then jump L3
vE := v6
Sub11
Sub12
clear
v6 := 36
v7 := 20
i := D2
Sub10
v6 := 36
v7 := 32
i := D1
Sub10
v4 := 0
v5 := 16
v6 := 1
v7 := 15
: L13
loop
i := D10
sprite v4 v6 0
i := D11
sprite v5 v6 0
v0 := 3
Sub13
if vE != 0 then jump L17
i := D10
sprite v4 v6 0
i := D11
sprite v5 v6 0
v4 += 4
v5 += 4
if v4 != 96 then
again
loop
i := D10
sprite v4 v6 0
i := D11
sprite v5 v6 0
v0 := 3
Sub13
if vE != 0 then jump L17
i := D10
sprite v4 v6 0
i := D11
sprite v5 v6 0
v6 += 4
if v6 != 45 then
again
loop
i := D10
sprite v4 v6 0
i := D11
sprite v5 v6 0
v0 := 3
Sub13
if vE != 0 then jump L17
i := D10
sprite v4 v6 0
i := D11
sprite v5 v6 0
v4 += -4
v5 += -4
if v4 != 0 then
again
loop
i := D10
sprite v4 v6 0
i := D11
sprite v5 v6 0
v0 := 3
Sub13
if vE != 0 then jump L17
i := D10
sprite v4 v6 0
i := D11
sprite v5 v6 0
v6 += -4
if v6 != 1 then
again
jump L13
: L17
i := D11
sprite v5 v6 0
i := D12
sprite v5 v6 0
jump L1
: Sub1
v3 := v7
vE := 3
v3 &= vE
v4 := v8
v5 := v9
vE := 6
if vE key then jump L21
vE := 3
if vE key then jump L22
vE := 8
if vE key then jump L23
vE := 7
if vE key then jump L24
: L18
if v3 == 3 then v5 += 4
if v3 == 0 then v5 += -4
if v3 == 2 then v4 += 4
if v3 == 1 then v4 += -4
v0 := v4
v1 := v5
Sub7
v2 := v0
vE := 8
v0 &= vE
: L19
if v0 != 0 then jump L25
vE := 7
v0 := v2
v2 &= vE
if v2 == 5 then jump L26
if v2 == 6 then jump L27
if v2 == 7 then jump L30
: L20
Sub4
vE := -4
v7 &= vE
v7 |= v3
v8 := v4
v9 := v5
jump Sub4
: L21
v0 := v4
v1 := v5
v1 += 4
Sub7
v2 := v0
vE := 8
v0 &= vE
if v0 != 0 then jump L18
v3 := 3
v5 += 4
jump L19
: L22
v0 := v4
v1 := v5
v1 += -4
Sub7
v2 := v0
vE := 8
v0 &= vE
if v0 != 0 then jump L18
v3 := 0
v5 += -4
jump L19
: L23
v0 := v4
v1 := v5
v0 += 4
Sub7
v2 := v0
vE := 8
v0 &= vE
if v0 != 0 then jump L18
v3 := 2
v4 += 4
jump L19
: L24
v0 := v4
v1 := v5
v0 += -4
Sub7
v2 := v0
vE := 8
v0 &= vE
if v0 != 0 then jump L18
v3 := 1
v4 += -4
jump L19
: L25
Sub4
sprite v8 v9 8
vE := vF
return
: L26
vE := -16
v0 &= vE
v0 |= v3
save v0
i := D6
sprite v4 v5 8
v6 += 1
v1 := 5
v0 := delay
if v0 == 0 then buzzer := v1
jump L20
: L27
vE := -16
v0 &= vE
v0 |= v3
save v0
i := D7
sprite v4 v5 8
v6 += 4
v0 := vA
v1 := vB
Sub7
vE := -16
v0 &= vE
if v0 != 0 then jump L28
vE := 12
v7 ^= vE
: L28
v0 := vC
v1 := vD
Sub7
vE := -16
v0 &= vE
if v0 != 0 then jump L29
vE := 48
v7 ^= vE
: L29
v0 := -1
buzzer := v0
delay := v0
jump L20
: L30
if v3 == 1 then v4 := 116
if v3 == 2 then v4 := 0
jump L20
: Sub2
v2 := v7
v3 := v7
vE := 12
v2 &= vE
v0 := vA
v1 := vB
Sub7
i := D5
vE := -16
v0 &= vE
if v0 != 0 then jump L32
: L31
sprite vA vB 8
if v2 == 12 then vB += 4
if v2 == 0 then vB += -4
if v2 == 8 then vA += 4
if v2 == 4 then vA += -4
sprite vA vB 8
return
: L32
vE := 128
v1 := delay
if v1 != 0 then jump L38
if v4 != 0 then jump L38
v1 := v0
v3 <<= v0
if vF != 0 then jump L33
v3 := v9
v3 -= vB
if vF == 0 then jump L35
if v3 != 0 then jump L34
v7 ^= vE
v3 := v8
v3 -= vA
if vF == 0 then jump L37
if v3 != 0 then jump L36
v7 ^= vE
jump L38
: L33
v3 := v8
v3 -= vA
if vF == 0 then jump L37
if v3 != 0 then jump L36
v7 ^= vE
v3 := v9
v3 -= vB
if vF == 0 then jump L35
if v3 != 0 then jump L34
v7 ^= vE
jump L38
: L34
v3 := 64
v1 &= v3
if v1 == 0 then jump L38
sprite vA vB 8
vB += 4
sprite vA vB 8
vE := -13
v7 &= vE
v2 := 12
v7 |= v2
return
: L35
v3 := 16
v1 &= v3
if v1 == 0 then jump L38
sprite vA vB 8
vB += -4
sprite vA vB 8
vE := -13
v7 &= vE
v2 := 0
v7 |= v2
return
: L36
v3 := 32
v1 &= v3
if v1 == 0 then jump L38
sprite vA vB 8
vA += 4
sprite vA vB 8
vE := -13
v7 &= vE
v2 := 8
v7 |= v2
return
: L37
v3 := 128
v1 &= v3
if v1 == 0 then jump L38
sprite vA vB 8
vA += -4
sprite vA vB 8
vE := -13
v7 &= vE
v2 := 4
v7 |= v2
return
: L38
v1 := random 0b11110000
v0 &= v1
if v0 != 0 then jump L40
: L39
vE := 12
v7 ^= vE
v2 ^= vE
jump L31
: L40
sprite vA vB 8
v0 <<= v0
if vF == 0 then jump L41
v2 := 4
vA += -4
jump L44
: L41
v0 <<= v0
if vF == 0 then jump L42
v2 := 12
vB += 4
jump L44
: L42
v0 <<= v0
if vF == 0 then jump L43
v2 := 8
vA += 4
jump L44
: L43
v0 <<= v0
if vF == 0 then jump L39
v2 := 0
vB += -4
: L44
sprite vA vB 8
vE := -13
v7 &= vE
v7 |= v2
return
: Sub3
v2 := v7
v3 := v7
vE := 48
v2 &= vE
v0 := vC
v1 := vD
Sub7
i := D5
vE := -16
v0 &= vE
if v0 != 0 then jump L46
: L45
sprite vC vD 8
if v2 == 48 then vD += 4
if v2 == 0 then vD += -4
if v2 == 32 then vC += 4
if v2 == 16 then vC += -4
sprite vC vD 8
return
: L46
vE := 128
v1 := delay
if v1 != 0 then jump L52
if v4 != 0 then jump L52
v1 := v0
v3 <<= v0
if vF == 0 then jump L47
v3 := v9
v3 -= vD
if vF == 0 then jump L49
if v3 != 0 then jump L48
v7 ^= vE
v3 := v8
v3 -= vC
if vF == 0 then jump L51
if v3 != 0 then jump L50
v7 ^= vE
jump L52
: L47
v3 := v8
v3 -= vC
if vF == 0 then jump L51
if v3 != 0 then jump L50
v7 ^= vE
v3 := v9
v3 -= vD
if vF == 0 then jump L49
if v3 != 0 then jump L48
v7 ^= vE
jump L52
: L48
v3 := 64
v1 &= v3
if v1 == 0 then jump L52
sprite vC vD 8
vD += 4
sprite vC vD 8
v7 ^= vE
vE := 207
v7 &= vE
v2 := 48
v7 |= v2
return
: L49
v3 := 16
v1 &= v3
if v1 == 0 then jump L52
sprite vC vD 8
vD += -4
sprite vC vD 8
v7 ^= vE
vE := 207
v7 &= vE
v2 := 0
v7 |= v2
return
: L50
v3 := 32
v1 &= v3
if v1 == 0 then jump L52
sprite vC vD 8
vC += 4
sprite vC vD 8
v7 ^= vE
vE := 207
v7 &= vE
v2 := 32
v7 |= v2
return
: L51
v3 := 128
v1 &= v3
if v1 == 0 then jump L52
sprite vC vD 8
vC += -4
sprite vC vD 8
v7 ^= vE
vE := 207
v7 &= vE
v2 := 16
v7 |= v2
return
: L52
v1 := random 0b11110000
v0 &= v1
if v0 != 0 then jump L54
: L53
v7 ^= vE
vE := 48
v7 ^= vE
v2 ^= vE
jump L45
: L54
sprite vC vD 8
v0 <<= v0
if vF == 0 then jump L55
v2 := 144
vC += -4
jump L58
: L55
v0 <<= v0
if vF == 0 then jump L56
v2 := 48
vD += 4
jump L58
: L56
v0 <<= v0
if vF == 0 then jump L57
v2 := 160
vC += 4
jump L58
: L57
v0 <<= v0
if vF == 0 then jump L53
v2 := 0
vD += -4
: L58
sprite vC vD 8
vE := 79
v7 &= vE
v7 |= v2
return
: Sub4
v0 := v7
vE := 3
v0 &= vE
v0 <<= v0
v1 := v8
v1 += v9
vE := 4
v1 &= vE
if v1 == 0 then v0 += 1
v0 <<= v0
v0 <<= v0
v0 <<= v0
i := D4
i += v0
sprite v8 v9 8
vE := vF
return
: Sub5
vE := 0
loop
i := D9
i += vE
i += vE
i += vE
i += vE
load v3
i := D13
i += vE
i += vE
i += vE
i += vE
save v3
vE += 1
if vE != 128 then
again
return
: Sub6
v2 ^= v2
v3 ^= v3
vE := 15
: L60
loop
v0 := v2
v1 := v3
Sub8
v0 &= vE
v0 <<= v0
v0 <<= v0
i := D8
i += v0
sprite v2 v3 4
v2 += 4
if v2 != 128 then jump L60
v2 ^= v2
v3 += 4
if v3 == 64 then return
again
: Sub7
v0 += 4
v1 += 4
: Sub8
v0 >>= v0
v0 >>= v0
v1 >>= v0
v1 >>= v0
v1 <<= v0
v1 <<= v0
v1 <<= v0
v1 <<= v0
i := D13
i += v1
i += v1
i += v0
load v0
return
: Sub9
i := D3
load v0
v0 >>= v0
save v0
v0 := 1
loop
if v0 key then
again
return
: Sub10
load v1
vE := 1
v4 ^= v4
v2 := v0
v3 := v1
loop
v5 := 16
v3 -= v5
if vF == 0 then v2 -= vE
if vF == 0 then jump L63
v5 := 39
v2 -= v5
if vF == 0 then jump L63
v0 := v2
v1 := v3
v4 += vE
again
: L63
i := bighex v4
sprite v6 v7 10
v6 += 12
v4 ^= v4
v2 := v0
v3 := v1
loop
v5 := -24
v3 -= v5
if vF == 0 then v2 -= vE
if vF == 0 then jump L65
v5 := 3
v2 -= v5
if vF == 0 then jump L65
v0 := v2
v1 := v3
v4 += vE
again
: L65
i := bighex v4
sprite v6 v7 10
v6 += 12
v4 ^= v4
v2 := v0
v3 := v1
loop
v5 := 100
v3 -= v5
if vF == 0 then v2 -= vE
if vF == 0 then jump L67
v0 := v2
v1 := v3
v4 += vE
again
: L67
i := bighex v4
sprite v6 v7 10
v6 += 12
v4 ^= v4
v2 := v0
v3 := v1
loop
v5 := 10
v3 -= v5
if vF == 0 then jump L69
v1 := v3
v4 += vE
again
: L69
i := bighex v4
sprite v6 v7 10
v6 += 12
i := bighex v1
sprite v6 v7 10
return
: Sub11
i := D1
load v1
v1 += vE
if vF != 0 then v0 += 1
i := D1
save v1
return
: Sub12
i := D1
load v3
vE := v0
vE -= v2
if vF == 0 then return
if vE != 0 then jump L70
vE := v1
vE -= v3
if vF == 0 then return
: L70
i := D2
save v1
return
: Sub13
vE ^= vE
v2 := 15
v3 := -1
v1 := 16
: L71
loop
if v2 key then jump L72
v1 += v3
if v1 != 0 then jump L71
v1 := 16
v0 += v3
if v0 != 0 then
again
return
: L72
vE := 1
return
: D1
0x0 0x0
: D2
0x0 0x0
: D3
0x5 0x0
: D4
0x0 0x22 0x63 0x63 0x77 0x7f 0x3e 0x1c 0x0 0x1c 0x1e 0x5d 0x5d 0x6f 0x3e 0x1c 0x0 0x3c 0x7e 0xf 0x7 0xf 0x7e 0x3c 0x0 0x1c 0x26 0x7f 0x7f 0x7b 0x6 0x1c 0x0 0x1e 0x3f 0x78 0x70 0x78 0x3f 0x1e 0x0 0x1c 0x32 0x7f 0x7f 0x6f 0x30 0x1c 0x0 0x1c 0x3e 0x7f 0x77 0x63 0x63 0x22 0x0 0x1c 0x3e 0x6f 0x5d 0x5d 0x1e 0x1c
: D5
0x0 0x1c 0x3e 0x49 0x77 0x7f 0x63 0x7f
: D6
0x0 0x0 0x0 0x0 0x8 0x0 0x0 0x0
: D7
0x0 0x0 0x0 0x0 0x8 0x8 0x0 0x0
: D8
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x80 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x80 0x80 0x80 0x80 0x0 0x0 0x0 0x0 0xf0 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0xf0 0x0 0x0 0x0 0x80 0x0 0x0 0x0
: D9
0xc 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0xd 0xc 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0xd 0xa 0x65 0x5 0x5 0x5 0x5 0xe5 0x5 0x5 0xe5 0x5 0x5 0x5 0x5 0xc5 0xa 0xa 0x65 0x5 0x5 0x5 0x5 0xe5 0x5 0x5 0xe5 0x5 0x5 0x5 0x5 0xc5 0xa 0xa 0x5 0xc 0x8 0x8 0xf 0x5 0xc 0xd 0x5 0x8 0x8 0x8 0xd 0x5 0xe 0xf 0x5 0xc 0x8 0x8 0xf 0x5 0xc 0xd 0x5 0x8 0x8 0x8 0xd 0x5 0xa 0xa 0x5 0xa 0x65 0x6 0x5 0x95 0xa 0xa 0x35 0x5 0x5 0xc5 0xa 0x35 0x5 0x5 0x95 0xa 0x65 0x5 0x5 0x95 0xa 0xa 0x35 0x5 0x6 0xc5 0xa 0x5 0xa 0xa 0x5 0xf 0x5 0x8 0x8 0x8 0x8 0x8 0xc 0x8 0xf 0x5 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0x8 0x8 0xc 0x8 0x8 0x8 0x8 0xf 0x5 0xf 0x5 0xa 0xa 0x75 0x5 0xb5 0x5 0x5 0x5 0x5 0xc5 0xa 0x65 0x5 0xb5 0x5 0xe5 0x5 0x5 0xe5 0x5 0xb5 0x5 0xc5 0xa 0x65 0x5 0x5 0x5 0x5 0xb5 0x5 0xd5 0xa 0xa 0x5 0xc 0x8 0x8 0x8 0x8 0xd 0x5 0xf 0x5 0xc 0x8 0xf 0x5 0x8 0xf 0x5 0x8 0x8 0xd 0x5 0xf 0x5 0xc 0x8 0x8 0x8 0x8 0xd 0x5 0xa 0xf 0x5 0xf 0x65 0x5 0x5 0xc5 0xa 0x35 0xe5 0x95 0xa 0x65 0x5 0xb0 0x5 0x5 0xb5 0x5 0xc5 0xa 0x35 0xe5 0x95 0xa 0x65 0x5 0x5 0xc5 0xf 0x5 0xf 0x7 0x74 0x5 0xd5 0x8 0xf 0x5 0xe 0xf 0x5 0x8 0xf 0x5 0xc 0x8 0x8 0x8 0x8 0xd 0x5 0x8 0xf 0x5 0x8 0xf 0x5 0x8 0xf 0x75 0x5 0xd4 0x7 0xa 0x5 0xa 0x35 0x5 0x5 0xf5 0x5 0x5 0xb5 0x5 0x5 0xd5 0x8 0x8 0xd 0xc 0x8 0xf 0x75 0x5 0x5 0xb5 0x5 0x5 0xf5 0x5 0x5 0x95 0xa 0x5 0xa 0xa 0x5 0x8 0x8 0x8 0xd 0x5 0xc 0x8 0x8 0x8 0xd 0x35 0x5 0xc5 0xa 0xa 0x65 0x5 0x95 0xc 0x8 0x8 0x8 0xd 0x5 0xc 0x8 0x8 0xf 0x5 0xa 0xa 0x75 0x5 0x6 0xc5 0xa 0x5 0x8 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0x8 0xf 0x5 0x8 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0xa 0x65 0x6 0x5 0xd5 0xa 0xa 0x5 0xc 0xd 0x5 0xa 0x35 0x5 0x5 0x5 0x5 0xe5 0x5 0x5 0xf5 0x5 0x5 0xf5 0x5 0x5 0xe5 0x5 0x5 0x5 0x5 0x95 0xa 0x5 0xc 0xd 0x5 0xa 0xa 0x5 0x8 0xf 0x5 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0xc 0xd 0x5 0x8 0xf 0x5 0xc 0xd 0x5 0x8 0x8 0x8 0x8 0x8 0xf 0x5 0x8 0xf 0x5 0xa 0xa 0x35 0x5 0x5 0xb5 0x5 0x5 0x5 0x5 0x5 0x5 0x95 0xa 0xa 0x35 0x5 0x5 0x95 0xa 0xa 0x35 0x5 0x5 0x5 0x5 0x5 0x5 0xb5 0x5 0x5 0x95 0xa 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0xf 0x8 0x8 0x8 0x8 0x8 0xf 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0xf
: D10
0x1 0xe0 0x2 0x10 0x4 0xc8 0x9 0xe4 0xb 0xf4 0xb 0xb4 0x9 0xe5 0x4 0xc9 0x2 0x13 0x1 0xe7 0x0 0x7 0x1 0x83 0x3 0xf0 0x1 0xff 0x0 0xff 0x0 0x3f
: D11
0xf 0x0 0x10 0x80 0x26 0x40 0x4f 0x20 0x5f 0xa0 0x5d 0xa0 0x4f 0x20 0x26 0x40 0x90 0x80 0xcf 0x0 0xc0 0x0 0x83 0x0 0x1f 0x80 0xff 0x0 0xfe 0x0 0xf8 0x0
: D12
0xf 0x0 0x1f 0x80 0x3f 0xc0 0x7f 0xe0 0x7f 0xe0 0x5f 0xe0 0x47 0xe0 0x20 0xc0 0x90 0x80 0xcf 0x0 0xc0 0x80 0x83 0xc0 0x1f 0x80 0xff 0x0 0xfe 0x0 0xf8 0x0
: D13
######################################################################
# INPUT: chip8/SuperChip Games/Car [Klaus von Sengbusch, 1994].ch8
######################################################################
:proto L1 # 21E
:proto L4 # 278
:proto Sub1 # 28C
:proto Sub2 # 294
:proto Sub3 # 29E
:proto Sub4 # 2A6
:proto Sub5 # 2B0
:proto Sub6 # 2EC
:proto Sub7 # 310
:proto D1 # 32C
:proto D2 # 32E
:proto D3 # 330
:proto D4 # 332
:proto D5 # 334
:proto D6 # 336
:proto D7 # 338
: main
jump L1
0x31 0x2e 0x30 0x30 0x20 0x4b 0x2e 0x76 0x2e 0x53 0x65 0x6e 0x67 0x62 0x75 0x73 0x63 0x68 0x20 0x32 0x34 0x2f 0x34 0x2d 0x27 0x39 0x34 0x0
: L1
hires
v5 := 50
v6 := 50
v7 := 40
v3 := v5
v4 := v6
v2 := 100
v9 := 0
vA := 1
vB := 0
loop
scroll-down 1
Sub5
v0 := 1
v2 -= v0
v0 := 40
if v2 != v0 then
again
i := D7
sprite v3 v4 8
loop
i := D7
sprite v3 v4 8
scroll-down 1
sprite v5 v6 8
if vF != 0 then jump L4
Sub5
v0 := 1
if v2 != 0 then v2 -= v0
Sub6
v3 := v5
v4 := v6
v0 := 7
if v0 key then Sub2
v0 := 8
if v0 key then Sub1
v0 := random 0b11
if v0 == 0 then Sub3
v0 := random 0b11
if v0 == 0 then Sub4
again
: L4
v0 := vB
v0 += 3
v0 >>= v0
v0 >>= v0
i := bighex v0
v0 := v7
v0 += 17
v1 := 27
sprite v0 v1 10
loop
again
: Sub1
v5 += 1
if v5 == 110 then v5 := 109
return
: Sub2
v0 := 1
v5 -= v0
if vF == 0 then v5 := 0
return
: Sub3
v7 += 1
if v7 == 70 then v7 := 69
return
: Sub4
v0 := 1
v7 -= v0
if v7 == 20 then v7 := 21
return
: Sub5
v0 := v9
v1 := 45
v1 -= v0
v8 := v1
v1 := 0
v0 := v7
i := D1
sprite v0 v1 1
v0 += v8
v1 := 0
sprite v0 v1 1
vA += 1
if vA == 4 then vA := 1
if vA == 1 then i := D2
if vA == 2 then i := D3
if vA == 3 then i := D4
v1 := 0
v0 := 0
sprite v0 v1 1
v0 := 8
sprite v0 v1 1
v0 := 112
sprite v0 v1 1
v0 := 120
sprite v0 v1 1
return
: Sub6
if v2 != 0 then return
v0 := random 0b1111
v0 += v7
v0 += 8
v1 := 0
i := D7
v2 := 45
if vB == 30 then Sub7
if vB != 33 then sprite v0 v1 8
vB += 1
v0 := v9
v2 -= v0
if v9 != 11 then v9 += 1
return
: Sub7
vB += 3
i := D5
v0 := v7
v0 += 5
sprite v0 v1 1
v0 += 8
sprite v0 v1 1
v0 += 8
sprite v0 v1 1
v0 += 8
i := D6
sprite v0 v1 1
v2 := 100
return
: D1
0x88 0x0
: D2
0x88 0x0
: D3
0x55 0x0
: D4
0x22 0x0
: D5
0xff 0x0
: D6
0xf8 0x0
: D7
0xdb 0xff 0xdb 0x18 0x24 0xe7 0xe7 0xdb
######################################################################
# INPUT: chip8/SuperChip Games/Field! [Al Roland, 1993] (alt).ch8
######################################################################
:proto L14 # 302
:proto L15 # 308
:proto L16 # 30E
:proto L17 # 314
:proto L18 # 31A
:proto L19 # 320
:proto L20 # 334
:proto L21 # 342
:proto D1 # 350
:proto D2 # 358
:proto D3 # 35C
:proto D4 # 360
:proto D5 # 380
:proto D6 # 3A0
:proto D7 # 3C0
:proto D8 # 3E0
:proto D9 # 400
:proto D10 # 420
:proto D11 # 440
:proto D12 # 460
:proto D13 # 480
:proto D14 # 4A0
:proto D15 # 4C0
: main
clear
hires
: L1
v1 := 42
v2 := 1
i := D13
sprite v1 v2 0
v1 := 58
i := D14
sprite v1 v2 0
v1 := 74
i := D15
sprite v1 v2 0
v1 := 64
v2 := 48
i := D11
sprite v1 v2 0
v1 := 48
i := D10
sprite v1 v2 0
v2 := 32
v3 := 48
v4 := 32
vE := 1
vD := 3
i := D4
sprite v1 v2 0
i := D5
v1 := 64
sprite v1 v2 0
v5 := -1
loop
v5 -= vE
if v5 != 0 then
again
v5 := -1
loop
v5 -= vE
if v5 != 0 then
again
v1 := 48
i := D4
sprite v1 v2 0
i := D6
sprite v1 v2 0
v5 := -16
loop
v5 -= vE
if v5 != 0 then
again
sprite v1 v2 0
i := D7
sprite v1 v2 0
v3 -= vD
v4 -= vD
i := D9
sprite v3 v4 0
v5 := -16
loop
v5 -= vE
if v5 != 0 then
again
sprite v3 v4 0
: L6
v3 -= vD
v4 -= vD
i := D8
sprite v3 v4 0
v5 := -16
loop
v5 -= vE
if v5 != 0 then
again
sprite v3 v4 0
v3 -= vD
v4 -= vD
i := D9
sprite v3 v4 0
v5 := -16
loop
v5 -= vE
if v5 != 0 then
again
sprite v3 v4 0
v2 := 0
if v2 -key then jump L6
clear
v1 := 1
v2 := 7
v3 := -1
v9 := 32
vA := 15
v5 := 1
vB := 122
vE := 1
vD := 0
v7 := 0
i := D3
: L9
v7 += 1
if v7 == 192 then jump L14
: L10
v2 := 7
if v2 key then jump L20
v2 := 8
if v2 key then jump L21
v2 := 1
if v2 key then jump L19
v2 := 12
if v2 key then jump L15
v2 := 13
if v2 key then jump L16
: L11
if vC == 1 then jump L20
if vC == 2 then jump L21
: L12
v2 := 112
vE := 1
loop
v2 -= vE
if v2 != 0 then
again
i := D1
v1 := random 0b111010
vE := 64
vE -= v1
sprite v5 vE 4
sprite vB vE 4
if vC == 1 then jump L17
if vC == 2 then jump L18
jump L9
: L14
vD += 1
v7 := 0
jump L10
: L15
vE := 1
vA -= vE
jump L11
: L16
vE := 1
vA += 1
jump L11
: L17
i := D2
sprite v9 vA 3
jump L9
: L18
i := D3
sprite v9 vA 3
jump L9
: L19
clear
v1 := 44
v2 := 16
i := D12
sprite v1 v2 0
v1 := 50
v2 := 37
i := hex vD
sprite v1 v2 5
jump L1
: L20
scroll-left
i := D2
sprite v9 vA 3
if vF == 1 then jump L19
vC := 1
jump L12
: L21
scroll-right
i := D3
sprite v9 vA 3
if vF == 1 then jump L19
vC := 2
jump L12
: D1
0x6e 0xff 0x7e 0x33 0xff 0xff 0xff 0xff
: D2
0xe0 0x7f 0xe0 0x0
: D3
0x7 0xfe 0x7 0x99
: D4
0x0 0x0 0x20 0x83 0x31 0x86 0x7f 0xc7 0x4a 0x46 0x7b 0xc6 0x3f 0x80 0x5f 0x43 0xff 0xe4 0xdf 0x63 0xff 0xe0 0xdb 0x60 0xaa 0xa3 0x6a 0xc0 0xea 0xff 0xd5 0x7f
: D5
0x0 0x0 0xc6 0x0 0x66 0x0 0xe6 0x0 0x66 0x0 0x67 0xc0 0x0 0x0 0xc0 0x60 0x0 0x84 0x8c 0x8e 0x52 0xc4 0x52 0x84 0x8c 0x83 0x0 0x0 0xff 0xff 0xff 0xff
: D6
0x4 0x0 0x1e 0x3 0x37 0x86 0x7f 0x87 0xf 0xc6 0x7 0x76 0xf 0xf8 0xf 0xdb 0x7 0xfc 0x3 0xef 0x1 0xdf 0x0 0x9f 0x0 0xf 0x1 0x7 0xff 0xff 0xff 0x7f
: D7
0x0 0x0 0x0 0x3 0x0 0x6 0x0 0x7 0x0 0x6 0x0 0x6 0x0 0x0 0x0 0x3 0x0 0x4 0x0 0x3 0x0 0x0 0x0 0x0 0x0 0x3 0x0 0x0 0xff 0xff 0xff 0x7f
: D8
0x4 0x0 0x1e 0x0 0x37 0x80 0x7f 0x80 0xf 0xc0 0x7 0x70 0xf 0xf8 0xf 0xd8 0x7 0xf8 0x3 0xee 0x1 0xdf 0x0 0x9f 0x0 0x4f 0x0 0x67 0x0 0x3 0x0 0x0
: D9
0x10 0x0 0x3c 0xe 0x5e 0xbf 0xff 0xff 0x3f 0xff 0xf 0xf7 0x7 0xfb 0x7 0xf9 0x3 0xf8 0x1 0xfc 0x0 0xde 0x0 0x9e 0x0 0x5f 0x0 0xf 0x0 0xf 0x0 0x0
: D10
0x24 0x30 0x54 0x28 0x54 0x30 0x74 0x29 0x54 0x2a 0x54 0x29 0x0 0x0 0x50 0x0 0x54 0x80 0x71 0xe0 0x54 0x80 0x54 0x83 0x54 0x43 0x0 0x0 0x0 0x0 0x0 0x0
: D11
0x20 0x2 0x20 0x2 0x20 0x2 0x26 0xc6 0xaa 0xaa 0x26 0xa6 0x0 0x0 0x70 0x60 0x20 0xa0 0x24 0x84 0x2a 0xaa 0x2a 0xaa 0x24 0x64 0x0 0x0 0x0 0x0 0x0 0x0
: D12
0x14 0x0 0x14 0x0 0x8 0x94 0x9 0x54 0x8 0x88 0x0 0x0 0xc4 0xee 0xaa 0x48 0xce 0x4e 0xaa 0x48 0xaa 0x48 0xaa 0x4e 0x0 0x0 0x7 0xe0 0x3 0xc0 0x1 0x80
: D13
0x0 0x0 0xff 0x7e 0xff 0x7e 0xe0 0x18 0xe0 0x18 0xe0 0x18 0xfc 0x18 0xfc 0x18 0xe0 0x18 0xe0 0x18 0xe0 0x18 0xe0 0x18 0xe0 0x7e 0xe0 0x7e 0x0 0x0 0x0 0x0
: D14
0x0 0x0 0xff 0x70 0xff 0x70 0xe0 0x70 0xe0 0x70 0xe0 0x70 0xfc 0x70 0xfc 0x70 0xe0 0x70 0xe0 0x70 0xe0 0x70 0xe0 0x70 0xff 0x7e 0xff 0x7e 0x0 0x0 0x0 0x0
: D15
0x0 0x0 0xf0 0x8 0xfe 0x1c 0xe7 0x3e 0xe7 0x3e 0xe7 0x3e 0xe7 0x3e 0xe7 0x1c 0xe7 0x1c 0xe7 0x1c 0xe7 0x8 0xe7 0x0 0xfe 0x1c 0xf0 0x1c 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/SuperChip Games/Field! [Al Roland, 1993].ch8
######################################################################
:proto L14 # 310
:proto L15 # 314
:proto L16 # 318
:proto L17 # 31C
:proto L18 # 320
:proto L19 # 326
:proto L20 # 32C
:proto L21 # 332
:proto L22 # 338
:proto L26 # 374
:proto L27 # 382
:proto D1 # 390
:proto D2 # 394
:proto D3 # 398
:proto D4 # 39C
:proto D5 # 3BC
:proto D6 # 3DC
:proto D7 # 3FC
:proto D8 # 41C
:proto D9 # 43C
:proto D10 # 45C
:proto D11 # 47C
:proto D12 # 49C
:proto D13 # 4BC
:proto D14 # 4DC
:proto D15 # 4FC
:proto D16 # 51C
:proto D17 # 53C
: main
hires
: L1
v1 := 42
v2 := 1
i := D13
sprite v1 v2 0
v1 := 58
i := D14
sprite v1 v2 0
v1 := 74
i := D15
sprite v1 v2 0
v1 := 64
v2 := 48
i := D11
sprite v1 v2 0
v1 := 48
i := D10
sprite v1 v2 0
v2 := 32
v3 := 48
v4 := 32
vE := 1
vD := 3
i := D4
sprite v1 v2 0
i := D5
v1 := 64
sprite v1 v2 0
v5 := -1
loop
v5 -= vE
if v5 != 0 then
again
v5 := -1
loop
v5 -= vE
if v5 != 0 then
again
v1 := 48
i := D4
sprite v1 v2 0
i := D6
sprite v1 v2 0
v5 := -16
loop
v5 -= vE
if v5 != 0 then
again
sprite v1 v2 0
i := D7
sprite v1 v2 0
v3 -= vD
v4 -= vD
i := D9
sprite v3 v4 0
v5 := -16
loop
v5 -= vE
if v5 != 0 then
again
sprite v3 v4 0
: L6
v3 -= vD
v4 -= vD
i := D8
sprite v3 v4 0
v5 := -16
loop
v5 -= vE
if v5 != 0 then
again
sprite v3 v4 0
v3 -= vD
v4 -= vD
i := D9
sprite v3 v4 0
v5 := -16
loop
v5 -= vE
if v5 != 0 then
again
sprite v3 v4 0
v2 := 0
if v2 -key then jump L6
clear
v3 := 1
v1 := 1
v2 := 7
v9 := 32
vA := 15
v5 := 1
vB := 122
vE := 1
vD := 0
v7 := 0
i := D3
: L9
v7 += 1
if v7 == 192 then jump L18
: L10
v2 := 1
if v2 key then jump L14
v2 := 2
if v2 key then jump L15
v2 := 4
if v2 key then jump L16
v2 := 5
if v2 key then jump L17
v2 := 7
if v2 key then jump L26
v2 := 8
if v2 key then jump L27
v2 := 12
if v2 key then jump L19
v2 := 13
if v2 key then jump L20
: L11
if vC == 1 then jump L26
if vC == 2 then jump L27
: L12
v2 := 112
loop
v2 -= v3
if v2 != 0 then
again
i := D1
v1 := random 0b111010
vE := 64
vE -= v1
sprite v5 vE 4
sprite vB vE 4
if vC == 1 then jump L21
if vC == 2 then jump L22
jump L9
: L14
v3 := 1
jump L11
: L15
v3 := 2
jump L11
: L16
v3 := 4
jump L11
: L17
v3 := 8
jump L11
: L18
vD += 1
v7 := 0
jump L10
: L19
vE := 1
vA -= vE
jump L11
: L20
vE := 1
vA += 1
jump L11
: L21
i := D2
sprite v9 vA 3
jump L9
: L22
i := D3
sprite v9 vA 3
jump L9
: L23
v5 := 8
v9 -= v5
vA -= v5
i := D16
sprite v9 vA 0
v5 := -16
vE := 1
loop
v5 -= vE
if v5 != 0 then
again
i := D17
sprite v9 vA 0
v5 := -1
vE := 1
loop
v5 -= vE
if v5 != 0 then
again
clear
v1 := 44
v2 := 16
i := D12
sprite v1 v2 0
v1 := 50
v2 := 37
i := hex vD
sprite v1 v2 5
jump L1
: L26
scroll-left
i := D2
sprite v9 vA 3
if vF == 1 then jump L23
vC := 1
jump L12
: L27
scroll-right
i := D3
sprite v9 vA 3
if vF == 1 then jump L23
vC := 2
jump L12
: D1
0x6e 0xff 0x7e 0x33
: D2
0xe0 0x7f 0xe0 0x0
: D3
0x7 0xfe 0x7 0x99
: D4
0x0 0x0 0x20 0x83 0x31 0x86 0x7f 0xc7 0x4a 0x46 0x7b 0xc6 0x3f 0x80 0x5f 0x43 0xff 0xe4 0xdf 0x63 0xff 0xe0 0xdb 0x60 0xaa 0xa3 0x6a 0xc0 0xea 0xff 0xd5 0x7f
: D5
0x0 0x0 0xc6 0x0 0x66 0x0 0xe6 0x0 0x66 0x0 0x67 0xc0 0x0 0x0 0xc0 0x60 0x0 0x84 0x8c 0x8e 0x52 0xc4 0x52 0x84 0x8c 0x83 0x0 0x0 0xff 0xff 0xff 0xff
: D6
0x4 0x0 0x1e 0x3 0x37 0x86 0x7f 0x87 0xf 0xc6 0x7 0x76 0xf 0xf8 0xf 0xdb 0x7 0xfc 0x3 0xef 0x1 0xdf 0x0 0x9f 0x0 0xf 0x1 0x7 0xff 0xff 0xff 0x7f
: D7
0x0 0x0 0x0 0x3 0x0 0x6 0x0 0x7 0x0 0x6 0x0 0x6 0x0 0x0 0x0 0x3 0x0 0x4 0x0 0x3 0x0 0x0 0x0 0x0 0x0 0x3 0x0 0x0 0xff 0xff 0xff 0x7f
: D8
0x4 0x0 0x1e 0x0 0x37 0x80 0x7f 0x80 0xf 0xc0 0x7 0x70 0xf 0xf8 0xf 0xd8 0x7 0xf8 0x3 0xee 0x1 0xdf 0x0 0x9f 0x0 0x4f 0x0 0x67 0x0 0x3 0x0 0x0
: D9
0x10 0x0 0x3c 0xe 0x5e 0xbf 0xff 0xff 0x3f 0xff 0xf 0xf7 0x7 0xfb 0x7 0xf9 0x3 0xf8 0x1 0xfc 0x0 0xde 0x0 0x9e 0x0 0x5f 0x0 0xf 0x0 0xf 0x0 0x0
: D10
0x24 0x30 0x54 0x28 0x54 0x30 0x74 0x29 0x54 0x2a 0x54 0x29 0x0 0x0 0x50 0x0 0x54 0x80 0x71 0xe0 0x54 0x80 0x54 0x83 0x54 0x43 0x0 0x0 0x0 0x0 0x0 0x0
: D11
0x20 0x2 0x20 0x2 0x20 0x2 0x26 0xc6 0xaa 0xaa 0x26 0xa6 0x0 0x0 0x70 0x60 0x20 0xa0 0x24 0x84 0x2a 0xaa 0x2a 0xaa 0x24 0x64 0x0 0x0 0x0 0x0 0x0 0x0
: D12
0x14 0x0 0x14 0x0 0x8 0x94 0x9 0x54 0x8 0x88 0x0 0x0 0xc4 0xee 0xaa 0x48 0xce 0x4e 0xaa 0x48 0xaa 0x48 0xaa 0x4e 0x0 0x0 0x7 0xe0 0x3 0xc0 0x1 0x80
: D13
0x0 0x0 0xff 0x7e 0xff 0x7e 0xe0 0x18 0xe0 0x18 0xe0 0x18 0xfc 0x18 0xfc 0x18 0xe0 0x18 0xe0 0x18 0xe0 0x18 0xe0 0x18 0xe0 0x7e 0xe0 0x7e 0x0 0x0 0x0 0x0
: D14
0x0 0x0 0xff 0x70 0xff 0x70 0xe0 0x70 0xe0 0x70 0xe0 0x70 0xfc 0x70 0xfc 0x70 0xe0 0x70 0xe0 0x70 0xe0 0x70 0xe0 0x70 0xff 0x7e 0xff 0x7e 0x0 0x0 0x0 0x0
: D15
0x0 0x0 0xf8 0x8 0xfe 0x1c 0xe7 0x3e 0xe7 0x3e 0xe7 0x3e 0xe7 0x3e 0xe7 0x1c 0xe7 0x1c 0xe7 0x1c 0xe7 0x8 0xe7 0x0 0xfe 0x1c 0xf8 0x1c 0x0 0x0 0x0 0x0
: D16
0x0 0x2 0x10 0xc 0x8 0x14 0xe 0xc0 0x5 0xa0 0x6 0x1c 0x1a 0x24 0x7a 0x90 0xc1 0xe8 0x2 0x18 0x5 0x8 0xc 0x10 0x10 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D17
0xc3 0x2 0x31 0x8c 0x9 0x54 0xe 0xc4 0x75 0xb9 0x1e 0x1c 0x1a 0x3e 0x7a 0x93 0xe1 0xe9 0x22 0x19 0x5 0x8 0x4c 0x14 0x30 0xa 0x1b 0x32 0x14 0x32 0x20 0x1
######################################################################
# INPUT: chip8/SuperChip Games/H. Piper [Paul Raines, 1991].ch8
######################################################################
:proto L1 # 216
:proto L2 # 226
:proto L14 # 32A
:proto L15 # 338
:proto Sub1 # 38C
:proto Sub2 # 396
:proto Sub4 # 3AA
:proto Sub5 # 3C4
:proto Sub6 # 3DE
:proto Sub7 # 3F8
:proto Sub8 # 412
:proto Sub9 # 41E
:proto Sub10 # 42C
:proto Sub11 # 436
:proto Sub12 # 43E
:proto Sub13 # 44E
:proto L17 # 464
:proto L18 # 46E
:proto L19 # 492
:proto L20 # 4A4
:proto L21 # 4AC
:proto L22 # 4B4
:proto L23 # 4BC
:proto L24 # 4C0
:proto L26 # 4D0
:proto L28 # 4DC
:proto L29 # 4F6
:proto L30 # 4F8
:proto L31 # 504
:proto L33 # 516
:proto L34 # 522
:proto L37 # 53E
:proto L39 # 5C2
:proto L40 # 5CC
:proto L41 # 5E0
:proto Sub15 # 5F6
:proto L46 # 628
:proto Sub16 # 62A
:proto Sub18 # 672
:proto L47 # 688
:proto L48 # 6A4
:proto L49 # 6B6
:proto L50 # 6B8
:proto Sub19 # 6BC
:proto Sub20 # 6CC
:proto Sub21 # 6E4
:proto Sub22 # 71C
:proto Sub23 # 720
:proto L51 # 72A
:proto Sub24 # 75E
:proto Sub25 # 780
:proto D1 # 7A2
:proto D2 # 7A4
:proto D3 # 7B0
:proto D4 # 7BC
:proto D5 # 7BE
:proto D6 # 7CE
:proto D7 # 7DE
:proto D8 # 7E6
:proto D9 # 816
:proto D10 # 81E
:proto D11 # 836
:proto D12 # 83E
:proto D13 # 846
:proto D14 # 84A
:proto D15 # 84C
:proto D16 # 84E
:proto D17 # 850
:proto D18 # 852
:proto D19 # 854
:proto D20 # 85C
:proto D21 # 864
:proto D22 # 86A
:proto D23 # 86E
:proto D24 # 872
:proto D25 # 886
:proto D26 # 890
:proto D27 # 89A
:proto D28 # 8A4
:proto D29 # 8AC
: main
jump L1
0x76 0x32 0x2e 0x30 0x20 0x52 0x61 0x69 0x6e 0x65 0x73 0x20 0x28 0x63 0x29 0x20 0x31 0x39 0x39 0x31
: L1
hires
loadflags v3
vE := v2
if v3 == 1 then jump L2
vE := 78
v0 := 0
v1 := 0
: L2
i := D23
save v1
vC := -1
v0 := 0
v1 := 0
v2 := 0
saveflags v2
: L3
clear
v0 := 11
v1 := 0
v2 := 0
loop
i := D29
i += v2
save v1
v2 += 2
if v2 != 120 then
again
v0 := 0
v2 := 0
loop
i := D21
i += v2
save v1
v2 += 2
if v2 != 6 then
again
i := D24
v0 := 38
v1 := 57
v3 := 0
loop
i += v3
sprite v0 v1 5
v3 := 5
v0 += 8
if v0 != 70 then
again
i := D25
v0 := 104
v1 := 2
sprite v0 v1 5
v0 += 8
v2 := 5
i += v2
sprite v0 v1 5
i := D26
v0 := 104
v1 := 42
sprite v0 v1 5
v0 += 8
v2 := 5
i += v2
sprite v0 v1 5
v1 := vE
v1 >>= v5
v0 := 100
v0 -= v1
i := D10
bcd v0
load v2
v3 := 90
v4 := 57
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
v0 := vE
i := D4
save v0
i := D6
v0 := 0
v1 := 0
loop
sprite v0 v1 2
v0 += 8
if v0 != 96 then
again
v4 := 2
loop
i := D2
v0 := 0
sprite v0 v4 12
i := D3
v0 := 8
sprite v0 v4 12
v4 += 12
if v4 != 62 then
again
v7 := 0
loop
v0 := v7
Sub23
v7 += 1
if v7 != 5 then
again
v1 := 50
v0 := 16
i := D7
loop
sprite v0 v1 6
v0 += 8
if v0 != 96 then
again
v1 := 0
v0 := 96
i := D1
loop
sprite v0 v1 2
v1 += 2
if v1 != 56 then
again
vD := 52
Sub8
Sub9
Sub10
v1 := 2
i := D9
: L12
v0 := 16
loop
sprite v0 v1 8
v0 += 8
if v0 != 96 then
again
v1 += 8
if v1 != 50 then jump L12
if vC == -1 then jump L14
if vB == 0 then v3 := 6
if vB == 3 then v3 := 4
if vB == 6 then v3 := 2
if vB == 5 then v3 := 0
jump L15
: L14
v3 := random 0b111
v3 += 1
vC := random 0b110000
vC += 16
vC += v3
v3 := random 0b11
v3 <<= v5
: L15
i := D20
i += v3
load v1
vB := v0
v2 := v1
v9 := v2
v0 := vC
Sub18
Sub20
vA := 2
Sub12
v7 := 0
v8 := 0
Sub24
Sub25
v0 := -1
delay := v0
loop
v0 := 7
if v0 key then Sub4
v0 := 8
if v0 key then Sub5
v0 := 3
if v0 key then Sub6
v0 := 6
if v0 key then Sub7
v0 := 1
if v0 key then Sub1
v0 := 4
if v0 key then Sub2
v0 := 15
if v0 key then vE := 2
v0 := delay
if v0 == 0 then Sub13
again
: Sub1
v0 := 15
Sub23
v0 := vD
Sub18
return
: Sub2
Sub22
v0 := vD
Sub18
return
: Sub3
v0 := vD
v1 := 15
v0 &= v1
v1 := vD
v1 -= v0
return
: Sub4
Sub8
Sub10
Sub3
v0 += -1
if v0 == -1 then v0 := 0
vD := v1
vD += v0
Sub8
Sub10
v0 := 144
Sub11
return
: Sub5
Sub8
Sub10
Sub3
v0 += 1
if v0 == 10 then v0 := 9
vD := v1
vD += v0
Sub8
Sub10
v0 := 144
Sub11
return
: Sub6
Sub9
Sub10
Sub3
v1 += -16
if v1 == -16 then v1 := 0
vD := v1
vD += v0
Sub9
Sub10
v0 := 144
Sub11
return
: Sub7
Sub9
Sub10
Sub3
v1 += 16
if v1 == 96 then v1 := 80
vD := v1
vD += v0
Sub9
Sub10
v0 := 144
Sub11
return
: Sub8
Sub3
v0 += 96
Sub16
i := D13
sprite v0 v1 4
return
: Sub9
Sub3
v0 := v1
v0 += 10
Sub16
i := D12
sprite v0 v1 8
return
: Sub10
v0 := vD
Sub16
i := D11
sprite v0 v1 8
return
: Sub11
loop
v0 += -1
if v0 != 0 then
again
return
: Sub12
i := D19
i += vA
load v0
Sub19
v0 := 108
v1 := 28
sprite v0 v1 8
return
: Sub13
Sub12
vA += 1
v0 := v9
v1 := -16
v0 &= v1
if v0 == 0 then jump L17
if vA == 4 then jump L19
if vA == 5 then jump L34
: L17
v2 := vA
if vB != 0 then jump L18
v2 := 8
v2 -= vA
: L18
v0 := vB
v0 >>= v5
v0 >>= v5
if v0 != 0 then jump L24
if vB != 0 then v2 += -1
v0 := vC
Sub16
v1 += v2
i := D14
sprite v0 v1 1
if vF == 0 then jump L31
if vA != 1 then jump L31
v9 := 0
jump L37
: L19
vB ^= v9
v0 := 7
vB &= v0
v0 := vC
Sub16
if v9 != 22 then jump L20
i := D15
v1 += 4
: L20
if v9 != 29 then jump L21
i := D16
v1 += 2
: L21
if v9 != 21 then jump L22
i := D17
v1 += 4
: L22
if v9 != 30 then jump L23
i := D18
v1 += 2
: L23
sprite v0 v1 2
jump L34
: L24
if vB != 5 then jump L26
v3 := 128
loop
if v2 == 8 then jump L28
v3 >>= v5
v2 += 1
again
: L26
v3 := 1
loop
if v2 == 8 then jump L28
v3 <<= v5
v2 += 1
again
: L28
v1 := v3
v0 := v3
i := D10
save v1
i := D10
v0 := vC
Sub16
v1 += 3
if v9 != 3 then jump L29
if vA == 4 then jump L30
if vA != 5 then : L29
sprite v0 v1 2
: L30
if vF == 0 then jump L31
if vA != 1 then jump L31
v9 := 0
jump L37
: L31
if vA != 8 then jump L34
Sub24
v0 := 0
loop
v7 += 1
if v7 != 100 then jump L33
v8 += 1
v7 := 0
: L33
v0 += 1
if v0 != 3 then
again
Sub24
vA := 0
Sub21
: L34
v0 := vE
v1 := v8
v1 += v7
if v1 == 0 then v0 += 176
delay := v0
Sub12
return
: Sub14
v0 := 11
loop
if v0 -key then
again
loop
if v0 key then
again
return
: L37
v0 := 3
buzzer := v0
Sub14
clear
v2 := 0
v3 := 0
loop
i := D29
i += v2
load v1
v2 += 2
v3 += v1
if v2 != 120 then
again
if v3 == 60 then v8 += 1
i := D23
load v1
v0 += v7
v3 := 100
v0 -= v3
v4 := vF
if v4 != 0 then v1 += 1
if v4 != 1 then v0 += 100
v1 += v8
i := D23
save v1
v5 := v0
v3 := 40
v4 := 40
i := D22
bcd v1
load v2
i := bighex v0
sprite v3 v4 10
v3 += 11
i := bighex v1
sprite v3 v4 10
v3 += 11
i := bighex v2
sprite v3 v4 10
i := D22
bcd v5
load v2
v3 += 11
i := bighex v1
sprite v3 v4 10
v3 += 11
i := bighex v2
sprite v3 v4 10
Sub24
i := D4
load v0
vE := v0
if vE == 2 then vE += 4
vE += -4
if v8 != 0 then jump L39
v0 >>= v5
v1 := 100
v1 -= v0
v7 -= v1
if vF == 0 then jump L40
: L39
Sub15
if v0 != 0 then jump L3
v3 := 1
jump L41
: L40
i := D27
v0 := 42
v1 := 24
sprite v0 v1 5
v0 += 8
v2 := 5
i += v2
sprite v0 v1 5
Sub15
v3 := 0
: L41
i := D23
load v1
v2 := vE
saveflags v3
v0 := 11
loop
if v0 key then
again
v0 := 0
loop
if v0 key then
again
exit
: Sub15
i := D6
v3 := 2
v4 := 8
sprite v3 v4 8
i := D8
v3 := 10
sprite v3 v4 8
i := D28
: L44
v3 := 14
v4 := 16
sprite v3 v4 7
loop
v0 := 37
Sub11
v0 := 11
if v0 key then jump L46
v0 := 0
if v0 key then jump L46
sprite v3 v4 7
v4 += 2
if v4 == 56 then jump L44
sprite v3 v4 7
again
: L46
return
: Sub16
v1 := v0
vF := -16
v1 &= vF
v1 >>= v5
vF := 15
v0 &= vF
v0 <<= v5
v0 <<= v5
v0 <<= v5
v0 += 16
v1 += 2
return
0x70 0xf0 0x71 0xfe 0x80 0x56 0x80 0x56 0x80 0x56 0x81 0x5e 0x80 0x14 0x0 0xee
: Sub17
i := D29
v1 := v0
vF := 15
v1 &= vF
v1 <<= v5
i += v1
vF := -16
v0 &= vF
v0 >>= v5
v1 := v0
v1 >>= v5
v1 >>= v5
v0 += v1
v0 <<= v5
i += v0
return
: Sub18
v3 := v0
Sub17
load v1
v5 := 0
if v0 != 11 then v5 := -1
if v1 == 0 then jump L47
v1 := 3
buzzer := v1
jump L48
: L47
Sub19
v0 := v3
Sub16
sprite v0 v1 8
v0 := v3
Sub17
v1 := 0
v0 := v2
save v1
v0 := v2
Sub19
v0 := v3
Sub16
sprite v0 v1 8
: L48
Sub24
v7 += v5
if v7 != -1 then jump L50
if v8 == 0 then jump L49
v8 += -1
v7 := 99
jump L50
: L49
v7 := 0
: L50
Sub24
return
: Sub19
v1 := 15
v0 &= v1
v0 <<= v5
v0 <<= v5
v0 <<= v5
i := D5
i += v0
return
: Sub20
v0 := vC
Sub17
load v1
if v0 == 11 then jump L37
v9 := v0
v0 := vC
Sub17
v0 := v9
v1 := 1
save v1
return
: Sub21
v3 := 0
if vB == 6 then v3 := 1
if vB == 3 then v3 := 16
if vB == 0 then v3 := -16
if vB == 5 then v3 := -1
v1 := vC
v1 += v3
vF := -16
v1 &= vF
if v1 == -16 then jump L37
if v1 == 96 then jump L37
v1 := vC
v1 += v3
vF := 15
v1 &= vF
if v1 == 15 then jump L37
if v1 == 10 then jump L37
vC += v3
Sub20
return
: Sub22
v1 := vA
jump L51
: Sub23
v1 := random 0b111
v0 >>= v5
v0 >>= v5
if v0 == 0 then v1 >>= v5
: L51
i := D19
i += v1
load v0
v5 := v0
v4 := 3
v3 := 0
loop
i := D21
i += v3
load v0
v2 := v0
Sub19
v0 := 4
sprite v0 v4 8
i := D21
i += v3
v0 := v5
save v0
Sub19
v0 := 4
sprite v0 v4 8
v4 += 12
v5 := v2
v3 += 1
if v3 != 5 then
again
return
: Sub24
v3 := 105
v4 := 9
i := D22
bcd v8
load v2
i := hex v2
sprite v3 v4 5
v3 += 6
i := D22
bcd v7
load v2
i := hex v1
sprite v3 v4 5
v3 += 6
i := hex v2
sprite v3 v4 5
return
: Sub25
v0 := vE
v0 += -2
v0 >>= v5
v0 >>= v5
v1 := 20
v1 -= v0
i := D22
bcd v1
load v2
i := bighex v1
v3 := 104
v4 := 50
sprite v3 v4 10
v3 += 11
i := bighex v2
sprite v3 v4 10
return
: D1
0xf8 0xf8
: D2
0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xc0 0xff
: D3
0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0xff
: D4
0x0 0x0
: D5
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xc3 0xc3 0xc3 0xc3 0xc3 0xc3 0xc3 0xc3
: D6
0xff 0xff 0x0 0x0 0x0 0x0 0xff 0xff 0xc3 0xc3 0x0 0x0 0x0 0x0 0xc3 0xc3
: D7
0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
: D8
0xff 0xff 0xf 0x7 0x3 0x3 0x83 0xc3 0xff 0xff 0xf0 0xe0 0xc0 0xc0 0xc1 0xc3 0xff 0xff 0xc0 0xc0 0xc0 0xc0 0xff 0xff 0xff 0xff 0x3 0x3 0x3 0x3 0xff 0xff 0xc3 0xc3 0xc3 0xc3 0xc3 0xc3 0xff 0xff 0xff 0xff 0xc3 0xc3 0xc3 0xc3 0xc3 0xc3
: D9
0x0 0x7e 0x42 0x42 0x42 0x42 0x7e 0x0
: D10
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xc3 0xc1 0xc0 0xc0 0xe0 0xf0 0xff 0xff 0xc3 0x83 0x3 0x3 0x7 0xf 0xff 0xff
: D11
0x0 0x0 0x18 0x3c 0x3c 0x18 0x0 0x0
: D12
0x0 0x10 0x10 0x70 0x70 0x10 0x10 0x0
: D13
0x0 0x18 0x18 0x7e
: D14
0x18 0x0
: D15
0x8 0x4
: D16
0x4 0x8
: D17
0x10 0x20
: D18
0x20 0x10
: D19
0x1d 0x15 0x16 0x1e 0x1 0x2 0x3 0x3
: D20
0x6 0x7 0x5 0x8 0x0 0x9 0x3 0xa
: D21
0x0 0x0 0x0 0x0 0x0 0x0
: D22
0x0 0x0 0x0 0x0
: D23
0x0 0x0 0x0 0x0
: D24
0xa3 0xa2 0xe3 0xa2 0xaa 0xbb 0x92 0x93 0x12 0x3a 0xbb 0xa2 0xb3 0x22 0x3a 0x88 0x88 0x88 0x40 0x48
: D25
0xd9 0x92 0xd2 0x52 0xd9 0x3b 0xaa 0xb3 0xaa 0x2b
: D26
0x9a 0x92 0x9a 0x91 0xd9 0xb4 0xa4 0xb4 0x24 0x36
: D27
0xea 0xaa 0xae 0xa4 0xe4 0xee 0x8a 0xce 0x89 0xe9
: D28
0x20 0x20 0x70 0xf8 0xf8 0xf8 0x70 0x0
: D29
0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0 0xb 0x0
######################################################################
# INPUT: chip8/SuperChip Games/Joust [Erin S. Catto, 1993].ch8
######################################################################
:proto L1 # 20E
:proto L5 # 24E
:proto L6 # 254
:proto L7 # 26A
:proto Sub1 # 29E
:proto Sub2 # 2A8
:proto Sub3 # 2CE
:proto Sub5 # 2FA
:proto L10 # 30E
:proto Sub6 # 316
:proto Sub7 # 32A
:proto Sub8 # 368
:proto Sub9 # 37A
:proto Sub10 # 382
:proto Sub11 # 38A
:proto L11 # 3AE
:proto L12 # 3B4
:proto Sub13 # 3BA
:proto L13 # 3CE
:proto L14 # 3DA
:proto L15 # 3EA
:proto L16 # 400
:proto Sub14 # 40E
:proto L17 # 422
:proto L18 # 42E
:proto L19 # 43C
:proto Sub15 # 440
:proto L20 # 450
:proto L21 # 466
:proto Sub16 # 47C
:proto Sub17 # 490
:proto Sub18 # 496
:proto Sub19 # 49C
:proto Sub20 # 4A0
:proto Sub21 # 4A4
:proto Sub22 # 4BC
:proto Sub23 # 4DC
:proto Sub24 # 4E2
:proto L22 # 4E8
:proto L23 # 4F0
:proto Sub25 # 4F8
:proto Sub26 # 516
:proto L24 # 528
:proto L25 # 53A
:proto L26 # 546
:proto L27 # 552
:proto L28 # 564
:proto Sub27 # 576
:proto Sub28 # 584
:proto L29 # 592
:proto L30 # 5BA
:proto L31 # 5C0
:proto L32 # 5CE
:proto L33 # 5EC
:proto Sub29 # 5F0
:proto Sub30 # 5F8
:proto Sub31 # 600
:proto Sub32 # 61A
:proto L34 # 62E
:proto L35 # 634
:proto L36 # 63A
:proto Sub33 # 640
:proto Sub34 # 648
:proto Sub35 # 650
:proto L37 # 662
:proto L38 # 670
:proto L39 # 678
:proto L40 # 686
:proto Sub36 # 68E
:proto L41 # 698
:proto L42 # 6A4
:proto L43 # 6B0
:proto L44 # 6DA
:proto Sub37 # 6E4
:proto Sub38 # 702
:proto Sub39 # 70C
:proto Sub40 # 716
:proto Sub41 # 720
:proto Sub42 # 72A
:proto Sub43 # 748
:proto Sub44 # 750
:proto Sub45 # 770
:proto Sub46 # 782
:proto L46 # 79E
:proto Sub47 # 7AC
:proto Sub48 # 7BE
:proto L47 # 7D0
:proto L48 # 7D8
:proto L49 # 7E8
:proto Sub49 # 7EC
:proto L50 # 800
:proto L51 # 80A
:proto L52 # 81C
:proto L53 # 836
:proto L54 # 848
:proto Sub50 # 84C
:proto Sub51 # 8A8
:proto Sub52 # 8B2
:proto Sub53 # 8D2
:proto Sub54 # 8F0
:proto Sub55 # 90C
:proto Sub56 # 940
:proto L57 # 950
:proto Sub57 # 9DC
:proto L59 # 9F6
:proto L60 # A04
:proto L61 # A0C
:proto L62 # A20
:proto L63 # A38
:proto L64 # A48
:proto D1 # A5A
:proto D2 # A5E
:proto D3 # A62
:proto D4 # A72
:proto D5 # A82
:proto D6 # A88
:proto D7 # A8E
:proto D8 # A94
:proto D9 # A9A
:proto D10 # AA0
:proto D11 # AA4
:proto D12 # AA8
:proto D13 # AAC
:proto D14 # AB0
:proto D15 # AB4
:proto D16 # ABA
:proto D17 # AC0
:proto D18 # AC2
:proto D19 # AC6
: main
jump L1
0x20 0x4a 0x6f 0x75 0x73 0x74 0x20 0x76 0x32 0x2e 0x33 0x0
: L1
hires
Sub54
: L2
v0 := 0
i := D1
save v0
v8 := 0
v9 := 3
vC := 0
: L3
vD := 15
Sub1
clear
vA := 2
vC += 1
vD := 7
vD -= vC
if vF == 0 then jump L5
if vC == 4 then v8 := 1
vB := vC
vB += 1
: L4
Sub43
vE := 27
vD := 9
vD -= vC
if vF == 0 then jump L6
i := bighex vC
vD := 60
sprite vD vE 10
Sub44
jump L7
: L5
vB := 8
v8 := 2
jump L4
: L6
i := D14
bcd vC
load v2
vD := 55
i := bighex v1
sprite vD vE 10
vD := 65
i := bighex v2
sprite vD vE 10
Sub44
jump L7
: L7
vD := 7
vD &= vC
if vD == 7 then jump L57
Sub50
Sub45
Sub30
if vB != 0 then Sub29
vD := 15
Sub1
loop
Sub2
if v6 == 221 then jump L43
if vA == 0 then jump L3
Sub5
if v8 != 0 then Sub22
vD := 5
if v8 == 0 then Sub1
vD := 3
if v8 == 1 then Sub1
again
: Sub1
delay := vD
loop
vD := delay
if vD != 0 then
again
return
: Sub2
i := D5
load v5
Sub20
v2 := 0
vD := 10
if vD key then Sub19
vD := 3
if vD key then Sub17
vD := 12
if vD key then Sub18
Sub3
if v6 == 221 then return
if vF != 0 then Sub26
return
: Sub3
Sub46
Sub49
: Sub4
vD := v0
vE := v1
v0 += v2
v1 += v3
i := D3
i += v5
v5 := 127
v0 &= v5
v5 := v4
v6 := v0
v7 := v1
sprite vD vE 8
i := D3
i += v4
sprite v0 v1 8
if v1 == 56 then v6 := 221
i := D5
save v5
return
: Sub5
if vA == 1 then jump Sub6
if vA == 2 then jump L10
if vA == 3 then jump L11
if vA == 4 then jump L12
if vA == 5 then jump Sub13
: L10
Sub6
if vA == 2 then Sub8
return
: Sub6
i := D6
load v5
vD := random 0b11
if vD == 0 then Sub21
Sub7
Sub9
if vF != 0 then jump L22
return
: Sub7
vD := v6
vD -= v0
if vF == 0 then vD =- vF
vE := 16
vE -= vD
if vF == 0 then return
vD := v7
vD -= v1
if vF == 0 then vD =- vF
vE := 12
vE -= vD
if vF == 0 then return
vD := v6
vD -= v0
if vF == 0 then Sub17
if vF != 0 then Sub18
vD := v7
vD -= v1
if vF != 0 then Sub20
if vF == 0 then Sub19
if v1 == v7 then Sub19
return
: Sub8
i := D7
load v5
vD := random 0b1
if vD == 0 then Sub21
Sub10
if vF != 0 then jump L23
return
: Sub9
Sub11
i := D6
save v5
return
: Sub10
Sub11
i := D7
save v5
return
: Sub11
Sub46
Sub49
if v1 == 52 then Sub19
: Sub12
vD := v0
vE := v1
v0 += v2
v1 += v3
i := D4
i += v5
v5 := 127
v0 &= v5
v5 := v4
sprite vD vE 8
i := D4
i += v4
sprite v0 v1 8
return
: L11
Sub6
Sub13
return
: L12
Sub14
Sub13
return
: Sub13
i := D8
load v4
if v4 == 2 then jump L13
v2 := 0
Sub15
Sub16
i := D8
save v4
return
: L13
v2 += 1
if v2 == 8 then jump L14
i := D8
save v4
return
: L14
i := D18
sprite v0 v1 4
if vA == 4 then jump L15
if vA == 3 then jump L16
vA := 0
return
: L15
i := D9
load v4
i := D8
save v4
if vB == 0 then vA := 5
if vB == 0 then return
Sub30
vA := 3
return
: L16
if vB == 0 then vA := 1
if vB == 0 then return
Sub29
vA := 2
return
: Sub14
i := D9
load v4
if v4 == 2 then jump L17
v2 := 0
Sub15
Sub16
i := D9
save v4
return
: L17
v2 += 1
if v2 == 8 then jump L18
i := D9
save v4
return
: L18
i := D18
sprite v0 v1 4
if vB == 0 then jump L19
Sub30
vA := 3
return
: L19
vA := 5
return
: Sub15
if v1 == 24 then jump L20
if v1 == 12 then jump L21
if v1 == 36 then jump L21
v3 := 1
return
: L20
Sub47
if v3 != 0 then return
vD := 1
buzzer := vD
v3 := -3
if v4 == 0 then v2 := -2
if v4 == 1 then v2 := 2
return
: L21
Sub48
if v3 != 0 then return
vD := 1
buzzer := vD
v3 := -3
if v4 == 0 then v2 := -2
if v4 == 1 then v2 := 2
return
: Sub16
vD := v0
vE := v1
v0 += v2
v1 += v3
i := D18
sprite vD vE 4
sprite v0 v1 4
if v1 == 56 then v4 := 2
return
: Sub17
v4 := 8
v2 := -4
return
: Sub18
v4 := 0
v2 := 4
return
: Sub19
v3 := -2
return
: Sub20
v3 := 2
return
: Sub21
vD := random 0b1
buzzer := vD
if vD == 0 then Sub17
if vD == 1 then Sub18
vD := random 0b1
if vD == 0 then Sub20
if vD == 1 then Sub19
return
: Sub22
vD := random 0b11
if vD != 0 then return
i := D17
load v1
vD := 59
i := D16
sprite v0 vD 5
v0 += v1
if v0 == 8 then Sub23
if v0 == 112 then Sub24
i := D17
save v1
return
: Sub23
v0 := 16
v1 := 8
return
: Sub24
v0 := 104
v1 := -8
return
: L22
Sub25
if vF == 0 then jump L29
return
: L23
Sub25
if vF == 0 then jump L32
return
: Sub25
vD := v6
vD -= v0
if vF == 0 then vD =- vF
vE := 8
vD -= vE
if vF != 0 then return
vD := v7
vD -= v1
if vF == 0 then vD =- vF
vE := 8
vD -= vE
return
: Sub26
if vA == 2 then jump L28
if vA == 1 then jump L29
if vA == 4 then jump L24
if vA == 5 then jump L25
jump L27
: L24
i := D8
load v4
Sub27
if vF == 0 then jump L26
Sub28
if vF == 0 then jump L26
jump L25
: L25
Sub41
Sub38
Sub38
i := D8
load v4
jump L14
: L26
Sub41
Sub38
Sub38
i := D9
load v4
jump L18
: L27
i := D6
load v5
Sub27
if vF == 0 then jump L25
Sub28
if vF == 0 then jump L25
jump L29
: L28
i := D6
load v5
Sub27
if vF == 0 then jump L32
Sub28
if vF == 0 then jump L32
jump L29
: Sub27
vD := v6
vD -= v0
if vF == 0 then vD =- vF
vE := 8
vE -= vD
return
: Sub28
vD := v7
vD -= v1
if vF == 0 then vD =- vF
vE := 8
vE -= vD
return
: L29
i := D6
load v5
if v7 == v1 then jump L37
vD := v7
vD -= v1
if vF != 0 then jump L33
Sub39
i := D4
i += v5
sprite v0 v1 8
if vA == 3 then jump L30
if vA == 2 then jump L31
if vA == 1 then vA := 5
Sub33
return
: L30
vA := 4
Sub34
return
: L31
Sub33
i := D7
load v5
i := D6
save v5
vA := 3
return
: L32
i := D7
load v5
if v7 == v1 then jump L39
vD := v7
vD -= v1
if vF != 0 then jump L33
Sub39
i := D4
i += v5
sprite v0 v1 8
vA := 3
Sub33
return
: L33
v6 := 221
return
: Sub29
Sub31
i := D7
save v5
return
: Sub30
Sub31
i := D6
save v5
return
: Sub31
Sub32
vB += -1
Sub19
vD := random 0b1
if vD != 1 then Sub17
if vD != 0 then Sub18
i := D4
i += v4
sprite v0 v1 8
v5 := v4
return
: Sub32
vD := random 0b11
if vD == 0 then jump L36
if vD == 1 then jump L35
if vD == 2 then jump L34
v0 := 120
v1 := 52
return
: L34
v0 := 64
v1 := 32
return
: L35
v0 := 64
v1 := 8
return
: L36
v0 := 8
v1 := 20
return
: Sub33
Sub35
i := D8
save v4
return
: Sub34
Sub35
i := D9
save v4
return
: Sub35
v1 += 8
vD := 55
vD -= v1
if vF == 0 then v1 := 55
v4 := random 0b1
i := D18
sprite v0 v1 4
return
: L37
Sub36
if vF != 0 then jump L38
Sub18
Sub9
Sub9
jump L42
: L38
Sub17
Sub9
Sub9
jump L41
: L39
Sub36
if vF != 0 then jump L40
Sub18
Sub10
Sub10
jump L42
: L40
Sub17
Sub10
Sub10
jump L41
: Sub36
vD := 3
buzzer := vD
vD := v6
vD -= v0
return
: L41
i := D5
load v5
Sub18
Sub3
Sub3
return
: L42
i := D5
load v5
Sub17
Sub3
Sub3
return
: L43
Sub39
Sub38
Sub40
vD := 10
Sub1
v9 += -1
if v9 == 0 then jump L44
if vA == 1 then vB += 1
if vA == 3 then vB += 1
if vA == 2 then vB += 2
vA := 2
if vB == 0 then jump L3
vA := 2
if vB == 1 then vA := 1
jump L7
: L44
Sub37
clear
Sub42
Sub55
jump L2
: Sub37
vD := 12
buzzer := vD
vD := 24
Sub1
Sub39
Sub39
Sub40
Sub40
vD := 32
Sub1
Sub40
Sub40
vD := 32
Sub1
return
: Sub38
vD := 2
buzzer := vD
vD := 5
Sub1
return
: Sub39
vD := 4
buzzer := vD
vD := 10
Sub1
return
: Sub40
vD := 8
buzzer := vD
vD := 20
Sub1
return
: Sub41
i := D1
load v0
v0 += 1
save v0
return
: Sub42
i := D1
load v0
bcd v0
load v2
vE := 27
vD := 49
i := bighex v0
sprite vD vE 10
vD += 10
i := bighex v1
sprite vD vE 10
vD += 10
i := bighex v2
sprite vD vE 10
return
: Sub43
v3 := 0
v4 := 0
v5 := 124
v6 := 62
: Sub44
i := D2
loop
sprite v3 v4 3
sprite v3 v6 3
sprite v5 v4 3
sprite v5 v6 3
v3 += 4
v4 += 2
v5 += -4
v6 += -2
vD := 4
Sub1
if v3 == 64 then return
if v3 == 128 then return
again
: Sub45
v4 := 0
v5 := 0
v0 := 112
v1 := 20
i := D3
sprite v0 v1 8
i := D5
save v5
return
: Sub46
if v1 == 0 then jump L47
if v1 == 52 then jump L48
vD := 2
if v3 != vD then jump L46
if v1 == 20 then jump Sub47
if v1 == 8 then jump Sub48
if v1 == 32 then jump Sub48
return
: L46
if v1 == 32 then jump Sub47
if v1 == 20 then jump Sub48
if v1 == 44 then jump Sub48
return
: Sub47
vD := 16
vD =- v0
if vF == 0 then jump L49
vD := 104
vD -= v0
if vF == 0 then jump L49
return
: Sub48
vD := 41
vD =- v0
if vF == 0 then return
vD := 80
vD =- v0
if vF == 0 then jump L49
return
: L47
vD := -2
if v3 == vD then Sub20
return
: L48
vD := 2
if v3 != vD then return
if v8 == 0 then jump L49
if v8 != 0 then jump Sub47
return
: L49
v3 := 0
return
: Sub49
if v2 == 0 then return
vD := 4
if v2 != vD then jump L50
if v0 == 104 then jump L51
if v0 == 40 then jump L52
return
: L50
if v0 == 16 then jump L51
if v0 == 80 then jump L52
return
: L51
vD := 17
vD =- v1
if vF == 0 then return
vD := 33
vD =- v1
if vF == 0 then jump L54
return
: L52
vD := 28
vD -= v1
if vF == 0 then jump L53
vD := 5
vD =- v1
if vF == 0 then return
vD := 21
vD =- v1
if vF == 0 then jump L54
return
: L53
vD := 29
vD =- v1
if vF == 0 then return
vD := 45
vD =- v1
if vF == 0 then jump L54
return
: L54
v2 := 0
return
: Sub50
clear
vD := 0
vE := 60
i := D13
sprite vD vE 4
vD := 8
sprite vD vE 4
i := D12
vD := 16
if v8 == 0 then Sub51
if v8 != 0 then Sub52
i := D12
vE := 28
vD := 120
sprite vD vE 4
vD := 0
sprite vD vE 4
vD := 56
vE := 16
sprite vD vE 4
vD := 64
sprite vD vE 4
vE := 40
sprite vD vE 4
vD := 56
sprite vD vE 4
i := D10
vD := 72
sprite vD vE 4
vE := 16
sprite vD vE 4
vD := 8
vE := 28
sprite vD vE 4
i := D11
vD := 112
sprite vD vE 4
vE := 40
vD := 48
sprite vD vE 4
vE := 16
sprite vD vE 4
Sub53
return
: Sub51
loop
sprite vD vE 4
vD += 8
if vD != 128 then
again
return
: Sub52
vD := 112
sprite vD vE 4
vD := 120
sprite vD vE 4
vD := 16
i := D15
vE := 59
loop
sprite vD vE 5
vD += 8
if vD != 112 then
again
v0 := 104
v1 := -8
i := D17
save v1
return
: Sub53
if v9 == 1 then return
vD := 1
vE := 61
i := D2
sprite vD vE 3
vD += 4
if v9 != 2 then sprite vD vE 3
vD += 4
v6 := 3
v6 -= v9
if vF == 0 then sprite vD vE 3
return
: Sub54
i := D19
vD := 36
vE := 24
sprite vD vE 0
v0 := 32
i += v0
vD += 16
sprite vD vE 0
i += v0
vD += 16
sprite vD vE 0
i += v0
vD += 16
sprite vD vE 0
: Sub55
v8 := 0
vB := 1
vA := 0
Sub30
Sub45
Sub18
i := D5
save v5
loop
vD := 10
Sub1
i := D5
load v5
Sub56
Sub4
i := D5
save v5
i := D6
load v5
Sub56
Sub12
i := D6
save v5
vD := 10
if vD -key then
again
return
: Sub56
vD := random 0b1111
if vD == 0 then Sub21
if v1 == 2 then v3 := 2
if v1 == 54 then v3 := -2
return
: L57
Sub50
Sub45
i := D18
vE := 12
vD := 50
sprite vD vE 4
vD += 12
sprite vD vE 4
vD += 12
sprite vD vE 4
vE := 36
vD := 50
sprite vD vE 4
vD += 12
sprite vD vE 4
vD += 12
sprite vD vE 4
vE := 24
vD := 10
sprite vD vE 4
vE := 56
sprite vD vE 4
vD := 114
sprite vD vE 4
v6 := 0
v7 := 0
loop
v7 += 1
if v7 == 106 then jump L3
vD := 1
buzzer := vD
vD := 3
Sub1
i := D5
load v5
Sub20
v2 := 0
vD := 10
if vD key then Sub19
vD := 3
if vD key then Sub17
vD := 12
if vD key then Sub18
Sub46
Sub49
vD := v0
vE := v1
v0 += v2
v1 += v3
i := D3
i += v5
v5 := 127
v0 &= v5
v5 := v4
sprite vD vE 8
i := D3
i += v4
sprite v0 v1 8
if v1 == 56 then jump L63
i := D5
save v5
if vF != 0 then Sub57
if v6 == 9 then jump L64
again
: Sub57
vE := 52
if v1 == vE then jump L59
vE := 20
if v1 == vE then jump L60
vE := 8
if v1 == vE then jump L61
vE := 32
if v1 == vE then jump L61
return
: L59
vD := 112
if v0 == vD then jump L62
vD := 8
if v0 == vD then jump L62
return
: L60
vD := 8
if v0 == vD then jump L62
return
: L61
vD := 48
if v0 == vD then jump L62
vD += 12
if v0 == vD then jump L62
vD += 12
if v0 == vD then jump L62
return
: L62
vD += 2
vE += 4
i := D18
sprite vD vE 4
Sub38
Sub38
v6 += 1
i := D1
load v0
v0 += 1
save v0
return
: L63
vD := 8
buzzer := vD
vD := 20
Sub1
v9 += -1
if v9 == 0 then jump L44
jump L3
: L64
i := D1
load v0
v0 += 8
save v0
v9 += 1
Sub40
Sub39
Sub40
jump L3
: D1
0x0 0x0 0x0 0x0
: D2
0x40 0xe0 0x40 0x0
: D3
0x66 0x6f 0x4c 0xff 0x6c 0xdc 0xec 0x78 0x66 0xf6 0x32 0xff 0x36 0x3b 0x37 0x1e
: D4
0x6e 0x6f 0x4c 0xff 0x6c 0xbe 0x9e 0x7c 0x76 0xf6 0x32 0xff 0x36 0x7d 0x79 0x3e
: D5
0x0 0x0 0x0 0x0 0x0 0x0
: D6
0x0 0x0 0x0 0x0 0x0 0x0
: D7
0x0 0x0 0x0 0x0 0x0 0x0
: D8
0x0 0x0 0x0 0x0 0x0 0x0
: D9
0x0 0x0 0x0 0x0 0x0 0x0
: D10
0xff 0xba 0xe8 0x80
: D11
0xff 0x6d 0x1b 0x2
: D12
0xff 0xee 0xbb 0xb6
: D13
0xff 0xff 0xff 0xff
: D14
0x0 0x0 0x0 0x0
: D15
0x6 0x1c 0x28 0x4c 0xfe 0x0
: D16
0x66 0x24 0x3c 0x6e 0x0 0x0
: D17
0x0 0x0
: D18
0x60 0xb0 0xf0 0x60
: D19
0x0 0xc0 0x0 0xc0 0x0 0xc0 0x0 0xc0 0x0 0xc0 0x0 0xc0 0x0 0xc3 0x0 0xc7 0x0 0xcc 0x0 0xcc 0xc0 0xcc 0xc0 0xcc 0xc0 0xcc 0xc0 0xcc 0x7f 0x87 0x3f 0x3 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0xc0 0xf8 0xc0 0xc 0xc0 0xc 0xc0 0xc 0xc0 0xc 0xc0 0xc 0xc0 0xc 0xc0 0xf8 0x7f 0xf0 0x3f 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xc3 0xfc 0xc7 0xfc 0xcc 0x0 0xcc 0x0 0xc7 0xf0 0xc3 0xf8 0xc0 0xc 0xc0 0xc 0xcf 0xf8 0xcf 0xf0 0x0 0x0 0x0 0x0 0x30 0x0 0x30 0x0 0x30 0x0 0x30 0x0 0xfc 0x0 0xfc 0x0 0x30 0x0 0x30 0x0 0x30 0x0 0x30 0x0 0x33 0x0 0x33 0x0 0x1e 0x0 0xc 0x0
######################################################################
# INPUT: chip8/SuperChip Games/Laser.ch8
######################################################################
:proto L2 # 220
:proto L5 # 234
:proto L6 # 238
:proto L7 # 23A
:proto Sub1 # 274
:proto L10 # 28A
:proto L12 # 2AC
:proto Sub2 # 2B8
:proto L13 # 2CC
:proto L14 # 2D8
:proto L15 # 2E6
:proto L16 # 2E8
:proto L17 # 2F4
:proto Sub3 # 300
:proto Sub4 # 30C
:proto Sub5 # 318
:proto Sub6 # 324
:proto Sub7 # 330
:proto Sub8 # 358
:proto D1 # 360
:proto D2 # 366
:proto D3 # 36C
: main
hires
clear
v0 := 0
v1 := 56
v8 := 0
v9 := 0
vA := 0
vB := 0
vC := 127
vD := 50
i := D3
loop
sprite v0 v1 2
v0 += 8
if v0 == 128 then jump L2
again
: L2
Sub7
Sub8
loop
v0 := 14
if v0 key then jump L5
v0 := 15
if v0 key then jump L6
again
: L4
loop
again
: L5
v6 := 1
jump L7
: L6
v6 := 0
: L7
v6 := v6
: L8
v0 := 1
buzzer := v0
v0 := 1
delay := v0
loop
v0 := delay
if v0 != 0 then
again
v0 := 1
if v0 key then Sub5
v0 := 4
if v0 key then Sub6
v0 := 2
if v0 key then Sub2
if v6 == 1 then jump L14
v0 := 12
if v0 key then Sub3
v0 := 13
if v0 key then Sub4
v0 := 3
if v0 key then Sub1
jump L15
: Sub1
i := D1
v0 := 0
sprite v0 vD 6
v4 := vF
v0 := 5
buzzer := v0
v0 := 0
sprite v0 vD 6
if v4 == 1 then jump L10
return
: L10
Sub7
v9 += 1
Sub7
if v9 == 99 then jump L4
return
: L11
i := D1
v0 := 0
sprite v0 vD 6
v4 := vF
v0 := 5
buzzer := v0
v0 := 0
sprite v0 vD 6
if v4 == 1 then jump L12
jump L15
: L12
Sub7
v9 += 1
Sub7
if v9 == 99 then jump L4
jump L15
: Sub2
v0 := 127
sprite v0 vB 6
v0 := 5
buzzer := v0
v4 := vF
v0 := 127
sprite v0 vB 6
if v4 == 1 then jump L13
return
: L13
Sub7
v8 += 1
Sub7
if v8 == 99 then jump L4
return
: L14
v0 := random 0b11
if v0 == 0 then jump L11
if v0 == 1 then jump L16
if v0 == 2 then jump L17
: L15
jump L8
: L16
if vD == 0 then jump L15
Sub8
vD += -2
Sub8
jump L15
: L17
if vD == 50 then jump L15
Sub8
vD += 2
Sub8
jump L15
: Sub3
if vD == 0 then return
Sub8
vD += -2
Sub8
return
: Sub4
if vD == 50 then return
Sub8
vD += 2
Sub8
return
: Sub5
if vB == 0 then return
Sub8
vB += -2
Sub8
return
: Sub6
if vB == 50 then return
Sub8
vB += 2
Sub8
return
: Sub7
i := D2
v3 := 0
v4 := 59
bcd v8
load v2
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
v3 := 119
i := D2
bcd v9
load v2
i := hex v1
sprite v3 v4 5
i := hex v2
v3 += 5
sprite v3 v4 5
return
: Sub8
i := D1
sprite vA vB 6
sprite vC vD 6
return
: D1
0x80 0x80 0x80 0x80 0x80 0x80
: D2
0x0 0x0 0x0 0x0 0x0 0x0
: D3
0xff 0xff
######################################################################
# INPUT: chip8/SuperChip Games/Loopz [Andreas Daumann].ch8
######################################################################
:proto L1 # 20F
:proto L3 # 2A1
:proto L6 # 2C1
:proto Sub2 # 313
:proto Sub5 # 369
:proto L16 # 3A9
:proto L17 # 3B1
:proto Sub8 # 3C9
:proto L21 # 3DF
:proto L22 # 3E1
:proto L23 # 3FD
:proto Sub9 # 407
:proto Sub10 # 429
:proto L25 # 43D
:proto Sub11 # 449
:proto L26 # 453
:proto Sub12 # 455
:proto L27 # 461
:proto Sub13 # 463
:proto L28 # 46D
:proto Sub14 # 46F
:proto L29 # 47B
:proto Sub15 # 47D
:proto L30 # 487
:proto L31 # 489
:proto Sub16 # 48D
:proto L34 # 4A5
:proto L35 # 4A7
:proto L36 # 4C7
:proto L37 # 4D9
:proto L38 # 4DF
:proto L41 # 4FB
:proto L42 # 4FD
:proto L43 # 519
:proto L44 # 52B
:proto L45 # 531
:proto Sub17 # 541
:proto L48 # 5AF
:proto L49 # 5C1
:proto L50 # 601
:proto L51 # 603
:proto L52 # 61F
:proto L53 # 623
:proto Sub18 # 629
:proto L55 # 66B
:proto L56 # 679
:proto Sub19 # 681
:proto L60 # 701
:proto L61 # 713
:proto L62 # 72F
:proto L63 # 74B
:proto L64 # 759
:proto Sub21 # 76B
:proto L66 # 78B
:proto Sub22 # 799
:proto Sub24 # 7C9
:proto Sub25 # 7D7
:proto Sub26 # 7E7
:proto Sub27 # 80F
:proto Sub28 # 837
:proto L70 # 84F
:proto L71 # 865
:proto Sub29 # 869
:proto L74 # 885
:proto L75 # 8A7
:proto Sub30 # 8AF
:proto L78 # 8F5
:proto D1 # 8FF
:proto D2 # 935
:proto D3 # 93A
:proto D4 # 93E
:proto D5 # 970
:proto D6 # A24
:proto D7 # AD8
:proto D8 # AD9
:proto D9 # B44
:proto D10 # B58
:proto D11 # B61
:proto D12 # B65
:proto D13 # C65
:proto D14 # C79
:proto D15 # C8D
:proto D16 # C97
:proto D17 # C99
:proto D18 # C9A
:proto D19 # D18
:proto D20 # D96
:proto D21 # D97
:proto D22 # DB5
:proto D23 # DB6
:proto D24 # DB9
:proto D25 # DBA
:proto D26 # DC4
:proto D27 # DC7
:proto D28 # DCD
:proto D29 # DCE
:proto D30 # DCF
:proto D31 # DD0
:proto D32 # DD1
:proto D33 # DD2
:proto D34 # DD3
:proto D35 # DD4
:proto D36 # DD5
:proto D37 # DD6
:proto D38 # DD7
:proto D39 # DE1
:proto D40 # DEB
:proto D41 # DEC
:proto D42 # DED
:proto D43 # EC5
: main
jump L1
0x28 0x63 0x29 0x20 0x41 0x2e 0x44 0x61 0x75 0x6d 0x61 0x6e 0x6e
: L1
clear
hires
loadflags v2
if v1 != 170 then exit
if v2 != 170 then exit
i := D37
save v0
Sub2
Sub5
v0 := 0
i := D22
save v0
Sub21
i := D24
v0 := 2
save v0
Sub24
v0 := 0
i := D28
save v0
i := D29
save v0
i := D30
save v0
i := D31
save v0
i := D32
save v0
i := D33
save v0
i := D34
save v0
i := D35
save v0
i := D36
save v0
Sub26
Sub27
v8 := 8
v9 := 3
Sub9
Sub8
: L2
loop
v0 := 7
if v0 key then Sub12
v0 := 8
if v0 key then Sub11
v0 := 12
if v0 key then Sub14
v0 := 13
if v0 key then Sub13
v0 := 6
if v0 key then Sub15
v0 := 5
if v0 key then Sub16
Sub22
i := D22
load v0
if v0 != 0 then
again
Sub25
i := D24
load v0
if v0 != -1 then jump L3
jump L6
: L3
v0 := -1
: L4
v0 += 1
v1 := 15
buzzer := v1
v1 := 40
delay := v1
loop
v1 := delay
if v1 != 0 then
again
if v0 != 2 then jump L4
Sub21
Sub8
Sub9
Sub8
jump L2
: L6
Sub8
Sub30
v0 := -1
: L7
v0 += 2
v1 := 15
buzzer := v0
v1 := 11
delay := v1
loop
v1 := delay
if v1 != 0 then
again
if v0 != 11 then jump L7
i := D31
load v5
v6 := 170
v7 := 170
saveflags v7
v0 := key
v0 := -1
loop
v0 += 1
scroll-down 1
if v0 != 64 then
again
exit
: Sub1
i := D9
i += v5
load v0
v2 := v0
i := D10
i += v6
load v0
v3 := v0
v1 := 6
i := D10
i += v7
load v0
i := D1
i += v0
sprite v2 v3 6
return
: Sub2
v1 := -1
loop
v1 += 1
i := D5
i += v1
load v0
i := D6
i += v1
save v0
if v1 != 179 then
again
return
: Sub3
v1 := -21
v0 := -1
loop
v0 += 1
v1 += 1
if v0 != v5 then
again
v0 := -1
loop
v0 += 1
v1 += 20
if v0 != v6 then
again
i := D6
i += v1
load v0
v7 := v0
return
: Sub4
v1 := -21
v0 := -1
loop
v0 += 1
v1 += 1
if v0 != v5 then
again
v0 := -1
loop
v0 += 1
v1 += 20
if v0 != v6 then
again
i := D6
i += v1
v0 := v7
save v0
return
: Sub5
v1 := -2
v7 := 7
loop
v1 += 2
i := D7
i += v1
load v0
v5 := v0
i := D8
i += v1
load v0
v6 := v0
saveflags v1
Sub1
loadflags v1
if v1 != 106 then
again
return
: Sub6
if vA == 6 then jump L16
if vA == 7 then jump L16
if vA == 8 then jump L16
if vA == 9 then jump L16
if vA == 10 then jump L16
if vA == 11 then jump L16
vD := 0
v7 := vA
jump L17
: L16
vD := 1
v7 := vA
v0 := 6
v7 -= v0
: L17
vE := 220
v0 := -1
loop
vE += 36
v0 += 1
if v0 != v7 then
again
return
: Sub7
i := D11
i += vB
load v0
vC := v0
return
: Sub8
Sub7
v1 := -1
v3 := -1
: L19
v2 := -1
v3 += 1
loop
v2 += 1
v1 += 1
if vD != 0 then jump L21
i := D42
jump L22
: L21
i := D43
: L22
i += vE
i += vC
i += v1
load v0
if v0 == -1 then jump L23
v5 := v2
v5 += v8
v6 := v3
v6 += v9
v7 := v0
saveflags v3
Sub1
loadflags v3
: L23
if v2 != 2 then
again
if v3 != 2 then jump L19
return
: Sub9
v1 := 0
v1 := random 0b11111111
i := D12
i += v1
load v0
vA := v0
vB := 0
Sub6
if vA != 11 then return
Sub10
if v7 != 1 then return
vA := 0
vB := 0
Sub6
return
: Sub10
v7 := 0
v2 := 0
v1 := -1
loop
v1 += 1
i := D6
i += v1
load v0
if v0 != 6 then jump L25
v2 += 1
: L25
if v1 != 179 then
again
if v2 != 126 then return
v7 := 1
return
: Sub11
if v8 == 17 then jump L26
Sub8
v8 += 1
Sub8
: L26
return
: Sub12
if v8 == 0 then jump L27
Sub8
v0 := 1
v8 -= v0
Sub8
: L27
return
: Sub13
if v9 == 6 then jump L28
Sub8
v9 += 1
Sub8
: L28
return
: Sub14
if v9 == 0 then jump L29
Sub8
v0 := 1
v9 -= v0
Sub8
: L29
return
: Sub15
Sub8
if vB == 3 then jump L30
vB += 1
jump L31
: L30
vB := 0
: L31
Sub8
return
: Sub16
Sub7
v1 := -1
v4 := 0
v3 := -1
: L32
v2 := -1
v3 += 1
loop
v2 += 1
v1 += 1
if vD != 0 then jump L34
i := D42
jump L35
: L34
i := D43
: L35
i += vE
i += vC
i += v1
load v0
if v0 == -1 then jump L36
v5 := v2
v5 += v8
v6 := v3
v6 += v9
saveflags v3
Sub3
loadflags v3
if v7 == 6 then jump L36
v4 := 1
: L36
if v2 != 2 then
again
if v3 != 2 then jump L32
if v4 != 0 then jump L37
if vA == 11 then jump L44
jump L38
: L37
if vA == 11 then jump L45
jump L44
: L38
v0 := 2
buzzer := v0
Sub7
v1 := -1
v4 := 0
v3 := -1
: L39
v2 := -1
v3 += 1
loop
v2 += 1
v1 += 1
if vD != 0 then jump L41
i := D42
jump L42
: L41
i := D43
: L42
i += vE
i += vC
i += v1
load v0
if v0 == -1 then jump L43
v5 := v2
v5 += v8
v6 := v3
v6 += v9
saveflags v3
v7 := v0
Sub4
loadflags v3
: L43
if v2 != 2 then
again
if v3 != 2 then jump L39
Sub17
Sub9
Sub8
Sub21
return
: L44
v0 := 10
buzzer := v0
return
: L45
v0 := 2
buzzer := v0
Sub8
Sub19
Sub9
Sub8
Sub21
return
: Sub17
v1 := -1
v0 := 0
loop
v1 += 1
i := D18
i += v1
save v0
i := D19
i += v1
save v0
if v1 != 125 then
again
v5 := v8
v6 := v9
v5 += 1
v6 += 1
i := D16
v0 := v5
v1 := v6
save v1
Sub3
i := D15
i += v7
load v0
i := D13
i += v0
load v0
v2 := v0
v0 := 0
i := D17
save v0
if v2 != 0 then jump L49
return
: L47
saveflags v3
Sub3
loadflags v3
i := D15
i += v7
load v0
i := D14
i += v0
load v1
v3 := v0
v4 := v1
if v2 != v3 then jump L48
i := D15
i += v7
load v0
v0 += 1
i := D13
i += v0
load v0
v2 := v0
jump L49
: L48
if v2 != v4 then return
i := D15
i += v7
load v0
i := D13
i += v0
load v0
v2 := v0
: L49
i := D17
load v0
i := D18
i += v0
v0 := v5
save v0
i := D17
load v0
i := D19
i += v0
v0 := v6
save v0
i := D17
load v0
v0 += 1
save v0
v0 := 1
if v2 == 1 then v6 -= v0
if v2 == 2 then v5 += 1
if v2 == 3 then v6 += 1
if v2 == 4 then v5 -= v0
i := D16
load v1
if v0 != v5 then jump L50
if v1 != v6 then jump L50
jump L51
: L50
jump L47
: L51
saveflags v3
Sub3
loadflags v3
i := D15
i += v7
load v0
i := D14
i += v0
load v1
v3 := v0
v4 := v1
if v2 != v3 then jump L52
jump L53
: L52
if v2 != v4 then return
: L53
Sub18
Sub28
return
: Sub18
i := D17
load v0
v2 := v0
v0 := 1
v2 -= v0
v1 := -1
if vA == 11 then v1 := 0
loop
v0 := 1
buzzer := v0
v1 += 1
i := D18
i += v1
load v0
v5 := v0
i := D19
i += v1
load v0
v6 := v0
v4 := 6
saveflags v3
Sub3
v0 := v4
v4 := v7
v7 := v0
Sub4
v7 := v4
Sub1
if vA != 11 then jump L55
v7 := 2
Sub29
jump L56
: L55
i := D37
load v0
i := D38
i += v0
load v0
v7 := v0
Sub29
: L56
loadflags v3
if v1 != v2 then
again
return
: Sub19
v1 := -1
v0 := 0
loop
v1 += 1
i := D18
i += v1
save v0
i := D19
i += v1
save v0
if v1 != 125 then
again
v0 := 0
i := D17
save v0
i := D20
v0 := 0
save v0
loop
v5 := v8
v6 := v9
v5 += 1
v6 += 1
i := D16
v0 := v5
v1 := v6
save v1
saveflags v3
Sub3
loadflags v3
i := D20
load v0
v1 := v0
i := D15
i += v7
load v0
v0 += v1
i := D13
i += v0
load v0
v2 := v0
if v2 != 0 then jump L61
jump L63
: L59
saveflags v3
Sub3
loadflags v3
i := D15
i += v7
load v0
i := D14
i += v0
load v1
v3 := v0
v4 := v1
if v2 != v3 then jump L60
i := D15
i += v7
load v0
v0 += 1
i := D13
i += v0
load v0
v2 := v0
jump L61
: L60
if v2 != v4 then jump L63
i := D15
i += v7
load v0
i := D13
i += v0
load v0
v2 := v0
: L61
i := D17
load v0
if v0 == 0 then jump L62
i := D18
i += v0
v0 := v5
save v0
i := D17
load v0
i := D19
i += v0
v0 := v6
save v0
: L62
i := D17
load v0
v0 += 1
save v0
v0 := 1
if v2 == 1 then v6 -= v0
if v2 == 2 then v5 += 1
if v2 == 3 then v6 += 1
if v2 == 4 then v5 -= v0
jump L59
: L63
i := D20
load v0
v0 += 1
if v0 == 2 then jump L64
save v0
again
: L64
Sub18
return
: Sub20
v2 := 55
i := D21
i += v7
load v0
i := D2
sprite v0 v2 5
return
: Sub21
i := D22
load v0
v1 := v0
v0 := 1
v1 -= v0
v0 := 30
save v0
if v1 == 29 then jump L66
loop
v1 += 1
v7 := v1
saveflags v1
Sub20
loadflags v1
if v1 != 29 then
again
: L66
i := D37
load v0
i := D39
i += v0
load v0
delay := v0
return
: Sub22
v0 := delay
if v0 != 0 then return
i := D22
load v0
v1 := 1
v0 -= v1
save v0
v7 := v0
Sub20
i := D37
load v0
i := D39
i += v0
load v0
delay := v0
return
: Sub23
v2 := 1
i := D23
i += v7
load v0
i := D3
sprite v2 v0 4
return
: Sub24
v7 := 0
Sub23
v7 := 1
Sub23
v7 := 2
Sub23
return
: Sub25
i := D24
load v0
v7 := v0
v1 := 1
v0 -= v1
save v0
Sub23
return
: Sub26
v1 := -1
v4 := 55
loop
v1 += 1
i := D26
i += v1
load v0
v2 := v0
i := D28
i += v1
load v0
v3 := v0
i := D25
i += v3
load v0
i := D4
i += v0
sprite v2 v4 5
if v1 != 2 then
again
return
: Sub27
v1 := -1
v4 := 55
loop
v1 += 1
i := D27
i += v1
load v0
v2 := v0
i := D31
i += v1
load v0
v3 := v0
i := D25
i += v3
load v0
i := D4
i += v0
sprite v2 v4 5
if v1 != 5 then
again
return
: Sub28
Sub26
v1 := 3
loop
v0 := 1
v1 -= v0
i := D28
i += v1
load v0
if v0 == 9 then jump L70
v0 += 1
save v0
jump L71
: L70
v0 := 0
save v0
if v1 != 0 then
again
v0 := 0
i := D28
save v0
i := D29
save v0
i := D30
save v0
: L71
Sub26
return
: Sub29
Sub27
v2 := 0
: L72
v2 += 1
v1 := 6
loop
v0 := 1
v1 -= v0
i := D31
i += v1
load v0
if v0 == 9 then jump L74
v0 += 1
save v0
jump L75
: L74
v0 := 0
save v0
if v1 != 0 then
again
v0 := 0
i := D31
save v0
i := D32
save v0
i := D33
save v0
i := D34
save v0
i := D35
save v0
i := D36
save v0
: L75
if v2 != v7 then jump L72
Sub27
return
: Sub30
Sub10
if v7 != 0 then return
vA := 11
v3 := -1
: L76
v3 += 1
v2 := -1
loop
v2 += 1
v5 := v2
v5 += 1
v6 := v3
v6 += 1
Sub3
if v7 == 6 then jump L78
i := D40
v0 := v2
save v0
i := D41
v0 := v3
save v0
v8 := v2
v9 := v3
Sub19
i := D40
load v0
v2 := v0
i := D41
load v0
v3 := v0
saveflags v3
Sub10
loadflags v3
if v7 != 0 then return
: L78
if v2 != 17 then
again
if v3 != 6 then jump L76
return
: D1
0x7c 0xfc 0xc0 0xc0 0xcc 0xcc 0xf8 0xfc 0xc 0xc 0xcc 0xcc 0xcc 0xcc 0xc0 0xc0 0xfc 0x7c 0xcc 0xcc 0xc 0xc 0xfc 0xf8 0xcc 0xcc 0xcc 0xcc 0xcc 0xcc 0xfc 0xfc 0x0 0x0 0xfc 0xfc 0x0 0x0 0x0 0x0 0x0 0x0 0xa8 0x54 0xa8 0x54 0xa8 0x54 0x30 0x78 0xfc 0xfc 0x78 0x30
: D2
0xc0 0xc0 0xc0 0xc0 0xc0
: D3
0x60 0xf0 0xd0 0x60
: D4
0x40 0xa0 0xa0 0xa0 0x40 0x40 0xc0 0x40 0x40 0xe0 0xc0 0x20 0x40 0x80 0xe0 0xe0 0x20 0x40 0x20 0xe0 0x80 0xa0 0xe0 0x20 0x20 0xe0 0x80 0xc0 0x20 0xe0 0x60 0x80 0xc0 0xa0 0xe0 0xe0 0x20 0x40 0x40 0x40 0xe0 0xa0 0x40 0xa0 0xe0 0xe0 0xa0 0x60 0x20 0xc0
: D5
0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7
: D6
0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7
: D7
0x0
: D8
0x0 0x0 0x1 0x1 0x0 0x0 0x2 0x2 0x0 0x0 0x3 0x3 0x0 0x0 0x4 0x4 0x0 0x0 0x5 0x5 0x0 0x0 0x6 0x6 0x0 0x0 0x7 0x7 0x0 0x0 0x8 0x8 0x0 0x1 0x8 0x9 0x0 0x2 0x8 0xa 0x0 0x3 0x8 0xb 0x0 0x4 0x8 0xc 0x0 0x5 0x8 0xd 0x0 0x6 0x8 0xe 0x0 0x7 0x8 0xf 0x0 0x8 0x8 0x10 0x0 0x9 0x8 0x11 0x0 0xa 0x8 0x12 0x0 0xb 0x8 0x13 0x0 0xc 0x8 0x13 0x1 0xd 0x8 0x13 0x2 0xe 0x8 0x13 0x3 0xf 0x8 0x13 0x4 0x10 0x8 0x13 0x5 0x11 0x8 0x13 0x6 0x12 0x8 0x13 0x7 0x13 0x8
: D9
0x6 0xc 0x12 0x18 0x1e 0x24 0x2a 0x30 0x36 0x3c 0x42 0x48 0x4e 0x54 0x5a 0x60 0x66 0x6c 0x72 0x78
: D10
0x0 0x6 0xc 0x12 0x18 0x1e 0x24 0x2a 0x30
: D11
0x0 0x9 0x12 0x1b
: D12
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xb 0xb 0xb 0xb 0xb 0xb
: D13
0x2 0x3 0x4 0x3 0x1 0x2 0x1 0x4 0x1 0x3 0x4 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D14
0x4 0x1 0x2 0x1 0x3 0x4 0x3 0x2 0x3 0x1 0x2 0x4 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D15
0x0 0x2 0x4 0x6 0x8 0xa 0xc 0xe 0x10 0x12
: D16
0x0 0x0
: D17
0x0
: D18
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D19
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D20
0x0
: D21
0x24 0x26 0x28 0x2a 0x2c 0x2e 0x30 0x32 0x34 0x36 0x38 0x3a 0x3c 0x3e 0x40 0x42 0x44 0x46 0x48 0x4a 0x4c 0x4e 0x50 0x52 0x54 0x56 0x58 0x5a 0x5c 0x5e
: D22
0x0
: D23
0x32 0x2d 0x28
: D24
0x0
: D25
0x0 0x5 0xa 0xf 0x14 0x19 0x1e 0x23 0x28 0x2d
: D26
0x6 0xa 0xe
: D27
0x67 0x6b 0x6f 0x73 0x77 0x7b
: D28
0x0
: D29
0x0
: D30
0x0
: D31
0x0
: D32
0x0
: D33
0x0
: D34
0x0
: D35
0x0
: D36
0x0
: D37
0x0
: D38
0x3 0x6 0x9 0xc 0xf 0x12 0x15 0x18 0x1b 0x1e
: D39
0x16 0x14 0x12 0x10 0xe 0xc 0xa 0x8 0x6 0x4
: D40
0x0
: D41
0x0
: D42
0xff 0xff 0xff 0xff 0x2 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x3 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x1 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x5 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x5 0xff 0xff 0xff 0xff 0xff 0x4 0xff 0xff 0x2 0x5 0xff 0xff 0xff 0xff 0x4 0xff 0x5 0x3 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x5 0x1 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0xff 0x0 0x5 0xff 0x4 0xff 0xff 0xff 0xff 0x0 0x5 0x1 0x4 0xff 0x4 0xff 0x0 0x5 0xff 0x4 0xff 0xff 0x2 0x5 0x4 0xff 0x4 0x2 0x5 0x3 0xff 0xff 0xff 0x5 0x1 0xff 0xff 0x4 0xff 0x5 0x3 0xff 0xff 0xff 0xff 0x5 0x5 0x5 0xff 0xff 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0x5 0x5 0x5 0xff 0xff 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0x5 0x5 0x1 0xff 0xff 0x4 0xff 0x0 0x5 0xff 0x4 0xff 0xff 0x4 0xff 0x4 0xff 0xff 0x2 0x5 0x5 0xff 0xff 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0x5 0x3 0xff
: D43
0xff 0xff 0xff 0x0 0x5 0x5 0x4 0xff 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0xff 0x2 0x5 0xff 0xff 0x4 0x5 0x5 0x3 0xff 0xff 0xff 0x5 0x1 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0x4 0xff 0xff 0x2 0x1 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0xff 0x0 0x5 0x5 0x3 0xff 0x4 0xff 0xff 0x2 0x1 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0xff 0x0 0x5 0x5 0x3 0xff 0xff 0xff 0x4 0xff 0x0 0x3 0xff 0x4 0xff 0x5 0x1 0xff 0xff 0x2 0x5 0xff 0xff 0xff 0xff 0xff 0x4 0xff 0x0 0x3 0xff 0x4 0xff 0x5 0x1 0xff 0xff 0x2 0x5 0xff 0xff 0xff 0x4 0xff 0xff 0x2 0x5 0x1 0xff 0xff 0x4 0xff 0x0 0x5 0xff 0x4 0xff 0x5 0x3 0xff 0x4 0xff 0xff 0x2 0x5 0x1 0xff 0xff 0x4 0xff 0x0 0x5 0xff 0x4 0xff 0x5 0x3 0xff 0xff 0xff 0x4 0x0 0x5 0x3 0x4 0xff 0xff 0x5 0x1 0xff 0xff 0x4 0xff 0xff 0x2 0x5 0xff 0xff 0x4 0x0 0x5 0x3 0x4 0xff 0xff 0x5 0x1 0xff 0xff 0x4 0xff 0xff 0x2 0x5 0xff 0xff 0xff 0xff 0x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x8 0xff 0xff 0xff 0xff 0x0
######################################################################
# INPUT: chip8/SuperChip Games/Loopz (with difficulty select) [Hap, 2006].ch8
######################################################################
:proto L1 # F9E
:proto Sub1 # FC4
:proto Sub2 # FCE
:proto Sub3 # FDA
:proto Sub4 # FE0
:proto L4 # FE6
: main
jump L1
0x28 0x63 0x29 0x20 0x41 0x2e 0x44 0x61 0x75 0x6d 0x61 0x6e 0x6e 0x0 0xe0 0x0 0xff 0xf2 0x85 0x31 0xaa 0x0 0xfd 0x32 0xaa 0x0 0xfd 0xad 0xd6 0xf0 0x55 0x23 0x13 0x23 0x69 0x60 0x0 0xad 0xb5 0xf0 0x55 0x27 0x6b 0xad 0xb9 0x60 0x2 0xf0 0x55 0x27 0xc9 0x60 0x0 0xad 0xcd 0xf0 0x55 0xad 0xce 0xf0 0x55 0xad 0xcf 0xf0 0x55 0xad 0xd0 0xf0 0x55 0xad 0xd1 0xf0 0x55 0xad 0xd2 0xf0 0x55 0xad 0xd3 0xf0 0x55 0xad 0xd4 0xf0 0x55 0xad 0xd5 0xf0 0x55 0x27 0xe7 0x28 0xf 0x68 0x8 0x69 0x3 0x24 0x7 0x23 0xc9 0x60 0x7 0xe0 0xa1 0x24 0x55 0x60 0x8 0xe0 0xa1 0x24 0x49 0x60 0xc 0xe0 0xa1 0x24 0x6f 0x60 0xd 0xe0 0xa1 0x24 0x63 0x60 0x6 0xe0 0xa1 0x24 0x7d 0x60 0x5 0xe0 0xa1 0x24 0x8d 0x27 0x99 0xad 0xb5 0xf0 0x65 0x30 0x0 0x12 0x67 0x27 0xd7 0xad 0xb9 0xf0 0x65 0x30 0xff 0x12 0xa1 0x12 0xc1 0x60 0xff 0x70 0x1 0x61 0xf 0xf1 0x18 0x61 0x28 0xf1 0x15 0xf1 0x7 0x31 0x0 0x12 0xad 0x30 0x2 0x12 0xa3 0x27 0x6b 0x23 0xc9 0x24 0x7 0x23 0xc9 0x12 0x67 0x23 0xc9 0x28 0xaf 0x60 0xff 0x70 0x2 0x61 0xf 0xf0 0x18 0x61 0xb 0xf1 0x15 0xf1 0x7 0x31 0x0 0x12 0xd1 0x30 0xb 0x12 0xc7 0xad 0xd0 0xf5 0x65 0x66 0xaa 0x67 0xaa 0xf7 0x75 0xf0 0xa 0x60 0xff 0x70 0x1 0x0 0xc1 0x30 0x40 0x12 0xe9 0x0 0xfd 0xab 0x44 0xf5 0x1e 0xf0 0x65 0x82 0x0 0xab 0x58 0xf6 0x1e 0xf0 0x65 0x83 0x0 0x61 0x6 0xab 0x58 0xf7 0x1e 0xf0 0x65 0xa8 0xff 0xf0 0x1e 0xd2 0x36 0x0 0xee 0x61 0xff 0x71 0x1 0xa9 0x70 0xf1 0x1e 0xf0 0x65 0xaa 0x24 0xf1 0x1e 0xf0 0x55 0x31 0xb3 0x13 0x15 0x0 0xee 0x61 0xeb 0x60 0xff 0x70 0x1 0x71 0x1 0x50 0x50 0x13 0x2d 0x60 0xff 0x70 0x1 0x71 0x14 0x50 0x60 0x13 0x37 0xaa 0x24 0xf1 0x1e 0xf0 0x65 0x87 0x0 0x0 0xee 0x61 0xeb 0x60 0xff 0x70 0x1 0x71 0x1 0x50 0x50 0x13 0x4d 0x60 0xff 0x70 0x1 0x71 0x14 0x50 0x60 0x13 0x57 0xaa 0x24 0xf1 0x1e 0x80 0x70 0xf0 0x55 0x0 0xee 0x61 0xfe 0x67 0x7 0x71 0x2 0xaa 0xd8 0xf1 0x1e 0xf0 0x65 0x85 0x0 0xaa 0xd9 0xf1 0x1e 0xf0 0x65 0x86 0x0 0xf1 0x75 0x22 0xf3 0xf1 0x85 0x31 0x6a 0x13 0x6d 0x0 0xee 0x4a 0x6 0x13 0xa9 0x4a 0x7 0x13 0xa9 0x4a 0x8 0x13 0xa9 0x4a 0x9 0x13 0xa9 0x4a 0xa 0x13 0xa9 0x4a 0xb 0x13 0xa9 0x6d 0x0 0x87 0xa0 0x13 0xb1 0x6d 0x1 0x87 0xa0 0x60 0x6 0x87 0x5 0x6e 0xdc 0x60 0xff 0x7e 0x24 0x70 0x1 0x50 0x70 0x13 0xb5 0x0 0xee 0xab 0x61 0xfb 0x1e 0xf0 0x65 0x8c 0x0 0x0 0xee 0x23 0xbf 0x61 0xff 0x63 0xff 0x62 0xff 0x73 0x1 0x72 0x1 0x71 0x1 0x3d 0x0 0x13 0xdf 0xad 0xed 0x13 0xe1 0xae 0xc5 0xfe 0x1e 0xfc 0x1e 0xf1 0x1e 0xf0 0x65 0x40 0xff 0x13 0xfd 0x85 0x20 0x85 0x84 0x86 0x30 0x86 0x94 0x87 0x0 0xf3 0x75 0x22 0xf3 0xf3 0x85 0x32 0x2 0x13 0xd3 0x33 0x2 0x13 0xcf 0x0 0xee 0x61 0x0 0xc1 0xff 0xab 0x65 0xf1 0x1e 0xf0 0x65 0x8a 0x0 0x6b 0x0 0x23 0x8b 0x3a 0xb 0x0 0xee 0x24 0x29 0x37 0x1 0x0 0xee 0x6a 0x0 0x6b 0x0 0x23 0x8b 0x0 0xee 0x67 0x0 0x62 0x0 0x61 0xff 0x71 0x1 0xaa 0x24 0xf1 0x1e 0xf0 0x65 0x30 0x6 0x14 0x3d 0x72 0x1 0x31 0xb3 0x14 0x2f 0x32 0x7e 0x0 0xee 0x67 0x1 0x0 0xee 0x48 0x11 0x14 0x53 0x23 0xc9 0x78 0x1 0x23 0xc9 0x0 0xee 0x48 0x0 0x14 0x61 0x23 0xc9 0x60 0x1 0x88 0x5 0x23 0xc9 0x0 0xee 0x49 0x6 0x14 0x6d 0x23 0xc9 0x79 0x1 0x23 0xc9 0x0 0xee 0x49 0x0 0x14 0x7b 0x23 0xc9 0x60 0x1 0x89 0x5 0x23 0xc9 0x0 0xee 0x23 0xc9 0x4b 0x3 0x14 0x87 0x7b 0x1 0x14 0x89 0x6b 0x0 0x23 0xc9 0x0 0xee 0x23 0xbf 0x61 0xff 0x64 0x0 0x63 0xff 0x62 0xff 0x73 0x1 0x72 0x1 0x71 0x1 0x3d 0x0 0x14 0xa5 0xad 0xed 0x14 0xa7 0xae 0xc5 0xfe 0x1e 0xfc 0x1e 0xf1 0x1e 0xf0 0x65 0x40 0xff 0x14 0xc7 0x85 0x20 0x85 0x84 0x86 0x30 0x86 0x94 0xf3 0x75 0x23 0x29 0xf3 0x85 0x47 0x6 0x14 0xc7 0x64 0x1 0x32 0x2 0x14 0x99 0x33 0x2 0x14 0x95 0x34 0x0 0x14 0xd9 0x4a 0xb 0x15 0x2b 0x14 0xdf 0x4a 0xb 0x15 0x31 0x15 0x2b 0x60 0x2 0xf0 0x18 0x23 0xbf 0x61 0xff 0x64 0x0 0x63 0xff 0x62 0xff 0x73 0x1 0x72 0x1 0x71 0x1 0x3d 0x0 0x14 0xfb 0xad 0xed 0x14 0xfd 0xae 0xc5 0xfe 0x1e 0xfc 0x1e 0xf1 0x1e 0xf0 0x65 0x40 0xff 0x15 0x19 0x85 0x20 0x85 0x84 0x86 0x30 0x86 0x94 0xf3 0x75 0x87 0x0 0x23 0x49 0xf3 0x85 0x32 0x2 0x14 0xef 0x33 0x2 0x14 0xeb 0x25 0x41 0x24 0x7 0x23 0xc9 0x27 0x6b 0x0 0xee 0x60 0xa 0xf0 0x18 0x0 0xee 0x60 0x2 0xf0 0x18 0x23 0xc9 0x26 0x81 0x24 0x7 0x23 0xc9 0x27 0x6b 0x0 0xee 0x61 0xff 0x60 0x0 0x71 0x1 0xac 0x9a 0xf1 0x1e 0xf0 0x55 0xad 0x18 0xf1 0x1e 0xf0 0x55 0x31 0x7d 0x15 0x45 0x85 0x80 0x86 0x90 0x75 0x1 0x76 0x1 0xac 0x97 0x80 0x50 0x81 0x60 0xf1 0x55 0x23 0x29 0xac 0x8d 0xf7 0x1e 0xf0 0x65 0xac 0x65 0xf0 0x1e 0xf0 0x65 0x82 0x0 0x60 0x0 0xac 0x99 0xf0 0x55 0x32 0x0 0x15 0xc1 0x0 0xee 0xf3 0x75 0x23 0x29 0xf3 0x85 0xac 0x8d 0xf7 0x1e 0xf0 0x65 0xac 0x79 0xf0 0x1e 0xf1 0x65 0x83 0x0 0x84 0x10 0x52 0x30 0x15 0xaf 0xac 0x8d 0xf7 0x1e 0xf0 0x65 0x70 0x1 0xac 0x65 0xf0 0x1e 0xf0 0x65 0x82 0x0 0x15 0xc1 0x52 0x40 0x0 0xee 0xac 0x8d 0xf7 0x1e 0xf0 0x65 0xac 0x65 0xf0 0x1e 0xf0 0x65 0x82 0x0 0xac 0x99 0xf0 0x65 0xac 0x9a 0xf0 0x1e 0x80 0x50 0xf0 0x55 0xac 0x99 0xf0 0x65 0xad 0x18 0xf0 0x1e 0x80 0x60 0xf0 0x55 0xac 0x99 0xf0 0x65 0x70 0x1 0xf0 0x55 0x60 0x1 0x42 0x1 0x86 0x5 0x42 0x2 0x75 0x1 0x42 0x3 0x76 0x1 0x42 0x4 0x85 0x5 0xac 0x97 0xf1 0x65 0x50 0x50 0x16 0x1 0x51 0x60 0x16 0x1 0x16 0x3 0x15 0x83 0xf3 0x75 0x23 0x29 0xf3 0x85 0xac 0x8d 0xf7 0x1e 0xf0 0x65 0xac 0x79 0xf0 0x1e 0xf1 0x65 0x83 0x0 0x84 0x10 0x52 0x30 0x16 0x1f 0x16 0x23 0x52 0x40 0x0 0xee 0x26 0x29 0x28 0x37 0x0 0xee 0xac 0x99 0xf0 0x65 0x82 0x0 0x60 0x1 0x82 0x5 0x61 0xff 0x4a 0xb 0x61 0x0 0x60 0x1 0xf0 0x18 0x71 0x1 0xac 0x9a 0xf1 0x1e 0xf0 0x65 0x85 0x0 0xad 0x18 0xf1 0x1e 0xf0 0x65 0x86 0x0 0x64 0x6 0xf3 0x75 0x23 0x29 0x80 0x40 0x84 0x70 0x87 0x0 0x23 0x49 0x87 0x40 0x22 0xf3 0x3a 0xb 0x16 0x6b 0x67 0x2 0x28 0x69 0x16 0x79 0xad 0xd6 0xf0 0x65 0xad 0xd7 0xf0 0x1e 0xf0 0x65 0x87 0x0 0x28 0x69 0xf3 0x85 0x51 0x20 0x16 0x39 0x0 0xee 0x61 0xff 0x60 0x0 0x71 0x1 0xac 0x9a 0xf1 0x1e 0xf0 0x55 0xad 0x18 0xf1 0x1e 0xf0 0x55 0x31 0x7d 0x16 0x85 0x60 0x0 0xac 0x99 0xf0 0x55 0xad 0x96 0x60 0x0 0xf0 0x55 0x85 0x80 0x86 0x90 0x75 0x1 0x76 0x1 0xac 0x97 0x80 0x50 0x81 0x60 0xf1 0x55 0xf3 0x75 0x23 0x29 0xf3 0x85 0xad 0x96 0xf0 0x65 0x81 0x0 0xac 0x8d 0xf7 0x1e 0xf0 0x65 0x80 0x14 0xac 0x65 0xf0 0x1e 0xf0 0x65 0x82 0x0 0x32 0x0 0x17 0x13 0x17 0x4b 0xf3 0x75 0x23 0x29 0xf3 0x85 0xac 0x8d 0xf7 0x1e 0xf0 0x65 0xac 0x79 0xf0 0x1e 0xf1 0x65 0x83 0x0 0x84 0x10 0x52 0x30 0x17 0x1 0xac 0x8d 0xf7 0x1e 0xf0 0x65 0x70 0x1 0xac 0x65 0xf0 0x1e 0xf0 0x65 0x82 0x0 0x17 0x13 0x52 0x40 0x17 0x4b 0xac 0x8d 0xf7 0x1e 0xf0 0x65 0xac 0x65 0xf0 0x1e 0xf0 0x65 0x82 0x0 0xac 0x99 0xf0 0x65 0x40 0x0 0x17 0x2f 0xac 0x9a 0xf0 0x1e 0x80 0x50 0xf0 0x55 0xac 0x99 0xf0 0x65 0xad 0x18 0xf0 0x1e 0x80 0x60 0xf0 0x55 0xac 0x99 0xf0 0x65 0x70 0x1 0xf0 0x55 0x60 0x1 0x42 0x1 0x86 0x5 0x42 0x2 0x75 0x1 0x42 0x3 0x76 0x1 0x42 0x4 0x85 0x5 0x16 0xd5 0xad 0x96 0xf0 0x65 0x70 0x1 0x40 0x2 0x17 0x59 0xf0 0x55 0x16 0xa3 0x26 0x29 0x0 0xee 0x62 0x37 0xad 0x97 0xf7 0x1e 0xf0 0x65 0xa9 0x35 0xd0 0x25 0x0 0xee 0xad 0xb5 0xf0 0x65 0x81 0x0 0x60 0x1 0x81 0x5 0x60 0x1e 0xf0 0x55 0x41 0x1d 0x17 0x8b 0x71 0x1 0x87 0x10 0xf1 0x75 0x27 0x5d 0xf1 0x85 0x31 0x1d 0x17 0x7d 0xad 0xd6 0xf0 0x65 0xad 0xe1 0xf0 0x1e 0xf0 0x65 0xf0 0x15 0x0 0xee 0xf0 0x7 0x30 0x0 0x0 0xee 0xad 0xb5 0xf0 0x65 0x61 0x1 0x80 0x15 0xf0 0x55 0x87 0x0 0x27 0x5d 0xad 0xd6 0xf0 0x65 0xad 0xe1 0xf0 0x1e 0xf0 0x65 0xf0 0x15 0x0 0xee 0x62 0x1 0xad 0xb6 0xf7 0x1e 0xf0 0x65 0xa9 0x3a 0xd2 0x4 0x0 0xee 0x67 0x0 0x27 0xbb 0x67 0x1 0x27 0xbb 0x67 0x2 0x27 0xbb 0x0 0xee 0xad 0xb9 0xf0 0x65 0x87 0x0 0x61 0x1 0x80 0x15 0xf0 0x55 0x27 0xbb 0x0 0xee 0x61 0xff 0x64 0x37 0x71 0x1 0xad 0xc4 0xf1 0x1e 0xf0 0x65 0x82 0x0 0xad 0xcd 0xf1 0x1e 0xf0 0x65 0x83 0x0 0xad 0xba 0xf3 0x1e 0xf0 0x65 0xa9 0x3e 0xf0 0x1e 0xd2 0x45 0x31 0x2 0x17 0xeb 0x0 0xee 0x61 0xff 0x64 0x37 0x71 0x1 0xad 0xc7 0xf1 0x1e 0xf0 0x65 0x82 0x0 0xad 0xd0 0xf1 0x1e 0xf0 0x65 0x83 0x0 0xad 0xba 0xf3 0x1e 0xf0 0x65 0xa9 0x3e 0xf0 0x1e 0xd2 0x45 0x31 0x5 0x18 0x13 0x0 0xee 0x27 0xe7 0x61 0x3 0x60 0x1 0x81 0x5 0xad 0xcd 0xf1 0x1e 0xf0 0x65 0x40 0x9 0x18 0x4f 0x70 0x1 0xf0 0x55 0x18 0x65 0x60 0x0 0xf0 0x55 0x31 0x0 0x18 0x3b 0x60 0x0 0xad 0xcd 0xf0 0x55 0xad 0xce 0xf0 0x55 0xad 0xcf 0xf0 0x55 0x27 0xe7 0x0 0xee 0x28 0xf 0x62 0x0 0x72 0x1 0x61 0x6 0x60 0x1 0x81 0x5 0xad 0xd0 0xf1 0x1e 0xf0 0x65 0x40 0x9 0x18 0x85 0x70 0x1 0xf0 0x55 0x18 0xa7 0x60 0x0 0xf0 0x55 0x31 0x0 0x18 0x71 0x60 0x0 0xad 0xd0 0xf0 0x55 0xad 0xd1 0xf0 0x55 0xad 0xd2 0xf0 0x55 0xad 0xd3 0xf0 0x55 0xad 0xd4 0xf0 0x55 0xad 0xd5 0xf0 0x55 0x52 0x70 0x18 0x6d 0x28 0xf 0x0 0xee 0x24 0x29 0x37 0x0 0x0 0xee 0x6a 0xb 0x63 0xff 0x73 0x1 0x62 0xff 0x72 0x1 0x85 0x20 0x75 0x1 0x86 0x30 0x76 0x1 0x23 0x29 0x47 0x6 0x18 0xf5 0xad 0xeb 0x80 0x20 0xf0 0x55 0xad 0xec 0x80 0x30 0xf0 0x55 0x88 0x20 0x89 0x30 0x26 0x81 0xad 0xeb 0xf0 0x65 0x82 0x0 0xad 0xec 0xf0 0x65 0x83 0x0 0xf3 0x75 0x24 0x29 0xf3 0x85 0x37 0x0 0x0 0xee 0x32 0x11 0x18 0xbd 0x33 0x6 0x18 0xb9 0x0 0xee 0x7c 0xfc 0xc0 0xc0 0xcc 0xcc 0xf8 0xfc 0xc 0xc 0xcc 0xcc 0xcc 0xcc 0xc0 0xc0 0xfc 0x7c 0xcc 0xcc 0xc 0xc 0xfc 0xf8 0xcc 0xcc 0xcc 0xcc 0xcc 0xcc 0xfc 0xfc 0x0 0x0 0xfc 0xfc 0x0 0x0 0x0 0x0 0x0 0x0 0xa8 0x54 0xa8 0x54 0xa8 0x54 0x30 0x78 0xfc 0xfc 0x78 0x30 0xc0 0xc0 0xc0 0xc0 0xc0 0x60 0xf0 0xd0 0x60 0x40 0xa0 0xa0 0xa0 0x40 0x40 0xc0 0x40 0x40 0xe0 0xc0 0x20 0x40 0x80 0xe0 0xe0 0x20 0x40 0x20 0xe0 0x80 0xa0 0xe0 0x20 0x20 0xe0 0x80 0xc0 0x20 0xe0 0x60 0x80 0xc0 0xa0 0xe0 0xe0 0x20 0x40 0x40 0x40 0xe0 0xa0 0x40 0xa0 0xe0 0xe0 0xa0 0x60 0x20 0xc0 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x0 0x0 0x0 0x1 0x1 0x0 0x0 0x2 0x2 0x0 0x0 0x3 0x3 0x0 0x0 0x4 0x4 0x0 0x0 0x5 0x5 0x0 0x0 0x6 0x6 0x0 0x0 0x7 0x7 0x0 0x0 0x8 0x8 0x0 0x1 0x8 0x9 0x0 0x2 0x8 0xa 0x0 0x3 0x8 0xb 0x0 0x4 0x8 0xc 0x0 0x5 0x8 0xd 0x0 0x6 0x8 0xe 0x0 0x7 0x8 0xf 0x0 0x8 0x8 0x10 0x0 0x9 0x8 0x11 0x0 0xa 0x8 0x12 0x0 0xb 0x8 0x13 0x0 0xc 0x8 0x13 0x1 0xd 0x8 0x13 0x2 0xe 0x8 0x13 0x3 0xf 0x8 0x13 0x4 0x10 0x8 0x13 0x5 0x11 0x8 0x13 0x6 0x12 0x8 0x13 0x7 0x13 0x8 0x6 0xc 0x12 0x18 0x1e 0x24 0x2a 0x30 0x36 0x3c 0x42 0x48 0x4e 0x54 0x5a 0x60 0x66 0x6c 0x72 0x78 0x0 0x6 0xc 0x12 0x18 0x1e 0x24 0x2a 0x30 0x0 0x9 0x12 0x1b 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x4 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x5 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x6 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x7 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xb 0xb 0xb 0xb 0xb 0xb 0x2 0x3 0x4 0x3 0x1 0x2 0x1 0x4 0x1 0x3 0x4 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0x1 0x2 0x1 0x3 0x4 0x3 0x2 0x3 0x1 0x2 0x4 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x4 0x6 0x8 0xa 0xc 0xe 0x10 0x12 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x24 0x26 0x28 0x2a 0x2c 0x2e 0x30 0x32 0x34 0x36 0x38 0x3a 0x3c 0x3e 0x40 0x42 0x44 0x46 0x48 0x4a 0x4c 0x4e 0x50 0x52 0x54 0x56 0x58 0x5a 0x5c 0x5e 0x0 0x32 0x2d 0x28 0x0 0x0 0x5 0xa 0xf 0x14 0x19 0x1e 0x23 0x28 0x2d 0x6 0xa 0xe 0x67 0x6b 0x6f 0x73 0x77 0x7b 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x3 0x6 0x9 0xc 0xf 0x12 0x15 0x18 0x1b 0x1e 0x16 0x14 0x12 0x10 0xe 0xc 0xa 0x8 0x6 0x4 0x0 0x0 0xff 0xff 0xff 0xff 0x2 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x3 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x1 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x5 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x5 0xff 0xff 0xff 0xff 0xff 0x4 0xff 0xff 0x2 0x5 0xff 0xff 0xff 0xff 0x4 0xff 0x5 0x3 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x5 0x1 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0xff 0x0 0x5 0xff 0x4 0xff 0xff 0xff 0xff 0x0 0x5 0x1 0x4 0xff 0x4 0xff 0x0 0x5 0xff 0x4 0xff 0xff 0x2 0x5 0x4 0xff 0x4 0x2 0x5 0x3 0xff 0xff 0xff 0x5 0x1 0xff 0xff 0x4 0xff 0x5 0x3 0xff 0xff 0xff 0xff 0x5 0x5 0x5 0xff 0xff 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0x5 0x5 0x5 0xff 0xff 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0x5 0x5 0x1 0xff 0xff 0x4 0xff 0x0 0x5 0xff 0x4 0xff 0xff 0x4 0xff 0x4 0xff 0xff 0x2 0x5 0x5 0xff 0xff 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0x5 0x3 0xff 0xff 0xff 0xff 0x0 0x5 0x5 0x4 0xff 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0xff 0x2 0x5 0xff 0xff 0x4 0x5 0x5 0x3 0xff 0xff 0xff 0x5 0x1 0xff 0xff 0x4 0xff 0xff 0x4 0xff 0x4 0xff 0xff 0x2 0x1 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0xff 0x0 0x5 0x5 0x3 0xff 0x4 0xff 0xff 0x2 0x1 0xff 0xff 0x4 0xff 0xff 0xff 0xff 0xff 0x0 0x5 0x5 0x3 0xff 0xff 0xff 0x4 0xff 0x0 0x3 0xff 0x4 0xff 0x5 0x1 0xff 0xff 0x2 0x5 0xff 0xff 0xff 0xff 0xff 0x4 0xff 0x0 0x3 0xff 0x4 0xff 0x5 0x1 0xff 0xff 0x2 0x5 0xff 0xff 0xff 0x4 0xff 0xff 0x2 0x5 0x1 0xff 0xff 0x4 0xff 0x0 0x5 0xff 0x4 0xff 0x5 0x3 0xff 0x4 0xff 0xff 0x2 0x5 0x1 0xff 0xff 0x4 0xff 0x0 0x5 0xff 0x4 0xff 0x5 0x3 0xff 0xff 0xff 0x4 0x0 0x5 0x3 0x4 0xff 0xff 0x5 0x1 0xff 0xff 0x4 0xff 0xff 0x2 0x5 0xff 0xff 0x4 0x0 0x5 0x3 0x4 0xff 0xff 0x5 0x1 0xff 0xff 0x4 0xff 0xff 0x2 0x5 0xff 0xff 0xff 0xff 0x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x8 0xff 0xff 0xff 0xff 0x0
: L1
hires
clear
v0 := 13
v1 := 27
i := bighex v0
sprite v1 v1 10
v0 := 0
Sub1
loop
Sub2
v1 := key
Sub1
if v1 == 5 then jump L4
if v1 == 12 then Sub3
if v1 == 13 then Sub4
Sub1
again
: Sub1
i := bighex v0
v2 := 8
v3 := 27
sprite v2 v3 10
return
: Sub2
v1 := 16
delay := v1
loop
v1 := delay
if v1 != 0 then
again
return
: Sub3
if v0 != 9 then v0 += 1
return
: Sub4
if v0 != 0 then v0 += -1
return
: L4
clear
v2 := 2
buzzer := v2
v2 := v0
v0 := 18
v1 := 15
i := main
save v1
v0 := v2
v1 := 170
v2 := 170
saveflags v2
jump main
######################################################################
# INPUT: chip8/SuperChip Games/Magic Square [David Winter, 1997].ch8
######################################################################
:proto L1 # 223
:proto L6 # 27F
:proto L7 # 28D
:proto L11 # 2EF
:proto L12 # 2FB
:proto L13 # 309
:proto L14 # 317
:proto L15 # 329
:proto L16 # 333
:proto L17 # 341
:proto L18 # 34F
:proto Sub1 # 35F
:proto Sub2 # 365
:proto Sub3 # 37F
:proto Sub4 # 3A3
:proto D1 # 3B1
:proto D2 # 3D0
:proto D3 # 3ED
:proto D4 # 3F2
:proto D5 # 3F8
:proto D6 # 3FF
:proto D7 # 47D
: main
jump L1
0x4d 0x61 0x67 0x69 0x63 0x20 0x53 0x71 0x75 0x61 0x72 0x65 0x20 0x76 0x31 0x2e 0x30 0x20 0x62 0x79 0x20 0x44 0x61 0x76 0x69 0x64 0x20 0x57 0x49 0x4e 0x54 0x45 0x52
: L1
lores
clear
i := D7
v0 := 0
v1 := 0
v2 := 1
v7 := 0
v8 := 0
loop
save v0
i += v2
v1 += 1
if v1 != 64 then
again
i := D6
v1 := 6
v0 := 1
v2 := 11
v3 := 7
loop
sprite v1 v0 11
i += v2
v0 += 13
sprite v1 v0 7
i += v3
v0 += -13
v1 += 8
if v1 != 62 then
again
v0 := 13
v1 := 26
v2 := 5
vE := 3
i := D2
loop
sprite v0 v1 5
i += v2
v0 += 6
if v0 != 49 then
again
Sub1
loop
v2 := key
if v2 != 4 then jump L6
if vE == 3 then jump L7
Sub1
vE += -1
Sub1
: L6
if v2 != 6 then jump L7
if vE == 8 then jump L7
Sub1
vE += 1
Sub1
: L7
if v2 != 5 then
again
hires
clear
v1 := 0
loop
v8 += vE
v1 += 1
if v1 != vE then
again
vA := vE
vA += vA
vA += vA
vA += vA
v0 := 128
vA =- v0
vA >>= v0
vB := vE
vB += vB
vB += vB
vB += vB
v0 := 64
vB =- v0
vB >>= v0
v0 := vA
v1 := vB
v2 := 0
v3 := 0
i := D5
: L9
loop
sprite v0 v1 7
v0 += 8
v2 += 1
if v2 != vE then jump L9
v0 := vA
v1 += 8
v2 := 0
v3 += 1
if v3 != vE then
again
vC := 0
vD := 0
Sub2
: L10
loop
v0 := key
if v0 != 2 then jump L11
Sub2
if vD != 0 then vD += -1
Sub2
: L11
if v0 != 4 then jump L12
Sub2
if vC != 0 then vC += -1
Sub2
: L12
if v0 != 6 then jump L13
Sub2
vC += 1
if vC == vE then vC += -1
Sub2
: L13
if v0 != 8 then jump L14
Sub2
vD += 1
if vD == vE then vD += -1
Sub2
: L14
if v0 != 5 then jump L10
Sub4
Sub3
if vD == 0 then jump L15
vD += -1
Sub3
vD += 1
: L15
if vC == 0 then jump L16
vC += -1
Sub3
vC += 1
: L16
v0 := vC
v0 += 1
if v0 == vE then jump L17
vC += 1
Sub3
vC += -1
: L17
v0 := vD
v0 += 1
if v0 == vE then jump L18
vD += 1
Sub3
vD += -1
: L18
Sub4
if v7 != v8 then
again
Sub2
v0 := 32
v1 := 0
loop
Sub4
again
: Sub1
i := hex vE
sprite v0 v1 5
return
: Sub2
i := D4
: L20
v2 := vC
v3 := vD
v2 += v2
v2 += v2
v2 += v2
v2 += vA
v3 += v3
v3 += v3
v3 += v3
v3 += vB
sprite v2 v3 6
return
: Sub3
v1 := vC
v2 := vD
v2 += v2
v2 += v2
v2 += v2
v1 += v2
i := D7
i += v1
load v0
v9 := 1
v0 ^= v9
if v0 != 1 then v7 += -1
if v0 != 0 then v7 += 1
save v0
i := D3
jump L20
: Sub4
v3 := 24
i := D1
v1 := 8
sprite v1 v3 0
v1 := 103
sprite v1 v3 0
return
: D1
0x4 0x20 0x2 0x40 0x82 0x41 0x40 0x2 0x23 0xc4 0x4 0x20 0x8 0x10 0x10 0x8 0xd2 0x4b 0x12 0x48 0x9 0x90 0x5 0xa0 0x3 0xc0 0x3 0xc0 0x3 0xc0 0x1
: D2
0x80 0x80 0x80 0x80 0xf8 0xf8 0x80 0xe0 0x80 0xf8 0x88 0x88 0x88 0x50 0x20 0xf8 0x80 0xe0 0x80 0xf8 0x80 0x80 0x80 0x80 0xf8 0x0 0x20 0x0 0x20
: D3
0x0 0x0 0x38 0x38 0x38
: D4
0x0 0x7c 0x44 0x44 0x44 0x7c
: D5
0xfe 0x82 0x82 0x82 0x82 0x82 0xfe
: D6
0xc1 0xe3 0xf7 0xdd 0xc9 0xc1 0xc1 0xc1 0xc1 0xc1 0xc1 0xfe 0x0 0xc0 0xfe 0x2 0x2 0xfe 0x8f 0x9f 0xb8 0xb0 0xb0 0xbf 0xbf 0xb0 0xb0 0xb0 0xb0 0x7f 0x1 0x61 0x61 0x65 0x62 0x7d 0x83 0xc7 0xee 0x6c 0x6c 0xec 0xec 0x6c 0x6e 0x67 0x63 0x30 0x0 0x30 0x30 0x30 0x30 0x3f 0xf3 0xfb 0x3 0x3 0x3 0x73 0xfb 0x1b 0x3b 0xf3 0xe3 0x9f 0x80 0x98 0x9f 0x98 0x98 0x98 0x1f 0x3f 0x70 0x60 0x60 0x60 0x60 0x60 0x70 0x3f 0x1f 0xcf 0x40 0x4c 0xcf 0x4c 0x4c 0x4c 0x80 0xc0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0xe7 0x20 0x26 0xe7 0x86 0x46 0x27 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0xe0 0xf0 0x0 0x0 0x80 0x0 0x0 0xf0
: D7
######################################################################
# INPUT: chip8/SuperChip Games/Matches.ch8
######################################################################
:proto L3 # 240
:proto L4 # 24E
:proto L5 # 25C
:proto L7 # 278
:proto L11 # 2AC
:proto L13 # 2C4
:proto L14 # 2E6
:proto L15 # 316
:proto L16 # 354
:proto L17 # 376
:proto L18 # 3A6
:proto Sub1 # 3E4
:proto Sub2 # 400
:proto Sub3 # 412
:proto Sub4 # 428
:proto L19 # 458
:proto D1 # 472
:proto D2 # 477
:proto D3 # 47C
:proto D4 # 481
:proto D5 # 486
:proto D6 # 48B
:proto D7 # 490
:proto D8 # 49E
:proto D9 # 49F
:proto D10 # 4A4
:proto D11 # 4A9
: main
clear
i := D1
v0 := 13
v1 := 9
sprite v0 v1 5
v0 += 8
i := D2
sprite v0 v1 5
v0 += 8
i := D3
sprite v0 v1 5
v0 += 8
i := D4
sprite v0 v1 5
v0 += 8
i := D5
sprite v0 v1 5
v0 := 0
v1 := 0
v2 := 0
vE := 40
: L1
Sub1
: L2
loop
v0 := 1
if v0 key then jump L3
v0 := 3
if v0 key then jump L4
v0 := 2
if v0 key then jump L5
jump L2
: L3
if vE == 10 then jump L2
v0 := 2
buzzer := v0
Sub1
vE += -1
jump L1
: L4
if vE == 63 then
again
v0 := 2
buzzer := v0
Sub1
vE += 1
jump L1
: L5
hires
vA := 1
vB := 1
vC := vE
v7 := 1
i := D7
loop
if vC == 0 then jump L7
v0 := 2
buzzer := v0
Sub2
vA += 2
vC += -1
again
: L7
vA := 0
vB := 57
i := D8
loop
vC := vE
sprite vA vB 1
vA += 8
if vA != 128 then
again
vA := 10
vB := 58
i := D7
sprite vA vB 6
Sub3
Sub4
: L9
loop
if v7 == 2 then jump L11
loop
v0 := 4
if v0 key then jump L13
v0 := 5
if v0 key then jump L14
v0 := 6
if v0 key then jump L15
again
: L11
if v7 == 1 then
again
loop
v0 := 7
if v0 key then jump L16
v0 := 8
if v0 key then jump L17
v0 := 9
if v0 key then jump L18
again
: L13
if vC == 0 then jump L9
Sub3
v0 := 2
buzzer := v0
vA := vC
vA += vA
vA += -1
vB := 1
vC += -1
i := D7
Sub2
Sub3
Sub4
v7 := 2
Sub4
jump L9
: L14
if vC == 1 then jump L9
if vC == 0 then jump L9
Sub3
v0 := 4
buzzer := v0
vA := vC
vA += vA
vA += -1
vB := 1
vC += -1
i := D7
Sub2
vA := vC
vA += vA
vA += -1
vC += -1
Sub2
Sub3
Sub4
v7 := 2
Sub4
jump L9
: L15
if vC == 0 then jump L9
if vC == 1 then jump L9
if vC == 2 then jump L9
Sub3
v0 := 6
buzzer := v0
vA := vC
vA += vA
vA += -1
vB := 1
vC += -1
i := D7
Sub2
vA := vC
vA += vA
vA += -1
vC += -1
Sub2
vA := vC
vA += vA
vA += -1
vC += -1
Sub2
Sub3
Sub4
v7 := 2
Sub4
jump L9
: L16
if vC == 0 then jump L9
Sub3
v0 := 2
buzzer := v0
vA := vC
vA += vA
vA += -1
vB := 1
vC += -1
i := D7
Sub2
Sub3
Sub4
v7 := 1
Sub4
jump L9
: L17
if vC == 1 then jump L9
if vC == 0 then jump L9
Sub3
v0 := 4
buzzer := v0
vA := vC
vA += vA
vA += -1
vB := 1
vC += -1
i := D7
Sub2
vA := vC
vA += vA
vA += -1
vC += -1
Sub2
Sub3
Sub4
v7 := 1
Sub4
jump L9
: L18
if vC == 0 then jump L9
if vC == 1 then jump L9
if vC == 2 then jump L9
Sub3
v0 := 6
buzzer := v0
vA := vC
vA += vA
vA += -1
vB := 1
vC += -1
i := D7
Sub2
vA := vC
vA += vA
vA += -1
vC += -1
Sub2
vA := vC
vA += vA
vA += -1
vC += -1
Sub2
Sub3
Sub4
v7 := 1
Sub4
jump L9
: Sub1
v3 := 25
v4 := 18
i := D6
bcd vE
load v2
i := hex v0
sprite v3 v4 5
v3 += 5
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
return
: Sub2
sprite vA vB 14
vB += 14
sprite vA vB 14
vB += 14
sprite vA vB 14
vB += 14
sprite vA vB 13
vB := 1
return
: Sub3
vA := 0
vB := 59
i := D6
bcd vC
load v2
i := hex v1
sprite vA vB 5
vA += 5
i := hex v2
sprite vA vB 5
return
: Sub4
i := D9
vA := 12
vB := 59
sprite vA vB 5
vA += 8
i := D10
if v7 != 1 then i := D11
sprite vA vB 5
if v7 == 2 then jump L19
v0 := 4
i := hex v0
vA += 18
sprite vA vB 5
vA += 10
v0 := 5
i := hex v0
sprite vA vB 5
vA += 10
v0 := 6
i := hex v0
sprite vA vB 5
return
: L19
v0 := 7
i := hex v0
vA += 18
sprite vA vB 5
vA += 10
v0 := 8
i := hex v0
sprite vA vB 5
vA += 10
v0 := 9
i := hex v0
sprite vA vB 5
return
: D1
0xae 0xaa 0xea 0xaa 0xae
: D2
0x91 0x91 0x91 0xf1 0x91
: D3
0x2e 0xea 0x2e 0x2a 0x2a
: D4
0x95 0xd5 0xd7 0xb2 0x92
: D5
0x1c 0x4 0x1c 0x0 0x10
: D6
0x0 0x0 0x0 0x0 0x0
: D7
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D8
0xff
: D9
0xf1 0x93 0xf1 0x83 0x81
: D10
0x42 0xe6 0x42 0xe2 0x47
: D11
0x4f 0xe1 0x4f 0xe8 0x4f
######################################################################
# INPUT: chip8/SuperChip Games/Mines! - The minehunter [David Winter, 1997].ch8
######################################################################
:proto L1 # 21D
:proto L4 # 24F
:proto L5 # 25D
:proto L12 # 2F1
:proto L13 # 2FF
:proto L14 # 30D
:proto L15 # 31B
:proto L16 # 335
:proto L17 # 37B
:proto L18 # 385
:proto L19 # 397
:proto L20 # 3A1
:proto L21 # 3AB
:proto L22 # 3BD
:proto L23 # 3C7
:proto L24 # 3D9
:proto L25 # 3EF
:proto L26 # 3FB
:proto L28 # 41D
:proto L29 # 42B
:proto Sub1 # 42D
:proto Sub2 # 44D
:proto Sub3 # 451
:proto Sub4 # 455
:proto Sub5 # 457
:proto Sub6 # 46F
:proto D1 # 487
:proto D2 # 4A7
:proto D3 # 4AF
:proto D4 # 4B7
:proto D5 # 4BF
:proto D6 # 4C7
:proto D7 # 4CF
:proto D8 # 508
:proto D9 # 526
:proto D10 # 926
:proto D11 # 953
: main
jump L1
0x4d 0x49 0x4e 0x45 0x53 0x21 0x20 0x31 0x2e 0x30 0x30 0x20 0x42 0x79 0x20 0x44 0x61 0x76 0x69 0x64 0x20 0x57 0x49 0x4e 0x54 0x45 0x52
: L1
hires
clear
v0 := 0
v1 := 0
v2 := 32
i := D9
: L2
loop
sprite v0 v1 0
i += v2
v1 += 16
if v1 != 64 then jump L2
v1 := 0
v0 += 16
if v0 != 128 then
again
vC := 1
Sub6
loop
v3 := key
if v3 != 4 then jump L4
Sub6
vC += -1
if vC == 0 then vC := 5
Sub6
: L4
if v3 != 6 then jump L5
Sub6
vC += 1
if vC == 6 then vC := 1
Sub6
: L5
if v3 != 5 then
again
v0 := vC
vC += vC
vC += vC
vC += vC
vC += v0
vC += v0
vA := 162
vA -= vC
clear
v0 := 42
v1 := 29
v2 := 5
i := D8
loop
sprite v0 v1 5
i += v2
v0 += 8
if v0 != 90 then
again
i := D11
v0 := 0
v1 := 1
v2 := 0
loop
save v0
i += v1
v2 += 1
if v2 != 162 then
again
v3 := 0
: L8
loop
i := D11
v1 := random 0b11111111
v2 := 161
v2 -= v1
if vF != 1 then jump L8
i += v1
load v0
if v0 != 0 then jump L8
v0 := 1
save v0
v3 += 1
if v3 != vC then
again
clear
v0 := 0
v1 := 0
i := D1
: L9
loop
sprite v0 v1 0
v1 += 14
if v1 != 56 then jump L9
sprite v0 v1 0
v1 := 0
v0 += 14
if v0 != 126 then
again
i := D2
loop
sprite v0 v1 8
v1 += 8
if v1 != 64 then
again
vD := 0
vE := 0
Sub4
: L11
loop
v2 := key
if v2 != 2 then jump L12
Sub4
vE += -1
if vE == -1 then vE := 8
Sub4
: L12
if v2 != 4 then jump L13
Sub4
vD += -1
if vD == -1 then vD := 17
Sub4
: L13
if v2 != 6 then jump L14
Sub4
vD += 1
if vD == 18 then vD := 0
Sub4
: L14
if v2 != 8 then jump L15
Sub4
vE += 1
if vE == 9 then vE := 0
Sub4
: L15
if v2 != 12 then jump L16
Sub1
v1 := v0
v2 := 2
v1 &= v2
if v1 == 2 then jump L16
v1 := 4
v0 ^= v1
save v0
Sub3
Sub2
: L16
if v2 != 5 then jump L11
Sub1
v3 := v0
v2 := 2
v3 &= v2
if v3 == 2 then jump L11
v0 |= v2
save v0
Sub4
Sub1
v3 := v0
v2 := 1
v3 &= v2
if v3 == 1 then jump L26
Sub1
v3 := v0
v2 := 4
v3 &= v2
if v3 == 4 then Sub2
if v3 == 0 then Sub3
vB := 0
if vD == 0 then jump L17
if vE == 0 then jump L17
vD += -1
vE += -1
Sub1
vD += 1
vE += 1
: L17
if vE == 0 then jump L18
vE += -1
Sub1
vE += 1
: L18
if vD == 17 then jump L19
if vE == 0 then jump L19
vD += 1
vE += -1
Sub1
vD += -1
vE += 1
: L19
if vD == 0 then jump L20
vD += -1
Sub1
vD += 1
: L20
if vD == 17 then jump L21
vD += 1
Sub1
vD += -1
: L21
if vD == 0 then jump L22
if vE == 8 then jump L22
vD += -1
vE += 1
Sub1
vD += 1
vE += -1
: L22
if vE == 8 then jump L23
vE += 1
Sub1
vE += -1
: L23
if vD == 17 then jump L24
if vE == 8 then jump L24
vD += 1
vE += 1
Sub1
vD += -1
vE += -1
: L24
if vB == 0 then jump L25
vB += -1
i := D7
v0 := vB
v0 += v0
v0 += v0
v0 += v0
v0 -= vB
i += v0
Sub5
: L25
Sub4
vA += -1
if vA != 0 then
again
Sub4
jump L29
: L26
vD := 0
vE := 0
: L27
loop
Sub1
v1 := 1
v0 &= v1
if v0 != 1 then jump L28
Sub1
v1 := 4
v0 &= v1
v3 := v0
if v0 == 4 then Sub2
if v3 != 4 then Sub3
i := D5
Sub5
: L28
vD += 1
if vD != 18 then jump L27
vD := 0
vE += 1
if vE != 9 then
again
: L29
loop
again
: Sub1
i := D11
v0 := vE
v0 += v0
v0 += v0
v0 += v0
v0 += v0
v0 += vE
v0 += vE
v0 += vD
i += v0
load v0
v1 := v0
v4 := 1
v1 &= v4
vB += v1
return
: Sub2
i := D4
jump Sub5
: Sub3
i := D6
jump Sub5
: Sub4
i := D3
: Sub5
v0 := vD
v1 := vE
v0 += v0
v0 += v0
v0 += v0
v0 -= vD
v1 += v1
v1 += v1
v1 += v1
v1 -= vE
sprite v0 v1 8
return
: Sub6
v0 := 86
v1 := 47
i := D10
v2 := vC
v2 += v2
v2 += v2
v2 += v2
v2 += vC
v2 += -9
i += v2
sprite v0 v1 9
return
: D1
0xff 0xfc 0xd5 0xa8 0xab 0x54 0xd5 0xa8 0xab 0x54 0xd5 0xa8 0xab 0x54 0xff 0xfc 0xd5 0xa8 0xab 0x54 0xd5 0xa8 0xab 0x54 0xd5 0xa8 0xab 0x54 0x0 0x0 0x0 0x0
: D2
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D3
0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
: D4
0x0 0x0 0x18 0x3c 0x3c 0x18 0x0 0x0
: D5
0x0 0x18 0x3c 0x7e 0x7e 0x3c 0x18 0x0
: D6
0x0 0x54 0x2a 0x54 0x2a 0x54 0x2a 0x0
: D7
0x0 0x76 0x66 0x56 0x76 0x76 0x42 0x0 0x66 0x5a 0x7a 0x66 0x5e 0x42 0x0 0x46 0x7a 0x7a 0x46 0x7a 0x46 0x0 0x5a 0x5a 0x5a 0x62 0x7a 0x7a 0x0 0x42 0x5e 0x46 0x7a 0x7a 0x46 0x0 0x62 0x5e 0x46 0x5a 0x5a 0x66 0x0 0x42 0x7a 0x72 0x66 0x6e 0x6e 0x0 0x66 0x5a 0x5a 0x66 0x5a 0x66 0x0
: D8
0xe8 0xa8 0xe8 0x88 0x8e 0xee 0x8a 0xce 0x8a 0xea 0xee 0x88 0xec 0x28 0xee 0x11 0x11 0x15 0x1b 0x11 0x77 0x52 0x72 0x52 0x57 0x70 0x20 0x20 0x20 0x20
: D9
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xfe 0x0 0x3e 0x0 0x1e 0x0 0x1f 0x0 0x17 0x0 0x17 0x0 0x13 0x0 0x13 0x0 0x13 0x0 0x11 0x0 0x11 0x0 0x10 0x0 0x10 0x0 0x10 0x0 0x10 0x0 0x10 0x0 0x10 0x0 0x10 0x0 0x10 0x0 0x10 0x0 0x38 0x0 0xfe 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x7e 0x0 0x18 0x0 0x18 0x0 0x18 0x0 0x18 0x0 0x18 0x0 0x18 0x0 0x18 0x0 0x18 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf 0x0 0xf 0x0 0x1e 0x0 0x1e 0x0 0x1e 0x80 0x3e 0x80 0x3e 0x80 0x4e 0xc0 0x4e 0xc0 0x4e 0xe0 0x8e 0xe0 0x8e 0xe1 0xe 0xf1 0xe 0x71 0xe 0x7a 0xe 0x3a 0xe 0x3c 0xe 0x1c 0xe 0x1c 0xe 0x8 0x1f 0x8 0x7f 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x60 0x0 0x60 0x0 0x7c 0x3c 0x66 0x66 0x66 0x66 0x66 0x7e 0x66 0x60 0x66 0x60 0x66 0x3c 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1f 0x0 0x10 0x0 0x10 0x0 0x17 0x0 0x11 0x0 0x11 0x0 0x11 0x0 0x11 0x0 0x11 0x0 0x11 0x0 0x11 0x0 0x17 0x0 0x10 0x0 0x10 0x0 0x1f 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xcf 0xf9 0x3 0xe0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x1 0xc0 0x3 0xe0 0xcf 0xf9 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x7e 0x0 0x6b 0x0 0x6b 0x0 0x6b 0x0 0x6b 0x0 0x6b 0x0 0x63 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0xc7 0xf7 0x2 0x12 0x2 0x2 0x2 0x42 0x3 0xc1 0x2 0x41 0x2 0x1 0x12 0x10 0xf7 0xf0 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x7 0x78 0x1 0x3c 0x0 0x3c 0x0 0x3e 0x0 0x2f 0x0 0x27 0x80 0x27 0x80 0x23 0xc0 0x21 0xe0 0x20 0xf0 0x20 0xf0 0x20 0x78 0x20 0x3c 0x20 0x1e 0x20 0x1e 0x20 0xf 0x20 0x7 0x20 0x3 0x20 0x3 0x70 0x1 0xfc 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x18 0x0 0x18 0x0 0x0 0x0 0x78 0x7c 0x18 0x66 0x18 0x66 0x18 0x66 0x18 0x66 0x18 0x66 0x7e 0x66 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0x77 0xf7 0x22 0x11 0x22 0x1 0x22 0x41 0x43 0xc1 0x42 0x41 0x42 0x1 0x82 0x11 0x87 0xf7 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf3 0xff 0xc0 0xf8 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0x7f 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0x70 0x80 0xf8 0x83 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x60 0x0 0x60 0x3c 0x7c 0x66 0x66 0x66 0x66 0x7e 0x66 0x60 0x66 0x60 0x66 0x3c 0x66 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0xc0 0x0 0x0 0x0 0x0 0x0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x10 0x0 0xf0 0x80 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xfc 0x1 0xc 0x7 0x4 0xe 0x4 0xe 0x0 0x1e 0x0 0x1e 0x0 0x1e 0x10 0xf 0x10 0xf 0x30 0x7 0xf0 0x3 0x30 0x0 0x10 0x0 0x10 0x0 0x0 0x0 0x0 0x0 0x0 0x10 0x0 0x10 0x1 0x18 0x3 0x1c 0xe 0x1e 0xfe 0x13 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x66 0x7c 0x66 0x66 0x66 0x66 0x66 0x66 0x66 0x66 0x66 0x66 0x3e 0x66 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x1 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x1 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf9 0x0 0xf 0x0 0x3 0x0 0x1 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xc0 0x0 0xf0 0x0 0xf8 0x0 0xfe 0x0 0x7f 0x0 0x1f 0x0 0xf 0x80 0x7 0x80 0x7 0x80 0x7 0x80 0x7 0x0 0x7 0x0 0xe 0x0 0xf8 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x30 0x0 0x30 0x0 0x7e 0x3c 0x30 0x66 0x30 0x66 0x30 0x7e 0x30 0x60 0x30 0x60 0x1e 0x3c 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf8 0x0 0x8 0x0 0x8 0x0 0xc8 0x0 0x28 0x0 0x28 0x0 0x28 0x0 0x28 0x0 0x28 0x0 0x28 0x0 0x28 0x0 0xc8 0x0 0x8 0x0 0x8 0x0 0xf8 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x0 0x7 0x0 0x7 0x0 0x7 0x0 0x7 0x0 0x7 0x0 0x7 0x0 0x7 0x0 0x7 0x0 0x7 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x0 0x7 0x0 0x7 0x0 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x66 0x0 0x6e 0x0 0x70 0x0 0x60 0x0 0x60 0x0 0x60 0x0 0x60 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D10
0x20 0xe0 0x20 0x20 0x20 0x20 0x20 0x20 0xf8 0x70 0x88 0x8 0x8 0x10 0x20 0x40 0x80 0xf8 0x70 0x88 0x8 0x8 0x30 0x8 0x8 0x88 0x70 0x10 0x30 0x30 0x50 0x50 0x90 0xf8 0x10 0x38 0xf8 0x80 0x80 0x80 0xf0 0x8 0x8 0x88 0x70
: D11
######################################################################
# INPUT: chip8/SuperChip Games/Single Dragon (Bomber Section) [David Nurser, 1993].ch8
######################################################################
:proto L1 # 20E
:proto Sub1 # 22E
:proto Sub2 # 250
:proto Sub3 # 26E
:proto Sub4 # 288
:proto Sub5 # 294
:proto Sub6 # 2A6
:proto L3 # 2B0
:proto L4 # 2B4
:proto L5 # 2B6
:proto D2 # 2BE
:proto D3 # 2FE
:proto D4 # 304
: main
jump L1
0x28 0x43 0x29 0x20 0x44 0x2e 0x4e 0x55 0x52 0x53 0x45 0x52
: L1
hires
v4 := 10
v5 := 10
v6 := 30
Sub5
Sub6
v7 := -1
loop
Sub4
scroll-left
Sub2
Sub5
if vF != 0 then exit
Sub6
Sub1
again
: Sub1
if v7 == -1 then return
v1 := 4
v0 := v7
v0 -= v1
i := D3
sprite v0 v8 5
v7 += 2
v8 += 1
sprite v7 v8 5
v0 := 10
if vF != 0 then buzzer := v0
if vF != 0 then v7 := -1
vF := 0
return
: Sub2
v1 := 2
v0 := 2
if v0 key then v5 -= v1
v0 := 8
if v0 key then v5 += 1
v0 := 5
if v0 key then Sub3
v1 := 128
v1 &= v5
if v1 != 0 then v5 := 0
return
: Sub3
if v7 != -1 then return
v7 := v4
v7 += 16
v8 := v5
v8 += 16
i := D3
v0 := v7
v1 := 4
v0 -= v1
sprite v0 v8 5
return
: D1
0x0 0x0
: Sub4
i := D1
load v0
i := D2
i += v0
sprite v4 v5 0
return
: Sub5
i := D1
load v0
v1 := 32
v0 ^= v1
save v0
i := D2
i += v0
sprite v4 v5 0
return
: Sub6
v1 := 1
v0 := random 0b1
if v0 != 0 then jump L3
jump L4
: L3
v6 -= v1
jump L5
: L4
v6 += v1
: L5
i := D4
v1 := 124
sprite v1 v6 2
return
: D2
0x0 0x7f 0x0 0x40 0x0 0xe0 0x1 0x18 0x1 0x4 0x1 0x4 0x1 0x2 0xff 0x12 0xbf 0x32 0x8f 0x2a 0x3 0xc 0x1 0x4 0x0 0xf8 0x0 0x90 0x0 0x92 0x3 0xfc 0x1f 0xc0 0x0 0x40 0x0 0xe0 0x1 0x18 0x1 0x4 0x1 0x4 0x1 0x2 0xff 0x12 0xbf 0x32 0x8f 0x2a 0x3 0xc 0x1 0x4 0x0 0xf8 0x0 0x90 0x0 0x92 0x3 0xfc
: D3
0x24 0x18 0x18 0x24 0x18 0x0
: D4
0xf0 0xf0
######################################################################
# INPUT: chip8/SuperChip Games/Single Dragon (Stages 1-2) [David Nurser, 1993].ch8
######################################################################
# InvalidOpcode('0000',)
# InvalidOpcode('0442',)
# InvalidOpcode('0442',)
:proto L1 # 214
:proto L4 # 260
:proto L5 # 268
:proto L6 # 270
:proto Sub1 # 278
:proto Sub2 # 29C
:proto Sub3 # 2C0
:proto L7 # 2D6
:proto Sub5 # 2E8
:proto Sub8 # 370
:proto L11 # 380
:proto L12 # 3A8
:proto L13 # 3C0
:proto L14 # 3C6
:proto Sub9 # 3F8
:proto L15 # 436
:proto L17 # 496
:proto L18 # 4A2
:proto Sub14 # 4A8
:proto L19 # 4C4
:proto L20 # 4DC
:proto L21 # 4F2
:proto L22 # 508
:proto L23 # 512
:proto L24 # 51A
:proto D3 # 51C
:proto Sub15 # 61C
:proto D4 # 638
:proto D5 # 658
:proto Sub16 # 800
:proto D6 # 858
:proto D7 # C58
:proto D8 # C5C
: main
jump L1
0x53 0x54 0x41 0x47 0x45 0x20 0x31 0x2d 0x32 0x3a 0x3a 0x4e 0x55 0x52 0x53 0x45 0x52 0x0
: L1
clear
hires
Sub15
: L2
vA := 0
v0 := 0
Sub1
v0 := 0
Sub3
v0 := 10
Sub1
v0 := 10
Sub3
v0 := 20
Sub1
v0 := 20
Sub3
loop
v0 := vA
Sub1
if vE == 0 then Sub5
if vE == 0 then jump L6
v0 := vA
Sub3
v1 := 64
v1 &= v8
if v1 != 0 then v8 := 0
if v1 != 0 then jump L5
if vA != 0 then jump L4
vB := v6
vC := v7
vD := v9
Sub9
Sub14
jump L5
: L4
v3 := random 0b11111111
v1 := 15
v3 &= v1
Sub14
: L5
v0 := vA
Sub3
v0 := vA
Sub2
: L6
vA += 10
if vA == 30 then vA := 0
again
: Sub1
v1 := 2
i := L14
i += v0
load v0
v6 := v0
i += v1
load v0
v7 := v0
i += v1
load v0
v8 := v0
i += v1
load v0
v9 := v0
i += v1
load v0
vE := v0
return
: Sub2
v1 := 2
i := L14
i += v0
v0 := v6
save v0
v0 := v7
i += v1
save v0
v0 := v8
i += v1
save v0
v0 := v9
i += v1
save v0
v0 := vE
i += v1
save v0
return
: Sub3
i := D3
i += v8
i += v9
sprite v6 v7 0
if v0 == 0 then return
if v9 != 0 then jump L7
i := D7
sprite v6 v7 4
return
: L7
i := D8
v2 := v6
v2 += 8
sprite v2 v7 4
return
: D1
0x0 0x0
: Sub4
i := D4
sprite v6 v7 0
return
: Sub5
if vA == 0 then return
v0 := delay
if v0 != 0 then return
Sub4
v6 := 40
v0 := random 0b11111111
v1 := 12
v0 ^= v1
v1 := 15
v0 &= v1
v6 += v0
v7 := 28
v9 := 0
v8 := 0
vE := 4
v0 := vA
Sub3
Sub2
return
: Sub6
if v5 == 0 then exit
v0 := v5
Sub3
Sub4
v0 := 10
buzzer := v0
v0 := 0
loop
v0 += 1
if v0 != 50 then
again
if v5 == 0 then return
v2 := 0
v1 := 0
i := D1
load v0
v0 += 1
save v0
if v0 == 4 then Sub8
if v5 == 0 then return
v0 := -1
delay := v0
return
: D2
0x0 0x0
: Sub7
v1 := 124
v0 := 0
v4 := 8
loop
scroll-left
v2 := 0
sprite v1 v2 8
i += v4
v2 += 8
sprite v1 v2 8
i += v4
v2 += 8
sprite v1 v2 8
i += v4
v2 += 8
sprite v1 v2 8
i += v4
v0 += 4
if v0 != 64 then
again
return
: Sub8
vA := 0
loop
v0 := vA
Sub1
if vE == 0 then jump L11
v0 := vA
if v0 != 0 then Sub3
: L11
if vA != 0 then vE := 4
v6 := 40
v6 += vA
v6 += vA
v7 := 40
v0 := vA
Sub2
vA += 10
if vA != 30 then
again
i := D2
load v0
i := D6
if v0 == 0 then jump L12
i += v0
i += v0
v0 := 2
i += v0
: L12
Sub7
i := D1
v0 := 0
save v0
i := D2
load v0
if v0 != 0 then jump L13
v0 := -1
i := D2
save v0
jump L2
: L13
v0 := 1
saveflags v0
exit
: L14
Sub16
Sub16
0x0 0x0 0x0 0x0 0x4 0x0 0x3c 0x0 0x28 0x0 0x0 0x0 0x80 0x0 0x3 0x0 0x50 0x0 0x28 0x0 0x20 0x0 0x0 0x0 0x3 0x0 0x64 0x0 0x28 0x0 0x0 0x0 0x80 0x0 0x3 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: Sub9
v3 := -1
v0 := 0
if v0 key then v3 := 0
v0 := 15
if v0 key then v3 := 1
v0 := 9
if v0 key then v3 := 2
v0 := 11
if v0 key then v3 := 3
v0 := 1
if v0 key then v3 := 4
v0 := 2
if v0 key then v3 := 5
return
: Sub10
v2 := -1
v2 -= v1
v2 += v0
return
: Sub11
Sub10
if vF != 0 then jump L15
v1 -= v0
v0 := v1
v1 := 1
return
: L15
v0 -= v1
v1 := 0
return
: Sub12
v0 := 40
Sub2
: Sub13
vB := v6
vC := v7
vD := v9
v5 := 0
if vA == 0 then v5 := 10
loop
if vA == v5 then jump L17
v0 := v5
Sub1
if vE == 0 then jump L17
v1 := v6
v0 := vB
Sub11
v0 >>= v0
v0 >>= v0
v0 >>= v0
if v0 != 0 then jump L17
if v1 != 0 then v1 := 1
if vD != 0 then vD := 1
v1 ^= vD
if v1 != 1 then jump L17
v1 := v7
v0 := vC
Sub11
v0 >>= v0
v0 >>= v0
v0 >>= v0
if v0 != 0 then jump L17
v1 := 1
vE -= v1
v0 := v5
Sub2
if vE == 0 then Sub6
v0 := 5
buzzer := v0
: L17
v5 += 10
if v5 == 10 then jump L18
if v5 == 30 then jump L18
again
: L18
v0 := 40
Sub1
return
: Sub14
v4 := 4
v5 := 32
if v3 != 0 then jump L19
v0 := v6
v0 -= v4
v1 := 0
Sub10
if vF == 0 then return
v6 -= v4
v9 := 128
v8 ^= v5
return
: L19
if v3 != 1 then jump L20
v0 := v6
v0 += v4
v1 := 117
Sub10
if vF != 0 then return
v6 += v4
v9 := 0
v8 ^= v5
return
: L20
if v3 != 2 then jump L21
v0 := v7
v0 -= v4
v1 := 30
Sub10
if vF == 0 then return
v7 -= v4
v8 ^= v5
return
: L21
if v3 != 3 then jump L22
v0 := v7
v0 += v4
v1 := 45
Sub10
if vF != 0 then return
v7 += v4
v8 ^= v5
return
: L22
if v3 != 4 then jump L23
v8 := 64
Sub12
return
: L23
if v3 != 5 then jump L24
v8 := 96
Sub12
: L24
return
: D3
0xe 0x0 0x11 0x0 0x11 0x0 0xe 0x0 0x4 0x0 0x1a 0x0 0x2f 0x60 0x21 0xe0 0x1f 0x60 0xa 0x0 0xf 0x80 0xe 0x40 0x1f 0x0 0x1f 0x0 0x1b 0x0 0x1f 0x80 0xe 0x0 0x11 0x0 0x11 0x0 0xe 0x0 0x4 0x0 0x1a 0x0 0x2f 0x60 0x21 0xe0 0x1f 0x60 0xa 0x0 0xf 0x80 0xe 0x40 0x1f 0x0 0x3b 0x80 0x71 0xc0 0x79 0xf0 0xe 0x0 0x11 0x0 0x11 0x0 0xe 0x0 0x4 0x0 0xb 0xf6 0x8 0xe 0x7 0xf6 0xa 0x0 0xa 0x0 0xf 0x80 0xe 0x40 0x1f 0x0 0x3b 0x80 0x71 0xc0 0x79 0xf0 0xe 0x0 0x11 0x0 0x11 0x0 0xe 0x0 0x4 0x0 0x1a 0x0 0x2f 0x60 0x21 0xe0 0x1f 0x62 0xa 0x4 0xf 0xfc 0xf 0xfc 0xe 0x0 0xe 0x0 0xc 0x0 0xf 0x0 0x0 0x70 0x0 0x88 0x0 0x88 0x0 0x70 0x0 0x20 0x0 0x58 0x6 0xf4 0x7 0x84 0x6 0xf8 0x0 0x50 0x1 0xf0 0x2 0x70 0x0 0xf8 0x0 0xf8 0x0 0xd8 0x1 0xf8 0x0 0x70 0x0 0x88 0x0 0x88 0x0 0x70 0x0 0x20 0x0 0x58 0x6 0xf4 0x7 0x84 0x6 0xf8 0x0 0x50 0x1 0xf0 0x2 0x70 0x0 0xf8 0x1 0xdc 0x3 0x8e 0xf 0x9e 0x0 0x70 0x0 0x88 0x0 0x88 0x0 0x70 0x0 0x20 0x6f 0xd0 0x70 0x10 0x6f 0xe0 0x0 0x50 0x0 0x50 0x1 0xf0 0x2 0x70 0x0 0xf8 0x1 0xdc 0x3 0x8e 0xf 0x9e 0x0 0x70 0x0 0x88 0x0 0x88 0x0 0x70 0x0 0x20 0x0 0x58 0x6 0xf4 0x7 0x84 0x46 0xf8 0x20 0x50 0x3f 0xf0 0x3f 0xf0 0x0 0x70 0x0 0x70 0x0 0x30 0x0 0xf0
: Sub15
v3 := 0
i := D5
v2 := 0
v1 := 32
loop
sprite v2 v3 0
v2 += 16
i += v1
if v2 == 128 then v3 += 16
if v2 == 128 then v2 := 0
if v3 != 32 then
again
return
: D4
0x3 0xe0 0xc 0x18 0x10 0x4 0x20 0x2 0x2e 0xba 0x2a 0xaa 0x2c 0xba 0x2a 0xa2 0x20 0x2 0x20 0x2 0x20 0x2 0x20 0x2 0x2f 0xf2 0x3f 0xfe 0x0 0x0 0x0 0x0
: D5
0x10 0x4 0x10 0x4 0x10 0x4 0x10 0x4 0x10 0x5 0x10 0x4 0x10 0x4 0x10 0x4 0x10 0x5 0x10 0x6 0x12 0x5 0x1f 0xc4 0x10 0x84 0x10 0x84 0x1f 0xff 0x12 0x8 0xe0 0x1 0xe0 0x1 0xe0 0x1 0x40 0x1 0x40 0x1 0x45 0x1 0x87 0x1 0x88 0x81 0x8 0x81 0x7 0x1 0x8 0x81 0x88 0x81 0x88 0xc9 0x87 0x31 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x7f 0x0 0x40 0x0 0x40 0x0 0x43 0x0 0x44 0x0 0x44 0x0 0x48 0x0 0x48 0x0 0x48 0x0 0x58 0x0 0x50 0x0 0x51 0x10 0x51 0x7e 0x51 0x40 0x51 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x38 0xf 0x7c 0x6 0xc0 0x6 0x80 0x6 0x80 0x6 0x80 0xc6 0x81 0xe6 0x83 0x37 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0xff 0xff 0x0 0x1 0x7 0x71 0x2 0x52 0x0 0x2 0x0 0x2 0x0 0x6 0x0 0x4 0x23 0x4 0x67 0x84 0xcc 0xbc 0x8f 0x84 0x0 0x40 0xfc 0x40 0x4 0x40 0x4 0x48 0x84 0x4a 0x44 0x4e 0x44 0x5b 0xe4 0x62 0xe4 0x44 0xe4 0x59 0xf4 0x6a 0xd4 0x4e 0x94 0x5a 0x94 0x62 0x94 0x44 0x94 0x58 0x4 0x40 0x4 0x82 0x4 0x82 0x4 0x44 0x4 0x3c 0x4 0x4 0x84 0x2 0x84 0x1 0xc4 0x0 0x84 0x0 0x4 0x0 0x4 0x0 0x4 0x0 0x4 0x0 0x4 0x0 0x4 0x0 0x0 0x0 0x0 0x36 0x0 0x49 0x0 0x0 0x20 0x0 0x40 0x0 0x40 0x80 0xe0 0x80 0x21 0x43 0x1e 0x3c 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x12 0x8 0x1f 0xfc 0x10 0x80 0x10 0x80 0x1f 0xc0 0x12 0x0 0x12 0x0 0x10 0x1 0x10 0x1 0x10 0xf 0x10 0x13 0x10 0x22 0x1f 0xa4 0x0 0x20 0x0 0x11 0x0 0xe 0x0 0x0 0x0 0x1 0x0 0x0 0xc0 0x0 0xb0 0x4 0x88 0x4 0xc0 0xc 0xb0 0x18 0xcc 0x18 0x47 0x1e 0x27 0xf1 0xa3 0xec 0x9b 0xe4 0x87 0xfc 0x0 0x11 0x0 0xe 0x40 0x51 0xfc 0x51 0x10 0x58 0x10 0x48 0x3e 0x48 0x0 0x48 0x0 0x44 0x0 0x44 0x0 0x43 0x0 0x40 0x0 0x7f 0x80 0x0 0xbf 0xff 0x80 0x0 0x0 0x0 0x0 0x0 0x83 0x37 0xc7 0x37 0xff 0xe6 0x78 0xcf 0x0 0xf 0x0 0x70 0x7 0x83 0xff 0xfc 0xff 0xff 0x0 0x0 0xff 0xff 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x3c 0x5 0x8c 0x85 0xef 0x86 0x27 0x3e 0x1 0xc2 0xe 0x2 0xf0 0x1 0x0 0x1 0xff 0xff 0x0 0x0 0xff 0xff 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x54 0x68 0x54 0x48 0xb4 0x40 0x24 0x40
: Sub16
Sub13
Sub13
if v4 == 64 then if v4 == 64 then v4 |= v4
0x4 0x42 0xfc 0x44 0x0 0x58 0xff 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0x0 0x4 0x1f 0x4 0x60 0x4 0x5f 0x4 0x20 0x18 0x20 0x20 0x20 0x40 0x20 0x80 0x11 0x0 0x11 0x0 0x1f 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xc0 0x0 0x47 0x80 0x8e 0x40 0x91 0x20 0xa0 0xa0 0xa0 0xc0 0x20 0x84 0x11 0xc 0xe 0x14 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D6
0x0 0x0 0x0 0x0 0x80 0x40 0x70 0x40 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x10 0x20 0x40 0x40 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x20 0x10 0x10 0x10 0x20 0x40 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x10 0x20 0x40 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x10 0x20 0x40 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x60 0xa0 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x30 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x10 0x10 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0xa0 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x0 0xf0 0x0 0x0 0x30 0xc0 0x80 0x0 0x0 0x0 0x0 0x10 0x30 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x80 0x40 0x20 0x20 0x20 0x20 0x70 0xf0 0xf0 0x80 0x70 0x0 0x0 0x0 0x0 0x0 0x0 0xe0 0x0 0x10 0xe0 0xe0 0x10 0x0 0x0 0x0 0x0 0x10 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xc0 0xe0 0x80 0x0 0x0 0x0 0x0 0x0 0x40 0x40 0xd0 0xc0 0x50 0x70 0x10 0x0 0xf0 0xa0 0xa0 0xa0 0xe0 0x0 0xf0 0x0 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x70 0x0 0x70 0x10 0x10 0x10 0x0 0x0 0x0 0x0 0xf0 0x0 0xf0 0x80 0xa0 0x30 0xf0 0x10 0x10 0x10 0x30 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0xe0 0x0 0x0 0xf0 0x20 0x20 0x0 0x0 0xe0 0x10 0x30 0xe0 0x40 0x50 0xe0 0x0 0x20 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x40 0xe0 0x0 0x0 0x80 0x80 0xb0 0x80 0x0 0x20 0x30 0xb0 0x20 0x0 0x0 0x30 0xf0 0x30 0xd0 0x0 0x80 0x80 0x80 0x80 0xb0 0x90 0x90 0x90 0x80 0x0 0x30 0x10 0x10 0x0 0x0 0x0 0x0 0x0 0xb0 0x40 0x40 0xf0 0x80 0xa0 0xa0 0xa0 0xa0 0xa0 0x80 0xe0 0xb0 0x0 0x0 0x0 0x0 0x20 0xf0 0x0 0x0 0xf0 0x20 0x20 0xf0 0x0 0x0 0x70 0x20 0x0 0x0 0x0 0xb0 0x40 0x40 0xe0 0x30 0xb0 0xa0 0xa0 0xa0 0xa0 0x20 0x0 0xf0 0x0 0x10 0x10 0x10 0x10 0x90 0x90 0x90 0xd0 0x10 0x0 0xf0 0x80 0x80 0xe0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x80 0x80 0x80 0x80 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x10 0x20 0x70 0x40 0xd0 0x50 0x50 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x50 0x50 0x50 0x40 0x40 0x40 0x40 0x40 0x40 0x70 0x0 0xf0 0x0 0x20 0x20 0x30 0x60 0x80 0x0 0xf0 0x0 0xd0 0xf0 0x50 0x0 0x0 0x0 0x10 0x30 0x70 0x70 0xe0 0xe0 0xf0 0xe0 0xc0 0x80 0x0 0x0 0x0 0x0 0xf0 0x0 0xf0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0xf0 0x0 0xf0 0x70 0xf0 0x0 0x0 0xf0 0xf0 0xf0 0xf0 0x20 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0xf0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0xf0 0x10 0xd0 0x90 0xd0 0x10 0x10 0x90 0xd0 0x90 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0xf0 0x0 0xf0 0x0 0x0 0x0 0xf0 0x10 0x70 0xf0 0xe0 0xc0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x10 0x20 0x40 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x10 0x60 0x80 0x0 0xf0 0x0 0x0 0x0 0xd0 0xf0 0xf0 0x70 0x70 0x70 0x70 0x70 0x70 0x70 0x70 0x70 0xf0 0x50 0x40 0x40 0x50 0x40 0x40 0x40 0x40 0x40 0x40 0x80 0x0 0x0 0x0 0x0 0xf0 0x0 0x30 0xf0 0xf0 0xe0 0xe0 0xc0 0xd0 0xd0 0xb0 0xb0 0xf0 0xf0 0xf0 0xf0 0xf0 0xf0 0xf0 0x30 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0xf0 0x70 0x70 0xf0 0xf0 0x70 0xa0 0xa0 0x50 0x50 0xa0 0xb0 0xb0 0x70 0x70 0xf0 0xf0 0xf0 0xf0 0x0 0x0 0x0 0x0 0x20 0x50 0x60 0x50 0x0 0x0 0x0 0xf0 0x0 0x0 0xc0 0xe0 0xf0 0xf0 0xf0 0x30 0xd0 0xd0 0xb0 0x70 0xf0 0xf0 0xf0 0xf0 0xe0 0xc0 0x0 0xf0 0x0 0x0 0x0 0x0 0x80 0x80 0x80 0x80 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x80 0x80 0xc0 0xc0 0xc0 0x80 0x80 0x80 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0xa0 0xa0 0xa0 0xa0 0xa0 0xa0 0xa0 0xa0 0xa0 0xa0 0xa0 0xb0 0xa0 0x80 0x90 0x90 0xa0 0xc0 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x30 0x60 0x40 0x10 0x10 0x20 0x40 0x90 0xa0 0x20 0x40 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x10 0x20 0x20 0x10 0x0 0x0 0x0 0x0 0x0 0xf0 0x0 0x20 0x20 0x20 0x40 0x90 0x20 0x40 0x40 0x80 0x0 0x0 0x0 0x0 0x0 0x30 0x40 0xf0 0x80 0xa0 0xa0 0xa0 0xa0 0xa0 0xa0 0x80 0x80 0xf0 0x0 0x20 0x40 0xc0 0x0 0xb0 0x80 0x80 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x30 0x40 0x80 0x0 0x0 0xf0 0x0 0xa0 0xa0 0x80 0x80 0x0 0x10 0x10 0x30 0xb0 0x30 0x10 0x10 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x10 0x20 0x20 0x40 0xd0 0x0 0x80 0x0 0x0 0x70 0xf0 0xc0 0x80 0x0 0x10 0x0 0x80 0xc0 0xf0 0x70 0xf0 0x0 0x0 0x10 0x0 0x10 0x20 0x70 0x40 0x90 0xa0 0x20 0x40 0x40 0x80 0x80 0xf0 0x0 0x0 0x0 0x0 0xc0 0xe0 0x70 0x30 0x10 0x10 0x10 0x30 0x70 0xe0 0xc0 0x80 0x80 0x90 0x20 0x40 0x80 0x0 0xf0 0x10 0xd0 0x50 0x50 0x50 0x50 0x50 0x50 0xd0 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x0 0x80 0xb0 0xb0 0x0 0x0 0x0 0x0
: D7
0x0 0xe 0xe 0x0
: D8
0x0 0x70 0x70 0x0
######################################################################
# INPUT: chip8/SuperChip Games/Sokoban [Hap, 2006] (alt).ch8
######################################################################
:proto Sub1 # 21B
:proto Sub2 # 22D
:proto L5 # 235
:proto Sub3 # 23D
:proto L6 # 25D
:proto L7 # 263
:proto Sub4 # 267
:proto Sub5 # 26B
:proto L8 # 27D
:proto Sub6 # 2A7
:proto L12 # 2BB
:proto L14 # 2CF
:proto Sub7 # 2D3
:proto Sub8 # 2E3
:proto L16 # 2F1
:proto Sub9 # 2FF
:proto Sub10 # 30D
:proto L18 # 327
:proto L19 # 329
:proto L20 # 32D
:proto L24 # 391
:proto L26 # 3C1
:proto L28 # 3E3
:proto L29 # 3E9
:proto Sub11 # 3EF
:proto Sub12 # 401
:proto Sub13 # 409
:proto L30 # 411
:proto D2 # 41A
:proto D3 # 432
:proto L31 # 434
:proto L32 # 438
:proto L33 # 43C
:proto L34 # 440
:proto L35 # 444
:proto D4 # 464
:proto D5 # 489
:proto D6 # 494
:proto D7 # 495
:proto D8 # 4A5
:proto D9 # 4AD
:proto D10 # 4B1
:proto D11 # 4B5
:proto D12 # FC9
: main
hires
: L1
Sub1
: L2
loop
vE := 5
Sub2
if vC key then jump L5
if vD key then jump L8
if vA == 50 then jump L2
if vB key then : L3
Sub3
jump L2
: D1
0x80
: Sub1
clear
i := D5
load vE
if vA == 0 then jump L35
: L4
Sub4
i := hex v6
sprite v6 v9 5
return
: Sub2
loop
v1 := delay
if v1 != 0 then
again
return
: L5
if vA == 1 then
again
vE := 8
jump L3
: Sub3
delay := v7
v0 := 1
buzzer := v0
i := D12
i += vA
load v5
i := L16
load v1
if vE == 5 then jump L6
v1 -= v3
if vF == 0 then v0 += -1
vA += -1
v5 := v3
jump L7
: L6
v1 += v4
v0 += vF
vA += 1
: L7
save v1
Sub5
: Sub4
i := L35
bcd vA
: Sub5
i := L35
load v2
i := hex v1
sprite v8 v9 5
i := hex v2
sprite v7 v9 5
i := D5
save vA
return
: L8
Sub1
: L9
vD := 0
vC := 0
v2 := 2
buzzer := v2
delay := v6
v1 := 64
Sub7
v7 := v6
v1 := 128
Sub7
v4 := vE
v1 := vE
v1 += v6
: L10
loop
Sub6
if vC == 0 then jump L20
if v3 == 24 then jump L12
: L11
Sub10
again
: Sub6
vE := 0
Sub9
if vE == 1 then Sub9
Sub9
v3 := vE
v3 ^= v2
v3 <<= v0
v3 <<= v0
return
: L12
Sub6
if v3 == 24 then jump L14
Sub8
vE += 4
loop
Sub10
vE += -1
if vE != 0 then
again
jump L10
: L14
saveflags v7
jump L11
: Sub7
Sub8
vE += 5
vE <<= v0
vE <<= v0
v6 := vE
v6 =- v1
v6 >>= v0
return
: Sub8
vE := 0
Sub9
Sub9
Sub9
Sub9
return
: L15
vD := 8
: L16
i := D11
i += vC
load v0
vB := v0
if vC == v5 then vC := -1
vC += 1
: Sub9
if vD == 0 then jump L15
vD += -1
vE <<= v0
vB <<= v0
vE |= vF
return
: Sub10
if v3 == 16 then jump L19
if v3 == 20 then jump L18
: L17
i := D7
i += v3
sprite v6 v7 4
v6 += 4
if v6 != v1 then return
v6 -= v4
v7 += 4
return
: L18
v8 += 1
: L19
v9 += 1
jump L17
: L20
loadflags v7
vA := 0
: L21
Sub2
: L22
loop
vB := 1
i := D6
load v5
if v8 == v9 then jump L30
if v1 key then jump L31
if v0 key then jump L32
if v3 key then jump L33
if v4 key then jump L34
if v5 key then jump0 D2
if v2 -key then jump L22
if vC == 0 then
again
vB := 0
vC += -1
i := D9
sprite v6 v7 4
vD += -1
if vD == -1 then vD := 73
i := L35
i += vD
load v0
vA := v0
: L23
delay := v4
v1 &= vA
i := D6
i += v1
load v5
if vB == 0 then Sub11
v0 := v6
v1 := v7
v0 += v4
v1 += v5
if vB == 0 then jump L24
i := D3
Sub12
if vE == 1 then jump L21
: L24
i := D1
Sub12
if vE == 0 then jump L26
v2 := v0
v3 := v1
v2 += v4
v3 += v5
if vB == 0 then jump L28
i := D1
Sub13
if vE == 1 then jump L21
vA += 128
: L25
i := D8
Sub12
v8 -= vE
Sub13
v8 += vE
i := D10
sprite v0 v1 4
buzzer := vB
sprite v2 v3 4
: L26
if vB == 0 then jump L29
if vC != 74 then vC += 1
v0 := vA
i := L35
i += vD
vD += 1
if vD == 74 then vD := 0
save v0
i := D9
sprite v6 v7 4
: L27
v6 += v4
v7 += v5
sprite v6 v7 4
jump L21
: L28
vA <<= v0
if vF == 1 then jump L25
: L29
i := D9
loadflags v7
jump L27
: Sub11
saveflags v7
v6 += v4
v7 += v5
v6 += v4
v7 += v5
v5 =- vB
v4 =- vB
saveflags v5
return
: Sub12
sprite v0 v1 2
vE := vF
sprite v0 v1 2
return
: Sub13
sprite v2 v3 2
vE := vF
sprite v2 v3 2
return
: L30
buzzer := v3
v0 := 50
delay := v0
Sub2
0x22 : D2 0x1b # SMC: Sub1
if vA == 50 then jump L1
Sub3
jump L9
0xf1 0x18 0x70 0xa 0xf0 0x15 0x22 0x2d 0x13 0x4d 0x3a 0x0 0x12 0x7d 0x12
: D3
0x0 0x20
: L31
vA := 2
jump L23
: L32
vA := 4
jump L23
: L33
vA := 1
jump L23
: L34
vA := 3
jump L23
: L35
i := D4
: L36
delay := v9
Sub2
buzzer := v0
scroll-down 1
loop
sprite v5 v6 1
i += v0
v5 += 8
if v5 != 88 then
again
v5 := 40
v2 -= v0
if vF == 1 then jump L36
vA := 1
jump L4
: D4
0xfe 0x79 0x99 0xe7 0xc7 0xdb 0xe 0xcd 0xf3 0x36 0x6c 0xdb 0x1c 0xcd 0xe3 0x36 0x6c 0xdb 0x38 0xcd 0xb3 0x36 0x67 0xdb 0x70 0xcd 0x9b 0x37 0xc0 0xdb 0xe0 0x79 0x81 0xe6 0x7 0x9e 0xfe
: D5
0x1 0x80 0x6 0x0 0x0 0x28 0xf 0x7 0x2 0x2 0x0
: D6
0x9
: D7
0x7 0xa 0x5 0x8 0x0 0xfc 0x0 0x4 0x0 0x0 0x0 0x0 0xf0 0xf0 0xf0 0xf0
: D8
0x0 0x40 0x20 0x0 0xf0 0xd0 0xb0 0xf0
: D9
0x60 0xf0 0xf0 0x60
: D10
0xf0 0x90 0x90 0xf0
: D11
0x6e 0x0 0x88 0xc2 0x90 0x18 0x53 0x41 0x84 0x2a 0x15 0x60 0xe8 0x52 0x8c 0x15 0x51 0x14 0x40 0x89 0x80 0x8a 0x44 0x43 0x65 0x28 0x58 0x36 0xd1 0x21 0x51 0x91 0x43 0x64 0x1 0x80 0xc5 0x40 0x22 0x60 0x59 0x8c 0x3 0xb0 0x30 0x15 0x5d 0x81 0x28 0x50 0x5d 0x81 0xaa 0xa0 0xbb 0x0 0x48 0x28 0x2e 0xc0 0x88 0x52 0x28 0x2d 0x28 0x82 0x50 0xa5 0x28 0x82 0x0 0xc0 0x50 0x8c 0x0 0x5c 0x82 0x45 0x20 0xac 0x6 0x46 0xa 0x95 0xa2 0xc1 0x52 0x85 0x60 0xcb 0x4a 0x21 0x15 0x28 0x8a 0xb3 0x0 0x29 0x42 0x82 0xbb 0x60 0xa 0x14 0x5 0x98 0x2 0x3c 0x9e 0x83 0xc5 0x20 0xe8 0x4c 0x11 0x90 0x98 0x14 0x1 0xa 0x50 0x26 0x5 0x2d 0xad 0xa 0x21 0x30 0x28 0x58 0xd 0x10 0x98 0x14 0xb4 0x69 0x4b 0x15 0xa 0x30 0x16 0x6 0xa4 0x56 0x6 0x80 0x20 0xb 0x3 0x60 0x34 0x5 0x81 0xa1 0x6b 0x68 0x48 0xc0 0xd0 0x4 0x1 0x60 0x71 0x70 0x8c 0x82 0x44 0x61 0x8 0x11 0x18 0x22 0x35 0x41 0x82 0x30 0x1a 0x45 0x85 0x40 0x59 0x80 0x14 0xa1 0x55 0x66 0x0 0xa 0x5a 0x28 0xcc 0x0 0xb4 0x29 0x22 0x45 0x42 0x82 0xc1 0x52 0x94 0x18 0x2a 0xa2 0x8c 0x1d 0x0 0x60 0xf1 0x20 0x67 0x89 0x2 0xa3 0xb0 0x22 0xc8 0xae 0xc0 0xa8 0xb 0xb4 0x6 0xd1 0x76 0x4 0x4a 0x2e 0xca 0x89 0x48 0x89 0x46 0x82 0x2 0x15 0x28 0x80 0x94 0x28 0x20 0x20 0xa0 0x20 0x45 0x40 0x78 0x81 0xc4 0x42 0x26 0x2 0xa8 0x92 0x29 0x68 0xa0 0x16 0x4 0xa1 0x41 0x50 0x15 0x48 0x8d 0x55 0x28 0x2a 0x6c 0x89 0x4a 0x53 0x6c 0x88 0x2 0xbb 0x64 0x4b 0x44 0x76 0xc8 0x82 0xa4 0x44 0x55 0x0 0xbb 0x5 0x58 0x42 0x11 0x70 0x40 0x28 0x14 0xa2 0x9 0x52 0x88 0x50 0x41 0xa 0x50 0x40 0x15 0x4a 0x88 0x2a 0x8b 0x23 0x4a 0x50 0x50 0x14 0x2 0x8d 0x40 0x45 0x2 0x80 0x52 0x94 0x89 0x4 0x54 0x18 0x13 0x4 0x60 0x4c 0x11 0x98 0x98 0x23 0x31 0x30 0x46 0x62 0x60 0x91 0x40 0x9c 0x83 0x44 0xe0 0xc8 0x6d 0x98 0x14 0x44 0x36 0xcc 0x9 0x81 0x63 0x30 0x24 0x14 0x36 0xcc 0x9 0x45 0xd 0xb3 0x1 0x54 0x8a 0x40 0x52 0xda 0x2c 0x6 0x22 0x14 0xa4 0x4c 0x6 0x94 0x4 0x5 0x90 0xa1 0x40 0x28 0x52 0x26 0x5a 0x52 0x23 0x1 0x60 0x4c 0x16 0x28 0xbe 0x15 0x8 0xdc 0x8a 0xb0 0x34 0x5 0x2d 0x2 0xd0 0xa5 0x36 0xca 0x16 0xd4 0x2 0x83 0xb6 0x52 0x80 0x96 0x96 0x8e 0xd9 0x54 0x4 0x28 0x3 0xb6 0x58 0xa 0x52 0x94 0x76 0xca 0x1 0x12 0x15 0xdb 0x2a 0x20 0x85 0x28 0x3b 0x65 0x5 0x12 0xd2 0x95 0x76 0x53 0x64 0x42 0xc0 0x9c 0xa6 0xc8 0x96 0xd2 0xda 0x3a 0x24 0x30 0x34 0x72 0x0 0x91 0x51 0xc8 0x3 0x7 0x72 0x1 0x1b 0x0 0xae 0x83 0x2a 0xc1 0x95 0x44 0x18 0x22 0xa0 0xad 0x18 0x1a 0x81 0x20 0x50 0x60 0x4a 0x14 0xb5 0x45 0x81 0x20 0xd5 0x80 0xb0 0x24 0x4a 0x5a 0x22 0xb0 0x14 0xa 0x20 0x94 0x8a 0x80 0x21 0x68 0x81 0x11 0x14 0xb0 0x55 0xc0 0xa 0x84 0x57 0x63 0x64 0x55 0x81 0xbb 0x67 0x30 0x86 0x61 0x61 0x11 0x30 0x8c 0x8e 0xc 0x29 0x11 0x22 0x50 0x14 0x44 0x29 0x4a 0x54 0x11 0x10 0x2c 0x94 0x5 0x15 0x11 0xa5 0x2a 0xbb 0x65 0x10 0x29 0x41 0x76 0xca 0x2b 0x6d 0x28 0xbb 0x65 0x80 0xa2 0x8b 0xb6 0x89 0x0 0xa2 0xed 0x90 0x8 0x8c 0x5 0x58 0x23 0x1 0x60 0xd1 0x30 0x8e 0x2 0x2b 0x5 0x50 0x14 0x22 0x40 0xac 0x5 0x4 0x1 0x54 0x28 0xd1 0x4 0x36 0xc2 0x89 0x59 0x2a 0x88 0xe7 0xa 0x8 0xd0 0x40 0x31 0x85 0x28 0x5 0x11 0x1c 0xe1 0x40 0x50 0x5a 0x53 0x18 0x52 0x88 0x8 0x35 0xce 0x15 0x28 0x50 0x28 0x5d 0xb0 0x8d 0x22 0x40 0xa 0x8 0x82 0x1 0x16 0x15 0x40 0xbd 0x81 0xc4 0xe0 0x31 0x38 0xb 0x1 0x60 0x29 0x64 0xa3 0x1 0x6d 0x10 0x22 0xa2 0x2b 0x31 0x28 0x8 0x81 0x66 0x25 0x11 0x11 0x59 0x8a 0x2 0xa8 0xa 0xa2 0xa3 0x55 0x6 0x80 0x85 0x4 0x44 0x29 0x6d 0x4 0xaa 0x22 0x5 0x28 0xad 0xa2 0x24 0x46 0x3 0x40 0x46 0x2 0xa8 0xa8 0x8 0xc0 0xd8 0xa 0x3 0x3 0x8a 0x3 0xa 0x55 0x0 0xbc 0x2 0x29 0x5 0x40 0x41 0x82 0xa1 0x40 0x60 0x6a 0x8d 0x1 0x54 0x1 0xa 0xb 0x40 0x40 0x10 0x49 0xa 0x25 0x40 0x10 0x60 0x54 0x55 0x14 0x55 0xab 0x1 0x44 0xac 0xc2 0x88 0x8 0x85 0xdb 0xfc 0x54 0x88 0x83 0x30 0xa0 0x20 0x80 0xa9 0x13 0x4 0xb4 0x10 0x60 0x68 0x30 0x16 0x7 0x12 0x1 0x84 0x44 0x40 0xa9 0x88 0xc1 0x50 0x16 0x8 0x80 0x20 0xaa 0x9 0x41 0x54 0x10 0x42 0xd2 0x81 0x50 0x56 0x41 0xa0 0xa 0x8 0x28 0x52 0x8a 0x25 0x5 0x14 0xc8 0x83 0x56 0x83 0x91 0x50 0x2e 0xcb 0x90 0x40 0x1d 0xf6 0xc8 0x25 0xa3 0x30 0xa0 0x84 0x54 0x10 0x60 0xca 0xa0 0x9b 0x2 0x2d 0x2 0x76 0x4 0x6 0x4 0xed 0x2 0x60 0x4e 0xc0 0x82 0xa8 0x11 0x30 0x41 0x41 0x84 0x20 0x82 0xa 0x8 0x44 0x45 0x5 0x51 0x50 0xa1 0x11 0x10 0x51 0x28 0x50 0x4a 0xa 0x49 0x42 0x80 0x81 0x12 0x14 0x89 0x80 0x20 0xc 0x1a 0x24 0x8e 0x80 0xc5 0xe0 0x88 0x60 0x40 0x60 0x88 0xe0 0x9 0x4 0x2 0x22 0x2e 0xc8 0xaa 0xa 0x9 0xb2 0xb0 0x15 0x52 0x8e 0xd8 0xa 0x21 0x45 0x0 0xd8 0x50 0x51 0x48 0x8d 0x5a 0x94 0x40 0x44 0x14 0x40 0x1a 0x5a 0x22 0x8 0x51 0x10 0x4a 0xa2 0xc 0x2d 0x4 0x22 0xe0 0x82 0xac 0x15 0x54 0xbe 0x8 0x94 0x25 0x2 0x45 0x58 0x24 0x44 0xa0 0x30 0x44 0x5 0x0 0x55 0x80 0xa5 0x10 0x50 0x6 0x2 0x94 0x42 0x22 0x30 0x15 0x28 0x50 0x4 0x60 0x2a 0x52 0x8a 0x88 0xc0 0x54 0x42 0x82 0x23 0x1 0x51 0x1a 0x80 0x8c 0x5 0x45 0x40 0x44 0x89 0x85 0x5 0x51 0x19 0x81 0x40 0x28 0x5 0x3 0x67 0x44 0x68 0x54 0xa0 0x4c 0xb 0x3 0x41 0x49 0x81 0x8f 0x80 0xbe 0x0 0x8b 0x40 0x62 0x30 0x45 0x50 0x60 0x28 0x14 0x19 0x4 0x12 0x27 0x55 0x41 0x54 0x40 0x14 0x41 0xa6 0xca 0x25 0xa 0x8 0x20 0xe5 0x12 0x83 0x1 0x69 0xb2 0x88 0x2a 0x2c 0x5 0xca 0x2a 0x8 0x20 0xd3 0x65 0x10 0x4 0xaa 0xa0 0xe5 0x1a 0x5 0xa 0xf 0x36 0x50 0xa 0x25 0x28 0x83 0xa2 0x25 0x54 0x1 0xe6 0xc8 0x8 0x5 0xa2 0xb3 0x2 0x3 0x2 0x52 0x24 0x4 0x50 0xaa 0x8a 0xc0 0x98 0x1b 0x2 0x60 0x6a 0xa0 0x28 0xaa 0x20 0x80 0xa3 0x22 0x80 0x20 0x25 0xb4 0xa1 0x6a 0x2 0x8 0xa5 0x4 0x4 0x11 0x42 0x91 0x40 0xb6 0x95 0x4 0x40 0x50 0x26 0x4 0x44 0x4 0x76 0x32 0x20 0x22 0x2e 0xd9 0x22 0x25 0x7 0x6c 0xc0 0x54 0x8 0x8c 0xa 0x22 0xbe 0x89 0x40 0x55 0x40 0x10 0x8 0x98 0x44 0x80 0xa8 0x21 0x41 0x1 0x42 0x85 0xa 0x25 0x28 0x2b 0x4a 0x2 0x48 0x94 0x1 0x42 0x91 0x71 0x51 0x1 0x98 0xd2 0xa2 0x28 0x24 0xc4 0x82 0x22 0x5 0x99 0x28 0x88 0x94 0x66 0x3 0x64 0x11 0xa 0x55 0x5a 0xaa 0x54 0x4a 0x2 0xa5 0x2 0x82 0xa5 0x80 0xd2 0x85 0x0 0x54 0x89 0x14 0x88 0x8b 0x5 0x60 0x6c 0x7c 0x9e 0x0 0x89 0xc2 0x10 0x41 0x56 0x3 0x11 0x2b 0x44 0x14 0x1 0xd8 0x41 0x4 0x4 0x1 0xd8 0x4a 0xd1 0xa 0xaa 0x38 0x18 0xb 0x41 0x4 0x76 0x2 0xa0 0x94 0x1 0x1d 0xa4 0x41 0xa3 0x41 0x4 0x76 0x12 0xb0 0x1a 0x82 0x3b 0x8 0x36 0xb4 0x10 0x57 0x61 0x2a 0x8 0x56 0x82 0xec 0x20 0x82 0x2 0x2 0xb8 0x55 0x8 0x88 0x8 0xaa 0xa 0xa0 0x44 0x40 0xbe 0x8d 0x80 0x33 0x30 0x65 0x51 0x99 0xad 0xc8 0x24 0x5e 0x88 0xa 0xc0 0xa8 0x58 0xd 0x15 0x15 0x40 0x42 0x88 0x2c 0x9 0x1 0x41 0x15 0xa 0x82 0x28 0x2a 0x2a 0x51 0xaa 0x80 0x2a 0x44 0x42 0x88 0x20 0xa9 0x11 0x0 0xa2 0x88 0x22 0x89 0x41 0xa 0x14 0xa0 0x22 0x14 0x2b 0x6d 0x4 0x4 0x41 0xb 0x2 0x88 0x89 0x22 0x82 0x8 0x30 0x18 0xd0 0xbe 0x55 0x85 0xa1 0x1a 0x4 0x10 0x36 0x66 0x24 0x10 0x44 0x88 0x9b 0x64 0x16 0xa0 0x13 0x22 0x8 0xb 0x62 0x41 0x11 0x28 0xc0 0x62 0x52 0xa 0xd1 0x28 0x11 0x20 0x50 0xa3 0x6d 0x58 0x1a 0xc0 0x90 0x6 0xb5 0x54 0x55 0x19 0x44 0x1 0x11 0x0 0xb0 0x14 0x4 0x44 0x5 0x16 0x2 0xaa 0x44 0xac 0x48 0xa2 0xc1 0x10 0x4 0x8 0xb8 0x4 0x44 0x7a 0x22 0x70 0x44 0x10 0x88 0x80 0xa0 0x83 0xb6 0x54 0x42 0xa0 0xed 0x81 0x12 0x8d 0xa6 0xd8 0x11 0xa 0x83 0xb6 0x32 0x20 0x25 0x8b 0x58 0x1d 0x28 0xa8 0x21 0x68 0x80 0x91 0x20 0x5b 0x64 0x60 0x4c 0x9 0x60 0x51 0x40 0x8e 0x23 0xa0 0xed 0x80 0x40 0x10 0x15 0x66 0x10 0xaa 0x23 0x45 0x98 0x90 0xa0 0x80 0x2c 0xc4 0x82 0x8 0x84 0x58 0xa1 0x4a 0x8 0x30 0x16 0xad 0x16 0xa8 0xa0 0x50 0x4 0xa0 0x8 0x82 0x8a 0x88 0x2d 0x11 0x29 0x6c 0x6 0x85 0x4 0x4a 0x1 0x56 0x91 0x22 0x26 0x12 0xb 0x8 0x89 0x0 0xac 0x82 0xc4 0x60 0x91 0x10 0x18 0x1a 0x94 0x28 0x45 0x4a 0x14 0xa2 0xe5 0x81 0xda 0xb 0xb2 0x84 0x48 0x57 0x61 0x51 0x4 0x1 0xdb 0xa 0x50 0x10 0x7 0x6c 0x2c 0x83 0x45 0x15 0x76 0xd1 0x10 0xa5 0xa0 0xbb 0x20 0x28 0x52 0x85 0xdb 0x20 0x9 0x68 0x51 0xc 0x80 0x20 0x52 0x82 0xa8 0x4 0x48 0x6 0x11 0x11 0x0 0x8e 0x88 0xc2 0x90 0x16 0x12 0x94 0x22 0xb0 0x15 0x11 0x81 0xc5 0x4 0xa 0xd6 0x40 0x40 0x50 0x60 0x54 0x40 0xa2 0x82 0xa4 0x54 0x54 0x14 0xdb 0xcc 0x22 0x2a 0x8a 0x7d 0xf6 0xfb 0x88 0xa9 0x62 0xc2 0xd1 0x42 0x81 0x42 0x80 0x50 0x50 0x40 0x40 0x40 0x41 0x8f 0x80 0x9e 0x81 0xc5 0xe0 0x88 0xc 0x5 0x22 0x20 0xc0 0x69 0x44 0x40 0x88 0x95 0x44 0x51 0x28 0xa0 0x22 0x94 0x11 0x28 0x49 0x68 0x8b 0x6d 0x11 0x45 0x40 0x45 0x0 0x45 0x10 0x15 0x22 0x35 0x14 0x60 0x34 0x19 0x81 0x10 0x54 0x52 0x8c 0xc0 0xa9 0x40 0xa2 0x3 0xb5 0xc2 0x82 0x94 0x41 0x66 0x2 0x24 0x4 0x4b 0x6c 0xa0 0x11 0x10 0x8 0x88 0xbd 0x5 0x58 0x52 0x11 0x58 0xa 0x82 0x82 0x3 0x1 0x42 0xa5 0x92 0x80 0xaa 0xd 0xa 0x9 0x4a 0x82 0xa8 0x55 0x1a 0x58 0xa 0x82 0x8 0x81 0x6d 0x5 0x28 0x5 0xa 0xa4 0x44 0xa5 0x1a 0x82 0x8 0xa 0xa 0x82 0xb4 0x40 0x10 0x66 0x8 0xa 0x0 0xab 0x31 0x2a 0xc0 0x99 0x81 0x56 0xa 0xed 0x96 0x10 0xed 0x98 0x4c 0x44 0xa8 0x81 0x2a 0xc0 0x62 0x20 0x80 0x2c 0x6 0xa0 0x29 0x41 0x45 0x46 0x4a 0x51 0x28 0x22 0xa8 0xa0 0x54 0x19 0x81 0xa5 0x10 0x66 0x4 0xa 0x83 0x30 0x5 0xa2 0x8e 0xd8 0x4a 0x2 0x44 0xa9 0x41 0x81 0x20 0x2b 0x2 0x68 0xac 0xd 0x6 0xa 0xaa 0xa7 0x8d 0x40 0x54 0x15 0x2 0x81 0x48 0x88 0xa5 0xa2 0x81 0x44 0x1 0x4b 0x68 0x91 0x10 0x11 0x28 0xa8 0x20 0x85 0x14 0xa9 0x50 0x5 0x3 0x64 0x8a 0x6c 0x51 0x91 0x66 0x14 0xa8 0xac 0xc0 0x85 0x15 0x76 0x50 0x8 0xc8 0xa9 0x22 0xb0 0x16 0x60 0x1 0x40 0x1c 0xe4 0x28 0xa0 0xb3 0x2 0x24 0x8a 0x24 0xc0 0x82 0xa 0xc0 0x5a 0x2d 0x15 0x15 0xa 0x0 0x8d 0xa 0x52 0xa0 0x88 0x85 0x28 0xa2 0x20 0xa8 0x28 0x22 0x0 0xa2 0x8a 0x21 0x44 0x28 0x20 0xad 0x28 0xa 0x80 0x21 0x11 0x81 0x2a 0x80 0xbe 0x8c 0x11 0x30 0x10 0x4 0x56 0x60 0x50 0x2d 0x40 0x90 0x26 0x15 0x1 0x15 0x1 0x26 0x5 0x45 0x15 0x4 0x26 0x4 0x4a 0x58 0xa 0x22 0xa8 0x85 0x2a 0x83 0x2 0x88 0x88 0x2a 0x88 0xa2 0x82 0x34 0x5 0x10 0x5 0x28 0x50 0x45 0x10 0x15 0x12 0x94 0x1 0x10 0x11 0xa 0x28 0xa2 0x44 0x44 0xb6 0x3 0x68 0x30 0x15 0x14 0x54 0xa0 0xc0 0x90 0x4 0x40 0x18 0x14 0x48 0x89 0x0 0xbe 0x84 0x44 0x42 0x22 0x11 0x20 0x10 0x40 0x55 0xa 0x52 0x88 0x25 0x1 0x45 0x14 0x14 0x40 0xa5 0x80 0xd0 0xa2 0x2a 0x50 0x51 0x60 0x2a 0x9 0x11 0x22 0x36 0x88 0xb6 0x22 0x48 0xb0 0x14 0x4a 0xa 0xd5 0x4a 0xa 0x25 0x4 0x5 0x41 0x50 0x4b 0x4a 0x20 0x5a 0x20 0xc 0x5 0x1 0x41 0x0 0x89 0xec 0x65 0x58 0x1b 0x32 0xb0 0x46 0x65 0x60 0x91 0x70 0xae 0x8b 0xc1 0x19 0x88 0x8 0xb4 0xc4 0x2 0xa 0x2 0xec 0xa9 0x40 0x2c 0x5 0x76 0xc5 0x28 0x80 0xa0 0x2e 0xd9 0xb1 0x10 0x4 0x15 0x40 0x10 0x1a 0xd 0x10 0x42 0xd2 0x94 0x2a 0x82 0x8 0x50 0x1a 0xd1 0x68 0x82 0xa2 0x88 0x2 0x82 0x2 0x14 0xa2 0x91 0x20 0x10 0xa 0x14 0x18 0x1a 0x80 0x88 0xc 0x12 0x23 0x24 0x46 0x10 0xa8 0x66 0x81 0x2a 0x91 0x32 0x44 0x60 0x34 0x11 0x2 0xa9 0x51 0x6b 0xb6 0x44 0x12 0xed 0x81 0x4 0x71 0x91 0x44 0x4 0x68 0x8d 0xa 0x0 0x88 0x44 0xc5 0x50 0xbe 0x84 0xc4 0x88 0xcc 0xc0 0xa8 0xb 0x1 0x59 0x81 0x42 0xd5 0xa 0x48 0xb3 0x2 0xc0 0xad 0x2a 0x13 0x2 0x85 0x14 0xb4 0x44 0xdb 0x28 0x51 0x4a 0x8 0x4c 0xa 0x91 0x11 0x51 0x74 0x44 0xa 0x14 0x50 0x30 0x29 0x55 0x4 0x88 0x8a 0xa0 0x50 0x18 0x1a 0x8 0x51 0xa5 0x2a 0xa0 0x82 0x5b 0x52 0x80 0x8a 0xa0 0x80 0x21 0x68 0xc0 0xe2 0x40 0x2b 0x8 0x88 0x80 0xbc 0x0 0x8c 0x40 0x58 0x32 0x80 0x20 0x8d 0xa5 0x4 0x1 0xa3 0x50 0x52 0x44 0x5 0x14 0x4a 0x22 0x80 0x81 0x46 0x82 0x20 0x8 0x9 0x40 0x44 0x1 0x4a 0x50 0x14 0x40 0x10 0x41 0x42 0x88 0x2 0x0 0xa5 0xa8 0x91 0x2b 0x40 0x40 0x46 0x60 0x42 0x28 0x39 0xdb 0xb 0x4 0x66 0x0 0x18 0x23 0x30 0x0 0xc1 0x22 0xa0 0xae 0x83 0xc4 0x61 0x2a 0x2 0xc1 0xd6 0x2 0xc1 0x94 0x2d 0x6 0xa 0xa5 0xa1 0x46 0xa 0x94 0x2 0x88 0x2a 0x80 0x81 0x69 0x12 0x8 0xa0 0xa0 0xb 0xa1 0x16 0xd9 0x17 0x24 0x4c 0x50 0x15 0xc9 0x13 0xc3 0x4a 0xac 0xce 0x20 0x11 0xb0 0xa3 0x9 0x50 0x58 0x52 0xa8 0x8d 0x80 0xc5 0x20 0x6a 0xb0 0x28 0x90 0x20 0xa 0x52 0x81 0x22 0x8 0xa2 0xd6 0x94 0xb1 0x12 0x62 0x42 0xd1 0x50 0x26 0x24 0x10 0x14 0x49 0x89 0xa1 0x41 0x46 0xcc 0x45 0xa9 0x45 0x1 0x51 0x5a 0x14 0x88 0x85 0xa 0x14 0x28 0x80 0x85 0xa 0x14 0x28 0x81 0x12 0x2 0x25 0x4 0x88 0x80 0x6e 0x82 0x44 0xe0 0x91 0x10 0x41 0x56 0x2 0x80 0x81 0x40 0x10 0x55 0x1b 0x45 0x14 0x11 0x60 0x48 0x82 0x8a 0xa0 0xa9 0x5a 0x14 0x28 0x2e 0xd8 0x1 0x14 0x10 0x17 0x6c 0x80 0x48 0x22 0xa2 0xbb 0x64 0x15 0xa 0x14 0x22 0xa2 0x80 0x80 0xc1 0xa2 0xa0 0xae 0x22 0x30 0xa4 0x6 0x14 0x89 0x13 0x82 0x30 0x2b 0x24 0x48 0x1 0x28 0xb4 0x54 0x4 0x1 0x15 0x4a 0x1 0x44 0x1 0x22 0x22 0xd 0x22 0x40 0xaa 0x2d 0x81 0x28 0x54 0x28 0x22 0x8a 0x2c 0x15 0x1d 0xb2 0x44 0xc1 0x50 0xdb 0x3 0x1 0x55 0x11 0xdb 0x23 0x6 0x45 0x44 0x60 0xcc 0xd 0x83 0x45 0x40 0x9b 0x88 0x8a 0xb0 0x27 0x6c 0x88 0x2a 0x80 0xed 0x95 0xa 0x8 0xc 0xc0 0xa5 0xa 0xa8 0xb3 0x2 0x81 0x41 0x15 0xdb 0xa 0x52 0x88 0x8a 0x0 0x85 0x4 0x41 0x44 0x54 0x88 0x94 0x46 0x85 0x0 0x50 0xa4 0x85 0x0 0xa0 0xa0 0x25 0x2d 0x28 0xaa 0x11 0x20 0x54 0x11 0x40 0x15 0x40 0x15 0x0 0xb9 0x8b 0x0 0x30 0x45 0x51 0x22 0x42 0xa 0x89 0x4a 0x50 0xa2 0xc0 0xda 0x2 0xad 0xb 0x50 0x54 0x10 0x51 0x2a 0x80 0xb5 0x2 0x92 0x20 0x8 0x52 0x8a 0x80 0x22 0x5 0x4 0x1 0x14 0x4 0x40 0x50 0x88 0x88 0xc 0x15 0x1 0x98 0xd5 0x1 0x98 0xd8 0xc 0x54 0x6d 0x82 0xaa 0xc0 0xa2 0xa0 0xa0 0xa 0x16 0x5 0x48 0x90 0xa 0x28 0xb 0xb6 0x51 0xb4 0xa5 0xad 0x5d 0xb2 0x88 0x4 0x80 0x81 0xb6 0x50 0xa8 0xad 0xa0 0x6d 0x94 0xa1 0x68 0x51 0x66 0x5 0x5b 0x3 0x89 0x82 0x11 0x38 0x22 0xa8 0xb8 0x8 0xa8 0x3 0xf7 0x7e 0xe8 0x3 0xbe 0xfb 0xe4 0x1 0xfb 0xef 0xba 0x0 0xef 0xbe 0xf9 0x0 0x7e 0xfb 0xee 0x80 0x2a 0x2 0xb0 0x24 0x4 0x2 0x24 0x44 0xe0 0xea 0x52 0x94 0xa5 0x15 0x29 0x4a 0x51 0x46 0x94 0xa5 0x2a 0x8 0x16 0x4a 0x2 0x8 0x44 0x41 0x5 0x50 0x15 0x40 0xab 0x81 0xaa 0xc2 0x10 0x58 0x3a 0x2 0xc1 0x92 0xd1 0x60 0x6a 0xd0 0xa2 0x80 0xaa 0x1 0x40 0x45 0x41 0x22 0x20 0x88 0x2 0x33 0x5 0x11 0x10 0x29 0x30 0x22 0x21 0x44 0x77 0xd9 0x11 0x50 0x55 0x15 0x10 0x15 0x49 0x28 0x2d 0x58 0xa 0xa5 0x80 0xb0 0x34 0x14 0x6 0x7 0x15 0x0 0xbe 0x81 0x46 0x20 0x4b 0xb0 0x2 0x3 0x1 0x5d 0xb9 0x40 0x28 0x80 0x2e 0xdf 0x22 0x34 0x50 0x7 0x6f 0x91 0x12 0x82 0x2a 0xed 0x90 0x40 0x11 0x10 0x51 0x83 0x22 0x49 0x4a 0x2a 0x8 0x8a 0x25 0x2 0x80 0x88 0x8 0x2b 0x68 0x8 0x88 0x88 0x2 0x5 0x1 0x12 0x22 0x9 0x52 0x23 0x2 0x41 0xa0 0x20 0x20 0x20 0x82 0xa 0x80 0xb0 0x14 0x10 0x60 0x48
: D12
0x2 0x82 0xac 0xa 0x24 0x28 0x23 0x21 0x38 0x2e 0x24 0x28 0x37 0x35 0x4c 0x3b 0x33 0x3c 0x43 0x3e 0x33 0x31 0x39 0x47 0x4b 0x37 0x47 0x46 0x45 0x44 0x2c 0x39 0x3f 0x35 0x43 0x41 0x31 0x2c 0x36 0x4b 0x46 0x42 0x1f 0x48 0x3f 0x35 0x39 0x32 0x3c 0x3a 0x34 0x2e 0x38 0x38 0x4b
######################################################################
# INPUT: chip8/SuperChip Games/Sokoban [Hap, 2006].ch8
######################################################################
:proto Sub1 # 21B
:proto Sub2 # 22F
:proto L5 # 237
:proto Sub3 # 23F
:proto L6 # 25F
:proto L7 # 265
:proto Sub4 # 269
:proto Sub5 # 26D
:proto L8 # 27F
:proto Sub6 # 2A7
:proto L12 # 2BB
:proto L14 # 2CF
:proto Sub7 # 2D5
:proto Sub8 # 2E5
:proto L16 # 2F3
:proto Sub9 # 301
:proto Sub10 # 30F
:proto L17 # 319
:proto L18 # 31B
:proto L19 # 32D
:proto L23 # 393
:proto L25 # 3C3
:proto L27 # 3E5
:proto L28 # 3EB
:proto Sub11 # 3F3
:proto Sub12 # 407
:proto Sub13 # 40F
:proto L29 # 417
:proto L30 # 429
:proto D2 # 43A
:proto L31 # 43C
:proto L32 # 440
:proto L33 # 444
:proto L34 # 448
:proto L35 # 44C
:proto L37 # 458
:proto D3 # 464
:proto D4 # 485
:proto D5 # 488
:proto D6 # 493
:proto D7 # 494
:proto D8 # 4A4
:proto D9 # 4AC
:proto D10 # 4B0
:proto D11 # 4B4
:proto D12 # FC8
: main
hires
: L1
Sub1
: L2
loop
vE := 5
Sub2
if vC key then jump L5
if vD key then jump L8
if vA == 50 then jump L2
if vB key then : L3
Sub3
jump L2
: D1
0x80
: Sub1
clear
i := D5
load vE
i := D3
if vA == 0 then jump L37
: L4
Sub4
i := hex v6
sprite v9 v9 5
return
: Sub2
loop
v1 := delay
if v1 != 0 then
again
return
: L5
if vA == 1 then
again
vE := 8
jump L3
: Sub3
delay := v7
v0 := 1
buzzer := v0
i := D12
i += vA
load v5
i := L16
load v1
if vE == 5 then jump L6
v1 -= v3
if vF == 0 then v0 += -1
vA += -1
v5 := v3
jump L7
: L6
v1 += v4
v0 += vF
vA += 1
: L7
save v1
Sub5
: Sub4
i := L35
bcd vA
: Sub5
i := L35
load v2
i := hex v1
sprite vD v9 5
i := hex v2
sprite v6 v9 5
i := D5
save vA
return
: L8
Sub1
: L9
vD := 0
vC := 0
v2 := 2
buzzer := v2
v1 := 64
Sub7
v7 := v6
v1 := 128
Sub7
v4 := vE
v1 := vE
v1 += v6
: L10
loop
Sub6
if vC == 0 then jump L19
if v3 == 24 then jump L12
: L11
Sub10
again
: Sub6
vE := 0
Sub9
if vE == 1 then Sub9
Sub9
v3 := vE
v3 ^= v2
v3 <<= v0
v3 <<= v0
return
: L12
Sub6
if v3 == 24 then jump L14
Sub8
vE += 4
loop
Sub10
vE += -1
if vE != 0 then
again
jump L10
: L14
i := D4
save v7
jump L11
: Sub7
Sub8
vE += 5
vE <<= v0
vE <<= v0
v6 := vE
v6 =- v1
v6 >>= v0
return
: Sub8
vE := 0
Sub9
Sub9
Sub9
Sub9
return
: L15
vD := 8
: L16
i := D11
i += vC
load v0
vB := v0
if vC == v5 then vC := -1
vC += 1
: Sub9
if vD == 0 then jump L15
vD += -1
vE <<= v0
vB <<= v0
vE |= vF
return
: Sub10
if v3 == 16 then jump L17
if v3 != 20 then jump L18
v8 += 1
: L17
v9 += 1
: L18
i := D7
i += v3
sprite v6 v7 4
v6 += 4
if v6 != v1 then return
v6 -= v4
v7 += 4
return
: L19
i := D4
load v7
vA := 0
: L20
Sub2
: L21
loop
vB := 1
i := D6
load v5
if v8 == v9 then jump L29
if v1 key then jump L31
if v0 key then jump L32
if v3 key then jump L33
if v4 key then jump L34
if v5 key then jump L30
if v2 -key then jump L21
if vC == 0 then jump L21
vB := 0
vC += -1
i := D9
sprite v6 v7 4
vD += -1
if vD == -1 then vD := 56
i := L35
i += vD
load v0
vA := v0
: L22
delay := v4
v1 &= vA
i := D6
i += v1
load v5
if vB == 0 then Sub11
v0 := v6
v1 := v7
v0 += v4
v1 += v5
if vB == 0 then jump L23
i := D2
Sub12
if vE == 1 then jump L20
: L23
i := D1
Sub12
if vE == 0 then jump L25
v2 := v0
v3 := v1
v2 += v4
v3 += v5
if vB == 0 then jump L27
i := D1
Sub13
if vE == 1 then jump L20
vA += 128
: L24
i := D8
Sub12
v8 -= vE
Sub13
v8 += vE
i := D10
sprite v0 v1 4
buzzer := vB
sprite v2 v3 4
: L25
if vB == 0 then jump L28
if vC != 57 then vC += 1
v0 := vA
i := L35
i += vD
vD += 1
if vD == 57 then vD := 0
save v0
i := D9
sprite v6 v7 4
: L26
v6 += v4
v7 += v5
sprite v6 v7 4
jump L20
: L27
vA <<= v0
if vF == 1 then jump L24
: L28
i := D4
load v7
i := D9
jump L26
: Sub11
i := D4
save v7
v6 += v4
v7 += v5
v6 += v4
v7 += v5
v5 =- vB
v4 =- vB
save v5
return
: Sub12
sprite v0 v1 2
vE := vF
sprite v0 v1 2
return
: Sub13
sprite v2 v3 2
vE := vF
sprite v2 v3 2
return
: L29
buzzer := v3
v0 := 50
delay := v0
Sub2
Sub1
if vA == 50 then jump L1
Sub3
jump L9
: L30
buzzer := v1
v0 := 30
delay := v0
Sub2
if v5 -key then
again
if vA != 0 then jump L8
0x12 : D2 0x0 # SMC: jump main
0x20
: L31
vA := 2
jump L22
: L32
vA := 4
jump L22
: L33
vA := 1
jump L22
: L34
vA := 3
jump L22
: L35
scroll-down 1
loop
sprite v5 v6 1
i += v1
v5 += 8
if v5 != 88 then
again
: L37
v5 := 40
v3 -= v1
if v3 != -2 then jump L35
vA := 1
jump L4
: D3
0xfe 0x79 0x99 0xe7 0xc7 0xdb 0xe 0xcd 0xf3 0x36 0x6c 0xdb 0x1c 0xcd 0xe3 0x36 0x6c 0xdb 0x38 0xcd 0xb3 0x36 0x67 0xdb 0x70 0xcd 0x9b 0x37 0xc0 0xdb 0xe0 0x79 0x81
: D4
0xe6 0x7 0x9e
: D5
0xfe 0x1 0x80 0x6 0x0 0x0 0xf 0x7 0x2 0x2 0x0
: D6
0x9
: D7
0x7 0xa 0x5 0x8 0x0 0xfc 0x0 0x4 0x0 0x0 0x0 0x0 0xf0 0xf0 0xf0 0xf0
: D8
0x0 0x40 0x20 0x0 0xf0 0xd0 0xb0 0xf0
: D9
0x60 0xf0 0xf0 0x60
: D10
0xf0 0x90 0x90 0xf0
: D11
0x6e 0x0 0x88 0xc2 0x90 0x18 0x53 0x41 0x84 0x2a 0x15 0x60 0xe8 0x52 0x8c 0x15 0x51 0x14 0x40 0x89 0x80 0x8a 0x44 0x43 0x65 0x28 0x58 0x36 0xd1 0x21 0x51 0x91 0x43 0x64 0x1 0x80 0xc5 0x40 0x22 0x60 0x59 0x8c 0x3 0xb0 0x30 0x15 0x5d 0x81 0x28 0x50 0x5d 0x81 0xaa 0xa0 0xbb 0x0 0x48 0x28 0x2e 0xc0 0x88 0x52 0x28 0x2d 0x28 0x82 0x50 0xa5 0x28 0x82 0x0 0xc0 0x50 0x8c 0x0 0x5c 0x82 0x45 0x20 0xac 0x6 0x46 0xa 0x95 0xa2 0xc1 0x52 0x85 0x60 0xcb 0x4a 0x21 0x15 0x28 0x8a 0xb3 0x0 0x29 0x42 0x82 0xbb 0x60 0xa 0x14 0x5 0x98 0x2 0x3c 0x9e 0x83 0xc5 0x20 0xe8 0x4c 0x11 0x90 0x98 0x14 0x1 0xa 0x50 0x26 0x5 0x2d 0xad 0xa 0x21 0x30 0x28 0x58 0xd 0x10 0x98 0x14 0xb4 0x69 0x4b 0x15 0xa 0x30 0x16 0x6 0xa4 0x56 0x6 0x80 0x20 0xb 0x3 0x60 0x34 0x5 0x81 0xa1 0x6b 0x68 0x48 0xc0 0xd0 0x4 0x1 0x60 0x71 0x70 0x8c 0x82 0x44 0x61 0x8 0x11 0x18 0x22 0x35 0x41 0x82 0x30 0x1a 0x45 0x85 0x40 0x59 0x80 0x14 0xa1 0x55 0x66 0x0 0xa 0x5a 0x28 0xcc 0x0 0xb4 0x29 0x22 0x45 0x42 0x82 0xc1 0x52 0x94 0x18 0x2a 0xa2 0x8c 0x1d 0x0 0x60 0xf1 0x20 0x67 0x89 0x2 0xa3 0xb0 0x22 0xc8 0xae 0xc0 0xa8 0xb 0xb4 0x6 0xd1 0x76 0x4 0x4a 0x2e 0xca 0x89 0x48 0x89 0x46 0x82 0x2 0x15 0x28 0x80 0x94 0x28 0x20 0x20 0xa0 0x20 0x45 0x40 0x78 0x81 0xc4 0x42 0x26 0x2 0xa8 0x92 0x29 0x68 0xa0 0x16 0x4 0xa1 0x41 0x50 0x15 0x48 0x8d 0x55 0x28 0x2a 0x6c 0x89 0x4a 0x53 0x6c 0x88 0x2 0xbb 0x64 0x4b 0x44 0x76 0xc8 0x82 0xa4 0x44 0x55 0x0 0xbb 0x5 0x58 0x42 0x11 0x70 0x40 0x28 0x14 0xa2 0x9 0x52 0x88 0x50 0x41 0xa 0x50 0x40 0x15 0x4a 0x88 0x2a 0x8b 0x23 0x4a 0x50 0x50 0x14 0x2 0x8d 0x40 0x45 0x2 0x80 0x52 0x94 0x89 0x4 0x54 0x18 0x13 0x4 0x60 0x4c 0x11 0x98 0x98 0x23 0x31 0x30 0x46 0x62 0x60 0x91 0x40 0x9c 0x83 0x44 0xe0 0xc8 0x6d 0x98 0x14 0x44 0x36 0xcc 0x9 0x81 0x63 0x30 0x24 0x14 0x36 0xcc 0x9 0x45 0xd 0xb3 0x1 0x54 0x8a 0x40 0x52 0xda 0x2c 0x6 0x22 0x14 0xa4 0x4c 0x6 0x94 0x4 0x5 0x90 0xa1 0x40 0x28 0x52 0x26 0x5a 0x52 0x23 0x1 0x60 0x4c 0x16 0x28 0xbe 0x15 0x8 0xdc 0x8a 0xb0 0x34 0x5 0x2d 0x2 0xd0 0xa5 0x36 0xca 0x16 0xd4 0x2 0x83 0xb6 0x52 0x80 0x96 0x96 0x8e 0xd9 0x54 0x4 0x28 0x3 0xb6 0x58 0xa 0x52 0x94 0x76 0xca 0x1 0x12 0x15 0xdb 0x2a 0x20 0x85 0x28 0x3b 0x65 0x5 0x12 0xd2 0x95 0x76 0x53 0x64 0x42 0xc0 0x9c 0xa6 0xc8 0x96 0xd2 0xda 0x3a 0x24 0x30 0x34 0x72 0x0 0x91 0x51 0xc8 0x3 0x7 0x72 0x1 0x1b 0x0 0xae 0x83 0x2a 0xc1 0x95 0x44 0x18 0x22 0xa0 0xad 0x18 0x1a 0x81 0x20 0x50 0x60 0x4a 0x14 0xb5 0x45 0x81 0x20 0xd5 0x80 0xb0 0x24 0x4a 0x5a 0x22 0xb0 0x14 0xa 0x20 0x94 0x8a 0x80 0x21 0x68 0x81 0x11 0x14 0xb0 0x55 0xc0 0xa 0x84 0x57 0x63 0x64 0x55 0x81 0xbb 0x67 0x30 0x86 0x61 0x61 0x11 0x30 0x8c 0x8e 0xc 0x29 0x11 0x22 0x50 0x14 0x44 0x29 0x4a 0x54 0x11 0x10 0x2c 0x94 0x5 0x15 0x11 0xa5 0x2a 0xbb 0x65 0x10 0x29 0x41 0x76 0xca 0x2b 0x6d 0x28 0xbb 0x65 0x80 0xa2 0x8b 0xb6 0x89 0x0 0xa2 0xed 0x90 0x8 0x8c 0x5 0x58 0x23 0x1 0x60 0xd1 0x30 0x8e 0x2 0x2b 0x5 0x50 0x14 0x22 0x40 0xac 0x5 0x4 0x1 0x54 0x28 0xd1 0x4 0x36 0xc2 0x89 0x59 0x2a 0x88 0xe7 0xa 0x8 0xd0 0x40 0x31 0x85 0x28 0x5 0x11 0x1c 0xe1 0x40 0x50 0x5a 0x53 0x18 0x52 0x88 0x8 0x35 0xce 0x15 0x28 0x50 0x28 0x5d 0xb0 0x8d 0x22 0x40 0xa 0x8 0x82 0x1 0x16 0x15 0x40 0xbd 0x81 0xc4 0xe0 0x31 0x38 0xb 0x1 0x60 0x29 0x64 0xa3 0x1 0x6d 0x10 0x22 0xa2 0x2b 0x31 0x28 0x8 0x81 0x66 0x25 0x11 0x11 0x59 0x8a 0x2 0xa8 0xa 0xa2 0xa3 0x55 0x6 0x80 0x85 0x4 0x44 0x29 0x6d 0x4 0xaa 0x22 0x5 0x28 0xad 0xa2 0x24 0x46 0x3 0x40 0x46 0x2 0xa8 0xa8 0x8 0xc0 0xd8 0xa 0x3 0x3 0x8a 0x3 0xa 0x55 0x0 0xbc 0x2 0x29 0x5 0x40 0x41 0x82 0xa1 0x40 0x60 0x6a 0x8d 0x1 0x54 0x1 0xa 0xb 0x40 0x40 0x10 0x49 0xa 0x25 0x40 0x10 0x60 0x54 0x55 0x14 0x55 0xab 0x1 0x44 0xac 0xc2 0x88 0x8 0x85 0xdb 0xfc 0x54 0x88 0x83 0x30 0xa0 0x20 0x80 0xa9 0x13 0x4 0xb4 0x10 0x60 0x68 0x30 0x16 0x7 0x12 0x1 0x84 0x44 0x40 0xa9 0x88 0xc1 0x50 0x16 0x8 0x80 0x20 0xaa 0x9 0x41 0x54 0x10 0x42 0xd2 0x81 0x50 0x56 0x41 0xa0 0xa 0x8 0x28 0x52 0x8a 0x25 0x5 0x14 0xc8 0x83 0x56 0x83 0x91 0x50 0x2e 0xcb 0x90 0x40 0x1d 0xf6 0xc8 0x25 0xa3 0x30 0xa0 0x84 0x54 0x10 0x60 0xca 0xa0 0x9b 0x2 0x2d 0x2 0x76 0x4 0x6 0x4 0xed 0x2 0x60 0x4e 0xc0 0x82 0xa8 0x11 0x30 0x41 0x41 0x84 0x20 0x82 0xa 0x8 0x44 0x45 0x5 0x51 0x50 0xa1 0x11 0x10 0x51 0x28 0x50 0x4a 0xa 0x49 0x42 0x80 0x81 0x12 0x14 0x89 0x80 0x20 0xc 0x1a 0x24 0x8e 0x80 0xc5 0xe0 0x88 0x60 0x40 0x60 0x88 0xe0 0x9 0x4 0x2 0x22 0x2e 0xc8 0xaa 0xa 0x9 0xb2 0xb0 0x15 0x52 0x8e 0xd8 0xa 0x21 0x45 0x0 0xd8 0x50 0x51 0x48 0x8d 0x5a 0x94 0x40 0x44 0x14 0x40 0x1a 0x5a 0x22 0x8 0x51 0x10 0x4a 0xa2 0xc 0x2d 0x4 0x22 0xe0 0x82 0xac 0x15 0x54 0xbe 0x8 0x94 0x25 0x2 0x45 0x58 0x24 0x44 0xa0 0x30 0x44 0x5 0x0 0x55 0x80 0xa5 0x10 0x50 0x6 0x2 0x94 0x42 0x22 0x30 0x15 0x28 0x50 0x4 0x60 0x2a 0x52 0x8a 0x88 0xc0 0x54 0x42 0x82 0x23 0x1 0x51 0x1a 0x80 0x8c 0x5 0x45 0x40 0x44 0x89 0x85 0x5 0x51 0x19 0x81 0x40 0x28 0x5 0x3 0x67 0x44 0x68 0x54 0xa0 0x4c 0xb 0x3 0x41 0x49 0x81 0x8f 0x80 0xbe 0x0 0x8b 0x40 0x62 0x30 0x45 0x50 0x60 0x28 0x14 0x19 0x4 0x12 0x27 0x55 0x41 0x54 0x40 0x14 0x41 0xa6 0xca 0x25 0xa 0x8 0x20 0xe5 0x12 0x83 0x1 0x69 0xb2 0x88 0x2a 0x2c 0x5 0xca 0x2a 0x8 0x20 0xd3 0x65 0x10 0x4 0xaa 0xa0 0xe5 0x1a 0x5 0xa 0xf 0x36 0x50 0xa 0x25 0x28 0x83 0xa2 0x25 0x54 0x1 0xe6 0xc8 0x8 0x5 0xa2 0xb3 0x2 0x3 0x2 0x52 0x24 0x4 0x50 0xaa 0x8a 0xc0 0x98 0x1b 0x2 0x60 0x6a 0xa0 0x28 0xaa 0x20 0x80 0xa3 0x22 0x80 0x20 0x25 0xb4 0xa1 0x6a 0x2 0x8 0xa5 0x4 0x4 0x11 0x42 0x91 0x40 0xb6 0x95 0x4 0x40 0x50 0x26 0x4 0x44 0x4 0x76 0x32 0x20 0x22 0x2e 0xd9 0x22 0x25 0x7 0x6c 0xc0 0x54 0x8 0x8c 0xa 0x22 0xbe 0x89 0x40 0x55 0x40 0x10 0x8 0x98 0x44 0x80 0xa8 0x21 0x41 0x1 0x42 0x85 0xa 0x25 0x28 0x2b 0x4a 0x2 0x48 0x94 0x1 0x42 0x91 0x71 0x51 0x1 0x98 0xd2 0xa2 0x28 0x24 0xc4 0x82 0x22 0x5 0x99 0x28 0x88 0x94 0x66 0x3 0x64 0x11 0xa 0x55 0x5a 0xaa 0x54 0x4a 0x2 0xa5 0x2 0x82 0xa5 0x80 0xd2 0x85 0x0 0x54 0x89 0x14 0x88 0x8b 0x5 0x60 0x6c 0x7c 0x9e 0x0 0x89 0xc2 0x10 0x41 0x56 0x3 0x11 0x2b 0x44 0x14 0x1 0xd8 0x41 0x4 0x4 0x1 0xd8 0x4a 0xd1 0xa 0xaa 0x38 0x18 0xb 0x41 0x4 0x76 0x2 0xa0 0x94 0x1 0x1d 0xa4 0x41 0xa3 0x41 0x4 0x76 0x12 0xb0 0x1a 0x82 0x3b 0x8 0x36 0xb4 0x10 0x57 0x61 0x2a 0x8 0x56 0x82 0xec 0x20 0x82 0x2 0x2 0xb8 0x55 0x8 0x88 0x8 0xaa 0xa 0xa0 0x44 0x40 0xbe 0x8d 0x80 0x33 0x30 0x65 0x51 0x99 0xad 0xc8 0x24 0x5e 0x88 0xa 0xc0 0xa8 0x58 0xd 0x15 0x15 0x40 0x42 0x88 0x2c 0x9 0x1 0x41 0x15 0xa 0x82 0x28 0x2a 0x2a 0x51 0xaa 0x80 0x2a 0x44 0x42 0x88 0x20 0xa9 0x11 0x0 0xa2 0x88 0x22 0x89 0x41 0xa 0x14 0xa0 0x22 0x14 0x2b 0x6d 0x4 0x4 0x41 0xb 0x2 0x88 0x89 0x22 0x82 0x8 0x30 0x18 0xd0 0xbe 0x55 0x85 0xa1 0x1a 0x4 0x10 0x36 0x66 0x24 0x10 0x44 0x88 0x9b 0x64 0x16 0xa0 0x13 0x22 0x8 0xb 0x62 0x41 0x11 0x28 0xc0 0x62 0x52 0xa 0xd1 0x28 0x11 0x20 0x50 0xa3 0x6d 0x58 0x1a 0xc0 0x90 0x6 0xb5 0x54 0x55 0x19 0x44 0x1 0x11 0x0 0xb0 0x14 0x4 0x44 0x5 0x16 0x2 0xaa 0x44 0xac 0x48 0xa2 0xc1 0x10 0x4 0x8 0xb8 0x4 0x44 0x7a 0x22 0x70 0x44 0x10 0x88 0x80 0xa0 0x83 0xb6 0x54 0x42 0xa0 0xed 0x81 0x12 0x8d 0xa6 0xd8 0x11 0xa 0x83 0xb6 0x32 0x20 0x25 0x8b 0x58 0x1d 0x28 0xa8 0x21 0x68 0x80 0x91 0x20 0x5b 0x64 0x60 0x4c 0x9 0x60 0x51 0x40 0x8e 0x23 0xa0 0xed 0x80 0x40 0x10 0x15 0x66 0x10 0xaa 0x23 0x45 0x98 0x90 0xa0 0x80 0x2c 0xc4 0x82 0x8 0x84 0x58 0xa1 0x4a 0x8 0x30 0x16 0xad 0x16 0xa8 0xa0 0x50 0x4 0xa0 0x8 0x82 0x8a 0x88 0x2d 0x11 0x29 0x6c 0x6 0x85 0x4 0x4a 0x1 0x56 0x91 0x22 0x26 0x12 0xb 0x8 0x89 0x0 0xac 0x82 0xc4 0x60 0x91 0x10 0x18 0x1a 0x94 0x28 0x45 0x4a 0x14 0xa2 0xe5 0x81 0xda 0xb 0xb2 0x84 0x48 0x57 0x61 0x51 0x4 0x1 0xdb 0xa 0x50 0x10 0x7 0x6c 0x2c 0x83 0x45 0x15 0x76 0xd1 0x10 0xa5 0xa0 0xbb 0x20 0x28 0x52 0x85 0xdb 0x20 0x9 0x68 0x51 0xc 0x80 0x20 0x52 0x82 0xa8 0x4 0x48 0x6 0x11 0x11 0x0 0x8e 0x88 0xc2 0x90 0x16 0x12 0x94 0x22 0xb0 0x15 0x11 0x81 0xc5 0x4 0xa 0xd6 0x40 0x40 0x50 0x60 0x54 0x40 0xa2 0x82 0xa4 0x54 0x54 0x14 0xdb 0xcc 0x22 0x2a 0x8a 0x7d 0xf6 0xfb 0x88 0xa9 0x62 0xc2 0xd1 0x42 0x81 0x42 0x80 0x50 0x50 0x40 0x40 0x40 0x41 0x8f 0x80 0x9e 0x81 0xc5 0xe0 0x88 0xc 0x5 0x22 0x20 0xc0 0x69 0x44 0x40 0x88 0x95 0x44 0x51 0x28 0xa0 0x22 0x94 0x11 0x28 0x49 0x68 0x8b 0x6d 0x11 0x45 0x40 0x45 0x0 0x45 0x10 0x15 0x22 0x35 0x14 0x60 0x34 0x19 0x81 0x10 0x54 0x52 0x8c 0xc0 0xa9 0x40 0xa2 0x3 0xb5 0xc2 0x82 0x94 0x41 0x66 0x2 0x24 0x4 0x4b 0x6c 0xa0 0x11 0x10 0x8 0x88 0xbd 0x5 0x58 0x52 0x11 0x58 0xa 0x82 0x82 0x3 0x1 0x42 0xa5 0x92 0x80 0xaa 0xd 0xa 0x9 0x4a 0x82 0xa8 0x55 0x1a 0x58 0xa 0x82 0x8 0x81 0x6d 0x5 0x28 0x5 0xa 0xa4 0x44 0xa5 0x1a 0x82 0x8 0xa 0xa 0x82 0xb4 0x40 0x10 0x66 0x8 0xa 0x0 0xab 0x31 0x2a 0xc0 0x99 0x81 0x56 0xa 0xed 0x96 0x10 0xed 0x98 0x4c 0x44 0xa8 0x81 0x2a 0xc0 0x62 0x20 0x80 0x2c 0x6 0xa0 0x29 0x41 0x45 0x46 0x4a 0x51 0x28 0x22 0xa8 0xa0 0x54 0x19 0x81 0xa5 0x10 0x66 0x4 0xa 0x83 0x30 0x5 0xa2 0x8e 0xd8 0x4a 0x2 0x44 0xa9 0x41 0x81 0x20 0x2b 0x2 0x68 0xac 0xd 0x6 0xa 0xaa 0xa7 0x8d 0x40 0x54 0x15 0x2 0x81 0x48 0x88 0xa5 0xa2 0x81 0x44 0x1 0x4b 0x68 0x91 0x10 0x11 0x28 0xa8 0x20 0x85 0x14 0xa9 0x50 0x5 0x3 0x64 0x8a 0x6c 0x51 0x91 0x66 0x14 0xa8 0xac 0xc0 0x85 0x15 0x76 0x50 0x8 0xc8 0xa9 0x22 0xb0 0x16 0x60 0x1 0x40 0x1c 0xe4 0x28 0xa0 0xb3 0x2 0x24 0x8a 0x24 0xc0 0x82 0xa 0xc0 0x5a 0x2d 0x15 0x15 0xa 0x0 0x8d 0xa 0x52 0xa0 0x88 0x85 0x28 0xa2 0x20 0xa8 0x28 0x22 0x0 0xa2 0x8a 0x21 0x44 0x28 0x20 0xad 0x28 0xa 0x80 0x21 0x11 0x81 0x2a 0x80 0xbe 0x8c 0x11 0x30 0x10 0x4 0x56 0x60 0x50 0x2d 0x40 0x90 0x26 0x15 0x1 0x15 0x1 0x26 0x5 0x45 0x15 0x4 0x26 0x4 0x4a 0x58 0xa 0x22 0xa8 0x85 0x2a 0x83 0x2 0x88 0x88 0x2a 0x88 0xa2 0x82 0x34 0x5 0x10 0x5 0x28 0x50 0x45 0x10 0x15 0x12 0x94 0x1 0x10 0x11 0xa 0x28 0xa2 0x44 0x44 0xb6 0x3 0x68 0x30 0x15 0x14 0x54 0xa0 0xc0 0x90 0x4 0x40 0x18 0x14 0x48 0x89 0x0 0xbe 0x84 0x44 0x42 0x22 0x11 0x20 0x10 0x40 0x55 0xa 0x52 0x88 0x25 0x1 0x45 0x14 0x14 0x40 0xa5 0x80 0xd0 0xa2 0x2a 0x50 0x51 0x60 0x2a 0x9 0x11 0x22 0x36 0x88 0xb6 0x22 0x48 0xb0 0x14 0x4a 0xa 0xd5 0x4a 0xa 0x25 0x4 0x5 0x41 0x50 0x4b 0x4a 0x20 0x5a 0x20 0xc 0x5 0x1 0x41 0x0 0x89 0xec 0x65 0x58 0x1b 0x32 0xb0 0x46 0x65 0x60 0x91 0x70 0xae 0x8b 0xc1 0x19 0x88 0x8 0xb4 0xc4 0x2 0xa 0x2 0xec 0xa9 0x40 0x2c 0x5 0x76 0xc5 0x28 0x80 0xa0 0x2e 0xd9 0xb1 0x10 0x4 0x15 0x40 0x10 0x1a 0xd 0x10 0x42 0xd2 0x94 0x2a 0x82 0x8 0x50 0x1a 0xd1 0x68 0x82 0xa2 0x88 0x2 0x82 0x2 0x14 0xa2 0x91 0x20 0x10 0xa 0x14 0x18 0x1a 0x80 0x88 0xc 0x12 0x23 0x24 0x46 0x10 0xa8 0x66 0x81 0x2a 0x91 0x32 0x44 0x60 0x34 0x11 0x2 0xa9 0x51 0x6b 0xb6 0x44 0x12 0xed 0x81 0x4 0x71 0x91 0x44 0x4 0x68 0x8d 0xa 0x0 0x88 0x44 0xc5 0x50 0xbe 0x84 0xc4 0x88 0xcc 0xc0 0xa8 0xb 0x1 0x59 0x81 0x42 0xd5 0xa 0x48 0xb3 0x2 0xc0 0xad 0x2a 0x13 0x2 0x85 0x14 0xb4 0x44 0xdb 0x28 0x51 0x4a 0x8 0x4c 0xa 0x91 0x11 0x51 0x74 0x44 0xa 0x14 0x50 0x30 0x29 0x55 0x4 0x88 0x8a 0xa0 0x50 0x18 0x1a 0x8 0x51 0xa5 0x2a 0xa0 0x82 0x5b 0x52 0x80 0x8a 0xa0 0x80 0x21 0x68 0xc0 0xe2 0x40 0x2b 0x8 0x88 0x80 0xbc 0x0 0x8c 0x40 0x58 0x32 0x80 0x20 0x8d 0xa5 0x4 0x1 0xa3 0x50 0x52 0x44 0x5 0x14 0x4a 0x22 0x80 0x81 0x46 0x82 0x20 0x8 0x9 0x40 0x44 0x1 0x4a 0x50 0x14 0x40 0x10 0x41 0x42 0x88 0x2 0x0 0xa5 0xa8 0x91 0x2b 0x40 0x40 0x46 0x60 0x42 0x28 0x39 0xdb 0xb 0x4 0x66 0x0 0x18 0x23 0x30 0x0 0xc1 0x22 0xa0 0xae 0x83 0xc4 0x61 0x2a 0x2 0xc1 0xd6 0x2 0xc1 0x94 0x2d 0x6 0xa 0xa5 0xa1 0x46 0xa 0x94 0x2 0x88 0x2a 0x80 0x81 0x69 0x12 0x8 0xa0 0xa0 0xb 0xa1 0x16 0xd9 0x17 0x24 0x4c 0x50 0x15 0xc9 0x13 0xc3 0x4a 0xac 0xce 0x20 0x11 0xb0 0xa3 0x9 0x50 0x58 0x52 0xa8 0x8d 0x80 0xc5 0x20 0x6a 0xb0 0x28 0x90 0x20 0xa 0x52 0x81 0x22 0x8 0xa2 0xd6 0x94 0xb1 0x12 0x62 0x42 0xd1 0x50 0x26 0x24 0x10 0x14 0x49 0x89 0xa1 0x41 0x46 0xcc 0x45 0xa9 0x45 0x1 0x51 0x5a 0x14 0x88 0x85 0xa 0x14 0x28 0x80 0x85 0xa 0x14 0x28 0x81 0x12 0x2 0x25 0x4 0x88 0x80 0x6e 0x82 0x44 0xe0 0x91 0x10 0x41 0x56 0x2 0x80 0x81 0x40 0x10 0x55 0x1b 0x45 0x14 0x11 0x60 0x48 0x82 0x8a 0xa0 0xa9 0x5a 0x14 0x28 0x2e 0xd8 0x1 0x14 0x10 0x17 0x6c 0x80 0x48 0x22 0xa2 0xbb 0x64 0x15 0xa 0x14 0x22 0xa2 0x80 0x80 0xc1 0xa2 0xa0 0xae 0x22 0x30 0xa4 0x6 0x14 0x89 0x13 0x82 0x30 0x2b 0x24 0x48 0x1 0x28 0xb4 0x54 0x4 0x1 0x15 0x4a 0x1 0x44 0x1 0x22 0x22 0xd 0x22 0x40 0xaa 0x2d 0x81 0x28 0x54 0x28 0x22 0x8a 0x2c 0x15 0x1d 0xb2 0x44 0xc1 0x50 0xdb 0x3 0x1 0x55 0x11 0xdb 0x23 0x6 0x45 0x44 0x60 0xcc 0xd 0x83 0x45 0x40 0x9b 0x88 0x8a 0xb0 0x27 0x6c 0x88 0x2a 0x80 0xed 0x95 0xa 0x8 0xc 0xc0 0xa5 0xa 0xa8 0xb3 0x2 0x81 0x41 0x15 0xdb 0xa 0x52 0x88 0x8a 0x0 0x85 0x4 0x41 0x44 0x54 0x88 0x94 0x46 0x85 0x0 0x50 0xa4 0x85 0x0 0xa0 0xa0 0x25 0x2d 0x28 0xaa 0x11 0x20 0x54 0x11 0x40 0x15 0x40 0x15 0x0 0xb9 0x8b 0x0 0x30 0x45 0x51 0x22 0x42 0xa 0x89 0x4a 0x50 0xa2 0xc0 0xda 0x2 0xad 0xb 0x50 0x54 0x10 0x51 0x2a 0x80 0xb5 0x2 0x92 0x20 0x8 0x52 0x8a 0x80 0x22 0x5 0x4 0x1 0x14 0x4 0x40 0x50 0x88 0x88 0xc 0x15 0x1 0x98 0xd5 0x1 0x98 0xd8 0xc 0x54 0x6d 0x82 0xaa 0xc0 0xa2 0xa0 0xa0 0xa 0x16 0x5 0x48 0x90 0xa 0x28 0xb 0xb6 0x51 0xb4 0xa5 0xad 0x5d 0xb2 0x88 0x4 0x80 0x81 0xb6 0x50 0xa8 0xad 0xa0 0x6d 0x94 0xa1 0x68 0x51 0x66 0x5 0x5b 0x3 0x89 0x82 0x11 0x38 0x22 0xa8 0xb8 0x8 0xa8 0x3 0xf7 0x7e 0xe8 0x3 0xbe 0xfb 0xe4 0x1 0xfb 0xef 0xba 0x0 0xef 0xbe 0xf9 0x0 0x7e 0xfb 0xee 0x80 0x2a 0x2 0xb0 0x24 0x4 0x2 0x24 0x44 0xe0 0xea 0x52 0x94 0xa5 0x15 0x29 0x4a 0x51 0x46 0x94 0xa5 0x2a 0x8 0x16 0x4a 0x2 0x8 0x44 0x41 0x5 0x50 0x15 0x40 0xab 0x81 0xaa 0xc2 0x10 0x58 0x3a 0x2 0xc1 0x92 0xd1 0x60 0x6a 0xd0 0xa2 0x80 0xaa 0x1 0x40 0x45 0x41 0x22 0x20 0x88 0x2 0x33 0x5 0x11 0x10 0x29 0x30 0x22 0x21 0x44 0x77 0xd9 0x11 0x50 0x55 0x15 0x10 0x15 0x49 0x28 0x2d 0x58 0xa 0xa5 0x80 0xb0 0x34 0x14 0x6 0x7 0x15 0x0 0xbe 0x81 0x46 0x20 0x4b 0xb0 0x2 0x3 0x1 0x5d 0xb9 0x40 0x28 0x80 0x2e 0xdf 0x22 0x34 0x50 0x7 0x6f 0x91 0x12 0x82 0x2a 0xed 0x90 0x40 0x11 0x10 0x51 0x83 0x22 0x49 0x4a 0x2a 0x8 0x8a 0x25 0x2 0x80 0x88 0x8 0x2b 0x68 0x8 0x88 0x88 0x2 0x5 0x1 0x12 0x22 0x9 0x52 0x23 0x2 0x41 0xa0 0x20 0x20 0x20 0x82 0xa 0x80 0xb0 0x14 0x10 0x60 0x48
: D12
0x2 0x82 0xac 0xa 0x24 0x28 0x23 0x21 0x38 0x2e 0x24 0x28 0x37 0x35 0x4c 0x3b 0x33 0x3c 0x43 0x3e 0x33 0x31 0x39 0x47 0x4b 0x37 0x47 0x46 0x45 0x44 0x2c 0x39 0x3f 0x35 0x43 0x41 0x31 0x2c 0x36 0x4b 0x46 0x42 0x1f 0x48 0x3f 0x35 0x39 0x32 0x3c 0x3a 0x34 0x2e 0x38 0x38 0x4b
######################################################################
# INPUT: chip8/SuperChip Games/Spacefight 2091 [Carsten Soerensen, 1992].ch8
######################################################################
:proto L1 # 224
:proto Sub1 # 22E
:proto L5 # 260
:proto L6 # 294
:proto Sub2 # 29E
:proto Sub3 # 2EA
:proto Sub4 # 350
:proto L10 # 37E
:proto L11 # 3A4
:proto L12 # 3FE
:proto L14 # 40E
:proto L15 # 444
:proto L16 # 44E
:proto Sub5 # 45A
:proto Sub6 # 45E
:proto L17 # 462
:proto Sub7 # 474
:proto Sub8 # 47E
:proto Sub9 # 498
:proto L18 # 4CC
:proto L19 # 4F0
:proto L20 # 504
:proto Sub10 # 518
:proto Sub11 # 546
:proto Sub12 # 566
:proto L22 # 57E
:proto L23 # 5B4
:proto L24 # 5BE
:proto Sub14 # 5E6
:proto L25 # 616
:proto Sub16 # 61E
:proto L26 # 630
:proto L27 # 644
:proto Sub17 # 658
:proto Sub18 # 664
:proto Sub19 # 66E
:proto L28 # 676
:proto Sub20 # 686
:proto Sub21 # 68C
:proto Sub22 # 6A6
:proto Sub23 # 6BE
:proto Sub24 # 6C6
:proto Sub25 # 6EA
:proto Sub26 # 6F6
:proto Sub27 # 70E
:proto Sub28 # 714
:proto Sub29 # 72C
:proto Sub30 # 75C
:proto Sub31 # 76A
:proto Sub32 # 778
:proto Sub33 # 786
:proto Sub34 # 7A6
:proto Sub35 # 7D0
:proto Sub36 # 7E8
:proto Sub37 # 800
:proto Sub38 # 828
:proto Sub39 # 836
:proto Sub40 # 83A
:proto Sub41 # 83E
:proto L42 # 840
:proto D1 # 84A
:proto D2 # 86A
:proto D3 # 86F
:proto D4 # 92F
:proto D5 # 9AF
:proto D6 # 9EF
:proto D7 # A0F
:proto D8 # ACF
:proto D9 # AEF
:proto D10 # AF6
:proto D11 # AF9
:proto D12 # B19
:proto D13 # B39
:proto D14 # BF9
:proto D15 # C39
:proto D16 # C3A
:proto D17 # C3E
:proto D18 # C3F
:proto D19 # C40
:proto D20 # C41
:proto D21 # C42
:proto D22 # C43
:proto D23 # C44
:proto D24 # C46
:proto D25 # C47
:proto D26 # C48
:proto D27 # C4D
:proto D28 # C4E
:proto D29 # C4F
:proto D30 # C50
:proto D31 # C52
:proto D32 # C53
:proto D33 # C56
:proto D34 # C57
:proto D35 # C67
: main
jump L1
0x53 0x70 0x61 0x63 0x65 0x46 0x69 0x67 0x68 0x74 0x32 0x30 0x39 0x31 0x20 0x62 0x79 0x20 0x53 0x6c 0x61 0x6d 0x6d 0x65 0x72 0x2f 0x41 0x6e 0x61 0x72 0x63 0x68 0x79 0x21
: L1
hires
loop
clear
Sub33
Sub1
again
: Sub1
i := D19
v0 := 0
save v0
v8 := 0
loop
i := D3
i += v8
load v7
i := D34
i += v8
save v7
v8 += 8
if v8 != 192 then
again
i := D19
v0 := 0
v1 := 3
v2 := 0
save v2
Sub2
: L4
loop
i := D18
load v0
if v0 == 0 then jump L5
v0 += -1
save v0
: L5
Sub41
Sub16
Sub12
Sub8
Sub4
i := D26
load v4
if v0 != 0 then jump L6
if v1 != 0 then jump L6
if v2 != 0 then jump L6
if v3 != 0 then jump L6
if v4 != 0 then jump L6
Sub3
i := D19
load v0
v0 += 32
save v0
if v0 == 192 then return
Sub2
jump L4
: L6
i := D20
load v0
if v0 != 0 then
again
return
: Sub2
Sub25
i := D22
v0 := 56
v1 := 0
v2 := 0
save v2
i := D24
v0 := 0
v1 := 0
v2 := 1
v3 := 1
v4 := 1
v5 := 1
v6 := 1
v7 := 5
v8 := 0
v9 := 0
vA := 0
vB := 0
vC := 5
save vC
i := D18
v0 := -1
save v0
clear
Sub22
Sub21
Sub23
Sub19
Sub17
Sub24
v5 := 0
jump Sub10
: L7
v3 += 1
if v3 != 5 then jump L10
v3 := 0
jump L10
: Sub3
i := D18
load v0
v0 >>= v5
v0 >>= v5
v0 >>= v5
save v0
Sub32
Sub22
Sub21
Sub23
Sub19
v0 := 32
v1 := 25
i := D5
v2 := 8
v3 := 0
loop
sprite v0 v1 8
v0 += 8
i += v2
v3 += 1
if v3 != 8 then
again
Sub18
Sub39
Sub39
i := D18
load v0
if v0 == 0 then return
loop
Sub18
Sub19
i := D18
load v0
v0 += -1
save v0
i := D21
load v0
v0 += 1
save v0
Sub18
Sub19
v0 := 1
buzzer := v0
Sub41
i := D18
load v0
if v0 != 0 then
again
Sub39
Sub39
return
: Sub4
i := D30
load v2
if v0 != 0 then jump L11
v2 += -1
save v2
if v2 != 0 then return
i := D19
load v0
v2 := 192
v2 -= v0
v2 >>= v5
v2 >>= v5
v2 >>= v5
v2 >>= v5
v2 >>= v5
v0 := v2
i := D31
save v0
v3 := random 0b11
v4 := random 0b1
v3 += v4
: L10
i := D26
i += v3
load v0
if v0 == 0 then jump L7
i := D2
i += v3
load v0
v3 := v0
i := D24
load v1
v0 += v3
v0 += 7
v1 += 25
i := D30
save v2
v0 := 2
buzzer := v0
jump Sub7
: L11
Sub7
v1 += 4
i := D30
save v1
Sub7
if v1 == 64 then jump L16
if v1 == 63 then jump L16
if v1 == 62 then jump L16
if v1 == 61 then jump L16
if v1 == 43 then jump L14
if v1 == 42 then jump L14
if v1 == 41 then jump L14
if v1 == 40 then jump L14
if v1 == 39 then jump L14
if vF == 0 then return
v2 := v0
v3 := v1
i := D23
load v1
if v0 == 0 then jump L12
if v0 != v2 then jump L12
i := D21
load v0
v0 += 1
save v0
v0 := 1
buzzer := v0
Sub14
i := D23
v0 := 0
v1 := 0
save v1
jump L16
: L12
vA := 0
loop
Sub6
Sub5
vA += 1
if vA != 5 then
again
Sub6
jump L16
: L14
v2 := v0
v3 := v0
v2 >>= v5
v2 >>= v5
v2 >>= v5
i := D19
load v0
i := D34
i += v0
i += v2
load v0
if v0 == 0 then return
load v0
v0 += -1
v2 := v0
v0 := 0
save v0
if v2 == 0 then jump L15
v0 := v2
save v0
v2 := 16
i += v2
v0 := 0
save v0
jump L16
: L15
v0 := -8
v0 &= v3
v1 := 44
i := D16
sprite v0 v1 4
: L16
Sub7
i := D30
v0 := 0
v1 := 0
save v1
return
: Sub5
v9 := 1
jump L17
: Sub6
v9 := -1
jump L17
: L17
Sub21
v0 := 1
buzzer := v0
i := D20
load v0
v0 += v9
save v0
Sub21
jump Sub40
: Sub7
i := D30
load v1
i := D10
sprite v0 v1 3
return
: Sub8
i := D27
load v0
v0 += -1
save v0
if v0 != 0 then return
v0 := 5
save v0
v5 := 0
Sub10
Sub9
v5 := 1
jump Sub10
: Sub9
i := D28
load v1
if v0 == 0 then jump L20
if v0 == 1 then jump L18
if v0 == 2 then jump L19
v0 := 10
buzzer := v0
i := D25
load v0
if v0 != 12 then v0 += 1
save v0
v1 += 1
i := D29
v0 := v1
save v0
if v1 != 4 then return
i := D28
v0 := 0
v1 := 0
save v1
return
: L18
v0 := 10
buzzer := v0
i := D25
load v0
if v0 != 12 then v0 += 1
save v0
v1 += 1
i := D29
v0 := v1
save v0
if v1 != 4 then return
i := D28
v0 := 2
v1 := 0
save v1
return
: L19
i := D24
load v0
v0 += -4
save v0
if v0 != 0 then return
i := D28
v0 := 3
save v0
return
: L20
i := D24
load v0
v0 += 4
save v0
if v0 != 40 then return
i := D28
v0 := 1
save v0
return
: Sub10
i := D24
load v1
v7 := v1
v6 := v0
v7 += 9
v8 := 0
i := D19
load v0
v9 := v0
loop
i := D26
i += v8
load v0
i := D7
i += v9
if v0 != 0 then sprite v6 v7 0
if vF != 0 then Sub11
v6 += 18
v8 += 1
if v8 != 5 then
again
return
: Sub11
if v5 == 0 then return
sprite v6 v7 0
i := D26
i += v8
v0 := 0
save v0
Sub19
i := D21
load v0
v0 += 2
save v0
Sub19
Sub14
i := D23
jump L25
: Sub12
i := D23
load v1
if v0 == 0 then return
if v1 == 44 then jump L22
if v1 == 45 then jump L22
if v1 == 46 then jump L22
if v1 != 47 then return
: L22
v2 := v0
v3 := v0
v2 >>= v5
v2 >>= v5
v2 >>= v5
i := D19
load v0
i := D34
i += v0
i += v2
load v0
if v0 == 0 then return
load v0
v0 += -1
v2 := v0
v0 := 0
save v0
if v2 == 0 then jump L23
v0 := v2
save v0
v2 := 16
i += v2
v0 := 0
save v0
jump L24
: L23
v0 := -8
v0 &= v3
v1 := 44
i := D16
sprite v0 v1 4
: L24
Sub14
i := D23
jump L25
: Sub13
v0 := 10
if v0 -key then return
i := D23
load v0
if v0 != 0 then return
i := D22
load v0
v0 += 7
i := D23
v1 := 46
save v1
Sub14
v0 := 1
buzzer := v0
return
: Sub14
i := D23
load v1
i := D10
if v0 != 0 then sprite v0 v1 3
return
: Sub15
Sub14
i := D23
load v1
v1 += -2
if v1 == 8 then jump L25
if v1 == 9 then jump L25
save v1
Sub14
if v0 != 0 then if vF == 0 then return
v5 := 0
Sub10
v5 := 1
Sub10
return
: L25
v0 := 0
v1 := 0
save v1
return
: Sub16
Sub13
Sub15
v0 := 3
if v0 key then jump L27
v0 := 12
if v0 key then jump L26
return
: L26
i := D22
load v0
if v0 == 112 then return
Sub17
v0 += 1
i := D22
save v0
Sub17
return
: L27
i := D22
load v0
if v0 == 0 then return
Sub17
v0 += -1
i := D22
save v0
Sub17
return
: Sub17
i := D22
load v0
v1 := 49
i := D8
sprite v0 v1 0
return
: Sub18
i := D18
load v0
v3 := 57
v4 := 34
jump L28
: Sub19
i := D21
load v0
v3 := 34
v4 := 3
: L28
i := D32
bcd v0
load v2
i := hex v0
Sub20
i := hex v1
Sub20
i := hex v2
: Sub20
sprite v3 v4 5
v3 += 5
return
: Sub21
i := D20
load v0
if v0 == 0 then return
v1 := 77
v2 := 1
i := D9
loop
sprite v1 v2 7
v1 += 8
v0 += -1
if v0 != 0 then
again
return
: Sub22
v0 := 101
v1 := 0
i := D12
: L30
v2 := 8
v3 := 0
loop
sprite v0 v1 8
v0 += 8
i += v2
v3 += 1
if v3 != 4 then
again
return
: Sub23
v0 := 0
v1 := 0
i := D11
jump L30
: Sub24
v1 := 0
v2 := 44
v3 := 0
i := D19
load v0
v4 := v0
loop
i := D35
i += v4
i += v3
load v0
i := D16
if v0 != 0 then sprite v1 v2 4
v1 += 8
v3 += 1
if v3 != 16 then
again
return
: Sub25
Sub30
Sub28
Sub29
Sub26
Sub31
return
: Sub26
Sub27
Sub39
Sub27
Sub40
Sub27
Sub40
Sub27
Sub39
Sub27
Sub39
Sub27
jump Sub39
: Sub27
v0 := 3
buzzer := v0
return
: Sub28
v0 := 32
v1 := 12
i := D14
v2 := 8
v3 := 0
loop
sprite v0 v1 8
v0 += 8
i += v2
v3 += 1
if v3 != 8 then
again
return
: Sub29
v0 := 48
v1 := 32
i := D6
v2 := 8
v3 := 0
loop
sprite v0 v1 8
v0 += 8
i += v2
v3 += 1
if v3 != 4 then
again
i := D19
load v0
v0 >>= v5
v0 >>= v5
v0 >>= v5
v0 >>= v5
v0 >>= v5
v0 += 1
i := bighex v0
v0 := 59
v1 := 41
sprite v0 v1 10
return
: Sub30
v1 := 0
loop
Sub41
scroll-left
v1 += 1
if v1 != 32 then
again
return
: Sub31
v1 := 0
loop
Sub41
scroll-right
v1 += 1
if v1 != 32 then
again
return
: Sub32
v1 := 0
loop
Sub41
scroll-down 4
v1 += 1
if v1 != 16 then
again
return
: Sub33
i := D17
v0 := 100
save v0
Sub35
Sub22
Sub21
Sub23
Sub19
Sub36
loop
Sub41
Sub37
Sub34
v0 := 10
if v0 -key then
again
return
: Sub34
i := D17
load v0
v0 += -1
save v0
if v0 != 0 then return
v0 := 100
save v0
Sub35
i := D13
v0 := 16
v1 := 24
v2 := 32
v3 := 0
loop
sprite v0 v1 0
v0 += 16
i += v2
v3 += 1
if v3 != 6 then
again
return
: Sub35
i := D4
v0 := 32
v1 := 24
v2 := 32
v3 := 0
loop
sprite v0 v1 0
v0 += 16
i += v2
v3 += 1
if v3 != 4 then
again
return
: Sub36
i := D33
v0 := 0
save v0
v2 := v0
v4 := 0
loop
Sub38
v2 += 1
v0 := v2
v4 += 1
if v4 != 16 then
again
return
: Sub37
i := D33
load v0
v2 := v0
v4 := v0
Sub38
i := D1
v2 <<= v5
i += v2
v0 := random 0b1111111
v1 := random 0b111111
save v1
i := D15
sprite v0 v1 1
v3 := 15
v4 += 1
v4 &= v3
v0 := v4
i := D33
save v0
return
: Sub38
i := D1
v0 <<= v5
i += v0
load v1
i := D15
sprite v0 v1 1
return
: Sub39
v0 := 12
jump L42
: Sub40
v0 := 6
jump L42
: Sub41
v0 := 1
: L42
delay := v0
loop
v0 := delay
if v0 != 0 then
again
return
: D1
0xa 0x11 0x5b 0x22 0x5b 0x29 0x75 0x38 0x54 0x11 0xc 0x9 0x34 0x13 0x78 0x34 0x26 0x4 0x6 0x1a 0xc 0x22 0x20 0xa 0x0 0x16 0x6 0x5 0x3f 0x7 0x0 0x1e
: D2
0x0 0x12 0x24 0x36 0x48
: D3
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x1 0x1 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x1 0x1 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x2 0x2 0x0 0x0 0x0 0x0 0x1 0x1 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x1 0x1 0x0 0x0 0x0 0x0 0x1 0x1 0x1 0x0 0x0 0x0 0x0 0x5 0x5 0x0 0x0 0x0 0x5 0x0 0x0 0x5 0x0 0x0 0x0 0x5 0x5 0x0 0x0 0x1 0x1 0x0 0x0 0x0 0x1 0x0 0x0 0x1 0x0 0x0 0x0 0x1 0x1 0x0 0xa 0xa 0x0 0x0 0xa 0xa 0x0 0x0 0x0 0x0 0xa 0xa 0x0 0x0 0xa 0xa 0x1 0x1 0x0 0x0 0x1 0x1 0x0 0x0 0x0 0x0 0x1 0x1 0x0 0x0 0x1 0x1 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
: D4
0x3c 0x0 0x7c 0x0 0xe0 0x0 0xc0 0x0 0xcc 0x71 0xcc 0xfb 0xcd 0xdb 0xcd 0x9b 0xcd 0x9b 0xfd 0xfb 0x7c 0xfb 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0xe0 0xf9 0xf0 0x7d 0x98 0x6d 0xf8 0x6d 0x80 0x6d 0xf8 0x6c 0xf8 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0xff 0xff 0x38 0x0 0x7c 0x0 0xec 0x0 0xcc 0x0 0xcd 0x99 0xcd 0x9b 0xcd 0x9b 0xcd 0x9b 0xcd 0x9b 0xfc 0xf3 0x78 0x61 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0xff 0xff 0x0 0x7 0x0 0x7 0x0 0x6 0x0 0x6 0xc1 0xcc 0xe3 0xcc 0x37 0x8 0xf6 0x8 0x6 0x0 0xf6 0x18 0xf6 0x18 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0xff 0xff
: D5
0xfd 0xfd 0x11 0x31 0x31 0x31 0x31 0x31 0xa1 0xb3 0xbf 0xbf 0xb3 0xb3 0xb3 0xb3 0x1c 0x3c 0x70 0x60 0x78 0x60 0x7c 0x3c 0xe 0x1f 0x1b 0x19 0x1f 0x19 0x1f 0x1f 0xe 0x1f 0xbb 0xb3 0x33 0xb3 0xbf 0x1e 0x66 0x76 0x7e 0x6e 0x66 0x66 0x66 0x66 0xcc 0xcc 0xcd 0xcd 0xcc 0xec 0x7d 0x3d 0x70 0xf3 0x83 0xe0 0xf0 0x33 0xf3 0xe0
: D6
0xc0 0xc1 0xc3 0xc3 0xc3 0xe3 0x7b 0x39 0xec 0xec 0x8c 0xc 0xcc 0xf 0xe7 0xe3 0xc7 0xcf 0xdc 0xd8 0xde 0xd8 0x9f 0xf 0x60 0x60 0x60 0x60 0x60 0x70 0x3c 0x1c
: D7
0x0 0x0 0x97 0xd2 0x3 0x80 0x1 0x0 0xf 0xe0 0x3f 0xf8 0x55 0x54 0xab 0xba 0xff 0x6e 0xba 0xba 0x55 0x54 0x3f 0xf8 0x4f 0xe4 0x0 0x0 0x80 0x2 0x0 0x0 0x3 0xc0 0x6 0x60 0x4 0xa0 0x3 0xc0 0x4 0x20 0xb 0x30 0x14 0x58 0x14 0x28 0x10 0x58 0x12 0xa8 0xd 0x50 0x16 0xa8 0x23 0xc4 0x7f 0xfe 0x40 0x2 0x0 0x0 0x4a 0xaa 0x15 0x50 0x4a 0xaa 0xd5 0x53 0xe4 0x27 0x7f 0xfe 0x39 0x9c 0xc 0x30 0x6 0x60 0x7 0xe0 0x33 0xcc 0x2b 0xd4 0x7 0xe0 0x3 0xc0 0x1 0x80 0x0 0x0 0x3 0xc0 0x5 0x60 0x6 0xa0 0x3 0xc0 0x1b 0xd8 0x2d 0x74 0x5e 0xba 0xa5 0x65 0xc6 0xa3 0xc7 0xe3 0xcd 0xb3 0xda 0x5b 0x54 0x2a 0x18 0x18 0x18 0x18 0x30 0xc 0x30 0xc 0x48 0x12 0xa4 0x25 0x84 0x21 0x4c 0x32 0x32 0x4c 0x2 0x40 0x1f 0xf8 0x20 0xac 0x28 0x54 0x20 0xac 0x1f 0xf8 0x7f 0xfe 0x92 0x49 0x92 0x49 0x92 0x49 0x3f 0xfc 0x40 0x2 0x5a 0xfa 0x50 0xa 0x43 0xea 0x52 0x4a 0x47 0xca 0x50 0xa 0x5f 0xfa 0x40 0x2 0x3f 0xfc 0xf 0xf0 0x38 0x1c 0x54 0x36 0xac 0x2b 0xf8 0x1f
: D8
0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x3 0x80 0x3 0x80 0x3 0x80 0x7 0xc0 0xc6 0xc6 0x7d 0x7c 0x3f 0xf8 0x7f 0xfc 0xc3 0x86 0x1 0x0 0x0 0x0
: D9
0x10 0x10 0x10 0x28 0x7c 0xd6 0xfe
: D10
0x80 0x80 0x80
: D11
0x38 0x79 0xc3 0xf3 0x7b 0x1b 0xfb 0xf1 0xe3 0xe7 0x8e 0xc 0xc 0xc 0xef 0xe7 0x8e 0xdf 0xdb 0xd9 0xdf 0xdf 0xdb 0x99 0xe 0x1e 0xb8 0xb0 0xbc 0x30 0xbe 0x9e
: D12
0xc3 0xc3 0xc3 0xc3 0xc3 0xe3 0x7b 0x3b 0x66 0x66 0x66 0x66 0x66 0x7e 0x3c 0x18 0x38 0x79 0xe3 0xc3 0xf1 0xc0 0xfb 0x7b 0xe0 0xe0 0x0 0xc0 0xe0 0x60 0xe0 0xc0
: D13
0x3c 0x0 0x7c 0x0 0xe0 0x0 0xc0 0x0 0xf1 0xe0 0x79 0xf1 0x1d 0xbb 0xd 0x9b 0xd 0x9b 0xfd 0xfb 0xf9 0xf1 0x1 0x80 0x1 0x80 0x1 0x80 0xfc 0x3f 0xff 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xe1 0xce 0xf3 0xdf 0xb7 0x19 0x36 0x1f 0x36 0x18 0xf7 0xdf 0xf3 0xcf 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0xff 0xff 0xf 0x0 0x1f 0x0 0x38 0x0 0x30 0x0 0x3e 0xc7 0x3e 0xcf 0xb0 0x1d 0xb0 0xd9 0x30 0xd9 0xb0 0xdf 0xb0 0xcf 0x0 0x1 0x0 0xf 0x0 0xf 0xff 0xe0 0xff 0xff 0x30 0x60 0x30 0x60 0x30 0x60 0x30 0x60 0x3c 0x78 0xbe 0x78 0xb7 0x60 0xb3 0x60 0xb3 0x70 0xb3 0x3c 0xb3 0x1c 0x80 0x0 0x80 0x0 0x0 0x0 0x7f 0xff 0xff 0xff 0x3c 0x3c 0x7e 0x7e 0xe6 0xe6 0xc6 0xc6 0xe 0xc6 0x1c 0xc6 0x38 0xc6 0x70 0xc6 0xe0 0xc6 0xfe 0xfe 0xfe 0x7c 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0xff 0xff 0x3c 0xc7 0x7e 0xc7 0xe6 0xc6 0xc6 0xc6 0xc6 0xcc 0xfe 0xcc 0x7e 0xc8 0x6 0xc8 0x6 0xc0 0xfe 0xd8 0xfc 0xd8 0x0 0x0 0x0 0x0 0x0 0x0 0xff 0xff 0xff 0xff
: D14
0x3c 0x7c 0xe1 0xc1 0xcd 0xcd 0xfd 0x7c 0x77 0xf7 0xc0 0x81 0xe1 0x81 0xf1 0xf1 0xe0 0xe0 0x80 0x80 0x80 0x80 0x80 0x80 0xf0 0xf8 0xdd 0xcd 0xfd 0xf9 0xdd 0xcc 0x71 0xf3 0xc7 0x86 0xe7 0x86 0xf6 0xf6 0xc7 0xef 0x6d 0x6c 0xec 0x6c 0x6f 0x6f 0x19 0x99 0xd9 0xdf 0xcf 0xc6 0xc6 0x86 0x98 0x98 0x98 0x98 0x18 0x0 0x18 0x18
: D15
0x80
: D16
0xff 0xaa 0x55 0xff
: D17
0x0
: D18
0x0
: D19
0x0
: D20
0x0
: D21
0x0
: D22
0x0
: D23
0x0 0x0
: D24
0x0
: D25
0x0
: D26
0x0 0x0 0x0 0x0 0x0
: D27
0x0
: D28
0x0
: D29
0x0
: D30
0x0 0x0
: D31
0x0
: D32
0x0 0x0 0x0
: D33
0x0
: D34
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D35
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/SuperChip Games/Super Astro Dodge [Revival Studios, 2008].ch8
######################################################################
:proto L1 # 214
:proto L4 # 242
:proto L5 # 256
:proto Sub1 # 28A
:proto Sub3 # 2B4
:proto Sub4 # 2E6
:proto Sub5 # 2EC
:proto L9 # 2F8
:proto L10 # 302
:proto L11 # 30C
:proto L12 # 316
:proto Sub6 # 31E
:proto L13 # 32C
:proto D1 # 342
:proto D2 # 354
:proto D3 # 35C
:proto D4 # 3DC
:proto Sub7 # 5DC
:proto Sub8 # 5E4
:proto Sub9 # 63C
:proto Sub10 # 672
:proto Sub11 # 6A4
:proto Sub12 # 6DA
:proto Sub13 # 6E2
:proto Sub15 # 712
:proto Sub16 # 71E
:proto D5 # 72A
:proto D6 # 72B
:proto D7 # 72C
:proto D8 # 72F
:proto D9 # 75F
:proto D10 # 7BF
: main
jump L1
0x52 0x45 0x56 0x49 0x56 0x41 0x4c 0x53 0x54 0x55 0x44 0x49 0x4f 0x53 0x32 0x30 0x30 0x38
: L1
hires
clear
vD := 32
delay := vD
Sub7
Sub8
vD := 64
delay := vD
Sub7
Sub8
vD := 32
delay := vD
Sub7
: L2
clear
i := D4
Sub11
Sub9
vD := 4
vC := 0
loop
v0 := 5
if v0 -key then jump L4
jump L5
: L4
delay := vD
Sub7
vC += 1
if vC == 0 then Sub9
if vC == 4 then Sub9
if vC == 8 then vC := 0
again
: L5
i := D4
Sub11
clear
v8 := 32
v9 := 48
Sub4
Sub1
Sub12
v3 := 108
v4 := 0
Sub15
v3 := 108
v4 := 6
Sub16
vD := 0
vE := 8
loop
Sub3
Sub5
vD += 8
if vD == 128 then vD := 0
vE += 8
if vE == 128 then vE := 0
again
0x12 0x2e
: Sub1
vC := 0
loop
i := D1
i += vC
load v1
v1 := random 0b1111
save v1
i := D3
sprite v0 v1 8
vC += 3
if vC != 12 then
again
return
: Sub2
Sub6
Sub13
Sub6
v0 := random 0b1111
v0 += v0
v0 += v0
v0 += v0
v1 := 0
return
: Sub3
vC := 0
v5 := 0
loop
i := D1
i += vC
load v2
i := D3
i += vD
sprite v0 v1 8
v1 += v2
v3 := v1
v4 := 60
v3 -= v4
if vF == 1 then Sub2
i := D3
i += vE
sprite v0 v1 8
i := D1
i += vC
save v1
v5 += 16
vC += 3
if vC != 12 then
again
return
: Sub4
i := D2
sprite v8 v9 8
return
: Sub5
Sub4
v0 := 4
if v0 -key then jump L9
if v8 != 0 then v8 += -1
: L9
v0 := 6
if v0 -key then jump L10
if v8 != 120 then v8 += 1
: L10
v0 := 2
if v0 -key then jump L11
if v9 != 32 then v9 += -1
: L11
v0 := 8
if v0 -key then jump L12
if v9 != 56 then v9 += 1
: L12
Sub4
if vF == 1 then jump L13
return
: Sub6
v3 := 108
v4 := 0
Sub15
v3 := 108
v4 := 6
Sub16
return
: L13
clear
v0 := 32
v1 := 16
Sub10
v3 := 54
v4 := 40
Sub15
loop
v0 := 5
if v0 -key then
again
jump L2
: D1
0x0 0xe 0x1 0x18 0xb4 0x2 0x30 0xe3 0x3 0x48 0x75 0x1 0x60 0x60 0x2 0x78 0x36 0x3
: D2
0x18 0x18 0x34 0x24 0x7e 0xff 0xe7 0x99
: D3
0x0 0x40 0x38 0x14 0x2a 0x75 0x3a 0x14 0x0 0x0 0x28 0x70 0x3e 0x7 0x2a 0x0 0x0 0x40 0x8 0x5c 0x7a 0x75 0xa 0x4 0x0 0x50 0x28 0x54 0x3e 0x75 0x2e 0x1 0x20 0x70 0x78 0x7c 0x3c 0x75 0x6a 0x54 0x0 0x64 0x78 0x78 0x7e 0x7d 0xe8 0x50 0x8 0x44 0x2a 0x50 0x3a 0x5d 0xe8 0x40 0x8 0x54 0xa 0x11 0x2a 0x5c 0x68 0x40 0x0 0x4 0x2a 0x57 0x2a 0x16 0x28 0x50 0x0 0x0 0x2a 0x13 0x6a 0x56 0x8 0x0 0x0 0x0 0x8 0x71 0x2a 0x52 0x30 0x0 0x0 0x4 0xa 0x14 0x3a 0x60 0x68 0x0 0x0 0x4 0xa 0x1c 0x3e 0x70 0x68 0x50 0x20 0x50 0x2e 0x5f 0x2e 0x5c 0x28 0x50 0x20 0x5c 0x3a 0x57 0x3e 0x5e 0x28 0x50 0x0 0x58 0x38 0x77 0x2e 0x7f 0x3e 0x54
: D4
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x20 0x0 0x0 0x0 0x0 0x20 0x0 0x0 0x78 0x7e 0x0 0x0 0xf7 0xf1 0x0 0x0 0xbe 0x9e 0x0 0x0 0x38 0x66 0x0 0x0 0xf8 0xcd 0x0 0x0 0x73 0x9b 0x0 0x0 0xe3 0x36 0x0 0x0 0xcf 0xde 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x0 0x0 0x1 0x0 0x0 0x0 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x78 0x66 0x0 0x0 0xf7 0x1d 0x0 0x0 0xbe 0x9b 0x0 0x0 0x3a 0x36 0x0 0x0 0xf9 0xcd 0x0 0x4 0x73 0xb3 0x10 0x0 0xe3 0x6c 0x0 0x0 0xcf 0xd8 0x0 0x0 0x0 0x0 0x0 0x40 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x3 0x0 0x0 0x0 0x80 0x0 0x20 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xcd 0x33 0x0 0x0 0x83 0x78 0x0 0x0 0x33 0xd9 0x0 0x0 0x66 0x9c 0x0 0x0 0xcd 0xf8 0x0 0x0 0x9b 0xe3 0x0 0x0 0x36 0x87 0x0 0x0 0x6c 0x3c 0x0 0x0 0x0 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x40 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0x0 0x0 0x0 0x0 0x0 0xfd 0x7e 0x0 0x0 0xf7 0x79 0x0 0x0 0xbf 0x9f 0x0 0x0 0x7c 0x66 0x0 0x0 0xfc 0xcd 0x0 0x0 0xfb 0x9b 0x0 0x0 0xf7 0x36 0x0 0x0 0xef 0xde 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x5 0x0 0x0 0x0 0x0 0x1 0x0 0x40 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xfd 0x66 0x0 0x0 0xf7 0x1d 0x0 0x0 0xbf 0x9b 0x0 0x0 0x7c 0x36 0x0 0x0 0xfc 0xcd 0x0 0xe 0xfb 0xb3 0x0 0x0 0xf7 0xec 0x0 0x0 0xef 0xd8 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x50 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xcd 0x0 0x0 0x0 0xc3 0x0 0x0 0x0 0x33 0x0 0x0 0x0 0x66 0x0 0x0 0x0 0xcd 0x0 0x0 0x0 0x9b 0x0 0x0 0x0 0x36 0x0 0x0 0x0 0xc 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x40 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x85 0x66 0x0 0x2 0x0 0x19 0x0 0x0 0x1 0x9b 0x0 0x0 0x46 0x66 0x0 0x0 0x5 0xcd 0x0 0x0 0x88 0x9b 0x0 0x0 0x14 0x6c 0x0 0x0 0x20 0xd8 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x40 0x0 0x0 0x2 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xcd 0x33 0x0 0x0 0x83 0x7c 0x0 0x0 0x33 0xd9 0x0 0x0 0x6e 0xbe 0x0 0x0 0xcd 0xfd 0x0 0x4 0xdb 0xf3 0x0 0x0 0x76 0xcf 0x0 0x0 0x6c 0xbc 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: Sub7
loop
v0 := delay
if v0 != 0 then
again
return
: Sub8
vD := 4
v1 := 29
v0 := 60
v2 := 18
i := D10
i += v2
sprite v0 v1 6
delay := vD
Sub7
v0 := 52
v2 := 12
i := D10
i += v2
sprite v0 v1 6
v0 := 68
v2 := 24
i := D10
i += v2
sprite v0 v1 6
delay := vD
Sub7
v0 := 44
v2 := 6
i := D10
i += v2
sprite v0 v1 6
v0 := 76
v2 := 30
i := D10
i += v2
sprite v0 v1 6
delay := vD
Sub7
i := D10
v0 := 36
sprite v0 v1 6
v0 := 84
v2 := 36
i := D10
i += v2
sprite v0 v1 6
delay := vD
Sub7
return
: Sub9
v2 := 6
v0 := 32
v1 := 48
i := D8
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
v0 += 8
i += v2
sprite v0 v1 6
return
: Sub10
v2 := 12
i := D9
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
v0 += 8
i += v2
sprite v0 v1 12
return
: Sub11
v4 := 1
v5 := 7
v2 := 0
v3 := 0
: L15
v0 := 0
loop
v1 := v3
v1 += 8
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
v1 += 8
i += v4
sprite v0 v1 1
i += v4
v0 += 8
if v0 != 128 then
again
v3 += 3
v3 &= v5
v2 += 1
if v2 != 8 then jump L15
return
: Sub12
v0 := 0
i := D5
save v0
return
: Sub13
i := D5
load v1
v0 += 1
v2 := v0
v2 -= v1
if vF == 1 then v1 := v0
save v1
return
: Sub14
i := D7
load v2
i := hex v0
sprite v3 v4 5
v3 += 5
i := hex v1
sprite v3 v4 5
v3 += 5
i := hex v2
sprite v3 v4 5
v3 += 5
v2 := 0
i := hex v2
sprite v3 v4 5
return
: Sub15
i := D5
load v0
i := D7
bcd v0
Sub14
return
: Sub16
i := D6
load v0
i := D7
bcd v0
Sub14
return
: D5
0x0
: D6
0x64
: D7
0x0 0x0 0x0
: D8
0x0 0x3c 0x36 0x3c 0x30 0x30 0x0 0xf3 0xdb 0xf3 0xdb 0xdb 0x0 0xe7 0xc 0xc7 0x1 0xef 0x0 0x9e 0x30 0x1c 0x86 0x3c 0x0 0x1e 0x30 0x1c 0x6 0x3c 0x0 0xf3 0x66 0x67 0x66 0x66 0x0 0x9e 0xdb 0xde 0xdb 0xdb 0x0 0x78 0x30 0x30 0x30 0x30
: D9
0x1 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x1 0xe7 0xd 0xd 0x6f 0x6d 0x6d 0x6d 0x6d 0x6d 0x6d 0x6d 0xed 0x3f 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0xb5 0x3e 0xb0 0xb0 0xbc 0xb0 0xb0 0xb0 0xb0 0xb0 0xb0 0xb0 0xbe 0x1c 0x36 0x36 0x36 0x36 0x36 0x36 0x36 0x36 0x36 0x36 0x1c 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0xdb 0x7b 0x3b 0xef 0xd 0xd 0xcf 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xed 0x0 0x80 0x80 0x0 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D10
0x0 0x0 0xc 0x11 0x11 0x10 0x0 0x0 0x95 0x55 0x95 0xcd 0x0 0x0 0x53 0x55 0x55 0x33 0x40 0x40 0x44 0x42 0x41 0x46 0x0 0x40 0x6a 0x4a 0x4a 0x46 0x0 0x20 0x69 0xaa 0xaa 0x69 0x0 0x0 0x20 0x90 0x88 0x30
######################################################################
# INPUT: chip8/SuperChip Games/SuperWorm V3 [RB, 1992].ch8
######################################################################
:proto L1 # 21A
:proto L9 # 2C0
:proto L10 # 2D4
:proto Sub2 # 2E2
:proto Sub3 # 2E4
:proto L11 # 2FC
:proto L12 # 312
:proto Sub4 # 32E
:proto Sub5 # 332
:proto Sub6 # 342
:proto D4 # 348
:proto D5 # 350
:proto D6 # 352
:proto D7 # 355
:proto D8 # 357
:proto D9 # 35E
:proto D10 # 35F
:proto D11 # 368
:proto D12 # 468
: main
jump L1
: D1
0x57 0x6f 0x72 0x6d
: D2
0x0 0x52 0x42 0x39 0x32
: D3
0x0 0x0 0x0 0x3e 0x5 0x0 0x2b 0x7c 0x0 0x0 0x6 0x1e 0x1 0x0 0x4
: L1
hires
clear
i := D3
load vE
i := D11
loop
save v0
i += vC
v1 += 1
if v1 != 0 then
again
i := D5
sprite vA vB 3
loop
sprite v4 v2 1
sprite v4 v3 1
v4 += 3
if v4 != 122 then
again
i := D10
v3 := 4
loop
sprite v3 v2 9
sprite v4 v2 9
v2 += 9
if v2 != 63 then
again
i := D2
load v0
i := D1
bcd v0
v3 := 46
Sub3
i := D1
bcd v5
Sub2
Sub5
loop
i := D9
sprite v7 v6 1
v6 += -2
if v6 != 17 then
again
: L6
v3 := 6
delay := v3
i := D11
i += v8
load v0
v4 := v0
v0 := vA
save v0
i := D12
i += v8
load v0
v1 := v0
v0 := vB
save v0
i := D6
if v4 != 0 then sprite v4 v1 3
i := D4
i += v9
load v1
i := D7
sprite vA vB 2
vA += v0
vB += v1
i := D5
sprite vA vB 3
if vF != 0 then jump L11
v0 := random 0b1111
if v0 == 0 then Sub4
: L7
v8 += 1
if v8 == vE then v8 := 0
loop
v1 := 8
if v1 -key then v6 := 0
if v1 -key then jump L9
if v6 != 0 then jump L9
v9 += 2
v6 := 6
v9 &= v6
: L9
v1 := 9
if v1 -key then v7 := 0
if v1 -key then jump L10
if v7 != 0 then jump L10
v9 += -2
v7 := 6
v9 &= v7
: L10
v3 := delay
if v3 != 0 then
again
jump L6
: Sub1
Sub2
i := D1
bcd v5
: Sub2
v3 := 0
: Sub3
v4 := 124
i := D1
load v2
i := hex v0
sprite v4 v3 5
v3 += 6
i := hex v1
sprite v4 v3 5
v3 += 6
i := hex v2
sprite v4 v3 5
return
: L11
Sub6
i := D5
sprite vA vB 3
sprite vA vB 3
if vF != 0 then jump L12
v4 := 2
buzzer := v4
v5 += 1
Sub1
jump L7
: L12
v4 := 10
buzzer := v4
sprite vA vB 3
vA -= v0
vB -= v1
i := D7
sprite vA vB 2
i := D2
load v0
v0 -= v5
v0 := v5
if vF == 0 then save v0
loop
again
: Sub4
vE += 1
return
: Sub5
i := D8
: L14
vC := random 0b1111100
vC += 2
vD := random 0b111100
vD += 2
sprite vC vD 7
if vF == 0 then return
: Sub6
i := D8
sprite vC vD 7
jump L14
: D4
0x4 0x0 0x0 0xfc 0xfc 0x0 0x0 0x4
: D5
0xe0 0xe0
: D6
0xe0 0xa0 0xe0
: D7
0x0 0x40
: D8
0x38 0x7c 0xde 0xfe 0xfe 0x7c 0x38
: D9
0xf0
: D10
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D12
######################################################################
# INPUT: chip8/SuperChip Games/SuperWorm V4 [RB-Revival Studios, 2007].ch8
######################################################################
:proto L1 # 25A
:proto Sub2 # 31C
:proto Sub3 # 31E
:proto L9 # 336
:proto L10 # 34C
:proto Sub4 # 368
:proto Sub5 # 36C
:proto Sub6 # 37C
:proto D4 # 382
:proto D5 # 38A
:proto D6 # 38C
:proto D7 # 38F
:proto D8 # 391
:proto D9 # 398
:proto D10 # 399
:proto D11 # 3A2
:proto D12 # 4A2
: main
jump L1
: D1
0x53 0x75 0x70 0x65 0x72 0x77 0x6f 0x72 0x6d 0x20 0x76 0x2e 0x34 0x2c 0x20 0x62 0x79 0x3a 0x20 0x52 0x42 0x2c 0x20 0x55 0x70 0x64 0x61 0x74 0x65 0x64 0x20 0x62 0x79 0x3a 0x20 0x4d 0x61 0x72 0x74 0x69 0x6a 0x6e 0x20 0x57 0x65 0x6e 0x74 0x69 0x6e 0x67 0x20 0x2f 0x20 0x52 0x65 0x76 0x69 0x76 0x61 0x6c 0x20 0x53 0x74 0x75 0x64 0x69 0x6f 0x73
: D2
0x0 0x52 0x42 0x39 0x32
: D3
0x0 0x0 0x0 0x3e 0x5 0x0 0x2b 0x7c 0x0 0x0 0x6 0x1e 0x1 0x0 0x4
: L1
hires
clear
i := D3
load vE
i := D11
loop
save v0
i += vC
v1 += 1
if v1 != 0 then
again
i := D5
sprite vA vB 3
loop
sprite v4 v2 1
sprite v4 v3 1
v4 += 3
if v4 != 122 then
again
i := D10
v3 := 4
loop
sprite v3 v2 9
sprite v4 v2 9
v2 += 9
if v2 != 63 then
again
i := D2
load v0
i := D1
bcd v0
v3 := 46
Sub3
i := D1
bcd v5
Sub2
Sub5
loop
i := D9
sprite v7 v6 1
v6 += -2
if v6 != 17 then
again
: L6
v3 := 32
delay := v3
i := D11
i += v8
load v0
v4 := v0
v0 := vA
save v0
i := D12
i += v8
load v0
v1 := v0
v0 := vB
save v0
i := D6
if v4 != 0 then sprite v4 v1 3
i := D4
i += v9
load v1
i := D7
sprite vA vB 2
vA += v0
vB += v1
i := D5
sprite vA vB 3
if vF != 0 then jump L9
v0 := random 0b1111
if v0 == 0 then Sub4
: L7
v8 += 1
if v8 == vE then v8 := 0
v3 := 32
delay := v3
loop
v6 := -1
v1 := 6
if v1 key then v6 := 0
v1 := 2
if v1 key then v6 := 2
v1 := 4
if v1 key then v6 := 4
v1 := 8
if v1 key then v6 := 6
if v6 != -1 then v9 := v6
v3 := delay
if v3 != 0 then
again
jump L6
: Sub1
Sub2
i := D1
bcd v5
: Sub2
v3 := 0
: Sub3
v4 := 124
i := D1
load v2
i := hex v0
sprite v4 v3 5
v3 += 6
i := hex v1
sprite v4 v3 5
v3 += 6
i := hex v2
sprite v4 v3 5
return
: L9
Sub6
i := D5
sprite vA vB 3
sprite vA vB 3
if vF != 0 then jump L10
v4 := 2
buzzer := v4
v5 += 1
Sub1
jump L7
: L10
v4 := 10
buzzer := v4
sprite vA vB 3
vA -= v0
vB -= v1
i := D7
sprite vA vB 2
i := D2
load v0
v0 -= v5
v0 := v5
if vF == 0 then save v0
loop
again
: Sub4
vE += 1
return
: Sub5
i := D8
: L12
vC := random 0b1111100
vC += 2
vD := random 0b111100
vD += 2
sprite vC vD 7
if vF == 0 then return
: Sub6
i := D8
sprite vC vD 7
jump L12
: D4
0x4 0x0 0x0 0xfc 0xfc 0x0 0x0 0x4
: D5
0xe0 0xe0
: D6
0xe0 0xa0 0xe0
: D7
0x0 0x40
: D8
0x38 0x7c 0xde 0xfe 0xfe 0x7c 0x38
: D9
0xf0
: D10
0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80
: D11
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D12
######################################################################
# INPUT: chip8/SuperChip Games/U-Boat [Michael Kemper, 1994].ch8
######################################################################
:proto L1 # 26E
:proto L5 # 294
:proto Sub1 # 298
:proto Sub2 # 2E6
:proto Sub3 # 2FA
:proto L11 # 324
:proto Sub4 # 328
:proto L15 # 39A
:proto Sub7 # 3A2
:proto L17 # 3C4
:proto Sub8 # 3CE
:proto Sub9 # 442
:proto L21 # 460
:proto Sub10 # 464
:proto Sub11 # 478
:proto Sub12 # 4DC
:proto Sub13 # 4E8
:proto Sub14 # 4F4
:proto Sub15 # 510
:proto Sub16 # 51E
:proto Sub17 # 558
:proto Sub18 # 586
:proto Sub19 # 59A
:proto Sub20 # 5AE
:proto Sub21 # 5C0
:proto Sub22 # 5DE
:proto Sub23 # 5E6
:proto Sub24 # 604
:proto L29 # 60C
:proto L31 # 63C
:proto L32 # 642
:proto Sub25 # 644
:proto Sub26 # 658
:proto L34 # 674
:proto Sub27 # 68E
:proto Sub28 # 6B6
:proto L37 # 6C8
:proto Sub29 # 6FA
:proto Sub30 # 732
:proto Sub31 # 738
:proto Sub32 # 740
:proto Sub33 # 754
:proto Sub34 # 774
:proto Sub35 # 79E
:proto Sub36 # 7B8
:proto Sub37 # 7D2
:proto Sub38 # 7DE
:proto Sub39 # 7EA
:proto Sub40 # 7F6
:proto D8 # 802
:proto D9 # 806
:proto D10 # 80A
:proto D11 # 80C
:proto D12 # 80E
:proto D13 # 814
:proto D14 # 834
:proto D15 # 854
:proto D16 # 874
:proto D17 # 974
:proto D18 # 97A
:proto D19 # 980
:proto D20 # 984
:proto D21 # 988
:proto D22 # 98C
:proto D23 # 992
:proto D24 # 998
:proto D25 # 99E
:proto D26 # 9A4
:proto D27 # 9A6
:proto D28 # 9A8
:proto D29 # 9AA
:proto D30 # 9AE
:proto D31 # 9B2
:proto D32 # 9B6
:proto D33 # 9B8
:proto D34 # 9BC
: main
jump L1
0x3c 0x55 0x2d 0x42 0x4f 0x41 0x54 0x20 0x56 0x31 0x2e 0x30 0x3e 0x0
: D1
0x53 0x43 0x4f 0x52 0x45 0x0
: D2
0x48 0x49 0x47 0x48 0x0
: D3
0x47 0x41 0x4d 0x45 0x5b 0x4f 0x56 0x45 0x52 0x0
: D4
0x50 0x52 0x45 0x53 0x53 0x5b 0x5e 0x5b 0x50 0x4c 0x41 0x59 0x5c 0x5b 0x5f 0x5b 0x45 0x58 0x49 0x54 0x0
: D5
0x5b 0x43 0x4f 0x50 0x59 0x52 0x49 0x47 0x48 0x54 0x5b 0x5e 0x5d 0x5d 0x60 0x0
: D6
0x5b 0x4d 0x49 0x43 0x48 0x41 0x45 0x4c 0x5b 0x4b 0x45 0x4d 0x50 0x45 0x52 0x0
: D7
0x44 0x52 0x4f 0x50 0x53 0x5b 0x5b 0x48 0x49 0x54 0x53 0x5b 0x5b 0x5b 0x5b 0x5b 0x50 0x43 0x54 0x0
: L1
hires
Sub1
Sub13
: L2
Sub3
v1 := 11
v2 := 49
v3 := 0
v5 := 0
loop
i := D4
Sub9
if v5 == 0 then
again
loop
v0 := 8
if v0 key then jump L5
v0 := 7
if v0 key then jump L2
again
: L5
lores
exit
: Sub1
clear
v1 := 0
: L6
i := D34
i += v1
load v0
v3 := v0
v4 := 1
v5 := 0
loop
v0 := v3
v0 &= v4
if v0 != 0 then Sub2
v4 <<= v0
v5 += 1
if v5 != 8 then
again
v1 += 1
if v1 != 35 then jump L6
v1 := 16
v2 := 32
v3 := 0
v5 := 0
loop
i := D5
Sub9
if v5 == 0 then
again
v1 := 16
v2 := 41
v3 := 0
v5 := 0
loop
i := D6
Sub9
if v5 == 0 then
again
Sub40
Sub40
Sub40
return
: Sub2
i := D11
v6 := v1
v6 += v1
v6 += v1
v6 += 16
v7 := v5
v7 += v5
v7 += v5
sprite v6 v7 2
return
: Sub3
clear
vA := 0
vB := 1
vE := 0
i := D32
v0 := 48
save v0
v8 := 15
v9 := 0
Sub20
Sub21
loop
Sub23
Sub19
Sub16
Sub25
Sub14
if v9 != 0 then jump L11
v0 := 12
if v0 -key then
again
: L11
Sub4
return
: Sub4
Sub10
Sub40
Sub13
Sub7
Sub8
return
: Sub5
v3 := 0
loop
i := D33
i += v3
load v0
i := hex v0
sprite v1 v2 5
v1 += 5
v3 += 1
if v3 != 3 then
again
return
: Sub6
v0 := 0
i := D28
save v0
i := D27
load v0
if v0 == 0 then return
i := D26
load v0
if v0 == 0 then return
i := D27
load v1
v5 := 0
v2 := 0
v3 := 0
loop
v4 := 0
v2 += v0
if vF != 0 then v4 := 1
v3 += v1
v3 += v4
v5 += 1
if v5 != 100 then
again
i := D26
load v1
v5 := 0
loop
v4 := 1
v2 -= v0
if vF != 0 then v4 := 0
v3 -= v1
if vF == 0 then jump L15
v3 -= v4
if vF == 0 then jump L15
v5 += 1
again
: L15
v0 := v5
i := D28
save v0
return
: Sub7
v2 := 0
loop
i := D18
i += v2
load v0
v1 := v0
i := D17
i += v2
load v0
v0 -= v1
if vF == 0 then jump L17
if v0 != 0 then return
v2 += 1
if v2 != 5 then
again
return
: L17
i := D18
load v4
i := D17
save v4
return
: Sub8
v1 := 1
v2 := 1
v3 := 27
v4 := 13
Sub11
v1 := 32
v2 := 12
v3 := 0
v5 := 0
loop
i := D1
Sub9
if v5 == 0 then
again
v1 := 68
v2 := 13
Sub35
v1 := 37
v2 := 20
v3 := 0
v5 := 0
loop
i := D2
Sub9
if v5 == 0 then
again
v1 := 68
v2 := 21
Sub36
v1 := 11
v2 := 32
v3 := 0
v5 := 0
loop
i := D7
Sub9
if v5 == 0 then
again
i := D26
load v0
i := D33
bcd v0
v1 := 16
v2 := 41
Sub5
i := D27
load v0
i := D33
bcd v0
v1 := 50
v2 := 41
Sub5
Sub6
i := D28
load v0
i := D33
bcd v0
v1 := 96
v2 := 41
Sub5
return
: Sub9
i += v3
load v0
if v0 == 0 then jump L21
v4 := 65
v0 -= v4
v0 <<= v0
v0 <<= v0
v0 <<= v0
i := D16
i += v0
sprite v1 v2 7
v1 += 5
v3 += 1
return
: L21
v5 := -1
return
: Sub10
v1 := 38
v2 := 0
v3 := 0
v5 := 0
loop
i := D3
Sub39
Sub9
if v5 == 0 then
again
return
: Sub11
v5 := v1
v5 += v3
v6 := v2
v6 += v4
i := D29
vC := v1
vD := v2
Sub12
i := D30
vC := v5
vD := v2
Sub12
i := D31
vC := v1
vD := v6
Sub12
i := D29
vC := v5
vD := v6
Sub12
v7 := 1
v4 -= v7
loop
i := D31
vC := v1
vD := v4
vD += v2
Sub12
i := D30
vC := v5
vD := v4
vD += v2
Sub12
v4 -= v7
if v4 != 0 then
again
v3 -= v7
loop
i := D30
vC := v3
vC += v1
vD := v2
Sub12
i := D31
vC := v3
vC += v1
vD := v6
Sub12
v3 -= v7
if v3 != 0 then
again
return
: Sub12
vC <<= v0
vC <<= v0
vD <<= v0
vD <<= v0
sprite vC vD 4
return
: Sub13
v3 := 0
loop
v3 += 1
scroll-down 1
Sub37
if v3 != 64 then
again
: Sub14
v1 := 1
v8 -= v1
if v8 != 0 then return
v8 := 15
i := D32
load v0
v0 -= v1
save v0
if v0 == 0 then v9 := -1
if v0 == 12 then Sub15
return
: Sub15
v0 := 16
buzzer := v0
v0 := 26
v1 := 0
i := D12
sprite v0 v1 5
return
: Sub16
vC := 0
loop
i := D25
i += vC
load v0
if v0 == 0 then Sub17
v2 := vC
Sub18
i := D22
i += vC
load v0
v1 := v0
i := D24
i += vC
load v0
v0 =- v1
if v0 == 1 then v0 := 122
if v0 == 0 then v0 := 122
i := D22
i += vC
save v0
v2 := vC
Sub18
vC += 1
if vC != 6 then
again
return
: Sub17
v0 := random 0b101111
v1 := 13
v0 += v1
i := D23
i += vC
save v0
i := D22
i += vC
v0 := random 0b1111010
save v0
i := D25
i += vC
v0 := -1
save v0
i := D24
i += vC
v0 := random 0b11
if v0 == 3 then v0 := 1
save v0
v2 := vC
Sub18
return
: Sub18
i := D22
i += v2
load v0
v1 := v0
i := D23
i += v2
load v0
i := D9
sprite v1 v0 4
return
: Sub19
v0 := 6
i := D8
sprite vA v0 4
vA += vB
if vA == 126 then vA := 0
if vA == 127 then vA := 0
sprite vA v0 4
return
: Sub20
v1 := 0
v0 := 0
loop
i := D18
i += v1
save v0
v1 += 1
if v1 != 46 then
again
return
: Sub21
Sub22
v1 := 0
v2 := 0
Sub35
v1 := 104
v2 := 0
Sub36
i := D10
v1 := 10
v0 := 0
loop
sprite v0 v1 2
v0 += 8
if v0 != 128 then
again
return
: Sub22
v0 := 6
i := D8
sprite vA v0 4
return
: Sub23
v0 := 14
if v0 -key then vE := 0
if vE == 0 then Sub24
v0 := 7
if v0 key then vB := 0
v0 := 8
if v0 key then vB := 1
v0 := 9
if v0 key then vB := 2
return
: Sub24
v0 := 14
if v0 key then jump L29
return
: L29
vE := -1
v3 := 0
loop
i := D21
i += v3
load v0
if v0 != 0 then jump L31
v0 := -1
save v0
i := D19
i += v3
v0 := vA
save v0
i := D20
i += v3
v0 := 11
save v0
i := D26
load v0
v0 += 1
save v0
v2 := v3
Sub32
jump L32
: L31
v3 += 1
if v3 != 4 then
again
: L32
return
: Sub25
vC := 0
loop
i := D21
i += vC
load v0
if v0 != 0 then Sub26
vC += 1
if vC != 4 then
again
return
: Sub26
v2 := vC
Sub32
i := D20
i += vC
load v0
v0 += 1
save v0
if v0 != 62 then jump L34
v0 := 0
i := D21
i += vC
save v0
return
: L34
v2 := vC
Sub32
if vF == 0 then return
Sub32
v0 := 0
i := D21
i += vC
save v0
Sub27
v5 := vD
Sub33
return
: Sub27
v7 := 0
loop
v2 := v7
i := D25
i += v7
load v0
if v0 != 0 then Sub18
v7 += 1
if v7 != 6 then
again
v7 := 0
loop
i := D25
i += v7
load v0
if v0 != 0 then Sub28
v7 += 1
if v7 != 6 then
again
return
: Sub28
v2 := v7
Sub18
v2 := vC
Sub32
if vF != 0 then jump L37
v2 := vC
Sub32
return
: L37
i := D27
load v0
v0 += 1
save v0
i := D23
i += v7
load v0
vD := v0
i := D24
i += v7
load v0
if v0 == 1 then Sub30
if v0 == 2 then Sub31
v2 := v7
Sub18
v2 := vC
Sub32
Sub29
i := D25
i += v7
v0 := 0
save v0
return
: Sub29
i := D22
i += v7
load v0
v5 := v0
v0 := 4
v5 -= v0
i := D23
i += v7
load v0
v6 := v0
v0 := 5
v6 -= v0
v0 := 2
buzzer := v0
i := D13
sprite v5 v6 0
Sub38
v0 := 1
buzzer := v0
i := D14
sprite v5 v6 0
Sub38
v0 := 2
buzzer := v0
i := D15
sprite v5 v6 0
Sub38
return
: Sub30
v0 := vD
vD += v0
return
: Sub31
v0 := vD
vD += v0
vD += v0
return
: Sub32
i := D19
i += v2
load v0
v1 := v0
i := D20
i += v2
load v0
i := D11
sprite v1 v0 2
return
: Sub33
v1 := 0
v2 := 0
Sub35
i := D18
load v4
vD := 1
loop
Sub34
v5 -= vD
if v5 != 0 then
again
i := D18
save v4
v1 := 0
v2 := 0
Sub35
return
: Sub34
v4 += 1
if v4 != 10 then return
v4 := 0
v3 += 1
if v3 != 10 then return
v3 := 0
v2 += 1
if v2 != 10 then return
v2 := 0
v1 += 1
if v1 != 10 then return
v1 := 0
v0 += 1
if v0 != 10 then return
v0 := 0
return
: Sub35
v3 := 0
loop
i := D18
i += v3
load v0
i := hex v0
sprite v1 v2 5
v0 := 4
i += v0
v1 += 5
v3 += 1
if v3 != 5 then
again
return
: Sub36
v3 := 0
loop
i := D17
i += v3
load v0
i := hex v0
sprite v1 v2 5
v0 := 4
i += v0
v1 += 5
v3 += 1
if v3 != 5 then
again
return
: Sub37
v0 := 2
delay := v0
loop
v0 := delay
if v0 != 0 then
again
return
: Sub38
v0 := 4
delay := v0
loop
v0 := delay
if v0 != 0 then
again
return
: Sub39
v0 := 8
delay := v0
loop
v0 := delay
if v0 != 0 then
again
return
: Sub40
v0 := 64
delay := v0
loop
v0 := delay
if v0 != 0 then
again
return
: D8
0x4 0x1c 0xff 0xfe
: D9
0x0 0x30 0xfd 0xfe
: D10
0xff 0x0
: D11
0xc0 0xc0
: D12
0x3f 0x12 0xc 0x1e 0x3f 0x0
: D13
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x80 0x1 0x80 0xf 0xf0 0xf 0xf0 0x1 0x80 0x1 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D14
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x40 0x3 0xc0 0x1f 0xf8 0xf 0xf0 0xf 0xf0 0x1f 0xf8 0x3 0xc0 0x2 0x40 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D15
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x2 0x40 0x2 0x40 0x1e 0x78 0x0 0x0 0x0 0x0 0x1e 0x78 0x2 0x40 0x2 0x40 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D16
0x6 0x9 0x9 0xf 0x9 0x9 0x9 0x0 0xe 0x9 0x9 0xe 0x9 0x9 0xe 0x0 0x6 0x9 0x8 0x8 0x8 0x9 0x6 0x0 0xe 0x9 0x9 0x9 0x9 0x9 0xe 0x0 0xf 0x8 0x8 0xe 0x8 0x8 0xf 0x0 0xf 0x8 0x8 0xe 0x8 0x8 0x8 0x0 0x6 0x9 0x8 0xb 0x9 0x9 0x7 0x0 0x9 0x9 0x9 0xf 0x9 0x9 0x9 0x0 0x7 0x2 0x2 0x2 0x2 0x2 0x7 0x0 0x7 0x1 0x1 0x1 0x1 0x9 0x6 0x0 0x9 0x9 0xa 0xc 0xa 0x9 0x9 0x0 0x8 0x8 0x8 0x8 0x8 0x8 0xf 0x0 0x9 0xf 0xf 0x9 0x9 0x9 0x9 0x0 0x9 0xd 0xd 0xb 0xb 0x9 0x9 0x0 0x6 0x9 0x9 0x9 0x9 0x9 0x6 0x0 0xe 0x9 0x9 0xe 0x8 0x8 0x8 0x0 0x6 0x9 0x9 0x9 0x9 0xb 0x6 0x0 0xe 0x9 0x9 0xe 0x9 0x9 0x9 0x0 0x6 0x9 0x8 0x6 0x1 0x9 0x6 0x0 0xe 0x4 0x4 0x4 0x4 0x4 0x4 0x0 0x9 0x9 0x9 0x9 0x9 0x9 0x6 0x0 0x9 0x9 0x9 0x9 0xa 0xc 0x8 0x0 0x9 0x9 0x9 0x9 0xf 0xf 0x9 0x0 0x9 0x9 0x9 0x6 0x9 0x9 0x9 0x0 0x9 0x9 0x9 0x7 0x1 0x1 0xe 0x0 0xf 0x1 0x2 0x4 0x8 0x8 0xf 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x6 0x2 0x4 0x0 0x6 0x9 0x9 0x7 0x1 0x9 0x6 0x0 0x2 0x6 0x2 0x2 0x2 0x2 0x7 0x0 0x6 0x9 0x1 0x2 0x4 0x8 0xf 0x0 0x1 0x3 0x5 0x9 0xf 0x1 0x1 0x0
: D17
0x0 0x0 0x0 0x0 0x0 0x0
: D18
0x0 0x0 0x0 0x0 0x0 0x0
: D19
0x0 0x0 0x0 0x0
: D20
0x0 0x0 0x0 0x0
: D21
0x0 0x0 0x0 0x0
: D22
0x0 0x0 0x0 0x0 0x0 0x0
: D23
0x0 0x0 0x0 0x0 0x0 0x0
: D24
0x0 0x0 0x0 0x0 0x0 0x0
: D25
0x0 0x0 0x0 0x0 0x0 0x0
: D26
0x0 0x0
: D27
0x0 0x0
: D28
0x0 0x0
: D29
0xa 0xd 0xe 0xf
: D30
0xa 0x5 0xa 0x5
: D31
0xf 0xf 0xf 0xf
: D32
0x0 0x0
: D33
0x0 0x0 0x0 0x0
: D34
0x7e 0x80 0x80 0x80 0x80 0x7e 0x0 0x10 0x10 0x10 0x10 0x0 0xfe 0x92 0x92 0x92 0x6c 0x0 0x7c 0x82 0x82 0x82 0x7c 0x0 0xf8 0x24 0x22 0x24 0xf8 0x0 0x2 0x2 0xfe 0x2 0x2 0x0
######################################################################
# INPUT: chip8/SuperChip Test Programs/BMP Viewer (16x16 tiles) (MAME) [IQ_132].ch8
######################################################################
:proto D1 # 220
: main
hires
v0 := 0
v2 := 32
i := D1
: L1
v1 := 0
loop
sprite v1 v0 0
v1 += 16
i += v2
if v1 != 128 then
again
if v0 == 48 then loop
again
v0 += 16
jump L1
0x0 0x0 0x0 0x0
: D1
0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xfe 0xff 0xfc 0xff 0xf8 0xff 0xf0 0xff 0xe0 0xff 0xc0 0xff 0xbf 0xff 0x3f 0xfe 0x3f 0xfc 0x3f 0xf8 0x3f 0xf0 0x3f 0xe0 0x3f 0xc0 0x3e 0x80 0x3c 0x0 0x38 0x0 0x30 0x0 0x20 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0x0 0xfd 0xff 0xf9 0xff 0xf1 0xff 0xe1 0xff 0xc1 0xff 0x81 0xff 0x1 0xff 0x1 0xff 0x1 0xff 0x1 0xff 0x1 0xfe 0x1 0xfc 0x1 0xf8 0x1 0xf0 0x1 0xe0 0x1 0xc0 0xff 0xbf 0xff 0x3f 0xfe 0x3f 0xfc 0x3f 0xf8 0x3f 0xf0 0x3f 0xe0 0x3f 0xc0 0x3f 0x80 0x3f 0x0 0x3f 0x0 0x3f 0x0 0x3f 0x0 0x3f 0x0 0x3f 0x0 0x3f 0x0 0x3e 0xff 0xfd 0xff 0xf9 0xff 0xf1 0xff 0xe1 0xff 0xc1 0xff 0x81 0xff 0x1 0xfe 0x1 0xfc 0x1 0xf8 0x1 0xf0 0x0 0xe0 0x0 0xc0 0x0 0x80 0x0 0x0 0x0 0x0 0x0 0xff 0xbf 0xff 0x3f 0xfe 0x3f 0xfc 0x3f 0xf8 0x3f 0xf0 0x3f 0xe0 0x3f 0xc0 0x3f 0x80 0x3f 0x0 0x3f 0x0 0x3f 0x0 0x3f 0x0 0x3f 0x0 0x3e 0x0 0x3c 0x0 0x38 0xff 0xf0 0xff 0xe0 0xff 0xc0 0xff 0x80 0xff 0x0 0xfe 0x0 0xfc 0x0 0xf8 0x0 0xf0 0x1 0xe0 0x0 0xc0 0x0 0x80 0x0 0x0 0x0 0x0 0x1 0x0 0x3 0x0 0x7 0x0 0x0 0x0 0x1 0x0 0x3 0x0 0x7 0x0 0xf 0x0 0x1f 0x7f 0xff 0xff 0xff 0xff 0xff 0x1f 0xff 0x3f 0xff 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x80 0xff 0x0 0xfe 0x0 0xfc 0x0 0xf8 0x0 0xf0 0x1 0xe0 0x3 0xc0 0x7 0x80 0xf 0x0 0xf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xc 0x0 0x1c 0x1 0x3c 0x3 0x7c 0x7 0xfc 0xf 0xfc 0x1f 0xfc 0x3f 0xfc 0x7f 0xfc 0xff 0xfd 0xff 0xff 0xfe 0xff 0xfc 0xff 0xf8 0xff 0xf0 0xff 0xe0 0xff 0xc0 0x1 0x80 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0x0 0x3 0x0 0x7 0x0 0xf 0x0 0x1f 0x0 0x3f 0x0 0x7f 0x0 0xff 0x1 0xff 0x3 0xff 0x7 0xff 0xf 0xff 0x0 0x3c 0x20 0x38 0x60 0x30 0xe0 0x20 0xe0 0x0 0xe0 0x0 0xe0 0x0 0xe0 0x0 0xe0 0x0 0xe0 0x0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x0 0x40 0x0 0xc0 0x1 0xc0 0x3 0xc0 0x7 0xc0 0xf 0xc1 0x1f 0xc3 0x3f 0xc7 0x7f 0xcf 0xff 0xdf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x0 0x30 0x0 0x20 0x10 0x0 0x30 0x0 0x70 0x0 0xf0 0x0 0xf0 0x0 0xf0 0x0 0xf0 0x0 0xf0 0x0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x1 0xff 0x3 0xff 0x7 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7 0xff 0xf 0xff 0x1f 0xff 0x3f 0xff 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x80 0xff 0x0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x1f 0xff 0x3f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
######################################################################
# INPUT: chip8/SuperChip Test Programs/BMP Viewer - Flip-8 logo [Newsdee, 2006].ch8
######################################################################
:proto Sub1 # 226
:proto D2 # 230
: main
0x0 : D1 0xff # SMC: hires
clear
i := D1
load v0
i := D2
v1 := 64
if v0 != -1 then v1 >>= v0
v0 := v1
v0 <<= v0
v2 := 0
v3 := 1
v1 += -1
loop
sprite v2 v1 1
v2 += 8
if v2 == v0 then Sub1
i += v3
again
: Sub1
v1 += -1
v2 := 0
if v1 == -1 then loop
again
return
: D2
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x8 0xbd 0x8c 0xe6 0x67 0xc 0x4d 0xe7 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x8 0xb1 0xdd 0x16 0x68 0xb2 0x4d 0x10 0x60 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x9 0xb1 0xdd 0x17 0x68 0xb2 0x5d 0x10 0x60 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xb 0xb1 0xad 0x37 0x88 0xb2 0x5d 0x10 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xc 0xb9 0x8d 0x6 0x68 0xb2 0x6d 0x11 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x8 0xb1 0x8d 0x16 0x68 0xb2 0x4d 0x16 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x8 0xbd 0x8c 0xe7 0x87 0x32 0x4d 0xe1 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x8 0xbc 0x80 0x87 0x7 0x32 0x4d 0xc0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0x9c 0xe7 0x44 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x5 0xa1 0x29 0x28 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x7 0x31 0x29 0x10 0x0 0x0 0x10 0x0 0xf1 0xfc 0x0 0x1 0xf0 0x0 0x0 0x0 0x4 0xad 0x29 0x28 0x0 0x0 0x10 0x18 0xdc 0xfe 0x0 0x0 0xfc 0x0 0x0 0x0 0x4 0x9c 0xe9 0x44 0x0 0x0 0x0 0x30 0x1e 0x7f 0x0 0x0 0x3c 0x0 0x0 0x0 0x4 0x80 0x20 0x0 0x0 0x0 0x2 0x20 0x1b 0x3f 0x0 0x0 0x3e 0x1 0x0 0x0 0x7 0x0 0x20 0x0 0x0 0x0 0x2 0x41 0x3 0x9f 0x0 0x0 0x1e 0x1 0x80 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x12 0x41 0x2 0x1f 0xc0 0x0 0xc 0x3 0xe0 0x0 0x0 0x0 0x20 0x0 0x0 0x0 0x1f 0x41 0x0 0x4f 0xc0 0x0 0xf 0x3 0xe0 0x0 0x0 0x0 0x20 0x0 0x0 0x0 0x1f 0x22 0x10 0x87 0xa0 0x0 0xf 0x27 0xe0 0x0 0x0 0x84 0xb8 0x60 0x0 0x0 0x1f 0x1c 0x11 0x7 0xe0 0x0 0x6 0x3f 0xe0 0x0 0x80 0x84 0xa4 0x90 0x10 0x0 0x1f 0x88 0xc1 0x3 0xf0 0x0 0x7 0xbf 0xe0 0x0 0x80 0x84 0xa4 0x90 0x10 0x0 0x1f 0xc4 0x73 0x3 0xc0 0x0 0x7 0xbf 0xe0 0x0 0x80 0xf4 0xa4 0x60 0x10 0x0 0x1f 0xe3 0x1b 0x3 0xf0 0x0 0x7 0x3f 0xe0 0x0 0xc0 0x84 0xb8 0x90 0x30 0x0 0x1f 0xf0 0x89 0x3 0xf0 0x0 0x7 0xbf 0xe0 0x0 0xc0 0x84 0x0 0x90 0x30 0x0 0x1f 0xf8 0x41 0x3 0xe0 0x0 0x3 0x9f 0xe0 0x0 0xe0 0xf4 0x80 0x60 0x70 0x0 0x1f 0xfc 0x31 0x83 0xf7 0xff 0xc0 0x1f 0xe0 0x0 0x70 0x0 0x0 0x0 0xe0 0x0 0x1f 0xfe 0x18 0x63 0xf7 0xff 0xc1 0xef 0xe0 0x0 0x78 0x0 0x0 0x1 0xe0 0x0 0x1f 0xff 0xc 0xf0 0x3 0xff 0xc1 0xcf 0xe0 0x0 0x7c 0x0 0x0 0x3 0xe0 0x0 0x1f 0xff 0x87 0xe0 0xfb 0xff 0x81 0xcf 0xe0 0x0 0x3e 0x0 0x0 0x7 0xc0 0x0 0x1f 0xff 0x80 0x80 0xfb 0xff 0x3 0x9f 0xe0 0x0 0x3f 0x80 0x0 0x1f 0xc0 0x0 0x1f 0xff 0x80 0x1 0xf0 0x0 0x7 0xbf 0xe0 0x0 0x1f 0xe0 0x0 0x7f 0x80 0x0 0x1f 0xff 0x80 0x1 0xf0 0x0 0xe 0x7f 0xe0 0x0 0xf 0xfc 0x3 0xff 0x0 0x0 0x1f 0xff 0x80 0x3 0xe7 0xfe 0xe1 0xff 0xe0 0x0 0x7 0xff 0xff 0xfe 0x0 0x0 0x1f 0xff 0x80 0x7 0xc0 0x0 0xff 0xff 0xe0 0x0 0x3 0xff 0xff 0xfc 0x0 0x0 0x1f 0xff 0x80 0x20 0x1e 0x3d 0xff 0xff 0xe0 0x0 0x1 0xff 0xff 0xf8 0x0 0x0 0x1f 0xff 0xa0 0x2f 0x3c 0x1d 0xff 0xff 0xe0 0x0 0x0 0x7f 0xff 0xe0 0x0 0x0 0x1f 0xff 0xbc 0x2f 0x3d 0x1 0xff 0xff 0xe0 0x0 0x0 0x1f 0xff 0x80 0x0 0x0 0x1f 0xff 0xcf 0x2f 0x3c 0xc3 0xff 0xff 0xe0 0x0 0x0 0x3 0xfc 0x0 0x0 0x0 0x1f 0xff 0xe3 0xef 0x7e 0x30 0xff 0xff 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1f 0xff 0xf8 0xcf 0x1 0xc 0x3f 0xff 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1f 0xff 0xfc 0x1f 0xfe 0x67 0xf 0xff 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1f 0xff 0xf9 0xf 0xff 0xc9 0xc3 0xff 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1f 0xff 0xfd 0x40 0x0 0x3e 0x71 0xff 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1f 0xff 0xfc 0x81 0xff 0xff 0x9c 0x1f 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1f 0xff 0xfc 0x43 0xff 0xff 0xe4 0xe7 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1f 0xff 0xfe 0x3 0xff 0xff 0xf1 0xb9 0xe0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x1f 0xff 0xff 0xbf 0xff 0xff 0xfd 0x35 0xe6 0x33 0xe3 0x18 0xf0 0xf0 0xf9 0xf0 0x1f 0xff 0xff 0x27 0xff 0xff 0xfc 0xc5 0xe6 0x73 0xe3 0x1d 0xfc 0xf8 0xf9 0xf0 0x1f 0xff 0xfe 0x77 0xff 0xff 0xff 0x3d 0xe6 0xf3 0x3 0xbd 0xc 0xcc 0xc1 0x80 0x1f 0xff 0xff 0x77 0xff 0xff 0xff 0xc9 0xe6 0xb3 0xe7 0xb4 0x7c 0xcc 0xf9 0xf0 0x1f 0xff 0xff 0x8f 0xff 0xff 0xff 0xf7 0xe7 0x33 0xe6 0xf6 0xf8 0xcc 0xf9 0xf0 0x1f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xe7 0x33 0x6 0xe6 0xc0 0xd8 0xc1 0x80 0x1f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xe6 0x33 0xec 0x63 0x78 0xf8 0xf9 0xf0 0x1f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xe4 0x33 0xec 0x63 0x38 0xe0 0xf9 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/SuperChip Test Programs/BMP Viewer (Google) [IQ_132].ch8
######################################################################
:proto L3 # 216
:proto D1 # 220
: main
hires
i := D1
v7 := 1
v8 := 63
: L1
v9 := 0
loop
sprite v9 v8 1
v9 += 8
i += v7
if v9 == 128 then jump L3
again
: L3
if v8 == 0 then loop
again
v8 -= v7
jump L1
0x0 0x0
: D1
0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf0 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x0 0x1f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xfc 0x3 0x7 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf8 0x3f 0xf3 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf8 0x7f 0xf9 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf8 0x7f 0xf8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf8 0xff 0xf8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf8 0xff 0xf8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf8 0xff 0xf8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf8 0x7f 0xf0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xfc 0x3f 0xe0 0xff 0xff 0xff 0xff 0xff 0xfc 0x0 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xf 0xc1 0xff 0xff 0xff 0xff 0xff 0xc0 0x0 0x1f 0xff 0x87 0xff 0xff 0xf 0xff 0xe0 0x3 0xff 0xff 0xc0 0xff 0xff 0x80 0x7f 0x81 0xfc 0x0 0xff 0xf8 0x1 0xff 0xfe 0x7 0xe0 0x1f 0x0 0x3f 0xff 0x1 0xff 0xc1 0xf8 0x3e 0x3f 0xf0 0x78 0x7f 0xfc 0xf 0xe0 0x3e 0x0 0x1f 0xfe 0x7 0xff 0xc1 0xf0 0x7f 0x1f 0xe1 0xfe 0x3f 0xfc 0x1f 0xe1 0xfc 0xf 0x8f 0xfc 0xf 0xff 0xc1 0xe0 0xff 0x8f 0xc3 0xfe 0x1f 0xfc 0x3f 0xe1 0xf8 0x3f 0xff 0xf8 0x1f 0xff 0xc1 0xe1 0xff 0xcf 0xc3 0xff 0x1f 0xf0 0x3f 0xe1 0xf8 0x7f 0xff 0xf0 0x3f 0xff 0xc1 0xe1 0xff 0xc7 0x87 0xff 0xf 0xc0 0x1f 0xe1 0xf0 0x7f 0xff 0xf0 0x7f 0xff 0xc1 0xc1 0xff 0xc7 0x87 0xff 0xf 0x3 0x8f 0xe1 0xf0 0xff 0xff 0xe0 0x7f 0xf8 0x1 0xc3 0xff 0xc3 0x7 0xff 0x6 0xf 0xe3 0xe1 0xf0 0xff 0xff 0xe0 0xff 0xfe 0x0 0xc3 0xff 0xc3 0xf 0xff 0x6 0x1f 0xe3 0xe1 0xf1 0xff 0xff 0xe0 0xff 0xff 0xff 0xc3 0xff 0xc3 0xf 0xff 0x6 0x1f 0xe3 0xe1 0xf1 0xff 0xff 0xc0 0xff 0xff 0xff 0xc3 0xff 0xc3 0xf 0xff 0x6 0x1f 0xe1 0xe1 0xf0 0x1f 0xff 0xc1 0xff 0xff 0xff 0xc3 0xff 0x83 0xf 0xff 0x6 0x1f 0xe1 0xe1 0xf1 0xe3 0xff 0xc1 0xff 0xff 0xff 0xc3 0xff 0x87 0x8f 0xfe 0xe 0x3f 0xe3 0xe1 0xf1 0xf8 0xff 0xc1 0xff 0xff 0xff 0xe3 0xff 0x87 0x8f 0xfe 0xe 0x3f 0xc3 0xf1 0xf1 0xfe 0x1f 0xc1 0xff 0xff 0xff 0xe3 0xff 0xf 0xcf 0xfe 0x1f 0x1f 0xc3 0xf1 0xf9 0xff 0xf 0xe1 0xff 0xff 0xff 0xf3 0xfe 0xf 0xc7 0xfc 0x1f 0x1f 0x83 0xf1 0xf9 0xff 0x1f 0xe1 0xff 0xff 0xff 0xf8 0xfc 0x1f 0xf3 0xf8 0x7f 0xcf 0xf 0xf1 0xfc 0x7c 0x3f 0xe1 0xff 0xff 0xff 0xfe 0x30 0x3f 0xf8 0xe0 0xff 0xe0 0x1 0xf1 0xfe 0x38 0x7f 0xe0 0xff 0xff 0xff 0xff 0x81 0xff 0xfe 0x3 0xff 0xff 0xc0 0x71 0xff 0x80 0xff 0xf0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf1 0xff 0xff 0xff 0xf0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf1 0xff 0xff 0xff 0xf8 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf1 0xff 0xff 0xff 0xfc 0x7f 0xff 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf1 0xff 0xff 0xff 0xfe 0x3f 0xff 0xc7 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf0 0xff 0xff 0xff 0xff 0x1f 0xff 0xc3 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf0 0xff 0xff 0xff 0xff 0x87 0xfe 0x7 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf0 0xff 0xff 0xff 0xff 0xe1 0xf8 0xf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf0 0xff 0xff 0xff 0xff 0xf8 0x0 0x3f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x80 0xff 0xff 0xff 0xff 0xfe 0x3 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xc0 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
######################################################################
# INPUT: chip8/SuperChip Test Programs/BMP Viewer - Kyori (SC example) [Hap, 2005].ch8
######################################################################
:proto Sub1 # 226
:proto D2 # 230
: main
0x0 : D1 0xff # SMC: hires
clear
i := D1
load v0
i := D2
v1 := 64
if v0 != -1 then v1 >>= v0
v0 := v1
v0 <<= v0
v2 := 0
v3 := 1
v1 += -1
loop
sprite v2 v1 1
v2 += 8
if v2 == v0 then Sub1
i += v3
again
: Sub1
v1 += -1
v2 := 0
if v1 == -1 then loop
again
return
: D2
0xff 0x7f 0x76 0x7f 0xf7 0xff 0xc0 0x7f 0xcf 0xff 0xfe 0xff 0xff 0xff 0xff 0xff 0xfe 0x7c 0xee 0x67 0xf5 0xff 0x80 0x28 0x9f 0xff 0xf2 0xff 0xff 0xff 0xff 0xff 0xfc 0xf9 0xec 0xef 0xe5 0xff 0x80 0x77 0x3f 0xff 0xff 0x7f 0xff 0xff 0xff 0xff 0xfc 0xf3 0xcc 0xdf 0xed 0xff 0x0 0x2a 0x7f 0xff 0xf5 0x7f 0xff 0xff 0xfa 0xfd 0xf9 0xc7 0x99 0xbf 0xc4 0xff 0x0 0x3c 0xff 0xff 0xf5 0x7f 0xff 0xff 0xfa 0x3d 0xf1 0x8f 0xb1 0x3f 0x96 0xff 0x0 0x19 0xff 0xff 0xe9 0xf 0xff 0xff 0xff 0xcf 0xf3 0x1f 0x33 0x6f 0x33 0xff 0x0 0x1b 0xff 0xff 0xfb 0xf7 0xff 0xff 0xff 0xe3 0xe2 0x3e 0x62 0xd6 0x40 0xff 0x0 0x1b 0xff 0xff 0xe7 0xf7 0xff 0xff 0xff 0xf8 0xe6 0xfe 0x46 0xb4 0x9e 0x3f 0x0 0xb 0xff 0xff 0xff 0xf7 0xff 0xfe 0x7f 0xfe 0xc0 0xfc 0xc5 0xad 0x3f 0xaf 0xc0 0xf 0xff 0xff 0xff 0xc7 0xff 0xff 0xc7 0x7f 0xc9 0x79 0x81 0xe9 0xff 0xff 0xf8 0xf 0xff 0xff 0xff 0xbf 0xff 0xff 0xfb 0x9f 0x81 0xf1 0x83 0x4b 0x1c 0xff 0xfc 0xf 0xff 0xff 0xff 0x78 0xff 0xff 0x5c 0xe3 0x81 0xe1 0x0 0x54 0x87 0xff 0xff 0xf 0xff 0xff 0xfe 0x73 0x3f 0xff 0x46 0x39 0x3 0xc3 0x2 0x81 0xf0 0x7 0x9f 0xe7 0xff 0xff 0xff 0xf7 0xff 0xff 0xf3 0xc 0x3 0xc0 0x1 0x63 0xff 0xff 0xdf 0xf7 0xff 0xff 0xf9 0x97 0xbf 0xff 0xf9 0x86 0x7 0x18 0x0 0xc3 0xff 0xff 0xef 0xff 0xfb 0xff 0xfb 0x7f 0xbf 0xff 0xfc 0xc2 0x7 0x10 0x1 0x8d 0xff 0xff 0xef 0xfb 0xf7 0xff 0xe1 0xff 0xbf 0xfd 0x7e 0x70 0x6 0x30 0x3 0x1b 0xff 0xff 0xe6 0xfb 0xef 0xbf 0xf7 0xff 0x80 0x7f 0x7e 0x38 0xe 0x20 0x7 0x22 0xff 0xff 0xf7 0x7b 0xdf 0xbf 0xff 0xfe 0xf 0x3f 0xbf 0x18 0xc 0x60 0x6 0x9a 0x3f 0xff 0xf3 0x79 0x9f 0x7f 0xff 0xff 0xff 0xfe 0xcf 0xc 0xc 0x40 0xe 0x9a 0x1f 0xff 0xf3 0xb9 0xbe 0xff 0xff 0xff 0xff 0xbe 0xef 0x84 0x8 0xc4 0xd 0x3f 0xff 0xff 0xf1 0xbb 0x3c 0xff 0xff 0xff 0xff 0xbf 0x67 0x82 0x8 0x88 0x9 0x3f 0xff 0xff 0xf1 0xb9 0x79 0xff 0xff 0xff 0xff 0xbd 0x77 0x8a 0x8 0x8 0xa 0x7f 0xff 0xff 0xf1 0xb9 0x73 0xff 0xbf 0xff 0xff 0xbd 0x77 0xc8 0x0 0x8 0x12 0xbf 0xff 0xff 0xf9 0xb9 0x73 0xff 0x7f 0xff 0xff 0x7d 0xb3 0xc8 0x0 0x8 0x14 0xbf 0xff 0xff 0xf8 0xb9 0xe7 0xfe 0xff 0xff 0xff 0x7d 0xb3 0xce 0x0 0x10 0x5 0x3f 0xff 0xff 0xf0 0xb8 0xe7 0xfd 0xff 0xff 0xfe 0xfd 0x93 0xc4 0x0 0x10 0x5 0x3f 0xff 0xff 0xb8 0xb0 0x87 0x5b 0xff 0xff 0xfe 0xf9 0xd1 0xe6 0x0 0x20 0x9 0xbf 0xff 0xff 0xd8 0xb1 0x8e 0xf7 0xff 0xff 0xfe 0xf9 0xd9 0xc2 0x0 0x10 0x9 0x3f 0xff 0xff 0xd0 0xb1 0x8d 0x27 0xff 0xff 0xfd 0xfb 0xc9 0xe4 0x0 0x20 0xb 0xbf 0xff 0xff 0xe8 0xb1 0x9c 0x4f 0xff 0xff 0xfd 0xf3 0xc9 0xc4 0x0 0x20 0x13 0xbf 0xff 0xff 0xe8 0xb1 0x98 0xdf 0xff 0xff 0xfd 0xf7 0xc9 0xe0 0x0 0x40 0x12 0xbf 0xff 0xff 0xe8 0xe1 0x99 0x9f 0xff 0xff 0xfd 0xf6 0xc0 0xc4 0x0 0x20 0x12 0xbf 0xff 0xff 0xe0 0x61 0xb1 0x3f 0xff 0xff 0xfb 0xe6 0xe0 0xc4 0x0 0x40 0x32 0xbf 0xff 0xff 0xf0 0x61 0x21 0x7f 0xff 0xff 0xfb 0xe6 0xe0 0xc0 0x0 0x43 0x36 0xbf 0xff 0xff 0xf0 0x63 0x62 0x7f 0xff 0xff 0xfb 0xea 0xc0 0xc4 0x0 0xc2 0x27 0x3f 0xff 0xff 0xf0 0x23 0x40 0xff 0xff 0xff 0xfb 0xca 0xc0 0xc6 0x0 0x42 0x27 0x3f 0x37 0xff 0xe0 0xa2 0x40 0xff 0xff 0xff 0xfb 0xca 0xc0 0xc0 0x0 0xc2 0x2 0x7f 0x99 0x9f 0xe0 0xa2 0x41 0xff 0xff 0xeb 0xfb 0xd8 0xc0 0x86 0x0 0xc2 0x0 0x7f 0xef 0xf1 0xf0 0x2 0x81 0xff 0xff 0xdd 0xf9 0x98 0xd8 0x86 0x0 0x82 0x1 0xde 0x3b 0xf6 0x62 0xc2 0x83 0xff 0xff 0x3c 0x3d 0xb9 0x91 0x84 0x2 0x82 0x3 0xdc 0x11 0xe1 0xa2 0x44 0x83 0xfd 0xfe 0xf9 0xee 0x39 0x91 0x84 0x12 0xc2 0xf 0xb8 0xc 0x6c 0x20 0x5 0x3 0xfb 0xfc 0xe7 0xcf 0x39 0x35 0xc 0x11 0x9a 0x6c 0xf3 0x83 0x0 0x66 0x5 0x3 0xf7 0xfc 0x8e 0x9e 0x73 0x25 0xc 0x11 0x82 0x2f 0xf7 0xf0 0xff 0xe4 0x8 0x7 0xe7 0xf8 0xfb 0xbe 0x73 0x21 0x4c 0x51 0x9a 0x1 0xff 0xfc 0x3f 0x44 0x8 0x7 0xcf 0xfb 0xff 0x7c 0x66 0x6a 0x5c 0x53 0x82 0xe 0x1 0xfe 0xf 0xcc 0x10 0x3 0x9f 0xe7 0xfc 0xfd 0x64 0x4a 0x99 0x19 0x9a 0x2d 0xf4 0x3f 0x87 0xc8 0x0 0xb 0xbf 0xff 0xfd 0xf8 0xe4 0xd2 0xb9 0x59 0x9a 0x26 0x9f 0x87 0xc1 0x8c 0x0 0xb 0x3f 0xdf 0xf3 0xf2 0xad 0x91 0xbb 0x49 0x82 0x2e 0xae 0xf0 0x70 0x88 0x0 0xb 0x7f 0xbf 0x76 0xe4 0x99 0xb1 0x33 0x68 0x8a 0xf 0xbf 0xaf 0x83 0x8 0x0 0x10 0x7f 0x7e 0xce 0xe5 0xb7 0x23 0x33 0x6c 0x8a 0xf 0xff 0xfe 0xf0 0x18 0x0 0x30 0xfe 0xfe 0x9e 0xcb 0x27 0x66 0x76 0x24 0xcb 0xb 0xff 0xff 0xb8 0x10 0x0 0x21 0xec 0xfc 0x6d 0x96 0x6e 0x46 0x66 0x34 0x4b 0xc 0x7f 0xff 0xff 0x18 0x0 0x1 0xd9 0xf9 0xdd 0x9c 0x5c 0x8e 0xee 0x16 0x49 0x7 0x1f 0xff 0xfe 0x30 0x0 0x0 0xb3 0xf3 0xdb 0x2c 0x3d 0x8c 0xcc 0x9a 0x49 0x9 0xe7 0xff 0xfe 0x30 0x0 0x0 0xe7 0xe7 0xbb 0x5a 0x79 0x9d 0xd8 0x9a 0x29 0xe 0x39 0xff 0xfc 0x60 0x0 0x0 0xcf 0xcf 0xb6 0x14 0x73 0xb9 0xb8 0xcf 0x9 0x81 0xc6 0x7f 0xfc 0x60 0x0 0x0 0x1f 0x9f 0x74 0x28 0xe7 0x3b 0x38 0xcd 0xd 0x8e 0x79 0x9f 0xfa 0xe0 0x0 0x0 0x3f 0x3e 0x68 0x41 0xcb 0x77 0xf0 0xe5 0xd 0x8f 0x9e 0x47 0xf0 0xc0 0x0 0x0 0x3e 0x3c 0xc8 0x3 0x96 0xe7 0x61 0xe7 0x85 0x85 0xff 0xf3 0xe5 0xc0 0x0 0x0 0x7c 0x79 0xd0 0x7 0x4c 0xee 0x61 0xb6 0x84 0x85 0xff 0xfc 0xc9 0x80 0x0 0xc0 0x38 0xf3 0x80 0xe 0x59 0xdc 0xe3 0x93 0x46 0xc7 0xff 0xfe 0x13 0xe 0x0 0x80 0x31 0xe3 0x80 0x1d 0x9b 0xb9 0x86 0xd9 0xc2 0xe3 0xff 0xff 0x36 0x19 0x86 0x0 0x23 0xc7 0x0 0x38 0x33 0xf3 0xc
######################################################################
# INPUT: chip8/SuperChip Test Programs/BMP Viewer - Let's Chip-8! [Koppepan, 2005].ch8
######################################################################
:proto Sub1 # 226
:proto D2 # 230
: main
0x0 : D1 0xff # SMC: hires
clear
i := D1
load v0
i := D2
v1 := 64
if v0 != -1 then v1 >>= v0
v0 := v1
v0 <<= v0
v2 := 0
v3 := 1
v1 += -1
loop
sprite v2 v1 1
v2 += 8
if v2 == v0 then Sub1
i += v3
again
: Sub1
v1 += -1
v2 := 0
if v1 == -1 then loop
again
return
: D2
0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0x3 0xc0 0xfc 0xfc 0xf 0xfc 0x3c 0xf3 0x30 0x3f 0xfc 0x3f 0x3f 0xf3 0xcf 0xff 0x3 0xc0 0xfc 0xfc 0xf 0xfc 0x3c 0xf3 0x30 0x3f 0xfc 0x3f 0x3f 0xf3 0xcf 0xfc 0xff 0x3f 0xf3 0xff 0xf3 0xf3 0xcc 0xf3 0x33 0xcf 0xf3 0xcf 0xff 0xf3 0xcf 0xfc 0xff 0x3f 0xf3 0xff 0xf3 0xf3 0xcc 0xf3 0x33 0xcf 0xf3 0xcf 0xff 0xf3 0xcf 0xfc 0xff 0x3 0xf3 0xff 0xf 0xf3 0xfc 0xf3 0x33 0xcf 0xf3 0xcf 0x3f 0xf3 0xcf 0xfc 0xff 0x3 0xf3 0xff 0xf 0xf3 0xfc 0xf3 0x33 0xcf 0xf3 0xcf 0x3f 0xf3 0xcf 0xfc 0xff 0x3c 0xf3 0xfc 0xff 0xf3 0xfc 0xf 0x3c 0x3c 0x3c 0x3f 0x3f 0xf3 0xcf 0xfc 0xff 0x3c 0xf3 0xfc 0xff 0xf3 0xfc 0xf 0x3c 0x3c 0x3c 0x3f 0x3f 0xf3 0xcf 0xfc 0xff 0xc3 0xc0 0xff 0x3 0xf3 0xfc 0xff 0xff 0xff 0xf3 0xcf 0x3f 0xf3 0xcf 0xfc 0xff 0xc3 0xc0 0xff 0x3 0xf3 0xfc 0xff 0xff 0xff 0xf3 0xcf 0x3f 0xf3 0xcf 0xfc 0xff 0xff 0xf3 0xcf 0xff 0xf3 0xcc 0xff 0x3f 0xff 0xf3 0xcf 0x3f 0xf3 0xcf 0xfc 0xff 0xff 0xf3 0xcf 0xff 0xf3 0xcc 0xff 0x3f 0xff 0xf3 0xcf 0x3f 0xf3 0xcf 0xfc 0xff 0xff 0xff 0xcf 0xff 0xfc 0x3c 0xff 0xff 0xff 0xfc 0x3f 0x3f 0xf3 0xcf 0xfc 0xff 0xff 0xff 0xcf 0xff 0xfc 0x3c 0xff 0xff 0xff 0xfc 0x3f 0x3f 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xf 0xfc 0x3f 0xff 0xff 0xff 0xff 0xff 0xff 0x0 0xff 0x0 0xff 0xf3 0xcf 0xff 0xf 0xfc 0x3f 0xff 0xff 0xff 0xff 0xff 0xff 0x0 0xff 0x0 0xff 0xf3 0xcf 0xff 0xf 0xfc 0x3f 0xff 0xff 0xff 0xff 0xff 0xfc 0x3c 0x3c 0xfc 0x3f 0xf3 0xcf 0xff 0xf 0xfc 0x3f 0xff 0xff 0xff 0xff 0xff 0xfc 0x3c 0x3c 0xfc 0x3f 0xf3 0xcf 0xfc 0x0 0x0 0xf 0xff 0xf3 0xff 0xff 0xff 0xfc 0xff 0x3c 0xff 0x3f 0xf3 0xcf 0xfc 0x0 0x0 0xf 0xff 0xf3 0xff 0xff 0xff 0xfc 0xff 0x3c 0xff 0x3f 0xf3 0xcf 0xfc 0xcf 0xfc 0xcf 0xff 0xcc 0x0 0x0 0x3 0xfc 0xf0 0x0 0xf 0x3f 0xf3 0xcf 0xfc 0xcf 0xfc 0xcf 0xff 0xcc 0x0 0x0 0x3 0xfc 0xf0 0x0 0xf 0x3f 0xf3 0xcf 0xfc 0x0 0x0 0xf 0xff 0xc0 0x0 0x3f 0xff 0xfc 0x33 0x33 0xc 0x3f 0xf3 0xcf 0xfc 0x0 0x0 0xf 0xff 0xc0 0x0 0x3f 0xff 0xfc 0x33 0x33 0xc 0x3f 0xf3 0xcf 0xfc 0xf 0xfc 0xf 0xff 0x33 0xc0 0xf 0xff 0xff 0x0 0xcf 0xc0 0xff 0xf3 0xcf 0xfc 0xf 0xfc 0xf 0xff 0x33 0xc0 0xf 0xff 0xff 0x0 0xcf 0xc0 0xff 0xf3 0xcf 0xfc 0x0 0x0 0xf 0xfc 0xfc 0x0 0x0 0x3f 0xff 0xfc 0xc0 0x3f 0xff 0xf3 0xcf 0xfc 0x0 0x0 0xf 0xfc 0xfc 0x0 0x0 0x3f 0xff 0xfc 0xc0 0x3f 0xff 0xf3 0xcf 0xfc 0xff 0x3f 0xcf 0xff 0xff 0xff 0xc3 0xff 0xff 0xff 0x3f 0x3f 0xff 0xf3 0xcf 0xfc 0xff 0x3f 0xcf 0xff 0xff 0xff 0xc3 0xff 0xff 0xff 0x3f 0x3f 0xff 0xf3 0xcf 0xfc 0xff 0x3f 0xcf 0xff 0xff 0xff 0xf3 0xff 0xff 0xfc 0xf 0x3 0xff 0xf3 0xcf 0xfc 0xff 0x3f 0xcf 0xff 0xff 0xff 0xf3 0xff 0xff 0xfc 0xf 0x3 0xff 0xf3 0xcf 0xfc 0xff 0x3f 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xfc 0xff 0x3f 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xfc 0x0 0x0 0xf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xfc 0x0 0x0 0xf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0x0 0x0 0x3f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0x0 0x0 0x3f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xcf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xf3 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf 0xf0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
######################################################################
# INPUT: chip8/SuperChip Test Programs/Emutest [Hap, 2006].ch8
######################################################################
:proto L4 # 231
:proto D1 # 235
:proto D2 # 245
:proto L6 # 248
: main
jump L6
0x45 0x6d 0x75 0x54 0x61 0x6c 0x6b
: L1
v0 := 0
v1 := 29
i := D2
sprite v0 v1 3
v0 := 10
v1 := 3
i := D1
sprite v0 v1 0
v0 := 3
v1 := 0
v2 := 0
v3 := 60
: L2
if v2 == v0 then jump L4
v2 += 1
delay := v3
loop
v4 := delay
if v4 != v1 then
again
jump L2
: L4
scroll-down 1
loop
again
: D1
0x88 0x88 0xf8 0x88 0x88 0x20 0x50 0x88 0xf8 0x88 0x0 0xf0 0x88 0xf0 0x80 0x80
: D2
0xf0 0x0 0xf0
: L6
clear
lores
jump L1
0x0 0x0 0x0 0x0 0x45 0x4f 0x46
######################################################################
# INPUT: chip8/SuperChip Test Programs/Font Test [Newsdee, 2006].ch8
######################################################################
# executing code at unknown memory loc 0x310
: main
clear
hires
v0 := 0
v1 += 5
v2 += 5
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 := 5
v2 := 20
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 += 1
v1 += 15
i := bighex v0
sprite v1 v2 10
v0 := 0
v1 := 5
v2 := 35
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 := 5
v2 := 50
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 += 1
v1 += 15
i := hex v0
sprite v1 v2 5
v0 := key
exit
######################################################################
# INPUT: chip8/SuperChip Test Programs/Hex Mixt.ch8
######################################################################
:proto L3 # 224
: main
hires
clear
: L1
v0 := 2
delay := v0
loop
v0 := delay
if v0 != 0 then
again
vA := random 0b1111111
vB := random 0b111111
vC := random 0b10
vD := random 0b1111
v0 := 1
buzzer := v0
if vC == 1 then jump L3
i := hex vD
sprite vA vB 5
jump L1
: L3
i := bighex vD
sprite vA vB 10
jump L1
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/SuperChip Test Programs/Line Demo.ch8
######################################################################
:proto D1 # 214
: main
hires
i := D1
vA := 0
vB := 0
loop
sprite vA vB 1
vA += 1
vB += 1
if vB == 63 then vB := 0
again
: D1
0x80 0x0
######################################################################
# INPUT: chip8/SuperChip Test Programs/SCHIP Test [iq_132].ch8
######################################################################
:proto L1 # 230
:proto Sub1 # 23A
:proto Sub2 # 23E
:proto L3 # 240
:proto Sub3 # 24E
:proto Sub4 # 258
:proto Sub5 # 264
:proto Sub6 # 270
:proto Sub7 # 280
:proto Sub8 # 286
:proto D1 # 294
:proto D2 # 2B4
: main
hires
clear
i := D2
vE := 8
vD := 5
vC := 1
v0 := 40
v1 := 0
sprite v0 v1 8
Sub8
scroll-down 1
v0 := 27
v2 := -16
Sub3
vE := 4
Sub4
Sub5
Sub4
jump L1
0x60 0xe8 0x60 0x24 0x62 0xf0 0x22 0x4e 0x12 0x2
: L1
Sub6
Sub7
Sub2
Sub1
loop
again
: Sub1
v0 := 112
jump L3
: Sub2
v0 := 0
: L3
v1 := 16
i := D1
loop
if v1 == 112 then return
sprite v1 v0 0
v1 += 16
again
: Sub3
loop
if v0 == 0 then return
scroll-down 1
v0 -= vC
again
: Sub4
v0 := 40
loop
if v0 == 0 then return
scroll-left
v0 -= vE
again
: Sub5
v0 := 80
loop
if v0 == 0 then return
scroll-right
v0 -= vE
again
: Sub6
v0 := 0
v1 := 0
: L7
i := D1
loop
if v0 == 64 then return
sprite v1 v0 0
v0 += 16
again
: Sub7
v0 := 0
v1 := 112
jump L7
: Sub8
loop
i += vE
v0 += vE
vD -= vC
sprite v0 v1 8
if vD != 0 then
again
return
: D1
0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
: D2
0x3e 0x8 0x8 0x8 0x8 0x8 0x3e 0x0 0x7e 0x42 0x42 0x42 0x42 0x42 0x7e 0x7 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x7f 0x18 0x8 0x8 0x8 0x8 0x8 0x3e 0x0 0x1c 0x22 0x2 0xc 0x2 0x22 0x1c 0x0 0x1c 0x22 0x4 0x8 0x10 0x20 0x3e 0x0
######################################################################
# INPUT: chip8/SuperChip Test Programs/Scroll Test.ch8
######################################################################
:proto Sub1 # 21E
: main
hires
lores
vB := 5
vC := 11
Sub1
: L1
loop
scroll-right
vB += 1
if vB != 56 then
again
loop
scroll-left
vB += -1
if vB != 0 then
again
Sub1
jump L1
: Sub1
sprite vB vC 10
v5 := random 0b1001
if v5 == 0 then i := 80
if v5 == 1 then i := 90
if v5 == 2 then i := 100
if v5 == 3 then i := 110
if v5 == 4 then i := 120
if v5 == 5 then i := 130
if v5 == 6 then i := 140
if v5 == 7 then i := 150
if v5 == 8 then i := 160
if v5 == 9 then i := 170
sprite vB vC 10
return
0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
######################################################################
# INPUT: chip8/SuperChip Test Programs/Scroll Test (modified) [Garstyciuks].ch8
######################################################################
:proto Sub1 # 21E
: main
hires
lores
vB := 5
vC := 11
Sub1
: L1
loop
scroll-right
vB += 1
if vB != 56 then
again
loop
scroll-left
vB += -1
if vB != 0 then
again
Sub1
jump L1
: Sub1
sprite vB vC 10
v5 := random 0b1001
i := bighex v5
return
######################################################################
# INPUT: chip8/SuperChip Test Programs/SC Test.ch8
######################################################################
:proto L1 # 212
:proto L2 # 3C6
:proto L3 # 3E2
:proto L4 # 3F8
:proto L5 # 402
:proto L6 # 40C
:proto Sub1 # 412
:proto Sub2 # 432
:proto L7 # 450
:proto D1 # 452
:proto D2 # 455
:proto D3 # 45A
:proto D4 # 45F
:proto D5 # 464
:proto D6 # 469
:proto D7 # 46E
:proto D9 # 478
:proto D10 # 488
:proto L8 # 490
:proto D11 # FFE
: main
jump L1
0x20 0x54 0x72 0x6f 0x6e 0x69 0x78 0x20 0x28 0x63 0x29 0x20 0x32 0x30 0x31 0x30
: L1
clear
if vF != 0 then jump L3
if vE != 0 then jump L3
if vD != 0 then jump L3
if vC != 0 then jump L3
if vB != 0 then jump L3
if vA != 0 then jump L3
if v9 != 0 then jump L3
if v8 != 0 then jump L3
if v7 != 0 then jump L3
if v6 != 0 then jump L3
if v5 != 0 then jump L3
if v4 != 0 then jump L3
if v3 != 0 then jump L3
if v2 != 0 then jump L3
if v1 != 0 then jump L3
if v0 != 0 then jump L3
v0 := 0
v1 := 1
v2 := 2
v3 := 3
v4 := 4
v5 := 5
v6 := 6
v7 := 7
v8 := 8
v9 := 9
vA := 10
vB := 11
vC := 12
vD := 13
vE := 14
vF := 15
i := D9
load vF
if vF != 0 then jump L4
if vE != 0 then jump L4
if vD != 0 then jump L4
if vC != 0 then jump L4
if vB != 0 then jump L4
if vA != 0 then jump L4
if v9 != 0 then jump L4
if v8 != 0 then jump L4
if v7 != 0 then jump L4
if v6 != 0 then jump L4
if v5 != 0 then jump L4
if v4 != 0 then jump L4
if v3 != 0 then jump L4
if v2 != 0 then jump L4
if v1 != 0 then jump L4
if v0 != 0 then jump L4
v0 := 0
i := hex v0
load v0
if v0 == 0 then jump L5
i := D1
vE := 123
bcd vE
load v2
if v0 != 1 then jump L2
if v1 != 2 then jump L2
if v2 != 3 then jump L2
vE := 2
vF := 0
v0 := -2
v1 := 1
v0 += v1
if vF != 0 then jump L6
vE := 3
if v0 != -1 then jump L6
vE := 4
v0 += v1
if vF != 1 then jump L6
vE := 5
if v0 != 0 then jump L6
v0 := 1
vE := 6
vF := 0
v0 -= v1
if vF != 1 then jump L6
vE := 7
if v0 != 0 then jump L6
vE := 8
v0 -= v1
if vF != 0 then jump L6
vE := 9
if v0 != -1 then jump L6
v0 := 1
vE := 10
vF := 0
v0 =- v1
if vF != 1 then jump L6
vE := 11
if v0 != 0 then jump L6
vE := 12
v0 := 1
v1 := 0
v0 =- v1
if vF != 0 then jump L6
vE := 13
if v0 != -1 then jump L6
v0 := -1
vE := 14
vF := 0
v0 >>= v0
if vF != 1 then jump L6
vE := 15
if v0 != 127 then jump L6
v0 := 64
vE := 16
v0 >>= v0
if vF != 0 then jump L6
vE := 17
if v0 != 32 then jump L6
vE := 18
vF := 1
v0 <<= v0
if vF != 0 then jump L6
vE := 19
if v0 != 64 then jump L6
v0 := -6
vE := 20
v0 <<= v0
if vF != 1 then jump L6
vE := 21
if v0 != -12 then jump L6
v1 := 123
vE := 22
v0 ^= v1
if v0 != 143 then jump L6
i := D10
load v7
saveflags v7
i := D9
load v7
loadflags v7
vE := 23
if v7 != 7 then jump L6
if v6 != 6 then jump L6
if v5 != 5 then jump L6
if v4 != 4 then jump L6
if v3 != 3 then jump L6
if v2 != 2 then jump L6
if v1 != 1 then jump L6
if v0 != 0 then jump L6
vE := 24
i := D11
v0 := 2
vF := 0
i += v0
if vF != 1 then jump L6
jump L8
: L2
Sub1
v0 += 10
v2 := 11
i := hex v2
sprite v0 v1 5
v0 += 5
v2 := 12
i := hex v2
sprite v0 v1 5
v2 += 1
i := hex v2
v0 += 5
sprite v0 v1 5
jump L7
: L3
Sub1
v0 += 10
i := D5
sprite v0 v1 5
v0 += 6
i := D6
sprite v0 v1 5
v0 += 6
i := D5
sprite v0 v1 5
jump L7
: L4
Sub1
v0 += 10
i := D3
sprite v0 v1 5
jump L7
: L5
Sub1
v0 += 10
i := D2
sprite v0 v1 5
jump L7
: L6
Sub1
Sub2
jump L7
: Sub1
v0 := 0
v1 := 0
i := D4
sprite v0 v1 5
v0 += 5
i := D7
sprite v0 v1 5
v0 += 6
sprite v0 v1 5
i := D3
v0 += 6
sprite v0 v1 5
i := D7
v0 += 5
sprite v0 v1 5
return
: Sub2
v4 := v0
v4 += 10
v5 := v1
i := D1
bcd vE
load v2
i := hex v0
sprite v4 v5 5
v4 += 6
i := hex v1
sprite v4 v5 5
v4 += 6
i := hex v2
sprite v4 v5 5
return
: L7
loop
again
: D1
0x0 0x0 0x0
: D2
0x10 0x30 0x10 0x10 0x10
: D3
0xf0 0x90 0x90 0x90 0xf0
: D4
0xf0 0x80 0xf0 0x80 0xf0
: D5
0xf8 0x20 0x20 0x20 0xf8
: D6
0x88 0xc8 0xa8 0x98 0x88
: D7
0xe0 0x90 0xe0 0x90 0x88
: D8
0x90 0xa0 0xc0 0xa0 0x90
: D9
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
: D10
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7
: L8
v0 := 0
v1 := 0
i := hex v0
sprite v0 v1 5
v0 += 5
i := D8
sprite v0 v1 5
jump L7
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
: D11
######################################################################
# INPUT: chip8/SuperChip Test Programs/SuperChip Test.ch8
######################################################################
:proto L3 # 224
:proto L4 # 228
:proto D1 # 244
: main
hires
loadflags v3
v4 := 0
v5 := 0
i := D1
: L1
sprite v4 v5 0
v6 := 2
delay := v6
loop
v6 := delay
if v6 != 0 then
again
sprite v4 v5 0
if v4 != v0 then jump L3
if v5 == v1 then jump L4
v5 += 1
jump L1
: L3
v4 += 1
jump L1
: L4
sprite v4 v5 0
v4 := 0
: L5
i := bighex v4
sprite v2 v3 10
v5 := 20
delay := v5
loop
v5 := delay
if v5 != 0 then
again
sprite v2 v3 10
v4 += 1
if v4 == 10 then exit
jump L5
: D1
0x80 0x1 0x3 0x80 0x4 0x40 0x4 0x0 0x3 0x80 0x0 0x40 0x4 0x40 0x3 0x80 0x0 0x0 0x35 0x58 0x45 0x54 0x47 0x58 0x45 0x50 0x35 0x50 0x0 0x0 0x80 0x1
######################################################################
# INPUT: chip8/SuperChip Test Programs/Test128.ch8
######################################################################
:proto L2 # 218
:proto L4 # 22C
:proto D1 # 2DA
:proto D2 # 2DC
:proto D3 # 2E6
:proto D4 # 2EB
:proto D5 # 2F0
:proto D6 # 2F5
:proto D7 # 2FA
:proto D8 # 2FF
:proto D9 # 304
:proto D10 # 309
:proto D11 # 30E
:proto D12 # 313
: main
hires
clear
v4 := 0
v5 := 0
v6 := 62
i := D1
loop
sprite v4 v5 2
sprite v4 v6 2
v4 += 8
if v4 == 128 then jump L2
again
: L2
i := D2
v4 := 0
v5 := 2
v6 := 126
loop
sprite v4 v5 10
sprite v6 v5 10
v5 += 10
if v5 == 62 then jump L4
again
: L4
i := D3
v5 := 24
v6 := 4
v7 := 14
v8 := 24
v9 := 34
vA := 44
vB := 54
sprite v5 v6 5
sprite v5 v7 5
sprite v5 v8 5
sprite v5 v9 5
sprite v5 vA 5
sprite v5 vB 5
i := D4
v5 += 8
sprite v5 v6 5
sprite v5 v7 5
sprite v5 v8 5
sprite v5 v9 5
sprite v5 vA 5
sprite v5 vB 5
i := D5
v5 += 8
sprite v5 v6 5
sprite v5 v7 5
sprite v5 v8 5
sprite v5 v9 5
sprite v5 vA 5
sprite v5 vB 5
i := D6
v5 += 8
sprite v5 v6 5
sprite v5 v7 5
sprite v5 v8 5
sprite v5 v9 5
sprite v5 vA 5
sprite v5 vB 5
i := D7
v5 += 8
sprite v5 v6 5
sprite v5 v7 5
sprite v5 v8 5
sprite v5 v9 5
sprite v5 vA 5
sprite v5 vB 5
i := D8
v5 += 8
sprite v5 v6 5
sprite v5 v7 5
sprite v5 v8 5
sprite v5 v9 5
sprite v5 vA 5
sprite v5 vB 5
i := D9
v5 += 8
sprite v5 v6 5
sprite v5 v7 5
sprite v5 v8 5
sprite v5 v9 5
sprite v5 vA 5
sprite v5 vB 5
i := D10
v5 += 8
sprite v5 v6 5
sprite v5 v7 5
sprite v5 v8 5
sprite v5 v9 5
sprite v5 vA 5
sprite v5 vB 5
i := D11
v5 += 8
sprite v5 v6 5
sprite v5 v7 5
sprite v5 v8 5
sprite v5 v9 5
sprite v5 vA 5
sprite v5 vB 5
i := D12
v5 += 8
sprite v5 v6 5
sprite v5 v7 5
sprite v5 v8 5
sprite v5 v9 5
sprite v5 vA 5
sprite v5 vB 5
loop
again
: D1
0xaa 0x55
: D2
0x80 0x40 0x80 0x40 0x80 0x40 0x80 0x40 0x80 0x40
: D3
0xae 0xaa 0xea 0x4a 0x4e
: D4
0xa0 0xa0 0xa0 0xa0 0xe0
: D5
0xee 0xaa 0xee 0xac 0xaa
: D6
0xe0 0x80 0xe0 0x80 0xe0
: D7
0xae 0xa8 0xae 0xa2 0xee
: D8
0xee 0x4a 0x4a 0x4a 0xea
: D9
0xe0 0x80 0xa0 0xa0 0xe0
: D10
0x4e 0xc2 0x4e 0x48 0xee
: D11
0xe0 0xaa 0xe4 0xaa 0xe0
: D12
0xea 0x8a 0xee 0xa2 0xe2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment