From 10afdb5d29528c6dfe8aa613d37016b905f37934 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Mon, 16 Jun 2014 22:08:20 -0700 Subject: [PATCH] Bring CMD up to current --- PLASMA/src/cmd.pla | 58 +++++++++++----------------------------------- 1 file changed, 13 insertions(+), 45 deletions(-) diff --git a/PLASMA/src/cmd.pla b/PLASMA/src/cmd.pla index 6f88fbbf..4a6f1a5c 100644 --- a/PLASMA/src/cmd.pla +++ b/PLASMA/src/cmd.pla @@ -504,12 +504,11 @@ asm dcitos STA SRCH LDY #$00 - LDA (SRC),Y - INY - PHA AND #$7F + CMP (SRC),Y + INY STA (DST),Y - PLA - BMI - + BCC - TYA LDY #$00 STA (DST),Y @@ -805,52 +804,21 @@ def allocxheap(size) return xaddr end ; -; DCI table routines, -; -;def dumptbl(tbl) -; byte len -; -; while ^tbl -; len = 0 -; while ^tbl & $80 -; cout(^tbl) -; tbl = tbl + 1 -; len = len + 1 -; loop -; cout(^tbl) -; tbl = tbl + 1 -; cout(':') -; while len < 15 -; cout(' ') -; len = len + 1 -; loop -; cout('$') -; prword(*tbl) -; crout -; tbl = tbl + 2 -; loop -;end -def addtbl(dci, val, last) - word tblentry - tblentry = *last - while ^dci & $80 - ^tblentry = ^dci - tblentry = tblentry + 1 - dci = dci + 1 - loop - (tblentry).0 = ^dci - (tblentry):1 = val - *last = tblentry + 3 - ^*last = 0 -end -; ; Symbol table routines. ; def lookupsym(sym) return lookuptbl(sym, symtbl) end def addsym(sym, addr) - return addtbl(sym, addr, @lastsym); + while ^sym & $80 + ^lastsym = ^sym + lastsym = lastsym + 1 + sym = sym + 1 + loop + (lastsym).0 = ^sym + (lastsym):1 = addr + lastsym = lastsym + 3 + ^lastsym = 0 end ; ; Module routines. @@ -861,7 +829,7 @@ def lookupmod(mod) end def addmod(mod, addr) byte dci[17] - return addtbl(modtosym(mod, @dci), addr, @lastsym) + return addsym(modtosym(mod, @dci), addr) end def lookupextern(esd, index) word sym, addr