Tuesday, November 10, 2009

Something else to look at...

As I stated elsewhere, this project is in a coma right now. However, if you're interested in other PET / CBM hardware things, check out this interface that hooks a PS/2 keyboard to your PET/CBM. That one is actually DONE and READY, and will be available for purchase shortly.

Friday, December 08, 2006

Interim Update

You may have wondered about the lack of progress/silence surrounding this project. Truth is, due to external pressures (aka work, family) I was unable to devote the necessary time to work on this project.
In addition, I have found that there were some technical issues with the current design that prevented the interface from working to my satisfaction. That's the bad news.

The good news is that I will resume work in the new year (Jan. 2007), using a new design, new processor and new firmware. The basic specifications will remain the same, i.e. it will still be a PET/CBM interface to an IDE hard-drive, with a bonus serial port (and maybe some other goodies).

Friday, March 25, 2005

RENAME command implemented

Saturday, March 12, 2005

INITIALIZE command implemented

This was a tough one...NOT. The INITIALIZE command is used to tell a CBM disk drive that the media was changed and that the drive should re-read the disk. The more modern drives have a microswitch or other sensor to detect disk removal and would auto-initialize. Since you cannot change the media on your hard-disk drive, this command doesn't do anything on this IDE interface, it is just validated for syntax.

HEADER (NEW) command implemented

The HEADER command is succesfully implemented. Quick refresher on this BASIC 4.0 command:

header "name",d*[,onu*][,i**]

If the i** optional parameter is provided, the entire disk is formatted, otherwise only the BAM/directory are formatted (faster). In either case, all files are deleted. A full format (i.e. WITH identifier) of a Seagate 850 MB drive took 65 minutes. A quick-format (i.e. without identifier) of the same drive took just 5 minutes.

Friday, February 11, 2005

Features Status (IDE)

Outstanding    COLLECT command
Outstanding    DIRECTORY command
Done   Disk Status (print ds$)
Done   INITIALIZE command (not needed for harddisks)
Done   HEADER (Formats the disk)
Done   low-level BAM (Block Allocation Map) and directory routines
Outstanding    Load
Outstanding    Save
Outstanding    Sequential Files
Outstanding    Relative Files
In Progress    SCRATCH
Done    RENAME
Outstanding    COPY
Outstanding    CONCAT

Features Status (RS-232 Serial Port)

Done   RS-232 Serial Port with programmable baud-rate, start/stop bits, parity, device-address
Outstanding   RTS/CTS (hardware) handshake.
OutstandingPETASCII to ASCII translation
OutstandingConnector wired as DTE (male connector instead of female etc.)

Progress: Serial Port works...

The Serial Interface is now working. That means that the device can now act as an interface between an RS-232 device (modem, barcode scanner, printer) and a CBM using the CBM's IEEE-488 interface. Supported baudrates are from 75 to 38400 with 7/8 databits, 1/2 stop bits and Odd/Even or No parity.

Here's a sample program to set the serial parameters (the factory IEEE-488 device number is 7):

10 open 1,7,1
20 print#1, "1200,8,1,n" : rem 1200 baud, 8 databits, 1 stop bit, no parity
30 close 1

The cool thing is: The parameters are stored in EEPROM (non-volatile memory) so once they're set there's no need to set them again (unless you want to change them, of course). There's no battery required to retain the settings.

To send something:

10 open 1,7
20 print#1,"Hello World";
30 close 1

To read data and display it on the screen:

10 open 1,7
20 get#1,a$
30 if st = 0 then print a$;
40 goto 20

ALSO... The device number for the serial interface (as well as for the IDE drive to follow) are set through the PET software:

10 open 1,7,2
20 print #1, "14"
30 close 1

after you run the above, the serial port device number will be 14. To reprogram it to 12 you'd run:

10 open 1,14,2
20 print #1, "12"
30 close 1

Friday, January 28, 2005

Progress: Pictures !!!

Here are two pictures of an early prototype.

The red LED in the corner beside the IDE connector is a harddisk activity indicator. The IDE connector is just like you'd find on a PC motherboard, it connects to the hard disk drive with a straight 40-pin ribbon cable.

The power connector fits a standard PC Power supply.

The RS-232 port (no handshake lines, just Transmit, Receive and Ground) is a 9-pin female connector

The IEEE-488 connector hooks up to the PET/CBM, of course. It is just like the connectors on the back of an 8050 floppy disk drive or similar.

Sunday, January 16, 2005

Progress (not): PCBs are buggy

Yikes... The PCBs are buggy. Not a manufacturing fault, more driver error: One row of GPIB connector pins got mirrored, the other row is connected all wrong to the driver chips. Also, an input connected to an input, 2 data lines got flipped on the IDE data port... I hope the next batch turns out better...

Friday, January 07, 2005

Progress: More things set up

Finally managed to hook up the microcontroller programmer to the development workstation (Win 2K) but it just wasn't working... Finally gave it a try on my GPIB Analyzer workstation (Windows 3.11) and no problems there. I guess some part of the programming software can't deal with today's serial-ports, who knows. Anyway, that meant I had to hook the analyzer workstation onto the LAN, which meant I had to find a stone-age network card. Thankfully I'm one of those people that never throws anything out, not even old 16-bit ISA Intel Pro network cards. Managed to get it to run under Windows 3.11 and that workstation is now on the LAN.

I also started assembling the first prototype PCB. I managed to stack the ZIF socket for the CPU inside a standard PLCC socket. Just a few more components to solder in, and it's done. I noticed one misplaced fill on the PCB that would cause the IDE's busy-LED to not work unless fixed. Nothing that can't be fixed by scraping off some copper from the board.

I'll be posting some pictures soon.

Wednesday, January 05, 2005

Progress: PCBs arrived !

The first batch of printed circuit boards arrived today. These are prototype boards, so they don't have soldermask or legend on it (I simply put the legend on the top layer). Everything fits fine, except the CPU ZIF socket for use during development... Gotta figure something out there !

Friday, December 31, 2004

Some Thoughts: Power Supply

The interface requires a 5 Volt DC regulated power source. The IDE drive will typically require a 5 V and 12 V power source, or just 5 volts if you're using a notebook drive.

One of the cheaper sources of such power supplies are those found in PCs. By jumpering some wires on the ATX connector, you should be able to hook up such a power supply to the interface and your drive. The only drawback is that those power supplies are fairly big. If you're using the notebook drive option, you may find it nicer to use a 5 Volt linear power supply, wall-plug-style.

Progress: PET up and running

Pulled the old PET (CBM 8032) out of the garage and plugged it in. INSTANT FAILURE, it only showed some 15000-something bytes free. After opening her up and pushing a DRAM chip back into it's socket (I replaced a defective DRAM chip with a socketed one some years ago) and hey-presto, but now the keyboard wasn't working, you really had to hammer some of those keys... So I took out the keyboard, removed all key-caps and posts and springs, and washed them (minus the springs) in the sink (the lettering is still yellowish, it didn't come off despite scrubbing. Is it nicotine, or by design ?). I then removed the circuit board and 'scrubbed' it using alcohol swabs (70% Isopropyl Alcohol), you get a big packet of these at the pharmacy. I also used them to rub down the conductive small black pads that are on the bottom of each key inside the keyboard assembly. Cleaned the dust off the assembly itself, put it all back together and it's working fine. Hooked the PET up to the GPIB Analyzer and ran some Basic commands, everything working fine. Next step is to dig up and clean my old 8050 drive to see what's going on in the GPIB bus.

Progress: GPIB Analyzer

I got my National Instruments GPIB Analyzer up and running. This runs on (don't laugh) Windows 3.11 !!! OK, it IS funny, I admit it. When was the last time YOU installed Win 3.11 on a PC...

Progress: PCBs ordered

I finished the PCB (Printed Circuit Board) design a few days ago and ordered the first batch of (6) PCBs a few days ago. They should be with me in the first week of January.

Interface Overview

First, let me get some Terminology out of the way:
  • I will refer to the Commodore PET / CBM computer simply as the PET. That may not be technically correct, but that's what I'll do because it's short and sweet.
  • The PET's IEEE-488 port will be called GPIB by me. (You don't call your FireWire port the IEEE1394 port, do you ?)
  • The interface's RS-232 Serial Communication Port will be called the Serial Port.

Now for the Interface Specifications (preliminary):

The interface has 4 connectors:
  1. GPIB (Female IEEE-488, like at the back of a CBM 8050 disk drive)
  2. IDE (40 Pin male dual row pin header receptable, like on a PC's motherboard)
  3. Serial (9-Pin female Sub-D, like found on a PC, except female)
  4. Power (PC Power Supply style, uses 5 Volts DC regulated)

Hookup is simple: Connect the IDE drive to the interface using a standard 40-pin ribbon cable, and to it's power supply. Connect the PET to the interface using a standard PET-to-IEEE-Device cable (or daisy-chain cable). Hook up power to the interface, and that's all she wrote. The serial port stays unconnected for the moment.

After configuration and formatting of the drive, you should be able to access the IDE drive using standard Commodore BASIC commands. Esoteric commands (block-read/write/execute) may not be supported. There will defenitely be support for PRG files, and probably SEQ and REL files.

More on the Hardware:
The interface circuit consists of a Texas Instruments microcontroller (CPU), Texas Instrument GPIB driver ICs and an RS-232/TTL level shifter. Together with the 4 connectors mentioned earlier, they are incorporated on a double-sided circuit board approximately 3" by 3" in size.

There are no SMT components used.

Power must be supplied from an external 5V DC power supply (that is not part of the interface).

The Serial Port:
This is a freebee, so to speak. It's simply an RS-232 port (no handshake lines, just RX and TX) that can be used by the PET to talk to a modem or any other RS-232 device that doesn't absolutely require hardware handshake.

Initially, there was going to be a jumper on the board, and configuration was going to be through the Serial port. I threw that out, accidentally, when I routed some traces on the circuit board to make the board smaller, and I forgot to put the configuration jumper back in. I realized this about 3 days after placing the order for the first batch of prototype circuit boards. So, I figured that configuration through the GPIB port is just as simple. All you have to know is the initial device number (which will be 8), then you'll be able to send commands to the interface to assign different device numbers to it (they will be stored in the interfaces flash memory and are restored upon reset).


So you have an old Commodore PET / CBM computer and you want to hook up a harddisk drive ?

Looks like you have 3 options. Starting with the easiest, they are:

Buy a Commodore D9090 or D9060. These are external Commodore Harddisk Drives with a couple megabyte capacity. They have an external IEEE-488 connector and were specifically designed for the PET CBMs. I've got one of those babies.
Pros: Easy to hookup, full PET-DOS support.
Cons: Quite hard to find, big and heavy, uses a lot of power, near impossible to repair

Get a cable that hooks your CBM to your PC's printer port and, with some software, emulate a CBM disk drive on your PC (i.e. use your PC's harddisk). This has already been done, I believe.
Pros: Cheap
Cons: Requires PC to be running, limited PET-DOS support

Buy the PET/CBM IDE interface. You'll have to wait for me to finish developing it, of course. In fact, it may never make it to production...
Pros: Small, integrated, adds RS-232 to your PET (maybe)
Cons: Limited PET-DOS support.

Since you're here, you have probably already toyed with the first 2 options. If not, maybe you should. On the other hand, if the PET/CBM IDE interface sounds appealing to you, then you've come to the right place. Watch this blog to stay informed.