• Please review our updated Terms and Rules here
AK6DN
Reaction score
269

Profile posts Latest activity Postings About

  • Don,

    Do you still have any of the RX02 boards available?

    Is there a utility to transfer files from a PC to the SD card in the correct format for it to read it as a valid floppy or do I need a dual RX02 system: 1 with your emulator and the other with real RX02 drives to copy the disks across?

    Thanks

    Peter
    AK6DN
    AK6DN
    replied via DM
    Don,
    I found the problem, I Think, Its the new version of SDFAT 2.1.2. I now installed 1.1.4 and with no errors.
    Installed Arduino.cc 1.8.16 on an other WIN7 PC,fairly crispy new win install that pc is.(Just standard programs)
    First with SDFAT 2.1.2 I got a new type of failure of a wrong class in SDFAT.
    Reading again in your description I thought I
    do an install of an other version, so did 1.1.4, And that went well.
    That PrintF failure i did not get at all with this "new"pc.

    Mega 2560 is programmed successfully.

    I'll go see If I get the emulator going on my PDP8/M.
    Thanks for all your effort.
    Regards, Maurice
    AK6DN
    AK6DN
    I used SDFAT v1.1.4 for a while and it worked just fine. You should have no issues with it.
    I did upgrade to SDFAT v2.0.6 about 6 mos ago and it works fine too.
    I had to do a very minor tweak to my source file to make it compatible, that change is in the current sources.
    Good to hear you have a working compile and download going now. Have fun.
    I have not tried nor tested SDFAT v2.1.2 so it may be that they broke something else that needs fixing.
    Don,
    Checked several times , It is the right Dir, c:\Program (x86) etc.
    Here the failure report:
    Arduino:1.8.16 (Windows 7), Board:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

    C:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\sdcard_driver.cpp: In function 'uint8_t sd_initialize()':sdcard_driver.cpp:125:20: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? debugPort->printf(F("SD: libVersion=%d.%d.%d\n"), SD_FAT_VERSION/10000, (SD_FAT_VERSION/100)%100, SD_FAT_VERSION%100); ^~~~~~ printsdcard_driver.cpp:126:20: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? debugPort->printf(F("SD: cardType=SD%d\n"), ctype); ^~~~~~ printsdcard_driver.cpp:127:20: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? debugPort->printf(F("SD: cardSize=%luMB\n"), csize); ^~~~~~ printsdcard_driver.cpp:141:20: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? debugPort->printf(F("SD: volType=FAT%d\n"), vtype); ^~~~~~ printsdcard_driver.cpp:142:20: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? debugPort->printf(F("SD: volBytesPerCluster=%lu\n"), vbpc); ^~~~~~ printsdcard_driver.cpp:143:20: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? debugPort->printf(F("SD: volClusterCount=%lu\n"), vucc); ^~~~~~ printsdcard_driver.cpp:144:20: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? debugPort->printf(F("SD: volSizeBytes=%luMB\n"), vsize); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\sdcard_driver.cpp: In function 'uint32_t sd_set_file_size(char*, uint32_t, uint8_t)':sdcard_driver.cpp:350:12: error: 'SdFat {aka class SdFs}' has no member named 'truncate'; did you mean 'rename'? sdcard.truncate(name, size); ^~~~~~~~ renameC:\Users\Gova\Documents\Arduino\rx02_emulato r-1.95\source\rx02_emulator\rx02_driver.cpp: In function 'void rx_xmit_es()':rx02_driver.cpp:611:32: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("RX: %s rx_xmit_es(%04o)\n\n"), rx.fcn.name, rx.es); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\rx02_driver.cpp: In function 'void rx_initialize(uint8_t)':rx02_driver.cpp:755:32: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("RX: waiting for INIT to clear ... t=%lums\n"), millis()); ^~~~~~ printrx02_driver.cpp:757:32: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("RX: INIT has %scleared t=%lums\n"), rx_tst_init() ? "NOT " : "", millis()); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\rx02_driver.cpp: In function 'void rx_print_state(HardwareSerial*)':rx02_driver.cpp:9 70:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F("\n\n--- RX Emulator State Dump ---\n\n")); ^~~~~~ printrx02_driver.cpp:971:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" i/f width = %d.\n"), rx_get_bits()); ^~~~~~ printrx02_driver.cpp:972:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" i/f mode = %s\n"), rx_tst_dma() ? "DMA" : "PIO"); ^~~~~~ printrx02_driver.cpp:973:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" i/f init = %o\n"), rx_tst_init()); ^~~~~~ printrx02_driver.cpp:974:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" i/f run = %o\n"), rx_tst_run()); ^~~~~~ printrx02_driver.cpp:975:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F("\n")); ^~~~~~ printrx02_driver.cpp:976:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.cs = %06o\n"), rx.cs); ^~~~~~ printrx02_driver.cpp:977:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.es = %04o\n"), rx.es); ^~~~~~ printrx02_driver.cpp:978:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.ec = %04o\n"), rx.ec); ^~~~~~ printrx02_driver.cpp:979:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.wc = %03o\n"), rx.wc); ^~~~~~ printrx02_driver.cpp:980:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.tc = %03o\n"), rx.tc); ^~~~~~ printrx02_driver.cpp:981:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.ta = %03o\n"), rx.ta); ^~~~~~ printrx02_driver.cpp:982:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.sa = %03o\n"), rx.sa); ^~~~~~ printrx02_driver.cpp:983:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.pos = %lu.\n"), rx.pos); ^~~~~~ printrx02_driver.cpp:984:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.len = %u.\n"), rx.len); ^~~~~~ printrx02_driver.cpp:985:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.den = %c\n"), den_list[rx.den]); ^~~~~~ printrx02_driver.cpp:986:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.unit = %o\n"), rx.unit); ^~~~~~ printrx02_driver.cpp:987:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.type = RX0%d\n"), rx.type); ^~~~~~ printrx02_driver.cpp:988:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.cmdcnt = %u.\n"), rx.cmdcnt); ^~~~~~ printrx02_driver.cpp:989:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.errcnt = %u.\n"), rx.errcnt); ^~~~~~ printrx02_driver.cpp:990:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.timing = %o\n"), rx.timing); ^~~~~~ printrx02_driver.cpp:991:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.fcn.code = %o\n"), rx.fcn.code); ^~~~~~ printrx02_driver.cpp:992:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.fcn.name = %s\n"), rx.fcn.name); ^~~~~~ printrx02_driver.cpp:994:14: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F("\n")); ^~~~~~ printrx02_driver.cpp:995:14: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.drv[%d].name = '%s'\n"), i, rx.drv.name); ^~~~~~ printrx02_driver.cpp:996:14: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.drv[%d].mode = R%c\n"), i, rx.drv.mode == RX_FILE_READ_WRITE ? 'W' : 'O'); ^~~~~~ printrx02_driver.cpp:997:14: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.drv[%d].rdy = %c\n"), i, rx.drv.rdy ? 'Y' : 'N'); ^~~~~~ printrx02_driver.cpp:998:14: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.drv[%d].den = %c\n"), i, den_list[rx.drv.den]); ^~~~~~ printrx02_driver.cpp:999:14: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.drv[%d].ta = %03o\n"), i, rx.drv.ta); ^~~~~~ printrx02_driver.cpp:1000:14: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.drv[%d].sa = %03o\n"), i, rx.drv.sa); ^~~~~~ printrx02_driver.cpp:1001:14: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.drv[%d].pos = %lu.\n"), i, rx.drv.pos); ^~~~~~ printrx02_driver.cpp:1002:14: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F(" rx.drv[%d].len = %u.\n"), i, rx.drv.len); ^~~~~~ printrx02_driver.cpp:1004:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? prt->printf(F("\n")); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\rx02_driver.cpp: In function 'void rx_function()':rx02_driver.cpp:1047:32: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("RX: cmd=%04o\n"), rx.cs); ^~~~~~ printrx02_driver.cpp:1071:32: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("RX: %s unit=%o den=%c\n"), rx.fcn.name, rx.unit, den_list[rx.den]); ^~~~~~ printrx02_driver.cpp:1094:36: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("RX: %s wc=%03o\n"), rx.fcn.name, rx.wc); ^~~~~~ printrx02_driver.cpp:1101:40: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("RX: %s wc=%03o WCOVF\n"), rx.fcn.name, rx.wc); ^~~~~~ printrx02_driver.cpp:1151:50: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if ((i & 7) == 0) debugPort->printf(F("RX: %s %03o:"), rx.fcn.name, i); ^~~~~~ printrx02_driver.cpp:1152:50: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (rx_tst_8b()) debugPort->printf(F(" %03o"), value); else debugPort->printf(F(" %04o"), value); ^~~~~~ printrx02_driver.cpp:1152:93: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (rx_tst_8b()) debugPort->printf(F(" %03o"), value); else debugPort->printf(F(" %04o"), value); ^~~~~~ printrx02_driver.cpp:1153:50: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if ((i & 7) == 7) debugPort->printf(F("\n")); ^~~~~~ printrx02_driver.cpp:1156:61: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel >= 2 && (i & 7) != 0) debugPort->printf(F("\n")); ^~~~~~ printrx02_driver.cpp:1180:50: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if ((i & 7) == 0) debugPort->printf(F("RX: %s %03o:"), rx.fcn.name, i); ^~~~~~ printrx02_driver.cpp:1181:50: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (rx_tst_8b()) debugPort->printf(F(" %03o"), value); else debugPort->printf(F(" %04o"), value); ^~~~~~ printrx02_driver.cpp:1181:93: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (rx_tst_8b()) debugPort->printf(F(" %03o"), value); else debugPort->printf(F(" %04o"), value); ^~~~~~ printrx02_driver.cpp:1182:50: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if ((i & 7) == 7) debugPort->printf(F("\n")); ^~~~~~ printrx02_driver.cpp:1185:61: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel >= 2 && (i & 7) != 0) debugPort->printf(F("\n")); ^~~~~~ printrx02_driver.cpp:1187:28: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? debugPort->printf(F("RX: %s zero fill buffer %03o..%03o\n"), rx.fcn.name, j, rx_sec_size(rx.den)-1); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\rx02_emulator.ino: In function 'void run_command(char*)':rx02_emulator:193:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("\n")); ^~~~~~ printrx02_driver.cpp:1206:36: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("RX: %s sa=%03o\n"), rx.fcn.name, rx.sa); ^~~~~~ printrx02_driver.cpp:1210:36: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("RX: %s ta=%03o\n"), rx.fcn.name, rx.ta); ^~~~~~ printrx02_driver.cpp:1251:36: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("RX: %s pos=%lu. len=%u.\n"), rx.fcn.name, rx.pos, rx.len); ^~~~~~ printrx02_driver.cpp:1388:28: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? debugPort->printf(F("RX: %s Word%d: %03o %03o\n"), rx.fcn.name, 1, rx.wc, rx.ec); ^~~~~~ printrx02_driver.cpp:1389:28: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? debugPort->printf(F("RX: %s Word%d: %03o %03o\n"), rx.fcn.name, 2, rx.drv[RX_UNIT_MAX].ta, rx.drv[RX_UNIT_MIN].ta); ^~~~~~ printrx02_driver.cpp:1390:28: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? debugPort->printf(F("RX: %s Word%d: %03o %03o\n"), rx.fcn.name, 3, rx.sa, rx.ta); ^~~~~~ printrx02_driver.cpp:1391:28: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? debugPort->printf(F("RX: %s Word%d: %03o %03o\n"), rx.fcn.name, 4, rx.drv[rx.unit].ta, value); ^~~~~~ printrx02_emulator:206:26: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Updated file: '%s' to %lu. bytes\n"), arg, size); ^~~~~~ printrx02_emulator:209:26: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Updated file: '%s' to %lu. bytes\n"), arg, size); ^~~~~~ printrx02_emulator:211:22: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Setting file[%d]: '%s'\n"), i, rx_unit_file(i, arg)); ^~~~~~ printrx02_emulator:214:26: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("WARNING: file size not SD or DD ... use E/F command to correct!\n")); ^~~~~~ printrx02_emulator:216:26: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("WARNING: file size DD mounted in mode RX01!\n")); ^~~~~~ printrx02_emulator:219:22: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Current file[%d]: '%s'\n"), i, rx_unit_file(i)); ^~~~~~ printrx02_emulator:228:26: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Unchanged file: '%s' is %lu. bytes (use F command)\n"), arg, size); ^~~~~~ printrx02_emulator:230:26: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Unchanged file: '%s' is %lu. bytes (SD)\n"), arg, size); ^~~~~~ printrx02_emulator:233:26: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Extended file: '%s' to %lu. bytes (SD)\n"), arg, size); ^~~~~~ printrx02_emulator:236:26: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Truncated file: '%s' to %lu. bytes (SD)\n"), arg, size); ^~~~~~ printrx02_emulator:246:26: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Unchanged file: '%s' is %lu. bytes (use E command)\n"), arg, size); ^~~~~~ printrx02_emulator:248:26: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Unchanged file: '%s' is %lu. bytes (DD)\n"), arg, size); ^~~~~~ printrx02_emulator:251:26: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Extended file: '%s' to %lu. bytes (DD)\n"), arg, size); ^~~~~~ printrx02_emulator:254:26: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Truncated file: '%s' to %lu. bytes (DD)\n"), arg, size); ^~~~~~ printrx02_emulator:264:22: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Setting file[%d] mode: %s\n"), i, access_mode[j]); ^~~~~~ printrx02_emulator:273:22: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Setting file[%d] mode: %s\n"), i, access_mode[j]); ^~~~~~ printrx02_emulator:280:22: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Removed file: '%s'\n"), arg); ^~~~~~ printrx02_emulator:282:31: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (arg) tty->printf(F("No such file\n")); ^~~~~~ printrx02_emulator:289:22: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Current file[%d]: '%s' (%s)\n"), i, rx_unit_file(i), access_mode[rx_unit_mode(i)]); ^~~~~~ printrx02_emulator:301:22: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Setting emulation mode: %d (%s)\n"), i, drive_mode); ^~~~~~ printrx02_emulator:304:22: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Current emulation type: %d (%s)\n"), i, drive_mode); ^~~~~~ printrx02_emulator:312:22: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Setting debug mode: %d (%s)\n"), i, debug_mode); ^~~~~~ printrx02_emulator:315:22: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Current debug mode: %d (%s)\n"), i, debug_mode); ^~~~~~ printrx02_emulator:323:22: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Setting timing mode: %d (%s)\n"), i, timing_mode); ^~~~~~ printrx02_emulator:326:22: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Current timing mode: %d (%s)\n"), i, timing_mode); ^~~~~~ printrx02_emulator:337:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Sending INIT ...\n")); ^~~~~~ printrx02_emulator:339:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("... INIT complete\n")); ^~~~~~ printrx02_emulator:371:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("\nCommands available:\n\n")); ^~~~~~ printrx02_emulator:372:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" 0 FILENAME -- set unit 0 file to FILENAME; default RX0.DSK\n")); ^~~~~~ printrx02_emulator:373:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" file name 'none' (any case) for no disk present\n")); ^~~~~~ printrx02_emulator:374:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" 1 FILENAME -- set unit 1 file to FILENAME; default RX1.DSK\n")); ^~~~~~ printrx02_emulator:375:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" file name 'none' (any case) for no disk present\n")); ^~~~~~ printrx02_emulator:376:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" y(es) N -- set unit N file read-write (default)\n")); ^~~~~~ printrx02_emulator:377:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" n(o) N -- set unit N file read-only\n")); ^~~~~~ printrx02_emulator:378:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" m(ode) N -- set emulation mode, 0=RX01+RX11, 1=RX01+RX8E, ")); ^~~~~~ printrx02_emulator:379:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("2=RX02+any; default 2\n")); ^~~~~~ printrx02_emulator:380:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" d(ebug) N -- debug level, 0=none, 3=max; default 1\n")); ^~~~~~ printrx02_emulator:381:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" t(iming) N -- timing mode, 0=fast, 1=medium, 2=normal; default 0\n")); ^~~~~~ printrx02_emulator:382:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" 0 as fast as possible; 2 simulates real RX02 drive\n")); ^~~~~~ printrx02_emulator:383:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" r FILENAME -- remove file FILENAME\n")); ^~~~~~ printrx02_emulator:384:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" e FILENAME -- extend/truncate file FILENAME to single density size\n")); ^~~~~~ printrx02_emulator:385:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" f FILENAME -- extend/truncate file FILENAME to double density size\n")); ^~~~~~ printrx02_emulator:386:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" l(ist) -- list all files on the SD card\n")); ^~~~~~ printrx02_emulator:387:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" s(how) -- show current unit filename assignments\n")); ^~~~~~ printrx02_emulator:388:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" p(rint) -- print full emulation state\n")); ^~~~~~ printrx02_emulator:389:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" i(nit) -- initialize emulator (like unibus INIT)\n")); ^~~~~~ printrx02_emulator:390:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" w(rite) -- write current configuration into the SETUP.INI file\n")); ^~~~~~ printrx02_emulator:395:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F(" h(elp) -- display this text\n")); ^~~~~~ printrx02_emulator:396:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("\nNote: chars in () are optional. Case does not matter.\n")); ^~~~~~ printrx02_emulator:401:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("?Unknown command?\n")); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\rx02_emulator.ino: In function 'void run_user(char)':rx02_emulator:430:18: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("^U\n")); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\rx02_emulator.ino: In function 'void setup_write(char*)':rx02_emulator:552:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Generating setup file '%s'\n"), name); ^~~~~~ printrx02_emulator:557:14: error: 'File {aka class FsFile}' has no member named 'printf'; did you mean 'print'? init.printf(F("%d %s\n"), i, rx_unit_file(i)); ^~~~~~ printrx02_emulator:558:14: error: 'File {aka class FsFile}' has no member named 'printf'; did you mean 'print'? init.printf(F("%c %d\n"), rx_unit_mode(i) == RX_FILE_READ_ONLY ? 'N' : 'Y', i); ^~~~~~ printrx02_emulator:560:10: error: 'File {aka class FsFile}' has no member named 'printf'; did you mean 'print'? init.printf(F("D %d\n"), rx_debug()); ^~~~~~ printrx02_emulator:561:10: error: 'File {aka class FsFile}' has no member named 'printf'; did you mean 'print'? init.printf(F("M %d\n"), rx_emulation_type()); ^~~~~~ printrx02_emulator:562:10: error: 'File {aka class FsFile}' has no member named 'printf'; did you mean 'print'? init.printf(F("T %d\n"), rx_timing_type()); ^~~~~~ printrx02_emulator:563:10: error: 'File {aka class FsFile}' has no member named 'printf'; did you mean 'print'? init.printf(F("S\n")); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\rx02_emulator.ino: In function 'void setup_read(char*)':rx02_emulator:582:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Processing setup file '%s' ...\n"), name); ^~~~~~ printrx02_emulator:590:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("... setup file processing complete!\n\n")); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\rx02_emulator.ino: In function 'void setup()':rx02_emulator:608:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("RX02 Emulator %s (IDE %u.%u.%u/gcc %s) - %s - %s\n"), ^~~~~~ printrx02_emulator:618:14: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Valid MicroSD card detected.\n")); ^~~~~~ printrx02_emulator:623:14: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("No valid MicroSD card detected.\n")); ^~~~~~ printrx02_emulator:664:10: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? tty->printf(F("Initialization complete.\n")); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\tu58_driver.cpp: In function 'void tu_initialize(uint32_t, HardwareSerial*)':tu58_driver.cpp:213:36: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("TU58: Warning, tu58 serial buffer is too small at %d.; should be at least %d. bytes\n"), size, 250); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\tu58_driver.cpp: In function 'int8_t tu_init()':tu58_driver.cpp:258:39: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("TU58: tu_init sending <INIT><INIT>\n")); ^~~~~~ printtu58_driver.cpp:260:39: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("TU58: tu_init <INIT><INIT> sent!\n")); ^~~~~~ printtu58_driver.cpp:266:42: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("TU58: tu_init received 0x%02X\n"), c); ^~~~~~ printtu58_driver.cpp:269:46: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("TU58: tu_init SUCCESS\n")); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\tu58_driver.cpp: In function 'int8_t tu_diag()':tu58_driver.cpp:301:32: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("TU58: tu_diag status=%d\n"), sts); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\tu58_driver.cpp: In function 'int8_t tu_nop()':tu58_driver.cpp:324:32: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("TU58: tu_nop status=%d\n"), sts); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\tu58_driver.cpp: In function 'int8_t tu_seek(uint8_t, uint16_t)':tu58_driver.cpp:350:32: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("TU58: tu_seek unit=%d block=%u status=%d\n"), unit, blknum, sts); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\tu58_driver.cpp: In function 'int8_t tu_read(uint8_t, uint16_t, uint16_t, uint8_t*)':tu58_driver.cpp:381:32: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("TU58: tu_read unit=%d block=%u count=%u status=%d\n"), unit, blknum, count, sts); ^~~~~~ printtu58_driver.cpp:389:39: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("TU58: tu_read bytes=%u\n"), cnt); ^~~~~~ printC:\Users\Gova\Documents\Arduino\rx02_emulator-1.95\source\rx02_emulator\tu58_driver.cpp: In function 'int8_t tu_write(uint8_t, uint16_t, uint16_t, uint8_t*)':tu58_driver.cpp:449:32: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("TU58: tu_write unit=%d block=%u count=%u status=%d\n"), unit, blknum, count, sts); ^~~~~~ printtu58_driver.cpp:457:35: error: 'class HardwareSerial' has no member named 'printf'; did you mean 'print'? if (debugLevel) debugPort->printf(F("TU58: tu_write bytes=%u\n"), cnt); ^~~~~~ printexit status 1'class HardwareSerial' has no member named 'printf'; did you mean 'print'?

    Dit rapport zou meer informatie bevatten met
    "Uitgebreide uitvoer weergeven tijden compilatie"
    optie aan in Bestand -> Voorkeuren.
    Thing attachments *.zip will not upload. Here is the complete MOD PRINT.h I made:
    --------------------
    /*
    Print.h - Base class that provides print() and println()
    Copyright (c) 2008 David A. Mellis. All right reserved.

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
    */

    #ifndef Print_h
    #define Print_h

    #include <inttypes.h>
    #include <stdio.h> // for size_t

    #include "WString.h"
    #include "Printable.h"

    #define DEC 10
    #define HEX 16
    #define OCT 8
    #ifdef BIN // Prevent warnings if BIN is previously defined in "iotnx4.h" or similar
    #undef BIN
    #endif
    #define BIN 2

    class Print
    {
    private:
    int write_error;
    size_t printNumber(unsigned long, uint8_t);
    size_t printFloat(double, uint8_t);
    protected:
    void setWriteError(int err = 1) { write_error = err; }
    public:
    Print() : write_error(0) {}

    int getWriteError() { return write_error; }
    void clearWriteError() { setWriteError(0); }

    virtual size_t write(uint8_t) = 0;
    size_t write(const char *str)
    {
    if (str == NULL) return 0;
    return write((const uint8_t *)str, strlen(str));
    }
    virtual size_t write(const uint8_t *buffer, size_t size);
    size_t write(const char *buffer, size_t size)
    {
    return write((const uint8_t *)buffer, size);
    }

    // default to zero, meaning "a single write may block"
    // should be overriden by subclasses with buffering
    virtual int availableForWrite() { return 0; }

    size_t print(const __FlashStringHelper *);
    size_t print(const String &);
    size_t print(const char[]);
    size_t print(char);
    size_t print(unsigned char, int = DEC);
    size_t print(int, int = DEC);
    size_t print(unsigned int, int = DEC);
    size_t print(long, int = DEC);
    size_t print(unsigned long, int = DEC);
    size_t print(double, int = 2);
    size_t print(const Printable&);

    size_t println(const __FlashStringHelper *);
    size_t println(const String &s);
    size_t println(const char[]);
    size_t println(char);
    size_t println(unsigned char, int = DEC);
    size_t println(int, int = DEC);
    size_t println(unsigned int, int = DEC);
    size_t println(long, int = DEC);
    size_t println(unsigned long, int = DEC);
    size_t println(double, int = 2);
    size_t println(const Printable&);
    size_t println(void);

    virtual void flush() { /* Empty implementation for backward compatibility */ }

    #include <stdarg.h>
    #define PRINTF_BUF 80 // define the tmp buffer size (change if desired)

    void printf(const char *format, ...)
    {
    char buf[PRINTF_BUF];
    va_list ap;
    va_start(ap, format);
    vsnprintf(buf, sizeof(buf), format, ap);
    for(char *p = &buf[0]; *p; p++) // emulate cooked mode for newlines
    {
    if(*p == '\n')
    write('\r');
    write(*p);
    }
    va_end(ap);
    }

    #ifdef F // check to see if F() macro is available
    void printf(const __FlashStringHelper *format, ...)
    {
    char buf[PRINTF_BUF];
    va_list ap;
    va_start(ap, format);
    #ifdef __AVR__
    vsnprintf_P(buf, sizeof(buf), (const char *)format, ap); // progmem for AVR
    #else
    vsnprintf(buf, sizeof(buf), (const char *)format, ap); // for the rest of the world
    #endif
    for(char *p = &buf[0]; *p; p++) // emulate cooked mode for newlines
    {
    if(*p == '\n')
    write('\r');
    write(*p);
    }
    va_end(ap);
    }
    #endif
    };

    #endif
    AK6DN
    AK6DN
    Ok, your file basically compares exactly (some minor whitespace differences) to what I have in my arduino directory.
    So the next question would be are you placing the modified file in the correct folder in your arduino tree?
    And what error messages are you getting?
    Hi Don, Thanks again for your effort looking into my compilation problem.
    I did a complete reinstall Of Arduino.cc,new Download of SdFat-Master,Unzipped Renamed in SdFAt and put whole dir into Local Arduino Library. So indeed after startup , SdFat Shown into Library listing, see attached photo. Than made new Print.h (In the zip file) Also there is the complete compile error listing.txt. As I count the { and } in Print.h ,I think I put your program into the right spot.
    Typical it would not compile.
    Thanks for the help,
    Maurice Hamm.Netherlands.
    AK6DN
    AK6DN
    i can't read that image. all I can access is a tiny thumbnail that is illegible.
    Hi Don, Maurice Hamm, Netherlands here. I am trying to compile you RX02 Emulation software 1.95 for the Arduino MEGA 2560.
    I am using Arduino .cc software ver 1.8.16 . But I am keeping printf failure in Class HardwareSerial.
    "class HardwareSerial has no member named printf. I did put your program list into the class Print.h.
    Also put it in HardwareSerial.h, but no luck. I put both files in the attachment. What I'm doing wrong? Did try to find the solution in the ;#endif statement as that should be marked as end of total class file. But I am no expert in the Arduino, been long time since I programed C++. Did update the library's with SDFAT and Time as you mentioned. Thanks, Regards Maurice
    AK6DN
    AK6DN
    Well, I know it works with v1.8.15 so you might try using that: https://www.arduino.cc/en/Main/OldSo...eases#previous
    The changes listed for v1.8.16 in the release notes are largely irrelevant.

    I assume you are following the directions listed here: https://github.com/AK6DN/rx02_emulat...-configuration
    I have had no other users have an issues following these, it there is something not clear to you let me know.
    The ONLY file you should need to modify is "Print.h" in the Arduino install tree, in this folder:
    %ProgramFiles(x86)%\Arduino\hardware\arduino\avr\cores\arduino\
    The file Hardware.h should not have any changes made to make printf be a valid method.
    Don

    PS I will download and install the upgrade to v1.8.16 and see if the modification procedure needs to be changed. It is possible.
  • Loading…
  • Loading…
  • Loading…
Back
Top