mirror of
https://github.com/RevCurtisP/C02.git
synced 2024-11-25 21:33:44 +00:00
44 lines
1.5 KiB
Plaintext
44 lines
1.5 KiB
Plaintext
|
;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
|