Jump to content

Stuart

Members
  • Content Count

    1,020
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Stuart

  1. Any difference if you swap the CRU addresses of the cards? The same card still corrupts? Can you swap RAMs between the first and second cards and see if the problem moves with them? (Yes, you will have to reload the data on each card ...) Are you able to hook up a temporary +5V supply to the RAMs to keep them powered while the rest of the system is off, and see if it still happens? To rule out power problems.
  2. I was wondering where the connection to the TI was.
  3. The Magnavox Odyssey is a different system. Nothing at all to do with the 4A.
  4. I've attached a disk image with the mouse program. Unzip it and copy it into a spare volume on your NanoPEB (can go in as any volume). Then using the E/A cartridge you want option 3 "Load and Run", filename DSKx.MOUSE_O (replace x with the drive letter mapped to the volume), program name START. (I've added the disk image to my web page as well. Also, someone who tried it reported that on the screen where you have to "click [here] to continue", it only works if you click on the last "e" in "here".) Vol 9 Backup (Mouse).zip
  5. Your mouse won't work unless it is a 'combo' mouse - one that supports both serial and PS/2 protocols. And there's no obvious way to know if it is or not other than by trying it. The adaptor you have will just be connecting different pins on the two connectors - it doesn't do any protocol conversion. There are plenty of 'true' serial mice on eBay with the correct connector, but prices are becoming a premium ...
  6. I suspect that moving the joystick to the left is pulling the left line low (you're making a contact in the joystick to connect 'left' to 0V), so the CRU line is *not* set (but the right/up/down lines *are* set).
  7. I've been playing with breadboards and PCBs again, and have a new little system available based on our favourite processor, the TMS 9900. Specs are: 16-bit TMS 9900 microprocessor running at 3 MHz. TMS 9901 Programmable Systems Interface. 32K + 32K byte (two banks) EPROM, bank selectable through jumper or CRU output bit. 32K + 32K byte (two banks) battery-backed static RAM, bank selectable through CRU output bit. RS-232 serial port operating at 19200 Baud (7 data bits, even parity, 2 stop bits). Single +5V @ 200mA power supply requirement. Reset switch. Small prototyping area on PCB. Runs a system monitor, Cortex BASIC and Forth. No means of saving programs, but you can maintain/edit them on the PC and download them over the serial link. On the PCB, there are take-off points for all the main signals, if you want to expand it further. More details here: http://www.stuartconner.me.uk/tms9900_breadboard/tms9900_breadboard.htm. I've got a couple of bare PCBs spare - anyone interested? £27 each plus postage to you from the UK. This will include: The PCB. A TMS9900, 9901, 9904. I was given several sets of these, so am passing them on for free. Some parts appear to be “remanufactured in China”, but I’ve tested them and they seem OK (at least in the short term). +12V converter module. 64-pin turned pin IC socket. 3.3uH choke. Reset switch, power socket, pin strips. Various resistors where I have lots of spares. All the other parts needed are easily available. Let me know if interested.
  8. Anyone have a handy link to the newsletter? I built a programmer for 2708 and 2716 EPROMs years ago (http://www.stuartconner.me.uk/ti/ti.htm#eprom_programmer); just interested to see what their design was like.
  9. With COC though, by having the 'operand' in a register, it does allow you to (for example) easily check each bit position in a loop. So it all depends what you're trying to do.
  10. There's my stuff at www.stuartconner.me.uk.
  11. They're actually BNC connectors (for coax cable). https://en.wikipedia.org/wiki/BNC_connector
  12. A bit of Googling ... and it seems our very own Acadiel has (or had) a copy. https://forums.arcade-museum.com/showpost.php?s=84515e5d1f26cdebe5c1ed7b0b08ae62&p=1728321&postcount=10
  13. Only three board plus the housing/backplane I think. I've got one of these and more - loads of information at http://www.stuartconner.me.uk/tm990/tm990.htm. I think his pricing is a tad optimistic!
  14. There's a data manual for the TMS9901 dated July 1977, and for the TMS9902 dated January 1977. So they weren't far behind the processor. I've attached a couple of scans of contemporary magazine articles regarding the TMS9900. I think us being critical of the 9900 as a general processor in a home computer is a little unfair - that's a long, long way from its original uses. There's an interesting bit relating to something that JamesD said: "If TI hadn't tried to directly copy their existing CPUs almost exactly, I think the 9900 would have been much more competitive." The article says "Unlike other 16-bit microprocessors, the 9900 was designed to be software compatible with a mini-computer family - the Texas Instruments 990 series - rather than with a microprocessor. Texas Instruments' philosophy of microprocessor design dictates that advances in minicomputer systems development be incorporated into new microprocessors as soon as improvements in VLSI technology permit it. The result is a parallel development of both a microprocessor and a minicomputer family, with software compatibility between families and among individual members of each family." TMS9900Overview.pdf TMS9900RTControl.pdf
  15. Have you seen this, which has a bit about the XDS emulator, and a few scant details of the TMS9996? http://bitsavers.trailing-edge.com/pdf/ti/TMS320xx/TMS320C14_TMS320E14_Users_Guide_1988.pdf
  16. The Inside Story of Texas Instruments’ Biggest Blunder: The TMS9900 Microprocessor http://spectrum.ieee.org/geek-life/history/the-inside-story-of-texas-instruments-biggest-blunder-the-tms9900-microprocessor
  17. Here's a version that runs under Cortex BASIC. Should be fairly easy to convert to another dialect. The original article/listing is now at www.atariarchives.org/bigcomputergames/showpage.php?page=20. 1 REM LISTING FROM: 2 REM WWW.ATARIARCHIVES.ORG/BIGCOMPUTERGAMES/PAGES/PAGE22.JPG 10 REM 20 REM ELIZA/DOCTOR 30 REM CREATED BY JOSEPH WEIZENBAUM 40 REM THIS VERSION BY JEFF SHRAGER 50 REM EDITED BY BOB ANDERSON 60 REM CREATIVE COMPUTING 61 REM CONVERTED TO CORTEX BASIC BY STUART CONNER 15/06/2012 70 REM 80 REM --- INITIALISATION --- 90 DIM $C[14],$I[14],$K[14],$F[14],$S[14],$R[14],$P[14],$TMP[14],$TMQ[14] 100 DIM SS[36],RR[36],NN[36] 110 N1=36: N2=12: N3=112 120 RESTOR 2530 130 FOR X=1 TO N1 140 READ SS[X],L: RR[X]=SS[X]: NN[X]=SS[X]+L-1 150 NEXT X 155 PRINT @"C": REM CLEAR SCREEN 160 PRINT "HI! I'M ELIZA. WHAT IS YOUR PROBLEM?" 170 REM 180 REM --- USER INPUT --- 190 REM 200 INPUT $I[0] 210 $TMP[0]=" "+$I[0]+" ": $I[0]=$TMP[0] 220 REM 230 FOR L=1 TO LEN[$I[0]] 239 $ZZ=$I[0;L],1 240 IF $ZZ="'" THEN $TMP[0]=$I[0],L-1: $TMQ[0]=$I[0;L+1]: $I[0]=$TMP[0]+$TMQ[0]: GOTO 239 250 IF L+4<=LEN[$I[0]] THEN $ZZ=$I[0;L],4: IF $ZZ="SHUT" THEN PRINT "SHUT UP ...":END 260 NEXT L 270 IF $I[0]=$P[0] THEN PRINT "PLEASE DON'T REPEAT YOURSELF": GOTO 170 280 REM 290 REM --- FIND KEYWORD --- 300 REM 310 RESTOR 320 SSS=0 330 FOR KK=1 TO N1 340 READ $K[0] 350 IF SSS>0 THEN GOTO 390 370 L=POS[$K[0],$I[0]]: IF L>0 THEN SSS=KK: T=L: $F[0]=$K[0] 390 NEXT KK 400 IF SSS>0 THEN KK=SSS: L=T: GOTO 430 410 KK=36: GOTO 630 420 REM 430 REM TAKE RIGHT PART OF STRING 440 REM AND CONJUGATE CORRECTLY 450 REM 460 RESTOR 1230 470 $C[0]=" "+$I[0;LEN[$F[0]]+L] 480 FOR X=1 TO N2/2 490 READ $S[0],$R[0] 500 FOR L=1 TO LEN[$C[0]] 510 IF L+LEN[$S[0]]>LEN[$C[0]] THEN GOTO 560 520 $TMP[0]=$C[0;L],LEN[$S[0]]: IF $TMP[0]<>$S[0] THEN GOTO 560 530 $TMP[0]=$C[0],L-1: $TMQ[0]=$TMP[0]+$R[0]+$C[0;LEN[$S[0]]+L]: $C[0]=$TMQ[0] 540 L=L+LEN[$S[0]] 550 GOTO 600 560 IF L+LEN[$R[0]]>LEN[$C[0]] THEN GOTO 600 570 $TMP[0]=$C[0;L],LEN[$R[0]]: IF $TMP[0]<>$R[0] THEN GOTO 600 580 $TMP[0]=$C[0],L-1: $TMQ[0]=$TMP[0]+$S[0]+$C[0;LEN[$R[0]]+L]: $C[0]=$TMQ[0] 590 L=L+LEN[$S[0]] 600 NEXT L 610 NEXT X 620 REM 630 REM --- GET REPLY --- 640 REM 650 RESTOR 1330 660 FOR X=1 TO RR[KK]: READ $F[0]: NEXT X 670 RR[KK]=RR[KK]+1: IF RR[KK]>NN[KK] THEN RR[KK]=SS[KK] 680 $TMP[0]=$F[0;LEN[$F[0]]]: IF $TMP[0]<>"*" THEN PRINT $F[0]: $P[0]=$F[0]: GOTO 170 690 $TMP[0]=$F[0],LEN[$F[0]]-1: PRINT $TMP[0];$C[0] 700 $P[0]=$F[0]: GOTO 170 1000 REM 1010 REM --- PROGRAM DATA --- 1020 REM 1030 REM --- KEYWORDS --- 1040 REM 1050 DATA "CAN YOU","CAN I","YOU ARE","YOURE","I DONT","I FEEL" 1060 DATA "WHY DONT YOU","WHY CANT I","ARE YOU","I CANT","I AM","IM " 1070 DATA "YOU ","I WANT","WHAT","HOW","WHO","WHERE","WHEN","WHY" 1080 DATA "NAME","CAUSE","SORRY","DREAM","HELLO","HI ","MAYBE" 1090 DATA "NO","YOUR","ALWAYS","THINK","ALIKE","YES","FRIEND" 1100 DATA "COMPUTER","NOKEYFOUND" 1200 REM 1210 REM --- CONJUGATION DATA --- 1220 REM 1230 DATA " ARE "," AM ","WERE ","WAS "," YOU "," I ","YOUR ","MY " 1240 DATA " I'VE "," YOU'VE "," I'M "," YOU'RE " 1300 REM 1310 REM --- REPLIES --- 1320 REM 1330 DATA "DON'T YOU BELIEVE THAT I CAN*" 1340 DATA "PERHAPS YOU WOULD LIKE TO BE ABLE TO*" 1350 DATA "YOU WANT ME TO BE ABLE TO*" 1360 DATA "PERHAPS YOU DON'T WANT TO*" 1370 DATA "DO YOU WANT TO BE ABLE TO*" 1380 DATA "WHAT MAKES YOU THINK I AM*" 1390 DATA "DOES IT PLEASE YOU TO BELIEVE THAT I AM*" 1400 DATA "PERHAPS YOU WOULD LIKE TO BE*" 1410 DATA "DO YOU SOMETIMES WISH YOU WERE*" 1420 DATA "DON'T YOU REALLY*" 1430 DATA "WHY DON'T YOU*" 1440 DATA "DO YOU WISH TO BE ABLE TO*" 1450 DATA "DOES THAT TROUBLE YOU?" 1460 DATA "TELL ME MORE ABOUT SUCH FEELINGS." 1470 DATA "DO YOU OFTEN FEEL*" 1480 DATA "DO YOU ENJOY FEELING*" 1490 DATA "DO YOU REALLY BELIEVE I DON'T*" 1500 DATA "PERHAPS IN GOOD TIME I WILL*" 1510 DATA "DO YOU WANT ME TO*" 1520 DATA "DO YOU THINK YOU SHOULD BE ABLE TO*" 1530 DATA "WHY CAN'T YOU*" 1540 DATA "WHY ARE YOU INTERESTED IN WHETHER OR NOT I AM*" 1550 DATA "WOULD YOU PREFER IF I WERE NOT*" 1560 DATA "PERHAPS IN YOUR FANTASIES I AM*" 1570 DATA "HOW DO YOU KNOW I CAN'T*" 1580 DATA "HAVE YOU TRIED?" 1590 DATA "PERHAPS YOU CAN NOW*" 1600 DATA "DID YOU COME TO ME BECAUSE YOU ARE*" 1610 DATA "HOW LONG HAVE YOU BEEN*" 1620 DATA "DO YOU BELIEVE IT IS NORMAL TO BE*" 1630 DATA "DO YOU ENJOY BEING*" 1640 DATA "WE WERE DISCUSSING YOU -- NOT ME." 1650 DATA "OH, I*" 1660 DATA "YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU?" 1670 DATA "WHAT WOULD IT MEAN IF YOU GOT*" 1680 DATA "WHY DO YOU WANT*" 1690 DATA "SUPPOSE YOU SOON GOT*" 1700 DATA "WHAT IF YOU NEVER GOT*" 1710 DATA "I SOMETIMES ALSO WANT*" 1720 DATA "WHY DO YOU ASK?" 1730 DATA "DOES THAT QUESTION INTEREST YOU?" 1740 DATA "WHAT ANSWER WOULD PLEASE YOU THE MOST?" 1750 DATA "WHAT DO YOU THINK?" 1760 DATA "ARE SUCH QUESTIONS ON YOUR MIND OFTEN?" 1770 DATA "WHAT IT IS YOU REALLY WANT TO KNOW?" 1780 DATA "HAVE YOU ASKED ANYONE ELSE?" 1790 DATA "HAVE YOU ASKED SUCH QUESTIONS BEFORE?" 1800 DATA "WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?" 1810 DATA "NAMES DON'T INTEREST ME." 1820 DATA "I DON'T CARE ABOUT NAMES. GO ON." 1830 DATA "IS THAT THE REAL REASON?" 1840 DATA "DON'T ANY OTHER REASONS COME TO MIND?" 1850 DATA "DOES THAT REASON EXPLAIN ANYTHING ELSE?" 1860 DATA "WHAT OTHER REASON MIGHT THERE BE?" 1870 DATA "PLEASE DON'T APOLOGISE." 1880 DATA "APOLOGIES ARE NOT NECESSARY." 1890 DATA "WHAT FEELINGS DO YOU GET WHEN YOU APOLOGISE?" 1900 DATA "DON'T BE SO DEFENSIVE!" 1910 DATA "WHAT DOES THAT DREAM SUGGEST TO YOU?" 1920 DATA "DO YOU DREAM OFTEN?" 1930 DATA "WHAT PERSONS APPEAR IN YOUR DREAMS?" 1940 DATA "ARE YOU DISTURBED BY YOUR DREAMS?" 1950 DATA "HOW DO YOU DO ... PLEASE STATE YOUR PROBLEM." 1960 DATA "YOU DON'T SEEM QUITE CERTAIN." 1970 DATA "WHY THE UNCERTAIN TONE?" 1980 DATA "CAN'T YOU BE MORE POSITIVE?" 1990 DATA "YOU AREN'T SURE?" 2000 DATA "DON'T YOU KNOW?" 2010 DATA "ARE YOU SAYING THAT JUST TO BE NEGATIVE?" 2020 DATA "YOU ARE BEING A BIT NEGATIVE." 2030 DATA "WHY NOT?" 2040 DATA "ARE YOU SURE?" 2050 DATA "WHY NO?" 2060 DATA "WHY ARE YOU CONCERNED ABOUT MY*" 2070 DATA "WHAT ABOUT YOUR OWN*" 2080 DATA "CAN YOU THINK OF A SPECIFIC EXAMPLE?" 2090 DATA "WHEN?" 2100 DATA "WHAT ARE YOU THINKING OF?" 2110 DATA "REALLY, ALWAYS?" 2120 DATA "DO YOU REALLY THINK SO?" 2130 DATA "BUT YOU ARE NOT SURE YOU*" 2140 DATA "DO YOU DOUBT YOU*" 2150 DATA "IN WHAT WAY?" 2160 DATA "WHAT RESEMBLANCE DO YOU SEE?" 2170 DATA "WHAT DOES THE SIMILARITY SUGGEST TO YOU?" 2180 DATA "WHAT OTHER CONNECTIONS DO YOU SEE?" 2190 DATA "COULD THERE REALLY BE SOME CONNECTION?" 2200 DATA "HOW?" 2210 DATA "YOU SEEM QUITE POSITIVE." 2220 DATA "ARE YOU SURE?" 2230 DATA "I SEE." 2240 DATA "I UNDERSTAND." 2250 DATA "WHY DO YOU BRING UP THE TOPIC OF FRIENDS?" 2260 DATA "DO YOUR FRIENDS WORRY YOU?" 2270 DATA "DO YOUR FRIENDS PICK ON YOU?" 2280 DATA "ARE YOU SURE YOU HAVE ANY FRIENDS?" 2290 DATA "DO YOU IMPOSE ON YOUR FRIENDS?" 2300 DATA "PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU?" 2310 DATA "DO COMPUTERS WORRY YOU?" 2320 DATA "ARE YOU TALKING ABOUT ME IN PARTICULAR?" 2330 DATA "ARE YOU FRIGHTENED BY MACHINES?" 2340 DATA "WHY DO YOU MENTION COMPUTERS?" 2350 DATA "WHAT DO YOU THINK COMPUTERS HAVE TO DO WITH YOUR PROBLEM?" 2360 DATA "DON'T YOU THINK COMPUTERS CAN HELP PEOPLE?" 2370 DATA "WHAT IS IT ABOUT MACHINES THAT WORRIES YOU?" 2380 DATA "SAY, DO YOU HAVE ANY PSYCHOLOGICAL PROBLEMS?" 2390 DATA "WHAT DOES THAT SUGGEST TO YOU?" 2400 DATA "I SEE." 2410 DATA "I'M NOT SURE I UNDERSTAND YOU FULLY." 2420 DATA "COME, COME, ELUCIDATE YOUR THOUGHTS." 2430 DATA "CAN YOU ELABORATE ON THAT?" 2440 DATA "THAT IS QUITE INTERESTING." 2500 REM 2510 REM --- REPLY FINDING DATA --- 2520 REM 2530 DATA 1,3,4,2,6,4,6,4,10,4,14,3,17,3,20,2,22,3,25,3 2540 DATA 28,4,28,4,32,3,35,5,40,9,40,9,40,9,40,9,40,9,40,9 2550 DATA 49,2,51,4,55,4,59,4,63,1,63,1,64,5,69,5,74,2,76,4 2560 DATA 80,3,83,7,90,3,93,6,99,7,106,6
  18. If you really are just limiting yourself to the joystick port and TI BASIC, I would think that any mouse (whatever the interface/protocol) would have such jittery movement that it would be impossible (or very annoying) to use. Any 'modern' mouse has a resolution of probably 200 dpi or more, and BASIC trying to read and decode the protocol at any sensible mouse movement speed just isn't going to happen. If you're working in assembly however you can get a reasonable response ... http://www.stuartconner.me.uk/ti/ti.htm#connecting_serial_mouse.
  19. Coming from a proud 'Acorn Atom family', I don't recall there being a power switch either. Just had the power lead from the transformer plugging into the jack on the back panel.
  20. In the line 40s you've got X=SQR(A). It should be A=SQR(A). That might be the cause of the error you're seeing.
  21. Well it's certainly not the processor itself that's giving the slow results. Running the test under Cortex BASIC on a simple board with a 3 MHz 9900 running with no wait states, I get a run time of around 01:00:00, accuracy 0.0000057220458984, but the randomness various from around 16 down to as little as 6 when repeating the benchmark. Trying it on a 4 MHz 99105 gives a run time of around 00:15:00.
  22. A few more links: http://www.dtic.mil/dtic/tr/fulltext/u2/a065429.pdf http://www.google.si/patents/USRE33287 (search within it for "9900")
  23. "Like many processor designs, the 9900 didn’t die, it provided the basis of TI’s current 16-bit MCU line, the MSP430 series. The MSP430s instruction set is heavily influenced by the 9900 and largely retains its memory architecture and orthogonal instructions." http://www.cpushack.com/2015/02/05/ti-tms9900sbp9900-accidental-success/
  24. Other uses I've heard about, and quotes from various people I've corresponded with who have worked with the stuff: -- "It was a horticultural process control computer (heating, vents, watering, etc) of the late 1970s/early 1980s. The circuit boards were made inhouse, using the TMS9900 as a CPU, the TMS9901 as interface, then the operating system was stored on a EPROM, the customer configuration and settings on an EEPROM. This interfaced to other boards by ribbon cable for input measurements and solid state or relay outputs to operate on-site hardware. The computer was programmed by service engineer using a DOS application through RS232, there were no moving parts, disc drives or fan for reliable operation, the settings were backed up automatically on a daily basis to the EEPROM." -- TI Portable Speech Lab - real time conversion of speech to LPC for the speech chips. -- Heavily used in semiconductor fab equipment made by a company called Varian. -- Litton aircraft radar (a radar mounted in an aircraft nose cone, I believe). -- "I used to design HW + SW for 99xx in geophysical data and instrumentation systems throughout the 80's; all real time HW and SW that went into airborne systems." -- A PBX controller for Dutch PTT based on 99105 motherboard. -- "The TMS9900 was the first microprocessor I used, way back in 1979 when I was doing research on data communication at Aston University. The Control lab boys were using the 9900 and so it made sense for us Telecomms bods to follow them. We built our own systems but borrowed their development kit - a TI990/10 minicomputer. It had 160K bytes of memory and three 2.5MB hard disk drives. You know the things; disks almost the size of dustbin lids." -- "I did some industrial controllers for machine tools back in the 80's." -- "They built a spectrum analyser based on the TMS9900 with their own hardware and pcbs." -- Used in the Tektronix 7854 oscilloscope. -- "There was a team at (deleted) developing electronics for the Navy and I was part of that team. The equipment used FFT (Fast Fourier Transform) to analyse pressure waves in water (aqua phones) and based on this, a special sort of display was created and shown. This was then interpreted by expert users and they could then understand what types of vessels (and fish) were around the vessel. This equipment was carried by both submarines and surface vessels. Basically for the time it was pretty advanced. It was all housed in several 19 inch racks (4 I think) and used lots of power. It was water cooled. The SBP9900s (in production) were used for various control functions within this equipment. I do not remember how many processors we had in the total device but if we assume about 24 drawers in the whole device I think we had between 2 and 4 processors in each drawer. The processors didn’t do the FFTing of course. At that time we had many TRW 16 bit multipliers working as part of the FFT processing chain. We handled all the exceptions and also all of the control functions (terminals etc.) via the processors. We designed all our own boards plus our own “operating system” for the Texas processors. All of the work was done in assembly (I can remember TXMIRA) and we used the “big” Texas development systems. There was AMPL which we used for emulation, debugging etc. To boot the development system you had to type the bootstrap code in by hand. There were 15 buttons on the front panel. At the time each system had 80 MByte of RAM (battery backed up, using lead acid accumulators I think). We were using so much memory that we could have an effect on memory prices so we were not allowed to say how much memory we needed."
  25. Thanks chaps. I can see it in the data manual, now I know what to look for! So it looks like Rx is the register you're using for the stack pointer, it's pushing the address of the instruction following the BLSK onto the stack, and branching to Addr?
×
×
  • Create New...