Herramientas de usuario

Diferencias

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

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
tutorial_de_cp_m [2022/08/03 23:32] perontutorial_de_cp_m [2026/04/21 16:09] (actual) – editor externo 127.0.0.1
Línea 5: Línea 5:
 ==== Introducción ==== ==== Introducción ====
 Sigue este tutorial para aprender algunos rudimentos de este sistema operativo clásico para [[microcomputadora#microcomputadoras hobbistas|microcomputadoras]].  Sigue este tutorial para aprender algunos rudimentos de este sistema operativo clásico para [[microcomputadora#microcomputadoras hobbistas|microcomputadoras]]. 
 +
 ===  Instala CP/M === ===  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: 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:
  
Línea 13: Línea 15:
 tar xvzf altair.tgz tar xvzf altair.tgz
 </code> </code>
 +
 Inicia ahora **CP/M 2.2** mediante: Inicia ahora **CP/M 2.2** mediante:
 +
 <code> <code>
 cd ~/altair/ cd ~/altair/
 sh cpm sh cpm
 </code> </code>
 +
 Tras unos instantes se iniciará una microcomputadora 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 |}}
-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>''+ 
 +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 33: Línea 40:
 Ya estás list@ para operar CP/M desde la unidad de diskette ''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. Detén esta máquina virtual con **Ctrl+AltGr+\**. Aparecerá el prompt ''sim>'' donde debes introducir el comando **exit**.+ 
 +Es __sumamente 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'' para salir.
  
 >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 65: Línea 73:
  
 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 77: Línea 89:
 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 83: Línea 95:
  
 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 ====
  
 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//. 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]] indicando un fichero de código fuente de extensión ''.asm''. Por ejemplo, para crear un programa llamado ''sl.asm'' en la unidad de diskette ''I:'', inbtroduce:+ 
 +Ejecuta el editor [[ed]] indicando un fichero de código fuente de extensión ''.asm''. Por ejemplo, para crear un programa llamado ''sl.asm'' en la unidad de diskette ''I:'', introduce: 
 <code> <code>
 A> ed i: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  
 </code> </code>
 +
 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 cada nuevas líneas (Ed indicará un 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>+ 
 +<file asm sl.asm>
         ORG     0100H         ORG     0100H
 BDOS    EQU     0005H BDOS    EQU     0005H
Línea 109: Línea 132:
         MSG$    DB      'COMPARTE TU SOFTWARE!$'         MSG$    DB      'COMPARTE TU SOFTWARE!$'
         END     START         END     START
-</code>+</file>
  
 Presiona **Ctrl+z** para detener el //modo inserción//, y luego guarda el cambio en el diskette y sal del editor //ed// con el comando ''*e'': Presiona **Ctrl+z** para detener el //modo inserción//, y luego guarda el cambio en el diskette y sal del editor //ed// con el comando ''*e'':
 +
 <code> <code>
 : *e : *e
 </code> </code>
 +
 Tras haber editado tu código fuente, pasa a la unidad de diskette ''I:''... Tras haber editado tu código fuente, pasa a la unidad de diskette ''I:''...
 +
 <code> <code>
 A> i: A> i:
 </code> </code>
 +
 === ¡Ensambla! === === ¡Ensambla! ===
 +
 Ensambla el código: Ensambla el código:
 +
 <code> <code>
-a> asm i:sl</code>+a> asm i:sl 
 +</code> 
 <code> <code>
 CP/M ASSEMBLER - VER 2.0 CP/M ASSEMBLER - VER 2.0
Línea 129: Línea 160:
 END OF ASSEMBLY END OF ASSEMBLY
 </code> </code>
 +
 El ensamblador creará una serie de ficheros nuevos en la unidad de disquete virtual.  El ensamblador creará una serie de ficheros nuevos en la unidad de disquete virtual. 
  
-Observa desensamblado para el microprocesador Z80 del código fuente con. +Observa desensamblado para el microprocesador Z80 del código fuente con
-<code>TYPE I:SL.PRN</code>+ 
 +<code> 
 +TYPE I:SL.PRN 
 +</code>
  
 Observa el volcado hexadecimal del mismo: Observa el volcado hexadecimal del mismo:
-<code>I> TYPE I:SL.HEX</code>+ 
 +<code> 
 +I> TYPE I:SL.HEX 
 +</code> 
 ===¡Compila!=== ===¡Compila!===
 +
 Compila el fichero: Compila el fichero:
 +
 <code>I> load i: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>I> 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>I> i:sl</code> <code>I> i:sl</code>
 +
 <code>COMPARTE TU SOFTWARE!</code> <code>COMPARTE TU SOFTWARE!</code>
 ==== Conclusión ==== ==== Conclusión ====

Este sitio web utiliza cookies para guardar datos esenciales de su actividad, como su autenticación. Al entrar acepta el uso de cookies.

Más información