Commit graph

8288 commits

Author SHA1 Message Date
d0p1 🏳️‍⚧️ c4bbe52d24 Pretty working 65oo2 assembler. 2024-02-23 16:09:37 +01:00
d0p1 🏳️‍⚧️ 7550b7dbc6 Basic assembly syntax 2024-02-22 20:37:12 +01:00
d0p1 🏳️‍⚧️ 9a7c5579b5 65oo2 boilerplate 2024-02-22 16:13:52 +01:00
David Given db5a32c68c
Merge pull request #288 from tkchia/tkchia/20230708
plat/linuxppc/emu: fix fctiw & fctiwz emulation for AArch64 host
2023-07-08 22:17:27 +02: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
David Given 6aa3fef91f
Merge pull request #278 from davidgiven/dtrg-qemu
Remove the qemu tests.
2023-02-14 00:09:59 +01: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
David Given 1fb1016349
Merge pull request #248 from davidgiven/llgen
Add HTML documentation to the LLgen build.
2023-01-08 21:32:29 +01:00
David Given 278ed3cf26
Merge pull request #267 from davidgiven/dtrg-fixes
More warning fixes.
2023-01-08 13:02:19 +01:00
dg f21d256f3f Update documentation. 2023-01-08 11:27:46 +00:00
dg 42b8c481e3 More warning fixes. 2023-01-08 11:27:36 +00:00
dg 0fe814b530 Merge from master. 2023-01-08 10:35:47 +00:00
David Given 9dfa4a88c5
Merge pull request #276 from davidgiven/dtrg-build
Fix some build issues when using the make build backend.
2022-12-30 20:27:54 +01:00
dg baff578256 Fix some build issues when using the make build backend. 2022-12-30 18:50:16 +00:00
David Given 5b554e8e6e
Merge pull request #274 from tkchia/tkchia/20220920
pc86: add degenerate "hard disk partition table" to boot sector
2022-09-21 00:41:40 +02: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
David Given 8619ce3ada
Merge pull request #272 from tkchia/tkchia/20220826
plat/msdos386: refactor, firm up, and optimize
2022-08-26 23:14:26 +02: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
David Given 8891fae303
Merge pull request #270 from tkchia/tkchia/20220823
Some fixes for msdos386 target platform
2022-08-24 19:13:37 +02: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 0165c07c7b
Merge pull request #269 from davidgiven/dtrg-msdos386
Add a plat for 32-bit DOS executables.
2022-08-19 21:00:43 +02: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 967b46e98e Hacky workaround to make lar work. 2022-08-10 00:15:40 +02:00
David Given b868c1ece9 Hacky workaround to make operatings on pointer differences work. 2022-08-10 00:15:28 +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 3716d49cd9 Allow arithmetic on variable values. 2022-08-08 22:02:51 +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
David Given a47bb5493d
Merge pull request #268 from tkchia/tkchia/self-host
plat/msdos86: add rename( )
2022-08-07 20:42:01 +02:00
tkchia 63f646de78 plat/msdos86: add rename( ) 2022-08-07 16:38:31 +00:00
David Given 03420ef4ad Fix warnings caused by bad prototypes. 2022-08-03 21:13:12 +02:00
David Given 6d9ac0b182 Add the nonfunctional boilerplate for the MSDOS 386 port. 2022-08-03 20:41:06 +02:00
David Given a45f1cdd33 Allow stosw, lodsw, scasw. 2022-08-03 20:32:58 +02:00