From 77be71faf20f56bc132e42ce6dbb008dd1d56842 Mon Sep 17 00:00:00 2001 From: meepingsnesroms Date: Wed, 4 Apr 2018 13:25:00 -0700 Subject: [PATCH] Hex viewer and nibble select working somewhat --- hwTestSuite/testSuite.c | 2 ++ hwTestSuite/tools.c | 28 +++++++++++++++------------- hwTestSuite/viewer.c | 13 +++++++++---- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/hwTestSuite/testSuite.c b/hwTestSuite/testSuite.c index 431194a..30e8050 100644 --- a/hwTestSuite/testSuite.c +++ b/hwTestSuite/testSuite.c @@ -35,6 +35,7 @@ var makeVar(uint8_t length, uint8_t type, uint64_t value){ var newVar; newVar.type = (length & 0xF0) | (type & 0x0F); newVar.value = value; + return newVar; } Boolean varsEqual(var var1, var var2){ if(var1.type == var2.type && var1.value == var2.value) @@ -195,6 +196,7 @@ var getSubprogramArgs(){ void setSubprogramArgs(var args){ subprogramArgs = args; + subprogramArgsSet = true; } var subprogramGetData(){ diff --git a/hwTestSuite/tools.c b/hwTestSuite/tools.c index d442bac..e9ed61c 100644 --- a/hwTestSuite/tools.c +++ b/hwTestSuite/tools.c @@ -6,38 +6,40 @@ var hexRamBrowser(){ static Boolean clearScreen = true; - static uint32_t nibble = 0;/*what column to change with up/down keys*/ + static uint32_t nibble = 0x10000000; static uint32_t pointerValue = UINT32_C(0x77777777);/*in the middle of the address space*/ static char hexString[100]; if(getButtonPressed(buttonUp)){ - pointerValue += 0x1 << (4 * (7 - nibble)); + pointerValue += nibble; + setDebugTag("Nibble Up"); } if(getButtonPressed(buttonDown)){ - pointerValue -= 0x1 << (4 * (7 - nibble)); - } - - if(getButtonPressed(buttonLeft)){ - if(nibble > 0) - nibble--; + pointerValue -= nibble; + setDebugTag("Nibble Down"); } if(getButtonPressed(buttonRight)){ - if(nibble < 7) - nibble++; + if(nibble > 0x00000001) + nibble >>= 4; + } + + if(getButtonPressed(buttonLeft)){ + if(nibble < 0x10000000) + nibble <<= 4; } if(getButtonPressed(buttonSelect)){ /*open hex viewer*/ - nibble = 0; + nibble = 0x10000000; clearScreen = true; - setSubprogramArgs(makeVar(LENGTH_ANY, TYPE_PTR, pointerValue));/*length doesnt matter*/ + setSubprogramArgs(makeVar(LENGTH_ANY, TYPE_PTR, (uint64_t)pointerValue));/*length doesnt matter*/ execSubprogram(hexViewer); } if(getButtonPressed(buttonBack)){ - nibble = 0; + nibble = 0x10000000; clearScreen = true; exitSubprogram(); } diff --git a/hwTestSuite/viewer.c b/hwTestSuite/viewer.c index 7d097eb..7f69039 100644 --- a/hwTestSuite/viewer.c +++ b/hwTestSuite/viewer.c @@ -79,9 +79,14 @@ static void hexHandler(uint32_t command){ /*fill strings*/ for(i = 0; i < ITEM_LIST_ENTRYS; i++){ uint32_t displayAddress = hexViewOffset - bufferAddress; - /*Palm OS sprintf only supports 16 bit ints*/ - StrPrintF(itemStrings[i], "0x%04X%04X:0x%02X", (uint16_t)(displayAddress >> 16), (uint16_t)displayAddress , readArbitraryMemory8(hexViewOffset)); - hexViewOffset++; + if(displayAddress + i < listLength){ + /*Palm OS sprintf only supports 16 bit ints*/ + StrPrintF(itemStrings[i], "0x%04X%04X:0x%02X", (uint16_t)(displayAddress >> 16), (uint16_t)displayAddress , readArbitraryMemory8(hexViewOffset)); + hexViewOffset++; + } + else{ + itemStrings[i][0] = '\0'; + } } } } @@ -98,7 +103,7 @@ static void testPickerHandler(uint32_t command){ StrNCopy(itemStrings[i], hwTests[i].name, ITEM_STRING_SIZE); } else{ - StrNCopy(itemStrings[i], "Test List Overflow", ITEM_STRING_SIZE); + itemStrings[i][0] = '\0'; } } }