Página 1 de 2

codigo fuente cp/m.

Publicado: 04 Oct 2014, 01:56
por tic
Bueno, pues eso,simple ¿no?.(bueno de simple no tiene nada :) ):

http://www.computerhistory.org/_static/ ... urce-code/

Re: codigo fuente cp/m.

Publicado: 04 Oct 2014, 02:16
por mcleod_ideafix
Desde hace algún tiempo he querido hincarle el diente al CP/M con el propósito de escribir una BIOS que permita usar sistemas de almacenamiento actuales (DivIDE, ZXMMC, DivMMC). Combinado con los 512KB de RAM de ZX-Uno y el modo gráfico de 512x192 compatible Timex, podría ser un sistema CP/M bastante serio. Lo que pasa es que lo del MP/L me echa un poco para atrás. Preferiría algo así como un código fuente "compilable" en PASMO o similar.

Re: codigo fuente cp/m.

Publicado: 04 Oct 2014, 17:18
por Lord British
Interesante, me he bajado el archivo.

Re: codigo fuente cp/m.

Publicado: 04 Oct 2014, 21:34
por mentalthink
MCLeod según he leído de la versión 2 tienen todos los archivos de código máquina "readable" supongo que es ASM o algo que no conozco....

"We also have machine-readable source code for most of the files. We suspect they have been retyped from the listing, so they may have errors, but spot checks are encouraging about their accuracy."

Es interesante al final de la web dan los recursos para enteneder el código, quién tenga tiempo y paciencia... Me ha llamado la atención esté del PL/M
no tengo ni idea pero los códigos que aparecen son bastante legíbles
http://bitsavers.informatik.uni-stuttga ... de1973.pdf

Parece una especíe de C++ y 100 páginas tampoco es que sea un mega.tocho.

Gracias por el aporte,

Re: codigo fuente cp/m.

Publicado: 05 Oct 2014, 03:21
por mcleod_ideafix
mentalthink escribió:MCLeod según he leído de la versión 2 tienen todos los archivos de código máquina "readable" supongo que es ASM o algo que no conozco....

Creo que es el lenguaje ese MP/L o como se diga. No: busco ASM "moderno", con cosas como LD A,3 en lugar de MVI A,3 (nmemónicos del 8080). No tengo ninguna intención de leérmelo entero, aunque "sólo" sean 100 páginas. Busco poder encontrar los puntos que tuviera que modificar, para generar una BIOS y un BDOS (aunque esto último se supone que es independiente del sistema)

Re: codigo fuente cp/m.

Publicado: 05 Oct 2014, 10:25
por scooter
¿Y no se puede abrir en un editor de texto y con buscar/reemplazar ir cambiando los nemónicos?
Ya se que es un curro, pero cosas peores he visto.

Re: codigo fuente cp/m.

Publicado: 05 Oct 2014, 16:22
por mcleod_ideafix
scooter escribió:¿Y no se puede abrir en un editor de texto y con buscar/reemplazar ir cambiando los nemónicos?

El MP/L (o como se escriba) NO es ensamblador, es... otra cosa :D No hay una correspondencia 1-1. Esto es un cacho de procedimiento escrito en MP/L:

Código: Seleccionar todo

wait$keypress: procedure;
  declare char byte;
/*  if debug then
call print(.(cr,lf,'In wait*keypress...',cr,lf,'$'));
*/
  char = direct$console$io;
  do while char = 0;
    char = direct$console$io;
  end;
  if char = ctrlc then
    call terminate;
end wait$keypress;


De todas formas, he encontrado una versión que sí que está en ensamblador del Z80. La estudiaré a ver qué saco en claro.

Re: codigo fuente cp/m.

Publicado: 05 Oct 2014, 18:40
por zup
Dos preguntas tontas...
- ¿No me recuerda esa sintaxis a la empleada en VMS? (NPI de VMS , pero he tenido que cambiar piezas de algún equipo de esos)
- Existen versiones CP/M para Z80 (p.ej. +3, CPC, PCW). ¿no sería mejor inspirarse en una de esas?

Re: codigo fuente cp/m.

Publicado: 05 Oct 2014, 19:25
por mcleod_ideafix
zup escribió:Dos preguntas tontas...
- ¿No me recuerda esa sintaxis a la empleada en VMS? (NPI de VMS , pero he tenido que cambiar piezas de algún equipo de esos)

No sé, pero puede que te suene por la cantidad de veces que aparece el signo $ en los comandos y demás. No sé si ha habido alguna relación entre VAX, Gary Kindall y el desarrollo de CP/M o de MP/L.

zup escribió:- Existen versiones CP/M para Z80 (p.ej. +3, CPC, PCW). ¿no sería mejor inspirarse en una de esas?

Todas las versiones de CP/M funcionan en Z80, aunque no usen por lo general los registros e instrucciones extra del Z80. CP/M Plus creo que sí se pensó ya para Z80. De todas formas,... ¿inspirarse en qué sentido? Esas versiones no son libres, tienen copyright, y no sería legal desensamblarlas para copiar su contenido, o inspirarse en ellas. Por supuesto, no hay disponible código fuente de ellas. Además: repito que, teóricamente, sólo hay que escribir la BIOS y el comando FORMAT. El BDOS, el CCP y demás utilidades son independientes de plataforma. La única dependencia que precisan es que el procesador sea compatible con el I8080.

Lo que sí haga posiblemente sea "rellenar agujeros" en cuanto a cosas que no me quedan claro sobre el mapa de memoria de CP/M y alguna cosilla más, usando el CP/M del Spectrum +3 en un emulador y viendo por ejemplo cómo se organiza la tabla de saltos, cuántos de éstos hay, etc. Es que veo que parece ser, la BIOS consta únicamente de unos cuantos saltos, y ni siquiera son complicados de implementar. El grueso del SO, es decir, el sistema de ficheros, la interpretación de secuencias de comandos en ficheros SUB, etc, es independiente del sistema que se use. De hecho creo recordar que CCP y algunas de las utilidades de CP/M son iguales tanto para Spectrum +3 como Amstrad CPC6128 como PCW8256. Con "iguales", quiero decir, el mismo ejecutable.

-- Actualizado 05 Oct 2014, 18:40 --

mcleod_ideafix escribió:Lo que sí haga posiblemente sea "rellenar agujeros" en cuanto a cosas que no me quedan claro sobre el mapa de memoria de CP/M y alguna cosilla más...

Anda, mira, pues al final he encontrado info extra sobre alguno de esos agujeros a rellenar. En concreto, el mapa de memoria y el proceso de arranque:
http://www.oocities.org/homeofoscarvermeulen/cpm.html

Y creo que aquí tengo el resto de la info que me faltaba...
http://www.gaby.de/cpm/manuals/archive/cpm22htm/

Re: codigo fuente cp/m.

Publicado: 07 Oct 2014, 07:57
por Zardoz
En la wiki hay enlaces a un par de conversores de PL/M a C. Por lo que leo, se supone que es de nivel mas bajo que C