1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
|
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
|