Skip to content

Second default FCB passed to EXEC is corrupted #185

@ecm-pushbx

Description

@ecm-pushbx

The first default FCB is fine, reading 1Ah (drive Z:) and FOO. The second default FCB should read 01h (drive A:) and BAR but does not. First log shows just the results in a new process. (int3.com is a very short file containing CC B8 00 4C CD 21.) Second log shows the FCB is already corrupted when passed to DOS, so it is FreeCOM's fault.

C:\>ldebug
-tsr
Patched PSP at 2788, now resident.
-
-g
C:\>ver /r

FreeCom version 0.87 - GNUC - XMS_Swap [Sep 27 2025 23:23:16]
DOS version 5.38
lDOS (2026 March) based on MS-DOS v4.01
C:\>int3 z:foo a:bar
Unexpected breakpoint interrupt
AX=00FF BX=00FF CX=00FF DX=2788 SP=FFFE BP=091C SI=0100 DI=FFFE
DS=2788 ES=2788 SS=2788 CS=2788 IP=0101 NV UP EI PL ZR NA PE NC
2788:0101 B8004C            mov     ax, 4C00
-d psp:5C FF
2788:0050                         -            1A 46 4F 4F             .FOO
2788:0060  20 20 20 20 20 20 20 20-00 00 00 00 00 02 72 AC         ......r.
2788:0070  35 10 15 FE FF 40 43 F2-00 00 00 00 4E 44 2E 43 5....@C.....ND.C
2788:0080  0C 20 7A 3A 66 6F 6F 20-61 3A 62 61 72 0D 00 41 . z:foo a:bar..A
2788:0090  55 54 4F 45 58 45 43 2E-42 41 54 0D 00 00 00 00 UTOEXEC.BAT.....
2788:00A0  00 00 17 00 20 20 20 20-20 0D 0A 24 08 00 FC 01 ....     ..$....
2788:00B0  00 45 98 33 08 45 98 7A-08 45 98 8A 08 45 98 04 .E.3.E.z.E...E..
2788:00C0  00 01 00 6A 02 7B 18 00-20 20 20 20 20 20 20 20 ...j.{..
2788:00D0  20 20 20 00 00 00 00 00-20 20 20 20 20 20 20 20    .....
2788:00E0  20 20 20 00 00 00 00 01-20 0D 00 00 00 00 00 00    ..... .......
2788:00F0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-

C:\>ldebug
-tsr
Patched PSP at 2788, now resident.
-bp at ptr ri21p when ah==4B
-g
C:\>int3 z:foo a:bar
Hit permanent breakpoint 00
AX=4B00 BX=08AA CX=C00F DX=072A SP=089E BP=4350 SI=0FB2 DI=4306
DS=C00F ES=C00F SS=C00F CS=B380 IP=008C NV UP DI PL NZ NA PE NC
B380:008C EB10              jmp     009E
-dw es:bx
header     0    2    4    6    8    A    C    E    0123456789ABCDEF
C00F:08A0                     -     0000 0080 C001           ......
C00F:08B0  06E0 C00F 0705 C00F-0000 0000 0000 0000 ................
C00F:08C0  F69E F000 1276 2760-0001 0001 6220 0000 ....v.`'.... b..
C00F:08D0  0000 0000 2788 0000-35AC 42E8 0000 21CD .....'...5.B...!
C00F:08E0  2ABA 8E07 BBC1 08AA-00B8 CD4B 7221 3102 .*........K.!r.1
C00F:08F0  FCC0 C98C D18E A4BC-8E08 A3D9 08DC 48B4 ...............H
C00F:0900  1E8B 08C4 21CD 6472-C389 1E2B 08D4 A353 .....!rd..+...S.
C00F:0910  08D4 0BB4 C6BE FF08-C01E 5B08 F883 7501 ...........[...u
C00F:0920  8946 01E5 025E 58CB-534D                F...^..XMS
-d C00F:6E0 l C
C00F:06E0  1A 46 4F 4F 20 20 20 20-20 20 20 20             .FOO
-d C00F:705 l C
C00F:0700                 35 50 05-33 00 3C 43 0C 15 33 00      5P.3.<C..3.
C00F:0710  96                     -                        .
-g
Unexpected breakpoint interrupt
AX=FFFF BX=FFFF CX=00FF DX=2788 SP=FFFE BP=091C SI=0100 DI=FFFE
DS=2788 ES=2788 SS=2788 CS=2788 IP=0101 NV UP EI PL ZR NA PE NC
2788:0101 B8004C            mov     ax, 4C00
-

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions