Jasmin time

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:

Jasmin time

Post by Chema »

Hi everyone!

A friend of mine got his hands on a Jasmin disk interface and has been playing with it.

First the bad news. Blake's 7 is not working. It does on the emulator (both Euphoric and Oricutron, that is), but does not pass beyond the 'BOOTING TDOS' (was that it?) message. I have to ask for some testing to see if I can figure out where it gets stuck, but I'd bet the booting sector routines work, but not the ones in the game (from floppy builder) don't. I thought they were equivalent, but the tricks to make them compatible with Jasmin and Microdisk may be failing at some point. I need to have a look.

Second thing is a question... does anybody know a way to transfer SEDORIC or ORICDOS disks or disk images to use with a Jasmin? There are utilities for creating game compilation disks, but all of them use the SEDORIC disk format, which is not readable by TDOS. Is there an easy way to create a JASMIN disk or disk image? I declare my completely lack of any knowledge about this system.
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Jasmin time

Post by Dbug »

I'm not a Jasmin expert at all, never actually used one, sorry!
User avatar
iss
Wing Commander
Posts: 1641
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Jasmin time

Post by iss »

@Chema: I didn't looked at your last modifications in FloppyBuilder, but from your explanation I suspect where can be the problem. Can you try the attached image with the real Jasmin? It should work with Microdisk too and contains some read tests and a write test after them.
Else unfortunately, I don't have Jasmin hardware and I'm not familiar with it at all. But I know for sure that jorodr has one and I can borrow it for test.
Attachments
testfbs.dsk.zip
(31.02 KiB) Downloaded 323 times
romualdl
Officer Cadet
Posts: 52
Joined: Tue Jan 17, 2006 9:42 pm
Location: France

Re: Jasmin time

Post by romualdl »

Hi there,

Have 1 ou 2 Jasmin 2 here, had used them to dump some Oric Jasmin disk to the PC -how I don't remember) but never used them the other way if I remember well (it was looonnnng ago).
User avatar
Chema
Game master
Posts: 3014
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: Jasmin time

Post by Chema »

iss wrote: Wed Dec 19, 2018 9:36 pm @Chema: I didn't looked at your last modifications in FloppyBuilder, but from your explanation I suspect where can be the problem. Can you try the attached image with the real Jasmin? It should work with Microdisk too and contains some read tests and a write test after them.
Else unfortunately, I don't have Jasmin hardware and I'm not familiar with it at all. But I know for sure that jorodr has one and I can borrow it for test.
I will ask my friend to test it whenever he has time, but I would really appreciate any clue about where the problem is. The code I use not only works on real Microdisc and emulated Jasmin, but also avoids the Telestrat bug, which is the trickiest part. It may add some cycles, so there might be some timing issues which affect only the Jasmin... don't know.
User avatar
iss
Wing Commander
Posts: 1641
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Jasmin time

Post by iss »

Okay, thanks to jorodr now I have in my hands working Jasmin.
The good news are it's very stable and works perfect with ft-dos.
The bad news are clear: B7 (v1.1,v.1.2,v1.3) and my modifications don't work :(.
This is actually not so bad because there are at-least two of us motivated to solve the issue :)
Definitely the first sector is loaded and executed and that's it so far. I'll start to create kind of debugging code to guess where things fail.
Any ideas and sample code how to detect the failure are welcome - the sooner the better!
User avatar
Chema
Game master
Posts: 3014
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: Jasmin time

Post by Chema »

Great, as I said in the other thread :P

The code of B7 is in the repository, and it was double checked by Fabrice. It also works on the emulators (both Oricutron and Euphoric).

And it would be nice, once this is done, to investigate the disk structure...
User avatar
iss
Wing Commander
Posts: 1641
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Jasmin time

Post by iss »

Well, let's wake-up little this thread...
The last 10 days I'm focused mainly to find solution which works stable with real Jasmin. Unfortunately no joy so far which starts to drive me crazy...
After solving lots of small details during boot process, now the problem is that the same code drops bytes with Jasmin but works perfectly with Microdisc :( and of course all emulators work like charm. I've collected lot of information but if someone has any idea - it will be appreciated. My wish is to finish it this year!

PS: as side effect I can recognize Oricutron, Euphoric and different real hardware, so it's theoretically possible to create "protected" software which can run on specific platform only... (stupid idea but fun :))
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Jasmin time

Post by Dbug »

PS: as side effect I can recognize Oricutron, Euphoric and different real hardware, so it's theoretically possible to create "protected" software which can run on specific platform only... (stupid idea but fun :))
It's actually interesting to have, if only for "sys info" type of programs :)
User avatar
iss
Wing Commander
Posts: 1641
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Jasmin time

Post by iss »

Dbug wrote: Thu Dec 26, 2019 10:08 pm It's actually interesting to have, if only for "sys info" type of programs :)
Here you are Oricutron, Euphoric, CLK-signal and Jasmin detected!
sys-info.png
sys-info.png (653.3 KiB) Viewed 9592 times
Attache is the DSK image :)
Attachments
sys-info.dsk.zip
(18.13 KiB) Downloaded 270 times
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Jasmin time

Post by Dbug »

We should ask the people making the Atmos core for the MiST to try it :)
User avatar
Chema
Game master
Posts: 3014
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: Jasmin time

Post by Chema »

As soon as Microdisc is included, be sure :)

Yeah, I am somewhat involved, but more trying to help than anything else... my knowledge about FPGAs is null XD
ThomH
Flying Officer
Posts: 238
Joined: Thu Oct 13, 2016 9:55 pm

Re: Jasmin time

Post by ThomH »

It'd be interesting to know what the problem was if anybody can fill in that detail? I couldn't think of a reason that the Jasmin's independent clock should cause a race condition on the data request bit given that it's reset only when you actually read data, not just by reading the status, and ditto couldn't think of a reason why having DRQ forwarded as an interrupt source should cause a problem (assuming interrupts are disabled). So I couldn't guess.
User avatar
iss
Wing Commander
Posts: 1641
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Jasmin time

Post by iss »

ThomH wrote: Tue Jan 07, 2020 4:10 pm... Jasmin's independent clock should cause a race condition on the data request bit ...
Yes, there is such race condition and even more - what you read from status/data registers depends on alignment of some addresses :shock: . I'm preparing to publish lot of info which I've collected recently...
Maybe I should start a series of videos called "Annoyinglopedia: Jasmin internals"!

Long post follows...
ThomH
Flying Officer
Posts: 238
Joined: Thu Oct 13, 2016 9:55 pm

Re: Jasmin time

Post by ThomH »

iss wrote: Thu Jan 09, 2020 6:08 pm
ThomH wrote: Tue Jan 07, 2020 4:10 pm... Jasmin's independent clock should cause a race condition on the data request bit ...
Yes, there is such race condition and even more - what you read from status/data registers depends on alignment of some addresses :shock: . I'm preparing to publish lot of info which I've collected recently...
Maybe I should start a series of videos called "Annoyinglopedia: Jasmin internals"!

Long post follows...
Cool, I look forward to it. My completely wrong conclusion was based on the fact that you get DRQ programmatically by inspecting the status register, but clear it by accessing the data register. So the most common race condition I'm aware of — accessing a register with an atomic get and clear, exactly when it's also supposed to be set — doesn't seem to apply. I am definitely going to learn something.
Post Reply