Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
manual:chapter4:card [2017/06/05 18:56] smartin [SD card operations] |
manual:chapter4:card [2017/06/05 19:28] (current) smartin [SD card operations] |
=====SD card operations===== | =====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) which include the partition number are specified in the following ways on the 50g (for the first partition, '':3:''): | 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 string (including the partition number): ''":3:Path/to/Filename"'' |
| |
| As a string (default partition): ''"Path/to/Filename"'' |
| |
As a list: ''{'Path' 'to' 'Filename'}'' | As a list: ''{'Path' 'to' 'Filename'}'' |
''42.5'' | ''42.5'' |
| |
''":3:/Test/Spnum"'' | ''"Test/Spnum"'' |
| |
''SDSTO'' | ''SDSTO'' |
and to recall this same file contents to the stack, | and to recall this same file contents to the stack, |
| |
''":3:/Test/Spnum"'' | ''"Test/Spnum"'' |
| |
''SDRCL'' | ''SDRCL'' |
(Note that the forward slash symbol, /, has the shortcut **AL-RS-DIV** or **AL-RS-Z**). | (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''). | 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=== | ===Handling of RPL code=== |
| |
- Copy the program file (as a text file, delimited only by the program chevrons «») to the SD card, | - 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), | - 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), |
- Determine the characters (or bytes) to read: ''SDFILESIZE'' | - Determine the characters (or bytes) to read: ''SDFILESIZE'' |
- ''SWAP'' | - ''SWAP'' |
| |
- Put program on stack as string (''→STR''), | - Put program on stack as string (''→STR''), |
- Open an empty text file on the SD card for writing: ''":3:/newfile" SDOPENWR'', a file handle is returned to the stack, | - Open an empty text file on the SD card for writing: ''"newfile" SDOPENWR'', a file handle is returned to the stack, |
- ''SDWRITETEXT'' | - ''SDWRITETEXT'' |
- ''#xh SDCLOSE'', where #xh is the file handle from step 2. | - ''#xh SDCLOSE'', where #xh is the file handle from step 2. |
| |
^ Command ^ Purpose ^ Example ^ | ^ Command ^ Purpose ^ Example ^ |
| ''SDCRDIR'' | Create a new directory | ''":3:/Newdir1" SDCRDIR'' | | | ''SDCRDIR'' | Create a new directory | ''"Newdir1" SDCRDIR'' | |
| ''SDCHDIR'' | Change to directory | ''":3:/Newdir1" SDCHDIR'' | | | ''SDCHDIR'' | Change to directory | ''"Newdir1" SDCHDIR'' | |
| ''SDPATH'' | Current directory path | ''SDPATH'' | | | ''SDPATH'' | Current directory path | ''SDPATH'' | |
| ''SDUPDIR'' | Back up one directory level | ''SDUPDIR'' | | | ''SDUPDIR'' | Back up one directory level | ''SDUPDIR'' | |
| ''SDPGDIR'' | Delete a directory (must be empty) | ''":3:/Newdir1" SDPGDIR'' | | | ''SDPGDIR'' | Delete a directory (must be empty) | ''"Newdir1" SDPGDIR'' | |
| ''SDSETPART'' | Set the active partition (0-3) | ''3 SDSETPART'' | | | ''SDSETPART'' | Set the active partition (0-3) | ''3 SDSETPART'' | |
| |
| ''SDRCL'' | Recall an object (file) | '''Spnum' SDRCL'' | | | ''SDRCL'' | Recall an object (file) | '''Spnum' SDRCL'' | |
| ''SDPURGE'' | Delete a file | '''Spnum' SDPURGE'' | | | ''SDPURGE'' | Delete a file | '''Spnum' SDPURGE'' | |
| ''SDCOPY'' | Copy a file | ''":3:/Test/sourcefile" ":3:/Test/destfile" SDCOPY'' | | | ''SDCOPY'' | Copy a file | ''"Test/sourcefile" "Test/destfile" SDCOPY'' | |
| ''SDMOVE'' | Move a file | ''":3:/Test/sourcefile" ":3:/Test/destfile" SDMOVE'' | | | ''SDMOVE'' | Move a file | ''"Test/sourcefile" "Test/destfile" SDMOVE'' | |
| ''SDOPENRD'' | Open a file for read | ''":3:/Test/file" SDOPENRD'', returns file handle (#xh) | | | ''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) | ''":3:/Test/file" SDOPENWR'', 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 | | | | ''SDOPENMOD'' | Open a file for byte modification | | |
| ''SDOPENAPP'' | Open a file for append | | | | ''SDOPENAPP'' | Open a file for append | | |
| ''SDFREE'' | Report free space on SD card (in bytes) | ''SDFREE'' | | | ''SDFREE'' | Report free space on SD card (in bytes) | ''SDFREE'' | |
| ''SDRESET'' | Mount card (safe to remove) | ''SDRESET'' | | | ''SDRESET'' | Mount card (safe to remove) | ''SDRESET'' | |
| ''SDOPENDIR'' | Open a directory for gathering file or sub directory information | ''":3:/Test" SDOPENDIR'' | | | ''SDOPENDIR'' | Open a directory for gathering file or sub directory information | ''"Test" SDOPENDIR'' | |
| ''SDNEXTFILE'' | Display file statistics in directory ((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.)) (file handle from ''SDOPENDIR'') | ''#xh SDNEXTFILE'' | | | ''SDNEXTFILE'' | Display file statistics in directory ((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.)) (file handle from ''SDOPENDIR'') | ''#xh SDNEXTFILE'' | |
| ''SDNEXTDIR'' | Display sub directory statistics within current directory | ''#xh SDNEXTDIR'' | | | ''SDNEXTDIR'' | Display sub directory statistics within current directory | ''#xh SDNEXTDIR'' | |