Forum - A few Pokes to a game. Program Hacman96.

ZX Review #7-8-9-10
(C) Promzelev E., Togliatti


   I'm a little programming languages ​​like Assembler. I can 
not decide gain a great program.


   Now I'll give you some POKES, which I found through my 
program in the machine code named "Hacker Man'96".

It is after POKES. These
POKES checked me.

STORM LORD 32564,255 - life
COLISEUM 55431,255 - life
WELL'S FARGO 51709,255 - life in

                         both
FROST BYTES 27484,255 - life.

       POKE to insert a 6 string.


   You wrote that you do not need to send POKES, which have 
already been published. Those POKES, which

I gave you, I have found through my program. For example, in
FROST BYTES you do other
POKES, perhaps you there indefinitely, not only lives but also
Cartridges and time. But POKE to
FROST BYTES, which I cited, the
You are not printed.
140.

    Program HACKER MAN'96

          (HACMAN96)


          ORG 65000

          LD L, 3

          PUSH HL

          LD A, 2

          CALL 5633

          LD A, 22

          RST 1916

          LD A, 8

          RST 1916

          LD A, 0

          RST 1916

          JR PRINT1
RETURN POP HL

          LD BC, 41367

          LD DE, 24000
LOOP LD A, (DE)

          CP 1962

          JR NC, LOOP1

          JR CIKL
LOOP2 INC DE

          LD A, (DE)

          CP L

          JR NC, LOOP3
LOOP4 DEC DE

          LD A, (DE)
CIKL DEC BC

          INC DE

          LD A, B

          OR C

          JR NZ, LOOP

          RET
LOOP1 CP 1963

          JR NC, CIKL

          JR LOOP2
LOOP3 INC HL

          CP L

          DEC HL

          JR C, PRINT

          JR LOOP4
PRINT PUSH BC

          PUSH HL

          PUSH DE

          PUSH DE

          POP BC

          CALL 11563

          CALL 11747

          LD A, 32

          RST 1916

          POP DE

          POP HL

          POP BC

          JR LOOP4
RETURNS JR RETURN
PRINT1 LD A, 72

          RST 1916

          LD A, 97

          RST 1916

          LD A, 99

          RST 1916

          LD A, 107

          RST 1916

          LD A, 101

          RST 1916

          LD A, 114

          RST 1916

          LD A, 32

          RST 1916

          LD A, 77

          RST 1916

          LD A, 97

          RST 1916

          LD A, 110

          RST 1916

          LD A, 32

          RST 1916

          LD A, 57

          RST 1916

          LD A, 54

          RST 1916

          LD A, 32

          RST 1916

          LD A, 32

          RST 1916

          LD A, 74

          RST 1916

          LD A, 65
140.

          RST 1916

          LD A, 67

          RST 1916

          LD A, 75

          RST 1916

          LD A, 32

          RST 1916

          LD A, 78

          RST 1916

          LD A, 79

          RST 1916

          LD A, 82

          RST 1916

          LD A, 77

          RST 1916

          LD A, 65

          RST 1918

          LD A, 78

          RST 1916

          LD A, 13

          RST 1916

          LD A, 244

          RST 1916

          LD A, 76

          RST 1916

          LD A, 73

          RST 1916

          LD A, 70

          RST 1916

          LD A, 69

          RST 1916

          LD A, 32

          RST 1916

          LD A, 48

          POP HL

          ADD A, L

          PUSH HL

          CP 1958

          JR NC, LPS

          RST 1916
LPS LD A, 13

          RST 1916

          JR RETURNS
2

   This program can be downloaded
in any address, it moves. Its length is 193 bytes, so I think 
its better ship in the printer buffer at 23,296. If the buffer 
is occupied, then possible and in the display area, but

only at 16384, as
the program displays the addresses found in the middle of the 
screen. In one of these addresses with a probability

80% of the recorded number of lives or ammunition (depending on 
the that you set in the register L at the beginning of the 
program). 


   Example of how to use this
program:

1. Download the game.
2. Run it and remember to
   lichestvo lives.
3. Reset the game and reload it

   loader.
4. In the loader after all the LOAD

   Put a STOP.
5. Start the loader and ship

   on.
6. Once the boot loader
   tanovitsya, download program
   Therefore HACMAN96.
7. In one place the load address

   by POKE the number of lives

   game.
8. Start HACMAN at

   loading.
9. HACMAN will issue:

HACKER MAN 1996 JACK NORMAN (that's me)
POKE LIFE X
ADDR ADDR ADDR ADDR ...

10. Write down on paper all Adre
   sa (there are a few). Then

   insert these addresses for one
   nomu as POKES. One of them,

   most likely one that

   you need. Such codes

   BASIC program searches all

   POKES possible in 40 minutes,

   and HACMAN - for a second!


   Ca. Ed.: And again, should be addressed
free optimization software. Firstly, in
This program can be seen such obvious things like LD A, 0, 
which must be replaced by XOR A or SUB A - the result is the 
same but it takes up 1 byte smaller and faster

holds. Then you need to remind our readers about how to display 
the an entire row. About it, incidentally, was written in our 
book on machine code. Her Address - # 203C. Before the call is 
necessary in register DE to put the address output lines, and 
in BC - its length. Also, there should be replaced by a 
sequence of commands of the form 


          JR C, L1

          JR L2
L1
...............

on the same team, in this case JR NC, L2.
Finally, our reader, apparently did not know
of the fact that after executing the command
CP flag is set on Z, if the comparable numbers are equal, and 
cleared, if not equal.


   Dear Eugene! We do not intend to
offend you, we just want to tell
you your mistakes so that you and others are not doing them in 
the future. But in general, the program very useful for those 
occasions when the program takes all the memory and load 
monitor does not seem possible. This is especially true for 
owners of 48K machines. A little bit about how this program 
works. She looks at the addresses 24000 - 65367 command

LD A, n, where n - the number given in the case L at the 
beginning of the program. You guessed it, this number 
corresponds to the number lives in the program. Finding such a 
command, the program displays the address at which there is n. 
By the way, this program can be make another revision - should 
seek before the end of memory, that is, to the address 65535.

For this command LD BC, 41367 after a label
RETURN must be replaced by LD BC, 41536.


           *