mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-12 01:30:36 +00:00
Kernel 0.94.3c (kernel migration step c)
ASM broken
This commit is contained in:
parent
a417f7aba6
commit
949d7e3b22
Binary file not shown.
@ -149,10 +149,6 @@ EXP.Eval.Next stz SRC.ACC
|
||||
bcs EXP.EvalExitSYN
|
||||
|
||||
jsr SYM.LookupGlobal
|
||||
.DO ASMDBG=1
|
||||
lda #"?"
|
||||
jsr EXP.DBG
|
||||
.FIN
|
||||
bcc EXP.EvalOperator
|
||||
EXP.EvalExitRTS rts
|
||||
|
||||
@ -225,11 +221,6 @@ EXP.EvalOperator
|
||||
lda SRC.ACC.F
|
||||
sta SRC.ARG.F
|
||||
|
||||
.DO ASMDBG=1
|
||||
lda #'@'
|
||||
jsr EXP.DBG
|
||||
.FIN
|
||||
|
||||
jmp EXP.Eval.Next0
|
||||
*---------------------------------------
|
||||
EXP.GetLocal jsr SRC.GetNextChar
|
||||
|
@ -287,17 +287,6 @@ OUT.PrintLineErr
|
||||
>PUSHBI 1
|
||||
jsr OUT.Print
|
||||
|
||||
.DO ASMDBG=1
|
||||
>PUSHW L.MSG.EQU0+2
|
||||
>PUSHB (ZPSymbolBuf) flags
|
||||
>PUSHBI 1
|
||||
>SYSCALL printf
|
||||
|
||||
>LDYA L.MSG.CRLF
|
||||
>STYA ZPTmpBuf
|
||||
jsr SYM.Dump.GLP
|
||||
.FIN
|
||||
|
||||
jmp OUT.PrintCR
|
||||
*---------------------------------------
|
||||
OUT.PrintLineErrDashA
|
||||
@ -316,6 +305,12 @@ OUT.PrintLineErrDashA
|
||||
.8 clc
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
OUT.PrintWarn1 jsr OUT.PrintLine.1
|
||||
|
||||
>LDYA L.MSG.WARN1
|
||||
>SYSCALL PutS
|
||||
rts
|
||||
*---------------------------------------
|
||||
OUT.Print >SYSCALL PrintF
|
||||
bcs OUT.Print.RTS
|
||||
*---------------------------------------
|
||||
|
@ -847,23 +847,31 @@ SRC.GetKeyword >STYA ZPPtr1 KeyWord table
|
||||
|
||||
.3 lda (ZPLinePtr),y
|
||||
beq .6
|
||||
|
||||
jsr SRC.IsKeywordLetterUC
|
||||
bcs .6
|
||||
|
||||
iny
|
||||
cmp (ZPPtr1),y
|
||||
bne .7
|
||||
|
||||
dex
|
||||
bne .3
|
||||
|
||||
lda (ZPLinePtr),y All chars match...
|
||||
beq .4 End of Line ?
|
||||
|
||||
jsr SRC.IsKeywordLetterUC
|
||||
bcc .7 Additional letters...
|
||||
|
||||
.4 lda ZPLinePtr found!
|
||||
clc
|
||||
adc (ZPPtr1) skip KW in source line
|
||||
sta ZPLinePtr
|
||||
bcc .5
|
||||
|
||||
inc ZPLinePtr+1
|
||||
|
||||
.5 plx Keyword.ID
|
||||
clc
|
||||
rts
|
||||
@ -874,43 +882,57 @@ SRC.GetKeyword >STYA ZPPtr1 KeyWord table
|
||||
adc ZPPtr1
|
||||
sta ZPPtr1
|
||||
bcc .8
|
||||
|
||||
inc ZPPtr1+1
|
||||
|
||||
.8 plx Keyword.ID
|
||||
inx
|
||||
inx
|
||||
bra .1
|
||||
|
||||
.9 plx
|
||||
sec
|
||||
rts
|
||||
*---------------------------------------
|
||||
SRC.IsAMReserved
|
||||
ldx SRC.AM.RESERVED
|
||||
|
||||
.1 cmp SRC.AM.RESERVED,x
|
||||
beq .8
|
||||
|
||||
dex
|
||||
bne .1
|
||||
|
||||
sec
|
||||
rts
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
SRC.IsMODReserved
|
||||
ldx SRC.MOD.RESERVED
|
||||
|
||||
.1 cmp SRC.MOD.RESERVED,x
|
||||
beq .8
|
||||
|
||||
dex
|
||||
bne .1
|
||||
|
||||
sec
|
||||
rts
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
SRC.IsEXPReserved
|
||||
ldx SRC.EXP.RESERVED
|
||||
|
||||
.1 cmp SRC.EXP.RESERVED,x
|
||||
beq SRC.IsEXPReserved.8
|
||||
|
||||
dex
|
||||
bne .1
|
||||
|
||||
sec
|
||||
rts
|
||||
SRC.IsEXPReserved.8
|
||||
@ -918,22 +940,22 @@ SRC.IsEXPReserved.8
|
||||
rts
|
||||
*---------------------------------------
|
||||
SRC.IsKeywordLetterUC
|
||||
cmp #'.'
|
||||
beq SRC.IsEXPReserved.8
|
||||
|
||||
cmp #'_'
|
||||
beq SRC.IsEXPReserved.8
|
||||
|
||||
cmp #'A'
|
||||
bcc .9
|
||||
|
||||
cmp #'Z'+1
|
||||
bcc .99
|
||||
|
||||
cmp #'a'
|
||||
bcc .9
|
||||
|
||||
cmp #'z'+1
|
||||
bcs .99
|
||||
|
||||
eor #$20
|
||||
|
||||
rts CC if lowercase
|
||||
|
||||
.9 sec
|
||||
.99 rts
|
||||
*---------------------------------------
|
||||
@ -941,26 +963,41 @@ SRC.IsLetterOrDigit
|
||||
jsr SRC.IsDigit10
|
||||
bcc SRC.IsLetterRTS
|
||||
*---------------------------------------
|
||||
SRC.IsLetter cmp #'A'
|
||||
SRC.IsLetter cmp #'_'
|
||||
beq .8
|
||||
|
||||
cmp #'A'
|
||||
bcc .9
|
||||
|
||||
cmp #'Z'+1
|
||||
bcc SRC.IsLetterRTS
|
||||
|
||||
cmp #'a'
|
||||
bcc .9
|
||||
|
||||
cmp #'z'+1
|
||||
|
||||
rts CC if lowercase
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
|
||||
SRC.IsLetterRTS rts
|
||||
*---------------------------------------
|
||||
SRC.IsDigit16 jsr SRC.IsDigit10
|
||||
bcc .8
|
||||
|
||||
cmp #'A'
|
||||
bcc .9
|
||||
|
||||
cmp #'F'+1
|
||||
bcc .1
|
||||
|
||||
cmp #'a'
|
||||
bcc .9
|
||||
|
||||
cmp #'f'+1
|
||||
bcs .9
|
||||
|
||||
@ -968,23 +1005,33 @@ SRC.IsDigit16 jsr SRC.IsDigit10
|
||||
.1
|
||||
* clc
|
||||
sbc #'A'-11 cc so A->10 (11-CC)
|
||||
|
||||
clc
|
||||
|
||||
.8 and #$0F
|
||||
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*---------------------------------------
|
||||
SRC.IsDigit10 cmp #'0'
|
||||
bcc .9
|
||||
|
||||
cmp #'9'+1
|
||||
|
||||
rts cc if ok, cs if not
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*---------------------------------------
|
||||
SRC.IsDigit8 cmp #'0'
|
||||
bcc .9
|
||||
|
||||
cmp #'7'+1
|
||||
|
||||
rts cc if ok, cs if not
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*---------------------------------------
|
||||
@ -1003,15 +1050,18 @@ SRC.SkipXp1 sec
|
||||
SRC.GetNextCharNB
|
||||
jsr SRC.GetNextChar
|
||||
bcs .9
|
||||
|
||||
cmp #C.SPACE
|
||||
beq SRC.GetNextCharNB
|
||||
|
||||
clc
|
||||
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
SRC.GetNextChar lda (ZPLinePtr)
|
||||
beq SRC.GetChar.ERR
|
||||
|
||||
cmp #$0D
|
||||
cmp #C.CR
|
||||
beq SRC.GetChar.ERR
|
||||
|
||||
inc ZPLinePtr
|
||||
@ -1022,7 +1072,7 @@ SRC.GetNextChar lda (ZPLinePtr)
|
||||
SRC.GetChar lda (ZPLinePtr)
|
||||
beq SRC.GetChar.ERR
|
||||
|
||||
cmp #$0D
|
||||
cmp #C.CR
|
||||
beq SRC.GetChar.ERR
|
||||
|
||||
clc
|
||||
@ -1079,7 +1129,12 @@ SRC.GetACCSize lda SRC.ACC.F
|
||||
and #SYMG.F.FWREF
|
||||
beq .1
|
||||
|
||||
ldx #2
|
||||
lda SRC.ACC+1
|
||||
bne .10
|
||||
|
||||
jsr OUT.PrintWarn1
|
||||
|
||||
.10 ldx #2
|
||||
rts
|
||||
|
||||
.1 ldx SRC.ACC.SIZE
|
||||
|
@ -20,12 +20,21 @@ SYM.Init lda #SL..+SL._
|
||||
bcs .9
|
||||
|
||||
>STA.G SYM.hList
|
||||
|
||||
lda #SL..+SL._
|
||||
>SYSCALL SListNew
|
||||
bcs .9
|
||||
|
||||
>STA.G FWR.hList
|
||||
|
||||
>LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
|
||||
>STYA ZPSymbolBuf
|
||||
txa
|
||||
>STA.G SYM.hBuf
|
||||
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
SYM.Quit >LDA.G SYM.hBuf
|
||||
@ -33,7 +42,12 @@ SYM.Quit >LDA.G SYM.hBuf
|
||||
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.1 >LDA.G SYM.hList
|
||||
.1 >LDA.G FWR.hList
|
||||
beq .2
|
||||
|
||||
>SYSCALL SListFree
|
||||
|
||||
.2 >LDA.G SYM.hList
|
||||
beq .8
|
||||
|
||||
>SYSCALL SListFree
|
||||
@ -59,9 +73,7 @@ SYM.NewGlobal >LDA.G ASM.PASS
|
||||
|
||||
jsr SRC.SkipX
|
||||
|
||||
.1 stz SRC.ACC.F
|
||||
jsr SYM.PC2Acc
|
||||
jsr SYM.Acc2Global
|
||||
stz SRC.ACC.F
|
||||
|
||||
lda #SYMG
|
||||
>STA.G SYM.BufPtr
|
||||
@ -69,13 +81,10 @@ SYM.NewGlobal >LDA.G ASM.PASS
|
||||
lda #0
|
||||
sta (ZPSymbolBuf),y
|
||||
|
||||
.DO ASMDBG=1
|
||||
lda #'1'
|
||||
>SYSCALL putchar
|
||||
jsr SYM.Dump.G
|
||||
jsr OUT.PrintCR
|
||||
.FIN
|
||||
clc
|
||||
jsr SYM.PC2Acc
|
||||
jsr SYM.Acc2Global
|
||||
|
||||
.80 clc
|
||||
rts
|
||||
|
||||
.9 cmp #E.DUPKEY
|
||||
@ -122,14 +131,7 @@ SYM.GetGlobal >PUSHB.G SYM.hList Pass #2: should be already defined...
|
||||
sec
|
||||
rts
|
||||
|
||||
.8 .DO ASMDBG=1
|
||||
lda #'2'
|
||||
>SYSCALL putchar
|
||||
jsr SYM.Dump.G
|
||||
jsr OUT.PrintCR
|
||||
.FIN
|
||||
|
||||
lda #SYMG
|
||||
.8 lda #SYMG
|
||||
>STA.G SYM.BufPtr
|
||||
|
||||
>STZ.G MAC.CtxID
|
||||
@ -147,11 +149,18 @@ SYM.LookupGlobal
|
||||
>PUSHW ZPLinePtr
|
||||
>PUSHWI 0 ScopeID
|
||||
>SYSCALL SListLookup
|
||||
bcs .4
|
||||
bcc .10
|
||||
|
||||
>STYA ZPPtr1 KeyID
|
||||
>LDA.G ASM.PASS pass#2?
|
||||
beq .11
|
||||
|
||||
jsr SRC.SkipX
|
||||
lda #E.UNDEF.SYMBOL
|
||||
sec
|
||||
rts
|
||||
|
||||
.11 jmp SYM.AddFWFef
|
||||
|
||||
.10 >STYA ZPPtr1 KeyID
|
||||
|
||||
.1 >LDA.G SYM.ID
|
||||
cmp ZPPtr1
|
||||
@ -169,47 +178,72 @@ SYM.LookupGlobal
|
||||
dey
|
||||
bne .2 Keep ACC.F unchanged
|
||||
|
||||
clc
|
||||
.99 rts
|
||||
jsr SRC.SkipX
|
||||
|
||||
.3 >PUSHB.G SYM.hList
|
||||
clc
|
||||
rts
|
||||
|
||||
.3 phx
|
||||
|
||||
>PUSHB.G SYM.hList
|
||||
>PUSHW ZPPtr1 KeyID
|
||||
>PUSHW L.SRC.ACC.SIZE
|
||||
>PUSHWI SYMG-1 Get only Global value
|
||||
>PUSHWI 1 Skip SYMG.F
|
||||
>SYSCALL SListGetData
|
||||
rts
|
||||
bcs .90
|
||||
|
||||
.4 >LDA.G ASM.PASS pass#2?
|
||||
bne .9 yes, undefined symbol
|
||||
jsr SYM.LookupFWFef
|
||||
bcs .8
|
||||
|
||||
* lda #2
|
||||
* cmp SRC.ACC.SIZE
|
||||
* beq .8
|
||||
|
||||
* sta SRC.ACC.SIZE
|
||||
|
||||
lda #SYMG.F.FWREF
|
||||
tsb SRC.ACC.F
|
||||
|
||||
lda #2
|
||||
sta SRC.ACC.SIZE
|
||||
.8 plx
|
||||
jsr SRC.SkipX
|
||||
|
||||
lda #$ff
|
||||
sta SRC.ACC
|
||||
sta SRC.ACC+1
|
||||
|
||||
.5 jsr SRC.GetNextChar
|
||||
bcs .8
|
||||
|
||||
jsr SRC.IsLetterOrDigit
|
||||
bcc .5
|
||||
|
||||
cmp #'.'
|
||||
beq .5
|
||||
|
||||
cmp #'_'
|
||||
beq .5
|
||||
|
||||
.8 clc
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 lda #E.UNDEF.SYMBOL
|
||||
sec
|
||||
.90 plx
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
SYM.AddFWFef jsr SYM.LookupFWFef
|
||||
bcc .8 Already Defined
|
||||
|
||||
>PUSHB.G FWR.hList
|
||||
>PUSHW ZPLinePtr Pass #1: try to add global...
|
||||
>PUSHWI 0 ScopeID
|
||||
>SYSCALL SListNewKey
|
||||
bcs .9
|
||||
|
||||
>STYA.G FWR.ID
|
||||
|
||||
jsr SRC.SkipX
|
||||
|
||||
>PUSHB.G FWR.hList
|
||||
>PUSHW.G FWR.ID
|
||||
>PUSHW ZPSymbolBuf
|
||||
>PUSHWI 1
|
||||
>SYSCALL SListAddData
|
||||
rts
|
||||
|
||||
.8 jsr SRC.SkipX
|
||||
|
||||
clc
|
||||
|
||||
.9 rts
|
||||
*---------------------------------------
|
||||
SYM.LookupFWFef >PUSHB.G FWR.hList
|
||||
>PUSHW ZPLinePtr
|
||||
>PUSHWI 0 ScopeID
|
||||
>SYSCALL SListLookup
|
||||
rts
|
||||
*---------------------------------------
|
||||
SYM.StoreGlobal >LDA.G ASM.PASS
|
||||
@ -230,6 +264,7 @@ SYM.StoreGlobal >LDA.G ASM.PASS
|
||||
|
||||
iny Add 1 for \0 after locals/privates
|
||||
bne .1
|
||||
|
||||
inc
|
||||
|
||||
.1 >PUSHYA
|
||||
@ -274,8 +309,17 @@ SYM.PC2Acc ldy #ASM.PC+3
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
lda #2
|
||||
sta SRC.ACC.SIZE
|
||||
ldx #4
|
||||
|
||||
.2 lda SRC.ACC-1,x
|
||||
bne .3
|
||||
|
||||
dex
|
||||
bne .2
|
||||
|
||||
inx
|
||||
|
||||
.3 stx SRC.ACC.SIZE
|
||||
|
||||
rts
|
||||
*---------------------------------------
|
||||
@ -651,6 +695,14 @@ SYM.Dump.PushValueY
|
||||
bpl .1
|
||||
|
||||
rts
|
||||
*---------------------------------------
|
||||
.DO SYMDBG=1
|
||||
SYM.Debug >PUSHW L.MSG.SYMDBG
|
||||
>PUSHW.G SYM.ID
|
||||
>PUSHBI 2
|
||||
>SYSCALL PrintF
|
||||
rts
|
||||
.FIN
|
||||
*---------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/bin/asm.s.sym
|
||||
|
@ -6,6 +6,7 @@ NEW
|
||||
.TF bin/asm
|
||||
*---------------------------------------
|
||||
ASMDBG .EQ 0
|
||||
SYMDBG .EQ 0
|
||||
*---------------------------------------
|
||||
PAGE.LEN .EQ 23
|
||||
DO.MAXDEPTH .EQ 8
|
||||
@ -137,9 +138,13 @@ L.MSG.LSYMBOL .DA MSG.LSYMBOL
|
||||
L.MSG.PSYMBOL .DA MSG.PSYMBOL
|
||||
L.MSG.SUMMARY .DA MSG.SUMMARY
|
||||
L.MSG.END .DA MSG.END
|
||||
L.MSG.WARN1 .DA MSG.WARN1
|
||||
.DO ASMDBG=1
|
||||
L.MSG.DBG .DA MSG.DBG
|
||||
.FIN
|
||||
.DO SYMDBG=1
|
||||
L.MSG.SYMDBG .DA MSG.SYMDBG
|
||||
.FIN
|
||||
L.MSG.SRC.FILE .DA MSG.SRC.FILE
|
||||
L.MSG.OBJ.FILE .DA MSG.OBJ.FILE
|
||||
L.MSG.CPU.FILE .DA MSG.CPU.FILE
|
||||
@ -158,7 +163,7 @@ J.DIRECTIVES .DA DIR.AC
|
||||
.DA DIR.CS
|
||||
.DA DIR.CZ
|
||||
.DA DIR.DA
|
||||
DIR.DO.ID .EQ *-J.DIRECTIVES
|
||||
DIR.DO.ID .EQ *-J.DIRECTIVES
|
||||
.DA DIR.DO
|
||||
.DA DIR.DU
|
||||
.DA DIR.DU
|
||||
@ -241,11 +246,11 @@ CS.RUN jsr CS.RUN.ARGS
|
||||
|
||||
jsr OUT.Init
|
||||
bcs .9
|
||||
|
||||
|
||||
.1 >SLEEP
|
||||
jsr CS.RUN.LOOP
|
||||
jsr CS.RUN.LOOP
|
||||
bcc .1
|
||||
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||
@ -356,9 +361,6 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||
|
||||
.9 pha
|
||||
jsr OUT.PrintLineErr
|
||||
.DO ASMDBG=1
|
||||
jsr SYM.Dump.1
|
||||
.FIN
|
||||
pla
|
||||
sec
|
||||
rts
|
||||
@ -387,9 +389,22 @@ CS.RUN.ARGS ldy #S.PS.ARGC
|
||||
>STA.G SRC.hFILENAME
|
||||
bra .1
|
||||
|
||||
.2 ldy #1
|
||||
.2 ldy #2
|
||||
lda (ZPPtr2),y
|
||||
cmp #'L'
|
||||
bne .90
|
||||
|
||||
dey
|
||||
lda (ZPPtr2),y
|
||||
|
||||
cmp #'a'
|
||||
bcc .20
|
||||
|
||||
cmp #'z'+1
|
||||
bcs .20
|
||||
|
||||
eor #$20
|
||||
|
||||
.20 cmp #'L'
|
||||
bne .3
|
||||
|
||||
lda #$ff
|
||||
@ -417,7 +432,7 @@ CS.RUN.ARGS ldy #S.PS.ARGC
|
||||
.90 >PUSHW L.MSG.HELP
|
||||
>PUSHBI 0
|
||||
>SYSCALL PrintF
|
||||
|
||||
|
||||
lda #E.INV.ARGS
|
||||
sec
|
||||
.99 rts
|
||||
@ -564,9 +579,13 @@ MSG.LSYMBOL .CZ " .%d=%h%h%h%h"
|
||||
MSG.PSYMBOL .CZ " :%d(%d)=%h%h%h%h"
|
||||
MSG.SUMMARY .CZ "\r\n**** Symbol Table Size : %5D Bytes.\r\n"
|
||||
MSG.END .CZ "**** End Of Assembly."
|
||||
MSG.WARN1 .CZ "**** WARN : Unoptimized adressing mode due to forward reference.\r\n"
|
||||
.DO ASMDBG=1
|
||||
MSG.DBG .CZ "\r\nCtxID=%d, ARG=%H%H <op> ACC=%H%H -> ACC %b [%h]\r\n"
|
||||
.FIN
|
||||
.DO SYMDBG=1
|
||||
MSG.SYMDBG .CZ "SymID=%H\r\n"
|
||||
.FIN
|
||||
*---------------------------------------
|
||||
ASM.CPU.FILE .BS 65
|
||||
|
||||
@ -631,6 +650,9 @@ SYM.hBuf .BS 1
|
||||
SYM.BufPtr .BS 1
|
||||
SYM.ID .BS 2
|
||||
|
||||
FWR.hList .BS 1
|
||||
FWR.ID .BS 2
|
||||
|
||||
MAC.hList .BS 1
|
||||
MAC.hBuf .BS 1
|
||||
MAC.BufPtr .BS 1
|
||||
|
@ -846,6 +846,8 @@ SYM.LookupLabelA
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
SYM.LookupFree >LDA.G CC.LookupIdx
|
||||
beq .9 Never set by CORE.Init
|
||||
|
||||
cmp #CC.LookupIdx
|
||||
beq .9
|
||||
|
||||
|
@ -27,7 +27,7 @@ BLISTX.New sta SLISTX.Opt
|
||||
|
||||
lda #0
|
||||
sta (DBlkPtr)
|
||||
|
||||
|
||||
lda SLISTX.Opt
|
||||
sta (IBlkPtr)
|
||||
|
||||
|
@ -4,24 +4,19 @@ NEW
|
||||
* CONTROL SECTION :
|
||||
.LIST ON
|
||||
*--------------------------------------
|
||||
C0 .EQ Mem.MLoMem
|
||||
C1 .EQ Mem.MHiMem
|
||||
C2 .EQ Mem.XLoMem
|
||||
C3 .EQ Mem.XHiMem
|
||||
*--------------------------------------
|
||||
C5 .EQ AUX.S
|
||||
*--------------------------------------
|
||||
C6 .EQ D1.S
|
||||
C7 .EQ D2.S
|
||||
C8 .EQ E0.S
|
||||
C1 .EQ MAIN.S
|
||||
C2 .EQ AUX.S
|
||||
C3 .EQ D1.S
|
||||
C4 .EQ D2.S
|
||||
C5 .EQ E0.S
|
||||
*--------------------------------------
|
||||
.LIST OFF
|
||||
.DO Mem.MLoMem>$2000
|
||||
.DO MAIN.S>$C00
|
||||
.LIST ON
|
||||
* ERROR:MAIN too big
|
||||
.LIST OFF
|
||||
.FIN
|
||||
.DO Mem.XLoMem>$2000
|
||||
.DO AUX.S>$2000
|
||||
.LIST ON
|
||||
* ERROR:AUX too big
|
||||
.LIST OFF
|
||||
|
@ -70,7 +70,7 @@ FS.OPEN.REG >MLICALL MLIGETFILEINFO
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
FS.OPEN.ERR pha Save Error Code
|
||||
jsr FS.CLOSE.REGDIR
|
||||
jsr FS.MLICLOSE
|
||||
|
||||
ldx IO.hFILE Cleanup what MkFD did
|
||||
lda hFDs-1,x
|
||||
@ -106,23 +106,6 @@ FS.OPEN.DIR lda #S.FD.T.DIR
|
||||
sec
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
FS.CLOSE.REGDIR ldy #S.FD.REG.REF
|
||||
lda (pFD),y
|
||||
beq .1
|
||||
|
||||
sta K.MLI.PARAMS+1
|
||||
>MLICALL MLICLOSE
|
||||
* bcs FS.RTS
|
||||
|
||||
.1 ldy #S.FD.REG.IOBUF
|
||||
lda (pFD),y
|
||||
beq .8
|
||||
|
||||
jmp K.FreeMem
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
FS.READ.REG ldx #MLIREAD
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
@ -206,6 +189,23 @@ FS.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
|
||||
.9
|
||||
FS.RTS rts
|
||||
*--------------------------------------
|
||||
FS.MLICLOSE ldy #S.FD.REG.REF
|
||||
lda (pFD),y
|
||||
beq .1
|
||||
|
||||
sta K.MLI.PARAMS+1
|
||||
>MLICALL MLICLOSE
|
||||
* bcs FS.RTS
|
||||
|
||||
.1 ldy #S.FD.REG.IOBUF
|
||||
lda (pFD),y
|
||||
beq .8
|
||||
|
||||
jmp K.FreeMem
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
FS.Stat bit A2osX.FSID
|
||||
bmi FS.Stat.FX
|
||||
|
||||
|
@ -84,7 +84,7 @@ SLISTX.GetData jsr SLISTX.Select
|
||||
|
||||
.3 bit SLISTX.bStr
|
||||
bmi .4 String mode : until CR
|
||||
|
||||
|
||||
inc SLISTX.nBufCnt
|
||||
bne .4
|
||||
|
||||
@ -126,7 +126,7 @@ SLISTX.AddData jsr SLISTX.Select
|
||||
jsr SLISTX.SkipKey
|
||||
|
||||
jsr SLISTX.CheckLen
|
||||
|
||||
|
||||
ldy iByte
|
||||
lda (DBlkPtr),y
|
||||
pha
|
||||
@ -156,20 +156,20 @@ SLISTX.AddData jsr SLISTX.Select
|
||||
sta ZPSListDataLen+1
|
||||
|
||||
sec
|
||||
|
||||
|
||||
.1 inc ZPSListDataLen
|
||||
bne .2
|
||||
|
||||
inc ZPSListDataLen+1
|
||||
beq .8
|
||||
|
||||
|
||||
.2 jsr SHARED.FORPNTgn
|
||||
bcc .3
|
||||
|
||||
|
||||
jsr BLISTX.SetBlkByte override ending 0, already allocated
|
||||
clc
|
||||
bra .1
|
||||
|
||||
|
||||
.3 jsr BLISTX.AddByte
|
||||
bcc .1
|
||||
rts
|
||||
@ -198,13 +198,13 @@ SLISTX.SetData jsr SLISTX.Select
|
||||
txa
|
||||
eor #$ff
|
||||
sta SLISTX.nDataCnt+1
|
||||
|
||||
|
||||
.1 inc SLISTX.nDataCnt
|
||||
bne .2
|
||||
|
||||
|
||||
inc SLISTX.nDataCnt+1
|
||||
beq .8
|
||||
|
||||
|
||||
.2 jsr SHARED.FORPNTgn
|
||||
jsr BLISTX.SetBlkByte
|
||||
bra .1
|
||||
@ -222,27 +222,29 @@ SLISTX.CheckLen lda ZPSListDataLen
|
||||
|
||||
tax ldx #0
|
||||
tay ldy #0
|
||||
|
||||
|
||||
lda FORPNT+1
|
||||
pha
|
||||
|
||||
|
||||
.1 jsr SHARED.FORPNTgY
|
||||
beq .2
|
||||
|
||||
|
||||
iny
|
||||
bne .1
|
||||
|
||||
inc FORPNT+1
|
||||
|
||||
inx
|
||||
bra .1
|
||||
|
||||
.2 iny add Ending \0
|
||||
bne .3
|
||||
|
||||
|
||||
inx
|
||||
|
||||
|
||||
.3 sty ZPSListDataLen
|
||||
stx ZPSListDataLen+1
|
||||
|
||||
|
||||
pla
|
||||
sta FORPNT+1
|
||||
|
||||
@ -253,23 +255,23 @@ SLISTX.GetByID jsr SLISTX.Select
|
||||
jsr BLISTX.GetNByte
|
||||
tax
|
||||
beq .9
|
||||
|
||||
|
||||
ldy #0
|
||||
|
||||
|
||||
.1 phy
|
||||
jsr BLISTX.GetNByte
|
||||
ply
|
||||
|
||||
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
iny
|
||||
dex
|
||||
bne .1
|
||||
|
||||
|
||||
txa lda #0
|
||||
|
||||
jsr SHARED.FORPNTpn ending \0
|
||||
|
||||
|
||||
jsr BLISTX.GetNByte ScopeID lo
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
@ -290,7 +292,7 @@ SLISTX.NewKey jsr SLISTX.Lookup
|
||||
|
||||
>LDYA KeyID
|
||||
>STYA SLISTX.KeyID End of list
|
||||
|
||||
|
||||
lda SLISTX.KeyLen
|
||||
jsr BLISTX.SetBlkByte override ending 0, already allocated
|
||||
|
||||
@ -323,9 +325,9 @@ SLISTX.NewKey jsr SLISTX.Lookup
|
||||
lda #0 Ending Len = 0
|
||||
jsr BLISTX.AddByte
|
||||
bcc SLISTX.8
|
||||
|
||||
|
||||
rts
|
||||
|
||||
|
||||
.99 lda #E.DUPKEY
|
||||
sec
|
||||
.9 rts
|
||||
@ -338,9 +340,9 @@ SLISTX.8 >LDYA SLISTX.KeyID
|
||||
SLISTX.Lookup jsr K.GetMemPtr
|
||||
>STYA IBlkPtr
|
||||
|
||||
lda (IBlkPtr)
|
||||
lda (IBlkPtr)
|
||||
sta SLISTX.Opt
|
||||
|
||||
|
||||
stz iByte
|
||||
|
||||
ldy #1
|
||||
@ -358,19 +360,19 @@ SLISTX.Lookup jsr K.GetMemPtr
|
||||
|
||||
jsr SLISTX.IsIDValid
|
||||
bcc .1
|
||||
|
||||
|
||||
.2 sty SLISTX.KeyLen
|
||||
|
||||
.3 >LDYA KeyID
|
||||
>STYA SLISTX.KeyID
|
||||
|
||||
|
||||
ldy iByte
|
||||
lda (DBlkPtr),y
|
||||
beq .9
|
||||
|
||||
cmp SLISTX.KeyLen
|
||||
bne .6
|
||||
|
||||
|
||||
jsr BLISTX.GetNByte Skip Len
|
||||
|
||||
ldy #0
|
||||
@ -379,9 +381,9 @@ SLISTX.Lookup jsr K.GetMemPtr
|
||||
jsr BLISTX.GetNByte
|
||||
sta .5+1
|
||||
ply
|
||||
|
||||
|
||||
jsr SHARED.TXTPTRgY
|
||||
|
||||
|
||||
.5 cmp #$ff SELF MODIFIED
|
||||
bne .6
|
||||
|
||||
@ -392,15 +394,15 @@ SLISTX.Lookup jsr K.GetMemPtr
|
||||
jsr SLISTX.GetDataLen Get Scope
|
||||
cmp FORPNT+1
|
||||
bne .6
|
||||
|
||||
|
||||
lda FORPNT
|
||||
cmp SLISTX.DataLen
|
||||
beq SLISTX.8
|
||||
|
||||
.6 >LDYA SLISTX.KeyID
|
||||
|
||||
|
||||
jsr SLISTX.Select.I move back...
|
||||
jsr SLISTX.SkipKey
|
||||
jsr SLISTX.SkipKey
|
||||
jsr SLISTX.SkipData
|
||||
bra .3
|
||||
|
||||
@ -439,7 +441,7 @@ SLISTX.SkipKey ldy iByte
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
SLISTX.SkipData jsr SLISTX.GetDataLen
|
||||
|
||||
|
||||
lda SLISTX.DataLen
|
||||
ldx SLISTX.DataLen+1
|
||||
SLISTX.SkipDataAX
|
||||
@ -464,20 +466,20 @@ SLISTX.GetDataLen
|
||||
rts
|
||||
*--------------------------------------
|
||||
SLISTX.IsIDValid
|
||||
bit SLISTX.Opt
|
||||
bit SLISTX.Opt SL..
|
||||
bpl .2
|
||||
|
||||
cmp #'.'
|
||||
beq .8
|
||||
|
||||
.1 bit SLISTX.Opt
|
||||
.1 bit SLISTX.Opt SL._
|
||||
.2 bvc .3
|
||||
|
||||
cmp #'_'
|
||||
beq .8
|
||||
|
||||
.3 jmp SHARED.IsDigitOrL
|
||||
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -70,8 +70,8 @@ UNISTD.Close lda (pFD) #S.FD.T
|
||||
tax
|
||||
jmp (.1,x)
|
||||
|
||||
.1 .DA FS.CLOSE.REGDIR
|
||||
.DA FS.CLOSE.REGDIR
|
||||
.1 .DA FS.MLICLOSE
|
||||
.DA FS.MLICLOSE
|
||||
.DA DEV.CLOSE
|
||||
.DA DEV.CLOSE
|
||||
.DA STDIO.IOERR LNK
|
||||
|
@ -39,9 +39,6 @@ MAIN.B .PH $1000
|
||||
.INB usr/src/sys/kernel.s.pft
|
||||
.INB usr/src/sys/kernel.s.fs
|
||||
.INB usr/src/sys/kernel.s.mathf
|
||||
.LIST ON
|
||||
MAIN.E .EQ *
|
||||
.LIST OFF
|
||||
.EP
|
||||
MAIN.S .EQ *-MAIN.B
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user