A.N.A.L.O.G. ISSUE 57 / SEPTEMBER 1987 / PAGE 51

Troll War II

Champion the cause
in hostilities between
the trolls and the wizards.

by Scott Langston

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,197,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,138,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,169,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,141,192,2,141,193,2,141,194,7434
1080 DATA 2,169,78,141,195,2,169,152,141,199,2,169,3,141,8,208,6374
1090 DATA 141,9,208,141,10,208,169,0,141,11,208,141,12,208,141,28,5908
1100 DATA 40,141,64,40,141,63,40,141,46,40,141,48,40,141,30,208,3478
1110 DATA 169,50,141,47,40,169,1,141,27,40,169,2,133,149,169,3,3263
1120 DATA 141,15,210,169,0,141,8,210,141,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,169,112,141,1,208,169,144,141,9125
1150 DATA 2,208,160,48,162,7,169,204,153,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,201,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,40,145,0,200,173,24,40,145,4107
1280 DATA 0,96,160,0,177,0,141,23,40,169,70,145,0,200,177,0,4023
1290 DATA 141,24,40,169,71,145,0,96,169,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,128,201,15,240,29,141,25,40,201,6942
1320 DATA 7,240,105,42,100,43,39,201,11,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,145,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,102,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,162,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,240,34,173,0,40,201,23,208,5683
1540 DATA 16,32,101,53,32,236,51,96,169,40,141,102,40,32,148,41,3376
1550 DATA 96,201,1,208,243,32,101,53,32,162,51,96,200,177,0,240,7960
1560 DATA 3,76,185,43,32,148,41,173,107,40,201,3,144,1,96,238,5905
1570 DATA 107,40,160,0,32,158,43,162,11,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,42,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,128,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,133,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,26,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,42,32,63,42,76,143,44,9838
1770 DATA 32,63,42,32,63,42,32,63,42,32,63,42,76,167,44,169,2062
1780 DATA 70,141,49,40,141,50,40,169,62,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,38,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,136,145,134,200,202,208,246,96,173,4473
1860 DATA 61,40,240,32,206,61,40,173,61,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,46,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,63,144,13,141,0,208,206,111,7436
1930 DATA 40,173,111,40,141,2,210,96,169,1,141,27,40,56,173,60,4029
1940 DATA 40,233,2,168,162,5,189,103,112,153,0,36,200,202,16,246,8685
1950 DATA 169,5,141,61,40,169,14,141,192,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,141,0,208,206,111,40,173,111,40,8588
1980 DATA 141,2,210,96,169,65,141,98,40,169,132,133,148,169,0,141,7789
1990 DATA 97,40,96,169,183,141,98,40,169,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,119,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,177,136,201,7,240,7,201,7682
2060 DATA 9,240,11,76,71,47,169,9,32,42,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,136,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,177,136,240,7,136,32,51,48,4894
2110 DATA 76,71,47,173,30,40,145,136,200,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,76,198,47,136,177,136,200,8496
2160 DATA 201,0,145,47,58,48,208,51,136,169,25,32,42,48,200,169,5921
2170 DATA 0,145,136,76,198,47,169,88,141,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,136,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,136,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,96,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,141,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,141,1,210,96,169,76,141,52,7266
2370 DATA 40,169,69,141,57,40,169,0,141,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,141,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,40,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,49,201,11,208,3,76,218,49,6881
2480 DATA 201,13,208,3,76,250,49,201,14,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,57,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,141,10,208,141,9,208,141,8,6880
2650 DATA 208,141,12,208,169,17,141,111,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,169,41,141,76,112,32,78,53,169,6198
2690 DATA 0,141,103,131,141,104,131,141,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,185,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,205,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,169,109,141,127,128,169,110,7396
2810 DATA 141,128,128,32,106,44,76,5,51,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,32,63,44,32,97,44,32,115,1750
2850 DATA 44,169,24,141,94,40,173,67,40,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,67,208,12,32,47,51,32,80,3778
2880 DATA 44,169,1,141,101,40,96,201,23,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,177,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,30,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,32,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,49,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,240,18,56,189,189,112,233,1,157,1230
3070 DATA 189,112,189,205,112,233,0,157,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,2857
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,165,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,208,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,201,11,240,9,201,13,240,5,7973
3200 DATA 201,14,240,1,96,141,73,40,141,71,40,172,62,40,140,104,5923
3210 DATA 40,140,7,208,24,173,57,40,105,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,201,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,35,9,3,157,0,35,96,208,4339
3270 DATA 27,189,72,40,201,7,240,13,201,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,169,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

Troll War II

Capture the king
and victory is yours
in this battle of troils and wizards.

by Scott Langston

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,189,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,96,40,157,0,35,96,169,3624
3360 DATA 3,141,96,40,169,252,141,95,40,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,176,141,50,40,169,169,141,55,9420
3410 DATA 40,169,0,141,8,208,141,12,208,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,206,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,77,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,108,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,160,0,32,96,48,173,14,208,5673
3610 DATA 208,3,76,122,56,169,0,141,194,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,40,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,208,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,41,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,169,0,141,112,40,32,63,42,2736
3770 DATA 160,0,32,239,42,174,112,40,189,181,112,141,0,210,238,112,2077
3780 DATA 40,173,112,40,201,8,144,5,169,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,173,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,115,44,162,44,32,161,40,32,3476
3850 DATA 127,44,76,175,57,0,112,188,112,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,112,112,112,112,112,112,6416
3880 DATA 112,112,79,88,135,15,15,15,15,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,48,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,182,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,68,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,72,73,86,84,87,3526
4550 DATA 84,85,72,73,72,73,72,75,74,73,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,74,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,87,0,0,76,86,72,2003
4690 DATA 73,72,73,86,74,75,86,86,84,85,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,117,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,114,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,114,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,72,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,251,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,69,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,128,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,47,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,69,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,1586
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,46,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,50,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,116,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,48,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,116,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,116,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,52,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,116,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,116,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,116,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,116,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,116,0,0,0,0,0,9478
6340 DATA 0,0,116,0,0,0,0,0,45,46,0,116,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,116,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,116,116,116,116,116,6936
6390 DATA 116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,2166
6400 DATA 116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,2176
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,136,8,128,532
6470 DATA 136,8,136,136,8,136,136,8,128,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,119,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,153,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,136,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,102,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,80,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,136,176,192,240,0,3,0,12,7658
7040 DATA 2,0,12,3,85,245,245,86,186,168,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,128,0,48,192,5,5,5,9,4693
7070 DATA 10,2,0,0,80,252,240,80,235,160,192,240,0,0,5,5,178
7080 DATA 5,9,10,2,0,0,80,252,240,83,232,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,80,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,84,84,80,2031
7220 DATA 1,1,1,0,0,0,0,0,116,127,84,240,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,127,84,207,0,0,5617
7250 DATA 15,63,255,247,61,0,0,0,252,255,255,247,223,80,64,64,6039
7260 DATA 15,63,247,253,13,1,1,1,60,255,255,247,220,64,0,0,1855
7270 DATA 0,0,2,2,10,10,42,170,0,128,129,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,128,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,128,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,65,97,85,85,66,66,96,8053
7430 DATA 98,64,72,72,85,0,40,10,128,42,128,129,72,72,64,64,7401
7440 DATA 72,72,64,85,1,0,168,128,10,160,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,63,127,123,33,0,255,255,243,6129
7480 DATA 3,3,3,15,0,255,255,207,192,192,192,240,0,240,243,243,2062
7490 DATA 255,255,60,60,0,15,207,207,255,255,60,60,255,255,243,3,8673
7500 DATA 244,98,167,99,3,3,3,15,255,255,207,192,192,192,192,240,341
7510 DATA 0,0,63,60,60,63,60,60,0,0,243,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,243,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,21,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