ee163abs@sdccs7.UUCP (05/27/84)
I have an Apple //e with the Standard 80 col. card. I am thinking of getting an extended 80 col. card and I would like to have some feedback on which one I should buy. By the way, as most of you know, the regular 80 col. card for the //e that Apple makes is too slow to keep up with 1200 baud modem without a specialized driver program. Please indicate if you have any knowledge of how quick the card(s) are. Thanks, Ron Breger (..sdcsvax!sdccs7!ee163abs)
james@umcp-cs.UUCP (06/01/84)
The standard //e Extended 80-col card is just as slow as the regular 80-col card.
ags@pucc-i (Seaman) (06/06/84)
> I talked with someone at Apple at Chicago Userfest who said he has > the new 80 col. ROM in his //e. He didn't seem to think that it speeded > up display any. I have a friend (a developer) who has the ROM who > though it speeded > up scrolling. My friend also said that turning off the > cursor speeds up display quite a bit (if you look at the ROM code you > see that the cursor is displayed twice for each character printed). Why scrolling is slow: Turning the cursor on and off is not the problem. That operation takes only a few microseconds, and you have something like 8.3 milliseconds between characters at 1200 baud. Besides, when you scroll the screen you are only worrying about the cursor twice (before and after), just as with any other output operation to the screen. Let's do some arithmetic. To scroll the screen on the Apple, you need to pick up 1840 memory-mapped characters (23 rows, 80 columns) and move them to new locations, after which you clear the 24th row to blanks. At the very least you need 1840 fetches, 1920 stores, and 1920 increment instructions. On the 1.023-MHz 6502 you have already used up 5.5 milliseconds, which leaves only 2.8 milliseconds for testing, branching, and recomputing base addresses along the way. That certainly is not enough time for a "test and branch" after every character. It might actually be possible if you do some clever loop unrolling, but that is going to take up a LOT of ROM space and it only solves ONE of the problems you have to face in order to function at 1200 baud. What are you going to do about the BELL character, which chews up something like a tenth of a second in buzz loops, just to tweak the speaker occasionally? What are you going to do about form feeds, or their cousins the "clear to end of line" and "clear to end of screen" operations, or the "reverse scroll" operation? The answer is NOT to write faster code. The answer is to use interrupts, so that you can continue with your scrolling operations and not have to worry about losing incoming characters. You may get a few characters behind while scrolling, but you catch up very quickly when all you have to do is store characters into the text page. Those bells sound a bit funny when they get interrupted enough times. -- Dave Seaman "My hovercraft is full of eels." ..!pur-ee!pucc-i:ags