NewRisingSun
Member
- Joined
- May 21, 2013
- Messages
- 46
Palette (PCjr: index/data to 3DA, Tandy: index 3DA, data 3DE) and setting up the 160x100 mode (PCjr: clear bits 6 and 7 on 3DF, Tandy SX/TX/EX/HX: as PCjr plus set bit 0 on 3DD, Tandy TL/SL/RL: as PCjr plus set bit 0 on array register 5).
They do not. 3DF bit 6, which on the PCjr determines whether video memory address bit 13 is substituted with row address bit 0, is ignored on the Tandy 1000(A). Instead, this behavior is controlled by bit 1 of I/O address 3D8, which on the CGA just enables the four color graphics mode. Tandy had to do this for register-level CGA compatibility. If they had implemented I/O address 3DF exactly as on the PCjr, Digger would fail, as it ignores BIOS and sets graphics mode entirely through register level writes and does not update 3DF since it does not exist on the CGA.I do not know if these machines [Tandy 1000/A/HD] may implement the behavior at 3DF which allows this unpatched demo to display properly on a PCjr.
Palette (PCjr: index/data to 3DA, Tandy: index 3DA, data 3DE) and setting up the 160x100 mode (PCjr: clear bits 6 and 7 on 3DF, Tandy SX/TX/EX/HX: as PCjr plus set bit 0 on 3DD, Tandy TL/SL/RL: as PCjr plus set bit 0 on array register 5).
But then I would have to install Turbo Pascal, which would have been more trouble than patching the relocation table.Next time, ask me for the source code! (could have saved you a lot of relocation work)
Why is that? Tandys have a VINT at IRQ5 as well. People just choose to disable it to run their cheesy little hard disk controllers at IRQ5.You're lucky I didn't use the hardware VINT, which would have made your patch impossible
But then I would have to install Turbo Pascal, which would have been more trouble than patching the relocation table.
Why is that? Tandys have a VINT at IRQ5 as well. People just choose to disable it to run their cheesy little hard disk controllers at IRQ5.
My TX can do 160x100 and has the video IRQ; I'm using it for my split-screen 160x200 top, 320x200x4 bottom stuff right now. Based on tests, Cloudschatze's TL can do 160x100 and has the video IRQ as well, and the same applies to his RL (from 1990). I'm curious where people are getting this idea that the video IRQ was ever removed, as opposed to just disabled by jumper.Correct, but it's more than that: The Tandys that can emulate the 160x100 trick don't have a hardware VINT (it was removed fairly early on IIRC), and the Tandys that can do the hardware VINT can't emulate the 160x100 trick.
I'm curious where people are getting this idea that the video IRQ was ever removed, as opposed to just disabled by jumper.
I'm using it for my split-screen 160x200 top, 320x200x4 bottom stuff right now.
I always assumed that was the case! Now you've got me thinking about how I came under this impression, and I don't have an answer. I have confused myself.
To make sure I wasn't going crazy, I decided to look at my (incomplete) tech ref collection to verify for myself if a system had IRQ5 tied to vertical sync. Results:
- Tandy 1000 EX: Yes (looks like it cannot be disabled?)
- Tandy 1000 HX: Yes (looks like it cannot be disabled?)
- Tandy 1000 SL: Yes
- Tandy 1000 SX: Unknown. Ref manual states "Interrupts 5 - 7 are connected through a switch to the system board function listed, and are also connected to the expansion bus. To use interrupt 5, 6, or 7 on the bus, the system board function must be disconnected (set the appropriate switch to off)."
- Tandy 1000 TX: Yes (interestingly, denotes "off" as "external sync")
- Tandy 1000 TL: Yes
I guess if I wanted to make a truly unpatchable PCjr program, I'd have to get sneaky. For example, writing directly to the first 128KB of RAM to update video, as opposed to using b800h and the paging registers. That would be much more time-consuming to patch around, I think.?[/COLOR]
Or if you wanted to be truly Evil, put your program on a cartridge with hard coded memory accesses.
No, just converting games that use composite artifacting to using 16 color RGBI graphics. By switching modes mid-screen, I can get sharp text and nice color without rewriting all graphics routines from 320x200x4 to 320x200x16 mode.Trixter said:You buried the lead! Making a game?
I am experienced at patching that situation: Some Tandy games write directly to (total memory size minus 32K) instead of using B800h and the paging registers. These games fail to work on a 768K Tandy 1000, because that one only allows access to video memory at B800.Trixter said:For example, writing directly to the first 128KB of RAM to update video, as opposed to using b800h and the paging registers. That would be much more time-consuming to patch around, I think.
Tandy: Super Boulder Dash, Touchdown Football, Demon Attack, Ghostbusters. PCjr: All the previous ones plus Pitfall 2. (These are the ones I checked, there are likely others.)Great Hierophant said:Does anyone know of any software that uses IRQ5 with Tandy Graphics or even PCjr. Graphics?
You're saying that like it's a bad thing.Trixer said:This conversation is threatening to delve into copy-protection territory.
You're saying that like it's a bad thing.
Only bit 0 is of importance; it enables the "extended addressing mode". The other bits control an extended video memory size of 256K rather than 128K, which only the EX, SX and HX support and is useless anyway (who needs that many pages?). "Extended adressing mode" basically changes the meaning of bits 6 and 7 of 3DF.Trixter said:I don't seem to have the tech refs that explain what all of 3DD's bits do; anyone got a link?
The other bits control an extended video memory size of 256K rather than 128K, which only the EX, SX and HX support and is useless anyway (who needs that many pages?).
Only bit 0 is of importance; it enables the "extended addressing mode". The other bits control an extended video memory size of 256K rather than 128K, which only the EX, SX and HX support and is useless anyway (who needs that many pages?). "Extended adressing mode" basically changes the meaning of bits 6 and 7 of 3DF.
On the EX and HX, it's clear: the standard 256K on the system board are all video memory. All expansion RAM is separate and inaccessible to the video chip.