The 64,000,000,000K?? C-128!! Co-Authored by Don Buchanan and Cheryn Nunn In reading this month's RUN magazine, we came across the article by Stephane Dirschauer titled "Hardware RAMpage". In it he notes it's only possible for the C-64 computer to use 65,536 bytes (64K) at a time (or 128K for the C-128). Of course, Don Buchanan didn't read this. Don has gone "where no man has gone before". With his C-128, first it was 128K, then 576K, then maybe 64,000K? How is this possible when everyone else says it won't work? The main problem is the MMU (memory management unit) is designed to use only 128K of memory. There aren't any extra lines for more banks of memory. One way of getting around this problem is controlling where the bank select line is directed. You can send it to any where simply by using a data selector. Also, it is necessary to be able to access this data selector with the microprocessor. This can be achieved by having the data latched from the address bus in a simple 8-bit latch. This latch is used to capture the value you want to use for the bank number. This latch acts like the switching station in a railroad track, and will keep the data going to the right place until the tracks (latch) are switched. Also, you need to be able to read the latch and it not be on the bus (the electric circuit) all the time. This is done by a transparent latch which only reads the latch when the current bank number is needed. Switching banks is handled by a three line to eight line decoder chip which allows the circuit to send the CAS (column address strobe) to the correct bank. All that is necessary to do this is put the three lower bits of the latch into the multiplexer. Whatever code is in the three lower bits, will be translated into 8 lines and by running CAS through this chip, it will go to the line selected. So how does a program handle all this extra memory? The program is written in modules. Each module is told to load into a certain bank by using a unique "latch" value for each module. When the program is ready to leave one module and go to the next, the "latch" value for that module is given so that the computer knows which bank to go to next. A data file used by a program can be stored in a bank, and when new data is generated by the program, can also be sent to that bank. All of this is greatly oversimplified for the lay computer user. In achieving this memory expansion, Don has had to add an 8-bit latch chip, an 8-bit transparent latch chip, a 3 line to 8 line decoder chip, an AND chip, and an inverter chip. Not to mention the 64 RAM chips. (Don's 128 doesn't resemble a 128 anymore.) Based on this concept, there is no limit to the amount of memory which could be installed in a C-128. The advantage of boosting internal RAM, as opposed to greater external RAM, is that only coding changes have to be made to programs, instead of having to "copy" into the RAM. Plus, the system can run at the full 2 megahertz speed, where with external RAM, you're limited to the 1 megahertz speed of the RAM expansion controller chip. The RUN article mentioned that with the RAMLink and RAMDrive, the C64 and C-128 can now strut their stuff with the big boys. I'd say that Don's work with the internal RAM will give programmers a chance to write the kind of programs that would compete in all phases of computing. [PRESS RETURN]: