Un par de experimentos para divertirse con CP/M-86. El enfoque está en IBM XT CP/M-86 y derivados en PC. Pero la mayoría de las herramientas funcionan con el SBC JUST4FUN V20-MBC.
La fuente de CP/M-86 DOC, fuentes y binarios es http://www.cpm.z80.de.
Una distribución de limpieza y kernel está disponible en https://github.com/tsupplis/cpm86-kernel. Esta distribución funciona bien en entornos virtuales, parcheados con todos los parches conocidos, 'Y2K' amigable (contiene la versión de TOD cuya fuentes están en este proyecto) y en amigable.
INF: Usage: ls [-h] | [-a] [-p] [-s|-r] [-l|-b] filepat
INF: File listing utility
INF: where filepat is [user/]filespec with wildcard
INF: -h for help
INF: -a for all files (including system)
INF: -p for for pausing one screen at a time
INF: -s for alphabetic sorting
INF: -r for reverse alphabetic sorting
INF: -l for long listing
INF: -b for basic listing
INF: Usage: rm [-h] | [-a][-i] filepat
INF: File delete utility
INF: where filepat is [user/]filespec with wildcard
INF: -h for help
INF: -a to include both dir and sys files
INF: -i for user validation per file
INF: -f force file deletion even if read only
INF: Usage: more -h | [infile]
INF: File paging utility
INF: where infile is [user/]filespec
INF: -h for help
INF: Usage: write -h | [-a] filename
INF: File write/create utility
INF: where filename is [user/]filespec
INF: -h for help
INF: -a to happen to existing file
(CTRL-C o CTRL-Z utilizado para finalizar la entrada)
INF: Usage: dump -h | [-p][-r] [infile]
INF: Hexa file dump utility
INF: where infile is [user/]filespec
INF: -h for help
INF: -p pausing every page
INF: -r raw output
INF: Usage: mode -h | option option ...
INF: Console configuration utility
INF: -h for help
INF: and options:
INF: cls Clear screen
INF: cursor=on Show cursor
INF: cursor=off Hide cursor
INF: statln=on Show status line
INF: statln=off Hide status line
INF: status= Set status line message
INF: fg= Set foreground color (1-F)
INF: bg= Set background color (1-F)
INF: Usage: touch [-h] | filespec
INF: Empty file creation utility
INF: -h for help
INF: Usage: wc [-h] | [-a] filepat [filepat] ...
INF: File word/line/character count utility
INF: where filepat is [user/]filespec with wildcard
INF: -h for help
INF: -a to include both dir and sys files
INF: Usage: printenv [-h]
INF: Display environment variables
INF: -h for help
Para el estado, ( s: espacio, \: , u: superior, l: inferior)
Las herramientas de ATINIT, RTCinit y Pceinit proporcionan un volcado de configuración rápido equivalente a lo que se muestra CP/M-86 1.1 en el arranque
CP/M-86 1.1, BDO 2.2
Hardware Configuration:
- System Memory: 640Kb
- Available Memory: 607Kb
- Math Coprocessor: No
- Floppy Drive(s): 2
- Hard Disk(s): 1
- Parallel Port(s): 1
- Serial Port(s): 2
Date now: 2021-9-27 22:17:39.0
Todas las herramientas C (RM, LS, Mode, More, Write, Vold) se benefician del patrón de especificación de archivo de Aztec C: [Usuario]/[Drive]: [Filespec]. Además, se admiten redireccionamientos básicos <archivo y> de archivos.
A menos que se mencione lo contrario, todas las herramientas están trabajando en
Para los siguientes sistemas operativos, solo las herramientas de archivos funcionan bien. Interactuar con el BIOS generalmente está prohibido (Atinit/Attime y Pceinit/Pcetime) ...
Esos sistemas operativos funcionan increíblemente bien en PCE en imágenes Floppy y HD. Este emulador es simple, pequeño y funciona un regalo. Fantástico...


LINK86 Linkage Editor 02/Feb/87 Version 2.02
Cross Linker: DOS -> CPM-86 & CDOS-286 1/2/86
RASM-86 Assembler 12-Mar-87 PC-DOS Version 1.4a
Para un entorno de desarrollo cruzado rudimentario, mire (https://github.com/tsupplis/cpm86-crossdev).
Algunos scripts de envío/lotes se proporcionan para DOS (AZTEC 3.4) y CP/M-86 (AZTEC 3.2) también están disponibles.
A pesar de ser un sistema operativo muy primitivo (en algunos casos, realmente agradablemente primitivo ... sin gestión del tiempo fuera del reloj, por ejemplo), es posible hacer una gran cantidad de cosas con un par de buenas herramientas:
Lo bueno de este pequeño sistema operativo es lo pequeño que es. Nunca configure más de 128k en mi PCE VM y una sola persona puede jugar como aficionado con él. Como se mencionó anteriormente, también funciona muy bien con el SBC SBC JUST4FUN V20-MBC (https://hackaday.io/project/170924-v20-mbc-a-v20-8088-8080-cpu-homebrew-computer). Cool Otra cosa: Cumple con Y2K con el reemplazo de TOD arriba y un pequeño truco visual. Sí, sin gestión de fechas ...
Hace que las primeras fuentes de MS-DOS sean atractivas. MS-DOS 2.X es mucho más flexible y tiene un ecosistema más grande que CP/M-86. Esto lo hace más un desafío ;-)
Las herramientas DR están disponibles a través de (http://www.cpm.z80.de/binary.html) y muchas otras fuentes. Encontré el último lanzamiento de Turbo Pascal y Poly Pascal en un sitio danés muy exhaustivo centrado en las computadoras de la serie RC700 que, por el camino, también están emuladas por PCE. No son compatibles con PC, pero ambos Pascal son genéricos y funcionan en la familia CP/M-86 basada en IBM PC.
Pero los archivos deben extraerse de las imágenes de disco utilizando CPMTools utilizando la siguiente definición:
diskdef rc75x
seclen 1024
tracks 154
sectrk 8
blocksize 2048
maxdir 512
boottrk 4
os 3
end
Turbo Pascal 3.01a es la última liberación en CP/M-86 (no olvide configurarlo usando Tinst) y está en inglés. Poly Pascal también está en inglés, pero el archivo de mensajes y la ayuda en línea están en danés. No es un gran problema para traducirlos. Poly Pascal es realmente un gemelo, hermano o antepasado de Turbo Pascal. Un poco genial para jugar con él.
Macro ensamblador, C, Pascal, estructura básica ... ¿qué más necesitamos?
La compilación cruzada se puede hacer utilizando la emulación DOS (EMU2, PCE) o usando un sistema operativo híbrido
... Ejecute todas las herramientas anteriores (tanto en su versión DOS y CP/M) y puede probar directamente los binarios CMD.
Existen algunos emuladores CP/M-86 para DO (AME86.EXE, CPM86.EXE) Desafortunadamente, sus fuentes no se pueden ver en ningún lado y necesitarán un poco de mantenimiento. Solo funcionan los programas rudimentarios.
Finalmente, el ensamblaje usando ASM86 y GENCMD también se puede hacer, pero debe hacerse en entornos CP/M (se pueden usar derivados CP/M-80 o CPM-86)
Sin embargo, es un poco falta en el lado de las herramientas ... así que portaré las herramientas poco a poco por el bien de la comodidad.
Aún así, es un poco divertido de descubrimiento y arqueología ...