mirror of
https://github.com/RevCurtisP/C02.git
synced 2024-11-25 06:31:25 +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
|