ZX Spectrum Utilities: (zx-spectrum-utils)

Overview

ZX Spectrum Utilities: (zx-spectrum-utils)

Here are a few utility programs that can be used with the ZX Spectrum roms. The langage of choice here is Python so it would help if you have know in this langauge. The ZX Spectrum is one of the first home computers from the early 1980s. More information can be found here: https://en.wikipedia.org/wiki/ZX_Spectrum

1. Graphics Viewer: graphics_viewer

Can be used to pull in a spectrum file like a snap, z80 or trz file and see the content as images. The idea of this tool is to allow the user to find graphics in the old games and be able to have fun seeing them and also display the assembler DBs that would be required to created them. Below is a screen shot

graphics_viewer

There are a few key concepts to understand when using this program:

  • file: You are displaying the content of a file on the screen in a graphical format in the hopes to find graphics
  • memory: The memory pointer is shown in the top left corner and this is controlled by the arrow keys
  • increase: Is the value that memory will change when certain keys are pressed. Changing this number will allow you to move around memory either more quickly or more refined
  • columns: There are several columns and these are described below
  • moving image: Images can be seen as moving by placing them on top of each other over time. For this we need an image count and size. In the example shown in the screen shot above it is using a 2x2 image size and an image count of 4. The red text "2x2" would need to be pressed.
  • image count: the number of images in the moving image section from 1 to 8.
  • red text: This is the size of the image you are interested in displaying for the moving graphic

Columns

  • first column: Is the memory location, see how the number increase as it goes down the screen
  • Green text: This is the actual content of that memory location
  • 8 - 8 bit sized images
  • 16 - 16 bit sized images
  • 24 - 24 bit sized images
  • 32 - 32 bit sized images
  • 64 - 64 bit sized images

Keys

  • Up/down - move the memory pointer by the increase amount (fast memory movement)
  • Left/right - move memory pointer by 1 (refined/slow movement)
  • Page up/down - change the memory increase amount
  • f - Read a new file
  • d - Show assembler DBs for the moving image
  • 1,2,3,4,5,6,7,8 - the number of images in the moving image
  • q - quit (or escape)

Mouse Control

  • Click green text: Move the memory pointer to that value
  • Click numbered column (8, 16, 24, 32, 64): Dumps that columns assember DBs
  • Click red text: Select the moving image size. For example 2x2

Getting Started

  • Install python: https://www.python.org/downloads/
  • Start a command prompt, clone the repo locally, and change to the root folder
  • It is probably best to create a local virtual environment under the root, lets say under venv
    • python -m venv venv
  • To active this python version
    • venv\Scripts\activate
  • update pip (optional)
    • python.exe -m pip install --upgrade pip
  • Install all the pre-req modules
    • pip install -r requirements.txt
  • Run Graphics Viewer:
    • python graphics_viewer.py

2. Developers / Pull Requests

If you would like to contribute to this repo then please submit a pull request. Code should be compliant to flake8 and pylint. Pull requests should contain:

  • APP_VERSION: An updated version number
  • CHANGELOG.md: An entry in the changelog so that we know when things were introduced
  • Add any additional files to the quick_test.cmd
  • Whatever else you want commit
  • Ensure quick_test.cmd runs without any errors
Owner
Graham Oakes
Graham Oakes
A set of Python scripts to surpass human limits in accomplishing simple tasks.

Human benchmark fooler Summary A set of Python scripts with Selenium designed to surpass human limits in accomplishing simple tasks available on https

Bohdan Dudchenko 3 Feb 10, 2022
Library for processing molecules and reactions in python way

Chython [ˈkʌɪθ(ə)n] Library for processing molecules and reactions in python way. Features: Read/write/convert formats: MDL .RDF (.RXN) and .SDF (.MOL

16 Dec 01, 2022
Conveniently measures the time of your loops, contexts and functions.

Conveniently measures the time of your loops, contexts and functions.

Maciej J Mikulski 79 Nov 15, 2022
Let's renew the puzzle collection. We'll produce a collection of new puzzles out of the lichess game database.

Let's renew the puzzle collection. We'll produce a collection of new puzzles out of the lichess game database.

Thibault Duplessis 96 Jan 03, 2023
✨ Un juste prix totalement fait en Python par moi, et en français.

Juste Prix ❗ Un juste prix totalement fait en Python par moi, et en français. 🔮 Avec l'utilisation du module "random", j'ai pu faire un choix aléatoi

MrGabin 3 Jun 06, 2021
Quickly edit your slack posts.

Lightning Edit Quickly edit your Slack posts. Heavily inspired by @KhushrajRathod's LightningDelete. Usage: Note: Before anything, be sure to head ove

14 Nov 19, 2021
A script to check for common mistakes in LaTeX source files of scientific papers.

LaTeX Paper Linter This script checks for common mistakes in LaTeX source files of scientific papers. Usage python3 paperlint.py file.tex [-i/x inc

Michael Schwarz 12 Nov 16, 2022
A tool to create the basics of a project

Project-Scheduler Instalação Para instalar o Project Maker, você necessita está em um ambiente de desenvolvimento Linux ou wsl com alguma distro debia

2 Dec 17, 2021
An online streamlit development platform

streamlit-playground An online streamlit development platform Run, Experiment and Play with streamlit Components Develop full-fledged apps online All

Akshansh Kumar 3 Nov 06, 2021
A simple python implementation of Decision Tree.

DecisionTree A simple python implementation of Decision Tree, using Gini index. Usage: import DecisionTree node = DecisionTree.trainDecisionTree(lab

1 Nov 12, 2021
The producer-consumer problem implemented with threads in Python

This was developed using a Python virtual environment, I would strongly recommend to do the same if you want to clone this repository. How to run this

Omar Beltran 1 Oct 30, 2021
Go through a random file in your favourite open source projects!

Random Source Codes Never be bored again! Staring at your screen and just scrolling the great world wide web? Would you rather read through some code

Mridul Seth 1 Nov 03, 2022
Obsidian tools - a Python package for analysing an Obsidian.md vault

obsidiantools is a Python package for getting structured metadata about your Obsidian.md notes and analysing your vault.

Mark Farragher 153 Jan 04, 2023
SH-PUBLIC is a python based cloning script. You can clone unlimited UID facebook accounts by using this tool.

SH-PUBLIC is a python based cloning script. You can clone unlimited UID facebook accounts by using this tool. This tool works on any Android devices without root.

(Md. Tanvir Ahmed) 5 Mar 09, 2022
convert a dict-list object from / to a typed object(class instance with type annotation)

objtyping 带类型定义的对象转换器 由来 Python不是强类型语言,开发人员没有给数据定义类型的习惯。这样虽然灵活,但处理复杂业务逻辑的时候却不够方便——缺乏类型检查可能导致很难发现错误,在IDE里编码时也没

Song Hui 15 Dec 22, 2022
A simple tool that updates your pubspec.yaml file, of a Flutter project, without altering the structure of your file.

A simple tool that updates your pubspec.yaml file, of a Flutter project, without altering the structure of your file.

3 Dec 10, 2021
BOLT12 Lightning Address Format

BOLT12 Address Support (DRAFT!) Inspired by the awesome lightningaddress.com, except for BOLT12: Supports BOLT12 Allows BOLT12 vendor string authentic

Rusty Russell 28 Sep 14, 2022
This utility lets you draw using your laptop's touchpad on Linux.

FingerPaint This utility lets you draw using your laptop's touchpad on Linux. Pressing any key or clicking the touchpad will finish the drawing

Wazzaps 95 Dec 17, 2022
Python code to remove empty folders from Windows/Android.

Empty Folder Cleaner is a program that deletes empty folders from your computer or device and removes clutter to improve performance. It supports only windows and android for now.

Dark Coder Cat | Vansh 4 Sep 27, 2022
Pass arguments by reference—in Python!

byref Pass arguments by reference—in Python! byrefis a decorator that allows Python functions to declare reference parameters, with similar semantics

9 Feb 10, 2022