Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| tutorial_de_cp_m [2022/08/03 19:47] – peron | tutorial_de_cp_m [2026/04/21 16:09] (actual) – editor externo 127.0.0.1 | ||
|---|---|---|---|
| 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# | ||
| - | Sigue este tutorial para aprender algunos rudimentos | + | ==== Introducción ==== |
| + | Sigue este tutorial para aprender algunos rudimentos | ||
| - | En nuestro entorno compartido texto-plano | + | === 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 14: | ||
| wget https:// | wget https:// | ||
| tar xvzf altair.tgz | tar xvzf altair.tgz | ||
| - | cd altair/src | + | </ |
| + | |||
| + | Inicia ahora **CP/M 2.2** mediante: | ||
| + | |||
| + | < | ||
| + | cd ~/altair/ | ||
| sh cpm | sh cpm | ||
| </ | </ | ||
| - | Tras unos instantes se iniciará una Altair 8800 con microprocesador Zilog Z80 virtualizada. | + | |
| + | Tras unos instantes se iniciará una microcomputadora | ||
| {{ : | {{ : | ||
| - | La misma realizará | + | |
| + | Te presentará | ||
| < | < | ||
| Altair 8800 (Z80) simulator V4.0-0 Current | Altair 8800 (Z80) simulator V4.0-0 Current | ||
| Línea 27: | Línea 38: | ||
| </ | </ | ||
| - | 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 '' |
| - | ==== Salir del Emulador ==== | + | === Salir de CP/M === |
| - | Es muy importante detener correctamente la Altair 8800 virtual. | + | |
| - | Detén | + | Es __sumamente importante detener correctamente |
| >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 48: | ||
| ==== CP/M inicial ==== | ==== CP/M inicial ==== | ||
| - | Revisa | + | Inicia nuevamente CP/M y lista el contenido de la unidad de diskette '' |
| - | Los ficheros | + | Entre los ficheros |
| - | Revisa | + | Presenta en tu terminal |
| < | < | ||
| - | A> type a:eliza.bas | + | A> type a:ccpz.txt |
| </ | </ | ||
| - | La Unidad de diskette '' | ||
| - | Pasa a la unidad B: y juega al **Colossal Cave Adventure** | + | >La Unidad de diskette '' |
| + | |||
| + | Pasa a la unidad B: y juega al **Colossal Cave Adventure** | ||
| <code bash> | <code bash> | ||
| Línea 56: | Línea 67: | ||
| </ | </ | ||
| - | Podrás | + | Podrás |
| ==== 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: | ||
| + | |||
| < | < | ||
| + | |||
| + | {{ : | ||
| + | |||
| < | < | ||
| BASIC-80 Rev. 5.21 | BASIC-80 Rev. 5.21 | ||
| Línea 72: | Línea 87: | ||
| </ | </ | ||
| - | Carga un programa '' | + | Carga un programa '' |
| < | < | ||
| - | ...o bien introduce [[biblioteca_de_programas# | + | ...o bien introduce [[biblioteca_de_programas# |
| Listalo con '' | Listalo con '' | ||
| Línea 80: | Línea 95: | ||
| Sal del intérprete MBASIC y vuelve al microsistema CP/M con el comando **'' | Sal del intérprete MBASIC y vuelve al microsistema CP/M con el comando **'' | ||
| + | |||
| + | Su material de referencia es el [[https:// | ||
| + | |||
| ==== 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, | + | El Ensamblador Z80 es el lenguaje de programación de alto nivel; para operar con él debemos escribir el código |
| === ¡Programa! === | === ¡Programa! === | ||
| - | Ejecuta el editor [[ed]] | + | |
| + | Ejecuta el editor [[ed]] | ||
| < | < | ||
| A> ed i:sl.asm | A> ed i:sl.asm | ||
| </ | </ | ||
| - | El editor | + | |
| + | El editor | ||
| < | < | ||
| NEW FILE | NEW FILE | ||
| </ | </ | ||
| + | |||
| Pasa a //modo inserción// | Pasa a //modo inserción// | ||
| + | |||
| < | < | ||
| - | ...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 | + | |
| - | <code asm> | + | ...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 |
| + | |||
| + | <file asm sl.asm> | ||
| ORG 0100H | ORG 0100H | ||
| BDOS EQU 0005H | BDOS EQU 0005H | ||
| Línea 105: | Línea 132: | ||
| MSG$ DB ' | MSG$ DB ' | ||
| END START | END START | ||
| - | </code> | + | </file> |
| Presiona **Ctrl+z** para detener el //modo inserción//, | Presiona **Ctrl+z** para detener el //modo inserción//, | ||
| + | |||
| < | < | ||
| : *e | : *e | ||
| </ | </ | ||
| + | |||
| Tras haber editado tu código fuente, pasa a la unidad de diskette '' | Tras haber editado tu código fuente, pasa a la unidad de diskette '' | ||
| + | |||
| < | < | ||
| A> i: | A> i: | ||
| </ | </ | ||
| + | |||
| === ¡Ensambla! === | === ¡Ensambla! === | ||
| + | |||
| Ensambla el código: | Ensambla el código: | ||
| + | |||
| < | < | ||
| - | a> asm i: | + | a> asm i:sl |
| + | </ | ||
| < | < | ||
| CP/M ASSEMBLER - VER 2.0 | CP/M ASSEMBLER - VER 2.0 | ||
| Línea 125: | Línea 160: | ||
| END OF ASSEMBLY | END OF ASSEMBLY | ||
| </ | </ | ||
| + | |||
| 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: |
| - | < | + | |
| + | < | ||
| + | TYPE I:SL.PRN | ||
| + | </ | ||
| Observa el volcado hexadecimal del mismo: | Observa el volcado hexadecimal del mismo: | ||
| - | < | + | |
| + | < | ||
| + | I> TYPE I:SL.HEX | ||
| + | </ | ||
| ===¡Compila!=== | ===¡Compila!=== | ||
| + | |||
| Compila el fichero: | Compila el fichero: | ||
| + | |||
| < | < | ||
| El compilador automático creará un ejecutable '' | El compilador automático creará un ejecutable '' | ||
| + | |||
| < | < | ||
| + | |||
| ===¡Corre!=== | ===¡Corre!=== | ||
| + | |||
| Y finalmente, ¡cargalo en memoria y córrelo! | Y finalmente, ¡cargalo en memoria y córrelo! | ||
| + | |||
| < | < | ||
| - | < | ||
| + | < | ||
| + | ==== 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!" | ||
| + | </ | ||
