This group is about DOS, not about GEM. This group is about DOS, not DJGPP, 32-bit DPMI hosts aren't DOS.
This group is about DOS, not random compression utilities like ZOO. This group is about DOS, not third-party shells like PGME. This group is about DOS, not boot sector games. You can run DOS programs on an up-to-date Windows 10 with zero add-ons by just using a 32-bit OS build. Why do we need FreeDOS? Does your mouth feel full of foot yet? Arrogant myopia isn't going to go far, kid. Sent from my T-Mobile 5G Device Get Outlook for Android<https://aka.ms/AAb9ysg> ________________________________ From: Richard Stoltenberg via Freedos-devel <freedos-devel@lists.sourceforge.net> Sent: Thursday, August 8, 2024 2:18:13 PM To: Technical discussion and questions for FreeDOS developers. <freedos-devel@lists.sourceforge.net> Cc: Richard Stoltenberg <rs98...@gmail.com> Subject: Re: [Freedos-devel] 16-bit Windows development If it was leaked then certain people wouldn't legally approve of it. With a $35 monthly MSDN subscription, you had access to it binary for development purposes. Don't know if still available. With wine you can run windows 3.11 programs on Windows 10 and 11. This group is about DOS. On Mon, Jun 10, 2024 at 5:24 PM Chelson a via Freedos-devel <freedos-devel@lists.sourceforge.net<mailto:freedos-devel@lists.sourceforge.net>> wrote: No, win11 is not what I'm suggesting. Far from it. Im talking about the recently leaked 3.x code as a reference to start an opensource version of the Windows 3.1 shell. I played around with the react os code about 15 years ago to test out what the cmd was capable of doing for running dos applications and some ran fine and others not. Anyway it's too much of a job for anyone person to do and a lot of work to start a new opensource api for a very limited market. On Tue, 11 June 2024, 9:52 am Kirn Gill via Freedos-devel, <freedos-devel@lists.sourceforge.net<mailto:freedos-devel@lists.sourceforge.net>> wrote: > Are you sure it would be easier? For the most part. You really only need 286 Standard Mode for basic "completeness". Obviously 386 Enhanced Mode is needed too, but not entirely required (what about contemporaneous users of Windows 3.1 that only had a 286?) > Especially reimplementing Win 3.1 enhanced mode would be very hard to > implement, I think. To my knowledge, we do not have a working open source DOS > task switcher yet, capable of switching between "multiple DOS sessions", or > is there one? To me, this the "main feature" of Windows 3.1 :) What part of "386 Enhanced" mode are we needing here? The 32-bit KRNL386? It'll run under any DPMI host and give you "386 Enhanced Mode". However, what most people really want here is the second half: The Virtual Machine Manager, which is a VM86 manager and a DPMI host. "386 Enhanced Mode" is then just KRNL386 running inside of the "System VM", which is just another DOS box, but with special treatment (it can call certain APIs via interrupt vector that do nothing on any other DOS box the VMM manages.) If you can do hardware-based task switching, manage Virtual 8086 Mode instances, and intercept/reimplement interrupt-based APIs - many DOS calls are actually handled by VMM and it's loaded VxDs, not DOS itself - then you've got a good shot at reimplementing VMM itself. VMM lives in WIN386.EXE, which is itself a DOS loader for VMM and a collection of VxDs. I'm working on a tool in my spare time to do something akin to "readelf" but for MZ/NE/LE/PE. It's not complete by any measure, but it can read WIN386.EXE and dump out the table of included VxDs. The tool can be found at https://github.com/segin/readexe In Windows 3.1, the DOS stub in Windows 3.1 is about 14k, and the VMM itself is about 1.5k larger. Running "readexe" on WIN386.EXE from Windows for Workgroups 3.11 yields the following: DOS executable with magic: MZ (0x5a4d) Number of executable pages: 0x0036 (27136+ bytes) Size of final page: 0x00000000 (0 bytes) Total code size: 0x00006a00 (27136 bytes) Total relocation entries: 0x000f Header size in paragraphs: 0x0020 (512 bytes) Minimum heap in paragraphs: 0x1400 (81920 bytes) Maximum heap in paragraphs: 0xffff (1048560 bytes) Minimum memory to load: 109056 bytes Initial CS:IP (entrypoint): 0000:10ef Initial SS:SP (stack): 06a0:0400 Checksum: 0x2f24 Relocation table offset: 0x0040 Overlay: 0x0000 MZ EXE relocaton table Number of relocations: 15 [0] 0000:08cb [1] 0000:0f97 [2] 0000:0fb3 [3] 0000:10f9 [4] 0000:19ff [5] 0000:1acd [6] 0000:2262 [7] 0000:24c8 [8] 0000:260d [9] 0000:279f [10] 0000:2827 [11] 0000:2f93 [12] 0348:1def [13] 0348:1df3 [14] 0348:1df7 Offset to next header: 0x00006c00 W3 Executable header found at offset 0x00006c00 VxD Module Table: ID Name Offset Size (dec) ------------------------------------------------------ [00] "WIN386 " 0x00007000 0x00003b8b (15243 bytes) [01] "INT13 " 0x00022400 0x0000021b (539 bytes) [02] "WDCTRL " 0x00023c00 0x000002aa (682 bytes) [03] "VMD " 0x00027400 0x00000308 (776 bytes) [04] "VPD " 0x00029c00 0x0000029a (666 bytes) [05] "VWC " 0x0002c400 0x00000220 (544 bytes) [06] "DOSNET " 0x0002ec00 0x0000023f (575 bytes) [07] "VNETBIOS" 0x00031400 0x00000410 (1040 bytes) [08] "EBIOS " 0x00035400 0x000001be (446 bytes) [09] "VDDVGA " 0x00037c00 0x00000dbf (3519 bytes) [0a] "VKD " 0x00042800 0x0000090c (2316 bytes) [0b] "VPICD " 0x00047400 0x00000833 (2099 bytes) [0c] "VTD " 0x0004a400 0x0000052d (1325 bytes) [0d] "REBOOT " 0x0004c800 0x00000257 (599 bytes) [0e] "VDMAD " 0x0004e400 0x00000790 (1936 bytes) [0f] "VSD " 0x00051800 0x0000019b (411 bytes) [10] "V86MMGR " 0x00053400 0x00000f99 (3993 bytes) [11] "PAGESWAP" 0x0005fc00 0x0000038f (911 bytes) [12] "DOSMGR " 0x00062400 0x000017e8 (6120 bytes) [13] "VMPOLL " 0x0006e400 0x00000224 (548 bytes) [14] "WSHELL " 0x0006fc00 0x00000daa (3498 bytes) [15] "BLOCKDEV" 0x00076800 0x0000028e (654 bytes) [16] "PAGEFILE" 0x00079400 0x0000048b (1163 bytes) [17] "VFD " 0x0007c400 0x0000018a (394 bytes) [18] "PARITY " 0x0007dc00 0x00000168 (360 bytes) [19] "BIOSXLAT" 0x0007f400 0x000001b4 (436 bytes) [1a] "VCD " 0x00080c00 0x00000507 (1287 bytes) [1b] "VMCPD " 0x00084400 0x0000021e (542 bytes) [1c] "COMBUFF " 0x00086c00 0x00000211 (529 bytes) [1d] "CDPSCSI " 0x00088400 0x00000155 (341 bytes) [1e] "QEMMFIX " 0x0008ac00 0x000001ac (428 bytes) > Do not forget USER.EXE. To my knowledge, much of the windowing and controls > stuff is implemented in it. It's particular implementation isn't described much in any of the texts that I've read, short of discussion of how USER32.DLL mostly just thunks to USER.EXE in Windows 3.1/95/98/ME (3.1? Win32s, remember?). I'm not forgetting it, per se, I just have no particular books to recommend for it other than just regular programming texts focusing on the public API (e.g. Programming Windows by Charles Petzold) > Perhaps as a "proof-of-concept" one could restrict to a real mode only, > single program runtime facility. There, things like the dynamic linker and > loader for NE executables / DLLs etc. and other basic KERNEL, GDI and USER > functions could be implemented and tested. That's actually one of the initial goals. See if we can cook up Windows 1.0x in the interim. That requires most of the groundwork needed to properly scaffold such a project. > Thanks for the book references! Here's some more that'll be quite useful in this sort of endeavor: Unauthorized Windows 95: A Developer's Guide to Exploring the Foundations of Windows "Chicago" (Andrew Schulman) Unauthorized Windows 95: Developer's Resource Kit (Andrew Schulman) Windows 95 System Programming Secrets (Matt Pietrek) and periodicals of the era: BYTE Magazine Microsoft Systems Journal which some of which you can find on old MSDN CDs. This blog post has links to the first thirteen such releases, as uploaded to Internet Archive: https://virtuallyfun.com/2019/03/27/early-msdn-cds-on-archive-org/ Chelson, you recent suggestion is along the lines of saying "if you want DOS, just run cmd.exe on Windows 11". -- Kirn Gill II Mobile: +1 813-300-2330<tel:+18133002330> VoIP: +1 813-704-0420<tel:+18137040420> Email: segin2...@gmail.com<mailto:segin2...@gmail.com> LinkedIn: http://www.linkedin.com/pub/kirn-gill/32/49a/9a6 On Sun, Jun 9, 2024 at 5:37 AM Bernd Böckmann via Freedos-devel <freedos-devel@lists.sourceforge.net<mailto:freedos-devel@lists.sourceforge.net>> wrote: > > Something targeting 16-bit Windows would be easier since the official API has > been frozen since 1992 Are you sure it would be easier? Especially reimplementing Win 3.1 enhanced mode would be very hard to implement, I think. To my knowledge, we do not have a working open source DOS task switcher yet, capable of switching between "multiple DOS sessions", or is there one? To me, this the "main feature" of Windows 3.1 :) > > I've been looking at the work needed to do so and most of it seems to lie in > properly recreating the KERNEL and possibly GDI module(s). There is a book, > "Windows Internals: Implementing the Windows Operating Environment" that does > a good job of describing the Windows 3.1 kernel (and some other things), and > can be paired with "Undocumented Windows: A Programmer's Guide to Reserved > Microsoft Windows API Functions" (the Andrew Schulman books) as a companion > text (Windows Internals itself recommends this book in the preface.) > > Drivers can be sourced from DDK examples or just plain use existing driver > binaries. > Do not forget USER.EXE. To my knowledge, much of the windowing and controls stuff is implemented in it. Perhaps as a "proof-of-concept" one could restrict to a real mode only, single program runtime facility. There, things like the dynamic linker and loader for NE executables / DLLs etc. and other basic KERNEL, GDI and USER functions could be implemented and tested. Regarding the NE loader, that could potentially be interesting to other DOS application programmers, giving them the possibility to use DLLs etc. Thanks for the book references! Bernd _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net<mailto:Freedos-devel@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/freedos-devel _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net<mailto:Freedos-devel@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/freedos-devel _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net<mailto:Freedos-devel@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/freedos-devel
_______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel