(programs are below)

I did a few more tests and this is not a regression. OpenWatcom
FORTRAN also doesn't work in FreeDOS 1.3 on the Pocket386. (Although
OpenWatcom C does work with FreeDOS 1.3 on the Pocket386.)

Config 1:
Reinstalled with FreeDOS 1.3 -- base system, then installed Watcomf
and Watcomc. Also installed BCC, just because. Booted the Pocket386
with the default boot option.

Compiling a simple "Hello world" C program with OpenWatcom worked.
Compiling the same C program with BCC also works fine.

Compiling a simple "Hello world" F77 program with OpenWatcom failed
with this error:

DOS/4GW error (2001): exception 07h (device not available) at 150:004BCAEA
TSF32: prev_tsf32 5278
SS       158 DS       158 ES       158 FS         0 GS        20
EAX   526AFE EBX   532080 ECX   526AFC EDX   52FF02
ESI   526B2C EDI   527B58 EBP        0 ESP   53C54C
CS:IP  150:004BCAEA ID 07 COD   526AFE FLG    10202
CS=  150, USE32, page granular, limit FFFFFFFF, base        0, acc CF9B
SS=  158, USE32, page granular, limit FFFFFFFF, base        0, acc CF93
DS=  158, USE32, page granular, limit FFFFFFFF, base        0, acc CF93
ES=  158, USE32, page granular, limit FFFFFFFF, base        0, acc CF93
FS=    0, USE16, byte granular, limit        0, base       14, acc  0
GS=   20, USE16, byte granular, limit     FFFF, base     2E30, acc 93
CR0: PG:1 ET:1 TS:0 EM:1 MP:0 PE:1   CR2: 0 CR3: 6067
Crash address (unrelocated) = 1:0003EAEA


Config 2:
Reinstalled with FreeDOS 1.4 -- base system, then installed Watcomf
and Watcomc. Also installed BCC and i16gcc, and DOS32A.  Booted the
Pocket386 with the default boot option.

Compiling the C program with BCC works fine. Compiling the same C
program with OpenWatcom crashes with this error:

DOS/4GW error (2001): exception 07h (device not available) at 150:004BCA1A
TSF32: prev_tsf32 5278
SS       158 DS       158 ES       158 FS         0 GS        20
EAX   52E5A6 EBX   530330 ECX   52E5A4 EDX   53FF02
ESI   52E5CE EDI   52F600 EBP        0 ESP   53F1FC
CS:IP  150:004BCA1A ID 07 COD   52E5A6 FLG    10202
CS=  150, USE32, page granular, limit FFFFFFFF, base        0, acc CF9B
SS=  158, USE32, page granular, limit FFFFFFFF, base        0, acc CF93
DS=  158, USE32, page granular, limit FFFFFFFF, base        0, acc CF93
ES=  158, USE32, page granular, limit FFFFFFFF, base        0, acc CF93
FS=    0, USE16, byte granular, limit        0, base       14, acc  0
GS=   20, USE16, byte granular, limit     FFFF, base     2DF0, acc 93
CR0: PG:1 ET:1 TS:0 EM:1 MP:0 PE:1   CR2: 0 CR3: 6067
Crash address (unrelocated) = 1:0003BA1A

Compiling the F77 program with OpenWatcom crashes with this error:

DOS/4GW error (2001): exception 07h (device not available) at 150:004BCAEA
TSF32: prev_tsf32 5278
SS       158 DS       158 ES       158 FS         0 GS        20
EAX   526AFE EBX   532080 ECX   526AFC EDX   52FF02
ESI   526B2C EDI   527B58 EBP        0 ESP   53C54C
CS:IP  150:004BCAEA ID 07 COD   526AFE FLG    10202
CS=  150, USE32, page granular, limit FFFFFFFF, base        0, acc CF9B
SS=  158, USE32, page granular, limit FFFFFFFF, base        0, acc CF93
DS=  158, USE32, page granular, limit FFFFFFFF, base        0, acc CF93
ES=  158, USE32, page granular, limit FFFFFFFF, base        0, acc CF93
FS=    0, USE16, byte granular, limit        0, base       14, acc  0
GS=   20, USE16, byte granular, limit     FFFF, base     2E20, acc 93
CR0: PG:1 ET:1 TS:0 EM:1 MP:0 PE:1   CR2: 0 CR3: 6067
Crash address (unrelocated) = 1:0003EAEA

Retrying that by running 'dos32a wfl' crashes with a beep and this error:

DOS/32A warning (9004): mouse initialization failed
DOS/32A run-time (6001): exception (INT 07h)
Identity: coprocessor not available at <0838:0014FAFA>
Unrelocated crash address <1:0003EAEA>
========================================================================APP/32=
EFLAGS = 00010206 [00000010|00000110]  CS:[EIP] = DB E3 50 D9 3C 24 58 80 FC 03
EAX = 001B93BE    ESI = 001B93EC       Last INT = 21h    SS:[ESP+00] = 001BFF02
EBX = 001C2060    EDI = 001BA418       CR0 = FFFFFFF5    SS:[ESP+04] = 001C2060
ECX = 001B93BC    EBP = 00000000       CR2 = 00000000    SS:[ESP+08] = 001B93BC
EDX = 001BFF02    ESP = 001CEE2C       CR3 = 0000D000    SS:[ESP+0C] = 001C0830
CS: = 0838  Base=00000000 Limit=000FFFFF Gr=PAGE Seg=CODE/32bit Type=5 Acc=DF9B
DS: = 0830  Base=00000000 Limit=000FFFFF Gr=PAGE Seg=DATA/32bit Type=1 Acc=DF93
ES: = 0830  Base=00000000 Limit=000FFFFF Gr=PAGE Seg=DATA/32bit Type=1 Acc=DF93
SS: = 0830  Base=00000000 Limit=000FFFFF Gr=PAGE Seg=DATA/32bit Type=1 Acc=DF93
FS: = 0840  Base=00000000 Limit=000FFFFF Gr=PAGE Seg=DATA/32bit Type=1 Acc=DF93
GS: = 0058  Base=00005B20 Limit=000FFFFF Gr=PAGE Seg=DATA/32bit Type=1 Acc=DF93


I also tried rebooting & compiling the C program with i16gcc. I forgot
to save the output with Logger, but I took a photo. It has this error:

Exiting due to signal SIGNOFP
Coprocessor not available at eip=008acd60

..and then the eax, ebx, ecx, edx, esi, edi, ebp, esp register values.
The program was CC1.EXE



Also:
In 2019, someone else on Vogons reported the same "exception 07h
(device not available)" error. That was in a discussion about a board
without a coprocessor, and the person wrote the error is "related to
the FPU according to the information I was able to find. This message
disappears with the 387 installed, therefore it seems to work in some
way."
https://www.vogons.org/viewtopic.php?t=68057


I'm convinced this issue with OpenWatcom FORTRAN is due to the
Pocket386 having a 386SX-40 CPU, without a math coprocessor.


On Wed, Apr 2, 2025 at 12:07 AM Jim Hall <jh...@freedos.org> wrote:
>
> Did a few more experiments: I think the problem is the OpenWatcom
> DOS4gw. I can't compile with either OpenWatcom C or OpenWatcom FORTRAN
> (but I can compile fine with Turbo C). I get a stack trace but it was
> late and I needed to go to bed so I didn't capture it. I also tried
> booting without fdconfig.sys or fdauto.bat.
>
> I'll try a few more experiments tomorrow afternoon.
>
> My plan:
>
> 1. Reinstall with 1.3 and try again (if the error happens there too,
> at least this isn't a regression, and it's more likely to be an issue
> with the missing math coprocessor)
>
> 2. Reinstall with 1.4 and try again
>
> Any other experiments I should try?
>
>
> My FORTRAN program is just a simple "hello world" program, plus another
> one that just counts 1 to 10. There's nothing tricky here. Same for
> the sample C programs.


The sample "Hello world" programs:


hello.c

>#include <stdio.h>
>
>int main()
>{
> puts("Hello world");
> return 0;
>}


hi.f

>      PROGRAMHI0000
>      PRINT*,'HELLO WORLD'
>      END


_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to