Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

"All my life I wanted to be someone; I guess I should have been more specific." -- Jane Wagner


devel / comp.os.msdos.programmer / Borlands Tasm 4.1 generating faulty output problem

SubjectAuthor
o Borlands Tasm 4.1 generating faulty output problemR.Wieser

1
Borlands Tasm 4.1 generating faulty output problem

<s8j0bu$pkn$1@gioia.aioe.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=99&group=comp.os.msdos.programmer#99

  copy link   Newsgroups: comp.os.msdos.programmer
Path: i2pn2.org!i2pn.org!aioe.org!wIgm+2MIUUYkuZKIR0Uhug.user.gioia.aioe.org.POSTED!not-for-mail
From: address@not.available (R.Wieser)
Newsgroups: comp.os.msdos.programmer
Subject: Borlands Tasm 4.1 generating faulty output problem
Date: Tue, 25 May 2021 16:07:52 +0200
Organization: Aioe.org NNTP Server
Lines: 65
Message-ID: <s8j0bu$pkn$1@gioia.aioe.org>
NNTP-Posting-Host: wIgm+2MIUUYkuZKIR0Uhug.user.gioia.aioe.org
X-Complaints-To: abuse@aioe.org
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512
X-MSMail-Priority: Normal
X-RFC2646: Format=Flowed; Original
X-Newsreader: Microsoft Outlook Express 6.00.2900.5512
X-Notice: Filtered by postfilter v. 0.9.2
X-Priority: 3
 by: R.Wieser - Tue, 25 May 2021 14:07 UTC

Hello all,

I'm using Borlands Tasm 4.1 and TLink 7.1.30.1 on XPsp3 in a CMD box, and
have run in a situation where NTVDM throws an error because of an unknown
opcode.

It looks like that it has nothing to do with my programming (jay !), but
with either of the above programs. Below are the relevant parts from the
executable, the object and the list files.

The problem is the 0x00 injected at address 0x05D1 in the .EXE and address
0x09AA in the.OBJ, but *not* the .LST file (at 0x05D1). Among others it
causes the JMP to be one byte short, pointing to the last byte of the
command before the actual targetted command (causing the NTVDM to barf).

Notice that the second commandbyte at 0x05D3 in the .EXE does not match the
one at 0x09AC in the .OBJ file (presumably because of the assemble-time
fixup of the argument of the PUSH at line 1668 of the .LST file).

Remarkably, when I place a NOP (or any byte for that matter) just below the
"jmp @@CmdGetDir2" at line 1664 in the .LST file the problem fully
disappears.

-- .EXE
162E:05C7 683412 PUSH 1234
162E:05CA 6A00 PUSH +00
162E:05CC E836FF CALL 0505
162E:05CF EB49 JMP 061A
162E:05D1 00FF ADD BH,BH ;<--
162E:05D3 F4 HLT
162E:05D4 9D POPF
162E:05D5 01E8 ADD AX,BP
162E:05D7 D0FA SAR DL,1

-- .OBJ
15C7:09A0 683412 PUSH 1234
15C7:09A3 6A00 PUSH +00
15C7:09A5 E836FF CALL 08DE
15C7:09A8 EB49 JMP 09F3
15C7:09AA 00FF ADD BH,BH ;<--
15C7:09AC 3696 XCHG AX,SI
15C7:09AE 01E8 ADD AX,BP
15C7:09B0 D0FA SAR DL,1

-- .LST
1 1659 05C7 68 1234 PUSH 1234H
1 1660 05CA 6A 00 PUSH gcCOM
1 1661 05CC E8 FF36 CALL CommWriteBlock
1662 05CF EB 49 jmp @@CmdGetDir2
1663
1664 ; <--
1665
1666 ;---------------
1667 05D1 @@CmdGetDir1:
1668 call TTYHexWord,[gBlkBuf].BLK2FLE_wAttrib
1 1669 05D1 FF 36 0196r PUSH [gBlkBuf]. BLK2FLE_wAttrib
1 1670 05D5 E8 FAD0 CALL TTYHexWord

The question: does anyone recognise it and knows how how/with what to fix
it. Likely an update of either or both of the above files ...

Regards,
Rudy Wieser

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor