From f866946be0dfd8ca9f161877e1fcca1814421dea Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 22 Oct 1999 08:18:37 +0000 Subject: [PATCH] 19991022-10:03 GMT+1 Victor Szel --- harbour/ChangeLog | 6 ++++ harbour/source/rtl/fm.c | 73 ++++++++++++++++++++++++++++++++++------- 2 files changed, 68 insertions(+), 11 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 62d90c96f7..db6a8f98d2 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,9 @@ +19991022-10:03 GMT+1 Victor Szel + * source/rtl/fm.c + + MEMORY() function enhanced internally. + ! MEMUSED()/MEMFREE() non-standard functionality moved inside + MEMORY(). + 19991022-09:27 GMT+1 Victor Szel * source/rtl/console.c ! New C syntax bug fixed in hb_setpos() diff --git a/harbour/source/rtl/fm.c b/harbour/source/rtl/fm.c index b9bf1c1add..e37e5244db 100644 --- a/harbour/source/rtl/fm.c +++ b/harbour/source/rtl/fm.c @@ -41,6 +41,9 @@ * hb_xmemcpy() * hb_xmemset() * + * Copyright 1999 Victor Szel + * HB_MEMORY() + * * See doc/license.txt for licensing terms. * */ @@ -276,17 +279,65 @@ void * hb_xmemset( void * pDestArg, int iFill, ULONG ulLen ) HARBOUR HB_MEMORY( void ) { - /* TODO: Implement MEMORY() */ + USHORT uiMode = hb_parni( 1 ); + ULONG ulResult; - hb_retni( 9999 ); + /* TODO: Return the correct values instead of 9999 [vszel] */ + + switch( uiMode ) + { + case 0: /* (Free Variable Space [KB]) */ + ulResult = 9999; + break; + + case 1: /* (Largest String [KB]) */ + ulResult = 9999; + break; + + case 2: /* (RUN Memory [KB]) */ + ulResult = 9999; + break; + + case 3: /* UNDOCUMENTED! (Virtual Memory [KB]) */ + ulResult = 9999; + break; + + case 4: /* UNDOCUMENTED! (Free Expanded Memory [KB]) (?) */ + ulResult = 9999; + break; + + case 101: /* UNDOCUMENTED! (Fixed Memory/Heap [KB]) (?) */ + ulResult = 9999; + break; + + case 102: /* UNDOCUMENTED! (Segments in Fixed Memory/Heap) (?) */ + ulResult = 9999; + break; + + case 103: /* UNDOCUMENTED! (Free Swap Memory [KB]) */ + ulResult = 9999; + break; + + case 104: /* UNDOCUMENTED! (Free Conventional [KB]) */ + ulResult = 9999; + break; + + case 105: /* UNDOCUMENTED! (Used Expanded Memory [KB]) (?) */ + ulResult = ( s_ulMemoryConsumed / 1024 ); + break; + + case 1001: /* Harbour extension (Memory used [bytes]) */ + ulResult = s_ulMemoryConsumed; + break; + + case 1002: /* Harbour extension (Maximum memory used [bytes]) */ + ulResult = s_ulMemoryMaxConsumed; + break; + + default: + ulResult = 0; + } + + hb_retnl( ulResult ); } -HARBOUR HB_MEMUSED() -{ - hb_retnl( s_ulMemoryConsumed ); -} - -HARBOUR HB_MEMMAX() -{ - hb_retnl( s_ulMemoryMaxConsumed ); -} \ No newline at end of file