Prev: EB06 Up: Map Next: EB53
EB43: Data buffer - for each room object, creature, scenery item
This 16 byte working buffer handles each room item data set, stored at 7C00. Bytes are copied back and forth between store and buffer.
EB43 DEFB $00 Type of graphic to draw - checked & dealt with at routine at C89F:
1 = Back wall bricks/scenery, door frames, and wall-floor connector graphics. Also servant and flashing eye cursor
2 = Door
3 = Creature
4 = Interactable objects (e.g. key, chest, scroll)
5 = Missile fired by creature/warlock
6 = Corner-wall section (left)
7 = Corner-wall section (right)
8 = Missile fired by Maroc
14 = Tunnel item - boundary wall, spider or bat
15 = Viewport position for tunnel rooms
32 = Viewport position for standard rooms
EB44 DEFW $0000 Multiple use:
  • Tunnel number offset (32) stored at C627
  • Address pointer to data sets at 6790 (plus offset) stored in routine at C38E
  • Address pointer to data set for a room object (736F) in the current room (checked at DE7F)
  • Pointer to warlock & creature data sets at 6C7C and 6CB4
  • For missiles, address pointer to missile table at 6CDC
EB46 DEFB $00 Multiple uses:
0 = Back wall door
1 = Right wall door
2 = Left wall door
Connecting door set number (from 6790)
Tunnel boundary wall type, 1 (right) or 2 (left) - D702
Tunnel number 0-31 (room number minus 224) stored at C62B.
Data set number for object in room interactable objects table at 736F
Creature type setup in routine at CD96 - warlock & creature data at 6C7C:
  • 1-7 = Warlock
  • 8 = Guardian of Chaos
  • 9 = Goblin warrior
  • 10 = Goblin missile thrower
  • 11 = Wraith
  • 12 = Demon
  • 4 = Spider (creature generation in tunnel at D758)
  • 8 = Bat (creature generation in tunnel at D758)
EB47 DEFB $00 Overflow/precision byte used when calculating the item's horizontal room position ('true' position is the next - high - byte which follows this one)
Acts as a fraction/overflow value for large/small values when this item's horizontal room position is calculated at C841
Second byte of foreground scenery set (at 7F01) stored here in routine at D511
EB48 DEFB $00 Graphic horizontal position within current room, in half character (4-pixel) steps
EB49 DEFB $00 Overflow/precision byte used when calculating the item's vertical room position ('true' position is the next - high - byte which follows this one)
EB4A DEFB $00 Graphic vertical position within current room, in pixels, from top of room playing area
EB4B DEFB $00 64 - item in standard room
254 - spider/bat in tunnel room at D758
255 - other item in tunnel room (C5E7)
EB4C DEFB $00 Item's horizontal movement speed
For room scenery items, calculated at E8EE using the reverse (NEG) of Maroc's horizontal movement speed (EB04)
> 128 (negative) = left, < 128 (positive) = right
EB4D DEFB $00 Item's vertical movement speed
For room scenery items, calculated at E8EE using the reverse (NEG) of Maroc's vertical movement speed (EB05)
> 128 (negative) = up, < 128 (positive) = down
EB4E DEFB $00 Item properties byte:
  • ALL - Bit 0 (1) set indicates if any part of graphic is visible on-screen (1 = visible, 0 = not visible)
  • ITEMS - Bit 1 (2) set indicates an item is hidden (e.g. inside a chest)
  • ALL - Bit 2 (4) set if this item needs erasing on-screen, before being re-drawn (e.g. item has changed frame/moved)
  • ITEMS - Bit 3 (8) indicates (when set) that an item is flying/falling - e.g. an item thrown/dropped by the servant (see CB5B)
  • ITEMS - Bit 4 (16) set = item currently carried by servant
  • ITEMS - Bit 6 (64) = item is portable
  • DOORS - Bit 3 (8) set (1) if door is open, reset (0) if closed
  • DOORS - Bit 5 (32) set when a door opening/closing is triggered
  • DOORS - Bit 6 (64) set if door is now opening/closing
  • DOORS - Bit 7 (128) set - Maroc has just gone through a doorway
  • MISSILES - Bits 5-8 - length of missile's existence on-screen before disappearing
  • CREATURES - Bit 5 (32) - creature is disintegrating, will need removing post-animation
  • WARLOCKS - Bit 6 (64) trigger warlock disappearance post-materialization animation (CE89) - successful object trade
  • WARLOCKS - Bit 7 (128) trigger warlock's appearance, post-materialization animation
EB4F DEFB $00 Pre-graphics data byte (see Graphic properties):
  • Bits 0-3 - graphics frame
  • Bit 5 is set - graphic is 'flippable'
  • Bit 6 is set = graphic has a left/right facing direction (e.g. mouse, goblins)
  • Bit 7 is set = graphic is animated
EB50 DEFB $00 Graphic address frame offset (>1 for mirrored graphics frames)
Used at E0C2 to calculate the graphics address pointer offset for the graphic in the table at 97C3
Offset address = [(n-1)*2] - e.g. a byte value of 1 = no offset, byte value of 4 = offset of 6 bytes, or 3 x 2-byte pointer addresses
Bit 3 (8) - used for creatures with left/right facing graphics, to indicate if they are facing right (set) or left (not set) - see E35B
EB51 DEFW $0000 Graphic address pointer (in table at 97C3), including any offset for the correct graphic frame
Prev: EB06 Up: Map Next: EB53