@bread80@mstdn.social avatar

bread80

@bread80@mstdn.social

Amstrad CPC, RC2014, Z80, Raspberry Pi Pico, TTL processors and the occasional bit of Eurorack

This profile is from a federated server and may be incomplete. Browse more on the original instance.

bread80, to random
@bread80@mstdn.social avatar

I’m reading up on this XZ security issue. Does it affect the XZ80 and XZ81 or is it only the XZ Spectrum that’s at risk?

bread80, to random
@bread80@mstdn.social avatar

Everyone: Amstrad is back!

Me: That kerning is atrocious.

bread80, to random
@bread80@mstdn.social avatar

Say hello to the CPC Modular. This is an built using a slightly modified backplane. Not exactly an RC2014 due to Amstrad IO quirks.

Current status: video is outputting at correct frequencies but SCART converter isn’t detecting a proper signal. But that means CPU and ROM are working and configuring the 6845.

The design uses SRAM and modifies a few signals in order to do that. Im suspecting an issue in those circuits.

Front view.
Front three quarters view.

bread80, to random
@bread80@mstdn.social avatar

Returning to the Z80 ALU core implemented in relays. The first task is to redo the relay symbols. Kicads default generic relay shows the solenoid repelling the contacts, rather than attracting them. It's messing with my head.

In the image I've update the two symbols on the left. The rest are still defaults.

(PS Kicad only has a generic symbol for the single pole relay. I extended this to create the tow and three pole versions).

#RelayLogic

bread80, to random
@bread80@mstdn.social avatar

I'm adding a basic terminal to the #Datapoint 2200 simulator. It's listening to output ports (input still to do).

Here's a video of it saying "Hello World" in it's own fashion. Program listing in video comments.

https://youtu.be/FzSDf94Q0Ao

#TTLProcessor #Datapoint2200

bread80, to random
@bread80@mstdn.social avatar

How’s your Sunday morning going? I’m playing Buckaroo with oscilloscope probes.

If you’ve never used these you have now idea how easily they spring off.

bread80, (edited ) to random
@bread80@mstdn.social avatar

What is your preferred choice of backplane connector for a modular 8-bit computer?

Do you have a preference on price, useability, durability, ease of module design?

Is there any difference from an electrical perspective (signal integrity)?

I'm thinking of maximum signal frequencies below 20MHz.

Boosts appreciated.

bread80, to random
@bread80@mstdn.social avatar

BBC micro people: our BASIC has a built in assembler.
Amstrad people: we see your built in assembler and raise you MAXAM.

bread80, to random
@bread80@mstdn.social avatar

If Gulliver’s Travels was written today it would be about the GIFfians and the GIFfians, who fight wars over pronunciation.

Also, the book would be pronounced Julliver’s Travels.

bread80, to random
@bread80@mstdn.social avatar

I'm back onto the this weekend. This time working on the cards. I've tweaked the connectors for consistent placement in both X and Y dimension and finished the outline for the lower half of the boards - ventilation slots at the top still to be finalised.

I'm now redoing the traces to/from the connectors - here you can see the connector had to be nudged to the left so the traces aren't quite aligned properly.

bread80, to random
@bread80@mstdn.social avatar

Not much progress on the #CPCModular this weekend. I've been procrastinating about finalising the vents[0] along the top. Lots of finicky dimensions to measure and calculate. But the first PCB now has a completed outline and I now know how to bend KiCad to my will.

Hopefully a bit of tactical cut and paste will apply this to the other boards.

[0] Anyone claiming these aren't vents risks getting slapped in the face with a ZX80.

The same board in the KiCad layout designer. Looking surprising neat, if I do say so myself.

bread80, to random
@bread80@mstdn.social avatar

Next up for the #CPCModular is a CPU board. The original version for RC2014 used a standard RC2014 board, but I need one with an MX4 connector.

Not the most complex schematic to design, and the PCB will be pretty barren. I've added LEDs for the I/O address lines. Potentially they'll show which devices are being accessed. More usefully they'll show if the CPU is running, something I would have found very useful on previous computer builds :)

#Amstrad #z80

bread80, to random
@bread80@mstdn.social avatar

I was aiming to get the #CPCModular to the fab before Christmas, but I've been distracted by other projects the last week or two.

But the keyboard is now fully updated:

  • Connectors changed to IDC headers for convenience.
  • New connector added for the Modular, using a '6128 pinout. At the back of the PCB for better cable routing.
  • Larger legend which may make it practical to use cheaper switches.
  • Locating lugs added to switch footprints for easier assembly.
bread80, to random
@bread80@mstdn.social avatar

Picking up the project. I had to cut the reset line because the picos where being held in reset state.

The board has a small programmable logic chip. One of its functions is to translate the leading edge of the CPCs reset signal into a short pulse. This gives the picos time to boot before the CPC reset ends.

It turns out I had the output polarity wrong. It was giving a short high on the reset line. A quick reprogram and that’s issue 1 sorted 🙂

bread80, to random
@bread80@mstdn.social avatar

RIP Z80 🥲

End of life notification letter:
https://www.mouser.com/PCN/Littelfuse_PCN_Z84C00.pdf

bread80, to random
@bread80@mstdn.social avatar
bread80, to random
@bread80@mstdn.social avatar

I've not come across this project before. A modular Commodore 64. Link (in German): https://www.forum64.de/index.php?thread/108496-tube64/&pageNo=10

bread80, to random
@bread80@mstdn.social avatar

'Clear the carry tiggle'.

I think they meant to say 'toggle', although twice suggests it may be intentional.

The documentation usually refers to 'flip-flops' as opposed to 'flags', or 'toggles'.

Section 2.6 of the Datapoint Programmers Manual describing the 'Control Flip-Flops'. There are four: carry, zero, sign and parity. Each is reference by a capital letter (C, Z, S or P) with and a subscripted lower case f.

bread80, to random
@bread80@mstdn.social avatar

I like how the assembler has pseudo instructions to load a 16-bit value into the H, L and D, E registers. Strangely there's no equivalent for B, C.

bread80,
@bread80@mstdn.social avatar

The 8008 assembler on the other hand requires some gymnastics to deal with a 16-bit label. The \HB\ prefix is specifying the high byte of the address. Note also, at lest in this codebase, there are no labels for data storage areas. The high byte value uses the label for 256-byte page number number. The low byte uses a magic constant.

I don't know if that's an assembler shortcoming or just coding style (saving code and memory?)

bread80, to random
@bread80@mstdn.social avatar

There's a version of BASIC available for the Intel 8008 called SCELBAL. I've been looing to see it it could be back-ported to the Datapoint 2200.

The first image is the subroutine to increment a 16-bit value in the H and L registers on the 8008. The second is the equivalent for the 2200. One of the additions to the 8008 was INC and DEC instructions (INx, DCx).

On the Datapoint all ALU ops have to go via the A register.

INCHL* LAL AD 1 LLA LAM AC 0 LMA RET

bread80,
@bread80@mstdn.social avatar

...Which means every instance of INx or DCx needs to be modified to involve the A register, and the nearby codes needs to be inspected to see if there is a meaningful value in A. If so that value needs to be moved elsewhere, or the code rewritten to use different registers.

Which, sadly, means the entire code base would need an rewrite :(

bread80,
@bread80@mstdn.social avatar

The Datapoint assembler can even handle expressions! But only three operations: Add, Subtract and 'high-byte'.

bread80, to random
@bread80@mstdn.social avatar

Now to get memory writes working in the Datapoint simulator. There's a /MEMORY_WRITE_READY input which needs to be driven. The circuit for this is on the keyboard decoder PCB.

Unconnected to the rest of that board, except for a POR output. Not the first bit of circuit I've found spilled onto a different board.

The circuit drives the /MEM_WRITE_READY line while the hardware bootloader reads data from tape. I can just glue it high for now.

A close up of the power on reset and reboot circuit which drives the /MEMORY_WRITE_READY pin and others associated with bootloading.

bread80,
@bread80@mstdn.social avatar

For anyone who may not be aware, the Datapoint has no ROM (except character ROMs). At (re)boot times the machine rewinds the first tape deck and loads the first program record on it. This is done by directly driving the address counters in the processor.

And all of this is done in hardware.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • mdbf
  • everett
  • osvaldo12
  • magazineikmin
  • thenastyranch
  • rosin
  • tester
  • Youngstown
  • Durango
  • slotface
  • ngwrru68w68
  • kavyap
  • DreamBathrooms
  • megavids
  • InstantRegret
  • ethstaker
  • GTA5RPClips
  • tacticalgear
  • normalnudes
  • Leos
  • modclub
  • khanakhh
  • cubers
  • cisconetworking
  • anitta
  • provamag3
  • lostlight
  • All magazines