Login
Back to forumReply to this topicGo to last reply

Posted By

Retroshire
on 2021-01-26
03:22:53
 Jiffydos on C16/Plus 4 > black screen flashy

Is it common experience, that the black screen flashes, when loading with Jiffydos on a 264 machine?

Posted By

siz
on 2021-01-26
04:17:25
 Re: Jiffydos on C16/Plus 4 > black screen flashy

JiffyDOS for the plus/4 series is "not so polished", so this is normal. For some reason (to avoid badlines disrupting timing??) it writes to current raster vertical position ($ff1d) register.
I made a patch for myself to get rid of this because it was very annoying as my RetroTink2X lost sync every time I loaded something with JiffyDOS and also started talks with Jim Brain to include it as an official image but the conversion went to a halt at some point (on my part).

Posted By

gerliczer
on 2021-01-26
04:58:46
 Re: Jiffydos on C16/Plus 4 > black screen flashy

How did your patched version work compared to the official one? Was it perceivably slower or was there no throughput difference worth to mention? Why did you stop the talks?

Posted By

siz
on 2021-01-26
05:37:06
 Re: Jiffydos on C16/Plus 4 > black screen flashy

I haven't noticed anything unusual/slow down. The only difference is that the background color is not set to black and screen does not flash during load.
The talks stopped because Jim asked me why those code parts were in the original version at all and I didn't have the time to analyze it.

Posted By

Retroshire
on 2021-01-26
06:54:16
 Re: Jiffydos on C16/Plus 4 > black screen flashy

Is this the case with both PAL and NTSC systems?

Here is an extract of an 2006 discussion on the topic:
https://groups.google.com/g/comp.sys.cbm/c/3Sip7sQCdm8

Between Maurice Randall and Attila Grosz:

There's no way, believe me I tried. That's why I spent so much time
on this. Even with the screen blanked and the processor switched to
.894 mhz, TED got in the way. I was pulling what hair I had left.
But I finally figured it out yesterday.

It's only the fastload routine where the screen gets blanked. The
128 JiffyDOS in 40 column mode also blanks the screen during
fastload. All other transfers that use the kernal CHRIN, CHROUT,
CIOUT, and ACPTR routines are done without blanking the screen.

JiffyDOS needs about 88 clean clock cycles to get one byte loaded
in during the fastload routine on the C-16 and PLUS/4. And it has
to do this 254 times for each sector.

The 64 can do this without blanking the screen because it only has
to avoid one bad raster line out of every 8. TED gets in the way
for 2 raster lines out of every 8.

Even with the screen blanked and at .894mhz, TED still causes
a problem, but this is what I was finally able to work around.

Early on, I was able to make the fastload routine work with the
screen displayed and only the clock speed slowed down. But the
fastload transfer times weren't acceptable due to having to avoid
the two bad raster lines. The time spent avoiding those lines
caused the disk drive to miss the next sector in the interleave
and it had to go around again. None of the fastloaders on Bo's
site are able to keep up with the interleave on the disks I've
been testing with. The VIC-20, 64, and 128 all keep up just fine.
So, to have the C-16 and PLUS/4 with JiffyDOS not be able to keep
up as well just wouldn't be acceptable.

To the end user, all he notices is the screen blanking just like
the 128 in 40 column mode. This I can live with. What's actually
going on underneath doesn't matter as far as the user is
concerned, he's just looking at a blank screen for a very, very
short time.

One of the test files I've been using is a game called "WU LUNG"
which I downloaded from Bo's site. I used this because it's
big enough and gives me enough time to listen to the drive while
it's loading. I can hear the stepper motor moving as it changes
tracks.

At 117 blocks long, this file loads in about 9 seconds on a 1541.

It only took just a little under 5 seconds on a 1581 with JiffyDOS.
This is due to the 1581 being able to load a whole half track
into it's own memory. The 1541 can only load 1 sector at a time.

Other fastloaders took 25-32 seconds on a 1541.

On a stock 1541, with no fastloader, it took 1 minute and 15 seconds.

From the above results, I think I succeeded and we can live with
a blank screen for the short time it takes to load a file. A 49
block file loads in just 3 seconds on the 1541.

Posted By

siz
on 2021-01-26
07:09:32
 Re: Jiffydos on C16/Plus 4 > black screen flashy

> Is this the case with both PAL and NTSC systems?
I'm not sure. I have access to PAL machines only. But tested with SD2IEC and 1541 and both of them seems to be perfectly reliable.

Posted By

Retroshire
on 2021-01-26
07:45:00
 Re: Jiffydos on C16/Plus 4 > black screen flashy

@Siz, you mean with your patch and without screen blanking?

Strange, Maurice refers to screen blanking as if there no flickering, just a smooth blank screen.

Wonder what is visible at the screen of the C128, who is also blanking the screen with Jiffy.

Posted By

siz
on 2021-01-29
16:24:01
 Re: Jiffydos on C16/Plus 4 > black screen flashy

Yes, I mean my patch. It DOES screen blanking but prevents flickering. I'm pretty sure it depends on the display used because it' barely noticable on my old CRT monitor.

Edit: I've created a KERNAL load test to check the stability of loads. and ran it on my plus/4 with my patched JiffyDOS version and an SD2IEC. (In fact it's still running behind me because I forgot to stop it). After 1.5 hours no load errors so far. So (at least for PAL systems) the screen flickering can be avoided.

Posted By

marcos64
on 2021-02-21
06:23:56
 Re: Jiffydos on C16/Plus 4 > black screen flashy

Is it possible to have a patch with only the code you have modified (not the entire ROM)?

My trinitron flickers like crazy

Posted By

siz
on 2021-02-21
15:45:47
 Re: Jiffydos on C16/Plus 4 > black screen flashy

These are the differences between the original and my version (address, original byte, new byte):

0000E6D7 8D 2C
0000E704 8D 2C
0000E725 8D 2C
0000E728 AD 2C
0000E72D 8D 2C
0000E732 EC 2C
0000E73D 8D 2C
0000E76E 8D 2C
0000E771 8D 2C
0000E776 8D 2C
0000EB77 20 4A
0000EB78 20 49
0000EB79 20 46
0000EB7A 20 46
0000EB7B 20 59
0000EB7C 20 44
0000EB7D 4A 4F
0000EB7E 49 53
0000EB7F 46 20
0000EB80 46 56
0000EB81 59 36
0000EB82 44 2E
0000EB83 4F 30
0000EB84 53 31
0000EB85 20 42
0000EB86 56 20
0000EB87 36 28
0000EB88 2E 43
0000EB89 30 29
0000EB8A 31 20
0000EB8B 20 31
0000EB8C 28 39
0000EB8D 43 38
0000EB8E 29 39
0000EB8F 31 20
0000EB90 39 43
0000EB91 38 4D
0000EB92 39 44
0000EB94 43 20
0000EB95 4D 20
0000EB96 44 20


The main changes are the instructions replaced with bit $xxxx ($2c). The change from $eb77 is optional - I didn't like that JiffyDOS copyright message was centered while all other messages are left aligned. happy

Posted By

marcos64
on 2021-02-22
03:23:07
 Re: Jiffydos on C16/Plus 4 > black screen flashy

Thanks!

Moving the Jiffydos message is a good idea, so it is easy to know witch version you are using.

Yesterday I misplaced the Compact Flash adapter I use on my old PC laptot and I burned the Compact Flash, so no EPROM burner nor XE1541 or M/PTAP at the moment. I have to wait to test it on the real hardware.

Posted By

BKP
on 2021-03-26
08:15:06
 Re: Jiffydos on C16/Plus 4 > black screen flashy

Hi. Where can I download JiffyDos ROM to C+4?
I made SD2IEC and now I would like to expand it further happy

Posted By

gerliczer
on 2021-03-26
09:52:55
 Re: Jiffydos on C16/Plus 4 > black screen flashy

@BKP: You should go and buy it in a store selling it like http://store.go4retro.com/jiffydos-kernal-rom-overlay-ic/

Posted By

MMS
on 2024-04-02
19:15:44
 Re: Jiffydos on C16/Plus 4 > black screen flashy

So I bought the JiffyDOS ROMs to make some testing.
I bought PAL Plus/4 Jiffy, 1541 (16KB) Jiffy and 1581 Jiffy
(in fact I own two devices has JiffyDOS, and from MCes C16 Kernal with Jiffy, but I wanted to test 1581 too, but I do not have the drive (yet))

I tried the terribly slow, full multicolor picture loading "A Gyuruk Ura" BASIC game. I like this game from my childhood.
(this is a simple Fighting Fantasy clone like the books from Ian Livingstone)

Actually with my original setup (C16 64K + 1541/II) it was simply terribly slow.
But I repeatedly checked it as a kid as I really liked the full screen pictures (mainly stolen from somewhere else).

During emulation tests with 1551 it was just barely acceptable.

I was interested, what could be the JiffyDOS speed? (tested in Plus4emu)
1541 with Jiffy: each full screen picture (initial ones 40 blocks) loads in 5.5 secs
later split screens pics 24 blocks loads approx in 4 seconds
1581 with Jiffy: each 40 block picture loads in~2 seconds
later 28 blocks size pics loads in ~1 seconds

I have to mention, that I noticed both in Plus/4 emu and YAPE unstability of 1541 Jiffy, even with high 1541 accuracy timing, or no special timing. 2 of 10 Directory command crashed at the middle of the list. Sometimes reported "file not found" although the file was there, and second trial was OK.

The 1581 with Jiffy is even more impressive that I thought. Huge capacity and really really fast.

But the blanking of the picture... It is not nice.

It is told by Retroshine:
"Maurice Randall and Attila Grosz:
There's no way, believe me I tried. That's why I spent so much time
on this. Even with the screen blanked and the processor switched to
.894 mhz, TED got in the way. I was pulling what hair I had left.
But I finally figured it out yesterday.

It's only the fastload routine where the screen gets blanked. The
128 JiffyDOS in 40 column mode also blanks the screen during
fastload. All other transfers that use the kernal CHRIN, CHROUT,
CIOUT, and ACPTR routines are done without blanking the screen.

JiffyDOS needs about 88 clean clock cycles to get one byte loaded
in during the fastload routine on the C-16 and PLUS/4. And it has
to do this 254 times for each sector."

It is evident, that Maurice faced the same problem, as the C64 FLI VS Plus/4 DFLI, that there is not enough rastertime to execute the task with the color and luma attribute need an update. It is interesting, that he SLEW down the CPU instead of increasing the speed of it.

I am sure Maurice Randall is a great (I mean much better than me or Average Joe) programmer.
BUT
Reading though this, and comparing it to C128 he mentioned, something came into my mind: C128's CPU is NOT switched to 2MHz mode on the border, as the VIC-IIbaby would show some weird stuff on the borders, developers did not allow to happen. VIC is NOT prepared for a fast CPU. So the CPU of C128 stays in the 1Mhz mode, except it is swithed to FAST mode and no screen visible.

On the other hand, TED is prepared for that higher CPU speed, even more it switches the CPU to a faster speed (and back). So, I can say, C16 is faster on the border area than a C128, and it is valid AFAIK for the upper/lower border area too.

It is stated "JiffyDOS needs about 88 clean clock cycles to get one byte loaded".

We have a faster CPU on the upper/lower border area. It runs on 1.76 MHz, next to that, as Bubis stated:
"This is why you can only count 109 cycles even on the border."

I the VIC-II document by Christian Bauer stated that there are 312 raster lines, and 284 is visible on the screen.
so as Plus/4 has a very similar setup the 312- 200= 112 rasterlines of non screen area is there, but TED provides some cycles to 7501 to switch over, so the 109 cycles looks pretty exact.

So the question: why JiffyDOS NOT using the Upper/lower border area to load that 88 cycles data, if we have 109 CLEAN cycles without TED impact/interference?

I mean Jiffy could do the fastload WITHOUT switching off the screen, just by starting the load routine at the last visible rasterline, and can do the load at border area).
Or maybe we need load routines to happen on the screen area? And if yes, why?

Even more (if 1.76MHz does not provide enough "juice"), during that period our CPU could be switched to a higher clock mode, as per SVS Ultimate map, even 2.16MHz is possible. I've never done this, but if the CPU switched back in time (upper border) then there should no interference when TED switches back to the visible rasters and low FRQ.

Probably Maurice wanted to finetune the C64 Jiffy routine to our machine, but the lot of badlines prevented it. Swithcing off the screen is a kind of easy solution.

My suggestion is to load during the upper/lower border area, and we have all the clean raster cycles JiffyDOS really needs.
Certanly a sector loads needs this 254x, but I think 100 clean raster cycles is comparable to the 200 "not clean" cycle's CPU time, especially if Maurice stated 88 clean cycles needed. (one thing I do not get: why the C64 does not load on the border, too? Is there ANY benefit NOT loading on the border area?)

1581 with Jiffy is a beast, 1 full screen multicolor picture within 1.0 - 1.5 seconds? Crazy.
But a loading with screen ON would be a great improvement or achievement.

UPDATE
@BSZ, @SIZ : you also have no idea, if the JIFFY loading could be done with switched ON screen, if the JiffyDOS would only loads only the upper and bottoem border area?
I do not see why the TED would be a problem there. It is definitely not operating, giving the CPU an other FRQ.


Posted By

BSZ
on 2024-04-03
15:05:39
 Re: Jiffydos on C16/Plus 4 > black screen flashy

@MMS: Sorry, I have no exact information on this, I don't have/use JiffyDOS (KERNAL).



Back to topReply to this topic


Copyright © Plus/4 World Team, 2001-2024