[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

Post Reply
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

There is no LCD refresh simulation. Every pixel is updated instantaneously upon outputting for the time being.

It seems I explained myself somewhat badly: the timer at bit 1 has the hiccups, the one at bit 2 doesn't. No practical difference though. The TIOS uses both quite heavily according to my logs.
User avatar
DJ_O
Calc King
Posts: 2323
Joined: Mon 20 Dec, 2004 6:47 pm
Location: Quebec (Canada)
Contact:

Post by DJ_O »

Jim e wrote:Image

WHENS MAXCODERS GETTING THIER OWN WORSHIP EMOTICON???
That one might do: Image

Without the LCD refresh simulation, I assume that Desolate has no grayscale yet in the emu?
ImageImageImageImage
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Why don't you try for yourself? This is not VTI, it runs anywhere. ;)
Mike K
New Member
Posts: 59
Joined: Sun 16 Jan, 2005 3:25 am
Location: St. Louis
Contact:

Post by Mike K »

CoBB wrote: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.
Perhaps this could be used to measure remaining battery life more accuratley?

-Mike
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Well, if the interrupt frequency changes independently from the CPU clock frequency, and the variation is significant, it might as well be possible.
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 »

No, I think it would take more work than it's worth to test the batteries that way.

Anyway it does still seem faster than the real desolate. I check ducks zelda demo, I rembered at the high frequency you could see a screen load, it was faster than it's supposed to be.

Are the interrupt timers still counting even when masked?


Also will there be a 83+? This is the kind of emu that I could get use to. :D


500th POST, YAY!!!!!!

Image
Image
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Desolate (actually, Duck's GPP) gets into an infinite loop unless the timer interrupt counter is zeroed by writing to port 3. The way I coded it restores the counter only when all timer interrupts have been handled.

The 83+ thing, that's a different story. Since I don't have an 83+ myself, I can't really do anything useful. I'll try to add some initial 82 and 83+ emulation and reveal the source if they work. Sadly enough, my free time is vanishing fast recently, so this might not happen in the weeks to come.
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 »

But the timer should keep looping no matter what, even if the interrupts are disabled and they haven't been cleared by reseting the bits port3.

Well still, great job. :)
Image
User avatar
kv83
Maxcoderz Staff
Posts: 2735
Joined: Wed 15 Dec, 2004 7:26 pm
Location: The Hague, Netherlands
Contact:

Post by kv83 »

is the latest build located at the same location as the first? or isn't it released yet. Cause the build there has still the same readme?

oh yeah... which key do I use when I want to access the memory screen?

edit:
Image

CoBB, you are really a genious!
Image
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Yes, the readme could benefit from a little update. Linking is already implemented, you don't need VTI sav files any more.

The memory screen, just like on the real calc, is 2nd +.
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

tr1p1ea wrote:Ive had lots of problems with things working on an EMU then crashing on real hardware :S.
Tell me about it. I was completely stumped for a while over why some code wouldn't work - in fact, it was because I had accidentally mixed up the order of my #includes at the end of my source and there was some code past the "8K limit" being called. VTI ran it perfectly fine in all configurations, but it would always crash on hardware. Grr.
User avatar
tr1p1ea
Maxcoderz Staff
Posts: 4141
Joined: Thu 16 Dec, 2004 10:06 pm
Location: I cant seem to get out of this cryogenic chamber!
Contact:

Post by tr1p1ea »

:).

Wow CoBB, i have already said this but this is awesome. How long have you been working on this project? ... It has progressed very quickly it seems :).
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
Image
Image
CoBB
MCF Legend
Posts: 1601
Joined: Mon 20 Dec, 2004 8:45 am
Location: Budapest, Absurdistan
Contact:

Post by CoBB »

Most of the time was spent on developing the z80 emulation. I don't know when I started exactly, but it was last month. Not much happened since then, the calculator specific code is really small, around 400 lines with comments and blank lines.
Kalimero
Regular Member
Posts: 130
Joined: Fri 17 Dec, 2004 1:47 pm

Post by Kalimero »

Bit 0 of port 4 probably changes memory mapping. If it's similar to the 83+, my guess is:
reset:
0000-3FFF: rom page 0
4000-7FFF: swappable
8000-BFFF: ram page 1
C000-FFFF: ram page 0
set:
0000-3FFF: rom page 0
4000-7FFF: ram page 0
8000-BFFF: swappable
C000-FFFF: ram page 1

I don't know what bits 4-7 of port 4 do. The TIOS doesn't write arbitrary values though. It's either 0001, 0011, 0111 or 1111. Also, there are a couple things that make me guess it has something to do with cpu clock freq. There aren't that many other devices you can control seemingly without effect and it's on the same port as the timer freq, though that doesn't really mean much. It's up to somebody else to figure this out though. I haven't had an 83 since many years now. If you figure this out, don't forget to update http://wikiti.denglend.net/index.php?title=83:Ports:04.

About port 3, you probably figured out most of it already, but in any case, I've written down some docs by mixing 83+ docs with the little bits I could remember (never wrote down any docs about this kind of stuff) at http://wikiti.denglend.net/index.php?title=83:Ports:03. However, they don't seem to be entirely correct. I suddenly seem to remember that in normal mode bits 0-2 always read 0, which seems to make more sense if I take another look at the interrupt handler. That reminds me, I've got an (almost) complete disassembly of the 1.07 rom, with data structures, strings, jump tables, etc. If anyone wants a copy of that... This is part of the reason I never wrote down any docs. If I wanted to know something I just took another look at the code :)
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 did speed test on writing bit 4-7 on port 4, i got nothing.

However, it does bare a resemblence to how port 3 is written to. It may have something thing to do with the second timer or reseting some hardware or maybe resets the timer clock. Being that it's an interrupt port, It must have something to do with interrupts.

Offtopic:
Oh by the way, thanks for putting the my info the wiki, I never used a wiki before, i tried but I didn't know how(to lazy to google).
But the 83+ freq and the SE freq are different.
http://www.detachedsolutions.com/forum/ ... 7421#27421
I forgot to update my site. :oops:
Image
Post Reply