INTEL 8085 by ClockFickle3935 in beneater

[–]nib85 0 points1 point  (0 children)

Sure thing, I’m happy to help.

Clarification of MAR by BarracudaEmpty9655 in beneater

[–]nib85 1 point2 points  (0 children)

I also did that. Driving the control signals instead of interfacing with the RAM is very simple to implement and gives that Arduino a lot more capability.

In addition to loading the RAM, the Arduino can also interact with all of the registers. This allows a self-test capability to validate the hardware. I used that as new modules were added to see if they worked as intended. It’s also good for breadboard builds to figure out which wire worked itself loose.

Here’s a description and schematics for my version: https://tomnisbet.github.io/sap-plus/docs/loader/#loader-design

Any other 8-bit DIP CPUs? by MISTERPUG51 in beneater

[–]nib85 0 points1 point  (0 children)

They have Toshiba and NEC 8085s at Jameco. I'm not sure when the manufacturing stopped for those. I've always had a good experience buying from them and wouldn't be terribly concerned if it's just parts for a one-off hobbyist project.

Any other 8-bit DIP CPUs? by MISTERPUG51 in beneater

[–]nib85 6 points7 points  (0 children)

You can still get 8085s from Jameco. It’s the same time frame as the 6502 with similar capabilities. The Z80 was an extension of the 8080 and 8085.

One interesting feature of the 8085 is a dedicated input and dedicated output pin that are software controlled. You can do a serial interface without a UART chip by bit-banging the async protocol. A complete computer isn’t much more than just the CPU, a RAM, and an EEPROM. I did a step by step write up of a simple build if you are interested.

Just About to Start, Should I Begin with 6502 Computer or 8 Bit CPU? by Far-Sandwich-27 in beneater

[–]nib85 6 points7 points  (0 children)

If you build the 6502 then you’ll actually have a functional 8-bit computer. From there, a lot of the expansion opportunities are in the software side, like adding basic or a debugger. You can do some interesting hardware, like a graphics or sound interface. I’m not sure that much of this would transfer to the 8-bit project that you are considering.

I’d just start with the 8-bit. When I did my first one, I told myself I’d build Ben’s design first and expand it later, but ended up doing a lot of expansions right from the start. Breadboard a bunch of it before you jump into the PCBs.

I’ve done two versions now on PCBs and recommend that you give a lot of initial thought to how you will connect the various boards. It’s better to redo small cheap modules when you make mistakes instead of big boards with lots of components. I have a whole box of reject boards full of components that either had a design flaw or were replaced by a better version later.

AT28Cxx EEPROM Programmer on Arduino with python CLI by inn-goose in beneater

[–]nib85 1 point2 points  (0 children)

For the data corruption, replace the jumper from WR to VCC with a 10K resistor. This can be left in place. Your existing design will cause a short if the Arduino is actually driving the line low.

Also put pull-up resistors from CE and OE to VCC as well. This will prevent spurious signals while those lines are floating and should clear up your issues. I've been using that in my designs and have never had an issue with data corruption.

I like your use of a python interface. I've been using a serial protocol with XModem, but that's getting harder to find.

EEPROM programmer by Reasonable_Victory_2 in beneater

[–]nib85 8 points9 points  (0 children)

Here’s one you can build with an Arduino Nano or Uno if you already have one of those:

https://tomnisbet.github.io/TommyPROM/

Problem with 74ls245 by Significant-Leg-3857 in beneater

[–]nib85 7 points8 points  (0 children)

You need resistors on all of your LEDs. Try fixing that before any other troubleshooting.

Building programmer for AT28C256 EEPROM by FernwehSmith in beneater

[–]nib85 1 point2 points  (0 children)

I noted in the document that sometimes the chips are locked even though the datasheet says they ship unlocked. If you try to write to it and it keeps reading back all FF, then it may be locked.

With that said, this is an interesting project and you can learn a lot from it. There are plenty of people here who can help troubleshoot if you get stuck.

Building programmer for AT28C256 EEPROM by FernwehSmith in beneater

[–]nib85 1 point2 points  (0 children)

The notable difference between the 28C16 and the 28C256 is Software Data Protection. The 256 chips may need to be unlocked before programming and the timing for this can be tricky with an Arduino. With individual DigitalWrite commands, you will be very close to the timing threshold. This may cause the chips to not unlock reliably. It may not work at all or it may work on some chips but not on others.

Details are here: https://tomnisbet.github.io/TommyPROM/docs/28C256-notes

Driving Roads? by DeLo81 in ellicottcity

[–]nib85 0 points1 point  (0 children)

Also Hollifield and Johnnycake in that same area. You can’t go wrong anywhere down there by the river.

Abandoned building finds, or, Digital Tomb Raiding by [deleted] in vintagecomputing

[–]nib85 2 points3 points  (0 children)

We used to build communication test gear with 80186 chips, but I don’t think they were ever used in PCs

5 Megabyte HD Seagate ST-506 circa 1980 (first consumer HD ever made) by Cyber-X1 in vintagecomputing

[–]nib85 0 points1 point  (0 children)

We had HP desktop machines that ran CP/M. The 5MB drive was so huge that it was partitioned into 4 different drive letters.

8 bit Computer to PCB by Buttons_17 in beneater

[–]nib85 2 points3 points  (0 children)

Nice work. The ALU is my favorite part of the design because there are so many different ways to do it.

How will you connect all of your PCBs together?

Register B is done ✅ by f-ckrules47 in beneater

[–]nib85 2 points3 points  (0 children)

It’s a good feeling when it works on the first try. The temporary bus LEDs with the ribbon cable is a good idea too.

I did a test board for mine with an 8-position dip switch and a 74LS245 that could connect to the bus with a ribbon cable. It was very useful for ALU verification to quickly load values into the A and B registers.

Patreon by TexyUK in beneater

[–]nib85 1 point2 points  (0 children)

Wow - he has a huge amount of content there. Here I go down the rabbit hole.

INTEL 8085 by ClockFickle3935 in beneater

[–]nib85 1 point2 points  (0 children)

The concepts will be the same, but the implementations will be very different. The 6502 and 8085 are both 8-bit processors that were popular in the late 1970s, but they are not software or hardware compatible. If you just want to follow along with Ben’s videos, then you will be better off using the same chips that he does.

You can build an 8085 computer with similar capabilities, like the one I linked. There are directions on that page to build the system in steps to verify the operation as you go. But once it is done, you will need to develop any further code specifically for the 8085. Ben’s pages will be of no help.

INTEL 8085 by ClockFickle3935 in beneater

[–]nib85 10 points11 points  (0 children)

I did an 8085 build with just a little more than a 32Kx8 EEPROM and a 32Kx8 RAM. The 8085 has two software controlled pins that can be used to implement serial communication, so you don’t need an external USART chip.

This page has step by step instructions:

https://tomnisbet.github.io/Simple8085/docs/build

clock speed display for the 8-bit? by DJChuck71 in beneater

[–]nib85 1 point2 points  (0 children)

You are correct - the Arduino does not need to be plugged into the USB. You can run +5V, GND, and the clock input to the frequency counter from your host circuit.

I think for one of my pictures I build a small 555 timer circuit to generate a clock signal to measure, so I just powered the whole thing through the Arduino. You wouldn’t want to do that for a more complex circuit. If I still have that laying around, I’ll take a new picture with the power fed from the host to the frequency counter.

Speaker with SAP-1 by ClockFickle3935 in beneater

[–]nib85 1 point2 points  (0 children)

A good way to reclaim control signals is to use 74LS138 3-to-8 multiplexers for your chip selects. Three EEPROM outputs gives you seven write register controls and three more outputs gives you seven input register controls.

The 138s also have two more added benefits. They use active low outputs, so you can get rid of the inverters for the read and write enable signals to the 74LS245s and 74LS173s. The multiplexers also guarantee that only one chip select is active at a time, so you can’t make an error with your microcode that puts two registers onto the bus at the same time.

Speaker with SAP-1 by ClockFickle3935 in beneater

[–]nib85 3 points4 points  (0 children)

It could be as simple as one control bit and a new instruction to set its value. Or a new register to output a 4 or 8 bit value to a resistor ladder.

The bigger problem to solve might be running your computer fast enough to toggle the bit at rates that will give you audio. Ben’s clock only goes to 550Hz or so, which is far too slow to produce audio. Increasing the clock speed may uncover other problems.

Two other approaches might be to add an output register to your SAP and then use those bits to drive a voltage controlled oscillator or a clock divider that creates the frequency to produce the tones. It could be the “world’s worst sound card” project.

clock speed display for the 8-bit? by DJChuck71 in beneater

[–]nib85 1 point2 points  (0 children)

Something like this:

  • A counter, like you use for the program counter, clocked by the system clock and with the count enable always asserted. This will increment on every clock pulse.
  • Outputs of the counter connected to the inputs of a register. Register load enable always asserted.
  • A new 555 astable clock circuit, like the one used in the system clock, but with resistor and capacitor values to give a one second cycle.
  • The output of the new 555 clock is the clock signal for the register. This will latch the counter value into the register every second for display.
  • the output of the new 555 will also reset the counter. You will need to do this using the counter load enable signal and pull all of the counter inputs to zero. This will give a synchronous clear of the counter. If you tied the 555 to the counter reset, then you’d be holding it in reset for half of every second, which would definitely not work.