mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-06 12:29:02 +00:00
Kernel 0.94
This commit is contained in:
parent
7fe7639385
commit
1969e7e8ba
23
.Docs/ASM.md
23
.Docs/ASM.md
@ -1,9 +1,14 @@
|
|||||||
# A2osX Macro Assembler (0.9.3)
|
# A2osX Macro Assembler (0.94)
|
||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
|
||||||
Multi-CPU macro assembler based on S-C MASM 3.0 dialect
|
Multi-CPU macro assembler based on S-C MASM 3.0 dialect
|
||||||
|
|
||||||
|
## Difference with S-C MASM 3.0
|
||||||
|
|
||||||
|
Symbols are case sensitive
|
||||||
|
no .AC support
|
||||||
|
|
||||||
## Directives
|
## Directives
|
||||||
|
|
||||||
| Code | Description | Compatibility | Status | Syntax | Comment |
|
| Code | Description | Compatibility | Status | Syntax | Comment |
|
||||||
@ -12,30 +17,30 @@ Multi-CPU macro assembler based on S-C MASM 3.0 dialect
|
|||||||
| .AS | Ascii String | S-C,A2osX | Working | `.AS dTEXTd` where d is any delimiter `.AS -"TEXT"`produce ascii code with b7=1 | |
|
| .AS | Ascii String | S-C,A2osX | Working | `.AS dTEXTd` where d is any delimiter `.AS -"TEXT"`produce ascii code with b7=1 | |
|
||||||
| .AT | Ascii string Terminated | S-C,A2osX | Working | (same as above) | |
|
| .AT | Ascii string Terminated | S-C,A2osX | Working | (same as above) | |
|
||||||
| .AZ | Ascii string Zero terminated (C String) | S-C,A2osX | Working | (same as above) | |
|
| .AZ | Ascii string Zero terminated (C String) | S-C,A2osX | Working | (same as above) | |
|
||||||
| .BS | Block Storage | S-C,A2osX | Working | | |
|
| .BS | Block Storage | S-C,A2osX | Working | .BS x[,b] | |
|
||||||
| .DA | Data | S-C,A2osX | Working | | |
|
| .DA | Data | S-C,A2osX | Working | | |
|
||||||
| .DO | conditional start | S-C,A2osX | Working | | |
|
| .DO | conditional start | S-C,A2osX | Working | | |
|
||||||
| .DU,.DUMMY | begin DUmmy section | S-C,A2osX | Working | | |
|
| .DU,.DUMMY | begin DUmmy section | S-C,A2osX | Working | | |
|
||||||
| .ED | End Dmmy section | S-C,A2osX | Working | | |
|
| .ED | End Dummy section | S-C,A2osX | Working | | |
|
||||||
| .DA | DAta | S-C,A2osX | Working | | |
|
| .DA | DAta | S-C,A2osX | Working | | |
|
||||||
| .ELSE | conditional ELSE | S-C,A2osX | Working | | |
|
| .ELSE | conditional ELSE | S-C,A2osX | Working | | |
|
||||||
| .EM | End Macro | S-C,A2osX | Working | | |
|
| .EM | End Macro | S-C,A2osX | Working | | |
|
||||||
| .EN | ENd of source code | S-C,A2osX | In Progress | | |
|
| .EN | ENd of source code | S-C,A2osX | IGNORED | | |
|
||||||
| .EP | End Phase | S-C,A2osX | Working | | |
|
| .EP | End Phase | S-C,A2osX | Working | | |
|
||||||
| .EQ | EQuate | S-C,A2osX | Working | | |
|
| .EQ | EQuate | S-C,A2osX | Working | | |
|
||||||
| .FIN | conditional end| S-C,A2osX | Working | | |
|
| .FIN | conditional end| S-C,A2osX | Working | | |
|
||||||
| .PH | PHase start| S-C,A2osX | Working | | |
|
| .PH | PHase start| S-C,A2osX | Working | | |
|
||||||
| .HS | Hex String | S-C,A2osX | Working | `HS FE1A78` delimiter allowed : `HS 00.11,22` | |
|
| .HS | Hex String | S-C,A2osX | Working | `HS FE1A78` delimiter allowed : `HS 00.11,22` | |
|
||||||
| .IN,.INB,.INBx | | S-C,A2osX | Working | | |
|
| .IN,.INB,.INBx | | S-C,A2osX | Working | .INB MYFILE | |
|
||||||
| .LI,.LIST | | S-C,A2osX | Working | | |
|
| .LI,.LIST | | S-C,A2osX | Working | .LIST ON/OFF CON/COFF MON/MOFF XON/XOFF | |
|
||||||
| .MA | MAcro deffinition | S-C,A2osX | Working | | |
|
| .MA | MAcro deffinition | S-C,A2osX | Working | .MA >MYMACRO | |
|
||||||
| .OP | OPCode | S-C,A2osX | Working | `.OP cpu` where cpu is one of 6502,65C02,65R02,65816,Z80,SW16 | |
|
| .OP | OPCode | S-C,A2osX | Working | `.OP cpu` where cpu is one of 6502,65C02,65R02,65816,Z80,SW16 | |
|
||||||
| .OR | ORigin | S-C,A2osX | Working | | |
|
| .OR | ORigin | S-C,A2osX | Working | .OR $2000 | |
|
||||||
| .PG | PaGe control | S-C,A2osX | IGNORED | | |
|
| .PG | PaGe control | S-C,A2osX | IGNORED | | |
|
||||||
| .PH | PHase | S-C,A2osX | Working | | |
|
| .PH | PHase | S-C,A2osX | Working | | |
|
||||||
| .SE | | S-C,A2osX | Working | | |
|
| .SE | | S-C,A2osX | Working | | |
|
||||||
| .TA | Target Address| S-C,A2osX | IGNORED | | |
|
| .TA | Target Address| S-C,A2osX | IGNORED | | |
|
||||||
| .TF | Target File | S-C,A2osX | Working | | |
|
| .TF | Target File | S-C,A2osX | Working | .TF TargetFile[,Txxx] | only ,TSYS supported |
|
||||||
| .TI | TItle | S-C,A2osX | IGNORED | | |
|
| .TI | TItle | S-C,A2osX | IGNORED | | |
|
||||||
| .US | USer defined | S-C,A2osX | IGNORED | | |
|
| .US | USer defined | S-C,A2osX | IGNORED | | |
|
||||||
|
|
||||||
|
Binary file not shown.
@ -2,15 +2,12 @@ NEW
|
|||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.Reset lda #$80
|
DIR.Reset lda #$80
|
||||||
ldy #ASM.LI.ON
|
>STA.G ASM.LI.ON
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
lda #0
|
>STZ.G ASM.LI.CON
|
||||||
ldy #ASM.LI.CON
|
iny #ASM.LI.MON
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
ldy #ASM.LI.MON
|
iny #ASM.LI.XON
|
||||||
sta (pData),y
|
|
||||||
ldy #ASM.LI.XON
|
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
>STA.G MAC.StkPtr
|
>STA.G MAC.StkPtr
|
||||||
@ -198,6 +195,7 @@ DIR.DU >LDA.G ASM.DU.ON
|
|||||||
|
|
||||||
lda #$80
|
lda #$80
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
ldy #ASM.PC.DU
|
ldy #ASM.PC.DU
|
||||||
jsr DIR.SavePC
|
jsr DIR.SavePC
|
||||||
clc
|
clc
|
||||||
@ -491,23 +489,37 @@ DIR.OP.SYNERR lda #E.SYNTAX.ERROR
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.OR jsr SRC.GetNextCharNB
|
DIR.OR
|
||||||
|
* >DEBUG
|
||||||
|
jsr SRC.GetNextCharNB
|
||||||
bcs DIR.OP.SYNERR
|
bcs DIR.OP.SYNERR
|
||||||
|
|
||||||
jsr EXP.Eval
|
jsr EXP.Eval
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #ASM.PC
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
ldy #ASM.PC
|
||||||
|
|
||||||
.1 lda SRC.ACC,x
|
.1 lda SRC.ACC,x
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
inx
|
|
||||||
iny
|
iny
|
||||||
|
inx
|
||||||
cpx #4
|
cpx #4
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
clc
|
>LDA.G ASM.DU.ON
|
||||||
|
bmi .8
|
||||||
|
|
||||||
|
>LDA.G ASM.PH.ON
|
||||||
|
bmi .8
|
||||||
|
|
||||||
|
lda SRC.ACC
|
||||||
|
>STA.G DST.AUXTYPE
|
||||||
|
lda SRC.ACC+1
|
||||||
|
iny
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.PG clc
|
DIR.PG clc
|
||||||
@ -527,11 +539,13 @@ DIR.PH >LDA.G ASM.PH.ON
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.TA clc
|
DIR.TA
|
||||||
rts
|
|
||||||
|
DIR.TA.8 clc
|
||||||
|
DIR.TA.RTS rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.TF >LDA.G ASM.PASS If Pass#1, ignore
|
DIR.TF >LDA.G ASM.PASS If Pass#1, ignore
|
||||||
beq .8
|
beq DIR.TA.8
|
||||||
|
|
||||||
>LDA.G ArgDstFile
|
>LDA.G ArgDstFile
|
||||||
beq .1
|
beq .1
|
||||||
@ -544,24 +558,73 @@ DIR.TF >LDA.G ASM.PASS If Pass#1, ignore
|
|||||||
|
|
||||||
>LDYA ZPLinePtr
|
>LDYA ZPLinePtr
|
||||||
|
|
||||||
.2 >PUSHYA
|
.2 >SYSCALL strdup
|
||||||
|
bcs DIR.TA.RTS
|
||||||
|
>STYA ZPPtr1
|
||||||
|
stx ZPPtr2
|
||||||
|
|
||||||
|
lda #S.FI.T.BIN
|
||||||
|
sta ZPPtr2+1
|
||||||
|
|
||||||
|
ldy #$ff
|
||||||
|
|
||||||
|
.3 iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
beq .7
|
||||||
|
cmp #','
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
cmp #'T'
|
||||||
|
beq .4
|
||||||
|
|
||||||
|
.30 lda #E.SYNTAX.ERROR
|
||||||
|
bra .9
|
||||||
|
|
||||||
|
.4 ldx #0
|
||||||
|
|
||||||
|
.5 iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
cmp DIR.SYS,x including \0
|
||||||
|
bne .30
|
||||||
|
inx
|
||||||
|
cpx #4
|
||||||
|
bne .5
|
||||||
|
|
||||||
|
lda #S.FI.T.SYS
|
||||||
|
sta ZPPtr2+1
|
||||||
|
|
||||||
|
.7 >PUSHW ZPPtr1
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWI 0 Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
txa
|
txa
|
||||||
>STA.G DST.hFILENAME
|
>STA.G DST.hFILENAME
|
||||||
>SYSCALL getmemptr
|
>SYSCALL getmemptr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHBI O.WRONLY+O.CREATE
|
>PUSHBI O.WRONLY+O.CREATE
|
||||||
>PUSHBI S.FI.T.BIN
|
>PUSHB ZPPtr2+1 Type
|
||||||
>PUSHWZ
|
>PUSHW.G DST.AUXTYPE
|
||||||
>SYSCALL FOpen
|
>SYSCALL FOpen
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STA.G DST.hREFNUM
|
>STA.G DST.hREFNUM
|
||||||
|
|
||||||
.8 clc
|
clc
|
||||||
.9 rts
|
|
||||||
|
.9 php
|
||||||
|
pha
|
||||||
|
lda ZPPtr2
|
||||||
|
>SYSCALL freemem
|
||||||
|
pla
|
||||||
|
plp
|
||||||
|
|
||||||
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.TI clc
|
DIR.TI clc
|
||||||
rts
|
rts
|
||||||
@ -572,14 +635,17 @@ DIR.US clc
|
|||||||
DIR.SavePC phy
|
DIR.SavePC phy
|
||||||
plx
|
plx
|
||||||
ldy #ASM.PC+3
|
ldy #ASM.PC+3
|
||||||
|
|
||||||
.1 lda (pData),y
|
.1 lda (pData),y
|
||||||
pha
|
pha
|
||||||
dey
|
dey
|
||||||
cpy #ASM.PC-1
|
cpy #ASM.PC-1
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
phx
|
phx
|
||||||
ply
|
ply
|
||||||
ldx #3
|
ldx #3
|
||||||
|
|
||||||
.2 pla
|
.2 pla
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
iny
|
iny
|
||||||
@ -589,18 +655,22 @@ DIR.SavePC phy
|
|||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
DIR.RestorePC ldx #3
|
DIR.RestorePC ldx #3
|
||||||
|
|
||||||
.1 lda (pData),y
|
.1 lda (pData),y
|
||||||
pha
|
pha
|
||||||
iny
|
iny
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
ldy #ASM.PC+3
|
ldy #ASM.PC+3
|
||||||
ldx #3
|
ldx #3
|
||||||
|
|
||||||
.2 pla
|
.2 pla
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -144,21 +144,26 @@ EXP.Eval.Next stz SRC.ACC.F
|
|||||||
cmp #','
|
cmp #','
|
||||||
bne EXP.EvalExitSYN
|
bne EXP.EvalExitSYN
|
||||||
bra EXP.EvalOperator
|
bra EXP.EvalOperator
|
||||||
|
|
||||||
.45 jsr SRC.GetNextChar
|
.45 jsr SRC.GetNextChar
|
||||||
bra EXP.EvalOperator
|
bra EXP.EvalOperator
|
||||||
|
|
||||||
.42 jsr SRC.IsLetter Symbol ?
|
.42 jsr SRC.IsLetter Symbol ?
|
||||||
bcs EXP.EvalExitSYN
|
bcs EXP.EvalExitSYN
|
||||||
|
|
||||||
jsr EXP.GetGlobal
|
jsr EXP.GetGlobal
|
||||||
bcs EXP.EvalExitUND
|
bcs EXP.EvalExitUND
|
||||||
bra EXP.EvalOperator
|
bra EXP.EvalOperator
|
||||||
|
|
||||||
EXP.EvalExitOK >LDA.G EXP.Modifier
|
EXP.EvalExitOK >LDA.G EXP.Modifier
|
||||||
beq .8
|
beq .8
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
jmp (J.EXP.MOD-2,x)
|
jmp (J.EXP.MOD-2,x)
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
EXP.EvalExitRTS rts
|
EXP.EvalExitRTS rts
|
||||||
|
|
||||||
EXP.EvalExitSYN lda #E.SYNTAX.ERROR
|
EXP.EvalExitSYN lda #E.SYNTAX.ERROR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@ -49,12 +49,12 @@ FIO.LOAD.CPU >STYA ZPPtr2
|
|||||||
|
|
||||||
.3 stz ASM.CPU.FILE,x
|
.3 stz ASM.CPU.FILE,x
|
||||||
|
|
||||||
>LDA.G ASM.T.hMem
|
>LDA.G ASM.hCPUFILE
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
>STZ.G ASM.T.hMem
|
>STZ.G ASM.hCPUFILE
|
||||||
|
|
||||||
.4 >PUSHW L.MSG.T.FILE
|
.4 >PUSHW L.MSG.T.FILE
|
||||||
>PUSHW L.ASM.CPU.FILE
|
>PUSHW L.ASM.CPU.FILE
|
||||||
@ -69,7 +69,7 @@ FIO.LOAD.CPU >STYA ZPPtr2
|
|||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
txa
|
txa
|
||||||
>STA.G ASM.T.hMem
|
>STA.G ASM.hCPUFILE
|
||||||
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
@ -118,11 +118,12 @@ FIO.OpenFile >STYA ZPPtr1
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
.1 >PUSHW ZPPtr1
|
.1 >PUSHW ZPPtr1
|
||||||
>PUSHW L.FIO.Stat
|
>PUSHW ZPTmpBuf
|
||||||
>SYSCALL Stat
|
>SYSCALL Stat
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
lda FIO.Stat+S.STAT.P.TYPE
|
ldy #S.STAT.P.TYPE
|
||||||
|
lda (ZPTmpBuf),y
|
||||||
cmp #S.FI.T.TXT
|
cmp #S.FI.T.TXT
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
@ -137,7 +138,9 @@ FIO.OpenFile >STYA ZPPtr1
|
|||||||
.3 >PUSHW ZPPtr1
|
.3 >PUSHW ZPPtr1
|
||||||
txa
|
txa
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHB FIO.Stat+S.STAT.P.TYPE
|
ldy #S.STAT.P.TYPE
|
||||||
|
lda (ZPTmpBuf),y
|
||||||
|
>PUSHA
|
||||||
>PUSHWZ
|
>PUSHWZ
|
||||||
>SYSCALL FOpen
|
>SYSCALL FOpen
|
||||||
bcs .99
|
bcs .99
|
||||||
@ -154,7 +157,10 @@ FIO.OpenFile >STYA ZPPtr1
|
|||||||
adc #SRC.hFILETYPES
|
adc #SRC.hFILETYPES
|
||||||
tay
|
tay
|
||||||
|
|
||||||
lda FIO.Stat+S.STAT.P.TYPE
|
phy
|
||||||
|
ldy #S.STAT.P.TYPE
|
||||||
|
lda (ZPTmpBuf),y
|
||||||
|
ply
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
>INC.G SRC.Depth
|
>INC.G SRC.Depth
|
||||||
|
@ -231,6 +231,9 @@ OUT.EmitByte phy
|
|||||||
>LDA.G ASM.PASS
|
>LDA.G ASM.PASS
|
||||||
beq .10
|
beq .10
|
||||||
|
|
||||||
|
>LDA.G ASM.DU.ON
|
||||||
|
bmi .10
|
||||||
|
|
||||||
pla
|
pla
|
||||||
pha
|
pha
|
||||||
>PUSHA
|
>PUSHA
|
||||||
@ -254,8 +257,10 @@ OUT.EmitByte phy
|
|||||||
jsr OUT.PrintCR
|
jsr OUT.PrintCR
|
||||||
|
|
||||||
.1 jsr OUT.Reset
|
.1 jsr OUT.Reset
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
ldy #OUT.Buf
|
ldy #OUT.Buf
|
||||||
|
|
||||||
.2 inc
|
.2 inc
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
clc
|
clc
|
||||||
|
@ -941,14 +941,6 @@ SRC.DoCheck sec
|
|||||||
|
|
||||||
.8 rts CS if TRUE
|
.8 rts CS if TRUE
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
*DEBUG.PSTR pha
|
|
||||||
* >PUSHW L.MSG.PSTR
|
|
||||||
* pla
|
|
||||||
* >PUSHYA
|
|
||||||
* >PUSHBI 2
|
|
||||||
* >SYSCALL printf
|
|
||||||
* rts
|
|
||||||
*---------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/BIN/ASM.S.SRC
|
SAVE USR/SRC/BIN/ASM.S.SRC
|
||||||
LOAD USR/SRC/BIN/ASM.S
|
LOAD USR/SRC/BIN/ASM.S
|
||||||
|
@ -27,9 +27,6 @@ SYM.Init >SYSCALL SListNew
|
|||||||
>STA.G SYM.hGlobalBuf
|
>STA.G SYM.hGlobalBuf
|
||||||
.9 rts
|
.9 rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
SYM.Reset >STZ.G SYM.bInGlobal
|
|
||||||
rts
|
|
||||||
*---------------------------------------
|
|
||||||
SYM.Quit >LDA.G SYM.hGlobalBuf
|
SYM.Quit >LDA.G SYM.hGlobalBuf
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
|
@ -33,6 +33,9 @@ ZPMacroBuf .BS 2
|
|||||||
ZPMacroArgBuf .BS 2
|
ZPMacroArgBuf .BS 2
|
||||||
ZPMacroArgCnt .BS 1
|
ZPMacroArgCnt .BS 1
|
||||||
|
|
||||||
|
DIR.Byte .BS 1
|
||||||
|
|
||||||
|
DIR.Word .BS 2
|
||||||
ZPPtr1 .BS 2
|
ZPPtr1 .BS 2
|
||||||
ZPPtr2 .BS 2
|
ZPPtr2 .BS 2
|
||||||
|
|
||||||
@ -127,7 +130,6 @@ L.MSG.LSYMBOL .DA MSG.LSYMBOL
|
|||||||
L.MSG.PSYMBOL .DA MSG.PSYMBOL
|
L.MSG.PSYMBOL .DA MSG.PSYMBOL
|
||||||
L.MSG.SUMMARY .DA MSG.SUMMARY
|
L.MSG.SUMMARY .DA MSG.SUMMARY
|
||||||
L.MSG.END .DA MSG.END
|
L.MSG.END .DA MSG.END
|
||||||
L.MSG.PSTR .DA MSG.PSTR
|
|
||||||
L.MSG.CRLF .DA MSG.CRLF
|
L.MSG.CRLF .DA MSG.CRLF
|
||||||
L.MSG.WORD .DA MSG.WORD
|
L.MSG.WORD .DA MSG.WORD
|
||||||
L.MSG.ACC .DA MSG.ACC
|
L.MSG.ACC .DA MSG.ACC
|
||||||
@ -137,7 +139,6 @@ L.MSG.T.FILE .DA MSG.T.FILE
|
|||||||
L.SRC.AM.StrBuf .DA SRC.AM.StrBuf
|
L.SRC.AM.StrBuf .DA SRC.AM.StrBuf
|
||||||
L.ASM.6502 .DA ASM.6502
|
L.ASM.6502 .DA ASM.6502
|
||||||
L.ASM.CPU.FILE .DA ASM.CPU.FILE
|
L.ASM.CPU.FILE .DA ASM.CPU.FILE
|
||||||
L.FIO.Stat .DA FIO.Stat
|
|
||||||
L.SRC.ACC.F .DA SRC.ACC.F
|
L.SRC.ACC.F .DA SRC.ACC.F
|
||||||
L.SRC.ACC .DA SRC.ACC
|
L.SRC.ACC .DA SRC.ACC
|
||||||
L.SRC.ARG .DA SRC.ARG
|
L.SRC.ARG .DA SRC.ARG
|
||||||
@ -337,9 +338,10 @@ CS.RUN ldy #S.PS.hStdIn
|
|||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr DIR.Reset
|
jsr DIR.Reset
|
||||||
jsr SYM.Reset
|
|
||||||
jsr MAC.Reset
|
jsr MAC.Reset
|
||||||
|
|
||||||
|
>STZ.G SYM.bInGlobal
|
||||||
|
|
||||||
.10 >LDYA ZPLineBuf
|
.10 >LDYA ZPLineBuf
|
||||||
>STYA ZPLinePtr
|
>STYA ZPLinePtr
|
||||||
|
|
||||||
@ -415,7 +417,7 @@ CS.QUIT jsr FIO.FileClose
|
|||||||
|
|
||||||
jsr SYM.Quit
|
jsr SYM.Quit
|
||||||
|
|
||||||
ldy #ASM.T.hMem
|
ldy #ASM.hCPUFILE
|
||||||
jsr .7
|
jsr .7
|
||||||
|
|
||||||
ldy #SRC.hFILENAME
|
ldy #SRC.hFILENAME
|
||||||
@ -501,6 +503,8 @@ SRC.MOD.RESERVED >PSTR "#/^<>"
|
|||||||
SRC.EXP.RESERVED >PSTR "^!|&<=>+-*/"
|
SRC.EXP.RESERVED >PSTR "^!|&<=>+-*/"
|
||||||
SRC.AM.RESERVED >PSTR "[](),"
|
SRC.AM.RESERVED >PSTR "[](),"
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
|
DIR.SYS .AZ "SYS"
|
||||||
|
*---------------------------------------
|
||||||
ASM.6502 .AZ "6502"
|
ASM.6502 .AZ "6502"
|
||||||
MSG.HELP .AS "A2osX-Macro Assembler (S-C MASM 3.0 Based)\r\n"
|
MSG.HELP .AS "A2osX-Macro Assembler (S-C MASM 3.0 Based)\r\n"
|
||||||
.AS "Usage : ASM <src file> [type TXT ($04) or S-C/BAS ($FA)]\r\n"
|
.AS "Usage : ASM <src file> [type TXT ($04) or S-C/BAS ($FA)]\r\n"
|
||||||
@ -526,15 +530,12 @@ MSG.LSYMBOL .AZ " .%d=%h%h%h%h"
|
|||||||
MSG.PSYMBOL .AZ " :%d(%d)=%h%h%h%h"
|
MSG.PSYMBOL .AZ " :%d(%d)=%h%h%h%h"
|
||||||
MSG.SUMMARY .AZ "\r\nSymbol Table Size : %5D Bytes.\r\n"
|
MSG.SUMMARY .AZ "\r\nSymbol Table Size : %5D Bytes.\r\n"
|
||||||
MSG.END .AZ "**** End Of Assembly."
|
MSG.END .AZ "**** End Of Assembly."
|
||||||
MSG.PSTR .AS "{%S}"
|
|
||||||
MSG.CRLF .AZ "\r\n"
|
MSG.CRLF .AZ "\r\n"
|
||||||
MSG.WORD .AZ ">$%H"
|
MSG.WORD .AZ ">$%H"
|
||||||
MSG.ACC .AZ "%b,%d,%h%h%h%h\r\n"
|
MSG.ACC .AZ "%b,%d,%h%h%h%h\r\n"
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
ASM.CPU.FILE .BS 65
|
ASM.CPU.FILE .BS 65
|
||||||
|
|
||||||
FIO.Stat .BS S.STAT
|
|
||||||
|
|
||||||
SRC.ACC.F .BS 1
|
SRC.ACC.F .BS 1
|
||||||
SRC.ACC.SIZE .BS 1
|
SRC.ACC.SIZE .BS 1
|
||||||
SRC.ACC .BS 4
|
SRC.ACC .BS 4
|
||||||
@ -563,19 +564,16 @@ SRC.hFILETYPES .BS IN.MAXDEPTH
|
|||||||
SRC.LINENUM .BS 2
|
SRC.LINENUM .BS 2
|
||||||
SRC.AMID .BS 1
|
SRC.AMID .BS 1
|
||||||
|
|
||||||
|
ASM.hCPUFILE .BS 1
|
||||||
|
|
||||||
DST.hFILENAME .BS 1
|
DST.hFILENAME .BS 1
|
||||||
DST.hREFNUM .BS 1
|
DST.hREFNUM .BS 1
|
||||||
DST.hFILETYPE .BS 1
|
DST.AUXTYPE .BS 2
|
||||||
|
|
||||||
DIR.Word .BS 2
|
|
||||||
DIR.Byte .BS 1
|
|
||||||
|
|
||||||
EXP.Modifier .BS 1
|
EXP.Modifier .BS 1
|
||||||
EXP.Prefix .BS 1
|
EXP.Prefix .BS 1
|
||||||
EXP.Operator .BS 1
|
EXP.Operator .BS 1
|
||||||
|
|
||||||
ASM.T.hMem .BS 1
|
|
||||||
|
|
||||||
ASM.PASS .BS 1
|
ASM.PASS .BS 1
|
||||||
|
|
||||||
ASM.DO.StackPtr .BS 1
|
ASM.DO.StackPtr .BS 1
|
||||||
|
@ -203,10 +203,10 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
|
|||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.OPEN >PUSHWZ Aux type
|
CS.RUN.OPEN >PUSHW ZPPtr1
|
||||||
>PUSHBI 0 Type
|
|
||||||
>PUSHBI O.RDONLY
|
>PUSHBI O.RDONLY
|
||||||
>LDYA ZPPtr1
|
>PUSHBI 0 Type
|
||||||
|
>PUSHWZ Aux type
|
||||||
>SYSCALL FOpen
|
>SYSCALL FOpen
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -48,7 +48,7 @@ CS.RUN >LDYA L.MemStat
|
|||||||
>SYSCALL GetMemStat
|
>SYSCALL GetMemStat
|
||||||
|
|
||||||
>LDYA L.MSG.Main
|
>LDYA L.MSG.Main
|
||||||
>SYSCALL puts
|
>SYSCALL PutS
|
||||||
|
|
||||||
lda MemStat+S.MSTAT.MF
|
lda MemStat+S.MSTAT.MF
|
||||||
sec
|
sec
|
||||||
@ -61,7 +61,7 @@ CS.RUN >LDYA L.MemStat
|
|||||||
>SLEEP
|
>SLEEP
|
||||||
|
|
||||||
>LDYA L.MSG.Aux
|
>LDYA L.MSG.Aux
|
||||||
>SYSCALL puts
|
>SYSCALL PutS
|
||||||
|
|
||||||
lda MemStat+S.MSTAT.XF
|
lda MemStat+S.MSTAT.XF
|
||||||
sec
|
sec
|
||||||
@ -74,7 +74,7 @@ CS.RUN >LDYA L.MemStat
|
|||||||
>SLEEP
|
>SLEEP
|
||||||
|
|
||||||
>LDYA L.MSG.Kernel
|
>LDYA L.MSG.Kernel
|
||||||
>SYSCALL puts
|
>SYSCALL PutS
|
||||||
|
|
||||||
lda MemStat+S.MSTAT.DH
|
lda MemStat+S.MSTAT.DH
|
||||||
sec
|
sec
|
||||||
@ -84,8 +84,8 @@ CS.RUN >LDYA L.MemStat
|
|||||||
sbc MemStat+S.MSTAT.DF+1
|
sbc MemStat+S.MSTAT.DF+1
|
||||||
ldx #S.MSTAT.DL
|
ldx #S.MSTAT.DL
|
||||||
jsr CS.RUN.PRINT
|
jsr CS.RUN.PRINT
|
||||||
>LDYA L.MSG.END
|
>LDYA L.MSG.End
|
||||||
>SYSCALL puts
|
>SYSCALL PutS
|
||||||
lda #0
|
lda #0
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
@ -107,7 +107,7 @@ CS.RUN.PRINT pha
|
|||||||
pla
|
pla
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHBI 14
|
>PUSHBI 14
|
||||||
>SYSCALL printf
|
>SYSCALL PrintF
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT sec
|
CS.DOEVENT sec
|
||||||
|
@ -132,8 +132,6 @@ CS.RUN.ETCINIT >LDYAI 256
|
|||||||
cmp #'#'
|
cmp #'#'
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>LDYA BufPtr
|
|
||||||
>SYSCALL puts
|
|
||||||
>LDYA BufPtr
|
>LDYA BufPtr
|
||||||
jsr CS.RUN.EXEC.YA
|
jsr CS.RUN.EXEC.YA
|
||||||
bra .1
|
bra .1
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
INITD .EQ 1
|
|
||||||
*--------------------------------------
|
|
||||||
Kernel.Init2 sei
|
Kernel.Init2 sei
|
||||||
ldx #$FF
|
ldx #$FF
|
||||||
txs
|
txs
|
||||||
@ -153,30 +151,12 @@ Kernel.Init3C >PUSHWI MSG.Init3
|
|||||||
|
|
||||||
jsr PwdMgrInit
|
jsr PwdMgrInit
|
||||||
|
|
||||||
.DO INITD=0
|
>PUSHWI MSG.EXEC
|
||||||
lda KBD
|
|
||||||
bpl .7
|
|
||||||
sta KBDSTROBE
|
|
||||||
cmp #146 CTRL-R for ROOT mode
|
|
||||||
bne .7
|
|
||||||
|
|
||||||
>PUSHWI MSG.CTRLR
|
|
||||||
>PUSHBI 0
|
|
||||||
>SYSCALL2 printf
|
|
||||||
>PUSHWI BINSH
|
|
||||||
bra .8
|
|
||||||
|
|
||||||
.7 >PUSHWI MSG.EtcInit
|
|
||||||
>PUSHWI ETCINIT
|
|
||||||
>PUSHBI 2
|
|
||||||
>SYSCALL2 printf
|
|
||||||
|
|
||||||
>PUSHWI ETCINIT
|
|
||||||
|
|
||||||
.8 .ELSE
|
|
||||||
>PUSHWI SBININITD
|
>PUSHWI SBININITD
|
||||||
|
>PUSHBI 2
|
||||||
|
>SYSCALL printf
|
||||||
|
|
||||||
.FIN
|
>PUSHWI SBININITD
|
||||||
>PUSHBI 0 PS Flags
|
>PUSHBI 0 PS Flags
|
||||||
>SYSCALL2 ExecL
|
>SYSCALL2 ExecL
|
||||||
bcs Kernel.Init3.Err
|
bcs Kernel.Init3.Err
|
||||||
@ -1166,7 +1146,7 @@ MSG.TSK .AZ "Task Manager..."
|
|||||||
MSG.PWD .AZ "Password Manager..."
|
MSG.PWD .AZ "Password Manager..."
|
||||||
MSG.CTRLR .AZ "Ctrl-R Pressed, entering ROOT mode..."
|
MSG.CTRLR .AZ "Ctrl-R Pressed, entering ROOT mode..."
|
||||||
MSG.PWDINIT .AZ "Loading ETC/PASSWD file..."
|
MSG.PWDINIT .AZ "Loading ETC/PASSWD file..."
|
||||||
MSG.ETCINIT .AZ "Executing %s..."
|
MSG.EXEC .AZ "Executing %s..."
|
||||||
MSG.StartupErr .AZ "Failed : [$%h]\r\n"
|
MSG.StartupErr .AZ "Failed : [$%h]\r\n"
|
||||||
MSG.Init3.OK .AZ "OK\r\nA2osX[Stage3]:Complete.\r\n"
|
MSG.Init3.OK .AZ "OK\r\nA2osX[Stage3]:Complete.\r\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -1194,12 +1174,7 @@ I.ENV.ROOT .AZ "ROOT"
|
|||||||
I.ENV.PATH .AZ "PATH=${BOOT}sbin/:${BOOT}bin/"
|
I.ENV.PATH .AZ "PATH=${BOOT}sbin/:${BOOT}bin/"
|
||||||
I.ENV.LIB .AZ "LIB=${BOOT}lib/"
|
I.ENV.LIB .AZ "LIB=${BOOT}lib/"
|
||||||
I.ENV.DRV .AZ "DRV=${BOOT}drv/"
|
I.ENV.DRV .AZ "DRV=${BOOT}drv/"
|
||||||
.DO INITD=0
|
|
||||||
BINSH .AZ "${BOOT}bin/sh"
|
|
||||||
ETCINIT .AZ "${ROOT}etc/init"
|
|
||||||
.ELSE
|
|
||||||
SBININITD .AZ "${ROOT}sbin/initd"
|
SBININITD .AZ "${ROOT}sbin/initd"
|
||||||
.FIN
|
|
||||||
ETCPASSWD .AZ "${ROOT}etc/passwd"
|
ETCPASSWD .AZ "${ROOT}etc/passwd"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PwdMgr.ROOT .DA #S.SESSION.P.ROOT
|
PwdMgr.ROOT .DA #S.SESSION.P.ROOT
|
||||||
|
Loading…
Reference in New Issue
Block a user