Commodore bus

Last updated
Commodore serial
Commodore-64-Back-serial-IEEE488.jpg
Type Peripheral bus
Production history
Designer Commodore International
Designed 1980;44 years ago (1980) [1]
Manufacturer Various
Produced 1980–present
General specifications
Length 1.8 meters maximum [2]
Hot pluggable No
Daisy chain Yes, up to 31 devices [3]
External Yes
Pins 6
Connector DIN connector
Electrical
Signal Open collector 5 V
Max. voltage5 V
Max. current3.2 mA [4]
Data
Data signal Yes
Bitrate3.2–41.6 kbit/s [5] [6]
Protocol Serial
Pinout
Commodore serial bus DIN socket pinout.png
Female socket from the front.
Pin 1 SRQ Service Request
Pin 2 GND Ground
Pin 3 ATN Attention
Pin 4 CLK Clock
Pin 5 DATA Data
Pin 6 RESET Reset

The Commodore serial bus (IEC Bus), is Commodore's interface for primarily magnetic disk data storage and printers for Commodore 8-bit home computers: the VIC-20, Commodore 64, Commodore 128, Plus/4, [7] Commodore 16, and Commodore 65.

Contents

Description and history

The parallel IEEE-488 interface used on the Commodore PET (1977) computer line was too costly, so a cost reduced version was developed, which consisted of a stripped down, serial version of the IEEE-488 interface, with only a few signals remaining; however, the general protocol layout was kept. Commodore began using this bus with the VIC-20 (1980). Connection to the computer uses a DIN-6 connector (DIN 45322).

Transfer speed

SetupSpeedEffective bitrate
Commodore 64 + 1541 400 bytes/s3 200 bit/s
Commodore 64 + 1541 with fast loader 2560 bytes/s [5] 20 480 bit/s
Commodore 128 + 1571 5200 bytes/s [6] 41 600 bit/s
Theoretical 20 μs [3] 6250 bytes/s50 000 bit/s

Interface

Commodore-64-Back-serial-IEEE488 pinout.jpg
Pinout [8]
PinNameFunction
1/SRQINService request input to let peripherals request to be served by the host (C64). Used by the C128 for fast transfers. [9]
2GNDGround [8]
3/ATNSerial ATN In/out. Set low by the host (C64) to indicate the beginning of a serial data transfer. [9]
4/CLKSerial CLK In/out. Used for software handshaking. [9]
5/DATASerial DATA In/out. Data bit transfer. [9]
6/RESETResets peripherals and also resets an older C64. [9]

Protocol description

The bus signals are digital single-ended open collector 5 volt TTL and active when low. Bus devices have to provide their own power.

Because the bus lines are electrically open collector it works like a long OR gate between all device line drivers. The logical value for ground is true and vice versa. Any device may set a line "true". A line only becomes "false" if all devices signal false.

Transmission begins with the bus talker holding the Clock line true, and the listener(s) holding the Data line true. To begin the talker releases the Clock line to false. When all bus listeners are ready to receive they release the Data line to false. If the talker waits more than 200 μs without the Clock line going true (idle state), listeners have to perform End-or-Identify (EOI). [3]

If the Data line being false (released) isn't acknowledged by the talker within 200 μs, the listener knows that the talker is in the process of EOI that means "this character will be the last one". When the listener detects the 200 μs timeout, it must acknowledge this by pulling the Data line true for at least 60 μs, and then release it. The talker can revert to transmitting again within 60 μs by pulling the Clock line true. [3]

Data is eight bits starting with the least significant bit. The Data line is set according to the bit to send (1=true=ground). Once the Data line is set, the Clock line is released to false. The Clock and Data lines will be held steady for at least 20 μs (except for Commodore 64 that needs 60 μs). After 8 bits has been sent, the talker releases the Data line to false and the listener then acknowledge the talker by pulling the Data line true within 1000 μs. After this the talker sets the Clock line true and listener sets the Data line true thus back where the transmission begun. If an EOI is signaled by holding the Clock line false the transmission is ended and the listener acknowledge this by pulling the Data line true for 200 μs. [3]

The ATN line is set to true and bytes are sent like above to all devices, but the byte is interpreted as one of the commands "Talk," "Listen," "Untalk," and "Unlisten". That tell a specific device to become a talker or listener. Only devices with matching device numbers switch into talk and listen mode. A secondary address may also follow. [3]

On higher logical level the host will set the ATN line to true and transmit the bytes "Device number 8, listen", "Secondary address 2, open". Next it will set the ATN line false and the host then becomes the talker, holding the Clock line true. The device will be the listener, holding the Data line true. The host will transmit the specific open command and end it with an EOI signal sequence. After this the host will set with ATN line true, "Device number 8, unlisten". Followed up by ATN line true and "Device number 8, listen", "Secondary address 2, data". Then the host sets the ATN line false and sends the data. When the host has finished sending data the ATN line is set to true and "Device number 8, unlisten" is sent. [3]

When it is necessary to switch roles and make the host a listener and the device a talker the occurs after a talk command has been sent to the device. The host sets the Data line true and releases the Clock line to false. The device waits for the Clock line to go false and then pulls it to true and release the Data line to false. After this sequence the standard talk-listener interaction may follow. [3]

Bus commands [3]
CodeMeaning
device | 0x20Listen, device (0–30)
0x3FUnlisten, all devices
device | 0x40Talk, device
0x5FUntalk, all devices
channel | 0x60Reopen, channel (0–15)
channel | 0xE0Close, channel
channel | 0xF0Open, channel

To read a normal file from the floppy device number 8 the command LOAD "filename",8,1 is issued on a Commodore 64. That causes the following high level communication to take place:

High level protocol [10]
CommandDestinationMeaning
/28DeviceListen, device number 8
/F0DeviceOpen channel 0
DeviceSend filename bytes
/3FDevicesUnlisten all devices
/48DeviceTalk, Device number 8
/60DeviceReopen channel 0
Device number 8 becomes the master of the bus
HostReceive byte data
The host becomes the master of the bus (normal operation)
/5FDevicesUntalk all devices
/28DeviceListen, device number 8
/E0DeviceClose channel 0
/3FDevicesUnlisten all devices

The Commodore 1541 floppy drive uses a slower Commodore 64 compatible mode which can be deactivated for faster speed by using the command OPEN 15,8,15,"UI-":CLOSE 15. [11]

Device numbering

Device numbering per Commodore 64 KERNAL ROM [10]
DeviceType
0Keyboard
1Cassette port
2 RS-232 on the user port or second cassette on PETs
3Screen
4–5Printer
6Typically plotter device
7Second plotter?
8–15Disk (10  used by some serial-to-parallel printer interfaces)
16–30Unknown
31Reserved as a command to all devices

Device number 0–3 are not associated with the Commodore bus. [10]

Host implementation

The VIC-20 computer and the Commodore 1540 and 1541 floppy drives use the MOS Technology 6522 VIA to handle IEC Bus transmissions. The Commodore 64 and 128 computers and the Commodore 1571 drive use the Complex Interface Adapter.

Common devices

DeviceInfo
Commodore 1541 5+14-inch (130 mm) 170 KB floppy
Commodore 1570 5+14-inch (130 mm) 170 KB floppy
Commodore 1571 5+14-inch (130 mm) 350–410 KB floppy
Commodore 1581 3+12-inch (89 mm) 800 KB floppy
MSD SD-1/SD-2 5+14-inch (130 mm) single/dual 170 KB floppy
Commodore MPS 801 Dot-matrix printer
Commodore 1515 [12] Dot-matrix printer
Commodore 1520 Ballpoint pen printer
Commodore VIC-1525 [13] Dot-matrix printer
Commodore VIC-1526Rebranded MPS 802, dot-matrix printer
Okimate 10 Dot-matrix printer
Commodore DPS-1101 [14] Daisy wheel printer
INTERPODStandalone IEEE-488 + RS-232 [15]
VIC-20 1 MHz 5 KB computer
Commodore 64 1 MHz 64 KB computer
Commodore SX-64 1 MHz 64 KB computer
Commodore 128 2 MHz 128 KB computer
Commodore 16 1-2 MHz 16 KB computer
Commodore Plus/4 1.76 MHz 64 KB computer
Commodore 65 3.54 MHz 128 KB computer

Devices

See also

Related Research Articles

<span class="mw-page-title-main">Commodore 1541</span> External 5 1/4-inch floppy disk drive for the Commodore C64 homecomputer

The Commodore 1541 is a floppy disk drive which was made by Commodore International for the Commodore 64 (C64), Commodore's most popular home computer. The best-known floppy disk drive for the C64, the 1541 is a single-sided 170-kilobyte drive for 5¼" disks. The 1541 directly followed the Commodore 1540.

<span class="mw-page-title-main">Commodore 1581</span>

The Commodore 1581 is a 3½-inch double-sided double-density floppy disk drive that was released by Commodore Business Machines (CBM) in 1987, primarily for its C64 and C128 home/personal computers. The drive stores 800 kilobytes using an MFM encoding but formats different from the MS-DOS, Amiga, and Mac Plus formats. With special software it's possible to read C1581 disks on an x86 PC system, and likewise, read MS-DOS and other formats of disks in the C1581, provided that the PC or other floppy handles the "720 kB" size format. This capability was most frequently used to read MS-DOS disks. The drive was released in the summer of 1987 and quickly became popular with bulletin board system (BBS) operators and other users.

<span class="mw-page-title-main">Commodore 1571</span> Floppy disk drive

The Commodore 1571 is Commodore's high-end 5¼" floppy disk drive, announced in the summer of 1985. With its double-sided drive mechanism, it has the ability to use double-sided, double-density (DS/DD) floppy disks, storing a total of 360 kB per floppy. It also implemented a "burst mode" that improved transfer speeds, helping address the very slow performance of previous Commodore drives.

<span class="mw-page-title-main">Commodore PET</span> Personal computer system

The Commodore PET is a line of personal computers produced starting in 1977 by Commodore International. A single all-in-one case combines a MOS Technology 6502 microprocessor, Commodore BASIC in read-only memory, keyboard, monochrome monitor, and, in early models, a cassette deck.

<span class="mw-page-title-main">GPIB</span> General Purpose Interface Bus (GPIB) specification

IEEE 488, also known as HP-IB and generically as GPIB, is a short-range digital communications 8-bit parallel multi-master interface bus specification developed by Hewlett-Packard. It subsequently became the subject of several standards.

<span class="mw-page-title-main">Commodore Datasette</span> Dedicated magnetic tape data storage device

The Commodore 1530 (C2N) Datasette, later also Datassette, is Commodore's dedicated magnetic-tape data storage device. Using compact cassettes as the storage medium, it provides inexpensive storage to Commodore's 8-bit computers, including the PET, VIC-20, and Commodore 64. A physically similar model, Commodore 1531, was made for the Commodore 16 and Plus/4 series computers.

<span class="mw-page-title-main">HP-IL</span>

The HP-IL was a short-range interconnection bus or network introduced by Hewlett-Packard in the early 1980s. It enabled many devices such as printers, plotters, displays, storage devices, test equipment, etc. to be connected to programmable calculators such as the HP-41C, HP-71B and HP-75C/D, the Series 80 and HP-110 computers, as well as generic ISA bus based PCs.

<span class="mw-page-title-main">Commodore 65</span> Prototype computer

The Commodore 65 is a prototype computer created at Commodore Business Machines in 1990–1991. It is an improved version of the Commodore 64, and it was meant to be backwards-compatible with the older computer, while still providing a number of advanced features close to those of the Amiga.

<span class="mw-page-title-main">Commodore CBM-II</span> Series of 8-bit personal computers released in 1982

The Commodore CBM-II series is a short-lived range of 8-bit personal computers from Commodore Business Machines (CBM), released in 1982 and intended as a follow-on to the Commodore PET series.

<span class="mw-page-title-main">Commodore DOS</span> Operating system

Commodore DOS, also known as CBM DOS, is the disk operating system used with Commodore's 8-bit computers. Unlike most other DOSes, which are loaded from disk into the computer's own RAM and executed there, CBM DOS is executed internally in the drive: the DOS resides in ROM chips inside the drive, and is run there by one or more dedicated MOS 6502 family CPUs. Thus, data transfer between Commodore 8-bit computers and their disk drives more closely resembles a local area network connection than typical disk/host transfers.

<span class="mw-page-title-main">Profinet</span> Computer network protocol

Profinet is an industry technical standard for data communication over Industrial Ethernet, designed for collecting data from, and controlling equipment in industrial systems, with a particular strength in delivering data under tight time constraints. The standard is maintained and supported by Profibus and Profinet International, an umbrella organization headquartered in Karlsruhe, Germany.

<span class="mw-page-title-main">MOS Technology CIA</span> Integrated circuit

The 6526/8520 Complex Interface Adapter (CIA) was an integrated circuit made by MOS Technology. It served as an I/O port controller for the 6502 family of microprocessors, providing for parallel and serial I/O capabilities as well as timers and a Time-of-Day (TOD) clock. The device's most prominent use was in the Commodore 64 and Commodore 128(D), each of which included two CIA chips. The Commodore 1570 and Commodore 1571 floppy disk drives contained one CIA each. Furthermore, the Amiga home computers and the Commodore 1581 floppy disk drive employed a modified variant of the CIA circuit called 8520. 8520 is functionally equivalent to the 6526 except for the simplified TOD circuitry. Predecessor to CIA was PIA.

<span class="mw-page-title-main">Commodore 64 peripherals</span>

The Commodore 64 home computer used various external peripherals. Due to the backwards compatibility of the Commodore 128, most peripherals would also work on that system. There is also some compatibility with the VIC-20 and Commodore PET.

<span class="mw-page-title-main">MSD Super Disk</span>

The MSD Super Disk were a series of 5¼-inch floppy disk drives compatible to some degree with the Commodore 1541 disk drive. produced by Micro Systems Development for use with Commodore 8-bit home computers. Two different versions of the MSD Super Disk were available: the single-drive model, SD-1; and the dual-drive model, SD-2.

EtherCAT is an Ethernet-based fieldbus system developed by Beckhoff Automation. The protocol is standardized in IEC 61158 and is suitable for both hard and soft real-time computing requirements in automation technology.

<span class="mw-page-title-main">Standard Commands for Programmable Instruments</span> Communications protocol for test equipment

The Standard Commands for Programmable Instruments defines a standard for syntax and commands to use in controlling programmable test and measurement devices, such as automatic test equipment and electronic test equipment.

<span class="mw-page-title-main">Batteries Included (company)</span>

Batteries Included was a computer software and hardware company based in the Toronto area. It developed products for the Apple II, Atari 8-bit computers, Atari ST, Commodore 64, and MS-DOS. The company was best known in the 1980s for its PaperClip word processor, which was available for the Atari 8-bit family and Commodore 64, and the DEGAS bitmap painting program for the Atari ST. Batteries Included was acquired by Electronic Arts in 1987.

Commodore 64 disk/tape emulation and data transfer comprises hardware and software for Commodore 64 disk & tape emulation and for data transfer between either Commodore 64 (C64), Commodore (1541) disk drive or Commodore tape deck and newer computers.

<span class="mw-page-title-main">Commodore D9060</span> Family of hard drives

The Commodore D9060/D9090 Hard Disks were the only family of hard drives that Commodore made for both the home and business market. The electronics are identical in the D9060 and the larger D9090 unit; the only difference is the size of the installed hard drive, with a jumper set to distinguish between 4 or 6 disk heads. Originally intended for the metal-cased PET/CBM series of computers, they are compatible with the VIC-20, Commodore 64 and later models with an adapter.

<span class="mw-page-title-main">Audio Video Bridging</span> Specifications for synchronized, low-latency streaming through IEEE 802 networks

Audio Video Bridging (AVB) is a common name for a set of technical standards that provide improved synchronization, low latency, and reliability for switched Ethernet networks. AVB embodies the following technologies and standards:

References

  1. "Commodore VIC-20 History". Archived from the original on 2015-02-14. Retrieved 2016-04-02.
  2. "Building the XE1541 serial cable" . Retrieved 2016-04-02. (1) 6' or 1.8 meters (max) 4 conductor shielded cable (for serial connection)
  3. 1 2 3 4 5 6 7 8 9 "How the VIC/64 Serial Bus works". 2015-04-17. Retrieved 2016-04-28.
  4. "6526 complex interface adapter (CIA)" (PDF). 2016-03-04. Archived from the original (PDF) on 2016-04-10. Retrieved 2016-04-02. Output Low Current (Sinking); VOL < .4 v (PA0-PA7, PC, PB0-PB7, DB0-DB7) IOL 3.2 mA
  5. 1 2 "Design case history: the Commodore 64" (PDF) (published 2012-04-16). 1985. Archived from the original (PDF) on May 13, 2012. Retrieved 2016-04-02. Programming tricks used by Epyx have yielded transfer rates of up to 2.5 kilobytes per second.
  6. 1 2 "Commodore 1571 disk drive specifications". Commodore Business Machines, Inc. October 1986. Retrieved 2016-04-27.
  7. "Using Commodore 1541 disk drive on a Commodore + 4". 2005-10-03. Retrieved 2016-05-15. The 1541 works with the Plus/4 just fine.
  8. 1 2 "C64 Serial I/O pinout and wiring @ old.pinouts.ru". 2013-12-16. Retrieved 2016-04-02.
  9. 1 2 3 4 5 "C-64 Workshop / Pin Connections". 2005-12-10. Retrieved 2016-04-02.
  10. 1 2 3 "IEC-bus documentation as used for the 1541-III IEC disected" (PDF). 2008-02-24. Archived from the original (PDF) on 2017-01-16. Retrieved 2016-04-28.
  11. "VIC-1541". C64-wiki.com. 2016-03-11. Retrieved 2016-04-28.
  12. "VIC-1515 User's manual Graphic printer by Commodore" (PDF) (published 2011-11-05). April 1981. Retrieved 2016-04-28.
  13. "VIC-1525 Graphics Printer User Manual" (PDF). Commodore Computer. Retrieved 22 February 2015.
  14. "Commodore DPS-1101 Daisy Wheel Printer".
  15. "Interpod IEEE-488 Interface". April 2008. Retrieved 2016-04-28.