1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-01-12 04:30:42 +00:00

577 Commits

Author SHA1 Message Date
Dave Schmenk
3b34b2e549 SANE floating point package WIP 2017-11-14 11:58:42 -08:00
Dave Schmenk
0ef28e7557 Use fileio module for memmgr 2017-11-11 07:19:44 -08:00
Dave Schmenk
e9191c20d8 Use cmdsys.plh include file 2017-11-11 06:50:06 -08:00
Dave Schmenk
50c72063dd Merge branch 'master' of https://github.com/dschmenk/PLASMA 2017-11-08 20:37:36 -08:00
Dave Schmenk
95e94ce028 Music sequencer as a module 2017-11-08 20:35:53 -08:00
Dave Schmenk
98a107d734 Fix parseing to check for extraneous/buggy syntax 2017-11-03 17:08:54 -07:00
David Schmenk
7ab051f06a Update the documentation for seqplay usage 2017-11-02 13:07:11 -07:00
David Schmenk
02e0f2220c Focus on combined player 2017-11-02 12:23:40 -07:00
Dave Schmenk
165f16d048 Interrupts disabled for real this time, honest 2017-11-01 22:39:55 +00:00
Dave Schmenk
d5dd2ab3a2 Add sequencer demo for both MB and speaker 2017-11-01 22:28:27 +00:00
David Schmenk
20fe2ca140 Add combined music player 2017-11-01 14:44:58 -07:00
David Schmenk
aa6224c140 Remove interrupt enable for MB 2017-11-01 14:07:56 -07:00
David Schmenk
5a4ef61887 Polled version for real, this time 2017-10-30 09:40:33 -07:00
dschmenk
d2c5652477 Provide polled and interrupt driver test images 2017-10-24 09:09:06 -07:00
dschmenk
7a1d101167 Back to polling that works with the emulators. 2017-10-24 08:22:01 -07:00
dschmenk
11c1b032cb Gace up and switch to interrupts 2017-10-23 15:03:40 -07:00
dschmenk
a28083c8e2 Only dec note count if found in table 2017-10-22 16:16:10 -07:00
dschmenk
107fe78b51 Mockingboard test disk image 2017-10-22 15:59:34 -07:00
dschmenk
6033b2bd8f Merge branch 'master' of https://github.com/dschmenk/PLASMA 2017-10-22 15:57:43 -07:00
dschmenk
762ebd8492 Add mockingboard playback test 2017-10-22 15:56:48 -07:00
Peter Ferrie
80fe1998f5 a few size optimisations 2017-10-09 10:57:28 -07:00
Steven Flintham
8c390cbb07 Optimise "CB 1:SHL" to "DUP:ADD"
This saves one byte and by my count is about 11 cycles faster.
2017-09-09 00:39:27 +01:00
David Schmenk
7cd9f9fad0 Fix test pointer function calls and add eval stack pointer check in portable VM 2017-08-31 11:21:00 -07:00
David Schmenk
1fab7ab632 Merge branch 'master' of https://github.com/dschmenk/PLASMA 2017-08-30 19:34:49 -07:00
David Schmenk
255061f75a Add def prototypes for cmdsys library functions 2017-08-27 20:38:26 -07:00
David Schmenk
326482a2a0 Add parameter/return values for predefs 2017-08-27 13:29:50 -07:00
David Schmenk
b5cac6dc3d Quick hack to flag var: and var=> without follow-on value as error 2017-08-12 16:28:29 -07:00
David Schmenk
4591334896 Add optional self-modifying opcode implementation. 2017-08-12 15:50:36 -07:00
David Schmenk
50f066e527 Fix DEFCNT for lambda functions 2017-08-07 07:34:56 -07:00
David Schmenk
b6076bed3f Fix ENTER frame size parameter 2017-08-04 10:05:58 -07:00
David Schmenk
77c2b768da Add funtion parameter/return values 2017-08-03 19:55:46 -07:00
David Schmenk
d3c785e1eb Revert and fix fixup addresses 2017-08-03 14:20:20 -07:00
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