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
Ryan C. Gordon
b1217b7fe0
Added docs on NE format that I found on the web.
2018-05-28 12:57:50 -04:00
Ryan C. Gordon
c19db82bc8
Added script that takes a pipe from lx_dump and reports all needed symbols.
...
This, with its fairly large (but incomplete) dictionary of system APIs, is
useful when you want to know that a module wants "VioWrtNCell" and not
"ordinal 52 in VIOCALLS.DLL". :)
2018-05-28 05:03:07 -04:00
Ryan C. Gordon
537b81f460
lx_dump: 16-bit modules should list imported modules starting at 1.
2018-05-28 03:29:40 -04:00
Ryan C. Gordon
3bde50a716
lx_dump: Finished 16-bit fixup output.
2018-05-28 02:36:50 -04:00
Ryan C. Gordon
8e2c1449ab
Initial work on parsing NE (16-bit) executables.
...
This is just lx_dump for now, but if some work proves out, we can load these
with lx_loader, too, and bridge the 16-bit APIs to 32-bits the same as we
do anyhow, giving us access to 16-bit OS/2 binaries.
2018-03-07 15:54:01 -05:00