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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:28ABh | 0104:28ABh | 0104:28B5h |
| Size (Bytes) | 93 | 93 | 93 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:1F9Ch | 0104:1F9Ch | 0104:1FA6h |
| Size (Bytes) | 418 | 418 | 418 |
AdLibService() »
void AdLibService(void);Streams chunks of music data to the AdLib hardware at the appropriate time.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0153h | 107F:0158h | 10C5:0156h |
| Size (Bytes) | 174 | 174 | 174 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0FACh | 107F:0FB1h | 10C5:0FAFh |
| Size (Bytes) | 21 | 21 | 21 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:436Ah | 107F:39BBh | 10C5:3C84h |
| Size (Bytes) | 369 | 369 | 369 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:1C32h | 0104:1C32h | 0104:1C3Ch |
| Size (Bytes) | 874 | 874 | 874 |
AnimatePalette() »
void AnimatePalette(void);Cycles through any palette animations that have been requested by the map.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:00BBh | 0104:00BBh | 0104:00BBh |
| Size (Bytes) | 189 | 189 | 199 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:AA6Dh | 0104:A8B9h | 0104:AD6Ah |
| Size (Bytes) | 337 | 337 | 337 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:12F1h | 107F:12F6h | 10C5:12F4h |
| Size (Bytes) | 288 | 288 | 288 |
ClearGameScreen() »
void ClearGameScreen(void);Clears all content from both draw pages of the EGA’s memory and redraws a fresh status bar.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C9A7h | 0104:C858h | 0104:CCA4h |
| Size (Bytes) | 27 | 27 | 27 |
ClearPlayerDizzy() »
void ClearPlayerDizzy(void);Resets all the global variables related to the player’s “dizziness” immobilization, immediately returning the player to normal state.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:0022h | 0104:0022h | 0104:0022h |
| Size (Bytes) | 13 | 13 | 13 |
ClearPlayerPush() »
void ClearPlayerPush(void);Immediately cancels any push the player may be experiencing, and returns the game state back to regular player control.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C9C2h | 0104:C873h | 0104:CCBFh |
| Size (Bytes) | 65 | 65 | 65 |
ClearScreen() »
void ClearScreen(void);Overwrites the EGA memory for the current draw page with solid black tiles.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:068Dh | 107F:0692h | 10C5:0690h |
| Size (Bytes) | 69 | 69 | 69 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:1B83h | 0104:1B83h | 0104:1B8Dh |
| Size (Bytes) | 175 | 175 | 175 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:0620h | 0104:0620h | 0104:062Ah |
| Size (Bytes) | 95 | 95 | 95 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:ABBEh | 0104:AA0Ah | 0104:AEBBh |
| Size (Bytes) | 223 | 223 | 223 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0201h | 107F:0206h | 10C5:0204h |
| Size (Bytes) | 166 | 166 | 166 |
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).
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:1470h | 0104:1470h | 0104:147Ah |
| Size (Bytes) | 186 | 186 | 186 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A3F4h | 0104:A240h | 0104:A6BAh |
| Size (Bytes) | 200 | 200 | 255 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:1963h | 0104:1963h | 0104:196Dh |
| Size (Bytes) | 176 | 176 | 176 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:03B6h | 0104:03B6h | 0104:03C0h |
| Size (Bytes) | 232 | 232 | 232 |
DrawFullscreenText() »
void DrawFullscreenText(char *entry_name);Draws a page of B800 text to the screen and clears space for the DOS prompt.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C4ABh | 0104:C35Ch | 0104:C7A8h |
| Size (Bytes) | 89 | 89 | 89 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:1A33h | 0104:1A33h | 0104:1A3Dh |
| Size (Bytes) | 336 | 336 | 336 |
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().
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:4531h | 107F:3B82h | 10C5:3E4Bh |
| Size (Bytes) | 236 | 220 | 220 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:06BAh | 0104:06BAh | 0104:06C4h |
| Size (Bytes) | 396 | 396 | 396 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:063Bh | 0000:063Bh | 0000:063Bh |
| Size (Bytes) | 580 | 580 | 580 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0EC6h | 107F:0ECBh | 10C5:0EC9h |
| Size (Bytes) | 120 | 120 | 120 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:1231h | 0104:1231h | 0104:123Bh |
| Size (Bytes) | 504 | 504 | 504 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A054h | 0104:9EA0h | 0104:A31Ah |
| Size (Bytes) | 143 | 143 | 143 |
DrawSBarHealthHelper() »
void DrawSBarHealthHelper(void);Wraps DrawStatusBarHealth() with the correct X,Y position for display on the screen.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:1170h | 107F:1175h | 10C5:1173h |
| Size (Bytes) | 11 | 11 | 11 |
DrawScancodeCharacter() »
void DrawScancodeCharacter(word x, word y, byte scancode);Draws a single-character representation of scancode at screen tile position (x, y).
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:2084h | 107F:1CCEh | 10C5:1DE6h |
| Size (Bytes) | 51 | 51 | 51 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:0206h | 0000:0206h | 0000:0206h |
| Size (Bytes) | 87 | 87 | 87 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:0F95h | 0104:0F95h | 0104:0F9Fh |
| Size (Bytes) | 668 | 668 | 668 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:0410h | 0000:0410h | 0000:0410h |
| Size (Bytes) | 555 | 555 | 555 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:087Fh | 0000:087Fh | 0000:087Fh |
| Size (Bytes) | 556 | 556 | 556 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:0287h | 0000:0287h | 0000:0287h |
| Size (Bytes) | 89 | 89 | 89 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:0AABh | 0000:0AABh | 0000:0AABh |
| Size (Bytes) | 131 | 131 | 131 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:44DBh | 107F:3B2Ch | 10C5:3DF5h |
| Size (Bytes) | 86 | 86 | 86 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:102Ah | 107F:102Fh | 10C5:102Dh |
| Size (Bytes) | 154 | 154 | 154 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:10CFh | 107F:10D4h | 10C5:10D2h |
| Size (Bytes) | 161 | 161 | 161 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0F3Eh | 107F:0F43h | 10C5:0F41h |
| Size (Bytes) | 110 | 110 | 110 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0FC1h | 107F:0FC6h | 10C5:0FC4h |
| Size (Bytes) | 94 | 94 | 94 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:08EDh | 107F:08F2h | 10C5:08F0h |
| Size (Bytes) | 470 | 470 | 470 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:0178h | 0104:0178h | 0104:0182h |
| Size (Bytes) | 489 | 489 | 489 |
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).
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0570h | 107F:0575h | 10C5:0573h |
| Size (Bytes) | 52 | 52 | 52 |
ExitClean() »
void ExitClean(void);Cleans up game state and exits back to DOS.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C504h | 0104:C3B5h | 0104:C801h |
| Size (Bytes) | 106 | 106 | 106 |
FadeIn() »
void FadeIn(void);Calls FadeInCustom() with a fixed delay of three game ticks per palette entry.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:05C7h | 107F:05CCh | 10C5:05CAh |
| Size (Bytes) | 8 | 8 | 8 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:051Bh | 107F:0520h | 10C5:051Eh |
| Size (Bytes) | 50 | 50 | 50 |
FadeOut() »
void FadeOut(void);Calls FadeOutCustom() with a fixed delay of three game ticks per palette entry.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:05CFh | 107F:05D4h | 10C5:05D2h |
| Size (Bytes) | 8 | 8 | 8 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:04E0h | 107F:04E5h | 10C5:04E3h |
| Size (Bytes) | 15 | 15 | 15 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:05A4h | 107F:05A9h | 10C5:05A7h |
| Size (Bytes) | 35 | 35 | 35 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:054Dh | 107F:0552h | 10C5:0550h |
| Size (Bytes) | 35 | 35 | 35 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:EF42h | 0104:EDE7h | 0104:F233h |
| Size (Bytes) | 262 | 262 | 262 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:002Fh | 0104:002Fh | 0104:002Fh |
| Size (Bytes) | 48 | 48 | 48 |
GetMapTile() »
word GetMapTile(word x, word y);Returns the data for a single map tile positioned at horizontal position x and vertical position y.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:1A13h | 0104:1A13h | 0104:1A1Dh |
| Size (Bytes) | 32 | 32 | 32 |
GetProcessorType() »
word GetProcessorType(void);Tests the system processor and returns a value indicating its model. Returns CPU_TYPE_*.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:0B2Eh | 0000:0B2Eh | 0000:0B2Eh |
| Size (Bytes) | 101 | 101 | 101 |
GroupEntryFp() »
FILE *GroupEntryFp(char *entry_name);Returns a file stream pointer to the data that a group file’s entry_name refers to.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:1411h | 107F:1416h | 10C5:1414h |
| Size (Bytes) | 452 | 452 | 452 |
GroupEntryLength() »
dword GroupEntryLength(char *entry_name);Locates a group file entry_name and returns the size of its data in bytes.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:0000h | 0104:0000h | 0104:0000h |
| Size (Bytes) | 34 | 34 | 34 |
HurtPlayer() »
void HurtPlayer(void);Deducts a bar of health from the player, and kills them if they have lost enough health.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A931h | 0104:A77Dh | 0104:AC2Eh |
| Size (Bytes) | 158 | 158 | 158 |
InitializeBackdropTable() »
void InitializeBackdropTable(void);Fills the backdropTable[] array with four identical copies of backdrop tile offset data.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C316h | 0104:C1C7h | 0104:C613h |
| Size (Bytes) | 125 | 125 | 125 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A685h | 0104:A4D1h | 0104:A982h |
| Size (Bytes) | 32 | 32 | 32 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:F839h | 0104:F6DEh | 0104:FB3Ch |
| Size (Bytes) | 79 | 79 | 79 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A38Ah | 0104:A1D6h | 0104:A650h |
| Size (Bytes) | 32 | 32 | 32 |
InitializeInterruptRate() »
void InitializeInterruptRate(void);Sets up the system timer interrupt rate depending on whether or not the AdLib hardware is enabled.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:033Ah | 107F:033Fh | 10C5:033Dh |
| Size (Bytes) | 24 | 24 | 24 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:F677h | 0104:F51Ch | 0104:F968h |
| Size (Bytes) | 450 | 450 | 468 |
InitializeMapGlobals() »
void InitializeMapGlobals();Resets many of the global variables pertaining to player movement and map/actor interactivity.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:F58Ch | 0104:F431h | 0104:F87Dh |
| Size (Bytes) | 235 | 235 | 235 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A0E3h | 0104:9F2Fh | 0104:A3A9h |
| Size (Bytes) | 33 | 33 | 33 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A51Ah | 0104:A366h | 0104:A817h |
| Size (Bytes) | 30 | 30 | 30 |
InnerMain() »
void InnerMain(int argc, char *argv[]);Main game function, once CPU testing has passed.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:F888h | 0104:F72Dh | 0104:FB8Bh |
| Size (Bytes) | 136 | 136 | 136 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:AC9Dh | 0104:AAE9h | 0104:AF9Ah |
| Size (Bytes) | 5,149 | 5,250 | 5,149 |
IsAdLibAbsent() »
bbool IsAdLibAbsent(void);Returns true if an AdLib or compatible card was NOT detected in the system.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:15D5h | 107F:15DAh | 10C5:15D8h |
| Size (Bytes) | 9 | 9 | 9 |
IsAnyKeyDown() »
bbool IsAnyKeyDown(void);Returns true if any key is currently pressed, without regard to which key it is.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E004h | 0104:DEB5h | 0104:E301h |
| Size (Bytes) | 12 | 12 | 12 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:0EB8h | 0104:0EB8h | 0104:0EC2h |
| Size (Bytes) | 221 | 221 | 221 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A4BCh | 0104:A308h | 0104:A7B9h |
| Size (Bytes) | 94 | 94 | 94 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:F422h | 0104:F2C7h | 0104:F713h |
| Size (Bytes) | 56 | 56 | 56 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:0846h | 0104:0846h | 0104:0850h |
| Size (Bytes) | 150 | 150 | 150 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:0E03h | 0104:0E03h | 0104:0E0Dh |
| Size (Bytes) | 181 | 181 | 181 |
JoinPath() »
char *JoinPath(char *dir, char *file);Combines a string dir with a string file, creating and returning an absolute pathname.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E010h | 0104:DEC1h | 0104:E30Dh |
| Size (Bytes) | 86 | 86 | 86 |
KeyboardInterruptService() »
void interrupt KeyboardInterruptService(void);Maintains the state of the keyboard variables. Called in response to the keyboard interrupt event.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C393h | 0104:C244h | 0104:C690h |
| Size (Bytes) | 117 | 117 | 117 |
LightenScreenTile() »
void LightenScreenTile(word x, word y);Lightens the entire area at the video memory tile location identified by column x and row y.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:034Ah | 0000:034Ah | 0000:034Ah |
| Size (Bytes) | 80 | 80 | 80 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:039Ah | 0000:039Ah | 0000:039Ah |
| Size (Bytes) | 106 | 106 | 106 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:02E0h | 0000:02E0h | 0000:02E0h |
| Size (Bytes) | 106 | 106 | 106 |
LoadActorTileData() »
void LoadActorTileData(char *entry_name);Loads actor tile data into system memory.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:05A4h | 0104:05A4h | 0104:05AEh |
| Size (Bytes) | 124 | 124 | 124 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:F45Ah | 0104:F2FFh | 0104:F74Bh |
| Size (Bytes) | 306 | 306 | 306 |
LoadCartoonData() »
void LoadCartoonData(char *entry_name);Loads the cartoon masked tile image data from the group file entry_name.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:1429h | 0104:1429h | 0104:1433h |
| Size (Bytes) | 71 | 71 | 71 |
LoadConfigurationData() »
void LoadConfigurationData(char *filename);Loads and parses the contents of the configuration file named filename into several global variables.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:3970h | 107F:32E7h | 10C5:316Ch |
| Size (Bytes) | 592 | 592 | 592 |
LoadDemoData() »
void LoadDemoData(void);Copies the data from the PREVDEMO.MNI group file entry into system memory.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E936h | 0104:E7DBh | 0104:EC27h |
| Size (Bytes) | 102 | 102 | 102 |
LoadFontTileData() »
void LoadFontTileData(char *entry_name, byte *dest, word length);Loads font data into system memory.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:0361h | 0104:0361h | 0104:036Bh |
| Size (Bytes) | 85 | 85 | 85 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E066h | 0104:DF17h | 0104:E363h |
| Size (Bytes) | 313 | 313 | 313 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:0569h | 0104:0569h | 0104:0573h |
| Size (Bytes) | 59 | 59 | 59 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:067Fh | 0104:067Fh | 0104:0689h |
| Size (Bytes) | 59 | 59 | 59 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:F209h | 0104:F0AEh | 0104:F4FAh |
| Size (Bytes) | 537 | 537 | 537 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C5ABh | 0104:C45Ch | 0104:C8A8h |
| Size (Bytes) | 61 | 61 | 61 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:15DEh | 107F:15E3h | 10C5:15E1h |
| Size (Bytes) | 110 | 110 | 110 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:049Eh | 0104:049Eh | 0104:04A8h |
| Size (Bytes) | 154 | 154 | 154 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C56Eh | 0104:C41Fh | 0104:C86Bh |
| Size (Bytes) | 61 | 61 | 61 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C2A8h | 0104:C159h | 0104:C5A5h |
| Size (Bytes) | 39 | 39 | 39 |
MoveAndDrawDecorations() »
void MoveAndDrawDecorations(void);Draws, advances the animation step, and moves each decoration currently running, and handles looping and ending conditions.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A70Ch | 0104:A558h | 0104:AA09h |
| Size (Bytes) | 302 | 302 | 302 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A172h | 0104:9FBEh | 0104:A438h |
| Size (Bytes) | 536 | 536 | 536 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A57Eh | 0104:A3CAh | 0104:A87Bh |
| Size (Bytes) | 263 | 263 | 263 |
MoveFountains() »
void MoveFountains(void);Iterates through each fountain defined on the current map and adjusts their position by one tile.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:1840h | 0104:1840h | 0104:184Ah |
| Size (Bytes) | 291 | 291 | 291 |
MovePlatforms() »
void MovePlatforms(void);Iterates through each platform defined on the current map and adjusts their position by one tile.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:16A4h | 0104:16A4h | 0104:16AEh |
| Size (Bytes) | 296 | 296 | 296 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:152Ah | 0104:152Ah | 0104:1534h |
| Size (Bytes) | 378 | 378 | 378 |
MovePlayerPush() »
void MovePlayerPush(void);Handles one game tick of player push movement.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:CA4Eh | 0104:C8FFh | 0104:CD4Bh |
| Size (Bytes) | 385 | 385 | 385 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:9FC3h | 0104:9E0Fh | 0104:A289h |
| Size (Bytes) | 145 | 145 | 145 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:793Ch | 0104:7788h | 0104:7C02h |
| Size (Bytes) | 9,863 | 9,863 | 9,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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A6A5h | 0104:A4F1h | 0104:A9A2h |
| Size (Bytes) | 103 | 103 | 103 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A3AAh | 0104:A1F6h | 0104:A670h |
| Size (Bytes) | 74 | 74 | 74 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:F048h | 0104:EEEDh | 0104:F339h |
| Size (Bytes) | 449 | 449 | 449 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A9CFh | 0104:A81Bh | 0104:ACCCh |
| Size (Bytes) | 158 | 158 | 158 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A104h | 0104:9F50h | 0104:A3CAh |
| Size (Bytes) | 110 | 110 | 110 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A538h | 0104:A384h | 0104:A835h |
| Size (Bytes) | 70 | 70 | 70 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:EE32h | 0104:ECD7h | 0104:F123h |
| Size (Bytes) | 272 | 272 | 272 |
PCSpeakerService() »
void PCSpeakerService(void);Sends a new fragment of sound effect data to the PC speaker.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C408h | 0104:C2B9h | 0104:C705h |
| Size (Bytes) | 163 | 163 | 163 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C0BAh | 0104:BF6Bh | 0104:C3B7h |
| Size (Bytes) | 494 | 494 | 494 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:DDC2h | 0104:DC73h | 0104:E0BFh |
| Size (Bytes) | 560 | 560 | 560 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E99Ch | 0104:E841h | 0104:EC8Dh |
| Size (Bytes) | 574 | 574 | 574 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C2CFh | 0104:C180h | 0104:C5CCh |
| Size (Bytes) | 71 | 71 | 71 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:DD56h | 0104:DC07h | 0104:E053h |
| Size (Bytes) | 108 | 108 | 108 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0062h | 107F:0067h | 10C5:0065h |
| Size (Bytes) | 151 | 151 | 151 |
ProfileCPUService() »
void interrupt ProfileCPUService(void);Benchmarks the timing characteristics of the CPU relative to the system’s Programmable Interval Timer.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:003Eh | 107F:0043h | 10C5:0041h |
| Size (Bytes) | 36 | 36 | 36 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:20B7h | 107F:1D01h | 10C5:1E19h |
| Size (Bytes) | 92 | 92 | 92 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E4D1h | 0104:E382h | 0104:E7CEh |
| Size (Bytes) | 134 | 134 | 134 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:354Eh | 107F:2EC5h | 10C5:2D4Ah |
| Size (Bytes) | 62 | 62 | 62 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E2BAh | 0104:E16Bh | 0104:E5B7h |
| Size (Bytes) | 182 | 182 | 182 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E370h | 0104:E221h | 0104:E66Dh |
| Size (Bytes) | 353 | 353 | 353 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0B81h | 107F:0B86h | 10C5:0B84h |
| Size (Bytes) | 196 | 196 | 196 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E7F4h | 0104:E699h | 0104:EAE5h |
| Size (Bytes) | 135 | 135 | 135 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:075Bh | 107F:0760h | 10C5:075Eh |
| Size (Bytes) | 402 | 402 | 402 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:06D2h | 107F:06D7h | 10C5:06D5h |
| Size (Bytes) | 137 | 137 | 137 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:3BC0h | 107F:3537h | 10C5:33BCh |
| Size (Bytes) | 288 | 288 | 288 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E8DBh | 0104:E780h | 0104:EBCCh |
| Size (Bytes) | 91 | 91 | 91 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E19Fh | 0104:E050h | 0104:E49Ch |
| Size (Bytes) | 283 | 283 | 283 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:0404h | 0000:0404h | 0000:0404h |
| Size (Bytes) | 12 | 12 | 12 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:0276h | 0000:0276h | 0000:0276h |
| Size (Bytes) | 17 | 17 | 17 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0111h | 107F:0116h | 10C5:0114h |
| Size (Bytes) | 66 | 66 | 66 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:01E6h | 0000:01E6h | 0000:01E6h |
| Size (Bytes) | 16 | 16 | 16 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0022h | 107F:0027h | 10C5:0025h |
| Size (Bytes) | 28 | 28 | 28 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:3374h | 0104:3374h | 0104:337Eh |
| Size (Bytes) | 35 | 35 | 35 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:17F1h | 0104:17F1h | 0104:17FBh |
| Size (Bytes) | 79 | 79 | 79 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:17CCh | 0104:17CCh | 0104:17D6h |
| Size (Bytes) | 37 | 37 | 37 |
SetMusicState() »
bool SetMusicState(bool state);Enables or disables AdLib output based on the value of state.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0352h | 107F:0357h | 10C5:0355h |
| Size (Bytes) | 77 | 77 | 77 |
SetPIT0Value() »
void SetPIT0Value(word value);Configures channel 0 of the system’s Programmable Interval Timer with the provided counter value.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0000h | 107F:0005h | 10C5:0003h |
| Size (Bytes) | 34 | 34 | 34 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:01F6h | 0000:01F6h | 0000:01F6h |
| Size (Bytes) | 16 | 16 | 16 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:CA03h | 0104:C8B4h | 0104:CD00h |
| Size (Bytes) | 75 | 75 | 75 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:01CDh | 0000:01CDh | 0000:01CDh |
| Size (Bytes) | 25 | 25 | 25 |
ShowAlteredFileError() »
void ShowAlteredFileError(void);Shows when the user tries to load a manipulated save file whose checksum does not match the expected value.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:3439h | 107F:2BF8h | 10C5:2D10h |
| Size (Bytes) | 42 | 42 | 42 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:461Dh | 107F:3C5Eh | 10C5:3F27h |
| Size (Bytes) | 156 | 156 | 156 |
ShowCheatMessage() »
void ShowCheatMessage(void);Displays a static dialog informing the user that they have entered the cheat code successfully and explaining the effect.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:4310h | 107F:3961h | 10C5:3C2Ah |
| Size (Bytes) | 90 | 90 | 90 |
ShowCongratulations() »
void ShowCongratulations(void);Shows a brief page of post-ending story and a pitch for another upcoming game.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | — | 107F:174Ah | 10C5:1748h |
| Size (Bytes) | — | 1 | 283 |
ShowCopyright() »
void ShowCopyright(void);Shows an abbreviated list of credits, the copyright year, and the game version.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:33CCh | 107F:2B8Bh | 10C5:2CA3h |
| Size (Bytes) | 109 | 109 | 109 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:346Ch | 107F:2EBEh | 10C5:2D43h |
| Size (Bytes) | 226 | 7 | 7 |
ShowEnding() »
void ShowEnding(void);Presents a sequence of dialogs when an episode of the game has been played to completion.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:3CE0h | 107F:3657h | 10C5:34DCh |
| Size (Bytes) | 472 | 455 | 1,556 |
ShowForeignOrders() »
void ShowForeignOrders(void);Displays five consecutive pages of ordering information for international customers.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095: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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:38A1h | 107F:3218h | 10C5:309Dh |
| Size (Bytes) | 207 | 207 | 207 |
ShowHealthHint() »
void ShowHealthHint(void);Displays a hint dialog that teaches the player what Power-Up Modules are and how they affect gameplay.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:481Dh | 107F:3E5Eh | 10C5:4127h |
| Size (Bytes) | 166 | 166 | 166 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E6EAh | 0104:E58Fh | 0104:E9DBh |
| Size (Bytes) | 266 | 266 | 266 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:11A9h | 107F:11AEh | 10C5:11ACh |
| Size (Bytes) | 328 | 328 | 328 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:3EB8h | 107F:381Eh | 10C5:3AF0h |
| Size (Bytes) | 1,112 | 323 | 314 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:258Dh | 107F:21D7h | 10C5:22EFh |
| Size (Bytes) | 857 | 857 | 857 |
ShowInstructions() »
void ShowInstructions(void);Shows a progression of five pages of dialog frames that teach the user how to play the game.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:28E6h | 107F:2530h | 10C5:2648h |
| Size (Bytes) | 1,045 | 1,045 | 1,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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0C45h | 107F:0C4Ah | 10C5:0C48h |
| Size (Bytes) | 641 | 641 | 641 |
ShowKeyboardConfiguration() »
void ShowKeyboardConfiguration(void);Shows and handles the keyboard configuration (sometimes called keyboard redefine) menu.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:2113h | 107F:1D5Dh | 10C5:1E75h |
| Size (Bytes) | 560 | 560 | 560 |
ShowLevelIntro() »
void ShowLevelIntro(word level_num);Presents the animated message “Now entering level…” followed by the map number of the passed level_num.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:4797h | 107F:3DD8h | 10C5:40A1h |
| Size (Bytes) | 134 | 134 | 134 |
ShowMemoryUsage() »
void ShowMemoryUsage(void);Displays a debug dialog with a few live statistics about available system memory and the current number of actors.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:37E1h | 107F:3158h | 10C5:2FDDh |
| Size (Bytes) | 192 | 192 | 192 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:164Eh | 107F:1651h | 10C5:164Fh |
| Size (Bytes) | 1,204 | 249 | 249 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:3746h | 107F:30BDh | 10C5:2F42h |
| Size (Bytes) | 71 | 71 | 71 |
ShowPounceHint() »
void ShowPounceHint(void);Displays a sequence of two hint dialogs that teach the player how to pounce on enemies for defense.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:46B9h | 107F:3CFAh | 10C5:3FC3h |
| Size (Bytes) | 222 | 222 | 222 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:2CFBh | 107F:2945h | 10C5:2A5Dh |
| Size (Bytes) | 540 | 540 | 540 |
ShowRescuedDNMessage() »
void ShowRescuedDNMessage(void);Displays a dialog sequence between the player and Duke Nukem (here using the short-lived but canonical spelling “Nukum”).
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:3469h | 107F:2C8Ah | 10C5:2D40h |
| Size (Bytes) | 3 | 564 | 3 |
ShowRestoreGameError() »
void ShowRestoreGameError(void);Shows when the user tries to restore a saved game whose file does not exist.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:33A2h | 107F:2B61h | 10C5:2C79h |
| Size (Bytes) | 42 | 42 | 42 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:EDD3h | 0104:EC78h | 0104:F0C4h |
| Size (Bytes) | 95 | 95 | 95 |
ShowSoundTest() »
void ShowSoundTest(void);Presents a menu that allows the user to seek through and preview each sound effect available in the game.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:3655h | 107F:2FCCh | 10C5:2E51h |
| Size (Bytes) | 241 | 241 | 241 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:EBDAh | 0104:EA7Fh | 0104:EECBh |
| Size (Bytes) | 505 | 505 | 505 |
ShowStory() »
void ShowStory(void);Shows a progression of six pages of dialog frames that explain the basic premise of the game.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:1B02h | 107F:174Ch | 10C5:1864h |
| Size (Bytes) | 1,289 | 1,289 | 1,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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:039Fh | 107F:03A4h | 10C5:03A2h |
| Size (Bytes) | 128 | 128 | 128 |
StartAdLibPlayback() »
void StartAdLibPlayback(void);Sets the enableAdLib variable to true, permitting the AdLib service to play music.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:044Eh | 107F:0453h | 10C5:0451h |
| Size (Bytes) | 7 | 7 | 7 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:200Bh | 107F:1C55h | 10C5:1D6Dh |
| Size (Bytes) | 56 | 56 | 56 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:2043h | 107F:1C8Dh | 10C5:1DA5h |
| Size (Bytes) | 52 | 52 | 52 |
StartSound() »
void StartSound(word sound_num);Queues the new sound effect identified by sound_num for playback and immediately returns.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:0538h | 0104:0538h | 0104:0542h |
| Size (Bytes) | 49 | 49 | 49 |
Startup() »
void Startup(void);Initializes the game environment and shows pre-title/copyright screens.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C67Ch | 0104:C52Dh | 0104:C979h |
| Size (Bytes) | 811 | 811 | 811 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:005Fh | 0104:005Fh | 0104:005Fh |
| Size (Bytes) | 92 | 92 | 92 |
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).
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:05D7h | 107F:05DCh | 10C5:05DAh |
| Size (Bytes) | 101 | 101 | 101 |
StopAdLib() »
void StopAdLib(void);Stops all playback from the AdLib card and restores the original system timer interrupt handler.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:041Fh | 107F:0424h | 10C5:0422h |
| Size (Bytes) | 47 | 47 | 47 |
StopAdLibPlayback() »
void StopAdLibPlayback(void);Clears all the AdLib parameter values that could produce note sounds.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0455h | 107F:045Ah | 10C5:0458h |
| Size (Bytes) | 59 | 59 | 59 |
StopMusic() »
void StopMusic(void);Silences any active music and prevents the AdLib service from processing any new chunks of music.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:2077h | 107F:1CC1h | 10C5:1DD9h |
| Size (Bytes) | 13 | 13 | 13 |
SwitchMusic() »
void SwitchMusic(Music *music);Stops any currently playing music and starts playing the music specified by music.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0490h | 107F:0495h | 10C5:0493h |
| Size (Bytes) | 80 | 80 | 80 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:0B14h | 0104:0B14h | 0104:0B1Eh |
| Size (Bytes) | 751 | 751 | 751 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:08DCh | 0104:08DCh | 0104:08E6h |
| Size (Bytes) | 568 | 568 | 568 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:02A7h | 107F:02ACh | 10C5:02AAh |
| Size (Bytes) | 147 | 147 | 147 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E557h | 0104:E408h | 0104:E854h |
| Size (Bytes) | 403 | 391 | 391 |
ToggleGodMode() »
void ToggleGodMode(void);Inverts the state of the global isGodMode debug variable and presents a dialog informing the user of the current setting.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:378Dh | 107F:3104h | 10C5:2F89h |
| Size (Bytes) | 84 | 84 | 84 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:35E0h | 107F:2F57h | 10C5:2DDCh |
| Size (Bytes) | 117 | 117 | 117 |
ToggleSound() »
void ToggleSound(void);Inverts the setting of the global isSoundEnabled variable then presents a dialog confirming the resulting state.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:358Ch | 107F:2F03h | 10C5:2D88h |
| Size (Bytes) | 84 | 84 | 84 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:A83Ah | 0104:A686h | 0104:AB37h |
| Size (Bytes) | 247 | 247 | 247 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:3466h | 107F:2C56h | 10C5:2D3Dh |
| Size (Bytes) | 3 | 52 | 3 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:3463h | 107F:2C22h | 10C5:2D3Ah |
| Size (Bytes) | 3 | 52 | 3 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0AC3h | 107F:0AC8h | 10C5:0AC6h |
| Size (Bytes) | 190 | 190 | 190 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:10C4h | 107F:10C9h | 10C5:10C7h |
| Size (Bytes) | 11 | 11 | 11 |
UpdateDrawPageSegment() »
void UpdateDrawPageSegment(void);Recalculates the segment address of the video memory where drawing should occur.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0000:025Dh | 0000:025Dh | 0000:025Dh |
| Size (Bytes) | 25 | 25 | 25 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:117Bh | 107F:1180h | 10C5:117Eh |
| Size (Bytes) | 46 | 46 | 46 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:101Fh | 107F:1024h | 10C5:1022h |
| Size (Bytes) | 11 | 11 | 11 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:C5E8h | 0104:C499h | 0104:C8E5h |
| Size (Bytes) | 148 | 148 | 148 |
WaitForAnyKey() »
byte WaitForAnyKey(void);Waits indefinitely for any key to be pressed and released, then returns the scancode of that key.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:DFF2h | 0104:DEA3h | 0104:E2EFh |
| Size (Bytes) | 18 | 18 | 18 |
WaitHard() »
void WaitHard(word delay);Pauses execution for delay game ticks with no provision for the user to skip the wait.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:04EFh | 107F:04F4h | 10C5:04F2h |
| Size (Bytes) | 19 | 19 | 19 |
WaitSoft() »
void WaitSoft(word delay);Pauses execution for delay game ticks, returning early if the user presses a key.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:0502h | 107F:0507h | 10C5:0505h |
| Size (Bytes) | 25 | 25 | 25 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:063Ch | 107F:0641h | 10C5:063Fh |
| Size (Bytes) | 81 | 81 | 81 |
WaitWallclock() »
void WaitWallclock(word loops);Creates an artificial delay using a CPU busy loop, controlled by the iteration count specified in loops.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:00F9h | 107F:00FEh | 10C5:00FCh |
| Size (Bytes) | 24 | 24 | 24 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:2473h | 107F:20BDh | 10C5:21D5h |
| Size (Bytes) | 282 | 282 | 282 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1095:2343h | 107F:1F8Dh | 10C5:20A5h |
| Size (Bytes) | 304 | 304 | 304 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 0104:E87Bh | 0104:E720h | 0104:EB6Ch |
| Size (Bytes) | 96 | 96 | 96 |
atoi() »
int atoi(const char *s);Interprets an integer value in a byte string pointed to by s.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 180C:0078h | 175A:0079h | 17CC:0082h |
| Size (Bytes) | 19 | 19 | 19 |
coreleft() »
unsigned long coreleft(void);Returns a measure of RAM not in use.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1744:0000h | 1692:0001h | 1704:000Ah |
| Size (Bytes) | 8 | 8 | 8 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1524:000Fh | 1472:0010h | 14E5:0009h |
| Size (Bytes) | 51 | 51 | 51 |
farmalloc() »
void far *farmalloc(unsigned long nbytes);Allocates a block of memory nbytes bytes long from the far heap.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 152B:0202h | 1479:0203h | 14EB:020Ch |
| Size (Bytes) | 271 | 271 | 271 |
fclose() »
int fclose(FILE *stream);Closes the given file stream. Returns 0 on success, EOF otherwise.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1611:0000h | 155F:0001h | 15D1:000Ah |
| Size (Bytes) | 208 | 208 | 208 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 15D3:00F4h | 1521:00F5h | 1594:00EEh |
| Size (Bytes) | 343 | 343 | 343 |
filelength() »
long filelength(int handle);Returns the length (in bytes) of the file associated with handle.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1778:0009h | 16C6:000Ah | 1739:0003h |
| Size (Bytes) | 69 | 69 | 69 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1573:021Bh | 14C1:021Ch | 1533:0225h |
| Size (Bytes) | 54 | 54 | 54 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 177C:000Eh | 16CA:000Fh | 173D:0008h |
| Size (Bytes) | 37 | 37 | 37 |
fputc() »
int fputc(int c, FILE *stream);Writes a character c to the given output stream stream.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 16C2:0022h | 1610:0023h | 1682:002Ch |
| Size (Bytes) | 418 | 418 | 418 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 162A:0113h | 1578:0114h | 15EB:010Dh |
| Size (Bytes) | 132 | 132 | 132 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 177F:0003h | 16CD:0004h | 173F:000Dh |
| Size (Bytes) | 47 | 47 | 47 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 15BE:0059h | 150C:005Ah | 157F:0053h |
| Size (Bytes) | 142 | 142 | 142 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1651:000Ch | 159F:000Dh | 1612:0006h |
| Size (Bytes) | 138 | 138 | 138 |
getch() »
int getch(void);Reads a single character directly from the console (keyboard), without echoing to the screen.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1798:0009h | 16E6:000Ah | 1759:0003h |
| Size (Bytes) | 27 | 27 | 27 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1814:000Bh | 1762:000Ch | 17D5:0005h |
| Size (Bytes) | 18 | 18 | 18 |
getw() »
int getw(FILE *stream);Returns the next integer (machine word) in the named input stream. It assumes no special alignment in the file.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1816:000Eh | 1764:000Fh | 17D7:0008h |
| Size (Bytes) | 124 | 124 | 124 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1827:000Fh | 1776:0000h | 17E8:0009h |
| Size (Bytes) | 52 | 52 | 52 |
main() »
void main(int argc, char *argv[]);Main entry point for the program.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 00FA:000Bh | 00FA:000Bh | 00FA:000Bh |
| Size (Bytes) | 149 | 149 | 149 |
malloc() »
void *malloc(size_t size);Allocates size bytes of uninitialized storage.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 152B:0001h | 1479:0002h | 14EB:000Bh |
| Size (Bytes) | 21 | 21 | 21 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 16A1:0056h | 15EF:0057h | 1661:0060h |
| Size (Bytes) | 32 | 32 | 32 |
movmem() »
void movmem(void *src, void *dest, unsigned length);Copies a block of length bytes from src to dest.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 16A1:0002h | 15EF:0003h | 1661:000Ch |
| Size (Bytes) | 84 | 84 | 84 |
outport() »
void outport(int portid, int value);Writes the word given by value to the hardware I/O port specified by portid.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 183F:000Ch | 178D:000Dh | 1800:0006h |
| Size (Bytes) | 12 | 12 | 12 |
outportb() »
void outportb(int portid, unsigned char value);Writes the byte given by value to the hardware I/O port specified by portid.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 183F:0018h | 178D:0019h | 1800:0012h |
| Size (Bytes) | 12 | 12 | 12 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 16BF:000Fh | 160E:0000h | 1680:0009h |
| Size (Bytes) | 36 | 36 | 36 |
putw() »
int putw(int w, FILE *stream);Outputs the integer w (machine word) to the given stream.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1842:000Dh | 1790:000Eh | 1803:0007h |
| Size (Bytes) | 117 | 117 | 117 |
rand() »
int rand(void);Returns a pseudorandom integer value between 0 and RAND_MAX (0 and RAND_MAX included).
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 184A:0013h | 1798:0014h | 180A:001Dh |
| Size (Bytes) | 40 | 40 | 40 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1814:001Dh | 1762:001Eh | 17D5:0017h |
| Size (Bytes) | 17 | 17 | 17 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 169E:0009h | 15EC:000Ah | 165F:0003h |
| Size (Bytes) | 41 | 41 | 41 |
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.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 169C:000Eh | 15EA:000Fh | 165D:0008h |
| Size (Bytes) | 27 | 27 | 27 |
strncmp() »
int strncmp(const char *s1, const char *s2, size_t maxlen);Compares at most maxlen characters of two possibly null-terminated arrays.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 1886:0009h | 17D4:000Ah | 1847:0003h |
| Size (Bytes) | 58 | 58 | 58 |
strupr() »
char *strupr(char *s);Converts lowercase letters (a–z) in string s to uppercase (A–Z). No other characters are changed.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 188A:0003h | 17D8:0004h | 184A:000Dh |
| Size (Bytes) | 37 | 37 | 37 |
textmode() »
void textmode(int newmode);Selects a specific screen text mode.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 188C:0008h | 17DA:0009h | 184D:0002h |
| Size (Bytes) | 48 | 48 | 48 |
ultoa() »
char *ultoa(unsigned long value, char *string, int radix);Converts value to a null-terminated string and stores the result in string.
| E1 | E2 | E3 | |
|---|---|---|---|
| Symbol Address | 167C:00B5h | 15CA:00B6h | 163C:00BFh |
| Size (Bytes) | 32 | 32 | 32 |