Jump to content

Commodore C64 and C128 input and output peripherals

From C64 Wiki

Commodore C64 and C128 input and output peripherals is a device-side account of selected Commodore accessories and the software practices that made them useful. It is not an account of the computer-side bus, connector, or chip design; those topics belong in C64 external interface architecture. Nor does it retell the histories of the Commodore 1541 or the Commodore Datasette. The focus here is the documented use of an MPS-801 printer, the VIC-1520/C1520 plotter-printer, and the 1351 mouse, with controller categories included only to explain those devices' workflows.

Product scope and names

[edit | edit source]

A C64 service specification names the MPS 801 alongside other MPS printers and calls the plotter/printer the C1520; the same specification lists two joystick/paddle ports. It should therefore be read as a period product list, not as a complete catalogue of every accessory sold for every Commodore machine or territory.[1] The operating manual instead calls the plotter VIC-1520 Four Color Plotter/Printer. Both designations are retained here because the consulted documents use different names, rather than because they establish a universal retail name.[2]

The MPS-801 is a serial dot-matrix printer whose manual describes its own selectable character presentation and locally controlled print functions. The VIC-1520 is a four-pen X–Y plotter/printer: horizontal pen travel and paper movement together form the coordinates. These are different output mechanisms. The 1351 is a two-button, ball-based controller documented for the C64/C128 product line; it is not a printer, plotter, or a generic claim about all mice.[3][4][5]

Serial hard-copy devices

[edit | edit source]

Connection, addressing and chaining

[edit | edit source]

The MPS-801 manual specifies a six-pin serial connection and describes chaining a printer with up to four 1541 drives in its stated arrangement. Its selector identifies 4 as the ordinary single-printer position and 5 as the second-printer position. These are model-manual connection and selector facts, not a general electrical description of the serial bus or a maximum for all physically usable devices.[6] The VIC-1520 manual assigns its plotter device number 6. It also describes adding it at the end of a daisy chain containing VIC-1541 drives and says that a VIC-1525 Graphic Printer had to be disconnected while the plotter was used because each required the final bus connection in that documented setup.[7]

A program or user still had to select the intended device and use the relevant logical file. The C64 and C128 references describe the general I/O and KERNAL context, while the accessory manuals establish the device-specific selections and behaviours. C64 external interface architecture covers the host-side serial roles and signalling; this article does not repeat them.[8][9]

MPS-801 text, graphics and control

[edit | edit source]

For the MPS-801, secondary address 0 selects the manual’s Graphic, upper-case/graphic character setting, while secondary address 7 selects its Business, upper/lower-case setting. This is an MPS-801-specific pairing and should not be projected onto every MPS model.[10] Its control-code material also documents standard and double-width characters, bit-image printing, local graphic and business selection, reverse field, line-feed spacing, and a data buffer. Those controls describe a printer’s supported operating modes, not a claim that the C64 itself supplies a universal graphics-printer language.[11]

The printer’s consumables and mechanics are equally device-specific. A ribbon cassette, a platen and a tractor mechanism are part of its workflow; the manual requires the paper’s edge holes to align with the tractor pins. It cautions against moving the carriage by hand and against printing without paper or ribbon. A museum record independently characterises the MPS-801 as a fan-fold, tractor-feed, unidirectional printer and attributes the underlying GP 500 VC production to Seikosha. That attribution does not erase the Commodore branding of the manual or prove that Commodore itself manufactured the mechanism.[12][13]

VIC-1520 plotting, paper and pens

[edit | edit source]

The VIC-1520 differs from a dot-matrix printer because it draws with four ball-point pens. Its manual describes a 0.2 mm pen-movement step, a 96 mm X plotting width within 114 mm paper, and programmable Y movement. Friction feed can introduce cumulative Y-axis deviation, so the manual directs the user to let paper move freely rather than have the mechanism pull it directly from the roll.[14] Its specified roll paper, pen placement, pen caps, covers, and warning not to force the pen carriage make consumables and motion part of the device’s limitations, not merely supplies that can be treated as interchangeable accessories.[15]

The manual gives secondary addresses 0–7 distinct plotter jobs: character data, X/Y data, colour selection, character size, character rotation, scribe-line selection, case selection, and reset. It is therefore important to keep plot instructions, pen choice, paper motion, and text rendering separate. A command intended to select a colour is not itself an X/Y drawing command.[16]

Device workflow in BASIC and KERNAL context

[edit | edit source]

For both hard-copy devices, the manual-level workflow is to associate a logical file with the peripheral’s device number, optionally choose a secondary address, send output through the selected file or redirect normal output to it, and close the file when finished. The MPS-801 documentation discusses `OPEN`, `CMD`, `PRINT#`, and `CLOSE`; the VIC-1520 presents the same family of commands for plotter files. This is a workflow description rather than a substitute for Commodore BASIC or a general KERNAL programming guide.[17][18]

On the C128, the reference guide gives a printer example using device 4 and `CMD`, and describes the operating system’s I/O support. That example confirms the C128-side logical-file context; it does not establish every printer’s control language or guarantee that a particular application supplies a driver for a particular peripheral.[19]

Controllers and the 1351 mouse

[edit | edit source]

The C64 specification’s two joystick/paddle ports provide the baseline for controller accessories, but the input categories should not be collapsed. The C64 reference treats game ports, paddles, and light pens in separate sections. The C128 reference likewise distinguishes joysticks, paddles, and light pens within its I/O guide; its documented light-pen treatment is qualified to port 1. These references support category-level discussion, not an inventory of every joystick, light pen, music keyboard, or adapter ever offered.[20][21]

A joystick-compatible program interprets directional and fire-style control activity. A paddle is a separately read variable control, and light-pen use depends on software designed for that input category. The distinction belongs at the program-and-device level; the host-side signal paths and registers are covered by C64 external interface architecture.[22]

The 1351 mouse has a documented compatibility compromise. It normally starts in proportional mode, which requires software that recognises the mouse; holding its right button during power-up selects joystick mode. In joystick mode, movement emulates directional joystick activity and the left button serves as fire. In proportional mode, mouse position is reported through the SID’s POTX and POTY readings, while the buttons remain joystick-line inputs. The manual says that optimal proportional performance needs a special machine-language driver, and it warns that keyboard scanning can affect timely, reliable POT readings. Thus joystick mode is a fallback for compatible software, whereas proportional use is application and driver qualified.[23]

The mouse manual identifies both C64 and C128 use, but that statement does not make every program, operating mode, or application driver interchangeable. GEOS is named there as an example of software with a Commodore Mouse driver, not as evidence of universal support. The C128’s C64 mode retains C64 software and standard peripheral compatibility; the practical result for an individual program still depends on the mode and the driver it actually uses.[24][25]

Setup, care and limits

[edit | edit source]

The manuals make setup a device concern. For the MPS-801, this includes properly seated cable connections, a ribbon with suitable tension, aligned tractor paper, and no manual movement of the print head. For the VIC-1520, it includes its own address, correctly loaded roll paper and pens, free paper movement, and no forced carriage motion. These are historical product instructions rather than present-day repair or electrical-safety advice.[26][27]

For the 1351, the manual calls for a clean, smooth working surface and cleaning the ball and rollers when dirt affects motion; it also cautions against using the cord as a handle. Those limits are mechanical, not evidence for a broader rule about unrelated controllers.[28]

Two historical uncertainties are best left explicit. A Centre for Computing History collection record uses a 1982 date field for its VIC-1520 object, while the consulted manual carries a 1983 copyright date; neither alone establishes one unqualified launch year.[29][30] Likewise, device positions 4, 5, and 6 and a historical daisy-chain example do not demonstrate a single universal attached-device capacity. Compatibility, address selection, consumables, and software support remain properties to check for the named device and workflow.[31][32]

See also

[edit | edit source]

References

[edit | edit source]
  1. ↑ Commodore Business Machines, Commodore 64 Service Manual — General Description and Specifications, “C64 COMPUTER — General Description”, rows “INPUTS/OUTPUTS” and “PERIPHERALS”, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/manual-html/Page_01.html
  2. ↑ Commodore Business Machines, VIC-1520 Plotter/Printer User’s Manual, cover, copyright page, Introduction A–B, and Section 2, pp. 5–11, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/1520_Printer_Plotter_Users_Manual_%28Style_A%29.pdf
  3. ↑ Commodore Business Machines, Commodore MPS-801 Dot Matrix Printer User’s Guide, Section 1, pp. 1–4; Section 3, pp. 16–33; Appendix A, p. 35, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/mps801.txt
  4. ↑ Commodore Business Machines, VIC-1520 Plotter/Printer User’s Manual, Introduction B and Section 3, pp. 12–39, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/1520_Printer_Plotter_Users_Manual_%28Style_A%29.pdf
  5. ↑ Commodore Business Machines, Commodore 1351 Mouse User’s Manual and Developer’s Guide, “Using the Mouse”, and Developer’s Guide §2.1, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/peripherals/1351ms11.txt
  6. ↑ Commodore Business Machines, Commodore MPS-801 Dot Matrix Printer User’s Guide, Section 1, p. 1; “Operating your Printer”, p. 3; and “Interface”, p. 4, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/mps801.txt
  7. ↑ Commodore Business Machines, VIC-1520 Plotter/Printer User’s Manual, Introduction B and Section 2.D, pp. 8–9, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/1520_Printer_Plotter_Users_Manual_%28Style_A%29.pdf
  8. ↑ Commodore Business Machines, Commodore 64/Executive 64 Programmer’s Reference Guide, BASIC “OPEN”, p. 64; “The KERNAL”, pp. 268–306; and “The Serial Bus”, pp. 362–365, hosted by Internet Archive, https://archive.org/stream/c64-programmer-ref/Image092417194545.merged_djvu.txt
  9. ↑ Commodore Business Machines, Commodore 128 Programmer’s Reference Guide, Chapter 12, “Input/Output Guide”, and Chapter 13, “The Commodore 128 Operating System”, pp. 371–476, hosted by Internet Archive, https://archive.org/stream/C128_Programmers_Reference_Guide_1986_Bamtam_Books/C128_Programmers_Reference_Guide_1986_Bamtam_Books_djvu.txt
  10. ↑ Commodore Business Machines, Commodore MPS-801 Dot Matrix Printer User’s Guide, “Interface”, p. 4; “Special Printer-Associated Commands”, pp. 16–18; and “Secondary Address”, pp. 20–22, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/mps801.txt
  11. ↑ Commodore Business Machines, Commodore MPS-801 Dot Matrix Printer User’s Guide, “Printing Modes and Control Codes”, pp. 22–33, and Appendix C, pp. 37–38, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/mps801.txt
  12. ↑ Commodore Business Machines, Commodore MPS-801 Dot Matrix Printer User’s Guide, “Operating your Printer”, p. 3; Section 2, pp. 5–15; and Appendix A, p. 35, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/mps801.txt
  13. ↑ HomeComputerMuseum, Commodore MPS-801, opening description and “Specifications”, https://www.homecomputermuseum.nl/en/collectie/commodore/commodore-mps-801/
  14. ↑ Commodore Business Machines, VIC-1520 Plotter/Printer User’s Manual, Introduction B; Section 2.B–C, pp. 6–7; and Section 3.C, pp. 15–17, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/1520_Printer_Plotter_Users_Manual_%28Style_A%29.pdf
  15. ↑ Commodore Business Machines, VIC-1520 Plotter/Printer User’s Manual, Section 2.A–C and 2.G, pp. 5–11, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/1520_Printer_Plotter_Users_Manual_%28Style_A%29.pdf
  16. ↑ Commodore Business Machines, VIC-1520 Plotter/Printer User’s Manual, Section 3.F, “Sophisticated Programming Techniques Through Secondary Addressing”, pp. 20–39, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/1520_Printer_Plotter_Users_Manual_%28Style_A%29.pdf
  17. ↑ Commodore Business Machines, Commodore MPS-801 Dot Matrix Printer User’s Guide, “Special Printer-Associated Commands”, pp. 16–18, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/mps801.txt
  18. ↑ Commodore Business Machines, VIC-1520 Plotter/Printer User’s Manual, Section 3.B, “BASIC Commands associated with your Plotter”, pp. 13–15, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/1520_Printer_Plotter_Users_Manual_%28Style_A%29.pdf
  19. ↑ Commodore Business Machines, Commodore 128 Programmer’s Reference Guide, BASIC “CMD” and “CLOSE”, p. 33; Chapter 12; and Chapter 13, hosted by Internet Archive, https://archive.org/stream/C128_Programmers_Reference_Guide_1986_Bamtam_Books/C128_Programmers_Reference_Guide_1986_Bamtam_Books_djvu.txt
  20. ↑ Commodore Business Machines, Commodore 64/Executive 64 Programmer’s Reference Guide, “The Game Ports”, p. 343; “Paddles”, p. 346; and “Light Pen”, p. 348, hosted by Internet Archive, https://archive.org/stream/c64-programmer-ref/Image092417194545.merged_djvu.txt
  21. ↑ Commodore Business Machines, Commodore 128 Programmer’s Reference Guide, Chapter 12, “The Game Ports”, “Joysticks”, “Paddles”, and “Light Pen”, pp. 371–400, hosted by Internet Archive, https://archive.org/stream/C128_Programmers_Reference_Guide_1986_Bamtam_Books/C128_Programmers_Reference_Guide_1986_Bamtam_Books_djvu.txt
  22. ↑ Commodore Business Machines, Commodore 64/Executive 64 Programmer’s Reference Guide, “The Game Ports”, pp. 343–348, hosted by Internet Archive, https://archive.org/stream/c64-programmer-ref/Image092417194545.merged_djvu.txt
  23. ↑ Commodore Business Machines, Commodore 1351 Mouse User’s Manual and Developer’s Guide, “Using the Mouse”; Developer’s Guide §§2.1–2.4, especially “Joystick Mode”, “Proportional Mode”, and “SID Register Cautions”; Appendix C, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/peripherals/1351ms11.txt
  24. ↑ Commodore Business Machines, Commodore 1351 Mouse User’s Manual and Developer’s Guide, “Using the Mouse” and Developer’s Guide §§2.1–2.3, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/peripherals/1351ms11.txt
  25. ↑ Commodore Business Machines, Commodore 128 Programmer’s Reference Guide, “C64 MODE” and “Compatibility with Commodore 64”, pp. 1–10, hosted by Internet Archive, https://archive.org/stream/C128_Programmers_Reference_Guide_1986_Bamtam_Books/C128_Programmers_Reference_Guide_1986_Bamtam_Books_djvu.txt
  26. ↑ Commodore Business Machines, Commodore MPS-801 Dot Matrix Printer User’s Guide, Section 2, “Connecting the Printer to Your Computer”, “Maintenance”, and “Cautions”, pp. 5–15, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/mps801.txt
  27. ↑ Commodore Business Machines, VIC-1520 Plotter/Printer User’s Manual, Section 2, “Paper Loading”, “Pen Loading, Removal, and Replacement”, “Connecting your Plotter”, “Troubleshooting”, and “Cautions”, pp. 5–11, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/1520_Printer_Plotter_Users_Manual_%28Style_A%29.pdf
  28. ↑ Commodore Business Machines, Commodore 1351 Mouse User’s Manual and Developer’s Guide, “Mouse Cleaning” and “Mouse Tips”, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/peripherals/1351ms11.txt
  29. ↑ Centre for Computing History, Commodore Colour Printer Plotter VIC-1520, collection record CH2099, title, date, manufacturer, and physical-description fields, https://www.computinghistory.org.uk/det/2099/Commodore-Colour-Printer-Plotter-VIC-1520/
  30. ↑ Commodore Business Machines, VIC-1520 Plotter/Printer User’s Manual, copyright page, part no. C15202, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/1520_Printer_Plotter_Users_Manual_%28Style_A%29.pdf
  31. ↑ Commodore Business Machines, Commodore MPS-801 Dot Matrix Printer User’s Guide, Section 1, pp. 1–4, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/mps801.txt
  32. ↑ Commodore Business Machines, VIC-1520 Plotter/Printer User’s Manual, Introduction B and Section 2.D, pp. 8–9, hosted by Zimmers.NET, https://www.zimmers.net/anonftp/pub/cbm/manuals/printers/1520_Printer_Plotter_Users_Manual_%28Style_A%29.pdf