George Koehler
5404dace3a
Stop using <X11/Xfuncproto.h> from x86emu.
...
The code included <X11/Xfuncproto.h> only for _X_ATTRIBUTE_PRINTF,
which tells some compilers to check the printf format string. Remove
so ACK doesn't need any X11 headers.
Some machines don't have the X11 headers, or they need a flag like
-I/usr/X11R[67]/include to find them.
2018-06-10 16:00:23 -04:00
David Given
7edc835626
Merge pull request #95 from davidgiven/dtrg-b
...
Fix occasional weird behaviour causing compilation failures in b.
2018-06-10 21:22:26 +09:00
David Given
4a249b1bdb
Merge.
2018-06-10 20:26:10 +09:00
David Given
d623440c77
Add the core of a simple em22 platform. Unfortunately it doesn't work; the old
...
em libmon vanished decades ago (or never existed), and also ass appears to have
a different idea of what the em opcodes are to everything else and gets
confused.
2018-06-10 20:25:48 +09:00
David Given
cebb238036
Merge.
2018-06-10 18:09:18 +09:00
David Given
003799f898
Fix table underrun when looking up the character class of the EOF character,
...
-1.
2018-06-10 17:52:45 +09:00
David Given
5d519b79f7
Merge pull request #94 from davidgiven/dtrg-ass
...
Get int and ass building.
2018-06-09 22:44:24 +09:00
David Given
e7124f3e3f
File cleanup.
2018-06-09 21:21:28 +09:00
David Given
a12181748b
Make ass and int built with clang --- surprisingly easy.
2018-06-09 21:18:50 +09:00
David Given
59b383afd0
Make the em interpreter build --- again, lots of warnings, so it probably won't
...
work on clang. I have no idea whether it runs or not as building a e.out
program is quite hard and needs a special platform.
2018-06-09 21:13:31 +09:00
David Given
d10a594c04
Get ass running --- it's very K&R and almost certainly won't build on clang,
...
but it works on gcc.
2018-06-09 14:10:45 +09:00
David Given
ae3074cd9a
Merge pull request #93 from davidgiven/dtrg-pc86-2
...
Rearrange the tests; don't run unsupported tests on emulators which don't support them.
2018-06-08 21:40:25 +09:00
David Given
19cd42124f
Rearrange the tests into sets; allow plats to skip sets; pc86 and linux68k now
...
skip the tests which use floating point instructions (as their emulators don't
support them).
2018-06-08 15:59:04 +09:00
David Given
b94199aba7
Merge pull request #92 from davidgiven/dtrg-pc86-2
...
Replace the qemu pc86 emulator with a custom x86emu-based one.
2018-06-08 00:18:18 +09:00
David Given
1d4ddb939d
Merge from trunk.
2018-06-08 00:05:50 +09:00
David Given
37f466a8f4
Merge pull request #91 from davidgiven/dtrg-m68k
...
Add a Musashi-based 68020 emulator; use it to run the linux68k tests.
2018-06-07 13:48:06 +09:00
David Given
b9c0e1d964
Dummied out some more system calls --- more tests pass.
2018-06-07 13:12:15 +09:00
David Given
2682c125e0
More real ELF loading and brk handling; more tests pass.
2018-06-07 13:03:36 +09:00
David Given
396795105f
Beat the 68k simulator into enough shape that at least *some* of the tests pass.
2018-06-06 22:39:43 +09:00
David Given
4b26f75d23
Hang on, the 68k is big-endian --- I'm extracting words (and bytes) from longs
...
incorrectly.
2018-06-06 12:49:21 +09:00
David Given
2cf39be752
Get the emulator to the point where it'll start to run code; it then fails,
...
because the version of Musashi I imported doesn't support floating point...
2018-06-05 23:17:22 +09:00
David Given
a8802c934b
Enable tests for linux68k.
2018-06-05 23:16:34 +09:00
David Given
5034ed1c39
Crudely beat the standard Masushi simulator into working in the ACK framework.
2018-06-05 17:45:00 +09:00
David Given
3f049a4c29
Basic mid now throws an error on out-of-bounds parameters rather than returning
...
an uninitialised pointer (and crashing).
Fixes : #54
2018-06-05 09:53:56 +09:00
David Given
9dede01efe
Fix bogus test.
...
Fixes : #89 .
2018-06-05 09:41:31 +09:00
David Given
342a321c87
Fix bogus test.
...
Fixes : #90
2018-06-05 09:20:46 +09:00
David Given
c6b9446722
Check in the x86emu-based emulator. Sadly, just like the 8086tiny-based
...
emulator, FPU instructions aren't supported.
2018-06-04 16:19:45 +09:00
David Given
d908f9cfb2
Modify the pc86 test harness to use 8086tiny instead of qemu. Sadly, some tests fail.
2018-06-03 15:13:43 +02:00
David Given
0eb89d5d95
Add a clean copy of the Musashi emulator.
2018-06-05 17:04:47 +09:00
David Given
d70eb76dbb
Modify the pc86 test harness to use 8086tiny instead of qemu. Sadly, some tests fail.
2018-06-03 15:13:43 +02:00
David Given
9132641100
Add the pc86emu skeleton.
2018-06-03 08:24:21 -07:00
David Given
eb96ea5d28
Add a clean copy of the x86emu library.
2018-06-03 08:06:23 -07:00
David Given
b8cb840c12
Merge pull request #87 from davidgiven/dtrg-travis
...
Get clang working on travis.
2018-06-02 23:00:48 +03:00
David Given
5d292a0a36
Typo fix.
2018-06-02 21:48:18 +02:00
David Given
911ce7ceb5
Crudely tweak some of the prototypes to please clang, which is pickier about
...
K&R C than gcc is.
2018-06-02 21:31:18 +02:00
David Given
5a886787d3
Honour CFLAGS set in the Makefile.
2018-06-02 21:30:52 +02:00
David Given
deeef55ea9
Try and *actually* use clang for the clang build.
...
Fixes : #67
2018-06-02 21:01:03 +02:00
David Given
b85c25e4e5
Fix resource leak.
...
Closes : #75
2018-06-02 20:59:11 +02:00
David Given
d6e65833fb
Format.
2018-06-02 20:57:43 +02:00
David Given
d1cbb9cf60
Crudely bounds check some naked fscanf("%s") parsing. Fixes #79 , mostly.
2018-06-02 20:51:41 +02:00
David Given
c47661f07e
Merge pull request #85 from davidgiven/dtrg-ed
...
Fix the incompatibility with modern ed
2018-06-02 19:23:19 +03:00
David Given
be32d258cb
Don't need ed any more in the travis configuration.
2018-06-02 18:08:55 +02:00
David Given
05ddefad65
Adopt a copy of Minix 2's ed; this allows the ACK's antiquated ed scripts to
...
run with a minimum of tweaking. Rewriting them for modern ed looks really hard.
Fixes : #84
2018-06-02 18:02:51 +02:00
David Given
f8dfdef974
Merge pull request #81 from kernigh/kernigh-libfp
...
software floats, line editor for CP/M
2018-05-12 00:59:05 +02:00
George Koehler
019c7f9da7
Update cpm/README for console changes, ack -fp
.
2018-05-07 16:08:44 -04:00
George Koehler
43458df777
Build a smaller startrek for CP/M.
...
The game was larger than the 64K address space. I remove the intro
and replace part of libc. Now I can play startrek in YAZE-AG.
2018-05-04 18:32:24 -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
b4be612832
Change readstring() to use buffered input.
...
Change from `uread(0, c, 1)` to `read(c)`, so input goes through
libpc's buffer. If input is a tty in Unix, this reduces the number of
read(2) system calls from one per character to one per line.
This change will become necessary in CP/M when I enable the line
editor.
2018-05-04 18:06:51 -04:00
George Koehler
4a3b7be795
Use ack -mcpm -fp
for mandelbrot.c, startrek.c
...
Add a variable %{ackldflags} so I can pass `-fp`. This change seems
to cause the build to relink every ackprogram, because the link now
needs to use %{ackldflags} even if the flags are empty.
mandelbrot_c_cpm runs in YAZE-AG; startrek_c_cpm doesn't run because
it doesn't fit in the 16-bit address space.
2018-04-28 13:18:27 -04:00
George Koehler
1df4db99c9
Optimize libfp. Don't lose -O6 in ackcflags.
...
This drops 124 bytes from the mandelbrot command (from 15015 to 14891
bytes) but has almost no effect on performance; the command takes
about 144 seconds (in YAZE-AG) both before and after optimizing libfp.
2018-04-25 22:48:28 -04:00