Page 4 of 91

Posted: Wed 23 Mar, 2005 9:00 pm
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.

Posted: Wed 23 Mar, 2005 9:12 pm
by Jim e
That 82 port one was interesting, I wonder how much aplies to the 83.

Posted: Wed 23 Mar, 2005 9:23 pm
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.

Posted: Wed 23 Mar, 2005 9:56 pm
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.

Posted: Wed 23 Mar, 2005 10:16 pm
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.

Posted: Thu 24 Mar, 2005 4:15 pm
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 :)

Posted: Thu 24 Mar, 2005 4:27 pm
by CoBB
Keep up the hope, I think I can do something about it. :)

Posted: Sat 26 Mar, 2005 11:30 am
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?

Posted: Sat 26 Mar, 2005 1:57 pm
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 :)

Posted: Sat 26 Mar, 2005 2:10 pm
by CoBB
I mean the real calculator. And I have quite fresh batteries.

Posted: Sat 26 Mar, 2005 2:46 pm
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 :)

Posted: Sat 26 Mar, 2005 7:50 pm
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:

Posted: Sat 26 Mar, 2005 10:20 pm
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.

Posted: Mon 28 Mar, 2005 11:40 am
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?

Posted: Mon 28 Mar, 2005 3:00 pm
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???