SH SERIES C/C++ Compiler (Ver. 6.0C) 15-Nov-2012 16:22:12 PAGE 1 ************ OBJECT LISTING ************ FILE NAME: G:\Casio SDK\Projekte\Audio\Audio.c SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Audio.c 1 #include "fxlib.h" Audio.c 2 Audio.c 3 #define DATAPACK 8080 Audio.c 4 Audio.c 5 unsigned char UserStack[DATAPACK]; Audio.c 6 Audio.c 7 void Open() P 00000000 _Open: ; function: Open ; frame size=12 ; used runtime library name: ; __slow_mvn 00000000 4F22 STS.L PR,@-R15 00000002 7FF8 ADD #-8,R15 Audio.c 8 { Audio.c 9 char open_mode[6] = {0}; 00000004 D22B MOV.L L347+2,R2 ; L301 00000006 61F3 MOV R15,R1 00000008 D32B MOV.L L347+6,R3 ; __slow_mvn 0000000A 430B JSR @R3 0000000C E006 MOV #6,R0 Audio.c 10 Audio.c 11 open_mode[ 0 ] = 0; // always 0 0000000E E400 MOV #0,R4 Audio.c 12 open_mode[ 1 ] = 9; // 0=300, 1=600, 2=1200, 3=2400, 4=4800, 5=9600, 6=19200, 7=38400, 8=57600, 9= +115200 baud Audio.c 13 open_mode[ 2 ] = 0; // parity: 0=no; 1=odd; 2= even Audio.c 14 open_mode[ 3 ] = 0; // datalength: 0=8 bit; 1=7 bit Audio.c 15 open_mode[ 4 ] = 0; // stop bits: 0=one; 1=two Audio.c 16 open_mode[ 5 ] = 0; // always 0 Audio.c 17 Audio.c 18 Serial_Open( &open_mode ); 00000010 D32A MOV.L L347+10,R3 ; _Serial_Open 00000012 E009 MOV #9,R0 00000014 2F40 MOV.B R4,@R15 00000016 80F1 MOV.B R0,@(1,R15) 00000018 6043 MOV R4,R0 0000001A 80F2 MOV.B R0,@(2,R15) 0000001C 6043 MOV R4,R0 0000001E 80F3 MOV.B R0,@(3,R15) 00000020 6043 MOV R4,R0 00000022 80F4 MOV.B R0,@(4,R15) 00000024 6043 MOV R4,R0 00000026 80F5 MOV.B R0,@(5,R15) 00000028 430B JSR @R3 0000002A 64F3 MOV R15,R4 Audio.c 19 } 0000002C 7F08 ADD #8,R15 0000002E 4F26 LDS.L @R15+,PR 00000030 000B RTS 00000032 0009 NOP Audio.c 20 Audio.c 21 int AddIn_main(int isAppli, unsigned short OptionNum) 00000034 _AddIn_main: ; function: AddIn_main ; frame size=88 SH SERIES C/C++ Compiler (Ver. 6.0C) 15-Nov-2012 16:22:12 PAGE 2 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT ; used runtime library name: ; __slow_mvn 00000034 2FE6 MOV.L R14,@-R15 00000036 2FD6 MOV.L R13,@-R15 00000038 2FC6 MOV.L R12,@-R15 0000003A 2FB6 MOV.L R11,@-R15 0000003C 2FA6 MOV.L R10,@-R15 0000003E 2F96 MOV.L R9,@-R15 00000040 2F86 MOV.L R8,@-R15 00000042 4F22 STS.L PR,@-R15 Audio.c 22 { Audio.c 23 static const unsigned char LowTable[8]={0x00,0x08,0x88,0x94,0x55,0xD5,0xDD,0xDF}; Audio.c 24 static unsigned short int giBufIndex = 0; Audio.c 25 Audio.c 26 FONTCHARACTER path[] ={'\\','\\','f','l','s','0','\\','T','E','T','R', 'I','S','.','w','a','v',0}; 00000044 D21E MOV.L L347+14,R2 ; L310 00000046 7FD0 ADD #-48,R15 00000048 D31B MOV.L L347+6,R3 ; __slow_mvn 0000004A 61F3 MOV R15,R1 0000004C 710C ADD #12,R1 0000004E 430B JSR @R3 00000050 E024 MOV #36,R0 Audio.c 27 Audio.c 28 unsigned int i, size; Audio.c 29 unsigned int code1, code2; Audio.c 30 int hFile = Bfile_OpenFile(path, _OPENMODE_READ); 00000052 E501 MOV #1,R5 00000054 D11B MOV.L L347+18,R1 ; _Bfile_OpenFile 00000056 64F3 MOV R15,R4 00000058 410B JSR @R1 0000005A 740C ADD #12,R4 Audio.c 31 Audio.c 32 Open(); 0000005C BFD0 BSR _Open 0000005E 6903 MOV R0,R9 Audio.c 33 Audio.c 34 //skip wav header Audio.c 35 if(Bfile_ReadFile(hFile,UserStack,44,-1) != 44) 00000060 DB19 MOV.L L347+22,R11; _UserStack 00000062 E7FF MOV #-1,R7 00000064 D219 MOV.L L347+26,R2 ; _Bfile_ReadFile 00000066 E62C MOV #44,R6 00000068 65B3 MOV R11,R5 0000006A 420B JSR @R2 0000006C 6493 MOV R9,R4 0000006E 882C CMP/EQ #44,R0 00000070 8901 BT L335 Audio.c 36 { Audio.c 37 return 0; 00000072 A06F BRA L336 00000074 E000 MOV #0,R0 00000076 L335: Audio.c 38 } Audio.c 39 Audio.c 40 size = Bfile_GetFileSize(hFile); 00000076 D216 MOV.L L347+30,R2 ; _Bfile_GetFileSize 00000078 420B JSR @R2 SH SERIES C/C++ Compiler (Ver. 6.0C) 15-Nov-2012 16:22:12 PAGE 3 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000007A 6493 MOV R9,R4 Audio.c 41 Audio.c 42 Bdisp_AllClr_VRAM(); 0000007C D315 MOV.L L347+34,R3 ; _Bdisp_AllClr_VRAM 0000007E 430B JSR @R3 00000080 1F02 MOV.L R0,@(8,R15) Audio.c 43 locate( 1, 1 ); 00000082 E501 MOV #1,R5 00000084 D214 MOV.L L347+38,R2 ; _locate 00000086 420B JSR @R2 00000088 6453 MOV R5,R4 Audio.c 44 Print(&"Playing"); 0000008A D414 MOV.L L347+42,R4 ; L317 0000008C D314 MOV.L L347+46,R3 ; _Print 0000008E 430B JSR @R3 00000090 0009 NOP Audio.c 45 Bdisp_PutDisp_DD(); 00000092 D214 MOV.L L347+50,R2 ; _Bdisp_PutDisp_DD 00000094 420B JSR @R2 00000096 0009 NOP Audio.c 46 Audio.c 47 //read it Audio.c 48 for(i = 0; i < size; i+= DATAPACK) 00000098 9D0B MOV.W L347,R13 ; H'1F90 0000009A EC00 MOV #0,R12 0000009C DE12 MOV.L L347+54,R14; __$giBufIndex$308 0000009E A050 BRA L337 000000A0 68C3 MOV R12,R8 000000A2 L338: Audio.c 49 { Audio.c 50 Bfile_ReadFile(hFile,UserStack ,DATAPACK,-1); 000000A2 E7FF MOV #-1,R7 000000A4 D209 MOV.L L347+26,R2 ; _Bfile_ReadFile 000000A6 66D3 MOV R13,R6 000000A8 65B3 MOV R11,R5 000000AA 420B JSR @R2 000000AC 6493 MOV R9,R4 Audio.c 51 for(giBufIndex = 0; giBufIndex < DATAPACK; giBufIndex++) 000000AE A02F BRA L339 000000B0 2EC1 MOV.W R12,@R14 000000B2 L347: 000000B2 1F90 .DATA.W H'1F90 000000B4 <00000000> .DATA.L L301 000000B8 <00000000> .DATA.L __slow_mvn 000000BC <00000000> .DATA.L _Serial_Open 000000C0 <00000000> .DATA.L L310 000000C4 <00000000> .DATA.L _Bfile_OpenFile 000000C8 <00000000> .DATA.L _UserStack 000000CC <00000000> .DATA.L _Bfile_ReadFile 000000D0 <00000000> .DATA.L _Bfile_GetFileSize 000000D4 <00000000> .DATA.L _Bdisp_AllClr_VRAM 000000D8 <00000000> .DATA.L _locate 000000DC <00000000> .DATA.L L317 000000E0 <00000000> .DATA.L _Print 000000E4 <00000000> .DATA.L _Bdisp_PutDisp_DD 000000E8 <00000000> .DATA.L __$giBufIndex$308 000000EC L340: SH SERIES C/C++ Compiler (Ver. 6.0C) 15-Nov-2012 16:22:12 PAGE 4 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT Audio.c 52 { Audio.c 53 unsigned char iVal = ~LowTable[UserStack[giBufIndex] >> 5]; 000000EC 60E1 MOV.W @R14,R0 000000EE 600D EXTU.W R0,R0 000000F0 0ABC MOV.B @(R0,R11),R10 000000F2 6AAC EXTU.B R10,R10 000000F4 D01C MOV.L L348,R0 ; __$LowTable$307 000000F6 4A09 SHLR2 R10 000000F8 4A09 SHLR2 R10 000000FA 4A01 SHLR R10 000000FC 0AAC MOV.B @(R0,R10),R10 000000FE 6AA7 NOT R10,R10 Audio.c 54 while(Serial_WriteByte(iVal)); 00000100 L341: 00000100 D21A MOV.L L348+4,R2 ; _Serial_WriteByte 00000102 420B JSR @R2 00000104 64AC EXTU.B R10,R4 00000106 2008 TST R0,R0 00000108 8BFA BF L341 0000010A 62E1 MOV.W @R14,R2 0000010C 7201 ADD #1,R2 0000010E 2E21 MOV.W R2,@R14 00000110 L339: 00000110 63E1 MOV.W @R14,R3 00000112 633D EXTU.W R3,R3 00000114 33D3 CMP/GE R13,R3 00000116 8BE9 BF L340 Audio.c 55 } Audio.c 56 Audio.c 57 if(Bkey_GetKeyWait(&code1,&code2,KEYWAIT_HALTOFF_TIMEROFF,0,1,0) == KEYREP_KEYEVENT) 00000118 2FC6 MOV.L R12,@-R15 0000011A E301 MOV #1,R3 0000011C D214 MOV.L L348+8,R2 ; _Bkey_GetKeyWait 0000011E E700 MOV #0,R7 00000120 2F36 MOV.L R3,@-R15 00000122 6633 MOV R3,R6 00000124 65F3 MOV R15,R5 00000126 750C ADD #12,R5 00000128 64F3 MOV R15,R4 0000012A 420B JSR @R2 0000012C 7408 ADD #8,R4 0000012E 8801 CMP/EQ #1,R0 00000130 8F06 BF/S L343 00000132 7F08 ADD #8,R15 Audio.c 58 { Audio.c 59 if(code1 == 4 && code2 == 8) 00000134 60F2 MOV.L @R15,R0 00000136 8804 CMP/EQ #4,R0 00000138 8B02 BF L343 0000013A 50F1 MOV.L @(4,R15),R0 0000013C 8808 CMP/EQ #8,R0 0000013E 8903 BT L345 00000140 L343: 00000140 38DC ADD R13,R8 00000142 L337: 00000142 53F2 MOV.L @(8,R15),R3 00000144 3832 CMP/HS R3,R8 SH SERIES C/C++ Compiler (Ver. 6.0C) 15-Nov-2012 16:22:12 PAGE 5 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 00000146 8BAC BF L338 00000148 L345: Audio.c 60 break; Audio.c 61 } Audio.c 62 } Audio.c 63 Bfile_CloseFile(hFile); 00000148 D30A MOV.L L348+12,R3 ; _Bfile_CloseFile 0000014A 430B JSR @R3 0000014C 6493 MOV R9,R4 Audio.c 64 Audio.c 65 Serial_Close(1); 0000014E D20A MOV.L L348+16,R2 ; _Serial_Close 00000150 420B JSR @R2 00000152 E401 MOV #1,R4 Audio.c 66 } 00000154 L336: 00000154 7F30 ADD #48,R15 00000156 4F26 LDS.L @R15+,PR 00000158 68F6 MOV.L @R15+,R8 0000015A 69F6 MOV.L @R15+,R9 0000015C 6AF6 MOV.L @R15+,R10 0000015E 6BF6 MOV.L @R15+,R11 00000160 6CF6 MOV.L @R15+,R12 00000162 6DF6 MOV.L @R15+,R13 00000164 000B RTS 00000166 6EF6 MOV.L @R15+,R14 00000168 L348: 00000168 <00000000> .DATA.L __$LowTable$307 0000016C <00000000> .DATA.L _Serial_WriteByte 00000170 <00000000> .DATA.L _Bkey_GetKeyWait 00000174 <00000000> .DATA.L _Bfile_CloseFile 00000178 <00000000> .DATA.L _Serial_Close Audio.c 67 Audio.c 68 #pragma section _BR_Size Audio.c 69 unsigned long BR_Size; Audio.c 70 #pragma section Audio.c 71 #pragma section _TOP Audio.c 72 int InitializeSystem(int isAppli, unsigned short OptionNum) P_T 00000000 _InitializeSystem: ; function: InitializeSystem ; frame size=0 Audio.c 73 {return INIT_ADDIN_APPLICATION(isAppli, OptionNum);} 00000000 D301 MOV.L L349+2,R3 ; _INIT_ADDIN_APPLICATION 00000002 432B JMP @R3 00000004 0009 NOP 00000006 L349: 00000006 0000 .DATA.W 0 00000008 <00000000> .DATA.L _INIT_ADDIN_APPLICATION Audio.c 74 #pragma section Audio.c 75 C 00000000 L301: 00000000 00 .DATA.B H'00 00000001 0000000501 .DATAB.B 5,0 00 00000006 __$LowTable$307: ; static: LowTable 00000006 0008889455 .DATA.B H'00,H'08,H'88,H'94,H'55,H'D5,H'DD,H'DF D5DDDF 0000000E L310: SH SERIES C/C++ Compiler (Ver. 6.0C) 15-Nov-2012 16:22:12 PAGE 6 SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT 0000000E 005C005C00 .DATA.W H'005C,H'005C,H'0066,H'006C,H'0073,H'0030,H'005C,H'0054,H'0045,H'0054,H'0052,H'0049, 66006C0073 + H'0053,H'002E,H'0077,H'0061,H'0076,H'0000 0030005C00 5400450054 0052004900 53002E0077 0061007600 00 00000032 00000002 .RES.W 1 00000034 L317: 00000034 506C617969 .SDATA "Playing" 6E67 0000003B 00 .DATA.B H'00 D 00000000 __$giBufIndex$308: ; static: giBufIndex 00000000 0000 .DATA.W H'0000 B 00000000 _UserStack: ; static: UserStack 00000000 00001F90 .RES.B 8080 B_B 00000000 _BR_Size: ; static: BR_Size 00000000 00000004 .RES.L 1 SH SERIES C/C++ Compiler (Ver. 6.0C) 15-Nov-2012 16:22:12 PAGE 1 ******** STATISTICS INFORMATION ******** ********** ERROR INFORMATION *********** NUMBER OF ERRORS: 0 NUMBER OF WARNINGS: 1 ******* SOURCE LINE INFORMATION ******** COMPILED SOURCE LINE: 75 ******* SECTION SIZE INFORMATION ******* PROGRAM SECTION (P): 0000017C Byte(s) PROGRAM SECTION (P_BR_Size): 00000000 Byte(s) PROGRAM SECTION (P_TOP): 0000000C Byte(s) CONSTANT SECTION (C): 0000003C Byte(s) CONSTANT SECTION (C_BR_Size): 00000000 Byte(s) CONSTANT SECTION (C_TOP): 00000000 Byte(s) DATA SECTION (D): 00000002 Byte(s) DATA SECTION (D_BR_Size): 00000000 Byte(s) DATA SECTION (D_TOP): 00000000 Byte(s) BSS SECTION (B): 00001F90 Byte(s) BSS SECTION (B_BR_Size): 00000004 Byte(s) BSS SECTION (B_TOP): 00000000 Byte(s) TOTAL PROGRAM SIZE: 0000215A Byte(s) ********** LABEL INFORMATION *********** NUMBER OF EXTERNAL REFERENCE SYMBOLS: 14 NUMBER OF EXTERNAL DEFINITION SYMBOLS: 5 NUMBER OF INTERNAL/EXTERNAL SYMBOLS: 34 *** COMMAND PARAMETER *** -subcommand=C:\Users\Timo\AppData\Local\Temp\hmk5042.tmp