Logiciel

Logiciel système

ROMs système

Moniteur

La ROM de démarrage (U252) contient les fonctionnalités suivantes :

  • Lit le premier secteur de la disquette en mémoire (à 0xFE00) et tente de démarrer dessus
  • Mode terminal série
  • Diagnostics système

Elle est habituellement installée sur une puce mémoire 2732, mais le support accepte aussi des 2764. Les images ci-dessous devraient être compatibles avec toutes les révisions de carte mère.

Version Notes Lien
Rev D Analyse partielle disponible ici ROM
Rev E Image manquante
Rev F Réduit le sur-balayage de l’écran, améliorations mode terminal etc.[1] ROM
Rev G Corrige les paramètres d’initialisation écran pour la norme RS-170 [1] ROM
Rev H Ajout diagnostics carte 8:16 ROM
Rev X Identique à H, à un octet près (affichage version) ROM / Source (ZASM) / Source (ZASM, nettoyé)

[1]: Voir “Technical Notes Manual”

L’image de la versio X a été recompilée depuis les sources avec ZASM sur RunCPM.

En lisant les sources, certains caractères peuvent avoir l’air d’être corrompus. C’est lié à certains éditeurs de texte CP/M qui ajoutent des délimitations de page en mettant le bit de poids fort à 1. Le code source nettoyé est identique à original sans les espaces en fin de ligne, délimiteurs de page et données de fin de fichier (après le EOF)

Caractères

La ROM contenant les caractères affichables (U416) est la même sur tous les Otrona Attachés, des premiers numéros de série aux tout derniers équipés de la carte 8:16. Elle est habituellement étiquettée “CG 500”.

MD5: 346258b1cc3e3e88fa7e7e0b6a1984e7

ROM caractères Otrona

L’image ci-dessus contient, dans l’ordre :The above picture contains, in order:

  • [Alternate-1] Symboles de dessin
  • [Standard] ASCII majuscule et minuscule
  • [Alternate-2] Grec minuscule + math
  • [Alternate-3] Grec majuscule + math

CP/M - Système d’exploitation

CP/M est contenu dans les 3 premières pistes de la face 0 de la disquette système. Le premier secteur contient un bootloader, qui va être chargé par la ROM système puis exécuté. Ce dernier va ensuite charger le reste de l’OS de la disquette vers la mémoire vive.

Dans les sources du BIOS :

[Boot sector is] loaded into FE00h by PROM. Boot code will be saved in sector 1 of track 0 and is […] one sector length ahead of the CCP.

Agencement données disquette :

0X0000 - 0x01FF (1 sector, 512)   = BIOS boot sector
0X0200 - 0x09FF (4 sectors, 2k)   = CCP
0X0A00 - 0x17FF (7 sectors, 3.5k) = BDOS
0x1800 - 0x3BFF (18 sectors, 9k)  = Rest of BIOS

Agencement mémoire (64KB):

0x0000 - 0x00FF = CP/M Buffers, registers & instructions
0x0100 - 0xC3FF = TPA: Transient Program Area
0xC400 - 0xCBFF = CCP: Console Command Processor
0xCC00 - 0xD9FF = BDOS: Basic Disk Operating System
0xDA00 - 0xFFFF = BIOS: Basic Input/Output System

Versions

Voici ci-dessous la liste des versions CP/M que j’ai vu, ainsi que la machine avec laquelle c’était :

Message de démarrage Source Carte mère Lecteur Notes
CP/M 2.2.3 Otrona ATTACHE <56K> Altomare Rev C, ROM D 48 TPI
CP/M 2.2.5/48 Otrona 8:16 <56K> Bitsavers & Don Maslin ???
CP/M 2.2.5 Otrona ATTACHE <56K> Sources ??? 96 TPI No CCP & BDOS
CP/M 2.2.5 Otrona ATTACHE <56K> Altomare Rev E, ROM H 48 TPI