aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/common/lib/hardware/i2c-eeprom-block.frt
diff options
context:
space:
mode:
Diffstat (limited to 'amforth-6.5/common/lib/hardware/i2c-eeprom-block.frt')
-rw-r--r--amforth-6.5/common/lib/hardware/i2c-eeprom-block.frt77
1 files changed, 0 insertions, 77 deletions
diff --git a/amforth-6.5/common/lib/hardware/i2c-eeprom-block.frt b/amforth-6.5/common/lib/hardware/i2c-eeprom-block.frt
deleted file mode 100644
index 22351fb..0000000
--- a/amforth-6.5/common/lib/hardware/i2c-eeprom-block.frt
+++ /dev/null
@@ -1,77 +0,0 @@
-\
-\ I2C EEPROM driver for BLOCK wordset
-\
-\ call i2c.ee.blockinit to activate the driver
-\ for the BLOCK words.
-
-#require blocks.frt
-#require bounds.frt
-#require i2c-eeprom.frt
-#require ms.frt
-
-\ select a eeprom module.
-\ the pages differ in size.
-\ do not overrun them
-#16 constant 24c08
-#16 constant 24c16
-#32 constant 24c32
-#32 constant 24c64
-#64 constant 24c128
-#64 constant 24c256
-#128 constant 24c512
-#256 constant 24c1024
-
-\ runtime configurable parameters, taken from or
-\ calculated in i2c.ee.blockinit. Never change them directly
-variable i2c.ee.hwid
-variable i2c.ee.pagesize
-variable i2c.ee.pages/block
-
-: i2c.ee.read-page ( addr len page hwid -- )
- dup i2c.begin
- swap i2c.ee.pagesize @ * i2c.ee.send-addr
- i2c.restart \ repeated start
- i2c.rd i2c.tx
- 1- bounds over >r ?do i2c.rx i c! loop
- i2c.rxn r> c! \ last byte
- i2c.end
-;
-
-: i2c.ee.load-buffer ( a-addr u -- ) \ BLOCK API
- 1- i2c.ee.pages/block @ * \ start address
- i2c.ee.pages/block @ bounds ?do
- dup i2c.ee.pagesize @ i i2c.ee.hwid @ i2c.ee.read-page
- i2c.ee.pagesize @ +
- loop drop
-;
-
-: i2c.ee.write-page ( addr len page hwid -- )
- i2c.begin
- i2c.ee.pagesize @ * i2c.ee.send-addr
- bounds ?do i c@ i2c.tx loop
- i2c.end 5 ms \ make sure the eeprom gets ready again
-;
-
-: i2c.ee.save-buffer ( a-addr u -- ) \ BLOCK API
- 1- i2c.ee.pages/block @ * \ start address
- i2c.ee.pages/block @ bounds ?do
- dup i2c.ee.pagesize @ i i2c.ee.hwid @ i2c.ee.write-page
- i2c.ee.pagesize @ +
- loop drop
-;
-
-\ adjust the page size and update the #pages per block buffer
-: i2c.ee.setpagesize ( 24cxx -- )
- blocksize over / i2c.ee.pages/block !
- i2c.ee.pagesize !
-;
-
-\ for turnkey
-\ does not initialize TWI/I2C interface! (i2c.init.default)
-: i2c.ee.blockinit ( pagesize hwid -- )
- block:init
- ['] i2c.ee.load-buffer is load-buffer
- ['] i2c.ee.save-buffer is save-buffer
- i2c.ee.hwid !
- i2c.ee.setpagesize
-;