by Maurice Randall
Commodore World issue #17 October/November 1996It was an ordinary workday, early in May of ‘96. I was at my auto repair shop when suddenly the UPS truck pulled up. In its arms was a package from Creative Micro Designs. I signed for the package and proceeded to check out the contents. It was a prototype of the new SuperCPU for the C64 sent to me with the hope I could make GEOS work with the SuperCPU. GEOS would run at 20 MHz, and never be the same again.
EditOVERCOMING OBSTACLES
Working with the folks at CMD, I came up with several ideas I thought should he incorporated into the SuperCPU hardware as well as the GEOS software to make their combined use as simple as possible. The more daunting task for the user (usually) is determining the first steps to take when installing any new hardware or software. We therefore wanted to make that part to be as simple as possible. The idea developed into the GEOS application—which is supplied with the SuperCPU—called “SuperInstall”.
By simply booting up GEOS as you normally would, and then running SuperInstall, all the modifications to your boot disk necessary to use GEOS at 20MHz are made. The program takes care of the all the dirty work for you.
EditWHAT TAKES PLACE
There were two main problems with GEOS caused by the speed of the SuperCPU. GEOS does not use the standard Commodore serial bus routines that are built into the computer (they correctly time the data transfer between the computer and the disk drives). If it did, then the modified routines that are now in the SuperCPU would be used. Since GEOS has its own routines for communicating with the disk drives, those routines would try to send and receive data faster than the disk drives could handle. The point at which disk drive communication takes place needed to be slowed to the original 1MHz. There is an AUTO-EXEC file that SuperInstall creates and places on your boot disk that will run during the bootup process. The file is called SUPERGEOS, This program patches the GEOS kernal routines to make sure that GEOS is slowed down to 1 MHz during disk access and then speeded back up to 20 MHz when finished.
The other main problem involved the mouse (a joystick works fine). The mouse driver receives information from the SID chip in order to determine the direction the mouse is travelling, how far, and how fast it is moving. In order to read this function of the SID chip, there is a certain amount of time that must pass after switching to this function before a valid reading can take place. The mouse driver merely performs a wait loop, and then reads the chip. At 20 MHz, the wait loop is negligible. A valid reading rarely occurs and the mouse pointer bounces around violently. To remedy this problem, new mouse drivers were created.
EditNOW, I CAN BOOT GEOS
Initially, I wrote a patch program and created a slightly modified mouse driver so I could get GEOS up and running. I sent these files off to CMD so they could boot up GEOS and work on some of the other problems, and decide if they required modifications to the actual hardware or the built-in software in the SuperCPU operating system.
I was able to take the prototype unit to our local user group meeting and show it off. The members witnessed the first public showing of this new speed marvel, GEOS was impressive, but work still needed to be done. Over the next few months, CMD improved the hardware and I improved the software. The resulting product is very easy to use, and works nicely with GEOS. In fact, it works so well, that you almost forget it is even there. The software running during bootup goes unnoticed and the mouse driver performs flawlessly. GEOS runs so fast, problems have come up that were never before encountered.
EditBLESSED WITH SPEED
Before many people started buying 1750 RAM expanders and began using RAM Disks, GEOS got a bad rap. It was slow and the constant disk access was painful and turned some people off to using GEOS. GeoWrite uses the disk drives extensively. Each page is stored separately on disk in its own record within the document file. Document changes took time, especially when no page breaks were used. The RAM disk fixed this problem. GEOS was no longer slow due to its file access, but rather to the speed at which the computer was running. When you are typing into the middle of a GeoWrite document, the program stays ahead of you. GeoWrite is always operating in insert mode, so as you type into the middle of a sentence, the data appearing after the cursor moves along with each keystroke.
GeoWrite is not a simple program. It does a great deal of processing. Geo Publish is worse. These programs are working with a virtual bitmap that is an 8 x 10 printed image. These are not text images either— they are graphic images. The images are pictures appearing to contain text. Each character is composed of little dots. GeoWrite and geoPublish, in conjunction with several built-in GEOS routines, have to calculate where each of these dots will go.
EditNO MORE WAITING
When an editing change is made on the screen, some of the data must be moved around. At 1 MHz, there was a lot of waiting involved. Not anymore. I used to spend time pondering the changes I would make to our club's newsletter (I'm the editor) as I was waiting for the screen to reconfigure. Now I don't wait. I click on a tool or move my fingers to the keyboard and start working. The screen is redrawn almost before I am ready to start typing.
EditSPEED CAN BE A PROBLEM
Faster processing has many rewards, but it can also create a few headaches. Fortunately, the times when GEOS is a pain to use at 20 MHz are rare. Since June, I’ve been able to produce our club's newsletter using the SuperCPU and geoPublish. I knock at least two hours off the time I would normally spend putting the newsletter together.
While working on the newsletter, I noticed some problems the speed created. When scrolling through font point sine selections and selecting from various patterns, the scrolling was too fast! I had a hard time changing from a 10 point size to a 12 point size. I would click on the arrow to change the point size and would end up somewhere around 18 or so. It required a very brief and abrupt lap on the mouse button. Selecting patterns was just as difficult. It was nearly impossible to go from solid black to the next pattern which was a 50 percent grayscale, an adjustment was definitely needed.
EditSLOW IT DOWN
Maybe if the creators of geoPublish had known the SuperCPU was coming, they would have allowed for increased speed. They would most likely have either switched the SuperCPU to 1 MHz or used some custom timing routines with the 64’s built-in clock chips to insure that each selection of point sizes or patterns came within a certain prescribed amount of time. Unfortunately, they had no idea we would be flying through those selections some day.
I couldn't see letting CMD release the SuperCPU without some sort of solution to this problem. That's where the mouse comes in again. I added a new function to the right button on the 1351 driver and the center button on the SmartMouse. This function would produce the same click as if you pressed the left button, but while doing so, the SuperCPU would be slowed down to 1 MHz.
As long as the 1 MHz button is used to click on the scrolling functions in GeoPublish (or any other application with a similar function), things will happen just as the original programmer intended. If you use a joystick, I am sorry to say that you are out of luck. You will have to resort to using a quick click on the fire button. The natural solution would be to purchase a new SmartMouse from CMD, and of course. CMD would prefer that also.
EditSAFE MOUSE AREAS
I encountered another problem while using geoPublish. While in ZOOM mode, and using the mouse to scroll around the page, the page redraws itself after scrolling to the desired position, allowing the page to scroll about much faster. At 20 MHz, all you do is move the mouse to any edge of the screen and the scrolling begins. Pull the mouse away from the edge, and the scrolling ceases and the screen is redrawn. Many times you scroll farther than you intend. There are two solutions. One is to use the position indicator at the top of the screen and just move the little box around within the little page, or while using the mouse at the edge of the screen, press the 1 MHz button. This works well as long as you don't press the button while aiming at an object that can be selected. A little finesse may be required in this situation.
In addition, you can just reach for the SuperCPU, and manually switch the unit to 1 MHz, scroll the screen to the desired location, and then switch it back. The beauty is you can move the switch any time you want. While the screen is slowly being redrawn at 1MHz, flip the switch and it will finish at 20 MHz. You won't damage anything by doing this. You can even flip the switch while disk access is taking place. The software and hardware are both designed to handle this type of abuse.
I use geoSHELL almost exclusively in place of the Desktop. While viewing a directory, the filenames scroll by too fast now. Of course, I can hold the CONTROL key to pause the scrolling, but I discovered another neat trick. While holding the CONTROL key to pause the listing, I can press the 1 MHz button to override the CONTROL key and the listing will begin scrolling again, but at the slower 1 MHz speed. This is pretty handy when looking for a file. The method also works with any other function in geoSHELL requiring the CONTROL key to pause the listing. The type command displaying text files also suffers from scrolling too fast. The 1 MHz button pressed at the same time as the CONTROL key works in this case as well.
EditA SLOW 128
A few years ago, when I started using GEOS on my 128, I very rarely went back to GEOS on the 64. It wasn't so much the fact that I could see more data on the width of the screen, but rather the fact that the computer was running twice as fast. After all, geoPaint in 40 column mode is still preferred over 80 column mode for some operations. And geoPublish can only run in 40 column mode anyway. 40 column mode always runs at 1 MHz. But the true 80 column applications like geoWrite would run faster since they operated at 2 MHz. The Desktop and geoSHELL also work faster in 80 column mode. Now, I have a SuperCPU to use with GEOS 64. I still use my 128, and it is still my main system, but it seems so slow now. I am much more productive with the 64 running at 20 MHz.
As I said, I can save at least 2 hours each month while working on our club's newsletter, but my main use is programming. While working on the new version of geoFAX, it takes me about 8 minutes to use geoLinker to link all the individual *.rel files together to create the actual application. So, if l spend 10 minutes or so typing in a change to the source code and then re-link the files to test the change, I can use up a good half-hour through the whole process before I am ready to either fix the change or move to another portion of the program. With the SuperCPU, my geoFAX files link together in about 50 seconds. I save about 7 minutes each time 1 test a change to the program.
EditBACK TO THE BEGINNING
Occasionally, you may find a need to use the installer program again, as with changing your mouse. Let's say you currently have a 1351 mouse and later purchase a Smart Mouse. You can still use the 1351 mouse driver that SuperInstall created for you; however, there is an advantage to switching over to the SmartMouse driver. In addition to the 1 MHz button, the right button will become a 20 MHz double-click button for double-clicking on certain icons and other objects. When it comes time to switch to a different mouse driver, you simply run SuperInstall and turn off all functions except the one that creates the desired mouse driver. The program will create the new driver tor you and will also rearrange the position of the drivers so that the new one is now the first mouse driver on the disk so that the Desktop will load it into the system for you during bootup.
All of the patches and new files that are used with the SuperCPU are specially designed so you can still use the same boot disk whether you have a SuperCPU connected or not. This prevents the need for two separate boot disks which could lead to much contusion and other problems. You almost forget that the SuperCPU is even in use except that everything is so much faster than before. Simplicity is always best.
An effort was made to ensure that GEOS would work just as well with the SuperCPU as without. Every aspect was considered. You can still exit to BASIC and hit the RESTORE key to pop back into GEOS. When exiting to BASIC, a patch was applied to GEOS to insure the unit was running at 20 MHz upon exit. The function that allows the return to GEOS also makes sure that the correct speeds of 1 MHz and 20 MHz are running at the appropriate times. Those that like using R BOOT may still do so, you are covered also. The same version of R BOOT that you've been using will still work with the SuperCPU.
EditGETTING OUT OF TROUBLE
Very rarely should you have any problems using the SuperCPU with GEOS. It has been made fully compatible. Chances are, if you have trouble, it will be because a program is corrupted in some way and would fail whether you had a SuperCPU or not. If at any time you find that the SuperCPU gets locked into 1 MHz mode and stays there while using GEOS, something is wrong. Some GEOS kernal calls were made by a program you use that were performed out of order. This is simply bad programming and will likely show up while using the SuperCPU. The solution is to either reboot the system or load up SUPERGEOS and check the settings it provides. If the turbo mode shows 1 MHz just click on the simulated switch to switch it back to 20 MHz. If the problem occurs again, try to remember what you did to create the problem. It is most likely the same program that will give you trouble each lime.
EditA PROGRAMMER'S POINT OF VIEW
For the most part, programming work won't have to change. If you write a program for GEOS, and you follow all the guidelines, your program should work with the SuperCPU. There are some things you can do to make GEOS with a SuperCPU work even faster than it already does. A considerable improvement in speed can be achieved. I am using these ideas in the new release of geoFAX and they will likely be covered in the upcoming programmer's reference guide for the SuperCPU. In the meantime, just follow the rules like you would anyway and your software will function just fine.
EditORIGINAL BOOT DISKS
For those of you that buy the SuperCPU, also buy geoMakeBoot from CMD. Remember, SuperInstall makes changes to your boot disk. Even though you can do this to your original boot disk, it would not be a good idea. The extra money spent on geoMakeBoot is peanuts compared to the risk involved if something should happen to your original boot disk. Plan on only installing the SuperCPU to a disk that you have created with geoMakeBoot. Then, don't use geoMakeBoot while the SuperCPU is running or the patches applied for the SuperCPU will be embedded within the new boot disk and it will only work if the SuperCPU is present. The correct order for making your boot disks:
- Boot up with original boot disk.
- Make new boot disk with geoMakeBoot.
- Modify new boot disk using SuperInstall.
The resulting boot disk will work with or without a SuperCPU. Follow a few simple rules and have fun using the SuperCPU with GEOS.