Page 13 of 13

Posted: Wed Jan 25, 2012 1:09 pm
by Godzil
Dbug wrote:Definitely works on real hardware, both on my Atmos and Pravetz. I believe Jede had it running on his Telestrat as well: We have a funky boot loader that uses relocatable code to work whatever the location chosen by the boot rom to load the code.

I believe the only demo that was not tested completely on real hardware was my first 'Just Oric' demo, the one you fixed. (Individual parts were tested, just not the whole stuff all together with the loader).

Now it's possible that our code is buggy and works only because the real microdisc is much slower than emulators.
By emulator, do you mean software emulator like euphoric/oricutron, or Floppy emulators?

Posted: Wed Jan 25, 2012 2:52 pm
by Xeron
@dbug

Actually, that's a very good point. There is a bug in quintessential, in that it leaves the irq vectors in an invalid state while they are enabled. It just happens that when run on real hardware with a real microdisc, this window of opportunity for a crash occurs between timer 1 overflows, so it is never triggered.

Now, all the timings in Oricutron are very close to real hardware, with two notable exceptions; disk drive and turbotape. It seems the fast drive moves the timing of the demo off so that the crash occurs.

@godzil
This would be an issue for floppy hardware emulators, too.

Posted: Wed Jan 25, 2012 4:23 pm
by Godzil
Xeron wrote:@dbug

Actually, that's a very good point. There is a bug in quintessential, in that it leaves the irq vectors in an invalid state while they are enabled. It just happens that when run on real hardware with a real microdisc, this window of opportunity for a crash occurs between timer 1 overflows, so it is never triggered.

Now, all the timings in Oricutron are very close to real hardware, with two notable exceptions; disk drive and turbotape. It seems the fast drive moves the timing of the demo off so that the crash occurs.

@godzil
This would be an issue for floppy hardware emulators, too.
Ok, I understand now what is the problem

Posted: Thu Jan 26, 2012 8:44 pm
by Xeron
I did some tests, and if I change the speed of the disk emulation, the demo crashes in different places (e.g. Just before the rasterbars), so it seems our theory is correct.

Posted: Thu Jan 26, 2012 10:29 pm
by Dbug
Well well well.
Guess it's another bug in the loader :)

What is the bug exactly, what do you mean by "leaves the irq vectors in an invalid state"?

Posted: Fri Jan 27, 2012 5:44 pm
by Xeron
At least while the Eat Me picture is on the screen, the VIA timer 1 interrupt is enabled, timer 1 is timing away, and the IRQ vector points to this code:

JSR $2020
JSR $4040
RTI

.. but at $2020 there is no code, just garbage. So during that time, if Timer 1 overflows, its game over.

Re: Oricutron v0.1 (now 0.8)

Posted: Thu Feb 16, 2012 11:10 am
by vrozos
Is there any method to CSAVE from Oricutron? I wrote a few Basic lines and I want to keep them for a later use. I tried to insert a tape (a zero bytes tap file) but Oricutron writes nothing to it.

V.

Re: Oricutron v0.1 (now 0.8)

Posted: Thu Feb 16, 2012 6:40 pm
by Xeron
Not in the current release (0.8). The current code in the SVN has full tape saving support, so it'll be in the next version.

If you're able to compile from source, you're welcome to check out the SVN head version and build it, but this is not a stable release, so be careful :)