LIB: pm_cstd
CStyle Lib: Standard functions
pmrom_cstd.s
Type: Source File
Dependency: pm_init.s and pm_cstyle.s
Including Rules: Must be after ROM (PM_HEADER) declaration
Functions
Get keypad
c_keypad
Returns: keys down, zero if none pressed
This function provides debouncing and weak checking.
Keys are returned active high (0 = Released, 1 = Pressed) unlike KEY_PAD hardware register.
To filter the wanted key, use AND logic with one of the following defines:
Keypad Input | |||
KEY_A | $01 | tst a, KEY_A | A Key |
KEY_B | $02 | tst a, KEY_B | B Key |
KEY_C | $04 | tst a, KEY_C | C Key |
KEY_UP | $08 | tst a, KEY_UP | Up Key |
KEY_DOWN | $10 | tst a, KEY_DOWN | Down Key |
KEY_LEFT | $20 | tst a, KEY_LEFT | Left Key |
KEY_RIGHT | $40 | tst a, KEY_RIGHT | Right Key |
KEY_POWER | $80 | tst a, KEY_POWER | Power Key |
Get string length
c_strlen string_addr
[CPtr] string_addr: string address
Returns: number of characters not including the null-termination
Copy string to RAM
c_strcpy dest_ram, string_addr
[CVar] dest_ram: destination ram address
[CPtr] string_addr: string address
No return
Copy block of memory to RAM
c_memcpy dest_ram, block_addr, sizen
[CVar] dest_ram: destination ram address
[CPtr] block_addr: block address
[CVar] sizen: number of bytes
No return
Fill block of memory in RAM
c_memset dest_ram, value, sizen
[CVar] dest_ram: destination ram address
[CVar] value: 8-bits value
[CVar] sizen: number of bytes
No return
Compare two strings
c_strcmp string1_addr, string2_addr
[CPtr] string1_addr: 1st string address
[CPtr] string2_addr: 2nd string address
Returns: Zero if equal, non-zero is not
Positive if string1 > string2 or negative if string1 < string2
Compare two blocks of memory
c_memcmp block1_addr, block2_addr, sizen
[CPtr] block1_addr: 1st block address
[CPtr] block2_addr: 2nd block address
[CVar] sizen: number of bytes
Returns: Zero if equal, non-zero is not
Positive if block1 > block2 or negative if block1 < block2