From 32b592799f40834030d3d781db9de9fa99756f3f Mon Sep 17 00:00:00 2001 From: schneefux Date: Sun, 12 Jun 2016 20:13:54 +0200 Subject: import into git --- Debug/Snow.lst | 1457 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1457 insertions(+) create mode 100644 Debug/Snow.lst (limited to 'Debug/Snow.lst') diff --git a/Debug/Snow.lst b/Debug/Snow.lst new file mode 100644 index 0000000..f6cf5c6 --- /dev/null +++ b/Debug/Snow.lst @@ -0,0 +1,1457 @@ +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 1 + +************ OBJECT LISTING ************ + +FILE NAME: G:\Casio SDK\Projekte\Firework\Snow.c + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Snow.c 1 #include "mathf.h" + Snow.c 2 + Snow.c 3 char *Disp_GetVRAMPtr(void); + Snow.c 4 int Timer_Install(int TimerID, void (*handler)(void), int delay); + Snow.c 5 int Timer_Start(int TimerID); + Snow.c 6 void App_PROG(); + Snow.c 7 int RTC_GetTicks(); + Snow.c 8 void AllClear_VRAM(); + Snow.c 9 + Snow.c 10 typedef struct{ + Snow.c 11 unsigned int x1; + Snow.c 12 unsigned int y1; + Snow.c 13 unsigned int x2; + Snow.c 14 unsigned int y2; + Snow.c 15 unsigned char f[4]; + Snow.c 16 unsigned int on_bits; + Snow.c 17 unsigned int off_bits; + Snow.c 18 } TShape; + Snow.c 19 + Snow.c 20 void ShapeToVRAM( TShape* x ); + Snow.c 21 + Snow.c 22 char *vram; + Snow.c 23 + Snow.c 24 const int SysCallWrapper[] = {0xD201422B,0x60F20000,0x80010070}; + Snow.c 25 const int (*iSysCallFuncPtr)( int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallWrapper; + Snow.c 26 #define Alpha_GetData(VarName,Dest) (void)(*iSysCallFuncPtr)( VarName,(int)Dest, 0, 0, 0x04DF) + Snow.c 27 #define Alpha_ClearAll() (void)(*iSysCallFuncPtr)( 0,0, 0, 0, 0x004E1) + Snow.c 28 + Snow.c 29 int InputString( unsigned char*buff, unsigned char *heading, int maxlen ); + Snow.c 30 + Snow.c 31 static unsigned int lastrandom=0x12345678; + Snow.c 32 + Snow.c 33 unsigned int random( int seed){ +P 00000000 _random: ; function: random + ; frame size=4 + 00000000 4F12 STS.L MACL,@-R15 + Snow.c 34 if (seed) lastrandom=seed; + 00000002 2448 TST R4,R4 + 00000004 D53C MOV.L L413+4,R5 ; __$lastrandom + 00000006 8900 BT L366 + 00000008 2542 MOV.L R4,@R5 + 0000000A L366: + Snow.c 35 lastrandom = ( 0x41C64E6D*lastrandom ) + 0x3039; + 0000000A D33C MOV.L L413+8,R3 ; H'41C64E6D + 0000000C 6252 MOV.L @R5,R2 + 0000000E 0237 MUL.L R3,R2 + 00000010 9170 MOV.W L413,R1 ; H'3039 + 00000012 031A STS MACL,R3 + 00000014 331C ADD R1,R3 + Snow.c 36 return ( lastrandom >> 16 ); + 00000016 6033 MOV R3,R0 + 00000018 2532 MOV.L R3,@R5 + 0000001A 4029 SHLR16 R0 + Snow.c 37 } + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 2 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 0000001C 000B RTS + 0000001E 4F16 LDS.L @R15+,MACL + Snow.c 38 + Snow.c 39 const char sprite[9][3] = { + Snow.c 40 { 0 , 1 , 0 }, + Snow.c 41 { 1 , 1 , 1 }, + Snow.c 42 { 1 , 0 , 1 }, + Snow.c 43 { 1 , 0 , 1 }, + Snow.c 44 { 1 , 0 , 1 }, + Snow.c 45 { 1 , 1 , 1 }, + Snow.c 46 { 0 , 0 , 1 }, + Snow.c 47 { 0 , 0 , 1 }, + Snow.c 48 { 0 , 0 , 1 } + Snow.c 49 }; + Snow.c 50 + Snow.c 51 #define abs(x) (x < 0)?-x:x + Snow.c 52 #define sgn(x) (x < 0)?-1:(x == 0)?0:1 + Snow.c 53 + Snow.c 54 void setpixel(unsigned char x, char y) + 00000020 _setpixel: ; function: setpixel + ; frame size=32 + 00000020 4F22 STS.L PR,@-R15 + Snow.c 55 { + Snow.c 56 TShape t; + Snow.c 57 if(x&~127 || y&~63) return; + 00000022 624C EXTU.B R4,R2 + 00000024 7FE4 ADD #-28,R15 + 00000026 E380 MOV #-128,R3 + 00000028 2238 TST R3,R2 + 0000002A 8B14 BF L370 + 0000002C 605E EXTS.B R5,R0 + 0000002E E2C0 MOV #-64,R2 + 00000030 2028 TST R2,R0 + 00000032 8B10 BF L370 + Snow.c 58 t.x1 = x; + 00000034 644C EXTU.B R4,R4 + Snow.c 59 t.y1 = y; + 00000036 655E EXTS.B R5,R5 + 00000038 2F42 MOV.L R4,@R15 + Snow.c 60 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 61 t.f[1] = 1; + 00000042 E401 MOV #1,R4 + Snow.c 62 t.f[2] = 1; + Snow.c 63 t.f[3] = 1; + Snow.c 64 + Snow.c 65 ShapeToDD(&t); + 00000044 D32E MOV.L L413+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) + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 3 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000052 430B JSR @R3 + 00000054 64F3 MOV R15,R4 + Snow.c 66 } + 00000056 L370: + 00000056 7F1C ADD #28,R15 + 00000058 4F26 LDS.L @R15+,PR + 0000005A 000B RTS + 0000005C 0009 NOP + Snow.c 67 + Snow.c 68 void line(int x1, int y1, int x2, int y2) + 0000005E _line: ; function: line + ; frame size=36 + Snow.c 69 { + Snow.c 70 int i, x, y, dx, dy, sx, sy, cumul; + Snow.c 71 x = x1; + Snow.c 72 y = y1; + Snow.c 73 dx = x2 - x1; + 0000005E 6363 MOV R6,R3 + 00000060 2FE6 MOV.L R14,@-R15 + Snow.c 74 dy = y2 - y1; + 00000062 6273 MOV R7,R2 + 00000064 2FD6 MOV.L R13,@-R15 + 00000066 3348 SUB R4,R3 + 00000068 2FC6 MOV.L R12,@-R15 + 0000006A 6D43 MOV R4,R13 + 0000006C 2FB6 MOV.L R11,@-R15 + 0000006E 6C53 MOV R5,R12 + 00000070 2FA6 MOV.L R10,@-R15 + 00000072 6433 MOV R3,R4 + 00000074 2F96 MOV.L R9,@-R15 + 00000076 3258 SUB R5,R2 + 00000078 2F86 MOV.L R8,@-R15 + Snow.c 75 sx = sgn(dx); + 0000007A 4411 CMP/PZ R4 + 0000007C 4F22 STS.L PR,@-R15 + 0000007E 7FFC ADD #-4,R15 + 00000080 8D02 BT/S L371 + 00000082 6523 MOV R2,R5 + 00000084 A005 BRA L373 + 00000086 E8FF MOV #-1,R8 + 00000088 L371: + 00000088 2448 TST R4,R4 + 0000008A 8B01 BF L372 + 0000008C A001 BRA L373 + 0000008E E800 MOV #0,R8 + 00000090 L372: + 00000090 E801 MOV #1,R8 + 00000092 L373: + Snow.c 76 sy = sgn(dy); + 00000092 4511 CMP/PZ R5 + 00000094 8901 BT L375 + 00000096 A005 BRA L377 + 00000098 E2FF MOV #-1,R2 + 0000009A L375: + 0000009A 2558 TST R5,R5 + 0000009C 8B01 BF L376 + 0000009E A001 BRA L377 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 4 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000000A0 E200 MOV #0,R2 + 000000A2 L376: + 000000A2 E201 MOV #1,R2 + 000000A4 L377: + Snow.c 77 dx = abs(dx); + 000000A4 4411 CMP/PZ R4 + 000000A6 8D02 BT/S L379 + 000000A8 2F22 MOV.L R2,@R15 + 000000AA A001 BRA L380 + 000000AC 6E4B NEG R4,R14 + 000000AE L379: + 000000AE 6E43 MOV R4,R14 + 000000B0 L380: + Snow.c 78 dy = abs(dy); + 000000B0 4511 CMP/PZ R5 + 000000B2 8901 BT L381 + 000000B4 A001 BRA L382 + 000000B6 6B5B NEG R5,R11 + 000000B8 L381: + 000000B8 6B53 MOV R5,R11 + 000000BA L382: + Snow.c 79 setpixel(x, y); + 000000BA 65C3 MOV R12,R5 + 000000BC BFB0 BSR _setpixel + 000000BE 64D3 MOV R13,R4 + Snow.c 80 if(dx > dy) + 000000C0 3EB7 CMP/GT R11,R14 + 000000C2 8F1F BF/S L383 + 000000C4 E401 MOV #1,R4 + Snow.c 81 { + Snow.c 82 cumul = dx / 2; + 000000C6 6AE3 MOV R14,R10 + 000000C8 E300 MOV #0,R3 + 000000CA 33A7 CMP/GT R10,R3 + 000000CC 3A3E ADDC R3,R10 + 000000CE 4A21 SHAR R10 + Snow.c 83 for(i=1 ; i dx) + 000000D8 3AE7 CMP/GT R14,R10 + 000000DA 8F03 BF/S L386 + 000000DC 3D8C ADD R8,R13 + Snow.c 88 { + Snow.c 89 cumul -= dx; + 000000DE 3AE8 SUB R14,R10 + Snow.c 90 y += sy; + 000000E0 62F2 MOV.L @R15,R2 + 000000E2 3C2C ADD R2,R12 + 000000E4 L386: + Snow.c 91 } + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 5 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Snow.c 92 setpixel(x, y); + 000000E4 65C3 MOV R12,R5 + 000000E6 BF9B BSR _setpixel + 000000E8 64D3 MOV R13,R4 + 000000EA 7901 ADD #1,R9 + 000000EC 39E3 CMP/GE R14,R9 + 000000EE 8BF2 BF L385 + 000000F0 A01D BRA L387 + 000000F2 0009 NOP + 000000F4 L413: + 000000F4 3039 .DATA.W H'3039 + 000000F6 0000 .DATA.W 0 + 000000F8 <00000000> .DATA.L __$lastrandom + 000000FC 41C64E6D .DATA.L H'41C64E6D + 00000100 <00000000> .DATA.L _ShapeToDD + 00000104 L383: + Snow.c 93 } + Snow.c 94 } + Snow.c 95 else + Snow.c 96 { + Snow.c 97 cumul = dy / 2; + 00000104 6AB3 MOV R11,R10 + 00000106 E300 MOV #0,R3 + 00000108 33A7 CMP/GT R10,R3 + 0000010A 3A3E ADDC R3,R10 + 0000010C 4A21 SHAR R10 + Snow.c 98 for(i=1 ; i dy) + 00000118 3AB7 CMP/GT R11,R10 + 0000011A 8F02 BF/S L390 + 0000011C 3C3C ADD R3,R12 + Snow.c 103 { + Snow.c 104 cumul -= dy; + 0000011E 3AB8 SUB R11,R10 + Snow.c 105 x += sx; + 00000120 3D8C ADD R8,R13 + 00000122 L390: + Snow.c 106 } + Snow.c 107 setpixel(x, y); + 00000122 65C3 MOV R12,R5 + 00000124 BF7C BSR _setpixel + 00000126 64D3 MOV R13,R4 + 00000128 7901 ADD #1,R9 + 0000012A 39B3 CMP/GE R11,R9 + 0000012C 8BF2 BF L389 + 0000012E L387: + Snow.c 108 } + Snow.c 109 } + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 6 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Snow.c 110 } + 0000012E 7F04 ADD #4,R15 + 00000130 4F26 LDS.L @R15+,PR + 00000132 68F6 MOV.L @R15+,R8 + 00000134 69F6 MOV.L @R15+,R9 + 00000136 6AF6 MOV.L @R15+,R10 + 00000138 6BF6 MOV.L @R15+,R11 + 0000013A 6CF6 MOV.L @R15+,R12 + 0000013C 6DF6 MOV.L @R15+,R13 + 0000013E 000B RTS + 00000140 6EF6 MOV.L @R15+,R14 + Snow.c 111 + Snow.c 112 void drawsprite(unsigned char px, char py, float dirx) + 00000142 _drawsprite: ; function: drawsprite + ; frame size=44 + ; used runtime library name: + ; __adds, __muls, __stoi, __stou, __itos, __lts + 00000142 6043 MOV R4,R0 + 00000144 2FE6 MOV.L R14,@-R15 + 00000146 2FD6 MOV.L R13,@-R15 + 00000148 2FC6 MOV.L R12,@-R15 + 0000014A 2FB6 MOV.L R11,@-R15 + 0000014C 2FA6 MOV.L R10,@-R15 + 0000014E 2F96 MOV.L R9,@-R15 + 00000150 2F86 MOV.L R8,@-R15 + Snow.c 113 { + Snow.c 114 char x; + Snow.c 115 float y; + Snow.c 116 for(y = 0; y < 9; y += 1) + 00000152 E903 MOV #3,R9 + 00000154 4F22 STS.L PR,@-R15 + 00000156 E809 MOV #9,R8 + 00000158 7FF4 ADD #-12,R15 + 0000015A 80F8 MOV.B R0,@(8,R15) + 0000015C 6053 MOV R5,R0 + 0000015E 80F4 MOV.B R0,@(4,R15) + 00000160 2F62 MOV.L R6,@R15 + 00000162 A030 BRA L391 + 00000164 EA00 MOV #0,R10 + 00000166 L392: + Snow.c 117 for(x = 0; x < 3; x++) + 00000166 EB00 MOV #0,R11 + 00000168 84F8 MOV.B @(8,R15),R0 + 0000016A 6D0C EXTU.B R0,R13 + 0000016C D357 MOV.L L414+2,R3 ; __stoi + 0000016E 430B JSR @R3 + 00000170 60A3 MOV R10,R0 + 00000172 6C03 MOV R0,R12 + 00000174 DE56 MOV.L L414+6,R14 ; _sprite + 00000176 6303 MOV R0,R3 + 00000178 4000 SHLL R0 + 0000017A 303C ADD R3,R0 + 0000017C 3E0C ADD R0,R14 + 0000017E L393: + Snow.c 118 if(sprite[(int)y][x] == 1) + 0000017E 60E0 MOV.B @R14,R0 + 00000180 8801 CMP/EQ #1,R0 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 7 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000182 8B15 BF L394 + Snow.c 119 setpixel(px + x + ((9 - (int)y) * dirx), py + (int)y); + 00000184 84F4 MOV.B @(4,R15),R0 + 00000186 6503 MOV R0,R5 + 00000188 D352 MOV.L L414+10,R3 ; __itos + 0000018A 35CC ADD R12,R5 + 0000018C 6083 MOV R8,R0 + 0000018E 430B JSR @R3 + 00000190 30C8 SUB R12,R0 + 00000192 D251 MOV.L L414+14,R2 ; __muls + 00000194 420B JSR @R2 + 00000196 61F2 MOV.L @R15,R1 + 00000198 D34E MOV.L L414+10,R3 ; __itos + 0000019A 6103 MOV R0,R1 + 0000019C 430B JSR @R3 + 0000019E 60D3 MOV R13,R0 + 000001A0 D34E MOV.L L414+18,R3 ; __adds + 000001A2 430B JSR @R3 + 000001A4 0009 NOP + 000001A6 D44E MOV.L L414+22,R4 ; __stou + 000001A8 440B JSR @R4 + 000001AA 0009 NOP + 000001AC BF38 BSR _setpixel + 000001AE 640C EXTU.B R0,R4 + 000001B0 L394: + 000001B0 7B01 ADD #1,R11 + 000001B2 7D01 ADD #1,R13 + 000001B4 63BE EXTS.B R11,R3 + 000001B6 3393 CMP/GE R9,R3 + 000001B8 8FE1 BF/S L393 + 000001BA 7E01 ADD #1,R14 + 000001BC D049 MOV.L L414+26,R0 ; H'3F800000 + 000001BE D347 MOV.L L414+18,R3 ; __adds + 000001C0 430B JSR @R3 + 000001C2 61A3 MOV R10,R1 + 000001C4 6A03 MOV R0,R10 + 000001C6 L391: + 000001C6 D048 MOV.L L414+30,R0 ; H'41100000 + 000001C8 D248 MOV.L L414+34,R2 ; __lts + 000001CA 420B JSR @R2 + 000001CC 61A3 MOV R10,R1 + 000001CE 8800 CMP/EQ #0,R0 + 000001D0 8BC9 BF L392 + Snow.c 120 } + 000001D2 7F0C ADD #12,R15 + 000001D4 4F26 LDS.L @R15+,PR + 000001D6 68F6 MOV.L @R15+,R8 + 000001D8 69F6 MOV.L @R15+,R9 + 000001DA 6AF6 MOV.L @R15+,R10 + 000001DC 6BF6 MOV.L @R15+,R11 + 000001DE 6CF6 MOV.L @R15+,R12 + 000001E0 6DF6 MOV.L @R15+,R13 + 000001E2 000B RTS + 000001E4 6EF6 MOV.L @R15+,R14 + Snow.c 121 + Snow.c 122 #define P2I 6.28318531 + Snow.c 123 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 8 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Snow.c 124 void drawboom(unsigned char px, char py, char boom, float radius) + 000001E6 _drawboom: ; function: drawboom + ; frame size=60 + ; used runtime library name: + ; __adds, __muls, __stod, __stoi, __itos, __ltd + 000001E6 6043 MOV R4,R0 + 000001E8 2FE6 MOV.L R14,@-R15 + 000001EA 2FD6 MOV.L R13,@-R15 + 000001EC 2FC6 MOV.L R12,@-R15 + 000001EE 2FB6 MOV.L R11,@-R15 + 000001F0 2FA6 MOV.L R10,@-R15 + 000001F2 2F96 MOV.L R9,@-R15 + 000001F4 4F22 STS.L PR,@-R15 + 000001F6 7FF0 ADD #-16,R15 + Snow.c 125 { + Snow.c 126 float cnt; + Snow.c 127 + Snow.c 128 for(cnt = 0; cnt < P2I; cnt += radius) + 000001F8 D93D MOV.L L414+38,R9 ; _sinf + 000001FA 80F4 MOV.B R0,@(4,R15) + 000001FC DA3D MOV.L L414+42,R10; _cosf + 000001FE 6053 MOV R5,R0 + 00000200 80FC MOV.B R0,@(12,R15) + 00000202 2F60 MOV.B R6,@R15 + 00000204 1F72 MOV.L R7,@(8,R15) + 00000206 A028 BRA L395 + 00000208 EE00 MOV #0,R14 + 0000020A L396: + Snow.c 129 line(px, py, px + (int)(cosf(cnt) * boom), py + (int)(sinf(cnt) * boom)); + 0000020A 84FC MOV.B @(12,R15),R0 + 0000020C 6B03 MOV R0,R11 + 0000020E 490B JSR @R9 + 00000210 64E3 MOV R14,R4 + 00000212 6203 MOV R0,R2 + 00000214 D32F MOV.L L414+10,R3 ; __itos + 00000216 430B JSR @R3 + 00000218 60F0 MOV.B @R15,R0 + 0000021A 6C03 MOV R0,R12 + 0000021C D32E MOV.L L414+14,R3 ; __muls + 0000021E 430B JSR @R3 + 00000220 6123 MOV R2,R1 + 00000222 D22A MOV.L L414+2,R2 ; __stoi + 00000224 420B JSR @R2 + 00000226 0009 NOP + 00000228 67B3 MOV R11,R7 + 0000022A 370C ADD R0,R7 + 0000022C 2F76 MOV.L R7,@-R15 + 0000022E 84F8 MOV.B @(8,R15),R0 + 00000230 6D03 MOV R0,R13 + 00000232 6DDC EXTU.B R13,R13 + 00000234 4A0B JSR @R10 + 00000236 64E3 MOV R14,R4 + 00000238 D327 MOV.L L414+14,R3 ; __muls + 0000023A 430B JSR @R3 + 0000023C 61C3 MOV R12,R1 + 0000023E D223 MOV.L L414+2,R2 ; __stoi + 00000240 420B JSR @R2 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 9 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000242 0009 NOP + 00000244 66D3 MOV R13,R6 + 00000246 360C ADD R0,R6 + 00000248 65B3 MOV R11,R5 + 0000024A 64D3 MOV R13,R4 + 0000024C BF07 BSR _line + 0000024E 67F6 MOV.L @R15+,R7 + 00000250 50F2 MOV.L @(8,R15),R0 + 00000252 D222 MOV.L L414+18,R2 ; __adds + 00000254 420B JSR @R2 + 00000256 61E3 MOV R14,R1 + 00000258 6E03 MOV R0,R14 + 0000025A L395: + 0000025A 60E3 MOV R14,R0 + 0000025C D326 MOV.L L414+46,R3 ; __stod + 0000025E 7FF8 ADD #-8,R15 + 00000260 430B JSR @R3 + 00000262 2FF6 MOV.L R15,@-R15 + 00000264 D225 MOV.L L414+50,R2 ; H'5474A168 + 00000266 2F26 MOV.L R2,@-R15 + 00000268 D225 MOV.L L414+54,R2 ; H'401921FB + 0000026A D326 MOV.L L414+58,R3 ; __ltd + 0000026C 430B JSR @R3 + 0000026E 2F26 MOV.L R2,@-R15 + 00000270 8800 CMP/EQ #0,R0 + 00000272 8BCA BF L396 + Snow.c 130 } + 00000274 7F10 ADD #16,R15 + 00000276 4F26 LDS.L @R15+,PR + 00000278 69F6 MOV.L @R15+,R9 + 0000027A 6AF6 MOV.L @R15+,R10 + 0000027C 6BF6 MOV.L @R15+,R11 + 0000027E 6CF6 MOV.L @R15+,R12 + 00000280 6DF6 MOV.L @R15+,R13 + 00000282 000B RTS + 00000284 6EF6 MOV.L @R15+,R14 + Snow.c 131 + Snow.c 132 #define CNT 15 + Snow.c 133 + Snow.c 134 struct {unsigned char active;char boom;float dirx, y, x, radius;} fire[CNT]; + Snow.c 135 + Snow.c 136 void display_vram() + 00000286 _display_vram: ; function: display_vram + ; frame size=16 + Snow.c 137 { + Snow.c 138 char *LCD_register_selector = (char*)0xB4000000, *LCD_data_register = (char*)0xB4010000, *mvram; + Snow.c 139 int i, j; + Snow.c 140 mvram = vram; + Snow.c 141 for(i=0 ; i<64 ; i++) + 00000286 E100 MOV #0,R1 + 00000288 D520 MOV.L L414+66,R5 ; H'B4000000 + 0000028A E704 MOV #4,R7 + 0000028C D420 MOV.L L414+70,R4 ; H'B4010000 + 0000028E 6013 MOV R1,R0 + 00000290 2FC6 MOV.L R12,@-R15 + 00000292 2FB6 MOV.L R11,@-R15 + 00000294 2FA6 MOV.L R10,@-R15 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 10 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000296 EB07 MOV #7,R11 + 00000298 D21B MOV.L L414+62,R2 ; _vram + 0000029A EA10 MOV #16,R10 + 0000029C 2F96 MOV.L R9,@-R15 + 0000029E E940 MOV #64,R9 + 000002A0 6C22 MOV.L @R2,R12 + 000002A2 L397: + Snow.c 142 { + Snow.c 143 *LCD_register_selector = 4; + Snow.c 144 *LCD_data_register = i|192; + 000002A2 E3C0 MOV #-64,R3 + 000002A4 2570 MOV.B R7,@R5 + Snow.c 145 *LCD_register_selector = 4; + Snow.c 146 *LCD_data_register = 0; + Snow.c 147 *LCD_register_selector = 7; + Snow.c 148 for(j=0 ; j<16 ; j++) *LCD_data_register = *mvram++; + 000002A6 66A3 MOV R10,R6 + 000002A8 230B OR R0,R3 + 000002AA 2430 MOV.B R3,@R4 + 000002AC 2570 MOV.B R7,@R5 + 000002AE 2410 MOV.B R1,@R4 + 000002B0 25B0 MOV.B R11,@R5 + 000002B2 L398: + 000002B2 4610 DT R6 + 000002B4 63C4 MOV.B @R12+,R3 + 000002B6 8FFC BF/S L398 + 000002B8 2430 MOV.B R3,@R4 + 000002BA 7001 ADD #1,R0 + 000002BC 3093 CMP/GE R9,R0 + 000002BE 8BF0 BF L397 + Snow.c 149 } + Snow.c 150 } + 000002C0 69F6 MOV.L @R15+,R9 + 000002C2 6AF6 MOV.L @R15+,R10 + 000002C4 6BF6 MOV.L @R15+,R11 + 000002C6 000B RTS + 000002C8 6CF6 MOV.L @R15+,R12 + 000002CA L414: + 000002CA 0000 .DATA.W 0 + 000002CC <00000000> .DATA.L __stoi + 000002D0 <00000000> .DATA.L _sprite + 000002D4 <00000000> .DATA.L __itos + 000002D8 <00000000> .DATA.L __muls + 000002DC <00000000> .DATA.L __adds + 000002E0 <00000000> .DATA.L __stou + 000002E4 3F800000 .DATA.L H'3F800000 + 000002E8 41100000 .DATA.L H'41100000 + 000002EC <00000000> .DATA.L __lts + 000002F0 <00000000> .DATA.L _sinf + 000002F4 <00000000> .DATA.L _cosf + 000002F8 <00000000> .DATA.L __stod + 000002FC 5474A168 .DATA.L H'5474A168 + 00000300 401921FB .DATA.L H'401921FB + 00000304 <00000000> .DATA.L __ltd + 00000308 <00000000> .DATA.L _vram + 0000030C B4000000 .DATA.L H'B4000000 + 00000310 B4010000 .DATA.L H'B4010000 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 11 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Snow.c 151 + Snow.c 152 char isMainMenu() + 00000314 _isMainMenu: ; function: isMainMenu + ; frame size=0 + Snow.c 153 { + Snow.c 154 unsigned int ea; + Snow.c 155 unsigned int j; + Snow.c 156 ea = *(unsigned int*)0x8001007C; + 00000314 D342 MOV.L L415+4,R3 ; H'8001007C + Snow.c 157 ea += 0x0490*4; + Snow.c 158 ea = *(unsigned int*)( ea ); + Snow.c 159 j = *(unsigned char*)( ea + 1 ); + Snow.c 160 j *= 4; + Snow.c 161 j = ( ea + j + 4 ) & 0xFFFFFFFC; + 00000316 E1FC MOV #-4,R1 + 00000318 9280 MOV.W L415,R2 ; H'1240 + 0000031A 6432 MOV.L @R3,R4 + 0000031C 342C ADD R2,R4 + 0000031E 6442 MOV.L @R4,R4 + 00000320 8441 MOV.B @(1,R4),R0 + 00000322 650C EXTU.B R0,R5 + 00000324 4508 SHLL2 R5 + 00000326 345C ADD R5,R4 + 00000328 7404 ADD #4,R4 + 0000032A 2419 AND R1,R4 + Snow.c 162 j = *(unsigned int*)( j ) + 1; + 0000032C 6442 MOV.L @R4,R4 + Snow.c 163 + Snow.c 164 return *(unsigned char*)j; + Snow.c 165 } + 0000032E 000B RTS + 00000330 8441 MOV.B @(1,R4),R0 + Snow.c 166 + Snow.c 167 char variable[24]={0}; + Snow.c 168 + Snow.c 169 void snowtimer(void) + 00000332 _snowtimer: ; function: snowtimer + ; frame size=76 + ; used runtime library name: + ; __modlu, __adds, __addd, __subs, __divs, __divdr, __dtos, __stoi, __sto + + u, __utos, __utod, __eqs, __gts, __lts + 00000332 2FE6 MOV.L R14,@-R15 + 00000334 2FD6 MOV.L R13,@-R15 + 00000336 2FC6 MOV.L R12,@-R15 + 00000338 2FB6 MOV.L R11,@-R15 + 0000033A 2FA6 MOV.L R10,@-R15 + 0000033C 2F96 MOV.L R9,@-R15 + 0000033E 2F86 MOV.L R8,@-R15 + 00000340 4F22 STS.L PR,@-R15 + 00000342 7FF8 ADD #-8,R15 + Snow.c 170 { + Snow.c 171 unsigned char x; + Snow.c 172 + Snow.c 173 if(!isMainMenu()) + 00000344 BFE6 BSR _isMainMenu + 00000346 0009 NOP + 00000348 600E EXTS.B R0,R0 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 12 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 0000034A 2008 TST R0,R0 + 0000034C 8901 BT L416 + 0000034E A0F0 BRA L400 + 00000350 0009 NOP + 00000352 L416: + Snow.c 174 { + Snow.c 175 display_vram(); + 00000352 BF98 BSR _display_vram + 00000354 0009 NOP + Snow.c 176 + Snow.c 177 for(x =CNT - 1; x > 0 ; x--) + 00000356 E20E MOV #14,R2 + 00000358 DE32 MOV.L L415+8,R14 ; _fire + 0000035A E80F MOV #15,R8 + 0000035C 945F MOV.W L415+2,R4 ; H'0118 + 0000035E E900 MOV #0,R9 + 00000360 2F20 MOV.B R2,@R15 + 00000362 34EC ADD R14,R4 + 00000364 1F41 MOV.L R4,@(4,R15) + 00000366 6C43 MOV R4,R12 + 00000368 6BC3 MOV R12,R11 + 0000036A L401: + 0000036A 6AF0 MOV.B @R15,R10 + 0000036C 6AAC EXTU.B R10,R10 + 0000036E 63A3 MOV R10,R3 + 00000370 4A08 SHLL2 R10 + 00000372 3A3C ADD R3,R10 + 00000374 4A08 SHLL2 R10 + 00000376 60A3 MOV R10,R0 + 00000378 00EC MOV.B @(R0,R14),R0 + 0000037A 600C EXTU.B R0,R0 + 0000037C 8801 CMP/EQ #1,R0 + 0000037E 8901 BT L417 + 00000380 A083 BRA L402 + 00000382 0009 NOP + 00000384 L417: + Snow.c 178 { + Snow.c 179 if(fire[x].active == 1) + Snow.c 180 { + Snow.c 181 if(fire[x].boom == 0) + 00000384 62A3 MOV R10,R2 + 00000386 32EC ADD R14,R2 + 00000388 8421 MOV.B @(1,R2),R0 + 0000038A 2008 TST R0,R0 + 0000038C 8B62 BF L403 + Snow.c 182 { + Snow.c 183 drawsprite(fire[x].x, fire[x].y, fire[x].dirx); + 0000038E 6DA3 MOV R10,R13 + 00000390 D525 MOV.L L415+12,R5 ; __stoi + 00000392 3DEC ADD R14,R13 + 00000394 56D1 MOV.L @(4,R13),R6 + 00000396 450B JSR @R5 + 00000398 50D2 MOV.L @(8,R13),R0 + 0000039A 650E EXTS.B R0,R5 + 0000039C D423 MOV.L L415+16,R4 ; __stou + 0000039E 440B JSR @R4 + 000003A0 50D3 MOV.L @(12,R13),R0 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 13 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000003A2 BECE BSR _drawsprite + 000003A4 640C EXTU.B R0,R4 + Snow.c 184 fire[x].y -= fire[x].y / 64; + 000003A6 D022 MOV.L L415+20,R0 ; H'42800000 + 000003A8 D322 MOV.L L415+24,R3 ; __divs + 000003AA 430B JSR @R3 + 000003AC 51D2 MOV.L @(8,R13),R1 + 000003AE D222 MOV.L L415+28,R2 ; __subs + 000003B0 420B JSR @R2 + 000003B2 51D2 MOV.L @(8,R13),R1 + 000003B4 1D02 MOV.L R0,@(8,R13) + Snow.c 185 fire[x].x += fire[x].dirx; + 000003B6 50D1 MOV.L @(4,R13),R0 + 000003B8 D320 MOV.L L415+32,R3 ; __adds + 000003BA 430B JSR @R3 + 000003BC 51D3 MOV.L @(12,R13),R1 + 000003BE 1D03 MOV.L R0,@(12,R13) + Snow.c 186 if(fire[x].y == 0 || fire[x].x > 127 || fire[x].x < 0) + 000003C0 51D2 MOV.L @(8,R13),R1 + 000003C2 D21F MOV.L L415+36,R2 ; __eqs + 000003C4 420B JSR @R2 + 000003C6 E000 MOV #0,R0 + 000003C8 8800 CMP/EQ #0,R0 + 000003CA 8B0B BF L405 + 000003CC D01D MOV.L L415+40,R0 ; H'42FE0000 + 000003CE D31E MOV.L L415+44,R3 ; __gts + 000003D0 430B JSR @R3 + 000003D2 51D3 MOV.L @(12,R13),R1 + 000003D4 8800 CMP/EQ #0,R0 + 000003D6 8B05 BF L405 + 000003D8 51D3 MOV.L @(12,R13),R1 + 000003DA D21C MOV.L L415+48,R2 ; __lts + 000003DC 420B JSR @R2 + 000003DE E000 MOV #0,R0 + 000003E0 8800 CMP/EQ #0,R0 + 000003E2 8902 BT L404 + 000003E4 L405: + Snow.c 187 fire[x].active = 0; + 000003E4 63A3 MOV R10,R3 + 000003E6 33EC ADD R14,R3 + 000003E8 2390 MOV.B R9,@R3 + 000003EA L404: + Snow.c 188 if(random(0) % (int)fire[x].y == 0 && fire[x].boom == 0) + 000003EA BE09 BSR _random + 000003EC E400 MOV #0,R4 + 000003EE 6103 MOV R0,R1 + 000003F0 D30D MOV.L L415+12,R3 ; __stoi + 000003F2 64A3 MOV R10,R4 + 000003F4 34EC ADD R14,R4 + 000003F6 430B JSR @R3 + 000003F8 5042 MOV.L @(8,R4),R0 + 000003FA D315 MOV.L L415+52,R3 ; __modlu + 000003FC 430B JSR @R3 + 000003FE 0009 NOP + 00000400 8800 CMP/EQ #0,R0 + 00000402 8901 BT L418 + 00000404 A088 BRA L409 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 14 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000406 0009 NOP + 00000408 L418: + 00000408 8441 MOV.B @(1,R4),R0 + 0000040A 2008 TST R0,R0 + 0000040C 8901 BT L419 + 0000040E A083 BRA L409 + 00000410 0009 NOP + 00000412 L419: + Snow.c 189 fire[x].boom++; + 00000412 3AEC ADD R14,R10 + 00000414 84A1 MOV.B @(1,R10),R0 + 00000416 7001 ADD #1,R0 + 00000418 A07E BRA L409 + 0000041A 80A1 MOV.B R0,@(1,R10) + 0000041C L415: + 0000041C 1240 .DATA.W H'1240 + 0000041E 0118 .DATA.W H'0118 + 00000420 8001007C .DATA.L H'8001007C + 00000424 <00000000> .DATA.L _fire + 00000428 <00000000> .DATA.L __stoi + 0000042C <00000000> .DATA.L __stou + 00000430 42800000 .DATA.L H'42800000 + 00000434 <00000000> .DATA.L __divs + 00000438 <00000000> .DATA.L __subs + 0000043C <00000000> .DATA.L __adds + 00000440 <00000000> .DATA.L __eqs + 00000444 42FE0000 .DATA.L H'42FE0000 + 00000448 <00000000> .DATA.L __gts + 0000044C <00000000> .DATA.L __lts + 00000450 <00000000> .DATA.L __modlu + 00000454 L403: + Snow.c 190 } + Snow.c 191 else + Snow.c 192 { + Snow.c 193 drawboom(fire[x].x, fire[x].y, fire[x].boom++, fire[x].radius); + 00000454 57B4 MOV.L @(16,R11),R7 + 00000456 84B1 MOV.B @(1,R11),R0 + 00000458 D548 MOV.L L420+2,R5 ; __stoi + 0000045A 7001 ADD #1,R0 + 0000045C 80B1 MOV.B R0,@(1,R11) + 0000045E 70FF ADD #-1,R0 + 00000460 6603 MOV R0,R6 + 00000462 450B JSR @R5 + 00000464 50B2 MOV.L @(8,R11),R0 + 00000466 650E EXTS.B R0,R5 + 00000468 D445 MOV.L L420+6,R4 ; __stou + 0000046A 440B JSR @R4 + 0000046C 50B3 MOV.L @(12,R11),R0 + 0000046E BEBA BSR _drawboom + 00000470 640C EXTU.B R0,R4 + Snow.c 194 if(fire[x].boom >= (random(0) % 16) + 16) + 00000472 84B1 MOV.B @(1,R11),R0 + 00000474 2F06 MOV.L R0,@-R15 + 00000476 BDC3 BSR _random + 00000478 E400 MOV #0,R4 + 0000047A 2089 AND R8,R0 + 0000047C 62F6 MOV.L @R15+,R2 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 15 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 0000047E 7010 ADD #16,R0 + 00000480 3202 CMP/HS R0,R2 + 00000482 8B49 BF L409 + Snow.c 195 fire[x].active = 0; + 00000484 51F1 MOV.L @(4,R15),R1 + 00000486 A047 BRA L409 + 00000488 2190 MOV.B R9,@R1 + 0000048A L402: + Snow.c 196 } + Snow.c 197 } + Snow.c 198 else + Snow.c 199 { + Snow.c 200 if(random(0) % 32 == 0) + 0000048A BDB9 BSR _random + 0000048C E400 MOV #0,R4 + 0000048E C81F TST #31,R0 + 00000490 8B42 BF L409 + Snow.c 201 { + Snow.c 202 fire[x].active = 1; + 00000492 E201 MOV #1,R2 + 00000494 2C20 MOV.B R2,@R12 + Snow.c 203 fire[x].x = random(0) % 128; + 00000496 BDB3 BSR _random + 00000498 E400 MOV #0,R4 + 0000049A D23A MOV.L L420+10,R2 ; __utos + 0000049C 420B JSR @R2 + 0000049E C97F AND #127,R0 + 000004A0 1C03 MOV.L R0,@(12,R12) + Snow.c 204 fire[x].dirx = (random(0) % 20) / 10.0 - 1.0; + 000004A2 7FF0 ADD #-16,R15 + 000004A4 BDAC BSR _random + 000004A6 E400 MOV #0,R4 + 000004A8 D237 MOV.L L420+14,R2 ; __modlu + 000004AA 6103 MOV R0,R1 + 000004AC 420B JSR @R2 + 000004AE E014 MOV #20,R0 + 000004B0 D336 MOV.L L420+18,R3 ; __utod + 000004B2 7FF8 ADD #-8,R15 + 000004B4 430B JSR @R3 + 000004B6 2FF6 MOV.L R15,@-R15 + 000004B8 D136 MOV.L L420+26,R1 ; __divdr + 000004BA E200 MOV #0,R2 + 000004BC 2F26 MOV.L R2,@-R15 + 000004BE D234 MOV.L L420+22,R2 ; H'40240000 + 000004C0 2F26 MOV.L R2,@-R15 + 000004C2 63F3 MOV R15,R3 + 000004C4 7310 ADD #16,R3 + 000004C6 410B JSR @R1 + 000004C8 2F36 MOV.L R3,@-R15 + 000004CA E200 MOV #0,R2 + 000004CC D133 MOV.L L420+34,R1 ; __addd + 000004CE 2F26 MOV.L R2,@-R15 + 000004D0 D231 MOV.L L420+30,R2 ; H'BFF00000 + 000004D2 2F26 MOV.L R2,@-R15 + 000004D4 63F3 MOV R15,R3 + 000004D6 7310 ADD #16,R3 + 000004D8 410B JSR @R1 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 16 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000004DA 2F36 MOV.L R3,@-R15 + 000004DC D230 MOV.L L420+38,R2 ; __dtos + 000004DE 420B JSR @R2 + 000004E0 0009 NOP + 000004E2 1C01 MOV.L R0,@(4,R12) + Snow.c 205 fire[x].y = 64; + 000004E4 D32F MOV.L L420+42,R3 ; H'42800000 + Snow.c 206 fire[x].boom = 0; + 000004E6 6093 MOV R9,R0 + 000004E8 1C32 MOV.L R3,@(8,R12) + 000004EA 80C1 MOV.B R0,@(1,R12) + Snow.c 207 fire[x].radius = P2I / ((random(0) % 16) + 8); + 000004EC D32E MOV.L L420+46,R3 ; H'5474A168 + 000004EE 7FF8 ADD #-8,R15 + 000004F0 2F36 MOV.L R3,@-R15 + 000004F2 D32E MOV.L L420+50,R3 ; H'401921FB + 000004F4 2F36 MOV.L R3,@-R15 + 000004F6 BD83 BSR _random + 000004F8 E400 MOV #0,R4 + 000004FA 2089 AND R8,R0 + 000004FC D323 MOV.L L420+18,R3 ; __utod + 000004FE 7FF8 ADD #-8,R15 + 00000500 7008 ADD #8,R0 + 00000502 430B JSR @R3 + 00000504 2FF6 MOV.L R15,@-R15 + 00000506 62F3 MOV R15,R2 + 00000508 D122 MOV.L L420+26,R1 ; __divdr + 0000050A 7210 ADD #16,R2 + 0000050C 410B JSR @R1 + 0000050E 2F26 MOV.L R2,@-R15 + 00000510 D323 MOV.L L420+38,R3 ; __dtos + 00000512 430B JSR @R3 + 00000514 0009 NOP + 00000516 1C04 MOV.L R0,@(16,R12) + 00000518 L409: + 00000518 62F0 MOV.B @R15,R2 + 0000051A 7CEC ADD #-20,R12 + 0000051C 72FF ADD #-1,R2 + 0000051E 2F20 MOV.B R2,@R15 + 00000520 53F1 MOV.L @(4,R15),R3 + 00000522 622C EXTU.B R2,R2 + 00000524 73EC ADD #-20,R3 + 00000526 4215 CMP/PL R2 + 00000528 1F31 MOV.L R3,@(4,R15) + 0000052A 8F02 BF/S L421 + 0000052C 7BEC ADD #-20,R11 + 0000052E AF1C BRA L401 + 00000530 0009 NOP + 00000532 L421: + 00000532 L400: + Snow.c 208 } + Snow.c 209 } + Snow.c 210 } + Snow.c 211 } + Snow.c 212 + Snow.c 213 Alpha_GetData('A',variable); + 00000532 E700 MOV #0,R7 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 17 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000534 D51F MOV.L L420+58,R5 ; _variable + 00000536 6673 MOV R7,R6 + 00000538 D21D MOV.L L420+54,R2 ; _iSysCallFuncPtr + 0000053A 6322 MOV.L @R2,R3 + 0000053C 911D MOV.W L420,R1 ; H'04DF + 0000053E 2F16 MOV.L R1,@-R15 + 00000540 430B JSR @R3 + 00000542 E441 MOV #65,R4 + Snow.c 214 if(variable[0]) + 00000544 D31B MOV.L L420+58,R3 ; _variable + 00000546 6230 MOV.B @R3,R2 + 00000548 2228 TST R2,R2 + 0000054A 8D0C BT/S L411 + 0000054C 7F04 ADD #4,R15 + Snow.c 215 { + Snow.c 216 KillTimer(1); + 0000054E E401 MOV #1,R4 + 00000550 D219 MOV.L L420+62,R2 ; _KillTimer + 00000552 7F08 ADD #8,R15 + 00000554 4F26 LDS.L @R15+,PR + 00000556 68F6 MOV.L @R15+,R8 + 00000558 69F6 MOV.L @R15+,R9 + 0000055A 6AF6 MOV.L @R15+,R10 + 0000055C 6BF6 MOV.L @R15+,R11 + 0000055E 6CF6 MOV.L @R15+,R12 + 00000560 6DF6 MOV.L @R15+,R13 + 00000562 422B JMP @R2 + 00000564 6EF6 MOV.L @R15+,R14 + 00000566 L411: + Snow.c 217 } + Snow.c 218 } + 00000566 7F08 ADD #8,R15 + 00000568 4F26 LDS.L @R15+,PR + 0000056A 68F6 MOV.L @R15+,R8 + 0000056C 69F6 MOV.L @R15+,R9 + 0000056E 6AF6 MOV.L @R15+,R10 + 00000570 6BF6 MOV.L @R15+,R11 + 00000572 6CF6 MOV.L @R15+,R12 + 00000574 6DF6 MOV.L @R15+,R13 + 00000576 000B RTS + 00000578 6EF6 MOV.L @R15+,R14 + 0000057A L420: + 0000057A 04DF .DATA.W H'04DF + 0000057C <00000000> .DATA.L __stoi + 00000580 <00000000> .DATA.L __stou + 00000584 <00000000> .DATA.L __utos + 00000588 <00000000> .DATA.L __modlu + 0000058C <00000000> .DATA.L __utod + 00000590 40240000 .DATA.L H'40240000 + 00000594 <00000000> .DATA.L __divdr + 00000598 BFF00000 .DATA.L H'BFF00000 + 0000059C <00000000> .DATA.L __addd + 000005A0 <00000000> .DATA.L __dtos + 000005A4 42800000 .DATA.L H'42800000 + 000005A8 5474A168 .DATA.L H'5474A168 + 000005AC 401921FB .DATA.L H'401921FB + 000005B0 <00000000> .DATA.L _iSysCallFuncPtr + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 18 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000005B4 <00000000> .DATA.L _variable + 000005B8 <00000000> .DATA.L _KillTimer + Snow.c 219 + Snow.c 220 int AddIn_main(int isAppli, unsigned short OptionNum) + 000005BC _AddIn_main: ; function: AddIn_main + ; frame size=24 + ; used runtime library name: + ; __slow_mvn + 000005BC 2FE6 MOV.L R14,@-R15 + 000005BE 2FD6 MOV.L R13,@-R15 + 000005C0 4F22 STS.L PR,@-R15 + 000005C2 7FF8 ADD #-8,R15 + Snow.c 221 { + Snow.c 222 unsigned int key; + Snow.c 223 unsigned char text[3] = {0xE6, 0x91, 0}; + 000005C4 D22C MOV.L L422+4,R2 ; L343 + 000005C6 61F3 MOV R15,R1 + 000005C8 D32C MOV.L L422+8,R3 ; __slow_mvn + 000005CA 7104 ADD #4,R1 + 000005CC 430B JSR @R3 + 000005CE E003 MOV #3,R0 + Snow.c 224 random(RTC_GetTicks()); + 000005D0 D12B MOV.L L422+12,R1 ; _RTC_GetTicks + 000005D2 410B JSR @R1 + 000005D4 0009 NOP + 000005D6 BD13 BSR _random + 000005D8 6403 MOV R0,R4 + Snow.c 225 vram = Disp_GetVRAMPtr(); + 000005DA D22A MOV.L L422+16,R2 ; _Disp_GetVRAMPtr + 000005DC 420B JSR @R2 + 000005DE 0009 NOP + 000005E0 D329 MOV.L L422+20,R3 ; _vram + Snow.c 226 Alpha_ClearAll(); + 000005E2 E700 MOV #0,R7 + 000005E4 D129 MOV.L L422+24,R1 ; _iSysCallFuncPtr + 000005E6 6673 MOV R7,R6 + 000005E8 2302 MOV.L R0,@R3 + 000005EA 6573 MOV R7,R5 + 000005EC 6212 MOV.L @R1,R2 + 000005EE 9341 MOV.W L422,R3 ; H'04E1 + 000005F0 2F36 MOV.L R3,@-R15 + 000005F2 420B JSR @R2 + 000005F4 6473 MOV R7,R4 + Snow.c 227 AllClr_VRAM(); + 000005F6 D226 MOV.L L422+28,R2 ; _AllClr_VRAM + 000005F8 420B JSR @R2 + 000005FA 0009 NOP + Snow.c 228 locate(3,3); + 000005FC DE25 MOV.L L422+32,R14; _locate + 000005FE E503 MOV #3,R5 + 00000600 4E0B JSR @R14 + 00000602 6453 MOV R5,R4 + Snow.c 229 Print(&"~*| Firework |*~"); + 00000604 DD24 MOV.L L422+36,R13; _Print + 00000606 D425 MOV.L L422+40,R4 ; L347 + 00000608 4D0B JSR @R13 + 0000060A 0009 NOP + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 19 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Snow.c 230 locate(4,1); + 0000060C E501 MOV #1,R5 + 0000060E 4E0B JSR @R14 + 00000610 E404 MOV #4,R4 + Snow.c 231 Print(&"(C) by Casimo"); + 00000612 D423 MOV.L L422+44,R4 ; L348 + 00000614 4D0B JSR @R13 + 00000616 0009 NOP + Snow.c 232 locate(4,5); + 00000618 E505 MOV #5,R5 + 0000061A 4E0B JSR @R14 + 0000061C E404 MOV #4,R4 + Snow.c 233 Print(&"press any key"); + 0000061E D421 MOV.L L422+48,R4 ; L349 + 00000620 4D0B JSR @R13 + 00000622 0009 NOP + Snow.c 234 locate(6,6); + 00000624 E506 MOV #6,R5 + 00000626 4E0B JSR @R14 + 00000628 6453 MOV R5,R4 + Snow.c 235 Print(&"to start"); + 0000062A D41F MOV.L L422+52,R4 ; L350 + 0000062C 4D0B JSR @R13 + 0000062E 0009 NOP + Snow.c 236 locate(4,8); + 00000630 E508 MOV #8,R5 + 00000632 4E0B JSR @R14 + 00000634 E404 MOV #4,R4 + Snow.c 237 Print(&"exit with 1 A"); + 00000636 D41D MOV.L L422+56,R4 ; L351 + 00000638 4D0B JSR @R13 + 0000063A 0009 NOP + Snow.c 238 locate(15,8); + 0000063C E508 MOV #8,R5 + 0000063E 4E0B JSR @R14 + 00000640 E40F MOV #15,R4 + Snow.c 239 Print(&text); + 00000642 64F3 MOV R15,R4 + 00000644 4D0B JSR @R13 + 00000646 7408 ADD #8,R4 + Snow.c 240 display_vram(); + 00000648 BE1D BSR _display_vram + 0000064A 0009 NOP + Snow.c 241 GetKey(&key); + 0000064C D218 MOV.L L422+60,R2 ; _GetKey + 0000064E 64F3 MOV R15,R4 + 00000650 420B JSR @R2 + 00000652 7404 ADD #4,R4 + Snow.c 242 Timer_Install(6, &snowtimer, 300); + 00000654 960F MOV.W L422+2,R6 ; H'012C + 00000656 D517 MOV.L L422+64,R5 ; _snowtimer + 00000658 D317 MOV.L L422+68,R3 ; _Timer_Install + 0000065A 430B JSR @R3 + 0000065C E406 MOV #6,R4 + Snow.c 243 Timer_Start(6); + 0000065E D217 MOV.L L422+72,R2 ; _Timer_Start + 00000660 420B JSR @R2 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 20 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000662 E406 MOV #6,R4 + Snow.c 244 App_PROG(); + 00000664 D316 MOV.L L422+76,R3 ; _App_PROG + 00000666 430B JSR @R3 + 00000668 0009 NOP + Snow.c 245 } + 0000066A 7F0C ADD #12,R15 + 0000066C 4F26 LDS.L @R15+,PR + 0000066E 6DF6 MOV.L @R15+,R13 + 00000670 000B RTS + 00000672 6EF6 MOV.L @R15+,R14 + 00000674 L422: + 00000674 04E1 .DATA.W H'04E1 + 00000676 012C .DATA.W H'012C + 00000678 <00000000> .DATA.L L343 + 0000067C <00000000> .DATA.L __slow_mvn + 00000680 <00000000> .DATA.L _RTC_GetTicks + 00000684 <00000000> .DATA.L _Disp_GetVRAMPtr + 00000688 <00000000> .DATA.L _vram + 0000068C <00000000> .DATA.L _iSysCallFuncPtr + 00000690 <00000000> .DATA.L _AllClr_VRAM + 00000694 <00000000> .DATA.L _locate + 00000698 <00000000> .DATA.L _Print + 0000069C <00000000> .DATA.L L347 + 000006A0 <00000000> .DATA.L L348 + 000006A4 <00000000> .DATA.L L349 + 000006A8 <00000000> .DATA.L L350 + 000006AC <00000000> .DATA.L L351 + 000006B0 <00000000> .DATA.L _GetKey + 000006B4 <00000000> .DATA.L _snowtimer + 000006B8 <00000000> .DATA.L _Timer_Install + 000006BC <00000000> .DATA.L _Timer_Start + 000006C0 <00000000> .DATA.L _App_PROG + Snow.c 246 + Snow.c 247 #pragma section _BR_Size + Snow.c 248 unsigned long BR_Size; + Snow.c 249 #pragma section + Snow.c 250 #pragma section _TOP + Snow.c 251 int InitializeSystem(int isAppli, unsigned short OptionNum) +P_T 00000000 _InitializeSystem: ; function: InitializeSystem + ; frame size=4 + Snow.c 252 {return INIT_ADDIN_APPLICATION(isAppli, OptionNum);} + 00000000 D303 MOV.L L423+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 L423: + 0000000E 0000 .DATA.W 0 + 00000010 <00000000> .DATA.L _INIT_ADDIN_APPLICATION + Snow.c 253 #pragma section + Snow.c 254 +C 00000000 _SysCallWrapper: ; static: SysCallWrapper + 00000000 D201422B60 .DATA.L H'D201422B,H'60F20000,H'80010070 + F200008001 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 21 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 0070 + 0000000C _sprite: ; static: sprite + 0000000C 0001000101 .DATA.B H'00,H'01,H'00,H'01,H'01,H'01,H'01,H'00,H'01,H'01,H'00,H'01,H'01,H'00,H'01,H'01, + 0101000101 + H'01,H'01,H'00,H'00,H'01,H'00,H'00,H'01,H'00,H'00,H'01 + 0001010001 + 0101010000 + 0100000100 + 0001 + 00000027 L343: + 00000027 E69100 .DATA.B H'E6,H'91,H'00 + 0000002A 00000002 .RES.W 1 + 0000002C L347: + 0000002C 7E2A7C2046 .SDATA "~*| Firework |*~" + 697265776F + 726B207C2A + 7E + 0000003C 00 .DATA.B H'00 + 0000003D 00000001 .RES.B 1 + 0000003E 00000002 .RES.W 1 + 00000040 L348: + 00000040 2843292062 .SDATA "(C) by Casimo" + 7920436173 + 696D6F + 0000004D 00 .DATA.B H'00 + 0000004E 00000002 .RES.W 1 + 00000050 L349: + 00000050 7072657373 .SDATA "press any key" + 20616E7920 + 6B6579 + 0000005D 00 .DATA.B H'00 + 0000005E 00000002 .RES.W 1 + 00000060 L350: + 00000060 746F207374 .SDATA "to start" + 617274 + 00000068 00 .DATA.B H'00 + 00000069 00000001 .RES.B 1 + 0000006A 00000002 .RES.W 1 + 0000006C L351: + 0000006C 6578697420 .SDATA "exit with 1 A" + 7769746820 + 312041 + 00000079 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 _fire: ; static: fire + 00000004 0000012C .RES.L 75 +B_B 00000000 _BR_Size: ; static: BR_Size + 00000000 00000004 .RES.L 1 + + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 1 + + +******** STATISTICS INFORMATION ******** + + +********** ERROR INFORMATION *********** + +NUMBER OF ERRORS: 0 +NUMBER OF WARNINGS: 0 + + + + +******* SOURCE LINE INFORMATION ******** + +COMPILED SOURCE LINE: 254 + + + +******* SECTION SIZE INFORMATION ******* + +PROGRAM SECTION (P): 000006C4 Byte(s) +PROGRAM SECTION (P_BR_Size): 00000000 Byte(s) +PROGRAM SECTION (P_TOP): 00000014 Byte(s) +CONSTANT SECTION (C): 0000007A 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): 00000130 Byte(s) +BSS SECTION (B_BR_Size): 00000004 Byte(s) +BSS SECTION (B_TOP): 00000000 Byte(s) + + TOTAL PROGRAM SIZE: 000008A6 Byte(s) + + + +********** LABEL INFORMATION *********** + +NUMBER OF EXTERNAL REFERENCE SYMBOLS: 33 +NUMBER OF EXTERNAL DEFINITION SYMBOLS: 17 +NUMBER OF INTERNAL/EXTERNAL SYMBOLS: 101 + + + + + + + + + + + + + + + + + + + + + + +*** COMMAND PARAMETER *** + + + -subcommand=C:\Users\Timo\AppData\Local\Temp\hmk3709.tmp + -- cgit v1.3.1