Moviendo binarios entre sistemas CP/M

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Moviendo binarios entre sistemas CP/M

Mensajepor ron » 14 Feb 2014 20:56

Esta tarde mientras regresaba a casa, a través del telegram, ferix comentaba que estaba ejecutando el BBC Basic en MSX bajo CP/M.

Creo que ha llegado el momento que nos contemos los trucos que tenemos para inyectar binarios de CP/M en varios sistemas, y la finalidad del post es esa, tener una guía de referencia que nos permita mover un binario o un conjunto de ficheros entre sistemas.

Hay un denominador común a todos los micros, aquellos que llevan un Z80, 64K de Ram y que dispongan de controladora de floppy.

Micros a los que esto puede beneficiar. ( entre los más comunes ) En 40 y 80 Columnas

En principio a todos aquellos que sean capaces de ejecutar CP/M 2.2 y CP/M 3. También las versiones denominadas como Plus. Hay algunos sistemas que disponen de versiones 1.0 como es el caso del Apple][ con la SoftCard y el NewBrain, aunque para Apple ][ hay versión 2.2 de 56, 60 y 64 K

La Media ( Discos físicos y virtuales )

Desde discos de 8 ", 5 1/4", 3 1/2" y 3"
Desde imágenes de disco: DSK, IMD, TD0

Los equipos más comunes CP/M que tenemos ( imcompleto... )

MSX2 con FDD
Apple ][ con tarjeta softcard Z80.
Commodore C128.
Sinclair ZX Spectrum +3.
Amstrad CPC6128
Amstrad CPC464 ó CPC472 con controladora de floppy
Amstrad PCW8256 y PCW8512
Sam Coupé
Enterprise 64 / 128 con FDD
TRS80 Model IV
NCR DMV V
Osborne 1
Kaypro II
Xerox 820

Las herramientas y los procedimientos

Ese es el fin del post. Como usualmente hay pocos sistemas en los que el formato de disco sea el mismo ( PCW y +3 por ejemplo ) se trata de definir que herramientas y que procedimientos podemos usar para editar imágenes de disco y poder inyectarles binarios y cosas y volcarlas tanto a disco real como a emulador de floppy.

Ejemplo de proyecto
Preparar una versión de multiplan o visicalc o wordstar que podamos ejecutar en el mayor numero de micros.

Por favor, no dejéis de añadir los sistemas que me pudieran faltar por poner.

Avatar de Usuario
Pow!
Mensajes: 1819
Registrado: 15 Mar 2011 00:40
Agradecido : 60 veces
Agradecimiento recibido: 355 veces

Re: Moviendo binarios entre sistemas CP/M

Mensajepor Pow! » 14 Feb 2014 21:50

Wow Ron
Vaya reto!

A ver quien prueba todo esto.

Avatar de Usuario
ferix
Mensajes: 1009
Registrado: 28 May 2012 21:01
Agradecimiento recibido: 12 veces

Re: Moviendo binarios entre sistemas CP/M

Mensajepor ferix » 15 Feb 2014 08:50

Bueno, os cuento mi experiencia con el MSX-DOS y los binarios de CP/M.

Como todos sabemos el MSX-DOS utiliza el sistema de archivos FAT (con alguna diferencia que solo afecta al arranque y que no permite directorios) así que es tan fácil como copiar directamente los archivos desde cualquier PC con disquetera y prácticamente cualquier sistema operativo.

Por el momento he probado pocas cosas, pero por lo general debería funcionar todo lo que utilice la salida estándar de consola como método de entrada y salida.

En mis pruebas he comprobado que así es, pero con matices. Y la primera diferencia es como trata el MSX-DOS la consola.
Por lo que he visto, la tecla de retroceso (borrar) no es interpretada de igual manera, teniendo que utilizar la tecla DEL (o SUPR.) en su lugar.
Otra diferencia es que MSX-DOS no entiende los comandos ANSI, con lo que programas como el WordStar, pese a funcionar, no se muestran correctamente, aunque esto supongo que tendrá solución a través de algún driver (.SYS) como se hacía en MS-DOS (¿os acordáis del ANSI.SYS?), para algo son primos hermanos.

También hay que decir que para poder utilizar al 100% algunos de los programas se necesita el modo de 80 columnas de los MSX2, aunque en el caso del BBC Basic en modo de 40 columnas funciona perfectamente.

BBCBASIC_0000.png
BBCBASIC_0000.png (33.34 KiB) Visto 4151 veces


Y por lo de ahora, esto es todo lo que tengo. Seguiremos informando.

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Re: Moviendo binarios entre sistemas CP/M

Mensajepor ron » 15 Feb 2014 12:33

Hay que hacer también un listado de las aplicaciones o utilidades que permiten editar / inyectar ficheros en imágenes de disco que luego pueden ser utilizadas para volcar a floppy real o usar con emuladores o con emuladores de floppy.

Ya estoy trabajando en ello.

FloppySoftware

Re: Moviendo binarios entre sistemas CP/M

Mensajepor FloppySoftware » 15 Feb 2014 12:58

Yo con el PCW lo tengo "fácil".

En el PCW tengo la unidad original de 3" de 2 caras, 180KB en cada una, como unidad B:, y el la A: tengo una de 3 1/2" de 720 KB que me costó un fortunón en la tienda de los chicos de Locomotive.

También tengo un PC con W98 y unidad de 3 1/2", pero normalmente desarrollo para CP/M y PCW en un portátil "moderno", así que para pasar de PC a PCW, suelo hacer:

+ Grabo en pendrive desde el portátil. Ojo, ha de ser un pendrive "retro", porque lo ha de reconocer W98.

+ Lo cargo en el PC con W98, y con un programa (propio o ajeno, tengo para elegir) lo paso al floppy de 3 1/2".

+ De ahí, al PCW.

La unidad del PCW sólo admite discos de 720 KB, los que sólo tienen un agujerito en una esquina, pero como los que tengo son de 1,44 MB, les tapo un agujerito. Algunos fallan con este sistema.

Y está el tema de los pendrive, que tengo uno que funciona mal, y otra que sigue funcionando bien, y todos los días pongo velitas para que dure.

También tengo un cable RS232, y el correspondiente cacharrito para PCW, pero no lo he probado jamás. Me da una pereza...

El formato de disco de los PCW, hasta donde yo sé, es compatible con el de MSDOS (pistas, sectores y demás), donde difiere es en el formato lógico, así que preparar un programa para leer / escribir en el PC, discos de PCW tampoco es especialmente difícil. Pero el programa lo tengo a medias, funcional en algunas cosas, pero a medias. Lo hice en Turbo C, y dudo que algún día lo termine al 100%.

Lo que me preocupa, es que los ordenadores "puente" que utilizamos, para pasar información desde / hacia los ordenadores "retro", ya están convirtiéndose en retro también. A los floppies les quedan dos telediarios, así que hay que ir pensando en esto también.

Saludos.

FloppySoftware

Re: Moviendo binarios entre sistemas CP/M

Mensajepor FloppySoftware » 15 Feb 2014 13:06

ferix escribió:Por lo que he visto, la tecla de retroceso (borrar) no es interpretada de igual manera, teniendo que utilizar la tecla DEL (o SUPR.) en su lugar.
Otra diferencia es que MSX-DOS no entiende los comandos ANSI, con lo que programas como el WordStar, pese a funcionar, no se muestran correctamente, aunque esto supongo que tendrá solución a través de algún driver (.SYS) como se hacía en MS-DOS (¿os acordáis del ANSI.SYS?), para algo son primos hermanos.


Hola Ferix,

Lo de la tecla de borrado es algo que se da en CP/M desde los tiempos de Chindasvinto IV. En algunos sistemas el código ascii que se utiliza para borrar a la izquierda es el 8 (CONTROL H), y en otros el 127 (DEL). Muchos programas CP/M, tenían que configurar esto.

En cuanto a la pantalla, CP/M no sabe nada de pantallas, sólo envía carácteres a la terminal, a través de la correspondiente función BIOS. Por no saber, no sabe ni el ancho, ni el alto... nada. Esto se intentó remediar en CP/M 3, Personal CP/M y CP/M 86, pero sólo hasta cierto punto, y utilizando secuencias de escape.

Por tanto, WordStar, SuperCalc, etc. han de configurarse para cada pantalla en particular. A veces es fácil, a veces no tanto, pues una de las virtudes de CP/M es que se puede ejecutar prácticamente en cualquier sistema con un 8080 o compatible. La desventaja, es que cada sistema es de su padre y de su madre, pantalla incluida.

Saludos.

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Re: Moviendo binarios entre sistemas CP/M

Mensajepor ron » 16 Feb 2014 09:45

Apple ][

Se comentó en este hilo: viewtopic.php?f=14&t=200028682

Para los Apple ][ con tarjeta Z80 SoftCard o clonica hay algunas opciones que funcionan.

El programa CiderPress ( desde PC ) permite manejar imágenes CP/M de Apple ][

http://ciderpress.sourceforge.net/features.htm

Pero hay una opción que es la que realmente funciona bien usando APDOS.COM para transferir programas y ficheros CP/M y ficheros DOS 3.3 a discos CP/M

Manual y guía ( en inglés ) http://www.aztecmuseum.ca/applecpm/AztecCPMToApple.pdf

AztecCPMToApple.zip
(391.76 KiB) Descargado 148 veces

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Re: Moviendo binarios entre sistemas CP/M

Mensajepor ron » 16 Feb 2014 09:57

PCW y Spectrum +3

Referencias:

viewtopic.php?p=100035857#p100035857

viewtopic.php?p=100039352#p100039352

DIST 0.1Beta.rar
(347.15 KiB) Descargado 141 veces

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Re: Moviendo binarios entre sistemas CP/M

Mensajepor ron » 16 Feb 2014 10:00

C128

Transfiriendo a CP/M con C128

http://www.youtube.com/watch?v=XXUNN6VQIuU

Según lo que comenta:

1. Transfer files into D64-Image (C64 Format).
2. Format another D64 image with CP/Ms format tool.
3. Use Big Blue Reader 128 to copy files from C64-Image to CP/M-Image. (Use DEL-key for OK).

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Re: Moviendo binarios entre sistemas CP/M

Mensajepor ron » 17 Feb 2014 21:36

ferix escribió:Bueno, os cuento mi experiencia con el MSX-DOS y los binarios de CP/M.

También hay que decir que para poder utilizar al 100% algunos de los programas se necesita el modo de 80 columnas de los MSX2, aunque en el caso del BBC Basic en modo de 40 columnas funciona perfectamente.

Y por lo de ahora, esto es todo lo que tengo. Seguiremos informando.


Vale, tengo una pregunta, y lo argumento:

El BBC Basic original ya sabéis que permite ensamblar directamente desde el propio Basic

Pongo estas referencias para que lo veáis :

beebem2.gif
beebem2.gif (33.06 KiB) Visto 4049 veces


http://www.peter-cockerell.net/aalp/html/ch-4.html

Bien, ahora la cuestión: ¿ El BBC Basic para CP/M permite ensamblar Z80 directamente desde el código Basic ?

Me ha picado la curiosidad y lo voy a investigar mientras tanto.

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Re: Moviendo binarios entre sistemas CP/M

Mensajepor ron » 17 Feb 2014 21:43

Claro que se puede !

Ya contesto, sobre la marcha : http://www.bbcbasic.co.uk/bbcbasic/mancpm/bbc3.html

Joder que buena pinta que tiene !

Hay otro capítulo dedicado al editor del prompt y la consola : http://www.bbcbasic.co.uk/bbcbasic/mancpm/bbc2.html

The Line Editor

The EDIT command may be used to edit or concatenate-and-edit the specified program line(s). The specified lines (including their line numbers) are listed as a single line. By changing only the line number, you can also use EDIT to duplicate a line.
EDIT 230
EDIT 200,230
The following control functions are active in the immediate and edit modes and in response to an INPUT command in a program. The codes shown are the default codes as supplied; they may be changed by editing the BBCDIST.MAC patch program:
Ctrl/E Move the cursor up one line
Ctrl/X Move the cursor down one line
Ctrl/S Move the cursor left one character
Ctrl/D Move the cursor right one character
Ctrl/A Move the cursor to the start of the line
Ctrl/F Move the cursor to the end of the line
Del Backspace and delete
Ctrl/G Delete the character at the cursor
Ctrl/U Clear line to the left of the cursor
Ctrl/T Clear the line to the right of the cursor
Ctrl/V Insert a space at the cursor position
Enter Enter the line and exit the edit mode
Esc Abort and leave the line unchanged
To abort the single line editor and leave the line unchanged, press <Esc>.

You can use the EDIT command to edit and join (concatenate) program lines. When you use it to join lines, remember to delete any unwanted ones. EDIT on its own will start at the beginning of the program and concatenate as many lines as it can. This process will stop when the concatenated line length exceeds 255.

Avatar de Usuario
Gatuso
Mensajes: 152
Registrado: 06 Ene 2014 11:55
Agradecido : 1 vez
Agradecimiento recibido: 30 veces

Re: Moviendo binarios entre sistemas CP/M

Mensajepor Gatuso » 22 Feb 2014 22:46

En mi caso gracias a este post estoy empezando a trastear con un C128 usando el programa 64HDD como emulador de disquetera, ya que no dispongo de ninguna unidad física real. Pero al intentar pasar binarios con el método de la página anterior (o el de esta otra página, que es similar) me he encontrado con que el 64HDD no es totalmente compatible con CP/M: puedo cargar el sistema operativo desde las imágenes .D64 que se encuentran por la red, pero no me permite por ejemplo formatear una imagen de disco para mover ficheros allí. En el manual se comenta esta situación:

Although 64HDD is intended primarily to support native Commodore modes of operation, some limited CP/M compatibility is possible. Support presently is limited to the use of the disk images file system, namely D64 types because the operation of CP/M is via direct track/sector accesses. Only disk images compatible with the GCR system are usable with 64HDD. This means that MFM disks cannot be utilised.


Así que he buscado otras alternativas para poder generarme mis propias imágenes de disco con los programas que me interesan y me he encontrado con las herramientas ctools, que permiten esto mismo de manera muy sencilla desde Linux o MS-DOS. Solo he usado dos de los programas que trae, pero simplemente con eso ya me han permitido tener un disco con el que probar nuevas aplicaciones, en este caso el Zork que encontré en retroarchive y que me hacía ilusión usar como prueba inicial:

-Con el programa cformat.exe creamos una nueva imagen .D64 vacía:

cformat zork.d64

-Y con ctools.exe añadimos a esta imagen los archivos que queramos (opción p de put):

ctools zork.d64 p zork1.com
ctools zork.d64 p zork1.dat

De igual forma que podemos extraer ficheros (opción g) o listar el contenido de la imagen (opción d). Ya podemos cargar ese archivo .D64 en el emulador 64HDD como unidad B:, y una vez arrancado CP/M podemos acceder a él y ejecutar las aplicaciones que contiene sin ningún problema.

Imagen

dancresp
Mensajes: 6225
Registrado: 13 Nov 2010 02:08
Ubicación: Barcelona
Agradecido : 665 veces
Agradecimiento recibido: 1016 veces

Re: Moviendo binarios entre sistemas CP/M

Mensajepor dancresp » 24 Feb 2014 15:26

Recuerdo en la primera Retro Vilowiki que en el C-128 de davae con una 1571 podías leer y ejecutar sin problema los programas que habían en disquetes del OSBORNE-1.

Igual esta es una de las formas de pasar software a la máquina real... -grin
Buscando la IP de la W.O.P.R. he encontrado mi índice

Avatar de Usuario
ron
Mensajes: 21855
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4752 veces

Re: Moviendo binarios entre sistemas CP/M

Mensajepor ron » 24 Feb 2014 20:31

dancresp escribió:Recuerdo en la primera Retro Vilowiki que en el C-128 de davae con una 1571 podías leer y ejecutar sin problema los programas que habían en disquetes del OSBORNE-1.

Igual esta es una de las formas de pasar software a la máquina real... -grin


Y he estado haciendo mis pinitos, pero me falta camino por recorrer, de momento resultados discretillos aunque tengo que ponerme que igual ya no lo son tanto ! xD


Volver a “Sistemas Operativos”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados