Tutorial de CP/M
Gracias al usuario ~anthk encontraras una maquina virtual prearmada con CP/M libre.
Introduccion
Sigue este tutorial para aprender algunos rudimentos de este sistema operativo clasico para microcomputadoras.
Instala CP/M
En tu sistema Linux/BSD o en nuestro entorno compartido texto-plano descarga la maquina virtual Altair 8800 con microprocesador Zilog Z80 del usuario ~anthk, y descomprimela:
cd ~
wget https://caja.texto-plano.xyz/anthk/emu/altair.tgz
tar xvzf altair.tgz
Inicia ahora CP/M 2.2 mediante:
cd ~/altair/
sh cpm
Tras unos instantes se iniciara una microcomputadora Altair 8800 con
microprocesador Zilog Z80 (virtualizada). Te presentara una devolucion en tu
terminal y un prompt que indica la letra de unidad de diskette en la que
te encuentras:
A>
Altair 8800 (Z80) simulator V4.0-0 Current git commit id: $Format:
/home/fulana/altair/src/cpm22/cpm2-8> set cpu 2k
Non-existent parameter
64K CP/M Version 2.2 (SIMH ALTAIR 8800, BIOS V1.27, 2 HD, 02-May-2009)
A>
Ya estas list@ para operar CP/M desde la unidad de diskette
A:
.
Salir de CP/M
Es muy importante detener correctamente la Altair 8800 emulada. Deten
esta maquina virtual con el comando A:HALT
, o bien
presionando Ctrl+AltGr+**. Aparecera el prompt
sim>
donde debes introducir el comando
exit**.
Si no detienes correctamente la maquina virtual, podria quedar consumiendo recursos innecesariamente en el sistema compartido. ¡Por favor se responsable y deten su uso si no la utilizas!
CP/M inicial
Inicia nuevamente CP/M y lista el contenido de la unidad de diskette
A:
actual, con el comando DIR
. Tambien puedes
utilizar el listador avanzado LS
.
Entre los ficheros listados encontraras algunos con la extension
.COM
: estos son ejecutables de CP/M.
Presenta en tu terminal el contenido de un fichero de la unidad
A:
con el comando TYPE
. Por ejemplo, el
fichero CCPZ.TXT
:
A> type a:ccpz.txt
La Unidad de diskette
B:
contiene programas adicionales. La unidad de disketteI:
contiene un diskette libre para que puedas crear tu propio contenido, en tanto que la unidad de disketteJ:
contiene algunos interpretes y utilidades adicionales.
Pasa a la unidad B: y juega al Colossal Cave Adventure para CP/M.
A> b:
B> adv
Podras abandonar esta aventura de texto introduciendo el comando
exit
. Cuando te indique si deseas abandonar la aventura,
introduce y para volver al microsistema CP/M.
Programando BASIC en CP/M
Utiliza el interprete de MBASIC-80 en CP/M.
Ejecuta el interprete:
a:mbasic
BASIC-80 Rev. 5.21
[CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
32824 Bytes free
Ok
Carga un programa ELIZA.BAS
:
LOAD "ELIZA.BAS"
...o bien introduce algun programa
escrito en BASIC. Listalo con LIST
o ejecutalo con
RUN
.
Puedes utilizar Ctrl+c para interrumpir un programa BASIC.
Sal del interprete MBASIC y vuelve al microsistema CP/M con el
comando SYSTEM
.
Su material de referencia es el Manual de MBASIC-80 (en ingles).
Programando en Ensablador Z80 en CP/M
El Ensamblador Z80 es el lenguaje de programacion de alto nivel; para operar con el debemos escribir el codigo con el editor ed utilizando nemonicos de Zilog Z80, ensamblarlo con asm, y compilarlo con load.
¡Programa!
Ejecuta el editor ed indicando un fichero de
codigo fuente de extension .asm
. Por ejemplo, para crear un
programa llamado sl.asm
en la unidad de diskette
I:
, inbtroduce:
A> ed i:sl.asm
El editor ed te indicara que estas en un fichero nuevo:
NEW FILE
Pasa a modo insercion con *i
...
: *i
...e introduce estas 9 lineas de codigo fuente de Ensamblador Z80. Puedes pegarlas o bien utilizar la tecla tab para hacer las columnas. Utiliza la tecla Intro para confirmar cada nuevas lineas (Ed indicara un numero de linea en las medida que las vayas agregando):
ORG 0100H
BDOS EQU 0005H
START: MVI C,9
LXI D,MSG$
CALL BDOS
RET
MSG$ DB 'COMPARTE TU SOFTWARE!$'
END START
Presiona Ctrl+z para detener el modo
insercion, y luego guarda el cambio en el diskette y sal del editor
ed con el comando *e
:
: *e
Tras haber editado tu codigo fuente, pasa a la unidad de diskette
I:
...
A> i:
¡Ensambla!
Ensambla el codigo:
a> asm i:sl
CP/M ASSEMBLER - VER 2.0
011F
000H USE FACTOR
END OF ASSEMBLY
El ensamblador creara una serie de ficheros nuevos en la unidad de disquete virtual.
Observa desensamblado para el microprocesador Z80 del codigo fuente con.
TYPE I:SL.PRN
Observa el volcado hexadecimal del mismo:
I> TYPE I:SL.HEX
¡Compila!
Compila el fichero:
I> load i:sl
El compilador automatico creara un ejecutable SL.COM
.
Vuelca en pantalla el codigo objeto del programa binario
SL.COM
.
I> dump sl.com
¡Corre!
Y finalmente, ¡cargalo en memoria y correlo!
I> i:sl
COMPARTE TU SOFTWARE!
Conclusion
¡Enhorabuena! Has aprendido a utilizar CP/M en tu propia sesion en el entorno compartido. Compartelo en gab para que todos lo sepan:
gab -m "¡He terminado el tutorial de CP/M, y he compartido mi software!"