George Koehler
054b9c87e1
Add .data8 for 8-byte literal integers to the assembler.
...
This takes literal integers, not expressions, because each machine
defines its own valu_t for expressions, but valu_t can be too narrow
for an 8-byte integer, and I don't want to change all the machines to
use a wider valu_t. Instead, change how the assembler parses literal
integers. Remove the NUMBER token and add a NUMBER8 token for an
int64_t. The new .data8 pseudo emits all 8 bytes of the int64_t;
expressions narrow the int64_t to a valu_t. Don't add any checks for
integer overflow; expressions and .data* pseudos continue to ignore
overflow when a number is too wide.
This commit requires int64_t and uint64_t in the C compiler to build
the assembler. The ACK's own C compiler doesn't have these.
For the assembler's temporary file, add NUMBER4 to store 4-byte
integers. NUMBER4 acts like NUMBER[0-3] and only stores a
non-negative integer. Each negative integer now takes 8 bytes (up
from 4) in the temporary file.
Move the `\fI` and `\fP` in the uni_ass(6) manual, so the square
brackets in `thing [, thing]*` are not italic. This looks nicer in my
terminal, where italic text is underlined.
2019-08-13 11:47:44 -04:00
David Given
c2604dbb04
Merge pull request #204 from davidgiven/dtrg-cpm
...
More CP/M utilities
2019-06-24 23:54:36 +02: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
1bd6a9d4fa
Add an itoa() function, following the most common prototype I can find.
2019-06-24 20:52:56 +02:00
David Given
9d0f03822c
Merge pull request #200 from davidgiven/dtrg-cpm
...
Various CP/M fixes
2019-06-18 00:13:58 +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
c9d14f6c9e
Cause B programs to fail on startup if they detect alignment issues.
2019-06-17 22:27:13 +02:00
David Given
94867d24b7
Ensure that procedure labels are word aligned (required by the EM spec).
2019-06-17 22:26:31 +02:00
David Given
ec9b5f5fcd
Disable rck test on i80, which doesn't support it.
2019-06-17 19:53:12 +02:00
David Given
585e035c14
Merge pull request #197 from davidgiven/dtrg-cpm
...
Overhaul the CP/M libsys.
2019-06-17 01:25:27 +02:00
David Given
2c8498cf87
I managed to break the test system... somehow. Fix.
2019-06-17 00:52:09 +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
6531850462
Oops, forgot to turn the other plats on before checking in.
2019-06-17 00:40:01 +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
01fdfef8c0
Merge from trunk.
2019-06-16 19:50:53 +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
47660c178a
Merge pull request #196 from ccodere/carl-ansi-part1
...
Carl ansi part1
2019-06-15 22:11:49 +02:00
carl
0223069d29
Cleanup of modified code fixing several overflow checking issues.
2019-06-16 01:27:49 +08:00
carl
3133141a08
Interpreter fixes according to EM testsuit.
2019-06-16 01:20:53 +08:00
carl
55eb19acf8
* Fix merge conflict issue.
2019-06-16 01:19:15 +08:00
carl
ef246bd8e2
Closes #193 (signed integer shift left does not correctly check overflow in the interpreter when shifting by 0 bits), Closes #192 (integer division overflow is not handled in the interpreter and crashes it) and closes #194 (lar instruction does not accept negative bounds in interpreter when doing array index checking).
2019-06-16 01:03:01 +08:00
carl
1ec55dfc6e
bugfixes to make pascal compiler work.
2019-06-16 01:03:01 +08:00
carl
f2c8e42f95
shift right cannot cause an overflow.
2019-06-16 01:03:01 +08:00
carl
014c151091
bugfixes to make pascal compiler work.
2019-06-16 01:00:26 +08:00
carl
9fc3102b4d
shift right cannot cause an overflow.
2019-06-16 01:00:26 +08:00
carl
08b9482ac7
Merge remote-tracking branch 'upstream/default' into default
...
Conflicts:
util/arch/archiver.c
2019-06-15 23:53:35 +08:00
David Given
1387c8713b
Now that printf and scanf contain no FILE*-specific code, we can move them into
...
core (and split them up).
2019-06-15 13:53:20 +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
3798673afe
Merge pull request #186 from ccodere/carl-ansi-part1
...
Carl ansi part1
2019-06-15 12:09:41 +02:00
David Given
3d877ae3f8
Merge pull request #195 from davidgiven/dtrg-cpm
...
Various CP/M improvement
2019-06-11 23:38:29 +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
3fe9a05adc
Ignore .vscode directory.
2019-06-11 21:33:23 +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
6948e7cbe1
Allow building one plat at a time.
2019-06-11 00:12:10 +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
David Given
48480dcae5
Fix a tiny ackbuilder bug where you can't set properties to false.
2019-06-10 16:12:36 +02:00
carl
b1f6d5d827
ANSI C compilation fixes
2019-05-14 23:22:38 +08:00
carl
9bb69bbb98
Fix several compiler warnings by adding braces
2019-05-14 23:21:19 +08:00