2018-01-10 16:34:57 +00:00
|
|
|
|
NEW
|
2017-03-29 15:48:15 +00:00
|
|
|
|
PREFIX /A2OSX.BUILD
|
2018-01-10 16:34:57 +00:00
|
|
|
|
AUTO 4,1
|
2015-10-04 20:55:51 +00:00
|
|
|
|
*---------------------------------------
|
2018-01-23 16:52:22 +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-11 16:34:09 +00:00
|
|
|
|
DIR.EM lda #ERR.INV.MACRO.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
|
|
|
|
|
|
2018-01-23 16:52:22 +00:00
|
|
|
|
.9 lda #ERR.INV.DIR
|
2015-12-04 16:33:33 +00:00
|
|
|
|
sec
|
2015-10-04 20:55:51 +00:00
|
|
|
|
rts
|
|
|
|
|
*---------------------------------------
|
2018-01-24 16:24:06 +00:00
|
|
|
|
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
|
|
|
|
|
2018-01-24 16:24:06 +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
|
|
|
|
|
|
2018-01-23 16:52:22 +00:00
|
|
|
|
.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
|
2017-08-25 06:37:21 +00:00
|
|
|
|
>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
|
|
|
|
|
DIR.LI.APPLY lsr
|
2015-11-20 16:31:14 +00:00
|
|
|
|
|
2015-10-06 16:14:48 +00:00
|
|
|
|
sta (pData),y
|
2018-01-23 16:52:22 +00:00
|
|
|
|
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-12 16:05:04 +00:00
|
|
|
|
DIR.MA jsr SRC.GetNextCharNB
|
2018-01-23 07:31:16 +00:00
|
|
|
|
bcs .9
|
2015-10-28 16:55:12 +00:00
|
|
|
|
|
|
|
|
|
.1 jsr FIO.ReadLine
|
|
|
|
|
bcs .99
|
|
|
|
|
|
2018-01-12 16:05:04 +00:00
|
|
|
|
jsr SRC.PrintLine
|
|
|
|
|
|
2018-01-23 16:52:22 +00:00
|
|
|
|
lda SRC.GetChar
|
2015-10-28 16:55:12 +00:00
|
|
|
|
beq .1
|
|
|
|
|
|
|
|
|
|
cmp #'*' Comment?
|
|
|
|
|
beq .8
|
|
|
|
|
cmp #';' Comment?
|
|
|
|
|
beq .8
|
|
|
|
|
|
|
|
|
|
cmp #' ' no label...go scan dir/opcode
|
|
|
|
|
beq .3
|
|
|
|
|
|
2018-01-11 16:34:09 +00:00
|
|
|
|
.2 jsr SRC.GetNextChar skip label
|
2018-01-23 07:31:16 +00:00
|
|
|
|
bcs .8
|
|
|
|
|
|
2015-10-28 16:55:12 +00:00
|
|
|
|
cmp #' '
|
|
|
|
|
bne .2
|
|
|
|
|
|
2018-01-11 16:34:09 +00:00
|
|
|
|
.3 jsr SRC.GetNextCharNB Scan for an Opcode...
|
2018-01-23 07:31:16 +00:00
|
|
|
|
bcs .8
|
|
|
|
|
|
2015-10-28 16:55:12 +00:00
|
|
|
|
cmp #'.'
|
|
|
|
|
bne .8
|
|
|
|
|
|
2018-01-11 16:34:09 +00:00
|
|
|
|
jsr SRC.GetNextChar
|
2018-01-23 07:31:16 +00:00
|
|
|
|
bcs .8
|
|
|
|
|
|
2015-10-28 16:55:12 +00:00
|
|
|
|
cmp #'E'
|
|
|
|
|
bne .8
|
2018-01-23 07:31:16 +00:00
|
|
|
|
|
2018-01-11 16:34:09 +00:00
|
|
|
|
jsr SRC.GetNextChar
|
2018-01-23 07:31:16 +00:00
|
|
|
|
bcs .8
|
|
|
|
|
|
2015-10-28 16:55:12 +00:00
|
|
|
|
cmp #'M'
|
|
|
|
|
bne .8
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.8 ldy #ASM.PASS If Pass#2, ignore
|
2015-10-06 16:14:48 +00:00
|
|
|
|
lda (pData),y
|
2015-10-28 16:55:12 +00:00
|
|
|
|
bne .1
|
|
|
|
|
|
2015-10-06 16:14:48 +00:00
|
|
|
|
|
|
|
|
|
|
2015-10-28 16:55:12 +00:00
|
|
|
|
bra .1
|
2015-10-06 16:14:48 +00:00
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
|
2018-01-11 16:34:09 +00:00
|
|
|
|
.9 lda #ERR.INV.MACRO.DEF
|
2015-10-06 16:14:48 +00:00
|
|
|
|
sec
|
2015-10-28 16:55:12 +00:00
|
|
|
|
.99 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
|
|
|
|
|
|
2018-01-23 16:52:22 +00:00
|
|
|
|
.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
|
2018-01-10 16:34:57 +00:00
|
|
|
|
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.DIR
|
|
|
|
|
LOAD /A2OSX.BUILD/BIN/DEV/ASM.S
|
2015-10-04 20:55:51 +00:00
|
|
|
|
ASM
|