A.N.A.L.O.G. ISSUE 57 / SEPTEMBER 1987 / PAGE 51
When this game fell out of our mailbag one morning, we knew it was something we just had to offer our renders. There was one small probiem, however. The object code was (and, of course, still is) over 10K. “That,” we said, “is too big to put in the magazine.” But somehow, we just couldn’t put it back in the mail fmrn whence it came. Neither did we want to offer it as a disk-only program, leaving some of our faithful readers out of the fun. So we’re trying something a bit unusual. Bear with us, okay?
We’ve divided the “M/L Editor” data for this game into two parts. The first is presented here, and the second will be found in next month’s issue. The complete game will be found on next month’s disk version, for those of you don’t wish to brave the wrath of digit paralysis (a common finger disease caused by typing over 10,000 pieces of data). Let us know what you think about this sort of thing. You’re the boss, after all.
And please refer to “M/L Editor” for typing instructions.
Troll War II is a two-player game, in which trolls war with wizards. The game consists of each player taking a turn, during which armies may be moved, enemies may be attacked, and the opponent’s castle may be stormed. The game is over when your opposition’s king is captured. Trolls are controlled by joystick 0, and wizards by joystick 1. Trolls move first.
On the main screen, the troll’s castle is located in the . upper left, and the wizard’s castle in the lower right.
Each turn consists of:
Movement phase: up to four armies may be moved. To select an army, move the pointer to the position occupied by the army to be relocated.
Press the trigger, and the army is now controlled—to be moved up, down, left or right. Horizontal movement is unlimited. Vertical motion, however, is restricted to a maximum combination of three rows up or down.
Once an army is in the destination position, press the trigger. The pointer will reappear. An army may be selected, moved and reselected to be moved again. Movement of any four armies concludes a movement phase. (Selecting an army without movement does not count as part of a movement phase. This allows an army to be unselected if chosen by mistake. Also, increasing armies [see below] does not count as part of the movement phase.) After the movement phase is completed, your turn is over, and your opponent gets a chance.
Increasing armies: at the middle of the main screen, located on the left side, there is a T, and on the right side is a W. The T is used by the troll player, and the W by the wizard player.
If the two spaces in front of your castle are unoccupied, then, by positioning the pointer on the correponding letter and pressing the trigger, you’ll get another army to appear in front of your castle. A player may have up to ten armies on the board at one time.
Fighting: to attack your opponent’s army, move your army into the opponent’s men. The screen will then change to the fight area. Movement here is in any direction (including diagonal). Armies may hide behind any playfield.
To destroy the opponent, your army must fire and hit the opposition with a missile. These may be fired left, right, up or down, by pressing the trigger and moving in the corresponding direction. Missiles will not go through playfield, and only one missile may be on the screen at one time. Once an army is destroyed, the main screen will reappear; however, the losing army will be removed, while the winner’s troops will remain in the position where they were at the time before the fight started.
Castle storming: storm the barricades by moving an attacking army into a castle. The screen will change, and attacking armies will race toward the castle’s defenders. The attacking player controls the gun opposite the castle, and fires at the gun guarding the fortress, to temporarily destroy that gun.
The player defending the castle fires at the attacking armies, to destroy them and to protect his defending armies. This castle storming is timed and will end in: (1) castle successfully defended, and the main screen reappearing; or (2) twelve defenders out of sixteen are lost, and the main screen reappears with the defender’s king appearing outside, in front of his castle.
When your opponent’s king is in front of his castle, the opponent may not move that king. As a result, he may not increase his armies. To win the game, one of your armies must move into the king. With this accomplished, your triumphant forces will fill the screen.
Scott Langston has his B.A. degree, with a major in Mathematics/Computer Science. As a hobby, he has programmed the Atari 800 home computer for a little over three years. He would like to credit Robert Ellingsworth as the design consultant on Troll War II.
1000 DATA 255,255,113,40,108,41,72,169,1,141,10,212,141,27,208,169,7014 1010 DATA 116,141,196,2,169,156,141,19 7,2,169,136,141,198,2,104,64,6430 1020 DATA 162,0,138,157,0,36,157,0,37, 157,0,38,157,0,39,157,1036 1030 DATA 0,35,232,208,238,96,160,21,1 38,153,0,40,202,136,16,248,7672 1040 DATA 96,169,4,141,40,40,141,41,40 ,169,71,141,48,2,169,112,3307 1050 DATA 141,49,2,169,32,141,7,212,16 9,62,141,47,2,169,3,141,3671 1060 DATA 29,208,169,20,141,111,2,169, 228,141,196,2,169,28,141,197,8327 1070 DATA 2,169,200,141,198,2,169,2,14 1,192,2,141,193,2,141,194,7434 1080 DATA 2,169,78,141,195,2,169,152,1 41,199,2,169,3,141,8,208,6374 1090 DATA 141,9,208,141,10,208,169,0,1 41,11,208,141,12,208,141,28,5908 1100 DATA 40,141,64,40,141,63,40,141,4 6,40,141,48,40,141,30,208,3478 1110 DATA 169,50,141,47,40,169,1,141,2 7,40,169,2,133,149,169,3,3263 1120 DATA 141,15,210,169,0,141,8,210,1 41,0,210,141,2,210,141,4,5595 1130 DATA 210,141,6,210,169,170,141,3, 210,141,5,210,141,7,210,141,8568 1140 DATA 1,210,96,169,80,141,0,208,16 9,112,141,1,208,169,144,141,9125 1150 DATA 2,208,160,48,162,7,169,204,1 53,0,36,153,0,37,153,0,2329 1160 DATA 38,169,109,41,104,42,51,153, 8,36,153,8,37,153,8,38,9942 1170 DATA 200,202,16,230,152,24,105,8, 168,192,202,144,219,96,24,165,9018 1180 DATA 0,109,102,40,133,0,165,1,105 ,0,133,1,96,56,165,0,619 1190 DATA 237,102,40,133,0,165,1,233,0 ,133,1,96,160,0,177,128,4420 1200 DATA 201,7,240,31,201,11,240,78,2 01,13,240,5,201,14,240,44,7386 1210 DATA 96,165,1,201,131,144,7,165,0 ,201,112,144,1,96,169,40,4833 1220 DATA 76,217,41,165,1,201,131,144, 7,165,0,201,150,144,1,96,5435 1230 DATA 169,1,32,26,42,32,133,41,32, 41,42,96,165,1,201,128,2796 1240 DATA 144,14,240,3,76,248,41,165,0 ,201,80,144,3,76,248,41,5716 1250 DATA 96,169,40,76,16,42,165,1,201 ,128,144,244,240,3,76,14,5730 1260 DATA 42,165,0,201,41,144,233,169, 1,32,26,42,32,148,41,32,1222 1270 DATA 41,42,96,141,102,40,173,23,4 0,145,0,200,173,24,40,145,4107 1280 DATA 0,96,160,0,177,0,141,23,40,1 69,70,145,0,200,177,0,4023 1290 DATA 141,24,40,169,71,145,0,96,16 9,255,141,44,40,173,47,40,4705 1300 DATA 141,45,40,206,45,40,208,251, 206,44,40,208,240,96,165,0,8573 1310 DATA 133,140,165,1,133,141,177,12 8,201,15,240,29,141,25,40,201,6942 1320 DATA 7,240,105,42,100,43,39,201,1 1,208,3,76,239,42,201,14,4987 1330 DATA 208,3,76,62,43,201,13,208,3, 76,173,43,96,162,1,160,4493 1340 DATA 1,189,0,40,145,0,136,202,189 ,0,40,145,0,96,177,0,3052 1350 DATA 205,0,40,208,5,162,7,76,130, 42,205,6,40,208,5,162,4177 1360 DATA 9,76,130,42,205,8,40,208,42, 169,2,141,102,40,32,133,3372 1370 DATA 41,160,0,177,0,240,29,173,0, 40,201,1,208,7,32,101,2987 1380 DATA 53,32,162,51,96,201,23,208,7 ,32,101,53,32,236,51,96,3849 1390 DATA 32,148,41,96,32,148,41,160,0 ,169,0,145,0,160,2,162,3132 1400 DATA 7,32,132,42,169,1,141,102,40 ,76,133,41,177,0,205,0,3140 1410 DATA 40,208,5,162,3,76,130,42,205 ,2,40,208,5,162,5,76,2671 1420 DATA 130,42,205,4,40,208,40,169,1 ,141,102,40,32,148,41,177,4301 1430 DATA 0,240,29,173,0,40,201,23,208 ,7,32,108,53,32,236,51,3603 1440 DATA 96,201,1,208,7,32,108,53,32, 162,51,96,32,133,41,96,2230 1450 DATA 162,3,32,130,42,152,160,2,14 5,0,96,169,40,141,102,40,3545 1460 DATA 32,148,41,177,0,240,34,173,0 ,40,201,23,208,16,32,108,3704 1470 DATA 53,32,236,51,96,169,40,141,1 02,40,32,133,41,96,201,1,3575 1480 DATA 208,243,101,43,96,44,32,108, 53,32,162,51,96,200,177,0,4375 1490 DATA 208,217,32,133,41,173,107,40 ,201,3,144,1,96,238,107,40,5332 1500 DATA 160,0,32,158,43,32,148,41,16 2,19,32,42,44,32,19,44,8672 1510 DATA 162,11,32,42,44,169,0,145,0, 136,145,0,32,148,41,173,3178 1520 DATA 8,40,145,0,200,173,9,40,145, 0,32,63,42,96,169,40,1942 1530 DATA 141,102,40,32,133,41,177,0,2 40,34,173,0,40,201,23,208,5683 1540 DATA 16,32,101,53,32,236,51,96,16 9,40,141,102,40,32,148,41,3376 1550 DATA 96,201,1,208,243,32,101,53,3 2,162,51,96,200,177,0,240,7960 1560 DATA 3,76,185,43,32,148,41,173,10 7,40,201,3,144,1,96,238,5905 1570 DATA 107,40,160,0,32,158,43,162,1 1,32,42,44,32,19,44,162,285 1580 DATA 19,32,42,44,32,148,41,169,0, 145,0,136,145,0,32,133,2227 1590 DATA 41,76,158,43,162,17,32,130,4 2,32,148,41,173,14,40,145,2788 1600 DATA 0,200,173,15,40,145,0,32,63, 42,96,32,130,42,32,133,1218 1610 DATA 41,189,2,40,145,0,200,189,3, 40,145,0,32,63,42,96,1318 1620 DATA 169,2,133,129,169,120,133,12 8,169,2,133,131,169,132,133,130,8924 1630 DATA 96,169,2,133,129,169,121,133 ,128,169,2,133,131,169,133,133,8824 1640 DATA 130,96,97,44,92,45,169,129,1 33,1,169,184,133,0,96,169,6521 1650 DATA 130,133,1,169,6,133,0,96,160 ,0,169,70,145,0,200,169,6049 1660 DATA 71,145,0,96,169,0,141,26,40, 169,0,141,101,40,141,23,2543 1670 DATA 40,141,24,40,169,0,141,25,40 ,238,26,40,173,26,40,201,4191 1680 DATA 5,176,3,76,167,44,160,0,32,2 6,42,96,32,163,41,32,556 1690 DATA 63,42,160,0,177,130,208,244, 32,26,42,173,23,40,205,0,4410 1700 DATA 40,240,9,32,124,53,32,41,42, 76,167,44,32,63,42,32,9808 1710 DATA 63,42,32,63,42,32,63,42,169, 0,141,107,40,160,0,32,1012 1720 DATA 85,42,173,0,40,201,1,240,11, 173,41,40,208,17,173,103,5686 1730 DATA 131,240,12,96,173,40,40,208, 6,173,128,128,240,1,96,32,5624 1740 DATA 63,42,173,101,40,208,130,160 ,0,177,130,208,208,173,0,40,7910 1750 DATA 141,23,40,173,1,40,141,24,40 ,32,115,44,173,25,40,240,3685 1760 DATA 15,32,63,42,32,63,42,32,63,4 2,32,63,42,76,143,44,9838 1770 DATA 32,63,42,32,63,42,32,63,42,3 2,63,42,76,167,44,169,2062 1780 DATA 70,141,49,40,141,50,40,169,6 2,141,54,40,141,55,40,141,3577 1790 DATA 3,208,169,183,141,2,208,162, 8,189,120,138,157,62,39,189,8373 1800 DATA 129,138,93,45,88,46,157,62,3 8,202,16,241,96,169,39,133,6732 1810 DATA 135,169,0,133,134,96,169,38, 133,135,169,0,133,134,96,177,7831 1820 DATA 128,201,13,208,27,189,49,40, 201,192,176,50,254,49,40,254,70 1830 DATA 54,40,162,12,168,136,177,134 ,200,145,134,136,202,208,246,96,3585 1840 DATA 201,14,208,26,189,54,40,201, 64,144,19,222,49,40,222,54,6234 1850 DATA 40,168,162,12,200,177,134,13 6,145,134,200,202,208,246,96,173,4473 1860 DATA 61,40,240,32,206,61,40,173,6 1,40,208,75,56,173,60,40,4736 1870 DATA 233,2,168,162,5,169,0,153,0, 36,200,202,16,249,169,0,6735 1880 DATA 141,2,210,96,173,27,40,240,4 6,160,0,177,148,208,40,141,8096 1890 DATA 27,40,24,174,97,40,189,54,40 ,105,4,168,173,98,40,141,5192 1900 DATA 0,208,141,59,40,169,24,153,0 ,36,140,60,40,169,218,141,6613 1910 DATA 192,2,169,160,141,111,40,96, 173,27,40,240,1,96,206,59,6210 1920 DATA 40,206,59,40,173,59,40,201,6 3,144,13,141,0,208,206,111,7436 1930 DATA 40,173,111,40,141,2,210,96,1 69,1,141,27,40,56,173,60,4029 1940 DATA 40,233,2,168,162,5,189,103,1 12,153,0,36,200,202,16,246,8685 1950 DATA 169,5,141,61,40,169,14,141,1 92,2,169,250,141,2,210,96,8390 1960 DATA 173,27,89,46,148,46,40,240,1 ,96,238,59,40,238,59,40,5526 1970 DATA 173,59,40,201,183,176,197,14 1,0,208,206,111,40,173,111,40,8588 1980 DATA 141,2,210,96,169,65,141,98,4 0,169,132,133,148,169,0,141,7789 1990 DATA 97,40,96,169,183,141,98,40,1 69,133,133,148,169,1,141,97,7866 2000 DATA 40,96,149,46,144,47,165,136, 24,105,40,133,136,165,137,105,7223 2010 DATA 0,133,137,96,32,149,46,201,1 19,208,14,165,136,201,225,208,2625 2020 DATA 8,169,117,133,137,169,97,133 ,136,96,32,149,46,201,116,208,9495 2030 DATA 14,165,136,201,73,208,8,169, 113,133,137,169,201,133,136,96,540 2040 DATA 160,2,177,136,201,88,240,82, 201,89,240,70,174,90,40,189,473 2050 DATA 74,40,201,1,176,3,76,71,47,1 77,136,201,7,240,7,201,7682 2060 DATA 9,240,11,76,71,47,169,9,32,4 2,48,76,71,47,192,34,1931 2070 DATA 144,9,32,51,48,32,254,47,76, 71,47,200,200,177,136,136,8723 2080 DATA 136,201,0,208,51,169,0,145,1 36,200,169,7,32,42,48,76,3986 2090 DATA 71,47,169,88,141,30,40,76,46 ,47,169,89,141,30,40,169,4255 2100 DATA 0,145,136,136,192,5,144,16,1 77,136,240,7,136,32,51,48,4894 2110 DATA 76,71,47,173,30,40,145,136,2 00,192,35,176,3,76,209,46,6845 2120 DATA 96,160,3,177,136,201,88,240, 81,201,89,240,69,174,90,40,9596 2130 DATA 189,74,40,201,1,176,3,76,198 ,47,177,136,201,25,240,7,7587 2140 DATA 201,27,240,11,76,198,47,169, 27,32,42,48,76,198,47,192,5546 2150 DATA 5,176,9,32,51,48,32,207,47,7 6,198,47,136,177,136,200,8496 2160 DATA 201,0,145,47,58,48,208,51,13 6,169,25,32,42,48,200,169,5921 2170 DATA 0,145,136,76,198,47,169,88,1 41,30,40,76,174,47,169,89,6131 2180 DATA 141,30,40,169,0,145,136,200, 192,36,240,15,177,136,240,6,9408 2190 DATA 32,51,48,76,198,47,173,30,40 ,145,136,200,192,37,240,3,7863 2200 DATA 76,82,47,96,174,90,40,222,9, 113,189,9,113,208,35,136,6911 2210 DATA 136,177,136,201,114,240,9,13 6,177,136,200,201,114,240,1,96,1031 2220 DATA 136,169,23,32,42,48,136,206, 223,112,173,223,112,208,3,141,364 2230 DATA 221,112,96,174,90,40,222,25, 113,189,25,113,208,32,200,177,9625 2240 DATA 136,201,243,240,9,200,177,13 6,136,201,243,240,1,96,169,1,734 2250 DATA 32,42,48,206,224,112,173,224 ,112,208,3,141,222,112,96,145,1156 2260 DATA 136,200,170,232,138,145,136, 96,169,0,145,136,200,145,136,96,468 2270 DATA 59,48,162,48,56,233,32,74,74 ,74,170,173,76,112,133,132,7612 2280 DATA 173,77,112,133,133,202,48,16 ,24,165,132,105,40,133,132,165,7396 2290 DATA 133,105,0,133,133,76,76,48,9 6,173,110,40,240,11,169,173,8063 2300 DATA 141,0,210,206,110,40,76,117, 48,169,0,141,0,210,177,130,7642 2310 DATA 240,1,96,238,28,40,173,28,40 ,201,11,144,30,169,0,141,4838 2320 DATA 28,40,189,54,40,24,105,4,32, 59,48,172,22,40,177,132,3405 2330 DATA 208,9,169,88,145,132,169,5,1 41,110,40,96,163,48,158,49,6061 2340 DATA 173,109,40,208,6,169,0,141,3 ,210,96,172,52,40,162,7,4880 2350 DATA 189,138,138,153,0,39,189,154 ,138,153,0,38,189,146,138,153,8877 2360 DATA 0,37,136,202,16,234,169,0,14 1,1,210,96,169,76,141,52,7266 2370 DATA 40,169,69,141,57,40,169,0,14 1,9,208,141,10,208,141,11,5899 2380 DATA 208,169,200,141,193,2,169,28 ,141,194,2,169,228,141,195,2,9628 2390 DATA 169,57,141,62,40,141,1,208,1 41,2,208,141,3,208,96,169,8425 2400 DATA 217,141,110,40,169,68,141,1, 210,238,52,40,173,64,40,24,5088 2410 DATA 105,8,201,16,208,2,169,0,141 ,64,40,24,109,63,40,168,3657 2420 DATA 174,57,40,185,162,138,157,0, 39,185,178,138,157,0,37,185,7676 2430 DATA 194,138,157,0,38,200,232,236 ,52,40,208,231,206,52,40,173,975 2440 DATA 110,40,141,0,210,96,254,44,4 0,189,44,40,201,5,240,1,6322 2450 DATA 96,169,0,157,44,40,160,0,177 ,150,201,15,208,3,76,163,7070 2460 DATA 48,173,109,40,208,10,169,136 ,141,3,210,169,255,141,2,210,1028 2470 DATA 177,150,201,7,208,3,76,186,4 9,201,11,208,3,76,218,49,6881 2480 DATA 201,13,208,3,76,250,49,201,1 4,208,3,76,54,50,201,5,4822 2490 DATA 208,6,32,5,50,76,186,49,201, 9,208,6,159,49,113,50,4733 2500 DATA 32,5,50,76,218,49,201,6,208, 6,32,65,50,76,186,49,4187 2510 DATA 201,10,208,6,32,65,50,76,218 ,49,96,173,109,40,208,3,5616 2520 DATA 76,80,55,169,48,141,63,40,32 ,2,49,173,62,40,201,197,5900 2530 DATA 176,232,238,62,40,173,62,40, 76,245,48,173,109,40,208,3,7007 2540 DATA 76,96,55,169,0,141,63,40,32, 2,49,173,62,40,201,53,3408 2550 DATA 144,200,206,62,40,173,62,40, 76,245,48,173,109,40,208,3,6835 2560 DATA 76,112,55,32,2,49,173,109,40 ,208,3,76,112,55,173,52,4578 2570 DATA 40,201,207,176,33,238,52,40, 174,52,40,160,16,189,255,38,8347 2580 DATA 157,0,39,189,255,36,157,0,37 ,189,255,37,157,0,38,202,7515 2590 DATA 136,208,234,238,57,40,96,173 ,109,40,208,3,76,160,55,32,5647 2600 DATA 2,49,173,109,40,208,3,76,160 ,55,173,57,40,201,33,144,6442 2610 DATA 33,206,52,40,206,57,40,174,5 7,40,160,16,189,1,39,157,4848 2620 DATA 0,39,189,1,37,157,0,37,189,1 ,38,157,0,38,232,136,4893 2630 DATA 208,234,96,114,50,109,51,32, 139,40,32,58,45,169,0,141,3473 2640 DATA 65,40,141,66,40,141,11,208,1 41,10,208,141,9,208,141,8,6880 2650 DATA 208,141,12,208,169,17,141,11 1,2,96,174,90,40,254,74,40,6628 2660 DATA 189,74,40,201,2,144,5,169,0, 157,74,40,238,90,40,173,6768 2670 DATA 90,40,201,16,144,5,169,0,141 ,90,40,96,32,114,50,32,2475 2680 DATA 198,46,169,113,141,77,112,16 9,41,141,76,112,32,78,53,169,6198 2690 DATA 0,141,103,131,141,104,131,14 1,90,40,206,40,40,173,222,112,9199 2700 DATA 240,66,169,7,141,92,40,169,8 ,141,93,40,160,3,32,15,2323 2710 DATA 53,32,207,46,32,149,50,32,18 5,46,32,144,51,173,66,40,4212 2720 DATA 201,200,144,217,32,63,44,32, 97,44,32,115,44,169,128,141,5882 2730 DATA 77,112,169,0,141,76,112,32,2 05,40,32,139,40,32,78,41,2798 2740 DATA 32,63,42,96,169,239,141,103, 131,169,240,141,104,131,32,97,9917 2750 DATA 44,76,5,51,32,114,50,32,176, 46,169,116,141,77,112,169,7205 2760 DATA 193,141,76,112,32,78,53,169, 0,141,127,128,141,128,128,141,8406 2770 DATA 90,40,206,41,40,173,221,112, 240,43,169,27,141,92,40,169,8601 2780 DATA 28,141,93,40,160,35,32,15,53 ,32,80,47,32,149,50,32,888 2790 DATA 163,46,32,110,51,105,52,144, 51,173,66,40,201,200,144,217,422 2800 DATA 32,80,44,32,106,44,76,5,51,1 69,109,141,127,128,169,110,7396 2810 DATA 141,128,128,32,106,44,76,5,5 1,173,65,40,24,105,1,141,2522 2820 DATA 65,40,173,66,40,105,0,141,66 ,40,96,177,144,201,57,208,8749 2830 DATA 12,32,183,50,32,63,44,169,1, 141,101,40,96,201,23,144,5574 2840 DATA 43,201,45,176,39,32,120,52,3 2,63,44,32,97,44,32,115,1750 2850 DATA 44,169,24,141,94,40,173,67,4 0,208,8,169,1,141,67,40,4513 2860 DATA 76,19,52,169,0,141,67,40,76, 19,52,96,201,239,208,251,1134 2870 DATA 162,2,76,73,52,177,144,201,6 7,208,12,32,47,51,32,80,3778 2880 DATA 44,169,1,141,101,40,96,201,2 3,176,65,32,120,52,32,80,3968 2890 DATA 44,32,106,44,32,115,44,169,2 ,141,94,40,160,0,173,67,4691 2900 DATA 40,208,33,177,144,205,94,40, 208,18,56,165,144,233,1,133,9016 2910 DATA 144,165,145,233,0,133,145,17 7,144,208,1,200,169,0,145,144,443 2920 DATA 200,145,144,96,169,0,145,140 ,200,145,140,96,201,110,208,251,4437 2930 DATA 162,24,142,93,40,202,142,92, 40,138,162,0,157,0,128,157,7075 2940 DATA 240,128,157,224,129,157,208, 130,205,92,40,240,6,173,92,40,9491 2950 DATA 76,109,52,106,52,101,53,173, 93,40,232,224,240,208,225,32,2841 2960 DATA 139,40,76,117,52,169,1,141,3 0,208,141,99,40,141,100,40,6007 2970 DATA 32,139,40,32,38,55,32,207,48 ,141,109,40,32,163,48,32,3379 2980 DATA 8,55,169,112,141,49,2,169,0, 141,48,2,169,5,141,37,3354 2990 DATA 40,169,1,141,72,40,141,73,40 ,141,70,40,141,71,40,141,4809 3000 DATA 42,40,141,101,40,169,0,141,3 2,40,141,67,40,169,2,141,4506 3010 DATA 47,40,165,140,133,0,165,141, 133,1,32,128,42,169,2,133,5305 3020 DATA 151,162,2,142,109,40,169,120 ,133,150,32,73,49,162,4,169,6591 3030 DATA 0,141,109,40,230,150,32,73,4 9,32,63,42,173,32,40,240,5752 3040 DATA 224,169,255,141,47,40,32,63, 42,32,63,42,32,63,42,32,469 3050 DATA 63,42,32,180,40,32,139,40,32 ,78,41,96,174,90,40,189,5515 3060 DATA 205,112,208,5,189,189,112,24 0,18,56,189,189,112,233,1,157,1230 3070 DATA 189,112,189,205,112,233,0,15 7,205,112,96,177,136,208,27,189,2338 3080 DATA 149,112,157,189,112,189,165, 112,157,205,112,177,136,208,11,173,285 7 3090 DATA 93,40,145,136,136,173,92,40, 145,136,96,162,15,189,149,112,9457 3100 DATA 157,189,112,189,165,112,157, 205,112,169,0,157,74,40,202,16,8353 3110 DATA 236,96,32,102,53,123,53,115, 53,32,148,41,96,32,115,53,3522 3120 DATA 32,133,41,96,165,0,133,144,1 65,1,133,145,96,124,53,201,8526 3130 DATA 53,173,0,40,201,1,240,5,201, 23,240,34,96,173,23,40,6162 3140 DATA 201,90,208,25,173,128,128,20 8,20,173,40,40,201,10,240,13,7829 3150 DATA 238,40,40,169,1,141,127,128, 169,2,141,128,128,96,173,23,7627 3160 DATA 40,201,92,208,25,173,103,131 ,208,20,173,41,40,201,10,240,9433 3170 DATA 13,238,41,40,169,23,141,103, 131,169,24,141,104,131,96,202,9419 3180 DATA 53,13,54,173,71,40,201,1,240 ,1,96,173,132,2,240,1,6785 3190 DATA 96,173,120,2,201,7,240,13,20 1,11,240,9,201,13,240,5,7973 3200 DATA 201,14,240,1,96,141,73,40,14 1,71,40,172,62,40,140,104,5923 3210 DATA 40,140,7,208,24,173,57,40,10 5,4,141,106,40,170,189,0,5803 3220 DATA 35,9,192,157,0,35,96,14,54,7 ,55,173,70,40,201,1,3209 3230 DATA 240,1,96,173,133,2,240,1,96, 173,121,2,201,7,240,13,7285 3240 DATA 201,11,240,9,201,13,240,5,20 1,14,240,1,96,141,72,40,6565 3250 DATA 141,70,40,172,59,40,140,103, 40,140,4,208,24,173,55,40,5177 3260 DATA 105,4,141,105,40,170,189,0,3 5,9,3,157,0,35,96,208,4339 3270 DATA 27,189,72,40,201,7,240,13,20 1,11,240,49,201,13,240,61,9400 3280 DATA 201,14,240,90,96,189,103,40, 201,195,144,22,189,105,40,168,66 3290 DATA 185,0,35,45,95,40,153,0,35,1 69,1,157,70,40,157,72,4423 3300 DATA 40,96,254,103,40,189,103,40, 160,0,145,146,96,189,103,40,7947
A.N.A.L.O.G. ISSUE 58 / OCTOBER 1987 / PAGE 89
As promised last month, we now bring you the second half of Troll War II. We explained in issue 57 that the object code for this game is a wopping 10K, leaving us no choice hut to print the data in two parts.
A description of the game, along with a few helpful hints, can be found in issue 57. (Don’t forget to refer to “M/L Editor” for typing instructions.) For those of you who’d rather bypass the tiresome task of typing it in. the listing is available in its entirety on this month’s disk version.
We hope you didn’t mind the inconvenience, but we’re sure you’ll find it was worth the wait.
Remember, you must have first typed in part 1. before you work on part 2.
3310 DATA 201,60,176,3,76,111,54,222,103,40,76,136,54,189,105,40,6729 3320 DATA 201,207,240,200,254,105,40,1 89,105,40,170,189,255,34,45,95,616 3330 DATA 40,157,255,34,189,0,35,13,96 ,40,157,0,35,96,189,105,5184 3340 DATA 40,201,32,240,167,222,105,40 ,189,105,40,170,189,1,35,45,7007 3350 DATA 95,40,157,1,35,189,0,35,13,9 6,40,157,0,35,96,169,3624 3360 DATA 3,141,96,40,169,252,141,95,4 0,169,208,133,147,169,4,133,596 3370 DATA 146,96,169,192,141,96,40,169 ,63,141,95,40,169,208,133,147,854 3380 DATA 169,7,133,146,96,8,55,207,55 ,172,50,40,162,7,189,2,5431 3390 DATA 139,153,0,36,189,10,139,25,0 ,35,153,0,35,136,202,16,3835 3400 DATA 237,169,0,141,3,210,96,169,1 76,141,50,40,169,169,141,55,9420 3410 DATA 40,169,0,141,8,208,141,12,20 8,169,228,141,192,2,162,180,2319 3420 DATA 142,59,40,142,0,208,232,142, 6,208,232,232,232,142,5,208,4253 3430 DATA 96,173,59,40,201,197,176,248 ,238,59,40,174,59,40,76,63,8347 3440 DATA 55,173,59,40,201,53,144,232, 206,59,40,174,59,40,76,63,6812 3450 DATA 55,173,50,40,201,207,176,40, 238,50,40,174,50,40,160,16,6996 3460 DATA 189,255,35,157,0,36,189,255, 34,41,60,29,0,35,157,0,3040 3470 DATA 35,189,255,34,41,195,157,255 ,34,202,136,208,227,238,55,40,3364 3480 DATA 96,173,55,40,201,33,144,40,2 06,50,40,206,55,40,174,55,6809 3490 DATA 40,160,16,189,1,36,157,0,36, 189,1,35,41,60,29,0,427 3500 DATA 35,157,0,35,189,1,35,41,195, 157,1,35,232,136,208,227,941 3510 DATA 96,208,55,203,56,169,0,133,7 7,173,77,112,201,116,208,75,528 3520 DATA 173,76,112,201,193,208,68,32 ,134,46,32,182,45,32,15,46,4126 3530 DATA 173,108,40,240,6,206,108,40, 76,125,56,169,42,141,195,2,7396 3540 DATA 32,243,56,162,0,160,0,169,5, 141,22,40,32,96,48,32,2355 3550 DATA 1,57,32,134,46,32,182,45,32, 15,46,173,15,208,208,3,5648 3560 DATA 76,122,56,169,0,141,195,2,76 ,117,56,173,77,112,201,113,8889 3570 DATA 208,86,173,76,112,201,41,208 ,79,32,119,46,32,182,45,32,5533 3580 DATA 87,46,173,108,40,240,6,206,1 08,40,76,125,56,169,90,141,8448 3590 DATA 194,2,32,243,56,32,119,46,32 ,182,45,32,87,46,32,1,1787 3600 DATA 57,162,1,169,33,141,22,40,16 0,0,32,96,48,173,14,208,5673 3610 DATA 208,3,76,122,56,169,0,141,19 4,2,141,0,210,169,90,141,8981 3620 DATA 108,40,141,30,208,76,98,228, 173,49,2,201,112,208,243,173,3619 3630 DATA 48,2,201,0,208,236,173,32,40 ,208,231,32,245,54,162,1,9960 3640 DATA 173,3,208,32,82,54,162,1,173 ,3,208,32,82,54,32,202,6240 3650 DATA 53,32,226,54,162,0,173,0,208 ,32,82,54,162,0,173,0,5125 3660 DATA 208,32,82,54,32,14,54,173,8, 208,41,14,240,13,173,40,5708 3670 DATA 40,204,56,199,57,240,3,206,4 0,40,169,1,141,32,40,173,6756 3680 DATA 11,208,41,1,240,16,173,41,40 ,240,3,206,41,40,169,1,5978 3690 DATA 141,32,40,141,67,40,141,30,2 08,76,98,228,162,0,32,63,6421 3700 DATA 44,160,0,32,100,45,32,118,45 ,96,162,1,32,80,44,160,4045 3710 DATA 0,32,109,45,32,118,45,96,169 ,0,141,200,2,169,112,141,8032 3720 DATA 49,2,169,31,141,48,2,169,65, 141,111,2,141,27,208,169,8038 3730 DATA 112,133,1,169,225,133,0,162, 22,32,161,40,169,96,141,244,335 3740 DATA 2,169,38,141,102,40,32,133,4 1,169,200,141,47,40,169,40,7093 3750 DATA 141,1,2,169,113,141,0,2,173, 14,212,9,128,141,14,212,7379 3760 DATA 169,40,141,74,40,32,41,41,16 9,0,141,112,40,32,63,42,2736 3770 DATA 160,0,32,239,42,174,112,40,1 89,181,112,141,0,210,238,112,2077 3780 DATA 40,173,112,40,201,8,144,5,16 9,0,141,112,40,206,74,40,6333 3790 DATA 208,219,160,0,140,0,210,169, 1,145,0,169,2,200,145,0,6926 3800 DATA 32,63,42,32,63,42,32,172,40, 32,139,40,169,7,162,55,4673 3810 DATA 160,208,32,92,228,32,78,41,1 73,128,128,240,5,173,40,40,7908 3820 DATA 240,17,32,63,44,32,97,44,32, 115,44,162,22,32,161,40,3540 3830 DATA 32,200,57,231,57,127,44,173, 103,131,240,5,173,41,40,240,296 3840 DATA 229,32,80,44,32,106,44,32,11 5,44,162,44,32,161,40,32,3476 3850 DATA 127,44,76,175,57,0,112,188,1 12,112,112,68,152,131,4,4,5676 3860 DATA 4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4404 3870 DATA 4,4,4,4,4,65,0,112,112,112,1 12,112,112,112,112,112,6416 3880 DATA 112,112,79,88,135,15,15,15,1 5,15,15,15,15,15,15,15,7295 3890 DATA 15,15,15,15,15,15,15,143,112 ,112,68,225,112,65,31,112,5653 3900 DATA 112,69,109,112,68,0,128,4,4, 4,4,4,4,4,4,4,6593 3910 DATA 4,4,4,4,4,4,4,4,4,4,4,4,4,65 ,71,112,8041 3920 DATA 21,62,242,124,18,40,0,0,0,0, 0,0,0,0,0,0,5617 3930 DATA 0,0,222,223,224,225,226,227, 228,229,0,230,231,232,233,234,1948 3940 DATA 235,236,0,0,0,0,0,0,0,0,0,0, 0,0,254,136,633 3950 DATA 144,96,64,32,37,64,32,48,80, 23,64,80,80,48,1,1,140 3960 DATA 0,0,1,1,0,1,1,1,0,1,0,1,1,1, 243,193,770 3970 DATA 217,162,243,182,217,162,221, 112,216,113,1,1,12,12,0,0,3889 3980 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,3980 3990 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,3990 4000 DATA 0,0,0,0,1,2,8,8,8,8,8,8,8,8, 8,8,4937 4010 DATA 8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,5098 4020 DATA 8,8,8,8,8,8,0,0,0,0,0,0,0,0, 0,0,4188 4030 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4030 4040 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4040 4050 DATA 0,0,0,45,46,47,46,0,0,0,47,4 8,0,0,0,0,6157 4060 DATA 0,0,0,0,0,47,48,0,0,45,46,47 ,48,0,0,0,6822 4070 DATA 45,46,0,0,47,46,0,0,0,0,0,18 2,184,0,181,182,4921 4080 DATA 183,184,45,46,0,0,0,0,0,0,45 ,46,47,46,47,48,8725 4090 DATA 0,72,72,73,47,48,0,45,46,0,6 8,59,60,63,0,0,9157 4100 DATA 0,0,0,181,182,183,184,0,0,0, 0,0,0,0,0,0,8120 4110 DATA 0,0,73,72,73,86,74,75,86,86, 84,85,75,74,86,0,3495 4120 DATA 0,57,58,61,62,64,0,0,0,0,0,0 ,0,0,0,0,5346 4130 DATA 0,0,0,0,0,0,217,113,212,114, 0,0,0,0,0,0,9601 4140 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,243,8028 4150 DATA 76,77,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,4380 4160 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4160 4170 DATA 0,0,0,0,0,0,243,0,78,79,0,0, 0,0,0,0,7363 4180 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4180 4190 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,243,8078 4200 DATA 78,79,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,4436 4210 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4210 4220 DATA 0,0,0,0,0,0,243,0,76,77,0,0, 0,0,0,0,7375 4230 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4230 4240 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,243,8128 4250 DATA 76,77,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,4480 4260 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4260 4270 DATA 0,0,0,0,0,0,243,0,78,79,0,0, 0,0,0,0,7463 4280 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4280 4290 DATA 0,0,0,0,0,0,213,114,208,115, 0,0,0,0,0,0,9715 4300 DATA 0,0,0,243,78,79,0,0,0,0,0,0, 0,0,0,0,6136 4310 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4310 4320 DATA 0,0,0,0,0,0,0,0,0,0,243,0,76 ,77,0,0,9059 4330 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4330 4340 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4340 4350 DATA 0,0,0,243,76,77,0,0,0,0,0,0, 0,0,0,0,6164 4360 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4360 4370 DATA 0,0,0,0,0,0,0,0,0,0,243,0,78 ,79,0,0,9163 4380 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4380 4390 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4390 4400 DATA 0,0,0,243,76,77,0,0,0,0,0,0, 0,0,0,0,6214 4410 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4410 4420 DATA 0,0,0,0,0,0,0,0,0,0,243,0,76 ,77,0,0,9159 4430 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4430 4440 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4440 4450 DATA 0,0,0,243,76,77,209,115,192, 116,0,0,0,0,0,0,1535 4460 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4460 4470 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 243,0,8115 4480 DATA 78,79,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,4716 4490 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4490 4500 DATA 0,0,0,0,0,0,0,243,78,79,0,0, 0,0,0,0,7936 4510 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4510 4520 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 243,0,8165 4530 DATA 76,77,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,4760 4540 DATA 0,0,0,0,0,0,72,74,73,75,74,7 2,73,86,84,87,3526 4550 DATA 84,85,72,73,72,73,72,75,74,7 3,0,0,45,46,0,47,591 4560 DATA 48,0,0,0,45,46,47,48,47,46,0 ,0,45,46,0,0,7934 4570 DATA 0,0,0,0,0,0,0,0,45,46,45,46, 47,48,47,46,9206 4580 DATA 0,0,0,49,50,52,49,50,51,52,0 ,0,49,50,52,0,9177 4590 DATA 0,49,50,51,52,0,45,46,47,48, 0,45,46,45,46,0,9346 4600 DATA 45,46,47,46,45,46,0,49,50,52 ,193,116,188,117,0,0,4522 4610 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4610 4620 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4620 4630 DATA 0,0,0,0,0,0,59,60,63,65,0,45 ,46,47,46,76,442 4640 DATA 87,0,47,48,0,0,0,0,0,0,0,0,0 ,47,48,0,6438 4650 DATA 0,45,46,47,48,0,0,0,0,0,0,0, 0,0,61,62,7213 4660 DATA 64,66,67,0,0,0,80,81,73,75,7 4,86,87,0,0,0,649 4670 DATA 0,0,45,46,0,0,47,48,45,46,0, 0,47,48,0,45,8570 4680 DATA 46,45,46,0,0,0,80,81,72,73,8 7,0,0,76,86,72,2003 4690 DATA 73,72,73,86,74,75,86,86,84,8 5,0,0,0,0,0,0,9186 4700 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 76,77,7072 4710 DATA 0,114,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,4938 4720 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4720 4730 DATA 0,0,0,0,0,0,78,79,114,0,0,0, 0,0,0,0,6934 4740 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4740 4750 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 78,79,7184 4760 DATA 0,114,0,0,0,0,0,0,0,0,189,11 7,184,118,0,0,2515 4770 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4770 4780 DATA 0,0,0,0,0,0,0,0,0,0,76,77,11 4,0,0,0,8022 4790 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4790 4800 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 25,26,5591 4810 DATA 0,0,76,77,0,114,0,0,0,0,0,0, 0,0,0,0,6030 4820 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4820 4830 DATA 0,0,0,0,0,0,0,0,0,0,78,79,11 4,0,0,0,8118 4840 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4840 4850 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4850 4860 DATA 0,0,78,79,0,114,0,0,0,0,0,0, 0,0,0,0,6094 4870 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4870 4880 DATA 0,0,0,0,0,0,25,26,0,0,76,77, 114,0,0,0,8505 4890 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4890 4900 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4900 4910 DATA 0,0,76,77,0,114,0,0,0,0,0,0, 0,0,0,0,6130 4920 DATA 0,0,0,0,0,0,0,0,0,0,185,118, 180,119,0,0,2377 4930 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 78,79,7364 4940 DATA 114,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,5054 4950 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4950 4960 DATA 0,0,0,0,0,0,76,77,0,114,0,0, 0,0,0,0,7248 4970 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4970 4980 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 76,77,7352 4990 DATA 114,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,5104 5000 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,5000 5010 DATA 0,0,0,0,0,0,76,77,0,114,0,0, 0,0,0,0,7298 5020 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,5020 5030 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 78,79,7464 5040 DATA 114,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,5154 5050 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,5050 5060 DATA 0,0,0,0,0,0,78,79,0,114,0,0, 0,0,0,0,7378 5070 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,5070 5080 DATA 0,0,0,0,0,0,0,0,0,0,181,119, 128,120,0,0,1843 5090 DATA 0,0,76,77,114,0,0,0,0,0,0,0, 0,0,0,0,6196 5100 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,5100 5110 DATA 0,0,0,0,0,0,0,0,0,0,82,83,72 ,73,72,73,1214 5120 DATA 72,75,74,73,72,74,73,75,74,7 2,73,86,84,87,0,0,3302 5130 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,5130 5140 DATA 0,0,0,0,45,46,0,47,48,0,0,0, 45,46,47,48,9151 5150 DATA 47,46,0,0,45,46,0,0,0,0,0,0, 0,0,0,0,5790 5160 DATA 45,46,45,46,47,48,47,46,0,0, 0,49,50,52,49,50,337 5170 DATA 51,52,0,0,49,50,52,0,0,49,50 ,51,52,0,45,46,9973 5180 DATA 47,48,0,45,46,45,46,0,45,46, 47,46,45,46,0,49,272 5190 DATA 50,52,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,5344 5200 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,5200 5210 DATA 0,0,0,0,0,0,0,0,0,0,0,128,25 1,128,0,0,1801 5220 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,5220 5230 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,5230 5240 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,69 ,69,69,8345 5250 DATA 69,69,69,69,69,69,69,69,69,6 9,69,69,69,69,69,69,4634 5260 DATA 69,69,69,69,69,69,69,0,0,0,0 ,0,0,0,0,0,7192 5270 DATA 59,60,63,65,0,69,0,0,1,2,0,0 ,0,0,0,0,6341 5280 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 69,0,6315 5290 DATA 0,0,0,0,0,0,0,0,61,62,64,66, 67,1,2,0,8870 5300 DATA 0,0,0,0,0,0,0,45,46,0,0,0,0, 0,0,0,6074 5310 DATA 0,0,0,0,0,0,69,0,0,0,0,0,0,0 ,0,0,5793 5320 DATA 0,0,0,0,0,69,0,0,0,0,1,2,0,0 ,0,0,5769 5330 DATA 0,0,0,45,46,47,48,0,0,47,48, 0,0,0,69,0,8391 5340 DATA 0,0,0,0,0,0,0,0,45,46,47,48, 0,69,0,1,8280 5350 DATA 2,0,0,0,0,0,0,182,184,0,0,0, 0,0,0,47,9216 5360 DATA 48,0,0,0,0,0,69,181,183,184, 0,0,0,0,0,0,826 5370 DATA 0,0,47,48,0,69,0,0,0,0,252,1 28,247,129,0,0,5442 5380 DATA 0,0,0,184,0,0,0,0,0,0,0,0,0, 0,0,0,6116 5390 DATA 181,182,183,184,45,46,0,0,0, 0,0,47,46,45,46,0,203 5400 DATA 0,69,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,5538 5410 DATA 0,0,0,0,0,181,182,183,184,0, 69,0,0,0,47,48,3122 5420 DATA 0,0,0,0,0,0,182,183,0,69,0,0 ,0,0,0,0,8848 5430 DATA 0,0,0,0,0,0,0,0,0,0,181,182, 183,184,0,0,4560 5440 DATA 0,0,69,0,0,45,46,47,48,0,0,0 ,47,48,184,0,1090 5450 DATA 0,69,0,0,45,46,47,48,0,0,0,0 ,0,0,0,0,6802 5460 DATA 0,0,184,0,0,0,0,0,0,0,69,0,0 ,0,0,0,6771 5470 DATA 0,0,0,0,0,45,46,47,48,69,47, 48,0,0,0,0,8653 5480 DATA 45,46,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,5617 5490 DATA 0,0,69,0,49,50,51,52,0,0,70, 71,0,0,0,0,8637 5500 DATA 0,69,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,5638 5510 DATA 0,0,0,0,0,0,0,0,0,0,69,0,0,0 ,0,49,7053 5520 DATA 50,52,90,91,0,0,0,0,0,69,0,0 ,0,0,0,0,6998 5530 DATA 0,0,0,0,0,0,0,0,0,0,248,129, 243,130,0,0,4785 5540 DATA 0,0,0,0,0,0,69,0,49,50,52,0, 0,0,0,0,7536 5550 DATA 0,0,0,0,0,69,0,0,0,0,0,0,0,0 ,0,0,5964 5560 DATA 0,0,0,0,0,49,50,52,0,0,0,0,0 ,0,69,0,7655 5570 DATA 0,0,0,0,92,93,0,47,46,0,0,0, 0,69,0,0,8344 5580 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,5580 5590 DATA 0,0,49,50,51,52,69,0,0,0,47, 48,0,0,0,182,992 5600 DATA 183,47,48,0,0,69,0,0,0,0,0,0 ,0,0,0,0,6435 5610 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 69,0,6645 5620 DATA 0,45,46,53,49,50,0,45,46,0,0 ,0,0,69,0,0,8345 5630 DATA 0,0,0,0,0,0,0,0,0,0,0,49,50, 51,52,0,8362 5640 DATA 0,0,0,0,0,0,69,0,0,0,0,184,0 ,0,0,0,8331 5650 DATA 0,0,0,0,0,69,0,0,0,0,0,0,0,0 ,0,0,6064 5660 DATA 0,45,46,0,0,0,0,0,0,0,0,0,0, 0,69,0,6923 5670 DATA 0,0,49,50,52,0,0,45,46,0,0,4 7,48,69,0,0,9205 5680 DATA 0,0,0,0,0,0,49,50,52,0,0,0,0 ,0,0,0,6891 5690 DATA 0,23,24,0,0,0,69,0,0,49,244, 130,151,131,50,51,6388 5700 DATA 52,0,0,0,0,45,46,0,0,69,181, 183,184,0,0,0,3613 5710 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,5710 5720 DATA 23,24,69,0,0,0,0,0,0,0,0,0,0 ,0,47,46,7439 5730 DATA 182,183,184,0,0,0,0,0,0,0,0, 0,0,0,0,0,6830 5740 DATA 0,47,46,23,24,0,0,0,0,0,69,0 ,68,59,60,63,561 5750 DATA 0,0,0,0,0,0,0,0,0,69,0,0,0,0 ,0,0,6440 5760 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 23,24,6489 5770 DATA 0,0,0,57,58,61,62,64,0,0,0,0 ,0,0,0,0,7600 5780 DATA 0,69,69,69,69,69,69,69,69,69 ,69,69,69,69,69,69,5095 5790 DATA 69,69,69,69,69,69,69,69,69,6 9,69,0,0,0,0,0,344 5800 DATA 0,0,152,131,147,132,116,116, 116,116,116,116,116,116,116,116,1647 5810 DATA 116,116,116,116,116,116,116, 116,116,116,116,116,116,116,116,116,15 86 5820 DATA 116,116,116,116,116,116,116, 116,116,116,116,116,116,116,116,0,9740 5830 DATA 0,0,0,0,0,0,0,0,116,0,0,0,0, 0,0,0,6874 5840 DATA 0,0,0,0,0,0,0,0,0,116,116,0, 0,0,0,0,8276 5850 DATA 0,0,0,0,0,116,116,0,0,0,45,4 6,0,0,0,0,8405 5860 DATA 116,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,5976 5870 DATA 116,116,0,0,0,0,49,50,52,0,0 ,0,0,116,116,0,793 5880 DATA 47,48,0,0,0,0,0,0,116,0,0,0, 0,0,0,0,7067 5890 DATA 45,46,0,116,0,0,0,0,0,0,49,5 0,51,52,0,0,9021 5900 DATA 49,50,51,52,0,116,116,0,0,0, 0,0,47,48,0,0,9201 5910 DATA 116,0,0,0,0,0,0,0,0,0,0,116, 0,0,0,0,7418 5920 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,11 6,116,0,9284 5930 DATA 0,0,0,0,0,0,116,116,116,0,0, 0,0,0,45,46,125 5940 DATA 47,48,0,116,0,0,0,0,0,0,0,0, 0,0,49,50,8082 5950 DATA 51,52,116,0,0,116,116,0,0,0, 0,0,0,0,0,0,7961 5960 DATA 0,0,148,132,143,133,0,0,0,0, 0,116,116,116,116,116,6565 5970 DATA 0,45,46,0,0,0,0,0,0,116,116, 49,50,52,116,0,2340 5980 DATA 0,116,116,0,0,0,116,116,0,0, 0,0,0,0,0,0,8300 5990 DATA 0,0,0,0,0,0,116,116,0,0,0,0, 0,0,0,0,7730 6000 DATA 0,0,116,0,0,0,0,116,116,116, 116,0,0,0,0,116,2612 6010 DATA 0,0,0,0,0,0,0,0,0,45,46,0,0, 0,116,116,562 6020 DATA 0,0,0,0,0,0,0,45,46,0,0,47,4 8,0,0,0,7982 6030 DATA 0,116,116,0,0,0,0,116,0,0,0, 0,0,0,0,47,8290 6040 DATA 48,0,0,0,0,0,116,116,0,0,0,0 ,0,0,0,0,7828 6050 DATA 0,0,0,0,0,0,0,0,0,116,116,0, 0,0,0,116,342 6060 DATA 0,0,0,47,48,0,0,0,0,0,0,0,0, 0,116,116,84 6070 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6070 6080 DATA 0,116,116,116,0,0,116,116,11 6,116,116,116,116,0,0,116,7100 6090 DATA 116,116,116,116,0,0,116,116, 116,116,116,116,116,0,0,116,7226 6100 DATA 116,116,116,116,116,116,116, 0,0,116,116,0,0,0,0,0,1784 6110 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6110 6120 DATA 0,0,144,133,139,134,0,116,0, 0,0,0,0,49,50,51,1763 6130 DATA 52,0,0,0,0,116,116,0,0,0,45, 46,47,48,0,0,20 6140 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,11 6,116,116,1360 6150 DATA 0,0,0,0,0,0,0,49,50,52,0,0,0 ,116,116,0,876 6160 DATA 0,0,45,46,0,0,45,46,116,0,0, 0,0,0,0,0,8206 6170 DATA 0,0,0,0,0,116,0,0,49,50,51,5 2,0,0,0,0,8992 6180 DATA 0,0,0,0,0,116,116,0,47,46,0, 0,0,0,116,116,2167 6190 DATA 116,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,6306 6200 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,11 6,116,0,9564 6210 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6210 6220 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6220 6230 DATA 0,45,46,0,0,116,116,0,0,0,0, 0,0,0,0,0,7966 6240 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6240 6250 DATA 0,0,0,116,116,116,116,116,11 6,116,116,47,48,116,116,0,7762 6260 DATA 0,47,48,0,45,46,0,0,0,0,0,0, 0,0,0,116,8855 6270 DATA 116,0,0,45,46,47,48,0,0,0,0, 0,0,0,0,0,7414 6280 DATA 0,0,140,134,87,135,0,0,0,116 ,116,45,46,0,0,0,2055 6290 DATA 0,0,0,0,0,116,0,0,45,46,0,11 6,0,0,0,0,9243 6300 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,47 ,48,0,7678 6310 DATA 0,116,116,0,0,0,45,46,0,0,11 6,116,116,116,0,0,3373 6320 DATA 0,47,48,116,0,0,0,0,0,0,0,0, 0,0,0,0,7022 6330 DATA 0,49,50,51,52,0,0,0,0,116,11 6,0,0,0,0,0,9478 6340 DATA 0,0,116,0,0,0,0,0,45,46,0,11 6,116,0,0,0,453 6350 DATA 0,0,0,0,0,0,0,49,50,52,0,0,0 ,0,0,0,7712 6360 DATA 0,116,116,0,0,0,0,0,0,116,11 6,0,0,0,0,0,9376 6370 DATA 0,0,0,0,116,0,0,0,0,0,0,0,0, 0,0,0,6950 6380 DATA 0,0,0,0,0,0,0,0,0,116,116,11 6,116,116,116,116,6936 6390 DATA 116,116,116,116,116,116,116, 116,116,116,116,116,116,116,116,116,21 66 6400 DATA 116,116,116,116,116,116,116, 116,116,116,116,116,116,116,116,116,21 76 6410 DATA 116,116,88,135,83,136,0,0,0, 0,0,0,0,170,170,170,6443 6420 DATA 170,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,6590 6430 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6430 6440 DATA 0,0,0,0,0,153,153,153,153,0, 0,0,0,0,0,0,1030 6450 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6450 6460 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,13 6,8,128,532 6470 DATA 136,8,136,136,8,136,136,8,12 8,0,8,128,0,0,0,0,2222 6480 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6480 6490 DATA 0,0,0,0,0,0,7,112,0,7,112,11 9,7,119,119,7,3819 6500 DATA 112,0,7,112,0,0,0,0,0,0,0,0, 0,0,0,0,7081 6510 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 6,96,8136 6520 DATA 0,6,96,102,6,96,102,6,96,0,6 ,96,0,0,0,0,678 6530 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6530 6540 DATA 0,0,0,0,0,0,5,80,0,5,85,80,5 ,80,85,5,1700 6550 DATA 80,0,5,80,0,0,0,0,0,0,0,0,0, 0,0,0,6965 6560 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 4,64,7644 6570 DATA 0,4,84,136,79,137,68,68,4,64 ,68,4,64,0,4,64,2999 6580 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6580 6590 DATA 0,0,0,0,0,0,0,0,0,0,3,48,0,3 ,48,51,8777 6600 DATA 3,51,51,3,51,51,3,51,51,0,0, 0,0,0,0,0,8319 6610 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6610 6620 DATA 0,0,34,34,0,2,32,34,2,34,34, 2,34,34,2,34,9614 6630 DATA 34,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,6664 6640 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6640 6650 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6650 6660 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6660 6670 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6670 6680 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6680 6690 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6690 6700 DATA 0,0,0,0,0,170,0,0,170,0,0,0, 0,0,0,0,9250 6710 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6710 6720 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,15 3,0,0,8862 6730 DATA 153,0,80,137,75,138,0,0,0,0, 0,0,0,0,0,0,8874 6740 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6740 6750 DATA 0,0,0,0,0,0,0,0,0,136,0,0,13 6,8,136,136,4206 6760 DATA 8,136,136,0,8,136,136,0,0,0, 0,0,0,0,0,0,9256 6770 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6770 6780 DATA 0,119,7,112,119,7,112,119,7, 112,119,0,0,112,112,0,5600 6790 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6790 6800 DATA 0,0,0,0,0,0,0,0,0,102,6,96,1 02,6,96,102,3520 6810 DATA 6,96,102,0,0,96,96,0,0,0,0,0 ,0,0,0,0,8562 6820 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6820 6830 DATA 0,85,85,85,85,5,85,85,5,85,8 0,0,0,80,80,0,3420 6840 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6840 6850 DATA 0,0,0,0,0,0,0,0,0,4,64,4,64, 4,68,68,638 6860 DATA 4,68,68,0,0,64,64,0,0,0,0,0, 0,0,0,0,8036 6870 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,6870 6880 DATA 0,3,48,3,48,3,48,51,3,48,51, 0,0,48,48,0,504 6890 DATA 0,0,76,138,119,138,0,0,0,0,0 ,0,0,0,0,0,9093 6900 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,2, 32,2,7440 6910 DATA 32,2,32,34,2,32,34,0,2,34,34 ,0,0,0,0,0,8350 6920 DATA 0,0,120,138,17,139,8,10,138, 174,255,174,138,10,8,128,864 6930 DATA 160,168,234,255,234,168,160, 128,124,68,108,56,0,0,0,0,7126 6940 DATA 0,16,16,0,0,68,40,108,0,0,0, 198,186,56,0,0,4150 6950 DATA 15,3,3,14,0,0,0,0,15,3,3,14, 0,0,0,0,7402 6960 DATA 0,28,12,0,36,0,43,17,0,28,12 ,0,36,0,4,12,8801 6970 DATA 0,0,0,1,27,14,0,0,0,0,0,1,27 ,14,0,0,7752 6980 DATA 240,192,192,112,0,0,0,0,240, 192,192,112,0,0,0,0,6164 6990 DATA 0,56,48,0,36,0,212,136,0,56, 48,0,36,0,32,48,2802 7000 DATA 0,0,0,128,216,112,0,0,0,0,0, 128,216,112,0,0,5176 7010 DATA 56,108,68,68,254,186,124,62, 0,0,24,0,0,36,0,0,2276 7020 DATA 0,96,251,96,0,0,0,0,0,0,0,0, 21,19,23,165,1873 7030 DATA 138,58,12,60,80,16,80,104,13 6,176,192,240,0,3,0,12,7658 7040 DATA 2,0,12,3,85,245,245,86,186,1 68,207,3,5,63,15,5,8307 7050 DATA 235,10,3,15,80,80,80,96,160, 128,0,0,85,95,95,149,8546 7060 DATA 174,44,243,192,0,192,0,48,12 8,0,48,192,5,5,5,9,4693 7070 DATA 10,2,0,0,80,252,240,80,235,1 60,192,240,0,0,5,5,178 7080 DATA 5,9,10,2,0,0,80,252,240,83,2 32,160,15,12,0,0,7542 7090 DATA 0,0,0,0,51,12,0,0,0,0,0,0,0, 0,0,0,7417 7100 DATA 5,5,5,9,0,0,0,0,80,252,240,8 0,10,2,0,0,4164 7110 DATA 0,0,0,0,235,160,192,240,0,0, 0,0,0,0,0,0,2509 7120 DATA 0,0,5,5,0,0,0,0,0,0,80,252,5 ,9,10,2,1432 7130 DATA 15,12,0,0,240,83,232,160,51, 12,0,0,5,20,28,16,3371 7140 DATA 85,117,21,5,64,80,208,16,84, 116,80,85,0,0,0,0,3742 7150 DATA 0,3,0,3,84,85,85,20,117,245, 85,207,21,21,21,5,6737 7160 DATA 29,253,21,15,0,64,64,0,64,64 ,64,0,21,85,85,20,3628 7170 DATA 93,95,85,243,0,0,0,0,0,192,0 ,192,0,1,1,0,2933 7180 DATA 252,96,247,97,1,1,1,0,84,84, 84,80,116,127,84,240,637 7190 DATA 0,0,0,1,1,0,1,1,0,0,84,84,84 ,80,116,127,5130 7200 DATA 1,3,0,0,0,0,0,0,84,207,0,0,0 ,0,0,0,33 7210 DATA 0,0,0,0,0,1,1,0,0,0,0,0,84,8 4,84,80,2031 7220 DATA 1,1,1,0,0,0,0,0,116,127,84,2 40,0,0,0,0,3344 7230 DATA 0,0,0,0,0,0,0,1,0,0,0,0,0,0, 84,84,9842 7240 DATA 1,0,1,1,1,3,0,0,84,80,116,12 7,84,207,0,0,5617 7250 DATA 15,63,255,247,61,0,0,0,252,2 55,255,247,223,80,64,64,6039 7260 DATA 15,63,247,253,13,1,1,1,60,25 5,255,247,220,64,0,0,1855 7270 DATA 0,0,2,2,10,10,42,170,0,128,1 29,165,169,169,170,170,3560 7280 DATA 16,84,85,85,85,85,85,85,0,0, 0,64,64,80,84,85,5609 7290 DATA 0,0,0,15,63,63,255,252,3,63, 63,255,255,255,255,240,804 7300 DATA 195,255,255,255,240,192,0,0, 252,252,240,0,0,0,0,0,9570 7310 DATA 0,0,0,2,8,85,255,255,8,32,12 8,0,0,85,255,255,2588 7320 DATA 68,85,85,21,21,21,149,21,64, 64,64,0,17,85,85,21,4281 7330 DATA 21,21,21,21,21,85,213,255,21 ,85,85,85,85,85,85,255,2330 7340 DATA 248,97,243,98,0,0,0,0,17,85, 85,85,85,85,69,69,6295 7350 DATA 85,85,85,255,0,0,0,0,0,0,128 ,32,8,2,0,0,804 7360 DATA 21,64,255,255,0,0,128,32,85, 0,255,255,0,0,0,0,7076 7370 DATA 0,0,0,2,170,170,170,170,170, 170,170,170,1,4,16,85,607 7380 DATA 16,4,1,0,128,32,8,170,8,32,1 28,0,85,64,74,96,6102 7390 DATA 64,98,64,85,85,105,65,105,65 ,65,105,85,85,96,74,64,8525 7400 DATA 104,64,104,85,85,1,41,1,169, 9,161,85,85,73,73,65,7674 7410 DATA 65,97,97,85,85,137,129,1,33, 33,129,85,85,72,64,98,8165 7420 DATA 98,64,72,85,85,73,65,73,73,6 5,97,85,85,66,66,96,8053 7430 DATA 98,64,72,72,85,0,40,10,128,4 2,128,129,72,72,64,64,7401 7440 DATA 72,72,64,85,1,0,168,128,10,1 60,0,85,85,9,1,161,6925 7450 DATA 41,1,1,85,85,129,129,33,33,1 ,1,85,85,41,1,161,5810 7460 DATA 1,41,1,85,85,97,97,65,65,97, 97,85,128,244,244,254,6538 7470 DATA 254,250,242,144,1,8,95,127,6 3,127,123,33,0,255,255,243,6129 7480 DATA 3,3,3,15,0,255,255,207,192,1 92,192,240,0,240,243,243,2062 7490 DATA 255,255,60,60,0,15,207,207,2 55,255,60,60,255,255,243,3,8673 7500 DATA 244,98,167,99,3,3,3,15,255,2 55,207,192,192,192,192,240,341 7510 DATA 0,0,63,60,60,63,60,60,0,0,24 3,243,243,195,243,243,8528 7520 DATA 0,0,255,207,207,207,207,255, 0,0,60,60,60,60,63,63,9832 7530 DATA 0,0,15,15,15,15,207,207,0,0, 0,0,0,0,240,240,8345 7540 DATA 240,240,243,243,255,60,60,60 ,15,15,207,207,255,60,60,60,3557 7550 DATA 0,0,63,60,60,63,60,60,0,0,24 3,243,243,243,243,243,9240 7560 DATA 0,0,255,207,207,252,207,207, 0,0,15,3,3,3,3,15,5372 7570 DATA 0,0,252,48,48,48,48,252,68,2 1,35,43,106,117,21,60,7412 7580 DATA 68,80,32,160,164,116,80,240, 136,42,28,16,85,117,21,5,7822 7590 DATA 136,160,208,16,84,116,80,85, 255,255,255,255,255,255,255,255,6590 7600 DATA 0,84,95,184,191,168,48,60,84 ,85,85,20,117,245,85,60,1535 7610 DATA 85,85,85,85,85,85,85,85,226, 2,227,2,15,57,0,0,6238
.OPT NOLIST TEMP10 *= $80 ;POINTER TO BYTE IN PLAYFIELD TEMPS *= $82 ;VARIABLE FOR JOYSTICK VALUE TEMPT *= $84 ;VARIABLE FOR TRIGGER VALUE TEMPCH *= $86 ;POINTER TO CHARACTER TEMP12 *= $88 ;TEMP STORAGE TEMP11 *= $8A TEMPQ *= $8C REM1 *= $90 ;POINTER TO CURRENT POSITION(USE TO REMOVE CHARACTER) REM2 *= $92 ;POINTER TO DESTINATION CHAR(USE TO REMOVE CHAR) HPOST *= $94 ;VARIABLE FOR HORIZONTAL POSITION T1Y *= $96 ;TEMP STORAGE JSTCKV *= $98 *= $2000 PM *= *+768 ;START OF PM GRAPHICS MIS *= *+256 PL0R *= *+256 PL1R *= *+256 PL2R *= *+256 PL3R *= *+256 TEMPCHAR *= *+22 ;TEMP STORAGE OF CURRENT MAN DRAWINGS TEMP1 *= *+20 ;TEMP STORAGE DIRECT *= *+2 DA1 *= *+5 ;DELAY VARIABLES END1 *= *+5 ;VERT END OF MAN TOP1 *= *+5 ;VERT TOP OF MAN P0 *= *+3 ;HORIZ POSITION OF MAN P1 *= *+1 LRDRAW *= *+1 ;POINTER TO LEFT/RIGHT DRAWINGS OF TROLL MANNUM *= *+1 ;OFFSET TO TROLL DRAWINGS TIMER1 *= *+2 ;TIMER VARIABLES TEMP13 *= *+2 ;TEMP STORAGE TEMPSQ *= *+1 SQFLAG *= *+2 ;FLAG FOR MISSILE FIRED DIRFLAG *= *+2 ;VARIABLE FOR DIRECTION OF MISSILE T1 *= *+16 ;TEMP STORAGE T2 *= *+1 T3 *= *+1 T5 *= *+2 T6 *= *+1 T7 *= *+1 T8 *= *+1 T15 *= *+1 T16 *= *+1 FSQ1 *= *+1 FSQ2 *= *+1 WARFL *= *+1 ;FLAG FOR WAR BETWEEN TROL/WIZARD TEMP140 *= *+1 ;VARIABLE TO ADD 40 OR 1 MISP1 *= *+2 ;POSITION OF MISSILE MIS2 *= *+2 CHECK *= *+1 ;VARIABLE OF VERT MOVEMENT OF MAN GUNDELAY *= *+1 TROLWIZ *= *+1 ;FLAG USE TO DETERMINE WHOSE TURN SDELAY1 *= *+2 ;SOUND DELAY NOTES *= *+1 ;POINTER TO NOTE OF SONG ; ; ;ROUTINE DISPINT:USED BY DISPLAY ;LIST INTERRUPT TO ALLOW THE ;TITLE SCREEN TO BE MIXED ;GRAPHICS MODES. ; DISPINT PHA ;SAVE THE ACCUMULATOR LDA #1 ;1 TO CLEAR GTIA MODE STA $D40A ;WRITE TO WSYNC STA $D01B ;CLEAR GPRIOR LDA #116 ;LOAD COLOR BLUE STA $02C4 LDA #156 ;LOAD COLOR BLUE STA $02C5 LDA #136 ;LOAD COLOR BLUE STA $02C6 PLA ;RETORE THE ACCUM. RTI ;EXIT ROUTINE ; ; ;SUBROUTINE ZEROPLRS:CLEARS PLAYER ;MISSILE AREA ; ZEROPLRS LDX #0 ;USE ZERO TO CLEAR TXA ;SET BYTE POINTER Z1 STA PL0R,X ;CLEAR MEMORY STA PL1R,X STA PL2R,X STA PL3R,X STA MIS,X INX ;NEXT BYTE BNE Z1 ;256 BYTES ZEROED? RTS ;IF = THEN EXIT ; ;SUBROUTINE LOADCHAR:LOADS 22 ;CONSECUTIVE NUMBERS THAT POINT TO ;CHAR DRAWINGS OF TROLLS OR ;WIZARDS AND SAVES THE POINTERS IN MEMORY STARTING AT ;TEMPCHAR.THIS SUBROUTINE IS CALLED ;PRIOR TO EACH PLAYERS TURN AND ;IS USED TO GENERALIZE ;OTHER SUBROUTINES. ; LOADCHAR LDY #21 ;POINTER TO BYTE LD1 TXA ;X IS POINTER TO CHAR STA TEMPCHAR,Y ;SAVE POINTER DEX ;NEXT POINTER DEY ;NEXT MEMORY BYTE BPL LD1 ;ALL 22 NUMBERS SAVED? RTS ;IF <0 THEN EXIT ; ; ;SUBROUTINE INITIAL:THIS SUBR ;INITIALIZES ALL VARIABLES ; ; INITIAL LDA #4 ;# OF MEN ON BOARD STA TEMP1+18 ;COUNTER FOR # OF TROLLS STA TEMP1+19 ;COUNTER FOR # OF WIZARDS INIT1 LDA #DLIST&$FF ;LOW BYTE OF DISPLAY LIST STA 560 LDA #DLIST/256 ;HIGH BYTE OF DISPLAY LIST STA 561 PMGRAPH LDA #PM/256 ;ADDRESS OF PM MEMORY STA $D407 LDA #62 ;ENABLE PM GRAPH STA $022F LDA #3 STA $D01D COLORPL LDA #20 ;SET PRIORITY AND STA $026F ;ENABLE 5TH PLAYER LDA #228 ;COLOR ORANGE-GREEN STA $02C4 LDA #28 ;COLOR GOLD STA $02C5 LDA #200 ;COLOR GREEN STA $02C6 LDA #2 ;COLOR GRAY STA $02C0 STA $02C1 STA $02C2 LDA #78 ;COLOR PINK STA $02C3 LDA #152 ;COLOR BLUE STA $02C7 PLRSIZE LDA #3 ;SET PLAYER WIDTH STA $D008 STA $D009 STA $D00A LDA #0 ;SET PLAYER WIDTH STA $D00B STA $D00C VAR STA TEMP1+6 STA MANNUM ;POINTER TO NEXT TROLL DRAWING STA LRDRAW ;POINTER TO LEFT OR RIGHT TROLL DRAWING STA DA1+2 ;DELAY VARIABLE STA DA1+4 STA $D01E ;HIT CLEAR LDA #50 STA DA1+3 ;DELAY VARIABLE LDA #1 STA TEMP1+5 LDA #$02 STA T1Y+1 ;HIGH BYTE FOR PAGE 0 VARIABLE SOUND LDA #3 ;ENABLE SOUND STA $D20F LDA #0 ;"TURN OFF" SOUND STA $D208 STA $D200 STA $D202 STA $D204 STA $D206 LDA #$AA ;SET VOLUMN/DISTORTION STA $D203 STA $D205 STA $D207 STA $D201 RTS ;EXIT INITIALIZATION ; ; ;SUBROUTINE PLAYERS:THIS SUBROUTINE ;BUILDS THE PLAYFIELD BOARD ;WHICH IS IN CHECKER BOARD FORM ; PLAYERS LDA #80 ;HORIZ POS OF PLAYER 0 STA $D000 LDA #112 ;HORIZ POS OF PLAYER 1 STA $D001 LDA #144 ;HORIZ POS OF PLAYER 2 STA $D002 LDY #48 ;VERT OFFSET OF ALL PLAYERS PL1 LDX #7 ;(SIZE-1) OF PLAYING BOARD SQUARE PL2 LDA #204 ;VALUE FOR CHECKER BOARD STA PL0R,Y STA PL1R,Y STA PL2R,Y LDA #51 ;VALUE FOR CHECKER BOARD ONE ROW LOWER STA PL0R+8,Y STA PL1R+8,Y STA PL2R+8,Y INY ;NEXT PLAYER BYTE DEX ;NEXT LINE OF SQUARE OF BOARD BPL PL2 ;ALL 8 LINE OF SQUARE DONE TYA ;LOAD PLAYER VERT OFFSET CLC ADC #8 ;ADD 8 FOR NEXT ROW TAY CPY #202 ;IF >202 THEN BOARD DONE BCC PL1 ;ELSE CREATE ANOTHER ROW RTS ;EXIT PLAYERS ; ;ADD401:THIS SUBROUTINE ADDS ;40 OR 1 TO POINTER TEMP10 ; ADD401 CLC LDA TEMP10 ADC TEMP140 STA TEMP10 LDA TEMP10+1 ADC #0 STA TEMP10+1 RTS ; ;SUB401:THIS SUBROUTINE SUBTRACTS ;40 OR 1 TO POINTER TEMP10 ; SUB401 SEC LDA TEMP10 SBC TEMP140 STA TEMP10 LDA TEMP10+1 SBC #0 STA TEMP10+1 RTS ; ; ;SUBROUTINE MOVEPNTR:MOVES THE ;CHAR POINTER LEFT,RIGHT,UP OR ;DOWN. ; MOVEPNTR LDY #0 ;CLEAR Y LDA (TEMPS),Y ;READ JOYSTICK VALUE ;AND TEST VALUE TO DETERMINE ;DIRECTION TO MOVE CHAR POINTER CMP #7 BEQ PR7 ;BRANCH TO MOVE RIGHT CMP #11 BEQ PR11 ;BRANCH TO MOVE LEFT CMP #13 BEQ PR13 ;BRANCH TO MOVE DOWN CMP #14 BEQ PR14 ;BRANCH TO MOVE UP RTS ;EXIT PR13 LDA TEMP10+1 ;TEST CHAR POINTER CMP #LEV14/256 ;POS TO SEE IF IT BCC PR13A ;IS ON LOWEST LDA TEMP10 ;PLAYFIELD LINE CMP #LEV14&$FF BCC PR13A RTS PR13A LDA #40 ;# OF BBYTES PER ROW JMP MOVE1 ;JMP TO MOVE POINTER DOWN PR7 LDA TEMP10+1 ;TEST POINTER CMP #BOTTOM/256 ;POS TO SEE IF IT BCC PR7A ;IS IN LOWER RIGHT LDA TEMP10 ;LIMIT OF PLAYFIELD CMP #BOTTOM&$FF BCC PR7A RTS ;EXIT PR7A LDA #1 ;USE 1 TO MOVE RIGHT 1 BYTE MOVE1 JSR MOVE3 ;RESTORE CHAR WHERE POINTER IS JSR ADD401 ;MOVE POINTER RIGHT JSR MOVE4 ;DISP NEW POINTER RTS ;EXIT PR14 LDA TEMP10+1 ;TEST POINTER POS TO CMP #LEV14A/256 ;SEE IF IT IS ON BCC NOMV ;UPPER PLAYFIELD LINE BEQ PR14B JMP PR14A ;IF NOT,MOVE UP PR14B LDA TEMP10 ;SAME AS PR14 CMP #LEV14A&$FF BCC NOMV JMP PR14A NOMV RTS ;NO MOVE(EXIT) PR14A LDA #40 ;# OF BYTES PER ROW JMP MOVE2 ;JMP TO MOVE POINTER UP PR11 LDA TEMP10+1 ;TEST POS OF POINTER CMP #TOP/256 ;TO SEE IF IT IS BCC NOMV ;IN UPPER LEFT LIMIT BEQ PR11B ;OF PLAYFIELD JMP PR11A ;ELSE MOVE POINTER LEFT PR11B LDA TEMP10 ;SAME AS PR11 CMP #TOP&$FF BCC NOMV PR11A LDA #1 ;USE 1 TO MOVE LEFT 1 BYTE MOVE2 JSR MOVE3 ;RESTORE CHAR WHERE POINTER IS JSR SUB401 ;MOVE POINTER LEFT OR UP JSR MOVE4 ;DISPLAY NEW POINTER RTS ;EXIT MOVE3 STA TEMP140 ;SAVE 1 OR 40 IN VARIABLE LDA TEMP1+1 ;LOAD OLD CHAR HALF STA (TEMP10),Y ;SAVE IN OLD POS INY ;NEXT BYTE LDA TEMP1+2 ;LOAD OTHER HALF OF CHAR STA (TEMP10),Y ;SAVE IN OLD POS RTS ;EXIT MOVE4 LDY #0 ;CLEAR Y LDA (TEMP10),Y ;LOAD CHAR STA TEMP1+1 ;TEMP SAVE LDA #$46 ;DISPLAY LEFT HALF STA (TEMP10),Y ;OF CHAR POINTER INY ;NEXT BYTE LDA (TEMP10),Y ;LOAD CHAR STA TEMP1+2 ;TEMP SAVE LDA #$47 ;DISPLAY RIGHT HALF STA (TEMP10),Y ;OF CHAR POINTER RTS ;EXIT ; ; ;DELAY:SUBROUTINE FOR DELAY ; DELAY LDA #255 ;DELAY VALUE STA DA1 DL1 LDA DA1+3 ;DELAY VARIABLE STA DA1+1 DL2 DEC DA1+1 BNE DL2 DEC DA1 BNE DL1 RTS ; ; ;JOYSTICK:LOADS VALUE OF JOYSTICK 0 OR 1 ;FROM PAGE 0 VARIABLE TEMPS ;AND MOVES THE CHARACTER(A TROLL ;OR A WIZARD)FROM PLAYFIELD BYTE ;(POINTED TO BY TEMP10) TO A ;NEW POSITION ; JOYSTICK LDA TEMP10 ;SAVE STARTING POSITION STA REM1 ;OF MAN THAT HAS LDA TEMP10+1 ;BEEN SELECTD STA REM1+1 ;TO BE MOVED LDA (TEMPS),Y ;LOAD JOYSTICK VALUE CMP #15 ;TEST VALUE BEQ STICK15 ;BRANCH TO DISP FRONT VIEW OF MAN STA TEMP1+3 ;SET FLAG FOR MAN MOVED CMP #7 ;TEST JOYSTICK BEQ STICK7 ;BRANCH TO MOVE MAN RIGHT CMP #11 ;TEST JOYSTICK BNE NEXTJY ;<> TEST WITH OTHER VALUES JMP STICK11 ;JMP TO MOVE LEFT NEXTJY CMP #14 BNE JOYS13 ;BRANCH TO TEST VALUE JMP STICK14 ;JMP TO MOVE MAN UP JOYS13 CMP #13 BNE ENDJY ;IF NOT ABOVE VALUE EXIT JMP STICK13 ;JMP TO MOVE MAN DOWN ENDJY RTS ;EXIT JOYSTICK STICK15 LDX #1 ;POINTER TO FRONT VIEW OF MAN DRAWING UPDN0 LDY #1 UPDN LDA TEMPCHAR,X ;LOAD RIGHT HALF OF MAN DRAWING STA (TEMP10),Y ;SAVE IN PLAYFIELD MEMORY DEY ;CLEAR Y DEX ;SET POINTER TO LEFT HALF OF MAN DRAWING LDA TEMPCHAR,X ;LOAD DRAWING STA (TEMP10),Y ;SAVE IN PLAYFIELD MEMORY RTS ;EXIT STICK7 LDA (TEMP10),Y ;LOAD BYTE IN PLAYFIELD MEMORY CMP TEMPCHAR ;TEST TO SEE IF IT IS A MAN FRONT VIEW OF MAN BNE C6 ;IF NOT,CONTINUE TO TEST LDX #7 ;SET POINTER TO MAN DRAWING JMP UPDN0 ;JMP TO CHANGE/MOVE MAN C6 CMP TEMPCHAR+6 ;CMP WITH CHAR MOVING RIGHT BNE C8 ;IF <>,CONTINUE TESTING LDX #9 ;SET POINTER TO CHANGE MAN WITHIN BYTE JMP UPDN0 ;JMP TO CHANGE DRAWING C8 CMP TEMPCHAR+8 CMP WITH CHAR MOVEING RIGHT INTO BNE CC ;THE NEXT BYTE TO RIGHT LDA #2 ;USE 2 TO SET POINTER(TEMP10) STA TEMP140 ;TWO BYTES TO RIGHT JSR ADD401 LDY #0 ;CLEAR Y LDA (TEMP10),Y ;LOAD PLAYFIELD BYTE BEQ C122 ;IF = MOVE MAN RIGHT LDA TEMPCHAR ;ELSE DETERMINE IF TROLLS OR WIZ TURN CMP #1 ;IF 1 THEN TROLLS TURN BNE C1C ;ELSE WIZS TURN JSR PREWAR1 JSR SUBWAR2 ;JMP SUB TO FIGHT RTS ;EXIT C1C CMP #$17 ;IF 17 THEN WIZ TURN BNE CCA JSR PREWAR1 JSR SUBWAR1 RTS ;EXIT CCA JSR SUB401 ;ELSE RESTORE (TEMP10) CC RTS C122 JSR SUB401 ;RESTORE (TEMP10) LDY #0 ;CLEAR Y LDA #0 ;LOAD 0 TO CLEAR STA (TEMP10),Y ;PLAYFIELD BYTE LDY #2 ;SET Y TO NEW POS LDX #7 ;LOAD CHAR OFFSET JSR UPDN ;JMPSUB TO DISPLAY NEW VIEW LDA #1 STA TEMP140 JMP ADD401 ;ADD 1 TO TEMP10 TO SET NEW POS STICK11 LDA (TEMP10),Y ;LOAD PLAYFIELD BYTE CMP TEMPCHAR ;CMP WITH FRONT VIEW OF MAN BNE C6A ;IF<> CMP WITH OTHER CHARS LDX #3 ;LOAD CHAR OFFSET FOR MAN MOVING LEFT JMP UPDN0 ;DISPLAY MAN MOVING LEFT C6A CMP TEMPCHAR+2 ;CMP WITH CHAR FOR MAN MOVING LEFT WITHIN BYTE BNE C8A ;IF <> THEN CMP WITH OTHER CHARS LDX #5 ;ELSE LOAD CHAR OFFSET TO MOVE MAN WITHIN BYTE JMP UPDN0 ;JMP TO CHANGE DRAWING C8A CMP TEMPCHAR+4 ;CMP WITH MAN MOVING LEFT TO NEW POS BNE CCC ;IF <> THEN EXIT LDA #1 ;VALUE TO BE SUBTRACTED STA TEMP140 ;TEMPORARY SAVE JSR SUB401 ;MOVE POINTER TEMP10 LEFT 1 BYTE LDA (TEMP10),Y ;LOAD PLAYFIELD BYTE BEQ C82 ;IF = THEN MOVE MAN LDA TEMPCHAR ;ELSE DETERMINE IF TROLL OR WIZARD TURN CMP #$17 ;CHAR $17 IS 1ST WIZARD CHAR BNE C2C ;IF <> TEST FOR TROLL TURN JSR PREWAR2 ;JMP TO SAVE TEMP10 POS JSR SUBWAR1 ;JMPSUB FOR ATTACKING SEQUENCE RTS C2C CMP #1 ;CHAR 1 IS 1ST TROLL CHAR BNE C4C ;IF <> THEN RESET TEMP10 JSR PREWAR2 ;JMPSUB TO SAVE TEMP10 POS JSR SUBWAR2 ;JMPSUB FOR ATTACKING SEQUENCE RTS C4C JSR ADD401 ;RESET TEMP10 CCC RTS ;EXIT C82 LDX #3 ;LOAD CHAR OFFSET JSR UPDN0 ;DISPLAY NEW VIEW OF MAN TYA ;LOAD ACCUM WITH 0 LDY #2 ;SET Y TO POINT TO OLD POS OF MAN STA (TEMP10),Y ;CLEAR OLD DRAWING RTS STICK14 LDA #40 ;VALUE TO CALCULATE 1 ROW ABOVE STA TEMP140 ;TEMPORARY SAVE JSR SUB401 ;CALCULATE NEW POS LDA (TEMP10),Y ;PLAYFIELD BYTE IN NEW POS BEQ UP0 ;IF= THEN MOVE MAN UP E01 LDA TEMPCHAR ;ELSE DTERMINE WHOSE TURN IT IS CMP #$17 ;CHAR $17 IS 1ST WIZARD DRAWING BNE JE14 JSR PREWAR2 ;JMPSUB TO SAVE TEMP10 POS JSR SUBWAR1 ;JMPSUB TO FIGHT RTS JY14 LDA #40 ;VALUE TO RESET TEMP10 TO OLD POS STA TEMP140 ;TEMP SAVE JSR ADD401 ;RESET TEMP10 RTS JE14 CMP #1 ;CHAR 1 IS 1ST TROLL DRAWING BNE JY14 ;IF <> THEN EXIT JSR PREWAR2 ;ELSE SAVE TEMP10 POS JSR SUBWAR2 ;JMP TO CONDUCT FIGHTING RTS UP0 INY ;SET ROW OFFSET LDA (TEMP10),Y ;LOAD PLAYFIELD-ROW BYTE BNE E01 ;IF <> TEST TO SEE WHAT CHAR IT IS JSR ADD401 ;ELSE RESET TEMP10 LDA CHECK ;LOAD VARIABLE FOR # OF VERT MOVEMENTS CMP #3 ;IF > 3 THEN MAN CANNOT BE MOVED UP BCC UOK ;ELSE OK TO MOVE UP RTS UOK INC CHECK ;ADD 1 TO # OF VERT MOVEMENTS LDY #0 ;CLEAR Y JSR ST1213 ;DISPLAY VIEW OF MAN MOVING UP JSR SUB401 ;SET TEMP10 TO 1 ROW ABOVE LDX #19 ;LOAD CHAR OFFSET JSR ST1D1F ;CONTINUE TO DISPLAY JSR ST2320 ;MAN MOVING UP LDX #11 ;CHAR OFFSET JSR ST1D1F ;DISPLAY MAN MOVING UP LDA #0 ;USE 0 TO CLEAR STA (TEMP10),Y ;CHAR IN OLD POS DEY STA (TEMP10),Y JSR SUB401 ;SET TEMP10 TO NEW POS ST1213 LDA TEMPCHAR+8 ;DISPLAY FINAL VIEW OF MAN MOVING STA (TEMP10),Y ;PLAYFIELD BYTE INY ;NEXT ROW POS LDA TEMPCHAR+9 STA (TEMP10),Y JSR DELAY RTS STICK13 LDA #40 ;VALUE TO CALCULATE 1 ROW LOWER STA TEMP140 ;TEMP SAVE JSR ADD401 ;SET TEMP10 TO NEW POS LDA (TEMP10),Y ;LOAD PLAYFIELD BYTE BEQ DOWN0 ;IF = MOVE MAN DOWN E02 LDA TEMPCHAR CMP #$17 BNE JE13 JSR PREWAR1 JSR SUBWAR1 RTS JY13 LDA #40 STA TEMP140 JSR SUB401 RTS JE13 CMP #1 BNE JY13 JSR PREWAR1 JSR SUBWAR2 RTS DOWN0 INY ;SET Y TO NEW ROW POS LDA (TEMP10),Y ;LOAD PLAYFIELD BYTE BEQ DOWN1 ;IF = THEN MOVE MAN DOWN JMP E02 DOWN1 JSR SUB401 ;RESET TEMP10 TO OLD POS LDA CHECK ;VARIABLE FOR # OF VERT MOVEMENTS CMP #3 ;IF < 3 THEN BCC DOK ;DOWN MOVE OK RTS ;ELSE RTS DOK INC CHECK ;ADD 1 TO # OF VERT MOVEMENTS LDY #0 ;CLEAR Y JSR ST1213 ;JMP TO DISPLAY MAN MOVING DOWN LDX #11 ;CHAR OFFSET JSR ST1D1F ;CONTINUE DISPLAYING JSR ST2320 ;MAN MOVING DOWN LDX #19 ;CHAR OFFSET JSR ST1D1F ;CONTINUE DISPLAYING DOWN MOVE JSR SUB401 ;SET POINTER TO OLD POS OF MAN LDA #0 ;USE 0 TO CLEAR OLD DRAWING STA (TEMP10),Y DEY STA (TEMP10),Y JSR ADD401 ;SET POINTER TO NEW POS OF MAN JMP ST1213 ;DISPLAY FINAL VIEW OF MAN IN NEW POS ST2320 LDX #17 ;CHAR OFFSET JSR UPDN0 ;DISPLAY LOWER HALF OF MAN JSR SUB401 ;CALCULATE 1 ROW ABOVE LDA TEMPCHAR+14 ;UPPER HALF OF MAN STA (TEMP10),Y ;SAVE IN PLAYFIELD INY ;NEXT PLAYFIELD BYTE LDA TEMPCHAR+15 ;OTHER HALF OF UPPER DRAWING STA (TEMP10),Y ;SAVE IN PLAYFIELD BYTE JSR DELAY RTS ST1D1F JSR UPDN0 ;DISPLAY UPPER HALF OF MAN JSR ADD401 ;CALCULATE 1 ROW BELOW LDA TEMPCHAR+2,X ;LOWER HALF OF MAN STA (TEMP10),Y ;SAVE IN PLAYFIELD INY ;NEXT PLAYFIELD BYTE LDA TEMPCHAR+3,X ;OTHER HALF OF LOWER DRAWING STA (TEMP10),Y ;SAVE IN PLAYFIELD JSR DELAY RTS ; ; ;JOYST0:LOADS THE ADDRESS OF ;OF STICK0 AND TRIGGER0 INTO ;PAGE 0 VARIABLES ; JOYST0 LDA #$02 ;JOYSTICK 0 STA TEMPS+1 LDA #$78 STA TEMPS LDA #$02 ;TRIGGER 0 STA TEMPT+1 LDA #$84 STA TEMPT RTS JOYST1 LDA #$02 ;JOYSTICK 1 STA TEMPS+1 LDA #$79 STA TEMPS LDA #$02 ;TRIGGER 1 STA TEMPT+1 LDA #$85 STA TEMPT RTS TEN12 LDA #LEV12/256 ;STARTING POS OF STA TEMP10+1 ;CHAR POINTER WHEN TROLLS TURN LDA #LEV12&$FF STA TEMP10 RTS TEN122 LDA #LEV122/256 ;STARTING POS OF STA TEMP10+1 ;CHAR POINTER WHEN WIZARD TURN LDA #LEV122&$FF STA TEMP10 RTS PLACE LDY #0 ;ROW OFFSET LDA #$46 ;LEFT HALF OF CHAR POINTER STA (TEMP10),Y ;PLAYFIELD ROW POS INY ;NEXT ROW POS LDA #$47 ;RIGHT HALF OF CHAR POS STA (TEMP10),Y ;PLAYFIELD ROW POSITION RTS ; ; ;TROLLM:SUBROUTINE THAT CALLS ;ROUTINES TO EITHER MOVE POINTER ;OR THE TROLL/WIZARD.THIS SUBROUTINE ;ALSO MONITORS # OF MEN THAT ;HAVE BEEN MOVED.IF 4 MEN MOVED ;THEN TURN OVER ; TROLLM LDA #0 ;CLEAR VAR FOR STA TEMP1+4 ;# OF MEN MOVED TM3 LDA #0 ;0 TO CLEAR STA WARFL ;FLAG FOR TROLL/WIZ FIGHT STA TEMP1+1 ;CLEAR VAR THAT RESTORES CHAR STA TEMP1+2 ;AFTER POINTER MOVED OVER IT TM13 LDA #0 ;0 TO CLEAR STA TEMP1+3 INC TEMP1+4 ;ADD 1 TO # OF TURNS LDA TEMP1+4 CMP #5 ;IF <5,TURN NOT OVER BCS TM15 ;IF >=EXIT JMP TM1 ;ELSE MOVE POINTER TM15 LDY #0 ;CLEAR Y JSR MOVE3 ;REMOVE POINTER/RESTORE CHAR RTS ;EXIT TM1 JSR MOVEPNTR ;MOVE POINTER JSR DELAY LDY #0 ;CLEAR Y LDA (TEMPT),Y ;LOAD TRIGGER BNE TM1 ;IF NOT PRESSED THEN MOVE POINTER JSR MOVE3 ;RESTORE CHAR WHERE POINTER IS LDA TEMP1+1 ;TEST TO SEE IF CHAR IS CMP TEMPCHAR ;A TROLL OR WIZ BEQ TM0 ;IF IT IS THEN MOVE MAN JSR PLACEMAN ;ELSE TEST TO DISP NEW MAN JSR MOVE4 ;DISP POINTER JMP TM1 ;MOVE POINTER TM0 JSR DELAY JSR DELAY JSR DELAY JSR DELAY LDA #0 STA CHECK TM2 LDY #0 ;CLEAR Y JSR JOYSTICK ;MOVE MAN LDA TEMPCHAR ;LOAD POINTER TO TROLL/WIZ DRAWING CMP #1 ;1=TROLL TURN/22=WIZ TURN BEQ TESTTROL LDA TEMP1+19 ;IF= THEN NO WIZ BNE TM14 ;IS ON PLAYFIELD LDA WIZRDS ;IF NOT= THEN WIZ'S BEQ TM14 ;CASTLE BLOCKED RTS ;END WIZ TURN TESTTROL LDA TEMP1+18 ;IF = THEN NO TROLL BNE TM14 ;IS ON PLAYFIELD LDA TROL0+1 ;IF NOT= THEN TROLL'S BEQ TM14 ;CASTLE BLOCKED RTS ;END TROLLS TURN TM14 JSR DELAY LDA WARFL ;TEST TO SEE IF TROL BNE TM3 ;HAS FOUGHT WIZARD LDY #0 ;CLEAR Y LDA (TEMPT),Y ;LOAD TRIGGER BNE TM2 ;IF NOT PRESS,JMP TO MOVE MAN LDA TEMPCHAR ;LOAD FRONT VIEW OF MAN STA TEMP1+1 ;TEMP SAVE LDA TEMPCHAR+1 ;LOAD OTHER HALF OF MAN DRAWING STA TEMP1+2 ;TEMP SAVE JSR PLACE ;DISPLAY POINTER LDA TEMP1+3 BEQ TM16 JSR DELAY JSR DELAY JSR DELAY JSR DELAY JMP TM13 ;JMP TO MOVE ANOTHER MAN OR END TURN TM16 JSR DELAY JSR DELAY JSR DELAY JSR DELAY JMP TM1 ;JMP TO MOVE POINTER .INCLUDE #D:TROLL1.M65 .INCLUDE #D:TROLL2.M65 .INCLUDE #D:TROLL3.M65 .INCLUDE #D:TROLL4.M65 .INCLUDE #D:TROLL5.M65 .INCLUDE #D:TROLL6.M65 .INCLUDE #D:TROLL7.M65 .INCLUDE #D:TROLL8.M65 .INCLUDE #D:TROLL9.M65 ; ;VBRTIN:VERTICLE BLANK ROUTINE CONTROLS ;EITHER TROLL COMBATING WIZARD ;OR CASTLE BEING STORMED ; VBRTIN LDA #0 STA 77 LDA DLIST+6 CMP #CASTL/256 ;IF CASTL IS BNE VB1 ;IN DISPLAY LIST LDA DLIST+5 ;THEN TROLL CASTLE IS CMP #CASTL&$FF ;BEING ATTACKED BNE VB1 ;ELSE TEST DISPLAY LIST FOR OTHER SCREENS JSR FIREVAR2 ;JMPSUB TO INITIALIZE VARIABLES JSR FIREBOMB ;JMPSUB TO FIRE ATTACKERS BOMB JSR MOVEBOMB ;JMPSUB TO MOVE ATTACKERS BOMB LDA GUNDELAY ;IF FLAG =0 THEN BEQ NODEC1 ;MOVE DEFENDING GUN DEC GUNDELAY ;ELSE DECREASE DELAY JMP VBC ;EXIT VERTBLANK NODEC1 LDA #42 ;RESET COLOR OF PLAYER 3 STA $02C3 JSR SET0 ;JMPSUB TO INIT TROLL VARIABLES LDX #0 LDY #0 LDA #5 STA TEMP1 JSR MISSILE1 ;JMPSUB TO FIRE DEFENDERS BOMB JSR SET1 ;INIT WIZARDS VARIABLES JSR FIREVAR2 ;INIT ATTACKER VARIABLE JSR FIREBOMB ;FIRE ATTACKER BOMB JSR MOVEBOMB ;MOVE ATTACKERS BOMB LDA $D00F ;LOAD PLAYER3 TO PLAYER COLLISION BNE HIT1 ;IF NE THEN DEFENDERS GUN HIT JMP VBB ;ELSE EXIT VERTBLANK HIT1 LDA #0 ;RESET COLOR STA $02C3 ;OF PLAYER 3 JMP VBA ;JMP TO EXIT VB1 LDA DLIST+6 CMP #CASTR/256 ;IF CASTR IS IN BNE VB2 ;DISPLAY LIST THEN LDA DLIST+5 ;WIZARDS CASTLE IS CMP #CASTR&$FF ;BEING ATTACKED BNE VB2 JSR FIREVAR1 ;INIT ATTACKERS VARIABLES JSR FIREBOMB ;FIRE ATTACKERS BOMB JSR MOVEBOM2 ;MOVE ATTACKERS BOMB LDA GUNDELAY ;IF DELAY IS = BEQ NODEC2 ;THEN MOVE DEFENDERS GUN DEC GUNDELAY ;ELSE DECREASE DELAY JMP VBC ;EXIT VERTBLANK NODEC2 LDA #90 ;SET PLAYER 2 COLOR STA $02C2 JSR SET0 ;INIT TROLL VARIABLES JSR FIREVAR1 ;INIT ATTACKERS VARIABLES JSR FIREBOMB ;FIRE ATTACKERS BOMB JSR MOVEBOM2 ;MOVE ATTACKERS BOMB JSR SET1 ;INIT WIZARDS VARIABLES LDX #1 LDA #33 STA TEMP1 LDY #0 JSR MISSILE1 ;MOVE DEFENDERS BOMB LDA $D00E ;PLAYER2 TO PLAYER COLLISION BNE HIT2 JMP VBB ;EXIT VERTBLANK HIT2 LDA #0 ;RESET COLOR OF PLAYER 2 STA $02C2 VBA STA $D200 ;TURN OFF SOUND LDA #90 ;VALUE FOR HOW LONG DEFENDERS GUN DISAPPEARS VBB STA GUNDELAY VBC STA $D01E ;HIT CLEAR JMP $E462 ;EXIT VERT BLANK VB2 LDA 561 CMP #DLIST2/256 ;IF DLIST2 IS IN BNE VBC ;THE DISPLAY LIST LDA 560 ;THEN A TROLL CMP #DLIST2&$FF ;IS FIGHTING BNE VBC ;A WIZARD LDA TEMP1+10 ;FLAG FOR TROLL/WIZARD BNE VBC ;HIT BY BOMB JSR TVAR ;JMP TO INIT TROLL VARIABLES LDX #1 LDA $D003 ;TROLLS BOMB IS INPLAYER 3 JSR MOVESQ ;MOVE TROLLS BOMB LDX #1 LDA $D003 ;HPOSP3 JSR MOVESQ ;MOVE TROLLS BOMB JSR FIRETQ ;FIRE TROLLS BOMB JSR WVAR ;INIT WIZ VARIABLES LDX #0 LDA $D000 ;WIZS BOMB IS IN PLAYER 0 JSR MOVESQ ;MOVE WIZARDS BOMB LDX #0 LDA $D000 ;HPOSP0 JSR MOVESQ ;MOVE WIZ BOMB JSR FIRESQ ;FIRE WIZARDS BOMB LDA $D008 ;MISSILE 0 T PLAYER COLLISION AND #14 ;IS PLAYER1,2OR3 HIT BEQ VB5 ;IF = THEN NOT HIT LDA TEMP1+18 ;ELSE DECREASE BEQ VT1 ;THE # OF TROLLS DEC TEMP1+18 VT1 LDA #1 ;SET FLAG FOR STA TEMP1+10 ;TO END FIGHT VB5 LDA $D00B ;MISSILE 3 TO PLAYER COLLISION AND #1 ;IS PLAYER 0 HIT BEQ VB3 ;IF = THEN NOT HIT LDA TEMP1+19 ;ELSE DECREASE BEQ VW1 ;THE # OF WIZARDS DEC TEMP1+19 VW1 LDA #1 ;SET FLAG FOR STA TEMP1+10 ;TO END FIGHT STA TEMP13 ;SET FLAG FOR WIZARD HIT VB3 STA $D01E ;HIT CLEAR JMP $E462 ;END VERTBLANK ; SET0 LDX #0 ;INITIALIZE JSR JOYST0 ;JOYSTICK 0 LDY #0 ;VARIABLES JSR T12P3 JSR JOYSTG0 RTS ; SET1 LDX #1 JSR JOYST1 LDY #0 JSR T12MS JSR JOYSTG0 RTS ; ;START:ACTUAL START OF THE GAME ;DISPLAYS TITLE SCREEN AND ;INITIALIZES GAME ; START LDA #0 ;SET BACKGROUND COLOR STA $02C8 LDA #DLIST1/256 ;LOAD ADDRESS STA 561 ;OF DISPLAY LIST LDA #DLIST1&$FF ;FOR DISPLAY STA 560 ;OF TITLE SCREEN LDA #$41 ;ENABLE GTIA STA $026F ;SAVE IN SHADOW STA $D01B ;AND IN GPRIOR LDA #ROWDISP/256 ;LOAD ADDRESS STA TEMP10+1 ;OF DISPLAY LINE LDA #ROWDISP&$FF ;ON TITLE SCREEN STA TEMP10 ;WHERE TROLL WALKS LDX #22 ;LOAD POINTER TO LAST TROLL DRAWING JSR LOADCHAR ;LOAD TROLL DRAWINGS LDA #CHAR/256 ;LOAD ADDRESS OF STA $02F4 ;CHAR BASE LDA #38 ;(LENGTH-1)OF PLAYFIELD LINE STA TEMP140 ;TEMP SAVE JSR ADD401 ;SET TEMP10 TO POINT TO TROLL LDA #200 ;VALUE OF DELAY STA DA1+3 ;DELAY VARIABLE LDA #DISPINT/256 ;ENABLE DISPLAY LIST STA $0201 ;INTERRUPT LDA #DISPINT&$FF STA $0200 LDA $D40E ORA #$80 STA $D40E LDA #40 ;USE 40 TO MOVE TROLL 20 BYTES STA T1 ;(TROLL MOVES TWICE IN EACH BYTE) JSR SOUND ;ENABLE SOUND LDA #0 ;SET POINTER TO SONG STA NOTES STLOOP JSR DELAY LDY #0 ;CLEAR Y JSR STICK11 ;MOVE TROLL LEFT LDX NOTES ;LOAD SONG OFFSET LDA NOTE,X ;GET NOTE STA $D200 ;PLAY NOTE INC NOTES ;SET POINTER TO NEXT NOTE LDA NOTES ;LOAD POINTER CMP #8 ;IF ALL 8 NOTES HAVE BCC OKNOTE ;BEEN PLAYED LDA #0 ;RESET POINTER STA NOTES OKNOTE DEC T1 BNE STLOOP ;IF = TROLL IS IN MIDDLE OF SCREEN LDY #0 ;CLEAR Y STY $D200 ;TURN OFF SOUND LDA #1 ;LOAD FRONT VIEW OF TROLL STA (TEMP10),Y ;SAVE ON SCREEN LDA #2 ;LOAD OTHER HALF OF TROLL INY ;ADD 1 TO OFFSET STA (TEMP10),Y ;SAVE ON SCREEN STLOOP1 JSR DELAY JSR DELAY JSR INITIAL ;INITAILIZE VARIABLES JSR ZEROPLRS ;CLEAR PM MEMORY LDA #7 ;ENABLE VERTICLE BLANK LDX #VBRTIN/256 LDY #VBRTIN&$FF JSR $E45C JSR PLAYERS ;BUILD PLAYFIELD BOARD ; ;MAINLOOP:CONTROLS GAME PLAY ; MAINLOOP LDA TROL0+1 ;IS BYTE INFRONT OF BEQ TROLLS ;TROLL CASTLE CLEAR LDA TEMP1+18 ;IS A TROLL ON PLAYFIELD BEQ WIZTURN TROLLS JSR JOYST0 ;ENABLE JOYSTICK0 TO BE LOADED JSR TEN12 ;SET POS WHERE CHAR POINTER IS DISPLAYED JSR PLACE ;DISPLAY CHAR POINTER LDX #22 ;SET POINTER TO LAST TROLL DRAWING JSR LOADCHAR ;LOAD TROLL DRAWINGS JSR TROLLM ;MOVE TROLL WIZTURN LDA WIZRDS ;IS BYTE IN FRONT OF BEQ WIZARDS ;WIZ CASTLE CLEAR LDA TEMP1+19 ;IS A WIZ ON PLAYFIELD BEQ TROLLS WIZARDS JSR JOYST1 ;ENABLE JOYSTICK1 TO BE LOADED JSR TEN122 ;SET POSITION WHERE CHAR POINTER IS DISPLAYED JSR PLACE ;DISPLAY CHAR POINTER LDX #44 ;SET POINTER TO LAST WIZARD DRAWING JSR LOADCHAR ;LOAD WIZARD DRAWING JSR TROLLM ;CALL SUB TO MOVE WIZARD JMP MAINLOOP *= $7000 DLIST2 .BYTE $70,$70 .BYTE $44 .WORD SCR2M .BYTE $04,$04,$04,$04,$04 .BYTE $04,$04,$04,$04,$04 .BYTE $04,$04,$04,$04,$04 .BYTE $04,$04,$04,$04,$04 .BYTE $04,$04,$04 .BYTE $41 .WORD DLIST2 DLIST1 .BYTE $70,$70,$70,$70,$70 .BYTE $70,$70,$70,$70,$70,$4F .WORD SCR1M .BYTE $0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$0F,$0F .BYTE $0F,$0F,$0F,$8F .BYTE $70,$70,$44 .WORD ROWDISP .BYTE $41 .WORD DLIST1 DLIST .BYTE $70,$45 .WORD TITLES .BYTE $44 .WORD BOARD .BYTE $04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04 .BYTE $04,$04,$04,$04,$04,$04,$04,$04,$04,$04 .BYTE $41 .WORD DLIST EXPLD .BYTE $15,$3E,$F2,$7C,$12,$28 TITLES .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$DE,$DF,$E0,$E1,$E2,$E3,$E4,$E5 .BYTE $00,$E6,$E7,$E8,$E9,$EA,$EB,$EC,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 TABLE7 .BYTE $FE,$88,$90,$60,$40,$20,$25,$40,$20,$30 .BYTE $50,$17,$40,$50,$50,$30 TABLE5 .BYTE $01,$01,$00,$00,$01,$01,$00,$01,$01,$01 .BYTE $00,$01,$00,$01,$01,$01 NOTE .BYTE 243,193,217,162,243,182,217,162 TABLE2 *= *+16 TABLE3 *= *+16 TKING .BYTE $01 WKING .BYTE $01 TOTALT .BYTE $0C TOTALW .BYTE $0C ROWDISP .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$01,$02 ROWT .BYTE $08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08 ROWW .BYTE $08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08 .INCLUDE #D:TROLL12.M65 .INCLUDE #D:TROLL11.M65 .INCLUDE #D:TROLL10.M65 .INCLUDE #D:TROLL13.M65 .INCLUDE #D:TROLL14.M65 .INCLUDE #D:TROLL15.M65 .INCLUDE #D:TROLL16.M65 *= $02E0 .WORD START ;JS15G:USED TO LOAD GUN DRAWING ;INTO PLAYER MEMORY JS15G LDA #70 ;VERT ENDING POS STA END1 ;OF GUN DRAWINGS STA END1+1 LDA #62 ;VERT START POS STA TOP1 ;OF GUN DRAWINGS STA TOP1+1 STA $D003 ;SAVE HORIZ POS OF PLAYER3 LDA #183 ;HORIZ POS OF STA $D002 ;PLAYER2 LDX #8 ;POINTER TO GUN DRAWING BYTE G1 LDA GUN,X ;LOAD DRAWING BYTE STA PL3R+62,X ;SAVE IN PLAYER MEMORY LDA GUN2,X ;DRAWING BYTE STA PL2R+62,X ;SAVE IN PLAYER MEMORY DEX ;NEXT BYTE BPL G1 ;IF<0 THEN ALL BYTES MOVED RTS ; ;T12P3:LOADS ADDRESS OF PLAYER 3 ;INTO TEMP12 T12P3 LDA #PL3R/256 ;LOAD ADDRESS STA TEMP12+1 ;OF PLAYER3 LDA #PL3R&$FF ;INTO TEMP POINTER STA TEMP12 RTS ; ;T12MS:LOADS ADDRESS OF PLAYER 2 ;INTO TEMP12 T12MS LDA #PL2R/256 ;LOAD ADDRESS STA TEMP12+1 ;OF PLAYER2 LDA #PL2R&$FF ;INTO TEMP POINTER STA TEMP12 RTS ; ;JOYSTG0:MOVES GUN (DRAWING IN ;PLAYER MEMORY) UP OR DOWN ; JOYSTG0 LDA (TEMPS),Y ;LOAD JOYSTICK VALUE CMP #13 ;TEST FOR POS 13 BNE G14 ;BRANCH TO TEST FOR 14 LDA END1,X ;LOAD VERT END POS OF GUN CMP #192 ;IS IT AT LOWER LIMIT BCS EXITG ;IF >OR= THEN EXIT INC END1,X ;ELSE ADD 1 TO INC TOP1,X ;VERT POS OF GUN LDX #12 ;#OF BYTES OF GUNDRAWING TO MOVE TAY ;LOAD ENDING POS OF GUN DOWNG DEY ;SET TO BYTE TO BE MOVED LDA (TEMP12),Y INY ;SET TO DESTINATION STA (TEMP12),Y DEY ;NEXT BYTE TO MOVE DEX ;DEC # OF BYTES TO MOVE BNE DOWNG RTS G14 CMP #14 ;IS JOYSTICK VALUE 14 BNE EXITG ;IF NOT THEN EXIT LDA TOP1,X ;VERT START POS OF GUN CMP #64 ;IS IT AT UPPER LIMIT BCC EXITG ;IF < THEN EXIT DEC END1,X ;ELSE SUB 1 FROM DEC TOP1,X ;GUN'S VERT POS TAY ;LOAD VERT START OF GUN DRAWING LDX #12 ;#OF BYTES OF GUN DRAWING TO BE MOVED UPG INY ;SET TO POINT TO BYTE TO BE MOVED LDA (TEMP12),Y DEY ;SET TO DESTINATION BYTE STA (TEMP12),Y INY ;NEXT BYTE TO BE MOVED DEX ;DEC #OF BYTES TO BE MOVED BNE UPG EXITG RTS ; ;FIREBOMB:MOVES MISSILE BOMB ;OR EXPLODES MISSILE FIREBOMB LDA P0+2 ;LOAD COUNTER FOR BEQ FIRE ;HOW LONG BOMB EXPLODES DEC P0+2 LDA P0+2 BNE EXIT84 ;IF = THEN SEC ;SUB 2 TO FIND LDA P0+1 ;LOWEST POS SBC #2 ;OF EXPLODING DRAWING TAY LDX #5 ;# OF BYTES TO BE CLEARED LDA #0 DISP STA PL0R,Y ;CLEAR EXPLODE INY ;DRAWING IN PLAYER0 DEX ;ALL BYTES CLEARED BPL DISP LDA #0 STA $D202 RTS FIRE LDA TEMP1+5 ;TEST FLAG FOR BOMB ALREADY FIRED BEQ EXIT84 LDY #0 ;CLEAR Y LDA (T1Y),Y ;LOAD TRIGGER VALUE BNE EXIT84 ;IF NOT PRESSED EXIT STA TEMP1+5 ;SET FLAG FOR BOMB FIRED CLC LDX T15 LDA TOP1,X ;START OF GUN DRAWING ADC #4 ;FIND MIDDLE OF GUN TAY LDA T16 ;POS WHERE BOMB STARTS STA $D000 ;SAVE BOMB HORIZ POS STA P0 ;SAVE IN POINTER LDA #24 ;BOMB DRAWING STA PL0R,Y ;SAVE IN PLAYER MEMORY STY P0+1 LDA #218 ;SET BOMB COLOR STA $02C0 LDA #160 STA SDELAY1+1 EXIT84 RTS ; ;MOVEBOMB:MOVES BOMB TO LEFT ;AND EXPLODES BOMB ; MOVEBOMB LDA TEMP1+5 ;IF FLAG= 0 THEN BEQ MOV ;MOVE BOMB RTS MOV DEC P0 ;SET NEW POS DEC P0 LDA P0 ;HAS BOMB REACHED CMP #63 ;LEFT LIMIT,IF YES BCC EXPLODE ;THEN EXPLODE BOMB STA $D000 ;ELSE SAVE NEW POS DEC SDELAY1+1 LDA SDELAY1+1 STA $D202 RTS EXPLODE LDA #1 ;SET FLAG FOR EXPLOSION STA TEMP1+5 SEC ;SET VERT POS FOR LDA P0+1 ;WHERE BOMB SBC #2 ;WILL EXPLODE TAY LDX #5 ;#OF BYTES IN EXPLODE DRAWING EXPL LDA EXPLD,X ;LOAD EXPLODE DRAW BYTE STA PL0R,Y ;SAVE IN PLAYER MEMORY INY ;NEXT STORAGE BYTE DEX ;NEXT DRAWING BYTE BPL EXPL LDA #5 ;SET FLAG FOR HOW STA P0+2 ;LONG EXPLODE DRAWING LAST LDA #14 ;SET EXPLODE COLOR STA $02C0 LDA #250 STA $D202 RTS ; ;MOVEBOM2:MOVES MISSILE TO RIGHT ;AND EXPLODES MISSILE MOVEBOM2 LDA TEMP1+5 BEQ MOV2 RTS MOV2 INC P0 ;SET NEW POS INC P0 LDA P0 ;HAS IT REACHED THE CMP #183 ;RIGHT LIMIT,IF YES BCS EXPLODE ;THEN EXPLODE BOMB STA $D000 ;ELSE SAVE NEW POS DEC SDELAY1+1 LDA SDELAY1+1 STA $D202 RTS FIREVAR1 LDA #65 STA T16 LDA #$84 STA T1Y LDA #0 STA T15 RTS FIREVAR2 LDA #183 STA T16 LDA #$85 STA T1Y LDA #1 STA T15 RTS ;ADD4011:ADDS THE LENGHT OF A ;PLAYFIELD ROW TO TEMP11 ;AND THEREBY,SETS TEMP11 TO ;POINT TO NEXT ROW ADD4011 LDA TEMP11 ;LOAD POINTER TO CURRENT ROW CLC ADC #40 ;ADD # OF BYTES PER ROW STA TEMP11 LDA TEMP11+1 ADC #0 ;ADD CARRY TO HIGH BYTE STA TEMP11+1 RTS ; ;LINECNT:MOVES POINTER TEMP11 ;TO NEXT ROW OR RESETS TEMP11 ;TO FIRST ROW LINECNT JSR ADD4011 ;JMPSUB TO SET POINTER TO NEXT ROW CMP #ENDSC/256 ;ENDSC IS END OF BNE EXITSC ;PLAYFIELD SCREEN LDA TEMP11 ;IF TEMP11<>ENDSC CMP #ENDSC&$FF ;THEN EXIT BNE EXITSC ORIGIN1 LDA #ORIGIN/256 ;ELSE RESET TEMP11 STA TEMP11+1 ;TO FIRST ROW LDA #ORIGIN&$FF STA TEMP11 EXITSC RTS LINECNT2 JSR ADD4011 ;JMPSUB TO SET POINT TO NEXT ROW CMP #ENDSC2/256 ;ENDSC2 IS END OF PLAYFIELD BNE EXITSC2 ;IF TEMP11<>ENDSC2 LDA TEMP11 ;THEN EXIT CMP #ENDSC2&$FF BNE EXITSC2 ORIGINA LDA #ORIGIN2/256 ;ELSE RESET TEMP11 STA TEMP11+1 ;TO POINT TO 1ST ROW LDA #ORIGIN2&$FF STA TEMP11 EXITSC2 RTS ; ;WARS:USED TO HAVE TROLLS ATTACK ;WIZARDS CASTLE/WIZARD DEFENDERS. ;ALSO MOVES WIZARDS CHAR BOMB WARS LDY #2 ;START POSITION IN A ROW TLOOP LDA (TEMP11),Y ;LOAD PLAYFIELD BYTE CMP #$58 ;CMP TO BOMB CHAR BEQ T58A ;BRANCH TO CHANGE CHAR CMP #$59 ;CMP TO OTHER BOMB CHAR BEQ T59A ;BRANCH T CHANGE CHAR LDX T2 ;LOAD TABLE OFF-SET LDA T1,X ;LOAD DELAY VALUE CMP #1 ;IF VALUE >1 THEN BCS T79 ; DON'T MOVE ATTACKERS JMP TEND ;JMP TO TEST NEXT BYTE OR END LOOP T79 LDA (TEMP11),Y ;ELSE LOAD PLAYFIELD BYTE CMP #7 ;CMP TO TROLL CHAR BEQ T10 ;IF = THEN MOVE TROLL CMP #9 ;CMP TO TROLL CHAR BEQ T12 ;IF = MOVE TROLL JMP TEND ;ELSE JMP TO TEST NEXT BYTE OR END LOOP T10 LDA #9 ;LOAD NEW TROLL CHAR JSR SAVEVAL ;MOVE DRAWING WITHIN SAME BYTE JMP TEND ;NEXT BYTE OR END LOOP T12 CPY #34 ;CMP ROW OFFSET TO POS 1 BYTE BCC TOK ;TO LEFT OF WIZARD CHAR JSR STORZ0 ;IF>= REMOVE TROLL JSR KILL2 ;JMPSUB TO REMOVE WIZARD CHAR JMP TEND TOK INY ;SET BYTE POINTER TO NEW POS INY LDA (TEMP11),Y ;LOAD VALUE IN NEW POS DEY ;RESET POINTER DEY CMP #0 ;IF VALUE NOT 0 BNE TEND ;THEN DON'T DISPLAY NEW TROLL LDA #0 ;ELSE USE 0 TO CLEAR STA (TEMP11),Y ;OLD CHAR INY ;SET NEW POS LDA #7 ;LOAD TROLL DRAWING CHAR JSR SAVEVAL ;JMPSUB TO DISPLAY TROLL JMP TEND T59A LDA #$58 ;LOAD OTHER BOMB CHAR STA TEMP1+8 ;TEMP SAVE JMP T589A T58A LDA #$59 ;LOAD OTHER BOMB CHAR STA TEMP1+8 T589A LDA #0 ;USE 0 TO CLEAR STA (TEMP11),Y ;OLD BOMB CHAR DEY ;CHECK POINTER OF ROW BYTE CPY #5 ;IF<5 THEN EXIT BCC TEND LDA (TEMP11),Y ;ELSE LOAD VALUE IN NEW POS BEQ T98A ;IF = JMP TO DISPLAY BOMB DEY ;ELSE SET NEW POINTER POS JSR STORZ0 ;JMP TO CLEAR BYTES JMP TEND T98A LDA TEMP1+8 ;LDA BOMB CHAR STA (TEMP11),Y ;DISPLAY BOMB TEND INY ;NEXT ROW BYTE CPY #35 ;IF >= 35 THEN ALL BCS WED ;BYTES OF A ROW HAVE BEEN PROCESSED JMP TLOOP ; ;WARS2:USED TO HAVE WIZARDS ATTACK ;TROLLS CASTLE/TROLL DEFENDERS. ;ALSO MOVES TROLL CHAR BOMB WED RTS WARS2 LDY #3 ;STARTING POSITION IN A PLAYFIELD ROW TLOOP2 LDA (TEMP11),Y ;LOAD PLAYFIELD BYTE CMP #$58 ;CMP TO BOMB CHAR BEQ T58 ;IF = CHANGE CHAR CMP #$59 ;CMP TO OTHER BOMB CHAR BEQ T59 ;IF = CHANGE CHAR LDX T2 ;LOAD X WITH OFFSET FOR DELAY TABLE LDA T1,X ;LOAD DELAY VALUE CMP #1 ;IF =1 BCS T2527 ;THEN MOVE ATTACKING WIZARD CHARS JMP TEND2 ;ELSE TEST TO SEE IF DONE T2527 LDA (TEMP11),Y ;LOAD PLAYFIELD BYTE CMP #25 ;CMP TO WIZARD CHAR BEQ T25 ;IF = MOVE WIZARD WITHIN BYTE CMP #27 ;CMP TO WIZARD CHAR BEQ T27 ;IF = MOVE WIZARD TO NEW POS JMP TEND2 ;TEST TO SEE IF DONE T25 LDA #27 ;LOAD NEW WIZARD CHAR JSR SAVEVAL ;JMPSUB TO DISPLAY WIZARD JMP TEND2 ;TEST TO SEE IF DONE T27 CPY #5 ;CMP ROW POS TO 5TH BYTE BCS WOK ;IF> THEN WIZ POS IS OK JSR STORZ0 ;ELSE REMOVE WIZARD CHAR JSR KILL ;JMPSUB TO REMOVE TROLL CHAR JMP TEND2 ;TEST TO SEE IF DONE WOK DEY ;SET NEW ROW POS LDA (TEMP11),Y ;LOAD PLAYFIELD BYTE INY ;RESET ROW POS CMP #0 ;TEST TO SEE IF PLAYFIELD BYTE IS CLEAR BNE TEND2 ;IF NOT THEN DON'T MOVE WIZARD DEY ;ELSE SET NEW POS LDA #25 ;LOAD NEW WIZARD CHAR JSR SAVEVAL ;DISPLAY WIZARD INY SET POINTER TO OLD CHAR LDA #0 ;USE 0 TO CLEAR OLD STA (TEMP11),Y ;PLAYFIELD BYTE JMP TEND2 ;TEST TO SEE IF DONE T59 LDA #$58 ;LOAD NEW BOMB CHAR STA TEMP1+8 JMP T589 T58 LDA #$59 ;LOAD NEW BOMB CHAR STA TEMP1+8 T589 LDA #0 ;USE 0 TO CLEAR OLD STA (TEMP11),Y ;BOMB CHAR INY ;SET NEW BOMB POS IN ROW CPY #36 ;CMP TO RIGHT LIMIT OF ROW BEQ TEND2 ;IF = DON'T DISPLAY BOMB LDA (TEMP11),Y ;ELSE LOAD PLAYFIELD BYTE BEQ T98 ;IF DISPLAY BOMB IN NEW POS JSR STORZ0 ;ELSE REMOVE WIZARD CHARS JMP TEND2 T98 LDA TEMP1+8 ;LOAD POINTER TO BOMB STA (TEMP11),Y ;SAVE BOMB CHAR IN PLAYFIELD TEND2 INY ;NEXT BYTE IN ROW CPY #37 ;IF = TO 37 THEN ALL BYTES PER BEQ TED ;ROW HAVE BEEN PROCESSED JMP TLOOP2 TED RTS ; ;KILL:CALCULATES # OF WIZARDS ;THAT HAVE REACHED TROLL DEFENDERS ;ALSO REPLACES TROLL IF WIZARD IF NECESSARY KILL LDX T2 ;LOAD TABLE OFFSET DEC ROWT,X ;SUB 1 FROM TABLE VLUE LDA ROWT,X BNE EXITKILL ;IF<> THEN EXIT DEY ;ELSE SET Y TO POS OF CHAR DEY ;THAT IS TO BE REMOVED LDA (TEMP11),Y ;LOAD PLAYFIELD BYTE CMP #$72 ;CMP TO TROLL CHAR BEQ KILL1 ;IF = THEN REMOVE TROLL CHAR DEY ;ELSE TEST OTHER BYTE LDA (TEMP11),Y ;LOAD PLAYFIELD BYTE INY ;SET Y TO NEW POS CMP #$72 ;CMP PLAYFIELD BYTE TO TROLL CHAR BEQ KILL1 ;IF = THEN REMOVE TROLL CHAR RTS KILL1 DEY ;SET ROW POS LDA #23 ;LOAD WIZARD CHAR JSR SAVEVAL ;DISPLAY WIZARD DEY ;RESET Y DEC TOTALT ;SUB 1 FROM TOTAL # OF TROLL DEFENDERS LDA TOTALT BNE EXITKILL ;IF <> THEN EXIT STA TKING ;ELSE SET FLAG TO DISPLAY KING EXITKILL RTS ; ;KILL2:CALCULATES # OF TROLLS THAT ;HAVE REACHED WIZARD DEFENDERS ;AND REMOVES WIZARD IF NECESSARY KILL2 LDX T2 ;LOAD TABLE OFFSET DEC ROWW,X ;SUB 1 FROM TABLE VALUE LDA ROWW,X BNE EXITKIL2 ;IF VALUE <> THEN EXIT INY ;ELSE SET POINTER TO NEXT PLAYFIELD BYTE LDA (TEMP11),Y ;LOAD PLAYFIELD BYTE CMP #$F3 ;CMP TO WIZARD CHAR BEQ KILL12 ;IF = BRANCH TO REMOVE CHAR INY ;SET Y NEW NEXT PLAYFIELD BYTE LDA (TEMP11),Y ;LOAD PLAYFIELD BYTE DEY ;RESET Y CMP #$F3 ;CMP TO WIZARD CHAR BEQ KILL12 ;IF = BRANCH TO REMOVE CHAR RTS KILL12 LDA #1 ;LOAD TROLL CHAR JSR SAVEVAL ;DISPLAY NEW DRAWING DEC TOTALW ;SUB 1 FROM # OF WIZARD DEFENDERS LDA TOTALW BNE EXITKIL2 ;IF<> THEN EXIT STA WKING ;ELSE SET FLAG TO DISPLAY WIZ KING EXITKIL2 RTS ; ;SAVEVAL:TAKES CHAR AND SAVES ;ON PLAYFIELD.THEN ADDS 1 TO ;POINTER AND SAVE OTHER HALF OF CHAR SAVEVAL STA (TEMP11),Y ;SAVE NEW CHAR IN PLAYFIELD BYTE INY ;NEXT BYTE IN PLAYFIELD ROW TAX ;TRANSFER CHAR INX ;SET TO NEXT CHAR TXA STA (TEMP11),Y ;SAVE NEW CHAR IN PLAYFIELD BYTE RTS ; ;STORZ0:USED TO CLEAR ;TWO BYTES OF PLAYFIELD ; STORZ0 LDA #0 STA (TEMP11),Y ;SAVE 0 IN PLAYFIELD BYTE INY ;NEXT BYTE IN PLAYFIELD ROW STA (TEMP11),Y ;SAVE 0 IN PLAYFIELD BYTE RTS ;FINDCHAR:THIS SUBROUTINE TAKES THE ;PLAYER(GUN) AND CALCULATES WHAT ;ROW THE PLAYER IS ON ; FINDCHAR SEC ;SUBTRACT OFF AREA WHERE SBC #$20 ;PLAYER IS NOT ON SCREEN LSR A ;DIVIDE BY CHAR LENGTH LSR A LSR A TAX LDA DLIST+5 ;LOAD ADDRESS STA TEMPCH ;OF SCREEN LDA DLIST+6 STA TEMPCH+1 ROW DEX ;CALCULATE ROW OFF-SET BMI EXITCH ;IF>0 THEN CLC ;ADD 40(#OF BYTES PER ROW) LDA TEMPCH ;TO CALCULATE ROW OF ADC #40 ;SCREEN THAT PLAYER STA TEMPCH ;IS ON LDA TEMPCH+1 ADC #0 STA TEMPCH+1 JMP ROW EXITCH RTS ; ;MISSILE1:ALLOWS PLAYER(GUN) ;TO FIRE CHARACTER BOMB ; MISSILE1 LDA SDELAY1 BEQ OFF1 LDA #173 STA $D200 DEC SDELAY1 JMP MF1 OFF1 LDA #0 STA $D200 MF1 LDA (TEMPT),Y ;LOAD TRIGGER VALUE BEQ FIREM ;IF= THEN OK TO FIRE BOMB RTS FIREM INC TEMP1+6 ;ADD 1 TO DELAY LDA TEMP1+6 ;COUNT BEFORE BOMB CAN BE FIRED CMP #11 ;(DELAY VALUE) BCC NOMIS LDA #0 STA TEMP1+6 ;RESET DELAY LDA TOP1,X ;VERT START POS OF GUN CLC ADC #4 ;CALCULATE MIDDLE OF GUN JSR FINDCHAR ;FIND ROW OF SCREEN PLAYER IS ON LDY TEMP1 ;OFFSET WHERE BOMB WILL APPEAR LDA (TEMPCH),Y ;CHECK BYTE WHERE BOMB WILL APPEAR BNE NOMIS ;IF = THEN LDA #$58 ;LOAD BOMB CHAR STA (TEMPCH),Y ;DISPLAY BOMB LDA #5 STA SDELAY1 NOMIS RTS ;JS15M:DISLAYS FRONT VIEW OF TROLL ;WHEN JOYSTICK0 IS IN POSITION 15 ; JS15M LDA TROLWIZ BNE JS15T LDA #0 ;TURN OFF WIZARD SOUND STA $D203 RTS JS15T LDY END1+3 ;VERT END POS OF TROLL LDX #7 ;#OF BYTES TO MOVE M1 LDA MAN,X ;LOAD DRAWING OF TROLL STA PL3R,Y ;SAVE IN PLAYER 3 LDA MAN2,X STA PL2R,Y ;SAVE IN PLAYER 2 LDA MAN1,X STA PL1R,Y ;SAVE IN PLAYER 1 DEY ;NEXT VERT POS DEX ;NEXT DRAWING BYTE BPL M1 LDA #0 ;TURN OFF TROLL SOUND STA $D201 RTS MANPOS LDA #76 ;VERT END POS OF TROLL STA END1+3 LDA #69 ;VERT START POS OF TROLL STA TOP1+3 LDA #0 ;SET PLAYER WIDTH STA $D009 STA $D00A STA $D00B LDA #200 ;COLOR GREEN STA $02C1 ;COLPM1 LDA #28 ;COLOR GOLD STA $02C2 ;COLPM2 LDA #228 ;COLOR ORANGE-GREEN STA $02C3 ;COLPM3 LDA #57 ;HORIZ POS POST STA P1 ;SAVE IN POINTER STA $D001 ;SAVE IN HPOSP1 STA $D002 ;" HPOSP2 STA $D003 ;"HPOSP3 RTS ; ;CHANGMAN:USE TO CHANGE THE ;DRAWING OF THE TROLL ; CHANGMAN LDA #217 STA SDELAY1 LDA #$44 STA $D201 INC END1+3 ;VERT END USEAS FLAG TO MOVE TROLL LDA MANNUM ;LOAD POINTER TO TROLL DRAWING CLC ADC #8 ;MOVE POINTER TO NEXT DRAWING CMP #16 ;IF = 16 THEN BNE M2 ;RESET POINTER TO LDA #0 ;FIRST TROLL DRAWING M2 STA MANNUM ;LOAD POINTER CLC ADC LRDRAW ;ADD OFF SET FOR LEFT OR RIGHT DIRECTION TAY LDX TOP1+3 ;VERT START POS OF TROLL M3 LDA MAN01,Y ;LOAD DRAWING BYTE STA PL3R,X ;SAVE IN PLAYER MEMORY LDA MAN11,Y STA PL1R,X LDA MAN21,Y STA PL2R,X INY ;NEXT DRAWING BYTE INX ;NEXT PLAYER DESTINATION BYTE CPX END1+3 ;DRAWING CHANGED BNE M3 DEC END1+3 ;RESTORE VERT END POS LDA SDELAY1 STA $D200 RTS ; ;MOVMAN:USES VALUE OF JOYSTICK ;TO MOVE TROLL OR WIZARD ; MOVMAN INC DA1,X ;ADD 1 TO LDA DA1,X ;COUNTER THAT MUST CMP #5 ;BE =5 BEFORE BEQ JST ;MAN CAN MOVE RTS JST LDA #0 ;RESET DELAY COUNTER STA DA1,X LDY #0 LDA (JSTCKV),Y ;LOAD JOYSTICK VALUE ;AND DETERMINE WHICH DIRECTION ;TO MAN THE TROLL CMP #15 BNE M7 JMP JS15M ;JMP SUB TO DISPLAY FRONT VIEW M7 LDA TROLWIZ BNE M7T LDA #$88 STA $D203 LDA #255 STA $D202 M7T LDA (JSTCKV),Y CMP #7 BNE M11 JMP JS7 ;MOVE MAN RIGHT M11 CMP #11 BNE M13 JMP JS11 ;MOVE MAN LEFT M13 CMP #13 BNE M14 JMP JS13 ;MOVE MAN DOWN M14 CMP #14 BNE M5 JMP JS14 ;MOVE MAN UP M5 CMP #5 BNE M9 JSR JS13A ;MOVE MAN DIAGONAL JMP JS7 ;RIGHT/DOWN M9 CMP #9 BNE M6 JSR JS13A ;MOVE MAN DIAGONAL JMP JS11 ;LEFT/DOWN M6 CMP #6 BNE M10 JSR JS14A ;MOVE MAN DIAGONAL JMP JS7 ;RIGHT/UP M10 CMP #10 BNE NOSIGNAL JSR JS14A ;MOVE MAN DIAGONAL JMP JS11 ;LEFT/DOWN NOSIGNAL RTS JS7 LDA TROLWIZ BNE JS7T ;IF <> MOVE TROLL JMP JS7W ;ELSE MOVE WIZARD JS7T LDA #48 ;POINTER TO FIRST RIGHT STA LRDRAW ;DRAWING OF TROLL JSR CHANGMAN ;JMPSUB TO CHANGE DRAWING LDA P1 ;HORIZ POS CMP #197 ;IS IT AT RIGHT LIMIT BCS NOSIGNAL ;IF YES ,THEN EXIT INC P1 ;ELSE ADD 1 TO POS LDA P1 JMP POST ;SAVE NEW POS JS11 LDA TROLWIZ BNE JS11T ;MOVE TROLL JMP JS11W ;MOVE WIZARD JS11T LDA #0 ;POINTER TO FIRST STA LRDRAW ;LEFT DRAWING OF TROLL JSR CHANGMAN ;JMPSUB TO CHANGE DRAWING LDA P1 ;HORIZ POS CMP #53 ;IS IT AT LEFT LIMIT BCC NOSIGNAL ;IF YES,THEN EXIT DEC P1 ;SUB 1 TO FIND NEW POS LDA P1 JMP POST ;SAVE NEW POS JS13 LDA TROLWIZ BNE JS13T ;IF <> MOVE TROLL JMP JS13W ;ELSE MOVE WIZ JS13T JSR CHANGMAN ;JMP TO CHANGE DRAWING JS13A LDA TROLWIZ BNE JS13AT JMP JS13W JS13AT LDA END1+3 ;VERT END POS OF CMP #207 ;IS IT AT LOWER LIMIT BCS EX13 ;IF YES THEN EXIT INC END1+3 ;ELSE SET NEW POS LDX END1+3 LDY #16 ;# OF BYTES TO MOVE DOWN LDA PL3R-1,X ;VALUE IN OLD POS STA PL3R,X ;SAVE IN NEW POS LDA PL1R-1,X STA PL1R,X LDA PL2R-1,X STA PL2R,X DEX ;NEXT BYTE TO MOVE DEY ;ALL BYTES MOVED? BNE DOWN INC TOP1+3 ;SET NEW VERT TOP POS EX13 RTS JS14 LDA TROLWIZ BNE JS14T ;MOVE TROLL JMP JS14W ;MOVE WIZ JS14T JSR CHANGMAN ;JMP TO CHANGE TROLL DRAWING JS14A LDA TROLWIZ BNE JS14AT ;MOVE TROLL JMP JS14W ;MOVE WIZ JS14AT LDA TOP1+3 ;VERT START POS OF TROLL CMP #33 ;IS IT AT UPPER LIMIT BCC EX14 ;IF YES THEN EXIT DEC END1+3 ;ELSE SET NEW POS DEC TOP1+3 LDX TOP1+3 LDY #16 ;#OF BYTES TO MOVE UP LDA PL3R+1,X ;VALUE TO BE MOVED STA PL3R,X ;SAVE IN NEW POS LDA PL1R+1,X STA PL1R,X LDA PL2R+1,X STA PL2R,X INX ;NEXT BYTE TO MOVE DEY ;ALL BYTES MOVED BNE UP EX14 RTS ;SET2:INITIALIZES PLAYERS AND ;VARIABLES. CALLED BEFORE CASTLE ;STORIMG SUBROUTINES SET2 JSR ZEROPLRS ;JMPSUB TO CLEAR PLAYER/MISSILE MEMORY JSR JS15G ;JMPSUB TO DISPLAY GUN LDA #0 STA TIMER1 ;CLEAR TIMER STA TIMER1+1 STA $D00B ;SET PLAYER WIDTH STA $D00A STA $D009 STA $D008 STA $D00C LDA #17 ;SET PLAYER PRIORITY STA $026F RTS ; ;SETPOINT:LOAD TABLE OFFSET AND ;MOVES POINTER TO NEXT TABLE VALUE ; SETPOINT LDX T2 ;LOAD TABLE OFFSET INC T1,X ;ADD 1 TO TABLE VALUE LDA T1,X CMP #2 ;IF < 2 BCC ST0 ;THEN SET POINTER TO NEXT TABLE POS LDA #0 ;ELSE RESET TABLE VALUE STA T1,X ST0 INC T2 ;NEXT TABLE POS LDA T2 CMP #16 ;TABLE LENGHT IS POS 0 THRU 15 BCC ST2 LDA #0 ;RESET TO START OF TABLE STA T2 ST2 RTS ; ;TWAR:SUBROUTINE USED TO HAVE ;TROLLS STORM WIZARDS CASTLE ; TWAR JSR SET2 JSR ORIGINA ;JMP TO INITIALIZE TEMP11 TO PLAYFIELD START LDA #CASTR/256 ;LOAD SCREEN STA DLIST+6 ;OF WIZARDS CASTLE LDA #CASTR&$FF ;BEING ATACKED STA DLIST+5 JSR STT LDA #0 STA WIZRDS ;REMOVE TROLL CHARS THAT STA WIZRDS+1 ;ARE IN FRONT OF WIZ CASTLE STA T2 ; DEC TEMP1+18 ;DECREASE # OF TROLLS TW1 LDA WKING ;LOAD # OF DEFENDING WIZARDS THAT ARE LEFT BEQ ENDWART ;IF= THEN CASTLE OVER RUN LDA #7 ;CHAR 7&8 FORM TROLL STA T5 ;THAT APPEARS AND LDA #8 ;ATTACKS WIZARDS CASTLE STA T5+1 LDY #3 ;ROW NYTE WHERE TROLLS APPEAR JSR DISPTM ;JMPSUB TO DISPLAY TROLL JSR WARS ;JMPSUB TO MOVE TROLLS AND BOMBS JSR SETPOINT JSR LINECNT2 ;SET POINTER TO NEXT PLAYFIELD LINE JSR ADD1 ;ADD 1 TO TIMER FOR HOW LONG CASTLE STORMING LASTS LDA TIMER1+1 CMP #200 ;IF TIMER = 200 THAT STORMING IS OVER BCC TW1 ;ELSE REPEAT ATTACKING JSR JOYST0 ;RESET FOR JOYSTICK 0 JSR TEN12 ;SET POSITION FOR POINTER EWAR JSR PLACE ;SAVE POINTER CHAR LDA #BOARD/256 ;DISPLAY MAIN STA DLIST+6 ;PLAYFIELD SCREEN LDA #BOARD&$FF STA DLIST+5 JSR COLORPL ;SET PLAYER COLOR JSR ZEROPLRS ;CLEAR PLAYER/MISSILE MEMORY JSR PLAYERS ;JMPSUB TO BUILD "CHECKER" BOARD JSR DELAY RTS ENDWART LDA #$EF ;LEFT HALF OF WIZARD KING STA WIZRDS ;2ND BYTE IN FRONT OF CASTLE LDA #$F0 ;RIGHT HALF OF WIZARD KING STA WIZRDS+1 ;BYTE IN FRONT OF CASTLE JSR TEN12 ; JMP EWAR ;JMPSUB TO END FIGHT ; ;WWAR:USE TO HAVE WIZARDS STORM ;TROLLS CASTLE ; WWAR JSR SET2 JSR ORIGIN1 ;JMPSUB TO INITIALIZE TEMP11 TO PLAYFIELD START LDA #CASTL/256 ;LOAD ADDRESS OF STA DLIST+6 ;START OF PLAYFIELD LDA #CASTL&$FF ;INTO DISPLAY LIST STA DLIST+5 JSR STT ;JMPSUB TO INITIALIZE DELAY TABLES LDA #0 STA TROL0 ;CLEAR BYTES IN FRONT STA TROL0+1 ;OF TROLL CASTLE STA T2 ;CLEAR TABLE POINTER DEC TEMP1+19 ;DECREASE # OF WIZARDS ON MAIN PLAYFIELD WW1 LDA TKING ;TEST FLAG THAT IS = IF 12 TROLLS BEQ ENDWARW ;HAVE BEEN CAPTURED LDA #27 ;RIGHT HALF OF WIZARD DRAWING STA T5 LDA #28 ;LEFT HALF OF WIZARD DRAWING STA T5+1 LDY #35 ;SET Y TO POS WHERE WIZARDS WILL APPEAR IN A ROW JSR DISPTM ;JMPSUB TO DISPLAY WIZARD JSR WARS2 ;JMP TO MOVE WIZARDS/BOMBS JSR SETPOINT ;JMPSUB TO TEST TABLE VALUE JSR LINECNT ;JMP TO SET TEMP11 TO NEXT PLAYFIELD ROW JSR ADD1 ;ADD 1 TO TIMER'S COUNT LDA TIMER1+1 ;LOAD TIMER CMP #200 ;IF TIMER =200 BCC WW1 ;THEN CASTLE STORMING IS OVER JSR JOYST1 ;ENABLE JOYSTICK 1 JSR TEN122 ;SET CHAR POINTER ON MAIN PLAYFIELD JMP EWAR ;JMP TO END WAR ENDWARW LDA #$6D ;CHAR OF TROLL KING STA TROL0 ;SAVE IN FRONT OF CASTLE LDA #$6E ;OTHER HALF OF TROLL KING STA TROL0+1 ;SAVE IN FRONT OF CASTLE JSR TEN122 ;SET CHAR POINTER ON MAIN PLAYFIELD JMP EWAR ;JMP TO END WAR ; ;ADD1: ADDS 1 TO TIMER ; ADD1 LDA TIMER1 ;LOW BYTE OF TIMER CLC ADC #1 STA TIMER1 LDA TIMER1+1 ;HIGH BYTE OF TIMER ADC #0 STA TIMER1+1 RTS ; ;SUBWAR2:USE TO DETERMINE ;THE CHARACTER THAT THE ;TROLL IS MOVING INTO ; SUBWAR2 LDA (REM2),Y ;LOAD CHAR THAT TROLL IS COLLIDING WITH CMP #$39 ;CHAR $39 IS ENTRANCE TO WIZ CASTLE BNE SB2A JSR TWAR ;JMPSUB TO STORM CASTLE JSR JOYST0 ;ENABLE JOYSTICK 0 LDA #1 ;SET FLAG FOR WAR OVER STA WARFL RTS SB2A CMP #23 ;CHAR 23 IS 1ST WIZARD CHAR BCC SB3A CMP #45 ;CHAR 45 IS LAST WIZARD CHAR BCS SB3A JSR FIGHT ;JMPSUB TO HAVE TROLL/WIZARD FIGHT JSR JOYST0 ;ENABLE JOYSTICK0 JSR TEN12 ;LOAD CHAR POINTER INTO TEMP STORAGE JSR PLACE ;DISPLAY POINTER ON MAIN SCREEN LDA #24 ;CHAR 24 IS LEFT HALF OF WIZARD DRAWING STA T6 ;TEMPORARY SAVE. ;TEMP13 IS THE FLAG THAT HOLDS ;THE VALUE 1 IF WIZARD WAS HIT ;BY A MISSILE AND VALUE 0 IF ;TROLL WAS HIT.VALUE IN TEMP13 ;IS CHANGED IN ORDER TO USE THE ;GENERALIZED CODE SUBWAR3. LDA TEMP13 ;LOAD FLAG FOR TROLL OR WIZARD KILLED BNE STORE0 ;SWITCH VALUE LDA #1 STA TEMP13 JMP SUBWAR3 ;JMP TO REMOVE LOOSER STORE0 LDA #0 STA TEMP13 JMP SUBWAR3 ;JMP TO REMOVE LOOSER ENDSUB RTS SB3A CMP #$EF ;CHAR $EF IS WIZARD KING BNE ENDSUB ;IF <> THEN EXIT LDX #2 ;ELSE LOAD X WITH CHAR THAT IS RIGHT HALF OF TROLL JMP ENDTWAR ;JMP TO END GAME ; ;SUBWAR1:USE TO DETERMINE THE ;CHARACTER THAT THE WIZARD ;IS MOVING INTO ; SUBWAR1 LDA (REM2),Y ;LOAD PLAYFIELD BYTE CMP #$43 ;CHAR $43 IS ENTRANCE TO TROLL CASTLE BNE SB1A JSR WWAR ;JMPSUB TO STORM CASTLE JSR JOYST1 ;ENABLE JOYSTICK 1 LDA #1 ;SET FLAG FOR WAR OVER STA WARFL RTS SB1A CMP #23 ;CHAR >23 IS TROLL CHARS BCS SB4A JSR FIGHT ;JMPSUB TO HAVE TROLL/WIZARD FIGHT JSR JOYST1 ;ENABLE JOYSTICK 1 JSR TEN122 ;LOAD CHAR POINTER JSR PLACE ;DISPLAY CHAR POINTER LDA #2 ;CHAR 2 IS RIGHT HALF OF TROLL STA T6 ;TEMPORARY SAVE SUBWAR3 LDY #0 ;CLEAR Y LDA TEMP13 ;LOAD FLAG TO DETERMINE WHO HAS BEEN KILLED BNE KILLWZR2 LDA (REM2),Y ;LOAD PLAYFIELD BYTE OF MAIN SCREEN CMP T6 ;CMP TO RIGHT HALF OF MAN BNE KT1 ;IF <> THE REMOVE CHAR SEC ;ELSE SUBTRACT 1 FROM LDA REM2 ;ADDRESS OF PLAYFIELD BYTE SBC #1 STA REM2 LDA REM2+1 SBC #0 STA REM2+1 LDA (REM2),Y ;TEST TO SEE IF BNE KT1 ;HAS A CHAR IN IT.IF IT DOES NOT INY ;THEN ADD 1 TO ADDRESS OF PLAYFIELD BYTE KT1 LDA #0 ;USE CHAR 0 TO CLEAR PLAYFIELD BYTE STA (REM2),Y INY STA (REM2),Y RTS KILLWZR2 LDA #0 ;USE CHAR 0 TO CLEAR STA (REM1),Y ;PLAYFIELD BYTE INY ;NEXT PLAYFIELD BYTE STA (REM1),Y ;CLEAR BYTE ENDSUB2 RTS SB4A CMP #$6E ;CHAR $6E IS TROLL KING BNE ENDSUB2 ;IF <> THEN EXIT ELSE END GAME LDX #24 ;CHAR 24 IS RIGHT HALF OF WIZARD ENDTWAR STX T5+1 ;TEMP SAVE DEX ;SET X TO BE CHAR THAT IS LEFT HALF OF MAN STX T5 ;TEMP SAVE TXA LDX #0 ;SET X TO START OF PLAYFIELD AREA ENDLOOP2 STA BOARD,X ;SAVE CHAR IN PLAYFIELD STA BOARD+240,X STA BOARD+480,X STA BOARD+720,X CMP T5 ;TEST ACCUMULATOR BEQ LD24 ;CHANGE AS NECESSARY LDA T5 ;IN ORDER TO DISPLAY JMP NEXTS2 ;FRONT VIEW OF MAN LD24 LDA T5+1 NEXTS2 INX CPX #240 ;IF X = 240 THEN BNE ENDLOOP2 ;SCREEN IS FILLED WITH MAN CHAR JSR ZEROPLRS ;CLEAR PLAYER/MISSILE MEMORY ENDLESS2 JMP ENDLESS2 ;GAME OVER ; ;FIGHT:SUBROUTINE TO HAVE TROLL ;COMBAT WITH WIZARD ; FIGHT LDA #1 ; STA $D01E ;SET HIT CLEAR STA FSQ1 ;SET FLAG TO ENABLE MISSILE TO BE FIRED STA FSQ2 JSR ZEROPLRS ;CLEAR PLAYER/MISSILE MEMORY JSR WIZPOS ;INITIALIZE WIZARD VARIABLES JSR MANPOS ;INITIALIZE TROLL VARIABLES STA TROLWIZ ;SET FLAG TO ALLOW TROLL SUBROUTINES TO BE CALLED JSR JS15M ;DISPLAY TROLL JSR JS15W ;DISPLAY WIZARD LDA #DLIST2/256 ;LOAD DISPLAY LIST STA 561 ;THAT IS USED LDA #DLIST2&$FF ;WHEN TROLL FIGHTS WIZARD STA 560 LDA #5 STA TEMP1+15 LDA #1 STA DIRFLAG ;FLAG FOR DIRECTION OF TROLL'S MISSILE STA DIRFLAG+1 ;FLAG FOR DIRECTION OF WIZARDS MISSILE STA SQFLAG ;FLAG FOR TROLLS MISSILE FIRED STA SQFLAG+1 ;FLAG FOR WIZARDS MISSILE FIRED STA DIRECT STA WARFL ;SET FLAG FOR FIGHT HAS STARTED LDA #0 STA TEMP1+10 ;CLEAR END OF FIGHT FLAG STA TEMP13 ;CLEAR FLAG FOR TROLL OR WIZARD KILLED LDA #2 STA DA1+3 ;SET DELAY VALUE LDA REM1 STA TEMP10 ;SAVE POS OF LDA REM1+1 ;MAN THAT IS ATTACKING STA TEMP10+1 JSR STICK15 ;DISPLAY FRONT VIEW OF MAN THAT IS ATTACKING LDA #$02 STA JSTCKV+1 ;SET HIGH BYTE FOR JOYSTICK F1 LDX #2 ;OFFSET FOR TROLL VARIABLE STX TROLWIZ ;SET FLAG FOR TROLL TURN LDA #$78 STA JSTCKV ;ENABLE JOYSTICK 0 JSR MOVMAN ;MOVE TROLL LDX #4 ;OFFSET FOR WIZARD VARIABLE LDA #0 STA TROLWIZ ;SET FLAG FOR WIZARD TURN INC JSTCKV ;ENABLE JOYSTICK 1 JSR MOVMAN ;MOVE WIZARD JSR DELAY LDA TEMP1+10 ;IF TEMP1+10 IS = THEN BEQ F1 ;FIGHT NOT OVER.BRANCH TO CONTINUE FIGHT LDA #255 STA DA1+3 ;SET DELAY VALUE JSR DELAY ;JMPSUB TO DELAY JSR DELAY ;THE CHANGE FROM JSR DELAY ;THE FIGHT SCREEN JSR DELAY ;TO THE MAIN SCREEN JSR INIT1 ;JMPSUB TO INITIALIZE VARIABLES JSR ZEROPLRS ;JMPSUB TO CLEAR PLAYER/MISSILE MEMORY JSR PLAYERS ;JMPSUB TO BUILD "CHECKER" BOARD RTS ; ;DISPTM:USE TO DISPLAY ATTACKING ;MEN.DISPLAYS MEN RANDOMLY ON ;EACH PLAYFIELD ROW ; DISPTM LDX T2 ;LOAD TABLE OFFSET OO5 LDA TABLE3,X ;HIGH BYTE OF DELAY BNE OO6 LDA TABLE2,X ;LOW BYTE OF DELAY BEQ OO7 OO6 SEC LDA TABLE2,X ;SUBTRACT 1 FROM SBC #1 ;DELAY TABLE STA TABLE2,X LDA TABLE3,X SBC #0 STA TABLE3,X RTS ;EXIT OO7 LDA (TEMP11),Y ;LOAD PLAYFIELD BYTE BNE OO4 ;IF <> THEN EXIT LDA TABLE7,X ;DELAY VALUE STA TABLE2,X ;SAVE IN LOW BYTE LDA TABLE5,X ;DELAY VALUE STA TABLE3,X ;SAVE IN HIGH BYTE LDA (TEMP11),Y ;LOAD PLAYFIELD BYTE BNE OO4 ;IF <> THEN EXIT LDA T5+1 ;LOAD CHAR DRAWING OF ATTACKER STA (TEMP11),Y ;SAVE IN PLAYFIELD DEY ;NEXT PLAYFIELD BYTE LDA T5 ;LOAD CHAR DRAWING OF ATTACKER STA (TEMP11),Y ;SAVE IN PLAYFIELD BYTE OO4 RTS ; ;STT:SUBROUTINE TO LOAD DELAY ;VALUES INTO DELAY TABLE. ;THE TABLE IS USE TO DETERMINE ;HOW LONG BEFORE ATTACKER ;APPEARS ON A ROW ; STT LDX #15 ;(LENGTH-1) OF TABLE STT2 LDA TABLE7,X ;LOAD DELAY VALUE STA TABLE2,X ;SAVE IN LOW BYTE OF DELAY LDA TABLE5,X ;LOAD DELAY VALUE STA TABLE3,X ;SAVE IN HIGH BYTE LDA #0 ;SET DELAY VALUE STA T1,X ;SAVE IN TABLE THAT MUST = 1 BEFORE ATTACKER MOVES DEX ;NEXT TABLE POS BPL STT2 RTS ; ; PREWAR1 JSR SAVETEMP ;JMPSUB TO SAVE CURRENT POS BEING ATTACKED JSR SUB401 ;RESET POINTER RTS PREWAR2 JSR SAVETEMP ;JMPSUB TO SAVE CURRENT POS BEING ATTACKED JSR ADD401 ;RESET POINTER RTS SAVETEMP LDA TEMP10 ;LOW BYTE STA REM2 ;TEMPORARY SAVE LDA TEMP10+1 ;HIGH BYTE STA REM2+1 RTS ;SUBROUTINE PLACEMAN:THIS SUBROUTINE ;ADDS ANOTHER MAN TO CURRENT ARMY ;BUT ONLY IF # OF MEN IS < 10. ; THE NEW MAN IS PLACED IN FRONT ;OF A CASTLE. ; PLACEMAN LDA TEMPCHAR ;LOAD POINTER TO MAN DRAWING CMP #1 ;IS MAN A TROLL BEQ LOADT ;IF YES THEN TEST TO ADD TROLL CMP #$17 ;IS MAN A WIZARD BEQ LOADW ;IF YES TEST TO ADD WIZ RTS ; ; LOADT:ADDS ANOTHER TROLL IF ;THE CHARACTER POINTER IS ON THE ;THE LETTER "T". ; LOADT LDA TEMP1+1 ;IS CHAR POINTER CMP #$5A ;ON THE LETTER "T" BNE LTEXIT ;IF NOT THEN EXIT LDA TROL0+1 ;IS SPACE IN FRONT BNE LTEXIT ;OF TROLL CASTLE EMPTY LDA TEMP1+18 ;COUNTER OF # OF TROLLS ON BOARD CMP #10 ;IF 10 TROLLS THEN EXIT BEQ LTEXIT INC TEMP1+18 ;ELSE ADD 1 TO # OF TROLLS LDA #1 ;LEFT HALF OF TROLL DRAWING STA TROL0 ;POS IN FRONT OF CASTLE LDA #2 ;RIGHT HALF OF TROLL STA TROL0+1 LTEXIT RTS ; ;LOADW:ADDS ANOTHER WIZARD IF ;THE CHARACTER POINTER IS ON ;THE LETTER "W". ; LOADW LDA TEMP1+1 ;IS CHAR POINTER CMP #$5C ;ON LETTER "W" BNE WTEXIT ;IF NOT THEN EXIT LDA WIZRDS ;IS SPACE IN FRONT BNE WTEXIT ;OF WIZ CASTLE EMPTY LDA TEMP1+19 ;IF # OF WIZ CMP #10 ;ON BOARD =10 THEN BEQ WTEXIT ;EXIT INC TEMP1+19 ;ELSE ADD 1 TO # OF WIZARDS LDA #$17 ;LEFT HALF OF WIZARD DRAWING STA WIZRDS ;POS IN FRONT OF CASTLE LDA #$18 ;RIGHT HALF OF WIZARD STA WIZRDS+1 WTEXIT RTS ;SUBROUTINE FIRETQ:USE TO ALLOW ;THE TROLL FIRE A MISSILE. ;IF TRIGGER 0 IS PRESSED ;AND MISSILE IS NOT FIRED YET, ;THEN MISSILE IS FIRED IN THE ;DIRECTION EQUAL TO JOYSTICK ;0 POSITION ; FIRETQ LDA SQFLAG+1 ;TEST FLAG FOR MISSILED FIRED CMP #1 ;IF = 1 THEN OK TO FIRE MISSILE BEQ TQ0 RTS TQ0 LDA $0284 ;LOAD TRIGGER BEQ TQ1 RTS TQ1 LDA $0278 ;LOAD JOYSTICK VALUE ;DETERMINE DIRECTION THAT MISSILE IS TO MOVE CMP #7 BEQ PLACETQ CMP #11 BEQ PLACETQ CMP #13 BEQ PLACETQ CMP #14 BEQ PLACETQ RTS PLACETQ STA DIRFLAG+1 ;SAVE DIRECTION MISSILE IS TO MOVE STA SQFLAG+1 ;SET FLAG THAT MISSILE IS FIRED LDY P1 ;LOAD HORIZ POS OF MAN STY MISP1+1 ;SAVE AS HORIZ STY $D007 ;POS OF MISSILE CLC LDA TOP1+3 ;TOP OF MAN ADC #4 ;FIND MIDDLE OF MAN STA MIS2+1 ;SAVE AS MISSILE VERT POS TAX LDA MIS,X ORA #192 ;MISSILE DRAWING STA MIS,X ;DISPLAY MISSILE RTS ;FIRESQ:ALLOWS WIZARD/JOYSTICK1 ;TO FIRE A MISSILE ; FIRESQ LDA SQFLAG ;LOAD FLAG FOR MISSILE FIRED CMP #1 ;IF=1 THEN OK TO FIRE BEQ SQ0 RTS SQ0 LDA $0285 ;LOAD TRIGGER BEQ SQ1 RTS SQ1 LDA $0279 ;LOAD JOYSTICK VALUE ;DETERMINE DIRECTION THAT MISSILE IS TO MOVE CMP #7 BEQ PLACESQ CMP #11 BEQ PLACESQ CMP #13 BEQ PLACESQ CMP #14 BEQ PLACESQ RTS PLACESQ STA DIRFLAG ;SAVE DIRECTION MISSILE IS MOVING STA SQFLAG ;SET FLAG FOR MISSILE FIRED LDY P0 ;LOAD HORIZ POS OF MISSILE STY MISP1 ;SAVE AS HORIZ POS OF MAN STY $D004 CLC LDA TOP1+1 ;VERT START OF MAN ADC #4 ;FIND MIDDLE OF MAN STA MIS2 ;SAVE AS VERT POS OF MISSILE TAX LDA MIS,X ORA #3 ;MISSILE DRAWING STA MIS,X ;DISPLAY MISSILE RTS ; ;MOVESQ:LOADS VARIABLE OF MISSILE ;DIRECTION AND DETERMINES WHICH ;DIRECTION TO MOVE MISSILE ; MOVESQ BNE MQ711 LDA DIRFLAG,X ;LOAD DIECTION MISSILE IS MOVING ;DETERMINE WHICH DIRECTION TO MOVE CMP #7 BEQ MQ7 CMP #11 BEQ MQ11 CMP #13 BEQ MQ13 CMP #14 BEQ MQ14 RTS ; ;MQ7:MOVES MISSILE RIGHT MQ7 LDA MISP1,X ;LOAD HORIZ POS CMP #195 ;CMP WITH RIGHT LIMIT BCC MQ7OK ;IF < THEN MOVE MISSILE MQ711 LDA MIS2,X ;VERT POS OF MISSILE TAY LDA MIS,Y ;LOAD DRAWING IN MISSILE MEMORY AND T7 ;USE "AND" TO TURN OFF STA MIS,Y ;BITS OF MISSILE LDA #1 ;RESET FLAGS TO STA SQFLAG,X ;ALLOW ANOTHER STA DIRFLAG,X ;MISSILE TO BE FIRED RTS MQ7OK INC MISP1,X ;ADD 1 TO HORIZ POS OF MISSILE MQ72 LDA MISP1,X ;LOAD NEW POS LDY #0 ;CLEAR Y STA (HPOST),Y ;SAVE IN HORIZ REGISTER RTS ; ;MQ11:MOVES MISSILE LEFT ; MQ11 LDA MISP1,X ;HORIZ POS OF MISSILE CMP #60 ;IS IT AT LEFT LIMIT BCS MQ11OK ;IF AT LIMIT JMP MQ711 ;JMP TO REMOVE MISSILE MQ11OK DEC MISP1,X ;ELSE SUB1 FROM HORIZ POS JMP MQ72 ;JMP TO SAVE NEW POS ; ;MQ13:MOVES MISSILE UP ; MQ13 LDA MIS2,X ;VERT POS OF MISSILE CMP #207 ;IS IT AT LOWER LIMIT BEQ MQ711 ;IF YES THEN REMOVE MISSILE INC MIS2,X ;ELSE SET NEW POS LDA MIS2,X TAX LDA MIS-1,X ;LOAD OLD POS AND T7 ;USE "AND" TO CLEAR BITS STA MIS-1,X ;SAVE NEW VALUE LDA MIS,X ;LOAD VALUE IN NEW POS ORA T8 ;USE "OR" TO TURN ON MISSILE BITS STA MIS,X ;SAVE NEW VALUE RTS ; ;MQ14:MOVES MISSILE DOWN ; MQ14 LDA MIS2,X ;MISSILE VERT POS CMP #32 ;IS IT AT UPPER LIMIT BEQ MQ711 ;IF YES THEN REMOVE DEC MIS2,X ;ELSE SET NEW POS LDA MIS2,X TAX LDA MIS+1,X ;LOAD VALUE AT OLD POS AND T7 ;CLEAR BITS OF MISSILE STA MIS+1,X ;SAVE NEW VALUE LDA MIS,X ;LOAD VALUE IN NEW POS ORA T8 ;USE "OR" TO TURN ON MISSILE BITS STA MIS,X ;SAVE NEW VALUE RTS ; ;WVAR:SETS VARIABLES TO ALLOW ;WIZARD TO SHOOT MISSILE ; WVAR LDA #3 ;MISSILE DRAWING STA T8 LDA #252 ;VALUE TO CLEAR BITS STA T7 ;0 AND 1 IN MISSILE MEMORY LDA #$D0 ;HORIZ REGISTER STA HPOST+1 ;FOR MISSILE LDA #$04 STA HPOST RTS ; ;TVAR:SETS VARIABLES TO ALLOW ;TROLL TO SHOOT MISSILE ; TVAR LDA #192 ;VALUE OF STA T8 ;MISSILE DRAWING LDA #63 ;VALUE TO CLEAR BITS STA T7 ;7AND6 OF MISSILE MEMORY LDA #$D0 ;HORIZ REGISTER STA HPOST+1 ;FOR MISSILE LDA #$07 STA HPOST RTS ;SUBROUTINE JS15W:THIS SUBROUTINE ;IS USE TO READ IN AND DISPLAY ;THE FRONT VIEW OF THE WIZARD. ;THE WIZARD DRAWING IS DISPLAYED ;IN PLAYER 0. ; JS15W LDY END1+1 ;VERT ENDING POS OF WIZ LDX #7 ;# OF (BYTES-1) TO MOVE W1 LDA WIZ1,X ;GET BYTE OF WIZ DRAWING STA PL0R,Y ;SAVE IN PLAYER 0 LDA WIZM,X ;GET BYTE OF WIZ DRAWING ORA MIS,Y ;"OR" SINCE ONLY MISSILE 2AND 3 ARE USED STA MIS,Y ;SAVE IN MISSILE MEMORY DEY ;NEXT VERT POS DEX ;NEXT DRAWING BYTE BPL W1 LDA #0 STA $D203 RTS ; ; ;SUBROUTINE WIZPOS:THIS SUBROUTINE ;SETS THE STARTING POS OF THE ;WIZARD AND IS USED DURING ;THE COMBAT PHASE ; WIZPOS LDA #176 ;VERT END OF WIZ STA END1+1 LDA #169 ;VERT START OF WIZ STA TOP1+1 LDA #0 ;SET WIDTH STA $D008 STA $D00C LDA #228 ;SET COLOR STA $02C0 LDX #180 ;HORIZ POS OF WIZ POSW STX P0 ;SAVE IN POINTER STX $D000 ;SAVE IN HPOSP0 INX ;POS FOR MISS 3 STX $D006 ;SAVE IN HPOSM2 INX ;SET POS OF MISS 2 INX INX STX $D005 ;SAVE IN HPOSM2 WSIGNAL RTS ; ; ;SUBROUTINE JS7W:USED TO MOVE ;THE WIZARD RIGHT WHEN JPYSTICK 1 ;IS IN POSITION 7 ; JS7W LDA P0 ;LOAD HORIZ POS CMP #197 ;IS IT AT RIGHT LIMIT BCS WSIGNAL ;IF YES ,EXIT INC P0 ;ELSE ADD 1 TO POS LDX P0 JMP POSW ;JMP TO MOVE WIZ TO NEW POS ; ; ;SUBROUTINE JS11W:USE TO MOVE ;THE WIZARD LEFT WHEN JOYSTICK 1 ;IS IN POSITION 7 ; JS11W LDA P0 ;LOAD HORIZ POS CMP #53 ;IS IT AT LEFT LIMIT BCC WSIGNAL ;IF YES ,EXIT DEC P0 ;ELSE SUB 1 FROM POS LDX P0 JMP POSW ;JMP TO MOVE WIZ TO NEW POS ; ; ;SUBROUTINE JS13W:MOVES WIZARD ;DOWN WHEN JOYSTICK 1 IS IN ;POSITION 13 ; JS13W LDA END1+1 ;VERT END POS OF WIZ CMP #207 ;IS IT AT LOWER LIMIT BCS EX13W ;IF YES ,THEN EXIT INC END1+1 ;ELSE SET NEW POS LDX END1+1 LDY #16 ;# OF BYTES TO MOVE DOWNW LDA PL0R-1,X ;BYTE IN OLD POS STA PL0R,X ;SAVE IN NEW POS LDA MIS-1,X ;BYTE IN OLD POS AND #60 ;"AND" FOR VALUE OF MISSILE 2/3 ORA MIS,X ;"OR" WITH VALUE IN NEW POS STA MIS,X ;SAVE IN NEW POS LDA MIS-1,X ;LOAD OLD VALUE AND #195 ;CLEAR MISSILE 2/3 STA MIS-1,X ;SAVE NEW VALUE IN OLD POS DEX ;NEXT BYTE TO MOVE DEY ;ALL BYTES MOVED? BNE DOWNW INC TOP1+1 ;SET NEW VERT TOP POS EX13W RTS ; ; ;SUBROUTINE JS14W:MOVES THE WIZARD ;UP WHEN JOYSTICK 1 IS IN ;POSITION 14 ; JS14W LDA TOP1+1 ;VERT START POS OF WIZ CMP #33 ;IS IT AT UPPER LIMIT BCC EX14W ;IF YES ,THEN EXIT DEC END1+1 ;ELSE SET NEW POS DEC TOP1+1 LDX TOP1+1 LDY #16 ;#OF BYTES TO MOVE UPW LDA PL0R+1,X ;VALUE IN OLD POS STA PL0R,X ;SAVE IN NEW POS LDA MIS+1,X ;VALUE IN OLD POS AND #60 ;"AND" TO GET VALUE IN MISSILE 2/3 ORA MIS,X ;"OR" TO SAVE IN NEW POS STA MIS,X LDA MIS+1,X ;LOAD VALUE IN OLD POS AND #195 ;CLEAR MISSILE 2/3 STA MIS+1,X ;SAVE NEW VALUE INX ;NEXT BYTE TO MOVE DEY ;ALL BYTES MOVED BNE UPW EX14W RTS *= $8000 BOARD .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 TOP .BYTE $00,$00,$00,$00,$00,$00,$45,$45,$45 .BYTE $45,$45,$45,$45,$45,$45,$45,$45,$45,$45 .BYTE $45,$45,$45,$45,$45,$45,$45,$45,$45,$45 .BYTE $45,$45,$45,$00,$00,$00,$00,$00,$00,$00 LEV14A .BYTE $00,$00,$3B,$3C,$3F,$41,$00,$45,$00,$00 .BYTE $01,$02,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$45,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$3D,$3E,$40,$42,$43 TROL0 .BYTE $01 TROLS .BYTE $02,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$2D,$2E,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$45,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$45,$00,$00 .BYTE $00,$00,$01,$02,$00,$00,$00,$00,$00,$00 .BYTE $00,$2D,$2E,$2F,$30,$00,$00,$2F,$30,$00 .BYTE $00,$00,$45,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$2D,$2E,$2F,$30,$00,$45,$00,$01 .BYTE $02,$00,$00,$00,$00,$00,$00,$B6,$B8,$00 .BYTE $00,$00,$00,$00,$00,$2F,$30,$00,$00,$00 .BYTE $00,$00,$45,$B5,$B7,$B8,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$2F,$30,$00,$45,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$B8,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $B5,$B6,$B7,$B8,$2D,$2E,$00,$00,$00,$00 .BYTE $00,$2F,$2E,$2D,$2E,$00,$00,$45,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$B5,$B6,$B7 .BYTE $B8,$00,$45,$00,$00,$00,$2F,$30,$00,$00 .BYTE $00,$00,$00,$00,$B6,$B7,$00,$45,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$B5,$B6,$B7,$B8,$00,$00 .BYTE $00,$00,$45,$00,$00,$2D,$2E,$2F,$30,$00 .BYTE $00,$00,$2F,$30,$B8,$00,$00,$45,$00,$00 .BYTE $2D,$2E,$2F,$30,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$B8,$00,$00,$00,$00,$00 .BYTE $00,$00,$45,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$2D,$2E,$2F,$30,$45,$2F,$30 .BYTE $00,$00,$00,$00,$2D,$2E,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$45,$00,$31,$32,$33,$34,$00,$00 LEV12 .BYTE $46,$47,$00,$00,$00,$00,$00,$45,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$45,$00,$00,$00,$00,$31,$32,$34 LEV1 .BYTE $5A,$5B,$00,$00,$00,$00,$00,$45,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$45,$00,$31,$32,$34,$00 LEV122 .BYTE $00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$45,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$31,$32,$34,$00,$00,$00,$00 .BYTE $00,$00,$45,$00,$00,$00,$00,$00,$5C,$5D .BYTE $00,$2F,$2E,$00,$00,$00,$00,$45,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$31,$32 .BYTE $33,$34,$45,$00,$00,$00,$2F,$30,$00,$00 .BYTE $00,$B6,$B7,$2F,$30,$00,$00,$45,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$45,$00,$00,$2D,$2E,$35,$31,$32 .BYTE $00,$2D,$2E,$00,$00,$00,$00,$45,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$31,$32,$33,$34,$00,$00,$00,$00,$00 .BYTE $00,$00,$45,$00,$00,$00,$00,$B8,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$45,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$2D .BYTE $2E,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$45,$00,$00,$00,$31,$32,$34,$00 .BYTE $00,$2D,$2E,$00,$00,$2F,$30,$45,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$31,$32,$34,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$17,$18,$00 .BYTE $00,$00,$45,$00,$00,$31,$32,$33,$34,$00 .BYTE $00,$00,$00,$2D,$2E,$00,$00,$45,$B5,$B7 .BYTE $B8,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $17,$18,$45,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$2F,$2E,$B6,$B7,$B8,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$2F,$2E,$17,$18,$00,$00,$00 .BYTE $00,$00,$45,$00,$44,$3B,$3C,$3F,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$45,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$17,$18,$00 WIZRDS .BYTE $00,$00,$39,$3A,$3D,$3E,$40,$00,$00 LEV14 .BYTE $00,$00,$00,$00,$00,$00,$00,$45,$45,$45 .BYTE $45,$45,$45,$45,$45,$45,$45,$45,$45,$45 .BYTE $45,$45,$45,$45,$45,$45,$45,$45,$45,$45 .BYTE $45,$45,$45,$00,$00,$00,$00,$00 BOTTOM .BYTE $00,$00 CASTL .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $3B,$3C,$3F,$41,$00,$2D,$2E,$2F,$2E,$4C .BYTE $57,$00,$2F,$30,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$2F,$30,$00,$00,$2D,$2E,$2F .BYTE $30,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $3D,$3E,$40,$42,$43,$00,$00,$00,$50,$51 .BYTE $49,$4B,$4A,$56,$57,$00,$00,$00,$00,$00 .BYTE $2D,$2E,$00,$00,$2F,$30,$2D,$2E,$00,$00 .BYTE $2F,$30,$00,$2D,$2E,$2D,$2E,$00,$00,$00 .BYTE $50,$51,$48,$49,$57,$00,$00,$4C,$56,$48 .BYTE $49,$48,$49,$56,$4A,$4B,$56,$56,$54,$55 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ORIGIN .BYTE $4C,$4D,$00,$72,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4E,$4F,$72,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4E,$4F,$00,$72,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4C,$4D,$72,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$19,$1A,$00,$00 .BYTE $4C,$4D,$00,$72,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4E,$4F,$72,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4E,$4F,$00,$72,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$19,$1A,$00,$00 .BYTE $4C,$4D,$72,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4C,$4D,$00,$72,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4E,$4F,$72,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4C,$4D,$00,$72,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4C,$4D,$72,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4C,$4D,$00,$72,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4E,$4F,$72,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4E,$4F,$00,$72,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $4C,$4D,$72,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ENDSC .BYTE $52,$53,$48,$49,$48,$49,$48,$4B,$4A,$49 .BYTE $48,$4A,$49,$4B,$4A,$48,$49,$56,$54,$57 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$2D,$2E,$00,$2F,$30,$00,$00,$00 .BYTE $2D,$2E,$2F,$30,$2F,$2E,$00,$00,$2D,$2E .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $2D,$2E,$2D,$2E,$2F,$30,$2F,$2E,$00,$00 .BYTE $00,$31,$32,$34,$31,$32,$33,$34,$00,$00 .BYTE $31,$32,$34,$00,$00,$31,$32,$33,$34,$00 .BYTE $2D,$2E,$2F,$30,$00,$2D,$2E,$2D,$2E,$00 .BYTE $2D,$2E,$2F,$2E,$2D,$2E,$00,$31,$32,$34 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 CASTR .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$2D,$2E,$2F,$2E,$00 .BYTE $00,$00,$2F,$30,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$2F,$30,$00,$00,$2D,$2E,$2F .BYTE $30,$00,$00,$00,$2D,$2E,$00,$00,$2F,$2E .BYTE $00,$00,$00,$00,$00,$B6,$B8,$00,$B5,$B6 .BYTE $B7,$B8,$2D,$2E,$00,$00,$00,$00,$00,$00 .BYTE $2D,$2E,$2F,$2E,$2F,$30,$00,$48,$48,$49 .BYTE $2F,$30,$00,$2D,$2E,$00,$44,$3B,$3C,$3F .BYTE $00,$00,$00,$00,$00,$B5,$B6,$B7,$B8,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $49,$48,$49,$56,$4A,$4B,$56,$56,$54,$55 .BYTE $4B,$4A,$56,$00,$00,$39,$3A,$3D,$3E,$40 ORIGIN2 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$F3,$4C,$4D .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$F3,$00,$4E,$4F .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$F3,$4E,$4F .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$F3,$00,$4C,$4D .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$F3,$4C,$4D .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$F3,$00,$4E,$4F .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$F3,$4E,$4F .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$F3,$00,$4C,$4D .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$F3,$4C,$4D .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$F3,$00,$4E,$4F .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$F3,$4C,$4D .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$F3,$00,$4C,$4D .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$F3,$4C,$4D .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$F3,$00,$4E,$4F .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$F3,$4E,$4F .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$F3,$00,$4C,$4D ENDSC2 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $48,$4A,$49,$4B,$4A,$48,$49,$56,$54,$57 .BYTE $54,$55,$48,$49,$48,$49,$48,$4B,$4A,$49 .BYTE $00,$00,$2D,$2E,$00,$2F,$30,$00,$00,$00 .BYTE $2D,$2E,$2F,$30,$2F,$2E,$00,$00,$2D,$2E .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $2D,$2E,$2D,$2E,$2F,$30,$2F,$2E,$00,$00 .BYTE $00,$31,$32,$34,$31,$32,$33,$34,$00,$00 .BYTE $31,$32,$34,$00,$00,$31,$32,$33,$34,$00 .BYTE $2D,$2E,$2F,$30,$00,$2D,$2E,$2D,$2E,$00 .BYTE $2D,$2E,$2F,$2E,$2D,$2E,$00,$31,$32,$34 SCR2M .BYTE $74,$74,$74,$74,$74,$74,$74,$74,$74,$74 .BYTE $74,$74,$74,$74,$74,$74,$74,$74,$74,$74 .BYTE $74,$74,$74,$74,$74,$74,$74,$74,$74,$74 .BYTE $74,$74,$74,$74,$74,$74,$74,$74,$74,$74 .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$74,$74,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$74 .BYTE $74,$00,$00,$00,$2D,$2E,$00,$00,$00,$00 .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$74,$74,$00,$00 .BYTE $00,$00,$31,$32,$34,$00,$00,$00,$00,$74 .BYTE $74,$00,$2F,$30,$00,$00,$00,$00,$00,$00 .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$2D,$2E .BYTE $00,$74,$00,$00,$00,$00,$00,$00,$31,$32 .BYTE $33,$34,$00,$00,$31,$32,$33,$34,$00,$74 .BYTE $74,$00,$00,$00,$00,$00,$2F,$30,$00,$00 .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$74,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$74 .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$74,$74 .BYTE $74,$00,$00,$00,$00,$00,$2D,$2E,$2F,$30 .BYTE $00,$74,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$31,$32,$33,$34,$74,$00,$00,$74 .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$74,$74,$74 .BYTE $74,$74,$00,$2D,$2E,$00,$00,$00,$00,$00 .BYTE $00,$74,$74,$31,$32,$34,$74,$00,$00,$74 .BYTE $74,$00,$00,$00,$74,$74,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $74,$74,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$74,$00,$00,$00,$00,$74,$74,$74 .BYTE $74,$00,$00,$00,$00,$74,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$2D,$2E,$00,$00,$00 .BYTE $74,$74,$00,$00,$00,$00,$00,$00,$00,$2D .BYTE $2E,$00,$00,$2F,$30,$00,$00,$00,$00,$74 .BYTE $74,$00,$00,$00,$00,$74,$00,$00,$00,$00 .BYTE $00,$00,$00,$2F,$30,$00,$00,$00,$00,$00 .BYTE $74,$74,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$74 .BYTE $74,$00,$00,$00,$00,$74,$00,$00,$00,$2F .BYTE $30,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $74,$74,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$74 .BYTE $74,$74,$00,$00,$74,$74,$74,$74,$74,$74 .BYTE $74,$00,$00,$74,$74,$74,$74,$74,$00,$00 .BYTE $74,$74,$74,$74,$74,$74,$74,$00,$00,$74 .BYTE $74,$74,$74,$74,$74,$74,$74,$00,$00,$74 .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$74,$00,$00,$00,$00 .BYTE $00,$31,$32,$33,$34,$00,$00,$00,$00,$74 .BYTE $74,$00,$00,$00,$2D,$2E,$2F,$30,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$74,$74,$74,$00,$00,$00,$00 .BYTE $00,$00,$00,$31,$32,$34,$00,$00,$00,$74 .BYTE $74,$00,$00,$00,$2D,$2E,$00,$00,$2D,$2E .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$74,$00,$00,$31,$32,$33,$34 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$74 .BYTE $74,$00,$2F,$2E,$00,$00,$00,$00,$74,$74 .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$74 .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$2D,$2E,$00,$00,$74 .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$74 .BYTE $74,$74,$74,$74,$74,$74,$74,$2F,$30,$74 .BYTE $74,$00,$00,$2F,$30,$00,$2D,$2E,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$74,$74,$00 .BYTE $00,$2D,$2E,$2F,$30,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$74 .BYTE $74,$2D,$2E,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$74,$00,$00,$2D,$2E,$00,$74,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$2F,$30,$00,$00,$74 .BYTE $74,$00,$00,$00,$2D,$2E,$00,$00,$74,$74 .BYTE $74,$74,$00,$00,$00,$2F,$30,$74,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$31,$32,$33,$34,$00,$00,$00,$00,$74 .BYTE $74,$00,$00,$00,$00,$00,$00,$00,$74,$00 .BYTE $00,$00,$00,$00,$2D,$2E,$00,$74,$74,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$31 .BYTE $32,$34,$00,$00,$00,$00,$00,$00,$00,$74 .BYTE $74,$00,$00,$00,$00,$00,$00,$74,$74,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$74,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$74 .BYTE $74,$74,$74,$74,$74,$74,$74,$74,$74,$74 .BYTE $74,$74,$74,$74,$74,$74,$74,$74,$74,$74 .BYTE $74,$74,$74,$74,$74,$74,$74,$74,$74,$74 .BYTE $74,$74,$74,$74,$74,$74,$74,$74,$74,$74 SCR1M .BYTE $00,$00,$00,$00,$00,$00,$00,$AA,$AA,$AA,$AA,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$99,$99,$99,$99,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$88,$08,$80,$88,$08,$88 .BYTE $88,$08,$88,$88,$08,$80,$00,$08,$80,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$07,$70,$00,$07,$70 .BYTE $77,$07,$77,$77,$07,$70,$00,$07,$70,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$06,$60,$00,$06,$60 .BYTE $66,$06,$60,$66,$06,$60,$00,$06,$60,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$05,$50,$00,$05,$55 .BYTE $50,$05,$50,$55,$05,$50,$00,$05,$50,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$04,$40,$00,$04,$44 .BYTE $44,$04,$40,$44,$04,$40,$00,$04,$40,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$03,$30,$00,$03,$30 .BYTE $33,$03,$33,$33,$03,$33,$33,$03,$33,$33 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$22,$22,$00,$02,$20 .BYTE $22,$02,$22,$22,$02,$22,$22,$02,$22,$22 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$AA,$00,$00,$AA .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$99,$00,$00,$99 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$88,$00,$00,$88 .BYTE $08,$88,$88,$08,$88,$88,$00,$08,$88,$88 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$77,$07,$70,$77 .BYTE $07,$70,$77,$07,$70,$77,$00,$00,$70,$70 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$66,$06,$60,$66 .BYTE $06,$60,$66,$06,$60,$66,$00,$00,$60,$60 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$55,$55,$55,$55 .BYTE $05,$55,$55,$05,$55,$50,$00,$00,$50,$50 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$04,$40,$04,$40 .BYTE $04,$44,$44,$04,$44,$44,$00,$00,$40,$40 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$03,$30,$03,$30 .BYTE $03,$30,$33,$03,$30,$33,$00,$00,$30,$30 .BYTE $00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$02,$20,$02,$20 .BYTE $02,$20,$22,$02,$20,$22,$00,$02,$22,$22 .BYTE $00,$00,$00,$00,$00,$00,$00 GUN .BYTE $08,$0A,$8A,$AE,$FF,$AE,$8A,$0A,$08 GUN2 .BYTE $80,$A0,$A8,$EA,$FF,$EA,$A8,$A0,$80 MAN .BYTE $7C,$44,$6C,$38,$00,$00,$00,$00 MAN1 .BYTE $00,$10,$10,$00,$00,$44,$28,$6C MAN2 .BYTE $00,$00,$00,$C6,$BA,$38,$00,$00 MAN01 .BYTE $0F,$03,$03,$0E,$00,$00,$00,$00 MAN02 .BYTE $0F,$03,$03,$0E,$00,$00,$00,$00 MAN11 .BYTE $00,$1C,$0C,$00,$24,$00,$2B,$11 MAN12 .BYTE $00,$1C,$0C,$00,$24,$00,$04,$0C MAN21 .BYTE $00,$00,$00,$01,$1B,$0E,$00,$00 MAN22 .BYTE $00,$00,$00,$01,$1B,$0E,$00,$00 MAN0L1 .BYTE $F0,$C0,$C0,$70,$00,$00,$00,$00 MAN0L2 .BYTE $F0,$C0,$C0,$70,$00,$00,$00,$00 MAN1L1 .BYTE $00,$38,$30,$00,$24,$00,$D4,$88 MAN1L2 .BYTE $00,$38,$30,$00,$24,$00,$20,$30 MAN2L1 .BYTE $00,$00,$00,$80,$D8,$70,$00,$00 MAN2L2 .BYTE $00,$00,$00,$80,$D8,$70,$00,$00 WIZ1 .BYTE $38,$6C,$44,$44,$FE,$BA,$7C,$3E WIZM .BYTE $00,$00,$18,$00,$00,$24,$00,$00 *= $6000 CHAR .BYTE $00,$00,$00,$00,$00,$00,$00,$00 TROLL .BYTE $15,$13,$17,$A5,$8A,$3A,$0C,$3C .BYTE $50,$10,$50,$68,$88,$B0,$C0,$F0 .BYTE $00,$03,$00,$0C,$02,$00,$0C,$03 .BYTE $55,$F5,$F5,$56,$BA,$A8,$CF,$03 .BYTE $05,$3F,$0F,$05,$EB,$0A,$03,$0F .BYTE $50,$50,$50,$60,$A0,$80,$00,$00 .BYTE $55,$5F,$5F,$95,$AE,$2C,$F3,$C0 .BYTE $00,$C0,$00,$30,$80,$00,$30,$C0 .BYTE $05,$05,$05,$09,$0A,$02,$00,$00 .BYTE $50,$FC,$F0,$50,$EB,$A0,$C0,$F0 .BYTE $00,$00,$05,$05,$05,$09,$0A,$02 .BYTE $00,$00,$50,$FC,$F0,$53,$E8,$A0 .BYTE $0F,$0C,$00,$00,$00,$00,$00,$00 .BYTE $33,$0C,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$05,$05,$05,$09 .BYTE $00,$00,$00,$00,$50,$FC,$F0,$50 .BYTE $0A,$02,$00,$00,$00,$00,$00,$00 .BYTE $EB,$A0,$C0,$F0,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$05,$05 .BYTE $00,$00,$00,$00,$00,$00,$50,$FC .BYTE $05,$09,$0A,$02,$0F,$0C,$00,$00 .BYTE $F0,$53,$E8,$A0,$33,$0C,$00,$00 WIZD .BYTE $05,$14,$1C,$10,$55,$75,$15,$05 .BYTE $40,$50,$D0,$10,$54,$74,$50,$55 .BYTE $00,$00,$00,$00,$00,$03,$00,$03 .BYTE $54,$55,$55,$14,$75,$F5,$55,$CF .BYTE $15,$15,$15,$05,$1D,$FD,$15,$0F .BYTE $00,$40,$40,$00,$40,$40,$40,$00 .BYTE $15,$55,$55,$14,$5D,$5F,$55,$F3 .BYTE $00,$00,$00,$00,$00,$C0,$00,$C0 .BYTE $00,$01,$01,$00,$01,$01,$01,$00 .BYTE $54,$54,$54,$50,$74,$7F,$54,$F0 .BYTE $00,$00,$00,$01,$01,$00,$01,$01 .BYTE $00,$00,$54,$54,$54,$50,$74,$7F .BYTE $01,$03,$00,$00,$00,$00,$00,$00 .BYTE $54,$CF,$00,$00,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$01,$01,$00 .BYTE $00,$00,$00,$00,$54,$54,$54,$50 .BYTE $01,$01,$01,$00,$00,$00,$00,$00 .BYTE $74,$7F,$54,$F0,$00,$00,$00,$00 .BYTE $00,$00,$00,$00,$00,$00,$00,$01 .BYTE $00,$00,$00,$00,$00,$00,$54,$54 .BYTE $01,$00,$01,$01,$01,$03,$00,$00 .BYTE $54,$50,$74,$7F,$54,$CF,$00,$00 BACKGRD .BYTE $0F,$3F,$FF,$F7,$3D,$00,$00,$00 .BYTE $FC,$FF,$FF,$F7,$DF,$50,$40,$40 .BYTE $0F,$3F,$F7,$FD,$0D,$01,$01,$01 .BYTE $3C,$FF,$FF,$F7,$DC,$40,$00,$00 .BYTE $00,$00,$02,$02,$0A,$0A,$2A,$AA .BYTE $00,$80,$81,$A5,$A9,$A9,$AA,$AA .BYTE $10,$54,$55,$55,$55,$55,$55,$55 .BYTE $00,$00,$00,$40,$40,$50,$54,$55 .BYTE $00,$00,$00,$0F,$3F,$3F,$FF,$FC .BYTE $03,$3F,$3F,$FF,$FF,$FF,$FF,$F0 .BYTE $C3,$FF,$FF,$FF,$F0,$C0,$00,$00 .BYTE $FC,$FC,$F0,$00,$00,$00,$00,$00 CAST36 .BYTE $00,$00,$00,$02,$08,$55,$FF,$FF .BYTE $08,$20,$80,$00,$00,$55,$FF,$FF .BYTE $44,$55,$55,$15,$15,$15,$95,$15 .BYTE $40,$40,$40,$00,$11,$55,$55,$15 .BYTE $15,$15,$15,$15,$15,$55,$D5,$FF .BYTE $15,$55,$55,$55,$55,$55,$55,$FF .BYTE $00,$00,$00,$00,$11,$55,$55,$55 .BYTE $55,$55,$45,$45,$55,$55,$55,$FF .BYTE $00,$00,$00,$00,$00,$00,$80,$20 .BYTE $08,$02,$00,$00,$15,$40,$FF,$FF .BYTE $00,$00,$80,$20,$55,$00,$FF,$FF .BYTE $00,$00,$00,$00,$00,$00,$00,$02 BORDR .BYTE $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA POINTER .BYTE $01,$04,$10,$55,$10,$04,$01,$00 .BYTE $80,$20,$08,$AA,$08,$20,$80,$00 WALLS .BYTE $55,$40,$4A,$60,$40,$62,$40,$55 .BYTE $55,$69,$41,$69,$41,$41,$69,$55 .BYTE $55,$60,$4A,$40,$68,$40,$68,$55 .BYTE $55,$01,$29,$01,$A9,$09,$A1,$55 .BYTE $55,$49,$49,$41,$41,$61,$61,$55 .BYTE $55,$89,$81,$01,$21,$21,$81,$55 .BYTE $55,$48,$40,$62,$62,$40,$48,$55 .BYTE $55,$49,$41,$49,$49,$41,$61,$55 .BYTE $55,$42,$42,$60,$62,$40,$48,$48 .BYTE $55,$00,$28,$0A,$80,$2A,$80,$81 .BYTE $48,$48,$40,$40,$48,$48,$40,$55 .BYTE $01,$00,$A8,$80,$0A,$A0,$00,$55 .BYTE $55,$09,$01,$A1,$29,$01,$01,$55 .BYTE $55,$81,$81,$21,$21,$01,$01,$55 .BYTE $55,$29,$01,$A1,$01,$29,$01,$55 .BYTE $55,$61,$61,$41,$41,$61,$61,$55 CHARBOMB .BYTE $80,$F4,$F4,$FE,$FE,$FA,$F2,$90 .BYTE $01,$08,$5F,$7F,$3F,$7F,$7B,$21 TCHAR .BYTE $00,$FF,$FF,$F3,$03,$03,$03,$0F .BYTE $00,$FF,$FF,$CF,$C0,$C0,$C0,$F0 WCHAR .BYTE $00,$F0,$F3,$F3,$FF,$FF,$3C,$3C .BYTE $00,$0F,$CF,$CF,$FF,$FF,$3C,$3C TITLE .BYTE $FF,$FF,$F3,$03,$03,$03,$03,$0F .BYTE $FF,$FF,$CF,$C0,$C0,$C0,$C0,$F0 .BYTE $00,$00,$3F,$3C,$3C,$3F,$3C,$3C .BYTE $00,$00,$F3,$F3,$F3,$C3,$F3,$F3 .BYTE $00,$00,$FF,$CF,$CF,$CF,$CF,$FF .BYTE $00,$00,$3C,$3C,$3C,$3C,$3F,$3F .BYTE $00,$00,$0F,$0F,$0F,$0F,$CF,$CF .BYTE $00,$00,$00,$00,$00,$00,$F0,$F0 .BYTE $F0,$F0,$F3,$F3,$FF,$3C,$3C,$3C .BYTE $0F,$0F,$CF,$CF,$FF,$3C,$3C,$3C .BYTE $00,$00,$3F,$3C,$3C,$3F,$3C,$3C .BYTE $00,$00,$F3,$F3,$F3,$F3,$F3,$F3 .BYTE $00,$00,$FF,$CF,$CF,$FC,$CF,$CF .BYTE $00,$00,$0F,$03,$03,$03,$03,$0F .BYTE $00,$00,$FC,$30,$30,$30,$30,$FC KINGT .BYTE $44,$15,$23,$2B,$6A,$75,$15,$3C .BYTE $44,$50,$20,$A0,$A4,$74,$50,$F0 KINGW .BYTE $88,$2A,$1C,$10,$55,$75,$15,$05 .BYTE $88,$A0,$D0,$10,$54,$74,$50,$55 TBOMB .BYTE $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF TWARIOR .BYTE $00,$54,$5F,$B8,$BF,$A8,$30,$3C WWARIOR .BYTE $54,$55,$55,$14,$75,$F5,$55,$3C FGHTCHAR .BYTE $55,$55,$55,$55,$55,$55,$55,$55