David Schmenk
286f627c72
Update tokens.h
2017-08-03 12:14:13 -07:00
dschmenk
4906a5a4c5
Remove GNU C warning
2017-08-03 06:29:46 -07:00
David Schmenk
9eb0e7286a
Undo lambda funcs when RVALUE only statements
2017-08-02 20:42:18 -07:00
David Schmenk
4910f18661
Add lambda tests
2017-08-02 20:23:26 -07:00
David Schmenk
64fe1b2e70
Lambda functions working except double parsed in function list ???
2017-08-02 16:05:14 -07:00
David Schmenk
e65adf2050
Lambda WIP
2017-07-30 13:22:24 -07:00
Dave Schmenk
1eed149c1b
Add CFFB to AUX opcodes
2017-07-28 21:47:54 -07:00
David Schmenk
179a672895
Add optimization flag for ROGUE
2017-07-28 17:02:40 -07:00
Steven Flintham
f801d47b1b
Check type in emit_dab and emit_daw
...
Without this the new optimisations can cause invalid code to be emitted.
2017-07-28 23:20:52 +01:00
Steven Flintham
75d5266fba
Expose longer sequences to the optimiser
...
emit_seq() no longer emits directly but adds the sequence to a pending
sequence, which we emit only when necessary (e.g. when we're about to
emit a branch target, or when the parser is about to emit an opcode
directly).
This exposes more opportunities to the optimiser - in particular, the
earlier commit which taught the optimiser how to change things like
"SLW [n]:LLW [n]" to "DLW [n]" now gets a chance to kick in where one
statement updates a variable and the following statement uses the
updated value.
2017-07-28 23:09:26 +01:00
Steven Flintham
b6efb90995
Allow optimiser to introduce DUP opcodes
2017-07-28 23:06:02 +01:00
Steven Flintham
e9c4e062c3
Add more peephole optimisations
2017-07-28 23:03:44 +01:00
Steven Flintham
7ad91aa9e3
Wrap macro constants in parentheses
...
Later commits assume they can use macro constants without needing to
provide their own parentheses.
2017-07-28 22:59:04 +01:00
Steven Flintham
8a672501b7
Refactor elimination of *current* op in optimiser
...
The code to handle this was duplicated in two places; this pulls it out
to a common chunk of code triggered by negative values of freeops.
This isn't a big win here, but it sets us up to re-use this code in
later commits.
2017-07-28 22:57:46 +01:00
dschmenk
c4912583de
Add CFFB to portable VM with test case
2017-07-27 19:15:57 -07:00
David Schmenk
0ffaef968d
Merge pull request #17 from ZornsLemma/cffb
...
New PLASMA opcode - CFFB
2017-07-27 07:14:42 -07:00
Steven Flintham
d5f5326962
Use opcode $5E for CFFB
2017-07-26 20:22:27 +01:00
Steven Flintham
8610d2f56e
Add CFFB opcode
2017-07-18 20:37:43 +01:00
Peter Ferrie
60117f47bd
write-combine without intermediate var
2017-07-12 15:26:19 -07:00
Dave Schmenk
976fddd094
Fix dereference from array (and found bug in dgr.pla with it)
2017-07-10 09:25:40 -07:00
Dave Schmenk
0b95baaefc
Fix predef paramaters, multiple per line, and asm defs with parameters
2017-06-07 19:26:03 -07:00
David Schmenk
92535477ff
Optimize NOT before branch
2017-06-07 17:41:50 -07:00
David Schmenk
7d35fd7726
Clean up scan_rewind string parsing and add branch optimizations
2017-06-07 14:27:52 -07:00
David Schmenk
d7d50f3d37
Remove 8-bit bunch license that shouldn't be there.
2017-06-06 13:02:51 -07:00
David Schmenk
def57dc263
Fix some pointer to pointer problems and scan_rewind with string quotes
2017-06-06 12:27:59 -07:00
David Schmenk
47ed2014e3
On the road to 1.0: source code cleanup
2017-06-03 08:08:30 -07:00
dschmenk
45500004dd
On the road to 1.0: optimize MUL/DIV by POW2
2017-06-01 12:23:29 -07:00
dschmenk
b19956b3ba
On the road to 1.0
2017-05-31 18:31:04 -07:00
David Schmenk
4543667a37
Merge branch 'master' of https://github.com/dschmenk/PLASMA
2017-05-20 11:54:22 -07:00
David Schmenk
acbdde7879
Add Apple II GS support to SPI gameport interface
2017-05-20 11:52:52 -07:00
David Schmenk
f6315d1bd1
Prepare for extended ops
2017-04-30 08:25:05 -07:00
dschmenk
2407d1bb7e
Fix oops of moving increase duration code
2017-04-29 07:30:16 -07:00
dschmenk
c091ae0084
Fix oops of moving increase duration code
2017-04-29 07:29:21 -07:00
dschmenk
734de4a5e3
ReEewrite sequence playback to be fast enough to not pause during state
...
changes
Hand edit a few tone values to sound better
2017-04-28 17:19:26 -07:00
dschmenk
fbbb72c369
Hand tune each not as best as possible
2017-04-28 12:08:32 -07:00
dschmenk
0152b5554c
Revert to previous frequencies
2017-04-27 22:33:36 -07:00
David Schmenk
5e7a949133
Revert to previous frequencies
2017-04-27 22:31:59 -07:00
dschmenk
eba88e451c
Remove initial phase toggle
2017-04-27 21:42:57 -07:00
David Schmenk
f91175da61
Merge branch 'master' of https://github.com/dschmenk/PLASMA
2017-04-27 21:42:05 -07:00
dschmenk
0c488bd060
Remove inital phase toggle
2017-04-27 21:40:44 -07:00
David Schmenk
feecad3529
Remove initial phise toggle
2017-04-27 21:39:36 -07:00
David Schmenk
fce84e5c9e
Add speaker phase information
2017-04-27 21:23:08 -07:00
David Schmenk
14efeab738
Add note duration section
2017-04-27 20:52:35 -07:00
dschmenk
26dcd43c2e
Make it 1.2 with the phase fix
2017-04-27 20:26:06 -07:00
dschmenk
d74435cb61
Flip phase of speaker on entry/exit. Seems to work more often than not
2017-04-27 19:48:19 -07:00
dschmenk
d51f737af2
Add speaker phase adjust
2017-04-27 13:32:05 -07:00
David Schmenk
0cc71bff94
Merge branch 'master' of https://github.com/dschmenk/PLASMA
2017-04-27 13:31:01 -07:00
David Schmenk
73574a9ba5
Add speaker phase adjust
2017-04-27 13:30:32 -07:00
David Schmenk
57c3034bcb
Table of keys to notes
2017-04-27 13:12:42 -07:00
dschmenk
3d7a60fd2b
Fix playback when LFO == 0
2017-04-26 22:04:37 -07:00