
                              PLUS D HACKER

Plus D Hacker (PDH) is for use on the Plus D interface using version 2/2a
System DOS. The software on tape will automatically transfer PDH to an
empty disk held in drive 1. To do this you will need to load in your System
from disk with RUN (this holds data on how many drives you have, printer
codes etc.). With this loaded, type LOAD "" and play in the tape. After
installation, you should then see the following files on the disk :-

1  +SYS HACK    14 CDE  8192,6656
2  HACKER SJN   39 SPECIAL
3  +SYS GRAPH   14 CDE  8912,6656

The files take up 67 sectors or 33.5K (this leaves 746.5K Space on a double
sided disk for your use).
Turn your computer off, then on again and then type RUN followed by ENTER
to boot up and activate Plus D Hackers initializing process. Next load in a
game or type some basic. Make sure that the PDH Disc is in drive 1, then
press the snapshot button and then number zero. After a short while (9
secs.) you will be presented with a menu of 7 options described on the next
page. Key R will return you back to the place you pressed the snapshot
button. This takes 7 seconds. When selecting the other 6 options from the
main menu, you will need to input Y or N to specify if you want to use
the printer. If you are in 128K mode then you will also be asked for a page
number (see table below).

Paging on the 128K Spectrum

In Spectrum 128K mode the memory layout is set out as 8 areas of 16K. 3 of
these are the normal 16384-65535 48K areas. The other 5 extra RAM areas are
paged into 49152-65535. When inputting a page number on any of the Plus D
Hacker routines use the numbers 16-23. If you are using the Graphic Picture
Searcher then use numbers 0-7.

0  16  NORMAL       49152,16384
1  17  EXTRA RAM1   49152,16384
3  19    "   RAM2   49152,16384
4  20    "   RAM3   49152,16384
6  22    "   RAM4   49152,16384
7  23    "   RAM5   49152,16384


Returning back to basic using key R

If you are playing a computer game and would like to save parts of memory
then go into pokes mode. Enter POKE 23730,23999 and JP to 4535. When you
then return back to a game 'CLEAR 23999 : NEW' comes into force, clearing a
bit of space to enter e.g. SAVE d1 "filename" CODE 24000,41536.
Software using the stack in an unusual way (most of these are scrolling
games) can crash the computer at certain points when you return back using
Key R. This is due to the way the Plus D interface saves registers and
interrupts when you press the snapshot button. Also, returning to 128K mode
will sometimes cause a crash due to a bug in both the Plus D Interface and
the Spectrum 128K.

Key D Disassemble

Input the start address from 0-65535 (128K mode input page no). 0-16383
will disassemble the Plus D ROM/RAM area.
The disassembly routine will cope with the full 696 standard opcodes, plus
a further 102 undocumented Zilog opcodes making a total of 798 opcodes. You
may find BAD OPCODE appearing now and then, indicating a non-existent
opcode. This may be part of graphic data or table maps of some sort. Key M
returns back to the main menu, ENTER will pause disassembly and SPACE lets
you input another address.

Key T Text Listing

The Key controls are the same as 'Disassemble'. The listing is shown as:-

  23296    00 54 45 58 54 0D 06 3A   0TEXT.:
  ^^^^^    ^^^^^^^^^^^^^^^^^^^^^^^   ^^^^^^^
 address        8 hex bytes      32-127 ASCII form

Codes 1-32 and 128-255 are shown as a dot and byte zero as an inverse 0.

Key G Graphic Picture Search

W- Fast forward   Graphics up screen
S-  "   backwards    "     down screen

Z- Fine tune Graphics  up screen
X-  "    "      "      down screen
Q-  "    "   scrolling left
A-  "    "      "      right

E- Alter size of screen upwards
D-  "     "    "   "    downwards
O-  "     "    "   "    to the left
P-  "     "    "   "    to the right

R- Re-input Address
M- Return Back to main menu
0-7 page in Spectrum 128 extra Ram
8 or 9 examine screen 1 in Spectrum 128K mode

C- Colour, Most large graphics with plenty of colour will store the
attributes after the picture data. So if you position the graphic exactly
on the screen, (keys Z,X) you can then press C to show the attributes for
the picture. If random colour is shown then use keys Q,A,O,P to search out
the attributes. SPACE will abort colour mode.

B- Block Screen$ searches for Screen$ or thirds held in memory
   W- Fast forward   through memory
   S-  "   backwards    "      "

   Q- Fine tune forwards
   A-  "    "   backwards
   O-  "    "   to the left
   P-  "    "    "  "  right

   C- Hold down to show colour
   0-7 page in Spectrum 128 extra Ram
   SPACE aborts Block Screen$ mode

Key S Search String

You can input a string of text up to a maximum of 30 characters. Text must
be enclosed in quotes. It does not matter if text to be searched is in
upper or lower case, or if there are spaces between words e.g. if you want
to search for 'Game Over', just enter "GAMEOVER".

Notes:

- Use SYMBOL SHIFT to get a quote.
- Numbers are separated by a comma (use CAPS SHIFT to get a comma).
- Numbers can be in the range of 0-255 (these are treated as a single
  byte). If you place a D before the number, then it would be treated as
  a double byte number (i.e. numbers in the range of 256-65535).
- You can also search for mixed text e.g. "TEXT",13,D128,"S".
- SPACE is the delete key. When text is being searched ENTER will pause
  and M will abort to the main menu.

Key I Infinite Lives Search

This will search for the following opcodes:-

              LD HL,nn
              DEC (HL)

This is a common way to decrease lives. By poking this opcode to NOP (i.e.
byte zero) you can stop the lives counter reaching zero. When the infinite
lives search runs it will generate some addresses. By poking one address
with zero at a time (go into pokes mode to do this) and returning back to
the game, you can see if the poke has given infinite lives. If it hasn't
then poke the next address with zero until you have the correct address
that works.

Key F Find Blocks

This will search out occurrences of blocks of 256 or more bytes of the same
type. First, the start and end address is shown, followed in brackets by
the number of bytes this takes up and the data byte held in that area.

Key B Block Fill

This option allows you to poke a block of bytes for a certain area, e.g. to
clear the UDG's area type 65368 65535 0. In Spectrum 128K mode you will be
asked for a page number.

Key P Pokes

You will see displayed all the registers and stacks used when you pressed
the snapshot button. JP holds the address of the instruction that will be
executed when you return back. The two right hand columns show what is held
in the stack.

- SZ-H-PNC shows the state of the flags S (Sign), Z (Zero), H (Halt carry
reset), P (Parity/overflow), N (Add/subtract) and C (Carry).
- 48K denotes 48K mode and 128 for 128K mode. If you are in 128K mode then
the page number that is being used is shown.
- Registers can be altered by using CAPS SHIFT to highlight the register
and using ENTER to select it. You can then enter the new content.
- If the highlight is a large blue box then you can poke into memory. You
can poke single or double bytes. In 128K mode you'll be asked for a page
no.
- SPACE will abort the pokes input and M will return you to the main menu.

Watch out for the updated version of the Plus D Hacker for the Sam Coupe
computer, which will use the full 80 column mode and other new routines.




----------------------------------------------------------------- NOTES

- This isn't a carbon copy of the original instructions. The layout remains
the same but parts have been re-worded to improve clarity.

- Before activating the PDH, ensure that the PDH disk is inserted in Drive
1. If you press 0 with another disk, you can end up corrupting the disk as
the Plus D ROM looks for a non-existent file (I speak from experience).

- The infinite lives search can turn up pokes some of the time. However, it
can generate pokes that can corrupt a game. It is no replacement for
actually finding the pokes yourself (it doesn't handle DEC A or DEC (IY+n)
structures for example).

Typed in by Adam.


