Jump to content
pnr

Musings on 99000 macro code

Recommended Posts

Posted (edited)
7 hours ago, matthew180 said:

Thanks for the reference, I just ordered one (used) from Amazon.  Walter Triebel seems to have written quite a few books on various CPUs during the 80's and early 90's.

 

Yes, thank you, I've just ordered a copy from Amazon UK, only £2.21 GBP

I'd never found that book as i'd searched for TMS99105 not TMS99000

 

Jim

 

Edited by Jimhearne

Share this post


Link to post
Share on other sites
21 minutes ago, Jimhearne said:

 

Yes, thank you, I've just ordered a copy from Amazon UK, only £2.21 GBP

I'd never found that book as i'd searched for TMS99105 not TMS99000

 

Jim

 

Doh, i already have a PDF of that book, Stuart has it on his site 

http://www.stuartconner.me.uk/tms99110_breadboard/downloads/the_99000_microprocessor_-_architecture_software_and_interface_techniques.pdf

 

Good thing is was cheap, maybe i can do a better scan of it.

 

Jim

 

  • Like 2

Share this post


Link to post
Share on other sites

The two in the U.S. were $17 and $30. Hard cover though, and very good condition.  While that was more than I wanted to spend on a 35 year old book, I also like having a physical copy, and the information cannot go out of date. ;) 

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites
On 6/7/2020 at 12:23 PM, Jimhearne said:

Doh, i already have a PDF of that book, Stuart has it on his site 

http://www.stuartconner.me.uk/tms99110_breadboard/downloads/the_99000_microprocessor_-_architecture_software_and_interface_techniques.pdf

 

Good thing is was cheap, maybe i can do a better scan of it.

 

Jim

 

Thanks Jim for the link, unfortunately I'm having a hard time downloading the file, but retrying seems to work, fingers crossed... Big file.

  • Like 2

Share this post


Link to post
Share on other sites
On 6/7/2020 at 9:58 AM, Jimhearne said:

Did you mean TMX and TMP prefixes ?

 

Jim

 

sorry, finger (or brain) trouble. TMX/TMP were pre TMS prefixes indicating devices that were pre qualification status and nothing to worry about, it's e-sample (engineering sample) marked devices you need to be a bit more cautious about

Share this post


Link to post
Share on other sites
On 6/6/2020 at 2:01 PM, speccery said:

Hi Tony, thanks for the comments, very interesting. As is discussed before in this thread, I have three TMS99105 chips, and at least one of them seem to have the TMS99110 floating point macrostore ROM. 

I am curious, what were the systems you were involved in using the TMS99000 series chips outside of TI?

for a few years I worked as a contractor for a company called Seismograph Services developing their DWS & MWS seismic recording systems for use on oil surveys. The MWS system used a 99000 based board with 2M of ram (special double high DIL sockets to take 2 dram DIL devices on top of each other, with a slight horizontal offset). It ran a custom version of the FS990 operating system that was used on the 990/4. We added support for hard drives, tape drives, keyboard with 2 line LCD, 610 memory mapper. Using the FP macrostore instructions we developed a complex maths package as the equipment had to do a lot of FFT type calculations and performance was critical. We did some insane stuff in that package like sliding the WP up and down a few words to move the FP accumulator (R0/R1) into "other" registers during sub calculations, quicker than moving the actual register contents and still accessible as registers just differently numbered registers, really messed with your mind during debugging

 

  • Like 4

Share this post


Link to post
Share on other sites
Posted (edited)

Hi all,

This is the cpu board from a Fluke 1722A Instrumentation controller, normally used to control IEEE488 (yes the same as a PET) instruments.

 

It's based around the TMS99105 cpu.

It has 60K bytes (30 k words) of ram plus it has Macro ram.

There is a bootloader in EPROM

It has a 612 memory mapper and can take additional ram boards up to 1.5meg total.

I've dumped the ROM if anybody fancys disassembling it.

I don't know if the Macrostore ram will be loaded from the bootloader or if it happens later in the loading process.

 

I've got this board booting using it's serial port for keyboard/ display (there is a separate video card) as far as looking for a floppy.

I'm in contact with somebody who i hope has some disk images from a floppy emulator.

 

If anybody is interested in more details please let me know.

 

1323746306_2020-07-0110_49_33.thumb.jpg.991e12912ca9c5a4a124e086746be8f9.jpg

Edited by Jimhearne
  • Like 2

Share this post


Link to post
Share on other sites
10 hours ago, TonyRowell said:

for a few years I worked as a contractor for a company called Seismograph Services developing their DWS & MWS seismic recording systems for use on oil surveys. The MWS system used a 99000 based board with 2M of ram (special double high DIL sockets to take 2 dram DIL devices on top of each other, with a slight horizontal offset). It ran a custom version of the FS990 operating system that was used on the 990/4. We added support for hard drives, tape drives, keyboard with 2 line LCD, 610 memory mapper. Using the FP macrostore instructions we developed a complex maths package as the equipment had to do a lot of FFT type calculations and performance was critical. We did some insane stuff in that package like sliding the WP up and down a few words to move the FP accumulator (R0/R1) into "other" registers during sub calculations, quicker than moving the actual register contents and still accessible as registers just differently numbered registers, really messed with your mind during debugging

 

Thanks for sharing, sounds interesting. That sort of WP manipulation possibilities are certainly unique to the TMS9900 and TMS99000. Luckily TMS99000 instruction set  seems to also add support for normal stacks :)

Share this post


Link to post
Share on other sites
19 hours ago, TonyRowell said:

for a few years I worked as a contractor for a company called Seismograph Services developing their DWS & MWS seismic recording systems for use on oil surveys. The MWS system used a 99000 based board with 2M of ram (special double high DIL sockets to take 2 dram DIL devices on top of each other, with a slight horizontal offset). It ran a custom version of the FS990 operating system that was used on the 990/4. We added support for hard drives, tape drives, keyboard with 2 line LCD, 610 memory mapper. Using the FP macrostore instructions we developed a complex maths package as the equipment had to do a lot of FFT type calculations and performance was critical. We did some insane stuff in that package like sliding the WP up and down a few words to move the FP accumulator (R0/R1) into "other" registers during sub calculations, quicker than moving the actual register contents and still accessible as registers just differently numbered registers, really messed with your mind during debugging

 

Hi Tony,

That sounds awesome to work in this technology and get paid. Do you still have access to any software for a 990 or that 99000 bases system?

We are trying to preserve docs and software before it gets lost l.

Thanks a lot

Share this post


Link to post
Share on other sites
4 hours ago, kl99 said:

Hi Tony,

That sounds awesome to work in this technology and get paid. Do you still have access to any software for a 990 or that 99000 bases system?

We are trying to preserve docs and software before it gets lost l.

Thanks a lot

Software, probably some Mag tape reels and 8" floppies, I have no means of reading them now. I have a vague recollection that one of the tapes has the TIP compiler source on but I could be wrong.

Manuals, quite a bit, anything you know you are short of?

Share this post


Link to post
Share on other sites

It might help you understand some of the strange and apparently contradictory decisions TI made back then if you knew that internally TI operated as several distinct and separate businesses. The semiconductor group was just interested in selling chips, the DSG? group was only interested in selling minicomputers and the home computer group only interested in the 99/4A. Semiconductor group wanted the 99000 as as faster generation of the 9900, the minicomputer group liked that as a cost down on building the minicomputers but was only interested in running it with loads of wait states (can't have the cheap version outperforming their cash cow main product 990/10, 990/12). The non-cooperation between groups was everywhere, our 990/10 had a pair of T50's (washing machine sized 50MB multi-platter disks) and we obtained a pair of T200's - (massive 200MB lol) but they sat idle for 18 months because DSG wouldn't sell the semiconductor group the controller card because they hag brought the drives from an unofficial source on the cheap.

The semiconductor group would love to put the 9900 family in a home computer and "do it right" but couldn't as home computers was another groups territory.

Sooooo ...

I was one of the developers of the Cortex home computer, published as a series of articles in the magazine Electronics Today International, developed in our own time this was an unofficial official project to get the family out into the public. Logistically the company Powertran handled the distribution and ETI the publicity.

Did you know that the first 9995 chips had a cru bit to enable/disable the internal ram? Great in a ram based system where you could disable the internal ram, write stuff in the same location and then re-enable the internal ram, your code/data was now safely hidden and inaccessible :)

  • Like 2

Share this post


Link to post
Share on other sites
14 hours ago, speccery said:

Thanks for sharing, sounds interesting. That sort of WP manipulation possibilities are certainly unique to the TMS9900 and TMS99000. Luckily TMS99000 instruction set  seems to also add support for normal stacks :)

as long as you wanted a stack that grew towards high memory they were fairly painless. We used to use the workspace to make fast routines for things, when you entered you could have all your registers pre-loaded with useful constants, pointers etc, overlapping workspaces was always "fun" just needed lots of coffee to hand :). the BLWP calling mechanism was always handy for passing inline parameters too, not something you get with other architectures, BL was abused in a similar way to save space

 

JMPR0    MOV  R11,R2      GET TABLE ADR
*
* NEXT INSTRUCTION INSERTED TO OVERCOME PROBLEM WITH
* ODD ADDRESS GENERATION (WITH TMS9980 AND 81 PROCESSORS)
*
    CLR  R1
*
JMPR01    MOVB *R11+,R1      GET DISPLACEMENT, DONE?
               JEQ  JMPR02            Y - INSTRUCTION FOLLOWING TABLE
               CB   R0,*R11+         N - CODE FOUND?
               JNE  JMPR01            N - KEEP LOOKING
               SRA  R1,7                Y - POSITION
               A    R1,R2               ADD DISPLACEMENT
               B    *R2                  GOTO ROUTINE
*
* BYTE OPCODE NOT FOUND - RETURN TO INSTRUCTION
* IMMEDIATELY FOLLOWING THE TABLE
*
JMPR02    INC  R11                 MOVE TO NEXT LINE
               RT
 

used to jump +/- 128 words based on R0 MSB used as in

 

*
*    HANDLE TEXT CONTROL CHARACTERS
*
CNTRL  BL   @JMPR0                   ;DO JUMP ON R0 (USES R1,R2)
CJUMP  BYTE HT-CJUMP/2,>09     HT - CURSOR RIGHT
            BYTE BS-CJUMP/2,>08    BS - CURSOR LEFT
            BYTE LF-CJUMP/2,>0A     LF - CURSOR DOWN
            BYTE VT-CJUMP/2,>0B     VT - CURSOR UP
            BYTE FF-CJUMP/2,>0C     FF - CLEAR SCREEN & HOME
            BYTE CR-CJUMP/2,>0D    CR - CURSOR BEGINING OF LINE
            BYTE FS-CJUMP/2,>1C     FS - CURSOR ON
            BYTE GS-CJUMP/2,>1D    GS - CURSOR OFF
       BYTE RS-CJUMP/2,>1E     RS - CURSOR HOME
       DATA 0
 

 

 

  • Like 1

Share this post


Link to post
Share on other sites
59 minutes ago, TonyRowell said:

It might help you understand some of the strange and apparently contradictory decisions TI made back then if you knew that internally TI operated as several distinct and separate businesses. The semiconductor group was just interested in selling chips, the DSG? group was only interested in selling minicomputers and the home computer group only interested in the 99/4A.

 

This reminds me very well of the behaviour of IBM in the nineties, whose OS division promoted OS/2 (which I actually favored over Windows 95, OS/2 was really cool), while the PC/Laptop division sold computers with pre-installed Windows.

Share this post


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

Did you know that the first 9995 chips had a cru bit to enable/disable the internal ram? Great in a ram based system where you could disable the internal ram, write stuff in the same location and then re-enable the internal ram, your code/data was now safely hidden and inaccessible :)

Is this feature gone now? 

 

Beery

Share this post


Link to post
Share on other sites

Obviously; there is no documentation about a switch. For the TI-99/8 they actually used a special 9995 (MP9537) with deactivated internal RAM; it would have sufficed to turn off the RAM if it still had the switch.

Share this post


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

Is this feature gone now? 

 

Beery

yes, existed only for the very first batch of silicon

Share this post


Link to post
Share on other sites
2 hours ago, mizapf said:

 

This reminds me very well of the behaviour of IBM in the nineties, whose OS division promoted OS/2 (which I actually favored over Windows 95, OS/2 was really cool), while the PC/Laptop division sold computers with pre-installed Windows.

TI was quite close to IBM, their joint venture brought about the first token ring chipsets

Share this post


Link to post
Share on other sites
On 7/2/2020 at 7:21 AM, mizapf said:

Obviously; there is no documentation about a switch. For the TI-99/8 they actually used a special 9995 (MP9537) with deactivated internal RAM; it would have sufficed to turn off the RAM if it still had the switch.

Goldangit. 
 

my first attempt to build a 9995 Computer, I pulled the CPU from the 99/8. I used F000 as the workspace.  I thought I fried the chip cuz not even the simplest code worked. Later I got it back in the 99/8 and it was ok...

 

I took a chip out of an SBC built by Mike Read (bar code reader) and started to get somewhere. 

Share this post


Link to post
Share on other sites
On 6/6/2020 at 8:34 PM, dhe said:

This is a really good go to book about the 99000 -

The 99000 Microprocessor: Architecture, Software, and Interface Techniques Paperback – February 1, 1984

by Avtar Singh  (Author), Walter Triebel (Author)
 
All the talk about finding tms99110 bits sprinkled in to 99105's - reminds me of many times during this error, you'd get an sx intel chip that was actually a dx, who failed the co-processor test and the factory, so electronically it was disabled and sold (fairly) as an SX chip. And then others where you got say a 12MHZ products, which started out like as a 16MHZ products that failed the tests, and was sold as a slower product for which it passed the tests.

Triebel and Singh is an excellent reference and has a nice cookbook section, too.

 

Share this post


Link to post
Share on other sites
On 7/2/2020 at 6:22 AM, TonyRowell said:

It might help you understand some of the strange and apparently contradictory decisions TI made back then if you knew that internally TI operated as several distinct and separate businesses. The semiconductor group was just interested in selling chips, the DSG? group was only interested in selling minicomputers and the home computer group only interested in the 99/4A. Semiconductor group wanted the 99000 as as faster generation of the 9900, the minicomputer group liked that as a cost down on building the minicomputers but was only interested in running it with loads of wait states (can't have the cheap version outperforming their cash cow main product 990/10, 990/12). The non-cooperation between groups was everywhere, our 990/10 had a pair of T50's (washing machine sized 50MB multi-platter disks) and we obtained a pair of T200's - (massive 200MB lol) but they sat idle for 18 months because DSG wouldn't sell the semiconductor group the controller card because they hag brought the drives from an unofficial source on the cheap.

The semiconductor group would love to put the 9900 family in a home computer and "do it right" but couldn't as home computers was another groups territory.

Sooooo ...

I was one of the developers of the Cortex home computer, published as a series of articles in the magazine Electronics Today International, developed in our own time this was an unofficial official project to get the family out into the public. Logistically the company Powertran handled the distribution and ETI the publicity.

Did you know that the first 9995 chips had a cru bit to enable/disable the internal ram? Great in a ram based system where you could disable the internal ram, write stuff in the same location and then re-enable the internal ram, your code/data was now safely hidden and inaccessible :)

 

Hi Tony, great to see you here. I hope I'll be able to build a repro Cortex soon. Really nice machine.

 

jbdigriz

 

Edited by jbdigriz

Share this post


Link to post
Share on other sites
On 1/18/2018 at 9:26 AM, pnr said:

Hi,

 

Many thanks for that link! It explains why sometimes TI marketing documents refer to the 99120 as having the "Rx kernel" in macro rom and sometimes as having Pascal support instructions in it. In TI's vision for Microprocessor Pascal the two are closely linked topics.

 

 

This would be the manual "990/12 Writeable Control Store Assembler and Language". It describes the details of microprogramming a TI990/12, I understand. As the 990/12 was released in 1979, I would assume that this manual also dates from 1979, possibly with later revisions.

There is also the User Guide for the MDS-990 Microcode Development System which may be relevant here. (Not sure if it covers the /12 extensions, may only be for the /10.) Would like to find the software, too.

 

jbdigriz

Share this post


Link to post
Share on other sites
On 7/2/2020 at 6:22 AM, TonyRowell said:

The semiconductor group would love to put the 9900 family in a home computer and "do it right" but couldn't as home computers was another groups territory.

 

Still hard to fathom that TI let the Cortex walk out the door. I understand the reasoning, but still...

Edited by jbdigriz

Share this post


Link to post
Share on other sites
5 hours ago, jbdigriz said:

There is also the User Guide for the MDS-990 Microcode Development System which may be relevant here. (Not sure if it covers the /12 extensions, may only be for the /10.) Would like to find the software, too.

 

Do you have that user guide (or a link)? Did anybody ever come across a copy of the "990/12 Writeable Control Store Assembler and Language" manual?

Share this post


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...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...