FastBoot/FastLoad on Pravetz 8D/Disk II

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
iss
Wing Commander
Posts: 1637
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by iss »

In my opinion it's worth, because it's not marginal but "boutique stuff". ;)

EDIT: I'm starting to de-marginalize 8D hardware - with new one the number of users will be increased by 100% :D.
20180408_155723.jpg
Scalex
2nd Star Corporal
Posts: 31
Joined: Fri Mar 30, 2018 6:01 pm

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by Scalex »

@@iss: you're right! The most important thing is to do what you like! We are all here just for fun anyway!

And there will be - at least - one other person interested in your work because I think the Pravetz 8D with a Disk II is just great!

Btw, source code for my second test is now available (https://github.com/Archange427/LOADZIC)
User avatar
iss
Wing Commander
Posts: 1637
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by iss »

Great sources! :)
One VIA specific thing: the value for timers must be '-2' for precise timings, i.e. #4FBA-2=#4FB8.
And this 1.0205 Mhz - I think it's apple][ clock, for Oric in my opinion it need to be exactly 1.0 MHz.
Scalex
2nd Star Corporal
Posts: 31
Joined: Fri Mar 30, 2018 6:01 pm

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by Scalex »

@@iss: yes 1.0205Mhz was for Apple II but I reused directly (lazy you say?!) the music data file I used for Apple II and frequencies were calculated for 1.025Mhz so I leave these value for the INT.

But honestly but I'm not sure that much changes the sound heard :D

Thanks for the -2 tip btw!
And to confirm that the Oric's clock was exactly 1.0Mhz. I looked for this info but did not find anything "convincing".
All the books say 1Mhz but that's also what most of the books said about the Apple II!
User avatar
iss
Wing Commander
Posts: 1637
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by iss »

Well, I finished the new controller and I'm very happy to say it works perfect!
On the right is old broken one FDC, on the left - the new beast (still with trimmers for fine adjusting of the MAP signal),
20180421_000450.jpg
And here is my version of the slideshow "as is" running on real hardware: :shock:


The real hardware is actually bit 'semi-real' - I'm using SDFloppy II emulator instead of real DISK][ floppy.
This device is very beautiful like everything else from a2heaven.

@Scalex: Unfortunately, none of your images are working. Both freeze after 0 sector.
I'll try to put some debug messages in your sources to locate the problem ;).
Scalex
2nd Star Corporal
Posts: 31
Joined: Fri Mar 30, 2018 6:01 pm

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by Scalex »

@iss : very nice job!

It's not a surprise that my two previous tests don't work as is on real hardware.
Because I used an interleaving to boot on Oricutron.
With such interleaving, the other sectors of track 0 cannot be loaded in the correct order from a real DISK II (or a SDFloppy II emulator).
But if I had used the right interleaving, the disks would not boot on Oricutron and since I do not have real material, the choice was obvious! :D
Scalex
2nd Star Corporal
Posts: 31
Joined: Fri Mar 30, 2018 6:01 pm

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by Scalex »

Here is a "special build" of my first test (FASTLOAD with all these well known and fantastic images from the Oric scene) with a Track 0 interleaving to be able to load/run on a real machine (I hope and expect!).

https://github.com/Archange427/FASTLOAD ... oad_rm.dsk

@@iss : could you test it on your real hardware please?
Oh and do you plan to build several controller cards? ;)

note: of course, this DSK does not boot wtih Oricutron.
User avatar
iss
Wing Commander
Posts: 1637
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by iss »

Well done - the "special build" works! I'll make a clip tomorrow.
But I noticed one bad effect - in an undetermined moment graphics mode is switched back to text :?, pictures continue to be loaded but the mode remains text. In ~90% of cases when this happens is the Oric-1 picture just loaded, but I don't think that we can blame this particular picture.
Is it possible that ULA parses an invalid (i.e. unfinished/not fully decoded/partial) byte and this triggers mode switch?
Actually I observed almost the same defect in my version and that's why I'm using temp buffer and copy to hires memory.

@Scalex: About the controller - do you have any DISK][ floppy drive with 20 wires ribbon cable (real and/or emulator) ?
Scalex
2nd Star Corporal
Posts: 31
Joined: Fri Mar 30, 2018 6:01 pm

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by Scalex »

iss wrote: But I noticed one bad effect - in an undetermined moment graphics mode is switched back to text :?, pictures continue to be loaded but the mode remains text. In ~90% of cases when this happens is the Oric-1 picture just loaded, but I don't think that we can blame this particular picture.
Is it possible that ULA parses an invalid (i.e. unfinished/not fully decoded/partial) byte and this triggers mode switch?
Actually I observed almost the same defect in my version and that's why I'm using temp buffer and copy to hires memory.
@iss : do you think it's a hardware or a software bug ?
it's weird. During my tests with Oricutron I never noticed such a issue.
But if it was a hardware problem (byte badly decoded) it should also randomly affect the code ...
And the fact that you do not use a real Disk II but a SD floppy also eliminates a physical problem on the floppy disk (defective sector on the 5.25 disk for example).
Any way to see the content of Hires memory when the issue occurs (to compare with the content that should normally be) ?
iss wrote: @Scalex: About the controller - do you have any DISK][ floppy drive with 20 wires ribbon cable (real and/or emulator) ?
No, I do not have any more Apple II stuff. It's a shame because not so long ago I had several DISK II!.
And I do not even have any Oric hardware currently.
So it was just a rhetorical question!
But your work on the controller board is really very interesting.
And even nowadays, the Disk II / Oric "couple" could be an interesting alternative thanks to the SD Floppy which would simplify the transfer problems.
ThomH
Flying Officer
Posts: 238
Joined: Thu Oct 13, 2016 9:55 pm

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by ThomH »

iss wrote: Sat Apr 07, 2018 11:20 pm The emulation in Oricutron is very far from perfect, I added it to be able to run DOS-8D and some interesting old software and until now there was no demand for something better, but this will change and I think to add NIB support, which will provide as side effect the possibility to use any interleave. Also I think to add support of images with more than 35 tracks (maybe fixed to 40 and 80), my opinion about sectors is to leave them fixed to 16, still thinking how to implement emulation of double-side images... any ideas are welcome and highly appreciated!
I'm busy adding the Apple II to CLK, so assuming I can figure out how the Pravetz ROMs are intended to page (?), there is likely to be 8D support in an upcoming release. I'm doing a full execution of the Disk II state machine, so hopefully it'll end up being reasonably accurate.

I've not found NIB to be a fantastic file format — it leaves syncs as implicit, so you're left applying your own heuristics to try to place those. Which means every emulator can produce a different result. I think somebody hard-coded the assumption that emulators wouldn't really want to emulate, just spool, which creates a huge amount of work if you want your emulator to emulate and means that the range of disks it can convey which Apple-style DSK cannot is very limited: sectors in any order, including cross-track synchronisation is probably about it.

If possible, skip straight to WOZ. That's actually the only one I currently have even close to implemented; I'm planning to verify my Disk II, then tackle NIB as best I can, then hopefully have achieved enough awareness of nibbilisation to be able to handle DSKs. The author of the file format is very approachable and has supplied a bundle of test images, and it has all been very straightforward so far.

WOZes are just a direct bit stream, with quarter-track* resolution. Most of the document is about trying to talk emulator authors into properly modelling the hardware.

* as can be reached on a Disk II by activating multiple stepper phases simultaneously.
User avatar
iss
Wing Commander
Posts: 1637
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by iss »

Thanks for the rich info about NIB and WOZ image formats, ThomH!
The minimum I wish to add to Oricutron is support of any sector interleave. Else I think it's not worth to add half- and quarter-track positioning ability and all that stuff which in the Apple's world is used for different protection schemes - simply this is one new universe....

@Scalex: Here is the video with the HIRES problem:

I think the problem is really in the nibbles decoding - in one moment ULA catches partially decoded byte which by coincidence is TEXT mode switch. The only idea I have is to use a temp buffer.
Scalex
2nd Star Corporal
Posts: 31
Joined: Fri Mar 30, 2018 6:01 pm

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by Scalex »

@iss: Yes, you're probably right. I finally understood what you meant. I'm a little slow, sorry :D
By using the hires memory for decoding buffer, we meet this kind of issue!
So not a bug... a feature ? ;)
Last edited by Scalex on Thu Apr 26, 2018 9:41 pm, edited 1 time in total.
User avatar
iss
Wing Commander
Posts: 1637
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by iss »

So no a bug... a feature ? ;)
Sure! The most important thing is always to think positively :).
ThomH
Flying Officer
Posts: 238
Joined: Thu Oct 13, 2016 9:55 pm

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by ThomH »

iss wrote: Thu Apr 26, 2018 8:43 pm Thanks for the rich info about NIB and WOZ image formats, ThomH!
The minimum I wish to add to Oricutron is support of any sector interleave. Else I think it's not worth to add half- and quarter-track positioning ability and all that stuff which in the Apple's world is used for different protection schemes - simply this is one new universe....
Even without needing extra precision in track placement, I'd still argue in favour of WOZ on the grounds that a track stored in a NIB is the same thing as a track stored in a WOZ except that a whole bunch of 0 bits have been omitted and it's up to you to guess how to put them back in. WOZ just lists all the bits. I think NIB is advantageous only if you want to be able to get away with an implementation where reading the shift register just directly spools a whole byte from the file.

So, a directly-relevant consequence is:
  • to write a WOZ to a real disk, just spool the bytes to the shift register at the usual once-every-32-cycles rate;
  • to write a NIB to a real disk, perform some guesswork* to try to identify the sync bytes, then remember to wait an extra 8 cycles after writing each.
I'm going to endeavour to support both though, so do whatever you think is appropriate.

* I'm marking all FFs that immediately precede a D5 AA as sync. So I'm effectively locking my support down to disks that used an encoding with the same reserved words as DOS. I think that sort of approach must not be uncommon, since many games have to be cracked to be usable as a NIB. My top tip: if games have to be cracked to work in your container, it's not an accurate representation.
User avatar
Dbug
Site Admin
Posts: 4437
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: FastBoot/FastLoad on Pravetz 8D/Disk II

Post by Dbug »

iss wrote: Thu Apr 26, 2018 8:43 pmI think the problem is really in the nibbles decoding - in one moment ULA catches partially decoded byte which by coincidence is TEXT mode switch. The only idea I have is to use a temp buffer.
So your system loads the lower 4 bits first, then the higher 4 bits?
Maybe you could just ensure that the bit 6 is forced to one when you have your partial value, this way you are guaranteed that there will be no attribute being mistakenly present in video memory.
Post Reply