Dear all,
Do you have any trick to know, in runtime, how many free memory (RAM) there is in the machine?
It could seems a rookie question. But I've been searching in the forum and I can't found any clear response.
Thanks in advanced and cheers,
How many free memory there is in runtime
Take a look at this thread: https://www.z88dk.org/forum/viewtopic.php?id=11000 - it's talking about the CP/M platform but the hints are equally valid for the ZX as well.
Thanks Dom. But I had already tried this command (mallinfo) and it doesn't work for me. I find a compilation error.
I finish testing this code:
The compilation command line is:
The compilation error is:
Would it be possible that I left something?
I finish testing this code:
Code: Select all
#include <input.h>
#include <stdio.h>
#include <stdarg.h>
#include <alloc.h>
...
void menu_start() {
unsigned int total,largest;
tool_cleanScreen(INK_BLACK|PAPER_WHITE, 32);
tool_printStr(6, 4, INK_BLACK|PAPER_WHITE, "Free Memory:");
mallinfo(&total,&largest);
tool_printNum(20, 4, 7, total, 7);
sp1_UpdateNow();
in_wait_key();
...
Code: Select all
zcc +zx -v -m -startup=31 --opt-code-size -clib=sdcc_iy -SO3 @../src/main.lst -pragma-include:../src/zpragma.inc -o gamesp1 -create-app
Code: Select all
PROCESSING ../src/menu.c
zsdcpp -iquote"." -D__Z88DK -D__SPECTRUM -DSPECTRUM -D__SPECTRUM__ -D__Z80 -DZ80 -D__SDCC -D__SDCC_IY -isystem"C:\mio\soft\dev\z80\z88dk-win32-1.99C\lib\config\\..\..\\include\_DEVELOPMENT\sdcc" -D__SDCC "../src/menu.c" "C:\Users\javi\AppData\Local\Temp\zcc605813.i2"
zpragma < "C:\Users\javi\AppData\Local\Temp\zcc605813.i2" > "C:\Users\javi\AppData\Local\Temp\zcc605813.i"
zsdcc --constseg rodata_compiler --reserve-regs-iy -mz80 --no-optsdcc-in-asm --c1mode --emit-externs --no-c-code-in-asm --opt-code-size --no-peep --peep-file "C:\mio\soft\dev\z80\z88dk-win32-1.99C\lib\config\\..\..\/libsrc/_DEVELOPMENT/sdcc_peeph_cs.3" < "C:\Users\javi\AppData\Local\Temp\zcc605813.i" -o "C:\Users\javi\AppData\Local\Temp\zcc605813.opt"
../src/menu.c:20: warning 112: function 'mallinfo' implicit declaration
../src/menu.c:20: error 101: too many parameters
../src/menu.c:28: warning 85: in function menu_start unreferenced local variable : 'largest'
Hi again,
I continued reading and I found that the new lib use other command.
Thus I changed my code with this:
And It works !!! Thanks.
I continued reading and I found that the new lib use other command.
Thus I changed my code with this:
Code: Select all
#include <stdlib.h>
#include <string.h>
#include <stropts.h>
#include <intrinsic.h>
#include <malloc.h>
...
void visit_heap_block(heap_info_t *hi) {
if(hi->type==2) {
tool_printStr(6, 4, INK_BLACK|PAPER_WHITE, "Free Memory:");
tool_printNum(20, 4, 7, hi->size, 6);
}
}
void menu_start() {
unsigned int total,largest;
zx_border(INK_YELLOW);
tool_cleanScreen(INK_BLACK|PAPER_WHITE, 32);
tool_printStr(8, 2, INK_BLACK|PAPER_WHITE, "== M E N U ==");
heap_info(_malloc_heap, visit_heap_block);
sp1_UpdateNow();
in_wait_key();
...