Dbug wrote:Oula, oula.
Dbug wrote:
Forget about Ftdos, [...]
All that is required is a "load sector" routine which does it all by itself, without requiring any pre-existing stuff.
That's what I understood.
(By the way, I just realised, there are two n°25 Thoric issues November 1986 and December 1986

A typo error...)
The good clue for that is in Theoric n°26 (and not 25) :
there is a detail explanation of the Jasmin control registers
- #3F4 : command register (Read and Write),. The last bit gives the status of the controller (if it is 0, the controller is ready to receive a new command).
#3F7 : Data register It is the register that permits to send or receive some parameters after an instruction. (Etc...)
#3F6 : Sector number. Contains the sector number that will be treated
#3F5 : Track Number. Contains the track that has been read. Used only for Read operation.
#3F8 : Side Number (0 or 1)
#3FC : activation state of the 1st drive (1 if activated, 0 otherelse)
#3FD : activation state of the 2nd drive
#3FE : 3rd drive
#3FF : 4th drive
Here an example of how to put the drive head on a particular track :
1) Select the side : #3F8 <--- 0 or 1
2) Select the drive : #3FC <-- 1 ; #3FD to #3FF <-- 0
3) Rese the command register : #3F4 <-- 0
4) Put the head on the good track :
a) Select the track (data register) : #3F7 <-- 0
b) Put the head on the track... : #3F4 <-- #14 (that is the command for head displacement)
c)...wait until drive is ready again : until bit 0 of #3F4 equals 0
d)Then test the command register :
if bit 3 and 4 are both equal to 0, then it is a success
(PEEK(#3F4) AND #18=0)
else it failed, give it a try again from 1), 4 more times (if it failed 5 time, that means there is a communication problem)
Then, read a sector :
Once the head is on the good track and side
1) Select sector num : #3F6 <-- 0, 1, 2, 3, 4, ..., 17
2) Stop processor interupts : SEI
3) Stop VIA interrupts : asm sequence LDA #$7F / STA $030E
4) Read mode command : #3F4 <-- #88.
From this moment, as soon as interrupts are permitted again (CLI), at each interrupt, the controller sends one after the others, each of the 256 bytes of the sector and put them into the data register (#3F7).
In the thoric, they explain how to modify the IRQ management (there is a full asm listing provided).
The read operation terminates when the controller say itself available again (#3F4=0)
Dbug wrote:
The problem is of course that the source code of all parts of the megademo is not available, so it's not possible to rebuild the full demo. So we need to patch the existing stuff.
Well, it looks like "Impossible Mission",at least, you have some stuff here for future demos.
Dbug wrote:
The problem is of course to know if it's possible to keep the existing sector lay-out,
I would say yes, since with the method given, we can read Sedoric drives

A utility given in Theoric showed how to backup Sedoric files from the Jasmin (so there is a compaibility for access tracks/sectors at least for the floppy layout
Dbug wrote:
in this case what would need to be done is:
- Get a Jasmin friendly boot sector
- Rewrite the loader
Done
Yep, but you are the only skilled here to be able to do that and figure out how to do it
Dbug wrote:
I don't remember if the Jasmin and the Microdisc have their bootsectors located at the same location :-/
Have to check that this evening.