[Featured][Dev] PindurTI (Best Thread 2005)

Here you can find side projects of the staff and great projects which we think should get extra support. (Note that featured projects are not projects by staff members of MaxCoderz)

Moderator: MaxCoderz Staff

User avatar
DigiTan
Calc Master
Posts: 1069
Joined: Fri 04 Mar, 2005 12:52 am
Location: NW Wisconsin
Contact:

Post by DigiTan »

You might want to get in touch with Joe Clussman for the 82 linkport. He wrote All about the 86 linkport and still knows all of the hardware+software properties off-hand. 'Real easy to contact too.

Also, I've found this to be accurate, but it only applies to the older v19.0 ROM. v19.006 uses some new setup.
My diet consists of nails, code-stealers, and HP fans.
Projects:

Robot War [TI-82, TI Flash App]
Sonic the Hedgehog [Multiplatform]
User avatar
Jim e
Calc King
Posts: 2457
Joined: Sun 26 Dec, 2004 5:27 am
Location: SXIOPO = Infinite lives for both players
Contact:

Post by Jim e »

That 82 port one was interesting, I wonder how much aplies to the 83.
Image
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Jim e wrote:Well, seeing how me and Duck haven't destroyed any calcs yet writing to should be the same I stated for 83+. And reading though is only similar to port 4 on the 83+ not the same.
On the 83 input port 4 is a mirror of the link port. I tried implementing things as written in the 83+ descriptions, but it would only hang the virtual calc. Bit 2 of input port 3 is bugging me really, I'm using constant 0 for it now and it works, but the ROM has definite action for 1 as well (no matter how I connect it to the timer or the LCD, it just dies). The TIOS also outputs $36 to port 4, just before the $76. Actually, it always sets bit 4 as well, although resetting it seems to do no harm. I'm also unsure about bit 0.
Jim e wrote:Also Are you going to make the same bugs when you write to the lcd to fast? Is it already implemeted?
Yes, I intend to, it's quite important for optimisation. Also BLODs, just for fun.
DigiTan wrote:Also, I've found this to be accurate, but it only applies to the older v19.0 ROM. v19.006 uses some new setup.
Yes, I've scanned the whole directory in fact before asking such stupid questions. ;) The fundamental difference between the 82 and the 83 is that the 82 has half the ROM, the rest seems to be pretty much the same.
User avatar
Jim e
Calc King
Posts: 2457
Joined: Sun 26 Dec, 2004 5:27 am
Location: SXIOPO = Infinite lives for both players
Contact:

Post by Jim e »

From the code it looks like it's suposed to be what I said. It's only active when bit 0,(iy+16) set, and then every other interrupt it excutes different code. Which would correspond with what I found on the organization of that timer.

But it's purpose is wierd It checks the status of the battery, I think, then if bit 1,(iy+16) is reset it outs $36, if bit 1,(iy+16) is set it outs $36 then outs $76

It seems very similar to the 83p, code wise, but I couldn't find a purpose for this. Perhaps, since dealing with the battery, it affect power somehow. I dunno just a guess.

Writing Bit 0 of port 4 you mean, that should be the memory mapping for the boot. If thats what your unsure about.

Man I need 83 to debug. I'm checking ebay.
Image
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Yes, that's what I also read from the code. Doesn't seem to make much sense at first. Setting bit 0 of port 4 gives strange results, it'll hang or reset most of the time but not always.
pacHa
Sir Posts-A-Lot
Posts: 190
Joined: Sun 09 Jan, 2005 9:51 am
Contact:

Post by pacHa »

Here are schematics of the differences of the 82's link port between <19.0 and 19.006 ROMs (we could say HW1 and HW2, as for bigger calcs). It's in french though, but I think CoBB could understand. If not, just ask. If those differences could be emulated, that would be nice :)
Image
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Keep up the hope, I think I can do something about it. :)
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

I've been experimenting a bit, and I came to the following conclusion:

My TI-83 (ROM 1.07) is running at 5MHz. Was I the only one to think that it's supposed to run at 6 instead?

The interrupt frequencies are the following (Hz):

xxyy: port 3: ?????xx?, port 4: ?????yy? (? is irrelevant)

0100: 600
0101: 257
0110: 164
0111: 120

1000: 1200
1001: 514
1010: 327
1011: 240

1100: 1800
1101: 771
1110: 491
1111: 360

These values are very similar to Jim's measurements for the 83+, and as my method was quite basic (stopwatch...), I can trust his findings. Nevertheless, there seems to be a 600Hz (bit 1) and a 1200Hz (bit 2) timer. Could others confirm these values on their models, including the clock frequency?
User avatar
DJ_O
Calc King
Posts: 2323
Joined: Mon 20 Dec, 2004 6:47 pm
Location: Quebec (Canada)
Contact:

Post by DJ_O »

it should run at 6 MHz (just some adjustement needed) :) , unless you have a really really really prehistoric computer like my Pentium II :)
ImageImageImageImage
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

I mean the real calculator. And I have quite fresh batteries.
User avatar
DJ_O
Calc King
Posts: 2323
Joined: Mon 20 Dec, 2004 6:47 pm
Location: Quebec (Canada)
Contact:

Post by DJ_O »

uh wait your REAL TI-83 run at 5 MHz????? :shock: :shock: :shock:

Hmm, now I would suggest to... buy a new one :? or ask someone good in electronic if he could overclock it at 6 MHz :)
ImageImageImageImage
User avatar
Jim e
Calc King
Posts: 2457
Joined: Sun 26 Dec, 2004 5:27 am
Location: SXIOPO = Infinite lives for both players
Contact:

Post by Jim e »

ah...someone that know what I went through now. I orginally used a timer too, but I found it to inaccurate. So i thought what if I just plug my calc into my audio in port on my pc and physically record the Frequency. it still wasn't that accurate but it was better than before. plus it gave me insight on how the interrupt timers work.

I wouldn't doubt though that it was 600hz timer, since the 83+ and the 83+SE were different.

Nice Work. :D

Oh and the processor speed, how did you caculate it? I know the calcs are slower than they are said to be, but 5mhz is a bit much. :shock:
Image
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

The simplest possible way: I executed 120M cc's worth of nops with the interrupts disabled and it took 24 seconds instead of the 20 I expected.

Well, I also tried recording the interrupts, and found some oddities. First of all, the base frequency is indeed close to 120Hz, I measured something like 118,58Hz. I guess it would be 120 with a perfect set of batteries, and appropriate for an emulator. I'm also sure that bits 2 and 1 of port 4 act as a frequency divisor with the following values:

00: base * 15/3 (= 5)
01: base * 15/7
10: base * 15/11
11: base * 15/15 (= 1)

The deviation from these values was practically within the accuracy of the measurement. Now the funny stuff: both timers operate at the same frequency, but the timer connected to bit 2 fires twice in a row each time! That should explain the odd interrupt code. The time between the two signals is independent from the frequency, it seems that the second interrupt occurs immediately.

When both timers are enabled, first the doubled timer fires, then the other one. Another nasty thing about this second one is that it hiccups on every 20th tick, i. e. the 19th tick is much longer than the average and the 20th is much shorter, their sum being the same as two average ticks together. (The difference between the long and short tick is independent from the frequency, it's always the same.) That's how I can tell apart the timers when both are enabled. Also, this results in the hiccupping one being missed every 20th time when the interrupt speed is high.

No wonder interrupt emulations can't reproduce the same problems or introduce new ones compared to the real thing.
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

I uploaded a new version with upgraded Wacky Fun Interrupt Emulation (the hiccups are not included). It's interesting how Desolate changed its behaviour. Is it more realistic now?
User avatar
Jim e
Calc King
Posts: 2457
Joined: Sun 26 Dec, 2004 5:27 am
Location: SXIOPO = Infinite lives for both players
Contact:

Post by Jim e »

I didn't see you edit that post. But now that I have, it's like you read my mind except you used better vocabulary and spellling :P

Now you see what I meant organization, but I like how you described it very eloquently.

Though I did't see any "hiccups" when I tested the 83P. It shouldn't really cause any issues though since that timer isn't used, even by tios(regurarly). :roll:

Nice update, the speed is more realistic. But may I ask what the lcd refresh is, the higher the update the better the quallity it seems now. But whats the real refresh rate for the 83?

Nice work CoBB, Flashdebugger isn't this accurate with it's hardware(CPU included) and it was written by TI. :D

Image

WHENS MAXCODERS GETTING THIER OWN WORSHIP EMOTICON???
Image
Post Reply