A2osX/BIN/CC.S.DIR.txt

178 lines
2.5 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
*--------------------------------------
DIR jsr CORE.GetNCharNB
bcs .91
>LDYA L.CC.DIRS
jsr CC.LookupID
bcs .91
jmp (J.CC.DIRS,x)
.91 lda #E.CSYN
sec
.99 rts
*--------------------------------------
DIR.DEFINE clc
bit bPass2
bmi .8
jsr CC.CheckSpace
bcs .90
jsr CC.IsLetter
bcs .90
ldx #SYM.SC.DEFINE
>LDA.G CC.hDefines
jsr SYM.NewKey
bcs .99
>STYA ZPPtr1 SymID
jsr CC.SkipX
jsr CC.CheckSpace
bcs .99
ldy #$ff
.1 iny
lda (ZPLineBufPtr),y
beq .2
cmp #C.CR
bne .1
dey
.2 iny
phy
>PUSHB.G CC.hDefines
>PUSHW ZPPtr1 SymID
>PUSHW ZPLineBufPtr
ply
lda #0
>PUSHYA DataLen
>SYSCALL SListAddData
bcs .99
.8 jmp CORE.SkipLine
.90 lda #E.CSYN
sec
.99 rts
*--------------------------------------
DIR.INCLUDE lda #0 >STZ.G PathBuf
sta (pData)
jsr CC.CheckSpace
bcs .99
cmp #'"'
beq .1
cmp #'<'
bne .90
>PUSHW L.ENV.INCLUDE
>PUSHW pData >PUSHEA.G PathBuf
>SYSCALL GetEnv
bcs .90
lda #'>'
.1 sta ArgIndex
ldy #$ff
.2 iny
lda (pData),y
bne .2
.3 jsr CC.GetNextChar
beq .90
cmp ArgIndex
beq .4
sta (pData),y
iny
cpy #MLI.MAXPATH
bne .3
.90 lda #E.CSYN
sec
.99 rts
.4 phy
jsr CC.GetNextChar skip " or >
ply
lda #0
sta (pData),y terminate string
>LDYA pData
jmp FIO.FOpen
*--------------------------------------
DIR.IFDEF sec
.HS 90 BCC
DIR.IFNDEF clc
ror ZPPtr1
jsr CC.CheckSpace
bcs DIR.ESYN
jsr CC.IsLetter
bcs DIR.ESYN
>PUSHB.G CC.hDefines
>PUSHW ZPLineBufPtr
>PUSHWI 0 ScopeID
>SYSCALL SListLookup
ror
eor ZPPtr1
asl
lda DirState
rol
ora #1
sta DirState
clc
rts
*--------------------------------------
DIR.ELSE lda DirState
beq DIR.ESYN
eor #$80
sta DirState
clc
rts
*--------------------------------------
DIR.ENDIF lda DirState
beq DIR.ESYN
and #$FE
sec
asl
sta DirState
clc
rts
DIR.ESYN lda #E.ESYN
sec
rts
*--------------------------------------
MAN
SAVE usr/src/bin/cc.s.dir
LOAD usr/src/bin/cc.s
ASM