This commit is contained in:
antoniovillena 2021-05-10 17:16:38 +02:00
commit 21063ecead
32 changed files with 1582 additions and 838 deletions

View File

@ -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.

View File

@ -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.

BIN
doc/img/bbcmicro.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
doc/img/keyboardbbc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 KiB

BIN
doc/img/vectrex.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 KiB

73
firmware/scroll/Makefile Normal file
View File

@ -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:;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

BIN
firmware/scroll/music.stc Normal file

Binary file not shown.

View File

@ -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/

BIN
firmware/scroll/playstc.bin Normal file

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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'

View File

@ -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

5
sdk/.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
# SPDX-FileCopyrightText: 2021 Ivan Tatarinov <ivan-tat@ya.ru>
#
# SPDX-License-Identifier: CC0-1.0
conf.mk

View File

@ -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)) $@

View File

@ -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)

View File

@ -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

0
sdk/lib/liblodepng.dll Normal file → Executable file
View File

5
sdk/src/.gitignore vendored
View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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)