VOGONS


Question about code and PCjr and svga_s3

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 20 of 30, by Great Hierophant

User metadata
Rank l33t
Rank
l33t
Scali wrote:

Those IBM 'designs' were some of the worst in the history of computing. Both the PC and the PCjr are laughable designs. But hey, if you suck that much, perhaps you think that this memory refresh solution is actually a 'cool feature'.

I think Steve Wozniak thought it was a cool feature when he designed his video circuitry to refresh the system RAM of the Apple II. Substantial chip savings were incurred for what was a chip heavy motherboard. IBM did not originate the idea, they used an off-the-shelf CRT controller whereas Woz used discrete circuitry to achieve the same result.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 21 of 30, by digistorm

User metadata
Rank Member
Rank
Member

The difference is that Steve Wozniak built his circuit in 1977, while the PCjr was released in 1984. 7 years in computer technology is an age. You wouldn't pay the full price for a PC from 2008 either.

Reply 22 of 30, by mbbrutman

User metadata
Rank Member
Rank
Member

Also, when Steve built the circuit he was dealing with a machine that had a much slower clock rate. The video controller and the CPU could interleave memory without bumping into each other.

By the time you get to nearly 5Mhz, that requires arbitration, hence some of the function of the Video Gate Array on the PCjr. Otherwise, you get snow.

Reply 23 of 30, by Greenchili

User metadata
Rank Newbie
Rank
Newbie
Greenchili wrote:
Moving along and back on topic.... :P […]
Show full quote

Moving along and back on topic.... 😜

I got PCJR speed corrected and since I updated the code and have access to machine type of EGA I can run EGA mode (for games like Gauntlet). However I have a similar issue with Gauntlet in EGA mode. It is running too fast. The clock (gamers health) counts down twice as fast.

Weirdness... 🙁

Any ideas on where I need to look?

No ideas on why games in EGA mode are having a speed issue as well? This has still got me baffled. I combed over the code pretty good but I'm still missing something.

Reply 24 of 30, by Scali

User metadata
Rank l33t
Rank
l33t
mbbrutman wrote:

I'm just merely pointing out that the point of view of the people who designed the machine is quite different than your interpretation.

It isn't. This whole thing about 'design' is entirely your own fabrication, all part of your scheme to 'prove me wrong' in your giant ego-trip.
I merely said this: "Because of the memory accesses, the memory also gets refreshed automatically, but that is a side-effect rather than the reason."
Which I said to point out that the memory REALLY doesn't need to be refreshed every 4th cycle (refreshes are required every 72nd cycle if I'm not mistaken), and that there are other reasons why the CPU can't access the memory all the time, which were not mentioned previously.
Nothing about 'design features', since that is hardly relevant... unless of course you want to turn this thread into some kind of ridiculous PCjr-worship.

mbbrutman wrote:

To them, the video controller refreshing the memory was a design feature, and they used it as such. You don't have to accept it, and clearly you don't.

Another fabrication of yours. I never denied any of it:
"So if you want to stick to your opinion that this was a design feature of the PCjr, even though the chip existed long before the PCjr did, and was used in many other machines before the PCjr was designed, that's up to you.
It is my opinion that this is a rather strange view of reality."
...
"I'm not. I'm saying that I think it's a silly view to have, I'm not denying that they may actually think this.
And I said why it's silly: video chips have been designed in a way that their access patterns refresh all video memory, without the need for any additional refreshing for years before the PCjr arrived. And home computers have been designed to share video memory with system memory, therefore not requiring additional refresh for years before the PCjr arrived.
So if those IBM engineers are like "Wow, look at this cool feature we've just designed!", using this off-the-shelf Motorola chip which tons of people have used in the exact same manner before them, then yes, I think they're being silly."

I think to me it is more or less analogous to referring to a phone's ability to make phone calls as a 'design feature'.

My ego is not the issue here.

Apparently it is. PC design seems to be a touchy subject for you.
Everyone with half a clue knows that pretty much every other system out there was more advanced/refined.
The PC is full of kludges and limitations, such as 16-bit segmented addressing, and DMA being limited to operating within single 64K pages.
Then there's tons of things it simply lacks altogether, such as hardware scrolling, sprites, raster interrupts, custom character sets etc.
And that's just looking at the features. If we also look about HOW they designed it... They needed full-size cards for MDA/CGA, filled with discrete 74xx logic and such, making them very expensive. Likewise, the entire motherboard of the 5150/5160 is filled with components.
Most other computers of the same era had considerably more elegant designs, integrating discrete logic into custom chips, making them a lot cheaper and smaller, while offering similar features or even more.
I guess you just need to get out more, broaden your horizon.

Those are pretty bold claims. I'm sure your designs have all been better.

That's not the point here, but thanks for proving my point about your ego-trip by supplying yet another fallacy in your line of reasoning.

Last edited by Scali on 2015-02-02, 11:41. Edited 5 times in total.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 25 of 30, by Scali

User metadata
Rank l33t
Rank
l33t
Great Hierophant wrote:
Scali wrote:

Those IBM 'designs' were some of the worst in the history of computing. Both the PC and the PCjr are laughable designs. But hey, if you suck that much, perhaps you think that this memory refresh solution is actually a 'cool feature'.

I think Steve Wozniak thought it was a cool feature when he designed his video circuitry to refresh the system RAM of the Apple II. Substantial chip savings were incurred for what was a chip heavy motherboard. IBM did not originate the idea, they used an off-the-shelf CRT controller whereas Woz used discrete circuitry to achieve the same result.

Yes, my point exactly.
Wozniak was the first to put video circuitry on a microcomputer, in the Apple I.
The Apple II already dates from 1977, and since then, many others applied the same idea. The really clever part is that Woz interleaved the video and CPU cycles, which was possible on the 6502, because it only accesses memory every other cycle. The C64 is one of the machines that also applied this idea (in 1982).

When IBM did it in in their PCjr in 1984 (using the standard 6845, which already had it designed in anyway, and had been around since 1978 or so), it wasn't exactly 'cool' anymore. Everyone had been doing it for years.

Last edited by Scali on 2015-02-02, 09:25. Edited 2 times in total.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 26 of 30, by Scali

User metadata
Rank l33t
Rank
l33t
mbbrutman wrote:

Also, when Steve built the circuit he was dealing with a machine that had a much slower clock rate. The video controller and the CPU could interleave memory without bumping into each other.

By the time you get to nearly 5Mhz, that requires arbitration, hence some of the function of the Video Gate Array on the PCjr. Otherwise, you get snow.

The memory on a PC/PCjr is pretty much the same speed as that of most 6502-based machines.
Therefore each memory access takes 4 cycles on 8088. Which effectively makes it run at ~1.2 MHz compared to a 6502 which can access memory in 1 cycle.
It's just an early case of MHz myth really. Most instructions on 8088 take ~4 times as long as on a 6502 in terms of cycles, so in practice the performance is similar to that of a ~1 MHz 6502. Likewise, the Z80 (also based on an Intel design) generally ran at ~4 MHz speeds in most computers (while also delivering similar performance to a 1 MHz 6502), so 8088 is far from unique here.

Besides, arbitration is nothing special. C64 for example also uses arbitration when the VIC-II needs to read from colorram or from sprites. In those cases the VIC-II needs to use both even and odd cycles, and has to halt the CPU.
Again, this predates the PCjr, and I'm quite sure the C64 is not the only one who solved it that way.

So again, get a clue about the contemporaries of the PCjr, and compare the solutions that have been available before the PCjr arrived. By 1984, PCjr didn't exactly do anything 'special', but was merely a poor copy of ideas from various other systems.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 27 of 30, by Scali

User metadata
Rank l33t
Rank
l33t
Greenchili wrote:

No ideas on why games in EGA mode are having a speed issue as well? This has still got me baffled. I combed over the code pretty good but I'm still missing something.

I have no clear-cut answer to your problem, as I have not seen these games, let alone investigated the issue...
But EGA uses a very different memory layout compared to PCjr/Tandy, so the graphics routines will likely have different performance characteristics.
Then there's the EGA hardware itself, which has different performance characteristics as well.
So that may have something to do with what you're seeing?

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 28 of 30, by mbbrutman

User metadata
Rank Member
Rank
Member

Scali,

If there is any evidence of me "ego tripping" in this thread, or a horrible burning desire to prove you wrong somehow, then I think it's time for you to get back on your meds. Nothing in this thread supports either assertion.

I find that you think you are worthy of persecution from unknown strangers to be pretty trippy. Serioiusly, lighten up. Don't like the opinion of somebody who was there? Then fine, move along ... but none of this should be taken as an affront to your vast technical prowess, manhood, etc.

For the sake of the other poor readers, let's agree to disagree or keep further discussion in private. I'm not responding any more to you in public; there is just no point to it.

Reply 29 of 30, by Scali

User metadata
Rank l33t
Rank
l33t
mbbrutman wrote:

If there is any evidence of me "ego tripping" in this thread, or a horrible burning desire to prove you wrong somehow

Your entire participation in this thread was solely aimed at disagreeing with me, on an issue that is entirely unrelated to the topic, in a manner that was very unpleasant, to say the least.
You're not fooling anyone.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/