# Commodore VIC-20

Le VIC-20 est un ordinateur personnel 8 bits qui était construit par Commodore International avec 5 ko de RAM (dont 3,5 ko pour les applications BASIC) et une unité centrale basée sur un processeur MOS 6502. Il ressemblait à ses successeurs le C64 et le C16. Le VIC-20 apparut en juin 1980, 2 ans et 9 mois après la sortie du premier ordinateur personnel de Commodore, le PET.

## Histoire

Le VIC-20 devait se positionner comme un ordinateur grand public, contrairement au PET. On rapporte que la puce vidéo du VIC-20, nommée VIC créé par MOS Technology, avait été à l'origine conçue pour des terminaux graphiques d'entrée de gamme et des consoles de jeux, mais Commodore ne parvenait pas à la vendre correctement. Au même moment, Commodore possédait un surplus de mémoires SRAM de 4*1 ko. En avril 1980, Jack Tramiel, le président de Commodore, demanda que l'on fabrique un ordinateur qui se vendrait en dessous des 300 $. Le surplus donna ainsi naissance au VIC-20. Alors que le PET n'était vendu qu'auprès de revendeurs agréés, le VIC-20 fut dès le départ vendu au détail, particulièrement dans les boutiques discount et les magasins de jouets où il faisait directement concurrence aux consoles de jeux. Commodore mit en place des publicités où l'acteur William Shatner de Star Trek demandait : « Pourquoi se contenter de n'acheter qu'un simple jeu vidéo ? »
Bien que les magazines eussent reproché au VIC-20 d'être sous-dimensionné, la stratégie fonctionna : il devint le premier ordinateur à dépasser la barre du million d'unités vendues et devint l'ordinateur le plus vendu au monde en 1982. À son apogée, 9 000 unités étaient produites chaque jour, et ce sont ainsi 2 500 000 unités qui ont été vendues jusqu'à l'arrêt de sa production en janvier 1985, lorsque Commodore repositionna le C64 comme son ordinateur d'entrée de gamme afin de préparer la sortie prochaine du Commodore 128 et de l'Amiga (celui-ci introduisant Commodore dans le monde du 16/32 bits).
En raison de sa faible mémoire et de son affichage à basse résolution, comparé à d'autres ordinateurs de l'époque, le VIC-20 servit essentiellement à des fins éducatives ou ludiques. Cependant, des programmes utilitaires tels que gestion du budget familial, tableur ou terminal de communication furent également développés pour cette machine. Sa facilité de prise en main par le grand public permit à nombre de futurs développeurs de débuter sur le VIC-20 en s'initiant au langage BASIC, voire à l'Assembleur (ou langage machine). Plusieurs revues, telles que Compute !4, publièrent des codes source de programmes pour le VIC-20, l'un d'eux ayant été proposé par Commodore lui-même. Ainsi, de nombreux utilisateurs apprirent à programmer en tapant, étudiant, exécutant et modifiant ces programmes. C'est le cas de Linus Torvalds, par exemple.
La facilité de programmation et la disponibilité d'un modem à bas prix permirent d'offrir au VIC-20 une bibliothèque fournie de logiciels du domaine public ou en freeware, d'une taille cependant bien inférieure à la bibliothèque du C64. Les logiciels étaient diffusés sur des services en ligne comme CompuServe, des BBS (Bulletin Board System) et entre groupements d'utilisateurs.
En ce qui concerne le catalogue commercial, on estime que 300 titres étaient disponibles sur cartouche électronique, et plus de 500 sur cassette. En comparaison, l'Atari 2600, la plus populaire des consoles de jeux à cette époque, proposait environ 900 titres.

## Description

Le VIC-20 possédait des connecteurs propriétaires pour des cartouches d'extension ou de programmes, ainsi qu'un lecteur de cassettes. Il était livré avec 5 ko de RAM, mais 1,5 ko était réservé par le système pour des usages divers, comme l'affichage vidéo (qui avait un ratio 22 caractères par 23 lignes assez inhabituel) et d'autres aspects dynamiques de l'interpréteur BASIC résident en ROM et du noyau de système d'exploitation. Ainsi, 3,5 ko de RAM restaient disponibles pour les programmes BASIC et leurs variables sur une machine de base. Le VIC-20 disposait également d'un Bus série (une version série du bus IEEE-488 du PET) permettant de connecter en série un lecteur de disquettes et une imprimante; un port RS-232 couramment utilisé pour brancher un modem, et un port joystick DE-9 compatible avec les joysticks utilisés par les consoles de jeux Atari et, plus tard, par le C64.
La RAM du VIC-20 pouvait être étendue grâce à des cartouches d'extension utilisant le même port d'extension que les programmes. Des boîtiers furent commercialisés par Commodore et d'autres vendeurs pour permettre de connecter simultanément plusieurs cartouches. Les cartouches RAM étaient disponibles en plusieurs tailles : 3 ko (avec ou sans un ROM d'extension du BASIC), 8 ko, 16 ko et 32 ko, cette dernière uniquement auprès de vendeurs spécialisés. La disposition de la mémoire interne était modifiée par l'addition de chaque type de cartouche, de telle sorte que certains programmes ne fonctionnaient qu'avec une cartouche d'une certaine taille (pour pallier ce problème, les cartouches 32K possédaient des commutateurs permettant d'activer la RAM dans les zones souhaitées par l'utilisateur).
Cette réorganisation de la mémoire était particulièrement visible au niveau de la mémoire vidéo (contenant les textes ou graphiques montrés à l'écran). Ceci découlait d'une contrainte de l'interpréteur BASIC, qui exigeait que la mémoire libre soit contiguë. Un VIC sans extension contenait d'abord 1 ko de mémoire système, puis un «trou» de 3 ko, puis 4 ko de mémoire usager contiguë, jusqu'à l'adresse 8191 ($1FFF). La cartouche de 3 ko permettait de combler le «trou»; la zone de mémoire vidéo était donc placée au sommet de la mémoire usager (8192 - 512) sur les VIC sans extension ou avec cartouche 3 ko. Si une cartouche de 8 ou 16 ko était utilisée, la mémoire additionnelle apparaissait à partir de l'adresse 8192 ($2000); dans un tel cas, la mémoire vidéo était placée au bas de la mémoire usager à 4096 ($1000), tout de suite au-dessus du «trou», de façon à offrir à BASIC la plus grande zone possible de mémoire contiguë.

## À propos du VIC-20

* Le nom « VIC » vient du nom de la puce VIC (Video Interface Chip) qui, comme son nom ne l'indique pas, gérait également le son dans le VIC-20. Le successeur de cette puce, le VIC-II, fut utilisé avec succès par Commodore sur le C64 et également dans l'affichage double écran (80 colonnes) sur le C128.
* Le VIC-20 devait à l'origine s'appeler Vixen, mais ce nom n'était pas approprié pour l'Allemagne, le second marché le plus important de Commodore, car il se rapprochait du mot allemand wichsen qui signifie « se masturber ». Le problème persistait avec le nom VIC qui fut retenu ensuite, car sa prononciation rappelait le mot allemand ficken (baiser). Finalement, le VIC-20 fut vendu sous le nom VC-20 (pour Volkscomputer : ordinateur du peuple) dans les pays germanophones, en s'inspirant clairement de la marque Volkswagen (voiture du peuple).
* Au Japon, le VIC-20 fut vendu sous le nom VIC-1001 (1980).
* Les programmes en BASIC tournant sur un VIC-20 muni des extensions maximales ne pouvaient utiliser qu'au plus 24 ko de RAM. Au-delà, les données débordaient sur l'espace mémoire occupé par les cartouches ROM, comme les jeux et autres applications vendues dans le commerce. Certaines personnes utilisèrent cette particularité pour copier sur cassette le contenu d'une cartouche, avant de donner la cassette à un ami qui pouvait alors charger la cassette dans les 8 derniers ko de leur extension 32 ko.
* Le langage BASIC intégré dans le VIC-20 était similaire à celui du Commodore 64. La conversion des programmes lors de la sortie du C64 en fut grandement facilitée.
* Commodore affirmait que le VIC-20 pouvait être utilisé non seulement pour jouer, mais aussi pour s'initier de façon sérieuse à la programmation. En effet, l'un des utilisateurs de VIC-20 les plus connus est un jeune Finlandais nommé Linus Torvalds.