Jasmin boot sequence and disc structure.

This is the best place to discuss about the various Oric operating systems like Sedoric, Randos, FT-Dos, and others, as well as serious software, utilities, word processors, disassemblers, etc... that runs on oric computers.
User avatar
Dbug
Site Admin
Posts: 4437
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Jasmin boot sequence and disc structure.

Post by Dbug »

When writing my long post about the basis of a new mini os, I was wondering about how the Jasmin was actually working.

I know that instead of having like on the microdisc a dedicated boot sequence where the disc rom takes control of everything when you switch on the system, on the Jasmin you have a normal Oric boot sequence, and then you can press a button to boot the disc system.

How does this work ?

Is there a boot sector somewhere (where and which size) ? How is the system loaded in memory ? What is the disc structure ?

Are the Jasmin and Microdisc discs compatible ? Can a jasmin read sectors on a disc formated on a microdisc, and vice-versa ?
User avatar
Euphoric
Game master
Posts: 99
Joined: Mon Jan 09, 2006 11:33 am
Location: France

Post by Euphoric »

Both the microdisc controller and the jasmin controller have electronics to control the MAP and ROMDIS signals on the expansion port. This allows them to switch between the BASIC rom, the overlay ram, and an eprom that reads the OS from the floppy disk.
As you said, a difference between the microdisc and the jasmin is that at startup, the jasmin electronics lets the Basic rom active. When you press the button, it causes a reset of the CPU (this doesn't reset the ram contents!), and simultaneously the jasmin eprom is made active, and so the eprom reads the boot sector (first sector, track 0), and executes this boot sector.

Of course, the disc structure is different from the Sedoric one, and even from the OricDos one, but Jasmin and Microdisc discs have the same sector size (256 bytes) and thus can be read on both, sector by sector.

Cheers,

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

Post by Dbug »

Euphoric wrote:Both the microdisc controller and the jasmin controller have electronics to control the MAP and ROMDIS signals on the expansion port. This allows them to switch between the BASIC rom, the overlay ram, and an eprom that reads the OS from the floppy disk.
Ok.
So even if the way of doing it is different, they can do the same things.
Euphoric wrote:As you said, a difference between the microdisc and the jasmin is that at startup, the jasmin electronics lets the Basic rom active. When you press the button, it causes a reset of the CPU (this doesn't reset the ram contents!), and simultaneously the jasmin eprom is made active, and so the eprom reads the boot sector (first sector, track 0), and executes this boot sector.
So, I guess it is possible to do a Jasmin and Microdisc compatible disc ?
What about this structure:
- Track 0/sector 1: a Jasmin bootsector
- Track 0/sector 2: a Microdisc bootsector (BOOTUP.COM)
- Track 0/sector 3: a fake Oric dos directory to run BOOTUP.COM

The telestrat will work too with such structure ?
Euphoric wrote:Of course, the disc structure is different from the Sedoric one, and even from the OricDos one, but Jasmin and Microdisc discs have the same sector size (256 bytes) and thus can be read on both, sector by sector.
Do you know where I can find Jasmin master disks as DSK format ?

I'd like to do some patching on the DSK file, and try to get an experimental disc to boot on the 3 systems :)
User avatar
Dbug
Site Admin
Posts: 4437
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug »

Ok, I have been doing some tests, and here it is:

http://www.defence-force.org/download/oric/MultBoot.dsk

Basicaly it is just a proof of concept, this floppy boots as well on a Oric1/Atmos equiped with a Microdisc or Jasmin drive.

On Microdisc it displays three squares (yellow, green, red), and on Jasmin (cyan, magenta, blue) after having reset the system.

I wanted to try on Telestrat, but I realise I do not know how to configure a Telestra to boot on floppies :shock:

Anyway, as I said it's a proof of concept, the disc stopped booting on microdisc when I tried filling a bit the sectors, so I guess there is a lot of values not to modifie, like in offsets $1ae and $1af that better have to keep the values 3 and 0... (else we got error messages at boot).

By the way, does anyone here has code to read a sectors on Jasmin ? It is possible to reuse a variant of Twilighte's Microdisc code ?
User avatar
Euphoric
Game master
Posts: 99
Joined: Mon Jan 09, 2006 11:33 am
Location: France

Post by Euphoric »

So, I guess it is possible to do a Jasmin and Microdisc compatible disc ?
What about this structure:
- Track 0/sector 1: a Jasmin bootsector
- Track 0/sector 2: a Microdisc bootsector (BOOTUP.COM)
- Track 0/sector 3: a fake Oric dos directory to run BOOTUP.COM

The telestrat will work too with such structure ?
Ah, I had correctly guessed you want to build a "universal" boot disk... :-)
Please see the other thread, I have read this one after...
You're perfectly right, it's possible to have common compatible disk.
The most annoying thing is to respect the OricDos format imposed by the microdisc eprom (the eprom indeed contains a truncated version of OricDos 0.6). OricDos format has obliged the other operating systems to fake a mini-OricDos filesystem at the beginning of the disk. Normally you need at least 3 sectors, but by tweaking a little, you can have all three sectors in a single one, this is what I do in the Fantasmagoric boot sector...

Cheers,

Fabrice
User avatar
Twilighte
Game master
Posts: 819
Joined: Sat Jan 07, 2006 12:07 am
Location: Luton, UK
Contact:

Post by Twilighte »

Dbug wrote:By the way, does anyone here has code to read a sectors on Jasmin ? It is possible to reuse a variant of Twilighte's Microdisc code ?
Ugg, that post is dated 2 years ago, did i work on Microdisc then? am i going mad? Where is the Nurse? I want my teddy bear back.
User avatar
Twilighte
Game master
Posts: 819
Joined: Sat Jan 07, 2006 12:07 am
Location: Luton, UK
Contact:

Post by Twilighte »

ok, perhaps a little later than expected but i have now a fairly complete understanding of how the JASMIN EPROM code works.

The following pseudo code gives most information. I can also provide the source in xa format on request.

Code: Select all

;The process may appear quite complex and the code is rather OTT but this
;may be due to the slow behaviour of the EPROM and Overlay Switches and
;the behaviour of the JASMIN FDC.

;F800   $500 bytes are not used
;Press Oric Reset
;FD00   Disable Overlay
;       Disable 6522 IRQ's
;       Copy Bootstrap from EPROM to $400
;       Jump to $400
;401    Reset Jasmin Registers (Not FDC)
;       Disable ROM
;       Set CPU Interrupt Mask
;       Jump back to EPROM and $FE00
;FE00   Disable 6522 IRQ's (For the 3rd time!)
;       Wait 10 Cycles
;       Copy Jasmin Reset Code to $400
;       Select Drive A (Master)
;       Reset Jasmin Hardware
;       Restore Track Zero
;       Long Delay (About ?)
;       If FDC Head Loaded
;               Print "Booting.. TDOS" to status line
;               Wait for Drive Ready
;               Read Track 0, Sector 1 (Page 4) IRQ Driven
;               Wait for Command End
;               Jump to $400
;       else
;               Print "Booting Failed!" to status line
;               Jump to $0400 (Reset code previously copied)
;       end if
;$FF18  Not used
;$FFFC  Reset Vector patched to $FD00
;$FFFE  IRQ vector patched to 28 cycle routine at $FEC7
Whilst this only really proves that the final Boot code is taken from Track 0 Sector 1, is loaded to Page 4 and executed from their, it was well worth doing just to see the way it is written for the real machine rather than a sterile Euphoric load routine.

Incidentally, i believe the reason the Jasmin was designed to start on pressing the Oric Reset was so that the Boot code did not have to constantly search for the presence of a disk in the drive. Also i believe the Oric will just boot up as normal without a disk present which is possibly nicer than the Microdisc which always requires a master disk.

Enjoy! :P
Post Reply