Commit graph

7925 commits

Author SHA1 Message Date
David Given f1b128baeb Signed comparisons now work correctly; sadly, Star Trek increases from 39656 to
39726 bytes. Note that the emulator doesn't set P/V correctly and all the tests
fail. Testing in z80ex works fine.
2019-02-11 20:46:06 +01:00
carl c63f527dde Fix compilation issue on C90 compilers (gcc 4.8 was failing to compile with default flags). 2019-02-12 00:46:09 +08:00
David Given 34e9573929 Merge from default. 2019-02-10 23:40:07 +01:00
David Given 1564e65c2d Add tests for simple comparisons (which i80 fails). 2019-02-10 23:39:15 +01:00
David Given 3991a0db3a
Merge pull request #153 from davidgiven/dtrg-i80
i80: more code generator improvements
2019-02-10 19:45:00 +01:00
David Given fca54ccc1b Improve subtractions, using dad and inline constants where possible. Shrinks
Star Trek from 39740 to 39656 bytes.
2019-02-10 19:40:48 +01:00
David Given 7d34cd7407 Simplify simple comparisons and use inlie constants where possible. Reduces
Star Trek from 39771 to 39740 bytes.
2019-02-10 19:22:43 +01:00
David Given 35d1f36ca4 Use pop rather than inx;inx to retract the stack; consumes a register but
halves the number of calls. Reduces Star Trek from 39976 to 39771 bytes.
2019-02-10 18:57:20 +01:00
David Given b34ff2bdec Teach the i80 code generator how to do left shifts by using dad hl; prevents it
from calling out to .sli2 for simple shifts. Shrinks Star Trek from 40055 bytes
to 39976.
2019-02-10 18:44:47 +01:00
David Given 608e386ca4
Merge pull request #152 from davidgiven/dtrg-osx
Enable OSX builds again.
2019-02-10 16:40:16 +01:00
David Given c95d5db372 Replace mkstemp() with the more modern and safer and simpler tmpfile(). 2019-02-10 14:36:15 +01:00
David Given 63fa647bc9 freopen() appears to be problematic on OSX; as it's only ever used to rewind
files, replace with rewind().
2019-02-10 14:32:17 +01:00
David Given 1dfafe070c Better error reporting. 2019-02-10 14:19:18 +01:00
David Given 813595358c More common symbol removal. 2019-02-10 14:09:52 +01:00
David Given d37749750d More common symbol fixing. 2019-02-10 14:03:55 +01:00
David Given 58698bed19 Removed a whole bunch of old strcpy() prototypes in favour of <string.h>. 2019-02-10 13:20:04 +01:00
David Given c8c48221b3 Second try at removing common symbols. 2019-02-10 13:11:03 +01:00
David Given 8a7077d5a9 Change the way external symbols are defined to avoid COMMON symbols, which
don't work on OSX very well.
2019-02-10 12:57:22 +01:00
David Given 666d9a3edb Add stray header. 2019-02-10 12:57:00 +01:00
David Given 020e910560 Remember that we need to update the generated file in LLgen, as it's not
self-bootstrapping...
2019-02-10 12:38:33 +01:00
David Given dd35aa3eef We don't need depth 10 in the travis checkout. 2019-02-10 12:35:18 +01:00
David Given 65e544c35a Don't prototype strcpy as it makes OSX sad. 2019-02-10 12:28:42 +01:00
David Given 7cdd0cd5c0 Merge from default. 2019-02-10 12:22:59 +01:00
David Given aa6aefdaa0 Add missing header. 2019-02-10 00:45:09 +01:00
David Given 39acc01862
Merge pull request #150 from davidgiven/dtrg-windows
Don't run the floating point tests on i80.
2019-02-09 17:43:19 +01:00
David Given 810afbb5b9 Don't run the floating point tests on i80. 2019-02-09 14:24:31 +01:00
David Given 74f0eb90fa
Merge pull request #148 from davidgiven/dtrg-windows
Make the ACK build on Windows again.
2019-02-09 14:15:38 +01:00
David Given 39eb8a85f5 Don't run the tests in Appveyor. 2019-02-09 13:59:37 +01:00
David Given bcc9c16bf7 More z80ex removal. 2019-02-09 13:42:09 +01:00
David Given ada4d0806b
Merge pull request #149 from davidgiven/dtrg-arraysizes
i80: more code size improvements.
2019-02-09 13:40:36 +01:00
David Given 343cdf7983 Remove stray z80ex reference. 2019-02-09 13:30:29 +01:00
David Given 10b509d6b6 Add rst 3 to get the address of a frame variable; lots of rule overhaulage.
Reduces Star Trek from 41821 to 41055 bytes.
2019-02-09 13:29:41 +01:00
David Given f9a3baeaf7 Ugh, typo fix. 2019-02-09 12:25:27 +01:00
David Given 6c146e8c05 Maybe the setup script is somewhere else? 2019-02-09 12:23:42 +01:00
David Given e62b113b0a Try to install cygwin packages. 2019-02-09 12:17:57 +01:00
David Given 369e3300ac Another try at an AppVeyor build script. 2019-02-09 12:04:42 +01:00
David Given 27b8312598 Add experimental appveyor file. 2019-02-09 00:07:33 +01:00
David Given 9e2d45b301 Rename all files called 'aux.*' to something else; Windows can't handle them. 2019-02-09 00:02:41 +01:00
David Given 857f6a6646
Merge pull request #147 from davidgiven/dtrg-arraysizes
i80: better and, or, xor, sign extension code.
2019-02-08 23:19:08 +01:00
David Given 0de5001f82 Make sign extension much less horrible. 2019-02-08 23:16:57 +01:00
David Given 0ac145a0d1 Add tests for simple and, or, and xor; drastically improve the i80 code
generation for these.
2019-02-08 22:38:07 +01:00
David Given 996188d20a
Merge pull request #145 from davidgiven/dtrg-arraysizes
Experimentally use rst 1 to optimise frame variable loads.
2019-02-08 21:53:56 +01:00
David Given 19f5ee3399 CP/M sbrk now handles overflow correctly. 2019-02-08 21:43:52 +01:00
David Given a91ab5c599 Somehow the implementation of rst 2 got lost, with hilarious results. Also fix
some register corruption issues (I hope).
2019-02-08 21:35:14 +01:00
David Given 22032575c5 Add a 'disassemble' command to the CP/M emulator. 2019-02-08 20:54:44 +01:00
David Given d319c7d679 Fix swapped bytes in probyte which was causing junk stack frames. 2019-02-08 08:09:55 +01:00
David Given b47d59aa4a Merge from default. 2019-02-07 23:45:47 +01:00
David Given 1982301639
Merge pull request #146 from davidgiven/dtrg-cpmemu
Add a CP/M i80 emulator, and enable the cpm tests
2019-02-07 23:45:08 +01:00
David Given 8876ddcad2 Build the CP/M tests (which got turned off accidentally). Add a disassembler to
the emulator debugger.
2019-02-07 23:36:45 +01:00
David Given 80bfbd17b7 Add missing file. 2019-02-07 23:01:10 +01:00