|
Post by tokra on Apr 30, 2020 19:13:05 GMT
I was just made aware by Deekay of Crest of this VDC-demopart from 1992:
It runs from C64-mode, since it's also a C64-demo. The VDC-demo is the third part of the demo, right after the "terminal"-part. It first checks if you really have a C128 and then displays a scroller and logo on the VDC. I successfully tried this on my real machine, but neither VICE nor Z64K recognize the C128 correctly.
You can also load the VDC-demopart directly in C64 mode by using LOAD"2.*",8,1 and start with SYS16408. Effectively it copies the code from $4100 down to BASIC and just runs it. Somewhere in there must be the check that fails to recognize the C128 on emulators but works on a real machine.
Either way, the demo shows a scroller and a skipping logo, similar to VDC101, but more than 25 years earlier... Might be worth checking if it works in Z64K once the "check C128"-problem has been fixed.
|
|
|
Post by tokra on Apr 28, 2020 14:03:31 GMT
No, the corruptions are essentially the whole right 4 columns that look red and the column at about a third from the left. These look different than they should. Try for example to go to 58 or 59 chars for the image, you will notice the picture will not have these corruptions. Maybe better to take a step back and investigate "normal"-bitmap modes (640x200 with 8 lines char-height) first and work your way up to the modes from VDC-Mania. I'd soggest to start with HFLI there (640x400 non-interlace), then go to the different interlace-modes. Or maybe even try the modes from VDC VGA Mania if your device can display these. I just connect my RGBI-DAC to the VGA-input of my LCD-TV for those. The 8x1-FLI-mode is a hack in itself, since it resets the charheight to 8 in the VBLANK-area and back to 1 once the picture starts, so this may cause other effects. On another note: We never managed to get modes with more than 80 chars working with attributes enabled. If I remember correctly, willmanilly thought these may be due to internal buffers that are "full". I seem to remember the corruptions looks similar if you try graphic-modes with >640 pixels and attributes enabled.
|
|
|
Post by tokra on Apr 26, 2020 16:49:55 GMT
For example: My colour-bitmap-mode for 480x252 (VDC-FLI) should look like this (reg 0 = 126, so 127 CCLKs; reg 36 = 0): 60 C | 60 A | 7 I 60 C | 60 A | 7 I 60 C | 60 A | 7 I 60 C | 60 A | 7 I 60 C | 60 A | 7 I 60 C | 60 A | 7 I 60 C | 60 A | 7 I 60 C | 60 A | 7 I I noticed I could make the mode go up to 488 width which should look like this: 61 C | 61 A | 5 I 61 C | 61 A | 5 I 61 C | 61 A | 5 I 61 C | 61 A | 5 I 61 C | 61 A | 5 I 61 C | 61 A | 5 I 61 C | 61 A | 5 I 61 C | 61 A | 5 I However if I go up to 496 (62 chars) I start getting corruptions, though theoretically this should work if it looks like this (you can just change the register-settings in the BASIC-program in line 3020): 62 C | 62 A | 3 I 62 C | 62 A | 3 I 62 C | 62 A | 3 I 62 C | 62 A | 3 I 62 C | 62 A | 3 I 62 C | 62 A | 3 I 62 C | 62 A | 3 I 62 C | 62 A | 3 I I also get corruptions if I use reg 0 = 125 and 61 chars, which should look like this: 61 C | 61 A | 4 I 61 C | 61 A | 4 I 61 C | 61 A | 4 I 61 C | 61 A | 4 I 61 C | 61 A | 4 I 61 C | 61 A | 4 I 61 C | 61 A | 4 I 61 C | 61 A | 4 I It looks like the VDC needs at least 5 internal cycles here (for whatever reason) and anything below will lead to corruption of the display-data.
|
|
|
Post by tokra on Apr 26, 2020 15:54:11 GMT
Oh, very nice findings! Please try things like NTSC, Bitmap-Modes and Interlace as well, I've been waiting for some solid data on these for YEARS! Up until now we could only see some things fail and only assume explanations for this. With your tools we can FINALLY confirm some things about the VDC that have been lurking for 35 years :-)
|
|
|
Post by tokra on Apr 7, 2020 12:11:57 GMT
|
|
|
Post by tokra on Feb 22, 2020 15:48:39 GMT
Just to confirm, I have the strange line on the right as well (in textmode and bitmap-mode). I can however get rid of the line by writing 40 (or any value other than 0) to reg 27. The C128 Programmer's reference guide even states:
"A nonzero value in R27 is necessary to allow horizontal smooth-scrolling." on page 332 in the VDC-register-descriptions.
|
|
|
Post by tokra on Feb 21, 2020 20:32:06 GMT
The result I am getting with your program on my 1901 are very strange. I don't see the line, but my screen-background stays dark all the time. This is probably due to registers 34 and 35 not initialized properly. Also I don't think you need to set register 3, I always keep it untouched. However if you do you need to adjust register 2 as well, and then also adjust registers 34 and 35 again with register 2 so they don't cause problems. With a correct setting you should be able to see all the colors, if the values are off, some colors will look darker or not work at all. I assume this is because the sync-pulse interferes. Registers 34 and 35 are tricky to set, they are called "DISPLAY ENABLE BEGIN" and "DISPLAY ENABLE END". The whole display here is 64 cycles (value of reg 0 +1) and you need to set the start right near the end of the current line so it is enabled in the next line, that's why register 34 is set to 63. Then after cycle 50 (reg 35) the display is disabled and the sync-pulse can come at cycle 51 (reg 0). So, the sync pulse can appear in the area between reg 35 and reg 34 (50-63).
In double-width-text-mode I also like to set reg 27 to 40 and set a WINDOWS 0,0,39,24 - so the screen can be worked with properly.
Anyway, my register setttings are 0,63,1,40,2,51,3,73,22,137,26,4,27,40,34,63,35,50 You also need to adjust the for-next-loop in line 120 to count up to 9 values instead of 6.
|
|
|
Post by tokra on Feb 11, 2020 20:20:25 GMT
Had to check out XLACE132 first. Trying to analyze what it does, I think it sets up a 4 pixel-wide font that is then put out with 4 pixels interspacing in 66 columns. Then it waits for vertical retrace, moves the image 4 pixels to the right, point to another video- and attribute-RAM and displays the next-half picture. Then after vertical retrace back to step 1. This would also explain the colour-bleed of reverse and underline. Maybe Strobe can explain a little more? I thought about doing something similar for a 40-column-mode for the VIC-20, but Aleksi Eeben independently of me had the same idea and went through with it: sleepingelephant.com/ipw-web/bulletin/bb/viewtopic.php?f=2&t=8529&p=96426
|
|
|
Post by tokra on Dec 13, 2019 15:52:10 GMT
I had tried once on my Commodore 1901. With RGB I think it needed one added, when going through the monochome-signal (BAS) I think it required nothing added. So there seems to be no right or wrong way to do it and user-interaction may be required...
|
|
|
Post by tokra on Dec 13, 2019 15:42:24 GMT
The C128 Programmer's reference guide is the "official" documentation by Commodore and as I've learned the best for VDC.
|
|