• Contact
  • Journal
  • Home
  • CoCo
  • Madness & Minotaur
  • RAMUse
  • Site
  • Page
  • Amiga
    • Rainbow Islands
      • 1loader-dec
      • 1loader
      • boot
      • orig-boot
      • Journal
  • Arcade
    • Asteroids 80%
      • Hardware
      • RAMUse
      • Code

      • DVG
      • VectorROM

      • Journal
    • Crazy Climber 1%
      • BigSpriteGraphics.pdf
      • Buildings.pdf
      • cclimber.asm
      • CharEnc.inc
      • CrazyClimberMemoryMapInfo.pdf
      • GraphicsAndCharacterAssetInfo.pdf
      • MemoryMap.inc
    • Defender 75%
      • RAMUse
      • Hardware
      • Bank1
      • Bank2
      • Bank3
      • Bank7
      • BankFixed
      • Mapping.txt
      • SoundHardware
      • SoundRAMUse
      • SoundCode
      • Defender-Theory-Early.pdf
      • Defender-Theory-Later.pdf
      • Defender.CPU.jpg
      • Defender.ROM.B&W.jpg
      • Defender.Vid.B&W.jpg
      • SoundROM.txt
    • Frogger (Sound)
      • SoundHardware
      • SoundRAMUse
      • SoundCode

      • Hardware
      • RAMUse
      • Code

      • GFX

      • Journal
    • Galaga 5%
      • CPU1 (Main)
      • CPU2 (Secondary)
      • CPU3 (Sound)
      • GFX1 (Characters)
      • GFX2 (Sprites)
      • PROMcolors
      • PROMpaletteChar
      • PROMpaletteSprite

      • CPU1Fix

      • Journal
    • Moon Patrol 75%
      • Hardware
      • RAMUse
      • Code

      • GFX1 (Text)
      • GFX2 (Sprites)
      • GFX3 (Mountains)
      • GFX4 (Hills)
      • GFX5 (City)
      • ImageBackgroundColors
      • SpriteColors
      • SpriteColorSets
      • TextColors

      • MoonPatrolSound
      • SoundHardware
      • SoundRAMUse
      • SoundCode

      • Journal
    • Omega Race 10%
      • Hardware
      • RAMUse
      • MainBoard

      • SoundHardware
      • SoundRAMUse
      • SoundBoard

      • DVGPROM
      • VectorROM

      • Journal
    • Phoenix 35%
      • Hardware
      • RAMUse
      • Code

      • Background
      • Foreground

      • Journal

      • Scramble HHi
        • phoenixj-func-main2.pdf
        • phoenixj-func-main2.scap
        • phoenixj.asm-may2025.txt
        • phoenixj.asm-may2025.txt.pdf
    • Space Invaders
      • Hardware
      • RAMUse
      • Code

      • Journal
    • Time Pilot (Sound)
      • SoundHardware
      • SoundRAMUse
      • SoundCode

      • Hardware
      • RAMUse
      • Code

      • Journal
    • Sea Wolf 1%
      • Hardware
      • RAMUse
      • Code

      • Journal
    • Scramble 1%
      • SoundHardware
      • SoundRAMUse
      • SoundCode

      • Journal
  • Atari2600
    • Stella (Hardware Info)
    • Asteroids 5%
      • RAMUse
      • Code

      • Journal
    • Battle Zone 1%
      • RAMUse
      • Code

      • Journal
    • Chess 1%
      • RAMUse
      • Code

      • Journal
    • Combat 10%
      • RAMUse
      • Code
      • CodePAL

      • Journal
    • Double Gap
      • Code
      • DoubleGap.asm

      • Journal
    • Entombed 1%
      • RAMUse
      • Code

      • Journal
    • ET 1%
      • RAMUse
      • Code

      • Journal
    • Burger Time 1%
      • RAMUse
      • CodeBank0
      • CodeBank1
      • CodeBank2
      • CodeBank3
      • CodeBank4
      • CodeBank5
      • CodeBank6
      • CodeBank7

      • Journal
    • Missile Command 1%
      • RAMUse
      • Code

      • Journal
    • Space Invaders 1%
      • RAMUse
      • Code

      • Journal
  • CoCo
    • Hardware
    • Early Work
    • Pyramid
      • RAMUse
      • Code

      • Journal
    • Raaka Tu
      • RAMUse
      • Code

      • Journal
    • Bedlam
      • RAMUse
      • Code

      • Journal
    • Madness & Minotaur
      • Walk Through
        • after_start.txt
        • after_start.cas
        • after_1.txt
        • after_1.cas
        • after_2.txt
        • after_2.cas
        • after_3.txt
        • after_3.cas
        • after_4.txt
        • after_4.cas
        • after_5.txt
        • after_5.cas
        • after_6.txt
        • after_6.cas
        • after_7.txt
        • after_7.cas
        • after_8.txt
        • after_8.cas
        • after_9.txt
        • after_9.cas
        • after_10.txt
        • after_10.cas
        • after_11.txt
        • after_11.cas
        • after_12.txt
        • after_12.cas
        • after_13.txt
        • after_13.cas
        • after_14.txt
        • after_14.cas
        • after_15.txt
        • after_15.cas
        • after_16.txt
        • after_16.cas
        • after_17.txt
        • after_17.cas
        • after_18.txt
        • after_18.cas
        • after_19.txt
        • after_19.cas
        • after_20.txt
        • after_20.cas
        • after_21.txt
        • after_21.cas
        • after_22.txt
        • after_22.cas
        • after_23.txt
        • after_23.cas
        • after_24.txt
        • after_24.cas
        • after_25.txt
        • after_25.cas
      • RAMUse
      • Code

      • SaveGameViewer

      • Journal
    • Mega-Bug
      • RAMUse
      • Code

      • Journal
    • Daggorath
      • RAMUse
      • Code

      • Level Maps

      • Journal
    • Downland 5%
      • RAMUse
      • Code

      • Journal
    • Audio Analyzer 5%
      • RAMUse
      • Code

      • Journal
    • Doubleback
      • RAMUse
      • Code

      • Journal
  • NES
    • Zelda 5%
      • Hardware
      • RAMUse
      • Bank0
      • Bank1
      • Bank2
      • Bank3
      • Bank4
      • Bank5
      • Bank6
      • Bank7

      • Journal
    • Kid Icarus 1%
      • Hardware
      • RAMUse
      • Bank0
      • Bank1
      • Bank2
      • Bank3
      • Bank4
      • Bank5
      • Bank6
      • Bank7

      • Journal
  • Gameboy
    • Hardware
    • Link's Awakening 1%
      • RAMUse
      • Bank00
      • Bank01
      • Bank02
      • Bank03
      • Bank04
      • Bank05
      • Bank06
      • Bank07
      • Bank08
      • Bank09
      • Bank0A
      • Bank0B
      • Bank0C
      • Bank0D
      • Bank0E
      • Bank0F
      • Bank10
      • Bank11
      • Bank12
      • Bank13
      • Bank14
      • Bank15
      • Bank16
      • Bank17
      • Bank18
      • Bank19
      • Bank1A
      • Bank1B
      • Bank1C
      • Bank1D
      • Bank1E
      • Bank1F

      • Journal
    • Tetris 1%
      • RAMUse
      • Code

      • Journal
  • TRS80
    • Hardware
    • HauntedHouse
      • RAMUse1
      • Code1
      • RAMUse2
      • Code2

      • Journal
    • Pyramid
      • RAMUse
      • Code

      • RAMUse1
      • Code1

      • Journal
    • RaakaTu
      • RAMUse
      • Code

      • Journal
    • Bedlam
      • RAMUse
      • Code

      • Journal
  • Virus
    • Morris Worm 1%
      • Journal
    • Stoned
      • Journal

  • Tools
    • Blend
      • blend.zip

      • Journal
  • RAM Use
  • Blocked Rooms
  • Random Number Seeds
  • Stack
  • Screen Memory
  • Game code
  • Blocked Passages
  • Protected Objects Lists

RAM Use

Init clears 00-66 inclusive. The area is in BASIC's memory usage. The code uses some of BASIC's routines, but this first area of memory is for the BASIC interpreter. The code can overwrite this area without interfering with the BASIC calls it uses.

00 curRoom current room
01 lastRoom last room
02 dirBits direction command bit pattern
03 inpLen length of user input
04 weight weight of pack
05 condition physical condition
06 bulk bulk of pack
07 nounObjNum decoded object number from noun
08 fallOdds Accumulated odds of falling (0, 1/8, 2/8, 3/8 ... with each step in the dark)
09 stingCount Scorpion sting (0=not, not-zero=number of times)
0A lampOn 0 if lamp is off, not 0 is on
0B spacesOnEnd Count of spaces at the end of the row in print routine
0C downFail Set by BetweenRoomACDE if a climb-down failed ... abort the movement
0D pushedBack pushed back flag (nobody reads this)
0E hydraStatus HydraStatus: AA = tied up, 1 = dead, 0 = free
0F hydraPushed HydraPushedUsBack (must be set to TIE HYDRA) 0 = not, 1 = hydra blocked last move (cleared every direction command)
10 rocksMoved 1 if "pile of rocks" has been moved to us
11 rocksExposed 1 if "pile of rocks" has been exposed with OKKAN
12 drapesOpen 1 if south passage in room 9 is open. 0 if closed. (open with drapes)
13 auraTimer Count down timer until we can walk through aura and heal again (10 seconds each time)
14 lampStripped 1 if lamp has been blown from pack by entering room routine or failed jump
15 treas0BReleased 1 if treasure "$0B" has been released
16 m16 NEVER USED
17 randPass Random number for passage-description printing
18:19 randPoint Rolling pointer to BASIC rom for random numbers
1A numAdviceGiven Number of times advice has been given 0-13

Oracle advice table. Object number is stored here. Upper bit set if advice has already been given for this protected object.

1B m1B Oracle advice object 0
1C m1C Oracle advice object 1
1D m1D Oracle advice object 2
1E m1E Oracle advice object 3
1F m1F Oracle advice object 4
20 m20 Oracle advice object 5
21 m21 Oracle advice object 6
22 m22 Oracle advice object 7
23 m23 Oracle advice object 8
24 m24 Oracle advice object 9
25 m25 Oracle advice object 10
26 m26 Oracle advice object 11
27 m27 Oracle advice object 12
28 score Calculated score
29 m29 NEVER USED
2A verbNum Verb command number
2B nounNum Noun word number
2C ratObject Trigger object to make packrat drop treasure
2D m2D NEVER USED
2E holderACDE Holder value for BetweenRoomACDE
2F temporary General use lots of places
30 m30 Used in InPack
31 m31 Used in InPack
32 enteredFog Set by EnteringRoomAction_q (MYSTERIOUS FOG)
33 hydraRoom Current room of HYDRA
34 ishtarUses Number of times more ISHTAR can be used. Random init to 1-4.
35 smallPitRoom Room for small pit in corner of room
36 ledgeRoom Room of LEDGE
37 rocksRoom Room of "pile of rocks" (OKKAN spell)
38:39 lampOil Oil level of lamp (0 is empty)
3A lampFills Number of times lamp can be filled (init to $34 + 4)
3B:3C m3B Pointer to start of input on screen
3D m3D Used in Random-between-0-and-B
3E drinkTimer Time until we can drink from bottle to heal again (16 seconds)
3F ticksTillSec Interrupt divisor count (60 ticks till one seconds)
40 secsTillMin Interrupt divisor count (60 ticks till one minute)
41 minotaurTimer Minotaur state timer
42 trogTimer Troglodyte state timer
43 satyrTimer Satyr state timer
44 scorpTimer Scorpion state timer
45 fogClock Fog clock runs in room MYSTERIOUS FOG. At 6 seconds we get warned. At 10 we die.
46 akhiromMins Minutes of immunity left (AKHIROM gives 3 minutes)
47 enterRcount Count of times entering room with EnteringRoomAction_r. 3 times and treasure drops.
48 m48 NEVER USED
49 m49 NEVER USED
4A:4B seconds Continual second counter (nobody uses it)
4C:4D secsInRoom Counts the time in a room. Once 15, no going BACK
4E m4E NEVER USED
4F m4F NEVER USED
50 m50 NEVER USED
51 m51 Used in Oracle advice
52 m52 Used in killing Hydra
53 m53 Used in sound effects
54:55 m54 Used in tape-write
56:65 m56 16 byte buffer for decode and auto-word wrap
66 m66 NEVER USED

This area of BASIC's memory includes tape and cursor information that the ROM calls use.

67:87 m67 BASIC vars
88:89 scrCursor Screen cursor
8A:8B zeroWord BASIC always 0
8C:F3 m8C BASIC vars

Blocked Rooms

Shifting buffer of rooms blocked by Shaking Ground. As new rooms are blocked at random, they go on the end of the list. Rooms are pulled off of the front of the list and unblocked completely. This keeps lots of shaking from blocking up the floors over time.

F3:FF blkRooms Blocked rooms (in BASIC's "unused variables" section)

Random Number Seeds

0186:018D seeds Random-number bytes (in BASIC's extension vectors)

Stack

Stack builds from 01FF towards 0 (in BASIC's cassette file data buffer) |

Screen Memory

0200:03FF screen0 Screen 0 (in some buffers used by BASIC)
0400:05FF screen1 Screen 1

Game code

Game code loads from tape to 0300:3EB7.

Blocked Passages

3EB8:3FB7 blocks Block passage table

Protected Objects Lists

3FB8:3FFF protections Protected object lists