THE DUEL
by Roger S Allen
from Sinclair Programs, July 1985

[The 'verification' program in Listing 3 doesn't match the hex dump]
[printed in the magazine. 37 of the 142 checksums do not match the ]
[actual data from the listing,including almost all of the checksums]
[from Block 68H onwards (mostly differing by 20). However, the     ]
[actual game appears to work OK (although I haven't managed to     ]
[reach the third section). I've put a list of the mis-matching     ]
[blocks at the end of this file.                              JimG ]

THE DUEL is a two player game in which the players must each use their
skill and judgement to destroy their opponent. The game is divided
into three sections, including fifteen skill levels. Player one uses
Z, X, C and V to move and CAPS SHIFT to fire, while player two uses 6,
7, 8 and 9 to move and 0 to fire.

In game one, use the movement keys to deflect the ever moving
fireball. Lives left are represented by the energy rings around you. A
life is lost if the fireball passes you and reaches the edge of the
screen.

In game two, guide your laser bike over a 64 x 64 grid, avoiding your
trail and your opponent's trail. To make matters more difficult, you
can only see a small portion of the grid at any one time.

In game three, move your tank around the maze. Press the fire key to
launch a missile at your opponent. Lives are represented by coloured
squares at the bottom of the screen.


To enter

Enter and SAVE listing one. Take another tape, enter and SAVE listings
two and three. Now reload listing two, and RUN it. Look at listing
four, this is the machine code that makes up the game, written in
hexadecimal form. The number on the far left is the block number, the
next is the address in memory of the machine code and the next eight
numbers are eight numbers of machine code.

To make typing easier, the numbers have been divided into blocks of
32. Before you type anything, switch on CAPS LOCK. At this point you
can do four things. Enter a block number and then enter the 32 numbers
for that block. Enter the four letters SAVE and save to tape what you
have entered. Enter the four letters LOAD to load back what you have
already typed. Enter the four letters QUIT to tell the computer that
you have finished.

If you select the first option by entering a block number, you will be
confronted by a display which looks rather like listing four. Try
typing in a few numbers to see what happens. Notice that if you press
enter without entering a number, the next number that you enter will
be the first number in the next row of eight. [I changed the routine
to enter eight bytes at a time, as it was far too tedious entering
them one by one. JimG]

If you make a typing error and receive the report B: Integer out of
range, type RUN. You will find that the numbers are still there. Look
at the numbers on the black background above the numbers that you
typed in. These are the numbers that were there before you entered
your numbers.

Once you have entered all numbers in one block you will hear a BEEP
and you will then return to the stage where you are asked for a block
number.

Once you have entered all the blocks, type SAVE to save the tape, and
then QUIT. Now load listing three. This will check what you have taped
[Hah! JimG] and, if all is well, will save a final copy to tape; place
this after listing one.

If you receive the message ERROR IN DATA STATEMENTS, check the numbers
in the data section of listing three and then save it to tape once
again. Now re-run it.

If the program tells you that there is an error in one of the blocks,
make a list of the block number, reload listing two and run it. Enter
the block number you have been given, and correct the mistakes in that
block. Repeat this exercise until the computer tells you that all is
well. After saving it, you can load and run listing one which will
load the machine code and allow you to play the game.

Duel was written for the 48K Spectrum by Roger S Allen of Gerrards
Cross, Bucks.


MIS-MATCHING BLOCK LIST

Block	DATA	Actual		Block	DATA	Actual
number	value	value		number	value	value

0F	4164	4114		79	1453	1433
12	2705	2761		7A	2095	2075
33	3642	3677		7B	2298	2278
58	3934	4240		7C	2168	2174
68	2957	3085		7D	2452	2432
69	2031	3553		7E	1821	1801
6A	1356	1824		7F	1838	1818
6B	1637	1387		80	2194	2174
6C	1862	1842		81	1769	1749
6D	 773	7532		82	2314	2294
6F	 749	7292		84	2600	2580
70	1232	1212		85	1999	1979
71	1664	1644		86	1916	1896
72	1951	1931		87	1479	1459
73	1368	1348		88	 310	2909
74	1873	1853		89	 675	6559
76	1199	1179		8B	 548	5289
77	 851	8319		8C	3969	3949
78	1061	1041

