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
George Koehler
154509038d
Enable the line editor in read() for CP/M.
...
This changes the BDOS call from CPM_BDOS_CONSOLE_INPUT to
CPN_BDOS_READ_CONSOLE_BUFFER. This allows commands like ^H to delete
characters and ^C to exit to CCP. This is more like how Unix read(2)
uses canonical mode of termios to read a line.
This change has a disadvantage: the user buffer to read(2) must now be
large enough for an entire line. This is because CP/M, unlike Unix,
lacks a kernel buffer to hold the rest of the line. If you use a
buffered input library like stdio to call read(2), then it works; but
if you try to read part of a line or a single character, then it
doesn't work.
2018-05-04 18:21:01 -04:00
George Koehler
93e01eb5d1
Teach i80 ncg to use libfp. Enable ack -mcpm -fp
.
...
Old .o files stop working if they use floating point. One must
recompile those files. Old files don't call libfp in the correct way,
and may use symbols that I removed from libem. I don't keep old
symbols in libem/flp.s, because a program that pulls both libfp and
flp.s would get "multiply defined" errors in the linker.
I teach mach/i80/ncg/table to use libfp by copying or adapting the
patterns from mach/i86/ncg/table. I did not test all the patterns,
but I did use `ack -mcpm -fp -O4` to compile examples/mandelbrot.c,
then I ran it in the emulator YAZE-AG. It worked, but it was slow.
2018-04-25 16:09:56 -04:00
David Given
0e10329876
Fix an issue throughout where B couldn't be built by ackprogram due to symbol
...
laziness.
2016-12-29 17:11:53 +00:00
David Given
4485d89b23
Hook the B compiler up to the compiler driver.
2016-11-27 20:48:07 +01:00
David Given
5bce5fc4da
Change the extension used by Basic files for .b to .bas, to avoid conflicts
...
with B.
2016-11-27 20:38:33 +01:00
David Given
36ab90385f
Change sbrk() to take an int rather than an intptr_t (following the OpenBSD way
...
rather than the Linux way; various non-C bits of the ACK assume it takes an
int, so it's cleaner).
2016-11-23 22:06:24 +01:00
David Given
f67c98e239
Distributions are a pain --- let's not bother any more. Instead, we just tag
...
the repository and download a complete snapshot, old and ancient stuff and all.
2016-09-02 23:00:38 +02:00
David Given
612e38f1c6
Remove the old make-based build system, plus some big chunks of horribly
...
obsolete protomake build system.
2016-09-02 22:17:51 +02:00