Hallo zusammen!
Offtopic:
Ich war Mitglied im alten Forum, habe aber sowohl meinen Usernamen, als auch mein Passwort vergessen. Seitdem das Forum down war, habe ich so 2-3 mal im Jahr vorbeigeschaut und mich gestern total gefreut, dass es wieder da ist.
Zum Thema:
Ich habe noch in Erinnerung, dass einige User daran gearbeitet haben den Sourcecode zu bekommen. Leider verlief damals wohl eine Anfrage an die Entwickler Werner Krahe und Jens Onnen nicht erfolgreich. Kontakt konnte wohl hergestellt werden, doch den Source-Code hatte wohl niemand mehr.
Ich habe in der BMH.exe (Hexeditor) mal reingeschaut und ein paar (mögliche) Hinweise zur Programmiersprache und Compiler gefunden:
WATCOM C/C++16 Run-Time system. (c) Copyright by WATCOM International Corp. 1988-1994. All rights reserved.
Ich habe herausgefunden, dass es mittlerweile einen Open-Source Compiler von WATCOM gibt: http://www.openwatcom.org/download.php
(Quelle: https://de.wikipedia.org/wiki/Watcom)
Der Compiler bietet einen Funktion, um sich Debug Informationen ausgeben zulassen (Stichwort: wdump).
C:\>wdump BMH.exe
Open Watcom Executable Image Dump Utility Version 1.9
Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
DOS EXE Header
==============================================================================
length of load module mod 200H = 007CH
number of 200H pages in load module = 0017H
number of relocation items = 0006H
size of header in paragraphs = 0006H
minimum number of paragraphs required above load mod = 0087H
maximum number of paragraphs required above load mod = FFFFH
offset of stack segment in load module = 02C8H
initial value of SP = 0800H
checksum = 0000H
initial value of IP = 038CH
offset of code segment within load module (segment) = 0000H
file offset of first relocation item = 0040H
overlay number = 0000H
load module length = 00002C7CH
Linear EXE Header (OS/2 V2.x) - LE
==============================================================================
file offset = 00002C80H
byte order (0==little endian, 1==big endian) = 00H
word order " " = 00H
linear EXE format level = 00000000H
cpu type = 0002H
os type (1==OS/2, 2==Windows, 3==DOS4, 4==Win386) = 0001H
module version = 00000000H
module flags = 00000200H
# module pages = 00000079H
object # for initial EIP = 00000001H
initial EIP = 00060098H
object # for initial ESP = 00000004H
initial ESP = 00020740H
page size = 00001000H
last page size (LE)/page shift (LX) = 0000059FH
fixup section size = 00017A98H
fixup section checksum = 00000000H
loader section size = 00017CE8H
loader section checksum = 00000000H
object table offset = 000000C4H
# of objects in module = 00000004H
object page map offset = 00000124H
object iterated data map offset = 00000000H
offset of resource table = 00000308H
# of resource entries = 00000000H
offset of resident name table = 00000308H
offset of entry table = 00000313H
offset of module directive table = 00000000H
# of module directives = 00000000H
offset of fixup page table = 00000314H
offset of fixup record table = 000004FCH
offset of import module name table = 00017DABH
# of entries in import module name table = 00000000H
offset of import procedure name table = 00017DABH
offset of per-page checksum table = 00000000H
offset of enumerated data pages = 0001AC00H
# of pre-load pages = 00000000H
offset of non-resident names table (rel file) = 00000000H
size of non-resident names table = 00000000H
non-resident names table checksum = 00000000H
object # for automatic data object = 00000004H
offset of the debugging information = 00000000H
size of the debugging information = 00000000H
# of instance pages in the preload section = 00000000H
# of instance pages in the demand load section = 00000000H
size of heap (for 16-bit apps) = 00000000H
size of stack = 00000000H
Module Flags = PROGRAM | WINDOWCOMPAT
Object Table
==============================================================================
object 1: virtual memory size = 0006A94BH
relocation base address = 00010000H
object flag bits = 00002045H
object page table index = 00000001H
# of object page table entries = 0000006BH
reserved = 00000000H
flags = READABLE|EXECUTABLE|PRELOAD|BIG
object 2: virtual memory size = 00000082H
relocation base address = 00080000H
object flag bits = 00002045H
object page table index = 0000006CH
# of object page table entries = 00000001H
reserved = 00000000H
flags = READABLE|EXECUTABLE|PRELOAD|BIG
object 3: virtual memory size = 00000031H
relocation base address = 00090000H
object flag bits = 00000045H
object page table index = 0000006DH
# of object page table entries = 00000001H
reserved = 00000000H
flags = READABLE|EXECUTABLE|PRELOAD
object 4: virtual memory size = 00020740H
relocation base address = 000A0000H
object flag bits = 00002043H
object page table index = 0000006EH
# of object page table entries = 0000000CH
reserved = 00000000H
flags = READABLE|WRITABLE|PRELOAD|BIG
Resident Names Table
==============================================================================
ordinal 0000: DEUTSCH
Fixup Page Table
==============================================================================
00:00000000 01:000002A3 02:00000720 03:00000B8A
04:00000FCC 05:0000127E 06:0000166C 07:0000180B
08:00001929 09:00001CC2 10:00001EBA 11:0000224D
12:000025C2 13:00002926 14:00002C22 15:00002ED2
16:0000319D 17:0000369E 18:00003AE1 19:00003CFB
20:0000407B 21:0000446D 22:00004881 23:00004B80
24:00004E62 25:000052E0 26:0000568C 27:00005A69
28:00005C83 29:00005FE4 30:0000641B 31:00006839
32:00006D0C 33:000070D5 34:000073EC 35:00007528
36:00007864 37:00007C55 38:000081B0 39:0000847D
40:0000885B 41:00008BCD 42:00008E8E 43:00009149
44:00009473 45:00009667 46:000098DB 47:00009CD1
48:0000A0E3 49:0000A448 50:0000A7B4 51:0000A9D8
52:0000AD8A 53:0000B051 54:0000B25A 55:0000B857
56:0000BBA1 57:0000BD54 58:0000C095 59:0000C2D3
60:0000C671 61:0000CAF4 62:0000CDAE 63:0000D01E
64:0000D439 65:0000D891 66:0000DC05 67:0000DEBE
68:0000E18D 69:0000E437 70:0000E5FF 71:0000E7E9
72:0000EC97 73:0000F0B8 74:0000F832 75:0000FA85
76:0000FDFD 77:0001010E 78:000104FF 79:0001072A
80:00010A32 81:00010C6C 82:0001100F 83:000112CD
84:0001161D 85:000119A9 86:00011E60 87:0001238B
88:000126CC 89:00012A9A 90:00013124 91:00013854
92:00013C0B 93:00013F80 94:000142DB 95:000144F4
96:0001488D 97:00014A64 98:00014DF9 99:00015497
100:00015906 101:00015CCE 102:00015D84 103:000164BD
104:000168E6 105:00016D27 106:00016DCA 107:000170A4
108:00017119 109:00017119 110:00017119 111:00017120
112:000176C2 113:00017755 114:0001775C 115:00017813
116:00017813 117:00017813 118:00017813 119:00017813
120:00017813 121:000178AF
Nonresident Names Table
==============================================================================
Display More