From 67d25d837ac55f28a366c0a3b262e439a6e75fc3 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 19 Aug 2017 12:15:28 +0200 Subject: Add AmForth --- amforth-6.5/common/lib/hardware/mmc-test.frt | 96 ++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 amforth-6.5/common/lib/hardware/mmc-test.frt (limited to 'amforth-6.5/common/lib/hardware/mmc-test.frt') diff --git a/amforth-6.5/common/lib/hardware/mmc-test.frt b/amforth-6.5/common/lib/hardware/mmc-test.frt new file mode 100644 index 0000000..b69fd90 --- /dev/null +++ b/amforth-6.5/common/lib/hardware/mmc-test.frt @@ -0,0 +1,96 @@ +\ MMC+SD card - Lubos Pekny, www.forth.cz +\ Library for amforth 3.0, mFC modification +\ Max. 4GB no SDHC, access thru buffer 512B or short block or direct + +\ V.1.0, 16.07.2009, tested on atmega32, amforth30mFC12.zip +\ - used SPI (MOSI, MISO, SCK, SS) +\ mmc_init, mmc_CID, mmc_CSD, mmc_read, mmc_mread, mmc_write, +\ mmc_blk@, mmc_blk!, mmc_c@, mmc_c!, mmc_end?, mmc_end! + +hex + +\ ----- Test ----- + +mmc_init . \ init card +mmc_CID . 10 0 mmc. \ view 16B of mmc_buf +mmc_CSD . 10 0 mmc. + + +\ read +200 1234 0 mmc_read . \ read 512B from sect. 0:1234 +200 0 mmc. \ view buf + + +\ open+read, short block +100 1234 0 mmc_read . \ open sector 0:1234, read 256B +mmc_buf 100 + 100 mmc_blk@ \ read 256B, buf+offset 256B +200 0 mmc. \ view buf + + +\ open, short block +0 1234 0 mmc_read . \ open sector 0:1234 +mmc_buf 100 + 100 mmc_blk@ \ read 256B, buf+offset 256B +mmc_buf 100 mmc_blk@ \ read 256B, switched 256B +200 0 mmc. \ view buf + + +\ open, direct byte access +0 1234 0 mmc_read . \ open sector 0:1234 ++mmc +mmc_c@ . mmc_c@ . \ read 2 bytes from sector +1FE mmc_dummy \ read other 510 bytes +1FE mmc_#buf +! \ update counter +mmc_end? . \ if end of sector then crc dummy +-mmc + + +\ multiread +200 1234 0 mmc_mread . \ open,read 512B from sect. 1234 +200 0 mmc. \ view buf ++mmc +200 0 mmc_(read) . \ read 512B from sect. 1235 +200 0 mmc. \ view buf +200 0 mmc_(read) . \ read 512B from sect. 1236 +200 0 mmc. \ view buf +mmc_rstop . \ stop and -mmc + + +\ write +200 1234 0 mmc_read . +200 0 mmc. +ABBA mmc_buf ! \ change 2 bytes in buf +200 1234 0 mmc_write . \ write 512B to addr. 1234 +200 1234 0 mmc_read . +200 0 mmc. + + +\ open+write, short block +ACCA mmc_buf ! \ change 2 bytes in buf +ADDA mmc_buf 100 + ! \ change 2 bytes in buf +100 1234 0 mmc_write . \ open sector 1234, write 256B +mmc_buf 100 + 100 mmc_blk! . \ write 256B, buf+offset 256B +200 1234 0 mmc_read . +200 0 mmc. + + +\ open, direct byte access +0 1234 0 mmc_write . ++mmc +AE mmc_c! EA mmc_c! \ write 2 bytes to sector +1FE mmc_dummy \ write FF, 510x +1FE mmc_#buf +! \ update counter +mmc_end! . \ if end then wait while busy +-mmc +200 1234 0 mmc_read . +200 0 mmc. + + +\ multiwrite +ABCD mmc_buf ! +200 1234 0 mmc_mwrite . \ open,write 512B to sect. 1234 ++mmc +200 0 mmc_(mwrite) . \ write 512B to sect. 1235 +200 0 mmc_(mwrite) . \ write 512B to sect. 1236 +mmc_wstop . \ stop and -mmc + +\ end of file -- cgit v1.2.3