XGETARGV
Description
Get argv. X register contains the number of the arg search
Kernel handle a struct with XMAINARGS. This struct is handled by Kernel, and no action are required in external code, but here is how struct works :
.struct XMAINARGS_STRUCT
argv_ptr .res KERNEL_MAX_ARGS_COMMAND_LINE
argv_value_ptr .res KERNEL_LENGTH_MAX_CMDLINE+KERNEL_MAX_ARGS_COMMAND_LINE ; add 0 to string
.endstruct
argv_ptr contains an offset of each param. It means that we can't have a length of args greater than 256.
XMAINARGS and XGETARGV does not handle "" yet and " "
Input
A & Y the ptr of struct from XMAINARGS
X the number of arg to get, first param is 0 not 1 !
Output
A & Y contains argv ptr from xmainargs struct. It returns a copy of the command line with args parsed
Example
.include "telestrat.inc"
BRK_TELEMON XMAINARGS
sta debug_mainargs_ptr
sty debug_mainargs_ptr+1
ldx #$02 ; get arg 2 ; Get the third param
lda debug_mainargs_ptr
ldy debug_mainargs_ptr+1
BRK_KERNEL XGETARGV
; A & Y contains ptr
rts
Since cc65 last version (2024 release), XMAINARGS and XGETARGV did not need to declare anymore