tutorial_de_cp_m

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
tutorial_de_cp_m [2022/08/03 19:33] – [Programando en Ensablador Z80 en CP/M] perontutorial_de_cp_m [2024/02/29 17:28] (actual) – [Introducción] peron
Línea 1: Línea 1:
 ====== Tutorial de CP/M ====== ====== Tutorial de CP/M ======
 +Gracias al usuario ~anthk encontrarás una máquina virtual prearmada con [[CP/M]] libre.
  
-[[CP/M]] es un sistema operativo clásico para [[microcomputadora#microcomputadoras hobbistas|microcomputadoras]]. Gracias al usuario ~anthk encontrarás una máquina virtual prearmada. 
  
-Sigue este tutorial para aprender algunos rudimentos del mismo+==== Introducción ==== 
- +Sigue este tutorial para aprender algunos rudimentos de este sistema operativo clásico para [[microcomputadora#microcomputadoras hobbistas|microcomputadoras]].  
-En nuestro entorno compartido texto-plano o tu sistema Linux/BSD, descarga la **máquina virtual Altair 8800 con microprocesador Zilog Z80** del usuario //~anthk//, y la descomprímela:+===  Instala CP/M === 
 +En tu sistema Linux/BSD o en nuestro entorno compartido texto-plano descarga la **máquina virtual Altair 8800 con microprocesador Zilog Z80** del usuario //~anthk//, y descomprímela:
  
 <code bash> <code bash>
Línea 11: Línea 12:
 wget https://caja.texto-plano.xyz/anthk/emu/altair.tgz wget https://caja.texto-plano.xyz/anthk/emu/altair.tgz
 tar xvzf altair.tgz tar xvzf altair.tgz
-cd altair/src+</code> 
 +Inicia ahora **CP/M 2.2** mediante: 
 +<code> 
 +cd ~/altair/
 sh cpm sh cpm
 </code> </code>
-Tras unos instantes se iniciará una Altair 8800 con microprocesador Zilog Z80 virtualizada.+Tras unos instantes se iniciará una microcomputadora Altair 8800 con microprocesador Zilog Z80 (virtualizada).
 {{ :altair_8800.jpg?direct&200 |}} {{ :altair_8800.jpg?direct&200 |}}
-La misma realizará una devolución tu terminal y te presentará un prompt que indica la letra de unidad de diskette en la que te encuentras: ''A>''+Te presentará una devolución en tu terminal y un prompt que indica la letra de unidad de diskette en la que te encuentras: ''A>''
 <code> <code>
 Altair 8800 (Z80) simulator V4.0-0 Current        git commit id: $Format: Altair 8800 (Z80) simulator V4.0-0 Current        git commit id: $Format:
Línea 27: Línea 31:
 </code> </code>
  
-Esto te indicará que te encuentras en la unidad de disco A>+Ya estás list@ para operar CP/M desde la unidad de diskette ''A:''
  
-==== Salir del Emulador ==== +=== Salir de CP/M === 
-Es muy importante detener correctamente la Altair 8800 virtual. +Es muy importante detener correctamente la Altair 8800 emulada. Detén esta máquina virtual con el comando ''A:HALT'', o bien presionando **Ctrl+AltGr+\**. Aparecerá el prompt ''sim>'' donde debes introducir el comando **exit**.
- +
-Detén la máquina virtual con **Ctrl+AltGr+\**. En el prompt ''sim>'' introduce el comando **exit**.+
  
 >Si no detienes correctamente la máquina virtual, podría quedar consumiendo recursos innecesariamente en el sistema compartido. ¡Por favor sé responsable y detén su uso si no la utilizas! >Si no detienes correctamente la máquina virtual, podría quedar consumiendo recursos innecesariamente en el sistema compartido. ¡Por favor sé responsable y detén su uso si no la utilizas!
Línea 38: Línea 40:
 ==== CP/M inicial ==== ==== CP/M inicial ====
  
-Revisa la unidad de disco actual con el comando ''ls''.+Inicia nuevamente CP/M y lista el contenido de la unidad de diskette ''A:'' actualcon el comando ''DIR''. También puedes utilizar el listador avanzado ''LS''.
  
-Los ficheros ''COM'' son ejecutables de CP/M.+Entre los ficheros listados encontrarás algunos con la extensión ''.COM'': estos son ejecutables de CP/M.
  
-Revisa el contenido de un archivo con el comando ''type''. Por ejemplo, el <file>ELIZA.BAS</file>+Presenta en tu terminal el contenido de un fichero de la unidad ''A:'' con el comando ''TYPE''. Por ejemplo, el fichero ''CCPZ.TXT'':
  
 <code> <code>
-type a:eliza.bas+A> type a:ccpz.txt
 </code> </code>
-La Unidad de diskette ''B:'' contiene programas adicionales. 
  
-Pasa a la unidad B: y juega al **Colossal Cave Adventure** en CP/M.+>La Unidad de diskette ''B:'' contiene programas adicionales. La unidad de diskette ''I:'' contiene un diskette libre para que puedas crear tu propio contenido, en tanto que la unidad de diskette ''J:'' contiene algunos intérpretes y utilidades adicionales. 
 + 
 +Pasa a la unidad B: y juega al **Colossal Cave Adventure** para CP/M.
  
 <code bash> <code bash>
-b: +A> b: 
-adv+B> adv
 </code> </code>
  
-Sal de //adv// introduciendo ''exit''. +Podrás 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.
- +
-La unidad de disco ''D:'' contiene un disco libre para que puedas crear tu propio contenido.+
  
 ==== Programando BASIC en CP/M ==== ==== Programando BASIC en CP/M ====
-Puedes utilizar un intérprete de [[basic|MBASIC-80]] en CP/M.+Utiliza el intérprete de [[basic|MBASIC-80]] en CP/M.
  
 Ejecuta el intérprete: Ejecuta el intérprete:
 +
 <code>a:mbasic</code> <code>a:mbasic</code>
 +
 +{{ :mbasic_5.21.jpg?200|}}
 +
 <code> <code>
 BASIC-80 Rev. 5.21 BASIC-80 Rev. 5.21
Línea 74: Línea 79:
 </code> </code>
  
-Carga un programa ''[[ELIZA.BAS]]''+Carga un programa ''[[ELIZA.BAS]]'':
 <code>LOAD "ELIZA.BAS"</code> <code>LOAD "ELIZA.BAS"</code>
-...o bien introduce [[biblioteca_de_programas#programas_de_basic|algún programa escrito en BASIC]].+...o bien introduce [[biblioteca_de_programas#programas_en_basic|algún programa escrito en BASIC]].
 Listalo con ''LIST'' o ejecútalo con ''RUN''. Listalo con ''LIST'' o ejecútalo con ''RUN''.
  
Línea 82: Línea 87:
  
 Sal del intérprete MBASIC y vuelve al microsistema CP/M con el comando **''SYSTEM''**. Sal del intérprete MBASIC y vuelve al microsistema CP/M con el comando **''SYSTEM''**.
 +
 +Su material de referencia es el [[https://archive.org/stream/BASIC-80_MBASIC_Reference_Manual/BASIC-80_MBASIC_Reference_Manual_djvu.txt|Manual de MBASIC-80 (en inglés)]].
 +
 ==== Programando en Ensablador Z80 en CP/M ==== ==== Programando en Ensablador Z80 en CP/M ====
  
-Para programar en CP/M, debemos escribir la rutina en Ensamblador Z80, interpretarlo, y ejecutarlo. Para ello debemos escribir el programa con el editor [[ed]] en nemónicos de Zilog Z80, ensamblarlos con **asm** a hexadecimal, y usar **load** para convertir dicho archivo a un binario ejecutable con extensión ''.COM''.+El Ensamblador Z80 es el lenguaje de programación de alto nivel; para operar con él debemos escribir el código con el editor [[ed]] utilizando nemónicos de Zilog Z80, ensamblarlo con //asm//, y compilarlo con //load//.
 === ¡Programa! === === ¡Programa! ===
-Ejecuta el editor [[ed]] con un archivo de código fuente de extensión ''.asm'', creando un programa llamado ''sl.asm'' en la unidad de diskette ''B:'', de la siguiente manera:+Ejecuta el editor [[ed]] indicando un fichero de código fuente de extensión ''.asm''. Por ejemplopara crear un programa llamado ''sl.asm'' en la unidad de diskette ''I:'', inbtroduce:
 <code> <code>
-A> ed b:sl.asm+A> ed i:sl.asm
 </code> </code>
-El editor Ed te indicará que estás en un fichero nuevo:+El editor //ed// te indicará que estás en un fichero nuevo:
 <code> <code>
 NEW FILE   NEW FILE  
Línea 96: Línea 104:
 Pasa a //modo inserción// con ''*i''... Pasa a //modo inserción// con ''*i''...
 <code>: *i</code> <code>: *i</code>
-...e introduce estas 9 líneas de código fuente de Ensamblador Z80. Puedes pegarlas o bien utilizar la **tecla tab** para hacer las columnas. Utiliza la **tecla Intro** para confirmar las nuevas líneas (Ed te indicará el número de línea en las medida que las vayas agregando):+...e introduce estas 9 líneas de código fuente de Ensamblador Z80. Puedes pegarlas o bien utilizar la **tecla tab** para hacer las columnas. Utiliza la **tecla Intro** para confirmar cada nuevas líneas (Ed indicará un número de línea en las medida que las vayas agregando):
 <code asm> <code asm>
         ORG     0100H         ORG     0100H
Línea 113: Línea 121:
 : *e : *e
 </code> </code>
-Tras haber editado tu código fuente, pasa a la unidad de diskette ''B:''...+Tras haber editado tu código fuente, pasa a la unidad de diskette ''I:''...
 <code> <code>
-b:+A> i:
 </code> </code>
 === ¡Ensambla! === === ¡Ensambla! ===
 Ensambla el código: Ensambla el código:
 <code> <code>
-B> asm sl</code>+a> asm i:sl</code>
 <code> <code>
 CP/M ASSEMBLER - VER 2.0 CP/M ASSEMBLER - VER 2.0
Línea 130: Línea 138:
  
 Observa desensamblado para el microprocesador Z80 del código fuente con. Observa desensamblado para el microprocesador Z80 del código fuente con.
-<code>type b:sl.prn</code>+<code>TYPE I:SL.PRN</code>
  
 Observa el volcado hexadecimal del mismo: Observa el volcado hexadecimal del mismo:
-<code>type b:sl.hex</code>+<code>I> TYPE I:SL.HEX</code>
 ===¡Compila!=== ===¡Compila!===
 Compila el fichero: Compila el fichero:
-<code>LOAD B:SL</code>+<code>I> load i:sl</code>
  
 El compilador automático creará un ejecutable ''SL.COM''. Vuelca en pantalla el código objeto del programa binario ''SL.COM''. El compilador automático creará un ejecutable ''SL.COM''. Vuelca en pantalla el código objeto del programa binario ''SL.COM''.
-<code>DUMP SL.COM</code> +<code>I> dump sl.com</code> 
 ===¡Corre!=== ===¡Corre!===
 Y finalmente, ¡cargalo en memoria y córrelo! Y finalmente, ¡cargalo en memoria y córrelo!
-<code>b:sl</code>+<code>I> i:sl</code>
 <code>COMPARTE TU SOFTWARE!</code> <code>COMPARTE TU SOFTWARE!</code>
 +==== Conclusión ==== 
 +¡Enhorabuena! Has aprendido a utilizar CP/M en tu propia sesión en el entorno compartido. Compártelo en [[gab]] para que todos lo sepan: 
 +<code bash> 
 +gab -m "¡He terminado el tutorial de CP/M, y he compartido mi software!" 
 +</code>
  
  
  
  • tutorial_de_cp_m.1659555187.txt.gz
  • Última modificación: 2022/08/03 19:33
  • por peron