Making an Oric "Reboot"

If you want to ask questions about how the machine works, peculiar details, the differences between models, here it is !
How to program the oric hardware (VIA, FDC, ...) is also welcome.
User avatar
Chema
Game master
Posts: 3014
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Making an Oric "Reboot"

Post by Chema »

Hello all.

Does anyone know if it's possible to make an Oric "reboot" from code? I mean perform as if a hard reset had been pressed.

Performing just a CALL DEEK(#FFFC) or jmp $f88f (after switching overlay ram off) does not work, as it does not seem to init SEDORIC again (boots with the white screen and no DOS).

This could ease some things with Space 1999, as I could make it load again from disk with no additional code.

Regards
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug »

Interesting, never been thinking about how it worked with a disk drive.

I know that most Oric protections are doing the CALL DEEK(#FFFC) trick, no idea about how to get the reboot to work with the disc drive active !
User avatar
Symoon
Archivist
Posts: 2307
Joined: Sat Jan 14, 2006 12:44 am
Location: Paris, France

Post by Symoon »

In "Sedoric à nu", it is said (pages 482-483) that at the boot it's the routine in #EB7E IN THE MICRODISC ROM that is executed.

I don't know if there's a way to activate the Microdisc ROM by software, but you can still analyse and copy this routine somewhere (the Microdisc ROM being provided with Euphoric). Maybe it would work?
User avatar
Chema
Game master
Posts: 3014
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

Symoon wrote:In "Sedoric à nu", it is said (pages 482-483) that at the boot it's the routine in #EB7E IN THE MICRODISC ROM that is executed.

I don't know if there's a way to activate the Microdisc ROM by software, but you can still analyse and copy this routine somewhere (the Microdisc ROM being provided with Euphoric). Maybe it would work?
Not sure how to disassemble that routine :oops:

However I was thinking about setting some value on page 3 to make the disk drive init again... just don't know how to do so.

Maybe Fabrice knows the answer.... should drop him a line.

Cheers.
User avatar
Chema
Game master
Posts: 3014
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

Chema wrote:
Maybe Fabrice knows the answer.... should drop him a line.
Guess it... the Master knew the answer :)

This is it. The question seems to be to enable the Microdisc EPROM before calling the routine in FFFC. And, also, Fabrice recommended to disable the Oric ROM. This is done clearing bits 7 and 1 in $314 respectively, so the code to reboot the Oric is:

Code: Select all

    lda $0314
    and #%01111101
    sta $0314

    jmp ($fffc)
Note this only works with Microdisc, not Jasmin or Telestrat, though.

Simple and brilliant. Thanks Fabrice!

EDIT: Obviously you can also call the routine at #EB7E as Symoon said. It also works fine.
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug »

Hum, wonder why creators of Sedoric did not redirected the FFFC handler to do a clean reset :(

All they had to do was to write EB7E there !
User avatar
Chema
Game master
Posts: 3014
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

Dbug wrote:Hum, wonder why creators of Sedoric did not redirected the FFFC handler to do a clean reset :(

All they had to do was to write EB7E there !
I noticed my last post was ambiguous... I meant you have to activate the EPROM and THEN call the routine in EB7E.
User avatar
Twilighte
Game master
Posts: 819
Joined: Sat Jan 07, 2006 12:07 am
Location: Luton, UK
Contact:

Post by Twilighte »

i would personally add a SEI at the start of that code, just incase an IRQ intercepted the code just after. :P
Post Reply