Commit graph

78 commits

Author SHA1 Message Date
David Given 511c3e99ee Fix a whole bunch of warnings. 2022-08-01 22:08:23 +02:00
David Given 9519588f59 Convert all the things to Unix format. 2022-07-16 00:02:46 +02:00
David Given 25b6712e63 Rework all the ackbuilder scripts not to use wildcards, because we can't expand
them without luaposix, which isn't available (easily) on OSX or Windows.
2022-07-14 23:57:54 +02:00
David Given 97bed6c0a5 Fix incorrect instruction in the emulator disassembler. 2020-02-05 22:43:27 +01:00
David Given 1101922563 Add the deblocking parameter to cpm_bios_write(). 2020-02-05 22:05:03 +01:00
David Given 17fa773f04 Update CP/M libsys. 2019-11-23 11:31:03 +01:00
George Koehler 20a4d401d0 Add first long-long test for linux386.
Skip the long-long test set on other platforms, because they don't
have long long.  Each platform would need to implement 8-byte
operations like `adi 8` in its code generator, and set long long to
8 bytes in its descr file.

The first test is for negation, addition, and subtraction.  It also
requires comparison for equality.
2019-09-05 13:13:02 -04:00
David Given 97d22973ee Add some BIOS bindings, and a zero-terminated print string routine. 2019-06-24 23:07:17 +02:00
David Given ac8edcbfc3 Give up trying to make the B tests pass on CP/M. 2019-06-17 23:33:58 +02:00
David Given 97e6baa052 Fix register corruption when incrementing locals; attempt to solve the
alignment issue.
2019-06-17 23:31:54 +02:00
David Given c2f48772e9 Correctly emit \r\n when a \n is written to the console, instead of \n\n...
Fixes: #198
2019-06-17 23:31:16 +02:00
David Given 0ecad6c860 Warning fix. 2019-06-17 23:29:41 +02:00
David Given 402468f6fd Bugfix the CP/M FCB parser, and add a test for it. 2019-06-17 00:41:49 +02:00
David Given 97e6d8f66a Update README. 2019-06-16 20:10:13 +02:00
David Given 2b013c34dc Some byte shaving; lseek returns the offset. 2019-06-16 20:04:07 +02:00
David Given 50dca8b954 First at-least-slightly working version of the CP/M read/write stuff. Not as
bad as I expected, but far too big.
2019-06-16 19:04:17 +02:00
David Given 3131dc9915 Partially working port of stdio to CP/M. I'm not sure this will work; it's
getting way too complicated (stdio is horribly subtle). I think I need to
rethink things.
2019-06-15 22:22:01 +02:00
David Given 9109d7af7f First stage in modularising FILE*. Refactor so that printf/scanf don't rely on
FILE* innards; allow plats to replace the entire emulated FILE* system.
2019-06-15 13:07:10 +02:00
David Given 784fc67596 Alignment issues mean we can't access 16-bit CP/M structure elements directly. 2019-06-11 22:33:25 +02:00
David Given 0607529df2 Miscellaneous bugfixed and renamings. 2019-06-11 21:33:57 +02:00
David Given a804375560 Miscellaneous byte shaving; you can now choose whether or not you want the CCP
overwritten or not, and cpm_exit() does the right thing.
2019-06-11 20:32:00 +02:00
David Given 3feb79ad0c Simplify the .trp API to make it a bit smaller. 2019-06-11 20:02:03 +02:00
David Given 4e90de00e9 Don't pull in all the trap handlers every time. 2019-06-11 19:47:42 +02:00
David Given f58d7e7d30 Add missing file. 2019-06-11 19:40:46 +02:00
David Given 48a9c48f56 Generate traps procedurally. For some reason they always keep getting pulled
in, though...
2019-06-11 00:12:00 +02:00
David Given ec2ea1feff Add missing file. 2019-06-10 23:57:43 +02:00
David Given d0967e683b Extend the CP/M libsys with a full set of (hopefully correct) 2.2 BDOS calls. 2019-06-10 23:54:23 +02:00
David Given 3f938d651b EM requires 2-alignment in structures, sadly. 2019-06-10 18:33:04 +02:00
George Koehler 84f65f7ce3 Raise _XOPEN_SOURCE from 500 to 700
In OpenBSD, _XOPEN_SOURCE 500 forces _POSIX_C_SOURCE down to 199506,
which hides the declarations of openat() and fdopendir() and causes
compiler warnings.

Don't set _POSIX_C_SOURCE, because _XOPEN_SOURCE may set
_POSIX_C_SOURCE to a different value.
2019-03-22 14:35:07 -04:00
David Given 79a38ecc08 Instead of using parameterised rsts for stack access, add a huge swathe of
automatically built helper tools. Star Trek goes up from 40243 to 40779 bytes,
but should be a lot faster.
2019-02-13 22:45:22 +01:00
David Given 073451dd44
Merge pull request #154 from ccodere/buildfix
Bugfix of compilation on gcc 4.8
2019-02-12 21:51:46 +01:00
carl 664338aa49 Fix compilation issue on C90 compilers (gcc 4.8 was failing to compile with default flags) - updated following comment. 2019-02-13 00:17:45 +08: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 666d9a3edb Add stray header. 2019-02-10 12:57:00 +01:00
David Given aa6aefdaa0 Add missing header. 2019-02-10 00:45:09 +01:00
David Given 810afbb5b9 Don't run the floating point tests on i80. 2019-02-09 14:24:31 +01:00
David Given bcc9c16bf7 More z80ex removal. 2019-02-09 13:42:09 +01:00
David Given 343cdf7983 Remove stray z80ex reference. 2019-02-09 13:30:29 +01:00
David Given 19f5ee3399 CP/M sbrk now handles overflow correctly. 2019-02-08 21:43:52 +01:00
David Given 22032575c5 Add a 'disassemble' command to the CP/M emulator. 2019-02-08 20:54:44 +01:00
David Given b47d59aa4a Merge from default. 2019-02-07 23:45:47 +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 7473601172 Add the cpm emulator from Cowgol, modified to work with an 8080 emulator rather
than libz80ex; enable tests for cpm.
2019-02-07 22:39:57 +01:00
David Given 5ac280026e Experimentally use rst 1 to optimise frame variable loads. Reduces Star Trek
from 43892 to 43205 bytes.
2019-02-07 00:06:32 +01:00
David Given 64ae1d7583 Move time() into sys; change the name of the variable which controls it. 2018-06-23 19:40:50 +02:00
David Given 66815ff987 Make linux386 work with the new libc layout. 2018-06-23 12:13:33 +02:00
David Given 32c881474e Create a basic and probably wrong common unistd.h, which replaces the plat one.
Made this work with cpm (but nothing else yet).
2018-06-23 11:46:55 +02:00
David Given 94ffa3ba88 libc floating point and stdio floating point can now be turned on and off using
ACKCONF variables.
2018-06-23 00:04:14 +02:00
David Given 9bf1d548fc Rearrange the libc config files, ready for adding new options. 2018-06-22 23:43:15 +02:00