******************************************************** This article is being presented through the *StarBoard* Journal of the FlagShip/StarShip, SIGS (Special Interest Groups) on the Delphi and GEnie telecommunications networks. Permission is hereby granted to non-profit organizations only to reprint this article or pass it along electronically as long as proper credit is given to both the author (when known) and the *StarBoard* Journal. ******************************************************** 1700 Ram Expansion Module by Harry Flaxman (HARRYF) The first memory module to be released for the C-128 is the 1700, 128k byte, module. The module adds 128k bytes of expansion memory to the C-128. Physically, the module plugs into the expansion port (cartridge slot) of the 128. It is approximately 4 inches deep, 5 inches wide, and 1 inch in height. The module is color-coordinated for the C-128 and has ventilation slots on the back to match the 'slotted' look of the 128. There are no buss extenders, so plugging other carts in with the 1700 cannot be accomplished without an expansion chassis. The module comes packed with a disk which contains some fairly impressive demos on one side, and a new CP/M operating system that automatically recognizes expansion memory as RAMdisk from CP/M (drive M). Included in the demos are a version of the 'Amiga' bouncing ball and several cube motion demos. A diagnostic program to test the memory module is also included. Dependant upon the size of the expander, 128k or 512k, the demos run differently, as they use expansion memory to store screens for their animation, and more screens are possible with 512k. The module adds 128k bytes of memory to indirectly accessible memory. This means that code cannot be executed within the memory module, and it does not increase the BASIC text or variable area at all. Just what good is the module? . . . . . read on! Memory transfer between the expansion module and bank 0 of the 128 is handled by a special chip, called the REC, which provides direct memory access. This allows for speedy transfers between the module and the computer. BASIC 7 on the C-128 contains three commands that make accessing the expansion module fairly simple. STASH allows storing of data from RAM bank 0 of the computer to the module a simple task. FETCH allows retrieval of any specified number of bytes from expansion memory to RAM bank 0. With these two commands, the only memory modified is the TARGET memory. If you are moving memory from expansion to bank 0, after the transfer, expansion will remain intact. Bank 0 will change to reflect the data you just retrieved from expansion. The same is true of moving data from bank 0 to expansion. Nothing is lost in bank 0; expansion is changed. The third BASIC 7 command to manipulate the expansion memory is SWAP. SWAP alters both target and source memory. If you do a SWAP, the area specified in the swap is exchanged with whatever is in expansion memory, and bank memory is placed in expansion at the same time. At the present time, the one serious lack is a RAMdisk wedge program. A RAMdisk wedge would allow the expansion memory to emulate a very fast disk drive accessible from BASIC 7. The majority of software support for the expansion module has come for the CP/M side of the machine. The new operating system packaged with the module allows transparent operation of the drive M under CP/M, the expansion module. File transfers and manipulations to the expansion module seem 4 times faster than to the 1571 disk drive utilizing a CBM, double sided CPM format. The 128k module allows approximately 124k to be utilized for file storage under CPM, the 512k expander (1750), allows a whopping 506k of file storage, with the rest being utilized as directory space. The manual accompanying the module leaves a bit to be desired. It takes the inexperienced user through several examples on utilizing the BASIC 7 commands, and the new CP/M RAMdisk capabilities. The manual then jumps into the tech specifications of the REC DMA chip. Registers are mapped nicely for the experienced programmer, but this would have little or no meaning to the beginner. Considering the complete lack of documentation on this module in CBM's other manuals for the 128, including the Programmers Reference, it would have been nice to see more involved examples, for the intermediate user. One word of caution...if you intend on purchasing the 1700 with ideas of upgrading the module to 512k don't! I have upgraded my board to 512k, however it is not a task that is recommended for the end user, and something that I sincerely doubt CBM will pursue in the future. It takes experience working on multi-layered pc boards to upgrade the board. Commodore obviously had NO plans to allow upgrades to be done by the end user or by their service centers. I am extremely impressed by the new capabilities of my system, and feel that the module is something worth looking into if one intends to do any memory intensive programming. Harry Flaxman (HARRYF) ********************************************************* The following technical information is provided by KEVIN-S. from GEnie. He describes modifications that can be made to uprgrade your 1700 to a 1750 RAM expansion board. Harry recommends NOT doing the work, but for those of you who want to do it anyway, here are the specs. Let us know how it all works out! Thanks, Kevin! ********************************************************** Ok, sports fans, here is the ?quick? and ?easy? information for upgrading your 1700 to 1750 status. It was sent to me by Bob Carpenter, from Aurora, Il, along with the schematics and a very nice cover letter. The procedure is quite straightforward, but be warned that you do void your warranty, and neither CBM, Mr. Carpenter, or myself will be accountable if you fry your 1700. The fact that I accomplished the upgrade, however, should be an encouragement; I am by no means a hardware hacker. With the above disclaimer in mind, here goes... Materials: You will need 16 256k dynamic rams, either 150 ns or 120 ns. Also highly recommended are 16 16-pin IC sockets, so that you don't have to solder the new chips in directly. You will also need a small soldering iron, electronics solder, and some desoldering device. 1: Pry open the case of your 1700, gently. It is a press-together case. THIS STEP WILL VOID YOUR WARRANTY. 2: You can now look through the RF shielding and see the four posts holding the board in place. Gently pry the entire metal shell out of the bottom of the case. 3: Now remove the RF shell. It is a spring fit around the edges. You will need to bend the shell back a bit. Remove the circuit board. 4: At this point you can identify the salient pieces. Towards the rear (away from the edge connector), you will see two parallel rows of inch-long chips. These are the 64k RAMS. The large chip nearest the edge connector is the special memory control chip. It is socketed. I didn't remove it while working on the board, since my instruction sheet didn't say to, but you should avoid touching it. About 1 inch in from the connector, you should see two clusters of solder pads, one with two pads, marked J1, and one with three pads, marked J2. These are the only components that you will have to deal with on the circuit board. If you have identified them all, you are ready to proceed. 5: Desolder the old 64k RAMS, using whatever technique works best for you. Dispose of them as you will. 6: Note that the sketch on the circuit board under each RAM chip has a semi-circular hollow on one end. This is to show which way to insert the new chips, which have a similar depression on their surface. I mention this now because you may not be able to see the sketches after you install the IC sockets. 7: Solder in the IC sockets. 8: Check your soldering for spurious connections, incomplete connections, etc. 9: Plug your nice new 256k RAM chips into the IC sockets, making sure they face the right way in accordance with (6. 10: Look between the two solder pads at location J1. You should see that they are connected by a tiny solder trace. This trace must be cut in order for the unit to recognize all that memory you just installed. Cut it carefully but definitely with a razor knife or other tool. 11: You are finished! Re-assemble the RF shell and case, and run the diagnostic program that came with your 1700. If everything checks out, great. If you get an error message, not so great. The likelihood is that you have a bad solder connection on one of the IC sockets, or possibly a bad RAM chip. 12: When re-assembling the board into the RF shield, be sure tat nothing but the circuit board edges are in contact with the shielding. A short circuit could conceivably damage your computer or RAM unit. Notes: It is worth mentioning that you should make sure that the replacement RAMs you buy are from the same manufacturer, and preferably the same batch. I have heard some nasty stories from IBM-PC folk about mixing and matching RAMS. If you look carefully at the circuit board, you will see that several big traces have been cut through. Apparently someone screwed up at CBM! Your Boing! demo will now be much smoother. Invite some IPM-PC friends over and laugh at them. Good luck and congratulations, in that order! KeS ***************************************************** The following technical information is provided by Bill Hirt (WHIRT on GEnie. He describes modifications that may be necessary in order for your 1750 RAM expansion board to work if your C128 has a serial number between CA1044001 to CA1046880. Also included is a discussion of modifications for the MACH-128. Thanks, Bill, for your help! ********************************************************** I've had the 1750 for about a month now after getting a new 128 (the first was one of the first 2000 which won't work with the RAM expansion. By the way, if anyone out there has a 128 with a serial number between CA1044001 to CA1046880, I have the necessary information from CBM to modify the 128 so it works with the RAM expansion and the information from Abacus on how to get MACH128 to work with it. It works great as RAM disk in CP/M. I used it the other night as our user group meeting and it was nice to load up some CP/M files to the RAM expansion and then be able to go to both 64 and 128 modes and then come back and have the files still there. One thing I've noticed, is after the 128's on 3 or 4 hours, the RAM expansion will sometimes not work correctly as if the power supply is overheating. I've tried 2 power supplies and the same thing has happened with each. I'm certainly putting the power supply to work though as I've got an interface and print buffer being powered off the cassette port, a 1670 on the user port, and 1750 plugged in all at once...so I may be tempting fate. Most people I've shown it too really like it until I tell them the price. Bill ******************************************************** Here are the mods to be made on C128's with serial numbers CA1044001 to 1046880 to allow them to work with the RAM expansion: (These mods are from Von Ertwine of CBM engineering) 1. There is a free inverter at U37-5 and -6. Cut the heave trace on bottom on pin 5 (was +5 volts). 2. Cut trace on bottom of PCB going from feed-thru near VIC chip pin 19 and 20 (closer to 19) going away from the chip about one inch. This is the dot clock line that goes to the expansion port. 3. Connect the end closes to the VIC chip to U37-5 and the other end to U37-6. Also add a 1K pull-up from U37-6 to +5 volts. That's all there is. A friend of mine will be trying this on mine Saturday (I hope!) to see if my original can be modified in this way. To get the Mach128 cart to work, I got this info from Kevin Homer at Access: 1. Find the chip marked 74LS138 (lower right front of circuit board. 2. Disconnect pin 6 and run a jumper from pin 6 to pin 16. This inverts the timing so the Mach128 cart will now work in 64 mode. This mod has been done already on a friend's C128 and he's had no problems. Bill