Commit graph

25 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 17fa773f04 Update CP/M libsys. 2019-11-23 11:31:03 +01: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 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 402468f6fd Bugfix the CP/M FCB parser, and add a test for it. 2019-06-17 00:41:49 +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 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 19f5ee3399 CP/M sbrk now handles overflow correctly. 2019-02-08 21:43:52 +01: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
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
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 420c47c386 Fix dependency error (only shows up with make, not ninja. Odd). 2016-08-15 00:46:43 +02:00
David Given 3df4906d52 Turns out I wasn't building the syscall libraries. Do so. 2016-08-14 11:23:57 +02:00
David Given 88bd7ce126 Remove defunct pmfiles.
--HG--
branch : default-branch
2016-06-03 13:56:50 +02:00
dtrg 6127ddf024 Fixed the trap code to write out the error message correctly. 2007-04-29 20:47:48 +00:00
dtrg be8baf3da6 Added cpm platform. 2007-04-27 22:42:41 +00:00