Welcome, Guest. Please login or register.

Author Topic: Homebrew Tandy 1000 PC replica  (Read 15097 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Homebrew Tandy 1000 PC replica
« on: May 27, 2010, 02:31:23 PM »
Hi All,

I would like to share with you all a story on the most frustrating, tedious but ultimately satisfying hobby project I have ever done!

Around a year ago, I had this crazy idea to build a replica of the classic systems that existed around the time of my youth but never had the chance to own. Back in the early days (mid-late 1980's), I was stuck with either a CoCo and then a PC-XT clone when nearly everyone around me had either a C64 or Amiga (or both! :)).

After putting aside the idea of recreating a commodore-related machine, as these were previously done by Dennis Van Weeren (Amiga 500 clone aka Minimig) and Jeri Ellsworth (C64 DTV), I originally decided on a PC-based platform due to having a soft spot for 'old beige' :D. As the project progressed, my focus then shifted to the machine that IMHO did much to help establish the IBM-PC as a viable platform for gaming - the Tandy 1000 clones.

To make things a little more challenging for me I did the following: I wanted the entire system hardware to be emulated by an 8-bit microcontroller!

Well, nearly twelve months (part-time) on, the prototype board works to the extent that it boots MS-DOS or FreeDOS, along with many various game titles supported by the system. The following Youtube videos show the prototype in action:

Latest video demo running Tandy 16-color games with 3-voice sound support:
http://www.youtube.com/watch?v=ZIW-iRq7Tnc

Second video demo running Tandy 16-color games:
http://www.youtube.com/watch?v=JDxYVR0bLQk

First video demo running ancient CGA style games:
http://www.youtube.com/watch?v=E-Kl4uciERM


Comments invited! Cheers and enjoy!

Regards,
Valentin Angelovski
« Last Edit: May 27, 2010, 02:44:07 PM by basman74 »
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #1 on: May 28, 2010, 05:57:44 AM »
Dear all,

Thanks for all the positive responses! :)


To answer the specific questions:

@KThunder - While I am no expert on the Parallax propeller chip, one thing that I do know is that it has hardware support for mice/keyboards/video built-in (i.e. no need to attempt emulating these all in firmware like I did). So your task should be easier IMO. As I see it there are two ways to write an emulator using an embedded processor:
1.) Using available peripheral hardware support (i.e. far easier and quicker option)
2.) CPU Core alone bashes everything (i.e. the option I took, but do not recommend)


@redrumloa - Would be happy to release it as a product at some stage -  once it passes 'alpha testing' that is! :D


@AppleHammer - While I cannot reveal the specific processor model at this time, since some of the hardware was originally designed for a commercial application for my current employer. What I can say however, the platform is essentially built around an MCU running around the triple-digit MHz ballpark, coupled to around 1MByte or so of SDRAM. I hope at some stage to put up a dedicated website for this project, complete with schematics along with more complete information..


@ferrellsl - Which makes it even more remarkable how a machine that started off with 'whopping' 4-color capability became the dominant gaming platform! :D

Regards,
Valentin
« Last Edit: May 28, 2010, 02:54:40 PM by basman74 »
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #2 on: May 28, 2010, 05:59:46 AM »
@recidivist

You make a valid point, though I am certain your point could be equally applied to both the Minimig and C64-DTV as well. :)

Now while there may seem to be little point in getting a replica when you can buy (or already own) a real one, it should be noted there were some inherent features in the original architecture that I wanted to either update or improve upon in my own design:

1.) Possibility for easy switching between an original 8088 and later 80188/V20 CPU hardware behaviour for enhanced software compatibility i.e. POP CS only exists on the 8086 but not on later CPUs etc. To do this on a real Tandy 1000 you have to physically swap CPUs on the motherboard!
2.) Has a 'Tandy Graphics-to-VGA' video converter built-in! :)
3.) System RAM is configured as 704K conventional + 128K UMB RAM as standard
4.) BIOS ROM handlers are trapped and processed by the emulator natively, speeding up BIOS routines and potentially freeing up the Upper Memory Block for user RAM.
5.) System BIOS is copied to RAM on bootup and has mouse and HDD support built-in via INT's 13h and 33h respectively.
6.) Current maximum addressable 512MBytes of SD/MMC flash disk (Theoretical 8GB maximum)
7.) Small form factor(90mm x 110mm x 15mm overall) and very low power consumption (<0.5W)
8.) Could see these things easily retail for around USD$25-30 range - including a 512MByte flash disk. I wonder what it would cost to ship a replica (<50grams) instead of a real machine?

The downsides to this implementation (currently)?
1.) Lack of an standards-compliant expansion bus or game ports (only proprietary bus at the moment).
2.) BIOS ROM compatibility still incomplete (MUCH more to this than I first thought!).
3.) Only 32K of video RAM currently, so no multiple video pages in 320x200x16 color mode, though many games seem not to need it.
4.) Noise channel in the 3-voice sound circuit slightly different from original due to different implementation.
5.) Only 8088 CPU behaviour largely complete - currently working on NEC V20 emulation..


Regards,
Valentin
« Last Edit: May 28, 2010, 02:55:02 PM by basman74 »
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #3 on: May 28, 2010, 03:46:18 PM »
Quote from: LoadWB;561539
I never realized the 1000 was similar to the PCjr.  I was never an Intel guy back then, though I knew how to use the PC computers.


To be honest neither did I, well at least not until I did some serious digging into the PCjr's colorful history in my search to find a machine to emulate. From memory, at the time I was fooling around with XT clones I had the impression our local Tandy store was still heavily pushing the CoCo3 (complete with running demos etc.) with a Tandy 1000 machine sitting farther back with an 'A>' prompt on it's screen.. Commodore resellers didn't make this mistake with their Amigas, that's all I will say!

Quote from: LoadWB;561539
I do remember thinking "Thexder" was pretty cool, and I lament that I never obtained a copy of it for the 64 or Amiga.


Actually I have similar feelings with respect to the Tandy 1000 version.. i.e. I prefer the 320x200 Tandy screen over the 640x200 EGA version (not to mention better sound!), Awesome game though, regardless of platform..

Quote from: LoadWB;561539
Wow. Damn impressive.

Thanks! :)

Regards,
Valentin
« Last Edit: May 28, 2010, 03:50:40 PM by basman74 »
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #4 on: May 28, 2010, 05:24:54 PM »
Quote from: skurk;561595
What great and truly inspiring work!

I am especially humbled by comments such as yours! Thankyou!

Of course, there were many people who helped inspire me as well (Dennis Van Weeren and Jeri Ellisworth playing their part as mentioned), But above all, I acknowledge Steve Wozniak's experiences with his projects in convincing me that if I'm really that keen then I should give this a go!

Quote from: skurk;561595
I've been experimenting with something similar, maybe I should get my ass in gear and actually start working on the schematics.

Best of luck in your endeavors - I urge you to 'know your hardware backwards' before getting started, and look forward to seeing some results! :)

Regards,
Valentin
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #5 on: May 28, 2010, 05:40:29 PM »
Quote from: skurk;561595
Do you have some technical details about your work somewhere?
For example, which mcu did you use, how exact is the emulation, etc?

I have detailed schematics system specifications etc. all fully documented (though not online, yet).

Cannot quite release details on the MCU at this time, for similar reasons to the documentation since they all make references to it. I can however comment on the emulation quality, but that'll have to wait until tommorrow (didn't realise it was 3am local time! :))

Regards,
Valentin
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #6 on: May 29, 2010, 04:02:45 AM »
Quote from: redrumloa;561665
Parallel port, parallel port, parallel port!!! ;)

Quote from: B00tDisk;561666
Where do I plug my Disney Sound System? :D


Ah, you mean the printer port LPTn right? Please tell me you're only going to use it for it's originally intended purpose? :D

Okay, okay, hint taken! ;)

By far the quickest and easiest way for me to get an LPT (or perhaps other standard expansion possibilities, like game ports etc.) would be to implement it as a daughter-board. Would this suffice?


Regards,
Valentin
« Last Edit: May 29, 2010, 08:21:15 AM by basman74 »
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #7 on: May 30, 2010, 05:47:40 PM »
Quote from: XDelusion;561823
What a silly thing to clone, but VERY VERY VERY cool regardless!!! WOW!

Thanks! All part of the fun really ;)

Well, looks like I'm doin another 3am-er :) To help satisfy interested member's curiosities about this project, I managed to scrape together a little web-corner that goes some way to explaining the project and where it might be headed. Will be expanding on the 'where it might be headed' bit a little more as soon I know where that is! :D

http://members.optuszoo.com.au/pioneer10/index.xhtml

The above is only a preliminary and very basic site until I can secure a more permanent home.. cheers and enjoy!


Regards,
Valentin
« Last Edit: June 01, 2010, 02:55:17 AM by basman74 »
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #8 on: June 02, 2010, 02:58:53 AM »
Quote from: redrumloa;562103
Intended purpose? Of course not :-) A daughter board would be fine as long as it is not bulky. The parallel port should be bog standard SPP. JMHO of course. I can see uses for Start Commander, 64HDD and others.

@redrumola,

Actually, one of the other 'unintended uses' I have in mind for the printer port is to use it with one of those 3-axis CNC parallel port interfaces. Already have software that potentially could run quite happily on the board.. but cannot update the LPT data output because
'You've attempted to access I/O register 378hex which is currently just a silly byte variable in memory, please check your address value and try again!' :)

Regards,
Valentin
« Last Edit: June 02, 2010, 03:08:50 AM by basman74 »
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #9 on: July 01, 2010, 11:40:52 AM »
Well, given it's been a month since my last post so I thought I'd add a little update :)

After some more prodding through my emulator firmware, I managed the following enhancements to the 'virtual PC core'

1.) I added the once-popular 320x200x256 VGA/MCGA 'chunky mode' (aka mode 13h) to the list of supported graphics modes into the emulated BIOS and display controller. The only real restriction here is color palette being 'fixed' at 256 colors (output DAC assignment is 3/3/2-bits R/G/B respectively) and even the order of those fixed positions cannot be altered (at this time). That said however, it works and as a result some VGA games now also run in addition to Tandy Graphics/CGA supported games. Screenshots:

Elite Plus -
 Title Screen
 Player Screen

SU-25 Sturmovik flight sim demo -
 Player Screen

Gobman (PacMan clone by filipe mateus) -
 Title Screen
 Player Screen

'SLIQ' from the PC demoscene era -
 Utah Teapot

To allow some of the games to run at an acceptable speed, I decided to push the virtual system to it's highest possible limit on this 8-bit MCU made the core run to an equivalent speed of 1075 v1.1 Dhrystones (i.e. going into 80286 country..). This was achieved using some inelegant display hacks and an overclocked core.. :( Using SRAM instead of SDRAM for system memory should fix this problem and also take the system to say, well beyond 3000 Dhrystones without overclocking.

QBASIC compiled programs now run quite happily on this thing, but the speed of some runtime files, particularily those needing FPU support isn't blistering (the 'SLIQ' demo for example runs but is terribly slow, mainly for this reason). I've had more successes speed-wise with the C/C++/Assembly demos.

2.) Parallel port daughtercard: The artwork for this is also ready, which will use a CPLD (view artwork), though I cannot build it until I also do the artwork for an SRAM version of the mainboard (which will include an expansion header for the daughtercard).

Well, that's it from me for now.. I hope to put up another Youtube video demo on the VGA-related stuff shortly.

Cheers and enjoy!

Valentin
« Last Edit: July 01, 2010, 01:29:05 PM by basman74 »
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #10 on: July 02, 2010, 10:49:34 AM »
Quote from: Retro_71;568550
Great work!!!! and since your in Oz i can buy one when they are ready and it won't cost me my arms to ship it here! :D
Great work looking forward to a finished product.


Thanks mate.

You know, I never seriously considered this thing to be a 'product' per se, more of a 'hobby project' that I show to the missus every now and then who tells me 'that's nice, dear.. :)'

Perhaps it is time that I did. Would be interesting to see just how much this thing would cost per-board for a production run of say a couple hundred or so units..


Regards, Valentin
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #11 on: July 02, 2010, 10:53:20 AM »
Quote from: MelbourneBen;568539
Good work mate :)


Thanks mate :)

Cheers, Valentin
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #12 on: July 02, 2010, 11:32:27 AM »
@iggy

Thanks for your reply and also for sharing your interesting first-hand account with us!

As you've stated the CoCo3 was indeed a much more powerful beast than the machine it replaced (Z80-based CoCo2, of which I owned a clone) and put it inline with the Tandy 1000 and it's 8088 CPU, which in terms of basic performance was in the same league as the 6809..

One thing that I didn't get about the CoCo3: It wasn't compatible with either MS-DOS or most of the CoCo2 related stuff, yet it was a really nice machine? Tandy obviously wanted to try and the market to a higher level in 8-bit computing circles methinks..

Totally did not know about the enhanced 68k CoCo derivatives (the machines you referred to as systems IV/V) Good to see your old company (Delmar Co.) picked up the ball and make their own advanced CoCo derivatives after Tandy pulled out of that market! Really fascinating stuff! :)


Regards,
Valentin
« Last Edit: July 02, 2010, 03:43:39 PM by basman74 »
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #13 on: July 02, 2010, 11:49:23 AM »
Quote from: redrumloa;568385
@Valentin
 
Thanks for the update! About time to go into mass production soon? :hammer:

Jim,

I've already begun the final assembly of some boards, though you'd probably laugh if you saw my initial assembly-line for the 'mass production' (gotta show a pic of that one!)

Hopefully once I have the emulation firmware finalised, there's not alot more that I would want to add to the SDRAM edition of the PCB. Please feel free to disagree, however.. :)


Cheers,
Valentin
« Last Edit: July 02, 2010, 12:16:59 PM by basman74 »
 

Offline basman74Topic starter

  • Jr. Member
  • **
  • Join Date: Aug 2007
  • Posts: 61
    • Show all replies
Re: Homebrew Tandy 1000 PC replica
« Reply #14 on: July 02, 2010, 02:19:44 PM »
Quote from: basman74;568571
I've already begun the final assembly of some boards, though you'd probably laugh if you saw my initial assembly-line for the 'mass production' (gotta show a pic of that one!)


My in-house 'assembly-line'.. :D
« Last Edit: July 02, 2010, 02:25:41 PM by basman74 »