A.N.A.L.O.G. ISSUE 74 / JULY 1989 / PAGE 74

Mazerunner

by Matt Fruin

Left over from ancient days, the maze was always a great place to play and explore. At least it was until you and your friend, Velbert, got lost. With night coming on, you and Velbert grew more and more confused. Suddenly, the huge stone blocks comprising the maze rearranged themselves, shifting into new configurations. Far off in the distance you heard the scratching sounds of something big wandering the maze. Too late you remembered the legend of the monsters, the spirits of those who died in the maze, who, destined to wander it for all eternity, came out with the stars and hunted those who are unwise enough to remain in the maze at night….

Playing the Game

The object is to maneuver your player from the top left corner of the maze to the exit located at the lower right of the maze. The game can be paused by pressing any key, and can be aborted by pressing a console key (not System Reset), except when the game has been paused. Along the right side of the screen are choices to modify the game. To change any of the values, press Option until the larger cursor is opposite the category you want to change. Then press Select, either to move the smaller cursors, changing the visibility or game variation, or to change numbers, representing speeds or number of monsters.

Game Variations

There are three different game variations. These are capture, paralyze and kill. In capture, a player must touch the four monsters controlled by the computer before he or she can exit. The eight colored boxes on the far right signify which of the monsters (orange to the orange monster, blue to blue, etc.) have already been “captured.” The top four correspond to the first player, the bottom four to the second player. In the paralyze option, the object is to exit without touching any of the computer-controlled monsters. If a player is touched, he or she is frozen for a few seconds and then slowly regains speed. In the kill variation, touching any of the monsters ends the game for that player. The other player can continue on, and try to get to the exit.

Visibility

There are three different visibility levels. These are clear, blackout and flash. When the visibility is clear, the entire maze is visible at all times. When it’s set on blackout, the maze is black and the walls are not visible. In the flash level, the maze is black except for periodic flashes of visibility, which last for a fraction of a second. In all three levels the players and monsters are always visible.

Enemy

Here the players can choose the number of computer-controlled enemies they will face in the kill and paralyze variations. The number ranges from 0 to 16. Whatever number is chosen, though, does not affect the capture variation, in which there are always four computer-controlled monsters.

Speed

This allows the players to choose speeds for the monsters and each of the players individually. Speeds range from 1 to 4, 1 being fastest and 4 being slowest.

Limit

There are only two possible selections for this choice: Y for yes and N for no. During every game the timer counts from 000 to 999. If Y is chosen for the time limit, the game ends when the counter reaches 999. Otherwise, the counter just rolls over to 000 and continues counting. The time it takes for the counter to count from 000 to 999 is about 2 minutes, 45 seconds.

Good luck!

Matt Fruin has been programming his Atari, since 1982. Mazerunner is his first 100% machine-language game.

Listing 1: M/L Editor Data

1000 DATA 255,255,0,96,251,96,169,12,133,12,169,96,133,13,169,1,4049
1010 DATA 133,9,32,64,108,169,64,133,204,169,0,133,203,162,0,160,7168
1020 DATA 0,145,203,200,208,251,230,204,232,224,16,208,242,169,83,133,4392
1030 DATA 203,162,96,169,3,157,66,3,169,0,157,69,3,169,203,157,6002
1040 DATA 68,3,169,12,157,74,3,169,0,157,75,3,32,86,228,169,4446
1050 DATA 0,133,88,169,64,133,89,169,0,141,47,2,169,0,141,48,2380
1060 DATA 2,169,128,141,49,2,169,46,141,47,2,169,255,141,28,208,6982
1070 DATA 169,148,141,198,2,169,150,141,196,2,169,68,141,197,2,32,5544
1080 DATA 151,96,32,170,96,32,100,98,32,230,98,169,97,141,231,6,6845
1090 DATA 169,193,141,36,2,169,110,141,37,2,76,171,100,160,0,132,4027
1100 DATA 203,169,64,133,204,185,74,112,145,203,200,192,160,208,246,96,3966
1110 DATA 169,0,133,208,133,209,169,160,133,206,169,64,133,207,162,5,9913
1120 DATA 32,239,96,202,16,250,162,87,32,2,97,202,16,250,32,217,7595
1130 DATA 96,32,217,96,162,5,32,239,96,202,16,250,76,42,97,160,6952
1140 DATA 0,32,32,97,200,169,0,145,206,200,192,25,208,249,169,240,3693
1150 DATA 145,206,76,20,97,160,0,169,255,145,206,200,192,25,208,249,3173
1160 DATA 169,240,252,96,247,97,145,206,32,20,97,96,160,0,32,32,3208
1170 DATA 97,200,169,0,145,206,200,192,24,208,249,32,32,97,24,169,7328
1180 DATA 40,101,206,144,2,230,207,133,206,96,169,255,145,206,200,169,4725
1190 DATA 240,145,206,96,173,10,210,41,63,133,206,56,233,26,176,244,217
1200 DATA 173,10,210,41,62,133,207,56,233,48,176,244,169,0,133,203,73
1210 DATA 133,204,24,165,207,133,203,6,203,6,203,101,203,133,203,162,1255
1220 DATA 4,6,203,38,204,202,208,249,24,165,203,101,206,144,2,230,1392
1230 DATA 204,133,203,24,165,203,105,160,144,2,230,204,133,203,24,165,328
1240 DATA 204,105,64,133,204,160,0,177,203,41,64,208,167,169,1,133,7891
1250 DATA 207,173,10,210,41,3,106,144,33,106,144,18,198,204,160,96,7313
1260 DATA 32,207,97,230,204,165,206,208,71,198,204,76,238,97,160,160,3220
1270 DATA 32,207,97,165,206,208,57,76,3,98,106,144,12,160,1,32,2776
1280 DATA 207,97,165,206,240,92,76,230,97,198,204,160,255,32,207,97,2561
1290 DATA 230,204,165,206,240,101,76,230,97,177,203,41,64,133,206,165,1217
1300 DATA 207,208,1,96,165,206,240,3,76,81,98,169,1,133,206,96,7176
1310 DATA 232,224,15,208,156,76,42,97,169,80,160,216,145,203,160,176,1789
1320 DATA 145,203,248,97,243,98,160,136,145,203,160,96,145,203,76,61,104
1330 DATA 98,169,80,160,80,145,203,160,120,145,203,160,200,145,203,160,3535
1340 DATA 160,145,203,76,61,98,160,0,177,203,9,85,145,203,160,40,7225
1350 DATA 145,203,169,80,160,41,145,203,160,1,145,203,76,61,98,160,7766
1360 DATA 39,169,85,145,203,160,255,198,204,145,203,24,230,208,208,2,2777
1370 DATA 230,209,165,208,201,228,208,9,165,209,201,1,208,3,96,104,8894
1380 DATA 104,24,152,101,203,144,2,230,204,133,203,162,0,134,207,76,9665
1390 DATA 135,97,162,1,134,205,202,189,218,110,133,203,232,189,218,110,4688
1400 DATA 133,204,164,205,136,192,0,240,24,32,218,98,76,118,98,189,8249
1410 DATA 218,110,201,24,208,2,230,204,24,101,203,144,2,230,204,133,462
1420 DATA 203,160,0,132,206,232,189,218,110,24,42,42,101,205,168,185,9819
1430 DATA 113,111,164,206,192,9,240,8,145,203,200,132,206,76,151,98,533
1440 DATA 224,151,208,203,230,205,165,205,201,5,240,5,162,0,76,105,8062
1450 DATA 98,162,31,189,45,113,157,176,6,202,16,247,162,5,189,75,7556
1460 DATA 113,157,240,6,202,16,247,96,165,203,24,105,40,144,2,230,7519
1470 DATA 204,133,203,96,160,2,185,80,113,133,203,185,83,113,133,204,400
1480 DATA 185,86,244,98,239,99,113,145,203,136,16,238,96,173,228,6,106
1490 DATA 208,35,206,229,6,16,30,169,4,141,229,6,173,31,208,201,8046
1500 DATA 3,240,32,201,5,240,101,201,6,240,16,173,132,2,240,11,6889
1510 DATA 173,133,2,240,6,32,128,109,76,95,228,173,214,6,208,248,1077
1520 DATA 76,154,106,162,1,189,192,6,201,0,240,5,169,0,76,65,4287
1530 DATA 99,169,150,141,196,2,173,176,6,10,32,110,99,169,0,160,4631
1540 DATA 0,145,203,238,176,6,173,176,6,201,7,208,5,169,0,141,6250
1550 DATA 176,6,24,10,32,110,99,169,255,160,0,145,203,76,35,99,6162
1560 DATA 170,189,178,6,133,203,189,179,6,133,204,96,173,176,6,170,9607
1570 DATA 56,233,2,176,57,32,163,99,169,0,145,203,254,192,6,189,9868
1580 DATA 192,6,201,3,208,5,169,0,157,192,6,32,163,99,169,60,5435
1590 DATA 145,203,76,35,99,173,176,6,240,2,169,3,24,125,192,6,4435
1600 DATA 168,185,194,6,133,203,185,200,6,133,204,160,0,96,233,1,7925
1610 DATA 176,101,238,241,6,173,241,6,201,10,208,25,238,240,6,169,214
1620 DATA 0,141,241,6,173,176,6,10,32,110,99,198,203,198,203,173,769
1630 DATA 240,6,32,14,100,173,241,6,201,7,208,18,173,240,6,201,8605
1640 DATA 1,208,240,99,235,100,11,169,0,141,240,6,141,241,6,76,7012
1650 DATA 210,99,173,176,6,10,32,110,99,198,203,173,241,6,32,14,5576
1660 DATA 100,76,35,99,10,10,105,109,170,160,0,189,113,111,145,203,7974
1670 DATA 152,24,105,40,168,232,192,160,208,241,96,233,1,176,32,173,1060
1680 DATA 176,6,10,32,110,99,198,203,198,203,238,242,6,173,242,6,1740
1690 DATA 201,5,208,5,169,1,141,242,6,32,14,100,76,35,99,233,4738
1700 DATA 2,176,36,173,176,6,10,32,110,99,198,203,173,176,6,41,6149
1710 DATA 1,170,254,243,6,189,243,6,201,5,208,5,169,1,157,243,9359
1720 DATA 6,32,14,100,76,35,99,173,176,6,10,32,110,99,198,203,6071
1730 DATA 198,203,198,203,173,231,6,73,84,141,231,6,32,18,100,76,4780
1740 DATA 35,99,169,204,141,34,2,169,110,141,35,2,32,115,101,169,4625
1750 DATA 0,141,223,6,173,192,6,208,8,238,223,6,169,2,141,227,9397
1760 DATA 6,169,4,141,229,6,169,251,141,34,2,169,98,141,35,2,4516
1770 DATA 169,0,141,228,6,169,150,141,196,2,32,124,108,169,0,141,6146
1780 DATA 232,6,141,233,6,141,234,6,141,235,6,141,226,6,133,224,9919
1790 DATA 141,224,6,141,225,6,165,224,240,252,141,228,6,169,160,141,3136
1800 DATA 1,210,236,100,231,101,32,52,108,169,0,141,218,6,169,16,5793
1810 DATA 141,219,6,169,0,141,8,210,169,3,141,15,210,169,0,141,6299
1820 DATA 220,6,141,221,6,169,15,141,110,6,141,111,6,32,115,101,3436
1830 DATA 169,1,141,214,6,169,0,162,3,157,192,2,202,16,250,169,8657
1840 DATA 150,141,196,2,32,170,96,32,175,103,169,0,133,209,32,160,7135
1850 DATA 108,169,255,141,30,208,169,0,141,34,2,169,107,141,35,2,3787
1860 DATA 206,214,6,165,224,240,252,173,218,6,240,10,169,0,141,8,8102
1870 DATA 210,169,3,141,15,210,173,31,208,201,7,240,3,76,140,100,7427
1880 DATA 173,232,6,240,16,173,233,6,240,11,76,153,100,173,31,208,8749
1890 DATA 201,7,208,249,96,162,1,189,102,6,201,132,208,23,189,210,690
1900 DATA 6,208,18,169,5,141,218,6,169,15,141,220,6,169,30,141,6509
1910 DATA 221,6,76,153,100,202,16,223,198,224,162,1,189,232,6,208,1530
1920 DATA 38,189,234,6,240,11,32,165,107,173,208,6,240,25,76,194,8639
1930 DATA 101,254,224,6,189,224,6,221,243,6,208,11,169,0,142,108,8056
1940 DATA 6,157,224,6,32,232,103,202,16,210,238,226,6,173,226,6,405
1950 DATA 205,242,6,240,3,76,73,101,169,0,141,226,6,173,192,6,6667
1960 DATA 240,6,232,101,227,102,32,244,101,76,73,101,32,141,105,76,6100
1970 DATA 73,101,238,80,6,174,80,6,224,16,208,6,162,255,142,80,8583
1980 DATA 6,96,189,48,6,201,6,240,233,189,0,6,133,203,189,16,7856
1990 DATA 6,133,204,62,64,6,62,64,6,176,16,32,218,102,165,203,6783
2000 DATA 157,0,6,165,204,157,16,6,76,244,101,189,48,6,201,4,5247
2010 DATA 240,65,41,8,240,23,169,64,157,64,6,160,0,32,157,103,4058
2020 DATA 160,40,32,157,103,169,6,157,48,6,76,244,101,198,204,160,9772
2030 DATA 216,32,86,106,230,204,160,0,32,103,106,160,1,32,103,106,4592
2040 DATA 160,80,32,90,106,165,208,201,1,208,8,189,48,6,73,2,3680
2050 DATA 76,204,102,173,10,210,41,3,133,207,189,48,6,201,4,240,7867
2060 DATA 11,165,207,93,48,6,240,4,41,1,240,231,165,207,106,144,110
2070 DATA 31,106,144,16,160,216,198,204,32,86,106,230,204,165,208,240,4919
2080 DATA 210,76,202,102,160,80,32,86,106,165,208,240,198,76,202,102,1720
2090 DATA 106,144,12,160,1,32,99,106,165,208,240,183,76,202,102,160,1205
2100 DATA 0,32,99,106,165,208,240,171,165,207,157,48,6,169,1,157,8835
2110 DATA 64,6,32,218,102,76,32,102,189,48,6,106,144,33,106,144,4907
2120 DATA 15,160,228,102,223,103,40,32,157,103,198,204,160,216,32,167,1141
2130 DATA 103,76,146,103,160,0,32,157,103,160,80,32,167,103,160,40,5959
2140 DATA 76,146,103,160,0,32,157,103,160,40,32,157,103,189,48,6,4449
2150 DATA 106,106,144,63,24,126,32,6,126,32,6,176,11,160,0,32,827
2160 DATA 167,103,160,40,32,167,103,96,189,32,6,240,25,160,0,32,3868
2170 DATA 167,103,160,40,32,167,103,160,1,169,128,32,170,103,160,41,6545
2180 DATA 169,128,32,170,103,96,160,1,32,146,103,169,160,157,32,6,5363
2190 DATA 76,27,103,62,32,6,176,14,62,32,6,160,0,32,167,103,1882
2200 DATA 160,40,32,167,103,96,24,62,32,6,189,32,6,240,22,32,2050
2210 DATA 89,103,198,204,160,255,169,2,32,170,103,230,204,169,2,160,933
2220 DATA 39,32,170,103,96,160,255,198,204,32,146,103,169,10,157,32,8256
2230 DATA 6,76,89,103,152,24,101,203,144,2,230,204,133,203,96,189,1631
2240 DATA 32,6,73,255,49,203,145,203,96,189,32,6,17,203,145,203,9289
2250 DATA 96,169,120,141,7,212,24,105,2,133,206,169,255,141,108,6,8570
2260 DATA 169,3,141,29,208,162,3,169,1,157,8,208,202,16,250,169,9826
2270 DATA 202,141,192,2,169,138,141,193,2,96,238,108,6,173,108,6,6650
2280 DATA 201,2,224,103,219,104,208,6,169,255,141,108,6,96,173,108,9455
2290 DATA 6,170,240,2,169,128,133,205,189,96,6,133,203,189,98,6,8722
2300 DATA 133,204,62,106,6,62,106,6,176,15,32,226,104,173,192,6,6191
2310 DATA 208,6,32,54,109,174,108,6,96,169,0,133,207,157,104,6,5930
2320 DATA 189,120,2,141,109,6,201,11,240,84,254,104,6,201,13,240,9364
2330 DATA 77,254,104,6,201,7,240,70,254,104,6,201,14,240,63,169,9533
2340 DATA 0,157,104,6,173,109,6,29,110,6,201,15,240,40,230,207,8666
2350 DATA 173,109,6,73,15,93,110,6,76,29,104,165,207,240,13,169,7550
2360 DATA 0,157,104,6,198,207,189,110,6,76,29,104,173,218,6,208,8545
2370 DATA 5,169,1,141,218,6,169,64,157,106,6,76,7,104,169,0,3634
2380 DATA 133,77,189,104,6,106,144,44,106,144,24,160,216,198,204,32,9406
2390 DATA 86,106,230,204,165,208,240,195,222,98,6,160,96,32,21,105,8162
2400 DATA 76,209,104,160,80,32,86,106,165,208,240,175,160,160,32,21,9329
2410 DATA 105,76,209,104,106,144,15,160,1,32,99,106,165,208,240,155,316
2420 DATA 32,21,105,76,209,104,160,0,32,99,106,165,208,240,140,222,2042
2430 DATA 98,6,160,255,32,21,105,173,109,6,157,110,6,169,1,157,5504
2440 DATA 106,6,220,104,215,105,32,226,104,76,7,104,188,100,6,169,7030
2450 DATA 1,32,133,105,189,104,6,106,144,18,106,144,6,222,100,6,4945
2460 DATA 76,252,104,254,100,6,188,100,6,76,119,105,106,144,6,254,7951
2470 DATA 102,6,76,14,105,222,102,6,189,102,6,157,0,208,96,152,6942
2480 DATA 24,125,96,6,144,3,254,98,6,157,96,6,96,165,209,73,6979
2490 DATA 2,133,209,230,206,170,169,0,133,205,32,62,105,232,169,128,1077
2500 DATA 133,205,32,62,105,198,206,96,138,73,2,170,189,120,6,168,8259
2510 DATA 169,0,145,205,32,133,105,145,205,200,145,205,138,73,2,170,253
2520 DATA 41,1,168,189,124,6,153,2,208,138,77,227,6,170,189,138,9890
2530 DATA 6,153,194,2,138,77,227,6,170,189,120,6,168,32,119,105,7130
2540 DATA 96,169,0,145,205,169,1,32,133,105,169,0,145,205,96,200,9357
2550 DATA 145,205,200,145,205,200,96,238,136,6,173,136,6,201,4,208,185
2560 DATA 8,169,255,141,136,6,76,54,109,170,189,112,6,133,203,189,28
2570 DATA 116,6,133,204,62,132,6,62,132,6,176,6,32,112,106,76,3599
2580 DATA 141,105,198,204,160,216,32,86,106,230,204,160,0,32,103,106,8456
2590 DATA 160,1,32,103,106,160,80,32,90,106,165,208,201,1,208,10,7654
2600 DATA 189,128,216,105,211,106,6,73,2,133,207,76,240,105,173,10,8312
2610 DATA 210,41,3,133,207,93,128,6,240,4,41,1,240,240,165,207,910
2620 DATA 106,144,44,106,144,24,160,216,198,204,32,86,106,230,204,165,2786
2630 DATA 208,240,219,160,96,222,116,6,32,140,106,76,70,106,160,80,7127
2640 DATA 32,86,106,165,208,240,199,160,160,32,140,106,76,70,106,106,8801
2650 DATA 144,17,160,1,32,99,106,165,208,240,179,160,1,32,140,106,8546
2660 DATA 76,70,106,160,0,32,99,106,165,208,240,162,160,255,222,116,4552
2670 DATA 6,32,140,106,165,207,157,128,6,169,1,157,132,6,32,112,5485
2680 DATA 106,76,141,105,169,0,133,208,177,203,41,5,208,2,230,208,865
2690 DATA 96,169,0,133,208,177,203,41,80,208,2,230,208,96,189,128,2020
2700 DATA 6,106,144,11,106,144,4,222,120,6,96,254,120,6,96,106,6616
2710 DATA 144,4,254,124,6,96,222,124,6,96,152,24,125,112,6,144,5833
2720 DATA 3,254,116,6,157,112,6,96,169,0,133,77,141,223,6,141,7079
2730 DATA 227,6,32,203,107,173,192,6,208,26,169,4,141,210,6,141,8000
2740 DATA 211,6,169,192,141,14,212,169,23,141,0,2,169,108,141,1,5344
2750 DATA 2,76,234,106,169,64,141,14,212,169,0,141,210,6,141,211,9953
2760 DATA 6,173,212,106,207,107,240,6,240,2,169,10,109,241,6,170,9337
2770 DATA 202,169,4,202,48,6,157,48,6,76,225,106,169,1,133,224,8240
2780 DATA 162,5,169,0,157,168,6,202,16,250,169,255,141,252,2,76,1080
2790 DATA 95,228,173,252,2,201,255,240,13,169,12,141,117,228,169,96,2204
2800 DATA 141,118,228,76,120,110,169,1,133,224,173,193,6,240,40,173,1078
2810 DATA 222,6,240,6,206,222,6,76,69,107,169,0,141,196,2,173,7725
2820 DATA 193,6,201,1,240,17,173,10,210,41,127,208,10,169,10,141,7320
2830 DATA 222,6,169,150,141,196,2,173,192,6,208,6,32,35,105,76,5295
2840 DATA 154,107,162,0,189,4,208,240,62,173,192,6,201,1,240,28,9186
2850 DATA 189,232,6,208,20,169,255,157,232,6,169,2,141,218,6,169,218
2860 DATA 128,141,221,6,169,15,141,220,6,76,149,107,189,234,6,201,415
2870 DATA 255,240,20,169,15,141,220,6,169,224,141,221,6,169,4,141,9574
2880 DATA 218,6,169,255,157,234,6,232,224,2,208,184,169,255,141,30,3618
2890 DATA 208,32,202,108,76,95,228,169,0,141,208,6,254,236,6,189,1588
2900 DATA 236,6,221,234,6,208,21,94,234,6,169,0,157,236,6,189,9408
2910 DATA 234,6,201,1,208,3,222,234,6,238,208,6,96,169,30,133,9233
2920 DATA 203,169,208,107,203,108,67,133,204,162,4,32,246,107,202,208,2647
2930 DATA 250,232,32,11,108,232,224,4,208,248,32,246,107,202,208,250,6311
2940 DATA 162,7,189,234,112,157,160,6,202,16,247,96,160,0,173,192,883
2950 DATA 6,208,2,169,168,41,168,145,203,160,40,145,203,160,80,145,1482
2960 DATA 203,24,169,240,101,203,144,2,230,204,133,203,96,72,152,72,1122
2970 DATA 172,216,6,185,160,6,141,10,212,141,23,208,200,192,8,208,1038
2980 DATA 2,160,0,140,216,6,104,168,104,64,162,48,189,242,112,157,1021
2990 DATA 96,6,202,16,247,96,160,0,185,32,113,153,0,128,200,192,9627
3000 DATA 13,208,245,152,153,0,128,200,192,106,208,248,169,65,153,0,1487
3010 DATA 128,200,169,0,153,0,128,200,169,63,153,0,128,160,21,162,7951
3020 DATA 4,169,141,153,0,128,153,41,128,152,24,105,6,168,202,208,9548
3030 DATA 240,96,162,15,169,104,157,0,6,169,79,157,16,6,169,10,4060
3040 DATA 157,32,6,169,6,157,48,6,169,64,157,64,6,169,0,157,4923
3050 DATA 80,6,202,16,223,96,160,0,169,0,153,0,120,153,0,121,5465
3060 DATA 153,0,122,153,0,123,200,208,241,169,1,141,20,122,141,21,7974
3070 DATA 122,141,148,122,141,149,122,169,40,141,0,208,141,1,208,96,8980
3080 DATA 162,4,204,108,199,109,254,168,6,189,168,6,201,10,208,10,8962
3090 DATA 169,0,157,168,6,202,224,0,208,236,162,3,189,168,6,24,8545
3100 DATA 42,42,105,109,168,185,113,111,157,88,78,32,49,109,200,138,8512
3110 DATA 56,233,159,144,240,138,41,3,170,202,224,0,208,222,162,3,1328
3120 DATA 189,168,6,201,9,208,33,202,208,246,173,231,6,201,97,208,4289
3130 DATA 23,169,1,141,232,6,141,233,6,169,6,141,218,6,169,0,7060
3140 DATA 141,221,6,169,40,141,220,6,76,128,109,138,105,40,170,96,7881
3150 DATA 162,1,160,3,189,102,6,89,124,6,41,254,208,53,189,100,8673
3160 DATA 6,89,120,6,41,254,208,43,140,212,6,152,224,0,240,3,9087
3170 DATA 24,105,4,168,185,160,6,240,23,169,0,153,160,6,222,210,522
3180 DATA 6,169,15,141,220,6,169,0,141,221,6,169,3,141,218,6,7404
3190 DATA 172,212,6,136,16,190,202,240,185,96,173,218,6,240,57,201,3555
3200 DATA 2,240,54,201,3,240,83,201,4,240,116,201,5,208,3,76,8654
3210 DATA 33,110,201,6,208,3,76,61,110,174,219,6,202,142,219,6,9374
3220 DATA 169,240,141,0,210,138,24,105,160,141,1,210,224,0,208,8,8719
3230 DATA 142,218,6,169,16,141,219,6,96,169,32,32,106,110,173,221,9348
3240 DATA 6,233,200,109,195,110,8,176,11,174,220,6,202,48,9,142,7883
3250 DATA 220,6,169,128,141,221,6,96,169,0,141,218,6,96,169,160,9547
3260 DATA 32,106,110,173,221,6,24,105,32,144,233,174,220,6,202,202,2260
3270 DATA 48,9,142,220,6,169,0,141,221,6,96,169,160,141,1,210,9376
3280 DATA 76,218,109,169,64,32,106,110,173,221,6,56,233,32,176,196,687
3290 DATA 174,220,6,202,48,194,142,220,6,169,224,141,221,6,96,169,1889
3300 DATA 160,32,106,110,173,221,6,24,105,32,144,11,174,220,6,202,8352
3310 DATA 48,166,142,220,6,138,10,141,221,6,96,169,110,141,1,210,8964
3320 DATA 173,220,6,141,0,210,174,221,6,232,224,60,208,22,173,220,3446
3330 DATA 6,201,60,208,8,169,160,141,1,210,76,218,109,169,60,141,552
3340 DATA 220,6,162,0,142,221,6,96,24,109,220,6,141,1,210,173,8467
3350 DATA 221,6,141,0,210,96,169,140,141,34,2,169,110,141,35,2,5555
3360 DATA 169,255,141,252,2,169,160,141,1,210,169,0,141,196,2,173,85
3370 DATA 192,6,208,3,32,35,105,173,252,2,201,255,240,30,169,255,4413
3380 DATA 141,252,2,169,0,141,34,2,169,107,141,35,2,169,255,141,8842
3390 DATA 30,208,173,193,6,208,5,169,150,141,196,2,76,95,228,173,1238
3400 DATA 223,6,196,110,191,111,240,3,32,35,105,76,98,228,173,192,826
3410 DATA 6,208,3,32,35,105,32,128,109,76,95,228,211,65,44,45,6577
3420 DATA 46,47,48,37,26,26,26,200,4,1,19,22,23,20,6,26,7524
3430 DATA 26,200,19,1,20,1,12,24,25,6,26,200,11,51,52,53,9755
3440 DATA 26,26,26,26,26,24,38,39,40,41,42,43,22,24,37,200,677
3450 DATA 4,12,6,1,20,26,26,26,26,200,2,3,1,4,11,18,6960
3460 DATA 23,22,26,200,7,12,1,21,8,6,21,26,26,24,6,13,6334
3470 DATA 14,15,16,17,37,27,28,24,21,19,6,6,5,37,26,26,6271
3480 DATA 26,200,6,13,14,15,16,17,37,28,26,200,19,12,1,24,8497
3490 DATA 6,20,28,37,28,200,19,12,1,24,6,20,29,37,28,24,7591
3500 DATA 12,9,10,49,50,37,24,26,26,24,22,9,10,6,20,37,6534
3510 DATA 27,27,27,0,48,204,252,204,48,204,252,204,240,207,243,252,9919
3520 DATA 48,48,48,60,252,192,192,252,240,204,204,240,252,240,192,252,2692
3530 DATA 252,240,192,192,204,252,204,204,207,207,204,204,60,252,204,12,7383
3540 DATA 204,240,240,204,192,192,192,252,243,243,207,207,63,60,48,63,3997
3550 DATA 60,63,51,48,243,243,48,48,48,240,192,192,252,204,204,252,7946
3560 DATA 252,204,192,111,187,112,252,192,252,204,240,204,252,240,12,252,391
3570 DATA 252,48,48,48,204,204,204,252,204,252,48,48,252,60,192,252,6430
3580 DATA 0,0,0,0,252,204,204,252,48,240,48,252,252,60,192,252,6920
3590 DATA 252,60,12,252,192,204,252,12,252,240,12,252,252,192,252,252,650
3600 DATA 252,12,48,192,252,204,252,252,252,204,252,12,0,48,0,48,9716
3610 DATA 204,204,252,48,207,207,192,207,204,12,204,204,240,207,243,252,790
3620 DATA 51,51,51,51,12,12,12,204,255,192,207,255,12,51,63,51,8161
3630 DATA 60,63,51,48,243,243,51,51,240,192,0,240,207,195,195,195,6025
3640 DATA 192,0,0,0,204,204,204,207,12,12,12,207,0,0,0,192,5076
3650 DATA 255,255,255,60,60,15,240,63,252,63,252,63,240,60,60,60,240
3660 DATA 60,60,60,63,252,63,240,0,48,0,0,243,195,15,207,192,9860
3670 DATA 252,252,195,51,204,255,255,255,0,0,0,63,252,60,60,0,7362
3680 DATA 252,63,240,60,60,60,60,63,60,63,60,63,240,60,60,0,4048
3690 DATA 60,204,0,204,204,195,3,0,240,204,195,51,204,0,0,0,6794
3700 DATA 0,0,0,51,204,63,252,63,0,60,0,63,192,60,60,60,4122
3710 DATA 252,60,252,60,0,63,192,0,60,48,0,204,207,195,3,0,5734
3720 DATA 192,240,188,112,88,113,195,51,60,0,0,0,0,0,0,48,9603
3730 DATA 12,60,60,63,252,63,252,60,60,63,252,60,60,60,60,63,6366
3740 DATA 252,60,60,0,0,240,0,192,204,195,3,0,192,204,60,51,8155
3750 DATA 60,0,0,0,104,70,22,118,104,70,22,118,145,145,65,65,5072
3760 DATA 19,19,40,40,0,0,64,64,0,0,0,0,167,124,81,103,1827
3770 DATA 65,72,79,79,19,63,107,107,128,84,40,128,0,0,0,0,578
3780 DATA 64,64,64,64,0,0,106,72,24,120,112,112,112,78,0,64,3302
3790 DATA 14,14,14,0,77,64,65,0,0,220,65,76,69,188,72,156,6030
3800 DATA 74,100,75,44,76,68,77,0,0,163,107,51,19,219,163,66,6035
3810 DATA 67,68,70,70,71,0,1,1,1,1,163,18,218,66,70,65,2749
3820 DATA 60,60,255,226,2,227,2,0,96,0,0,0,0,0,0,0,7919

Listing 2: Assembly.

	.OPT	OBJ
	.OPT	NOLIST
; MAZERUNNER by Matt Fruin 12/86
STICK0	=	$0278
HPOS	=	$D000
PCLR	=	$02C0
EHPOS	=	$D002
EPCLR	=	$02C2
RND	=	$D20A
VVBLKI	=	$0222
CONSOL	=	$D01F
L1	=	$CB
VALUE	=	$CF
NEWDIR	=	$CF
SPACES	=	$D0
L2	=	$CC
PLOC1	=	$CB
PLOC2	=	$CC
PMLO	=	$CD
PMHI	=	$CE
L3	=	$CE
L4	=	$CF
HALF	=	$D1
YG1	=	$D0
YG2	=	$D1
FB	=	$CE
FLAG	=	$CF
LINE	=	$CD
MVYET?	=	$E0
CHAR	=	$CE
ENEMLO	=	$0600
ENEMHI	=	$0610
ENEMASK	=	$0620
DIR	=	$0630
MVCTER	=	$0640
ENEMNUM	=	$0650
PLRLO	=	$0660
PLRHI	=	$0662
PLRY	=	$0664
PLRX	=	$0666
PLDIR	=	$0668
PLMVCTER	=	$066A
PLRNUM	=	$066C
DIR2	=	$066D
DIR3	=	$066E
ENLO	=	$0670
ENHI	=	$0674
ENY	=	$0678
ENX	=	$067C
EDIR	=	$0680
EMVCTER	=	$0684
ENNUM	=	$0688
FP?	=	$06DF
NOMV	=	$06E4
CLR	=	$068A
LMT	=	$06E7
WTR	=	$06E5
FLASH	=	$06DE
MASK	=	$06E3
KILL?	=	$06E8
PY?	=	$06EA
PARALYZCNT	=	$06EC
MOVPLR?	=	$06D0
COLRCT	=	$06D8
CAUGHT	=	$06D2
READY?	=	$06D6
TMP1	=	$06D4
CLRLIST	=	$06A0
TM	=	$06A8
TMSCREEN	=	$4E58
ICCOM	=	$0342
ICBAL	=	$0344
ICBAH	=	$0345
ICAX1	=	$034A
ICAX2	=	$034B
CIOV	=	$E456
SAVMSC	=	$58
SDMCTL	=	$022F
SDLSTL	=	$0230
ENCNT1	=	$06F0
ENCNT2	=	ENCNT1+1
ENEMSPD	=	ENCNT1+2
P1SPD	=	ENCNT1+3
P2SPD	=	ENCNT1+4
POSCNTR	=	$06B0
POSLO	=	POSCNTR+2
POSHI	=	POSCNTR+3
LOVAL	=	POSCNTR+$12
HIVAL	=	POSCNTR+$18
MOVCNTR	=	POSCNTR+$10
P1SPDCNT	=	$06E0
P2SPDCNT	=	$06E1
ENEMSCNT	=	$06E2
SOUND	=	$06DA
LOUD	=	$06DB
SOUNDLP1	=	$06DC
SOUNDLP2	=	$06DD
;
	*=	$6000
RESET	LDA	#START&255
	STA	$0C
	LDA	#START/256
	STA	$0D
	LDA	#$01
	STA	$09
START	JSR	SCREENLIST
	LDA	#$40
	STA	L2
	LDA	#$00
	STA	L1
	LDX	#$00
CLS1	LDY	#$00
CLS2	STA	(L1),Y
	INY
	BNE	CLS2
	INC	L2
	INX
	CPX	#$10
	BNE	CLS1
	LDA	#$53
	STA	L1
	LDX	#$60
	LDA	#$03
	STA	ICCOM,X
	LDA	#$00
	STA	ICBAH,X
	LDA	#$CB
	STA	ICBAL,X
	LDA	#$0C
	STA	ICAX1,X
	LDA	#$00
	STA	ICAX2,X
	JSR	CIOV
	LDA	#$00
	STA	SAVMSC
	LDA	#$40
	STA	SAVMSC+1
	LDA	#$00
	STA	SDMCTL
	LDA	#$00
	STA	SDLSTL
	LDA	#$80
	STA	SDLSTL+1
	LDA	#$2E
	STA	SDMCTL
	LDA	#$FF
	STA	$D01C
	LDA	#$94
	STA	$02C6
	LDA	#$96
	STA	$02C4
	LDA	#$44
	STA	$02C5
	JSR	TITLE
	JSR	BORDER
	JSR	DOCHOICES
	JSR	PUTBLIPS
	LDA	#$61
	STA	LMT
	LDA	#TRU&255
	STA	VVBLKI+2
	LDA	#TRU/256
	STA	VVBLKI+3
	JMP	SETUP2
;
TITLE	LDY	#$00
	STY	L1
	LDA	#$40
	STA	L2
LP1	LDA	MESSAGE,Y
	STA	(L1),Y
	INY
	CPY	#$A0
	BNE	LP1
	RTS
;
BORDER	LDA	#$00
	STA	YG1
	STA	YG2
	LDA	#$A0
	STA	L3
	LDA	#$40
	STA	L4
	LDX	#$05
TOP	JSR	VERT
	DEX
	BPL	TOP
	LDX	#$57
MIDDLE	JSR	SIDES
	DEX
	BPL	MIDDLE
	JSR	BOTTOMROW
	JSR	BOTTOMROW
	LDX	#$05
BOTTOM	JSR	VERT
	DEX
	BPL	BOTTOM
	JMP	DOMAZE
BOTTOMROW	LDY	#$00
	JSR	SIDE
	INY
	LDA	#$00
LLP4	STA	(L3),Y
	INY
	CPY	#$19
	BNE	LLP4
	LDA	#$F0
	STA	(L3),Y
	JMP	ADD40
VERT	LDY	#$00
	LDA	#$FF
LOOP3	STA	(L3),Y
	INY
	CPY	#$19
	BNE	LOOP3
	LDA	#$F0
	STA	(L3),Y
	JSR	ADD40
	RTS
SIDES	LDY	#$00
	JSR	SIDE
	INY
	LDA	#$00
LOOP4	STA	(L3),Y
	INY
	CPY	#$18
	BNE	LOOP4
	JSR	SIDE
ADD40	CLC
	LDA	#$28
	ADC	L3
	BCC	J1
	INC	L4
J1	STA	L3
	RTS
SIDE	LDA	#$FF
	STA	(L3),Y
	INY
	LDA	#$F0
	STA	(L3),Y
	RTS
DOMAZE	LDA	RND
	AND	#$3F
	STA	L3
	SEC
	SBC	#$1A
	BCS	DOMAZE
PP2	LDA	RND
	AND	#$3E
	STA	L4
	SEC
	SBC	#$30
	BCS	PP2
	LDA	#$00
	STA	L1
	STA	L2
	CLC
	LDA	L4
	STA	L1
	ASL	L1
	ASL	L1
	ADC	L1
	STA	L1
	LDX	#$04
LOOP5	ASL	L1
	ROL	L2
	DEX
	BNE	LOOP5
	CLC
	LDA	L1
	ADC	L3
	BCC	J2
	INC	L2
J2	STA	L1
	CLC
	LDA	L1
	ADC	#$A0
	BCC	J3
	INC	L2
J3	STA	L1
	CLC
	LDA	L2
	ADC	#$40
	STA	L2
	LDY	#$00
	LDA	(L1),Y
	AND	#$40
	BNE	DOMAZE
	LDA	#$01
	STA	FLAG
WALL	LDA	RND
	AND	#$03
	ROR	A
	BCC	LORR
	ROR	A
	BCC	DN
	DEC	L2
	LDY	#$60
	JSR	FILLED?
	INC	L2
	LDA	FB
	BNE	FILLED
	DEC	L2
	JMP	PLOTUP
DN	LDY	#$A0
	JSR	FILLED?
	LDA	FB
	BNE	FILLED
	JMP	PLOTDOWN
LORR	ROR	A
	BCC	LT
	LDY	#$01
	JSR	FILLED?
	LDA	FB
	BEQ	PLOTRIGHT
	JMP	FILLED
LT	DEC	L2
	LDY	#$FF
	JSR	FILLED?
	INC	L2
	LDA	FB
	BEQ	PLOTLEFT
	JMP	FILLED
FILLED?	LDA	(L1),Y
	AND	#$40
	STA	FB
	LDA	FLAG
	BNE	J4
	RTS
J4	LDA	FB
	BEQ	J5
	JMP	DONE3
J5	LDA	#$01
	STA	FB
	RTS
FILLED	INX
	CPX	#$0F
	BNE	WALL
	JMP	DOMAZE
PLOTUP	LDA	#$50
	LDY	#$D8
	STA	(L1),Y
	LDY	#$B0
	STA	(L1),Y
	LDY	#$88
	STA	(L1),Y
	LDY	#$60
	STA	(L1),Y
	JMP	DONE
PLOTDOWN	LDA	#$50
	LDY	#$50
	STA	(L1),Y
	LDY	#$78
	STA	(L1),Y
	LDY	#$C8
	STA	(L1),Y
	LDY	#$A0
	STA	(L1),Y
	JMP	DONE
PLOTRIGHT	LDY	#$00
	LDA	(L1),Y
	ORA	#$55
	STA	(L1),Y
	LDY	#$28
	STA	(L1),Y
	LDA	#$50
	LDY	#$29
	STA	(L1),Y
	LDY	#$01
	STA	(L1),Y
	JMP	DONE
PLOTLEFT	LDY	#$27
	LDA	#$55
	STA	(L1),Y
	LDY	#$FF
	DEC	L2
	STA	(L1),Y
DONE	CLC
	INC	YG1
	BNE	J6
	INC	YG2
J6	LDA	YG1
	CMP	#$E4
	BNE	DONE2
	LDA	YG2
	CMP	#$01
	BNE	DONE2
	RTS
DONE3	PLA
	PLA
DONE2	CLC
	TYA
	ADC	L1
	BCC	J7
	INC	L2
J7	STA	L1
	LDX	#$00
	STX	FLAG
	JMP	WALL
;
DOCHOICES	LDX	#$01
	STX	LINE
	DEX
GETLOC	LDA	LIST,X
	STA	L1
	INX
	LDA	LIST,X
	STA	L2
	LDY	LINE
J8	DEY
	CPY	#$00
	BEQ	J12
	JSR	PLUS40
	JMP	J8
J9	LDA	LIST,X
	CMP	#$18
	BNE	J10
	INC	L2
J10	CLC
	ADC	L1
	BCC	J11
	INC	L2
J11	STA	L1
J12	LDY	#$00
	STY	CHAR
J13	INX
	LDA	LIST,X
	CLC
	ROL	A
	ROL	A
	ADC	LINE
	TAY
	LDA	BYTES,Y
	LDY	CHAR
	CPY	#$09
	BEQ	J14
	STA	(L1),Y
	INY
	STY	CHAR
	JMP	J13
J14	CPX	#$97
	BNE	J9
	INC	LINE
	LDA	LINE
	CMP	#$05
	BEQ	OUT
	LDX	#$00
	JMP	GETLOC
OUT	LDX	#$1F
J15	LDA	LTS,X
	STA	POSCNTR,X
	DEX
	BPL	J15
	LDX	#$05
J16	LDA	LTS2,X
	STA	ENCNT1,X
	DEX
	BPL	J16
	RTS
PLUS40	LDA	L1
	CLC
	ADC	#$28
	BCC	J17
	INC	L2
J17	STA	L1
	RTS
;
PUTBLIPS	LDY	#$02
PB2	LDA	BLIPS,Y
	STA	L1
	LDA	BLIPS+3,Y
	STA	L2
	LDA	BLIPS+6,Y
	STA	(L1),Y
	DEY
	BPL	PB2
	RTS
;
CHANGE	LDA	NOMV
	BNE	LEAVE
	DEC	WTR
	BPL	LEAVE
	LDA	#$04
	STA	WTR
	LDA	CONSOL
	CMP	#$03
	BEQ	OPTION
	CMP	#$05
	BEQ	SELECT
	CMP	#$06
	BEQ	STARTED
	LDA	$0284
	BEQ	STARTED
	LDA	$0285
	BEQ	STARTED
LEAVE	JSR	DOSOUND
LV2	JMP	$E45F
STARTED	LDA	READY?
	BNE	LV2
	JMP	SETUPGAME
OPTION	LDX	#$01
	LDA	MOVCNTR,X
	CMP	#$00
	BEQ	NOBLACK
	LDA	#$00
	JMP	STORCOL
NOBLACK	LDA	#$96
STORCOL	STA	$02C4
	LDA	POSCNTR
	ASL	A
	JSR	NEWPOS
	LDA	#$00
	LDY	#$00
	STA	(L1),Y
	INC	POSCNTR
	LDA	POSCNTR
	CMP	#$07
	BNE	PLUS5
	LDA	#$00
	STA	POSCNTR
PLUS5	CLC
	ASL	A
	JSR	NEWPOS
	LDA	#$FF
	LDY	#$00
	STA	(L1),Y
	JMP	LEAVE
NEWPOS	TAX
	LDA	POSLO,X
	STA	L1
	LDA	POSHI,X
	STA	L2
	RTS
SELECT	LDA	POSCNTR
	TAX
	SEC
	SBC	#$02
	BCS	ISIT2
	JSR	CHANGELOC
	LDA	#$00
	STA	(L1),Y
	INC	MOVCNTR,X
	LDA	MOVCNTR,X
	CMP	#$03
	BNE	NOT3
	LDA	#$00
	STA	MOVCNTR,X
NOT3	JSR	CHANGELOC
	LDA	#$3C
	STA	(L1),Y
	JMP	LEAVE
CHANGELOC	LDA	POSCNTR
	BEQ	NNOT1
	LDA	#$03
NNOT1	CLC
	ADC	MOVCNTR,X
	TAY
	LDA	LOVAL,Y
	STA	L1
	LDA	HIVAL,Y
	STA	L2
	LDY	#$00
	RTS
ISIT2	SBC	#$01
	BCS	ISIT3
	INC	ENCNT2
	LDA	ENCNT2
	CMP	#$0A
	BNE	ADD1
	INC	ENCNT1
	LDA	#$00
	STA	ENCNT2
ENEMINC	LDA	POSCNTR
	ASL	A
	JSR	NEWPOS
	DEC	L1
	DEC	L1
	LDA	ENCNT1
	JSR	DOCHAR
ADD1	LDA	ENCNT2
	CMP	#$07
	BNE	NOTYET
	LDA	ENCNT1
	CMP	#$01
	BNE	NOTYET
	LDA	#$00
	STA	ENCNT1
	STA	ENCNT2
	JMP	ENEMINC
NOTYET	LDA	POSCNTR
	ASL	A
	JSR	NEWPOS
	DEC	L1
	LDA	ENCNT2
	JSR	DOCHAR
	JMP	LEAVE
DOCHAR	ASL	A
	ASL	A
	ADC	#$6D
DOCHAR2	TAX
	LDY	#$00
J18	LDA	BYTES,X
	STA	(L1),Y
ADD40TOY	TYA
	CLC
	ADC	#$28
	TAY
	INX
	CPY	#$A0
	BNE	J18
	RTS
ISIT3	SBC	#$01
	BCS	ISIT4OR5
	LDA	POSCNTR
	ASL	A
	JSR	NEWPOS
	DEC	L1
	DEC	L1
	INC	ENEMSPD
	LDA	ENEMSPD
	CMP	#$05
	BNE	NOT5
	LDA	#$01
	STA	ENEMSPD
NOT5	JSR	DOCHAR
	JMP	LEAVE
ISIT4OR5	SBC	#$02
	BCS	ITS6
	LDA	POSCNTR
	ASL	A
	JSR	NEWPOS
	DEC	L1
	LDA	POSCNTR
	AND	#$01
	TAX
	INC	P1SPD,X
	LDA	P1SPD,X
	CMP	#$05
	BNE	NOTOVER
	LDA	#$01
	STA	P1SPD,X
NOTOVER	JSR	DOCHAR
	JMP	LEAVE
ITS6	LDA	POSCNTR
	ASL	A
	JSR	NEWPOS
	DEC	L1
	DEC	L1
	DEC	L1
	LDA	LMT
	EOR	#$54
	STA	LMT
	JSR	DOCHAR2
	JMP	LEAVE
;
STOPPED	LDA	#VRTWAIT&255
	STA	VVBLKI
	LDA	#VRTWAIT/256
	STA	VVBLKI+1
WAIT3	JSR	WAIT
SETUP	LDA	#$00
	STA	FP?
	LDA	MOVCNTR
	BNE	SETUP2
	INC	FP?
	LDA	#$02
	STA	MASK
SETUP2	LDA	#$04
	STA	WTR
	LDA	#CHANGE&255
	STA	VVBLKI
	LDA	#CHANGE/256
	STA	VVBLKI+1
	LDA	#$00
	STA	NOMV
	LDA	#$96
	STA	$02C4
	JSR	ENSETUP
	LDA	#$00
	STA	KILL?
	STA	KILL?+1
	STA	PY?
	STA	PY?+1
	STA	ENEMSCNT
	STA	MVYET?
	STA	P1SPDCNT
	STA	P2SPDCNT
SYNCH	LDA	MVYET?
	BEQ	SYNCH
	STA	NOMV
	LDA	#$A0
	STA	$D201
	JSR	SETUPPLS
	LDA	#$00
	STA	SOUND
	LDA	#$10
	STA	LOUD
	LDA	#$00
	STA	$D208
	LDA	#$03
	STA	$D20F
	LDA	#$00
	STA	SOUNDLP1
	STA	SOUNDLP2
	LDA	#$0F
	STA	DIR3
	STA	DIR3+1
WAIT4	JSR	WAIT
	LDA	#$01
	STA	READY?
	LDA	#$00
	LDX	#$03
UY	STA	$02C0,X
	DEX
	BPL	UY
	LDA	#$96
	STA	$02C4
	JSR	BORDER
	JSR	INITPLS
	LDA	#$00
	STA	$D1
	JSR	SCREENCLR
	LDA	#$FF
	STA	$D01E
	LDA	#VRTBLNK&255
	STA	VVBLKI
	LDA	#VRTBLNK/256
	STA	VVBLKI+1
	DEC	READY?
SYNCH2	LDA	MVYET?
	BEQ	SYNCH2
	LDA	SOUND
	BEQ	SOUNDR
	LDA	#$00
	STA	$D208
	LDA	#$03
	STA	$D20F
SOUNDR	LDA	$D01F
	CMP	#$07
	BEQ	GHJ
	JMP	STOPPED
GHJ	LDA	KILL?
	BEQ	PLRLP
	LDA	KILL?+1
	BEQ	PLRLP
	JMP	SETUP
WAIT	LDA	$D01F
	CMP	#$07
	BNE	WAIT
	RTS
PLRLP	LDX	#$01
PLRLP2	LDA	PLRX,X
	CMP	#$84
	BNE	MOVPL
	LDA	CAUGHT,X
	BNE	MOVPL
	LDA	#$05
	STA	SOUND
	LDA	#$0F
	STA	SOUNDLP1
	LDA	#$1E
	STA	SOUNDLP2
	JMP	SETUP
MOVPL	DEX
	BPL	PLRLP2
	DEC	MVYET?
	LDX	#$01
MOV?	LDA	KILL?,X
	BNE	NXTPL
	LDA	PY?,X
	BEQ	MOVYET?
	JSR	ISPYD?
	LDA	MOVPLR?
	BEQ	NXTPL
	JMP	GOMOV
MOVYET?	INC	P1SPDCNT,X
	LDA	P1SPDCNT,X
	CMP	P1SPD,X
	BNE	NXTPL
GOMOV	LDA	#$00
	STX	PLRNUM
	STA	P1SPDCNT,X
	JSR	J32
NXTPL	DEX
	BPL	MOV?
MVNEMY?	INC	ENEMSCNT
	LDA	ENEMSCNT
	CMP	ENEMSPD
	BEQ	GOMOVENEM
	JMP	SYNCH2
GOMOVENEM	LDA	#$00
	STA	ENEMSCNT
	LDA	MOVCNTR
	BEQ	PLAMOV
	JSR	BEGIN
	JMP	SYNCH2
PLAMOV	JSR	MVNEM
	JMP	SYNCH2
;
BEGIN	INC	ENEMNUM
	LDX	ENEMNUM
	CPX	#$10
	BNE	J19
	LDX	#$FF
	STX	ENEMNUM
	RTS
J19	LDA	DIR,X
	CMP	#$06
	BEQ	BEGIN
	LDA	ENEMLO,X
	STA	L1
	LDA	ENEMHI,X
	STA	L2
	ROL	MVCTER,X
	ROL	MVCTER,X
	BCS	PICKDIR
	JSR	MVENEM
EXIT	LDA	L1
	STA	ENEMLO,X
	LDA	L2
	STA	ENEMHI,X
	JMP	BEGIN
PICKDIR	LDA	DIR,X
	CMP	#$04
	BEQ	J21
	AND	#$08
	BEQ	J20
	LDA	#$40
	STA	MVCTER,X
	LDY	#$00
	JSR	CLEAR
	LDY	#$28
	JSR	CLEAR
	LDA	#$06
	STA	DIR,X
	JMP	BEGIN
J20	DEC	L2
	LDY	#$D8
	JSR	CHECKVERT
	INC	L2
	LDY	#$00
	JSR	CHECKHORIZ2
	LDY	#$01
	JSR	CHECKHORIZ2
	LDY	#$50
	JSR	CHECKVERT2
	LDA	SPACES
	CMP	#$01
	BNE	J21
	LDA	DIR,X
	EOR	#$02
	JMP	DIROK2
J21	LDA	RND
	AND	#$03
	STA	NEWDIR
	LDA	DIR,X
	CMP	#$04
	BEQ	DIRPICKED
	LDA	NEWDIR
	EOR	DIR,X
	BEQ	DIRPICKED
	AND	#$01
	BEQ	J21
DIRPICKED	LDA	NEWDIR
	ROR	A
	BCC	LEFTORRIGHT
	ROR	A
	BCC	CHECKDOWN
	LDY	#$D8
	DEC	L2
	JSR	CHECKVERT
	INC	L2
	LDA	SPACES
	BEQ	J21
	JMP	DIROK3
CHECKDOWN	LDY	#$50
	JSR	CHECKVERT
	LDA	SPACES
	BEQ	J21
	JMP	DIROK3
LEFTORRIGHT	ROR	A
	BCC	CHECKLEFT
	LDY	#$01
	JSR	CHECKHORIZ
	LDA	SPACES
	BEQ	J21
	JMP	DIROK3
CHECKLEFT	LDY	#$00
	JSR	CHECKHORIZ
	LDA	SPACES
	BEQ	J21
DIROK3	LDA	NEWDIR
DIROK2	STA	DIR,X
DIROK	LDA	#$01
	STA	MVCTER,X
	JSR	MVENEM
	JMP	EXIT
MVENEM	LDA	DIR,X
	ROR	A
	BCC	J23
	ROR	A
	BCC	J22
	LDY	#$28
	JSR	CLEAR
	DEC	L2
	LDY	#$D8
	JSR	PLOT1
	JMP	DONMOV
J22	LDY	#$00
	JSR	CLEAR
	LDY	#$50
	JSR	PLOT1
	LDY	#$28
	JMP	DONMOV
J23	LDY	#$00
	JSR	CLEAR
	LDY	#$28
	JSR	CLEAR
	LDA	DIR,X
	ROR	A
	ROR	A
	BCC	J27
	CLC
	ROR	ENEMASK,X
	ROR	ENEMASK,X
	BCS	J25
J24	LDY	#$00
	JSR	PLOT1
	LDY	#$28
	JSR	PLOT1
	RTS
J25	LDA	ENEMASK,X
	BEQ	J26
	LDY	#$00
	JSR	PLOT1
	LDY	#$28
	JSR	PLOT1
	LDY	#$01
	LDA	#$80
	JSR	PLOT2
	LDY	#$29
	LDA	#$80
	JSR	PLOT2
	RTS
J26	LDY	#$01
	JSR	DONMOV
	LDA	#$A0
	STA	ENEMASK,X
	JMP	J24
J27	ROL	ENEMASK,X
	BCS	J29
	ROL	ENEMASK,X
J28	LDY	#$00
	JSR	PLOT1
	LDY	#$28
	JSR	PLOT1
	RTS
J29	CLC
	ROL	ENEMASK,X
	LDA	ENEMASK,X
	BEQ	J30
	JSR	J28
	DEC	L2
	LDY	#$FF
	LDA	#$02
	JSR	PLOT2
	INC	L2
	LDA	#$02
	LDY	#$27
	JSR	PLOT2
	RTS
J30	LDY	#$FF
	DEC	L2
	JSR	DONMOV
	LDA	#$0A
	STA	ENEMASK,X
	JMP	J28
DONMOV	TYA
	CLC
	ADC	L1
	BCC	J31
	INC	L2
J31	STA	L1
	RTS
CLEAR	LDA	ENEMASK,X
	EOR	#$FF
	AND	(L1),Y
	STA	(L1),Y
	RTS
PLOT1	LDA	ENEMASK,X
PLOT2	ORA	(L1),Y
	STA	(L1),Y
	RTS
;
INITPLS	LDA	#$78
	STA	$D407
	CLC
	ADC	#$02
	STA	PMHI
	LDA	#$FF
	STA	PLRNUM
	LDA	#$03
	STA	$D01D
	LDX	#$03
	LDA	#$01
CLRLOOP	STA	$D008,X
	DEX
	BPL	CLRLOOP
	LDA	#$CA
	STA	$02C0
	LDA	#$8A
	STA	$02C1
MKM	RTS
;
MOVPLS	INC	PLRNUM
	LDA	PLRNUM
	CMP	#$02
	BNE	J32
	LDA	#$FF
	STA	PLRNUM
	RTS
J32	LDA	PLRNUM
	TAX
	BEQ	J33
	LDA	#$80
J33	STA	PMLO
	LDA	PLRLO,X
	STA	PLOC1
	LDA	PLRHI,X
	STA	PLOC2
	ROL	PLMVCTER,X
	ROL	PLMVCTER,X
	BCS	PLPICKDIR
	JSR	MVPLS
PLEXIT	LDA	MOVCNTR
	BNE	PLEXT2
	JSR	CAPTENEMY?
	LDX	PLRNUM
PLEXT2	RTS
PLPICKDIR	LDA	#$00
	STA	FLAG
	STA	PLDIR,X
	LDA	STICK0,X
TRANSDIR	STA	DIR2
	CMP	#$0B
	BEQ	CHEKDIR
	INC	PLDIR,X
	CMP	#$0D
	BEQ	CHEKDIR
	INC	PLDIR,X
	CMP	#$07
	BEQ	CHEKDIR
	INC	PLDIR,X
	CMP	#$0E
	BEQ	CHEKDIR
	LDA	#$00
	STA	PLDIR,X
	LDA	DIR2
	ORA	DIR3,X
	CMP	#$0F
	BEQ	GOEXIT2
	INC	FLAG
	LDA	DIR2
	EOR	#$0F
	EOR	DIR3,X
	JMP	TRANSDIR
GOEXIT	LDA	FLAG
	BEQ	NOMOV
	LDA	#$00
	STA	PLDIR,X
	DEC	FLAG
	LDA	DIR3,X
	JMP	TRANSDIR
NOMOV	LDA	SOUND
	BNE	GOEXIT2
	LDA	#$01
	STA	SOUND
GOEXIT2	LDA	#$40
	STA	PLMVCTER,X
	JMP	PLEXIT
CHEKDIR	LDA	#$00
	STA	$4D
	LDA	PLDIR,X
	ROR	A
	BCC	PLLEFTORRIGHT
	ROR	A
	BCC	PLCHECKDOWN
PLCHECKUP	LDY	#$D8
	DEC	PLOC2
	JSR	CHECKVERT
	INC	PLOC2
	LDA	SPACES
	BEQ	GOEXIT
	DEC	PLRHI,X
	LDY	#$60
	JSR	ADJUSTL
	JMP	PLDIROK
PLCHECKDOWN	LDY	#$50
	JSR	CHECKVERT
	LDA	SPACES
	BEQ	GOEXIT
	LDY	#$A0
	JSR	ADJUSTL
	JMP	PLDIROK
PLLEFTORRIGHT	ROR	A
	BCC	PLCHECKLEFT
PLCHECKRIGHT	LDY	#$01
	JSR	CHECKHORIZ
	LDA	SPACES
	BEQ	GOEXIT
	JSR	ADJUSTL
	JMP	PLDIROK
PLCHECKLEFT	LDY	#$00
	JSR	CHECKHORIZ
	LDA	SPACES
	BEQ	GOEXIT
	DEC	PLRHI,X
	LDY	#$FF
	JSR	ADJUSTL
PLDIROK	LDA	DIR2
	STA	DIR3,X
	LDA	#$01
	STA	PLMVCTER,X
	JSR	MVPLS
	JMP	PLEXIT
MVPLS	LDY	PLRY,X
	LDA	#$01
	JSR	EMIDDLE
	LDA	PLDIR,X
	ROR	A
	BCC	RIGHTORLEFT
	ROR	A
	BCC	DOWN
UP	DEC	PLRY,X
	JMP	YCHANGE
DOWN	INC	PLRY,X
YCHANGE	LDY	PLRY,X
	JMP	NEWDRAW
RIGHTORLEFT	ROR	A
	BCC	LEFT
RIGHT	INC	PLRX,X
	JMP	CHANGEX
LEFT	DEC	PLRX,X
CHANGEX	LDA	PLRX,X
	STA	HPOS,X
	RTS
ADJUSTL	TYA
	CLC
	ADC	PLRLO,X
	BCC	J36
	INC	PLRHI,X
J36	STA	PLRLO,X
	RTS
;
TRANSFER	LDA	HALF
	EOR	#$02
	STA	HALF
	INC	PMHI
	TAX
	LDA	#$00
	STA	PMLO
LOOOOOP4	JSR	SWITCH
	INX
	LDA	#$80
	STA	PMLO
	JSR	SWITCH
	DEC	PMHI
	RTS
SWITCH	TXA
	EOR	#$02
	TAX
	LDA	ENY,X
	TAY
	LDA	#$00
	STA	(PMLO),Y
	JSR	EMIDDLE
	STA	(PMLO),Y
	INY
	STA	(PMLO),Y
	TXA
	EOR	#$02
	TAX
	AND	#$01
	TAY
	LDA	ENX,X
	STA	EHPOS,Y
	TXA
	EOR	MASK
	TAX
	LDA	CLR,X
	STA	EPCLR,Y
	TXA
	EOR	MASK
	TAX
	LDA	ENY,X
	TAY
	JSR	NEWDRAW
	RTS
NEWDRAW	LDA	#$00
	STA	(PMLO),Y
	LDA	#$01
	JSR	EMIDDLE
	LDA	#$00
	STA	(PMLO),Y
	RTS
EMIDDLE	INY
	STA	(PMLO),Y
	INY
	STA	(PMLO),Y
	INY
	RTS
;
MVNEM	INC	ENNUM
	LDA	ENNUM
	CMP	#$04
	BNE	NOT1
	LDA	#$FF
	STA	ENNUM
	JMP	CAPTENEMY?
NOT1	TAX
	LDA	ENLO,X
	STA	L1
	LDA	ENHI,X
	STA	L2
	ROL	EMVCTER,X
	ROL	EMVCTER,X
	BCS	EPICKDIR
	JSR	MVFOUR
	JMP	MVNEM
EPICKDIR	DEC	L2
	LDY	#$D8
	JSR	CHECKVERT
	INC	L2
	LDY	#$00
	JSR	CHECKHORIZ2
	LDY	#$01
	JSR	CHECKHORIZ2
	LDY	#$50
	JSR	CHECKVERT2
	LDA	SPACES
	CMP	#$01
	BNE	J37
	LDA	EDIR,X
	EOR	#$02
	STA	VALUE
	JMP	J38
J37	LDA	RND
	AND	#$03
	STA	VALUE
	EOR	EDIR,X
	BEQ	J38
	AND	#$01
	BEQ	J37
J38	LDA	VALUE
	ROR	A
	BCC	ELEFTORRIGHT
	ROR	A
	BCC	ECHECKDOWN
	LDY	#$D8
	DEC	L2
	JSR	CHECKVERT
	INC	L2
	LDA	SPACES
	BEQ	J37
	LDY	#$60
	DEC	ENHI,X
	JSR	EADJUSTL
	JMP	DIRPICKED2
ECHECKDOWN	LDY	#$50
	JSR	CHECKVERT
	LDA	SPACES
	BEQ	J37
	LDY	#$A0
	JSR	EADJUSTL
	JMP	DIRPICKED2
ELEFTORRIGHT	ROR	A
	BCC	ECHECKLEFT
	LDY	#$01
	JSR	CHECKHORIZ
	LDA	SPACES
	BEQ	J37
	LDY	#$01
	JSR	EADJUSTL
	JMP	DIRPICKED2
ECHECKLEFT	LDY	#$00
	JSR	CHECKHORIZ
	LDA	SPACES
	BEQ	J37
	LDY	#$FF
	DEC	ENHI,X
	JSR	EADJUSTL
DIRPICKED2	LDA	VALUE
DIRPICKED3	STA	EDIR,X
DIRPICKD	LDA	#$01
	STA	EMVCTER,X
	JSR	MVFOUR
	JMP	MVNEM
CHECKVERT	LDA	#$00
	STA	SPACES
CHECKVERT2	LDA	(L1),Y
	AND	#$05
	BNE	JUUMP03
	INC	SPACES
JUUMP03	RTS
CHECKHORIZ	LDA	#$00
	STA	SPACES
CHECKHORIZ2	LDA	(L1),Y
	AND	#$50
	BNE	JUUMP04
	INC	SPACES
JUUMP04	RTS
MVFOUR	LDA	EDIR,X
	ROR	A
	BCC	ERIGHTORLEFT
	ROR	A
	BCC	EDOWN
EUP	DEC	ENY,X
	RTS
EDOWN	INC	ENY,X
	RTS
ERIGHTORLEFT	ROR	A
	BCC	ELEFT
ERIGHT	INC	ENX,X
	RTS
ELEFT	DEC	ENX,X
	RTS
EADJUSTL	TYA
	CLC
	ADC	ENLO,X
	BCC	J39
	INC	ENHI,X
J39	STA	ENLO,X
	RTS
;
SETUPGAME	LDA	#$00
	STA	$4D
	STA	FP?
	STA	MASK
	JSR	DOBOXES
	LDA	MOVCNTR
	BNE	J40
	LDA	#$04
	STA	CAUGHT
	STA	CAUGHT+1
	LDA	#$C0
	STA	$D40E
	LDA	#DLI&255
	STA	$0200
	LDA	#DLI/256
	STA	$0200+1
	JMP	DONSETUP
J40	LDA	#$40
	STA	$D40E
	LDA	#$00
	STA	CAUGHT
	STA	CAUGHT+1
	LDA	ENCNT1
	BEQ	NO10
	LDA	#$0A
NO10	ADC	ENCNT2
	TAX
	DEX
	LDA	#$04
STORDIR	DEX
	BMI	DONSETUP
	STA	DIR,X
	JMP	STORDIR
DONSETUP	LDA	#$01
	STA	MVYET?
	LDX	#$05
	LDA	#$00
J41	STA	TM,X
	DEX
	BPL	J41
	LDA	#$FF
	STA	$02FC
	JMP	$E45F
;
VRTBLNK	LDA	$02FC
	CMP	#$FF
	BEQ	J42
	LDA	#START&255
	STA	$E475
	LDA	#START/256
	STA	$E476
	JMP	VCTRSET
J42	LDA	#$01
	STA	MVYET?
	LDA	MOVCNTR+1
	BEQ	J44
	LDA	FLASH
	BEQ	J43
	DEC	FLASH
	JMP	J44
J43	LDA	#$00
	STA	$02C4
	LDA	MOVCNTR+1
	CMP	#$01
	BEQ	J44
	LDA	RND
	AND	#$7F
	BNE	J44
	LDA	#$0A
	STA	FLASH
	LDA	#$96
	STA	$02C4
J44	LDA	MOVCNTR
	BNE	CHECKPLFLD
	JSR	TRANSFER
	JMP	ENDVRT
CHECKPLFLD	LDX	#$00
J45	LDA	$D004,X
	BEQ	NXTPLR
	LDA	MOVCNTR
	CMP	#$01
	BEQ	PY
	LDA	KILL?,X
	BNE	NXTPLRGGO
	LDA	#$FF
	STA	KILL?,X
	LDA	#$02
	STA	SOUND
	LDA	#$80
	STA	SOUNDLP2
	LDA	#$0F
	STA	SOUNDLP1
NXTPLRGGO	JMP	NXTPLR
PY	LDA	PY?,X
	CMP	#$FF
	BEQ	NXTPLR
	LDA	#$0F
	STA	SOUNDLP1
	LDA	#$E0
	STA	SOUNDLP2
	LDA	#$04
	STA	SOUND
	LDA	#$FF
	STA	PY?,X
NXTPLR	INX
	CPX	#$02
	BNE	J45
ENDVRT	LDA	#$FF
	STA	$D01E
	JSR	TIMERCLR
	JMP	$E45F
;
ISPYD?	LDA	#$00
	STA	MOVPLR?
	INC	PARALYZCNT,X
	LDA	PARALYZCNT,X
	CMP	PY?,X
	BNE	BYE
	LSR	PY?,X
	LDA	#$00
	STA	PARALYZCNT,X
	LDA	PY?,X
	CMP	#$01
	BNE	J46
	DEC	PY?,X
J46	INC	MOVPLR?
BYE	RTS
;
DOBOXES	LDA	#$1E
	STA	L1
	LDA	#$43
	STA	L2
	LDX	#$04
J47	JSR	DOBOX
	DEX
	BNE	J47
	INX
J48	JSR	ADD240TOL
	INX
	CPX	#$04
	BNE	J48
J49	JSR	DOBOX
	DEX
	BNE	J49
	LDX	#$07
J50	LDA	CLRLIST2,X
	STA	CLRLIST,X
	DEX
	BPL	J50
	RTS
DOBOX	LDY	#$00
	LDA	MOVCNTR
	BNE	PLOTBOX
	LDA	#$A8
PLOTBOX	AND	#$A8
	STA	(L1),Y
	LDY	#$28
	STA	(L1),Y
	LDY	#$50
	STA	(L1),Y
ADD240TOL	CLC
	LDA	#$F0
	ADC	L1
	BCC	J51
	INC	L2
J51	STA	L1
	RTS
;
DLI	PHA
	TYA
	PHA
	LDY	COLRCT
	LDA	CLRLIST,Y
	STA	$D40A
	STA	$D017
	INY
	CPY	#$08
	BNE	J52
	LDY	#$00
J52	STY	COLRCT
	PLA
	TAY
	PLA
	RTI
;
SETUPPLS	LDX	#$30
J53	LDA	DATALIST,X
	STA	$0660,X
	DEX
	BPL	J53
	RTS
;
SCREENLIST	LDY	#$00
J54	LDA	DLISTDATA,Y
	STA	$8000,Y
	INY
	CPY	#$0D
	BNE	J54
	TYA
J55	STA	$8000,Y
	INY
	CPY	#$6A
	BNE	J55
	LDA	#$41
	STA	$8000,Y
	INY
	LDA	#$00
	STA	$8000,Y
	INY
	LDA	#$3F
	STA	$8000,Y
	LDY	#$15
	LDX	#$04
J56	LDA	#$8D
	STA	$8000,Y
	STA	$8029,Y
	TYA
	CLC
	ADC	#$06
	TAY
	DEX
	BNE	J56
	RTS
;
ENSETUP	LDX	#$0F
J57	LDA	#$68
	STA	$0600,X
	LDA	#$4F
	STA	$0610,X
	LDA	#$0A
	STA	$0620,X
	LDA	#$06
	STA	$0630,X
	LDA	#$40
	STA	$0640,X
	LDA	#$00
	STA	$0650,X
	DEX
	BPL	J57
	RTS
;
SCREENCLR	LDY	#$00
	LDA	#$00
J58	STA	$7800,Y
	STA	$7900,Y
	STA	$7A00,Y
	STA	$7B00,Y
	INY
	BNE	J58
	LDA	#$01
	STA	$7A14
	STA	$7A15
	STA	$7A94
	STA	$7A95
	LDA	#$28
	STA	$D000
	STA	$D001
	RTS
;
TIMERCLR	LDX	#$04
J59	INC	TM,X
	LDA	TM,X
	CMP	#$0A
	BNE	J60
	LDA	#$00
	STA	TM,X
	DEX
	CPX	#$00
	BNE	J59
J60	LDX	#$03
J61	LDA	TM,X
	CLC
	ROL	A
	ROL	A
	ADC	#$6D
	TAY
J62	LDA	BYTES,Y
	STA	TMSCREEN,X
	JSR	TIADD40TOX
	INY
	TXA
	SEC
	SBC	#$9F
	BCC	J62
	TXA
	AND	#$03
	TAX
	DEX
	CPX	#$00
	BNE	J61
	LDX	#$03
J63	LDA	TM,X
	CMP	#$09
	BNE	BYETM
	DEX
	BNE	J63
	LDA	LMT
	CMP	#$61
	BNE	BYETM
	LDA	#$01
	STA	KILL?
	STA	KILL?+1
	LDA	#$06
	STA	SOUND
	LDA	#$00
	STA	SOUNDLP2
	LDA	#$28
	STA	SOUNDLP1
BYETM	JMP	DOSOUND
TIADD40TOX	TXA
	ADC	#$28
	TAX
	RTS
;
CAPTENEMY?	LDX	#$01
J65	LDY	#$03
J66	LDA	PLRX,X
	EOR	ENX,Y
	AND	#$FE
	BNE	EXITLOOP
	LDA	PLRY,X
	EOR	ENY,Y
	AND	#$FE
	BNE	EXITLOOP
	STY	TMP1
	TYA
	CPX	#$00
	BEQ	J67
	CLC
	ADC	#$04
J67	TAY
	LDA	CLRLIST,Y
	BEQ	BLANK
	LDA	#$00
	STA	CLRLIST,Y
	DEC	CAUGHT,X
	LDA	#$0F
	STA	SOUNDLP1
	LDA	#$00
	STA	SOUNDLP2
	LDA	#$03
	STA	SOUND
BLANK	LDY	TMP1
EXITLOOP	DEY
	BPL	J66
	DEX
	BEQ	J65
	RTS
;
DOSOUND	LDA	SOUND
	BEQ	BYESOUND
	CMP	#$02
	BEQ	SOUND2
	CMP	#$03
	BEQ	SOUND3
	CMP	#$04
	BEQ	SOUND4
	CMP	#$05
	BNE	K8
	JMP	SOUND5
K8	CMP	#$06
	BNE	K9
	JMP	SOUND6
K9	LDX	LOUD
	DEX
	STX	LOUD
	LDA	#$F0
	STA	$D200
	TXA
	CLC
	ADC	#$A0
	STA	$D201
	CPX	#$00
	BNE	BYESOUND
	STX	SOUND
	LDA	#$10
	STA	LOUD
BYESOUND	RTS
SOUND2	LDA	#$20
	JSR	J71
	LDA	SOUNDLP2
	SBC	#$08
	BCS	CONTSND2
	LDX	SOUNDLP1
	DEX
	BMI	BYESOUND2
	STX	SOUNDLP1
	LDA	#$80
CONTSND2	STA	SOUNDLP2
	RTS
BYESOUND2	LDA	#$00
	STA	SOUND
	RTS
SOUND3	LDA	#$A0
	JSR	J71
	LDA	SOUNDLP2
	CLC
	ADC	#$20
	BCC	CONTSND2
	LDX	SOUNDLP1
	DEX
	DEX
	BMI	ENDSOUND
	STX	SOUNDLP1
	LDA	#$00
	STA	SOUNDLP2
	RTS
ENDSOUND	LDA	#$A0
	STA	$D201
	JMP	BYESOUND2
SOUND4	LDA	#$40
	JSR	J71
	LDA	SOUNDLP2
	SEC
	SBC	#$20
	BCS	CONTSND2
	LDX	SOUNDLP1
	DEX
	BMI	BYESOUND2
	STX	SOUNDLP1
	LDA	#$E0
	STA	SOUNDLP2
	RTS
SOUND5	LDA	#$A0
	JSR	J71
	LDA	SOUNDLP2
	CLC
	ADC	#$20
	BCC	J68
	LDX	SOUNDLP1
	DEX
	BMI	BYESOUND2
	STX	SOUNDLP1
	TXA
	ASL	A
J68	STA	SOUNDLP2
	RTS
SOUND6	LDA	#$6E
	STA	$D201
	LDA	SOUNDLP1
	STA	$D200
	LDX	SOUNDLP2
	INX
	CPX	#$3C
	BNE	J70
	LDA	SOUNDLP1
	CMP	#$3C
	BNE	J69
	LDA	#$A0
	STA	$D201
	JMP	BYESOUND2
J69	LDA	#$3C
	STA	SOUNDLP1
	LDX	#$00
J70	STX	SOUNDLP2
	RTS
J71	CLC
	ADC	SOUNDLP1
	STA	$D201
	LDA	SOUNDLP2
	STA	$D200
	RTS
;
VCTRSET	LDA	#PAUSVCTR&255
	STA	VVBLKI
	LDA	#PAUSVCTR/256
	STA	VVBLKI+1
	LDA	#$FF
	STA	$02FC
	LDA	#$A0
	STA	$D201
PAUSVCTR	LDA	#$00
	STA	$02C4
	LDA	MOVCNTR
	BNE	WY
	JSR	TRANSFER
WY	LDA	$02FC
	CMP	#$FF
	BEQ	GD
	LDA	#$FF
	STA	$02FC
	LDA	#VRTBLNK&255
	STA	VVBLKI
	LDA	#VRTBLNK/256
	STA	VVBLKI+1
	LDA	#$FF
	STA	$D01E
	LDA	MOVCNTR+1
	BNE	GD
	LDA	#$96
	STA	$02C4
GD	JMP	$E45F
;
TRU	LDA	FP?
	BEQ	TRU2
	JSR	TRANSFER
TRU2	JMP	$E462
;
VRTWAIT	LDA	MOVCNTR
	BNE	VRTWAIT3
	JSR	TRANSFER
VRTWAIT3	JSR	DOSOUND
	JMP	$E45F
;
LIST	.BYTE	211,65,44,45,46,47,48,37,26,26,26
	.BYTE	200,4,1,19,22,23,20,6,26,26
	.BYTE	200,19,1,20,1,12,24,25,6,26
	.BYTE	200,11,51,52,53,26,26,26,26,26
	.BYTE	24,38,39,40,41,42,43,22,24,37
	.BYTE	200,4,12,6,1,20,26,26,26,26
	.BYTE	200,2,3,1,4,11,18,23,22,26
	.BYTE	200,7,12,1,21,8,6,21,26,26
	.BYTE	24,6,13,14,15,16,17,37,27,28
	.BYTE	24,21,19,6,6,5,37,26,26,26
	.BYTE	200,6,13,14,15,16,17,37,28,26
	.BYTE	200,19,12,1,24,6,20,28,37,28
	.BYTE	200,19,12,1,24,6,20,29,37,28
	.BYTE	24,12,9,10,49,50,37,24,26,26
	.BYTE	24,22,9,10,6,20,37,27,27,27
;
BYTES	.BYTE	0,48,204,252,204,48,204,252,204
	.BYTE	240,207,243,252,48,48,48,60
	.BYTE	252,192,192,252,240,204,204,240
	.BYTE	252,240,192,252,252,240,192,192
	.BYTE	204,252,204,204,207,207,204,204
	.BYTE	60,252,204,12,204,240,240,204
	.BYTE	192,192,192,252,243,243,207,207
	.BYTE	63,60,48,63,60,63,51,48
	.BYTE	243,243,48,48,48,240,192,192
	.BYTE	252,204,204,252,252,204,252,192
	.BYTE	252,204,240,204,252,240,12,252
	.BYTE	252,48,48,48,204,204,204,252
	.BYTE	204,252,48,48,252,60,192,252
	.BYTE	0,0,0,0,252,204,204,252
	.BYTE	48,240,48,252,252,60,192,252
	.BYTE	252,60,12,252,192,204,252,12
	.BYTE	252,240,12,252,252,192,252,252
	.BYTE	252,12,48,192
	.BYTE	252,204,252,252,252,204,252,12
	.BYTE	0,48,0,48,204,204,252,48
	.BYTE	207,207,192,207,204,12,204,204
	.BYTE	240,207,243,252,51,51,51,51
	.BYTE	12,12,12,204,255,192,207,255
	.BYTE	12,51,63,51,60,63,51,48
	.BYTE	243,243,51,51,240,192,0,240
	.BYTE	207,195,195,195,192,0,0,0
	.BYTE	204,204,204,207,12,12,12,207,0,0,0,192
;
MESSAGE	.BYTE	255,255,255,60,60,15,240,63,252,63,252,63,240,60,60,60,60,60,60,63,252,63,240,0,48,0,0,243,195
	.BYTE	15,207,192,252,252,195,51,204,255,255,255
	.BYTE	0,0,0,63,252,60,60,0,252,63,240,60,60,60,60,63,60,63,60,63,240,60,60,0,60,204,0,204,204,195
	.BYTE	3,0,240,204,195,51,204,0,0,0
	.BYTE	0,0,0,51,204,63,252,63,0,60,0,63,192,60,60,60,252,60,252,60,0,63,192,0,60,48,0,204,207,195,3,0,192
	.BYTE	240,195,51,60,0,0,0
	.BYTE	0,0,0,48,12,60,60,63,252,63,252,60,60,63,252,60,60,60,60,63,252,60,60,0,0,240,0,192,204,195,3,0,192
	.BYTE	204,60,51,60,0,0,0
;
CLRLIST2	.BYTE	$68,$46,$16,$76,$68,$46,$16,$76
DATALIST	.BYTE	145,145,65,65,19,19,40,40,0,0,64,64,0,0,0,0
	.BYTE	167,124,81,103,65,72,79,79,19,63,107,107,128,84,40,128
	.BYTE	0,0,0,0,64,64,64,64,0,0,106,72,24,120
DLISTDATA	.BYTE	112,112,112,78,0,64,14,14,14,0,77,64,65
LTS	.BYTE	0,0,220,65,76,69,188,72,156,74,100,75,44,76,68,77,0,0,163,107,51,19,219,163,66,67,68,70,70,71
LTS2	.BYTE	0,1,1,1,1
BLIPS	.BYTE	163,18,218,66,70,65,$3C,$3C,$FF
	*=	$02E0
	.WORD	RESET