SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 1 ************ OBJECT LISTING ************ FILE NAME: G:\Casio SDK\Projekte\Snow\Snow.c SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Snow.c 1 char *Disp_GetVRAMPtr(void); Snow.c 2 int Timer_Install(int TimerID, void (*handler)(void), int delay); Snow.c 3 int Timer_Start(int TimerID); Snow.c 4 void App_RUNMAT(); Snow.c 5 int RTC_GetTicks(); Snow.c 6 void AllClear_VRAM(); Snow.c 7 Snow.c 8 typedef struct{ Snow.c 9 unsigned int x1; Snow.c 10 unsigned int y1; Snow.c 11 unsigned int x2; Snow.c 12 unsigned int y2; Snow.c 13 unsigned char f[4]; Snow.c 14 unsigned int on_bits; Snow.c 15 unsigned int off_bits; Snow.c 16 } TShape; Snow.c 17 Snow.c 18 void ShapeToVRAM( TShape* x ); Snow.c 19 Snow.c 20 char *vram; Snow.c 21 Snow.c 22 const int SysCallWrapper[] = {0xD201422B,0x60F20000,0x80010070}; Snow.c 23 const int (*iSysCallFuncPtr)( int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallWrapper; Snow.c 24 #define Alpha_GetData(VarName,Dest) (void)(*iSysCallFuncPtr)( VarName,(int)Dest, 0, 0, 0x04DF) Snow.c 25 #define Alpha_ClearAll() (void)(*iSysCallFuncPtr)( 0,0, 0, 0, 0x004E1) Snow.c 26 Snow.c 27 int InputString( unsigned char*buff, unsigned char *heading, int maxlen ); Snow.c 28 Snow.c 29 static unsigned int lastrandom=0x12345678; Snow.c 30 Snow.c 31 unsigned int random( int seed){ P 00000000 _random: ; function: random ; frame size=4 00000000 4F12 STS.L MACL,@-R15 Snow.c 32 if (seed) lastrandom=seed; 00000002 2448 TST R4,R4 00000004 D539 MOV.L L363+4,R5 ; __$lastrandom 00000006 8900 BT L328 00000008 2542 MOV.L R4,@R5 0000000A L328: Snow.c 33 lastrandom = ( 0x41C64E6D*lastrandom ) + 0x3039; 0000000A D339 MOV.L L363+8,R3 ; H'41C64E6D 0000000C 6252 MOV.L @R5,R2 0000000E 0237 MUL.L R3,R2 00000010 916A MOV.W L363,R1 ; H'3039 00000012 031A STS MACL,R3 00000014 331C ADD R1,R3 Snow.c 34 return ( lastrandom >> 16 ); 00000016 6033 MOV R3,R0 00000018 2532 MOV.L R3,@R5 0000001A 4029 SHLR16 R0 Snow.c 35 } 0000001C 000B RTS 0000001E 4F16 LDS.L @R15+,MACL SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 2 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Snow.c 36 Snow.c 37 Snow.c 38 const char sprite3[4][3][3] = { Snow.c 39 { Snow.c 40 { 1 , 0 , 1 }, Snow.c 41 { 0 , 1 , 0 }, Snow.c 42 { 1 , 0 , 1 } Snow.c 43 }, Snow.c 44 { Snow.c 45 { 0 , 1 , 0 }, Snow.c 46 { 1 , 0 , 1 }, Snow.c 47 { 0 , 1 , 0 } Snow.c 48 }, Snow.c 49 { Snow.c 50 { 0 , 1 , 0 }, Snow.c 51 { 1 , 1 , 1 }, Snow.c 52 { 0 , 1 , 0 } Snow.c 53 }, Snow.c 54 Snow.c 55 { Snow.c 56 { 0 , 1 , 0 }, Snow.c 57 { 1 , 0 , 1 }, Snow.c 58 { 0 , 1 , 0 } Snow.c 59 } Snow.c 60 }; Snow.c 61 Snow.c 62 const char sprite4[4][4][4] = { Snow.c 63 { Snow.c 64 { 1 , 0 , 0 , 1 }, Snow.c 65 { 0 , 1 , 1 , 0 }, Snow.c 66 { 0 , 1 , 1 , 0 }, Snow.c 67 { 1 , 0 , 0 , 1 } Snow.c 68 }, Snow.c 69 { Snow.c 70 { 0 , 1 , 1 , 0 }, Snow.c 71 { 1 , 0 , 0 , 1 }, Snow.c 72 { 1 , 0 , 0 , 1 }, Snow.c 73 { 0 , 1 , 1 , 0 } Snow.c 74 }, Snow.c 75 Snow.c 76 { Snow.c 77 { 1 , 0 , 0 , 1 }, Snow.c 78 { 0 , 1 , 1 , 0 }, Snow.c 79 { 0 , 1 , 1 , 0 }, Snow.c 80 { 1 , 0 , 0 , 1 } Snow.c 81 }, Snow.c 82 { Snow.c 83 { 0 , 1 , 1 , 0 }, Snow.c 84 { 1 , 0 , 0 , 1 }, Snow.c 85 { 1 , 0 , 0 , 1 }, Snow.c 86 { 0 , 1 , 1 , 0 } Snow.c 87 } Snow.c 88 }; Snow.c 89 Snow.c 90 const char sprite5[4][5][5] = { Snow.c 91 { Snow.c 92 { 0 , 1 , 0 , 1 , 0 }, SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 3 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Snow.c 93 { 1 , 1 , 0 , 1 , 1 }, Snow.c 94 { 0 , 0 , 1 , 0 , 0 }, Snow.c 95 { 1 , 1 , 0 , 1 , 1 }, Snow.c 96 { 0 , 1 , 0 , 1 , 0 } Snow.c 97 }, Snow.c 98 { Snow.c 99 { 1 , 0 , 1 , 0 , 1 }, Snow.c 100 { 0 , 1 , 0 , 1 , 0 }, Snow.c 101 { 1 , 0 , 1 , 0 , 1 }, Snow.c 102 { 0 , 1 , 0 , 1 , 0 }, Snow.c 103 { 1 , 0 , 1 , 0 , 1 } Snow.c 104 }, Snow.c 105 { Snow.c 106 { 1 , 0 , 1 , 0 , 1 }, Snow.c 107 { 0 , 1 , 1 , 1 , 0 }, Snow.c 108 { 1 , 1 , 0 , 1 , 1 }, Snow.c 109 { 0 , 1 , 1 , 1 , 0 }, Snow.c 110 { 1 , 0 , 1 , 0 , 1 } Snow.c 111 }, Snow.c 112 Snow.c 113 { Snow.c 114 { 1 , 0 , 1 , 0 , 1 }, Snow.c 115 { 0 , 1 , 1 , 1 , 0 }, Snow.c 116 { 1 , 1 , 0 , 1 , 1 }, Snow.c 117 { 0 , 1 , 1 , 1 , 0 }, Snow.c 118 { 1 , 0 , 1 , 0 , 1 } Snow.c 119 } Snow.c 120 }; Snow.c 121 Snow.c 122 const char sprite6[4][6][6] = { Snow.c 123 { Snow.c 124 { 0 , 1 , 0 , 0 , 1 , 0 }, Snow.c 125 { 1 , 1 , 0 , 0 , 1 , 1 }, Snow.c 126 { 0 , 0 , 1 , 1 , 0 , 0 }, Snow.c 127 { 0 , 0 , 1 , 1 , 0 , 0 }, Snow.c 128 { 1 , 1 , 0 , 0 , 1 , 1 }, Snow.c 129 { 0 , 1 , 0 , 0 , 1 , 0 } Snow.c 130 }, Snow.c 131 { Snow.c 132 { 1 , 1 , 0 , 0 , 1 , 1 }, Snow.c 133 { 1 , 0 , 1 , 1 , 0 , 1 }, Snow.c 134 { 0 , 1 , 1 , 1 , 1 , 0 }, Snow.c 135 { 0 , 1 , 1 , 1 , 1 , 0 }, Snow.c 136 { 1 , 0 , 1 , 1 , 0 , 1 }, Snow.c 137 { 1 , 1 , 0 , 0 , 1 , 1 } Snow.c 138 }, Snow.c 139 { Snow.c 140 { 0 , 1 , 0 , 0 , 1 , 0 }, Snow.c 141 { 1 , 1 , 1 , 1 , 1 , 1 }, Snow.c 142 { 0 , 1 , 0 , 0 , 1 , 0 }, Snow.c 143 { 0 , 1 , 0 , 0 , 1 , 0 }, Snow.c 144 { 1 , 1 , 1 , 1 , 1 , 1 }, Snow.c 145 { 0 , 1 , 0 , 0 , 1 , 0 } Snow.c 146 }, Snow.c 147 Snow.c 148 { Snow.c 149 { 0 , 1 , 0 , 0 , 1 , 0 }, SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 4 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Snow.c 150 { 1 , 1 , 1 , 1 , 1 , 1 }, Snow.c 151 { 0 , 1 , 0 , 0 , 1 , 0 }, Snow.c 152 { 0 , 1 , 0 , 0 , 1 , 0 }, Snow.c 153 { 1 , 1 , 1 , 1 , 1 , 1 }, Snow.c 154 { 0 , 1 , 0 , 0 , 1 , 0 } Snow.c 155 } Snow.c 156 }; Snow.c 157 Snow.c 158 const char sprite7[4][7][7] = { Snow.c 159 { Snow.c 160 { 1 , 0 , 1 , 0 , 1 , 0 , 1 }, Snow.c 161 { 0 , 1 , 1 , 0 , 1 , 1 , 0 }, Snow.c 162 { 1 , 1 , 1 , 0 , 1 , 1 , 1 }, Snow.c 163 { 0 , 0 , 0 , 1 , 0 , 0 , 0 }, Snow.c 164 { 1 , 1 , 1 , 0 , 1 , 1 , 1 }, Snow.c 165 { 0 , 1 , 1 , 0 , 1 , 1 , 0 }, Snow.c 166 { 1 , 0 , 1 , 0 , 1 , 0 , 1 } Snow.c 167 }, Snow.c 168 { Snow.c 169 { 0 , 1 , 1 , 0 , 1 , 1 , 0 }, Snow.c 170 { 1 , 0 , 1 , 0 , 1 , 0 , 1 }, Snow.c 171 { 1 , 1 , 0 , 1 , 0 , 1 , 1 }, Snow.c 172 { 0 , 0 , 1 , 0 , 1 , 0 , 0 }, Snow.c 173 { 1 , 1 , 0 , 1 , 0 , 1 , 1 }, Snow.c 174 { 1 , 0 , 1 , 0 , 1 , 0 , 1 }, Snow.c 175 { 0 , 1 , 1 , 0 , 1 , 1 , 0 }, Snow.c 176 }, Snow.c 177 { Snow.c 178 { 0 , 1 , 1 , 0 , 1 , 1 , 0 }, Snow.c 179 { 1 , 0 , 0 , 1 , 0 , 0 , 1 }, Snow.c 180 { 1 , 0 , 1 , 0 , 1 , 0 , 1 }, Snow.c 181 { 0 , 1 , 0 , 1 , 0 , 1 , 0 }, Snow.c 182 { 1 , 0 , 1 , 0 , 1 , 0 , 1 }, Snow.c 183 { 1 , 0 , 0 , 1 , 0 , 0 , 1 }, Snow.c 184 { 0 , 1 , 1 , 0 , 1 , 1 , 0 }, Snow.c 185 }, Snow.c 186 { Snow.c 187 { 1 , 1 , 1 , 0 , 1 , 1 , 1 }, Snow.c 188 { 1 , 0 , 0 , 1 , 0 , 0 , 1 }, Snow.c 189 { 1 , 0 , 1 , 0 , 1 , 0 , 1 }, Snow.c 190 { 0 , 1 , 0 , 1 , 0 , 1 , 0 }, Snow.c 191 { 1 , 0 , 1 , 0 , 1 , 0 , 1 }, Snow.c 192 { 1 , 0 , 0 , 1 , 0 , 0 , 1 }, Snow.c 193 { 1 , 1 , 1 , 0 , 1 , 1 , 1 }, Snow.c 194 } Snow.c 195 }; Snow.c 196 Snow.c 197 void setpixel(unsigned char x, char y) 00000020 _setpixel: ; function: setpixel ; frame size=32 00000020 4F22 STS.L PR,@-R15 Snow.c 198 { Snow.c 199 TShape t; Snow.c 200 if(x&~127 || y&~63) return; 00000022 624C EXTU.B R4,R2 00000024 7FE4 ADD #-28,R15 00000026 E380 MOV #-128,R3 SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 5 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000028 2238 TST R3,R2 0000002A 8B14 BF L332 0000002C 605E EXTS.B R5,R0 0000002E E2C0 MOV #-64,R2 00000030 2028 TST R2,R0 00000032 8B10 BF L332 Snow.c 201 t.x1 = x; 00000034 644C EXTU.B R4,R4 Snow.c 202 t.y1 = y; 00000036 655E EXTS.B R5,R5 00000038 2F42 MOV.L R4,@R15 Snow.c 203 t.f[0] = 2; 0000003A E302 MOV #2,R3 0000003C 1F51 MOV.L R5,@(4,R15) 0000003E E010 MOV #16,R0 00000040 0F34 MOV.B R3,@(R0,R15) Snow.c 204 t.f[1] = 1; 00000042 E401 MOV #1,R4 Snow.c 205 t.f[2] = 1; Snow.c 206 t.f[3] = 1; Snow.c 207 Snow.c 208 ShapeToDD(&t); 00000044 D32B MOV.L L363+12,R3 ; _ShapeToDD 00000046 E011 MOV #17,R0 00000048 0F44 MOV.B R4,@(R0,R15) 0000004A E012 MOV #18,R0 0000004C 0F44 MOV.B R4,@(R0,R15) 0000004E E013 MOV #19,R0 00000050 0F44 MOV.B R4,@(R0,R15) 00000052 430B JSR @R3 00000054 64F3 MOV R15,R4 Snow.c 209 } 00000056 L332: 00000056 7F1C ADD #28,R15 00000058 4F26 LDS.L @R15+,PR 0000005A 000B RTS 0000005C 0009 NOP Snow.c 210 Snow.c 211 void drawsprite(unsigned char px, char py, char dim, char num) 0000005E _drawsprite: ; function: drawsprite ; frame size=48 0000005E 607E EXTS.B R7,R0 00000060 2FE6 MOV.L R14,@-R15 00000062 8800 CMP/EQ #0,R0 00000064 2FD6 MOV.L R13,@-R15 00000066 EE00 MOV #0,R14 00000068 2FC6 MOV.L R12,@-R15 0000006A ED00 MOV #0,R13 0000006C 2FB6 MOV.L R11,@-R15 0000006E 6C53 MOV R5,R12 00000070 2FA6 MOV.L R10,@-R15 00000072 2F96 MOV.L R9,@-R15 00000074 2F86 MOV.L R8,@-R15 00000076 4F22 STS.L PR,@-R15 00000078 4F12 STS.L MACL,@-R15 0000007A 7FF4 ADD #-12,R15 0000007C 8D0E BT/S L317 SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 6 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000007E 3D4C ADD R4,R13 00000080 8801 CMP/EQ #1,R0 00000082 893B BT L318 00000084 8802 CMP/EQ #2,R0 00000086 895D BT L319 00000088 8803 CMP/EQ #3,R0 0000008A 8B01 BF L364 0000008C A07F BRA L320 0000008E 0009 NOP 00000090 L364: 00000090 8804 CMP/EQ #4,R0 00000092 8B01 BF L365 00000094 A0A2 BRA L321 00000096 0009 NOP 00000098 L365: 00000098 A0C3 BRA L333 0000009A 0009 NOP 0000009C L317: ; case label 0000009C D216 MOV.L L363+16,R2 ; _sprite3 Snow.c 212 { Snow.c 213 char x, y; Snow.c 214 switch(num) Snow.c 215 { Snow.c 216 case 0: Snow.c 217 for(y = 0; y < 3; y++) 0000009E 6BE3 MOV R14,R11 000000A0 E803 MOV #3,R8 000000A2 666E EXTS.B R6,R6 000000A4 6363 MOV R6,R3 000000A6 4608 SHLL2 R6 000000A8 4600 SHLL R6 000000AA 363C ADD R3,R6 000000AC 326C ADD R6,R2 000000AE 1F22 MOV.L R2,@(8,R15) 000000B0 L334: Snow.c 218 for(x = 0; x < 3; x++) 000000B0 2FE0 MOV.B R14,@R15 000000B2 69D3 MOV R13,R9 000000B4 5AF2 MOV.L @(8,R15),R10 000000B6 60C3 MOV R12,R0 000000B8 30BC ADD R11,R0 000000BA 80F4 MOV.B R0,@(4,R15) 000000BC L335: Snow.c 219 if(sprite3[dim][x][y] == 1) 000000BC 60BE EXTS.B R11,R0 000000BE 00AC MOV.B @(R0,R10),R0 000000C0 8801 CMP/EQ #1,R0 000000C2 8B03 BF L336 Snow.c 220 setpixel(px + x, py + y); 000000C4 84F4 MOV.B @(4,R15),R0 000000C6 6503 MOV R0,R5 000000C8 BFAA BSR _setpixel 000000CA 6493 MOV R9,R4 000000CC L336: 000000CC 62F0 MOV.B @R15,R2 000000CE 7901 ADD #1,R9 000000D0 7201 ADD #1,R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 7 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000000D2 2F20 MOV.B R2,@R15 000000D4 622E EXTS.B R2,R2 000000D6 3283 CMP/GE R8,R2 000000D8 8FF0 BF/S L335 000000DA 7A03 ADD #3,R10 000000DC 7B01 ADD #1,R11 000000DE 62BE EXTS.B R11,R2 000000E0 3283 CMP/GE R8,R2 000000E2 8BE5 BF L334 Snow.c 221 break; 000000E4 A09D BRA L333 000000E6 0009 NOP 000000E8 L363: 000000E8 3039 .DATA.W H'3039 000000EA 0000 .DATA.W 0 000000EC <00000000> .DATA.L __$lastrandom 000000F0 41C64E6D .DATA.L H'41C64E6D 000000F4 <00000000> .DATA.L _ShapeToDD 000000F8 <00000000> .DATA.L _sprite3 000000FC L318: ; case label 000000FC D35F MOV.L L366,R3 ; _sprite4 Snow.c 222 case 1: Snow.c 223 for(y = 0; y < 4; y++) 000000FE 6BE3 MOV R14,R11 00000100 E804 MOV #4,R8 00000102 666E EXTS.B R6,R6 00000104 4608 SHLL2 R6 00000106 4608 SHLL2 R6 00000108 336C ADD R6,R3 0000010A 1F32 MOV.L R3,@(8,R15) 0000010C L337: Snow.c 224 for(x = 0; x < 4; x++) 0000010C 2FE0 MOV.B R14,@R15 0000010E 69D3 MOV R13,R9 00000110 5AF2 MOV.L @(8,R15),R10 00000112 60C3 MOV R12,R0 00000114 30BC ADD R11,R0 00000116 80F4 MOV.B R0,@(4,R15) 00000118 L338: Snow.c 225 if(sprite4[dim][x][y] == 1) 00000118 60BE EXTS.B R11,R0 0000011A 00AC MOV.B @(R0,R10),R0 0000011C 8801 CMP/EQ #1,R0 0000011E 8B03 BF L339 Snow.c 226 setpixel(px + x, py + y); 00000120 84F4 MOV.B @(4,R15),R0 00000122 6503 MOV R0,R5 00000124 BF7C BSR _setpixel 00000126 6493 MOV R9,R4 00000128 L339: 00000128 62F0 MOV.B @R15,R2 0000012A 7901 ADD #1,R9 0000012C 7201 ADD #1,R2 0000012E 2F20 MOV.B R2,@R15 00000130 622E EXTS.B R2,R2 00000132 3283 CMP/GE R8,R2 00000134 8FF0 BF/S L338 SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 8 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000136 7A04 ADD #4,R10 00000138 7B01 ADD #1,R11 0000013A 62BE EXTS.B R11,R2 0000013C 3283 CMP/GE R8,R2 0000013E 8BE5 BF L337 Snow.c 227 break; 00000140 A06F BRA L333 00000142 0009 NOP 00000144 L319: ; case label 00000144 D24E MOV.L L366+4,R2 ; _sprite5 Snow.c 228 case 2: Snow.c 229 for(y = 0; y < 5; y++) 00000146 69E3 MOV R14,R9 00000148 E805 MOV #5,R8 0000014A 666E EXTS.B R6,R6 0000014C E319 MOV #25,R3 0000014E 263F MULS R3,R6 00000150 061A STS MACL,R6 00000152 326C ADD R6,R2 00000154 1F22 MOV.L R2,@(8,R15) 00000156 L340: 00000156 6AD3 MOV R13,R10 Snow.c 230 for(x = 0; x < 5; x++) 00000158 2FE0 MOV.B R14,@R15 0000015A 60C3 MOV R12,R0 0000015C 5BF2 MOV.L @(8,R15),R11 0000015E 309C ADD R9,R0 00000160 80F4 MOV.B R0,@(4,R15) 00000162 L341: Snow.c 231 if(sprite5[dim][x][y] == 1) 00000162 609E EXTS.B R9,R0 00000164 00BC MOV.B @(R0,R11),R0 00000166 8801 CMP/EQ #1,R0 00000168 8B03 BF L342 Snow.c 232 setpixel(px + x, py + y); 0000016A 84F4 MOV.B @(4,R15),R0 0000016C 6503 MOV R0,R5 0000016E BF57 BSR _setpixel 00000170 64A3 MOV R10,R4 00000172 L342: 00000172 7A01 ADD #1,R10 00000174 62F0 MOV.B @R15,R2 00000176 7201 ADD #1,R2 00000178 2F20 MOV.B R2,@R15 0000017A 622E EXTS.B R2,R2 0000017C 3283 CMP/GE R8,R2 0000017E 8FF0 BF/S L341 00000180 7B05 ADD #5,R11 00000182 7901 ADD #1,R9 00000184 629E EXTS.B R9,R2 00000186 3283 CMP/GE R8,R2 00000188 8BE5 BF L340 Snow.c 233 break; 0000018A A04A BRA L333 0000018C 0009 NOP 0000018E L320: ; case label Snow.c 234 case 3: SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 9 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Snow.c 235 for(y = 0; y < 6; y++) 0000018E 69E3 MOV R14,R9 00000190 D23C MOV.L L366+8,R2 ; _sprite6 00000192 E806 MOV #6,R8 00000194 666E EXTS.B R6,R6 00000196 6363 MOV R6,R3 00000198 4608 SHLL2 R6 0000019A 4600 SHLL R6 0000019C 363C ADD R3,R6 0000019E 4608 SHLL2 R6 000001A0 326C ADD R6,R2 000001A2 1F22 MOV.L R2,@(8,R15) 000001A4 L343: Snow.c 236 for(x = 0; x < 6; x++) 000001A4 2FE0 MOV.B R14,@R15 000001A6 6BD3 MOV R13,R11 000001A8 5AF2 MOV.L @(8,R15),R10 000001AA 60C3 MOV R12,R0 000001AC 309C ADD R9,R0 000001AE 80F4 MOV.B R0,@(4,R15) 000001B0 L344: Snow.c 237 if(sprite6[dim][x][y] == 1) 000001B0 609E EXTS.B R9,R0 000001B2 00AC MOV.B @(R0,R10),R0 000001B4 8801 CMP/EQ #1,R0 000001B6 8B03 BF L345 Snow.c 238 setpixel(px + x, py + y); 000001B8 84F4 MOV.B @(4,R15),R0 000001BA 6503 MOV R0,R5 000001BC BF30 BSR _setpixel 000001BE 64B3 MOV R11,R4 000001C0 L345: 000001C0 62F0 MOV.B @R15,R2 000001C2 7B01 ADD #1,R11 000001C4 7201 ADD #1,R2 000001C6 2F20 MOV.B R2,@R15 000001C8 622E EXTS.B R2,R2 000001CA 3283 CMP/GE R8,R2 000001CC 8FF0 BF/S L344 000001CE 7A06 ADD #6,R10 000001D0 7901 ADD #1,R9 000001D2 629E EXTS.B R9,R2 000001D4 3283 CMP/GE R8,R2 000001D6 8BE5 BF L343 Snow.c 239 break; 000001D8 A023 BRA L333 000001DA 0009 NOP 000001DC L321: ; case label 000001DC D22A MOV.L L366+12,R2 ; _sprite7 Snow.c 240 case 4: Snow.c 241 for(y = 0; y < 7; y++) 000001DE 69E3 MOV R14,R9 000001E0 E807 MOV #7,R8 000001E2 666E EXTS.B R6,R6 000001E4 E331 MOV #49,R3 000001E6 263F MULS R3,R6 000001E8 061A STS MACL,R6 SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 10 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000001EA 326C ADD R6,R2 000001EC 1F22 MOV.L R2,@(8,R15) 000001EE L346: 000001EE 6AD3 MOV R13,R10 Snow.c 242 for(x = 0; x < 7; x++) 000001F0 2FE0 MOV.B R14,@R15 000001F2 60C3 MOV R12,R0 000001F4 5BF2 MOV.L @(8,R15),R11 000001F6 309C ADD R9,R0 000001F8 80F4 MOV.B R0,@(4,R15) 000001FA L347: Snow.c 243 if(sprite7[dim][x][y] == 1) 000001FA 609E EXTS.B R9,R0 000001FC 00BC MOV.B @(R0,R11),R0 000001FE 8801 CMP/EQ #1,R0 00000200 8B03 BF L348 Snow.c 244 setpixel(px + x, py + y); 00000202 84F4 MOV.B @(4,R15),R0 00000204 6503 MOV R0,R5 00000206 BF0B BSR _setpixel 00000208 64A3 MOV R10,R4 0000020A L348: 0000020A 7A01 ADD #1,R10 0000020C 62F0 MOV.B @R15,R2 0000020E 7201 ADD #1,R2 00000210 2F20 MOV.B R2,@R15 00000212 622E EXTS.B R2,R2 00000214 3283 CMP/GE R8,R2 00000216 8FF0 BF/S L347 00000218 7B07 ADD #7,R11 0000021A 7901 ADD #1,R9 0000021C 629E EXTS.B R9,R2 0000021E 3283 CMP/GE R8,R2 00000220 8BE5 BF L346 00000222 L333: Snow.c 245 break; Snow.c 246 } Snow.c 247 } 00000222 7F0C ADD #12,R15 00000224 4F16 LDS.L @R15+,MACL 00000226 4F26 LDS.L @R15+,PR 00000228 68F6 MOV.L @R15+,R8 0000022A 69F6 MOV.L @R15+,R9 0000022C 6AF6 MOV.L @R15+,R10 0000022E 6BF6 MOV.L @R15+,R11 00000230 6CF6 MOV.L @R15+,R12 00000232 6DF6 MOV.L @R15+,R13 00000234 000B RTS 00000236 6EF6 MOV.L @R15+,R14 Snow.c 248 Snow.c 249 #define SNOWCNT 50 Snow.c 250 Snow.c 251 struct {unsigned char active, x;char y, dim, num;} snow[SNOWCNT]; Snow.c 252 Snow.c 253 void display_vram() 00000238 _display_vram: ; function: display_vram ; frame size=16 SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 11 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000238 2FC6 MOV.L R12,@-R15 Snow.c 254 { Snow.c 255 char *LCD_register_selector = (char*)0xB4000000, *LCD_data_register = (char*)0xB4010000, *mvram; Snow.c 256 int i, j; Snow.c 257 mvram = vram; Snow.c 258 for(i=0 ; i<64 ; i++) 0000023A E100 MOV #0,R1 0000023C D514 MOV.L L366+20,R5 ; H'B4000000 0000023E E704 MOV #4,R7 00000240 D414 MOV.L L366+24,R4 ; H'B4010000 00000242 6013 MOV R1,R0 00000244 2FB6 MOV.L R11,@-R15 00000246 EB07 MOV #7,R11 00000248 2FA6 MOV.L R10,@-R15 0000024A EA10 MOV #16,R10 0000024C 2F96 MOV.L R9,@-R15 0000024E E940 MOV #64,R9 00000250 D30E MOV.L L366+16,R3 ; _vram 00000252 6C32 MOV.L @R3,R12 00000254 L349: Snow.c 259 { Snow.c 260 *LCD_register_selector = 4; 00000254 2570 MOV.B R7,@R5 Snow.c 261 *LCD_data_register = i|192; 00000256 E2C0 MOV #-64,R2 00000258 220B OR R0,R2 Snow.c 262 *LCD_register_selector = 4; Snow.c 263 *LCD_data_register = 0; Snow.c 264 *LCD_register_selector = 7; Snow.c 265 for(j=0 ; j<16 ; j++) *LCD_data_register = *mvram++; 0000025A 66A3 MOV R10,R6 0000025C 2420 MOV.B R2,@R4 0000025E 2570 MOV.B R7,@R5 00000260 2410 MOV.B R1,@R4 00000262 25B0 MOV.B R11,@R5 00000264 L350: 00000264 63C4 MOV.B @R12+,R3 00000266 4610 DT R6 00000268 8FFC BF/S L350 0000026A 2430 MOV.B R3,@R4 0000026C 7001 ADD #1,R0 0000026E 3093 CMP/GE R9,R0 00000270 8BF0 BF L349 Snow.c 266 } Snow.c 267 } 00000272 69F6 MOV.L @R15+,R9 00000274 6AF6 MOV.L @R15+,R10 00000276 6BF6 MOV.L @R15+,R11 00000278 000B RTS 0000027A 6CF6 MOV.L @R15+,R12 0000027C L366: 0000027C <00000000> .DATA.L _sprite4 00000280 <00000000> .DATA.L _sprite5 00000284 <00000000> .DATA.L _sprite6 00000288 <00000000> .DATA.L _sprite7 0000028C <00000000> .DATA.L _vram 00000290 B4000000 .DATA.L H'B4000000 SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 12 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000294 B4010000 .DATA.L H'B4010000 Snow.c 268 Snow.c 269 char isMainMenu() 00000298 _isMainMenu: ; function: isMainMenu ; frame size=0 Snow.c 270 { Snow.c 271 unsigned int ea; Snow.c 272 unsigned int j; Snow.c 273 ea = *(unsigned int*)0x8001007C; 00000298 D332 MOV.L L367+6,R3 ; H'8001007C Snow.c 274 ea += 0x0490*4; Snow.c 275 ea = *(unsigned int*)( ea ); Snow.c 276 j = *(unsigned char*)( ea + 1 ); Snow.c 277 j *= 4; Snow.c 278 j = ( ea + j + 4 ) & 0xFFFFFFFC; 0000029A E1FC MOV #-4,R1 0000029C 925F MOV.W L367,R2 ; H'1240 0000029E 6432 MOV.L @R3,R4 000002A0 342C ADD R2,R4 000002A2 6442 MOV.L @R4,R4 000002A4 8441 MOV.B @(1,R4),R0 000002A6 650C EXTU.B R0,R5 000002A8 4508 SHLL2 R5 000002AA 345C ADD R5,R4 000002AC 7404 ADD #4,R4 000002AE 2419 AND R1,R4 Snow.c 279 j = *(unsigned int*)( j ) + 1; 000002B0 6442 MOV.L @R4,R4 Snow.c 280 Snow.c 281 return *(unsigned char*)j; Snow.c 282 } 000002B2 000B RTS 000002B4 8441 MOV.B @(1,R4),R0 Snow.c 283 Snow.c 284 char variable[24]={0}; Snow.c 285 Snow.c 286 void snowtimer(void) 000002B6 _snowtimer: ; function: snowtimer ; frame size=40 ; used runtime library name: ; __modlu 000002B6 2FE6 MOV.L R14,@-R15 000002B8 2FD6 MOV.L R13,@-R15 000002BA 2FC6 MOV.L R12,@-R15 000002BC 2FB6 MOV.L R11,@-R15 000002BE 2FA6 MOV.L R10,@-R15 000002C0 2F96 MOV.L R9,@-R15 000002C2 2F86 MOV.L R8,@-R15 000002C4 4F22 STS.L PR,@-R15 000002C6 4F12 STS.L MACL,@-R15 Snow.c 287 { Snow.c 288 unsigned char x; Snow.c 289 Snow.c 290 if(!isMainMenu()) 000002C8 BFE6 BSR _isMainMenu 000002CA 0009 NOP 000002CC 600E EXTS.B R0,R0 SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 13 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000002CE 2008 TST R0,R0 000002D0 8B74 BF L352 Snow.c 291 { Snow.c 292 display_vram(); 000002D2 BFB1 BSR _display_vram 000002D4 0009 NOP Snow.c 293 Snow.c 294 for(x = SNOWCNT - 1; x > 0 ; x--) 000002D6 EA31 MOV #49,R10 000002D8 D423 MOV.L L367+10,R4 ; H'000000F5+_snow 000002DA E803 MOV #3,R8 000002DC 6D43 MOV R4,R13 000002DE 6B43 MOV R4,R11 000002E0 E901 MOV #1,R9 000002E2 EC00 MOV #0,R12 000002E4 6E43 MOV R4,R14 000002E6 L353: Snow.c 295 { Snow.c 296 if(snow[x].active == 1) 000002E6 60AC EXTU.B R10,R0 000002E8 D120 MOV.L L367+14,R1 ; _snow 000002EA 6303 MOV R0,R3 000002EC 4008 SHLL2 R0 000002EE 303C ADD R3,R0 000002F0 001C MOV.B @(R0,R1),R0 000002F2 600C EXTU.B R0,R0 000002F4 8801 CMP/EQ #1,R0 000002F6 8B25 BF L354 Snow.c 297 { Snow.c 298 drawsprite(snow[x].x, snow[x].y, snow[x].dim, snow[x].num); 000002F8 84E4 MOV.B @(4,R14),R0 000002FA 6703 MOV R0,R7 000002FC 84E3 MOV.B @(3,R14),R0 000002FE 6603 MOV R0,R6 00000300 84E2 MOV.B @(2,R14),R0 00000302 6503 MOV R0,R5 00000304 84E1 MOV.B @(1,R14),R0 00000306 BEAA BSR _drawsprite 00000308 6403 MOV R0,R4 Snow.c 299 snow[x].y ++; 0000030A 84E2 MOV.B @(2,R14),R0 0000030C 7001 ADD #1,R0 0000030E 80E2 MOV.B R0,@(2,R14) Snow.c 300 snow[x].x += (random(0) % 3) - 1; 00000310 BE76 BSR _random 00000312 E400 MOV #0,R4 00000314 D216 MOV.L L367+18,R2 ; __modlu 00000316 6103 MOV R0,R1 00000318 420B JSR @R2 0000031A 6083 MOV R8,R0 0000031C 9320 MOV.W L367+2,R3 ; H'00FF 0000031E 303C ADD R3,R0 00000320 6203 MOV R0,R2 00000322 84E1 MOV.B @(1,R14),R0 00000324 302C ADD R2,R0 00000326 80E1 MOV.B R0,@(1,R14) Snow.c 301 if(snow[x].y == 64 || snow[x].x > 127 || snow[x].x < 0) SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 14 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000328 84E2 MOV.B @(2,R14),R0 0000032A 8840 CMP/EQ #64,R0 0000032C 8908 BT L356 0000032E E27F MOV #127,R2 00000330 84E1 MOV.B @(1,R14),R0 00000332 600C EXTU.B R0,R0 00000334 3027 CMP/GT R2,R0 00000336 8903 BT L356 00000338 84E1 MOV.B @(1,R14),R0 0000033A 600C EXTU.B R0,R0 0000033C 4011 CMP/PZ R0 0000033E 8936 BT L357 00000340 L356: Snow.c 302 snow[x].active = 0; 00000340 A035 BRA L357 00000342 2BC0 MOV.B R12,@R11 00000344 L354: Snow.c 303 } Snow.c 304 else Snow.c 305 { Snow.c 306 if((rand() * RTC_GetTicks()) % 32 == 0) 00000344 D20B MOV.L L367+22,R2 ; _rand 00000346 420B JSR @R2 00000348 0009 NOP 0000034A D30B MOV.L L367+26,R3 ; _RTC_GetTicks 0000034C 430B JSR @R3 0000034E 2F06 MOV.L R0,@-R15 00000350 62F6 MOV.L @R15+,R2 00000352 0207 MUL.L R0,R2 00000354 001A STS MACL,R0 00000356 4011 CMP/PZ R0 00000358 8B10 BF L359 0000035A A014 BRA L360 0000035C C91F AND #31,R0 0000035E L367: 0000035E 1240 .DATA.W H'1240 00000360 00FF .DATA.W H'00FF 00000362 0000 .DATA.W 0 00000364 8001007C .DATA.L H'8001007C 00000368 <000000F5> .DATA.L H'000000F5+_snow 0000036C <00000000> .DATA.L _snow 00000370 <00000000> .DATA.L __modlu 00000374 <00000000> .DATA.L _rand 00000378 <00000000> .DATA.L _RTC_GetTicks 0000037C L359: 0000037C 6007 NOT R0,R0 0000037E 7001 ADD #1,R0 00000380 C91F AND #31,R0 00000382 6007 NOT R0,R0 00000384 7001 ADD #1,R0 00000386 L360: 00000386 2008 TST R0,R0 00000388 8B11 BF L357 Snow.c 307 { Snow.c 308 snow[x].active = 1; 0000038A 2D90 MOV.B R9,@R13 Snow.c 309 snow[x].x = random(0) % 128; SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 15 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000038C BE38 BSR _random 0000038E E400 MOV #0,R4 00000390 C97F AND #127,R0 00000392 80D1 MOV.B R0,@(1,R13) Snow.c 310 snow[x].y = 0; 00000394 60C3 MOV R12,R0 00000396 80D2 MOV.B R0,@(2,R13) Snow.c 311 snow[x].dim = random(0) % 4; 00000398 BE32 BSR _random 0000039A E400 MOV #0,R4 0000039C C903 AND #3,R0 0000039E 80D3 MOV.B R0,@(3,R13) Snow.c 312 snow[x].num = random(0) % 5; 000003A0 BE2E BSR _random 000003A2 E400 MOV #0,R4 000003A4 D318 MOV.L L368+4,R3 ; __modlu 000003A6 6103 MOV R0,R1 000003A8 430B JSR @R3 000003AA E005 MOV #5,R0 000003AC 80D4 MOV.B R0,@(4,R13) 000003AE L357: 000003AE 7AFF ADD #-1,R10 000003B0 7DFB ADD #-5,R13 000003B2 7BFB ADD #-5,R11 000003B4 62AC EXTU.B R10,R2 000003B6 4215 CMP/PL R2 000003B8 8D95 BT/S L353 000003BA 7EFB ADD #-5,R14 000003BC L352: Snow.c 313 } Snow.c 314 } Snow.c 315 } Snow.c 316 } Snow.c 317 Snow.c 318 Alpha_GetData('A',variable); 000003BC D313 MOV.L L368+8,R3 ; _iSysCallFuncPtr 000003BE E700 MOV #0,R7 000003C0 D513 MOV.L L368+12,R5 ; _variable 000003C2 6673 MOV R7,R6 000003C4 6232 MOV.L @R3,R2 000003C6 911D MOV.W L368,R1 ; H'04DF 000003C8 2F16 MOV.L R1,@-R15 000003CA 420B JSR @R2 000003CC E441 MOV #65,R4 Snow.c 319 if(variable[0]) 000003CE D310 MOV.L L368+12,R3 ; _variable 000003D0 6230 MOV.B @R3,R2 000003D2 2228 TST R2,R2 000003D4 8D0C BT/S L361 000003D6 7F04 ADD #4,R15 Snow.c 320 { Snow.c 321 KillTimer(1); 000003D8 4F16 LDS.L @R15+,MACL 000003DA E401 MOV #1,R4 000003DC D20D MOV.L L368+16,R2 ; _KillTimer 000003DE 4F26 LDS.L @R15+,PR 000003E0 68F6 MOV.L @R15+,R8 SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 16 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 000003E2 69F6 MOV.L @R15+,R9 000003E4 6AF6 MOV.L @R15+,R10 000003E6 6BF6 MOV.L @R15+,R11 000003E8 6CF6 MOV.L @R15+,R12 000003EA 6DF6 MOV.L @R15+,R13 000003EC 422B JMP @R2 000003EE 6EF6 MOV.L @R15+,R14 000003F0 L361: Snow.c 322 } Snow.c 323 } 000003F0 4F16 LDS.L @R15+,MACL 000003F2 4F26 LDS.L @R15+,PR 000003F4 68F6 MOV.L @R15+,R8 000003F6 69F6 MOV.L @R15+,R9 000003F8 6AF6 MOV.L @R15+,R10 000003FA 6BF6 MOV.L @R15+,R11 000003FC 6CF6 MOV.L @R15+,R12 000003FE 6DF6 MOV.L @R15+,R13 00000400 000B RTS 00000402 6EF6 MOV.L @R15+,R14 00000404 L368: 00000404 04DF .DATA.W H'04DF 00000406 0000 .DATA.W 0 00000408 <00000000> .DATA.L __modlu 0000040C <00000000> .DATA.L _iSysCallFuncPtr 00000410 <00000000> .DATA.L _variable 00000414 <00000000> .DATA.L _KillTimer Snow.c 324 Snow.c 325 int AddIn_main(int isAppli, unsigned short OptionNum) 00000418 _AddIn_main: ; function: AddIn_main ; frame size=24 ; used runtime library name: ; __slow_mvn 00000418 2FE6 MOV.L R14,@-R15 0000041A 2FD6 MOV.L R13,@-R15 0000041C 4F22 STS.L PR,@-R15 0000041E 7FF8 ADD #-8,R15 Snow.c 326 { Snow.c 327 unsigned int key; Snow.c 328 unsigned char text[3] = {0xE6, 0x91, 0}; 00000420 D22C MOV.L L369+4,R2 ; L299 00000422 61F3 MOV R15,R1 00000424 D32C MOV.L L369+8,R3 ; __slow_mvn 00000426 7104 ADD #4,R1 00000428 430B JSR @R3 0000042A E003 MOV #3,R0 Snow.c 329 random(RTC_GetTicks()); 0000042C D12B MOV.L L369+12,R1 ; _RTC_GetTicks 0000042E 410B JSR @R1 00000430 0009 NOP 00000432 BDE5 BSR _random 00000434 6403 MOV R0,R4 Snow.c 330 vram = Disp_GetVRAMPtr(); 00000436 D22A MOV.L L369+16,R2 ; _Disp_GetVRAMPtr 00000438 420B JSR @R2 0000043A 0009 NOP 0000043C D329 MOV.L L369+20,R3 ; _vram SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 17 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Snow.c 331 Alpha_ClearAll(); 0000043E E700 MOV #0,R7 00000440 D129 MOV.L L369+24,R1 ; _iSysCallFuncPtr 00000442 6673 MOV R7,R6 00000444 2302 MOV.L R0,@R3 00000446 6573 MOV R7,R5 00000448 6212 MOV.L @R1,R2 0000044A 9341 MOV.W L369,R3 ; H'04E1 0000044C 2F36 MOV.L R3,@-R15 0000044E 420B JSR @R2 00000450 6473 MOV R7,R4 Snow.c 332 AllClr_VRAM(); 00000452 D226 MOV.L L369+28,R2 ; _AllClr_VRAM 00000454 420B JSR @R2 00000456 0009 NOP Snow.c 333 locate(3,3); 00000458 DE25 MOV.L L369+32,R14; _locate 0000045A E503 MOV #3,R5 0000045C 4E0B JSR @R14 0000045E 6453 MOV R5,R4 Snow.c 334 Print(&"~*| Snowfall |*~"); 00000460 DD24 MOV.L L369+36,R13; _Print 00000462 D425 MOV.L L369+40,R4 ; L303 00000464 4D0B JSR @R13 00000466 0009 NOP Snow.c 335 locate(4,1); 00000468 E501 MOV #1,R5 0000046A 4E0B JSR @R14 0000046C E404 MOV #4,R4 Snow.c 336 Print(&"(C) by Casimo"); 0000046E D423 MOV.L L369+44,R4 ; L304 00000470 4D0B JSR @R13 00000472 0009 NOP Snow.c 337 locate(4,5); 00000474 E505 MOV #5,R5 00000476 4E0B JSR @R14 00000478 E404 MOV #4,R4 Snow.c 338 Print(&"press any key"); 0000047A D421 MOV.L L369+48,R4 ; L305 0000047C 4D0B JSR @R13 0000047E 0009 NOP Snow.c 339 locate(6,6); 00000480 E506 MOV #6,R5 00000482 4E0B JSR @R14 00000484 6453 MOV R5,R4 Snow.c 340 Print(&"to start"); 00000486 D41F MOV.L L369+52,R4 ; L306 00000488 4D0B JSR @R13 0000048A 0009 NOP Snow.c 341 locate(4,8); 0000048C E508 MOV #8,R5 0000048E 4E0B JSR @R14 00000490 E404 MOV #4,R4 Snow.c 342 Print(&"exit with 1 A"); 00000492 D41D MOV.L L369+56,R4 ; L307 00000494 4D0B JSR @R13 00000496 0009 NOP SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 18 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Snow.c 343 locate(15,8); 00000498 E508 MOV #8,R5 0000049A 4E0B JSR @R14 0000049C E40F MOV #15,R4 Snow.c 344 Print(&text); 0000049E 64F3 MOV R15,R4 000004A0 4D0B JSR @R13 000004A2 7408 ADD #8,R4 Snow.c 345 display_vram(); 000004A4 BEC8 BSR _display_vram 000004A6 0009 NOP Snow.c 346 GetKey(&key); 000004A8 D218 MOV.L L369+60,R2 ; _GetKey 000004AA 64F3 MOV R15,R4 000004AC 420B JSR @R2 000004AE 7404 ADD #4,R4 Snow.c 347 Timer_Install(6, &snowtimer, 300); 000004B0 960F MOV.W L369+2,R6 ; H'012C 000004B2 D517 MOV.L L369+64,R5 ; _snowtimer 000004B4 D317 MOV.L L369+68,R3 ; _Timer_Install 000004B6 430B JSR @R3 000004B8 E406 MOV #6,R4 Snow.c 348 Timer_Start(6); 000004BA D217 MOV.L L369+72,R2 ; _Timer_Start 000004BC 420B JSR @R2 000004BE E406 MOV #6,R4 Snow.c 349 App_RUN_MAT(); 000004C0 D316 MOV.L L369+76,R3 ; _App_RUN_MAT 000004C2 430B JSR @R3 000004C4 0009 NOP Snow.c 350 } 000004C6 7F0C ADD #12,R15 000004C8 4F26 LDS.L @R15+,PR 000004CA 6DF6 MOV.L @R15+,R13 000004CC 000B RTS 000004CE 6EF6 MOV.L @R15+,R14 000004D0 L369: 000004D0 04E1 .DATA.W H'04E1 000004D2 012C .DATA.W H'012C 000004D4 <00000000> .DATA.L L299 000004D8 <00000000> .DATA.L __slow_mvn 000004DC <00000000> .DATA.L _RTC_GetTicks 000004E0 <00000000> .DATA.L _Disp_GetVRAMPtr 000004E4 <00000000> .DATA.L _vram 000004E8 <00000000> .DATA.L _iSysCallFuncPtr 000004EC <00000000> .DATA.L _AllClr_VRAM 000004F0 <00000000> .DATA.L _locate 000004F4 <00000000> .DATA.L _Print 000004F8 <00000000> .DATA.L L303 000004FC <00000000> .DATA.L L304 00000500 <00000000> .DATA.L L305 00000504 <00000000> .DATA.L L306 00000508 <00000000> .DATA.L L307 0000050C <00000000> .DATA.L _GetKey 00000510 <00000000> .DATA.L _snowtimer 00000514 <00000000> .DATA.L _Timer_Install 00000518 <00000000> .DATA.L _Timer_Start SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 19 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000051C <00000000> .DATA.L _App_RUN_MAT Snow.c 351 Snow.c 352 #pragma section _BR_Size Snow.c 353 unsigned long BR_Size; Snow.c 354 #pragma section Snow.c 355 #pragma section _TOP Snow.c 356 int InitializeSystem(int isAppli, unsigned short OptionNum) P_T 00000000 _InitializeSystem: ; function: InitializeSystem ; frame size=4 Snow.c 357 {return INIT_ADDIN_APPLICATION(isAppli, OptionNum);} 00000000 D303 MOV.L L370+2,R3 ; _INIT_ADDIN_APPLICATION 00000002 7FFC ADD #-4,R15 00000004 2F51 MOV.W R5,@R15 00000006 65F1 MOV.W @R15,R5 00000008 655D EXTU.W R5,R5 0000000A 432B JMP @R3 0000000C 7F04 ADD #4,R15 0000000E L370: 0000000E 0000 .DATA.W 0 00000010 <00000000> .DATA.L _INIT_ADDIN_APPLICATION Snow.c 358 #pragma section Snow.c 359 C 00000000 _SysCallWrapper: ; static: SysCallWrapper 00000000 D201422B60 .DATA.L H'D201422B,H'60F20000,H'80010070 F200008001 0070 0000000C _sprite3: ; static: sprite3 0000000C 0100010001 .DATA.B H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00, 0001000100 + H'01,H'00,H'00,H'01,H'00,H'01,H'01,H'01,H'00,H'01,H'00,H'00,H'01,H'00,H'01,H'00, 0100010001 + H'01,H'00,H'01,H'00 0001000001 0001010100 0100000100 0100010001 00 00000030 _sprite4: ; static: sprite4 00000030 0100000100 .DATA.B H'01,H'00,H'00,H'01,H'00,H'01,H'01,H'00,H'00,H'01,H'01,H'00,H'01,H'00,H'00,H'01, 0101000001 + H'00,H'01,H'01,H'00,H'01,H'00,H'00,H'01,H'01,H'00,H'00,H'01,H'00,H'01,H'01,H'00, 0100010000 + H'01,H'00,H'00,H'01,H'00,H'01,H'01,H'00,H'00,H'01,H'01,H'00,H'01,H'00,H'00,H'01, 0100010100 + H'00,H'01,H'01,H'00,H'01,H'00,H'00,H'01,H'01,H'00,H'00,H'01,H'00,H'01,H'01,H'00 0100000101 0000010001 0100010000 0100010100 0001010001 0000010001 0100010000 0101000001 00010100 00000070 _sprite5: ; static: sprite5 00000070 0001000100 .DATA.B H'00,H'01,H'00,H'01,H'00,H'01,H'01,H'00,H'01,H'01,H'00,H'00,H'01,H'00,H'00,H'01, 0101000101 + H'01,H'00,H'01,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01, 0000010000 + H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01, 0101000101 + H'00,H'01,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'01,H'01,H'00,H'01,H'01,H'00,H'01, 0001000100 + H'01,H'00,H'01,H'01,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'01,H'00,H'01,H'00,H'01, 0100010001 + H'00,H'01,H'01,H'01,H'00,H'01,H'01,H'00,H'01,H'01,H'00,H'01,H'01,H'01,H'00,H'01, 0001000100 + H'00,H'01,H'00,H'01 SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 20 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0100010001 0001000100 0100010001 0100010001 0001010100 0101000101 0001010100 0100010001 0100010001 0001010100 0101000101 0001010100 0100010001 000000D4 _sprite6: ; static: sprite6 000000D4 0001000001 .DATA.B H'00,H'01,H'00,H'00,H'01,H'00,H'01,H'01,H'00,H'00,H'01,H'01,H'00,H'00,H'01,H'01, 0001010000 + H'00,H'00,H'00,H'00,H'01,H'01,H'00,H'00,H'01,H'01,H'00,H'00,H'01,H'01,H'00,H'01, 0101000001 + H'00,H'00,H'01,H'00,H'01,H'01,H'00,H'00,H'01,H'01,H'01,H'00,H'01,H'01,H'00,H'01, 0100000000 + H'00,H'01,H'01,H'01,H'01,H'00,H'00,H'01,H'01,H'01,H'01,H'00,H'01,H'00,H'01,H'01, 0101000001 + H'00,H'01,H'01,H'01,H'00,H'00,H'01,H'01,H'00,H'01,H'00,H'00,H'01,H'00,H'01,H'01, 0100000101 + H'01,H'01,H'01,H'01,H'00,H'01,H'00,H'00,H'01,H'00,H'00,H'01,H'00,H'00,H'01,H'00, 0001000001 + H'01,H'01,H'01,H'01,H'01,H'01,H'00,H'01,H'00,H'00,H'01,H'00,H'00,H'01,H'00,H'00, 0001010000 + H'01,H'00,H'01,H'01,H'01,H'01,H'01,H'01,H'00,H'01,H'00,H'00,H'01,H'00,H'00,H'01, 0101010001 + H'00,H'00,H'01,H'00,H'01,H'01,H'01,H'01,H'01,H'01,H'00,H'01,H'00,H'00,H'01,H'00 0100010001 0101010000 0101010100 0100010100 0101010000 0101000100 0001000101 0101010100 0100000100 0001000001 0001010101 0101000100 0001000001 0000010001 0101010101 0001000001 0000010000 0100010101 0101010001 00000100 00000164 _sprite7: ; static: sprite7 00000164 0100010001 .DATA.B H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'01,H'00,H'01,H'01,H'00,H'01,H'01, 0001000101 + H'01,H'00,H'01,H'01,H'01,H'00,H'00,H'00,H'01,H'00,H'00,H'00,H'01,H'01,H'01,H'00, 0001010001 + H'01,H'01,H'01,H'00,H'01,H'01,H'00,H'01,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00, 0101000101 + H'01,H'00,H'01,H'01,H'00,H'01,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'01, 0100000001 + H'01,H'00,H'01,H'00,H'01,H'01,H'00,H'00,H'01,H'00,H'01,H'00,H'00,H'01,H'01,H'00, 0000000101 + H'01,H'00,H'01,H'01,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'01,H'00,H'01, 0100010101 + H'01,H'00,H'00,H'01,H'01,H'00,H'01,H'01,H'00,H'01,H'00,H'00,H'01,H'00,H'00,H'01, 0001010001 + H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00, 0100010001 + H'01,H'00,H'01,H'00,H'01,H'01,H'00,H'00,H'01,H'00,H'00,H'01,H'00,H'01,H'01,H'00, 0001000100 + H'01,H'01,H'00,H'01,H'01,H'01,H'00,H'01,H'01,H'01,H'01,H'00,H'00,H'01,H'00,H'00, 0101000101 + H'01,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01,H'00,H'01, 0001000100 + H'00,H'01,H'00,H'01,H'00,H'01,H'01,H'00,H'00,H'01,H'00,H'00,H'01,H'01,H'01,H'01, 0100010101 + H'00,H'01,H'01,H'01 SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 21 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0001000101 0000010001 0000010100 0100010101 0001000100 0100010100 0101000001 0100010100 0100000100 0001010001 0001000100 0100010001 0001000100 0100010100 0001000001 0001010001 0100010101 0001010101 0000010000 0101000100 0100010001 0001000100 0100010001 0001010000 0100000101 0101000101 01 00000228 L299: 00000228 E69100 .DATA.B H'E6,H'91,H'00 0000022B 00000001 .RES.B 1 0000022C L303: 0000022C 7E2A7C2053 .SDATA "~*| Snowfall |*~" 6E6F776661 6C6C207C2A 7E 0000023C 00 .DATA.B H'00 0000023D 00000001 .RES.B 1 0000023E 00000002 .RES.W 1 00000240 L304: 00000240 2843292062 .SDATA "(C) by Casimo" 7920436173 696D6F 0000024D 00 .DATA.B H'00 0000024E 00000002 .RES.W 1 00000250 L305: 00000250 7072657373 .SDATA "press any key" 20616E7920 6B6579 0000025D 00 .DATA.B H'00 0000025E 00000002 .RES.W 1 00000260 L306: 00000260 746F207374 .SDATA "to start" 617274 00000268 00 .DATA.B H'00 00000269 00000001 .RES.B 1 0000026A 00000002 .RES.W 1 0000026C L307: SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 22 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000026C 6578697420 .SDATA "exit with 1 A" 7769746820 312041 00000279 00 .DATA.B H'00 D 00000000 _iSysCallFuncPtr: ; static: iSysCallFuncPtr 00000000 <00000000> .DATA.L _SysCallWrapper 00000004 __$lastrandom: ; static: lastrandom 00000004 12345678 .DATA.L H'12345678 00000008 _variable: ; static: variable 00000008 00 .DATA.B H'00 00000009 0000001701 .DATAB.B 23,0 00 B 00000000 _vram: ; static: vram 00000000 00000004 .RES.L 1 00000004 _snow: ; static: snow 00000004 000000FA .RES.B 250 B_B 00000000 _BR_Size: ; static: BR_Size 00000000 00000004 .RES.L 1 SH SERIES C/C++ Compiler (Ver. 6.0C) 23-Dec-2012 15:48:25 PAGE 1 ******** STATISTICS INFORMATION ******** ********** ERROR INFORMATION *********** NUMBER OF ERRORS: 0 NUMBER OF WARNINGS: 0 ******* SOURCE LINE INFORMATION ******** COMPILED SOURCE LINE: 359 ******* SECTION SIZE INFORMATION ******* PROGRAM SECTION (P): 00000520 Byte(s) PROGRAM SECTION (P_BR_Size): 00000000 Byte(s) PROGRAM SECTION (P_TOP): 00000014 Byte(s) CONSTANT SECTION (C): 0000027A Byte(s) CONSTANT SECTION (C_BR_Size): 00000000 Byte(s) CONSTANT SECTION (C_TOP): 00000000 Byte(s) DATA SECTION (D): 00000020 Byte(s) DATA SECTION (D_BR_Size): 00000000 Byte(s) DATA SECTION (D_TOP): 00000000 Byte(s) BSS SECTION (B): 000000FE Byte(s) BSS SECTION (B_BR_Size): 00000004 Byte(s) BSS SECTION (B_TOP): 00000000 Byte(s) TOTAL PROGRAM SIZE: 000008D0 Byte(s) ********** LABEL INFORMATION *********** NUMBER OF EXTERNAL REFERENCE SYMBOLS: 15 NUMBER OF EXTERNAL DEFINITION SYMBOLS: 19 NUMBER OF INTERNAL/EXTERNAL SYMBOLS: 81 *** COMMAND PARAMETER *** -subcommand=C:\Users\Timo\AppData\Local\Temp\hmk7676.tmp