From 32b592799f40834030d3d781db9de9fa99756f3f Mon Sep 17 00:00:00 2001 From: schneefux Date: Sun, 12 Jun 2016 20:13:54 +0200 Subject: import into git --- AddinInfo.txt | 12 + Debug/Addin.mak | 121 ++++ Debug/FXADDINror.abs | Bin 0 -> 31260 bytes Debug/FXADDINror.bin | Bin 0 -> 10940 bytes Debug/FXADDINror.dbg | Bin 0 -> 28016 bytes Debug/FXADDINror.fsy | 233 ++++++++ Debug/FXADDINror.map | 1483 ++++++++++++++++++++++++++++++++++++++++++++++++++ Debug/SYSCALLS.obj | Bin 0 -> 5784 bytes Debug/Snow.lst | 1457 +++++++++++++++++++++++++++++++++++++++++++++++++ Debug/Snow.obj | Bin 0 -> 21016 bytes FIREWORK.G1A | Bin 0 -> 11452 bytes FXSH_Build.bat | 22 + Firework.dlr | 6 + Firework.dlw | 138 +++++ Firework.g1w | 16 + Fireworks_1.0.rar | Bin 0 -> 6583 bytes INIT/CasioRAM.mem | Bin 0 -> 60060 bytes INIT/CasioRAMCPU.mem | Bin 0 -> 80 bytes MainIcon.bmp | Bin 0 -> 206 bytes Readme.txt | 2 + Screenshot2.bmp | Bin 0 -> 9270 bytes Screenshot3.bmp | Bin 0 -> 9270 bytes Snow.c | 254 +++++++++ 23 files changed, 3744 insertions(+) create mode 100644 AddinInfo.txt create mode 100644 Debug/Addin.mak create mode 100644 Debug/FXADDINror.abs create mode 100644 Debug/FXADDINror.bin create mode 100644 Debug/FXADDINror.dbg create mode 100644 Debug/FXADDINror.fsy create mode 100644 Debug/FXADDINror.map create mode 100644 Debug/SYSCALLS.obj create mode 100644 Debug/Snow.lst create mode 100644 Debug/Snow.obj create mode 100644 FIREWORK.G1A create mode 100644 FXSH_Build.bat create mode 100644 Firework.dlr create mode 100644 Firework.dlw create mode 100644 Firework.g1w create mode 100644 Fireworks_1.0.rar create mode 100644 INIT/CasioRAM.mem create mode 100644 INIT/CasioRAMCPU.mem create mode 100644 MainIcon.bmp create mode 100644 Readme.txt create mode 100644 Screenshot2.bmp create mode 100644 Screenshot3.bmp create mode 100644 Snow.c diff --git a/AddinInfo.txt b/AddinInfo.txt new file mode 100644 index 0000000..e4b808a --- /dev/null +++ b/AddinInfo.txt @@ -0,0 +1,12 @@ +//------------------------------------------------------------------ +// Addin-Application header control file, created with the CASIO SDK +//------------------------------------------------------------------ +[OUTPUT] : "FIREWORK.G1A" +[BINDATA] : "FXADDINror.bin" +[DISPNAME] : "Firework" +[APPNAME] : "@FIREWOR" +[VERSION] : "01.00.0000" +[APL_ICON] : "MainIcon.bmp" +[MODULE_NUM] : 0 +[MOD1_TITLE] : "Firework" +[MOD1_ICON] : "eActivityIcon.bmp" diff --git a/Debug/Addin.mak b/Debug/Addin.mak new file mode 100644 index 0000000..ab02ee4 --- /dev/null +++ b/Debug/Addin.mak @@ -0,0 +1,121 @@ +################################################ +# Make file for CASIO fx-9860G SDK Addin +# +############################ +# Directory defines +TCDIR = G:\Casio SDK\OS\SH +OSDIR = G:\Casio SDK\OS +APPDIR = G:\Casio SDK\Projekte\Firework +OUTDIR = G:\Casio SDK\Projekte\Firework\Debug + +################ +# Main Defines +SH_EXEDIR=$(TCDIR)\bin + +# Hitachi SH C/C++ Compiler02 phase +SHCC02_EXE=shc.exe +SHCC02_DEP="$(OSDIR)\FX\include\fxlib.h" + +# Hitachi SH Assembler03 phase +SHASM03_EXE=asmsh.exe + +# Hitachi OptLinker04 phase +SHLINK04_EXE=Optlnk.exe +SHLINK04_DEP="$(OSDIR)\FX\lib\fx9860G_library.lib" +SHLINK04_DEP2="$(OSDIR)\FX\lib\setup.obj" +EPSILON="$(OSDIR)\FX\lib\revolution.lib" +####################### +# Files to build +FILE0=Snow +FILESRC0="$(APPDIR)\$(FILE0).c" +FILEOBJ0="$(OUTDIR)\$(FILE0).obj" +FILE1=SYSCALLS +FILESRC1="G:\Casio SDK\Projekte\Matris\$(FILE1).src" +FILEOBJ1="$(OUTDIR)\$(FILE1).obj" +RFILE=FXADDINror +USERALLOBJ=$(FILEOBJ0) $(FILEOBJ1) + +####################### +# nmake "all" statement + +ALL: SH_ENV \ + $(USERALLOBJ) \ + $(OUTDIR)\$(RFILE).bin \ + +#################### +# Description blocks + +!MESSAGE %3#C$z`&'0? +!MESSAGE +!MESSAGE Executing Hitachi SH C/C++ Compiler/Assembler phase +!MESSAGE + +SH_ENV : + set SHC_INC=$(TCDIR)\include + set PATH=$(TCDIR)\bin + set SHC_LIB=$(TCDIR)\bin + set SHC_TMP=$(OUTDIR) + +$(FILEOBJ0) : $(FILESRC0) $(SHCC02_DEP) + "$(SH_EXEDIR)\$(SHCC02_EXE)" -subcommand=<< +-cpu=sh3 +-include="$(OSDIR)\FX\include","$(APPDIR)" +-objectfile=$(FILEOBJ0) +-show=source +-listfile="$(OUTDIR)\$(FILE0).lst" +-size +-noinline +-chgincpath +-errorpath +$(FILESRC0) +-lang=c +-nologo +-debug +<< + +$(FILEOBJ1) : $(FILESRC1) + "$(SH_EXEDIR)\$(SHASM03_EXE)" -subcommand=<< +$(FILESRC1) +-cpu=sh3 +-endian=big +-round=zero +-denormalize=off +-include="$(APPDIR)" +-include="$(OSDIR)\FX\include" +-debug +-object=$(FILEOBJ1) +-literal=pool,branch,jump,return +-nologo +-chgincpath +-errorpath +<< + +!MESSAGE +!MESSAGE Executing Hitachi OptLinker04 phase +!MESSAGE + +"$(OUTDIR)\$(RFILE).bin" : $(USERALLOBJ) $(SHLINK04_DEP2) $(SHLINK04_DEP) + "$(SH_EXEDIR)\$(SHLINK04_EXE)" -subcommand=<< +noprelink +sdebug +rom D=R +nomessage +list "$(OUTDIR)\$(RFILE).map" +show symbol +nooptimize +start P_TOP,P,C,D,C$VTBL,C$INIT/0300200,B_BR_Size,B,R/08100000 +fsymbol P +nologo +input $(USERALLOBJ) +input $(SHLINK04_DEP2) +library $(SHLINK04_DEP) +library $(EPSILON) +output "$(OUTDIR)\$(RFILE).abs" +-nomessage=1100 +end +input "$(OUTDIR)\$(RFILE).abs" +form binary +output "$(OUTDIR)\$(RFILE).bin" +exit +<< + diff --git a/Debug/FXADDINror.abs b/Debug/FXADDINror.abs new file mode 100644 index 0000000..9f9b1ee Binary files /dev/null and b/Debug/FXADDINror.abs differ diff --git a/Debug/FXADDINror.bin b/Debug/FXADDINror.bin new file mode 100644 index 0000000..cb6bb0b Binary files /dev/null and b/Debug/FXADDINror.bin differ diff --git a/Debug/FXADDINror.dbg b/Debug/FXADDINror.dbg new file mode 100644 index 0000000..6c18a8c Binary files /dev/null and b/Debug/FXADDINror.dbg differ diff --git a/Debug/FXADDINror.fsy b/Debug/FXADDINror.fsy new file mode 100644 index 0000000..81121e4 --- /dev/null +++ b/Debug/FXADDINror.fsy @@ -0,0 +1,233 @@ +;HITACHI OPTIMIZING LINKAGE EDITOR GENERATED FILE 2012.12.29 +;fsymbol = P + +;SECTION NAME = P + .export _random +_random: .equ h'00300214 + .export _setpixel +_setpixel: .equ h'00300234 + .export _line +_line: .equ h'00300272 + .export _drawsprite +_drawsprite: .equ h'00300356 + .export _drawboom +_drawboom: .equ h'003003fa + .export _display_vram +_display_vram: .equ h'0030049a + .export _isMainMenu +_isMainMenu: .equ h'00300528 + .export _snowtimer +_snowtimer: .equ h'00300546 + .export _AddIn_main +_AddIn_main: .equ h'003007d0 + .export _AllClr_DD +_AllClr_DD: .equ h'00300968 + .export _PutKey +_PutKey: .equ h'00300a88 + .export _App_SYSTEM +_App_SYSTEM: .equ h'00300b68 + .export _RTC_GetTicks +_RTC_GetTicks: .equ h'00300918 + .export _PowerOff +_PowerOff: .equ h'00300a68 + .export _Serial_BufferedTransmitOneByte +_Serial_BufferedTransmitOneByte: .equ h'003008e8 + .export _LongToAsc +_LongToAsc: .equ h'00300ba8 + .export _Reboot +_Reboot: .equ h'00300a28 + .export _App_DYNA +_App_DYNA: .equ h'00300ac8 + .export _App_EQUA +_App_EQUA: .equ h'00300ad8 + .export _itoa +_itoa: .equ h'00300a08 + .export _Timer_Start +_Timer_Start: .equ h'003009f8 + .export _App_LINK +_App_LINK: .equ h'00300b18 + .export _PutDisp_DD +_PutDisp_DD: .equ h'00300948 + .export _Serial_ReadOneByte +_Serial_ReadOneByte: .equ h'003008d8 + .export _GlibGetOSVersionInfo +_GlibGetOSVersionInfo: .equ h'00300b98 + .export _BCD_SetAsInt +_BCD_SetAsInt: .equ h'00300b88 + .export _App_FINANCE +_App_FINANCE: .equ h'00300af8 + .export _Serial_Close +_Serial_Close: .equ h'00300908 + .export _EditExpression +_EditExpression: .equ h'00300a18 + .export _App_RUN_MAT +_App_RUN_MAT: .equ h'00300b48 + .export _Timer_Install +_Timer_Install: .equ h'003009d8 + .export _RTC_GetTime +_RTC_GetTime: .equ h'00300a58 + .export _locate +_locate: .equ h'003009b8 + .export _App_PROG +_App_PROG: .equ h'00300ae8 + .export _Sleep +_Sleep: .equ h'00300998 + .export _App_GRAPH_TABLE +_App_GRAPH_TABLE: .equ h'00300b08 + .export _Disp_GetVRAMPtr +_Disp_GetVRAMPtr: .equ h'00300938 + .export _ShapeToDD +_ShapeToDD: .equ h'00300a98 + .export _App_CONICS +_App_CONICS: .equ h'00300ab8 + .export _RTC_SetDateTime +_RTC_SetDateTime: .equ h'00300a38 + .export _App_RECUR +_App_RECUR: .equ h'00300b38 + .export _InputString +_InputString: .equ h'00300aa8 + .export _GetKey +_GetKey: .equ h'003009a8 + .export _RTC_Reset +_RTC_Reset: .equ h'00300a48 + .export _DrawLineVRAM +_DrawLineVRAM: .equ h'00300958 + .export _Print +_Print: .equ h'003009c8 + .export _KBD_PRGM_GetKey +_KBD_PRGM_GetKey: .equ h'00300928 + .export _AllClr_VRAM +_AllClr_VRAM: .equ h'00300978 + .export _App_RUN_STAT +_App_RUN_STAT: .equ h'00300b58 + .export _Serial_Open +_Serial_Open: .equ h'003008f8 + .export _AllClr_DDVRAM +_AllClr_DDVRAM: .equ h'00300988 + .export _App_MEMORY +_App_MEMORY: .equ h'00300b28 + .export _Timer_Uninstall +_Timer_Uninstall: .equ h'003009e8 + .export _Serial_WriteByte +_Serial_WriteByte: .equ h'00300a78 + .export _InputDateDialog +_InputDateDialog: .equ h'00300b78 + .export ___LINK_PROTECT +___LINK_PROTECT: .equ h'00300bb8 + .export _SetQuitHandler +_SetQuitHandler: .equ h'00300bbc + .export _OnAppCloseDefault +_OnAppCloseDefault: .equ h'00300bc2 + .export __INITSCT_ADDIN +__INITSCT_ADDIN: .equ h'00300c16 + .export _INIT_ADDIN_APPLICATION +_INIT_ADDIN_APPLICATION: .equ h'00300c5e + .export __addd +__addd: .equ h'00300da4 + .export __subdr +__subdr: .equ h'00300cec + .export __subd +__subd: .equ h'00300cd4 + .export __adds +__adds: .equ h'0030106a + .export __subs +__subs: .equ h'00301064 + .export __divdr +__divdr: .equ h'0030135c + .export __divd +__divd: .equ h'00301370 + .export __divs +__divs: .equ h'0030152c + .export __dtos +__dtos: .equ h'0030166c + .export __eqs +__eqs: .equ h'00301748 + .export __gts +__gts: .equ h'003017b0 + .export __itos +__itos: .equ h'00301828 + .export __ltd +__ltd: .equ h'00301880 + .export __lts +__lts: .equ h'00301928 + .export __muls +__muls: .equ h'003019a0 + .export __stod +__stod: .equ h'00301ae0 + .export __stou +__stou: .equ h'00301b68 + .export __stoi +__stoi: .equ h'00301b68 + .export __utod +__utod: .equ h'00301bc0 + .export __utos +__utos: .equ h'00301c00 + .export __modlu +__modlu: .equ h'00301c48 + .export __slow_mvn +__slow_mvn: .equ h'00301d00 + .export _cosf +_cosf: .equ h'00301d38 + .export _sinf +_sinf: .equ h'00301da8 + .export _Bdel_cychdr +_Bdel_cychdr: .equ h'00301e18 + .export _BfileFLS_CloseFile +_BfileFLS_CloseFile: .equ h'00301e28 + .export _Bkey_Set_RepeatTime_Default +_Bkey_Set_RepeatTime_Default: .equ h'00301e38 + .export _CallbackAtQuitMainFunction +_CallbackAtQuitMainFunction: .equ h'00301e48 + .export _flsFindClose +_flsFindClose: .equ h'00301e58 + .export _GLibAddinAplExecutionCheck +_GLibAddinAplExecutionCheck: .equ h'00301e68 + .export _Hmem_SetMMU +_Hmem_SetMMU: .equ h'00301e78 + .export _GetSDKLibraryVersion +_GetSDKLibraryVersion: .equ h'00301e88 + .export _SetTimer +_SetTimer: .equ h'00301e8e + .export _KillTimer +_KillTimer: .equ h'00301ee2 + .export __istos +__istos: .equ h'00301f88 + .export __stois +__stois: .equ h'0030202c + .export __divls +__divls: .equ h'00302098 + .export __modls +__modls: .equ h'0030214c + .export __in_coss +__in_coss: .equ h'00302214 + .export __in_sins +__in_sins: .equ h'00302374 + .export _Bcre_cychdr +_Bcre_cychdr: .equ h'003024ec + .export _BSrl_DummyWAIT +_BSrl_DummyWAIT: .equ h'003024fc + .export _Bsta_cychdr +_Bsta_cychdr: .equ h'0030250c + .export _Bstp_cychdr +_Bstp_cychdr: .equ h'0030251c + .export __in_adds +__in_adds: .equ h'00302538 + .export __in_subs +__in_subs: .equ h'0030252c + .export __in_fmods +__in_fmods: .equ h'00302798 + .export __istypes +__istypes: .equ h'00302820 + .export __quick_odd_mvn +__quick_odd_mvn: .equ h'00302864 + .export __quick_evn_mvn +__quick_evn_mvn: .equ h'00302858 + .export __app_coss +__app_coss: .equ h'003028fc + .export __app_sins +__app_sins: .equ h'0030294c + .export __in_muls +__in_muls: .equ h'003029b8 + .export __polinos +__polinos: .equ h'00302a68 + .end diff --git a/Debug/FXADDINror.map b/Debug/FXADDINror.map new file mode 100644 index 0000000..db0d118 --- /dev/null +++ b/Debug/FXADDINror.map @@ -0,0 +1,1483 @@ +Hitachi Optimizing Linkage Editor (Ver. 7.1.03.000)29-Dec-2012 11:40:00 + +*** Options *** + +-subcommand=C:\Users\Timo\AppData\Local\Temp\hmk390D.tmp +noprelink +sdebug +rom D=R +nomessage +list "G:\Casio SDK\Projekte\Firework\Debug\FXADDINror.map" +show symbol +nooptimize +start P_TOP,P,C,D,C$VTBL,C$INIT/0300200,B_BR_Size,B,R/08100000 +fsymbol P +nologo +input "G:\Casio SDK\Projekte\Firework\Debug\Snow.obj" "G:\Casio SDK\Projekte\Firework\Debug\SYSCALLS.obj" +input "G:\Casio SDK\OS\FX\lib\setup.obj" +library "G:\Casio SDK\OS\FX\lib\fx9860G_library.lib" +library "G:\Casio SDK\OS\FX\lib\revolution.lib" +output "G:\Casio SDK\Projekte\Firework\Debug\FXADDINror.abs" +-nomessage=1100 +end + +*** Error information *** + +*** Mapping List *** + +SECTION START END SIZE ALIGN + +P_TOP + 00300200 00300213 14 4 +P + 00300214 00302acf 28bc 4 +C + 00302ad0 00302c97 1c8 4 +D + 00302c98 00302cbb 24 4 +B_BR_Size + 08100000 08100003 4 4 +B + 08100004 08100137 134 4 +R + 08100138 0810015b 24 4 + +*** Symbol List *** + +SECTION= +FILE= START END SIZE + SYMBOL ADDR SIZE INFO COUNTS OPT + +SECTION=P_TOP +FILE=G:\Casio SDK\Projekte\Firework\Debug\Snow.obj + 00300200 00300213 14 + _InitializeSystem + 00300200 14 func ,g * + +SECTION=P +FILE=G:\Casio SDK\Projekte\Firework\Debug\Snow.obj + 00300214 003008d7 6c4 + _random + 00300214 20 func ,g * + _setpixel + 00300234 3e func ,g * + _line + 00300272 e4 func ,g * + _drawsprite + 00300356 a4 func ,g * + _drawboom + 003003fa a0 func ,g * + _display_vram + 0030049a 8e func ,g * + _isMainMenu + 00300528 1e func ,g * + _snowtimer + 00300546 28a func ,g * + _AddIn_main + 003007d0 108 func ,g * +FILE=G:\Casio SDK\Projekte\Firework\Debug\SYSCALLS.obj + 003008d8 00300bb7 2e0 + _Serial_ReadOneByte + 003008d8 0 none ,g * + _Serial_BufferedTransmitOneByte + 003008e8 0 none ,g * + _Serial_Open + 003008f8 0 none ,g * + _Serial_Close + 00300908 0 none ,g * + _RTC_GetTicks + 00300918 0 none ,g * + _KBD_PRGM_GetKey + 00300928 0 none ,g * + _Disp_GetVRAMPtr + 00300938 0 none ,g * + _PutDisp_DD + 00300948 0 none ,g * + _DrawLineVRAM + 00300958 0 none ,g * + _AllClr_DD + 00300968 0 none ,g * + _AllClr_VRAM + 00300978 0 none ,g * + _AllClr_DDVRAM + 00300988 0 none ,g * + _Sleep + 00300998 0 none ,g * + _GetKey + 003009a8 0 none ,g * + _locate + 003009b8 0 none ,g * + _Print + 003009c8 0 none ,g * + _Timer_Install + 003009d8 0 none ,g * + _Timer_Uninstall + 003009e8 0 none ,g * + _Timer_Start + 003009f8 0 none ,g * + _itoa + 00300a08 0 none ,g * + _EditExpression + 00300a18 0 none ,g * + _Reboot + 00300a28 0 none ,g * + _RTC_SetDateTime + 00300a38 0 none ,g * + _RTC_Reset + 00300a48 0 none ,g * + _RTC_GetTime + 00300a58 0 none ,g * + _PowerOff + 00300a68 0 none ,g * + _Serial_WriteByte + 00300a78 0 none ,g * + _PutKey + 00300a88 0 none ,g * + _ShapeToDD + 00300a98 0 none ,g * + _InputString + 00300aa8 0 none ,g * + _App_CONICS + 00300ab8 0 none ,g * + _App_DYNA + 00300ac8 0 none ,g * + _App_EQUA + 00300ad8 0 none ,g * + _App_PROG + 00300ae8 0 none ,g * + _App_FINANCE + 00300af8 0 none ,g * + _App_GRAPH_TABLE + 00300b08 0 none ,g * + _App_LINK + 00300b18 0 none ,g * + _App_MEMORY + 00300b28 0 none ,g * + _App_RECUR + 00300b38 0 none ,g * + _App_RUN_MAT + 00300b48 0 none ,g * + _App_RUN_STAT + 00300b58 0 none ,g * + _App_SYSTEM + 00300b68 0 none ,g * + _InputDateDialog + 00300b78 0 none ,g * + _BCD_SetAsInt + 00300b88 0 none ,g * + _GlibGetOSVersionInfo + 00300b98 0 none ,g * + _LongToAsc + 00300ba8 0 none ,g * +FILE=G:\Casio SDK\OS\FX\lib\setup.obj + 00300bb8 00300cd3 11c + ___LINK_PROTECT + 00300bb8 4 func ,g * + _SetQuitHandler + 00300bbc 6 func ,g * + _OnAppCloseDefault + 00300bc2 54 func ,g * + __INITSCT_ADDIN + 00300c16 48 func ,g * + _INIT_ADDIN_APPLICATION + 00300c5e 76 func ,g * +FILE=r_addd + 00300cd4 00301063 390 + __subd + 00300cd4 0 none ,g * + __subdr + 00300cec 0 none ,g * + exception1 + 00300d04 0 none ,l * + return_NaN + 00300d18 0 none ,l * + return_inf + 00300d20 0 none ,l * + exception2 + 00300d24 0 none ,l * + p2_denorm_check + 00300d38 0 none ,l * + p1_denorm + 00300d44 0 none ,l * + return_p2 + 00300d50 0 none ,l * + return_p1 + 00300d58 0 none ,l * + p1_normalize + 00300d66 0 none ,l * + p1_norm_loop + 00300d70 0 none ,l * + end_p1_norm + 00300d7a 0 none ,l * + p2_normalize + 00300d7a 0 none ,l * + p2_norm_loop + 00300d84 0 none ,l * + end_p2_norm + 00300d8e 0 none ,l * + swap_end + 00300d96 0 none ,l * + return_zero + 00300d9a 0 none ,l * + __addd + 00300da4 0 none ,g * + sub_in + 00300db6 0 none ,l * + rotation + 00300dd6 0 none ,l * + exception_return + 00300e02 0 none ,l * + sftr1 + 00300e44 0 none ,l * + e_sftr31 + 00300e48 0 none ,l * + e_sftr55 + 00300e6e 0 none ,l * + sftr_loop + 00300e74 0 none ,l * + end_sftr + 00300e7c 0 none ,l * + mantissa_sub + 00300ea0 0 none ,l * + man_sub1 + 00300ea8 0 none ,l * + normalize + 00300eb6 0 none ,l * + norm32_end + 00300ec0 0 none ,l * + norm16_end + 00300ed0 0 none ,l * + over_norm + 00300ed6 0 none ,l * + overnorm_end + 00300f02 0 none ,l * + norm_loop + 00300f08 0 none ,l * + end_calc + 00300f30 0 none ,l * + end_norm + 00300f30 0 none ,l * + denormalize_loop + 00300f38 0 none ,l * + round + 00300f40 0 none ,l * + end_denormal + 00300f40 0 none ,l * + round_carry + 00300f58 0 none ,l * + end_round + 00300f5e 0 none ,l * + return_value + 00300f5e 0 none ,l * + return + 00300f7c 0 none ,l * + plus_zero + 00300f9c 0 none ,l * + swap + 00300fa6 0 none ,l * + EXP_INF + 00300fc0 0 none ,l * + MMASK + 00300fc4 0 none ,l * + MSB + 00300fc8 0 none ,l * + LOWMASK + 00300fcc 0 none ,l * + CARRY_CHECK + 00300fd0 0 none ,l * + NORMAL + 00300fd4 0 none ,l * + SIGN + 00300fd8 0 none ,l * + HALF + 00300fdc 0 none ,l * + sftrtbl + 00300fe0 0 none ,l * +FILE=r_adds + 00301064 003012cf 26c + __subs + 00301064 0 none ,g * + __adds + 0030106a 0 none ,g * + rotation + 00301084 0 none ,l * + exception_return + 003010ae 0 none ,l * + label + 003010ce 0 none ,l * + e_sftr26 + 003010d2 0 none ,l * + or_sticky + 003010d6 0 none ,l * + end_sftr + 003010dc 0 none ,l * + mantissa_sub + 003010f6 0 none ,l * + normalize + 00301100 0 none ,l * + n_sftl_8 + 00301116 0 none ,l * + n_sftl_4 + 00301122 0 none ,l * + n_sftl_2 + 00301130 0 none ,l * + n_sftl_1 + 00301138 0 none ,l * + normal + 00301140 0 none ,l * + end_calc + 00301142 0 none ,l * + denormalize_loop + 0030114a 0 none ,l * + end_denormal + 00301150 0 none ,l * + round_carry + 00301160 0 none ,l * + end_round + 00301164 0 none ,l * + return_value + 00301164 0 none ,l * + return + 00301172 0 none ,l * + exception1 + 00301180 0 none ,l * + return_NaN + 0030118e 0 none ,l * + return_inf + 00301194 0 none ,l * + exception2 + 00301198 0 none ,l * + p2_denorm_check + 003011a4 0 none ,l * + p1_denorm + 003011ac 0 none ,l * + p1_norm_loop + 003011b4 0 none ,l * + end_p1_norm + 003011ba 0 none ,l * + p2_normalize + 003011ba 0 none ,l * + p2_norm_loop + 003011be 0 none ,l * + end_p2_norm + 003011c4 0 none ,l * + plus_zero + 003011c8 0 none ,l * + return_zero + 003011ca 0 none ,l * + return_parm1 + 003011d0 0 none ,l * + e_sftr7 + 003011d8 0 none ,l * + e_sftr5 + 003011da 0 none ,l * + e_sftr3 + 003011dc 0 none ,l * + e_sftr1 + 003011de 0 none ,l * + e_sftr6 + 003011e2 0 none ,l * + e_sftr4 + 003011e4 0 none ,l * + e_sftr2 + 003011e6 0 none ,l * + e_sftr15 + 003011ea 0 none ,l * + e_sftr13 + 003011ee 0 none ,l * + e_sftr11 + 003011f2 0 none ,l * + e_sftr9 + 003011f6 0 none ,l * + e_sftr14 + 00301200 0 none ,l * + e_sftr12 + 00301204 0 none ,l * + e_sftr10 + 00301208 0 none ,l * + e_sftr8 + 0030120c 0 none ,l * + e_sftr23 + 00301212 0 none ,l * + e_sftr21 + 00301216 0 none ,l * + e_sftr19 + 0030121a 0 none ,l * + e_sftr17 + 0030121e 0 none ,l * + e_sftr22 + 00301228 0 none ,l * + e_sftr20 + 0030122c 0 none ,l * + e_sftr18 + 00301230 0 none ,l * + e_sftr16 + 00301234 0 none ,l * + e_sftr25 + 0030123a 0 none ,l * + e_sftr24 + 00301248 0 none ,l * + a_sftrtbl + 00301254 0 none ,l * + EXP_INF + 003012bc 0 none ,l * + HALF + 003012c0 0 none ,l * + LRS + 003012c4 0 none ,l * + MAN_1 + 003012c8 0 none ,l * + NaN + 003012cc 0 none ,l * +FILE=r_divd + 003012d0 003014d3 204 + exception1 + 003012d0 0 none ,l * + exception2 + 003012e0 0 none ,l * + exception3 + 003012ec 0 none ,l * + normalize1 + 00301304 0 none ,l * + p1_norm_loop + 0030130e 0 none ,l * + end_p1_norm + 00301318 0 none ,l * + exception4 + 0030131c 0 none ,l * + ex4 + 00301328 0 none ,l * + p2_norm_loop + 00301332 0 none ,l * + end_p2_norm + 0030133c 0 none ,l * + return_zero + 00301340 0 none ,l * + return_inf + 0030134a 0 none ,l * + return_NaN + 00301352 0 none ,l * + __divdr + 0030135c 0 none ,g * + __divd + 00301370 0 none ,g * + divdr_in + 00301380 0 none ,l * + exception_return3 + 003013c2 0 none ,l * + exception_return4 + 003013c6 0 none ,l * + div_loop + 003013e0 0 none ,l * + man_sub + 003013f6 0 none ,l * + over_sub + 00301404 0 none ,l * + end_man_cal + 0030140c 0 none ,l * + end_sticky_cal + 00301414 0 none ,l * + end_norm + 00301420 0 none ,l * + denormalize_loop + 0030142c 0 none ,l * + round_denormal + 00301438 0 none ,l * + end_round_d + 00301450 0 none ,l * + end_denormal + 00301454 0 none ,l * + round_carry + 0030146a 0 none ,l * + end_round + 00301470 0 none ,l * + return_value + 00301470 0 none ,l * + return + 0030148e 0 none ,l * + EXP_INF + 003014b8 0 none ,l * + MMASK + 003014bc 0 none ,l * + MSB + 003014c0 0 none ,l * + DENOM_CHECK + 003014c4 0 none ,l * + BIAS + 003014c8 0 none ,l * + COUNT + 003014cc 0 none ,l * + CARRY_CHECK + 003014d0 0 none ,l * +FILE=r_divs + 003014d4 0030166b 198 + exception1 + 003014d4 0 none ,l * + exception2 + 003014e0 0 none ,l * + exception3 + 003014e8 0 none ,l * + normalize1 + 003014f8 0 none ,l * + p1_norm_loop + 003014fc 0 none ,l * + end_p1_norm + 00301502 0 none ,l * + exception4 + 00301506 0 none ,l * + p2_normalize + 0030150a 0 none ,l * + p2_norm_loop + 0030150e 0 none ,l * + end_p2_norm + 00301514 0 none ,l * + return_zero + 00301518 0 none ,l * + return_inf + 00301520 0 none ,l * + return_NaN + 00301526 0 none ,l * + __divs + 0030152c 0 none ,g * + exception_return3 + 00301560 0 none ,l * + exception_return4 + 00301564 0 none ,l * + make_result + 003015e0 0 none ,l * + end_calc_sticky + 003015f0 0 none ,l * + end_normalize + 003015f8 0 none ,l * + denormalize_loop + 0030160a 0 none ,l * + round_denormal + 00301614 0 none ,l * + end_round_d + 00301628 0 none ,l * + end_denormal + 0030162c 0 none ,l * + round_carry + 0030163c 0 none ,l * + end_round + 00301640 0 none ,l * + return_value + 00301640 0 none ,l * + return + 0030164e 0 none ,l * + EXP_INF + 0030165c 0 none ,l * + LRS + 00301660 0 none ,l * + MAN_1 + 00301664 0 none ,l * + NaN + 00301668 0 none ,l * +FILE=r_dtos + 0030166c 00301747 dc + __dtos + 0030166c 0 none ,g * + end_sticky + 003016c2 0 none ,l * + denormalize_loop + 003016ca 0 none ,l * + end_denormal + 003016d4 0 none ,l * + round_carry + 003016e4 0 none ,l * + end_round + 003016e8 0 none ,l * + return + 003016f8 0 none ,l * + exception + 00301706 0 none ,l * + return_inf + 0030170e 0 none ,l * + return_NaN + 00301716 0 none ,l * + return_zero + 0030171c 0 none ,l * + EXP_INF + 00301724 0 none ,l * + MMASK + 00301728 0 none ,l * + SMASK + 0030172c 0 none ,l * + DEF_BIAS + 00301730 0 none ,l * + MSB + 00301734 0 none ,l * + INFS + 00301738 0 none ,l * + CARRY_CHECK + 0030173c 0 none ,l * + RET_INF + 00301740 0 none ,l * + NaN + 00301744 0 none ,l * +FILE=r_eqs + 00301748 003017af 68 + __eqs + 00301748 0 none ,g * + exception_return1 + 0030176c 0 none ,l * + exception_return2 + 00301770 0 none ,l * + exception_return3 + 00301774 0 none ,l * + false + 0030177c 0 none ,l * + return + 0030177e 0 none ,l * + exception1 + 0030178a 0 none ,l * + exception2 + 00301792 0 none ,l * + exception3 + 0030179a 0 none ,l * + EXP_INF + 003017ac 0 none ,l * +FILE=r_gts + 003017b0 00301827 78 + __gts + 003017b0 0 none ,g * + exception_return1 + 003017d4 0 none ,l * + exception_return2 + 003017d8 0 none ,l * + exception_return3 + 003017dc 0 none ,l * + minus + 003017ea 0 none ,l * + sign_def + 003017f0 0 none ,l * + return + 003017f4 0 none ,l * + exception1 + 00301800 0 none ,l * + exception2 + 00301808 0 none ,l * + exception3 + 00301810 0 none ,l * + false + 00301820 0 none ,l * + EXP_INF + 00301824 0 none ,l * +FILE=r_itos + 00301828 0030187f 58 + __itos + 00301828 0 none ,g * + end_negate + 0030183c 0 none ,l * + sftl_loop + 0030183e 0 none ,l * + end_round + 0030185a 0 none ,l * + return_value + 0030185a 0 none ,l * + return_zero + 00301870 0 none ,l * + EXP_32 + 00301874 0 none ,l * + LRS + 00301878 0 none ,l * + MAN_1 + 0030187c 0 none ,l * +FILE=r_ltd + 00301880 00301927 a8 + __ltd + 00301880 0 none ,g * + exception_return1 + 003018b2 0 none ,l * + exception_return2 + 003018b6 0 none ,l * + exception_return3 + 003018ba 0 none ,l * + minus + 003018cc 0 none ,l * + sign_def + 003018d4 0 none ,l * + return + 003018d8 0 none ,l * + exception1 + 003018ec 0 none ,l * + exception2 + 003018f8 0 none ,l * + exception3 + 00301904 0 none ,l * + false + 0030191c 0 none ,l * + EXP_INF + 00301920 0 none ,l * + MMASK + 00301924 0 none ,l * +FILE=r_lts + 00301928 0030199f 78 + __lts + 00301928 0 none ,g * + exception_return1 + 0030194c 0 none ,l * + exception_return2 + 00301950 0 none ,l * + exception_return3 + 00301954 0 none ,l * + minus + 00301962 0 none ,l * + sign_def + 00301968 0 none ,l * + return + 0030196c 0 none ,l * + exception1 + 00301978 0 none ,l * + exception2 + 00301980 0 none ,l * + exception3 + 00301988 0 none ,l * + false + 00301998 0 none ,l * + EXP_INF + 0030199c 0 none ,l * +FILE=r_muls + 003019a0 00301adf 140 + __muls + 003019a0 0 none ,g * + exception_return3 + 003019d8 0 none ,l * + exception_return4 + 003019dc 0 none ,l * + end_calc_sticky + 003019fe 0 none ,l * + denormal + 00301a0e 0 none ,l * + end_normalize + 00301a10 0 none ,l * + denormalize_loop + 00301a18 0 none ,l * + round_denormal + 00301a22 0 none ,l * + end_round_d + 00301a36 0 none ,l * + end_denormal + 00301a3a 0 none ,l * + round_carry + 00301a4a 0 none ,l * + end_round + 00301a4e 0 none ,l * + return_value + 00301a4e 0 none ,l * + return + 00301a5c 0 none ,l * + exception1 + 00301a6c 0 none ,l * + parm2_NaN_check + 00301a80 0 none ,l * + exception2 + 00301a88 0 none ,l * + exception3 + 00301a98 0 none ,l * + p1_norm_loop + 00301aa0 0 none ,l * + end_p1_norm + 00301aa6 0 none ,l * + exception4 + 00301aaa 0 none ,l * + p2_normalize + 00301aae 0 none ,l * + p2_norm_loop + 00301ab2 0 none ,l * + end_p2_norm + 00301ab8 0 none ,l * + return_zero + 00301abc 0 none ,l * + return_inf + 00301ac4 0 none ,l * + return_NaN + 00301aca 0 none ,l * + EXP_INF + 00301ad0 0 none ,l * + LRS + 00301ad4 0 none ,l * + MAN_1 + 00301ad8 0 none ,l * + NaN + 00301adc 0 none ,l * +FILE=r_stod + 00301ae0 00301b67 88 + __stod + 00301ae0 0 none ,g * + exception_return + 00301afe 0 none ,l * + pack + 00301b02 0 none ,l * + return + 00301b1e 0 none ,l * + exception1 + 00301b2e 0 none ,l * + return_NaN + 00301b38 0 none ,l * + exception2 + 00301b3e 0 none ,l * + p1_norm_loop + 00301b46 0 none ,l * + end_p1_norm + 00301b4c 0 none ,l * + return_zero + 00301b50 0 none ,l * + EXP_INF + 00301b54 0 none ,l * + MMASK + 00301b58 0 none ,l * + RET_INF + 00301b5c 0 none ,l * + NAN + 00301b60 0 none ,l * + DEF_BIAS + 00301b64 0 none ,l * +FILE=r_stoi + 00301b68 00301bbf 58 + __stoi + 00301b68 0 none ,g * + __stou + 00301b68 0 none ,g * + loop_sftl + 00301b98 0 none ,l * + shift_r + 00301ba2 0 none ,l * + loop_sftr + 00301ba4 0 none ,l * + end_shift + 00301baa 0 none ,l * + return + 00301bb0 0 none ,l * + end_nagate + 00301bb0 0 none ,l * + return_zero + 00301bb8 0 none ,l * + EXP_INF + 00301bbc 0 none ,l * +FILE=r_utod + 00301bc0 00301bff 40 + __utod + 00301bc0 0 none ,g * + sftl_loop + 00301bca 0 none ,l * + return + 00301be6 0 none ,l * + return_zero + 00301bf4 0 none ,l * + EXP_32 + 00301bfc 0 none ,l * +FILE=r_utos + 00301c00 00301c47 48 + __utos + 00301c00 0 none ,g * + sftl_loop + 00301c0a 0 none ,l * + end_round + 00301c26 0 none ,l * + return_value + 00301c26 0 none ,l * + return_zero + 00301c38 0 none ,l * + EXP_32 + 00301c3c 0 none ,l * + LRS + 00301c40 0 none ,l * + MAN_1 + 00301c44 0 none ,l * +FILE=__modlu + 00301c48 00301cff b8 + __modlu + 00301c48 0 none ,g * + modlu_L + 00301ce0 0 none ,l * + modlu_zero + 00301ce8 0 none ,l * + A_errno + 00301cf8 0 none ,l * + n_zerono + 00301cfc 0 none ,l * +FILE=__s_mvn + 00301d00 00301d37 38 + __slow_mvn + 00301d00 0 none ,g * + SMVN_B + 00301d0e 0 none ,l * + SMVN_END + 00301d30 0 none ,l * +FILE=cosf + 00301d38 00301da7 70 + _cosf + 00301d38 70 func ,g * +FILE=sinf + 00301da8 00301e17 70 + _sinf + 00301da8 70 func ,g * +FILE=_Bdel_cychdr + 00301e18 00301e27 10 + _Bdel_cychdr + 00301e18 0 none ,g * +FILE=_BfileFLS_CloseFile + 00301e28 00301e37 10 + _BfileFLS_CloseFile + 00301e28 0 none ,g * +FILE=_Bkey_Set_RepeatTime_Default + 00301e38 00301e47 10 + _Bkey_Set_RepeatTime_Default + 00301e38 0 none ,g * +FILE=_CallbackAtQuitMainFunction + 00301e48 00301e57 10 + _CallbackAtQuitMainFunction + 00301e48 0 none ,g * +FILE=_flsFindClose + 00301e58 00301e67 10 + _flsFindClose + 00301e58 0 none ,g * +FILE=_GLibAddinAplExecutionCheck + 00301e68 00301e77 10 + _GLibAddinAplExecutionCheck + 00301e68 0 none ,g * +FILE=_Hmem_SetMMU + 00301e78 00301e87 10 + _Hmem_SetMMU + 00301e78 0 none ,g * +FILE=timer + 00301e88 00301f87 100 + _GetSDKLibraryVersion + 00301e88 6 func ,g * + _SetTimer + 00301e8e 54 func ,g * + _KillTimer + 00301ee2 44 func ,g * + _Sleep + 00301f26 62 func ,l * +FILE=__istos + 00301f88 0030202b a4 + __istos + 00301f88 0 none ,g * + denormalize_loop + 00301fae 0 none ,l * + round_denormal + 00301fbc 0 none ,l * + end_round_d + 00301fd0 0 none ,l * + end_denormal + 00301fd4 0 none ,l * + end_round + 00301fe8 0 none ,l * + return_value + 00301fe8 0 none ,l * + exception1 + 00301ff8 0 none ,l * + return_zero + 00302000 0 none ,l * + return_inf + 00302006 0 none ,l * + return_NaN + 0030200c 0 none ,l * + IEEE_INF + 00302018 0 none ,l * + IN_INF + 0030201c 0 none ,l * + IN_ZERO + 00302020 0 none ,l * + LRS + 00302024 0 none ,l * + MAN_1 + 00302028 0 none ,l * +FILE=__stois + 0030202c 00302097 6c + __stois + 0030202c 0 none ,g * + exception_return + 00302044 0 none ,l * + return_value + 0030204c 0 none ,l * + exception1 + 0030205c 0 none ,l * + exception2 + 00302064 0 none ,l * + norm_loop + 0030206c 0 none ,l * + end_norm + 00302072 0 none ,l * + return_zero + 00302076 0 none ,l * + return_inf + 0030207c 0 none ,l * + return_NaN + 00302082 0 none ,l * + IEEE_INF + 0030208c 0 none ,l * + IN_INF + 00302090 0 none ,l * + IN_ZERO + 00302094 0 none ,l * +FILE=__divls + 00302098 0030214b b4 + __divls + 00302098 0 none ,g * + divls_zero + 00302136 0 none ,l * + A_errno + 00302144 0 none ,l * + n_zerono + 00302148 0 none ,l * +FILE=__modls + 0030214c 00302213 c8 + __modls + 0030214c 0 none ,g * + modls_L + 003021f2 0 none ,l * + modls_zero + 003021fe 0 none ,l * + A_errno + 0030220c 0 none ,l * + n_zerono + 00302210 0 none ,l * +FILE=_in_coss + 00302214 00302373 160 + __in_coss + 00302214 160 func ,g * +FILE=_in_sins + 00302374 003024eb 178 + __in_sins + 00302374 178 func ,g * +FILE=_Bcre_cychdr + 003024ec 003024fb 10 + _Bcre_cychdr + 003024ec 0 none ,g * +FILE=_BSrl_DummyWAIT + 003024fc 0030250b 10 + _BSrl_DummyWAIT + 003024fc 0 none ,g * +FILE=_Bsta_cychdr + 0030250c 0030251b 10 + _Bsta_cychdr + 0030250c 0 none ,g * +FILE=_Bstp_cychdr + 0030251c 0030252b 10 + _Bstp_cychdr + 0030251c 0 none ,g * +FILE=__i_adds + 0030252c 00302797 26c + __in_subs + 0030252c 0 none ,g * + __in_adds + 00302538 0 none ,g * + swap_end + 00302558 0 none ,l * + e_sftr31 + 00302582 0 none ,l * + or_sticky + 00302586 0 none ,l * + end_sftr + 0030258e 0 none ,l * + mantissa_sub + 003025a8 0 none ,l * + normalize + 003025b4 0 none ,l * + n_sftl_8 + 003025ca 0 none ,l * + n_sftl_4 + 003025d4 0 none ,l * + n_sftl_2 + 003025e2 0 none ,l * + n_sftl_1 + 003025ec 0 none ,l * + normal + 003025f4 0 none ,l * + end_calc + 003025fc 0 none ,l * + return_value + 003025fc 0 none ,l * + exception1 + 0030260c 0 none ,l * + exception2 + 00302620 0 none ,l * + return_NaN + 00302628 0 none ,l * + plus_zero + 00302630 0 none ,l * + return_zero + 00302632 0 none ,l * + e_sftr7 + 00302638 0 none ,l * + e_sftr5 + 0030263a 0 none ,l * + e_sftr3 + 0030263c 0 none ,l * + e_sftr1 + 0030263e 0 none ,l * + e_sftr6 + 00302642 0 none ,l * + e_sftr4 + 00302644 0 none ,l * + e_sftr2 + 00302646 0 none ,l * + e_sftr15 + 0030264a 0 none ,l * + e_sftr13 + 0030264c 0 none ,l * + e_sftr11 + 0030264e 0 none ,l * + e_sftr9 + 00302650 0 none ,l * + e_sftr14 + 00302656 0 none ,l * + e_sftr12 + 00302658 0 none ,l * + e_sftr10 + 0030265a 0 none ,l * + e_sftr8 + 0030265c 0 none ,l * + e_sftr23 + 00302660 0 none ,l * + e_sftr21 + 00302662 0 none ,l * + e_sftr19 + 00302664 0 none ,l * + e_sftr17 + 00302666 0 none ,l * + e_sftr22 + 0030266c 0 none ,l * + e_sftr20 + 0030266e 0 none ,l * + e_sftr18 + 00302670 0 none ,l * + e_sftr16 + 00302672 0 none ,l * + e_sftr29 + 00302676 0 none ,l * + e_sftr27 + 00302678 0 none ,l * + e_sftr25 + 0030267a 0 none ,l * + e_sftr30 + 00302682 0 none ,l * + e_sftr28 + 00302684 0 none ,l * + e_sftr26 + 00302686 0 none ,l * + e_sftr24 + 00302688 0 none ,l * + table + 00302690 0 none ,l * + INF + 00302788 0 none ,l * + ZERO + 0030278c 0 none ,l * + STICKY + 00302790 0 none ,l * + HALF + 00302794 0 none ,l * +FILE=__i_fmds + 00302798 0030281f 88 + __in_fmods + 00302798 0 none ,g * + div_loop + 003027be 0 none ,l * + end_loop + 003027cc 0 none ,l * + normalize_loop + 003027d4 0 none ,l * + end_calc_mantissa + 003027d4 0 none ,l * + end_normalize + 003027e2 0 none ,l * + return_value + 003027e2 0 none ,l * + exception1 + 003027f4 0 none ,l * + return_prm1 + 003027f8 0 none ,l * + qshift_ret_z + 003027fc 0 none ,l * + sft_loop + 003027fe 0 none ,l * + return_zero + 00302808 0 none ,l * + return_NaN + 0030280e 0 none ,l * + INF + 00302818 0 none ,l * + ZERO + 0030281c 0 none ,l * +FILE=__istyps + 00302820 00302857 38 + __istypes + 00302820 0 none ,g * + exception1 + 0030283c 0 none ,l * + set_NaN + 00302846 0 none ,l * + exception2 + 0030284a 0 none ,l * + INF + 00302850 0 none ,l * + ZERO + 00302854 0 none ,l * +FILE=__q_fmvn + 00302858 003028fb a4 + __quick_evn_mvn + 00302858 0 none ,g * + __quick_odd_mvn + 00302864 0 none ,g * + A_FMVN_TBL + 00302870 0 none ,l * + FMVN_64 + 00302876 0 none ,l * + FMVN_60 + 0030287a 0 none ,l * + FMVN_56 + 0030287e 0 none ,l * + FMVN_52 + 00302882 0 none ,l * + FMVN_48 + 00302886 0 none ,l * + FMVN_44 + 0030288a 0 none ,l * + FMVN_40 + 0030288e 0 none ,l * + FMVN_36 + 00302892 0 none ,l * + FMVN_32 + 00302896 0 none ,l * + FMVN_28 + 0030289a 0 none ,l * + FMVN_24 + 0030289e 0 none ,l * + FMVN_20 + 003028a2 0 none ,l * + FMVN_16 + 003028a6 0 none ,l * + FMVN_12 + 003028aa 0 none ,l * + FMVN_8 + 003028ae 0 none ,l * + FMVN_4 + 003028b2 0 none ,l * + FMVN_0 + 003028b4 0 none ,l * + FMVN_TBL + 003028b8 0 none ,l * +FILE=_a_coss + 003028fc 0030294b 50 + __app_coss + 003028fc 50 func ,g * +FILE=_a_sins + 0030294c 003029b7 6c + __app_sins + 0030294c 6c func ,g * +FILE=__i_muls + 003029b8 00302a67 b0 + __in_muls + 003029b8 0 none ,g * + denormal + 003029f2 0 none ,l * + end_normalize + 003029f6 0 none ,l * + end_sticky + 00302a08 0 none ,l * + return_value + 00302a08 0 none ,l * + exception1 + 00302a18 0 none ,l * + p2zero_check + 00302a28 0 none ,l * + exception2 + 00302a32 0 none ,l * + p1zero_check + 00302a42 0 none ,l * + return_zero + 00302a4c 0 none ,l * + return_inf + 00302a52 0 none ,l * + return_NaN + 00302a58 0 none ,l * + INF + 00302a60 0 none ,l * + ZERO + 00302a64 0 none ,l * +FILE=__polins + 00302a68 00302acf 68 + __polinos + 00302a68 0 none ,g * + start + 00302a92 0 none ,l * + A_in_adds + 00302ac8 0 none ,l * + A_in_muls + 00302acc 0 none ,l * + +SECTION=C +FILE=G:\Casio SDK\Projekte\Firework\Debug\Snow.obj + 00302ad0 00302b49 7a + _SysCallWrapper + 00302ad0 c data ,g * + _sprite + 00302adc 1b data ,g * +FILE=addin_sct + 00302b4c 00302b5f 14 + _B_BGN + 00302b4c 0 none ,g * + _B_END + 00302b50 0 none ,g * + _R_BGN + 00302b54 0 none ,g * + _R_END + 00302b58 0 none ,g * + _D_ROM + 00302b5c 0 none ,g * +FILE=consts + 00302b60 00302c27 c8 + __IFNANS + 00302b60 8 data ,g * + __IFZEROS + 00302b68 8 data ,g * + __IFINFS + 00302b70 8 data ,g * + __IFONES + 00302b78 8 data ,g * + __HALFS + 00302b80 8 data ,g * + __QUOTS + 00302b88 8 data ,g * + __TWOS + 00302b90 8 data ,g * + __FOURS + 00302b98 8 data ,g * + __PAIS + 00302ba0 8 data ,g * + __2PAIS + 00302ba8 8 data ,g * + __HLFPAIS + 00302bb0 8 data ,g * + __QUOPAIS + 00302bb8 8 data ,g * + __LOGE2S + 00302bc0 8 data ,g * + __NIFZEROS + 00302bc8 8 data ,g * + __NIFINFS + 00302bd0 8 data ,g * + __NIFONES + 00302bd8 8 data ,g * + __NHALFS + 00302be0 8 data ,g * + __NQUOTS + 00302be8 8 data ,g * + __NTWOS + 00302bf0 8 data ,g * + __NFOURS + 00302bf8 8 data ,g * + __NPAIS + 00302c00 8 data ,g * + __N2PAIS + 00302c08 8 data ,g * + __NHLFPAIS + 00302c10 8 data ,g * + __NQUOPAIS + 00302c18 8 data ,g * + __NLOGE2S + 00302c20 8 data ,g * +FILE=_a_coss + 00302c28 00302c5f 38 + _cos_coef$297 + 00302c28 38 data ,l * +FILE=_a_sins + 00302c60 00302c97 38 + _sin_coef$297 + 00302c60 38 data ,l * + +SECTION=B_BR_Size +FILE=G:\Casio SDK\Projekte\Firework\Debug\Snow.obj + 08100000 08100003 4 + _BR_Size + 08100000 4 data ,g * + +SECTION=B +FILE=G:\Casio SDK\Projekte\Firework\Debug\Snow.obj + 08100004 08100133 130 + _vram + 08100004 4 data ,g * + _fire + 08100008 12c data ,g * +FILE=_errno + 08100134 08100137 4 + __errno + 08100134 4 data ,g * + +SECTION=R +FILE=G:\Casio SDK\Projekte\Firework\Debug\Snow.obj + 08100138 08100157 20 + _iSysCallFuncPtr + 08100138 4 data ,g * + _lastrandom + 0810013c 4 data ,l * + _variable + 08100140 18 data ,g * +FILE=G:\Casio SDK\OS\FX\lib\setup.obj + 08100158 0810015b 4 + _gb_OnAppClose + 08100158 4 data ,g * + +Absolute value symbols +FILE=__modlu + zerodiv + 0000044e 0 none ,l * +FILE=_Bdel_cychdr + __JumpTableTOP + 80010070 0 none ,l * +FILE=_BfileFLS_CloseFile + __JumpTableTOP + 80010070 0 none ,l * +FILE=_Bkey_Set_RepeatTime_Default + __JumpTableTOP + 80010070 0 none ,l * +FILE=_CallbackAtQuitMainFunction + __JumpTableTOP + 80010070 0 none ,l * +FILE=_flsFindClose + __JumpTableTOP + 80010070 0 none ,l * +FILE=_GLibAddinAplExecutionCheck + __JumpTableTOP + 80010070 0 none ,l * +FILE=_Hmem_SetMMU + __JumpTableTOP + 80010070 0 none ,l * +FILE=__divls + zerodiv + 0000044e 0 none ,l * +FILE=__modls + zerodiv + 0000044e 0 none ,l * +FILE=_Bcre_cychdr + __JumpTableTOP + 80010070 0 none ,l * +FILE=_BSrl_DummyWAIT + __JumpTableTOP + 80010070 0 none ,l * +FILE=_Bsta_cychdr + __JumpTableTOP + 80010070 0 none ,l * +FILE=_Bstp_cychdr + __JumpTableTOP + 80010070 0 none ,l * + +*** Delete Symbols *** + +SYMBOL SIZE INFO + +*** Variable Accessible with Abs8 *** + +SYMBOL SIZE COUNTS OPTIMIZE + +*** Variable Accessible with Abs16 *** + +SYMBOL SIZE COUNTS OPTIMIZE + +*** Function Call *** + +SYMBOL COUNTS OPTIMIZE diff --git a/Debug/SYSCALLS.obj b/Debug/SYSCALLS.obj new file mode 100644 index 0000000..f83f1a8 Binary files /dev/null and b/Debug/SYSCALLS.obj differ diff --git a/Debug/Snow.lst b/Debug/Snow.lst new file mode 100644 index 0000000..f6cf5c6 --- /dev/null +++ b/Debug/Snow.lst @@ -0,0 +1,1457 @@ +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 1 + +************ OBJECT LISTING ************ + +FILE NAME: G:\Casio SDK\Projekte\Firework\Snow.c + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Snow.c 1 #include "mathf.h" + Snow.c 2 + Snow.c 3 char *Disp_GetVRAMPtr(void); + Snow.c 4 int Timer_Install(int TimerID, void (*handler)(void), int delay); + Snow.c 5 int Timer_Start(int TimerID); + Snow.c 6 void App_PROG(); + Snow.c 7 int RTC_GetTicks(); + Snow.c 8 void AllClear_VRAM(); + Snow.c 9 + Snow.c 10 typedef struct{ + Snow.c 11 unsigned int x1; + Snow.c 12 unsigned int y1; + Snow.c 13 unsigned int x2; + Snow.c 14 unsigned int y2; + Snow.c 15 unsigned char f[4]; + Snow.c 16 unsigned int on_bits; + Snow.c 17 unsigned int off_bits; + Snow.c 18 } TShape; + Snow.c 19 + Snow.c 20 void ShapeToVRAM( TShape* x ); + Snow.c 21 + Snow.c 22 char *vram; + Snow.c 23 + Snow.c 24 const int SysCallWrapper[] = {0xD201422B,0x60F20000,0x80010070}; + Snow.c 25 const int (*iSysCallFuncPtr)( int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallWrapper; + Snow.c 26 #define Alpha_GetData(VarName,Dest) (void)(*iSysCallFuncPtr)( VarName,(int)Dest, 0, 0, 0x04DF) + Snow.c 27 #define Alpha_ClearAll() (void)(*iSysCallFuncPtr)( 0,0, 0, 0, 0x004E1) + Snow.c 28 + Snow.c 29 int InputString( unsigned char*buff, unsigned char *heading, int maxlen ); + Snow.c 30 + Snow.c 31 static unsigned int lastrandom=0x12345678; + Snow.c 32 + Snow.c 33 unsigned int random( int seed){ +P 00000000 _random: ; function: random + ; frame size=4 + 00000000 4F12 STS.L MACL,@-R15 + Snow.c 34 if (seed) lastrandom=seed; + 00000002 2448 TST R4,R4 + 00000004 D53C MOV.L L413+4,R5 ; __$lastrandom + 00000006 8900 BT L366 + 00000008 2542 MOV.L R4,@R5 + 0000000A L366: + Snow.c 35 lastrandom = ( 0x41C64E6D*lastrandom ) + 0x3039; + 0000000A D33C MOV.L L413+8,R3 ; H'41C64E6D + 0000000C 6252 MOV.L @R5,R2 + 0000000E 0237 MUL.L R3,R2 + 00000010 9170 MOV.W L413,R1 ; H'3039 + 00000012 031A STS MACL,R3 + 00000014 331C ADD R1,R3 + Snow.c 36 return ( lastrandom >> 16 ); + 00000016 6033 MOV R3,R0 + 00000018 2532 MOV.L R3,@R5 + 0000001A 4029 SHLR16 R0 + Snow.c 37 } + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 2 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 0000001C 000B RTS + 0000001E 4F16 LDS.L @R15+,MACL + Snow.c 38 + Snow.c 39 const char sprite[9][3] = { + Snow.c 40 { 0 , 1 , 0 }, + Snow.c 41 { 1 , 1 , 1 }, + Snow.c 42 { 1 , 0 , 1 }, + Snow.c 43 { 1 , 0 , 1 }, + Snow.c 44 { 1 , 0 , 1 }, + Snow.c 45 { 1 , 1 , 1 }, + Snow.c 46 { 0 , 0 , 1 }, + Snow.c 47 { 0 , 0 , 1 }, + Snow.c 48 { 0 , 0 , 1 } + Snow.c 49 }; + Snow.c 50 + Snow.c 51 #define abs(x) (x < 0)?-x:x + Snow.c 52 #define sgn(x) (x < 0)?-1:(x == 0)?0:1 + Snow.c 53 + Snow.c 54 void setpixel(unsigned char x, char y) + 00000020 _setpixel: ; function: setpixel + ; frame size=32 + 00000020 4F22 STS.L PR,@-R15 + Snow.c 55 { + Snow.c 56 TShape t; + Snow.c 57 if(x&~127 || y&~63) return; + 00000022 624C EXTU.B R4,R2 + 00000024 7FE4 ADD #-28,R15 + 00000026 E380 MOV #-128,R3 + 00000028 2238 TST R3,R2 + 0000002A 8B14 BF L370 + 0000002C 605E EXTS.B R5,R0 + 0000002E E2C0 MOV #-64,R2 + 00000030 2028 TST R2,R0 + 00000032 8B10 BF L370 + Snow.c 58 t.x1 = x; + 00000034 644C EXTU.B R4,R4 + Snow.c 59 t.y1 = y; + 00000036 655E EXTS.B R5,R5 + 00000038 2F42 MOV.L R4,@R15 + Snow.c 60 t.f[0] = 2; + 0000003A E302 MOV #2,R3 + 0000003C 1F51 MOV.L R5,@(4,R15) + 0000003E E010 MOV #16,R0 + 00000040 0F34 MOV.B R3,@(R0,R15) + Snow.c 61 t.f[1] = 1; + 00000042 E401 MOV #1,R4 + Snow.c 62 t.f[2] = 1; + Snow.c 63 t.f[3] = 1; + Snow.c 64 + Snow.c 65 ShapeToDD(&t); + 00000044 D32E MOV.L L413+12,R3 ; _ShapeToDD + 00000046 E011 MOV #17,R0 + 00000048 0F44 MOV.B R4,@(R0,R15) + 0000004A E012 MOV #18,R0 + 0000004C 0F44 MOV.B R4,@(R0,R15) + 0000004E E013 MOV #19,R0 + 00000050 0F44 MOV.B R4,@(R0,R15) + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 3 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000052 430B JSR @R3 + 00000054 64F3 MOV R15,R4 + Snow.c 66 } + 00000056 L370: + 00000056 7F1C ADD #28,R15 + 00000058 4F26 LDS.L @R15+,PR + 0000005A 000B RTS + 0000005C 0009 NOP + Snow.c 67 + Snow.c 68 void line(int x1, int y1, int x2, int y2) + 0000005E _line: ; function: line + ; frame size=36 + Snow.c 69 { + Snow.c 70 int i, x, y, dx, dy, sx, sy, cumul; + Snow.c 71 x = x1; + Snow.c 72 y = y1; + Snow.c 73 dx = x2 - x1; + 0000005E 6363 MOV R6,R3 + 00000060 2FE6 MOV.L R14,@-R15 + Snow.c 74 dy = y2 - y1; + 00000062 6273 MOV R7,R2 + 00000064 2FD6 MOV.L R13,@-R15 + 00000066 3348 SUB R4,R3 + 00000068 2FC6 MOV.L R12,@-R15 + 0000006A 6D43 MOV R4,R13 + 0000006C 2FB6 MOV.L R11,@-R15 + 0000006E 6C53 MOV R5,R12 + 00000070 2FA6 MOV.L R10,@-R15 + 00000072 6433 MOV R3,R4 + 00000074 2F96 MOV.L R9,@-R15 + 00000076 3258 SUB R5,R2 + 00000078 2F86 MOV.L R8,@-R15 + Snow.c 75 sx = sgn(dx); + 0000007A 4411 CMP/PZ R4 + 0000007C 4F22 STS.L PR,@-R15 + 0000007E 7FFC ADD #-4,R15 + 00000080 8D02 BT/S L371 + 00000082 6523 MOV R2,R5 + 00000084 A005 BRA L373 + 00000086 E8FF MOV #-1,R8 + 00000088 L371: + 00000088 2448 TST R4,R4 + 0000008A 8B01 BF L372 + 0000008C A001 BRA L373 + 0000008E E800 MOV #0,R8 + 00000090 L372: + 00000090 E801 MOV #1,R8 + 00000092 L373: + Snow.c 76 sy = sgn(dy); + 00000092 4511 CMP/PZ R5 + 00000094 8901 BT L375 + 00000096 A005 BRA L377 + 00000098 E2FF MOV #-1,R2 + 0000009A L375: + 0000009A 2558 TST R5,R5 + 0000009C 8B01 BF L376 + 0000009E A001 BRA L377 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 4 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000000A0 E200 MOV #0,R2 + 000000A2 L376: + 000000A2 E201 MOV #1,R2 + 000000A4 L377: + Snow.c 77 dx = abs(dx); + 000000A4 4411 CMP/PZ R4 + 000000A6 8D02 BT/S L379 + 000000A8 2F22 MOV.L R2,@R15 + 000000AA A001 BRA L380 + 000000AC 6E4B NEG R4,R14 + 000000AE L379: + 000000AE 6E43 MOV R4,R14 + 000000B0 L380: + Snow.c 78 dy = abs(dy); + 000000B0 4511 CMP/PZ R5 + 000000B2 8901 BT L381 + 000000B4 A001 BRA L382 + 000000B6 6B5B NEG R5,R11 + 000000B8 L381: + 000000B8 6B53 MOV R5,R11 + 000000BA L382: + Snow.c 79 setpixel(x, y); + 000000BA 65C3 MOV R12,R5 + 000000BC BFB0 BSR _setpixel + 000000BE 64D3 MOV R13,R4 + Snow.c 80 if(dx > dy) + 000000C0 3EB7 CMP/GT R11,R14 + 000000C2 8F1F BF/S L383 + 000000C4 E401 MOV #1,R4 + Snow.c 81 { + Snow.c 82 cumul = dx / 2; + 000000C6 6AE3 MOV R14,R10 + 000000C8 E300 MOV #0,R3 + 000000CA 33A7 CMP/GT R10,R3 + 000000CC 3A3E ADDC R3,R10 + 000000CE 4A21 SHAR R10 + Snow.c 83 for(i=1 ; i dx) + 000000D8 3AE7 CMP/GT R14,R10 + 000000DA 8F03 BF/S L386 + 000000DC 3D8C ADD R8,R13 + Snow.c 88 { + Snow.c 89 cumul -= dx; + 000000DE 3AE8 SUB R14,R10 + Snow.c 90 y += sy; + 000000E0 62F2 MOV.L @R15,R2 + 000000E2 3C2C ADD R2,R12 + 000000E4 L386: + Snow.c 91 } + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 5 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Snow.c 92 setpixel(x, y); + 000000E4 65C3 MOV R12,R5 + 000000E6 BF9B BSR _setpixel + 000000E8 64D3 MOV R13,R4 + 000000EA 7901 ADD #1,R9 + 000000EC 39E3 CMP/GE R14,R9 + 000000EE 8BF2 BF L385 + 000000F0 A01D BRA L387 + 000000F2 0009 NOP + 000000F4 L413: + 000000F4 3039 .DATA.W H'3039 + 000000F6 0000 .DATA.W 0 + 000000F8 <00000000> .DATA.L __$lastrandom + 000000FC 41C64E6D .DATA.L H'41C64E6D + 00000100 <00000000> .DATA.L _ShapeToDD + 00000104 L383: + Snow.c 93 } + Snow.c 94 } + Snow.c 95 else + Snow.c 96 { + Snow.c 97 cumul = dy / 2; + 00000104 6AB3 MOV R11,R10 + 00000106 E300 MOV #0,R3 + 00000108 33A7 CMP/GT R10,R3 + 0000010A 3A3E ADDC R3,R10 + 0000010C 4A21 SHAR R10 + Snow.c 98 for(i=1 ; i dy) + 00000118 3AB7 CMP/GT R11,R10 + 0000011A 8F02 BF/S L390 + 0000011C 3C3C ADD R3,R12 + Snow.c 103 { + Snow.c 104 cumul -= dy; + 0000011E 3AB8 SUB R11,R10 + Snow.c 105 x += sx; + 00000120 3D8C ADD R8,R13 + 00000122 L390: + Snow.c 106 } + Snow.c 107 setpixel(x, y); + 00000122 65C3 MOV R12,R5 + 00000124 BF7C BSR _setpixel + 00000126 64D3 MOV R13,R4 + 00000128 7901 ADD #1,R9 + 0000012A 39B3 CMP/GE R11,R9 + 0000012C 8BF2 BF L389 + 0000012E L387: + Snow.c 108 } + Snow.c 109 } + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 6 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Snow.c 110 } + 0000012E 7F04 ADD #4,R15 + 00000130 4F26 LDS.L @R15+,PR + 00000132 68F6 MOV.L @R15+,R8 + 00000134 69F6 MOV.L @R15+,R9 + 00000136 6AF6 MOV.L @R15+,R10 + 00000138 6BF6 MOV.L @R15+,R11 + 0000013A 6CF6 MOV.L @R15+,R12 + 0000013C 6DF6 MOV.L @R15+,R13 + 0000013E 000B RTS + 00000140 6EF6 MOV.L @R15+,R14 + Snow.c 111 + Snow.c 112 void drawsprite(unsigned char px, char py, float dirx) + 00000142 _drawsprite: ; function: drawsprite + ; frame size=44 + ; used runtime library name: + ; __adds, __muls, __stoi, __stou, __itos, __lts + 00000142 6043 MOV R4,R0 + 00000144 2FE6 MOV.L R14,@-R15 + 00000146 2FD6 MOV.L R13,@-R15 + 00000148 2FC6 MOV.L R12,@-R15 + 0000014A 2FB6 MOV.L R11,@-R15 + 0000014C 2FA6 MOV.L R10,@-R15 + 0000014E 2F96 MOV.L R9,@-R15 + 00000150 2F86 MOV.L R8,@-R15 + Snow.c 113 { + Snow.c 114 char x; + Snow.c 115 float y; + Snow.c 116 for(y = 0; y < 9; y += 1) + 00000152 E903 MOV #3,R9 + 00000154 4F22 STS.L PR,@-R15 + 00000156 E809 MOV #9,R8 + 00000158 7FF4 ADD #-12,R15 + 0000015A 80F8 MOV.B R0,@(8,R15) + 0000015C 6053 MOV R5,R0 + 0000015E 80F4 MOV.B R0,@(4,R15) + 00000160 2F62 MOV.L R6,@R15 + 00000162 A030 BRA L391 + 00000164 EA00 MOV #0,R10 + 00000166 L392: + Snow.c 117 for(x = 0; x < 3; x++) + 00000166 EB00 MOV #0,R11 + 00000168 84F8 MOV.B @(8,R15),R0 + 0000016A 6D0C EXTU.B R0,R13 + 0000016C D357 MOV.L L414+2,R3 ; __stoi + 0000016E 430B JSR @R3 + 00000170 60A3 MOV R10,R0 + 00000172 6C03 MOV R0,R12 + 00000174 DE56 MOV.L L414+6,R14 ; _sprite + 00000176 6303 MOV R0,R3 + 00000178 4000 SHLL R0 + 0000017A 303C ADD R3,R0 + 0000017C 3E0C ADD R0,R14 + 0000017E L393: + Snow.c 118 if(sprite[(int)y][x] == 1) + 0000017E 60E0 MOV.B @R14,R0 + 00000180 8801 CMP/EQ #1,R0 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 7 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000182 8B15 BF L394 + Snow.c 119 setpixel(px + x + ((9 - (int)y) * dirx), py + (int)y); + 00000184 84F4 MOV.B @(4,R15),R0 + 00000186 6503 MOV R0,R5 + 00000188 D352 MOV.L L414+10,R3 ; __itos + 0000018A 35CC ADD R12,R5 + 0000018C 6083 MOV R8,R0 + 0000018E 430B JSR @R3 + 00000190 30C8 SUB R12,R0 + 00000192 D251 MOV.L L414+14,R2 ; __muls + 00000194 420B JSR @R2 + 00000196 61F2 MOV.L @R15,R1 + 00000198 D34E MOV.L L414+10,R3 ; __itos + 0000019A 6103 MOV R0,R1 + 0000019C 430B JSR @R3 + 0000019E 60D3 MOV R13,R0 + 000001A0 D34E MOV.L L414+18,R3 ; __adds + 000001A2 430B JSR @R3 + 000001A4 0009 NOP + 000001A6 D44E MOV.L L414+22,R4 ; __stou + 000001A8 440B JSR @R4 + 000001AA 0009 NOP + 000001AC BF38 BSR _setpixel + 000001AE 640C EXTU.B R0,R4 + 000001B0 L394: + 000001B0 7B01 ADD #1,R11 + 000001B2 7D01 ADD #1,R13 + 000001B4 63BE EXTS.B R11,R3 + 000001B6 3393 CMP/GE R9,R3 + 000001B8 8FE1 BF/S L393 + 000001BA 7E01 ADD #1,R14 + 000001BC D049 MOV.L L414+26,R0 ; H'3F800000 + 000001BE D347 MOV.L L414+18,R3 ; __adds + 000001C0 430B JSR @R3 + 000001C2 61A3 MOV R10,R1 + 000001C4 6A03 MOV R0,R10 + 000001C6 L391: + 000001C6 D048 MOV.L L414+30,R0 ; H'41100000 + 000001C8 D248 MOV.L L414+34,R2 ; __lts + 000001CA 420B JSR @R2 + 000001CC 61A3 MOV R10,R1 + 000001CE 8800 CMP/EQ #0,R0 + 000001D0 8BC9 BF L392 + Snow.c 120 } + 000001D2 7F0C ADD #12,R15 + 000001D4 4F26 LDS.L @R15+,PR + 000001D6 68F6 MOV.L @R15+,R8 + 000001D8 69F6 MOV.L @R15+,R9 + 000001DA 6AF6 MOV.L @R15+,R10 + 000001DC 6BF6 MOV.L @R15+,R11 + 000001DE 6CF6 MOV.L @R15+,R12 + 000001E0 6DF6 MOV.L @R15+,R13 + 000001E2 000B RTS + 000001E4 6EF6 MOV.L @R15+,R14 + Snow.c 121 + Snow.c 122 #define P2I 6.28318531 + Snow.c 123 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 8 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Snow.c 124 void drawboom(unsigned char px, char py, char boom, float radius) + 000001E6 _drawboom: ; function: drawboom + ; frame size=60 + ; used runtime library name: + ; __adds, __muls, __stod, __stoi, __itos, __ltd + 000001E6 6043 MOV R4,R0 + 000001E8 2FE6 MOV.L R14,@-R15 + 000001EA 2FD6 MOV.L R13,@-R15 + 000001EC 2FC6 MOV.L R12,@-R15 + 000001EE 2FB6 MOV.L R11,@-R15 + 000001F0 2FA6 MOV.L R10,@-R15 + 000001F2 2F96 MOV.L R9,@-R15 + 000001F4 4F22 STS.L PR,@-R15 + 000001F6 7FF0 ADD #-16,R15 + Snow.c 125 { + Snow.c 126 float cnt; + Snow.c 127 + Snow.c 128 for(cnt = 0; cnt < P2I; cnt += radius) + 000001F8 D93D MOV.L L414+38,R9 ; _sinf + 000001FA 80F4 MOV.B R0,@(4,R15) + 000001FC DA3D MOV.L L414+42,R10; _cosf + 000001FE 6053 MOV R5,R0 + 00000200 80FC MOV.B R0,@(12,R15) + 00000202 2F60 MOV.B R6,@R15 + 00000204 1F72 MOV.L R7,@(8,R15) + 00000206 A028 BRA L395 + 00000208 EE00 MOV #0,R14 + 0000020A L396: + Snow.c 129 line(px, py, px + (int)(cosf(cnt) * boom), py + (int)(sinf(cnt) * boom)); + 0000020A 84FC MOV.B @(12,R15),R0 + 0000020C 6B03 MOV R0,R11 + 0000020E 490B JSR @R9 + 00000210 64E3 MOV R14,R4 + 00000212 6203 MOV R0,R2 + 00000214 D32F MOV.L L414+10,R3 ; __itos + 00000216 430B JSR @R3 + 00000218 60F0 MOV.B @R15,R0 + 0000021A 6C03 MOV R0,R12 + 0000021C D32E MOV.L L414+14,R3 ; __muls + 0000021E 430B JSR @R3 + 00000220 6123 MOV R2,R1 + 00000222 D22A MOV.L L414+2,R2 ; __stoi + 00000224 420B JSR @R2 + 00000226 0009 NOP + 00000228 67B3 MOV R11,R7 + 0000022A 370C ADD R0,R7 + 0000022C 2F76 MOV.L R7,@-R15 + 0000022E 84F8 MOV.B @(8,R15),R0 + 00000230 6D03 MOV R0,R13 + 00000232 6DDC EXTU.B R13,R13 + 00000234 4A0B JSR @R10 + 00000236 64E3 MOV R14,R4 + 00000238 D327 MOV.L L414+14,R3 ; __muls + 0000023A 430B JSR @R3 + 0000023C 61C3 MOV R12,R1 + 0000023E D223 MOV.L L414+2,R2 ; __stoi + 00000240 420B JSR @R2 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 9 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000242 0009 NOP + 00000244 66D3 MOV R13,R6 + 00000246 360C ADD R0,R6 + 00000248 65B3 MOV R11,R5 + 0000024A 64D3 MOV R13,R4 + 0000024C BF07 BSR _line + 0000024E 67F6 MOV.L @R15+,R7 + 00000250 50F2 MOV.L @(8,R15),R0 + 00000252 D222 MOV.L L414+18,R2 ; __adds + 00000254 420B JSR @R2 + 00000256 61E3 MOV R14,R1 + 00000258 6E03 MOV R0,R14 + 0000025A L395: + 0000025A 60E3 MOV R14,R0 + 0000025C D326 MOV.L L414+46,R3 ; __stod + 0000025E 7FF8 ADD #-8,R15 + 00000260 430B JSR @R3 + 00000262 2FF6 MOV.L R15,@-R15 + 00000264 D225 MOV.L L414+50,R2 ; H'5474A168 + 00000266 2F26 MOV.L R2,@-R15 + 00000268 D225 MOV.L L414+54,R2 ; H'401921FB + 0000026A D326 MOV.L L414+58,R3 ; __ltd + 0000026C 430B JSR @R3 + 0000026E 2F26 MOV.L R2,@-R15 + 00000270 8800 CMP/EQ #0,R0 + 00000272 8BCA BF L396 + Snow.c 130 } + 00000274 7F10 ADD #16,R15 + 00000276 4F26 LDS.L @R15+,PR + 00000278 69F6 MOV.L @R15+,R9 + 0000027A 6AF6 MOV.L @R15+,R10 + 0000027C 6BF6 MOV.L @R15+,R11 + 0000027E 6CF6 MOV.L @R15+,R12 + 00000280 6DF6 MOV.L @R15+,R13 + 00000282 000B RTS + 00000284 6EF6 MOV.L @R15+,R14 + Snow.c 131 + Snow.c 132 #define CNT 15 + Snow.c 133 + Snow.c 134 struct {unsigned char active;char boom;float dirx, y, x, radius;} fire[CNT]; + Snow.c 135 + Snow.c 136 void display_vram() + 00000286 _display_vram: ; function: display_vram + ; frame size=16 + Snow.c 137 { + Snow.c 138 char *LCD_register_selector = (char*)0xB4000000, *LCD_data_register = (char*)0xB4010000, *mvram; + Snow.c 139 int i, j; + Snow.c 140 mvram = vram; + Snow.c 141 for(i=0 ; i<64 ; i++) + 00000286 E100 MOV #0,R1 + 00000288 D520 MOV.L L414+66,R5 ; H'B4000000 + 0000028A E704 MOV #4,R7 + 0000028C D420 MOV.L L414+70,R4 ; H'B4010000 + 0000028E 6013 MOV R1,R0 + 00000290 2FC6 MOV.L R12,@-R15 + 00000292 2FB6 MOV.L R11,@-R15 + 00000294 2FA6 MOV.L R10,@-R15 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 10 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000296 EB07 MOV #7,R11 + 00000298 D21B MOV.L L414+62,R2 ; _vram + 0000029A EA10 MOV #16,R10 + 0000029C 2F96 MOV.L R9,@-R15 + 0000029E E940 MOV #64,R9 + 000002A0 6C22 MOV.L @R2,R12 + 000002A2 L397: + Snow.c 142 { + Snow.c 143 *LCD_register_selector = 4; + Snow.c 144 *LCD_data_register = i|192; + 000002A2 E3C0 MOV #-64,R3 + 000002A4 2570 MOV.B R7,@R5 + Snow.c 145 *LCD_register_selector = 4; + Snow.c 146 *LCD_data_register = 0; + Snow.c 147 *LCD_register_selector = 7; + Snow.c 148 for(j=0 ; j<16 ; j++) *LCD_data_register = *mvram++; + 000002A6 66A3 MOV R10,R6 + 000002A8 230B OR R0,R3 + 000002AA 2430 MOV.B R3,@R4 + 000002AC 2570 MOV.B R7,@R5 + 000002AE 2410 MOV.B R1,@R4 + 000002B0 25B0 MOV.B R11,@R5 + 000002B2 L398: + 000002B2 4610 DT R6 + 000002B4 63C4 MOV.B @R12+,R3 + 000002B6 8FFC BF/S L398 + 000002B8 2430 MOV.B R3,@R4 + 000002BA 7001 ADD #1,R0 + 000002BC 3093 CMP/GE R9,R0 + 000002BE 8BF0 BF L397 + Snow.c 149 } + Snow.c 150 } + 000002C0 69F6 MOV.L @R15+,R9 + 000002C2 6AF6 MOV.L @R15+,R10 + 000002C4 6BF6 MOV.L @R15+,R11 + 000002C6 000B RTS + 000002C8 6CF6 MOV.L @R15+,R12 + 000002CA L414: + 000002CA 0000 .DATA.W 0 + 000002CC <00000000> .DATA.L __stoi + 000002D0 <00000000> .DATA.L _sprite + 000002D4 <00000000> .DATA.L __itos + 000002D8 <00000000> .DATA.L __muls + 000002DC <00000000> .DATA.L __adds + 000002E0 <00000000> .DATA.L __stou + 000002E4 3F800000 .DATA.L H'3F800000 + 000002E8 41100000 .DATA.L H'41100000 + 000002EC <00000000> .DATA.L __lts + 000002F0 <00000000> .DATA.L _sinf + 000002F4 <00000000> .DATA.L _cosf + 000002F8 <00000000> .DATA.L __stod + 000002FC 5474A168 .DATA.L H'5474A168 + 00000300 401921FB .DATA.L H'401921FB + 00000304 <00000000> .DATA.L __ltd + 00000308 <00000000> .DATA.L _vram + 0000030C B4000000 .DATA.L H'B4000000 + 00000310 B4010000 .DATA.L H'B4010000 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 11 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Snow.c 151 + Snow.c 152 char isMainMenu() + 00000314 _isMainMenu: ; function: isMainMenu + ; frame size=0 + Snow.c 153 { + Snow.c 154 unsigned int ea; + Snow.c 155 unsigned int j; + Snow.c 156 ea = *(unsigned int*)0x8001007C; + 00000314 D342 MOV.L L415+4,R3 ; H'8001007C + Snow.c 157 ea += 0x0490*4; + Snow.c 158 ea = *(unsigned int*)( ea ); + Snow.c 159 j = *(unsigned char*)( ea + 1 ); + Snow.c 160 j *= 4; + Snow.c 161 j = ( ea + j + 4 ) & 0xFFFFFFFC; + 00000316 E1FC MOV #-4,R1 + 00000318 9280 MOV.W L415,R2 ; H'1240 + 0000031A 6432 MOV.L @R3,R4 + 0000031C 342C ADD R2,R4 + 0000031E 6442 MOV.L @R4,R4 + 00000320 8441 MOV.B @(1,R4),R0 + 00000322 650C EXTU.B R0,R5 + 00000324 4508 SHLL2 R5 + 00000326 345C ADD R5,R4 + 00000328 7404 ADD #4,R4 + 0000032A 2419 AND R1,R4 + Snow.c 162 j = *(unsigned int*)( j ) + 1; + 0000032C 6442 MOV.L @R4,R4 + Snow.c 163 + Snow.c 164 return *(unsigned char*)j; + Snow.c 165 } + 0000032E 000B RTS + 00000330 8441 MOV.B @(1,R4),R0 + Snow.c 166 + Snow.c 167 char variable[24]={0}; + Snow.c 168 + Snow.c 169 void snowtimer(void) + 00000332 _snowtimer: ; function: snowtimer + ; frame size=76 + ; used runtime library name: + ; __modlu, __adds, __addd, __subs, __divs, __divdr, __dtos, __stoi, __sto + + u, __utos, __utod, __eqs, __gts, __lts + 00000332 2FE6 MOV.L R14,@-R15 + 00000334 2FD6 MOV.L R13,@-R15 + 00000336 2FC6 MOV.L R12,@-R15 + 00000338 2FB6 MOV.L R11,@-R15 + 0000033A 2FA6 MOV.L R10,@-R15 + 0000033C 2F96 MOV.L R9,@-R15 + 0000033E 2F86 MOV.L R8,@-R15 + 00000340 4F22 STS.L PR,@-R15 + 00000342 7FF8 ADD #-8,R15 + Snow.c 170 { + Snow.c 171 unsigned char x; + Snow.c 172 + Snow.c 173 if(!isMainMenu()) + 00000344 BFE6 BSR _isMainMenu + 00000346 0009 NOP + 00000348 600E EXTS.B R0,R0 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 12 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 0000034A 2008 TST R0,R0 + 0000034C 8901 BT L416 + 0000034E A0F0 BRA L400 + 00000350 0009 NOP + 00000352 L416: + Snow.c 174 { + Snow.c 175 display_vram(); + 00000352 BF98 BSR _display_vram + 00000354 0009 NOP + Snow.c 176 + Snow.c 177 for(x =CNT - 1; x > 0 ; x--) + 00000356 E20E MOV #14,R2 + 00000358 DE32 MOV.L L415+8,R14 ; _fire + 0000035A E80F MOV #15,R8 + 0000035C 945F MOV.W L415+2,R4 ; H'0118 + 0000035E E900 MOV #0,R9 + 00000360 2F20 MOV.B R2,@R15 + 00000362 34EC ADD R14,R4 + 00000364 1F41 MOV.L R4,@(4,R15) + 00000366 6C43 MOV R4,R12 + 00000368 6BC3 MOV R12,R11 + 0000036A L401: + 0000036A 6AF0 MOV.B @R15,R10 + 0000036C 6AAC EXTU.B R10,R10 + 0000036E 63A3 MOV R10,R3 + 00000370 4A08 SHLL2 R10 + 00000372 3A3C ADD R3,R10 + 00000374 4A08 SHLL2 R10 + 00000376 60A3 MOV R10,R0 + 00000378 00EC MOV.B @(R0,R14),R0 + 0000037A 600C EXTU.B R0,R0 + 0000037C 8801 CMP/EQ #1,R0 + 0000037E 8901 BT L417 + 00000380 A083 BRA L402 + 00000382 0009 NOP + 00000384 L417: + Snow.c 178 { + Snow.c 179 if(fire[x].active == 1) + Snow.c 180 { + Snow.c 181 if(fire[x].boom == 0) + 00000384 62A3 MOV R10,R2 + 00000386 32EC ADD R14,R2 + 00000388 8421 MOV.B @(1,R2),R0 + 0000038A 2008 TST R0,R0 + 0000038C 8B62 BF L403 + Snow.c 182 { + Snow.c 183 drawsprite(fire[x].x, fire[x].y, fire[x].dirx); + 0000038E 6DA3 MOV R10,R13 + 00000390 D525 MOV.L L415+12,R5 ; __stoi + 00000392 3DEC ADD R14,R13 + 00000394 56D1 MOV.L @(4,R13),R6 + 00000396 450B JSR @R5 + 00000398 50D2 MOV.L @(8,R13),R0 + 0000039A 650E EXTS.B R0,R5 + 0000039C D423 MOV.L L415+16,R4 ; __stou + 0000039E 440B JSR @R4 + 000003A0 50D3 MOV.L @(12,R13),R0 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 13 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000003A2 BECE BSR _drawsprite + 000003A4 640C EXTU.B R0,R4 + Snow.c 184 fire[x].y -= fire[x].y / 64; + 000003A6 D022 MOV.L L415+20,R0 ; H'42800000 + 000003A8 D322 MOV.L L415+24,R3 ; __divs + 000003AA 430B JSR @R3 + 000003AC 51D2 MOV.L @(8,R13),R1 + 000003AE D222 MOV.L L415+28,R2 ; __subs + 000003B0 420B JSR @R2 + 000003B2 51D2 MOV.L @(8,R13),R1 + 000003B4 1D02 MOV.L R0,@(8,R13) + Snow.c 185 fire[x].x += fire[x].dirx; + 000003B6 50D1 MOV.L @(4,R13),R0 + 000003B8 D320 MOV.L L415+32,R3 ; __adds + 000003BA 430B JSR @R3 + 000003BC 51D3 MOV.L @(12,R13),R1 + 000003BE 1D03 MOV.L R0,@(12,R13) + Snow.c 186 if(fire[x].y == 0 || fire[x].x > 127 || fire[x].x < 0) + 000003C0 51D2 MOV.L @(8,R13),R1 + 000003C2 D21F MOV.L L415+36,R2 ; __eqs + 000003C4 420B JSR @R2 + 000003C6 E000 MOV #0,R0 + 000003C8 8800 CMP/EQ #0,R0 + 000003CA 8B0B BF L405 + 000003CC D01D MOV.L L415+40,R0 ; H'42FE0000 + 000003CE D31E MOV.L L415+44,R3 ; __gts + 000003D0 430B JSR @R3 + 000003D2 51D3 MOV.L @(12,R13),R1 + 000003D4 8800 CMP/EQ #0,R0 + 000003D6 8B05 BF L405 + 000003D8 51D3 MOV.L @(12,R13),R1 + 000003DA D21C MOV.L L415+48,R2 ; __lts + 000003DC 420B JSR @R2 + 000003DE E000 MOV #0,R0 + 000003E0 8800 CMP/EQ #0,R0 + 000003E2 8902 BT L404 + 000003E4 L405: + Snow.c 187 fire[x].active = 0; + 000003E4 63A3 MOV R10,R3 + 000003E6 33EC ADD R14,R3 + 000003E8 2390 MOV.B R9,@R3 + 000003EA L404: + Snow.c 188 if(random(0) % (int)fire[x].y == 0 && fire[x].boom == 0) + 000003EA BE09 BSR _random + 000003EC E400 MOV #0,R4 + 000003EE 6103 MOV R0,R1 + 000003F0 D30D MOV.L L415+12,R3 ; __stoi + 000003F2 64A3 MOV R10,R4 + 000003F4 34EC ADD R14,R4 + 000003F6 430B JSR @R3 + 000003F8 5042 MOV.L @(8,R4),R0 + 000003FA D315 MOV.L L415+52,R3 ; __modlu + 000003FC 430B JSR @R3 + 000003FE 0009 NOP + 00000400 8800 CMP/EQ #0,R0 + 00000402 8901 BT L418 + 00000404 A088 BRA L409 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 14 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000406 0009 NOP + 00000408 L418: + 00000408 8441 MOV.B @(1,R4),R0 + 0000040A 2008 TST R0,R0 + 0000040C 8901 BT L419 + 0000040E A083 BRA L409 + 00000410 0009 NOP + 00000412 L419: + Snow.c 189 fire[x].boom++; + 00000412 3AEC ADD R14,R10 + 00000414 84A1 MOV.B @(1,R10),R0 + 00000416 7001 ADD #1,R0 + 00000418 A07E BRA L409 + 0000041A 80A1 MOV.B R0,@(1,R10) + 0000041C L415: + 0000041C 1240 .DATA.W H'1240 + 0000041E 0118 .DATA.W H'0118 + 00000420 8001007C .DATA.L H'8001007C + 00000424 <00000000> .DATA.L _fire + 00000428 <00000000> .DATA.L __stoi + 0000042C <00000000> .DATA.L __stou + 00000430 42800000 .DATA.L H'42800000 + 00000434 <00000000> .DATA.L __divs + 00000438 <00000000> .DATA.L __subs + 0000043C <00000000> .DATA.L __adds + 00000440 <00000000> .DATA.L __eqs + 00000444 42FE0000 .DATA.L H'42FE0000 + 00000448 <00000000> .DATA.L __gts + 0000044C <00000000> .DATA.L __lts + 00000450 <00000000> .DATA.L __modlu + 00000454 L403: + Snow.c 190 } + Snow.c 191 else + Snow.c 192 { + Snow.c 193 drawboom(fire[x].x, fire[x].y, fire[x].boom++, fire[x].radius); + 00000454 57B4 MOV.L @(16,R11),R7 + 00000456 84B1 MOV.B @(1,R11),R0 + 00000458 D548 MOV.L L420+2,R5 ; __stoi + 0000045A 7001 ADD #1,R0 + 0000045C 80B1 MOV.B R0,@(1,R11) + 0000045E 70FF ADD #-1,R0 + 00000460 6603 MOV R0,R6 + 00000462 450B JSR @R5 + 00000464 50B2 MOV.L @(8,R11),R0 + 00000466 650E EXTS.B R0,R5 + 00000468 D445 MOV.L L420+6,R4 ; __stou + 0000046A 440B JSR @R4 + 0000046C 50B3 MOV.L @(12,R11),R0 + 0000046E BEBA BSR _drawboom + 00000470 640C EXTU.B R0,R4 + Snow.c 194 if(fire[x].boom >= (random(0) % 16) + 16) + 00000472 84B1 MOV.B @(1,R11),R0 + 00000474 2F06 MOV.L R0,@-R15 + 00000476 BDC3 BSR _random + 00000478 E400 MOV #0,R4 + 0000047A 2089 AND R8,R0 + 0000047C 62F6 MOV.L @R15+,R2 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 15 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 0000047E 7010 ADD #16,R0 + 00000480 3202 CMP/HS R0,R2 + 00000482 8B49 BF L409 + Snow.c 195 fire[x].active = 0; + 00000484 51F1 MOV.L @(4,R15),R1 + 00000486 A047 BRA L409 + 00000488 2190 MOV.B R9,@R1 + 0000048A L402: + Snow.c 196 } + Snow.c 197 } + Snow.c 198 else + Snow.c 199 { + Snow.c 200 if(random(0) % 32 == 0) + 0000048A BDB9 BSR _random + 0000048C E400 MOV #0,R4 + 0000048E C81F TST #31,R0 + 00000490 8B42 BF L409 + Snow.c 201 { + Snow.c 202 fire[x].active = 1; + 00000492 E201 MOV #1,R2 + 00000494 2C20 MOV.B R2,@R12 + Snow.c 203 fire[x].x = random(0) % 128; + 00000496 BDB3 BSR _random + 00000498 E400 MOV #0,R4 + 0000049A D23A MOV.L L420+10,R2 ; __utos + 0000049C 420B JSR @R2 + 0000049E C97F AND #127,R0 + 000004A0 1C03 MOV.L R0,@(12,R12) + Snow.c 204 fire[x].dirx = (random(0) % 20) / 10.0 - 1.0; + 000004A2 7FF0 ADD #-16,R15 + 000004A4 BDAC BSR _random + 000004A6 E400 MOV #0,R4 + 000004A8 D237 MOV.L L420+14,R2 ; __modlu + 000004AA 6103 MOV R0,R1 + 000004AC 420B JSR @R2 + 000004AE E014 MOV #20,R0 + 000004B0 D336 MOV.L L420+18,R3 ; __utod + 000004B2 7FF8 ADD #-8,R15 + 000004B4 430B JSR @R3 + 000004B6 2FF6 MOV.L R15,@-R15 + 000004B8 D136 MOV.L L420+26,R1 ; __divdr + 000004BA E200 MOV #0,R2 + 000004BC 2F26 MOV.L R2,@-R15 + 000004BE D234 MOV.L L420+22,R2 ; H'40240000 + 000004C0 2F26 MOV.L R2,@-R15 + 000004C2 63F3 MOV R15,R3 + 000004C4 7310 ADD #16,R3 + 000004C6 410B JSR @R1 + 000004C8 2F36 MOV.L R3,@-R15 + 000004CA E200 MOV #0,R2 + 000004CC D133 MOV.L L420+34,R1 ; __addd + 000004CE 2F26 MOV.L R2,@-R15 + 000004D0 D231 MOV.L L420+30,R2 ; H'BFF00000 + 000004D2 2F26 MOV.L R2,@-R15 + 000004D4 63F3 MOV R15,R3 + 000004D6 7310 ADD #16,R3 + 000004D8 410B JSR @R1 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 16 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000004DA 2F36 MOV.L R3,@-R15 + 000004DC D230 MOV.L L420+38,R2 ; __dtos + 000004DE 420B JSR @R2 + 000004E0 0009 NOP + 000004E2 1C01 MOV.L R0,@(4,R12) + Snow.c 205 fire[x].y = 64; + 000004E4 D32F MOV.L L420+42,R3 ; H'42800000 + Snow.c 206 fire[x].boom = 0; + 000004E6 6093 MOV R9,R0 + 000004E8 1C32 MOV.L R3,@(8,R12) + 000004EA 80C1 MOV.B R0,@(1,R12) + Snow.c 207 fire[x].radius = P2I / ((random(0) % 16) + 8); + 000004EC D32E MOV.L L420+46,R3 ; H'5474A168 + 000004EE 7FF8 ADD #-8,R15 + 000004F0 2F36 MOV.L R3,@-R15 + 000004F2 D32E MOV.L L420+50,R3 ; H'401921FB + 000004F4 2F36 MOV.L R3,@-R15 + 000004F6 BD83 BSR _random + 000004F8 E400 MOV #0,R4 + 000004FA 2089 AND R8,R0 + 000004FC D323 MOV.L L420+18,R3 ; __utod + 000004FE 7FF8 ADD #-8,R15 + 00000500 7008 ADD #8,R0 + 00000502 430B JSR @R3 + 00000504 2FF6 MOV.L R15,@-R15 + 00000506 62F3 MOV R15,R2 + 00000508 D122 MOV.L L420+26,R1 ; __divdr + 0000050A 7210 ADD #16,R2 + 0000050C 410B JSR @R1 + 0000050E 2F26 MOV.L R2,@-R15 + 00000510 D323 MOV.L L420+38,R3 ; __dtos + 00000512 430B JSR @R3 + 00000514 0009 NOP + 00000516 1C04 MOV.L R0,@(16,R12) + 00000518 L409: + 00000518 62F0 MOV.B @R15,R2 + 0000051A 7CEC ADD #-20,R12 + 0000051C 72FF ADD #-1,R2 + 0000051E 2F20 MOV.B R2,@R15 + 00000520 53F1 MOV.L @(4,R15),R3 + 00000522 622C EXTU.B R2,R2 + 00000524 73EC ADD #-20,R3 + 00000526 4215 CMP/PL R2 + 00000528 1F31 MOV.L R3,@(4,R15) + 0000052A 8F02 BF/S L421 + 0000052C 7BEC ADD #-20,R11 + 0000052E AF1C BRA L401 + 00000530 0009 NOP + 00000532 L421: + 00000532 L400: + Snow.c 208 } + Snow.c 209 } + Snow.c 210 } + Snow.c 211 } + Snow.c 212 + Snow.c 213 Alpha_GetData('A',variable); + 00000532 E700 MOV #0,R7 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 17 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000534 D51F MOV.L L420+58,R5 ; _variable + 00000536 6673 MOV R7,R6 + 00000538 D21D MOV.L L420+54,R2 ; _iSysCallFuncPtr + 0000053A 6322 MOV.L @R2,R3 + 0000053C 911D MOV.W L420,R1 ; H'04DF + 0000053E 2F16 MOV.L R1,@-R15 + 00000540 430B JSR @R3 + 00000542 E441 MOV #65,R4 + Snow.c 214 if(variable[0]) + 00000544 D31B MOV.L L420+58,R3 ; _variable + 00000546 6230 MOV.B @R3,R2 + 00000548 2228 TST R2,R2 + 0000054A 8D0C BT/S L411 + 0000054C 7F04 ADD #4,R15 + Snow.c 215 { + Snow.c 216 KillTimer(1); + 0000054E E401 MOV #1,R4 + 00000550 D219 MOV.L L420+62,R2 ; _KillTimer + 00000552 7F08 ADD #8,R15 + 00000554 4F26 LDS.L @R15+,PR + 00000556 68F6 MOV.L @R15+,R8 + 00000558 69F6 MOV.L @R15+,R9 + 0000055A 6AF6 MOV.L @R15+,R10 + 0000055C 6BF6 MOV.L @R15+,R11 + 0000055E 6CF6 MOV.L @R15+,R12 + 00000560 6DF6 MOV.L @R15+,R13 + 00000562 422B JMP @R2 + 00000564 6EF6 MOV.L @R15+,R14 + 00000566 L411: + Snow.c 217 } + Snow.c 218 } + 00000566 7F08 ADD #8,R15 + 00000568 4F26 LDS.L @R15+,PR + 0000056A 68F6 MOV.L @R15+,R8 + 0000056C 69F6 MOV.L @R15+,R9 + 0000056E 6AF6 MOV.L @R15+,R10 + 00000570 6BF6 MOV.L @R15+,R11 + 00000572 6CF6 MOV.L @R15+,R12 + 00000574 6DF6 MOV.L @R15+,R13 + 00000576 000B RTS + 00000578 6EF6 MOV.L @R15+,R14 + 0000057A L420: + 0000057A 04DF .DATA.W H'04DF + 0000057C <00000000> .DATA.L __stoi + 00000580 <00000000> .DATA.L __stou + 00000584 <00000000> .DATA.L __utos + 00000588 <00000000> .DATA.L __modlu + 0000058C <00000000> .DATA.L __utod + 00000590 40240000 .DATA.L H'40240000 + 00000594 <00000000> .DATA.L __divdr + 00000598 BFF00000 .DATA.L H'BFF00000 + 0000059C <00000000> .DATA.L __addd + 000005A0 <00000000> .DATA.L __dtos + 000005A4 42800000 .DATA.L H'42800000 + 000005A8 5474A168 .DATA.L H'5474A168 + 000005AC 401921FB .DATA.L H'401921FB + 000005B0 <00000000> .DATA.L _iSysCallFuncPtr + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 18 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000005B4 <00000000> .DATA.L _variable + 000005B8 <00000000> .DATA.L _KillTimer + Snow.c 219 + Snow.c 220 int AddIn_main(int isAppli, unsigned short OptionNum) + 000005BC _AddIn_main: ; function: AddIn_main + ; frame size=24 + ; used runtime library name: + ; __slow_mvn + 000005BC 2FE6 MOV.L R14,@-R15 + 000005BE 2FD6 MOV.L R13,@-R15 + 000005C0 4F22 STS.L PR,@-R15 + 000005C2 7FF8 ADD #-8,R15 + Snow.c 221 { + Snow.c 222 unsigned int key; + Snow.c 223 unsigned char text[3] = {0xE6, 0x91, 0}; + 000005C4 D22C MOV.L L422+4,R2 ; L343 + 000005C6 61F3 MOV R15,R1 + 000005C8 D32C MOV.L L422+8,R3 ; __slow_mvn + 000005CA 7104 ADD #4,R1 + 000005CC 430B JSR @R3 + 000005CE E003 MOV #3,R0 + Snow.c 224 random(RTC_GetTicks()); + 000005D0 D12B MOV.L L422+12,R1 ; _RTC_GetTicks + 000005D2 410B JSR @R1 + 000005D4 0009 NOP + 000005D6 BD13 BSR _random + 000005D8 6403 MOV R0,R4 + Snow.c 225 vram = Disp_GetVRAMPtr(); + 000005DA D22A MOV.L L422+16,R2 ; _Disp_GetVRAMPtr + 000005DC 420B JSR @R2 + 000005DE 0009 NOP + 000005E0 D329 MOV.L L422+20,R3 ; _vram + Snow.c 226 Alpha_ClearAll(); + 000005E2 E700 MOV #0,R7 + 000005E4 D129 MOV.L L422+24,R1 ; _iSysCallFuncPtr + 000005E6 6673 MOV R7,R6 + 000005E8 2302 MOV.L R0,@R3 + 000005EA 6573 MOV R7,R5 + 000005EC 6212 MOV.L @R1,R2 + 000005EE 9341 MOV.W L422,R3 ; H'04E1 + 000005F0 2F36 MOV.L R3,@-R15 + 000005F2 420B JSR @R2 + 000005F4 6473 MOV R7,R4 + Snow.c 227 AllClr_VRAM(); + 000005F6 D226 MOV.L L422+28,R2 ; _AllClr_VRAM + 000005F8 420B JSR @R2 + 000005FA 0009 NOP + Snow.c 228 locate(3,3); + 000005FC DE25 MOV.L L422+32,R14; _locate + 000005FE E503 MOV #3,R5 + 00000600 4E0B JSR @R14 + 00000602 6453 MOV R5,R4 + Snow.c 229 Print(&"~*| Firework |*~"); + 00000604 DD24 MOV.L L422+36,R13; _Print + 00000606 D425 MOV.L L422+40,R4 ; L347 + 00000608 4D0B JSR @R13 + 0000060A 0009 NOP + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 19 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Snow.c 230 locate(4,1); + 0000060C E501 MOV #1,R5 + 0000060E 4E0B JSR @R14 + 00000610 E404 MOV #4,R4 + Snow.c 231 Print(&"(C) by Casimo"); + 00000612 D423 MOV.L L422+44,R4 ; L348 + 00000614 4D0B JSR @R13 + 00000616 0009 NOP + Snow.c 232 locate(4,5); + 00000618 E505 MOV #5,R5 + 0000061A 4E0B JSR @R14 + 0000061C E404 MOV #4,R4 + Snow.c 233 Print(&"press any key"); + 0000061E D421 MOV.L L422+48,R4 ; L349 + 00000620 4D0B JSR @R13 + 00000622 0009 NOP + Snow.c 234 locate(6,6); + 00000624 E506 MOV #6,R5 + 00000626 4E0B JSR @R14 + 00000628 6453 MOV R5,R4 + Snow.c 235 Print(&"to start"); + 0000062A D41F MOV.L L422+52,R4 ; L350 + 0000062C 4D0B JSR @R13 + 0000062E 0009 NOP + Snow.c 236 locate(4,8); + 00000630 E508 MOV #8,R5 + 00000632 4E0B JSR @R14 + 00000634 E404 MOV #4,R4 + Snow.c 237 Print(&"exit with 1 A"); + 00000636 D41D MOV.L L422+56,R4 ; L351 + 00000638 4D0B JSR @R13 + 0000063A 0009 NOP + Snow.c 238 locate(15,8); + 0000063C E508 MOV #8,R5 + 0000063E 4E0B JSR @R14 + 00000640 E40F MOV #15,R4 + Snow.c 239 Print(&text); + 00000642 64F3 MOV R15,R4 + 00000644 4D0B JSR @R13 + 00000646 7408 ADD #8,R4 + Snow.c 240 display_vram(); + 00000648 BE1D BSR _display_vram + 0000064A 0009 NOP + Snow.c 241 GetKey(&key); + 0000064C D218 MOV.L L422+60,R2 ; _GetKey + 0000064E 64F3 MOV R15,R4 + 00000650 420B JSR @R2 + 00000652 7404 ADD #4,R4 + Snow.c 242 Timer_Install(6, &snowtimer, 300); + 00000654 960F MOV.W L422+2,R6 ; H'012C + 00000656 D517 MOV.L L422+64,R5 ; _snowtimer + 00000658 D317 MOV.L L422+68,R3 ; _Timer_Install + 0000065A 430B JSR @R3 + 0000065C E406 MOV #6,R4 + Snow.c 243 Timer_Start(6); + 0000065E D217 MOV.L L422+72,R2 ; _Timer_Start + 00000660 420B JSR @R2 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 20 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000662 E406 MOV #6,R4 + Snow.c 244 App_PROG(); + 00000664 D316 MOV.L L422+76,R3 ; _App_PROG + 00000666 430B JSR @R3 + 00000668 0009 NOP + Snow.c 245 } + 0000066A 7F0C ADD #12,R15 + 0000066C 4F26 LDS.L @R15+,PR + 0000066E 6DF6 MOV.L @R15+,R13 + 00000670 000B RTS + 00000672 6EF6 MOV.L @R15+,R14 + 00000674 L422: + 00000674 04E1 .DATA.W H'04E1 + 00000676 012C .DATA.W H'012C + 00000678 <00000000> .DATA.L L343 + 0000067C <00000000> .DATA.L __slow_mvn + 00000680 <00000000> .DATA.L _RTC_GetTicks + 00000684 <00000000> .DATA.L _Disp_GetVRAMPtr + 00000688 <00000000> .DATA.L _vram + 0000068C <00000000> .DATA.L _iSysCallFuncPtr + 00000690 <00000000> .DATA.L _AllClr_VRAM + 00000694 <00000000> .DATA.L _locate + 00000698 <00000000> .DATA.L _Print + 0000069C <00000000> .DATA.L L347 + 000006A0 <00000000> .DATA.L L348 + 000006A4 <00000000> .DATA.L L349 + 000006A8 <00000000> .DATA.L L350 + 000006AC <00000000> .DATA.L L351 + 000006B0 <00000000> .DATA.L _GetKey + 000006B4 <00000000> .DATA.L _snowtimer + 000006B8 <00000000> .DATA.L _Timer_Install + 000006BC <00000000> .DATA.L _Timer_Start + 000006C0 <00000000> .DATA.L _App_PROG + Snow.c 246 + Snow.c 247 #pragma section _BR_Size + Snow.c 248 unsigned long BR_Size; + Snow.c 249 #pragma section + Snow.c 250 #pragma section _TOP + Snow.c 251 int InitializeSystem(int isAppli, unsigned short OptionNum) +P_T 00000000 _InitializeSystem: ; function: InitializeSystem + ; frame size=4 + Snow.c 252 {return INIT_ADDIN_APPLICATION(isAppli, OptionNum);} + 00000000 D303 MOV.L L423+2,R3 ; _INIT_ADDIN_APPLICATION + 00000002 7FFC ADD #-4,R15 + 00000004 2F51 MOV.W R5,@R15 + 00000006 65F1 MOV.W @R15,R5 + 00000008 655D EXTU.W R5,R5 + 0000000A 432B JMP @R3 + 0000000C 7F04 ADD #4,R15 + 0000000E L423: + 0000000E 0000 .DATA.W 0 + 00000010 <00000000> .DATA.L _INIT_ADDIN_APPLICATION + Snow.c 253 #pragma section + Snow.c 254 +C 00000000 _SysCallWrapper: ; static: SysCallWrapper + 00000000 D201422B60 .DATA.L H'D201422B,H'60F20000,H'80010070 + F200008001 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 21 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 0070 + 0000000C _sprite: ; static: sprite + 0000000C 0001000101 .DATA.B H'00,H'01,H'00,H'01,H'01,H'01,H'01,H'00,H'01,H'01,H'00,H'01,H'01,H'00,H'01,H'01, + 0101000101 + H'01,H'01,H'00,H'00,H'01,H'00,H'00,H'01,H'00,H'00,H'01 + 0001010001 + 0101010000 + 0100000100 + 0001 + 00000027 L343: + 00000027 E69100 .DATA.B H'E6,H'91,H'00 + 0000002A 00000002 .RES.W 1 + 0000002C L347: + 0000002C 7E2A7C2046 .SDATA "~*| Firework |*~" + 697265776F + 726B207C2A + 7E + 0000003C 00 .DATA.B H'00 + 0000003D 00000001 .RES.B 1 + 0000003E 00000002 .RES.W 1 + 00000040 L348: + 00000040 2843292062 .SDATA "(C) by Casimo" + 7920436173 + 696D6F + 0000004D 00 .DATA.B H'00 + 0000004E 00000002 .RES.W 1 + 00000050 L349: + 00000050 7072657373 .SDATA "press any key" + 20616E7920 + 6B6579 + 0000005D 00 .DATA.B H'00 + 0000005E 00000002 .RES.W 1 + 00000060 L350: + 00000060 746F207374 .SDATA "to start" + 617274 + 00000068 00 .DATA.B H'00 + 00000069 00000001 .RES.B 1 + 0000006A 00000002 .RES.W 1 + 0000006C L351: + 0000006C 6578697420 .SDATA "exit with 1 A" + 7769746820 + 312041 + 00000079 00 .DATA.B H'00 +D 00000000 _iSysCallFuncPtr: ; static: iSysCallFuncPtr + 00000000 <00000000> .DATA.L _SysCallWrapper + 00000004 __$lastrandom: ; static: lastrandom + 00000004 12345678 .DATA.L H'12345678 + 00000008 _variable: ; static: variable + 00000008 00 .DATA.B H'00 + 00000009 0000001701 .DATAB.B 23,0 + 00 +B 00000000 _vram: ; static: vram + 00000000 00000004 .RES.L 1 + 00000004 _fire: ; static: fire + 00000004 0000012C .RES.L 75 +B_B 00000000 _BR_Size: ; static: BR_Size + 00000000 00000004 .RES.L 1 + + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 29-Dec-2012 11:39:59 PAGE 1 + + +******** STATISTICS INFORMATION ******** + + +********** ERROR INFORMATION *********** + +NUMBER OF ERRORS: 0 +NUMBER OF WARNINGS: 0 + + + + +******* SOURCE LINE INFORMATION ******** + +COMPILED SOURCE LINE: 254 + + + +******* SECTION SIZE INFORMATION ******* + +PROGRAM SECTION (P): 000006C4 Byte(s) +PROGRAM SECTION (P_BR_Size): 00000000 Byte(s) +PROGRAM SECTION (P_TOP): 00000014 Byte(s) +CONSTANT SECTION (C): 0000007A Byte(s) +CONSTANT SECTION (C_BR_Size): 00000000 Byte(s) +CONSTANT SECTION (C_TOP): 00000000 Byte(s) +DATA SECTION (D): 00000020 Byte(s) +DATA SECTION (D_BR_Size): 00000000 Byte(s) +DATA SECTION (D_TOP): 00000000 Byte(s) +BSS SECTION (B): 00000130 Byte(s) +BSS SECTION (B_BR_Size): 00000004 Byte(s) +BSS SECTION (B_TOP): 00000000 Byte(s) + + TOTAL PROGRAM SIZE: 000008A6 Byte(s) + + + +********** LABEL INFORMATION *********** + +NUMBER OF EXTERNAL REFERENCE SYMBOLS: 33 +NUMBER OF EXTERNAL DEFINITION SYMBOLS: 17 +NUMBER OF INTERNAL/EXTERNAL SYMBOLS: 101 + + + + + + + + + + + + + + + + + + + + + + +*** COMMAND PARAMETER *** + + + -subcommand=C:\Users\Timo\AppData\Local\Temp\hmk3709.tmp + diff --git a/Debug/Snow.obj b/Debug/Snow.obj new file mode 100644 index 0000000..63a5944 Binary files /dev/null and b/Debug/Snow.obj differ diff --git a/FIREWORK.G1A b/FIREWORK.G1A new file mode 100644 index 0000000..eca8369 Binary files /dev/null and b/FIREWORK.G1A differ diff --git a/FXSH_Build.bat b/FXSH_Build.bat new file mode 100644 index 0000000..833c7d1 --- /dev/null +++ b/FXSH_Build.bat @@ -0,0 +1,22 @@ +@echo off +rem Do not edit! This batch file is created by CASIO fx-9860G SDK. + + +if exist FIREWORK.G1A del FIREWORK.G1A + +cd debug +if exist FXADDINror.bin del FXADDINror.bin +"G:\Casio SDK\OS\SH\Bin\Hmake.exe" Addin.mak +cd .. +if not exist debug\FXADDINror.bin goto error + +"G:\Casio SDK\Tools\MakeAddinHeader363.exe" "G:\Casio SDK\Projekte\Firework" +if not exist FIREWORK.G1A goto error +echo Build has completed. +goto end + +:error +echo Build was not successful. + +:end + diff --git a/Firework.dlr b/Firework.dlr new file mode 100644 index 0000000..f9ce37d --- /dev/null +++ b/Firework.dlr @@ -0,0 +1,6 @@ +[DLSimRunSpace] + +[Breakpoint] +File=G:\Casio SDK\Projekte\Firework\Snow.c +Line=62 +Flags=00001012 diff --git a/Firework.dlw b/Firework.dlw new file mode 100644 index 0000000..c95cf60 --- /dev/null +++ b/Firework.dlw @@ -0,0 +1,138 @@ +[DLSimWorkSpace] + +[_1] +Type=5 +Order=5 +Top=11625 +Left=25110 +Height=570 +Width=1980 +State=0 +Flags=00000020 +Setting=169:1:Snow.c +OptionA=0 + +[_2] +Type=1 +Order=3 +Top=330 +Left=21900 +Height=5115 +Width=5850 +State=0 +Flags=00000001 +OptionA=15 +OptionB=15 + +[_3] +Type=6 +Order=2 +Top=5310 +Left=22065 +Height=6390 +Width=5535 +State=0 +Flags=00000001 +OptionA=0 + +[_4] +Type=7 +Order=8 +Top=270 +Left=16290 +Height=3165 +Width=5565 +State=0 +Flags=00000000 +OptionA=0 + +[_5] +Type=8 +Order=7 +Top=390 +Left=10650 +Height=3225 +Width=5580 +State=0 +Flags=00000000 +OptionA=0 + +[_6] +Type=3 +Order=11 +Top=0 +Left=10788 +Height=6348 +Width=2232 +State=16 +Flags=00000000 +OptionA=0 + +[_7] +Type=2 +Order=10 +Top=6348 +Left=7800 +Height=3588 +Width=5220 +State=16 +Flags=00000000 +OptionA=0 + +[_8] +Type=17 +Order=1 +Top=15 +Left=105 +Height=11115 +Width=2235 +State=0 +Flags=00000000 +OptionA=0 + +[_9] +Type=15 +Order=4 +Top=5325 +Left=12480 +Height=6345 +Width=9525 +State=0 +Flags=00000000 +OptionA=0 + +[_32] +Type=16 +Order=6 +Top=0 +Left=2325 +Height=13395 +Width=9705 +State=0 +Flags=00000030 +Setting=182:1:..\Snow\Snow.c +OptionA=0 + +[_33] +Type=16 +Order=0 +Top=-60 +Left=2385 +Height=13545 +Width=9705 +State=0 +Flags=00000030 +Setting=131:1:Snow.c +OptionA=0 + +[_34] +Type=16 +Order=9 +Top=1125 +Left=1125 +Height=9990 +Width=23610 +State=16 +Flags=00000020 +Setting=25:23:..\Matris\SYSCALLS.src +OptionA=0 diff --git a/Firework.g1w b/Firework.g1w new file mode 100644 index 0000000..acf5486 --- /dev/null +++ b/Firework.g1w @@ -0,0 +1,16 @@ +[DLSimProject] +Name=Firework +Version=1.00.0000 +Model=:fx-9860G.dlm +SourcePath=SRC +MemoryPath=INIT +MemCardPath=SDCard + +[Program1] +Program=FIREWORK.G1A +Debug=Debug\FXADDINror.dbg +LoadAddress=80000000:90100000 + +[Files] +SourceFile=:Snow.c +SourceFile=..\Matris\SYSCALLS.src diff --git a/Fireworks_1.0.rar b/Fireworks_1.0.rar new file mode 100644 index 0000000..1170067 Binary files /dev/null and b/Fireworks_1.0.rar differ diff --git a/INIT/CasioRAM.mem b/INIT/CasioRAM.mem new file mode 100644 index 0000000..8548e9e Binary files /dev/null and b/INIT/CasioRAM.mem differ diff --git a/INIT/CasioRAMCPU.mem b/INIT/CasioRAMCPU.mem new file mode 100644 index 0000000..fd09ac7 Binary files /dev/null and b/INIT/CasioRAMCPU.mem differ diff --git a/MainIcon.bmp b/MainIcon.bmp new file mode 100644 index 0000000..b97d971 Binary files /dev/null and b/MainIcon.bmp differ diff --git a/Readme.txt b/Readme.txt new file mode 100644 index 0000000..b9ccc4c --- /dev/null +++ b/Readme.txt @@ -0,0 +1,2 @@ +Fireworks is a c program for the fx9860. It starts fireworks inside the program-menu. +Copyright by Casimo \ No newline at end of file diff --git a/Screenshot2.bmp b/Screenshot2.bmp new file mode 100644 index 0000000..d7c1945 Binary files /dev/null and b/Screenshot2.bmp differ diff --git a/Screenshot3.bmp b/Screenshot3.bmp new file mode 100644 index 0000000..f337dbf Binary files /dev/null and b/Screenshot3.bmp differ diff --git a/Snow.c b/Snow.c new file mode 100644 index 0000000..12f7efe --- /dev/null +++ b/Snow.c @@ -0,0 +1,254 @@ +#include "mathf.h" + +char *Disp_GetVRAMPtr(void); +int Timer_Install(int TimerID, void (*handler)(void), int delay); +int Timer_Start(int TimerID); +void App_PROG(); +int RTC_GetTicks(); +void AllClear_VRAM(); + +typedef struct{ + unsigned int x1; + unsigned int y1; + unsigned int x2; + unsigned int y2; + unsigned char f[4]; + unsigned int on_bits; + unsigned int off_bits; +} TShape; + +void ShapeToVRAM( TShape* x ); + +char *vram; + +const int SysCallWrapper[] = {0xD201422B,0x60F20000,0x80010070}; +const int (*iSysCallFuncPtr)( int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallWrapper; +#define Alpha_GetData(VarName,Dest) (void)(*iSysCallFuncPtr)( VarName,(int)Dest, 0, 0, 0x04DF) +#define Alpha_ClearAll() (void)(*iSysCallFuncPtr)( 0,0, 0, 0, 0x004E1) + +int InputString( unsigned char*buff, unsigned char *heading, int maxlen ); + +static unsigned int lastrandom=0x12345678; + +unsigned int random( int seed){ + if (seed) lastrandom=seed; + lastrandom = ( 0x41C64E6D*lastrandom ) + 0x3039; + return ( lastrandom >> 16 ); +} + +const char sprite[9][3] = { +{ 0 , 1 , 0 }, +{ 1 , 1 , 1 }, +{ 1 , 0 , 1 }, +{ 1 , 0 , 1 }, +{ 1 , 0 , 1 }, +{ 1 , 1 , 1 }, +{ 0 , 0 , 1 }, +{ 0 , 0 , 1 }, +{ 0 , 0 , 1 } +}; + +#define abs(x) (x < 0)?-x:x +#define sgn(x) (x < 0)?-1:(x == 0)?0:1 + +void setpixel(unsigned char x, char y) +{ + TShape t; + if(x&~127 || y&~63) return; + t.x1 = x; + t.y1 = y; + t.f[0] = 2; + t.f[1] = 1; + t.f[2] = 1; + t.f[3] = 1; + + ShapeToDD(&t); +} + +void line(int x1, int y1, int x2, int y2) +{ + int i, x, y, dx, dy, sx, sy, cumul; + x = x1; + y = y1; + dx = x2 - x1; + dy = y2 - y1; + sx = sgn(dx); + sy = sgn(dy); + dx = abs(dx); + dy = abs(dy); + setpixel(x, y); + if(dx > dy) + { + cumul = dx / 2; + for(i=1 ; i dx) + { + cumul -= dx; + y += sy; + } + setpixel(x, y); + } + } + else + { + cumul = dy / 2; + for(i=1 ; i dy) + { + cumul -= dy; + x += sx; + } + setpixel(x, y); + } + } +} + +void drawsprite(unsigned char px, char py, float dirx) +{ + char x; + float y; + for(y = 0; y < 9; y += 1) + for(x = 0; x < 3; x++) + if(sprite[(int)y][x] == 1) + setpixel(px + x + ((9 - (int)y) * dirx), py + (int)y); +} + +#define P2I 6.28318531 + +void drawboom(unsigned char px, char py, char boom, float radius) +{ + float cnt; + + for(cnt = 0; cnt < P2I; cnt += radius) + line(px, py, px + (int)(cosf(cnt) * boom), py + (int)(sinf(cnt) * boom)); +} + +#define CNT 15 + +struct {unsigned char active;char boom;float dirx, y, x, radius;} fire[CNT]; + +void display_vram() +{ + char *LCD_register_selector = (char*)0xB4000000, *LCD_data_register = (char*)0xB4010000, *mvram; + int i, j; + mvram = vram; + for(i=0 ; i<64 ; i++) + { + *LCD_register_selector = 4; + *LCD_data_register = i|192; + *LCD_register_selector = 4; + *LCD_data_register = 0; + *LCD_register_selector = 7; + for(j=0 ; j<16 ; j++) *LCD_data_register = *mvram++; + } +} + +char isMainMenu() +{ + unsigned int ea; + unsigned int j; + ea = *(unsigned int*)0x8001007C; + ea += 0x0490*4; + ea = *(unsigned int*)( ea ); + j = *(unsigned char*)( ea + 1 ); + j *= 4; + j = ( ea + j + 4 ) & 0xFFFFFFFC; + j = *(unsigned int*)( j ) + 1; + + return *(unsigned char*)j; +} + +char variable[24]={0}; + +void snowtimer(void) +{ + unsigned char x; + + if(!isMainMenu()) + { + display_vram(); + + for(x =CNT - 1; x > 0 ; x--) + { + if(fire[x].active == 1) + { + if(fire[x].boom == 0) + { + drawsprite(fire[x].x, fire[x].y, fire[x].dirx); + fire[x].y -= fire[x].y / 64; + fire[x].x += fire[x].dirx; + if(fire[x].y == 0 || fire[x].x > 127 || fire[x].x < 0) + fire[x].active = 0; + if(random(0) % (int)fire[x].y == 0 && fire[x].boom == 0) + fire[x].boom++; + } + else + { + drawboom(fire[x].x, fire[x].y, fire[x].boom++, fire[x].radius); + if(fire[x].boom >= (random(0) % 16) + 16) + fire[x].active = 0; + } + } + else + { + if(random(0) % 32 == 0) + { + fire[x].active = 1; + fire[x].x = random(0) % 128; + fire[x].dirx = (random(0) % 20) / 10.0 - 1.0; + fire[x].y = 64; + fire[x].boom = 0; + fire[x].radius = P2I / ((random(0) % 16) + 8); + } + } + } + } + + Alpha_GetData('A',variable); + if(variable[0]) + { + KillTimer(1); + } +} + +int AddIn_main(int isAppli, unsigned short OptionNum) +{ + unsigned int key; + unsigned char text[3] = {0xE6, 0x91, 0}; + random(RTC_GetTicks()); + vram = Disp_GetVRAMPtr(); + Alpha_ClearAll(); + AllClr_VRAM(); + locate(3,3); + Print(&"~*| Firework |*~"); + locate(4,1); + Print(&"(C) by Casimo"); + locate(4,5); + Print(&"press any key"); + locate(6,6); + Print(&"to start"); + locate(4,8); + Print(&"exit with 1 A"); + locate(15,8); + Print(&text); + display_vram(); + GetKey(&key); + Timer_Install(6, &snowtimer, 300); + Timer_Start(6); + App_PROG(); +} + +#pragma section _BR_Size +unsigned long BR_Size; +#pragma section +#pragma section _TOP +int InitializeSystem(int isAppli, unsigned short OptionNum) +{return INIT_ADDIN_APPLICATION(isAppli, OptionNum);} +#pragma section + -- cgit v1.3.1