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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions