Very good.
I would add to the functions the offset parameters (starting from left to right) with the word width (byte,word,long).
This because same parsimonius game could use a word to memoryze two small counters (each 2 bytes) and we would lock only the second group.
So
READ([b,w,l]<OFFSET>,<FINGERPRINT>)
WRITE([b,w,l]<OFFSET>,<VALUE>,<FINGERPRINT>)
FREEZE([b,w,l]<OFFSET>,<FINGERPRINT>)
LISTEN([b,w,l]<OFFSET>,<FINGERPRINT>)
STARTLISTEN([b,w,l]<OFFSET>,<FINGERPRINT>,<frequency>,<hook function>)
Moreover i would add debug functions like
ADDRESS(<FINGERPRINT>)
PRINT(<ANYTHING>)
In case of Gods
FINGERPRINT(1,'5378xxxx6a00feca4eb9xxxxxxxx3f003f01323c0064303c002a4eb9')
FREEZE(w0,FINGERPRINT)
work ok
but
FINGERPRINT(1,'5378xxxx6a00feca4eb9xxxxxxxx3f003f01323c0064303c002a4eb9')
FREEZE(b1,FINGERPRINT)
works ok too because the live number is on the second byte
If the game would memoryze two different values in the word we would have (for example)
READ(b0,FINGERPRINT)
FREEZE(b1,FINGERPRINT)
We would like to write a long word (like adding 8 milions to money eheh)
We would have (if FINGERPRINT points to a long)
WRITE(l0,8123123,FINGERPRINT)
or in the middle of the long for whatever reason
WRITE(b2,80,FINGERPRINT)
|