A.N.A.L.O.G. ISSUE 72 / MAY 1989 / PAGE 75

Crazy Clown Jumper

Brad Timmons

It’s audition night at one of the toughest circuses in the world. You’ve heard the circus is looking for a clown, but not just any clown, they want someone who is also an acrobatic expert! The audition is simple enough.

Standing on a 100-foot-high platform, you must jump across numerous rising balloons to get to a platform on the other side of the circus tent, and when you get there, you have to try to make it back again—but don’t fall, because this circus doesn’t use nets.

The game starts with you, the clown, standing on the platform at the left side of the screen. You must jump from balloon to balloon to get to the platform on the right side of the screen, then make it back to the platform on the left again. You control the clown with a joystick. To move left or right, simply move the joystick in the corresponding direction. To jump, press the fire button, and move the joystick in the direction you wish to jump.

You have a choice of a short jump or a long jump. For a short jump press the fire button, and move the joystick either left or right. For a long jump, press the fire button, and move the joystick either diagonal right or diagonal left. When you land on a balloon, you can jump off, drop off the side to a balloon below you or just stand there and enjoy the ride to the top of the screen.

A status line at the top of the screen displays your score, the level you are currently on, and the number of clowns you have remaining. You get 500 points for each level you complete. Also, a bonus dollar sign will occasionally rise up on one of the balloons. Touching it gives you a 100-point bonus.

Crazy Clown Jumper has nine levels of difficulty. You’ll advance in level every time you make it completely around. That is, jumping from the left platform to the right. then back again. At Level 2, the platforms will begin to slowly rise and fall. At Level 3, they’ll also begin to expand and contract. The speed of the balloons and platforms will increase as you progress to higher levels, and the number of balloons appearing on screen will decrease.

You begin the game with four men. If you make it to Level 6, you’ll gain an extra man.

Listing 1: M/L Editor Data

1000 DATA 255,255,0,64,171,76,32,136,68,32,147,68,162,143,169,0,4652
1010 DATA 149,0,232,208,251,32,181,68,32,219,69,169,10,141,200,2,6346
1020 DATA 169,130,141,196,2,169,10,141,198,2,169,68,141,197,2,169,6680
1030 DATA 248,141,199,2,160,2,169,0,145,88,32,129,74,32,109,66,2346
1040 DATA 32,20,75,32,228,67,169,16,141,111,2,169,0,141,8,210,4201
1050 DATA 169,3,141,15,210,169,16,133,137,169,80,133,138,169,9,133,6770
1060 DATA 175,32,18,73,169,0,32,105,69,165,196,240,11,198,175,208,9729
1070 DATA 7,169,9,133,175,32,71,73,165,180,240,3,32,252,71,165,7732
1080 DATA 191,240,3,32,89,66,165,190,240,20,201,4,208,5,169,0,5332
1090 DATA 76,80,67,201,8,208,5,169,1,76,80,67,208,6,165,188,5730
1100 DATA 240,2,208,34,230,192,32,131,65,169,2,32,254,68,165,192,8160
1110 DATA 201,60,240,2,208,179,169,0,141,0,210,141,1,210,133,165,8315
1120 DATA 32,91,72,76,94,64,165,188,201,4,240,216,165,165,208,9,167
1130 DATA 165,192,201,5,144,3,32,51,66,165,162,240,18,169,3,32,3735
1140 DATA 254,68,169,0,133,192,133,162,173,148,75,201,41,144,181,165,259
1150 DATA 196,240,13,165,190,240,9,169,1,32,254,68,169,0,133,192,7533
1160 DATA 173,132,2,240,72,173,120,2,201,15,208,3,76,99,64,201,5650
1170 DATA 7,208,27,32,131,65,165,188,240,5,169,3,32,254,68,173,7371
1180 DATA 147,75,201,205,240,36,169,2,32,105,69,76,99,64,201,11,3898
1190 DATA 208,24,32,131,65,165,188,240,5,169,3,32,254,68,173,147,7970
1200 DATA 75,201,45,240,5,169,1,32,105,69,76,99,64,173,120,2,2819
1210 DATA 201,11,208,10,169,32,133,194,169,9,133,204,208,92,201,7,8258
1220 DATA 208,8,169,0,133,194,133,204,240,80,201,10,208,10,169,128,9061
1230 DATA 133,194,169,27,133,204,208,66,201,6,208,10,169,64,133,194,8708
1240 DATA 169,18,133,204,208,52,76,99,64,162,0,160,0,200,208,253,9420
1250 DATA 165,180,240,7,134,149,32,252,71,166,149,165,196,240,7,134,402
1260 DATA 149,32,71,73,166,149,232,224,9,208,226,96,24,165,132,105,9199
1270 DATA 20,133,132,165,133,105,0,133,133,96,169,3,133,195,164,204,9206
1280 DATA 185,191,75,133,206,200,185,191,75,133,207,200,185,191,75,133,2671
1290 DATA 208,165,196,240,3,32,71,73,165,180,240,3,32,252,71,165,8274
1300 DATA 207,32,254,68,173,147,75,201,45,208,3,76,158,64,173,147,7812
1310 DATA 75,201,205,208,3,76,158,64,165,208,32,105,69,165,190,240,397
1320 DATA 18,201,4,208,5,169,0,76,80,67,201,8,208,19,169,1,3449
1330 DATA 76,80,67,165,188,240,10,165,165,208,3,32,51,66,76,192,5978
1340 DATA 64,165,191,240,3,32,89,66,198,206,208,165,230,204,230,204,5295
1350 DATA 230,204,198,195,208,136,76,99,64,169,1,133,165,169,180,141,9882
1360 DATA 0,210,169,175,141,1,210,133,177,169,15,133,176,96,169,1,7459
1370 DATA 133,164,169,250,133,178,141,2,210,169,239,141,3,210,96,32,8906
1380 DATA 72,66,32,8,72,169,100,133,152,169,0,133,153,133,191,32,6732
1390 DATA 223,72,96,169,1,133,166,169,0,133,169,133,167,165,170,240,1694
1400 DATA 252,169,0,133,170,169,1,133,169,165,170,240,252,169,1,133,1163
1410 DATA 167,169,0,133,166,169,44,141,198,2,160,0,185,138,76,145,7086
1420 DATA 88,200,192,34,208,246,173,132,2,208,251,169,0,133,167,133,785
1430 DATA 161,32,228,67,32,18,73,96,32,8,72,169,1,133,161,173,4400
1440 DATA 135,75,201,1,208,249,169,1,133,166,133,169,169,0,133,200,9797
1450 DATA 133,199,165,199,201,4,208,250,169,1,133,171,165,199,201,5,829
1460 DATA 208,250,169,0,133,171,165,199,201,23,208,250,169,0,133,166,1288
1470 DATA 133,169,169,1,133,167,160,0,169,3,141,141,75,141,189,75,7017
1480 DATA 169,130,141,149,75,141,150,75,169,180,141,152,75,169,0,133,7964
1490 DATA 128,169,102,133,129,162,2,32,204,69,169,1,133,173,141,177,8176
1500 DATA 75,32,193,74,169,17,141,186,75,169,32,141,188,75,169,0,6374
1510 DATA 133,196,133,185,133,186,141,176,75,169,100,141,153,75,169,255,2161
1520 DATA 141,184,75,141,185,75,169,10,141,154,75,169,0,133,156,133,7448
1530 DATA 157,133,158,76,148,66,170,169,0,133,192,138,240,22,169,3,7518
1540 DATA 205,190,75,240,3,76,233,64,230,197,208,0,169,2,141,190,9632
1550 DATA 75,76,233,64,169,2,205,190,75,240,3,76,233,64,230,197,1091
1560 DATA 165,197,201,2,240,2,208,36,169,0,133,197,238,186,75,173,625
1570 DATA 186,75,201,26,208,5,206,186,75,208,17,32,174,67,32,13,3827
1580 DATA 68,169,244,133,152,169,1,133,153,32,223,72,169,3,141,190,8503
1590 DATA 75,76,233,64,160,0,185,11,76,145,88,200,192,40,208,246,569
1600 DATA 206,186,75,160,17,173,186,75,145,88,169,1,133,161,32,8,4715
1610 DATA 72,169,15,133,198,160,0,162,0,200,208,253,232,208,250,198,6013
1620 DATA 198,208,246,238,186,75,169,0,133,161,160,0,185,227,75,145,82
1630 DATA 88,200,192,40,208,246,172,187,75,173,186,75,145,88,173,189,2157
1640 DATA 75,240,15,162,0,160,30,169,3,145,88,200,232,236,189,75,610
1650 DATA 208,247,96,173,186,75,201,17,240,42,201,18,208,5,169,1,6587
1660 DATA 133,196,96,201,19,208,13,206,141,75,169,1,133,185,133,186,9539
1670 DATA 32,105,68,96,201,20,208,4,32,105,68,96,201,21,208,4,4442
1680 DATA 32,105,68,96,201,22,208,16,32,105,68,206,141,75,238,189,9266
1690 DATA 75,238,188,75,32,248,67,96,201,23,208,3,32,105,68,201,6475
1700 DATA 24,208,4,32,105,68,96,201,25,208,3,32,105,68,96,56,2868
1710 DATA 173,184,75,233,25,141,184,75,141,185,75,56,173,153,75,233,127
1720 DATA 5,141,153,75,24,173,154,75,105,10,141,154,75,96,162,96,6331
1730 DATA 169,12,157,66,3,32,86,228,96,162,96,169,3,157,66,3,4134
1740 DATA 169,12,157,74,3,169,0,157,75,3,169,178,157,68,3,169,5427
1750 DATA 68,157,69,3,32,86,228,96,83,58,155,169,0,133,128,169,6937
1760 DATA 80,133,129,169,0,133,130,169,224,133,131,160,0,162,2,177,8066
1770 DATA 130,145,128,200,208,249,230,129,230,131,202,208,242,169,8,133,4408
1780 DATA 128,169,80,133,129,160,0,185,58,75,145,128,200,192,16,208,9362
1790 DATA 246,162,0,189,98,75,145,128,200,232,224,8,208,245,169,80,2724
1800 DATA 141,244,2,96,201,0,240,101,201,1,240,15,201,2,240,50,7992
1810 DATA 201,3,208,6,169,1,133,163,208,1,96,172,148,75,162,12,6349
1820 DATA 177,139,136,145,139,200,200,202,208,246,24,173,148,75,105,10,9555
1830 DATA 168,162,4,177,141,136,145,141,200,200,202,208,246,206,148,75,4726
1840 DATA 208,84,24,173,148,75,105,11,168,162,12,177,139,200,145,139,9387
1850 DATA 136,136,202,208,246,24,173,148,75,105,13,168,162,4,177,141,8422
1860 DATA 200,145,141,136,136,202,208,246,238,148,75,208,41,240,39,201,3270
1870 DATA 0,240,35,201,1,240,5,201,2,240,15,96,206,147,75,173,8711
1880 DATA 147,75,141,0,208,141,1,208,208,12,238,147,75,173,147,75,9333
1890 DATA 141,0,208,141,1,208,165,163,240,5,169,0,133,163,96,32,6963
1900 DATA 131,65,169,0,133,190,133,188,173,13,208,133,190,173,5,208,774
1910 DATA 133,188,162,0,189,8,208,240,4,133,191,208,5,232,224,4,9974
1920 DATA 208,242,169,0,141,30,208,96,169,0,133,128,169,100,133,129,8404
1930 DATA 162,2,160,0,169,0,145,128,200,208,251,230,129,202,208,246,6422
1940 DATA 96,160,11,162,70,169,7,32,92,228,173,48,2,133,128,173,6869
1950 DATA 49,2,133,129,160,6,169,0,145,128,200,145,128,160,8,169,8190
1960 DATA 38,145,128,200,192,29,208,249,165,88,133,132,165,89,133,133,980
1970 DATA 96,165,167,240,3,76,249,71,206,140,75,208,27,169,0,133,8059
1980 DATA 77,173,141,75,141,140,75,169,1,133,147,133,162,230,202,165,2096
1990 DATA 202,201,8,240,6,141,5,212,76,194,71,32,166,65,32,166,6178
2000 DATA 65,165,132,133,135,165,133,133,136,169,0,133,202,141,5,212,9560
2010 DATA 32,166,65,160,0,162,0,177,132,145,135,200,192,20,208,247,1968
2020 DATA 24,165,135,105,20,133,135,165,136,105,0,133,136,32,166,65,5978
2030 DATA 160,0,232,224,22,208,224,165,171,240,2,208,82,165,166,240,4191
2040 DATA 94,165,169,208,49,160,0,166,200,189,62,76,201,128,240,7,9737
2050 DATA 145,135,200,230,200,208,240,192,0,208,10,169,0,168,145,135,354
2060 DATA 200,192,20,208,249,230,199,230,200,165,199,201,7,208,4,169,3212
2070 DATA 1,133,170,76,186,71,160,0,169,0,145,135,200,192,20,208,9279
2080 DATA 249,230,199,165,199,201,20,208,234,169,1,133,170,208,228,160,4556
2090 DATA 0,185,124,76,145,135,200,192,14,208,246,230,199,208,212,206,7254
2100 DATA 135,75,240,3,76,100,71,173,142,75,16,19,169,4,133,160,5218
2110 DATA 169,16,133,159,173,142,75,73,128,141,142,75,76,9,71,169,6079
2120 DATA 5,133,160,169,17,133,159,173,142,75,73,128,141,142,75,162,8832
2130 DATA 0,169,0,157,0,6,232,224,40,208,248,164,160,173,10,210,1696
2140 DATA 205,153,75,176,54,173,10,210,41,3,170,189,143,75,153,0,6379
2150 DATA 6,169,130,153,20,6,169,0,153,40,6,165,180,208,28,165,6950
2160 DATA 161,208,24,173,10,210,205,154,75,176,16,185,155,75,133,182,281
2170 DATA 169,1,133,180,132,146,32,52,72,164,146,200,200,196,159,208,2987
2180 DATA 188,169,0,133,201,169,3,141,135,75,166,201,160,0,189,0,7524
2190 DATA 6,145,135,200,232,192,20,208,245,24,165,201,105,20,133,201,1335
2200 DATA 206,137,75,208,59,169,5,141,137,75,166,203,160,0,189,66,8425
2210 DATA 75,145,137,232,200,192,8,208,245,173,134,75,201,0,240,18,596
2220 DATA 165,203,201,24,240,7,24,105,8,133,203,16,19,206,134,75,5908
2230 DATA 240,14,165,203,240,7,56,233,8,133,203,16,3,238,134,75,7711
2240 DATA 165,88,133,132,165,89,133,133,165,165,240,28,198,176,240,14,1835
2250 DATA 165,177,41,240,5,176,141,1,210,133,177,76,226,71,169,0,8474
2260 DATA 141,0,210,141,1,210,133,165,165,164,240,19,56,165,178,233,2540
2270 DATA 10,133,178,141,2,210,208,7,169,0,133,164,141,3,210,76,7619
2280 DATA 98,228,165,147,240,28,198,181,165,181,201,40,208,21,169,0,9638
2290 DATA 133,180,169,0,133,128,169,99,133,129,160,0,152,145,128,200,71
2300 DATA 208,251,96,169,13,141,175,75,164,181,169,0,133,128,169,99,9495
2310 DATA 133,129,32,253,73,169,0,133,147,96,169,0,133,128,169,99,8034
2320 DATA 133,129,160,208,132,181,162,0,189,51,76,145,128,200,232,224,3218
2330 DATA 11,208,245,164,182,162,4,152,157,3,208,200,200,202,208,247,5905
2340 DATA 96,172,148,75,162,0,189,122,75,145,139,200,232,224,12,208,2347
2350 DATA 245,169,175,141,1,210,169,0,133,168,32,131,65,169,2,32,5024
2360 DATA 254,68,230,168,165,168,141,0,210,173,148,75,201,250,208,234,6057
2370 DATA 169,0,172,188,75,145,88,206,188,75,206,189,75,173,189,75,1724
2380 DATA 201,255,208,13,169,0,141,0,210,141,1,210,133,191,32,178,9161
2390 DATA 66,169,65,141,147,75,56,173,149,75,233,12,141,148,75,169,9046
2400 DATA 0,133,197,133,192,169,3,141,190,75,133,183,169,45,141,151,389
2410 DATA 75,32,194,69,32,232,74,32,20,75,169,0,141,1,210,141,5775
2420 DATA 0,210,133,191,96,169,0,133,150,133,151,162,15,24,6,152,5899
2430 DATA 38,153,248,165,150,101,150,133,150,165,151,101,151,133,151,216,3067
2440 DATA 202,16,235,24,248,165,150,101,158,133,158,165,157,101,151,133,1881
2450 DATA 157,165,156,105,0,133,156,216,172,139,75,136,162,0,200,181,840
2460 DATA 156,72,41,240,74,74,74,74,9,16,145,88,104,41,15,9,954
2470 DATA 16,200,145,88,232,224,3,208,229,172,139,75,162,3,177,88,283
2480 DATA 201,16,208,8,169,0,145,88,200,202,208,242,96,206,182,75,3007
2490 DATA 208,86,169,0,133,128,169,102,133,129,173,184,75,141,182,75,286
2500 DATA 173,176,75,240,37,238,149,75,173,149,75,201,200,208,7,169,2071
2510 DATA 0,141,176,75,240,234,24,173,149,75,105,3,168,32,11,74,5039
2520 DATA 165,185,240,3,32,25,74,76,162,73,206,149,75,173,149,75,8297
2530 DATA 201,50,208,7,169,1,141,176,75,208,197,172,149,75,32,253,1230
2540 DATA 73,165,185,240,3,32,25,74,206,183,75,240,1,96,173,185,9733
2550 DATA 75,141,183,75,169,0,133,128,169,103,133,129,173,177,75,240,1810
2560 DATA 35,238,150,75,173,150,75,201,200,208,7,169,0,141,177,75,9533
2570 DATA 240,234,24,173,150,75,105,3,168,32,11,74,165,186,240,3,7239
2580 DATA 32,77,74,96,206,150,75,173,150,75,201,50,208,7,169,1,7475
2590 DATA 141,177,75,208,199,172,150,75,32,253,73,165,186,240,3,32,9755
2600 DATA 77,74,96,174,175,75,177,128,136,145,128,200,200,202,208,246,6363
2610 DATA 96,162,6,136,177,128,200,145,128,136,136,202,208,246,96,206,5121
2620 DATA 180,75,240,1,96,173,178,75,141,180,75,165,183,240,20,238,2759
2630 DATA 151,75,173,151,75,201,46,208,6,169,0,133,183,240,236,141,2496
2640 DATA 2,208,96,206,151,75,173,151,75,201,19,208,242,169,1,133,839
2650 DATA 183,208,216,206,181,75,240,1,96,173,179,75,141,181,75,165,1359
2660 DATA 184,240,20,206,152,75,173,152,75,201,179,208,6,169,0,133,9567
2670 DATA 184,240,236,141,3,208,96,238,152,75,173,152,75,201,201,208,4422
2680 DATA 242,169,1,133,184,208,216,169,96,141,7,212,169,3,141,29,8540
2690 DATA 208,169,62,141,47,2,169,0,133,128,169,99,133,129,160,0,6875
2700 DATA 162,6,152,145,128,200,208,251,230,129,202,208,246,169,0,133,4984
2710 DATA 139,169,100,133,140,169,0,133,141,169,101,133,142,169,70,141,9981
2720 DATA 192,2,169,132,141,193,2,169,0,133,128,169,102,133,129,172,9821
2730 DATA 149,75,162,3,169,255,145,128,200,202,208,250,230,129,172,150,6825
2740 DATA 75,162,3,145,128,200,202,208,250,165,173,240,1,96,172,148,3634
2750 DATA 75,162,0,189,106,75,145,139,200,232,224,12,208,245,136,136,4090
2760 DATA 189,106,75,145,141,200,232,224,16,208,245,169,0,141,0,208,1536
2770 DATA 141,1,208,141,2,208,141,3,208,96,173,147,75,141,0,208,9146
2780 DATA 141,1,208,173,151,75,141,2,208,173,152,75,141,3,208,169,320
2790 DATA 3,141,10,208,141,11,208,169,118,141,194,2,141,195,2,96,8275
2800 DATA 60,126,255,255,251,243,126,24,24,24,48,48,96,192,96,48,6388
2810 DATA 24,48,24,48,24,48,96,48,24,12,24,12,24,12,6,12,6164
2820 DATA 24,12,12,12,6,3,6,12,24,36,24,126,153,60,36,102,491
2830 DATA 0,24,36,24,126,231,189,165,60,60,102,0,0,102,102,0,2961
2840 DATA 0,24,165,153,255,102,60,36,60,60,102,0,1,1,0,5,8959
2850 DATA 0,8,3,3,128,1,65,1,193,65,108,130,130,45,180,100,5751
2860 DATA 10,0,0,0,0,80,88,96,104,112,120,128,136,144,152,160,8270
2870 DATA 168,176,0,0,0,13,0,1,10,10,10,10,255,255,255,255,8686
2880 DATA 17,22,32,3,3,4,1,2,8,0,2,4,2,2,4,1,3383
2890 DATA 1,8,0,1,4,2,1,12,1,2,8,0,2,12,2,2,3419
2900 DATA 12,1,1,8,0,1,12,2,1,0,0,51,35,47,50,37,6131
2910 DATA 26,0,0,0,0,0,0,0,0,44,37,54,37,44,0,0,5528
2920 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2920
2930 DATA 0,0,0,0,0,0,0,10,10,10,10,0,44,37,54,37,5802
2940 DATA 44,0,0,0,35,47,45,48,44,37,52,37,36,0,10,10,6700
2950 DATA 10,10,0,0,0,0,0,0,0,24,24,60,102,48,24,12,6754
2960 DATA 102,60,24,24,0,0,0,0,35,50,33,58,57,0,35,44,7194
2970 DATA 47,55,46,128,128,0,0,0,0,0,0,0,42,53,45,48,7148
2980 DATA 37,50,128,128,0,0,0,0,0,0,0,0,0,34,57,128,7392
2990 DATA 128,0,0,0,0,34,50,33,36,0,52,41,45,45,41,46,7890
3000 DATA 51,128,0,0,0,0,0,39,33,45,37,0,47,54,37,50,7495
3010 DATA 0,0,0,0,0,48,50,37,51,51,0,52,40,37,0,38,7183
3020 DATA 41,50,37,34,53,52,52,47,46,0,52,47,0,51,52,33,8297
3030 DATA 50,52,226,2,227,2,0,64,0,0,0,0,0,0,0,0,5529

Listing 2: Assembly

 ;----------------------------------
 ;SOURCE CODE: CRAZY CLOWN JUMPER
 ;----------------------------------
 ;MAIN FILE
 ;----------------------------------
 ;WRITTEN FOR THE MACRO ASSEMBLER
 ;----------------------------------
 
 ORG $4000
 
OPEN: = $03
CLOSE: = $0C
GETREC: = $05
PUTREC: = $09
EOL: = $9B
ICCOM: = $342
ICSTA: = $343
ICBAL: = $344
ICBAH: = $345
ICPTL: = $346
ICPTH: = $347
ICBLL: = $348
ICBLH: = $349
AUX1: = $34A
AUX2: = $34B
CIOV: = $E456
 
 ;MISC. EQUATES
 
RAMSET: = $5000
ROMSET: = 57344
SCREEN: = 132
VSCROL: = $D405
SETVBV: = $E45C
XITVBV: = $E462
DLIST: = 560
COLOR0: = 708
COLOR1: = COLOR0+1
COLOR2: = COLOR1+1
COLOR3: = COLOR2+1
COLOR4: = COLOR3+1
BX: = 135
TAILAD: = 137
RANDOM: = $D20A
STICK0: = 632
STRIG0: = 644
WORKP: = 128
 
 ;PLAYER-MISSILE EQUATES
 
PMBASE: = $6000
PMI: = PMBASE+768
PM0: = PMBASE+1024
PM1: = PM0+256
PM2: = PM1+256
PM3: = PM2+256
 
 ;HORIZONAL POSITION REGISTERS
 
HPOSP0: = 53248
HPOSP1: = 53249
HPOSP2: = 53250
HPOSP3: = 53251
 
 ;HORIZONTAL MISSILE POS. REGISTERS
 
HPOSM0: = 53252
 
 ;COLLSION REGISTERS
 ;PLAYER COLLSION WITH PLAYFEID
 
P0PF: = 53252
P1PF: = 53253

 ;PLAYER COLLSION WITH OTHER PLAYER

P0PL: = 53260
P1PL: = 53261

 ;MISSILE COLLISION WITH PLAYER

M0PL: = 53256
M1PL: = 53257
M2PL: = 53258
M3PL: = 53259

 ;MISSILE COLLISION WITH PLAYFIELD

M0PF: = 53248
M1PF: = 53249
M2PF: = 53250
M3PF: = 53251

HITCLR: = 53278

PAD0: = 139
PAD1: = 141

 ;SOUND EQUATES

AUDF1: = $D200
AUDC1: = $D201
AUDF2: = $D202
AUDC2: = $D203
AUDCTL: = $D208
SKCTL: = $D20F
 
LAB15: INCLUDE D:PAGESIX.LNK
 
 ;MAIN SET UP
 
 JSR CLOSIO
 JSR GRAPH
 
 ;PUT ZEROS IN ZERO PAGE 
 
 LDX #143
 LDA #0
ZAPL: STA 0,X
 INX
 BNE ZAPL
 
 JSR CHAR
 
 JSR LINKVBI
 
 ;SET SCREEN COLORS
 ;BACKGROUND
 
 LDA #10
 STA COLOR4
 
 ;UPPERCASE
 
 LDA #130
 STA COLOR0
 
 ;INVERSE UPPERCASE
 
 LDA #10
 STA COLOR2
 
 ;LOWERCASE
 
 LDA #64+4
 STA COLOR1
 
 ;INVERSE LOWERCASE
 
 LDA #240+8
 STA COLOR3
 
 LDY #2
 LDA #0
 STA (88),Y
 
 JSR PMINT
 JSR XSTART
 JSR CORZ
 
 JSR BOARD
 
 ;SET ENABLE FIFTH PLAYER
 
 LDA #16
 STA 623
 
 ;SET UP FOR SOUND
 
 LDA #0
 STA AUDCTL
 LDA #3
 STA SKCTL
 
 ;SET ADDRESS OF TAIL CHAR
 
 LDA #16;LOW RAMSET
 STA TAILAD
 LDA #HIGH RAMSET
 STA TAILAD+1
 
 LDA #9
 STA GFLAG5
 
 ;PRINT ZERO TO SCORE
 
 JSR PSCOR
 
QQQ: LDA #0
 JSR XMOVE
 
 ;MAIN TESTING ROUTINE
 ;TEST CLOWN TO WHAT ITS STANDING ON
 
 ;IS A JUMP IN PROGRESS?
 ;IF SO, GO TO MAIN JUMP ROUTNE
 ;IF NOT, CONTINUE LOOP
 ;IS IT ON A PLATFORM?
 ;IF IT IS, GO TEST JOYSTICK
 ;IF NOT, GO TEST FOR BALLOONS
 ;ALSO,CHECK FOR DOLLAR
 
MAINT: LDA CRITP 
 BEQ MAIN3
 
 DEC GFLAG5
 BNE MAIN3
 LDA #9
 STA GFLAG5
 
 JSR MPLM
 
 ;CHECK FOR DOLLOR
 
MAIN3: LDA DMARK
 BEQ MAIN4
 JSR CDOLL
 
MAIN4: LDA MCOLL1
 BEQ MAIN5
 
 JSR ADOLL
 
MAIN5: LDA PCOLL1
 BEQ BALTEST;GO TEST BALLOON
 CMP #4
 BNE MAIN1
 LDA #0
 JMP PLAT
MAIN1: CMP #8
 BNE MAIN2
 LDA #1
 JMP PLAT
 
MAIN2: BNE FALL
 
 ;IS HE ON A BALLOON?
 ;IF SO MOVE HIM UP AT THE SAME RATE
 ;AS THE BALLOONS
 ;IF NOT HE FALLS
 
BALTEST: LDA COLL1
 BEQ FALL
 BNE ONBALL
 
 ;CLOWN FALLING, IF CFALL REACHES
 ;60, THEN NOTHING CAN STOP IT
 
FALL: INC CFALL
 
 JSR NDELAY
 
 LDA #2
 JSR YMOVE
 
 LDA CFALL
 CMP #60
 BEQ CDEAD
 BNE MAINT
 
CDEAD: LDA #0
 STA AUDF1
 STA AUDC1
 STA TFLAG5
 JSR FDEAD
 JMP QQQ
 
 ;CLOWN IS STANDING ON A BALLOON.
 ;TEST TO SEE IF SOUND IS IN PROGRESS
 ;IF NOT,TEST FALL DURATION.IF FALL
 ;IS LONGER THEN 12 THEN START SOUND.
 ;MOVE HIM UP ONE AT SAME RATE AS
 ;THE BALLOONS, THEN SET CFALL TO 
 ;ZERO AND GO TEST THE JOYSTICK.
 ;IS STANDING ON A TAIL?
 
ONBALL: LDA COLL1
 CMP #4
 BEQ FALL
 
 LDA TFLAG5
 BNE ON1
 
 LDA CFALL
 CMP #5
 BCC ON1
 
 ;SET UP FOR SOUND EFFECT
 
 JSR XSOU1
 
ON1: LDA TFLAG2
 BEQ ST
 LDA #3
 JSR YMOVE
 
 LDA #0
 STA CFALL
 STA TFLAG2
 
 LDA CY0
 CMP #41
 BCC FALL
 
 ;TEST FIRE BUTTON IF ITS PRESSED, GO
 ;TO JUMP JOYSTICK ROUTINE. IF NOT,
 ;TEST STICK FOR NORMAL LEFT OR RIGHT
 ;MOVEMENT.
 ;IF STICK IS NOT MOVED GO TO MAIN
 ;TESTING ROUTINE
 
ST: LDA CRITP
 BEQ STJ1
 ;CHECK TO SEE IF PLATFORM IS MOVING
 LDA PCOLL1
 BEQ STJ1
 LDA #1
 JSR YMOVE
 LDA #0
 STA CFALL
 
STJ1: LDA STRIG0 
 
 BEQ JUMPST; PRESSED GO TO ROUTINE
 
 ;TEST STICK FOR NORMAL MOVEMENT
 
STJ: LDA STICK0
 CMP #15
 BNE  ST9
 JMP MAINT
 
ST9: CMP #7
 BNE ST1
 
 ;MOVE CLOWN RIGHT
 ;IF CLOWN IS ON BALLOON MOVE UP
 
 JSR NDELAY
 
 LDA COLL1
 BEQ ST10
 
 LDA #3
 JSR YMOVE
 
ST10: LDA CX0
 CMP #205
 BEQ ST2
 
 LDA #2
 JSR XMOVE
 JMP MAINT
 
ST1: CMP #11
 BNE ST2
 
 ;MOVE CLOWN LEFT
 
 JSR NDELAY
 
 LDA COLL1
 BEQ ST11
 
 LDA #3
 JSR YMOVE
 
ST11: LDA CX0
 CMP #45
 BEQ ST2
 
 LDA #1
 JSR XMOVE
ST2: JMP MAINT
 
 ;TEST JOYSTICK FOR THE DIRECTION
 ;IS CLOWN IS TO JUMP IN.
 
JUMPST: LDA STICK0
 CMP #11
 BNE JST1
 ;SHORT JUMP LEFT
 
 LDA #32
 STA JPOINT;SET POINTER TO 16
 LDA #9
 STA GPOINT
 BNE RJUMP
 
JST1: CMP #7
 BNE JST2
 ;SHORT JUMP RIGHT
 
 LDA #0
 STA JPOINT;SET POINTER TO 0
 STA GPOINT
 BEQ RJUMP
 
JST2: CMP #10
 BNE JST3
 ;JUMP HIGH LEFT
 
 LDA #128
 STA JPOINT
 LDA #27
 STA GPOINT
 
 BNE RJUMP
 
JST3: CMP #6
 BNE JST4
 
 ;JUMP HIGH RIGHT
 
 LDA #64
 STA JPOINT
 LDA #18
 STA GPOINT
 BNE RJUMP
 
JST4: JMP MAINT
 
 ;DELAY MOVE MOVEMENT OF CLOWN
 ;CHECK DOLLAR SIGN
 
NDELAY: LDX #0
 LDY #0
 
DEL2: INY
 BNE DEL2
 
 LDA DMARK
 BEQ DEL3
 
 STX TEMP11+1
 JSR CDOLL
 LDX TEMP11+1
 
DEL3: LDA CRITP
 BEQ DEL4
 STX TEMP11+1
 JSR MPLM
 LDX TEMP11+1
 
DEL4: INX
 CPX #9
 BNE DEL2
 RTS
 
 ;ADD 20 TO SCREEN ADDRESS
 
ADD20: CLC
 LDA SCREEN
 ADC #20
 STA SCREEN
 LDA SCREEN+1
 ADC #0
 STA SCREEN+1
 RTS
 
 ;CLOWN IS JUMPING
 ;GET LENGTH
 
RJUMP: LDA #3
 STA JMAX

RJP1: LDY GPOINT
 LDA JCORDN,Y
 STA TJUMP
 INY
 
 ;GET Y CORDINATE
 
 LDA JCORDN,Y
 STA TJUMP+1
 INY
 
 ;GET X CORDINATE
 
 LDA JCORDN,Y
 STA TJUMP+2
 
RJ: LDA CRITP
 BEQ RJ7
 JSR MPLM
 
RJ7: LDA DMARK
 BEQ RJ8
 JSR CDOLL
 
 ;DO Y CORDINATE
 
RJ8: LDA TJUMP+1
 JSR YMOVE
 
 ;STOP CLOWN FROM JUMPING OUT OF
 ;BOUNDS
 
 LDA CX0
 CMP #45
 BNE RJ11
 JMP FALL
 
RJ11: LDA CX0
 CMP #205
 BNE RJ12
 JMP FALL
 
 ;DO X CORDINATE
 
RJ12:  LDA TJUMP+2
 JSR XMOVE
 
 ;CHECK FOR COLLISION 
 
 LDA PCOLL1
 BEQ RJ1
 CMP #4
 BNE RJ4
 LDA #0
 JMP PLAT
RJ4: CMP #8
 BNE RJ2
 LDA #1
 JMP PLAT
 
 ;CHECK FOR BALLOON
 
RJ1: LDA COLL1
 BEQ RJ2
 
 LDA TFLAG5
 BNE RJ9
 
 JSR XSOU1
 
RJ9: JMP ONBALL
 
RJ2: LDA MCOLL1
 BEQ RJ10
 
 JSR ADOLL
 
RJ10: DEC TJUMP
 BNE RJ
 
 INC GPOINT
 INC GPOINT
 INC GPOINT
 DEC JMAX
 BNE RJP1
 
 JMP MAINT
 
 ;SET UP FOR SOUND EFFECT
 ;CLOWN HITTING BALLOON
 
XSOU1: LDA #1
 STA TFLAG5
 LDA #180
 STA AUDF1
 LDA #160+15
 STA AUDC1
 STA SOUND1+1
 LDA #15
 STA SOUND1
 RTS
 
 ;SET UP FOR SOUND EFFECT
 ;CLOWN HITTING DOLLAR SIGN
 
XSOU2: LDA #1
 STA TFLAG4
 LDA #250
 STA SOUND2
 STA AUDF2
 LDA #224+15
 STA AUDC2
 RTS
 
 ;CLOWN HAS HIT DOLLAR SIGN DO IT
 
ADOLL: JSR XSOU2
 JSR DKILL
 
 ;DO SCORE
 
 LDA #100
 STA TEMP14
 LDA #0
 STA TEMP14+1
 STA MCOLL1
 JSR DCON
 
 RTS
 
XSTART: LDA #1
 STA TFLAG6
 LDA #0
 STA TFLAG9
 STA TFLAG7
 
 ;SCROLL UP TITLE
 
XST1: LDA FLAG10
 BEQ XST1
 
 LDA #0
 STA FLAG10
 
 ;SCROLL UP SPACES
 
 LDA #1
 STA TFLAG9
XST2: LDA FLAG10
 BEQ XST2
 
 ;WAIT FOR FIRE BUTTON TO BE PRESSED
 
 LDA #1
 STA TFLAG7
 LDA #0
 STA TFLAG6
 
 ;SET COLOR2
 
 LDA #44
 STA COLOR2
 
 ;PRINT THE MESSAGE" PRESS THE 
 ;FIREBUTTON TO START."
 
XST5: LDY #0
XST3: LDA MESS2,Y
 STA (88),Y
 INY
 CPY #34
 BNE XST3
 
 ;WAIT FOR THE FIREBUTTON TO BE PRESS
 
XST4: LDA STRIG0
 BNE XST4
 LDA #0
 STA TFLAG7
 STA TFLAG1
 JSR BOARD
 JSR PSCOR
 
 RTS
 
 ;START GAME OVER SEQUENCE
 ;KILL DOLLAR SIGN
 
GAMEO: JSR DKILL
 LDA #1
 STA TFLAG1
 
 ;WAIT FOR BALLOONS TO GET CLEAR
 
GA4: LDA RCOUNT
 CMP #1
 BNE GA4
 
 LDA #1
 STA TFLAG6
 STA TFLAG9
 LDA #0
 STA TPOINT
 STA TCOUNT
 
 ;SCROLL UP THREE FOR SPACES
 
GA1: LDA TCOUNT
 CMP #4
 BNE GA1
 
 ;PRINT"GAME OVER"
 
 LDA #1
 STA GFLAG1
GA2: LDA TCOUNT
 CMP #5
 BNE GA2
 
 ;PRINT MORE SPACES
 
 LDA #0
 STA GFLAG1
GA3: LDA TCOUNT
 CMP #23
 BNE GA3
 
 LDA #0
 STA TFLAG6
 STA TFLAG9
 LDA #1
 STA TFLAG7
 LDY #0
 
 ;SET VALUES BACK TO DEFAULT
 
 LDA #3
 STA PEMPB
 STA MEN
 LDA #130
 STA PY2
 STA PY3
 
 ;SET PLATFORM BACK TO DEFAULT POS.
 
 LDA #180
 STA PX3
 
 LDA #LOW PM2
 STA WORKP
 LDA #HIGH PM2
 STA WORKP+1
 LDX #2
 JSR CRA2
 LDA #1
 STA GFLAG3
 STA PD3
 JSR PDR1
 
 LDA #17
 STA LEVEL
 LDA #32
 STA MPOINT
 LDA #0
 STA CRITP
 STA MARK2
 STA MARK3
 STA PD2
 LDA #100
 STA BNUMB
 LDA #255
 STA PERMP
 STA PERMP+1
 LDA #10
 STA DNUMB
 
 ;SET SCORE BACK TO ZERO
 
 LDA #0
 STA SCORE
 STA SCORE+1
 STA SCORE+2
 
 JMP XST5
 
LAB8: INCLUDE D:LEVEL.LNK
 
LAB: INCLUDE D:LINK1.LNK
 
 ;GENERAL PURPOSE ERASE ROUTINE

CRASE: LDA #LOW PM0
 STA WORKP
 LDA #HIGH PM0
 STA WORKP+1
 LDX #2
CRA2: LDY #0
 LDA #0

CRA1: STA (WORKP),Y
 INY
 BNE CRA1
 INC WORKP+1
 DEX
 BNE CRA1
 RTS

LAB4: INCLUDE D:VBILINK.LNK
LAB9: INCLUDE D:VBISUB.LNK
LAB5: INCLUDE D:DOLLAR.LNK
LAB6: INCLUDE D:FALLING.LNK
LAB7: INCLUDE D:SCORE.LNK
LAB4: INCLUDE D:PLATFORM.LNK
LAB2: INCLUDE D:PMINT.LNK
LAB3: INCLUDE D:BDATA.LNK