Rolling my own computers in the 90s - Page 1
Forum section: electronics / general

author: joeqsmith
author_rank: Super Contributor
timestamp: February 15, 2016, 01:43:59 am
content: I had posted a video some time ago about a small computer I had designed using a small FPGA back in the 90s. This was not the first computer I had designed. I pulled out one of my old PCs today take a few pictures of my last CPU prototyping board. The board talks with the PC using a 16-bit ISA bus. It has some static and dynamic RAM along with some FLASH. The two larger FPGAs were programed from the ISA bus. The FPGA in the PGA package performed the ISA bus interface, output the post codes, controlled a DDS the clocked the two larger FPGAs, as well as simulated the Altera programmer and security key.

author: DJLinux
author_rank: Newbie
timestamp: February 15, 2016, 11:45:43 am
content: Good job I like it.Currently a play with an very cheap ALTERA CycloneII EP2C5T144C8 board.Where do you get this funky ISA prototype boards from ?DJ

author: legacy
author_rank: Super Contributor
timestamp: February 15, 2016, 12:23:03 pm
content: @joeqsmithwhat was the purpose of your ISA board?here I have an article, written in german, which talks about parallel computing over 68020 modules plugged into a PC on ISA16 bus

author: jboard146
author_rank: Contributor
timestamp: February 15, 2016, 04:12:04 pm
content: Awesome!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 15, 2016, 05:24:32 pm
content: Quote from: DJLinux on February 15, 2016, 11:45:43 amBack then, many places sold them. I believe the larger 16-bit ISA board was made by Vector and I am guessing I bought it from Digi-Key. Some I picked up from Jamaco and Newark.Quote from: legacy on February 15, 2016, 12:23:03 pmReally like most of my hobby projects, it was just for fun. The board itself was designed to try some different ideas on how to design my own CPU.Quote from: jboard146 on February 15, 2016, 04:12:04 pmThanks! My plan was to put together a video showing how it all works.

author: legacy
author_rank: Super Contributor
timestamp: February 15, 2016, 07:25:41 pm
content: Quote from: joeqsmith on February 15, 2016, 05:24:32 pmis it RISC ? CISC ?like R2K? like z80? 6800? 68000?In my case, I am inspired by eight eight key, 88kI am studying its User Manual

author: joeqsmith
author_rank: Super Contributor
timestamp: February 15, 2016, 11:43:23 pm
content: Quote from: legacy on February 15, 2016, 07:25:41 pmI assume you did not watch the video. For the one in the video, I coded up the instruction set in a language I wrote that is similar to assembler. These codes then define each op-code. the instruction set is very similar to a Motorola 6801/11. However I had added some of my own op-codes ti the mix. I then wrote my own assembler for it. It could run 6801 code directly except I did not try to follow the same number of clock cycles per instruction. It runs much faster than the original part as well.The wire-wrap board shown in the pictures is really just a CPU prototyping setup. It was not designed around any particular style of instruction sets.If you wanted to do this today, I would guess that the majority of evaluation boards would have much better hardware than what I had available back then.

author: legacy
author_rank: Super Contributor
timestamp: February 16, 2016, 01:50:11 am
content: Quote from: joeqsmith on February 15, 2016, 11:43:23 pmyes, I am not able to play video with the machine I am currently logged-inmy 2011-mid bookAir has just died and I planning to buy a new one laptop (it won't be Apple)so, currently I am using my old Unix Workstation, which comes with Netscapeit's a funny 90s browser, but it's not able to play videosby the end of the next week I will get hands on my new laptop

author: legacy
author_rank: Super Contributor
timestamp: February 16, 2016, 01:52:26 am
content: Quote from: joeqsmith on February 15, 2016, 11:43:23 pmhere I have a similar problem: I have developed a new ISA(1), so I also need to develop a new assembler.as you did, I have written myown assembler, too, and It works fine, but it does not support the linker,instead, it builds the final binary directly.asm ----> .{ bin, s19 }supporting row binary(bin), and SREC(s19)out.data.{bin,s19} contain the data-sectionout.code.{bin,s19} contain the code-sectionfor this reason my assembler abuses of the #include directive, and everything (procedures, modules, etc) is an "include"I have also developed a special tool that stuff the above row binaries into rom.vhdlit's useful with you work with fpga(1) similar to eight eight key, 88K, by MotorolaQuote from: joeqsmith on February 15, 2016, 11:43:23 pmI have been working on my TAP (debug processor) for 3 years, just 3+3 hours a week during the week end

author: joeqsmith
author_rank: Super Contributor
timestamp: February 16, 2016, 02:28:40 am
content: Funny, the video board in my old desktop died a couple of weeks ago. Shorted out the power supply. I need a new PC too, but need something with at least 1 PCI slot.That's been many years ago but I think I just made a simple single pass assembler for the microcode. It will take me a little time to figure out what all I was doing back then. The PC is back together and will at least boot. I had written some diagnostics for the board that load in a couple of test cores then exorcises the memory and buses. I found the cables that go with it, so I plan to try testing the board in the next day or two. These things never go smooth.TAP as in JTAG? Are you trying to make a computer that is geared toward JTAG specific control? If so, do you have a blog where you are posting your progress? I am interested! I have written code by had for some of the Motorola parts using the BDM as well as JTAG. What a nightmare. If I were to do it today, it would be an FPGA with a FSM and Ethernet interface to the PC.Project for school, work or just for fun?

author: legacy
author_rank: Super Contributor
timestamp: February 16, 2016, 02:20:04 pm
content: Quote from: joeqsmith on February 16, 2016, 02:28:40 amyes and noyes, T.A.P. stands for a Test Access Port, for monitoring the internal memories of the CPU, and this pushes you in the direction of IEEE 1149.1 JTAGbecause JTAG is needed for detailed testing and instrumentation of the CPU, for instance to capture or replay pipeline stalls, hazards, and exceptions.but no, JTAG only has access to I/O pins, so, to implement real emulators and trace tools you must have a logic block with special access to internal data and control paths and things become boring and complex (e.g. see the JTAG-ADI bridge made by the OpenRisc team), while in my case the TAP is just the interface to the debug processor, which talks to the host over a serial protocol (different from SWD)it works with CISC design, marvelously, It can be adapted to RISC (including pipeline, and superscalar pipeline, and multi core superscalar pipeline)this part is underdevelopment, and it might be put in business, while the CISC design was born to "pass" a computer science examination in my universityQuote from: joeqsmith on February 16, 2016, 02:28:40 amunfortunately noQuote from: joeqsmith on February 16, 2016, 02:28:40 amMC68332? Here I have a BCCDI board, it comes with an hardware debug processor which talks over the serial line to the host. I have asked a friend to revers its protocol, and he has reported good news about that. We have a RiscPC, equipped with a PC-card, and a BDM cable attached to the LPT port. I can ask him to reverse the BDM protocol (by a LA attached on the interface), as it's not well documented.

author: obiwanjacobi
author_rank: Super Contributor
timestamp: February 16, 2016, 05:27:46 pm
content: That wiring alone is awesome!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 16, 2016, 11:58:10 pm
content: Quote from: obiwanjacobi on February 16, 2016, 05:27:46 pmThanks. Glad those days are gone!Quote from: legacy on February 16, 2016, 02:20:04 pmFor BDM the 331, 332 and the 376. For JTAG, the 306. In both cases I wrote the code to bit bang the printer port. Slow but very effective for bringing up the hardware for the first time.

author: legacy
author_rank: Super Contributor
timestamp: February 17, 2016, 12:02:35 am
content: Quote from: joeqsmith on February 16, 2016, 11:58:10 pmis there a public project? in our case (my friend and I) we will embed the BDM protocol into a cpldso it will talk my TAP protocol, and it will connect to 332, in short it will be a BDM-TAP bridge

author: joeqsmith
author_rank: Super Contributor
timestamp: February 17, 2016, 01:30:47 am
content: It was for work some 20 years ago. I did it for fun at home but used it for work. Basically I was using the ports to test the hardware and identify any problems then program the boards. The BDM was no problem but the the JTAG was pretty slow.Pictures showing my first prototype JTAG adapter.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 18, 2016, 12:54:01 am
content: Here is the first video of the set. Enjoy.

author: crispy_tofu
author_rank: Super Contributor
timestamp: February 18, 2016, 05:51:46 am
content: Very cool.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 18, 2016, 12:13:39 pm
content: Quote from: crispy_tofu on February 18, 2016, 05:51:46 amThanks. With any luck, the board will still run. I powered up the PC and it looks like at least it still runs.

author: bson
author_rank: Unknown
timestamp: February 19, 2016, 05:43:58 am
content: Wooow! Glad not to ever have to wirewrap again for prototyping... Cheap PCBs FTW!!!

author: joeqsmith
author_rank: Super Contributor
timestamp: February 23, 2016, 12:34:04 am
content: Quote from: bson on February 19, 2016, 05:43:58 amAgree. I used to have a slit wrap spool gun when I was doing a lot of it. These were all done by hand.Looks like the board is still functional.

author: legacy
author_rank: Super Contributor
timestamp: February 23, 2016, 01:23:05 am
content: Your work is impressive

author: joeqsmith
author_rank: Super Contributor
timestamp: February 23, 2016, 03:10:45 am
content: Quote from: legacy on February 23, 2016, 01:24:07 amNo need to explain. I have a copy of the IEEE 1149.1 standard, which was created by the JTAG subcommittee.

author: legacy
author_rank: Super Contributor
timestamp: February 23, 2016, 09:38:20 am
content: Quote from: joeqsmith on February 23, 2016, 03:10:45 amso, I believe I'd better choose a morehipstername for the test access point of my debug processor inside the Arise processor, otherwise those guys in IEEE 1149.1 standard, which was created by the JTAG subcommittee, will ask me to pay the Copyright, and people will be not impressed (I apparently have already heard that name, uuuu) or confused (I have definitely already heard that name and it's already used to describe other things, my disappoint)feel free to suggest me a funnier (1) one for Arise v3(1) constrains: causing laughter or amusement, humorous, witty, comic, comical, droll, facetious, jocular, jockey, hilarious, hysterical, riotous, uproarious, entertaining, diverting, sparkling, scintillating, silly, farcical, slapstick, side-splitting, rib-tickling, laugh-a-minute, wacky, zany, off the wall, a scream, rich, priceless, difficult to explain and understand, strange(kidding)

author: joeqsmith
author_rank: Super Contributor
timestamp: February 25, 2016, 03:15:37 am
content: Quote from: legacy on February 23, 2016, 09:38:20 amI never picked up that that you were calling TAP had nothing to do with the industry standard TAP until now.Quote from: legacy on February 17, 2016, 12:02:35 amI'm assuming when you write BDM you actually mean Motorola's BDM standard. Do they even sell the 332 anymore? What is what you call TAP doing that I can't achieve with the BDM? I tested a lot of hardware with that BDM port using nothing more than a GAL, a printer port and some C code. I still have an old HP BDM interface along with the P&E.

author: legacy
author_rank: Super Contributor
timestamp: February 25, 2016, 05:18:46 pm
content: Quote from: joeqsmith on February 25, 2016, 03:15:37 amwitten in this topic, just a few posts aboveQuote from: ivelegacyQuote from: legacy on February 17, 2016, 12:02:35 amif I do not tell you what an acronym is referring to, you can assume it's within the common standard, and in this case, BDM is Motorola BDMQuote from: legacy on February 17, 2016, 12:02:35 ammy TAP is currently used in my Arise Softcore, which I have implemented in fpga. A software simulator (see the above post) is also existing as proof of concept.Concerning my 332 board, I am going to build a bridge between my TAP and BDM, in this case the interface to MC68332 will be BDM, while the interface to my host PC, and all the software I have written to handle it, will be TAPmy Eprom emulator is also able to talk my TAP, as my TAP comes with a flexible protocol

author: legacy
author_rank: Super Contributor
timestamp: February 25, 2016, 05:24:09 pm
content: Quote from: joeqsmith on February 25, 2016, 03:15:37 ammy tap is usb-driven, I am going to use a modern linux/arm board, which has two usb ports, unfortunately no printer or usable gpio port

author: joeqsmith
author_rank: Super Contributor
timestamp: February 26, 2016, 02:41:42 am
content: Quote from: legacy on February 25, 2016, 05:18:46 pmI read it, saw serial debug port and TAP in one sentence and thought TAP. Seems like if you want people to understand you are doing a unique serial debug test port for a digital device, don't copy an industry standard serial debug port for your name.When I was using the TAP, that CPU had no provision to do anything beyond control the I/O. Most of what I see it used for is an easy way to test interconnects.Why would you waste time on the 332 is what I don't get. Such an old, obsolete part. Why not pick something at least of this decade to showcase your TAP?

author: legacy
author_rank: Super Contributor
timestamp: February 26, 2016, 01:13:06 pm
content: Quote from: joeqsmith on February 26, 2016, 02:41:42 amrenamed into "Otaku"Quote from: joeqsmith on February 26, 2016, 02:41:42 amobsolete means nothing, 332 is a good machine, it provides a good debug port, I like it, and that's all.Quote from: joeqsmith on February 26, 2016, 02:41:42 amin first place because modern things come with jtag, or swi, and I do not like themthings like OpenRisc come with adi-jtag bridge, and again I do not like themalso I have no time and effort to support themOtakuhas been developed to help during the development of the Arise coreit's also useful to support my eprom emulator, and my VDU (video display unit)it's exactly what I need as "swiss knife" to be used in fpga development, and it also helps in software debugging.

author: joeqsmith
author_rank: Super Contributor
timestamp: February 27, 2016, 09:32:34 pm
content: Quote from: legacy on February 26, 2016, 01:13:06 pmThat solves that.

author: legacy
author_rank: Super Contributor
timestamp: February 28, 2016, 03:29:17 pm
content: Quote from: joeqsmith on February 27, 2016, 09:32:34 pmthe importance of being called "Otaku"…. that sounds like dry sarcasm under the hood of its Etymology, especially when one got applied the term to unpleasant fans in caricature, as in modern Japanese slang, the term otaku is mostly equivalent to "geek" or "nerd", but in a more derogatory manner than used in the West, but it makes sense: even if it is more used for people with obsessive interests, commonly the anime and manga fandom, "Otaku" is also a Japanese term foranother person's house or family, describing an open-roofed entrance hall or central court in an ancient house, while in modern buildings it is simply a room used for entry from the outside, sometimes referred to as a foyer or an entrance hall, in short it means "lobby room", and in my head sounds like "test point", as one doesn't need to be aJapanese-Sherlock Holmesto realize that … you can understand something about the house's owner just from the entrance, hence "tap", which stands for test access point (to my debug engine) has become the japanese name for "entrance point", and we are feeling fine(kidding with Japanese and English, two languages that I wish I was able to master)