Skip to content

spark2k06/Tandy1000_MiSTer

Repository files navigation

Tandy 1000 port for MiSTer by @spark2k06.

Discussion and evolution of the core in the following misterfpga forum section:

https://misterfpga.org/viewforum.php?f=40

Splash

Description

The purpose of this core is to implement a Tandy 1000 as reliable as possible. For this purpose, the MCL86 core from @MicroCoreLabs and KFPC-XT from @kitune-san are used.

The Graphics Gremlin project from TubeTimeUS (@schlae) has also been integrated in this first stage.

JTOPL by Jose Tejada (@jotego) was integrated for AdLib sound.

JT89 by Jose Tejada (@jotego) was integrated for Tandy sound.

Key features

  • 8088 CPU with these speed settings: 4.77 MHz, 7.16 MHz, 9.54 MHz cycle accurate, and PC/AT 286 at 3.5MHz equivalent (max. speed)
  • Support for IBM Tandy 1000
  • Tandy graphics with 128Kb of shared RAM + CGA graphics
  • Main memory 640Kb + A000 UMB (enabled by default)
  • EMS memory up to 2Mb (enabled by default)
  • Optional Hercules/MDA video (configurable)
  • Simulated Composite Video, F11 -> Swap Video Output with RGB
  • XTIDE support
  • Audio: Tandy, AdLib (OPL2), CMS, speaker
  • Joystick support
  • Mouse support into COM1 serial port, this works like any Microsoft mouse... you just need a driver to configure it, like CTMOUSE 1.9 (available into hdd folder)
  • 2nd SD card support

Build configuration (config.tcl)

The default configuration enables a feature-rich Tandy 1000 profile:

  • System/ROM set to Tandy
  • Tandy video, audio, and keyboard enabled
  • CGA enabled as the baseline video path
  • OPL2, CMS, EMS, and A000 UMB enabled by default
  • HGC/MDA disabled by default (enable it if you need Hercules/MDA)

This default favors optional expansions even if they are not stock on a Tandy 1000, so they are ready for users without a rebuild. You can edit config.tcl to enable or disable any macro and rebuild for a different profile.

Resource profile

Video options dominate resource usage. With CGA+TandyVideo enabled the core already uses 394/553 RAM blocks; enabling all features (including HGC/MDA) reaches 553/553. The current default enables most expansions, so expect usage closer to the upper range. The device budget is 553 RAM blocks and 5,662,720 block memory bits.

Columns are separate builds: Base (all features off), single-feature builds, CGA+TandyVideo (CGA + Tandy video), and All (everything enabled, including HGC/MDA). Values are from recent synthesis runs and can be regenerated by rebuilding with different config.tcl settings.

Resource Max Base CGA CGA+TandyVideo HGC/MDA TandyAudio TandyKBD OPL2 CMS EMS A000_UMB All
ALMs 110,000 12,551 14,229 14,442 13,546 12,802 12,549 13,266 13,505 12,599 12,648 17,605
Registers ~220,000 17,861 19,755 20,081 19,680 17,974 17,883 18,509 18,815 17,776 17,739 24,311
Block memory bits 5,662,720 945,035 2,124,705 3,042,209 2,026,404 945,035 945,035 952,077 945,035 945,035 945,035 4,313,183
RAM blocks (M10K) 553 138 282 394 270 138 138 147 138 138 138 553
DSP blocks 112 33 35 35 33 33 33 34 37 33 33 40

Default configuration (current config.tcl and output_files/Tandy1000.fit.summary) resource usage, shown as percent of the Max column above:

Resource Used % of Max
ALMs 16,210 14.7%
Registers 22,091 10.0%
Block memory bits 3,049,251 53.8%
RAM blocks (M10K) 403 72.9%
DSP blocks 40 35.7%

Quick Start

  • Copy the contents of games/Tandy1000 to your MiSTer SD Card and uncompress hd_image.zip. It contains a FreeDOS image ( http://www.freedos.org/ )
  • Select the core from Computers/Tandy1000.
  • Press WinKey + F12 on your keyboard.
    • CPU Speed: PC/AT 3.5MHz (Max speed)
    • FDD & HDD -> HDD Image: FreeDOS_HD.img
    • BIOS -> Tandy BIOS: tandy.rom
  • Choose Reset & apply settings.

ROM Instructions

ROMs should be provided initially from the BIOS section of the OSD menu. The core has a single BIOS slot; on subsequent boots it is not necessary to provide them unless you want to use others. Original and copyrighted ROMs can be generated on the fly using the python scripts available in the SW folder of this repository:

  • make_rom_with_tandy.py: A valid ROM is created for the Tandy core (tandy.rom) based on the original Tandy 1000 ROM, requires the XTIDE BIOS at address EC00h to work with HD images.

From the same BIOS section of the OSD it is possible to specify an XTIDE ROM of up to 16Kb to work at address EC00h. It is also provided in this repository.

Other Open Source ROMs are available in the same folder:

  • ide_xtl.rom: This ROM corresponds to the XTIDE BIOS, it must be maintained for some scripts to work, it can also be upgraded to a newer version. (Source Code)

Other BIOSes

Mounting the FDD image

The floppy disk image size must be compatible with the BIOS, for example:

  • On Tandy 1000 only 360Kb images work well.
  • Other BIOS may not be compatible, such as OpenXT by Ja'akov Miles and Jon Petroski.

It is possible to use images smaller than the size supported by the BIOS, but only pre-formatted images, as it will not be possible to format them from MS-Dos.

Developers

Any contribution and pull request, please carry it out on the prerelease branch. Periodically they will be reviewed, moved and merged into the main branch, together with the corresponding release.

Thank you!

About

Tandy1000 port for MiSTer by spark2k06.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

 
 
 

Contributors