;Module arg,h02 common functions for Commodore 8-bit computers

;Command Line Arguments are specified in the form:
;  RUN:"arg1 arg2 arg3..
;The colon terminates the RUN statement 
;The quote ensures that the arguments are not tokenized
;The list may optionally be terminated with a quote

        SUBROUTINE ARGS
        
;Argument Parser Constants
ARGFLG  EQU $00     ;Command Arguments Supported
ARGDLM  EQU $20     ;Argument Separator (Space)
ARGTRM  EQU $22     ;Argument Terminator (Quotes)
ARGMSK  EQU $FF     ;Mask: No Change

;argset() - Set Up Argument List for argget() calls
;Uses: SYSBFR - System Buffer
;      SYSBFP - System Buffer Position
;Sets: SYSBFP - New Buffer Position
;Affects: X,C
;Returns: A = $00 - Success
;             $FF - No Arguments Specified
ARGSET: LDX SYSBFP      ;Set Index to System Buffer Position
        LDA SYSBFR,X    ;
        CMP #':'        ;If First Character is a Colon
        BNE .NOARGS     ; 
        INX             ;
        LDA SYSBFR,X    ;
        CMP #$22        ;and Second Character is a Quote
        BNE .NOARGS     ;
        INX             ;  Increment Index Past Quote
        LDA #$FF        ;  and Return Success
        BNE .SDONE      ;Else 
.NOARGS LDA #0          ;  Terminate Argument List 
        STA SYSBFR,X    ;  Set Buffer Position
.SDONE  STX SYSBFP      ;  and Return Failure
        EOR #$FF        ;Invert Result
        RTS             ;

        INCLUDE "argget.a02"  ;Generic ARGGET Routine

        ENDSUBROUTINE
