Topics

Membership external storage #Homebrew #Electronics

mister35mm
 

Can you add cassette, mp3 or sd card storage to the membership card.

Regards

Stephen G7VFY

bill rowe
 

You can certainly hook up an SD card and access it over SPI.  The biggest issue is the FAT file system which you kind of need to transfer files from a PC.  I'm sure others have done cassette-substitutes.
https://olduino.wordpress.com/2013/11/27/playing-sd-cards-on-hardware-mountain/
https://olduino.wordpress.com/2013/12/26/olduinochristmas-card-sd-card-and-lcd/
Once the SD card was working combining it with the LCD was dead easy. You can see the result on youtube:  The olduino is reading a bitmap file from the SD card and writing it to the LCD – eas…
olduino.wordpress.com




From: cosmacelf@groups.io <cosmacelf@groups.io> on behalf of mister35mm via Groups.Io <mister35mm@...>
Sent: January 14, 2020 5:06 AM
To: cosmacelf@groups.io <cosmacelf@groups.io>
Subject: [cosmacelf] Membership external storage #Electronics #Homebrew
 
Can you add cassette, mp3 or sd card storage to the membership card.

Regards

Stephen G7VFY




--
Bill Rowe
Olduino - an arduino for the first of us
https://olduino.wordpress.com/about-2/about/

ajparent1/kb1gmx
 

With SD or uSD cards FAT is so the big PC machine can read it.

You have the option of just writing blocks and using Rawread (DD or similar)
to get them.  Same as one would using CF or other media.

I'm not a fan of FAT for small stuff as its really large code and awkward.  Tiny fat
helps but it still eats space.  Its easier to teach the PC how to works a simple
file system (like bag and tag).  the alternate is a Nano with SD adapter and
code to run FAT as a go between.

Allison

ajparent1/kb1gmx
 

Cassette is easier, just take the Q output and add attenuator and cap to match input level
of tape recorder and a simple transistor amp on the EF(1 though 4 depending on monitor)
from the  earphone output to the speaker.

That also worked for Ipods, computer sound file in and out or similar.

Allison

Lee Hart
 

Stephen mister35mm wrote:
Can you add cassette, mp3 or sd card storage to the membership card.
All of these are possible. It's been done on other 1802 computers, so it can be done on the 1802MC. I think I'd do it by putting it on a separate I/O board, to be use either in place of, or in addition to the Front Panel board.

Other ideas that have been suggested for a new I/O board include:

- UART
- hex display
- hex keypad
- SPI port

What do others think?

--
Ring the bells that still can ring
Forget your perfect offering
There is a crack in everything
That's how the light gets in.
-- Leonard Cohen, from "Anthem"
--
Lee Hart, 814 8th Ave N, Sartell MN 56377, www.sunrise-ev.com

cmdrcosmac
 


Ideas about I/O expansion...

 The Membership card CPU board layout is a bit inconvenient to connect to an expansion
board. About the best way I can see to do it is to put a 40-pin wire-wrap socket under
the CPU to get the address and data busses and the interrupt, DMA and timing pulses.
 The MC input and output ports are taken from the P1 connector. Connectors to mate with
the CPU socket and the P1 connector are placed on a PCB that the modded MC mainboard
then plugs onto. This board then has connectors for expansion boards, keyboard,etc.

 For the keyboard... Given that hex > 7-seg decoders are almost extinct and that EEPROMs
roam the Earth in vast numbers, and that the 0000-start program loading of the classical
Elf is clumsy, I propose using the UT5/Microterminal arrangement as shown in RCA's MPM-212.
 UT5 is no more difficult to use than the classical Elf and allows you to examine and load
addresses directly and run from any address. You could even put IDIOT or MCSMP in the
EEPROM above UT5. (You might have to move UT5's scratchpad though.)
 In the MC we already have one IN and one OUT port so we need to add one IN port plus
the rest of the Microterminal. Probably cheaper than the 9368's and the 74C922.
 
 SPI Port... Interesting. I don't know enough about the protocol except that it is
used with many peripheral chips these days. Worth looking into.

 UART... Not as necessary as I had thought. Upping the CPU clock got me nearly the
throughput that the UART did.

 External storage... I have a program on the PC that sends ?Maaaa to IDIOT and saves
the memory dump to a file and then  sends !M followed by the saved dump file back to
IDIOT. At 9600 Bd. it's not inconveniently slow.

-Chuck

Tor-Eirik Lunde
 

It's not on the ELF,  just need an address latch I think, though have been using a Nano to upload programs to my KIM-1. It's got some small issues of corrupting randomly, but on the plus-side the speed makes you feel like it's coming from tape 😅

It's an easy to understand process as it's just a serial terminal on the PC, I just paste the hex files directly into the window. Probably wouldn't have to update the Arduino sketch.


ons. 15. jan. 2020, 06:34 skrev cmdrcosmac <cmdrcosmac@...>:


Ideas about I/O expansion...

 The Membership card CPU board layout is a bit inconvenient to connect to an expansion
board. About the best way I can see to do it is to put a 40-pin wire-wrap socket under
the CPU to get the address and data busses and the interrupt, DMA and timing pulses.
 The MC input and output ports are taken from the P1 connector. Connectors to mate with
the CPU socket and the P1 connector are placed on a PCB that the modded MC mainboard
then plugs onto. This board then has connectors for expansion boards, keyboard,etc.

 For the keyboard... Given that hex > 7-seg decoders are almost extinct and that EEPROMs
roam the Earth in vast numbers, and that the 0000-start program loading of the classical
Elf is clumsy, I propose using the UT5/Microterminal arrangement as shown in RCA's MPM-212.
 UT5 is no more difficult to use than the classical Elf and allows you to examine and load
addresses directly and run from any address. You could even put IDIOT or MCSMP in the
EEPROM above UT5. (You might have to move UT5's scratchpad though.)
 In the MC we already have one IN and one OUT port so we need to add one IN port plus
the rest of the Microterminal. Probably cheaper than the 9368's and the 74C922.
 
 SPI Port... Interesting. I don't know enough about the protocol except that it is
used with many peripheral chips these days. Worth looking into.

 UART... Not as necessary as I had thought. Upping the CPU clock got me nearly the
throughput that the UART did.

 External storage... I have a program on the PC that sends ?Maaaa to IDIOT and saves
the memory dump to a file and then  sends !M followed by the saved dump file back to
IDIOT. At 9600 Bd. it's not inconveniently slow.

-Chuck

fourstix@...
 

Hi Lee,

I would vote for an expansion card with SPI and I2C.  I think I2C would support more peripherals than UART nowadays, but then there's no law that says one can't provide all three, UART, SPI and I2C.  Sparkfun does that a lot.

With these I2C and SPI protocols one can add most of the components available for Arduinos and Raspberry Pi easily.  If you want to really be fancy, you could do 3.3v I2C to a Qwiic connector and then many popular breakout boards sold by Sparkfun and Adafruit would just plug in.

Here's a shot of a membership card with two Adafruit 7 Segment LED backpacks, one for databus the other for the address bus, as outputs plus a Sparkfun Qwiic Keypad for input.  All are using I2C.  The wiring is a bit of overkill, because I'm not multiplexing anything.  One the other hand, it was really easy to wire up.



Gaston

ajparent1/kb1gmx
 

I'm building a board for the MC and the goal is 1854 uart for fast serial
(up to 115kb) and SPI for bulk (sd) memory plus parallel for a 2x40 LCD.

The easy way is a DIP wire wrap socket for the 1802 as then the long pins
can extend to a board under the MC.  the alternate is a 1802 carrier board
with the IO on it that plugs into the 1802 spot on the MC.  Works the same
save for which is on top and that may make a difference if your using the
MC display and switch card.

Allison

Stuart Remphrey
 

It would be very interesting to hear how you go, Allison (especially on the SPI front).

ajparent1/kb1gmx
 

It will be simple and software intense...  A lot of people in the Arduino realm
do it and more than a few Z80 and others have so its known.  Saves me work.
Spi is three wires for data,  the 4th is chip select (always selected) and the 5th is
3.3V power and 6th is ground.   One wire is a clock, data in and data out.  The
rest is software to wiggle the lines and implement the command protocal for the
SD.  A triad of fets are needed to match the 5V (ELF/MC or NAno) to the
3.3.v SD.

That said the easy way out is a Arduino nano with sd board and a
enough code to do fat.  Somr fo the SD boards (shields) have the
level translator some don't.  Then interface that as a serial device
with a protocol to transfer blocks.

SD is handy for large amounts of storage (smallest is 1gb if you can find one)

For smaller there are EEproms with a one or two wire interface (i2C)
available from a few bits to several megabits.
Parallel interfaces EEproms in the 2kB to 256kB sizes are also possible
if that is enough space for storage.  OT if more is needed CF can be found
in the 32mb to 1gb sizes.

I've done much of that on Z80 and Arduino before.  What I plan to do with it
is a whole other story and step wise much later.  I use SPI with Arduino to
talk to A DDS (numerical oscillator).  

The big deal is not having storage but the ability to use it.  Right now the MC
has no OS and no concept of storage as in a file system on mass storage
of any form.  Same for TB..  I ignore audio cassette as that's a write to
something read from something and largely bulk like paper tape on a TTY.

For serious elf users the Riley's Micro elf or Elf-2000 have covered this ground
already and ELF-OS is there to use.    Also maybe RCA's MicroDos.

Allison

David Schultz
 

On 1/15/20 8:37 PM, ajparent1/kb1gmx wrote:

SD is handy for large amounts of storage (smallest is 1gb if you can
find one)
I have some old 128MB micro-SD cards and even a 64MB MMC card.

The software is pretty simple but the details on initializing the cards
has changed over the years.

--
https://web.archive.org/web/20190214181851/http://home.earthlink.net/~david.schultz/
(Web pages available only at the Wayback Machine because Earthlink
terminated that service.)

cmdrcosmac
 


>> I'm building a board for the MC and the goal is 1854 uart for fast serial...
 What will you be doing on the 1802 that needs/can handle 115kbps?

>> The easy way is a DIP wire wrap socket for the 1802 as then the long pins
>> can extend to a board under the MC.
 That's probably the best way to deal with this. The UART, I/O group selector, etc.
can then go on the lower board. You can put off to the side a connector that mates
with the J1 on the MC switch board, and use standoffs to bolt the switch board
to the expansion board by the holes under the 25-pin connector.

>> OT if more is needed CF can be found in the 32mb to 1gb sizes.
Note that the Elf2K used a CF card. Its interface is simple and the code is available.
After studying the listing for UT71 it seems feasible to replace the lo-level disk
routines with something to run a CF card. This would eliminate the FDC system, and
allow to run ElfOs or UT71/Microdos on the same hardware. The CF card uses the same
ATA protocol that ATA/IDE hard drives do.
I am not familiar with the SD card's protocol but it seems likely that you would have
all the issues of CF or parallel EEPROM plus the bit-banger to talk i2c or SPI.
I'll read up on the SD Card interface.-good tip.

-Chuck
 

Stuart Remphrey
 

> ...UT71 it seems feasible to replace the lo-level disk routines with something to run a CF card.
> This would eliminate the FDC system, and allow to run ElfOs or UT71/Microdos on the same hardware.
Wow, now that's quite appealing.
Maybe I'd better get in on Lee's 1802MC CPU PCB offer quick (still on? my BGmicro CPUs just arrived);
or perhaps one of the PCB designs based on the Microboard bus would avoid the CPU-socket-extension workaround...

Hmm, so, the CompactFlash Card is a nice simple parallel/ATA interface, interesting...
(will CF, as media, be on their way out? availability/lifetime OK? Connector availability?)
* Using PIO or DMA?

Whereas, SPI "is current" (is that good or bad, here?!) -- irrespective, attractive as there are so many devices available.
While SPI does megabits the 1802 as master can bit-bang the sync clock and run at the CPUs pace.
Although, there's SPI & I2C "port expanders" which act as slaves, CPU-serial<=>parallel-GPIO/whatever;
is there anything (simple) for the reverse (UART-like): CPU-parallel<=>serial-SPIbus-device?...
(if so: is that worth avoiding bit-bang overhead, i.e. close-to-floppy performance achievable to SDcard?)
(if not: a fixed-function ATtinyXX, MSP430, ... could translate: but at a catastrophic loss of retro-quanta?)
SDcards seem ideal on the surface; though I've heard they can be quite finicky, but not experienced that myself.

Other thoughts?

-- Stuart.

David Schultz
 

On 1/15/20 11:33 PM, cmdrcosmac wrote:

I am not familiar with the SD card's protocol but it seems likely that
you would have
all the issues of CF or parallel EEPROM plus the bit-banger to talk i2c
or SPI.
I'll read up on the SD Card interface.-good tip.
Talking to an SD card is pretty easy and I have done it several times.
My most recent SPI effort is here:

http://home.earthlink.net/~schultdw/msp430/eforth/sd/sd.S.gz

You will have to fight the weird Forth in assembly format but there are
some comments to help out. Everything I know about this comes from
reading the spec. Now up to version 6:

https://www.sdcard.org/downloads/pls/

I still have a copy of version 1 around here somewhere.

The hard part is initializing the card.

--
https://web.archive.org/web/20190214181851/http://home.earthlink.net/~david.schultz/
(Web pages available only at the Wayback Machine because Earthlink
terminated that service.)

the-eagle@att.net
 


It has been well over a year ago that I played with a SD Card on my MC system. Using the SD is very easy once you understand it. I was able to write and read from it. Maybe before long, I will dive back into this idea.

Chuck Yakym

ajparent1/kb1gmx
 

Chuck,

Serial high data rate that being 115k or maybe 57K:
Serial download from the PC.  Or upload.

Allowing for 8bits plus start and stop bits that puts the IO at 11.5kbytes
(for 115kbaud) a second.  Fast but not out of reach of a 1802.  And it can
because its just moving bytes not bashing bits.

To do the CD1854 group selection is not needed if the amount of IO is small.
For the MC its a matter of getting the 1802 pins and the 1854 pins connected.
everything else like baud rate generation and maybe level translation
(if not TTL IO) is transparent to the 1802.  INterrupts are optional and
an EF flag is good enough for most stuff.

As to how to get the two connected that's the easy part.  I have machined
wire wrap socket pins that are .45" long.  With matching socket headers
that are .250" high that's more than enough clearance as putting it in a
Altoids tin is not a requirement.

Replacing the 765 with CF would be fairly direct.  Especially if the CF
is run in memory mode.  They can also be run as ATA-IDE but then
you have a 16 bit data path instead of the 8bit memory mode path.
However if you do the 16 bit path IDE hard drives are usable like
the small(compact) 1gb and larger drives from old laptops.

I have an EE-ELF with CF on it and all the IO boards.  Nice system.
The code in the BIOS is fairly easy to follow.

Allison

ajparent1/kb1gmx
 

Stuart,

With SD all the SPI fluf is not needed if the only thing is a SD/uSD card.
Speeds will be low with bit bang but that's not that big a deal though
close to floppy speeds that way is not possible.  Add some simple
hardware and it gets better.  The bit bang overhead is not all that bad
as you do not have to "hit" a baud rate and the 1802 being the master 
creates the clock and serial bits at its rate being synchronous that's
actually easier.

Using an Atmega328P can do that as well if retro creds are not a factor.

They are not finicky only exacting.  You do the protocol and meet
the IO levels and they work.  Try to cheat and they get even.

CF seems to be going away slowly.  Connectors are not hard to
find but gobs of fun to solder down.  For those not into smt those
pins to the board are some 0.015" or so apart. So a board such
as a CF to IDE adaptor will get you to .1" centers, easier.

The real trick to me is a OS that is not bulky. 

Allison

ajparent1/kb1gmx
 

Chuck in my case the "PC" is really a AmproLB+ running CP/M
or the Rpi3B+ running linux as a 10" laptop.  Least for serial IO.
Neither have a parallel port.

My use for mass storage is load once usually and be able to
reload again.  Or load a different program.



Allison

the-eagle@att.net
 

 

Allison,

 

            My SD Card software that I haven’t worked on since May 2018, which was completely 1802 based. It doesn’t use any FAT 16/32 or NTFS file system. I understand that it is incompatible with the modern day PC; however the 1802 isn’t a modern day computer either. If the 1802 was really great then the current “modern” day computer would have drivers; or this and that: that would accommodate it. It must be noted that the 1802 doesn’t require any of the; this or that stuff.

 

Chuck Yakym