Function Index

Between the game code and the C library routines used by the game code, there are 271 functions defined and documented in this project. This is a centralized, alphabetical (A–Z, a–z) index of all of these functions, their definitions, a brief description of their purpose, and a link to the page section that describes each in greater detail.

Note: Due to the extraction technique used, symbols with non-external visibility will not show address or size information. Each symbol’s size is a best-effort guess based on the distance to the next known symbol, and in some cases this may overestimate the size due to either non-visible symbols or padding inserted by the compiler/linker.


ActBarrel() »

void ActBarrel(word index);

The tick function for every barrel and basket actor. It takes the index of the current actor in the actors array.

E1E2E3
Symbol Address0104:28ABh0104:28ABh0104:28B5h
Size (Bytes)939393

ActFootSwitch() »

void ActFootSwitch(word index);

The tick function for every foot switch actor. It takes the index of the current actor in the actors array.

E1E2E3
Symbol Address0104:1F9Ch0104:1F9Ch0104:1FA6h
Size (Bytes)418418418

AdLibService() »

void AdLibService(void);

Streams chunks of music data to the AdLib hardware at the appropriate time.

E1E2E3
Symbol Address1095:0153h107F:0158h10C5:0156h
Size (Bytes)174174174

AddScore() »

void AddScore(dword points);

Wraps DrawStatusBarScore() with the correct X,Y position for display on the screen. It adds points to the player’s score and updates the status bar with the new value.

E1E2E3
Symbol Address1095:0FACh107F:0FB1h10C5:0FAFh
Size (Bytes)212121

AddScoreForSprite() »

void AddScoreForSprite(word sprite_type);

Determines how many points should be added to the player’s score for defeating an actor of a given sprite_type, and adds that amount.

E1E2E3
Symbol Address1095:436Ah107F:39BBh10C5:3C84h
Size (Bytes)369369369

AdjustActorMove() »

void AdjustActorMove(word index, word dir);

Verifies the legality of a map position that the actor (identified by slot index) has just moved into and reverts/adjusts their position accordingly. dir should be either DIR4_WEST or DIR4_EAST to match the direction of movement.

E1E2E3
Symbol Address0104:1C32h0104:1C32h0104:1C3Ch
Size (Bytes)874874874

AnimatePalette() »

void AnimatePalette(void);

Cycles through any palette animations that have been requested by the map.

E1E2E3
Symbol Address0104:00BBh0104:00BBh0104:00BBh
Size (Bytes)189189199

CanExplode() »

bool CanExplode(word sprite_type, word frame, word x_origin, word y_origin);

Returns true if a sprite (consisting of a sprite_type and a frame) is able to be destroyed by any explosion. If so, destruction shards and effects are inserted at (x_origin, y_origin) and points are awarded to the score, but the target actor is not destroyed.

E1E2E3
Symbol Address0104:AA6Dh0104:A8B9h0104:AD6Ah
Size (Bytes)337337337

CheckHighScoreAndShow() »

void CheckHighScoreAndShow(void);

Scans the high score table for a position where the current gameScore could be sorted. If a position is located, a prompt is presented asking for a name to be associated with the score at that position, and all inferior scores are shifted one position lower. The tenth score falls off the bottom of the list. Calls ShowHighScoreTable() unconditionally before returning.

E1E2E3
Symbol Address1095:12F1h107F:12F6h10C5:12F4h
Size (Bytes)288288288

ClearGameScreen() »

void ClearGameScreen(void);

Clears all content from both draw pages of the EGA’s memory and redraws a fresh status bar.

E1E2E3
Symbol Address0104:C9A7h0104:C858h0104:CCA4h
Size (Bytes)272727

ClearPlayerDizzy() »

void ClearPlayerDizzy(void);

Resets all the global variables related to the player’s “dizziness” immobilization, immediately returning the player to normal state.

E1E2E3
Symbol Address0104:0022h0104:0022h0104:0022h
Size (Bytes)131313

ClearPlayerPush() »

void ClearPlayerPush(void);

Immediately cancels any push the player may be experiencing, and returns the game state back to regular player control.

E1E2E3
Symbol Address0104:C9C2h0104:C873h0104:CCBFh
Size (Bytes)656565

ClearScreen() »

void ClearScreen(void);

Overwrites the EGA memory for the current draw page with solid black tiles.

E1E2E3
Symbol Address1095:068Dh107F:0692h10C5:0690h
Size (Bytes)696969

ConstructActor() »

void ConstructActor(word sprite_type, word x_origin, word y_origin, bool force_active, bool stay_active, bool weighted, bool acrophile, ActorTickFunction tick_func, word data1, word data2, word data3, word data4, word data5);

Called by NewActorAtIndex() as a helper to initialize each member of an Actor structure. The actor slot position is provided in the pass-by-global nextActorIndex variable, and the structure at that position is initialized according to the values passed in the arguments.

E1E2E3
Symbol Address0104:1B83h0104:1B83h0104:1B8Dh
Size (Bytes)175175175

CopyTilesToEGA() »

void CopyTilesToEGA(byte *source, word dest_length, word dest_offset);

Reads solid tile image data from the memory pointed to by source, and installs it into a block of dest_length bytes of the EGA’s memory starting at dest_offset. Because the destination memory is planar, each byte of address space covered by dest_length consumes four bytes from source.

E1E2E3
Symbol Address0104:0620h0104:0620h0104:062Ah
Size (Bytes)959595

DRAW_SOLID_TILE_XY() »

#define DRAW_SOLID_TILE_XY(src, x, y) { \
    DrawSolidTile((src), (x) + ((y) * 320)); \
}

Wraps a call to DrawSolidTile(), converting x and y tile coordinates into the linear offset form expected by that function.


DestroyBarrel() »

void DestroyBarrel(word index);

Handles the animation, sound effects, and lifecycle management at the instant a barrel or basket is destroyed.

E1E2E3
Symbol Address0104:ABBEh0104:AA0Ah0104:AEBBh
Size (Bytes)223223223

DetectAdLib() »

bool DetectAdLib(void);

Interrogates the default AdLib I/O address to check if one is installed, and initializes the hardware if it is there. Returns true if an AdLib is installed, and false otherwise.

E1E2E3
Symbol Address1095:0201h107F:0206h10C5:0204h
Size (Bytes)166166166

DrawCartoon() »

void DrawCartoon(byte frame, word x_origin, word y_origin);

Draws a cartoon having the provided frame number, with the lower-left tile at coordinates (x_origin, y_origin).

E1E2E3
Symbol Address0104:1470h0104:1470h0104:147Ah
Size (Bytes)186186186

DrawExplosions() »

void DrawExplosions(void);

Draws the animation sequence for each active explosion, along with the starting/ending decorations and the flashing palette effect if enabled. This function will cause the player to become hurt if they are in close proximity to any active explosions.

E1E2E3
Symbol Address0104:A3F4h0104:A240h0104:A6BAh
Size (Bytes)200200255

DrawFountains() »

void DrawFountains(void);

Iterates through every fountain active on the map and draws the sprites that they are built from. If the player is touching any part of the stream beneath the spray at the top of the fountain, damage is inflicted on the player.

E1E2E3
Symbol Address0104:1963h0104:1963h0104:196Dh
Size (Bytes)176176176

DrawFullscreenImage() »

void DrawFullscreenImage(word image_num);

Loads and displays the full-screen image identified by image_num, fading the screen contents between what has already been drawn and the new image. If the requested image_num is anything other than IMAGE_TITLE or IMAGE_CREDITS, any playing music is stopped.

E1E2E3
Symbol Address0104:03B6h0104:03B6h0104:03C0h
Size (Bytes)232232232

DrawFullscreenText() »

void DrawFullscreenText(char *entry_name);

Draws a page of B800 text to the screen and clears space for the DOS prompt.

E1E2E3
Symbol Address0104:C4ABh0104:C35Ch0104:C7A8h
Size (Bytes)898989

DrawLights() »

void DrawLights(void);

Iterates through all the lights present on the current map and draws any that are currently scrolled into view. If areLightsActive is false, this function does nothing.

E1E2E3
Symbol Address0104:1A33h0104:1A33h0104:1A3Dh
Size (Bytes)336336336

DrawMainMenu() »

void DrawMainMenu(void);

A small helper that draws the main menu frame and text, but does not do any input handling. It is only called from TitleLoop().

E1E2E3
Symbol Address1095:4531h107F:3B82h10C5:3E4Bh
Size (Bytes)236220220

DrawMapRegion() »

void DrawMapRegion(void);

Draws one complete frame of the static game world to the current draw page. This includes the solid and masked tiles read from the map data and the scrolling backdrop.

E1E2E3
Symbol Address0104:06BAh0104:06BAh0104:06C4h
Size (Bytes)396396396

DrawMaskedTile() »

void DrawMaskedTile(byte *src, word x, word y);

Copies an 8×8 pixel masked tile from the byte pointer src minus 16,000 to the video memory tile location identified by column x and row y.

E1E2E3
Symbol Address0000:063Bh0000:063Bh0000:063Bh
Size (Bytes)580580580

DrawNumberFlushRight() »

void DrawNumberFlushRight(word x_origin, word y_origin, dword value);

Draws a numeric value with the rightmost (least significant) digit anchored at screen coordinates (x_origin, y_origin). value is interpreted as an unsigned long integer.

E1E2E3
Symbol Address1095:0EC6h107F:0ECBh10C5:0EC9h
Size (Bytes)120120120

DrawPlayer() »

void DrawPlayer(byte frame, word x_origin, word y_origin, word mode);

Draws a player sprite having the provided frame number, with the lower-left tile at coordinates (x_origin, y_origin). mode is a DRAW_MODE_* that influences the drawing behavior.

E1E2E3
Symbol Address0104:1231h0104:1231h0104:123Bh
Size (Bytes)504504504

DrawRandomEffects() »

void DrawRandomEffects(void);

Adds random decorative effects to the game world based on what is currently visible on the screen. It randomly applies a sparkling effect to map tiles that have the “slippery” attribute, and adds raindrops (if rain is enabled on the map) in any unoccupied areas at the top edge of the screen.

E1E2E3
Symbol Address0104:A054h0104:9EA0h0104:A31Ah
Size (Bytes)143143143

DrawSBarHealthHelper() »

void DrawSBarHealthHelper(void);

Wraps DrawStatusBarHealth() with the correct X,Y position for display on the screen.

E1E2E3
Symbol Address1095:1170h107F:1175h10C5:1173h
Size (Bytes)111111

DrawScancodeCharacter() »

void DrawScancodeCharacter(word x, word y, byte scancode);

Draws a single-character representation of scancode at screen tile position (x, y).

E1E2E3
Symbol Address1095:2084h107F:1CCEh10C5:1DE6h
Size (Bytes)515151

DrawSolidTile() »

void DrawSolidTile(word src_offset, word dst_offset);

Copies an 8×8 pixel solid tile from the tile storage area byte offset src_offset to the video memory byte offset dst_offset. Both offsets refer to locations within the EGA’s memory space. The EGA hardware must be in “latched write” mode for this function to work correctly.

E1E2E3
Symbol Address0000:0206h0000:0206h0000:0206h
Size (Bytes)878787

DrawSprite() »

void DrawSprite(
    word sprite_type, word frame, word x_origin, word y_origin, word mode
);

Draws a sprite of the provided sprite_type and frame, with the lower-left tile at coordinates (x_origin, y_origin). The mode influences the origin calculations and visual appearance.

E1E2E3
Symbol Address0104:0F95h0104:0F95h0104:0F9Fh
Size (Bytes)668668668

DrawSpriteTile() »

void DrawSpriteTile(byte *src, word x, word y);

Copies an 8×8 pixel masked tile from the byte pointer src to the video memory tile location identified by column x and row y.

E1E2E3
Symbol Address0000:0410h0000:0410h0000:0410h
Size (Bytes)555555555

DrawSpriteTileFlipped() »

void DrawSpriteTileFlipped(byte *src, word x, word y);

Copies a vertically-flipped 8×8 pixel masked tile from the byte pointer src to the video memory tile location identified by column x and row y.

E1E2E3
Symbol Address0000:087Fh0000:087Fh0000:087Fh
Size (Bytes)556556556

DrawSpriteTileTranslucent() »

void DrawSpriteTileTranslucent(byte *src, word x, word y);

Copies a translucent outline of an 8×8 pixel masked tile from the byte pointer src to the video memory tile location identified by column x and row y.

E1E2E3
Symbol Address0000:0287h0000:0287h0000:0287h
Size (Bytes)898989

DrawSpriteTileWhite() »

void DrawSpriteTileWhite(byte *src, word x, word y);

Copies a solid white outline of an 8×8 pixel masked tile from the byte pointer src to the video memory tile location identified by column x and row y.

E1E2E3
Symbol Address0000:0AABh0000:0AABh0000:0AABh
Size (Bytes)131131131

DrawStaticGameScreen() »

void DrawStaticGameScreen(void);

Initializes the static components of the game screen by clearing everything from the current draw page and redrawing the status bar on the freshly-cleared screen. The current score, health, bombs, and stars values are drawn onto the status bar in the process.

E1E2E3
Symbol Address1095:44DBh107F:3B2Ch10C5:3DF5h
Size (Bytes)868686

DrawStatusBarBombs() »

void DrawStatusBarBombs(word x_origin, word y_origin);

Updates the “bombs” counter in the status bar. Requires x_origin and y_origin for positioning, which anchors the single digit at an absolute tile position on the screen.

E1E2E3
Symbol Address1095:102Ah107F:102Fh10C5:102Dh
Size (Bytes)154154154

DrawStatusBarHealth() »

void DrawStatusBarHealth(word x_origin, word y_origin);

Updates the health bars in the status bar. Requires x_origin and y_origin for positioning, which anchors the top of the rightmost bar at an absolute tile position on the screen.

E1E2E3
Symbol Address1095:10CFh107F:10D4h10C5:10D2h
Size (Bytes)161161161

DrawStatusBarScore() »

void DrawStatusBarScore(dword add_points, word x_origin, word y_origin);

Increments the player’s score by add_points then updates the score counter in the status bar. Requires x_origin and y_origin for positioning, which anchors the rightmost (least significant) digit at an absolute tile position on the screen.

E1E2E3
Symbol Address1095:0F3Eh107F:0F43h10C5:0F41h
Size (Bytes)110110110

DrawStatusBarStars() »

void DrawStatusBarStars(word x_origin, word y_origin);

Updates the “stars” counter in the status bar. Requires x_origin and y_origin for positioning, which anchors the rightmost (least significant) digit at an absolute tile position on the screen.

E1E2E3
Symbol Address1095:0FC1h107F:0FC6h10C5:0FC4h
Size (Bytes)949494

DrawTextFrame() »

word DrawTextFrame(
    word left, word top, int height, int width, char *top_text,
    char *bottom_text, bbool centered
);

Draws an empty text frame to the current draw page with the upper-left corner at tile position (left, top) and a total size of width×height tiles. The top and bottom edges of the frame are prefilled with top_text and bottom_text respectively, aligned according to the centered flag. Returns the X tile coordinate of the inside-left edge of the frame.

E1E2E3
Symbol Address1095:08EDh107F:08F2h10C5:08F0h
Size (Bytes)470470470

DrawTextLine() »

void DrawTextLine(word x_origin, word y_origin, char *text);

Draws a single line of text with the first character anchored at screen coordinates (x_origin, y_origin). A limited form of markup is supported to allow insertion of cartoon images, player/actor sprites, and text animation effects.

E1E2E3
Symbol Address0104:0178h0104:0178h0104:0182h
Size (Bytes)489489489

EGA_BIT_MASK_DEFAULT() »

#define EGA_BIT_MASK_DEFAULT() { outport(0x03ce, (0xff << 8) | 0x08); }

Resets the EGA’s bit mask to its default state.


EGA_MODE_DEFAULT() »

#define EGA_MODE_DEFAULT() { outport(0x03ce, (0x00 << 8) | 0x05); }

Resets the EGA’s read and write modes to their default state.


EGA_MODE_LATCHED_WRITE() »

#define EGA_MODE_LATCHED_WRITE() { \
    outport(0x03c4, (0x0f << 8) | 0x02); \
    outport(0x03ce, (0x01 << 8) | 0x05); \
}

Resets the EGA’s map mask to its default state and enables latched writes from the CPU.


EraseWaitSpinner() »

void EraseWaitSpinner(word x, word y);

Erases an area previously occupied by a wait spinner by drawing a tile of solid dark gray at screen tile position (x, y).

E1E2E3
Symbol Address1095:0570h107F:0575h10C5:0573h
Size (Bytes)525252

ExitClean() »

void ExitClean(void);

Cleans up game state and exits back to DOS.

E1E2E3
Symbol Address0104:C504h0104:C3B5h0104:C801h
Size (Bytes)106106106

FadeIn() »

void FadeIn(void);

Calls FadeInCustom() with a fixed delay of three game ticks per palette entry.

E1E2E3
Symbol Address1095:05C7h107F:05CCh10C5:05CAh
Size (Bytes)888

FadeInCustom() »

void FadeInCustom(word delay);

“Fades” the screen image into view by rebuilding the EGA’s default palette, one entry at a time, pausing delay game ticks between each entry.

E1E2E3
Symbol Address1095:051Bh107F:0520h10C5:051Eh
Size (Bytes)505050

FadeOut() »

void FadeOut(void);

Calls FadeOutCustom() with a fixed delay of three game ticks per palette entry.

E1E2E3
Symbol Address1095:05CFh107F:05D4h10C5:05D2h
Size (Bytes)888

FadeOutAdLibPlayback() »

void FadeOutAdLibPlayback(void);

Nominally fades any playing music to silence over a period of time, but as implemented it simply cuts the music off immediately.

E1E2E3
Symbol Address1095:04E0h107F:04E5h10C5:04E3h
Size (Bytes)151515

FadeOutCustom() »

void FadeOutCustom(word delay);

“Fades” the screen image away by incrementally blanking the EGA’s palette to black, one entry at a time, pausing delay game ticks between each entry.

E1E2E3
Symbol Address1095:05A4h107F:05A9h10C5:05A7h
Size (Bytes)353535

FadeWhiteCustom() »

void FadeWhiteCustom(word delay);

“Fades” the screen image away by incrementally blanking the EGA’s palette to white, one entry at a time, pausing delay game ticks between each entry.

E1E2E3
Symbol Address1095:054Dh107F:0552h10C5:0550h
Size (Bytes)353535

GameLoop() »

void GameLoop(byte demo_state);

Runs once for each frame of gameplay and is responsible for running the appropriate sub-functions for timing, input, player/actor movement, world drawing, and level exit conditions. This function takes a demo_state argument which should be one of the DEMO_STATE_* constants – this controls the presence of the “DEMO” overlay sprite and is passed through to the input handling functions.

E1E2E3
Symbol Address0104:EF42h0104:EDE7h0104:F233h
Size (Bytes)262262262

GameRand() »

word GameRand(void);

Returns a pseudorandom number based on a fixed table of randomness combined with influence from the player and scrolling game window positions. The output sequence from this function is deterministic for a given sequence of player and scroll positions.

E1E2E3
Symbol Address0104:002Fh0104:002Fh0104:002Fh
Size (Bytes)484848

GetMapTile() »

word GetMapTile(word x, word y);

Returns the data for a single map tile positioned at horizontal position x and vertical position y.

E1E2E3
Symbol Address0104:1A13h0104:1A13h0104:1A1Dh
Size (Bytes)323232

GetProcessorType() »

word GetProcessorType(void);

Tests the system processor and returns a value indicating its model. Returns CPU_TYPE_*.

E1E2E3
Symbol Address0000:0B2Eh0000:0B2Eh0000:0B2Eh
Size (Bytes)101101101

GroupEntryFp() »

FILE *GroupEntryFp(char *entry_name);

Returns a file stream pointer to the data that a group file’s entry_name refers to.

E1E2E3
Symbol Address1095:1411h107F:1416h10C5:1414h
Size (Bytes)452452452

GroupEntryLength() »

dword GroupEntryLength(char *entry_name);

Locates a group file entry_name and returns the size of its data in bytes.

E1E2E3
Symbol Address0104:0000h0104:0000h0104:0000h
Size (Bytes)343434

HurtPlayer() »

void HurtPlayer(void);

Deducts a bar of health from the player, and kills them if they have lost enough health.

E1E2E3
Symbol Address0104:A931h0104:A77Dh0104:AC2Eh
Size (Bytes)158158158

InitializeBackdropTable() »

void InitializeBackdropTable(void);

Fills the backdropTable[] array with four identical copies of backdrop tile offset data.

E1E2E3
Symbol Address0104:C316h0104:C1C7h0104:C613h
Size (Bytes)125125125

InitializeDecorations() »

void InitializeDecorations(void);

Clears all of the memory slots used to store decoration state, immediately terminating all incomplete decoration animations and making each slot available for use.

E1E2E3
Symbol Address0104:A685h0104:A4D1h0104:A982h
Size (Bytes)323232

InitializeEpisode() »

void InitializeEpisode(void);

Sets up the initial values for a few of the episode-related global variables tracked by the game. This sets up the initial score, health, level number, etc. when a new game is started.

E1E2E3
Symbol Address0104:F839h0104:F6DEh0104:FB3Ch
Size (Bytes)797979

InitializeExplosions() »

void InitializeExplosions(void);

Clears all of the memory slots used to store explosion state, immediately terminating all incomplete explosion animations and making each slot available for use.

E1E2E3
Symbol Address0104:A38Ah0104:A1D6h0104:A650h
Size (Bytes)323232

InitializeInterruptRate() »

void InitializeInterruptRate(void);

Sets up the system timer interrupt rate depending on whether or not the AdLib hardware is enabled.

E1E2E3
Symbol Address1095:033Ah107F:033Fh10C5:033Dh
Size (Bytes)242424

InitializeLevel() »

void InitializeLevel(word level_num);

Initializes all of the global variables and related subsystems for the start (or restart) of the level identified by level_num.

E1E2E3
Symbol Address0104:F677h0104:F51Ch0104:F968h
Size (Bytes)450450468

InitializeMapGlobals() »

void InitializeMapGlobals();

Resets many of the global variables pertaining to player movement and map/actor interactivity.

E1E2E3
Symbol Address0104:F58Ch0104:F431h0104:F87Dh
Size (Bytes)235235235

InitializeShards() »

void InitializeShards(void);

Clears all of the memory slots used to store shard state, immediately terminating all incomplete shard animations and making each slot available for use.

E1E2E3
Symbol Address0104:A0E3h0104:9F2Fh0104:A3A9h
Size (Bytes)333333

InitializeSpawners() »

void InitializeSpawners(void);

Clears all of the memory slots used to store spawner state, immediately terminating all incomplete spawner animations and making each slot available for use.

E1E2E3
Symbol Address0104:A51Ah0104:A366h0104:A817h
Size (Bytes)303030

InnerMain() »

void InnerMain(int argc, char *argv[]);

Main game function, once CPU testing has passed.

E1E2E3
Symbol Address0104:F888h0104:F72Dh0104:FB8Bh
Size (Bytes)136136136

InteractPlayer() »

bool InteractPlayer(word index, word sprite_type, word frame, word x, word y);

Tests for a potential interaction between an actor located at position index in the actors array and the player. The actor’s sprite_type, frame, x, and y must all be passed, and should agree with the values currently held in the actor’s memory structure. Returns true if the actor should not be drawn due to being hidden, destroyed, or picked up.

E1E2E3
Symbol Address0104:AC9Dh0104:AAE9h0104:AF9Ah
Size (Bytes)5,1495,2505,149

IsAdLibAbsent() »

bbool IsAdLibAbsent(void);

Returns true if an AdLib or compatible card was NOT detected in the system.

E1E2E3
Symbol Address1095:15D5h107F:15DAh10C5:15D8h
Size (Bytes)999

IsAnyKeyDown() »

bbool IsAnyKeyDown(void);

Returns true if any key is currently pressed, without regard to which key it is.

E1E2E3
Symbol Address0104:E004h0104:DEB5h0104:E301h
Size (Bytes)121212

IsIntersecting() »

bool IsIntersecting(
    word sprite1, word frame1, word x1, word y1,
    word sprite2, word frame2, word x2, word y2
);

Returns true if one sprite (consisting of a sprite type and a frame) located at an x/y position on the map is intersecting any part of a second sprite passed in the same form.

E1E2E3
Symbol Address0104:0EB8h0104:0EB8h0104:0EC2h
Size (Bytes)221221221

IsNearExplosion() »

bool IsNearExplosion(
    word sprite_type, word frame, word x_origin, word y_origin
);

Returns true if a sprite (consisting of a sprite_type and a frame) located at (x_origin, y_origin) is intersecting any active explosion.

E1E2E3
Symbol Address0104:A4BCh0104:A308h0104:A7B9h
Size (Bytes)949494

IsNewBackdrop() »

bbool IsNewBackdrop(word backdrop_num);

Tracks the most recently used backdrop number and horizontal/vertical scroll flags. The scroll flags are read from global variables, but the backdrop number being tested must be passed in backdrop_num. Returns true if these have changed since the previous call, or false if none of the tracked variables have changed.

E1E2E3
Symbol Address0104:F422h0104:F2C7h0104:F713h
Size (Bytes)565656

IsSpriteVisible() »

bool IsSpriteVisible(
    word sprite_type, word frame, word x_origin, word y_origin
);

Returns true if the provided sprite_type and frame located at x_origin and y_origin is at least partially visible within the scrolling game window.

E1E2E3
Symbol Address0104:0846h0104:0846h0104:0850h
Size (Bytes)150150150

IsTouchingPlayer() »

IsTouchingPlayer(word sprite_type, word frame, word x_origin, word y_origin);

Returns true if the passed sprite_type and frame located at x_origin and y_origin is touching any part of the player sprite at its current position.

E1E2E3
Symbol Address0104:0E03h0104:0E03h0104:0E0Dh
Size (Bytes)181181181

JoinPath() »

char *JoinPath(char *dir, char *file);

Combines a string dir with a string file, creating and returning an absolute pathname.

E1E2E3
Symbol Address0104:E010h0104:DEC1h0104:E30Dh
Size (Bytes)868686

KeyboardInterruptService() »

void interrupt KeyboardInterruptService(void);

Maintains the state of the keyboard variables. Called in response to the keyboard interrupt event.

E1E2E3
Symbol Address0104:C393h0104:C244h0104:C690h
Size (Bytes)117117117

LightenScreenTile() »

void LightenScreenTile(word x, word y);

Lightens the entire area at the video memory tile location identified by column x and row y.

E1E2E3
Symbol Address0000:034Ah0000:034Ah0000:034Ah
Size (Bytes)808080

LightenScreenTileEast() »

void LightenScreenTileEast(word x, word y);

Lightens the lower-left half of an 8×8 tile at the video memory tile location identified by column x and row y.

E1E2E3
Symbol Address0000:039Ah0000:039Ah0000:039Ah
Size (Bytes)106106106

LightenScreenTileWest() »

void LightenScreenTileWest(word x, word y);

Lightens the lower-right half of an 8×8 tile at the video memory tile location identified by column x and row y.

E1E2E3
Symbol Address0000:02E0h0000:02E0h0000:02E0h
Size (Bytes)106106106

LoadActorTileData() »

void LoadActorTileData(char *entry_name);

Loads actor tile data into system memory.

E1E2E3
Symbol Address0104:05A4h0104:05A4h0104:05AEh
Size (Bytes)124124124

LoadBackdropData() »

void LoadBackdropData(char *entry_name, byte *scratch);

Reads backdrop data from the passed group file entry_name and installs it into the appropriate location in the EGA memory. If horizontal and/or vertical scrolling is enabled in the map variables, additional copies are loaded into the EGA memory to facilitate sub-tile parallax scrolling. A scratch buffer is required, which must be large enough to hold two complete copies of backdrop data plus an additional 640 bytes.

E1E2E3
Symbol Address0104:F45Ah0104:F2FFh0104:F74Bh
Size (Bytes)306306306

LoadCartoonData() »

void LoadCartoonData(char *entry_name);

Loads the cartoon masked tile image data from the group file entry_name.

E1E2E3
Symbol Address0104:1429h0104:1429h0104:1433h
Size (Bytes)717171

LoadConfigurationData() »

void LoadConfigurationData(char *filename);

Loads and parses the contents of the configuration file named filename into several global variables.

E1E2E3
Symbol Address1095:3970h107F:32E7h10C5:316Ch
Size (Bytes)592592592

LoadDemoData() »

void LoadDemoData(void);

Copies the data from the PREVDEMO.MNI group file entry into system memory.

E1E2E3
Symbol Address0104:E936h0104:E7DBh0104:EC27h
Size (Bytes)102102102

LoadFontTileData() »

void LoadFontTileData(char *entry_name, byte *dest, word length);

Loads font data into system memory.

E1E2E3
Symbol Address0104:0361h0104:0361h0104:036Bh
Size (Bytes)858585

LoadGameState() »

bbool LoadGameState(char slot_char);

Reads the current state of the most important player variables from a file on disk, whose filename extension is influenced by the character provided in slot_char. If the file cannot be loaded, returns false. If the file’s internal anti-tampering checksum does not match, an error message is displayed and the program exits. Otherwise, returns true.

E1E2E3
Symbol Address0104:E066h0104:DF17h0104:E363h
Size (Bytes)313313313

LoadGroupEntryData() »

void LoadGroupEntryData(char *entry_name, byte *dest, word length);

Reads data from an entry_name inside a group file and stores it in the memory block pointed to by dest. length controls how much data is copied.

E1E2E3
Symbol Address0104:0569h0104:0569h0104:0573h
Size (Bytes)595959

LoadInfoData() »

void LoadInfoData(char *entry_name, word *dest, word length);

Reads a group file entry_name containing “info” data into the memory block pointed to by dest.

E1E2E3
Symbol Address0104:067Fh0104:067Fh0104:0689h
Size (Bytes)595959

LoadMapData() »

void LoadMapData(word level_num);

Reads the map file associated with the passed level_num and initializes the global variables that are most affected by a map file’s contents.

E1E2E3
Symbol Address0104:F209h0104:F0AEh0104:F4FAh
Size (Bytes)537537537

LoadMaskedTileData() »

void LoadMaskedTileData(char *entry_name);

Loads data from the group file entry named entry_name and stores it in the masked tile data block.

E1E2E3
Symbol Address0104:C5ABh0104:C45Ch0104:C8A8h
Size (Bytes)616161

LoadMusicData() »

Music *LoadMusicData(word music_num, Music *dest);

Opens music data from a group file entry (whose name is indexed by a numerical music_num), loads the data into the Music structure pointed to by dest, and prepares the AdLib service to receive new music data. Returns a pointer to dest.

E1E2E3
Symbol Address1095:15DEh107F:15E3h10C5:15E1h
Size (Bytes)110110110

LoadSoundData() »

void LoadSoundData(char *entry_name, word *dest, int skip);

Reads data from the group file entry named by entry_name and stores it in the dest memory block along with index structures.

E1E2E3
Symbol Address0104:049Eh0104:049Eh0104:04A8h
Size (Bytes)154154154

LoadTileAttributeData() »

void LoadTileAttributeData(char *entry_name);

Loads data from the group file entry named entry_name and stores it in the tile attribute data block.

E1E2E3
Symbol Address0104:C56Eh0104:C41Fh0104:C86Bh
Size (Bytes)616161

MAP_CELL_ADDR() »

#define MAP_CELL_ADDR(x, y) (mapData.w + ((y) << mapYPower) + x)

Converts an x and y position, measured in zero-based tiles, into a pointer to the map data in memory.


MAP_CELL_DATA() »

#define MAP_CELL_DATA(x, y) (*(mapData.w + (x) + ((y) << mapYPower)))

Looks up the value of a tile at an x and y position, measured in zero-based tiles, from the map data in memory.


MAP_CELL_DATA_SHIFTED() »

#define MAP_CELL_DATA_SHIFTED(x, y, shift_expr) \
    (*(mapData.w + (x) + ((y) << mapYPower) + shift_expr))

Looks up the value of a tile at an x and y position plus an arbitrary shift expression shift_expr, all measured in zero-based tiles, from the map data in memory.


MK_FP() »

#define MK_FP(seg, ofs) \
    ((void far *) (((unsigned long)(seg) << 16) | (unsigned)(ofs)))

Makes a far pointer from its component segment (seg) and offset (ofs) parts.


MoveAndDrawActors() »

void MoveAndDrawActors(void);

Iterates over each actor currently active in the game and calls the per-actor processing function.

E1E2E3
Symbol Address0104:C2A8h0104:C159h0104:C5A5h
Size (Bytes)393939

MoveAndDrawDecorations() »

void MoveAndDrawDecorations(void);

Draws, advances the animation step, and moves each decoration currently running, and handles looping and ending conditions.

E1E2E3
Symbol Address0104:A70Ch0104:A558h0104:AA09h
Size (Bytes)302302302

MoveAndDrawShards() »

void MoveAndDrawShards(void);

Moves and draws the sprites for all shards that are currently active. When a shard animation ends its slot is marked inactive.

E1E2E3
Symbol Address0104:A172h0104:9FBEh0104:A438h
Size (Bytes)536536536

MoveAndDrawSpawners() »

void MoveAndDrawSpawners(void);

Moves and draws the sprites for all spawners that are currently active. When a spawner animation ends (either due to finishing the animation or hitting a solid map tile) its slot is marked inactive and a new actor is created in the spawner’s final position.

E1E2E3
Symbol Address0104:A57Eh0104:A3CAh0104:A87Bh
Size (Bytes)263263263

MoveFountains() »

void MoveFountains(void);

Iterates through each fountain defined on the current map and adjusts their position by one tile.

E1E2E3
Symbol Address0104:1840h0104:1840h0104:184Ah
Size (Bytes)291291291

MovePlatforms() »

void MovePlatforms(void);

Iterates through each platform defined on the current map and adjusts their position by one tile.

E1E2E3
Symbol Address0104:16A4h0104:16A4h0104:16AEh
Size (Bytes)296296296

MovePlayerPlatform() »

void MovePlayerPlatform(word x_west, word x_east, word x_dir, word y_dir);

Determines if a platform covering X positions x_west to x_east is interacting with the player, and if so, modifies the player’s position to keep them attached to the platform as it moves. The current movement direction of the platform is passed in horizontal/vertical arguments x_dir and y_dir.

E1E2E3
Symbol Address0104:152Ah0104:152Ah0104:1534h
Size (Bytes)378378378

MovePlayerPush() »

void MovePlayerPush(void);

Handles one game tick of player push movement.

E1E2E3
Symbol Address0104:CA4Eh0104:C8FFh0104:CD4Bh
Size (Bytes)385385385

NewActor() »

void NewActor(word actor_type, word x_origin, word y_origin);

Dynamically inserts a new actor having the specified actor_type into the game world at the location specified by x_origin and y_origin.

E1E2E3
Symbol Address0104:9FC3h0104:9E0Fh0104:A289h
Size (Bytes)145145145

NewActorAtIndex() »

bbool NewActorAtIndex(word index, word actor_type, word x, word y);

Inserts an actor of the specified actor_type into the actors[] array at the specified index position. The initial origin position is provided in x and y, and X/Y shifts are applied here. Returns true as long as actor_type referred to a defined actor type.

E1E2E3
Symbol Address0104:793Ch0104:7788h0104:7C02h
Size (Bytes)9,8639,8639,863

NewDecoration() »

void NewDecoration(
    word sprite_type, word num_frames, word x_origin, word y_origin,
    word dir, word num_times
);

Creates a new decoration at x_origin and y_origin consisting of the passed sprite_type with an animation duration of num_frames. dir controls the straight-line direction the decoration will move in, and num_times controls how many times the animation sequence will play before ending.

E1E2E3
Symbol Address0104:A6A5h0104:A4F1h0104:A9A2h
Size (Bytes)103103103

NewExplosion() »

void NewExplosion(word x_origin, word y_origin);

Creates a new instance of an explosion at the passed x_origin and y_origin map tile coordinates, sets the animation up to run, and plays the explosion sound. The actual location of the explosion sprite will be two tiles lower on the screen than y_origin requests.

E1E2E3
Symbol Address0104:A3AAh0104:A1F6h0104:A670h
Size (Bytes)747474

NewMapActorAtIndex() »

void NewMapActorAtIndex(word index, word map_actor_type, word x_origin, word y_origin);

Creates actors and special actors based on the passed map_actor_type. For regular actors, index controls the position in the actors array where the new actor will be created; for special actors it does nothing. For both actor kinds, x_origin and y_origin control the actor’s initial position within the map.

E1E2E3
Symbol Address0104:F048h0104:EEEDh0104:F339h
Size (Bytes)449449449

NewPounceDecoration() »

void NewPounceDecoration(word x, word y);

Inserts six decorations representing pieces of pounce debris into the game world, radiating away from the origin point specified in x and y.

E1E2E3
Symbol Address0104:A9CFh0104:A81Bh0104:ACCCh
Size (Bytes)158158158

NewShard() »

void NewShard(word sprite_type, word frame, word x_origin, word y_origin);

Creates a new shard at x_origin and y_origin consisting of the passed sprite_type and frame.

E1E2E3
Symbol Address0104:A104h0104:9F50h0104:A3CAh
Size (Bytes)110110110

NewSpawner() »

void NewSpawner(word actor_type, word x_origin, word y_origin);

Creates a new instance of a spawner at the passed x_origin and y_origin map tile coordinates and sets the animation up to run. actor_type controls both the type of actor that will be created when the spawner completes, and the sprite type that will be drawn while the spawner is running.

E1E2E3
Symbol Address0104:A538h0104:A384h0104:A835h
Size (Bytes)707070

NextLevel() »

void NextLevel(void);

Selects the next level to be played in the progression. Depending on the number of stars collected, it conditionally takes the player to or from one of the bonus levels at regular intervals. If a demo is being recorded or played back, a fixed (and discontinuous) progression of levels is selected instead.

E1E2E3
Symbol Address0104:EE32h0104:ECD7h0104:F123h
Size (Bytes)272272272

PCSpeakerService() »

void PCSpeakerService(void);

Sends a new fragment of sound effect data to the PC speaker.

E1E2E3
Symbol Address0104:C408h0104:C2B9h0104:C705h
Size (Bytes)163163163

ProcessActor() »

void ProcessActor(word index);

Handles the overall per-tick movement for one actor, identified by its index position in the actors array. If the actor is marked as dead, this function is a no-op.

E1E2E3
Symbol Address0104:C0BAh0104:BF6Bh0104:C3B7h
Size (Bytes)494494494

ProcessAndDrawPlayer() »

bbool ProcessAndDrawPlayer(void);

Determines the player’s reaction to pain or death and draws the player sprite accordingly. If the player has died and completed the relevant death animation sequence, this function reloads the game state to the way it was when the level was last started and returns true. If the level has not been restarted, this function returns false.

E1E2E3
Symbol Address0104:DDC2h0104:DC73h0104:E0BFh
Size (Bytes)560560560

ProcessGameInput() »

byte ProcessGameInput(byte demo_state);

Handles all keyboard and joystick input while the game is being played. Depending on the value passed in demo_state (which should be one of the DEMO_STATE_* values), this behavior is modified to record or play back demo data. Returns one of the GAME_INPUT_* values to control the game loop’s flow.

E1E2E3
Symbol Address0104:E99Ch0104:E841h0104:EC8Dh
Size (Bytes)574574574

ProcessGameInputHelper() »

byte ProcessGameInputHelper(word active_page, byte demo_state);

Prepares the video hardware for the possibility of showing a menu or dialog during the game loop. active_page should contain the “active” (i.e. currently displayed) video page number, and demo_state should hold one of the DEMO_STATE_* values.

E1E2E3
Symbol Address0104:C2CFh0104:C180h0104:C5CCh
Size (Bytes)717171

ProcessPlayerDizzy() »

void ProcessPlayerDizzy(void);

Determines when a queued bout of dizziness should become effective, and handles the cases where dizziness wears off naturally or is abruptly canceled.

E1E2E3
Symbol Address0104:DD56h0104:DC07h0104:E053h
Size (Bytes)108108108

ProfileCPU() »

void ProfileCPU(void);

Measures the execution speed of the CPU relative to the system’s Programmable Interval Timer, and records the number of busy loop iterations the CPU requires to generate various delay times.

E1E2E3
Symbol Address1095:0062h107F:0067h10C5:0065h
Size (Bytes)151151151

ProfileCPUService() »

void interrupt ProfileCPUService(void);

Benchmarks the timing characteristics of the CPU relative to the system’s Programmable Interval Timer.

E1E2E3
Symbol Address1095:003Eh107F:0043h10C5:0041h
Size (Bytes)363636

PromptKeyBind() »

bbool PromptKeyBind(byte *target_var, word x, char *message);

Displays message text at the provided x position (and a fixed Y position) on the screen and reads a single scancode into the memory pointed to by target_var. Returns true if the user pressed the Esc key and false for all other keys.

E1E2E3
Symbol Address1095:20B7h107F:1D01h10C5:1E19h
Size (Bytes)929292

PromptLevelWarp() »

bbool PromptLevelWarp(void);

Prompts the user to select a map number from 1 to 12 (or 13, depending on the episode) and jumps to the start of the chosen map. Returns true if the map changed, or false if the user entered a non-numeric or out-of-range value.

E1E2E3
Symbol Address0104:E4D1h0104:E382h0104:E7CEh
Size (Bytes)134134134

PromptQuitConfirm() »

bbool PromptQuitConfirm(void);

Displays a window prompting the user to confirm their intention to quit, and blocks until a key is pressed. The return value is true if the Y key was pressed, or false in the case of any other key.

E1E2E3
Symbol Address1095:354Eh107F:2EC5h10C5:2D4Ah
Size (Bytes)626262

PromptRestoreGame() »

byte PromptRestoreGame(void);

Displays a menu that prompts the user to pick a save game slot (1-9) to load from, and gameplay jumps to that state. The user may cancel this prompt without loading by pressing Esc, Space, or Enter. The return value is one of the RESTORE_GAME_* constants.

E1E2E3
Symbol Address0104:E2BAh0104:E16Bh0104:E5B7h
Size (Bytes)182182182

PromptSaveGame() »

void PromptSaveGame(void);

Displays a menu that prompts the user to pick a save game slot (1-9) to save the state of their game into, then the save is carried out. The user may cancel this prompt without saving by pressing Esc, Space, or Enter.

E1E2E3
Symbol Address0104:E370h0104:E221h0104:E66Dh
Size (Bytes)353353353

ReadAndEchoText() »

void ReadAndEchoText(
    word x_origin, word y_origin, char *dest, word max_length
);

Presents a wait spinner near (x_origin, y_origin) that accepts at most max_length characters of keyboard input. The typed characters are echoed to the screen and stored in the memory pointed to by dest, which should be large enough to hold max_length + 1 bytes of data.

E1E2E3
Symbol Address1095:0B81h107F:0B86h10C5:0B84h
Size (Bytes)196196196

ReadDemoFrame() »

bbool ReadDemoFrame(void);

Reads the next byte from the demo data and updates the global input command state. Returns true on end of data.

E1E2E3
Symbol Address0104:E7F4h0104:E699h0104:EAE5h
Size (Bytes)135135135

ReadJoystickState() »

JoystickState ReadJoystickState(word stick_num);

Polls the joystick identified by stick_num for its current position and button state, and updates the player control variables accordingly.

E1E2E3
Symbol Address1095:075Bh107F:0760h10C5:075Eh
Size (Bytes)402402402

ReadJoystickTimes() »

void ReadJoystickTimes(word stick_num, int *x_time, int *y_time);

Triggers a timing interval on the joystick hardware and returns the raw interval lengths for the one joystick, identified by stick_num, in x_time and y_time.

E1E2E3
Symbol Address1095:06D2h107F:06D7h10C5:06D5h
Size (Bytes)137137137

SET_PLAYER_DIZZY() »

#define SET_PLAYER_DIZZY() { queuePlayerDizzy = true; }

Puts the player into a “dizzy” state, which will begin to take effect the next time they are standing on solid ground.


SaveConfigurationData() »

void SaveConfigurationData(char *filename);

Saves the state of the global game configuration variables to the configuration file named filename.

E1E2E3
Symbol Address1095:3BC0h107F:3537h10C5:33BCh
Size (Bytes)288288288

SaveDemoData() »

void SaveDemoData(void);

Flushes all of the in-memory demo data to the PREVDEMO.MNI file on disk – it does not modify any group file contents.

E1E2E3
Symbol Address0104:E8DBh0104:E780h0104:EBCCh
Size (Bytes)919191

SaveGameState() »

void SaveGameState(char slot_char);

Writes the current state of the most important player variables to a file on disk, whose filename extension is influenced by the character provided in slot_char.

E1E2E3
Symbol Address0104:E19Fh0104:E050h0104:E49Ch
Size (Bytes)283283283

SelectActivePage() »

void SelectActivePage(word page_num);

Switches the actively-displayed video memory page to page_num, causing its contents to appear on the screen, using a BIOS interrupt call.

E1E2E3
Symbol Address0000:0404h0000:0404h0000:0404h
Size (Bytes)121212

SelectDrawPage() »

void SelectDrawPage(word page_num);

Changes the draw page to page_num and updates the memory address that subsequent drawing procedures should operate on.

E1E2E3
Symbol Address0000:0276h0000:0276h0000:0276h
Size (Bytes)171717

SetAdLibRegister() »

void SetAdLibRegister(byte addr, byte data);

Writes one data byte to the AdLib register at address addr, assuming the hardware is present at the standard I/O ports.

E1E2E3
Symbol Address1095:0111h107F:0116h10C5:0114h
Size (Bytes)666666

SetBorderColorRegister() »

void SetBorderColorRegister(word color_value);

Configures the display adapter to use color_value to fill the overscan area at the edges of the screen, using a BIOS interrupt call.

E1E2E3
Symbol Address0000:01E6h0000:01E6h0000:01E6h
Size (Bytes)161616

SetInterruptRate() »

void SetInterruptRate(word ints_second);

Configures channel 0 of the system’s Programmable Interval Timer with an interrupts-per-second value specified by ints_second.

E1E2E3
Symbol Address1095:0022h107F:0027h10C5:0025h
Size (Bytes)282828

SetMapTile() »

void SetMapTile(word value, word x, word y);

Sets one map tile at horizontal position x and vertical position y to the value passed in value.

E1E2E3
Symbol Address0104:3374h0104:3374h0104:337Eh
Size (Bytes)353535

SetMapTile4() »

void SetMapTile4(
    word val1, word val2, word val3, word val4, word x_origin, word y_origin
);

Sets a horizontal span of four map tiles, starting at horizontal position x_origin and vertical position y_origin, to the values passed in val1 through val4.

E1E2E3
Symbol Address0104:17F1h0104:17F1h0104:17FBh
Size (Bytes)797979

SetMapTileRepeat() »

void SetMapTileRepeat(word value, word count, word x_origin, word y_origin);

Sets a horizontal span of count map tiles, starting at horizontal position x_origin and vertical position y_origin, to the value passed in value.

E1E2E3
Symbol Address0104:17CCh0104:17CCh0104:17D6h
Size (Bytes)373737

SetMusicState() »

bool SetMusicState(bool state);

Enables or disables AdLib output based on the value of state.

E1E2E3
Symbol Address1095:0352h107F:0357h10C5:0355h
Size (Bytes)777777

SetPIT0Value() »

void SetPIT0Value(word value);

Configures channel 0 of the system’s Programmable Interval Timer with the provided counter value.

E1E2E3
Symbol Address1095:0000h107F:0005h10C5:0003h
Size (Bytes)343434

SetPaletteRegister() »

void SetPaletteRegister(word palette_index, word color_value);

Configures the display adapter to use color_value as the screen display color at positions where the video memory contains palette_index, using a BIOS interrupt call.

E1E2E3
Symbol Address0000:01F6h0000:01F6h0000:01F6h
Size (Bytes)161616

SetPlayerPush() »

void SetPlayerPush(
    word dir, word max_time, word speed, word force_frame, bool abortable,
    bool blockable
);

Configures the global game state to cause the player to be pushed in a direction dir at speed tiles per game tick for a total duration of max_time game ticks. During this time, the player sprite will be drawn using force_frame as the frame number. If the abortable flag is set, the player can cancel the effect of the push by jumping. If the blockable flag is set, the push will consider and stop at any solid map tiles encountered along the way.

E1E2E3
Symbol Address0104:CA03h0104:C8B4h0104:CD00h
Size (Bytes)757575

SetVideoMode() »

void SetVideoMode(word mode_num);

Changes the system’s video mode to the mode number specified by mode_num, using a BIOS interrupt call.

E1E2E3
Symbol Address0000:01CDh0000:01CDh0000:01CDh
Size (Bytes)252525

ShowAlteredFileError() »

void ShowAlteredFileError(void);

Shows when the user tries to load a manipulated save file whose checksum does not match the expected value.

E1E2E3
Symbol Address1095:3439h107F:2BF8h10C5:2D10h
Size (Bytes)424242

ShowBombHint() »

void ShowBombHint(void);

Displays a hint dialog that informs the player that they can’t use the bomb key until they have picked up a bomb.

E1E2E3
Symbol Address1095:461Dh107F:3C5Eh10C5:3F27h
Size (Bytes)156156156

ShowCheatMessage() »

void ShowCheatMessage(void);

Displays a static dialog informing the user that they have entered the cheat code successfully and explaining the effect.

E1E2E3
Symbol Address1095:4310h107F:3961h10C5:3C2Ah
Size (Bytes)909090

ShowCongratulations() »

void ShowCongratulations(void);

Shows a brief page of post-ending story and a pitch for another upcoming game.

E1E2E3
Symbol Address107F:174Ah10C5:1748h
Size (Bytes)1283

ShowCopyright() »

void ShowCopyright(void);

Shows an abbreviated list of credits, the copyright year, and the game version.

E1E2E3
Symbol Address1095:33CCh107F:2B8Bh10C5:2CA3h
Size (Bytes)109109109

ShowE1CliffhangerMessage() »

void ShowE1CliffhangerMessage(word actor_type);

Presents a sequence of two dialogs introducing the “cliffhanger” ending sequence of episode one, followed by ending the game by setting winGame to true. During each call, the passed actor_type value is used to determine which text to show, or if the game should end.

E1E2E3
Symbol Address1095:346Ch107F:2EBEh10C5:2D43h
Size (Bytes)22677

ShowEnding() »

void ShowEnding(void);

Presents a sequence of dialogs when an episode of the game has been played to completion.

E1E2E3
Symbol Address1095:3CE0h107F:3657h10C5:34DCh
Size (Bytes)4724551,556

ShowForeignOrders() »

void ShowForeignOrders(void);

Displays five consecutive pages of ordering information for international customers.

E1E2E3
Symbol Address1095:2F17h
Size (Bytes)1,163

ShowGameRedefineMenu() »

void ShowGameRedefineMenu(void);

Shows a menu labeled “Game Redefine” in response to the user selecting the G option in either the main menu or the in-game help menu. This function simply dispatches one of the submenu functions in response to the user’s input.

E1E2E3
Symbol Address1095:38A1h107F:3218h10C5:309Dh
Size (Bytes)207207207

ShowHealthHint() »

void ShowHealthHint(void);

Displays a hint dialog that teaches the player what Power-Up Modules are and how they affect gameplay.

E1E2E3
Symbol Address1095:481Dh107F:3E5Eh10C5:4127h
Size (Bytes)166166166

ShowHelpMenu() »

byte ShowHelpMenu(void);

Shows a menu labeled “Help Menu” in response to the user pressing F1 during the game. It gives access to save/restore functions and a subset of options offered by the main menu. Returns one of the HELP_MENU_* variables.

E1E2E3
Symbol Address0104:E6EAh0104:E58Fh0104:E9DBh
Size (Bytes)266266266

ShowHighScoreTable() »

void ShowHighScoreTable(void);

Shows the top ten scores that have been reached and the name of the player who earned each spot. The table can optionally be erased by pressing the F10 key and confirming with the Y key.

E1E2E3
Symbol Address1095:11A9h107F:11AEh10C5:11ACh
Size (Bytes)328328328

ShowHintGlobeMessage() »

void ShowHintGlobeMessage(word hint_num);

Displays a dialog containing an animated context-appropriate hint message. The message is selected via the numeric hint_num argument.

E1E2E3
Symbol Address1095:3EB8h107F:381Eh10C5:3AF0h
Size (Bytes)1,112323314

ShowHintsAndKeys() »

void ShowHintsAndKeys(word top);

Displays a page of helpful hints, followed by two pages of keyboard help. The top parameter influences the vertical position of the frames, to allow the dialogs to be placed higher on the screen while the game is being played.

E1E2E3
Symbol Address1095:258Dh107F:21D7h10C5:22EFh
Size (Bytes)857857857

ShowInstructions() »

void ShowInstructions(void);

Shows a progression of five pages of dialog frames that teach the user how to play the game.

E1E2E3
Symbol Address1095:28E6h107F:2530h10C5:2648h
Size (Bytes)1,0451,0451,045

ShowJoystickConfiguration() »

void ShowJoystickConfiguration(word stick_num);

Prompts the user to calibrate the joystick timings and button configuration for the joystick identified by stick_num.

E1E2E3
Symbol Address1095:0C45h107F:0C4Ah10C5:0C48h
Size (Bytes)641641641

ShowKeyboardConfiguration() »

void ShowKeyboardConfiguration(void);

Shows and handles the keyboard configuration (sometimes called keyboard redefine) menu.

E1E2E3
Symbol Address1095:2113h107F:1D5Dh10C5:1E75h
Size (Bytes)560560560

ShowLevelIntro() »

void ShowLevelIntro(word level_num);

Presents the animated message “Now entering level…” followed by the map number of the passed level_num.

E1E2E3
Symbol Address1095:4797h107F:3DD8h10C5:40A1h
Size (Bytes)134134134

ShowMemoryUsage() »

void ShowMemoryUsage(void);

Displays a debug dialog with a few live statistics about available system memory and the current number of actors.

E1E2E3
Symbol Address1095:37E1h107F:3158h10C5:2FDDh
Size (Bytes)192192192

ShowOrderingInformation() »

void ShowOrderingInformation(void);

Displays five sequential pages of ordering information in the shareware episode of the game, or a single page thanking the user for purchasing one of the registered episodes in other cases.

E1E2E3
Symbol Address1095:164Eh107F:1651h10C5:164Fh
Size (Bytes)1,204249249

ShowPauseMessage() »

void ShowPauseMessage(void);

Presents a “game paused” dialog, stops music playback, and stops all execution until a key is pressed. Once that happens, the music is restarted and the function returns to its caller.

E1E2E3
Symbol Address1095:3746h107F:30BDh10C5:2F42h
Size (Bytes)717171

ShowPounceHint() »

void ShowPounceHint(void);

Displays a sequence of two hint dialogs that teach the player how to pounce on enemies for defense.

E1E2E3
Symbol Address1095:46B9h107F:3CFAh10C5:3FC3h
Size (Bytes)222222222

ShowPublisherBBS() »

void ShowPublisherBBS(void);

Displays two consecutive pages of information on how to access Apogee’s official channels on popular bulletin board systems (BBSes) of the day.

E1E2E3
Symbol Address1095:2CFBh107F:2945h10C5:2A5Dh
Size (Bytes)540540540

ShowRescuedDNMessage() »

void ShowRescuedDNMessage(void);

Displays a dialog sequence between the player and Duke Nukem (here using the short-lived but canonical spelling “Nukum”).

E1E2E3
Symbol Address1095:3469h107F:2C8Ah10C5:2D40h
Size (Bytes)35643

ShowRestoreGameError() »

void ShowRestoreGameError(void);

Shows when the user tries to restore a saved game whose file does not exist.

E1E2E3
Symbol Address1095:33A2h107F:2B61h10C5:2C79h
Size (Bytes)424242

ShowSectionIntermission() »

void ShowSectionIntermission(char *top_text, char *bottom_text);

Ties different “sections” of the level progression together by showing a completion dialog and presenting the star bonus. Sections are two levels long, followed by a conditional bonus level. Depending on the context (section complete, or bonus level complete) different values may be passed in top_text and bottom_text.

E1E2E3
Symbol Address0104:EDD3h0104:EC78h0104:F0C4h
Size (Bytes)959595

ShowSoundTest() »

void ShowSoundTest(void);

Presents a menu that allows the user to seek through and preview each sound effect available in the game.

E1E2E3
Symbol Address1095:3655h107F:2FCCh10C5:2E51h
Size (Bytes)241241241

ShowStarBonus() »

void ShowStarBonus(void);

Presents a dialog that tallies up the number of stars collected by the player during the previous section. As a side effect, this function zeroes gameStars and increases gameScore accordingly.

E1E2E3
Symbol Address0104:EBDAh0104:EA7Fh0104:EECBh
Size (Bytes)505505505

ShowStory() »

void ShowStory(void);

Shows a progression of six pages of dialog frames that explain the basic premise of the game.

E1E2E3
Symbol Address1095:1B02h107F:174Ch10C5:1864h
Size (Bytes)1,2891,2891,289

StartAdLib() »

void StartAdLib(void);

Detects and initializes the AdLib hardware if it is present, installs the interrupt handler necessary to run the AdLib and PC speaker services, and measures values for CPU-based time delays.

E1E2E3
Symbol Address1095:039Fh107F:03A4h10C5:03A2h
Size (Bytes)128128128

StartAdLibPlayback() »

void StartAdLibPlayback(void);

Sets the enableAdLib variable to true, permitting the AdLib service to play music.

E1E2E3
Symbol Address1095:044Eh107F:0453h10C5:0451h
Size (Bytes)777

StartGameMusic() »

void StartGameMusic(word music_num);

Starts playing the music identified by the numeric music_num if the AdLib hardware is available. This function is only safe to use while gameplay is occurring.

E1E2E3
Symbol Address1095:200Bh107F:1C55h10C5:1D6Dh
Size (Bytes)565656

StartMenuMusic() »

void StartMenuMusic(word music_num);

Starts playing the music identified by the numeric music_num if the AdLib hardware is available. This function is only safe to use on the title screens, main menu, and its submenus.

E1E2E3
Symbol Address1095:2043h107F:1C8Dh10C5:1DA5h
Size (Bytes)525252

StartSound() »

void StartSound(word sound_num);

Queues the new sound effect identified by sound_num for playback and immediately returns.

E1E2E3
Symbol Address0104:0538h0104:0538h0104:0542h
Size (Bytes)494949

Startup() »

void Startup(void);

Initializes the game environment and shows pre-title/copyright screens.

E1E2E3
Symbol Address0104:C67Ch0104:C52Dh0104:C979h
Size (Bytes)811811811

StepPalette() »

void StepPalette(byte *pal_table);

During each frame of gameplay, steps through each element of the passed palette table pal_table and sets the palette key color accordingly, repeating once the END_ANIMATION marker has been reached.

E1E2E3
Symbol Address0104:005Fh0104:005Fh0104:005Fh
Size (Bytes)929292

StepWaitSpinner() »

byte StepWaitSpinner(word x, word y);

Draws one frame of the wait spinner, immediately returning the most recent scancode seen by the keyboard hardware (even if that scancode is stale).

E1E2E3
Symbol Address1095:05D7h107F:05DCh10C5:05DAh
Size (Bytes)101101101

StopAdLib() »

void StopAdLib(void);

Stops all playback from the AdLib card and restores the original system timer interrupt handler.

E1E2E3
Symbol Address1095:041Fh107F:0424h10C5:0422h
Size (Bytes)474747

StopAdLibPlayback() »

void StopAdLibPlayback(void);

Clears all the AdLib parameter values that could produce note sounds.

E1E2E3
Symbol Address1095:0455h107F:045Ah10C5:0458h
Size (Bytes)595959

StopMusic() »

void StopMusic(void);

Silences any active music and prevents the AdLib service from processing any new chunks of music.

E1E2E3
Symbol Address1095:2077h107F:1CC1h10C5:1DD9h
Size (Bytes)131313

SwitchMusic() »

void SwitchMusic(Music *music);

Stops any currently playing music and starts playing the music specified by music.

E1E2E3
Symbol Address1095:0490h107F:0495h10C5:0493h
Size (Bytes)808080

TILE_BLOCK_EAST() »

#define TILE_BLOCK_EAST(val) (*(tileAttributeData + ((val) / 8)) & 0x08)

Evaluates to a nonzero value if the tile value passed in val has its “block east movement” attribute flag set.


TILE_BLOCK_NORTH() »

#define TILE_BLOCK_NORTH(val) (*(tileAttributeData + ((val) / 8)) & 0x02)

Evaluates to a nonzero value if the tile value passed in val has its “block north movement” attribute flag set.


TILE_BLOCK_SOUTH() »

#define TILE_BLOCK_SOUTH(val) (*(tileAttributeData + ((val) / 8)) & 0x01)

Evaluates to a nonzero value if the tile value passed in val has its “block south movement” attribute flag set.


TILE_BLOCK_WEST() »

#define TILE_BLOCK_WEST(val) (*(tileAttributeData + ((val) / 8)) & 0x04)

Evaluates to a nonzero value if the tile value passed in val has its “block west movement” attribute flag set.


TILE_CAN_CLING() »

#define TILE_CAN_CLING(val) (*(tileAttributeData + ((val) / 8)) & 0x80)

Evaluates to a nonzero value if the tile value passed in val has its “player can cling” attribute flag set.


TILE_IN_FRONT() »

#define TILE_IN_FRONT(val) (*(tileAttributeData + ((val) / 8)) & 0x20)

Evaluates to a nonzero value if the tile value passed in val has its “draw in front” attribute flag set.


TILE_SLIPPERY() »

#define TILE_SLIPPERY(val) (*(tileAttributeData + ((val) / 8)) & 0x10)

Evaluates to a nonzero value if the tile value passed in val has its “is slippery” attribute flag set.


TILE_SLOPED() »

#define TILE_SLOPED(val) (*(tileAttributeData + ((val) / 8)) & 0x40)

Evaluates to a nonzero value if the tile value passed in val has its “is sloped” attribute flag set.


TestPlayerMove() »

word TestPlayerMove(word dir, word x_origin, word y_origin);

Tests if the player sprite is permitted to move in the direction specified by dir and enter the map tiles around x_origin and y_origin. Depending on the result of the test, one of the MOVE_* constants is returned.

E1E2E3
Symbol Address0104:0B14h0104:0B14h0104:0B1Eh
Size (Bytes)751751751

TestSpriteMove() »

word TestSpriteMove(word dir, word sprite_type, word frame, word x_origin, word y_origin);

Tests if the sprite identified by sprite_type and frame is permitted to move in the direction specified by dir and enter the map tiles around x_origin and y_origin. Depending on the result of the test, one of the MOVE_* constants is returned.

E1E2E3
Symbol Address0104:08DCh0104:08DCh0104:08E6h
Size (Bytes)568568568

TimerInterruptService() »

void interrupt TimerInterruptService(void);

Handles interrupts that occur on interrupt vector 8 (IRQ 0), which is wired to channel 0 of the system’s Programmable Interval Timer. Each time the timer ticks, this function updates the sounds being played by the PC speaker and/or the AdLib.

E1E2E3
Symbol Address1095:02A7h107F:02ACh10C5:02AAh
Size (Bytes)147147147

TitleLoop() »

byte TitleLoop(void);

Runs at the start of the program and is responsible for showing the title screen, credits, demo, and main menu. Additionally, this function reads the keyboard input for the main menu selection and calls the appropriate function in response. Returns one of the DEMO_STATE_* variables.

E1E2E3
Symbol Address0104:E557h0104:E408h0104:E854h
Size (Bytes)403391391

ToggleGodMode() »

void ToggleGodMode(void);

Inverts the state of the global isGodMode debug variable and presents a dialog informing the user of the current setting.

E1E2E3
Symbol Address1095:378Dh107F:3104h10C5:2F89h
Size (Bytes)848484

ToggleMusic() »

void ToggleMusic(void);

Inverts the setting of the global isMusicEnabled variable then presents a dialog confirming the resulting state. If the system does not have an AdLib compatible card installed, this function is a no-op.

E1E2E3
Symbol Address1095:35E0h107F:2F57h10C5:2DDCh
Size (Bytes)117117117

ToggleSound() »

void ToggleSound(void);

Inverts the setting of the global isSoundEnabled variable then presents a dialog confirming the resulting state.

E1E2E3
Symbol Address1095:358Ch107F:2F03h10C5:2D88h
Size (Bytes)848484

TryPounce() »

bool TryPounce(int recoil);

Checks if all necessary player variables are in the correct state to perform a pounce on an enemy actor. If this state is correct, a caller-provided recoil amount is imparted to the player and true is returned.

E1E2E3
Symbol Address0104:A83Ah0104:A686h0104:AB37h
Size (Bytes)247247247

UnfoldDNFrame() »

word UnfoldDNFrame(void);

Draws the dialog frame that is used when Duke Nukem is speaking to the player. It contains no inner content aside from a Duke sprite image on the left side. Returns the X coordinate where text should be placed to appear within the frame.

E1E2E3
Symbol Address1095:3466h107F:2C56h10C5:2D3Dh
Size (Bytes)3523

UnfoldPlayerFrame() »

word UnfoldPlayerFrame(void);

Draws the dialog frame that is used when the player is speaking with Duke Nukem. It contains no inner content aside from a player sprite image on the right side. Returns the X coordinate where text should be placed to appear within the frame.

E1E2E3
Symbol Address1095:3463h107F:2C22h10C5:2D3Ah
Size (Bytes)3523

UnfoldTextFrame() »

word UnfoldTextFrame(
    int top, int height, int width, char *top_text, char *bottom_text
);

Draws an animated, empty text frame to the current draw page with the top edge at tile position top and a total size of width×height tiles. The top and bottom edges of the frame are prefilled with top_text and bottom_text respectively. The frame and its top/bottom texts are always centered horizontally on the screen. The return value is the X tile coordinate of the left edge of the inner text area.

E1E2E3
Symbol Address1095:0AC3h107F:0AC8h10C5:0AC6h
Size (Bytes)190190190

UpdateBombs() »

void UpdateBombs(void);

Wraps DrawStatusBarBombs() with the correct X,Y position for display on the screen. It refreshes the bomb count on the status bar with the current global value.

E1E2E3
Symbol Address1095:10C4h107F:10C9h10C5:10C7h
Size (Bytes)111111

UpdateDrawPageSegment() »

void UpdateDrawPageSegment(void);

Recalculates the segment address of the video memory where drawing should occur.

E1E2E3
Symbol Address0000:025Dh0000:025Dh0000:025Dh
Size (Bytes)252525

UpdateHealth() »

void UpdateHealth(void);

Wraps DrawSBarHealthHelper() and handles draw page selection. It redraws all of the health cells with either filled or empty bars to represent the player’s current health.

E1E2E3
Symbol Address1095:117Bh107F:1180h10C5:117Eh
Size (Bytes)464646

UpdateStars() »

void UpdateStars(void);

Wraps DrawStatusBarStars() with the correct X,Y position for display on the screen. It refreshes the star count on the status bar with the current global value.

E1E2E3
Symbol Address1095:101Fh107F:1024h10C5:1022h
Size (Bytes)111111

ValidateSystem() »

void ValidateSystem(void);

Ensures the system has an EGA adapter, and verifies there is enough free memory. If either are not true, exits back to DOS.

E1E2E3
Symbol Address0104:C5E8h0104:C499h0104:C8E5h
Size (Bytes)148148148

WaitForAnyKey() »

byte WaitForAnyKey(void);

Waits indefinitely for any key to be pressed and released, then returns the scancode of that key.

E1E2E3
Symbol Address0104:DFF2h0104:DEA3h0104:E2EFh
Size (Bytes)181818

WaitHard() »

void WaitHard(word delay);

Pauses execution for delay game ticks with no provision for the user to skip the wait.

E1E2E3
Symbol Address1095:04EFh107F:04F4h10C5:04F2h
Size (Bytes)191919

WaitSoft() »

void WaitSoft(word delay);

Pauses execution for delay game ticks, returning early if the user presses a key.

E1E2E3
Symbol Address1095:0502h107F:0507h10C5:0505h
Size (Bytes)252525

WaitSpinner() »

byte WaitSpinner(word x, word y);

Draws a rotating green icon at tile position (x, y) on the screen, blocking until a key is pressed. Once that occurs, the scancode of the pressed key is returned.

E1E2E3
Symbol Address1095:063Ch107F:0641h10C5:063Fh
Size (Bytes)818181

WaitWallclock() »

void WaitWallclock(word loops);

Creates an artificial delay using a CPU busy loop, controlled by the iteration count specified in loops.

E1E2E3
Symbol Address1095:00F9h107F:00FEh10C5:00FCh
Size (Bytes)242424

WrapBackdropHorizontal() »

void WrapBackdropHorizontal(byte *src, byte *dest);

Creates a modified copy of the backdrop image pointed to by src and stores it in the location pointed to by dest. The new copy of the image is shifted horizontally toward the left by four pixels, and the four columns of pixels that shift off the left edge are wrapped into the empty space created at the right edge.

E1E2E3
Symbol Address1095:2473h107F:20BDh10C5:21D5h
Size (Bytes)282282282

WrapBackdropVertical() »

void WrapBackdropVertical(byte *src, byte *dest, byte *scratch);

Creates a modified copy of the backdrop image pointed to by src and stores it in the location pointed to by dest using a scratch buffer of at least 640 bytes. The new copy of the image is shifted vertically toward the top by four pixels, and the four rows of pixels that shift off the top edge are wrapped into the empty space created at the bottom edge.

E1E2E3
Symbol Address1095:2343h107F:1F8Dh10C5:20A5h
Size (Bytes)304304304

WriteDemoFrame() »

bbool WriteDemoFrame(void);

Captures a snapshot of the global input command state (from the keyboard or joystick) and encodes it into a stream of demo data bytes. Returns true on error.

E1E2E3
Symbol Address0104:E87Bh0104:E720h0104:EB6Ch
Size (Bytes)969696

atoi() »

int atoi(const char *s);

Interprets an integer value in a byte string pointed to by s.

E1E2E3
Symbol Address180C:0078h175A:0079h17CC:0082h
Size (Bytes)191919

coreleft() »

unsigned long coreleft(void);

Returns a measure of RAM not in use.

E1E2E3
Symbol Address1744:0000h1692:0001h1704:000Ah
Size (Bytes)888

disable() »

void disable(void);

Disables hardware interrupts.


enable() »

void enable(void);

Enables hardware interrupts, allowing any device interrupts to occur.


exit() »

void exit(int status);

Causes normal program termination to occur.

E1E2E3
Symbol Address1524:000Fh1472:0010h14E5:0009h
Size (Bytes)515151

farmalloc() »

void far *farmalloc(unsigned long nbytes);

Allocates a block of memory nbytes bytes long from the far heap.

E1E2E3
Symbol Address152B:0202h1479:0203h14EB:020Ch
Size (Bytes)271271271

fclose() »

int fclose(FILE *stream);

Closes the given file stream. Returns 0 on success, EOF otherwise.

E1E2E3
Symbol Address1611:0000h155F:0001h15D1:000Ah
Size (Bytes)208208208

feof() »

int feof(FILE *stream);

Checks if the end of the given file stream has been reached.


ferror() »

int ferror(FILE *stream);

Checks the given stream for errors.


fgetc() »

int fgetc(FILE *stream);

Reads the next character from the given input stream.

E1E2E3
Symbol Address15D3:00F4h1521:00F5h1594:00EEh
Size (Bytes)343343343

filelength() »

long filelength(int handle);

Returns the length (in bytes) of the file associated with handle.

E1E2E3
Symbol Address1778:0009h16C6:000Ah1739:0003h
Size (Bytes)696969

fileno() »

#define fileno(stream) ((stream)->fd)

Returns the file handle for the given stream.


fopen() »

FILE *fopen(const char *path, const char *mode);

Opens a file indicated by path and returns a pointer to the file stream associated with that file. mode is used to determine the file access mode.

E1E2E3
Symbol Address1573:021Bh14C1:021Ch1533:0225h
Size (Bytes)545454

fprintf() »

int fprintf(FILE *stream, const char *format, ...);

Loads the data from the given locations, converts them to character string equivalents and writes the results to the output stream stream.

E1E2E3
Symbol Address177C:000Eh16CA:000Fh173D:0008h
Size (Bytes)373737

fputc() »

int fputc(int c, FILE *stream);

Writes a character c to the given output stream stream.

E1E2E3
Symbol Address16C2:0022h1610:0023h1682:002Ch
Size (Bytes)418418418

fread() »

size_t fread(void *ptr, size_t size, size_t n, FILE *stream);

Reads up to n objects into the array ptr from the given input stream stream as if by calling fgetc() size times for each object, and storing the results, in the order obtained, into the successive positions of ptr, which is reinterpreted as an array of unsigned char. Returns the number of objects read successfully.

E1E2E3
Symbol Address162A:0113h1578:0114h15EB:010Dh
Size (Bytes)132132132

fscanf() »

int fscanf(FILE *stream, const char *format, ...);

Reads the data from file stream stream, interprets it according to format and stores the results into given locations.

E1E2E3
Symbol Address177F:0003h16CD:0004h173F:000Dh
Size (Bytes)474747

fseek() »

int fseek(FILE *stream, long offset, int whence);

Sets the file position indicator for the file stream stream to the value pointed to by offset.

E1E2E3
Symbol Address15BE:0059h150C:005Ah157F:0053h
Size (Bytes)142142142

fwrite() »

size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);

Writes n of objects from the given array ptr to the output stream stream. The objects are written as if by reinterpreting each object as an array of unsigned char and calling fputc() size times for each object to write those unsigned chars into stream, in order.

E1E2E3
Symbol Address1651:000Ch159F:000Dh1612:0006h
Size (Bytes)138138138

getch() »

int getch(void);

Reads a single character directly from the console (keyboard), without echoing to the screen.

E1E2E3
Symbol Address1798:0009h16E6:000Ah1759:0003h
Size (Bytes)272727

getvect() »

void interrupt (*getvect(int interruptno))();

Reads the value of the interrupt vector given by interruptno and returns that value as a far pointer to an interrupt function.

E1E2E3
Symbol Address1814:000Bh1762:000Ch17D5:0005h
Size (Bytes)181818

getw() »

int getw(FILE *stream);

Returns the next integer (machine word) in the named input stream. It assumes no special alignment in the file.

E1E2E3
Symbol Address1816:000Eh1764:000Fh17D7:0008h
Size (Bytes)124124124

inportb() »

unsigned char inportb(int portid);

Reads a byte from the hardware I/O port specified by portid.


int86() »

int int86(int intno, union REGS *inregs, union REGS *outregs);

Executes an 8086 software interrupt specified by the argument intno.

E1E2E3
Symbol Address1827:000Fh1776:0000h17E8:0009h
Size (Bytes)525252

main() »

void main(int argc, char *argv[]);

Main entry point for the program.

E1E2E3
Symbol Address00FA:000Bh00FA:000Bh00FA:000Bh
Size (Bytes)149149149

malloc() »

void *malloc(size_t size);

Allocates size bytes of uninitialized storage.

E1E2E3
Symbol Address152B:0001h1479:0002h14EB:000Bh
Size (Bytes)212121

memmove() »

void *memmove(void *dest, const void *src, size_t n);

Copies n characters from the object pointed to by src to the object pointed to by dest.

E1E2E3
Symbol Address16A1:0056h15EF:0057h1661:0060h
Size (Bytes)323232

movmem() »

void movmem(void *src, void *dest, unsigned length);

Copies a block of length bytes from src to dest.

E1E2E3
Symbol Address16A1:0002h15EF:0003h1661:000Ch
Size (Bytes)848484

outport() »

void outport(int portid, int value);

Writes the word given by value to the hardware I/O port specified by portid.

E1E2E3
Symbol Address183F:000Ch178D:000Dh1800:0006h
Size (Bytes)121212

outportb() »

void outportb(int portid, unsigned char value);

Writes the byte given by value to the hardware I/O port specified by portid.

E1E2E3
Symbol Address183F:0018h178D:0019h1800:0012h
Size (Bytes)121212

printf() »

int printf(const char *format, ...);

Loads the data from the given locations, converts them to character string equivalents and writes the results to the output stream stdout. Returns the number of characters transmitted to the output stream or negative value if an error occurred.

E1E2E3
Symbol Address16BF:000Fh160E:0000h1680:0009h
Size (Bytes)363636

putw() »

int putw(int w, FILE *stream);

Outputs the integer w (machine word) to the given stream.

E1E2E3
Symbol Address1842:000Dh1790:000Eh1803:0007h
Size (Bytes)117117117

rand() »

int rand(void);

Returns a pseudorandom integer value between 0 and RAND_MAX (0 and RAND_MAX included).

E1E2E3
Symbol Address184A:0013h1798:0014h180A:001Dh
Size (Bytes)404040

random() »

#define random(num) (rand() % (num))

Returns a random number between 0 and (num - 1).


remove() »

int remove(const char *path);

Deletes the file identified by character string pointed to by path.


setvect() »

void setvect(int interruptno, void interrupt (*isr)());

Sets the value of the interrupt vector named by interruptno to a new value, isr, which is a far pointer containing the address of a new interrupt function.

E1E2E3
Symbol Address1814:001Dh1762:001Eh17D5:0017h
Size (Bytes)171717

sprintf() »

int sprintf(char *buffer, const char *format, ...);

Loads the data from the given locations, converts them to character string equivalents and writes the results to a character string buffer.


strcpy() »

char strcpy(char *dest, const char *src);

Copies the null-terminated byte string pointed to by src, including the null terminator, to the character array whose first element is pointed to by dest.

E1E2E3
Symbol Address169E:0009h15EC:000Ah165F:0003h
Size (Bytes)414141

strlen() »

size_t strlen(const char *s);

Returns the length of the given null-terminated byte string, that is, the number of characters in a character array whose first element is pointed to by s up to and not including the first null character.

E1E2E3
Symbol Address169C:000Eh15EA:000Fh165D:0008h
Size (Bytes)272727

strncmp() »

int strncmp(const char *s1, const char *s2, size_t maxlen);

Compares at most maxlen characters of two possibly null-terminated arrays.

E1E2E3
Symbol Address1886:0009h17D4:000Ah1847:0003h
Size (Bytes)585858

strupr() »

char *strupr(char *s);

Converts lowercase letters (az) in string s to uppercase (AZ). No other characters are changed.

E1E2E3
Symbol Address188A:0003h17D8:0004h184A:000Dh
Size (Bytes)373737

textmode() »

void textmode(int newmode);

Selects a specific screen text mode.

E1E2E3
Symbol Address188C:0008h17DA:0009h184D:0002h
Size (Bytes)484848

ultoa() »

char *ultoa(unsigned long value, char *string, int radix);

Converts value to a null-terminated string and stores the result in string.

E1E2E3
Symbol Address167C:00B5h15CA:00B6h163C:00BFh
Size (Bytes)323232