1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-08-25 18:29:11 +00:00
This commit is contained in:
David Schmenk 2018-03-21 20:54:16 -07:00
parent 71d17a99e4
commit 8c18a28e49

View File

@ -54,6 +54,7 @@ def compiler(defptr)#0
*$003E = *$003C + defptr->bytecodesize
*$0042 = bytecode
call($C311, 0, 0, 0, $00) // CALL XMOVE with carry clear (AUX->MAIN)
^$C053 // MIX TEXT
puts("Addr Xlate: $"); puth(addrxlate); putln
puts("Bytecode: $"); puth(bytecode); putln
//
@ -77,8 +78,8 @@ def compiler(defptr)#0
until not case
fin
addrxlate=>[i] = codeptr
putc('$'); puth(codeptr); putc(':')
putc('['); puti(i); puts("] ")
//putc('$'); puth(codeptr); putc(':')
//putc('['); puti(i); puts("] ")
if ^(bytecode+i) < $20
// CN,CN,CN,CN,CN,CN,CN,CN ; 00 02 04 06 08 0A 0C 0E
// CN,CN,CN,CN,CN,CN,CN,CN ; 10 12 14 16 18 1A 1C 1E
@ -258,11 +259,11 @@ def compiler(defptr)#0
puts("DUP")
^codeptr = $CA; codeptr++ // DEX
^codeptr = $B5; codeptr++ // LDA zp,X
^codeptr = $D0-1; codeptr++ // ESTKL-1
^codeptr = $D0+1; codeptr++ // ESTKL+1
^codeptr = $95; codeptr++ // STA zp,X
^codeptr = $D0; codeptr++ // ESTKL
^codeptr = $B5; codeptr++ // LDA zp,X
^codeptr = $C0-1; codeptr++ // ESTKH-1
^codeptr = $C0+1; codeptr++ // ESTKH+1
^codeptr = $95; codeptr++ // STA zp,X
^codeptr = $C0; codeptr++ // ESTKH
break
@ -1065,7 +1066,7 @@ def compiler(defptr)#0
//
^codeptr = $20; codeptr++ // JSR INTERP
*codeptr = $3D0; codeptr = codeptr + 2
^codeptr = $9A; codeptr++ // MOD CODE
^codeptr = $9A; codeptr++ // SHL CODE
^codeptr = $C0; codeptr++ // NATV CODE
break
is $9C
@ -1075,7 +1076,7 @@ def compiler(defptr)#0
//
^codeptr = $20; codeptr++ // JSR INTERP
*codeptr = $3D0; codeptr = codeptr + 2
^codeptr = $9C; codeptr++ // MOD CODE
^codeptr = $9C; codeptr++ // SHR CODE
^codeptr = $C0; codeptr++ // NATV CODE
break
is $9E
@ -1457,7 +1458,7 @@ def compiler(defptr)#0
^codeptr = $02; codeptr++ // +2
^codeptr = $C8; codeptr++ // INY
^codeptr = $18; codeptr++ // CLC
^codeptr = $75; codeptr++ // ADC zp,X
^codeptr = $75; codeptr++ // ADC zp,X
^codeptr = $D0; codeptr++ // ESTKL
^codeptr = $95; codeptr++ // STA zp,X
^codeptr = $D0; codeptr++ // ESTKL
@ -1564,10 +1565,10 @@ def compiler(defptr)#0
//
heaprelease(addrxlate)
puts("Done compiling: $"); puth(defptr=>interpaddr); putln
//getc
getc
return
fin
//getc
getc
loop
//
// If we got here. we ran out of code buffer space. Overwrite interpreter