|
Joined: May 2010
Posts: 1,051
Very Senior Member
|
OP
Very Senior Member
Joined: May 2010
Posts: 1,051 |
Hmm, wizatron issue could also be due to how the digit leds work. They obviously should take some time to decay so strobing them doesn't look like a flickering disco. Maybe related to that.
TI-1270: do you have the post-acid pic? I can see the microinstructions, but barely see the output pla and main opcode pla. Yeah, the change to SETR and removal of RSTR may have something to do with it. I still haven't read enough to understand that change yet. I don't have any working TMS-0970s left, but I have a couple of TMS-0980s, which likely output the same. I could do some logic captures if you think it might help. I uploaded the TI-1270 post-acid pic.
Last edited by R. Belmont; 11/23/14 12:30 AM.
|
|
|
|
Joined: May 2010
Posts: 1,051
Very Senior Member
|
OP
Very Senior Member
Joined: May 2010
Posts: 1,051 |
I looked at the Stop Thief output PLA and found 0-9, C, d, F, G, t and blank. But the game also displays - and r. Do you know how? The TMS1x00 output PLA used the 4-bit accumulator and the status flag to index into a 20-byte table of outputs, but I only see 16 outputs on the Stop Thief die.
|
|
|
|
Joined: Mar 2002
Posts: 1,368 Likes: 120
Very Senior Member
|
Very Senior Member
Joined: Mar 2002
Posts: 1,368 Likes: 120 |
It doesn't work the same way as TMS1000. Instead of outputting all segments at once, it updates digits per-segment. This way, it's possible to make a digit partially blank.
It's not that simple. There are 2 PLAs involved, the segment PLA and output PLA. The chip checks for a coincidence between the two to determine whether or not a digit should be updated.
For details, see TI-30 patent description of fig.13
|
|
|
|
Joined: May 2010
Posts: 1,051
Very Senior Member
|
OP
Very Senior Member
Joined: May 2010
Posts: 1,051 |
OK, so you could tell it to display 8, but only segments e and g, and that would display r?
Stop Thief's segment decoder has different patterns for several digits- 6 and 9 don't have the "tail" segment (a for 6 and d for 9), and 1 is scooted to the left, using segments e and f instead of b and c. It also has a C (adef), d (abcdg), F (aefg), G (acdef), and t (defg). The game also displays - and r which aren't in the segment decoder.
I uploaded ROM dumps for TI Programmer and Business Analyst I, and updated the pinout files and output PLA info. I need to clean the output PLA of TI Programmer to transcribe it, although I think we know enough to reconstruct it if need be. Along with 0-9, it displays A b C d E and F.
|
|
|
|
Joined: Mar 2002
Posts: 1,368 Likes: 120
Very Senior Member
|
Very Senior Member
Joined: Mar 2002
Posts: 1,368 Likes: 120 |
"OK, so you could tell it to display 8, but only segments e and g, and that would display r?" Yes I believe so. Though I don't have anything with TMS0980 emulated yet to confirm it (I only have TI-30 hooked up, but it gets stuck in a loop very quickly).
BTW I forgot to ask before: could you also post your script (or description with pseudo code) to convert a raw dump to tms1000-order dump?
|
|
|
|
Joined: May 2010
Posts: 1,051
Very Senior Member
|
OP
Very Senior Member
Joined: May 2010
Posts: 1,051 |
Here's the pseudocode. It's just a few loops around the code I posted before: roworder[]={
3 4 11 12 19 20 27 28 35 36 43 44 51 52 59 60
0 7 8 15 16 23 24 31 32 39 40 47 48 55 56 63
2 5 10 13 18 21 26 29 34 37 42 45 50 53 58 61
1 6 9 14 17 22 25 30 33 38 41 46 49 54 57 62
}
rx=0
for chapter=0 TO 1 // TMS1100 has 2x ROM
for page=0 TO 15 // 16 pages in each row
for pc=0 TO 63 // 64 rows = program counter
for bit=7 to 0 step -1
if page<8
rawbitindex=chapter*8192+roworder[pc]*128+bit*16+page
else
rawbitindex=chapter*8192+roworder[pc]*128+bit*16+23-page
endif
rom[rx]=rom[rx]*2+rawbits[rawbitindex]
next
rx=rx+1
next
next
next
|
|
|
|
Joined: Mar 2002
Posts: 1,368 Likes: 120
Very Senior Member
|
Very Senior Member
Joined: Mar 2002
Posts: 1,368 Likes: 120 |
Ah, right. Anyway, buttons (1/x), (x^2), and 3,6,9 don't work right on my ti1270 emulation. I checked the bits on the die pic under the smudge for faults. I found 1 bad bit! But seems to have no effect at all on the emulation. ti1270raw.bin offset $174, change $11 to $51.
|
|
|
|
Joined: Mar 2002
Posts: 1,368 Likes: 120
Very Senior Member
|
Very Senior Member
Joined: Mar 2002
Posts: 1,368 Likes: 120 |
Status update of tms0980.c rewrite: - microvsn, merlin, simon: work as good as before - tisr16: boots, can input numbers, but lots of bugs and can't do calculations. If it's an emulation problem it's strange, since others with tms1xxx work well. I see black lines on the die pic, is it possible your rom extract algorithm gets confused there?
- wizatron: works - comp4: works - cnsector: at first glance, it works. Still need to flesh out the MESS driver. - ti1270: boots, can input numbers and some calculations, but some buttons don't work (see above, it's as if they function as RCL and STO)
- ti30, tiprog, tibusan1, stopthie(also the patent one): execute nonsense code and get stuck in a loop quick. Either CPU emu problem or the word/bit order is different.
|
|
|
|
Joined: May 2010
Posts: 1,051
Very Senior Member
|
OP
Very Senior Member
Joined: May 2010
Posts: 1,051 |
Ah, right. Anyway, buttons (1/x), (x^2), and 3,6,9 don't work right on my ti1270 emulation. I checked the bits on the die pic under the smudge for faults. I found 1 bad bit! But seems to have no effect at all on the emulation. ti1270raw.bin offset $174, change $11 to $51. D'oh- sorry about that bit. I just checked the full die again and I didn't notice any other errors. That's a weird collection of buttons not to work- I'd expect a full row or column, not a mix of buttons on 3 different columns and 4 different rows.
|
|
|
|
Joined: May 2010
Posts: 1,051
Very Senior Member
|
OP
Very Senior Member
Joined: May 2010
Posts: 1,051 |
Status update of tms0980.c rewrite: - microvsn, merlin, simon: work as good as before - tisr16: boots, can input numbers, but lots of bugs and can't do calculations. If it's an emulation problem it's strange, since others with tms1xxx work well. I see black lines on the die pic, is it possible your rom extract algorithm gets confused there?
- wizatron: works - comp4: works - cnsector: at first glance, it works. Still need to flesh out the MESS driver. - ti1270: boots, can input numbers and some calculations, but some buttons don't work (see above, it's as if they function as RCL and STO)
- ti30, tiprog, tibusan1, stopthie(also the patent one): execute nonsense code and get stuck in a loop quick. Either CPU emu problem or the word/bit order is different. Cool! The SR16 die got stuck on the metal frame and cracked, which are the lines you see. I thought everything was readable, but I'll double-check. Maybe the Stop Thief patent code is in LFSR order, not execution order. I reordered the raw 0980 bits to match it, so that would explain why they all wouldn't work.
|
|
|
Forums9
Topics9,308
Posts121,697
Members5,070
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|