From df46fa7b9d2a9e8764957b8665292d67f9b97de9 Mon Sep 17 00:00:00 2001 From: schneefux Date: Sun, 12 Jun 2016 20:05:14 +0200 Subject: import into git --- Debug/Addin.mak | 101 ++++++++ Debug/FXADDINror.abs | Bin 0 -> 6452 bytes Debug/FXADDINror.bin | Bin 0 -> 1820 bytes Debug/FXADDINror.dbg | Bin 0 -> 8788 bytes Debug/FXADDINror.fsy | 67 ++++++ Debug/FXADDINror.map | 273 +++++++++++++++++++++ Debug/POWER.lst | 665 +++++++++++++++++++++++++++++++++++++++++++++++++++ Debug/POWER.obj | Bin 0 -> 12980 bytes 8 files changed, 1106 insertions(+) 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/POWER.lst create mode 100644 Debug/POWER.obj (limited to 'Debug') 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 new file mode 100644 index 0000000..9561839 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..3b7f04d 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..6d16424 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..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 new file mode 100644 index 0000000..fb23acc Binary files /dev/null and b/Debug/POWER.obj differ -- cgit v1.3.1