summaryrefslogtreecommitdiff
path: root/Debug/Snow.lst
blob: 582b939d19eabfe124b52dbd6a15d6de9388c65c (plain)
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
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
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