Page 1 of 3

Jasmin time

Posted: Wed Dec 19, 2018 6:49 pm
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.

Re: Jasmin time

Posted: Wed Dec 19, 2018 8:53 pm
by Dbug
I'm not a Jasmin expert at all, never actually used one, sorry!

Re: Jasmin time

Posted: Wed Dec 19, 2018 9:36 pm
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.

Re: Jasmin time

Posted: Wed Dec 19, 2018 9:39 pm
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).

Re: Jasmin time

Posted: Wed Dec 19, 2018 11:12 pm
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.

Re: Jasmin time

Posted: Mon May 06, 2019 2:50 pm
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!

Re: Jasmin time

Posted: Mon May 06, 2019 3:56 pm
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...

Re: Jasmin time

Posted: Thu Dec 26, 2019 10:04 pm
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 :))

Re: Jasmin time

Posted: Thu Dec 26, 2019 10:08 pm
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 :)

Re: Jasmin time

Posted: Thu Dec 26, 2019 10:55 pm
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 9622 times
Attache is the DSK image :)

Re: Jasmin time

Posted: Fri Dec 27, 2019 9:06 am
by Dbug
We should ask the people making the Atmos core for the MiST to try it :)

Re: Jasmin time

Posted: Fri Dec 27, 2019 4:17 pm
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

Re: Jasmin time

Posted: Tue Jan 07, 2020 4:10 pm
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.

Re: Jasmin time

Posted: Thu Jan 09, 2020 6:08 pm
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...

Re: Jasmin time

Posted: Thu Jan 09, 2020 7:24 pm
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.