d0p1 🏳️⚧️
c4bbe52d24
Pretty working 65oo2 assembler.
2024-02-23 16:09:37 +01:00
d0p1 🏳️⚧️
9a7c5579b5
65oo2 boilerplate
2024-02-22 16:13:52 +01:00
tkchia
56ebd1409b
plat/linuxppc/emu: get dump_state( ) to also dump FP registers
2023-07-08 20:08:33 +00:00
tkchia
7dd8ea2ea5
plat/linuxppc/emu: fix fctiw & fctiwz emulation for AArch64 host
...
Fixes https://github.com/davidgiven/ack/issues/287
2023-07-08 19:54:29 +00:00
dg
3badc8ece7
Remove the qemu tests --- they've never been reliable and cause problems for
...
people.
2023-02-13 22:21:42 +00:00
tkchia
b59422a24b
pc86: add degenerate "hard disk partition table" to boot sector
...
This is needed on some PCs to boot the pc86.img as a USB drive.
2022-09-20 16:14:38 +00:00
tkchia
247a2bd6ae
plat/msdos386: rename _psp[] to .psp, avoid namespace pollution
2022-08-26 17:32:50 +00:00
tkchia
f8a6f92752
plat/msdos386: fix: RM int 0x21 calls was clobbering high halves
...
of esi and edi registers
2022-08-26 17:32:50 +00:00
tkchia
cba54b205b
plat/msdos386: refactor, firm up, and optimize
...
- refactor code for transfer buffer reads/writes, real mode
int 0x21 calls, and assembler segment declarations
- define transfer buffer size in one place
- beef up error checking for transfer buffer operations
(prevent buffer overflows)
- also optimize such operations to transfer dword by dword
where feasible
2022-08-26 17:31:28 +00:00
tkchia
15955282f6
plat/msdos386: fix some issues in libsys code
...
- ensure es = ds = ss upon exit of each C runtime function
- clear upper 16 bits of ebx before setting them to 0x0021,
when invoking interrupt_ptr to simulate a RM int 0x21
- make _sys_exists use the transfer buffer (which it needs)
- make _sys_rawread properly handle an end-of-file read
(zero bytes read)
- make argument to _sys_seterrno short --- after a failed
int 0x21 call, only the lower 16 bits of eax hold the MS-DOs
error code
- _sys_rawlseek accepts only 3 longword arguments, not 4
(the offset is only 1 longword)
- other minor fixes
2022-08-24 15:17:04 +00:00
tkchia
249e4b9069
plat/msdos386: fix a few more issues with startup and stub code
...
- correctly calculate size of BSS area to clear
- make realloc routine set both ds & es to point to new
data segment
- correctly initialize real mode flags when simulating real
mode interrupt via DPMI
- other minor fixes
2022-08-24 10:17:15 +00:00
tkchia
95ed8ee484
plat/msdos386: fix startup code so that it works under dosemu2
...
- do not try to store data through code segment selectors
- set each segment limit to segment size - 1, not segment size
- get PSP segment while still in real/V86 mode (DPMI host
might choose to return PM selector for int 0x21, ah = 0x62)
- other minor fixes
2022-08-23 14:35:43 +00:00
David Given
887ec0656e
Update documentation.
2022-08-19 20:08:39 +02:00
David Given
d24c3f8722
Fix typo.
2022-08-19 20:03:48 +02:00
David Given
c37c0e62cc
Remember to actually update the brk position when calling brk.
2022-08-19 20:03:40 +02:00
David Given
dc1f69be83
Most of read and write now works; filename-based operations partially work; but
...
there's a nasty memory corruption somewhere which needs investigating.
2022-08-19 00:08:57 +02:00
David Given
5329c98b81
Simplify and fix reading and writing so they seem to work.
2022-08-18 21:21:33 +02:00
David Given
cc356b5c75
Programs now start up and can write to the console, but crash when reading.
2022-08-18 00:24:08 +02:00
David Given
48398b072a
write() system calls work; start going through the libsys.
2022-08-17 22:34:06 +02:00
David Given
680b6b9857
Marshal the environment, command line and PSP into 32-bit memory.
2022-08-11 23:36:23 +02:00
David Given
1764c6baa2
Made realloc work; the 32-bit process can now be resized to include bss and
...
stack.
2022-08-10 16:14:12 +02:00
David Given
d464606dd6
We can now load and run 32-bit protected-mode executables. We have not,
...
however, set up the data segment.
2022-08-09 23:49:18 +02:00
David Given
b48b5b13ce
Maybe have a working stub now.
2022-08-09 23:32:41 +02:00
David Given
21b30ccadb
We can now switch to 32-bit mode.
2022-08-08 23:22:00 +02:00
David Given
1e0961c679
Do enough of the boot stub to produce an EXE header and enter DPMI protected
...
mode.
2022-08-08 22:03:12 +02:00
David Given
f2a49ff3ab
msdos86 actually emits .COM files.
2022-08-08 00:01:06 +02:00
David Given
b81ac5e2c3
Cut-and-paste the msdos86 libsys so the msdos386 stuff now at least builds.
2022-08-07 22:10:08 +02:00
David Given
00c722d2ef
Merge from trunk.
2022-08-07 22:01:08 +02:00
tkchia
63f646de78
plat/msdos86: add rename( )
2022-08-07 16:38:31 +00:00
David Given
6d9ac0b182
Add the nonfunctional boilerplate for the MSDOS 386 port.
2022-08-03 20:41:06 +02:00
David Given
511c3e99ee
Fix a whole bunch of warnings.
2022-08-01 22:08:23 +02:00
David Given
33ce9169b4
Merge pull request #259 from davidgiven/dtrg-ci
...
Make work on Windows.
2022-07-18 23:05:01 +02:00
David Given
c573b9bce2
Split aal arguments properly.
2022-07-18 16:48:14 +02:00
David Given
01c2342e18
Create archives in chunks to allow for very long lists of members.
2022-07-18 00:55:02 +02:00
David Given
496424acf6
Merge from default.
2022-07-16 19:35:49 +02:00
tkchia
0236f00d26
plat/msdos86: fix: read() on O_TEXT fd should try to return any errors signaled by low-level read
2022-07-16 17:20:47 +00:00
David Given
9519588f59
Convert all the things to Unix format.
2022-07-16 00:02:46 +02:00
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
tkchia
1c71653d7f
plat/msdos86: free up program memory above 64 KiB; also check
...
we have enough memory for BSS
2022-06-28 20:13:16 +00:00
tkchia
571fce1165
plat/msdos86: make getpid() use European MS-DOS's getpid syscall
...
if it exists
2022-06-24 17:00:57 +00:00
Tee-Kiah Chia
76c40b5dc0
plat/msdos86: add unlink( )
2022-01-21 21:06:33 +00:00
Tee-Kiah Chia
84a25b0526
Add fork, wait, waitpid for all Linux targets, & execl for linux386.
2022-01-19 17:05:59 +00:00
David Given
7286c67e8f
Merge pull request #224 from nick-less/default
...
fix compile error under macos
2021-04-26 17:34:09 +02:00
Tee-Kiah Chia
a6c7ac2a28
plat/msdos86: add gettimeofday( )
2021-03-29 15:15:13 +00:00
Tee-Kiah Chia
f2c8828a4b
plat/msdos86: copy stubs kill( ), signal( ), from plat/pc86
2021-03-28 17:21:54 +00:00
Tee-Kiah Chia
466cf20805
plat/msdos86: add open( ), lseek( ), and getpid()
2021-03-28 17:21:53 +00:00
Tee-Kiah Chia
0d2b55cd29
plat/msdos86: add isatty( ), _setmode( ), read( ), write( )
2021-03-28 17:21:52 +00:00
Tee-Kiah Chia
aaf3ef695b
plat/msdos86: implement close( ) function & proper errno setting
2021-03-27 13:23:44 +00:00
Tee-Kiah Chia
4c678ca210
Adding MS-DOS .com program support (msdos86). Still incomplete.
2021-03-27 13:15:56 +00:00
Tee-Kiah Chia
64a74b4e09
Add .seek asm pseudo-op, advances location counter to fixed offset
...
The new .seek assembler pseudo-op advances the location
counter to a fixed offset within a section --- or to a fixed
address, if the section is a .base'd section. It works
somewhat like the GNU assembler's .org pseudo-op, though
with a hopefully less confusing name.
This pseudo-op lets us avoid having to manually compute the
needed boot sector padding in the pc86 start-up code
plat/pc86/boot.s .
2021-03-19 13:36:24 +00:00