Jump to content

68K (no Mac) Designs OK?


Recommended Posts

I'm sorry if I am way OT here.

 

Last year, I designed a 65C02 computer and had some boards made.  It worked very well and I was very happy.

My next move was to design his 16-bit big brother using a 65C816.  Seemed like a logical choice (still is, really).

 

However, there was something pulling me towards the 68K.  Mainly because I was a hard-core Amiga 500 user in the day.  And, about 20 years ago, I started collecting classic Macs (I have several 68K series Macs).

 

So I decided to byte the bullet (notice a play on words there) and design my first 68K based computer.

It is heavily inspired on the original 128K Mac.

 

But here's my issue...I need a place to bounce questions around and get advice on my design.  I don't see many 68K forums online that aren't focused on a platform like the Mac or Amiga.  My computer will be neither of them (but pull inspiration from them both in some areas).

 

Am I in the right place?  Or, is there somewhere else I should visit?

 

Thanks!

Link to post
Share on other sites
  • 68kMLA Supporter

If you find a better place, please let us know.   This place it okay for that discussion, but I think you'll get many interested audience and not too many active contributers.   Big Mess 'o Wires did some similar work years back, I think.

Link to post
Share on other sites

Very interested in your project, what machines besides Mac and Amiga were in the 68000 family, workstations of any kind?

 

We've got Lisa on the 68000 list, it seems someone has streamlined the logic board's design and produced(?) compatible replacement boards:

http://vintagemicros.com/catalog/lisa-board-from-sapient-technologies-p-296.html

 

Curious about your OS choice/development plans?

Link to post
Share on other sites

Thanks everyone for the interest.  I don't have a blog yet.  But I really should start one.  I really like the format that BMOW does with his projects.  I might follow something similar.

 

I'll either post my progress here (if no one objects) or just post a link to my eventual blog.

 

In the meantime, I gathered up parts that I already have on-hand.  My dream is to design a "Mac like" computer that would fit between the Mac 512K and Amiga 500.  Closer to the Mac because the Amiga had advanced chips for it's day and I'm a HDL newbie.

 

I will be wire-wrapping my first prototype starting this weekend.  The CPU of choice is a 68SEC000.  I have bought a TQFP-64 to DIP converter so I got some soldering to do.  The final design will likely use a "largish" FPGA and maybe some smaller CPLD's.  I don't want to go insane on the FPGA choice.  Mainly because my eyesight restricts me to soldering TQFP-100 to MAYBE -144 packages.  I have no interest in BGA.

 

So, what do I actually have right now?

 

Almost everything.  However, they are a mixture of small boards, slower parts, etc.  So not the final specs.  For example, I will be using two SRAM chips for 16 bit memory that run 55ns.  BUT, my final design will incorporate 16-bit SRAM at 8-10ns with 1 MiB minimum.  I thought about getting DRAM chips because they are very cheap and 16 MiB would cost almost nothing.  But, I don't want the extra hassle of DRAM refreshes and column/row logic.  Plus, no affordable computer in 1984 - 1986 had 16 MiB anyway.  1-2 MiB for my final design sounds good and the 16-bit SRAM chips are not that expensive.

 

On my CPU adapter, I have a small bag of wire-wrap pins that I will have to painstakingly solder one by one so that the adapter board can be used with wire wrap.  Not to mention the small SMD CPU itself.  :-)

 

Anyway, my parts so far are (for prototype):

 

68SEC000 CPU (with adapter)

512 KiB SRAM 55ns x 2  (used for odd/even) memory.  1 MiB total RAM.

128 KiB ROM 70ns NOR flash x 2 (used for odd/even) memory.  256 KiB total ROM.

DUART Serial (2 ports) via NXP 28L92.

ATF1504 CPLD (32 I/O)

ATF1508 CPLD (64 I/O) - 7.5ns

TinyFPGA A2 (~21 I/O)

TingyFPGA BX (~41 I/O)

Parallax Propeller MCU (8 cores, 32 I/O).  Possibly used for audio (has great SID emulation) and/or general I/O for keyboard/mouse, SD, etc.

 

Eventual specs for final design:

1-2 MiB RAM

256 KiB ROM

SD card running FAT16

USB mouse/KB (MAYBE PS/2 if USB proves to be a headache).

640 x 480 VGA.

I don't want SVGA, massive sprites, etc.  I'm leaning more towards a simple frame buffer with possibly hardware blitter. 

For colors, I'd like to shoot for at least 256 (8-bit). 

I'm undecided if I want to force a static display (like the original Macs) or allow a more dynamic display like the Amiga (and later Macs).

Sound.  (duh..lol).  SID emulation sounds good...but I probably won't use it.  If you have memory, then audio buffers and DAC's sound so much better.  Just compare the Amiga against the C64.  The IIgs should be noted because of the massive number of channels...but still, sampled audio will probably be the way to go.

 

Right now, most things are up in the air.

 

More than likely, I will use the ATF1508 CPLD as a simple VGA controller and MMU.  Mainly because it has the most pins.  But I'm sure I will find something to do with those other PLD devices.

 

If/When I finish my final design, I hope to have a smallish 4 layer board made.  Which I will make available. 

 

If this is successful...if I love working on it after all of that....and people still want it....I might look into a second revision where the 68K is handled within an FPGA.  Not true "retro", but much easier to sell and source.

 

Any questions, just ask...

 

Wish me luck!!

 

PS, I still haven't thought of a name yet.  I want something catchy but not cheesy.  One thing I like about "Macintosh" is that it sounds good...looks good...and can be shortened to "Mac".  Plus, it falls inline with "Apple".  It would be hard to beat that.  :-D

 

Link to post
Share on other sites
  • 68kMLA Supporter
16 hours ago, Trash80toHP_Mini said:

Very interested in your project, what machines besides Mac and Amiga were in the 68000 family, workstations of any kind?

 

 

The very early Sun machines were 68000

Link to post
Share on other sites
  • 68kMLA Supporter
1 hour ago, ScutBoy said:

The very early Sun machines were 68000

The little known Unix based MassComp Mini Computer used two 68000s; one for the CPU and one to support its advanced graphics.   We had a number of them at NASA JSC in the mid-80s.

Link to post
Share on other sites

Small update...

 

This weekend was unproductive.  I had FOUR large deployments (for my real job) that took up most of my weekend.

 

I did manage to solder the small QFP-64 68SEC000 to a breakout board.  This breakout board will next get 64 wire-wrap pins soldered to it so that I can use it.

Next after that is free-running it.

 

Someone asked what OS.  Well, at first, I *might* try uLinux just to get it running.  But my goal is to develop my own OS.  But that is a tall order.

Either way, I will keep people posted.

 

Thanks.

 

Link to post
Share on other sites
On 7/11/2019 at 3:59 PM, Trash80toHP_Mini said:

what machines besides Mac and Amiga were in the 68000 family, workstations of any kind?

I had a Sinclair QL, which was quite a fun little machine based on the m68008. Of course, there's the Atari ST, the Japanese LUNA machines, Sony's NET WORK STATION workstations, NeXT, of course, Sharp's X68000/X68030 series, Hewlett Packard's 9000 Series 300 and 400 workstations, Suns, Apollos, plus lots of VME boards, including multiprocessor systems. Let's not forget the Tandy TRS-80 Model 16 and Tandy 6000! There were plenty of others I'm not remembering right now.

 

I'd love to build a simple system some time using either the 22 address bit version of the m68008, or perhaps an m68030 since it can size its bus to 8 or 16 bits, plus it can run Unix / BSD without extra chips because it has an MMU. One day!

Link to post
Share on other sites
On 7/12/2019 at 7:58 AM, cbmeeks said:

BUT, my final design will incorporate 16-bit SRAM at 8-10ns with 1 MiB minimum.

Are you planning to share RAM between the CPU and the framebuffer? Because if not I suspect the 55ns RAM will be plenty fast for a 68000. (I assume you're using AS6C4008s for now?)

 

Not that larger 10ns SRAMs are prohibitively expensive or anything. the AS6C4008 just happens to be really popular for homebrew because it's still available in a standard DIP package.

Link to post
Share on other sites
  • 2 weeks later...

I haven't decided if the CPU and framebuffer will share RAM.  My initial thought is that they would.  I don't really want to get into anything like cycle stealing/stretching or anything like that.  My intent is to upgrade this machine to '020/030 one day and that method (like the original Mac) is less relevant on those machines.  Especially when you start getting into SVGA resolutions/colors.

 

The 10ns SRAM (16-bit) was surprisingly cheap so that's why I wanted to use those.  And I figured 10ns wouldn't be any kind of bottleneck for anything I could every dream to design.

 

But for prototyping with my wire wrap board, I will use the "slow" 55ns SRAM that I have that is in a DIP package.

Link to post
Share on other sites
  • 3 weeks later...

Oh yeah, huge fan of the Parallax forums.

 

Yeah, I've heard of the MiSTer project.  I don't want to use FPGA for the CPU.  At least not at first.  I will be using FPGA (and/or CPLD) for glue and video but not the CPU.

 

Unfortunately, the project is on temporary hold as we just bought a new house!  We are moving first week of September so my entire lab is in boxes right now.  lol

 

But I will keep everyone posted.

Link to post
Share on other sites
1 hour ago, cbmeeks said:

Yeah, I think the 68000 and Z80's (for sound) are some of the most popular arcade processors from the 80's/90's.

I'm kind of surprised in retrospect that it doesn't seem like Sega explicitly pointed that out in their advertising for the Genesis, as it's also a dual 68000/Z-80 architecture. (Of course, it's also interesting that Sega marketed the Genesis as a "16-bit" system while most of the computer makers using the 68000 heavily emphasized the 32-bit attributes of its ISA.)

Link to post
Share on other sites
On 8/12/2019 at 11:26 AM, cbmeeks said:

Yeah, I think the 68000 and Z80's (for sound) are some of the most popular arcade processors from the 80's/90's.

Don't forget the Texas Instruments LPC speech chips. :)  Used extensively not in just arcades, but also on home computers like the Apple II.  Probably most famous for the Speak & Spell.

Link to post
Share on other sites

I am curious about this thread, because I would like to know how to compile C/C++ programs for a 68K single board computer that is NOT a Mac. I was looking at Retro68K, but I think its setup to target the Mac arch, no?

 

I was looking at BMOW uCLinux option, but he made a ton of modifications in the kernel/BSP and not really any good comments on why or what they do. (Not familiar with a linux kernel, or 68K ASM). 

 

I have been buried head deep in a project since December that is baseed on the MC68010, it has Two of them, its a VMEBus system with multiple cards.

 

I have been in the process of reverse engineering the system back into schematics for trying to re-create the software to allow this unit to function again. Since the original software was downloaded over satellite and is long long gone. 

 

it does have a Ready Systems RTOS Kernel in ROM, but again since I am not that fluent in 68K, or even worse, C compiled 68K that abuses the stack, I cant make heads or tails of it. So rebuilding something equivalent is necessary. 

Edited by techknight
Link to post
Share on other sites
  • 68kMLA Supporter

What do you want the code to do? If you just want it to access memory and do calculations and leave a result in memory somewhere, any ordinary Mac 68k code complier should work fine for that purpose - either retro68k or even THINK C on a legacy platform. With THINK C you could even embed asm{...} blocks and leave your result in a register. Just compile your code into a Mac application and use ResEdit to extract the hex dump of CODE resource 0. That’s your compiled 68k code that should run on any 68k platform. You could compile a function this way also, since the argument passing mechanics should be the same. Obviously if you call any Mac traps they won’t work, and you want to make any system calls onto your target platform you’d have to do from an asm block and wouldn’t be able to test on the Mac emulator.  (Basically this is probably only a helpful answer if you’re trying to do something quite simple, which I’m guessing you’re not...)

Link to post
Share on other sites

I have to write code that receives data from a data card, I have to write code to speak to another 68K on the bus to render graphics, and then I have to write code that runs on the other 68K CPU that actually renders the graphics, and enters into DMA transfers across the VMEBus to grab the graphics to be displayed from shared asset RAM. The graphics card has its own CPU basically acting as a GPU, but again it downloads its program from the main CPU card when its up and running. 

 

What I am saying is, there is no OS. so the application has to do everything. Including building and setup of the Vector table in RAM, as well as the Trap handlers for all I/O operations. Including that of reading the RTC IC. (so I have to write a driver for that). 

 

As well as a Vertical Blanking interrupt handler for doing things like on-screen Roll, and Crawl, as well as keeping software timers. 

 

So no, its not so simple. But my main question was is there a modernish C/C++ compiler that will build stand-alone drivers/vectors/applications for a 68K that isnt attached to the macintosh specific ROM, etc... 

 

Also there is no "system calls" or anything of that nature. its basically lights and clock-work with no code. So I have to write the code to make it run again. 

 

Basically, Bare-Metal programming. There is no ROM code (well there is, but no API/Documentation on how to use the built-in kernel, and the guy who wrote it is dead, so it must be replaced)

 

Basically, write a program, function, subroutine, etc. that compiles into an organized BIN file that I can either load and execute into RAM from a bootloader, or Burn into PROM and the 68K will boot and run it. :-)

Edited by techknight
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...