manual:chapter4:card


Over 30 commands dedicated to working with secure digital (SD) offline storage are available. Both SD and SDHC cards are supported. The SD card can have up to 4 partitions, denoted C:, E:, F:, G: on a PC; and :3:, :4:, :5:, and :6: on the 50g. Paths and filenames (case-sensitive) are specified in the following ways on the 50g (for the first partition, :3:):

As a string (including the partition number): “:3:Path/to/Filename”

As a string (default partition): “Path/to/Filename”

As a list: {'Path' 'to' 'Filename'}


SDSTO, store an object

SDRCL, recall an object

So, for example, to store 42.5 to the file 'Spnum' in the directory Test (assuming it was already created),

42.5

“Test/Spnum”

SDSTO

and to recall this same file contents to the stack,

“Test/Spnum”

SDRCL

(Note that the forward slash symbol, /, has the shortcut AL-RS-DIV or AL-RS-Z).

Alternatively, if a sub directory is already set (see Directory operations below using SDCHDIR), then the above example of storing 42.5 to the file Spnum can be done like this: 42.5 'Spnum' SDSTO (and similarly for SDRCL). Note that single quotes or double quotes may be used, the latter giving more flexibility to filenames than the former which would just be a variable name. To specify a partition (the first one, or current partition, is used by default), preface the object name with the partition number, e.g., “:4:Test/Spnum”.

Handling of RPL code

The commands SDSTO and SDRCL can be used to store program files on the SD card. However, as SDSTO uses a binary encoding scheme, the program file cannot be easily read on a PC using a standard text editor (although if loading into the emulator on a PC, SDRCL should work fine).

To load program files onto the 50g from a text file (created on a PC, for example), the following procedure is recommended:

  1. Copy the program file (as a text file, delimited only by the program chevrons «») to the SD card,
  2. With the SD card back in the 50g, open the file: “filename” SDOPENRD, returned to the stack is the file handle (#xh), EN (to duplicate the file handle),
  3. Determine the characters (or bytes) to read: SDFILESIZE
  4. SWAP
  5. SDREADTEXT
  6. STR→
  7. #xh SDCLOSE, where #xh is the file handle from step 2.

To load program files into a text editor from the 50g:

  1. Put program on stack as string (→STR),
  2. Open an empty text file on the SD card for writing: “newfile” SDOPENWR, a file handle is returned to the stack,
  3. SDWRITETEXT
  4. #xh SDCLOSE, where #xh is the file handle from step 2.

Command Purpose Example
SDCRDIR Create a new directory “Newdir1” SDCRDIR
SDCHDIR Change to directory “Newdir1” SDCHDIR
SDPATH Current directory path SDPATH
SDUPDIR Back up one directory level SDUPDIR
SDPGDIR Delete a directory (must be empty) “Newdir1” SDPGDIR
SDSETPART Set the active partition (0-3) 3 SDSETPART

Command Purpose Example
SDSTO Store an object to a file 42.5 'Spnum' SDSTO
SDRCL Recall an object (file) 'Spnum' SDRCL
SDPURGE Delete a file 'Spnum' SDPURGE
SDCOPY Copy a file “Test/sourcefile” “Test/destfile” SDCOPY
SDMOVE Move a file “Test/sourcefile” “Test/destfile” SDMOVE
SDOPENRD Open a file for read “Test/file” SDOPENRD, returns file handle (#xh)
SDOPENWR Open a file for write (create new file if it doesn't exist) “Test/file” SDOPENWR, returns file handle (#xh)
SDOPENMOD Open a file for byte modification
SDOPENAPP Open a file for append
SDFILESIZE Return file size in bytes (given file handle) #xh SDFILESIZE
SDCLOSE Close an open file (given file handle) #xh SDCLOSE
SDREADTEXT Read characters (nchars) from a file (given file handle) nchars #xh SDREADTEXT
SDWRITETEXT Write string to a file (given file handle) “string” #xh SDWRITETEXT
SDREADLINE Read a line of text (including newline) from file #xh SDREADLINE
SDSEEKSTA Move pointer in file (measured relative to file start) offset #xh SDSEEKSTA
SDSEEKEND Move pointer in file (measured relative to file end) offset #xh SDSEEKEND
SDSEEKCUR Move pointer in file (measured relative to current position) offset #xh SDSEEKCUR
SDTELL Return pointer position in file (relative to file start) #xh SDTELL
SDEOF Returns true (1) if last operation hit end of file #xh SDEOF

Command Purpose Example
SDFREE Report free space on SD card (in bytes) SDFREE
SDRESET Mount card (safe to remove) SDRESET
SDOPENDIR Open a directory for gathering file or sub directory information “Test” SDOPENDIR
SDNEXTFILE Display file statistics in directory 1) (file handle from SDOPENDIR) #xh SDNEXTFILE
SDNEXTDIR Display sub directory statistics within current directory #xh SDNEXTDIR
SDNEXTENTRY Step through every entry in the current directory (files or directories) #xh SDNEXTENTRY


1)
Returns 5 objects to stack: filename, underscore string, size (bytes), last modification date (DD.MMYYYY), last modification time (HH.MMSS); set 6 digits to display.
  • manual/chapter4/card.txt
  • Last modified: 2017/06/05 19:28
  • by smartin