A2osX/BIN/CC.S.DIR.txt

178 lines
2.5 KiB
Plaintext
Raw Normal View History

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
2022-06-12 20:42:22 +00:00
bit bPass2
bmi .8
2022-06-12 20:42:22 +00:00
jsr CC.CheckSpace
2023-01-23 18:33:37 +00:00
bcs .90
jsr CC.IsLetter
bcs .90
2022-06-12 20:42:22 +00:00
ldx #SYM.SC.DEFINE
>LDA.G CC.hDefines
jsr SYM.NewKey
bcs .99
2022-06-12 20:42:22 +00:00
>STYA ZPPtr1 SymID
2022-02-04 14:57:17 +00:00
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
2022-06-12 20:42:22 +00:00
>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
2022-06-12 20:42:22 +00:00
beq .4
sta (pData),y
iny
2022-06-12 20:42:22 +00:00
cpy #MLI.MAXPATH
bne .3
.90 lda #E.CSYN
sec
.99 rts
2022-06-12 20:42:22 +00:00
.4 phy
jsr CC.GetNextChar skip " or >
2022-06-12 20:42:22 +00:00
ply
2022-06-12 20:42:22 +00:00
lda #0
sta (pData),y terminate string
2022-12-13 06:55:13 +00:00
>LDYA pData
jmp FIO.FOpen
*--------------------------------------
2023-01-23 18:33:37 +00:00
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