     }
 }
 
-static void displayASCII(volatile uint8_t* data, byte count) {
+static void displayASCII (const uint8_t* data, byte count) {
     for (byte i = 0; i < count; ++i) {
-        if ((data[i] < 32) || (data[i] > 126))
-            {
-            showString(PSTR(" ."));
-            }
-        else
-            {
-                Serial.print(' ');
-                Serial.print((char) data[i]);
-            }
+        Serial.print(' ');
+        char c = (char) data[i];
+        Serial.print(c < ' ' || c > '~' ? '.' : c);
     }
     Serial.println();
 }

    byte collect_mode :1;   // 0 = ack, 1 = don't send acks
    byte quiet_mode   :1;   // 0 = show all, 1 = show only valid packets
    byte spare_flags  :4;  
    word frequency_offset;  // offset within band
    byte pad[RF12_EEPROM_SIZE-8];
    word crc;
} RF12Config;

        showString(PSTR(") "));
#endif
        Serial.println();
        if (config.hex_output > 1) { // also print a line as ascii
            showString(PSTR("ASC "));
            if (config.group == 0) {
                showString(PSTR(" II "));
            }
            Serial.print(rf12_hdr & RF12_HDR_DST ? '>' : '<');
            Serial.print((char) ('@' + (rf12_hdr & RF12_HDR_MASK)));
            displayASCII((const uint8_t*) rf12_data, n);
        }
        if (rf12_crc == 0) {
            activityLed(1);
#if !TINY
