[zxspectrum] Re: ZXMMC e CP/M

  • From: Stefano Bodrato <stefano_bodrato@xxxxxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Thu, 22 Apr 2010 09:15:09 +0200

Descrizione un po' più di dettaglio: il CP/M è un sistema operativo per 
microprocessori della famiglia 8080, antenato dell'MS/DOS, prodotto dalla 
Digital Research.   L'MSXDOS è probabilmente una delle sue evoluzioni più 
recenti.

 

Il "core" del CP/M è il BDOS, che nella versione 2.2 pesa circa 7/8 Kbytes e 
che si interfaccia al BIOS, ovvero ai driver specifici dell'hardware su cui 
deve girare (spesso forniti dalla ROM).

Il BIOS dovrebbe fornire l'accesso a porte seriali e parallele, alla console 
(video e tastiera o telescrivente) e ai dischi.. al momento ho abbozzato solo 
supporto per la 'console', utilizzando lo stesso emulatore VT/ANSI che ho 
convertito in mnemonico Z80 da NNANSI.SYS per l'MS/DOS e messo in z88dk, 
ovviamente con il consenso degli autori.

La parte 'tastiera', nella demo in foto è arrangiata agganciando la ROM 
originale, con un indecoroso ping-pong tra le pagine di memoria, ora mi sono 
appoggiato al codice di Enrico Maria Giordano (tra l'altro niente male !).

Niente supporto disco o MMC, per ora.. quindi ho reso opzionale l'inclusione 
del CCP (equivalente all'attuale COMMAND.COM), che peserebbe 2K.  Notate il 
parallelo con IBMBIO, IBMDOS e COMMAND, comunque abbastanza prevedibile dato 
che Tim Patterson aveva costruito il primo DOS per una scheda Intel 8086 
montata nello stesso BUS dell'Altair, che in versione standard utilizzava una 
scheda 8080 spesso con il CP/M su drive da 8".

 

Normalmente il CP/M non può funzionare sullo Spectrum, perchè il programma deve 
essere allocato all'indirizzo 100h, ovvero dove di solito c'è la ROM.. a meno 
che un hardware esterno (ad esempio la ZXMMC+) non forzi l'esclusione della ROM 
agendo sul segnale ROMCS e non fornisca al suo posto una bella pagina RAM.   A 
quel punto il trucco funzionerà anche sul gommoso !

 

Attualmente il mio kit prepare un file TAP comprensivo di BDOS, driver per la 
console e programma da eseguire.. all'avvio il programma toglie la ROM di 
mezzo, alloca i puntatori per le funzioni di servizio (interrupt alla locazione 
38h, BDOS alla locazione 5 e 'cold boot' alla locazione 0), riloca il programma 
alla locazione 100h, e ci salta dentro.

Alcuni cloni, compreso il Chrome e lo Spectrum +3, permettono di spostare la 
pagina video in fondo alla RAM, estendendo lo spazio libero per il programma 
CP/M da eseguire (chiamato TPA, Transient Program Area) che altrimenti è 
ridotto a 16K.

 

 

 
                                          
_________________________________________________________________
Carica, scarica e condividi i tuoi file. Fino a 25 GB e in tutta sicurezza.
http://www.windowslive.it/skyDrive.aspx

Other related posts: