| | Re: anyone know how to check free space on RCX? Joseph Woolley
|
| | kenneth, I believe the code you are looking for is used in program.c (for LegOS v0.2.6) When you press the View button (with no program running) LegOS will show you "FREE", press again, you will get the most significant portion of the free memory (...) (22 years ago, 10-Jul-02, to lugnet.robotics.rcx.legos)
|
| | |
| | | | Re: anyone know how to check free space on RCX? Albert Huang
|
| | | | (...) v0.2.6) When you press the View button (with no program running) LegOS will (...) 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 (...) (22 years ago, 11-Jul-02, to lugnet.robotics.rcx.legos)
|
| | | | |
| | | | | | Re: anyone know how to check free space on RCX? Joseph Woolley
|
| | | | 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)
|
| | | | |
| | | | | | Re: anyone know how to check free space on RCX? Jason Clark
|
| | | | 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 (...) (22 years ago, 11-Jul-02, to lugnet.robotics.rcx.legos)
|
| | | | |
| | | | | | Re: anyone know how to check free space on RCX? Joseph Woolley
|
| | | | 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)
|
| | | | |
| | | | | | Re: anyone know how to check free space on RCX? John A. Tamplin
|
| | | | | (...) int is defined as the natural width of the processor, which on a 16-bit processor is 16 bits. longs are 64 bits on some machines as well, so you can't assume it is always 32 bits -- if your code cares, use sizeof. (...) 32-bit math on the H8 (...) (22 years ago, 12-Jul-02, to lugnet.robotics.rcx.legos)
|
| | | | | |
| | | | | | Re: anyone know how to check free space on RCX? Jason Clark
|
| | | | (...) According to config/h8300/h8300.h in the gcc sources, int is 32bit for the h8 cross compiler. I believe the reason mm_free_mem() returns an int is because the memory manager stores the size of each free block as size_t, which is defined in (...) (22 years ago, 12-Jul-02, to lugnet.robotics.rcx.legos)
|
| | | | |
| | | | | | Re: anyone know how to check free space on RCX? Jochen Hoenicke
|
| | | | | (...) My sources (gcc-3.0) say: #define INT_TYPE_SIZE (TARGET_INT32 ? 32 : 16) A short experiment revealed that sizeof(short)=sizeof(int)=2, sizeof(long)=4. So int is normally 16bit. Only with the switch "-mint32" I get 32 bit ints. This is with a (...) (22 years ago, 12-Jul-02, to lugnet.robotics.rcx.legos)
|
| | | | | |
| | | | | | | Re: anyone know how to check free space on RCX? Jason Clark
|
| | | | | | (...) Thanks for conducting the test... being 200+ miles away from my RCX this was bugging me :). My sources (gcc-2.95.2) have the same #define... but with the following about 120 lines earlier: /* Make int's 32 bits. */ #define TARGET_INT32 (...) (22 years ago, 12-Jul-02, to lugnet.robotics.rcx.legos)
|
| | | | | | |
| | | | | | Re: anyone know how to check free space on RCX? Michael Ash
|
| | | | (...) This can't be right. I'm about 99% sure that all of the ints I've used with my legOS programs have been 2 bytes. When using LNP to send RCX ints to a PC, for example, you have to use short on the PC end of things to make it all work right. (...) (22 years ago, 12-Jul-02, to lugnet.robotics.rcx.legos)
|
| | | | |
| | | | | | Re: anyone know how to check free space on RCX? Michael Obenland
|
| | | | (...) The header is ok, but int is 2 bytes = 16 bit. You can check this with this highly optimized program: #include <conio.h> int main(int argc, char *argv[]) { lcd_int( sizeof( int ) ); for(;;) ; return 0; } And in the kernel sources, mm.c says (...) (22 years ago, 12-Jul-02, to lugnet.robotics.rcx.legos)
|
| | | | |
| | | | | | Re: anyone know how to check free space on RCX? Joseph Woolley
|
| | | | John A. Tamplin, Jason Clark, Jochen Hoenicke and Michael J Ash: Thank you all for addressing these issues! It all make sense after reading the preceeding messages. I appologize for causing confusion. I am glad, however, to get it straight. ??So (...) (22 years ago, 12-Jul-02, to lugnet.robotics.rcx.legos)
|
| | | | |