C128‘s VDC vs IBM XT‘s CGA: 16 Color Graphics using the 30 year old VDC-Basic extension

  Рет қаралды 5,013

The 8 Bit Theory

The 8 Bit Theory

11 ай бұрын

This video compares the C128's VDC chip to the IBM-PCs CGA technology.
It shows how CGA-Lowres graphics in 160x100 resolution with 16 colors can be displayed on the VDC-chip.
Programming is done in Commodore Basic 7, introducing a 30-year old Basic extension called VDC-Basic.
Find the german version of this video here: • C128 zeigt CGA in 16 F...
Sources shown in the video:
github.com/The8BitTheory/vdc-...
VDC-Basic documentation, sources and binaries:
github.com/The8BitTheory/vdc-...
The blog that acted as inspiration to this:
bumbershootsoft.wordpress.com...
CGA-Lowres mode explained:
int10h.org/blog/2015/04/cga-i...
Complete list of all CGA-Lowres games:
nerdlypleasures.blogspot.com/...
Paku Paku project website:
deathshadow.com/pakuPaku
The video about RLE Encoding in Commodore Basic in English:
• C128 Basic 100x faster...
The video about RLE Encoding in Commodore Basic in German:
• REU und GeoRAM in BASI...
PC Retro Tech's KZfaq channel:
‪@PCRetroTech‬
Thanks to emulaThor for allowing using his images.
Find his KZfaq channel here:
‪@emulaThor‬

Пікірлер: 36
@retrobitstv
@retrobitstv 10 ай бұрын
Very interesting look at the difference between CGA and VDC capabilities! The VDC doesn't get much love so thanks for putting this together :D
@the8bittheory
@the8bittheory 10 ай бұрын
You’re right. And the more I learn about the VDC, the less I understand why. Thanks for your feedback! Also, I value your content very much, thanks!
@joshhiner729
@joshhiner729 10 ай бұрын
Awesome video. We need more VDC videos. Thanks a ton and I hope you create more.
@the8bittheory
@the8bittheory 10 ай бұрын
I agree, we need more :-) I have a couple more in the queue. Thanks for your feedback!
@Stingray64er
@Stingray64er 10 ай бұрын
Nice video 👍 Subscribed. Looking forward to watching your EGA on the C128 video next.
@the8bittheory
@the8bittheory 10 ай бұрын
Glad you like it! Thanks for letting me know :-)
@CommodoreGreg
@CommodoreGreg 10 ай бұрын
Excellent video! Great step by step explanation. I appreciated the use of the vcd basic as a teaching aide.
@the8bittheory
@the8bittheory 10 ай бұрын
Thank you! Right, VDC Basic makes it much easier to grasp in my opinion.
@loganjorgensen
@loganjorgensen 10 ай бұрын
About halfway through I was thinking this was a really complicated way to display 160x100x16 on a C128 lol, but being able to use the actual DOS content files on a Commodore is invaluable with connecting both platforms in an online environment for example. Really impressive stuff, neat how you got past the common-color restriction of Commodore hardware. I quite enjoy the hybridization of both platforms, like that CGA Composite Artifact Color option that approximates the C64 color palette.🙂
@the8bittheory
@the8bittheory 10 ай бұрын
I myself keep being impressed by the VDC chip, given its low adoption for graphics and games. :-) Thanks for your feedback!
@csbruce
@csbruce 11 ай бұрын
18:29 A much more efficient way to do this doesn't use strings at all: VMW AP, CL(INT(B/16))*16 + CL(B AND 15) The INT() is only for clarity and isn't even needed, since subscripts will be 'integerized' anyway.
@the8bittheory
@the8bittheory 11 ай бұрын
Thanks, I‘ll try this absolutely. Your name sounds familiar. Did you write Zed?
@csbruce
@csbruce 11 ай бұрын
@@the8bittheory: Yep. It'll be faster still if you assign 16, 15, and 1/16 to variables and use CL(B*var), where var = 1/16.
@the8bittheory
@the8bittheory 11 ай бұрын
@csbruce Nice! Yes, precalc makes it a lot faster. The disk image in the Github Repo also has a version that does everything through lookups. CGALOWRES3.PRG I should mention that in the next video, thanks!
@shaunbebbington6411
@shaunbebbington6411 9 ай бұрын
It's amazing how big a CGA card is compared to the C128 CDV chip and RAM.
@the8bittheory
@the8bittheory 9 ай бұрын
Absolutely. A couple of years make a big difference. Only two RAM chips required for the VDC, for example. Also, 3rd party vendors produced much smaller layouts.
@shaunbebbington6411
@shaunbebbington6411 9 ай бұрын
@@the8bittheory even still, I get the feeling that IBM over-engineered everything because I guess it was at the high end of the market, and could justify whatever price to its business consumers.
@shaunbebbington6411
@shaunbebbington6411 9 ай бұрын
@@the8bittheory also even more amazing what Atari did around 1978 with the Atari 400/800 series then, is it not?
@the8bittheory
@the8bittheory 9 ай бұрын
Oh yes, I think that is vastly underrated
@nst1nct
@nst1nct 8 ай бұрын
Very nice! One further optimization you could do is to fill the entire bitmap with %00001111. If two pixels are the same color, just set the attribute to the same color for both foreground and background. This way you can clear the bitmap with fast block fills of %00001111 and only have to individually set the color attribute RAM bytes. Going beyond that, there is also a double-width mode with which you can do theoretically do a 320x200 mode, which only takes up 8000 bytes of bitmap, and then treat it as 160x100x16 as here. I can't recall what that does to the color attributes though. There's also something in my memory about timing weirdness in double-width mode which can result in it requiring doing a slightly smaller horizontal width. So in actuality it might end up being something strange like 304x200, leaving you with 152x100. I'm without a C128 at the moment (but expecting to have one again soon) so I can't reliably experiment to reproduce the mode. It's also entirely possible that I just wasn't adjusting something correctly and could've gotten 320x200 working reliably with different settings. Even with the VDC's limitations compared to the VIC-II's strengths, I still find it a fascinating chip, and think more could've and would've been done on the graphics and gaming side in the 80s and 90s if people had understood it better. It's great to see people like yourself doing videos like these, and I hope it'll inspire more people to see what they can make the VDC do. One more thing regarding the double-width mode is that since it reduces the bitmap to only needing 8000 bytes, I wonder if the mode I described above could be done on the 16K chip? With attributes taking up 8000 bytes, we'd be at 16000 total. Seems like it could be doable, but I may be missing something that would change the math.
@the8bittheory
@the8bittheory 8 ай бұрын
Thanks for the input! Double width mode also halves the color resolution, unfortunately. That would have been a great memory saver. Wrt 8000 bytes: if you‘re good with greyscale, you can really use textmode to fake graphics just as CGA does for the 160x100 mode. Also, thanks for the great feedback. I also hope that this inspires more people to look into the c128‘s unique capabilities.
@nst1nct
@nst1nct 8 ай бұрын
@@the8bittheory Ah, thank you for correcting my flawed memory! Maybe you can also help me recall how attribute RAM works with interlace. Is it interleaved the same way as the bitmap is, so for example byte 1 of color RAM in 8x2 mode would choose the colors for lines 1 and 3, or does it behave in a contiguous way and it would color lines 1 and 2? I believe it's interleaved, but I don't trust my memory on it. Contiguous would be extremely useful, but seems unlikely.
@the8bittheory
@the8bittheory 8 ай бұрын
Unfortunately, I haven’t found the time to look into interlaced mode yet. But it‘s on the list :-)
@ingosevnik6773
@ingosevnik6773 11 ай бұрын
Warum ist dieses Video in Englisch während die vorherigen in Deutsch waren? Bin ein wenig verwundert 😅 Trotz alle dem wieder sehr informativ und interessant. Mir haben auch die vorherigen Videos sehr gefallen.😊
@the8bittheory
@the8bittheory 11 ай бұрын
😁 naja ich hatte von Anfang an geplant, zweisprachig zu fahren. Zwei Tonspuren gibts leider noch nicht, englische Untertitel gibts aber schon bei anderen Videos. Und die machen fast die Hälfte der dortigen Besucher aus. Deshalb hab ich jetzt mal englisch gemacht. Deutsche Untertitel kommen aber noch. Freut mich dass es dir trotzdem gefallen hat. Danke für das Feedback 💪🏻
@danielmantione
@danielmantione 10 ай бұрын
@@the8bittheoryDie absurde Situation ist, dass KZfaq gerade wegen der Sprachwahl das Video auch einem breiteren Publikum zeigt. An sich verstehe ich Deutsch genauso gut wie Englisch und könnte mir genauso gut das deutsche Video anhören. Allerdings bekomme ich das englische Video in meinen Vorschlägen zu sehen und so erfahre ich nun von der Existenz dieses Kanals.
@the8bittheory
@the8bittheory 10 ай бұрын
Genau, das habe ich auch bemerkt. Ich werde aber wohl beide Sprachen beibehalten. Die Sprachversion, die als zweite kommt, hat immer den Vorteil dass Feedback von der ersten einfließen kann :-)
@tarstarkusz
@tarstarkusz 10 ай бұрын
1:50 This is wrong. CGA can display 16 colors in high res. Generally though, it is limited to color cells in alpha numeric mode (displaying the built in fonts). The color data only takes 4 bits per cell and there are only 2k cells.
@the8bittheory
@the8bittheory 10 ай бұрын
So it could if it had more RAM available. Is that what you‘re saying? Do you know of any CGA cards that came with more RAM? Thanks for your input, highly appreciated
@tarstarkusz
@tarstarkusz 10 ай бұрын
@@the8bittheory Honestly, I think it was just a wording error or I misinterpreted what you said.. I was referring to text mode, which technically is running in 640x200 using 8x8 fonts and each cell can be any of 16 colors. I really should delete the comment. Sorry.
@the8bittheory
@the8bittheory 10 ай бұрын
Don’t worry about that. Either way, your comment clarifies things. That’s good 👍🏻
@michaelsommer3343
@michaelsommer3343 11 ай бұрын
Schade das die jetzt auf Englisch sind😔😔😔 Englische Videos gibt es genug.
@the8bittheory
@the8bittheory 11 ай бұрын
Ich bin gerade am Experimentieren und hab auch das Video zum Microcompiler in beiden Sprachen veröffentlicht. Ich werd mal sehen wie groß der Aufwand für die zweite Sprache ist. Vielleicht gibts in Zukunft alle Zweisprachig (die zu Zeit der Gilden werden aber immer Deutsch bleiben) Danke für deinen Kommentar, sowas ist wichtig :-)
@the8bittheory
@the8bittheory 11 ай бұрын
Die deutsche Version ist schon in Arbeit. Wird diese Woche kommen
@michaelsommer3343
@michaelsommer3343 10 ай бұрын
Klasse Danke, das ist super. Ich bin von deinen Videos und der Tiefe so beeindruckt. Da kann man soviel lernen😃
@the8bittheory
@the8bittheory 10 ай бұрын
Danke, das motiviert :-)
EGA on the C128? And it looks great
18:11
The 8 Bit Theory
Рет қаралды 23 М.
Pimpin a Commodore 128D with massive upgrades so I can test my RPG
28:11
RavenWolf Retro Tech
Рет қаралды 3,1 М.
Они так быстро убрались!
01:00
Аришнев
Рет қаралды 2 МЛН
НЫСАНА КОНЦЕРТ 2024
2:26:34
Нысана театры
Рет қаралды 1,4 МЛН
Best KFC Homemade For My Son #cooking #shorts
00:58
BANKII
Рет қаралды 70 МЛН
Don't put a graphics card from 1981 in a PC from 1994!!
17:49
PCRetroTech
Рет қаралды 21 М.
10x Faster Than C64 BASIC? Hare Basic
48:01
8-Bit Show And Tell
Рет қаралды 31 М.
A Rare Paradise Pre-EGA Graphics Card that Plays Doom
36:13
PCRetroTech
Рет қаралды 14 М.
38911 Bytes Free? Commodore 64's BASIC RAM
29:57
8-Bit Show And Tell
Рет қаралды 38 М.
Best POKE Ever? For Commodore 64
22:21
8-Bit Show And Tell
Рет қаралды 42 М.
Reverse Engineering the Video Chip of the IBM CGA Card (1981)
40:26
📱магазин техники в 2014 vs 2024
0:41
djetics
Рет қаралды 594 М.
Klavye İle Trafik Işığını Yönetmek #shorts
0:18
Osman Kabadayı
Рет қаралды 8 МЛН