To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / 2712
2711  |  2713
Subject: 
Re: anyone know how to check free space on RCX?
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Thu, 11 Jul 2002 16:59:09 GMT
Viewed: 
2270 times
  
While the declaration for mm_free_mem is
  int mm_free_mem(void)
The fact is that the RCX has only 32K of memory available.  32K in hex is
0x8000... there's never a need for more than 4 digits in hex.  Looking at
key_handler() in kernel/program.c (the system key handler), the code for
displaying free memory is (kernel v0.2.6, no patches):

/*
* pressing the "view" button cycles through a display of the
* amount of the amount of free memory (in decimal and
* hexadecimal) and battery power. If a button other than "view"
* is pressed while cycling through, we handle that button
* ("goto gotkey").
*/
cputs("free");
if ((c = getchar()) != KEY_VIEW) goto gotkey;
lcd_int(mm_free_mem());
if ((c = getchar()) != KEY_VIEW) goto gotkey;
cputw(mm_free_mem());
if ((c = getchar()) != KEY_VIEW) goto gotkey;


The first call to mm_free_mem() is displayed as an integer via lcd_int(),
the second call is displayed as a hexword via cputw().  The two values are
the same... mm_free_mem() is just being called twice.

-Jason



In lugnet.robotics.rcx.legos, Joseph Woolley writes:
Albert Huang,

Sorry for the confusion.  "most significant" = upper 16 bits and "least
significant" = lower 16 bits (the free memory is a 32 bit value).

If you write the values out, you will get the 32 bit value (both values are
hex) ... for example:

999C + 54A0 = 999C54A0

// Joe

"Albert Huang" wrote
Joseph,

what do you mean by most significant / least significant?  I'm under the
impression that those two calls just display the same value, in decimal
first and then in hex.

Cheers,
Albert





Message has 1 Reply:
  Re: anyone know how to check free space on RCX?
 
That is very interesting Jason. It is interesting that mm_free_mem() returns a 16bit value using a 32bit return code. Both int and long are 32bit value on most computers/compilers these days; short would be a 16bit value; and char would be an 8bit (...) (22 years ago, 11-Jul-02, to lugnet.robotics.rcx.legos)

Message is in Reply To:
  Re: anyone know how to check free space on RCX?
 
Albert Huang, Sorry for the confusion. "most significant" = upper 16 bits and "least significant" = lower 16 bits (the free memory is a 32 bit value). If you write the values out, you will get the 32 bit value (both values are hex) ... for example: (...) (22 years ago, 11-Jul-02, to lugnet.robotics.rcx.legos)

13 Messages in This Thread:



Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR