Kernel 0.9.1 : ASM rewrite....

This commit is contained in:
Rémy GIBERT 2018-01-11 16:34:09 +00:00
parent b3acfa3030
commit 45474d544c
7 changed files with 430 additions and 390 deletions

Binary file not shown.

View File

@ -39,7 +39,7 @@ DIR.BS jsr EXP.Eval
stz DIR.Byte stz DIR.Byte
jsr SRC.GetChar jsr SRC.GetNextChar
beq .1 beq .1
cmp #' ' cmp #' '
beq .1 beq .1
@ -134,7 +134,7 @@ DIR.ED clc
DIR.EL clc DIR.EL clc
rts rts
*--------------------------------------- *---------------------------------------
DIR.EM lda #ERR.INVALID.MACRO.DEF DIR.EM lda #ERR.INV.MACRO.DEF
sec sec
rts rts
*--------------------------------------- *---------------------------------------
@ -168,7 +168,7 @@ DIR.EP ldy #ASM.PH.ON
clc clc
rts rts
.9 lda #ERR.INVALID.DIRECTIVE .9 lda #ERR.INV.DIRECTIVE
sec sec
rts rts
*--------------------------------------- *---------------------------------------
@ -198,22 +198,22 @@ DIR.FI ldy #ASM.DO.Count
.1 clc .1 clc
rts rts
.99 lda #ERR.INVALID.DIRECTIVE .99 lda #ERR.INV.DIRECTIVE
sec sec
rts rts
*--------------------------------------- *---------------------------------------
DIR.HS clc DIR.HS clc
rts rts
*--------------------------------------- *---------------------------------------
DIR.IN jsr SRC.GetArg DIR.IN jsr SRC.CheckBlank
bcs .9 bcs .9
>LDYA L.SRC.BUFFER >LDYA ZPLinePtr
>SYSCALL NewStr.YA >SYSCALL RealPath.YA
phx phx
jsr FIO.OpenFileA jsr FIO.OpenFile
plx plx
php php
pha pha
@ -230,15 +230,14 @@ DIR.IN jsr SRC.GetArg
sec sec
rts rts
*--------------------------------------- *---------------------------------------
DIR.LI >LDYA L.T.LI DIR.LI jsr SRC.GetNextCharNB
beq DIR.LI.9
>LDYA L.T.LI
jsr SRC.GetKeyword jsr SRC.GetKeyword
bcc .1 bcs DIR.LI.9
lda #ERR.SYNTAX.ERROR jmp (J.LI,x)
sec
rts
.1 jmp (J.LI,x)
DIR.LI.CON ldy #ASM.LI.CON DIR.LI.CON ldy #ASM.LI.CON
sec sec
@ -261,14 +260,18 @@ DIR.LI.APPLY lsr
sta (pData),y sta (pData),y
rts rts
DIR.LI.9 lda #ERR.SYNTAX.ERROR
sec
rts
*--------------------------------------- *---------------------------------------
DIR.MA jsr SRC.GetArg DIR.MA jsr SRC.CheckBlank Get Macro Name
bcs .9 bcs .9
.1 jsr FIO.ReadLine .1 jsr FIO.ReadLine
bcs .99 bcs .99
lda UsrBuf256 lda (ZPLineBuf)
beq .1 beq .1
cmp #'*' Comment? cmp #'*' Comment?
@ -279,21 +282,21 @@ DIR.MA jsr SRC.GetArg
cmp #' ' no label...go scan dir/opcode cmp #' ' no label...go scan dir/opcode
beq .3 beq .3
.2 jsr SRC.GetChar skip label .2 jsr SRC.GetNextChar skip label
beq .8 beq .8
cmp #' ' cmp #' '
bne .2 bne .2
.3 jsr SRC.GetCharNB Scan for an Opcode... .3 jsr SRC.GetNextCharNB Scan for an Opcode...
beq .8 beq .8
cmp #'.' cmp #'.'
bne .8 bne .8
jsr SRC.GetChar jsr SRC.GetNextChar
beq .8 beq .8
cmp #'E' cmp #'E'
bne .8 bne .8
jsr SRC.GetChar jsr SRC.GetNextChar
beq .8 beq .8
cmp #'M' cmp #'M'
bne .8 bne .8
@ -310,32 +313,25 @@ DIR.MA jsr SRC.GetArg
clc clc
rts rts
.9 lda #ERR.INVALID.MACRO.DEF .9 lda #ERR.INV.MACRO.DEF
sec sec
.99 rts .99 rts
*--------------------------------------- *---------------------------------------
DIR.OP jsr SRC.GetArg DIR.OP jsr SRC.GetNextCharNB
bcs .9 beq DIR.OP.SYNERR
ldx SRC.Buffer >LDYA ZPLinePtr
lda ASM.T.FILENAMELEN
adc SRC.Buffer
sta ASM.T.FILENAME
tay
.1 lda SRC.Buffer,x
sta ASM.T.FILENAME,y
dey
dex
bne .1
jmp FIO.LOAD.ASM.T jmp FIO.LOAD.ASM.T
.9 lda #ERR.SYNTAX.ERROR DIR.OP.SYNERR lda #ERR.SYNTAX.ERROR
sec sec
rts rts
*--------------------------------------- *---------------------------------------
DIR.OR jsr EXP.Eval DIR.OR jsr SRC.GetNextCharNB
beq DIR.OP.SYNERR
jsr EXP.Eval
bcs .9 bcs .9
ldy #ASM.PC ldy #ASM.PC
@ -380,7 +376,7 @@ DIR.PH ldy #ASM.PH.ON
jmp DIR.OR jmp DIR.OR
.9 lda #ERR.INVALID.DIRECTIVE .9 lda #ERR.INV.DIRECTIVE
sec sec
rts rts
*--------------------------------------- *---------------------------------------

View File

@ -14,7 +14,7 @@ EXP.Eval stz EXP.Operator
stz EXP.Modifier stz EXP.Modifier
jsr SRC.GetCharNB lda (ZPLinePtr)
beq EXP.Eval.Missing beq EXP.Eval.Missing
jsr SRC.IsMODReserved jsr SRC.IsMODReserved
@ -27,7 +27,7 @@ EXP.Eval.Missing lda #ERR.MISSING.EXP
sec sec
rts rts
EXP.Eval.Next jsr SRC.GetCharUC EXP.Eval.Next jsr SRC.GetNextCharUC
beq EXP.Eval.Missing beq EXP.Eval.Missing
EXP.Eval.Next1 cmp #'.' Local Label? EXP.Eval.Next1 cmp #'.' Local Label?
@ -56,7 +56,6 @@ EXP.Eval.Next1 cmp #'.' Local Label?
.10 jsr SRC.IsDigit10 Decimal constant ? .10 jsr SRC.IsDigit10 Decimal constant ?
bcs .1 bcs .1
dec SRC.BufPtr
jsr SRC.GetDecimal jsr SRC.GetDecimal
bcs EXP.EvalExitSYN bcs EXP.EvalExitSYN
@ -64,6 +63,10 @@ EXP.Eval.Next1 cmp #'.' Local Label?
.1 cmp #'$' Hex? .1 cmp #'$' Hex?
bne .2 bne .2
>DEBUG
jsr SRC.GetNextChar
beq EXP.EvalExitSYN
jsr SRC.GetHex jsr SRC.GetHex
bcs EXP.EvalExitSYN bcs EXP.EvalExitSYN
@ -87,10 +90,10 @@ EXP.Eval.Next1 cmp #'.' Local Label?
.4 cmp #''' .4 cmp #'''
bne .43 bne .43
jsr SRC.GetChar jsr SRC.GetNextChar
beq EXP.EvalExitSYN beq EXP.EvalExitSYN
jsr EXP.SetAccA jsr EXP.SetAccA
jsr SRC.GetChar jsr SRC.GetNextChar
beq EXP.EvalOperator beq EXP.EvalOperator
cmp #''' cmp #'''
bne EXP.EvalExitSYN bne EXP.EvalExitSYN
@ -98,11 +101,11 @@ EXP.Eval.Next1 cmp #'.' Local Label?
.43 cmp '"' .43 cmp '"'
bne .42 bne .42
jsr SRC.GetChar jsr SRC.GetNextChar
beq EXP.EvalExitSYN beq EXP.EvalExitSYN
ora #$80 ora #$80
jsr EXP.SetAccA jsr EXP.SetAccA
jsr SRC.GetChar jsr SRC.GetNextChar
beq EXP.EvalOperator beq EXP.EvalOperator
cmp #'"' cmp #'"'
bne EXP.EvalExitSYN bne EXP.EvalExitSYN
@ -110,15 +113,12 @@ EXP.Eval.Next1 cmp #'.' Local Label?
.42 jsr SRC.IsLetter Symbol ? .42 jsr SRC.IsLetter Symbol ?
bcs EXP.EvalExitSYN bcs EXP.EvalExitSYN
dec SRC.BufPtr
jsr EXP.GetSymbol jsr EXP.GetSymbol
bcs EXP.EvalExitRTS bcs EXP.EvalExitRTS
bra EXP.EvalOperator bra EXP.EvalOperator
EXP.EvalExitOK clc
EXP.EvalExitOK dec SRC.BufPtr Back One Char
EXP.EvalExitOK1 clc
EXP.EvalExitRTS rts EXP.EvalExitRTS rts
EXP.EvalExitSYN lda #ERR.SYNTAX.ERROR EXP.EvalExitSYN lda #ERR.SYNTAX.ERROR
@ -136,8 +136,8 @@ EXP.EvalOperator lda EXP.Operator
jsr EXP.Compute jsr EXP.Compute
bcs EXP.EvalExitRTS bcs EXP.EvalExitRTS
.7 jsr SRC.GetChar .7 jsr SRC.GetNextChar
beq EXP.EvalExitOK1 beq EXP.EvalExitOK
cmp #' ' cmp #' '
beq EXP.EvalExitOK beq EXP.EvalExitOK

View File

@ -2,37 +2,55 @@ NEW
PREFIX /A2OSX.BUILD PREFIX /A2OSX.BUILD
AUTO 4,1 AUTO 4,1
*--------------------------------------- *---------------------------------------
FIO.Init ldy #S.PS.hARGS FIO.Init >LDYA L.ASM.6502
FIO.LOAD.ASM.T >STYA ZPPtr2
ldy #S.PS.hARGS
lda (pPS),y lda (pPS),y
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr.A
>STYA ZPPtr1 >STYA ZPPtr1
ldy #$ff ldy #$ff
ldx #$ff
.2 iny .1 iny
lda (ZPPtr1),y
sta ASM.T.FILENAME,y
bne .2
ldx #0
.3 lda ASM.T.DEFAULT,x
sta ASM.T.FILENAME,y
beq FIO.LOAD.ASM.T
inx inx
iny lda (ZPPtr1),y
bra .3 sta ASM.T.FILENAME,x
*--------------------------------------- bne .1
FIO.LOAD.ASM.T ldy #ASM.T.hMem
lda #'.'
sta ASM.T.FILENAME,x
inx
lda #'T'
sta ASM.T.FILENAME,x
inx
lda #'.'
sta ASM.T.FILENAME,x
ldy #$ff
.3 iny
inx
lda (ZPPtr2),y
sta ASM.T.FILENAME,x
bne .3
ldy #ASM.T.hMem
lda (pData),y lda (pData),y
beq .1 beq .4
>SYSCALL FreeMem.A >SYSCALL FreeMem.A
ldy #ASM.T.hMem ldy #ASM.T.hMem
lda #0 lda #0
sta (pData),y sta (pData),y
.1 >PUSHW L.ASM.T.FILENAME .4 >PUSHW L.ASM.T.FILENAME
>LDYA L.MSG.T.FILE >LDYA L.MSG.T.FILE
>SYSCALL PrintF.YA >SYSCALL PrintF.YA
@ -49,8 +67,7 @@ FIO.LOAD.ASM.T ldy #ASM.T.hMem
.9 rts .9 rts
*--------------------------------------- *---------------------------------------
FIO.OpenFileA >SYSCALL GetMemPtr.A FIO.OpenFile >STYA ZPPtr1
>STYA ZPPtr1
>PUSHW ZPPtr1 >PUSHW ZPPtr1
>LDYA L.MSG.SRC.FILE >LDYA L.MSG.SRC.FILE
@ -121,7 +138,8 @@ FIO.OpenFileA >SYSCALL GetMemPtr.A
sec sec
.99 rts .99 rts
*--------------------------------------- *---------------------------------------
FIO.ReadLine stz SRC.BufPtr FIO.ReadLine >LDYA ZPLineBuf
>STYA ZPLinePtr
ldy #SRC.COUNT ldy #SRC.COUNT
lda (pData),y lda (pData),y
@ -131,81 +149,94 @@ FIO.ReadLine stz SRC.BufPtr
lda (pData),y lda (pData),y
bmi .10 bmi .10
>PUSHW ZPLineBuf
>PUSHWI 256 >PUSHWI 256
>PUSHWI UsrBuf256
jsr FIO.ReadFromFile jsr FIO.ReadFromFile
bcs .19 bcs .19
lda #0 replace ending $0D with $00 lda #0 replace ending $0D with $00
sta UsrBuf256,y sta (ZPLineBuf),y
.19 rts .19 rts
*---------------------------------------
.10 >PUSHWI 3 .10 >PUSHW ZPTmpBuf
>PUSHW L.SRC.Buffer >PUSHWI 3
jsr FIO.ReadFromFile jsr FIO.ReadFromFile
bcs .9 bcs .19
lda SRC.Buffer+1 ldy #1
lda (ZPTmpBuf),y
sta SRC.LINENUM sta SRC.LINENUM
lda SRC.Buffer+2 iny
lda (ZPTmpBuf),y
sta SRC.LINENUM+1 sta SRC.LINENUM+1
lda SRC.Buffer LEN lda (ZPTmpBuf) LEN
sec sec
sbc #3 sbc #3
bcc .9 LEN should be at least 3 bcc .9 LEN should be at least 3
tay tay
>PUSHW ZPTmpBuf
lda #0 lda #0
>PUSHYA >PUSHYA
>PUSHW L.SRC.BUFFER
jsr FIO.ReadFromFile jsr FIO.ReadFromFile
bcs .9
>LDYA ZPTmpBuf
>STYA ZPPtr1
ldy #0 ldy #0
ldx #0
.1 lda SRC.Buffer,y .1 lda (ZPPtr1)
inc ZPPtr1
bne .11
inc ZPPtr1+1
.11 tax
bmi .2 bmi .2
sta UsrBuf256,x sta (ZPLineBuf),y
beq .8 Ending 00 beq .8 Ending 00
inx
beq .99
iny iny
bne .1 bne .1
bra .99 bra .99
.2 cmp #$C0 REPEAT char? .2 cmp #$C0 REPEAT char?
bne .5 bne .5
iny
beq .99 lda (ZPPtr1) Get Repeat Count
lda SRC.Buffer,y inc ZPPtr1
iny
beq .99
.3 pha
lda SRC.Buffer,y
sta UsrBuf256,x
pla
inx
beq .99
dec
bne .3 bne .3
inc ZPPtr1+1
.3 tax
lda (ZPPtr1) Get Repeat Char
inc ZPPtr1
bne .3
inc ZPPtr1+1
.4 sta (ZPLineBuf),y
iny iny
bne .1 beq .99
dex
bne .4
bra .99 bra .99
.5 and #$3F Compute blank count .5 and #$3F Compute blank count
.6 pha tax
lda #$20 lda #$20
sta UsrBuf256,x
pla .6 sta (ZPLineBuf),y
inx
beq .99
dec
bne .6
iny iny
bne .1 beq .99
bra .99
dex
bne .6
bra .1
.8 clc .8 clc
.9 rts .9 rts
@ -223,8 +254,10 @@ FIO.ReadFromFile ldy #SRC.COUNT
>PUSHA >PUSHA
>SYSCALL FRead >SYSCALL FRead
bcs .9 bcs .9
tax $100 byte transfered ? tax $100 byte transfered ?
beq .9 beq .9
lda #ERR.LINE.TOO.LONG lda #ERR.LINE.TOO.LONG
sec sec
.9 rts .9 rts

View File

@ -2,20 +2,17 @@ NEW
PREFIX /A2OSX.BUILD PREFIX /A2OSX.BUILD
AUTO 4,1 AUTO 4,1
*--------------------------------------- *---------------------------------------
SRC.PrintLine ldy #ASM.MACRO.ON SRC.PrintLine >LDA.G ASM.MACRO.ON
lda (pData),y
bpl .1 bpl .1
ldy #ASM.LI.CON >LDA.G ASM.LI.CON
lda (pData),y
bpl .9 bpl .9
bmi .8 bmi .8
.1 ldy #ASM.LI.ON .1 >LDA.G ASM.LI.ON
lda (pData),y * bpl .9
bpl .9
.8 >PUSHWI UsrBuf256 .8 >PUSHW ZPLineBuf
>PUSHW SRC.LINENUM >PUSHW SRC.LINENUM
ldy #ASM.PC+1 ldy #ASM.PC+1
>PUSHB (pData),y >PUSHB (pData),y
@ -25,49 +22,52 @@ SRC.PrintLine ldy #ASM.MACRO.ON
>SYSCALL PrintF.YA >SYSCALL PrintF.YA
.9 rts .9 rts
*--------------------------------------- *---------------------------------------
SRC.PrintLineErr ldx #0 SRC.PrintLineErr >LDYA ZPLineBuf
.1 lda UsrBuf256,x >SYSCALL PrintF.YA
beq .2 bcs .9
phx
>SYSCALL PutChar.A
plx
inx
bcc .1
rts
.2 lda #13 lda #13
>SYSCALL PutChar.A >SYSCALL PutChar.A
bcs .9 bcs .9
ldx #0 lda #10
.3 lda UsrBuf256,x >SYSCALL PutChar.A
beq .5 bcs .9
inx
cpx SRC.BufPtr lda ZPLinePtr
sec
sbc ZPLineBuf
tax
beq .4 beq .4
phx
.3 phx
lda #'-' lda #'-'
>SYSCALL PutChar.A >SYSCALL PutChar.A
plx plx
bcs .9 bcs .9
bra .3 dex
bne .3
.4 lda #'^' .4 lda #'^'
phx phy
>SYSCALL PutChar.A >SYSCALL PutChar.A
plx ply
bcs .9 bcs .9
.5 lda #13 .5 lda #13
>SYSCALL PutChar.A >SYSCALL PutChar.A
lda #10
>SYSCALL PutChar.A
.9 rts .9 rts
*--------------------------------------- *---------------------------------------
SRC.ParseLine ldx UsrBuf256 SRC.ParseLine lda (ZPLineBuf)
tax
beq .1 beq .1
cpx #'*' Comment? cmp #'*' Comment?
beq .1 beq .1
cpx #';' Comment? cmp #';' Comment?
beq .1 beq .1
ldy #ASM.DO.ON ldy #ASM.DO.ON
@ -91,12 +91,14 @@ SRC.ParseLine ldx UsrBuf256
.2 jsr SRC.ParseLine.SymG .2 jsr SRC.ParseLine.SymG
.3 bcs SRC.ParseLine.Err .3 bcs SRC.ParseLine.Err
.4 jsr SRC.GetCharNB Scan for an Opcode... .4 jsr SRC.GetNextCharNB Scan for an Opcode...
beq SRC.ParseLine.Ok beq SRC.ParseLine.Ok
cmp #'.' cmp #'.'
bne .5 bne .5
jsr SRC.GetNextChar Skip .
jsr SRC.ParseLine.Dir jsr SRC.ParseLine.Dir
bcs SRC.ParseLine.Err bcs SRC.ParseLine.Err
bra SRC.ParseLine.Ok bra SRC.ParseLine.Ok
@ -108,11 +110,9 @@ SRC.ParseLine ldx UsrBuf256
bcs SRC.ParseLine.Err bcs SRC.ParseLine.Err
bra SRC.ParseLine.Ok bra SRC.ParseLine.Ok
.6 dec SRC.BufPtr Back one char... .6 jsr SRC.ParseLine.OpCode
jsr SRC.ParseLine.OpCode
bcs SRC.ParseLine.Err bcs SRC.ParseLine.Err
SRC.ParseLine.Ok lda SRC.GLabel.New SRC.ParseLine.Ok lda SRC.GLabel.New
bpl .8 bpl .8
@ -146,7 +146,7 @@ SRC.ParseLine.Ok lda SRC.GLabel.New
.8 clc .8 clc
rts rts
SRC.ParseLine.Inv lda #ERR.INVALID.LABEL SRC.ParseLine.Inv lda #ERR.INV.LABEL
SRC.ParseLine.Err sec SRC.ParseLine.Err sec
rts rts
@ -154,13 +154,13 @@ SRC.ParseLine.Redef lda #ERR.SYMBOL.REDEFINE
sec sec
rts rts
*--------------------------------------- *---------------------------------------
SRC.ParseLine.SymP jsr SRC.GetChar SRC.ParseLine.SymP jsr SRC.GetNextChar
beq SRC.ParseLine.SymE beq SRC.ParseLine.SymE
jsr SRC.GetDecimal jsr SRC.GetDecimal
bcs SRC.ParseLine.SymE bcs SRC.ParseLine.SymE
jmp SYM.AddPrivate jmp SYM.AddPrivate
*--------------------------------------- *---------------------------------------
SRC.ParseLine.SymL jsr SRC.GetChar SRC.ParseLine.SymL jsr SRC.GetNextChar
beq SRC.ParseLine.SymE beq SRC.ParseLine.SymE
jsr SRC.GetDecimal jsr SRC.GetDecimal
bcs SRC.ParseLine.SymE bcs SRC.ParseLine.SymE
@ -199,7 +199,7 @@ SRC.ParseLine.SymL jsr SRC.GetChar
bcc SRC.ParseLine.SymR bcc SRC.ParseLine.SymR
jmp SYM.AddLToGBlock jmp SYM.AddLToGBlock
*--------------------------------------- *---------------------------------------
SRC.ParseLine.SymE lda #ERR.INVALID.LABEL SRC.ParseLine.SymE lda #ERR.INV.LABEL
sec sec
rts rts
@ -238,11 +238,12 @@ SRC.ParseLine.SymG >LDYA L.SRC.GLabel.Len
*--------------------------------------- *---------------------------------------
SRC.ParseLine.Dir >LDYA L.T.DIRECTIVES SRC.ParseLine.Dir >LDYA L.T.DIRECTIVES
jsr SRC.GetKeyword jsr SRC.GetKeyword
bcs .9 bcs .9
jmp (J.DIRECTIVES,x) jmp (J.DIRECTIVES,x)
.9 lda #ERR.INVALID.DIRECTIVE .9 lda #ERR.INV.DIRECTIVE
sec sec
rts rts
*--------------------------------------- *---------------------------------------
@ -255,7 +256,7 @@ SRC.ParseLine.Add.Macro
rts rts
*--------------------------------------- *---------------------------------------
SRC.ParseLine.OpCode SRC.ParseLine.OpCode
jsr SRC.GetArg jsr SRC.CheckBlank
bcc .11 bcc .11
rts rts
@ -264,7 +265,7 @@ SRC.ParseLine.OpCode
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr.A
>STYA ZPPtr1 >STYA ZPPtr1
ldy #ASM.T.O setup Ptr to Opcodes ldy #ASM.T.O setup Ptr2 to Opcodes
lda (ZPPtr1),y lda (ZPPtr1),y
clc clc
adc ZPPtr1 adc ZPPtr1
@ -274,7 +275,7 @@ SRC.ParseLine.OpCode
adc ZPPtr1+1 adc ZPPtr1+1
sta ZPPtr2+1 sta ZPPtr2+1
ldy #ASM.T.R setup Ptr to Registers ldy #ASM.T.R setup Ptr3 to Registers
lda (ZPPtr1),y lda (ZPPtr1),y
clc clc
adc ZPPtr1 adc ZPPtr1
@ -285,20 +286,20 @@ SRC.ParseLine.OpCode
sta ZPPtr3+1 sta ZPPtr3+1
.10 lda (ZPPtr2) .10 lda (ZPPtr2) End Of OpCode List
ldy #1
ora (ZPPtr2),y
beq .9 beq .9
ldx #$FF lda (ZPPtr2) Opcode Len
tax
.1 inx ldy #0
lda SRC.Buffer,x
.1 lda (ZPLinePtr),y
iny iny
cmp (ZPPtr2),y cmp (ZPPtr2),y
bne .7 bne .7
cpx SRC.Buffer dex
bne .1 bne .1
jsr SRC.ParseLine.AM jsr SRC.ParseLine.AM
@ -355,14 +356,14 @@ SRC.ParseLine.OpCode
sta ZPPtr2+1 sta ZPPtr2+1
bra .10 bra .10
.9 lda #ERR.INVALID.OPCODE .9 lda #ERR.INV.OPCODE
sec sec
.99 rts .99 rts
*--------------------------------------- *---------------------------------------
SRC.ParseLine.AM stz SRC.AM.ID SRC.ParseLine.AM stz SRC.AM.ID
stz SRC.AM.StrBuf stz SRC.AM.StrBuf
.1 jsr SRC.GetCharUC any arg immediately after ' '? .1 jsr SRC.GetNextCharUC any arg immediately after ' '?
beq .8 no, AM.ID=0 (implied) beq .8 no, AM.ID=0 (implied)
cmp #' ' another space ? cmp #' ' another space ?
@ -390,15 +391,17 @@ SRC.ParseLine.AM stz SRC.AM.ID
.21 jsr SRC.IsLetter Any register? .21 jsr SRC.IsLetter Any register?
bcs .70 no, try something else bcs .70 no, try something else
ldx SRC.BufPtr ldx ZPLinePtr
stx SRC.BufPtrSave stx SRC.LinePtrSave
ldx ZPLinePtr+1
stx SRC.LinePtrSave+1
stz SRC.AM.tmpBuf stz SRC.AM.tmpBuf
sta SRC.AM.tmpBuf+1 sta SRC.AM.tmpBuf+1
inc SRC.AM.tmpBuf inc SRC.AM.tmpBuf
.3 jsr SRC.GetCharUC .3 jsr SRC.GetNextCharUC
beq .41 beq .4
jsr SRC.IsLetterOrDigit jsr SRC.IsLetterOrDigit
bcs .4 bcs .4
inc SRC.AM.tmpBuf inc SRC.AM.tmpBuf
@ -406,9 +409,7 @@ SRC.ParseLine.AM stz SRC.AM.ID
sta SRC.AM.tmpBuf,x sta SRC.AM.tmpBuf,x
bra .3 bra .3
.4 dec SRC.BufPtr back one char .4 ldy #0
.41 ldy #0
.5 lda (ZPPtr3),y .5 lda (ZPPtr3),y
beq .71 last register ? beq .71 last register ?
@ -447,12 +448,13 @@ SRC.ParseLine.AM stz SRC.AM.ID
tay tay
bra .5 bra .5
.71 lda SRC.BufPtrSave Does not match a register,restore Ptr .71 ldx SRC.LinePtrSave Does not match a register,restore Ptr
sta SRC.BufPtr stx ZPLinePtr
stx SRC.LinePtrSave+1
stx ZPLinePtr+1
.70 dec SRC.BufPtr back one char
jsr EXP.Eval .70 jsr EXP.Eval
bcs .99 bcs .99
@ -475,7 +477,7 @@ SRC.ParseLine.AM stz SRC.AM.ID
.9 lda #ERR.INVALID.AM.SYN .9 lda #ERR.INV.AM.SYN
sec sec
.99 rts .99 rts
*--------------------------------------- *---------------------------------------
@ -483,23 +485,30 @@ SRC.GetDecimal stz SRC.ACC+1
stz SRC.ACC+2 stz SRC.ACC+2
stz SRC.ACC+3 stz SRC.ACC+3
jsr SRC.GetChar lda (ZPLinePtr)
beq .99 beq .99
jsr SRC.IsDigit10 jsr SRC.IsDigit10
bcs .99 bcs .99
and #$0F and #$0F
sta SRC.ACC sta SRC.ACC
.1 jsr SRC.GetChar .1 jsr SRC.GetNextChar
beq .8 beq .8
cmp #' ' cmp #' '
beq .88 beq .8
jsr SRC.IsEXPReserved jsr SRC.IsEXPReserved
bcc .88 bcc .8
jsr SRC.IsAMReserved jsr SRC.IsAMReserved
bcc .88 bcc .8
jsr SRC.IsDigit10 jsr SRC.IsDigit10
bcs .99 bcs .9
and #$0F and #$0F
pha pha
@ -522,7 +531,6 @@ SRC.GetDecimal stz SRC.ACC+1
sec sec
rts rts
.88 dec SRC.BufPtr Back One Char
.8 clc .8 clc
rts rts
@ -534,21 +542,21 @@ SRC.GetHex stz SRC.ACC+1
stz SRC.ACC+2 stz SRC.ACC+2
stz SRC.ACC+3 stz SRC.ACC+3
jsr SRC.GetChar lda (ZPLinePtr)
beq .99 beq .99
jsr SRC.IsDigit16 jsr SRC.IsDigit16
bcs .99 bcs .99
sta SRC.ACC sta SRC.ACC
.1 jsr SRC.GetChar .1 jsr SRC.GetNextChar
beq .8 beq .8
cmp #' ' cmp #' '
beq .88 beq .8
jsr SRC.IsEXPReserved jsr SRC.IsEXPReserved
bcc .88 bcc .8
jsr SRC.IsAMReserved jsr SRC.IsAMReserved
bcc .88 bcc .8
jsr SRC.IsDigit16 jsr SRC.IsDigit16
bcs .99 bcs .99
@ -564,7 +572,6 @@ SRC.GetHex stz SRC.ACC+1
sta SRC.ACC sta SRC.ACC
bra .1 bra .1
.88 dec SRC.BufPtr Back One Char
.8 clc .8 clc
rts rts
@ -580,23 +587,29 @@ SRC.GetOctal stz SRC.ACC+1
stz SRC.ACC+2 stz SRC.ACC+2
stz SRC.ACC+3 stz SRC.ACC+3
jsr SRC.GetChar lda (ZPLinePtr)
beq .99 beq .99
jsr SRC.IsDigit8 jsr SRC.IsDigit8
bcs .99 bcs .99
and #$0F and #$0F
sta SRC.ACC sta SRC.ACC
.1 jsr SRC.GetChar .1 jsr SRC.GetNextChar
beq .8 beq .8
cmp #' ' cmp #' '
beq .88 beq .8
jsr SRC.IsEXPReserved jsr SRC.IsEXPReserved
bcc .88 bcc .8
jsr SRC.IsAMReserved jsr SRC.IsAMReserved
bcc .88 bcc .8
jsr SRC.IsDigit8 jsr SRC.IsDigit8
bcs .99 bcs .9
asl asl
asl asl
@ -615,7 +628,6 @@ SRC.GetOctal stz SRC.ACC+1
bne .2 bne .2
bra .1 bra .1
.88 dec SRC.BufPtr Back One Char
.8 clc .8 clc
rts rts
@ -631,25 +643,33 @@ SRC.GetBinary stz SRC.ACC+1
stz SRC.ACC+2 stz SRC.ACC+2
stz SRC.ACC+3 stz SRC.ACC+3
jsr SRC.GetChar lda (ZPLinePtr)
beq .99 beq .99
cmp #'1' cmp #'1'
beq .10 beq .10
cmp #'0' cmp #'0'
bne .99 bne .99
.10 and #$01 .10 and #$01
sta SRC.ACC sta SRC.ACC
.1 jsr SRC.GetChar .1 jsr SRC.GetNextChar
beq .8 beq .8
cmp #' ' cmp #' '
beq .88 beq .8
jsr SRC.IsEXPReserved jsr SRC.IsEXPReserved
bcc .88 bcc .8
jsr SRC.IsAMReserved jsr SRC.IsAMReserved
bcc .88 bcc .8
cmp #'1' cmp #'1'
beq .11 beq .11
cmp #'0' cmp #'0'
bne .8 bne .8
@ -662,7 +682,6 @@ SRC.GetBinary stz SRC.ACC+1
bcs .9 bcs .9
bra .1 bra .1
.88 dec SRC.BufPtr Back One Char
.8 clc .8 clc
rts rts
@ -676,7 +695,7 @@ SRC.GetBinary stz SRC.ACC+1
*--------------------------------------- *---------------------------------------
SRC.GetLabel >STYA ZPPtr1 SRC.GetLabel >STYA ZPPtr1
jsr SRC.GetCharUC lda (ZPLinePtr)
beq .9 beq .9
jsr SRC.IsLetter jsr SRC.IsLetter
@ -685,7 +704,7 @@ SRC.GetLabel >STYA ZPPtr1
ldy #1 ldy #1
sta (ZPPtr1),y sta (ZPPtr1),y
.1 jsr SRC.GetCharUC .1 jsr SRC.GetNextCharUC
beq .8 beq .8
jsr SRC.IsLetterOrDigit jsr SRC.IsLetterOrDigit
@ -697,11 +716,11 @@ SRC.GetLabel >STYA ZPPtr1
beq .2 beq .2
cmp #' ' cmp #' '
beq .88 beq .8
jsr SRC.IsEXPReserved jsr SRC.IsEXPReserved
bcc .88 bcc .8
jsr SRC.IsAMReserved jsr SRC.IsAMReserved
bcc .88 bcc .8
.9 lda #ERR.SYNTAX.ERROR .9 lda #ERR.SYNTAX.ERROR
sec sec
@ -712,73 +731,62 @@ SRC.GetLabel >STYA ZPPtr1
cpy #SRC.GLABEL.MAXLEN cpy #SRC.GLABEL.MAXLEN
bcc .1 if equ Carry is set bcc .1 if equ Carry is set
.88 dec SRC.BufPtr Back One Char
.8 tya .8 tya
sta (ZPPtr1) sta (ZPPtr1)
clc clc
rts rts
*--------------------------------------- *---------------------------------------
SRC.GetKeyword >STYA ZPPtr1 SRC.GetKeyword >STYA ZPPtr1 KeyWord table
jsr SRC.GetArg
bcs .9
stz SRC.Keyword.ID stz SRC.Keyword.ID
ldy #0 .1 lda (ZPPtr1)
beq .9 End Of table
.3 lda (ZPPtr1),y tax KW len
beq .9
cmp SRC.Buffer
bne .6
phy
ldx #0 .2 ldy #0
.4 iny
inx
lda (ZPPtr1),y
cmp SRC.Buffer,x
bne .5
cpx SRC.Buffer
bne .4
ply .3 lda (ZPLinePtr),y
beq .5
jsr SRC.IsLetter
bcs .5
ldx SRC.Keyword.ID
clc
rts
.5 ply
.6 tya
sec Add keyword Len+1
adc (ZPPtr1),y
tay
inc SRC.Keyword.ID
inc SRC.Keyword.ID
bra .3
.9 sec
rts
*---------------------------------------
SRC.GetArg jsr SRC.GetCharUC
beq .9
sta SRC.Buffer+1
ldy #1
.1 jsr SRC.GetCharUC
beq .2
cmp #' '
beq .2
iny iny
sta SRC.Buffer,y cmp (ZPPtr1),y
bra .1 bne .5
.2 sty SRC.Buffer dex
bne .3
lda (ZPLinePtr),y All chars match...
beq .4 End of Line ?
jsr SRC.IsLetter
bcc .5 Additional letters...
.4 lda ZPLinePtr
clc
adc (ZPPtr1)
sta ZPLinePtr
bcc .41
inc ZPLinePtr+1
.41 ldx SRC.Keyword.ID
clc clc
rts rts
.5 lda (ZPPtr1)
sec Add keyword Len+1
adc ZPPtr1
sta ZPPtr1
bcc .6
inc ZPPtr1+1
.6 inc SRC.Keyword.ID
inc SRC.Keyword.ID
bra .1
.9 sec .9 sec
rts rts
*--------------------------------------- *---------------------------------------
@ -860,13 +868,29 @@ SRC.IsDigit8 cmp #'0'
.9 sec .9 sec
rts rts
*--------------------------------------- *---------------------------------------
SRC.GetCharNB jsr SRC.GetCharUC SRC.CheckBlank lda (ZPLinePtr)
beq .9 beq .9
cmp #' ' cmp #' '
beq SRC.GetCharNB bne .9
.1 jsr SRC.GetNextChar
beq .9
cmp #' '
beq .1
clc
rts
.9 sec
rts
*---------------------------------------
SRC.GetNextCharNB jsr SRC.GetNextCharUC
beq .9
cmp #' '
beq SRC.GetNextCharNB
.9 rts .9 rts
*--------------------------------------- *---------------------------------------
SRC.GetCharUC jsr SRC.GetChar SRC.GetNextCharUC jsr SRC.GetNextChar
beq .9 beq .9
cmp #'a' cmp #'a'
bcc .9 bcc .9
@ -875,10 +899,24 @@ SRC.GetCharUC jsr SRC.GetChar
eor #$20 to Uppercase eor #$20 to Uppercase
.9 rts .9 rts
*--------------------------------------- *---------------------------------------
SRC.GetChar ldx SRC.BufPtr SRC.GetCharUC lda (ZPLinePtr)
lda UsrBuf256,x
beq .9 beq .9
inc SRC.BufPtr if 255, will make Z cmp #'a'
bcc .9
cmp #'z'+1
bcs .9
eor #$20 to Uppercase
.9 rts
*---------------------------------------
SRC.GetNextChar lda (ZPLinePtr)
beq .9
inc ZPLinePtr
bne .1
inc ZPLinePtr+1
.1 lda (ZPLinePtr)
.9 rts .9 rts
*--------------------------------------- *---------------------------------------
SRC.ACC10 lda SRC.ACC ACC*2-> ACC & ACCTMP SRC.ACC10 lda SRC.ACC ACC*2-> ACC & ACCTMP
@ -922,7 +960,6 @@ SRC.ACC10 lda SRC.ACC ACC*2-> ACC & ACCTMP
sta SRC.ACC+3 CS if overflow sta SRC.ACC+3 CS if overflow
.9 rts .9 rts
*--------------------------------------- *---------------------------------------
MAN MAN
SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.SRC SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.SRC

View File

@ -12,8 +12,11 @@ AUTO 4,1
ZPPtr1 .EQ ZPBIN ZPPtr1 .EQ ZPBIN
ZPPtr2 .EQ ZPBIN+2 ZPPtr2 .EQ ZPBIN+2
ZPPtr3 .EQ ZPBIN+4 ZPPtr3 .EQ ZPBIN+4
ZPBlockPtr .EQ ZPBIN+6 ZPLineBuf .EQ ZPBIN+6
ZPSymbolPtr .EQ ZPBIN+8 ZPLinePtr .EQ ZPBIN+8
ZPBlockPtr .EQ ZPBIN+10
ZPSymbolPtr .EQ ZPBIN+12
ZPTmpBuf .EQ ZPBIN+14
*--------------------------------------- *---------------------------------------
ASM.T.AM .EQ 0 ASM.T.AM .EQ 0
ASM.T.R .EQ 2 ASM.T.R .EQ 2
@ -37,18 +40,18 @@ ERR.SYNTAX.ERROR .EQ $A0
ERR.SYM.TOO.LONG .EQ $A1 ERR.SYM.TOO.LONG .EQ $A1
ERR.VAL.TOO.BIG .EQ $A2 ERR.VAL.TOO.BIG .EQ $A2
ERR.LINE.TOO.LONG .EQ $A3 ERR.LINE.TOO.LONG .EQ $A3
ERR.INVALID.LABEL .EQ $A4 ERR.INV.LABEL .EQ $A4
ERR.INVALID.DIRECTIVE .EQ $A5 ERR.INV.DIRECTIVE .EQ $A5
ERR.INVALID.OPCODE .EQ $A6 ERR.INV.OPCODE .EQ $A6
ERR.INVALID.AM.SYN .EQ $A7 ERR.INV.AM.SYN .EQ $A7
ERR.INVALID.AM.4.OC .EQ $A8 ERR.INV.AM.4.OC .EQ $A8
ERR.RANGE .EQ $A9 ERR.RANGE .EQ $A9
ERR.UNDEF.SYMBOL .EQ $AA ERR.UNDEF.SYMBOL .EQ $AA
ERR.SYMBOL.REDEFINE .EQ $AB ERR.SYMBOL.REDEFINE .EQ $AB
ERR.TOO.MANY.DO .EQ $AC ERR.TOO.MANY.DO .EQ $AC
ERR.MISSING.EXP .EQ $B0 ERR.MISSING.EXP .EQ $B0
ERR.EXP.SYN.ERROR .EQ $B1 ERR.EXP.SYN.ERROR .EQ $B1
ERR.INVALID.MACRO.DEF .EQ $E0 ERR.INV.MACRO.DEF .EQ $E0
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
*-------------------------------------- *--------------------------------------
@ -59,8 +62,8 @@ CS.START cld
.DA 0 .DA 0
.DA CS.END-CS.START CS .DA CS.END-CS.START CS
.DA DS.END-DS.START DS .DA DS.END-DS.START DS
.DA #128 SS .DA #0 SS
.DA #10 ZP .DA #16 ZP
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
* Relocation Table * Relocation Table
@ -85,7 +88,7 @@ L.SRC.GLabel.Flags .DA SRC.GLabel.Flags
L.SRC.GLabel.Len .DA SRC.GLabel.Len L.SRC.GLabel.Len .DA SRC.GLabel.Len
L.SRC.ELabel.Flags .DA SRC.ELabel.Flags L.SRC.ELabel.Flags .DA SRC.ELabel.Flags
L.SRC.ELabel.Len .DA SRC.ELabel.Len L.SRC.ELabel.Len .DA SRC.ELabel.Len
L.SRC.BUFFER .DA SRC.BUFFER L.ASM.6502 .DA ASM.6502
L.ASM.T.FILENAME .DA ASM.T.FILENAME L.ASM.T.FILENAME .DA ASM.T.FILENAME
L.FIO.Stat .DA FIO.Stat L.FIO.Stat .DA FIO.Stat
L.T.DIRECTIVES .DA T.DIRECTIVES L.T.DIRECTIVES .DA T.DIRECTIVES
@ -161,7 +164,6 @@ CS.INIT ldy #S.PS.ARGC
ldy #SRC.hFILENAME ldy #SRC.hFILENAME
sta (pData),y sta (pData),y
jsr FIO.Init jsr FIO.Init
bcs .9 bcs .9
@ -170,6 +172,20 @@ CS.INIT ldy #S.PS.ARGC
jsr DIR.Init jsr DIR.Init
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPLineBuf
txa
>STA.G SRC.hLineBuf
>LDYAI 256
>SYSCALL GetMem.YA
bcs .9
>STYA ZPTmpBuf
txa
>STA.G SRC.hTmpBuf
* lda (pPs) * lda (pPs)
* ora #S.PS.F.EVENT * ora #S.PS.F.EVENT
* sta (pPs) * sta (pPs)
@ -211,12 +227,12 @@ CS.RUN >SYSCALL GetChar
ldy #SRC.hFILENAME ldy #SRC.hFILENAME
lda (pData),y lda (pData),y
jsr FIO.OpenFileA >SYSCALL GetMemPtr.A
jsr FIO.OpenFile
bcs .99 bcs .99
.10 stz UsrBuf256 .10 jsr FIO.ReadLine
>DEBUG
jsr FIO.ReadLine
bcc .2 bcc .2
cmp #$4C End Of File? cmp #$4C End Of File?
bne .9 bne .9
@ -273,13 +289,22 @@ CS.QUIT jsr FIO.FileClose
jsr SYM.Quit jsr SYM.Quit
ldy #ASM.T.hMem >LDA.G ASM.T.hMem
lda (pData),y
beq .1 beq .1
>SYSCALL FreeMem.A >SYSCALL FreeMem.A
.1 ldy #SRC.hFILENAME .1 >LDA.G SRC.hFILENAME
lda (pData),y beq .2
>SYSCALL FreeMem.A
.2 >LDA.G SRC.hLineBuf
beq .3
>SYSCALL FreeMem.A
.3 >LDA.G SRC.hTmpBuf
beq .8 beq .8
>SYSCALL FreeMem.A >SYSCALL FreeMem.A
@ -294,101 +319,54 @@ CS.QUIT jsr FIO.FileClose
.INB /A2OSX.BUILD/BIN/DEV/ASM.S.SYM .INB /A2OSX.BUILD/BIN/DEV/ASM.S.SYM
*--------------------------------------- *---------------------------------------
CS.END CS.END
SRC.DIR.MAXLEN .EQ 5 T.DIRECTIVES >PSTR "AC"
T.DIRECTIVES .HS 02 >PSTR "AS"
.AS "AC" >PSTR "AT"
.HS 02 >PSTR "AZ"
.AS "AS" >PSTR "BS"
.HS 02 >PSTR "DA"
.AS "AT" >PSTR "DO"
.HS 02 >PSTR "DU"
.AS "AZ" >PSTR "DUMMY"
.HS 02 >PSTR "ED"
.AS "BS" >PSTR "ELSE"
.HS 02 >PSTR "EM"
.AS "DA" >PSTR "EN"
.HS 02 >PSTR "EP"
.AS "DO" >PSTR "EQ"
.HS 02 >PSTR "FIN"
.AS "DU" >PSTR "HS"
.HS 05 >PSTR "IN"
.AS "DUMMY" >PSTR "INB"
.HS 02 >PSTR "INB1"
.AS "ED" >PSTR "INB2"
.HS 04 >PSTR "INB3"
.AS "ELSE" >PSTR "INB4"
.HS 02 >PSTR "INB5"
.AS "EM" >PSTR "INB6"
.HS 02 >PSTR "INB7"
.AS "EN" >PSTR "INB8"
.HS 02 >PSTR "INB9"
.AS "EP" >PSTR "LI"
.HS 02 >PSTR "LIST"
.AS "EQ" >PSTR "MA"
.HS 03 >PSTR "OP"
.AS "FIN" >PSTR "OR"
.HS 02 >PSTR "PG"
.AS "HS" >PSTR "PH"
.HS 02 >PSTR "SE"
.AS "IN" >PSTR "TA"
.HS 03 >PSTR "TF"
.AS "INB" >PSTR "TI"
.HS 04 >PSTR "US"
.AS "INB1"
.HS 04
.AS "INB2"
.HS 04
.AS "INB3"
.HS 04
.AS "INB4"
.HS 04
.AS "INB5"
.HS 04
.AS "INB6"
.HS 04
.AS "INB7"
.HS 04
.AS "INB8"
.HS 04
.AS "INB9"
.HS 02
.AS "LI"
.HS 04
.AS "LIST"
.HS 02
.AS "MA"
.HS 02
.AS "OP"
.HS 02
.AS "OR"
.HS 02
.AS "PG"
.HS 02
.AS "PH"
.HS 02
.AS "SE"
.HS 02
.AS "TA"
.HS 02
.AS "TF"
.HS 02
.AS "TI"
.HS 02
.AS "US"
.HS 00 .HS 00
*--------------------------------------- *---------------------------------------
T.LI .HS 03 T.LI >PSTR "CON"
.AS "CON" >PSTR "COFF"
.HS 04 >PSTR "XON"
.AS "COFF" >PSTR "XOFF"
.HS 03 >PSTR "ON"
.AS "XON" >PSTR "OFF"
.HS 04
.AS "XOFF"
.HS 02
.AS "ON"
.HS 03
.AS "OFF"
.HS 00 .HS 00
*--------------------------------------- *---------------------------------------
MSG.HELP >CSTR "A2osX-Macro Assembler (S-C MASM 3.0 Based)\r\nUsage : ASM <src file> [type TXT ($04) or S-C/BAS ($FA)]\r\n" MSG.HELP >CSTR "A2osX-Macro Assembler (S-C MASM 3.0 Based)\r\nUsage : ASM <src file> [type TXT ($04) or S-C/BAS ($FA)]\r\n"
@ -405,8 +383,8 @@ MSG.SUMMARY >CSTR "\r\nEnd Of Assembly.\r\n"
SRC.AM.RESERVED >PSTR "[]()," SRC.AM.RESERVED >PSTR "[](),"
SRC.MOD.RESERVED >PSTR "#/<>" SRC.MOD.RESERVED >PSTR "#/<>"
SRC.EXP.RESERVED >PSTR "^!|&<=>+-*/" SRC.EXP.RESERVED >PSTR "^!|&<=>+-*/"
ASM.T.DEFAULT >CSTR ".T.6502" ASM.6502 >CSTR "6502"
ASM.T.FILENAMELEN .BS 1 *---------------------------------------
ASM.T.FILENAME .BS 65 ASM.T.FILENAME .BS 65
FIO.Stat .BS S.STAT FIO.Stat .BS S.STAT
@ -418,6 +396,7 @@ SYM.iCurGBlock.Save .BS 1
SYM.pCurGBlock.Save .BS 1 SYM.pCurGBlock.Save .BS 1
SRC.LINENUM .BS 2 SRC.LINENUM .BS 2
SRC.LinePtrSave .BS 2
SRC.Directive.ID .BS 1 SRC.Directive.ID .BS 1
SRC.Keyword.ID .BS 1 SRC.Keyword.ID .BS 1
SRC.ACC .BS 4 SRC.ACC .BS 4
@ -426,10 +405,6 @@ SRC.ARG .BS 4
SRC.AM.ID .BS 1 SRC.AM.ID .BS 1
SRC.AM.StrBuf .BS 32 SRC.AM.StrBuf .BS 32
SRC.AM.tmpBuf .BS 32 SRC.AM.tmpBuf .BS 32
SRC.Exp .BS 128
SRC.BufPtr .BS 1
SRC.BufPtrSave .BS 1
SRC.Buffer .BS 256
SRC.GLabel.New .BS 1 SRC.GLabel.New .BS 1
SRC.GLabel.Flags .BS 1 SRC.GLabel.Flags .BS 1
SRC.GLabel.Value .BS 4 SRC.GLabel.Value .BS 4
@ -445,7 +420,6 @@ SRC.FLabel.Flags .BS 1
SRC.FLabel.Value .BS 4 SRC.FLabel.Value .BS 4
SRC.FLabel.Len .BS 1 SRC.FLabel.Len .BS 1
SRC.FLabel.Name .BS SRC.GLABEL.MAXLEN SRC.FLabel.Name .BS SRC.GLABEL.MAXLEN
UsrBuf256 .BS 256
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR 0 .OR 0
@ -453,6 +427,8 @@ DS.START
bPause .BS 1 bPause .BS 1
SRC.hFILENAME .BS 1 SRC.hFILENAME .BS 1
SRC.hLineBuf .BS 1
SRC.hTmpBuf .BS 1
SRC.COUNT .BS 1 SRC.COUNT .BS 1
SRC.hFILES .BS SRC.IN.MAXDEPTH SRC.hFILES .BS SRC.IN.MAXDEPTH

View File

@ -1,12 +1,10 @@
PR#3
PREFIX /A2OSX.BUILD
NEW NEW
INC 1 PREFIX /A2OSX.BUILD
AUTO 6 AUTO 4,1
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000
.TF /A2OSX.BUILD/TEST .TF /A2OSX.BUILD/ROOT/TEST
*-------------------------------------- *--------------------------------------
.INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/MACROS.I
.INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/A2OSX.I
@ -139,5 +137,5 @@ DS.END
.ED .ED
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE /A2OSX.BUILD/TEST.S SAVE /A2OSX.BUILD/ROOT/TEST.S
ASM ASM