SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 1 ************ OBJECT LISTING ************ FILE NAME: c:\users\jdean\fx-9860g\mines\Mines.c SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1 /* Mines.c 2 Mines Mines.c 3 Mines.c 4 Copyright (c) 1979, 2005-2011 James L. Dean Mines.c 5 Mines.c 6 Version 2011.01.17.01 released 1/17/2011 Mines.c 7 Mines.c 8 This C program and associated executable may be distributed or used without Mines.c 9 payment to its author. Derivative works must credit its author. Mines.c 10 Mines.c 11 "Mines" lets you explore mines. The mine you explore is determined by a Mines.c 12 mine number specified at the beginning of a game. Mines.c 13 Mines.c 14 The object of a game is to visit all of the rooms and return all of the Mines.c 15 treasures to the entrance without making too many moves. Mines.c 16 Mines.c 17 In a mine, the passages are straight. So, for example, if you go North to Mines.c 18 leave a room, you can go South to reenter it. The rooms are not evenly spaced. Mines.c 19 However, the distance between adjacent rooms is always a multiple of the minimum Mines.c 20 distance between adjacent rooms. Mines.c 21 */ Mines.c 22 Mines.c 23 #include "fxlib.h" Mines.c 24 Mines.c 25 #define TRUE 1 Mines.c 26 #define FALSE 0 Mines.c 27 Mines.c 28 #define NULL 0 Mines.c 29 Mines.c 30 #define NUM_ROOMS 99 Mines.c 31 #define NUM_TREASURES 15 Mines.c 32 Mines.c 33 #define SENTENCE_LEN 1024 /* must be larger than the length of the longest sentence */ Mines.c 34 #define PARAGRAPH_LEN 8192 /* must be at least 5*SENTENCE_LEN */ Mines.c 35 Mines.c 36 typedef char int8; Mines.c 37 typedef short int int16; Mines.c 38 typedef int intC; Mines.c 39 typedef int int32; Mines.c 40 Mines.c 41 typedef struct RoomNode Mines.c 42 { Mines.c 43 char *szDescription; Mines.c 44 int16 nChokepoint; Mines.c 45 int8 bMined; Mines.c 46 int8 bVisited; Mines.c 47 union Mines.c 48 { Mines.c 49 struct Mines.c 50 { Mines.c 51 int16 pPassageNorth; Mines.c 52 int16 pPassageSouth; Mines.c 53 int16 pPassageEast; Mines.c 54 int16 pPassageWest; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 2 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 55 int16 pPassageUp; Mines.c 56 int16 pPassageDown; Mines.c 57 } Passage; Mines.c 58 int16 pPassage [6]; Mines.c 59 } Adjacent; Mines.c 60 } RoomRec; Mines.c 61 Mines.c 62 typedef struct TreasureNode Mines.c 63 { Mines.c 64 char *szTreasure; Mines.c 65 char *szGuardian; Mines.c 66 char *szWeapon; Mines.c 67 int8 bSlain; Mines.c 68 int16 pRoomTreasure; Mines.c 69 int16 pRoomWeapon; Mines.c 70 } TreasureRec; Mines.c 71 Mines.c 72 typedef struct PassageNode Mines.c 73 { Mines.c 74 int8 bBlocked; Mines.c 75 int16 pTreasureGuardian; Mines.c 76 int16 pRoom1; Mines.c 77 int16 pRoom2; Mines.c 78 } PassageRec; Mines.c 79 Mines.c 80 typedef struct PathStackNode Mines.c 81 { Mines.c 82 int16 pRoom; Mines.c 83 int16 pPassageUsedToEnterRoom; Mines.c 84 int8 nDirectionUsedToEnterRoom; Mines.c 85 int16 pNext; Mines.c 86 } PathStackRec; Mines.c 87 Mines.c 88 typedef struct FindPathLocalsStackNode Mines.c 89 { Mines.c 90 int8 bRoomAlreadyInStack; Mines.c 91 int8 nDirection1; Mines.c 92 int8 nDirection2; Mines.c 93 int8 nDirection3; Mines.c 94 int8 nDirectionRandom [6]; Mines.c 95 int16 nPathLen; Mines.c 96 int16 pPathStack; Mines.c 97 int16 pNext; Mines.c 98 } FindPathLocalsStackRec; Mines.c 99 Mines.c 100 typedef struct FindPathParametersStackNode Mines.c 101 { Mines.c 102 int16 pRoom; Mines.c 103 int8 nDirectionUsedToEnterRoom; Mines.c 104 int8 nReturnAddress; Mines.c 105 int16 pNext; Mines.c 106 } FindPathParametersStackRec; Mines.c 107 Mines.c 108 int AddIn_main(int,unsigned short); Mines.c 109 static void Carry(int16,int8,int8 *); Mines.c 110 static intC Command(void); Mines.c 111 static void DisplayHelp(int8 *); SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 3 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 112 static void DisplayLargeFontParagraph(char *); Mines.c 113 static void DisplayParagraph(char *); Mines.c 114 static void DisplaySmallFontParagraph(char *); Mines.c 115 static void DisplayText(char *,int8 *); Mines.c 116 static void ExcavateMine(int16,int16,int8,int16 *,int16 *,int8 *); Mines.c 117 static void FindPathToEntrance(int16,int16,char **); Mines.c 118 static void HideTreasuresAndWeapons(int16,int16 *,int8); Mines.c 119 static void InitializeGlobals(void); Mines.c 120 static void Inventory(int16,int8,int8 *); Mines.c 121 static void IToA(int16,char *); Mines.c 122 static void Leave(int16,int8,int8 *); Mines.c 123 static void ListCommands(int8 *); Mines.c 124 static void ListPassages(int16,int8 *); Mines.c 125 static void ListTreasuresAndWeapons(int16,int8,int8 *); Mines.c 126 static void Move(int16 *,int8,int16 *,int8 *); Mines.c 127 static void PlayGame(int16,int16,int16 *,int16,int8,int8 *); Mines.c 128 static void Points(int16,int16,int16 *,int8,int16,int8,int8 *); Mines.c 129 static int16 RandomNumber(void); Mines.c 130 static intC ReadChar(void); Mines.c 131 static void SeedRandomNumberGenerator(void); Mines.c 132 static void ShuffleRoomDescriptions(int16,char **); Mines.c 133 static void StrCat(char *,char *); Mines.c 134 static void StrCpy(char *,char *); Mines.c 135 static int16 StrLen(char *); Mines.c 136 static intC ToUpper(intC); Mines.c 137 static void WayOut(int16,int16,int16,int16 *,int8,int8 *); Mines.c 138 static void WriteChar(char); Mines.c 139 Mines.c 140 static int8 m_bUseSmallFont = 0; Mines.c 141 static FindPathLocalsStackRec *m_FindPathLocal; Mines.c 142 static FindPathParametersStackRec *m_FindPathParameter; Mines.c 143 static int8 m_nAddIndex = 0; Mines.c 144 static int8 m_nDirectionOpposite [6] = {1,0,3,2,5,4}; Mines.c 145 static int16 m_nFindPathLocals = 0; Mines.c 146 static int16 m_nFindPathParameters = 0; Mines.c 147 static int16 m_nLinesPerPage = 8; Mines.c 148 static int8 m_nLinesWritten = 0; Mines.c 149 static int16 m_nMaxLineLen = 21; Mines.c 150 static int16 m_nPassages = 0; Mines.c 151 static int16 m_nPaths = 0; Mines.c 152 static int8 m_nReplaceIndex = 0; Mines.c 153 static int16 m_nRooms = 0; Mines.c 154 static int32 m_nRN [8]; Mines.c 155 static int32 m_nRNPartialSum = 0; Mines.c 156 static int32 m_nXMax = 127; Mines.c 157 static PassageRec *m_Passage; Mines.c 158 static PathStackRec *m_Path; Mines.c 159 static int16 *m_pRoomWithName; Mines.c 160 static RoomRec *m_Room; Mines.c 161 static char *m_szDirection[6] Mines.c 162 = {"north","south","east","west","up","down"}; Mines.c 163 static char *m_szMsg; Mines.c 164 static char *m_szParagraph; Mines.c 165 static char **m_szRoom; Mines.c 166 static char *m_szWayOut; Mines.c 167 static TreasureRec m_Treasure [NUM_TREASURES] Mines.c 168 = { SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 4 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 169 { Mines.c 170 "bag full of gold coins", Mines.c 171 "gorgon", Mines.c 172 "mirror", Mines.c 173 0, Mines.c 174 -1, Mines.c 175 -1 Mines.c 176 }, Mines.c 177 { Mines.c 178 "large blue-white diamond", Mines.c 179 "grizzly bear", Mines.c 180 "pepper spray dispenser", Mines.c 181 0, Mines.c 182 -1, Mines.c 183 -1 Mines.c 184 }, Mines.c 185 { Mines.c 186 "sixty carat emerald", Mines.c 187 "vampire", Mines.c 188 "wooden stake", Mines.c 189 0, Mines.c 190 -1, Mines.c 191 -1 Mines.c 192 }, Mines.c 193 { Mines.c 194 "platinum crucifix", Mines.c 195 "crocodile", Mines.c 196 "roll of duct tape", Mines.c 197 0, Mines.c 198 -1, Mines.c 199 -1 Mines.c 200 }, Mines.c 201 { Mines.c 202 "string of pearls", Mines.c 203 "giant crayfish", Mines.c 204 "jar of Zatarain's Crab Boil", Mines.c 205 0, Mines.c 206 -1, Mines.c 207 -1 Mines.c 208 }, Mines.c 209 { Mines.c 210 "Ming vase", Mines.c 211 "troll", Mines.c 212 "elfin sword", Mines.c 213 0, Mines.c 214 -1, Mines.c 215 -1 Mines.c 216 }, Mines.c 217 { Mines.c 218 "list of the next ten winners of the Kentucky Derby", Mines.c 219 "werewolf", Mines.c 220 "silver bullet", Mines.c 221 0, Mines.c 222 -1, Mines.c 223 -1 Mines.c 224 }, Mines.c 225 { SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 5 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 226 "pile of rubies", Mines.c 227 "harpy", Mines.c 228 "crossbow", Mines.c 229 0, Mines.c 230 -1, Mines.c 231 -1 Mines.c 232 }, Mines.c 233 { Mines.c 234 "previously undiscovered Rembrandt painting", Mines.c 235 "cobra", Mines.c 236 "flute fashioned from a dried-out pumpkin", Mines.c 237 0, Mines.c 238 -1, Mines.c 239 -1 Mines.c 240 }, Mines.c 241 { Mines.c 242 "ounce of antimatter in magnetic containment", Mines.c 243 "ferocious snail", Mines.c 244 "bag of salt", Mines.c 245 0, Mines.c 246 -1, Mines.c 247 -1 Mines.c 248 }, Mines.c 249 { Mines.c 250 "stack of silver bars", Mines.c 251 "vicious Doberman pinscher", Mines.c 252 "soporific-laced dog biscuit", Mines.c 253 0, Mines.c 254 -1, Mines.c 255 -1 Mines.c 256 }, Mines.c 257 { Mines.c 258 "set of ivory tusks", Mines.c 259 "colossal cockroach", Mines.c 260 "block of boric acid", Mines.c 261 0, Mines.c 262 -1, Mines.c 263 -1 Mines.c 264 }, Mines.c 265 { Mines.c 266 "Holland and Holland double rifle chambered for .600 Nitro Express", Mines.c 267 "giant", Mines.c 268 "slingshot", Mines.c 269 0, Mines.c 270 -1, Mines.c 271 -1 Mines.c 272 }, Mines.c 273 { Mines.c 274 "ancient Greek statue", Mines.c 275 "Trekkie", Mines.c 276 "recording of Leonard Nimoy singing \"Proud Mary\"", Mines.c 277 0, Mines.c 278 -1, Mines.c 279 -1 Mines.c 280 }, Mines.c 281 { Mines.c 282 "five kilograms of plutonium in a lead container", SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 6 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 283 "titanic ant", Mines.c 284 "Fresnel lens", Mines.c 285 0, Mines.c 286 -1, Mines.c 287 -1 Mines.c 288 } Mines.c 289 }; Mines.c 290 static m_ucCharWidth [256] = Mines.c 291 { Mines.c 292 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, Mines.c 293 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, Mines.c 294 4, 2, 4, 6, 6, 5, 5, 3, 3, 3, 6, 4, 3, 4, 4, 4, Mines.c 295 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, Mines.c 296 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 6, 6, 4, Mines.c 297 4, 6, 4, 4, 4, 4, 4, 6, 4, 4, 4, 3, 4, 3, 4, 4, Mines.c 298 3, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 6, 5, 4, Mines.c 299 4, 4, 5, 4, 4, 4, 4, 6, 4, 4, 4, 4, 2, 4, 5, 6, Mines.c 300 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, Mines.c 301 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, Mines.c 302 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, Mines.c 303 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, Mines.c 304 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, Mines.c 305 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, Mines.c 306 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, Mines.c 307 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 Mines.c 308 }; Mines.c 309 Mines.c 310 static void InitializeGlobals( P 00000000 __$InitializeGlobals: ; function: InitializeGlobals ; frame size=0 Mines.c 311 void) Mines.c 312 { Mines.c 313 m_nLinesWritten=(int8) 0; 00000000 D35C MOV.L L2026,R3 ; __$m_nLinesWritten 00000002 E400 MOV #0,R4 Mines.c 314 m_nFindPathLocals=(int16) 0; 00000004 D25C MOV.L L2026+4,R2 ; __$m_nFindPathLocals 00000006 2340 MOV.B R4,@R3 00000008 2241 MOV.W R4,@R2 Mines.c 315 m_nFindPathParameters=(int16) 0; 0000000A D15C MOV.L L2026+8,R1 ; __$m_nFindPathParameters Mines.c 316 m_nPassages=(int16) 0; 0000000C D35C MOV.L L2026+12,R3; __$m_nPassages 0000000E 2141 MOV.W R4,@R1 00000010 2341 MOV.W R4,@R3 Mines.c 317 m_nPaths=(int16) 0; 00000012 D25C MOV.L L2026+16,R2; __$m_nPaths Mines.c 318 m_nReplaceIndex=(int8) 0; 00000014 D15C MOV.L L2026+20,R1; __$m_nReplaceIndex 00000016 2241 MOV.W R4,@R2 00000018 2140 MOV.B R4,@R1 Mines.c 319 m_nRooms=(int16) 0; 0000001A D35C MOV.L L2026+24,R3; __$m_nRooms Mines.c 320 m_nRNPartialSum=(int32) 0; 0000001C D25C MOV.L L2026+28,R2; __$m_nRNPartialSum 0000001E 2341 MOV.W R4,@R3 00000020 2242 MOV.L R4,@R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 7 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 321 m_szRoom[0]="You\'re in a spherical room."; 00000022 D45C MOV.L L2026+32,R4; __$m_szRoom 00000024 D05C MOV.L L2026+36,R0; L408 00000026 6142 MOV.L @R4,R1 00000028 2102 MOV.L R0,@R1 Mines.c 322 m_szRoom[1]="You\'re in the hall of bones. Dinosaur bones are everywhere."; 0000002A 6342 MOV.L @R4,R3 0000002C D15B MOV.L L2026+40,R1; L409 0000002E 1311 MOV.L R1,@(4,R3) Mines.c 323 m_szRoom[2]="You\'re in a subway tunnel. Don't touch that third rail!"; 00000030 6342 MOV.L @R4,R3 00000032 D15B MOV.L L2026+44,R1; L410 00000034 1312 MOV.L R1,@(8,R3) Mines.c 324 m_szRoom[3]="You\'re in a railroad tunnel. A whistle wails in the distance."; 00000036 6342 MOV.L @R4,R3 00000038 D15A MOV.L L2026+48,R1; L411 0000003A 1313 MOV.L R1,@(12,R3) Mines.c 325 m_szRoom[4]="You\'re in an elfin quiche factory. The elves are out mowing spinach."; 0000003C 6342 MOV.L @R4,R3 0000003E D15A MOV.L L2026+52,R1; L412 00000040 1314 MOV.L R1,@(16,R3) Mines.c 326 m_szRoom[5]="You\'re in an abandoned Plymouth plant. Beware of Road Runners and Barracudas."; 00000042 6342 MOV.L @R4,R3 00000044 D159 MOV.L L2026+56,R1; L413 00000046 1315 MOV.L R1,@(20,R3) Mines.c 327 m_szRoom[6]="You\'re in an abandoned Dodge plant. There is a Dart embedded in the North wall."; 00000048 6342 MOV.L @R4,R3 0000004A D159 MOV.L L2026+60,R1; L414 0000004C 1316 MOV.L R1,@(24,R3) Mines.c 328 m_szRoom[7]="You\'re in a mouse's nest. You'd best exhale; this is a small room."; 0000004E 6342 MOV.L @R4,R3 00000050 D158 MOV.L L2026+64,R1; L415 00000052 1317 MOV.L R1,@(28,R3) Mines.c 329 m_szRoom[8]="You\'re in a giant crayfish hole. An immense chicken neck is hanging from a rope."; 00000054 6342 MOV.L @R4,R3 00000056 D158 MOV.L L2026+68,R1; L416 00000058 1318 MOV.L R1,@(32,R3) Mines.c 330 m_szRoom[9]="You\'re in an abandoned coal mine. Beware of methane."; 0000005A 6342 MOV.L @R4,R3 0000005C D157 MOV.L L2026+72,R1; L417 0000005E 1319 MOV.L R1,@(36,R3) Mines.c 331 m_szRoom[10]="You\'re in the hall of winds. Presently, the wind is from the south."; 00000060 6342 MOV.L @R4,R3 00000062 D157 MOV.L L2026+76,R1; L418 00000064 131A MOV.L R1,@(40,R3) Mines.c 332 m_szRoom[11]="You\'re in a stove pipe!"; 00000066 6342 MOV.L @R4,R3 00000068 D156 MOV.L L2026+80,R1; L419 0000006A 131B MOV.L R1,@(44,R3) Mines.c 333 m_szRoom[12]="You\'re in a totally darkened room. Although you can see nothing, the sound of dripping + water echoes from the walls."; 0000006C 6342 MOV.L @R4,R3 0000006E D156 MOV.L L2026+84,R1; L420 00000070 131C MOV.L R1,@(48,R3) Mines.c 334 m_szRoom[13]="You\'re in an industrial waste site. Hold your breath and don't touch anything."; 00000072 6342 MOV.L @R4,R3 00000074 D155 MOV.L L2026+88,R1; L421 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 8 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000076 131D MOV.L R1,@(52,R3) Mines.c 335 m_szRoom[14]="You\'re in the warehouse for an extremely popular brand of home computer. Tacky plastic + enclosures abound."; 00000078 6342 MOV.L @R4,R3 0000007A D155 MOV.L L2026+92,R1; L422 0000007C 131E MOV.L R1,@(56,R3) Mines.c 336 m_szRoom[15]="You\'re in a hobbit's bedroom. The hobbit does not look pleased!"; Mines.c 337 m_szRoom[16]="You\'re in a troll sewerage processing plant. The air quality is not good."; 0000007E E040 MOV #64,R0 Mines.c 338 m_szRoom[17]="You\'re in a rabbit hole. There is a jar of marmalade on a shelf in the wall."; 00000080 D256 MOV.L L2026+104,R2; L425 00000082 6342 MOV.L @R4,R3 00000084 D153 MOV.L L2026+96,R1; L423 00000086 131F MOV.L R1,@(60,R3) 00000088 6342 MOV.L @R4,R3 0000008A D153 MOV.L L2026+100,R1; L424 0000008C 0316 MOV.L R1,@(R0,R3) 0000008E E044 MOV #68,R0 00000090 6342 MOV.L @R4,R3 00000092 0326 MOV.L R2,@(R0,R3) Mines.c 339 m_szRoom[18]="You\'re in the giant's oven. Fortunately, it hasn't been used for years."; 00000094 6342 MOV.L @R4,R3 00000096 E048 MOV #72,R0 00000098 D251 MOV.L L2026+108,R2; L426 0000009A 0326 MOV.L R2,@(R0,R3) Mines.c 340 m_szRoom[19]="You\'re in a hobbit's drying room. Tobacco leaves abound."; 0000009C 6342 MOV.L @R4,R3 0000009E E04C MOV #76,R0 000000A0 D250 MOV.L L2026+112,R2; L427 000000A2 0326 MOV.L R2,@(R0,R3) Mines.c 341 m_szRoom[20]="You\'re in a large circular room. It is dark in here."; 000000A4 6342 MOV.L @R4,R3 000000A6 E050 MOV #80,R0 000000A8 D24F MOV.L L2026+116,R2; L428 000000AA 0326 MOV.L R2,@(R0,R3) Mines.c 342 m_szRoom[21]="You\'re in the Crystal Palace. Quartz crystals cover the walls."; 000000AC 6342 MOV.L @R4,R3 000000AE E054 MOV #84,R0 000000B0 D24E MOV.L L2026+120,R2; L429 000000B2 0326 MOV.L R2,@(R0,R3) Mines.c 343 m_szRoom[22]="You\'re in the Emerald Room. Green crystals cover the ceiling."; 000000B4 6342 MOV.L @R4,R3 000000B6 E058 MOV #88,R0 000000B8 D24D MOV.L L2026+124,R2; L430 000000BA 0326 MOV.L R2,@(R0,R3) Mines.c 344 m_szRoom[23]="You\'re in a curtained room."; 000000BC 6342 MOV.L @R4,R3 000000BE E05C MOV #92,R0 000000C0 D24C MOV.L L2026+128,R2; L431 000000C2 0326 MOV.L R2,@(R0,R3) Mines.c 345 m_szRoom[24]="You\'re in an air conditioning duct!"; 000000C4 6342 MOV.L @R4,R3 000000C6 E060 MOV #96,R0 000000C8 D24B MOV.L L2026+132,R2; L432 000000CA 0326 MOV.L R2,@(R0,R3) Mines.c 346 m_szRoom[25]="You\'re in a giant kiln. Smoke stains the walls."; 000000CC 6342 MOV.L @R4,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 9 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000000CE E064 MOV #100,R0 000000D0 D24A MOV.L L2026+136,R2; L433 000000D2 0326 MOV.L R2,@(R0,R3) Mines.c 347 m_szRoom[26]="You\'re in the Hall of Mists. Wisps of white vapor rise from the floor."; 000000D4 6342 MOV.L @R4,R3 000000D6 E068 MOV #104,R0 000000D8 D249 MOV.L L2026+140,R2; L434 000000DA 0326 MOV.L R2,@(R0,R3) Mines.c 348 m_szRoom[27]="You\'re in an Aztec pyramid. A mummy lies in the northwest corner."; 000000DC 6342 MOV.L @R4,R3 000000DE E06C MOV #108,R0 000000E0 D248 MOV.L L2026+144,R2; L435 000000E2 0326 MOV.L R2,@(R0,R3) Mines.c 349 m_szRoom[28]="You\'re in the Room of the Eternal Flame. A large natural gas flame burns in the center + of the room. Coming from the west wall you can barely hear the words, 'Fee Fye Foe Fum'."; 000000E4 6342 MOV.L @R4,R3 000000E6 E070 MOV #112,R0 000000E8 D247 MOV.L L2026+148,R2; L436 000000EA 0326 MOV.L R2,@(R0,R3) Mines.c 350 m_szRoom[29]="You\'re in the Giant's store room. You are surrounded by old rugs, books, chairs, etc." +; 000000EC 6342 MOV.L @R4,R3 000000EE E074 MOV #116,R0 000000F0 D246 MOV.L L2026+152,R2; L437 000000F2 0326 MOV.L R2,@(R0,R3) Mines.c 351 m_szRoom[30]="You\'re in the Leprechaun's Treasure Room. Unfortunately, the leprechaun's treasure was + stolen years ago."; 000000F4 6342 MOV.L @R4,R3 000000F6 E078 MOV #120,R0 000000F8 D245 MOV.L L2026+156,R2; L438 000000FA 0326 MOV.L R2,@(R0,R3) Mines.c 352 m_szRoom[31]="You\'re in a large tiled room. A girl is inquiring after a rabbit. Feel free to ignore + her."; 000000FC 6342 MOV.L @R4,R3 000000FE E07C MOV #124,R0 00000100 D244 MOV.L L2026+160,R2; L439 00000102 0326 MOV.L R2,@(R0,R3) Mines.c 353 m_szRoom[32]="You\'re in a former nuclear test site. There is a large pile of rubble in the center of + the floor. The walls are streaked with a multitude of colors."; 00000104 6342 MOV.L @R4,R3 00000106 7004 ADD #4,R0 00000108 D243 MOV.L L2026+164,R2; L440 0000010A 0326 MOV.L R2,@(R0,R3) Mines.c 354 m_szRoom[33]="You\'re in a drainage system holding tank. Either it is no longer used, or it hasn't ra +ined in a long time; the room is dry."; 0000010C 6342 MOV.L @R4,R3 0000010E 7004 ADD #4,R0 00000110 D242 MOV.L L2026+168,R2; L441 00000112 0326 MOV.L R2,@(R0,R3) Mines.c 355 m_szRoom[34]="You\'re in Mayor Schiro's bomb shelter."; 00000114 6342 MOV.L @R4,R3 00000116 7004 ADD #4,R0 00000118 D241 MOV.L L2026+172,R2; L442 0000011A 0326 MOV.L R2,@(R0,R3) Mines.c 356 m_szRoom[35]="You\'re in a room with a waterfall. It is not very impressive; it looks like someone le +ft a water faucet running."; 0000011C 6342 MOV.L @R4,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 10 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000011E 7004 ADD #4,R0 00000120 D240 MOV.L L2026+176,R2; L443 00000122 0326 MOV.L R2,@(R0,R3) Mines.c 357 m_szRoom[36]="You\'re in an abandoned Neanderthal home."; 00000124 6342 MOV.L @R4,R3 00000126 7004 ADD #4,R0 00000128 D23F MOV.L L2026+180,R2; L444 0000012A 0326 MOV.L R2,@(R0,R3) Mines.c 358 m_szRoom[37]="You\'re in a volcanic chimney. The air is getting warmer."; 0000012C 6342 MOV.L @R4,R3 0000012E 7004 ADD #4,R0 00000130 D23E MOV.L L2026+184,R2; L445 00000132 0326 MOV.L R2,@(R0,R3) Mines.c 359 m_szRoom[38]="You\'re in a pit full of snakes. Let's get out of here!!!!"; 00000134 6342 MOV.L @R4,R3 00000136 7004 ADD #4,R0 00000138 D23D MOV.L L2026+188,R2; L446 0000013A 0326 MOV.L R2,@(R0,R3) Mines.c 360 m_szRoom[39]="You\'re in a salt dome."; 0000013C 6342 MOV.L @R4,R3 0000013E 7004 ADD #4,R0 00000140 D23C MOV.L L2026+192,R2; L447 00000142 0326 MOV.L R2,@(R0,R3) Mines.c 361 m_szRoom[40]="You\'re in Eleanor Roosevelt's privy. Wendell Wilkie buttons cover the wall."; 00000144 6342 MOV.L @R4,R3 00000146 7004 ADD #4,R0 00000148 D23B MOV.L L2026+196,R2; L448 0000014A 0326 MOV.L R2,@(R0,R3) Mines.c 362 m_szRoom[41]="You\'re in Napoleon's wine cellar. German wines line the shelves."; 0000014C 6342 MOV.L @R4,R3 0000014E 7004 ADD #4,R0 00000150 D23A MOV.L L2026+200,R2; L449 00000152 0326 MOV.L R2,@(R0,R3) Mines.c 363 m_szRoom[42]="You\'re in the space behind the giant's bathroom wall. Large razor blades litter the flo +or. Step lightly."; 00000154 6342 MOV.L @R4,R3 00000156 7004 ADD #4,R0 00000158 D239 MOV.L L2026+204,R2; L450 0000015A 0326 MOV.L R2,@(R0,R3) Mines.c 364 m_szRoom[43]="You\'re in the room where all old toe nail clipping come to rest. Used corn pads litter + the floor."; 0000015C 6342 MOV.L @R4,R3 0000015E 7004 ADD #4,R0 00000160 D238 MOV.L L2026+208,R2; L451 00000162 0326 MOV.L R2,@(R0,R3) Mines.c 365 m_szRoom[44]="You\'re in the Den of the Horta. The walls are covered with a sticky fluid. Don't touc +h it; it is extremely corrosive."; 00000164 6342 MOV.L @R4,R3 00000166 7004 ADD #4,R0 00000168 D237 MOV.L L2026+212,R2; L452 0000016A 0326 MOV.L R2,@(R0,R3) Mines.c 366 m_szRoom[45]="You\'re in a damp room. A small creek runs into a crack in the West wall."; 0000016C 6342 MOV.L @R4,R3 0000016E D237 MOV.L L2026+216,R2; L453 00000170 A06E BRA L1975 00000172 0009 NOP 00000174 L2026: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 11 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000174 <00000000> .DATA.L __$m_nLinesWritten 00000178 <00000000> .DATA.L __$m_nFindPathLocals 0000017C <00000000> .DATA.L __$m_nFindPathParameters 00000180 <00000000> .DATA.L __$m_nPassages 00000184 <00000000> .DATA.L __$m_nPaths 00000188 <00000000> .DATA.L __$m_nReplaceIndex 0000018C <00000000> .DATA.L __$m_nRooms 00000190 <00000000> .DATA.L __$m_nRNPartialSum 00000194 <00000000> .DATA.L __$m_szRoom 00000198 <00000000> .DATA.L L408 0000019C <00000000> .DATA.L L409 000001A0 <00000000> .DATA.L L410 000001A4 <00000000> .DATA.L L411 000001A8 <00000000> .DATA.L L412 000001AC <00000000> .DATA.L L413 000001B0 <00000000> .DATA.L L414 000001B4 <00000000> .DATA.L L415 000001B8 <00000000> .DATA.L L416 000001BC <00000000> .DATA.L L417 000001C0 <00000000> .DATA.L L418 000001C4 <00000000> .DATA.L L419 000001C8 <00000000> .DATA.L L420 000001CC <00000000> .DATA.L L421 000001D0 <00000000> .DATA.L L422 000001D4 <00000000> .DATA.L L423 000001D8 <00000000> .DATA.L L424 000001DC <00000000> .DATA.L L425 000001E0 <00000000> .DATA.L L426 000001E4 <00000000> .DATA.L L427 000001E8 <00000000> .DATA.L L428 000001EC <00000000> .DATA.L L429 000001F0 <00000000> .DATA.L L430 000001F4 <00000000> .DATA.L L431 000001F8 <00000000> .DATA.L L432 000001FC <00000000> .DATA.L L433 00000200 <00000000> .DATA.L L434 00000204 <00000000> .DATA.L L435 00000208 <00000000> .DATA.L L436 0000020C <00000000> .DATA.L L437 00000210 <00000000> .DATA.L L438 00000214 <00000000> .DATA.L L439 00000218 <00000000> .DATA.L L440 0000021C <00000000> .DATA.L L441 00000220 <00000000> .DATA.L L442 00000224 <00000000> .DATA.L L443 00000228 <00000000> .DATA.L L444 0000022C <00000000> .DATA.L L445 00000230 <00000000> .DATA.L L446 00000234 <00000000> .DATA.L L447 00000238 <00000000> .DATA.L L448 0000023C <00000000> .DATA.L L449 00000240 <00000000> .DATA.L L450 00000244 <00000000> .DATA.L L451 00000248 <00000000> .DATA.L L452 0000024C <00000000> .DATA.L L453 00000250 L1975: 00000250 909A MOV.W L2027,R0 ; H'00B4 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 12 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000252 0326 MOV.L R2,@(R0,R3) Mines.c 367 m_szRoom[46]="You\'re in what appears to be a NOPSI manhole."; 00000254 6342 MOV.L @R4,R3 00000256 7004 ADD #4,R0 00000258 D24C MOV.L L2027+4,R2 ; L454 0000025A 0326 MOV.L R2,@(R0,R3) Mines.c 368 m_szRoom[47]="You\'re in the cafeteria of Mammoth Cave. The aroma of rancid corned beef assails your +nostrils."; 0000025C 6342 MOV.L @R4,R3 0000025E 7004 ADD #4,R0 00000260 D24B MOV.L L2027+8,R2 ; L455 00000262 0326 MOV.L R2,@(R0,R3) Mines.c 369 m_szRoom[48]="You\'re in a small room with a large table. On the table is a bottle that says, 'Drink +me.'"; 00000264 6342 MOV.L @R4,R3 00000266 7004 ADD #4,R0 00000268 D24A MOV.L L2027+12,R2; L456 0000026A 0326 MOV.L R2,@(R0,R3) Mines.c 370 m_szRoom[49]="You\'re in a Confederate States of America bank vault. Once worthless currency papers t +he walls."; 0000026C 6342 MOV.L @R4,R3 0000026E 7004 ADD #4,R0 00000270 D249 MOV.L L2027+16,R2; L457 00000272 0326 MOV.L R2,@(R0,R3) Mines.c 371 m_szRoom[50]="You\'re in an abandoned subway station."; 00000274 6342 MOV.L @R4,R3 00000276 7004 ADD #4,R0 00000278 D248 MOV.L L2027+20,R2; L458 0000027A 0326 MOV.L R2,@(R0,R3) Mines.c 372 m_szRoom[51]="You\'re in a mine shaft. In the distance you can hear seven high pitched voices singing +, 'Hi Ho, Hi Ho, ...'"; 0000027C 6342 MOV.L @R4,R3 0000027E 7004 ADD #4,R0 00000280 D247 MOV.L L2027+24,R2; L459 00000282 0326 MOV.L R2,@(R0,R3) Mines.c 373 m_szRoom[52]="You\'re in a Minuteman missile silo."; 00000284 6342 MOV.L @R4,R3 00000286 7004 ADD #4,R0 00000288 D246 MOV.L L2027+28,R2; L460 0000028A 0326 MOV.L R2,@(R0,R3) Mines.c 374 m_szRoom[53]="You\'re in the giant's mouse trap. Fortunately, you are small enough to escape."; 0000028C 6342 MOV.L @R4,R3 0000028E 7004 ADD #4,R0 00000290 D245 MOV.L L2027+32,R2; L461 00000292 0326 MOV.L R2,@(R0,R3) Mines.c 375 m_szRoom[54]="You\'re in Adolph Hitler's summer bunker."; 00000294 6342 MOV.L @R4,R3 00000296 7004 ADD #4,R0 00000298 D244 MOV.L L2027+36,R2; L462 0000029A 0326 MOV.L R2,@(R0,R3) Mines.c 376 m_szRoom[55]="You\'re in a dwarf work site. A sign says, \"Under construction. Enter at your own risk +.\""; 0000029C 6342 MOV.L @R4,R3 0000029E 7004 ADD #4,R0 000002A0 D243 MOV.L L2027+40,R2; L463 000002A2 0326 MOV.L R2,@(R0,R3) Mines.c 377 m_szRoom[56]="You\'re in the giant's refrigerator. Dwarf bodies hang from hooks."; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 13 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000002A4 6342 MOV.L @R4,R3 000002A6 7004 ADD #4,R0 000002A8 D242 MOV.L L2027+44,R2; L464 000002AA 0326 MOV.L R2,@(R0,R3) Mines.c 378 m_szRoom[57]="You\'re in the Dragon's Lair. Slightly melted suits of armor litter the floor."; 000002AC 6342 MOV.L @R4,R3 000002AE 7004 ADD #4,R0 000002B0 D241 MOV.L L2027+48,R2; L465 000002B2 0326 MOV.L R2,@(R0,R3) Mines.c 379 m_szRoom[58]="You\'re in a nuclear waste depository. The walls glow faintly."; 000002B4 6342 MOV.L @R4,R3 000002B6 7004 ADD #4,R0 000002B8 D240 MOV.L L2027+52,R2; L466 000002BA 0326 MOV.L R2,@(R0,R3) Mines.c 380 m_szRoom[59]="You\'re in Millard Fillmore's tomb. It is dull."; 000002BC 6342 MOV.L @R4,R3 000002BE 7004 ADD #4,R0 000002C0 D23F MOV.L L2027+56,R2; L467 000002C2 0326 MOV.L R2,@(R0,R3) Mines.c 381 m_szRoom[60]="You\'re in an abandoned corridor of the Strategic Air Command Headquarters. A graffito +reads, \"Beware of Bat Guano.\""; 000002C4 6342 MOV.L @R4,R3 000002C6 7004 ADD #4,R0 000002C8 D23E MOV.L L2027+60,R2; L468 000002CA 0326 MOV.L R2,@(R0,R3) Mines.c 382 m_szRoom[61]="You\'re in a gnome's workshop. Half-completed whoopee cushions line the tables."; 000002CC 6342 MOV.L @R4,R3 000002CE 7004 ADD #4,R0 000002D0 D23D MOV.L L2027+64,R2; L469 000002D2 0326 MOV.L R2,@(R0,R3) Mines.c 383 m_szRoom[62]="You\'re in the Mummy's Tomb. You've triggered some mechanism and the ceiling is slowly +descending."; 000002D4 6342 MOV.L @R4,R3 000002D6 7004 ADD #4,R0 000002D8 D23C MOV.L L2027+68,R2; L470 000002DA 0326 MOV.L R2,@(R0,R3) Mines.c 384 m_szRoom[63]="You\'re in the Underground Gourmet's retreat. Twinkie and King Don wrappers are piled k +nee deep."; 000002DC 6342 MOV.L @R4,R3 000002DE 7004 ADD #4,R0 000002E0 D23B MOV.L L2027+72,R2; L471 000002E2 0326 MOV.L R2,@(R0,R3) Mines.c 385 m_szRoom[64]="You\'re in a Hoola Hoop warehouse. The words \"Shoop Shoop\" echo from the walls."; 000002E4 6342 MOV.L @R4,R3 000002E6 7004 ADD #4,R0 000002E8 D23A MOV.L L2027+76,R2; L472 000002EA 0326 MOV.L R2,@(R0,R3) Mines.c 386 m_szRoom[65]="You\'re in the first circle of hell. The living are not allowed here."; 000002EC 6342 MOV.L @R4,R3 000002EE 7004 ADD #4,R0 000002F0 D239 MOV.L L2027+80,R2; L473 000002F2 0326 MOV.L R2,@(R0,R3) Mines.c 387 m_szRoom[66]="You\'re in the hall of the pixies. The furniture appears to have been made from cradles +."; 000002F4 6342 MOV.L @R4,R3 000002F6 7004 ADD #4,R0 000002F8 D238 MOV.L L2027+84,R2; L474 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 14 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000002FA 0326 MOV.L R2,@(R0,R3) Mines.c 388 m_szRoom[67]="You\'re in a sulfur mine. Molten sulfur churns in a nearby pit. It is becoming difficul +t to breath."; 000002FC 6342 MOV.L @R4,R3 000002FE 7004 ADD #4,R0 00000300 D237 MOV.L L2027+88,R2; L475 00000302 0326 MOV.L R2,@(R0,R3) Mines.c 389 m_szRoom[68]="You\'re in a fairy mushroom farm. Brilliantly colored mushrooms cover the floor."; 00000304 6342 MOV.L @R4,R3 00000306 7004 ADD #4,R0 00000308 D236 MOV.L L2027+92,R2; L476 0000030A 0326 MOV.L R2,@(R0,R3) Mines.c 390 m_szRoom[69]="You\'re in an ice cave. Along the western wall, a brontosaurus is defrosting."; 0000030C 6342 MOV.L @R4,R3 0000030E 7004 ADD #4,R0 00000310 D235 MOV.L L2027+96,R2; L477 00000312 0326 MOV.L R2,@(R0,R3) Mines.c 391 m_szRoom[70]="You\'re in the giant's stove. Fortunately, the giant now owns a microwave oven."; 00000314 6342 MOV.L @R4,R3 00000316 7004 ADD #4,R0 00000318 D234 MOV.L L2027+100,R2; L478 0000031A 0326 MOV.L R2,@(R0,R3) Mines.c 392 m_szRoom[71]="You\'re in the rib cage of a long deceased whale."; 0000031C 6342 MOV.L @R4,R3 0000031E 7004 ADD #4,R0 00000320 D233 MOV.L L2027+104,R2; L479 00000322 0326 MOV.L R2,@(R0,R3) Mines.c 393 m_szRoom[72]="You\'re in a room with six walls. The walls appear to be made of wax. A loud buzzing n +oise can be heard."; 00000324 6342 MOV.L @R4,R3 00000326 7004 ADD #4,R0 00000328 D232 MOV.L L2027+108,R2; L480 0000032A 0326 MOV.L R2,@(R0,R3) Mines.c 394 m_szRoom[73]="You\'re in the tomb of a Pharaoh. It has obviously been visited by others; the tomb is +in a state of total disarray."; 0000032C 6342 MOV.L @R4,R3 0000032E 7004 ADD #4,R0 00000330 D231 MOV.L L2027+112,R2; L481 00000332 0326 MOV.L R2,@(R0,R3) Mines.c 395 m_szRoom[74]="You\'re in a coal bin. There is a fossilized fern stump here."; 00000334 6342 MOV.L @R4,R3 00000336 7004 ADD #4,R0 00000338 D230 MOV.L L2027+116,R2; L482 0000033A 0326 MOV.L R2,@(R0,R3) Mines.c 396 m_szRoom[75]="You\'re in a diamond mine. It is uncomfortably hot here."; 0000033C 6342 MOV.L @R4,R3 0000033E 7004 ADD #4,R0 00000340 D22F MOV.L L2027+120,R2; L483 00000342 0326 MOV.L R2,@(R0,R3) Mines.c 397 m_szRoom[76]="You\'re in the bottom of an oil well. The walls are slick."; 00000344 6342 MOV.L @R4,R3 00000346 7004 ADD #4,R0 00000348 D22E MOV.L L2027+124,R2; L484 0000034A 0326 MOV.L R2,@(R0,R3) Mines.c 398 m_szRoom[77]="You\'re in the lowest level of Project Mohole. The funding bubble burst before the eart +h did."; 0000034C 6342 MOV.L @R4,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 15 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000034E 7004 ADD #4,R0 00000350 D22D MOV.L L2027+128,R2; L485 00000352 0326 MOV.L R2,@(R0,R3) Mines.c 399 m_szRoom[78]="You\'re in the giant's cesspool. Fortunately, the giant was connected to the city sewer +age system years ago."; 00000354 6342 MOV.L @R4,R3 00000356 7004 ADD #4,R0 00000358 D22C MOV.L L2027+132,R2; L486 0000035A 0326 MOV.L R2,@(R0,R3) Mines.c 400 m_szRoom[79]="You\'re in an eighteenth century sewer. The walls are crumbling brick. Small alligator +s snap at your feet."; 0000035C 6342 MOV.L @R4,R3 0000035E 7004 ADD #4,R0 00000360 D22B MOV.L L2027+136,R2; L487 00000362 0326 MOV.L R2,@(R0,R3) Mines.c 401 m_szRoom[80]="You\'re in the lair of a giant trapdoor spider."; 00000364 6342 MOV.L @R4,R3 00000366 7004 ADD #4,R0 00000368 D22A MOV.L L2027+140,R2; L488 0000036A 0326 MOV.L R2,@(R0,R3) Mines.c 402 m_szRoom[81]="You\'re in a giant gopher tunnel."; 0000036C 6342 MOV.L @R4,R3 0000036E 7004 ADD #4,R0 00000370 D229 MOV.L L2027+144,R2; L489 00000372 0326 MOV.L R2,@(R0,R3) Mines.c 403 m_szRoom[82]="You\'re in a shell -- the sole remains of a prehistoric turtle."; 00000374 6342 MOV.L @R4,R3 00000376 7004 ADD #4,R0 00000378 D228 MOV.L L2027+148,R2; L490 0000037A 0326 MOV.L R2,@(R0,R3) Mines.c 404 m_szRoom[83]="You\'re in a small chamber. The walls are made of earth. The air smells of formic acid +. A strange squeaking noise can be heard in the distance."; 0000037C 6342 MOV.L @R4,R3 0000037E 7004 ADD #4,R0 00000380 D227 MOV.L L2027+152,R2; L491 00000382 0326 MOV.L R2,@(R0,R3) Mines.c 405 m_szRoom[84]="You\'re in a chamber of columns. The stalagmites and stalactites join here."; 00000384 A04E BRA L1976 00000386 0009 NOP 00000388 L2027: 00000388 00B4 .DATA.W H'00B4 0000038A 0000 .DATA.W 0 0000038C <00000000> .DATA.L L454 00000390 <00000000> .DATA.L L455 00000394 <00000000> .DATA.L L456 00000398 <00000000> .DATA.L L457 0000039C <00000000> .DATA.L L458 000003A0 <00000000> .DATA.L L459 000003A4 <00000000> .DATA.L L460 000003A8 <00000000> .DATA.L L461 000003AC <00000000> .DATA.L L462 000003B0 <00000000> .DATA.L L463 000003B4 <00000000> .DATA.L L464 000003B8 <00000000> .DATA.L L465 000003BC <00000000> .DATA.L L466 000003C0 <00000000> .DATA.L L467 000003C4 <00000000> .DATA.L L468 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 16 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000003C8 <00000000> .DATA.L L469 000003CC <00000000> .DATA.L L470 000003D0 <00000000> .DATA.L L471 000003D4 <00000000> .DATA.L L472 000003D8 <00000000> .DATA.L L473 000003DC <00000000> .DATA.L L474 000003E0 <00000000> .DATA.L L475 000003E4 <00000000> .DATA.L L476 000003E8 <00000000> .DATA.L L477 000003EC <00000000> .DATA.L L478 000003F0 <00000000> .DATA.L L479 000003F4 <00000000> .DATA.L L480 000003F8 <00000000> .DATA.L L481 000003FC <00000000> .DATA.L L482 00000400 <00000000> .DATA.L L483 00000404 <00000000> .DATA.L L484 00000408 <00000000> .DATA.L L485 0000040C <00000000> .DATA.L L486 00000410 <00000000> .DATA.L L487 00000414 <00000000> .DATA.L L488 00000418 <00000000> .DATA.L L489 0000041C <00000000> .DATA.L L490 00000420 <00000000> .DATA.L L491 00000424 L1976: 00000424 6342 MOV.L @R4,R3 00000426 7004 ADD #4,R0 00000428 D245 MOV.L L2028+4,R2 ; L492 0000042A 0326 MOV.L R2,@(R0,R3) Mines.c 406 m_szRoom[85]="You\'re in a service tunnel. Ducts, pipes, and cables are everywhere."; 0000042C 6342 MOV.L @R4,R3 0000042E 7004 ADD #4,R0 00000430 D244 MOV.L L2028+8,R2 ; L493 00000432 0326 MOV.L R2,@(R0,R3) Mines.c 407 m_szRoom[86]="You\'re in a gas tank below an abandoned service station. No smoking!"; 00000434 6342 MOV.L @R4,R3 00000436 7004 ADD #4,R0 00000438 D243 MOV.L L2028+12,R2; L494 0000043A 0326 MOV.L R2,@(R0,R3) Mines.c 408 m_szRoom[87]="You\'re in a huge dark chamber. To one side, a dark, muddy river moves sluggishly. A s +ign written in ancient Greek says, \"Ferry out of order.\""; 0000043C 6342 MOV.L @R4,R3 0000043E 7004 ADD #4,R0 00000440 D242 MOV.L L2028+16,R2; L495 00000442 0326 MOV.L R2,@(R0,R3) Mines.c 409 m_szRoom[88]="You\'re in a small chamber. It is brightly lit by a peculiar lichen growing on the walls + and ceiling. The floor is rocky and steeply sloping. Nearby, a cold, clear creek boils into the floor a +nd out of sight."; 00000444 6342 MOV.L @R4,R3 00000446 7004 ADD #4,R0 00000448 D241 MOV.L L2028+20,R2; L496 0000044A 0326 MOV.L R2,@(R0,R3) Mines.c 410 m_szRoom[89]="You\'re in the nest of a very large pack rat. There are discarded aluminum Christmas tr +ees, broken steel utility poles, and other shiny, worthless items here."; 0000044C 6342 MOV.L @R4,R3 0000044E 7004 ADD #4,R0 00000450 D240 MOV.L L2028+24,R2; L497 00000452 0326 MOV.L R2,@(R0,R3) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 17 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 411 m_szRoom[90]="You\'re in a dungeon. An iron maiden, a rack, a piano, and other machines of torture ca +n be seen."; 00000454 6342 MOV.L @R4,R3 00000456 7004 ADD #4,R0 00000458 D23F MOV.L L2028+28,R2; L498 0000045A 0326 MOV.L R2,@(R0,R3) Mines.c 412 m_szRoom[91]="You\'re in the hall of bats. Thousands of bats hang from the ceiling. Watch your step; + the droppings are quite deep in places."; 0000045C 6342 MOV.L @R4,R3 0000045E 7004 ADD #4,R0 00000460 D23E MOV.L L2028+32,R2; L499 00000462 0326 MOV.L R2,@(R0,R3) Mines.c 413 m_szRoom[92]="You\'re in a hobgoblin's hideaway."; 00000464 6342 MOV.L @R4,R3 00000466 7004 ADD #4,R0 00000468 D23D MOV.L L2028+36,R2; L500 0000046A 0326 MOV.L R2,@(R0,R3) Mines.c 414 m_szRoom[93]="You\'re in an electrical substation. A transformer is humming loudly. Nearby, cables c +rackle with high voltage."; 0000046C 6342 MOV.L @R4,R3 0000046E D23D MOV.L L2028+40,R2; L501 00000470 9064 MOV.W L2028,R0 ; H'0174 00000472 0326 MOV.L R2,@(R0,R3) Mines.c 415 m_szRoom[94]="You\'re in the \"gold\" room. The walls are covered with iron pyrite."; 00000474 6342 MOV.L @R4,R3 00000476 7004 ADD #4,R0 00000478 D23B MOV.L L2028+44,R2; L502 0000047A 0326 MOV.L R2,@(R0,R3) Mines.c 416 m_szRoom[95]="You\'re in a room with one of Dracula's emergency coffins. The Count is out."; 0000047C 6342 MOV.L @R4,R3 0000047E 7004 ADD #4,R0 00000480 D23A MOV.L L2028+48,R2; L503 00000482 0326 MOV.L R2,@(R0,R3) Mines.c 417 m_szRoom[96]="You\'re in a saltpeter mine. To one side there is a huge wooden evaporation vat. Small + crystals of saltpeter cause the walls to sparkle."; 00000484 6342 MOV.L @R4,R3 00000486 7004 ADD #4,R0 00000488 D239 MOV.L L2028+52,R2; L504 0000048A 0326 MOV.L R2,@(R0,R3) Mines.c 418 m_szRoom[97]="You\'re in the basement cafeteria of a local hospital. Some say that there has been not +hing edible here for years."; 0000048C 6342 MOV.L @R4,R3 0000048E 7004 ADD #4,R0 00000490 D238 MOV.L L2028+56,R2; L505 00000492 0326 MOV.L R2,@(R0,R3) Mines.c 419 m_szRoom[98]="You\'re in a troll arsenal. Kegs of gun powder surround you."; 00000494 6342 MOV.L @R4,R3 00000496 7004 ADD #4,R0 00000498 D237 MOV.L L2028+60,R2; L506 Mines.c 420 return; Mines.c 421 } 0000049A 000B RTS 0000049C 0326 MOV.L R2,@(R0,R3) Mines.c 422 Mines.c 423 Mines.c 424 static intC ReadChar( 0000049E __$ReadChar: ; function: ReadChar SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 18 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT ; frame size=12 0000049E 4F22 STS.L PR,@-R15 Mines.c 425 void) Mines.c 426 { Mines.c 427 unsigned int uiKey; Mines.c 428 unsigned char uc [2]; Mines.c 429 Mines.c 430 GetKey(&uiKey); 000004A0 D336 MOV.L L2028+64,R3; _GetKey 000004A2 7FF8 ADD #-8,R15 000004A4 430B JSR @R3 000004A6 64F3 MOV R15,R4 Mines.c 431 uc[0]=(unsigned char) uiKey; 000004A8 62F2 MOV.L @R15,R2 Mines.c 432 uc[1]='\0'; 000004AA E000 MOV #0,R0 Mines.c 433 Print(&uc[0]); 000004AC D334 MOV.L L2028+68,R3; _Print 000004AE 65F3 MOV R15,R5 000004B0 7504 ADD #4,R5 000004B2 6453 MOV R5,R4 000004B4 2420 MOV.B R2,@R4 000004B6 430B JSR @R3 000004B8 8051 MOV.B R0,@(1,R5) Mines.c 434 return (intC) uiKey; 000004BA 60F2 MOV.L @R15,R0 Mines.c 435 } 000004BC 7F08 ADD #8,R15 000004BE 4F26 LDS.L @R15+,PR 000004C0 000B RTS 000004C2 0009 NOP Mines.c 436 Mines.c 437 static void WriteChar( 000004C4 __$WriteChar: ; function: WriteChar ; frame size=12 000004C4 4F22 STS.L PR,@-R15 Mines.c 438 char c) Mines.c 439 { Mines.c 440 unsigned char uc[2]; Mines.c 441 Mines.c 442 uc[0]=(unsigned char) c; Mines.c 443 uc[1]='\0'; 000004C6 E000 MOV #0,R0 000004C8 7FF8 ADD #-8,R15 000004CA 65F3 MOV R15,R5 000004CC 7504 ADD #4,R5 000004CE 6353 MOV R5,R3 000004D0 2F32 MOV.L R3,@R15 000004D2 2340 MOV.B R4,@R3 000004D4 8051 MOV.B R0,@(1,R5) Mines.c 444 Print(&uc[0]); 000004D6 D32A MOV.L L2028+68,R3; _Print 000004D8 430B JSR @R3 000004DA 64F2 MOV.L @R15,R4 Mines.c 445 return; Mines.c 446 } 000004DC 7F08 ADD #8,R15 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 19 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000004DE 4F26 LDS.L @R15+,PR 000004E0 000B RTS 000004E2 0009 NOP Mines.c 447 Mines.c 448 static intC ToUpper( 000004E4 __$ToUpper: ; function: ToUpper ; frame size=0 Mines.c 449 intC n) Mines.c 450 { Mines.c 451 intC nResult; Mines.c 452 Mines.c 453 if (n >= (intC) 'a') 000004E4 E361 MOV #97,R3 000004E6 3433 CMP/GE R3,R4 000004E8 8B05 BF L1058 Mines.c 454 if (n <= (intC) 'z') 000004EA E17A MOV #122,R1 000004EC 3417 CMP/GT R1,R4 000004EE 8902 BT L1058 Mines.c 455 nResult=(n-((intC) 'a'))+((intC) 'A'); 000004F0 6543 MOV R4,R5 000004F2 A001 BRA L1408 000004F4 75E0 ADD #-32,R5 000004F6 L1058: Mines.c 456 else Mines.c 457 nResult=n; Mines.c 458 else Mines.c 459 nResult=n; 000004F6 6543 MOV R4,R5 000004F8 L1408: Mines.c 460 return nResult; Mines.c 461 } 000004F8 000B RTS 000004FA 6053 MOV R5,R0 Mines.c 462 Mines.c 463 static int16 StrLen( 000004FC __$StrLen: ; function: StrLen ; frame size=0 Mines.c 464 char *sz) Mines.c 465 { Mines.c 466 int16 nResult; Mines.c 467 char *pc; Mines.c 468 Mines.c 469 nResult=0; 000004FC E600 MOV #0,R6 Mines.c 470 pc=sz; Mines.c 471 while (*pc) 000004FE A002 BRA L1410 00000500 6543 MOV R4,R5 00000502 L1411: Mines.c 472 { Mines.c 473 ++nResult; 00000502 7601 ADD #1,R6 Mines.c 474 ++pc; 00000504 7501 ADD #1,R5 00000506 L1410: 00000506 6250 MOV.B @R5,R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 20 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000508 2228 TST R2,R2 0000050A 8BFA BF L1411 Mines.c 475 } Mines.c 476 return nResult; Mines.c 477 } 0000050C 000B RTS 0000050E 6063 MOV R6,R0 Mines.c 478 Mines.c 479 static void StrCpy( 00000510 __$StrCpy: ; function: StrCpy ; frame size=0 Mines.c 480 char *szDestination, Mines.c 481 char *szSource) Mines.c 482 { Mines.c 483 char *pcDestination; Mines.c 484 char *pcSource; Mines.c 485 Mines.c 486 pcDestination=szDestination; 00000510 6643 MOV R4,R6 Mines.c 487 pcSource=szSource; Mines.c 488 while (*pcSource) 00000512 A003 BRA L1413 00000514 6453 MOV R5,R4 00000516 L1414: Mines.c 489 { Mines.c 490 *pcDestination=*pcSource; 00000516 6244 MOV.B @R4+,R2 00000518 2620 MOV.B R2,@R6 Mines.c 491 ++pcDestination; 0000051A 7601 ADD #1,R6 Mines.c 492 ++pcSource; 0000051C L1413: 0000051C 6340 MOV.B @R4,R3 0000051E 2338 TST R3,R3 00000520 8BF9 BF L1414 Mines.c 493 } Mines.c 494 *pcDestination='\0'; 00000522 E300 MOV #0,R3 Mines.c 495 return; Mines.c 496 } 00000524 000B RTS 00000526 2630 MOV.B R3,@R6 Mines.c 497 Mines.c 498 static void StrCat( 00000528 __$StrCat: ; function: StrCat ; frame size=4 00000528 2FE6 MOV.L R14,@-R15 Mines.c 499 char *szDestination, Mines.c 500 char *szSource) Mines.c 501 { Mines.c 502 char *pcDestination; Mines.c 503 Mines.c 504 pcDestination=szDestination; Mines.c 505 while (*pcDestination) 0000052A A001 BRA L1416 0000052C 6E43 MOV R4,R14 0000052E L1417: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 21 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 506 ++pcDestination; 0000052E 7E01 ADD #1,R14 00000530 L1416: 00000530 62E0 MOV.B @R14,R2 00000532 2228 TST R2,R2 00000534 8BFB BF L1417 Mines.c 507 StrCpy(pcDestination,szSource); 00000536 64E3 MOV R14,R4 00000538 AFEA BRA __$StrCpy 0000053A 6EF6 MOV.L @R15+,R14 0000053C L2028: 0000053C 0174 .DATA.W H'0174 0000053E 0000 .DATA.W 0 00000540 <00000000> .DATA.L L492 00000544 <00000000> .DATA.L L493 00000548 <00000000> .DATA.L L494 0000054C <00000000> .DATA.L L495 00000550 <00000000> .DATA.L L496 00000554 <00000000> .DATA.L L497 00000558 <00000000> .DATA.L L498 0000055C <00000000> .DATA.L L499 00000560 <00000000> .DATA.L L500 00000564 <00000000> .DATA.L L501 00000568 <00000000> .DATA.L L502 0000056C <00000000> .DATA.L L503 00000570 <00000000> .DATA.L L504 00000574 <00000000> .DATA.L L505 00000578 <00000000> .DATA.L L506 0000057C <00000000> .DATA.L _GetKey 00000580 <00000000> .DATA.L _Print Mines.c 508 return; Mines.c 509 } Mines.c 510 Mines.c 511 static void IToA( 00000584 __$IToA: ; function: IToA ; frame size=40 ; used runtime library name: ; __divls, __slow_mvn 00000584 2FE6 MOV.L R14,@-R15 00000586 2FD6 MOV.L R13,@-R15 00000588 2FB6 MOV.L R11,@-R15 0000058A 4F22 STS.L PR,@-R15 Mines.c 512 int16 n, Mines.c 513 char *sz) Mines.c 514 { Mines.c 515 char c [10]; Mines.c 516 char cDigit [10] = {'0','1','2','3','4','5','6','7','8','9'}; 0000058C D285 MOV.L L2029,R2 ; L536 0000058E 7FE8 ADD #-24,R15 00000590 D385 MOV.L L2029+4,R3 ; __slow_mvn 00000592 6DF3 MOV R15,R13 00000594 61F3 MOV R15,R1 00000596 430B JSR @R3 00000598 E00A MOV #10,R0 Mines.c 517 int8 nChars; Mines.c 518 int16 nDividend; Mines.c 519 int16 nQuotient; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 22 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 520 int16 nRemainder; Mines.c 521 char *pc; Mines.c 522 Mines.c 523 nChars=0; 0000059A E600 MOV #0,R6 Mines.c 524 nDividend=n; 0000059C 6743 MOV R4,R7 0000059E EB0A MOV #10,R11 000005A0 64F3 MOV R15,R4 000005A2 740C ADD #12,R4 Mines.c 525 do 000005A4 L1419: Mines.c 526 { Mines.c 527 nQuotient=nDividend/10; 000005A4 D381 MOV.L L2029+8,R3 ; __divls 000005A6 617F EXTS.W R7,R1 000005A8 430B JSR @R3 000005AA 60B3 MOV R11,R0 000005AC 6E03 MOV R0,R14 Mines.c 528 nRemainder=nDividend-10*nQuotient; 000005AE 6203 MOV R0,R2 000005B0 6303 MOV R0,R3 000005B2 4208 SHLL2 R2 000005B4 323C ADD R3,R2 000005B6 4200 SHLL R2 000005B8 6173 MOV R7,R1 000005BA 3128 SUB R2,R1 Mines.c 529 c[nChars]=cDigit[nRemainder]; 000005BC 606E EXTS.B R6,R0 000005BE 611F EXTS.W R1,R1 000005C0 31DC ADD R13,R1 Mines.c 530 ++nChars; Mines.c 531 nDividend=nQuotient; 000005C2 67E3 MOV R14,R7 000005C4 6310 MOV.B @R1,R3 Mines.c 532 } Mines.c 533 while (nDividend); 000005C6 627F EXTS.W R7,R2 000005C8 0434 MOV.B R3,@(R0,R4) 000005CA 2228 TST R2,R2 000005CC 8FEA BF/S L1419 000005CE 7601 ADD #1,R6 Mines.c 534 pc=sz; Mines.c 535 while (nChars) 000005D0 A005 BRA L1420 000005D2 6753 MOV R5,R7 000005D4 L1421: Mines.c 536 { Mines.c 537 --nChars; 000005D4 76FF ADD #-1,R6 Mines.c 538 *pc=c[nChars]; 000005D6 606E EXTS.B R6,R0 000005D8 034C MOV.B @(R0,R4),R3 000005DA 2730 MOV.B R3,@R7 Mines.c 539 ++pc; 000005DC 7701 ADD #1,R7 000005DE L1420: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 23 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000005DE 626E EXTS.B R6,R2 000005E0 2228 TST R2,R2 000005E2 8BF7 BF L1421 Mines.c 540 } Mines.c 541 *pc='\0'; 000005E4 E300 MOV #0,R3 000005E6 2730 MOV.B R3,@R7 Mines.c 542 return; Mines.c 543 } 000005E8 7F18 ADD #24,R15 000005EA 4F26 LDS.L @R15+,PR 000005EC 6BF6 MOV.L @R15+,R11 000005EE 6DF6 MOV.L @R15+,R13 000005F0 000B RTS 000005F2 6EF6 MOV.L @R15+,R14 Mines.c 544 Mines.c 545 static int16 TokenLen( 000005F4 __$TokenLen: ; function: TokenLen ; frame size=4 000005F4 2FE6 MOV.L R14,@-R15 Mines.c 546 char *szText, Mines.c 547 int16 nTokenStart, Mines.c 548 int16 nTokenStop) Mines.c 549 { Mines.c 550 int16 nResult; Mines.c 551 int16 nToken; Mines.c 552 char *pc; Mines.c 553 Mines.c 554 nResult=(int16) 0; Mines.c 555 pc=szText+nTokenStart; 000005F6 675F EXTS.W R5,R7 000005F8 D16D MOV.L L2029+12,R1; __$m_ucCharWidth 000005FA 374C ADD R4,R7 Mines.c 556 nToken=nTokenStart; 000005FC 6453 MOV R5,R4 000005FE 656F EXTS.W R6,R5 00000600 634F EXTS.W R4,R3 00000602 3353 CMP/GE R5,R3 00000604 8D08 BT/S L1423 00000606 EE00 MOV #0,R14 00000608 L1424: Mines.c 557 while (nToken < nTokenStop) Mines.c 558 { Mines.c 559 nResult+=m_ucCharWidth[*pc]; 00000608 6074 MOV.B @R7+,R0 Mines.c 560 ++pc; Mines.c 561 ++nToken; 0000060A 7401 ADD #1,R4 0000060C 4008 SHLL2 R0 0000060E 624F EXTS.W R4,R2 00000610 031E MOV.L @(R0,R1),R3 00000612 3253 CMP/GE R5,R2 00000614 3E3C ADD R3,R14 00000616 8BF7 BF L1424 00000618 L1423: Mines.c 562 } Mines.c 563 return nResult; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 24 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000618 60E3 MOV R14,R0 Mines.c 564 } 0000061A 000B RTS 0000061C 6EF6 MOV.L @R15+,R14 Mines.c 565 Mines.c 566 static void DisplaySmallFontParagraph( 0000061E __$DisplaySmallFontParagraph: ; function: DisplaySmallFontParagraph ; frame size=60 0000061E 2FE6 MOV.L R14,@-R15 00000620 2FD6 MOV.L R13,@-R15 00000622 2FC6 MOV.L R12,@-R15 00000624 2FB6 MOV.L R11,@-R15 Mines.c 567 char *szText) Mines.c 568 { Mines.c 569 int8 nX; Mines.c 570 int16 nPendingSpaces; Mines.c 571 int16 nTokenLen; Mines.c 572 int16 nTokenStart; Mines.c 573 int16 nTokenStop; Mines.c 574 unsigned int uiKey; Mines.c 575 unsigned char uc [2]; Mines.c 576 Mines.c 577 uc[1]=(unsigned char) '\0'; 00000626 EB00 MOV #0,R11 00000628 D362 MOV.L L2029+16,R3; H'00000080+__$m_ucCharWidth 0000062A 60B3 MOV R11,R0 0000062C DE63 MOV.L L2029+24,R14; __$m_nLinesWritten Mines.c 578 nX=0; Mines.c 579 nPendingSpaces=0; Mines.c 580 nTokenStart=0; 0000062E 6CB3 MOV R11,R12 00000630 2FA6 MOV.L R10,@-R15 00000632 6D03 MOV R0,R13 00000634 2F96 MOV.L R9,@-R15 00000636 2F86 MOV.L R8,@-R15 00000638 4F22 STS.L PR,@-R15 0000063A 6843 MOV R4,R8 0000063C DA5E MOV.L L2029+20,R10; _PrintMini 0000063E 4F12 STS.L MACL,@-R15 00000640 7FE8 ADD #-24,R15 00000642 64F3 MOV R15,R4 00000644 7414 ADD #20,R4 00000646 8041 MOV.B R0,@(1,R4) 00000648 2FB1 MOV.W R11,@R15 0000064A 1F31 MOV.L R3,@(4,R15) Mines.c 581 while (szText[nTokenStart] && (szText[nTokenStart] == ' ')) 0000064C A02F BRA L1426 0000064E 6943 MOV R4,R9 00000650 L1427: Mines.c 582 { Mines.c 583 uc[0]=(unsigned char) ' '; 00000650 E220 MOV #32,R2 Mines.c 584 PrintMini(nX,6*m_nLinesWritten,&uc[0],MINI_OVER); 00000652 E710 MOV #16,R7 00000654 2920 MOV.B R2,@R9 00000656 6693 MOV R9,R6 00000658 65E0 MOV.B @R14,R5 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 25 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000065A 6353 MOV R5,R3 0000065C 4500 SHLL R5 0000065E 4308 SHLL2 R3 00000660 353C ADD R3,R5 00000662 4A0B JSR @R10 00000664 64DE EXTS.B R13,R4 Mines.c 585 nX+=m_ucCharWidth[' ']; 00000666 52F1 MOV.L @(4,R15),R2 Mines.c 586 if (nX > m_nXMax) 00000668 D155 MOV.L L2029+28,R1; __$m_nXMax 0000066A 6322 MOV.L @R2,R3 0000066C 3D3C ADD R3,R13 0000066E 62DE EXTS.B R13,R2 00000670 6312 MOV.L @R1,R3 00000672 3237 CMP/GT R3,R2 00000674 8B1A BF L1428 Mines.c 587 { Mines.c 588 ++m_nLinesWritten; 00000676 60E0 MOV.B @R14,R0 00000678 7001 ADD #1,R0 0000067A 2E00 MOV.B R0,@R14 Mines.c 589 nX=0; Mines.c 590 if (m_nLinesWritten >= (m_nLinesPerPage-1)) 0000067C 63E0 MOV.B @R14,R3 0000067E D051 MOV.L L2029+32,R0; __$m_nLinesPerPage 00000680 6201 MOV.W @R0,R2 00000682 72FF ADD #-1,R2 00000684 3323 CMP/GE R2,R3 00000686 8F11 BF/S L1428 00000688 6DB3 MOV R11,R13 Mines.c 591 { Mines.c 592 PrintMini(nX,6*m_nLinesWritten, Mines.c 593 (unsigned char *) "(press a key to continue)",MINI_OVER); 0000068A E710 MOV #16,R7 0000068C D64E MOV.L L2029+36,R6; L565 0000068E 65E0 MOV.B @R14,R5 00000690 6353 MOV R5,R3 00000692 4500 SHLL R5 00000694 4308 SHLL2 R3 00000696 353C ADD R3,R5 00000698 4A0B JSR @R10 0000069A E400 MOV #0,R4 Mines.c 594 GetKey(&uiKey); 0000069C D24B MOV.L L2029+40,R2; _GetKey 0000069E 64F3 MOV R15,R4 000006A0 420B JSR @R2 000006A2 7408 ADD #8,R4 Mines.c 595 Bdisp_AllClr_DDVRAM(); 000006A4 D34A MOV.L L2029+44,R3; _Bdisp_AllClr_DDVRAM 000006A6 430B JSR @R3 000006A8 0009 NOP Mines.c 596 m_nLinesWritten=0; 000006AA 2EB0 MOV.B R11,@R14 000006AC L1428: Mines.c 597 } Mines.c 598 } Mines.c 599 ++nTokenStart; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 26 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000006AC 7C01 ADD #1,R12 000006AE L1426: 000006AE 60CF EXTS.W R12,R0 000006B0 048C MOV.B @(R0,R8),R4 000006B2 2448 TST R4,R4 000006B4 8902 BT L1430 000006B6 604E EXTS.B R4,R0 000006B8 8820 CMP/EQ #32,R0 000006BA 89C9 BT L1427 000006BC L1430: 000006BC D23D MOV.L L2029+16,R2; H'00000080+__$m_ucCharWidth Mines.c 600 } Mines.c 601 while (szText[nTokenStart]) 000006BE A16A BRA L1431 000006C0 1F23 MOV.L R2,@(12,R15) 000006C2 L1434: Mines.c 602 { Mines.c 603 while (szText[nTokenStart] && (szText[nTokenStart] == ' ')) Mines.c 604 ++nTokenStart; 000006C2 7C01 ADD #1,R12 000006C4 L1433: 000006C4 60CF EXTS.W R12,R0 000006C6 048C MOV.B @(R0,R8),R4 000006C8 2448 TST R4,R4 000006CA 8902 BT L1435 000006CC 604E EXTS.B R4,R0 000006CE 8820 CMP/EQ #32,R0 000006D0 89F7 BT L1434 000006D2 L1435: Mines.c 605 if (nX+nPendingSpaces*m_ucCharWidth[' '] > m_nXMax) 000006D2 61DE EXTS.B R13,R1 000006D4 52F3 MOV.L @(12,R15),R2 000006D6 63F1 MOV.W @R15,R3 000006D8 6222 MOV.L @R2,R2 000006DA 0237 MUL.L R3,R2 000006DC 031A STS MACL,R3 000006DE 331C ADD R1,R3 000006E0 D137 MOV.L L2029+28,R1; __$m_nXMax 000006E2 6212 MOV.L @R1,R2 000006E4 3327 CMP/GT R2,R3 000006E6 8B2D BF L1439 Mines.c 606 { Mines.c 607 ++m_nLinesWritten; 000006E8 60E0 MOV.B @R14,R0 000006EA 7001 ADD #1,R0 000006EC 2E00 MOV.B R0,@R14 Mines.c 608 nPendingSpaces=0; 000006EE 2FB1 MOV.W R11,@R15 Mines.c 609 nX=0; Mines.c 610 if (m_nLinesWritten >= (m_nLinesPerPage-1)) 000006F0 63E0 MOV.B @R14,R3 000006F2 D034 MOV.L L2029+32,R0; __$m_nLinesPerPage 000006F4 6201 MOV.W @R0,R2 000006F6 72FF ADD #-1,R2 000006F8 3323 CMP/GE R2,R3 000006FA 8F26 BF/S L1438 000006FC 6DB3 MOV R11,R13 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 27 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 611 { Mines.c 612 PrintMini(nX,6*m_nLinesWritten, Mines.c 613 (unsigned char *) "(press a key to continue)",MINI_OVER); 000006FE E710 MOV #16,R7 00000700 D631 MOV.L L2029+36,R6; L565 00000702 65E0 MOV.B @R14,R5 00000704 6353 MOV R5,R3 00000706 4500 SHLL R5 00000708 4308 SHLL2 R3 0000070A 353C ADD R3,R5 0000070C 4A0B JSR @R10 0000070E E400 MOV #0,R4 Mines.c 614 GetKey(&uiKey); 00000710 D22E MOV.L L2029+40,R2; _GetKey 00000712 64F3 MOV R15,R4 00000714 420B JSR @R2 00000716 7408 ADD #8,R4 Mines.c 615 Bdisp_AllClr_DDVRAM(); 00000718 D32D MOV.L L2029+44,R3; _Bdisp_AllClr_DDVRAM 0000071A 430B JSR @R3 0000071C 0009 NOP Mines.c 616 m_nLinesWritten=0; 0000071E A014 BRA L1438 00000720 2EB0 MOV.B R11,@R14 00000722 L1440: Mines.c 617 } Mines.c 618 } Mines.c 619 else Mines.c 620 while (nPendingSpaces) Mines.c 621 { Mines.c 622 uc[0]=(unsigned char) ' '; 00000722 E220 MOV #32,R2 00000724 2920 MOV.B R2,@R9 Mines.c 623 PrintMini(nX,6*m_nLinesWritten,&uc[0],MINI_OVER); 00000726 E710 MOV #16,R7 00000728 65E0 MOV.B @R14,R5 0000072A 6693 MOV R9,R6 0000072C 6353 MOV R5,R3 0000072E 4500 SHLL R5 00000730 4308 SHLL2 R3 00000732 353C ADD R3,R5 00000734 4A0B JSR @R10 00000736 64DE EXTS.B R13,R4 Mines.c 624 nX+=m_ucCharWidth[' ']; 00000738 52F3 MOV.L @(12,R15),R2 0000073A 6322 MOV.L @R2,R3 Mines.c 625 --nPendingSpaces; 0000073C 62F1 MOV.W @R15,R2 0000073E 3D3C ADD R3,R13 00000740 72FF ADD #-1,R2 00000742 2F21 MOV.W R2,@R15 00000744 L1439: 00000744 63F1 MOV.W @R15,R3 00000746 2338 TST R3,R3 00000748 8BEB BF L1440 0000074A L1438: Mines.c 626 } SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 28 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 627 if (szText[nTokenStart]) 0000074A 60CF EXTS.W R12,R0 0000074C 038C MOV.B @(R0,R8),R3 0000074E 2338 TST R3,R3 00000750 8B01 BF L2030 00000752 A120 BRA L1431 00000754 0009 NOP 00000756 L2030: Mines.c 628 { Mines.c 629 nTokenStop=nTokenStart; 00000756 60C3 MOV R12,R0 Mines.c 630 while (szText[nTokenStop] && (szText[nTokenStop] != ' ')) 00000758 A003 BRA L1442 0000075A 81F2 MOV.W R0,@(4,R15) 0000075C L1443: Mines.c 631 ++nTokenStop; 0000075C 85F2 MOV.W @(4,R15),R0 0000075E 7001 ADD #1,R0 00000760 81F2 MOV.W R0,@(4,R15) 00000762 L1442: 00000762 85F2 MOV.W @(4,R15),R0 00000764 048C MOV.B @(R0,R8),R4 00000766 2448 TST R4,R4 00000768 8902 BT L1444 0000076A 604E EXTS.B R4,R0 0000076C 8820 CMP/EQ #32,R0 0000076E 8BF5 BF L1443 00000770 L1444: Mines.c 632 nTokenLen=TokenLen(szText,nTokenStart,nTokenStop); 00000770 85F2 MOV.W @(4,R15),R0 00000772 65C3 MOV R12,R5 00000774 6603 MOV R0,R6 00000776 BF3D BSR __$TokenLen 00000778 6483 MOV R8,R4 0000077A 6503 MOV R0,R5 0000077C 85F2 MOV.W @(4,R15),R0 0000077E 63CF EXTS.W R12,R3 00000780 2F02 MOV.L R0,@R15 00000782 62DE EXTS.B R13,R2 00000784 1F34 MOV.L R3,@(16,R15) 00000786 645F EXTS.W R5,R4 00000788 D00D MOV.L L2029+28,R0; __$m_nXMax 0000078A 324C ADD R4,R2 0000078C 6102 MOV.L @R0,R1 0000078E 3217 CMP/GT R1,R2 00000790 8901 BT L2031 00000792 A0CF BRA L1445 00000794 0009 NOP 00000796 L2031: Mines.c 633 if (nX+nTokenLen > m_nXMax) Mines.c 634 if (nTokenLen > m_nXMax) 00000796 6202 MOV.L @R0,R2 00000798 3427 CMP/GT R2,R4 0000079A 8901 BT L2032 0000079C A090 BRA L1446 0000079E 0009 NOP 000007A0 L2032: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 29 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 635 { Mines.c 636 while (nX < m_nXMax) 000007A0 A02D BRA L1447 000007A2 0009 NOP 000007A4 L2029: 000007A4 <00000000> .DATA.L L536 000007A8 <00000000> .DATA.L __slow_mvn 000007AC <00000000> .DATA.L __divls 000007B0 <00000000> .DATA.L __$m_ucCharWidth 000007B4 <00000080> .DATA.L H'00000080+__$m_ucCharWidth 000007B8 <00000000> .DATA.L _PrintMini 000007BC <00000000> .DATA.L __$m_nLinesWritten 000007C0 <00000000> .DATA.L __$m_nXMax 000007C4 <00000000> .DATA.L __$m_nLinesPerPage 000007C8 <00000000> .DATA.L L565 000007CC <00000000> .DATA.L _GetKey 000007D0 <00000000> .DATA.L _Bdisp_AllClr_DDVRAM 000007D4 L1448: Mines.c 637 { Mines.c 638 uc[0]=(unsigned char) (szText[nTokenStart]); 000007D4 63CF EXTS.W R12,R3 000007D6 338C ADD R8,R3 000007D8 1F31 MOV.L R3,@(4,R15) Mines.c 639 PrintMini(nX,6*m_nLinesWritten,&uc[0],MINI_OVER); 000007DA E710 MOV #16,R7 000007DC 6230 MOV.B @R3,R2 000007DE 6693 MOV R9,R6 000007E0 2920 MOV.B R2,@R9 000007E2 65E0 MOV.B @R14,R5 000007E4 6353 MOV R5,R3 000007E6 4500 SHLL R5 000007E8 4308 SHLL2 R3 000007EA 353C ADD R3,R5 000007EC 4A0B JSR @R10 000007EE 64DE EXTS.B R13,R4 Mines.c 640 nX+=m_ucCharWidth[szText[nTokenStart]]; 000007F0 52F1 MOV.L @(4,R15),R2 Mines.c 641 ++nTokenStart; 000007F2 7C01 ADD #1,R12 000007F4 D095 MOV.L L2033,R0 ; __$m_ucCharWidth 000007F6 6320 MOV.B @R2,R3 000007F8 4308 SHLL2 R3 000007FA 023E MOV.L @(R0,R3),R2 000007FC 3D2C ADD R2,R13 000007FE L1447: 000007FE 63DE EXTS.B R13,R3 00000800 D193 MOV.L L2033+4,R1 ; __$m_nXMax 00000802 6212 MOV.L @R1,R2 00000804 3323 CMP/GE R2,R3 00000806 8BE5 BF L1448 Mines.c 642 } Mines.c 643 ++m_nLinesWritten; 00000808 60E0 MOV.B @R14,R0 0000080A 7001 ADD #1,R0 0000080C 2E00 MOV.B R0,@R14 Mines.c 644 nX=0; Mines.c 645 if (m_nLinesWritten >= (m_nLinesPerPage-1)) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 30 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000080E 63E0 MOV.B @R14,R3 00000810 D190 MOV.L L2033+8,R1 ; __$m_nLinesPerPage 00000812 6211 MOV.W @R1,R2 00000814 72FF ADD #-1,R2 00000816 3323 CMP/GE R2,R3 00000818 8F11 BF/S L1449 0000081A 6DB3 MOV R11,R13 Mines.c 646 { Mines.c 647 PrintMini(nX,6*m_nLinesWritten, Mines.c 648 (unsigned char *) "(press a key to continue)",MINI_OVER); 0000081C D68E MOV.L L2033+12,R6; L565 0000081E E710 MOV #16,R7 00000820 65E0 MOV.B @R14,R5 00000822 6353 MOV R5,R3 00000824 4500 SHLL R5 00000826 4308 SHLL2 R3 00000828 353C ADD R3,R5 0000082A 4A0B JSR @R10 0000082C E400 MOV #0,R4 Mines.c 649 GetKey(&uiKey); 0000082E 64F3 MOV R15,R4 00000830 D28A MOV.L L2033+16,R2; _GetKey 00000832 420B JSR @R2 00000834 7408 ADD #8,R4 Mines.c 650 Bdisp_AllClr_DDVRAM(); 00000836 D38A MOV.L L2033+20,R3; _Bdisp_AllClr_DDVRAM 00000838 430B JSR @R3 0000083A 0009 NOP Mines.c 651 m_nLinesWritten=0; 0000083C 2EB0 MOV.B R11,@R14 0000083E L1449: Mines.c 652 } Mines.c 653 while (nTokenStart < nTokenStop) 0000083E 62CF EXTS.W R12,R2 00000840 63F2 MOV.L @R15,R3 00000842 3233 CMP/GE R3,R2 00000844 8B01 BF L2034 00000846 A091 BRA L1458 00000848 0009 NOP 0000084A L2034: 0000084A L1451: Mines.c 654 { Mines.c 655 uc[0]=(unsigned char) (szText[nTokenStart]); 0000084A 61CF EXTS.W R12,R1 0000084C 318C ADD R8,R1 Mines.c 656 PrintMini(nX,6*m_nLinesWritten,&uc[0],MINI_OVER); 0000084E E710 MOV #16,R7 00000850 1F11 MOV.L R1,@(4,R15) 00000852 6693 MOV R9,R6 00000854 6310 MOV.B @R1,R3 00000856 2930 MOV.B R3,@R9 00000858 65E0 MOV.B @R14,R5 0000085A 6353 MOV R5,R3 0000085C 4500 SHLL R5 0000085E 4308 SHLL2 R3 00000860 353C ADD R3,R5 00000862 4A0B JSR @R10 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 31 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000864 64DE EXTS.B R13,R4 Mines.c 657 nX+=m_ucCharWidth[szText[nTokenStart]]; 00000866 52F1 MOV.L @(4,R15),R2 00000868 D078 MOV.L L2033,R0 ; __$m_ucCharWidth 0000086A 6320 MOV.B @R2,R3 Mines.c 658 if (nX > m_nXMax) 0000086C D178 MOV.L L2033+4,R1 ; __$m_nXMax 0000086E 4308 SHLL2 R3 00000870 023E MOV.L @(R0,R3),R2 00000872 3D2C ADD R2,R13 00000874 6212 MOV.L @R1,R2 00000876 63DE EXTS.B R13,R3 00000878 3327 CMP/GT R2,R3 0000087A 8B1A BF L1452 Mines.c 659 { Mines.c 660 ++m_nLinesWritten; 0000087C 63E0 MOV.B @R14,R3 0000087E 7301 ADD #1,R3 00000880 2E30 MOV.B R3,@R14 Mines.c 661 nX=0; Mines.c 662 if (m_nLinesWritten >= (m_nLinesPerPage-1)) 00000882 62E0 MOV.B @R14,R2 00000884 D073 MOV.L L2033+8,R0 ; __$m_nLinesPerPage 00000886 6301 MOV.W @R0,R3 00000888 73FF ADD #-1,R3 0000088A 3233 CMP/GE R3,R2 0000088C 8F11 BF/S L1452 0000088E 6DB3 MOV R11,R13 Mines.c 663 { Mines.c 664 PrintMini(nX,6*m_nLinesWritten, Mines.c 665 (unsigned char *) "(press a key to continue)", Mines.c 666 MINI_OVER); 00000890 D671 MOV.L L2033+12,R6; L565 00000892 E710 MOV #16,R7 00000894 65E0 MOV.B @R14,R5 00000896 6353 MOV R5,R3 00000898 4500 SHLL R5 0000089A 4308 SHLL2 R3 0000089C 353C ADD R3,R5 0000089E 4A0B JSR @R10 000008A0 E400 MOV #0,R4 Mines.c 667 GetKey(&uiKey); 000008A2 64F3 MOV R15,R4 000008A4 D26D MOV.L L2033+16,R2; _GetKey 000008A6 420B JSR @R2 000008A8 7408 ADD #8,R4 Mines.c 668 Bdisp_AllClr_DDVRAM(); 000008AA D36D MOV.L L2033+20,R3; _Bdisp_AllClr_DDVRAM 000008AC 430B JSR @R3 000008AE 0009 NOP Mines.c 669 m_nLinesWritten=0; 000008B0 2EB0 MOV.B R11,@R14 000008B2 L1452: Mines.c 670 } Mines.c 671 } Mines.c 672 ++nTokenStart; 000008B2 7C01 ADD #1,R12 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 32 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000008B4 63F2 MOV.L @R15,R3 000008B6 62CF EXTS.W R12,R2 000008B8 3233 CMP/GE R3,R2 000008BA 8BC6 BF L1451 000008BC A056 BRA L1458 000008BE 0009 NOP 000008C0 L1446: Mines.c 673 } Mines.c 674 } Mines.c 675 else Mines.c 676 { Mines.c 677 ++m_nLinesWritten; 000008C0 62E0 MOV.B @R14,R2 000008C2 7201 ADD #1,R2 000008C4 2E20 MOV.B R2,@R14 Mines.c 678 nX=0; Mines.c 679 if (m_nLinesWritten >= (m_nLinesPerPage-1)) 000008C6 63E0 MOV.B @R14,R3 000008C8 D162 MOV.L L2033+8,R1 ; __$m_nLinesPerPage 000008CA 6211 MOV.W @R1,R2 000008CC 72FF ADD #-1,R2 000008CE 3323 CMP/GE R2,R3 000008D0 8F11 BF/S L1455 000008D2 6DB3 MOV R11,R13 Mines.c 680 { Mines.c 681 PrintMini(nX,6*m_nLinesWritten, Mines.c 682 (unsigned char *) "(press a key to continue)",MINI_OVER); 000008D4 D660 MOV.L L2033+12,R6; L565 000008D6 E710 MOV #16,R7 000008D8 65E0 MOV.B @R14,R5 000008DA 6353 MOV R5,R3 000008DC 4500 SHLL R5 000008DE 4308 SHLL2 R3 000008E0 353C ADD R3,R5 000008E2 4A0B JSR @R10 000008E4 E400 MOV #0,R4 Mines.c 683 GetKey(&uiKey); 000008E6 64F3 MOV R15,R4 000008E8 D25C MOV.L L2033+16,R2; _GetKey 000008EA 420B JSR @R2 000008EC 7408 ADD #8,R4 Mines.c 684 Bdisp_AllClr_DDVRAM(); 000008EE D35C MOV.L L2033+20,R3; _Bdisp_AllClr_DDVRAM 000008F0 430B JSR @R3 000008F2 0009 NOP Mines.c 685 m_nLinesWritten=0; 000008F4 2EB0 MOV.B R11,@R14 000008F6 L1455: Mines.c 686 } Mines.c 687 while (nTokenStart < nTokenStop) 000008F6 62F2 MOV.L @R15,R2 000008F8 53F4 MOV.L @(16,R15),R3 000008FA 3323 CMP/GE R2,R3 000008FC 8936 BT L1458 000008FE L1457: Mines.c 688 { Mines.c 689 uc[0]=(unsigned char) (szText[nTokenStart]); SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 33 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000008FE 63CF EXTS.W R12,R3 00000900 338C ADD R8,R3 Mines.c 690 PrintMini(nX,6*m_nLinesWritten,&uc[0],MINI_OVER); 00000902 E710 MOV #16,R7 00000904 1F31 MOV.L R3,@(4,R15) 00000906 6693 MOV R9,R6 00000908 6230 MOV.B @R3,R2 0000090A 2920 MOV.B R2,@R9 0000090C 65E0 MOV.B @R14,R5 0000090E 6353 MOV R5,R3 00000910 4500 SHLL R5 00000912 4308 SHLL2 R3 00000914 353C ADD R3,R5 00000916 4A0B JSR @R10 00000918 64DE EXTS.B R13,R4 Mines.c 691 nX+=m_ucCharWidth[szText[nTokenStart]]; Mines.c 692 ++nTokenStart; 0000091A 7C01 ADD #1,R12 0000091C 52F1 MOV.L @(4,R15),R2 0000091E 6320 MOV.B @R2,R3 00000920 D04A MOV.L L2033,R0 ; __$m_ucCharWidth 00000922 4308 SHLL2 R3 00000924 023E MOV.L @(R0,R3),R2 00000926 63CF EXTS.W R12,R3 00000928 3D2C ADD R2,R13 0000092A 62F2 MOV.L @R15,R2 0000092C 3323 CMP/GE R2,R3 0000092E 8BE6 BF L1457 00000930 A01C BRA L1458 00000932 0009 NOP 00000934 L1445: Mines.c 693 } Mines.c 694 } Mines.c 695 else Mines.c 696 while (nTokenStart < nTokenStop) 00000934 62F2 MOV.L @R15,R2 00000936 3323 CMP/GE R2,R3 00000938 8918 BT L1458 0000093A L1460: Mines.c 697 { Mines.c 698 uc[0]=(unsigned char) (szText[nTokenStart]); 0000093A 63CF EXTS.W R12,R3 0000093C 338C ADD R8,R3 Mines.c 699 PrintMini(nX,6*m_nLinesWritten,&uc[0],MINI_OVER); 0000093E E710 MOV #16,R7 00000940 1F31 MOV.L R3,@(4,R15) 00000942 6693 MOV R9,R6 00000944 6230 MOV.B @R3,R2 00000946 2920 MOV.B R2,@R9 00000948 65E0 MOV.B @R14,R5 0000094A 6353 MOV R5,R3 0000094C 4500 SHLL R5 0000094E 4308 SHLL2 R3 00000950 353C ADD R3,R5 00000952 4A0B JSR @R10 00000954 64DE EXTS.B R13,R4 Mines.c 700 nX+=m_ucCharWidth[szText[nTokenStart]]; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 34 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 701 ++nTokenStart; 00000956 7C01 ADD #1,R12 00000958 52F1 MOV.L @(4,R15),R2 0000095A 6320 MOV.B @R2,R3 0000095C D03B MOV.L L2033,R0 ; __$m_ucCharWidth 0000095E 4308 SHLL2 R3 00000960 023E MOV.L @(R0,R3),R2 00000962 63CF EXTS.W R12,R3 00000964 3D2C ADD R2,R13 00000966 62F2 MOV.L @R15,R2 00000968 3323 CMP/GE R2,R3 0000096A 8BE6 BF L1460 0000096C L1458: Mines.c 702 } Mines.c 703 switch (szText[nTokenStop-1]) 0000096C 60F2 MOV.L @R15,R0 0000096E 70FF ADD #-1,R0 00000970 008C MOV.B @(R0,R8),R0 00000972 882E CMP/EQ #46,R0 00000974 8905 BT L1281 00000976 883F CMP/EQ #63,R0 00000978 8906 BT L1282 0000097A 8821 CMP/EQ #33,R0 0000097C 8906 BT L1283 0000097E A008 BRA L1284 00000980 0009 NOP 00000982 L1281: ; case label Mines.c 704 { Mines.c 705 case '.': Mines.c 706 nPendingSpaces=2; 00000982 E302 MOV #2,R3 Mines.c 707 break; 00000984 A007 BRA L1431 00000986 2F31 MOV.W R3,@R15 00000988 L1282: ; case label Mines.c 708 case '?': Mines.c 709 nPendingSpaces=2; Mines.c 710 break; 00000988 A004 BRA L1977 0000098A E102 MOV #2,R1 0000098C L1283: ; case label Mines.c 711 case '!': Mines.c 712 nPendingSpaces=2; 0000098C E202 MOV #2,R2 Mines.c 713 break; 0000098E A002 BRA L1431 00000990 2F21 MOV.W R2,@R15 00000992 L1284: ; default label Mines.c 714 default: Mines.c 715 nPendingSpaces=1; 00000992 E101 MOV #1,R1 Mines.c 716 break; 00000994 L1977: 00000994 2F11 MOV.W R1,@R15 00000996 L1431: 00000996 60CF EXTS.W R12,R0 00000998 038C MOV.B @(R0,R8),R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 35 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000099A 2338 TST R3,R3 0000099C 8901 BT L2035 0000099E AE91 BRA L1433 000009A0 0009 NOP 000009A2 L2035: Mines.c 717 } Mines.c 718 } Mines.c 719 } Mines.c 720 if (nX > 1) 000009A2 6DDE EXTS.B R13,R13 000009A4 E201 MOV #1,R2 000009A6 3D27 CMP/GT R2,R13 000009A8 8B02 BF L1463 Mines.c 721 { Mines.c 722 ++m_nLinesWritten; 000009AA 61E0 MOV.B @R14,R1 000009AC 7101 ADD #1,R1 000009AE 2E10 MOV.B R1,@R14 Mines.c 723 nX=0; Mines.c 724 } Mines.c 725 return; Mines.c 726 } 000009B0 L1463: 000009B0 7F18 ADD #24,R15 000009B2 4F16 LDS.L @R15+,MACL 000009B4 4F26 LDS.L @R15+,PR 000009B6 68F6 MOV.L @R15+,R8 000009B8 69F6 MOV.L @R15+,R9 000009BA 6AF6 MOV.L @R15+,R10 000009BC 6BF6 MOV.L @R15+,R11 000009BE 6CF6 MOV.L @R15+,R12 000009C0 6DF6 MOV.L @R15+,R13 000009C2 000B RTS 000009C4 6EF6 MOV.L @R15+,R14 Mines.c 727 Mines.c 728 static void DisplayLargeFontParagraph( 000009C6 __$DisplayLargeFontParagraph: ; function: DisplayLargeFontParagraph ; frame size=44 000009C6 2FE6 MOV.L R14,@-R15 000009C8 2FD6 MOV.L R13,@-R15 000009CA 2FC6 MOV.L R12,@-R15 000009CC 2FB6 MOV.L R11,@-R15 000009CE 2FA6 MOV.L R10,@-R15 000009D0 2F96 MOV.L R9,@-R15 Mines.c 729 char *szText) Mines.c 730 { Mines.c 731 int8 nColumn; Mines.c 732 int16 nPendingSpaces; Mines.c 733 int16 nTokenLen; Mines.c 734 int16 nTokenStart; Mines.c 735 int16 nTokenStop; Mines.c 736 unsigned int uiKey; Mines.c 737 Mines.c 738 nColumn=1; 000009D2 EA01 MOV #1,R10 000009D4 DB23 MOV.L L2033+24,R11; _locate Mines.c 739 nPendingSpaces=0; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 36 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000009D6 E900 MOV #0,R9 000009D8 DE23 MOV.L L2033+28,R14; __$m_nLinesWritten 000009DA 6CA3 MOV R10,R12 000009DC 2F86 MOV.L R8,@-R15 000009DE 6843 MOV R4,R8 000009E0 4F22 STS.L PR,@-R15 000009E2 7FF4 ADD #-12,R15 000009E4 2F91 MOV.W R9,@R15 Mines.c 740 nTokenStart=0; Mines.c 741 while (szText[nTokenStart] && (szText[nTokenStart] == ' ')) 000009E6 A026 BRA L1464 000009E8 6D93 MOV R9,R13 000009EA L1465: Mines.c 742 { Mines.c 743 WriteChar(' '); 000009EA BD6B BSR __$WriteChar 000009EC E420 MOV #32,R4 Mines.c 744 if (++nColumn > m_nMaxLineLen) 000009EE 7C01 ADD #1,R12 000009F0 D11E MOV.L L2033+32,R1; __$m_nMaxLineLen 000009F2 63CE EXTS.B R12,R3 000009F4 6211 MOV.W @R1,R2 000009F6 3327 CMP/GT R2,R3 000009F8 8B1C BF L1466 Mines.c 745 { Mines.c 746 ++m_nLinesWritten; 000009FA 62E0 MOV.B @R14,R2 000009FC 7201 ADD #1,R2 000009FE 2E20 MOV.B R2,@R14 Mines.c 747 locate(1,m_nLinesWritten+1); 00000A00 65E0 MOV.B @R14,R5 00000A02 7501 ADD #1,R5 00000A04 4B0B JSR @R11 00000A06 E401 MOV #1,R4 Mines.c 748 nColumn=1; Mines.c 749 if (m_nLinesWritten >= (m_nLinesPerPage-1)) 00000A08 63E0 MOV.B @R14,R3 00000A0A D112 MOV.L L2033+8,R1 ; __$m_nLinesPerPage 00000A0C 6211 MOV.W @R1,R2 00000A0E 72FF ADD #-1,R2 00000A10 3323 CMP/GE R2,R3 00000A12 8F0F BF/S L1466 00000A14 6CA3 MOV R10,R12 Mines.c 750 { Mines.c 751 Print((unsigned char *) " (cont\'d)"); 00000A16 D416 MOV.L L2033+36,R4; L594 00000A18 D216 MOV.L L2033+40,R2; _Print 00000A1A 420B JSR @R2 00000A1C 0009 NOP Mines.c 752 GetKey(&uiKey); 00000A1E 64F3 MOV R15,R4 00000A20 D30E MOV.L L2033+16,R3; _GetKey 00000A22 430B JSR @R3 00000A24 7404 ADD #4,R4 Mines.c 753 Bdisp_AllClr_DDVRAM(); 00000A26 D20E MOV.L L2033+20,R2; _Bdisp_AllClr_DDVRAM 00000A28 420B JSR @R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 37 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000A2A 0009 NOP Mines.c 754 m_nLinesWritten=0; 00000A2C 2E90 MOV.B R9,@R14 Mines.c 755 locate(1,1); 00000A2E E501 MOV #1,R5 00000A30 4B0B JSR @R11 00000A32 6453 MOV R5,R4 00000A34 L1466: Mines.c 756 } Mines.c 757 } Mines.c 758 ++nTokenStart; 00000A34 7D01 ADD #1,R13 00000A36 L1464: 00000A36 60DF EXTS.W R13,R0 00000A38 048C MOV.B @(R0,R8),R4 00000A3A 2448 TST R4,R4 00000A3C 8B01 BF L2036 00000A3E A128 BRA L1469 00000A40 0009 NOP 00000A42 L2036: 00000A42 604E EXTS.B R4,R0 00000A44 8820 CMP/EQ #32,R0 00000A46 89D0 BT L1465 Mines.c 759 } Mines.c 760 while (szText[nTokenStart]) 00000A48 A123 BRA L1469 00000A4A 0009 NOP 00000A4C L2033: 00000A4C <00000000> .DATA.L __$m_ucCharWidth 00000A50 <00000000> .DATA.L __$m_nXMax 00000A54 <00000000> .DATA.L __$m_nLinesPerPage 00000A58 <00000000> .DATA.L L565 00000A5C <00000000> .DATA.L _GetKey 00000A60 <00000000> .DATA.L _Bdisp_AllClr_DDVRAM 00000A64 <00000000> .DATA.L _locate 00000A68 <00000000> .DATA.L __$m_nLinesWritten 00000A6C <00000000> .DATA.L __$m_nMaxLineLen 00000A70 <00000000> .DATA.L L594 00000A74 <00000000> .DATA.L _Print 00000A78 L1472: Mines.c 761 { Mines.c 762 while (szText[nTokenStart] && (szText[nTokenStart] == ' ')) Mines.c 763 ++nTokenStart; 00000A78 7D01 ADD #1,R13 00000A7A L1471: 00000A7A 60DF EXTS.W R13,R0 00000A7C 048C MOV.B @(R0,R8),R4 00000A7E 2448 TST R4,R4 00000A80 8902 BT L1473 00000A82 604E EXTS.B R4,R0 00000A84 8820 CMP/EQ #32,R0 00000A86 89F7 BT L1472 00000A88 L1473: Mines.c 764 if (nColumn+nPendingSpaces > m_nMaxLineLen) 00000A88 63F1 MOV.W @R15,R3 00000A8A 62CE EXTS.B R12,R2 00000A8C D17A MOV.L L2037+2,R1 ; __$m_nMaxLineLen SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 38 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000A8E 323C ADD R3,R2 00000A90 6311 MOV.W @R1,R3 00000A92 3237 CMP/GT R3,R2 00000A94 8B25 BF L1477 Mines.c 765 { Mines.c 766 ++m_nLinesWritten; 00000A96 62E0 MOV.B @R14,R2 00000A98 7201 ADD #1,R2 00000A9A 2E20 MOV.B R2,@R14 Mines.c 767 locate(1,m_nLinesWritten+1); 00000A9C 65E0 MOV.B @R14,R5 00000A9E 7501 ADD #1,R5 00000AA0 4B0B JSR @R11 00000AA2 E401 MOV #1,R4 Mines.c 768 nPendingSpaces=0; 00000AA4 2F91 MOV.W R9,@R15 Mines.c 769 nColumn=1; Mines.c 770 if (m_nLinesWritten >= (m_nLinesPerPage-1)) 00000AA6 63E0 MOV.B @R14,R3 00000AA8 D174 MOV.L L2037+6,R1 ; __$m_nLinesPerPage 00000AAA 6211 MOV.W @R1,R2 00000AAC 72FF ADD #-1,R2 00000AAE 3323 CMP/GE R2,R3 00000AB0 8F1A BF/S L1476 00000AB2 6CA3 MOV R10,R12 Mines.c 771 { Mines.c 772 Print((unsigned char *) " (cont\'d)"); 00000AB4 D472 MOV.L L2037+10,R4; L594 00000AB6 D273 MOV.L L2037+14,R2; _Print 00000AB8 420B JSR @R2 00000ABA 0009 NOP Mines.c 773 GetKey(&uiKey); 00000ABC D372 MOV.L L2037+18,R3; _GetKey 00000ABE 64F3 MOV R15,R4 00000AC0 430B JSR @R3 00000AC2 7404 ADD #4,R4 Mines.c 774 Bdisp_AllClr_DDVRAM(); 00000AC4 D271 MOV.L L2037+22,R2; _Bdisp_AllClr_DDVRAM 00000AC6 420B JSR @R2 00000AC8 0009 NOP Mines.c 775 m_nLinesWritten=0; Mines.c 776 locate(1,1); 00000ACA E501 MOV #1,R5 00000ACC 2E90 MOV.B R9,@R14 00000ACE 4B0B JSR @R11 00000AD0 6453 MOV R5,R4 00000AD2 A009 BRA L1476 00000AD4 0009 NOP 00000AD6 L1478: Mines.c 777 } Mines.c 778 } Mines.c 779 else Mines.c 780 while (nPendingSpaces) Mines.c 781 { Mines.c 782 WriteChar(' '); 00000AD6 BCF5 BSR __$WriteChar 00000AD8 E420 MOV #32,R4 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 39 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 783 ++nColumn; 00000ADA 7C01 ADD #1,R12 Mines.c 784 --nPendingSpaces; 00000ADC 62F1 MOV.W @R15,R2 00000ADE 72FF ADD #-1,R2 00000AE0 2F21 MOV.W R2,@R15 00000AE2 L1477: 00000AE2 63F1 MOV.W @R15,R3 00000AE4 2338 TST R3,R3 00000AE6 8BF6 BF L1478 00000AE8 L1476: Mines.c 785 } Mines.c 786 if (szText[nTokenStart]) 00000AE8 60DF EXTS.W R13,R0 00000AEA 038C MOV.B @(R0,R8),R3 00000AEC 2338 TST R3,R3 00000AEE 8B01 BF L2038 00000AF0 A0CF BRA L1469 00000AF2 0009 NOP 00000AF4 L2038: Mines.c 787 { Mines.c 788 nTokenStop=nTokenStart; Mines.c 789 while (szText[nTokenStop] && (szText[nTokenStop] != ' ')) 00000AF4 A001 BRA L1480 00000AF6 64D3 MOV R13,R4 00000AF8 L1481: Mines.c 790 ++nTokenStop; 00000AF8 7401 ADD #1,R4 00000AFA L1480: 00000AFA 604F EXTS.W R4,R0 00000AFC 058C MOV.B @(R0,R8),R5 00000AFE 2558 TST R5,R5 00000B00 8902 BT L1482 00000B02 605E EXTS.B R5,R0 00000B04 8820 CMP/EQ #32,R0 00000B06 8BF7 BF L1481 00000B08 L1482: 00000B08 D25B MOV.L L2037+2,R2 ; __$m_nMaxLineLen 00000B0A 63DF EXTS.W R13,R3 00000B0C 6521 MOV.W @R2,R5 00000B0E 61CE EXTS.B R12,R1 Mines.c 791 nTokenLen=nTokenStop-nTokenStart; 00000B10 6743 MOV R4,R7 00000B12 37D8 SUB R13,R7 00000B14 667F EXTS.W R7,R6 00000B16 644F EXTS.W R4,R4 00000B18 2F42 MOV.L R4,@R15 00000B1A 316C ADD R6,R1 00000B1C 1F32 MOV.L R3,@(8,R15) 00000B1E 3157 CMP/GT R5,R1 00000B20 8901 BT L2039 00000B22 A088 BRA L1483 00000B24 0009 NOP 00000B26 L2039: Mines.c 792 if (nColumn+nTokenLen > m_nMaxLineLen) Mines.c 793 if (nTokenLen > m_nMaxLineLen) 00000B26 3657 CMP/GT R5,R6 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 40 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000B28 8B59 BF L1484 Mines.c 794 { Mines.c 795 while (nColumn < m_nMaxLineLen) 00000B2A A005 BRA L1485 00000B2C 0009 NOP 00000B2E L1486: Mines.c 796 { Mines.c 797 WriteChar(szText[nTokenStart]); 00000B2E 60DF EXTS.W R13,R0 00000B30 BCC8 BSR __$WriteChar 00000B32 048C MOV.B @(R0,R8),R4 Mines.c 798 ++nColumn; 00000B34 7C01 ADD #1,R12 Mines.c 799 ++nTokenStart; 00000B36 7D01 ADD #1,R13 00000B38 L1485: 00000B38 D14F MOV.L L2037+2,R1 ; __$m_nMaxLineLen 00000B3A 62CE EXTS.B R12,R2 00000B3C 6311 MOV.W @R1,R3 00000B3E 3233 CMP/GE R3,R2 00000B40 8BF5 BF L1486 Mines.c 800 } Mines.c 801 ++m_nLinesWritten; 00000B42 62E0 MOV.B @R14,R2 00000B44 7201 ADD #1,R2 00000B46 2E20 MOV.B R2,@R14 Mines.c 802 locate(1,m_nLinesWritten+1); 00000B48 65E0 MOV.B @R14,R5 00000B4A 7501 ADD #1,R5 00000B4C 4B0B JSR @R11 00000B4E E401 MOV #1,R4 Mines.c 803 if (m_nLinesWritten >= (m_nLinesPerPage-1)) 00000B50 63E0 MOV.B @R14,R3 00000B52 D14A MOV.L L2037+6,R1 ; __$m_nLinesPerPage 00000B54 6211 MOV.W @R1,R2 00000B56 72FF ADD #-1,R2 00000B58 3323 CMP/GE R2,R3 00000B5A 8B0E BF L1487 Mines.c 804 { Mines.c 805 Print((unsigned char *) " (cont\'d)"); 00000B5C D448 MOV.L L2037+10,R4; L594 00000B5E D249 MOV.L L2037+14,R2; _Print 00000B60 420B JSR @R2 00000B62 0009 NOP Mines.c 806 GetKey(&uiKey); 00000B64 D348 MOV.L L2037+18,R3; _GetKey 00000B66 64F3 MOV R15,R4 00000B68 430B JSR @R3 00000B6A 7404 ADD #4,R4 Mines.c 807 Bdisp_AllClr_DDVRAM(); 00000B6C D247 MOV.L L2037+22,R2; _Bdisp_AllClr_DDVRAM 00000B6E 420B JSR @R2 00000B70 0009 NOP Mines.c 808 m_nLinesWritten=0; Mines.c 809 locate(1,1); 00000B72 E501 MOV #1,R5 00000B74 2E90 MOV.B R9,@R14 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 41 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000B76 4B0B JSR @R11 00000B78 6453 MOV R5,R4 00000B7A L1487: Mines.c 810 } Mines.c 811 nColumn=1; Mines.c 812 while (nTokenStart < nTokenStop) 00000B7A 63DF EXTS.W R13,R3 00000B7C 62F2 MOV.L @R15,R2 00000B7E 3323 CMP/GE R2,R3 00000B80 8D65 BT/S L1496 00000B82 6CA3 MOV R10,R12 00000B84 L1489: Mines.c 813 { Mines.c 814 WriteChar(szText[nTokenStart]); 00000B84 60DF EXTS.W R13,R0 00000B86 BC9D BSR __$WriteChar 00000B88 048C MOV.B @(R0,R8),R4 Mines.c 815 if (++nColumn > m_nMaxLineLen) 00000B8A 7C01 ADD #1,R12 00000B8C D13A MOV.L L2037+2,R1 ; __$m_nMaxLineLen 00000B8E 62CE EXTS.B R12,R2 00000B90 6311 MOV.W @R1,R3 00000B92 3237 CMP/GT R3,R2 00000B94 8B1C BF L1490 Mines.c 816 { Mines.c 817 ++m_nLinesWritten; 00000B96 62E0 MOV.B @R14,R2 00000B98 7201 ADD #1,R2 00000B9A 2E20 MOV.B R2,@R14 Mines.c 818 locate(1,m_nLinesWritten+1); 00000B9C 65E0 MOV.B @R14,R5 00000B9E 7501 ADD #1,R5 00000BA0 4B0B JSR @R11 00000BA2 E401 MOV #1,R4 Mines.c 819 if (m_nLinesWritten >= (m_nLinesPerPage-1)) 00000BA4 63E0 MOV.B @R14,R3 00000BA6 D135 MOV.L L2037+6,R1 ; __$m_nLinesPerPage 00000BA8 6211 MOV.W @R1,R2 00000BAA 72FF ADD #-1,R2 00000BAC 3323 CMP/GE R2,R3 00000BAE 8B0E BF L1491 Mines.c 820 { Mines.c 821 Print((unsigned char *) " (cont\'d)"); 00000BB0 D433 MOV.L L2037+10,R4; L594 00000BB2 D234 MOV.L L2037+14,R2; _Print 00000BB4 420B JSR @R2 00000BB6 0009 NOP Mines.c 822 GetKey(&uiKey); 00000BB8 D333 MOV.L L2037+18,R3; _GetKey 00000BBA 64F3 MOV R15,R4 00000BBC 430B JSR @R3 00000BBE 7404 ADD #4,R4 Mines.c 823 Bdisp_AllClr_DDVRAM(); 00000BC0 D232 MOV.L L2037+22,R2; _Bdisp_AllClr_DDVRAM 00000BC2 420B JSR @R2 00000BC4 0009 NOP Mines.c 824 m_nLinesWritten=0; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 42 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 825 locate(1,1); 00000BC6 E501 MOV #1,R5 00000BC8 2E90 MOV.B R9,@R14 00000BCA 4B0B JSR @R11 00000BCC 6453 MOV R5,R4 00000BCE L1491: Mines.c 826 } Mines.c 827 nColumn=1; 00000BCE 6CA3 MOV R10,R12 00000BD0 L1490: 00000BD0 62F2 MOV.L @R15,R2 Mines.c 828 } Mines.c 829 ++nTokenStart; 00000BD2 7D01 ADD #1,R13 00000BD4 63DF EXTS.W R13,R3 00000BD6 3323 CMP/GE R2,R3 00000BD8 8BD4 BF L1489 00000BDA A038 BRA L1496 00000BDC 0009 NOP 00000BDE L1484: Mines.c 830 } Mines.c 831 } Mines.c 832 else Mines.c 833 { Mines.c 834 ++m_nLinesWritten; 00000BDE 61E0 MOV.B @R14,R1 00000BE0 7101 ADD #1,R1 00000BE2 2E10 MOV.B R1,@R14 Mines.c 835 locate(1,m_nLinesWritten+1); 00000BE4 65E0 MOV.B @R14,R5 00000BE6 7501 ADD #1,R5 00000BE8 4B0B JSR @R11 00000BEA E401 MOV #1,R4 Mines.c 836 if (m_nLinesWritten >= (m_nLinesPerPage-1)) 00000BEC 63E0 MOV.B @R14,R3 00000BEE D123 MOV.L L2037+6,R1 ; __$m_nLinesPerPage 00000BF0 6211 MOV.W @R1,R2 00000BF2 72FF ADD #-1,R2 00000BF4 3323 CMP/GE R2,R3 00000BF6 8B0E BF L1493 Mines.c 837 { Mines.c 838 Print((unsigned char *) " (cont\'d)"); 00000BF8 D421 MOV.L L2037+10,R4; L594 00000BFA D222 MOV.L L2037+14,R2; _Print 00000BFC 420B JSR @R2 00000BFE 0009 NOP Mines.c 839 GetKey(&uiKey); 00000C00 D321 MOV.L L2037+18,R3; _GetKey 00000C02 64F3 MOV R15,R4 00000C04 430B JSR @R3 00000C06 7404 ADD #4,R4 Mines.c 840 Bdisp_AllClr_DDVRAM(); 00000C08 D220 MOV.L L2037+22,R2; _Bdisp_AllClr_DDVRAM 00000C0A 420B JSR @R2 00000C0C 0009 NOP Mines.c 841 m_nLinesWritten=0; Mines.c 842 locate(1,1); SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 43 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000C0E E501 MOV #1,R5 00000C10 2E90 MOV.B R9,@R14 00000C12 4B0B JSR @R11 00000C14 6453 MOV R5,R4 00000C16 L1493: Mines.c 843 } Mines.c 844 nColumn=1; Mines.c 845 while (nTokenStart < nTokenStop) 00000C16 63F2 MOV.L @R15,R3 00000C18 52F2 MOV.L @(8,R15),R2 00000C1A 3233 CMP/GE R3,R2 00000C1C 8D17 BT/S L1496 00000C1E 6CA3 MOV R10,R12 00000C20 L1495: Mines.c 846 { Mines.c 847 WriteChar(szText[nTokenStart]); 00000C20 60DF EXTS.W R13,R0 00000C22 BC4F BSR __$WriteChar 00000C24 048C MOV.B @(R0,R8),R4 Mines.c 848 ++nColumn; Mines.c 849 ++nTokenStart; 00000C26 7D01 ADD #1,R13 00000C28 63F2 MOV.L @R15,R3 00000C2A 62DF EXTS.W R13,R2 00000C2C 3233 CMP/GE R3,R2 00000C2E 8FF7 BF/S L1495 00000C30 7C01 ADD #1,R12 00000C32 A00C BRA L1496 00000C34 0009 NOP 00000C36 L1483: Mines.c 850 } Mines.c 851 } Mines.c 852 else Mines.c 853 while (nTokenStart < nTokenStop) 00000C36 61F2 MOV.L @R15,R1 00000C38 3313 CMP/GE R1,R3 00000C3A 8908 BT L1496 00000C3C L1498: Mines.c 854 { Mines.c 855 WriteChar(szText[nTokenStart]); 00000C3C 60DF EXTS.W R13,R0 00000C3E BC41 BSR __$WriteChar 00000C40 048C MOV.B @(R0,R8),R4 Mines.c 856 ++nColumn; Mines.c 857 ++nTokenStart; 00000C42 7D01 ADD #1,R13 00000C44 63F2 MOV.L @R15,R3 00000C46 62DF EXTS.W R13,R2 00000C48 3233 CMP/GE R3,R2 00000C4A 8FF7 BF/S L1498 00000C4C 7C01 ADD #1,R12 00000C4E L1496: Mines.c 858 } Mines.c 859 switch (szText[nTokenStop-1]) 00000C4E 60F2 MOV.L @R15,R0 00000C50 70FF ADD #-1,R0 00000C52 008C MOV.B @(R0,R8),R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 44 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000C54 882E CMP/EQ #46,R0 00000C56 8905 BT L1286 00000C58 883F CMP/EQ #63,R0 00000C5A 8906 BT L1287 00000C5C 8821 CMP/EQ #33,R0 00000C5E 8907 BT L1288 00000C60 A016 BRA L1289 00000C62 0009 NOP 00000C64 L1286: ; case label Mines.c 860 { Mines.c 861 case '.': Mines.c 862 nPendingSpaces=2; 00000C64 E302 MOV #2,R3 Mines.c 863 break; 00000C66 A014 BRA L1469 00000C68 2F31 MOV.W R3,@R15 00000C6A L1287: ; case label Mines.c 864 case '?': Mines.c 865 nPendingSpaces=2; 00000C6A E102 MOV #2,R1 Mines.c 866 break; 00000C6C A011 BRA L1469 00000C6E 2F11 MOV.W R1,@R15 00000C70 L1288: ; case label Mines.c 867 case '!': Mines.c 868 nPendingSpaces=2; 00000C70 E202 MOV #2,R2 Mines.c 869 break; 00000C72 A00E BRA L1469 00000C74 2F21 MOV.W R2,@R15 00000C76 L2037: 00000C76 0000 .DATA.W 0 00000C78 <00000000> .DATA.L __$m_nMaxLineLen 00000C7C <00000000> .DATA.L __$m_nLinesPerPage 00000C80 <00000000> .DATA.L L594 00000C84 <00000000> .DATA.L _Print 00000C88 <00000000> .DATA.L _GetKey 00000C8C <00000000> .DATA.L _Bdisp_AllClr_DDVRAM 00000C90 L1289: ; default label Mines.c 870 default: Mines.c 871 nPendingSpaces=1; 00000C90 2FA1 MOV.W R10,@R15 Mines.c 872 break; 00000C92 L1469: 00000C92 60DF EXTS.W R13,R0 00000C94 038C MOV.B @(R0,R8),R3 00000C96 2338 TST R3,R3 00000C98 8901 BT L2040 00000C9A AEEE BRA L1471 00000C9C 0009 NOP 00000C9E L2040: Mines.c 873 } Mines.c 874 } Mines.c 875 } Mines.c 876 if (nColumn > 1) 00000C9E 6CCE EXTS.B R12,R12 00000CA0 3CA7 CMP/GT R10,R12 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 45 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000CA2 8B06 BF L1501 Mines.c 877 { Mines.c 878 ++m_nLinesWritten; 00000CA4 63E0 MOV.B @R14,R3 00000CA6 7301 ADD #1,R3 00000CA8 2E30 MOV.B R3,@R14 Mines.c 879 locate(1,m_nLinesWritten+1); 00000CAA 65E0 MOV.B @R14,R5 00000CAC 7501 ADD #1,R5 00000CAE 4B0B JSR @R11 00000CB0 E401 MOV #1,R4 Mines.c 880 } Mines.c 881 return; Mines.c 882 } 00000CB2 L1501: 00000CB2 7F0C ADD #12,R15 00000CB4 4F26 LDS.L @R15+,PR 00000CB6 68F6 MOV.L @R15+,R8 00000CB8 69F6 MOV.L @R15+,R9 00000CBA 6AF6 MOV.L @R15+,R10 00000CBC 6BF6 MOV.L @R15+,R11 00000CBE 6CF6 MOV.L @R15+,R12 00000CC0 6DF6 MOV.L @R15+,R13 00000CC2 000B RTS 00000CC4 6EF6 MOV.L @R15+,R14 Mines.c 883 Mines.c 884 static void DisplayParagraph( 00000CC6 __$DisplayParagraph: ; function: DisplayParagraph ; frame size=0 Mines.c 885 char *szText) Mines.c 886 { Mines.c 887 if (m_bUseSmallFont) 00000CC6 D226 MOV.L L2041+2,R2 ; __$m_bUseSmallFont 00000CC8 6320 MOV.B @R2,R3 00000CCA 2338 TST R3,R3 00000CCC 8901 BT L2042 00000CCE ACA6 BRA __$DisplaySmallFontParagraph 00000CD0 0009 NOP 00000CD2 L2042: Mines.c 888 DisplaySmallFontParagraph(szText); Mines.c 889 else Mines.c 890 DisplayLargeFontParagraph(szText); 00000CD2 AE78 BRA __$DisplayLargeFontParagraph 00000CD4 0009 NOP Mines.c 891 return; Mines.c 892 } Mines.c 893 Mines.c 894 static void DisplayText( 00000CD6 __$DisplayText: ; function: DisplayText ; frame size=20 00000CD6 2FE6 MOV.L R14,@-R15 00000CD8 2FD6 MOV.L R13,@-R15 00000CDA 4F22 STS.L PR,@-R15 Mines.c 895 char *szText, Mines.c 896 int8 *bErr) Mines.c 897 { Mines.c 898 int16 nBytes; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 46 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 899 Mines.c 900 nBytes=StrLen(&m_szParagraph[0]); 00000CDC DE21 MOV.L L2041+6,R14; __$m_szParagraph 00000CDE 7FF8 ADD #-8,R15 00000CE0 2F42 MOV.L R4,@R15 00000CE2 1F51 MOV.L R5,@(4,R15) 00000CE4 BC0A BSR __$StrLen 00000CE6 64E2 MOV.L @R14,R4 Mines.c 901 if (m_szParagraph[0]) 00000CE8 62E2 MOV.L @R14,R2 00000CEA 6320 MOV.B @R2,R3 00000CEC 2338 TST R3,R3 00000CEE 8D04 BT/S L1505 00000CF0 6D03 MOV R0,R13 Mines.c 902 nBytes+=StrLen(" "); 00000CF2 D41D MOV.L L2041+10,R4; L618 00000CF4 BC02 BSR __$StrLen 00000CF6 0009 NOP 00000CF8 3D0C ADD R0,R13 00000CFA L1505: Mines.c 903 nBytes+=StrLen(szText); 00000CFA BBFF BSR __$StrLen 00000CFC 64F2 MOV.L @R15,R4 00000CFE 3D0C ADD R0,R13 Mines.c 904 if (nBytes < PARAGRAPH_LEN) 00000D00 922D MOV.W L2041,R2 ; H'2000 00000D02 6DDF EXTS.W R13,R13 00000D04 3D23 CMP/GE R2,R13 00000D06 890D BT L1506 00000D08 64E2 MOV.L @R14,R4 00000D0A 6140 MOV.B @R4,R1 00000D0C 2118 TST R1,R1 00000D0E 8902 BT L1507 Mines.c 905 { Mines.c 906 if (m_szParagraph[0]) Mines.c 907 StrCat(&m_szParagraph[0]," "); 00000D10 D515 MOV.L L2041+10,R5; L618 00000D12 BC09 BSR __$StrCat 00000D14 0009 NOP 00000D16 L1507: Mines.c 908 StrCat(&m_szParagraph[0],szText); 00000D16 65F2 MOV.L @R15,R5 00000D18 64E2 MOV.L @R14,R4 00000D1A 7F08 ADD #8,R15 00000D1C 4F26 LDS.L @R15+,PR 00000D1E 6DF6 MOV.L @R15+,R13 00000D20 AC02 BRA __$StrCat 00000D22 6EF6 MOV.L @R15+,R14 00000D24 L1506: Mines.c 909 } Mines.c 910 else Mines.c 911 { Mines.c 912 *bErr=TRUE; 00000D24 53F1 MOV.L @(4,R15),R3 00000D26 E101 MOV #1,R1 Mines.c 913 StrCpy(&m_szParagraph[0],"Fatal error: the paragraph buffer is too small."); 00000D28 D510 MOV.L L2041+14,R5; L621 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 47 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000D2A 2310 MOV.B R1,@R3 00000D2C 64E2 MOV.L @R14,R4 00000D2E 7F08 ADD #8,R15 00000D30 4F26 LDS.L @R15+,PR 00000D32 6DF6 MOV.L @R15+,R13 00000D34 ABEC BRA __$StrCpy 00000D36 6EF6 MOV.L @R15+,R14 Mines.c 914 } Mines.c 915 return; Mines.c 916 } Mines.c 917 Mines.c 918 static void ListCommands( 00000D38 __$ListCommands: ; function: ListCommands ; frame size=0 Mines.c 919 int8 *bErr) Mines.c 920 { Mines.c 921 DisplayText( Mines.c 922 "Commands in the game are \"N\", \"E\", \"S\", \"W\", \"U\", and " Mines.c 923 "\"D\" to move North, East, South, West, Up, or Down, " Mines.c 924 "respectively. Other commands are \"C\" to carry things, \"I\" to " Mines.c 925 "inventory what you are carrying, \"L\" to leave treasures, \"P\" to " Mines.c 926 "get the points you\'ve scored, \"O\" for help getting out of the " Mines.c 927 "mine, \"F\" to switch fonts, \"H\" for help, and \"Q\" to quit.",bErr); 00000D38 6543 MOV R4,R5 00000D3A D40D MOV.L L2041+18,R4; L624 00000D3C AFCB BRA __$DisplayText 00000D3E 0009 NOP Mines.c 928 return; Mines.c 929 } Mines.c 930 Mines.c 931 static void DisplayHelp( 00000D40 __$DisplayHelp: ; function: DisplayHelp ; frame size=8 00000D40 2FE6 MOV.L R14,@-R15 00000D42 4F22 STS.L PR,@-R15 Mines.c 932 int8 *bErr) Mines.c 933 { Mines.c 934 ListCommands(bErr); 00000D44 BFF8 BSR __$ListCommands 00000D46 6E43 MOV R4,R14 Mines.c 935 if (! *bErr) 00000D48 62E0 MOV.B @R14,R2 00000D4A 2228 TST R2,R2 00000D4C 8B04 BF L1512 Mines.c 936 DisplayText( Mines.c 937 "In a mine, the passages are straight. So, for example, if " Mines.c 938 "you go North to leave a room, you can go South to reenter it. " Mines.c 939 "The rooms are not evenly spaced. However, the distance between " Mines.c 940 "adjacent rooms is always a multiple of the minimum distance " Mines.c 941 "between adjacent rooms.",bErr); 00000D4E 65E3 MOV R14,R5 00000D50 D408 MOV.L L2041+22,R4; L627 00000D52 4F26 LDS.L @R15+,PR 00000D54 AFBF BRA __$DisplayText 00000D56 6EF6 MOV.L @R15+,R14 00000D58 L1512: Mines.c 942 return; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 48 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 943 } 00000D58 4F26 LDS.L @R15+,PR 00000D5A 000B RTS 00000D5C 6EF6 MOV.L @R15+,R14 00000D5E L2041: 00000D5E 2000 .DATA.W H'2000 00000D60 <00000000> .DATA.L __$m_bUseSmallFont 00000D64 <00000000> .DATA.L __$m_szParagraph 00000D68 <00000000> .DATA.L L618 00000D6C <00000000> .DATA.L L621 00000D70 <00000000> .DATA.L L624 00000D74 <00000000> .DATA.L L627 Mines.c 944 Mines.c 945 static int16 RandomNumber( 00000D78 __$RandomNumber: ; function: RandomNumber ; frame size=20 00000D78 2FE6 MOV.L R14,@-R15 00000D7A 2FD6 MOV.L R13,@-R15 00000D7C 2FC6 MOV.L R12,@-R15 00000D7E EC00 MOV #0,R12 00000D80 DD2F MOV.L L2043+8,R13; __$m_nAddIndex 00000D82 2FB6 MOV.L R11,@-R15 00000D84 2FA6 MOV.L R10,@-R15 00000D86 EB08 MOV #8,R11 00000D88 DE2E MOV.L L2043+12,R14; __$m_nRN 00000D8A 9A55 MOV.W L2043,R10 ; H'7FFF 00000D8C D52E MOV.L L2043+16,R5; __$m_nRNPartialSum 00000D8E 67A3 MOV R10,R7 00000D90 D42E MOV.L L2043+20,R4; __$m_nReplaceIndex 00000D92 7704 ADD #4,R7 Mines.c 946 void) Mines.c 947 { Mines.c 948 int32 nResult; Mines.c 949 /* Mines.c 950 Each pseudo-random number is the modulo sum of the Mines.c 951 previous eight pseudo-random numbers. A prime modulus Mines.c 952 makes it likely that the pseudo-random numbers will be Mines.c 953 uniformly distributed. To speed computation, a partial Mines.c 954 sum of 7 of the 8 previous pseudo-random numbers is maintained. Mines.c 955 For a given set of initial values m_nRN[i], i=0,1,2,...,7, Mines.c 956 this random number generator should produce the same sequence Mines.c 957 of random numbers, no matter what 32-bit C Compiler it is compiled Mines.c 958 under. Mines.c 959 */ Mines.c 960 do 00000D94 L1513: Mines.c 961 { Mines.c 962 nResult=m_nRNPartialSum+m_nRN[m_nAddIndex]; 00000D94 60D0 MOV.B @R13,R0 00000D96 4008 SHLL2 R0 00000D98 06EE MOV.L @(R0,R14),R6 00000D9A 6352 MOV.L @R5,R3 00000D9C 363C ADD R3,R6 Mines.c 963 if (nResult >= 32771) nResult-=32771; 00000D9E 3673 CMP/GE R7,R6 00000DA0 8F01 BF/S L1514 Mines.c 964 m_nRNPartialSum=nResult-m_nRN[m_nReplaceIndex]; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 49 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000DA2 6040 MOV.B @R4,R0 00000DA4 3678 SUB R7,R6 00000DA6 L1514: 00000DA6 4008 SHLL2 R0 00000DA8 03EE MOV.L @(R0,R14),R3 00000DAA 6263 MOV R6,R2 00000DAC 3238 SUB R3,R2 Mines.c 965 if (m_nRNPartialSum < 0) m_nRNPartialSum+=32771; 00000DAE 6323 MOV R2,R3 00000DB0 2522 MOV.L R2,@R5 00000DB2 4311 CMP/PZ R3 00000DB4 8902 BT L1515 00000DB6 6152 MOV.L @R5,R1 00000DB8 317C ADD R7,R1 00000DBA 2512 MOV.L R1,@R5 00000DBC L1515: Mines.c 966 m_nRN[m_nReplaceIndex]=nResult; 00000DBC 6040 MOV.B @R4,R0 00000DBE 4008 SHLL2 R0 00000DC0 0E66 MOV.L R6,@(R0,R14) Mines.c 967 m_nAddIndex=m_nReplaceIndex; 00000DC2 6340 MOV.B @R4,R3 00000DC4 2D30 MOV.B R3,@R13 Mines.c 968 if (++m_nReplaceIndex >= 8) 00000DC6 6240 MOV.B @R4,R2 00000DC8 7201 ADD #1,R2 00000DCA 2420 MOV.B R2,@R4 00000DCC 622E EXTS.B R2,R2 00000DCE 32B3 CMP/GE R11,R2 00000DD0 8B00 BF L1516 Mines.c 969 m_nReplaceIndex=0; 00000DD2 24C0 MOV.B R12,@R4 00000DD4 L1516: Mines.c 970 } Mines.c 971 while (nResult > 32767); 00000DD4 36A7 CMP/GT R10,R6 00000DD6 89DD BT L1513 Mines.c 972 return (int16) nResult; Mines.c 973 } 00000DD8 6AF6 MOV.L @R15+,R10 00000DDA 6063 MOV R6,R0 00000DDC 6BF6 MOV.L @R15+,R11 00000DDE 6CF6 MOV.L @R15+,R12 00000DE0 6DF6 MOV.L @R15+,R13 00000DE2 000B RTS 00000DE4 6EF6 MOV.L @R15+,R14 Mines.c 974 Mines.c 975 static void SeedRandomNumberGenerator( 00000DE6 __$SeedRandomNumberGenerator: ; function: SeedRandomNumberGenerator ; frame size=40 ; used runtime library name: ; __modls 00000DE6 2FE6 MOV.L R14,@-R15 00000DE8 2FD6 MOV.L R13,@-R15 00000DEA 2FC6 MOV.L R12,@-R15 00000DEC 2FB6 MOV.L R11,@-R15 Mines.c 976 void) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 50 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 977 { Mines.c 978 char *pc; Mines.c 979 int16 nKeyIndex; Mines.c 980 int16 nKeyStart; Mines.c 981 int16 nKeyLength; Mines.c 982 intC nTem; Mines.c 983 char szMine [9]; Mines.c 984 Mines.c 985 nKeyLength=0; 00000DEE EC00 MOV #0,R12 Mines.c 986 Bdisp_AllClr_DDVRAM(); 00000DF0 D317 MOV.L L2043+24,R3; _Bdisp_AllClr_DDVRAM 00000DF2 2FA6 MOV.L R10,@-R15 00000DF4 2F96 MOV.L R9,@-R15 00000DF6 4F22 STS.L PR,@-R15 00000DF8 7FF4 ADD #-12,R15 00000DFA 430B JSR @R3 00000DFC 6EC3 MOV R12,R14 Mines.c 987 m_nLinesWritten=0; Mines.c 988 locate(1,1); 00000DFE E501 MOV #1,R5 00000E00 D215 MOV.L L2043+32,R2; _locate 00000E02 D914 MOV.L L2043+28,R9; __$m_nLinesWritten 00000E04 29E0 MOV.B R14,@R9 00000E06 420B JSR @R2 00000E08 6453 MOV R5,R4 Mines.c 989 m_szParagraph[0]='\0'; 00000E0A D214 MOV.L L2043+36,R2; __$m_szParagraph Mines.c 990 Print((unsigned char *) "Mine number? "); 00000E0C D414 MOV.L L2043+40,R4; L638 00000E0E 6322 MOV.L @R2,R3 00000E10 23E0 MOV.B R14,@R3 00000E12 D314 MOV.L L2043+44,R3; _Print 00000E14 430B JSR @R3 00000E16 0009 NOP 00000E18 9A0F MOV.W L2043+2,R10; H'0080 00000E1A 6BF3 MOV R15,R11 00000E1C ED08 MOV #8,R13 Mines.c 991 do 00000E1E L1518: Mines.c 992 { Mines.c 993 nTem=ReadChar(); 00000E1E BB3E BSR __$ReadChar 00000E20 0009 NOP Mines.c 994 if ((nTem != (intC) 13) Mines.c 995 && (nTem != (intC) 30004)) 00000E22 880D CMP/EQ #13,R0 00000E24 8D2B BT/S L1519 00000E26 6403 MOV R0,R4 00000E28 9208 MOV.W L2043+4,R2 ; H'7534 00000E2A 3420 CMP/EQ R2,R4 00000E2C 8927 BT L1519 Mines.c 996 { Mines.c 997 if (nTem == 8) 00000E2E 6043 MOV R4,R0 00000E30 8808 CMP/EQ #8,R0 00000E32 8B19 BF L1520 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 51 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 998 --nKeyLength; 00000E34 A023 BRA L1519 00000E36 7EFF ADD #-1,R14 00000E38 L2043: 00000E38 7FFF .DATA.W H'7FFF 00000E3A 0080 .DATA.W H'0080 00000E3C 7534 .DATA.W H'7534 00000E3E 0000 .DATA.W 0 00000E40 <00000000> .DATA.L __$m_nAddIndex 00000E44 <00000000> .DATA.L __$m_nRN 00000E48 <00000000> .DATA.L __$m_nRNPartialSum 00000E4C <00000000> .DATA.L __$m_nReplaceIndex 00000E50 <00000000> .DATA.L _Bdisp_AllClr_DDVRAM 00000E54 <00000000> .DATA.L __$m_nLinesWritten 00000E58 <00000000> .DATA.L _locate 00000E5C <00000000> .DATA.L __$m_szParagraph 00000E60 <00000000> .DATA.L L638 00000E64 <00000000> .DATA.L _Print 00000E68 L1520: Mines.c 999 else Mines.c 1000 { Mines.c 1001 if (nKeyLength < 8) 00000E68 62EF EXTS.W R14,R2 00000E6A 32D3 CMP/GE R13,R2 00000E6C 8906 BT L1522 Mines.c 1002 szMine[nKeyLength]=(char) (nTem%128); 00000E6E 63EF EXTS.W R14,R3 00000E70 D234 MOV.L L2044+6,R2 ; __modls 00000E72 6143 MOV R4,R1 00000E74 33BC ADD R11,R3 00000E76 420B JSR @R2 00000E78 60A3 MOV R10,R0 00000E7A 2300 MOV.B R0,@R3 00000E7C L1522: Mines.c 1003 ++nKeyLength; 00000E7C 7E01 ADD #1,R14 00000E7E L1519: Mines.c 1004 } Mines.c 1005 } Mines.c 1006 } Mines.c 1007 while ((nTem != (intC) 13) Mines.c 1008 && (nTem != (intC) 30004)); 00000E7E 6043 MOV R4,R0 00000E80 880D CMP/EQ #13,R0 00000E82 8902 BT L1523 00000E84 925B MOV.W L2044,R2 ; H'7534 00000E86 3420 CMP/EQ R2,R4 00000E88 8BC9 BF L1518 00000E8A L1523: Mines.c 1009 ++m_nLinesWritten; 00000E8A 6190 MOV.B @R9,R1 Mines.c 1010 locate(1,m_nLinesWritten+1); 00000E8C D32E MOV.L L2044+10,R3; _locate 00000E8E 7101 ADD #1,R1 00000E90 2910 MOV.B R1,@R9 00000E92 6590 MOV.B @R9,R5 00000E94 7501 ADD #1,R5 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 52 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000E96 430B JSR @R3 00000E98 E401 MOV #1,R4 Mines.c 1011 if (nKeyLength > 8) 00000E9A 62EF EXTS.W R14,R2 00000E9C 32D7 CMP/GT R13,R2 00000E9E 8B00 BF L1524 Mines.c 1012 nKeyLength=8; 00000EA0 6ED3 MOV R13,R14 00000EA2 L1524: Mines.c 1013 szMine[nKeyLength]='\0'; 00000EA2 60EF EXTS.W R14,R0 Mines.c 1014 nKeyIndex=0; Mines.c 1015 if (nKeyLength < 8) 00000EA4 D729 MOV.L L2044+14,R7; __$m_nRN 00000EA6 62EF EXTS.W R14,R2 00000EA8 0BC4 MOV.B R12,@(R0,R11) 00000EAA 32D3 CMP/GE R13,R2 00000EAC 8D0F BT/S L1525 00000EAE 65C3 MOV R12,R5 Mines.c 1016 { Mines.c 1017 for (nKeyStart=nKeyLength; nKeyStart < 8; ++nKeyStart) 00000EB0 64E3 MOV R14,R4 00000EB2 624F EXTS.W R4,R2 00000EB4 32D3 CMP/GE R13,R2 00000EB6 8D08 BT/S L1526 00000EB8 E631 MOV #49,R6 00000EBA L1527: Mines.c 1018 m_nRN[nKeyIndex++]=1+(int) '0'; 00000EBA 605F EXTS.W R5,R0 00000EBC 4008 SHLL2 R0 00000EBE 7501 ADD #1,R5 00000EC0 7401 ADD #1,R4 00000EC2 634F EXTS.W R4,R3 00000EC4 33D3 CMP/GE R13,R3 00000EC6 8FF8 BF/S L1527 00000EC8 0766 MOV.L R6,@(R0,R7) 00000ECA L1526: Mines.c 1019 pc=szMine; 00000ECA A00A BRA L1529 00000ECC 64B3 MOV R11,R4 00000ECE L1525: Mines.c 1020 } Mines.c 1021 else Mines.c 1022 pc=szMine+nKeyLength-8; 00000ECE 64EF EXTS.W R14,R4 00000ED0 34BC ADD R11,R4 Mines.c 1023 while (*pc) 00000ED2 A006 BRA L1529 00000ED4 74F8 ADD #-8,R4 00000ED6 L1530: Mines.c 1024 m_nRN[nKeyIndex++]=1+(int) *pc++; 00000ED6 605F EXTS.W R5,R0 00000ED8 6344 MOV.B @R4+,R3 00000EDA 4008 SHLL2 R0 00000EDC 7501 ADD #1,R5 00000EDE 7301 ADD #1,R3 00000EE0 0736 MOV.L R3,@(R0,R7) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 53 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000EE2 L1529: 00000EE2 6240 MOV.B @R4,R2 00000EE4 2228 TST R2,R2 00000EE6 8BF6 BF L1530 Mines.c 1025 m_nRNPartialSum=0; 00000EE8 D419 MOV.L L2044+18,R4; __$m_nRNPartialSum Mines.c 1026 for (nKeyIndex=7; nKeyIndex > 0; --nKeyIndex) 00000EEA EE07 MOV #7,R14 00000EEC D519 MOV.L L2044+22,R5; H'00008003 00000EEE E61C MOV #28,R6 00000EF0 24C2 MOV.L R12,@R4 00000EF2 367C ADD R7,R6 00000EF4 L1531: Mines.c 1027 { Mines.c 1028 m_nRNPartialSum+=m_nRN[nKeyIndex]; 00000EF4 6362 MOV.L @R6,R3 00000EF6 6242 MOV.L @R4,R2 00000EF8 323C ADD R3,R2 Mines.c 1029 if (m_nRNPartialSum >= 32771) 00000EFA 6123 MOV R2,R1 00000EFC 3153 CMP/GE R5,R1 00000EFE 8F03 BF/S L1532 00000F00 2422 MOV.L R2,@R4 Mines.c 1030 m_nRNPartialSum-=32771; 00000F02 6242 MOV.L @R4,R2 00000F04 3258 SUB R5,R2 00000F06 2422 MOV.L R2,@R4 00000F08 L1532: 00000F08 7EFF ADD #-1,R14 00000F0A 63EF EXTS.W R14,R3 00000F0C 4315 CMP/PL R3 00000F0E 8DF1 BT/S L1531 00000F10 76FC ADD #-4,R6 Mines.c 1031 } Mines.c 1032 m_nReplaceIndex=1; 00000F12 E301 MOV #1,R3 00000F14 D210 MOV.L L2044+26,R2; __$m_nReplaceIndex 00000F16 2230 MOV.B R3,@R2 Mines.c 1033 m_nAddIndex=0; 00000F18 D110 MOV.L L2044+30,R1; __$m_nAddIndex Mines.c 1034 for (nKeyIndex=256; nKeyIndex--;) 00000F1A 9E11 MOV.W L2044+2,R14; H'0100 00000F1C A002 BRA L1533 00000F1E 21C0 MOV.B R12,@R1 00000F20 L1534: Mines.c 1035 RandomNumber(); 00000F20 BF2A BSR __$RandomNumber 00000F22 0009 NOP 00000F24 L1533: 00000F24 63EF EXTS.W R14,R3 00000F26 2338 TST R3,R3 00000F28 8FFA BF/S L1534 00000F2A 7EFF ADD #-1,R14 Mines.c 1036 return; Mines.c 1037 } 00000F2C 7F0C ADD #12,R15 00000F2E 4F26 LDS.L @R15+,PR SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 54 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000F30 69F6 MOV.L @R15+,R9 00000F32 6AF6 MOV.L @R15+,R10 00000F34 6BF6 MOV.L @R15+,R11 00000F36 6CF6 MOV.L @R15+,R12 00000F38 6DF6 MOV.L @R15+,R13 00000F3A 000B RTS 00000F3C 6EF6 MOV.L @R15+,R14 00000F3E L2044: 00000F3E 7534 .DATA.W H'7534 00000F40 0100 .DATA.W H'0100 00000F42 0000 .DATA.W 0 00000F44 <00000000> .DATA.L __modls 00000F48 <00000000> .DATA.L _locate 00000F4C <00000000> .DATA.L __$m_nRN 00000F50 <00000000> .DATA.L __$m_nRNPartialSum 00000F54 00008003 .DATA.L H'00008003 00000F58 <00000000> .DATA.L __$m_nReplaceIndex 00000F5C <00000000> .DATA.L __$m_nAddIndex Mines.c 1038 Mines.c 1039 static void ShuffleRoomDescriptions( 00000F60 __$ShuffleRoomDescriptions: ; function: ShuffleRoomDescriptions ; frame size=12 ; used runtime library name: ; __modws 00000F60 2FE6 MOV.L R14,@-R15 Mines.c 1040 int16 nRooms, Mines.c 1041 char **pszRoom) Mines.c 1042 { Mines.c 1043 int16 nRoom1; Mines.c 1044 int16 nRoom2; Mines.c 1045 char *sz; Mines.c 1046 Mines.c 1047 for (nRoom1=nRooms-1; nRoom1 > 0; -- nRoom1) 00000F62 6E43 MOV R4,R14 00000F64 2FD6 MOV.L R13,@-R15 00000F66 7EFF ADD #-1,R14 00000F68 4F22 STS.L PR,@-R15 00000F6A 63EF EXTS.W R14,R3 00000F6C 4315 CMP/PL R3 00000F6E 8F15 BF/S L1538 00000F70 6D53 MOV R5,R13 00000F72 L1537: Mines.c 1048 { Mines.c 1049 nRoom2=RandomNumber()%nRoom1; 00000F72 BF01 BSR __$RandomNumber 00000F74 0009 NOP 00000F76 6103 MOV R0,R1 00000F78 D25C MOV.L L2045+2,R2 ; __modws 00000F7A 420B JSR @R2 00000F7C 60E3 MOV R14,R0 00000F7E 6603 MOV R0,R6 Mines.c 1050 sz=pszRoom[nRoom1]; 00000F80 65EF EXTS.W R14,R5 00000F82 4508 SHLL2 R5 00000F84 35DC ADD R13,R5 Mines.c 1051 pszRoom[nRoom1]=pszRoom[nRoom2]; 00000F86 676F EXTS.W R6,R7 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 55 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000F88 6452 MOV.L @R5,R4 00000F8A 7EFF ADD #-1,R14 00000F8C 4708 SHLL2 R7 00000F8E 37DC ADD R13,R7 00000F90 6372 MOV.L @R7,R3 00000F92 62EF EXTS.W R14,R2 00000F94 2532 MOV.L R3,@R5 00000F96 4215 CMP/PL R2 00000F98 8DEB BT/S L1537 Mines.c 1052 pszRoom[nRoom2]=sz; 00000F9A 2742 MOV.L R4,@R7 00000F9C L1538: Mines.c 1053 } Mines.c 1054 return; Mines.c 1055 } 00000F9C 4F26 LDS.L @R15+,PR 00000F9E 6DF6 MOV.L @R15+,R13 00000FA0 000B RTS 00000FA2 6EF6 MOV.L @R15+,R14 Mines.c 1056 Mines.c 1057 static void ExcavateMine( 00000FA4 __$ExcavateMine: ; function: ExcavateMine ; frame size=136 ; used runtime library name: ; __modws, __modls 00000FA4 2FE6 MOV.L R14,@-R15 00000FA6 E02C MOV #44,R0 00000FA8 2FD6 MOV.L R13,@-R15 00000FAA 2FC6 MOV.L R12,@-R15 00000FAC 2FB6 MOV.L R11,@-R15 00000FAE 2FA6 MOV.L R10,@-R15 00000FB0 2F96 MOV.L R9,@-R15 00000FB2 EA00 MOV #0,R10 00000FB4 DD4E MOV.L L2045+6,R13; __$m_Passage 00000FB6 2F86 MOV.L R8,@-R15 00000FB8 4F22 STS.L PR,@-R15 00000FBA E801 MOV #1,R8 00000FBC DE4D MOV.L L2045+10,R14; __$m_Room 00000FBE 4F12 STS.L MACL,@-R15 00000FC0 7FA0 ADD #-96,R15 00000FC2 0F55 MOV.W R5,@(R0,R15) 00000FC4 E05C MOV #92,R0 00000FC6 0F64 MOV.B R6,@(R0,R15) 00000FC8 E058 MOV #88,R0 00000FCA 0F76 MOV.L R7,@(R0,R15) Mines.c 1058 int16 nRooms, Mines.c 1059 int16 pRoomEntrance, Mines.c 1060 int8 nTreasures, Mines.c 1061 int16 *nChokepoints, Mines.c 1062 int16 *ppRoomWithName, Mines.c 1063 int8 *bErr) Mines.c 1064 { Mines.c 1065 int16 nChokepoint; Mines.c 1066 int8 nDirectionOpposite; Mines.c 1067 int8 nDirection1; Mines.c 1068 int8 nDirection2; Mines.c 1069 int16 nDistance; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 56 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1070 int8 nHeight; Mines.c 1071 int8 nLen; Mines.c 1072 int8 nMax; Mines.c 1073 int16 nRoom; Mines.c 1074 int16 nStep; Mines.c 1075 int8 nTreasure; Mines.c 1076 int16 nUnblocked; Mines.c 1077 int8 nWidth; Mines.c 1078 int8 nX; Mines.c 1079 int8 nXFirstRoom; Mines.c 1080 int8 nY; Mines.c 1081 int8 nYFirstRoom; Mines.c 1082 int8 nZ; Mines.c 1083 int8 nZFirstRoom; Mines.c 1084 int16 pPassage; Mines.c 1085 int16 pRoom; Mines.c 1086 int16 pRoomDown; Mines.c 1087 int16 pRoomNext; Mines.c 1088 int16 pRoomStart; Mines.c 1089 int16 pRoomSouth; Mines.c 1090 int16 pRoomSouthBase; Mines.c 1091 int16 pRoomWest; Mines.c 1092 int16 pRoomWestBase; Mines.c 1093 int16 pRoomWestBaseBase; Mines.c 1094 int32 nRN; Mines.c 1095 Mines.c 1096 /* nMax=(int) (10.0+exp(log((double) nRooms)/3.0)); */ Mines.c 1097 nMax=0; Mines.c 1098 while (nMax*nMax*nMax < nRooms) 00000FCC A001 BRA L1539 00000FCE 65A3 MOV R10,R5 00000FD0 L1540: Mines.c 1099 ++nMax; 00000FD0 7501 ADD #1,R5 00000FD2 L1539: 00000FD2 625E EXTS.B R5,R2 00000FD4 635E EXTS.B R5,R3 00000FD6 615E EXTS.B R5,R1 00000FD8 223F MULS R3,R2 00000FDA 634F EXTS.W R4,R3 00000FDC 021A STS MACL,R2 00000FDE 0217 MUL.L R1,R2 00000FE0 021A STS MACL,R2 00000FE2 3233 CMP/GE R3,R2 00000FE4 8BF4 BF L1540 Mines.c 1100 if (nMax*nMax*nMax == nRooms) 00000FE6 635E EXTS.B R5,R3 00000FE8 625E EXTS.B R5,R2 00000FEA 615E EXTS.B R5,R1 00000FEC 232F MULS R2,R3 00000FEE 624F EXTS.W R4,R2 00000FF0 031A STS MACL,R3 00000FF2 0317 MUL.L R1,R3 00000FF4 031A STS MACL,R3 00000FF6 3320 CMP/EQ R2,R3 00000FF8 8B01 BF L1541 Mines.c 1101 nMax+=10; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 57 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000FFA A001 BRA L1542 00000FFC 750A ADD #10,R5 00000FFE L1541: Mines.c 1102 else Mines.c 1103 nMax+=9; 00000FFE 7509 ADD #9,R5 00001000 L1542: 00001000 6C5E EXTS.B R5,R12 00001002 7CFD ADD #-3,R12 00001004 6B4F EXTS.W R4,R11 00001006 E054 MOV #84,R0 00001008 0FB6 MOV.L R11,@(R0,R15) 0000100A 7BFF ADD #-1,R11 Mines.c 1104 do 0000100C L1543: Mines.c 1105 { Mines.c 1106 nRN=RandomNumber(); 0000100C BEB4 BSR __$RandomNumber 0000100E 0009 NOP Mines.c 1107 nLen=nRN%(nMax-3)+3; 00001010 D239 MOV.L L2045+14,R2; __modls 00001012 640F EXTS.W R0,R4 00001014 6143 MOV R4,R1 00001016 420B JSR @R2 00001018 60C3 MOV R12,R0 0000101A 7003 ADD #3,R0 0000101C 61F3 MOV R15,R1 0000101E 7134 ADD #52,R1 Mines.c 1108 nRN=RandomNumber(); 00001020 BEAA BSR __$RandomNumber 00001022 2100 MOV.B R0,@R1 Mines.c 1109 nWidth=nRN%(nMax-3)+3; 00001024 D234 MOV.L L2045+14,R2; __modls 00001026 640F EXTS.W R0,R4 00001028 6143 MOV R4,R1 0000102A 420B JSR @R2 0000102C 60C3 MOV R12,R0 0000102E 7003 ADD #3,R0 00001030 61F3 MOV R15,R1 00001032 7148 ADD #72,R1 Mines.c 1110 nRN=RandomNumber(); 00001034 BEA0 BSR __$RandomNumber 00001036 2100 MOV.B R0,@R1 Mines.c 1111 nHeight=nRN%(nMax-3)+3; 00001038 D22F MOV.L L2045+14,R2; __modls 0000103A 640F EXTS.W R0,R4 0000103C 6143 MOV R4,R1 0000103E 420B JSR @R2 00001040 60C3 MOV R12,R0 00001042 7003 ADD #3,R0 00001044 61F3 MOV R15,R1 00001046 7128 ADD #40,R1 00001048 2100 MOV.B R0,@R1 Mines.c 1112 } Mines.c 1113 while ((nLen*nWidth*nHeight < 2*(nRooms-1)) Mines.c 1114 || (nLen*nWidth*nHeight > 3*(nRooms-1))); 0000104A E034 MOV #52,R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 58 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000104C 04FC MOV.B @(R0,R15),R4 0000104E E048 MOV #72,R0 00001050 03FC MOV.B @(R0,R15),R3 00001052 E028 MOV #40,R0 00001054 243F MULS R3,R4 00001056 041A STS MACL,R4 00001058 03FC MOV.B @(R0,R15),R3 0000105A 0437 MUL.L R3,R4 0000105C 041A STS MACL,R4 0000105E 63B3 MOV R11,R3 00001060 4300 SHLL R3 00001062 3433 CMP/GE R3,R4 00001064 8BD2 BF L1543 00001066 63B3 MOV R11,R3 00001068 62B3 MOV R11,R2 0000106A 4300 SHLL R3 0000106C 332C ADD R2,R3 0000106E 3437 CMP/GT R3,R4 00001070 89CC BT L1543 Mines.c 1115 nXFirstRoom=0; Mines.c 1116 nYFirstRoom=RandomNumber()%nLen; 00001072 BE81 BSR __$RandomNumber 00001074 0009 NOP 00001076 61F3 MOV R15,R1 00001078 D21C MOV.L L2045+2,R2 ; __modws 0000107A 7134 ADD #52,R1 0000107C 6310 MOV.B @R1,R3 0000107E 6103 MOV R0,R1 00001080 420B JSR @R2 00001082 6033 MOV R3,R0 00001084 61F3 MOV R15,R1 00001086 7140 ADD #64,R1 Mines.c 1117 nZFirstRoom=RandomNumber()%nHeight; 00001088 BE76 BSR __$RandomNumber 0000108A 2100 MOV.B R0,@R1 0000108C D317 MOV.L L2045+2,R3 ; __modws 0000108E 62F3 MOV R15,R2 00001090 7228 ADD #40,R2 00001092 6103 MOV R0,R1 00001094 6220 MOV.B @R2,R2 00001096 430B JSR @R3 00001098 6023 MOV R2,R0 0000109A 61F3 MOV R15,R1 0000109C DB17 MOV.L L2045+18,R11; __$m_nPassages Mines.c 1118 pRoomWestBase=-1; 0000109E ECFF MOV #-1,R12 000010A0 7138 ADD #56,R1 000010A2 2100 MOV.B R0,@R1 000010A4 60C3 MOV R12,R0 000010A6 81FA MOV.W R0,@(20,R15) Mines.c 1119 pRoomWestBaseBase=-1; 000010A8 E050 MOV #80,R0 000010AA 0FC5 MOV.W R12,@(R0,R15) Mines.c 1120 for (nX=0; ((! *bErr) && (nX < nWidth)); ++nX) 000010AC E030 MOV #48,R0 000010AE 0FA4 MOV.B R10,@(R0,R15) 000010B0 E02C MOV #44,R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 59 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000010B2 03FD MOV.W @(R0,R15),R3 000010B4 6233 MOV R3,R2 000010B6 4308 SHLL2 R3 000010B8 332C ADD R2,R3 000010BA 4308 SHLL2 R3 000010BC A20D BRA L1544 000010BE 1F3F MOV.L R3,@(60,R15) 000010C0 L1545: Mines.c 1121 { Mines.c 1122 pRoomSouthBase=-1; 000010C0 E04C MOV #76,R0 000010C2 61F3 MOV R15,R1 000010C4 0FC5 MOV.W R12,@(R0,R15) 000010C6 7144 ADD #68,R1 Mines.c 1123 for (nY=0; ((! *bErr) && (nY < nLen)); ++nY) 000010C8 E01C MOV #28,R0 000010CA 0FA4 MOV.B R10,@(R0,R15) 000010CC E030 MOV #48,R0 000010CE 03FC MOV.B @(R0,R15),R3 000010D0 2338 TST R3,R3 000010D2 0029 MOVT R0 000010D4 A1EC BRA L1547 000010D6 2102 MOV.L R0,@R1 000010D8 L1548: Mines.c 1124 { Mines.c 1125 pRoomWest=pRoomWestBase; 000010D8 85FA MOV.W @(20,R15),R0 000010DA 81F6 MOV.W R0,@(12,R15) Mines.c 1126 pRoomSouth=pRoomSouthBase; 000010DC E04C MOV #76,R0 000010DE 00FD MOV.W @(R0,R15),R0 000010E0 81F2 MOV.W R0,@(4,R15) Mines.c 1127 pRoomDown=-1; Mines.c 1128 for (nZ=0; ((! *bErr) && (nZ < nHeight)); ++nZ) 000010E2 E010 MOV #16,R0 000010E4 2FC1 MOV.W R12,@R15 000010E6 A1A6 BRA L1549 000010E8 0FA4 MOV.B R10,@(R0,R15) 000010EA L2045: 000010EA 0000 .DATA.W 0 000010EC <00000000> .DATA.L __modws 000010F0 <00000000> .DATA.L __$m_Passage 000010F4 <00000000> .DATA.L __$m_Room 000010F8 <00000000> .DATA.L __modls 000010FC <00000000> .DATA.L __$m_nPassages 00001100 L1550: 00001100 D256 MOV.L L2046+8,R2 ; __$m_nRooms 00001102 6921 MOV.W @R2,R9 00001104 91A6 MOV.W L2046,R1 ; H'0127 00001106 3913 CMP/GE R1,R9 00001108 8B01 BF L2047 0000110A A188 BRA L1551 0000110C 0009 NOP 0000110E L2047: Mines.c 1129 { Mines.c 1130 if (m_nRooms < 3*NUM_ROOMS-2) Mines.c 1131 { SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 60 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1132 pRoom=m_nRooms; Mines.c 1133 ++m_nRooms; Mines.c 1134 m_Room[pRoom].szDescription=(char *) NULL; 0000110E 649F EXTS.W R9,R4 00001110 6021 MOV.W @R2,R0 00001112 6343 MOV R4,R3 00001114 7001 ADD #1,R0 00001116 4408 SHLL2 R4 00001118 2201 MOV.W R0,@R2 0000111A 343C ADD R3,R4 0000111C 60E2 MOV.L @R14,R0 0000111E 4408 SHLL2 R4 00001120 304C ADD R4,R0 00001122 20A2 MOV.L R10,@R0 Mines.c 1135 m_Room[pRoom].bMined=FALSE; 00001124 63E2 MOV.L @R14,R3 00001126 60A3 MOV R10,R0 00001128 334C ADD R4,R3 0000112A 8036 MOV.B R0,@(6,R3) Mines.c 1136 m_Room[pRoom].nChokepoint=-1; 0000112C 63E2 MOV.L @R14,R3 0000112E 60C3 MOV R12,R0 00001130 334C ADD R4,R3 00001132 8132 MOV.W R0,@(4,R3) Mines.c 1137 m_Room[pRoom].bVisited=FALSE; 00001134 63E2 MOV.L @R14,R3 00001136 60A3 MOV R10,R0 00001138 334C ADD R4,R3 0000113A 8037 MOV.B R0,@(7,R3) Mines.c 1138 m_Room[pRoom].Adjacent.Passage.pPassageNorth=-1; 0000113C 63E2 MOV.L @R14,R3 0000113E 60C3 MOV R12,R0 00001140 334C ADD R4,R3 00001142 8134 MOV.W R0,@(8,R3) Mines.c 1139 m_Room[pRoom].Adjacent.Passage.pPassageSouth=-1; 00001144 63E2 MOV.L @R14,R3 00001146 334C ADD R4,R3 00001148 8135 MOV.W R0,@(10,R3) Mines.c 1140 m_Room[pRoom].Adjacent.Passage.pPassageEast=-1; 0000114A 63E2 MOV.L @R14,R3 0000114C 334C ADD R4,R3 0000114E 8136 MOV.W R0,@(12,R3) Mines.c 1141 m_Room[pRoom].Adjacent.Passage.pPassageWest=-1; 00001150 63E2 MOV.L @R14,R3 00001152 334C ADD R4,R3 00001154 8137 MOV.W R0,@(14,R3) Mines.c 1142 m_Room[pRoom].Adjacent.Passage.pPassageUp=-1; 00001156 63E2 MOV.L @R14,R3 00001158 334C ADD R4,R3 0000115A 8138 MOV.W R0,@(16,R3) Mines.c 1143 m_Room[pRoom].Adjacent.Passage.pPassageDown=-1; 0000115C 63E2 MOV.L @R14,R3 0000115E 343C ADD R3,R4 00001160 8149 MOV.W R0,@(18,R4) 00001162 E010 MOV #16,R0 00001164 03FC MOV.B @(R0,R15),R3 00001166 E01C MOV #28,R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 61 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001168 1F38 MOV.L R3,@(32,R15) 0000116A 2338 TST R3,R3 0000116C 02FC MOV.B @(R0,R15),R2 0000116E 8F06 BF/S L1552 00001170 1F29 MOV.L R2,@(36,R15) Mines.c 1144 /* Mines.c 1145 (X,Y,Z) gets linked to (X-1,Y,Z); (X,Y-1,Z); and (X,Y,Z-1) Mines.c 1146 pRoomWest pRoomSouth pRoomDown Mines.c 1147 */ Mines.c 1148 if (nZ == 0) Mines.c 1149 { Mines.c 1150 pRoomSouthBase=pRoom; 00001172 E04C MOV #76,R0 Mines.c 1151 if (nY == 0) 00001174 2228 TST R2,R2 00001176 8F02 BF/S L1552 00001178 0F95 MOV.W R9,@(R0,R15) Mines.c 1152 pRoomWestBaseBase=pRoom; 0000117A E050 MOV #80,R0 0000117C 0F95 MOV.W R9,@(R0,R15) 0000117E L1552: Mines.c 1153 } Mines.c 1154 if (pRoomDown != -1) 0000117E 60F1 MOV.W @R15,R0 00001180 88FF CMP/EQ #-1,R0 00001182 8934 BT L1554 Mines.c 1155 { Mines.c 1156 /* link room to one below it */ Mines.c 1157 if (m_nPassages < (9*NUM_ROOMS-8)) 00001184 62B1 MOV.W @R11,R2 00001186 9366 MOV.W L2046+2,R3 ; H'0373 00001188 3233 CMP/GE R3,R2 0000118A 8929 BT L1555 Mines.c 1158 { Mines.c 1159 pPassage=m_nPassages; 0000118C 65B1 MOV.W @R11,R5 Mines.c 1160 ++m_nPassages; Mines.c 1161 m_Passage[pPassage].bBlocked=TRUE; Mines.c 1162 m_Passage[pPassage].pTreasureGuardian=-1; 0000118E 60C3 MOV R12,R0 00001190 61B1 MOV.W @R11,R1 00001192 645F EXTS.W R5,R4 00001194 7101 ADD #1,R1 00001196 4408 SHLL2 R4 00001198 2B11 MOV.W R1,@R11 0000119A 4400 SHLL R4 0000119C 62D2 MOV.L @R13,R2 0000119E 324C ADD R4,R2 000011A0 2280 MOV.B R8,@R2 000011A2 61D2 MOV.L @R13,R1 000011A4 314C ADD R4,R1 000011A6 8111 MOV.W R0,@(2,R1) Mines.c 1163 m_Passage[pPassage].pRoom1=pRoom; 000011A8 62D2 MOV.L @R13,R2 000011AA 6093 MOV R9,R0 000011AC 324C ADD R4,R2 000011AE 8122 MOV.W R0,@(4,R2) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 62 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1164 m_Passage[pPassage].pRoom2=pRoomDown; 000011B0 62D2 MOV.L @R13,R2 000011B2 342C ADD R2,R4 000011B4 60F1 MOV.W @R15,R0 Mines.c 1165 m_Room[pRoom].Adjacent.Passage.pPassageDown=pPassage; 000011B6 629F EXTS.W R9,R2 000011B8 8143 MOV.W R0,@(6,R4) 000011BA 6123 MOV R2,R1 000011BC 60E2 MOV.L @R14,R0 000011BE 4208 SHLL2 R2 000011C0 321C ADD R1,R2 000011C2 4208 SHLL2 R2 000011C4 320C ADD R0,R2 000011C6 6053 MOV R5,R0 000011C8 8129 MOV.W R0,@(18,R2) Mines.c 1166 m_Room[pRoomDown].Adjacent.Passage.pPassageUp=pPassage; 000011CA 62F1 MOV.W @R15,R2 000011CC 60E2 MOV.L @R14,R0 000011CE 6123 MOV R2,R1 000011D0 4208 SHLL2 R2 000011D2 321C ADD R1,R2 000011D4 4208 SHLL2 R2 000011D6 320C ADD R0,R2 000011D8 6053 MOV R5,R0 000011DA 8128 MOV.W R0,@(16,R2) 000011DC A007 BRA L1554 000011DE 0009 NOP 000011E0 L1555: Mines.c 1167 } Mines.c 1168 else Mines.c 1169 { Mines.c 1170 DisplayText("Fatal error: memory was exhausted at locaton 1.",bErr); 000011E0 903A MOV.W L2046+4,R0 ; H'0088 000011E2 D41F MOV.L L2046+12,R4; L697 000011E4 BD77 BSR __$DisplayText 000011E6 05FE MOV.L @(R0,R15),R5 Mines.c 1171 *bErr=TRUE; 000011E8 9036 MOV.W L2046+4,R0 ; H'0088 000011EA 03FE MOV.L @(R0,R15),R3 000011EC 2380 MOV.B R8,@R3 000011EE L1554: 000011EE 85F2 MOV.W @(4,R15),R0 000011F0 88FF CMP/EQ #-1,R0 000011F2 8D67 BT/S L1557 000011F4 1F02 MOV.L R0,@(8,R15) 000011F6 85F2 MOV.W @(4,R15),R0 000011F8 922D MOV.W L2046+2,R2 ; H'0373 000011FA 6303 MOV R0,R3 000011FC 4008 SHLL2 R0 000011FE 303C ADD R3,R0 00001200 4008 SHLL2 R0 00001202 2F02 MOV.L R0,@R15 00001204 63B1 MOV.W @R11,R3 00001206 3323 CMP/GE R2,R3 00001208 892C BT L1558 Mines.c 1172 } Mines.c 1173 } SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 63 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1174 if (pRoomSouth != -1) Mines.c 1175 { Mines.c 1176 /* link to room to the south */ Mines.c 1177 if (m_nPassages < 9*NUM_ROOMS-8) Mines.c 1178 { Mines.c 1179 pPassage=m_nPassages; Mines.c 1180 ++m_nPassages; Mines.c 1181 m_Passage[pPassage].bBlocked=TRUE; Mines.c 1182 m_Passage[pPassage].pTreasureGuardian=-1; 0000120A 60C3 MOV R12,R0 0000120C 65B1 MOV.W @R11,R5 0000120E 61B1 MOV.W @R11,R1 00001210 7101 ADD #1,R1 00001212 645F EXTS.W R5,R4 00001214 2B11 MOV.W R1,@R11 00001216 4408 SHLL2 R4 00001218 63D2 MOV.L @R13,R3 0000121A 4400 SHLL R4 0000121C 334C ADD R4,R3 0000121E 2380 MOV.B R8,@R3 00001220 61D2 MOV.L @R13,R1 00001222 314C ADD R4,R1 00001224 8111 MOV.W R0,@(2,R1) Mines.c 1183 m_Passage[pPassage].pRoom1=pRoom; 00001226 6093 MOV R9,R0 00001228 63D2 MOV.L @R13,R3 0000122A 334C ADD R4,R3 0000122C 8132 MOV.W R0,@(4,R3) Mines.c 1184 m_Passage[pPassage].pRoom2=pRoomSouth; 0000122E 63D2 MOV.L @R13,R3 00001230 85F2 MOV.W @(4,R15),R0 00001232 343C ADD R3,R4 00001234 8143 MOV.W R0,@(6,R4) Mines.c 1185 m_Room[pRoom].Adjacent.Passage.pPassageSouth=pPassage; 00001236 639F EXTS.W R9,R3 00001238 60E2 MOV.L @R14,R0 0000123A 6133 MOV R3,R1 0000123C 4308 SHLL2 R3 0000123E 331C ADD R1,R3 00001240 4308 SHLL2 R3 00001242 330C ADD R0,R3 00001244 6053 MOV R5,R0 00001246 8135 MOV.W R0,@(10,R3) Mines.c 1186 m_Room[pRoomSouth].Adjacent.Passage.pPassageNorth=pPassage; 00001248 63E2 MOV.L @R14,R3 0000124A 6053 MOV R5,R0 0000124C 61F2 MOV.L @R15,R1 0000124E 313C ADD R3,R1 00001250 A00F BRA L1559 00001252 8114 MOV.W R0,@(8,R1) 00001254 L2046: 00001254 0127 .DATA.W H'0127 00001256 0373 .DATA.W H'0373 00001258 0088 .DATA.W H'0088 0000125A 0000 .DATA.W 0 0000125C <00000000> .DATA.L __$m_nRooms 00001260 <00000000> .DATA.L L697 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 64 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001264 L1558: Mines.c 1187 } Mines.c 1188 else Mines.c 1189 { Mines.c 1190 DisplayText("Fatal error: memory was exhausted at locaton 2.",bErr); 00001264 908F MOV.W L2048,R0 ; H'0088 00001266 D449 MOV.L L2048+6,R4 ; L701 00001268 BD35 BSR __$DisplayText 0000126A 05FE MOV.L @(R0,R15),R5 Mines.c 1191 *bErr=TRUE; 0000126C 908B MOV.W L2048,R0 ; H'0088 0000126E 02FE MOV.L @(R0,R15),R2 00001270 2280 MOV.B R8,@R2 00001272 L1559: Mines.c 1192 } Mines.c 1193 if (m_Room[pRoomSouth].Adjacent.Passage.pPassageUp != -1) 00001272 63E2 MOV.L @R14,R3 00001274 60F2 MOV.L @R15,R0 00001276 303C ADD R3,R0 00001278 8508 MOV.W @(16,R0),R0 0000127A 88FF CMP/EQ #-1,R0 0000127C 8920 BT L1560 Mines.c 1194 if (m_Passage[m_Room[pRoomSouth].Adjacent.Passage.pPassageUp].pRoom1 Mines.c 1195 == pRoomSouth) 0000127E 63E2 MOV.L @R14,R3 00001280 62F2 MOV.L @R15,R2 00001282 323C ADD R3,R2 00001284 8528 MOV.W @(16,R2),R0 00001286 4008 SHLL2 R0 00001288 63D2 MOV.L @R13,R3 0000128A 4000 SHLL R0 0000128C 303C ADD R3,R0 0000128E 8502 MOV.W @(4,R0),R0 00001290 53F2 MOV.L @(8,R15),R3 00001292 3030 CMP/EQ R3,R0 00001294 8B09 BF L1561 Mines.c 1196 pRoomSouth=m_Passage[m_Room[pRoomSouth].Adjacent.Passage.pPassageUp].pRoom2; 00001296 63E2 MOV.L @R14,R3 00001298 60F2 MOV.L @R15,R0 0000129A 303C ADD R3,R0 0000129C 8508 MOV.W @(16,R0),R0 0000129E 4008 SHLL2 R0 000012A0 63D2 MOV.L @R13,R3 000012A2 4000 SHLL R0 000012A4 303C ADD R3,R0 000012A6 A009 BRA L1978 000012A8 8503 MOV.W @(6,R0),R0 000012AA L1561: Mines.c 1197 else Mines.c 1198 pRoomSouth=m_Passage[m_Room[pRoomSouth].Adjacent.Passage.pPassageUp].pRoom1; 000012AA 63E2 MOV.L @R14,R3 000012AC 60F2 MOV.L @R15,R0 000012AE 303C ADD R3,R0 000012B0 8508 MOV.W @(16,R0),R0 000012B2 4008 SHLL2 R0 000012B4 63D2 MOV.L @R13,R3 000012B6 4000 SHLL R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 65 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000012B8 303C ADD R3,R0 000012BA 8502 MOV.W @(4,R0),R0 000012BC L1978: 000012BC A002 BRA L1557 000012BE 81F2 MOV.W R0,@(4,R15) 000012C0 L1560: Mines.c 1199 else Mines.c 1200 pRoomSouth=-1; 000012C0 60C3 MOV R12,R0 000012C2 81F2 MOV.W R0,@(4,R15) 000012C4 L1557: 000012C4 85F6 MOV.W @(12,R15),R0 000012C6 88FF CMP/EQ #-1,R0 000012C8 8D66 BT/S L1564 000012CA 1F02 MOV.L R0,@(8,R15) 000012CC 85F6 MOV.W @(12,R15),R0 000012CE 6303 MOV R0,R3 000012D0 925A MOV.W L2048+2,R2 ; H'0373 000012D2 4008 SHLL2 R0 000012D4 303C ADD R3,R0 000012D6 4008 SHLL2 R0 000012D8 2F02 MOV.L R0,@R15 000012DA 63B1 MOV.W @R11,R3 000012DC 3323 CMP/GE R2,R3 000012DE 8924 BT L1565 Mines.c 1201 } Mines.c 1202 if (pRoomWest != -1) Mines.c 1203 { Mines.c 1204 /* link to the room to the west */ Mines.c 1205 if (m_nPassages < 9*NUM_ROOMS-8) Mines.c 1206 { Mines.c 1207 pPassage=m_nPassages; 000012E0 64B1 MOV.W @R11,R4 Mines.c 1208 ++m_nPassages; Mines.c 1209 m_Passage[pPassage].bBlocked=TRUE; Mines.c 1210 m_Passage[pPassage].pTreasureGuardian=-1; 000012E2 60C3 MOV R12,R0 000012E4 61B1 MOV.W @R11,R1 000012E6 654F EXTS.W R4,R5 000012E8 7101 ADD #1,R1 000012EA 4508 SHLL2 R5 000012EC 2B11 MOV.W R1,@R11 000012EE 4500 SHLL R5 000012F0 63D2 MOV.L @R13,R3 000012F2 335C ADD R5,R3 000012F4 2380 MOV.B R8,@R3 000012F6 61D2 MOV.L @R13,R1 000012F8 315C ADD R5,R1 000012FA 8111 MOV.W R0,@(2,R1) Mines.c 1211 m_Passage[pPassage].pRoom1=pRoom; 000012FC 63D2 MOV.L @R13,R3 000012FE 6093 MOV R9,R0 00001300 335C ADD R5,R3 00001302 8132 MOV.W R0,@(4,R3) Mines.c 1212 m_Passage[pPassage].pRoom2=pRoomWest; 00001304 63D2 MOV.L @R13,R3 00001306 353C ADD R3,R5 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 66 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001308 85F6 MOV.W @(12,R15),R0 Mines.c 1213 m_Room[pRoom].Adjacent.Passage.pPassageWest=pPassage; 0000130A 639F EXTS.W R9,R3 0000130C 8153 MOV.W R0,@(6,R5) 0000130E 6133 MOV R3,R1 00001310 60E2 MOV.L @R14,R0 00001312 4308 SHLL2 R3 00001314 331C ADD R1,R3 00001316 4308 SHLL2 R3 00001318 330C ADD R0,R3 0000131A 6043 MOV R4,R0 0000131C 8137 MOV.W R0,@(14,R3) Mines.c 1214 m_Room[pRoomWest].Adjacent.Passage.pPassageEast=pPassage; 0000131E 63E2 MOV.L @R14,R3 00001320 61F2 MOV.L @R15,R1 00001322 6043 MOV R4,R0 00001324 313C ADD R3,R1 00001326 A007 BRA L1566 00001328 8116 MOV.W R0,@(12,R1) 0000132A L1565: Mines.c 1215 } Mines.c 1216 else Mines.c 1217 { Mines.c 1218 DisplayText("Fatal error: memory was exhausted at locaton 3.",bErr); 0000132A 902C MOV.W L2048,R0 ; H'0088 0000132C D418 MOV.L L2048+10,R4; L705 0000132E BCD2 BSR __$DisplayText 00001330 05FE MOV.L @(R0,R15),R5 Mines.c 1219 *bErr=TRUE; 00001332 9028 MOV.W L2048,R0 ; H'0088 00001334 02FE MOV.L @(R0,R15),R2 00001336 2280 MOV.B R8,@R2 00001338 L1566: Mines.c 1220 } Mines.c 1221 if (m_Room[pRoomWest].Adjacent.Passage.pPassageUp != -1) 00001338 63E2 MOV.L @R14,R3 0000133A 60F2 MOV.L @R15,R0 0000133C 303C ADD R3,R0 0000133E 8508 MOV.W @(16,R0),R0 00001340 88FF CMP/EQ #-1,R0 00001342 8927 BT L1567 Mines.c 1222 if (m_Passage[m_Room[pRoomWest].Adjacent.Passage.pPassageUp].pRoom1 Mines.c 1223 == pRoomWest) 00001344 63E2 MOV.L @R14,R3 00001346 62F2 MOV.L @R15,R2 00001348 323C ADD R3,R2 0000134A 8528 MOV.W @(16,R2),R0 0000134C 63D2 MOV.L @R13,R3 0000134E 4008 SHLL2 R0 00001350 4000 SHLL R0 00001352 303C ADD R3,R0 00001354 8502 MOV.W @(4,R0),R0 00001356 53F2 MOV.L @(8,R15),R3 00001358 3030 CMP/EQ R3,R0 0000135A 8B09 BF L1568 Mines.c 1224 pRoomWest=m_Passage[m_Room[pRoomWest].Adjacent.Passage.pPassageUp].pRoom2; 0000135C 63E2 MOV.L @R14,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 67 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000135E 60F2 MOV.L @R15,R0 00001360 303C ADD R3,R0 00001362 8508 MOV.W @(16,R0),R0 00001364 63D2 MOV.L @R13,R3 00001366 4008 SHLL2 R0 00001368 4000 SHLL R0 0000136A 303C ADD R3,R0 0000136C A009 BRA L1979 0000136E 8503 MOV.W @(6,R0),R0 00001370 L1568: Mines.c 1225 else Mines.c 1226 pRoomWest=m_Passage[m_Room[pRoomWest].Adjacent.Passage.pPassageUp].pRoom1; 00001370 63E2 MOV.L @R14,R3 00001372 60F2 MOV.L @R15,R0 00001374 303C ADD R3,R0 00001376 8508 MOV.W @(16,R0),R0 00001378 63D2 MOV.L @R13,R3 0000137A 4008 SHLL2 R0 0000137C 4000 SHLL R0 0000137E 303C ADD R3,R0 00001380 8502 MOV.W @(4,R0),R0 00001382 L1979: 00001382 A009 BRA L1564 00001384 81F6 MOV.W R0,@(12,R15) 00001386 L2048: 00001386 0088 .DATA.W H'0088 00001388 0373 .DATA.W H'0373 0000138A 0000 .DATA.W 0 0000138C <00000000> .DATA.L L701 00001390 <00000000> .DATA.L L705 00001394 L1567: Mines.c 1227 else Mines.c 1228 pRoomWest=-1; 00001394 60C3 MOV R12,R0 00001396 81F6 MOV.W R0,@(12,R15) 00001398 L1564: Mines.c 1229 Mines.c 1230 } Mines.c 1231 /* If this is the first room, connect it to the entrance. */ Mines.c 1232 if ((nX == nXFirstRoom) Mines.c 1233 && (nY == nYFirstRoom) Mines.c 1234 && (nZ == nZFirstRoom)) 00001398 E044 MOV #68,R0 0000139A 03FE MOV.L @(R0,R15),R3 0000139C 2338 TST R3,R3 0000139E 893C BT L1571 000013A0 52F9 MOV.L @(36,R15),R2 000013A2 E040 MOV #64,R0 000013A4 03FC MOV.B @(R0,R15),R3 000013A6 3230 CMP/EQ R3,R2 000013A8 8B37 BF L1571 000013AA E038 MOV #56,R0 000013AC 53F8 MOV.L @(32,R15),R3 000013AE 01FC MOV.B @(R0,R15),R1 000013B0 3310 CMP/EQ R1,R3 000013B2 8B32 BF L1571 000013B4 61B1 MOV.W @R11,R1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 68 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000013B6 2F11 MOV.W R1,@R15 000013B8 63F1 MOV.W @R15,R3 000013BA 9267 MOV.W L2049,R2 ; H'0373 000013BC 3323 CMP/GE R2,R3 000013BE 8925 BT L1572 Mines.c 1235 { Mines.c 1236 if (m_nPassages < 9*NUM_ROOMS-8) Mines.c 1237 { Mines.c 1238 pPassage=m_nPassages; Mines.c 1239 ++m_nPassages; 000013C0 61B1 MOV.W @R11,R1 Mines.c 1240 m_Passage[pPassage].bBlocked=FALSE; Mines.c 1241 m_Passage[pPassage].pTreasureGuardian=-1; 000013C2 60C3 MOV R12,R0 000013C4 7101 ADD #1,R1 000013C6 2B11 MOV.W R1,@R11 000013C8 65F1 MOV.W @R15,R5 000013CA 645F EXTS.W R5,R4 000013CC 63D2 MOV.L @R13,R3 000013CE 4408 SHLL2 R4 000013D0 4400 SHLL R4 000013D2 334C ADD R4,R3 000013D4 23A0 MOV.B R10,@R3 000013D6 61D2 MOV.L @R13,R1 000013D8 314C ADD R4,R1 000013DA 8111 MOV.W R0,@(2,R1) Mines.c 1242 m_Passage[pPassage].pRoom1=pRoom; 000013DC 63D2 MOV.L @R13,R3 000013DE 6093 MOV R9,R0 000013E0 334C ADD R4,R3 000013E2 8132 MOV.W R0,@(4,R3) Mines.c 1243 m_Passage[pPassage].pRoom2=pRoomEntrance; 000013E4 63D2 MOV.L @R13,R3 000013E6 E02C MOV #44,R0 000013E8 00FD MOV.W @(R0,R15),R0 000013EA 343C ADD R3,R4 000013EC 8143 MOV.W R0,@(6,R4) Mines.c 1244 m_Room[pRoom].Adjacent.Passage.pPassageWest=pPassage; 000013EE 639F EXTS.W R9,R3 000013F0 60E2 MOV.L @R14,R0 000013F2 6133 MOV R3,R1 000013F4 4308 SHLL2 R3 000013F6 331C ADD R1,R3 000013F8 4308 SHLL2 R3 000013FA 330C ADD R0,R3 000013FC 6053 MOV R5,R0 000013FE 8137 MOV.W R0,@(14,R3) Mines.c 1245 m_Room[pRoomEntrance].Adjacent.Passage.pPassageEast Mines.c 1246 =pPassage; 00001400 63E2 MOV.L @R14,R3 00001402 6053 MOV R5,R0 00001404 51FF MOV.L @(60,R15),R1 00001406 313C ADD R3,R1 00001408 A007 BRA L1571 0000140A 8116 MOV.W R0,@(12,R1) 0000140C L1572: Mines.c 1247 } SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 69 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1248 else Mines.c 1249 { Mines.c 1250 DisplayText("Fatal error: memory was exhausted at locaton 4.",bErr); 0000140C 903F MOV.W L2049+2,R0 ; H'0088 0000140E D420 MOV.L L2049+4,R4 ; L709 00001410 BC61 BSR __$DisplayText 00001412 05FE MOV.L @(R0,R15),R5 Mines.c 1251 *bErr=TRUE; 00001414 903B MOV.W L2049+2,R0 ; H'0088 00001416 02FE MOV.L @(R0,R15),R2 00001418 2280 MOV.B R8,@R2 0000141A L1571: Mines.c 1252 } Mines.c 1253 } Mines.c 1254 pRoomDown=pRoom; 0000141A A007 BRA L1574 0000141C 2F91 MOV.W R9,@R15 0000141E L1551: Mines.c 1255 } Mines.c 1256 else Mines.c 1257 { Mines.c 1258 DisplayText("Fatal error: memory was exhausted at locaton 5.",bErr); 0000141E 9036 MOV.W L2049+2,R0 ; H'0088 00001420 D41C MOV.L L2049+8,R4 ; L711 00001422 BC58 BSR __$DisplayText 00001424 05FE MOV.L @(R0,R15),R5 Mines.c 1259 *bErr=TRUE; 00001426 9032 MOV.W L2049+2,R0 ; H'0088 00001428 02FE MOV.L @(R0,R15),R2 0000142A 2280 MOV.B R8,@R2 0000142C L1574: 0000142C E010 MOV #16,R0 0000142E 03FC MOV.B @(R0,R15),R3 00001430 7301 ADD #1,R3 00001432 E010 MOV #16,R0 00001434 0F34 MOV.B R3,@(R0,R15) 00001436 L1549: 00001436 902A MOV.W L2049+2,R0 ; H'0088 00001438 02FE MOV.L @(R0,R15),R2 0000143A 6320 MOV.B @R2,R3 0000143C 2338 TST R3,R3 0000143E 8B07 BF L1575 00001440 E010 MOV #16,R0 00001442 03FC MOV.B @(R0,R15),R3 00001444 E028 MOV #40,R0 00001446 02FC MOV.B @(R0,R15),R2 00001448 3323 CMP/GE R2,R3 0000144A 8901 BT L2050 0000144C AE58 BRA L1550 0000144E 0009 NOP 00001450 L2050: 00001450 L1575: 00001450 85FA MOV.W @(20,R15),R0 00001452 6503 MOV R0,R5 00001454 6053 MOV R5,R0 00001456 88FF CMP/EQ #-1,R0 00001458 8925 BT L1576 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 70 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000145A 85FA MOV.W @(20,R15),R0 0000145C 64E2 MOV.L @R14,R4 0000145E 6303 MOV R0,R3 00001460 4008 SHLL2 R0 00001462 303C ADD R3,R0 00001464 4008 SHLL2 R0 00001466 340C ADD R0,R4 00001468 8544 MOV.W @(8,R4),R0 0000146A 88FF CMP/EQ #-1,R0 0000146C 891B BT L1576 Mines.c 1260 } Mines.c 1261 } Mines.c 1262 if (pRoomWestBase != -1) Mines.c 1263 { Mines.c 1264 if (m_Room[pRoomWestBase].Adjacent.Passage.pPassageNorth != -1) Mines.c 1265 { Mines.c 1266 if (m_Passage[m_Room[pRoomWestBase].Adjacent.Passage.pPassageNorth].pRoom1 Mines.c 1267 == pRoomWestBase) 0000146E 8544 MOV.W @(8,R4),R0 00001470 63D2 MOV.L @R13,R3 00001472 4008 SHLL2 R0 00001474 4000 SHLL R0 00001476 303C ADD R3,R0 00001478 8502 MOV.W @(4,R0),R0 0000147A 3050 CMP/EQ R5,R0 0000147C 8B0C BF L1578 Mines.c 1268 pRoomWestBase=m_Passage[m_Room[pRoomWestBase].Adjacent.Passage.pPassageNorth].pRoom2 +; 0000147E 8544 MOV.W @(8,R4),R0 00001480 63D2 MOV.L @R13,R3 00001482 4008 SHLL2 R0 00001484 4000 SHLL R0 00001486 303C ADD R3,R0 00001488 A00C BRA L1980 0000148A 8503 MOV.W @(6,R0),R0 0000148C L2049: 0000148C 0373 .DATA.W H'0373 0000148E 0088 .DATA.W H'0088 00001490 <00000000> .DATA.L L709 00001494 <00000000> .DATA.L L711 00001498 L1578: Mines.c 1269 else Mines.c 1270 pRoomWestBase=m_Passage[m_Room[pRoomWestBase].Adjacent.Passage.pPassageNorth].pRoom1 +; 00001498 8544 MOV.W @(8,R4),R0 0000149A 4008 SHLL2 R0 0000149C 63D2 MOV.L @R13,R3 0000149E 4000 SHLL R0 000014A0 303C ADD R3,R0 000014A2 8502 MOV.W @(4,R0),R0 000014A4 L1980: 000014A4 81FA MOV.W R0,@(20,R15) 000014A6 L1576: 000014A6 E01C MOV #28,R0 000014A8 03FC MOV.B @(R0,R15),R3 000014AA E01C MOV #28,R0 000014AC 7301 ADD #1,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 71 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000014AE 0F34 MOV.B R3,@(R0,R15) 000014B0 L1547: 000014B0 9085 MOV.W L2051,R0 ; H'0088 000014B2 02FE MOV.L @(R0,R15),R2 000014B4 6320 MOV.B @R2,R3 000014B6 2338 TST R3,R3 000014B8 8B07 BF L1580 000014BA E01C MOV #28,R0 000014BC 03FC MOV.B @(R0,R15),R3 000014BE E034 MOV #52,R0 000014C0 02FC MOV.B @(R0,R15),R2 000014C2 3323 CMP/GE R2,R3 000014C4 8901 BT L2052 000014C6 AE07 BRA L1548 000014C8 0009 NOP 000014CA L2052: 000014CA L1580: Mines.c 1271 } Mines.c 1272 } Mines.c 1273 } Mines.c 1274 pRoomWestBase=pRoomWestBaseBase; 000014CA E050 MOV #80,R0 000014CC 00FD MOV.W @(R0,R15),R0 000014CE 81FA MOV.W R0,@(20,R15) 000014D0 E030 MOV #48,R0 000014D2 03FC MOV.B @(R0,R15),R3 000014D4 7301 ADD #1,R3 000014D6 E030 MOV #48,R0 000014D8 0F34 MOV.B R3,@(R0,R15) 000014DA L1544: 000014DA 9070 MOV.W L2051,R0 ; H'0088 000014DC 02FE MOV.L @(R0,R15),R2 000014DE 6320 MOV.B @R2,R3 000014E0 2338 TST R3,R3 000014E2 8B07 BF L1581 000014E4 E030 MOV #48,R0 000014E6 03FC MOV.B @(R0,R15),R3 000014E8 E048 MOV #72,R0 000014EA 02FC MOV.B @(R0,R15),R2 000014EC 3323 CMP/GE R2,R3 000014EE 8901 BT L2053 000014F0 ADE6 BRA L1545 000014F2 0009 NOP 000014F4 L2053: 000014F4 L1581: Mines.c 1275 } Mines.c 1276 nChokepoint=-1; 000014F4 6BC3 MOV R12,R11 Mines.c 1277 nTreasure=0; 000014F6 60A3 MOV R10,R0 000014F8 80FC MOV.B R0,@(12,R15) Mines.c 1278 pRoom=pRoomEntrance; 000014FA E02C MOV #44,R0 000014FC 0CFD MOV.W @(R0,R15),R12 Mines.c 1279 nRoom=0; Mines.c 1280 while (nRoom < nRooms) 000014FE A148 BRA L1582 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 72 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001500 69A3 MOV R10,R9 00001502 L1583: Mines.c 1281 { Mines.c 1282 pRoomStart=pRoom; Mines.c 1283 nDirection1=RandomNumber()%6; 00001502 BC39 BSR __$RandomNumber 00001504 0009 NOP 00001506 610F EXTS.W R0,R1 00001508 D32D MOV.L L2051+2,R3 ; __modls 0000150A 430B JSR @R3 0000150C E006 MOV #6,R0 0000150E 80F4 MOV.B R0,@(4,R15) Mines.c 1284 nDirectionOpposite=m_nDirectionOpposite[nDirection1]; 00001510 D42C MOV.L L2051+6,R4 ; __$m_nDirectionOpposite 00001512 600E EXTS.B R0,R0 00001514 034C MOV.B @(R0,R4),R3 00001516 E010 MOV #16,R0 Mines.c 1285 nDistance=RandomNumber()%3+1; 00001518 BC2E BSR __$RandomNumber 0000151A 0F34 MOV.B R3,@(R0,R15) 0000151C D328 MOV.L L2051+2,R3 ; __modls 0000151E 610F EXTS.W R0,R1 00001520 430B JSR @R3 00001522 E003 MOV #3,R0 00001524 7001 ADD #1,R0 Mines.c 1286 nStep=0; 00001526 65A3 MOV R10,R5 00001528 81FA MOV.W R0,@(20,R15) 0000152A 84F4 MOV.B @(4,R15),R0 0000152C 4000 SHLL R0 Mines.c 1287 while ((m_Room[pRoom].Adjacent.pPassage[nDirection1] != -1) 0000152E A08E BRA L1584 00001530 2F02 MOV.L R0,@R15 00001532 L1585: Mines.c 1288 && (nStep < nDistance)) Mines.c 1289 { Mines.c 1290 pPassage=m_Room[pRoom].Adjacent.pPassage[nDirection1]; 00001532 6063 MOV R6,R0 00001534 63F2 MOV.L @R15,R3 00001536 7008 ADD #8,R0 00001538 003D MOV.W @(R0,R3),R0 0000153A 63CF EXTS.W R12,R3 0000153C 81F2 MOV.W R0,@(4,R15) 0000153E 85F2 MOV.W @(4,R15),R0 00001540 62D2 MOV.L @R13,R2 00001542 6703 MOV R0,R7 00001544 4708 SHLL2 R7 00001546 4700 SHLL R7 00001548 372C ADD R2,R7 0000154A 8572 MOV.W @(4,R7),R0 0000154C 3030 CMP/EQ R3,R0 0000154E 8B00 BF L1981 Mines.c 1291 if (m_Passage[pPassage].pRoom1 == pRoom) Mines.c 1292 pRoomNext=m_Passage[pPassage].pRoom2; 00001550 8573 MOV.W @(6,R7),R0 00001552 L1981: Mines.c 1293 else SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 73 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1294 pRoomNext=m_Passage[pPassage].pRoom1; Mines.c 1295 if (m_Passage[pPassage].bBlocked) 00001552 6370 MOV.B @R7,R3 00001554 2338 TST R3,R3 00001556 8D6F BT/S L1588 00001558 6603 MOV R0,R6 Mines.c 1296 if ((m_Room[pRoomNext].nChokepoint == nChokepoint) Mines.c 1297 || (! m_Room[pRoomNext].bMined)) 0000155A 676F EXTS.W R6,R7 0000155C 62E2 MOV.L @R14,R2 0000155E 6373 MOV R7,R3 00001560 4708 SHLL2 R7 00001562 373C ADD R3,R7 00001564 4708 SHLL2 R7 00001566 372C ADD R2,R7 00001568 8572 MOV.W @(4,R7),R0 0000156A 63BF EXTS.W R11,R3 0000156C 3030 CMP/EQ R3,R0 0000156E 8902 BT L1590 00001570 8476 MOV.B @(6,R7),R0 00001572 2008 TST R0,R0 00001574 8B5D BF L1060 00001576 L1590: Mines.c 1298 { Mines.c 1299 pRoom=pRoomNext; 00001576 6C63 MOV R6,R12 Mines.c 1300 m_Room[pRoom].bMined=TRUE; 00001578 62E2 MOV.L @R14,R2 0000157A 6083 MOV R8,R0 0000157C 66CF EXTS.W R12,R6 0000157E 6363 MOV R6,R3 00001580 4608 SHLL2 R6 00001582 363C ADD R3,R6 00001584 4608 SHLL2 R6 00001586 326C ADD R6,R2 00001588 8026 MOV.B R0,@(6,R2) Mines.c 1301 m_Room[pRoom].nChokepoint=nChokepoint; 0000158A 60B3 MOV R11,R0 0000158C 63E2 MOV.L @R14,R3 0000158E 336C ADD R6,R3 00001590 8132 MOV.W R0,@(4,R3) Mines.c 1302 m_Passage[pPassage].bBlocked=FALSE; 00001592 85F2 MOV.W @(4,R15),R0 00001594 63D2 MOV.L @R13,R3 00001596 4008 SHLL2 R0 00001598 4000 SHLL R0 0000159A 303C ADD R3,R0 0000159C 20A0 MOV.B R10,@R0 Mines.c 1303 if (m_Room[pRoom].szDescription) 0000159E 62E2 MOV.L @R14,R2 000015A0 362C ADD R2,R6 000015A2 6362 MOV.L @R6,R3 000015A4 2338 TST R3,R3 000015A6 8B42 BF L1059 Mines.c 1304 ++nStep; Mines.c 1305 else Mines.c 1306 { SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 74 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1307 nUnblocked=0; 000015A8 66A3 MOV R10,R6 Mines.c 1308 for (nDirection2=6; 000015AA E306 MOV #6,R3 000015AC E018 MOV #24,R0 000015AE 62CF EXTS.W R12,R2 000015B0 0F34 MOV.B R3,@(R0,R15) 000015B2 6323 MOV R2,R3 000015B4 4208 SHLL2 R2 000015B6 323C ADD R3,R2 000015B8 4208 SHLL2 R2 000015BA A029 BRA L1593 000015BC 1F21 MOV.L R2,@(4,R15) 000015BE L2051: 000015BE 0088 .DATA.W H'0088 000015C0 <00000000> .DATA.L __modls 000015C4 <00000000> .DATA.L __$m_nDirectionOpposite 000015C8 L1594: Mines.c 1309 ((nUnblocked < 2) && (nDirection2--));) Mines.c 1310 if (nDirection2 != nDirectionOpposite) 000015C8 E018 MOV #24,R0 000015CA 01FC MOV.B @(R0,R15),R1 000015CC E010 MOV #16,R0 000015CE 03FC MOV.B @(R0,R15),R3 000015D0 3130 CMP/EQ R3,R1 000015D2 891D BT L1593 Mines.c 1311 if (m_Room[pRoom].Adjacent.pPassage[nDirection2] != -1) 000015D4 63E2 MOV.L @R14,R3 000015D6 61F3 MOV R15,R1 000015D8 50F1 MOV.L @(4,R15),R0 000015DA 7118 ADD #24,R1 000015DC 6210 MOV.B @R1,R2 000015DE 303C ADD R3,R0 000015E0 4200 SHLL R2 000015E2 7008 ADD #8,R0 000015E4 002D MOV.W @(R0,R2),R0 000015E6 88FF CMP/EQ #-1,R0 000015E8 8912 BT L1593 Mines.c 1312 if (! m_Passage[m_Room[pRoom].Adjacent.pPassage[nDirection2]].bBlocked) 000015EA 61F3 MOV R15,R1 000015EC 63E2 MOV.L @R14,R3 000015EE 7118 ADD #24,R1 000015F0 50F1 MOV.L @(4,R15),R0 000015F2 303C ADD R3,R0 000015F4 6210 MOV.B @R1,R2 000015F6 6303 MOV R0,R3 000015F8 4200 SHLL R2 000015FA 7308 ADD #8,R3 000015FC 323C ADD R3,R2 000015FE 6121 MOV.W @R2,R1 00001600 63D2 MOV.L @R13,R3 00001602 4108 SHLL2 R1 00001604 4100 SHLL R1 00001606 313C ADD R3,R1 00001608 6210 MOV.B @R1,R2 0000160A 2228 TST R2,R2 0000160C 8B00 BF L1593 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 75 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1313 ++nUnblocked; 0000160E 7601 ADD #1,R6 00001610 L1593: 00001610 636F EXTS.W R6,R3 00001612 3343 CMP/GE R4,R3 00001614 8908 BT L1598 00001616 E018 MOV #24,R0 00001618 03FC MOV.B @(R0,R15),R3 0000161A E018 MOV #24,R0 0000161C 73FF ADD #-1,R3 0000161E 0F34 MOV.B R3,@(R0,R15) 00001620 7301 ADD #1,R3 00001622 633E EXTS.B R3,R3 00001624 2338 TST R3,R3 00001626 8BCF BF L1594 00001628 L1598: Mines.c 1314 if (nUnblocked < 2) 00001628 666F EXTS.W R6,R6 0000162A 3643 CMP/GE R4,R6 0000162C 8901 BT L1060 0000162E L1059: Mines.c 1315 ++nStep; 0000162E A00E BRA L1584 00001630 7501 ADD #1,R5 00001632 L1060: Mines.c 1316 else Mines.c 1317 nStep=nDistance; Mines.c 1318 } Mines.c 1319 } Mines.c 1320 else Mines.c 1321 nStep=nDistance; 00001632 85FA MOV.W @(20,R15),R0 00001634 A00B BRA L1584 00001636 6503 MOV R0,R5 00001638 L1588: Mines.c 1322 else Mines.c 1323 { Mines.c 1324 ++nStep; Mines.c 1325 pRoom=pRoomNext; Mines.c 1326 nChokepoint=m_Room[pRoom].nChokepoint; 00001638 62E2 MOV.L @R14,R2 0000163A 7501 ADD #1,R5 0000163C 6C63 MOV R6,R12 0000163E 6BCF EXTS.W R12,R11 00001640 63B3 MOV R11,R3 00001642 4B08 SHLL2 R11 00001644 3B3C ADD R3,R11 00001646 4B08 SHLL2 R11 00001648 3B2C ADD R2,R11 0000164A 85B2 MOV.W @(4,R11),R0 0000164C 6B03 MOV R0,R11 0000164E L1584: 0000164E 66CF EXTS.W R12,R6 00001650 62E2 MOV.L @R14,R2 00001652 6363 MOV R6,R3 00001654 4608 SHLL2 R6 00001656 363C ADD R3,R6 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 76 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001658 63F2 MOV.L @R15,R3 0000165A 4608 SHLL2 R6 0000165C 362C ADD R2,R6 0000165E 6063 MOV R6,R0 00001660 7008 ADD #8,R0 00001662 003D MOV.W @(R0,R3),R0 00001664 88FF CMP/EQ #-1,R0 00001666 8D06 BT/S L1603 00001668 E402 MOV #2,R4 0000166A 615F EXTS.W R5,R1 0000166C 85FA MOV.W @(20,R15),R0 0000166E 3103 CMP/GE R0,R1 00001670 8901 BT L2054 00001672 AF5E BRA L1585 00001674 0009 NOP 00001676 L2054: 00001676 L1603: Mines.c 1327 } Mines.c 1328 } Mines.c 1329 if (nStep) 00001676 655F EXTS.W R5,R5 00001678 2558 TST R5,R5 0000167A 8B01 BF L2055 0000167C A089 BRA L1582 0000167E 0009 NOP 00001680 L2055: Mines.c 1330 { Mines.c 1331 if (m_Room[pRoom].szDescription == NULL) 00001680 6262 MOV.L @R6,R2 00001682 2228 TST R2,R2 00001684 8901 BT L2056 00001686 A084 BRA L1582 00001688 0009 NOP 0000168A L2056: Mines.c 1332 { Mines.c 1333 m_Room[pRoom].szDescription=m_szRoom[nRoom]; 0000168A 609F EXTS.W R9,R0 0000168C D508 MOV.L L2057+2,R5 ; __$m_szRoom 0000168E 4008 SHLL2 R0 00001690 6352 MOV.L @R5,R3 00001692 023E MOV.L @(R0,R3),R2 00001694 2622 MOV.L R2,@R6 Mines.c 1334 nDirection1=0; Mines.c 1335 nUnblocked=0; 00001696 66A3 MOV R10,R6 00001698 2FA0 MOV.B R10,@R15 Mines.c 1336 for (nDirection2=6; 0000169A E306 MOV #6,R3 0000169C E018 MOV #24,R0 0000169E 62CF EXTS.W R12,R2 000016A0 0F34 MOV.B R3,@(R0,R15) 000016A2 6323 MOV R2,R3 000016A4 4208 SHLL2 R2 000016A6 323C ADD R3,R2 000016A8 4208 SHLL2 R2 000016AA A024 BRA L1606 000016AC 1F21 MOV.L R2,@(4,R15) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 77 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000016AE L2057: 000016AE 0000 .DATA.W 0 000016B0 <00000000> .DATA.L __$m_szRoom 000016B4 L1607: Mines.c 1337 ((nUnblocked < 2) && (nDirection2--));) Mines.c 1338 if (m_Room[pRoom].Adjacent.pPassage[nDirection2] != -1) 000016B4 63E2 MOV.L @R14,R3 000016B6 61F3 MOV R15,R1 000016B8 50F1 MOV.L @(4,R15),R0 000016BA 7118 ADD #24,R1 000016BC 6210 MOV.B @R1,R2 000016BE 303C ADD R3,R0 000016C0 4200 SHLL R2 000016C2 7008 ADD #8,R0 000016C4 002D MOV.W @(R0,R2),R0 000016C6 88FF CMP/EQ #-1,R0 000016C8 8915 BT L1606 Mines.c 1339 if (! m_Passage[m_Room[pRoom].Adjacent.pPassage[nDirection2]].bBlocked) 000016CA 61F3 MOV R15,R1 000016CC 63E2 MOV.L @R14,R3 000016CE 7118 ADD #24,R1 000016D0 50F1 MOV.L @(4,R15),R0 000016D2 303C ADD R3,R0 000016D4 6210 MOV.B @R1,R2 000016D6 6303 MOV R0,R3 000016D8 4200 SHLL R2 000016DA 7308 ADD #8,R3 000016DC 323C ADD R3,R2 000016DE 6121 MOV.W @R2,R1 000016E0 63D2 MOV.L @R13,R3 000016E2 4108 SHLL2 R1 000016E4 4100 SHLL R1 000016E6 313C ADD R3,R1 000016E8 6210 MOV.B @R1,R2 000016EA 2228 TST R2,R2 000016EC 8B03 BF L1606 Mines.c 1340 { Mines.c 1341 nDirection1=nDirection2; 000016EE E018 MOV #24,R0 000016F0 02FC MOV.B @(R0,R15),R2 Mines.c 1342 ++nUnblocked; 000016F2 7601 ADD #1,R6 000016F4 2F20 MOV.B R2,@R15 000016F6 L1606: 000016F6 656F EXTS.W R6,R5 000016F8 3543 CMP/GE R4,R5 000016FA 8908 BT L1610 000016FC E018 MOV #24,R0 000016FE 02FC MOV.B @(R0,R15),R2 00001700 72FF ADD #-1,R2 00001702 E018 MOV #24,R0 00001704 0F24 MOV.B R2,@(R0,R15) 00001706 7201 ADD #1,R2 00001708 622E EXTS.B R2,R2 0000170A 2228 TST R2,R2 0000170C 8BD2 BF L1607 0000170E L1610: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 78 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1343 } Mines.c 1344 if (nUnblocked == 1) 0000170E 6053 MOV R5,R0 00001710 8801 CMP/EQ #1,R0 00001712 8B2F BF L1611 Mines.c 1345 { Mines.c 1346 if (((int32) (nRooms-nRoom))*RandomNumber() < 32768*((int32) (nTreasures-nTreasure))) 00001714 639F EXTS.W R9,R3 00001716 E054 MOV #84,R0 00001718 02FE MOV.L @(R0,R15),R2 0000171A 3238 SUB R3,R2 0000171C BB2C BSR __$RandomNumber 0000171E 2F26 MOV.L R2,@-R15 00001720 61F6 MOV.L @R15+,R1 00001722 600F EXTS.W R0,R0 00001724 0107 MUL.L R0,R1 00001726 62F3 MOV R15,R2 00001728 001A STS MACL,R0 0000172A 6103 MOV R0,R1 0000172C 84FC MOV.B @(12,R15),R0 0000172E 725C ADD #92,R2 00001730 6320 MOV.B @R2,R3 00001732 3308 SUB R0,R3 00001734 4318 SHLL8 R3 00001736 4308 SHLL2 R3 00001738 4308 SHLL2 R3 0000173A 4308 SHLL2 R3 0000173C 4300 SHLL R3 0000173E 3133 CMP/GE R3,R1 00001740 8918 BT L1611 Mines.c 1347 { Mines.c 1348 nChokepoint=nTreasure; 00001742 84FC MOV.B @(12,R15),R0 Mines.c 1349 m_Passage[m_Room[pRoom].Adjacent.pPassage[nDirection1]]. Mines.c 1350 pTreasureGuardian=nTreasure; 00001744 62E2 MOV.L @R14,R2 00001746 6403 MOV R0,R4 00001748 6B43 MOV R4,R11 0000174A 60CF EXTS.W R12,R0 0000174C 6303 MOV R0,R3 0000174E 4008 SHLL2 R0 00001750 303C ADD R3,R0 00001752 4008 SHLL2 R0 00001754 63F0 MOV.B @R15,R3 00001756 302C ADD R2,R0 00001758 4300 SHLL R3 0000175A 6203 MOV R0,R2 0000175C 7208 ADD #8,R2 0000175E 332C ADD R2,R3 00001760 6131 MOV.W @R3,R1 00001762 6043 MOV R4,R0 00001764 63D2 MOV.L @R13,R3 00001766 4108 SHLL2 R1 00001768 4100 SHLL R1 0000176A 313C ADD R3,R1 0000176C 8111 MOV.W R0,@(2,R1) Mines.c 1351 ++nTreasure; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 79 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000176E 84FC MOV.B @(12,R15),R0 00001770 7001 ADD #1,R0 00001772 80FC MOV.B R0,@(12,R15) 00001774 L1611: Mines.c 1352 } Mines.c 1353 } Mines.c 1354 m_Room[pRoom].nChokepoint=nChokepoint; 00001774 61E2 MOV.L @R14,R1 00001776 60B3 MOV R11,R0 00001778 63CF EXTS.W R12,R3 0000177A 6233 MOV R3,R2 0000177C 4308 SHLL2 R3 0000177E 332C ADD R2,R3 00001780 4308 SHLL2 R3 00001782 331C ADD R1,R3 00001784 8132 MOV.W R0,@(4,R3) Mines.c 1355 ppRoomWithName[nRoom]=pRoom; 00001786 639F EXTS.W R9,R3 00001788 9021 MOV.W L2058,R0 ; H'0084 0000178A 4300 SHLL R3 0000178C 00FE MOV.L @(R0,R15),R0 Mines.c 1356 ++nRoom; 0000178E 7901 ADD #1,R9 00001790 03C5 MOV.W R12,@(R0,R3) 00001792 L1582: 00001792 639F EXTS.W R9,R3 00001794 E054 MOV #84,R0 00001796 02FE MOV.L @(R0,R15),R2 00001798 3323 CMP/GE R2,R3 0000179A 8901 BT L2059 0000179C AEB1 BRA L1583 0000179E 0009 NOP 000017A0 L2059: Mines.c 1357 } Mines.c 1358 } Mines.c 1359 } Mines.c 1360 ppRoomWithName[nRoom]=pRoomEntrance; 000017A0 9015 MOV.W L2058,R0 ; H'0084 000017A2 61F3 MOV R15,R1 000017A4 00FE MOV.L @(R0,R15),R0 000017A6 699F EXTS.W R9,R9 000017A8 4900 SHLL R9 000017AA 712C ADD #44,R1 000017AC 6311 MOV.W @R1,R3 000017AE 0935 MOV.W R3,@(R0,R9) Mines.c 1361 *nChokepoints=nTreasure; 000017B0 E058 MOV #88,R0 000017B2 02FE MOV.L @(R0,R15),R2 000017B4 84FC MOV.B @(12,R15),R0 000017B6 2201 MOV.W R0,@R2 Mines.c 1362 return; Mines.c 1363 } 000017B8 7F60 ADD #96,R15 000017BA 4F16 LDS.L @R15+,MACL 000017BC 4F26 LDS.L @R15+,PR 000017BE 68F6 MOV.L @R15+,R8 000017C0 69F6 MOV.L @R15+,R9 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 80 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000017C2 6AF6 MOV.L @R15+,R10 000017C4 6BF6 MOV.L @R15+,R11 000017C6 6CF6 MOV.L @R15+,R12 000017C8 6DF6 MOV.L @R15+,R13 000017CA 000B RTS 000017CC 6EF6 MOV.L @R15+,R14 000017CE L2058: 000017CE 0084 .DATA.W H'0084 Mines.c 1364 Mines.c 1365 static void FindPathToEntrance( 000017D0 __$FindPathToEntrance: ; function: FindPathToEntrance ; frame size=80 ; used runtime library name: ; __modws 000017D0 2FE6 MOV.L R14,@-R15 000017D2 E028 MOV #40,R0 Mines.c 1366 int16 pRoomStart, Mines.c 1367 int16 pRoomEntrance, Mines.c 1368 char **pszWayOut) Mines.c 1369 { Mines.c 1370 int8 bOutOfMemory; Mines.c 1371 int8 bReenter; Mines.c 1372 int8 bResume; Mines.c 1373 int16 nIterations; Mines.c 1374 int8 nReturnAddress; Mines.c 1375 int16 pFindPathLocals; Mines.c 1376 int16 pFindPathLocalsHead; Mines.c 1377 int16 pFindPathParameters; Mines.c 1378 int16 pFindPathParametersHead; Mines.c 1379 int16 pPathStackHead; Mines.c 1380 Mines.c 1381 bOutOfMemory=FALSE; Mines.c 1382 pFindPathLocals=-1; Mines.c 1383 pFindPathLocalsHead=-1; Mines.c 1384 pFindPathParameters=-1; Mines.c 1385 pFindPathParametersHead=-1; Mines.c 1386 if (m_nFindPathParameters < 3*NUM_ROOMS-2) 000017D4 9246 MOV.W L2060,R2 ; H'0127 000017D6 2FD6 MOV.L R13,@-R15 000017D8 2FC6 MOV.L R12,@-R15 000017DA 2FB6 MOV.L R11,@-R15 000017DC 2FA6 MOV.L R10,@-R15 000017DE EA01 MOV #1,R10 000017E0 DC22 MOV.L L2060+8,R12; __$m_nFindPathParameters 000017E2 2F96 MOV.L R9,@-R15 000017E4 2F86 MOV.L R8,@-R15 000017E6 E9FF MOV #-1,R9 000017E8 DD21 MOV.L L2060+12,R13; __$m_FindPathParameter 000017EA 4F22 STS.L PR,@-R15 000017EC D81E MOV.L L2060+4,R8 ; __$m_Path 000017EE 7FD4 ADD #-44,R15 000017F0 DE20 MOV.L L2060+16,R14; __$m_FindPathLocal 000017F2 0F55 MOV.W R5,@(R0,R15) 000017F4 1F62 MOV.L R6,@(8,R15) 000017F6 E000 MOV #0,R0 000017F8 80F4 MOV.B R0,@(4,R15) 000017FA 63C1 MOV.W @R12,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 81 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000017FC 3323 CMP/GE R2,R3 000017FE 8F02 BF/S L2061 00001800 6793 MOV R9,R7 00001802 A4DD BRA L1673 00001804 0009 NOP 00001806 L2061: Mines.c 1387 { Mines.c 1388 pFindPathParameters=m_nFindPathParameters; Mines.c 1389 ++m_nFindPathParameters; Mines.c 1390 m_FindPathParameter[pFindPathParameters].pNext=pFindPathParametersHead; 00001806 6073 MOV R7,R0 00001808 66C1 MOV.W @R12,R6 0000180A 61C1 MOV.W @R12,R1 0000180C 7101 ADD #1,R1 0000180E 656F EXTS.W R6,R5 00001810 2C11 MOV.W R1,@R12 Mines.c 1391 m_FindPathParameter[pFindPathParameters].pRoom=pRoomStart; Mines.c 1392 m_FindPathParameter[pFindPathParameters].nDirectionUsedToEnterRoom=0; Mines.c 1393 m_FindPathParameter[pFindPathParameters].nReturnAddress=0; Mines.c 1394 pFindPathParametersHead=pFindPathParameters; 00001812 6B63 MOV R6,R11 00001814 61D2 MOV.L @R13,R1 00001816 6353 MOV R5,R3 00001818 4500 SHLL R5 0000181A 4308 SHLL2 R3 0000181C 353C ADD R3,R5 0000181E 315C ADD R5,R1 00001820 8112 MOV.W R0,@(4,R1) 00001822 E000 MOV #0,R0 00001824 63D2 MOV.L @R13,R3 00001826 335C ADD R5,R3 00001828 2341 MOV.W R4,@R3 0000182A 61D2 MOV.L @R13,R1 0000182C 315C ADD R5,R1 0000182E 8012 MOV.B R0,@(2,R1) 00001830 63D2 MOV.L @R13,R3 00001832 353C ADD R3,R5 00001834 8053 MOV.B R0,@(3,R5) Mines.c 1395 pPathStackHead=-1; Mines.c 1396 bResume=FALSE; 00001836 E300 MOV #0,R3 00001838 E0FF MOV #-1,R0 0000183A 81F8 MOV.W R0,@(16,R15) 0000183C E024 MOV #36,R0 0000183E 0F34 MOV.B R3,@(R0,R15) Mines.c 1397 nIterations=0; 00001840 6033 MOV R3,R0 00001842 81FA MOV.W R0,@(20,R15) Mines.c 1398 do 00001844 L1615: Mines.c 1399 { Mines.c 1400 ++nIterations; 00001844 85FA MOV.W @(20,R15),R0 00001846 7001 ADD #1,R0 00001848 81FA MOV.W R0,@(20,R15) Mines.c 1401 bReenter=FALSE; Mines.c 1402 if (bResume) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 82 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000184A E024 MOV #36,R0 0000184C 03FC MOV.B @(R0,R15),R3 0000184E 2338 TST R3,R3 00001850 8F02 BF/S L2062 00001852 E400 MOV #0,R4 00001854 A148 BRA L1616 00001856 0009 NOP 00001858 L2062: 00001858 639F EXTS.W R9,R3 0000185A 4308 SHLL2 R3 0000185C 4308 SHLL2 R3 0000185E 6533 MOV R3,R5 Mines.c 1403 { Mines.c 1404 for (; 00001860 A100 BRA L1617 00001862 2F52 MOV.L R5,@R15 00001864 L2060: 00001864 0127 .DATA.W H'0127 00001866 0000 .DATA.W 0 00001868 <00000000> .DATA.L __$m_Path 0000186C <00000000> .DATA.L __$m_nFindPathParameters 00001870 <00000000> .DATA.L __$m_FindPathParameter 00001874 <00000000> .DATA.L __$m_FindPathLocal 00001878 L1618: Mines.c 1405 ((! bOutOfMemory) Mines.c 1406 && (! bReenter) Mines.c 1407 && (! *pszWayOut) Mines.c 1408 && ((m_FindPathLocal[pFindPathLocalsHead].nDirection1) > 0));) Mines.c 1409 { Mines.c 1410 --(m_FindPathLocal[pFindPathLocalsHead].nDirection1); 00001878 63E2 MOV.L @R14,R3 0000187A 62F2 MOV.L @R15,R2 Mines.c 1411 m_FindPathLocal[pFindPathLocalsHead].nDirection2 Mines.c 1412 =(m_FindPathLocal[pFindPathLocalsHead].nDirectionRandom)[ Mines.c 1413 m_FindPathLocal[pFindPathLocalsHead].nDirection1]; Mines.c 1414 if (m_Room[m_FindPathParameter[pFindPathParametersHead].pRoom].Adjacent.pPassage[ Mines.c 1415 m_FindPathLocal[pFindPathLocalsHead].nDirection2] != -1) 0000187C D155 MOV.L L2063+4,R1 ; __$m_Room 0000187E 323C ADD R3,R2 00001880 8421 MOV.B @(1,R2),R0 00001882 70FF ADD #-1,R0 00001884 8021 MOV.B R0,@(1,R2) 00001886 63E2 MOV.L @R14,R3 00001888 65F2 MOV.L @R15,R5 0000188A 353C ADD R3,R5 0000188C 8451 MOV.B @(1,R5),R0 0000188E 6353 MOV R5,R3 00001890 7304 ADD #4,R3 00001892 003C MOV.B @(R0,R3),R0 00001894 8052 MOV.B R0,@(2,R5) 00001896 60BF EXTS.W R11,R0 00001898 62D2 MOV.L @R13,R2 0000189A 6303 MOV R0,R3 0000189C 4000 SHLL R0 0000189E 4308 SHLL2 R3 000018A0 303C ADD R3,R0 000018A2 002D MOV.W @(R0,R2),R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 83 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000018A4 6212 MOV.L @R1,R2 000018A6 6303 MOV R0,R3 000018A8 4008 SHLL2 R0 000018AA 303C ADD R3,R0 000018AC 63E2 MOV.L @R14,R3 000018AE 4008 SHLL2 R0 000018B0 302C ADD R2,R0 000018B2 6103 MOV R0,R1 000018B4 7108 ADD #8,R1 000018B6 62F2 MOV.L @R15,R2 000018B8 323C ADD R3,R2 000018BA 8422 MOV.B @(2,R2),R0 000018BC 4000 SHLL R0 000018BE 001D MOV.W @(R0,R1),R0 000018C0 88FF CMP/EQ #-1,R0 000018C2 8B01 BF L2064 000018C4 A0CE BRA L1617 000018C6 0009 NOP 000018C8 L2064: Mines.c 1416 { Mines.c 1417 if (! m_Passage[m_Room[m_FindPathParameter[pFindPathParametersHead].pRoom]. Mines.c 1418 Adjacent.pPassage[ Mines.c 1419 m_FindPathLocal[pFindPathLocalsHead].nDirection2]].bBlocked) 000018C8 62D2 MOV.L @R13,R2 000018CA 60BF EXTS.W R11,R0 000018CC D141 MOV.L L2063+4,R1 ; __$m_Room 000018CE 6303 MOV R0,R3 000018D0 4000 SHLL R0 000018D2 4308 SHLL2 R3 000018D4 303C ADD R3,R0 000018D6 002D MOV.W @(R0,R2),R0 000018D8 6212 MOV.L @R1,R2 000018DA 6303 MOV R0,R3 000018DC 4008 SHLL2 R0 000018DE 303C ADD R3,R0 000018E0 63E2 MOV.L @R14,R3 000018E2 4008 SHLL2 R0 000018E4 302C ADD R2,R0 000018E6 6103 MOV R0,R1 000018E8 62F2 MOV.L @R15,R2 000018EA 7108 ADD #8,R1 000018EC 323C ADD R3,R2 000018EE 8422 MOV.B @(2,R2),R0 000018F0 4000 SHLL R0 000018F2 031D MOV.W @(R0,R1),R3 000018F4 D138 MOV.L L2063+8,R1 ; __$m_Passage 000018F6 4308 SHLL2 R3 000018F8 6212 MOV.L @R1,R2 000018FA 4300 SHLL R3 000018FC 332C ADD R2,R3 000018FE 6030 MOV.B @R3,R0 00001900 2008 TST R0,R0 00001902 8901 BT L2065 00001904 A0AE BRA L1617 00001906 0009 NOP 00001908 L2065: Mines.c 1420 { SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 84 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1421 if (m_Passage[m_Room[m_FindPathParameter[pFindPathParametersHead].pRoom]. Mines.c 1422 Adjacent.pPassage[ Mines.c 1423 m_FindPathLocal[pFindPathLocalsHead].nDirection2]].pRoom1 Mines.c 1424 == m_FindPathParameter[pFindPathParametersHead].pRoom) 00001908 6212 MOV.L @R1,R2 0000190A 65BF EXTS.W R11,R5 0000190C 2F26 MOV.L R2,@-R15 0000190E 6353 MOV R5,R3 00001910 62D2 MOV.L @R13,R2 00001912 4500 SHLL R5 00001914 4308 SHLL2 R3 00001916 353C ADD R3,R5 00001918 352C ADD R2,R5 0000191A 1F58 MOV.L R5,@(32,R15) 0000191C 6551 MOV.W @R5,R5 0000191E 605F EXTS.W R5,R0 00001920 6303 MOV R0,R3 00001922 4008 SHLL2 R0 00001924 303C ADD R3,R0 00001926 4008 SHLL2 R0 00001928 D32A MOV.L L2063+4,R3 ; __$m_Room 0000192A 6232 MOV.L @R3,R2 0000192C 63E2 MOV.L @R14,R3 0000192E 302C ADD R2,R0 00001930 52F1 MOV.L @(4,R15),R2 00001932 6103 MOV R0,R1 00001934 7108 ADD #8,R1 00001936 323C ADD R3,R2 00001938 8422 MOV.B @(2,R2),R0 0000193A 4000 SHLL R0 0000193C 031D MOV.W @(R0,R1),R3 0000193E 4308 SHLL2 R3 00001940 60F6 MOV.L @R15+,R0 00001942 4300 SHLL R3 00001944 330C ADD R0,R3 00001946 8532 MOV.W @(4,R3),R0 00001948 635F EXTS.W R5,R3 0000194A 3030 CMP/EQ R3,R0 0000194C 8B46 BF L1621 Mines.c 1425 if (m_nFindPathParameters < 3*NUM_ROOMS-2) 0000194E 63C1 MOV.W @R12,R3 00001950 923E MOV.W L2063,R2 ; H'0127 00001952 3323 CMP/GE R2,R3 00001954 8B01 BF L2066 00001956 A083 BRA L1061 00001958 0009 NOP 0000195A L2066: Mines.c 1426 { Mines.c 1427 pFindPathParameters=m_nFindPathParameters; Mines.c 1428 ++m_nFindPathParameters; Mines.c 1429 m_FindPathParameter[pFindPathParameters].pNext=pFindPathParametersHead; 0000195A 60B3 MOV R11,R0 Mines.c 1430 m_FindPathParameter[pFindPathParameters].pRoom Mines.c 1431 =m_Passage[m_Room[m_FindPathParameter[pFindPathParametersHead Mines.c 1432 ].pRoom].Adjacent.pPassage[m_FindPathLocal[pFindPathLocalsHead Mines.c 1433 ].nDirection2]].pRoom2; 0000195C D21D MOV.L L2063+4,R2 ; __$m_Room SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 85 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000195E 64C1 MOV.W @R12,R4 00001960 61C1 MOV.W @R12,R1 00001962 654F EXTS.W R4,R5 00001964 7101 ADD #1,R1 00001966 6353 MOV R5,R3 00001968 2C11 MOV.W R1,@R12 0000196A 4500 SHLL R5 0000196C 61D2 MOV.L @R13,R1 0000196E 4308 SHLL2 R3 00001970 353C ADD R3,R5 00001972 315C ADD R5,R1 00001974 8112 MOV.W R0,@(4,R1) 00001976 60BF EXTS.W R11,R0 00001978 63D2 MOV.L @R13,R3 0000197A 6103 MOV R0,R1 0000197C 335C ADD R5,R3 0000197E 4000 SHLL R0 00001980 2F36 MOV.L R3,@-R15 00001982 4108 SHLL2 R1 00001984 301C ADD R1,R0 00001986 61D2 MOV.L @R13,R1 00001988 001D MOV.W @(R0,R1),R0 0000198A 6103 MOV R0,R1 0000198C 4008 SHLL2 R0 0000198E 301C ADD R1,R0 00001990 6122 MOV.L @R2,R1 00001992 4008 SHLL2 R0 00001994 301C ADD R1,R0 00001996 6303 MOV R0,R3 00001998 61E2 MOV.L @R14,R1 0000199A 7308 ADD #8,R3 0000199C 52F1 MOV.L @(4,R15),R2 0000199E 321C ADD R1,R2 000019A0 8422 MOV.B @(2,R2),R0 000019A2 4000 SHLL R0 000019A4 023D MOV.W @(R0,R3),R2 000019A6 4208 SHLL2 R2 000019A8 D10B MOV.L L2063+8,R1 ; __$m_Passage 000019AA 4200 SHLL R2 000019AC 60F6 MOV.L @R15+,R0 000019AE 6312 MOV.L @R1,R3 000019B0 323C ADD R3,R2 000019B2 E306 MOV #6,R3 000019B4 332C ADD R2,R3 000019B6 6331 MOV.W @R3,R3 000019B8 2031 MOV.W R3,@R0 Mines.c 1434 m_FindPathParameter[pFindPathParameters].nDirectionUsedToEnterRoom=m_Fin +dPathLocal[pFindPathLocalsHead].nDirection2; 000019BA 62D2 MOV.L @R13,R2 000019BC 63E2 MOV.L @R14,R3 000019BE 325C ADD R5,R2 000019C0 60F2 MOV.L @R15,R0 000019C2 303C ADD R3,R0 000019C4 8402 MOV.B @(2,R0),R0 000019C6 8022 MOV.B R0,@(2,R2) Mines.c 1435 m_FindPathParameter[pFindPathParameters].nReturnAddress=1; 000019C8 63D2 MOV.L @R13,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 86 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000019CA 353C ADD R3,R5 000019CC A043 BRA L1982 000019CE 0009 NOP 000019D0 L2063: 000019D0 0127 .DATA.W H'0127 000019D2 0000 .DATA.W 0 000019D4 <00000000> .DATA.L __$m_Room 000019D8 <00000000> .DATA.L __$m_Passage 000019DC L1621: Mines.c 1436 pFindPathParametersHead=pFindPathParameters; Mines.c 1437 bReenter=TRUE; Mines.c 1438 } Mines.c 1439 else Mines.c 1440 bOutOfMemory=TRUE; Mines.c 1441 else Mines.c 1442 if (m_nFindPathParameters < 3*NUM_ROOMS-2) 000019DC 63C1 MOV.W @R12,R3 000019DE 9279 MOV.W L2067,R2 ; H'0127 000019E0 3323 CMP/GE R2,R3 000019E2 893D BT L1061 Mines.c 1443 { Mines.c 1444 pFindPathParameters=m_nFindPathParameters; 000019E4 64C1 MOV.W @R12,R4 Mines.c 1445 ++m_nFindPathParameters; Mines.c 1446 m_FindPathParameter[pFindPathParameters].pNext=pFindPathParametersHead; 000019E6 60B3 MOV R11,R0 Mines.c 1447 m_FindPathParameter[pFindPathParameters].pRoom Mines.c 1448 =m_Passage[m_Room[m_FindPathParameter[pFindPathParametersHead].pRoom Mines.c 1449 ].Adjacent.pPassage[m_FindPathLocal[pFindPathLocalsHead Mines.c 1450 ].nDirection2]].pRoom1; 000019E8 D23B MOV.L L2067+4,R2 ; __$m_Room 000019EA 654F EXTS.W R4,R5 000019EC 61C1 MOV.W @R12,R1 000019EE 6353 MOV R5,R3 000019F0 7101 ADD #1,R1 000019F2 4500 SHLL R5 000019F4 2C11 MOV.W R1,@R12 000019F6 4308 SHLL2 R3 000019F8 61D2 MOV.L @R13,R1 000019FA 353C ADD R3,R5 000019FC 315C ADD R5,R1 000019FE 8112 MOV.W R0,@(4,R1) 00001A00 63D2 MOV.L @R13,R3 00001A02 60BF EXTS.W R11,R0 00001A04 335C ADD R5,R3 00001A06 6103 MOV R0,R1 00001A08 2F36 MOV.L R3,@-R15 00001A0A 4000 SHLL R0 00001A0C 4108 SHLL2 R1 00001A0E 301C ADD R1,R0 00001A10 61D2 MOV.L @R13,R1 00001A12 001D MOV.W @(R0,R1),R0 00001A14 6103 MOV R0,R1 00001A16 4008 SHLL2 R0 00001A18 301C ADD R1,R0 00001A1A 4008 SHLL2 R0 00001A1C 6122 MOV.L @R2,R1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 87 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001A1E 301C ADD R1,R0 00001A20 6303 MOV R0,R3 00001A22 7308 ADD #8,R3 00001A24 61E2 MOV.L @R14,R1 00001A26 52F1 MOV.L @(4,R15),R2 00001A28 321C ADD R1,R2 00001A2A 8422 MOV.B @(2,R2),R0 00001A2C D12B MOV.L L2067+8,R1 ; __$m_Passage 00001A2E 4000 SHLL R0 00001A30 023D MOV.W @(R0,R3),R2 00001A32 4208 SHLL2 R2 00001A34 6312 MOV.L @R1,R3 00001A36 4200 SHLL R2 00001A38 60F6 MOV.L @R15+,R0 00001A3A 323C ADD R3,R2 00001A3C E304 MOV #4,R3 00001A3E 332C ADD R2,R3 00001A40 6331 MOV.W @R3,R3 00001A42 2031 MOV.W R3,@R0 Mines.c 1451 m_FindPathParameter[pFindPathParameters].nDirectionUsedToEnterRoom=m_Fin +dPathLocal[pFindPathLocalsHead].nDirection2; 00001A44 62D2 MOV.L @R13,R2 00001A46 325C ADD R5,R2 00001A48 63E2 MOV.L @R14,R3 00001A4A 60F2 MOV.L @R15,R0 00001A4C 303C ADD R3,R0 00001A4E 8402 MOV.B @(2,R0),R0 00001A50 8022 MOV.B R0,@(2,R2) Mines.c 1452 m_FindPathParameter[pFindPathParameters].nReturnAddress=1; 00001A52 63D2 MOV.L @R13,R3 00001A54 353C ADD R3,R5 00001A56 L1982: 00001A56 60A3 MOV R10,R0 00001A58 8053 MOV.B R0,@(3,R5) Mines.c 1453 pFindPathParametersHead=pFindPathParameters; 00001A5A 6B43 MOV R4,R11 Mines.c 1454 bReenter=TRUE; 00001A5C A002 BRA L1617 00001A5E 6403 MOV R0,R4 00001A60 L1061: Mines.c 1455 } Mines.c 1456 else Mines.c 1457 bOutOfMemory=TRUE; 00001A60 60A3 MOV R10,R0 00001A62 80F4 MOV.B R0,@(4,R15) 00001A64 L1617: 00001A64 84F4 MOV.B @(4,R15),R0 00001A66 2008 TST R0,R0 00001A68 8901 BT L2068 00001A6A A3A9 BRA L1673 00001A6C 0009 NOP 00001A6E L2068: 00001A6E 634E EXTS.B R4,R3 00001A70 2338 TST R3,R3 00001A72 8B3A BF L1630 00001A74 52F2 MOV.L @(8,R15),R2 00001A76 6322 MOV.L @R2,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 88 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001A78 2338 TST R3,R3 00001A7A 8B08 BF L1627 00001A7C D218 MOV.L L2067+12,R2; __$m_FindPathLocal 00001A7E 6322 MOV.L @R2,R3 00001A80 61F2 MOV.L @R15,R1 00001A82 313C ADD R3,R1 00001A84 8411 MOV.B @(1,R1),R0 00001A86 4015 CMP/PL R0 00001A88 8B01 BF L2069 00001A8A AEF5 BRA L1618 00001A8C 0009 NOP 00001A8E L2069: 00001A8E L1627: Mines.c 1458 } Mines.c 1459 } Mines.c 1460 } Mines.c 1461 if (! bOutOfMemory) 00001A8E 84F4 MOV.B @(4,R15),R0 00001A90 2008 TST R0,R0 00001A92 8901 BT L2070 00001A94 A394 BRA L1673 00001A96 0009 NOP 00001A98 L2070: Mines.c 1462 { Mines.c 1463 if (! bReenter) 00001A98 634E EXTS.B R4,R3 00001A9A 2338 TST R3,R3 00001A9C 8B25 BF L1630 Mines.c 1464 { Mines.c 1465 pPathStackHead=m_Path[m_FindPathLocal[pFindPathLocalsHead].pPathStack].pNext; 00001A9E 659F EXTS.W R9,R5 00001AA0 63E2 MOV.L @R14,R3 00001AA2 4508 SHLL2 R5 00001AA4 4508 SHLL2 R5 00001AA6 353C ADD R3,R5 00001AA8 8556 MOV.W @(12,R5),R0 00001AAA 4008 SHLL2 R0 00001AAC 6382 MOV.L @R8,R3 00001AAE 4000 SHLL R0 00001AB0 303C ADD R3,R0 00001AB2 8503 MOV.W @(6,R0),R0 00001AB4 81F8 MOV.W R0,@(16,R15) Mines.c 1466 m_FindPathLocal[pFindPathLocalsHead].pPathStack=-1; 00001AB6 E0FF MOV #-1,R0 00001AB8 8156 MOV.W R0,@(12,R5) Mines.c 1467 pFindPathLocals=pFindPathLocalsHead; 00001ABA 6593 MOV R9,R5 Mines.c 1468 pFindPathLocalsHead=m_FindPathLocal[pFindPathLocals].pNext; 00001ABC 63E2 MOV.L @R14,R3 00001ABE 695F EXTS.W R5,R9 00001AC0 4908 SHLL2 R9 00001AC2 4908 SHLL2 R9 00001AC4 393C ADD R3,R9 00001AC6 8597 MOV.W @(14,R9),R0 Mines.c 1469 --m_nFindPathLocals; 00001AC8 D306 MOV.L L2067+16,R3; __$m_nFindPathLocals 00001ACA 6231 MOV.W @R3,R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 89 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001ACC 72FF ADD #-1,R2 00001ACE 2321 MOV.W R2,@R3 00001AD0 A00B BRA L1630 00001AD2 6903 MOV R0,R9 00001AD4 L2067: 00001AD4 0127 .DATA.W H'0127 00001AD6 0000 .DATA.W 0 00001AD8 <00000000> .DATA.L __$m_Room 00001ADC <00000000> .DATA.L __$m_Passage 00001AE0 <00000000> .DATA.L __$m_FindPathLocal 00001AE4 <00000000> .DATA.L __$m_nFindPathLocals 00001AE8 L1616: Mines.c 1470 pFindPathLocals=-1; Mines.c 1471 } Mines.c 1472 } Mines.c 1473 } Mines.c 1474 else Mines.c 1475 bReenter=TRUE; 00001AE8 64A3 MOV R10,R4 00001AEA L1630: Mines.c 1476 if (! bOutOfMemory) 00001AEA 84F4 MOV.B @(4,R15),R0 00001AEC 2008 TST R0,R0 00001AEE 8901 BT L2071 00001AF0 A366 BRA L1673 00001AF2 0009 NOP 00001AF4 L2071: Mines.c 1477 { Mines.c 1478 if (bReenter) 00001AF4 644E EXTS.B R4,R4 00001AF6 2448 TST R4,R4 00001AF8 8B01 BF L2072 00001AFA A337 BRA L1631 00001AFC 0009 NOP 00001AFE L2072: 00001AFE L1633: Mines.c 1479 do Mines.c 1480 { Mines.c 1481 bReenter=FALSE; 00001AFE E000 MOV #0,R0 00001B00 D24F MOV.L L2073+2,R2 ; __$m_nFindPathLocals 00001B02 80FC MOV.B R0,@(12,R15) 00001B04 6321 MOV.W @R2,R3 00001B06 2F31 MOV.W R3,@R15 00001B08 61F1 MOV.W @R15,R1 00001B0A 9398 MOV.W L2073,R3 ; H'0127 00001B0C 3133 CMP/GE R3,R1 00001B0E 8B01 BF L2074 00001B10 A322 BRA L1634 00001B12 0009 NOP 00001B14 L2074: Mines.c 1482 if (m_nFindPathLocals < 3*NUM_ROOMS-2) Mines.c 1483 { Mines.c 1484 pFindPathLocals=m_nFindPathLocals; Mines.c 1485 ++m_nFindPathLocals; 00001B14 6021 MOV.W @R2,R0 00001B16 7001 ADD #1,R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 90 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001B18 2201 MOV.W R0,@R2 Mines.c 1486 m_FindPathLocal[pFindPathLocals].pNext=pFindPathLocalsHead; 00001B1A 61F1 MOV.W @R15,R1 00001B1C 60E2 MOV.L @R14,R0 00001B1E 4108 SHLL2 R1 00001B20 4108 SHLL2 R1 00001B22 310C ADD R0,R1 00001B24 6093 MOV R9,R0 00001B26 8117 MOV.W R0,@(14,R1) Mines.c 1487 pFindPathLocalsHead=pFindPathLocals; 00001B28 69F1 MOV.W @R15,R9 Mines.c 1488 if (m_FindPathParameter[pFindPathParametersHead].pRoom == pRoomEntrance) 00001B2A 61BF EXTS.W R11,R1 00001B2C 6013 MOV R1,R0 00001B2E 4100 SHLL R1 00001B30 4008 SHLL2 R0 00001B32 310C ADD R0,R1 00001B34 60D2 MOV.L @R13,R0 00001B36 011D MOV.W @(R0,R1),R1 00001B38 E028 MOV #40,R0 00001B3A 00FD MOV.W @(R0,R15),R0 00001B3C 3100 CMP/EQ R0,R1 00001B3E 8901 BT L2075 00001B40 A0D5 BRA L1635 00001B42 0009 NOP 00001B44 L2075: Mines.c 1489 { Mines.c 1490 m_FindPathLocal[pFindPathLocalsHead].nPathLen=0; 00001B44 61E2 MOV.L @R14,R1 00001B46 E000 MOV #0,R0 00001B48 649F EXTS.W R9,R4 00001B4A 4408 SHLL2 R4 00001B4C 4408 SHLL2 R4 00001B4E 314C ADD R4,R1 00001B50 8115 MOV.W R0,@(10,R1) Mines.c 1491 m_FindPathLocal[pFindPathLocalsHead].pPathStack=pPathStackHead; 00001B52 61E2 MOV.L @R14,R1 00001B54 85F8 MOV.W @(16,R15),R0 00001B56 341C ADD R1,R4 00001B58 8146 MOV.W R0,@(12,R4) 00001B5A 619F EXTS.W R9,R1 00001B5C 4108 SHLL2 R1 00001B5E 4108 SHLL2 R1 00001B60 6513 MOV R1,R5 Mines.c 1492 while (m_FindPathLocal[pFindPathLocalsHead].pPathStack != -1) 00001B62 A022 BRA L1636 00001B64 2F52 MOV.L R5,@R15 00001B66 L1637: Mines.c 1493 { Mines.c 1494 if (m_Room[m_Path[m_FindPathLocal[pFindPathLocalsHead].pPathStack].pRoom +].szDescription) 00001B66 63E2 MOV.L @R14,R3 00001B68 62F2 MOV.L @R15,R2 00001B6A 323C ADD R3,R2 00001B6C 8526 MOV.W @(12,R2),R0 00001B6E 4008 SHLL2 R0 00001B70 6382 MOV.L @R8,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 91 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001B72 4000 SHLL R0 00001B74 023D MOV.W @(R0,R3),R2 00001B76 6323 MOV R2,R3 00001B78 D032 MOV.L L2073+6,R0 ; __$m_Room 00001B7A 4208 SHLL2 R2 00001B7C 6102 MOV.L @R0,R1 00001B7E 323C ADD R3,R2 00001B80 4208 SHLL2 R2 00001B82 321C ADD R1,R2 00001B84 6322 MOV.L @R2,R3 00001B86 2338 TST R3,R3 00001B88 8905 BT L1638 Mines.c 1495 ++(m_FindPathLocal[pFindPathLocalsHead].nPathLen); 00001B8A 63E2 MOV.L @R14,R3 00001B8C 62F2 MOV.L @R15,R2 00001B8E 323C ADD R3,R2 00001B90 8525 MOV.W @(10,R2),R0 00001B92 7001 ADD #1,R0 00001B94 8125 MOV.W R0,@(10,R2) 00001B96 L1638: Mines.c 1496 m_FindPathLocal[pFindPathLocalsHead].pPathStack=m_Path[m_FindPathLocal[p +FindPathLocalsHead].pPathStack].pNext; 00001B96 63E2 MOV.L @R14,R3 00001B98 64F2 MOV.L @R15,R4 00001B9A 343C ADD R3,R4 00001B9C 8546 MOV.W @(12,R4),R0 00001B9E 4008 SHLL2 R0 00001BA0 6382 MOV.L @R8,R3 00001BA2 4000 SHLL R0 00001BA4 303C ADD R3,R0 00001BA6 8503 MOV.W @(6,R0),R0 00001BA8 8146 MOV.W R0,@(12,R4) 00001BAA L1636: 00001BAA 63E2 MOV.L @R14,R3 00001BAC 60F2 MOV.L @R15,R0 00001BAE 303C ADD R3,R0 00001BB0 8506 MOV.W @(12,R0),R0 00001BB2 88FF CMP/EQ #-1,R0 00001BB4 8BD7 BF L1637 Mines.c 1497 } Mines.c 1498 if (1+(m_FindPathLocal[pFindPathLocalsHead].nPathLen) < NUM_ROOMS) 00001BB6 E463 MOV #99,R4 00001BB8 63E2 MOV.L @R14,R3 00001BBA 629F EXTS.W R9,R2 00001BBC 4208 SHLL2 R2 00001BBE 4208 SHLL2 R2 00001BC0 323C ADD R3,R2 00001BC2 8525 MOV.W @(10,R2),R0 00001BC4 7001 ADD #1,R0 00001BC6 3043 CMP/GE R4,R0 00001BC8 8B01 BF L2076 00001BCA A2A9 BRA L1064 00001BCC 0009 NOP 00001BCE L2076: Mines.c 1499 { Mines.c 1500 *pszWayOut=&m_szWayOut[0]; 00001BCE D41E MOV.L L2073+10,R4; __$m_szWayOut SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 92 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001BD0 52F2 MOV.L @(8,R15),R2 00001BD2 6342 MOV.L @R4,R3 00001BD4 2232 MOV.L R3,@R2 Mines.c 1501 (*pszWayOut)[m_FindPathLocal[pFindPathLocalsHead].nPathLen]='\0'; Mines.c 1502 (*pszWayOut)[--(m_FindPathLocal[pFindPathLocalsHead].nPathLen)]=(char) T +oUpper((intC) *m_szDirection[m_FindPathParameter[pFindPathParametersHead].nDirectionUsedToEnterRoom]); 00001BD6 64BF EXTS.W R11,R4 00001BD8 50F2 MOV.L @(8,R15),R0 00001BDA 6302 MOV.L @R0,R3 00001BDC 2F36 MOV.L R3,@-R15 00001BDE 639F EXTS.W R9,R3 00001BE0 4308 SHLL2 R3 00001BE2 4308 SHLL2 R3 00001BE4 1F31 MOV.L R3,@(4,R15) 00001BE6 62E2 MOV.L @R14,R2 00001BE8 332C ADD R2,R3 00001BEA 8535 MOV.W @(10,R3),R0 00001BEC 62F6 MOV.L @R15+,R2 00001BEE E300 MOV #0,R3 00001BF0 302C ADD R2,R0 00001BF2 2030 MOV.B R3,@R0 00001BF4 52F2 MOV.L @(8,R15),R2 00001BF6 63E2 MOV.L @R14,R3 00001BF8 61F2 MOV.L @R15,R1 00001BFA 313C ADD R3,R1 00001BFC 8515 MOV.W @(10,R1),R0 00001BFE 70FF ADD #-1,R0 00001C00 8115 MOV.W R0,@(10,R1) 00001C02 600F EXTS.W R0,R0 00001C04 6322 MOV.L @R2,R3 00001C06 303C ADD R3,R0 00001C08 2F06 MOV.L R0,@-R15 00001C0A 6343 MOV R4,R3 00001C0C 62D2 MOV.L @R13,R2 00001C0E 4400 SHLL R4 00001C10 4308 SHLL2 R3 00001C12 343C ADD R3,R4 00001C14 D30E MOV.L L2073+18,R3; __$ToUpper 00001C16 342C ADD R2,R4 00001C18 8442 MOV.B @(2,R4),R0 00001C1A 6403 MOV R0,R4 00001C1C D00B MOV.L L2073+14,R0; __$m_szDirection 00001C1E 4408 SHLL2 R4 00001C20 044E MOV.L @(R0,R4),R4 00001C22 430B JSR @R3 00001C24 6440 MOV.B @R4,R4 00001C26 62F6 MOV.L @R15+,R2 00001C28 2200 MOV.B R0,@R2 Mines.c 1503 m_FindPathLocal[pFindPathLocalsHead].pPathStack=pPathStackHead; 00001C2A 63E2 MOV.L @R14,R3 00001C2C 62F2 MOV.L @R15,R2 00001C2E 323C ADD R3,R2 00001C30 85F8 MOV.W @(16,R15),R0 00001C32 639F EXTS.W R9,R3 00001C34 8126 MOV.W R0,@(12,R2) 00001C36 4308 SHLL2 R3 00001C38 4308 SHLL2 R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 93 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1504 while (m_FindPathLocal[pFindPathLocalsHead].pPathStack != -1) 00001C3A A050 BRA L1640 00001C3C 2F32 MOV.L R3,@R15 00001C3E L2073: 00001C3E 0127 .DATA.W H'0127 00001C40 <00000000> .DATA.L __$m_nFindPathLocals 00001C44 <00000000> .DATA.L __$m_Room 00001C48 <00000000> .DATA.L __$m_szWayOut 00001C4C <00000000> .DATA.L __$m_szDirection 00001C50 <00000000> .DATA.L __$ToUpper 00001C54 L1641: Mines.c 1505 { Mines.c 1506 if (m_Path[m_FindPathLocal[pFindPathLocalsHead].pPathStack].pNext != + -1) 00001C54 63E2 MOV.L @R14,R3 00001C56 60F2 MOV.L @R15,R0 00001C58 303C ADD R3,R0 00001C5A 8506 MOV.W @(12,R0),R0 00001C5C 6382 MOV.L @R8,R3 00001C5E 4008 SHLL2 R0 00001C60 4000 SHLL R0 00001C62 303C ADD R3,R0 00001C64 8503 MOV.W @(6,R0),R0 00001C66 88FF CMP/EQ #-1,R0 00001C68 892F BT L1642 Mines.c 1507 { Mines.c 1508 if (m_Room[m_Path[m_FindPathLocal[pFindPathLocalsHead].pPathStac +k].pRoom].szDescription) 00001C6A 63E2 MOV.L @R14,R3 00001C6C 62F2 MOV.L @R15,R2 00001C6E 323C ADD R3,R2 00001C70 8526 MOV.W @(12,R2),R0 00001C72 4008 SHLL2 R0 00001C74 6382 MOV.L @R8,R3 00001C76 4000 SHLL R0 00001C78 023D MOV.W @(R0,R3),R2 00001C7A 6323 MOV R2,R3 00001C7C D026 MOV.L L2077,R0 ; __$m_Room 00001C7E 4208 SHLL2 R2 00001C80 6102 MOV.L @R0,R1 00001C82 323C ADD R3,R2 00001C84 4208 SHLL2 R2 00001C86 321C ADD R1,R2 00001C88 6322 MOV.L @R2,R3 00001C8A 2338 TST R3,R3 00001C8C 891D BT L1642 Mines.c 1509 (*pszWayOut)[--(m_FindPathLocal[pFindPathLocalsHead].nPathLen) +] Mines.c 1510 =(char) ToUpper((intC) *m_szDirection[m_Path[m_FindPathLocal[ +pFindPathLocalsHead].pPathStack].nDirectionUsedToEnterRoom]); 00001C8E 53F2 MOV.L @(8,R15),R3 00001C90 62E2 MOV.L @R14,R2 00001C92 61F2 MOV.L @R15,R1 00001C94 312C ADD R2,R1 00001C96 8515 MOV.W @(10,R1),R0 00001C98 70FF ADD #-1,R0 00001C9A 8115 MOV.W R0,@(10,R1) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 94 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001C9C 6332 MOV.L @R3,R3 00001C9E 600F EXTS.W R0,R0 00001CA0 303C ADD R3,R0 00001CA2 2F06 MOV.L R0,@-R15 00001CA4 63E2 MOV.L @R14,R3 00001CA6 54F1 MOV.L @(4,R15),R4 00001CA8 343C ADD R3,R4 00001CAA 8546 MOV.W @(12,R4),R0 00001CAC 6382 MOV.L @R8,R3 00001CAE 6403 MOV R0,R4 00001CB0 4408 SHLL2 R4 00001CB2 4400 SHLL R4 00001CB4 343C ADD R3,R4 00001CB6 8444 MOV.B @(4,R4),R0 00001CB8 D319 MOV.L L2077+8,R3 ; __$ToUpper 00001CBA 6403 MOV R0,R4 00001CBC D017 MOV.L L2077+4,R0 ; __$m_szDirection 00001CBE 4408 SHLL2 R4 00001CC0 044E MOV.L @(R0,R4),R4 00001CC2 430B JSR @R3 00001CC4 6440 MOV.B @R4,R4 00001CC6 62F6 MOV.L @R15+,R2 00001CC8 2200 MOV.B R0,@R2 00001CCA L1642: Mines.c 1511 } Mines.c 1512 m_FindPathLocal[pFindPathLocalsHead].pPathStack=m_Path[m_FindPathLoc +al[pFindPathLocalsHead].pPathStack].pNext; 00001CCA 63E2 MOV.L @R14,R3 00001CCC 64F2 MOV.L @R15,R4 00001CCE 343C ADD R3,R4 00001CD0 8546 MOV.W @(12,R4),R0 00001CD2 4008 SHLL2 R0 00001CD4 6382 MOV.L @R8,R3 00001CD6 4000 SHLL R0 00001CD8 303C ADD R3,R0 00001CDA 8503 MOV.W @(6,R0),R0 00001CDC 8146 MOV.W R0,@(12,R4) 00001CDE L1640: 00001CDE 63E2 MOV.L @R14,R3 00001CE0 60F2 MOV.L @R15,R0 00001CE2 303C ADD R3,R0 00001CE4 8506 MOV.W @(12,R0),R0 00001CE6 88FF CMP/EQ #-1,R0 00001CE8 8BB4 BF L1641 00001CEA A21B BRA L1645 00001CEC 0009 NOP 00001CEE L1635: Mines.c 1513 } Mines.c 1514 } Mines.c 1515 else Mines.c 1516 bOutOfMemory=TRUE; Mines.c 1517 } Mines.c 1518 else Mines.c 1519 { Mines.c 1520 m_FindPathLocal[pFindPathLocalsHead].bRoomAlreadyInStack=FALSE; 00001CEE 649F EXTS.W R9,R4 00001CF0 61E2 MOV.L @R14,R1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 95 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001CF2 E000 MOV #0,R0 00001CF4 4408 SHLL2 R4 00001CF6 4408 SHLL2 R4 00001CF8 314C ADD R4,R1 00001CFA 2100 MOV.B R0,@R1 Mines.c 1521 m_FindPathLocal[pFindPathLocalsHead].pPathStack=pPathStackHead; 00001CFC 61E2 MOV.L @R14,R1 00001CFE 341C ADD R1,R4 00001D00 85F8 MOV.W @(16,R15),R0 00001D02 619F EXTS.W R9,R1 00001D04 8146 MOV.W R0,@(12,R4) 00001D06 4108 SHLL2 R1 00001D08 4108 SHLL2 R1 00001D0A 64BF EXTS.W R11,R4 00001D0C 2F12 MOV.L R1,@R15 00001D0E 6343 MOV R4,R3 00001D10 4400 SHLL R4 00001D12 4308 SHLL2 R3 Mines.c 1522 while ((m_FindPathLocal[pFindPathLocalsHead].pPathStack != -1) 00001D14 A01F BRA L1646 00001D16 343C ADD R3,R4 00001D18 L2077: 00001D18 <00000000> .DATA.L __$m_Room 00001D1C <00000000> .DATA.L __$m_szDirection 00001D20 <00000000> .DATA.L __$ToUpper 00001D24 L1647: Mines.c 1523 && (! (m_FindPathLocal[pFindPathLocalsHead].bRoomAlreadyInStack))) Mines.c 1524 { Mines.c 1525 m_FindPathLocal[pFindPathLocalsHead].bRoomAlreadyInStack=(m_Path[m_FindP +athLocal[pFindPathLocalsHead].pPathStack].pRoom == m_FindPathParameter[pFindPathParametersHead].pRoom); 00001D24 63E2 MOV.L @R14,R3 00001D26 65F2 MOV.L @R15,R5 00001D28 353C ADD R3,R5 00001D2A 8556 MOV.W @(12,R5),R0 00001D2C 6382 MOV.L @R8,R3 00001D2E 4008 SHLL2 R0 00001D30 4000 SHLL R0 00001D32 303C ADD R3,R0 00001D34 6201 MOV.W @R0,R2 00001D36 63D2 MOV.L @R13,R3 00001D38 334C ADD R4,R3 00001D3A 6131 MOV.W @R3,R1 00001D3C 3210 CMP/EQ R1,R2 00001D3E 0029 MOVT R0 00001D40 2500 MOV.B R0,@R5 Mines.c 1526 m_FindPathLocal[pFindPathLocalsHead].pPathStack=m_Path[m_FindPathLocal[p +FindPathLocalsHead].pPathStack].pNext; 00001D42 63E2 MOV.L @R14,R3 00001D44 65F2 MOV.L @R15,R5 00001D46 353C ADD R3,R5 00001D48 8556 MOV.W @(12,R5),R0 00001D4A 4008 SHLL2 R0 00001D4C 6382 MOV.L @R8,R3 00001D4E 4000 SHLL R0 00001D50 303C ADD R3,R0 00001D52 8503 MOV.W @(6,R0),R0 00001D54 8156 MOV.W R0,@(12,R5) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 96 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001D56 L1646: 00001D56 63E2 MOV.L @R14,R3 00001D58 65F2 MOV.L @R15,R5 00001D5A 353C ADD R3,R5 00001D5C 8556 MOV.W @(12,R5),R0 00001D5E 88FF CMP/EQ #-1,R0 00001D60 8902 BT L1648 00001D62 6250 MOV.B @R5,R2 00001D64 2228 TST R2,R2 00001D66 89DD BT L1647 00001D68 L1648: Mines.c 1527 } Mines.c 1528 if (! (m_FindPathLocal[pFindPathLocalsHead].bRoomAlreadyInStack)) 00001D68 62E2 MOV.L @R14,R2 00001D6A 639F EXTS.W R9,R3 00001D6C 4308 SHLL2 R3 00001D6E 4308 SHLL2 R3 00001D70 332C ADD R2,R3 00001D72 6130 MOV.B @R3,R1 00001D74 2118 TST R1,R1 00001D76 8901 BT L2078 00001D78 A1D4 BRA L1645 00001D7A 0009 NOP 00001D7C L2078: 00001D7C 9463 MOV.W L2079,R4 ; H'0252 00001D7E D332 MOV.L L2079+2,R3 ; __$m_nPaths 00001D80 6531 MOV.W @R3,R5 00001D82 625F EXTS.W R5,R2 00001D84 3243 CMP/GE R4,R2 00001D86 8B01 BF L2080 00001D88 A1CA BRA L1064 00001D8A 0009 NOP 00001D8C L2080: Mines.c 1529 { Mines.c 1530 if (m_nPaths < 6*NUM_ROOMS) Mines.c 1531 { Mines.c 1532 m_FindPathLocal[pFindPathLocalsHead].pPathStack=m_nPaths; 00001D8C 62E2 MOV.L @R14,R2 00001D8E 6053 MOV R5,R0 00001D90 649F EXTS.W R9,R4 00001D92 4408 SHLL2 R4 00001D94 4408 SHLL2 R4 00001D96 324C ADD R4,R2 00001D98 8126 MOV.W R0,@(12,R2) Mines.c 1533 ++m_nPaths; Mines.c 1534 m_Path[m_FindPathLocal[pFindPathLocalsHead].pPathStack].pRoom=m_Find +PathParameter[pFindPathParametersHead].pRoom; 00001D9A 65BF EXTS.W R11,R5 00001D9C 6231 MOV.W @R3,R2 00001D9E 7201 ADD #1,R2 00001DA0 2321 MOV.W R2,@R3 00001DA2 61E2 MOV.L @R14,R1 00001DA4 6282 MOV.L @R8,R2 00001DA6 314C ADD R4,R1 00001DA8 8516 MOV.W @(12,R1),R0 00001DAA 4008 SHLL2 R0 00001DAC 61D2 MOV.L @R13,R1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 97 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001DAE 4000 SHLL R0 00001DB0 302C ADD R2,R0 00001DB2 6253 MOV R5,R2 00001DB4 4500 SHLL R5 00001DB6 4208 SHLL2 R2 00001DB8 352C ADD R2,R5 00001DBA 315C ADD R5,R1 00001DBC 6211 MOV.W @R1,R2 00001DBE 2021 MOV.W R2,@R0 Mines.c 1535 m_Path[m_FindPathLocal[pFindPathLocalsHead].pPathStack].nDirectionUs +edToEnterRoom=m_FindPathParameter[pFindPathParametersHead].nDirectionUsedToEnterRoom; 00001DC0 61E2 MOV.L @R14,R1 00001DC2 314C ADD R4,R1 00001DC4 8516 MOV.W @(12,R1),R0 00001DC6 4008 SHLL2 R0 00001DC8 4000 SHLL R0 00001DCA 6282 MOV.L @R8,R2 00001DCC 61D2 MOV.L @R13,R1 00001DCE 302C ADD R2,R0 00001DD0 6203 MOV R0,R2 00001DD2 7204 ADD #4,R2 00001DD4 351C ADD R1,R5 00001DD6 8452 MOV.B @(2,R5),R0 00001DD8 2200 MOV.B R0,@R2 Mines.c 1536 m_Path[m_FindPathLocal[pFindPathLocalsHead].pPathStack].pNext=pPathS +tackHead; 00001DDA 62E2 MOV.L @R14,R2 00001DDC 324C ADD R4,R2 00001DDE 8526 MOV.W @(12,R2),R0 00001DE0 6282 MOV.L @R8,R2 00001DE2 4008 SHLL2 R0 00001DE4 4000 SHLL R0 00001DE6 302C ADD R2,R0 00001DE8 6103 MOV R0,R1 00001DEA 7106 ADD #6,R1 00001DEC 85F8 MOV.W @(16,R15),R0 Mines.c 1537 pPathStackHead=m_FindPathLocal[pFindPathLocalsHead].pPathStack; Mines.c 1538 for (m_FindPathLocal[pFindPathLocalsHead].nDirection1=6; (m_FindPath +Local[pFindPathLocalsHead].nDirection1)--;) 00001DEE 629F EXTS.W R9,R2 00001DF0 2101 MOV.W R0,@R1 00001DF2 4208 SHLL2 R2 00001DF4 60E2 MOV.L @R14,R0 00001DF6 4208 SHLL2 R2 00001DF8 304C ADD R4,R0 00001DFA 8506 MOV.W @(12,R0),R0 00001DFC 81F8 MOV.W R0,@(16,R15) 00001DFE E006 MOV #6,R0 00001E00 2F22 MOV.L R2,@R15 00001E02 61E2 MOV.L @R14,R1 00001E04 321C ADD R1,R2 00001E06 8021 MOV.B R0,@(1,R2) 00001E08 A00A BRA L1651 00001E0A 0009 NOP 00001E0C L1652: Mines.c 1539 (m_FindPathLocal[pFindPathLocalsHead].nDirectionRandom)[m_FindPath +Local[pFindPathLocalsHead].nDirection1]=m_FindPathLocal[pFindPathLocalsHead].nDirection1; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 98 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001E0C 63E2 MOV.L @R14,R3 00001E0E 65F2 MOV.L @R15,R5 00001E10 353C ADD R3,R5 00001E12 6253 MOV R5,R2 00001E14 8451 MOV.B @(1,R5),R0 00001E16 7204 ADD #4,R2 00001E18 6403 MOV R0,R4 00001E1A 634E EXTS.B R4,R3 00001E1C 332C ADD R2,R3 00001E1E 2340 MOV.B R4,@R3 00001E20 L1651: 00001E20 63E2 MOV.L @R14,R3 00001E22 62F2 MOV.L @R15,R2 00001E24 323C ADD R3,R2 00001E26 8421 MOV.B @(1,R2),R0 00001E28 70FF ADD #-1,R0 00001E2A 8021 MOV.B R0,@(1,R2) 00001E2C 7001 ADD #1,R0 00001E2E 600E EXTS.B R0,R0 00001E30 2008 TST R0,R0 00001E32 8BEB BF L1652 Mines.c 1540 for (m_FindPathLocal[pFindPathLocalsHead].nDirection1=5; m_FindPathL +ocal[pFindPathLocalsHead].nDirection1 > 0; --(m_FindPathLocal[pFindPathLocalsHead].nDirection1)) 00001E34 E405 MOV #5,R4 00001E36 629F EXTS.W R9,R2 00001E38 4208 SHLL2 R2 00001E3A 4208 SHLL2 R2 00001E3C 2F22 MOV.L R2,@R15 00001E3E 63E2 MOV.L @R14,R3 00001E40 323C ADD R3,R2 00001E42 A038 BRA L1983 00001E44 6043 MOV R4,R0 00001E46 L2079: 00001E46 0252 .DATA.W H'0252 00001E48 <00000000> .DATA.L __$m_nPaths 00001E4C L1654: Mines.c 1541 { Mines.c 1542 m_FindPathLocal[pFindPathLocalsHead].nDirection2=RandomNumber()% +(m_FindPathLocal[pFindPathLocalsHead].nDirection1); 00001E4C 63E2 MOV.L @R14,R3 00001E4E E102 MOV #2,R1 00001E50 62F2 MOV.L @R15,R2 00001E52 323C ADD R3,R2 00001E54 312C ADD R2,R1 00001E56 2F16 MOV.L R1,@-R15 00001E58 D120 MOV.L L2081+2,R1 ; __$RandomNumber 00001E5A 410B JSR @R1 00001E5C 0009 NOP 00001E5E 6203 MOV R0,R2 00001E60 63E2 MOV.L @R14,R3 00001E62 51F1 MOV.L @(4,R15),R1 00001E64 313C ADD R3,R1 00001E66 8411 MOV.B @(1,R1),R0 00001E68 D31D MOV.L L2081+6,R3 ; __modws 00001E6A 430B JSR @R3 00001E6C 6123 MOV R2,R1 00001E6E 63F6 MOV.L @R15+,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 99 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001E70 2300 MOV.B R0,@R3 Mines.c 1543 m_FindPathLocal[pFindPathLocalsHead].nDirection3=(m_FindPathLoca +l[pFindPathLocalsHead].nDirectionRandom)[m_FindPathLocal[pFindPathLocalsHead].nDirection1]; 00001E72 63E2 MOV.L @R14,R3 00001E74 64F2 MOV.L @R15,R4 00001E76 343C ADD R3,R4 00001E78 8441 MOV.B @(1,R4),R0 00001E7A 6343 MOV R4,R3 00001E7C 7304 ADD #4,R3 00001E7E 003C MOV.B @(R0,R3),R0 00001E80 8043 MOV.B R0,@(3,R4) Mines.c 1544 (m_FindPathLocal[pFindPathLocalsHead].nDirectionRandom)[m_FindPa +thLocal[pFindPathLocalsHead].nDirection1]=(m_FindPathLocal[pFindPathLocalsHead].nDirectionRandom)[m_FindPa +thLocal[pFindPathLocalsHead].nDirection2]; 00001E82 63E2 MOV.L @R14,R3 00001E84 64F2 MOV.L @R15,R4 00001E86 343C ADD R3,R4 00001E88 8441 MOV.B @(1,R4),R0 00001E8A 6543 MOV R4,R5 00001E8C 7504 ADD #4,R5 00001E8E 6203 MOV R0,R2 00001E90 8442 MOV.B @(2,R4),R0 00001E92 325C ADD R5,R2 00001E94 035C MOV.B @(R0,R5),R3 00001E96 2230 MOV.B R3,@R2 Mines.c 1545 (m_FindPathLocal[pFindPathLocalsHead].nDirectionRandom)[m_FindPa +thLocal[pFindPathLocalsHead].nDirection2]=m_FindPathLocal[pFindPathLocalsHead].nDirection3; 00001E98 63E2 MOV.L @R14,R3 00001E9A 64F2 MOV.L @R15,R4 00001E9C 343C ADD R3,R4 00001E9E 6343 MOV R4,R3 00001EA0 8442 MOV.B @(2,R4),R0 00001EA2 7304 ADD #4,R3 00001EA4 303C ADD R3,R0 00001EA6 6203 MOV R0,R2 00001EA8 8443 MOV.B @(3,R4),R0 00001EAA 2200 MOV.B R0,@R2 00001EAC 63E2 MOV.L @R14,R3 00001EAE 62F2 MOV.L @R15,R2 00001EB0 323C ADD R3,R2 00001EB2 8421 MOV.B @(1,R2),R0 00001EB4 70FF ADD #-1,R0 00001EB6 L1983: 00001EB6 8021 MOV.B R0,@(1,R2) 00001EB8 63E2 MOV.L @R14,R3 00001EBA 62F2 MOV.L @R15,R2 00001EBC 323C ADD R3,R2 00001EBE 8421 MOV.B @(1,R2),R0 00001EC0 4015 CMP/PL R0 00001EC2 89C3 BT L1654 Mines.c 1546 } Mines.c 1547 for (m_FindPathLocal[pFindPathLocalsHead].nDirection1=6; ((! bOutOfM +emory) && (! bReenter) && (! *pszWayOut) && ((m_FindPathLocal[pFindPathLocalsHead].nDirection1) > 0));) 00001EC4 629F EXTS.W R9,R2 00001EC6 4208 SHLL2 R2 00001EC8 4208 SHLL2 R2 00001ECA E006 MOV #6,R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 100 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001ECC 2F22 MOV.L R2,@R15 00001ECE 63E2 MOV.L @R14,R3 00001ED0 323C ADD R3,R2 00001ED2 8021 MOV.B R0,@(1,R2) 00001ED4 64F2 MOV.L @R15,R4 00001ED6 A0FC BRA L1655 00001ED8 2F42 MOV.L R4,@R15 00001EDA L2081: 00001EDA 0000 .DATA.W 0 00001EDC <00000000> .DATA.L __$RandomNumber 00001EE0 <00000000> .DATA.L __modws 00001EE4 L1656: Mines.c 1548 { Mines.c 1549 --(m_FindPathLocal[pFindPathLocalsHead].nDirection1); 00001EE4 63E2 MOV.L @R14,R3 00001EE6 62F2 MOV.L @R15,R2 Mines.c 1550 m_FindPathLocal[pFindPathLocalsHead].nDirection2=(m_FindPathLoca +l[pFindPathLocalsHead].nDirectionRandom)[m_FindPathLocal[pFindPathLocalsHead].nDirection1]; Mines.c 1551 if (m_Room[m_FindPathParameter[pFindPathParametersHead].pRoom].A +djacent.pPassage[m_FindPathLocal[pFindPathLocalsHead].nDirection2] != -1) 00001EE8 D155 MOV.L L2082+4,R1 ; __$m_Room 00001EEA 323C ADD R3,R2 00001EEC 8421 MOV.B @(1,R2),R0 00001EEE 70FF ADD #-1,R0 00001EF0 8021 MOV.B R0,@(1,R2) 00001EF2 63E2 MOV.L @R14,R3 00001EF4 64F2 MOV.L @R15,R4 00001EF6 343C ADD R3,R4 00001EF8 8441 MOV.B @(1,R4),R0 00001EFA 6343 MOV R4,R3 00001EFC 7304 ADD #4,R3 00001EFE 003C MOV.B @(R0,R3),R0 00001F00 8042 MOV.B R0,@(2,R4) 00001F02 60BF EXTS.W R11,R0 00001F04 62D2 MOV.L @R13,R2 00001F06 6303 MOV R0,R3 00001F08 4000 SHLL R0 00001F0A 4308 SHLL2 R3 00001F0C 303C ADD R3,R0 00001F0E 002D MOV.W @(R0,R2),R0 00001F10 6212 MOV.L @R1,R2 00001F12 6303 MOV R0,R3 00001F14 4008 SHLL2 R0 00001F16 303C ADD R3,R0 00001F18 63E2 MOV.L @R14,R3 00001F1A 4008 SHLL2 R0 00001F1C 302C ADD R2,R0 00001F1E 6103 MOV R0,R1 00001F20 7108 ADD #8,R1 00001F22 62F2 MOV.L @R15,R2 00001F24 323C ADD R3,R2 00001F26 8422 MOV.B @(2,R2),R0 00001F28 4000 SHLL R0 00001F2A 001D MOV.W @(R0,R1),R0 00001F2C 88FF CMP/EQ #-1,R0 00001F2E 8B01 BF L2083 00001F30 A0CF BRA L1655 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 101 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001F32 0009 NOP 00001F34 L2083: Mines.c 1552 { Mines.c 1553 if (! m_Passage[m_Room[m_FindPathParameter[pFindPathParamete +rsHead].pRoom Mines.c 1554 ].Adjacent.pPassage[m_FindPathLocal[pFindPathLocalsHead].nD +irection2 Mines.c 1555 ]].bBlocked) 00001F34 62D2 MOV.L @R13,R2 00001F36 60BF EXTS.W R11,R0 00001F38 D141 MOV.L L2082+4,R1 ; __$m_Room 00001F3A 6303 MOV R0,R3 00001F3C 4000 SHLL R0 00001F3E 4308 SHLL2 R3 00001F40 303C ADD R3,R0 00001F42 002D MOV.W @(R0,R2),R0 00001F44 6212 MOV.L @R1,R2 00001F46 6303 MOV R0,R3 00001F48 4008 SHLL2 R0 00001F4A 303C ADD R3,R0 00001F4C 63E2 MOV.L @R14,R3 00001F4E 4008 SHLL2 R0 00001F50 302C ADD R2,R0 00001F52 6103 MOV R0,R1 00001F54 62F2 MOV.L @R15,R2 00001F56 7108 ADD #8,R1 00001F58 323C ADD R3,R2 00001F5A 8422 MOV.B @(2,R2),R0 00001F5C 4000 SHLL R0 00001F5E 031D MOV.W @(R0,R1),R3 00001F60 D138 MOV.L L2082+8,R1 ; __$m_Passage 00001F62 4308 SHLL2 R3 00001F64 6212 MOV.L @R1,R2 00001F66 4300 SHLL R3 00001F68 332C ADD R2,R3 00001F6A 6030 MOV.B @R3,R0 00001F6C 2008 TST R0,R0 00001F6E 8901 BT L2084 00001F70 A0AF BRA L1655 00001F72 0009 NOP 00001F74 L2084: Mines.c 1556 { Mines.c 1557 if (m_Passage[m_Room[m_FindPathParameter[pFindPathParame +tersHead].pRoom Mines.c 1558 ].Adjacent.pPassage[m_FindPathLocal[pFindPathLocalsHead Mines.c 1559 ].nDirection2]].pRoom1 == m_FindPathParameter[pFindPath +ParametersHead].pRoom) 00001F74 6212 MOV.L @R1,R2 00001F76 64BF EXTS.W R11,R4 00001F78 2F26 MOV.L R2,@-R15 00001F7A 6343 MOV R4,R3 00001F7C 62D2 MOV.L @R13,R2 00001F7E 4400 SHLL R4 00001F80 4308 SHLL2 R3 00001F82 343C ADD R3,R4 00001F84 342C ADD R2,R4 00001F86 1F47 MOV.L R4,@(28,R15) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 102 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001F88 6441 MOV.W @R4,R4 00001F8A 604F EXTS.W R4,R0 00001F8C 6303 MOV R0,R3 00001F8E 4008 SHLL2 R0 00001F90 303C ADD R3,R0 00001F92 4008 SHLL2 R0 00001F94 D32A MOV.L L2082+4,R3 ; __$m_Room 00001F96 6232 MOV.L @R3,R2 00001F98 63E2 MOV.L @R14,R3 00001F9A 302C ADD R2,R0 00001F9C 52F1 MOV.L @(4,R15),R2 00001F9E 6103 MOV R0,R1 00001FA0 7108 ADD #8,R1 00001FA2 323C ADD R3,R2 00001FA4 8422 MOV.B @(2,R2),R0 00001FA6 4000 SHLL R0 00001FA8 031D MOV.W @(R0,R1),R3 00001FAA 4308 SHLL2 R3 00001FAC 60F6 MOV.L @R15+,R0 00001FAE 4300 SHLL R3 00001FB0 330C ADD R0,R3 00001FB2 8532 MOV.W @(4,R3),R0 00001FB4 634F EXTS.W R4,R3 00001FB6 3030 CMP/EQ R3,R0 00001FB8 8B46 BF L1659 Mines.c 1560 if (m_nFindPathParameters < 3*NUM_ROOMS-2) 00001FBA 63C1 MOV.W @R12,R3 00001FBC 923E MOV.W L2082,R2 ; H'0127 00001FBE 3323 CMP/GE R2,R3 00001FC0 8B01 BF L2085 00001FC2 A084 BRA L1063 00001FC4 0009 NOP 00001FC6 L2085: Mines.c 1561 { Mines.c 1562 pFindPathParameters=m_nFindPathParameters; Mines.c 1563 ++m_nFindPathParameters; Mines.c 1564 m_FindPathParameter[pFindPathParameters].pNext=pFi +ndPathParametersHead; 00001FC6 60B3 MOV R11,R0 Mines.c 1565 m_FindPathParameter[pFindPathParameters].pRoom Mines.c 1566 =m_Passage[m_Room[m_FindPathParameter[pFindPathPa +rametersHead].pRoom Mines.c 1567 ].Adjacent.pPassage[m_FindPathLocal[pFindPathLoca +lsHead Mines.c 1568 ].nDirection2]].pRoom2; 00001FC8 D21D MOV.L L2082+4,R2 ; __$m_Room 00001FCA 64C1 MOV.W @R12,R4 00001FCC 61C1 MOV.W @R12,R1 00001FCE 654F EXTS.W R4,R5 00001FD0 7101 ADD #1,R1 00001FD2 6353 MOV R5,R3 00001FD4 2C11 MOV.W R1,@R12 00001FD6 4500 SHLL R5 00001FD8 61D2 MOV.L @R13,R1 00001FDA 4308 SHLL2 R3 00001FDC 353C ADD R3,R5 00001FDE 315C ADD R5,R1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 103 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001FE0 8112 MOV.W R0,@(4,R1) 00001FE2 60BF EXTS.W R11,R0 00001FE4 63D2 MOV.L @R13,R3 00001FE6 6103 MOV R0,R1 00001FE8 335C ADD R5,R3 00001FEA 4000 SHLL R0 00001FEC 2F36 MOV.L R3,@-R15 00001FEE 4108 SHLL2 R1 00001FF0 301C ADD R1,R0 00001FF2 61D2 MOV.L @R13,R1 00001FF4 001D MOV.W @(R0,R1),R0 00001FF6 6103 MOV R0,R1 00001FF8 4008 SHLL2 R0 00001FFA 301C ADD R1,R0 00001FFC 6122 MOV.L @R2,R1 00001FFE 4008 SHLL2 R0 00002000 301C ADD R1,R0 00002002 6303 MOV R0,R3 00002004 61E2 MOV.L @R14,R1 00002006 7308 ADD #8,R3 00002008 52F1 MOV.L @(4,R15),R2 0000200A 321C ADD R1,R2 0000200C 8422 MOV.B @(2,R2),R0 0000200E 4000 SHLL R0 00002010 023D MOV.W @(R0,R3),R2 00002012 4208 SHLL2 R2 00002014 D10B MOV.L L2082+8,R1 ; __$m_Passage 00002016 4200 SHLL R2 00002018 60F6 MOV.L @R15+,R0 0000201A 6312 MOV.L @R1,R3 0000201C 323C ADD R3,R2 0000201E E306 MOV #6,R3 00002020 332C ADD R2,R3 00002022 6331 MOV.W @R3,R3 00002024 2031 MOV.W R3,@R0 Mines.c 1569 m_FindPathParameter[pFindPathParameters].nDirectio +nUsedToEnterRoom=m_FindPathLocal[pFindPathLocalsHead].nDirection2; 00002026 62D2 MOV.L @R13,R2 00002028 63E2 MOV.L @R14,R3 0000202A 325C ADD R5,R2 0000202C 60F2 MOV.L @R15,R0 0000202E 303C ADD R3,R0 00002030 8402 MOV.B @(2,R0),R0 00002032 8022 MOV.B R0,@(2,R2) Mines.c 1570 m_FindPathParameter[pFindPathParameters].nReturnAd +dress=1; 00002034 63D2 MOV.L @R13,R3 00002036 353C ADD R3,R5 00002038 A043 BRA L1984 0000203A 0009 NOP 0000203C L2082: 0000203C 0127 .DATA.W H'0127 0000203E 0000 .DATA.W 0 00002040 <00000000> .DATA.L __$m_Room 00002044 <00000000> .DATA.L __$m_Passage 00002048 L1659: Mines.c 1571 pFindPathParametersHead=pFindPathParameters; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 104 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1572 bReenter=TRUE; Mines.c 1573 } Mines.c 1574 else Mines.c 1575 bOutOfMemory=TRUE; Mines.c 1576 else Mines.c 1577 if (m_nFindPathParameters < 3*NUM_ROOMS-2) 00002048 63C1 MOV.W @R12,R3 0000204A 927B MOV.W L2086,R2 ; H'0127 0000204C 3323 CMP/GE R2,R3 0000204E 893E BT L1063 Mines.c 1578 { Mines.c 1579 pFindPathParameters=m_nFindPathParameters; 00002050 64C1 MOV.W @R12,R4 Mines.c 1580 ++m_nFindPathParameters; Mines.c 1581 m_FindPathParameter[pFindPathParameters].pNext=pFi +ndPathParametersHead; 00002052 60B3 MOV R11,R0 Mines.c 1582 m_FindPathParameter[pFindPathParameters].pRoom Mines.c 1583 =m_Passage[m_Room[m_FindPathParameter[pFindPathPa +rametersHead].pRoom Mines.c 1584 ].Adjacent.pPassage[m_FindPathLocal[pFindPathLoca +lsHead Mines.c 1585 ].nDirection2]].pRoom1; 00002054 D23C MOV.L L2086+4,R2 ; __$m_Room 00002056 654F EXTS.W R4,R5 00002058 61C1 MOV.W @R12,R1 0000205A 6353 MOV R5,R3 0000205C 7101 ADD #1,R1 0000205E 4500 SHLL R5 00002060 2C11 MOV.W R1,@R12 00002062 4308 SHLL2 R3 00002064 61D2 MOV.L @R13,R1 00002066 353C ADD R3,R5 00002068 315C ADD R5,R1 0000206A 8112 MOV.W R0,@(4,R1) 0000206C 63D2 MOV.L @R13,R3 0000206E 60BF EXTS.W R11,R0 00002070 335C ADD R5,R3 00002072 6103 MOV R0,R1 00002074 2F36 MOV.L R3,@-R15 00002076 4000 SHLL R0 00002078 4108 SHLL2 R1 0000207A 301C ADD R1,R0 0000207C 61D2 MOV.L @R13,R1 0000207E 001D MOV.W @(R0,R1),R0 00002080 6103 MOV R0,R1 00002082 4008 SHLL2 R0 00002084 301C ADD R1,R0 00002086 4008 SHLL2 R0 00002088 6122 MOV.L @R2,R1 0000208A 301C ADD R1,R0 0000208C 6303 MOV R0,R3 0000208E 7308 ADD #8,R3 00002090 61E2 MOV.L @R14,R1 00002092 52F1 MOV.L @(4,R15),R2 00002094 321C ADD R1,R2 00002096 8422 MOV.B @(2,R2),R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 105 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002098 D12C MOV.L L2086+8,R1 ; __$m_Passage 0000209A 4000 SHLL R0 0000209C 023D MOV.W @(R0,R3),R2 0000209E 4208 SHLL2 R2 000020A0 6312 MOV.L @R1,R3 000020A2 4200 SHLL R2 000020A4 60F6 MOV.L @R15+,R0 000020A6 323C ADD R3,R2 000020A8 E304 MOV #4,R3 000020AA 332C ADD R2,R3 000020AC 6331 MOV.W @R3,R3 000020AE 2031 MOV.W R3,@R0 Mines.c 1586 m_FindPathParameter[pFindPathParameters].nDirectio +nUsedToEnterRoom=m_FindPathLocal[pFindPathLocalsHead].nDirection2; 000020B0 62D2 MOV.L @R13,R2 000020B2 325C ADD R5,R2 000020B4 63E2 MOV.L @R14,R3 000020B6 60F2 MOV.L @R15,R0 000020B8 303C ADD R3,R0 000020BA 8402 MOV.B @(2,R0),R0 000020BC 8022 MOV.B R0,@(2,R2) Mines.c 1587 m_FindPathParameter[pFindPathParameters].nReturnAd +dress=1; 000020BE 63D2 MOV.L @R13,R3 000020C0 353C ADD R3,R5 000020C2 L1984: 000020C2 60A3 MOV R10,R0 000020C4 8053 MOV.B R0,@(3,R5) Mines.c 1588 pFindPathParametersHead=pFindPathParameters; 000020C6 6B43 MOV R4,R11 Mines.c 1589 bReenter=TRUE; 000020C8 60A3 MOV R10,R0 000020CA A002 BRA L1655 000020CC 80FC MOV.B R0,@(12,R15) 000020CE L1063: Mines.c 1590 } Mines.c 1591 else Mines.c 1592 bOutOfMemory=TRUE; 000020CE 60A3 MOV R10,R0 000020D0 80F4 MOV.B R0,@(4,R15) 000020D2 L1655: 000020D2 84F4 MOV.B @(4,R15),R0 000020D4 2008 TST R0,R0 000020D6 8B11 BF L1665 000020D8 84FC MOV.B @(12,R15),R0 000020DA 2008 TST R0,R0 000020DC 8901 BT L2087 000020DE AD0E BRA L1633 000020E0 0009 NOP 000020E2 L2087: 000020E2 53F2 MOV.L @(8,R15),R3 000020E4 6232 MOV.L @R3,R2 000020E6 2228 TST R2,R2 000020E8 8B08 BF L1665 000020EA D119 MOV.L L2086+12,R1; __$m_FindPathLocal 000020EC 62F2 MOV.L @R15,R2 000020EE 6312 MOV.L @R1,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 106 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000020F0 323C ADD R3,R2 000020F2 8421 MOV.B @(1,R2),R0 000020F4 4015 CMP/PL R0 000020F6 8B01 BF L2088 000020F8 AEF4 BRA L1656 000020FA 0009 NOP 000020FC L2088: 000020FC L1665: Mines.c 1593 } Mines.c 1594 } Mines.c 1595 } Mines.c 1596 if (! bReenter) 000020FC 84FC MOV.B @(12,R15),R0 000020FE 2008 TST R0,R0 00002100 8B2C BF L1669 Mines.c 1597 { Mines.c 1598 pPathStackHead=m_Path[m_FindPathLocal[pFindPathLocalsHead].pPath +Stack].pNext; 00002102 649F EXTS.W R9,R4 00002104 63E2 MOV.L @R14,R3 00002106 4408 SHLL2 R4 00002108 4408 SHLL2 R4 0000210A 343C ADD R3,R4 0000210C 8546 MOV.W @(12,R4),R0 0000210E 4008 SHLL2 R0 00002110 6382 MOV.L @R8,R3 00002112 4000 SHLL R0 00002114 303C ADD R3,R0 00002116 8503 MOV.W @(6,R0),R0 00002118 81F8 MOV.W R0,@(16,R15) Mines.c 1599 m_FindPathLocal[pFindPathLocalsHead].pPathStack=-1; 0000211A E0FF MOV #-1,R0 0000211C A002 BRA L1645 0000211E 8146 MOV.W R0,@(12,R4) 00002120 L1064: Mines.c 1600 } Mines.c 1601 } Mines.c 1602 else Mines.c 1603 bOutOfMemory=TRUE; 00002120 60A3 MOV R10,R0 00002122 80F4 MOV.B R0,@(4,R15) 00002124 L1645: Mines.c 1604 } Mines.c 1605 } Mines.c 1606 if (! bReenter) 00002124 84FC MOV.B @(12,R15),R0 00002126 2008 TST R0,R0 00002128 8B18 BF L1669 Mines.c 1607 { Mines.c 1608 pFindPathLocals=pFindPathLocalsHead; 0000212A 6493 MOV R9,R4 Mines.c 1609 pFindPathLocalsHead=m_FindPathLocal[pFindPathLocals].pNext; 0000212C 63E2 MOV.L @R14,R3 0000212E 694F EXTS.W R4,R9 00002130 4908 SHLL2 R9 00002132 4908 SHLL2 R9 00002134 393C ADD R3,R9 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 107 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002136 8597 MOV.W @(14,R9),R0 Mines.c 1610 --m_nFindPathLocals; 00002138 D306 MOV.L L2086+16,R3; __$m_nFindPathLocals 0000213A 6231 MOV.W @R3,R2 0000213C 72FF ADD #-1,R2 0000213E 2321 MOV.W R2,@R3 00002140 A00C BRA L1669 00002142 6903 MOV R0,R9 00002144 L2086: 00002144 0127 .DATA.W H'0127 00002146 0000 .DATA.W 0 00002148 <00000000> .DATA.L __$m_Room 0000214C <00000000> .DATA.L __$m_Passage 00002150 <00000000> .DATA.L __$m_FindPathLocal 00002154 <00000000> .DATA.L __$m_nFindPathLocals 00002158 L1634: Mines.c 1611 pFindPathLocals=-1; Mines.c 1612 } Mines.c 1613 } Mines.c 1614 else Mines.c 1615 bOutOfMemory=TRUE; 00002158 60A3 MOV R10,R0 0000215A 80F4 MOV.B R0,@(4,R15) 0000215C L1669: Mines.c 1616 } Mines.c 1617 while ((! bOutOfMemory) && bReenter); 0000215C 84F4 MOV.B @(4,R15),R0 0000215E 2008 TST R0,R0 00002160 8B2E BF L1673 00002162 84FC MOV.B @(12,R15),R0 00002164 2008 TST R0,R0 00002166 8901 BT L2089 00002168 ACC9 BRA L1633 0000216A 0009 NOP 0000216C L2089: 0000216C L1631: Mines.c 1618 } Mines.c 1619 if (! bOutOfMemory) 0000216C 84F4 MOV.B @(4,R15),R0 0000216E 2008 TST R0,R0 00002170 8B26 BF L1673 Mines.c 1620 { Mines.c 1621 nReturnAddress=m_FindPathParameter[pFindPathParametersHead].nReturnAddress; 00002172 63BF EXTS.W R11,R3 00002174 61D2 MOV.L @R13,R1 Mines.c 1622 pFindPathParameters=pFindPathParametersHead; 00002176 64B3 MOV R11,R4 00002178 6233 MOV R3,R2 0000217A 4300 SHLL R3 0000217C 4208 SHLL2 R2 0000217E 332C ADD R2,R3 00002180 331C ADD R1,R3 00002182 62F3 MOV R15,R2 00002184 8433 MOV.B @(3,R3),R0 Mines.c 1623 pFindPathParametersHead=m_FindPathParameter[pFindPathParameters].pNext; 00002186 6B4F EXTS.W R4,R11 00002188 7220 ADD #32,R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 108 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000218A 63B3 MOV R11,R3 0000218C 2200 MOV.B R0,@R2 0000218E 4B00 SHLL R11 00002190 62D2 MOV.L @R13,R2 00002192 4308 SHLL2 R3 00002194 3B3C ADD R3,R11 00002196 3B2C ADD R2,R11 Mines.c 1624 --m_nFindPathParameters; 00002198 63C1 MOV.W @R12,R3 0000219A 85B2 MOV.W @(4,R11),R0 0000219C 6B03 MOV R0,R11 0000219E 73FF ADD #-1,R3 000021A0 2C31 MOV.W R3,@R12 Mines.c 1625 pFindPathParameters=-1; Mines.c 1626 bResume=TRUE; 000021A2 E024 MOV #36,R0 000021A4 0FA4 MOV.B R10,@(R0,R15) Mines.c 1627 } Mines.c 1628 } Mines.c 1629 while ((! bOutOfMemory) && nReturnAddress && (nIterations < 1000)); 000021A6 84F4 MOV.B @(4,R15),R0 000021A8 2008 TST R0,R0 000021AA 8B09 BF L1673 000021AC E020 MOV #32,R0 000021AE 03FC MOV.B @(R0,R15),R3 000021B0 2338 TST R3,R3 000021B2 8905 BT L1673 000021B4 85FA MOV.W @(20,R15),R0 000021B6 9334 MOV.W L2090,R3 ; H'03E8 000021B8 3033 CMP/GE R3,R0 000021BA 8901 BT L2091 000021BC AB42 BRA L1615 000021BE 0009 NOP 000021C0 L2091: 000021C0 L1673: Mines.c 1630 } Mines.c 1631 else Mines.c 1632 bOutOfMemory=TRUE; Mines.c 1633 m_nPaths=0; 000021C0 D118 MOV.L L2090+2,R1 ; __$m_nPaths 000021C2 E200 MOV #0,R2 Mines.c 1634 m_nFindPathLocals=0; 000021C4 D018 MOV.L L2090+6,R0 ; __$m_nFindPathLocals 000021C6 6323 MOV R2,R3 000021C8 2121 MOV.W R2,@R1 000021CA 2031 MOV.W R3,@R0 Mines.c 1635 m_nFindPathParameters=0; 000021CC 2C31 MOV.W R3,@R12 Mines.c 1636 return; Mines.c 1637 } 000021CE 7F2C ADD #44,R15 000021D0 4F26 LDS.L @R15+,PR 000021D2 68F6 MOV.L @R15+,R8 000021D4 69F6 MOV.L @R15+,R9 000021D6 6AF6 MOV.L @R15+,R10 000021D8 6BF6 MOV.L @R15+,R11 000021DA 6CF6 MOV.L @R15+,R12 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 109 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000021DC 6DF6 MOV.L @R15+,R13 000021DE 000B RTS 000021E0 6EF6 MOV.L @R15+,R14 Mines.c 1638 Mines.c 1639 static void WayOut( 000021E2 __$WayOut: ; function: WayOut ; frame size=44 ; used runtime library name: ; __modws 000021E2 6043 MOV R4,R0 000021E4 2FE6 MOV.L R14,@-R15 000021E6 2FD6 MOV.L R13,@-R15 000021E8 2FC6 MOV.L R12,@-R15 000021EA 2F86 MOV.L R8,@-R15 000021EC 4F22 STS.L PR,@-R15 000021EE 7FE8 ADD #-24,R15 000021F0 81F6 MOV.W R0,@(12,R15) 000021F2 6053 MOV R5,R0 000021F4 81FA MOV.W R0,@(20,R15) 000021F6 6063 MOV R6,R0 000021F8 81F4 MOV.W R0,@(8,R15) 000021FA 1F74 MOV.L R7,@(16,R15) 000021FC 5DFC MOV.L @(48,R15),R13 000021FE 85FA MOV.W @(20,R15),R0 00002200 6C03 MOV R0,R12 00002202 85F4 MOV.W @(8,R15),R0 00002204 3C00 CMP/EQ R0,R12 00002206 8B05 BF L1675 Mines.c 1640 int16 nRooms, Mines.c 1641 int16 pRoom, Mines.c 1642 int16 pRoomEntrance, Mines.c 1643 int16 *ppRoomWithName, Mines.c 1644 int8 nTreasures, Mines.c 1645 int8 *bErr) Mines.c 1646 { Mines.c 1647 int8 bCarryingTreasure; Mines.c 1648 int16 nRoom; Mines.c 1649 int8 nTreasure; Mines.c 1650 char *szText; Mines.c 1651 char *szWayOut; Mines.c 1652 Mines.c 1653 if (pRoom == pRoomEntrance) Mines.c 1654 DisplayText("You\'re already at the entrance.",bErr); 00002208 D408 MOV.L L2090+10,R4; L781 0000220A D209 MOV.L L2090+14,R2; __$DisplayText 0000220C 420B JSR @R2 0000220E 65D3 MOV R13,R5 00002210 A08C BRA L1689 00002212 0009 NOP 00002214 L1675: 00002214 DE07 MOV.L L2090+18,R14; __$m_Treasure Mines.c 1655 else Mines.c 1656 { Mines.c 1657 bCarryingTreasure=FALSE; 00002216 E500 MOV #0,R5 00002218 6453 MOV R5,R4 Mines.c 1658 for (nTreasure=nTreasures; ((! bCarryingTreasure) && (nTreasure--));) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 110 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000221A E02F MOV #47,R0 0000221C 00FC MOV.B @(R0,R15),R0 0000221E A014 BRA L1677 00002220 80F4 MOV.B R0,@(4,R15) 00002222 L2090: 00002222 03E8 .DATA.W H'03E8 00002224 <00000000> .DATA.L __$m_nPaths 00002228 <00000000> .DATA.L __$m_nFindPathLocals 0000222C <00000000> .DATA.L L781 00002230 <00000000> .DATA.L __$DisplayText 00002234 <00000000> .DATA.L __$m_Treasure 00002238 L1678: Mines.c 1659 bCarryingTreasure=(m_Treasure[nTreasure].pRoomTreasure == -1); 00002238 84F4 MOV.B @(4,R15),R0 0000223A 6303 MOV R0,R3 0000223C 4008 SHLL2 R0 0000223E 303C ADD R3,R0 00002240 4008 SHLL2 R0 00002242 30EC ADD R14,R0 00002244 8507 MOV.W @(14,R0),R0 00002246 88FF CMP/EQ #-1,R0 00002248 0429 MOVT R4 0000224A L1677: 0000224A 634E EXTS.B R4,R3 0000224C 2338 TST R3,R3 0000224E 8B06 BF L1679 00002250 84F4 MOV.B @(4,R15),R0 00002252 70FF ADD #-1,R0 00002254 80F4 MOV.B R0,@(4,R15) 00002256 7001 ADD #1,R0 00002258 600E EXTS.B R0,R0 0000225A 2008 TST R0,R0 0000225C 8BEC BF L1678 0000225E L1679: Mines.c 1660 if (bCarryingTreasure) 0000225E 644E EXTS.B R4,R4 00002260 2448 TST R4,R4 00002262 895F BT L1066 Mines.c 1661 { Mines.c 1662 szWayOut=(char *) NULL; 00002264 2F52 MOV.L R5,@R15 Mines.c 1663 FindPathToEntrance(pRoom,pRoomEntrance,&szWayOut); 00002266 66F3 MOV R15,R6 00002268 85F4 MOV.W @(8,R15),R0 0000226A 6503 MOV R0,R5 0000226C 85FA MOV.W @(20,R15),R0 0000226E BAAF BSR __$FindPathToEntrance 00002270 6403 MOV R0,R4 Mines.c 1664 if (szWayOut) 00002272 62F2 MOV.L @R15,R2 00002274 2228 TST R2,R2 00002276 8955 BT L1066 00002278 L1682: Mines.c 1665 { Mines.c 1666 do Mines.c 1667 nRoom=RandomNumber()%nRooms; 00002278 D330 MOV.L L2092+2,R3 ; __$RandomNumber SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 111 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000227A 430B JSR @R3 0000227C 0009 NOP 0000227E 6103 MOV R0,R1 00002280 D22F MOV.L L2092+6,R2 ; __modws 00002282 420B JSR @R2 00002284 85F6 MOV.W @(12,R15),R0 00002286 6503 MOV R0,R5 00002288 53F4 MOV.L @(16,R15),R3 0000228A 645F EXTS.W R5,R4 0000228C 4400 SHLL R4 0000228E 343C ADD R3,R4 00002290 6241 MOV.W @R4,R2 00002292 32C0 CMP/EQ R12,R2 00002294 89F0 BT L1682 Mines.c 1668 while (ppRoomWithName[nRoom] == pRoom); Mines.c 1669 m_Treasure[nTreasure].pRoomTreasure=ppRoomWithName[nRoom]; 00002296 84F4 MOV.B @(4,R15),R0 00002298 6241 MOV.W @R4,R2 0000229A 6303 MOV R0,R3 Mines.c 1670 if (1+StrLen("The pirate takes one of your treasures. " Mines.c 1671 "As he leaves, he shouts the letters \"") Mines.c 1672 +StrLen(szWayOut)+StrLen("\".") < SENTENCE_LEN) 0000229C D429 MOV.L L2092+10,R4; L785 0000229E 4008 SHLL2 R0 000022A0 303C ADD R3,R0 000022A2 4008 SHLL2 R0 000022A4 30EC ADD R14,R0 000022A6 E30E MOV #14,R3 000022A8 330C ADD R0,R3 000022AA 2321 MOV.W R2,@R3 000022AC D226 MOV.L L2092+14,R2; __$StrLen 000022AE 420B JSR @R2 000022B0 0009 NOP 000022B2 600F EXTS.W R0,R0 000022B4 D324 MOV.L L2092+14,R3; __$StrLen 000022B6 6803 MOV R0,R8 000022B8 430B JSR @R3 000022BA 64F2 MOV.L @R15,R4 000022BC D423 MOV.L L2092+18,R4; L786 000022BE 600F EXTS.W R0,R0 000022C0 D321 MOV.L L2092+14,R3; __$StrLen 000022C2 430B JSR @R3 000022C4 380C ADD R0,R8 000022C6 600F EXTS.W R0,R0 000022C8 9237 MOV.W L2092,R2 ; H'0400 000022CA 380C ADD R0,R8 000022CC 7801 ADD #1,R8 000022CE 3823 CMP/GE R2,R8 000022D0 8921 BT L1683 Mines.c 1673 { Mines.c 1674 szText=&m_szMsg[0]; 000022D2 D11F MOV.L L2092+22,R1; __$m_szMsg Mines.c 1675 StrCpy(szText,"The pirate takes one of your treasures. "); 000022D4 D51F MOV.L L2092+26,R5; L788 000022D6 6E12 MOV.L @R1,R14 000022D8 D31F MOV.L L2092+30,R3; __$StrCpy 000022DA 430B JSR @R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 112 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000022DC 64E3 MOV R14,R4 Mines.c 1676 if (StrLen(szWayOut) == 1) 000022DE D31A MOV.L L2092+14,R3; __$StrLen 000022E0 430B JSR @R3 000022E2 64F2 MOV.L @R15,R4 000022E4 600F EXTS.W R0,R0 000022E6 8801 CMP/EQ #1,R0 000022E8 8F03 BF/S L1684 Mines.c 1677 StrCat(szText,"As he leaves, he shouts the letter \""); 000022EA 64E3 MOV R14,R4 000022EC D51B MOV.L L2092+34,R5; L789 000022EE A001 BRA L1985 000022F0 0009 NOP 000022F2 L1684: Mines.c 1678 else Mines.c 1679 StrCat(szText,"As he leaves, he shouts the letters \""); 000022F2 D51B MOV.L L2092+38,R5; L790 000022F4 L1985: 000022F4 D31B MOV.L L2092+42,R3; __$StrCat 000022F6 430B JSR @R3 000022F8 0009 NOP Mines.c 1680 StrCat(szText,szWayOut); 000022FA 65F2 MOV.L @R15,R5 000022FC D319 MOV.L L2092+42,R3; __$StrCat 000022FE 430B JSR @R3 00002300 64E3 MOV R14,R4 Mines.c 1681 StrCat(szText,"\"."); 00002302 D512 MOV.L L2092+18,R5; L786 00002304 D217 MOV.L L2092+42,R2; __$StrCat 00002306 420B JSR @R2 00002308 64E3 MOV R14,R4 Mines.c 1682 DisplayText(szText,bErr); 0000230A 65D3 MOV R13,R5 0000230C D316 MOV.L L2092+46,R3; __$DisplayText 0000230E 430B JSR @R3 00002310 64E3 MOV R14,R4 00002312 A00B BRA L1689 00002314 0009 NOP 00002316 L1683: Mines.c 1683 } Mines.c 1684 else Mines.c 1685 { Mines.c 1686 DisplayText("Fatal error: memory was exhausted at locaton 6.",bErr); 00002316 D415 MOV.L L2092+50,R4; L792 00002318 D313 MOV.L L2092+46,R3; __$DisplayText 0000231A 430B JSR @R3 0000231C 65D3 MOV R13,R5 Mines.c 1687 *bErr=TRUE; 0000231E E201 MOV #1,R2 00002320 A004 BRA L1689 00002322 2D20 MOV.B R2,@R13 00002324 L1066: Mines.c 1688 } Mines.c 1689 } Mines.c 1690 else Mines.c 1691 DisplayText("Nothing happens.",bErr); Mines.c 1692 } SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 113 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1693 else Mines.c 1694 DisplayText("Nothing happens.",bErr); 00002324 D412 MOV.L L2092+54,R4; L793 00002326 D210 MOV.L L2092+46,R2; __$DisplayText 00002328 420B JSR @R2 0000232A 65D3 MOV R13,R5 Mines.c 1695 } Mines.c 1696 return; Mines.c 1697 } 0000232C L1689: 0000232C 7F18 ADD #24,R15 0000232E 4F26 LDS.L @R15+,PR 00002330 68F6 MOV.L @R15+,R8 00002332 6CF6 MOV.L @R15+,R12 00002334 6DF6 MOV.L @R15+,R13 00002336 000B RTS 00002338 6EF6 MOV.L @R15+,R14 0000233A L2092: 0000233A 0400 .DATA.W H'0400 0000233C <00000000> .DATA.L __$RandomNumber 00002340 <00000000> .DATA.L __modws 00002344 <00000000> .DATA.L L785 00002348 <00000000> .DATA.L __$StrLen 0000234C <00000000> .DATA.L L786 00002350 <00000000> .DATA.L __$m_szMsg 00002354 <00000000> .DATA.L L788 00002358 <00000000> .DATA.L __$StrCpy 0000235C <00000000> .DATA.L L789 00002360 <00000000> .DATA.L L790 00002364 <00000000> .DATA.L __$StrCat 00002368 <00000000> .DATA.L __$DisplayText 0000236C <00000000> .DATA.L L792 00002370 <00000000> .DATA.L L793 Mines.c 1698 Mines.c 1699 static void HideTreasuresAndWeapons( 00002374 __$HideTreasuresAndWeapons: ; function: HideTreasuresAndWeapons ; frame size=52 ; used runtime library name: ; __modws, __modls 00002374 2FE6 MOV.L R14,@-R15 00002376 6063 MOV R6,R0 00002378 2FD6 MOV.L R13,@-R15 0000237A 6E53 MOV R5,R14 0000237C 2FC6 MOV.L R12,@-R15 0000237E 2FB6 MOV.L R11,@-R15 00002380 2FA6 MOV.L R10,@-R15 Mines.c 1700 int16 nRooms, Mines.c 1701 int16 *ppRoomWithName, Mines.c 1702 int8 nTreasures) Mines.c 1703 { Mines.c 1704 int8 bChokepointFound; Mines.c 1705 int16 nRoom; Mines.c 1706 int8 nTreasure; Mines.c 1707 Mines.c 1708 for (nTreasure=0; nTreasure < nTreasures; ++nTreasure) 00002382 EB00 MOV #0,R11 00002384 DD7C MOV.L L2093+4,R13; __$m_Room SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 114 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002386 2F96 MOV.L R9,@-R15 00002388 2F86 MOV.L R8,@-R15 0000238A 69B3 MOV R11,R9 0000238C DA79 MOV.L L2093,R10 ; __$m_Treasure 0000238E 4F22 STS.L PR,@-R15 00002390 7FEC ADD #-20,R15 00002392 2F41 MOV.W R4,@R15 00002394 80FC MOV.B R0,@(12,R15) 00002396 63F1 MOV.W @R15,R3 00002398 1F32 MOV.L R3,@(8,R15) 0000239A 7301 ADD #1,R3 0000239C 1F31 MOV.L R3,@(4,R15) 0000239E 62F1 MOV.W @R15,R2 000023A0 4200 SHLL R2 000023A2 32EC ADD R14,R2 000023A4 A068 BRA L1690 000023A6 1F24 MOV.L R2,@(16,R15) 000023A8 L1691: Mines.c 1709 { Mines.c 1710 bChokepointFound=FALSE; 000023A8 65B3 MOV R11,R5 Mines.c 1711 nRoom=0; 000023AA 64B3 MOV R11,R4 Mines.c 1712 while ((! bChokepointFound) && (nRoom < nRooms)) 000023AC A00F BRA L1692 000023AE 6C9E EXTS.B R9,R12 000023B0 L1693: Mines.c 1713 if (m_Room[ppRoomWithName[nRoom]].nChokepoint == nTreasure) 000023B0 61D2 MOV.L @R13,R1 000023B2 604F EXTS.W R4,R0 000023B4 4000 SHLL R0 000023B6 03ED MOV.W @(R0,R14),R3 000023B8 6233 MOV R3,R2 000023BA 4308 SHLL2 R3 000023BC 332C ADD R2,R3 000023BE 4308 SHLL2 R3 000023C0 331C ADD R1,R3 000023C2 8532 MOV.W @(4,R3),R0 000023C4 30C0 CMP/EQ R12,R0 000023C6 8B01 BF L1694 Mines.c 1714 bChokepointFound=TRUE; 000023C8 A001 BRA L1692 000023CA E501 MOV #1,R5 000023CC L1694: Mines.c 1715 else Mines.c 1716 ++nRoom; 000023CC 7401 ADD #1,R4 000023CE L1692: 000023CE 635E EXTS.B R5,R3 000023D0 2338 TST R3,R3 000023D2 8B03 BF L1696 000023D4 53F2 MOV.L @(8,R15),R3 000023D6 624F EXTS.W R4,R2 000023D8 3233 CMP/GE R3,R2 000023DA 8BE9 BF L1693 000023DC L1696: 000023DC 689E EXTS.B R9,R8 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 115 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000023DE 6383 MOV R8,R3 000023E0 4808 SHLL2 R8 000023E2 383C ADD R3,R8 000023E4 655E EXTS.B R5,R5 000023E6 2558 TST R5,R5 000023E8 8D34 BT/S L1697 000023EA 4808 SHLL2 R8 000023EC L1698: Mines.c 1717 if (bChokepointFound) Mines.c 1718 { Mines.c 1719 do Mines.c 1720 nRoom=RandomNumber()%nRooms; 000023EC D163 MOV.L L2093+8,R1 ; __$RandomNumber 000023EE 410B JSR @R1 000023F0 0009 NOP 000023F2 6103 MOV R0,R1 000023F4 D262 MOV.L L2093+12,R2; __modws 000023F6 420B JSR @R2 000023F8 60F1 MOV.W @R15,R0 000023FA 6403 MOV R0,R4 Mines.c 1721 while (m_Room[ppRoomWithName[nRoom]].nChokepoint != nTreasure); 000023FC 61D2 MOV.L @R13,R1 000023FE 604F EXTS.W R4,R0 00002400 4000 SHLL R0 00002402 03ED MOV.W @(R0,R14),R3 00002404 6233 MOV R3,R2 00002406 4308 SHLL2 R3 00002408 332C ADD R2,R3 0000240A 4308 SHLL2 R3 0000240C 331C ADD R1,R3 0000240E 8532 MOV.W @(4,R3),R0 00002410 30C0 CMP/EQ R12,R0 00002412 8BEB BF L1698 Mines.c 1722 m_Treasure[nTreasure].pRoomTreasure=ppRoomWithName[nRoom]; 00002414 6283 MOV R8,R2 00002416 32AC ADD R10,R2 00002418 604F EXTS.W R4,R0 0000241A 4000 SHLL R0 0000241C 00ED MOV.W @(R0,R14),R0 0000241E 8127 MOV.W R0,@(14,R2) Mines.c 1723 do 00002420 L1699: Mines.c 1724 nRoom=RandomNumber()%(nRooms+1); 00002420 D356 MOV.L L2093+8,R3 ; __$RandomNumber 00002422 430B JSR @R3 00002424 0009 NOP 00002426 610F EXTS.W R0,R1 00002428 D356 MOV.L L2093+16,R3; __modls 0000242A 430B JSR @R3 0000242C 50F1 MOV.L @(4,R15),R0 0000242E 6403 MOV R0,R4 Mines.c 1725 while (m_Room[ppRoomWithName[nRoom]].nChokepoint >= nTreasure); 00002430 61D2 MOV.L @R13,R1 00002432 604F EXTS.W R4,R0 00002434 4000 SHLL R0 00002436 03ED MOV.W @(R0,R14),R3 00002438 6233 MOV R3,R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 116 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000243A 4308 SHLL2 R3 0000243C 332C ADD R2,R3 0000243E 4308 SHLL2 R3 00002440 331C ADD R1,R3 00002442 8532 MOV.W @(4,R3),R0 00002444 30C3 CMP/GE R12,R0 00002446 89EB BT L1699 Mines.c 1726 m_Treasure[nTreasure].pRoomWeapon=ppRoomWithName[nRoom]; 00002448 38AC ADD R10,R8 0000244A 604F EXTS.W R4,R0 0000244C 4000 SHLL R0 0000244E 00ED MOV.W @(R0,R14),R0 00002450 A011 BRA L1700 00002452 8188 MOV.W R0,@(16,R8) 00002454 L1697: Mines.c 1727 } Mines.c 1728 else Mines.c 1729 { Mines.c 1730 nRoom=RandomNumber()%nRooms; 00002454 D249 MOV.L L2093+8,R2 ; __$RandomNumber 00002456 420B JSR @R2 00002458 0009 NOP 0000245A 6103 MOV R0,R1 0000245C D348 MOV.L L2093+12,R3; __modws 0000245E 430B JSR @R3 00002460 60F1 MOV.W @R15,R0 00002462 6403 MOV R0,R4 Mines.c 1731 m_Treasure[nTreasure].pRoomTreasure=ppRoomWithName[nRoom]; 00002464 6583 MOV R8,R5 00002466 35AC ADD R10,R5 00002468 604F EXTS.W R4,R0 0000246A 4000 SHLL R0 0000246C 00ED MOV.W @(R0,R14),R0 0000246E 8157 MOV.W R0,@(14,R5) Mines.c 1732 m_Treasure[nTreasure].pRoomWeapon=ppRoomWithName[nRooms]; 00002470 50F4 MOV.L @(16,R15),R0 00002472 6001 MOV.W @R0,R0 00002474 8158 MOV.W R0,@(16,R5) 00002476 L1700: 00002476 7901 ADD #1,R9 00002478 L1690: 00002478 84FC MOV.B @(12,R15),R0 0000247A 639E EXTS.B R9,R3 0000247C 3303 CMP/GE R0,R3 0000247E 8B93 BF L1691 Mines.c 1733 } Mines.c 1734 } Mines.c 1735 return; Mines.c 1736 } 00002480 7F14 ADD #20,R15 00002482 4F26 LDS.L @R15+,PR 00002484 68F6 MOV.L @R15+,R8 00002486 69F6 MOV.L @R15+,R9 00002488 6AF6 MOV.L @R15+,R10 0000248A 6BF6 MOV.L @R15+,R11 0000248C 6CF6 MOV.L @R15+,R12 0000248E 6DF6 MOV.L @R15+,R13 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 117 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002490 000B RTS 00002492 6EF6 MOV.L @R15+,R14 Mines.c 1737 Mines.c 1738 static intC Command( 00002494 __$Command: ; function: Command ; frame size=12 00002494 2FE6 MOV.L R14,@-R15 00002496 4F22 STS.L PR,@-R15 00002498 DE3B MOV.L L2093+20,R14; L807 0000249A 7FFC ADD #-4,R15 0000249C D23B MOV.L L2093+24,R2; __$m_bUseSmallFont 0000249E 6320 MOV.B @R2,R3 000024A0 2338 TST R3,R3 000024A2 890C BT L1702 Mines.c 1739 void) Mines.c 1740 { Mines.c 1741 intC nResult; Mines.c 1742 unsigned int uiKey; Mines.c 1743 Mines.c 1744 if (m_bUseSmallFont) Mines.c 1745 PrintMini(0,6*m_nLinesWritten,(unsigned char *) "Command? ",MINI_OVER); 000024A4 D33A MOV.L L2093+28,R3; __$m_nLinesWritten 000024A6 E710 MOV #16,R7 000024A8 6530 MOV.B @R3,R5 000024AA 66E3 MOV R14,R6 000024AC 6153 MOV R5,R1 000024AE 4500 SHLL R5 000024B0 4108 SHLL2 R1 000024B2 351C ADD R1,R5 000024B4 D137 MOV.L L2093+32,R1; _PrintMini 000024B6 410B JSR @R1 000024B8 E400 MOV #0,R4 000024BA A003 BRA L1703 000024BC 0009 NOP 000024BE L1702: Mines.c 1746 else Mines.c 1747 Print((unsigned char *) "Command? "); 000024BE D136 MOV.L L2093+36,R1; _Print 000024C0 410B JSR @R1 000024C2 64E3 MOV R14,R4 000024C4 L1703: Mines.c 1748 GetKey(&uiKey); 000024C4 D335 MOV.L L2093+40,R3; _GetKey 000024C6 430B JSR @R3 000024C8 64F3 MOV R15,R4 Mines.c 1749 nResult=(intC) uiKey; 000024CA 60F2 MOV.L @R15,R0 Mines.c 1750 return nResult; Mines.c 1751 } 000024CC 7F04 ADD #4,R15 000024CE 4F26 LDS.L @R15+,PR 000024D0 000B RTS 000024D2 6EF6 MOV.L @R15+,R14 Mines.c 1752 Mines.c 1753 static void ListPassages( 000024D4 __$ListPassages: ; function: ListPassages ; frame size=112 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 118 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT ; used runtime library name: ; __slow_mvn 000024D4 2FE6 MOV.L R14,@-R15 000024D6 6043 MOV R4,R0 Mines.c 1754 int16 pRoom, Mines.c 1755 int8 *bErr) Mines.c 1756 { Mines.c 1757 int8 nDirection; Mines.c 1758 intC nFirstChar; Mines.c 1759 int16 nPassage; Mines.c 1760 int16 nPassages; Mines.c 1761 int16 pRoomAlongPassage; Mines.c 1762 int16 pTreasure; Mines.c 1763 char *szDescription; Mines.c 1764 char szPassages [] = "There are passages North, South, East, West, Up, and Down."; 000024D8 D232 MOV.L L2093+48,R2; L819 000024DA 2FD6 MOV.L R13,@-R15 000024DC 2FC6 MOV.L R12,@-R15 000024DE 2FB6 MOV.L R11,@-R15 000024E0 2FA6 MOV.L R10,@-R15 000024E2 6A53 MOV R5,R10 000024E4 D330 MOV.L L2093+52,R3; __slow_mvn 000024E6 2F96 MOV.L R9,@-R15 000024E8 2F86 MOV.L R8,@-R15 000024EA 4F22 STS.L PR,@-R15 000024EC D82C MOV.L L2093+44,R8; __$m_Passage 000024EE 7FB4 ADD #-76,R15 000024F0 DB21 MOV.L L2093+4,R11; __$m_Room 000024F2 61F3 MOV R15,R1 000024F4 81F6 MOV.W R0,@(12,R15) 000024F6 7110 ADD #16,R1 000024F8 430B JSR @R3 000024FA E03B MOV #59,R0 000024FC 85F6 MOV.W @(12,R15),R0 Mines.c 1765 char *szText; Mines.c 1766 Mines.c 1767 nPassages=0; 000024FE E500 MOV #0,R5 Mines.c 1768 for (nDirection=6; nDirection--;) 00002500 E406 MOV #6,R4 00002502 6303 MOV R0,R3 00002504 4008 SHLL2 R0 00002506 303C ADD R3,R0 00002508 4008 SHLL2 R0 0000250A A016 BRA L1705 0000250C 1F02 MOV.L R0,@(8,R15) 0000250E L1706: Mines.c 1769 if ((m_Room[pRoom].Adjacent.pPassage[nDirection] != -1) Mines.c 1770 && (! m_Passage[m_Room[pRoom].Adjacent.pPassage[nDirection]].bBlocked)) 0000250E 664E EXTS.B R4,R6 00002510 63B2 MOV.L @R11,R3 00002512 4600 SHLL R6 00002514 50F2 MOV.L @(8,R15),R0 00002516 303C ADD R3,R0 00002518 6303 MOV R0,R3 0000251A 7308 ADD #8,R3 0000251C 363C ADD R3,R6 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 119 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000251E 6661 MOV.W @R6,R6 00002520 606F EXTS.W R6,R0 00002522 88FF CMP/EQ #-1,R0 00002524 8909 BT L1705 00002526 626F EXTS.W R6,R2 00002528 D11D MOV.L L2093+44,R1; __$m_Passage 0000252A 4208 SHLL2 R2 0000252C 6312 MOV.L @R1,R3 0000252E 4200 SHLL R2 00002530 323C ADD R3,R2 00002532 6020 MOV.B @R2,R0 00002534 2008 TST R0,R0 00002536 8B00 BF L1705 Mines.c 1771 ++nPassages; 00002538 7501 ADD #1,R5 0000253A L1705: 0000253A 634E EXTS.B R4,R3 0000253C 2338 TST R3,R3 0000253E 8FE6 BF/S L1706 00002540 74FF ADD #-1,R4 00002542 6D5F EXTS.W R5,R13 00002544 64F3 MOV R15,R4 00002546 E301 MOV #1,R3 00002548 3D37 CMP/GT R3,R13 0000254A 8F06 BF/S L1708 0000254C 7410 ADD #16,R4 Mines.c 1772 if (nPassages > 1) Mines.c 1773 StrCpy(&szPassages[0],"There are passages"); 0000254E D517 MOV.L L2093+56,R5; L821 00002550 D117 MOV.L L2093+60,R1; __$StrCpy 00002552 410B JSR @R1 00002554 0009 NOP 00002556 A004 BRA L1709 00002558 0009 NOP 0000255A L1708: Mines.c 1774 else Mines.c 1775 StrCpy(&szPassages[0],"There is a passage"); 0000255A D516 MOV.L L2093+64,R5; L822 0000255C D214 MOV.L L2093+60,R2; __$StrCpy 0000255E 420B JSR @R2 00002560 0009 NOP 00002562 L1709: Mines.c 1776 nPassage=0; 00002562 E000 MOV #0,R0 00002564 DC14 MOV.L L2093+68,R12; __$m_szDirection 00002566 E900 MOV #0,R9 00002568 81F2 MOV.W R0,@(4,R15) Mines.c 1777 for (nDirection=0; nDirection < 6; ++nDirection) 0000256A 6303 MOV R0,R3 0000256C 2F30 MOV.B R3,@R15 0000256E 6EF3 MOV R15,R14 00002570 A05C BRA L1710 00002572 7E10 ADD #16,R14 00002574 L2093: 00002574 <00000000> .DATA.L __$m_Treasure 00002578 <00000000> .DATA.L __$m_Room 0000257C <00000000> .DATA.L __$RandomNumber SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 120 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002580 <00000000> .DATA.L __modws 00002584 <00000000> .DATA.L __modls 00002588 <00000000> .DATA.L L807 0000258C <00000000> .DATA.L __$m_bUseSmallFont 00002590 <00000000> .DATA.L __$m_nLinesWritten 00002594 <00000000> .DATA.L _PrintMini 00002598 <00000000> .DATA.L _Print 0000259C <00000000> .DATA.L _GetKey 000025A0 <00000000> .DATA.L __$m_Passage 000025A4 <00000000> .DATA.L L819 000025A8 <00000000> .DATA.L __slow_mvn 000025AC <00000000> .DATA.L L821 000025B0 <00000000> .DATA.L __$StrCpy 000025B4 <00000000> .DATA.L L822 000025B8 <00000000> .DATA.L __$m_szDirection 000025BC L1711: Mines.c 1778 if ((m_Room[pRoom].Adjacent.pPassage[nDirection] != -1) Mines.c 1779 && (! m_Passage[m_Room[pRoom].Adjacent.pPassage[nDirection]].bBlocked)) 000025BC 63B2 MOV.L @R11,R3 000025BE 50F2 MOV.L @(8,R15),R0 000025C0 303C ADD R3,R0 000025C2 6403 MOV R0,R4 000025C4 7408 ADD #8,R4 000025C6 349C ADD R9,R4 000025C8 6441 MOV.W @R4,R4 000025CA 604F EXTS.W R4,R0 000025CC 88FF CMP/EQ #-1,R0 000025CE 8928 BT L1712 000025D0 D123 MOV.L L2094+2,R1 ; __$m_Passage 000025D2 624F EXTS.W R4,R2 000025D4 6312 MOV.L @R1,R3 000025D6 4208 SHLL2 R2 000025D8 4200 SHLL R2 000025DA 323C ADD R3,R2 000025DC 6020 MOV.B @R2,R0 000025DE 2008 TST R0,R0 000025E0 8B1F BF L1712 Mines.c 1780 { Mines.c 1781 if (++nPassage > 1) 000025E2 E301 MOV #1,R3 000025E4 85F2 MOV.W @(4,R15),R0 000025E6 7001 ADD #1,R0 000025E8 81F2 MOV.W R0,@(4,R15) 000025EA 600F EXTS.W R0,R0 000025EC 3037 CMP/GT R3,R0 000025EE 8B06 BF L1713 Mines.c 1782 if (nPassages != 2) 000025F0 60D3 MOV R13,R0 000025F2 8802 CMP/EQ #2,R0 000025F4 8903 BT L1713 Mines.c 1783 StrCat(&szPassages[0],","); 000025F6 D51B MOV.L L2094+6,R5 ; L824 000025F8 D21B MOV.L L2094+10,R2; __$StrCat 000025FA 420B JSR @R2 000025FC 64E3 MOV R14,R4 000025FE L1713: Mines.c 1784 StrCat(&szPassages[0]," "); SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 121 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000025FE D51B MOV.L L2094+14,R5; L618 00002600 D319 MOV.L L2094+10,R3; __$StrCat 00002602 430B JSR @R3 00002604 64E3 MOV R14,R4 Mines.c 1785 if (nPassage == nPassages) 00002606 85F2 MOV.W @(4,R15),R0 00002608 30D0 CMP/EQ R13,R0 0000260A 8B06 BF L1715 Mines.c 1786 if (nPassages > 1) 0000260C E201 MOV #1,R2 0000260E 3D27 CMP/GT R2,R13 00002610 8B03 BF L1715 Mines.c 1787 StrCat(&szPassages[0],"and "); 00002612 D517 MOV.L L2094+18,R5; L825 00002614 D114 MOV.L L2094+10,R1; __$StrCat 00002616 410B JSR @R1 00002618 64E3 MOV R14,R4 0000261A L1715: Mines.c 1788 StrCat(&szPassages[0],m_szDirection[nDirection]); 0000261A 65C2 MOV.L @R12,R5 0000261C D312 MOV.L L2094+10,R3; __$StrCat 0000261E 430B JSR @R3 00002620 64E3 MOV R14,R4 00002622 L1712: 00002622 7C04 ADD #4,R12 00002624 62F0 MOV.B @R15,R2 00002626 7902 ADD #2,R9 00002628 7201 ADD #1,R2 0000262A 2F20 MOV.B R2,@R15 0000262C L1710: 0000262C 63F0 MOV.B @R15,R3 0000262E E206 MOV #6,R2 00002630 3323 CMP/GE R2,R3 00002632 8BC3 BF L1711 Mines.c 1789 } Mines.c 1790 StrCat(&szPassages[0],"."); 00002634 D50F MOV.L L2094+22,R5; L826 00002636 D20C MOV.L L2094+10,R2; __$StrCat 00002638 420B JSR @R2 0000263A 64E3 MOV R14,R4 Mines.c 1791 DisplayText(&szPassages[0],bErr); 0000263C D30E MOV.L L2094+26,R3; __$DisplayText 0000263E 65A3 MOV R10,R5 00002640 430B JSR @R3 00002642 64E3 MOV R14,R4 Mines.c 1792 for (nDirection=0; (! *bErr) && (nDirection < 6); ++nDirection) 00002644 E200 MOV #0,R2 00002646 A154 BRA L1717 00002648 2F20 MOV.B R2,@R15 0000264A L1718: Mines.c 1793 { Mines.c 1794 szDescription=(char *) NULL; 0000264A E400 MOV #0,R4 Mines.c 1795 pRoomAlongPassage=pRoom; 0000264C 85F6 MOV.W @(12,R15),R0 0000264E 6D03 MOV R0,R13 00002650 6CF0 MOV.B @R15,R12 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 122 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002652 4C00 SHLL R12 00002654 69F0 MOV.B @R15,R9 00002656 4908 SHLL2 R9 00002658 D308 MOV.L L2094+30,R3; __$m_szDirection Mines.c 1796 while ((! *bErr) 0000265A A121 BRA L1719 0000265C 393C ADD R3,R9 0000265E L2094: 0000265E 0000 .DATA.W 0 00002660 <00000000> .DATA.L __$m_Passage 00002664 <00000000> .DATA.L L824 00002668 <00000000> .DATA.L __$StrCat 0000266C <00000000> .DATA.L L618 00002670 <00000000> .DATA.L L825 00002674 <00000000> .DATA.L L826 00002678 <00000000> .DATA.L __$DisplayText 0000267C <00000000> .DATA.L __$m_szDirection 00002680 L1720: Mines.c 1797 && (m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection] != -1) Mines.c 1798 && (! m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].bBlocked) Mines.c 1799 && (szDescription == NULL)) Mines.c 1800 { Mines.c 1801 if ((pTreasure=m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pTreasureGua +rdian) != -1) 00002680 62B2 MOV.L @R11,R2 00002682 60DF EXTS.W R13,R0 00002684 6303 MOV R0,R3 00002686 4008 SHLL2 R0 00002688 303C ADD R3,R0 0000268A 4008 SHLL2 R0 0000268C 6382 MOV.L @R8,R3 0000268E 302C ADD R2,R0 00002690 6E03 MOV R0,R14 00002692 7E08 ADD #8,R14 00002694 3ECC ADD R12,R14 00002696 6EE1 MOV.W @R14,R14 00002698 4E08 SHLL2 R14 0000269A 4E00 SHLL R14 0000269C 3E3C ADD R3,R14 0000269E 85E1 MOV.W @(2,R14),R0 000026A0 6E03 MOV R0,R14 000026A2 60EF EXTS.W R14,R0 000026A4 88FF CMP/EQ #-1,R0 000026A6 8B01 BF L2095 000026A8 A0BD BRA L1721 000026AA 0009 NOP 000026AC L2095: Mines.c 1802 { Mines.c 1803 nFirstChar=ToUpper((intC) *(m_Treasure[pTreasure].szGuardian)); 000026AC D02B MOV.L L2096+4,R0 ; H'00000004+__$m_Treasure 000026AE 64EF EXTS.W R14,R4 000026B0 6343 MOV R4,R3 000026B2 4408 SHLL2 R4 000026B4 343C ADD R3,R4 000026B6 4408 SHLL2 R4 000026B8 D329 MOV.L L2096+8,R3 ; __$ToUpper 000026BA 1F41 MOV.L R4,@(4,R15) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 123 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000026BC 044E MOV.L @(R0,R4),R4 000026BE 430B JSR @R3 000026C0 6440 MOV.B @R4,R4 Mines.c 1804 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar == 'O +') || (nFirstChar == 'U')) 000026C2 8841 CMP/EQ #65,R0 000026C4 9E48 MOV.W L2096,R14 ; H'0400 000026C6 8D0C BT/S L1723 000026C8 6403 MOV R0,R4 000026CA 6043 MOV R4,R0 000026CC 8845 CMP/EQ #69,R0 000026CE 8908 BT L1723 000026D0 6043 MOV R4,R0 000026D2 8849 CMP/EQ #73,R0 000026D4 8905 BT L1723 000026D6 6043 MOV R4,R0 000026D8 884F CMP/EQ #79,R0 000026DA 8902 BT L1723 000026DC 6043 MOV R4,R0 000026DE 8855 CMP/EQ #85,R0 000026E0 8B54 BF L1722 000026E2 L1723: Mines.c 1805 if (1+StrLen("The passage ")+StrLen(m_szDirection[nDirection])+StrLen(" is guarded by an + ")+StrLen(m_Treasure[pTreasure].szGuardian)+StrLen(".") < SENTENCE_LEN) 000026E2 D420 MOV.L L2096+12,R4; L830 000026E4 D320 MOV.L L2096+16,R3; __$StrLen 000026E6 430B JSR @R3 000026E8 0009 NOP 000026EA 600F EXTS.W R0,R0 000026EC D21E MOV.L L2096+16,R2; __$StrLen 000026EE 2F06 MOV.L R0,@-R15 000026F0 420B JSR @R2 000026F2 6492 MOV.L @R9,R4 000026F4 63F6 MOV.L @R15+,R3 000026F6 600F EXTS.W R0,R0 000026F8 D41C MOV.L L2096+20,R4; L831 000026FA 303C ADD R3,R0 000026FC D21A MOV.L L2096+16,R2; __$StrLen 000026FE 420B JSR @R2 00002700 2F06 MOV.L R0,@-R15 00002702 600F EXTS.W R0,R0 00002704 63F6 MOV.L @R15+,R3 00002706 303C ADD R3,R0 00002708 2F06 MOV.L R0,@-R15 0000270A D319 MOV.L L2096+24,R3; __$m_Treasure 0000270C 54F2 MOV.L @(8,R15),R4 0000270E 343C ADD R3,R4 00002710 D215 MOV.L L2096+16,R2; __$StrLen 00002712 420B JSR @R2 00002714 5441 MOV.L @(4,R4),R4 00002716 600F EXTS.W R0,R0 00002718 63F6 MOV.L @R15+,R3 0000271A 303C ADD R3,R0 0000271C D415 MOV.L L2096+28,R4; L826 0000271E D212 MOV.L L2096+16,R2; __$StrLen 00002720 420B JSR @R2 00002722 2F06 MOV.L R0,@-R15 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 124 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002724 63F6 MOV.L @R15+,R3 00002726 600F EXTS.W R0,R0 00002728 303C ADD R3,R0 0000272A 7001 ADD #1,R0 0000272C 30E3 CMP/GE R14,R0 0000272E 890C BT L1724 Mines.c 1806 { Mines.c 1807 szText=&m_szMsg[0]; 00002730 D311 MOV.L L2096+32,R3; __$m_szMsg 00002732 6E32 MOV.L @R3,R14 Mines.c 1808 StrCpy(szText,"The passage "); 00002734 D50B MOV.L L2096+12,R5; L830 00002736 D211 MOV.L L2096+36,R2; __$StrCpy 00002738 420B JSR @R2 0000273A 64E3 MOV R14,R4 Mines.c 1809 StrCat(szText,m_szDirection[nDirection]); 0000273C 6592 MOV.L @R9,R5 0000273E D310 MOV.L L2096+40,R3; __$StrCat 00002740 430B JSR @R3 00002742 64E3 MOV R14,R4 Mines.c 1810 StrCat(szText," is guarded by an "); 00002744 D509 MOV.L L2096+20,R5; L831 00002746 A053 BRA L1986 00002748 0009 NOP 0000274A L1724: Mines.c 1811 StrCat(szText,m_Treasure[pTreasure].szGuardian); Mines.c 1812 StrCat(szText,"."); Mines.c 1813 DisplayText(szText,bErr); Mines.c 1814 } Mines.c 1815 else Mines.c 1816 { Mines.c 1817 DisplayText("Fatal error: memory was exhausted at locaton 7.",bErr); 0000274A 65A3 MOV R10,R5 0000274C D30E MOV.L L2096+48,R3; __$DisplayText 0000274E DE0D MOV.L L2096+44,R14; L834 00002750 430B JSR @R3 00002752 64E3 MOV R14,R4 00002754 A065 BRA L1068 00002756 0009 NOP 00002758 L2096: 00002758 0400 .DATA.W H'0400 0000275A 0000 .DATA.W 0 0000275C <00000004> .DATA.L H'00000004+__$m_Treasure 00002760 <00000000> .DATA.L __$ToUpper 00002764 <00000000> .DATA.L L830 00002768 <00000000> .DATA.L __$StrLen 0000276C <00000000> .DATA.L L831 00002770 <00000000> .DATA.L __$m_Treasure 00002774 <00000000> .DATA.L L826 00002778 <00000000> .DATA.L __$m_szMsg 0000277C <00000000> .DATA.L __$StrCpy 00002780 <00000000> .DATA.L __$StrCat 00002784 <00000000> .DATA.L L834 00002788 <00000000> .DATA.L __$DisplayText 0000278C L1722: Mines.c 1818 *bErr=TRUE; Mines.c 1819 } SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 125 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 1820 else Mines.c 1821 if (1+StrLen("The passage ")+StrLen(m_szDirection[nDirection])+StrLen(" is guarded by a +")+StrLen(m_Treasure[pTreasure].szGuardian)+StrLen(".") < SENTENCE_LEN) 0000278C D49C MOV.L L2097,R4 ; L830 0000278E D29D MOV.L L2097+4,R2 ; __$StrLen 00002790 420B JSR @R2 00002792 0009 NOP 00002794 D39B MOV.L L2097+4,R3 ; __$StrLen 00002796 600F EXTS.W R0,R0 00002798 2F06 MOV.L R0,@-R15 0000279A 430B JSR @R3 0000279C 6492 MOV.L @R9,R4 0000279E 600F EXTS.W R0,R0 000027A0 62F6 MOV.L @R15+,R2 000027A2 302C ADD R2,R0 000027A4 D498 MOV.L L2097+8,R4 ; L835 000027A6 D397 MOV.L L2097+4,R3 ; __$StrLen 000027A8 430B JSR @R3 000027AA 2F06 MOV.L R0,@-R15 000027AC 62F6 MOV.L @R15+,R2 000027AE 600F EXTS.W R0,R0 000027B0 D396 MOV.L L2097+12,R3; __$m_Treasure 000027B2 302C ADD R2,R0 000027B4 2F06 MOV.L R0,@-R15 000027B6 54F2 MOV.L @(8,R15),R4 000027B8 D292 MOV.L L2097+4,R2 ; __$StrLen 000027BA 343C ADD R3,R4 000027BC 420B JSR @R2 000027BE 5441 MOV.L @(4,R4),R4 000027C0 63F6 MOV.L @R15+,R3 000027C2 600F EXTS.W R0,R0 000027C4 D492 MOV.L L2097+16,R4; L826 000027C6 303C ADD R3,R0 000027C8 D28E MOV.L L2097+4,R2 ; __$StrLen 000027CA 420B JSR @R2 000027CC 2F06 MOV.L R0,@-R15 000027CE 600F EXTS.W R0,R0 000027D0 63F6 MOV.L @R15+,R3 000027D2 303C ADD R3,R0 000027D4 7001 ADD #1,R0 000027D6 30E3 CMP/GE R14,R0 000027D8 891E BT L1727 Mines.c 1822 { Mines.c 1823 szText=&m_szMsg[0]; 000027DA D38E MOV.L L2097+20,R3; __$m_szMsg Mines.c 1824 StrCpy(szText,"The passage "); 000027DC D588 MOV.L L2097,R5 ; L830 000027DE 6E32 MOV.L @R3,R14 000027E0 D28D MOV.L L2097+24,R2; __$StrCpy 000027E2 420B JSR @R2 000027E4 64E3 MOV R14,R4 Mines.c 1825 StrCat(szText,m_szDirection[nDirection]); 000027E6 6592 MOV.L @R9,R5 000027E8 D38C MOV.L L2097+28,R3; __$StrCat 000027EA 430B JSR @R3 000027EC 64E3 MOV R14,R4 Mines.c 1826 StrCat(szText," is guarded by a "); SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 126 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000027EE D586 MOV.L L2097+8,R5 ; L835 000027F0 L1986: 000027F0 D28A MOV.L L2097+28,R2; __$StrCat 000027F2 420B JSR @R2 000027F4 64E3 MOV R14,R4 Mines.c 1827 StrCat(szText,m_Treasure[pTreasure].szGuardian); 000027F6 D385 MOV.L L2097+12,R3; __$m_Treasure 000027F8 55F1 MOV.L @(4,R15),R5 000027FA 353C ADD R3,R5 000027FC 5551 MOV.L @(4,R5),R5 000027FE D287 MOV.L L2097+28,R2; __$StrCat 00002800 420B JSR @R2 00002802 64E3 MOV R14,R4 Mines.c 1828 StrCat(szText,"."); 00002804 D582 MOV.L L2097+16,R5; L826 00002806 D385 MOV.L L2097+28,R3; __$StrCat 00002808 430B JSR @R3 0000280A 64E3 MOV R14,R4 Mines.c 1829 DisplayText(szText,bErr); 0000280C D284 MOV.L L2097+32,R2; __$DisplayText 0000280E 65A3 MOV R10,R5 00002810 420B JSR @R2 00002812 64E3 MOV R14,R4 00002814 A007 BRA L1721 00002816 0009 NOP 00002818 L1727: Mines.c 1830 } Mines.c 1831 else Mines.c 1832 { Mines.c 1833 DisplayText("Fatal error: memory was exhausted at locaton 8.",bErr); 00002818 DE82 MOV.L L2097+36,R14; L838 0000281A 65A3 MOV R10,R5 0000281C D280 MOV.L L2097+32,R2; __$DisplayText 0000281E 420B JSR @R2 00002820 64E3 MOV R14,R4 00002822 L1068: Mines.c 1834 *bErr=TRUE; 00002822 E301 MOV #1,R3 00002824 2A30 MOV.B R3,@R10 00002826 L1721: Mines.c 1835 } Mines.c 1836 } Mines.c 1837 if (m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pRoom1 == pRoomAlongPas +sage) 00002826 60DF EXTS.W R13,R0 00002828 62B2 MOV.L @R11,R2 0000282A 6303 MOV R0,R3 0000282C 4008 SHLL2 R0 0000282E 303C ADD R3,R0 00002830 4008 SHLL2 R0 00002832 302C ADD R2,R0 00002834 6303 MOV R0,R3 00002836 7308 ADD #8,R3 00002838 33CC ADD R12,R3 0000283A 6231 MOV.W @R3,R2 0000283C 6382 MOV.L @R8,R3 0000283E 4208 SHLL2 R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 127 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002840 4200 SHLL R2 00002842 323C ADD R3,R2 00002844 8522 MOV.W @(4,R2),R0 00002846 63DF EXTS.W R13,R3 00002848 3030 CMP/EQ R3,R0 0000284A 8B10 BF L1729 Mines.c 1838 pRoomAlongPassage=m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pRoom2; 0000284C 62B2 MOV.L @R11,R2 0000284E 60DF EXTS.W R13,R0 00002850 6303 MOV R0,R3 00002852 4008 SHLL2 R0 00002854 303C ADD R3,R0 00002856 4008 SHLL2 R0 00002858 302C ADD R2,R0 0000285A 6303 MOV R0,R3 0000285C 7308 ADD #8,R3 0000285E 33CC ADD R12,R3 00002860 6231 MOV.W @R3,R2 00002862 4208 SHLL2 R2 00002864 6382 MOV.L @R8,R3 00002866 4200 SHLL R2 00002868 323C ADD R3,R2 0000286A A010 BRA L1987 0000286C 8523 MOV.W @(6,R2),R0 0000286E L1729: Mines.c 1839 else Mines.c 1840 pRoomAlongPassage=m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pRoom1; 0000286E 60DF EXTS.W R13,R0 00002870 62B2 MOV.L @R11,R2 00002872 6303 MOV R0,R3 00002874 4008 SHLL2 R0 00002876 303C ADD R3,R0 00002878 4008 SHLL2 R0 0000287A 302C ADD R2,R0 0000287C 6303 MOV R0,R3 0000287E 7308 ADD #8,R3 00002880 33CC ADD R12,R3 00002882 6231 MOV.W @R3,R2 00002884 6382 MOV.L @R8,R3 00002886 4208 SHLL2 R2 00002888 4200 SHLL R2 0000288A 323C ADD R3,R2 0000288C 8522 MOV.W @(4,R2),R0 0000288E L1987: 0000288E 6D03 MOV R0,R13 Mines.c 1841 szDescription=m_Room[pRoomAlongPassage].szDescription; 00002890 62B2 MOV.L @R11,R2 00002892 64DF EXTS.W R13,R4 00002894 6343 MOV R4,R3 00002896 4408 SHLL2 R4 00002898 343C ADD R3,R4 0000289A 4408 SHLL2 R4 0000289C 342C ADD R2,R4 0000289E 6442 MOV.L @R4,R4 000028A0 L1719: 000028A0 63A0 MOV.B @R10,R3 000028A2 2338 TST R3,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 128 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000028A4 8B22 BF L1731 000028A6 60DF EXTS.W R13,R0 000028A8 D15F MOV.L L2097+40,R1; __$m_Room 000028AA 6303 MOV R0,R3 000028AC 6212 MOV.L @R1,R2 000028AE 4008 SHLL2 R0 000028B0 303C ADD R3,R0 000028B2 4008 SHLL2 R0 000028B4 302C ADD R2,R0 000028B6 7008 ADD #8,R0 000028B8 00CD MOV.W @(R0,R12),R0 000028BA 88FF CMP/EQ #-1,R0 000028BC 8916 BT L1731 000028BE 60DF EXTS.W R13,R0 000028C0 6212 MOV.L @R1,R2 000028C2 6303 MOV R0,R3 000028C4 4008 SHLL2 R0 000028C6 303C ADD R3,R0 000028C8 4008 SHLL2 R0 000028CA 302C ADD R2,R0 000028CC 6303 MOV R0,R3 000028CE 7308 ADD #8,R3 000028D0 D056 MOV.L L2097+44,R0; __$m_Passage 000028D2 33CC ADD R12,R3 000028D4 6231 MOV.W @R3,R2 000028D6 4208 SHLL2 R2 000028D8 6302 MOV.L @R0,R3 000028DA 4200 SHLL R2 000028DC 323C ADD R3,R2 000028DE 6320 MOV.B @R2,R3 000028E0 2338 TST R3,R3 000028E2 8B03 BF L1731 000028E4 2448 TST R4,R4 000028E6 8B01 BF L2098 000028E8 AECA BRA L1720 000028EA 0009 NOP 000028EC L2098: 000028EC L1731: 000028EC 61F0 MOV.B @R15,R1 000028EE 7101 ADD #1,R1 000028F0 2F10 MOV.B R1,@R15 000028F2 L1717: 000028F2 63A0 MOV.B @R10,R3 000028F4 2338 TST R3,R3 000028F6 8B05 BF L1733 000028F8 63F0 MOV.B @R15,R3 000028FA E206 MOV #6,R2 000028FC 3323 CMP/GE R2,R3 000028FE 8901 BT L2099 00002900 AEA3 BRA L1718 00002902 0009 NOP 00002904 L2099: 00002904 L1733: Mines.c 1842 } Mines.c 1843 } Mines.c 1844 return; Mines.c 1845 } SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 129 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002904 7F4C ADD #76,R15 00002906 4F26 LDS.L @R15+,PR 00002908 68F6 MOV.L @R15+,R8 0000290A 69F6 MOV.L @R15+,R9 0000290C 6AF6 MOV.L @R15+,R10 0000290E 6BF6 MOV.L @R15+,R11 00002910 6CF6 MOV.L @R15+,R12 00002912 6DF6 MOV.L @R15+,R13 00002914 000B RTS 00002916 6EF6 MOV.L @R15+,R14 Mines.c 1846 Mines.c 1847 static void ListTreasuresAndWeapons( 00002918 __$ListTreasuresAndWeapons: ; function: ListTreasuresAndWeapons ; frame size=48 00002918 2FE6 MOV.L R14,@-R15 0000291A 6053 MOV R5,R0 0000291C 2FD6 MOV.L R13,@-R15 0000291E 644F EXTS.W R4,R4 00002920 DE3A MOV.L L2097+12,R14; __$m_Treasure 00002922 2FC6 MOV.L R12,@-R15 00002924 2FB6 MOV.L R11,@-R15 00002926 2FA6 MOV.L R10,@-R15 00002928 2F96 MOV.L R9,@-R15 0000292A 2F86 MOV.L R8,@-R15 0000292C 4F22 STS.L PR,@-R15 0000292E 7FF0 ADD #-16,R15 00002930 80FC MOV.B R0,@(12,R15) 00002932 1F62 MOV.L R6,@(8,R15) Mines.c 1848 int16 pRoom, Mines.c 1849 int8 nTreasures, Mines.c 1850 int8 *bErr) Mines.c 1851 { Mines.c 1852 int16 nBytes; Mines.c 1853 intC nFirstChar; Mines.c 1854 int8 nItem; Mines.c 1855 int8 nItems; Mines.c 1856 int8 nTreasure; Mines.c 1857 char *szText; Mines.c 1858 Mines.c 1859 nItems=0; Mines.c 1860 for (nTreasure=nTreasures; nTreasure--;) 00002934 84FC MOV.B @(12,R15),R0 00002936 E600 MOV #0,R6 00002938 6503 MOV R0,R5 0000293A A016 BRA L1734 0000293C 1F41 MOV.L R4,@(4,R15) 0000293E L1735: Mines.c 1861 { Mines.c 1862 if (m_Treasure[nTreasure].pRoomTreasure == pRoom) 0000293E 625E EXTS.B R5,R2 00002940 6323 MOV R2,R3 00002942 4208 SHLL2 R2 00002944 323C ADD R3,R2 00002946 4208 SHLL2 R2 00002948 53F1 MOV.L @(4,R15),R3 0000294A 32EC ADD R14,R2 0000294C 8527 MOV.W @(14,R2),R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 130 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000294E 3030 CMP/EQ R3,R0 00002950 8F01 BF/S L1736 Mines.c 1863 ++nItems; Mines.c 1864 if (m_Treasure[nTreasure].pRoomWeapon == pRoom) 00002952 635E EXTS.B R5,R3 00002954 7601 ADD #1,R6 00002956 L1736: 00002956 6233 MOV R3,R2 00002958 4308 SHLL2 R3 0000295A 332C ADD R2,R3 0000295C 4308 SHLL2 R3 0000295E 33EC ADD R14,R3 00002960 8538 MOV.W @(16,R3),R0 00002962 53F1 MOV.L @(4,R15),R3 00002964 3030 CMP/EQ R3,R0 00002966 8B00 BF L1734 Mines.c 1865 ++nItems; 00002968 7601 ADD #1,R6 0000296A L1734: 0000296A 635E EXTS.B R5,R3 0000296C 2338 TST R3,R3 0000296E 8FE6 BF/S L1735 00002970 75FF ADD #-1,R5 Mines.c 1866 } Mines.c 1867 if (nItems) 00002972 616E EXTS.B R6,R1 00002974 2118 TST R1,R1 00002976 8B01 BF L2100 00002978 A24D BRA L1797 0000297A 0009 NOP 0000297C L2100: 0000297C 6C6E EXTS.B R6,R12 0000297E 60C3 MOV R12,R0 00002980 8801 CMP/EQ #1,R0 00002982 8F03 BF/S L1739 Mines.c 1868 { Mines.c 1869 nBytes=0; 00002984 ED00 MOV #0,R13 Mines.c 1870 if (nItems == 1) Mines.c 1871 nBytes+=StrLen("There is "); 00002986 D42A MOV.L L2097+48,R4; L851 00002988 A001 BRA L1988 0000298A 0009 NOP 0000298C L1739: Mines.c 1872 else Mines.c 1873 nBytes+=StrLen("There are "); 0000298C D429 MOV.L L2097+52,R4; L852 0000298E L1988: 0000298E D21D MOV.L L2097+4,R2 ; __$StrLen 00002990 420B JSR @R2 00002992 0009 NOP Mines.c 1874 nItem=0; Mines.c 1875 for (nTreasure=nTreasures; nTreasure--;) 00002994 DA28 MOV.L L2097+56,R10; L857 00002996 3D0C ADD R0,R13 00002998 DB28 MOV.L L2097+60,R11; L856 0000299A E300 MOV #0,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 131 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000299C 2F30 MOV.B R3,@R15 0000299E 84FC MOV.B @(12,R15),R0 000029A0 A117 BRA L1741 000029A2 6803 MOV R0,R8 000029A4 L1742: Mines.c 1876 { Mines.c 1877 if (m_Treasure[nTreasure].pRoomTreasure == pRoom) 000029A4 628E EXTS.B R8,R2 000029A6 6323 MOV R2,R3 000029A8 4208 SHLL2 R2 000029AA 323C ADD R3,R2 000029AC 53F1 MOV.L @(4,R15),R3 000029AE 4208 SHLL2 R2 000029B0 32EC ADD R14,R2 000029B2 8527 MOV.W @(14,R2),R0 000029B4 3030 CMP/EQ R3,R0 000029B6 8901 BT L2101 000029B8 A08B BRA L1743 000029BA 0009 NOP 000029BC L2101: Mines.c 1878 { Mines.c 1879 nFirstChar=ToUpper((intC) *(m_Treasure[nTreasure].szTreasure)); 000029BC 648E EXTS.B R8,R4 000029BE 6343 MOV R4,R3 000029C0 4408 SHLL2 R4 000029C2 343C ADD R3,R4 000029C4 D31E MOV.L L2097+64,R3; __$ToUpper 000029C6 4408 SHLL2 R4 000029C8 34EC ADD R14,R4 000029CA 6442 MOV.L @R4,R4 000029CC 430B JSR @R3 000029CE 6440 MOV.B @R4,R4 Mines.c 1880 ++nItem; 000029D0 62F0 MOV.B @R15,R2 000029D2 6903 MOV R0,R9 000029D4 7201 ADD #1,R2 000029D6 2F20 MOV.B R2,@R15 Mines.c 1881 if (nItem < nItems) 000029D8 622E EXTS.B R2,R2 000029DA 32C3 CMP/GE R12,R2 000029DC 894D BT L1744 Mines.c 1882 { Mines.c 1883 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar = += 'O') || (nFirstChar == 'U')) 000029DE 6093 MOV R9,R0 000029E0 8841 CMP/EQ #65,R0 000029E2 890B BT L1746 000029E4 6093 MOV R9,R0 000029E6 8845 CMP/EQ #69,R0 000029E8 8908 BT L1746 000029EA 6093 MOV R9,R0 000029EC 8849 CMP/EQ #73,R0 000029EE 8905 BT L1746 000029F0 6093 MOV R9,R0 000029F2 884F CMP/EQ #79,R0 000029F4 8902 BT L1746 000029F6 6093 MOV R9,R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 132 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000029F8 8855 CMP/EQ #85,R0 000029FA 8B23 BF L1745 000029FC L1746: Mines.c 1884 nBytes+=StrLen("an "); 000029FC A023 BRA L1989 000029FE 64B3 MOV R11,R4 00002A00 L2097: 00002A00 <00000000> .DATA.L L830 00002A04 <00000000> .DATA.L __$StrLen 00002A08 <00000000> .DATA.L L835 00002A0C <00000000> .DATA.L __$m_Treasure 00002A10 <00000000> .DATA.L L826 00002A14 <00000000> .DATA.L __$m_szMsg 00002A18 <00000000> .DATA.L __$StrCpy 00002A1C <00000000> .DATA.L __$StrCat 00002A20 <00000000> .DATA.L __$DisplayText 00002A24 <00000000> .DATA.L L838 00002A28 <00000000> .DATA.L __$m_Room 00002A2C <00000000> .DATA.L __$m_Passage 00002A30 <00000000> .DATA.L L851 00002A34 <00000000> .DATA.L L852 00002A38 <00000000> .DATA.L L857 00002A3C <00000000> .DATA.L L856 00002A40 <00000000> .DATA.L __$ToUpper 00002A44 L1745: Mines.c 1885 else Mines.c 1886 nBytes+=StrLen("a "); 00002A44 64A3 MOV R10,R4 00002A46 L1989: 00002A46 D353 MOV.L L2102+2,R3 ; __$StrLen 00002A48 430B JSR @R3 00002A4A 0009 NOP Mines.c 1887 nBytes+=StrLen(m_Treasure[nTreasure].szTreasure); 00002A4C D251 MOV.L L2102+2,R2 ; __$StrLen 00002A4E 3D0C ADD R0,R13 00002A50 648E EXTS.B R8,R4 00002A52 6343 MOV R4,R3 00002A54 4408 SHLL2 R4 00002A56 343C ADD R3,R4 00002A58 4408 SHLL2 R4 00002A5A 34EC ADD R14,R4 00002A5C 420B JSR @R2 00002A5E 6442 MOV.L @R4,R4 00002A60 3D0C ADD R0,R13 Mines.c 1888 if (nItems == 2) 00002A62 60C3 MOV R12,R0 00002A64 8802 CMP/EQ #2,R0 00002A66 8B02 BF L1748 Mines.c 1889 nBytes+=StrLen(" "); 00002A68 D44B MOV.L L2102+6,R4 ; L618 00002A6A A001 BRA L1990 00002A6C 0009 NOP 00002A6E L1748: Mines.c 1890 else Mines.c 1891 nBytes+=StrLen(", "); 00002A6E D44B MOV.L L2102+10,R4; L858 00002A70 L1990: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 133 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002A70 D248 MOV.L L2102+2,R2 ; __$StrLen 00002A72 420B JSR @R2 00002A74 0009 NOP 00002A76 A02C BRA L1743 00002A78 3D0C ADD R0,R13 00002A7A L1744: Mines.c 1892 } Mines.c 1893 else Mines.c 1894 { Mines.c 1895 if (nItems > 1) 00002A7A E201 MOV #1,R2 00002A7C 3C27 CMP/GT R2,R12 00002A7E 8B04 BF L1751 Mines.c 1896 nBytes+=StrLen("and "); 00002A80 D447 MOV.L L2102+14,R4; L825 00002A82 D144 MOV.L L2102+2,R1 ; __$StrLen 00002A84 410B JSR @R1 00002A86 0009 NOP 00002A88 3D0C ADD R0,R13 00002A8A L1751: Mines.c 1897 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar = += 'O') || (nFirstChar == 'U')) 00002A8A 6093 MOV R9,R0 00002A8C 8841 CMP/EQ #65,R0 00002A8E 890B BT L1753 00002A90 6093 MOV R9,R0 00002A92 8845 CMP/EQ #69,R0 00002A94 8908 BT L1753 00002A96 6093 MOV R9,R0 00002A98 8849 CMP/EQ #73,R0 00002A9A 8905 BT L1753 00002A9C 6093 MOV R9,R0 00002A9E 884F CMP/EQ #79,R0 00002AA0 8902 BT L1753 00002AA2 6093 MOV R9,R0 00002AA4 8855 CMP/EQ #85,R0 00002AA6 8B01 BF L1752 00002AA8 L1753: Mines.c 1898 nBytes+=StrLen("an "); 00002AA8 A001 BRA L1991 00002AAA 64B3 MOV R11,R4 00002AAC L1752: Mines.c 1899 else Mines.c 1900 nBytes+=StrLen("a "); 00002AAC 64A3 MOV R10,R4 00002AAE L1991: 00002AAE D239 MOV.L L2102+2,R2 ; __$StrLen 00002AB0 420B JSR @R2 00002AB2 0009 NOP Mines.c 1901 nBytes+=StrLen(m_Treasure[nTreasure].szTreasure); 00002AB4 D237 MOV.L L2102+2,R2 ; __$StrLen 00002AB6 3D0C ADD R0,R13 00002AB8 648E EXTS.B R8,R4 00002ABA 6343 MOV R4,R3 00002ABC 4408 SHLL2 R4 00002ABE 343C ADD R3,R4 00002AC0 4408 SHLL2 R4 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 134 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002AC2 34EC ADD R14,R4 00002AC4 420B JSR @R2 00002AC6 6442 MOV.L @R4,R4 Mines.c 1902 nBytes+=StrLen(" here."); 00002AC8 D436 MOV.L L2102+18,R4; L860 00002ACA D332 MOV.L L2102+2,R3 ; __$StrLen 00002ACC 430B JSR @R3 00002ACE 3D0C ADD R0,R13 00002AD0 3D0C ADD R0,R13 00002AD2 L1743: Mines.c 1903 } Mines.c 1904 } Mines.c 1905 if (m_Treasure[nTreasure].pRoomWeapon == pRoom) 00002AD2 628E EXTS.B R8,R2 00002AD4 6323 MOV R2,R3 00002AD6 4208 SHLL2 R2 00002AD8 323C ADD R3,R2 00002ADA 4208 SHLL2 R2 00002ADC 53F1 MOV.L @(4,R15),R3 00002ADE 32EC ADD R14,R2 00002AE0 8528 MOV.W @(16,R2),R0 00002AE2 3030 CMP/EQ R3,R0 00002AE4 8B75 BF L1741 Mines.c 1906 { Mines.c 1907 nFirstChar=ToUpper((intC) *(m_Treasure[nTreasure].szWeapon)); 00002AE6 648E EXTS.B R8,R4 00002AE8 6343 MOV R4,R3 00002AEA 4408 SHLL2 R4 00002AEC 343C ADD R3,R4 00002AEE 4408 SHLL2 R4 00002AF0 D32D MOV.L L2102+22,R3; __$ToUpper 00002AF2 34EC ADD R14,R4 00002AF4 5442 MOV.L @(8,R4),R4 00002AF6 430B JSR @R3 00002AF8 6440 MOV.B @R4,R4 00002AFA 6903 MOV R0,R9 Mines.c 1908 ++nItem; 00002AFC 62F0 MOV.B @R15,R2 00002AFE 7201 ADD #1,R2 00002B00 2F20 MOV.B R2,@R15 Mines.c 1909 if (nItem < nItems) 00002B02 622E EXTS.B R2,R2 00002B04 32C3 CMP/GE R12,R2 00002B06 892B BT L1756 Mines.c 1910 { Mines.c 1911 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar = += 'O') || (nFirstChar == 'U')) 00002B08 6093 MOV R9,R0 00002B0A 8841 CMP/EQ #65,R0 00002B0C 890B BT L1758 00002B0E 6093 MOV R9,R0 00002B10 8845 CMP/EQ #69,R0 00002B12 8908 BT L1758 00002B14 6093 MOV R9,R0 00002B16 8849 CMP/EQ #73,R0 00002B18 8905 BT L1758 00002B1A 6093 MOV R9,R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 135 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002B1C 884F CMP/EQ #79,R0 00002B1E 8902 BT L1758 00002B20 6093 MOV R9,R0 00002B22 8855 CMP/EQ #85,R0 00002B24 8B01 BF L1757 00002B26 L1758: Mines.c 1912 nBytes+=StrLen("an "); 00002B26 A001 BRA L1992 00002B28 64B3 MOV R11,R4 00002B2A L1757: Mines.c 1913 else Mines.c 1914 nBytes+=StrLen("a "); 00002B2A 64A3 MOV R10,R4 00002B2C L1992: 00002B2C D319 MOV.L L2102+2,R3 ; __$StrLen 00002B2E 430B JSR @R3 00002B30 0009 NOP 00002B32 3D0C ADD R0,R13 Mines.c 1915 nBytes+=StrLen(m_Treasure[nTreasure].szWeapon); 00002B34 D217 MOV.L L2102+2,R2 ; __$StrLen 00002B36 648E EXTS.B R8,R4 00002B38 6343 MOV R4,R3 00002B3A 4408 SHLL2 R4 00002B3C 343C ADD R3,R4 00002B3E 4408 SHLL2 R4 00002B40 34EC ADD R14,R4 00002B42 420B JSR @R2 00002B44 5442 MOV.L @(8,R4),R4 00002B46 3D0C ADD R0,R13 Mines.c 1916 if (nItems == 2) 00002B48 60C3 MOV R12,R0 00002B4A 8802 CMP/EQ #2,R0 00002B4C 8B02 BF L1760 Mines.c 1917 nBytes+=StrLen(" "); 00002B4E D412 MOV.L L2102+6,R4 ; L618 00002B50 A001 BRA L1993 00002B52 0009 NOP 00002B54 L1760: Mines.c 1918 else Mines.c 1919 nBytes+=StrLen(", "); 00002B54 D411 MOV.L L2102+10,R4; L858 00002B56 L1993: 00002B56 D20F MOV.L L2102+2,R2 ; __$StrLen 00002B58 420B JSR @R2 00002B5A 0009 NOP 00002B5C A039 BRA L1741 00002B5E 3D0C ADD R0,R13 00002B60 L1756: Mines.c 1920 } Mines.c 1921 else Mines.c 1922 { Mines.c 1923 if (nItems > 1) 00002B60 E201 MOV #1,R2 00002B62 3C27 CMP/GT R2,R12 00002B64 8B04 BF L1763 Mines.c 1924 nBytes+=StrLen("and "); 00002B66 D40E MOV.L L2102+14,R4; L825 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 136 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002B68 D10A MOV.L L2102+2,R1 ; __$StrLen 00002B6A 410B JSR @R1 00002B6C 0009 NOP 00002B6E 3D0C ADD R0,R13 00002B70 L1763: Mines.c 1925 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar = += 'O') || (nFirstChar == 'U')) 00002B70 6093 MOV R9,R0 00002B72 8841 CMP/EQ #65,R0 00002B74 890B BT L1765 00002B76 6093 MOV R9,R0 00002B78 8845 CMP/EQ #69,R0 00002B7A 8908 BT L1765 00002B7C 6093 MOV R9,R0 00002B7E 8849 CMP/EQ #73,R0 00002B80 8905 BT L1765 00002B82 6093 MOV R9,R0 00002B84 884F CMP/EQ #79,R0 00002B86 8902 BT L1765 00002B88 6093 MOV R9,R0 00002B8A 8855 CMP/EQ #85,R0 00002B8C 8B0E BF L1764 00002B8E L1765: Mines.c 1926 nBytes+=StrLen("an "); 00002B8E A00E BRA L1994 00002B90 64B3 MOV R11,R4 00002B92 L2102: 00002B92 0000 .DATA.W 0 00002B94 <00000000> .DATA.L __$StrLen 00002B98 <00000000> .DATA.L L618 00002B9C <00000000> .DATA.L L858 00002BA0 <00000000> .DATA.L L825 00002BA4 <00000000> .DATA.L L860 00002BA8 <00000000> .DATA.L __$ToUpper 00002BAC L1764: Mines.c 1927 else Mines.c 1928 nBytes+=StrLen("a "); 00002BAC 64A3 MOV R10,R4 00002BAE L1994: 00002BAE D238 MOV.L L2103+2,R2 ; __$StrLen 00002BB0 420B JSR @R2 00002BB2 0009 NOP Mines.c 1929 nBytes+=StrLen(m_Treasure[nTreasure].szWeapon); 00002BB4 D236 MOV.L L2103+2,R2 ; __$StrLen 00002BB6 3D0C ADD R0,R13 00002BB8 648E EXTS.B R8,R4 00002BBA 6343 MOV R4,R3 00002BBC 4408 SHLL2 R4 00002BBE 343C ADD R3,R4 00002BC0 4408 SHLL2 R4 00002BC2 34EC ADD R14,R4 00002BC4 420B JSR @R2 00002BC6 5442 MOV.L @(8,R4),R4 Mines.c 1930 nBytes+=StrLen(" here."); 00002BC8 D432 MOV.L L2103+6,R4 ; L860 00002BCA D331 MOV.L L2103+2,R3 ; __$StrLen 00002BCC 430B JSR @R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 137 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002BCE 3D0C ADD R0,R13 00002BD0 3D0C ADD R0,R13 00002BD2 L1741: 00002BD2 628E EXTS.B R8,R2 00002BD4 2228 TST R2,R2 00002BD6 8D02 BT/S L2104 00002BD8 78FF ADD #-1,R8 00002BDA AEE3 BRA L1742 00002BDC 0009 NOP 00002BDE L2104: Mines.c 1931 } Mines.c 1932 } Mines.c 1933 } Mines.c 1934 if (nBytes < SENTENCE_LEN) 00002BDE 6DDF EXTS.W R13,R13 00002BE0 9255 MOV.W L2103,R2 ; H'0400 00002BE2 3D23 CMP/GE R2,R13 00002BE4 8B01 BF L2105 00002BE6 A10F BRA L1767 00002BE8 0009 NOP 00002BEA L2105: Mines.c 1935 { Mines.c 1936 szText=&m_szMsg[0]; Mines.c 1937 if (nItems == 1) 00002BEA 60C3 MOV R12,R0 00002BEC D12A MOV.L L2103+10,R1; __$m_szMsg 00002BEE 8801 CMP/EQ #1,R0 00002BF0 8F03 BF/S L1768 00002BF2 6D12 MOV.L @R1,R13 Mines.c 1938 StrCpy(szText,"There is "); 00002BF4 D529 MOV.L L2103+14,R5; L851 00002BF6 A001 BRA L1995 00002BF8 0009 NOP 00002BFA L1768: Mines.c 1939 else Mines.c 1940 StrCpy(szText,"There are "); 00002BFA D529 MOV.L L2103+18,R5; L852 00002BFC L1995: 00002BFC D329 MOV.L L2103+22,R3; __$StrCpy 00002BFE 430B JSR @R3 00002C00 64D3 MOV R13,R4 Mines.c 1941 nItem=0; 00002C02 E200 MOV #0,R2 00002C04 2F20 MOV.B R2,@R15 Mines.c 1942 for (nTreasure=nTreasures; nTreasure--;) 00002C06 84FC MOV.B @(12,R15),R0 00002C08 A0EB BRA L1770 00002C0A 6803 MOV R0,R8 00002C0C L1771: 00002C0C 698E EXTS.B R8,R9 00002C0E 6393 MOV R9,R3 00002C10 4908 SHLL2 R9 00002C12 393C ADD R3,R9 00002C14 53F1 MOV.L @(4,R15),R3 00002C16 4908 SHLL2 R9 00002C18 39EC ADD R14,R9 00002C1A 8597 MOV.W @(14,R9),R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 138 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002C1C 3030 CMP/EQ R3,R0 00002C1E 8B75 BF L1772 Mines.c 1943 { Mines.c 1944 if (m_Treasure[nTreasure].pRoomTreasure == pRoom) Mines.c 1945 { Mines.c 1946 nFirstChar=ToUpper((intC) *(m_Treasure[nTreasure].szTreasure)); 00002C20 6492 MOV.L @R9,R4 00002C22 D321 MOV.L L2103+26,R3; __$ToUpper 00002C24 430B JSR @R3 00002C26 6440 MOV.B @R4,R4 Mines.c 1947 ++nItem; 00002C28 62F0 MOV.B @R15,R2 00002C2A 6903 MOV R0,R9 00002C2C 7201 ADD #1,R2 00002C2E 2F20 MOV.B R2,@R15 Mines.c 1948 if (nItem < nItems) 00002C30 622E EXTS.B R2,R2 00002C32 32C3 CMP/GE R12,R2 00002C34 8940 BT L1773 Mines.c 1949 { Mines.c 1950 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstCh +ar == 'O') || (nFirstChar == 'U')) 00002C36 6093 MOV R9,R0 00002C38 8841 CMP/EQ #65,R0 00002C3A 890B BT L1775 00002C3C 6093 MOV R9,R0 00002C3E 8845 CMP/EQ #69,R0 00002C40 8908 BT L1775 00002C42 6093 MOV R9,R0 00002C44 8849 CMP/EQ #73,R0 00002C46 8905 BT L1775 00002C48 6093 MOV R9,R0 00002C4A 884F CMP/EQ #79,R0 00002C4C 8902 BT L1775 00002C4E 6093 MOV R9,R0 00002C50 8855 CMP/EQ #85,R0 00002C52 8B01 BF L1774 00002C54 L1775: Mines.c 1951 StrCat(szText,"an "); 00002C54 A001 BRA L1996 00002C56 65B3 MOV R11,R5 00002C58 L1774: Mines.c 1952 else Mines.c 1953 StrCat(szText,"a "); 00002C58 65A3 MOV R10,R5 00002C5A L1996: 00002C5A D314 MOV.L L2103+30,R3; __$StrCat 00002C5C 430B JSR @R3 00002C5E 64D3 MOV R13,R4 Mines.c 1954 StrCat(szText,m_Treasure[nTreasure].szTreasure); 00002C60 D212 MOV.L L2103+30,R2; __$StrCat 00002C62 658E EXTS.B R8,R5 00002C64 6353 MOV R5,R3 00002C66 4508 SHLL2 R5 00002C68 353C ADD R3,R5 00002C6A 4508 SHLL2 R5 00002C6C 35EC ADD R14,R5 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 139 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002C6E 6552 MOV.L @R5,R5 00002C70 420B JSR @R2 00002C72 64D3 MOV R13,R4 Mines.c 1955 if (nItems == 2) 00002C74 60C3 MOV R12,R0 00002C76 8802 CMP/EQ #2,R0 00002C78 8F03 BF/S L1777 Mines.c 1956 StrCat(szText," "); 00002C7A 64D3 MOV R13,R4 00002C7C D50C MOV.L L2103+34,R5; L618 00002C7E A001 BRA L1997 00002C80 0009 NOP 00002C82 L1777: Mines.c 1957 else Mines.c 1958 StrCat(szText,", "); 00002C82 D50C MOV.L L2103+38,R5; L858 00002C84 L1997: 00002C84 D209 MOV.L L2103+30,R2; __$StrCat 00002C86 420B JSR @R2 00002C88 0009 NOP 00002C8A A03F BRA L1772 00002C8C 0009 NOP 00002C8E L2103: 00002C8E 0400 .DATA.W H'0400 00002C90 <00000000> .DATA.L __$StrLen 00002C94 <00000000> .DATA.L L860 00002C98 <00000000> .DATA.L __$m_szMsg 00002C9C <00000000> .DATA.L L851 00002CA0 <00000000> .DATA.L L852 00002CA4 <00000000> .DATA.L __$StrCpy 00002CA8 <00000000> .DATA.L __$ToUpper 00002CAC <00000000> .DATA.L __$StrCat 00002CB0 <00000000> .DATA.L L618 00002CB4 <00000000> .DATA.L L858 00002CB8 L1773: Mines.c 1959 } Mines.c 1960 else Mines.c 1961 { Mines.c 1962 if (nItems > 1) 00002CB8 E201 MOV #1,R2 00002CBA 3C27 CMP/GT R2,R12 00002CBC 8B03 BF L1780 Mines.c 1963 StrCat(szText,"and "); 00002CBE D585 MOV.L L2106+2,R5 ; L825 00002CC0 D185 MOV.L L2106+6,R1 ; __$StrCat 00002CC2 410B JSR @R1 00002CC4 64D3 MOV R13,R4 00002CC6 L1780: Mines.c 1964 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstCh +ar == 'O') || (nFirstChar == 'U')) 00002CC6 6093 MOV R9,R0 00002CC8 8841 CMP/EQ #65,R0 00002CCA 890B BT L1782 00002CCC 6093 MOV R9,R0 00002CCE 8845 CMP/EQ #69,R0 00002CD0 8908 BT L1782 00002CD2 6093 MOV R9,R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 140 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002CD4 8849 CMP/EQ #73,R0 00002CD6 8905 BT L1782 00002CD8 6093 MOV R9,R0 00002CDA 884F CMP/EQ #79,R0 00002CDC 8902 BT L1782 00002CDE 6093 MOV R9,R0 00002CE0 8855 CMP/EQ #85,R0 00002CE2 8B01 BF L1781 00002CE4 L1782: Mines.c 1965 StrCat(szText,"an "); 00002CE4 A001 BRA L1998 00002CE6 65B3 MOV R11,R5 00002CE8 L1781: Mines.c 1966 else Mines.c 1967 StrCat(szText,"a "); 00002CE8 65A3 MOV R10,R5 00002CEA L1998: 00002CEA D27B MOV.L L2106+6,R2 ; __$StrCat 00002CEC 420B JSR @R2 00002CEE 64D3 MOV R13,R4 Mines.c 1968 StrCat(szText,m_Treasure[nTreasure].szTreasure); 00002CF0 D279 MOV.L L2106+6,R2 ; __$StrCat 00002CF2 658E EXTS.B R8,R5 00002CF4 6353 MOV R5,R3 00002CF6 4508 SHLL2 R5 00002CF8 353C ADD R3,R5 00002CFA 4508 SHLL2 R5 00002CFC 35EC ADD R14,R5 00002CFE 6552 MOV.L @R5,R5 00002D00 420B JSR @R2 00002D02 64D3 MOV R13,R4 Mines.c 1969 StrCat(szText," here."); 00002D04 D575 MOV.L L2106+10,R5; L860 00002D06 D374 MOV.L L2106+6,R3 ; __$StrCat 00002D08 430B JSR @R3 00002D0A 64D3 MOV R13,R4 00002D0C L1772: 00002D0C 698E EXTS.B R8,R9 00002D0E 6393 MOV R9,R3 00002D10 4908 SHLL2 R9 00002D12 393C ADD R3,R9 00002D14 53F1 MOV.L @(4,R15),R3 00002D16 4908 SHLL2 R9 00002D18 39EC ADD R14,R9 00002D1A 8598 MOV.W @(16,R9),R0 00002D1C 3030 CMP/EQ R3,R0 00002D1E 8B60 BF L1770 Mines.c 1970 } Mines.c 1971 } Mines.c 1972 if (m_Treasure[nTreasure].pRoomWeapon == pRoom) Mines.c 1973 { Mines.c 1974 nFirstChar=ToUpper((intC) *(m_Treasure[nTreasure].szWeapon)); 00002D20 5492 MOV.L @(8,R9),R4 00002D22 D36F MOV.L L2106+14,R3; __$ToUpper 00002D24 430B JSR @R3 00002D26 6440 MOV.B @R4,R4 Mines.c 1975 ++nItem; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 141 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002D28 62F0 MOV.B @R15,R2 00002D2A 6903 MOV R0,R9 00002D2C 7201 ADD #1,R2 00002D2E 2F20 MOV.B R2,@R15 Mines.c 1976 if (nItem < nItems) 00002D30 622E EXTS.B R2,R2 00002D32 32C3 CMP/GE R12,R2 00002D34 892B BT L1785 Mines.c 1977 { Mines.c 1978 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstCh +ar == 'O') || (nFirstChar == 'U')) 00002D36 6093 MOV R9,R0 00002D38 8841 CMP/EQ #65,R0 00002D3A 890B BT L1787 00002D3C 6093 MOV R9,R0 00002D3E 8845 CMP/EQ #69,R0 00002D40 8908 BT L1787 00002D42 6093 MOV R9,R0 00002D44 8849 CMP/EQ #73,R0 00002D46 8905 BT L1787 00002D48 6093 MOV R9,R0 00002D4A 884F CMP/EQ #79,R0 00002D4C 8902 BT L1787 00002D4E 6093 MOV R9,R0 00002D50 8855 CMP/EQ #85,R0 00002D52 8B01 BF L1786 00002D54 L1787: Mines.c 1979 StrCat(szText,"an "); 00002D54 A001 BRA L1999 00002D56 65B3 MOV R11,R5 00002D58 L1786: Mines.c 1980 else Mines.c 1981 StrCat(szText,"a "); 00002D58 65A3 MOV R10,R5 00002D5A L1999: 00002D5A D35F MOV.L L2106+6,R3 ; __$StrCat 00002D5C 430B JSR @R3 00002D5E 64D3 MOV R13,R4 Mines.c 1982 StrCat(szText,m_Treasure[nTreasure].szWeapon); 00002D60 D25D MOV.L L2106+6,R2 ; __$StrCat 00002D62 658E EXTS.B R8,R5 00002D64 6353 MOV R5,R3 00002D66 4508 SHLL2 R5 00002D68 353C ADD R3,R5 00002D6A 4508 SHLL2 R5 00002D6C 35EC ADD R14,R5 00002D6E 5552 MOV.L @(8,R5),R5 00002D70 420B JSR @R2 00002D72 64D3 MOV R13,R4 Mines.c 1983 if (nItems == 2) 00002D74 60C3 MOV R12,R0 00002D76 8802 CMP/EQ #2,R0 00002D78 8F03 BF/S L1789 Mines.c 1984 StrCat(szText," "); 00002D7A 64D3 MOV R13,R4 00002D7C D559 MOV.L L2106+18,R5; L618 00002D7E A001 BRA L2000 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 142 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002D80 0009 NOP 00002D82 L1789: Mines.c 1985 else Mines.c 1986 StrCat(szText,", "); 00002D82 D559 MOV.L L2106+22,R5; L858 00002D84 L2000: 00002D84 D254 MOV.L L2106+6,R2 ; __$StrCat 00002D86 420B JSR @R2 00002D88 0009 NOP 00002D8A A02A BRA L1770 00002D8C 0009 NOP 00002D8E L1785: Mines.c 1987 } Mines.c 1988 else Mines.c 1989 { Mines.c 1990 if (nItems > 1) 00002D8E E201 MOV #1,R2 00002D90 3C27 CMP/GT R2,R12 00002D92 8B03 BF L1792 Mines.c 1991 StrCat(szText,"and "); 00002D94 D54F MOV.L L2106+2,R5 ; L825 00002D96 D150 MOV.L L2106+6,R1 ; __$StrCat 00002D98 410B JSR @R1 00002D9A 64D3 MOV R13,R4 00002D9C L1792: Mines.c 1992 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstCh +ar == 'O') || (nFirstChar == 'U')) 00002D9C 6093 MOV R9,R0 00002D9E 8841 CMP/EQ #65,R0 00002DA0 890B BT L1794 00002DA2 6093 MOV R9,R0 00002DA4 8845 CMP/EQ #69,R0 00002DA6 8908 BT L1794 00002DA8 6093 MOV R9,R0 00002DAA 8849 CMP/EQ #73,R0 00002DAC 8905 BT L1794 00002DAE 6093 MOV R9,R0 00002DB0 884F CMP/EQ #79,R0 00002DB2 8902 BT L1794 00002DB4 6093 MOV R9,R0 00002DB6 8855 CMP/EQ #85,R0 00002DB8 8B01 BF L1793 00002DBA L1794: Mines.c 1993 StrCat(szText,"an "); 00002DBA A001 BRA L2001 00002DBC 65B3 MOV R11,R5 00002DBE L1793: Mines.c 1994 else Mines.c 1995 StrCat(szText,"a "); 00002DBE 65A3 MOV R10,R5 00002DC0 L2001: 00002DC0 D245 MOV.L L2106+6,R2 ; __$StrCat 00002DC2 420B JSR @R2 00002DC4 64D3 MOV R13,R4 Mines.c 1996 StrCat(szText,m_Treasure[nTreasure].szWeapon); 00002DC6 658E EXTS.B R8,R5 00002DC8 D243 MOV.L L2106+6,R2 ; __$StrCat SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 143 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002DCA 6353 MOV R5,R3 00002DCC 4508 SHLL2 R5 00002DCE 353C ADD R3,R5 00002DD0 4508 SHLL2 R5 00002DD2 35EC ADD R14,R5 00002DD4 5552 MOV.L @(8,R5),R5 00002DD6 420B JSR @R2 00002DD8 64D3 MOV R13,R4 Mines.c 1997 StrCat(szText," here."); 00002DDA D540 MOV.L L2106+10,R5; L860 00002DDC D33E MOV.L L2106+6,R3 ; __$StrCat 00002DDE 430B JSR @R3 00002DE0 64D3 MOV R13,R4 00002DE2 L1770: 00002DE2 628E EXTS.B R8,R2 00002DE4 2228 TST R2,R2 00002DE6 8D02 BT/S L2107 00002DE8 78FF ADD #-1,R8 00002DEA AF0F BRA L1771 00002DEC 0009 NOP 00002DEE L2107: Mines.c 1998 } Mines.c 1999 } Mines.c 2000 } Mines.c 2001 DisplayText(szText,bErr); 00002DEE 64D3 MOV R13,R4 00002DF0 D33E MOV.L L2106+26,R3; __$DisplayText 00002DF2 55F2 MOV.L @(8,R15),R5 00002DF4 7F10 ADD #16,R15 00002DF6 4F26 LDS.L @R15+,PR 00002DF8 68F6 MOV.L @R15+,R8 00002DFA 69F6 MOV.L @R15+,R9 00002DFC 6AF6 MOV.L @R15+,R10 00002DFE 6BF6 MOV.L @R15+,R11 00002E00 6CF6 MOV.L @R15+,R12 00002E02 6DF6 MOV.L @R15+,R13 00002E04 432B JMP @R3 00002E06 6EF6 MOV.L @R15+,R14 00002E08 L1767: Mines.c 2002 } Mines.c 2003 else Mines.c 2004 { Mines.c 2005 DisplayText("Fatal error: memory was exhausted at location 22.",bErr); 00002E08 D439 MOV.L L2106+30,R4; L873 00002E0A D338 MOV.L L2106+26,R3; __$DisplayText 00002E0C 430B JSR @R3 00002E0E 55F2 MOV.L @(8,R15),R5 Mines.c 2006 *bErr=TRUE; 00002E10 52F2 MOV.L @(8,R15),R2 00002E12 E301 MOV #1,R3 00002E14 2230 MOV.B R3,@R2 Mines.c 2007 } Mines.c 2008 } Mines.c 2009 return; Mines.c 2010 } 00002E16 L1797: 00002E16 7F10 ADD #16,R15 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 144 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002E18 4F26 LDS.L @R15+,PR 00002E1A 68F6 MOV.L @R15+,R8 00002E1C 69F6 MOV.L @R15+,R9 00002E1E 6AF6 MOV.L @R15+,R10 00002E20 6BF6 MOV.L @R15+,R11 00002E22 6CF6 MOV.L @R15+,R12 00002E24 6DF6 MOV.L @R15+,R13 00002E26 000B RTS 00002E28 6EF6 MOV.L @R15+,R14 Mines.c 2011 Mines.c 2012 static void Carry( 00002E2A __$Carry: ; function: Carry ; frame size=12 00002E2A 2FE6 MOV.L R14,@-R15 00002E2C 2FD6 MOV.L R13,@-R15 00002E2E 7FFC ADD #-4,R15 Mines.c 2013 int16 pRoom, Mines.c 2014 int8 nTreasures, Mines.c 2015 int8 *bErr) Mines.c 2016 { Mines.c 2017 int8 nPickedUp; Mines.c 2018 int8 nTreasure; Mines.c 2019 Mines.c 2020 nPickedUp=0; Mines.c 2021 for (nTreasure=nTreasures; nTreasure--;) 00002E30 DE30 MOV.L L2106+34,R14; __$m_Treasure 00002E32 ED00 MOV #0,R13 00002E34 2F62 MOV.L R6,@R15 00002E36 E6FF MOV #-1,R6 00002E38 A019 BRA L1798 00002E3A 6753 MOV R5,R7 00002E3C L1799: 00002E3C 657E EXTS.B R7,R5 00002E3E 6353 MOV R5,R3 00002E40 4508 SHLL2 R5 00002E42 353C ADD R3,R5 00002E44 4508 SHLL2 R5 00002E46 35EC ADD R14,R5 00002E48 8558 MOV.W @(16,R5),R0 00002E4A 614F EXTS.W R4,R1 00002E4C 3010 CMP/EQ R1,R0 00002E4E 8B02 BF L1800 Mines.c 2022 { Mines.c 2023 if (m_Treasure[nTreasure].pRoomWeapon == pRoom) Mines.c 2024 { Mines.c 2025 ++nPickedUp; 00002E50 7D01 ADD #1,R13 Mines.c 2026 m_Treasure[nTreasure].pRoomWeapon=-1; 00002E52 6063 MOV R6,R0 00002E54 8158 MOV.W R0,@(16,R5) 00002E56 L1800: 00002E56 657E EXTS.B R7,R5 00002E58 6353 MOV R5,R3 00002E5A 4508 SHLL2 R5 00002E5C 353C ADD R3,R5 00002E5E 4508 SHLL2 R5 00002E60 35EC ADD R14,R5 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 145 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002E62 8557 MOV.W @(14,R5),R0 00002E64 3010 CMP/EQ R1,R0 00002E66 8B02 BF L1798 Mines.c 2027 } Mines.c 2028 if (m_Treasure[nTreasure].pRoomTreasure == pRoom) Mines.c 2029 { Mines.c 2030 ++nPickedUp; 00002E68 7D01 ADD #1,R13 Mines.c 2031 m_Treasure[nTreasure].pRoomTreasure=-1; 00002E6A 6063 MOV R6,R0 00002E6C 8157 MOV.W R0,@(14,R5) 00002E6E L1798: 00002E6E 637E EXTS.B R7,R3 00002E70 2338 TST R3,R3 00002E72 8FE3 BF/S L1799 00002E74 77FF ADD #-1,R7 Mines.c 2032 } Mines.c 2033 } Mines.c 2034 if (nPickedUp == 0) 00002E76 6DDE EXTS.B R13,R13 00002E78 2DD8 TST R13,R13 00002E7A 8B06 BF L1803 Mines.c 2035 DisplayText("There is nothing to carry.",bErr); 00002E7C 65F2 MOV.L @R15,R5 00002E7E 7F04 ADD #4,R15 00002E80 D31A MOV.L L2106+26,R3; __$DisplayText 00002E82 D41D MOV.L L2106+38,R4; L883 00002E84 6DF6 MOV.L @R15+,R13 00002E86 432B JMP @R3 00002E88 6EF6 MOV.L @R15+,R14 00002E8A L1803: Mines.c 2036 return; Mines.c 2037 } 00002E8A 7F04 ADD #4,R15 00002E8C 6DF6 MOV.L @R15+,R13 00002E8E 000B RTS 00002E90 6EF6 MOV.L @R15+,R14 Mines.c 2038 Mines.c 2039 static void Leave( 00002E92 __$Leave: ; function: Leave ; frame size=4 00002E92 7FFC ADD #-4,R15 Mines.c 2040 int16 pRoom, Mines.c 2041 int8 nTreasures, Mines.c 2042 int8 *bErr) Mines.c 2043 { Mines.c 2044 int8 nLeft; Mines.c 2045 int8 nTreasure; Mines.c 2046 Mines.c 2047 nLeft=0; Mines.c 2048 for (nTreasure=nTreasures; nTreasure--;) 00002E94 D117 MOV.L L2106+34,R1; __$m_Treasure 00002E96 E700 MOV #0,R7 00002E98 2F62 MOV.L R6,@R15 00002E9A A00C BRA L1804 00002E9C 6653 MOV R5,R6 00002E9E L1805: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 146 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002E9E 656E EXTS.B R6,R5 00002EA0 6353 MOV R5,R3 00002EA2 4508 SHLL2 R5 00002EA4 353C ADD R3,R5 00002EA6 4508 SHLL2 R5 00002EA8 351C ADD R1,R5 00002EAA 8557 MOV.W @(14,R5),R0 00002EAC 88FF CMP/EQ #-1,R0 00002EAE 8B02 BF L1804 Mines.c 2049 if (m_Treasure[nTreasure].pRoomTreasure == -1) Mines.c 2050 { Mines.c 2051 ++nLeft; 00002EB0 7701 ADD #1,R7 Mines.c 2052 m_Treasure[nTreasure].pRoomTreasure=pRoom; 00002EB2 6043 MOV R4,R0 00002EB4 8157 MOV.W R0,@(14,R5) 00002EB6 L1804: 00002EB6 636E EXTS.B R6,R3 00002EB8 2338 TST R3,R3 00002EBA 8FF0 BF/S L1805 00002EBC 76FF ADD #-1,R6 Mines.c 2053 } Mines.c 2054 if (nLeft == 0) 00002EBE 677E EXTS.B R7,R7 00002EC0 2778 TST R7,R7 00002EC2 8B04 BF L1808 Mines.c 2055 DisplayText("You aren\'t carrying anything to leave.",bErr); 00002EC4 65F2 MOV.L @R15,R5 00002EC6 D40D MOV.L L2106+42,R4; L891 00002EC8 D308 MOV.L L2106+26,R3; __$DisplayText 00002ECA 432B JMP @R3 00002ECC 7F04 ADD #4,R15 00002ECE L1808: Mines.c 2056 return; Mines.c 2057 } 00002ECE 000B RTS 00002ED0 7F04 ADD #4,R15 00002ED2 L2106: 00002ED2 0000 .DATA.W 0 00002ED4 <00000000> .DATA.L L825 00002ED8 <00000000> .DATA.L __$StrCat 00002EDC <00000000> .DATA.L L860 00002EE0 <00000000> .DATA.L __$ToUpper 00002EE4 <00000000> .DATA.L L618 00002EE8 <00000000> .DATA.L L858 00002EEC <00000000> .DATA.L __$DisplayText 00002EF0 <00000000> .DATA.L L873 00002EF4 <00000000> .DATA.L __$m_Treasure 00002EF8 <00000000> .DATA.L L883 00002EFC <00000000> .DATA.L L891 Mines.c 2058 Mines.c 2059 static void Inventory( 00002F00 __$Inventory: ; function: Inventory ; frame size=52 00002F00 2FE6 MOV.L R14,@-R15 00002F02 6043 MOV R4,R0 00002F04 2FD6 MOV.L R13,@-R15 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 147 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002F06 2FC6 MOV.L R12,@-R15 00002F08 2FB6 MOV.L R11,@-R15 00002F0A 2FA6 MOV.L R10,@-R15 00002F0C 2F96 MOV.L R9,@-R15 Mines.c 2060 int16 nChokepoints, Mines.c 2061 int8 nTreasures, Mines.c 2062 int8 *bErr) Mines.c 2063 { Mines.c 2064 int16 nBytes; Mines.c 2065 intC nFirstChar; Mines.c 2066 int8 nItem; Mines.c 2067 int8 nItems; Mines.c 2068 int8 nTreasure; Mines.c 2069 char *szText; Mines.c 2070 Mines.c 2071 nItems=0; 00002F0E E900 MOV #0,R9 Mines.c 2072 for (nTreasure=nTreasures; nTreasure--;) 00002F10 DE77 MOV.L L2108+2,R14; __$m_Treasure 00002F12 2F86 MOV.L R8,@-R15 00002F14 4F22 STS.L PR,@-R15 00002F16 7FEC ADD #-20,R15 00002F18 81F6 MOV.W R0,@(12,R15) 00002F1A E010 MOV #16,R0 00002F1C 0F54 MOV.B R5,@(R0,R15) 00002F1E E010 MOV #16,R0 00002F20 1F62 MOV.L R6,@(8,R15) 00002F22 A00A BRA L1809 00002F24 04FC MOV.B @(R0,R15),R4 00002F26 L1810: Mines.c 2073 if (m_Treasure[nTreasure].pRoomTreasure == -1) 00002F26 604E EXTS.B R4,R0 00002F28 6303 MOV R0,R3 00002F2A 4008 SHLL2 R0 00002F2C 303C ADD R3,R0 00002F2E 4008 SHLL2 R0 00002F30 30EC ADD R14,R0 00002F32 8507 MOV.W @(14,R0),R0 00002F34 88FF CMP/EQ #-1,R0 00002F36 8B00 BF L1809 Mines.c 2074 ++nItems; 00002F38 7901 ADD #1,R9 00002F3A L1809: 00002F3A 624E EXTS.B R4,R2 00002F3C 2228 TST R2,R2 00002F3E 8FF2 BF/S L1810 00002F40 74FF ADD #-1,R4 Mines.c 2075 for (nTreasure=nChokepoints; nTreasure--;) 00002F42 85F6 MOV.W @(12,R15),R0 00002F44 A00D BRA L1812 00002F46 6403 MOV R0,R4 00002F48 L1813: Mines.c 2076 if ((m_Treasure[nTreasure].pRoomWeapon == -1) && (! m_Treasure[nTreasure].bSlain)) 00002F48 654E EXTS.B R4,R5 00002F4A 6353 MOV R5,R3 00002F4C 4508 SHLL2 R5 00002F4E 353C ADD R3,R5 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 148 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002F50 4508 SHLL2 R5 00002F52 35EC ADD R14,R5 00002F54 8558 MOV.W @(16,R5),R0 00002F56 88FF CMP/EQ #-1,R0 00002F58 8B03 BF L1812 00002F5A 845C MOV.B @(12,R5),R0 00002F5C 2008 TST R0,R0 00002F5E 8B00 BF L1812 Mines.c 2077 ++nItems; 00002F60 7901 ADD #1,R9 00002F62 L1812: 00002F62 634E EXTS.B R4,R3 00002F64 2338 TST R3,R3 00002F66 8FEF BF/S L1813 00002F68 74FF ADD #-1,R4 Mines.c 2078 if (nItems) 00002F6A 619E EXTS.B R9,R1 00002F6C 2118 TST R1,R1 00002F6E 8B01 BF L2109 00002F70 A24C BRA L1815 00002F72 0009 NOP 00002F74 L2109: Mines.c 2079 { Mines.c 2080 nBytes=0; Mines.c 2081 nItem=0; Mines.c 2082 szText=&m_szMsg[0]; Mines.c 2083 nBytes+=StrLen("You are carrying "); 00002F74 D45F MOV.L L2108+6,R4 ; L903 00002F76 ED00 MOV #0,R13 00002F78 D35F MOV.L L2108+10,R3; __$StrLen 00002F7A 60D3 MOV R13,R0 00002F7C 430B JSR @R3 00002F7E 80F4 MOV.B R0,@(4,R15) 00002F80 DA5E MOV.L L2108+14,R10; L857 00002F82 3D0C ADD R0,R13 00002F84 DB5E MOV.L L2108+18,R11; L856 00002F86 E801 MOV #1,R8 Mines.c 2084 for (nTreasure=nTreasures; nTreasure--;) 00002F88 E010 MOV #16,R0 00002F8A 02FC MOV.B @(R0,R15),R2 00002F8C 2F20 MOV.B R2,@R15 00002F8E A071 BRA L1816 00002F90 6C9E EXTS.B R9,R12 00002F92 L1817: Mines.c 2085 if (m_Treasure[nTreasure].pRoomTreasure == -1) 00002F92 60F0 MOV.B @R15,R0 00002F94 6303 MOV R0,R3 00002F96 4008 SHLL2 R0 00002F98 303C ADD R3,R0 00002F9A 4008 SHLL2 R0 00002F9C 30EC ADD R14,R0 00002F9E 8507 MOV.W @(14,R0),R0 00002FA0 88FF CMP/EQ #-1,R0 00002FA2 8B67 BF L1816 Mines.c 2086 { Mines.c 2087 nFirstChar=ToUpper((intC) *(m_Treasure[nTreasure].szTreasure)); 00002FA4 64F0 MOV.B @R15,R4 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 149 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002FA6 6343 MOV R4,R3 00002FA8 4408 SHLL2 R4 00002FAA 343C ADD R3,R4 00002FAC D355 MOV.L L2108+22,R3; __$ToUpper 00002FAE 4408 SHLL2 R4 00002FB0 34EC ADD R14,R4 00002FB2 6442 MOV.L @R4,R4 00002FB4 430B JSR @R3 00002FB6 6440 MOV.B @R4,R4 00002FB8 6903 MOV R0,R9 Mines.c 2088 ++nItem; 00002FBA 84F4 MOV.B @(4,R15),R0 00002FBC 7001 ADD #1,R0 00002FBE 80F4 MOV.B R0,@(4,R15) Mines.c 2089 if (nItem < nItems) 00002FC0 600E EXTS.B R0,R0 00002FC2 30C3 CMP/GE R12,R0 00002FC4 892B BT L1819 Mines.c 2090 { Mines.c 2091 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar == +'O') || (nFirstChar == 'U')) 00002FC6 6093 MOV R9,R0 00002FC8 8841 CMP/EQ #65,R0 00002FCA 890B BT L1821 00002FCC 6093 MOV R9,R0 00002FCE 8845 CMP/EQ #69,R0 00002FD0 8908 BT L1821 00002FD2 6093 MOV R9,R0 00002FD4 8849 CMP/EQ #73,R0 00002FD6 8905 BT L1821 00002FD8 6093 MOV R9,R0 00002FDA 884F CMP/EQ #79,R0 00002FDC 8902 BT L1821 00002FDE 6093 MOV R9,R0 00002FE0 8855 CMP/EQ #85,R0 00002FE2 8B01 BF L1820 00002FE4 L1821: Mines.c 2092 nBytes+=StrLen("an "); 00002FE4 A001 BRA L2002 00002FE6 64B3 MOV R11,R4 00002FE8 L1820: Mines.c 2093 else Mines.c 2094 nBytes+=StrLen("a "); 00002FE8 64A3 MOV R10,R4 00002FEA L2002: 00002FEA D343 MOV.L L2108+10,R3; __$StrLen 00002FEC 430B JSR @R3 00002FEE 0009 NOP Mines.c 2095 nBytes+=StrLen(m_Treasure[nTreasure].szTreasure); 00002FF0 64F0 MOV.B @R15,R4 00002FF2 3D0C ADD R0,R13 00002FF4 D240 MOV.L L2108+10,R2; __$StrLen 00002FF6 6343 MOV R4,R3 00002FF8 4408 SHLL2 R4 00002FFA 343C ADD R3,R4 00002FFC 4408 SHLL2 R4 00002FFE 34EC ADD R14,R4 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 150 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003000 420B JSR @R2 00003002 6442 MOV.L @R4,R4 00003004 3D0C ADD R0,R13 Mines.c 2096 if (nItems == 2) 00003006 60C3 MOV R12,R0 00003008 8802 CMP/EQ #2,R0 0000300A 8B02 BF L1823 Mines.c 2097 nBytes+=StrLen(" "); 0000300C D43E MOV.L L2108+26,R4; L618 0000300E A001 BRA L2003 00003010 0009 NOP 00003012 L1823: Mines.c 2098 else Mines.c 2099 nBytes+=StrLen(", "); 00003012 D43E MOV.L L2108+30,R4; L858 00003014 L2003: 00003014 D238 MOV.L L2108+10,R2; __$StrLen 00003016 420B JSR @R2 00003018 0009 NOP 0000301A A02B BRA L1816 0000301C 3D0C ADD R0,R13 0000301E L1819: Mines.c 2100 } Mines.c 2101 else Mines.c 2102 { Mines.c 2103 if (nItems > 1) 0000301E 3C87 CMP/GT R8,R12 00003020 8B04 BF L1826 Mines.c 2104 nBytes+=StrLen("and "); 00003022 D43B MOV.L L2108+34,R4; L825 00003024 D334 MOV.L L2108+10,R3; __$StrLen 00003026 430B JSR @R3 00003028 0009 NOP 0000302A 3D0C ADD R0,R13 0000302C L1826: Mines.c 2105 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar == +'O') || (nFirstChar == 'U')) 0000302C 6093 MOV R9,R0 0000302E 8841 CMP/EQ #65,R0 00003030 890B BT L1828 00003032 6093 MOV R9,R0 00003034 8845 CMP/EQ #69,R0 00003036 8908 BT L1828 00003038 6093 MOV R9,R0 0000303A 8849 CMP/EQ #73,R0 0000303C 8905 BT L1828 0000303E 6093 MOV R9,R0 00003040 884F CMP/EQ #79,R0 00003042 8902 BT L1828 00003044 6093 MOV R9,R0 00003046 8855 CMP/EQ #85,R0 00003048 8B01 BF L1827 0000304A L1828: Mines.c 2106 nBytes+=StrLen("an "); 0000304A A001 BRA L2004 0000304C 64B3 MOV R11,R4 0000304E L1827: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 151 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 2107 else Mines.c 2108 nBytes+=StrLen("a "); 0000304E 64A3 MOV R10,R4 00003050 L2004: 00003050 D329 MOV.L L2108+10,R3; __$StrLen 00003052 430B JSR @R3 00003054 0009 NOP 00003056 3D0C ADD R0,R13 Mines.c 2109 nBytes+=StrLen(m_Treasure[nTreasure].szTreasure); 00003058 64F0 MOV.B @R15,R4 0000305A 6343 MOV R4,R3 0000305C D226 MOV.L L2108+10,R2; __$StrLen 0000305E 4408 SHLL2 R4 00003060 343C ADD R3,R4 00003062 4408 SHLL2 R4 00003064 34EC ADD R14,R4 00003066 420B JSR @R2 00003068 6442 MOV.L @R4,R4 Mines.c 2110 nBytes+=StrLen("."); 0000306A D42A MOV.L L2108+38,R4; L826 0000306C D322 MOV.L L2108+10,R3; __$StrLen 0000306E 430B JSR @R3 00003070 3D0C ADD R0,R13 00003072 3D0C ADD R0,R13 00003074 L1816: 00003074 62F0 MOV.B @R15,R2 00003076 72FF ADD #-1,R2 00003078 2F20 MOV.B R2,@R15 0000307A 7201 ADD #1,R2 0000307C 622E EXTS.B R2,R2 0000307E 2228 TST R2,R2 00003080 8B87 BF L1817 Mines.c 2111 } Mines.c 2112 } Mines.c 2113 for (nTreasure=nChokepoints; nTreasure--;) 00003082 85F6 MOV.W @(12,R15),R0 00003084 6103 MOV R0,R1 00003086 A08D BRA L1830 00003088 2F10 MOV.B R1,@R15 0000308A L1831: Mines.c 2114 if ((m_Treasure[nTreasure].pRoomWeapon == -1) && (! m_Treasure[nTreasure].bSlain)) 0000308A 64F0 MOV.B @R15,R4 0000308C 6343 MOV R4,R3 0000308E 4408 SHLL2 R4 00003090 343C ADD R3,R4 00003092 4408 SHLL2 R4 00003094 34EC ADD R14,R4 00003096 8548 MOV.W @(16,R4),R0 00003098 88FF CMP/EQ #-1,R0 0000309A 8901 BT L2110 0000309C A082 BRA L1830 0000309E 0009 NOP 000030A0 L2110: 000030A0 844C MOV.B @(12,R4),R0 000030A2 2008 TST R0,R0 000030A4 8901 BT L2111 000030A6 A07D BRA L1830 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 152 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000030A8 0009 NOP 000030AA L2111: Mines.c 2115 { Mines.c 2116 nFirstChar=ToUpper((intC) *(m_Treasure[nTreasure].szWeapon)); 000030AA 64F0 MOV.B @R15,R4 000030AC 6343 MOV R4,R3 000030AE 4408 SHLL2 R4 000030B0 343C ADD R3,R4 000030B2 4408 SHLL2 R4 000030B4 D313 MOV.L L2108+22,R3; __$ToUpper 000030B6 34EC ADD R14,R4 000030B8 5442 MOV.L @(8,R4),R4 000030BA 430B JSR @R3 000030BC 6440 MOV.B @R4,R4 000030BE 6903 MOV R0,R9 Mines.c 2117 ++nItem; 000030C0 84F4 MOV.B @(4,R15),R0 000030C2 7001 ADD #1,R0 000030C4 80F4 MOV.B R0,@(4,R15) Mines.c 2118 if (nItem < nItems) 000030C6 600E EXTS.B R0,R0 000030C8 30C3 CMP/GE R12,R0 000030CA 8940 BT L1833 Mines.c 2119 { Mines.c 2120 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar == +'O') || (nFirstChar == 'U')) 000030CC 6093 MOV R9,R0 000030CE 8841 CMP/EQ #65,R0 000030D0 890B BT L1835 000030D2 6093 MOV R9,R0 000030D4 8845 CMP/EQ #69,R0 000030D6 8908 BT L1835 000030D8 6093 MOV R9,R0 000030DA 8849 CMP/EQ #73,R0 000030DC 8905 BT L1835 000030DE 6093 MOV R9,R0 000030E0 884F CMP/EQ #79,R0 000030E2 8902 BT L1835 000030E4 6093 MOV R9,R0 000030E6 8855 CMP/EQ #85,R0 000030E8 8B16 BF L1834 000030EA L1835: Mines.c 2121 nBytes+=StrLen("an "); 000030EA A016 BRA L2005 000030EC 64B3 MOV R11,R4 000030EE L2108: 000030EE 0000 .DATA.W 0 000030F0 <00000000> .DATA.L __$m_Treasure 000030F4 <00000000> .DATA.L L903 000030F8 <00000000> .DATA.L __$StrLen 000030FC <00000000> .DATA.L L857 00003100 <00000000> .DATA.L L856 00003104 <00000000> .DATA.L __$ToUpper 00003108 <00000000> .DATA.L L618 0000310C <00000000> .DATA.L L858 00003110 <00000000> .DATA.L L825 00003114 <00000000> .DATA.L L826 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 153 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003118 L1834: Mines.c 2122 else Mines.c 2123 nBytes+=StrLen("a "); 00003118 64A3 MOV R10,R4 0000311A L2005: 0000311A D330 MOV.L L2112+2,R3 ; __$StrLen 0000311C 430B JSR @R3 0000311E 0009 NOP Mines.c 2124 nBytes+=StrLen(m_Treasure[nTreasure].szWeapon); 00003120 64F0 MOV.B @R15,R4 00003122 3D0C ADD R0,R13 00003124 D22D MOV.L L2112+2,R2 ; __$StrLen 00003126 6343 MOV R4,R3 00003128 4408 SHLL2 R4 0000312A 343C ADD R3,R4 0000312C 4408 SHLL2 R4 0000312E 34EC ADD R14,R4 00003130 420B JSR @R2 00003132 5442 MOV.L @(8,R4),R4 00003134 3D0C ADD R0,R13 Mines.c 2125 if (nItems == 2) 00003136 60C3 MOV R12,R0 00003138 8802 CMP/EQ #2,R0 0000313A 8B02 BF L1837 Mines.c 2126 nBytes+=StrLen(" "); 0000313C D428 MOV.L L2112+6,R4 ; L618 0000313E A001 BRA L2006 00003140 0009 NOP 00003142 L1837: Mines.c 2127 else Mines.c 2128 nBytes+=StrLen(", "); 00003142 D428 MOV.L L2112+10,R4; L858 00003144 L2006: 00003144 D225 MOV.L L2112+2,R2 ; __$StrLen 00003146 420B JSR @R2 00003148 0009 NOP 0000314A A02B BRA L1830 0000314C 3D0C ADD R0,R13 0000314E L1833: Mines.c 2129 } Mines.c 2130 else Mines.c 2131 { Mines.c 2132 if (nItems > 1) 0000314E 3C87 CMP/GT R8,R12 00003150 8B04 BF L1840 Mines.c 2133 nBytes+=StrLen("and "); 00003152 D425 MOV.L L2112+14,R4; L825 00003154 D321 MOV.L L2112+2,R3 ; __$StrLen 00003156 430B JSR @R3 00003158 0009 NOP 0000315A 3D0C ADD R0,R13 0000315C L1840: Mines.c 2134 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar == +'O') || (nFirstChar == 'U')) 0000315C 6093 MOV R9,R0 0000315E 8841 CMP/EQ #65,R0 00003160 890B BT L1842 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 154 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003162 6093 MOV R9,R0 00003164 8845 CMP/EQ #69,R0 00003166 8908 BT L1842 00003168 6093 MOV R9,R0 0000316A 8849 CMP/EQ #73,R0 0000316C 8905 BT L1842 0000316E 6093 MOV R9,R0 00003170 884F CMP/EQ #79,R0 00003172 8902 BT L1842 00003174 6093 MOV R9,R0 00003176 8855 CMP/EQ #85,R0 00003178 8B01 BF L1841 0000317A L1842: Mines.c 2135 nBytes+=StrLen("an "); 0000317A A001 BRA L2007 0000317C 64B3 MOV R11,R4 0000317E L1841: Mines.c 2136 else Mines.c 2137 nBytes+=StrLen("a "); 0000317E 64A3 MOV R10,R4 00003180 L2007: 00003180 D316 MOV.L L2112+2,R3 ; __$StrLen 00003182 430B JSR @R3 00003184 0009 NOP 00003186 3D0C ADD R0,R13 Mines.c 2138 nBytes+=StrLen(m_Treasure[nTreasure].szWeapon); 00003188 64F0 MOV.B @R15,R4 0000318A 6343 MOV R4,R3 0000318C D213 MOV.L L2112+2,R2 ; __$StrLen 0000318E 4408 SHLL2 R4 00003190 343C ADD R3,R4 00003192 4408 SHLL2 R4 00003194 34EC ADD R14,R4 00003196 420B JSR @R2 00003198 5442 MOV.L @(8,R4),R4 Mines.c 2139 nBytes+=StrLen("."); 0000319A D414 MOV.L L2112+18,R4; L826 0000319C D30F MOV.L L2112+2,R3 ; __$StrLen 0000319E 430B JSR @R3 000031A0 3D0C ADD R0,R13 000031A2 3D0C ADD R0,R13 000031A4 L1830: 000031A4 62F0 MOV.B @R15,R2 000031A6 72FF ADD #-1,R2 000031A8 2F20 MOV.B R2,@R15 000031AA 7201 ADD #1,R2 000031AC 622E EXTS.B R2,R2 000031AE 2228 TST R2,R2 000031B0 8901 BT L2113 000031B2 AF6A BRA L1831 000031B4 0009 NOP 000031B6 L2113: Mines.c 2140 } Mines.c 2141 } Mines.c 2142 if (nBytes < SENTENCE_LEN) 000031B6 6DDF EXTS.W R13,R13 000031B8 920F MOV.W L2112,R2 ; H'0400 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 155 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000031BA 3D23 CMP/GE R2,R13 000031BC 8B01 BF L2114 000031BE A10D BRA L1844 000031C0 0009 NOP 000031C2 L2114: Mines.c 2143 { Mines.c 2144 nItem=0; 000031C2 E000 MOV #0,R0 Mines.c 2145 szText=&m_szMsg[0]; 000031C4 D30A MOV.L L2112+22,R3; __$m_szMsg 000031C6 80F4 MOV.B R0,@(4,R15) 000031C8 6D32 MOV.L @R3,R13 Mines.c 2146 StrCpy(szText,"You are carrying "); 000031CA D50A MOV.L L2112+26,R5; L903 000031CC D10A MOV.L L2112+30,R1; __$StrCpy 000031CE 410B JSR @R1 000031D0 64D3 MOV R13,R4 Mines.c 2147 for (nTreasure=nTreasures; nTreasure--;) 000031D2 E010 MOV #16,R0 000031D4 03FC MOV.B @(R0,R15),R3 000031D6 A080 BRA L1845 000031D8 2F30 MOV.B R3,@R15 000031DA L2112: 000031DA 0400 .DATA.W H'0400 000031DC <00000000> .DATA.L __$StrLen 000031E0 <00000000> .DATA.L L618 000031E4 <00000000> .DATA.L L858 000031E8 <00000000> .DATA.L L825 000031EC <00000000> .DATA.L L826 000031F0 <00000000> .DATA.L __$m_szMsg 000031F4 <00000000> .DATA.L L903 000031F8 <00000000> .DATA.L __$StrCpy 000031FC L1846: Mines.c 2148 if (m_Treasure[nTreasure].pRoomTreasure == -1) 000031FC 60F0 MOV.B @R15,R0 000031FE 6303 MOV R0,R3 00003200 4008 SHLL2 R0 00003202 303C ADD R3,R0 00003204 4008 SHLL2 R0 00003206 30EC ADD R14,R0 00003208 8507 MOV.W @(14,R0),R0 0000320A 88FF CMP/EQ #-1,R0 0000320C 8B65 BF L1845 Mines.c 2149 { Mines.c 2150 nFirstChar=ToUpper((intC) *(m_Treasure[nTreasure].szTreasure)); 0000320E 64F0 MOV.B @R15,R4 00003210 6343 MOV R4,R3 00003212 4408 SHLL2 R4 00003214 343C ADD R3,R4 00003216 4408 SHLL2 R4 00003218 D374 MOV.L L2115+2,R3 ; __$ToUpper 0000321A 34EC ADD R14,R4 0000321C 6442 MOV.L @R4,R4 0000321E 430B JSR @R3 00003220 6440 MOV.B @R4,R4 00003222 6903 MOV R0,R9 Mines.c 2151 ++nItem; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 156 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003224 84F4 MOV.B @(4,R15),R0 00003226 7001 ADD #1,R0 00003228 80F4 MOV.B R0,@(4,R15) Mines.c 2152 if (nItem < nItems) 0000322A 600E EXTS.B R0,R0 0000322C 30C3 CMP/GE R12,R0 0000322E 892B BT L1848 Mines.c 2153 { Mines.c 2154 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar + == 'O') || (nFirstChar == 'U')) 00003230 6093 MOV R9,R0 00003232 8841 CMP/EQ #65,R0 00003234 890B BT L1850 00003236 6093 MOV R9,R0 00003238 8845 CMP/EQ #69,R0 0000323A 8908 BT L1850 0000323C 6093 MOV R9,R0 0000323E 8849 CMP/EQ #73,R0 00003240 8905 BT L1850 00003242 6093 MOV R9,R0 00003244 884F CMP/EQ #79,R0 00003246 8902 BT L1850 00003248 6093 MOV R9,R0 0000324A 8855 CMP/EQ #85,R0 0000324C 8B01 BF L1849 0000324E L1850: Mines.c 2155 StrCat(szText,"an "); 0000324E A001 BRA L2008 00003250 65B3 MOV R11,R5 00003252 L1849: Mines.c 2156 else Mines.c 2157 StrCat(szText,"a "); 00003252 65A3 MOV R10,R5 00003254 L2008: 00003254 D366 MOV.L L2115+6,R3 ; __$StrCat 00003256 430B JSR @R3 00003258 64D3 MOV R13,R4 Mines.c 2158 StrCat(szText,m_Treasure[nTreasure].szTreasure); 0000325A 65F0 MOV.B @R15,R5 0000325C D264 MOV.L L2115+6,R2 ; __$StrCat 0000325E 6353 MOV R5,R3 00003260 4508 SHLL2 R5 00003262 353C ADD R3,R5 00003264 4508 SHLL2 R5 00003266 35EC ADD R14,R5 00003268 6552 MOV.L @R5,R5 0000326A 420B JSR @R2 0000326C 64D3 MOV R13,R4 Mines.c 2159 if (nItems == 2) 0000326E 60C3 MOV R12,R0 00003270 8802 CMP/EQ #2,R0 00003272 8F03 BF/S L1852 Mines.c 2160 StrCat(szText," "); 00003274 64D3 MOV R13,R4 00003276 D55F MOV.L L2115+10,R5; L618 00003278 A001 BRA L2009 0000327A 0009 NOP SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 157 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000327C L1852: Mines.c 2161 else Mines.c 2162 StrCat(szText,", "); 0000327C D55E MOV.L L2115+14,R5; L858 0000327E L2009: 0000327E D25C MOV.L L2115+6,R2 ; __$StrCat 00003280 420B JSR @R2 00003282 0009 NOP 00003284 A029 BRA L1845 00003286 0009 NOP 00003288 L1848: Mines.c 2163 } Mines.c 2164 else Mines.c 2165 { Mines.c 2166 if (nItems > 1) 00003288 3C87 CMP/GT R8,R12 0000328A 8B03 BF L1855 Mines.c 2167 StrCat(szText,"and "); 0000328C D55B MOV.L L2115+18,R5; L825 0000328E D358 MOV.L L2115+6,R3 ; __$StrCat 00003290 430B JSR @R3 00003292 64D3 MOV R13,R4 00003294 L1855: Mines.c 2168 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar + == 'O') || (nFirstChar == 'U')) 00003294 6093 MOV R9,R0 00003296 8841 CMP/EQ #65,R0 00003298 890B BT L1857 0000329A 6093 MOV R9,R0 0000329C 8845 CMP/EQ #69,R0 0000329E 8908 BT L1857 000032A0 6093 MOV R9,R0 000032A2 8849 CMP/EQ #73,R0 000032A4 8905 BT L1857 000032A6 6093 MOV R9,R0 000032A8 884F CMP/EQ #79,R0 000032AA 8902 BT L1857 000032AC 6093 MOV R9,R0 000032AE 8855 CMP/EQ #85,R0 000032B0 8B01 BF L1856 000032B2 L1857: Mines.c 2169 StrCat(szText,"an "); 000032B2 A001 BRA L2010 000032B4 65B3 MOV R11,R5 000032B6 L1856: Mines.c 2170 else Mines.c 2171 StrCat(szText,"a "); 000032B6 65A3 MOV R10,R5 000032B8 L2010: 000032B8 D34D MOV.L L2115+6,R3 ; __$StrCat 000032BA 430B JSR @R3 000032BC 64D3 MOV R13,R4 Mines.c 2172 StrCat(szText,m_Treasure[nTreasure].szTreasure); 000032BE 65F0 MOV.B @R15,R5 000032C0 D24B MOV.L L2115+6,R2 ; __$StrCat 000032C2 6353 MOV R5,R3 000032C4 4508 SHLL2 R5 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 158 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000032C6 353C ADD R3,R5 000032C8 4508 SHLL2 R5 000032CA 35EC ADD R14,R5 000032CC 6552 MOV.L @R5,R5 000032CE 420B JSR @R2 000032D0 64D3 MOV R13,R4 Mines.c 2173 StrCat(szText,"."); 000032D2 D54B MOV.L L2115+22,R5; L826 000032D4 D346 MOV.L L2115+6,R3 ; __$StrCat 000032D6 430B JSR @R3 000032D8 64D3 MOV R13,R4 000032DA L1845: 000032DA 62F0 MOV.B @R15,R2 000032DC 72FF ADD #-1,R2 000032DE 2F20 MOV.B R2,@R15 000032E0 7201 ADD #1,R2 000032E2 622E EXTS.B R2,R2 000032E4 2228 TST R2,R2 000032E6 8B89 BF L1846 Mines.c 2174 } Mines.c 2175 } Mines.c 2176 for (nTreasure=nChokepoints; nTreasure--;) 000032E8 85F6 MOV.W @(12,R15),R0 000032EA 6103 MOV R0,R1 000032EC A06C BRA L1859 000032EE 2F10 MOV.B R1,@R15 000032F0 L1860: 000032F0 69F0 MOV.B @R15,R9 000032F2 6393 MOV R9,R3 000032F4 4908 SHLL2 R9 000032F6 393C ADD R3,R9 000032F8 4908 SHLL2 R9 000032FA 39EC ADD R14,R9 000032FC 8598 MOV.W @(16,R9),R0 000032FE 88FF CMP/EQ #-1,R0 00003300 8B62 BF L1859 00003302 849C MOV.B @(12,R9),R0 00003304 2008 TST R0,R0 00003306 8B5F BF L1859 Mines.c 2177 if ((m_Treasure[nTreasure].pRoomWeapon == -1) && (! m_Treasure[nTreasure].bSlain)) Mines.c 2178 { Mines.c 2179 nFirstChar=ToUpper((intC) *(m_Treasure[nTreasure].szWeapon)); 00003308 5492 MOV.L @(8,R9),R4 0000330A D338 MOV.L L2115+2,R3 ; __$ToUpper 0000330C 430B JSR @R3 0000330E 6440 MOV.B @R4,R4 00003310 6903 MOV R0,R9 Mines.c 2180 ++nItem; 00003312 84F4 MOV.B @(4,R15),R0 00003314 7001 ADD #1,R0 00003316 80F4 MOV.B R0,@(4,R15) Mines.c 2181 if (nItem < nItems) 00003318 600E EXTS.B R0,R0 0000331A 30C3 CMP/GE R12,R0 0000331C 892B BT L1862 Mines.c 2182 { Mines.c 2183 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 159 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + == 'O') || (nFirstChar == 'U')) 0000331E 6093 MOV R9,R0 00003320 8841 CMP/EQ #65,R0 00003322 890B BT L1864 00003324 6093 MOV R9,R0 00003326 8845 CMP/EQ #69,R0 00003328 8908 BT L1864 0000332A 6093 MOV R9,R0 0000332C 8849 CMP/EQ #73,R0 0000332E 8905 BT L1864 00003330 6093 MOV R9,R0 00003332 884F CMP/EQ #79,R0 00003334 8902 BT L1864 00003336 6093 MOV R9,R0 00003338 8855 CMP/EQ #85,R0 0000333A 8B01 BF L1863 0000333C L1864: Mines.c 2184 StrCat(szText,"an "); 0000333C A001 BRA L2011 0000333E 65B3 MOV R11,R5 00003340 L1863: Mines.c 2185 else Mines.c 2186 StrCat(szText,"a "); 00003340 65A3 MOV R10,R5 00003342 L2011: 00003342 D32B MOV.L L2115+6,R3 ; __$StrCat 00003344 430B JSR @R3 00003346 64D3 MOV R13,R4 Mines.c 2187 StrCat(szText,m_Treasure[nTreasure].szWeapon); 00003348 65F0 MOV.B @R15,R5 0000334A 6353 MOV R5,R3 0000334C D228 MOV.L L2115+6,R2 ; __$StrCat 0000334E 4508 SHLL2 R5 00003350 353C ADD R3,R5 00003352 4508 SHLL2 R5 00003354 35EC ADD R14,R5 00003356 5552 MOV.L @(8,R5),R5 00003358 420B JSR @R2 0000335A 64D3 MOV R13,R4 Mines.c 2188 if (nItems == 2) 0000335C 60C3 MOV R12,R0 0000335E 8802 CMP/EQ #2,R0 00003360 8F03 BF/S L1866 Mines.c 2189 StrCat(szText," "); 00003362 64D3 MOV R13,R4 00003364 D523 MOV.L L2115+10,R5; L618 00003366 A001 BRA L2012 00003368 0009 NOP 0000336A L1866: Mines.c 2190 else Mines.c 2191 StrCat(szText,", "); 0000336A D523 MOV.L L2115+14,R5; L858 0000336C L2012: 0000336C D220 MOV.L L2115+6,R2 ; __$StrCat 0000336E 420B JSR @R2 00003370 0009 NOP 00003372 A029 BRA L1859 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 160 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003374 0009 NOP 00003376 L1862: Mines.c 2192 } Mines.c 2193 else Mines.c 2194 { Mines.c 2195 if (nItems > 1) 00003376 3C87 CMP/GT R8,R12 00003378 8B03 BF L1869 Mines.c 2196 StrCat(szText,"and "); 0000337A D520 MOV.L L2115+18,R5; L825 0000337C D31C MOV.L L2115+6,R3 ; __$StrCat 0000337E 430B JSR @R3 00003380 64D3 MOV R13,R4 00003382 L1869: Mines.c 2197 if ((nFirstChar == 'A') || (nFirstChar == 'E') || (nFirstChar == 'I') || (nFirstChar + == 'O') || (nFirstChar == 'U')) 00003382 6093 MOV R9,R0 00003384 8841 CMP/EQ #65,R0 00003386 890B BT L1871 00003388 6093 MOV R9,R0 0000338A 8845 CMP/EQ #69,R0 0000338C 8908 BT L1871 0000338E 6093 MOV R9,R0 00003390 8849 CMP/EQ #73,R0 00003392 8905 BT L1871 00003394 6093 MOV R9,R0 00003396 884F CMP/EQ #79,R0 00003398 8902 BT L1871 0000339A 6093 MOV R9,R0 0000339C 8855 CMP/EQ #85,R0 0000339E 8B01 BF L1870 000033A0 L1871: Mines.c 2198 StrCat(szText,"an "); 000033A0 A001 BRA L2013 000033A2 65B3 MOV R11,R5 000033A4 L1870: Mines.c 2199 else Mines.c 2200 StrCat(szText,"a "); 000033A4 65A3 MOV R10,R5 000033A6 L2013: 000033A6 D312 MOV.L L2115+6,R3 ; __$StrCat 000033A8 430B JSR @R3 000033AA 64D3 MOV R13,R4 Mines.c 2201 StrCat(szText,m_Treasure[nTreasure].szWeapon); 000033AC 65F0 MOV.B @R15,R5 000033AE 6353 MOV R5,R3 000033B0 D20F MOV.L L2115+6,R2 ; __$StrCat 000033B2 4508 SHLL2 R5 000033B4 353C ADD R3,R5 000033B6 4508 SHLL2 R5 000033B8 35EC ADD R14,R5 000033BA 5552 MOV.L @(8,R5),R5 000033BC 420B JSR @R2 000033BE 64D3 MOV R13,R4 Mines.c 2202 StrCat(szText,"."); 000033C0 D50F MOV.L L2115+22,R5; L826 000033C2 D30B MOV.L L2115+6,R3 ; __$StrCat SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 161 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000033C4 430B JSR @R3 000033C6 64D3 MOV R13,R4 000033C8 L1859: 000033C8 62F0 MOV.B @R15,R2 000033CA 72FF ADD #-1,R2 000033CC 2F20 MOV.B R2,@R15 000033CE 7201 ADD #1,R2 000033D0 622E EXTS.B R2,R2 000033D2 2228 TST R2,R2 000033D4 8B8C BF L1860 Mines.c 2203 } Mines.c 2204 } Mines.c 2205 DisplayText(szText,bErr); 000033D6 55F2 MOV.L @(8,R15),R5 000033D8 A01A BRA L2014 000033DA 64D3 MOV R13,R4 000033DC L1844: Mines.c 2206 } Mines.c 2207 else Mines.c 2208 { Mines.c 2209 DisplayText("Fatal error: memory was exhausted at location 21.",bErr); 000033DC D409 MOV.L L2115+26,R4; L918 000033DE D30A MOV.L L2115+30,R3; __$DisplayText 000033E0 430B JSR @R3 000033E2 55F2 MOV.L @(8,R15),R5 Mines.c 2210 *bErr=TRUE; 000033E4 52F2 MOV.L @(8,R15),R2 000033E6 A01E BRA L1875 000033E8 2280 MOV.B R8,@R2 000033EA L2115: 000033EA 0000 .DATA.W 0 000033EC <00000000> .DATA.L __$ToUpper 000033F0 <00000000> .DATA.L __$StrCat 000033F4 <00000000> .DATA.L L618 000033F8 <00000000> .DATA.L L858 000033FC <00000000> .DATA.L L825 00003400 <00000000> .DATA.L L826 00003404 <00000000> .DATA.L L918 00003408 <00000000> .DATA.L __$DisplayText 0000340C L1815: Mines.c 2211 } Mines.c 2212 } Mines.c 2213 else Mines.c 2214 DisplayText("You aren\'t carrying anything.",bErr); 0000340C 55F2 MOV.L @(8,R15),R5 0000340E D424 MOV.L L2116+2,R4 ; L919 00003410 L2014: 00003410 D324 MOV.L L2116+6,R3 ; __$DisplayText 00003412 7F14 ADD #20,R15 00003414 4F26 LDS.L @R15+,PR 00003416 68F6 MOV.L @R15+,R8 00003418 69F6 MOV.L @R15+,R9 0000341A 6AF6 MOV.L @R15+,R10 0000341C 6BF6 MOV.L @R15+,R11 0000341E 6CF6 MOV.L @R15+,R12 00003420 6DF6 MOV.L @R15+,R13 00003422 432B JMP @R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 162 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003424 6EF6 MOV.L @R15+,R14 00003426 L1875: Mines.c 2215 return; Mines.c 2216 } 00003426 7F14 ADD #20,R15 00003428 4F26 LDS.L @R15+,PR 0000342A 68F6 MOV.L @R15+,R8 0000342C 69F6 MOV.L @R15+,R9 0000342E 6AF6 MOV.L @R15+,R10 00003430 6BF6 MOV.L @R15+,R11 00003432 6CF6 MOV.L @R15+,R12 00003434 6DF6 MOV.L @R15+,R13 00003436 000B RTS 00003438 6EF6 MOV.L @R15+,R14 Mines.c 2217 Mines.c 2218 static void Move( 0000343A __$Move: ; function: Move ; frame size=56 0000343A 6063 MOV R6,R0 0000343C 2FE6 MOV.L R14,@-R15 0000343E 2FD6 MOV.L R13,@-R15 00003440 2FC6 MOV.L R12,@-R15 00003442 2FB6 MOV.L R11,@-R15 00003444 2FA6 MOV.L R10,@-R15 00003446 6B5E EXTS.B R5,R11 00003448 DD17 MOV.L L2116+10,R13; __$m_Passage 0000344A 4B00 SHLL R11 0000344C 2F96 MOV.L R9,@-R15 0000344E 2F86 MOV.L R8,@-R15 00003450 4F22 STS.L PR,@-R15 00003452 7FEC ADD #-20,R15 00003454 DE15 MOV.L L2116+14,R14; __$m_Room 00003456 1F43 MOV.L R4,@(12,R15) 00003458 1F61 MOV.L R6,@(4,R15) 0000345A 6001 MOV.W @R0,R0 0000345C 62E2 MOV.L @R14,R2 0000345E 6303 MOV R0,R3 00003460 4008 SHLL2 R0 00003462 303C ADD R3,R0 00003464 4008 SHLL2 R0 00003466 302C ADD R2,R0 00003468 6403 MOV R0,R4 0000346A 7408 ADD #8,R4 0000346C 34BC ADD R11,R4 0000346E 6441 MOV.W @R4,R4 00003470 604F EXTS.W R4,R0 00003472 88FF CMP/EQ #-1,R0 00003474 8F02 BF/S L2117 00003476 6973 MOV R7,R9 00003478 A1EB BRA L1876 0000347A 0009 NOP 0000347C L2117: 0000347C D10A MOV.L L2116+10,R1; __$m_Passage 0000347E 624F EXTS.W R4,R2 00003480 6312 MOV.L @R1,R3 00003482 4208 SHLL2 R2 00003484 4200 SHLL R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 163 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003486 323C ADD R3,R2 00003488 6020 MOV.B @R2,R0 0000348A 2008 TST R0,R0 0000348C 8901 BT L2118 0000348E A1E0 BRA L1876 00003490 0009 NOP 00003492 L2118: Mines.c 2219 int16 *nMoves, Mines.c 2220 int8 nDirection, Mines.c 2221 int16 *pRoom, Mines.c 2222 int8 *bErr) Mines.c 2223 { Mines.c 2224 int8 bGuarded; Mines.c 2225 int16 pRoomAlongPassage; Mines.c 2226 char *szDescription; Mines.c 2227 char *szText; Mines.c 2228 Mines.c 2229 if ((m_Room[(*pRoom)].Adjacent.pPassage[nDirection] != -1) Mines.c 2230 && (! m_Passage[m_Room[(*pRoom)].Adjacent.pPassage[nDirection]].bBlocked)) Mines.c 2231 { Mines.c 2232 bGuarded=FALSE; 00003492 E400 MOV #0,R4 00003494 E010 MOV #16,R0 00003496 0F44 MOV.B R4,@(R0,R15) Mines.c 2233 szDescription=(char *) NULL; Mines.c 2234 pRoomAlongPassage=*pRoom; 00003498 5CF1 MOV.L @(4,R15),R12 Mines.c 2235 while ((! *bErr) 0000349A A1B2 BRA L1877 0000349C 6CC1 MOV.W @R12,R12 0000349E L2116: 0000349E 0000 .DATA.W 0 000034A0 <00000000> .DATA.L L919 000034A4 <00000000> .DATA.L __$DisplayText 000034A8 <00000000> .DATA.L __$m_Passage 000034AC <00000000> .DATA.L __$m_Room 000034B0 L1878: Mines.c 2236 && (m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection] != -1) Mines.c 2237 && (szDescription == NULL)) Mines.c 2238 { Mines.c 2239 if (m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pTreasureGuardian != -1 +) 000034B0 62E2 MOV.L @R14,R2 000034B2 60CF EXTS.W R12,R0 000034B4 6303 MOV R0,R3 000034B6 4008 SHLL2 R0 000034B8 303C ADD R3,R0 000034BA 4008 SHLL2 R0 000034BC 63D2 MOV.L @R13,R3 000034BE 302C ADD R2,R0 000034C0 7008 ADD #8,R0 000034C2 00BD MOV.W @(R0,R11),R0 000034C4 4008 SHLL2 R0 000034C6 4000 SHLL R0 000034C8 303C ADD R3,R0 000034CA 8501 MOV.W @(2,R0),R0 000034CC 88FF CMP/EQ #-1,R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 164 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000034CE 8B01 BF L2119 000034D0 A15A BRA L1879 000034D2 0009 NOP 000034D4 L2119: Mines.c 2240 if (m_Treasure[m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pTreasureG +uardian].pRoomWeapon != -1) 000034D4 DA3C MOV.L L2120+4,R10; __$m_Treasure 000034D6 60CF EXTS.W R12,R0 000034D8 62E2 MOV.L @R14,R2 000034DA 6303 MOV R0,R3 000034DC 4008 SHLL2 R0 000034DE 303C ADD R3,R0 000034E0 63D2 MOV.L @R13,R3 000034E2 4008 SHLL2 R0 000034E4 302C ADD R2,R0 000034E6 7008 ADD #8,R0 000034E8 00BD MOV.W @(R0,R11),R0 000034EA 4008 SHLL2 R0 000034EC 4000 SHLL R0 000034EE 303C ADD R3,R0 000034F0 8501 MOV.W @(2,R0),R0 000034F2 6303 MOV R0,R3 000034F4 4008 SHLL2 R0 000034F6 303C ADD R3,R0 000034F8 4008 SHLL2 R0 000034FA 30AC ADD R10,R0 000034FC 8508 MOV.W @(16,R0),R0 000034FE 88FF CMP/EQ #-1,R0 00003500 8974 BT L1880 Mines.c 2241 if (1+StrLen("You carry nothing to overcome the ") Mines.c 2242 +StrLen(m_Treasure[m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pTr +easureGuardian].szGuardian)+StrLen(".") < SENTENCE_LEN) 00003502 D432 MOV.L L2120+8,R4 ; L931 00003504 D232 MOV.L L2120+12,R2; __$StrLen 00003506 420B JSR @R2 00003508 0009 NOP 0000350A 600F EXTS.W R0,R0 0000350C 2F06 MOV.L R0,@-R15 0000350E 60CF EXTS.W R12,R0 00003510 62E2 MOV.L @R14,R2 00003512 6303 MOV R0,R3 00003514 4008 SHLL2 R0 00003516 303C ADD R3,R0 00003518 63D2 MOV.L @R13,R3 0000351A 4008 SHLL2 R0 0000351C 302C ADD R2,R0 0000351E 6403 MOV R0,R4 00003520 7408 ADD #8,R4 00003522 34BC ADD R11,R4 00003524 6441 MOV.W @R4,R4 00003526 4408 SHLL2 R4 00003528 4400 SHLL R4 0000352A 343C ADD R3,R4 0000352C 8541 MOV.W @(2,R4),R0 0000352E 64A3 MOV R10,R4 00003530 6303 MOV R0,R3 00003532 4008 SHLL2 R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 165 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003534 303C ADD R3,R0 00003536 4008 SHLL2 R0 00003538 D325 MOV.L L2120+12,R3; __$StrLen 0000353A 340C ADD R0,R4 0000353C 430B JSR @R3 0000353E 5441 MOV.L @(4,R4),R4 00003540 62F6 MOV.L @R15+,R2 00003542 600F EXTS.W R0,R0 00003544 D423 MOV.L L2120+16,R4; L826 00003546 302C ADD R2,R0 00003548 D321 MOV.L L2120+12,R3; __$StrLen 0000354A 430B JSR @R3 0000354C 2F06 MOV.L R0,@-R15 0000354E 600F EXTS.W R0,R0 00003550 62F6 MOV.L @R15+,R2 00003552 302C ADD R2,R0 00003554 9336 MOV.W L2120,R3 ; H'0400 00003556 7001 ADD #1,R0 00003558 3033 CMP/GE R3,R0 0000355A 892C BT L1881 Mines.c 2243 { Mines.c 2244 szText=&m_szMsg[0]; 0000355C D21E MOV.L L2120+20,R2; __$m_szMsg Mines.c 2245 bGuarded=TRUE; 0000355E E010 MOV #16,R0 Mines.c 2246 StrCpy(szText,"You carry nothing to overcome the "); 00003560 D51A MOV.L L2120+8,R5 ; L931 00003562 6122 MOV.L @R2,R1 00003564 2F12 MOV.L R1,@R15 00003566 0F84 MOV.B R8,@(R0,R15) 00003568 D11C MOV.L L2120+24,R1; __$StrCpy 0000356A 410B JSR @R1 0000356C 64F2 MOV.L @R15,R4 Mines.c 2247 StrCat(szText,m_Treasure[m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirect +ion]].pTreasureGuardian].szGuardian); 0000356E 60CF EXTS.W R12,R0 00003570 62E2 MOV.L @R14,R2 00003572 6303 MOV R0,R3 00003574 4008 SHLL2 R0 00003576 303C ADD R3,R0 00003578 63D2 MOV.L @R13,R3 0000357A 4008 SHLL2 R0 0000357C 302C ADD R2,R0 0000357E 6503 MOV R0,R5 00003580 7508 ADD #8,R5 00003582 35BC ADD R11,R5 00003584 6551 MOV.W @R5,R5 00003586 4508 SHLL2 R5 00003588 4500 SHLL R5 0000358A 353C ADD R3,R5 0000358C 8551 MOV.W @(2,R5),R0 0000358E 65A3 MOV R10,R5 00003590 6303 MOV R0,R3 00003592 4008 SHLL2 R0 00003594 303C ADD R3,R0 00003596 4008 SHLL2 R0 00003598 D311 MOV.L L2120+28,R3; __$StrCat SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 166 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000359A 350C ADD R0,R5 0000359C 5551 MOV.L @(4,R5),R5 0000359E 430B JSR @R3 000035A0 64F2 MOV.L @R15,R4 Mines.c 2248 StrCat(szText,"."); 000035A2 D50C MOV.L L2120+16,R5; L826 000035A4 D30E MOV.L L2120+28,R3; __$StrCat 000035A6 430B JSR @R3 000035A8 64F2 MOV.L @R15,R4 Mines.c 2249 DisplayText(szText,bErr); 000035AA 6593 MOV R9,R5 000035AC D30D MOV.L L2120+32,R3; __$DisplayText 000035AE 430B JSR @R3 000035B0 64F2 MOV.L @R15,R4 000035B2 A0E9 BRA L1879 000035B4 0009 NOP 000035B6 L1881: Mines.c 2250 } Mines.c 2251 else Mines.c 2252 { Mines.c 2253 DisplayText("Fatal error: memory was exhausted at locaton 15.",bErr); 000035B6 6593 MOV R9,R5 000035B8 D10A MOV.L L2120+32,R1; __$DisplayText 000035BA DA0B MOV.L L2120+36,R10; L934 000035BC 410B JSR @R1 000035BE 64A3 MOV R10,R4 000035C0 A0E1 BRA L1069 000035C2 0009 NOP 000035C4 L2120: 000035C4 0400 .DATA.W H'0400 000035C6 0000 .DATA.W 0 000035C8 <00000000> .DATA.L __$m_Treasure 000035CC <00000000> .DATA.L L931 000035D0 <00000000> .DATA.L __$StrLen 000035D4 <00000000> .DATA.L L826 000035D8 <00000000> .DATA.L __$m_szMsg 000035DC <00000000> .DATA.L __$StrCpy 000035E0 <00000000> .DATA.L __$StrCat 000035E4 <00000000> .DATA.L __$DisplayText 000035E8 <00000000> .DATA.L L934 000035EC L1880: Mines.c 2254 *bErr=TRUE; Mines.c 2255 } Mines.c 2256 else Mines.c 2257 if (1+StrLen("Your ") Mines.c 2258 +StrLen(m_Treasure[m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pTr +easureGuardian].szWeapon) Mines.c 2259 +StrLen(" overcomes the ") Mines.c 2260 +StrLen(m_Treasure[m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pTr +easureGuardian].szGuardian)+StrLen(".") < SENTENCE_LEN) 000035EC D45B MOV.L L2121+4,R4 ; L935 000035EE D35C MOV.L L2121+8,R3 ; __$StrLen 000035F0 430B JSR @R3 000035F2 0009 NOP 000035F4 600F EXTS.W R0,R0 000035F6 2F06 MOV.L R0,@-R15 000035F8 60CF EXTS.W R12,R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 167 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000035FA 6303 MOV R0,R3 000035FC 4008 SHLL2 R0 000035FE 303C ADD R3,R0 00003600 4008 SHLL2 R0 00003602 1F01 MOV.L R0,@(4,R15) 00003604 63E2 MOV.L @R14,R3 00003606 303C ADD R3,R0 00003608 63D2 MOV.L @R13,R3 0000360A 6403 MOV R0,R4 0000360C 7408 ADD #8,R4 0000360E 34BC ADD R11,R4 00003610 6441 MOV.W @R4,R4 00003612 4408 SHLL2 R4 00003614 4400 SHLL R4 00003616 343C ADD R3,R4 00003618 8541 MOV.W @(2,R4),R0 0000361A 64A3 MOV R10,R4 0000361C 6303 MOV R0,R3 0000361E 4008 SHLL2 R0 00003620 303C ADD R3,R0 00003622 4008 SHLL2 R0 00003624 D34E MOV.L L2121+8,R3 ; __$StrLen 00003626 340C ADD R0,R4 00003628 430B JSR @R3 0000362A 5442 MOV.L @(8,R4),R4 0000362C 62F6 MOV.L @R15+,R2 0000362E 600F EXTS.W R0,R0 00003630 D44C MOV.L L2121+12,R4; L936 00003632 302C ADD R2,R0 00003634 D34A MOV.L L2121+8,R3 ; __$StrLen 00003636 430B JSR @R3 00003638 2F06 MOV.L R0,@-R15 0000363A 600F EXTS.W R0,R0 0000363C 62F6 MOV.L @R15+,R2 0000363E 302C ADD R2,R0 00003640 2F06 MOV.L R0,@-R15 00003642 63E2 MOV.L @R14,R3 00003644 50F1 MOV.L @(4,R15),R0 00003646 303C ADD R3,R0 00003648 63D2 MOV.L @R13,R3 0000364A 6403 MOV R0,R4 0000364C 7408 ADD #8,R4 0000364E 34BC ADD R11,R4 00003650 6441 MOV.W @R4,R4 00003652 4408 SHLL2 R4 00003654 4400 SHLL R4 00003656 343C ADD R3,R4 00003658 8541 MOV.W @(2,R4),R0 0000365A 64A3 MOV R10,R4 0000365C 6303 MOV R0,R3 0000365E 4008 SHLL2 R0 00003660 303C ADD R3,R0 00003662 4008 SHLL2 R0 00003664 D33E MOV.L L2121+8,R3 ; __$StrLen 00003666 340C ADD R0,R4 00003668 430B JSR @R3 0000366A 5441 MOV.L @(4,R4),R4 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 168 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000366C 62F6 MOV.L @R15+,R2 0000366E 600F EXTS.W R0,R0 00003670 D43D MOV.L L2121+16,R4; L826 00003672 302C ADD R2,R0 00003674 D33A MOV.L L2121+8,R3 ; __$StrLen 00003676 430B JSR @R3 00003678 2F06 MOV.L R0,@-R15 0000367A 600F EXTS.W R0,R0 0000367C 62F6 MOV.L @R15+,R2 0000367E 302C ADD R2,R0 00003680 936A MOV.W L2121,R3 ; H'0400 00003682 7001 ADD #1,R0 00003684 3033 CMP/GE R3,R0 00003686 8979 BT L1884 Mines.c 2261 { Mines.c 2262 szText=&m_szMsg[0]; 00003688 D238 MOV.L L2121+20,R2; __$m_szMsg 0000368A 6122 MOV.L @R2,R1 Mines.c 2263 StrCpy(szText,"Your "); 0000368C D533 MOV.L L2121+4,R5 ; L935 0000368E 6413 MOV R1,R4 00003690 2F12 MOV.L R1,@R15 00003692 D137 MOV.L L2121+24,R1; __$StrCpy 00003694 410B JSR @R1 00003696 0009 NOP Mines.c 2264 StrCat(szText,m_Treasure[m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirect +ion]].pTreasureGuardian].szWeapon); 00003698 60CF EXTS.W R12,R0 0000369A 6303 MOV R0,R3 0000369C 4008 SHLL2 R0 0000369E 303C ADD R3,R0 000036A0 4008 SHLL2 R0 000036A2 1F02 MOV.L R0,@(8,R15) 000036A4 63E2 MOV.L @R14,R3 000036A6 303C ADD R3,R0 000036A8 63D2 MOV.L @R13,R3 000036AA 6503 MOV R0,R5 000036AC 7508 ADD #8,R5 000036AE 35BC ADD R11,R5 000036B0 6551 MOV.W @R5,R5 000036B2 4508 SHLL2 R5 000036B4 4500 SHLL R5 000036B6 353C ADD R3,R5 000036B8 8551 MOV.W @(2,R5),R0 000036BA 65A3 MOV R10,R5 000036BC 6303 MOV R0,R3 000036BE 4008 SHLL2 R0 000036C0 303C ADD R3,R0 000036C2 4008 SHLL2 R0 000036C4 D32B MOV.L L2121+28,R3; __$StrCat 000036C6 350C ADD R0,R5 000036C8 5552 MOV.L @(8,R5),R5 000036CA 430B JSR @R3 000036CC 64F2 MOV.L @R15,R4 Mines.c 2265 StrCat(szText," overcomes the "); 000036CE D525 MOV.L L2121+12,R5; L936 000036D0 D328 MOV.L L2121+28,R3; __$StrCat SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 169 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000036D2 430B JSR @R3 000036D4 64F2 MOV.L @R15,R4 Mines.c 2266 StrCat(szText,m_Treasure[m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirect +ion]].pTreasureGuardian].szGuardian); 000036D6 63E2 MOV.L @R14,R3 000036D8 50F2 MOV.L @(8,R15),R0 000036DA 303C ADD R3,R0 000036DC 63D2 MOV.L @R13,R3 000036DE 6503 MOV R0,R5 000036E0 7508 ADD #8,R5 000036E2 35BC ADD R11,R5 000036E4 6551 MOV.W @R5,R5 000036E6 4508 SHLL2 R5 000036E8 4500 SHLL R5 000036EA 353C ADD R3,R5 000036EC 8551 MOV.W @(2,R5),R0 000036EE 65A3 MOV R10,R5 000036F0 6303 MOV R0,R3 000036F2 4008 SHLL2 R0 000036F4 303C ADD R3,R0 000036F6 4008 SHLL2 R0 000036F8 D31E MOV.L L2121+28,R3; __$StrCat 000036FA 350C ADD R0,R5 000036FC 5551 MOV.L @(4,R5),R5 000036FE 430B JSR @R3 00003700 64F2 MOV.L @R15,R4 Mines.c 2267 StrCat(szText,"."); 00003702 D519 MOV.L L2121+16,R5; L826 00003704 D31B MOV.L L2121+28,R3; __$StrCat 00003706 430B JSR @R3 00003708 64F2 MOV.L @R15,R4 Mines.c 2268 DisplayText(szText,bErr); 0000370A 6593 MOV R9,R5 0000370C D31A MOV.L L2121+32,R3; __$DisplayText 0000370E 430B JSR @R3 00003710 64F2 MOV.L @R15,R4 Mines.c 2269 m_Treasure[m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pTreasur +eGuardian].bSlain=TRUE; Mines.c 2270 m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pTreasureGuardian=- +1; 00003712 E4FF MOV #-1,R4 00003714 63E2 MOV.L @R14,R3 00003716 50F2 MOV.L @(8,R15),R0 00003718 303C ADD R3,R0 0000371A 6203 MOV R0,R2 0000371C 7208 ADD #8,R2 0000371E 32BC ADD R11,R2 00003720 6321 MOV.W @R2,R3 00003722 4308 SHLL2 R3 00003724 62D2 MOV.L @R13,R2 00003726 4300 SHLL R3 00003728 332C ADD R2,R3 0000372A 8531 MOV.W @(2,R3),R0 0000372C 6303 MOV R0,R3 0000372E 4008 SHLL2 R0 00003730 303C ADD R3,R0 00003732 4008 SHLL2 R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 170 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003734 3A0C ADD R0,R10 00003736 6083 MOV R8,R0 00003738 80AC MOV.B R0,@(12,R10) 0000373A 63E2 MOV.L @R14,R3 0000373C 50F2 MOV.L @(8,R15),R0 0000373E 303C ADD R3,R0 00003740 6203 MOV R0,R2 00003742 7208 ADD #8,R2 00003744 32BC ADD R11,R2 00003746 6043 MOV R4,R0 00003748 6321 MOV.W @R2,R3 0000374A 4308 SHLL2 R3 0000374C 62D2 MOV.L @R13,R2 0000374E 4300 SHLL R3 00003750 332C ADD R2,R3 00003752 8131 MOV.W R0,@(2,R3) 00003754 A018 BRA L1879 00003756 0009 NOP 00003758 L2121: 00003758 0400 .DATA.W H'0400 0000375A 0000 .DATA.W 0 0000375C <00000000> .DATA.L L935 00003760 <00000000> .DATA.L __$StrLen 00003764 <00000000> .DATA.L L936 00003768 <00000000> .DATA.L L826 0000376C <00000000> .DATA.L __$m_szMsg 00003770 <00000000> .DATA.L __$StrCpy 00003774 <00000000> .DATA.L __$StrCat 00003778 <00000000> .DATA.L __$DisplayText 0000377C L1884: Mines.c 2271 } Mines.c 2272 else Mines.c 2273 { Mines.c 2274 DisplayText("Fatal error: memory was exhausted at locaton 16.",bErr); 0000377C DA40 MOV.L L2122,R10 ; L939 0000377E 6593 MOV R9,R5 00003780 D240 MOV.L L2122+4,R2 ; __$DisplayText 00003782 420B JSR @R2 00003784 64A3 MOV R10,R4 00003786 L1069: Mines.c 2275 *bErr=TRUE; 00003786 2980 MOV.B R8,@R9 00003788 L1879: Mines.c 2276 } Mines.c 2277 if (m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pRoom1 == pRoomAlongPas +sage) 00003788 62E2 MOV.L @R14,R2 0000378A 60CF EXTS.W R12,R0 0000378C 6303 MOV R0,R3 0000378E 4008 SHLL2 R0 00003790 303C ADD R3,R0 00003792 4008 SHLL2 R0 00003794 302C ADD R2,R0 00003796 6303 MOV R0,R3 00003798 7308 ADD #8,R3 0000379A 33BC ADD R11,R3 0000379C 6231 MOV.W @R3,R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 171 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000379E 4208 SHLL2 R2 000037A0 63D2 MOV.L @R13,R3 000037A2 4200 SHLL R2 000037A4 323C ADD R3,R2 000037A6 63CF EXTS.W R12,R3 000037A8 8522 MOV.W @(4,R2),R0 000037AA 3030 CMP/EQ R3,R0 000037AC 8B10 BF L1886 Mines.c 2278 pRoomAlongPassage=m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pRoom2; 000037AE 60CF EXTS.W R12,R0 000037B0 62E2 MOV.L @R14,R2 000037B2 6303 MOV R0,R3 000037B4 4008 SHLL2 R0 000037B6 303C ADD R3,R0 000037B8 4008 SHLL2 R0 000037BA 302C ADD R2,R0 000037BC 6303 MOV R0,R3 000037BE 7308 ADD #8,R3 000037C0 33BC ADD R11,R3 000037C2 6231 MOV.W @R3,R2 000037C4 63D2 MOV.L @R13,R3 000037C6 4208 SHLL2 R2 000037C8 4200 SHLL R2 000037CA 323C ADD R3,R2 000037CC A010 BRA L2015 000037CE 8523 MOV.W @(6,R2),R0 000037D0 L1886: Mines.c 2279 else Mines.c 2280 pRoomAlongPassage=m_Passage[m_Room[pRoomAlongPassage].Adjacent.pPassage[nDirection]].pRoom1; 000037D0 62E2 MOV.L @R14,R2 000037D2 60CF EXTS.W R12,R0 000037D4 6303 MOV R0,R3 000037D6 4008 SHLL2 R0 000037D8 303C ADD R3,R0 000037DA 4008 SHLL2 R0 000037DC 302C ADD R2,R0 000037DE 6303 MOV R0,R3 000037E0 7308 ADD #8,R3 000037E2 33BC ADD R11,R3 000037E4 6231 MOV.W @R3,R2 000037E6 4208 SHLL2 R2 000037E8 63D2 MOV.L @R13,R3 000037EA 4200 SHLL R2 000037EC 323C ADD R3,R2 000037EE 8522 MOV.W @(4,R2),R0 000037F0 L2015: Mines.c 2281 szDescription=m_Room[pRoomAlongPassage].szDescription; 000037F0 62E2 MOV.L @R14,R2 000037F2 6C03 MOV R0,R12 000037F4 64CF EXTS.W R12,R4 000037F6 6343 MOV R4,R3 000037F8 4408 SHLL2 R4 000037FA 343C ADD R3,R4 000037FC 4408 SHLL2 R4 000037FE 342C ADD R2,R4 00003800 6442 MOV.L @R4,R4 00003802 L1877: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 172 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003802 6390 MOV.B @R9,R3 00003804 2338 TST R3,R3 00003806 8F10 BF/S L1888 00003808 E801 MOV #1,R8 0000380A 60CF EXTS.W R12,R0 0000380C D11E MOV.L L2122+8,R1 ; __$m_Room 0000380E 6303 MOV R0,R3 00003810 6212 MOV.L @R1,R2 00003812 4008 SHLL2 R0 00003814 303C ADD R3,R0 00003816 4008 SHLL2 R0 00003818 302C ADD R2,R0 0000381A 7008 ADD #8,R0 0000381C 00BD MOV.W @(R0,R11),R0 0000381E 88FF CMP/EQ #-1,R0 00003820 8903 BT L1888 00003822 2448 TST R4,R4 00003824 8B01 BF L2123 00003826 AE43 BRA L1878 00003828 0009 NOP 0000382A L2123: 0000382A L1888: Mines.c 2282 } Mines.c 2283 if (! bGuarded) 0000382A E010 MOV #16,R0 0000382C 03FC MOV.B @(R0,R15),R3 0000382E 2338 TST R3,R3 00003830 8B1C BF L1891 Mines.c 2284 { Mines.c 2285 ++(*nMoves); Mines.c 2286 m_Room[pRoomAlongPassage].bVisited=TRUE; 00003832 6083 MOV R8,R0 00003834 53F3 MOV.L @(12,R15),R3 00003836 6231 MOV.W @R3,R2 00003838 7201 ADD #1,R2 0000383A 2321 MOV.W R2,@R3 0000383C 61E2 MOV.L @R14,R1 0000383E 63CF EXTS.W R12,R3 00003840 6233 MOV R3,R2 00003842 4308 SHLL2 R3 00003844 332C ADD R2,R3 00003846 4308 SHLL2 R3 00003848 331C ADD R1,R3 0000384A 8037 MOV.B R0,@(7,R3) Mines.c 2287 *pRoom=pRoomAlongPassage; 0000384C 53F1 MOV.L @(4,R15),R3 0000384E A00D BRA L1891 00003850 23C1 MOV.W R12,@R3 00003852 L1876: Mines.c 2288 } Mines.c 2289 } Mines.c 2290 else Mines.c 2291 DisplayText("You can\'t go that way.",bErr); 00003852 6593 MOV R9,R5 00003854 D40D MOV.L L2122+12,R4; L941 00003856 7F14 ADD #20,R15 00003858 D20A MOV.L L2122+4,R2 ; __$DisplayText SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 173 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000385A 4F26 LDS.L @R15+,PR 0000385C 68F6 MOV.L @R15+,R8 0000385E 69F6 MOV.L @R15+,R9 00003860 6AF6 MOV.L @R15+,R10 00003862 6BF6 MOV.L @R15+,R11 00003864 6CF6 MOV.L @R15+,R12 00003866 6DF6 MOV.L @R15+,R13 00003868 422B JMP @R2 0000386A 6EF6 MOV.L @R15+,R14 0000386C L1891: Mines.c 2292 return; Mines.c 2293 } 0000386C 7F14 ADD #20,R15 0000386E 4F26 LDS.L @R15+,PR 00003870 68F6 MOV.L @R15+,R8 00003872 69F6 MOV.L @R15+,R9 00003874 6AF6 MOV.L @R15+,R10 00003876 6BF6 MOV.L @R15+,R11 00003878 6CF6 MOV.L @R15+,R12 0000387A 6DF6 MOV.L @R15+,R13 0000387C 000B RTS 0000387E 6EF6 MOV.L @R15+,R14 00003880 L2122: 00003880 <00000000> .DATA.L L939 00003884 <00000000> .DATA.L __$DisplayText 00003888 <00000000> .DATA.L __$m_Room 0000388C <00000000> .DATA.L L941 Mines.c 2294 Mines.c 2295 static void Points( 00003890 __$Points: ; function: Points ; frame size=156 ; used runtime library name: ; __divls 00003890 2FE6 MOV.L R14,@-R15 00003892 6043 MOV R4,R0 Mines.c 2296 int16 nRooms, Mines.c 2297 int16 pRoomEntrance, Mines.c 2298 int16 *ppRoomWithName, Mines.c 2299 int8 nTreasures, Mines.c 2300 int16 nMoves, Mines.c 2301 int8 bRank, Mines.c 2302 int8 *bErr) Mines.c 2303 { Mines.c 2304 int16 nRoom; Mines.c 2305 int16 nRoomsVisited; Mines.c 2306 int16 nScore; Mines.c 2307 int8 nTreasure; Mines.c 2308 int16 nTreasuresCarried; Mines.c 2309 int16 nTreasuresRecovered; Mines.c 2310 char szMoves [12]; Mines.c 2311 char szRooms [12]; Mines.c 2312 char szRoomsVisited [12]; Mines.c 2313 char szScore [12]; Mines.c 2314 char *szText; Mines.c 2315 char szTreasures [12]; Mines.c 2316 char szTreasuresCarried [12]; Mines.c 2317 char szTreasuresRecovered [12]; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 174 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 2318 Mines.c 2319 IToA(nRooms+1,&szRooms[0]); 00003894 D34F MOV.L L2124+8,R3 ; __$IToA 00003896 2FD6 MOV.L R13,@-R15 00003898 2FC6 MOV.L R12,@-R15 0000389A 2FB6 MOV.L R11,@-R15 0000389C 2FA6 MOV.L R10,@-R15 0000389E 2F96 MOV.L R9,@-R15 000038A0 2F86 MOV.L R8,@-R15 000038A2 4F22 STS.L PR,@-R15 000038A4 4F12 STS.L MACL,@-R15 000038A6 7F8C ADD #-116,R15 000038A8 81F8 MOV.W R0,@(16,R15) 000038AA 6053 MOV R5,R0 000038AC 81FE MOV.W R0,@(28,R15) 000038AE 65F3 MOV R15,R5 000038B0 2F62 MOV.L R6,@R15 000038B2 6073 MOV R7,R0 000038B4 80F8 MOV.B R0,@(8,R15) 000038B6 755C ADD #92,R5 000038B8 9088 MOV.W L2124,R0 ; H'00A0 000038BA 0EFE MOV.L @(R0,R15),R14 000038BC 1F51 MOV.L R5,@(4,R15) 000038BE 85F8 MOV.W @(16,R15),R0 000038C0 6403 MOV R0,R4 000038C2 430B JSR @R3 000038C4 7401 ADD #1,R4 Mines.c 2320 nScore=0; 000038C6 EA00 MOV #0,R10 000038C8 6CA3 MOV R10,R12 Mines.c 2321 nTreasuresRecovered=0; 000038CA 60A3 MOV R10,R0 000038CC 81F6 MOV.W R0,@(12,R15) Mines.c 2322 nTreasuresCarried=0; 000038CE 68C3 MOV R12,R8 000038D0 64F2 MOV.L @R15,R4 Mines.c 2323 nRoomsVisited=0; 000038D2 6BC3 MOV R12,R11 000038D4 85F8 MOV.W @(16,R15),R0 Mines.c 2324 for (nRoom=0; nRoom <= nRooms; ++nRoom) 000038D6 65C3 MOV R12,R5 000038D8 4011 CMP/PZ R0 000038DA 8F12 BF/S L1892 000038DC 2F02 MOV.L R0,@R15 000038DE D63E MOV.L L2124+12,R6; __$m_Room 000038E0 L1893: Mines.c 2325 if (m_Room[ppRoomWithName[nRoom]].bVisited) 000038E0 6241 MOV.W @R4,R2 000038E2 6323 MOV R2,R3 000038E4 6162 MOV.L @R6,R1 000038E6 4208 SHLL2 R2 000038E8 323C ADD R3,R2 000038EA 4208 SHLL2 R2 000038EC 321C ADD R1,R2 000038EE 8427 MOV.B @(7,R2),R0 000038F0 2008 TST R0,R0 000038F2 8D01 BT/S L1894 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 175 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000038F4 7501 ADD #1,R5 Mines.c 2326 ++nRoomsVisited; 000038F6 7B01 ADD #1,R11 000038F8 L1894: 000038F8 62F2 MOV.L @R15,R2 000038FA 635F EXTS.W R5,R3 000038FC 3327 CMP/GT R2,R3 000038FE 8FEF BF/S L1893 00003900 7402 ADD #2,R4 00003902 L1892: Mines.c 2327 IToA(nRoomsVisited,&szRoomsVisited[0]); 00003902 65F3 MOV R15,R5 00003904 D333 MOV.L L2124+8,R3 ; __$IToA 00003906 7550 ADD #80,R5 00003908 1F56 MOV.L R5,@(24,R15) 0000390A 430B JSR @R3 0000390C 64B3 MOV R11,R4 Mines.c 2328 IToA(nMoves,&szMoves[0]); 0000390E 65F3 MOV R15,R5 00003910 905D MOV.W L2124+2,R0 ; H'009A 00003912 7568 ADD #104,R5 00003914 D32F MOV.L L2124+8,R3 ; __$IToA 00003916 1F55 MOV.L R5,@(20,R15) 00003918 430B JSR @R3 0000391A 04FD MOV.W @(R0,R15),R4 Mines.c 2329 if (1+StrLen("You have moved ")+StrLen(&szMoves[0])+StrLen(" times to visit ")+StrLen(&szRoomsVisited[ +0])+StrLen(" of ")+StrLen(&szRooms[0])+StrLen(" locations.") < SENTENCE_LEN) 0000391C D92F MOV.L L2124+16,R9; L966 0000391E D430 MOV.L L2124+20,R4; L964 00003920 D230 MOV.L L2124+24,R2; __$StrLen 00003922 420B JSR @R2 00003924 0009 NOP 00003926 600F EXTS.W R0,R0 00003928 D32E MOV.L L2124+24,R3; __$StrLen 0000392A 2F06 MOV.L R0,@-R15 0000392C 430B JSR @R3 0000392E 54F6 MOV.L @(24,R15),R4 00003930 62F6 MOV.L @R15+,R2 00003932 600F EXTS.W R0,R0 00003934 D42C MOV.L L2124+28,R4; L965 00003936 302C ADD R2,R0 00003938 D32A MOV.L L2124+24,R3; __$StrLen 0000393A 430B JSR @R3 0000393C 2F06 MOV.L R0,@-R15 0000393E 600F EXTS.W R0,R0 00003940 62F6 MOV.L @R15+,R2 00003942 302C ADD R2,R0 00003944 2F06 MOV.L R0,@-R15 00003946 D327 MOV.L L2124+24,R3; __$StrLen 00003948 430B JSR @R3 0000394A 54F7 MOV.L @(28,R15),R4 0000394C 62F6 MOV.L @R15+,R2 0000394E 600F EXTS.W R0,R0 00003950 D324 MOV.L L2124+24,R3; __$StrLen 00003952 302C ADD R2,R0 00003954 2F06 MOV.L R0,@-R15 00003956 430B JSR @R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 176 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003958 6493 MOV R9,R4 0000395A 600F EXTS.W R0,R0 0000395C 62F6 MOV.L @R15+,R2 0000395E 302C ADD R2,R0 00003960 2F06 MOV.L R0,@-R15 00003962 D320 MOV.L L2124+24,R3; __$StrLen 00003964 430B JSR @R3 00003966 54F2 MOV.L @(8,R15),R4 00003968 62F6 MOV.L @R15+,R2 0000396A 600F EXTS.W R0,R0 0000396C D41F MOV.L L2124+32,R4; L967 0000396E 302C ADD R2,R0 00003970 D31C MOV.L L2124+24,R3; __$StrLen 00003972 430B JSR @R3 00003974 2F06 MOV.L R0,@-R15 00003976 600F EXTS.W R0,R0 00003978 62F6 MOV.L @R15+,R2 0000397A 302C ADD R2,R0 0000397C 9328 MOV.W L2124+4,R3 ; H'0400 0000397E 7001 ADD #1,R0 00003980 3033 CMP/GE R3,R0 00003982 893D BT L1895 Mines.c 2330 { Mines.c 2331 szText=&m_szMsg[0]; 00003984 D11A MOV.L L2124+36,R1; __$m_szMsg 00003986 6D12 MOV.L @R1,R13 Mines.c 2332 StrCpy(szText,"You have moved "); 00003988 D515 MOV.L L2124+20,R5; L964 0000398A D21A MOV.L L2124+40,R2; __$StrCpy 0000398C 420B JSR @R2 0000398E 64D3 MOV R13,R4 Mines.c 2333 StrCat(szText,&szMoves[0]); 00003990 55F5 MOV.L @(20,R15),R5 00003992 D319 MOV.L L2124+44,R3; __$StrCat 00003994 430B JSR @R3 00003996 64D3 MOV R13,R4 Mines.c 2334 StrCat(szText," times to visit "); 00003998 D513 MOV.L L2124+28,R5; L965 0000399A D217 MOV.L L2124+44,R2; __$StrCat 0000399C 420B JSR @R2 0000399E 64D3 MOV R13,R4 Mines.c 2335 StrCat(szText,&szRoomsVisited[0]); 000039A0 55F6 MOV.L @(24,R15),R5 000039A2 D315 MOV.L L2124+44,R3; __$StrCat 000039A4 430B JSR @R3 000039A6 64D3 MOV R13,R4 Mines.c 2336 StrCat(szText," of "); 000039A8 D213 MOV.L L2124+44,R2; __$StrCat 000039AA 6593 MOV R9,R5 000039AC 420B JSR @R2 000039AE 64D3 MOV R13,R4 Mines.c 2337 StrCat(szText,&szRooms[0]); 000039B0 55F1 MOV.L @(4,R15),R5 000039B2 D311 MOV.L L2124+44,R3; __$StrCat 000039B4 430B JSR @R3 000039B6 64D3 MOV R13,R4 Mines.c 2338 StrCat(szText," locations."); SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 177 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000039B8 D50C MOV.L L2124+32,R5; L967 000039BA D20F MOV.L L2124+44,R2; __$StrCat 000039BC 420B JSR @R2 000039BE 64D3 MOV R13,R4 Mines.c 2339 DisplayText(szText,bErr); 000039C0 D30E MOV.L L2124+48,R3; __$DisplayText 000039C2 65E3 MOV R14,R5 000039C4 430B JSR @R3 000039C6 64D3 MOV R13,R4 000039C8 A020 BRA L1896 000039CA 0009 NOP 000039CC L2124: 000039CC 00A0 .DATA.W H'00A0 000039CE 009A .DATA.W H'009A 000039D0 0400 .DATA.W H'0400 000039D2 0000 .DATA.W 0 000039D4 <00000000> .DATA.L __$IToA 000039D8 <00000000> .DATA.L __$m_Room 000039DC <00000000> .DATA.L L966 000039E0 <00000000> .DATA.L L964 000039E4 <00000000> .DATA.L __$StrLen 000039E8 <00000000> .DATA.L L965 000039EC <00000000> .DATA.L L967 000039F0 <00000000> .DATA.L __$m_szMsg 000039F4 <00000000> .DATA.L __$StrCpy 000039F8 <00000000> .DATA.L __$StrCat 000039FC <00000000> .DATA.L __$DisplayText 00003A00 L1895: Mines.c 2340 } Mines.c 2341 else Mines.c 2342 { Mines.c 2343 DisplayText("Fatal error: memory was exhausted at locaton 17.",bErr); 00003A00 D43D MOV.L L2125+4,R4 ; L970 00003A02 D13E MOV.L L2125+8,R1 ; __$DisplayText 00003A04 410B JSR @R1 00003A06 65E3 MOV R14,R5 Mines.c 2344 *bErr=TRUE; 00003A08 E301 MOV #1,R3 00003A0A 2E30 MOV.B R3,@R14 00003A0C L1896: Mines.c 2345 } Mines.c 2346 if (! *bErr) 00003A0C 62E0 MOV.B @R14,R2 00003A0E 2228 TST R2,R2 00003A10 8901 BT L2126 00003A12 A1AF BRA L1924 00003A14 0009 NOP 00003A16 L2126: Mines.c 2347 { Mines.c 2348 IToA(nTreasures,&szTreasures[0]); 00003A16 65F3 MOV R15,R5 00003A18 84F8 MOV.B @(8,R15),R0 00003A1A 7538 ADD #56,R5 00003A1C D338 MOV.L L2125+12,R3; __$IToA 00003A1E 430B JSR @R3 00003A20 6403 MOV R0,R4 Mines.c 2349 for (nTreasure=nTreasures; nTreasure--;) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 178 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003A22 84F8 MOV.B @(8,R15),R0 00003A24 A00A BRA L1898 00003A26 6403 MOV R0,R4 00003A28 L1899: Mines.c 2350 if (m_Treasure[nTreasure].pRoomTreasure == -1) 00003A28 D136 MOV.L L2125+16,R1; H'0000000E+__$m_Treasure 00003A2A 604E EXTS.B R4,R0 00003A2C 6303 MOV R0,R3 00003A2E 4008 SHLL2 R0 00003A30 303C ADD R3,R0 00003A32 4008 SHLL2 R0 00003A34 001D MOV.W @(R0,R1),R0 00003A36 88FF CMP/EQ #-1,R0 00003A38 8B00 BF L1898 Mines.c 2351 ++nTreasuresCarried; 00003A3A 7801 ADD #1,R8 00003A3C L1898: 00003A3C 624E EXTS.B R4,R2 00003A3E 2228 TST R2,R2 00003A40 8FF2 BF/S L1899 00003A42 74FF ADD #-1,R4 Mines.c 2352 IToA(nTreasuresCarried,&szTreasuresCarried[0]); 00003A44 D32E MOV.L L2125+12,R3; __$IToA 00003A46 65F3 MOV R15,R5 00003A48 752C ADD #44,R5 00003A4A 1F51 MOV.L R5,@(4,R15) 00003A4C 430B JSR @R3 00003A4E 6483 MOV R8,R4 Mines.c 2353 if (1+StrLen("You hold ")+StrLen(&szTreasuresCarried[0])+StrLen(" of ")+StrLen(&szTreasures[0])+St +rLen(" treasures.") < SENTENCE_LEN) 00003A50 D42D MOV.L L2125+20,R4; L972 00003A52 D22E MOV.L L2125+24,R2; __$StrLen 00003A54 420B JSR @R2 00003A56 0009 NOP 00003A58 D32C MOV.L L2125+24,R3; __$StrLen 00003A5A 600F EXTS.W R0,R0 00003A5C 2F06 MOV.L R0,@-R15 00003A5E 430B JSR @R3 00003A60 54F2 MOV.L @(8,R15),R4 00003A62 600F EXTS.W R0,R0 00003A64 62F6 MOV.L @R15+,R2 00003A66 302C ADD R2,R0 00003A68 2F06 MOV.L R0,@-R15 00003A6A D328 MOV.L L2125+24,R3; __$StrLen 00003A6C 430B JSR @R3 00003A6E 6493 MOV R9,R4 00003A70 62F6 MOV.L @R15+,R2 00003A72 600F EXTS.W R0,R0 00003A74 D325 MOV.L L2125+24,R3; __$StrLen 00003A76 302C ADD R2,R0 00003A78 2F06 MOV.L R0,@-R15 00003A7A 64F3 MOV R15,R4 00003A7C 430B JSR @R3 00003A7E 743C ADD #60,R4 00003A80 62F6 MOV.L @R15+,R2 00003A82 600F EXTS.W R0,R0 00003A84 D422 MOV.L L2125+28,R4; L973 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 179 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003A86 302C ADD R2,R0 00003A88 D320 MOV.L L2125+24,R3; __$StrLen 00003A8A 430B JSR @R3 00003A8C 2F06 MOV.L R0,@-R15 00003A8E 600F EXTS.W R0,R0 00003A90 62F6 MOV.L @R15+,R2 00003A92 302C ADD R2,R0 00003A94 932E MOV.W L2125,R3 ; H'0400 00003A96 7001 ADD #1,R0 00003A98 3033 CMP/GE R3,R0 00003A9A 891D BT L1901 Mines.c 2354 { Mines.c 2355 szText=&m_szMsg[0]; 00003A9C D11D MOV.L L2125+32,R1; __$m_szMsg 00003A9E 6D12 MOV.L @R1,R13 Mines.c 2356 StrCpy(szText,"You hold "); 00003AA0 D519 MOV.L L2125+20,R5; L972 00003AA2 D21D MOV.L L2125+36,R2; __$StrCpy 00003AA4 420B JSR @R2 00003AA6 64D3 MOV R13,R4 Mines.c 2357 StrCat(szText,&szTreasuresCarried[0]); 00003AA8 D31C MOV.L L2125+40,R3; __$StrCat 00003AAA 65F3 MOV R15,R5 00003AAC 752C ADD #44,R5 00003AAE 430B JSR @R3 00003AB0 64D3 MOV R13,R4 Mines.c 2358 StrCat(szText," of "); 00003AB2 6593 MOV R9,R5 00003AB4 D219 MOV.L L2125+40,R2; __$StrCat 00003AB6 420B JSR @R2 00003AB8 64D3 MOV R13,R4 Mines.c 2359 StrCat(szText,&szTreasures[0]); 00003ABA 65F3 MOV R15,R5 00003ABC D317 MOV.L L2125+40,R3; __$StrCat 00003ABE 7538 ADD #56,R5 00003AC0 430B JSR @R3 00003AC2 64D3 MOV R13,R4 Mines.c 2360 StrCat(szText," treasures."); 00003AC4 D512 MOV.L L2125+28,R5; L973 00003AC6 D215 MOV.L L2125+40,R2; __$StrCat 00003AC8 420B JSR @R2 00003ACA 64D3 MOV R13,R4 Mines.c 2361 DisplayText(szText,bErr); 00003ACC D30B MOV.L L2125+8,R3 ; __$DisplayText 00003ACE 65E3 MOV R14,R5 00003AD0 430B JSR @R3 00003AD2 64D3 MOV R13,R4 00003AD4 A006 BRA L1897 00003AD6 0009 NOP 00003AD8 L1901: Mines.c 2362 } Mines.c 2363 else Mines.c 2364 { Mines.c 2365 DisplayText("Fatal error: memory was exhausted at locaton 18.",bErr); 00003AD8 D411 MOV.L L2125+44,R4; L976 00003ADA D108 MOV.L L2125+8,R1 ; __$DisplayText 00003ADC 410B JSR @R1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 180 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003ADE 65E3 MOV R14,R5 Mines.c 2366 *bErr=TRUE; 00003AE0 E301 MOV #1,R3 00003AE2 2E30 MOV.B R3,@R14 00003AE4 L1897: Mines.c 2367 } Mines.c 2368 } Mines.c 2369 if (! *bErr) 00003AE4 62E0 MOV.B @R14,R2 00003AE6 2228 TST R2,R2 00003AE8 8901 BT L2127 00003AEA A143 BRA L1924 00003AEC 0009 NOP 00003AEE L2127: Mines.c 2370 { Mines.c 2371 for (nTreasure=nTreasures; nTreasure--;) 00003AEE 84F8 MOV.B @(8,R15),R0 00003AF0 A025 BRA L1904 00003AF2 6403 MOV R0,R4 00003AF4 L2125: 00003AF4 0400 .DATA.W H'0400 00003AF6 0000 .DATA.W 0 00003AF8 <00000000> .DATA.L L970 00003AFC <00000000> .DATA.L __$DisplayText 00003B00 <00000000> .DATA.L __$IToA 00003B04 <0000000E> .DATA.L H'0000000E+__$m_Treasure 00003B08 <00000000> .DATA.L L972 00003B0C <00000000> .DATA.L __$StrLen 00003B10 <00000000> .DATA.L L973 00003B14 <00000000> .DATA.L __$m_szMsg 00003B18 <00000000> .DATA.L __$StrCpy 00003B1C <00000000> .DATA.L __$StrCat 00003B20 <00000000> .DATA.L L976 00003B24 L1905: Mines.c 2372 if (m_Treasure[nTreasure].pRoomTreasure == pRoomEntrance) 00003B24 D02E MOV.L L2128+4,R0 ; H'0000000E+__$m_Treasure 00003B26 624E EXTS.B R4,R2 00003B28 6323 MOV R2,R3 00003B2A 4208 SHLL2 R2 00003B2C 323C ADD R3,R2 00003B2E 4208 SHLL2 R2 00003B30 012D MOV.W @(R0,R2),R1 00003B32 85FE MOV.W @(28,R15),R0 00003B34 3100 CMP/EQ R0,R1 00003B36 8B02 BF L1904 Mines.c 2373 ++nTreasuresRecovered; 00003B38 85F6 MOV.W @(12,R15),R0 00003B3A 7001 ADD #1,R0 00003B3C 81F6 MOV.W R0,@(12,R15) 00003B3E L1904: 00003B3E 634E EXTS.B R4,R3 00003B40 2338 TST R3,R3 00003B42 8FEF BF/S L1905 00003B44 74FF ADD #-1,R4 Mines.c 2374 IToA(nTreasuresRecovered,&szTreasuresRecovered[0]); 00003B46 65F3 MOV R15,R5 00003B48 D326 MOV.L L2128+8,R3 ; __$IToA SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 181 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003B4A 7520 ADD #32,R5 00003B4C 1F51 MOV.L R5,@(4,R15) 00003B4E 85F6 MOV.W @(12,R15),R0 00003B50 430B JSR @R3 00003B52 6403 MOV R0,R4 Mines.c 2375 if (1+StrLen("You have returned ")+StrLen(&szTreasuresRecovered[0])+StrLen(" of ")+StrLen(&szTreas +ures[0])+StrLen(" treasures to the entrance of the mine.") < SENTENCE_LEN) 00003B54 D424 MOV.L L2128+12,R4; L978 00003B56 D225 MOV.L L2128+16,R2; __$StrLen 00003B58 420B JSR @R2 00003B5A 0009 NOP 00003B5C D323 MOV.L L2128+16,R3; __$StrLen 00003B5E 600F EXTS.W R0,R0 00003B60 2F06 MOV.L R0,@-R15 00003B62 430B JSR @R3 00003B64 54F2 MOV.L @(8,R15),R4 00003B66 600F EXTS.W R0,R0 00003B68 62F6 MOV.L @R15+,R2 00003B6A 302C ADD R2,R0 00003B6C 2F06 MOV.L R0,@-R15 00003B6E D31F MOV.L L2128+16,R3; __$StrLen 00003B70 430B JSR @R3 00003B72 6493 MOV R9,R4 00003B74 62F6 MOV.L @R15+,R2 00003B76 600F EXTS.W R0,R0 00003B78 D31C MOV.L L2128+16,R3; __$StrLen 00003B7A 302C ADD R2,R0 00003B7C 2F06 MOV.L R0,@-R15 00003B7E 64F3 MOV R15,R4 00003B80 430B JSR @R3 00003B82 743C ADD #60,R4 00003B84 62F6 MOV.L @R15+,R2 00003B86 600F EXTS.W R0,R0 00003B88 D419 MOV.L L2128+20,R4; L979 00003B8A 302C ADD R2,R0 00003B8C D317 MOV.L L2128+16,R3; __$StrLen 00003B8E 430B JSR @R3 00003B90 2F06 MOV.L R0,@-R15 00003B92 600F EXTS.W R0,R0 00003B94 62F6 MOV.L @R15+,R2 00003B96 302C ADD R2,R0 00003B98 9320 MOV.W L2128,R3 ; H'0400 00003B9A 7001 ADD #1,R0 00003B9C 3033 CMP/GE R3,R0 00003B9E 8931 BT L1907 Mines.c 2376 { Mines.c 2377 szText=&m_szMsg[0]; 00003BA0 D114 MOV.L L2128+24,R1; __$m_szMsg 00003BA2 6D12 MOV.L @R1,R13 Mines.c 2378 StrCpy(szText,"You have returned "); 00003BA4 D510 MOV.L L2128+12,R5; L978 00003BA6 D214 MOV.L L2128+28,R2; __$StrCpy 00003BA8 420B JSR @R2 00003BAA 64D3 MOV R13,R4 Mines.c 2379 StrCat(szText,&szTreasuresRecovered[0]); 00003BAC D313 MOV.L L2128+32,R3; __$StrCat 00003BAE 65F3 MOV R15,R5 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 182 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003BB0 7520 ADD #32,R5 00003BB2 430B JSR @R3 00003BB4 64D3 MOV R13,R4 Mines.c 2380 StrCat(szText," of "); 00003BB6 6593 MOV R9,R5 00003BB8 D210 MOV.L L2128+32,R2; __$StrCat 00003BBA 420B JSR @R2 00003BBC 64D3 MOV R13,R4 Mines.c 2381 StrCat(szText,&szTreasures[0]); 00003BBE 65F3 MOV R15,R5 00003BC0 D30E MOV.L L2128+32,R3; __$StrCat 00003BC2 7538 ADD #56,R5 00003BC4 430B JSR @R3 00003BC6 64D3 MOV R13,R4 Mines.c 2382 StrCat(szText," treasures to the entrance of the mine."); 00003BC8 D509 MOV.L L2128+20,R5; L979 00003BCA D20C MOV.L L2128+32,R2; __$StrCat 00003BCC 420B JSR @R2 00003BCE 64D3 MOV R13,R4 Mines.c 2383 DisplayText(szText,bErr); 00003BD0 D30B MOV.L L2128+36,R3; __$DisplayText 00003BD2 65E3 MOV R14,R5 00003BD4 430B JSR @R3 00003BD6 64D3 MOV R13,R4 00003BD8 A01A BRA L1903 00003BDA 0009 NOP 00003BDC L2128: 00003BDC 0400 .DATA.W H'0400 00003BDE 0000 .DATA.W 0 00003BE0 <0000000E> .DATA.L H'0000000E+__$m_Treasure 00003BE4 <00000000> .DATA.L __$IToA 00003BE8 <00000000> .DATA.L L978 00003BEC <00000000> .DATA.L __$StrLen 00003BF0 <00000000> .DATA.L L979 00003BF4 <00000000> .DATA.L __$m_szMsg 00003BF8 <00000000> .DATA.L __$StrCpy 00003BFC <00000000> .DATA.L __$StrCat 00003C00 <00000000> .DATA.L __$DisplayText 00003C04 L1907: Mines.c 2384 } Mines.c 2385 else Mines.c 2386 { Mines.c 2387 DisplayText("Fatal error: memory was exhausted at locaton 19.",bErr); 00003C04 D444 MOV.L L2129+6,R4 ; L982 00003C06 D145 MOV.L L2129+10,R1; __$DisplayText 00003C08 410B JSR @R1 00003C0A 65E3 MOV R14,R5 Mines.c 2388 *bErr=TRUE; 00003C0C E301 MOV #1,R3 00003C0E 2E30 MOV.B R3,@R14 00003C10 L1903: Mines.c 2389 } Mines.c 2390 } Mines.c 2391 if (! *bErr) 00003C10 62E0 MOV.B @R14,R2 00003C12 2228 TST R2,R2 00003C14 8901 BT L2130 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 183 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003C16 A0AD BRA L1924 00003C18 0009 NOP 00003C1A L2130: Mines.c 2392 { Mines.c 2393 nScore=25*nRoomsVisited/(nRooms+1)+75*nTreasuresRecovered/nTreasures+45*nTreasuresCarried/nTreasur +es; 00003C1A E119 MOV #25,R1 00003C1C 60F2 MOV.L @R15,R0 00003C1E 2B1F MULS R1,R11 00003C20 D33F MOV.L L2129+14,R3; __divls 00003C22 011A STS MACL,R1 00003C24 430B JSR @R3 00003C26 7001 ADD #1,R0 00003C28 D33D MOV.L L2129+14,R3; __divls 00003C2A 6C03 MOV R0,R12 00003C2C 85F6 MOV.W @(12,R15),R0 00003C2E E14B MOV #75,R1 00003C30 201F MULS R1,R0 00003C32 011A STS MACL,R1 00003C34 84F8 MOV.B @(8,R15),R0 00003C36 6403 MOV R0,R4 00003C38 430B JSR @R3 00003C3A 6043 MOV R4,R0 00003C3C D338 MOV.L L2129+14,R3; __divls 00003C3E 3C0C ADD R0,R12 00003C40 E12D MOV #45,R1 00003C42 281F MULS R1,R8 00003C44 011A STS MACL,R1 00003C46 430B JSR @R3 00003C48 6043 MOV R4,R0 00003C4A 3C0C ADD R0,R12 00003C4C 85F8 MOV.W @(16,R15),R0 00003C4E 62BF EXTS.W R11,R2 00003C50 6303 MOV R0,R3 00003C52 4008 SHLL2 R0 00003C54 303C ADD R3,R0 00003C56 6403 MOV R0,R4 00003C58 3247 CMP/GT R4,R2 00003C5A 8B08 BF L1910 Mines.c 2394 if (nRoomsVisited > 5*nRooms) Mines.c 2395 { Mines.c 2396 nScore=nScore-nRoomsVisited/(5*nRooms); 00003C5C D330 MOV.L L2129+14,R3; __divls 00003C5E 61BF EXTS.W R11,R1 00003C60 430B JSR @R3 00003C62 6043 MOV R4,R0 00003C64 3C08 SUB R0,R12 Mines.c 2397 if (nScore < 0) 00003C66 62CF EXTS.W R12,R2 00003C68 4211 CMP/PZ R2 00003C6A 8900 BT L1910 Mines.c 2398 nScore=0; 00003C6C 6CA3 MOV R10,R12 00003C6E L1910: Mines.c 2399 } Mines.c 2400 IToA(nScore,&szScore[0]); 00003C6E 65F3 MOV R15,R5 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 184 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003C70 D32C MOV.L L2129+18,R3; __$IToA 00003C72 7544 ADD #68,R5 00003C74 2F52 MOV.L R5,@R15 00003C76 430B JSR @R3 00003C78 64C3 MOV R12,R4 Mines.c 2401 if (1+StrLen("You have scored ")+StrLen(&szScore[0])+StrLen(" of 100 points.") < SENTENCE_LEN) 00003C7A D42B MOV.L L2129+22,R4; L985 00003C7C D22B MOV.L L2129+26,R2; __$StrLen 00003C7E 420B JSR @R2 00003C80 0009 NOP 00003C82 600F EXTS.W R0,R0 00003C84 D329 MOV.L L2129+26,R3; __$StrLen 00003C86 2F06 MOV.L R0,@-R15 00003C88 430B JSR @R3 00003C8A 54F1 MOV.L @(4,R15),R4 00003C8C 62F6 MOV.L @R15+,R2 00003C8E 600F EXTS.W R0,R0 00003C90 D427 MOV.L L2129+30,R4; L986 00003C92 302C ADD R2,R0 00003C94 D325 MOV.L L2129+26,R3; __$StrLen 00003C96 430B JSR @R3 00003C98 2F06 MOV.L R0,@-R15 00003C9A 600F EXTS.W R0,R0 00003C9C 62F6 MOV.L @R15+,R2 00003C9E 302C ADD R2,R0 00003CA0 9337 MOV.W L2129,R3 ; H'0400 00003CA2 7001 ADD #1,R0 00003CA4 3033 CMP/GE R3,R0 00003CA6 8914 BT L1912 Mines.c 2402 { Mines.c 2403 szText=&m_szMsg[0]; 00003CA8 D122 MOV.L L2129+34,R1; __$m_szMsg 00003CAA 6D12 MOV.L @R1,R13 Mines.c 2404 StrCpy(szText,"You have scored "); 00003CAC D51E MOV.L L2129+22,R5; L985 00003CAE D222 MOV.L L2129+38,R2; __$StrCpy 00003CB0 420B JSR @R2 00003CB2 64D3 MOV R13,R4 Mines.c 2405 StrCat(szText,&szScore[0]); 00003CB4 D321 MOV.L L2129+42,R3; __$StrCat 00003CB6 65F3 MOV R15,R5 00003CB8 7544 ADD #68,R5 00003CBA 430B JSR @R3 00003CBC 64D3 MOV R13,R4 Mines.c 2406 StrCat(szText," of 100 points."); 00003CBE D51C MOV.L L2129+30,R5; L986 00003CC0 D21E MOV.L L2129+42,R2; __$StrCat 00003CC2 420B JSR @R2 00003CC4 64D3 MOV R13,R4 Mines.c 2407 DisplayText(szText,bErr); 00003CC6 65E3 MOV R14,R5 00003CC8 D314 MOV.L L2129+10,R3; __$DisplayText 00003CCA 430B JSR @R3 00003CCC 64D3 MOV R13,R4 00003CCE A006 BRA L1909 00003CD0 0009 NOP 00003CD2 L1912: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 185 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 2408 } Mines.c 2409 else Mines.c 2410 { Mines.c 2411 DisplayText("Fatal error: memory was exhausted at locaton 20.",bErr); 00003CD2 D41B MOV.L L2129+46,R4; L989 00003CD4 D111 MOV.L L2129+10,R1; __$DisplayText 00003CD6 410B JSR @R1 00003CD8 65E3 MOV R14,R5 Mines.c 2412 *bErr=TRUE; 00003CDA E301 MOV #1,R3 00003CDC 2E30 MOV.B R3,@R14 00003CDE L1909: Mines.c 2413 } Mines.c 2414 } Mines.c 2415 if (! *bErr) 00003CDE 62E0 MOV.B @R14,R2 00003CE0 2228 TST R2,R2 00003CE2 8B47 BF L1924 Mines.c 2416 { Mines.c 2417 if (bRank) 00003CE4 9016 MOV.W L2129+2,R0 ; H'009F 00003CE6 02FC MOV.B @(R0,R15),R2 00003CE8 2228 TST R2,R2 00003CEA 8943 BT L1924 00003CEC 64CF EXTS.W R12,R4 00003CEE E319 MOV #25,R3 00003CF0 3433 CMP/GE R3,R4 00003CF2 8905 BT L1916 Mines.c 2418 { Mines.c 2419 if (nScore < 25) Mines.c 2420 DisplayText("Your score ranks you as a beginner.",bErr); 00003CF4 D413 MOV.L L2129+50,R4; L992 00003CF6 D109 MOV.L L2129+10,R1; __$DisplayText 00003CF8 410B JSR @R1 00003CFA 65E3 MOV R14,R5 00003CFC A03A BRA L1924 00003CFE 0009 NOP 00003D00 L1916: Mines.c 2421 else if (nScore < 50) 00003D00 E232 MOV #50,R2 00003D02 3423 CMP/GE R2,R4 00003D04 8922 BT L1918 Mines.c 2422 DisplayText("Your score ranks you as a novice adventurer.",bErr); 00003D06 D410 MOV.L L2129+54,R4; L993 00003D08 D104 MOV.L L2129+10,R1; __$DisplayText 00003D0A 410B JSR @R1 00003D0C 65E3 MOV R14,R5 00003D0E A031 BRA L1924 00003D10 0009 NOP 00003D12 L2129: 00003D12 0400 .DATA.W H'0400 00003D14 009F .DATA.W H'009F 00003D16 0000 .DATA.W 0 00003D18 <00000000> .DATA.L L982 00003D1C <00000000> .DATA.L __$DisplayText 00003D20 <00000000> .DATA.L __divls 00003D24 <00000000> .DATA.L __$IToA SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 186 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003D28 <00000000> .DATA.L L985 00003D2C <00000000> .DATA.L __$StrLen 00003D30 <00000000> .DATA.L L986 00003D34 <00000000> .DATA.L __$m_szMsg 00003D38 <00000000> .DATA.L __$StrCpy 00003D3C <00000000> .DATA.L __$StrCat 00003D40 <00000000> .DATA.L L989 00003D44 <00000000> .DATA.L L992 00003D48 <00000000> .DATA.L L993 00003D4C L1918: Mines.c 2423 else if (nScore < 75) 00003D4C E14B MOV #75,R1 00003D4E 3413 CMP/GE R1,R4 00003D50 8905 BT L1920 Mines.c 2424 DisplayText("Your score ranks you as a seasoned explorer.",bErr); 00003D52 D40E MOV.L L2131+2,R4 ; L994 00003D54 D30E MOV.L L2131+6,R3 ; __$DisplayText 00003D56 430B JSR @R3 00003D58 65E3 MOV R14,R5 00003D5A A00B BRA L1924 00003D5C 0009 NOP 00003D5E L1920: Mines.c 2425 else if (nScore < 100) 00003D5E E364 MOV #100,R3 00003D60 3433 CMP/GE R3,R4 00003D62 8902 BT L1922 Mines.c 2426 DisplayText("Your score ranks you as a grissly old prospector.",bErr); 00003D64 D40B MOV.L L2131+10,R4; L995 00003D66 A002 BRA L2016 00003D68 65E3 MOV R14,R5 00003D6A L1922: Mines.c 2427 else Mines.c 2428 DisplayText("Your score ranks you as an expert treasure hunter; there is no higher rating.", +bErr); 00003D6A 65E3 MOV R14,R5 00003D6C D40A MOV.L L2131+14,R4; L996 00003D6E L2016: 00003D6E D208 MOV.L L2131+6,R2 ; __$DisplayText 00003D70 420B JSR @R2 00003D72 0009 NOP Mines.c 2429 } Mines.c 2430 } Mines.c 2431 return; Mines.c 2432 } 00003D74 L1924: 00003D74 7F74 ADD #116,R15 00003D76 4F16 LDS.L @R15+,MACL 00003D78 4F26 LDS.L @R15+,PR 00003D7A 68F6 MOV.L @R15+,R8 00003D7C 69F6 MOV.L @R15+,R9 00003D7E 6AF6 MOV.L @R15+,R10 00003D80 6BF6 MOV.L @R15+,R11 00003D82 6CF6 MOV.L @R15+,R12 00003D84 6DF6 MOV.L @R15+,R13 00003D86 000B RTS 00003D88 6EF6 MOV.L @R15+,R14 00003D8A L2131: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 187 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003D8A 0000 .DATA.W 0 00003D8C <00000000> .DATA.L L994 00003D90 <00000000> .DATA.L __$DisplayText 00003D94 <00000000> .DATA.L L995 00003D98 <00000000> .DATA.L L996 Mines.c 2433 Mines.c 2434 static void PlayGame( 00003D9C __$PlayGame: ; function: PlayGame ; frame size=68 00003D9C 2FE6 MOV.L R14,@-R15 00003D9E 6043 MOV R4,R0 Mines.c 2435 int16 nRooms, Mines.c 2436 int16 pRoomEntrance, Mines.c 2437 int16 *ppRoomWithName, Mines.c 2438 int16 nChokepoints, Mines.c 2439 int8 nTreasures, Mines.c 2440 int8 *bErr) Mines.c 2441 { Mines.c 2442 intC nCommand; Mines.c 2443 int16 nMoves; Mines.c 2444 int16 pRoom; Mines.c 2445 Mines.c 2446 nMoves=0; Mines.c 2447 pRoom=pRoomEntrance; Mines.c 2448 nCommand=(int) 'Q'; Mines.c 2449 Bdisp_AllClr_DDVRAM(); 00003DA0 D344 MOV.L L2132+6,R3 ; _Bdisp_AllClr_DDVRAM 00003DA2 2FD6 MOV.L R13,@-R15 00003DA4 2FC6 MOV.L R12,@-R15 00003DA6 ED00 MOV #0,R13 00003DA8 2FB6 MOV.L R11,@-R15 00003DAA 2FA6 MOV.L R10,@-R15 00003DAC 2F96 MOV.L R9,@-R15 00003DAE 2F86 MOV.L R8,@-R15 00003DB0 4F22 STS.L PR,@-R15 00003DB2 7FE8 ADD #-24,R15 00003DB4 81F8 MOV.W R0,@(16,R15) 00003DB6 6053 MOV R5,R0 00003DB8 81F4 MOV.W R0,@(8,R15) 00003DBA 6073 MOV R7,R0 00003DBC 1F63 MOV.L R6,@(12,R15) 00003DBE 81FA MOV.W R0,@(20,R15) 00003DC0 5EFF MOV.L @(60,R15),R14 00003DC2 E03B MOV #59,R0 00003DC4 0CFC MOV.B @(R0,R15),R12 00003DC6 60D3 MOV R13,R0 00003DC8 81F2 MOV.W R0,@(4,R15) 00003DCA 85F4 MOV.W @(8,R15),R0 00003DCC 2F01 MOV.W R0,@R15 00003DCE 430B JSR @R3 00003DD0 EA51 MOV #81,R10 Mines.c 2450 m_nLinesWritten=0; Mines.c 2451 locate(1,1); 00003DD2 E501 MOV #1,R5 00003DD4 D339 MOV.L L2132+14,R3; _locate 00003DD6 D238 MOV.L L2132+10,R2; __$m_nLinesWritten 00003DD8 22D0 MOV.B R13,@R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 188 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003DDA 430B JSR @R3 00003DDC 6453 MOV R5,R4 00003DDE E801 MOV #1,R8 00003DE0 DB38 MOV.L L2132+22,R11; __$m_bUseSmallFont Mines.c 2452 m_szParagraph[0]='\0'; 00003DE2 D937 MOV.L L2132+18,R9; __$m_szParagraph 00003DE4 6292 MOV.L @R9,R2 00003DE6 22D0 MOV.B R13,@R2 Mines.c 2453 do 00003DE8 L1925: Mines.c 2454 { Mines.c 2455 DisplayText(m_Room[pRoom].szDescription,bErr); 00003DE8 64F1 MOV.W @R15,R4 00003DEA 65E3 MOV R14,R5 00003DEC D136 MOV.L L2132+26,R1; __$m_Room 00003DEE 6343 MOV R4,R3 00003DF0 6212 MOV.L @R1,R2 00003DF2 4408 SHLL2 R4 00003DF4 343C ADD R3,R4 00003DF6 4408 SHLL2 R4 00003DF8 D334 MOV.L L2132+30,R3; __$DisplayText 00003DFA 342C ADD R2,R4 00003DFC 430B JSR @R3 00003DFE 6442 MOV.L @R4,R4 Mines.c 2456 if (! *bErr) 00003E00 62E0 MOV.B @R14,R2 00003E02 2228 TST R2,R2 00003E04 8901 BT L2133 00003E06 A10A BRA L1933 00003E08 0009 NOP 00003E0A L2133: Mines.c 2457 ListTreasuresAndWeapons(pRoom,nTreasures,bErr); 00003E0A 66E3 MOV R14,R6 00003E0C D330 MOV.L L2132+34,R3; __$ListTreasuresAndWeapons 00003E0E 65C3 MOV R12,R5 00003E10 430B JSR @R3 00003E12 64F1 MOV.W @R15,R4 Mines.c 2458 if (! *bErr) 00003E14 62E0 MOV.B @R14,R2 00003E16 2228 TST R2,R2 00003E18 8901 BT L2134 00003E1A A100 BRA L1933 00003E1C 0009 NOP 00003E1E L2134: Mines.c 2459 ListPassages(pRoom,bErr); 00003E1E 65E3 MOV R14,R5 00003E20 D32C MOV.L L2132+38,R3; __$ListPassages 00003E22 430B JSR @R3 00003E24 64F1 MOV.W @R15,R4 Mines.c 2460 if (! *bErr) 00003E26 62E0 MOV.B @R14,R2 00003E28 2228 TST R2,R2 00003E2A 8901 BT L2135 00003E2C A0F7 BRA L1933 00003E2E 0009 NOP 00003E30 L2135: Mines.c 2461 { SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 189 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 2462 DisplayParagraph(&m_szParagraph[0]); 00003E30 D329 MOV.L L2132+42,R3; __$DisplayParagraph 00003E32 430B JSR @R3 00003E34 6492 MOV.L @R9,R4 Mines.c 2463 nCommand=Command(); 00003E36 D229 MOV.L L2132+46,R2; __$Command 00003E38 420B JSR @R2 00003E3A 0009 NOP Mines.c 2464 Bdisp_AllClr_DDVRAM(); 00003E3C D31D MOV.L L2132+6,R3 ; _Bdisp_AllClr_DDVRAM 00003E3E 430B JSR @R3 00003E40 6A03 MOV R0,R10 Mines.c 2465 m_nLinesWritten=0; 00003E42 D21D MOV.L L2132+10,R2; __$m_nLinesWritten 00003E44 22D0 MOV.B R13,@R2 Mines.c 2466 if (! m_bUseSmallFont) 00003E46 63B0 MOV.B @R11,R3 00003E48 2338 TST R3,R3 00003E4A 8B03 BF L1929 Mines.c 2467 locate(1,1); 00003E4C D31B MOV.L L2132+14,R3; _locate 00003E4E E501 MOV #1,R5 00003E50 430B JSR @R3 00003E52 6453 MOV R5,R4 00003E54 L1929: Mines.c 2468 m_szParagraph[0]='\0'; 00003E54 6292 MOV.L @R9,R2 Mines.c 2469 switch (nCommand) 00003E56 60A3 MOV R10,R0 00003E58 8838 CMP/EQ #56,R0 00003E5A 8F02 BF/S L2136 00003E5C 22D0 MOV.B R13,@R2 00003E5E A065 BRA L1357 00003E60 0009 NOP 00003E62 L2136: 00003E62 884E CMP/EQ #78,R0 00003E64 8B01 BF L2137 00003E66 A061 BRA L1358 00003E68 0009 NOP 00003E6A L2137: 00003E6A 9120 MOV.W L2132,R1 ; H'00A9 00003E6C 3010 CMP/EQ R1,R0 00003E6E 8B01 BF L2138 00003E70 A060 BRA L1359 00003E72 0009 NOP 00003E74 L2138: 00003E74 8853 CMP/EQ #83,R0 00003E76 8B01 BF L2139 00003E78 A05C BRA L1360 00003E7A 0009 NOP 00003E7C L2139: 00003E7C 9118 MOV.W L2132+2,R1 ; H'0082 00003E7E 3010 CMP/EQ R1,R0 00003E80 8B01 BF L2140 00003E82 A05B BRA L1361 00003E84 0009 NOP 00003E86 L2140: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 190 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003E86 8845 CMP/EQ #69,R0 00003E88 8B01 BF L2141 00003E8A A057 BRA L1362 00003E8C 0009 NOP 00003E8E L2141: 00003E8E 8833 CMP/EQ #51,R0 00003E90 8B01 BF L2142 00003E92 A057 BRA L1363 00003E94 0009 NOP 00003E96 L2142: 00003E96 8857 CMP/EQ #87,R0 00003E98 8954 BT L1364 00003E9A 8831 CMP/EQ #49,R0 00003E9C 8956 BT L1365 00003E9E 8855 CMP/EQ #85,R0 00003EA0 8954 BT L1366 00003EA2 9106 MOV.W L2132+4,R1 ; H'0081 00003EA4 3010 CMP/EQ R1,R0 00003EA6 8955 BT L1367 00003EA8 8844 CMP/EQ #68,R0 00003EAA A019 BRA L2023 00003EAC 0009 NOP 00003EAE L2132: 00003EAE 00A9 .DATA.W H'00A9 00003EB0 0082 .DATA.W H'0082 00003EB2 0081 .DATA.W H'0081 00003EB4 <00000000> .DATA.L _Bdisp_AllClr_DDVRAM 00003EB8 <00000000> .DATA.L __$m_nLinesWritten 00003EBC <00000000> .DATA.L _locate 00003EC0 <00000000> .DATA.L __$m_szParagraph 00003EC4 <00000000> .DATA.L __$m_bUseSmallFont 00003EC8 <00000000> .DATA.L __$m_Room 00003ECC <00000000> .DATA.L __$DisplayText 00003ED0 <00000000> .DATA.L __$ListTreasuresAndWeapons 00003ED4 <00000000> .DATA.L __$ListPassages 00003ED8 <00000000> .DATA.L __$DisplayParagraph 00003EDC <00000000> .DATA.L __$Command 00003EE0 L2023: 00003EE0 8938 BT L1368 00003EE2 914E MOV.W L2143,R1 ; H'0085 00003EE4 3010 CMP/EQ R1,R0 00003EE6 893D BT L1369 00003EE8 8843 CMP/EQ #67,R0 00003EEA 893B BT L1370 00003EEC 8828 CMP/EQ #40,R0 00003EEE 8940 BT L1371 00003EF0 8849 CMP/EQ #73,R0 00003EF2 893E BT L1372 00003EF4 880E CMP/EQ #14,R0 00003EF6 894B BT L1373 00003EF8 884C CMP/EQ #76,R0 00003EFA 8949 BT L1374 00003EFC 8834 CMP/EQ #52,R0 00003EFE 894E BT L1375 00003F00 8850 CMP/EQ #80,R0 00003F02 894C BT L1376 00003F04 8839 CMP/EQ #57,R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 191 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003F06 894D BT L1377 00003F08 884F CMP/EQ #79,R0 00003F0A 894B BT L1378 00003F0C 8835 CMP/EQ #53,R0 00003F0E 8956 BT L1379 00003F10 8851 CMP/EQ #81,R0 00003F12 8954 BT L1380 00003F14 9136 MOV.W L2143+2,R1 ; H'755E 00003F16 3010 CMP/EQ R1,R0 00003F18 8960 BT L1381 00003F1A 8848 CMP/EQ #72,R0 00003F1C 895E BT L1382 00003F1E 9132 MOV.W L2143+4,R1 ; H'0083 00003F20 3010 CMP/EQ R1,R0 00003F22 8960 BT L1383 00003F24 8846 CMP/EQ #70,R0 00003F26 895E BT L1384 00003F28 A06A BRA L1385 00003F2A 0009 NOP 00003F2C L1357: ; case label Mines.c 2470 { Mines.c 2471 case 56: Mines.c 2472 case (int) 'N': 00003F2C L1358: ; case label Mines.c 2473 Move(&nMoves,0,&pRoom,bErr); 00003F2C 67E3 MOV R14,R7 00003F2E 66F3 MOV R15,R6 Mines.c 2474 break; 00003F30 A013 BRA L2021 00003F32 E500 MOV #0,R5 00003F34 L1359: ; case label Mines.c 2475 case 169: Mines.c 2476 case (int) 'S': 00003F34 L1360: ; case label Mines.c 2477 Move(&nMoves,1,&pRoom,bErr); 00003F34 67E3 MOV R14,R7 00003F36 66F3 MOV R15,R6 Mines.c 2478 break; 00003F38 A00F BRA L2021 00003F3A E501 MOV #1,R5 00003F3C L1361: ; case label Mines.c 2479 case 130: Mines.c 2480 case (int) 'E': 00003F3C L1362: ; case label Mines.c 2481 Move(&nMoves,2,&pRoom,bErr); 00003F3C 67E3 MOV R14,R7 00003F3E 66F3 MOV R15,R6 Mines.c 2482 break; 00003F40 A00B BRA L2021 00003F42 E502 MOV #2,R5 00003F44 L1363: ; case label Mines.c 2483 case 51: Mines.c 2484 case (int) 'W': 00003F44 L1364: ; case label Mines.c 2485 Move(&nMoves,3,&pRoom,bErr); 00003F44 67E3 MOV R14,R7 00003F46 66F3 MOV R15,R6 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 192 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 2486 break; 00003F48 A007 BRA L2021 00003F4A E503 MOV #3,R5 00003F4C L1365: ; case label Mines.c 2487 case 49: Mines.c 2488 case (int) 'U': 00003F4C L1366: ; case label Mines.c 2489 Move(&nMoves,4,&pRoom,bErr); 00003F4C 67E3 MOV R14,R7 00003F4E 66F3 MOV R15,R6 Mines.c 2490 break; 00003F50 A003 BRA L2021 00003F52 E504 MOV #4,R5 00003F54 L1367: ; case label Mines.c 2491 case 129: Mines.c 2492 case (int) 'D': 00003F54 L1368: ; case label Mines.c 2493 Move(&nMoves,5,&pRoom,bErr); 00003F54 67E3 MOV R14,R7 00003F56 66F3 MOV R15,R6 00003F58 E505 MOV #5,R5 Mines.c 2494 break; 00003F5A L2021: 00003F5A 64F3 MOV R15,R4 00003F5C BA6D BSR __$Move 00003F5E 7404 ADD #4,R4 00003F60 A055 BRA L1928 00003F62 0009 NOP 00003F64 L1369: ; case label Mines.c 2495 case 133: Mines.c 2496 case (int) 'C': 00003F64 L1370: ; case label Mines.c 2497 Carry(pRoom,nTreasures,bErr); 00003F64 D308 MOV.L L2143+6,R3 ; __$Carry 00003F66 66E3 MOV R14,R6 00003F68 65C3 MOV R12,R5 00003F6A 430B JSR @R3 00003F6C 64F1 MOV.W @R15,R4 Mines.c 2498 break; 00003F6E A04E BRA L1928 00003F70 0009 NOP 00003F72 L1371: ; case label Mines.c 2499 case 40: Mines.c 2500 case (int) 'I': 00003F72 L1372: ; case label Mines.c 2501 Inventory(nChokepoints,nTreasures,bErr); 00003F72 66E3 MOV R14,R6 00003F74 85FA MOV.W @(20,R15),R0 00003F76 65C3 MOV R12,R5 00003F78 D304 MOV.L L2143+10,R3; __$Inventory 00003F7A 430B JSR @R3 00003F7C 6403 MOV R0,R4 Mines.c 2502 break; 00003F7E A046 BRA L1928 00003F80 0009 NOP 00003F82 L2143: 00003F82 0085 .DATA.W H'0085 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 193 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003F84 755E .DATA.W H'755E 00003F86 0083 .DATA.W H'0083 00003F88 <00000000> .DATA.L __$Carry 00003F8C <00000000> .DATA.L __$Inventory 00003F90 L1373: ; case label Mines.c 2503 case 14: Mines.c 2504 case (int) 'L': 00003F90 L1374: ; case label Mines.c 2505 Leave(pRoom,nTreasures,bErr); 00003F90 D329 MOV.L L2144,R3 ; __$Leave 00003F92 66E3 MOV R14,R6 00003F94 65C3 MOV R12,R5 00003F96 430B JSR @R3 00003F98 64F1 MOV.W @R15,R4 Mines.c 2506 break; 00003F9A A038 BRA L1928 00003F9C 0009 NOP 00003F9E L1375: ; case label Mines.c 2507 case 52: Mines.c 2508 case (int) 'P': 00003F9E L1376: ; case label Mines.c 2509 Points(nRooms,pRoomEntrance,ppRoomWithName,nTreasures,nMoves,FALSE,bErr); 00003F9E 2FE6 MOV.L R14,@-R15 Mines.c 2510 break; 00003FA0 A010 BRA L2022 00003FA2 2FD6 MOV.L R13,@-R15 00003FA4 L1377: ; case label Mines.c 2511 case 57: Mines.c 2512 case (int) 'O': 00003FA4 L1378: ; case label Mines.c 2513 WayOut(nRooms,pRoom,pRoomEntrance,ppRoomWithName,nTreasures,bErr); 00003FA4 2FE6 MOV.L R14,@-R15 00003FA6 2FC6 MOV.L R12,@-R15 00003FA8 57F5 MOV.L @(20,R15),R7 00003FAA 85F8 MOV.W @(16,R15),R0 00003FAC D323 MOV.L L2144+4,R3 ; __$WayOut 00003FAE 6603 MOV R0,R6 00003FB0 85F4 MOV.W @(8,R15),R0 00003FB2 6503 MOV R0,R5 00003FB4 85FC MOV.W @(24,R15),R0 00003FB6 430B JSR @R3 00003FB8 6403 MOV R0,R4 Mines.c 2514 break; 00003FBA A028 BRA L1928 00003FBC 7F08 ADD #8,R15 00003FBE L1379: ; case label Mines.c 2515 case 53: Mines.c 2516 case (int) 'Q': 00003FBE L1380: ; case label Mines.c 2517 nCommand='Q'; 00003FBE EA51 MOV #81,R10 Mines.c 2518 Points(nRooms,pRoomEntrance,ppRoomWithName,nTreasures,nMoves,TRUE,bErr); 00003FC0 2FE6 MOV.L R14,@-R15 00003FC2 2F86 MOV.L R8,@-R15 Mines.c 2519 break; 00003FC4 L2022: 00003FC4 85F6 MOV.W @(12,R15),R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 194 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00003FC6 67C3 MOV R12,R7 00003FC8 6303 MOV R0,R3 00003FCA 2F36 MOV.L R3,@-R15 00003FCC 56F6 MOV.L @(24,R15),R6 00003FCE 85FA MOV.W @(20,R15),R0 00003FD0 6503 MOV R0,R5 00003FD2 85FE MOV.W @(28,R15),R0 00003FD4 BC5C BSR __$Points 00003FD6 6403 MOV R0,R4 00003FD8 A019 BRA L1928 00003FDA 7F0C ADD #12,R15 00003FDC L1381: ; case label Mines.c 2520 case 30046: Mines.c 2521 case (int) 'H': 00003FDC L1382: ; case label Mines.c 2522 DisplayHelp(bErr); 00003FDC D318 MOV.L L2144+8,R3 ; __$DisplayHelp 00003FDE 430B JSR @R3 00003FE0 64E3 MOV R14,R4 Mines.c 2523 break; 00003FE2 A014 BRA L1928 00003FE4 0009 NOP 00003FE6 L1383: ; case label Mines.c 2524 case 131: Mines.c 2525 case (int) 'F': 00003FE6 L1384: ; case label Mines.c 2526 if (m_bUseSmallFont) 00003FE6 63B0 MOV.B @R11,R3 00003FE8 2338 TST R3,R3 00003FEA 8904 BT L1931 Mines.c 2527 { Mines.c 2528 m_nLinesPerPage=8; 00003FEC D215 MOV.L L2144+12,R2; __$m_nLinesPerPage 00003FEE E308 MOV #8,R3 00003FF0 2231 MOV.W R3,@R2 Mines.c 2529 m_bUseSmallFont=FALSE; 00003FF2 A00C BRA L1928 00003FF4 2BD0 MOV.B R13,@R11 00003FF6 L1931: Mines.c 2530 } Mines.c 2531 else Mines.c 2532 { Mines.c 2533 m_nLinesPerPage=10; 00003FF6 E20A MOV #10,R2 00003FF8 D312 MOV.L L2144+12,R3; __$m_nLinesPerPage 00003FFA 2321 MOV.W R2,@R3 Mines.c 2534 m_bUseSmallFont=TRUE; Mines.c 2535 } Mines.c 2536 break; 00003FFC A007 BRA L1928 00003FFE 2B80 MOV.B R8,@R11 00004000 L1385: ; default label Mines.c 2537 default: Mines.c 2538 DisplayText("I don\'t recognize that command.",bErr); 00004000 D411 MOV.L L2144+16,R4; L1012 00004002 D312 MOV.L L2144+20,R3; __$DisplayText 00004004 430B JSR @R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 195 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00004006 65E3 MOV R14,R5 Mines.c 2539 ListCommands(bErr); 00004008 D211 MOV.L L2144+24,R2; __$ListCommands 0000400A 420B JSR @R2 0000400C 64E3 MOV R14,R4 Mines.c 2540 break; 0000400E L1928: Mines.c 2541 } Mines.c 2542 } Mines.c 2543 } Mines.c 2544 while ((! *bErr) && (nCommand != (int) 'Q')); 0000400E 62E0 MOV.B @R14,R2 00004010 2228 TST R2,R2 00004012 8B04 BF L1933 00004014 60A3 MOV R10,R0 00004016 8851 CMP/EQ #81,R0 00004018 8901 BT L2145 0000401A AEE5 BRA L1925 0000401C 0009 NOP 0000401E L2145: 0000401E L1933: Mines.c 2545 DisplayParagraph(&m_szParagraph[0]); 0000401E D20D MOV.L L2144+28,R2; __$DisplayParagraph 00004020 420B JSR @R2 00004022 6492 MOV.L @R9,R4 Mines.c 2546 return; Mines.c 2547 } 00004024 7F18 ADD #24,R15 00004026 4F26 LDS.L @R15+,PR 00004028 68F6 MOV.L @R15+,R8 0000402A 69F6 MOV.L @R15+,R9 0000402C 6AF6 MOV.L @R15+,R10 0000402E 6BF6 MOV.L @R15+,R11 00004030 6CF6 MOV.L @R15+,R12 00004032 6DF6 MOV.L @R15+,R13 00004034 000B RTS 00004036 6EF6 MOV.L @R15+,R14 00004038 L2144: 00004038 <00000000> .DATA.L __$Leave 0000403C <00000000> .DATA.L __$WayOut 00004040 <00000000> .DATA.L __$DisplayHelp 00004044 <00000000> .DATA.L __$m_nLinesPerPage 00004048 <00000000> .DATA.L L1012 0000404C <00000000> .DATA.L __$DisplayText 00004050 <00000000> .DATA.L __$ListCommands 00004054 <00000000> .DATA.L __$DisplayParagraph Mines.c 2548 Mines.c 2549 int AddIn_main( 00004058 _AddIn_main: ; function: AddIn_main ; frame size=68 00004058 2FE6 MOV.L R14,@-R15 Mines.c 2550 int isAppli, Mines.c 2551 unsigned short OptionNum) Mines.c 2552 { Mines.c 2553 int8 bErr; Mines.c 2554 int bResult; Mines.c 2555 int16 nChokepoints; SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 196 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 2556 int16 nRooms; Mines.c 2557 int8 nTreasures; Mines.c 2558 int16 pTreasure; Mines.c 2559 int16 pRoomEntrance; Mines.c 2560 int16 *ppRoomWithName; Mines.c 2561 char szProductID [12]; Mines.c 2562 unsigned int uiKey; Mines.c 2563 Mines.c 2564 bErr=FALSE; Mines.c 2565 locate(1,1); 0000405A E501 MOV #1,R5 0000405C D349 MOV.L L2146+14,R3; _locate 0000405E EE00 MOV #0,R14 00004060 2FD6 MOV.L R13,@-R15 00004062 2FC6 MOV.L R12,@-R15 00004064 2FB6 MOV.L R11,@-R15 00004066 2FA6 MOV.L R10,@-R15 00004068 2F96 MOV.L R9,@-R15 0000406A 2F86 MOV.L R8,@-R15 0000406C 4F22 STS.L PR,@-R15 0000406E 7FE4 ADD #-28,R15 00004070 2FE0 MOV.B R14,@R15 00004072 430B JSR @R3 00004074 6453 MOV R5,R4 Mines.c 2566 m_nLinesWritten=0; 00004076 D244 MOV.L L2146+18,R2; __$m_nLinesWritten Mines.c 2567 m_FindPathLocal=(FindPathLocalsStackRec *) NULL; 00004078 D344 MOV.L L2146+22,R3; __$m_FindPathLocal 0000407A 22E0 MOV.B R14,@R2 0000407C 23E2 MOV.L R14,@R3 Mines.c 2568 m_FindPathParameter=(FindPathParametersStackRec *) NULL; 0000407E D144 MOV.L L2146+26,R1; __$m_FindPathParameter Mines.c 2569 m_Passage=(PassageRec *) NULL; 00004080 D244 MOV.L L2146+30,R2; __$m_Passage 00004082 21E2 MOV.L R14,@R1 00004084 22E2 MOV.L R14,@R2 Mines.c 2570 m_Path=(PathStackRec *) NULL; 00004086 D344 MOV.L L2146+34,R3; __$m_Path Mines.c 2571 m_pRoomWithName=(int16 *) NULL; 00004088 D144 MOV.L L2146+38,R1; __$m_pRoomWithName 0000408A 23E2 MOV.L R14,@R3 0000408C 21E2 MOV.L R14,@R1 Mines.c 2572 m_Room=(RoomRec *) NULL; 0000408E DC44 MOV.L L2146+42,R12; __$m_Room Mines.c 2573 m_szMsg=(char *) NULL; 00004090 D244 MOV.L L2146+46,R2; __$m_szMsg 00004092 2CE2 MOV.L R14,@R12 00004094 22E2 MOV.L R14,@R2 Mines.c 2574 m_szParagraph=(char *) NULL; 00004096 D344 MOV.L L2146+50,R3; __$m_szParagraph Mines.c 2575 m_szRoom=(char **) NULL; 00004098 D844 MOV.L L2146+54,R8; __$m_szRoom 0000409A 23E2 MOV.L R14,@R3 0000409C 28E2 MOV.L R14,@R8 Mines.c 2576 m_szWayOut=(char *) NULL; 0000409E D144 MOV.L L2146+58,R1; __$m_szWayOut Mines.c 2577 if ((m_FindPathLocal=(FindPathLocalsStackRec *) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 197 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 2578 malloc((3*NUM_ROOMS-2)*sizeof(FindPathLocalsStackRec))) == NULL) 000040A0 D944 MOV.L L2146+62,R9; L1028 000040A2 21E2 MOV.L R14,@R1 000040A4 DA44 MOV.L L2146+66,R10; _malloc 000040A6 DB45 MOV.L L2146+70,R11; _Print 000040A8 9465 MOV.W L2146,R4 ; H'1270 000040AA 4A0B JSR @R10 000040AC ED01 MOV #1,R13 000040AE 2008 TST R0,R0 000040B0 D336 MOV.L L2146+22,R3; __$m_FindPathLocal 000040B2 8F03 BF/S L1935 000040B4 2302 MOV.L R0,@R3 Mines.c 2579 { Mines.c 2580 bErr=TRUE; 000040B6 2FD0 MOV.B R13,@R15 Mines.c 2581 Print((unsigned char *) "Error: out of memory"); 000040B8 4B0B JSR @R11 000040BA 6493 MOV R9,R4 000040BC L1935: Mines.c 2582 } Mines.c 2583 if (! bErr) 000040BC 63F0 MOV.B @R15,R3 000040BE 2338 TST R3,R3 000040C0 8901 BT L2147 000040C2 A13F BRA L1954 000040C4 0009 NOP 000040C6 L2147: Mines.c 2584 { Mines.c 2585 if ((m_FindPathParameter=(FindPathParametersStackRec *) Mines.c 2586 malloc((3*NUM_ROOMS-2)*sizeof(FindPathParametersStackRec))) == NULL) 000040C6 9457 MOV.W L2146+2,R4 ; H'06EA 000040C8 4A0B JSR @R10 000040CA 0009 NOP 000040CC D330 MOV.L L2146+26,R3; __$m_FindPathParameter 000040CE 2008 TST R0,R0 000040D0 8F03 BF/S L1936 000040D2 2302 MOV.L R0,@R3 Mines.c 2587 { Mines.c 2588 bErr=TRUE; 000040D4 2FD0 MOV.B R13,@R15 Mines.c 2589 Print((unsigned char *) "Error: out of memory"); 000040D6 4B0B JSR @R11 000040D8 6493 MOV R9,R4 000040DA L1936: Mines.c 2590 } Mines.c 2591 } Mines.c 2592 if (! bErr) 000040DA 63F0 MOV.B @R15,R3 000040DC 2338 TST R3,R3 000040DE 8901 BT L2148 000040E0 A130 BRA L1954 000040E2 0009 NOP 000040E4 L2148: Mines.c 2593 { Mines.c 2594 if ((m_Passage=(PassageRec *) Mines.c 2595 malloc((9*NUM_ROOMS-8)*sizeof(PassageRec))) == NULL) 000040E4 9449 MOV.W L2146+4,R4 ; H'1B98 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 198 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000040E6 4A0B JSR @R10 000040E8 0009 NOP 000040EA 2008 TST R0,R0 000040EC D329 MOV.L L2146+30,R3; __$m_Passage 000040EE 8F03 BF/S L1938 000040F0 2302 MOV.L R0,@R3 Mines.c 2596 { Mines.c 2597 bErr=TRUE; 000040F2 2FD0 MOV.B R13,@R15 Mines.c 2598 Print((unsigned char *) "Error: out of memory"); 000040F4 4B0B JSR @R11 000040F6 6493 MOV R9,R4 000040F8 L1938: Mines.c 2599 } Mines.c 2600 } Mines.c 2601 if (! bErr) 000040F8 63F0 MOV.B @R15,R3 000040FA 2338 TST R3,R3 000040FC 8901 BT L2149 000040FE A121 BRA L1954 00004100 0009 NOP 00004102 L2149: Mines.c 2602 { Mines.c 2603 if ((m_Path=(PathStackRec *) Mines.c 2604 malloc((6*NUM_ROOMS)*sizeof(PathStackRec))) == NULL) 00004102 943B MOV.W L2146+6,R4 ; H'1290 00004104 4A0B JSR @R10 00004106 0009 NOP 00004108 D323 MOV.L L2146+34,R3; __$m_Path 0000410A 2008 TST R0,R0 0000410C 8F03 BF/S L1940 0000410E 2302 MOV.L R0,@R3 Mines.c 2605 { Mines.c 2606 bErr=TRUE; 00004110 2FD0 MOV.B R13,@R15 Mines.c 2607 Print((unsigned char *) "Error: out of memory"); 00004112 4B0B JSR @R11 00004114 6493 MOV R9,R4 00004116 L1940: Mines.c 2608 } Mines.c 2609 } Mines.c 2610 if (! bErr) 00004116 63F0 MOV.B @R15,R3 00004118 2338 TST R3,R3 0000411A 8901 BT L2150 0000411C A112 BRA L1954 0000411E 0009 NOP 00004120 L2150: Mines.c 2611 { Mines.c 2612 if ((m_pRoomWithName=(int16 *) Mines.c 2613 malloc((NUM_ROOMS+1)*sizeof(int16))) == NULL) 00004120 942D MOV.W L2146+8,R4 ; H'00C8 00004122 4A0B JSR @R10 00004124 0009 NOP 00004126 2008 TST R0,R0 00004128 D31C MOV.L L2146+38,R3; __$m_pRoomWithName 0000412A 8F03 BF/S L1942 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 199 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000412C 2302 MOV.L R0,@R3 Mines.c 2614 { Mines.c 2615 bErr=TRUE; 0000412E 2FD0 MOV.B R13,@R15 Mines.c 2616 Print((unsigned char *) "Error: out of memory"); 00004130 4B0B JSR @R11 00004132 6493 MOV R9,R4 00004134 L1942: Mines.c 2617 } Mines.c 2618 } Mines.c 2619 if (! bErr) 00004134 63F0 MOV.B @R15,R3 00004136 2338 TST R3,R3 00004138 8901 BT L2151 0000413A A103 BRA L1954 0000413C 0009 NOP 0000413E L2151: Mines.c 2620 { Mines.c 2621 if ((m_Room=(RoomRec *) Mines.c 2622 malloc((3*NUM_ROOMS-2)*sizeof(RoomRec))) == NULL) 0000413E 941F MOV.W L2146+10,R4; H'170C 00004140 4A0B JSR @R10 00004142 0009 NOP 00004144 2008 TST R0,R0 00004146 8F03 BF/S L1944 00004148 2C02 MOV.L R0,@R12 Mines.c 2623 { Mines.c 2624 bErr=TRUE; 0000414A 2FD0 MOV.B R13,@R15 Mines.c 2625 Print((unsigned char *) "Error: out of memory"); 0000414C 4B0B JSR @R11 0000414E 6493 MOV R9,R4 00004150 L1944: Mines.c 2626 } Mines.c 2627 } Mines.c 2628 if (! bErr) 00004150 63F0 MOV.B @R15,R3 00004152 2338 TST R3,R3 00004154 8901 BT L2152 00004156 A0F5 BRA L1954 00004158 0009 NOP 0000415A L2152: Mines.c 2629 { Mines.c 2630 if ((m_szMsg=(char *) Mines.c 2631 malloc(SENTENCE_LEN)) == NULL) 0000415A 9412 MOV.W L2146+12,R4; H'0400 0000415C 4A0B JSR @R10 0000415E 0009 NOP 00004160 D310 MOV.L L2146+46,R3; __$m_szMsg 00004162 2008 TST R0,R0 00004164 8F03 BF/S L1946 00004166 2302 MOV.L R0,@R3 Mines.c 2632 { Mines.c 2633 bErr=TRUE; 00004168 2FD0 MOV.B R13,@R15 Mines.c 2634 Print((unsigned char *) "Error: out of memory"); 0000416A 4B0B JSR @R11 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 200 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000416C 6493 MOV R9,R4 0000416E L1946: Mines.c 2635 } Mines.c 2636 } Mines.c 2637 if (! bErr) 0000416E 63F0 MOV.B @R15,R3 00004170 2338 TST R3,R3 00004172 A025 BRA L2024 00004174 0009 NOP 00004176 L2146: 00004176 1270 .DATA.W H'1270 00004178 06EA .DATA.W H'06EA 0000417A 1B98 .DATA.W H'1B98 0000417C 1290 .DATA.W H'1290 0000417E 00C8 .DATA.W H'00C8 00004180 170C .DATA.W H'170C 00004182 0400 .DATA.W H'0400 00004184 <00000000> .DATA.L _locate 00004188 <00000000> .DATA.L __$m_nLinesWritten 0000418C <00000000> .DATA.L __$m_FindPathLocal 00004190 <00000000> .DATA.L __$m_FindPathParameter 00004194 <00000000> .DATA.L __$m_Passage 00004198 <00000000> .DATA.L __$m_Path 0000419C <00000000> .DATA.L __$m_pRoomWithName 000041A0 <00000000> .DATA.L __$m_Room 000041A4 <00000000> .DATA.L __$m_szMsg 000041A8 <00000000> .DATA.L __$m_szParagraph 000041AC <00000000> .DATA.L __$m_szRoom 000041B0 <00000000> .DATA.L __$m_szWayOut 000041B4 <00000000> .DATA.L L1028 000041B8 <00000000> .DATA.L _malloc 000041BC <00000000> .DATA.L _Print 000041C0 L2024: 000041C0 8901 BT L2153 000041C2 A0BF BRA L1954 000041C4 0009 NOP 000041C6 L2153: Mines.c 2638 { Mines.c 2639 if ((m_szParagraph=(char *) Mines.c 2640 malloc(PARAGRAPH_LEN)) == NULL) 000041C6 9497 MOV.W L2154,R4 ; H'2000 000041C8 4A0B JSR @R10 000041CA 0009 NOP 000041CC D34B MOV.L L2154+4,R3 ; __$m_szParagraph 000041CE 2008 TST R0,R0 000041D0 8F03 BF/S L1948 000041D2 2302 MOV.L R0,@R3 Mines.c 2641 { Mines.c 2642 bErr=TRUE; 000041D4 2FD0 MOV.B R13,@R15 Mines.c 2643 Print((unsigned char *) "Error: out of memory"); 000041D6 4B0B JSR @R11 000041D8 6493 MOV R9,R4 000041DA L1948: Mines.c 2644 } Mines.c 2645 } Mines.c 2646 if (! bErr) SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 201 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000041DA 63F0 MOV.B @R15,R3 000041DC 2338 TST R3,R3 000041DE 8901 BT L2155 000041E0 A0B0 BRA L1954 000041E2 0009 NOP 000041E4 L2155: Mines.c 2647 { Mines.c 2648 if ((m_szRoom=(char **) Mines.c 2649 malloc(NUM_ROOMS*sizeof(char *))) == NULL) 000041E4 9489 MOV.W L2154+2,R4 ; H'018C 000041E6 4A0B JSR @R10 000041E8 0009 NOP 000041EA 2008 TST R0,R0 000041EC 8F03 BF/S L1950 000041EE 2802 MOV.L R0,@R8 Mines.c 2650 { Mines.c 2651 bErr=TRUE; 000041F0 2FD0 MOV.B R13,@R15 Mines.c 2652 Print((unsigned char *) "Error: out of memory"); 000041F2 4B0B JSR @R11 000041F4 6493 MOV R9,R4 000041F6 L1950: Mines.c 2653 } Mines.c 2654 } Mines.c 2655 if (! bErr) 000041F6 63F0 MOV.B @R15,R3 000041F8 2338 TST R3,R3 000041FA 8901 BT L2156 000041FC A0A2 BRA L1954 000041FE 0009 NOP 00004200 L2156: Mines.c 2656 { Mines.c 2657 if ((m_szWayOut=(char *) Mines.c 2658 malloc(NUM_ROOMS*sizeof(char))) == NULL) 00004200 4A0B JSR @R10 00004202 E463 MOV #99,R4 00004204 D33E MOV.L L2154+8,R3 ; __$m_szWayOut 00004206 2008 TST R0,R0 00004208 8F03 BF/S L1952 0000420A 2302 MOV.L R0,@R3 Mines.c 2659 { Mines.c 2660 bErr=TRUE; 0000420C 2FD0 MOV.B R13,@R15 Mines.c 2661 Print((unsigned char *) "Error: out of memory"); 0000420E 4B0B JSR @R11 00004210 6493 MOV R9,R4 00004212 L1952: Mines.c 2662 } Mines.c 2663 } Mines.c 2664 if (! bErr) 00004212 63F0 MOV.B @R15,R3 00004214 2338 TST R3,R3 00004216 8901 BT L2157 00004218 A094 BRA L1954 0000421A 0009 NOP 0000421C L2157: Mines.c 2665 { SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 202 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Mines.c 2666 m_szParagraph[0]='\0'; 0000421C D237 MOV.L L2154+4,R2 ; __$m_szParagraph Mines.c 2667 m_bUseSmallFont=TRUE; Mines.c 2668 m_nLinesPerPage=10; 0000421E E10A MOV #10,R1 00004220 D039 MOV.L L2154+16,R0; __$m_nLinesPerPage 00004222 6322 MOV.L @R2,R3 00004224 23E0 MOV.B R14,@R3 Mines.c 2669 m_nMaxLineLen=21; 00004226 E215 MOV #21,R2 00004228 D336 MOV.L L2154+12,R3; __$m_bUseSmallFont 0000422A 23D0 MOV.B R13,@R3 0000422C 2011 MOV.W R1,@R0 Mines.c 2670 m_nXMax=127; 0000422E E37F MOV #127,R3 00004230 D136 MOV.L L2154+20,R1; __$m_nMaxLineLen 00004232 2121 MOV.W R2,@R1 00004234 D236 MOV.L L2154+24,R2; __$m_nXMax 00004236 2232 MOV.L R3,@R2 Mines.c 2671 InitializeGlobals(); 00004238 D336 MOV.L L2154+28,R3; __$InitializeGlobals 0000423A 430B JSR @R3 0000423C 0009 NOP Mines.c 2672 m_nRooms=0; Mines.c 2673 pRoomEntrance=m_nRooms; Mines.c 2674 ++m_nRooms; Mines.c 2675 m_Room[pRoomEntrance].szDescription="You\'re in the entrance to the mine."; Mines.c 2676 m_Room[pRoomEntrance].bMined=TRUE; 0000423E 60D3 MOV R13,R0 00004240 D435 MOV.L L2154+32,R4; __$m_nRooms Mines.c 2677 m_Room[pRoomEntrance].nChokepoint=-1; 00004242 E5FF MOV #-1,R5 00004244 24E1 MOV.W R14,@R4 00004246 6A41 MOV.W @R4,R10 00004248 6241 MOV.W @R4,R2 0000424A 7201 ADD #1,R2 0000424C 2421 MOV.W R2,@R4 0000424E 64AF EXTS.W R10,R4 00004250 62C2 MOV.L @R12,R2 00004252 6343 MOV R4,R3 00004254 4408 SHLL2 R4 00004256 343C ADD R3,R4 00004258 D330 MOV.L L2154+36,R3; L1048 0000425A 4408 SHLL2 R4 0000425C 324C ADD R4,R2 0000425E 2232 MOV.L R3,@R2 00004260 62C2 MOV.L @R12,R2 00004262 324C ADD R4,R2 00004264 8026 MOV.B R0,@(6,R2) 00004266 6053 MOV R5,R0 00004268 63C2 MOV.L @R12,R3 0000426A 334C ADD R4,R3 0000426C 8132 MOV.W R0,@(4,R3) Mines.c 2678 m_Room[pRoomEntrance].bVisited=TRUE; 0000426E 60D3 MOV R13,R0 00004270 63C2 MOV.L @R12,R3 00004272 334C ADD R4,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 203 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00004274 8037 MOV.B R0,@(7,R3) Mines.c 2679 m_Room[pRoomEntrance].Adjacent.Passage.pPassageNorth=-1; 00004276 6053 MOV R5,R0 00004278 63C2 MOV.L @R12,R3 0000427A 334C ADD R4,R3 0000427C 8134 MOV.W R0,@(8,R3) Mines.c 2680 m_Room[pRoomEntrance].Adjacent.Passage.pPassageSouth=-1; 0000427E 63C2 MOV.L @R12,R3 00004280 334C ADD R4,R3 00004282 8135 MOV.W R0,@(10,R3) Mines.c 2681 m_Room[pRoomEntrance].Adjacent.Passage.pPassageEast=-1; 00004284 63C2 MOV.L @R12,R3 00004286 334C ADD R4,R3 00004288 8136 MOV.W R0,@(12,R3) Mines.c 2682 m_Room[pRoomEntrance].Adjacent.Passage.pPassageWest=-1; 0000428A 63C2 MOV.L @R12,R3 0000428C 334C ADD R4,R3 0000428E 8137 MOV.W R0,@(14,R3) Mines.c 2683 m_Room[pRoomEntrance].Adjacent.Passage.pPassageUp=-1; 00004290 63C2 MOV.L @R12,R3 00004292 334C ADD R4,R3 00004294 8138 MOV.W R0,@(16,R3) Mines.c 2684 m_Room[pRoomEntrance].Adjacent.Passage.pPassageDown=-1; 00004296 63C2 MOV.L @R12,R3 00004298 343C ADD R3,R4 Mines.c 2685 SeedRandomNumberGenerator(); 0000429A D321 MOV.L L2154+40,R3; __$SeedRandomNumberGenerator 0000429C 430B JSR @R3 0000429E 8149 MOV.W R0,@(18,R4) Mines.c 2686 nRooms=NUM_ROOMS; Mines.c 2687 if (! bErr) 000042A0 62F0 MOV.B @R15,R2 000042A2 2228 TST R2,R2 000042A4 8B03 BF L1955 Mines.c 2688 ShuffleRoomDescriptions(nRooms,&m_szRoom[0]); 000042A6 6582 MOV.L @R8,R5 000042A8 D31E MOV.L L2154+44,R3; __$ShuffleRoomDescriptions 000042AA 430B JSR @R3 000042AC E463 MOV #99,R4 000042AE L1955: Mines.c 2689 nTreasures=NUM_TREASURES; 000042AE E00F MOV #15,R0 000042B0 80FC MOV.B R0,@(12,R15) Mines.c 2690 pTreasure=0; Mines.c 2691 nChokepoints=0; 000042B2 60E3 MOV R14,R0 000042B4 81F2 MOV.W R0,@(4,R15) Mines.c 2692 if (! bErr) 000042B6 63F0 MOV.B @R15,R3 000042B8 2338 TST R3,R3 000042BA 8B43 BF L1954 Mines.c 2693 { Mines.c 2694 ppRoomWithName=&m_pRoomWithName[0]; 000042BC D31A MOV.L L2154+48,R3; __$m_pRoomWithName Mines.c 2695 ExcavateMine(nRooms,pRoomEntrance,nTreasures,&nChokepoints, Mines.c 2696 ppRoomWithName,&bErr); 000042BE 62F3 MOV R15,R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 204 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000042C0 D11A MOV.L L2154+52,R1; __$ExcavateMine 000042C2 E60F MOV #15,R6 000042C4 6932 MOV.L @R3,R9 000042C6 65A3 MOV R10,R5 000042C8 2F26 MOV.L R2,@-R15 000042CA 2F96 MOV.L R9,@-R15 000042CC 67F3 MOV R15,R7 000042CE 770C ADD #12,R7 000042D0 410B JSR @R1 000042D2 E463 MOV #99,R4 000042D4 7F08 ADD #8,R15 Mines.c 2697 if (! bErr) 000042D6 63F0 MOV.B @R15,R3 000042D8 2338 TST R3,R3 000042DA 8B04 BF L1957 Mines.c 2698 HideTreasuresAndWeapons(nRooms,ppRoomWithName,nTreasures); 000042DC D314 MOV.L L2154+56,R3; __$HideTreasuresAndWeapons 000042DE E60F MOV #15,R6 000042E0 6593 MOV R9,R5 000042E2 430B JSR @R3 000042E4 E463 MOV #99,R4 000042E6 L1957: Mines.c 2699 if (! bErr) 000042E6 62F0 MOV.B @R15,R2 000042E8 2228 TST R2,R2 000042EA 8B2B BF L1954 Mines.c 2700 PlayGame(nRooms,pRoomEntrance,ppRoomWithName,nChokepoints, Mines.c 2701 nTreasures,&bErr); 000042EC 63F3 MOV R15,R3 000042EE E010 MOV #16,R0 000042F0 2F36 MOV.L R3,@-R15 000042F2 02FC MOV.B @(R0,R15),R2 000042F4 A01E BRA L2025 000042F6 0009 NOP 000042F8 L2154: 000042F8 2000 .DATA.W H'2000 000042FA 018C .DATA.W H'018C 000042FC <00000000> .DATA.L __$m_szParagraph 00004300 <00000000> .DATA.L __$m_szWayOut 00004304 <00000000> .DATA.L __$m_bUseSmallFont 00004308 <00000000> .DATA.L __$m_nLinesPerPage 0000430C <00000000> .DATA.L __$m_nMaxLineLen 00004310 <00000000> .DATA.L __$m_nXMax 00004314 <00000000> .DATA.L __$InitializeGlobals 00004318 <00000000> .DATA.L __$m_nRooms 0000431C <00000000> .DATA.L L1048 00004320 <00000000> .DATA.L __$SeedRandomNumberGenerator 00004324 <00000000> .DATA.L __$ShuffleRoomDescriptions 00004328 <00000000> .DATA.L __$m_pRoomWithName 0000432C <00000000> .DATA.L __$ExcavateMine 00004330 <00000000> .DATA.L __$HideTreasuresAndWeapons 00004334 L2025: 00004334 2F26 MOV.L R2,@-R15 00004336 6693 MOV R9,R6 00004338 85F6 MOV.W @(12,R15),R0 0000433A 65A3 MOV R10,R5 0000433C 6703 MOV R0,R7 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 205 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000433E BD2D BSR __$PlayGame 00004340 E463 MOV #99,R4 00004342 7F08 ADD #8,R15 00004344 L1954: 00004344 DA33 MOV.L L2158+2,R10; L1050 00004346 D334 MOV.L L2158+6,R3 ; __$m_bUseSmallFont 00004348 6230 MOV.B @R3,R2 0000434A 2228 TST R2,R2 0000434C 890C BT L1959 Mines.c 2702 } Mines.c 2703 } Mines.c 2704 if (m_bUseSmallFont) Mines.c 2705 PrintMini(0,6*m_nLinesWritten,(unsigned char *) "Press a key to exit.",MINI_OVER); 0000434E E710 MOV #16,R7 00004350 D232 MOV.L L2158+10,R2; __$m_nLinesWritten 00004352 66A3 MOV R10,R6 00004354 6520 MOV.B @R2,R5 00004356 6153 MOV R5,R1 00004358 4500 SHLL R5 0000435A 4108 SHLL2 R1 0000435C 351C ADD R1,R5 0000435E D130 MOV.L L2158+14,R1; _PrintMini 00004360 410B JSR @R1 00004362 E400 MOV #0,R4 00004364 A002 BRA L1960 00004366 0009 NOP 00004368 L1959: Mines.c 2706 else Mines.c 2707 Print((unsigned char *) "Press a key to exit."); 00004368 4B0B JSR @R11 0000436A 64A3 MOV R10,R4 0000436C L1960: Mines.c 2708 GetKey(&uiKey); 0000436C D22D MOV.L L2158+18,R2; _GetKey 0000436E 64F3 MOV R15,R4 00004370 420B JSR @R2 00004372 7408 ADD #8,R4 00004374 DB2C MOV.L L2158+22,R11; _free 00004376 D32D MOV.L L2158+26,R3; __$m_szWayOut 00004378 6432 MOV.L @R3,R4 0000437A 2448 TST R4,R4 0000437C 8901 BT L1961 Mines.c 2709 if (m_szWayOut) Mines.c 2710 free((void *) m_szWayOut); 0000437E 4B0B JSR @R11 00004380 0009 NOP 00004382 L1961: 00004382 6482 MOV.L @R8,R4 00004384 2448 TST R4,R4 00004386 8901 BT L1962 Mines.c 2711 if (m_szRoom) Mines.c 2712 free((void *) m_szRoom); 00004388 4B0B JSR @R11 0000438A 0009 NOP 0000438C L1962: 0000438C D228 MOV.L L2158+30,R2; __$m_szParagraph 0000438E 6422 MOV.L @R2,R4 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 206 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00004390 2448 TST R4,R4 00004392 8901 BT L1963 Mines.c 2713 if (m_szParagraph) Mines.c 2714 free((void *) m_szParagraph); 00004394 4B0B JSR @R11 00004396 0009 NOP 00004398 L1963: 00004398 D226 MOV.L L2158+34,R2; __$m_szMsg 0000439A 6422 MOV.L @R2,R4 0000439C 2448 TST R4,R4 0000439E 8901 BT L1964 Mines.c 2715 if (m_szMsg) Mines.c 2716 free((void *) m_szMsg); 000043A0 4B0B JSR @R11 000043A2 0009 NOP 000043A4 L1964: 000043A4 64C2 MOV.L @R12,R4 000043A6 2448 TST R4,R4 000043A8 8901 BT L1965 Mines.c 2717 if (m_Room) Mines.c 2718 free((void *) m_Room); 000043AA 4B0B JSR @R11 000043AC 0009 NOP 000043AE L1965: 000043AE D322 MOV.L L2158+38,R3; __$m_pRoomWithName 000043B0 6432 MOV.L @R3,R4 000043B2 2448 TST R4,R4 000043B4 8901 BT L1966 Mines.c 2719 if (m_pRoomWithName) Mines.c 2720 free((void *) m_pRoomWithName); 000043B6 4B0B JSR @R11 000043B8 0009 NOP 000043BA L1966: 000043BA D320 MOV.L L2158+42,R3; __$m_Path 000043BC 6432 MOV.L @R3,R4 000043BE 2448 TST R4,R4 000043C0 8901 BT L1967 Mines.c 2721 if (m_Path) Mines.c 2722 free((void *) m_Path); 000043C2 4B0B JSR @R11 000043C4 0009 NOP 000043C6 L1967: 000043C6 D31E MOV.L L2158+46,R3; __$m_Passage 000043C8 6432 MOV.L @R3,R4 000043CA 2448 TST R4,R4 000043CC 8901 BT L1968 Mines.c 2723 if (m_Passage) Mines.c 2724 free((void *) m_Passage); 000043CE 4B0B JSR @R11 000043D0 0009 NOP 000043D2 L1968: 000043D2 D31C MOV.L L2158+50,R3; __$m_FindPathParameter 000043D4 6432 MOV.L @R3,R4 000043D6 2448 TST R4,R4 000043D8 8901 BT L1969 Mines.c 2725 if (m_FindPathParameter) Mines.c 2726 free((void *) m_FindPathParameter); SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 207 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000043DA 4B0B JSR @R11 000043DC 0009 NOP 000043DE L1969: 000043DE D31A MOV.L L2158+54,R3; __$m_FindPathLocal 000043E0 6432 MOV.L @R3,R4 000043E2 2448 TST R4,R4 000043E4 8901 BT L1970 Mines.c 2727 if (m_FindPathLocal) Mines.c 2728 free((void *) m_FindPathLocal); 000043E6 4B0B JSR @R11 000043E8 0009 NOP 000043EA L1970: Mines.c 2729 if (bErr) 000043EA 63F0 MOV.B @R15,R3 000043EC 2338 TST R3,R3 000043EE 8901 BT L1971 Mines.c 2730 bResult=0; 000043F0 A001 BRA L1972 000043F2 6CE3 MOV R14,R12 000043F4 L1971: Mines.c 2731 else Mines.c 2732 bResult=1; 000043F4 6CD3 MOV R13,R12 000043F6 L1972: Mines.c 2733 ResetCalculator(); 000043F6 D215 MOV.L L2158+58,R2; _ResetCalculator 000043F8 420B JSR @R2 000043FA 0009 NOP Mines.c 2734 return bResult; 000043FC 60C3 MOV R12,R0 Mines.c 2735 } 000043FE 7F1C ADD #28,R15 00004400 4F26 LDS.L @R15+,PR 00004402 68F6 MOV.L @R15+,R8 00004404 69F6 MOV.L @R15+,R9 00004406 6AF6 MOV.L @R15+,R10 00004408 6BF6 MOV.L @R15+,R11 0000440A 6CF6 MOV.L @R15+,R12 0000440C 6DF6 MOV.L @R15+,R13 0000440E 000B RTS 00004410 6EF6 MOV.L @R15+,R14 00004412 L2158: 00004412 0000 .DATA.W 0 00004414 <00000000> .DATA.L L1050 00004418 <00000000> .DATA.L __$m_bUseSmallFont 0000441C <00000000> .DATA.L __$m_nLinesWritten 00004420 <00000000> .DATA.L _PrintMini 00004424 <00000000> .DATA.L _GetKey 00004428 <00000000> .DATA.L _free 0000442C <00000000> .DATA.L __$m_szWayOut 00004430 <00000000> .DATA.L __$m_szParagraph 00004434 <00000000> .DATA.L __$m_szMsg 00004438 <00000000> .DATA.L __$m_pRoomWithName 0000443C <00000000> .DATA.L __$m_Path 00004440 <00000000> .DATA.L __$m_Passage 00004444 <00000000> .DATA.L __$m_FindPathParameter 00004448 <00000000> .DATA.L __$m_FindPathLocal SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 208 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000444C <00000000> .DATA.L _ResetCalculator Mines.c 2736 Mines.c 2737 //**************************************************************************** Mines.c 2738 //************** **************** Mines.c 2739 //************** Notice! **************** Mines.c 2740 //************** **************** Mines.c 2741 //************** Please do not change the following source. **************** Mines.c 2742 //************** **************** Mines.c 2743 //**************************************************************************** Mines.c 2744 Mines.c 2745 Mines.c 2746 #pragma section _BR_Size Mines.c 2747 unsigned long BR_Size; Mines.c 2748 #pragma section Mines.c 2749 Mines.c 2750 Mines.c 2751 #pragma section _TOP Mines.c 2752 Mines.c 2753 //**************************************************************************** Mines.c 2754 // InitializeSystem Mines.c 2755 // Mines.c 2756 // param : isAppli : 1 = Application / 0 = eActivity Mines.c 2757 // OptionNum : Option Number (only eActivity) Mines.c 2758 // Mines.c 2759 // retval : 1 = No error / 0 = Error Mines.c 2760 // Mines.c 2761 //**************************************************************************** Mines.c 2762 int InitializeSystem(int isAppli, unsigned short OptionNum) P_T 00000000 _InitializeSystem: ; function: InitializeSystem ; frame size=0 Mines.c 2763 { Mines.c 2764 return INIT_ADDIN_APPLICATION(isAppli, OptionNum); 00000000 D301 MOV.L L2159+2,R3 ; _INIT_ADDIN_APPLICATION 00000002 432B JMP @R3 00000004 0009 NOP 00000006 L2159: 00000006 0000 .DATA.W 0 00000008 <00000000> .DATA.L _INIT_ADDIN_APPLICATION Mines.c 2765 } Mines.c 2766 Mines.c 2767 #pragma section Mines.c 2768 Mines.c 2769 Mines.c 2770 D 00000000 __$m_bUseSmallFont: ; static: m_bUseSmallFont 00000000 00 .DATA.B H'00 00000001 __$m_nAddIndex: ; static: m_nAddIndex 00000001 00 .DATA.B H'00 00000002 __$m_nDirectionOpposite: ; static: m_nDirectionOpposite 00000002 0100030205 .DATA.B H'01,H'00,H'03,H'02,H'05,H'04 04 00000008 __$m_nFindPathLocals: ; static: m_nFindPathLocals 00000008 0000 .DATA.W H'0000 0000000A __$m_nFindPathParameters: ; static: m_nFindPathParameters 0000000A 0000 .DATA.W H'0000 0000000C __$m_nLinesPerPage: ; static: m_nLinesPerPage 0000000C 0008 .DATA.W H'0008 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 209 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000000E __$m_nLinesWritten: ; static: m_nLinesWritten 0000000E 00 .DATA.B H'00 0000000F 00000001 .RES.B 1 00000010 __$m_nMaxLineLen: ; static: m_nMaxLineLen 00000010 0015 .DATA.W H'0015 00000012 __$m_nPassages: ; static: m_nPassages 00000012 0000 .DATA.W H'0000 00000014 __$m_nPaths: ; static: m_nPaths 00000014 0000 .DATA.W H'0000 00000016 __$m_nReplaceIndex: ; static: m_nReplaceIndex 00000016 00 .DATA.B H'00 00000017 00000001 .RES.B 1 00000018 __$m_nRooms: ; static: m_nRooms 00000018 0000 .DATA.W H'0000 0000001A 00000002 .RES.W 1 0000001C __$m_nRNPartialSum: ; static: m_nRNPartialSum 0000001C 00000000 .DATA.L H'00000000 00000020 __$m_nXMax: ; static: m_nXMax 00000020 0000007F .DATA.L H'0000007F 00000024 __$m_szDirection: ; static: m_szDirection 00000024 <00000000> .DATA.L L350,L351,L352,L353,L354,L355 <00000000> <00000000> <00000000> <00000000> <00000000> 0000003C __$m_Treasure: ; static: m_Treasure 0000003C <00000000> .DATA.L L361,L362,L363 <00000000> <00000000> 00000048 00 .DATA.B H'00 00000049 00 .DATAB.B 1,0 0000004A FFFFFFFF .DATA.W H'FFFF,H'FFFF 0000004E 0000000201 .DATAB.B 2,0 00 00000050 <00000000> .DATA.L L364,L365,L366 <00000000> <00000000> 0000005C 00 .DATA.B H'00 0000005D 00 .DATAB.B 1,0 0000005E FFFFFFFF .DATA.W H'FFFF,H'FFFF 00000062 0000000201 .DATAB.B 2,0 00 00000064 <00000000> .DATA.L L367,L368,L369 <00000000> <00000000> 00000070 00 .DATA.B H'00 00000071 00 .DATAB.B 1,0 00000072 FFFFFFFF .DATA.W H'FFFF,H'FFFF 00000076 0000000201 .DATAB.B 2,0 00 00000078 <00000000> .DATA.L L370,L371,L372 <00000000> <00000000> 00000084 00 .DATA.B H'00 00000085 00 .DATAB.B 1,0 00000086 FFFFFFFF .DATA.W H'FFFF,H'FFFF SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 210 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000008A 0000000201 .DATAB.B 2,0 00 0000008C <00000000> .DATA.L L373,L374,L375 <00000000> <00000000> 00000098 00 .DATA.B H'00 00000099 00 .DATAB.B 1,0 0000009A FFFFFFFF .DATA.W H'FFFF,H'FFFF 0000009E 0000000201 .DATAB.B 2,0 00 000000A0 <00000000> .DATA.L L376,L377,L378 <00000000> <00000000> 000000AC 00 .DATA.B H'00 000000AD 00 .DATAB.B 1,0 000000AE FFFFFFFF .DATA.W H'FFFF,H'FFFF 000000B2 0000000201 .DATAB.B 2,0 00 000000B4 <00000000> .DATA.L L379,L380,L381 <00000000> <00000000> 000000C0 00 .DATA.B H'00 000000C1 00 .DATAB.B 1,0 000000C2 FFFFFFFF .DATA.W H'FFFF,H'FFFF 000000C6 0000000201 .DATAB.B 2,0 00 000000C8 <00000000> .DATA.L L382,L383,L384 <00000000> <00000000> 000000D4 00 .DATA.B H'00 000000D5 00 .DATAB.B 1,0 000000D6 FFFFFFFF .DATA.W H'FFFF,H'FFFF 000000DA 0000000201 .DATAB.B 2,0 00 000000DC <00000000> .DATA.L L385,L386,L387 <00000000> <00000000> 000000E8 00 .DATA.B H'00 000000E9 00 .DATAB.B 1,0 000000EA FFFFFFFF .DATA.W H'FFFF,H'FFFF 000000EE 0000000201 .DATAB.B 2,0 00 000000F0 <00000000> .DATA.L L388,L389,L390 <00000000> <00000000> 000000FC 00 .DATA.B H'00 000000FD 00 .DATAB.B 1,0 000000FE FFFFFFFF .DATA.W H'FFFF,H'FFFF 00000102 0000000201 .DATAB.B 2,0 00 00000104 <00000000> .DATA.L L391,L392,L393 <00000000> <00000000> 00000110 00 .DATA.B H'00 00000111 00 .DATAB.B 1,0 00000112 FFFFFFFF .DATA.W H'FFFF,H'FFFF 00000116 0000000201 .DATAB.B 2,0 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 211 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00 00000118 <00000000> .DATA.L L394,L395,L396 <00000000> <00000000> 00000124 00 .DATA.B H'00 00000125 00 .DATAB.B 1,0 00000126 FFFFFFFF .DATA.W H'FFFF,H'FFFF 0000012A 0000000201 .DATAB.B 2,0 00 0000012C <00000000> .DATA.L L397,L398,L399 <00000000> <00000000> 00000138 00 .DATA.B H'00 00000139 00 .DATAB.B 1,0 0000013A FFFFFFFF .DATA.W H'FFFF,H'FFFF 0000013E 0000000201 .DATAB.B 2,0 00 00000140 <00000000> .DATA.L L400,L401,L402 <00000000> <00000000> 0000014C 00 .DATA.B H'00 0000014D 00 .DATAB.B 1,0 0000014E FFFFFFFF .DATA.W H'FFFF,H'FFFF 00000152 0000000201 .DATAB.B 2,0 00 00000154 <00000000> .DATA.L L403,L404,L405 <00000000> <00000000> 00000160 00 .DATA.B H'00 00000161 00 .DATAB.B 1,0 00000162 FFFFFFFF .DATA.W H'FFFF,H'FFFF 00000166 0000000201 .DATAB.B 2,0 00 00000168 __$m_ucCharWidth: ; static: m_ucCharWidth 00000168 0000000600 .DATA.L H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0000060000 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0006000000 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0600000006 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0000000600 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000004,H'00000002,H'00000004, 0000060000 + H'00000006,H'00000006,H'00000005,H'00000005,H'00000003,H'00000003,H'00000003, 0006000000 + H'00000006,H'00000004,H'00000003,H'00000004,H'00000004,H'00000004,H'00000004, 0600000006 + H'00000004,H'00000004,H'00000004,H'00000004,H'00000004,H'00000004,H'00000004, 0000000600 + H'00000004,H'00000004,H'00000003,H'00000003,H'00000004,H'00000004,H'00000004, 0000060000 + H'00000004,H'00000006,H'00000004,H'00000004,H'00000004,H'00000004,H'00000004, 0006000000 + H'00000004,H'00000004,H'00000004,H'00000004,H'00000004,H'00000005,H'00000004, 0600000006 + H'00000006,H'00000006,H'00000004,H'00000004,H'00000006,H'00000004,H'00000004, 0000000600 + H'00000004,H'00000004,H'00000004,H'00000006,H'00000004,H'00000004,H'00000004, 0000060000 + H'00000003,H'00000004,H'00000003,H'00000004,H'00000004,H'00000003,H'00000004, 0006000000 + H'00000004,H'00000004,H'00000004,H'00000004,H'00000004,H'00000004,H'00000004, 0600000006 + H'00000002,H'00000004,H'00000004,H'00000004,H'00000006,H'00000005,H'00000004, 0000000600 + H'00000004,H'00000004,H'00000005,H'00000004,H'00000004,H'00000004,H'00000004, 0000060000 + H'00000006,H'00000004,H'00000004,H'00000004,H'00000004,H'00000002,H'00000004, 0006000000 + H'00000005,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0600000006 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0000000600 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0000060000 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0006000000 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 212 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0600000006 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0000000600 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0000060000 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0004000000 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0200000004 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0000000600 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0000060000 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0005000000 + H'00000006,H'00000006 0500000003 0000000300 0000030000 0006000000 0400000003 0000000400 0000040000 0004000000 0400000004 0000000400 0000040000 0004000000 0400000004 0000000400 0000040000 0004000000 0300000003 0000000400 0000040000 0004000000 0400000006 0000000400 0000040000 0004000000 0400000004 0000000400 0000040000 0004000000 0400000004 0000000500 0000040000 0006000000 0600000004 0000000400 0000060000 0004000000 0400000004 0000000400 0000040000 0006000000 0400000004 0000000400 0000030000 0004000000 0300000004 0000000400 0000030000 0004000000 0400000004 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 213 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000000400 0000040000 0004000000 0400000004 0000000200 0000040000 0004000000 0400000006 0000000500 0000040000 0004000000 0400000005 0000000400 0000040000 0004000000 0400000006 0000000400 0000040000 0004000000 0400000002 0000000400 0000050000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 214 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 000006 000004B8 0000000600 .DATA.L H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0000060000 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0006000000 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0600000006 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0000000600 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0000060000 + H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006,H'00000006, 0006000000 + H'00000006,H'00000006 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 215 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 0600000006 0000000600 0000060000 0006000000 06 C 00000000 L408: 00000000 596F752772 .SDATA "You're in a spherical room." 6520696E20 6120737068 6572696361 6C20726F6F 6D2E 0000001B 00 .DATA.B H'00 0000001C L409: 0000001C 596F752772 .SDATA "You're in the hall of bones. Dinosaur bones are everywhere." 6520696E20 7468652068 616C6C206F 6620626F6E 65732E2020 44696E6F73 6175722062 6F6E657320 6172652065 7665727977 686572652E 00000058 00 .DATA.B H'00 00000059 00000001 .RES.B 1 0000005A 00000002 .RES.W 1 0000005C L410: 0000005C 596F752772 .SDATA "You're in a subway tunnel. Don't touch that third rail!" 6520696E20 6120737562 7761792074 756E6E656C 2E2020446F 6E27742074 6F75636820 7468617420 7468697264 207261696C 21 00000094 00 .DATA.B H'00 00000095 00000001 .RES.B 1 00000096 00000002 .RES.W 1 00000098 L411: 00000098 596F752772 .SDATA "You're in a railroad tunnel. A whistle wails in the distance." 6520696E20 6120726169 6C726F6164 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 216 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 2074756E6E 656C2E2020 4120776869 73746C6520 7761696C73 20696E2074 6865206469 7374616E63 652E 000000D6 00 .DATA.B H'00 000000D7 00000001 .RES.B 1 000000D8 L412: 000000D8 596F752772 .SDATA "You're in an elfin quiche factory. The elves are out mowing spinach." 6520696E20 616E20656C 66696E2071 7569636865 2066616374 6F72792E20 2054686520 656C766573 2061726520 6F7574206D 6F77696E67 207370696E 6163682E 0000011D 00 .DATA.B H'00 0000011E 00000002 .RES.W 1 00000120 L413: 00000120 596F752772 .SDATA "You're in an abandoned Plymouth plant. Beware of Road Runners and Barracudas." 6520696E20 616E206162 616E646F6E 656420506C 796D6F7574 6820706C61 6E742E2020 4265776172 65206F6620 526F616420 52756E6E65 727320616E 6420426172 7261637564 61732E 0000016E 00 .DATA.B H'00 0000016F 00000001 .RES.B 1 00000170 L414: 00000170 596F752772 .SDATA "You're in an abandoned Dodge plant. There is a Dart embedded in the North wall." 6520696E20 616E206162 616E646F6E 656420446F 6467652070 6C616E742E 2020546865 7265206973 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 217 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 2061204461 727420656D 6265646465 6420696E20 746865204E 6F72746820 77616C6C2E 000001C0 00 .DATA.B H'00 000001C1 00000001 .RES.B 1 000001C2 00000002 .RES.W 1 000001C4 L415: 000001C4 596F752772 .SDATA "You're in a mouse's nest. You'd best exhale; this is a small room." 6520696E20 61206D6F75 7365277320 6E6573742E 2020596F75 2764206265 7374206578 68616C653B 2074686973 2069732061 20736D616C 6C20726F6F 6D2E 00000207 00 .DATA.B H'00 00000208 L416: 00000208 596F752772 .SDATA "You're in a giant crayfish hole. An immense chicken neck is hanging from a rope." 6520696E20 6120676961 6E74206372 6179666973 6820686F6C 652E202041 6E20696D6D 656E736520 636869636B 656E206E65 636B206973 2068616E67 696E672066 726F6D2061 20726F7065 2E 00000259 00 .DATA.B H'00 0000025A 00000002 .RES.W 1 0000025C L417: 0000025C 596F752772 .SDATA "You're in an abandoned coal mine. Beware of methane." 6520696E20 616E206162 616E646F6E 656420636F 616C206D69 6E652E2020 4265776172 65206F6620 6D65746861 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 218 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 6E652E 00000291 00 .DATA.B H'00 00000292 00000002 .RES.W 1 00000294 L418: 00000294 596F752772 .SDATA "You're in the hall of winds. Presently, the wind is from the south." 6520696E20 7468652068 616C6C206F 662077696E 64732E2020 5072657365 6E746C792C 2074686520 77696E6420 6973206672 6F6D207468 6520736F75 74682E 000002D8 00 .DATA.B H'00 000002D9 00000001 .RES.B 1 000002DA 00000002 .RES.W 1 000002DC L419: 000002DC 596F752772 .SDATA "You're in a stove pipe!" 6520696E20 612073746F 7665207069 706521 000002F3 00 .DATA.B H'00 000002F4 L420: 000002F4 596F752772 .SDATA "You're in a totally darkened room. Although you can see nothing, the sound of dri" 6520696E20 6120746F74 616C6C7920 6461726B65 6E65642072 6F6F6D2E20 20416C7468 6F75676820 796F752063 616E207365 65206E6F74 68696E672C 2074686520 736F756E64 206F662064 7269 00000346 7070696E67 .SDATA "pping water echoes from the walls." 2077617465 7220656368 6F65732066 726F6D2074 6865207761 6C6C732E 00000368 00 .DATA.B H'00 00000369 00000001 .RES.B 1 0000036A 00000002 .RES.W 1 0000036C L421: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 219 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000036C 596F752772 .SDATA "You're in an industrial waste site. Hold your breath and don't touch anything." 6520696E20 616E20696E 6475737472 69616C2077 6173746520 736974652E 2020486F6C 6420796F75 7220627265 6174682061 6E6420646F 6E27742074 6F75636820 616E797468 696E672E 000003BB 00 .DATA.B H'00 000003BC L422: 000003BC 596F752772 .SDATA "You're in the warehouse for an extremely popular brand of home computer. Tacky pl" 6520696E20 7468652077 617265686F 7573652066 6F7220616E 2065787472 656D656C79 20706F7075 6C61722062 72616E6420 6F6620686F 6D6520636F 6D70757465 722E202054 61636B7920 706C 0000040E 6173746963 .SDATA "astic enclosures abound." 20656E636C 6F73757265 732061626F 756E642E 00000426 00 .DATA.B H'00 00000427 00000001 .RES.B 1 00000428 L423: 00000428 596F752772 .SDATA "You're in a hobbit's bedroom. The hobbit does not look pleased!" 6520696E20 6120686F62 6269742773 2062656472 6F6F6D2E20 2054686520 686F626269 7420646F65 73206E6F74 206C6F6F6B 20706C6561 73656421 00000468 00 .DATA.B H'00 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 220 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000469 00000001 .RES.B 1 0000046A 00000002 .RES.W 1 0000046C L424: 0000046C 596F752772 .SDATA "You're in a troll sewerage processing plant. The air quality is not good." 6520696E20 612074726F 6C6C207365 7765726167 652070726F 6365737369 6E6720706C 616E742E20 2054686520 6169722071 75616C6974 7920697320 6E6F742067 6F6F642E 000004B6 00 .DATA.B H'00 000004B7 00000001 .RES.B 1 000004B8 L425: 000004B8 596F752772 .SDATA "You're in a rabbit hole. There is a jar of marmalade on a shelf in the wall." 6520696E20 6120726162 6269742068 6F6C652E20 2054686572 6520697320 61206A6172 206F66206D 61726D616C 616465206F 6E20612073 68656C6620 696E207468 652077616C 6C2E 00000505 00 .DATA.B H'00 00000506 00000002 .RES.W 1 00000508 L426: 00000508 596F752772 .SDATA "You're in the giant's oven. Fortunately, it hasn't been used for years." 6520696E20 7468652067 69616E7427 73206F7665 6E2E202046 6F7274756E 6174656C79 2C20697420 6861736E27 7420626565 6E20757365 6420666F72 2079656172 732E 00000550 00 .DATA.B H'00 00000551 00000001 .RES.B 1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 221 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000552 00000002 .RES.W 1 00000554 L427: 00000554 596F752772 .SDATA "You're in a hobbit's drying room. Tobacco leaves abound." 6520696E20 6120686F62 6269742773 2064727969 6E6720726F 6F6D2E2020 546F626163 636F206C65 6176657320 61626F756E 642E 0000058D 00 .DATA.B H'00 0000058E 00000002 .RES.W 1 00000590 L428: 00000590 596F752772 .SDATA "You're in a large circular room. It is dark in here." 6520696E20 61206C6172 6765206369 7263756C61 7220726F6F 6D2E202049 7420697320 6461726B20 696E206865 72652E 000005C5 00 .DATA.B H'00 000005C6 00000002 .RES.W 1 000005C8 L429: 000005C8 596F752772 .SDATA "You're in the Crystal Palace. Quartz crystals cover the walls." 6520696E20 7468652043 7279737461 6C2050616C 6163652E20 2051756172 747A206372 797374616C 7320636F76 6572207468 652077616C 6C732E 00000607 00 .DATA.B H'00 00000608 L430: 00000608 596F752772 .SDATA "You're in the Emerald Room. Green crystals cover the ceiling." 6520696E20 7468652045 6D6572616C 6420526F6F 6D2E202047 7265656E20 6372797374 616C732063 6F76657220 7468652063 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 222 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 65696C696E 672E 00000646 00 .DATA.B H'00 00000647 00000001 .RES.B 1 00000648 L431: 00000648 596F752772 .SDATA "You're in a curtained room." 6520696E20 6120637572 7461696E65 6420726F6F 6D2E 00000663 00 .DATA.B H'00 00000664 L432: 00000664 596F752772 .SDATA "You're in an air conditioning duct!" 6520696E20 616E206169 7220636F6E 646974696F 6E696E6720 6475637421 00000687 00 .DATA.B H'00 00000688 L433: 00000688 596F752772 .SDATA "You're in a giant kiln. Smoke stains the walls." 6520696E20 6120676961 6E74206B69 6C6E2E2020 536D6F6B65 2073746169 6E73207468 652077616C 6C732E 000006B8 00 .DATA.B H'00 000006B9 00000001 .RES.B 1 000006BA 00000002 .RES.W 1 000006BC L434: 000006BC 596F752772 .SDATA "You're in the Hall of Mists. Wisps of white vapor rise from the floor." 6520696E20 7468652048 616C6C206F 66204D6973 74732E2020 5769737073 206F662077 6869746520 7661706F72 2072697365 2066726F6D 2074686520 666C6F6F72 2E 00000703 00 .DATA.B H'00 00000704 L435: 00000704 596F752772 .SDATA "You're in an Aztec pyramid. A mummy lies in the northwest corner." 6520696E20 616E20417A 7465632070 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 223 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 7972616D69 642E202041 206D756D6D 79206C6965 7320696E20 746865206E 6F72746877 6573742063 6F726E6572 2E 00000746 00 .DATA.B H'00 00000747 00000001 .RES.B 1 00000748 L436: 00000748 596F752772 .SDATA "You're in the Room of the Eternal Flame. A large natural gas flame burns in the c" 6520696E20 7468652052 6F6F6D206F 6620746865 2045746572 6E616C2046 6C616D652E 202041206C 6172676520 6E61747572 616C206761 7320666C61 6D65206275 726E732069 6E20746865 2063 0000079A 656E746572 .SDATA "enter of the room. Coming from the west wall you can barely hear the words, 'Fee " 206F662074 686520726F 6F6D2E2020 436F6D696E 672066726F 6D20746865 2077657374 2077616C6C 20796F7520 63616E2062 6172656C79 2068656172 2074686520 776F726473 2C20274665 6520 000007EC 4679652046 .SDATA "Fye Foe Fum'." 6F65204675 6D272E 000007F9 00 .DATA.B H'00 000007FA 00000002 .RES.W 1 000007FC L437: 000007FC 596F752772 .SDATA "You're in the Giant's store room. You are surrounded by old rugs, books, chairs, " 6520696E20 7468652047 69616E7427 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 224 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 732073746F 726520726F 6F6D2E2020 596F752061 7265207375 72726F756E 6465642062 79206F6C64 2072756773 2C20626F6F 6B732C2063 6861697273 2C20 0000084E 6574632E .SDATA "etc." 00000852 00 .DATA.B H'00 00000853 00000001 .RES.B 1 00000854 L438: 00000854 596F752772 .SDATA "You're in the Leprechaun's Treasure Room. Unfortunately, the leprechaun's treasur" 6520696E20 746865204C 6570726563 6861756E27 7320547265 6173757265 20526F6F6D 2E2020556E 666F727475 6E6174656C 792C207468 65206C6570 7265636861 756E277320 7472656173 7572 000008A6 6520776173 .SDATA "e was stolen years ago." 2073746F6C 656E207965 6172732061 676F2E 000008BD 00 .DATA.B H'00 000008BE 00000002 .RES.W 1 000008C0 L439: 000008C0 596F752772 .SDATA "You're in a large tiled room. A girl is inquiring after a rabbit. Feel free to i" 6520696E20 61206C6172 6765207469 6C65642072 6F6F6D2E20 2041206769 726C206973 20696E7175 6972696E67 2061667465 7220612072 6162626974 2E20204665 656C206672 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 225 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 656520746F 2069 00000912 676E6F7265 .SDATA "gnore her." 206865722E 0000091C 00 .DATA.B H'00 0000091D 00000001 .RES.B 1 0000091E 00000002 .RES.W 1 00000920 L440: 00000920 596F752772 .SDATA "You're in a former nuclear test site. There is a large pile of rubble in the cent" 6520696E20 6120666F72 6D6572206E 75636C6561 7220746573 7420736974 652E202054 6865726520 6973206120 6C61726765 2070696C65 206F662072 7562626C65 20696E2074 6865206365 6E74 00000972 6572206F66 .SDATA "er of the floor. The walls are streaked with a multitude of colors." 2074686520 666C6F6F72 2E20205468 652077616C 6C73206172 6520737472 65616B6564 2077697468 2061206D75 6C74697475 6465206F66 20636F6C6F 72732E 000009B6 00 .DATA.B H'00 000009B7 00000001 .RES.B 1 000009B8 L441: 000009B8 596F752772 .SDATA "You're in a drainage system holding tank. Either it is no longer used, or it hasn" 6520696E20 6120647261 696E616765 2073797374 656D20686F 6C64696E67 2074616E6B 2E20204569 7468657220 6974206973 206E6F206C 6F6E676572 2075736564 2C206F7220 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 226 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 6974206861 736E 00000A0A 2774207261 .SDATA "'t rained in a long time; the room is dry." 696E656420 696E206120 6C6F6E6720 74696D653B 2074686520 726F6F6D20 6973206472 792E 00000A34 00 .DATA.B H'00 00000A35 00000001 .RES.B 1 00000A36 00000002 .RES.W 1 00000A38 L442: 00000A38 596F752772 .SDATA "You're in Mayor Schiro's bomb shelter." 6520696E20 4D61796F72 2053636869 726F277320 626F6D6220 7368656C74 65722E 00000A5E 00 .DATA.B H'00 00000A5F 00000001 .RES.B 1 00000A60 L443: 00000A60 596F752772 .SDATA "You're in a room with a waterfall. It is not very impressive; it looks like someo" 6520696E20 6120726F6F 6D20776974 6820612077 6174657266 616C6C2E20 2049742069 73206E6F74 2076657279 20696D7072 6573736976 653B206974 206C6F6F6B 73206C696B 6520736F6D 656F 00000AB2 6E65206C65 .SDATA "ne left a water faucet running." 6674206120 7761746572 2066617563 6574207275 6E6E696E67 2E 00000AD1 00 .DATA.B H'00 00000AD2 00000002 .RES.W 1 00000AD4 L444: 00000AD4 596F752772 .SDATA "You're in an abandoned Neanderthal home." 6520696E20 616E206162 616E646F6E SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 227 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 6564204E65 616E646572 7468616C20 686F6D652E 00000AFC 00 .DATA.B H'00 00000AFD 00000001 .RES.B 1 00000AFE 00000002 .RES.W 1 00000B00 L445: 00000B00 596F752772 .SDATA "You're in a volcanic chimney. The air is getting warmer." 6520696E20 6120766F6C 63616E6963 206368696D 6E65792E20 2054686520 6169722069 7320676574 74696E6720 7761726D65 722E 00000B39 00 .DATA.B H'00 00000B3A 00000002 .RES.W 1 00000B3C L446: 00000B3C 596F752772 .SDATA "You're in a pit full of snakes. Let's get out of here!!!!" 6520696E20 6120706974 2066756C6C 206F662073 6E616B6573 2E20204C65 7427732067 6574206F75 74206F6620 6865726521 212121 00000B76 00 .DATA.B H'00 00000B77 00000001 .RES.B 1 00000B78 L447: 00000B78 596F752772 .SDATA "You're in a salt dome." 6520696E20 612073616C 7420646F6D 652E 00000B8E 00 .DATA.B H'00 00000B8F 00000001 .RES.B 1 00000B90 L448: 00000B90 596F752772 .SDATA "You're in Eleanor Roosevelt's privy. Wendell Wilkie buttons cover the wall." 6520696E20 456C65616E 6F7220526F 6F73657665 6C74277320 7072697679 2E20205765 6E64656C6C 2057696C6B 6965206275 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 228 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 74746F6E73 20636F7665 7220746865 2077616C6C 2E 00000BDC 00 .DATA.B H'00 00000BDD 00000001 .RES.B 1 00000BDE 00000002 .RES.W 1 00000BE0 L449: 00000BE0 596F752772 .SDATA "You're in Napoleon's wine cellar. German wines line the shelves." 6520696E20 4E61706F6C 656F6E2773 2077696E65 2063656C6C 61722E2020 4765726D61 6E2077696E 6573206C69 6E65207468 6520736865 6C7665732E 00000C21 00 .DATA.B H'00 00000C22 00000002 .RES.W 1 00000C24 L450: 00000C24 596F752772 .SDATA "You're in the space behind the giant's bathroom wall. Large razor blades litter th" 6520696E20 7468652073 7061636520 626568696E 6420746865 206769616E 7427732062 617468726F 6F6D207761 6C6C2E204C 6172676520 72617A6F72 20626C6164 6573206C69 7474657220 7468 00000C76 6520666C6F .SDATA "e floor. Step lightly." 6F722E2020 5374657020 6C69676874 6C792E 00000C8D 00 .DATA.B H'00 00000C8E 00000002 .RES.W 1 00000C90 L451: 00000C90 596F752772 .SDATA "You're in the room where all old toe nail clipping come to rest. Used corn pads l" 6520696E20 7468652072 6F6F6D2077 6865726520 616C6C206F 6C6420746F SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 229 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 65206E6169 6C20636C69 7070696E67 20636F6D65 20746F2072 6573742E20 2055736564 20636F726E 2070616473 206C 00000CE2 6974746572 .SDATA "itter the floor." 2074686520 666C6F6F72 2E 00000CF2 00 .DATA.B H'00 00000CF3 00000001 .RES.B 1 00000CF4 L452: 00000CF4 596F752772 .SDATA "You're in the Den of the Horta. The walls are covered with a sticky fluid. Don't" 6520696E20 7468652044 656E206F66 2074686520 486F727461 2E20205468 652077616C 6C73206172 6520636F76 6572656420 7769746820 6120737469 636B792066 6C7569642E 2020446F6E 2774 00000D46 20746F7563 .SDATA " touch it; it is extremely corrosive." 682069743B 2069742069 7320657874 72656D656C 7920636F72 726F736976 652E 00000D6B 00 .DATA.B H'00 00000D6C L453: 00000D6C 596F752772 .SDATA "You're in a damp room. A small creek runs into a crack in the West wall." 6520696E20 612064616D 7020726F6F 6D2E202041 20736D616C 6C20637265 656B207275 6E7320696E 746F206120 637261636B 20696E2074 6865205765 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 230 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 7374207761 6C6C2E 00000DB5 00 .DATA.B H'00 00000DB6 00000002 .RES.W 1 00000DB8 L454: 00000DB8 596F752772 .SDATA "You're in what appears to be a NOPSI manhole." 6520696E20 7768617420 6170706561 727320746F 2062652061 204E4F5053 49206D616E 686F6C652E 00000DE5 00 .DATA.B H'00 00000DE6 00000002 .RES.W 1 00000DE8 L455: 00000DE8 596F752772 .SDATA "You're in the cafeteria of Mammoth Cave. The aroma of rancid corned beef assails " 6520696E20 7468652063 6166657465 726961206F 66204D616D 6D6F746820 436176652E 2020546865 2061726F6D 61206F6620 72616E6369 6420636F72 6E65642062 6565662061 737361696C 7320 00000E3A 796F757220 .SDATA "your nostrils." 6E6F737472 696C732E 00000E48 00 .DATA.B H'00 00000E49 00000001 .RES.B 1 00000E4A 00000002 .RES.W 1 00000E4C L456: 00000E4C 596F752772 .SDATA "You're in a small room with a large table. On the table is a bottle that says, 'D" 6520696E20 6120736D61 6C6C20726F 6F6D207769 7468206120 6C61726765 207461626C 652E20204F 6E20746865 207461626C 6520697320 6120626F74 746C652074 6861742073 6179732C20 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 231 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 2744 00000E9E 72696E6B20 .SDATA "rink me.'" 6D652E27 00000EA7 00 .DATA.B H'00 00000EA8 L457: 00000EA8 596F752772 .SDATA "You're in a Confederate States of America bank vault. Once worthless currency pap" 6520696E20 6120436F6E 6665646572 6174652053 7461746573 206F662041 6D65726963 612062616E 6B20766175 6C742E2020 4F6E636520 776F727468 6C65737320 6375727265 6E63792070 6170 00000EFA 6572732074 .SDATA "ers the walls." 6865207761 6C6C732E 00000F08 00 .DATA.B H'00 00000F09 00000001 .RES.B 1 00000F0A 00000002 .RES.W 1 00000F0C L458: 00000F0C 596F752772 .SDATA "You're in an abandoned subway station." 6520696E20 616E206162 616E646F6E 6564207375 6277617920 7374617469 6F6E2E 00000F32 00 .DATA.B H'00 00000F33 00000001 .RES.B 1 00000F34 L459: 00000F34 596F752772 .SDATA "You're in a mine shaft. In the distance you can hear seven high pitched voices si" 6520696E20 61206D696E 6520736861 66742E2020 496E207468 6520646973 74616E6365 20796F7520 63616E2068 6561722073 6576656E20 6869676820 7069746368 656420766F 6963657320 7369 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 232 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000F86 6E67696E67 .SDATA "nging, 'Hi Ho, Hi Ho, ...'" 2C20274869 20486F2C20 486920486F 2C202E2E2E 27 00000FA0 00 .DATA.B H'00 00000FA1 00000001 .RES.B 1 00000FA2 00000002 .RES.W 1 00000FA4 L460: 00000FA4 596F752772 .SDATA "You're in a Minuteman missile silo." 6520696E20 61204D696E 7574656D61 6E206D6973 73696C6520 73696C6F2E 00000FC7 00 .DATA.B H'00 00000FC8 L461: 00000FC8 596F752772 .SDATA "You're in the giant's mouse trap. Fortunately, you are small enough to escape." 6520696E20 7468652067 69616E7427 73206D6F75 7365207472 61702E2020 466F727475 6E6174656C 792C20796F 7520617265 20736D616C 6C20656E6F 7567682074 6F20657363 6170652E 00001017 00 .DATA.B H'00 00001018 L462: 00001018 596F752772 .SDATA "You're in Adolph Hitler's summer bunker." 6520696E20 41646F6C70 6820486974 6C65722773 2073756D6D 6572206275 6E6B65722E 00001040 00 .DATA.B H'00 00001041 00000001 .RES.B 1 00001042 00000002 .RES.W 1 00001044 L463: 00001044 596F752772 .SDATA "You're in a dwarf work site. A sign says, ""Under construction. Enter at your own" 6520696E20 6120647761 726620776F 726B207369 74652E2020 4120736967 6E20736179 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 233 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 732C202255 6E64657220 636F6E7374 7275637469 6F6E2E2045 6E74657220 617420796F 7572206F77 6E 00001095 207269736B .SDATA " risk.""" 2E22 0000109C 00 .DATA.B H'00 0000109D 00000001 .RES.B 1 0000109E 00000002 .RES.W 1 000010A0 L464: 000010A0 596F752772 .SDATA "You're in the giant's refrigerator. Dwarf bodies hang from hooks." 6520696E20 7468652067 69616E7427 7320726566 7269676572 61746F722E 2020447761 726620626F 6469657320 68616E6720 66726F6D20 686F6F6B73 2E 000010E2 00 .DATA.B H'00 000010E3 00000001 .RES.B 1 000010E4 L465: 000010E4 596F752772 .SDATA "You're in the Dragon's Lair. Slightly melted suits of armor litter the floor." 6520696E20 7468652044 7261676F6E 2773204C61 69722E2020 536C696768 746C79206D 656C746564 2073756974 73206F6620 61726D6F72 206C697474 6572207468 6520666C6F 6F722E 00001132 00 .DATA.B H'00 00001133 00000001 .RES.B 1 00001134 L466: 00001134 596F752772 .SDATA "You're in a nuclear waste depository. The walls glow faintly." 6520696E20 61206E7563 6C65617220 7761737465 206465706F SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 234 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 7369746F72 792E202054 6865207761 6C6C732067 6C6F772066 61696E746C 792E 00001172 00 .DATA.B H'00 00001173 00000001 .RES.B 1 00001174 L467: 00001174 596F752772 .SDATA "You're in Millard Fillmore's tomb. It is dull." 6520696E20 4D696C6C61 7264204669 6C6C6D6F72 6527732074 6F6D622E20 2049742069 732064756C 6C2E 000011A3 00 .DATA.B H'00 000011A4 L468: 000011A4 596F752772 .SDATA "You're in an abandoned corridor of the Strategic Air Command Headquarters. A graf" 6520696E20 616E206162 616E646F6E 656420636F 727269646F 72206F6620 7468652053 7472617465 6769632041 697220436F 6D6D616E64 2048656164 7175617274 6572732E20 2041206772 6166 000011F6 6669746F20 .SDATA "fito reads, ""Beware of Bat Guano.""" 7265616473 2C20224265 7761726520 6F66204261 7420477561 6E6F2E22 00001218 00 .DATA.B H'00 00001219 00000001 .RES.B 1 0000121A 00000002 .RES.W 1 0000121C L469: 0000121C 596F752772 .SDATA "You're in a gnome's workshop. Half-completed whoopee cushions line the tables." 6520696E20 6120676E6F 6D65277320 776F726B73 686F702E20 2048616C66 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 235 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 2D636F6D70 6C65746564 2077686F6F 7065652063 757368696F 6E73206C69 6E65207468 6520746162 6C65732E 0000126B 00 .DATA.B H'00 0000126C L470: 0000126C 596F752772 .SDATA "You're in the Mummy's Tomb. You've triggered some mechanism and the ceiling is sl" 6520696E20 746865204D 756D6D7927 7320546F6D 622E202059 6F75277665 2074726967 6765726564 20736F6D65 206D656368 616E69736D 20616E6420 7468652063 65696C696E 6720697320 736C 000012BE 6F776C7920 .SDATA "owly descending." 6465736365 6E64696E67 2E 000012CE 00 .DATA.B H'00 000012CF 00000001 .RES.B 1 000012D0 L471: 000012D0 596F752772 .SDATA "You're in the Underground Gourmet's retreat. Twinkie and King Don wrappers are pi" 6520696E20 7468652055 6E64657267 726F756E64 20476F7572 6D65742773 2072657472 6561742E20 205477696E 6B69652061 6E64204B69 6E6720446F 6E20777261 7070657273 2061726520 7069 00001322 6C6564206B .SDATA "led knee deep." 6E65652064 6565702E 00001330 00 .DATA.B H'00 00001331 00000001 .RES.B 1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 236 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001332 00000002 .RES.W 1 00001334 L472: 00001334 596F752772 .SDATA "You're in a Hoola Hoop warehouse. The words ""Shoop Shoop"" echo from the walls." 6520696E20 6120486F6F 6C6120486F 6F70207761 7265686F75 73652E2020 5468652077 6F72647320 2253686F6F 702053686F 6F70222065 63686F2066 726F6D2074 6865207761 6C6C732E 00001383 00 .DATA.B H'00 00001384 L473: 00001384 596F752772 .SDATA "You're in the first circle of hell. The living are not allowed here." 6520696E20 7468652066 6972737420 636972636C 65206F6620 68656C6C2E 2020546865 206C697669 6E67206172 65206E6F74 20616C6C6F 7765642068 6572652E 000013C9 00 .DATA.B H'00 000013CA 00000002 .RES.W 1 000013CC L474: 000013CC 596F752772 .SDATA "You're in the hall of the pixies. The furniture appears to have been made from cr" 6520696E20 7468652068 616C6C206F 6620746865 2070697869 65732E2020 5468652066 75726E6974 7572652061 7070656172 7320746F20 6861766520 6265656E20 6D61646520 66726F6D20 6372 0000141E 61646C6573 .SDATA "adles." 2E 00001424 00 .DATA.B H'00 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 237 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001425 00000001 .RES.B 1 00001426 00000002 .RES.W 1 00001428 L475: 00001428 596F752772 .SDATA "You're in a sulfur mine. Molten sulfur churns in a nearby pit. It is becoming dif" 6520696E20 612073756C 667572206D 696E652E20 204D6F6C74 656E207375 6C66757220 636875726E 7320696E20 61206E6561 7262792070 69742E2049 7420697320 6265636F6D 696E672064 6966 0000147A 666963756C .SDATA "ficult to breath." 7420746F20 6272656174 682E 0000148B 00 .DATA.B H'00 0000148C L476: 0000148C 596F752772 .SDATA "You're in a fairy mushroom farm. Brilliantly colored mushrooms cover the floor." 6520696E20 6120666169 7279206D75 7368726F6F 6D20666172 6D2E202042 72696C6C69 616E746C79 20636F6C6F 726564206D 757368726F 6F6D732063 6F76657220 7468652066 6C6F6F722E 000014DC 00 .DATA.B H'00 000014DD 00000001 .RES.B 1 000014DE 00000002 .RES.W 1 000014E0 L477: 000014E0 596F752772 .SDATA "You're in an ice cave. Along the western wall, a brontosaurus is defrosting." 6520696E20 616E206963 6520636176 652E202041 6C6F6E6720 7468652077 6573746572 6E2077616C 6C2C206120 62726F6E74 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 238 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 6F73617572 7573206973 2064656672 6F7374696E 672E 0000152D 00 .DATA.B H'00 0000152E 00000002 .RES.W 1 00001530 L478: 00001530 596F752772 .SDATA "You're in the giant's stove. Fortunately, the giant now owns a microwave oven." 6520696E20 7468652067 69616E7427 732073746F 76652E2020 466F727475 6E6174656C 792C207468 6520676961 6E74206E6F 77206F776E 732061206D 6963726F77 617665206F 76656E2E 0000157F 00 .DATA.B H'00 00001580 L479: 00001580 596F752772 .SDATA "You're in the rib cage of a long deceased whale." 6520696E20 7468652072 6962206361 6765206F66 2061206C6F 6E67206465 6365617365 6420776861 6C652E 000015B0 00 .DATA.B H'00 000015B1 00000001 .RES.B 1 000015B2 00000002 .RES.W 1 000015B4 L480: 000015B4 596F752772 .SDATA "You're in a room with six walls. The walls appear to be made of wax. A loud buzz" 6520696E20 6120726F6F 6D20776974 6820736978 2077616C6C 732E202054 6865207761 6C6C732061 7070656172 20746F2062 65206D6164 65206F6620 7761782E20 2041206C6F 7564206275 7A7A SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 239 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001606 696E67206E .SDATA "ing noise can be heard." 6F69736520 63616E2062 6520686561 72642E 0000161D 00 .DATA.B H'00 0000161E 00000002 .RES.W 1 00001620 L481: 00001620 596F752772 .SDATA "You're in the tomb of a Pharaoh. It has obviously been visited by others; the tom" 6520696E20 7468652074 6F6D62206F 6620612050 686172616F 682E202049 7420686173 206F627669 6F75736C79 206265656E 2076697369 7465642062 79206F7468 6572733B20 7468652074 6F6D 00001672 6220697320 .SDATA "b is in a state of total disarray." 696E206120 7374617465 206F662074 6F74616C20 6469736172 7261792E 00001694 00 .DATA.B H'00 00001695 00000001 .RES.B 1 00001696 00000002 .RES.W 1 00001698 L482: 00001698 596F752772 .SDATA "You're in a coal bin. There is a fossilized fern stump here." 6520696E20 6120636F61 6C2062696E 2E20205468 6572652069 7320612066 6F7373696C 697A656420 6665726E20 7374756D70 2068657265 2E 000016D5 00 .DATA.B H'00 000016D6 00000002 .RES.W 1 000016D8 L483: 000016D8 596F752772 .SDATA "You're in a diamond mine. It is uncomfortably hot here." 6520696E20 6120646961 6D6F6E6420 6D696E652E SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 240 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 2020497420 697320756E 636F6D666F 727461626C 7920686F74 2068657265 2E 00001710 00 .DATA.B H'00 00001711 00000001 .RES.B 1 00001712 00000002 .RES.W 1 00001714 L484: 00001714 596F752772 .SDATA "You're in the bottom of an oil well. The walls are slick." 6520696E20 7468652062 6F74746F6D 206F662061 6E206F696C 2077656C6C 2E20205468 652077616C 6C73206172 6520736C69 636B2E 0000174E 00 .DATA.B H'00 0000174F 00000001 .RES.B 1 00001750 L485: 00001750 596F752772 .SDATA "You're in the lowest level of Project Mohole. The funding bubble burst before the" 6520696E20 746865206C 6F77657374 206C657665 6C206F6620 50726F6A65 6374204D6F 686F6C652E 2020546865 2066756E64 696E672062 7562626C65 2062757273 7420626566 6F72652074 6865 000017A2 2065617274 .SDATA " earth did." 6820646964 2E 000017AD 00 .DATA.B H'00 000017AE 00000002 .RES.W 1 000017B0 L486: 000017B0 596F752772 .SDATA "You're in the giant's cesspool. Fortunately, the giant was connected to the city " 6520696E20 7468652067 69616E7427 7320636573 73706F6F6C 2E2020466F 7274756E61 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 241 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 74656C792C 2074686520 6769616E74 2077617320 636F6E6E65 6374656420 746F207468 6520636974 7920 00001802 7365776572 .SDATA "sewerage system years ago." 6167652073 797374656D 2079656172 732061676F 2E 0000181C 00 .DATA.B H'00 0000181D 00000001 .RES.B 1 0000181E 00000002 .RES.W 1 00001820 L487: 00001820 596F752772 .SDATA "You're in an eighteenth century sewer. The walls are crumbling brick. Small alli" 6520696E20 616E206569 6768746565 6E74682063 656E747572 7920736577 65722E2020 5468652077 616C6C7320 6172652063 72756D626C 696E672062 7269636B2E 2020536D61 6C6C20616C 6C69 00001872 6761746F72 .SDATA "gators snap at your feet." 7320736E61 7020617420 796F757220 666565742E 0000188B 00 .DATA.B H'00 0000188C L488: 0000188C 596F752772 .SDATA "You're in the lair of a giant trapdoor spider." 6520696E20 746865206C 616972206F 6620612067 69616E7420 7472617064 6F6F722073 7069646572 2E 000018BA 00 .DATA.B H'00 000018BB 00000001 .RES.B 1 000018BC L489: 000018BC 596F752772 .SDATA "You're in a giant gopher tunnel." SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 242 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 6520696E20 6120676961 6E7420676F 7068657220 74756E6E65 6C2E 000018DC 00 .DATA.B H'00 000018DD 00000001 .RES.B 1 000018DE 00000002 .RES.W 1 000018E0 L490: 000018E0 596F752772 .SDATA "You're in a shell -- the sole remains of a prehistoric turtle." 6520696E20 6120736865 6C6C202D2D 2074686520 736F6C6520 72656D6169 6E73206F66 2061207072 6568697374 6F72696320 747572746C 652E 0000191E 00 .DATA.B H'00 0000191F 00000001 .RES.B 1 00001920 L491: 00001920 596F752772 .SDATA "You're in a small chamber. The walls are made of earth. The air smells of formic" 6520696E20 6120736D61 6C6C206368 616D626572 2E20205468 652077616C 6C73206172 65206D6164 65206F6620 6561727468 2E20205468 6520616972 20736D656C 6C73206F66 20666F726D 6963 00001972 2061636964 .SDATA " acid. A strange squeaking noise can be heard in the distance." 2E20204120 737472616E 6765207371 7565616B69 6E67206E6F 6973652063 616E206265 2068656172 6420696E20 7468652064 697374616E 63652E 000019B1 00 .DATA.B H'00 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 243 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000019B2 00000002 .RES.W 1 000019B4 L492: 000019B4 596F752772 .SDATA "You're in a chamber of columns. The stalagmites and stalactites join here." 6520696E20 6120636861 6D62657220 6F6620636F 6C756D6E73 2E20205468 6520737461 6C61676D69 7465732061 6E64207374 616C616374 6974657320 6A6F696E20 686572652E 000019FF 00 .DATA.B H'00 00001A00 L493: 00001A00 596F752772 .SDATA "You're in a service tunnel. Ducts, pipes, and cables are everywhere." 6520696E20 6120736572 7669636520 74756E6E65 6C2E202044 756374732C 2070697065 732C20616E 6420636162 6C65732061 7265206576 6572797768 6572652E 00001A45 00 .DATA.B H'00 00001A46 00000002 .RES.W 1 00001A48 L494: 00001A48 596F752772 .SDATA "You're in a gas tank below an abandoned service station. No smoking!" 6520696E20 6120676173 2074616E6B 2062656C6F 7720616E20 6162616E64 6F6E656420 7365727669 6365207374 6174696F6E 2E20204E6F 20736D6F6B 696E6721 00001A8D 00 .DATA.B H'00 00001A8E 00000002 .RES.W 1 00001A90 L495: 00001A90 596F752772 .SDATA "You're in a huge dark chamber. To one side, a dark, muddy river moves sluggishly." 6520696E20 6120687567 6520646172 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 244 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 6B20636861 6D6265722E 2020546F20 6F6E652073 6964652C20 6120646172 6B2C206D75 6464792072 6976657220 6D6F766573 20736C7567 676973686C 792E 00001AE2 2020412073 .SDATA " A sign written in ancient Greek says, ""Ferry out of order.""" 69676E2077 7269747465 6E20696E20 616E636965 6E74204772 65656B2073 6179732C20 2246657272 79206F7574 206F66206F 726465722E 22 00001B1F 00 .DATA.B H'00 00001B20 L496: 00001B20 596F752772 .SDATA "You're in a small chamber. It is brightly lit by a peculiar lichen growing on the " 6520696E20 6120736D61 6C6C206368 616D626572 2E20497420 6973206272 696768746C 79206C6974 2062792061 2070656375 6C69617220 6C69636865 6E2067726F 77696E6720 6F6E207468 6520 00001B72 77616C6C73 .SDATA "walls and ceiling. The floor is rocky and steeply sloping. Nearby, a cold, clear" 20616E6420 6365696C69 6E672E2020 5468652066 6C6F6F7220 697320726F 636B792061 6E64207374 6565706C79 20736C6F70 696E672E20 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 245 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 204E656172 62792C2061 20636F6C64 2C20636C65 6172 00001BC4 2063726565 .SDATA " creek boils into the floor and out of sight." 6B20626F69 6C7320696E 746F207468 6520666C6F 6F7220616E 64206F7574 206F662073 696768742E 00001BF1 00 .DATA.B H'00 00001BF2 00000002 .RES.W 1 00001BF4 L497: 00001BF4 596F752772 .SDATA "You're in the nest of a very large pack rat. There are discarded aluminum Christm" 6520696E20 746865206E 657374206F 6620612076 657279206C 6172676520 7061636B20 7261742E20 2054686572 6520617265 2064697363 6172646564 20616C756D 696E756D20 4368726973 746D 00001C46 6173207472 .SDATA "as trees, broken steel utility poles, and other shiny, worthless items here." 6565732C20 62726F6B65 6E20737465 656C207574 696C697479 20706F6C65 732C20616E 64206F7468 6572207368 696E792C20 776F727468 6C65737320 6974656D73 2068657265 2E 00001C92 00 .DATA.B H'00 00001C93 00000001 .RES.B 1 00001C94 L498: 00001C94 596F752772 .SDATA "You're in a dungeon. An iron maiden, a rack, a piano, and other machines of tortu" 6520696E20 612064756E 67656F6E2E SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 246 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 2020416E20 69726F6E20 6D61696465 6E2C206120 7261636B2C 2061207069 616E6F2C20 616E64206F 7468657220 6D61636869 6E6573206F 6620746F72 7475 00001CE6 7265206361 .SDATA "re can be seen." 6E20626520 7365656E2E 00001CF5 00 .DATA.B H'00 00001CF6 00000002 .RES.W 1 00001CF8 L499: 00001CF8 596F752772 .SDATA "You're in the hall of bats. Thousands of bats hang from the ceiling. Watch your " 6520696E20 7468652068 616C6C206F 6620626174 732E202054 686F757361 6E6473206F 6620626174 732068616E 672066726F 6D20746865 206365696C 696E672E20 2057617463 6820796F75 7220 00001D4A 737465703B .SDATA "step; the droppings are quite deep in places." 2074686520 64726F7070 696E677320 6172652071 7569746520 6465657020 696E20706C 616365732E 00001D77 00 .DATA.B H'00 00001D78 L500: 00001D78 596F752772 .SDATA "You're in a hobgoblin's hideaway." 6520696E20 6120686F62 676F626C69 6E27732068 6964656177 61792E 00001D99 00 .DATA.B H'00 00001D9A 00000002 .RES.W 1 00001D9C L501: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 247 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00001D9C 596F752772 .SDATA "You're in an electrical substation. A transformer is humming loudly. Nearby, cab" 6520696E20 616E20656C 6563747269 63616C2073 7562737461 74696F6E2E 2020412074 72616E7366 6F726D6572 2069732068 756D6D696E 67206C6F75 646C792E20 204E656172 62792C2063 6162 00001DEE 6C65732063 .SDATA "les crackle with high voltage." 7261636B6C 6520776974 6820686967 6820766F6C 746167652E 00001E0C 00 .DATA.B H'00 00001E0D 00000001 .RES.B 1 00001E0E 00000002 .RES.W 1 00001E10 L502: 00001E10 596F752772 .SDATA "You're in the ""gold"" room. The walls are covered with iron pyrite." 6520696E20 7468652022 676F6C6422 20726F6F6D 2E20205468 652077616C 6C73206172 6520636F76 6572656420 7769746820 69726F6E20 7079726974 652E 00001E53 00 .DATA.B H'00 00001E54 L503: 00001E54 596F752772 .SDATA "You're in a room with one of Dracula's emergency coffins. The Count is out." 6520696E20 6120726F6F 6D20776974 68206F6E65 206F662044 726163756C 6127732065 6D65726765 6E63792063 6F6666696E 732E202054 686520436F 756E742069 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 248 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 73206F7574 2E 00001EA0 00 .DATA.B H'00 00001EA1 00000001 .RES.B 1 00001EA2 00000002 .RES.W 1 00001EA4 L504: 00001EA4 596F752772 .SDATA "You're in a saltpeter mine. To one side there is a huge wooden evaporation vat. " 6520696E20 612073616C 7470657465 72206D696E 652E202054 6F206F6E65 2073696465 2074686572 6520697320 6120687567 6520776F6F 64656E2065 7661706F72 6174696F6E 207661742E 2020 00001EF6 536D616C6C .SDATA "Small crystals of saltpeter cause the walls to sparkle." 2063727973 74616C7320 6F66207361 6C74706574 6572206361 7573652074 6865207761 6C6C732074 6F20737061 726B6C652E 00001F2D 00 .DATA.B H'00 00001F2E 00000002 .RES.W 1 00001F30 L505: 00001F30 596F752772 .SDATA "You're in the basement cafeteria of a local hospital. Some say that there has bee" 6520696E20 7468652062 6173656D65 6E74206361 6665746572 6961206F66 2061206C6F 63616C2068 6F73706974 616C2E2020 536F6D6520 7361792074 6861742074 6865726520 6861732062 6565 00001F82 6E206E6F74 .SDATA "n nothing edible here for years." 68696E6720 656469626C SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 249 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 6520686572 6520666F72 2079656172 732E 00001FA2 00 .DATA.B H'00 00001FA3 00000001 .RES.B 1 00001FA4 L506: 00001FA4 596F752772 .SDATA "You're in a troll arsenal. Kegs of gun powder surround you." 6520696E20 612074726F 6C6C206172 73656E616C 2E20204B65 6773206F66 2067756E20 706F776465 7220737572 726F756E64 20796F752E 00001FE0 00 .DATA.B H'00 00001FE1 L536: 00001FE1 3031323334 .DATA.B H'30,H'31,H'32,H'33,H'34,H'35,H'36,H'37,H'38,H'39 3536373839 00001FEB 00000001 .RES.B 1 00001FEC L565: 00001FEC 2870726573 .SDATA "(press a key to continue)" 732061206B 657920746F 20636F6E74 696E756529 00002005 00 .DATA.B H'00 00002006 00000002 .RES.W 1 00002008 L594: 00002008 2020202020 .SDATA " (cont'd)" 2020202020 2020202863 6F6E742764 29 0000201D 00 .DATA.B H'00 0000201E 00000002 .RES.W 1 00002020 L618: 00002020 20 .SDATA " " 00002021 00 .DATA.B H'00 00002022 00000002 .RES.W 1 00002024 L621: 00002024 466174616C .SDATA "Fatal error: the paragraph buffer is too small." 206572726F 723A202074 6865207061 7261677261 7068206275 6666657220 697320746F 6F20736D61 6C6C2E 00002054 00 .DATA.B H'00 00002055 00000001 .RES.B 1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 250 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002056 00000002 .RES.W 1 00002058 L624: 00002058 436F6D6D61 .SDATA "Commands in the game are ""N"", ""E"", ""S"", ""W"", ""U"", and ""D"" to move Nort" 6E64732069 6E20746865 2067616D65 2061726520 224E222C20 2245222C20 2253222C20 2257222C20 2255222C20 616E642022 442220746F 206D6F7665 204E6F7274 0000209E 682C204561 .SDATA "h, East, South, West, Up, or Down, respectively. Other commands are ""C"" to carr" 73742C2053 6F7574682C 2057657374 2C2055702C 206F722044 6F776E2C20 7265737065 6374697665 6C792E2020 4F74686572 20636F6D6D 616E647320 6172652022 432220746F 2063617272 000020EE 7920746869 .SDATA "y things, ""I"" to inventory what you are carrying, ""L"" to leave treasures, ""P" 6E67732C20 2249222074 6F20696E76 656E746F72 7920776861 7420796F75 2061726520 6361727279 696E672C20 224C222074 6F206C6561 7665207472 6561737572 65732C2022 50 0000213A 2220746F20 .SDATA """ to get the points you've scored, ""O"" for help getting out of the mine, ""F"" " 6765742074 686520706F 696E747320 796F752776 652073636F 7265642C20 224F222066 6F72206865 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 251 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 6C70206765 7474696E67 206F757420 6F66207468 65206D696E 652C202246 2220 00002187 746F207377 .SDATA "to switch fonts, ""H"" for help, and ""Q"" to quit." 6974636820 666F6E7473 2C20224822 20666F7220 68656C702C 20616E6420 2251222074 6F20717569 742E 000021B6 00 .DATA.B H'00 000021B7 00000001 .RES.B 1 000021B8 L627: 000021B8 496E206120 .SDATA "In a mine, the passages are straight. So, for example, if you go North to leave a" 6D696E652C 2074686520 7061737361 6765732061 7265207374 7261696768 742E202053 6F2C20666F 7220657861 6D706C652C 2069662079 6F7520676F 204E6F7274 6820746F20 6C65617665 2061 0000220A 20726F6F6D .SDATA " room, you can go South to reenter it. The rooms are not evenly spaced. However," 2C20796F75 2063616E20 676F20536F 7574682074 6F20726565 6E74657220 69742E2020 5468652072 6F6F6D7320 617265206E 6F74206576 656E6C7920 7370616365 642E202048 6F77657665 722C 0000225C 2074686520 .SDATA " the distance between adjacent rooms is always a multiple of the minimum distance " 6469737461 6E63652062 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 252 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 6574776565 6E2061646A 6163656E74 20726F6F6D 7320697320 616C776179 732061206D 756C746970 6C65206F66 2074686520 6D696E696D 756D206469 7374616E63 6520 000022AE 6265747765 .SDATA "between adjacent rooms." 656E206164 6A6163656E 7420726F6F 6D732E 000022C5 00 .DATA.B H'00 000022C6 00000002 .RES.W 1 000022C8 L638: 000022C8 4D696E6520 .SDATA "Mine number? " 6E756D6265 723F20 000022D5 00 .DATA.B H'00 000022D6 00000002 .RES.W 1 000022D8 L697: 000022D8 466174616C .SDATA "Fatal error: memory was exhausted at locaton 1." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E 20312E 00002308 00 .DATA.B H'00 00002309 00000001 .RES.B 1 0000230A 00000002 .RES.W 1 0000230C L701: 0000230C 466174616C .SDATA "Fatal error: memory was exhausted at locaton 2." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E 20322E 0000233C 00 .DATA.B H'00 0000233D 00000001 .RES.B 1 0000233E 00000002 .RES.W 1 00002340 L705: 00002340 466174616C .SDATA "Fatal error: memory was exhausted at locaton 3." SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 253 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E 20332E 00002370 00 .DATA.B H'00 00002371 00000001 .RES.B 1 00002372 00000002 .RES.W 1 00002374 L709: 00002374 466174616C .SDATA "Fatal error: memory was exhausted at locaton 4." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E 20342E 000023A4 00 .DATA.B H'00 000023A5 00000001 .RES.B 1 000023A6 00000002 .RES.W 1 000023A8 L711: 000023A8 466174616C .SDATA "Fatal error: memory was exhausted at locaton 5." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E 20352E 000023D8 00 .DATA.B H'00 000023D9 00000001 .RES.B 1 000023DA 00000002 .RES.W 1 000023DC L781: 000023DC 596F752772 .SDATA "You're already at the entrance." 6520616C72 6561647920 6174207468 6520656E74 72616E6365 2E 000023FB 00 .DATA.B H'00 000023FC L785: 000023FC 5468652070 .SDATA "The pirate takes one of your treasures. As he leaves, he shouts the letters """ 6972617465 2074616B65 73206F6E65 206F662079 6F75722074 7265617375 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 254 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 7265732E20 2041732068 65206C6561 7665732C20 6865207368 6F75747320 746865206C 6574746572 732022 0000244A 00 .DATA.B H'00 0000244B 00000001 .RES.B 1 0000244C L786: 0000244C 222E .SDATA """." 0000244E 00 .DATA.B H'00 0000244F 00000001 .RES.B 1 00002450 L788: 00002450 5468652070 .SDATA "The pirate takes one of your treasures. " 6972617465 2074616B65 73206F6E65 206F662079 6F75722074 7265617375 7265732E20 20 00002479 00 .DATA.B H'00 0000247A 00000002 .RES.W 1 0000247C L789: 0000247C 4173206865 .SDATA "As he leaves, he shouts the letter """ 206C656176 65732C2068 652073686F 7574732074 6865206C65 7474657220 22 000024A0 00 .DATA.B H'00 000024A1 00000001 .RES.B 1 000024A2 00000002 .RES.W 1 000024A4 L790: 000024A4 4173206865 .SDATA "As he leaves, he shouts the letters """ 206C656176 65732C2068 652073686F 7574732074 6865206C65 7474657273 2022 000024C9 00 .DATA.B H'00 000024CA 00000002 .RES.W 1 000024CC L792: 000024CC 466174616C .SDATA "Fatal error: memory was exhausted at locaton 6." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 255 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 7374656420 6174206C6F 6361746F6E 20362E 000024FC 00 .DATA.B H'00 000024FD 00000001 .RES.B 1 000024FE 00000002 .RES.W 1 00002500 L793: 00002500 4E6F746869 .SDATA "Nothing happens." 6E67206861 7070656E73 2E 00002510 00 .DATA.B H'00 00002511 00000001 .RES.B 1 00002512 00000002 .RES.W 1 00002514 L807: 00002514 436F6D6D61 .SDATA "Command? " 6E643F20 0000251D 00 .DATA.B H'00 0000251E L819: 0000251E 5468657265 .SDATA "There are passages North, South, East, West, Up, and Down." 2061726520 7061737361 676573204E 6F7274682C 20536F7574 682C204561 73742C2057 6573742C20 55702C2061 6E6420446F 776E2E 00002558 00 .DATA.B H'00 00002559 00000001 .RES.B 1 0000255A 00000002 .RES.W 1 0000255C L821: 0000255C 5468657265 .SDATA "There are passages" 2061726520 7061737361 676573 0000256E 00 .DATA.B H'00 0000256F 00000001 .RES.B 1 00002570 L822: 00002570 5468657265 .SDATA "There is a passage" 2069732061 2070617373 616765 00002582 00 .DATA.B H'00 00002583 00000001 .RES.B 1 00002584 L824: 00002584 2C .SDATA "," 00002585 00 .DATA.B H'00 00002586 00000002 .RES.W 1 00002588 L825: 00002588 616E6420 .SDATA "and " 0000258C 00 .DATA.B H'00 0000258D 00000001 .RES.B 1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 256 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000258E 00000002 .RES.W 1 00002590 L826: 00002590 2E .SDATA "." 00002591 00 .DATA.B H'00 00002592 00000002 .RES.W 1 00002594 L830: 00002594 5468652070 .SDATA "The passage " 6173736167 6520 000025A0 00 .DATA.B H'00 000025A1 00000001 .RES.B 1 000025A2 00000002 .RES.W 1 000025A4 L831: 000025A4 2069732067 .SDATA " is guarded by an " 7561726465 6420627920 616E20 000025B6 00 .DATA.B H'00 000025B7 00000001 .RES.B 1 000025B8 L834: 000025B8 466174616C .SDATA "Fatal error: memory was exhausted at locaton 7." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E 20372E 000025E8 00 .DATA.B H'00 000025E9 00000001 .RES.B 1 000025EA 00000002 .RES.W 1 000025EC L835: 000025EC 2069732067 .SDATA " is guarded by a " 7561726465 6420627920 6120 000025FD 00 .DATA.B H'00 000025FE 00000002 .RES.W 1 00002600 L838: 00002600 466174616C .SDATA "Fatal error: memory was exhausted at locaton 8." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E 20382E 00002630 00 .DATA.B H'00 00002631 00000001 .RES.B 1 00002632 00000002 .RES.W 1 00002634 L851: 00002634 5468657265 .SDATA "There is " 20697320 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 257 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000263D 00 .DATA.B H'00 0000263E 00000002 .RES.W 1 00002640 L852: 00002640 5468657265 .SDATA "There are " 2061726520 0000264A 00 .DATA.B H'00 0000264B 00000001 .RES.B 1 0000264C L856: 0000264C 616E20 .SDATA "an " 0000264F 00 .DATA.B H'00 00002650 L857: 00002650 6120 .SDATA "a " 00002652 00 .DATA.B H'00 00002653 00000001 .RES.B 1 00002654 L858: 00002654 2C20 .SDATA ", " 00002656 00 .DATA.B H'00 00002657 00000001 .RES.B 1 00002658 L860: 00002658 2068657265 .SDATA " here." 2E 0000265E 00 .DATA.B H'00 0000265F 00000001 .RES.B 1 00002660 L873: 00002660 466174616C .SDATA "Fatal error: memory was exhausted at location 22." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 636174696F 6E2032322E 00002692 00 .DATA.B H'00 00002693 00000001 .RES.B 1 00002694 L883: 00002694 5468657265 .SDATA "There is nothing to carry." 206973206E 6F7468696E 6720746F20 6361727279 2E 000026AE 00 .DATA.B H'00 000026AF 00000001 .RES.B 1 000026B0 L891: 000026B0 596F752061 .SDATA "You aren't carrying anything to leave." 72656E2774 2063617272 79696E6720 616E797468 696E672074 6F206C6561 76652E 000026D6 00 .DATA.B H'00 000026D7 00000001 .RES.B 1 000026D8 L903: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 258 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000026D8 596F752061 .SDATA "You are carrying " 7265206361 727279696E 6720 000026E9 00 .DATA.B H'00 000026EA 00000002 .RES.W 1 000026EC L918: 000026EC 466174616C .SDATA "Fatal error: memory was exhausted at location 21." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 636174696F 6E2032312E 0000271E 00 .DATA.B H'00 0000271F 00000001 .RES.B 1 00002720 L919: 00002720 596F752061 .SDATA "You aren't carrying anything." 72656E2774 2063617272 79696E6720 616E797468 696E672E 0000273D 00 .DATA.B H'00 0000273E 00000002 .RES.W 1 00002740 L931: 00002740 596F752063 .SDATA "You carry nothing to overcome the " 6172727920 6E6F746869 6E6720746F 206F766572 636F6D6520 74686520 00002762 00 .DATA.B H'00 00002763 00000001 .RES.B 1 00002764 L934: 00002764 466174616C .SDATA "Fatal error: memory was exhausted at locaton 15." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E 2031352E 00002795 00 .DATA.B H'00 00002796 00000002 .RES.W 1 00002798 L935: 00002798 596F757220 .SDATA "Your " 0000279D 00 .DATA.B H'00 0000279E 00000002 .RES.W 1 000027A0 L936: 000027A0 206F766572 .SDATA " overcomes the " SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 259 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 636F6D6573 2074686520 000027AF 00 .DATA.B H'00 000027B0 L939: 000027B0 466174616C .SDATA "Fatal error: memory was exhausted at locaton 16." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E 2031362E 000027E1 00 .DATA.B H'00 000027E2 00000002 .RES.W 1 000027E4 L941: 000027E4 596F752063 .SDATA "You can't go that way." 616E277420 676F207468 6174207761 792E 000027FA 00 .DATA.B H'00 000027FB 00000001 .RES.B 1 000027FC L964: 000027FC 596F752068 .SDATA "You have moved " 617665206D 6F76656420 0000280B 00 .DATA.B H'00 0000280C L965: 0000280C 2074696D65 .SDATA " times to visit " 7320746F20 7669736974 20 0000281C 00 .DATA.B H'00 0000281D 00000001 .RES.B 1 0000281E 00000002 .RES.W 1 00002820 L966: 00002820 206F6620 .SDATA " of " 00002824 00 .DATA.B H'00 00002825 00000001 .RES.B 1 00002826 00000002 .RES.W 1 00002828 L967: 00002828 206C6F6361 .SDATA " locations." 74696F6E73 2E 00002833 00 .DATA.B H'00 00002834 L970: 00002834 466174616C .SDATA "Fatal error: memory was exhausted at locaton 17." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 260 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 2031372E 00002865 00 .DATA.B H'00 00002866 00000002 .RES.W 1 00002868 L972: 00002868 596F752068 .SDATA "You hold " 6F6C6420 00002871 00 .DATA.B H'00 00002872 00000002 .RES.W 1 00002874 L973: 00002874 2074726561 .SDATA " treasures." 7375726573 2E 0000287F 00 .DATA.B H'00 00002880 L976: 00002880 466174616C .SDATA "Fatal error: memory was exhausted at locaton 18." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E 2031382E 000028B1 00 .DATA.B H'00 000028B2 00000002 .RES.W 1 000028B4 L978: 000028B4 596F752068 .SDATA "You have returned " 6176652072 657475726E 656420 000028C6 00 .DATA.B H'00 000028C7 00000001 .RES.B 1 000028C8 L979: 000028C8 2074726561 .SDATA " treasures to the entrance of the mine." 7375726573 20746F2074 686520656E 7472616E63 65206F6620 746865206D 696E652E 000028EF 00 .DATA.B H'00 000028F0 L982: 000028F0 466174616C .SDATA "Fatal error: memory was exhausted at locaton 19." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E 2031392E 00002921 00 .DATA.B H'00 00002922 00000002 .RES.W 1 00002924 L985: SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 261 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002924 596F752068 .SDATA "You have scored " 6176652073 636F726564 20 00002934 00 .DATA.B H'00 00002935 00000001 .RES.B 1 00002936 00000002 .RES.W 1 00002938 L986: 00002938 206F662031 .SDATA " of 100 points." 303020706F 696E74732E 00002947 00 .DATA.B H'00 00002948 L989: 00002948 466174616C .SDATA "Fatal error: memory was exhausted at locaton 20." 206572726F 723A20206D 656D6F7279 2077617320 6578686175 7374656420 6174206C6F 6361746F6E 2032302E 00002979 00 .DATA.B H'00 0000297A 00000002 .RES.W 1 0000297C L992: 0000297C 596F757220 .SDATA "Your score ranks you as a beginner." 73636F7265 2072616E6B 7320796F75 2061732061 2062656769 6E6E65722E 0000299F 00 .DATA.B H'00 000029A0 L993: 000029A0 596F757220 .SDATA "Your score ranks you as a novice adventurer." 73636F7265 2072616E6B 7320796F75 2061732061 206E6F7669 6365206164 76656E7475 7265722E 000029CC 00 .DATA.B H'00 000029CD 00000001 .RES.B 1 000029CE 00000002 .RES.W 1 000029D0 L994: 000029D0 596F757220 .SDATA "Your score ranks you as a seasoned explorer." 73636F7265 2072616E6B 7320796F75 2061732061 2073656173 6F6E656420 6578706C6F 7265722E SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 262 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000029FC 00 .DATA.B H'00 000029FD 00000001 .RES.B 1 000029FE 00000002 .RES.W 1 00002A00 L995: 00002A00 596F757220 .SDATA "Your score ranks you as a grissly old prospector." 73636F7265 2072616E6B 7320796F75 2061732061 2067726973 736C79206F 6C64207072 6F73706563 746F722E 00002A31 00 .DATA.B H'00 00002A32 00000002 .RES.W 1 00002A34 L996: 00002A34 596F757220 .SDATA "Your score ranks you as an expert treasure hunter; there is no higher rating." 73636F7265 2072616E6B 7320796F75 2061732061 6E20657870 6572742074 7265617375 7265206875 6E7465723B 2074686572 6520697320 6E6F206869 6768657220 726174696E 672E 00002A81 00 .DATA.B H'00 00002A82 00000002 .RES.W 1 00002A84 L1012: 00002A84 4920646F6E .SDATA "I don't recognize that command." 2774207265 636F676E69 7A65207468 617420636F 6D6D616E64 2E 00002AA3 00 .DATA.B H'00 00002AA4 L1028: 00002AA4 4572726F72 .SDATA "Error: out of memory" 3A20206F75 74206F6620 6D656D6F72 79 00002AB9 00 .DATA.B H'00 00002ABA 00000002 .RES.W 1 00002ABC L1048: 00002ABC 596F752772 .SDATA "You're in the entrance to the mine." 6520696E20 7468652065 6E7472616E SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 263 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 636520746F 2074686520 6D696E652E 00002ADF 00 .DATA.B H'00 00002AE0 L1050: 00002AE0 5072657373 .SDATA "Press a key to exit." 2061206B65 7920746F20 657869742E 00002AF4 00 .DATA.B H'00 00002AF5 00000001 .RES.B 1 00002AF6 00000002 .RES.W 1 00002AF8 L350: 00002AF8 6E6F727468 .SDATA "north" 00002AFD 00 .DATA.B H'00 00002AFE 00000002 .RES.W 1 00002B00 L351: 00002B00 736F757468 .SDATA "south" 00002B05 00 .DATA.B H'00 00002B06 00000002 .RES.W 1 00002B08 L352: 00002B08 65617374 .SDATA "east" 00002B0C 00 .DATA.B H'00 00002B0D 00000001 .RES.B 1 00002B0E 00000002 .RES.W 1 00002B10 L353: 00002B10 77657374 .SDATA "west" 00002B14 00 .DATA.B H'00 00002B15 00000001 .RES.B 1 00002B16 00000002 .RES.W 1 00002B18 L354: 00002B18 7570 .SDATA "up" 00002B1A 00 .DATA.B H'00 00002B1B 00000001 .RES.B 1 00002B1C L355: 00002B1C 646F776E .SDATA "down" 00002B20 00 .DATA.B H'00 00002B21 00000001 .RES.B 1 00002B22 00000002 .RES.W 1 00002B24 L361: 00002B24 6261672066 .SDATA "bag full of gold coins" 756C6C206F 6620676F6C 6420636F69 6E73 00002B3A 00 .DATA.B H'00 00002B3B 00000001 .RES.B 1 00002B3C L362: 00002B3C 676F72676F .SDATA "gorgon" 6E 00002B42 00 .DATA.B H'00 00002B43 00000001 .RES.B 1 00002B44 L363: 00002B44 6D6972726F .SDATA "mirror" 72 00002B4A 00 .DATA.B H'00 00002B4B 00000001 .RES.B 1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 264 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002B4C L364: 00002B4C 6C61726765 .SDATA "large blue-white diamond" 20626C7565 2D77686974 6520646961 6D6F6E64 00002B64 00 .DATA.B H'00 00002B65 00000001 .RES.B 1 00002B66 00000002 .RES.W 1 00002B68 L365: 00002B68 6772697A7A .SDATA "grizzly bear" 6C79206265 6172 00002B74 00 .DATA.B H'00 00002B75 00000001 .RES.B 1 00002B76 00000002 .RES.W 1 00002B78 L366: 00002B78 7065707065 .SDATA "pepper spray dispenser" 7220737072 6179206469 7370656E73 6572 00002B8E 00 .DATA.B H'00 00002B8F 00000001 .RES.B 1 00002B90 L367: 00002B90 7369787479 .SDATA "sixty carat emerald" 2063617261 7420656D65 72616C64 00002BA3 00 .DATA.B H'00 00002BA4 L368: 00002BA4 76616D7069 .SDATA "vampire" 7265 00002BAB 00 .DATA.B H'00 00002BAC L369: 00002BAC 776F6F6465 .SDATA "wooden stake" 6E20737461 6B65 00002BB8 00 .DATA.B H'00 00002BB9 00000001 .RES.B 1 00002BBA 00000002 .RES.W 1 00002BBC L370: 00002BBC 706C617469 .SDATA "platinum crucifix" 6E756D2063 7275636966 6978 00002BCD 00 .DATA.B H'00 00002BCE 00000002 .RES.W 1 00002BD0 L371: 00002BD0 63726F636F .SDATA "crocodile" 64696C65 00002BD9 00 .DATA.B H'00 00002BDA 00000002 .RES.W 1 00002BDC L372: 00002BDC 726F6C6C20 .SDATA "roll of duct tape" 6F66206475 6374207461 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 265 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 7065 00002BED 00 .DATA.B H'00 00002BEE 00000002 .RES.W 1 00002BF0 L373: 00002BF0 737472696E .SDATA "string of pearls" 67206F6620 706561726C 73 00002C00 00 .DATA.B H'00 00002C01 00000001 .RES.B 1 00002C02 00000002 .RES.W 1 00002C04 L374: 00002C04 6769616E74 .SDATA "giant crayfish" 2063726179 66697368 00002C12 00 .DATA.B H'00 00002C13 00000001 .RES.B 1 00002C14 L375: 00002C14 6A6172206F .SDATA "jar of Zatarain's Crab Boil" 66205A6174 617261696E 2773204372 616220426F 696C 00002C2F 00 .DATA.B H'00 00002C30 L376: 00002C30 4D696E6720 .SDATA "Ming vase" 76617365 00002C39 00 .DATA.B H'00 00002C3A 00000002 .RES.W 1 00002C3C L377: 00002C3C 74726F6C6C .SDATA "troll" 00002C41 00 .DATA.B H'00 00002C42 00000002 .RES.W 1 00002C44 L378: 00002C44 656C66696E .SDATA "elfin sword" 2073776F72 64 00002C4F 00 .DATA.B H'00 00002C50 L379: 00002C50 6C69737420 .SDATA "list of the next ten winners of the Kentucky Derby" 6F66207468 65206E6578 742074656E 2077696E6E 657273206F 6620746865 204B656E74 75636B7920 4465726279 00002C82 00 .DATA.B H'00 00002C83 00000001 .RES.B 1 00002C84 L380: 00002C84 7765726577 .SDATA "werewolf" 6F6C66 00002C8C 00 .DATA.B H'00 00002C8D 00000001 .RES.B 1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 266 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00002C8E 00000002 .RES.W 1 00002C90 L381: 00002C90 73696C7665 .SDATA "silver bullet" 722062756C 6C6574 00002C9D 00 .DATA.B H'00 00002C9E 00000002 .RES.W 1 00002CA0 L382: 00002CA0 70696C6520 .SDATA "pile of rubies" 6F66207275 62696573 00002CAE 00 .DATA.B H'00 00002CAF 00000001 .RES.B 1 00002CB0 L383: 00002CB0 6861727079 .SDATA "harpy" 00002CB5 00 .DATA.B H'00 00002CB6 00000002 .RES.W 1 00002CB8 L384: 00002CB8 63726F7373 .SDATA "crossbow" 626F77 00002CC0 00 .DATA.B H'00 00002CC1 00000001 .RES.B 1 00002CC2 00000002 .RES.W 1 00002CC4 L385: 00002CC4 7072657669 .SDATA "previously undiscovered Rembrandt painting" 6F75736C79 20756E6469 73636F7665 7265642052 656D627261 6E64742070 61696E7469 6E67 00002CEE 00 .DATA.B H'00 00002CEF 00000001 .RES.B 1 00002CF0 L386: 00002CF0 636F627261 .SDATA "cobra" 00002CF5 00 .DATA.B H'00 00002CF6 00000002 .RES.W 1 00002CF8 L387: 00002CF8 666C757465 .SDATA "flute fashioned from a dried-out pumpkin" 2066617368 696F6E6564 2066726F6D 2061206472 6965642D6F 7574207075 6D706B696E 00002D20 00 .DATA.B H'00 00002D21 00000001 .RES.B 1 00002D22 00000002 .RES.W 1 00002D24 L388: 00002D24 6F756E6365 .SDATA "ounce of antimatter in magnetic containment" 206F662061 6E74696D61 7474657220 696E206D61 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 267 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 676E657469 6320636F6E 7461696E6D 656E74 00002D4F 00 .DATA.B H'00 00002D50 L389: 00002D50 6665726F63 .SDATA "ferocious snail" 696F757320 736E61696C 00002D5F 00 .DATA.B H'00 00002D60 L390: 00002D60 626167206F .SDATA "bag of salt" 662073616C 74 00002D6B 00 .DATA.B H'00 00002D6C L391: 00002D6C 737461636B .SDATA "stack of silver bars" 206F662073 696C766572 2062617273 00002D80 00 .DATA.B H'00 00002D81 00000001 .RES.B 1 00002D82 00000002 .RES.W 1 00002D84 L392: 00002D84 766963696F .SDATA "vicious Doberman pinscher" 757320446F 6265726D61 6E2070696E 7363686572 00002D9D 00 .DATA.B H'00 00002D9E 00000002 .RES.W 1 00002DA0 L393: 00002DA0 736F706F72 .SDATA "soporific-laced dog biscuit" 696669632D 6C61636564 20646F6720 6269736375 6974 00002DBB 00 .DATA.B H'00 00002DBC L394: 00002DBC 736574206F .SDATA "set of ivory tusks" 662069766F 7279207475 736B73 00002DCE 00 .DATA.B H'00 00002DCF 00000001 .RES.B 1 00002DD0 L395: 00002DD0 636F6C6F73 .SDATA "colossal cockroach" 73616C2063 6F636B726F 616368 00002DE2 00 .DATA.B H'00 00002DE3 00000001 .RES.B 1 00002DE4 L396: 00002DE4 626C6F636B .SDATA "block of boric acid" 206F662062 6F72696320 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 268 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 61636964 00002DF7 00 .DATA.B H'00 00002DF8 L397: 00002DF8 486F6C6C61 .SDATA "Holland and Holland double rifle chambered for .600 Nitro Express" 6E6420616E 6420486F6C 6C616E6420 646F75626C 6520726966 6C65206368 616D626572 656420666F 72202E3630 30204E6974 726F204578 7072657373 00002E39 00 .DATA.B H'00 00002E3A 00000002 .RES.W 1 00002E3C L398: 00002E3C 6769616E74 .SDATA "giant" 00002E41 00 .DATA.B H'00 00002E42 00000002 .RES.W 1 00002E44 L399: 00002E44 736C696E67 .SDATA "slingshot" 73686F74 00002E4D 00 .DATA.B H'00 00002E4E 00000002 .RES.W 1 00002E50 L400: 00002E50 616E636965 .SDATA "ancient Greek statue" 6E74204772 65656B2073 7461747565 00002E64 00 .DATA.B H'00 00002E65 00000001 .RES.B 1 00002E66 00000002 .RES.W 1 00002E68 L401: 00002E68 5472656B6B .SDATA "Trekkie" 6965 00002E6F 00 .DATA.B H'00 00002E70 L402: 00002E70 7265636F72 .SDATA "recording of Leonard Nimoy singing ""Proud Mary""" 64696E6720 6F66204C65 6F6E617264 204E696D6F 792073696E 67696E6720 2250726F75 64204D6172 7922 00002E9F 00 .DATA.B H'00 00002EA0 L403: 00002EA0 6669766520 .SDATA "five kilograms of plutonium in a lead container" 6B696C6F67 72616D7320 6F6620706C 75746F6E69 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 269 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 756D20696E 2061206C65 616420636F 6E7461696E 6572 00002ECF 00 .DATA.B H'00 00002ED0 L404: 00002ED0 746974616E .SDATA "titanic ant" 696320616E 74 00002EDB 00 .DATA.B H'00 00002EDC L405: 00002EDC 467265736E .SDATA "Fresnel lens" 656C206C65 6E73 00002EE8 00 .DATA.B H'00 B 00000000 __$m_FindPathLocal: ; static: m_FindPathLocal 00000000 00000004 .RES.L 1 00000004 __$m_FindPathParameter: ; static: m_FindPathParameter 00000004 00000004 .RES.L 1 00000008 __$m_nRN: ; static: m_nRN 00000008 00000020 .RES.L 8 00000028 __$m_Passage: ; static: m_Passage 00000028 00000004 .RES.L 1 0000002C __$m_Path: ; static: m_Path 0000002C 00000004 .RES.L 1 00000030 __$m_pRoomWithName: ; static: m_pRoomWithName 00000030 00000004 .RES.L 1 00000034 __$m_Room: ; static: m_Room 00000034 00000004 .RES.L 1 00000038 __$m_szMsg: ; static: m_szMsg 00000038 00000004 .RES.L 1 0000003C __$m_szParagraph: ; static: m_szParagraph 0000003C 00000004 .RES.L 1 00000040 __$m_szRoom: ; static: m_szRoom 00000040 00000004 .RES.L 1 00000044 __$m_szWayOut: ; static: m_szWayOut 00000044 00000004 .RES.L 1 B_B 00000000 _BR_Size: ; static: BR_Size 00000000 00000004 .RES.L 1 SH SERIES C/C++ Compiler (Ver. 6.0C) 17-Jan-2011 08:21:27 PAGE 1 ******** STATISTICS INFORMATION ******** ********** ERROR INFORMATION *********** NUMBER OF ERRORS: 0 NUMBER OF WARNINGS: 0 ******* SOURCE LINE INFORMATION ******** COMPILED SOURCE LINE: 2770 ******* SECTION SIZE INFORMATION ******* PROGRAM SECTION (P): 00004450 Byte(s) PROGRAM SECTION (P_BR_Size): 00000000 Byte(s) PROGRAM SECTION (P_TOP): 0000000C Byte(s) CONSTANT SECTION (C): 00002EE9 Byte(s) CONSTANT SECTION (C_BR_Size): 00000000 Byte(s) CONSTANT SECTION (C_TOP): 00000000 Byte(s) DATA SECTION (D): 00000568 Byte(s) DATA SECTION (D_BR_Size): 00000000 Byte(s) DATA SECTION (D_TOP): 00000000 Byte(s) BSS SECTION (B): 00000048 Byte(s) BSS SECTION (B_BR_Size): 00000004 Byte(s) BSS SECTION (B_TOP): 00000000 Byte(s) TOTAL PROGRAM SIZE: 000078F9 Byte(s) ********** LABEL INFORMATION *********** NUMBER OF EXTERNAL REFERENCE SYMBOLS: 13 NUMBER OF EXTERNAL DEFINITION SYMBOLS: 3 NUMBER OF INTERNAL/EXTERNAL SYMBOLS: 828 *** COMMAND PARAMETER *** -subcommand=C:\Users\jdean\AppData\Local\Temp\hmk8787.tmp