Giter VIP home page Giter VIP logo

zx-diagnostics's Introduction

zx-diagnostics

Firmware to allow functional testing of ZX Spectrum hardware and related clones.

Based on firmware written by Dylan Smith for his Spectrum Diagnostic Board.

Hardware schematics (and eventually PCB gerbers) originally by Dylan Smith, updates by Guesser and Mark Kinsey (1024MAK).

See the Wiki for full details.

zx-diagnostics's People

Contributors

brendanalford avatar zxguesser avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zx-diagnostics's Issues

Spectranet: Allow installer to return to BASIC

Installer currently locks paging and DI/HALTs at the end of the flash write in order to work around a bug on 128 machines. Need to resolve this bug (something fiddling with paging perhaps) and remove the requirement for the user to restart their machine,

Implement a menu for activating additional tests

Currently the method for activating additional tests (e.g. ULA, Keyboard, Soak test) is not obvious. It would be nice to add a menu that would allow activating these tests, or at least have a help screen showing the hot keys for activating these tests.

Flash utility does not select correct page to launch or program

Patrick Kerkhof reports the following:

"Hi Brendan,

i did some troubleshooting and this is what i found out, when selecting the following pages, these are the ones that are actually selected.

00 00
01 01
02 02
03 03

04 04
05 05
06 06
07 07

08 08
09 unable to select this page
10 10
11 11

12 19
13 20
14 21
15 22

16 23
17 24
18 25
19 26

20 27
21
22
23

24
25
26 01
27 02

28 03
29 04
30 05
31 06"

Seems that the routine to transform the selection keypress into a ROM index is broken for values over 8.

This needs to be fixed prior to releasing v0.32.

I can complete the list, but I can see the logic and can guess the results.

Errors building

I'm trying to build the latest master. Tried on Windows and Linux and both are throwing errors when building.

Tried with the latest sjasmplus version, and have also tried going back a few versions. Still fails.

************************
Building Diagboard stuff
************************
Building Diagboard detection routines...
SjASMPlus Z80 Cross-Assembler v1.14.3 (https://github.com/z00m128/sjasmplus)
Pass 1 complete (0 errors)
Pass 2 complete (0 errors)
Pass 3 complete
Errors: 0, warnings: 0, compiled: 800 lines, work time: 0.031 seconds
*****************
Building Main ROM
*****************

Building Test ROM...
SjASMPlus Z80 Cross-Assembler v1.14.3 (https://github.com/z00m128/sjasmplus)
Pass 1 complete (0 errors)
Pass 2 complete (0 errors)
print.asm(133): warning: value 0x5C6E is truncated to 8bit value: 0x6E
print.asm(709): error: Unexpected: _TRANS
print.asm(1015): error: Unexpected: _STRING
ulatest.asm(848): error: Unexpected: _TRANS, 21, "FAIL FAIL FAIL", 22, 15, 56, 0
include data: name=diagboard.bin (512 bytes) Offset=0  Len=512
Pass 3 complete
Errors: 3, warnings: 1, compiled: 11609 lines, work time: 0.219 seconds
Aborting main build.

Add delay to random fill test while smoke testing

Mark Smith has observed that the Sinclair Test Program sometimes fails with addressing errors, when zx-diagnostics does not detect any such fault.

The Sinclair Test Program tests memory like so:

  1. Fill all memory from 0x4000 to the top of memory with 0xFF
  2. Start again at 0x4000 until the top of memory, comparing the contents of the RAM location with the expected 0xFF
  3. Signal a failure if something else was found

The program then repeats the above steps for values of 0x55, 0xAA and 0x00.

A delay between the write and read stages of the Random Fill test may allow a presumed refresh failure to be caught in this manner. We will not add the delay to the simple memory test in the interests of testing brevity.

This should be added to the Spectranet and Tape tests as well as the standard diagnostics.

Soak test crashes back to the Game Menu on Dandanator! Mini hardware after second iteration

Root cause is that any writes to ROM address space are interpreted by the Dandanator PIC as a paging command after the device is unlocked to run the ROM checksum. This causes a crash second time around as there is a fencepost error somewhere in the lower RAM testing code that is benign on other devices, but triggers the Dandanator paging mechanism.

This also affects the memory browser which must be modified to prevent writes to the 0000-3FFF space when running on the Dandanator Mini.

(Reported by Matthew Logue)

PCB files

Hi, thanks for sharing. What program is used to generate the Gerbers? I tried to open the files in the "hardware" folder with Kicad, Altium, and Eagle, but none of them seems to work.

Hold a key to reset keyboard test

Related to #27, but maybe easier to implement, would it be possible to reset the keyboard test by holding a given key (delete?) for a long time. Nowadays, I press the NMI button to get this effect, as when testing the extended keyboards, you end up marking some keys as tested when they were not, and it's not easy to see anymore what was detected.

Resetting the test would also simplify testing the extended keyboard, as it would be simple to see that both keys necessary for the equivalent keypress were activated.

ROM: Soak test detection sometimes fires when uncommanded

This is related to the introduction in v0.32 of a check for the Kempston fire button being pressed to kick off the soak test - suspect floating bus values confusing the check. This needs to be fixed prior to release of v0.32.

Feature request: another tape image with different tests

Would it be possible to build a different tape image with at least some of the tests that are not included in the current one? I understand that the tape image is loaded to RAM, so for RAM tests it's best to have a small program. However, I have a 128 I'd like to test fully, but I don't yet have any ROM accessories for it. Thanks.

Flash Utility - RAMTOP mismatch

Flashutilrom.asm sets a high stack at 0xfeff - this will fail the RAMTOP check later in flashutil.rom.

This would impact calling the Flash utility directly from another ROM manager or when running it in Page 0.

Can flash util be updated for AM29F010?

I've got a few AM29F010 chips and wondering if its possible to upgrade the flashing utility to include these. They program fine and the ROM runs in page 0, but the chips do not erase. I"m guessing its because the sector size is 16k and it's a 1 Megabit chip.

http://noel.feld.cvut.cz/hw/amd/16736f1.pdf

The autoselect is also 01h/20h.

I'll mess around with the asm code and see if I can get it working though not holding my breath as my asm coding is noob level.

Spectranet patch

I appreciate that the Spectranet module was deprecated some time ago, but on the off-chance it is ever brought back, I've patched the installer to support future boards using SST flash chips

ZXGuesser@f19e69e

I've updated the binary on my tnfs server (tnfs://zxnet.co.uk/diagnostics)

Memory test missing faulty IC's in some limited cases

Report from Pluto63 on WoS that v0.31 run on a toastrack with faulty IC17 and IC22, only reported a fault with IC17. When IC17 was replaced the fault with IC22 was then reported on the next run.

User states this was not an issue with the v0.2x version.

Awaiting memory IC's that caused the actual failure that are being shipped to me to reproduce.

Allow joystick control of startup options

Currently, the soak test feature can be triggered by holding the FIRE button down on either a Kempston or a Sinclair joystick.

Andrew Bunker has requested that other features such as the ULA test, test card etc. be accessible in the same manner.

How to Build (prerequisites)

Trying to build from the sources, and missing some tools.

The "how to build" states : all that needs to be done is to run the build.bat
But there is probably a little more before the build will succeed.

Of course I did copy sjasmplus.exe to a folder which is in my path.
A few errors appear when the build.bat is run, namely:

  • git (I did not not have a local git yet);
  • installed git, and I get further git related errors: "fatal, not a git related repository"
    and the script runs further and reports :

"************************
Building Diagboard stuff


Building Diagboard detection routines...
SjASMPlus Z80 Cross-Assembler v1.07 RC7 (build 02-04-2008)
Pass 1 complete (0 errors)
Pass 2 complete (0 errors)
Pass 3 complete
Errors: 0, warnings: 0, compiled: 1292 lines, work time: 0.016 seconds


Building Main ROM


Building Test ROM...
SjASMPlus Z80 Cross-Assembler v1.07 RC7 (build 02-04-2008)
testrom.asm(49): error: [LUA] attempt to concatenate global 'branch' (a nil value)
Pass 1 complete (1 errors)
testrom.asm(49): error: [LUA] attempt to concatenate global 'branch' (a nil value)
Pass 2 complete (2 errors)
testrom.asm(49): error: [LUA] attempt to concatenate global 'branch' (a nil value)
testrom.asm(88): error: Label not found: BUILD_TIMESTAMP
testrom.asm(92): error: Label not found: GIT_BRANCH
testrom.asm(96): error: Label not found: GIT_COMMIT
testrom.asm(100): error: Label not found: HOSTNAME
Pass 3 complete
Errors: 7, warnings: 0, compiled: 12288 lines, work time: 0.094 seconds
Aborting main build."

And are there more requirements such as bin2tap, ... ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.