mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
ApplicationJump デバッグ用チェックアプリの追加
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2074 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
730db2596c
commit
88f6573318
45
build/debugsoft/ApplicationJump/Card/Makefile
Normal file
45
build/debugsoft/ApplicationJump/Card/Makefile
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlSDK - tests - appjumpTest - Card
|
||||||
|
# File: Makefile
|
||||||
|
#
|
||||||
|
# Copyright 2008 Nintendo. All rights reserved.
|
||||||
|
#
|
||||||
|
# These coded instructions, statements, and computer programs contain
|
||||||
|
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
# Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
# not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
# in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
#
|
||||||
|
# $Date:: $
|
||||||
|
# $Rev$
|
||||||
|
# $Author$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
TARGET_PLATFORM := TWL
|
||||||
|
|
||||||
|
TARGET_BIN = appjumpTestForCard.srl
|
||||||
|
INCDIR = ../include
|
||||||
|
SRCDIR = ./src ../src
|
||||||
|
SRCS = main.c screen.c font.c common.c
|
||||||
|
|
||||||
|
ROM_SPEC = appjumptest_card.rsf
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
#-------------------------
|
||||||
|
# ƒCƒ“ƒXƒg<C692>[ƒ‹Žw’è
|
||||||
|
ifneq ($(TWL_IPL_RED_ROOT),)
|
||||||
|
INSTALL_DIR = $(TWL_IPL_RED_ROOT)/debugsoft/ApplicationJumpTest
|
||||||
|
INSTALL_TARGETS = $(BINDIR)/$(TARGET_BIN)
|
||||||
|
endif
|
||||||
|
|
||||||
|
#-------------------------
|
||||||
|
|
||||||
|
do-build: $(TARGETS)
|
||||||
|
|
||||||
|
include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
243
build/debugsoft/ApplicationJump/Card/appjumptest_card.rsf
Normal file
243
build/debugsoft/ApplicationJump/Card/appjumptest_card.rsf
Normal file
@ -0,0 +1,243 @@
|
|||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlSDK - include
|
||||||
|
# File: ROM-TS.rsf
|
||||||
|
#
|
||||||
|
# Copyright 2007 Nintendo. All rights reserved.
|
||||||
|
#
|
||||||
|
# These coded insructions, statements, and computer programs contain
|
||||||
|
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
# Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
# not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
# in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
#
|
||||||
|
# $Date:: $
|
||||||
|
# $Rev$
|
||||||
|
# $Author$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# TWL ROM SPEC FILE
|
||||||
|
#
|
||||||
|
|
||||||
|
Arm9
|
||||||
|
{
|
||||||
|
Static "$(MAKEROM_ARM9:r).TWL.FLX.sbin$(COMPSUFFIX9)"
|
||||||
|
OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.FLX.sbin$(COMPSUFFIX9)"
|
||||||
|
OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.FLX.sbin$(COMPSUFFIX9)"
|
||||||
|
Elf "$(MAKEROM_ARM9:r).tef"
|
||||||
|
}
|
||||||
|
|
||||||
|
Arm7
|
||||||
|
{
|
||||||
|
Static "$(MAKEROM_ARM7_BASE:r).TWL.FLX.sbin$(COMPSUFFIX7)"
|
||||||
|
OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.FLX.sbin$(COMPSUFFIX7)"
|
||||||
|
OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.FLX.sbin$(COMPSUFFIX7)"
|
||||||
|
Elf "$(MAKEROM_ARM7_BASE:r).tef"
|
||||||
|
}
|
||||||
|
|
||||||
|
Arm9.Ltd
|
||||||
|
{
|
||||||
|
Static "$(MAKEROM_ARM9:r).TWL.LTD.sbin$(COMPSUFFIX9)"
|
||||||
|
OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.LTD.sbin$(COMPSUFFIX9)"
|
||||||
|
OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.LTD.sbin$(COMPSUFFIX9)"
|
||||||
|
}
|
||||||
|
|
||||||
|
Arm7.Ltd
|
||||||
|
{
|
||||||
|
Static "$(MAKEROM_ARM7_BASE:r).TWL.LTD.sbin$(COMPSUFFIX7)"
|
||||||
|
OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.LTD.sbin$(COMPSUFFIX7)"
|
||||||
|
OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.LTD.sbin$(COMPSUFFIX7)"
|
||||||
|
}
|
||||||
|
|
||||||
|
Property
|
||||||
|
{
|
||||||
|
###
|
||||||
|
### Settings for FinalROM
|
||||||
|
###
|
||||||
|
#### BEGIN
|
||||||
|
#
|
||||||
|
# TITLE NAME: Your product name within 12bytes
|
||||||
|
#
|
||||||
|
TitleName "AppJmpTestC"
|
||||||
|
|
||||||
|
#
|
||||||
|
# MAKER CODE: Your company ID# in 2 ascii words
|
||||||
|
# issued by NINTENDO
|
||||||
|
#
|
||||||
|
MakerCode 03
|
||||||
|
|
||||||
|
#
|
||||||
|
# REMASTER VERSION: Mastering version
|
||||||
|
#
|
||||||
|
RomVersion 0
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM SPEED TYPE: [MROM/1TROM/UNDEFINED]
|
||||||
|
#
|
||||||
|
RomSpeedType $(MAKEROM_ROMSPEED)
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM SIZE: in bit [64M/128M/256M/512M/1G/2G/4G]
|
||||||
|
#
|
||||||
|
#RomSize 256M
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM PADDING: TRUE if finalrom
|
||||||
|
#
|
||||||
|
#RomFootPadding TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM HEADER TEMPLATE: Provided to every product by NINTENDO
|
||||||
|
#
|
||||||
|
#RomHeaderTemplate ./etc/rom_header.template.sbin
|
||||||
|
|
||||||
|
#
|
||||||
|
# BANNER FILE: generated from Banner Spec File
|
||||||
|
#
|
||||||
|
BannerFile $(TWLSDK_ROOT)/include/twl/specfiles/default.bnr
|
||||||
|
|
||||||
|
#
|
||||||
|
# Permit LandingNormalJump: for TWL "ApplicationJump" function [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
PermitLandingNormalJump TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Permit LandingTmpJump: for TWL "ApplicationJump" function [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#PermitLandingTmpJump FALSE
|
||||||
|
|
||||||
|
###
|
||||||
|
### Setting for TWL
|
||||||
|
###
|
||||||
|
|
||||||
|
#
|
||||||
|
# ROM HEADER Ltd: Provided to every product by NINTENDO
|
||||||
|
#
|
||||||
|
RomHeaderLtd $(TWLSDK_ROOT)/tools/bin/rom_header.LTD.sbin
|
||||||
|
|
||||||
|
#
|
||||||
|
# Digest parameters:
|
||||||
|
#
|
||||||
|
DigestParam 1024 32
|
||||||
|
|
||||||
|
#
|
||||||
|
# WRAM mapping: [MAP_BB_HYB/MAP_BB_LTD/MAP_TS_HYB/MAP_TS_LTD
|
||||||
|
# MAP2_BB_HYB/MAP2_BB_LTD/MAP2_TS_HYB/MAP2_TS_LTD]
|
||||||
|
# don't have to edit
|
||||||
|
#
|
||||||
|
WramMapping $(MAKEROM_WRAM_MAPPING)
|
||||||
|
|
||||||
|
#
|
||||||
|
# CardRegion: card region [Japan/America/Europe/Australia/China/Korea]
|
||||||
|
#
|
||||||
|
CardRegion ALL
|
||||||
|
|
||||||
|
#
|
||||||
|
# Codec mode:
|
||||||
|
# don't have to edit
|
||||||
|
#
|
||||||
|
CodecMode $(MAKEROM_CODEC_MODE)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Disp WiFiConnection Icon for Launcher [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#WiFiConnectionIcon FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Disp DSWireless Icon for Launcher [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#DSWirelessIcon FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Agree EULA [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#AgreeEULA FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Agree EULA version [1 - 255]
|
||||||
|
#
|
||||||
|
#AgreeEULAVersion 1
|
||||||
|
|
||||||
|
###
|
||||||
|
#### END
|
||||||
|
}
|
||||||
|
|
||||||
|
AppendProperty
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Boot allowed Media: [GameCard]
|
||||||
|
#
|
||||||
|
Media GameCard
|
||||||
|
|
||||||
|
#
|
||||||
|
# GameCode for TitleID : Your GameCode in 4 ascii words
|
||||||
|
#
|
||||||
|
GameCode 430A
|
||||||
|
|
||||||
|
#
|
||||||
|
# Public save data size: [0K/16K/32K/64K/128K/256K/512K/1M/2M/4M]
|
||||||
|
#
|
||||||
|
#PublicSaveDataSize 0K
|
||||||
|
|
||||||
|
#
|
||||||
|
# Private save data size: [0K/16K/32K/64K/128K/256K/512K/1M/2M/4M]
|
||||||
|
#
|
||||||
|
#PrivateSaveDataSize 0K
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable SubBannerFile
|
||||||
|
#SubBannerFile TRUE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Game card power on: [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#GameCardOn FALSE
|
||||||
|
|
||||||
|
#
|
||||||
|
# Game card transferd to nitro mode: [TRUE/FALSE]
|
||||||
|
#
|
||||||
|
#GameCardNitroMode FALSE
|
||||||
|
}
|
||||||
|
|
||||||
|
RomSpec
|
||||||
|
{
|
||||||
|
Offset 0x00000000
|
||||||
|
Segment ALL
|
||||||
|
HostRoot $(MAKEROM_ROMROOT)
|
||||||
|
Root /
|
||||||
|
File $(MAKEROM_ROMFILES)
|
||||||
|
}
|
||||||
|
|
||||||
|
Rating
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Permited age to play for each rating organization
|
||||||
|
#
|
||||||
|
# Supported organization
|
||||||
|
# - CERO (OGN0) : for Japan
|
||||||
|
# - ESRB (OGN1) : for North America
|
||||||
|
# - BBFC (OGN2) : obsolete organization
|
||||||
|
# - USK (OGN3) : for German
|
||||||
|
# - PEGI_GEN (OGN4) : for Europe
|
||||||
|
# - PEGI_FINLAND (OGN5) : obsolete organization
|
||||||
|
# - PEGI_PRT (OGN6) : for Portugal
|
||||||
|
# - PEGI_BBFC (OGN7) : for UK
|
||||||
|
# - OFLC (OGN8) : for Australia and NewZealand
|
||||||
|
# - GRB (OGN9) : for Korea
|
||||||
|
# - OGN10 : reserved
|
||||||
|
# - OGN11 : reserved
|
||||||
|
# - OGN12 : reserved
|
||||||
|
# - OGN13 : reserved
|
||||||
|
# - OGN14 : reserved
|
||||||
|
# - OGN15 : reserved
|
||||||
|
#
|
||||||
|
# Available age [ 0 - 31 / PENDING / FREE ]
|
||||||
|
|
||||||
|
CERO FREE
|
||||||
|
# ESRB FREE
|
||||||
|
# USK FREE
|
||||||
|
# PEGI_GEN FREE
|
||||||
|
# PEGI_PRT FREE
|
||||||
|
# PEGI_BBFC FREE
|
||||||
|
# OFLC FREE
|
||||||
|
# GRB FREE
|
||||||
|
}
|
||||||
BIN
build/debugsoft/ApplicationJump/Card/banner/banner.bnr
Normal file
BIN
build/debugsoft/ApplicationJump/Card/banner/banner.bnr
Normal file
Binary file not shown.
313
build/debugsoft/ApplicationJump/Card/src/main.c
Normal file
313
build/debugsoft/ApplicationJump/Card/src/main.c
Normal file
@ -0,0 +1,313 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlSDK - tests - appjumpTest - Card
|
||||||
|
File: main.c
|
||||||
|
|
||||||
|
Copyright 2008 Nintendo. All rights reserved.
|
||||||
|
|
||||||
|
These coded instructions, statements, and computer programs contain
|
||||||
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
|
$Date:: $
|
||||||
|
$Rev$
|
||||||
|
$Author$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#include "common.h"
|
||||||
|
#include "screen.h"
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
変数 定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
// キー入力
|
||||||
|
static KeyInfo gKey;
|
||||||
|
|
||||||
|
// アプリ間パラメータ
|
||||||
|
static AppParam gAppParam;
|
||||||
|
// アプリ間パラメータとして文字列をセットするかどうか
|
||||||
|
static BOOL gIsSetDelArg = TRUE;
|
||||||
|
// アプリ間パラメータとして引き渡された文字列を格納するバッファ(6つまで)
|
||||||
|
static char gStrAppParam[6][APPJUMP_STRING_LENGTH + 1] ATTRIBUTE_ALIGN(32);
|
||||||
|
// アプリ間パラメータとして引き渡された文字列の個数
|
||||||
|
static int gArgc;
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Prototype
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void AddDeliverArg(OSDeliverArgInfo *argInfo, BOOL isReturn);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void TwlMain(void)
|
||||||
|
{
|
||||||
|
OSDeliverArgInfo argInfo;
|
||||||
|
|
||||||
|
int result;
|
||||||
|
int argSize =sizeof(u32);
|
||||||
|
|
||||||
|
InitCommon();
|
||||||
|
InitScreen();
|
||||||
|
|
||||||
|
GX_DispOn();
|
||||||
|
GXS_DispOn();
|
||||||
|
|
||||||
|
ClearScreen();
|
||||||
|
|
||||||
|
// キー入力情報取得の空呼び出し(IPL での A ボタン押下対策)
|
||||||
|
ReadKey(&gKey);
|
||||||
|
|
||||||
|
OS_InitDeliverArgInfo(&argInfo, sizeof(AppParam));
|
||||||
|
OS_DecodeDeliverArg();
|
||||||
|
|
||||||
|
/* アプリ間パラメータ(バイナリデータの取得) */
|
||||||
|
if ( OS_DELIVER_ARG_SUCCESS != (result = OS_GetBinaryFromDeliverArg( &gAppParam, &argSize, sizeof(AppParam))) )
|
||||||
|
{
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: READ_ERROR (%d)", result);
|
||||||
|
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
OS_Terminate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* アプリ間パラメータ(文字列)の取得 */
|
||||||
|
if ((gArgc = OS_GetDeliverArgc()) > 0)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
OS_TPrintf("argc = %d\n", gArgc);
|
||||||
|
|
||||||
|
for (i=0; i < gArgc && i < 6; i++)
|
||||||
|
{
|
||||||
|
STD_StrLCpy(gStrAppParam[i], (const char*)OS_GetDeliverArgv(i + 1), APPJUMP_STRING_LENGTH);
|
||||||
|
gStrAppParam[i][APPJUMP_STRING_LENGTH] = '\0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while(TRUE)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
// 自動テスト中に、ユーザのキー入力による終了指示を受け付けるためにウエイトを入れる
|
||||||
|
if (gAppParam.isAutoJump == 1)
|
||||||
|
{
|
||||||
|
OSTick tick = OS_GetTick();
|
||||||
|
|
||||||
|
PutMainScreen(1, 9, 0xf8, "executing auto app jump...");
|
||||||
|
PutMainScreen(1, 11, 0xff, "wait 2 seconds...");
|
||||||
|
PutMainScreen(1, 13, 0xff, "START: quit auto app jump");
|
||||||
|
do {
|
||||||
|
ReadKey(&gKey);
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_START)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
} while (OS_TicksToSeconds(OS_GetTick() - tick) < 2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// キー入力情報取得
|
||||||
|
ReadKey(&gKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 画面クリア
|
||||||
|
ClearScreen();
|
||||||
|
|
||||||
|
// メイン画面描画
|
||||||
|
PutMainScreen(0, 2, 0xf4, " ****** This APP is CARD ****** ");
|
||||||
|
PutMainScreen(0, 5, 0xff, " APP JUMP : %u times ", gAppParam.jumpCount);
|
||||||
|
PutMainScreen(0, 7, 0xff, " DELIVERED PARAM (recent 6 app)");
|
||||||
|
|
||||||
|
for (i=0; i<gArgc; i++)
|
||||||
|
{
|
||||||
|
if ( i==0 )
|
||||||
|
{
|
||||||
|
PutMainScreen(2, 8, 0xf2, "%d : %s", i+1, gStrAppParam[i]); // 最新の履歴のみ色をつける
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PutMainScreen(2, 8+i, 0xff, "%d : %s", i+1, gStrAppParam[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// サブ画面描画
|
||||||
|
PutSubScreen(0, 0, 0xf4, " ------- APP JUMP TEST -------- ");
|
||||||
|
|
||||||
|
if (gIsSetDelArg)
|
||||||
|
{
|
||||||
|
PutSubScreen(0, 2, 0xf8, " DELIVER ARG: ON");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PutSubScreen(0, 2, 0xff, " DELIVER ARG: OFF");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gAppParam.isAutoJump)
|
||||||
|
{
|
||||||
|
PutSubScreen(0, 4, 0xf8, " AUTO JUMP TEST: ON");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PutSubScreen(0, 4, 0xff, " AUTO JUMP TEST: OFF");
|
||||||
|
}
|
||||||
|
|
||||||
|
PutSubScreen(0, 14, 0xf4, " ------------------------------- ");
|
||||||
|
PutSubScreen(0, 16, 0xff, " A: JUMP TO NAND-1 APP");
|
||||||
|
PutSubScreen(0, 17, 0xff, " Y: JUMP TO NAND-2 APP");
|
||||||
|
PutSubScreen(0, 18, 0xff, " X: JUMP TO SELF");
|
||||||
|
PutSubScreen(0, 19, 0xff, " B: RETURN JUMP");
|
||||||
|
|
||||||
|
PutSubScreen(0, 21, 0xff, " L R: SWITCH DELIVER ARG ON/OFF");
|
||||||
|
PutSubScreen(0, 22, 0xff, " STR: SWITCH AUTO TEST ON/OFF");
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_KEY_DOWN)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (gKey.trg & PAD_KEY_UP)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_START)
|
||||||
|
{
|
||||||
|
// 自動テストフラグをスイッチ
|
||||||
|
gAppParam.isAutoJump ^= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_A)
|
||||||
|
{
|
||||||
|
AddDeliverArg(&argInfo, FALSE);
|
||||||
|
// NAND-1 アプリへジャンプ
|
||||||
|
if( !OS_DoApplicationJump( NANDAPP1_TITLEID, OS_APP_JUMP_NORMAL ))
|
||||||
|
{
|
||||||
|
OS_TPrintf("Failed to Jump.\n");
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_Y)
|
||||||
|
{
|
||||||
|
AddDeliverArg(&argInfo, FALSE);
|
||||||
|
|
||||||
|
// NAND-2 アプリへジャンプ
|
||||||
|
if ( !OS_DoApplicationJump( NANDAPP2_TITLEID, OS_APP_JUMP_NORMAL ))
|
||||||
|
{
|
||||||
|
OS_TPrintf("Failed to Jump.\n");
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_X || gAppParam.isAutoJump == 1)
|
||||||
|
{
|
||||||
|
AddDeliverArg(&argInfo, FALSE);
|
||||||
|
// 自分自身へジャンプ
|
||||||
|
if( !OS_DoApplicationJump( OS_GetTitleId(), OS_APP_JUMP_NORMAL ))
|
||||||
|
{
|
||||||
|
OS_TPrintf("Failed to Jump.\n");
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_B)
|
||||||
|
{
|
||||||
|
AddDeliverArg(&argInfo, TRUE);
|
||||||
|
// ジャンプ元のアプリへ戻る
|
||||||
|
if ( !OS_ReturnToPrevApplication() )
|
||||||
|
{
|
||||||
|
OS_TPrintf("Failed to Return Jump.\n");
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: Failed to Return Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_L || gKey.trg & PAD_BUTTON_R)
|
||||||
|
{
|
||||||
|
// アプリ間パラメータとして文字列を引き渡すかどうかのフラグを ON/OFF する
|
||||||
|
gIsSetDelArg = !gIsSetDelArg;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vブランク待ち
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vブランク待ち 最後に画面を更新してから終了
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
OS_Terminate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: AddDeliverArg
|
||||||
|
|
||||||
|
Description: アプリジャンプ先へ引き渡すパラメータを追加。
|
||||||
|
|
||||||
|
Arguments: argInfo :
|
||||||
|
isReturn : ジャンプ元への復帰ならば TRUE
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void AddDeliverArg(OSDeliverArgInfo *argInfo, BOOL isReturn)
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
char argument[APPJUMP_STRING_LENGTH + 1];
|
||||||
|
gAppParam.jumpCount++;
|
||||||
|
|
||||||
|
OS_InitDeliverArgInfo(argInfo, sizeof(AppParam));
|
||||||
|
|
||||||
|
// アプリジャンプ回数を +1 してセット
|
||||||
|
result = OS_SetBinaryToDeliverArg( &(gAppParam), sizeof(AppParam) );
|
||||||
|
|
||||||
|
if(result != OS_DELIVER_ARG_SUCCESS)
|
||||||
|
{
|
||||||
|
OS_Warning("Failed to Set DeliverArgument.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gIsSetDelArg)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
// 文字列をセット
|
||||||
|
MI_CpuClear8(argument, APPJUMP_STRING_LENGTH + 1);
|
||||||
|
if (isReturn)
|
||||||
|
{
|
||||||
|
STD_TSPrintf(argument, "Returned from CARD");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
STD_TSPrintf(argument, "Jumped from CARD");
|
||||||
|
}
|
||||||
|
OS_SetStringToDeliverArg(argument);
|
||||||
|
|
||||||
|
// 今まで引き渡されたパラメータ文字列を引き継がせる
|
||||||
|
for (i=0; i <= 4 && i < gArgc; i++)
|
||||||
|
{
|
||||||
|
MI_CpuClear8(argument, APPJUMP_STRING_LENGTH + 1);
|
||||||
|
STD_StrLCpy( argument, gStrAppParam[i], APPJUMP_STRING_LENGTH );
|
||||||
|
result = OS_SetStringToDeliverArg(argument);
|
||||||
|
OS_TPrintf("arg = %s : result = %d\n", argument, result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OS_EncodeDeliverArg();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: VBlankIntr
|
||||||
|
|
||||||
|
Description: Vブランク割込みハンドラ。
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void VBlankIntr(void)
|
||||||
|
{
|
||||||
|
// テキスト表示を更新
|
||||||
|
UpdateScreen();
|
||||||
|
|
||||||
|
// IRQ チェックフラグをセット
|
||||||
|
OS_SetIrqCheckFlag(OS_IE_V_BLANK);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
End of file
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
36
build/debugsoft/ApplicationJump/Makefile
Normal file
36
build/debugsoft/ApplicationJump/Makefile
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlSDK - debugsoft - ApplicationJump
|
||||||
|
# File: Makefile
|
||||||
|
#
|
||||||
|
# Copyright 2008 Nintendo. All rights reserved.
|
||||||
|
#
|
||||||
|
# These coded instructions, statements, and computer programs contain
|
||||||
|
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
# Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
# not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
# in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
#
|
||||||
|
# $Date:: $
|
||||||
|
# $Rev:$
|
||||||
|
# $Author:$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
TARGET_PLATFORM = TWL
|
||||||
|
|
||||||
|
include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SUBDIRS = Card \
|
||||||
|
Nand-1 \
|
||||||
|
Nand-2
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
|
|
||||||
|
|
||||||
53
build/debugsoft/ApplicationJump/Nand-1/Makefile
Normal file
53
build/debugsoft/ApplicationJump/Nand-1/Makefile
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlSDK - tests - appjumpTest - Nand-1
|
||||||
|
# File: Makefile
|
||||||
|
#
|
||||||
|
# Copyright 2008 Nintendo. All rights reserved.
|
||||||
|
#
|
||||||
|
# These coded instructions, statements, and computer programs contain
|
||||||
|
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
# Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
# not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
# in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
#
|
||||||
|
# $Date:: $
|
||||||
|
# $Rev$
|
||||||
|
# $Author$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
TARGET_PLATFORM := TWL
|
||||||
|
TWL_NANDAPP := TRUE
|
||||||
|
|
||||||
|
TARGET_BIN = appjumpTestForNand1.tad
|
||||||
|
INCDIR = ../include
|
||||||
|
SRCDIR = ./src ../src
|
||||||
|
SRCS = main.c screen.c font.c common.c
|
||||||
|
|
||||||
|
ROM_SPEC = main.autogen.rsf
|
||||||
|
ROM_SPEC_TEMPLATE = $(ROOT)/include/twl/specfiles/ROM-TS_nand.rsf
|
||||||
|
ROM_SPEC_PARAM = MakerCode=03 \
|
||||||
|
GameCode=431A \
|
||||||
|
RomVersion=0 \
|
||||||
|
PermitLandingNormalJump=TRUE \
|
||||||
|
TitleName=AppJmpTestN1 \
|
||||||
|
BannerFile=./banner/banner.bnr
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
#-------------------------
|
||||||
|
# ƒCƒ“ƒXƒg<C692>[ƒ‹Žw’è
|
||||||
|
ifneq ($(TWL_IPL_RED_ROOT),)
|
||||||
|
INSTALL_DIR = $(TWL_IPL_RED_ROOT)/debugsoft/ApplicationJumpTest
|
||||||
|
INSTALL_TARGETS = $(BINDIR)/$(TARGET_BIN)
|
||||||
|
endif
|
||||||
|
|
||||||
|
#-------------------------
|
||||||
|
|
||||||
|
do-build: $(TARGETS)
|
||||||
|
|
||||||
|
include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
BIN
build/debugsoft/ApplicationJump/Nand-1/banner/banner.bnr
Normal file
BIN
build/debugsoft/ApplicationJump/Nand-1/banner/banner.bnr
Normal file
Binary file not shown.
305
build/debugsoft/ApplicationJump/Nand-1/src/_main.c
Normal file
305
build/debugsoft/ApplicationJump/Nand-1/src/_main.c
Normal file
@ -0,0 +1,305 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlSDK - arg-1
|
||||||
|
File: main.c
|
||||||
|
|
||||||
|
Copyright 2007 Nintendo. All rights reserved.
|
||||||
|
|
||||||
|
These coded instructions, statements, and computer programs contain
|
||||||
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
|
$Date:: $
|
||||||
|
$Rev$
|
||||||
|
$Author$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include <nitro.h>
|
||||||
|
#include <twl.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include <twl/os/common/msJump.h>
|
||||||
|
|
||||||
|
#include "screen.h"
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
定数 定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#define KEY_REPEAT_START 25 // キーリピート開始までのフレーム数
|
||||||
|
#define KEY_REPEAT_SPAN 10 // キーリピートの間隔フレーム数
|
||||||
|
|
||||||
|
//ジャンプ先
|
||||||
|
const char destinationName[21][32] ={
|
||||||
|
"PAGE_1",
|
||||||
|
"??????",
|
||||||
|
"PAGE_2",
|
||||||
|
"PAGE_3",
|
||||||
|
"PAGE_4",
|
||||||
|
"APP_MANAGER",
|
||||||
|
"WIRELESS",
|
||||||
|
"BRIGHTNESS",
|
||||||
|
"USER INFO",
|
||||||
|
"DATE",
|
||||||
|
"TIME",
|
||||||
|
"ALARM",
|
||||||
|
"TP_CALIBRATION",
|
||||||
|
"LANGUAGE",
|
||||||
|
"PARENTAL_CONTROL",
|
||||||
|
"NETWORK SETTING",
|
||||||
|
"NETWORK EURA",
|
||||||
|
"NETWORK OPTION",
|
||||||
|
"COUNTRY",
|
||||||
|
"SYSTEM UPDATE",
|
||||||
|
"SYSTEM INITIALIZE",
|
||||||
|
};
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
構造体 定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// キー入力情報
|
||||||
|
typedef struct KeyInfo
|
||||||
|
{
|
||||||
|
u16 cnt; // 未加工入力値
|
||||||
|
u16 trg; // 押しトリガ入力
|
||||||
|
u16 up; // 離しトリガ入力
|
||||||
|
u16 rep; // 押し維持リピート入力
|
||||||
|
} KeyInfo;
|
||||||
|
|
||||||
|
// キー入力
|
||||||
|
static KeyInfo gKey;
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Prototype
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void VBlankIntr(void);
|
||||||
|
static void InitInterrupts(void);
|
||||||
|
static void InitHeap(void);
|
||||||
|
|
||||||
|
static void ReadKey(KeyInfo* pKey);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void TwlMain(void)
|
||||||
|
{
|
||||||
|
u8 argNum = 0;
|
||||||
|
|
||||||
|
OS_Init();
|
||||||
|
OS_InitTick();
|
||||||
|
OS_InitAlarm();
|
||||||
|
GX_Init();
|
||||||
|
GX_DispOff();
|
||||||
|
GXS_DispOff();
|
||||||
|
|
||||||
|
InitHeap();
|
||||||
|
InitScreen();
|
||||||
|
InitInterrupts();
|
||||||
|
|
||||||
|
GX_DispOn();
|
||||||
|
GXS_DispOn();
|
||||||
|
|
||||||
|
ClearScreen();
|
||||||
|
|
||||||
|
// キー入力情報取得の空呼び出し(IPL での A ボタン押下対策)
|
||||||
|
ReadKey(&gKey);
|
||||||
|
|
||||||
|
while(TRUE)
|
||||||
|
{
|
||||||
|
// キー入力情報取得
|
||||||
|
ReadKey(&gKey);
|
||||||
|
|
||||||
|
// メイン画面クリア
|
||||||
|
ClearScreen();
|
||||||
|
|
||||||
|
PutSubScreen(0, 0, 0xff, "SETTING JUMP DEMO");
|
||||||
|
PutSubScreen(0, 15, 0xff, "UP/DOWN: SELECT DESTINATION");
|
||||||
|
PutSubScreen(0, 16, 0xff, " A: JUMP TO DESTINATION");
|
||||||
|
PutSubScreen(0, 17, 0xff, " Y: JUMP TO EULA");
|
||||||
|
PutSubScreen(0, 18, 0xff, " X: JUMP TO APP MANAGER");
|
||||||
|
PutSubScreen(0, 19, 0xff, " B: JUMP TO NET SETTING");
|
||||||
|
PutSubScreen(0, 20, 0xff, " R: JUMP TO UPDATE");
|
||||||
|
|
||||||
|
PutSubScreen(0, 2, 0xff, "DESTINATION: %s", destinationName[argNum]);
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_KEY_DOWN)
|
||||||
|
{
|
||||||
|
if (argNum < 20) argNum++;
|
||||||
|
}
|
||||||
|
else if (gKey.trg & PAD_KEY_UP)
|
||||||
|
{
|
||||||
|
if (argNum > 0) argNum--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_A)
|
||||||
|
{
|
||||||
|
if( OSi_JumpToMachineSetting( argNum ) == FALSE )
|
||||||
|
{
|
||||||
|
OS_Panic("Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_Y)
|
||||||
|
{
|
||||||
|
if( OSi_JumpToEulaDirect() == FALSE )
|
||||||
|
{
|
||||||
|
OS_Panic("Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_X)
|
||||||
|
{
|
||||||
|
if( OSi_JumpToApplicationManagerDirect() == FALSE )
|
||||||
|
{
|
||||||
|
OS_Panic("Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_B)
|
||||||
|
{
|
||||||
|
if( OSi_JumpToNetworkSettngDirect() == FALSE )
|
||||||
|
{
|
||||||
|
OS_Panic("Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_R)
|
||||||
|
{
|
||||||
|
if( OSi_JumpToSystemUpdateDirect() == FALSE )
|
||||||
|
{
|
||||||
|
OS_Panic("Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vブランク待ち ( スレッド対応 )
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
}
|
||||||
|
|
||||||
|
OS_Terminate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: VBlankIntr
|
||||||
|
|
||||||
|
Description: Vブランク割込みハンドラ。
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void VBlankIntr(void)
|
||||||
|
{
|
||||||
|
// テキスト表示を更新
|
||||||
|
UpdateScreen();
|
||||||
|
|
||||||
|
// IRQ チェックフラグをセット
|
||||||
|
OS_SetIrqCheckFlag(OS_IE_V_BLANK);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: InitInterrupts
|
||||||
|
|
||||||
|
Description: 割り込み設定を初期化する。
|
||||||
|
V ブランク割り込みを許可し、割り込みハンドラを設定する。
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void InitInterrupts(void)
|
||||||
|
{
|
||||||
|
// V ブランク割り込み設定
|
||||||
|
OS_SetIrqFunction(OS_IE_V_BLANK, VBlankIntr);
|
||||||
|
(void)OS_EnableIrqMask(OS_IE_V_BLANK);
|
||||||
|
(void)GX_VBlankIntr(TRUE);
|
||||||
|
|
||||||
|
// 割り込み許可
|
||||||
|
(void)OS_EnableIrq();
|
||||||
|
(void)OS_EnableInterrupts();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: InitHeap
|
||||||
|
|
||||||
|
Description: メインメモリ上のアリーナにてメモリ割当てシステムを初期化する。
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void InitHeap(void)
|
||||||
|
{
|
||||||
|
void* tempLo;
|
||||||
|
OSHeapHandle hh;
|
||||||
|
|
||||||
|
// メインメモリ上のアリーナにヒープをひとつ作成
|
||||||
|
tempLo = OS_InitAlloc(OS_ARENA_MAIN, OS_GetMainArenaLo(), OS_GetMainArenaHi(), 1);
|
||||||
|
OS_SetArenaLo(OS_ARENA_MAIN, tempLo);
|
||||||
|
hh = OS_CreateHeap(OS_ARENA_MAIN, OS_GetMainArenaLo(), OS_GetMainArenaHi());
|
||||||
|
if (hh < 0)
|
||||||
|
{
|
||||||
|
// ヒープ作成に失敗した場合は異常終了
|
||||||
|
OS_Panic("ARM9: Fail to create heap...\n");
|
||||||
|
}
|
||||||
|
(void)OS_SetCurrentHeap(OS_ARENA_MAIN, hh);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: ReadKey
|
||||||
|
|
||||||
|
Description: キー入力情報を取得し、入力情報構造体を編集する。
|
||||||
|
押しトリガ、離しトリガ、押し継続リピートトリガ を検出する。
|
||||||
|
|
||||||
|
Arguments: pKey - 編集するキー入力情報構造体を指定する。
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void ReadKey(KeyInfo* pKey)
|
||||||
|
{
|
||||||
|
static u16 repeat_count[12];
|
||||||
|
int i;
|
||||||
|
u16 r;
|
||||||
|
|
||||||
|
r = PAD_Read();
|
||||||
|
pKey->trg = 0x0000;
|
||||||
|
pKey->up = 0x0000;
|
||||||
|
pKey->rep = 0x0000;
|
||||||
|
|
||||||
|
for (i = 0; i < 12; i++)
|
||||||
|
{
|
||||||
|
if (r & (0x0001 << i))
|
||||||
|
{
|
||||||
|
if (!(pKey->cnt & (0x0001 << i)))
|
||||||
|
{
|
||||||
|
pKey->trg |= (0x0001 << i); // 押しトリガ
|
||||||
|
repeat_count[i] = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (repeat_count[i] > KEY_REPEAT_START)
|
||||||
|
{
|
||||||
|
pKey->rep |= (0x0001 << i); // 押し継続リピート
|
||||||
|
repeat_count[i] = (u16) (KEY_REPEAT_START - KEY_REPEAT_SPAN);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
repeat_count[i]++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (pKey->cnt & (0x0001 << i))
|
||||||
|
{
|
||||||
|
pKey->up |= (0x0001 << i); // 離しトリガ
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pKey->cnt = r; // 未加工キー入力
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
End of file
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
311
build/debugsoft/ApplicationJump/Nand-1/src/main.c
Normal file
311
build/debugsoft/ApplicationJump/Nand-1/src/main.c
Normal file
@ -0,0 +1,311 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlSDK - tests - appjumpTest - Nand-1
|
||||||
|
File: main.c
|
||||||
|
|
||||||
|
Copyright 2008 Nintendo. All rights reserved.
|
||||||
|
|
||||||
|
These coded instructions, statements, and computer programs contain
|
||||||
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
|
$Date:: $
|
||||||
|
$Rev$
|
||||||
|
$Author$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#include "common.h"
|
||||||
|
#include "screen.h"
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
変数定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
// キー入力
|
||||||
|
static KeyInfo gKey;
|
||||||
|
|
||||||
|
// アプリ間パラメータ
|
||||||
|
static AppParam gAppParam;
|
||||||
|
// アプリ間パラメータとして文字列をセットするかどうか
|
||||||
|
static BOOL gIsSetDelArg = TRUE;
|
||||||
|
// アプリ間パラメータとして引き渡された文字列を格納するバッファ(6つまで)
|
||||||
|
static char gStrAppParam[6][APPJUMP_STRING_LENGTH + 1] ATTRIBUTE_ALIGN(32);
|
||||||
|
// アプリ間パラメータとして引き渡された文字列の個数
|
||||||
|
static int gArgc;
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Prototype
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void AddDeliverArg(OSDeliverArgInfo *argInfo, BOOL isReturn);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void TwlMain(void)
|
||||||
|
{
|
||||||
|
OSDeliverArgInfo argInfo;
|
||||||
|
|
||||||
|
int result;
|
||||||
|
int argSize =sizeof(u32);
|
||||||
|
|
||||||
|
InitCommon();
|
||||||
|
InitScreen();
|
||||||
|
|
||||||
|
GX_DispOn();
|
||||||
|
GXS_DispOn();
|
||||||
|
|
||||||
|
ClearScreen();
|
||||||
|
|
||||||
|
// キー入力情報取得の空呼び出し(IPL での A ボタン押下対策)
|
||||||
|
ReadKey(&gKey);
|
||||||
|
|
||||||
|
OS_InitDeliverArgInfo(&argInfo, sizeof(AppParam));
|
||||||
|
OS_DecodeDeliverArg();
|
||||||
|
|
||||||
|
/* アプリ間パラメータ(バイナリデータの取得) */
|
||||||
|
if ( OS_DELIVER_ARG_SUCCESS != (result = OS_GetBinaryFromDeliverArg( &gAppParam, &argSize, sizeof(AppParam))) )
|
||||||
|
{
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: READ_ERROR (%d)", result);
|
||||||
|
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
OS_Terminate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* アプリ間パラメータ(文字列)の取得 */
|
||||||
|
if ((gArgc = OS_GetDeliverArgc()) > 0)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
OS_TPrintf("argc = %d\n", gArgc);
|
||||||
|
|
||||||
|
for (i=0; i < gArgc && i < 6; i++)
|
||||||
|
{
|
||||||
|
STD_StrLCpy(gStrAppParam[i], (const char*)OS_GetDeliverArgv(i + 1), APPJUMP_STRING_LENGTH);
|
||||||
|
gStrAppParam[i][APPJUMP_STRING_LENGTH] = '\0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while(TRUE)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
// 自動テスト中に、ユーザのキー入力による終了指示を受け付けるためにウエイトを入れる
|
||||||
|
if (gAppParam.isAutoJump == 1)
|
||||||
|
{
|
||||||
|
OSTick tick = OS_GetTick();
|
||||||
|
|
||||||
|
PutMainScreen(1, 9, 0xf8, "executing auto app jump...");
|
||||||
|
PutMainScreen(1, 11, 0xff, "wait 2 seconds...");
|
||||||
|
PutMainScreen(1, 13, 0xff, "START: quit auto app jump");
|
||||||
|
do {
|
||||||
|
ReadKey(&gKey);
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_START)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
} while (OS_TicksToSeconds(OS_GetTick() - tick) < 2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// キー入力情報取得
|
||||||
|
ReadKey(&gKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 画面クリア
|
||||||
|
ClearScreen();
|
||||||
|
|
||||||
|
// メイン画面描画
|
||||||
|
PutMainScreen(0, 2, 0xf5, " ***** This APP is NAND-1 ***** ");
|
||||||
|
PutMainScreen(0, 5, 0xff, " APP JUMP : %u times ", gAppParam.jumpCount);
|
||||||
|
PutMainScreen(0, 7, 0xff, " DELIVERED PARAM (recent 6 app)");
|
||||||
|
|
||||||
|
for (i=0; i<gArgc; i++)
|
||||||
|
{
|
||||||
|
if ( i==0 )
|
||||||
|
{
|
||||||
|
PutMainScreen(2, 8, 0xf2, "%d : %s", i+1, gStrAppParam[i]); // 最新の履歴のみ色をつける
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PutMainScreen(2, 8+i, 0xff, "%d : %s", i+1, gStrAppParam[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// サブ画面描画
|
||||||
|
PutSubScreen(0, 0, 0xf5, " ------- APP JUMP TEST -------- ");
|
||||||
|
|
||||||
|
if (gIsSetDelArg)
|
||||||
|
{
|
||||||
|
PutSubScreen(0, 2, 0xf8, " DELIVER ARG: ON");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PutSubScreen(0, 2, 0xff, " DELIVER ARG: OFF");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gAppParam.isAutoJump)
|
||||||
|
{
|
||||||
|
PutSubScreen(0, 4, 0xf8, " AUTO JUMP TEST: ON");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PutSubScreen(0, 4, 0xff, " AUTO JUMP TEST: OFF");
|
||||||
|
}
|
||||||
|
|
||||||
|
PutSubScreen(0, 14, 0xf5, " ------------------------------- ");
|
||||||
|
PutSubScreen(0, 16, 0xff, " A: JUMP TO CARD APP");
|
||||||
|
PutSubScreen(0, 17, 0xff, " Y: JUMP TO NAND-2 APP");
|
||||||
|
PutSubScreen(0, 18, 0xff, " X: JUMP TO SELF");
|
||||||
|
PutSubScreen(0, 19, 0xff, " B: RETURN JUMP");
|
||||||
|
|
||||||
|
PutSubScreen(0, 21, 0xff, " L R: SWITCH DELIVER ARG ON/OFF");
|
||||||
|
PutSubScreen(0, 22, 0xff, " STR: SWITCH AUTO TEST ON/OFF");
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_KEY_DOWN)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (gKey.trg & PAD_KEY_UP)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_START)
|
||||||
|
{
|
||||||
|
// 自動テストフラグをスイッチ
|
||||||
|
gAppParam.isAutoJump ^= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_A)
|
||||||
|
{
|
||||||
|
AddDeliverArg(&argInfo, FALSE);
|
||||||
|
// カードアプリへジャンプ
|
||||||
|
if( !OS_DoApplicationJump( CARDAPP_TITLEID, OS_APP_JUMP_NORMAL ))
|
||||||
|
{
|
||||||
|
OS_TPrintf("Failed to Jump.\n");
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_Y)
|
||||||
|
{
|
||||||
|
AddDeliverArg(&argInfo, FALSE);
|
||||||
|
|
||||||
|
// もう一方の NAND アプリへジャンプ
|
||||||
|
if ( !OS_DoApplicationJump( NANDAPP2_TITLEID, OS_APP_JUMP_NORMAL ))
|
||||||
|
{
|
||||||
|
OS_TPrintf("Failed to Jump.\n");
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_X || gAppParam.isAutoJump == 1)
|
||||||
|
{
|
||||||
|
AddDeliverArg(&argInfo, FALSE);
|
||||||
|
// 自分自身へジャンプ
|
||||||
|
if( !OS_DoApplicationJump( OS_GetTitleId(), OS_APP_JUMP_NORMAL ))
|
||||||
|
{
|
||||||
|
OS_TPrintf("Failed to Jump.\n");
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_B)
|
||||||
|
{
|
||||||
|
AddDeliverArg(&argInfo, TRUE);
|
||||||
|
if ( !OS_ReturnToPrevApplication() )
|
||||||
|
{
|
||||||
|
OS_TPrintf("Failed to Return Jump.\n");
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: Failed to Return Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_L || gKey.trg & PAD_BUTTON_R)
|
||||||
|
{
|
||||||
|
gIsSetDelArg = !gIsSetDelArg;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vブランク待ち
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vブランク待ち 最後に画面を更新してから終了
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
OS_Terminate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: AddDeliverArg
|
||||||
|
|
||||||
|
Description: アプリジャンプ先へ引き渡すパラメータを追加。
|
||||||
|
|
||||||
|
Arguments: argInfo :
|
||||||
|
isReturn : ジャンプ元への復帰ならば TRUE
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void AddDeliverArg(OSDeliverArgInfo *argInfo, BOOL isReturn)
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
char argument[APPJUMP_STRING_LENGTH + 1];
|
||||||
|
gAppParam.jumpCount++;
|
||||||
|
|
||||||
|
OS_InitDeliverArgInfo(argInfo, sizeof(AppParam));
|
||||||
|
|
||||||
|
// アプリジャンプ回数を +1 してセット
|
||||||
|
result = OS_SetBinaryToDeliverArg( &(gAppParam), sizeof(AppParam) );
|
||||||
|
|
||||||
|
if(result != OS_DELIVER_ARG_SUCCESS)
|
||||||
|
{
|
||||||
|
OS_Warning("Failed to Set DeliverArgument.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gIsSetDelArg)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
// 文字列をセット
|
||||||
|
MI_CpuClear8(argument, APPJUMP_STRING_LENGTH + 1);
|
||||||
|
if (isReturn)
|
||||||
|
{
|
||||||
|
STD_TSPrintf(argument, "Returned from NAND-1");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
STD_TSPrintf(argument, "Jumped from NAND-1");
|
||||||
|
}
|
||||||
|
OS_SetStringToDeliverArg(argument);
|
||||||
|
|
||||||
|
// 今まで引き渡されたパラメータ文字列を引き継がせる
|
||||||
|
for (i=0; i <= 4 && i < gArgc; i++)
|
||||||
|
{
|
||||||
|
MI_CpuClear8(argument, APPJUMP_STRING_LENGTH + 1);
|
||||||
|
STD_StrLCpy( argument, gStrAppParam[i], APPJUMP_STRING_LENGTH );
|
||||||
|
result = OS_SetStringToDeliverArg(argument);
|
||||||
|
OS_TPrintf("arg = %s : result = %d\n", argument, result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OS_EncodeDeliverArg();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: VBlankIntr
|
||||||
|
|
||||||
|
Description: Vブランク割込みハンドラ。
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void VBlankIntr(void)
|
||||||
|
{
|
||||||
|
// テキスト表示を更新
|
||||||
|
UpdateScreen();
|
||||||
|
|
||||||
|
// IRQ チェックフラグをセット
|
||||||
|
OS_SetIrqCheckFlag(OS_IE_V_BLANK);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
End of file
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
53
build/debugsoft/ApplicationJump/Nand-2/Makefile
Normal file
53
build/debugsoft/ApplicationJump/Nand-2/Makefile
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#! make -f
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Project: TwlSDK - tests - appjumpTest - Nand-2
|
||||||
|
# File: Makefile
|
||||||
|
#
|
||||||
|
# Copyright 2008 Nintendo. All rights reserved.
|
||||||
|
#
|
||||||
|
# These coded instructions, statements, and computer programs contain
|
||||||
|
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
# Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
# not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
# in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
#
|
||||||
|
# $Date:: $
|
||||||
|
# $Rev$
|
||||||
|
# $Author$
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
TARGET_PLATFORM := TWL
|
||||||
|
TWL_NANDAPP := TRUE
|
||||||
|
|
||||||
|
TARGET_BIN = appjumpTestForNand2.tad
|
||||||
|
INCDIR = ../include
|
||||||
|
SRCDIR = ./src ../src
|
||||||
|
SRCS = main.c screen.c font.c common.c
|
||||||
|
|
||||||
|
ROM_SPEC = main.autogen.rsf
|
||||||
|
ROM_SPEC_TEMPLATE = $(ROOT)/include/twl/specfiles/ROM-TS_nand.rsf
|
||||||
|
ROM_SPEC_PARAM = MakerCode=03 \
|
||||||
|
GameCode=432A \
|
||||||
|
RomVersion=0 \
|
||||||
|
PermitLandingNormalJump=TRUE \
|
||||||
|
TitleName=AppJmpTestN2 \
|
||||||
|
BannerFile=./banner/banner.bnr
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
||||||
|
|
||||||
|
#-------------------------
|
||||||
|
# ƒCƒ“ƒXƒg<C692>[ƒ‹Žw’è
|
||||||
|
ifneq ($(TWL_IPL_RED_ROOT),)
|
||||||
|
INSTALL_DIR = $(TWL_IPL_RED_ROOT)/debugsoft/ApplicationJumpTest
|
||||||
|
INSTALL_TARGETS = $(BINDIR)/$(TARGET_BIN)
|
||||||
|
endif
|
||||||
|
|
||||||
|
#-------------------------
|
||||||
|
|
||||||
|
do-build: $(TARGETS)
|
||||||
|
|
||||||
|
include $(TWLSDK_ROOT)/build/buildtools/modulerules
|
||||||
|
|
||||||
|
#===== End of Makefile =====
|
||||||
BIN
build/debugsoft/ApplicationJump/Nand-2/banner/banner.bnr
Normal file
BIN
build/debugsoft/ApplicationJump/Nand-2/banner/banner.bnr
Normal file
Binary file not shown.
312
build/debugsoft/ApplicationJump/Nand-2/src/main.c
Normal file
312
build/debugsoft/ApplicationJump/Nand-2/src/main.c
Normal file
@ -0,0 +1,312 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlSDK - tests - appjumpTest - Nand-2
|
||||||
|
File: main.c
|
||||||
|
|
||||||
|
Copyright 2008 Nintendo. All rights reserved.
|
||||||
|
|
||||||
|
These coded instructions, statements, and computer programs contain
|
||||||
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
|
$Date:: $
|
||||||
|
$Rev$
|
||||||
|
$Author$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#include "common.h"
|
||||||
|
#include "screen.h"
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
変数 定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
// キー入力
|
||||||
|
static KeyInfo gKey;
|
||||||
|
|
||||||
|
// アプリ間パラメータ
|
||||||
|
static AppParam gAppParam;
|
||||||
|
// アプリ間パラメータとして文字列をセットするかどうか
|
||||||
|
static BOOL gIsSetDelArg = TRUE;
|
||||||
|
// アプリ間パラメータとして引き渡された文字列を格納するバッファ(6つまで)
|
||||||
|
static char gStrAppParam[6][APPJUMP_STRING_LENGTH + 1] ATTRIBUTE_ALIGN(32);
|
||||||
|
// アプリ間パラメータとして引き渡された文字列の個数
|
||||||
|
static int gArgc;
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Prototype
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void AddDeliverArg(OSDeliverArgInfo *argInfo, BOOL isReturn);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void TwlMain(void)
|
||||||
|
{
|
||||||
|
OSDeliverArgInfo argInfo;
|
||||||
|
|
||||||
|
int result;
|
||||||
|
int argSize =sizeof(u32);
|
||||||
|
|
||||||
|
InitCommon();
|
||||||
|
InitScreen();
|
||||||
|
|
||||||
|
GX_DispOn();
|
||||||
|
GXS_DispOn();
|
||||||
|
|
||||||
|
ClearScreen();
|
||||||
|
|
||||||
|
// キー入力情報取得の空呼び出し(IPL での A ボタン押下対策)
|
||||||
|
ReadKey(&gKey);
|
||||||
|
|
||||||
|
OS_InitDeliverArgInfo(&argInfo, sizeof(AppParam));
|
||||||
|
OS_DecodeDeliverArg();
|
||||||
|
|
||||||
|
/* アプリ間パラメータ(バイナリデータの取得) */
|
||||||
|
if ( OS_DELIVER_ARG_SUCCESS != (result = OS_GetBinaryFromDeliverArg( &gAppParam, &argSize, sizeof(AppParam))) )
|
||||||
|
{
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: READ_ERROR (%d)", result);
|
||||||
|
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
OS_Terminate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* アプリ間パラメータ(文字列)の取得 */
|
||||||
|
if ((gArgc = OS_GetDeliverArgc()) > 0)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
OS_TPrintf("argc = %d\n", gArgc);
|
||||||
|
|
||||||
|
for (i=0; i < gArgc && i < 6; i++)
|
||||||
|
{
|
||||||
|
STD_StrLCpy(gStrAppParam[i], (const char*)OS_GetDeliverArgv(i + 1), APPJUMP_STRING_LENGTH);
|
||||||
|
gStrAppParam[i][APPJUMP_STRING_LENGTH] = '\0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while(TRUE)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
// 自動テスト中に、ユーザのキー入力による終了指示を受け付けるためにウエイトを入れる
|
||||||
|
if (gAppParam.isAutoJump == 1)
|
||||||
|
{
|
||||||
|
OSTick tick = OS_GetTick();
|
||||||
|
|
||||||
|
PutMainScreen(1, 9, 0xf8, "executing auto app jump...");
|
||||||
|
PutMainScreen(1, 11, 0xff, "wait 2 seconds...");
|
||||||
|
PutMainScreen(1, 13, 0xff, "START: quit auto app jump");
|
||||||
|
do {
|
||||||
|
ReadKey(&gKey);
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_START)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
} while (OS_TicksToSeconds(OS_GetTick() - tick) < 2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// キー入力情報取得
|
||||||
|
ReadKey(&gKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 画面クリア
|
||||||
|
ClearScreen();
|
||||||
|
|
||||||
|
// メイン画面描画
|
||||||
|
PutMainScreen(0, 2, 0xf6, " ***** This APP is NAND-2 ***** ");
|
||||||
|
PutMainScreen(0, 5, 0xff, " APP JUMP : %u times ", gAppParam.jumpCount);
|
||||||
|
PutMainScreen(0, 7, 0xff, " DELIVERED PARAM (recent 6 app)");
|
||||||
|
|
||||||
|
for (i=0; i<gArgc; i++)
|
||||||
|
{
|
||||||
|
if ( i==0 )
|
||||||
|
{
|
||||||
|
PutMainScreen(2, 8, 0xf2, "%d : %s", i+1, gStrAppParam[i]); // 最新の履歴のみ色をつける
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PutMainScreen(2, 8+i, 0xff, "%d : %s", i+1, gStrAppParam[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// サブ画面描画
|
||||||
|
PutSubScreen(0, 0, 0xf6, " ------- APP JUMP TEST -------- ");
|
||||||
|
|
||||||
|
if (gIsSetDelArg)
|
||||||
|
{
|
||||||
|
PutSubScreen(0, 2, 0xf8, " DELIVER ARG : ON");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PutSubScreen(0, 2, 0xff, " DELIVER ARG : OFF");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gAppParam.isAutoJump)
|
||||||
|
{
|
||||||
|
PutSubScreen(0, 4, 0xf8, " AUTO JUMP TEST: ON");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PutSubScreen(0, 4, 0xff, " AUTO JUMP TEST: OFF");
|
||||||
|
}
|
||||||
|
|
||||||
|
PutSubScreen(0, 14, 0xf6, " ------------------------------- ");
|
||||||
|
PutSubScreen(0, 16, 0xff, " A: JUMP TO CARD APP");
|
||||||
|
PutSubScreen(0, 17, 0xff, " Y: JUMP TO NAND-1 APP");
|
||||||
|
PutSubScreen(0, 18, 0xff, " X: JUMP TO SELF");
|
||||||
|
PutSubScreen(0, 19, 0xff, " B: RETURN JUMP");
|
||||||
|
|
||||||
|
PutSubScreen(0, 21, 0xff, " L R: SWITCH DELIVER ARG ON/OFF");
|
||||||
|
PutSubScreen(0, 22, 0xff, " STR: SWITCH AUTO TEST ON/OFF");
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_KEY_DOWN)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (gKey.trg & PAD_KEY_UP)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_START)
|
||||||
|
{
|
||||||
|
// 自動テストフラグをスイッチ
|
||||||
|
gAppParam.isAutoJump ^= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_A)
|
||||||
|
{
|
||||||
|
AddDeliverArg(&argInfo, FALSE);
|
||||||
|
// カードアプリへジャンプ
|
||||||
|
if( !OS_DoApplicationJump( CARDAPP_TITLEID, OS_APP_JUMP_NORMAL ))
|
||||||
|
{
|
||||||
|
OS_TPrintf("Failed to Jump.\n");
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_Y)
|
||||||
|
{
|
||||||
|
AddDeliverArg(&argInfo, FALSE);
|
||||||
|
|
||||||
|
// もう一方の NAND アプリへジャンプ
|
||||||
|
if ( !OS_DoApplicationJump( NANDAPP1_TITLEID, OS_APP_JUMP_NORMAL ))
|
||||||
|
{
|
||||||
|
OS_TPrintf("Failed to Jump.\n");
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_X || gAppParam.isAutoJump == 1)
|
||||||
|
{
|
||||||
|
AddDeliverArg(&argInfo, FALSE);
|
||||||
|
// 自分自身へジャンプ
|
||||||
|
if( !OS_DoApplicationJump( OS_GetTitleId(), OS_APP_JUMP_NORMAL ))
|
||||||
|
{
|
||||||
|
OS_TPrintf("Failed to Jump.\n");
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: Failed to Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (gKey.trg & PAD_BUTTON_B)
|
||||||
|
{
|
||||||
|
AddDeliverArg(&argInfo, TRUE);
|
||||||
|
if ( !OS_ReturnToPrevApplication() )
|
||||||
|
{
|
||||||
|
OS_TPrintf("Failed to Return Jump.\n");
|
||||||
|
PutMainScreen(1, 16, 0xf1, "ERROR!: Failed to Return Jump.");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gKey.trg & PAD_BUTTON_L || gKey.trg & PAD_BUTTON_R)
|
||||||
|
{
|
||||||
|
gIsSetDelArg = !gIsSetDelArg;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vブランク待ち
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vブランク待ち 最後に画面を更新してから終了
|
||||||
|
OS_WaitVBlankIntr();
|
||||||
|
OS_Terminate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: AddDeliverArg
|
||||||
|
|
||||||
|
Description: アプリジャンプ先へ引き渡すパラメータを追加。
|
||||||
|
|
||||||
|
Arguments: argInfo :
|
||||||
|
isReturn : ジャンプ元への復帰ならば TRUE
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void AddDeliverArg(OSDeliverArgInfo *argInfo, BOOL isReturn)
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
char argument[APPJUMP_STRING_LENGTH + 1];
|
||||||
|
gAppParam.jumpCount++;
|
||||||
|
|
||||||
|
OS_InitDeliverArgInfo(argInfo, sizeof(AppParam));
|
||||||
|
|
||||||
|
// アプリジャンプ回数を +1 してセット
|
||||||
|
result = OS_SetBinaryToDeliverArg( &(gAppParam), sizeof(AppParam) );
|
||||||
|
|
||||||
|
if(result != OS_DELIVER_ARG_SUCCESS)
|
||||||
|
{
|
||||||
|
OS_Warning("Failed to Set DeliverArgument.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gIsSetDelArg)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
// 文字列をセット
|
||||||
|
MI_CpuClear8(argument, APPJUMP_STRING_LENGTH + 1);
|
||||||
|
if (isReturn)
|
||||||
|
{
|
||||||
|
STD_TSPrintf(argument, "Returned from NAND-2");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
STD_TSPrintf(argument, "Jumped from NAND-2");
|
||||||
|
}
|
||||||
|
|
||||||
|
OS_SetStringToDeliverArg(argument);
|
||||||
|
|
||||||
|
// 今まで引き渡されたパラメータ文字列を引き継がせる
|
||||||
|
for (i=0; i <= 4 && i < gArgc; i++)
|
||||||
|
{
|
||||||
|
MI_CpuClear8(argument, APPJUMP_STRING_LENGTH + 1);
|
||||||
|
STD_StrLCpy( argument, gStrAppParam[i], APPJUMP_STRING_LENGTH );
|
||||||
|
result = OS_SetStringToDeliverArg(argument);
|
||||||
|
OS_TPrintf("arg = %s : result = %d\n", argument, result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OS_EncodeDeliverArg();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: VBlankIntr
|
||||||
|
|
||||||
|
Description: Vブランク割込みハンドラ。
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void VBlankIntr(void)
|
||||||
|
{
|
||||||
|
// テキスト表示を更新
|
||||||
|
UpdateScreen();
|
||||||
|
|
||||||
|
// IRQ チェックフラグをセット
|
||||||
|
OS_SetIrqCheckFlag(OS_IE_V_BLANK);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
End of file
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
55
build/debugsoft/ApplicationJump/ReadMe.txt
Normal file
55
build/debugsoft/ApplicationJump/ReadMe.txt
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
appjumpTest
|
||||||
|
|
||||||
|
アプリジャンプ機能をテストするためのアプリセットです。
|
||||||
|
========================================================
|
||||||
|
|
||||||
|
<概要> ===============================================
|
||||||
|
2種類のNAND アプリと 1種類のカードアプリで構成されます。
|
||||||
|
各アプリ間で、アプリジャンプの機能を一通り試すことができます。
|
||||||
|
アプリ間でのパラメータの受け渡し、ジャンプ元へのリターンも可能です。
|
||||||
|
|
||||||
|
|
||||||
|
<使い方> =============================================
|
||||||
|
2種類のNAND アプリを TWL にインポートした状態で、カードアプリを起動してください。
|
||||||
|
|
||||||
|
操作方法は、下画面下部に一覧表示されます。
|
||||||
|
ABXY ボタンがそれぞれに対応したターゲットへのアプリジャンプを実行します。
|
||||||
|
|
||||||
|
L/R ボタンで、アプリ間パラメータ(文字列データ)を次のジャンプ先へ渡すかどうかを
|
||||||
|
切り替えることができます(デフォルトは ON になっています)。
|
||||||
|
|
||||||
|
START ボタンを押すと、現在起動中のアプリ自身へのアプリジャンプを自動で繰り返すモードに入ります。
|
||||||
|
中断するには、起動後上画面にメッセージが出ている間(約2秒間)に START ボタンを押してください。
|
||||||
|
|
||||||
|
|
||||||
|
<画面の見方> ==========================================
|
||||||
|
・上画面について
|
||||||
|
起動中のアプリが 3種類の内どれかを色と文字で表します。
|
||||||
|
(黄:CARD、紫:NAND-1、水色:NAND-2)
|
||||||
|
|
||||||
|
APP JUMP -> 今までのアプリジャンプ実行回数です。
|
||||||
|
DELIVERED PARAM -> アプリ間パラメータ渡しをONにしている場合、ジャンプ元へのリターンも含めて
|
||||||
|
これまでのジャンプ元の履歴が 6つまで表示されます。
|
||||||
|
エラー表示 -> アプリジャンプに失敗した場合、赤字でエラーが表示されます。
|
||||||
|
エラー表示が出た場合、それ以上アプリの実行はできませんので再起動してください。
|
||||||
|
|
||||||
|
・下画面について
|
||||||
|
DELIVER ARG: (ON or OFF) -> アプリ間パラメータ渡しを有効にするかどうかのフラグの状態です。
|
||||||
|
L/R ボタンで ON/OFF を切り替えることができます。
|
||||||
|
AUTO JUMP TEST: (ON or OFF) -> 自分自身へのアプリジャンプを中断するまで繰り返すテストモードかどうかを示す値です。
|
||||||
|
操作方法一覧 -> 各ボタンの説明を表示しています。アプリによって、ボタンに割り当てられた
|
||||||
|
ジャンプ先が異なりますので注意してください。
|
||||||
|
ただし、ジャンプ元へのリターンは Bボタン、自分自身へのジャンプは Xボタン固定です。
|
||||||
|
|
||||||
|
<その他注意事項>
|
||||||
|
初回起動時(アプリジャンプを一度も実行していない状態)に、ジャンプ元へのリターンを行うと、
|
||||||
|
必ずエラーになります。
|
||||||
|
|
||||||
|
|
||||||
|
========================================================
|
||||||
|
なにか問題がありましたら、環境制作部 西本まで。
|
||||||
|
nishimoto_takashi@nintendo.co.jp
|
||||||
|
|
||||||
|
|
||||||
|
<更新履歴>============================================
|
||||||
|
2008/07/31 新規追加
|
||||||
83
build/debugsoft/ApplicationJump/include/common.h
Normal file
83
build/debugsoft/ApplicationJump/include/common.h
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlSDK - tests - appjumpTest
|
||||||
|
File: common.h
|
||||||
|
|
||||||
|
Copyright 2008 Nintendo. All rights reserved.
|
||||||
|
|
||||||
|
These coded instructions, statements, and computer programs contain
|
||||||
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
|
$Date:: $
|
||||||
|
$Rev$
|
||||||
|
$Author$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#ifndef COMMON_H_
|
||||||
|
#define COMMON_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
#include <twl.h>
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
定数定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* TitleID */
|
||||||
|
#define CARDAPP_TITLEID (u64)(0x0003000034333041) // 430A
|
||||||
|
#define NANDAPP1_TITLEID (u64)(0x0003000434333141) // 431A
|
||||||
|
#define NANDAPP2_TITLEID (u64)(0x0003000434333241) // 432A
|
||||||
|
|
||||||
|
#define KEY_REPEAT_START 25 // キーリピート開始までのフレーム数
|
||||||
|
#define KEY_REPEAT_SPAN 10 // キーリピートの間隔フレーム数
|
||||||
|
|
||||||
|
/* アプリ間パラメータ関連 */
|
||||||
|
#define APPJUMP_STRING_LENGTH 24 // 引数一つ分として受け渡しされる文字列の長さ制限
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
構造体 定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// キー入力情報
|
||||||
|
typedef struct KeyInfo
|
||||||
|
{
|
||||||
|
u16 cnt; // 未加工入力値
|
||||||
|
u16 trg; // 押しトリガ入力
|
||||||
|
u16 up; // 離しトリガ入力
|
||||||
|
u16 rep; // 押し維持リピート入力
|
||||||
|
} KeyInfo;
|
||||||
|
|
||||||
|
// アプリ間でバイナリデータとして引き渡す構造体
|
||||||
|
typedef struct AppParam
|
||||||
|
{
|
||||||
|
u32 jumpCount; // アプリジャンプの実行回数
|
||||||
|
u8 isAutoJump; // 一定間隔で自動的にアプリジャンプを実行するかどうかのフラグ
|
||||||
|
u8 rsv[3]; // 4バイトアラインメントのため
|
||||||
|
} AppParam;
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Prototype
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void InitCommon(void);
|
||||||
|
|
||||||
|
void ReadKey(KeyInfo* pKey);
|
||||||
|
|
||||||
|
void VBlankIntr(void);
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* COMMON_H_ */
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
End of file
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
41
build/debugsoft/ApplicationJump/include/font.h
Normal file
41
build/debugsoft/ApplicationJump/include/font.h
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlSDK - WCM - demos - wcm-list-2
|
||||||
|
File: font.h
|
||||||
|
|
||||||
|
Copyright 2007 Nintendo. All rights reserved.
|
||||||
|
|
||||||
|
These coded instructions, statements, and computer programs contain
|
||||||
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
|
$Date:: $
|
||||||
|
$Rev$
|
||||||
|
$Author$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#ifndef FONT_H_
|
||||||
|
#define FONT_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
#include <nitro/types.h>
|
||||||
|
|
||||||
|
extern const u32 d_CharData[8 * 256];
|
||||||
|
extern const u32 d_PaletteData[8 * 16];
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* FONT_H_ */
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
End of file
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
49
build/debugsoft/ApplicationJump/include/screen.h
Normal file
49
build/debugsoft/ApplicationJump/include/screen.h
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlSDK - WCM - demos - wcm-list-2
|
||||||
|
File: screen.h
|
||||||
|
|
||||||
|
Copyright 2007 Nintendo. All rights reserved.
|
||||||
|
|
||||||
|
These coded instructions, statements, and computer programs contain
|
||||||
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
|
$Date:: $
|
||||||
|
$Rev$
|
||||||
|
$Author$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#ifndef SCREEN_H_
|
||||||
|
#define SCREEN_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
#include <nitro/types.h>
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
ŠÖ<EFBFBD>” ’è‹`
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void InitScreen(void);
|
||||||
|
void ClearScreen(void);
|
||||||
|
void ClearMainScreen(void);
|
||||||
|
void ClearSubScreen(void);
|
||||||
|
void PutMainScreen(s32 x, s32 y, u8 palette, char* text, ...);
|
||||||
|
void PutSubScreen(s32 x, s32 y, u8 palette, char* text, ...);
|
||||||
|
void UpdateScreen(void);
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* SCREEN_H_ */
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
End of file
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
153
build/debugsoft/ApplicationJump/src/common.c
Normal file
153
build/debugsoft/ApplicationJump/src/common.c
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlSDK - tests - appjumpTest
|
||||||
|
File: common.c
|
||||||
|
|
||||||
|
Copyright 2008 Nintendo. All rights reserved.
|
||||||
|
|
||||||
|
These coded instructions, statements, and computer programs contain
|
||||||
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
|
$Date:: $
|
||||||
|
$Rev$
|
||||||
|
$Author$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
|
static void InitInterrupts(void);
|
||||||
|
static void InitHeap(void);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
関数定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: InitCommon
|
||||||
|
|
||||||
|
Description: 基本的な初期化関数をここで呼ぶ。
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void InitCommon(void)
|
||||||
|
{
|
||||||
|
OS_Init();
|
||||||
|
OS_InitTick();
|
||||||
|
OS_InitAlarm();
|
||||||
|
GX_Init();
|
||||||
|
GX_DispOff();
|
||||||
|
GXS_DispOff();
|
||||||
|
|
||||||
|
InitHeap();
|
||||||
|
InitInterrupts();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: ReadKey
|
||||||
|
|
||||||
|
Description: キー入力情報を取得し、入力情報構造体を編集する。
|
||||||
|
押しトリガ、離しトリガ、押し継続リピートトリガ を検出する。
|
||||||
|
|
||||||
|
Arguments: pKey - 編集するキー入力情報構造体を指定する。
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void ReadKey(KeyInfo* pKey)
|
||||||
|
{
|
||||||
|
static u16 repeat_count[12];
|
||||||
|
int i;
|
||||||
|
u16 r;
|
||||||
|
|
||||||
|
r = PAD_Read();
|
||||||
|
pKey->trg = 0x0000;
|
||||||
|
pKey->up = 0x0000;
|
||||||
|
pKey->rep = 0x0000;
|
||||||
|
|
||||||
|
for (i = 0; i < 12; i++)
|
||||||
|
{
|
||||||
|
if (r & (0x0001 << i))
|
||||||
|
{
|
||||||
|
if (!(pKey->cnt & (0x0001 << i)))
|
||||||
|
{
|
||||||
|
pKey->trg |= (0x0001 << i); // 押しトリガ
|
||||||
|
repeat_count[i] = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (repeat_count[i] > KEY_REPEAT_START)
|
||||||
|
{
|
||||||
|
pKey->rep |= (0x0001 << i); // 押し継続リピート
|
||||||
|
repeat_count[i] = (u16) (KEY_REPEAT_START - KEY_REPEAT_SPAN);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
repeat_count[i]++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (pKey->cnt & (0x0001 << i))
|
||||||
|
{
|
||||||
|
pKey->up |= (0x0001 << i); // 離しトリガ
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pKey->cnt = r; // 未加工キー入力
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: InitInterrupts
|
||||||
|
|
||||||
|
Description: 割り込み設定を初期化する。
|
||||||
|
V ブランク割り込みを許可し、割り込みハンドラを設定する。
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void InitInterrupts(void)
|
||||||
|
{
|
||||||
|
// V ブランク割り込み設定
|
||||||
|
OS_SetIrqFunction(OS_IE_V_BLANK, VBlankIntr);
|
||||||
|
(void)OS_EnableIrqMask(OS_IE_V_BLANK);
|
||||||
|
(void)GX_VBlankIntr(TRUE);
|
||||||
|
|
||||||
|
// 割り込み許可
|
||||||
|
(void)OS_EnableIrq();
|
||||||
|
(void)OS_EnableInterrupts();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: InitHeap
|
||||||
|
|
||||||
|
Description: メインメモリ上のアリーナにてメモリ割当てシステムを初期化する。
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static void InitHeap(void)
|
||||||
|
{
|
||||||
|
void* tempLo;
|
||||||
|
OSHeapHandle hh;
|
||||||
|
|
||||||
|
// メインメモリ上のアリーナにヒープをひとつ作成
|
||||||
|
tempLo = OS_InitAlloc(OS_ARENA_MAIN, OS_GetMainArenaLo(), OS_GetMainArenaHi(), 1);
|
||||||
|
OS_SetArenaLo(OS_ARENA_MAIN, tempLo);
|
||||||
|
hh = OS_CreateHeap(OS_ARENA_MAIN, OS_GetMainArenaLo(), OS_GetMainArenaHi());
|
||||||
|
if (hh < 0)
|
||||||
|
{
|
||||||
|
// ヒープ作成に失敗した場合は異常終了
|
||||||
|
OS_Panic("ARM9: Fail to create heap...\n");
|
||||||
|
}
|
||||||
|
(void)OS_SetCurrentHeap(OS_ARENA_MAIN, hh);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
End of file
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
585
build/debugsoft/ApplicationJump/src/font.c
Normal file
585
build/debugsoft/ApplicationJump/src/font.c
Normal file
@ -0,0 +1,585 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: NitroWiFi - WCM - demos - wcm-list
|
||||||
|
File: font.c
|
||||||
|
|
||||||
|
Copyright 2005,2006 Nintendo. All rights reserved.
|
||||||
|
|
||||||
|
These coded instructions, statements, and computer programs contain
|
||||||
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
|
$Log: font.c,v $
|
||||||
|
Revision 1.2 2006/03/10 09:22:43 kitase_hirotake
|
||||||
|
INDENT SOURCE
|
||||||
|
|
||||||
|
Revision 1.1 2005/07/21 08:21:06 adachi_hiroaki
|
||||||
|
<EFBFBD>V‹K’ljÁ
|
||||||
|
|
||||||
|
|
||||||
|
$NoKeywords: $
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#include "font.h"
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Character data
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
const u32 d_CharData[8 * 256] =
|
||||||
|
{
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 0000h
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x01010010, 0x01010010, 0x00000110, // 0001h
|
||||||
|
0x00011010, 0x01100010, 0x00000010, 0x00000010,
|
||||||
|
0x00000000, 0x01011010, 0x01010010, 0x00010010, // 0002h
|
||||||
|
0x00100010, 0x00100010, 0x00100001, 0x00100001,
|
||||||
|
0x00000000, 0x01010001, 0x01010001, 0x01111111, // 0003h
|
||||||
|
0x00000001, 0x00000001, 0x00000001, 0x01111110,
|
||||||
|
0x00000000, 0x01010000, 0x01111111, 0x00100000, // 0004h
|
||||||
|
0x00100000, 0x00010000, 0x00001000, 0x00000110,
|
||||||
|
0x00000000, 0x01010000, 0x01010100, 0x00001010, // 0005h
|
||||||
|
0x00010001, 0x00100001, 0x01000000, 0x00000000,
|
||||||
|
0x00000000, 0x01011000, 0x01011000, 0x01111111, // 0006h
|
||||||
|
0x00001000, 0x00101010, 0x01001010, 0x01001001,
|
||||||
|
0x00000000, 0x01010010, 0x01101111, 0x01010010, // 0007h
|
||||||
|
0x00010010, 0x00010010, 0x00010010, 0x00001001,
|
||||||
|
0x00000000, 0x01010010, 0x01011111, 0x00000100, // 0008h
|
||||||
|
0x00011111, 0x00001000, 0x00000001, 0x00011110,
|
||||||
|
0x00000000, 0x01010000, 0x01011000, 0x00000110, // 0009h
|
||||||
|
0x00000001, 0x00000110, 0x00011000, 0x00100000,
|
||||||
|
0x00000000, 0x01010000, 0x01111101, 0x00010001, // 000ah
|
||||||
|
0x00010001, 0x00010001, 0x00010001, 0x00001010,
|
||||||
|
0x00000000, 0x01010000, 0x01011110, 0x00100000, // 000bh
|
||||||
|
0x00000000, 0x00000001, 0x00000001, 0x00111110,
|
||||||
|
0x00000000, 0x01010100, 0x01011111, 0x00001000, // 000ch
|
||||||
|
0x00010000, 0x00000001, 0x00000001, 0x00011110,
|
||||||
|
0x00000000, 0x01010001, 0x01010001, 0x00000001, // 000dh
|
||||||
|
0x01000001, 0x01000001, 0x00100010, 0x00011100,
|
||||||
|
0x00000000, 0x01010000, 0x01111111, 0x00011000, // 000eh
|
||||||
|
0x00010100, 0x00010100, 0x00011000, 0x00001100,
|
||||||
|
0x00000000, 0x01010010, 0x01111111, 0x00010010, // 000fh
|
||||||
|
0x00010010, 0x00000010, 0x00000010, 0x00111100,
|
||||||
|
0x00000000, 0x00001110, 0x01010100, 0x01010010, // 0010h
|
||||||
|
0x00111111, 0x00000100, 0x00000100, 0x00011000,
|
||||||
|
0x00000000, 0x01010100, 0x01011111, 0x00000100, // 0011h
|
||||||
|
0x01110100, 0x00000010, 0x00001010, 0x01110010,
|
||||||
|
0x00000000, 0x01010100, 0x01011111, 0x00000010, // 0012h
|
||||||
|
0x00011110, 0x00100001, 0x00100000, 0x00011110,
|
||||||
|
0x00000000, 0x01010000, 0x01011100, 0x00100011, // 0013h
|
||||||
|
0x01000000, 0x01000000, 0x00100000, 0x00011100,
|
||||||
|
0x00000000, 0x01010000, 0x01111111, 0x00010000, // 0014h
|
||||||
|
0x00001000, 0x00001000, 0x00001000, 0x00110000,
|
||||||
|
0x00000000, 0x01010010, 0x01010010, 0x00001100, // 0015h
|
||||||
|
0x00000010, 0x00000001, 0x00000001, 0x00111110,
|
||||||
|
0x00000000, 0x01010001, 0x01111101, 0x00010001, // 0016h
|
||||||
|
0x00010001, 0x00111001, 0x01010101, 0x00011001,
|
||||||
|
0x00000000, 0x01010100, 0x01010011, 0x01110010, // 0017h
|
||||||
|
0x00010001, 0x00010001, 0x00001010, 0x00000100,
|
||||||
|
0x00000000, 0x01011110, 0x01011000, 0x00000100, // 0018h
|
||||||
|
0x00101001, 0x01010001, 0x01010001, 0x00001100,
|
||||||
|
0x00000000, 0x01010000, 0x01011100, 0x00010010, // 0019h
|
||||||
|
0x00010010, 0x00100001, 0x01000000, 0x00000000,
|
||||||
|
0x00000000, 0x01011101, 0x01010001, 0x00111101, // 001ah
|
||||||
|
0x00010001, 0x00011001, 0x00110101, 0x00001001,
|
||||||
|
0x00000000, 0x01110001, 0x01011101, 0x00110001, // 001bh
|
||||||
|
0x00010001, 0x00111001, 0x01010101, 0x00011001,
|
||||||
|
0x00000000, 0x01110100, 0x01010011, 0x00110010, // 001ch
|
||||||
|
0x00010001, 0x00010001, 0x00001010, 0x00000100,
|
||||||
|
0x00000000, 0x01101110, 0x01011000, 0x00100100, // 001dh
|
||||||
|
0x00101001, 0x01010001, 0x01010001, 0x00001100,
|
||||||
|
0x00000000, 0x01110000, 0x01011100, 0x00110010, // 001eh
|
||||||
|
0x00010010, 0x00100001, 0x01000000, 0x00000000,
|
||||||
|
0x00000000, 0x01111101, 0x01010001, 0x00111101, // 001fh
|
||||||
|
0x00010001, 0x00011001, 0x00110101, 0x00001001,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 0020h
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x00001000, 0x00001000, 0x00001000, // 0021h
|
||||||
|
0x00001000, 0x00001000, 0x00000000, 0x00001000,
|
||||||
|
0x00000000, 0x01101100, 0x01001000, 0x00100100, // 0022h
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x00100100, 0x01111111, 0x00100100, // 0023h
|
||||||
|
0x00100100, 0x01111111, 0x00010010, 0x00010010,
|
||||||
|
0x00000000, 0x00001000, 0x01111110, 0x00001001, // 0024h
|
||||||
|
0x00111110, 0x01001000, 0x00111111, 0x00001000,
|
||||||
|
0x00000000, 0x01000010, 0x00100101, 0x00010010, // 0025h
|
||||||
|
0x00001000, 0x00100100, 0x01010010, 0x00100001,
|
||||||
|
0x00000000, 0x00001110, 0x00010001, 0x00001001, // 0026h
|
||||||
|
0x01000110, 0x00101001, 0x00110001, 0x01001110,
|
||||||
|
0x00000000, 0x00011000, 0x00010000, 0x00001000, // 0027h
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x01110000, 0x00001000, 0x00000100, // 0028h
|
||||||
|
0x00000100, 0x00000100, 0x00001000, 0x01110000,
|
||||||
|
0x00000000, 0x00000111, 0x00001000, 0x00010000, // 0029h
|
||||||
|
0x00010000, 0x00010000, 0x00001000, 0x00000111,
|
||||||
|
0x00000000, 0x00001000, 0x01001001, 0x00101010, // 002ah
|
||||||
|
0x00011100, 0x00101010, 0x01001001, 0x00001000,
|
||||||
|
0x00000000, 0x00001000, 0x00001000, 0x00001000, // 002bh
|
||||||
|
0x01111111, 0x00001000, 0x00001000, 0x00001000,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 002ch
|
||||||
|
0x00000000, 0x00001100, 0x00001000, 0x00000100,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 002dh
|
||||||
|
0x01111111, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 002eh
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00001100,
|
||||||
|
0x00000000, 0x01000000, 0x00100000, 0x00010000, // 002fh
|
||||||
|
0x00001000, 0x00000100, 0x00000010, 0x00000001,
|
||||||
|
0x00000000, 0x00111110, 0x01000001, 0x01000001, // 0030h
|
||||||
|
0x01000001, 0x01000001, 0x01000001, 0x00111110,
|
||||||
|
0x00000000, 0x00011100, 0x00010000, 0x00010000, // 0031h
|
||||||
|
0x00010000, 0x00010000, 0x00010000, 0x00010000,
|
||||||
|
0x00000000, 0x00111110, 0x01000001, 0x01000000, // 0032h
|
||||||
|
0x00111110, 0x00000001, 0x00000001, 0x01111111,
|
||||||
|
0x00000000, 0x00111110, 0x01000001, 0x01000000, // 0033h
|
||||||
|
0x00111110, 0x01000000, 0x01000001, 0x00111110,
|
||||||
|
0x00000000, 0x00100000, 0x00110000, 0x00101000, // 0034h
|
||||||
|
0x00100100, 0x00100010, 0x01111111, 0x00100000,
|
||||||
|
0x00000000, 0x01111111, 0x00000001, 0x00111111, // 0035h
|
||||||
|
0x01000000, 0x01000000, 0x01000001, 0x00111110,
|
||||||
|
0x00000000, 0x00111110, 0x00000001, 0x00111111, // 0036h
|
||||||
|
0x01000001, 0x01000001, 0x01000001, 0x00111110,
|
||||||
|
0x00000000, 0x01111111, 0x00100000, 0x00100000, // 0037h
|
||||||
|
0x00010000, 0x00010000, 0x00001000, 0x00001000,
|
||||||
|
0x00000000, 0x00111110, 0x01000001, 0x01000001, // 0038h
|
||||||
|
0x00111110, 0x01000001, 0x01000001, 0x00111110,
|
||||||
|
0x00000000, 0x00111110, 0x01000001, 0x01000001, // 0039h
|
||||||
|
0x01000001, 0x01111110, 0x01000000, 0x00111110,
|
||||||
|
0x00000000, 0x00000000, 0x00001100, 0x00000000, // 003ah
|
||||||
|
0x00000000, 0x00000000, 0x00001100, 0x00000000,
|
||||||
|
0x00000000, 0x00000000, 0x00001100, 0x00000000, // 003bh
|
||||||
|
0x00000000, 0x00001100, 0x00001000, 0x00000100,
|
||||||
|
0x00000000, 0x01100000, 0x00011000, 0x00000110, // 003ch
|
||||||
|
0x00000001, 0x00000110, 0x00011000, 0x01100000,
|
||||||
|
0x00000000, 0x00000000, 0x01111111, 0x00000000, // 003dh
|
||||||
|
0x00000000, 0x00000000, 0x01111111, 0x00000000,
|
||||||
|
0x00000000, 0x00000011, 0x00001100, 0x00110000, // 003eh
|
||||||
|
0x01000000, 0x00110000, 0x00001100, 0x00000011,
|
||||||
|
0x00000000, 0x00111110, 0x01000001, 0x01000001, // 003fh
|
||||||
|
0x00110000, 0x00001000, 0x00000000, 0x00001000,
|
||||||
|
0x00000000, 0x00011100, 0x00100010, 0x01001001, // 0040h
|
||||||
|
0x01010101, 0x01010101, 0x01010101, 0x00111010,
|
||||||
|
0x00000000, 0x00001000, 0x00010100, 0x00010100, // 0041h
|
||||||
|
0x00100010, 0x00111110, 0x01000001, 0x01000001,
|
||||||
|
0x00000000, 0x00111111, 0x01000001, 0x01000001, // 0042h
|
||||||
|
0x00111111, 0x01000001, 0x01000001, 0x00111111,
|
||||||
|
0x00000000, 0x00111100, 0x01000010, 0x00000001, // 0043h
|
||||||
|
0x00000001, 0x00000001, 0x01000010, 0x00111100,
|
||||||
|
0x00000000, 0x00011111, 0x00100001, 0x01000001, // 0044h
|
||||||
|
0x01000001, 0x01000001, 0x00100001, 0x00011111,
|
||||||
|
0x00000000, 0x01111111, 0x00000001, 0x00000001, // 0045h
|
||||||
|
0x01111111, 0x00000001, 0x00000001, 0x01111111,
|
||||||
|
0x00000000, 0x01111111, 0x00000001, 0x00000001, // 0046h
|
||||||
|
0x00111111, 0x00000001, 0x00000001, 0x00000001,
|
||||||
|
0x00000000, 0x00111100, 0x01000010, 0x00000001, // 0047h
|
||||||
|
0x01111001, 0x01000001, 0x01000010, 0x00111100,
|
||||||
|
0x00000000, 0x01000001, 0x01000001, 0x01000001, // 0048h
|
||||||
|
0x01111111, 0x01000001, 0x01000001, 0x01000001,
|
||||||
|
0x00000000, 0x00111110, 0x00001000, 0x00001000, // 0049h
|
||||||
|
0x00001000, 0x00001000, 0x00001000, 0x00111110,
|
||||||
|
0x00000000, 0x01000000, 0x01000000, 0x01000000, // 004ah
|
||||||
|
0x01000001, 0x01000001, 0x00100010, 0x00011100,
|
||||||
|
0x00000000, 0x01100001, 0x00011001, 0x00000101, // 004bh
|
||||||
|
0x00000011, 0x00000101, 0x00011001, 0x01100001,
|
||||||
|
0x00000000, 0x00000001, 0x00000001, 0x00000001, // 004ch
|
||||||
|
0x00000001, 0x00000001, 0x00000001, 0x01111111,
|
||||||
|
0x00000000, 0x01000001, 0x01100011, 0x01010101, // 004dh
|
||||||
|
0x01001001, 0x01000001, 0x01000001, 0x01000001,
|
||||||
|
0x00000000, 0x01000001, 0x01000011, 0x01000101, // 004eh
|
||||||
|
0x01001001, 0x01010001, 0x01100001, 0x01000001,
|
||||||
|
0x00000000, 0x00011100, 0x00100010, 0x01000001, // 004fh
|
||||||
|
0x01000001, 0x01000001, 0x00100010, 0x00011100,
|
||||||
|
0x00000000, 0x00111111, 0x01000001, 0x01000001, // 0050h
|
||||||
|
0x00111111, 0x00000001, 0x00000001, 0x00000001,
|
||||||
|
0x00000000, 0x00011100, 0x00100010, 0x01000001, // 0051h
|
||||||
|
0x01000001, 0x01011001, 0x00100010, 0x01011100,
|
||||||
|
0x00000000, 0x00111111, 0x01000001, 0x01000001, // 0052h
|
||||||
|
0x00111111, 0x01000001, 0x01000001, 0x01000001,
|
||||||
|
0x00000000, 0x00111110, 0x01000001, 0x00000001, // 0053h
|
||||||
|
0x00111110, 0x01000000, 0x01000001, 0x00111110,
|
||||||
|
0x00000000, 0x01111111, 0x00001000, 0x00001000, // 0054h
|
||||||
|
0x00001000, 0x00001000, 0x00001000, 0x00001000,
|
||||||
|
0x00000000, 0x01000001, 0x01000001, 0x01000001, // 0055h
|
||||||
|
0x01000001, 0x01000001, 0x00100010, 0x00011100,
|
||||||
|
0x00000000, 0x01000001, 0x01000001, 0x00100010, // 0056h
|
||||||
|
0x00100010, 0x00010100, 0x00010100, 0x00001000,
|
||||||
|
0x00000000, 0x01000001, 0x01000001, 0x01000001, // 0057h
|
||||||
|
0x01001001, 0x01010101, 0x01100011, 0x01000001,
|
||||||
|
0x00000000, 0x01000001, 0x00100010, 0x00010100, // 0058h
|
||||||
|
0x00001000, 0x00010100, 0x00100010, 0x01000001,
|
||||||
|
0x00000000, 0x01000001, 0x00100010, 0x00010100, // 0059h
|
||||||
|
0x00001000, 0x00001000, 0x00001000, 0x00001000,
|
||||||
|
0x00000000, 0x01111111, 0x00100000, 0x00010000, // 005ah
|
||||||
|
0x00001000, 0x00000100, 0x00000010, 0x01111111,
|
||||||
|
0x00000000, 0x01111100, 0x00000100, 0x00000100, // 005bh
|
||||||
|
0x00000100, 0x00000100, 0x00000100, 0x01111100,
|
||||||
|
0x00000000, 0x00100010, 0x00010100, 0x00111110, // 005ch
|
||||||
|
0x00001000, 0x00111110, 0x00001000, 0x00001000,
|
||||||
|
0x00000000, 0x00011111, 0x00010000, 0x00010000, // 005dh
|
||||||
|
0x00010000, 0x00010000, 0x00010000, 0x00011111,
|
||||||
|
0x00000000, 0x00001000, 0x00010100, 0x00100010, // 005eh
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 005fh
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x01111111,
|
||||||
|
0x00000000, 0x00010000, 0x00001000, 0x00011000, // 0060h
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x00000000, 0x00011110, 0x00100001, // 0061h
|
||||||
|
0x00111110, 0x00100001, 0x00100001, 0x01011110,
|
||||||
|
0x00000000, 0x00000001, 0x00000001, 0x00111111, // 0062h
|
||||||
|
0x01000001, 0x01000001, 0x01000001, 0x00111111,
|
||||||
|
0x00000000, 0x00000000, 0x00111100, 0x01000010, // 0063h
|
||||||
|
0x00000001, 0x00000001, 0x01000010, 0x00111100,
|
||||||
|
0x00000000, 0x01000000, 0x01000000, 0x01111110, // 0064h
|
||||||
|
0x01000001, 0x01000001, 0x01000001, 0x01111110,
|
||||||
|
0x00000000, 0x00000000, 0x00111110, 0x01000001, // 0065h
|
||||||
|
0x01111111, 0x00000001, 0x01000001, 0x00111110,
|
||||||
|
0x00000000, 0x00110000, 0x00001000, 0x00001000, // 0066h
|
||||||
|
0x01111111, 0x00001000, 0x00001000, 0x00001000,
|
||||||
|
0x00000000, 0x00000000, 0x01111110, 0x01000001, // 0067h
|
||||||
|
0x01000001, 0x01111110, 0x01000000, 0x00111110,
|
||||||
|
0x00000000, 0x00000001, 0x00000001, 0x00000001, // 0068h
|
||||||
|
0x00111111, 0x01000001, 0x01000001, 0x01000001,
|
||||||
|
0x00000000, 0x00001000, 0x00000000, 0x00001000, // 0069h
|
||||||
|
0x00001000, 0x00001000, 0x00001000, 0x00001000,
|
||||||
|
0x00000000, 0x00100000, 0x00000000, 0x00100000, // 006ah
|
||||||
|
0x00100000, 0x00100001, 0x00100001, 0x00011110,
|
||||||
|
0x00000000, 0x00000001, 0x00000001, 0x01100001, // 006bh
|
||||||
|
0x00011001, 0x00000111, 0x00011001, 0x01100001,
|
||||||
|
0x00000000, 0x00001000, 0x00001000, 0x00001000, // 006ch
|
||||||
|
0x00001000, 0x00001000, 0x00001000, 0x00001000,
|
||||||
|
0x00000000, 0x00000000, 0x00110111, 0x01001001, // 006dh
|
||||||
|
0x01001001, 0x01001001, 0x01001001, 0x01001001,
|
||||||
|
0x00000000, 0x00000000, 0x00111111, 0x01000001, // 006eh
|
||||||
|
0x01000001, 0x01000001, 0x01000001, 0x01000001,
|
||||||
|
0x00000000, 0x00000000, 0x00011100, 0x00100010, // 006fh
|
||||||
|
0x01000001, 0x01000001, 0x00100010, 0x00011100,
|
||||||
|
0x00000000, 0x00000000, 0x00111101, 0x01000011, // 0070h
|
||||||
|
0x01000001, 0x01000011, 0x00111101, 0x00000001,
|
||||||
|
0x00000000, 0x00000000, 0x01011110, 0x01100001, // 0071h
|
||||||
|
0x01000001, 0x01100001, 0x01011110, 0x01000000,
|
||||||
|
0x00000000, 0x00000000, 0x00110001, 0x00001101, // 0072h
|
||||||
|
0x00000011, 0x00000001, 0x00000001, 0x00000001,
|
||||||
|
0x00000000, 0x00000000, 0x00111110, 0x01000001, // 0073h
|
||||||
|
0x00001110, 0x00110000, 0x01000001, 0x00111110,
|
||||||
|
0x00000000, 0x00000100, 0x00000100, 0x01111111, // 0074h
|
||||||
|
0x00000100, 0x00000100, 0x00000100, 0x01111000,
|
||||||
|
0x00000000, 0x00000000, 0x01000001, 0x01000001, // 0075h
|
||||||
|
0x01000001, 0x01000001, 0x01000001, 0x01111110,
|
||||||
|
0x00000000, 0x00000000, 0x01000001, 0x01000001, // 0076h
|
||||||
|
0x00100010, 0x00100010, 0x00010100, 0x00001000,
|
||||||
|
0x00000000, 0x00000000, 0x01000001, 0x01000001, // 0077h
|
||||||
|
0x01001001, 0x00101010, 0x00101010, 0x00010100,
|
||||||
|
0x00000000, 0x00000000, 0x00100001, 0x00010010, // 0078h
|
||||||
|
0x00001100, 0x00001100, 0x00010010, 0x00100001,
|
||||||
|
0x00000000, 0x00000000, 0x01000001, 0x01000001, // 0079h
|
||||||
|
0x00100010, 0x00011100, 0x00001000, 0x00000110,
|
||||||
|
0x00000000, 0x00000000, 0x00111111, 0x00010000, // 007ah
|
||||||
|
0x00001000, 0x00000100, 0x00000010, 0x00111111,
|
||||||
|
0x00000000, 0x00001000, 0x00011110, 0x01100100, // 007bh
|
||||||
|
0x00011000, 0x00100100, 0x00000100, 0x01111000,
|
||||||
|
0x00000000, 0x00000000, 0x00011110, 0x00000100, // 007ch
|
||||||
|
0x00011110, 0x00110101, 0x00101101, 0x00010010,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00010001, // 007dh
|
||||||
|
0x00100001, 0x00100001, 0x00000001, 0x00000010,
|
||||||
|
0x00000000, 0x00000000, 0x00011100, 0x00000000, // 007eh
|
||||||
|
0x00011110, 0x00100000, 0x00100000, 0x00011100,
|
||||||
|
0x00000000, 0x00000000, 0x00011100, 0x00000000, // 007fh
|
||||||
|
0x00111110, 0x00010000, 0x00001100, 0x00110010,
|
||||||
|
0x00000000, 0x00000000, 0x00000100, 0x00101111, // 0080h
|
||||||
|
0x01000100, 0x00011110, 0x00100101, 0x00010110,
|
||||||
|
0x00000000, 0x00000000, 0x00001010, 0x00011110, // 0081h
|
||||||
|
0x00101011, 0x00100010, 0x00010100, 0x00000100,
|
||||||
|
0x00000000, 0x00000000, 0x00001000, 0x00011101, // 0082h
|
||||||
|
0x00101011, 0x00101001, 0x00011001, 0x00000100,
|
||||||
|
0x00000000, 0x00000000, 0x00001000, 0x00111000, // 0083h
|
||||||
|
0x00001000, 0x00011110, 0x00101001, 0x00000110,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00011100, // 0084h
|
||||||
|
0x00100011, 0x00100000, 0x00100000, 0x00011100,
|
||||||
|
0x00000000, 0x00000110, 0x01001001, 0x00110000, // 0085h
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x00000100, 0x00111111, 0x00000100, // 0086h
|
||||||
|
0x00111110, 0x01010101, 0x01001101, 0x00100110,
|
||||||
|
0x00000000, 0x00000000, 0x00100001, 0x01000001, // 0087h
|
||||||
|
0x01000001, 0x01000001, 0x00000001, 0x00000010,
|
||||||
|
0x00000000, 0x00111100, 0x00000000, 0x00111110, // 0088h
|
||||||
|
0x01000000, 0x01000000, 0x00100000, 0x00011100,
|
||||||
|
0x00000000, 0x00011100, 0x00000000, 0x00111110, // 0089h
|
||||||
|
0x00010000, 0x00001000, 0x00010100, 0x01100010,
|
||||||
|
0x00000000, 0x00100100, 0x01011111, 0x00000100, // 008ah
|
||||||
|
0x00111110, 0x01000101, 0x01000101, 0x00100010,
|
||||||
|
0x00000000, 0x00100010, 0x01001111, 0x01010010, // 008bh
|
||||||
|
0x01010010, 0x00010010, 0x00010010, 0x00001001,
|
||||||
|
0x00000000, 0x00000100, 0x00111110, 0x00001000, // 008ch
|
||||||
|
0x00111110, 0x00010000, 0x00000010, 0x00111100,
|
||||||
|
0x00000000, 0x00100000, 0x00011000, 0x00000110, // 008dh
|
||||||
|
0x00000001, 0x00000110, 0x00011000, 0x00100000,
|
||||||
|
0x00000000, 0x00100000, 0x01111101, 0x00100001, // 008eh
|
||||||
|
0x00100001, 0x00100001, 0x00100001, 0x00010010,
|
||||||
|
0x00000000, 0x00011110, 0x00100000, 0x00000000, // 008fh
|
||||||
|
0x00000000, 0x00000001, 0x00000001, 0x00111110,
|
||||||
|
0x00000000, 0x00001000, 0x01111111, 0x00010000, // 0090h
|
||||||
|
0x00100000, 0x00000010, 0x00000010, 0x00111100,
|
||||||
|
0x00000000, 0x00000001, 0x00000001, 0x00000001, // 0091h
|
||||||
|
0x01000001, 0x01000001, 0x00100010, 0x00011100,
|
||||||
|
0x00000000, 0x00010000, 0x01111111, 0x00011000, // 0092h
|
||||||
|
0x00010100, 0x00010100, 0x00011000, 0x00001100,
|
||||||
|
0x00000000, 0x00100010, 0x01111111, 0x00100010, // 0093h
|
||||||
|
0x00100010, 0x00000010, 0x00000010, 0x01111100,
|
||||||
|
0x00000000, 0x00111100, 0x00010000, 0x00001100, // 0094h
|
||||||
|
0x01111111, 0x00001000, 0x00001000, 0x00110000,
|
||||||
|
0x00000000, 0x00000100, 0x00011111, 0x00000100, // 0095h
|
||||||
|
0x01110100, 0x00000010, 0x00001010, 0x01110010,
|
||||||
|
0x00000000, 0x00001000, 0x01111111, 0x00000100, // 0096h
|
||||||
|
0x00111100, 0x01000010, 0x01000000, 0x00111100,
|
||||||
|
0x00000000, 0x00000000, 0x00011100, 0x00100011, // 0097h
|
||||||
|
0x01000000, 0x01000000, 0x00100000, 0x00011100,
|
||||||
|
0x00000000, 0x01111111, 0x00010000, 0x00001000, // 0098h
|
||||||
|
0x00001000, 0x00001000, 0x00001000, 0x00110000,
|
||||||
|
0x00000000, 0x00000010, 0x00110010, 0x00001100, // 0099h
|
||||||
|
0x00000010, 0x00000001, 0x00000001, 0x00111110,
|
||||||
|
0x00000000, 0x00100100, 0x01001111, 0x01000010, // 009ah
|
||||||
|
0x00010001, 0x00111100, 0x00010010, 0x00001100,
|
||||||
|
0x00000000, 0x00000010, 0x01111010, 0x01000010, // 009bh
|
||||||
|
0x00000010, 0x00000010, 0x00001010, 0x01110010,
|
||||||
|
0x00000000, 0x00100010, 0x00111110, 0x01010010, // 009ch
|
||||||
|
0x01001011, 0x01101101, 0x01010101, 0x00110010,
|
||||||
|
0x00000000, 0x00110010, 0x01001011, 0x01000110, // 009dh
|
||||||
|
0x01000110, 0x01110010, 0x01001011, 0x00110010,
|
||||||
|
0x00000000, 0x00011100, 0x00101010, 0x01001001, // 009eh
|
||||||
|
0x01001001, 0x01000101, 0x01000101, 0x00110010,
|
||||||
|
0x00000000, 0x00100001, 0x01111101, 0x00100001, // 009fh
|
||||||
|
0x00100001, 0x00111001, 0x01100101, 0x00011001,
|
||||||
|
0x00000000, 0x00000100, 0x00100011, 0x01100010, // 00a0h
|
||||||
|
0x00100001, 0x00100001, 0x00010010, 0x00001100,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 00a1h
|
||||||
|
0x00000000, 0x00000100, 0x00001010, 0x00000100,
|
||||||
|
0x00000000, 0x01110000, 0x00010000, 0x00010000, // 00a2h
|
||||||
|
0x00010000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 00a3h
|
||||||
|
0x00001000, 0x00001000, 0x00001000, 0x00001110,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 00a4h
|
||||||
|
0x00000000, 0x00000010, 0x00000100, 0x00000100,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00011000, // 00a5h
|
||||||
|
0x00011000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x01111111, 0x01000000, 0x01111111, // 00a6h
|
||||||
|
0x01000000, 0x01000000, 0x00100000, 0x00011100,
|
||||||
|
0x00000000, 0x00000000, 0x00111111, 0x00100000, // 00a7h
|
||||||
|
0x00010100, 0x00001100, 0x00000100, 0x00000010,
|
||||||
|
0x00000000, 0x00000000, 0x00100000, 0x00100000, // 00a8h
|
||||||
|
0x00010000, 0x00001111, 0x00001000, 0x00001000,
|
||||||
|
0x00000000, 0x00000000, 0x00000100, 0x00111111, // 00a9h
|
||||||
|
0x00100001, 0x00100000, 0x00010000, 0x00001100,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00111110, // 00aah
|
||||||
|
0x00001000, 0x00001000, 0x00001000, 0x01111111,
|
||||||
|
0x00000000, 0x00000000, 0x00010000, 0x00111111, // 00abh
|
||||||
|
0x00011000, 0x00010100, 0x00010010, 0x00011001,
|
||||||
|
0x00000000, 0x00000000, 0x00000010, 0x00111111, // 00ach
|
||||||
|
0x00100010, 0x00010010, 0x00000100, 0x00000100,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00111110, // 00adh
|
||||||
|
0x00100000, 0x00100000, 0x00100000, 0x01111111,
|
||||||
|
0x00000000, 0x00000000, 0x00111110, 0x00100000, // 00aeh
|
||||||
|
0x00111110, 0x00100000, 0x00100000, 0x00111110,
|
||||||
|
0x00000000, 0x00000000, 0x00100101, 0x00101010, // 00afh
|
||||||
|
0x00101010, 0x00100000, 0x00010000, 0x00001110,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 00b0h
|
||||||
|
0x01111111, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x01111111, 0x01000000, 0x00101000, // 00b1h
|
||||||
|
0x00011000, 0x00001000, 0x00001000, 0x00000100,
|
||||||
|
0x00000000, 0x01000000, 0x00100000, 0x00011000, // 00b2h
|
||||||
|
0x00010111, 0x00010000, 0x00010000, 0x00010000,
|
||||||
|
0x00000000, 0x00001000, 0x01111111, 0x01000001, // 00b3h
|
||||||
|
0x01000001, 0x01000000, 0x00100000, 0x00011000,
|
||||||
|
0x00000000, 0x00000000, 0x00111110, 0x00001000, // 00b4h
|
||||||
|
0x00001000, 0x00001000, 0x00001000, 0x01111111,
|
||||||
|
0x00000000, 0x00100000, 0x01111111, 0x00110000, // 00b5h
|
||||||
|
0x00101000, 0x00100100, 0x00100010, 0x00110001,
|
||||||
|
0x00000000, 0x00000100, 0x01111111, 0x01000100, // 00b6h
|
||||||
|
0x01000100, 0x01000100, 0x01000010, 0x00100001,
|
||||||
|
0x00000000, 0x00000100, 0x00111111, 0x00001000, // 00b7h
|
||||||
|
0x01111111, 0x00010000, 0x00010000, 0x00010000,
|
||||||
|
0x00000000, 0x01111100, 0x01000100, 0x01000100, // 00b8h
|
||||||
|
0x01000010, 0x01000000, 0x00100000, 0x00011000,
|
||||||
|
0x00000000, 0x00000010, 0x01111110, 0x00100010, // 00b9h
|
||||||
|
0x00100001, 0x00100000, 0x00010000, 0x00001100,
|
||||||
|
0x00000000, 0x01111110, 0x01000000, 0x01000000, // 00bah
|
||||||
|
0x01000000, 0x01000000, 0x01000000, 0x01111110,
|
||||||
|
0x00000000, 0x00100010, 0x01111111, 0x00100010, // 00bbh
|
||||||
|
0x00100010, 0x00100000, 0x00010000, 0x00001100,
|
||||||
|
0x00000000, 0x00000011, 0x00000100, 0x01000011, // 00bch
|
||||||
|
0x01000100, 0x00100000, 0x00011000, 0x00000111,
|
||||||
|
0x00000000, 0x01111111, 0x01000000, 0x00100000, // 00bdh
|
||||||
|
0x00010000, 0x00011000, 0x00100100, 0x01000011,
|
||||||
|
0x00000000, 0x00000010, 0x01111111, 0x01000010, // 00beh
|
||||||
|
0x00100010, 0x00000010, 0x00000010, 0x01111100,
|
||||||
|
0x00000000, 0x01000001, 0x01000010, 0x01000000, // 00bfh
|
||||||
|
0x00100000, 0x00100000, 0x00011000, 0x00000110,
|
||||||
|
0x00000000, 0x01111110, 0x01000010, 0x01001110, // 00c0h
|
||||||
|
0x01110001, 0x01000000, 0x00100000, 0x00011000,
|
||||||
|
0x00000000, 0x01100000, 0x00011110, 0x00010000, // 00c1h
|
||||||
|
0x01111111, 0x00010000, 0x00010000, 0x00001100,
|
||||||
|
0x00000000, 0x01000101, 0x01001010, 0x01001010, // 00c2h
|
||||||
|
0x01000000, 0x00100000, 0x00010000, 0x00001110,
|
||||||
|
0x00000000, 0x00111110, 0x00000000, 0x01111111, // 00c3h
|
||||||
|
0x00010000, 0x00010000, 0x00001000, 0x00000110,
|
||||||
|
0x00000000, 0x00000010, 0x00000010, 0x00000110, // 00c4h
|
||||||
|
0x00011010, 0x01100010, 0x00000010, 0x00000010,
|
||||||
|
0x00000000, 0x00010000, 0x00010000, 0x01111111, // 00c5h
|
||||||
|
0x00010000, 0x00010000, 0x00001000, 0x00000110,
|
||||||
|
0x00000000, 0x00000000, 0x00111110, 0x00000000, // 00c6h
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x01111111,
|
||||||
|
0x00000000, 0x01111110, 0x01000000, 0x01000100, // 00c7h
|
||||||
|
0x00101000, 0x00010000, 0x00101000, 0x01000110,
|
||||||
|
0x00000000, 0x00001000, 0x01111111, 0x00100000, // 00c8h
|
||||||
|
0x00010000, 0x00011100, 0x01101011, 0x00001000,
|
||||||
|
0x00000000, 0x01000000, 0x01000000, 0x01000000, // 00c9h
|
||||||
|
0x00100000, 0x00100000, 0x00011000, 0x00000111,
|
||||||
|
0x00000000, 0x00010010, 0x00100010, 0x00100010, // 00cah
|
||||||
|
0x01000010, 0x01000010, 0x01000001, 0x01000001,
|
||||||
|
0x00000000, 0x00000001, 0x00000001, 0x01111111, // 00cbh
|
||||||
|
0x00000001, 0x00000001, 0x00000001, 0x01111110,
|
||||||
|
0x00000000, 0x01111111, 0x01000000, 0x01000000, // 00cch
|
||||||
|
0x01000000, 0x00100000, 0x00010000, 0x00001110,
|
||||||
|
0x00000000, 0x00000000, 0x00000100, 0x00001010, // 00cdh
|
||||||
|
0x00010001, 0x00100001, 0x01000000, 0x00000000,
|
||||||
|
0x00000000, 0x00001000, 0x00001000, 0x01111111, // 00ceh
|
||||||
|
0x00001000, 0x00101010, 0x01001010, 0x01001001,
|
||||||
|
0x00000000, 0x01111111, 0x01000000, 0x01000000, // 00cfh
|
||||||
|
0x00100010, 0x00010100, 0x00001000, 0x00010000,
|
||||||
|
0x00000000, 0x00001110, 0x01110000, 0x00001110, // 00d0h
|
||||||
|
0x01110000, 0x00000110, 0x00011000, 0x01100000,
|
||||||
|
0x00000000, 0x00001000, 0x00001000, 0x00000100, // 00d1h
|
||||||
|
0x00000100, 0x00100010, 0x01000010, 0x01111111,
|
||||||
|
0x00000000, 0x01000000, 0x01000000, 0x00100100, // 00d2h
|
||||||
|
0x00101000, 0x00010000, 0x00101100, 0x01000011,
|
||||||
|
0x00000000, 0x01111111, 0x00000100, 0x01111111, // 00d3h
|
||||||
|
0x00000100, 0x00000100, 0x00000100, 0x01111000,
|
||||||
|
0x00000000, 0x00000010, 0x01111111, 0x01000010, // 00d4h
|
||||||
|
0x00100010, 0x00010100, 0x00000100, 0x00000100,
|
||||||
|
0x00000000, 0x00000000, 0x00111110, 0x00100000, // 00d5h
|
||||||
|
0x00100000, 0x00100000, 0x00100000, 0x01111111,
|
||||||
|
0x00000000, 0x01111110, 0x01000000, 0x01000000, // 00d6h
|
||||||
|
0x01111110, 0x01000000, 0x01000000, 0x01111110,
|
||||||
|
0x00000000, 0x00111110, 0x00000000, 0x01111111, // 00d7h
|
||||||
|
0x01000000, 0x01000000, 0x00100000, 0x00011100,
|
||||||
|
0x00000000, 0x01000010, 0x01000010, 0x01000010, // 00d8h
|
||||||
|
0x01000010, 0x01000000, 0x00100000, 0x00011000,
|
||||||
|
0x00000000, 0x00001010, 0x00001010, 0x00001010, // 00d9h
|
||||||
|
0x01001010, 0x01001010, 0x00101010, 0x00011001,
|
||||||
|
0x00000000, 0x00000010, 0x00000010, 0x01000010, // 00dah
|
||||||
|
0x01000010, 0x00100010, 0x00010010, 0x00001110,
|
||||||
|
0x00000000, 0x01111111, 0x01000001, 0x01000001, // 00dbh
|
||||||
|
0x01000001, 0x01000001, 0x01000001, 0x01111111,
|
||||||
|
0x00000000, 0x01111111, 0x01000001, 0x01000001, // 00dch
|
||||||
|
0x01000000, 0x01000000, 0x00100000, 0x00011100,
|
||||||
|
0x00000000, 0x01000011, 0x01000100, 0x01000000, // 00ddh
|
||||||
|
0x01000000, 0x00100000, 0x00010000, 0x00001111,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 00deh
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // 00dfh
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00000000, 0x00011110, 0x00001000, 0x00000100, // 00e0h
|
||||||
|
0x00101001, 0x01010001, 0x01010001, 0x00001100,
|
||||||
|
0x00000000, 0x00000000, 0x00001100, 0x00010010, // 00e1h
|
||||||
|
0x00010010, 0x00100001, 0x01000000, 0x00000000,
|
||||||
|
0x00000000, 0x01111101, 0x00100001, 0x01111101, // 00e2h
|
||||||
|
0x00100001, 0x00111001, 0x01100101, 0x00011001,
|
||||||
|
0x00000000, 0x00111100, 0x00010000, 0x00111100, // 00e3h
|
||||||
|
0x00010000, 0x00011100, 0x00110010, 0x00001100,
|
||||||
|
0x00000000, 0x00001110, 0x00101000, 0x00101000, // 00e4h
|
||||||
|
0x00111110, 0x01100101, 0x00100101, 0x00010010,
|
||||||
|
0x00000000, 0x00000100, 0x00101111, 0x01000100, // 00e5h
|
||||||
|
0x00000110, 0x01000101, 0x01000101, 0x00111110,
|
||||||
|
0x00000000, 0x00100010, 0x00100010, 0x00111110, // 00e6h
|
||||||
|
0x01010010, 0x01010101, 0x01001101, 0x00100110,
|
||||||
|
0x00000000, 0x00000100, 0x00011111, 0x00000010, // 00e7h
|
||||||
|
0x00011111, 0x01000010, 0x01000010, 0x00111100,
|
||||||
|
0x00000000, 0x00010010, 0x00111110, 0x01010011, // 00e8h
|
||||||
|
0x01000010, 0x00100100, 0x00000100, 0x00000100,
|
||||||
|
0x00000000, 0x00001000, 0x00111101, 0x01001011, // 00e9h
|
||||||
|
0x01001001, 0x01001001, 0x00111000, 0x00000100,
|
||||||
|
0x00000000, 0x00001000, 0x00111000, 0x00001000, // 00eah
|
||||||
|
0x00001000, 0x00011110, 0x00101001, 0x00000110,
|
||||||
|
0x00000000, 0x00011000, 0x00100000, 0x00000100, // 00ebh
|
||||||
|
0x00111010, 0x01000110, 0x01000000, 0x00111000,
|
||||||
|
0x00000000, 0x01000010, 0x01000010, 0x01000010, // 00ech
|
||||||
|
0x01000110, 0x01000000, 0x00100000, 0x00011000,
|
||||||
|
0x00000000, 0x00111110, 0x00010000, 0x00111100, // 00edh
|
||||||
|
0x01000011, 0x01001100, 0x01010010, 0x00111100,
|
||||||
|
0x00000000, 0x00100010, 0x00110011, 0x00101010, // 00eeh
|
||||||
|
0x00100110, 0x00100010, 0x00100011, 0x01000010,
|
||||||
|
0x00000000, 0x00111110, 0x00010000, 0x00111100, // 00efh
|
||||||
|
0x01000011, 0x01000000, 0x01000010, 0x00111100,
|
||||||
|
0x00000000, 0x00000010, 0x00111011, 0x01000110, // 00f0h
|
||||||
|
0x01000010, 0x01000011, 0x01000010, 0x00110010,
|
||||||
|
0x00000000, 0x00000100, 0x00000100, 0x00000010, // 00f1h
|
||||||
|
0x01000110, 0x01000101, 0x01000101, 0x00111001,
|
||||||
|
0x00000000, 0x01010100, 0x01111111, 0x00100100, // 00f2h
|
||||||
|
0x00100100, 0x00100100, 0x00100010, 0x00010001,
|
||||||
|
0x00000000, 0x01010100, 0x01011111, 0x00000100, // 00f3h
|
||||||
|
0x00111111, 0x00001000, 0x00001000, 0x00001000,
|
||||||
|
0x00000000, 0x01011110, 0x01100010, 0x00100010, // 00f4h
|
||||||
|
0x00100001, 0x00100000, 0x00010000, 0x00001100,
|
||||||
|
0x00000000, 0x01010010, 0x01111110, 0x00100010, // 00f5h
|
||||||
|
0x00100001, 0x00100000, 0x00010000, 0x00001100,
|
||||||
|
0x00000000, 0x01010000, 0x01111111, 0x00100000, // 00f6h
|
||||||
|
0x00100000, 0x00100000, 0x00100000, 0x00111111,
|
||||||
|
0x00000000, 0x01010010, 0x01010010, 0x00111111, // 00f7h
|
||||||
|
0x00010010, 0x00010000, 0x00010000, 0x00001100,
|
||||||
|
0x00000000, 0x01010011, 0x01010100, 0x00100011, // 00f8h
|
||||||
|
0x00100100, 0x00010000, 0x00001000, 0x00000111,
|
||||||
|
0x00000000, 0x01010000, 0x01011111, 0x00010000, // 00f9h
|
||||||
|
0x00001000, 0x00001100, 0x00010010, 0x00100001,
|
||||||
|
0x00000000, 0x01010010, 0x01111111, 0x00100010, // 00fah
|
||||||
|
0x00010010, 0x00000010, 0x00000010, 0x00111100,
|
||||||
|
0x00000000, 0x01010001, 0x01010010, 0x00100000, // 00fbh
|
||||||
|
0x00100000, 0x00010000, 0x00001000, 0x00000110,
|
||||||
|
0x00000000, 0x01011110, 0x01010010, 0x00100110, // 00fch
|
||||||
|
0x00111001, 0x00100000, 0x00010000, 0x00001100,
|
||||||
|
0x00000000, 0x01010000, 0x01011110, 0x00010000, // 00fdh
|
||||||
|
0x01111111, 0x00010000, 0x00010000, 0x00001100,
|
||||||
|
0x00000000, 0x00100101, 0x01001010, 0x00101010, // 00feh
|
||||||
|
0x00100000, 0x00010000, 0x00001000, 0x00000111,
|
||||||
|
0x00000000, 0x01011110, 0x01010000, 0x00111111, // 00ffh
|
||||||
|
0x00001000, 0x00001000, 0x00001000, 0x00000110
|
||||||
|
};
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Palette data
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
const u32 d_PaletteData[8 * 16] =
|
||||||
|
{
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, // black
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x001f0000, 0x00000000, 0x00000000, 0x00000000, // red
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x03e00000, 0x00000000, 0x00000000, 0x00000000, // green
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x7c000000, 0x00000000, 0x00000000, 0x00000000, // blue
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x03ff0000, 0x00000000, 0x00000000, 0x00000000, // yellow
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x7c1f0000, 0x00000000, 0x00000000, 0x00000000, // purple
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x7fe00000, 0x00000000, 0x00000000, 0x00000000, // light blue
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x00180000, 0x00000000, 0x00000000, 0x00000000, // dark red
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x03000000, 0x00000000, 0x00000000, 0x00000000, // dark green
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x60000000, 0x00000000, 0x00000000, 0x00000000, // dark blue
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x03180000, 0x00000000, 0x00000000, 0x00000000, // dark yellow
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x60180000, 0x00000000, 0x00000000, 0x00000000, // dark purple
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x63000000, 0x00000000, 0x00000000, 0x00000000, // dark light blue
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x56b50000, 0x00000000, 0x00000000, 0x00000000, // gray
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x2d6b0000, 0x00000000, 0x00000000, 0x00000000, // dark gray
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||||
|
0x7fff0000, 0x00000000, 0x00000000, 0x00000000, // white
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||||
|
};
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
End of file
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
194
build/debugsoft/ApplicationJump/src/screen.c
Normal file
194
build/debugsoft/ApplicationJump/src/screen.c
Normal file
@ -0,0 +1,194 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlSDK - WCM - demos - wcm-list-2
|
||||||
|
File: screen.c
|
||||||
|
|
||||||
|
Copyright 2007 Nintendo. All rights reserved.
|
||||||
|
|
||||||
|
These coded instructions, statements, and computer programs contain
|
||||||
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
|
$Date:: $
|
||||||
|
$Rev$
|
||||||
|
$Author$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#include <nitro.h>
|
||||||
|
#include "screen.h"
|
||||||
|
#include "font.h"
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
定数 定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#define TEXT_SCREEN_SIZE 2048
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
内部変数 定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// 仮想スクリーン[ 上下画面 ][ BG 枚数 ][ キャラクタ数 ]
|
||||||
|
static u16 gScreen[2 ][ 1 ][ TEXT_SCREEN_SIZE / sizeof(u16) ] ATTRIBUTE_ALIGN(32);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: InitScreen
|
||||||
|
|
||||||
|
Description: 文字表示システムのために、表示設定を初期化する。
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void InitScreen(void)
|
||||||
|
{
|
||||||
|
// 各 V-RAM 初期化
|
||||||
|
GX_SetBankForLCDC(GX_VRAM_LCDC_ALL);
|
||||||
|
MI_CpuClearFast((void*)HW_LCDC_VRAM, HW_LCDC_VRAM_SIZE);
|
||||||
|
(void)GX_DisableBankForLCDC();
|
||||||
|
|
||||||
|
// OAM 初期化
|
||||||
|
MI_CpuFillFast((void*)HW_OAM, 0xc0, HW_OAM_SIZE);
|
||||||
|
MI_CpuFillFast((void*)HW_DB_OAM, 0xc0, HW_DB_OAM_SIZE);
|
||||||
|
|
||||||
|
// パレット初期化
|
||||||
|
MI_CpuClearFast((void*)HW_PLTT, HW_PLTT_SIZE);
|
||||||
|
MI_CpuClearFast((void*)HW_DB_PLTT, HW_DB_PLTT_SIZE);
|
||||||
|
|
||||||
|
// 上画面設定
|
||||||
|
GX_SetGraphicsMode(GX_DISPMODE_GRAPHICS, GX_BGMODE_0, GX_BG0_AS_2D);
|
||||||
|
|
||||||
|
GX_SetBankForBG(GX_VRAM_BG_128_A);
|
||||||
|
G2_SetBG0Control(GX_BG_SCRSIZE_TEXT_256x256, GX_BG_COLORMODE_16, GX_BG_SCRBASE_0x0000, GX_BG_CHARBASE_0x04000,
|
||||||
|
GX_BG_EXTPLTT_01);
|
||||||
|
G2_SetBG0Priority(0);
|
||||||
|
|
||||||
|
GX_SetVisiblePlane(GX_PLANEMASK_BG0);
|
||||||
|
GX_LoadBG0Char(d_CharData, 0, sizeof(d_CharData));
|
||||||
|
GX_LoadBGPltt(d_PaletteData, 0, sizeof(d_PaletteData));
|
||||||
|
((u16*)HW_PLTT)[0] = 0x0000; // black
|
||||||
|
MI_CpuFillFast(gScreen[0][0], 0, TEXT_SCREEN_SIZE);
|
||||||
|
DC_StoreRange(gScreen[0][0], TEXT_SCREEN_SIZE);
|
||||||
|
GX_LoadBG0Scr(gScreen[0][0], 0, TEXT_SCREEN_SIZE);
|
||||||
|
|
||||||
|
// 下画面設定
|
||||||
|
GX_SetBankForSubBG(GX_VRAM_SUB_BG_32_H);
|
||||||
|
G2S_SetBG0Control(GX_BG_SCRSIZE_TEXT_256x256, GX_BG_COLORMODE_16, GX_BG_SCRBASE_0x0000, GX_BG_CHARBASE_0x04000,
|
||||||
|
GX_BG_EXTPLTT_01);
|
||||||
|
G2S_SetBG0Priority(0);
|
||||||
|
GXS_SetGraphicsMode(GX_BGMODE_0);
|
||||||
|
GXS_SetVisiblePlane(GX_PLANEMASK_BG0);
|
||||||
|
GXS_LoadBG0Char(d_CharData, 0, sizeof(d_CharData));
|
||||||
|
GXS_LoadBGPltt(d_PaletteData, 0, sizeof(d_PaletteData));
|
||||||
|
((u16*)HW_DB_PLTT)[0] = 0x0000; // black
|
||||||
|
MI_CpuFillFast(gScreen[1][0], 0, TEXT_SCREEN_SIZE);
|
||||||
|
DC_StoreRange(gScreen[1][0], TEXT_SCREEN_SIZE);
|
||||||
|
GXS_LoadBG0Scr(gScreen[1][0], 0, TEXT_SCREEN_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: ClearScreen
|
||||||
|
|
||||||
|
Description: 画面のテキスト表示をクリアする。
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void ClearScreen(void)
|
||||||
|
{
|
||||||
|
MI_CpuClearFast(gScreen[0][0], TEXT_SCREEN_SIZE);
|
||||||
|
MI_CpuClearFast(gScreen[1][0], TEXT_SCREEN_SIZE);
|
||||||
|
}
|
||||||
|
void ClearMainScreen(void)
|
||||||
|
{
|
||||||
|
MI_CpuClearFast(gScreen[0][0], TEXT_SCREEN_SIZE);
|
||||||
|
|
||||||
|
}
|
||||||
|
void ClearSubScreen(void)
|
||||||
|
{
|
||||||
|
MI_CpuClearFast(gScreen[1][0], TEXT_SCREEN_SIZE);
|
||||||
|
}
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: PutMainScreen
|
||||||
|
|
||||||
|
Description: メイン画面にテキスト出力する。
|
||||||
|
|
||||||
|
Arguments: text - 出力する文字列。
|
||||||
|
... - 仮想引数。
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void PutMainScreen(s32 x, s32 y, u8 palette, char* text, ...)
|
||||||
|
{
|
||||||
|
va_list vlist;
|
||||||
|
char temp[33];
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
va_start(vlist, text);
|
||||||
|
(void)vsnprintf(temp, 33, text, vlist);
|
||||||
|
va_end(vlist);
|
||||||
|
|
||||||
|
for (i = 0; i < 32; i++)
|
||||||
|
{
|
||||||
|
if (temp[i] == 0x00)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
gScreen[0][0][((y * 32) + x + i) % (32 * 32)] = (u16) (palette << 12 | temp[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: PrintSubScreen
|
||||||
|
|
||||||
|
Description: サブ画面にテキスト出力する。
|
||||||
|
|
||||||
|
Arguments: text - 出力する文字列。
|
||||||
|
... - 仮想引数。
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void PutSubScreen(s32 x, s32 y, u8 palette, char* text, ...)
|
||||||
|
{
|
||||||
|
va_list vlist;
|
||||||
|
char temp[33];
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
va_start(vlist, text);
|
||||||
|
(void)vsnprintf(temp, 33, text, vlist);
|
||||||
|
va_end(vlist);
|
||||||
|
|
||||||
|
for (i = 0; i < 32; i++)
|
||||||
|
{
|
||||||
|
if (temp[i] == 0x00)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
gScreen[1][0][((y * 32) + x + i) % (32 * 32)] = (u16) (palette << 12 | temp[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: UpdateScreen
|
||||||
|
|
||||||
|
Description: 仮想スクリーンを V-RAM に反映する。
|
||||||
|
V ブランク期間中での呼び出しを想定。
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void UpdateScreen(void)
|
||||||
|
{
|
||||||
|
// 仮想スクリーンを V-RAM に反映
|
||||||
|
DC_StoreRange(gScreen[0][0], TEXT_SCREEN_SIZE);
|
||||||
|
GX_LoadBG0Scr(gScreen[0][0], 0, TEXT_SCREEN_SIZE);
|
||||||
|
DC_StoreRange(gScreen[1][0], TEXT_SCREEN_SIZE);
|
||||||
|
GXS_LoadBG0Scr(gScreen[1][0], 0, TEXT_SCREEN_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
End of file
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
@ -24,6 +24,7 @@ include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
|||||||
SUBDIRS = Jpeg \
|
SUBDIRS = Jpeg \
|
||||||
Wireless \
|
Wireless \
|
||||||
Internet \
|
Internet \
|
||||||
|
ApplicationJump \
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
55
debugsoft/ApplicationJumpTest/ReadMe.txt
Normal file
55
debugsoft/ApplicationJumpTest/ReadMe.txt
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
appjumpTest
|
||||||
|
|
||||||
|
アプリジャンプ機能をテストするためのアプリセットです。
|
||||||
|
========================================================
|
||||||
|
|
||||||
|
<概要> ===============================================
|
||||||
|
2種類のNAND アプリと 1種類のカードアプリで構成されます。
|
||||||
|
各アプリ間で、アプリジャンプの機能を一通り試すことができます。
|
||||||
|
アプリ間でのパラメータの受け渡し、ジャンプ元へのリターンも可能です。
|
||||||
|
|
||||||
|
|
||||||
|
<使い方> =============================================
|
||||||
|
2種類のNAND アプリを TWL にインポートした状態で、カードアプリを起動してください。
|
||||||
|
|
||||||
|
操作方法は、下画面下部に一覧表示されます。
|
||||||
|
ABXY ボタンがそれぞれに対応したターゲットへのアプリジャンプを実行します。
|
||||||
|
|
||||||
|
L/R ボタンで、アプリ間パラメータ(文字列データ)を次のジャンプ先へ渡すかどうかを
|
||||||
|
切り替えることができます(デフォルトは ON になっています)。
|
||||||
|
|
||||||
|
START ボタンを押すと、現在起動中のアプリ自身へのアプリジャンプを自動で繰り返すモードに入ります。
|
||||||
|
中断するには、起動後上画面にメッセージが出ている間(約2秒間)に START ボタンを押してください。
|
||||||
|
|
||||||
|
|
||||||
|
<画面の見方> ==========================================
|
||||||
|
・上画面について
|
||||||
|
起動中のアプリが 3種類の内どれかを色と文字で表します。
|
||||||
|
(黄:CARD、紫:NAND-1、水色:NAND-2)
|
||||||
|
|
||||||
|
APP JUMP -> 今までのアプリジャンプ実行回数です。
|
||||||
|
DELIVERED PARAM -> アプリ間パラメータ渡しをONにしている場合、ジャンプ元へのリターンも含めて
|
||||||
|
これまでのジャンプ元の履歴が 6つまで表示されます。
|
||||||
|
エラー表示 -> アプリジャンプに失敗した場合、赤字でエラーが表示されます。
|
||||||
|
エラー表示が出た場合、それ以上アプリの実行はできませんので再起動してください。
|
||||||
|
|
||||||
|
・下画面について
|
||||||
|
DELIVER ARG: (ON or OFF) -> アプリ間パラメータ渡しを有効にするかどうかのフラグの状態です。
|
||||||
|
L/R ボタンで ON/OFF を切り替えることができます。
|
||||||
|
AUTO JUMP TEST: (ON or OFF) -> 自分自身へのアプリジャンプを中断するまで繰り返すテストモードかどうかを示す値です。
|
||||||
|
操作方法一覧 -> 各ボタンの説明を表示しています。アプリによって、ボタンに割り当てられた
|
||||||
|
ジャンプ先が異なりますので注意してください。
|
||||||
|
ただし、ジャンプ元へのリターンは Bボタン、自分自身へのジャンプは Xボタン固定です。
|
||||||
|
|
||||||
|
<その他注意事項>
|
||||||
|
初回起動時(アプリジャンプを一度も実行していない状態)に、ジャンプ元へのリターンを行うと、
|
||||||
|
必ずエラーになります。
|
||||||
|
|
||||||
|
|
||||||
|
========================================================
|
||||||
|
なにか問題がありましたら、環境制作部 西本まで。
|
||||||
|
nishimoto_takashi@nintendo.co.jp
|
||||||
|
|
||||||
|
|
||||||
|
<更新履歴>============================================
|
||||||
|
2008/07/31 新規追加
|
||||||
BIN
debugsoft/ApplicationJumpTest/appjump_check_list_080801.xls
Normal file
BIN
debugsoft/ApplicationJumpTest/appjump_check_list_080801.xls
Normal file
Binary file not shown.
27
debugsoft/ApplicationJumpTest/資料.txt
Normal file
27
debugsoft/ApplicationJumpTest/資料.txt
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
appjumpTest
|
||||||
|
|
||||||
|
資料
|
||||||
|
========================================================
|
||||||
|
|
||||||
|
この手順でデバッグを行ってもらうと良いかもしれません。
|
||||||
|
|
||||||
|
(1) カードアプリから起動(NAND-1, NAND-2 はインポート済み)
|
||||||
|
(2) NAND-1 へのジャンプ(チェックシート No.1 に該当)
|
||||||
|
(3) NAND-2 へのジャンプ(同上)
|
||||||
|
(4) CARD へのジャンプ(同上)
|
||||||
|
|
||||||
|
(5) NAND-1 or NAND-2 へジャンプ(チェックシート No.2 に該当)
|
||||||
|
(6) ジャンプ元リターン(チェックシート No.3 に該当)
|
||||||
|
(7) START ボタンで自動ジャンプを行わせ、しばらく放置(チェックシート No.4 に該当)
|
||||||
|
|
||||||
|
(8) アプリジャンプ時に受け渡されるテキストデータが乱れたりしていないかをチェック
|
||||||
|
(チェックシート No.5 に該当)
|
||||||
|
(9) アプリジャンプ時に受け渡されるバイナリデータが壊れていたりしないかをチェック
|
||||||
|
(チェックシート No.6 に該当)
|
||||||
|
|
||||||
|
(10) 適当にジャンプ先やジャンプ方法を組み合わせて、しばらくチェック。
|
||||||
|
(チェックシート No.7 に該当)
|
||||||
|
|
||||||
|
|
||||||
|
<更新履歴>============================================
|
||||||
|
2008/08/01 新規追加
|
||||||
Loading…
Reference in New Issue
Block a user