Тёмный

I finally got this ATI VGA Blitter Working! 

PCRetroTech
Подписаться 7 тыс.
Просмотров 10 тыс.
50% 1

I take another look at this ATI Graphics Ultra card with an IBM 8514/A compatible blitter. I finally get it to work correctly, including the ATI specific blitter hardware and I use it to generate some 3D objects and rotate them in real time on a 286!
Code for this episode can be found on my GitHub repository: github.com/wbhart/mach8blitter
Minor correction to the video: I now believe the "destination colour compare function, which I mention very briefly in passing, actually only compares against a fixed colour in a register, not against the destination colour. But this doesn't affect the presentation at all.
Unfortunately the IBM register level documentation seems to be lost to history. Only documentation of the AI level remains.

Наука

Опубликовано:

 

10 дек 2022

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 129   
@kleadron
@kleadron 10 месяцев назад
I love seeing this kind of programming for older hardware rather than just plugging it in and running games or windows on it. It would be interesting to see what a 3D game could be like if it was designed to take advantage of a 2D accelerator like this one.
@KAPTKipper
@KAPTKipper Год назад
I used to work for a GIS software company, I setup a lot of these cards for use with DOS based X-Windows software, HCL-eXceed Plus/8514A. They gave pretty good performance as compared to many X-Windows terminals or low-end Unix workstations. The ATI cards were great as they had a one card solution. Most 8514/A cards were add-ons that used the VESA extension.
@PCRetroTech
@PCRetroTech Год назад
Very interesting! I believe the X-Windows drivers may have just worked at the adapter interface level (correct me if you know otherwise). The ATI cards were still faster than the IBM card though. Basically I think it just boils down to the speed of video memory, but ATI did use this as a selling point. I don't know much about the VESA extension, but ATI must have been trying to get things standardised. As you may know the video card manufacturers had a real fight with IBM to get the register level documentation released (it now seems to be lost to history). From there a few card manufacturers supported 8514/A at the hardware level, but not many. I imagine from there they tried to get it standardised. There is mention in the ATI documentation that some of the register names are VESA names for example.
@movax20h
@movax20h Год назад
@@PCRetroTech What VESA standardized in VBE were simpler things that could be implemented on most cards, or emulated efficiently on them. They didn't want to standardize (at least not at the time), anything way more fancy, because it was still being in flux and only handful of cards had extra features. Soon CPUs could do all this on their own, and 3D accelerators were not a good fit to standardize in VBE either, with move to not be using BIOS at all in drivers, but custom APIs. VBE is nice to keep going and doing simple things, but its architecture was not good to do more stuff in the future.
@PCRetroTech
@PCRetroTech Год назад
@@movax20h I'd assume this is how it was. I was pretty surprised to find registers in the ATI coprocessor docs labeled as VESA names. I'd love to know the full story behind that.
@OpenGL4ever
@OpenGL4ever 6 месяцев назад
@@movax20h Why didn't the VESA group start standardizing 2D hardware accelerator functions much earlier? When they started with VBE, Windows 95 and Direct2d were practically on the doorstep and then most of the extended features of the VESA standards were no longer needed. Because Windows 9x abstracted the whole thing, which is why manufacturer-specific drivers for Windows were sufficient. But in the DOS days something like this would have made sense for games.
@Dave5281968
@Dave5281968 Год назад
Back in the day... I would definitely have utilized ANYTHING that made graphic data move around more quickly for 3D and 2D. That blitter would have been a blessing. And it would have saved alot of coding time overall.
@PCRetroTech
@PCRetroTech Год назад
Yes, I especially agree with the coding time. Of course it took an enormous amount of time to decode the documentation.
@andrewdunbar828
@andrewdunbar828 Год назад
Generally I find the 8-bit era and non-IBM 16-bit era stuff more interesting. But you make the early PC stuff interesting thanks to your exploratory low-level programming experiments!
@PCRetroTech
@PCRetroTech Год назад
Thanks. I'm glad you find it interesting.
@10vid5
@10vid5 Год назад
A 3D rotation can be accomplished also by two 2D rotations of different planes (much like how they do in robotic arms etc.). A 2D rotation of a point is 4 multiplications, that's 8 multiplications in total for a 3D rotation, instead of 9 as you said.
@fgaviator
@fgaviator Год назад
Great, I'll give this a try and see if I can run your demos. I still have my 486DX2, an Olivetti M6-460 from 1994, which has the mach32 chipset integrated on its mainboard. The entire Olivetti M6 product line used the mach32 chipset. I didn't even know it was 8514 compatible back then - and it didn't come with any DOS 8514 drivers. It was documented as an VGA accelerator for Windows and came with Windows driver disks, of course. But I did get the 8514 support for DOS working after your last video - and ran a few applications, which I never knew, the machine could support. 30 years late - but still an interesting discovery. :-)
@PCRetroTech
@PCRetroTech Год назад
Oh that's cool. I didn't know the Olivetti M6-640 had this either. That's a nice find!
@ropersonline
@ropersonline Год назад
0:44: You make an interesting point. I don't think I'd previously given it much thought that MCGA, VGA and IBM's _crippled-by-cryptic-naming_ 8514/A standards all came out at the same time. I suppose 8514/A was ahead of its time though, and MCGA was hampered by limited (read: no EGA) compatibility. What the market ended up accepting was the Goldilocks option: Not too dear, not too daft, just right. Taiwan rolled boards off production lines and started to say: It's all about makin' that VGA. Anyway, please make sure to document the heck out of your (re)discoveries somewhere besides RU-vid (i.e. text-searchable), because you might be the only person that still has this knowledge now, which is at risk of being lost in spline like tears in the gain. Or something like that. Good to see you're back.
@PCRetroTech
@PCRetroTech Год назад
Thanks, and I agree with your observations about VGA being the Goldilocks solution. It was also a more open standard if I understand correctly. XGA was too dear so very few companies licensed that.
@ropersonline
@ropersonline Год назад
@@PCRetroTech Honestly, IBM hardware licensing practices should have been illegal, because they amounted to some kind of entrapment, since they intimidated people into paying for what people thought was free, and then they made them sign NDAs so others would still step into the same trap. OTOH, perhaps it was precisely that appearance of freedom that allowed the PC to succeed as a standard.
@ropersonline
@ropersonline Год назад
@@PCRetroTech PS: The other thing is, I wonder to what extent IBM may or may not have helped clone-makers/licensees with know-how or even parts, because if they didn't, then the latter's success in so quickly reproducing the decidedly non-discrete VGA logic is actually quite impressive. WAY harder than cloning CGA. I wonder if they used the same decapping tricks CuriousMarc et al. have shown us. Also, _Paycheck_ vibes.
@PCRetroTech
@PCRetroTech Год назад
@@ropersonline I'm guessing once they had CGA and EGA clones, VGA wasn't that far off for them. But I'm not very knowledgeable about the hardware internals, so who knows. But I do vaguely recall IBM actually made VGA a standard for implementation by others, so I suspect they did in fact provide them with very thorough documentation of the standard itself.
@tobach_
@tobach_ Год назад
It's lovely to see all of this from more of a programmer's perspective, great video. Only a matter of time before you end up with an entire DOS demo of your own ;)
@PCRetroTech
@PCRetroTech Год назад
Now that would be a lot of fun!
@wilsonnw
@wilsonnw Год назад
I'm assuming a wrapper to pass drawing calls to the blitter in Freescape games would be a huge undertaking... that engine would have benefited back in the day, 30fps Castle Master :D
@PCRetroTech
@PCRetroTech Год назад
I haven't looked at the Freescape API so I don't know. I think it would be a lot of work for very few lucky people that owned the cards, so I wouldn't take it on without a really good reason. But it certainly would be interesting to look into to see how feasible it was.
@alexloktionoff6833
@alexloktionoff6833 Год назад
Changing X coordinates while bliting can be used for drawing road with hills /*waving up-down*/ in games like outrun.
@mallardtheduck1
@mallardtheduck1 Год назад
Presumably, it would be pretty easy to change the blit position each frame and have the object "bounce" around the screen... Almost re-creating the old Amiga bouncing ball demo (without the background).
@PCRetroTech
@PCRetroTech Год назад
Yes absolutely. That would be trivial. I thought of doing that for this video, but decided I had enough to put the video up. But something like that might indeed be interesting for the future.
@fradd182
@fradd182 Год назад
Just an idea: CPU could calculate rotation and lighting of polygons (T&L ?) and draw them (without filling) in the main memory for the next frame, while blitter is transferring and filling the object from the off-screen buffer for the current frame. When finished, CPU could copy the drawn object in the second off-screen buffer where blitter will process it from, when ready. A bit of parallelizing with triple buffering.
@ovalteen4404
@ovalteen4404 Год назад
Interestingly, I took a look at the IBM8514 driver. It does exactly what you mentioned re filled polygons: It draws them offscreen then blits them to their intended destination on screen.
@PCRetroTech
@PCRetroTech Год назад
Yes, I believe that is mentioned in some documentation somewhere. But it is nice to have this confirmed. I should probably not be lazy and take a look myself. Unfortunately, because I spent my professional career writing Open Source software, I spent most of my time examining the behaviour of closed source software only. My reverse engineering skills are pretty much confined to that. So it is rather more work than I'd like to disassemble drivers.
@OpenGL4ever
@OpenGL4ever 6 месяцев назад
@@PCRetroTech You could still write an 8514 driver for XOrg. :)
@wmrosju
@wmrosju Год назад
Nice with a new video from you! Great work!
@PCRetroTech
@PCRetroTech Год назад
Thanks!
@AshtonCoolman
@AshtonCoolman Год назад
PC hardware of the era had so many unused or rarely used features. I wonder if this card could have come close to some the Amiga's graphical capabilities. I can see the Bouncing Ball demo running on this card.
@PCRetroTech
@PCRetroTech Год назад
Yes, I wish I had thought of that. I'm quite confident that could be done on the PC. Maybe I'll work on that at some point. I might piss off some Amiga people though. As for how capable it is, I actually don't know. I've never done any timing of the Amiga blitter. To keep the peace we'll just assume the Amiga was better, for now. :-)
@Aeduo
@Aeduo Год назад
I guess the difference was that even the cheapest Amiga in the line could do all the fancy stuff, but for the PC you needed expensive at the time expansion cards and no common, fast interface to it. Lots of weird competing and trying to partner with high end professional software and not sharing knowledge or cooperating on anything. Much of that just falling through and much of these features never seeing the public. Probably just a lot of paranoia that even just sharing their register/memory documentation might expose how they function internally. This of course, hasn't changed til this day, but at least we get stuff like GDI and X11 protocol and Wayland protocol and opengl and direct3d and vulkan and whatever else to kinda smooth over all these differences?
@PCRetroTech
@PCRetroTech Год назад
@@Aeduo Yes, and in the end PC won anyway. Open ecosystems are very important as many of these companies found out. I suspect the card manufacturers did work together against IBM in this case though. They pressured them to release the docs, and my understanding is IBM eventually did. This led to the three clones I'm aware of.
@andrewdunbar828
@andrewdunbar828 Год назад
@@PCRetroTech I'm an Amiga person and you definitely wouldn't piss me off. Some of the PC card blitters could probably do everything the Amiga blitter could do, but the Amiga had other custom hardware besides the blitter.
@PCRetroTech
@PCRetroTech Год назад
@@andrewdunbar828 Hmm, I still have some expansion slots here. Let's see....
@katielucas3178
@katielucas3178 Год назад
Welcome to Cambridge!! Now I know what I can do with all my old PC hardware... 🙂
@PCRetroTech
@PCRetroTech Год назад
Ha ha! Well there is actually still a bit of room in my garage. But yeah, after being through what I just went though moving, I am going to be very selective about what I take from people! Is there a rubbish dump around here anywhere?
@andrewdunbar828
@andrewdunbar828 Год назад
​@@PCRetroTech Somebody needs to invent the concept of the community retrocomputing coworking space (-:
@OpenGL4ever
@OpenGL4ever 6 месяцев назад
Thank you, that was very interesting. To your question at the end. Well, since most DOS games at the time didn't use accelerator features, but only used generic VGA, such a card wouldn't have been worth it for me.
@tenminutetokyo2643
@tenminutetokyo2643 Год назад
Ah the good old days.
@ian_b
@ian_b Год назад
I really like your videos. Thank you.
@PCRetroTech
@PCRetroTech Год назад
Thanks.
@MadsonOnTheWeb
@MadsonOnTheWeb Год назад
This is fascinating!
@PCRetroTech
@PCRetroTech Год назад
Thanks.
@Waccoon
@Waccoon Год назад
I'm not surprised the documentation is wrong. I see typos like this all the time in old docs. That reference to "Ssurce" sticks out like a ssre thumb. 8(
@PCRetroTech
@PCRetroTech Год назад
Yes, I noticed that in a few places. They must have done a text replace at some point.
@marcianzero_yt
@marcianzero_yt Год назад
Congrats. :)
@PCRetroTech
@PCRetroTech Год назад
Thank you!
@TheRealWinsletFan
@TheRealWinsletFan 8 месяцев назад
Oh, interesting, I had a mach8 card. But no info on it.
@john_ace
@john_ace Год назад
you can try a V20 in the XT since it has some 186 instructions and can run a lot of 286 software.
@PCRetroTech
@PCRetroTech Год назад
Great point. I don't know why I didn't think of that. I will definitely give this a go, and if it works update everyone in the next video!
@marsupialpianist1450
@marsupialpianist1450 3 месяца назад
This might have been a great accelerator for flat shaded 3D construction kit games like Castle Master if only the features has been supported
@MartenElectric
@MartenElectric Год назад
Oh you lucky devil, living in Cambridge 👌
@PCRetroTech
@PCRetroTech Год назад
It's a beautiful city, but at the moment very cold (-6 C earlier today), wet and very overcrowded. I'm happier here than the "armpit of Germany" though.
@MartenElectric
@MartenElectric Год назад
@@PCRetroTech and you have nearby computer museums with all the community around it!
@PCRetroTech
@PCRetroTech Год назад
@@MartenElectric Yes, I've already taken a look at the main one here. They say they have 1200 computers somewhere, including an IMSAI 8080 and an Altair 8800. I took some photos for the channel but I'm not sure how much of a PC video I can make on it. Most of their machines are old British 8 bit machines. Extremely interesting to see in the flesh though.
@joshhiner729
@joshhiner729 Год назад
Id have definitely bought the mach8 if games had taken advantage of it. When it came out in 1990 most 3d games were made of polygons. Knights of the Sky, Red Baron, Flight sim etc. I had a 286 during that time as well and boy would blitting have helped. Blitting could help in GUI’s like windows also (well the non confirming blit that you demo) for moving windows and menus I believe? I actually owned an ATI Mach32 ISA card. Great video by the way. Christmas early. I was so excited to see that notification pop up for your new video!
@PCRetroTech
@PCRetroTech Год назад
My thinking too. It's a shame these were so expensive when IBM introduced the standard in 1987, and probably still in 1992 when my card was made.
@Leeki85
@Leeki85 Год назад
Regular VGA cards are quite good at filling flat polygons. They can write 4 bytes to framebuffer with just one byte written by CPU. Wolfenstein 3D used it to clear the screen each frame and it was used in Another World PC port, which worked so well that in the end devs lowered CPU requirement from initial target. However, hardware sprites with scaling, rotation and other transformations would change everything. This would helped in 2D games, 3D games and even in productivity software with GUI. Think of all interactive buttons, drag&drop, windows moving, scaling, maximizing etc. Ironically modern UIs use all of these features.
@PCRetroTech
@PCRetroTech Год назад
@@Leeki85 Of course with a coprocessor the CPU can be doing other things whilst the filling is going on. But yes, you can certainly use the latches on a regular VGA card to move data about very fast. The main advantage here is probably the mixing functions to be fair, and that's how IBM marketed them as well (XGA was an even more souped up version of course).
@OpenGL4ever
@OpenGL4ever 6 месяцев назад
@@Leeki85 My 486DX33 MHz started to become slow when game developers started adding textures to 3D games using software rendering. Frontier: Elite II, F-15 Strike Eagle 3 and Indycar Raycing were one of the first games i had, that did have some textures on 3d objects. And this was still in 320x200x8 mode.
@fungo6631
@fungo6631 5 месяцев назад
@@Leeki85 But wouldn't that have to confine you to 4 pixel granularity? You would have to check how long would the line to fill have to be if you wanted it to use the full horizontal resolution.
@dolomighty74
@dolomighty74 Год назад
Isn't there enough vram for two 640x480 pages? Or are there other limitations which prevent doing page flipping or fullframe offscreen blitting? Thinking of fullscreen animation
@PCRetroTech
@PCRetroTech Год назад
Good question, and I don't know the answer to either question at the moment. There is something called a far blit which is ATI specific. There is also the ability to flip bitplanes, but it's important to remember that the coprocessor had its own memory in the 8514/A. It's not just VGA memory. So you are limited to the amount of coprocessor memory you have (probably enough on many of these ATI cards) and how the adapter sets up the memory.
@mightwilder
@mightwilder Год назад
well nobody would use this for 3d gaming back in the days when this card was relevant, because of price, there were amigas and ataris at homes
@Stabby666
@Stabby666 Год назад
Looks good! Could you blit it as a tile across and down the display within 1 frame?
@PCRetroTech
@PCRetroTech Год назад
Great question! I don't think so, no. I believe the video RAM is actually not fast enough, which is why I stuck with small triangles in this video. Let's see, I think I had about 15 triangles of a decent size per frame, so in theory I think this means one could get 15 times that in one blit. But the full screen size is more than 15 times the size of that bounding rectangle. On the other hand, you might get about half the screen in one frame, which is pretty generous. And I don't know what the upper limit on the bus speed is that the card will manage with. Perhaps it would come close if you upped that a little.
@procactus9109
@procactus9109 Год назад
I hope you got a bigger kitchen for your gear :D
@PCRetroTech
@PCRetroTech Год назад
No, it's really tiny. Most of it will remain in my garage unfortunately. I still have "the kitchen drawer" though.
@procactus9109
@procactus9109 Год назад
@@PCRetroTech ii guess you'll just have to build another kitchen in the garage then
@MonochromeWench
@MonochromeWench Год назад
Can't help but think ATIs early 3d cards (Mach64 GT 3D Rage ) could have been just a further extension of the 8514/A standard, Mach32 had triangle drawing so why throw that away with the 64.
@PCRetroTech
@PCRetroTech Год назад
I don't know much about the Mach 64, but I assume the main thing they needed there was texture mapping. I would imagine that something like the blitter exists in there somehow to handle that. The interface would be completely different though I guess.
@AgentMan666
@AgentMan666 Год назад
Just wondering if the black line problem in your animation is an LCD as opposed to CRT problem???
@vapourmile
@vapourmile Год назад
@PCRetroTech: I have always wondered about the PC Windows accelerator cards. There were hundreds of them, mostly based on a far smaller number of ASICs. They typically offered blitter and shape-drawing hardware. Why I wonder is I never saw any register level code running on them for DOS products. It seems like so much wasted potential! Are there any enthusiast initiatives to reverse engineer any of them or write register-level programmers manuals? I feel sure a lot of graphics power lay fallow in the 80s and 90s thanks to there being no DOS drivers or register level programmers guides for Windows graphics cards. What do you think?
@OpenGL4ever
@OpenGL4ever 6 месяцев назад
It was not worth the time. And Windows 95 with its abstraction layer abstracted it rather fine. In the days of the 3d accelerators there were a few DOS games that tried to support different 3d chips from different companies, but this wasn't very successful for most of them with a few exceptions like 3dFX.
@vapourmile
@vapourmile 6 месяцев назад
@@OpenGL4ever What a pile of crap. If you don't know don't reply.
@hotmultimedia
@hotmultimedia Год назад
thanks for the vid. Maybe you already explained it somewhere, but what's the reason for filling the triangles elsewhere and blitting them afterwards, wouldn't it be faster to just fill them in place? And also, isn't there enough memory for real double buffering? Would save one memory copy.
@PCRetroTech
@PCRetroTech Год назад
Filling in place is possible, so long as there's nothing else in the fill rectangle that can interfere with the fill routine. Otherwise you have to do it the way I'm doing it pretty much. There might be enough memory for double buffering, but it's not just VGA memory but coprocessor memory. Maybe one can do blitting in an offscreen memory buffer somehow else, but I don't currently know how that's done, if it is possible.
@root42
@root42 Год назад
Excellent video. Did you try blitting the icosahedron in full screen using the ATI polygon fill? How many frames do you get then? Can the polyfill do multiple polys at once? I.e. you draw a wireframe object and it fills it?
@PCRetroTech
@PCRetroTech Год назад
I didn't try a full screen version, but you can compute the time pretty much based on the size of the area filled. You can fill multiple objects, but it wouldn't be drastically faster.
@root42
@root42 Год назад
@@PCRetroTech What I am basically asking is: how many pixels per second can the card do? Number of polygons depends mostly on the CPU I guess, but size of polygons more with the speed of the card. And regarding multiple objects: do you clear the buffer in between polys? That would be time consuming I guess.
@PCRetroTech
@PCRetroTech Год назад
@@root42 No, the card is doing the polygons as well. It has a hardware implementation of Bresenham's line drawing algorithm. There was a previous video where I dealt with that. As for the pixels you can simply estimate the size of the rectangular extent of the objects being filled. The full screen extent in the video is 640x480. I can't recall the details I gave in the video. Was it 50s for 10,000 triangles? I can't be more precise than that without writing a bunch of extra code. At the moment I'm working on the next video though with a different machine set up, so I can't easily check. My observation at the time that I did the experiments is that it wasn't much faster than what I could do with CGA, maybe only a factor of 2-4 faster. It's basically limited by the speed of VRAM. Obviously this is 4 bits per pixel instead of 2, presumably with a planar arrangement. The main advantage seems to be that the CPU can keep computing whilst the coprocessor on the card is doing fills and drawing lines. It's not really faster than a decent VGA card otherwise.
@root42
@root42 Год назад
@@PCRetroTech Ok, got it. Still would be very interesting to compute pure benchmark results for fill rates.
@PCRetroTech
@PCRetroTech Год назад
@@root42 I did do some, but my notes were recorded in a private discord and they either removed the search function or never had one, so they seem to have been lost, which is annoying.
@dancliche
@dancliche Год назад
Awesome video! Thanks! I have the exact same video card in my 486 DX2 66 MHz, and I do not have the issue in text mode on my side at full speed. I've tried the HDIDEMO on my system and I was able to have the text drawn in the center after performing the installation with the INSTALL program on the 8514A floppy. You should be able to see it also with your system. I'd like to try your program on my system if possible (I have Turbo Assembler and Turbo C 1.0). Do you plan to release the source code to GitHub or GitLab?
@PCRetroTech
@PCRetroTech Год назад
This makes sense. The 486 probably runs the 8 bit bus at a reasonable speed. Not all machines will do that of course, but by the time very fast 486's came around this was necessary. It's possible I didn't copy some font files across on my machine which may explain the font issue. I had assumed it was because the Mach 8 chip doesn't support the fonts (apparently it is known to not support the Crystal fonts, whatever those are). I can upload the code on GitHub, but it is very, very rough. I guess if someone paid me to do it, I could clean it up and document it. But otherwise it is going up exactly as it is currently. I'll try to do that in a few hours time, so look out for that. I'll add a link to the video description. By the way, I think I'm using Turbo C 2.0 or thereabouts. I'm not sure if it will make any difference though. It's pretty basic code. You do need the HDILOAD.EXE program and the .h files from the IBM disk. I'll put that info in the README on GitHub.
@dancliche
@dancliche Год назад
@@PCRetroTech Thanks! Blit7 works flawlessly on my Mach8. It takes 12 seconds on my system to complete the loop.
@PCRetroTech
@PCRetroTech Год назад
@@dancliche Fantastic! Thanks for the report. I saw your star on the repo.
@fungo6631
@fungo6631 5 месяцев назад
On a DX2 66 this card is a bottleneck. The first NFS is actually playable on a DX2 66 in software mode, it's not like Quake which runs at PowerPoint framerates.
@dru6809
@dru6809 Год назад
17:10 hi - nice video. I like the reverse engineering you did here. It is still fun to see how things worked back in the day. Also, once you had the shading going, that animation really looked great. You mention the demo scene trick at this point in the video. Do you have any sites or references you can share for this particular technique.
@PCRetroTech
@PCRetroTech Год назад
Thanks for the comments. Unfortunately I don't recall where specifically I learned this trick from. It might be described in the writeup of how the game Elite works, but don't quote me on that. It's probably also not the clearest explanation out there.
@dru6809
@dru6809 Год назад
@@PCRetroTech no worries - thx for making this video 👍
@PixelPipes
@PixelPipes Год назад
I mean hey, once you get polygons rotating in Z space, I call that 3D!
@pgodwin
@pgodwin Год назад
Os2museum may have a copy of the register manual.
@PCRetroTech
@PCRetroTech Год назад
If they do, it isn't on their website (at least not under the name IBM gave it). I've checked pretty carefully for it.
@GigAHerZ64
@GigAHerZ64 Год назад
You might be able to use Turbo mode if you can add a waitstate on ISA bus. Check bios & motherboard jumpers for that. ;)
@PCRetroTech
@PCRetroTech Год назад
That's not a bad idea. There are some jumper settings on the card itself. It never occurred to me to check that. I'll look into this for the next video. Thanks for the suggestion!
@FavoritoHJS
@FavoritoHJS Год назад
wait...you can make the ram act as an input color... does that mean you can do hardware stencils? Or even hardware accelerated windowing? I wonder what happens if you treat an 8bpp (or even 16bpp) image as a 4bpp one or viceversa. Maybe that can be used for some crude antialiasing? Or reduce bandwidth requirements for blitting by expanding polys drawn at a small bitdepth to a larger bitdepth? Can the ALU sum help with antialiasing? Can you blit multiple polys at the same time by making them use different planes? Or by being careful with where you place the polys?
@PCRetroTech
@PCRetroTech Год назад
I'm embarrassed to say I don't know what hardware stencils are, but if you mean masking, yes it can do this (though not as easily as XGA). It can definitely be used for hardware accelerated windowing and I believe was. These cards were probably intended for CAD/CAM originally, but I think these other chipset manufacturers probably saw an application in windowing. I believe there is a hardware feature in the ATI card that can be used for some crude antialiasing, but I don't recall right now which feature it was. I suppose there is no reason you couldn't treat a 4bpp image as an 8bpp one and so on. I don't know if you can use it for reducing bandwidth or not though. There are all sorts of options, including fiddling with byte order, so maybe. I don't immediately see a way to do antialiasing with the ALU sum, as it basically just sums a source pixel with a destination one. However, there are some averaging options there which look like good candidates for that sort of thing. You can't do blits from multiple locations at once, but there's certainly no problem with masking off planes and handling them individually, or putting polys in different planes and blitting the whole lot at once. It's pretty flexible, so if you can think of it and it doesn't involve texture mapping or fogging, you can probably find a way to do it.
@FavoritoHJS
@FavoritoHJS Год назад
Another idea: it might be worthwhile to make a more complex driver that allows for the cpu to compute without waiting for the gpu to graph. This would be made easier if this card has a command queue of sorts, so you don't have to interrupt calculations too frequently.
@PCRetroTech
@PCRetroTech Год назад
@@FavoritoHJS It has a FIFO buffer. But I agree, one could do slightly better by computing whilst the card is blitting.
@adamklotblixt2392
@adamklotblixt2392 Год назад
Having a turbo XT clone and a Mach-8 card, I'd certainly like to see some 8086-code running without the need for the 286-driver. Not holding my breath though :) Edit: I do have a V20, might have to try that 286-driver...
@PCRetroTech
@PCRetroTech Год назад
It could go either way. IBM designed their card to work on their PS/2 machines and so it may just be that the adapter interface uses the 16 bit blitter via host to confirm that's working. If so, that will never work on the XT. However, I think I might actually be fairly close to getting the card set up just using the registers, which means I might actually be able to get my code to work without the adapter interface at all. That would be interesting. I'm not sure how much more time to spend on it. I thought there'd be essentially zero viewers with this card, but that doesn't seem to quite be the case. I wonder if there'd be enough interest to set up a small project and have people fund me at a nominal level to work on getting it all going and documented properly. I do have to also think about the next video for the channel though, and there are so many things people keep reminding me I'd promised to work on for future videos!
@adamklotblixt2392
@adamklotblixt2392 Год назад
@@PCRetroTech I believe there are too few of these expensive cards to generate the proper interest needed for funding. Mainly a for-fun endeavour I'd say. If you do get register level working it would be really nice!
@R.-.
@R.-. Год назад
Could you blit the ball so it bounces around the screen like the famous Amiga demo? I expect that back in the day these cards were underutilised because you had to read a thick book to obtain the knowledge that word of mouth (like this video) can give in a matter of minutes. If I'd tried to do this on my own, ideas like the shortcut method of rotating 3D vertices might not have occured to me.
@PCRetroTech
@PCRetroTech Год назад
Yes, I definitely think one could make the ball bounce around.
@Aeduo
@Aeduo Год назад
But can it run (untextured) Doom?
@PCRetroTech
@PCRetroTech Год назад
That would be interesting. I suspect it would be too slow, but it's another experiment someone might try some day.
@Aeduo
@Aeduo Год назад
@@PCRetroTech yeah youre probably right. These cards were from a wholly different era. By the time doom was out, high end CPUs were doing in software things more complex than this, and doing them faster.
@PCRetroTech
@PCRetroTech Год назад
@@Aeduo The polygon drawing wasn't the only time consuming part in Doom. But there is FastDoom for 386/486, and so if you used one of these cards on those machines (and it didn't overclock the 8 bit ISA bus), I'd say it'd be a possibility at least. It just might not give a decent framerate.
@andrewdunbar828
@andrewdunbar828 Год назад
You might have to simplify the number of polygons but it should be able to. There were non-textured perspective maze games before Wolfenstein on 8-bit platforms and in fact even perspective 3D shaded polygon games with very slow framerates on 8-bit platforms now that I mention it. There's a guy making impressive progress on a Doom clone (Dread) for Amiga 500 that does have texture mapping on walls only.
@andrewdunbar828
@andrewdunbar828 Год назад
@@PCRetroTech FastDoom looks like it's using the pixel-column rendering technique of original Doom with wider columns, so it's not directly comparable. You'd want to start with one of the ports of the Doom source to use polygon rendering. Those will surely be triangle based. Maybe you mentioned it, but is the blitter functionality you were playing with limited to triangles or can it do quads? If quads are possible I'm going to assume they would be faster for a non-textured Doom. This makes me realize that I'm pretty sure the Amiga blitter couldn't even do triangles, only whole rectangles.
@drzeissler
@drzeissler Год назад
I would switch my ET4000 to a mach8 if only the A2286 would accept an ATI card which it does not.
@PCRetroTech
@PCRetroTech Год назад
Oh that's interesting. I wonder why?
@drzeissler
@drzeissler Год назад
@@PCRetroTech Not sure must be something with the addresses, on A2386 the mach8 is working ...but I really like the feature of loading 800K TGA images in 1024x768 8bit with my ET4000 within 2-3 seconds....that's FAST! ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-P2z_6hgYvcs.html
@PCRetroTech
@PCRetroTech Год назад
@@drzeissler Yes, that's fast. But when you said A2286 for some reason I thought you meant an Amstrad 286 machine (they had a habit of prepending an extra digit in front of the processor designation to get the machine model number). Yes, I wonder why it doesn't work on the 286. It's hard to come up with a good explanation actually.
@drzeissler
@drzeissler Год назад
@@PCRetroTech I was talking about my Amiga AT-Bridgeboard A2286/8Mhz, I planed another Amiga 2000 with my XT-Bridgeboard A2088 and an original CGA-Adapter to checkout if your area5150 demo works on that, but I can't my hands on such an original IBM- CGA card and an unmodified A2000 Board because those original XT.Cards don't fit in 16Bit ISA Slots and my A2000 are all upgraded to 16Bit ... :(
@PCRetroTech
@PCRetroTech Год назад
@@drzeissler Ah that's a shame. I guess the cards are too long? The actual ISA slot shouldn't be a problem. An 8 bit card should fit in the slot (and run). The IBM CGA cards also seem to run at a fast bus speed, though of course if the timing is not the same as an IBM 5150 you can expect the demo won't work anyway.
@FavoritoHJS
@FavoritoHJS Год назад
I wanted to post this comment four times now but it's getting deleted every time, so enjoy it base64'd. Blame youtube. Jist of it is: I might have a lead for a reverse-engineering of the _original_ 8514. U29ycnkgZm9yIG1ha2luZyBhbm90aGVyIGNvbW1lbnQsIGJ1dCBJIGZvdW5kIHNvbWV0aGluZyB0aGF0IG1pZ2h0IGJlIGludGVyZXN0aW5nLi4uCldoaWxlIHRyeWluZyB0byBzZWFyY2ggZm9yIHRoZSByZWdpc3RlciByZWZlcmVuY2UgeW91IGhhdmUgKHdoZXJlIGRpZCB5b3UgZXZlbiBmaW5kIGl0IT8pLCBJIGZvdW5kIHRoaXMgcG9zdCBvbiB0aGUgVkNGRUQ6Cmh0dHBzOi8vZm9ydW0udmNmZWQub3JnL2luZGV4LnBocD90aHJlYWRzL2libS04NTE0LWEtcmVnaXN0ZXJzLjc1MjE3Lwp3aGljaCBjb250YWlucyBhIGNvcHkgb2YgYW4gSU8gcG9ydCBtYXAgZm91bmQgaW4gIlRoZSBQQyBQcm9ncmFtbWVycyBTb3VyY2Vib29rIiwgVGhvbSBIb2dhbiB1bmRlciBNaWNyb3NvZnQgUHJlc3MgKGJlY2F1c2UgdGhhdCdzIGEgdGhpbmcgdGhhdCBleGlzdHMpLCAxOTkxLi4uCndoaWNoIGl0c2VsZiBzb3VyY2VzIGFuIGFydGljbGUgaW4gTUlQUyBKYW51YXJ5IDE5OTAsICJIYXJuZXNzaW5nIHRoZSA4NTE0L0EiLi4uLgphbmQgd2hpbGUgdGhlIGNvcHkgaW4gYXJjaGl2ZSBvcmcgaXMgYm9ycm93IG9ubHksIHRoZSBzZWFyY2ggdW5sb2NrZWQgZW5vdWdoIHRvIGdldCB0aGUgYXV0aG9yLCBhIEpha2UgUmljaHRlci4uLgp3aGljaCwgYXMgSSBmb3VuZCBvdXQgd2hpbGUgZG9pbmcgb25lIGZpbmFsIGhhaWwgbWFyeSBzZWFyY2gsIHdyb3RlIF9hIHdob2xlIGJvb2sgYWJvdXQgaXRfICwgIlByb2dyYW1taW5nIHRoZSA4NTE0LUEiIGJ5IEpha2UgUmljaHRlciBhbmQgQnVkIEUuIFNtaXRoLCBNYXJjaCAxOTkwLgpQUzogQ2FuIHlvdXR1YmUgc3RvcCBkZWxldGluZy9oaWRpbmcvbGVhdmluZyBmb3IgZGVhZCBpbiB0aGUgcmV2aWV3IHBpbGUvd2hhdGV2ZXIgbXkgY29tbWVudCBmb3IgdGhlIHRoaXJkIHRpbWUgc3RyYWlnaHQ=
@PCRetroTech
@PCRetroTech Год назад
I imagine it contains a link? Is there not a search term I can put into Google to find this?
@PCRetroTech
@PCRetroTech Год назад
So ultimately it is mention of a book, "Programming the 8514-A" by Jake Richter and Bud E. Smith, March 1990. It's unfortunate there's no copy of this online. I wonder if it is at the register level or AI level.
@FavoritoHJS
@FavoritoHJS Год назад
Well, the book does seem to exist (no online copies though, probably too niece for the pirates), and the magazine I talked about can be obtained from the internet archive -- loan only, it's on page 104 or so. And before you get any ideas about contacting the author, he died in 2012, so unless you have a necronomicon you are out of luck there.
@PCRetroTech
@PCRetroTech Год назад
@@FavoritoHJS Yeah, that's a shame. Unfortunately PCRetroTech doesn't have a necronomicon, but if there's one for a reasonable price on Ebay I guess I better get bidding. (Actually the book is available for about £12 I think, so maybe I should just buy a copy when I get my online purchasing working in my new location.)
Далее
These VGA Cards have a COPROCESSOR!
29:23
Просмотров 17 тыс.
XGA : King of IBM Graphics Standards (Part 1)
40:55
Просмотров 15 тыс.
Каха и суп
00:39
Просмотров 1,8 млн
Bit Blit Algorithm (Amiga Blitter Chip) - Computerphile
26:02
VGA Mode X and how it helps games
32:43
Просмотров 10 тыс.
A Rare Paradise Pre-EGA Graphics Card that Plays Doom
36:13
100+ Linux Things you Need to Know
12:23
Просмотров 659 тыс.
Why did a TIME TRAVELLER need this old IBM computer?
16:35
Choose a phone for your mom
0:20
Просмотров 6 млн