!lm12
!rm75
Super Scroller.................................Jeffrey Scott
                                            East Norwalk, CT

I am a manager of a software department in a company that makes computerized money counting equipment (6502 based).  We have two programming departments:  one which is called "applications" (Pascal and BASIC only) and another called "software engineering" where we use assembly language.

We use the S-C Macro Assembler after having sampled all others.  And in fact, with my Apple II, 5 Mbyte hard drive, and 3.6 MHz "Number Nine 6502" plug-in board, I can assemble a 300-page source program in about 2.5 minutes!

I love the Apple II, but I don't like being tied to an operating system that I didn't write myself.  I use RWTS, but for the rest I use my own code.

I remember one day trying to output to the screen while receiving at 2400 baud.  The Apple monitor's scroll was so slow that I lost the first few characters from the front of every line.  While writing my own substitute scroll routine, the idea was born that the absolute fastest scroll would be straight in-line code:  one "LDA $xxxx...STA $xxxx" pair for each byte on the screen.

Just for fun, I wrote the following program, which generates the 960 LDA-STA pairs to scroll the whole screen!  The generator program is only 145 bytes long, but it "writes" a program 5521 bytes long!

This "Super Scroller" is not for everyone...it requires a spare 5521 bytes ($1591) of memory somewhere.  If you do, you need only equate "PGM.START.IN.RAM" to your available area, call "PGM.TO.WRITE.SCROLLING.PGM", and then you can call the Super Scroller at "PGM.START.IN.RAM whenever you need it.

Since the scroller can be generated whenever it is needed, it can be part of an overlay environment.  You only need a 5.5K buffer available at the right times.  At other times the same memory can be used other ways.

To illustrate the speediness of Super Scroller, I wrote a memory dump whose output is the same as the Apple monitor memory dump.  It is set up to display from $0000 through $BFFF.  With Super Scroller, it takes only about 51 seconds; without, it takes 2 minutes 57 seconds (over three times longer!).

Someone might object that I did not clear the bottom line after scrolling up.  I elected to just write a fresh bottom line, and clear to the end of line after the last new character is written.
