diff options
| -rw-r--r-- | AddinInfo.txt | 12 | ||||
| -rw-r--r-- | Debug/Addin.mak | 101 | ||||
| -rw-r--r-- | Debug/FXADDINror.abs | bin | 0 -> 6452 bytes | |||
| -rw-r--r-- | Debug/FXADDINror.bin | bin | 0 -> 1820 bytes | |||
| -rw-r--r-- | Debug/FXADDINror.dbg | bin | 0 -> 8788 bytes | |||
| -rw-r--r-- | Debug/FXADDINror.fsy | 67 | ||||
| -rw-r--r-- | Debug/FXADDINror.map | 273 | ||||
| -rw-r--r-- | Debug/POWER.lst | 665 | ||||
| -rw-r--r-- | Debug/POWER.obj | bin | 0 -> 12980 bytes | |||
| -rw-r--r-- | FXSH_Build.bat | 22 | ||||
| -rw-r--r-- | INIT/CasioRAM.mem | bin | 0 -> 48532 bytes | |||
| -rw-r--r-- | INIT/CasioRAMCPU.mem | bin | 0 -> 80 bytes | |||
| -rw-r--r-- | MainIcon.bmp | bin | 0 -> 138 bytes | |||
| -rw-r--r-- | POWER.G1A | bin | 0 -> 2332 bytes | |||
| -rw-r--r-- | POWER.c | 157 | ||||
| -rw-r--r-- | POWER.dlr | 13 | ||||
| -rw-r--r-- | POWER.dlw | 114 | ||||
| -rw-r--r-- | POWER.g1w | 15 | ||||
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | eActivityIcon.bmp | bin | 0 -> 106 bytes |
20 files changed, 1440 insertions, 0 deletions
diff --git a/AddinInfo.txt b/AddinInfo.txt new file mode 100644 index 0000000..bcf7d89 --- /dev/null +++ b/AddinInfo.txt @@ -0,0 +1,12 @@ +//------------------------------------------------------------------ +// Addin-Application header control file, created with the CASIO SDK +//------------------------------------------------------------------ +[OUTPUT] : "POWER.G1A" +[BINDATA] : "FXADDINror.bin" +[DISPNAME] : "POWER" +[APPNAME] : "@POWER" +[VERSION] : "01.00.0000" +[APL_ICON] : "MainIcon.bmp" +[MODULE_NUM] : 0 +[MOD1_TITLE] : "POWER" +[MOD1_ICON] : "eActivityIcon.bmp" diff --git a/Debug/Addin.mak b/Debug/Addin.mak new file mode 100644 index 0000000..a10c78c --- /dev/null +++ b/Debug/Addin.mak @@ -0,0 +1,101 @@ +################################################ +# 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\Battery +OUTDIR = G:\Casio SDK\Projekte\Battery\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=POWER +FILESRC0="$(APPDIR)\$(FILE0).c" +FILEOBJ0="$(OUTDIR)\$(FILE0).obj" +RFILE=FXADDINror +USERALLOBJ=$(FILEOBJ0) + +####################### +# 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 +<< + +!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 Binary files differnew file mode 100644 index 0000000..9561839 --- /dev/null +++ b/Debug/FXADDINror.abs diff --git a/Debug/FXADDINror.bin b/Debug/FXADDINror.bin Binary files differnew file mode 100644 index 0000000..3b7f04d --- /dev/null +++ b/Debug/FXADDINror.bin diff --git a/Debug/FXADDINror.dbg b/Debug/FXADDINror.dbg Binary files differnew file mode 100644 index 0000000..6d16424 --- /dev/null +++ b/Debug/FXADDINror.dbg diff --git a/Debug/FXADDINror.fsy b/Debug/FXADDINror.fsy new file mode 100644 index 0000000..e2d2947 --- /dev/null +++ b/Debug/FXADDINror.fsy @@ -0,0 +1,67 @@ +;HITACHI OPTIMIZING LINKAGE EDITOR GENERATED FILE 2012.10.10
+;fsymbol = P
+
+;SECTION NAME = P
+ .export _IsSlim
+_IsSlim: .equ h'0030020c
+ .export _OSVersionAsInt
+_OSVersionAsInt: .equ h'00300252
+ .export _IsSD
+_IsSD: .equ h'00300230
+ .export _IsEmulator
+_IsEmulator: .equ h'00300238
+ .export _GetMainBatteryVoltagePointer
+_GetMainBatteryVoltagePointer: .equ h'00300290
+ .export _GetBatteryStatus
+_GetBatteryStatus: .equ h'003002be
+ .export _MainBatteryPercentage
+_MainBatteryPercentage: .equ h'00300380
+ .export _AddIn_main
+_AddIn_main: .equ h'003003d4
+ .export ___LINK_PROTECT
+___LINK_PROTECT: .equ h'00300440
+ .export _SetQuitHandler
+_SetQuitHandler: .equ h'00300444
+ .export _OnAppCloseDefault
+_OnAppCloseDefault: .equ h'0030044a
+ .export __INITSCT_ADDIN
+__INITSCT_ADDIN: .equ h'0030049e
+ .export _INIT_ADDIN_APPLICATION
+_INIT_ADDIN_APPLICATION: .equ h'003004e6
+ .export __divls
+__divls: .equ h'0030055c
+ .export __slow_mvn
+__slow_mvn: .equ h'00300610
+ .export _Bdel_cychdr
+_Bdel_cychdr: .equ h'00300648
+ .export _Bdisp_PutDisp_DD
+_Bdisp_PutDisp_DD: .equ h'00300658
+ .export _Bdisp_DrawLineVRAM
+_Bdisp_DrawLineVRAM: .equ h'00300668
+ .export _BfileFLS_CloseFile
+_BfileFLS_CloseFile: .equ h'00300678
+ .export _Bkey_Set_RepeatTime_Default
+_Bkey_Set_RepeatTime_Default: .equ h'00300688
+ .export _CallbackAtQuitMainFunction
+_CallbackAtQuitMainFunction: .equ h'00300698
+ .export _flsFindClose
+_flsFindClose: .equ h'003006a8
+ .export _GetKey
+_GetKey: .equ h'003006b8
+ .export _GLibAddinAplExecutionCheck
+_GLibAddinAplExecutionCheck: .equ h'003006c8
+ .export _Hmem_SetMMU
+_Hmem_SetMMU: .equ h'003006d8
+ .export _PrintMini
+_PrintMini: .equ h'003006e8
+ .export _locate
+_locate: .equ h'00300704
+ .export _Bdisp_ReadArea_DD
+_Bdisp_ReadArea_DD: .equ h'0030072c
+ .export _DD_GET
+_DD_GET: .equ h'00300860
+ .export _locate_OS
+_locate_OS: .equ h'00300870
+ .export _PrintMiniSd
+_PrintMiniSd: .equ h'00300880
+ .end
diff --git a/Debug/FXADDINror.map b/Debug/FXADDINror.map new file mode 100644 index 0000000..28f4e6c --- /dev/null +++ b/Debug/FXADDINror.map @@ -0,0 +1,273 @@ +Hitachi Optimizing Linkage Editor (Ver. 7.1.03.000)10-Oct-2012 15:02:19
+
+*** Options ***
+
+-subcommand=C:\Users\Timo\AppData\Local\Temp\hmkB403.tmp
+noprelink
+sdebug
+rom D=R
+nomessage
+list "G:\Casio SDK\Projekte\Battery\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\Battery\Debug\POWER.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\Battery\Debug\FXADDINror.abs"
+-nomessage=1100
+end
+
+*** Error information ***
+
+*** Mapping List ***
+
+SECTION START END SIZE ALIGN
+
+P_TOP
+ 00300200 0030020b c 4
+P
+ 0030020c 0030088f 684 4
+C
+ 00300890 00300917 88 4
+D
+ 00300918 0030091b 4 4
+B_BR_Size
+ 08100000 08100003 4 4
+B
+ 08100004 08100007 4 4
+R
+ 08100008 0810000b 4 4
+
+*** Symbol List ***
+
+SECTION=
+FILE= START END SIZE
+ SYMBOL ADDR SIZE INFO COUNTS OPT
+
+SECTION=P_TOP
+FILE=G:\Casio SDK\Projekte\Battery\Debug\POWER.obj
+ 00300200 0030020b c
+ _InitializeSystem
+ 00300200 c func ,g *
+
+SECTION=P
+FILE=G:\Casio SDK\Projekte\Battery\Debug\POWER.obj
+ 0030020c 0030043f 234
+ _IsSlim
+ 0030020c 24 func ,g *
+ _IsSD
+ 00300230 8 func ,g *
+ _IsEmulator
+ 00300238 1a func ,g *
+ _OSVersionAsInt
+ 00300252 3e func ,g *
+ _GetMainBatteryVoltagePointer
+ 00300290 2e func ,g *
+ _GetBatteryStatus
+ 003002be c2 func ,g *
+ _MainBatteryPercentage
+ 00300380 54 func ,g *
+ _AddIn_main
+ 003003d4 6c func ,g *
+FILE=G:\Casio SDK\OS\FX\lib\setup.obj
+ 00300440 0030055b 11c
+ ___LINK_PROTECT
+ 00300440 4 func ,g *
+ _SetQuitHandler
+ 00300444 6 func ,g *
+ _OnAppCloseDefault
+ 0030044a 54 func ,g *
+ __INITSCT_ADDIN
+ 0030049e 48 func ,g *
+ _INIT_ADDIN_APPLICATION
+ 003004e6 76 func ,g *
+FILE=__divls
+ 0030055c 0030060f b4
+ __divls
+ 0030055c 0 none ,g *
+ divls_zero
+ 003005fa 0 none ,l *
+ A_errno
+ 00300608 0 none ,l *
+ n_zerono
+ 0030060c 0 none ,l *
+FILE=__s_mvn
+ 00300610 00300647 38
+ __slow_mvn
+ 00300610 0 none ,g *
+ SMVN_B
+ 0030061e 0 none ,l *
+ SMVN_END
+ 00300640 0 none ,l *
+FILE=_Bdel_cychdr
+ 00300648 00300657 10
+ _Bdel_cychdr
+ 00300648 0 none ,g *
+FILE=_Bdisp_PutDisp_DD
+ 00300658 00300667 10
+ _Bdisp_PutDisp_DD
+ 00300658 0 none ,g *
+FILE=_Bdisp_PutLineVRAM
+ 00300668 00300677 10
+ _Bdisp_DrawLineVRAM
+ 00300668 0 none ,g *
+FILE=_BfileFLS_CloseFile
+ 00300678 00300687 10
+ _BfileFLS_CloseFile
+ 00300678 0 none ,g *
+FILE=_Bkey_Set_RepeatTime_Default
+ 00300688 00300697 10
+ _Bkey_Set_RepeatTime_Default
+ 00300688 0 none ,g *
+FILE=_CallbackAtQuitMainFunction
+ 00300698 003006a7 10
+ _CallbackAtQuitMainFunction
+ 00300698 0 none ,g *
+FILE=_flsFindClose
+ 003006a8 003006b7 10
+ _flsFindClose
+ 003006a8 0 none ,g *
+FILE=_getkey
+ 003006b8 003006c7 10
+ _GetKey
+ 003006b8 0 none ,g *
+FILE=_GLibAddinAplExecutionCheck
+ 003006c8 003006d7 10
+ _GLibAddinAplExecutionCheck
+ 003006c8 0 none ,g *
+FILE=_Hmem_SetMMU
+ 003006d8 003006e7 10
+ _Hmem_SetMMU
+ 003006d8 0 none ,g *
+FILE=dispbios
+ 003006e8 0030085d 176
+ _PrintMini
+ 003006e8 1c func ,g *
+ _locate
+ 00300704 28 func ,g *
+ _Bdisp_ReadArea_DD
+ 0030072c 132 func ,g *
+FILE=_DD_GET
+ 00300860 0030086f 10
+ _DD_GET
+ 00300860 0 none ,g *
+FILE=_locate
+ 00300870 0030087f 10
+ _locate_OS
+ 00300870 0 none ,g *
+FILE=_PrintMiniSd
+ 00300880 0030088f 10
+ _PrintMiniSd
+ 00300880 0 none ,g *
+
+SECTION=C
+FILE=G:\Casio SDK\Projekte\Battery\Debug\POWER.obj
+ 00300890 00300903 74
+ _sc003B
+ 00300890 10 data ,g *
+ _sc0D65
+ 003008a0 10 data ,g *
+ _sc0D67
+ 003008b0 10 data ,g *
+ _sc0D64
+ 003008c0 10 data ,g *
+ _sc0015
+ 003008d0 10 data ,g *
+ _sc06C4
+ 003008e0 10 data ,g *
+ _sc0160
+ 003008f0 10 data ,g *
+FILE=addin_sct
+ 00300904 00300917 14
+ _B_BGN
+ 00300904 0 none ,g *
+ _B_END
+ 00300908 0 none ,g *
+ _R_BGN
+ 0030090c 0 none ,g *
+ _R_END
+ 00300910 0 none ,g *
+ _D_ROM
+ 00300914 0 none ,g *
+
+SECTION=B_BR_Size
+FILE=G:\Casio SDK\Projekte\Battery\Debug\POWER.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\OS\FX\lib\setup.obj
+ 08100008 0810000b 4
+ _gb_OnAppClose
+ 08100008 4 data ,g *
+
+Absolute value symbols
+FILE=__divls
+ zerodiv
+ 0000044e 0 none ,l *
+FILE=_Bdel_cychdr
+ __JumpTableTOP
+ 80010070 0 none ,l *
+FILE=_Bdisp_PutDisp_DD
+ __JumpTableTOP
+ 80010070 0 none ,l *
+FILE=_Bdisp_PutLineVRAM
+ __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=_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/POWER.lst b/Debug/POWER.lst new file mode 100644 index 0000000..354c1ec --- /dev/null +++ b/Debug/POWER.lst @@ -0,0 +1,665 @@ +SH SERIES C/C++ Compiler (Ver. 6.0C) 10-Oct-2012 15:02:19 PAGE 1
+
+************ OBJECT LISTING ************
+
+FILE NAME: G:\Casio SDK\Projekte\Battery\POWER.c
+
+SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
+
+ POWER.c 1 #include "fxlib.h"
+ POWER.c 2
+ POWER.c 3 // instant syscalls (fx-9860)
+ POWER.c 4 #define SCA 0xD201D002
+ POWER.c 5 #define SCB 0x422B0009
+ POWER.c 6 #define SCE 0x80010070
+ POWER.c 7 typedef void(*sc_vpuc)(unsigned char*);
+ POWER.c 8 typedef int(*sc_iv)(void);
+ POWER.c 9 typedef int(*sc_i2pui)( unsigned int*, unsigned int* );
+ POWER.c 10 typedef int(*sc_i4pui)( unsigned int*, unsigned int*, unsigned int*, unsigned int* );
+ POWER.c 11 typedef int(*sc_i2puc2pus)( unsigned char*, unsigned char*, unsigned short*, unsigned short* );
+ POWER.c 12 typedef int(*sc_iipci)( int, unsigned char*, int );
+ POWER.c 13 const unsigned int sc003B[] = { SCA, SCB, SCE, 0x003B };
+ POWER.c 14 #define RTC_GetTicks (*(sc_iv)sc003B)
+ POWER.c 15 const unsigned int sc0D65[] = { SCA, SCB, SCE, 0x0D65 };
+ POWER.c 16 #define InputDateMonth (*(sc_i2pui)sc0D65)
+ POWER.c 17 const unsigned int sc0D67[] = { SCA, SCB, SCE, 0x0D67 };
+ POWER.c 18 #define InputDateYear (*(sc_i2pui)sc0D67)
+ POWER.c 19 const unsigned int sc0D64[] = { SCA, SCB, SCE, 0x0D64 };
+ POWER.c 20 #define InputDate (*(sc_i4pui)sc0D64)
+ POWER.c 21 const unsigned int sc0015[] = { SCA, SCB, SCE, 0x0015 };
+ POWER.c 22 #define GlibGetOSVersionInfo (*(sc_i2puc2pus)sc0015)
+ POWER.c 23 const unsigned int sc06C4[] = { SCA, SCB, SCE, 0x06C4 };
+ POWER.c 24 #define KBD_PRGM_GetKey (*(sc_vpuc)sc06C4)
+ POWER.c 25 const unsigned int sc0160[] = { SCA, SCB, SCE, 0x0160 };
+ POWER.c 26 #define LongToAsc (*(sc_iipci)sc0160)
+ POWER.c 27 // instant syscalls
+ POWER.c 28
+ POWER.c 29 // for fx9860 only!
+ POWER.c 30 #define PORT_E_DR 0xA4000128
+ POWER.c 31
+ POWER.c 32 //
+ POWER.c 33 #define OS202GII2 0x02020000
+ POWER.c 34 //
+ POWER.c 35 char IsSlim(){
+P 00000000 _IsSlim: ; function: IsSlim
+ ; frame size=4
+ 00000000 4F22 STS.L PR,@-R15
+ POWER.c 36 if ( ( OSVersionAsInt() & 0xFFFF0000 ) == OS202GII2 ) return 0;
+ 00000002 B020 BSR _OSVersionAsInt
+ 00000004 0009 NOP
+ 00000006 D23F MOV.L L381+10,R2 ; H'FFFF0000
+ 00000008 D33F MOV.L L381+14,R3 ; H'02020000
+ 0000000A 2029 AND R2,R0
+ 0000000C 3030 CMP/EQ R3,R0
+ 0000000E 8B02 BF L356
+ 00000010 4F26 LDS.L @R15+,PR
+ 00000012 000B RTS
+ 00000014 E000 MOV #0,R0
+ 00000016 L356:
+ POWER.c 37 else return !( *(char*)PORT_E_DR & 0x08 );
+ 00000016 D13D MOV.L L381+18,R1 ; H'A4000128
+ 00000018 6010 MOV.B @R1,R0
+ 0000001A C808 TST #8,R0
+
+
+
+
+SH SERIES C/C++ Compiler (Ver. 6.0C) 10-Oct-2012 15:02:19 PAGE 2
+
+
+SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
+
+ 0000001C 0029 MOVT R0
+ POWER.c 38 }
+ 0000001E L357:
+ 0000001E 4F26 LDS.L @R15+,PR
+ 00000020 000B RTS
+ 00000022 0009 NOP
+ POWER.c 39 //
+ POWER.c 40 char IsSD(){
+ 00000024 _IsSD: ; function: IsSD
+ ; frame size=0
+ POWER.c 41 return ( *(char*)PORT_E_DR & 0x01 );
+ 00000024 D339 MOV.L L381+18,R3 ; H'A4000128
+ 00000026 6030 MOV.B @R3,R0
+ POWER.c 42 }
+ 00000028 000B RTS
+ 0000002A C901 AND #1,R0
+ POWER.c 43
+ POWER.c 44 //
+ POWER.c 45 int IsEmulator(){
+ 0000002C _IsEmulator: ; function: IsEmulator
+ ; frame size=0
+ POWER.c 46 return !( *(int*)0x8000FFD0 || *(int*)0x8000FFD4 );
+ 0000002C D138 MOV.L L381+22,R1 ; H'8000FFD0
+ 0000002E 6212 MOV.L @R1,R2
+ 00000030 2228 TST R2,R2
+ 00000032 8B05 BF L362
+ 00000034 D337 MOV.L L381+26,R3 ; H'8000FFD4
+ 00000036 6232 MOV.L @R3,R2
+ 00000038 2228 TST R2,R2
+ 0000003A 8B01 BF L362
+ 0000003C 000B RTS
+ 0000003E E001 MOV #1,R0
+ 00000040 L362:
+ 00000040 E000 MOV #0,R0
+ POWER.c 47 }
+ 00000042 L364:
+ 00000042 000B RTS
+ 00000044 0009 NOP
+ POWER.c 48
+ POWER.c 49 #define OS102 0x01020000
+ POWER.c 50 #define OS103 0x01030000
+ POWER.c 51 #define OS104 0x01040000
+ POWER.c 52 #define OS105 0x01050000
+ POWER.c 53 #define OS1051 0x01051000
+ POWER.c 54 #define OS110 0x01100000
+ POWER.c 55 #define OS111 0x01110000
+ POWER.c 56 #define OS200 0x02000300
+ POWER.c 57 #define OS200slim 0x02000100
+ POWER.c 58 #define OS200GII 0x02000200
+ POWER.c 59
+ POWER.c 60 //
+ POWER.c 61 int OSVersionAsInt( void ){
+ 00000046 _OSVersionAsInt: ; function: OSVersionAsInt
+ ; frame size=20
+ 00000046 4F22 STS.L PR,@-R15
+ POWER.c 62 unsigned char mainversion;
+ POWER.c 63 unsigned char minorversion;
+
+
+
+
+SH SERIES C/C++ Compiler (Ver. 6.0C) 10-Oct-2012 15:02:19 PAGE 3
+
+
+SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
+
+ POWER.c 64 unsigned short release;
+ POWER.c 65 unsigned short build;
+ POWER.c 66 GlibGetOSVersionInfo( &mainversion, &minorversion, &release, &build );
+ 00000048 D233 MOV.L L381+30,R2 ; _sc0015
+ 0000004A 7FF0 ADD #-16,R15
+ 0000004C 67F3 MOV R15,R7
+ 0000004E 770C ADD #12,R7
+ 00000050 66F3 MOV R15,R6
+ 00000052 7608 ADD #8,R6
+ 00000054 65F3 MOV R15,R5
+ 00000056 7504 ADD #4,R5
+ 00000058 420B JSR @R2
+ 0000005A 64F3 MOV R15,R4
+ POWER.c 67 return ( ( mainversion << 24 ) & 0xFF000000 ) | ( ( minorversion << 16 ) & 0x00FF0000 ) | ( release & 0x
+ +0000FFFF );
+ 0000005C 60F0 MOV.B @R15,R0
+ 0000005E 600C EXTU.B R0,R0
+ 00000060 D32E MOV.L L381+34,R3 ; H'FF000000
+ 00000062 4028 SHLL16 R0
+ 00000064 D22E MOV.L L381+38,R2 ; H'00FF0000
+ 00000066 4018 SHLL8 R0
+ 00000068 2039 AND R3,R0
+ 0000006A 6103 MOV R0,R1
+ 0000006C 84F4 MOV.B @(4,R15),R0
+ 0000006E 600C EXTU.B R0,R0
+ 00000070 4028 SHLL16 R0
+ 00000072 2029 AND R2,R0
+ 00000074 201B OR R1,R0
+ 00000076 6103 MOV R0,R1
+ 00000078 85F4 MOV.W @(8,R15),R0
+ POWER.c 68 }
+ 0000007A 7F10 ADD #16,R15
+ 0000007C 4F26 LDS.L @R15+,PR
+ 0000007E 600D EXTU.W R0,R0
+ 00000080 000B RTS
+ 00000082 201B OR R1,R0
+ POWER.c 69
+ POWER.c 70 //
+ POWER.c 71 int GetMainBatteryVoltagePointer(){
+ 00000084 _GetMainBatteryVoltagePointer: ; function: GetMainBatteryVoltagePointer
+ ; frame size=0
+ POWER.c 72 unsigned int ea;
+ POWER.c 73 unsigned int j;
+ POWER.c 74 ea = *(unsigned int*)0x8001007C;
+ 00000084 D327 MOV.L L381+42,R3 ; H'8001007C
+ 00000086 6532 MOV.L @R3,R5
+ POWER.c 75 ea = ea + 0x049C*4;
+ 00000088 9237 MOV.W L381,R2 ; H'1270
+ 0000008A 352C ADD R2,R5
+ POWER.c 76 ea = *(unsigned int*)( ea );
+ 0000008C 6452 MOV.L @R5,R4
+ 0000008E D526 MOV.L L381+46,R5 ; H'0000E464
+ POWER.c 77 while ( *(unsigned short*)( ea ) != 0xE464 ){
+ 00000090 A001 BRA L366
+ 00000092 0009 NOP
+ 00000094 L367:
+ POWER.c 78 ea = ea + 2;
+
+
+
+
+SH SERIES C/C++ Compiler (Ver. 6.0C) 10-Oct-2012 15:02:19 PAGE 4
+
+
+SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
+
+ 00000094 7402 ADD #2,R4
+ 00000096 L366:
+ 00000096 6341 MOV.W @R4,R3
+ 00000098 633D EXTU.W R3,R3
+ 0000009A 3350 CMP/EQ R5,R3
+ 0000009C 8BFA BF L367
+ POWER.c 79 };
+ POWER.c 80 ea = ea + 2;
+ 0000009E 7402 ADD #2,R4
+ POWER.c 81 j = *(unsigned char*)( ea + 1 );
+ 000000A0 8441 MOV.B @(1,R4),R0
+ POWER.c 82 j = 4*j;
+ POWER.c 83 j = ( ea + j + 4 ) & 0xFFFFFFFC;
+ 000000A2 E3FC MOV #-4,R3
+ 000000A4 650C EXTU.B R0,R5
+ 000000A6 4508 SHLL2 R5
+ 000000A8 345C ADD R5,R4
+ 000000AA 7404 ADD #4,R4
+ 000000AC 2439 AND R3,R4
+ POWER.c 84 return *(unsigned int*)( j );
+ POWER.c 85 }
+ 000000AE 000B RTS
+ 000000B0 6042 MOV.L @R4,R0
+ POWER.c 86
+ POWER.c 87 int GetBatteryStatus( int battery, int*firstlevel, int*secondlevel ){
+ 000000B2 _GetBatteryStatus: ; function: GetBatteryStatus
+ ; frame size=20
+ 000000B2 2FE6 MOV.L R14,@-R15
+ 000000B4 2FD6 MOV.L R13,@-R15
+ 000000B6 6E53 MOV R5,R14
+ POWER.c 88 int (*iGBS)( int ) = 0; // declare an int function pointer
+ POWER.c 89 int*battconfig = (int*)0x80000334;
+ POWER.c 90 *firstlevel = 0x17F;
+ 000000B8 9320 MOV.W L381+2,R3 ; H'017F
+ 000000BA 6D63 MOV R6,R13
+ POWER.c 91 *secondlevel = 0x16D;
+ 000000BC 921F MOV.W L381+4,R2 ; H'016D
+ 000000BE 2FC6 MOV.L R12,@-R15
+ 000000C0 4F22 STS.L PR,@-R15
+ 000000C2 7FFC ADD #-4,R15
+ 000000C4 2F42 MOV.L R4,@R15
+ 000000C6 2E32 MOV.L R3,@R14
+ POWER.c 92
+ POWER.c 93 iGBS = (int(*)(int))GetMainBatteryVoltagePointer();
+ 000000C8 BFDC BSR _GetMainBatteryVoltagePointer
+ 000000CA 2D22 MOV.L R2,@R13
+ POWER.c 94
+ POWER.c 95 switch ( OSVersionAsInt() ){
+ 000000CC BFBB BSR _OSVersionAsInt
+ 000000CE 6C03 MOV R0,R12
+ 000000D0 D116 MOV.L L381+50,R1 ; H'02000300
+ 000000D2 3010 CMP/EQ R1,R0
+ 000000D4 8907 BT L352
+ 000000D6 D116 MOV.L L381+54,R1 ; H'02000200
+ 000000D8 3010 CMP/EQ R1,R0
+ 000000DA 8935 BT L369
+ 000000DC D115 MOV.L L381+58,R1 ; H'02000100
+
+
+
+
+SH SERIES C/C++ Compiler (Ver. 6.0C) 10-Oct-2012 15:02:19 PAGE 5
+
+
+SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
+
+ 000000DE 3010 CMP/EQ R1,R0
+ 000000E0 892E BT L354
+ 000000E2 A031 BRA L369
+ 000000E4 0009 NOP
+ 000000E6 L352: ; case label
+ POWER.c 96 case OS200 :
+ POWER.c 97 if ( *battconfig==0x43444844 ){
+ 000000E6 D314 MOV.L L381+62,R3 ; H'43444844
+ 000000E8 D114 MOV.L L381+66,R1 ; H'80000334
+ 000000EA 6212 MOV.L @R1,R2
+ 000000EC 3230 CMP/EQ R3,R2
+ 000000EE 8B2B BF L369
+ POWER.c 98 *firstlevel = 0x1A5;
+ 000000F0 9206 MOV.W L381+6,R2 ; H'01A5
+ 000000F2 2E22 MOV.L R2,@R14
+ POWER.c 99 *secondlevel = 0x191;
+ 000000F4 9105 MOV.W L381+8,R1 ; H'0191
+ POWER.c 100 };
+ POWER.c 101 break;
+ 000000F6 A027 BRA L369
+ 000000F8 2D12 MOV.L R1,@R13
+ 000000FA L381:
+ 000000FA 1270 .DATA.W H'1270
+ 000000FC 017F .DATA.W H'017F
+ 000000FE 016D .DATA.W H'016D
+ 00000100 01A5 .DATA.W H'01A5
+ 00000102 0191 .DATA.W H'0191
+ 00000104 FFFF0000 .DATA.L H'FFFF0000
+ 00000108 02020000 .DATA.L H'02020000
+ 0000010C A4000128 .DATA.L H'A4000128
+ 00000110 8000FFD0 .DATA.L H'8000FFD0
+ 00000114 8000FFD4 .DATA.L H'8000FFD4
+ 00000118 <00000000> .DATA.L _sc0015
+ 0000011C FF000000 .DATA.L H'FF000000
+ 00000120 00FF0000 .DATA.L H'00FF0000
+ 00000124 8001007C .DATA.L H'8001007C
+ 00000128 0000E464 .DATA.L H'0000E464
+ 0000012C 02000300 .DATA.L H'02000300
+ 00000130 02000200 .DATA.L H'02000200
+ 00000134 02000100 .DATA.L H'02000100
+ 00000138 43444844 .DATA.L H'43444844
+ 0000013C 80000334 .DATA.L H'80000334
+ 00000140 L354: ; case label
+ POWER.c 102 case OS200GII :
+ POWER.c 103 //case OS202GII2 :
+ POWER.c 104 break;
+ POWER.c 105 case OS200slim :
+ POWER.c 106 *firstlevel = 0x2AA;
+ 00000140 9367 MOV.W L382,R3 ; H'02AA
+ 00000142 2E32 MOV.L R3,@R14
+ POWER.c 107 *secondlevel = 0x288;
+ 00000144 9266 MOV.W L382+2,R2 ; H'0288
+ 00000146 2D22 MOV.L R2,@R13
+ POWER.c 108 break;
+ 00000148 L369:
+ POWER.c 109 };
+ POWER.c 110 if (IsSlim()){
+
+
+
+
+SH SERIES C/C++ Compiler (Ver. 6.0C) 10-Oct-2012 15:02:19 PAGE 6
+
+
+SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
+
+ 00000148 BF5A BSR _IsSlim
+ 0000014A 0009 NOP
+ 0000014C 600E EXTS.B R0,R0
+ 0000014E 2008 TST R0,R0
+ 00000150 8903 BT L371
+ POWER.c 111 *firstlevel = 0x2AA;
+ 00000152 915E MOV.W L382,R1 ; H'02AA
+ POWER.c 112 *secondlevel = 0x288;
+ 00000154 935E MOV.W L382+2,R3 ; H'0288
+ 00000156 2E12 MOV.L R1,@R14
+ 00000158 2D32 MOV.L R3,@R13
+ 0000015A L371:
+ POWER.c 113 }
+ POWER.c 114 if (iGBS!=0) return (*iGBS)( battery );
+ 0000015A 2CC8 TST R12,R12
+ 0000015C 8903 BT L372
+ 0000015E 4C0B JSR @R12
+ 00000160 64F2 MOV.L @R15,R4
+ 00000162 A001 BRA L373
+ 00000164 0009 NOP
+ 00000166 L372:
+ POWER.c 115 else return 0;
+ 00000166 E000 MOV #0,R0
+ POWER.c 116 }
+ 00000168 L373:
+ 00000168 7F04 ADD #4,R15
+ 0000016A 4F26 LDS.L @R15+,PR
+ 0000016C 6CF6 MOV.L @R15+,R12
+ 0000016E 6DF6 MOV.L @R15+,R13
+ 00000170 000B RTS
+ 00000172 6EF6 MOV.L @R15+,R14
+ POWER.c 117
+ POWER.c 118 // the warning level lies around 2/3 full scale
+ POWER.c 119 int MainBatteryPercentage( void ){
+ 00000174 _MainBatteryPercentage: ; function: MainBatteryPercentage
+ ; frame size=16
+ ; used runtime library name:
+ ; __divls
+ 00000174 4F22 STS.L PR,@-R15
+ 00000176 4F12 STS.L MACL,@-R15
+ 00000178 7FF8 ADD #-8,R15
+ POWER.c 120 int firstlevel, secondlevel;
+ POWER.c 121 int i;
+ POWER.c 122 if ( IsEmulator() ){
+ 0000017A BF57 BSR _IsEmulator
+ 0000017C 0009 NOP
+ 0000017E 2008 TST R0,R0
+ 00000180 8905 BT L375
+ POWER.c 123 i = 100;
+ 00000182 E464 MOV #100,R4
+ POWER.c 124 firstlevel = 70;
+ 00000184 E346 MOV #70,R3
+ POWER.c 125 secondlevel = 65;
+ 00000186 E241 MOV #65,R2
+ 00000188 2F32 MOV.L R3,@R15
+ 0000018A A006 BRA L376
+ 0000018C 1F21 MOV.L R2,@(4,R15)
+
+
+
+
+SH SERIES C/C++ Compiler (Ver. 6.0C) 10-Oct-2012 15:02:19 PAGE 7
+
+
+SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
+
+ 0000018E L375:
+ POWER.c 126 } else i = GetBatteryStatus( 1, &firstlevel, &secondlevel );
+ 0000018E 66F3 MOV R15,R6
+ 00000190 7604 ADD #4,R6
+ 00000192 65F3 MOV R15,R5
+ 00000194 BF8D BSR _GetBatteryStatus
+ 00000196 E401 MOV #1,R4
+ 00000198 6403 MOV R0,R4
+ 0000019A L376:
+ POWER.c 127
+ POWER.c 128 if (firstlevel > 0 ) return ( 200*i )/(firstlevel*3);
+ 0000019A 63F2 MOV.L @R15,R3
+ 0000019C 4315 CMP/PL R3
+ 0000019E 8B0D BF L377
+ 000001A0 9139 MOV.W L382+4,R1 ; H'00C8
+ 000001A2 0417 MUL.L R1,R4
+ 000001A4 60F2 MOV.L @R15,R0
+ 000001A6 011A STS MACL,R1
+ 000001A8 D21B MOV.L L382+6,R2 ; __divls
+ 000001AA 6303 MOV R0,R3
+ 000001AC 4000 SHLL R0
+ 000001AE 420B JSR @R2
+ 000001B0 303C ADD R3,R0
+ 000001B2 7F08 ADD #8,R15
+ 000001B4 4F16 LDS.L @R15+,MACL
+ 000001B6 4F26 LDS.L @R15+,PR
+ 000001B8 000B RTS
+ 000001BA 0009 NOP
+ 000001BC L377:
+ POWER.c 129 else return 0;
+ 000001BC E000 MOV #0,R0
+ POWER.c 130 }
+ 000001BE L378:
+ 000001BE 7F08 ADD #8,R15
+ 000001C0 4F16 LDS.L @R15+,MACL
+ 000001C2 4F26 LDS.L @R15+,PR
+ 000001C4 000B RTS
+ 000001C6 0009 NOP
+ POWER.c 131
+ POWER.c 132 int AddIn_main(int isAppli, unsigned short OptionNum)
+ 000001C8 _AddIn_main: ; function: AddIn_main
+ ; frame size=16
+ ; used runtime library name:
+ ; __slow_mvn
+ 000001C8 4F22 STS.L PR,@-R15
+ POWER.c 133 {
+ POWER.c 134 // battery = 1 = main (do not use other values)
+ POWER.c 135 // firstlevel: warning level
+ POWER.c 136 // secondlevel: shutdown level
+ POWER.c 137
+ POWER.c 138 int fl = 33, sl = 66, m = 1, batt = 0;
+ 000001CA E321 MOV #33,R3
+ 000001CC 7FF4 ADD #-12,R15
+ 000001CE E242 MOV #66,R2
+ 000001D0 2F32 MOV.L R3,@R15
+ POWER.c 139
+ POWER.c 140 char c[4] = {0};
+
+
+
+
+SH SERIES C/C++ Compiler (Ver. 6.0C) 10-Oct-2012 15:02:19 PAGE 8
+
+
+SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
+
+ 000001D2 61F3 MOV R15,R1
+ 000001D4 1F21 MOV.L R2,@(4,R15)
+ 000001D6 7108 ADD #8,R1
+ 000001D8 D311 MOV.L L382+14,R3 ; __slow_mvn
+ 000001DA D210 MOV.L L382+10,R2 ; L346
+ 000001DC 430B JSR @R3
+ 000001DE E004 MOV #4,R0
+ POWER.c 141
+ POWER.c 142 locate(1,1);
+ 000001E0 D110 MOV.L L382+18,R1 ; _locate
+ 000001E2 E501 MOV #1,R5
+ 000001E4 410B JSR @R1
+ 000001E6 6453 MOV R5,R4
+ POWER.c 143
+ POWER.c 144 batt = GetBatteryStatus(m, &fl, &sl);
+ 000001E8 66F3 MOV R15,R6
+ 000001EA 7604 ADD #4,R6
+ 000001EC 65F3 MOV R15,R5
+ 000001EE BF60 BSR _GetBatteryStatus
+ 000001F0 E401 MOV #1,R4
+ 000001F2 6603 MOV R0,R6
+ POWER.c 145
+ POWER.c 146 Bdisp_DrawLineVRAM(0,0,batt,0);
+ 000001F4 D20C MOV.L L382+22,R2 ; _Bdisp_DrawLineVRAM
+ 000001F6 E700 MOV #0,R7
+ 000001F8 6573 MOV R7,R5
+ 000001FA 420B JSR @R2
+ 000001FC 6473 MOV R7,R4
+ POWER.c 147 Bdisp_PutDisp_DD();
+ 000001FE D30B MOV.L L382+26,R3 ; _Bdisp_PutDisp_DD
+ 00000200 430B JSR @R3
+ 00000202 0009 NOP
+ POWER.c 148 GetKey(&fl);
+ 00000204 D20A MOV.L L382+30,R2 ; _GetKey
+ 00000206 420B JSR @R2
+ 00000208 64F3 MOV R15,R4
+ POWER.c 149 }
+ 0000020A 7F0C ADD #12,R15
+ 0000020C 4F26 LDS.L @R15+,PR
+ 0000020E 000B RTS
+ 00000210 0009 NOP
+ 00000212 L382:
+ 00000212 02AA .DATA.W H'02AA
+ 00000214 0288 .DATA.W H'0288
+ 00000216 00C8 .DATA.W H'00C8
+ 00000218 <00000000> .DATA.L __divls
+ 0000021C <00000000> .DATA.L L346
+ 00000220 <00000000> .DATA.L __slow_mvn
+ 00000224 <00000000> .DATA.L _locate
+ 00000228 <00000000> .DATA.L _Bdisp_DrawLineVRAM
+ 0000022C <00000000> .DATA.L _Bdisp_PutDisp_DD
+ 00000230 <00000000> .DATA.L _GetKey
+ POWER.c 150 #pragma section _BR_Size
+ POWER.c 151 unsigned long BR_Size;
+ POWER.c 152 #pragma section
+ POWER.c 153 #pragma section _TOP
+ POWER.c 154 int InitializeSystem(int isAppli, unsigned short OptionNum)
+
+
+
+
+SH SERIES C/C++ Compiler (Ver. 6.0C) 10-Oct-2012 15:02:19 PAGE 9
+
+
+SCT OFFSET CODE C LABEL INSTRUCTION OPERAND COMMENT
+
+P_T 00000000 _InitializeSystem: ; function: InitializeSystem
+ ; frame size=0
+ POWER.c 155 {return INIT_ADDIN_APPLICATION(isAppli, OptionNum);}
+ 00000000 D301 MOV.L L383+2,R3 ; _INIT_ADDIN_APPLICATION
+ 00000002 432B JMP @R3
+ 00000004 0009 NOP
+ 00000006 L383:
+ 00000006 0000 .DATA.W 0
+ 00000008 <00000000> .DATA.L _INIT_ADDIN_APPLICATION
+ POWER.c 156 #pragma section
+ POWER.c 157
+C 00000000 _sc003B: ; static: sc003B
+ 00000000 D201D00242 .DATA.L H'D201D002,H'422B0009,H'80010070,H'0000003B
+ 2B00098001
+ 0070000000
+ 3B
+ 00000010 _sc0D65: ; static: sc0D65
+ 00000010 D201D00242 .DATA.L H'D201D002,H'422B0009,H'80010070,H'00000D65
+ 2B00098001
+ 007000000D
+ 65
+ 00000020 _sc0D67: ; static: sc0D67
+ 00000020 D201D00242 .DATA.L H'D201D002,H'422B0009,H'80010070,H'00000D67
+ 2B00098001
+ 007000000D
+ 67
+ 00000030 _sc0D64: ; static: sc0D64
+ 00000030 D201D00242 .DATA.L H'D201D002,H'422B0009,H'80010070,H'00000D64
+ 2B00098001
+ 007000000D
+ 64
+ 00000040 _sc0015: ; static: sc0015
+ 00000040 D201D00242 .DATA.L H'D201D002,H'422B0009,H'80010070,H'00000015
+ 2B00098001
+ 0070000000
+ 15
+ 00000050 _sc06C4: ; static: sc06C4
+ 00000050 D201D00242 .DATA.L H'D201D002,H'422B0009,H'80010070,H'000006C4
+ 2B00098001
+ 0070000006
+ C4
+ 00000060 _sc0160: ; static: sc0160
+ 00000060 D201D00242 .DATA.L H'D201D002,H'422B0009,H'80010070,H'00000160
+ 2B00098001
+ 0070000001
+ 60
+ 00000070 L346:
+ 00000070 00 .DATA.B H'00
+ 00000071 0000000301 .DATAB.B 3,0
+ 00
+B_B 00000000 _BR_Size: ; static: BR_Size
+ 00000000 00000004 .RES.L 1
+
+
+
+
+
+
+
+
+
+SH SERIES C/C++ Compiler (Ver. 6.0C) 10-Oct-2012 15:02:19 PAGE 1
+
+
+******** STATISTICS INFORMATION ********
+
+
+********** ERROR INFORMATION ***********
+
+NUMBER OF ERRORS: 0
+NUMBER OF WARNINGS: 1
+
+
+
+
+******* SOURCE LINE INFORMATION ********
+
+COMPILED SOURCE LINE: 157
+
+
+
+******* SECTION SIZE INFORMATION *******
+
+PROGRAM SECTION (P): 00000234 Byte(s)
+PROGRAM SECTION (P_BR_Size): 00000000 Byte(s)
+PROGRAM SECTION (P_TOP): 0000000C Byte(s)
+CONSTANT SECTION (C): 00000074 Byte(s)
+CONSTANT SECTION (C_BR_Size): 00000000 Byte(s)
+CONSTANT SECTION (C_TOP): 00000000 Byte(s)
+DATA SECTION (D): 00000000 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: 000002B8 Byte(s)
+
+
+
+********** LABEL INFORMATION ***********
+
+NUMBER OF EXTERNAL REFERENCE SYMBOLS: 7
+NUMBER OF EXTERNAL DEFINITION SYMBOLS: 17
+NUMBER OF INTERNAL/EXTERNAL SYMBOLS: 44
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+*** COMMAND PARAMETER ***
+
+
+ -subcommand=C:\Users\Timo\AppData\Local\Temp\hmkB23E.tmp
+
diff --git a/Debug/POWER.obj b/Debug/POWER.obj Binary files differnew file mode 100644 index 0000000..fb23acc --- /dev/null +++ b/Debug/POWER.obj diff --git a/FXSH_Build.bat b/FXSH_Build.bat new file mode 100644 index 0000000..cd796ca --- /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 POWER.G1A del POWER.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\Battery" +if not exist POWER.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 Binary files differnew file mode 100644 index 0000000..6240afb --- /dev/null +++ b/INIT/CasioRAM.mem diff --git a/INIT/CasioRAMCPU.mem b/INIT/CasioRAMCPU.mem Binary files differnew file mode 100644 index 0000000..fd09ac7 --- /dev/null +++ b/INIT/CasioRAMCPU.mem diff --git a/MainIcon.bmp b/MainIcon.bmp Binary files differnew file mode 100644 index 0000000..3fe372c --- /dev/null +++ b/MainIcon.bmp diff --git a/POWER.G1A b/POWER.G1A Binary files differnew file mode 100644 index 0000000..e0ea66b --- /dev/null +++ b/POWER.G1A @@ -0,0 +1,157 @@ +#include "fxlib.h" + +// instant syscalls (fx-9860) +#define SCA 0xD201D002 +#define SCB 0x422B0009 +#define SCE 0x80010070 +typedef void(*sc_vpuc)(unsigned char*); +typedef int(*sc_iv)(void); +typedef int(*sc_i2pui)( unsigned int*, unsigned int* ); +typedef int(*sc_i4pui)( unsigned int*, unsigned int*, unsigned int*, unsigned int* ); +typedef int(*sc_i2puc2pus)( unsigned char*, unsigned char*, unsigned short*, unsigned short* ); +typedef int(*sc_iipci)( int, unsigned char*, int ); +const unsigned int sc003B[] = { SCA, SCB, SCE, 0x003B }; +#define RTC_GetTicks (*(sc_iv)sc003B) +const unsigned int sc0D65[] = { SCA, SCB, SCE, 0x0D65 }; +#define InputDateMonth (*(sc_i2pui)sc0D65) +const unsigned int sc0D67[] = { SCA, SCB, SCE, 0x0D67 }; +#define InputDateYear (*(sc_i2pui)sc0D67) +const unsigned int sc0D64[] = { SCA, SCB, SCE, 0x0D64 }; +#define InputDate (*(sc_i4pui)sc0D64) +const unsigned int sc0015[] = { SCA, SCB, SCE, 0x0015 }; +#define GlibGetOSVersionInfo (*(sc_i2puc2pus)sc0015) +const unsigned int sc06C4[] = { SCA, SCB, SCE, 0x06C4 }; +#define KBD_PRGM_GetKey (*(sc_vpuc)sc06C4) +const unsigned int sc0160[] = { SCA, SCB, SCE, 0x0160 }; +#define LongToAsc (*(sc_iipci)sc0160) +// instant syscalls + +// for fx9860 only! +#define PORT_E_DR 0xA4000128 + +// +#define OS202GII2 0x02020000 +// +char IsSlim(){ + if ( ( OSVersionAsInt() & 0xFFFF0000 ) == OS202GII2 ) return 0; + else return !( *(char*)PORT_E_DR & 0x08 ); +} +// +char IsSD(){ + return ( *(char*)PORT_E_DR & 0x01 ); +} + +// +int IsEmulator(){ + return !( *(int*)0x8000FFD0 || *(int*)0x8000FFD4 ); +} + +#define OS102 0x01020000 +#define OS103 0x01030000 +#define OS104 0x01040000 +#define OS105 0x01050000 +#define OS1051 0x01051000 +#define OS110 0x01100000 +#define OS111 0x01110000 +#define OS200 0x02000300 +#define OS200slim 0x02000100 +#define OS200GII 0x02000200 + +// +int OSVersionAsInt( void ){ +unsigned char mainversion; +unsigned char minorversion; +unsigned short release; +unsigned short build; + GlibGetOSVersionInfo( &mainversion, &minorversion, &release, &build ); + return ( ( mainversion << 24 ) & 0xFF000000 ) | ( ( minorversion << 16 ) & 0x00FF0000 ) | ( release & 0x0000FFFF ); +} + +// +int GetMainBatteryVoltagePointer(){ +unsigned int ea; +unsigned int j; + ea = *(unsigned int*)0x8001007C; + ea = ea + 0x049C*4; + ea = *(unsigned int*)( ea ); + while ( *(unsigned short*)( ea ) != 0xE464 ){ + ea = ea + 2; + }; + ea = ea + 2; + j = *(unsigned char*)( ea + 1 ); + j = 4*j; + j = ( ea + j + 4 ) & 0xFFFFFFFC; + return *(unsigned int*)( j ); +} + +int GetBatteryStatus( int battery, int*firstlevel, int*secondlevel ){ +int (*iGBS)( int ) = 0; // declare an int function pointer +int*battconfig = (int*)0x80000334; + *firstlevel = 0x17F; + *secondlevel = 0x16D; + + iGBS = (int(*)(int))GetMainBatteryVoltagePointer(); + + switch ( OSVersionAsInt() ){ + case OS200 : + if ( *battconfig==0x43444844 ){ + *firstlevel = 0x1A5; + *secondlevel = 0x191; + }; + break; + case OS200GII : + //case OS202GII2 : + break; + case OS200slim : + *firstlevel = 0x2AA; + *secondlevel = 0x288; + break; + }; + if (IsSlim()){ + *firstlevel = 0x2AA; + *secondlevel = 0x288; + } + if (iGBS!=0) return (*iGBS)( battery ); + else return 0; +} + +// the warning level lies around 2/3 full scale +int MainBatteryPercentage( void ){ +int firstlevel, secondlevel; +int i; + if ( IsEmulator() ){ + i = 100; + firstlevel = 70; + secondlevel = 65; + } else i = GetBatteryStatus( 1, &firstlevel, &secondlevel ); + + if (firstlevel > 0 ) return ( 200*i )/(firstlevel*3); + else return 0; +} + +int AddIn_main(int isAppli, unsigned short OptionNum) +{ +// battery = 1 = main (do not use other values) +// firstlevel: warning level +// secondlevel: shutdown level + +int fl = 33, sl = 66, m = 1, batt = 0; + +char c[4] = {0}; + +locate(1,1); + +batt = GetBatteryStatus(m, &fl, &sl); + +Bdisp_DrawLineVRAM(0,0,batt,0); +Bdisp_PutDisp_DD(); +GetKey(&fl); +} +#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/POWER.dlr b/POWER.dlr new file mode 100644 index 0000000..4b45646 --- /dev/null +++ b/POWER.dlr @@ -0,0 +1,13 @@ +[DLSimRunSpace]
+
+[Breakpoint]
+File=G:\Casio SDK\Projekte\Battery\POWER.c
+Line=166
+Flags=00001012
+Sublevel=1
+
+[Breakpoint]
+File=G:\Casio SDK\Projekte\Battery\POWER.c
+Line=166
+Flags=00001012
+Sublevel=2
diff --git a/POWER.dlw b/POWER.dlw new file mode 100644 index 0000000..5b01b52 --- /dev/null +++ b/POWER.dlw @@ -0,0 +1,114 @@ +[DLSimWorkSpace]
+
+[_1]
+Type=5
+Order=2
+Top=615
+Left=2235
+Height=4740
+Width=5565
+State=0
+Flags=00000020
+Setting=149:1:POWER.c
+OptionA=0
+
+[_2]
+Type=1
+Order=4
+Top=615
+Left=7800
+Height=4890
+Width=5730
+State=0
+Flags=00000001
+OptionA=15
+OptionB=15
+
+[_3]
+Type=6
+Order=3
+Top=5310
+Left=7800
+Height=6420
+Width=5535
+State=0
+Flags=00000001
+OptionA=0
+
+[_4]
+Type=7
+Order=7
+Top=5340
+Left=2220
+Height=3165
+Width=5565
+State=0
+Flags=00000000
+OptionA=0
+
+[_5]
+Type=8
+Order=5
+Top=8505
+Left=2220
+Height=3225
+Width=5580
+State=0
+Flags=00000000
+OptionA=0
+
+[_6]
+Type=3
+Order=9
+Top=0
+Left=10788
+Height=6348
+Width=2232
+State=16
+Flags=00000000
+OptionA=0
+
+[_7]
+Type=2
+Order=8
+Top=6348
+Left=7800
+Height=3588
+Width=5220
+State=16
+Flags=00000000
+OptionA=0
+
+[_8]
+Type=17
+Order=6
+Top=615
+Left=-15
+Height=11115
+Width=2235
+State=0
+Flags=00000000
+OptionA=0
+
+[_9]
+Type=15
+Order=1
+Top=5340
+Left=2235
+Height=6345
+Width=5595
+State=0
+Flags=00000000
+OptionA=0
+
+[_32]
+Type=16
+Order=0
+Top=390
+Left=14385
+Height=13830
+Width=15750
+State=0
+Flags=00000020
+Setting=62:27:POWER.c
+OptionA=0
diff --git a/POWER.g1w b/POWER.g1w new file mode 100644 index 0000000..eafbb07 --- /dev/null +++ b/POWER.g1w @@ -0,0 +1,15 @@ +[DLSimProject]
+Name=POWER
+Version=1.00.0000
+Model=:fx-9860G.dlm
+SourcePath=SRC
+MemoryPath=INIT
+MemCardPath=SDCard
+
+[Program1]
+Program=POWER.G1A
+Debug=Debug\FXADDINror.dbg
+LoadAddress=80000000:90100000
+
+[Files]
+SourceFile=:POWER.c
diff --git a/README.md b/README.md new file mode 100644 index 0000000..ff1b31e --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Battery and RTC utility ported from Prizm to fx-9680 GII-2 diff --git a/eActivityIcon.bmp b/eActivityIcon.bmp Binary files differnew file mode 100644 index 0000000..104a2c6 --- /dev/null +++ b/eActivityIcon.bmp |
