Manuel PDP-8/p

1. Introduction

Ce site web est une partie du "Projet d'Ordinateur Pédagogique" POP. Le but de POP est la fourniture d'un ensemble d'outils permettant de comprendre ce qui existe réellement au coeur d'un ordinateur et d'apprendre les bases fondamentales de la programmation.

Au début de 2014, nous avons décidé de baser notre projet sur une machine existante, pour être « réalistes » et pour disposer de programmes opérationnels et de documentation. Nous avons choisi le PDP-8 parce que ce mini-ordinateur est construit sur la plus simple architecture possible (modèle de base Von Neuman).

Le projet POP comprend 3 parties :

Avertissement !

Le PDP-8/p et tout son environnement sont basés sur Javascript (et évidemment Javascript doit être autorisé sur votre ordinateur). Quand vous lancez un program PDP-8, tout le travail de simulation d'effectue... dans votre ordinateur ! Aussi la performance de la machine simulée dépend étritement de la vitesse de votre ordinateur. Sur un ordinateur portable moyen, le temps de cycle résultant est vosin de 1,5µs, à peu près semblable à la machine d'origine.

2. Barre de menu

En haut de la page simulateur, une barre de menu présente un ensemble de commandes et de bibliothèques.
En commençant par le logo ACONIT à gauche, on trouve…

2.1 Commutateur français-anglais

Ce commutateur à bascule permet de choisir entre un environnement de langue française ou anglaise. Notez que quand vous travaillez en français, le drapeau français est "enfoncé" et le drapeau britannique est "relevé".

2.2 Configuration

Ce menu comprend 2 blocs:

2.3 Documentation

Deux options donne accès à 2 bibliothèques – documents et logiciels – contenant un ensemble de produits DEC collectés par Hans Pufal.

2.4 Aide

Deux options « Prise en main » et « Guide utilisateur » et une petite note « À propos » donnant le nom des créateurs du simulateur.

3. Description des fenêtres

3.1 Règles générales

PDP-8/p ouvre un grand nombre de fenêtres : un environnement de travail complet… Vous pouvez les réorganiser sur l'écran en tirant le cadre avec votre souris.
Certaines d'entre elles (log, TTY, listing) contiennent un cadre intérieur pour recevoir du texte ; vous pouvez changer la taille en tirant sur le coin droit inférieur (zone hachurée).

3.2 Face avant PDP-8

Tous les registres et les bascules d'état sont affichées, et cette face avant est pleinement interactive : vous pouvez positionner tous les interrupteurs (juste sous le registre MQ) à 1 ou à 0 simplement en cliquant dessus ; vous pouvez évidemment appuyer sur les boutons de commande en ligne basse, mais vous pouvez aussi positionner à 1 ou 0 chcun des bits de chaque registre. C'est une facilité du simulateur, mais c'est impossible sur un PDP-8 réel !

Tous les registres et toutes les bascules portent leur nom angalis d'origine. Nous avons fait le choix de ne traduire que le nom des boutons de commande. Une liste de tous ces noms est donnée en annexe à la fin de ce document.

À droite de chaque registre se trouve la traduction du code bianire en octal (base 8) et décimal.
À droite de la ligne la plus haute (Voyants d'état CPU), quand le simulateur est en fonctionnement, vous trouvez une indication du temps de cycle PDP-8 simulé (ordinairement de l'ordre de 1,5µs).

Chargement des programmes directement en mémoire : Vous pouvez charger des programmes en format assembleur ou binaire directement dans la mémoire : sur votre ordinateur, glissez directement le fichier contenant le code source (PAL) ou le code binaire (BIN) sur les registres MA-MB du panneau de commande (partie centrale marquée par une ligne pointillée).
Le fichier sera assemblé (PAL) ou dés-assemblé (! BIN) et vous pouvez voir le résultat dans la fenêtre qui apparait. Vous pouvez même modifier le code symbolique et presser "Reload"...

3.3 Fenêtre « Message log »

Cette fenêtre affiche un rapport de toutes les actions système exécutées par le simulateur : coupleurs actifs, programme chargé en mémoire, lancement, arrêt…

3.4 Fenêtre « Listing »

Cette fenêtre est initialement masquée. Elle apparaît quand vous chargez un program sur la face avant du PDP-8.

Cette fenêtre est attaché au petit assembleur inclut dans l'ensemble PDP-8/p. Cet assembleur est capable de traiter des programmes PAL simples mais ne reconnait pas toutes les facilités de l'assembleur PAL complet (mais vous pouvez charger le véritable assembleur PAL dans le simulateur et l'utiliser librement….
Notez que vous trouvez le résultat de l'assemblage ("no error" or "n errors") à la dernière liste du listing.

Une facilité importante : Vous pouvez modifier le code source assembleur directement dans la fenêtre listing et presser le bouton "Reload" pour ré-assembler votre programme. Le résultat se retrouve directement dans la mémoire du simulateur.

L'assembleur peut aussi « dé-assembler » un programme binaire : quand vous tirez un programme BIN sur la face avant, l'assembleur donne un listing du code bianire avec une traduction approximative en instructions assembleur. Évidemment il ne peut pas reconstituer les étiquettes et les adresses symboliques ; les constantes peuvent aussi être interprétées à tort come étant des instructions…

3.5 TTY/03 Console principale

Cette fenêtre simule un terminal Teletype connecté à l'ordinateur PDP-8. Il implèmente les fonctions impression, clavier, lecteur de ruban perforé et perforateur.

3.6 TTY/40 Console secondaire

Ce second terminal Teletype a les mêmes fonctions que le premier mais dispose d'une adresse d'entrée/sortie différente.

3.7 RK8E/74 Disk Unit

À compléter…