A2osX/BIN/ASM.S.DIR.txt

383 lines
6.4 KiB
Plaintext
Raw Normal View History

NEW
PREFIX /A2OSX.BUILD
AUTO 4,1
2015-10-04 20:55:51 +00:00
*---------------------------------------
DIR.Init lda #$80
ldy #ASM.LI.ON
sta (pData),y
lda #0
2015-12-04 16:33:33 +00:00
ldy #ASM.LI.CON
sta (pData),y
ldy #ASM.LI.XON
sta (pData),y
rts
*---------------------------------------
2015-10-04 20:55:51 +00:00
DIR.AC clc
rts
*---------------------------------------
DIR.AS clc
rts
*---------------------------------------
DIR.AT clc
rts
*---------------------------------------
DIR.AZ clc
rts
*---------------------------------------
2018-01-15 06:50:44 +00:00
DIR.BS jsr SRC.GetNextCharNB
2018-01-23 07:31:16 +00:00
bcs .98
2018-01-15 06:50:44 +00:00
jsr EXP.Eval
2015-12-04 16:33:33 +00:00
bcs .9
lda SRC.ACC+3
ora SRC.ACC+2
bne .99
lda SRC.ACC
sta DIR.Counter
lda SRC.ACC+1
bmi .99
sta DIR.Counter+1
stz DIR.Byte
2018-01-11 16:34:09 +00:00
jsr SRC.GetNextChar
2018-01-23 07:31:16 +00:00
bcs .1
2015-12-04 16:33:33 +00:00
cmp #' '
beq .1
cmp #','
bne .98
jsr EXP.Eval
bcs .9
lda SRC.ACC+3
ora SRC.ACC+2
ora SRC.ACC+1
bne .99
lda SRC.ACC
sta DIR.Byte
.1 ldy #ASM.PC
lda (pData),y
clc
adc DIR.Counter
sta (pData),y
iny
lda (pData),y
adc DIR.Counter+1
sta (pData),y
.2 lda DIR.Counter
bne .3
lda DIR.Counter+1
beq .8
dec DIR.Counter+1
.3 dec DIR.Counter
lda DIR.Byte
jsr FIO.EmitByte
bcc .2
rts
.8 clc
.9 rts
.99 lda #ERR.RANGE
sec
rts
2018-01-12 16:05:04 +00:00
2015-12-04 16:33:33 +00:00
.98 lda #ERR.SYNTAX.ERROR
sec
2015-10-04 20:55:51 +00:00
rts
*---------------------------------------
DIR.DA clc
rts
*---------------------------------------
2015-12-04 16:33:33 +00:00
DIR.DO ldy #ASM.DO.Count
lda (pData),y
inc
cmp #SRC.DO.MAXDEPTH
bcs .98
jsr EXP.Eval
bcs .99
ldy #ASM.DO.Count
lda (pData),y
inc
sta (pData),y
* clc ok from bcs .99
adc #ASM.DOELSE.Flag-1
tay
lda SRC.ACC
ora SRC.ACC+1
ora SRC.ACC+2
ora SRC.ACC+3 if
sta (pData),y
lda #$FF
ldy #ASM.DO.ON
sta (pData),y
clc
2015-10-04 20:55:51 +00:00
rts
2015-12-04 16:33:33 +00:00
.98 lda #ERR.TOO.MANY.DO
sec
.99 rts
2015-10-04 20:55:51 +00:00
*---------------------------------------
DIR.DU clc
rts
*---------------------------------------
DIR.ED clc
rts
*---------------------------------------
DIR.EL clc
rts
*---------------------------------------
2018-01-29 16:48:07 +00:00
DIR.EM lda #ERR.MACRO.INV.DEF
2015-10-06 16:14:48 +00:00
sec
rts
*---------------------------------------
2015-10-04 20:55:51 +00:00
DIR.EN clc
rts
*---------------------------------------
2015-12-04 16:33:33 +00:00
DIR.EP ldy #ASM.PH.ON
lda (pData),y
bpl .9
lda #0
sta (pData),y
ldy #ASM.PC.PH+3
ldx #3
.1 lda (pData),y
pha
dey
dex
bpl .1
ldy #ASM.PC
ldx #3
.2 pla
sta (pData),y
iny
dex
bpl .2
clc
rts
.9 lda #ERR.INV.DIR
2015-12-04 16:33:33 +00:00
sec
2015-10-04 20:55:51 +00:00
rts
*---------------------------------------
DIR.EQ >LDA.G SYM.bGlobal
beq .99
jsr SRC.GetNextCharNB
2018-01-23 07:31:16 +00:00
bcs .99
2018-01-12 16:05:04 +00:00
jsr EXP.Eval
2015-10-28 16:55:12 +00:00
bcs .9
2015-11-20 16:31:14 +00:00
jsr SYM.UpdateGlobalAcc
bcs .9
2015-10-28 16:55:12 +00:00
clc
2018-01-12 16:05:04 +00:00
rts
.99 lda #ERR.SYNTAX.ERROR
sec
2015-10-28 16:55:12 +00:00
.9 rts
2015-10-04 20:55:51 +00:00
*---------------------------------------
2015-12-04 16:33:33 +00:00
DIR.FI ldy #ASM.DO.Count
lda (pData),y
beq .99
dec
sta (pData),y
bne .1
lda #$0
ldy #ASM.DO.ON
sta (pData),y
.1 clc
rts
.99 lda #ERR.INV.DIR
2015-12-04 16:33:33 +00:00
sec
2015-10-04 20:55:51 +00:00
rts
*---------------------------------------
DIR.HS clc
rts
*---------------------------------------
2018-01-15 06:50:44 +00:00
DIR.IN jsr SRC.GetNextCharNB
2018-01-23 07:31:16 +00:00
bcs .9
2015-10-06 16:14:48 +00:00
2018-01-11 16:34:09 +00:00
>LDYA ZPLinePtr
>SYSCALL RealPath.YA
2015-10-06 16:14:48 +00:00
2016-08-17 06:25:58 +00:00
phx
2015-11-20 16:31:14 +00:00
2018-01-11 16:34:09 +00:00
jsr FIO.OpenFile
2015-11-20 16:31:14 +00:00
plx
php
pha
txa
>SYSCALL FreeMem.A
2015-11-20 16:31:14 +00:00
pla
plp
2015-10-06 16:14:48 +00:00
rts
.9 lda #ERR.SYNTAX.ERROR
2015-11-20 16:31:14 +00:00
sec
2015-10-06 16:14:48 +00:00
rts
*---------------------------------------
2018-01-11 16:34:09 +00:00
DIR.LI jsr SRC.GetNextCharNB
2018-01-23 07:31:16 +00:00
bcs DIR.LI.9
2018-01-11 16:34:09 +00:00
>LDYA L.T.LI
2015-10-06 16:14:48 +00:00
jsr SRC.GetKeyword
2018-01-11 16:34:09 +00:00
bcs DIR.LI.9
2015-10-06 16:14:48 +00:00
2018-01-11 16:34:09 +00:00
jmp (J.LI,x)
2015-10-06 16:14:48 +00:00
DIR.LI.CON ldy #ASM.LI.CON
sec
bra DIR.LI.APPLY
DIR.LI.COFF ldy #ASM.LI.CON
clc
bra DIR.LI.APPLY
DIR.LI.XON ldy #ASM.LI.XON
sec
bra DIR.LI.APPLY
DIR.LI.XOFF ldy #ASM.LI.XON
clc
bra DIR.LI.APPLY
DIR.LI.ON ldy #ASM.LI.ON
sec
bra DIR.LI.APPLY
DIR.LI.OFF ldy #ASM.LI.ON
clc
2018-01-29 16:48:07 +00:00
DIR.LI.APPLY asl
2015-11-20 16:31:14 +00:00
2015-10-06 16:14:48 +00:00
sta (pData),y
clc
2015-10-06 16:14:48 +00:00
rts
2018-01-11 16:34:09 +00:00
DIR.LI.9 lda #ERR.SYNTAX.ERROR
sec
rts
2015-10-06 16:14:48 +00:00
*---------------------------------------
2018-01-29 16:48:07 +00:00
DIR.MA >LDA.G MAC.bAdd
bmi .9
2015-10-28 16:55:12 +00:00
2018-01-29 16:48:07 +00:00
>LDA.G ASM.PASS If Pass#2, ignore
2015-10-28 16:55:12 +00:00
bne .8
2018-01-29 16:48:07 +00:00
jsr SRC.GetNextCharNB
beq DIR.OP.SYNERR
2015-10-28 16:55:12 +00:00
2018-01-29 16:48:07 +00:00
jsr MAC.Clear
2015-10-06 16:14:48 +00:00
2018-01-29 16:48:07 +00:00
.8 lda #$ff
>STA.G MAC.bAdd
2015-10-06 16:14:48 +00:00
clc
rts
2018-01-29 16:48:07 +00:00
.9 lda #ERR.MACRO.INV.DEF
2015-10-06 16:14:48 +00:00
sec
2018-01-29 16:48:07 +00:00
rts
2015-10-04 20:55:51 +00:00
*---------------------------------------
2018-01-11 16:34:09 +00:00
DIR.OP jsr SRC.GetNextCharNB
beq DIR.OP.SYNERR
2015-10-21 16:24:11 +00:00
2018-01-11 16:34:09 +00:00
>LDYA ZPLinePtr
2015-10-21 16:24:11 +00:00
2015-12-04 16:33:33 +00:00
jmp FIO.LOAD.ASM.T
2015-10-21 16:24:11 +00:00
2018-01-11 16:34:09 +00:00
DIR.OP.SYNERR lda #ERR.SYNTAX.ERROR
2015-10-21 16:24:11 +00:00
sec
2015-10-04 20:55:51 +00:00
rts
*---------------------------------------
2018-01-11 16:34:09 +00:00
DIR.OR jsr SRC.GetNextCharNB
2018-01-23 07:31:16 +00:00
bcs DIR.OP.SYNERR
2018-01-11 16:34:09 +00:00
jsr EXP.Eval
2015-10-28 16:55:12 +00:00
bcs .9
ldy #ASM.PC
ldx #0
.1 lda SRC.ACC,x
sta (pData),y
inx
iny
cpx #4
bne .1
clc
.9 rts
2015-10-04 20:55:51 +00:00
*---------------------------------------
DIR.PG clc
rts
*---------------------------------------
2015-12-04 16:33:33 +00:00
DIR.PH ldy #ASM.PH.ON
lda (pData),y
bmi .9
lda #$80
sta (pData),y
ldy #ASM.PC+3
ldx #3
.1 lda (pData),y
pha
dey
dex
bpl .1
ldy #ASM.PC.PH
ldx #3
.2 pla
sta (pData),y
iny
dex
bpl .2
jmp DIR.OR
.9 lda #ERR.INV.DIR
2015-12-04 16:33:33 +00:00
sec
2015-10-04 20:55:51 +00:00
rts
*---------------------------------------
DIR.SE clc
rts
*---------------------------------------
DIR.TA clc
rts
*---------------------------------------
DIR.TF clc
rts
*---------------------------------------
DIR.TI clc
rts
*---------------------------------------
DIR.US clc
rts
*---------------------------------------
MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.DIR
LOAD /A2OSX.BUILD/BIN/DEV/ASM.S
2015-10-04 20:55:51 +00:00
ASM