Commit graph

76 commits

Author SHA1 Message Date
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
David Given 11854f4dfe Ansify and warning fix. 2018-06-17 22:30:27 +02:00
George Koehler 019c7f9da7 Update cpm/README for console changes, ack -fp. 2018-05-07 16:08:44 -04:00