[Featured][Dev] PindurTI (Best Thread 2005)
Moderator: MaxCoderz Staff
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.
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]
Projects:
Robot War [TI-82, TI Flash App]
Sonic the Hedgehog [Multiplatform]
-
- MCF Legend
- Posts: 1601
- Joined: Mon 20 Dec, 2004 8:45 am
- Location: Budapest, Absurdistan
- Contact:
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: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.
Yes, I intend to, it's quite important for optimisation. Also BLODs, just for fun.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'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.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.
- Jim e
- Calc King
- Posts: 2457
- Joined: Sun 26 Dec, 2004 5:27 am
- Location: SXIOPO = Infinite lives for both players
- Contact:
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.
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.
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 :)
-
- MCF Legend
- Posts: 1601
- Joined: Mon 20 Dec, 2004 8:45 am
- Location: Budapest, Absurdistan
- Contact:
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?
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?
- Jim e
- Calc King
- Posts: 2457
- Joined: Sun 26 Dec, 2004 5:27 am
- Location: SXIOPO = Infinite lives for both players
- Contact:
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.
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.
I wouldn't doubt though that it was 600hz timer, since the 83+ and the 83+SE were different.
Nice Work.
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.
-
- MCF Legend
- Posts: 1601
- Joined: Mon 20 Dec, 2004 8:45 am
- Location: Budapest, Absurdistan
- Contact:
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.
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.
- Jim e
- Calc King
- Posts: 2457
- Joined: Sun 26 Dec, 2004 5:27 am
- Location: SXIOPO = Infinite lives for both players
- Contact:
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
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).
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.
WHENS MAXCODERS GETTING THIER OWN WORSHIP EMOTICON???
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).
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.
WHENS MAXCODERS GETTING THIER OWN WORSHIP EMOTICON???