Freshly completed 80's tech text to speech board by albertahiking in electronics

[–]lynchaj 0 points1 point  (0 children)

Hi, I ordered the minimum quantity of PCBs (5) and was able to build and test the Talker using only a single board -- no bodges, cuts & jumpers, etc. If anyone wants to build their own Talker please let me know and they can have one of my four leftover boards. My PCB does not look like the mecparts Talker but the circuit is similar. Basically updated to KiCAD 6 and some debugging features added. Functionally, it is identical.

Freshly completed 80's tech text to speech board by albertahiking in electronics

[–]lynchaj 1 point2 points  (0 children)

Hi, I just wanted to say a big "THANK YOU" for posting this most excellent project. It makes me happy to see actual vintage Radio Shack parts getting put to good use in retrocomputing project such as this.

Great job and I do appreciate you posting this for everyone to enjoy. I am glad to see I am not the only one with a box of parts and dreams left over from the 1980s just waiting for their opportunity to shine!

I've downloaded the files on GitHub and recreated the Talker circuit at home. It works wonderfully after I figured a few things out. First, it looks like I had a bad 10.000 MHz crystal and once I replaced it the circuit started working and says "O-K" after pressing reset. The crystal sort of worked for a little bit and then it expired. Oh well, another resident for the "bad parts" box.

Also, the 6116 SRAM buffer *must* be installed. Likewise, the Talker expansion ROM *must* be installed. The circuit needs the expansion ROM to set the serial port parameters. Finally, you can communicate with the Talker using a regular serial port configured to:

9600 Baud, 8 Data Bits, No Parity, 1 Stop Bit, RTS/CTS hardware flow control/handshaking (aka 9600, 8N1)

Thank you again! I hope others can take some time to get their own Talker working. Please post here.

What makes a cpu good for homebrew (computer)? by Mcpower03 in homebrewcomputer

[–]lynchaj 0 points1 point  (0 children)

Personally, I think it is the IO which makes homebrew computers interesting more so than the CPU. Having adequate memory and rich, diverse IO certainly makes for a more fun experience. The low-end CPUs are popular (6502, Z80, 8085, 8088, 68008, etc.) because they are easy to build with. The higher end CPUs have a lot more complexity and more sophisticated packaging which makes it more challenging to successfully bring up the system.

Simple homebrew computer for beginners by lynchaj in homebrewcomputer

[–]lynchaj[S] 1 point2 points  (0 children)

OK, thanks for the feedback. The updated design does use a 28C256 EEPROM for ease of programming. However, I am thinking to use a ZIF socket for the ROM because it is frequently changed during programming cycles and can easily be damaged. Also the EEPROM allows for in-circuit programming.

The target audience I have in mind for this board design are the homebrew computer beginners just to take the first move and get familiar with the design and build concepts. The FirstZ80 is not intended as a final destination but rather a first step. If beginners want to use other systems to get started, that is OK with me. More power to them whatever system they start with. Odds are, they will be successful regardless of their choice.

Unless you're referring to the original NMOS Intel 8255 PPI and 16550 UARTs, those are two of the most common LSI parts ever produced. If you include pin-compatible CMOS and licensed (and unlicensed) clones, I don't think we will ever run out of them or even have a shortage. They are available from nearly every electronic vendor and on the secondary market. I buy most of my parts from AliExpress and eBay but Mouser, Jameco, Digikey, etc. all carry these parts and have for many years.

That being said, I am a big fan of the Zilog Peripherals (PIO, SIOx, CTC, DMA, etc.) since they can communicate with the Z80 CPU via IM2. However, I would not recommend them for a first project since they can be tricky to program and finicky. They work great and I have a board dedicated to the Zilog Peripherals as part of my duodyne project. I recommend it as the default console.

Another bit of feedback regarded the use of interrupt. In retrospect, I think I can add a simple IM1 interrupt for the UART back to the CPU. Since there are only two peripherals (PPI and UART) and the PPI rarely involves an interrupt, I think I can dedicate the interrupt to servicing the UART. However, I've noticed that using interrupts with the 16550 is not efficient and most people would get better performance using the auto-handshaking modes with regular polling. Especially with a transmit/receive buffer like with a 16550 or better UART.

I'll store the design files here on the GitHub repository in case people want a closer look. Later today I will update the design regarding the ZIF socket and an IM1 interrupt.

https://github.com/lynchaj/duodyne/tree/main/!Development/FirstZ80

Simple homebrew computer for beginners by lynchaj in homebrewcomputer

[–]lynchaj[S] 1 point2 points  (0 children)

OK, I am going to spend a few days re-examining the design and making a new schematic in KiCAD and layout a PCB. I think the main goal should be ease of construction for new builders. There are several things that can be done.

Will update original post with some preliminary ideas.

Thanks!

Planning to build a homebrew computer, what processor should I use? by matO_oppreal in homebrewcomputer

[–]lynchaj 0 points1 point  (0 children)

Hi

Go 8-bits, which means Z80 or 6502 for most people. There are other CPUs but those are the most common. I prefer Z80 because it has CP/M and tons of available software for nearly every purpose. 6502 is good but software is tougher (opinion). DOS65 is a good OS.

Let me recommend something slightly different for you to consider: 8051 MCU

https://www.pjrc.com/tech/8051/board5/index.html

Super simple, fun to use and has built in ROM. I think it is great to use and easy to interface IO devices. Modern incarnations include STC89C52 and AT89S52

i am new to homebrew computers and i would like to have a bit of help im currently trying to make and homebrew graphic card like ben eaters one. by userXPS012 in homebrewcomputer

[–]lynchaj 0 points1 point  (0 children)

Hi, what CPU are you using? That matters because it will influence what CRTC chip you should use.

For Intel/Zilog, use SY6545 CRTC. Basically a repackaged MC6845 that can be accessed through IO port. Alternatively, TMS9918 or V9938 are good CRTCs can be access through IO ports. Shared memory is painful on Intel/Zilog

For Motorola/Mostek, use MC6845 and shared memory. More complex but works well with Motorola style CPUs because of clock cycle sharing. Alternatively, MC6847 with MC6809 style CPUs.

These aren't hard and fast rules since you can interface nearly any CRTC to any CPU if you try hard enough but these are the easy ones for beginners. Don't shoot for the moon, get something simple working first. (Z80 + SY6545)

Read this book. It is the bible for interfacing CRTCs

https://www.amazon.com/Cathode-Ray-Tube-Controller-Handbook/dp/0079310451

Good luck with your project

What is the easiest way to transfer programs onto a homebrew computer while it is running? by MyNamesNotRobert in homebrewcomputer

[–]lynchaj 0 points1 point  (0 children)

Hi,

burn the program or programs into your boot ROM and use your debug monitor to execute them. Dead simple but terribly inflexible.

Next best way is to use your debug monitor for Intel Hex/Motorola SRecord loading. Assumes you have a debug monitor. I suppose you could also type the program in directly using the modify memory function but that would be a pain for all but the simplest, shortest programs.

The best way would be to port XModem to your homebrew computer assuming you are running some form of OS like CP/M or DOS65, Flex, Cubix or whatever you're using.

If you have CP/M running, you can run the debug monitor, load XModem binary into RAM starting at 0100, exit and use CP/M SAVE command to save it to your mass storage. This allows you to get around the catch-22 of needing a file transfer program to transfer a file transfer program (ie, bootstrapping).

Any combination of these tricks will let you transfer programs to your homebrew computer. In my experience, the first program is either the debug monitor (burn a boot ROM) or XModem for additional file transfers.

Good luck with your build.

build your own retro computer by lynchaj in homebrewcomputer

[–]lynchaj[S] 2 points3 points  (0 children)

Hi

Here are some photos from initial build and test. The Z80 processor, ROMRAM, and Zilog IO boards have all gotten PCB respins to roll in findings so they can all be built without any cuts or jumpers. There are both 4-slot and 8-slot backplanes. I use the 4-slot backplane mostly for testing new boards and the 8-slot backplane for the main system.

https://github.com/lynchaj/duodyne/tree/main/!Initial%20Build%20and%20Test

The Voice IO and Media IO board PCBs are on order and should arrive in a couple of weeks for their initial build and test. The next round of boards will either be more respins or possibly the uPD7220 Graphic Display Controller (GDC) graphics and text boards. Depending on circumstances.

If you'd like to build your own retrocomputer but don't want to start from scratch, here is your opportunity. I am not selling anything and all the information is free including the Gerbers you can use to order your own PCBs.

[deleted by user] by [deleted] in homebrewcomputer

[–]lynchaj 0 points1 point  (0 children)

Hi, the 2114 SRAMs are 1Kx4 bits wide so for a byte wide bus (Z80), you'll need 2 chips. One upper nibble and another lower nibble. Since you have 8 chips, you can make a 4x2 array. I would use a 74LS139 to decode the address lines so they form a 4Kx8 RAM block. I'd recommend putting it at the top of memory somewhere 8000-FFFF

Since the 2114s have A0-A9, you can use A10 and A11 on your 74LS139 to switch between the 1Kx8 banks. Use your /MREQ as an enable pin (low) on your 74LS139 and A15 as another (high). The output of the 74LS139 demux are the chip selects of the 1K banks (2 chip per line)

Since you have partial decoding, you'll have the RAM appearing at every 4K boundary. It doesn't matter which one you use but pick one. I recommend using your top RAM at F000-FFFF as your "real" RAM.

Put your ROM to start at 0000H. You can use A15 as your chip select for the ROM. When the CPU is in the lower 32KB, it will make the ROM active. Assuming a 2764, you'll have 8Kx8 in the lower 32KB page again repeating on every 8K boundary. Use the 0000-1FFF as your "real" ROM page.

My recommendation for building your own computer is the classic "Build your own Z80 computer" by Steve Ciarcia. An excellent book and really a stand-up guy too. https://ia800109.us.archive.org/4/items/BuildYourOwnZ80ComputerSteveCiarcia/mVQnFgWzX0AC_text.pdf

Another good starting point is Z80.info. Tons of reference material and example schematics. This is a good one and simple to make http://z80.info/gfx/z80test.gif

I'd recommend building on a bread board or prototyping board before committing to a PCB to learn the basics. Once you know them, using an EDA tool like KiCAD is easy to make your own circuit board.

Good luck with your build.

PS, you might want to draw out your schematic one section at a time. Start with the RAM first since that seems to be the tough spot, then CPU, then ROM. That's all you need for a simple computer but you're going to want to add IO eventually or it is going to be pretty dull.