Tynemouth Software LLP - Old computers, New computers, Bespoke Web Design and Software Development, Computer repairs, IT and Media Services - www.tynemouthsoftware.co.uk

Saturday, 30 April 2016 Tynemouth Softw are Links

Tynemouth Software Shop PET Diagnostics - Upcoming Project Preview Vintage Computer Repairs Contact This is a preview of an upcoming project. Not sure if the name will stick, but at the moment it's called PET Exerciser (UPDATE: it didn't, it's now called 6502 Diagnostics). This started when I was repairing a few Twitter PETs and was using a NOP generator. This idea of these is the hard wire the NOP instruction onto the processor databus, the end result of that is it just steps through all the addresses sequentially, Support This Blog continually. That is useful to check address decoding, and see if chip enable pins are pulsing in the right way. The trouble is the 1MHz 6502 based NOP generator is a bit slow to check high address bits on a Donate via Patreon scope (at least one without digital storage), but too fast to check by eye. Donate via PayPal Buy something from my shop Etsy Store Tindie Store TFW8B Store Send me something interesting to repair / review / reuse / recycle

Search This Blog

Search

Blog Archive

I got to thinking, could I adjust the clock rate fed to the 6502 to get the pulses into a more usable range? ► 2017 (13) Before I started looking at that, I thought that it would be easier to just bypass the 6502 all together and ▼ 2016 (54) use a couple of 8 bit counters to cycle through all the address bus at whatever speed I chose. I did look ► December (3) at a few options for that, but it was going to be a bit messy as it would have ended up with 4 x 4 bit ► November (7) counters and a pulse generator, which was maybe going to be an 8 pin microcontroller. I then thought I could just use a microcontroller. And lo the PET exerciser diagnostics was born. ► October (4) ► September (2) ► August (6) ► July (4) ► June (3) ► May (9) ▼ April (4) PET Diagnostics - Upcoming Project Preview Acorn A3000 USB keyboard Sony HB75-P MSX USB keyboard with USB joystick Nissan Leaf - Three Years On I then got to thinking, if I had a few more pins on the microcontroller, I could access the databus and some of the control signals as well. Hmm. interesting. The prototype doesn't look as neat as that final ► March (5) PCB will. ► February (5) ► January (2)

► 2015 (79) ► 2014 (58) ► 2013 (44) ► 2012 (29) ► 2011 (5) ► 2010 (7)

Labels Commodore (114) Under that mass of wires is a Commodore PET, and on the breadboard is a micrcontroller, the DIP Repair (78) USB version of the one I will use on the final board. The microcontroller is connected to most of the pins in the Pet (55) 6502 socket. There isn't an actual 6502 involved any more. Before I got around to writing the code for the Keyboards (71) Vintage (50) Hardware (42) NOP generator. I was interested to see if I could actually drive the PET hardware to do anything Raspberry Pi (29) ZX Spectrum interesting. (29) 4032 (28) Arduino (28) VIC20 (27) AdventCalendar (25) Sinclair (25) ZX81 (24) C64 (22) 8032 (20) Review (19) Etsy (18) USB Joystick (17) PenultimateCartridge (15) Restoration (15) USB (15) pet microSD (13) Atari (11) IEEE-488 (10) BBC (9) Spectrum (9) Vinatge (9) ZX80 (9) 6502 (8) Electric Vehicles (8) Nissan Leaf (8) C128 (7) Electron (7) Rant (7) ZX81 Clone (7) 2001 (6) Acorn (6) Car (6) Keyboard (6) LED Clock (6) SD card (6) TVOut (6) Website Design (6) C16 (5) Diagnostics (5) Library (5) PET diagnostics (5) 8032-SK (4) Composite Video Mod (4) Data Recovery (4) Disk Drive (4) HTPC (4) Minstrel (4) PSU (4) Teardow n (4) ZX Spectrum Plus (4) 2600 This is the first test was a screen of incrementing characters, but as I got the hang of writing the PET (3) 3032 (3) 6502 diagnostics (3) 65XE video RAM, that quickly grew into a character table. If nothing else than to help me work out what (3) 8250 (3) DivMMC (3) GPIB (3) IBM characters to write the the video RAM to show on the screen - it's PETSCII, not ASCII. Since I can now 5160 (3) LCD Clock (3) Laptop (3) write to RAM, I can also poke things, and one useful poke on the PET is to change character sets from Preview (3) QL (3) SID (3) ST (3) TFW8B business mode (with uppercase and lowercase letters) to graphics mode (without lowercase but more (3) Toastrack (3) Upgrade (3) 1541 (2) symbols. This sets CA2 on the VIA which controls the high address line on the character ROM. 800XL (2) A3000 (2) A500 (2) A500+ (2) (2) Amstrad (2) CPC464 (2) Custom PC (2) Gate of India (2) I2C (2) ICL OPD (2) Ikea (2) MITx (2) Oric (2) Oric-1 (2) PET LCD (2) Pi Zero (2) Plus4 (2) Refurbished PCs (2) SATA (2) TI99/4A (2) Virus Scan (2) Z80 (2) ZX Spectrum +2 (2) 128K (1) 1571 (1) 3D Printing (1) 400 (1) 6530 (1) 8096 (1) Amazon (1) Android (1) Apple. (1) CP/M (1) CPC6128 (1) Chromecast (1) Colecovision (1) DL Mole (1) Datasette (1) Doctor Who (1) Google (1) Harlequin (1) IBM (1) LIRC (1) Logo Design (1) MSX (1) Microdrive (1) Model M (1) MythTV (1) Netflix (1) News (1) Nintendo (1) OUYA (1) PET exerciser (1) PIC (1) PLA Replacement (1) PS2 (1) Here you can see the PET board I was testing has a faulty character ROM, some of the symbols are not PartialSuccess (1) Phone (1) Power Supply displaying correctly in graphics mode. OK, this is proving rather interesting and should be very useful. (1) RISC OS (1) ROMRAM (1) RS232 (1) What next? Well, let's test the RAM. I'm currently working on a 2001 board, so I've only set it to test the Restoration. (1) SNES (1) Spanish (1) first 8K. I've split it into 1K blocks and tested by bit to help narrow down the faults. Subversion (1) TRS80 (1) TS1000 (1) Transfer (1) USB Mice (1) Windows 10 (1) Windows 8 (1) eMac (1) ebay (1) petSD+ (1)

Google+ Follow ers Dave Curran

Add to circles

The test algorithm I'm using is fairly simple, I'm just poking various values and reading back. I'm recording any bits that are different from the values written, and here it has picked up 2 errors on one RAM chip. This matches what BASIC was showing when the PET was running, it only detected the first 1K of RAM, so was showing around 800 bytes free. I've removed the chip I think it is, and retested.

83 have me in circles View all

Tynemouth Softw are Etsy Store

Good, it's showing 400 errors (that's 400 hex, 1024 decimal), all in the lower nibble, which is exactly the ZX Spectrum USB Keyboard Conversion kit area served by the 2114 chip removed. I tried to lay the screen out to match the orientation of the chips, so the second row of 2114 chips, right hand side is the culprit.

ZX Spectrum Plus USB Keyboard Conversion kit USB joystick adapter for 9 pin D Commodore / Atari style Joysticks

I replaced the chip and retested and it's now fine, and when I return this to 6502 control, it should detect all 8K of RAM again. The TMS2114L-20NL I have used there isn't an exact replacement for the TMS4045- 45NL, but is enough to prove the point whilst I try to locate something better. I'll probably use one of the pair that are the video RAM, and replace both of those with faster 2114 chips. Sinclair ZX81 USB Keyboard

Raspberry Pi inside Sinclair ZX81 USB Keyboard

You can see where I was also starting to test the ROMs. I've gone for a simple 16 bit checksum of the ROMs, and that seems to be working consistently. I've added a lookup table of CRC codes with descriptions for known good ROMs. I've got it plugged into one of my 6502 ROM/RAM boards for testing, so I have been able to get CRCs for most of the standard ROM sets already. This is a good way to identify faulty ROMs. Sinclair ZX Spectrum USB Keyboard

Raspberry Pi inside Sinclair ZX Spectrum USB Keyboard

Here some of the 6540 ROM chips are working (I've given the chip numbers of the good ones), but the others are coming back with different CRCs. The CRCs have also changed on those as I have repeated the test, so I guess they are faulty, or since it is only the x000 ones that are working, there may be a problem with the BA11 line that controls the x800 ones. More testing required. Sinclair ZX Spectrum Plus USB Keyboard

Raspberry Pi inside Sinclair ZX Spectrum Plus USB Keyboard

I've added in a test for video RAM before the screen is drawn, and inserted the results into the memory map. I'm testing the full 2K region, but the second 1K is a mirror of the first, apart from 80 column systems. I've also expanded the address ranges to test the 32K and 4K ROM sets on a 4032 system. These two modes may be a different build, jumper selectable, or maybe by a menu?

Sinclair ZX Spectrum + 2 USB Keyboard Commodore VIC 20 USB Keyboard £99.00

I'm getting a bit carried away, there are so many possibilities here, and I think this is going to turn into a very useful piece of kit. There any many more things I plan to add, such as scanning the keyboard to test the keyboard, and also to control a menu system to cycle between various tests. I can also add testing for datasettes, IEEE-488 drives and even printers. I need to look into initialising the CRTC on later PETs USB Keyboard so they can be used as well, and also reformat the screen for 80 column use. I could even include a simple BASIC interpreter....maybe not. It would also suit many other 6502 based machines, including the VIC20, BBC micro, and maybe some of the Atari 400/800 series. Anywhere there is a 6502 processor and a display that I can work out how to drive.

Raspberry Pi inside Commodore 64 USB Keyboard

So just to recap, this is being generated on a real PET, with the PET exerciser in the 6502 socket. It's a Commodore 64C USB Keyboard microcontroller with it's own ROM and RAM. No 6502 code is executed. No actual 6502 is used. No PETs were harmed in the testing of this product.

UPDATE: I've decided to go with PET diagnostics. I have also added a reset button and disconnected that from the onboard reset, instead monitoring that to show faults with onboard reset circuits.

Commodore 16 USB Keyboard

Commodore plus/4 USB Keyboard

UPDATE 2: I've changed the board to just 6502 diagnostics, as I will be looking at other systems to use (KIM-1, VIC20, BBC etc.), I'll keep PET diagnostics as the on screen title for the PET version of the software. I've removed the reset switch, but kept the reset monitoring. I've added some DIP switches to allow screen mode to be set and maybe some other options. The PCBs have now been ordered.

Atari 65XE USB Keyboard

Atari 65XE USB Keyboard with Joystick ports

UPDATE 3: The boards have arrived, but the PCB manufacturer has managed to mess up my design and rotated the ground pad of the main IC to short out several of the pins, including the +5V rail. This is what I had designed:

Raspberry Pi inside Atari 65XE USB Keyboard with Joystick ports TI99/4A USB Keyboard

This is what arrived:

Acorn Electron USB Keyboard

Now waiting for a second batch.

UPDATE 4: Still waiting for the boards, in the mean time, I've redesigned it a bit, with a bigger microcontroller. This now appears as a USB device and shows status in a serial terminal. This also has some analogue inputs so I can check the rise time of the power and reset pins (to check problems like I had with the Oric 1 repair recently).

UPDATE 5: I'll write this up properly once I have had time to do further testing, but the V1.1 boards have now arrived, with no pads rotated as far as I can see. The first one is now built up and being tested.

This is how it would be used, plugged into the CPU socket of a Commodore PET.

UPDATE 6: More on the testing of these new board. UPDATE 7: The new boards are available now.

If you want to support this blog, you can donate via Patreon or Paypal, or buy something from my store.

Posted by Dave Curran at 11:13 Labels: Pet, PET exerciser, Preview

+7 Recommend this on Google 9 comments

Add a comment as John Smith

Top comments

Dave Curran via Google+ 11 months ago - Shared publicly N ew blog post with a preview of an upcoming project - PET exerciser. http://blog.tynemouthsoftware.co.uk/2016/04/pet-exerciser-upcoming-project- preview.html

+1 1 · Reply 2

View all 4 replies

Jac Goudsmit 11 months ago O n the KIM-1/MicroKim you can disable the address decoder (by design) and re- enable it from the expansion port. The Propeller controle the address decoder to map selected onboard devices back into memory and can also replace those devices by emulated ones.

Dave Curran 11 months ago +1 + Jac Goudsmit I use the same2 thing in my ROM/RAM boards. In this case I wanted to test the address decoding and devices in situ, without making any changes, for fault nding etc.

David Snyder via Google+ 8 months ago - Shared publicly D o you think it would be possible to create a high speed 6510 for the C64? I think a replacement CPU would be awesome for the C64 that ran at 2 to 6 MHz would be awesome....or faster.

1 · Reply

Dave Curran 8 months ago P ossibly, but the rest of the C64 would need to remain at stock speed or the video would get messed up and the SID would sound too fast. The timing on a C64 is not quite right when it comes to RAM access, and because the VIC needs access to that It would also need to slow down to access any memory. So there

Dave Stevenson 11 months ago - Shared publicly H i Dave, looks like another interesting project/tool for the PET!

1 · Reply

Dave Curran 11 months ago T hanks. Actually I've been doing a bit more work on it, on other 6502 systems, VIC20, BBC etc. so not just the PET.

Newer Post Home Older Post

Subscribe to: Post Comments (Atom)

All content © Tynemouth Software. Simple theme. Powered by Blogger.