primarily used for educational software and games. However, productivity applications such as home finance programs, spreadsheets, and communication terminal programs were also made for the machine. The VIC had a sizable library of public domain and freeware software. This software was distributed via online services such as CompuServe, BBSs, as well as offline by mail order and by user groups. Several computer magazines sold on newsstands, such as Compute!, Family Computing, RUN, Ahoy!, and the CBM-produced Commodore Power Play, offered programming tips and type-in programs for the VIC-20. An estimated 300 commercial titles were available on cartridge and another 500+ were available on tape. A handful of disk applications were released. The VIC's low cost led to it being used by the Fort Pierce, Florida, Utilities Authority to measure the input and output of two of their generators and display the results on monitors throughout the plant. The utility was able to purchase multiple VIC and C64 systems for the cost of one IBM PC compatible. Technical specifications The VIC-20 shipped with RAM, but of this is used for the video display and dynamic aspects of the ROM-resident Commodore BASIC and KERNAL (a low-level operating system). Only 3,583 bytes of BASIC program memory for code and variables are actually available on an unexpanded machine. Ports and sockets The VIC-20 has card edge connectors for program/expansion cartridges and a PET-standard Datassette tape drive. The VIC-20 did not originally have a disk drive; the VIC-1540 disk drive was released in 1981. There is one Atari joystick port, compatible with the digital joysticks and paddles used with Atari VCS and Atari 8-bit family; a serial CBM-488 bus (a serial version of the PET's IEEE-488 bus) for daisy chaining disk drives and printers; a TTL-level "user port" with both RS-232 and Centronics signals (most frequently used as RS-232, for connecting a modem). The VIC has a ROM cartridge port for games and other software as well as for adding memory to the machine. Port expander boxes from Commodore and other vendors allow more than one cartridge to be attached at a time. Cartridge size ranges from in size, although the latter was uncommon due to its cost. The VIC-20 can be hooked into external electronic circuitry via joystick port, the "user port," or the memory expansion cartridge port, which exposes various analog to digital, memory bus, and other internal I/O circuits to the experimenter.