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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
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
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
Sure , your point is the best one!
SAVE, LOAD, CHAIN, DSAVE, DLOAD, DCHAIN are implemented since version 0.8.
ESAVE, ELOAD, ECHAIN are available since 1.0-a1
After rethinking I'v decided this is unnecessary and these constructs simply use first I2C EEPROM zone.
Last edit: Andrey Skvortsov 2017-06-08