Alles anzeigenHallo 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:
Quellcode
- 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:
openwatcom.org/download.php(Quelle:
de.wikipedia.org/wiki/Watcom)
Der Compiler bietet einen Funktion, um sich Debug Informationen ausgeben zulassen (Stichwort:
wdump
).
Quellcode
- 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
- ==============================================================================
Quelle: