Table des matières:

Z80 MBC2 - Re-compiler QP/M Bios et Loader : 6 étapes
Z80 MBC2 - Re-compiler QP/M Bios et Loader : 6 étapes

Vidéo: Z80 MBC2 - Re-compiler QP/M Bios et Loader : 6 étapes

Vidéo: Z80 MBC2 - Re-compiler QP/M Bios et Loader : 6 étapes
Vidéo: hello world! on the z80-mbc2 computer running CP/M 2024, Juillet
Anonim
Z80 MBC2 - Re-compiler QP/M Bios et Loader
Z80 MBC2 - Re-compiler QP/M Bios et Loader

Si, comme moi, vous vous trouvez dans une position où vous devez recompiler le bios QP/M pour votre MBC2 - alors c'est comme ça que vous le faites.

J'ai documenté le processus, de la façon de recompiler la version existante. C'est à vous d'apporter des modifications aux fichiers Bios réels, si vous en avez besoin. J'ai seulement apporté des modifications pour pouvoir garder mon installation de QP/M en ligne avec la version de CP/M 2.2 Bios que j'utilise (ces modifications ne sont pas seulement montrées le processus)

La première partie du processus est presque identique au Bios CP/M 2.2, donc si vous avez déjà configuré votre ordinateur de construction, n'hésitez pas à sauter cette partie.

La principale différence est que QP/M doit se charger à partir de la première piste du disque de démarrage - et non d'un fichier.bin comme CP/M 2.2, décrit ci-dessous.

Fournitures

Une machine Windows sur laquelle exécuter le compilateur. J'ai utilisé une machine virtuelle Windows XP fonctionnant sur un KVM, car elle est très petite et n'ira jamais sur Internet. Mais cela fonctionne parfaitement sous Windows 10.

Le compilateur TASM 3.2 z80, recherchez ceci sur google, vous devriez vous retrouver sur

Une copie du fichier zip SD de la page d'accueil z80-mbc2, au moment de la rédaction, c'était

CPMTools pour Windows de https://www.cpm8680.com/cpmtools/cpmtoolsWin32.zip c'est une version 32 bits mais fonctionne bien sur les systèmes 64 bits.

Étape 1: Ajout du logiciel à votre ordinateur de construction

Ajout du logiciel à votre ordinateur de construction
Ajout du logiciel à votre ordinateur de construction
Ajout du logiciel à votre ordinateur de construction
Ajout du logiciel à votre ordinateur de construction

Une fois que votre ordinateur Windows est opérationnel, copiez ou téléchargez les fichiers mentionnés dans la section « vous aurez besoin » ci-dessus.

Créez un répertoire de travail sur votre machine, je vous suggère (pour éviter beaucoup de frappes et de fautes de frappe) de créer un répertoire sur le lecteur C, par exemple c:\z80mbc. Je vous recommande fortement d'éviter les espaces dans les noms, si possible et les longs chemins de répertoire. Rester simple.

Créez un dossier dans ce répertoire pour les fichiers TASM, c:\z80mbc\tasm

Créez un dossier pour l'image de la carte SD, c:\z90mbc\SD

Faites un clic droit sur chacun des fichiers et extrayez le contenu dans les répertoires que vous avez créés ci-dessus. Donc tasm.zip est extrait dans c:\z80mbc\tasm et le fichier zip effrayé dans c:\z80mbc\SD

Pour faciliter certaines des étapes suivantes, vous pouvez également décompresser cpmtool32.zip dans un autre répertoire, par exemple c:\z80mbc\cpmtools.

Étape 2: Ajout de vos outils au chemin Windows

Ajout de vos outils au chemin Windows
Ajout de vos outils au chemin Windows
Ajout de vos outils au chemin Windows
Ajout de vos outils au chemin Windows

Selon votre version de Windows, effectuez l'une des opérations suivantes

Windows 10

Ouvrez le menu des propriétés en cliquant avec le bouton droit sur l'élément « Ce PC » à partir d'une fenêtre d'explorateur.

Cliquez sur « Paramètres système avancés », cela ouvrira une fenêtre appelée « Propriétés système » (Vous pouvez également accéder aux propriétés du système d'une autre manière, mais je n'utilise pas beaucoup Windows, c'est donc ma méthode !)

Cliquez sur « Variables d'environnement »

Windows XP

Cliquez sur le bouton Démarrer, faites un clic droit sur « Mon ordinateur », puis vous pouvez cliquer sur Propriétés pour obtenir les « Propriétés du système ».

Cliquez sur l'onglet Avancé

Cliquez sur « Variables d'environnement »

Lorsque vous avez la fenêtre Variables d'environnement à l'écran, vous devez faire deux choses;

Ajouter une nouvelle variable

Dans la partie supérieure des fenêtres, sous "Variables utilisateur pour …"

Cliquez sur Nouveau

Pour le type Nom dans TASMTABS

Pour le type de valeur dans c:\z80mbc\tasm

Modifier la variable PATH

Dans la partie inférieure de la fenêtre, sous "Variables système"

choisissez (mettez en surbrillance) Chemin, puis cliquez sur Modifier

A la fin du contenu existant ajoutez;c:\z80mbc\tasm;c:\z80mbc\cpmtools

(N'oubliez pas le point-virgule au début !)

Vous devez maintenant redémarrer l'ordinateur pour que ces ajouts prennent effet.

Étape 3: Tester Tasm

Tester Tasm
Tester Tasm
Tester Tasm
Tester Tasm
Tester Tasm
Tester Tasm

Afin de tester, nous pouvons compiler une copie exacte du BIOS QP/M existant, nous devons faire un peu plus de préparation. Les fichiers de ce répertoire sont:

BIOS QPM271 - S150918.asm - Le fichier BIOS principal, il s'agit très probablement du fichier que vous allez modifier.

QPM271_ColdLoader - S160918.asm - c'est le chargeur QP/M, il lit les premières pistes de l'image disque dans la mémoire. Dans un système CP/m plus traditionnel, cela serait appelé bootstrap et serait en EEPROM ou ROM. Vous ne devriez pas avoir besoin de modifier ce fichier, il est déjà compilé et sur l'image de la carte SD en tant que QPMLDR. BIN

SYSGENQ - S140918.asm - Ce programme est utilisé en conjonction avec le programme d'installation QP/M, encore une fois, vous n'aurez normalement pas besoin de le modifier, il existe déjà dans l'image du disque de démarrage prêt à l'emploi. Il lit et écrit essentiellement les pistes utilisées par le chargeur froid ci-dessus.

Avant de tester notre installation TASM, vous avez besoin d'un fichier supplémentaire, cpm22_Z80MBC2.asm, il n'est pas dans ce répertoire par défaut car c'est le même fichier utilisé pour cpm 2.2. Nous avons besoin de ce fichier pour fournir le CBIOS/CCP d'origine pour le démarrage initial de QP/M. Vous pouvez copier ce fichier depuis le répertoire CPM_22_Custom_BIOS.

Utilisez l'explorateur Windows pour le copier ou à partir d'une invite de commande (CMD) faites

cd c:\z80mbc\sd\src\QPM_271_Custom_BIOS

copier..\CPM_22_Custom_BIOS\cpm22_Z80MBC2.asm

Vous devez maintenant modifier ce fichier pour inclure le BIOS QP/M, ouvrez le fichier avec le bloc-notes:

rechercher "QPM" (CTRL-F, ou éditer le menu et trouver) Voir l'image ci-dessus

changer le fichier de:

;-----------------------------------------------------------------------

; Z80-MBC2;----------------------------------------------- -------------------------;#include "BIOS QPM271 - S150918.asm"; CBIOS inclus pour le Z80-MBC2 #include "BIOS CPM22 - S030818-R140319.asm"; CBIOS inclus pour le Z80-MBC2

À:

;-----------------------------------------------------------------------

; Z80-MBC2;----------------------------------------------- ------------------------- #include "BIOS QPM271 - S150918.asm"; CBIOS inclus pour le Z80-MBC2; #include "BIOS CPM22 - S030818-R140319.asm"; CBIOS inclus pour le Z80-MBC2

Vous devez également vérifier la valeur de iLoadMode dans le fichier cpm22_Z80MBC2.asm copié, vers la ligne 40:

;-----------------------------------------------------------------------

; Z80-MBC2;----------------------------------------------- ------------------------- iLoadMode.equ 0; Mis à 1 pour le mode iLoad (pour les tests),; mis à 0 pour la génération d'image de la piste 0,; mis à 2 pour la génération du fichier binaire cpm22.bin;---------------------------------------- --------------------------------

Il doit être à 0, c'est la valeur par défaut - mais vérifiez quand même !

Une fois terminé, enregistrez le fichier.

vous pouvez maintenant exécuter tasm:

tasm -b -g3 -80 cpm22_Z80MBC2.asm qpm22.bin

Notez le nom de fichier de sortie différent, si tout se passe bien, vous devriez voir une sortie comme celle-ci:

c:\z80mbc\sd\src\QPM_271_Custom_BIOS>tasm -b -g3 -80 cpm22_Z80MBC2.asm qpm22.bin

Assembleur TASM Z80. Version 3.2 Septembre 2001. Copyright (C) 2001 Squak Valley Software tasm: passe 1 terminée. tasm: passe 2 complète. tasm: Nombre d'erreurs = 0 c:\z80mbc\sd\src\QPM_271_Custom_BIOS>

Vous êtes prêt à apporter les modifications dont vous avez besoin au BIOS ! déposer.

Étape 4: Trouvez votre adresse d'horloge en temps réel

Avant d'installer la nouvelle version du BIOS, une partie de l'installation QP/M doit connaître l'adresse d'entrée pour les routines d'horloge en temps réel. Si vous ne définissez pas cette option, les fonctions de temps dans QP/M renverront "Pas d'horloge" comme message d'erreur.

Pour obtenir l'adresse, éditez le fichier LST produit lors de la compilation du fichier qpm22.bin, c'est-à-dire.

bloc-notes cpm22_Z80MBC2.lst

Recherchez l'étiquette TIMDAT, Ctrl-f (ou recherchez) recherchez TIMDAT, vous trouverez une section comme celle-ci:

0855+ EC16; ================================================== ==========================;

0856+ EC16; TIMDAT; 0857+ EC16; ================================================== ==========================; 0858+ EC16; Il s'agit d'une routine spécifique QP/M pour l'interface QP/M vers l'horloge temps réel; 0859+ EC16; pour utiliser pleinement les fonctions d'horodatage de QP/M.; 0860+ EC16; L'adresse de TIMDAT doit être spécifiée pendant QINSTALL via l'option de; 0861+ EC16; le menu d'installation de QDOS (voir pages 26-27 du Guide d'installation QP/M); 0862+ EC16;; 0863+ EC16; REMARQUE: si le RTC n'est pas présent, IOS donnera tous les octets 0. C'est; 0864+ EC16; "interprété" par QP/M comme un "NO CLOCK".; 0865+ EC16; ================================================== ==========================; 0866+ EC16 TIMDAT 0867+ EC16 C3 19 EC jp USERCLK

Notez l'adresse HEX de la deuxième colonne, dans ce cas EC16. Retirez la valeur de la ligne sous les commentaires, juste au-dessus de l'instruction de saut JP USERCLK. Où il est écrit TIMDAT.

Maintenant que vous avez la valeur, vous pouvez quitter le fichier et procéder au QP/M intsall

Étape 5: ajouter le bios à une nouvelle image disque

Dans cette étape, nous allons créer notre propre copie du disque de démarrage DS1N00. DSK et y ajouter notre propre version du BIOS, prête à terminer l'installation de QP/M.

Pour commencer, créez un dossier temporaire du lecteur C pour y conserver vos copies de travail. Ouvrez une invite CMD et tapez ce qui suit

cd c:\z80mbc

mkdir temp cd temp

Copiez ensuite l'image disque d'origine à partir du répertoire SD

copiez c:\z80mbc\sd\DS1N00. DSK.

Obtenez les fichiers actuels à partir de l'image disque:

cd c:\z80mbc\temp cpmcp -f z80mbc2-d0 DS1N00. DSK 0:* disk0

La séquence ci-dessus créera un autre dossier temporaire dans le répertoire temporaire appelé disk0, ils copieront tous les fichiers existants de l'image disque dans le répertoire. Utilisez DIR après pour vous assurer que vous avez les fichiers.

Ensuite, nous pouvons formater l'image disque en tant que nouveau disque, c'est le seul moyen facile d'ajouter les pistes de démarrage à l'image disque, sans avoir à créer un tout nouveau disque à partir de zéro. Notez que l'option "-b" utilise le BIOS que nous avons compilé ci-dessus.

mkfs.cpm -f z80mbc2-d0 -b c:\z80mbc\sd\src\QPM_271_Custom_BIOS\qpm22.bin DS1N00. DSK

Maintenant que les pistes de démarrage sont mises à jour, vous pouvez ajouter les fichiers d'origine à l'image:

cpmcp -f z80mbc2-d0 DS1N00. DSK disk0/* 0:

Vous avez maintenant un disque amorçable, il démarrera en fait CP/M et non QP/M à l'étape suivante, nous utilisons le programme d'installation QP/M pour remplacer la partie CBIOS du système CP/M

Assurez-vous d'avoir une copie de travail de votre carte SD de démarrage, puis copiez le fichier DS1N00. DSK que vous créez à cette étape dans le dossier racine de la carte SD, il remplacera le fichier existant.

Étape 6: démarrez dans votre nouvelle image disque

Connectez un terminal série au z80mbc2

maintenez le commutateur utilisateur enfoncé, maintenez-le enfoncé, appuyez et relâchez le commutateur de réinitialisation. Lorsque la LED utilisateur s'éteint et que le voyant IOS clignote, relâchez l'interrupteur utilisateur.

Vous devriez maintenant être sur l'écran "Boot" sur le terminal, comme ceci: Z80-MBC2 - A040618

IOS - Sous-système d'E/S - S220718-R240620 IOS: Horloge Z80 réglée à 8 MHz IOS: Module RTC DS3231 trouvé (26/10/20 16:46:45) IOS: Capteur de température RTC DS3231: 20C IOS: Option GPE trouvée IOS: CP/M Autoexec est désactivé IOS: sélectionnez le mode de démarrage ou les paramètres système: 0: aucun changement (3) 1: de base 2: Forth 3: charge le système d'exploitation à partir de l'ensemble de disques 1 (QP/M 2.71) 4: Autoboot 5: iLoad 6: Changer la vitesse d'horloge du Z80 (->4MHz) 7: Basculer CP/M Autoexec (->ON) 8: Changer le jeu de disques 1 (QP/M 2.71) 9: Changer l'heure/la date RTC Saisissez votre choix >

Utilisez l'option 8 pour changer le jeu de disques sur QP/M. Lorsque vous le sélectionnez, vous devez charger votre BIOS QP/M. Je recommanderais également d'appuyer sur reset, car j'ai vu le premier chargement après l'option 8 échouer plusieurs fois. Comme ça:

IOS: Ensemble de disques actuel 1 (QP/M 2.71)

IOS: Chargement du programme de démarrage (QPMLDR. BIN)… Terminé IOS: Le Z80 s'exécute à partir de maintenant Z80-MBC2 QP/M 2.71 Cold Loader - S160918 Chargement… terminé Version personnalisée du BIOS Z80-MBC2 QP/M 2.71 - S150918 A>

Notez que j'ai ajouté la "Version personnalisée" ci-dessus lorsque j'ai modifié le fichier BIOS, juste comme démo pour cette étape.

À ce stade, vous exécutez en fait CP/M 2.2 Cbios avec le BIOS personnalisé pour QP/M, donc des choses comme la commande TIME ne fonctionnent pas, par exemple si vous tapez TIME (devrait répondre avec date+time) vous obtiendrez le CP/M 2.2 réponse de TIME ? - il pense que c'est une commande sur le disque et ne peut pas la trouver.

Il est maintenant temps d'installer le CBIOS de remplacement QP/M sur l'image disque.

Démarrez le programme qinstall.com:

A>qinstaller

Programme d'installation/configuration de QP/M 2.7 v2.1 QINSTALL utilise votre programme SYSGEN pour installer QP/M sur votre disque. Après avoir configuré votre système, vous serez invité à entrer le nom de votre programme SYSGEN. Cet utilitaire devrait être disponible sur l'un de vos disques. Pour que QINSTALL se termine avec succès, l'image système sur le disque et le système actuellement en mémoire DOIVENT être identiques. (Utiliser pour abandonner le programme.) Souhaitez-vous continuer ? (O/N):

Répondez ensuite O pour continuer.

On vous demandera ensuite les paramètres QCP (vous pourrez jouer plus tard !) pour l'instant dites N

Vous souhaitez examiner et/ou modifier

les paramètres QCP par défaut ? (O/N): N

Ensuite, vous serez interrogé sur les paramètres QDOS, appuyez sur Y

Vous souhaitez examiner ou modifier

les paramètres QDOS par défaut ? (O/N): O

Vous aurez un menu comme celui-ci:

*** Paramètres d'installation du système QDOS ***

Enregistrer le caractère obtenu lors de l'analyse de la console.. OUI Le BIOS prend en charge la table des codes d'erreur BDOS ………. NON Adresse du vecteur de saut heure/date …………. DÉSACTIVÉ Fonction de recherche de lecteur/utilisateur ……………….. ACTIVÉ Reconnexion automatique du disque …………………… ACTIVÉ Restaurer les paramètres initiaux Quitter l'installation QDOS Entrer l'option:

À ce stade, vous devez entrer le numéro HEX de l'étape 4 ci-dessus (trouver votre adresse d'horloge en temps réel)

Appuyez sur 2 et entrez l'adresse HEX EC16, si vous n'avez apporté aucune modification au bios, dans mon cas, c'est EC04 car j'ai ajouté du texte, etc.

Saisir l'adresse du vecteur heure/date en hexa (0 à DÉSACTIVER): EC04

Vous pouvez maintenant quitter le menu QDOS et continuer.

L'écran suivant affiche:

Entrez le nom de votre programme SYSGEN et appuyez sur RETOUR.

(Spécifiez le lecteur si nécessaire; n'utilisez pas l'extension. COM): SYSGENQ

Entrez la version spéciale de sysgen, appelée SYSGENQ

Vous verrez alors:

*** Création d'une image QP/M 59k ***

QINSTALL va maintenant exécuter A:SYSGENQ. COM. Vous devez demander à A:SYSGENQ. COM de lire les pistes système. Une fois la LECTURE terminée, quittez le programme SYSGEN. Le message "*** QINSTALL recherche image système ***" apparaîtra suivi d'instructions supplémentaires. Appuyez pour continuer -OU- pour abandonner --

Appuyez sur C pour continuer:

SYSGENQ - S140918 - Z80-MBC2

Utilitaire de type CP/M 2.2 SYSGEN À utiliser uniquement pour installer QP/M 2.71 à l'aide de QINSTALL. COM AVERTISSEMENT: la commande W écrasera la piste système ! Lire les pistes système et les charger dans la RAM ou les réécrire sur le disque ? [R/W] >

La première fois que vous voyez ce message, choisissez R pour lire les pistes du système, vous obtiendrez alors:

Lecture… terminée

*** QINSTALL recherchant l'image système *** Image système trouvée à partir de 0900H. Installation de QP/M. Votre programme SYSGEN va maintenant reprendre l'exécution. Vous devez demander au programme d'ÉCRIRE les pistes du système. Appuyez pour continuer -OU- pour abandonner --

Appuyez à nouveau sur C pour continuer:

SYSGENQ - S140918 - Z80-MBC2

Utilitaire de type CP/M 2.2 SYSGEN À utiliser uniquement pour installer QP/M 2.71 à l'aide de QINSTALL. COM AVERTISSEMENT: la commande W écrasera la piste système ! Lire les pistes système et les charger dans la RAM ou les réécrire sur le disque ? [R/W] >

Cette fois, appuyez sur W pour réécrire les nouveaux QP/M et BISO sur les pistes du disque:

Écriture… terminée

A>

Vous pouvez maintenant appuyer sur reset et redémarrer dans votre nouveau bios QP/M. Si vous tapez maintenant TIME à l'invite, il exécutera la version complète de QP/M et répondra comme ceci:

Z80-MBC2 - A040618

IOS - Sous-système d'E/S - S220718-R240620 IOS: Horloge Z80 réglée à 8 MHz IOS: Module RTC DS3231 trouvé (26/10/20 17:10:48) IOS: Capteur de température RTC DS3231: 20C IOS: Option GPE trouvée IOS: CP/M Autoexec est désactivé IOS: Ensemble de disques actuel 1 (QP/M 2.71) IOS: Chargement du programme de démarrage (QPMLDR. BIN)… Terminé IOS: Z80 est en cours d'exécution à partir de maintenant Z80-MBC2 QP/M 2.71 Cold Loader - S160918 Chargement… done Version personnalisée du BIOS Z80-MBC2 QP/M 2.71 - S150918 A>time 26-Oct-20 17:10:56 A>

Vous êtes opérationnel avec le nouveau BIOS, notez le texte "Version personnalisée" ci-dessus. Vous devriez probablement lire le reste de la documentation QP/M sur

Ailette

Conseillé: