BigHomie Posted August 7, 2017 Share Posted August 7, 2017 Hello, for a script I'm workong on I needed variables that exceed the standard memory space. I got interested in using Deji's SuperVars. Before getting back to work I need to know what is the maximum memory space to be used and how many variables could be gained from this. I'd appreciate any help. With best regards, BigHomie Link to comment Share on other sites More sharing options...
Guest Posted August 12, 2017 Share Posted August 12, 2017 You can use the called "thread memory", so saving values to the script's body and freeing the local variables. The size depend to you needs. Link to comment Share on other sites More sharing options...
BigHomie Posted August 12, 2017 Author Share Posted August 12, 2017 So is the number theoreticly unlimited? Link to comment Share on other sites More sharing options...
Guest Posted August 12, 2017 Share Posted August 12, 2017 (edited) You can reserve a amount of blank bytes in script's body; like the following example. {$CLEO} // the respective script's code... 0AC6: {pacSpace} [email protected] = GetLabelAddress {uliLabel} @__nop__128bytes :__nop__1byte hex __nop ; 00 // 1 byte, 8 bits. end//hex :__nop__2bytes hex __nop ; 00 00 // 2 bytes, 16 bits. end//hex :__nop__4bytes hex __nop ; 00 00 00 00 // 4 bytes, 32 bits. end//hex :__nop__128bytes hex __nop ; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // 16 bytes, 128 bits. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // 32 bytes, 256 bits. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // 48 bytes, 384 bits. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // 64 bytes, 512 bits. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // 80 bytes, 640 bits. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // 96 bytes, 768 bits. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // 112 bytes, 896 bits. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // 128 bytes, 1024 bits. end//hex The opcode 0x0AC6 returns a pointer to the array of bytes at label '__nop__128bytes' that you can reduce or extend according to your needs. You also can form smaller others (i recommend it have 4 bytes for better and safe working). For example, you can reserve bytes for each key from a ".ini file" then access them by read/write its memory addresses (opcodes 0x0A8C and 0x0A8D) returned by opcode 0x0AC6. Pay attention in size when read and/or write to avoid override exceptional data. Having 32 variables per thread (excluding timers), considering everyone have 4 bytes, 128 bytes is enough to contain all data of TLS. Edited August 12, 2017 by Guest Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now