Menu

Question about extEEPROM

2017-04-04
2017-04-04
  • Dmitry Oleynikov

    Hi,
    I am trying to make "hendheld" computer using your terminal-basic, as my hobby project. I took version 0.65 of sketch and changed it to work with my ZX-81-like keyboard and 1602 LCD on arduino nano. It's working, but it would be great to have support for i2c eeprom like 24c256 (32K). Unfortunately I have no C++ experience, so in most cases your code is like chinese philosofy books for me. Could you add this feature in one of next versions? Possibly just one module to write/read whole BASIC program memory at time to numbered area in EEPROM chip. So, to write current program to 3rd area, we say: SAVE 3. Same with LOAD 3 and CHAIN 3. No FORMAT and DELETE operation needed.
    Thank you.

    PS: logically area 0 could be internal EEPROM, which now is used by SAVE LOAD and so, without name, then areas from 1 to size of extEEPROM in external chip.

     

    Last edit: Dmitry Oleynikov 2017-04-04
  • Andrey Skvortsov

    It's worth to give a try to support I2C EEPROM modules.
    but I propose slightly different command set:

    • Language core commands, always available
      SAVE - save tokenized (non readable, but fast and compact) text to internal AVR EEPROM
      LOAD - load program from internal EEPROM, destroing the state (variables, arrays and stack)
      CHAIN - load program from internal EEPROM, preserving the state

    • SDFS module commands
      DSAVE <filename expression=""> - save program on SD card as plain text file
      DLOAD <filename expression=""> - load program from SD card, destroing the state
      DCHAIN <filename expression=""> load program from SD card, preserving the state

    • I2C external EEPROM module commands
      ESAVE <zone number="" (integer="" expression)=""> - save tokenized program to EEPROM zone
      ELOAD <zone number="" (integer="" expression)=""> - load program from EEPROM zone, destroing the state
      ECHAIN <zone number="" (integer="" expression)=""> - load program from EEPROM zone, preserving the state

    ESAVE 0 equivalent SAVE
    ELOAD 0 equivalent LOAD
    ECHAIN 0 equivalent CHAIN

     

    Last edit: Andrey Skvortsov 2017-04-05
  • Dmitry Oleynikov

    Sure , your point is the best one!

     
  • Andrey Skvortsov

    SAVE, LOAD, CHAIN, DSAVE, DLOAD, DCHAIN are implemented since version 0.8.

     
  • Andrey Skvortsov

    ESAVE, ELOAD, ECHAIN are available since 1.0-a1

    ESAVE 0 equivalent SAVE
    ELOAD 0 equivalent LOAD
    ECHAIN 0 equivalent CHAIN

    After rethinking I'v decided this is unnecessary and these constructs simply use first I2C EEPROM zone.

     

    Last edit: Andrey Skvortsov 2017-06-08

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.