| Home CBM ASCII-X BASIC Disk Commands Enter RUN mode Program Format Secret Variables Variable Format Expressions Keywords (divide) (equal) (less) (minus) (more) (multiply) (plus) (power) Abs And Append Asc Atn Auto Backup Bank Begin Bend Bload Boot Box Bsave Bump Catalog Char Chr Circle Close Clr Cmd Collect Collision Color Concat Cont Copy Cos Data Dclear Dclose Dec Def Delete Dim Directory Dispose Dload Do Dopen Draw Ds Ds string Dsave Dverify El Else End Envelope Er Err Exit Exp Fast Fetch Filter Fn For Fre Get Get num Getkey Go Gosub Goto Graphic Gshape Header Help Hex If Input Input num Instr Int Joy Key Left Len Let List Load Locate Log Loop Mid Monitor Movspr New Next Not Off On Open Or Paint Peek Pen Pi Play Pointer Poke Pos Pot Print num Pudef Quit Rclr Rdot Read Record Rem Rename Renumber Restore Resume Return Rgr Right Rlum Rnd Rreg Rspcolor Rsppos Rsprite Run Rwindow Save Scale Scnclr Scratch Sgn Sin Sleep Slow Sound Spc Sprcolor Sprdef Sprite Sprsav Sqr Sshape St Stash Step Stop Str Swap Sys Tab Tan Tempo Then Ti Ti string To Trap Troff Tron Until Using Usr Val Verify Vol Wait While Width Window Xor Syntax Tokens C128 D64plus Disk Escape Codes Hardware PCxface PETSCII Pet2asc Futurama IBM PC-AT Contact Games Glossary Hall of fame Hall of shame Miscellaneous Privacy policy Programming Twisty puzzles |
FRE ( bank )
* All BASIC functions actually return a floating-point number, but the number is derived (converted) from the types shown.
Return the amount of memory (in bytes) available to BASIC in the specified BANK.
The FRE function obstensibly reports the amount of free memory available to BASIC. It has the side-effect of calling the BASIC garbage collection routine if bank refers to the location of strings (this frees unused string memory, but can be quite slow in versions 1.x and 2.x of BASIC). There is a bug in the 1.x and 2.x versions of BASIC; the returned value is a signed integer. This means if the real amount of available memory is 32768 or more bytes, the bytesFree will be a negative value! For example, after power-up of the Commodore 64, FRE reports -26627 bytesFree. It looks like you ran out of memory and owe somebody some bytes! In such cases, adding 65536 to the returned bytesFree gives the correct value. In the example of the C64, this math would give the correct value 38909 bytes (which does not match the start-up message because of a bug in the start-up code). On machines with 64K or less RAM, the bank parameter may be any numeric value and the returned value refers to all available memory. Other machines require a valid bank value (if bank is a floating-point value it will effectively be converted with INT); for the Commodore 128:
For the CBM-II series the bank value should be 1 to 4 (other legal values will report 0 bytesFree). Arrangement of BASIC memory will depend on how many banks of RAM are installed:
If the bank is not a numeric value, TYPE MISMATCH ERROR is generated. Otherwise, if the value is not legal (see table above), an ILLEGAL QUANTITY ERROR occurs. Examples (C128):
Examples (CBM 710):
Examples (Plus/4):
© H2Obsession, 2014 |