A.N.A.L.O.G. ISSUE 69 / FEBRUARY 1989 / PAGE 74
Star Rider is an all-machine-code, 3-D arcade-action space game for any Atari 8-bit computer with a minimum 32K RAM, controlled by a joystick in Port 1.
It is many centuries into our future, and all the countries of the Earth are currently united in an extensive colonization program involving the creation of new civilizations on distant planets. However, the entire program is under threat from the Xylons, a massive alien empire that for years has been trying to gain supremacy of the universe.
It has taken you many years of intense training, but you’ve finally graduated as a Star Rider. Armed with the latest in photon weaponry, your craft orbits one of the colonization planets, and you are all that stands between this planet’s destruction by the Xylons.
To create your copy of Star Rider, type in Listing 1 using the M/L Editor found elsewhere in this issue. Create the game file under the filename STARRIDE.OBJ, or, if you want the program to load automatically, use the filename AUTORUN.SYS.
START: Begin game at Level 1.
1,2,3,4,5: Begin game at Levels 10, 20, 30, 40, 50, respectively.
C: Continue game from previous level.
T: Toggle vertical control.
SPACEBAR: Pause/resume game.
ESC: Abort game.
When you start a game, you will be presented with a cockpit view from your spacecraft. In the viewport you can see the planet surface below with the attacking Xylon crafts appearing from over the horizon. You will also see your photon-gun sights in the viewport. These are controlled by a joystick in Port 1, and photons are fired by hitting the trigger. Note two points: First, the left photon is always fired first, and the right photon is only fired if the left’s already been fired! Second, the vertical control of the sights can be toggled by the T key.
At the bottom of the screen, you can see the control panel displaying your score, shields and the attack wave which you are on. For every Xylon craft which you destroy, five points are added to your score, and your shields are increased by an amount depending upon the attack wave (more for higher waves). Note that your shields cannot increase above 100% . However, if a Xylon craft is not destroyed, and instead shoots past you, deflecfing off your shields, then 4% is deducted from your shields. If your shields fall below 0%, the game ends.
When the game is over, if your score is high enough, you will be able to enter your name on the high-score board. Moving the joystick left and right will move the cursor in the appropriate direction, and moving the joystick up and down will move through the characters. When you have finished entering your name, press the trigger. Note that on subsequent high scores, the previously entered name will appear (in order to save having to enter the same name over again).
Full use is made of the excellent graphics features of the Atari, utilizing player/missile graphics, custom display lists, GTIA modes, display-list interrupts, multiple character sets, load memory scans and so on.
The Xylon ships are drawn in 16-luminance mode, GTIA 9, which gives an excellent metallic effect. Actually, character graphics are used behind GTIA, giving characters of resoludon two by eight in 16 luminances. The scrolling terrain is drawn in high-resolution ANTIC F (animated as part of the DLI), and the control panel is done in ANTIC 2. Players are used for the photons and sights, and a single missile is used for the scrolling stars (in both the game and title screen). The metallic text effects on the control panel and on the title screen are done by altering color register luminances from light to dark. The sound on the title screen uses 15KHz clocking and a high-pass filter in Channel 1. Finally note that no OS routines are used at all.
1000 DATA 255,255,253,31,198,61,76,215,38,0,0,0,0,0,0,0,6598 1010 DATA 0,0,0,0,0,48,243,255,255,0,4 8,60,60,255,255,255,837 1020 DATA 255,0,0,0,12,12,207,207,255, 0,0,0,11,10,138,121,1096 1030 DATA 105,0,12,212,221,228,238,244 ,255,204,201,215,213,231,233,255,814 1040 DATA 249,204,156,125,93,126,158,2 55,159,0,192,77,221,78,238,79,298 1050 DATA 255,0,0,0,176,160,168,151,15 0,89,89,80,96,112,128,144,6748 1060 DATA 153,244,15,4,14,0,0,0,0,247, 245,231,233,221,13,0,6087 1070 DATA 0,127,95,126,158,221,208,0,0 ,79,240,64,224,0,0,0,2795 1080 DATA 0,149,149,5,6,7,8,9,153,0,0, 0,0,12,13,174,6569 1090 DATA 159,0,0,10,187,204,13,238,15 ,0,0,160,187,204,208,238,9713 1100 DATA 240,0,0,0,0,192,208,234,249, 143,126,128,144,160,187,0,9330 1110 DATA 0,255,13,204,11,0,0,0,0,255, 208,204,176,0,0,0,2104 1120 DATA 0,248,231,8,9,10,187,0,0,0,1 3,0,159,128,157,160,2672 1130 DATA 187,204,221,238,255,238,221, 204,0,0,208,0,249,8,217,10,8274 1140 DATA 187,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,1327 1150 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1150 1160 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1160 1170 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1170 1180 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1180 1190 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1190 1200 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1200 1210 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1210 1220 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1220 1230 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1230 1240 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1240 1250 DATA 0,0,0,0,0,0,0,0,0,131,129,13 0,129,129,131,129,3051 1260 DATA 129,130,131,129,130,129,131, 129,131,129,129,130,129,130,131,129,89 05 1270 DATA 131,129,129,129,131,129,129, 129,130,129,131,129,131,130,129,131,89 29 1280 DATA 129,255,255,0,0,3,255,255,25 5,0,0,1,255,255,255,0,9544 1290 DATA 0,1,255,255,255,0,0,1,255,25 5,255,0,0,1,255,255,9929 1300 DATA 255,0,0,1,255,255,255,128,0, 255,252,0,0,15,255,255,610 1310 DATA 254,0,0,7,255,255,254,0,0,1, 255,255,255,0,0,1,5381 1320 DATA 255,255,255,128,0,0,255,255, 255,192,0,0,127,255,255,240,4288 1330 DATA 0,255,224,0,0,127,255,255,24 8,0,0,15,255,255,252,0,176 1340 DATA 0,3,255,255,255,0,0,0,255,25 5,255,192,0,0,63,255,9385 1350 DATA 255,240,0,0,31,255,255,254,0 ,255,0,0,1,255,255,255,1625 1360 DATA 224,0,0,63,255,255,248,0,0,3 ,255,255,255,0,0,0,5587 1370 DATA 255,255,255,224,0,0,31,255,2 55,252,0,0,3,255,255,255,2382 1380 DATA 224,248,0,0,7,255,255,255,12 8,0,0,127,255,255,240,0,651 1390 DATA 0,7,255,255,255,0,0,0,127,25 5,255,240,0,0,7,255,8027 1400 DATA 255,255,0,0,0,255,255,255,25 2,192,0,0,63,255,255,254,3986 1410 DATA 0,0,0,255,255,255,224,0,0,7, 255,255,255,0,0,0,6053 1420 DATA 127,255,255,248,0,0,3,255,25 5,255,192,0,0,31,255,255,1171 1430 DATA 255,0,0,0,255,255,255,248,0, 0,3,255,255,255,192,0,1117 1440 DATA 0,15,255,255,255,0,0,0,63,25 5,255,252,0,0,1,255,7571 1450 DATA 255,255,240,0,0,7,255,255,25 5,0,0,7,255,255,255,224,3475 1460 DATA 0,0,7,255,255,255,128,0,0,15 ,255,255,255,0,0,0,5532 1470 DATA 63,255,255,254,0,0,0,127,255 ,255,252,0,0,0,255,255,362 1480 DATA 255,0,0,31,255,255,255,128,0 ,0,31,255,255,255,0,0,7759 1490 DATA 0,31,255,255,255,0,0,0,31,25 5,255,255,0,0,0,63,4314 1500 DATA 255,255,255,0,0,0,63,255,255 ,0,0,255,255,255,254,0,1561 1510 DATA 0,0,63,255,255,254,0,0,0,31, 255,255,255,0,0,0,5008 1520 DATA 31,255,255,255,128,0,0,15,25 5,255,255,192,0,0,7,255,8745 1530 DATA 255,0,3,255,255,255,248,0,0, 0,255,255,255,252,0,0,63 1540 DATA 0,63,255,255,255,0,0,0,15,25 5,255,255,192,0,0,7,5884 1550 DATA 255,255,255,240,0,0,1,255,25 5,0,31,255,255,255,224,0,2028 1560 DATA 0,1,255,255,255,248,0,0,0,63 ,255,255,255,0,0,0,5920 1570 DATA 15,255,255,255,224,0,0,1,255 ,255,255,252,0,0,0,63,6690 1580 DATA 255,0,127,255,255,255,128,0, 0,7,255,255,255,240,0,0,9547 1590 DATA 0,127,255,255,255,0,0,0,7,25 5,255,255,240,0,0,0,6502 1600 DATA 255,255,255,255,0,0,0,15,255 ,1,255,255,255,254,0,0,9311 1610 DATA 0,15,255,255,255,224,0,0,0,1 27,255,255,255,0,0,0,6494 1620 DATA 7,255,255,255,248,0,0,0,63,2 55,255,255,192,0,0,1,6656 1630 DATA 255,15,255,255,255,248,0,0,0 ,63,255,255,255,192,0,0,8961 1640 DATA 0,255,255,255,255,0,0,0,3,25 5,255,255,252,0,0,0,6928 1650 DATA 31,255,255,255,240,0,0,0,127 ,63,255,255,255,224,0,0,9265 1660 DATA 0,127,255,255,255,128,0,0,0, 255,255,255,255,0,0,0,7472 1670 DATA 3,255,255,255,254,0,0,0,7,25 5,255,255,248,0,0,0,6940 1680 DATA 15,255,255,255,255,192,0,0,0 ,255,255,255,255,128,0,0,9939 1690 DATA 1,255,255,255,255,0,0,0,1,25 5,255,255,254,0,0,0,6987 1700 DATA 3,255,255,255,254,0,0,0,3,25 5,255,255,255,0,0,0,7025 1710 DATA 3,255,255,255,255,0,0,0,1,25 5,255,255,255,0,0,0,7022 1720 DATA 1,255,255,255,255,0,0,0,1,25 5,255,255,255,128,0,0,8822 1730 DATA 0,255,255,255,252,0,0,0,7,25 5,255,255,254,0,0,0,7065 1740 DATA 3,255,255,255,255,0,0,0,0,25 5,255,255,255,128,0,0,8835 1750 DATA 0,127,255,255,255,224,0,0,0, 255,255,255,240,0,0,0,7943 1760 DATA 31,255,255,255,252,0,0,0,3,2 55,255,255,255,0,0,0,7103 1770 DATA 0,255,255,255,255,192,0,0,0, 63,255,255,255,248,0,0,9774 1780 DATA 0,255,255,255,192,0,0,0,63,2 55,255,255,248,0,0,0,7241 1790 DATA 7,255,255,255,255,0,0,0,0,12 7,255,255,255,224,0,0,8953 1800 DATA 0,15,255,255,255,254,0,0,0,2 55,255,255,0,0,0,0,4829 1810 DATA 255,255,255,255,240,0,0,0,7, 255,255,255,255,0,0,0,7353 1820 DATA 0,127,255,255,255,240,0,0,0, 7,255,255,255,255,128,0,1314 1830 DATA 0,255,255,252,0,0,0,1,255,25 5,255,255,224,0,0,0,7743 1840 DATA 15,255,255,255,255,0,0,0,0,6 3,255,255,255,248,0,0,8707 1850 DATA 0,1,255,255,255,255,224,0,0, 255,255,240,0,0,0,7,6357 1860 DATA 255,255,255,255,192,0,0,0,15 ,255,255,255,255,0,0,0,7235 1870 DATA 0,63,255,255,255,252,0,0,0,0 ,255,255,255,255,248,0,3038 1880 DATA 0,255,255,192,0,0,0,15,255,2 55,255,255,128,0,0,0,6417 1890 DATA 31,255,255,255,255,0,0,0,0,3 1,255,255,255,254,0,0,8537 1900 DATA 0,0,63,255,255,255,254,0,0,2 55,255,0,0,0,0,63,4055 1910 DATA 255,255,255,255,0,0,0,0,31,2 55,255,255,255,0,0,0,6469 1920 DATA 0,31,255,255,255,255,0,0,0,0 ,31,255,255,255,255,128,2731 1930 DATA 0,255,252,0,0,0,0,127,255,25 5,255,254,0,0,0,0,4910 1940 DATA 63,255,255,255,255,0,0,0,0,1 5,255,255,255,255,128,0,393 1950 DATA 0,0,7,255,255,255,255,224,0, 255,240,0,0,0,0,255,8643 1960 DATA 255,255,255,252,0,0,0,0,63,2 55,255,255,255,0,0,0,6795 1970 DATA 0,15,255,255,255,255,192,0,0 ,0,3,255,255,255,255,248,5705 1980 DATA 0,255,192,0,0,0,3,255,255,25 5,255,248,0,0,0,0,5753 1990 DATA 127,255,255,255,255,0,0,0,0, 7,255,255,255,255,224,0,1867 2000 DATA 0,0,1,255,255,255,255,254,0, 255,0,0,0,0,7,255,6380 2010 DATA 255,255,255,240,0,0,0,0,127, 255,255,255,255,0,0,0,7373 2020 DATA 0,7,255,255,255,255,240,0,0, 0,0,127,255,255,255,255,4618 2030 DATA 128,252,0,0,0,0,31,255,255,2 55,255,224,0,0,0,0,5257 2040 DATA 255,255,255,255,255,0,0,0,0, 3,255,255,255,255,248,0,2365 2050 DATA 0,0,0,63,255,255,255,255,224 ,48,48,112,240,66,104,41,9560 2060 DATA 66,0,116,2,2,2,2,2,2,2,2,2,2 ,2,2,2,2734 2070 DATA 68,144,33,79,184,33,15,15,15 ,15,15,15,15,15,15,15,5684 2080 DATA 15,15,15,15,15,15,15,15,15,1 5,15,15,15,15,15,15,4120 2090 DATA 15,15,15,15,0,66,144,41,0,2, 2,0,2,65,144,38,7718 2100 DATA 169,90,133,2,169,56,133,3,16 9,2,133,9,169,0,141,68,3504 2110 DATA 2,141,235,0,141,236,0,133,21 2,169,1,141,226,0,169,3,7106 2120 DATA 141,15,210,141,29,208,169,72 ,141,8,2,169,48,141,9,2,2801 2130 DATA 169,64,141,14,210,169,120,14 1,7,212,169,128,141,14,212,169,429 2140 DATA 62,141,0,212,32,120,49,32,9, 52,32,80,48,32,55,40,9261 2150 DATA 169,0,141,0,212,169,144,141, 2,212,169,38,141,3,212,169,9164 2160 DATA 95,141,0,2,169,40,141,1,2,16 9,222,141,19,208,169,60,7121 2170 DATA 141,20,208,169,140,141,21,20 8,32,152,54,162,4,189,10,40,4842 2180 DATA 157,22,208,202,16,247,32,107 ,49,169,0,141,254,0,141,255,9775 2190 DATA 0,141,8,210,162,2,157,208,0, 202,16,250,169,255,141,244,3903 2200 DATA 0,141,249,0,141,230,0,141,23 2,0,169,120,141,242,0,141,9306 2210 DATA 243,0,169,16,141,243,41,141, 244,41,162,4,157,231,41,202,160 2220 DATA 16,250,169,17,141,242,41,169 ,4,141,15,40,32,55,40,169,3688 2230 DATA 62,141,0,212,173,226,0,141,2 27,0,32,43,40,32,61,40,2205 2240 DATA 32,55,40,32,84,43,32,15,46,3 2,61,40,32,55,40,32,7835 2250 DATA 67,40,32,58,44,32,206,46,32, 61,40,32,55,40,32,15,8664 2260 DATA 46,32,177,47,32,183,48,32,61 ,40,32,55,40,32,67,40,9513 2270 DATA 32,58,44,32,206,46,32,61,40, 173,227,0,208,194,32,55,6063 2280 DATA 40,32,18,40,173,226,0,201,25 5,240,169,24,105,1,141,226,379 2290 DATA 0,208,161,0,12,0,70,0,0,68,7 4,162,1,189,254,41,4302 2300 DATA 24,105,1,201,26,240,4,157,25 4,41,96,169,16,157,254,41,8847 2310 DATA 202,16,234,96,162,0,32,18,43 ,232,236,226,0,208,247,96,976 2320 DATA 173,11,212,208,251,96,173,11 ,212,240,251,96,174,15,40,232,2118 2330 DATA 224,5,208,16,173,16,40,72,17 3,17,40,141,16,40,104,141,3512 2340 DATA 17,40,162,1,142,15,40,96,72, 138,72,152,72,162,139,142,6980 2350 DATA 10,212,142,24,208,202,224,13 1,208,245,169,65,162,32,141,10,9964 2360 DATA 212,141,27,208,142,9,212,173 ,111,120,72,162,110,189,0,120,8330 2370 DATA 141,10,212,141,4,208,157,1,1 20,142,18,208,202,208,238,104,2072 2380 DATA 141,1,120,169,0,141,10,212,1 41,4,208,169,1,141,10,212,7325 2390 DATA 141,27,208,162,8,142,10,212, 202,208,250,173,16,40,172,17,8859 2400 DATA 40,141,23,208,140,24,208,174 ,15,40,142,10,212,202,208,250,2236 2410 DATA 141,24,208,140,23,208,162,5, 142,10,212,202,208,250,141,23,1141 2420 DATA 208,140,24,208,162,6,142,10, 212,202,208,250,141,24,208,140,2477 2430 DATA 23,208,162,7,142,10,212,202, 208,250,141,23,208,140,24,208,1804 2440 DATA 162,8,142,10,212,202,208,250 ,174,15,40,224,4,240,14,141,9534 2450 DATA 24,208,140,23,208,142,10,212 ,232,224,4,208,248,169,12,141,1954 2460 DATA 10,212,141,23,208,162,139,16 9,224,141,10,212,142,24,208,141,1384 2470 DATA 9,212,202,142,10,212,142,24, 208,202,224,131,208,245,169,0,3182 2480 DATA 141,10,212,141,23,208,162,20 3,142,10,212,142,24,208,142,10,8890 2490 DATA 212,202,224,195,208,242,169, 12,141,10,212,141,23,208,162,139,1587 2500 DATA 142,10,212,142,24,208,202,22 4,131,208,245,104,168,104,170,104,3496 2510 DATA 64,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,2574 2520 DATA 214,246,233,229,247,240,239, 242,244,194,0,0,0,0,0,0,5261 2530 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,2530 2540 DATA 0,0,0,0,0,214,227,239,238,24 4,242,239,236,128,240,225,9497 2550 DATA 238,229,236,194,0,0,0,0,0,0, 0,0,0,0,0,0,4730 2560 DATA 0,0,0,0,0,0,0,0,51,99,111,11 4,101,0,0,0,7911 2570 DATA 0,0,51,104,105,101,108,100,1 15,0,0,0,0,0,55,97,9238 2580 DATA 118,101,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,2900 2590 DATA 16,16,16,16,16,0,0,0,0,0,0,1 7,16,16,0,5,3546 2600 DATA 0,0,0,0,0,0,0,16,17,0,0,0,0, 0,0,0,2881 2610 DATA 0,0,0,0,0,0,0,0,0,0,48,114,1 11,103,114,97,653 2620 DATA 109,109,101,100,0,34,121,0,4 8,97,117,108,0,44,97,121,2693 2630 DATA 0,0,0,0,0,0,0,0,0,138,72,169 ,0,133,205,165,4407 2640 DATA 241,10,38,205,10,38,205,10,3 8,205,133,206,166,205,134,207,2305 2650 DATA 10,38,205,10,38,205,24,101,2 06,133,204,165,205,101,207,133,2507 2660 DATA 205,165,204,24,101,240,133,2 04,144,2,230,205,165,204,24,105,1758 2670 DATA 0,133,204,165,205,105,116,13 3,205,104,170,96,32,48,42,169,8068 2680 DATA 9,24,109,255,0,160,5,145,204 ,56,233,1,136,16,248,169,9626 2690 DATA 15,24,109,255,0,160,45,145,2 04,56,233,1,136,192,39,208,9875 2700 DATA 246,96,32,48,42,169,19,24,10 9,255,0,160,3,145,204,56,6451 2710 DATA 233,1,136,16,248,169,23,24,1 09,255,0,160,43,145,204,56,8020 2720 DATA 233,1,136,192,39,208,246,96, 32,48,42,169,26,24,109,255,7711 2730 DATA 0,160,2,145,204,56,233,1,136 ,16,248,96,169,0,72,32,5684 2740 DATA 48,42,104,160,5,145,204,136, 16,251,160,45,145,204,136,192,2042 2750 DATA 39,208,249,96,169,0,72,32,48 ,42,104,160,3,145,204,136,7162 2760 DATA 16,251,160,43,145,204,136,19 2,39,208,249,96,169,0,72,32,8478 2770 DATA 48,42,104,160,2,145,204,136, 16,251,96,173,10,210,41,63,7729 2780 DATA 201,35,16,247,157,199,61,169 ,14,157,199,62,169,255,157,199,3780 2790 DATA 63,169,32,157,199,64,173,10, 210,41,127,157,199,65,96,208,431 2800 DATA 3,76,3,43,201,1,208,3,76,235 ,42,76,211,42,208,3,6534 2810 DATA 76,191,42,201,1,208,3,76,153 ,42,76,115,42,162,0,142,5179 2820 DATA 231,0,189,199,64,201,3,48,98 ,41,16,208,29,189,199,64,7341 2830 DATA 41,32,240,15,222,199,65,208, 10,169,0,157,199,64,169,9,7964 2840 DATA 157,199,65,232,236,226,0,208 ,217,96,222,199,65,48,31,169,1147 2850 DATA 23,141,255,0,189,199,61,133, 240,189,199,62,133,241,189,199,5655 2860 DATA 64,41,3,32,69,43,169,0,141,2 55,0,76,122,43,189,199,7867 2870 DATA 61,133,240,189,199,62,133,24 1,189,199,64,41,3,32,54,43,5771 2880 DATA 169,3,157,199,64,206,227,0,7 6,122,43,189,199,61,133,240,1388 2890 DATA 189,199,62,133,241,189,199,6 4,32,54,43,222,199,65,208,29,9485 2900 DATA 169,9,157,199,65,254,199,64, 189,199,64,201,3,48,14,32,6348 2910 DATA 106,47,169,4,141,230,0,32,18 ,43,76,122,43,189,199,62,6048 2920 DATA 24,125,199,63,157,199,62,133 ,241,141,231,0,208,5,169,1,8965 2930 DATA 157,199,63,173,10,210,201,25 ,176,10,189,199,61,240,22,222,1469 2940 DATA 199,61,16,17,173,10,210,201, 25,176,10,189,199,61,201,34,8743 2950 DATA 240,3,254,199,61,189,199,61, 133,240,189,199,64,32,69,43,9141 2960 DATA 76,122,43,173,16,208,208,26, 173,254,0,240,24,169,0,141,9004 2970 DATA 254,0,173,244,0,16,3,76,19,4 5,173,249,0,16,6,76,2486 2980 DATA 137,45,141,254,0,160,15,174, 243,0,169,0,157,0,125,232,8777 2990 DATA 136,16,249,173,0,211,41,15,1 33,204,174,235,0,240,18,162,463 3000 DATA 0,134,239,74,38,239,74,38,23 9,165,204,41,252,5,239,133,2323 3010 DATA 204,70,204,176,9,173,243,0,5 6,233,8,141,243,0,70,204,9541 3020 DATA 176,9,173,243,0,24,105,8,141 ,243,0,70,204,176,9,173,8206 3030 DATA 242,0,56,233,8,141,242,0,70, 204,176,9,173,242,0,24,7687 3040 DATA 105,8,141,242,0,173,242,0,20 1,48,176,7,169,48,141,242,449 3050 DATA 0,16,9,201,201,144,5,169,200 ,141,242,0,173,243,0,201,1908 3060 DATA 40,176,7,169,40,141,243,0,16 ,9,201,177,144,5,169,176,8758 3070 DATA 141,243,0,160,15,174,243,0,1 85,3,45,157,0,125,232,136,8637 3080 DATA 16,246,173,242,0,141,1,208,1 41,208,0,96,0,84,146,146,7795 3090 DATA 16,16,16,238,238,16,16,16,14 6,146,84,0,165,242,56,233,9463 3100 DATA 48,74,74,74,141,245,0,169,17 6,56,229,243,74,74,74,141,284 3110 DATA 246,0,169,8,141,244,0,169,48 ,141,247,0,169,176,141,248,2719 3120 DATA 0,169,4,141,232,0,76,109,45, 173,244,0,16,1,96,160,5639 3130 DATA 15,174,248,0,169,0,157,0,126 ,232,136,16,249,173,247,0,687 3140 DATA 24,109,245,0,141,247,0,173,2 48,0,56,237,246,0,141,248,2661 3150 DATA 0,206,244,0,48,27,160,15,174 ,248,0,185,255,45,45,10,6982 3160 DATA 210,157,0,126,232,136,16,243 ,173,247,0,141,2,208,141,209,2336 3170 DATA 0,96,169,200,56,229,242,74,7 4,74,141,250,0,169,176,56,468 3180 DATA 229,243,74,74,74,141,251,0,1 69,8,141,249,0,169,200,141,1148 3190 DATA 252,0,169,176,141,253,0,169, 4,141,232,0,76,227,45,173,9835 3200 DATA 249,0,16,1,96,160,15,174,253 ,0,169,0,157,0,127,232,8232 3210 DATA 136,16,249,173,252,0,56,237, 250,0,141,252,0,173,253,0,1407 3220 DATA 56,237,251,0,141,253,0,206,2 49,0,48,27,160,15,174,253,415 3230 DATA 0,185,255,45,45,10,210,157,0 ,127,232,136,16,243,173,252,3247 3240 DATA 0,141,3,208,141,210,0,96,24, 60,126,126,126,255,255,255,3923 3250 DATA 255,255,255,126,126,126,60,2 4,32,96,46,32,151,46,32,64,3531 3260 DATA 45,76,182,45,56,233,40,74,74 ,74,141,225,0,173,224,0,8172 3270 DATA 56,233,48,74,74,56,253,199,6 1,24,105,1,48,35,72,189,5475 3280 DATA 199,64,168,104,217,90,46,16, 24,173,225,0,56,253,199,62,9270 3290 DATA 24,105,1,48,12,217,93,46,16, 7,169,8,141,233,0,56,4260 3300 DATA 96,24,96,3,4,6,1,2,2,165,244 ,240,1,96,162,0,4842 3310 DATA 189,199,64,201,3,48,7,232,23 6,226,0,208,243,96,165,247,4911 3320 DATA 133,224,165,248,32,27,46,144 ,20,32,233,46,32,70,47,189,5924 3330 DATA 199,64,9,16,157,199,64,169,8 ,157,199,65,96,76,110,46,6836 3340 DATA 165,249,240,1,96,162,0,189,1 99,64,201,3,48,7,232,236,347 3350 DATA 226,0,208,243,96,165,252,133 ,224,165,253,32,27,46,144,20,9778 3360 DATA 32,233,46,32,70,47,189,199,6 4,9,16,157,199,64,169,8,6543 3370 DATA 157,199,65,96,76,165,46,162, 0,173,10,210,41,3,168,189,7971 3380 DATA 32,32,57,229,46,157,216,32,2 32,224,182,208,236,96,0,15,981 3390 DATA 240,255,173,242,41,201,17,24 0,73,165,226,56,233,1,41,248,2168 3400 DATA 74,74,74,201,4,48,2,169,3,16 8,185,62,47,141,228,0,6813 3410 DATA 185,66,47,141,229,0,173,244, 41,24,109,228,0,201,26,48,7256 3420 DATA 6,238,229,0,56,233,10,141,24 4,41,173,243,41,24,109,229,1058 3430 DATA 0,201,26,48,14,169,17,141,24 2,41,169,16,141,243,41,141,9178 3440 DATA 244,41,96,141,243,41,96,2,5, 0,0,0,0,1,2,160,9416 3450 DATA 4,185,231,41,24,105,5,201,26 ,48,19,56,233,10,153,231,7829 3460 DATA 41,136,48,14,185,231,41,24,1 05,1,201,26,16,237,153,231,9758 3470 DATA 41,96,96,160,2,185,242,41,56 ,233,4,201,16,16,19,24,4164 3480 DATA 105,10,153,242,41,136,48,14, 185,242,41,56,233,1,201,16,8023 3490 DATA 48,237,153,242,41,96,169,16, 141,242,41,141,243,41,141,244,3115 3500 DATA 41,32,196,54,32,74,49,162,3, 169,0,157,64,48,157,68,5200 3510 DATA 48,202,16,247,162,0,154,76,3 3,39,174,230,0,48,27,189,6956 3520 DATA 21,48,141,144,38,189,26,48,1 41,0,210,141,64,48,189,31,6632 3530 DATA 48,141,1,210,141,68,48,206,2 30,0,173,231,0,141,2,210,9909 3540 DATA 141,65,48,141,3,210,141,69,4 8,174,232,0,48,21,189,36,6386 3550 DATA 48,141,4,210,141,66,48,189,4 1,48,141,5,210,141,70,48,6663 3560 DATA 206,232,0,174,233,0,48,21,18 9,46,48,141,6,210,141,67,7181 3570 DATA 48,189,55,48,141,7,210,141,7 1,48,206,233,0,96,48,32,6455 3580 DATA 64,16,80,0,128,176,208,224,0 ,130,132,134,136,0,160,140,9628 3590 DATA 120,48,0,138,140,142,198,0,2 40,230,220,210,200,190,180,170,7376 3600 DATA 0,136,138,140,140,142,142,14 2,140,0,0,0,0,0,0,0,9788 3610 DATA 0,173,9,210,141,234,0,104,64 ,32,120,52,32,6,55,169,4633 3620 DATA 255,133,234,173,31,208,201,6 ,208,4,162,0,240,34,165,234,1902 3630 DATA 201,45,208,11,173,235,0,73,2 55,141,235,0,76,86,48,201,9866 3640 DATA 18,240,30,162,5,221,159,48,2 40,6,202,208,248,76,90,48,1068 3650 DATA 189,165,48,133,226,189,171,4 8,141,255,41,189,177,48,141,254,4380 3660 DATA 41,169,255,133,234,76,74,49, 255,31,30,26,24,29,1,10,2012 3670 DATA 20,30,40,50,17,16,16,16,16,1 6,16,17,18,19,20,21,6311 3680 DATA 165,234,201,28,208,3,76,152, 47,201,45,208,11,165,235,73,404 3690 DATA 255,133,235,169,255,133,234, 96,201,33,208,118,32,74,49,32,8613 3700 DATA 55,40,169,133,141,2,212,169, 49,141,3,212,169,64,141,27,8495 3710 DATA 208,169,224,141,26,208,162,2 ,169,0,157,1,208,202,16,250,1052 3720 DATA 169,255,133,234,169,5,141,8, 210,169,166,141,1,210,141,5,9906 3730 DATA 210,169,128,141,0,210,169,64 ,141,4,210,32,192,49,165,234,1585 3740 DATA 201,33,208,247,32,55,40,169, 144,141,2,212,169,38,141,3,7905 3750 DATA 212,169,1,141,27,208,169,0,1 41,26,208,162,2,189,208,0,8986 3760 DATA 157,1,208,202,16,247,169,255 ,133,234,169,0,141,8,210,32,1139 3770 DATA 85,49,96,162,7,169,0,157,0,2 10,202,16,250,96,162,3,8780 3780 DATA 160,6,189,64,48,153,0,210,18 9,68,48,153,1,210,202,136,517 3790 DATA 136,16,239,96,169,0,133,222, 169,116,133,223,162,4,76,138,941 3800 DATA 54,169,0,133,222,169,104,133 ,223,162,8,76,138,54,112,112,9289 3810 DATA 112,79,0,104,15,15,15,15,15, 15,15,15,15,15,15,15,6386 3820 DATA 15,15,15,15,15,15,15,15,15,1 5,15,15,15,15,15,15,5860 3830 DATA 15,15,15,15,15,15,15,15,15,1 5,15,15,15,15,15,15,5870 3840 DATA 15,15,15,15,15,15,65,133,49, 32,55,40,162,13,189,81,3939 3850 DATA 50,133,237,189,95,50,133,238 ,189,157,50,141,226,49,189,171,3951 3860 DATA 50,141,227,49,138,72,162,0,1 60,0,189,255,255,145,237,165,5444 3870 DATA 237,24,105,40,133,237,144,2, 230,238,232,224,24,208,235,104,5844 3880 DATA 170,202,16,202,162,13,189,66 ,50,157,67,50,202,208,247,166,3305 3890 DATA 236,224,48,208,4,162,0,134,2 36,189,109,50,141,67,50,230,628 3900 DATA 236,162,13,189,67,50,48,17,1 89,81,50,24,125,67,50,157,5536 3910 DATA 81,50,144,20,254,95,50,208,1 5,189,81,50,24,125,67,50,5840 3920 DATA 157,81,50,176,3,222,95,50,20 2,16,216,96,0,0,0,0,3011 3930 DATA 0,0,0,0,0,0,0,0,0,0,61,62,63 ,64,65,66,9091 3940 DATA 67,68,69,70,71,72,73,74,106, 106,106,106,106,106,106,106,7120 3950 DATA 106,106,106,106,106,106,0,0, 0,40,40,40,40,216,216,216,7736 3960 DATA 216,0,0,40,40,40,80,80,120,1 36,176,176,216,216,216,0,1536 3970 DATA 0,0,40,80,120,136,176,216,0, 0,40,40,40,40,40,40,2026 3980 DATA 136,176,216,0,0,0,185,209,23 3,1,25,49,73,97,121,145,7495 3990 DATA 169,193,217,241,50,50,50,51, 51,51,51,51,51,51,51,51,2568 4000 DATA 51,51,0,0,0,0,136,153,170,18 7,204,221,238,255,255,238,8922 4010 DATA 221,204,187,170,153,0,0,0,0, 0,0,0,0,0,136,153,1133 4020 DATA 170,187,0,13,14,0,15,14,13,1 2,187,170,153,0,0,0,1226 4030 DATA 0,0,0,0,0,0,136,153,170,187, 204,13,14,255,255,238,3391 4040 DATA 221,204,187,170,153,0,0,0,0, 0,0,0,0,0,136,153,1163 4050 DATA 170,187,192,13,14,0,15,14,13 ,12,187,170,153,0,0,0,1832 4060 DATA 0,0,0,0,0,0,136,153,170,187, 204,13,14,15,15,14,2877 4070 DATA 13,12,187,170,153,0,0,0,0,0, 0,0,0,0,136,153,601 4080 DATA 170,187,12,13,14,15,15,14,13 ,0,187,170,153,0,0,0,1292 4090 DATA 0,0,0,0,0,0,136,153,170,187, 12,13,14,15,15,14,795 4100 DATA 13,12,187,170,153,0,0,0,0,0, 0,0,0,0,136,153,631 4110 DATA 170,187,0,13,14,0,255,238,22 1,0,187,170,153,0,0,0,6540 4120 DATA 0,0,0,0,0,0,136,153,170,187, 12,221,238,15,15,14,6233 4130 DATA 13,12,187,170,153,0,0,0,0,0, 0,0,0,0,136,153,661 4140 DATA 170,187,0,13,14,0,15,14,13,0 ,187,170,153,0,0,0,1226 4150 DATA 0,0,0,0,0,0,136,153,170,187, 12,221,238,255,255,238,6807 4160 DATA 221,12,187,170,153,0,0,0,0,0 ,0,0,0,0,136,153,899 4170 DATA 170,187,0,13,14,15,15,14,13, 0,187,170,153,0,0,0,1346 4180 DATA 0,0,0,0,0,0,136,153,170,187, 204,13,14,15,15,14,2997 4190 DATA 13,204,187,170,153,0,0,0,0,0 ,0,0,0,0,136,153,1105 4200 DATA 170,187,204,221,238,255,255, 238,221,204,187,170,153,0,0,0,2764 4210 DATA 0,0,169,0,133,222,169,80,133 ,223,162,11,32,138,54,162,9628 4220 DATA 5,189,96,52,133,220,189,102, 52,133,221,189,108,52,133,222,3399 4230 DATA 189,114,52,133,223,138,72,20 1,4,48,4,162,15,16,2,162,4935 4240 DATA 39,160,5,177,220,145,222,136 ,16,249,165,220,24,105,6,133,1023 4250 DATA 220,144,2,230,221,165,222,24 ,105,40,133,222,144,2,230,223,3915 4260 DATA 202,16,222,104,170,202,16,18 5,96,71,55,39,23,7,103,57,4731 4270 DATA 58,59,60,61,61,88,14,20,106, 23,29,80,80,80,80,87,3176 4280 DATA 87,32,74,49,32,55,40,169,201 ,141,2,212,169,52,141,3,7844 4290 DATA 212,169,210,141,0,2,169,53,1 41,1,2,169,208,141,24,208,9348 4300 DATA 169,140,141,25,208,169,5,141 ,8,210,169,170,141,1,210,141,1813 4310 DATA 3,210,169,166,141,5,210,141, 7,210,169,0,141,219,0,169,862 4320 DATA 39,141,220,0,169,1,141,195,5 4,32,152,54,169,0,141,195,9257 4330 DATA 54,96,112,112,240,79,0,80,15 ,15,15,15,15,15,15,15,9174 4340 DATA 15,15,15,15,15,15,15,15,15,1 5,15,15,15,15,15,15,6380 4350 DATA 15,15,15,15,15,15,15,15,15,1 5,15,15,15,15,15,15,6390 4360 DATA 15,15,15,15,15,15,15,15,15,1 5,15,15,15,15,15,15,6400 4370 DATA 15,15,15,15,112,66,30,53,112 ,6,112,6,112,6,112,6,1798 4380 DATA 112,6,112,2,65,201,52,0,0,0, 0,0,0,0,0,0,6743 4390 DATA 0,0,0,0,0,0,40,41,39,40,0,51 ,35,47,50,37,8816 4400 DATA 51,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,4451 4410 DATA 0,0,97,110,97,108,111,103,0, 0,0,16,17,16,16,16,9008 4420 DATA 0,0,0,0,0,0,97,110,97,108,11 1,103,0,0,0,16,645 4430 DATA 16,21,16,16,0,0,0,0,0,0,97,1 10,97,108,111,103,3073 4440 DATA 0,0,0,16,16,18,21,16,0,0,0,0 ,0,0,97,110,8182 4450 DATA 97,108,111,103,0,0,0,16,16,1 7,16,16,0,0,0,0,6318 4460 DATA 0,0,97,110,97,108,111,103,0, 0,0,16,16,16,21,16,9120 4470 DATA 0,0,0,0,0,0,0,0,0,0,0,0,48,1 14,111,103,3 4480 DATA 114,97,109,109,101,100,0,34, 121,0,48,97,117,108,0,44,3446 4490 DATA 97,121,0,0,0,0,0,0,0,0,0,72, 138,72,162,224,4509 4500 DATA 169,65,141,10,212,142,26,208 ,141,27,208,162,60,189,0,120,137 4510 DATA 141,10,212,141,4,208,142,18, 208,222,0,120,138,74,144,3,8847 4520 DATA 222,0,120,202,208,231,142,10 ,212,142,26,208,169,1,141,27,278 4530 DATA 208,162,109,138,10,141,10,21 2,141,23,208,24,105,64,141,22,7406 4540 DATA 208,189,60,120,141,4,208,142 ,18,208,222,60,120,138,74,144,1417 4550 DATA 3,222,60,120,202,208,220,142 ,4,208,206,219,0,16,40,174,1209 4560 DATA 220,0,224,40,208,2,162,0,189 ,98,54,141,0,210,24,105,7745 4570 DATA 1,141,2,210,74,141,4,210,24, 105,1,141,6,210,232,142,362 4580 DATA 220,0,169,7,141,219,0,104,17 0,104,64,72,110,74,111,72,7607 4590 DATA 110,74,111,64,126,66,127,64, 126,66,127,72,110,74,111,72,7202 4600 DATA 110,74,111,64,126,66,127,64, 126,66,127,64,74,84,94,62,6373 4610 DATA 72,82,92,160,0,152,145,222,2 00,208,251,230,223,202,208,246,1649 4620 DATA 96,169,0,133,222,169,125,133 ,223,162,3,32,138,54,162,0,8673 4630 DATA 173,10,210,172,195,54,208,8, 201,47,144,244,201,207,176,240,7742 4640 DATA 157,0,120,169,1,157,0,123,23 2,208,229,96,0,169,200,133,3097 4650 DATA 211,141,10,212,173,10,210,41 ,112,141,144,38,160,64,162,3,8656 4660 DATA 173,10,210,157,4,208,157,18, 208,202,16,244,141,12,208,141,2995 4670 DATA 17,208,41,7,170,173,10,210,4 1,239,157,0,210,136,208,222,4684 4680 DATA 198,211,208,205,169,48,141,1 44,38,169,0,141,12,208,96,165,888 4690 DATA 212,240,46,169,82,133,213,16 9,53,133,214,162,0,160,0,177,1424 4700 DATA 213,217,231,41,144,24,208,5, 200,192,5,208,242,165,213,24,3870 4710 DATA 105,20,133,213,144,2,230,214 ,232,224,5,208,224,96,76,59,3379 4720 DATA 55,230,212,96,134,217,169,13 0,133,213,169,53,133,214,169,4,3596 4730 DATA 56,229,217,170,240,36,165,21 3,24,105,20,133,215,165,214,105,3927 4740 DATA 0,133,216,160,19,177,213,145 ,215,136,16,249,165,213,56,233,6256 4750 DATA 20,133,213,176,2,198,214,202 ,16,218,169,73,133,213,169,53,3844 4760 DATA 133,214,165,217,10,10,72,24, 101,213,133,213,144,2,230,214,3322 4770 DATA 104,10,10,24,101,213,133,213 ,144,2,230,214,160,7,185,82,2117 4780 DATA 56,170,189,45,56,145,213,136 ,16,244,165,213,24,105,9,133,652 4790 DATA 215,165,214,105,0,133,216,16 0,4,185,231,41,145,215,136,16,2097 4800 DATA 248,160,0,32,27,56,169,255,1 45,213,32,27,56,185,82,56,8745 4810 DATA 170,189,45,56,145,213,173,16 ,208,240,67,173,0,211,41,15,9953 4820 DATA 201,7,208,9,200,192,8,48,218 ,160,0,16,214,201,11,208,1130 4830 DATA 7,136,16,207,160,7,16,203,20 1,13,208,12,185,82,56,56,8223 4840 DATA 233,1,16,20,169,36,16,16,201 ,14,208,183,185,82,56,24,7714 4850 DATA 105,1,201,37,48,2,169,0,153, 82,56,76,186,55,173,16,6907 4860 DATA 208,240,251,96,32,55,40,32,6 1,40,32,55,40,32,61,40,2195 4870 DATA 32,55,40,76,61,40,0,97,98,99 ,100,101,102,103,104,105,6949 4880 DATA 106,107,108,109,110,111,112, 113,114,115,116,117,118,119,120,121,65 6 4890 DATA 122,80,81,82,83,84,85,86,87, 88,89,0,0,0,0,0,587 4900 DATA 0,0,0,169,0,141,0,212,141,14 ,210,141,14,212,141,8,8922 4910 DATA 210,169,3,141,15,210,169,169 ,141,2,212,169,56,141,3,212,1689 4920 DATA 169,120,141,9,212,169,12,141 ,23,208,169,0,141,24,208,169,1213 4930 DATA 35,141,0,212,169,14,141,1,21 0,141,3,210,162,1,142,0,8122 4940 DATA 210,232,142,2,210,162,127,17 3,10,210,157,0,120,202,16,247,2840 4950 DATA 48,243,66,231,56,2,66,231,56 ,2,66,231,56,2,66,231,8672 4960 DATA 56,2,66,231,56,2,66,231,56,2 ,66,231,56,2,66,231,8208 4970 DATA 56,2,66,231,56,2,66,231,56,2 ,66,231,56,2,66,231,8218 4980 DATA 56,2,66,231,56,2,66,231,56,2 ,66,231,56,65,169,56,7855 4990 DATA 0,1,2,3,4,5,6,7,8,9,10,11,12 ,13,14,15,6350 5000 DATA 0,1,2,3,4,5,6,7,8,9,10,11,12 ,13,14,15,6360 5010 DATA 0,1,2,3,4,5,6,7,8,9,10,11,12 ,13,14,15,6370 5020 DATA 8,9,10,11,12,13,14,15,0,1,2, 3,4,5,6,7,5868 5030 DATA 8,9,10,11,12,13,14,15,0,1,2, 3,4,5,6,7,5878 5040 DATA 8,9,10,11,12,13,14,15,0,1,2, 3,4,5,6,7,5888 5050 DATA 15,255,255,255,255,80,255,25 5,255,255,255,245,255,255,255,255,8320 5060 DATA 255,245,255,255,255,255,255, 245,238,238,238,238,238,230,238,238,78 28 5070 DATA 238,238,238,230,238,238,238, 238,238,230,238,238,238,238,238,230,71 98 5080 DATA 221,221,221,221,221,215,221, 221,221,221,221,215,221,221,112,13,65 5090 DATA 221,215,221,221,112,13,221,2 15,204,204,128,0,0,0,204,204,2801 5100 DATA 128,0,0,0,204,204,128,0,0,0, 204,204,128,0,0,0,4724 5110 DATA 187,187,187,187,187,144,187, 187,187,187,187,185,187,187,187,187,26 0 5120 DATA 187,185,187,187,187,187,187, 185,170,170,170,170,170,170,170,170,88 32 5130 DATA 170,170,170,170,170,170,170, 170,170,170,10,170,170,170,170,170,649 0 5140 DATA 0,0,0,9,153,155,0,0,0,9,153, 155,0,0,0,9,648 5150 DATA 153,155,0,0,0,9,153,155,136, 136,192,8,136,140,136,136,714 5160 DATA 192,8,136,140,136,136,136,13 6,136,140,136,136,136,136,136,140,3576 5170 DATA 119,119,119,119,119,126,119, 119,119,119,119,126,119,119,119,119,14 80 5180 DATA 119,126,119,119,119,119,119, 126,102,102,102,102,102,111,102,102,98 60 5190 DATA 102,102,102,111,102,102,102, 102,102,111,6,102,102,102,102,240,340 5200 DATA 255,255,255,255,255,246,255, 255,255,255,255,246,255,255,255,255,97 18 5210 DATA 255,246,255,255,255,255,255, 246,238,238,238,238,238,231,238,238,80 02 5220 DATA 238,238,238,231,238,238,238, 238,238,231,238,238,238,238,238,231,73 78 5230 DATA 221,221,221,221,221,216,221, 221,221,221,221,216,221,128,221,216,38 14 5240 DATA 13,216,0,0,221,216,0,0,0,0,2 04,201,0,0,0,0,2742 5250 DATA 204,201,0,0,0,0,204,201,0,0, 0,0,204,201,0,0,4358 5260 DATA 0,0,187,186,0,0,0,0,187,186, 0,0,0,0,187,186,5889 5270 DATA 0,0,0,0,187,186,0,0,0,0,170, 171,0,0,0,0,1243 5280 DATA 170,171,0,0,0,0,170,171,0,0, 0,0,170,171,0,0,2954 5290 DATA 0,0,153,156,0,0,0,0,153,156, 0,0,0,0,153,156,4101 5300 DATA 0,0,0,0,153,156,0,0,0,0,136, 141,0,0,0,0,189 5310 DATA 136,141,0,0,0,0,136,141,0,0, 0,0,136,141,0,0,1550 5320 DATA 0,0,119,126,0,0,0,0,119,126, 0,0,0,0,119,126,2313 5330 DATA 0,0,0,0,119,126,0,0,0,0,102, 111,0,0,0,0,9135 5340 DATA 102,111,0,0,0,0,102,111,0,0, 0,0,102,111,0,0,146 5350 DATA 15,255,255,255,255,96,15,255 ,255,255,255,96,255,255,255,255,5248 5360 DATA 255,246,255,255,255,255,255, 246,238,238,238,238,238,231,238,238,81 52 5370 DATA 238,238,238,231,238,238,238, 238,238,231,238,238,238,238,238,231,75 28 5380 DATA 221,221,221,221,221,216,221, 221,221,221,221,216,221,221,128,13,623 5390 DATA 221,216,221,221,128,13,221,2 16,204,204,144,12,204,201,204,204,8977 5400 DATA 144,12,204,201,204,204,144,1 2,204,201,204,204,144,12,204,201,7186 5410 DATA 187,187,160,11,187,186,187,1 87,160,11,187,186,187,187,160,11,4815 5420 DATA 187,186,187,187,160,11,187,1 86,170,170,170,170,170,171,170,170,796 5 5430 DATA 170,170,170,171,170,170,170, 170,170,171,170,170,170,170,170,171,85 80 5440 DATA 153,153,192,9,153,156,153,15 3,192,9,153,156,153,153,192,9,3035 5450 DATA 153,156,153,153,192,9,153,15 6,136,136,208,8,136,141,136,136,3245 5460 DATA 208,8,136,141,136,136,208,8, 136,141,136,136,208,8,136,141,2546 5470 DATA 119,119,224,7,119,126,119,11 9,224,7,119,126,119,119,224,7,1255 5480 DATA 119,126,119,119,224,7,119,12 6,102,102,240,6,102,111,102,102,379 5490 DATA 240,6,102,111,102,102,240,6, 102,111,102,102,240,6,102,111,226 5500 DATA 255,255,255,255,255,96,255,2 55,255,255,255,96,255,255,255,255,7318 5510 DATA 255,246,255,255,255,255,255, 246,238,238,238,238,238,231,238,238,83 02 5520 DATA 238,238,238,231,238,238,238, 238,238,231,238,238,238,238,238,231,76 78 5530 DATA 221,221,221,221,221,216,221, 221,221,221,221,216,221,221,128,13,773 5540 DATA 221,216,221,221,128,13,221,2 16,204,204,144,12,204,201,204,204,9127 5550 DATA 144,12,204,201,204,204,144,1 2,204,201,204,204,144,12,204,201,7336 5560 DATA 187,187,160,11,187,186,187,1 87,160,11,187,186,187,187,160,11,4965 5570 DATA 187,186,187,187,160,11,187,1 86,170,170,170,170,170,176,170,170,818 5 5580 DATA 170,170,171,0,170,170,170,17 0,171,0,170,170,170,170,170,176,6428 5590 DATA 153,153,192,9,153,156,153,15 3,192,9,153,156,153,153,192,9,3185 5600 DATA 153,156,153,153,192,9,153,15 6,136,136,208,8,136,141,136,136,3395 5610 DATA 208,8,136,141,136,136,208,8, 136,141,136,136,208,8,136,141,2696 5620 DATA 119,119,224,7,119,126,119,11 9,224,7,119,126,119,119,224,7,1405 5630 DATA 119,126,119,119,224,7,119,12 6,102,102,240,6,102,111,102,102,529 5640 DATA 240,6,102,111,102,102,240,6, 102,111,102,102,240,6,102,111,376 5650 DATA 8,136,136,136,136,136,153,15 3,153,153,153,153,170,170,170,170,6959 5660 DATA 170,170,187,187,187,187,187, 187,192,12,192,0,192,12,208,208,5413 5670 DATA 221,13,208,208,224,224,238,1 4,224,224,240,15,255,15,240,240,9656 5680 DATA 240,240,255,15,240,240,224,2 24,238,14,224,224,208,208,221,13,9798 5690 DATA 208,208,192,192,192,0,192,12 ,187,187,187,187,187,187,170,170,8231 5700 DATA 170,170,170,170,153,153,153, 153,153,153,8,136,136,136,136,136,3893 5710 DATA 136,136,136,136,0,0,153,153, 153,153,144,0,170,170,170,170,3716 5720 DATA 160,0,187,187,187,187,176,0, 192,0,192,12,192,0,208,221,3614 5730 DATA 208,208,208,0,224,238,224,22 4,224,0,240,15,240,15,240,0,4652 5740 DATA 240,255,240,240,240,0,224,23 8,224,224,224,0,208,221,208,208,1808 5750 DATA 208,0,192,0,192,192,192,0,18 7,187,187,187,176,0,170,170,5402 5760 DATA 170,170,160,0,153,153,153,15 3,144,0,136,136,136,136,0,0,8824 5770 DATA 226,2,227,2,253,31,0,0,0,0,0 ,0,0,0,0,0,8140
org $1FFD begining JMP start ; redefined character set data character_set DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,48,243,255,255 DB 0,48,60,60,255,255,255,255 DB 0,0,0,12,12,207,207,255 big_ship DB 0,0,0,11,10,138,121,105 DB 0,12,212,221,228,238,244,255 DB 204,201,215,213,231,233,255,249 DB 204,156,125,93,126,158,255,159 DB 0,192,77,221,78,238,79,255 DB 0,0,0,176,160,168,151,150 DB 89,89,80,96,112,128,144,153 DB 244,15,4,14,0,0,0,0 DB 247,245,231,233,221,13,0,0 DB 127,95,126,158,221,208,0,0 DB 79,240,64,224,0,0,0,0 DB 149,149,5,6,7,8,9,153 medium_ship DB 0,0,0,0,12,13,174,159 DB 0,0,10,187,204,13,238,15 DB 0,0,160,187,204,208,238,240 DB 0,0,0,0,192,208,234,249 DB 143,126,128,144,160,187,0,0 DB 255,13,204,11,0,0,0,0 DB 255,208,204,176,0,0,0,0 DB 248,231,8,9,10,187,0,0 small_ship DB 0,13,0,159,128,157,160,187 DB 204,221,238,255,238,221,204,0 DB 0,208,0,249,8,217,10,187 fade_away DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0 ; landscape data horizon DB 131,129,130,129,129,131,129,129 DB 130,131,129,130,129,131,129,131 DB 129,129,130,129,130,131,129,131 DB 129,129,129,131,129,129,129,130 DB 129,131,129,131,130,129,131,129 terrain_data DB 255,255,0,0,3,255,255,255 DB 0,0,1,255,255,255,0,0 DB 1,255,255,255,0,0,1,255 DB 255,255,0,0,1,255,255,255 DB 0,0,1,255,255,255,128,0 DB 255,252,0,0,15,255,255,254 DB 0,0,7,255,255,254,0,0 DB 1,255,255,255,0,0,1,255 DB 255,255,128,0,0,255,255,255 DB 192,0,0,127,255,255,240,0 DB 255,224,0,0,127,255,255,248 DB 0,0,15,255,255,252,0,0 DB 3,255,255,255,0,0,0,255 DB 255,255,192,0,0,63,255,255 DB 240,0,0,31,255,255,254,0 DB 255,0,0,1,255,255,255,224 DB 0,0,63,255,255,248,0,0 DB 3,255,255,255,0,0,0,255 DB 255,255,224,0,0,31,255,255 DB 252,0,0,3,255,255,255,224 DB 248,0,0,7,255,255,255,128 DB 0,0,127,255,255,240,0,0 DB 7,255,255,255,0,0,0,127 DB 255,255,240,0,0,7,255,255 DB 255,0,0,0,255,255,255,252 DB 192,0,0,63,255,255,254,0 DB 0,0,255,255,255,224,0,0 DB 7,255,255,255,0,0,0,127 DB 255,255,248,0,0,3,255,255 DB 255,192,0,0,31,255,255,255 DB 0,0,0,255,255,255,248,0 DB 0,3,255,255,255,192,0,0 DB 15,255,255,255,0,0,0,63 DB 255,255,252,0,0,1,255,255 DB 255,240,0,0,7,255,255,255 DB 0,0,7,255,255,255,224,0 DB 0,7,255,255,255,128,0,0 DB 15,255,255,255,0,0,0,63 DB 255,255,254,0,0,0,127,255 DB 255,252,0,0,0,255,255,255 DB 0,0,31,255,255,255,128,0 DB 0,31,255,255,255,0,0,0 DB 31,255,255,255,0,0,0,31 DB 255,255,255,0,0,0,63,255 DB 255,255,0,0,0,63,255,255 DB 0,0,255,255,255,254,0,0 DB 0,63,255,255,254,0,0,0 DB 31,255,255,255,0,0,0,31 DB 255,255,255,128,0,0,15,255 DB 255,255,192,0,0,7,255,255 DB 0,3,255,255,255,248,0,0 DB 0,255,255,255,252,0,0,0 DB 63,255,255,255,0,0,0,15 DB 255,255,255,192,0,0,7,255 DB 255,255,240,0,0,1,255,255 DB 0,31,255,255,255,224,0,0 DB 1,255,255,255,248,0,0,0 DB 63,255,255,255,0,0,0,15 DB 255,255,255,224,0,0,1,255 DB 255,255,252,0,0,0,63,255 DB 0,127,255,255,255,128,0,0 DB 7,255,255,255,240,0,0,0 DB 127,255,255,255,0,0,0,7 DB 255,255,255,240,0,0,0,255 DB 255,255,255,0,0,0,15,255 DB 1,255,255,255,254,0,0,0 DB 15,255,255,255,224,0,0,0 DB 127,255,255,255,0,0,0,7 DB 255,255,255,248,0,0,0,63 DB 255,255,255,192,0,0,1,255 DB 15,255,255,255,248,0,0,0 DB 63,255,255,255,192,0,0,0 DB 255,255,255,255,0,0,0,3 DB 255,255,255,252,0,0,0,31 DB 255,255,255,240,0,0,0,127 DB 63,255,255,255,224,0,0,0 DB 127,255,255,255,128,0,0,0 DB 255,255,255,255,0,0,0,3 DB 255,255,255,254,0,0,0,7 DB 255,255,255,248,0,0,0,15 DB 255,255,255,255,192,0,0,0 DB 255,255,255,255,128,0,0,1 DB 255,255,255,255,0,0,0,1 DB 255,255,255,254,0,0,0,3 DB 255,255,255,254,0,0,0,3 DB 255,255,255,255,0,0,0,3 DB 255,255,255,255,0,0,0,1 DB 255,255,255,255,0,0,0,1 DB 255,255,255,255,0,0,0,1 DB 255,255,255,255,128,0,0,0 DB 255,255,255,252,0,0,0,7 DB 255,255,255,254,0,0,0,3 DB 255,255,255,255,0,0,0,0 DB 255,255,255,255,128,0,0,0 DB 127,255,255,255,224,0,0,0 DB 255,255,255,240,0,0,0,31 DB 255,255,255,252,0,0,0,3 DB 255,255,255,255,0,0,0,0 DB 255,255,255,255,192,0,0,0 DB 63,255,255,255,248,0,0,0 DB 255,255,255,192,0,0,0,63 DB 255,255,255,248,0,0,0,7 DB 255,255,255,255,0,0,0,0 DB 127,255,255,255,224,0,0,0 DB 15,255,255,255,254,0,0,0 DB 255,255,255,0,0,0,0,255 DB 255,255,255,240,0,0,0,7 DB 255,255,255,255,0,0,0,0 DB 127,255,255,255,240,0,0,0 DB 7,255,255,255,255,128,0,0 DB 255,255,252,0,0,0,1,255 DB 255,255,255,224,0,0,0,15 DB 255,255,255,255,0,0,0,0 DB 63,255,255,255,248,0,0,0 DB 1,255,255,255,255,224,0,0 DB 255,255,240,0,0,0,7,255 DB 255,255,255,192,0,0,0,15 DB 255,255,255,255,0,0,0,0 DB 63,255,255,255,252,0,0,0 DB 0,255,255,255,255,248,0,0 DB 255,255,192,0,0,0,15,255 DB 255,255,255,128,0,0,0,31 DB 255,255,255,255,0,0,0,0 DB 31,255,255,255,254,0,0,0 DB 0,63,255,255,255,254,0,0 DB 255,255,0,0,0,0,63,255 DB 255,255,255,0,0,0,0,31 DB 255,255,255,255,0,0,0,0 DB 31,255,255,255,255,0,0,0 DB 0,31,255,255,255,255,128,0 DB 255,252,0,0,0,0,127,255 DB 255,255,254,0,0,0,0,63 DB 255,255,255,255,0,0,0,0 DB 15,255,255,255,255,128,0,0 DB 0,7,255,255,255,255,224,0 DB 255,240,0,0,0,0,255,255 DB 255,255,252,0,0,0,0,63 DB 255,255,255,255,0,0,0,0 DB 15,255,255,255,255,192,0,0 DB 0,3,255,255,255,255,248,0 DB 255,192,0,0,0,3,255,255 DB 255,255,248,0,0,0,0,127 DB 255,255,255,255,0,0,0,0 DB 7,255,255,255,255,224,0,0 DB 0,1,255,255,255,255,254,0 DB 255,0,0,0,0,7,255,255 DB 255,255,240,0,0,0,0,127 DB 255,255,255,255,0,0,0,0 DB 7,255,255,255,255,240,0,0 DB 0,0,127,255,255,255,255,128 DB 252,0,0,0,0,31,255,255 DB 255,255,224,0,0,0,0,255 DB 255,255,255,255,0,0,0,0 DB 3,255,255,255,255,248,0,0 DB 0,0,63,255,255,255,255,224 title_memory = $5000 pause_memory = $6800 screen_memory = $7400 pmbase = $7800 play1 = pmbase+$0500 play2 = pmbase+$0600 play3 = pmbase+$0700 starfield = pmbase display_list DB $30,$30,$70,$F0 ; space DB $42 DW viewport DB $42 DW screen_memory DB $02,$02,$02,$02,$02,$02,$02,$02 DB $02,$02,$02,$02,$02 ; horizon DB $44 DW horizon ; landscape scroll_area DB $4F DW terrain_data DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$00 ; control panel DB $42 DW control_panel DB $00,$02,$02,$00,$02 DB $41 DW display_list start LDA #LOW busted STA $02 LDA #HIGH busted STA $03 LDA #$02 STA $09 LDA #$00 STA $244 STA toggle STA pointer STA $D4 LDA #$01 STA number_of_ships LDA #$03 STA $D20F STA $D01D LDA #LOW kb_int STA $0208 LDA #HIGH kb_int STA $0209 LDA #$40 STA $D20E LDA #HIGH pmbase STA $D407 LDA #$80 STA $D40E LDA #$3E STA $D400 JSR clr_pause_display JSR set_up_letters main_program JSR wait_for_start JSR vb_wait LDA #$00 STA $D400 LDA #LOW display_list STA $D402 LDA #HIGH display_list STA $D403 LDA #LOW dli STA $200 LDA #HIGH dli STA $201 LDA #$DE STA $D013 LDA #$3C STA $D014 LDA #$8C STA $D015 JSR pm_init LDX #$04 loop1 LDA colours,X STA $D016,X DEX BPL loop1 JSR clr_screen LDA #$00 STA released STA chr_offset STA $D208 LDX #$02 horiz_init STA p1x,X DEX BPL horiz_init LDA #$FF STA left_frame STA right_frame STA shakin STA tons LDA #$78 STA x_cursor STA y_cursor LDA #$10 STA shields+$01 STA shields+$02 LDX #$04 loop70 STA score,X DEX BPL loop70 LDA #$11 STA shields LDA #$04 STA llength JSR vb_wait LDA #$3E STA $D400 set_level LDA number_of_ships STA alive_ships JSR init_fleet JSR vb_waste loop3 JSR vb_wait JSR handle_ship JSR move_missiles JSR vb_waste JSR vb_wait JSR move_land JSR move_cursor JSR fade_em JSR vb_waste JSR vb_wait JSR move_missiles JSR effects JSR play_keys JSR vb_waste JSR vb_wait JSR move_land JSR move_cursor JSR fade_em JSR vb_waste LDA alive_ships BNE loop3 JSR vb_wait JSR up_wave LDA number_of_ships CMP #$FF BEQ set_level CLC ADC #$01 STA number_of_ships BNE set_level colours DB $00,$0C,$00,$46,$00 llength DB $00 lcol_1 DB $44 lcol_2 DB $4A up_wave LDX #$01 wave_loop LDA wave,X CLC ADC #$01 CMP #$1A BEQ next_wave_digit STA wave,X RTS next_wave_digit LDA #$10 STA wave,X DEX BPL wave_loop RTS init_fleet LDX #$00 init1loop JSR init_ship INX CPX number_of_ships BNE init1loop RTS vb_wait LDA $D40B BNE vb_wait RTS vb_waste LDA $D40B BEQ vb_waste RTS move_land LDX llength INX CPX #$05 BNE set_llength LDA lcol_1 PHA LDA lcol_2 STA lcol_1 PLA STA lcol_2 LDX #$01 set_llength STX llength RTS dli PHA TXA PHA TYA PHA LDX #$8B loop6 STX $D40A STX $D018 DEX CPX #$83 BNE loop6 LDA #$41 LDX #HIGH character_set STA $D40A STA $D01B STX $D409 LDA starfield+$6F PHA LDX #$6E loop4 LDA starfield,X STA $D40A STA $D004 STA starfield+$01,X STX $D012 DEX BNE loop4 PLA STA starfield+$01 LDA #$00 STA $D40A STA $D004 LDA #$01 STA $D40A STA $D01B LDX #$08 loop8 STX $D40A DEX BNE loop8 LDA lcol_1 LDY lcol_2 STA $D017 STY $D018 LDX llength lloop_1 STX $D40A DEX BNE lloop_1 STA $D018 STY $D017 LDX #$05 lloop_2 STX $D40A DEX BNE lloop_2 STA $D017 STY $D018 LDX #$06 lloop_3 STX $D40A DEX BNE lloop_3 STA $D018 STY $D017 LDX #$07 lloop_4 STX $D40A DEX BNE lloop_4 STA $D017 STY $D018 LDX #$08 lloop_5 STX $D40A DEX BNE lloop_5 LDX llength CPX #$04 BEQ lskip_1 STA $D018 STY $D017 lloop_6 STX $D40A INX CPX #$04 BNE lloop_6 lskip_1 LDA #$0C STA $D40A STA $D017 LDX #$8B LDA #$E0 STA $D40A STX $D018 STA $D409 DEX loop7 STX $D40A STX $D018 DEX CPX #$83 BNE loop7 LDA #$00 STA $D40A STA $D017 LDX #$CB loop9 STX $D40A STX $D018 STX $D40A DEX CPX #$C3 BNE loop9 LDA #$0C STA $D40A STA $D017 LDX #$8B loop11 STX $D40A STX $D018 DEX CPX #$83 BNE loop11 PLA TAY PLA TAX PLA RTI viewport DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 214,246,233,229,247 DB 240,239,242,244,194 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 control_panel DB 0,0,0,0,0,0,0,0,0,0,0,0 DB 214,227,239,238,244,242,239,236 DB 128,240,225,238,229,236,194 DB 0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0 DB 51,'core',0,0,0,0,0 DB 51,'hields',0,0,0,0,0 DB 55,'ave' DB 0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0 DB 16,16,16,16,16,0,0,0,0,0 DB 0,17,16,16,0,5,0,0,0,0,0,0 DB 0,16,17,0 DB 0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0 DB 48,'rogrammed',0,34,'y',0 DB 48,'aul',0,44,'ay' DB 0,0,0,0,0,0,0,0,0 score = control_panel+87 shields = control_panel+98 wave = control_panel+110 evaluate_address ; take the coordinates x,y in $F0,$F1 ; and return the screen address in ; $CC,$CD TXA PHA ; first evaluate 40*y LDA #$00 STA $CD LDA $F1 ASL A ; 2*y ROL $CD ASL A ; 4*y ROL $CD ASL A ; 8*y ROL $CD STA $CE ; save 8*y LDX $CD STX $CF ASL A ; 16*y ROL $CD ASL A ; 32*y ROL $CD CLC ; add 32*y and 8*y ADC $CE STA $CC LDA $CD ADC $CF STA $CD ; now add in x LDA $CC CLC ADC $F0 STA $CC BCC skip2 INC $CD skip2 ; and add screen memory LDA $CC CLC ADC #LOW screen_memory STA $CC LDA $CD ADC #HIGH screen_memory STA $CD PLA TAX ; and return RTS draw_big_ship ; draw a big space ship at ; coordinates x,y specified in $F0, ; $F1 JSR evaluate_address LDA #$09 CLC ADC chr_offset LDY #$05 loop20 STA ($CC),Y SEC SBC #$01 DEY BPL loop20 LDA #$0F CLC ADC chr_offset LDY #$2D loop21 STA ($CC),Y SEC SBC #$01 DEY CPY #$27 BNE loop21 RTS draw_medium_ship ; draw a medium space ship at ; coordinates x,y specified in $F0, ; $F1 JSR evaluate_address LDA #$13 CLC ADC chr_offset LDY #$03 loop22 STA ($CC),Y SEC SBC #$01 DEY BPL loop22 LDA #$17 CLC ADC chr_offset LDY #$2B loop23 STA ($CC),Y SEC SBC #$01 DEY CPY #$27 BNE loop23 RTS draw_small_ship ; draw a small space ship at ; coordinates x,y specified in $F0, ; $F1 JSR evaluate_address LDA #$1A CLC ADC chr_offset LDY #$02 loop24 STA ($CC),Y SEC SBC #$01 DEY BPL loop24 RTS erase_big_ship LDA #$00 over_big_write PHA JSR evaluate_address PLA LDY #$05 loop30 STA ($CC),Y DEY BPL loop30 LDY #$2D loop31 STA ($CC),Y DEY CPY #$27 BNE loop31 RTS erase_middle_ship LDA #$00 over_middle_write PHA JSR evaluate_address PLA LDY #$03 loop32 STA ($CC),Y DEY BPL loop32 LDY #$2B loop33 STA ($CC),Y DEY CPY #$27 BNE loop33 RTS erase_small_ship LDA #$00 over_small_write PHA JSR evaluate_address PLA LDY #$02 loop34 STA ($CC),Y DEY BPL loop34 RTS init_ship LDA $D20A AND #$3F CMP #$23 BPL init_ship STA ship_x,X LDA #$0E STA ship_y,X LDA #$FF STA ship_direction,X LDA #$20 STA ship_stage,X LDA $D20A AND #$7F STA ship_counter,X RTS wipe_ship BNE test1 JMP erase_small_ship test1 CMP #$01 BNE test2 JMP erase_medium_ship test2 JMP erase_big_ship draw_ship BNE test3 JMP draw_small_ship test3 CMP #$01 BNE test4 JMP draw_medium_ship test4 JMP draw_big_ship handle_ship LDX #$00 STX wings main_loop LDA ship_stage,X CMP #$03 BMI move_ship AND #$10 BNE dying LDA ship_stage,X AND #$20 BEQ next_ship DEC ship_counter,X BNE next_ship LDA #$00 STA ship_stage,X LDA #$09 STA ship_counter,X next_ship INX CPX number_of_ships BNE main_loop RTS dying DEC ship_counter,X BMI dead LDA #$17 STA chr_offset LDA ship_x,X STA $F0 LDA ship_y,X STA $F1 LDA ship_stage,X AND #$03 JSR draw_ship LDA #$00 STA chr_offset JMP next_ship dead LDA ship_x,X STA $F0 LDA ship_y,X STA $F1 LDA ship_stage,X AND #$03 JSR wipe_ship LDA #$03 STA ship_stage,X DEC alive_ships JMP next_ship move_ship LDA ship_x,X STA $F0 LDA ship_y,X STA $F1 LDA ship_stage,X JSR wipe_ship DEC ship_counter,X BNE skip10 LDA #$09 STA ship_counter,X INC ship_stage,X LDA ship_stage,X CMP #$03 BMI skip10 JSR down_shields LDA #$04 STA shakin JSR init_ship JMP next_ship skip10 LDA ship_y,X CLC ADC ship_direction,X STA ship_y,X STA $F1 STA wings BNE skip11 LDA #$01 STA ship_direction,X skip11 LDA $D20A CMP #$19 BCS skip12 LDA ship_x,X BEQ draw_it DEC ship_x,X BPL draw_it skip12 LDA $D20A CMP #$19 BCS draw_it LDA ship_x,X CMP #$22 BEQ draw_it INC ship_x,X draw_it LDA ship_x,X STA $F0 LDA ship_stage,X JSR draw_ship JMP next_ship move_cursor LDA $D010 BNE no_fire LDA released BEQ proceed LDA #$00 STA released try_left LDA left_frame BPL try_right JMP fire_left_missile try_right LDA right_frame BPL proceed JMP fire_right_missile no_fire STA released proceed LDY #$0F LDX y_cursor LDA #$00 loop50 STA play1,X INX DEY BPL loop50 LDA $D300 AND #$0F STA $CC LDX toggle BEQ try0 LDX #$00 STX $EF LSR A ROL $EF LSR A ROL $EF LDA $CC AND #$FC ORA $EF STA $CC try0 LSR $CC BCS try1 LDA y_cursor SEC SBC #$08 STA y_cursor try1 LSR $CC BCS try2 LDA y_cursor CLC ADC #$08 STA y_cursor try2 LSR $CC BCS try3 LDA x_cursor SEC SBC #$08 STA x_cursor try3 LSR $CC BCS check1 LDA x_cursor CLC ADC #$08 STA x_cursor check1 LDA x_cursor CMP #$30 BCS check2 LDA #$30 STA x_cursor BPL check3 check2 CMP #$C9 BCC check3 LDA #$C8 STA x_cursor check3 LDA y_cursor CMP #$28 BCS check4 LDA #$28 STA y_cursor BPL draw_cursor check4 CMP #$B1 BCC draw_cursor LDA #$B0 STA y_cursor draw_cursor LDY #$0F LDX y_cursor loop51 LDA cross_hair,Y STA play1,X INX DEY BPL loop51 LDA x_cursor STA $D001 STA p1x RTS cross_hair DB 0,84,146,146,16,16,16,238 DB 238,16,16,16,146,146,84,0 x_cursor = $F2 y_cursor = $F3 fire_left_missile LDA x_cursor SEC SBC #$30 LSR A LSR A LSR A STA left_x_inc LDA #$B0 SEC SBC y_cursor LSR A LSR A LSR A STA left_y_dec set_left_fire LDA #$08 STA left_frame LDA #$30 STA x_left LDA #$B0 STA y_left LDA #$04 STA tons JMP draw_left_missile move_left_missile LDA left_frame BPL left_is_live RTS left_is_live LDY #$0F LDX y_left LDA #$00 loop60 STA play2,X INX DEY BPL loop60 LDA x_left CLC ADC left_x_inc STA x_left LDA y_left SEC SBC left_y_dec STA y_left DEC left_frame BMI left_burned_out draw_left_missile LDY #$0F LDX y_left loop61 LDA photon,Y AND $D20A STA play2,X INX DEY BPL loop61 LDA x_left STA $D002 STA p2x left_burned_out RTS left_frame = $F4 left_x_inc = $F5 left_y_dec = $F6 x_left = $F7 y_left = $F8 fire_right_missile LDA #$C8 SEC SBC x_cursor LSR A LSR A LSR A STA right_x_dec LDA #$B0 SEC SBC y_cursor LSR A LSR A LSR A STA right_y_dec LDA #$08 STA right_frame LDA #$C8 STA x_right LDA #$B0 STA y_right LDA #$04 STA tons JMP draw_right_missile move_right_missile LDA right_frame BPL right_is_live RTS right_is_live LDY #$0F LDX y_right LDA #$00 loop62 STA play3,X INX DEY BPL loop62 LDA x_right SEC SBC right_x_dec STA x_right LDA y_right SEC SBC right_y_dec STA y_right DEC right_frame BMI right_burned_out draw_right_missile LDY #$0F LDX y_right loop63 LDA photon,Y AND $D20A STA play3,X INX DEY BPL loop63 LDA x_right STA $D003 STA p3x right_burned_out RTS right_frame = $F9 right_x_dec = $FA right_y_dec = $FB x_right = $FC y_right = $FD released = $FE photon DB 24,60,126,126,126,255,255,255 DB 255,255,255,126,126,126,60,24 move_missiles JSR test_left_missile JSR test_right_missile JSR move_left_missile JMP move_right_missile check_missile_hit SEC SBC #$28 LSR A LSR A LSR A STA y_missile LDA x_missile SEC SBC #$30 LSR A LSR A SEC SBC ship_x,X CLC ADC #$01 BMI no_hit PHA LDA ship_stage,X TAY PLA CMP x_ranges,Y BPL no_hit LDA y_missile SEC SBC ship_y,X CLC ADC #$01 BMI no_hit CMP y_ranges,Y BPL no_hit a_hit LDA #$08 STA hitz SEC RTS no_hit CLC RTS x_ranges DB $03,$04,$06 y_ranges DB $01,$02,$02 x_missile = $E0 y_missile = $E1 test_left_missile LDA left_frame BEQ left1test RTS left1test LDX #$00 left1loop LDA ship_stage,X CMP #$03 BMI left2test left1next INX CPX number_of_ships BNE left1loop RTS left2test LDA x_left STA x_missile LDA y_left JSR check_missile_hit BCC left_miss left_hit JSR up_shields JSR up_score LDA ship_stage,X ORA #$10 STA ship_stage,X LDA #$08 STA ship_counter,X RTS left_miss JMP left1next test_right_missile LDA right_frame BEQ right1test RTS right1test LDX #$00 r1loop LDA ship_stage,X CMP #$03 BMI right2test r1next INX CPX number_of_ships BNE r1loop RTS right2test LDA x_right STA x_missile LDA y_right JSR check_missile_hit BCC right_miss right_hit JSR up_shields JSR up_score LDA ship_stage,X ORA #$10 STA ship_stage,X LDA #$08 STA ship_counter,X RTS right_miss JMP r1next chr_offset = $FF fade_em LDX #$00 fade_loop LDA $D20A AND #$03 TAY LDA character_set+$0020,X AND mask,Y STA character_set+$00D8,X INX CPX #$B6 BNE fade_loop RTS mask DB $00,$0F,$F0,$FF number_of_ships = $E2 alive_ships = $E3 up_shields LDA shields CMP #$11 BEQ done1 LDA number_of_ships SEC SBC #$01 AND #$F8 LSR A LSR A LSR A CMP #$04 BMI found_boost LDA #$03 found_boost TAY LDA lo_boosts,Y STA lo_add LDA hi_boosts,Y STA hi_add LDA shields+$02 CLC ADC lo_add CMP #$1A BMI skip80 INC hi_add SEC SBC #$0A skip80 STA shields+$02 LDA shields+$01 CLC ADC hi_add CMP #$1A BMI skip81 LDA #$11 STA shields LDA #$10 STA shields+$01 STA shields+$02 done1 RTS skip81 STA shields+$01 RTS lo_add = $E4 hi_add = $E5 lo_boosts DB $02,$05,$00,$00 hi_boosts DB $00,$00,$01,$02 up_score LDY #$04 LDA score,Y CLC ADC #$05 CMP #$1A BMI done3 loop83 SEC SBC #$0A STA score,Y DEY BMI overflow LDA score,Y CLC ADC #$01 CMP #$1A BPL loop83 done3 STA score,Y RTS overflow RTS down_shields LDY #$02 LDA shields,Y SEC SBC #$04 CMP #$10 BPL done2 loop82 CLC ADC #$0A STA shields,Y DEY BMI no_shields LDA shields,Y SEC SBC #$01 CMP #$10 BMI loop82 done2 STA shields,Y RTS no_shields LDA #$10 STA shields STA shields+$01 STA shields+$02 game_over JSR time_to_die JSR off_sound LDX #$03 LDA #$00 off_saves STA freqs,X STA dists,X DEX BPL off_saves LDX #$00 TXS JMP main_program effects LDX shakin BMI no_shakin LDA shake_lines,X STA display_list LDA shake_freq,X STA $D200 STA freq1 LDA shake_dist,X STA $D201 STA dist1 DEC shakin no_shakin LDA wings STA $D202 STA freq2 STA $D203 STA dist2 LDX tons BMI no_tons LDA pho_freq,X STA $D204 STA freq3 LDA pho_dist,X STA $D205 STA dist3 DEC tons no_tons LDX hitz BMI no_hitz LDA hit_freq,X STA $D206 STA freq4 LDA hit_dist,X STA $D207 STA dist4 DEC hitz no_hitz RTS shakin = $E6 wings = $E7 tons = $E8 hitz = $E9 shake_lines DB $30,$20,$40,$10,$50 shake_freq DB $00,$80,$B0,$D0,$E0 shake_dist DB $00,$82,$84,$86,$88 pho_freq DB 0,160,140,120,48 pho_dist DB 0,$8A,$8C,$8E,$C6 hit_freq DB 0,240,230,220,210,200,190,180 DB 170 hit_dist DB $00,$88,$8A,$8C,$8C,$8E,$8E,$8E DB $8C freqs freq1 DB 0 freq2 DB 0 freq3 DB 0 freq4 DB 0 dists dist1 DB 0 dist2 DB 0 dist3 DB 0 dist4 DB 0 kb_int LDA $D209 STA the_key PLA RTI the_key = $EA wait_for_start JSR set_hi_up JSR try_hi_score key_reset LDA #$FF STA the_key press_wait LDA $D01F CMP #$06 ; start ? BNE try_a_key LDX #$00 BEQ go_level try_a_key LDA the_key CMP #$2D ; toggle ? BNE no_toggle LDA toggle EOR #$FF STA toggle JMP key_reset no_toggle CMP #$12 ; continue ? BEQ go_there LDX #$05 key_loop CMP lvl_keys,X ; level ? BEQ go_level DEX BNE key_loop JMP press_wait go_level LDA lvl_number,X STA number_of_ships LDA lvl_lo,X STA wave+$01 LDA lvl_hi,X STA wave go_there LDA #$FF STA the_key JMP off_sound toggle = $EB pointer = $EC lvl_keys DB $FF,$1F,$1E,$1A,$18,$1D lvl_number DB 1,10,20,30,40,50 lvl_lo DB $11,$10,$10,$10,$10,$10 lvl_hi DB $10,$11,$12,$13,$14,$15 play_keys LDA the_key CMP #$1C BNE no_esc JMP game_over no_esc CMP #$2D BNE dont_toggle LDA toggle EOR #$FF STA toggle LDA #$FF STA the_key RTS dont_toggle CMP #$21 BNE no_space JSR off_sound JSR vb_wait LDA #LOW dl_pause STA $D402 LDA #HIGH dl_pause STA $D403 LDA #$40 STA $D01B LDA #$E0 STA $D01A LDX #$02 LDA #$00 pm_erase STA $D001,X DEX BPL pm_erase LDA #$FF STA the_key LDA #$05 STA $D208 LDA #$A6 STA $D201 STA $D205 LDA #$80 STA $D200 LDA #$40 STA $D204 pause_loop JSR wiggle LDA the_key CMP #$21 BNE pause_loop JSR vb_wait LDA #LOW display_list STA $D402 LDA #HIGH display_list STA $D403 LDA #$01 STA $D01B LDA #$00 STA $D01A LDX #$02 pm_draw LDA p1x,X STA $D001,X DEX BPL pm_draw LDA #$FF STA the_key LDA #$00 STA $D208 JSR on_sound no_space RTS p1x = $D0 p2x = $D1 p3x = $D2 off_sound LDX #$07 LDA #$00 off_loop STA $D200,X DEX BPL off_loop RTS on_sound LDX #$03 LDY #$06 on_loop LDA freqs,X STA $D200,Y LDA dists,X STA $D201,Y DEX DEY DEY BPL on_loop RTS clr_screen LDA #LOW screen_memory STA $DE LDA #HIGH screen_memory STA $DF LDX #$04 JMP rub_memory clr_pause_display LDA #LOW pause_memory STA $DE LDA #HIGH pause_memory STA $DF LDX #$08 JMP rub_memory dl_pause DB $70,$70,$70 DB $4F DW pause_memory DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F DB $41 DW dl_pause wiggle JSR vb_wait LDX #$0D wig1 LDA pos_lo,X STA $ED LDA pos_hi,X STA $EE LDA chars_lo,X STA wig2+$01 LDA chars_hi,X STA wig2+$02 TXA PHA LDX #$00 LDY #$00 wig2 LDA $FFFF,X STA ($ED),Y LDA $ED CLC ADC #$28 STA $ED BCC skip90 INC $EE skip90 INX CPX #$18 BNE wig2 PLA TAX DEX BPL wig1 LDX #$0D wig3 LDA updates-$01,X STA updates,X DEX BNE wig3 LDX pointer CPX #$30 BNE cont_sequence LDX #$00 STX pointer cont_sequence LDA sequence,X STA updates INC pointer LDX #$0D wig4 LDA updates,X BMI going_down going_up LDA pos_lo,X CLC ADC updates,X STA pos_lo,X BCC lets_resume INC pos_hi,X BNE lets_resume going_down LDA pos_lo,X CLC ADC updates,X STA pos_lo,X BCS lets_resume DEC pos_hi,X lets_resume DEX BPL wig4 RTS updates DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0 pos_lo DB $3D,$3E,$3F,$40,$41,$42,$43,$44 DB $45,$46,$47,$48,$49,$4A pos_hi DB $6A,$6A,$6A,$6A,$6A,$6A,$6A,$6A DB $6A,$6A,$6A,$6A,$6A,$6A u1 = $28 u2 = $50 u3 = $78 d1 = $D8 d2 = $B0 d3 = $88 sequence DB 0,0,0 DB u1,u1,u1,u1,d1,d1,d1,d1 DB 0,0 DB u1,u1,u1,u2,u2,u3 DB d3,d2,d2,d1,d1,d1 DB 0,0,0 DB u1,u2,u3,d3,d2,d1 DB 0,0 DB u1,u1,u1,u1,u1,u1,d3,d2,d1 DB 0,0,0 chars_lo DB LOW char1,LOW char2,LOW char3 DB LOW char4,LOW char5,LOW char6 DB LOW char7,LOW char8,LOW char9 DB LOW char10,LOW char11 DB LOW char12,LOW char13 DB LOW char14 chars_hi DB HIGH char1,HIGH char2,HIGH char3 DB HIGH char4,HIGH char5,HIGH char6 DB HIGH char7,HIGH char8,HIGH char9 DB HIGH char10,HIGH char11 DB HIGH char12,HIGH char13 DB HIGH char14 char1 DB 0,0,0,0 DB 136,153,170,187,204,221,238,255 DB 255,238,221,204,187,170,153,0 DB 0,0,0,0 char2 DB 0,0,0,0 DB 136,153,170,187,0,13,14,0 DB 15,14,13,12,187,170,153,0 DB 0,0,0,0 char3 DB 0,0,0,0 DB 136,153,170,187,204,13,14,255 DB 255,238,221,204,187,170,153,0 DB 0,0,0,0 char4 DB 0,0,0,0 DB 136,153,170,187,192,13,14,0 DB 15,14,13,12,187,170,153,0 DB 0,0,0,0 char5 DB 0,0,0,0 DB 136,153,170,187,204,13,14,15 DB 15,14,13,12,187,170,153,0 DB 0,0,0,0 char6 DB 0,0,0,0 DB 136,153,170,187,12,13,14,15 DB 15,14,13,0,187,170,153,0 DB 0,0,0,0 char7 DB 0,0,0,0 DB 136,153,170,187,12,13,14,15 DB 15,14,13,12,187,170,153,0 DB 0,0,0,0 char8 DB 0,0,0,0 DB 136,153,170,187,0,13,14,0 DB 255,238,221,0,187,170,153,0 DB 0,0,0,0 char9 DB 0,0,0,0 DB 136,153,170,187,12,221,238,15 DB 15,14,13,12,187,170,153,0 DB 0,0,0,0 char10 DB 0,0,0,0 DB 136,153,170,187,0,13,14,0 DB 15,14,13,0,187,170,153,0 DB 0,0,0,0 char11 DB 0,0,0,0 DB 136,153,170,187,12,221,238,255 DB 255,238,221,12,187,170,153,0 DB 0,0,0,0 char12 DB 0,0,0,0 DB 136,153,170,187,0,13,14,15 DB 15,14,13,0,187,170,153,0 DB 0,0,0,0 char13 DB 0,0,0,0 DB 136,153,170,187,204,13,14,15 DB 15,14,13,204,187,170,153,0 DB 0,0,0,0 char14 DB 0,0,0,0 DB 136,153,170,187,204,221,238,255 DB 255,238,221,204,187,170,153,0 DB 0,0,0,0 set_up_letters LDA #LOW title_memory STA $DE LDA #HIGH title_memory STA $DF LDX #$0B JSR rub_memory LDX #$05 here LDA lo_letters,X STA $DC LDA hi_letters,X STA $DD LDA lo_goes,X STA $DE LDA hi_goes,X STA $DF TXA PHA CMP #$04 BMI skip96 LDX #$0F BPL loop99 skip96 LDX #$27 loop99 LDY #$05 get1 LDA ($DC),Y STA ($DE),Y DEY BPL get1 LDA $DC CLC ADC #$06 STA $DC BCC skip97 INC $DD skip97 LDA $DE CLC ADC #$28 STA $DE BCC skip95 INC $DF skip95 DEX BPL loop99 PLA TAX DEX BPL here RTS lo_letters DB LOW s_letter DB LOW t_letter DB LOW a_letter DB LOW r_letter DB LOW rid_letters DB LOW er_letters hi_letters DB HIGH s_letter DB HIGH t_letter DB HIGH a_letter DB HIGH r_letter DB HIGH rid_letters DB HIGH er_letters lo_goes DB $58,$0E,$14,$6A,$17,$1D hi_goes DB $50,$50,$50,$50,$57,$57 set_hi_up JSR off_sound JSR vb_wait LDA #LOW hi_dlist STA $D402 LDA #HIGH hi_dlist STA $D403 LDA #LOW hi_dli STA $0200 LDA #HIGH hi_dli STA $0201 LDA #$D0 STA $D018 LDA #$8C STA $D019 LDA #$05 STA $D208 LDA #$AA STA $D201 STA $D203 LDA #$A6 STA $D205 STA $D207 LDA #$00 STA decay LDA #$27 STA note LDA #$01 STA left_to_right JSR pm_init LDA #$00 STA left_to_right RTS hi_dlist DB $70,$70,$F0 DB $4F DW title_memory DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F,$0F,$0F,$0F,$0F DB $0F,$0F,$0F,$0F DB $70 DB $42 DW scores_memory DB $70,$06,$70,$06,$70,$06 DB $70,$06,$70,$06,$70 DB $02 DB $41 DW hi_dlist scores_memory DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 40,41,39,40,0 DB 51,35,47,50,37,51 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0 hi_line DB 0,0,0 DB 97,110,97,108,111,103,0,0,0 DB 16,17,16,16,16 DB 0,0,0 hi_start = hi_line+12 DB 0,0,0 DB 97,110,97,108,111,103,0,0,0 DB 16,16,21,16,16 DB 0,0,0 DB 0,0,0 DB 97,110,97,108,111,103,0,0,0 DB 16,16,18,21,16 DB 0,0,0 DB 0,0,0 DB 97,110,97,108,111,103,0,0,0 DB 16,16,17,16,16 DB 0,0,0 DB 0,0,0 DB 97,110,97,108,111,103,0,0,0 DB 16,16,16,21,16 DB 0,0,0 DB 0,0,0,0,0,0,0,0,0 DB 48,'rogrammed',0,34,'y',0 DB 48,'aul',0,44,'ay' DB 0,0,0,0,0,0,0,0,0 hi_dli PHA TXA PHA LDX #$E0 LDA #$41 STA $D40A STX $D01A STA $D01B LDX #$3C dli8loop LDA starfield,X STA $D40A STA $D004 STX $D012 DEC starfield,X TXA LSR A BCC dli98skip DEC starfield,X dli98skip DEX BNE dli8loop STX $D40A STX $D01A LDA #$01 STA $D01B LDX #$6D dli9loop TXA ASL A STA $D40A STA $D017 CLC ADC #$40 STA $D016 LDA starfield+$3C,X STA $D004 STX $D012 DEC starfield+$3C,X TXA LSR A BCC dli99skip DEC starfield+$3C,X dli99skip DEX BNE dli9loop STX $D004 DEC decay BPL decayin LDX note CPX #$28 BNE ok_note LDX #$00 ok_note LDA pitch,X STA $D200 CLC ADC #$01 STA $D202 LSR A STA $D204 CLC ADC #$01 STA $D206 INX STX note LDA #$07 STA decay decayin PLA TAX PLA RTI decay = $DB note = $DC pitch DB 72,110,74,111,72,110,74,111 DB 64,126,66,127,64,126,66,127 DB 72,110,74,111,72,110,74,111 DB 64,126,66,127,64,126,66,127 DB 64,74,84,94,62,72,82,92 rub_memory LDY #$00 TYA rub_loop STA ($DE),Y INY BNE rub_loop INC $DF DEX BNE rub_loop RTS pm_init LDA #LOW play1 STA $DE LDA #HIGH play1 STA $DF LDX #$03 JSR rub_memory LDX #$00 loop5 LDA $D20A LDY left_to_right BNE is_skip CMP #$2F BCC loop5 CMP #$CF BCS loop5 is_skip STA starfield,X LDA #$01 STA pmbase+$0300,X INX BNE loop5 RTS left_to_right DB $00 time_to_die LDA #$C8 STA $D3 loop88 STA $D40A LDA $D20A AND #$70 STA display_list LDY #$40 exploding LDX #$03 blowing LDA $D20A STA $D004,X STA $D012,X DEX BPL blowing STA $D00C STA $D011 AND #$07 TAX LDA $D20A AND #$EF STA $D200,X DEY BNE exploding DEC $D3 BNE loop88 LDA #$30 STA display_list LDA #$00 STA $D00C RTS try_hi_score LDA $D4 BEQ first_game LDA #LOW hi_start STA $D5 LDA #HIGH hi_start STA $D6 LDX #$00 hs1loop LDY #$00 hs2loop LDA ($D5),Y CMP score,Y BCC a_new_hi BNE hs1skip INY CPY #$05 BNE hs2loop hs1skip LDA $D5 CLC ADC #$14 STA $D5 BCC hs2skip INC $D6 hs2skip INX CPX #$05 BNE hs1loop RTS a_new_hi JMP add_high_score first_game INC $D4 RTS add_high_score STX $D9 LDA #LOW [hi_line+60] STA $D5 LDA #HIGH [hi_line+60] STA $D6 LDA #$04 SEC SBC $D9 TAX ah1loop BEQ ah1skip LDA $D5 CLC ADC #$14 STA $D7 LDA $D6 ADC #$00 STA $D8 LDY #$13 ah2loop LDA ($D5),Y STA ($D7),Y DEY BPL ah2loop LDA $D5 SEC SBC #$14 STA $D5 BCS ah2skip DEC $D6 ah2skip DEX BPL ah1loop ah1skip LDA #LOW [hi_line+$03] STA $D5 LDA #HIGH [hi_line+$04] STA $D6 LDA $D9 ASL A ASL A PHA CLC ADC $D5 STA $D5 BCC ah3skip INC $D6 ah3skip PLA ASL A ASL A CLC ADC $D5 STA $D5 BCC ah4skip INC $D6 ah4skip LDY #$07 ah3loop LDA name_buffer,Y TAX LDA name_characters,X STA ($D5),Y DEY BPL ah3loop LDA $D5 CLC ADC #$09 STA $D7 LDA $D6 ADC #$00 STA $D8 LDY #$04 ah4loop LDA score,Y STA ($D7),Y DEY BPL ah4loop LDY #$00 en1loop JSR delay LDA #$FF STA ($D5),Y JSR delay LDA name_buffer,Y TAX LDA name_characters,X STA ($D5),Y LDA $D010 BEQ en5skip LDA $D300 AND #$0F CMP #$07 BNE en1skip INY CPY #$08 BMI en1loop LDY #$00 BPL en1loop en1skip CMP #$0B BNE en2skip DEY BPL en1loop LDY #$07 BPL en1loop en2skip CMP #$0D BNE en3skip LDA name_buffer,Y SEC SBC #$01 BPL en4skip LDA #$24 BPL en4skip en3skip CMP #$0E BNE en1loop LDA name_buffer,Y CLC ADC #$01 CMP #$25 BMI en4skip LDA #$00 en4skip STA name_buffer,Y JMP en1loop en5skip LDA $D010 BEQ en5skip RTS delay JSR vb_wait JSR vb_waste JSR vb_wait JSR vb_waste JSR vb_wait JMP vb_waste name_characters DB 0 a_char SET 97 ECHO 26 DB a_char a_char SET a_char+$01 ENDM a_char SET 80 ECHO 10 DB a_char a_char SET a_char+$01 ENDM name_buffer DB 0,0,0,0,0,0,0,0 busted LDA #$00 STA $D400 STA $D20E STA $D40E STA $D208 LDA #$03 STA $D20F LDA #LOW blister STA $D402 LDA #HIGH blister STA $D403 LDA #HIGH pmbase STA $D409 LDA #$0C STA $D017 LDA #$00 STA $D018 LDA #$23 STA $D400 LDA #$0E STA $D201 STA $D203 LDX #$01 STX $D200 INX STX $D202 bl1loop LDX #$7F bl2loop LDA $D20A STA pmbase,X DEX BPL bl2loop BMI bl1loop blister ECHO 14 DB $42 DW bline DB $02 ENDM DB $42 DW bline DB $41 DW blister bline DB 0,1,2,3,4,5,6,7 DB 8,9,10,11,12,13,14,15 DB 0,1,2,3,4,5,6,7 DB 8,9,10,11,12,13,14,15 DB 0,1,2,3,4,5,6,7 DB 8,9,10,11,12,13,14,15 DB 8,9,10,11,12,13,14,15 DB 0,1,2,3,4,5,6,7 DB 8,9,10,11,12,13,14,15 DB 0,1,2,3,4,5,6,7 DB 8,9,10,11,12,13,14,15 DB 0,1,2,3,4,5,6,7 s_letter DB 15,255,255,255,255,80 DB 255,255,255,255,255,245 DB 255,255,255,255,255,245 DB 255,255,255,255,255,245 DB 238,238,238,238,238,230 DB 238,238,238,238,238,230 DB 238,238,238,238,238,230 DB 238,238,238,238,238,230 DB 221,221,221,221,221,215 DB 221,221,221,221,221,215 DB 221,221,112,13,221,215 DB 221,221,112,13,221,215 DB 204,204,128,0,0,0 DB 204,204,128,0,0,0 DB 204,204,128,0,0,0 DB 204,204,128,0,0,0 DB 187,187,187,187,187,144 DB 187,187,187,187,187,185 DB 187,187,187,187,187,185 DB 187,187,187,187,187,185 DB 170,170,170,170,170,170 DB 170,170,170,170,170,170 DB 170,170,170,170,170,170 DB 10,170,170,170,170,170 DB 0,0,0,9,153,155 DB 0,0,0,9,153,155 DB 0,0,0,9,153,155 DB 0,0,0,9,153,155 DB 136,136,192,8,136,140 DB 136,136,192,8,136,140 DB 136,136,136,136,136,140 DB 136,136,136,136,136,140 DB 119,119,119,119,119,126 DB 119,119,119,119,119,126 DB 119,119,119,119,119,126 DB 119,119,119,119,119,126 DB 102,102,102,102,102,111 DB 102,102,102,102,102,111 DB 102,102,102,102,102,111 DB 6,102,102,102,102,240 t_letter DB 255,255,255,255,255,246 DB 255,255,255,255,255,246 DB 255,255,255,255,255,246 DB 255,255,255,255,255,246 DB 238,238,238,238,238,231 DB 238,238,238,238,238,231 DB 238,238,238,238,238,231 DB 238,238,238,238,238,231 DB 221,221,221,221,221,216 DB 221,221,221,221,221,216 DB 221,128,221,216,13,216 DB 0,0,221,216,0,0 DB 0,0,204,201,0,0 DB 0,0,204,201,0,0 DB 0,0,204,201,0,0 DB 0,0,204,201,0,0 DB 0,0,187,186,0,0 DB 0,0,187,186,0,0 DB 0,0,187,186,0,0 DB 0,0,187,186,0,0 DB 0,0,170,171,0,0 DB 0,0,170,171,0,0 DB 0,0,170,171,0,0 DB 0,0,170,171,0,0 DB 0,0,153,156,0,0 DB 0,0,153,156,0,0 DB 0,0,153,156,0,0 DB 0,0,153,156,0,0 DB 0,0,136,141,0,0 DB 0,0,136,141,0,0 DB 0,0,136,141,0,0 DB 0,0,136,141,0,0 DB 0,0,119,126,0,0 DB 0,0,119,126,0,0 DB 0,0,119,126,0,0 DB 0,0,119,126,0,0 DB 0,0,102,111,0,0 DB 0,0,102,111,0,0 DB 0,0,102,111,0,0 DB 0,0,102,111,0,0 a_letter DB 15,255,255,255,255,96 DB 15,255,255,255,255,96 DB 255,255,255,255,255,246 DB 255,255,255,255,255,246 DB 238,238,238,238,238,231 DB 238,238,238,238,238,231 DB 238,238,238,238,238,231 DB 238,238,238,238,238,231 DB 221,221,221,221,221,216 DB 221,221,221,221,221,216 DB 221,221,128,13,221,216 DB 221,221,128,13,221,216 DB 204,204,144,12,204,201 DB 204,204,144,12,204,201 DB 204,204,144,12,204,201 DB 204,204,144,12,204,201 DB 187,187,160,11,187,186 DB 187,187,160,11,187,186 DB 187,187,160,11,187,186 DB 187,187,160,11,187,186 DB 170,170,170,170,170,171 DB 170,170,170,170,170,171 DB 170,170,170,170,170,171 DB 170,170,170,170,170,171 DB 153,153,192,9,153,156 DB 153,153,192,9,153,156 DB 153,153,192,9,153,156 DB 153,153,192,9,153,156 DB 136,136,208,8,136,141 DB 136,136,208,8,136,141 DB 136,136,208,8,136,141 DB 136,136,208,8,136,141 DB 119,119,224,7,119,126 DB 119,119,224,7,119,126 DB 119,119,224,7,119,126 DB 119,119,224,7,119,126 DB 102,102,240,6,102,111 DB 102,102,240,6,102,111 DB 102,102,240,6,102,111 DB 102,102,240,6,102,111 r_letter DB 255,255,255,255,255,96 DB 255,255,255,255,255,96 DB 255,255,255,255,255,246 DB 255,255,255,255,255,246 DB 238,238,238,238,238,231 DB 238,238,238,238,238,231 DB 238,238,238,238,238,231 DB 238,238,238,238,238,231 DB 221,221,221,221,221,216 DB 221,221,221,221,221,216 DB 221,221,128,13,221,216 DB 221,221,128,13,221,216 DB 204,204,144,12,204,201 DB 204,204,144,12,204,201 DB 204,204,144,12,204,201 DB 204,204,144,12,204,201 DB 187,187,160,11,187,186 DB 187,187,160,11,187,186 DB 187,187,160,11,187,186 DB 187,187,160,11,187,186 DB 170,170,170,170,170,176 DB 170,170,170,170,171,0 DB 170,170,170,170,171,0 DB 170,170,170,170,170,176 DB 153,153,192,9,153,156 DB 153,153,192,9,153,156 DB 153,153,192,9,153,156 DB 153,153,192,9,153,156 DB 136,136,208,8,136,141 DB 136,136,208,8,136,141 DB 136,136,208,8,136,141 DB 136,136,208,8,136,141 DB 119,119,224,7,119,126 DB 119,119,224,7,119,126 DB 119,119,224,7,119,126 DB 119,119,224,7,119,126 DB 102,102,240,6,102,111 DB 102,102,240,6,102,111 DB 102,102,240,6,102,111 DB 102,102,240,6,102,111 rid_letters DB 8,136,136,136,136,136 DB 153,153,153,153,153,153 DB 170,170,170,170,170,170 DB 187,187,187,187,187,187 DB 192,12,192,0,192,12 DB 208,208,221,13,208,208 DB 224,224,238,14,224,224 DB 240,15,255,15,240,240 DB 240,240,255,15,240,240 DB 224,224,238,14,224,224 DB 208,208,221,13,208,208 DB 192,192,192,0,192,12 DB 187,187,187,187,187,187 DB 170,170,170,170,170,170 DB 153,153,153,153,153,153 DB 8,136,136,136,136,136 er_letters DB 136,136,136,136,0,0 DB 153,153,153,153,144,0 DB 170,170,170,170,160,0 DB 187,187,187,187,176,0 DB 192,0,192,12,192,0 DB 208,221,208,208,208,0 DB 224,238,224,224,224,0 DB 240,15,240,15,240,0 DB 240,255,240,240,240,0 DB 224,238,224,224,224,0 DB 208,221,208,208,208,0 DB 192,0,192,192,192,0 DB 187,187,187,187,176,0 DB 170,170,170,170,160,0 DB 153,153,153,153,144,0 DB 136,136,136,136,0,0 ship_x ship_y = ship_x+$0100 ship_direction = ship_y+$0100 ship_stage = ship_direction+$0100 ship_counter = ship_stage+$0100 end begining