Commit Graph
164 Commits
Author SHA1 Message Date
Ryan C. Gordon e301ebf8d9 cmake: Needed some tweaks to build on Ubuntu 21.10. 2022-01-29 16:29:39 -05:00
Ryan C. Gordon f7d6515978 Convert .hgignore to .gitignore 2021-08-14 00:52:11 -04:00
Ryan C. Gordon e080a6bedb Create main.yml 2021-07-03 17:06:43 -04:00
Ryan C. Gordon 249c37e68a Hack to make this work on my Linux box for now. 2021-07-03 16:50:20 -04:00
Ryan C. Gordon d5f94592c7 Update README.md 2021-07-02 16:36:33 -04:00
Ryan C. Gordon 793876f985 Update and rename README.txt to README.md 2021-07-02 16:36:13 -04:00
Ryan C. Gordon 1b3c9239af Update LICENSE.txt
Reformatted so GitHub recognizes zlib license.
2021-07-02 15:26:33 -04:00
Ryan C. Gordon e91f8bdd25 Create FUNDING.yml 2021-07-02 15:19:06 -04:00
Ryan C. Gordon c970615447 lxapigen.sh: Report diffs of new files instead of a weird error. 2018-07-12 01:43:54 -04:00
Ryan C. Gordon 666c2ed7e4 A DosBeep() test program. 2018-07-11 01:13:42 -04:00
Ryan C. Gordon b8f67643dc Make DosBeep volume configurable. 2018-07-10 02:00:31 -04:00
Ryan C. Gordon 1fd6bab8eb Report OS version as OS/2 Warp 4.5, not 4.0.
It's the last official release (and even what modern spins, like ArcaOS 5,
report).
2018-07-10 01:45:05 -04:00
Ryan C. Gordon 490702cc45 Implemented DosBeep in doscalls and a simple audio mixer in lib2ine. 2018-07-10 01:33:11 -04:00
Ryan C. Gordon 8c5d43f997 pmwin: Added a few WinIs* APIs. 2018-07-10 01:27:30 -04:00
Ryan C. Gordon e31492cc16 pmwin: Changed a bunch of printf things from "unsigned int" to "uint". 2018-07-10 01:26:40 -04:00
Ryan C. Gordon 536bf684cb Implemented more robust current dir/disk APIs. 2018-07-10 01:30:01 -04:00
Ryan C. Gordon 1ce68d5bcf GLoaderState.running shouldn't be set here. 2018-07-10 01:20:08 -04:00
Ryan C. Gordon 0894e3d69d More work on mapping OS/2 drive letters to the Unix filesystem. 2018-07-10 01:19:37 -04:00
Ryan C. Gordon 8c8f41634f lxapigen.pl: Strip whitespace from function names when parsing headers. 2018-06-29 23:38:27 -04:00
Ryan C. Gordon 25ddf52ad7 lxapigen.pl doesn't need the native dir specified on the command line now. 2018-07-03 22:47:58 -04:00
Ryan C. Gordon 0a6a7208d8 Added a perl script that will filter os2imports.pl.
It filters out APIs that are implemented in 2ine, so you can see just what's
missing.
2018-07-03 22:47:19 -04:00
Ryan C. Gordon afc9e0846f Fixed exepack2 decompression.
Now 4os2.exe runs without a weird crash during startup (but still fails on a
missing API call a little later).
2018-06-29 22:05:06 -04:00
Ryan C. Gordon ec49615ef3 Fixed incorrect stack setup in NE loader. 2018-06-27 18:52:42 -04:00
Ryan C. Gordon 14073f3361 Added a basic config file parser to lib2ine.
This will let the app set up some state about the OS/2 "system", like what
Unix paths are mapped to which OS/2 drive letters, system vars, etc.

This reads from /etc/2ine.cfg, and then tries a copy in the user's local
config dir to add/override settings.

This mostly doesn't do anything yet, but the framework is there for adding
stuff, and the drive letter mapping is done, even if nothing is using it.
2018-06-24 02:40:36 -04:00
Ryan C. Gordon 9860532454 Cleanup *INFOSEG creation. 2018-06-19 13:59:21 -04:00
cracyc 35d2162ba4 fix last few export names 2018-06-19 12:05:24 -04:00
cracyc c7f212d035 build fixes 2018-06-19 11:59:46 -04:00
cracyc 8457fc0e22 Implemented a whole bunch of 16-bit APIs. OS/2 1.0's cmd.exe sort of works!
(Most of this work was cracyc's effort, but I started tweaking it before
I thought to perform a commit.  --ryan.)
2018-06-18 15:52:58 -04:00
cracyc 5ae85f2426 Use OS2PATH instead of Ryan's hardcoded hack. 2018-06-18 15:29:36 -04:00
Ryan C. Gordon 3e83a67d48 Let OS2APIINFO optionally take key/value pairs, use it for export names.
This lets me remove my tcpip32 hack, and will let me export old symbols
as all caps for OS/2's use and something more sane for regular use
(like VioGetCurPos() in modern times is VIOGETCURPOS in viocalls.dll, etc).
2018-06-17 22:21:52 -04:00
Ryan C. Gordon fcbedae5d1 Fixed comment. 2018-06-17 00:23:53 -04:00
cracyc 1b885afc0b Deal better with proc lookup into 16-bit bridge entry points. 2018-06-16 23:46:42 -04:00
cracyc a13726b2b7 Allocate the full 64k segment for the environment.
This is read/write memory owned by the process, which can reallocate it,
which CMD.EXE does.

(FIXME comment by ryan, rest of the patch was from cracyc.)
2018-06-16 23:45:07 -04:00
cracyc 241c4ea590 CMakeLists.txt: check for ncursesw/curses.h. 2018-06-16 23:31:51 -04:00
cracyc 38ae18c0fe Accept NE EXE type 0 or 1 (really old 16-bit OS/2 apps use 0). 2018-06-16 21:48:31 -04:00
Ryan C. Gordon a80afaa0c1 Be aggressive about saving registers in the 16-bit bridge.
Fixes a lot of stuff.  :)
2018-06-14 12:25:38 -04:00
Ryan C. Gordon cdaf533140 Fixed typo in Dos16Write's TRACE_NATIVE line. 2018-06-14 12:24:57 -04:00
Ryan C. Gordon 4ab1d427b7 lx_loader: deal with iterated segments in NE executables. 2018-06-13 01:46:41 -04:00
Ryan C. Gordon c659bb083a lx_dump: report NE application type and some other previously-missing flags. 2018-06-13 01:08:10 -04:00
Ryan C. Gordon ab60f82c43 lx_dump: report OS/2 EXE flags for NE modules. 2018-06-13 01:00:12 -04:00
Ryan C. Gordon 37c3cc5a0a Bunch more work on 16-bit entry points.
Can run testargv16.exe now. This means Watcom C startup code, and Watcom's
printf(), both work.
2018-06-07 23:48:39 -04:00
Ryan C. Gordon 36dedda17c Deal with NE binaries with a stack size of zero.
Microsoft C 5.1's CL.EXE does this. This is valid in the NE spec.
2018-06-07 23:44:54 -04:00
Ryan C. Gordon d82dd93262 Update testargv.c to work on older compilers, added 16-bit .exe of it. 2018-06-07 23:41:42 -04:00
Ryan C. Gordon 085b1c7ec7 Implement some 16-bit APIs that our hello16.exe needs. 2018-06-06 17:27:37 -04:00
Ryan C. Gordon bd2a9bf249 lxapigen.pl: show full diffs when changing things. 2018-06-06 17:26:20 -04:00
Ryan C. Gordon fbe6aaf432 Added a 16-bit Hello World app. 2018-06-06 17:25:47 -04:00
Ryan C. Gordon 0148811a0c lx_loader: Load 16-bit NE binaries!
This currently only works with a simple Hello World program, but this is the
bulk of the work to 16-bit program support.

Still need some minor effort to get 16-bit DLLs working, and of course we
need to implement a ton of missing 16-bit API calls.
2018-06-06 17:25:22 -04:00
Ryan C. Gordon bdc285797c lx_dump: Don't fail for extremely small (but valid) binaries.
Although strictly speaking, it looks like the final OS/2 releases
will fail if the OS/2 .EXE is less than ~320 bytes, choosing to
launch it as a DOS program instead (giving you the "This is an
OS/2 executable" message from the DOS stub, comically).
2018-06-06 17:20:30 -04:00
Ryan C. Gordon 4cbda8515b Changed asm for 16-bit missing trampolines to escape 16-bit mode first. 2018-06-06 17:17:12 -04:00
Ryan C. Gordon 8b695647db lxapigen.pl: Don't overwrite files that didn't change.
This prevents a full rebuild every time you add an API.
2018-06-06 16:19:24 -04:00