798 lines
37 KiB
Plaintext
Executable File
798 lines
37 KiB
Plaintext
Executable File
SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Sep-2013 10:33:41 PAGE 1
|
|
|
|
************ OBJECT LISTING ************
|
|
|
|
FILE NAME: C:\Documents and Settings\Papa_2\Bureau\FruitNinja\FruitNinja\FruitNin.c
|
|
|
|
SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
|
|
|
|
FruitNin.c 1 /*****************************************************************/
|
|
FruitNin.c 2 /* */
|
|
FruitNin.c 3 /* CASIO fx-9860G SDK Library */
|
|
FruitNin.c 4 /* */
|
|
FruitNin.c 5 /* File name : FruitNin.c */
|
|
FruitNin.c 6 /* */
|
|
FruitNin.c 7 /* Copyright (c) 2006 CASIO COMPUTER CO., LTD. */
|
|
FruitNin.c 8 /* */
|
|
FruitNin.c 9 /*****************************************************************/
|
|
FruitNin.c 10 #include "fxlib.h"
|
|
FruitNin.c 11 #include "MonochromeLib.h"
|
|
FruitNin.c 12 #include "TouchLib.h"
|
|
FruitNin.c 13 #include "moteur.h"
|
|
FruitNin.c 14
|
|
FruitNin.c 15 #define __KEYBIOS_H__
|
|
FruitNin.c 16 #include "fxlib.h"
|
|
FruitNin.c 17 #define KEY_CHAR_0 71
|
|
FruitNin.c 18 #define KEY_CHAR_1 72
|
|
FruitNin.c 19 #define KEY_CHAR_2 62
|
|
FruitNin.c 20 #define KEY_CHAR_3 52
|
|
FruitNin.c 21 #define KEY_CHAR_4 73
|
|
FruitNin.c 22 #define KEY_CHAR_5 63
|
|
FruitNin.c 23 #define KEY_CHAR_6 53
|
|
FruitNin.c 24 #define KEY_CHAR_7 74
|
|
FruitNin.c 25 #define KEY_CHAR_8 64
|
|
FruitNin.c 26 #define KEY_CHAR_9 54
|
|
FruitNin.c 27 #define KEY_CHAR_DP 61
|
|
FruitNin.c 28 #define KEY_CHAR_EXP 51
|
|
FruitNin.c 29 #define KEY_CHAR_PMINUS 41
|
|
FruitNin.c 30 #define KEY_CHAR_PLUS 42
|
|
FruitNin.c 31 #define KEY_CHAR_MINUS 32
|
|
FruitNin.c 32 #define KEY_CHAR_MULT 43
|
|
FruitNin.c 33 #define KEY_CHAR_DIV 33
|
|
FruitNin.c 34 #define KEY_CHAR_FRAC 75
|
|
FruitNin.c 35 #define KEY_CHAR_LPAR 55
|
|
FruitNin.c 36 #define KEY_CHAR_RPAR 45
|
|
FruitNin.c 37 #define KEY_CHAR_COMMA 35
|
|
FruitNin.c 38 #define KEY_CHAR_STORE 25
|
|
FruitNin.c 39 #define KEY_CHAR_LOG 66
|
|
FruitNin.c 40 #define KEY_CHAR_LN 56
|
|
FruitNin.c 41 #define KEY_CHAR_SIN 46
|
|
FruitNin.c 42 #define KEY_CHAR_COS 36
|
|
FruitNin.c 43 #define KEY_CHAR_TAN 26
|
|
FruitNin.c 44 #define KEY_CHAR_SQUARE 67
|
|
FruitNin.c 45 #define KEY_CHAR_POW 57
|
|
FruitNin.c 46 #define KEY_CTRL_EXE 31
|
|
FruitNin.c 47 #define KEY_CTRL_DEL 44
|
|
FruitNin.c 48 #define KEY_CTRL_AC 32
|
|
FruitNin.c 49 #define KEY_CTRL_FD 65
|
|
FruitNin.c 50 #define KEY_CTRL_EXIT 47
|
|
FruitNin.c 51 #define KEY_CTRL_SHIFT 78
|
|
FruitNin.c 52 #define KEY_CTRL_ALPHA 77
|
|
FruitNin.c 53 #define KEY_CTRL_OPTN 68
|
|
FruitNin.c 54 #define KEY_CTRL_VARS 58
|
|
|
|
|
|
|
|
|
|
SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Sep-2013 10:33:41 PAGE 2
|
|
|
|
|
|
SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
|
|
|
|
FruitNin.c 55 #define KEY_CTRL_UP 28
|
|
FruitNin.c 56 #define KEY_CTRL_DOWN 37
|
|
FruitNin.c 57 #define KEY_CTRL_LEFT 38
|
|
FruitNin.c 58 #define KEY_CTRL_RIGHT 27
|
|
FruitNin.c 59 #define KEY_CTRL_F1 79
|
|
FruitNin.c 60 #define KEY_CTRL_F2 69
|
|
FruitNin.c 61 #define KEY_CTRL_F3 59
|
|
FruitNin.c 62 #define KEY_CTRL_F4 49
|
|
FruitNin.c 63 #define KEY_CTRL_F5 39
|
|
FruitNin.c 64 #define KEY_CTRL_F6 29
|
|
FruitNin.c 65 #define KEY_CTRL_MENU 48
|
|
FruitNin.c 66 #ifndef OS2Change
|
|
FruitNin.c 67 #define OS2Change
|
|
FruitNin.c 68 #ifndef OS2Change_GetOS2
|
|
FruitNin.c 69 #define OS2Change_GetOS2
|
|
FruitNin.c 70 typedef int(*sc_i2cp2sip)(char*, char*, short int*, short int*);
|
|
FruitNin.c 71 const unsigned int sc0015[] = { 0xD201D002, 0x422B0009, 0x80010070, 0x0015 };
|
|
FruitNin.c 72 #define GlibGetOSVersionInfo (*(sc_i2cp2sip)sc0015)
|
|
FruitNin.c 73 int OSVersionAsInt(void)
|
|
P 00000000 _OSVersionAsInt: ; function: OSVersionAsInt
|
|
; frame size=20
|
|
00000000 4F22 STS.L PR,@-R15
|
|
00000002 7FF0 ADD #-16,R15
|
|
FruitNin.c 74 {
|
|
FruitNin.c 75 unsigned char mainversion;
|
|
FruitNin.c 76 unsigned char minorversion;
|
|
FruitNin.c 77 unsigned short release;
|
|
FruitNin.c 78 unsigned short build;
|
|
FruitNin.c 79 GlibGetOSVersionInfo( &mainversion, &minorversion, &release, &build );
|
|
00000004 D346 MOV.L L449+6,R3 ; _sc0015
|
|
00000006 67F3 MOV R15,R7
|
|
00000008 770C ADD #12,R7
|
|
0000000A 66F3 MOV R15,R6
|
|
0000000C 7608 ADD #8,R6
|
|
0000000E 65F3 MOV R15,R5
|
|
00000010 7504 ADD #4,R5
|
|
00000012 430B JSR @R3
|
|
00000014 64F3 MOV R15,R4
|
|
FruitNin.c 80 return ( ( mainversion << 24 ) & 0xFF000000 ) | ( ( minorversion << 16 ) & 0x00FF0000 ) | ( release & 0x00
|
|
+00FFFF );
|
|
00000016 60F0 MOV.B @R15,R0
|
|
00000018 D342 MOV.L L449+10,R3 ; H'FF000000
|
|
0000001A 600C EXTU.B R0,R0
|
|
0000001C D242 MOV.L L449+14,R2 ; H'00FF0000
|
|
0000001E 4028 SHLL16 R0
|
|
00000020 4018 SHLL8 R0
|
|
00000022 2039 AND R3,R0
|
|
00000024 6103 MOV R0,R1
|
|
00000026 84F4 MOV.B @(4,R15),R0
|
|
00000028 600C EXTU.B R0,R0
|
|
0000002A 4028 SHLL16 R0
|
|
0000002C 2029 AND R2,R0
|
|
0000002E 201B OR R1,R0
|
|
00000030 6103 MOV R0,R1
|
|
00000032 85F4 MOV.W @(8,R15),R0
|
|
00000034 600D EXTU.W R0,R0
|
|
FruitNin.c 81 }
|
|
|
|
|
|
|
|
|
|
SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Sep-2013 10:33:41 PAGE 3
|
|
|
|
|
|
SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
|
|
|
|
00000036 7F10 ADD #16,R15
|
|
00000038 4F26 LDS.L @R15+,PR
|
|
0000003A 000B RTS
|
|
0000003C 201B OR R1,R0
|
|
FruitNin.c 82 #define isOS2 (OSVersionAsInt() >= 0x02020000)
|
|
FruitNin.c 83 #define OS2(x,y) ((OSVersionAsInt() >= 0x02020000)?y:x)
|
|
FruitNin.c 84 #endif
|
|
FruitNin.c 85 #ifndef OS2Change_Keyboard
|
|
FruitNin.c 86 #define OS2Change_Keyboard
|
|
FruitNin.c 87 void delay(void)
|
|
0000003E _delay: ; function: delay
|
|
; frame size=0
|
|
FruitNin.c 88 {
|
|
FruitNin.c 89 char i;
|
|
FruitNin.c 90 for (i=0; i<5; i++){};
|
|
0000003E E505 MOV #5,R5
|
|
00000040 E400 MOV #0,R4
|
|
00000042 L424:
|
|
00000042 7401 ADD #1,R4
|
|
00000044 634E EXTS.B R4,R3
|
|
00000046 3353 CMP/GE R5,R3
|
|
00000048 8BFB BF L424
|
|
FruitNin.c 91 }
|
|
0000004A 000B RTS
|
|
0000004C 0009 NOP
|
|
FruitNin.c 92 unsigned char CheckKeyRow(unsigned char code)
|
|
0000004E _CheckKeyRow: ; function: CheckKeyRow
|
|
; frame size=32
|
|
FruitNin.c 93 {
|
|
FruitNin.c 94 unsigned char result=0;
|
|
FruitNin.c 95 short*PORTB_CTRL=(void*)0xA4000102;
|
|
FruitNin.c 96 short*PORTM_CTRL=(void*)0xA4000118;
|
|
FruitNin.c 97 char*PORTB=(void*)0xA4000122;
|
|
FruitNin.c 98 char*PORTM=(void*)0xA4000138;
|
|
FruitNin.c 99 char*PORTA=(void*)0xA4000120;
|
|
FruitNin.c 100 short smask;
|
|
FruitNin.c 101 char cmask;
|
|
FruitNin.c 102 unsigned char column, row;
|
|
FruitNin.c 103 column = code>>4;
|
|
0000004E 634C EXTU.B R4,R3
|
|
00000050 2FE6 MOV.L R14,@-R15
|
|
FruitNin.c 104 row = code &0x0F;
|
|
00000052 E50F MOV #15,R5
|
|
00000054 2FD6 MOV.L R13,@-R15
|
|
00000056 4309 SHLR2 R3
|
|
00000058 2FC6 MOV.L R12,@-R15
|
|
0000005A 2549 AND R4,R5
|
|
0000005C 2FB6 MOV.L R11,@-R15
|
|
0000005E 4309 SHLR2 R3
|
|
00000060 2FA6 MOV.L R10,@-R15
|
|
FruitNin.c 105 smask = 0x0003 << (( row %8)*2);
|
|
00000062 665C EXTU.B R5,R6
|
|
00000064 2F96 MOV.L R9,@-R15
|
|
00000066 6063 MOV R6,R0
|
|
00000068 4F22 STS.L PR,@-R15
|
|
0000006A 4011 CMP/PZ R0
|
|
0000006C 7FFC ADD #-4,R15
|
|
|
|
|
|
|
|
|
|
SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Sep-2013 10:33:41 PAGE 4
|
|
|
|
|
|
SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
|
|
|
|
0000006E 2F30 MOV.B R3,@R15
|
|
00000070 8B01 BF L425
|
|
00000072 A005 BRA L426
|
|
00000074 C907 AND #7,R0
|
|
00000076 L425:
|
|
00000076 6007 NOT R0,R0
|
|
00000078 7001 ADD #1,R0
|
|
0000007A C907 AND #7,R0
|
|
0000007C 6007 NOT R0,R0
|
|
0000007E 7001 ADD #1,R0
|
|
00000080 L426:
|
|
FruitNin.c 106 cmask = ~( 1 << ( row %8) );
|
|
FruitNin.c 107 if(row <8)
|
|
00000080 994B MOV.W L449,R9 ; H'AAAA
|
|
00000082 E208 MOV #8,R2
|
|
00000084 DB29 MOV.L L449+18,R11; H'A4000102
|
|
00000086 6403 MOV R0,R4
|
|
00000088 9D48 MOV.W L449+2,R13 ; H'FF00
|
|
0000008A E503 MOV #3,R5
|
|
0000008C DE28 MOV.L L449+22,R14; H'A4000118
|
|
0000008E EA01 MOV #1,R10
|
|
00000090 4000 SHLL R0
|
|
00000092 450C SHAD R0,R5
|
|
00000094 4A4C SHAD R4,R10
|
|
00000096 6AA7 NOT R10,R10
|
|
00000098 6CB3 MOV R11,R12
|
|
0000009A 3623 CMP/GE R2,R6
|
|
0000009C 8D0D BT/S L427
|
|
0000009E 7C36 ADD #54,R12
|
|
FruitNin.c 108 {
|
|
FruitNin.c 109 *PORTB_CTRL = 0xAAAA ^ smask;
|
|
000000A0 259A XOR R9,R5
|
|
000000A2 2B51 MOV.W R5,@R11
|
|
FruitNin.c 110 *PORTM_CTRL = (*PORTM_CTRL & 0xFF00 ) | 0x00AA;
|
|
000000A4 60E1 MOV.W @R14,R0
|
|
000000A6 20D9 AND R13,R0
|
|
000000A8 CBAA OR #170,R0
|
|
FruitNin.c 111 delay();
|
|
000000AA BFC8 BSR _delay
|
|
000000AC 2E01 MOV.W R0,@R14
|
|
FruitNin.c 112 *PORTB = cmask;
|
|
000000AE D221 MOV.L L449+26,R2 ; H'A4000122
|
|
000000B0 22A0 MOV.B R10,@R2
|
|
FruitNin.c 113 *PORTM = (*PORTM & 0xF0 ) | 0x0F;
|
|
000000B2 60C0 MOV.B @R12,R0
|
|
000000B4 C9F0 AND #240,R0
|
|
000000B6 A00D BRA L448
|
|
000000B8 CB0F OR #15,R0
|
|
000000BA L427:
|
|
FruitNin.c 114 }
|
|
FruitNin.c 115 else
|
|
FruitNin.c 116 {
|
|
FruitNin.c 117 *PORTB_CTRL = 0xAAAA;
|
|
000000BA 2B91 MOV.W R9,@R11
|
|
FruitNin.c 118 *PORTM_CTRL = ((*PORTM_CTRL & 0xFF00 ) | 0x00AA) ^ smask;
|
|
000000BC 60E1 MOV.W @R14,R0
|
|
000000BE 20D9 AND R13,R0
|
|
|
|
|
|
|
|
|
|
SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Sep-2013 10:33:41 PAGE 5
|
|
|
|
|
|
SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
|
|
|
|
000000C0 CBAA OR #170,R0
|
|
000000C2 205A XOR R5,R0
|
|
FruitNin.c 119 delay();
|
|
000000C4 BFBB BSR _delay
|
|
000000C6 2E01 MOV.W R0,@R14
|
|
FruitNin.c 120 *PORTB = 0xFF;
|
|
000000C8 D31A MOV.L L449+26,R3 ; H'A4000122
|
|
000000CA E2FF MOV #-1,R2
|
|
000000CC 2320 MOV.B R2,@R3
|
|
FruitNin.c 121 *PORTM = (*PORTM & 0xF0 ) | cmask;
|
|
000000CE 60C0 MOV.B @R12,R0
|
|
000000D0 C9F0 AND #240,R0
|
|
000000D2 20AB OR R10,R0
|
|
000000D4 L448:
|
|
FruitNin.c 122 }
|
|
FruitNin.c 123
|
|
FruitNin.c 124 delay();
|
|
000000D4 BFB3 BSR _delay
|
|
000000D6 2C00 MOV.B R0,@R12
|
|
FruitNin.c 125 result = (~(*PORTA))>>column & 1;
|
|
000000D8 D317 MOV.L L449+30,R3 ; H'A4000120
|
|
000000DA 6030 MOV.B @R3,R0
|
|
000000DC 62F0 MOV.B @R15,R2
|
|
000000DE 6007 NOT R0,R0
|
|
000000E0 622C EXTU.B R2,R2
|
|
000000E2 622B NEG R2,R2
|
|
000000E4 402C SHAD R2,R0
|
|
000000E6 C901 AND #1,R0
|
|
FruitNin.c 126 delay();
|
|
000000E8 BFA9 BSR _delay
|
|
000000EA 2F00 MOV.B R0,@R15
|
|
FruitNin.c 127 *PORTB_CTRL = 0xAAAA;
|
|
000000EC 2B91 MOV.W R9,@R11
|
|
FruitNin.c 128 *PORTM_CTRL = (*PORTM_CTRL & 0xFF00 ) | 0x00AA;
|
|
000000EE 60E1 MOV.W @R14,R0
|
|
000000F0 20D9 AND R13,R0
|
|
000000F2 CBAA OR #170,R0
|
|
FruitNin.c 129 delay();
|
|
000000F4 BFA3 BSR _delay
|
|
000000F6 2E01 MOV.W R0,@R14
|
|
FruitNin.c 130 *PORTB_CTRL = 0x5555;
|
|
000000F8 9211 MOV.W L449+4,R2 ; H'5555
|
|
000000FA 2B21 MOV.W R2,@R11
|
|
FruitNin.c 131 *PORTM_CTRL = (*PORTM_CTRL & 0xFF00 ) | 0x0055;
|
|
000000FC 60E1 MOV.W @R14,R0
|
|
000000FE 20D9 AND R13,R0
|
|
00000100 CB55 OR #85,R0
|
|
FruitNin.c 132 delay();
|
|
00000102 BF9C BSR _delay
|
|
00000104 2E01 MOV.W R0,@R14
|
|
FruitNin.c 133
|
|
FruitNin.c 134 return result;
|
|
00000106 60F0 MOV.B @R15,R0
|
|
FruitNin.c 135 }
|
|
00000108 7F04 ADD #4,R15
|
|
0000010A 4F26 LDS.L @R15+,PR
|
|
0000010C 69F6 MOV.L @R15+,R9
|
|
|
|
|
|
|
|
|
|
SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Sep-2013 10:33:41 PAGE 6
|
|
|
|
|
|
SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
|
|
|
|
0000010E 6AF6 MOV.L @R15+,R10
|
|
00000110 6BF6 MOV.L @R15+,R11
|
|
00000112 6CF6 MOV.L @R15+,R12
|
|
00000114 6DF6 MOV.L @R15+,R13
|
|
00000116 000B RTS
|
|
00000118 6EF6 MOV.L @R15+,R14
|
|
0000011A L449:
|
|
0000011A AAAA .DATA.W H'AAAA
|
|
0000011C FF00 .DATA.W H'FF00
|
|
0000011E 5555 .DATA.W H'5555
|
|
00000120 <00000000> .DATA.L _sc0015
|
|
00000124 FF000000 .DATA.L H'FF000000
|
|
00000128 00FF0000 .DATA.L H'00FF0000
|
|
0000012C A4000102 .DATA.L H'A4000102
|
|
00000130 A4000118 .DATA.L H'A4000118
|
|
00000134 A4000122 .DATA.L H'A4000122
|
|
00000138 A4000120 .DATA.L H'A4000120
|
|
FruitNin.c 136
|
|
FruitNin.c 137 unsigned char KeyDown(unsigned char keycode)
|
|
0000013C _KeyDown: ; function: KeyDown
|
|
; frame size=36
|
|
; used runtime library name:
|
|
; __divls, __modls
|
|
0000013C 2FE6 MOV.L R14,@-R15
|
|
0000013E EE0A MOV #10,R14
|
|
00000140 2FD6 MOV.L R13,@-R15
|
|
00000142 4F22 STS.L PR,@-R15
|
|
FruitNin.c 138 {
|
|
FruitNin.c 139 unsigned short key[8];
|
|
FruitNin.c 140 const unsigned short* keyboardregister = (unsigned short*)0xA44B0000;
|
|
00000144 D346 MOV.L L450+2,R3 ; H'A44B0000
|
|
00000146 7FE8 ADD #-24,R15
|
|
00000148 2F40 MOV.B R4,@R15
|
|
0000014A 1F31 MOV.L R3,@(4,R15)
|
|
0000014C 6DF0 MOV.B @R15,R13
|
|
0000014E BF57 BSR _OSVersionAsInt
|
|
00000150 6DDC EXTU.B R13,R13
|
|
00000152 D244 MOV.L L450+6,R2 ; H'02020000
|
|
00000154 3023 CMP/GE R2,R0
|
|
00000156 8B26 BF L430
|
|
FruitNin.c 141 if(isOS2)
|
|
FruitNin.c 142 {
|
|
FruitNin.c 143 unsigned char row = keycode%10;
|
|
00000158 D343 MOV.L L450+10,R3 ; __modls
|
|
0000015A 61D3 MOV R13,R1
|
|
0000015C 430B JSR @R3
|
|
0000015E 60E3 MOV R14,R0
|
|
00000160 2F00 MOV.B R0,@R15
|
|
FruitNin.c 144 memcpy(key, keyboardregister, sizeof(unsigned short) << 3);
|
|
00000162 E610 MOV #16,R6
|
|
00000164 D341 MOV.L L450+14,R3 ; _memcpy
|
|
00000166 64F3 MOV R15,R4
|
|
00000168 55F1 MOV.L @(4,R15),R5
|
|
0000016A 430B JSR @R3
|
|
0000016C 7408 ADD #8,R4
|
|
FruitNin.c 145
|
|
FruitNin.c 146 return (0 != (key[row >> 1] & 1 << keycode / 10 - 1 + ((row & 1) << 3)));
|
|
|
|
|
|
|
|
|
|
SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Sep-2013 10:33:41 PAGE 7
|
|
|
|
|
|
SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
|
|
|
|
0000016E E501 MOV #1,R5
|
|
00000170 64F0 MOV.B @R15,R4
|
|
00000172 61D3 MOV R13,R1
|
|
00000174 D23E MOV.L L450+18,R2 ; __divls
|
|
00000176 644C EXTU.B R4,R4
|
|
00000178 6343 MOV R4,R3
|
|
0000017A 2359 AND R5,R3
|
|
0000017C 4308 SHLL2 R3
|
|
0000017E 4300 SHLL R3
|
|
00000180 420B JSR @R2
|
|
00000182 60E3 MOV R14,R0
|
|
00000184 330C ADD R0,R3
|
|
00000186 73FF ADD #-1,R3
|
|
00000188 6053 MOV R5,R0
|
|
0000018A 403C SHAD R3,R0
|
|
0000018C 6343 MOV R4,R3
|
|
0000018E 4321 SHAR R3
|
|
00000190 4300 SHLL R3
|
|
00000192 61F3 MOV R15,R1
|
|
00000194 7108 ADD #8,R1
|
|
00000196 331C ADD R1,R3
|
|
00000198 6231 MOV.W @R3,R2
|
|
0000019A 622D EXTU.W R2,R2
|
|
0000019C 2029 AND R2,R0
|
|
0000019E 2008 TST R0,R0
|
|
000001A0 0029 MOVT R0
|
|
000001A2 A00E BRA L432
|
|
000001A4 CA01 XOR #1,R0
|
|
000001A6 L430:
|
|
FruitNin.c 147 }
|
|
FruitNin.c 148 else
|
|
FruitNin.c 149 {
|
|
FruitNin.c 150 return CheckKeyRow((keycode % 10) + ((keycode / 10 - 1) << 4));
|
|
000001A6 61D3 MOV R13,R1
|
|
000001A8 D331 MOV.L L450+18,R3 ; __divls
|
|
000001AA 430B JSR @R3
|
|
000001AC 60E3 MOV R14,R0
|
|
000001AE 6403 MOV R0,R4
|
|
000001B0 D32D MOV.L L450+10,R3 ; __modls
|
|
000001B2 61D3 MOV R13,R1
|
|
000001B4 74FF ADD #-1,R4
|
|
000001B6 4408 SHLL2 R4
|
|
000001B8 4408 SHLL2 R4
|
|
000001BA 430B JSR @R3
|
|
000001BC 60E3 MOV R14,R0
|
|
000001BE BF46 BSR _CheckKeyRow
|
|
000001C0 340C ADD R0,R4
|
|
FruitNin.c 151 }
|
|
FruitNin.c 152 }
|
|
000001C2 L432:
|
|
000001C2 7F18 ADD #24,R15
|
|
000001C4 4F26 LDS.L @R15+,PR
|
|
000001C6 6DF6 MOV.L @R15+,R13
|
|
000001C8 000B RTS
|
|
000001CA 6EF6 MOV.L @R15+,R14
|
|
FruitNin.c 153 unsigned char GetKeyMod(unsigned int *key)
|
|
000001CC _GetKeyMod: ; function: GetKeyMod
|
|
|
|
|
|
|
|
|
|
SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Sep-2013 10:33:41 PAGE 8
|
|
|
|
|
|
SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
|
|
|
|
; frame size=20
|
|
000001CC 2FE6 MOV.L R14,@-R15
|
|
000001CE 2FD6 MOV.L R13,@-R15
|
|
000001D0 2FC6 MOV.L R12,@-R15
|
|
000001D2 4F22 STS.L PR,@-R15
|
|
FruitNin.c 154 {
|
|
FruitNin.c 155 unsigned char x, ret;
|
|
FruitNin.c 156
|
|
FruitNin.c 157 ret = GetKey(key);
|
|
000001D4 D327 MOV.L L450+22,R3 ; _GetKey
|
|
000001D6 7FFC ADD #-4,R15
|
|
000001D8 430B JSR @R3
|
|
000001DA 6C43 MOV R4,R12
|
|
000001DC 2F00 MOV.B R0,@R15
|
|
FruitNin.c 158
|
|
FruitNin.c 159 for(x = 0; x < 80; x++)
|
|
000001DE EE00 MOV #0,R14
|
|
000001E0 ED50 MOV #80,R13
|
|
000001E2 L435:
|
|
FruitNin.c 160 {
|
|
FruitNin.c 161 if(KeyDown(x))
|
|
000001E2 BFAB BSR _KeyDown
|
|
000001E4 64E3 MOV R14,R4
|
|
000001E6 600C EXTU.B R0,R0
|
|
000001E8 2008 TST R0,R0
|
|
000001EA 8902 BT L436
|
|
FruitNin.c 162 {
|
|
FruitNin.c 163 *key = x;
|
|
000001EC 6EEC EXTU.B R14,R14
|
|
FruitNin.c 164 break;
|
|
000001EE A004 BRA L434
|
|
000001F0 2CE2 MOV.L R14,@R12
|
|
000001F2 L436:
|
|
000001F2 7E01 ADD #1,R14
|
|
000001F4 62EC EXTU.B R14,R2
|
|
000001F6 32D3 CMP/GE R13,R2
|
|
000001F8 8BF3 BF L435
|
|
000001FA L434:
|
|
FruitNin.c 165 }
|
|
FruitNin.c 166 }
|
|
FruitNin.c 167 return ret;
|
|
000001FA 60F0 MOV.B @R15,R0
|
|
FruitNin.c 168 }
|
|
000001FC 7F04 ADD #4,R15
|
|
000001FE 4F26 LDS.L @R15+,PR
|
|
00000200 6CF6 MOV.L @R15+,R12
|
|
00000202 6DF6 MOV.L @R15+,R13
|
|
00000204 000B RTS
|
|
00000206 6EF6 MOV.L @R15+,R14
|
|
FruitNin.c 169 #define IsKeyDown(x) KeyDown(x)
|
|
FruitNin.c 170 #define IsKeyUp(x) !KeyDown(x)
|
|
FruitNin.c 171 #define GetKey(x) GetKeyMod(x)
|
|
FruitNin.c 172 #endif
|
|
FruitNin.c 173 #endif
|
|
FruitNin.c 174
|
|
FruitNin.c 175 //****************************************************************************
|
|
FruitNin.c 176 // AddIn_main (Sample program main function)
|
|
|
|
|
|
|
|
|
|
SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Sep-2013 10:33:41 PAGE 9
|
|
|
|
|
|
SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
|
|
|
|
FruitNin.c 177 //
|
|
FruitNin.c 178 // param : isAppli : 1 = This application is launched by MAIN MENU.
|
|
FruitNin.c 179 // : 0 = This application is launched by a strip in eACT application.
|
|
FruitNin.c 180 //
|
|
FruitNin.c 181 // OptionNum : Strip number (0~3)
|
|
FruitNin.c 182 // (This parameter is only used when isAppli parameter is 0.)
|
|
FruitNin.c 183 //
|
|
FruitNin.c 184 // retval : 1 = No error / 0 = Error
|
|
FruitNin.c 185 //
|
|
FruitNin.c 186 //****************************************************************************
|
|
FruitNin.c 187
|
|
FruitNin.c 188 int AddIn_main(int isAppli, unsigned short OptionNum)
|
|
00000208 _AddIn_main: ; function: AddIn_main
|
|
; frame size=20
|
|
00000208 2FE6 MOV.L R14,@-R15
|
|
0000020A 2FD6 MOV.L R13,@-R15
|
|
0000020C 2FC6 MOV.L R12,@-R15
|
|
0000020E 2FB6 MOV.L R11,@-R15
|
|
00000210 4F22 STS.L PR,@-R15
|
|
00000212 DB19 MOV.L L450+26,R11; _more
|
|
00000214 DC19 MOV.L L450+30,R12; _menu
|
|
00000216 DD1A MOV.L L450+34,R13; _moteur
|
|
FruitNin.c 189 {
|
|
FruitNin.c 190 int choix = 0;
|
|
FruitNin.c 191
|
|
FruitNin.c 192 //anim_Arcade(NORMAL);
|
|
FruitNin.c 193
|
|
FruitNin.c 194 while(1)
|
|
00000218 L440:
|
|
FruitNin.c 195 {
|
|
FruitNin.c 196 choix = menu();
|
|
00000218 4C0B JSR @R12
|
|
0000021A 0009 NOP
|
|
0000021C 6E03 MOV R0,R14
|
|
FruitNin.c 197
|
|
FruitNin.c 198 if(choix == 0) return 1;
|
|
0000021E 2EE8 TST R14,R14
|
|
00000220 8B01 BF L441
|
|
00000222 A016 BRA L442
|
|
00000224 E001 MOV #1,R0
|
|
00000226 L441:
|
|
FruitNin.c 199 if(choix == 1) moteur(JEU);
|
|
00000226 60E3 MOV R14,R0
|
|
00000228 8801 CMP/EQ #1,R0
|
|
0000022A 8B01 BF L443
|
|
0000022C 4D0B JSR @R13
|
|
0000022E E400 MOV #0,R4
|
|
00000230 L443:
|
|
FruitNin.c 200 if(choix == 2) moteur(ARCADE);
|
|
00000230 60E3 MOV R14,R0
|
|
00000232 8802 CMP/EQ #2,R0
|
|
00000234 8B01 BF L444
|
|
00000236 4D0B JSR @R13
|
|
00000238 E403 MOV #3,R4
|
|
0000023A L444:
|
|
FruitNin.c 201 if(choix == 3) moteur(JEU_LIBRE);
|
|
0000023A 60E3 MOV R14,R0
|
|
|
|
|
|
|
|
|
|
SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Sep-2013 10:33:41 PAGE 10
|
|
|
|
|
|
SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
|
|
|
|
0000023C 8803 CMP/EQ #3,R0
|
|
0000023E 8B01 BF L445
|
|
00000240 4D0B JSR @R13
|
|
00000242 E402 MOV #2,R4
|
|
00000244 L445:
|
|
FruitNin.c 202 if(choix == 4) more();
|
|
00000244 60E3 MOV R14,R0
|
|
00000246 8804 CMP/EQ #4,R0
|
|
00000248 8BE6 BF L440
|
|
0000024A 4B0B JSR @R11
|
|
0000024C 0009 NOP
|
|
0000024E AFE3 BRA L440
|
|
00000250 0009 NOP
|
|
00000252 L442:
|
|
FruitNin.c 203 }
|
|
FruitNin.c 204 }
|
|
00000252 4F26 LDS.L @R15+,PR
|
|
00000254 6BF6 MOV.L @R15+,R11
|
|
00000256 6CF6 MOV.L @R15+,R12
|
|
00000258 6DF6 MOV.L @R15+,R13
|
|
0000025A 000B RTS
|
|
0000025C 6EF6 MOV.L @R15+,R14
|
|
0000025E L450:
|
|
0000025E 0000 .DATA.W 0
|
|
00000260 A44B0000 .DATA.L H'A44B0000
|
|
00000264 02020000 .DATA.L H'02020000
|
|
00000268 <00000000> .DATA.L __modls
|
|
0000026C <00000000> .DATA.L _memcpy
|
|
00000270 <00000000> .DATA.L __divls
|
|
00000274 <00000000> .DATA.L _GetKey
|
|
00000278 <00000000> .DATA.L _more
|
|
0000027C <00000000> .DATA.L _menu
|
|
00000280 <00000000> .DATA.L _moteur
|
|
FruitNin.c 205
|
|
FruitNin.c 206
|
|
FruitNin.c 207
|
|
FruitNin.c 208
|
|
FruitNin.c 209 //****************************************************************************
|
|
FruitNin.c 210 //************** ****************
|
|
FruitNin.c 211 //************** Notice! ****************
|
|
FruitNin.c 212 //************** ****************
|
|
FruitNin.c 213 //************** Please do not change the following source. ****************
|
|
FruitNin.c 214 //************** ****************
|
|
FruitNin.c 215 //****************************************************************************
|
|
FruitNin.c 216
|
|
FruitNin.c 217
|
|
FruitNin.c 218 #pragma section _BR_Size
|
|
FruitNin.c 219 unsigned long BR_Size;
|
|
FruitNin.c 220 #pragma section
|
|
FruitNin.c 221
|
|
FruitNin.c 222
|
|
FruitNin.c 223 #pragma section _TOP
|
|
FruitNin.c 224
|
|
FruitNin.c 225 //****************************************************************************
|
|
FruitNin.c 226 // InitializeSystem
|
|
FruitNin.c 227 //
|
|
FruitNin.c 228 // param : isAppli : 1 = Application / 0 = eActivity
|
|
|
|
|
|
|
|
|
|
SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Sep-2013 10:33:41 PAGE 11
|
|
|
|
|
|
SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
|
|
|
|
FruitNin.c 229 // OptionNum : Option Number (only eActivity)
|
|
FruitNin.c 230 //
|
|
FruitNin.c 231 // retval : 1 = No error / 0 = Error
|
|
FruitNin.c 232 //
|
|
FruitNin.c 233 //****************************************************************************
|
|
FruitNin.c 234 int InitializeSystem(int isAppli, unsigned short OptionNum)
|
|
P_T 00000000 _InitializeSystem: ; function: InitializeSystem
|
|
; frame size=0
|
|
FruitNin.c 235 {
|
|
FruitNin.c 236 return INIT_ADDIN_APPLICATION(isAppli, OptionNum);
|
|
00000000 D301 MOV.L L451+2,R3 ; _INIT_ADDIN_APPLICATION
|
|
00000002 432B JMP @R3
|
|
00000004 0009 NOP
|
|
00000006 L451:
|
|
00000006 0000 .DATA.W 0
|
|
00000008 <00000000> .DATA.L _INIT_ADDIN_APPLICATION
|
|
FruitNin.c 237 }
|
|
FruitNin.c 238
|
|
FruitNin.c 239 #pragma section
|
|
FruitNin.c 240
|
|
C 00000000 _sc0015: ; static: sc0015
|
|
00000000 D201D00242 .DATA.L H'D201D002,H'422B0009,H'80010070,H'00000015
|
|
2B00098001
|
|
0070000000
|
|
15
|
|
B_B 00000000 _BR_Size: ; static: BR_Size
|
|
00000000 00000004 .RES.L 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Sep-2013 10:33:41 PAGE 1
|
|
|
|
|
|
******** STATISTICS INFORMATION ********
|
|
|
|
|
|
********** ERROR INFORMATION ***********
|
|
|
|
NUMBER OF ERRORS: 0
|
|
NUMBER OF WARNINGS: 53
|
|
|
|
|
|
|
|
|
|
******* SOURCE LINE INFORMATION ********
|
|
|
|
COMPILED SOURCE LINE: 240
|
|
|
|
|
|
|
|
******* SECTION SIZE INFORMATION *******
|
|
|
|
PROGRAM SECTION (P): 00000284 Byte(s)
|
|
PROGRAM SECTION (P_BR_Size): 00000000 Byte(s)
|
|
PROGRAM SECTION (P_TOP): 0000000C Byte(s)
|
|
CONSTANT SECTION (C): 00000010 Byte(s)
|
|
CONSTANT SECTION (C_BR_Size): 00000000 Byte(s)
|
|
CONSTANT SECTION (C_TOP): 00000000 Byte(s)
|
|
DATA SECTION (D): 00000000 Byte(s)
|
|
DATA SECTION (D_BR_Size): 00000000 Byte(s)
|
|
DATA SECTION (D_TOP): 00000000 Byte(s)
|
|
BSS SECTION (B): 00000000 Byte(s)
|
|
BSS SECTION (B_BR_Size): 00000004 Byte(s)
|
|
BSS SECTION (B_TOP): 00000000 Byte(s)
|
|
|
|
TOTAL PROGRAM SIZE: 000002A4 Byte(s)
|
|
|
|
|
|
|
|
********** LABEL INFORMATION ***********
|
|
|
|
NUMBER OF EXTERNAL REFERENCE SYMBOLS: 8
|
|
NUMBER OF EXTERNAL DEFINITION SYMBOLS: 9
|
|
NUMBER OF INTERNAL/EXTERNAL SYMBOLS: 36
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*** COMMAND PARAMETER ***
|
|
|
|
|
|
-subcommand=C:\DOCUME~1\Papa_2\LOCALS~1\Temp\hmkE1.tmp
|
|
|