From b221f7e8bc60020b4a63a7d353d9c20deb42d7dd Mon Sep 17 00:00:00 2001 From: schneefux Date: Sun, 12 Jun 2016 20:11:05 +0200 Subject: import into git --- AddinInfo.txt | 12 + Debug/Addin.mak | 121 ++++ Debug/FXADDINror.abs | Bin 0 -> 10440 bytes Debug/FXADDINror.bin | Bin 0 -> 4144 bytes Debug/FXADDINror.dbg | Bin 0 -> 12552 bytes Debug/FXADDINror.fsy | 159 ++++++ Debug/FXADDINror.map | 403 +++++++++++++ Debug/SYSCALLS.obj | Bin 0 -> 5780 bytes Debug/Snow.lst | 1523 ++++++++++++++++++++++++++++++++++++++++++++++++++ Debug/Snow.obj | Bin 0 -> 16100 bytes FXSH_Build.bat | 22 + INIT/CasioRAM.mem | Bin 0 -> 55076 bytes INIT/CasioRAMCPU.mem | Bin 0 -> 80 bytes MainIcon.bmp | Bin 0 -> 138 bytes Readme.txt | 2 + SNOW.G1A | Bin 0 -> 4656 bytes Screenshot.bmp | Bin 0 -> 9270 bytes Screenshot2.bmp | Bin 0 -> 9270 bytes Snow.c | 181 ++++++ Snow.dlr | 13 + Snow.dlw | 126 +++++ Snow.g1w | 16 + Snowfall_1.0.rar | Bin 0 -> 2294 bytes eActivityIcon.bmp | Bin 0 -> 106 bytes 24 files changed, 2578 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 FXSH_Build.bat 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 SNOW.G1A create mode 100644 Screenshot.bmp create mode 100644 Screenshot2.bmp create mode 100644 Snow.c create mode 100644 Snow.dlr create mode 100644 Snow.dlw create mode 100644 Snow.g1w create mode 100644 Snowfall_1.0.rar create mode 100644 eActivityIcon.bmp diff --git a/AddinInfo.txt b/AddinInfo.txt new file mode 100644 index 0000000..212eb72 --- /dev/null +++ b/AddinInfo.txt @@ -0,0 +1,12 @@ +//------------------------------------------------------------------ +// Addin-Application header control file, created with the CASIO SDK +//------------------------------------------------------------------ +[OUTPUT] : "SNOW.G1A" +[BINDATA] : "FXADDINror.bin" +[DISPNAME] : "Snow" +[APPNAME] : "@SNOW" +[VERSION] : "01.00.0000" +[APL_ICON] : "MainIcon.bmp" +[MODULE_NUM] : 0 +[MOD1_TITLE] : "Snow" +[MOD1_ICON] : "eActivityIcon.bmp" diff --git a/Debug/Addin.mak b/Debug/Addin.mak new file mode 100644 index 0000000..3f88e89 --- /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\Snow +OUTDIR = G:\Casio SDK\Projekte\Snow\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..8800839 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..2a7546b 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..4ee6114 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..fd92ca1 --- /dev/null +++ b/Debug/FXADDINror.fsy @@ -0,0 +1,159 @@ +;HITACHI OPTIMIZING LINKAGE EDITOR GENERATED FILE 2012.12.23 +;fsymbol = P + +;SECTION NAME = P + .export _random +_random: .equ h'00300214 + .export _setpixel +_setpixel: .equ h'00300234 + .export _drawsprite +_drawsprite: .equ h'00300272 + .export _display_vram +_display_vram: .equ h'0030044c + .export _isMainMenu +_isMainMenu: .equ h'003004ac + .export _snowtimer +_snowtimer: .equ h'003004ca + .export _AddIn_main +_AddIn_main: .equ h'0030062c + .export _AllClr_DD +_AllClr_DD: .equ h'003007c4 + .export _PutKey +_PutKey: .equ h'003008e4 + .export _App_SYSTEM +_App_SYSTEM: .equ h'003009c4 + .export _RTC_GetTicks +_RTC_GetTicks: .equ h'00300774 + .export _PowerOff +_PowerOff: .equ h'003008c4 + .export _Serial_BufferedTransmitOneByte +_Serial_BufferedTransmitOneByte: .equ h'00300744 + .export _LongToAsc +_LongToAsc: .equ h'00300a04 + .export _Reboot +_Reboot: .equ h'00300884 + .export _App_DYNA +_App_DYNA: .equ h'00300924 + .export _App_EQUA +_App_EQUA: .equ h'00300934 + .export _itoa +_itoa: .equ h'00300864 + .export _Timer_Start +_Timer_Start: .equ h'00300854 + .export _App_LINK +_App_LINK: .equ h'00300974 + .export _PutDisp_DD +_PutDisp_DD: .equ h'003007a4 + .export _Serial_ReadOneByte +_Serial_ReadOneByte: .equ h'00300734 + .export _GlibGetOSVersionInfo +_GlibGetOSVersionInfo: .equ h'003009f4 + .export _BCD_SetAsInt +_BCD_SetAsInt: .equ h'003009e4 + .export _App_FINANCE +_App_FINANCE: .equ h'00300954 + .export _Serial_Close +_Serial_Close: .equ h'00300764 + .export _EditExpression +_EditExpression: .equ h'00300874 + .export _App_RUN_MAT +_App_RUN_MAT: .equ h'003009a4 + .export _Timer_Install +_Timer_Install: .equ h'00300834 + .export _RTC_GetTime +_RTC_GetTime: .equ h'003008b4 + .export _locate +_locate: .equ h'00300814 + .export _App_PROG +_App_PROG: .equ h'00300944 + .export _Sleep +_Sleep: .equ h'003007f4 + .export _App_GRAPH_TABLE +_App_GRAPH_TABLE: .equ h'00300964 + .export _Disp_GetVRAMPtr +_Disp_GetVRAMPtr: .equ h'00300794 + .export _ShapeToDD +_ShapeToDD: .equ h'003008f4 + .export _App_CONICS +_App_CONICS: .equ h'00300914 + .export _RTC_SetDateTime +_RTC_SetDateTime: .equ h'00300894 + .export _App_RECUR +_App_RECUR: .equ h'00300994 + .export _InputString +_InputString: .equ h'00300904 + .export _GetKey +_GetKey: .equ h'00300804 + .export _RTC_Reset +_RTC_Reset: .equ h'003008a4 + .export _DrawLineVRAM +_DrawLineVRAM: .equ h'003007b4 + .export _Print +_Print: .equ h'00300824 + .export _KBD_PRGM_GetKey +_KBD_PRGM_GetKey: .equ h'00300784 + .export _AllClr_VRAM +_AllClr_VRAM: .equ h'003007d4 + .export _App_RUN_STAT +_App_RUN_STAT: .equ h'003009b4 + .export _Serial_Open +_Serial_Open: .equ h'00300754 + .export _AllClr_DDVRAM +_AllClr_DDVRAM: .equ h'003007e4 + .export _App_MEMORY +_App_MEMORY: .equ h'00300984 + .export _Timer_Uninstall +_Timer_Uninstall: .equ h'00300844 + .export _Serial_WriteByte +_Serial_WriteByte: .equ h'003008d4 + .export _InputDateDialog +_InputDateDialog: .equ h'003009d4 + .export ___LINK_PROTECT +___LINK_PROTECT: .equ h'00300a14 + .export _SetQuitHandler +_SetQuitHandler: .equ h'00300a18 + .export _OnAppCloseDefault +_OnAppCloseDefault: .equ h'00300a1e + .export __INITSCT_ADDIN +__INITSCT_ADDIN: .equ h'00300a72 + .export _INIT_ADDIN_APPLICATION +_INIT_ADDIN_APPLICATION: .equ h'00300aba + .export __modlu +__modlu: .equ h'00300b30 + .export __slow_mvn +__slow_mvn: .equ h'00300be8 + .export _rand +_rand: .equ h'00300c20 + .export _Bdel_cychdr +_Bdel_cychdr: .equ h'00300c4c + .export _BfileFLS_CloseFile +_BfileFLS_CloseFile: .equ h'00300c5c + .export _Bkey_Set_RepeatTime_Default +_Bkey_Set_RepeatTime_Default: .equ h'00300c6c + .export _CallbackAtQuitMainFunction +_CallbackAtQuitMainFunction: .equ h'00300c7c + .export _flsFindClose +_flsFindClose: .equ h'00300c8c + .export _GLibAddinAplExecutionCheck +_GLibAddinAplExecutionCheck: .equ h'00300c9c + .export _Hmem_SetMMU +_Hmem_SetMMU: .equ h'00300cac + .export _GetSDKLibraryVersion +_GetSDKLibraryVersion: .equ h'00300cbc + .export _SetTimer +_SetTimer: .equ h'00300cc2 + .export _KillTimer +_KillTimer: .equ h'00300d16 + .export __divls +__divls: .equ h'00300dbc + .export __modls +__modls: .equ h'00300e70 + .export _Bcre_cychdr +_Bcre_cychdr: .equ h'00300f38 + .export _BSrl_DummyWAIT +_BSrl_DummyWAIT: .equ h'00300f48 + .export _Bsta_cychdr +_Bsta_cychdr: .equ h'00300f58 + .export _Bstp_cychdr +_Bstp_cychdr: .equ h'00300f68 + .end diff --git a/Debug/FXADDINror.map b/Debug/FXADDINror.map new file mode 100644 index 0000000..28a561b --- /dev/null +++ b/Debug/FXADDINror.map @@ -0,0 +1,403 @@ +Hitachi Optimizing Linkage Editor (Ver. 7.1.03.000)23-Dec-2012 15:53:44 + +*** Options *** + +-subcommand=C:\Users\Timo\AppData\Local\Temp\hmk53BA.tmp +noprelink +sdebug +rom D=R +nomessage +list "G:\Casio SDK\Projekte\Snow\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\Snow\Debug\Snow.obj" "G:\Casio SDK\Projekte\Snow\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\Snow\Debug\FXADDINror.abs" +-nomessage=1100 +end + +*** Error information *** + +*** Mapping List *** + +SECTION START END SIZE ALIGN + +P_TOP + 00300200 00300213 14 4 +P + 00300214 00300f77 d64 4 +C + 00300f78 00301207 290 4 +D + 00301208 0030122f 28 4 +B_BR_Size + 08100000 08100003 4 4 +B + 08100004 08100107 104 4 +R + 08100108 0810012f 28 4 + +*** Symbol List *** + +SECTION= +FILE= START END SIZE + SYMBOL ADDR SIZE INFO COUNTS OPT + +SECTION=P_TOP +FILE=G:\Casio SDK\Projekte\Snow\Debug\Snow.obj + 00300200 00300213 14 + _InitializeSystem + 00300200 14 func ,g * + +SECTION=P +FILE=G:\Casio SDK\Projekte\Snow\Debug\Snow.obj + 00300214 00300733 520 + _random + 00300214 20 func ,g * + _setpixel + 00300234 3e func ,g * + _drawsprite + 00300272 1da func ,g * + _display_vram + 0030044c 60 func ,g * + _isMainMenu + 003004ac 1e func ,g * + _snowtimer + 003004ca 162 func ,g * + _AddIn_main + 0030062c 108 func ,g * +FILE=G:\Casio SDK\Projekte\Snow\Debug\SYSCALLS.obj + 00300734 00300a13 2e0 + _Serial_ReadOneByte + 00300734 0 none ,g * + _Serial_BufferedTransmitOneByte + 00300744 0 none ,g * + _Serial_Open + 00300754 0 none ,g * + _Serial_Close + 00300764 0 none ,g * + _RTC_GetTicks + 00300774 0 none ,g * + _KBD_PRGM_GetKey + 00300784 0 none ,g * + _Disp_GetVRAMPtr + 00300794 0 none ,g * + _PutDisp_DD + 003007a4 0 none ,g * + _DrawLineVRAM + 003007b4 0 none ,g * + _AllClr_DD + 003007c4 0 none ,g * + _AllClr_VRAM + 003007d4 0 none ,g * + _AllClr_DDVRAM + 003007e4 0 none ,g * + _Sleep + 003007f4 0 none ,g * + _GetKey + 00300804 0 none ,g * + _locate + 00300814 0 none ,g * + _Print + 00300824 0 none ,g * + _Timer_Install + 00300834 0 none ,g * + _Timer_Uninstall + 00300844 0 none ,g * + _Timer_Start + 00300854 0 none ,g * + _itoa + 00300864 0 none ,g * + _EditExpression + 00300874 0 none ,g * + _Reboot + 00300884 0 none ,g * + _RTC_SetDateTime + 00300894 0 none ,g * + _RTC_Reset + 003008a4 0 none ,g * + _RTC_GetTime + 003008b4 0 none ,g * + _PowerOff + 003008c4 0 none ,g * + _Serial_WriteByte + 003008d4 0 none ,g * + _PutKey + 003008e4 0 none ,g * + _ShapeToDD + 003008f4 0 none ,g * + _InputString + 00300904 0 none ,g * + _App_CONICS + 00300914 0 none ,g * + _App_DYNA + 00300924 0 none ,g * + _App_EQUA + 00300934 0 none ,g * + _App_PROG + 00300944 0 none ,g * + _App_FINANCE + 00300954 0 none ,g * + _App_GRAPH_TABLE + 00300964 0 none ,g * + _App_LINK + 00300974 0 none ,g * + _App_MEMORY + 00300984 0 none ,g * + _App_RECUR + 00300994 0 none ,g * + _App_RUN_MAT + 003009a4 0 none ,g * + _App_RUN_STAT + 003009b4 0 none ,g * + _App_SYSTEM + 003009c4 0 none ,g * + _InputDateDialog + 003009d4 0 none ,g * + _BCD_SetAsInt + 003009e4 0 none ,g * + _GlibGetOSVersionInfo + 003009f4 0 none ,g * + _LongToAsc + 00300a04 0 none ,g * +FILE=G:\Casio SDK\OS\FX\lib\setup.obj + 00300a14 00300b2f 11c + ___LINK_PROTECT + 00300a14 4 func ,g * + _SetQuitHandler + 00300a18 6 func ,g * + _OnAppCloseDefault + 00300a1e 54 func ,g * + __INITSCT_ADDIN + 00300a72 48 func ,g * + _INIT_ADDIN_APPLICATION + 00300aba 76 func ,g * +FILE=__modlu + 00300b30 00300be7 b8 + __modlu + 00300b30 0 none ,g * + modlu_L + 00300bc8 0 none ,l * + modlu_zero + 00300bd0 0 none ,l * + A_errno + 00300be0 0 none ,l * + n_zerono + 00300be4 0 none ,l * +FILE=__s_mvn + 00300be8 00300c1f 38 + __slow_mvn + 00300be8 0 none ,g * + SMVN_B + 00300bf6 0 none ,l * + SMVN_END + 00300c18 0 none ,l * +FILE=rand + 00300c20 00300c4b 2c + _rand + 00300c20 2c func ,g * +FILE=_Bdel_cychdr + 00300c4c 00300c5b 10 + _Bdel_cychdr + 00300c4c 0 none ,g * +FILE=_BfileFLS_CloseFile + 00300c5c 00300c6b 10 + _BfileFLS_CloseFile + 00300c5c 0 none ,g * +FILE=_Bkey_Set_RepeatTime_Default + 00300c6c 00300c7b 10 + _Bkey_Set_RepeatTime_Default + 00300c6c 0 none ,g * +FILE=_CallbackAtQuitMainFunction + 00300c7c 00300c8b 10 + _CallbackAtQuitMainFunction + 00300c7c 0 none ,g * +FILE=_flsFindClose + 00300c8c 00300c9b 10 + _flsFindClose + 00300c8c 0 none ,g * +FILE=_GLibAddinAplExecutionCheck + 00300c9c 00300cab 10 + _GLibAddinAplExecutionCheck + 00300c9c 0 none ,g * +FILE=_Hmem_SetMMU + 00300cac 00300cbb 10 + _Hmem_SetMMU + 00300cac 0 none ,g * +FILE=timer + 00300cbc 00300dbb 100 + _GetSDKLibraryVersion + 00300cbc 6 func ,g * + _SetTimer + 00300cc2 54 func ,g * + _KillTimer + 00300d16 44 func ,g * + _Sleep + 00300d5a 62 func ,l * +FILE=__divls + 00300dbc 00300e6f b4 + __divls + 00300dbc 0 none ,g * + divls_zero + 00300e5a 0 none ,l * + A_errno + 00300e68 0 none ,l * + n_zerono + 00300e6c 0 none ,l * +FILE=__modls + 00300e70 00300f37 c8 + __modls + 00300e70 0 none ,g * + modls_L + 00300f16 0 none ,l * + modls_zero + 00300f22 0 none ,l * + A_errno + 00300f30 0 none ,l * + n_zerono + 00300f34 0 none ,l * +FILE=_Bcre_cychdr + 00300f38 00300f47 10 + _Bcre_cychdr + 00300f38 0 none ,g * +FILE=_BSrl_DummyWAIT + 00300f48 00300f57 10 + _BSrl_DummyWAIT + 00300f48 0 none ,g * +FILE=_Bsta_cychdr + 00300f58 00300f67 10 + _Bsta_cychdr + 00300f58 0 none ,g * +FILE=_Bstp_cychdr + 00300f68 00300f77 10 + _Bstp_cychdr + 00300f68 0 none ,g * + +SECTION=C +FILE=G:\Casio SDK\Projekte\Snow\Debug\Snow.obj + 00300f78 003011f1 27a + _SysCallWrapper + 00300f78 c data ,g * + _sprite3 + 00300f84 24 data ,g * + _sprite4 + 00300fa8 40 data ,g * + _sprite5 + 00300fe8 64 data ,g * + _sprite6 + 0030104c 90 data ,g * + _sprite7 + 003010dc c4 data ,g * +FILE=addin_sct + 003011f4 00301207 14 + _B_BGN + 003011f4 0 none ,g * + _B_END + 003011f8 0 none ,g * + _R_BGN + 003011fc 0 none ,g * + _R_END + 00301200 0 none ,g * + _D_ROM + 00301204 0 none ,g * + +SECTION=B_BR_Size +FILE=G:\Casio SDK\Projekte\Snow\Debug\Snow.obj + 08100000 08100003 4 + _BR_Size + 08100000 4 data ,g * + +SECTION=B +FILE=G:\Casio SDK\Projekte\Snow\Debug\Snow.obj + 08100004 08100101 fe + _vram + 08100004 4 data ,g * + _snow + 08100008 fa data ,g * +FILE=_errno + 08100104 08100107 4 + __errno + 08100104 4 data ,g * + +SECTION=R +FILE=G:\Casio SDK\Projekte\Snow\Debug\Snow.obj + 08100108 08100127 20 + _iSysCallFuncPtr + 08100108 4 data ,g * + _lastrandom + 0810010c 4 data ,l * + _variable + 08100110 18 data ,g * +FILE=G:\Casio SDK\OS\FX\lib\setup.obj + 08100128 0810012b 4 + _gb_OnAppClose + 08100128 4 data ,g * +FILE=_rnext + 0810012c 0810012f 4 + __rnext + 0810012c 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..fa9b749 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..582b939 --- /dev/null +++ b/Debug/Snow.lst @@ -0,0 +1,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 + diff --git a/Debug/Snow.obj b/Debug/Snow.obj new file mode 100644 index 0000000..7c99878 Binary files /dev/null and b/Debug/Snow.obj differ diff --git a/FXSH_Build.bat b/FXSH_Build.bat new file mode 100644 index 0000000..a0ab64f --- /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 SNOW.G1A del SNOW.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\Snow" +if not exist SNOW.G1A goto error +echo Build has completed. +goto end + +:error +echo Build was not successful. + +:end + diff --git a/INIT/CasioRAM.mem b/INIT/CasioRAM.mem new file mode 100644 index 0000000..c886ca8 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..26da268 Binary files /dev/null and b/MainIcon.bmp differ diff --git a/Readme.txt b/Readme.txt new file mode 100644 index 0000000..dfeb09a --- /dev/null +++ b/Readme.txt @@ -0,0 +1,2 @@ +Snowfall is a simple c-program that lets you use the RunMat while snow falling down. +Copyright by Casimo \ No newline at end of file diff --git a/SNOW.G1A b/SNOW.G1A new file mode 100644 index 0000000..bc90645 Binary files /dev/null and b/SNOW.G1A differ diff --git a/Screenshot.bmp b/Screenshot.bmp new file mode 100644 index 0000000..3f7ad34 Binary files /dev/null and b/Screenshot.bmp differ diff --git a/Screenshot2.bmp b/Screenshot2.bmp new file mode 100644 index 0000000..b949273 Binary files /dev/null and b/Screenshot2.bmp differ diff --git a/Snow.c b/Snow.c new file mode 100644 index 0000000..ac449c8 --- /dev/null +++ b/Snow.c @@ -0,0 +1,181 @@ +char *Disp_GetVRAMPtr(void); +int Timer_Install(int TimerID, void (*handler)(void), int delay); +int Timer_Start(int TimerID); +void App_RUNMAT(); +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[][] = { +{ 0 , 1 , 0 }, +{ 1 , 1 , 1 }, +{ 1 , 0 , 1 }, +{ 1 , 1 , 1 }, +{ 1 , 1 , 1 }, +{ 1 , 1 , 1 }, +{ 0 , 0 , 1 }, +{ 0 , 0 , 1 }, +{ 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 drawsprite(unsigned char px, char py) +{ + char x, y; + for(y = 0; y < 9; y++) + for(x = 0; x < 3; x++) + if(sprite[x][y] == 1) + setpixel(px + x, py + y); +} + +#define CNT 10 + +struct {unsigned char active, x;char y;float dirx;} 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) + { + drawsprite(fire[x].x, fire[x].y); + fire[x].y --; + fire[x].x += dirx; + if(fire[x].y == 0 || fire[x].x > 127 || fire[x].x < 0) + fire[x].active = 0; + } + else + { + if((rand() * RTC_GetTicks()) % 32 == 0) + { + fire[x].active = 1; + fire[x].x = random(0) % 128; + fire[x].dirx = (random(0) % 30) / 10; + fire[x].y = 64; + } + } + } + } + + 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_RUN_MAT(); +} + +#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 + diff --git a/Snow.dlr b/Snow.dlr new file mode 100644 index 0000000..05bacc4 --- /dev/null +++ b/Snow.dlr @@ -0,0 +1,13 @@ +[DLSimRunSpace] + +[Breakpoint] +File=G:\Casio SDK\Projekte\Snow\Snow.c +Line=303 +Flags=00001012 +Sublevel=1 + +[Breakpoint] +File=G:\Casio SDK\Projekte\Snow\Snow.c +Line=303 +Flags=00001012 +Sublevel=2 diff --git a/Snow.dlw b/Snow.dlw new file mode 100644 index 0000000..3d46d6b --- /dev/null +++ b/Snow.dlw @@ -0,0 +1,126 @@ +[DLSimWorkSpace] + +[_1] +Type=5 +Order=4 +Top=11625 +Left=25110 +Height=570 +Width=1980 +State=0 +Flags=00000020 +Setting=286:1:Snow.c +OptionA=0 + +[_2] +Type=1 +Order=1 +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=7 +Top=270 +Left=16290 +Height=3165 +Width=5565 +State=0 +Flags=00000000 +OptionA=0 + +[_5] +Type=8 +Order=6 +Top=390 +Left=10650 +Height=3225 +Width=5580 +State=0 +Flags=00000000 +OptionA=0 + +[_6] +Type=3 +Order=10 +Top=0 +Left=10788 +Height=6348 +Width=2232 +State=16 +Flags=00000000 +OptionA=0 + +[_7] +Type=2 +Order=9 +Top=6348 +Left=7800 +Height=3588 +Width=5220 +State=16 +Flags=00000000 +OptionA=0 + +[_8] +Type=17 +Order=5 +Top=15 +Left=105 +Height=11115 +Width=2235 +State=0 +Flags=00000000 +OptionA=0 + +[_9] +Type=15 +Order=3 +Top=5325 +Left=12480 +Height=6345 +Width=9525 +State=0 +Flags=00000000 +OptionA=0 + +[_32] +Type=16 +Order=0 +Top=0 +Left=2325 +Height=13395 +Width=9705 +State=0 +Flags=00000030 +Setting=255:17:Snow.c +OptionA=0 + +[_33] +Type=16 +Order=8 +Top=3750 +Left=3870 +Height=10725 +Width=9015 +State=16 +Flags=00000020 +Setting=59:1:..\Matris\SYSCALLS.src +OptionA=0 diff --git a/Snow.g1w b/Snow.g1w new file mode 100644 index 0000000..15dff0a --- /dev/null +++ b/Snow.g1w @@ -0,0 +1,16 @@ +[DLSimProject] +Name=Snow +Version=1.00.0000 +Model=:fx-9860G.dlm +SourcePath=SRC +MemoryPath=INIT +MemCardPath=SDCard + +[Program1] +Program=SNOW.G1A +Debug=Debug\FXADDINror.dbg +LoadAddress=80000000:90100000 + +[Files] +SourceFile=:Snow.c +SourceFile=..\Matris\SYSCALLS.src diff --git a/Snowfall_1.0.rar b/Snowfall_1.0.rar new file mode 100644 index 0000000..b07645d Binary files /dev/null and b/Snowfall_1.0.rar differ diff --git a/eActivityIcon.bmp b/eActivityIcon.bmp new file mode 100644 index 0000000..104a2c6 Binary files /dev/null and b/eActivityIcon.bmp differ -- cgit v1.3.1