• Please review our updated Terms and Rules here

Platronics Colorplus

chjmartin2

Experienced Member
Joined
Dec 26, 2012
Messages
433
Hi,

When I set my Headstart II to Platronics mode in CSHOW - it works! So, I wonder if there would be a way to make a TSR that would take Tandy or PC Jr 16 color graphics calls and make them work on the Platronics?

Chris
 
If CSHOW and the like are programming the hardware directly, I can't think of a good way that doesn't involve a 386 (since you'd have to be able to trap IN and OUT instructions). Hooking INT 10 is a whole lot easier, but almost no one did their video I/O entirely through the BIOS.
 
Hi,

When I set my Headstart II to Platronics mode in CSHOW

Plantronics.

So, I wonder if there would be a way to make a TSR that would take Tandy or PC Jr 16 color graphics calls and make them work on the Plantronics?

No, sorry. Tandy/PCjr modes have a chunky memory arrangement, while the Plantronics 16-color modes are planar. No way to write a TSR because they occupy the same location in memory.

Okay, being very pedantic here: There might be a way to get very early PCjr-only software to work. This is because very early PCjr software was written addressing the video memory window in the lower 128KB and not at B800h. For those titles, you could write a SIMCGA-style TSR to copy and translate the data every other timer tick or something. But that would be incredibly impractical.
 
Plantronics.



No, sorry. Tandy/PCjr modes have a chunky memory arrangement, while the Plantronics 16-color modes are planar. No way to write a TSR because they occupy the same location in memory.

Okay, being very pedantic here: There might be a way to get very early PCjr-only software to work. This is because very early PCjr software was written addressing the video memory window in the lower 128KB and not at B800h. For those titles, you could write a SIMCGA-style TSR to copy and translate the data every other timer tick or something. But that would be incredibly impractical.

I just have one now and wish that there were more applications compatible!
 
Roughly half of all Tandy/PCjr programs work with a single video page after the video mode inits, so a TSR would indeed be possible in the very limited case I wrote earlier. If the video mode is not initialized via the BIOS, the TSR could be activated via a timeout or a user keypress.

This is all moot because nobody is going to write such a TSR for a handful of applicable programs and a video card hardly anyone owns. I was just mentioning it to be thorough.





(It just dawned on me that it should be possible to write a TSR that would translate Tandy/PCjr 320x200x16 @ b800h to 320x200x256 @ a000h on systems with a VGA card installed, and for games where you could force initialization of that mode where it isn't detected. This might require a 386, though, so that there is actual memory sitting at b800h. Might require V86 mode to trap memory accesses. Food for thought, although completely impractical given that you can just run Tandy/PCjr stuff in an emulator easily.)
 
(It just dawned on me that it should be possible to write a TSR that would translate Tandy/PCjr 320x200x16 @ b800h to 320x200x256 @ a000h on systems with a VGA card installed, and for games where you could force initialization of that mode where it isn't detected. This might require a 386, though, so that there is actual memory sitting at b800h. Might require V86 mode to trap memory accesses. Food for thought, although completely impractical given that you can just run Tandy/PCjr stuff in an emulator easily.)

What would the performance hit be with that kind of arrangement? It sounds like a lot of memory you would have to translate from TGA to VGA. If a 32KB page of video memory is being written to 60 times per second, that is almost 2MB of data that must be handled. I know of course that it would be a rare program that would come close to that, especially as that would have been near the maximum practical bandwitdh for earlier systems. It sounds like you may need a fast 486 or a Pentium to get full-speed performance from such a situation.
 
There would be no practical situation where it would run at full speed. SIMCGA doesn't run at full speed either, but thankfully it doesn't have to copy the entire framebuffer over.
 
So for everybody's enjoyment...

Let's see if Plantronics Works in C-Show:


And some stills of GIFs after they loaded.

jeri.jpgbrit.jpgPOP.jpg

Enjoy,

Chris
 
Last edited:
Testing Plantronics in CSHOW

Testing Plantronics in CSHOW

CSHOW Testing Plantronics Mode

 
Last edited:
Hi,

So I got myself a WD Paradise PVC4 CGA card with a composite output. I had been enjoying some games (BTR for example needs to have the Hue adjusted by 135 degrees to get the colors right) on the composite mode. I had a Roxio USB capture device and fired it up. I tried a bunch of modes and when I did 320x200x16 Plantronics in Compushow the colors were weird. I wanted to see what overall colors were available, so I made a test image and then fired it up.

Now I need to make an image converter for it - just for fun.

Chris

plantctest.jpgplantcomp.jpg
 
An emulator for Tandy/PCjr could work, by the grace of their framebuffers being in main memory.
Plantronics uses the same B800h segment as CGA, but puts a second framebuffer with another 2 bits behind it, at BC00h.
A problem would be if games used that range. I don't think PCjr would even have memory in that range. Not sure about Tandy. If Tandy is also compatible with regular CGA, it would have memory located there. And perhaps developers would then use that memory for both modes, to make things more consistent.

If they didn't, then you can do something similar to SIMCGA: Set up a timer interrupt and convert the Tandy/PCjr framebuffer to a Plantronics framebuffer periodically.
You'd still need to figure out where the framebuffer is actually located, but worst case you could just specify the value manually for each game.

I don't think there's a way to make it work for EGA, because firstly, you'd need memory at A000h, which is just above the 640k conventional memory. There are ISA cards available for that, but still.
Secondly, EGA has an onboard ALU, which determines how it reads and writes memory. Since we can't emulate that part, we also can't make sure the right pixel data arrives in the right place.

Since Plantronics uses a pixelformat that is neither compatible with Tandy/PCjr nor with EGA, it is not going to be very fast.
You need to reorder 32k of data for each frame, at the bit level.
 
Back
Top