From 3e4d0bcedf527f1a9beee43bc7467cc9aa24bc10 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Wed, 11 Apr 2018 10:06:57 -0700 Subject: [PATCH] Build jit16 for real --- src/libsrc/apple/jit16.pla | 2 +- src/libsrc/jit16core.pla | 31 +++++++++++++++++-------------- src/makefile | 10 +++++----- src/samplesrc/rod.pla | 5 +++-- 4 files changed, 26 insertions(+), 22 deletions(-) diff --git a/src/libsrc/apple/jit16.pla b/src/libsrc/apple/jit16.pla index e22301b..d3839a0 100644 --- a/src/libsrc/apple/jit16.pla +++ b/src/libsrc/apple/jit16.pla @@ -37,7 +37,7 @@ def defcpy(dst, defptr)#0 *$0042 = dst call($C311, 0, 0, 0, $04) // CALL XMOVE with carry clear (AUX->MAIN) and ints disabled end -include "libsrc/jitcore.pla" +include "libsrc/jit16core.pla" // // Install JIT compiler // diff --git a/src/libsrc/jit16core.pla b/src/libsrc/jit16core.pla index d8bde74..0cbc01f 100644 --- a/src/libsrc/jit16core.pla +++ b/src/libsrc/jit16core.pla @@ -423,7 +423,7 @@ def compiler(defptr)#0 codeptr=>3 = $C3+(TOS<<8) // CMP TOS,S if opcode == $40 //puts("ISEQ") - codeptr=5 = $01D0 // BNE +1 + codeptr=>5 = $01D0 // BNE +1 else //puts("ISNE") codeptr=>5 = $01F0 // BEQ +1 @@ -1233,9 +1233,9 @@ def compiler(defptr)#0 codeptr=>2 = $B5+(J<<8) // LDA dp,X codeptr->4 = $29 // AND #$00FF codeptr=>5 = $00FF - codeptr=>7 = $180A // ASL; CLC - codeptr=>9 = $E665 // ADC TMP - codeptr = codeptr + 11 + codeptr->7 = $0A // ASL + codeptr=>8 = $E665 // ADC TMP + codeptr = codeptr + 10 A_IS_TOS = TRUE // PHA break is $BA // IDXLW @@ -1250,9 +1250,11 @@ def compiler(defptr)#0 codeptr = codeptr + 2 X_IS_IFP = TRUE fin - codeptr=>0 = $180A // ASL; CLC - codeptr=>2 = $75+(J<<8) // ADC dp,X - codeptr = codeptr + 4 + codeptr->0 = $18 // CLC + codeptr=>1 = $75+(J<<8) // ADC dp,X + codeptr->3 = $18 // CLC + codeptr=>4 = $75+(J<<8) // ADC dp,X + codeptr = codeptr + 6 A_IS_TOS = TRUE // PHA break is $BC // IDXAB @@ -1269,9 +1271,9 @@ def compiler(defptr)#0 codeptr=>7 = $20C2 // REP #$20 -> 16 BIT ACCUM/MEM codeptr->9 = $29 // AND #$00FF codeptr=>10 = $00FF - codeptr=>12 = $180A // ASL; CLC - codeptr=>14 = $E665 // ADC TMP - codeptr = codeptr + 16 + codeptr->12 = $0A // ASL + codeptr=>13 = $E665 // ADC TMP + codeptr = codeptr + 15 A_IS_TOS = TRUE // PHA break is $BE // IDXAW @@ -1281,10 +1283,11 @@ def compiler(defptr)#0 if not A_IS_TOS ^codeptr = $68; codeptr++ // PLA fin - codeptr=>0 = $180A // ASL; CLC - codeptr->2 = $6D // ADC abs - codeptr=>3 = dest - codeptr = codeptr + 5 + codeptr=>0 = $6D18 // CLC; ADC abs + codeptr=>2 = dest + codeptr=>4 = $6D18 // CLC; ADC abs + codeptr=>6 = dest + codeptr = codeptr + 8 A_IS_TOS = TRUE // PHA break is $FE // NOPed out earlier by SELect diff --git a/src/makefile b/src/makefile index e308491..692e4e3 100755 --- a/src/makefile +++ b/src/makefile @@ -232,7 +232,7 @@ hello: samplesrc/hello.pla $(PLVM) $(PLASM) acme --setpc 4094 -o $(HELLO) samplesrc/hello.a ./$(PLVM) HELLO $(ROD): samplesrc/rod.pla $(PLVM02) $(PLASM) - ./$(PLASM) -AMO < samplesrc/rod.pla > samplesrc/rod.a + ./$(PLASM) -AMOW < samplesrc/rod.pla > samplesrc/rod.a acme --setpc 4094 -o $(ROD) samplesrc/rod.a $(SIEVE): samplesrc/sieve.pla $(PLVM02) $(PLASM) @@ -364,19 +364,19 @@ $(MON): samplesrc/mon.pla $(PLVM02) $(PLASM) acme --setpc 4094 -o $(MON) samplesrc/mon.a $(SOS): libsrc/apple/sos.pla $(PLVM03) $(PLASM) - ./$(PLASM) -AMO < libsrc/apple/sos.pla > libsrc/apple/sos.a + ./$(PLASM) -AMOW < libsrc/apple/sos.pla > libsrc/apple/sos.a acme --setpc 4094 -o $(SOS) libsrc/apple/sos.a $(JIT): libsrc/apple/jit.pla libsrc/jitcore.pla $(PLVMJIT) $(PLASM) - ./$(PLASM) -AMO < libsrc/apple/jit.pla > libsrc/apple/jit.a + ./$(PLASM) -AMOW < libsrc/apple/jit.pla > libsrc/apple/jit.a acme --setpc 4094 -o $(JIT) libsrc/apple/jit.a $(JIT16): libsrc/apple/jit16.pla libsrc/jit16core.pla $(PLVMJIT) $(PLASM) - ./$(PLASM) -AMO < libsrc/apple/jit16.pla > libsrc/apple/jit16.a + ./$(PLASM) -AMOW < libsrc/apple/jit16.pla > libsrc/apple/jit16.a acme --setpc 4094 -o $(JIT16) libsrc/apple/jit16.a $(JITUNE): libsrc/apple/jitune.pla $(PLVMJIT) $(PLASM) - ./$(PLASM) -AMO < libsrc/apple/jitune.pla > libsrc/apple/jitune.a + ./$(PLASM) -AMOW < libsrc/apple/jitune.pla > libsrc/apple/jitune.a acme --setpc 4094 -o $(JITUNE) libsrc/apple/jitune.a diff --git a/src/samplesrc/rod.pla b/src/samplesrc/rod.pla index d754adb..e18d375 100644 --- a/src/samplesrc/rod.pla +++ b/src/samplesrc/rod.pla @@ -3,7 +3,7 @@ include "inc/conio.plh" // // Rod's Colors // -def rod +def rod#0 byte i, j, k, w, fmi, fmk, color while TRUE @@ -24,7 +24,8 @@ def rod conio:grplot(i, fmk) conio:grplot(fmk, i) if conio:keypressed() - return getc + getc + return fin next next