From a8d11df1665a48e9ee8ef13b03e0048614e5e3d1 Mon Sep 17 00:00:00 2001 From: schneefux Date: Sun, 12 Jun 2016 19:41:31 +0200 Subject: import into git --- AddinInfo.txt | 12 + Debug/Addin.mak | 201 ++++++ Debug/FXADDINror.abs | Bin 0 -> 8016 bytes Debug/FXADDINror.bin | Bin 0 -> 3420 bytes Debug/FXADDINror.dbg | Bin 0 -> 9136 bytes Debug/FXADDINror.fsy | 65 ++ Debug/FXADDINror.map | 273 ++++++++ Debug/Speed.lst | 1721 +++++++++++++++++++++++++++++++++++++++++++++++++ Debug/Speed.obj | Bin 0 -> 11188 bytes Debug/change_bclk.obj | Bin 0 -> 1576 bytes Debug/change_freq.obj | Bin 0 -> 1576 bytes Debug/change_iclk.obj | Bin 0 -> 1576 bytes Debug/change_pclk.obj | Bin 0 -> 1576 bytes Debug/change_sclk.obj | Bin 0 -> 1576 bytes FXSH_Build.bat | 22 + Hardware.txt | 23 + INIT/CasioRAM.mem | Bin 0 -> 48532 bytes INIT/CasioRAMCPU.mem | Bin 0 -> 80 bytes MainIcon.bmp | Bin 0 -> 138 bytes README.md | 1 + SPEED.G1A | Bin 0 -> 3932 bytes Speed.c | 362 +++++++++++ Speed.dlr | 6 + Speed.dlw | 185 ++++++ Speed.g1w | 20 + change_bclk | 20 + change_bclk.src | 23 + change_freq.src | 22 + change_iclk.src | 22 + change_pclk.src | 22 + change_sclk.src | 23 + eActivityIcon.bmp | Bin 0 -> 106 bytes 32 files changed, 3023 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/Speed.lst create mode 100644 Debug/Speed.obj create mode 100644 Debug/change_bclk.obj create mode 100644 Debug/change_freq.obj create mode 100644 Debug/change_iclk.obj create mode 100644 Debug/change_pclk.obj create mode 100644 Debug/change_sclk.obj create mode 100644 FXSH_Build.bat create mode 100644 Hardware.txt create mode 100644 INIT/CasioRAM.mem create mode 100644 INIT/CasioRAMCPU.mem create mode 100644 MainIcon.bmp create mode 100644 README.md create mode 100644 SPEED.G1A create mode 100644 Speed.c create mode 100644 Speed.dlr create mode 100644 Speed.dlw create mode 100644 Speed.g1w create mode 100644 change_bclk create mode 100644 change_bclk.src create mode 100644 change_freq.src create mode 100644 change_iclk.src create mode 100644 change_pclk.src create mode 100644 change_sclk.src create mode 100644 eActivityIcon.bmp diff --git a/AddinInfo.txt b/AddinInfo.txt new file mode 100644 index 0000000..a82eba2 --- /dev/null +++ b/AddinInfo.txt @@ -0,0 +1,12 @@ +//------------------------------------------------------------------ +// Addin-Application header control file, created with the CASIO SDK +//------------------------------------------------------------------ +[OUTPUT] : "SPEED.G1A" +[BINDATA] : "FXADDINror.bin" +[DISPNAME] : "Speed" +[APPNAME] : "@SPEED" +[VERSION] : "01.00.0000" +[APL_ICON] : "MainIcon.bmp" +[MODULE_NUM] : 0 +[MOD1_TITLE] : "Speed" +[MOD1_ICON] : "eActivityIcon.bmp" diff --git a/Debug/Addin.mak b/Debug/Addin.mak new file mode 100644 index 0000000..0e8c383 --- /dev/null +++ b/Debug/Addin.mak @@ -0,0 +1,201 @@ +################################################ +# 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\Speed +OUTDIR = G:\Casio SDK\Projekte\Speed\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=Speed +FILESRC0="$(APPDIR)\$(FILE0).c" +FILEOBJ0="$(OUTDIR)\$(FILE0).obj" +FILE1=change_freq +FILESRC1="$(APPDIR)\$(FILE1).src" +FILEOBJ1="$(OUTDIR)\$(FILE1).obj" +FILE2=change_iclk +FILESRC2="$(APPDIR)\$(FILE2).src" +FILEOBJ2="$(OUTDIR)\$(FILE2).obj" +FILE3=change_pclk +FILESRC3="$(APPDIR)\$(FILE3).src" +FILEOBJ3="$(OUTDIR)\$(FILE3).obj" +FILE4=change_bclk +FILESRC4="$(APPDIR)\$(FILE4).src" +FILEOBJ4="$(OUTDIR)\$(FILE4).obj" +FILE5=change_sclk +FILESRC5="$(APPDIR)\$(FILE5).src" +FILEOBJ5="$(OUTDIR)\$(FILE5).obj" +RFILE=FXADDINror +USERALLOBJ=$(FILEOBJ0) $(FILEOBJ1) $(FILEOBJ2) $(FILEOBJ3) $(FILEOBJ4) $(FILEOBJ5) + +####################### +# 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 +<< + +$(FILEOBJ2) : $(FILESRC2) + "$(SH_EXEDIR)\$(SHASM03_EXE)" -subcommand=<< +$(FILESRC2) +-cpu=sh3 +-endian=big +-round=zero +-denormalize=off +-include="$(APPDIR)" +-include="$(OSDIR)\FX\include" +-debug +-object=$(FILEOBJ2) +-literal=pool,branch,jump,return +-nologo +-chgincpath +-errorpath +<< + +$(FILEOBJ3) : $(FILESRC3) + "$(SH_EXEDIR)\$(SHASM03_EXE)" -subcommand=<< +$(FILESRC3) +-cpu=sh3 +-endian=big +-round=zero +-denormalize=off +-include="$(APPDIR)" +-include="$(OSDIR)\FX\include" +-debug +-object=$(FILEOBJ3) +-literal=pool,branch,jump,return +-nologo +-chgincpath +-errorpath +<< + +$(FILEOBJ4) : $(FILESRC4) + "$(SH_EXEDIR)\$(SHASM03_EXE)" -subcommand=<< +$(FILESRC4) +-cpu=sh3 +-endian=big +-round=zero +-denormalize=off +-include="$(APPDIR)" +-include="$(OSDIR)\FX\include" +-debug +-object=$(FILEOBJ4) +-literal=pool,branch,jump,return +-nologo +-chgincpath +-errorpath +<< + +$(FILEOBJ5) : $(FILESRC5) + "$(SH_EXEDIR)\$(SHASM03_EXE)" -subcommand=<< +$(FILESRC5) +-cpu=sh3 +-endian=big +-round=zero +-denormalize=off +-include="$(APPDIR)" +-include="$(OSDIR)\FX\include" +-debug +-object=$(FILEOBJ5) +-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..e8116cc 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..a6ab777 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..5484c46 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..4e94ca2 --- /dev/null +++ b/Debug/FXADDINror.fsy @@ -0,0 +1,65 @@ +;HITACHI OPTIMIZING LINKAGE EDITOR GENERATED FILE 2012.10.18 +;fsymbol = P + +;SECTION NAME = P + .export _printXY +_printXY: .equ h'0030020c + .export _update +_update: .equ h'0030022c + .export _AddIn_main +_AddIn_main: .equ h'003006b0 + .export _change_freq +_change_freq: .equ h'003007fc + .export _change_iclk +_change_iclk: .equ h'00300828 + .export _change_pclk +_change_pclk: .equ h'00300854 + .export _change_bclk +_change_bclk: .equ h'00300880 + .export _change_sclk +_change_sclk: .equ h'003008ac + .export ___LINK_PROTECT +___LINK_PROTECT: .equ h'003008d8 + .export _SetQuitHandler +_SetQuitHandler: .equ h'003008dc + .export _OnAppCloseDefault +_OnAppCloseDefault: .equ h'003008e2 + .export __INITSCT_ADDIN +__INITSCT_ADDIN: .equ h'00300936 + .export _INIT_ADDIN_APPLICATION +_INIT_ADDIN_APPLICATION: .equ h'0030097e + .export _Bdel_cychdr +_Bdel_cychdr: .equ h'003009f4 + .export _Bdisp_AllClr_VRAM +_Bdisp_AllClr_VRAM: .equ h'00300a04 + .export _Bdisp_PutDisp_DD +_Bdisp_PutDisp_DD: .equ h'00300a14 + .export _BfileFLS_CloseFile +_BfileFLS_CloseFile: .equ h'00300a24 + .export _Bkey_Set_RepeatTime_Default +_Bkey_Set_RepeatTime_Default: .equ h'00300a34 + .export _CallbackAtQuitMainFunction +_CallbackAtQuitMainFunction: .equ h'00300a44 + .export _flsFindClose +_flsFindClose: .equ h'00300a54 + .export _GetKey +_GetKey: .equ h'00300a64 + .export _GLibAddinAplExecutionCheck +_GLibAddinAplExecutionCheck: .equ h'00300a74 + .export _Hmem_SetMMU +_Hmem_SetMMU: .equ h'00300a84 + .export _PrintMini +_PrintMini: .equ h'00300a94 + .export _locate +_locate: .equ h'00300ab0 + .export _Bdisp_ReadArea_DD +_Bdisp_ReadArea_DD: .equ h'00300ad8 + .export __divls +__divls: .equ h'00300c0c + .export _DD_GET +_DD_GET: .equ h'00300cc0 + .export _locate_OS +_locate_OS: .equ h'00300cd0 + .export _PrintMiniSd +_PrintMiniSd: .equ h'00300ce0 + .end diff --git a/Debug/FXADDINror.map b/Debug/FXADDINror.map new file mode 100644 index 0000000..8c7f931 --- /dev/null +++ b/Debug/FXADDINror.map @@ -0,0 +1,273 @@ +Hitachi Optimizing Linkage Editor (Ver. 7.1.03.000)18-Oct-2012 16:26:35 + +*** Options *** + +-subcommand=C:\Users\Timo\AppData\Local\Temp\hmkFE3D.tmp +noprelink +sdebug +rom D=R +nomessage +list "G:\Casio SDK\Projekte\Speed\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\Speed\Debug\Speed.obj" "G:\Casio SDK\Projekte\Speed\Debug\change_freq.obj" "G:\Casio SDK\Projekte\Speed\Debug\change_iclk.obj" "G:\Casio SDK\Projekte\Speed\Debug\change_pclk.obj" "G:\Casio SDK\Projekte\Speed\Debug\change_bclk.obj" "G:\Casio SDK\Projekte\Speed\Debug\change_sclk.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\Speed\Debug\FXADDINror.abs" +-nomessage=1100 +end + +*** Error information *** + +*** Mapping List *** + +SECTION START END SIZE ALIGN + +P_TOP + 00300200 0030020b c 4 +P + 0030020c 00300cef ae4 4 +C + 00300cf0 00300f4b 25c 4 +D + 00300f4c 00300f5b 10 4 +B_BR_Size + 08100000 08100003 4 4 +B + 08100004 08100007 4 4 +R + 08100008 08100017 10 4 + +*** Symbol List *** + +SECTION= +FILE= START END SIZE + SYMBOL ADDR SIZE INFO COUNTS OPT + +SECTION=P_TOP +FILE=G:\Casio SDK\Projekte\Speed\Debug\Speed.obj + 00300200 0030020b c + _InitializeSystem + 00300200 c func ,g * + +SECTION=P +FILE=G:\Casio SDK\Projekte\Speed\Debug\Speed.obj + 0030020c 003007fb 5f0 + _printXY + 0030020c 20 func ,g * + _update + 0030022c 484 func ,g * + _AddIn_main + 003006b0 14c func ,g * +FILE=G:\Casio SDK\Projekte\Speed\Debug\change_freq.obj + 003007fc 00300827 2c + _change_freq + 003007fc 0 none ,g * +FILE=G:\Casio SDK\Projekte\Speed\Debug\change_iclk.obj + 00300828 00300853 2c + _change_iclk + 00300828 0 none ,g * +FILE=G:\Casio SDK\Projekte\Speed\Debug\change_pclk.obj + 00300854 0030087f 2c + _change_pclk + 00300854 0 none ,g * +FILE=G:\Casio SDK\Projekte\Speed\Debug\change_bclk.obj + 00300880 003008ab 2c + _change_bclk + 00300880 0 none ,g * +FILE=G:\Casio SDK\Projekte\Speed\Debug\change_sclk.obj + 003008ac 003008d7 2c + _change_sclk + 003008ac 0 none ,g * +FILE=G:\Casio SDK\OS\FX\lib\setup.obj + 003008d8 003009f3 11c + ___LINK_PROTECT + 003008d8 4 func ,g * + _SetQuitHandler + 003008dc 6 func ,g * + _OnAppCloseDefault + 003008e2 54 func ,g * + __INITSCT_ADDIN + 00300936 48 func ,g * + _INIT_ADDIN_APPLICATION + 0030097e 76 func ,g * +FILE=_Bdel_cychdr + 003009f4 00300a03 10 + _Bdel_cychdr + 003009f4 0 none ,g * +FILE=_Bdisp_AllClr_VRAM + 00300a04 00300a13 10 + _Bdisp_AllClr_VRAM + 00300a04 0 none ,g * +FILE=_Bdisp_PutDisp_DD + 00300a14 00300a23 10 + _Bdisp_PutDisp_DD + 00300a14 0 none ,g * +FILE=_BfileFLS_CloseFile + 00300a24 00300a33 10 + _BfileFLS_CloseFile + 00300a24 0 none ,g * +FILE=_Bkey_Set_RepeatTime_Default + 00300a34 00300a43 10 + _Bkey_Set_RepeatTime_Default + 00300a34 0 none ,g * +FILE=_CallbackAtQuitMainFunction + 00300a44 00300a53 10 + _CallbackAtQuitMainFunction + 00300a44 0 none ,g * +FILE=_flsFindClose + 00300a54 00300a63 10 + _flsFindClose + 00300a54 0 none ,g * +FILE=_getkey + 00300a64 00300a73 10 + _GetKey + 00300a64 0 none ,g * +FILE=_GLibAddinAplExecutionCheck + 00300a74 00300a83 10 + _GLibAddinAplExecutionCheck + 00300a74 0 none ,g * +FILE=_Hmem_SetMMU + 00300a84 00300a93 10 + _Hmem_SetMMU + 00300a84 0 none ,g * +FILE=dispbios + 00300a94 00300c09 176 + _PrintMini + 00300a94 1c func ,g * + _locate + 00300ab0 28 func ,g * + _Bdisp_ReadArea_DD + 00300ad8 132 func ,g * +FILE=__divls + 00300c0c 00300cbf b4 + __divls + 00300c0c 0 none ,g * + divls_zero + 00300caa 0 none ,l * + A_errno + 00300cb8 0 none ,l * + n_zerono + 00300cbc 0 none ,l * +FILE=_DD_GET + 00300cc0 00300ccf 10 + _DD_GET + 00300cc0 0 none ,g * +FILE=_locate + 00300cd0 00300cdf 10 + _locate_OS + 00300cd0 0 none ,g * +FILE=_PrintMiniSd + 00300ce0 00300cef 10 + _PrintMiniSd + 00300ce0 0 none ,g * + +SECTION=C +FILE=G:\Casio SDK\Projekte\Speed\Debug\Speed.obj + 00300cf0 00300f37 248 + _PLLs + 00300cf0 38 data ,g * + _DIVs + 00300d28 30 data ,g * +FILE=addin_sct + 00300f38 00300f4b 14 + _B_BGN + 00300f38 0 none ,g * + _B_END + 00300f3c 0 none ,g * + _R_BGN + 00300f40 0 none ,g * + _R_END + 00300f44 0 none ,g * + _D_ROM + 00300f48 0 none ,g * + +SECTION=B_BR_Size +FILE=G:\Casio SDK\Projekte\Speed\Debug\Speed.obj + 08100000 08100003 4 + _BR_Size + 08100000 4 data ,g * + +SECTION=B +FILE=_errno + 08100004 08100007 4 + __errno + 08100004 4 data ,g * + +SECTION=R +FILE=G:\Casio SDK\Projekte\Speed\Debug\Speed.obj + 08100008 08100013 c + _key + 08100008 4 data ,g * + _cur + 0810000c 4 data ,g * + _FRQCR + 08100010 4 data ,g * +FILE=G:\Casio SDK\OS\FX\lib\setup.obj + 08100014 08100017 4 + _gb_OnAppClose + 08100014 4 data ,g * + +Absolute value symbols +FILE=_Bdel_cychdr + __JumpTableTOP + 80010070 0 none ,l * +FILE=_Bdisp_AllClr_VRAM + __JumpTableTOP + 80010070 0 none ,l * +FILE=_Bdisp_PutDisp_DD + __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=_getkey + __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=_DD_GET + __JumpTableTOP + 80010070 0 none ,l * +FILE=_locate + __JumpTableTOP + 80010070 0 none ,l * +FILE=_PrintMiniSd + __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/Speed.lst b/Debug/Speed.lst new file mode 100644 index 0000000..ae95f38 --- /dev/null +++ b/Debug/Speed.lst @@ -0,0 +1,1721 @@ +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 1 + +************ OBJECT LISTING ************ + +FILE NAME: G:\Casio SDK\Projekte\Speed\Speed.c + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Speed.c 1 #include "fxlib.h" + Speed.c 2 + Speed.c 3 #define PLL_28x /*0011011*/ 27 // 101.5 MHz + Speed.c 4 #define PLL_26x /*0011001*/ 25 // 94.3 MHz + Speed.c 5 #define PLL_24x /*0010111*/ 23 // 87 MHz + Speed.c 6 #define PLL_20x /*0010011*/ 19 // 72.5 MHz + Speed.c 7 #define PLL_18x /*0010001*/ 17 // 65.25 MHz + Speed.c 8 #define PLL_16x /*0001111*/ 15 // 58 MHz (NORMAL SPEED) + Speed.c 9 #define PLL_15x /*0001110*/ 14 // 54.37 MHz + Speed.c 10 #define PLL_12x /*0001011*/ 11 // 43.5 MHz + Speed.c 11 #define PLL_8x /*0000111*/ 7 // 29 MHz + Speed.c 12 #define PLL_6x /*0000101*/ 5 // 21.75 MHz + Speed.c 13 #define PLL_4x /*0000011*/ 3 // 14.5 MHz + Speed.c 14 #define PLL_3x /*0000010*/ 2 // 10.8 MHz + Speed.c 15 #define PLL_2x /*0000001*/ 1 // 7.25 MHz + Speed.c 16 #define PLL_1x /*0000000*/ 0 // 3.6 MHz + Speed.c 17 + Speed.c 18 #define ICLK_2 /*00000*/ 0 + Speed.c 19 #define ICLK_3 /*00001*/ 1 + Speed.c 20 #define ICLK_4 /*00010*/ 2 + Speed.c 21 #define ICLK_6 /*00011*/ 3 + Speed.c 22 #define ICLK_8 /*00100*/ 4 + Speed.c 23 #define ICLK_12 /*00101*/ 5 + Speed.c 24 #define ICLK_16 /*00110*/ 6 + Speed.c 25 #define ICLK_24 /*00111*/ 7 + Speed.c 26 #define ICLK_32 /*01000*/ 8 + Speed.c 27 #define ICLK_36 /*01001*/ 9 + Speed.c 28 #define ICLK_48 /*01010*/ 10 + Speed.c 29 #define ICLK_72 /*01011*/ 11 + Speed.c 30 + Speed.c 31 const int PLLs[] = {PLL_1x, PLL_2x, PLL_3x, PLL_4x, PLL_6x, PLL_8x, PLL_12x, PLL_15x, PLL_16x, PLL_18x, PL + +L_20x, PLL_24x, PLL_26x, PLL_28x}; + Speed.c 32 const int DIVs[] = {ICLK_2, ICLK_3, ICLK_4, ICLK_6, ICLK_8, ICLK_12, ICLK_16, ICLK_24, ICLK_32, ICLK_36, I + +CLK_48, ICLK_72}; + Speed.c 33 + Speed.c 34 int key = 0; + Speed.c 35 char*cur = 0x00000000; + Speed.c 36 volatile unsigned int*FRQCR = (unsigned int*) 0xA4150000; + Speed.c 37 + Speed.c 38 void printXY(int x, int y, char *text, int useless) +P 00000000 _printXY: ; function: printXY + ; frame size=8 + 00000000 7FF8 ADD #-8,R15 + Speed.c 39 { + Speed.c 40 PrintMini(x * 6,y * 6, text, MINI_OVER); + 00000002 E710 MOV #16,R7 + 00000004 2F42 MOV.L R4,@R15 + 00000006 6353 MOV R5,R3 + 00000008 1F51 MOV.L R5,@(4,R15) + 0000000A 4308 SHLL2 R3 + 0000000C 64F2 MOV.L @R15,R4 + 0000000E 4500 SHLL R5 + 00000010 353C ADD R3,R5 + 00000012 6343 MOV R4,R3 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 2 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000014 4400 SHLL R4 + 00000016 4308 SHLL2 R3 + 00000018 343C ADD R3,R4 + 0000001A D341 MOV.L L560,R3 ; _PrintMini + 0000001C 432B JMP @R3 + 0000001E 7F08 ADD #8,R15 + Speed.c 41 } + Speed.c 42 + Speed.c 43 void update(void) { + 00000020 _update: ; function: update + ; frame size=32 + 00000020 2FE6 MOV.L R14,@-R15 + 00000022 2FD6 MOV.L R13,@-R15 + 00000024 2FC6 MOV.L R12,@-R15 + 00000026 2FB6 MOV.L R11,@-R15 + 00000028 2FA6 MOV.L R10,@-R15 + 0000002A 2F96 MOV.L R9,@-R15 + 0000002C 2F86 MOV.L R8,@-R15 + 0000002E 4F22 STS.L PR,@-R15 + Speed.c 44 int warning = 0; + Speed.c 45 Bdisp_AllClr_VRAM(); + 00000030 D33C MOV.L L560+4,R3 ; _Bdisp_AllClr_VRAM + 00000032 430B JSR @R3 + 00000034 ED00 MOV #0,R13 + Speed.c 46 printXY(2, 1, " Operating Frequency", MINI_OVER); + 00000036 E710 MOV #16,R7 + 00000038 D63B MOV.L L560+8,R6 ; L311 + 0000003A E501 MOV #1,R5 + 0000003C BFE0 BSR _printXY + 0000003E E402 MOV #2,R4 + Speed.c 47 printXY(3, 2, " Freq:", MINI_OVER); + 00000040 D63A MOV.L L560+12,R6 ; L312 + 00000042 E502 MOV #2,R5 + 00000044 E710 MOV #16,R7 + 00000046 BFDB BSR _printXY + 00000048 E403 MOV #3,R4 + Speed.c 48 printXY(3, 3, " ICLK:", MINI_OVER); + 0000004A E710 MOV #16,R7 + 0000004C D638 MOV.L L560+16,R6 ; L313 + 0000004E E503 MOV #3,R5 + 00000050 BFD6 BSR _printXY + 00000052 6453 MOV R5,R4 + Speed.c 49 printXY(3, 4, " PCLK:", MINI_OVER); + 00000054 D637 MOV.L L560+20,R6 ; L314 + 00000056 E504 MOV #4,R5 + 00000058 E710 MOV #16,R7 + 0000005A BFD1 BSR _printXY + 0000005C E403 MOV #3,R4 + Speed.c 50 printXY(3, 5, " BCLK:", MINI_OVER); + 0000005E E710 MOV #16,R7 + 00000060 D635 MOV.L L560+24,R6 ; L315 + 00000062 E505 MOV #5,R5 + 00000064 BFCC BSR _printXY + 00000066 E403 MOV #3,R4 + Speed.c 51 printXY(3, 6, " SCLK:", MINI_OVER); + 00000068 D634 MOV.L L560+28,R6 ; L316 + 0000006A E506 MOV #6,R5 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 3 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 0000006C E710 MOV #16,R7 + 0000006E BFC7 BSR _printXY + 00000070 E403 MOV #3,R4 + Speed.c 52 printXY(1, 7, " U/D - FRQ, L/R - ICLK", MINI_OVER); + 00000072 E710 MOV #16,R7 + 00000074 D632 MOV.L L560+32,R6 ; L317 + 00000076 E507 MOV #7,R5 + 00000078 BFC2 BSR _printXY + 0000007A E401 MOV #1,R4 + Speed.c 53 switch((*FRQCR & 0x3F000000) >> 24) { + 0000007C DB31 MOV.L L560+36,R11; L333 + 0000007E DC32 MOV.L L560+40,R12; _FRQCR + 00000080 DE32 MOV.L L560+44,R14; _cur + 00000082 60C2 MOV.L @R12,R0 + 00000084 D332 MOV.L L560+48,R3 ; H'3F000000 + 00000086 6002 MOV.L @R0,R0 + 00000088 2039 AND R3,R0 + 0000008A 4029 SHLR16 R0 + 0000008C 4019 SHLR8 R0 + 0000008E 881B CMP/EQ #27,R0 + 00000090 891B BT L387 + 00000092 8819 CMP/EQ #25,R0 + 00000094 891D BT L389 + 00000096 8817 CMP/EQ #23,R0 + 00000098 891E BT L391 + 0000009A 8813 CMP/EQ #19,R0 + 0000009C 891F BT L393 + 0000009E 8811 CMP/EQ #17,R0 + 000000A0 8920 BT L395 + 000000A2 880F CMP/EQ #15,R0 + 000000A4 8921 BT L397 + 000000A6 880E CMP/EQ #14,R0 + 000000A8 8922 BT L399 + 000000AA 880B CMP/EQ #11,R0 + 000000AC 8923 BT L401 + 000000AE 8807 CMP/EQ #7,R0 + 000000B0 8924 BT L403 + 000000B2 8805 CMP/EQ #5,R0 + 000000B4 8925 BT L405 + 000000B6 8803 CMP/EQ #3,R0 + 000000B8 8926 BT L407 + 000000BA 8802 CMP/EQ #2,R0 + 000000BC 8927 BT L409 + 000000BE 8801 CMP/EQ #1,R0 + 000000C0 8928 BT L411 + 000000C2 8800 CMP/EQ #0,R0 + 000000C4 8929 BT L413 + 000000C6 A061 BRA L415 + 000000C8 0009 NOP + 000000CA L387: ; case label + Speed.c 54 case PLL_28x: + Speed.c 55 cur = " 101.5 MHz !!!"; + 000000CA D122 MOV.L L560+52,R1 ; L319 + 000000CC 2E12 MOV.L R1,@R14 + Speed.c 56 warning = 1; + Speed.c 57 break; + 000000CE A05E BRA L492 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 4 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000000D0 ED01 MOV #1,R13 + 000000D2 L389: ; case label + Speed.c 58 case PLL_26x: + Speed.c 59 cur = " 94.3 MHz"; + 000000D2 D121 MOV.L L560+56,R1 ; L320 + Speed.c 60 break; + 000000D4 A022 BRA L532 + 000000D6 0009 NOP + 000000D8 L391: ; case label + Speed.c 61 case PLL_24x: + Speed.c 62 cur = " 87 MHz"; + 000000D8 D020 MOV.L L560+60,R0 ; L321 + Speed.c 63 break; + 000000DA A01C BRA L531 + 000000DC 0009 NOP + 000000DE L393: ; case label + Speed.c 64 case PLL_20x: + Speed.c 65 cur = " 72.5 MHz"; + 000000DE D120 MOV.L L560+64,R1 ; L322 + Speed.c 66 break; + 000000E0 A01C BRA L532 + 000000E2 0009 NOP + 000000E4 L395: ; case label + Speed.c 67 case PLL_18x: + Speed.c 68 cur = " 65.3 MHz"; + 000000E4 D01F MOV.L L560+68,R0 ; L323 + Speed.c 69 break; + 000000E6 A016 BRA L531 + 000000E8 0009 NOP + 000000EA L397: ; case label + Speed.c 70 case PLL_16x: + Speed.c 71 cur = " 58 MHz (NORM)"; + 000000EA D11F MOV.L L560+72,R1 ; L324 + Speed.c 72 break; + 000000EC A016 BRA L532 + 000000EE 0009 NOP + 000000F0 L399: ; case label + Speed.c 73 case PLL_15x: + Speed.c 74 cur = " 54.4 MHz"; + 000000F0 D01E MOV.L L560+76,R0 ; L325 + Speed.c 75 break; + 000000F2 A010 BRA L531 + 000000F4 0009 NOP + 000000F6 L401: ; case label + Speed.c 76 case PLL_12x: + Speed.c 77 cur = " 43.5 MHz"; + 000000F6 D11E MOV.L L560+80,R1 ; L326 + Speed.c 78 break; + 000000F8 A010 BRA L532 + 000000FA 0009 NOP + 000000FC L403: ; case label + Speed.c 79 case PLL_8x: + Speed.c 80 cur = " 29 MHz"; + 000000FC D01D MOV.L L560+84,R0 ; L327 + Speed.c 81 break; + 000000FE A00A BRA L531 + 00000100 0009 NOP + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 5 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000102 L405: ; case label + Speed.c 82 case PLL_6x: + Speed.c 83 cur = " 21.7 MHz"; + 00000102 D11D MOV.L L560+88,R1 ; L328 + Speed.c 84 break; + 00000104 A00A BRA L532 + 00000106 0009 NOP + 00000108 L407: ; case label + Speed.c 85 case PLL_4x: + Speed.c 86 cur = " 14.5 MHz"; + 00000108 D01C MOV.L L560+92,R0 ; L329 + Speed.c 87 break; + 0000010A A004 BRA L531 + 0000010C 0009 NOP + 0000010E L409: ; case label + Speed.c 88 case PLL_3x: + Speed.c 89 cur = " 10.8 MHz"; + 0000010E D11C MOV.L L560+96,R1 ; L330 + Speed.c 90 break; + 00000110 A004 BRA L532 + 00000112 0009 NOP + 00000114 L411: ; case label + Speed.c 91 case PLL_2x: + Speed.c 92 cur = " 7.25 MHz"; + 00000114 D01B MOV.L L560+100,R0; L331 + Speed.c 93 break; + 00000116 L531: + 00000116 A03A BRA L492 + 00000118 2E02 MOV.L R0,@R14 + 0000011A L413: ; case label + Speed.c 94 case PLL_1x: + Speed.c 95 cur = " 3.6 MHz"; + 0000011A D11B MOV.L L560+104,R1; L332 + Speed.c 96 break; + 0000011C L532: + 0000011C A037 BRA L492 + 0000011E 2E12 MOV.L R1,@R14 + 00000120 L560: + 00000120 <00000000> .DATA.L _PrintMini + 00000124 <00000000> .DATA.L _Bdisp_AllClr_VRAM + 00000128 <00000000> .DATA.L L311 + 0000012C <00000000> .DATA.L L312 + 00000130 <00000000> .DATA.L L313 + 00000134 <00000000> .DATA.L L314 + 00000138 <00000000> .DATA.L L315 + 0000013C <00000000> .DATA.L L316 + 00000140 <00000000> .DATA.L L317 + 00000144 <00000000> .DATA.L L333 + 00000148 <00000000> .DATA.L _FRQCR + 0000014C <00000000> .DATA.L _cur + 00000150 3F000000 .DATA.L H'3F000000 + 00000154 <00000000> .DATA.L L319 + 00000158 <00000000> .DATA.L L320 + 0000015C <00000000> .DATA.L L321 + 00000160 <00000000> .DATA.L L322 + 00000164 <00000000> .DATA.L L323 + 00000168 <00000000> .DATA.L L324 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 6 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 0000016C <00000000> .DATA.L L325 + 00000170 <00000000> .DATA.L L326 + 00000174 <00000000> .DATA.L L327 + 00000178 <00000000> .DATA.L L328 + 0000017C <00000000> .DATA.L L329 + 00000180 <00000000> .DATA.L L330 + 00000184 <00000000> .DATA.L L331 + 00000188 <00000000> .DATA.L L332 + 0000018C L415: ; default label + Speed.c 97 default: + Speed.c 98 cur = " INVALID"; + 0000018C 2EB2 MOV.L R11,@R14 + Speed.c 99 break; + 0000018E L492: + Speed.c 100 } + Speed.c 101 printXY(9, 2, cur, MINI_OVER); + 0000018E E710 MOV #16,R7 + 00000190 66E2 MOV.L @R14,R6 + 00000192 E502 MOV #2,R5 + 00000194 BF34 BSR _printXY + 00000196 E409 MOV #9,R4 + Speed.c 102 switch((*FRQCR & 0x00F00000) >> 20) { + 00000198 D809 MOV.L L561+2,R8 ; L337 + 0000019A D90A MOV.L L561+6,R9 ; L336 + 0000019C DA0A MOV.L L561+10,R10; L335 + 0000019E 60C2 MOV.L @R12,R0 + 000001A0 D30A MOV.L L561+14,R3 ; H'00F00000 + 000001A2 6002 MOV.L @R0,R0 + 000001A4 2039 AND R3,R0 + 000001A6 4029 SHLR16 R0 + 000001A8 4009 SHLR2 R0 + 000001AA 4009 SHLR2 R0 + 000001AC E10C MOV #12,R1 + 000001AE 3012 CMP/HS R1,R0 + 000001B0 894E BT L441 + 000001B2 4000 SHLL R0 + 000001B4 6103 MOV R0,R1 + 000001B6 C706 MOVA L563,R0 + 000001B8 001D MOV.W @(R0,R1),R0 + 000001BA 0023 BRAF R0 + 000001BC 0009 NOP + 000001BE L562: + 000001BE L561: + 000001BE 0000 .DATA.W 0 + 000001C0 <00000000> .DATA.L L337 + 000001C4 <00000000> .DATA.L L336 + 000001C8 <00000000> .DATA.L L335 + 000001CC 00F00000 .DATA.L H'00F00000 + 000001D0 L563: + 000001D0 0066 .DATA.W L439-L562 + 000001D2 0060 .DATA.W L437-L562 + 000001D4 005A .DATA.W L435-L562 + 000001D6 0054 .DATA.W L433-L562 + 000001D8 004E .DATA.W L431-L562 + 000001DA 0048 .DATA.W L429-L562 + 000001DC 0042 .DATA.W L427-L562 + 000001DE 003C .DATA.W L425-L562 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 7 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000001E0 0036 .DATA.W L423-L562 + 000001E2 0032 .DATA.W L421-L562 + 000001E4 002E .DATA.W L419-L562 + 000001E6 002A .DATA.W L417-L562 + Speed.c 103 case ICLK_72: + 000001E8 L417: ; case label + Speed.c 104 cur = " 1/72"; + Speed.c 105 break; + 000001E8 A033 BRA L493 + 000001EA 2EA2 MOV.L R10,@R14 + 000001EC L419: ; case label + Speed.c 106 case ICLK_48: + Speed.c 107 cur = " 1/48"; + Speed.c 108 break; + 000001EC A031 BRA L493 + 000001EE 2E92 MOV.L R9,@R14 + 000001F0 L421: ; case label + Speed.c 109 case ICLK_36: + Speed.c 110 cur = " 1/36"; + Speed.c 111 break; + 000001F0 A02F BRA L493 + 000001F2 2E82 MOV.L R8,@R14 + 000001F4 L423: ; case label + Speed.c 112 case ICLK_32: + Speed.c 113 cur = " 1/32"; + 000001F4 D20D MOV.L L564,R2 ; L338 + Speed.c 114 break; + 000001F6 A02C BRA L493 + 000001F8 2E22 MOV.L R2,@R14 + 000001FA L425: ; case label + Speed.c 115 case ICLK_24: + Speed.c 116 cur = " 1/24"; + 000001FA D00D MOV.L L564+4,R0 ; L339 + Speed.c 117 break; + 000001FC A010 BRA L537 + 000001FE 0009 NOP + 00000200 L427: ; case label + Speed.c 118 case ICLK_16: + Speed.c 119 cur = " 1/16"; + 00000200 D10C MOV.L L564+8,R1 ; L340 + Speed.c 120 break; + 00000202 A00A BRA L536 + 00000204 0009 NOP + 00000206 L429: ; case label + Speed.c 121 case ICLK_12: + Speed.c 122 cur = " 1/12"; + 00000206 D00C MOV.L L564+12,R0 ; L341 + Speed.c 123 break; + 00000208 A00A BRA L537 + 0000020A 0009 NOP + 0000020C L431: ; case label + Speed.c 124 case ICLK_8: + Speed.c 125 cur = " 1/8"; + 0000020C D10B MOV.L L564+16,R1 ; L342 + Speed.c 126 break; + 0000020E A004 BRA L536 + 00000210 0009 NOP + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 8 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000212 L433: ; case label + Speed.c 127 case ICLK_6: + Speed.c 128 cur = " 1/6"; + 00000212 D00B MOV.L L564+20,R0 ; L343 + Speed.c 129 break; + 00000214 A004 BRA L537 + 00000216 0009 NOP + 00000218 L435: ; case label + Speed.c 130 case ICLK_4: + Speed.c 131 cur = " 1/4"; + 00000218 D10A MOV.L L564+24,R1 ; L344 + Speed.c 132 break; + 0000021A L536: + 0000021A A01A BRA L493 + 0000021C 2E12 MOV.L R1,@R14 + 0000021E L437: ; case label + Speed.c 133 case ICLK_3: + Speed.c 134 cur = " 1/3 (NORM)"; + 0000021E D00A MOV.L L564+28,R0 ; L345 + Speed.c 135 break; + 00000220 L537: + 00000220 A017 BRA L493 + 00000222 2E02 MOV.L R0,@R14 + 00000224 L439: ; case label + Speed.c 136 case ICLK_2: + Speed.c 137 cur = " 1/2 !!!"; + 00000224 D109 MOV.L L564+32,R1 ; L346 + 00000226 2E12 MOV.L R1,@R14 + Speed.c 138 warning += 2; + Speed.c 139 break; + 00000228 A013 BRA L493 + 0000022A 7D02 ADD #2,R13 + 0000022C L564: + 0000022C <00000000> .DATA.L L338 + 00000230 <00000000> .DATA.L L339 + 00000234 <00000000> .DATA.L L340 + 00000238 <00000000> .DATA.L L341 + 0000023C <00000000> .DATA.L L342 + 00000240 <00000000> .DATA.L L343 + 00000244 <00000000> .DATA.L L344 + 00000248 <00000000> .DATA.L L345 + 0000024C <00000000> .DATA.L L346 + 00000250 L441: ; default label + Speed.c 140 default: + Speed.c 141 cur = " INVALID"; + 00000250 2EB2 MOV.L R11,@R14 + Speed.c 142 break; + 00000252 L493: + Speed.c 143 } + Speed.c 144 printXY(9, 3, cur, MINI_OVER); + 00000252 E710 MOV #16,R7 + 00000254 66E2 MOV.L @R14,R6 + 00000256 E503 MOV #3,R5 + 00000258 BED2 BSR _printXY + 0000025A E409 MOV #9,R4 + Speed.c 145 switch(*FRQCR & 0xF) { + 0000025C 60C2 MOV.L @R12,R0 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 9 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 0000025E 6002 MOV.L @R0,R0 + 00000260 C90F AND #15,R0 + 00000262 E10C MOV #12,R1 + 00000264 3012 CMP/HS R1,R0 + 00000266 8945 BT L457 + 00000268 4000 SHLL R0 + 0000026A 6103 MOV R0,R1 + 0000026C C701 MOVA L566,R0 + 0000026E 001D MOV.W @(R0,R1),R0 + 00000270 0023 BRAF R0 + 00000272 0009 NOP + 00000274 L565: + 00000274 L566: + 00000274 0054 .DATA.W L455-L565 + 00000276 004E .DATA.W L453-L565 + 00000278 0048 .DATA.W L452-L565 + 0000027A 0042 .DATA.W L450-L565 + 0000027C 003C .DATA.W L449-L565 + 0000027E 0036 .DATA.W L448-L565 + 00000280 0030 .DATA.W L447-L565 + 00000282 002A .DATA.W L446-L565 + 00000284 0024 .DATA.W L445-L565 + 00000286 0020 .DATA.W L444-L565 + 00000288 001C .DATA.W L443-L565 + 0000028A 0018 .DATA.W L442-L565 + Speed.c 146 case ICLK_72: + 0000028C L442: ; case label + Speed.c 147 cur = " 1/72"; + Speed.c 148 break; + 0000028C A033 BRA L494 + 0000028E 2EA2 MOV.L R10,@R14 + 00000290 L443: ; case label + Speed.c 149 case ICLK_48: + Speed.c 150 cur = " 1/48"; + Speed.c 151 break; + 00000290 A031 BRA L494 + 00000292 2E92 MOV.L R9,@R14 + 00000294 L444: ; case label + Speed.c 152 case ICLK_36: + Speed.c 153 cur = " 1/36"; + Speed.c 154 break; + 00000294 A02F BRA L494 + 00000296 2E82 MOV.L R8,@R14 + 00000298 L445: ; case label + Speed.c 155 case ICLK_32: + Speed.c 156 cur = " 1/32"; + 00000298 D20D MOV.L L567+2,R2 ; L338 + Speed.c 157 break; + 0000029A A016 BRA L544 + 0000029C 0009 NOP + 0000029E L446: ; case label + Speed.c 158 case ICLK_24: + Speed.c 159 cur = " 1/24"; + 0000029E D10D MOV.L L567+6,R1 ; L339 + Speed.c 160 break; + 000002A0 A010 BRA L543 + 000002A2 0009 NOP + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 10 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000002A4 L447: ; case label + Speed.c 161 case ICLK_16: + Speed.c 162 cur = " 1/16"; + 000002A4 D20C MOV.L L567+10,R2 ; L340 + Speed.c 163 break; + 000002A6 A010 BRA L544 + 000002A8 0009 NOP + 000002AA L448: ; case label + Speed.c 164 case ICLK_12: + Speed.c 165 cur = " 1/12"; + 000002AA D10C MOV.L L567+14,R1 ; L341 + Speed.c 166 break; + 000002AC A00A BRA L543 + 000002AE 0009 NOP + 000002B0 L449: ; case label + Speed.c 167 case ICLK_8: + Speed.c 168 cur = " 1/8"; + 000002B0 D20B MOV.L L567+18,R2 ; L342 + Speed.c 169 break; + 000002B2 A00A BRA L544 + 000002B4 0009 NOP + 000002B6 L450: ; case label + Speed.c 170 case ICLK_6: + Speed.c 171 cur = " 1/6 (NORM)"; + 000002B6 D10B MOV.L L567+22,R1 ; L348 + Speed.c 172 break; + 000002B8 A004 BRA L543 + 000002BA 0009 NOP + 000002BC L452: ; case label + Speed.c 173 case ICLK_4: + Speed.c 174 cur = " 1/4"; + 000002BC D20A MOV.L L567+26,R2 ; L344 + Speed.c 175 break; + 000002BE A004 BRA L544 + 000002C0 0009 NOP + 000002C2 L453: ; case label + Speed.c 176 case ICLK_3: + Speed.c 177 cur = " 1/3"; + 000002C2 D10A MOV.L L567+30,R1 ; L349 + Speed.c 178 break; + 000002C4 L543: + 000002C4 A017 BRA L494 + 000002C6 2E12 MOV.L R1,@R14 + 000002C8 L455: ; case label + Speed.c 179 case ICLK_2: + Speed.c 180 cur = " 1/2"; + 000002C8 D209 MOV.L L567+34,R2 ; L350 + Speed.c 181 break; + 000002CA L544: + 000002CA A014 BRA L494 + 000002CC 2E22 MOV.L R2,@R14 + 000002CE L567: + 000002CE 0000 .DATA.W 0 + 000002D0 <00000000> .DATA.L L338 + 000002D4 <00000000> .DATA.L L339 + 000002D8 <00000000> .DATA.L L340 + 000002DC <00000000> .DATA.L L341 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 11 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000002E0 <00000000> .DATA.L L342 + 000002E4 <00000000> .DATA.L L348 + 000002E8 <00000000> .DATA.L L344 + 000002EC <00000000> .DATA.L L349 + 000002F0 <00000000> .DATA.L L350 + 000002F4 L457: ; default label + Speed.c 182 default: + Speed.c 183 cur = " INVALID"; + 000002F4 2EB2 MOV.L R11,@R14 + Speed.c 184 break; + 000002F6 L494: + Speed.c 185 } + Speed.c 186 printXY(9, 4, cur, MINI_OVER); + 000002F6 E710 MOV #16,R7 + 000002F8 66E2 MOV.L @R14,R6 + 000002FA E504 MOV #4,R5 + 000002FC BE80 BSR _printXY + 000002FE E409 MOV #9,R4 + Speed.c 187 switch((*FRQCR & 0xF00) >> 8) { + 00000300 60C2 MOV.L @R12,R0 + 00000302 930B MOV.W L568,R3 ; H'0F00 + 00000304 6002 MOV.L @R0,R0 + 00000306 2039 AND R3,R0 + 00000308 4019 SHLR8 R0 + 0000030A E10C MOV #12,R1 + 0000030C 3012 CMP/HS R1,R0 + 0000030E 8947 BT L471 + 00000310 4000 SHLL R0 + 00000312 6103 MOV R0,R1 + 00000314 C702 MOVA L570,R0 + 00000316 001D MOV.W @(R0,R1),R0 + 00000318 0023 BRAF R0 + 0000031A 0009 NOP + 0000031C L569: + 0000031C L568: + 0000031C 0F00 .DATA.W H'0F00 + 0000031E 00000000 .DATA.W 0 + 00000320 L570: + 00000320 0058 .DATA.W L470-L569 + 00000322 0052 .DATA.W L469-L569 + 00000324 004C .DATA.W L467-L569 + 00000326 0046 .DATA.W L466-L569 + 00000328 0040 .DATA.W L465-L569 + 0000032A 003A .DATA.W L464-L569 + 0000032C 0034 .DATA.W L463-L569 + 0000032E 002E .DATA.W L462-L569 + 00000330 0028 .DATA.W L461-L569 + 00000332 0024 .DATA.W L460-L569 + 00000334 0020 .DATA.W L459-L569 + 00000336 001C .DATA.W L458-L569 + Speed.c 188 case ICLK_72: + 00000338 L458: ; case label + Speed.c 189 cur = " 1/72"; + Speed.c 190 break; + 00000338 A033 BRA L495 + 0000033A 2EA2 MOV.L R10,@R14 + 0000033C L459: ; case label + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 12 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Speed.c 191 case ICLK_48: + Speed.c 192 cur = " 1/48"; + Speed.c 193 break; + 0000033C A031 BRA L495 + 0000033E 2E92 MOV.L R9,@R14 + 00000340 L460: ; case label + Speed.c 194 case ICLK_36: + Speed.c 195 cur = " 1/36"; + Speed.c 196 break; + 00000340 A02F BRA L495 + 00000342 2E82 MOV.L R8,@R14 + 00000344 L461: ; case label + Speed.c 197 case ICLK_32: + Speed.c 198 cur = " 1/32"; + 00000344 D20D MOV.L L571+2,R2 ; L338 + Speed.c 199 break; + 00000346 A02C BRA L495 + 00000348 2E22 MOV.L R2,@R14 + 0000034A L462: ; case label + Speed.c 200 case ICLK_24: + Speed.c 201 cur = " 1/24"; + 0000034A D00D MOV.L L571+6,R0 ; L339 + Speed.c 202 break; + 0000034C A010 BRA L549 + 0000034E 0009 NOP + 00000350 L463: ; case label + Speed.c 203 case ICLK_16: + Speed.c 204 cur = " 1/16"; + 00000350 D10C MOV.L L571+10,R1 ; L340 + Speed.c 205 break; + 00000352 A010 BRA L550 + 00000354 0009 NOP + 00000356 L464: ; case label + Speed.c 206 case ICLK_12: + Speed.c 207 cur = " 1/12"; + 00000356 D00C MOV.L L571+14,R0 ; L341 + Speed.c 208 break; + 00000358 A00A BRA L549 + 0000035A 0009 NOP + 0000035C L465: ; case label + Speed.c 209 case ICLK_8: + Speed.c 210 cur = " 1/8"; + 0000035C D10B MOV.L L571+18,R1 ; L342 + Speed.c 211 break; + 0000035E A00A BRA L550 + 00000360 0009 NOP + 00000362 L466: ; case label + Speed.c 212 case ICLK_6: + Speed.c 213 cur = " 1/6"; + 00000362 D00B MOV.L L571+22,R0 ; L343 + Speed.c 214 break; + 00000364 A004 BRA L549 + 00000366 0009 NOP + 00000368 L467: ; case label + Speed.c 215 case ICLK_4: + Speed.c 216 cur = " 1/4 (NORM)"; + 00000368 D10A MOV.L L571+26,R1 ; L352 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 13 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Speed.c 217 break; + 0000036A A004 BRA L550 + 0000036C 0009 NOP + 0000036E L469: ; case label + Speed.c 218 case ICLK_3: + Speed.c 219 cur = " 1/3"; + 0000036E D00A MOV.L L571+30,R0 ; L349 + Speed.c 220 break; + 00000370 L549: + 00000370 A017 BRA L495 + 00000372 2E02 MOV.L R0,@R14 + 00000374 L470: ; case label + Speed.c 221 case ICLK_2: + Speed.c 222 cur = " 1/2"; + 00000374 D109 MOV.L L571+34,R1 ; L350 + Speed.c 223 break; + 00000376 L550: + 00000376 A014 BRA L495 + 00000378 2E12 MOV.L R1,@R14 + 0000037A L571: + 0000037A 0000 .DATA.W 0 + 0000037C <00000000> .DATA.L L338 + 00000380 <00000000> .DATA.L L339 + 00000384 <00000000> .DATA.L L340 + 00000388 <00000000> .DATA.L L341 + 0000038C <00000000> .DATA.L L342 + 00000390 <00000000> .DATA.L L343 + 00000394 <00000000> .DATA.L L352 + 00000398 <00000000> .DATA.L L349 + 0000039C <00000000> .DATA.L L350 + 000003A0 L471: ; default label + Speed.c 224 default: + Speed.c 225 cur = " INVALID"; + 000003A0 2EB2 MOV.L R11,@R14 + Speed.c 226 break; + 000003A2 L495: + Speed.c 227 } + Speed.c 228 printXY(9, 5, cur, MINI_OVER); + 000003A2 E710 MOV #16,R7 + 000003A4 66E2 MOV.L @R14,R6 + 000003A6 E505 MOV #5,R5 + 000003A8 BE2A BSR _printXY + 000003AA E409 MOV #9,R4 + Speed.c 229 switch((*FRQCR & 0xF000) >> 12) { + 000003AC 60C2 MOV.L @R12,R0 + 000003AE D307 MOV.L L572,R3 ; H'0000F000 + 000003B0 6002 MOV.L @R0,R0 + 000003B2 2039 AND R3,R0 + 000003B4 4019 SHLR8 R0 + 000003B6 4009 SHLR2 R0 + 000003B8 4009 SHLR2 R0 + 000003BA E10C MOV #12,R1 + 000003BC 3012 CMP/HS R1,R0 + 000003BE 8934 BT L484 + 000003C0 4000 SHLL R0 + 000003C2 6103 MOV R0,R1 + 000003C4 C702 MOVA L574,R0 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 14 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000003C6 001D MOV.W @(R0,R1),R0 + 000003C8 0023 BRAF R0 + 000003CA 0009 NOP + 000003CC L573: + 000003CC L572: + 000003CC 0000F000 .DATA.L H'0000F000 + 000003D0 L574: + 000003D0 0058 .DATA.W L483-L573 + 000003D2 0052 .DATA.W L482-L573 + 000003D4 004C .DATA.W L481-L573 + 000003D6 0046 .DATA.W L480-L573 + 000003D8 0040 .DATA.W L479-L573 + 000003DA 003A .DATA.W L478-L573 + 000003DC 0034 .DATA.W L477-L573 + 000003DE 002E .DATA.W L476-L573 + 000003E0 0028 .DATA.W L475-L573 + 000003E2 0024 .DATA.W L474-L573 + 000003E4 0020 .DATA.W L473-L573 + 000003E6 001C .DATA.W L472-L573 + Speed.c 230 case ICLK_72: + 000003E8 L472: ; case label + Speed.c 231 cur = " 1/72"; + Speed.c 232 break; + 000003E8 A020 BRA L496 + 000003EA 2EA2 MOV.L R10,@R14 + 000003EC L473: ; case label + Speed.c 233 case ICLK_48: + Speed.c 234 cur = " 1/48"; + Speed.c 235 break; + 000003EC A01E BRA L496 + 000003EE 2E92 MOV.L R9,@R14 + 000003F0 L474: ; case label + Speed.c 236 case ICLK_36: + Speed.c 237 cur = " 1/36"; + Speed.c 238 break; + 000003F0 A01C BRA L496 + 000003F2 2E82 MOV.L R8,@R14 + 000003F4 L475: ; case label + Speed.c 239 case ICLK_32: + Speed.c 240 cur = " 1/32"; + 000003F4 D21F MOV.L L575+2,R2 ; L338 + Speed.c 241 break; + 000003F6 A019 BRA L496 + 000003F8 2E22 MOV.L R2,@R14 + 000003FA L476: ; case label + Speed.c 242 case ICLK_24: + Speed.c 243 cur = " 1/24"; + 000003FA D01F MOV.L L575+6,R0 ; L339 + Speed.c 244 break; + 000003FC A010 BRA L555 + 000003FE 0009 NOP + 00000400 L477: ; case label + Speed.c 245 case ICLK_16: + Speed.c 246 cur = " 1/16"; + 00000400 D11E MOV.L L575+10,R1 ; L340 + Speed.c 247 break; + 00000402 A010 BRA L556 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 15 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000404 0009 NOP + 00000406 L478: ; case label + Speed.c 248 case ICLK_12: + Speed.c 249 cur = " 1/12"; + 00000406 D01E MOV.L L575+14,R0 ; L341 + Speed.c 250 break; + 00000408 A00A BRA L555 + 0000040A 0009 NOP + 0000040C L479: ; case label + Speed.c 251 case ICLK_8: + Speed.c 252 cur = " 1/8"; + 0000040C D11D MOV.L L575+18,R1 ; L342 + Speed.c 253 break; + 0000040E A00A BRA L556 + 00000410 0009 NOP + 00000412 L480: ; case label + Speed.c 254 case ICLK_6: + Speed.c 255 cur = " 1/6"; + 00000412 D01D MOV.L L575+22,R0 ; L343 + Speed.c 256 break; + 00000414 A004 BRA L555 + 00000416 0009 NOP + 00000418 L481: ; case label + Speed.c 257 case ICLK_4: + Speed.c 258 cur = " 1/4 (NORM)"; + 00000418 D11C MOV.L L575+26,R1 ; L352 + Speed.c 259 break; + 0000041A A004 BRA L556 + 0000041C 0009 NOP + 0000041E L482: ; case label + Speed.c 260 case ICLK_3: + Speed.c 261 cur = " 1/3"; + 0000041E D01C MOV.L L575+30,R0 ; L349 + Speed.c 262 break; + 00000420 L555: + 00000420 A004 BRA L496 + 00000422 2E02 MOV.L R0,@R14 + 00000424 L483: ; case label + Speed.c 263 case ICLK_2: + Speed.c 264 cur = " 1/2"; + 00000424 D11B MOV.L L575+34,R1 ; L350 + Speed.c 265 break; + 00000426 L556: + 00000426 A001 BRA L496 + 00000428 2E12 MOV.L R1,@R14 + 0000042A L484: ; default label + Speed.c 266 default: + Speed.c 267 cur = " INVALID"; + 0000042A 2EB2 MOV.L R11,@R14 + Speed.c 268 break; + 0000042C L496: + Speed.c 269 } + Speed.c 270 printXY(9, 6, cur, MINI_OVER); + 0000042C 66E2 MOV.L @R14,R6 + 0000042E E506 MOV #6,R5 + 00000430 E710 MOV #16,R7 + 00000432 BDE5 BSR _printXY + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 16 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 00000434 E409 MOV #9,R4 + Speed.c 271 if(warning == 1 || warning == 3) { + 00000436 60D3 MOV R13,R0 + 00000438 8801 CMP/EQ #1,R0 + 0000043A 8902 BT L498 + 0000043C 60D3 MOV R13,R0 + 0000043E 8803 CMP/EQ #3,R0 + 00000440 8B06 BF L497 + 00000442 L498: + Speed.c 272 printXY(1, 8, " UNSAFE FREQ/DIV VALUE", MINI_OVER); + 00000442 E710 MOV #16,R7 + 00000444 D614 MOV.L L575+38,R6 ; L355 + 00000446 E508 MOV #8,R5 + 00000448 BDDA BSR _printXY + 0000044A E401 MOV #1,R4 + 0000044C A007 BRA L499 + 0000044E 0009 NOP + 00000450 L497: + Speed.c 273 } else if(warning == 2) { + 00000450 8802 CMP/EQ #2,R0 + 00000452 8B04 BF L499 + Speed.c 274 printXY(1, 8, " TROUBLESOME DIV VALUE", MINI_OVER); + 00000454 D611 MOV.L L575+42,R6 ; L357 + 00000456 E508 MOV #8,R5 + 00000458 E710 MOV #16,R7 + 0000045A BDD1 BSR _printXY + 0000045C E401 MOV #1,R4 + 0000045E L499: + Speed.c 275 } + Speed.c 276 Bdisp_PutDisp_DD(); + 0000045E 4F26 LDS.L @R15+,PR + 00000460 D20F MOV.L L575+46,R2 ; _Bdisp_PutDisp_DD + 00000462 68F6 MOV.L @R15+,R8 + 00000464 69F6 MOV.L @R15+,R9 + 00000466 6AF6 MOV.L @R15+,R10 + 00000468 6BF6 MOV.L @R15+,R11 + 0000046A 6CF6 MOV.L @R15+,R12 + 0000046C 6DF6 MOV.L @R15+,R13 + 0000046E 422B JMP @R2 + 00000470 6EF6 MOV.L @R15+,R14 + 00000472 L575: + 00000472 0000 .DATA.W 0 + 00000474 <00000000> .DATA.L L338 + 00000478 <00000000> .DATA.L L339 + 0000047C <00000000> .DATA.L L340 + 00000480 <00000000> .DATA.L L341 + 00000484 <00000000> .DATA.L L342 + 00000488 <00000000> .DATA.L L343 + 0000048C <00000000> .DATA.L L352 + 00000490 <00000000> .DATA.L L349 + 00000494 <00000000> .DATA.L L350 + 00000498 <00000000> .DATA.L L355 + 0000049C <00000000> .DATA.L L357 + 000004A0 <00000000> .DATA.L _Bdisp_PutDisp_DD + Speed.c 277 } + Speed.c 278 + Speed.c 279 int AddIn_main(int isAppli, unsigned short OptionNum) + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 17 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000004A4 _AddIn_main: ; function: AddIn_main + ; frame size=24 + 000004A4 D438 MOV.L L576+10,R4 ; _DIVs + 000004A6 7FE8 ADD #-24,R15 + 000004A8 D538 MOV.L L576+14,R5 ; _PLLs + 000004AA 6343 MOV R4,R3 + 000004AC DA38 MOV.L L576+18,R10; _change_freq + 000004AE 6943 MOV R4,R9 + 000004B0 DB38 MOV.L L576+22,R11; _change_iclk + 000004B2 6853 MOV R5,R8 + 000004B4 DC38 MOV.L L576+26,R12; H'3F000000 + 000004B6 6253 MOV R5,R2 + 000004B8 DD38 MOV.L L576+30,R13; H'00F00000 + 000004BA 6153 MOV R5,R1 + 000004BC 730C ADD #12,R3 + 000004BE 7908 ADD #8,R9 + 000004C0 1F33 MOV.L R3,@(12,R15) + 000004C2 7838 ADD #56,R8 + 000004C4 7234 ADD #52,R2 + 000004C6 7504 ADD #4,R5 + 000004C8 1F22 MOV.L R2,@(8,R15) + 000004CA 6343 MOV R4,R3 + 000004CC 1F11 MOV.L R1,@(4,R15) + 000004CE 7404 ADD #4,R4 + 000004D0 1F55 MOV.L R5,@(20,R15) + 000004D2 2F32 MOV.L R3,@R15 + 000004D4 1F44 MOV.L R4,@(16,R15) + Speed.c 280 { + Speed.c 281 int i; + Speed.c 282 while(1) { + 000004D6 L502: + Speed.c 283 update(); + 000004D6 BDA3 BSR _update + 000004D8 0009 NOP + 000004DA D231 MOV.L L576+34,R2 ; _FRQCR + 000004DC D331 MOV.L L576+38,R3 ; _key + 000004DE 6032 MOV.L @R3,R0 + 000004E0 914D MOV.W L576,R1 ; H'7542 + 000004E2 3010 CMP/EQ R1,R0 + 000004E4 8D0B BT/S L487 + 000004E6 6522 MOV.L @R2,R5 + 000004E8 914A MOV.W L576+2,R1 ; H'7547 + 000004EA 3010 CMP/EQ R1,R0 + 000004EC 891B BT L488 + 000004EE 9148 MOV.W L576+4,R1 ; H'7544 + 000004F0 3010 CMP/EQ R1,R0 + 000004F2 892D BT L489 + 000004F4 9146 MOV.W L576+6,R1 ; H'7545 + 000004F6 3010 CMP/EQ R1,R0 + 000004F8 8956 BT L490 + 000004FA A06D BRA L503 + 000004FC 0009 NOP + 000004FE L487: ; case label + 000004FE 5EF1 MOV.L @(4,R15),R14 + 00000500 54F1 MOV.L @(4,R15),R4 + Speed.c 284 switch (key) { + Speed.c 285 case KEY_CTRL_UP: + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 18 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Speed.c 286 for(i = 0; i < 13; i++) { + 00000502 51F2 MOV.L @(8,R15),R1 + 00000504 3412 CMP/HS R1,R4 + 00000506 8D67 BT/S L503 + 00000508 7E04 ADD #4,R14 + 0000050A L505: + Speed.c 287 if(((*FRQCR & 0x3F000000) >> 24) == PLLs[i]) { + 0000050A 6352 MOV.L @R5,R3 + 0000050C 23C9 AND R12,R3 + 0000050E 4329 SHLR16 R3 + 00000510 6142 MOV.L @R4,R1 + 00000512 4319 SHLR8 R3 + 00000514 3310 CMP/EQ R1,R3 + 00000516 8911 BT L557 + 00000518 52F2 MOV.L @(8,R15),R2 + 0000051A 7404 ADD #4,R4 + 0000051C 3422 CMP/HS R2,R4 + 0000051E 8FF4 BF/S L505 + 00000520 7E04 ADD #4,R14 + Speed.c 288 change_freq(PLLs[i+1]); + Speed.c 289 update(); + Speed.c 290 break; + Speed.c 291 } + Speed.c 292 } + Speed.c 293 break; + 00000522 A059 BRA L503 + 00000524 0009 NOP + 00000526 L488: ; case label + 00000526 5EF1 MOV.L @(4,R15),R14 + 00000528 54F5 MOV.L @(20,R15),R4 + Speed.c 294 case KEY_CTRL_DOWN: + Speed.c 295 for(i = 1; i < 14; i++) { + 0000052A 3482 CMP/HS R8,R4 + 0000052C 8954 BT L503 + 0000052E L509: + Speed.c 296 if(((*FRQCR & 0x3F000000) >> 24) == PLLs[i]) { + 0000052E 6352 MOV.L @R5,R3 + 00000530 23C9 AND R12,R3 + 00000532 4329 SHLR16 R3 + 00000534 6142 MOV.L @R4,R1 + 00000536 4319 SHLR8 R3 + 00000538 3310 CMP/EQ R1,R3 + 0000053A 8B03 BF L510 + 0000053C L557: + Speed.c 297 change_freq(PLLs[i-1]); + 0000053C 4A0B JSR @R10 + 0000053E 64E2 MOV.L @R14,R4 + Speed.c 298 update(); + Speed.c 299 break; + 00000540 A041 BRA L559 + 00000542 0009 NOP + 00000544 L510: + 00000544 7404 ADD #4,R4 + 00000546 3482 CMP/HS R8,R4 + 00000548 8FF1 BF/S L509 + 0000054A 7E04 ADD #4,R14 + Speed.c 300 } + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 19 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Speed.c 301 } + Speed.c 302 break; + 0000054C A044 BRA L503 + 0000054E 0009 NOP + 00000550 L489: ; case label + 00000550 6EF2 MOV.L @R15,R14 + 00000552 64F2 MOV.L @R15,R4 + Speed.c 303 case KEY_CTRL_LEFT: + Speed.c 304 for(i = 0; i < 2; i++) { + 00000554 3492 CMP/HS R9,R4 + 00000556 8D3F BT/S L503 + 00000558 7E04 ADD #4,R14 + 0000055A L513: + Speed.c 305 if(((*FRQCR & 0x00F00000) >> 20) == DIVs[i]) { + 0000055A 6352 MOV.L @R5,R3 + 0000055C 23D9 AND R13,R3 + 0000055E 4329 SHLR16 R3 + 00000560 6142 MOV.L @R4,R1 + 00000562 4309 SHLR2 R3 + 00000564 4309 SHLR2 R3 + 00000566 3310 CMP/EQ R1,R3 + 00000568 8B03 BF L514 + Speed.c 306 change_iclk(DIVs[i+1]); + 0000056A 4B0B JSR @R11 + 0000056C 64E2 MOV.L @R14,R4 + Speed.c 307 update(); + Speed.c 308 break; + 0000056E A02A BRA L559 + 00000570 0009 NOP + 00000572 L514: + 00000572 7404 ADD #4,R4 + 00000574 3492 CMP/HS R9,R4 + 00000576 8FF0 BF/S L513 + 00000578 7E04 ADD #4,R14 + Speed.c 309 } + Speed.c 310 } + Speed.c 311 break; + 0000057A A02D BRA L503 + 0000057C 0009 NOP + 0000057E L576: + 0000057E 7542 .DATA.W H'7542 + 00000580 7547 .DATA.W H'7547 + 00000582 7544 .DATA.W H'7544 + 00000584 7545 .DATA.W H'7545 + 00000586 0000 .DATA.W 0 + 00000588 <00000000> .DATA.L _DIVs + 0000058C <00000000> .DATA.L _PLLs + 00000590 <00000000> .DATA.L _change_freq + 00000594 <00000000> .DATA.L _change_iclk + 00000598 3F000000 .DATA.L H'3F000000 + 0000059C 00F00000 .DATA.L H'00F00000 + 000005A0 <00000000> .DATA.L _FRQCR + 000005A4 <00000000> .DATA.L _key + 000005A8 L490: ; case label + 000005A8 6EF2 MOV.L @R15,R14 + 000005AA 54F4 MOV.L @(16,R15),R4 + Speed.c 312 case KEY_CTRL_RIGHT: + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 20 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Speed.c 313 for(i = 1; i < 3; i++) { + 000005AC 51F3 MOV.L @(12,R15),R1 + 000005AE 3412 CMP/HS R1,R4 + 000005B0 8912 BT L503 + 000005B2 L517: + Speed.c 314 if(((*FRQCR & 0x00F00000) >> 20) == DIVs[i]) { + 000005B2 6352 MOV.L @R5,R3 + 000005B4 23D9 AND R13,R3 + 000005B6 4329 SHLR16 R3 + 000005B8 6142 MOV.L @R4,R1 + 000005BA 4309 SHLR2 R3 + 000005BC 4309 SHLR2 R3 + 000005BE 3310 CMP/EQ R1,R3 + 000005C0 8B05 BF L518 + Speed.c 315 change_iclk(DIVs[i-1]); + 000005C2 4B0B JSR @R11 + 000005C4 64E2 MOV.L @R14,R4 + Speed.c 316 update(); + Speed.c 317 break; + 000005C6 L559: + 000005C6 BD2B BSR _update + 000005C8 0009 NOP + 000005CA A005 BRA L503 + 000005CC 0009 NOP + 000005CE L518: + 000005CE 7404 ADD #4,R4 + 000005D0 52F3 MOV.L @(12,R15),R2 + 000005D2 3422 CMP/HS R2,R4 + 000005D4 8FED BF/S L517 + 000005D6 7E04 ADD #4,R14 + 000005D8 L503: + Speed.c 318 } + Speed.c 319 } + Speed.c 320 break; + Speed.c 321 default: + Speed.c 322 break; + Speed.c 323 } + Speed.c 324 GetKey(&key); + 000005D8 D403 MOV.L L577,R4 ; _key + 000005DA D304 MOV.L L577+4,R3 ; _GetKey + 000005DC 430B JSR @R3 + 000005DE 0009 NOP + Speed.c 325 update(); + 000005E0 BD1E BSR _update + 000005E2 0009 NOP + 000005E4 AF77 BRA L502 + 000005E6 0009 NOP + 000005E8 L577: + 000005E8 <00000000> .DATA.L _key + 000005EC <00000000> .DATA.L _GetKey + Speed.c 326 } + Speed.c 327 + Speed.c 328 return 0; + Speed.c 329 } + Speed.c 330 + Speed.c 331 //**************************************************************************** + Speed.c 332 //************** **************** + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 21 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + Speed.c 333 //************** Notice! **************** + Speed.c 334 //************** **************** + Speed.c 335 //************** Please do not change the following source. **************** + Speed.c 336 //************** **************** + Speed.c 337 //**************************************************************************** + Speed.c 338 + Speed.c 339 + Speed.c 340 #pragma section _BR_Size + Speed.c 341 unsigned long BR_Size; + Speed.c 342 #pragma section + Speed.c 343 + Speed.c 344 + Speed.c 345 #pragma section _TOP + Speed.c 346 + Speed.c 347 //**************************************************************************** + Speed.c 348 // InitializeSystem + Speed.c 349 // + Speed.c 350 // param : isAppli : 1 = Application / 0 = eActivity + Speed.c 351 // OptionNum : Option Number (only eActivity) + Speed.c 352 // + Speed.c 353 // retval : 1 = No error / 0 = Error + Speed.c 354 // + Speed.c 355 //**************************************************************************** + Speed.c 356 int InitializeSystem(int isAppli, unsigned short OptionNum) +P_T 00000000 _InitializeSystem: ; function: InitializeSystem + ; frame size=0 + Speed.c 357 { + Speed.c 358 return INIT_ADDIN_APPLICATION(isAppli, OptionNum); + 00000000 D301 MOV.L L578+2,R3 ; _INIT_ADDIN_APPLICATION + 00000002 432B JMP @R3 + 00000004 0009 NOP + 00000006 L578: + 00000006 0000 .DATA.W 0 + 00000008 <00000000> .DATA.L _INIT_ADDIN_APPLICATION + Speed.c 359 } + Speed.c 360 + Speed.c 361 #pragma section + Speed.c 362 +C 00000000 _PLLs: ; static: PLLs + 00000000 0000000000 .DATA.L H'00000000,H'00000001,H'00000002,H'00000003,H'00000005,H'00000007,H'0000000B, + 0000010000 + H'0000000E,H'0000000F,H'00000011,H'00000013,H'00000017,H'00000019,H'0000001B + 0002000000 + 0300000005 + 0000000700 + 00000B0000 + 000E000000 + 0F00000011 + 0000001300 + 0000170000 + 0019000000 + 1B + 00000038 _DIVs: ; static: DIVs + 00000038 0000000000 .DATA.L H'00000000,H'00000001,H'00000002,H'00000003,H'00000004,H'00000005,H'00000006, + 0000010000 + H'00000007,H'00000008,H'00000009,H'0000000A,H'0000000B + 0002000000 + 0300000004 + 0000000500 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 22 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 0000060000 + 0007000000 + 0800000009 + 0000000A00 + 00000B + 00000068 L311: + 00000068 20204F7065 .SDATA " Operating Frequency" + 726174696E + 6720467265 + 7175656E63 + 79 + 0000007D 00 .DATA.B H'00 + 0000007E 00000002 .RES.W 1 + 00000080 L312: + 00000080 2020467265 .SDATA " Freq:" + 713A + 00000087 00 .DATA.B H'00 + 00000088 L313: + 00000088 202049434C .SDATA " ICLK:" + 4B3A + 0000008F 00 .DATA.B H'00 + 00000090 L314: + 00000090 202050434C .SDATA " PCLK:" + 4B3A + 00000097 00 .DATA.B H'00 + 00000098 L315: + 00000098 202042434C .SDATA " BCLK:" + 4B3A + 0000009F 00 .DATA.B H'00 + 000000A0 L316: + 000000A0 202053434C .SDATA " SCLK:" + 4B3A + 000000A7 00 .DATA.B H'00 + 000000A8 L317: + 000000A8 2020552F44 .SDATA " U/D - FRQ, L/R - ICLK" + 202D204652 + 512C204C2F + 52202D2049 + 434C4B + 000000BF 00 .DATA.B H'00 + 000000C0 L319: + 000000C0 2020313031 .SDATA " 101.5 MHz !!!" + 2E35204D48 + 7A20212121 + 000000CF 00 .DATA.B H'00 + 000000D0 L320: + 000000D0 202039342E .SDATA " 94.3 MHz" + 33204D487A + 000000DA 00 .DATA.B H'00 + 000000DB 00000001 .RES.B 1 + 000000DC L321: + 000000DC 2020383720 .SDATA " 87 MHz" + 4D487A + 000000E4 00 .DATA.B H'00 + 000000E5 00000001 .RES.B 1 + 000000E6 00000002 .RES.W 1 + 000000E8 L322: + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 23 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000000E8 202037322E .SDATA " 72.5 MHz" + 35204D487A + 000000F2 00 .DATA.B H'00 + 000000F3 00000001 .RES.B 1 + 000000F4 L323: + 000000F4 202036352E .SDATA " 65.3 MHz" + 33204D487A + 000000FE 00 .DATA.B H'00 + 000000FF 00000001 .RES.B 1 + 00000100 L324: + 00000100 2020353820 .SDATA " 58 MHz (NORM)" + 4D487A2028 + 4E4F524D29 + 0000010F 00 .DATA.B H'00 + 00000110 L325: + 00000110 202035342E .SDATA " 54.4 MHz" + 34204D487A + 0000011A 00 .DATA.B H'00 + 0000011B 00000001 .RES.B 1 + 0000011C L326: + 0000011C 202034332E .SDATA " 43.5 MHz" + 35204D487A + 00000126 00 .DATA.B H'00 + 00000127 00000001 .RES.B 1 + 00000128 L327: + 00000128 2020323920 .SDATA " 29 MHz" + 4D487A + 00000130 00 .DATA.B H'00 + 00000131 00000001 .RES.B 1 + 00000132 00000002 .RES.W 1 + 00000134 L328: + 00000134 202032312E .SDATA " 21.7 MHz" + 37204D487A + 0000013E 00 .DATA.B H'00 + 0000013F 00000001 .RES.B 1 + 00000140 L329: + 00000140 202031342E .SDATA " 14.5 MHz" + 35204D487A + 0000014A 00 .DATA.B H'00 + 0000014B 00000001 .RES.B 1 + 0000014C L330: + 0000014C 202031302E .SDATA " 10.8 MHz" + 38204D487A + 00000156 00 .DATA.B H'00 + 00000157 00000001 .RES.B 1 + 00000158 L331: + 00000158 2020372E32 .SDATA " 7.25 MHz" + 35204D487A + 00000162 00 .DATA.B H'00 + 00000163 00000001 .RES.B 1 + 00000164 L332: + 00000164 2020332E36 .SDATA " 3.6 MHz" + 204D487A + 0000016D 00 .DATA.B H'00 + 0000016E 00000002 .RES.W 1 + 00000170 L333: + 00000170 2020494E56 .SDATA " INVALID" + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 24 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 414C4944 + 00000179 00 .DATA.B H'00 + 0000017A 00000002 .RES.W 1 + 0000017C L335: + 0000017C 2020312F37 .SDATA " 1/72" + 32 + 00000182 00 .DATA.B H'00 + 00000183 00000001 .RES.B 1 + 00000184 L336: + 00000184 2020312F34 .SDATA " 1/48" + 38 + 0000018A 00 .DATA.B H'00 + 0000018B 00000001 .RES.B 1 + 0000018C L337: + 0000018C 2020312F33 .SDATA " 1/36" + 36 + 00000192 00 .DATA.B H'00 + 00000193 00000001 .RES.B 1 + 00000194 L338: + 00000194 2020312F33 .SDATA " 1/32" + 32 + 0000019A 00 .DATA.B H'00 + 0000019B 00000001 .RES.B 1 + 0000019C L339: + 0000019C 2020312F32 .SDATA " 1/24" + 34 + 000001A2 00 .DATA.B H'00 + 000001A3 00000001 .RES.B 1 + 000001A4 L340: + 000001A4 2020312F31 .SDATA " 1/16" + 36 + 000001AA 00 .DATA.B H'00 + 000001AB 00000001 .RES.B 1 + 000001AC L341: + 000001AC 2020312F31 .SDATA " 1/12" + 32 + 000001B2 00 .DATA.B H'00 + 000001B3 00000001 .RES.B 1 + 000001B4 L342: + 000001B4 2020312F38 .SDATA " 1/8" + 000001B9 00 .DATA.B H'00 + 000001BA 00000002 .RES.W 1 + 000001BC L343: + 000001BC 2020312F36 .SDATA " 1/6" + 000001C1 00 .DATA.B H'00 + 000001C2 00000002 .RES.W 1 + 000001C4 L344: + 000001C4 2020312F34 .SDATA " 1/4" + 000001C9 00 .DATA.B H'00 + 000001CA 00000002 .RES.W 1 + 000001CC L345: + 000001CC 2020312F33 .SDATA " 1/3 (NORM)" + 20284E4F52 + 4D29 + 000001D8 00 .DATA.B H'00 + 000001D9 00000001 .RES.B 1 + 000001DA 00000002 .RES.W 1 + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 25 + + +SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT + + 000001DC L346: + 000001DC 2020312F32 .SDATA " 1/2 !!!" + 20212121 + 000001E5 00 .DATA.B H'00 + 000001E6 00000002 .RES.W 1 + 000001E8 L348: + 000001E8 2020312F36 .SDATA " 1/6 (NORM)" + 20284E4F52 + 4D29 + 000001F4 00 .DATA.B H'00 + 000001F5 00000001 .RES.B 1 + 000001F6 00000002 .RES.W 1 + 000001F8 L349: + 000001F8 2020312F33 .SDATA " 1/3" + 000001FD 00 .DATA.B H'00 + 000001FE 00000002 .RES.W 1 + 00000200 L350: + 00000200 2020312F32 .SDATA " 1/2" + 00000205 00 .DATA.B H'00 + 00000206 00000002 .RES.W 1 + 00000208 L352: + 00000208 2020312F34 .SDATA " 1/4 (NORM)" + 20284E4F52 + 4D29 + 00000214 00 .DATA.B H'00 + 00000215 00000001 .RES.B 1 + 00000216 00000002 .RES.W 1 + 00000218 L355: + 00000218 2020554E53 .SDATA " UNSAFE FREQ/DIV VALUE" + 4146452046 + 5245512F44 + 4956205641 + 4C5545 + 0000022F 00 .DATA.B H'00 + 00000230 L357: + 00000230 202054524F .SDATA " TROUBLESOME DIV VALUE" + 55424C4553 + 4F4D452044 + 4956205641 + 4C5545 + 00000247 00 .DATA.B H'00 +D 00000000 _key: ; static: key + 00000000 00000000 .DATA.L H'00000000 + 00000004 _cur: ; static: cur + 00000004 00000000 .DATA.L H'00000000 + 00000008 _FRQCR: ; static: FRQCR + 00000008 A4150000 .DATA.L H'A4150000 +B_B 00000000 _BR_Size: ; static: BR_Size + 00000000 00000004 .RES.L 1 + + + + + + + + + + + + +SH SERIES C/C++ Compiler (Ver. 6.0C) 18-Oct-2012 16:26:34 PAGE 1 + + +******** STATISTICS INFORMATION ******** + + +********** ERROR INFORMATION *********** + +NUMBER OF ERRORS: 0 +NUMBER OF WARNINGS: 2 + + + + +******* SOURCE LINE INFORMATION ******** + +COMPILED SOURCE LINE: 362 + + + +******* SECTION SIZE INFORMATION ******* + +PROGRAM SECTION (P): 000005F0 Byte(s) +PROGRAM SECTION (P_BR_Size): 00000000 Byte(s) +PROGRAM SECTION (P_TOP): 0000000C Byte(s) +CONSTANT SECTION (C): 00000248 Byte(s) +CONSTANT SECTION (C_BR_Size): 00000000 Byte(s) +CONSTANT SECTION (C_TOP): 00000000 Byte(s) +DATA SECTION (D): 0000000C Byte(s) +DATA SECTION (D_BR_Size): 00000000 Byte(s) +DATA SECTION (D_TOP): 00000000 Byte(s) +BSS SECTION (B): 00000000 Byte(s) +BSS SECTION (B_BR_Size): 00000004 Byte(s) +BSS SECTION (B_TOP): 00000000 Byte(s) + + TOTAL PROGRAM SIZE: 00000854 Byte(s) + + + +********** LABEL INFORMATION *********** + +NUMBER OF EXTERNAL REFERENCE SYMBOLS: 7 +NUMBER OF EXTERNAL DEFINITION SYMBOLS: 10 +NUMBER OF INTERNAL/EXTERNAL SYMBOLS: 176 + + + + + + + + + + + + + + + + + + + + + + +*** COMMAND PARAMETER *** + + + -subcommand=C:\Users\Timo\AppData\Local\Temp\hmkFC48.tmp + diff --git a/Debug/Speed.obj b/Debug/Speed.obj new file mode 100644 index 0000000..082a682 Binary files /dev/null and b/Debug/Speed.obj differ diff --git a/Debug/change_bclk.obj b/Debug/change_bclk.obj new file mode 100644 index 0000000..ef9373d Binary files /dev/null and b/Debug/change_bclk.obj differ diff --git a/Debug/change_freq.obj b/Debug/change_freq.obj new file mode 100644 index 0000000..277166a Binary files /dev/null and b/Debug/change_freq.obj differ diff --git a/Debug/change_iclk.obj b/Debug/change_iclk.obj new file mode 100644 index 0000000..efc35ca Binary files /dev/null and b/Debug/change_iclk.obj differ diff --git a/Debug/change_pclk.obj b/Debug/change_pclk.obj new file mode 100644 index 0000000..7789aee Binary files /dev/null and b/Debug/change_pclk.obj differ diff --git a/Debug/change_sclk.obj b/Debug/change_sclk.obj new file mode 100644 index 0000000..8963358 Binary files /dev/null and b/Debug/change_sclk.obj differ diff --git a/FXSH_Build.bat b/FXSH_Build.bat new file mode 100644 index 0000000..8c6f257 --- /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 SPEED.G1A del SPEED.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\Speed" +if not exist SPEED.G1A goto error +echo Build has completed. +goto end + +:error +echo Build was not successful. + +:end + diff --git a/Hardware.txt b/Hardware.txt new file mode 100644 index 0000000..70e0d4d --- /dev/null +++ b/Hardware.txt @@ -0,0 +1,23 @@ + .export _overclock + .SECTION P,CODE,ALIGN=4 + +_change_freq: + mov r4, r0 + and #0x3F, r0 + shll8 r0 + mov.l frqcr, r1 + mov.l pll_mask, r3 + mov.l @r1, r2 + and r3, r2 + or r0, r2 + mov.l r2, @r1 + mov.l frqcr_kick_bit, r0 + mov.l @r1, r2 + or r0, r2 + rts + mov.l r2, @r1 + .align 4 + frqcr_kick_bit: .long 0x80000000 + pll_mask: .long 0xC0FFFFFF + frqcr: .long 0xA4150000 + .END \ No newline at end of file diff --git a/INIT/CasioRAM.mem b/INIT/CasioRAM.mem new file mode 100644 index 0000000..a5fd725 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..3fe372c Binary files /dev/null and b/MainIcon.bmp differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..c6e4349 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Pover overclocking utility ported from the Casio Prizm to the fx-9860 GII-2. Use at your own risk. diff --git a/SPEED.G1A b/SPEED.G1A new file mode 100644 index 0000000..e6b136c Binary files /dev/null and b/SPEED.G1A differ diff --git a/Speed.c b/Speed.c new file mode 100644 index 0000000..409db09 --- /dev/null +++ b/Speed.c @@ -0,0 +1,362 @@ +#include "fxlib.h" + +#define PLL_28x /*0011011*/ 27 // 101.5 MHz +#define PLL_26x /*0011001*/ 25 // 94.3 MHz +#define PLL_24x /*0010111*/ 23 // 87 MHz +#define PLL_20x /*0010011*/ 19 // 72.5 MHz +#define PLL_18x /*0010001*/ 17 // 65.25 MHz +#define PLL_16x /*0001111*/ 15 // 58 MHz (NORMAL SPEED) +#define PLL_15x /*0001110*/ 14 // 54.37 MHz +#define PLL_12x /*0001011*/ 11 // 43.5 MHz +#define PLL_8x /*0000111*/ 7 // 29 MHz +#define PLL_6x /*0000101*/ 5 // 21.75 MHz +#define PLL_4x /*0000011*/ 3 // 14.5 MHz +#define PLL_3x /*0000010*/ 2 // 10.8 MHz +#define PLL_2x /*0000001*/ 1 // 7.25 MHz +#define PLL_1x /*0000000*/ 0 // 3.6 MHz + +#define ICLK_2 /*00000*/ 0 +#define ICLK_3 /*00001*/ 1 +#define ICLK_4 /*00010*/ 2 +#define ICLK_6 /*00011*/ 3 +#define ICLK_8 /*00100*/ 4 +#define ICLK_12 /*00101*/ 5 +#define ICLK_16 /*00110*/ 6 +#define ICLK_24 /*00111*/ 7 +#define ICLK_32 /*01000*/ 8 +#define ICLK_36 /*01001*/ 9 +#define ICLK_48 /*01010*/ 10 +#define ICLK_72 /*01011*/ 11 + +const int PLLs[] = {PLL_1x, PLL_2x, PLL_3x, PLL_4x, PLL_6x, PLL_8x, PLL_12x, PLL_15x, PLL_16x, PLL_18x, PLL_20x, PLL_24x, PLL_26x, PLL_28x}; +const int DIVs[] = {ICLK_2, ICLK_3, ICLK_4, ICLK_6, ICLK_8, ICLK_12, ICLK_16, ICLK_24, ICLK_32, ICLK_36, ICLK_48, ICLK_72}; + +int key = 0; +char*cur = 0x00000000; +volatile unsigned int*FRQCR = (unsigned int*) 0xA4150000; + +void printXY(int x, int y, char *text, int useless) +{ + PrintMini(x * 6,y * 6, text, MINI_OVER); +} + +void update(void) { + int warning = 0; + Bdisp_AllClr_VRAM(); + printXY(2, 1, " Operating Frequency", MINI_OVER); + printXY(3, 2, " Freq:", MINI_OVER); + printXY(3, 3, " ICLK:", MINI_OVER); + printXY(3, 4, " PCLK:", MINI_OVER); + printXY(3, 5, " BCLK:", MINI_OVER); + printXY(3, 6, " SCLK:", MINI_OVER); + printXY(1, 7, " U/D - FRQ, L/R - ICLK", MINI_OVER); + switch((*FRQCR & 0x3F000000) >> 24) { + case PLL_28x: + cur = " 101.5 MHz !!!"; + warning = 1; + break; + case PLL_26x: + cur = " 94.3 MHz"; + break; + case PLL_24x: + cur = " 87 MHz"; + break; + case PLL_20x: + cur = " 72.5 MHz"; + break; + case PLL_18x: + cur = " 65.3 MHz"; + break; + case PLL_16x: + cur = " 58 MHz (NORM)"; + break; + case PLL_15x: + cur = " 54.4 MHz"; + break; + case PLL_12x: + cur = " 43.5 MHz"; + break; + case PLL_8x: + cur = " 29 MHz"; + break; + case PLL_6x: + cur = " 21.7 MHz"; + break; + case PLL_4x: + cur = " 14.5 MHz"; + break; + case PLL_3x: + cur = " 10.8 MHz"; + break; + case PLL_2x: + cur = " 7.25 MHz"; + break; + case PLL_1x: + cur = " 3.6 MHz"; + break; + default: + cur = " INVALID"; + break; + } + printXY(9, 2, cur, MINI_OVER); + switch((*FRQCR & 0x00F00000) >> 20) { + case ICLK_72: + cur = " 1/72"; + break; + case ICLK_48: + cur = " 1/48"; + break; + case ICLK_36: + cur = " 1/36"; + break; + case ICLK_32: + cur = " 1/32"; + break; + case ICLK_24: + cur = " 1/24"; + break; + case ICLK_16: + cur = " 1/16"; + break; + case ICLK_12: + cur = " 1/12"; + break; + case ICLK_8: + cur = " 1/8"; + break; + case ICLK_6: + cur = " 1/6"; + break; + case ICLK_4: + cur = " 1/4"; + break; + case ICLK_3: + cur = " 1/3 (NORM)"; + break; + case ICLK_2: + cur = " 1/2 !!!"; + warning += 2; + break; + default: + cur = " INVALID"; + break; + } + printXY(9, 3, cur, MINI_OVER); + switch(*FRQCR & 0xF) { + case ICLK_72: + cur = " 1/72"; + break; + case ICLK_48: + cur = " 1/48"; + break; + case ICLK_36: + cur = " 1/36"; + break; + case ICLK_32: + cur = " 1/32"; + break; + case ICLK_24: + cur = " 1/24"; + break; + case ICLK_16: + cur = " 1/16"; + break; + case ICLK_12: + cur = " 1/12"; + break; + case ICLK_8: + cur = " 1/8"; + break; + case ICLK_6: + cur = " 1/6 (NORM)"; + break; + case ICLK_4: + cur = " 1/4"; + break; + case ICLK_3: + cur = " 1/3"; + break; + case ICLK_2: + cur = " 1/2"; + break; + default: + cur = " INVALID"; + break; + } + printXY(9, 4, cur, MINI_OVER); + switch((*FRQCR & 0xF00) >> 8) { + case ICLK_72: + cur = " 1/72"; + break; + case ICLK_48: + cur = " 1/48"; + break; + case ICLK_36: + cur = " 1/36"; + break; + case ICLK_32: + cur = " 1/32"; + break; + case ICLK_24: + cur = " 1/24"; + break; + case ICLK_16: + cur = " 1/16"; + break; + case ICLK_12: + cur = " 1/12"; + break; + case ICLK_8: + cur = " 1/8"; + break; + case ICLK_6: + cur = " 1/6"; + break; + case ICLK_4: + cur = " 1/4 (NORM)"; + break; + case ICLK_3: + cur = " 1/3"; + break; + case ICLK_2: + cur = " 1/2"; + break; + default: + cur = " INVALID"; + break; + } + printXY(9, 5, cur, MINI_OVER); + switch((*FRQCR & 0xF000) >> 12) { + case ICLK_72: + cur = " 1/72"; + break; + case ICLK_48: + cur = " 1/48"; + break; + case ICLK_36: + cur = " 1/36"; + break; + case ICLK_32: + cur = " 1/32"; + break; + case ICLK_24: + cur = " 1/24"; + break; + case ICLK_16: + cur = " 1/16"; + break; + case ICLK_12: + cur = " 1/12"; + break; + case ICLK_8: + cur = " 1/8"; + break; + case ICLK_6: + cur = " 1/6"; + break; + case ICLK_4: + cur = " 1/4 (NORM)"; + break; + case ICLK_3: + cur = " 1/3"; + break; + case ICLK_2: + cur = " 1/2"; + break; + default: + cur = " INVALID"; + break; + } + printXY(9, 6, cur, MINI_OVER); + if(warning == 1 || warning == 3) { + printXY(1, 8, " UNSAFE FREQ/DIV VALUE", MINI_OVER); + } else if(warning == 2) { + printXY(1, 8, " TROUBLESOME DIV VALUE", MINI_OVER); + } + Bdisp_PutDisp_DD(); +} + +int AddIn_main(int isAppli, unsigned short OptionNum) +{ + int i; + while(1) { + update(); + switch (key) { + case KEY_CTRL_UP: + for(i = 0; i < 13; i++) { + if(((*FRQCR & 0x3F000000) >> 24) == PLLs[i]) { + change_freq(PLLs[i+1]); + update(); + break; + } + } + break; + case KEY_CTRL_DOWN: + for(i = 1; i < 14; i++) { + if(((*FRQCR & 0x3F000000) >> 24) == PLLs[i]) { + change_freq(PLLs[i-1]); + update(); + break; + } + } + break; + case KEY_CTRL_LEFT: + for(i = 0; i < 2; i++) { + if(((*FRQCR & 0x00F00000) >> 20) == DIVs[i]) { + change_iclk(DIVs[i+1]); + update(); + break; + } + } + break; + case KEY_CTRL_RIGHT: + for(i = 1; i < 3; i++) { + if(((*FRQCR & 0x00F00000) >> 20) == DIVs[i]) { + change_iclk(DIVs[i-1]); + update(); + break; + } + } + break; + default: + break; + } + GetKey(&key); + update(); + } + + return 0; +} + +//**************************************************************************** +//************** **************** +//************** Notice! **************** +//************** **************** +//************** Please do not change the following source. **************** +//************** **************** +//**************************************************************************** + + +#pragma section _BR_Size +unsigned long BR_Size; +#pragma section + + +#pragma section _TOP + +//**************************************************************************** +// InitializeSystem +// +// param : isAppli : 1 = Application / 0 = eActivity +// OptionNum : Option Number (only eActivity) +// +// retval : 1 = No error / 0 = Error +// +//**************************************************************************** +int InitializeSystem(int isAppli, unsigned short OptionNum) +{ + return INIT_ADDIN_APPLICATION(isAppli, OptionNum); +} + +#pragma section + diff --git a/Speed.dlr b/Speed.dlr new file mode 100644 index 0000000..37b7c6d --- /dev/null +++ b/Speed.dlr @@ -0,0 +1,6 @@ +[DLSimRunSpace] + +[Breakpoint] +File=G:\Casio SDK\Projekte\Speed\Speed.c +Line=59 +Flags=00001012 diff --git a/Speed.dlw b/Speed.dlw new file mode 100644 index 0000000..e7214de --- /dev/null +++ b/Speed.dlw @@ -0,0 +1,185 @@ +[DLSimWorkSpace] + +[_1] +Type=5 +Order=3 +Top=14340 +Left=1845 +Height=13815 +Width=15705 +State=0 +Flags=00000020 +OptionA=0 + +[_2] +Type=1 +Order=7 +Top=15 +Left=7920 +Height=4860 +Width=5670 +State=0 +Flags=00000001 +OptionA=15 +OptionB=15 + +[_3] +Type=6 +Order=4 +Top=4740 +Left=7920 +Height=6390 +Width=5535 +State=0 +Flags=00000001 +OptionA=0 + +[_4] +Type=7 +Order=6 +Top=4740 +Left=2340 +Height=3165 +Width=5565 +State=0 +Flags=00000000 +OptionA=0 + +[_5] +Type=8 +Order=8 +Top=7905 +Left=2340 +Height=3225 +Width=5580 +State=0 +Flags=00000000 +OptionA=0 + +[_6] +Type=3 +Order=15 +Top=0 +Left=10788 +Height=6348 +Width=2232 +State=16 +Flags=00000000 +OptionA=0 + +[_7] +Type=2 +Order=14 +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=2055 +State=0 +Flags=00000000 +OptionA=0 + +[_9] +Type=15 +Order=2 +Top=6780 +Left=1800 +Height=6150 +Width=5595 +State=0 +Flags=00000000 +OptionA=0 + +[_32] +Type=16 +Order=0 +Top=195 +Left=12105 +Height=14085 +Width=17550 +State=0 +Flags=00000030 +Setting=292:6:Speed.c +OptionA=0 + +[_33] +Type=16 +Order=5 +Top=2625 +Left=2625 +Height=9990 +Width=23865 +State=1 +Flags=00000020 +Setting=8:14:C:\Users\Timo\Downloads\Speed (1)\SYSCALLS.src +OptionA=0 + +[_34] +Type=16 +Order=9 +Top=1380 +Left=-120 +Height=10110 +Width=23985 +State=16 +Flags=00000020 +Setting=1:1:change_sclk.src +OptionA=0 + +[_35] +Type=16 +Order=12 +Top=3000 +Left=2625 +Height=9735 +Width=23985 +State=16 +Flags=00000020 +Setting=5:1:change_bclk.src +OptionA=0 + +[_36] +Type=16 +Order=11 +Top=4125 +Left=4125 +Height=10110 +Width=23985 +State=16 +Flags=00000020 +Setting=3:1:change_freq.src +OptionA=0 + +[_37] +Type=16 +Order=10 +Top=4500 +Left=4500 +Height=10110 +Width=23985 +State=16 +Flags=00000020 +Setting=4:14:change_pclk.src +OptionA=0 + +[_38] +Type=16 +Order=13 +Top=3075 +Left=-2445 +Height=10050 +Width=23985 +State=16 +Flags=00000020 +Setting=1:1:change_sclk.src +OptionA=0 diff --git a/Speed.g1w b/Speed.g1w new file mode 100644 index 0000000..afdf0ae --- /dev/null +++ b/Speed.g1w @@ -0,0 +1,20 @@ +[DLSimProject] +Name=Speed +Version=1.00.0000 +Model=:fx-9860G.dlm +SourcePath=SRC +MemoryPath=INIT +MemCardPath=SDCard + +[Program1] +Program=SPEED.G1A +Debug=Debug\FXADDINror.dbg +LoadAddress=80000000:90100000 + +[Files] +SourceFile=:Speed.c +SourceFile=:change_freq.src +SourceFile=:change_iclk.src +SourceFile=:change_pclk.src +SourceFile=:change_bclk.src +SourceFile=:change_sclk.src diff --git a/change_bclk b/change_bclk new file mode 100644 index 0000000..96220e6 --- /dev/null +++ b/change_bclk @@ -0,0 +1,20 @@ + "mov r4, r0\n\t" + "and #0x0F, r0\n\t" + "shll16 r0\n\t" + "shll2 r0\n\t" + "shll2 r0\n\t" + "mov.l frqcr_bclk, r1\n\t" + "mov.l bclk_mask, r3\n\t" + "mov.l @r1, r2\n\t" + "and r3, r2\n\t" + "or r0, r2\n\t" + "mov.l r2, @r1\n\t" + "mov.l frqcr_kick_bit_bclk, r0\n\t" + "mov.l @r1, r2\n\t" + "or r0, r2\n\t" + "rts\n\t" + "mov.l r2, @r1\n\t" + ".align 4\n\t" + "frqcr_kick_bit_bclk: .long 0x80000000\n\t" + "bclk_mask: .long 0xFFFFF0FF\n\t" + "frqcr_bclk: .long 0xA4150000\n\t" \ No newline at end of file diff --git a/change_bclk.src b/change_bclk.src new file mode 100644 index 0000000..7847321 --- /dev/null +++ b/change_bclk.src @@ -0,0 +1,23 @@ + .export _change_bclk + + .SECTION P,CODE,ALIGN=4 + +_change_bclk: + mov r4, r0 + and #h'0F, r0 + shll16 r0 + shll2 r0 + shll2 r0 + mov.l #h'80000000, r1 + mov.l #h'FFFFF0FF, r3 + mov.l @r1, r2 + and r3, r2 + or r0, r2 + mov.l r2, @r1 + mov.l #h'A4150000, r0 + mov.l @r1, r2 + or r0, r2 + rts + mov.l r2, @r1 + .align 4 + .END \ No newline at end of file diff --git a/change_freq.src b/change_freq.src new file mode 100644 index 0000000..03ba5ae --- /dev/null +++ b/change_freq.src @@ -0,0 +1,22 @@ + .export _change_freq + + .SECTION P,CODE,ALIGN=4 + +_change_freq: + mov r4, r0 + and #h'3F, r0 + shll16 r0 + shll8 r0 + mov.l #h'A4150000, r1 + mov.l #h'C0FFFFFF, r3 + mov.l @r1, r2 + and r3, r2 + or r0, r2 + mov.l r2, @r1 + mov.l #h'80000000, r0 + mov.l @r1, r2 + or r0, r2 + rts + mov.l r2, @r1 + .align 4 + .END \ No newline at end of file diff --git a/change_iclk.src b/change_iclk.src new file mode 100644 index 0000000..d5ac64b --- /dev/null +++ b/change_iclk.src @@ -0,0 +1,22 @@ + .export _change_iclk + .SECTION P,CODE,ALIGN=4 + +_change_iclk: + mov r4, r0 + and #h'0F, r0 + shll16 r0 + shll2 r0 + shll2 r0 + mov.l #h'A4150000, r1 + mov.l #h'FF0FFFFF, r3 + mov.l @r1, r2 + and r3, r2 + or r0, r2 + mov.l r2, @r1 + mov.l #h'80000000, r0 + mov.l @r1, r2 + or r0, r2 + rts + mov.l r2, @r1 + .align 4 + .END \ No newline at end of file diff --git a/change_pclk.src b/change_pclk.src new file mode 100644 index 0000000..49a1ffe --- /dev/null +++ b/change_pclk.src @@ -0,0 +1,22 @@ + .export _change_pclk + .SECTION P,CODE,ALIGN=4 + +_change_pclk: + mov r4, r0 + and #h'0F, r0 + shll16 r0 + shll2 r0 + shll2 r0 + mov.l #h'A4150000, r1 + mov.l #h'FFFFFFF0, r3 + mov.l @r1, r2 + and r3, r2 + or r0, r2 + mov.l r2, @r1 + mov.l #h'80000000, r0 + mov.l @r1, r2 + or r0, r2 + rts + mov.l r2, @r1 + .align 4 + .END \ No newline at end of file diff --git a/change_sclk.src b/change_sclk.src new file mode 100644 index 0000000..72ee741 --- /dev/null +++ b/change_sclk.src @@ -0,0 +1,23 @@ + .export _change_sclk + + .SECTION P,CODE,ALIGN=4 + +_change_sclk: + mov r4, r0 + and #h'0F, r0 + shll16 r0 + shll2 r0 + shll2 r0 + mov.l #h'A4150000, r1 + mov.l #h'FFFF0FFF, r3 + mov.l @r1, r2 + and r3, r2 + or r0, r2 + mov.l r2, @r1 + mov.l #h'80000000, r0 + mov.l @r1, r2 + or r0, r2 + rts + mov.l r2, @r1 + .align 4 + .END 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