This is an old revision of the document!
SD card operations
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: “:3:/Path/to/Filename”
As a list: {'Path' 'to' 'Filename'}
Storing/Recalling objects
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
“:3:/Test/Spnum”
SDSTO
and to recall this same file contents to the stack,
“:3:/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
).
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:
- Copy the program file (as a text file, delimited only by the program chevrons «») to the SD card,
- With the SD card back in the 50g, open the file:
“:3:filename” SDOPENRD
, returned to the stack is the file handle (#xh),EN
(to duplicate the file handle), - Determine the characters (or bytes) to read:
SDFILESIZE
SWAP
SDREADTEXT
STR→
#xh SDCLOSE
, where #xh is the file handle from step 2.
To load program files into a text editor from the 50g:
- Put program on stack as string (
→STR
), - Open an empty text file on the SD card for writing (at this time, there isn't a command to create an empty text file):
“:3:newfile:” SDOPENWR
, a file handle is returned to the stack, SDWRITETEXT
#xh SDCLOSE
, where #xh is the file handle from step 2.
Directory operations
Command | Purpose | Example |
---|---|---|
SDCRDIR | Create a new directory | “:3:/Newdir1” SDCRDIR |
SDCHDIR | Change to directory | “:3:/Newdir1” SDCHDIR |
SDPATH | Current directory path | SDPATH |
SDUPDIR | Back up one directory level | SDUPDIR |
SDPGDIR | Delete a directory (must be empty) | “:3:/Newdir1” SDPGDIR |
SDSETPART | Set the active partition (0-3) | 3 SDSETPART |
File operations
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 | “:3:/Test/sourcefile” “:3:/Test/destfile” SDCOPY |
SDMOVE | Move a file | “:3:/Test/sourcefile” “:3:/Test/destfile” SDMOVE |
SDOPENRD | Open a file for read | “:3:/Test/file” SDOPENRD , returns file handle (#xh) |
SDOPENWR | Open a file for write | “:3:/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 |
Maintenance and status
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 | “:3:/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 |