Menu

Code Header Format

awsdert
tsprccll iiiiiiii

t

Code Type
0 = Write
1 = Copy
2 = Increment
3 = Decrement
4 = Test
5 = List

s

Code Size
0 = 8bit
1 = 16bit
2 = 32bit
3 = 64bit
Add 8 for a 64 bit address

p

Pointer Depth
0 = Fixed Address
1 to F = Overwrite Address with value at Address this many times

r

Ram Index
The index of the ram sectors available for your Application / File

cc

Code Type = Test

The type of Test to peform
Use 01 for Address value == Code Value
Use 10 for Address value != Code Value
Use 02 for Address value > Code Value
Use 20 for Address value >= Code Value
Use 04 for Address value < Code Value
Use 40 for Address value <= Code Value
Use 08 for Address value Contains Code Value


Example:
Address Value is 7F
Code 1 Value is 80
Code 2 Value is 20
7F & 80 = false
7F & 20 = true because 7F is made from 0x10 + 0x20 + 0x40 + 0x01 + 0x02 + 0x04 + 0x08 where 20 is the 0x20 used to make 7F


Use 80 for Address Value >= Code Value 1 AND Address Value <= Code Value 2

Code Type = List

Number of Values to write

Example:

52000910 00000071
00000000 0054E3A0
FFFFFFFF FFFFFFFF
FFFFFFFF FFFFFFFF
FFFFFFFD FFFFFFFF
FFFFFFFF FFFFFFFF
00000FFF 00000000

Write these 9 values to memory 16 times incrementing 54E3A0 by ( 71 * 4 )

FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFD
FFFFFFFF
FFFFFFFF
FFFFFFFF
00000FFF

If Code Size was 1 then the List would be

FFFF
FFFF
FFFF
FFFF
FFFF
FFFF
FFFF
FFFF
FFFF

and the address would be incremented by ( 71 * 2 )

This is shorter and faster than instances where you would normally use a series of write codes like this:

02000010 00000071
FFFFFFFF 0054E3A0
00000000 00000000
02000010 00000071
FFFFFFFF 0054E3A4
00000000 00000000
02000010 00000071
FFFFFFFF 0054E3A8
00000000 00000000
02000010 00000071
FFFFFFFF 0054E3AC
00000000 00000000
02000010 00000071
FFFFFFFD 0054E3B0
00000000 00000000
02000010 00000071
FFFFFFFF 0054E3B4
00000000 00000000
02000010 00000071
FFFFFFFF 0054E3B8
00000000 00000000
02000010 00000071
FFFFFFFF 0054E3BC
00000000 00000000
02000010 00000071
00000FFF 0054E3C0
00000000 00000000

This is long and / or hard to modify for anyone writing hacks.

ll

Code Type != Test

How many times to Loop the code
00 or 01 = Do code once
02 to FF = Do code 2 to 255 times

Code Type == Test

0 = Skip rest of codes if test returns false
1 to FF = Skip this many codes if test returns false
These will embed as well so all codes covered by an embedded Test will be added to the number of codes to skip.

Example:

  • Write
  • Test = 4 Codes
    • Copy
    • Test = 0 Codes
    • Write
    • Test = 1 Code
      • Write
  • Copy
  • Test = 0 Codes

When Test 1 = false it will skip all embedded codes until the second Copy
When Test 1 = true but Test 2 = false then both Copy codes will occur but not Write 2 and Write 3
When Test 1 & Test 2 = true but Test 3 = false then only the 3rd Write Code will not occur
When Test 4 = false then any following codes and child hacks will be ignored

iiiiiiii

Increment the Address by this times Code Size ( 1 for 8bit, 2 for 16bit, 4 for 32bit or 8 for 64bit )

Example of Write code:

"Max Gil"
10000001 00000000
02000000 00000000
05F5E0FF 0054C008

10000001 00000000 means it is first child of the Master Hack and it should be used, any child hacks would not be treated as radio hacks.
02000000 00000000 means the code writes a 32bit value into the first defined ram using a fixed 32bit address that is not looped and incremented.
05F5E0FF 0054C008 means the value 05F5E0FF is written to the address 54C008


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.