mirror of https://github.com/zxdos/zxuno.git
Merge branch 'master' of https://github.com/antoniovillena/zxuno
This commit is contained in:
commit
21063ecead
|
@ -1,10 +1,10 @@
|
|||
= ZXUNO+ Manual
|
||||
:author: kounch
|
||||
:revnumber: 0.13
|
||||
:revnumber: 1.0.0
|
||||
:doctype: book
|
||||
:front-cover-image: image:img/portadauno.jpg[]
|
||||
:email: kounch@users.noreply.github.com
|
||||
:Revision: 0.11
|
||||
:Revision: 1.0
|
||||
:description: English ZXUNO+ Manual
|
||||
:keywords: Manual, English, ZXUNO+
|
||||
:icons: font
|
||||
|
@ -1012,7 +1012,7 @@ Once downloaded and extracted, the contents of `BIN` and `SYS` directories have
|
|||
|
||||
Copy `ESXMMC.BIN` (or `ESXMMC.ROM`, depending on version) to the root of the SD card.
|
||||
|
||||
Start ZXUNO+ with the card inserted and press `F2` to access BIOS setup. Select the `Upgrade` menu and choose __"Upgrade esxdos for ZX"__. In the dialog that appears choose __"SD file"__ and, when it asks __"Load from SD"__ answer __"Yes"__ to the question __"Are you sure?"__. The content of the file `ESXDOS...` will be read, written to the flash storage and you will be notified when it is updated.
|
||||
Start ZXUNO+ with the card inserted and press `F2` to access BIOS setup. Select the `Upgrade` menu and choose __"Upgrade esxdos for ZX"__. In the dialog that appears choose __"SD file"__ and, when it asks __"Load from SD"__ answer __"Yes"__ to the question __"Are you sure?"__. The content of the file `ESXMMC...` will be read, written to the flash storage and you will be notified when it is updated.
|
||||
|
||||
Do a Hard-reset, or turn it off and on.
|
||||
|
||||
|
@ -1169,17 +1169,22 @@ Main features:
|
|||
|
||||
==== SD card format
|
||||
|
||||
And SD card with the first partition in FAT16 or FAT32 format is needed to load software from it. A special ROM inside the core (Smart SPI)
|
||||
An SD card with the first partition in FAT16 or FAT32 format is needed to load software from it. A special ROM inside the core (Smart SPI)
|
||||
reads a special file with disk images inside.
|
||||
|
||||
The file must have the name `BEEB.MMB` and it has to be in the root directory. You can make one with `MMBImager` for Windows, available at https://guest:zxuno@svn.zxuno.com/svn/zxuno/cores/Acorn_electron/test1/varios/[ZX-Uno SVN Repository] (Usuario `guest`, contraseña `zxuno`) or with MMB/SSD Utils in perl, available at https://github.com/sweharris/MMB_Utils[GitHub].
|
||||
|
||||
The file has to be whole across the SD (not fragmented). You can use some any program that can defrag files or FAT filesystems or use the following method:
|
||||
The file has to be whole across the SD (not fragmented). You can use a program that can defrag files or FAT filesystems (like https://www.ccleaner.com/defraggler[Defraggler for Windows]) or use the following method:
|
||||
|
||||
. Format the first SD partition using FAT16 or FAT32, but *NOT with quick format* (when using Windos, uncheck that option).
|
||||
. Copy `BEEM.MB` making sure it is the *FIRST file* being copied.
|
||||
. If you want you can add any other file to the SD (e.g. for using with other cores), but keep *ALWAYS* `BEEB.MMB` as the first file copied to the card.
|
||||
|
||||
[TIP]
|
||||
====
|
||||
Since the `MMB` file has the same name as the one for <<#_bbc_micro,BBC Micro core>>, you can use another core with full access to the SD card (like a a ZX Spectrum core with esxdos), with both `MMB` files with a different name, and then rename the one for Acorn Electron as `BEEB.MMB` before running this core
|
||||
====
|
||||
|
||||
==== Keyboard
|
||||
|
||||
===== Special keys and buttons
|
||||
|
@ -1212,7 +1217,7 @@ Disc 0 from the image file is mounted automatically, and you can see it's conten
|
|||
*CAT
|
||||
----
|
||||
|
||||
To load, for example, the mene available with some image files available on internet, use the command:
|
||||
To load, for example, the menu available with some image files available on internet, use the command:
|
||||
|
||||
[source]
|
||||
----
|
||||
|
@ -1564,6 +1569,115 @@ The following options are available:
|
|||
|
||||
<<<
|
||||
|
||||
=== BBC Micro
|
||||
|
||||
The https://en.wikipedia.org/wiki/BBC_Micro[BBC Micro], was a series of microcomputers and associated peripherals designed and built by the Acorn Computer company in the 1980s for the BBC Computer Literacy Project, operated by the British Broadcasting Corporation.
|
||||
|
||||
The ZX-Uno core has been made by Quest y and enhanced after by azesmbog y hoglet.
|
||||
|
||||
Some of its features are:
|
||||
|
||||
- RGB and VGA (with optional scanlines) video output
|
||||
- SD/MMC support, using `.MMB` files
|
||||
- PS/2 keyboard
|
||||
- Joystick support on port 1 (Emulating an analog joy)
|
||||
- sn76489 sound chip implementation from https://github.com/wsoltys/pacedev[PACE project] (Programmable Arcade Circuit Emulation)
|
||||
|
||||
==== SD card format
|
||||
|
||||
An SD card with the first partition in FAT16 or FAT32 format is needed to load software. A special ROM inside the core (MMFS in the more recent core versions, Smart SPI on older ones) which reads a `BEEB.MMB` file with disk images inside.
|
||||
|
||||
The file must have the name `BEEB.MMB` and it has to be in the root directory. You can make one with `MMBImager` for Windows, available at https://guest:zxuno@svn.zxuno.com/svn/zxuno/cores/Acorn_electron/test1/varios/[ZX-Uno SVN Repository] (Usuario `guest`, contraseña `zxuno`) or with MMB/SSD Utils in perl, available at Github https://github.com/sweharris/MMB_Utils[here] or https://github.com/sweharris/MMB_Utils[here].
|
||||
|
||||
The file has to be whole across the SD (not fragmented). You can use a program that can defrag files or FAT filesystems (like https://www.ccleaner.com/defraggler[Defraggler for Windows]) or use the following method:
|
||||
|
||||
. Format the first SD partition using FAT16 or FAT32, but *NOT with quick format* (when using Windos, uncheck that option).
|
||||
. Copy `BEEM.MB` making sure it is the *FIRST file* being copied.
|
||||
. If you want you can add any other file to the SD (e.g. for using with other cores), but keep *ALWAYS* `BEEB.MMB` as the first file copied to the card.
|
||||
|
||||
[TIP]
|
||||
====
|
||||
Since the `MMB` file has the same name as the one for <<#_acorn_electron,Acorn Electron core>>, you can use another core with full access to the SD card (like a a ZX Spectrum core with esxdos), with both `MMB` files with a different name, and then rename the one for BBC Micro as `BEEB.MMB` before running this core
|
||||
====
|
||||
|
||||
<<<
|
||||
|
||||
==== Keyboard
|
||||
|
||||
[.text-center]
|
||||
image:img/keyboardbbc.png[pdfwidth=80%]
|
||||
|
||||
===== Special keys and buttons
|
||||
|
||||
While the core is running:
|
||||
|
||||
- `Scroll Lock`: change between RGB and VGA video mode
|
||||
- `-` (numeric keyboard): Enable or disable scanlines in VGA mode
|
||||
- `F12`: Reset
|
||||
- `Shift+F12`: Soft Reset trying to load automatically the selected disk at `BEEB.MMB`
|
||||
- `Ctrl+Alt+Backspace`: Hard reset. Backspace is the delete key, located in the top-right portion of the keyboard, above `Enter`.
|
||||
|
||||
<<<
|
||||
|
||||
==== Basic guide
|
||||
|
||||
[.text-center]
|
||||
image:img/bbcmicro.png[pdfwidth=80%]
|
||||
|
||||
Once the SD card is inserted and the core running, if `BEEB.MMB` file was created correctly, on start, you should see:
|
||||
|
||||
[source]
|
||||
----
|
||||
BBC Computer 32k
|
||||
Model B MMFS
|
||||
BASIC
|
||||
>
|
||||
----
|
||||
|
||||
Or, for a core with Smart SPI
|
||||
|
||||
[source]
|
||||
----
|
||||
BBC Computer 32k
|
||||
Smart SPI
|
||||
BASIC
|
||||
----
|
||||
|
||||
Disc 0 from the image file is mounted automatically, and you can see it's contents using the command:
|
||||
|
||||
[source]
|
||||
----
|
||||
*CAT
|
||||
----
|
||||
|
||||
To load, for example, a file name `MENU`, use the command:
|
||||
|
||||
[source]
|
||||
----
|
||||
*MENU
|
||||
----
|
||||
|
||||
|
||||
To show the list of available discs inside `BEEB.MMB` file:
|
||||
|
||||
[source]
|
||||
----
|
||||
*DCAT
|
||||
----
|
||||
|
||||
To load a particular virtual disc:
|
||||
|
||||
[source]
|
||||
----
|
||||
*DIN discnum
|
||||
----
|
||||
|
||||
[TIP]
|
||||
====
|
||||
Remember that, after inserting a disc, if it has automatic boot, you can start it pressing `Shift+F12`.
|
||||
====
|
||||
|
||||
<<<
|
||||
=== Camputers Lynx
|
||||
|
||||
https://en.wikipedia.org/wiki/Camputers_Lynx[The Lynx] was an 8-bit British home computer that was first released in early 1983 as a 48kB model.Several models were available with 48kB, 96kB or 128 kB RAM.
|
||||
|
@ -2555,6 +2669,63 @@ See the <<#_cores,corresponding section>> for instructions of how to install the
|
|||
|
||||
<<<
|
||||
|
||||
=== Vectrex
|
||||
|
||||
|
||||
The https://en.wikipedia.org/wiki/Vectrex[Vectrex] was a vector display-based home video game console. It also had an integrated monochrome CRT monitor.
|
||||
|
||||
The ZX-Uno core is based on https://sourceforge.net/projects/darfpga/files/Software%20VHDL/vectrex/[DarFPGA`s original work].
|
||||
|
||||
Some of its features are:
|
||||
|
||||
- VGA video out
|
||||
- OSD Menu
|
||||
- Joystick and keyboard controles
|
||||
- Maximum supported ROM size: 8K
|
||||
|
||||
==== SD card format
|
||||
|
||||
You need a SD card with the first partition in FAT16 or FAT32 format to store `BIN` or `VEC` files of the software to to load. Those files can be inside subdirectories.
|
||||
|
||||
At https://archive.org/details/GCE_Vectrex_TOSEC_2012_04_23[archive.org] you can obtain software for Vectrex.
|
||||
|
||||
See the <<#_cores,corresponding section>> for instructions of how to install the Vectrex core in ZXUNO+.
|
||||
|
||||
==== Keyboard
|
||||
|
||||
===== Special keys and buttons
|
||||
|
||||
During the core execution:
|
||||
|
||||
- Cursor or joystick: Directional controls
|
||||
- `Z`: Fire button 1
|
||||
- `X` or main joystick button: Fire button 2
|
||||
- `C` or secondary joystick button: Fire button 3
|
||||
- `V`: Fire button 4
|
||||
- `Esc`: Show or hide the menu
|
||||
- `Ctrl+Alt+Backspace`: Hard reset
|
||||
- `F12`: Reset
|
||||
|
||||
<<<
|
||||
|
||||
==== Basic guide
|
||||
|
||||
By default, Vectrex starts with the built in game (Mine Storm).
|
||||
|
||||
[.text-center]
|
||||
image:img/vectrex.png[pdfwidth=80%]
|
||||
|
||||
Pressing `Esc` shows or hides the configuration menu. Cursor keys and `Enter` are used to select and choose menu options.
|
||||
|
||||
The following options are available:
|
||||
|
||||
- Reset core
|
||||
- Disable bluish color and enable white color for vectors
|
||||
- Load ROM file from SD
|
||||
- Exit the menu
|
||||
|
||||
<<<
|
||||
|
||||
=== Videopac
|
||||
|
||||
https://en.wikipedia.org/wiki/Magnavox_Odyssey_2[Philips Videopac], also known as Magnavox Odyssey², Philips Videopac G7000 o Philips Odyssey², is a second generation home video game console that was released in 1978.
|
||||
|
|
Binary file not shown.
|
@ -1,10 +1,10 @@
|
|||
= Manual de ZXUNO+
|
||||
:author: kounch
|
||||
:revnumber: 0.13
|
||||
:revnumber: 1.0.0
|
||||
:doctype: book
|
||||
:front-cover-image: image:img/portadauno.jpg[]
|
||||
:email: kounch@users.noreply.github.com
|
||||
:Revision: 0.11
|
||||
:Revision: 1.0
|
||||
:description: Manual en castellano de ZXUNO+
|
||||
:keywords: Manual, Castellano, ZXUNO+
|
||||
:icons: font
|
||||
|
@ -1020,7 +1020,7 @@ Una vez descargado y descomprimido, se ha de copiar, a la raíz de la tarjeta, e
|
|||
|
||||
Copiar `ESXMMC.BIN` (o `ESXMMC.ROM`, según la versión) en la raíz de la tarjeta SD.
|
||||
|
||||
Iniciar el ZXUNO+ con la tarjeta insertada y pulsar F2 para acceder a la configuración de BIOS. Seleccionar el menú `Upgrade` y elegir __"Upgrade esxdos for ZX"__. En el diálogo que aparece elegir __"SD file"__ y, cuando pregunte __"Load from SD"__ contestar __"Yes"__ a la pregunta __"Are you sure?"__. Se leerá el contenido del fichero `ESXDOS...`, se grabará en la flash y avisará cuando esté actualizado.
|
||||
Iniciar el ZXUNO+ con la tarjeta insertada y pulsar F2 para acceder a la configuración de BIOS. Seleccionar el menú `Upgrade` y elegir __"Upgrade esxdos for ZX"__. En el diálogo que aparece elegir __"SD file"__ y, cuando pregunte __"Load from SD"__ contestar __"Yes"__ a la pregunta __"Are you sure?"__. Se leerá el contenido del fichero `ESXMMC...`, se grabará en la flash y avisará cuando esté actualizado.
|
||||
|
||||
Realizar un Hard-reset, o apagar y encender.
|
||||
|
||||
|
@ -1197,12 +1197,17 @@ Se debe de utilizar una tarjeta SD con la primera partición en formato FAT16 o
|
|||
|
||||
El archivo debe llamarse `BEEB.MMB` y estar en el directorio raíz. Se puede crear con la utilidad `MMBImager` para Windows, disponible en https://guest:zxuno@svn.zxuno.com/svn/zxuno/cores/Acorn_electron/test1/varios/[el repositorio SVN de ZX-Uno] (Usuario `guest`, contraseña `zxuno`) o con la utilidades MMB/SSD en perl, disponibles en https://github.com/sweharris/MMB_Utils[GitHub].
|
||||
|
||||
El fichero debe estar sin fragmentar en la SD. Se puede utilizar algún programa que defragmente ficheros o sistemas de archivos FAT, o bien usar el siguiente método:
|
||||
El fichero debe estar sin fragmentar en la SD. Se puede utilizar algún programa que defragmente ficheros o sistemas de archivos FAT (como https://www.ccleaner.com/defraggler[Defraggler para Windows]), o bien usar el siguiente método:
|
||||
|
||||
. Formatear la primera partición de la SD en FAT16 o FAT32, pero *NO en formato rápido* (en Windows, desmarcar la casilla de formato rápido).
|
||||
. Copiar a la SD el archivo `BEEB.MMB`, de modo que este sea el *PRIMER archivo* que se copia a la SD.
|
||||
. Si se desea, ya se pueden copiar otros archivos a la SD para usar con otros cores, pero *SIEMPRE debe mantenerse el `BEEB.MMB`* como el primero que se copió a la SD.
|
||||
|
||||
[TIP]
|
||||
====
|
||||
Como el fichero `MMB` se llama igual que el que utiliza el <<#_bbc_micro,core de BBC Micro>>, se puede usar otro core con acceso completo a la tarjeta SD (Como uno de ZX Spectrum con esxDOS), teniendo dos ficheros `MMB` distintos, y renombrar el de Acorn Electron como `BEEB.MMB` antes de ejecutar este core
|
||||
====
|
||||
|
||||
==== Teclado
|
||||
|
||||
===== Teclas especiales y botones
|
||||
|
@ -1573,6 +1578,115 @@ En él se pueden activar, desactivar o configurar las siguientes opciones:
|
|||
|
||||
<<<
|
||||
|
||||
=== BBC Micro
|
||||
|
||||
El https://es.wikipedia.org/wiki/BBC_Micro[BBC Micro], fue uno de los primeros ordenadores domésticos, diseñado y construido por Acorn Computers para la British Broadcasting Corporation (BBC).
|
||||
|
||||
El core para ZX-Uno ha sido creado por Quest y mejorado posteriormente por azesmbog y hoglet.
|
||||
|
||||
Algunas de sus características son:
|
||||
|
||||
- Salida vídeo RGB y VGA (con scanlines opcionales)
|
||||
- Soporte SD/MMC, vía archivos de imagen `.MMB`
|
||||
- Teclado PS/2 (mapeado a teclado inglés)
|
||||
- Soporte de joystick en el puerto 1 (Emula Joy analógico)
|
||||
- Implementación del chip de sonido sn76489 desde el https://github.com/wsoltys/pacedev[proyecto PACE] (Programmable Arcade Circuit Emulation)
|
||||
|
||||
==== Formato de Tarjeta SD
|
||||
|
||||
Se debe de utilizar una tarjeta SD con la primera partición en formato FAT16 o FAT32. El core usa una ROM especial (MMFS en los cores más recientes, Smart SPI en los más antiguos) que lee de la SD un archivo `BEEB.MMB`, que contiene imágenes de disquete.
|
||||
|
||||
El archivo debe llamarse exactamente `BEEB.MMB` y estar en el directorio raíz. Se puede crear con la utilidad `MMBImager` para Windows, disponible en https://guest:zxuno@svn.zxuno.com/svn/zxuno/cores/Acorn_electron/test1/varios/[el repositorio SVN de ZX-Uno] (Usuario `guest`, contraseña `zxuno`) o con la utilidades MMB/SSD en perl, disponibles en Github https://github.com/hoglet67/MMFS/tree/master/tools/mmb_utils[aquí] o https://github.com/sweharris/MMB_Utils[aquí].
|
||||
|
||||
El fichero `MMB` debe estar sin fragmentar en la SD. Se puede utilizar algún programa que defragmente ficheros o sistemas de archivos FAT (como https://www.ccleaner.com/defraggler[Defraggler para Windows]), o bien usar el siguiente método:
|
||||
|
||||
. Formatear la primera partición de la SD en FAT16 o FAT32, pero *NO en formato rápido* (en Windows, desmarcar la casilla de formato rápido).
|
||||
. Copiar a la SD el archivo `BEEB.MMB`, de modo que este sea el *PRIMER archivo* que se copia a la SD.
|
||||
. Si se desea, ya se pueden copiar otros archivos a la SD para usar con otros cores, pero *SIEMPRE debe mantenerse el `BEEB.MMB`* como el primero que se copió a la SD.
|
||||
|
||||
[TIP]
|
||||
====
|
||||
Como el fichero `MMB` se llama igual que el que utiliza el <<#_acorn_electron,core de Acorn Electron>>, se puede usar otro core con acceso completo a la tarjeta SD (Como uno de ZX Spectrum con esxDOS), teniendo dos ficheros `MMB` distintos, y renombrar el de BBC Micro como `BEEB.MMB` antes de ejecutar este core
|
||||
====
|
||||
|
||||
<<<
|
||||
|
||||
==== Teclado
|
||||
|
||||
[.text-center]
|
||||
image:img/keyboardbbc.png[pdfwidth=80%]
|
||||
|
||||
===== Teclas especiales y botones
|
||||
|
||||
Durante la ejecución del core:
|
||||
|
||||
- `Bloq. Despl.`: Cambia de modo video compuesto a VGA y viceversa.
|
||||
- `-` (del teclado numérico): Activa o desactiva scanlines
|
||||
- `F12`: Reset
|
||||
- `Mayús+F12`: Soft Reset intentando cargar automáticamente el disco seleccionado en `BEEB.MMB`
|
||||
- `Ctrl+Alt+Backspace`: Hard reset. Backspace es la tecla de borrar hacia atrás, encima de `Enter`.
|
||||
|
||||
<<<
|
||||
|
||||
==== Guía básica
|
||||
|
||||
[.text-center]
|
||||
image:img/bbcmicro.png[pdfwidth=80%]
|
||||
|
||||
Una vez introducida la SD en el ZX-UNO y arrancado el core, si el archivo de `BEEB.MMB` está correctamente creado, al arrancar debería aparecer:
|
||||
|
||||
[source]
|
||||
----
|
||||
BBC Computer 32k
|
||||
Model B MMFS
|
||||
BASIC
|
||||
>
|
||||
----
|
||||
|
||||
O bien, si es un core con Smart SPI
|
||||
|
||||
[source]
|
||||
----
|
||||
BBC Computer 32k
|
||||
Smart SPI
|
||||
BASIC
|
||||
----
|
||||
|
||||
Automáticamente se monta el disco 0 de la imagen, y se puede ver su contenido con el comando:
|
||||
|
||||
[source]
|
||||
----
|
||||
*CAT
|
||||
----
|
||||
|
||||
Para cargar, por ejemplo, un programa llamado `MENU`, y que esté en el disco usar el comando:
|
||||
|
||||
[source]
|
||||
----
|
||||
*MENU
|
||||
----
|
||||
|
||||
Para ver una lista de los discos disponibles en el fichero `BEEB.MMB`:
|
||||
|
||||
[source]
|
||||
----
|
||||
*DCAT
|
||||
----
|
||||
|
||||
Para insertar un disco concreto:
|
||||
|
||||
[source]
|
||||
----
|
||||
*DIN numerodisco
|
||||
----
|
||||
|
||||
[TIP]
|
||||
====
|
||||
Recordar, tras insertar un disco, que si este tiene arranque automático, se puede iniciar pulsando `Mayús+F12`.
|
||||
====
|
||||
|
||||
<<<
|
||||
|
||||
=== Camputers Lynx
|
||||
|
||||
|
||||
|
@ -2548,7 +2662,7 @@ image:img/sms.png[pdfwidth=70%]
|
|||
|
||||
=== SmartROM
|
||||
|
||||
https://github.com/Utodev/smartROM[SmartROM] es un nuevo firmware para el core de Spectrum del ZX-UNO pensado para funcionar en placas FPGA que no tengan flash, o en las que no se pueda usar. Está basado en una versión del core de McLeod hay había hecho un core "sin flash", que contiene la ROM y ESXDOS dentro del propio core. El proyecto SmartROM incluye una versión ligeramente modificada de ese core, junto con un fichero que en la SD que permite cargar una ROM de Spectrum distinta y, además, cambiar algunos ajustes.
|
||||
https://github.com/Utodev/smartROM[SmartROM] es un nuevo firmware para el core de Spectrum del ZX-UNO pensado para funcionar en placas FPGA que no tengan flash, o en las que no se pueda usar. Está basado en una versión del core de McLeod hay había hecho un core "sin flash", que contiene la ROM y esxdos dentro del propio core. El proyecto SmartROM incluye una versión ligeramente modificada de ese core, junto con un fichero que en la SD que permite cargar una ROM de Spectrum distinta y, además, cambiar algunos ajustes.
|
||||
|
||||
==== Formato de Tarjeta SD
|
||||
|
||||
|
@ -2562,6 +2676,62 @@ Si no estuviera ya, <<#_cores,instalar el core smartROM>> en el ZXUNO+.
|
|||
|
||||
<<<
|
||||
|
||||
=== Vectrex
|
||||
|
||||
La https://es.wikipedia.org/wiki/Vectrex[Vectrex] era una consola con pantalla integrada y con los gráficos basados en vectores, en vez de píxeles.
|
||||
|
||||
El core para ZX-Uno está basado en el https://sourceforge.net/projects/darfpga/files/Software%20VHDL/vectrex/[trabajo original de DarFPGA].
|
||||
|
||||
Algunas de sus características son:
|
||||
|
||||
- Soporte VGA
|
||||
- Menú OSD
|
||||
- Controles vía teclado y vía joystick
|
||||
- Tamaño máximo de la ROM a cargar: 8K
|
||||
|
||||
==== Formato de Tarjeta SD
|
||||
|
||||
Se debe de utilizar una tarjeta SD, con la primera partición en formato FAT16 o FAT32, para almacenar los ficheros con las imágenes (extensión `.BIN` o `.VEC`) de los juegos que se desee cargar. Los ficheros pueden estar en subdirectorios.
|
||||
|
||||
En https://archive.org/details/GCE_Vectrex_TOSEC_2012_04_23[archive.org] se puede obtener software para Vectrex.
|
||||
|
||||
Si no estuviera ya, <<#_cores,instalar el core de Vectrex>> en el ZXUNO+.
|
||||
|
||||
==== Teclado
|
||||
|
||||
===== Teclas especiales y botones
|
||||
|
||||
Durante la ejecución del core:
|
||||
|
||||
- Cursor o el joystick 1: Controles de dirección
|
||||
- `Z`: Botón de disparo 1
|
||||
- `X` o el botón principal de joystick: Botón de disparo 2
|
||||
- `C` o el botón secundario de joystick: Botón de disparo 3
|
||||
- `V`: Botón de disparo 4
|
||||
- `Esc`: para mostrar u ocultar el menú.
|
||||
- `Ctrl+Alt+Backspace`: Hard reset.
|
||||
- `F12`: Reset
|
||||
|
||||
<<<
|
||||
|
||||
==== Guía básica
|
||||
|
||||
Por defecto la Vectrex arranca con el juego que trae en memoria de fábrica (Mine Storm).
|
||||
|
||||
[.text-center]
|
||||
image:img/vectrex.png[pdfwidth=80%]
|
||||
|
||||
Pulsando `Esc` se muestra el menú de configuración. Se usan las teclas de cursor y `Enter` para elegir y seleccionar en el menú.
|
||||
|
||||
En él se pueden activar, desactivar o configurar las siguientes opciones:
|
||||
|
||||
- Reiniciar el core (Reset)
|
||||
- Utilizar blanco neutro para los vectores (Disable bluish vectors)
|
||||
- Cargar un fichero desde la SD (Load ROM)
|
||||
- Salir del menú (Exit)
|
||||
|
||||
<<<
|
||||
|
||||
=== Videopac
|
||||
|
||||
La https://es.wikipedia.org/wiki/Magnavox_Odyssey²[Philips Videopac], también conocida como Magnavox Odyssey², Philips Videopac G7000 o Philips Odyssey² es una videoconsola lanzada en 1978.
|
||||
|
|
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
Binary file not shown.
After Width: | Height: | Size: 298 KiB |
Binary file not shown.
After Width: | Height: | Size: 436 KiB |
|
@ -0,0 +1,73 @@
|
|||
# SPDX-FileCopyrightText: 2021 Ivan Tatarinov <ivan-tat@ya.ru>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# Supported environments:
|
||||
# * GNU on Linux, FreeBSD etc.
|
||||
# * GNU on Windows NT (using MinGW/MSYS/Cygwin/WSL)
|
||||
#
|
||||
# Build:
|
||||
# make
|
||||
# Clean:
|
||||
# make clean
|
||||
|
||||
include ../../sdk/common.mk
|
||||
|
||||
FUENTEABIN = tools/build/FuenteABin$(EXESUFFIX)
|
||||
AS = sjasmplus
|
||||
ifeq ($(USE_SJASMPLUS_VERSION),sjasmplus)
|
||||
AFLAGS = --nobanner
|
||||
else ifeq ($(USE_SJASMPLUS_VERSION),z00m128)
|
||||
AFLAGS = --nologo
|
||||
else
|
||||
AFLAGS =
|
||||
endif
|
||||
AFLAGS += -I../../sdk/include
|
||||
|
||||
.PHONY: all
|
||||
all: scroll.tap
|
||||
|
||||
scroll.tap: scrolldesc.bin
|
||||
GenTape $@ basic "SCROLL" 0 $<
|
||||
|
||||
scrolldesc.bin: scrolldesc.asm define.asm scroll.bin.zx7b
|
||||
$(AS) $(AFLAGS) --raw=$@ $<
|
||||
|
||||
define.asm: scroll.bin
|
||||
echo ' define filesize $(shell stat -c %s $<)' >$@
|
||||
|
||||
scroll.bin.zx7b: scroll.bin
|
||||
zx7b $< $@
|
||||
|
||||
scroll.bin: scroll.asm string.asm music.bin fuente6x8.bin lineas.asm fondo.rcs
|
||||
$(AS) $(AFLAGS) --raw=$@ $<
|
||||
|
||||
music.bin: playstc.bin music.stc
|
||||
cat $^ >$@
|
||||
|
||||
fuente6x8.bin: fuente6x8.png | $(FUENTEABIN)
|
||||
$(FUENTEABIN) $< $@
|
||||
|
||||
$(FUENTEABIN): | tools
|
||||
ifeq ($(OS),Windows_NT)
|
||||
$(MAKE) -w -C $| BUILD=mingw32
|
||||
else
|
||||
$(MAKE) -w -C $|
|
||||
endif
|
||||
|
||||
fondo.rcs: fondo.png fondo.atr
|
||||
Png2Rcs $< $@ -a fondo.atr
|
||||
|
||||
.PHONY: install
|
||||
install:;
|
||||
|
||||
.PHONY: uninstall
|
||||
uninstall:;
|
||||
|
||||
.PHONY: clean
|
||||
clean: | tools
|
||||
$(MAKE) -w -C $| $@
|
||||
rm -f music.bin fuente6x8.bin fondo.rcs scroll.bin scroll.bin.zx7b define.asm scrolldesc.bin scroll.tap
|
||||
|
||||
.PHONY: distclean
|
||||
distclean:;
|
|
@ -0,0 +1,9 @@
|
|||
SPDX-FileName: fondo.atr
|
||||
|
||||
SPDX-FileType: OTHER
|
||||
|
||||
SPDX-FileChecksum: SHA1: 9214a48d573cfe87145d32a461a0c3f6abccfdc6
|
||||
|
||||
SPDX-FileCopyrightText: Copyright (C) 2016 Samuel Baselga (a.k.a. Quest)
|
||||
|
||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
|
@ -0,0 +1,9 @@
|
|||
SPDX-FileName: fondo.png
|
||||
|
||||
SPDX-FileType: IMAGE
|
||||
|
||||
SPDX-FileChecksum: SHA1: f3ad5c77329ae235982fbd67feb8c0d85269e37c
|
||||
|
||||
SPDX-FileCopyrightText: Copyright (C) 2016 Samuel Baselga (a.k.a. Quest)
|
||||
|
||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
|
@ -0,0 +1,9 @@
|
|||
SPDX-FileName: fuente6x8.png
|
||||
|
||||
SPDX-FileType: IMAGE
|
||||
|
||||
SPDX-FileChecksum: SHA1: 740d34e262db2f3fa2989592027d1907f861ba37
|
||||
|
||||
SPDX-FileCopyrightText: Copyright (C) 2016 Samuel Baselga (a.k.a. Quest)
|
||||
|
||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
|
@ -1,3 +1,10 @@
|
|||
; SPDX-FileCopyrightText: Copyright (C) 2016, 2017, 2020, 2021 Antonio Villena
|
||||
;
|
||||
; SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
; Compatible compilers:
|
||||
; SJAsmPlus, <https://github.com/sjasmplus/sjasmplus/>
|
||||
|
||||
macro linea src1, src2, src3, dst1, dst2, dst3
|
||||
ld sp, $4005+$800*src1+$100*src3+$20*src2
|
||||
pop hl
|
||||
|
|
|
@ -1,89 +1,96 @@
|
|||
include define.asm
|
||||
output loader.bin
|
||||
org $5ccb
|
||||
ld de, $8000
|
||||
di
|
||||
defb $de, $c0, $37, $0e, $8f, $39, $96 ; Basic de Paolo Ferraris
|
||||
ld hl, finload-1
|
||||
ld de, $baff
|
||||
call dzx7b
|
||||
inc hl
|
||||
inc hl
|
||||
ld bc, $4000 ; filtro RCS inverso (jamorski)
|
||||
ld a, b
|
||||
init xor c
|
||||
and $f8
|
||||
xor c
|
||||
ld d, a
|
||||
xor b
|
||||
xor c
|
||||
rlca
|
||||
rlca
|
||||
ld e, a
|
||||
init2 inc bc
|
||||
ldi
|
||||
inc bc
|
||||
ld a, b
|
||||
cp $58
|
||||
jr c, init
|
||||
sub $5b
|
||||
jr nz, init2
|
||||
ld hl, $5e6d-2
|
||||
ld de, compsize
|
||||
call $07f4
|
||||
di
|
||||
ld de, $5e6d+rawsize-1
|
||||
ld hl, $5e6d-2+compsize-1
|
||||
call dzx7b
|
||||
jp $7be4
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; ZX7 Backwards by Einar Saukas, Antonio Villena
|
||||
; Parameters:
|
||||
; HL: source address (compressed data)
|
||||
; DE: destination address (decompressing)
|
||||
; -----------------------------------------------------------------------------
|
||||
dzx7b ld bc, $8000
|
||||
ld a, b
|
||||
copyby inc c
|
||||
ldd
|
||||
mainlo add a, a
|
||||
call z, getbit
|
||||
jr nc, copyby
|
||||
push de
|
||||
ld d, c
|
||||
defb $30
|
||||
lenval add a, a
|
||||
call z, getbit
|
||||
rl c
|
||||
rl b
|
||||
add a, a
|
||||
call z, getbit
|
||||
jr nc, lenval
|
||||
inc c
|
||||
jr z, exitdz
|
||||
ld e, (hl)
|
||||
dec hl
|
||||
sll e
|
||||
jr nc, offend
|
||||
ld d, $10
|
||||
nexbit add a, a
|
||||
call z, getbit
|
||||
rl d
|
||||
jr nc, nexbit
|
||||
inc d
|
||||
srl d
|
||||
offend rr e
|
||||
ex (sp), hl
|
||||
ex de, hl
|
||||
adc hl, de
|
||||
lddr
|
||||
exitdz pop hl
|
||||
jr nc, mainlo
|
||||
getbit ld a, (hl)
|
||||
dec hl
|
||||
adc a, a
|
||||
ret
|
||||
|
||||
loadscr incbin loadscr.rcs.zx7b
|
||||
finload
|
||||
; SPDX-FileCopyrightText: Copyright (C) 2016, 2017, 2020, 2021 Antonio Villena
|
||||
;
|
||||
; SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
; Compatible compilers:
|
||||
; SJAsmPlus, <https://github.com/sjasmplus/sjasmplus/>
|
||||
|
||||
include define.asm
|
||||
output loader.bin
|
||||
org $5ccb
|
||||
ld de, $8000
|
||||
di
|
||||
defb $de, $c0, $37, $0e, $8f, $39, $96 ; Basic de Paolo Ferraris
|
||||
ld hl, finload-1
|
||||
ld de, $baff
|
||||
call dzx7b
|
||||
inc hl
|
||||
inc hl
|
||||
ld bc, $4000 ; filtro RCS inverso (jamorski)
|
||||
ld a, b
|
||||
init xor c
|
||||
and $f8
|
||||
xor c
|
||||
ld d, a
|
||||
xor b
|
||||
xor c
|
||||
rlca
|
||||
rlca
|
||||
ld e, a
|
||||
init2 inc bc
|
||||
ldi
|
||||
inc bc
|
||||
ld a, b
|
||||
cp $58
|
||||
jr c, init
|
||||
sub $5b
|
||||
jr nz, init2
|
||||
ld hl, $5e6d-2
|
||||
ld de, compsize
|
||||
call $07f4
|
||||
di
|
||||
ld de, $5e6d+rawsize-1
|
||||
ld hl, $5e6d-2+compsize-1
|
||||
call dzx7b
|
||||
jp $7be4
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; ZX7 Backwards by Einar Saukas, Antonio Villena
|
||||
; Parameters:
|
||||
; HL: source address (compressed data)
|
||||
; DE: destination address (decompressing)
|
||||
; -----------------------------------------------------------------------------
|
||||
dzx7b ld bc, $8000
|
||||
ld a, b
|
||||
copyby inc c
|
||||
ldd
|
||||
mainlo add a, a
|
||||
call z, getbit
|
||||
jr nc, copyby
|
||||
push de
|
||||
ld d, c
|
||||
defb $30
|
||||
lenval add a, a
|
||||
call z, getbit
|
||||
rl c
|
||||
rl b
|
||||
add a, a
|
||||
call z, getbit
|
||||
jr nc, lenval
|
||||
inc c
|
||||
jr z, exitdz
|
||||
ld e, (hl)
|
||||
dec hl
|
||||
sll e
|
||||
jr nc, offend
|
||||
ld d, $10
|
||||
nexbit add a, a
|
||||
call z, getbit
|
||||
rl d
|
||||
jr nc, nexbit
|
||||
inc d
|
||||
srl d
|
||||
offend rr e
|
||||
ex (sp), hl
|
||||
ex de, hl
|
||||
adc hl, de
|
||||
lddr
|
||||
exitdz pop hl
|
||||
jr nc, mainlo
|
||||
getbit ld a, (hl)
|
||||
dec hl
|
||||
adc a, a
|
||||
ret
|
||||
|
||||
loadscr incbin loadscr.rcs.zx7b
|
||||
finload
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,13 @@
|
|||
SPDX-FileName: music.stc
|
||||
|
||||
SPDX-FileType: OTHER
|
||||
|
||||
SPDX-FileChecksum: SHA1: c45309ee13cc7cb0cbb7becb2eda9ecc4d905788
|
||||
|
||||
SPDX-FileCopyrightText: Copyright (C) 2016 Michal B. (a.k.a Yerzmyey)
|
||||
|
||||
SPDX-FileNotice: Exclusive track for ZX-Uno project.
|
||||
|
||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
SPDX-FileComment: https://zxart.ee/eng/authors/y/yerzmyey/
|
Binary file not shown.
|
@ -0,0 +1,9 @@
|
|||
SPDX-FileName: playstc.bin
|
||||
|
||||
SPDX-FileType: BINARY
|
||||
|
||||
SPDX-FileChecksum: SHA1: 163afa437d12a65e0b78a4cfddf87959ca1502ee
|
||||
|
||||
SPDX-FileCopyrightText: Copyright (C) 2016 Antonio Villena
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-only
|
|
@ -1,336 +1,364 @@
|
|||
output scroll.bin
|
||||
org $5e6d
|
||||
display $6d35+string-music
|
||||
string include string.asm
|
||||
music ld (vari+2), ix
|
||||
incbin music.bin
|
||||
fuente incbin fuente6x8.bin
|
||||
start ld hl, $c000
|
||||
ld de, $c001
|
||||
ld bc, $017f
|
||||
ld (hl), l
|
||||
ldir
|
||||
ld hl, fuente
|
||||
ld b, 3
|
||||
ldir
|
||||
ld hl, fondo
|
||||
ld b, $40 ; filtro RCS inverso
|
||||
start0 ld a, b
|
||||
xor c
|
||||
and $f8
|
||||
xor c
|
||||
ld d, a
|
||||
xor b
|
||||
xor c
|
||||
rlca
|
||||
rlca
|
||||
ld e, a
|
||||
inc bc
|
||||
ldi
|
||||
inc bc
|
||||
ld a, b
|
||||
sub $58
|
||||
jr nz, start0
|
||||
ld b, 3
|
||||
ldir
|
||||
out ($fe), a
|
||||
inc a
|
||||
ex af, af'
|
||||
; ld de, $401f
|
||||
;rever ld hl, $ffe1
|
||||
; add hl, de
|
||||
; ld c, (hl)
|
||||
; ld a, $80
|
||||
;revl1 rl c
|
||||
; rra
|
||||
; jr nc, revl1
|
||||
; ld (de), a
|
||||
; inc hl
|
||||
; dec de
|
||||
; ld c, (hl)
|
||||
; ld a, $80
|
||||
;revl2 rl c
|
||||
; rra
|
||||
; jr nc, revl2
|
||||
; ld (de), a
|
||||
; inc hl
|
||||
; dec de
|
||||
; ld c, (hl)
|
||||
; ld a, $80
|
||||
;revl3 rl c
|
||||
; rra
|
||||
; jr nc, revl3
|
||||
; ld (de), a
|
||||
; inc hl
|
||||
; dec de
|
||||
; ld c, (hl)
|
||||
; ld a, $80
|
||||
;revl4 rl c
|
||||
; rra
|
||||
; jr nc, revl4
|
||||
; ld (de), a
|
||||
; ld hl, $23
|
||||
; add hl, de
|
||||
; ex de, hl
|
||||
; ld a, d
|
||||
; cp $58
|
||||
; jr nz, rever
|
||||
|
||||
ld hl, $c000
|
||||
ld de, $c400
|
||||
start1 ld b, $08
|
||||
start2 ld a, (hl)
|
||||
rrca
|
||||
ld (de), a
|
||||
inc de
|
||||
cpi
|
||||
jp pe, start2
|
||||
jr nc, start1
|
||||
ld a, $c9
|
||||
ld ($c006), a
|
||||
ld hl, $716f
|
||||
call music+7
|
||||
start3 call $6e77
|
||||
ei
|
||||
halt
|
||||
di
|
||||
ld bc, 5
|
||||
start4 djnz start4
|
||||
dec c
|
||||
jr nz, start4
|
||||
include lineas.asm
|
||||
ld sp, $401b+$800*2+$100*7+$20*7
|
||||
sbc hl, hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
ld sp, hl
|
||||
vari ld ix, string
|
||||
ld hl, start3
|
||||
push hl
|
||||
ld hl, music
|
||||
push hl
|
||||
ex af, af'
|
||||
rrca
|
||||
jr c, start5
|
||||
ex af, af'
|
||||
ret
|
||||
start5 ex af, af'
|
||||
linea 3, 1, 0, 3, 0, 0
|
||||
linea 3, 2, 0, 3, 1, 0
|
||||
linea 3, 3, 0, 3, 2, 0
|
||||
linea 3, 4, 0, 3, 3, 0
|
||||
linea 3, 5, 0, 3, 4, 0
|
||||
linea 3, 6, 0, 3, 5, 0
|
||||
linea 3, 7, 0, 3, 6, 0
|
||||
linea 3, 0, 1, 3, 7, 0
|
||||
linea 3, 1, 1, 3, 0, 1
|
||||
linea 3, 2, 1, 3, 1, 1
|
||||
linea 3, 3, 1, 3, 2, 1
|
||||
linea 3, 4, 1, 3, 3, 1
|
||||
linea 3, 5, 1, 3, 4, 1
|
||||
linea 3, 6, 1, 3, 5, 1
|
||||
linea 3, 7, 1, 3, 6, 1
|
||||
linea 3, 0, 2, 3, 7, 1
|
||||
linea 3, 1, 2, 3, 0, 2
|
||||
linea 3, 2, 2, 3, 1, 2
|
||||
linea 3, 3, 2, 3, 2, 2
|
||||
linea 3, 4, 2, 3, 3, 2
|
||||
linea 3, 5, 2, 3, 4, 2
|
||||
linea 3, 6, 2, 3, 5, 2
|
||||
ld sp, $fffc
|
||||
ld b, (ix)
|
||||
djnz start6
|
||||
ld ix, string
|
||||
start6 inc ix
|
||||
ld hl, $5ac5
|
||||
ld (hl), b
|
||||
ld de, $5ac6
|
||||
ld bc, 21
|
||||
ldir
|
||||
xor a
|
||||
push ix
|
||||
pop hl
|
||||
ld bc, $172b
|
||||
cpir
|
||||
srl c
|
||||
ld a, c
|
||||
jr c, prn2
|
||||
and %11111100
|
||||
ld d, a
|
||||
xor c
|
||||
ld c, a
|
||||
ld e, a
|
||||
jr z, prn1
|
||||
dec e
|
||||
prn1 ld a, d
|
||||
rrca
|
||||
ld d, a
|
||||
rrca
|
||||
add a, d
|
||||
add a, e
|
||||
ld e, a
|
||||
ld a, b
|
||||
and %00011000
|
||||
or %01000000
|
||||
ld d, a
|
||||
ld a, b
|
||||
and %00000111
|
||||
rrca
|
||||
rrca
|
||||
rrca
|
||||
add a, e
|
||||
ld e, a
|
||||
rr c
|
||||
jr c, pos26
|
||||
jr nz, pos4
|
||||
pos0 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $c0 >> 2
|
||||
call simple
|
||||
pos2 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $d8 >> 2
|
||||
ld bc, $04fc
|
||||
call doble
|
||||
pos4 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $d0 >> 2
|
||||
ld bc, $04f0
|
||||
call doble
|
||||
pos6 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $c8 >> 2
|
||||
call simple
|
||||
inc de
|
||||
jr pos0
|
||||
pos26 rr c
|
||||
jr c, pos6
|
||||
jr pos2
|
||||
prn2 and %11111100
|
||||
ld d, a
|
||||
xor c
|
||||
ld c, a
|
||||
cp 2
|
||||
adc a, -1
|
||||
ld e, a
|
||||
ld a, d
|
||||
rrca
|
||||
ld d, a
|
||||
rrca
|
||||
add a, d
|
||||
add a, e
|
||||
ld e, a
|
||||
ld a, b
|
||||
and %00011000
|
||||
or %01000000
|
||||
ld d, a
|
||||
ld a, b
|
||||
and %00000111
|
||||
rrca
|
||||
rrca
|
||||
rrca
|
||||
add a, e
|
||||
ld e, a
|
||||
rr c
|
||||
jr c, pos37
|
||||
jr nz, pos5
|
||||
pos1 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $cc >> 2
|
||||
ld bc, $04e0
|
||||
call doble
|
||||
pos3 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $c4 >> 2
|
||||
call simple
|
||||
pos5 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $dc >> 2
|
||||
ld bc, $04fe
|
||||
call doble
|
||||
pos7 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $d4 >> 2
|
||||
ld bc, $04f8
|
||||
call doble
|
||||
jr pos1
|
||||
pos37 rr c
|
||||
jr c, pos7
|
||||
jr pos3
|
||||
|
||||
simple ld b, 4
|
||||
ld l, a
|
||||
add hl, hl
|
||||
add hl, hl
|
||||
simple2 ld a, (de)
|
||||
xor (hl)
|
||||
ld (de), a
|
||||
inc d
|
||||
inc l
|
||||
ld a, (de)
|
||||
xor (hl)
|
||||
ld (de), a
|
||||
inc d
|
||||
inc l
|
||||
djnz simple2
|
||||
ld hl, $f800
|
||||
add hl, de
|
||||
ex de, hl
|
||||
ret
|
||||
|
||||
doble ld l, a
|
||||
add hl, hl
|
||||
add hl, hl
|
||||
doble2 ld a, (de)
|
||||
xor (hl)
|
||||
and c
|
||||
xor (hl)
|
||||
ld (de), a
|
||||
inc e
|
||||
ld a, (hl)
|
||||
and c
|
||||
ld (de), a
|
||||
inc d
|
||||
inc l
|
||||
ld a, (hl)
|
||||
and c
|
||||
ld (de), a
|
||||
dec e
|
||||
ld a, (de)
|
||||
xor (hl)
|
||||
and c
|
||||
xor (hl)
|
||||
ld (de), a
|
||||
inc d
|
||||
inc l
|
||||
djnz doble2
|
||||
ld hl, $f801
|
||||
add hl, de
|
||||
ex de, hl
|
||||
ret
|
||||
fondo incbin fondo.rcs
|
||||
; scroll.asm - an easteg egg showing the list of people who participated
|
||||
; in the crowdfunding of the ZX-Uno project through Verkami:
|
||||
; https://www.verkami.com/projects/14074-zx-uno
|
||||
;
|
||||
; We put the nick that they agreed. Some of them decided to put their
|
||||
; complete names.
|
||||
;
|
||||
; Copyright (C) 2016, 2017, 2020, 2021 Antonio Villena
|
||||
;
|
||||
; This program is free software: you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
; the Free Software Foundation, version 3.
|
||||
;
|
||||
; This program is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; GNU General Public License for more details.
|
||||
;
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
;
|
||||
; SPDX-FileCopyrightText: Copyright (C) 2016, 2017, 2020, 2021 Antonio Villena
|
||||
;
|
||||
; SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
; Compatible compilers:
|
||||
; SJAsmPlus, <https://github.com/sjasmplus/sjasmplus/>
|
||||
|
||||
output scroll.bin
|
||||
org $5e6d
|
||||
display $6d35+string-music
|
||||
string include string.asm
|
||||
music ld (vari+2), ix
|
||||
incbin music.bin
|
||||
fuente incbin fuente6x8.bin
|
||||
start ld hl, $c000
|
||||
ld de, $c001
|
||||
ld bc, $017f
|
||||
ld (hl), l
|
||||
ldir
|
||||
ld hl, fuente
|
||||
ld b, 3
|
||||
ldir
|
||||
ld hl, fondo
|
||||
ld b, $40 ; filtro RCS inverso
|
||||
start0 ld a, b
|
||||
xor c
|
||||
and $f8
|
||||
xor c
|
||||
ld d, a
|
||||
xor b
|
||||
xor c
|
||||
rlca
|
||||
rlca
|
||||
ld e, a
|
||||
inc bc
|
||||
ldi
|
||||
inc bc
|
||||
ld a, b
|
||||
sub $58
|
||||
jr nz, start0
|
||||
ld b, 3
|
||||
ldir
|
||||
out ($fe), a
|
||||
inc a
|
||||
ex af, af'
|
||||
; ld de, $401f
|
||||
;rever ld hl, $ffe1
|
||||
; add hl, de
|
||||
; ld c, (hl)
|
||||
; ld a, $80
|
||||
;revl1 rl c
|
||||
; rra
|
||||
; jr nc, revl1
|
||||
; ld (de), a
|
||||
; inc hl
|
||||
; dec de
|
||||
; ld c, (hl)
|
||||
; ld a, $80
|
||||
;revl2 rl c
|
||||
; rra
|
||||
; jr nc, revl2
|
||||
; ld (de), a
|
||||
; inc hl
|
||||
; dec de
|
||||
; ld c, (hl)
|
||||
; ld a, $80
|
||||
;revl3 rl c
|
||||
; rra
|
||||
; jr nc, revl3
|
||||
; ld (de), a
|
||||
; inc hl
|
||||
; dec de
|
||||
; ld c, (hl)
|
||||
; ld a, $80
|
||||
;revl4 rl c
|
||||
; rra
|
||||
; jr nc, revl4
|
||||
; ld (de), a
|
||||
; ld hl, $23
|
||||
; add hl, de
|
||||
; ex de, hl
|
||||
; ld a, d
|
||||
; cp $58
|
||||
; jr nz, rever
|
||||
|
||||
ld hl, $c000
|
||||
ld de, $c400
|
||||
start1 ld b, $08
|
||||
start2 ld a, (hl)
|
||||
rrca
|
||||
ld (de), a
|
||||
inc de
|
||||
cpi
|
||||
jp pe, start2
|
||||
jr nc, start1
|
||||
ld a, $c9
|
||||
ld ($c006), a
|
||||
ld hl, $716f
|
||||
call music+7
|
||||
start3 call $6e77
|
||||
ei
|
||||
halt
|
||||
di
|
||||
ld bc, 5
|
||||
start4 djnz start4
|
||||
dec c
|
||||
jr nz, start4
|
||||
include lineas.asm
|
||||
ld sp, $401b+$800*2+$100*7+$20*7
|
||||
sbc hl, hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
push hl
|
||||
ld sp, hl
|
||||
vari ld ix, string
|
||||
ld hl, start3
|
||||
push hl
|
||||
ld hl, music
|
||||
push hl
|
||||
ex af, af'
|
||||
rrca
|
||||
jr c, start5
|
||||
ex af, af'
|
||||
ret
|
||||
start5 ex af, af'
|
||||
linea 3, 1, 0, 3, 0, 0
|
||||
linea 3, 2, 0, 3, 1, 0
|
||||
linea 3, 3, 0, 3, 2, 0
|
||||
linea 3, 4, 0, 3, 3, 0
|
||||
linea 3, 5, 0, 3, 4, 0
|
||||
linea 3, 6, 0, 3, 5, 0
|
||||
linea 3, 7, 0, 3, 6, 0
|
||||
linea 3, 0, 1, 3, 7, 0
|
||||
linea 3, 1, 1, 3, 0, 1
|
||||
linea 3, 2, 1, 3, 1, 1
|
||||
linea 3, 3, 1, 3, 2, 1
|
||||
linea 3, 4, 1, 3, 3, 1
|
||||
linea 3, 5, 1, 3, 4, 1
|
||||
linea 3, 6, 1, 3, 5, 1
|
||||
linea 3, 7, 1, 3, 6, 1
|
||||
linea 3, 0, 2, 3, 7, 1
|
||||
linea 3, 1, 2, 3, 0, 2
|
||||
linea 3, 2, 2, 3, 1, 2
|
||||
linea 3, 3, 2, 3, 2, 2
|
||||
linea 3, 4, 2, 3, 3, 2
|
||||
linea 3, 5, 2, 3, 4, 2
|
||||
linea 3, 6, 2, 3, 5, 2
|
||||
ld sp, $fffc
|
||||
ld b, (ix)
|
||||
djnz start6
|
||||
ld ix, string
|
||||
start6 inc ix
|
||||
ld hl, $5ac5
|
||||
ld (hl), b
|
||||
ld de, $5ac6
|
||||
ld bc, 21
|
||||
ldir
|
||||
xor a
|
||||
push ix
|
||||
pop hl
|
||||
ld bc, $172b
|
||||
cpir
|
||||
srl c
|
||||
ld a, c
|
||||
jr c, prn2
|
||||
and %11111100
|
||||
ld d, a
|
||||
xor c
|
||||
ld c, a
|
||||
ld e, a
|
||||
jr z, prn1
|
||||
dec e
|
||||
prn1 ld a, d
|
||||
rrca
|
||||
ld d, a
|
||||
rrca
|
||||
add a, d
|
||||
add a, e
|
||||
ld e, a
|
||||
ld a, b
|
||||
and %00011000
|
||||
or %01000000
|
||||
ld d, a
|
||||
ld a, b
|
||||
and %00000111
|
||||
rrca
|
||||
rrca
|
||||
rrca
|
||||
add a, e
|
||||
ld e, a
|
||||
rr c
|
||||
jr c, pos26
|
||||
jr nz, pos4
|
||||
pos0 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $c0 >> 2
|
||||
call simple
|
||||
pos2 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $d8 >> 2
|
||||
ld bc, $04fc
|
||||
call doble
|
||||
pos4 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $d0 >> 2
|
||||
ld bc, $04f0
|
||||
call doble
|
||||
pos6 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $c8 >> 2
|
||||
call simple
|
||||
inc de
|
||||
jr pos0
|
||||
pos26 rr c
|
||||
jr c, pos6
|
||||
jr pos2
|
||||
prn2 and %11111100
|
||||
ld d, a
|
||||
xor c
|
||||
ld c, a
|
||||
cp 2
|
||||
adc a, -1
|
||||
ld e, a
|
||||
ld a, d
|
||||
rrca
|
||||
ld d, a
|
||||
rrca
|
||||
add a, d
|
||||
add a, e
|
||||
ld e, a
|
||||
ld a, b
|
||||
and %00011000
|
||||
or %01000000
|
||||
ld d, a
|
||||
ld a, b
|
||||
and %00000111
|
||||
rrca
|
||||
rrca
|
||||
rrca
|
||||
add a, e
|
||||
ld e, a
|
||||
rr c
|
||||
jr c, pos37
|
||||
jr nz, pos5
|
||||
pos1 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $cc >> 2
|
||||
ld bc, $04e0
|
||||
call doble
|
||||
pos3 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $c4 >> 2
|
||||
call simple
|
||||
pos5 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $dc >> 2
|
||||
ld bc, $04fe
|
||||
call doble
|
||||
pos7 ld a, (ix)
|
||||
inc ix
|
||||
add a, a
|
||||
ret z
|
||||
ld h, $d4 >> 2
|
||||
ld bc, $04f8
|
||||
call doble
|
||||
jr pos1
|
||||
pos37 rr c
|
||||
jr c, pos7
|
||||
jr pos3
|
||||
|
||||
simple ld b, 4
|
||||
ld l, a
|
||||
add hl, hl
|
||||
add hl, hl
|
||||
simple2 ld a, (de)
|
||||
xor (hl)
|
||||
ld (de), a
|
||||
inc d
|
||||
inc l
|
||||
ld a, (de)
|
||||
xor (hl)
|
||||
ld (de), a
|
||||
inc d
|
||||
inc l
|
||||
djnz simple2
|
||||
ld hl, $f800
|
||||
add hl, de
|
||||
ex de, hl
|
||||
ret
|
||||
|
||||
doble ld l, a
|
||||
add hl, hl
|
||||
add hl, hl
|
||||
doble2 ld a, (de)
|
||||
xor (hl)
|
||||
and c
|
||||
xor (hl)
|
||||
ld (de), a
|
||||
inc e
|
||||
ld a, (hl)
|
||||
and c
|
||||
ld (de), a
|
||||
inc d
|
||||
inc l
|
||||
ld a, (hl)
|
||||
and c
|
||||
ld (de), a
|
||||
dec e
|
||||
ld a, (de)
|
||||
xor (hl)
|
||||
and c
|
||||
xor (hl)
|
||||
ld (de), a
|
||||
inc d
|
||||
inc l
|
||||
djnz doble2
|
||||
ld hl, $f801
|
||||
add hl, de
|
||||
ex de, hl
|
||||
ret
|
||||
fondo incbin fondo.rcs
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
@rem SPDX-FileCopyrightText: 2016, 2021 Antonio Villena
|
||||
@rem
|
||||
@rem SPDX-License-Identifier: GPL-3.0-only
|
||||
@call ..\..\sdk\setenv.bat
|
||||
FuenteABin
|
||||
FuenteABin fuente6x8.png fuente6x8.bin
|
||||
Png2Rcs fondo.png fondo.rcs -a fondo.atr
|
||||
sjasmplus scroll.asm
|
||||
call :getfilesize scroll.bin
|
||||
|
|
|
@ -1,59 +1,68 @@
|
|||
include define.asm
|
||||
output scrolldesc.bin
|
||||
org $5ccb
|
||||
ld de, $5e6d+filesize-1
|
||||
di
|
||||
defb $de, $c0, $37, $0e, $8f, $39, $96
|
||||
jr aqui
|
||||
getbit ld a, (hl)
|
||||
dec hl
|
||||
adc a, a
|
||||
ret
|
||||
aqui ld hl, fin-1
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; ZX7 Backwards by Einar Saukas, Antonio Villena
|
||||
; Parameters:
|
||||
; HL: source address (compressed data)
|
||||
; DE: destination address (decompressing)
|
||||
; -----------------------------------------------------------------------------
|
||||
dzx7b ld bc, $8000
|
||||
ld a, b
|
||||
copyby inc c
|
||||
ldd
|
||||
mainlo add a, a
|
||||
call z, getbit
|
||||
jr nc, copyby
|
||||
push de
|
||||
ld d, c
|
||||
defb $30
|
||||
lenval add a, a
|
||||
call z, getbit
|
||||
rl c
|
||||
rl b
|
||||
add a, a
|
||||
call z, getbit
|
||||
jr nc, lenval
|
||||
inc c
|
||||
jr z, exitdz
|
||||
ld e, (hl)
|
||||
dec hl
|
||||
sll e
|
||||
jr nc, offend
|
||||
ld d, $10
|
||||
nexbit add a, a
|
||||
call z, getbit
|
||||
rl d
|
||||
jr nc, nexbit
|
||||
inc d
|
||||
srl d
|
||||
offend rr e
|
||||
ex (sp), hl
|
||||
ex de, hl
|
||||
adc hl, de
|
||||
lddr
|
||||
exitdz pop hl
|
||||
jr nc, mainlo
|
||||
jp $7be4
|
||||
incbin scroll.bin.zx7b
|
||||
fin
|
||||
; scrolldesc.asm
|
||||
;
|
||||
; SPDX-FileCopyrightText: Copyright (C) 2016, 2017, 2020, 2021 Antonio Villena
|
||||
;
|
||||
; SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
; Compatible compilers:
|
||||
; SJAsmPlus, <https://github.com/sjasmplus/sjasmplus/>
|
||||
|
||||
include define.asm
|
||||
output scrolldesc.bin
|
||||
org $5ccb
|
||||
ld de, $5e6d+filesize-1
|
||||
di
|
||||
defb $de, $c0, $37, $0e, $8f, $39, $96
|
||||
jr aqui
|
||||
getbit ld a, (hl)
|
||||
dec hl
|
||||
adc a, a
|
||||
ret
|
||||
aqui ld hl, fin-1
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; ZX7 Backwards by Einar Saukas, Antonio Villena
|
||||
; Parameters:
|
||||
; HL: source address (compressed data)
|
||||
; DE: destination address (decompressing)
|
||||
; -----------------------------------------------------------------------------
|
||||
dzx7b ld bc, $8000
|
||||
ld a, b
|
||||
copyby inc c
|
||||
ldd
|
||||
mainlo add a, a
|
||||
call z, getbit
|
||||
jr nc, copyby
|
||||
push de
|
||||
ld d, c
|
||||
defb $30
|
||||
lenval add a, a
|
||||
call z, getbit
|
||||
rl c
|
||||
rl b
|
||||
add a, a
|
||||
call z, getbit
|
||||
jr nc, lenval
|
||||
inc c
|
||||
jr z, exitdz
|
||||
ld e, (hl)
|
||||
dec hl
|
||||
sll e
|
||||
jr nc, offend
|
||||
ld d, $10
|
||||
nexbit add a, a
|
||||
call z, getbit
|
||||
rl d
|
||||
jr nc, nexbit
|
||||
inc d
|
||||
srl d
|
||||
offend rr e
|
||||
ex (sp), hl
|
||||
ex de, hl
|
||||
adc hl, de
|
||||
lddr
|
||||
exitdz pop hl
|
||||
jr nc, mainlo
|
||||
jp $7be4
|
||||
incbin scroll.bin.zx7b
|
||||
fin
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
; string.asm
|
||||
;
|
||||
; SPDX-FileCopyrightText: Copyright (C) 2016, 2017, 2020, 2021 Antonio Villena
|
||||
;
|
||||
; SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
; Compatible compilers:
|
||||
; SJAsmPlus, <https://github.com/sjasmplus/sjasmplus/>
|
||||
|
||||
; 01234567 01234567 01234567 01234567
|
||||
; abcdefab cdefabcd efabcdef 0642
|
||||
; abcde fabcdefa bcdefabc def 3175
|
||||
|
@ -187,7 +196,7 @@
|
|||
dz $48, 'Pagantipaco'
|
||||
dz $48, 'Pedro Romero'
|
||||
dz $48, 'Peter Robert Jones'
|
||||
dz $48, 'Peter \'Sweetlilmre\' Edwards'
|
||||
dz $48, "Peter 'Sweetlilmre' Edwards"
|
||||
dz $48, 'peterthedark'
|
||||
dz $48, 'princemegahit'
|
||||
dz $48, 'Radastan'
|
||||
|
@ -280,4 +289,4 @@
|
|||
dz $48
|
||||
dz $48
|
||||
dz $48
|
||||
defb 1
|
||||
defb 1
|
||||
|
|
|
@ -1,327 +1,350 @@
|
|||
output UPGRADE
|
||||
|
||||
define FA_READ 0x01
|
||||
define M_GETSETDRV 0x89
|
||||
define F_OPEN 0x9a
|
||||
define F_CLOSE 0x9b
|
||||
define F_READ 0x9d
|
||||
define F_SEEK 0x9f
|
||||
|
||||
define zxuno_port $fc3b
|
||||
define flash_spi 2
|
||||
define flash_cs 48
|
||||
|
||||
macro wreg dir, dato
|
||||
call rst28
|
||||
defb dir, dato
|
||||
endm
|
||||
|
||||
org $2000 ; comienzo de la ejecución de los comandos ESXDOS
|
||||
|
||||
Main xor a
|
||||
rst $08
|
||||
db M_GETSETDRV ; A = unidad actual
|
||||
jr nc, SDCard
|
||||
call Print
|
||||
dz 'SD card not inserted'
|
||||
ret
|
||||
SDCard ld b, FA_READ ; B = modo de apertura
|
||||
ld hl, FileName ; HL = Puntero al nombre del fichero (ASCIIZ)
|
||||
rst $08
|
||||
db F_OPEN
|
||||
ld (handle+1), a
|
||||
jr nc, FileFound
|
||||
call Print
|
||||
dz 'File FLASH not found'
|
||||
ret
|
||||
FileFound ld l, 0
|
||||
ld bc, 0
|
||||
ld de, 0
|
||||
rst $08
|
||||
db F_SEEK
|
||||
call Print
|
||||
dz 'No '
|
||||
ld a, (puerto+2)
|
||||
add a, $30
|
||||
rst $10
|
||||
call repe
|
||||
jr nz, nfallo
|
||||
; call hex
|
||||
call Print
|
||||
dz 'Flash error'
|
||||
jr Next
|
||||
nfallo halt
|
||||
halt
|
||||
;jr Verify;call hex
|
||||
ld ixl, 0
|
||||
ld de, $0000
|
||||
exx
|
||||
Bucle ld a, ixl
|
||||
inc a
|
||||
and $0f
|
||||
jr nz, punto
|
||||
ld a, '.'
|
||||
exx
|
||||
push de
|
||||
rst $10
|
||||
pop de
|
||||
exx
|
||||
punto ld hl, $8000
|
||||
ld bc, $4000
|
||||
handle ld a, 0
|
||||
rst $08
|
||||
db F_READ
|
||||
jr nc, ReadOK
|
||||
call Print
|
||||
dz 'Read Error'
|
||||
ret
|
||||
ReadOK ld a, $40
|
||||
ld hl, $8000
|
||||
exx
|
||||
call wrflsh
|
||||
inc de
|
||||
exx
|
||||
dec ixl
|
||||
jr nz, Bucle
|
||||
|
||||
halt
|
||||
halt
|
||||
|
||||
Verify ld de, $8000
|
||||
ld hl, $0040
|
||||
ld a, 2
|
||||
call rdflsh
|
||||
ld de, $8000
|
||||
ld hl, 0
|
||||
Verify1 ex de, hl
|
||||
ld c, (hl)
|
||||
inc l
|
||||
ld b, (hl)
|
||||
inc hl
|
||||
ex de, hl
|
||||
add hl, bc
|
||||
bit 1, d
|
||||
jr z, Verify1
|
||||
ld a, h
|
||||
call hex
|
||||
ld a, l
|
||||
call hex
|
||||
halt
|
||||
halt
|
||||
|
||||
; ld de, $371a
|
||||
; sbc hl, de
|
||||
; jr z, Next
|
||||
; call Print
|
||||
; dz 'CRC Error'
|
||||
Next ld a, 13
|
||||
rst $10
|
||||
ld a, (puerto+2)
|
||||
inc a
|
||||
ld (puerto+2), a
|
||||
cp $10
|
||||
ld a, (handle+1)
|
||||
jp nz, FileFound
|
||||
rst $08
|
||||
db F_CLOSE
|
||||
ret
|
||||
|
||||
Print pop hl
|
||||
db $3e
|
||||
Print1 rst $10
|
||||
ld a, (hl)
|
||||
inc hl
|
||||
or a
|
||||
jr nz, Print1
|
||||
jp (hl)
|
||||
|
||||
; ------------------------
|
||||
; Write to SPI flash
|
||||
; Parameters:
|
||||
; A: number of pages (256 bytes) to write
|
||||
; DE: target address without last byte
|
||||
; BC': zxuno_port+$100 (constant)
|
||||
; HL': source address from memory
|
||||
; ------------------------
|
||||
wrflsh ex af, af'
|
||||
wrfls1 call puerto
|
||||
wreg flash_spi, 6 ; envío write enable
|
||||
call flashcs
|
||||
call puerto
|
||||
wreg flash_spi, $20 ; envío sector erase
|
||||
out (c), d
|
||||
out (c), e
|
||||
out (c), a
|
||||
call flashcs
|
||||
wrfls2 call waits5
|
||||
call puerto
|
||||
wreg flash_spi, 6 ; envío write enable
|
||||
call flashcs
|
||||
call puerto
|
||||
wreg flash_spi, 2 ; page program
|
||||
out (c), d
|
||||
out (c), e
|
||||
out (c), a
|
||||
ld a, $20
|
||||
exx
|
||||
ld bc, zxuno_port+$100
|
||||
wrfls3 inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
dec a
|
||||
jr nz, wrfls3
|
||||
exx
|
||||
call flashcs
|
||||
ex af, af'
|
||||
dec a
|
||||
jr z, waits5
|
||||
ex af, af'
|
||||
inc e
|
||||
ld a, e
|
||||
and $0f
|
||||
jr nz, wrfls2
|
||||
ld hl, wrfls1
|
||||
push hl
|
||||
waits5 call puerto
|
||||
wreg flash_spi, 5 ; envío read status
|
||||
in a, (c)
|
||||
waits6 in a, (c)
|
||||
and 1
|
||||
jr nz, waits6
|
||||
|
||||
flashcs push af
|
||||
ld a, (puerto+2)
|
||||
rrca
|
||||
jr c, flashcs1
|
||||
wreg flash_cs, $ff
|
||||
pop af
|
||||
ret
|
||||
flashcs1 wreg flash_cs+1, $ff
|
||||
pop af
|
||||
ret
|
||||
|
||||
puerto push af
|
||||
ld a, 0
|
||||
srl a
|
||||
push af
|
||||
ld bc, zxuno_port
|
||||
ld a, flash_cs
|
||||
adc a, 0
|
||||
out (c), a
|
||||
pop bc
|
||||
inc b
|
||||
ld a, $7f
|
||||
puerto1 rlca
|
||||
djnz puerto1
|
||||
ld bc, zxuno_port + $100
|
||||
out (c), a
|
||||
pop af
|
||||
ret
|
||||
|
||||
rst28 ld bc, zxuno_port + $100
|
||||
pop hl
|
||||
outi
|
||||
ld b, (zxuno_port >> 8)+2
|
||||
outi
|
||||
jp (hl)
|
||||
|
||||
repe ld e, 0
|
||||
repe1 call puerto
|
||||
wreg flash_spi, 6 ; envío write enable
|
||||
call flashcs
|
||||
call puerto
|
||||
wreg flash_spi, 1 ; envío write register status
|
||||
out (c), 0
|
||||
ld a, 2
|
||||
out (c), a
|
||||
call flashcs
|
||||
call puerto
|
||||
wreg flash_spi, $35 ; envío write register status
|
||||
in a, (c)
|
||||
in a, (c)
|
||||
call flashcs
|
||||
and 2
|
||||
ret nz
|
||||
dec e
|
||||
jr nz, repe1
|
||||
ret
|
||||
|
||||
; ------------------------
|
||||
; Read from SPI flash
|
||||
; Parameters:
|
||||
; DE: destination address
|
||||
; HL: source address without last byte
|
||||
; A: number of pages (256 bytes) to read
|
||||
; ------------------------
|
||||
rdflsh ex af, af'
|
||||
xor a
|
||||
push hl
|
||||
call puerto
|
||||
wreg flash_spi, 3 ; envio flash_spi un 3, orden de lectura
|
||||
pop hl
|
||||
push hl
|
||||
out (c), h
|
||||
out (c), l
|
||||
out (c), a
|
||||
ex af, af'
|
||||
ex de, hl
|
||||
in f, (c)
|
||||
rdfls1 ld e, $20
|
||||
rdfls2 ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
dec e
|
||||
jr nz, rdfls2
|
||||
dec a
|
||||
jr nz, rdfls1
|
||||
call flashcs
|
||||
pop hl
|
||||
ret
|
||||
|
||||
hex push af
|
||||
and $f0
|
||||
rrca
|
||||
rrca
|
||||
rrca
|
||||
rrca
|
||||
cp $0a
|
||||
jr c, mayo
|
||||
add a, 7
|
||||
mayo add a, $30
|
||||
rst $10
|
||||
pop af
|
||||
and $0f
|
||||
cp $0a
|
||||
jr c, maya
|
||||
add a, 7
|
||||
maya add a, $30
|
||||
rst $10
|
||||
ret
|
||||
|
||||
FileName dz 'FLASH.ZX1'
|
||||
; upgrade.asm
|
||||
;
|
||||
; Copyright (C) 2016, 2020, 2021 Antonio Villena
|
||||
;
|
||||
; This program is free software: you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
; the Free Software Foundation, version 3.
|
||||
;
|
||||
; This program is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; GNU General Public License for more details.
|
||||
;
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
;
|
||||
; SPDX-FileCopyrightText: Copyright (C) 2016, 2020, 2021 Antonio Villena
|
||||
;
|
||||
; SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
; Compatible compilers:
|
||||
; SJAsmPlus, <https://github.com/sjasmplus/sjasmplus/>
|
||||
|
||||
output UPGRADE
|
||||
|
||||
define FA_READ 0x01
|
||||
define M_GETSETDRV 0x89
|
||||
define F_OPEN 0x9a
|
||||
define F_CLOSE 0x9b
|
||||
define F_READ 0x9d
|
||||
define F_SEEK 0x9f
|
||||
|
||||
define zxuno_port $fc3b
|
||||
define flash_spi 2
|
||||
define flash_cs 48
|
||||
|
||||
macro wreg dir, dato
|
||||
call rst28
|
||||
defb dir, dato
|
||||
endm
|
||||
|
||||
org $2000 ; comienzo de la ejecución de los comandos ESXDOS
|
||||
|
||||
Main xor a
|
||||
rst $08
|
||||
db M_GETSETDRV ; A = unidad actual
|
||||
jr nc, SDCard
|
||||
call Print
|
||||
dz 'SD card not inserted'
|
||||
ret
|
||||
SDCard ld b, FA_READ ; B = modo de apertura
|
||||
ld hl, FileName ; HL = Puntero al nombre del fichero (ASCIIZ)
|
||||
rst $08
|
||||
db F_OPEN
|
||||
ld (handle+1), a
|
||||
jr nc, FileFound
|
||||
call Print
|
||||
dz 'File FLASH not found'
|
||||
ret
|
||||
FileFound ld l, 0
|
||||
ld bc, 0
|
||||
ld de, 0
|
||||
rst $08
|
||||
db F_SEEK
|
||||
call Print
|
||||
dz 'No '
|
||||
ld a, (puerto+2)
|
||||
add a, $30
|
||||
rst $10
|
||||
call repe
|
||||
jr nz, nfallo
|
||||
; call hex
|
||||
call Print
|
||||
dz 'Flash error'
|
||||
jr Next
|
||||
nfallo halt
|
||||
halt
|
||||
;jr Verify;call hex
|
||||
ld ixl, 0
|
||||
ld de, $0000
|
||||
exx
|
||||
Bucle ld a, ixl
|
||||
inc a
|
||||
and $0f
|
||||
jr nz, punto
|
||||
ld a, '.'
|
||||
exx
|
||||
push de
|
||||
rst $10
|
||||
pop de
|
||||
exx
|
||||
punto ld hl, $8000
|
||||
ld bc, $4000
|
||||
handle ld a, 0
|
||||
rst $08
|
||||
db F_READ
|
||||
jr nc, ReadOK
|
||||
call Print
|
||||
dz 'Read Error'
|
||||
ret
|
||||
ReadOK ld a, $40
|
||||
ld hl, $8000
|
||||
exx
|
||||
call wrflsh
|
||||
inc de
|
||||
exx
|
||||
dec ixl
|
||||
jr nz, Bucle
|
||||
|
||||
halt
|
||||
halt
|
||||
|
||||
Verify ld de, $8000
|
||||
ld hl, $0040
|
||||
ld a, 2
|
||||
call rdflsh
|
||||
ld de, $8000
|
||||
ld hl, 0
|
||||
Verify1 ex de, hl
|
||||
ld c, (hl)
|
||||
inc l
|
||||
ld b, (hl)
|
||||
inc hl
|
||||
ex de, hl
|
||||
add hl, bc
|
||||
bit 1, d
|
||||
jr z, Verify1
|
||||
ld a, h
|
||||
call hex
|
||||
ld a, l
|
||||
call hex
|
||||
halt
|
||||
halt
|
||||
|
||||
; ld de, $371a
|
||||
; sbc hl, de
|
||||
; jr z, Next
|
||||
; call Print
|
||||
; dz 'CRC Error'
|
||||
Next ld a, 13
|
||||
rst $10
|
||||
ld a, (puerto+2)
|
||||
inc a
|
||||
ld (puerto+2), a
|
||||
cp $10
|
||||
ld a, (handle+1)
|
||||
jp nz, FileFound
|
||||
rst $08
|
||||
db F_CLOSE
|
||||
ret
|
||||
|
||||
Print pop hl
|
||||
db $3e
|
||||
Print1 rst $10
|
||||
ld a, (hl)
|
||||
inc hl
|
||||
or a
|
||||
jr nz, Print1
|
||||
jp (hl)
|
||||
|
||||
; ------------------------
|
||||
; Write to SPI flash
|
||||
; Parameters:
|
||||
; A: number of pages (256 bytes) to write
|
||||
; DE: target address without last byte
|
||||
; BC': zxuno_port+$100 (constant)
|
||||
; HL': source address from memory
|
||||
; ------------------------
|
||||
wrflsh ex af, af'
|
||||
wrfls1 call puerto
|
||||
wreg flash_spi, 6 ; envío write enable
|
||||
call flashcs
|
||||
call puerto
|
||||
wreg flash_spi, $20 ; envío sector erase
|
||||
out (c), d
|
||||
out (c), e
|
||||
out (c), a
|
||||
call flashcs
|
||||
wrfls2 call waits5
|
||||
call puerto
|
||||
wreg flash_spi, 6 ; envío write enable
|
||||
call flashcs
|
||||
call puerto
|
||||
wreg flash_spi, 2 ; page program
|
||||
out (c), d
|
||||
out (c), e
|
||||
out (c), a
|
||||
ld a, $20
|
||||
exx
|
||||
ld bc, zxuno_port+$100
|
||||
wrfls3 inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
inc b
|
||||
outi
|
||||
dec a
|
||||
jr nz, wrfls3
|
||||
exx
|
||||
call flashcs
|
||||
ex af, af'
|
||||
dec a
|
||||
jr z, waits5
|
||||
ex af, af'
|
||||
inc e
|
||||
ld a, e
|
||||
and $0f
|
||||
jr nz, wrfls2
|
||||
ld hl, wrfls1
|
||||
push hl
|
||||
waits5 call puerto
|
||||
wreg flash_spi, 5 ; envío read status
|
||||
in a, (c)
|
||||
waits6 in a, (c)
|
||||
and 1
|
||||
jr nz, waits6
|
||||
|
||||
flashcs push af
|
||||
ld a, (puerto+2)
|
||||
rrca
|
||||
jr c, flashcs1
|
||||
wreg flash_cs, $ff
|
||||
pop af
|
||||
ret
|
||||
flashcs1 wreg flash_cs+1, $ff
|
||||
pop af
|
||||
ret
|
||||
|
||||
puerto push af
|
||||
ld a, 0
|
||||
srl a
|
||||
push af
|
||||
ld bc, zxuno_port
|
||||
ld a, flash_cs
|
||||
adc a, 0
|
||||
out (c), a
|
||||
pop bc
|
||||
inc b
|
||||
ld a, $7f
|
||||
puerto1 rlca
|
||||
djnz puerto1
|
||||
ld bc, zxuno_port + $100
|
||||
out (c), a
|
||||
pop af
|
||||
ret
|
||||
|
||||
rst28 ld bc, zxuno_port + $100
|
||||
pop hl
|
||||
outi
|
||||
ld b, (zxuno_port >> 8)+2
|
||||
outi
|
||||
jp (hl)
|
||||
|
||||
repe ld e, 0
|
||||
repe1 call puerto
|
||||
wreg flash_spi, 6 ; envío write enable
|
||||
call flashcs
|
||||
call puerto
|
||||
wreg flash_spi, 1 ; envío write register status
|
||||
out (c), 0
|
||||
ld a, 2
|
||||
out (c), a
|
||||
call flashcs
|
||||
call puerto
|
||||
wreg flash_spi, $35 ; envío write register status
|
||||
in a, (c)
|
||||
in a, (c)
|
||||
call flashcs
|
||||
and 2
|
||||
ret nz
|
||||
dec e
|
||||
jr nz, repe1
|
||||
ret
|
||||
|
||||
; ------------------------
|
||||
; Read from SPI flash
|
||||
; Parameters:
|
||||
; DE: destination address
|
||||
; HL: source address without last byte
|
||||
; A: number of pages (256 bytes) to read
|
||||
; ------------------------
|
||||
rdflsh ex af, af'
|
||||
xor a
|
||||
push hl
|
||||
call puerto
|
||||
wreg flash_spi, 3 ; envio flash_spi un 3, orden de lectura
|
||||
pop hl
|
||||
push hl
|
||||
out (c), h
|
||||
out (c), l
|
||||
out (c), a
|
||||
ex af, af'
|
||||
ex de, hl
|
||||
in f, (c)
|
||||
rdfls1 ld e, $20
|
||||
rdfls2 ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
ini
|
||||
inc b
|
||||
dec e
|
||||
jr nz, rdfls2
|
||||
dec a
|
||||
jr nz, rdfls1
|
||||
call flashcs
|
||||
pop hl
|
||||
ret
|
||||
|
||||
hex push af
|
||||
and $f0
|
||||
rrca
|
||||
rrca
|
||||
rrca
|
||||
rrca
|
||||
cp $0a
|
||||
jr c, mayo
|
||||
add a, 7
|
||||
mayo add a, $30
|
||||
rst $10
|
||||
pop af
|
||||
and $0f
|
||||
cp $0a
|
||||
jr c, maya
|
||||
add a, 7
|
||||
maya add a, $30
|
||||
rst $10
|
||||
ret
|
||||
|
||||
FileName dz 'FLASH.ZX1'
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# Authors
|
||||
|
||||
2021 Ivan Tatarinov <ivan-tat@ya.ru>
|
||||
2021 Antonio Villena
|
||||
|
||||
# Contributors
|
||||
|
||||
No one yet.
|
||||
2021 Ivan Tatarinov <ivan-tat@ya.ru> (Makefile)
|
||||
|
||||
# License
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
# SPDX-FileCopyrightText: 2021 Ivan Tatarinov <ivan-tat@ya.ru>
|
||||
#
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
conf.mk
|
12
sdk/Makefile
12
sdk/Makefile
|
@ -6,6 +6,8 @@
|
|||
# * GNU on Linux, FreeBSD etc.
|
||||
# * GNU on Windows NT (using MinGW/MSYS/Cygwin/WSL)
|
||||
#
|
||||
# Configure:
|
||||
# make configure [<CFG_PARAMS>]
|
||||
# Build:
|
||||
# make [<FLAGS>] build | build-<TARGET>
|
||||
# Install:
|
||||
|
@ -17,6 +19,8 @@
|
|||
# make [<FLAGS>] distclean | distclean-<TARGET>
|
||||
#
|
||||
# where:
|
||||
# <CFG_PARAMS> is a set of parameters of type <CFG_VAR>=<VALUE>
|
||||
# USE_SJASMPLUS_VERSION: sjasmplus, z00m128 (default).
|
||||
# <FLAGS> are these flags:
|
||||
# [BUILD=<BUILD>] [FORCEBUILD=<FB_FLAG>] [FORCECLEAN=<FC_FLAG>]
|
||||
# where values are:
|
||||
|
@ -62,8 +66,14 @@ $(TARGETS): | src
|
|||
$(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) install-$@
|
||||
|
||||
.PHONY:\
|
||||
build install uninstall clean distclean\
|
||||
configure build install uninstall clean distclean\
|
||||
$(foreach t,$(TARGETS),build-$(t) install-$(t) uninstall-$(t) clean-$(t) distclean-$(t))
|
||||
|
||||
configure:
|
||||
@echo '# This is a local configuration file for Make.' >conf.mk;\
|
||||
echo '# This file is generated automatically by `make configure`.' >>conf.mk;\
|
||||
echo 'USE_SJASMPLUS_VERSION=$(USE_SJASMPLUS_VERSION)' >>conf.mk
|
||||
|
||||
build install uninstall clean distclean \
|
||||
$(foreach t,$(TARGETS),build-$(t) install-$(t) uninstall-$(t) clean-$(t) distclean-$(t)): | src
|
||||
$(MAKE) -w -C $| prefix=$(shell realpath --relative-to=$| $(prefix)) $@
|
||||
|
|
|
@ -10,6 +10,7 @@ No one yet.
|
|||
|
||||
This document is under [GNU FDL-1.3 or later](https://spdx.org/licenses/GFDL-1.3-or-later.html) license.
|
||||
SJAsmPlus Z80 Assembler is distributed under [zlib](https://spdx.org/licenses/Zlib.html) license.
|
||||
SJAsmPlus Z80 Assembler by aprisobal (*z00m128*) is distributed under [BSD 3-Clause "New" or "Revised"](https://spdx.org/licenses/BSD-3-Clause.html) license.
|
||||
z88dk is distributed under [Clarified Artistic](https://spdx.org/licenses/ClArtistic.html) license.
|
||||
LodePNG C/C++ library is distributed under [zlib](https://spdx.org/licenses/Zlib.html) license.
|
||||
|
||||
|
@ -71,6 +72,8 @@ Go to the project's root directory, enter `sdk` sub-directory and type one of th
|
|||
|
||||
Command | Description
|
||||
----|----
|
||||
`make configure` | Configure build with default values (on first call)
|
||||
`make configure <CFG_PARAMS>` | Configure build with explicit values
|
||||
`make` | Build and install all tools from sources
|
||||
`make <TARGET>` | Build and install only the TARGET from sources
|
||||
`make BUILD=<BUILD>` | Cross-build and install all tools from sources for Windows platform
|
||||
|
@ -78,6 +81,12 @@ Command | Description
|
|||
|
||||
where:
|
||||
|
||||
`<CFG_PARAMS>` is a series of parameters of type `<CFG_VAR>=<VALUE>`.
|
||||
|
||||
Value of `<CFG_VAR>` | Possible values | Description
|
||||
----|----|----
|
||||
`USE_SJASMPLUS_VERSION` | `sjasmplus`, `z00m128` | Version of SJAsmPlus Z80 Compiler to use. Default is `z00m128` (aprisobal).
|
||||
|
||||
Value of `TARGET` | Origin | Description
|
||||
----|----|----
|
||||
`sjasmplus` | downloaded | SJAsmPlus Z80 Assembler
|
||||
|
@ -194,6 +203,8 @@ Go to the project's root directory, enter `sdk` sub-directory and type one of th
|
|||
|
||||
Command | Description
|
||||
----|----
|
||||
`make configure` | Configure build with default values (on first call)
|
||||
`make configure <CFG_PARAMS>` | Configure build with explicit values
|
||||
`make` | **Quick setup** of all tools (download precompiled binaries and install them)
|
||||
`make <TARGET>` | **Qucik setup** of the TARGET only
|
||||
`make FORCEBUILD=1` | Build and install all tools from sources
|
||||
|
@ -201,6 +212,8 @@ Command | Description
|
|||
|
||||
where:
|
||||
|
||||
`<CFG_PARAMS>` is a series of parameters as described in [2.2](#22-build-tools).
|
||||
|
||||
Value of `TARGET` | Sources origin | Binaries origin (**Quick setup**) | Build from sources
|
||||
----|----|----|----
|
||||
`sjasmplus` | downloaded | downloaded (**yes**) | available
|
||||
|
@ -280,6 +293,7 @@ These changes are actual for current invocation of command shell and all child p
|
|||
* [cmd](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/cmd) - command interpreter in Windows
|
||||
* [Windows commands](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/windows-commands)
|
||||
* [SJAsmPlus](https://github.com/sjasmplus/sjasmplus) - Z80 Assembler
|
||||
* [SJAsmPlus by aprisobal](https://github.com/z00m128/sjasmplus) - Z80 Assembler
|
||||
* [Z88DK](https://github.com/z88dk/z88dk) - The Development Kit for Z80 Computers
|
||||
* [LodePNG](https://github.com/lvandeve/lodepng) - PNG encoder and decoder in C and C++
|
||||
* [Open Source FPGA Foundation Formed to Accelerate Widespread Adoption of Programmable Logic](https://osfpga.org/osfpga-foundation-launched/) - news article (April 8, 2021)
|
||||
|
|
|
@ -31,6 +31,11 @@ export PATH
|
|||
|
||||
endif # !ZXSDK
|
||||
|
||||
-include $(ZXSDK)/conf.mk
|
||||
|
||||
# Default values
|
||||
USE_SJASMPLUS_VERSION ?= z00m128
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
EXESUFFIX := .exe
|
||||
DLLSUFFIX := .dll
|
||||
|
|
|
@ -9,6 +9,11 @@ sjasmplus-win32.7z
|
|||
sjasmplus-win32.7z.sha256
|
||||
sjasmplus-win64.7z
|
||||
sjasmplus-win64.7z.sha256
|
||||
sjasmplus-z00m128
|
||||
sjasmplus-z00m128-src.tgz
|
||||
sjasmplus-z00m128-src.tgz.sha256
|
||||
sjasmplus-z00m128-win32.zip
|
||||
sjasmplus-z00m128-win32.zip.sha256
|
||||
z88dk
|
||||
z88dk-src.tgz
|
||||
z88dk-src.tgz.sha256
|
||||
|
|
115
sdk/src/Makefile
115
sdk/src/Makefile
|
@ -53,25 +53,24 @@ distclean: $(foreach t,$(TARGETS),distclean-$(t))
|
|||
|
||||
_DoBuild:=1
|
||||
_UsePrecompiledOnWindows:=0
|
||||
_DoClean:=1
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
ifneq ($(FORCEBUILD),1)
|
||||
_DoBuild:=0
|
||||
_UsePrecompiledOnWindows:=1
|
||||
endif
|
||||
endif
|
||||
|
||||
_DoClean:=1
|
||||
ifeq ($(OS),Windows_NT)
|
||||
ifneq ($(FORCECLEAN),1)
|
||||
_DoClean:=0
|
||||
endif
|
||||
endif
|
||||
endif # $(OS)==Windows_NT
|
||||
|
||||
# sjasmplus
|
||||
|
||||
.PHONY: $(foreach a,build install uninstall clean distclean,$(a)-sjasmplus)
|
||||
|
||||
ifeq ($(USE_SJASMPLUS_VERSION),sjasmplus)
|
||||
|
||||
ifeq ($(_DoBuild),1)
|
||||
|
||||
build-sjasmplus: | sjasmplus/.extracted sjasmplus.mk
|
||||
|
@ -95,14 +94,14 @@ install-sjasmplus: | sjasmplus/.extracted sjasmplus.mk
|
|||
ifeq ($(_DoClean),1)
|
||||
|
||||
uninstall-sjasmplus: | sjasmplus.mk
|
||||
if test -f sjasmplus; then\
|
||||
if test -d sjasmplus; then\
|
||||
$(MAKE) -w -C sjasmplus -f ../sjasmplus.mk prefix=$(shell realpath --relative-to=sjasmplus $(prefix)) uninstall;\
|
||||
else\
|
||||
rm -f $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX);\
|
||||
fi
|
||||
|
||||
clean-sjasmplus: | sjasmplus.mk
|
||||
if test -f sjasmplus; then $(MAKE) -w -C sjasmplus -f ../sjasmplus.mk clean; fi
|
||||
if test -d sjasmplus; then $(MAKE) -w -C sjasmplus -f ../sjasmplus.mk clean; fi
|
||||
|
||||
else # !_DoClean
|
||||
|
||||
|
@ -176,6 +175,108 @@ distclean-sjasmplus:;
|
|||
|
||||
endif # !_DoClean
|
||||
|
||||
else ifeq ($(USE_SJASMPLUS_VERSION),z00m128)
|
||||
|
||||
ifeq ($(_DoBuild),1)
|
||||
|
||||
build-sjasmplus: | sjasmplus-z00m128/.extracted sjasmplus-z00m128.mk
|
||||
$(MAKE) -w -C sjasmplus -f ../sjasmplus-z00m128.mk prefix=$(shell realpath --relative-to=sjasmplus-z00m128 $(prefix))
|
||||
|
||||
sjasmplus-z00m128/.extracted: sjasmplus-z00m128-src.tgz
|
||||
echo '114807bf53d3526b4d1ae7d40f3050b9ee98220df74931efc1e6d1fe5aba3d02 $<' >$<.sha256
|
||||
sha256sum -c $<.sha256
|
||||
rm -f $<.sha256
|
||||
rm -rf $(@D) sjasmplus-1.18.2
|
||||
tar -xzf $<
|
||||
mv sjasmplus-1.18.2 $(@D)
|
||||
touch $@
|
||||
|
||||
sjasmplus-z00m128-src.tgz:
|
||||
wget -c https://github.com/z00m128/sjasmplus/archive/refs/tags/v1.18.2.tar.gz -O $@
|
||||
|
||||
install-sjasmplus: | sjasmplus-z00m128/.extracted sjasmplus-z00m128.mk
|
||||
$(MAKE) -w -C sjasmplus-z00m128 -f ../sjasmplus-z00m128.mk prefix=$(shell realpath --relative-to=sjasmplus-z00m128 $(prefix)) install
|
||||
|
||||
ifeq ($(_DoClean),1)
|
||||
|
||||
uninstall-sjasmplus: | sjasmplus-z00m128.mk
|
||||
if test -d sjasmplus-z00m128; then\
|
||||
$(MAKE) -w -C sjasmplus-z00m128 -f ../sjasmplus-z00m128.mk prefix=$(shell realpath --relative-to=sjasmplus-z00m128 $(prefix)) uninstall;\
|
||||
else\
|
||||
rm -f $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX);\
|
||||
fi
|
||||
|
||||
clean-sjasmplus: | sjasmplus-z00m128.mk
|
||||
if test -d sjasmplus-z00m128; then $(MAKE) -w -C sjasmplus-z00m128 -f ../sjasmplus-z00m128.mk clean; fi
|
||||
|
||||
else # !_DoClean
|
||||
|
||||
uninstall-sjasmplus clean-sjasmplus:;
|
||||
|
||||
endif # !_DoClean
|
||||
endif # _DoBuild
|
||||
|
||||
ifeq ($(_UsePrecompiledOnWindows),1)
|
||||
|
||||
build-sjasmplus: sjasmplus-z00m128/sjasmplus$(EXESUFFIX)
|
||||
|
||||
sjasmplus-z00m128/sjasmplus$(EXESUFFIX): | sjasmplus-z00m128/.extracted
|
||||
|
||||
SJASMPLUS_ARCHIVE := sjasmplus-z00m128-win32.zip
|
||||
SJASMPLUS_ARCHIVE_SHA256 := 848bca2522d6febbf3e3c48c634731ecd61899166f5922ed15857e8063c3dc4b
|
||||
|
||||
sjasmplus-z00m128/.extracted: $(SJASMPLUS_ARCHIVE)
|
||||
echo '$(SJASMPLUS_ARCHIVE_SHA256) $<' >$<.sha256
|
||||
sha256sum -c $<.sha256
|
||||
rm -f $<.sha256
|
||||
rm -rf $(@D)
|
||||
unzip -nq $<
|
||||
mv sjasmplus-1.18.2.win $(@D)
|
||||
touch $@
|
||||
|
||||
sjasmplus-z00m128-win32.zip:
|
||||
wget -c https://github.com/z00m128/sjasmplus/releases/download/v1.18.2/sjasmplus-1.18.2.win.zip -O $@
|
||||
|
||||
install-sjasmplus: $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX)
|
||||
|
||||
$(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX): sjasmplus-z00m128/sjasmplus$(EXESUFFIX)
|
||||
$(INSTALL_PROGRAM) $< $@
|
||||
|
||||
ifeq ($(_DoClean),1)
|
||||
|
||||
uninstall-sjasmplus:
|
||||
rm -f $(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX)
|
||||
|
||||
clean-sjasmplus:
|
||||
rm -rf sjasmplus-z00m128
|
||||
|
||||
else # !_DoClean
|
||||
|
||||
uninstall-sjasmplus clean-sjasmplus:;
|
||||
|
||||
endif # !_DoClean
|
||||
endif # _UsePrecompiledOnWindows
|
||||
|
||||
ifeq ($(_DoClean),1)
|
||||
|
||||
distclean-sjasmplus:
|
||||
rm -rf sjasmplus-z00m128
|
||||
rm -f\
|
||||
sjasmplus-z00m128-src.tgz\
|
||||
sjasmplus-z00m128-src.tgz.sha256\
|
||||
sjasmplus-z00m128-win32.zip\
|
||||
sjasmplus-z00m128-win32.zip.sha256
|
||||
|
||||
else # !_DoClean
|
||||
|
||||
distclean-sjasmplus:;
|
||||
|
||||
endif # !_DoClean
|
||||
|
||||
else
|
||||
$(error Unknown SJAsmPlus version selected: `$(USE_SJASMPLUS_VERSION)')
|
||||
endif
|
||||
|
||||
# z88dk
|
||||
|
||||
.PHONY: $(foreach a,build install uninstall clean distclean,$(a)-z88dk)
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
# SPDX-FileCopyrightText: 2021 Ivan Tatarinov <ivan-tat@ya.ru>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# Supported environments:
|
||||
# * GNU on Linux, FreeBSD etc.
|
||||
# * GNU on Windows NT (using MinGW/MSYS/Cygwin/WSL)
|
||||
#
|
||||
# Build:
|
||||
# make [BUILD=<BUILD>] -w -C sjasmplus-z00m128 -f ../sjasmplus-z00m128.mk
|
||||
# Install / Uninstall:
|
||||
# make [BUILD=<BUILD>] [prefix=<PREFIX>] -w -C sjasmplus-z00m128 -f ../sjasmplus-z00m128.mk install | uninstall
|
||||
# Clean:
|
||||
# make [BUILD=<BUILD>] -w -C sjasmplus-z00m128 -f ../sjasmplus-z00m128.mk clean
|
||||
#
|
||||
# where:
|
||||
# <BUILD> - see included `common.mk'.
|
||||
# <PREFIX> is a prefix directory to install files into.
|
||||
|
||||
include ../../common.mk
|
||||
|
||||
srcdir = .
|
||||
prefix ?= /usr/local
|
||||
exec_prefix ?= $(prefix)
|
||||
bindir ?= $(exec_prefix)/bin
|
||||
|
||||
INSTALL ?= install
|
||||
INSTALL_PROGRAM ?= $(INSTALL)
|
||||
|
||||
BINS = sjasmplus$(EXESUFFIX)
|
||||
|
||||
.PHONY: all
|
||||
all: $(foreach t,$(BINS),build/$(t))
|
||||
|
||||
build\
|
||||
$(DESTDIR)$(bindir):
|
||||
mkdir -p $@
|
||||
|
||||
sjasmplus$(EXESUFFIX): | Makefile
|
||||
$(MAKE) clean
|
||||
$(MAKE)
|
||||
|
||||
.PHONY: install
|
||||
install: $(foreach t,$(BINS),$(DESTDIR)$(bindir)/$(t))
|
||||
|
||||
$(DESTDIR)$(bindir)/sjasmplus$(EXESUFFIX): sjasmplus$(EXESUFFIX) | $(DESTDIR)$(bindir)
|
||||
$(INSTALL_PROGRAM) $< $@
|
||||
|
||||
.PHONY: uninstall
|
||||
uninstall:
|
||||
rm -f $(foreach t,$(BINS),$(DESTDIR)$(bindir)/$(t))
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
$(MAKE) clean
|
||||
|
||||
.PHONY: distclean
|
||||
distclean: clean
|
|
@ -29,9 +29,6 @@ INSTALL_PROGRAM ?= $(INSTALL)
|
|||
|
||||
BINS = sjasmplus$(EXESUFFIX)
|
||||
|
||||
.PHONY: all
|
||||
all: $(foreach t,$(BINS),build/$(t))
|
||||
|
||||
ifeq ($(BUILD),mingw32)
|
||||
CMAKEFLAGS := -DCMAKE_TOOLCHAIN_FILE=../Toolchain-mingw32.cmake
|
||||
else ifeq ($(BUILD),mingw64)
|
||||
|
|
Loading…
Reference in New Issue