The source code for the original DOS Doom executables has been leaked on the Internet. This is very interesting to look at.
The Macintosh Doom source code, E-Mails and splash screens in PICT format are also included. This is an exciting leak to read through. The old DOS source code is fascinating, and seeing this instead of the old Linux source code is a good insight into the workings of the DOS Doom game.
They had issues connecting a Macintosh machine to a DOS machine to play a networked game of Doom without using a router, this is still true today I assume, the Internet uses routers to connect computers over the World Wide Web. But Doom was using IPX packets. The reason is that the server acts as a “router” and translator for MacIPX packets, which are in actuality sent in AppleTalk packets (encapsulated IPX packets) and converted to IPX by the server. This is an interesting insight. Nowadays we all use TCP and UDP packets to send all manner of data all the time. But this was 1995 and things were much more primitive.
Here is a sample of the source code, this is the D_NET.C.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | #define __MAC_VERSION__ #include <Lion.h> #include "LionDoom.h" #include "AppleTalkNet.h" #include "SerialNet.h" #include "CTBNet.h" #include "doomdef.h" #include "MacPCSwitches.h" #include "DebugSwitches.h" #include "NetDialogs.h" // I_pcnet.m #include "DoomResources.h" #define NCMD_EXIT 0x80000000 #define NCMD_RETRANSMIT 0x40000000 #define NCMD_SETUP 0x20000000 #define NCMD_KILL 0x10000000 // kill game #define NCMD_CHECKSUM 0x0fffffff #define kWaitUntilTicks (60 * 45) // Wait 45 seconds if no other players are around #if __DEBUG_FILE__ #include <stdio.h> #endif // IPX Routines extern void SendPacket (int destination); extern Boolean GetPacket (long *size); extern void IPXTerminateNet (void); extern void SpinCursor (void); extern void StatusParamText(char *one, char *two, char *three, char *four); extern short gCursID; extern void BlackScreen(void); extern RedrawScreen(); NetType gNetType; doomcom_t *doomcom = 0; doomdata_t *netbuffer; // points inside doomcom long tryRunCount = 0; /* ============================================================================== NETWORKING gametic is the tic about to (or currently being) run maketic is the tick that hasn't had control made for it yet nettics[] has the maketics for all players a gametic cannot be run until nettics[] > gametic for all players ============================================================================== */ #define RESENDCOUNT 10 #define PL_DRONE 0x80 // bit flag in doomdata->player #include "D_NET.PROTO.H" ticcmd_t localcmds[BACKUPTICS]; ticcmd_t netcmds[MAXPLAYERS][BACKUPTICS]; int nettics[MAXNETNODES]; boolean nodeingame[MAXNETNODES]; // set false as nodes leave game boolean remoteresend[MAXNETNODES]; // set when local needs tics int resendto[MAXNETNODES]; // set when remote needs tics int resendcount[MAXNETNODES]; int nodeforplayer[MAXPLAYERS]; int maketic; int lastnettic, skiptics; int ticdup; int maxsend; // BACKUPTICS/(2*ticdup)-1 void D_ProcessEvents (void); void G_BuildTiccmd (ticcmd_t *cmd); void D_DoAdvanceDemo (void); boolean reboundpacket; doomdata_t reboundstore; extern void CloseStatusDialog (void); extern void StatusDialog (tLong total, tLong current); extern void DrawStatusDialog (Boolean forUpdate); extern short InitialDialog (void); /* ==================== = = I_InitNetwork = ==================== */ void I_InitNetwork (void) { usergame = true; // Allocate doomcom structure if (!doomcom) { doomcom = (doomcom_t *) NewPtrClear(sizeof (doomcom_t)); if (!doomcom) { I_Error("Allocation of doomcom failed"); } } if (!gPlayNetGame) { // // single player game // netgame = false; doomcom->id = DOOMCOM_ID; gNumPlayersOnNet = doomcom->numplayers = doomcom->numnodes = 1; doomcom->deathmatch = false; doomcom->consoleplayer = 0; doomcom->ticdup = 1; doomcom->extratics = 0; return; } else { netgame = true; doomcom->skill = startskill; doomcom->episode = startepisode; doomcom->map = startmap; doomcom->deathmatch = deathmatch; doomcom->id = DOOMCOM_ID; doomcom->ticdup = 1; doomcom->extratics = 0; } } int NetbufferSize (void) { int size; size =(sizeof(doomdata_t) - (sizeof(ticcmd_t) * (BACKUPTICS - netbuffer->numtics))); return (size); // return (((doomdata_t *)0)->cmds[netbuffer->numtics]); } |
I wonder if the DOS source would compile, I guess you would need the development environment as well and that is from 1995. The /MacIPX_includes/ folder is included, so this might be possible. If you coded a limit-removing port of Doom and called it Boom…
This is the Doom PowerPC Makefile.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 | # File: DoomPPC.make # Target: DoomPPC # Created: Sunday, October 16, 1994 11:48:36 PM SOURCEDIR = ":src:" OBJECTDIR = ":objPPCC:" #OBJECTDIR = ":objMotPPCC:" IPXSRCDIR = ":MacIPX_APIs:" IPXHDRDIR = ":MacIPX_includes:" HEADERDIR = ":hdrs:" FIXEDSTUFFDIR = ":FixedStuff:" METROWERKSDIR = "HD:CW5:MetrowerksCÄ:" COMPILER = PPCC # COMPILER = MCC HEADERSEARCH = ¶ -i "{HEADERDIR}" ¶ -i "Doom II:MPW:Interfaces:CIncludes:" ¶ -i ":sys:LionIncludes:" ¶ -i "{IPXHDRDIR}" #------------------------- # MPW PPCC #------------------------- COMPILEOPTIONS = -w off -dialect ansic -align mac68k -appleext on -d "__MPW_VERSION__" -enum int -opt speed # -sym full #------------------------- # Motorola #------------------------- # COMPILEOPTIONS = -w -Atarg=603 -Aalign_mac=1 -Apascalstr=1 -O -d "__MPW_VERSION__" # COMPILEOPTIONS = -w -Atarg=604 -Aalign_mac=1 -Acompactdata=0 -Achar=signed -Apascalstr=1 -O3 -d "__MPW_VERSION__" # COMPILEOPTIONS = -w -Atarg=604 -Aalign_mac=1 -Acompactdata=0 -Achar=signed -Apascalstr=1 -O4 -d "__MPW_VERSION__" # -O # -w <- suppress warnings # -g (debug on), must turn -O off (optimization) # -O1 -O2 -O3 # -P = precompile, no object is created # -H = show headers, no obj is created # -Aalign_mac68k=1 <- Not working # -Atarg=604 # -Atarg=603 # -g = debugging on (overrides optimizations) ROPTIONS = -i "{SOURCEDIR}" HEADERS = ¶ "{HEADERDIR}"AM_DATA.H ¶ "{HEADERDIR}"AM_MAP.H ¶ "{HEADERDIR}"AM_MAP.PROTO.H ¶ # "{HEADERDIR}"AM_OIDS.H ¶ # "{HEADERDIR}"AM_OIDS.PROTO.H ¶ # "{HEADERDIR}"D_FRENCH.H ¶ "{HEADERDIR}"D_MAIN.PROTO.H ¶ "{HEADERDIR}"D_NET.PROTO.H ¶ # "{HEADERDIR}"DITHER.H ¶ # "{HEADERDIR}"DITHER.PROTO.H ¶ "{HEADERDIR}"DOOMDATA.H ¶ "{HEADERDIR}"DOOMDEF.H ¶ "{HEADERDIR}"DSTRINGS.H ¶ "{HEADERDIR}"DUTILS.H ¶ "{HEADERDIR}"DUTILS.PROTO.H ¶ "{HEADERDIR}"F_FINALE.PROTO.H ¶ "{HEADERDIR}"G_GAME.PROTO.H ¶ "{HEADERDIR}"HU_LIB.H ¶ "{HEADERDIR}"HU_LIB.PROTO.H ¶ "{HEADERDIR}"HU_STUFF.H ¶ "{HEADERDIR}"HU_STUFF.PROTO.H ¶ "{HEADERDIR}"I_HEADER.H ¶ "{HEADERDIR}"I_IBM.PROTO.H ¶ "{HEADERDIR}"I_MAIN.PROTO.H ¶ # "{HEADERDIR}"I_PCNET.PROTO.H ¶ "{HEADERDIR}"I_SOUND.H ¶ "{HEADERDIR}"I_SOUND.PROTO.H ¶ "{HEADERDIR}"INFO.H ¶ "{HEADERDIR}"INFO.PROTO.H ¶ # "{HEADERDIR}"IRIX.H ¶ "{HEADERDIR}"LionDoom.h ¶ "{HEADERDIR}"M_MENU.PROTO.H ¶ "{HEADERDIR}"M_MISC.PROTO.H ¶ "{HEADERDIR}"MacAllocA.h ¶ "{HEADERDIR}"MacAllocA.proto.h ¶ # "{HEADERDIR}"MacSound.h ¶ "{HEADERDIR}"offscreen.h ¶ "{HEADERDIR}"P_CEILNG.PROTO.H ¶ "{HEADERDIR}"P_DOORS.PROTO.H ¶ "{HEADERDIR}"P_ENEMY.PROTO.H ¶ "{HEADERDIR}"P_FLOOR.PROTO.H ¶ "{HEADERDIR}"P_INTER.PROTO.H ¶ "{HEADERDIR}"P_LIGHTS.PROTO.H ¶ "{HEADERDIR}"P_LOCAL.H ¶ "{HEADERDIR}"P_MAP.PROTO.H ¶ "{HEADERDIR}"P_MAPUTL.PROTO.H ¶ "{HEADERDIR}"P_MOBJ.PROTO.H ¶ "{HEADERDIR}"P_PLATS.PROTO.H ¶ "{HEADERDIR}"P_PSPR.PROTO.H ¶ "{HEADERDIR}"P_SETUP.PROTO.H ¶ "{HEADERDIR}"P_SIGHT.PROTO.H ¶ "{HEADERDIR}"P_SPEC.H ¶ "{HEADERDIR}"P_SPEC.PROTO.H ¶ "{HEADERDIR}"P_SWITCH.PROTO.H ¶ "{HEADERDIR}"P_TELEPT.PROTO.H ¶ "{HEADERDIR}"P_TICK.PROTO.H ¶ "{HEADERDIR}"P_USER.PROTO.H ¶ "{HEADERDIR}"R_BSP.PROTO.H ¶ "{HEADERDIR}"R_DATA.PROTO.H ¶ # "{HEADERDIR}"R_DRAW.PROTO.H ¶ "{HEADERDIR}"R_LOCAL.H ¶ "{HEADERDIR}"R_MAIN.PROTO.H ¶ "{HEADERDIR}"R_PLANE.PROTO.H ¶ "{HEADERDIR}"R_SEGS.PROTO.H ¶ "{HEADERDIR}"R_THINGS.PROTO.H ¶ "{HEADERDIR}"S_SOUND.PROTO.H ¶ # "{HEADERDIR}"sndserver.h ¶ "{HEADERDIR}"SOUNDS.H ¶ "{HEADERDIR}"SOUNDS.PROTO.H ¶ "{HEADERDIR}"SOUNDST.H ¶ "{HEADERDIR}"ST_LIB.H ¶ "{HEADERDIR}"ST_LIB.PROTO.H ¶ "{HEADERDIR}"ST_STUFF.H ¶ "{HEADERDIR}"ST_STUFF.PROTO.H ¶ "{HEADERDIR}"TABLES.PROTO.H ¶ "{HEADERDIR}"V_VIDEO.PROTO.H ¶ "{HEADERDIR}"W_WAD.PROTO.H ¶ # "{HEADERDIR}"WADREAD.H ¶ "{HEADERDIR}"WI_DATA.H ¶ "{HEADERDIR}"WI_STUFF.H ¶ "{HEADERDIR}"WI_STUFF.PROTO.H ¶ "{HEADERDIR}"Z_ZONE.PROTO.H ¶ "{HEADERDIR}"AppleTalkNet.h ¶ "{HEADERDIR}"CTBNet.h ¶ "{HEADERDIR}"CTBBuffer.h ¶ "{HEADERDIR}"SerialNet.h ¶ "{HEADERDIR}"IPXNet.h ¶ "{IPXHDRDIR}"ipxcalls.h ¶ "{IPXHDRDIR}"ipxerror.h ¶ "{IPXHDRDIR}"sap.h ¶ "{IPXHDRDIR}"rip.h ¶ "{HEADERDIR}"DoomResources.h OBJECTS = ¶ "{OBJECTDIR}"About.c.o ¶ "{OBJECTDIR}"AM_MAP.C.o ¶ # "{OBJECTDIR}"AM_OIDS.C.o ¶ "{OBJECTDIR}"CTBBuffer.C.o ¶ "{OBJECTDIR}"CTBNet.C.o ¶ "{OBJECTDIR}"D_MAIN.C.o ¶ "{OBJECTDIR}"D_NET.C.o ¶ # "{OBJECTDIR}"DITHER.C.o ¶ "{OBJECTDIR}"DUTILS.C.o ¶ "{OBJECTDIR}"F_FINALE.C.o ¶ "{OBJECTDIR}"G_GAME.C.o ¶ "{OBJECTDIR}"Help.c.o ¶ "{OBJECTDIR}"HU_LIB.C.o ¶ "{OBJECTDIR}"HU_STUFF.C.o ¶ "{OBJECTDIR}"IPXNet.C.o ¶ "{OBJECTDIR}"IPXSetup.C.o ¶ "{OBJECTDIR}"ipxapi.c.o ¶ "{OBJECTDIR}"I_IBM.C.o ¶ "{OBJECTDIR}"I_MAIN.C.o ¶ # "{OBJECTDIR}"I_PCNET.C.o ¶ "{OBJECTDIR}"I_SOUND.C.o ¶ "{OBJECTDIR}"INFO.C.o ¶ "{OBJECTDIR}"KeyConfig.C.o ¶ "{OBJECTDIR}"M_MENU.C.o ¶ "{OBJECTDIR}"M_MISC.C.o ¶ "{OBJECTDIR}"MacAllocA.c.o ¶ "{OBJECTDIR}"NetDialogs.c.o ¶ "{OBJECTDIR}"AppleTalkNet.C.o ¶ "{OBJECTDIR}"Offscreen.c.o ¶ "{OBJECTDIR}"P_CEILNG.C.o ¶ "{OBJECTDIR}"P_DOORS.C.o ¶ "{OBJECTDIR}"P_ENEMY.C.o ¶ "{OBJECTDIR}"P_FLOOR.C.o ¶ "{OBJECTDIR}"P_INTER.C.o ¶ "{OBJECTDIR}"P_LIGHTS.C.o ¶ "{OBJECTDIR}"P_MAP.C.o ¶ "{OBJECTDIR}"P_MAPUTL.C.o ¶ "{OBJECTDIR}"P_MOBJ.C.o ¶ "{OBJECTDIR}"P_PLATS.C.o ¶ "{OBJECTDIR}"P_PSPR.C.o ¶ "{OBJECTDIR}"P_SETUP.C.o ¶ "{OBJECTDIR}"P_SIGHT.C.o ¶ "{OBJECTDIR}"P_SPEC.C.o ¶ "{OBJECTDIR}"P_SWITCH.C.o ¶ "{OBJECTDIR}"P_TELEPT.C.o ¶ "{OBJECTDIR}"P_TICK.C.o ¶ "{OBJECTDIR}"P_USER.C.o ¶ "{OBJECTDIR}"R_BSP.C.o ¶ "{OBJECTDIR}"R_DATA.C.o ¶ "{OBJECTDIR}"R_DRAW.C.o ¶ "{OBJECTDIR}"R_MAIN.C.o ¶ "{OBJECTDIR}"R_PLANE.C.o ¶ "{OBJECTDIR}"R_SEGS.C.o ¶ "{OBJECTDIR}"R_THINGS.C.o ¶ "{OBJECTDIR}"SerialNet.C.o ¶ "{OBJECTDIR}"S_SOUND.C.o ¶ "{OBJECTDIR}"SOUNDS.C.o ¶ "{OBJECTDIR}"ST_LIB.C.o ¶ "{OBJECTDIR}"ST_STUFF.C.o ¶ "{OBJECTDIR}"TABLES.C.o ¶ "{OBJECTDIR}"V_VIDEO.C.o ¶ "{OBJECTDIR}"W_WAD.C.o ¶ "{OBJECTDIR}"WI_STUFF.C.o ¶ "{OBJECTDIR}"Z_ZONE.C.o DoomPPC ÄÄ DoomPPC.make {OBJECTS} {HEADERS} PPCLink ¶ # -sym on ¶ -warn ¶ {OBJECTS} ¶ ":libs:BlitLargeAlign.s.o" ¶ ":libs:FixMath.o" ¶ "{PPCLibraries}"StdCRuntime.o ¶ "{PPCLibraries}"InterfaceLib.xcoff ¶ "{PPCLibraries}"MathLib.xcoff ¶ "{PPCLibraries}"StdCLib.xcoff ¶ "{PPCLibraries}"PPCCRuntime.o ¶ "{PPCLibraries}"PPCToolLibs.o ¶ "{PPCLibraries}"QuickTimeLib.xcoff ¶ # -main __start ¶ -o DoomPPC.xcoff makePEF DoomPPC.xcoff -o DoomPPC ¶ -l InterfaceLib.xcoff=InterfaceLib ¶ -l MathLib.xcoff=MathLib ¶ -l StdCLib.xcoff=StdCLib ¶ -l QuickTimeLib.xcoff=QuickTimeLib~ ¶ -ft APPL -fc idSW SetFile DoomPPC -a B # MakeSYM {HEADERSEARCH} -i ":src:" -i ":libs:" DoomPPC.xcoff -o DoomPPC.xSYM DoomPPC ÄÄ DoomPPC.make ":rsrc:Doom.r" ":rsrc:Doom.rsrc" ":rsrc:PPC.rsrc" ¶ ":rsrc:Splash.rsrc" ":rsrc:SktListener.rsrc" ":rsrc:SktListener.rsrc" Rez {ROPTIONS} -d "__powerc" -append ":rsrc:Doom.r" -o {Targ} # DoomPPC.rsrc Ä DoomPPC.make "{SOURCEDIR}"Doom.r # Rez {ROPTIONS} -d "__powerc" "{SOURCEDIR}"Doom.r -o {Targ} ################################## # # OBJECT BUILD RULES # ################################## "{OBJECTDIR}"About.C.o Ä "{SOURCEDIR}"About.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"About.C -o "{OBJECTDIR}"About.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"AM_MAP.C.o Ä "{SOURCEDIR}"AM_MAP.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"AM_MAP.C -o "{OBJECTDIR}"AM_MAP.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"AM_OIDS.C.o Ä "{SOURCEDIR}"AM_OIDS.C {COMPILER} "{SOURCEDIR}"AM_OIDS.C -o "{OBJECTDIR}"AM_OIDS.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"AppleTalkNet.C.o Ä "{SOURCEDIR}"AppleTalkNet.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"AppleTalkNet.C -o "{OBJECTDIR}"AppleTalkNet.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"DITHER.C.o Ä "{SOURCEDIR}"DITHER.C {COMPILER} "{SOURCEDIR}"DITHER.C -o "{OBJECTDIR}"DITHER.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"DUTILS.C.o Ä "{SOURCEDIR}"DUTILS.C {COMPILER} "{SOURCEDIR}"DUTILS.C -o "{OBJECTDIR}"DUTILS.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"D_MAIN.C.o Ä "{SOURCEDIR}"D_MAIN.C {COMPILER} "{SOURCEDIR}"D_MAIN.C -o "{OBJECTDIR}"D_MAIN.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"ipxapi.c.o Ä "{IPXSRCDIR}"ipxapi.c {COMPILER} "{IPXSRCDIR}"ipxapi.c -o "{OBJECTDIR}"ipxapi.c.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"IPXSetup.C.o Ä "{SOURCEDIR}"IPXSetup.C {COMPILER} "{SOURCEDIR}"IPXSetup.C -o "{OBJECTDIR}"IPXSetup.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"IPXNet.C.o Ä "{SOURCEDIR}"IPXNet.C ¶ "{OBJECTDIR}"ipxapi.c.o {COMPILER} "{SOURCEDIR}"IPXNet.C -o "{OBJECTDIR}"IPXNet.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"CTBBuffer.C.o Ä "{SOURCEDIR}"CTBBuffer.C {COMPILER} "{SOURCEDIR}"CTBBuffer.C -o "{OBJECTDIR}"CTBBuffer.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"CTBNet.C.o Ä "{SOURCEDIR}"CTBNet.C ¶ "{OBJECTDIR}"CTBBuffer.C.o {COMPILER} "{SOURCEDIR}"CTBNet.C -o "{OBJECTDIR}"CTBNet.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"D_NET.C.o Ä "{SOURCEDIR}"D_NET.C ¶ "{OBJECTDIR}"AppleTalkNet.C.o ¶ "{OBJECTDIR}"CTBNet.C.o ¶ "{OBJECTDIR}"SerialNet.C.o ¶ "{OBJECTDIR}"IPXNet.C.o ¶ "{OBJECTDIR}"IPXSetup.C.o ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"D_NET.C -o "{OBJECTDIR}"D_NET.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"F_FINALE.C.o Ä "{SOURCEDIR}"F_FINALE.C {COMPILER} "{SOURCEDIR}"F_FINALE.C -o "{OBJECTDIR}"F_FINALE.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"G_GAME.C.o Ä "{SOURCEDIR}"G_GAME.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"G_GAME.C -o "{OBJECTDIR}"G_GAME.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"Help.C.o Ä "{SOURCEDIR}"Help.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"Help.C -o "{OBJECTDIR}"Help.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"HU_LIB.C.o Ä "{SOURCEDIR}"HU_LIB.C {COMPILER} "{SOURCEDIR}"HU_LIB.C -o "{OBJECTDIR}"HU_LIB.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"HU_STUFF.C.o Ä "{SOURCEDIR}"HU_STUFF.C {COMPILER} "{SOURCEDIR}"HU_STUFF.C -o "{OBJECTDIR}"HU_STUFF.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"INFO.C.o Ä "{SOURCEDIR}"INFO.C {COMPILER} "{SOURCEDIR}"INFO.C -o "{OBJECTDIR}"INFO.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"I_IBM.C.o Ä "{SOURCEDIR}"I_IBM.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"I_IBM.C -o "{OBJECTDIR}"I_IBM.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"I_MAIN.C.o Ä "{SOURCEDIR}"I_MAIN.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"I_MAIN.C -o "{OBJECTDIR}"I_MAIN.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"I_SOUND.C.o Ä "{HEADERDIR}"MacSound.h "{SOURCEDIR}"I_SOUND.C {COMPILER} "{SOURCEDIR}"I_SOUND.C -o "{OBJECTDIR}"I_SOUND.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"KeyConfig.C.o Ä "{SOURCEDIR}"KeyConfig.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"KeyConfig.C -o "{OBJECTDIR}"KeyConfig.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"MACALLOCA.C.o Ä "{SOURCEDIR}"MACALLOCA.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"MACALLOCA.C -o "{OBJECTDIR}"MACALLOCA.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"M_MENU.C.o Ä "{SOURCEDIR}"M_MENU.C {COMPILER} "{SOURCEDIR}"M_MENU.C -o "{OBJECTDIR}"M_MENU.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"M_MISC.C.o Ä "{SOURCEDIR}"M_MISC.C {COMPILER} "{SOURCEDIR}"M_MISC.C -o "{OBJECTDIR}"M_MISC.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"NetDialogs.C.o Ä "{SOURCEDIR}"NetDialogs.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"NetDialogs.C -o "{OBJECTDIR}"NetDialogs.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"OFFSCREEN.C.o Ä "{SOURCEDIR}"OFFSCREEN.C {COMPILER} "{SOURCEDIR}"OFFSCREEN.C -o "{OBJECTDIR}"OFFSCREEN.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_CEILNG.C.o Ä "{SOURCEDIR}"P_CEILNG.C {COMPILER} "{SOURCEDIR}"P_CEILNG.C -o "{OBJECTDIR}"P_CEILNG.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_DOORS.C.o Ä "{SOURCEDIR}"P_DOORS.C {COMPILER} "{SOURCEDIR}"P_DOORS.C -o "{OBJECTDIR}"P_DOORS.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_ENEMY.C.o Ä "{SOURCEDIR}"P_ENEMY.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"P_ENEMY.C -o "{OBJECTDIR}"P_ENEMY.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_FLOOR.C.o Ä "{SOURCEDIR}"P_FLOOR.C {COMPILER} "{SOURCEDIR}"P_FLOOR.C -o "{OBJECTDIR}"P_FLOOR.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_INTER.C.o Ä "{SOURCEDIR}"P_INTER.C {COMPILER} "{SOURCEDIR}"P_INTER.C -o "{OBJECTDIR}"P_INTER.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_LIGHTS.C.o Ä "{SOURCEDIR}"P_LIGHTS.C {COMPILER} "{SOURCEDIR}"P_LIGHTS.C -o "{OBJECTDIR}"P_LIGHTS.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_MAP.C.o Ä "{SOURCEDIR}"P_MAP.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"P_MAP.C -o "{OBJECTDIR}"P_MAP.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_MAPUTL.C.o Ä "{SOURCEDIR}"P_MAPUTL.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"P_MAPUTL.C -o "{OBJECTDIR}"P_MAPUTL.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_MOBJ.C.o Ä "{SOURCEDIR}"P_MOBJ.C {COMPILER} "{SOURCEDIR}"P_MOBJ.C -o "{OBJECTDIR}"P_MOBJ.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_PLATS.C.o Ä "{SOURCEDIR}"P_PLATS.C {COMPILER} "{SOURCEDIR}"P_PLATS.C -o "{OBJECTDIR}"P_PLATS.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_PSPR.C.o Ä "{SOURCEDIR}"P_PSPR.C {COMPILER} "{SOURCEDIR}"P_PSPR.C -o "{OBJECTDIR}"P_PSPR.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_SETUP.C.o Ä "{SOURCEDIR}"P_SETUP.C {COMPILER} "{SOURCEDIR}"P_SETUP.C -o "{OBJECTDIR}"P_SETUP.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_SIGHT.C.o Ä "{SOURCEDIR}"P_SIGHT.C {COMPILER} "{SOURCEDIR}"P_SIGHT.C -o "{OBJECTDIR}"P_SIGHT.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_SPEC.C.o Ä "{SOURCEDIR}"P_SPEC.C {COMPILER} "{SOURCEDIR}"P_SPEC.C -o "{OBJECTDIR}"P_SPEC.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_SWITCH.C.o Ä "{SOURCEDIR}"P_SWITCH.C {COMPILER} "{SOURCEDIR}"P_SWITCH.C -o "{OBJECTDIR}"P_SWITCH.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_TELEPT.C.o Ä "{SOURCEDIR}"P_TELEPT.C {COMPILER} "{SOURCEDIR}"P_TELEPT.C -o "{OBJECTDIR}"P_TELEPT.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_TICK.C.o Ä "{SOURCEDIR}"P_TICK.C {COMPILER} "{SOURCEDIR}"P_TICK.C -o "{OBJECTDIR}"P_TICK.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"P_USER.C.o Ä "{SOURCEDIR}"P_USER.C {COMPILER} "{SOURCEDIR}"P_USER.C -o "{OBJECTDIR}"P_USER.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"R_BSP.C.o Ä "{SOURCEDIR}"R_BSP.C {COMPILER} "{SOURCEDIR}"R_BSP.C -o "{OBJECTDIR}"R_BSP.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"R_DATA.C.o Ä "{SOURCEDIR}"R_DATA.C {COMPILER} "{SOURCEDIR}"R_DATA.C -o "{OBJECTDIR}"R_DATA.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"R_DRAW.C.o Ä "{SOURCEDIR}"R_DRAW.C {COMPILER} "{SOURCEDIR}"R_DRAW.C -o "{OBJECTDIR}"R_DRAW.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"R_MAIN.C.o Ä "{SOURCEDIR}"R_MAIN.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"R_MAIN.C -o "{OBJECTDIR}"R_MAIN.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"R_PLANE.C.o Ä "{SOURCEDIR}"R_PLANE.C {COMPILER} "{SOURCEDIR}"R_PLANE.C -o "{OBJECTDIR}"R_PLANE.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"R_SEGS.C.o Ä "{SOURCEDIR}"R_SEGS.C {COMPILER} "{SOURCEDIR}"R_SEGS.C -o "{OBJECTDIR}"R_SEGS.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"R_THINGS.C.o Ä "{SOURCEDIR}"R_THINGS.C {COMPILER} "{SOURCEDIR}"R_THINGS.C -o "{OBJECTDIR}"R_THINGS.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"SerialNet.C.o Ä "{SOURCEDIR}"SerialNet.C {COMPILER} "{SOURCEDIR}"SerialNet.C -o "{OBJECTDIR}"SerialNet.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"SOUNDS.C.o Ä "{HEADERDIR}"MacSound.h "{SOURCEDIR}"SOUNDS.C {COMPILER} "{SOURCEDIR}"SOUNDS.C -o "{OBJECTDIR}"SOUNDS.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"ST_LIB.C.o Ä "{SOURCEDIR}"ST_LIB.C {COMPILER} "{SOURCEDIR}"ST_LIB.C -o "{OBJECTDIR}"ST_LIB.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"ST_STUFF.C.o Ä "{SOURCEDIR}"ST_STUFF.C {COMPILER} "{SOURCEDIR}"ST_STUFF.C -o "{OBJECTDIR}"ST_STUFF.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"S_SOUND.C.o Ä "{HEADERDIR}"MacSound.h "{SOURCEDIR}"S_SOUND.C {COMPILER} "{SOURCEDIR}"S_SOUND.C -o "{OBJECTDIR}"S_SOUND.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"TABLES.C.o Ä "{SOURCEDIR}"TABLES.C {COMPILER} "{SOURCEDIR}"TABLES.C -o "{OBJECTDIR}"TABLES.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"V_VIDEO.C.o Ä "{SOURCEDIR}"V_VIDEO.C {COMPILER} "{SOURCEDIR}"V_VIDEO.C -o "{OBJECTDIR}"V_VIDEO.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"WI_STUFF.C.o Ä "{SOURCEDIR}"WI_STUFF.C {COMPILER} "{SOURCEDIR}"WI_STUFF.C -o "{OBJECTDIR}"WI_STUFF.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"W_WAD.C.o Ä "{SOURCEDIR}"W_WAD.C ¶ "{HEADERDIR}"DoomResources.h {COMPILER} "{SOURCEDIR}"W_WAD.C -o "{OBJECTDIR}"W_WAD.C.o {COMPILEOPTIONS} {HEADERSEARCH} "{OBJECTDIR}"Z_ZONE.C.o Ä "{SOURCEDIR}"Z_ZONE.C {COMPILER} "{SOURCEDIR}"Z_ZONE.C -o "{OBJECTDIR}"Z_ZONE.C.o {COMPILEOPTIONS} {HEADERSEARCH} |
And this is the DOOM order form.
id Software MAIL, FAX & E-MAIL Order Form Name (Please Print) ________________________________________________________ Address ____________________________________________________________________ City _________________________ State/Province ______________________________ ZIP/POSTAL CODE ___________________ Country _______________________________ Phone/Fax __________________________________________________________________ Check your card: [ ] Visa [ ] MasterCard [ ] Discover [ ] American Express Card number: _________________________ Expiration date: _____/_____ (MM/YY) Signature: ________________________________________ *** Thank you! *** PRODUCT US/CAN EUROPEAN DOOM: [ ] DOOM 3.5" Macintosh $40.00 £27.00 [ ] DOOM CD Macintosh $40.00 £27.00 [ ] DOOM 3.5" (DOS) $40.00 £27.00 [ ] DOOM CD (DOS) $40.00 £27.00 [ ] DOOM Hint Book $15.00 £10.00 [ ] DOOM/id T-shirt S M L XL $13.00 £9.00 DOOM II: [ ] DOOM II 3.5" Macintosh $45.00 £27.00 [ ] DOOM II CD Macintosh $45.00 £27.00 [ ] DOOM II 3.5" Disks (DOS) $45.00 Not Available [ ] DOOM II CD (DOS) $45.00 from id in Europe HERETIC: [ ] HERETIC 3.5" (DOS) $40.00 £27.00 [ ] HERETIC CD (DOS) $40.00 £27.00 SHIPPING CHARGES: |TOTALS: [ ] USA/CAN: $5*, EUROPE: £8* |Shipping and Handling charges: $/£____________ [ ] All other countries: $10* | Sub-Total: $/£____________ |TX Sales Tax or European VAT : $/£____________ *Add $2.00 USA/CAN or | Amount enclosed: $/£____________ !£3.00 EUROPE for |(TX residents must include state sales tax) each additional item |(European residents must add 17.5% VAT to both | product and shipping & handling charges.) Make checks payable to "id". Checks mailed to our USA address must be drawn in US Dollars Checks mailed to our UK address must be drawn in Pounds Sterling Allow one to three weeks for delivery. Please place your order through our order center if you wish to have your product sent via overnight express. -=-=-+ If you live in the USA or Canada +-=-=- Call us toll free at 1-800-idgames (1-800-434-2637) Mail to: id REMEMBER: Checks mailed to our USA c/o StarPak address must be drawn in US Dollars. P.O. Box 1230 Greeley, CO 80632 Fax to: 303-330-7553 E-Mail to: [email protected] -=-=-+ If you live in Europe +-=-=- Call us toll free at United Kingdom: 0800-834-619 Germany: 0130-81-32-65 France: 0590-86-12 Spain: 900-97-4423 Italy: 1678-77-243 or toll at: French speaking: +44-1429-268207 English speaking: +44-1429-860814 German speaking: +44-1429-268218 Mail to: id c/o StarPak International, Ltd. REMEMBER: Checks mailed to PO Box 63 our UK address must be Hartepool, Cleveland drawn in Pounds Sterling. TS25 2YP Fax to: +44-(0)1429-521005 E-Mail to: [email protected] -=-=-+ Elsewhere in the world +-=-=- Check availability at your local software retailer or mail/fax/e-mail/WWW an order directly to us. We ship anywhere the shipping companies will deliver. -=-=-+ If you have the time..... +-=-=- Where did you get DOOM Episode 1 from? Downloaded from: [ ] Software Creations BBS [ ] Other BBS: Name: ________________________________________________ [ ] CompuServe (CIS): Forum Name: ___________________________________ [ ] America Online (AOL) [ ] Genie: RoundTable (RT) Name: ___________________________________ [ ] Delphi: Special Interest Group (SIG) Name: ______________________ [ ] Internet FTP Site: Site Name: ___________________________________ [ ] eWorld Purchased from: [ ] Catalog Vendor: Vendor Name: ____________________________________ [ ] Retail (Store, flea market, computer fair): Vendor Name: ______________________________ [ ] Ordered it from us Other: [ ] A friend gave it to me [ ] None of the above [ ] Unknown |
Download this archive here: https://mega.nz/file/opR33b4L#_sUw0JN8UW8AGoYhKxcSxzTypR5r2uG5biZnVK4CvYg. 158.6 Megabytes.