@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

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

bread80,
@bread80@mstdn.social avatar

Symbols updated, and schematic revised for the new pin positions.

bread80,
@bread80@mstdn.social avatar

I've replaced a few relays with diodes OR gates. I've also added optional inverters for the A and B inputs. Carry in of Bit 0 needs to be inverted, but not for subsequent bits, so that's not a job for this circuit.

With these additions, and the correct inputs on R, S, V and Carry in this design should be able to perform all the basic function of a Z80 ALU: Add, add and subtract with or without carry, AND, OR and XOR. And, of course, compare - which is simply a subtract with the output ignored.

bread80,
@bread80@mstdn.social avatar

A slight tweak to the circuit: I realised that A AND Cin was being evaluated twice (in K12). I factored them out with the help of an extra diode which has reduced the 'pole count' by one.

And a couple of visual tweaks to improve readability.

The numbers relate to sub-stages and correlate with the TTL implementation (from Ken Shirrif's blog post). They help with the analysis...

bread80,
@bread80@mstdn.social avatar

…and twenty minutes with pen and paper to verify it works.

There are six inputs (ignoring the subtraction inverters). That would be a giant logic table. And not all combinations are valid. The table at the bottom is an analysis of several partial results which I can use as a lookup for the main tables.

Note how the logic functions have fixed values first carry in, so less states to analyse. But they also need to ‘pass on’ that carry value to the next bit.

TheByteAttic, to Arduino
@TheByteAttic@mastodon.nl avatar

Open-source hardware 8-bit retro computer board based on Z80 and MC6502 microprocessors each running a #basic interpreter. The #Arduino "BIOS" is running on an AVR MCU and the design features 3x CLPDs that can be programmed as needed. Manufactured by
@olimex #retrocomputing #oshw
https://www.cnx-software.com/2024/02/09/cerberus-2100-basic-programmable-educational-board-with-z80-and-6502-8-bit-cpus/

bread80,
@bread80@mstdn.social avatar

@olimex @TheByteAttic Is there software for programming the CPLDs which is easy to get hold of and affordable? Is so then I’m very interested 🙂

And is there a UK distributor? Do Olimex ship to the UK these days?

bread80,
@bread80@mstdn.social avatar

@TheByteAttic @olimex Thanks. The Microchip site itself was not helpful in finding the tools!

bread80, to random
@bread80@mstdn.social avatar

And I only just found this. I didn’t realise the Flan name actually made it into production.

This means it’s a revision 4 board, from the first production run. The run with bugs in the video chip and ROM.

bread80, to random
@bread80@mstdn.social avatar

The Enterprise keyboard layout is coming along nicely. The photos show a printout of the design under the matrix.

I had to redo the horizontal positioning when I realised they used the same size matrix for both dimensions and the keys are 19mm x 19mm. The error was only 1mm across the width of the board but that’s plenty enough to cause problems.

The function keys and joystick are the only things which aren’t on the matrix.

Closeup of the keyboard centre.
Closeup of the joystick area.

bread80, to random
@bread80@mstdn.social avatar

I just merged my Z80 emulator into the compiler project. It can now run the compiled code without having to shell out to a separate program.

I'm wishing I did this ages ago. It wasn't nearly as hard as I thought it would be. At the moment it doesn't make any 'real' difference but it will make it possible to breakpoint, single step and modify in situ.

bread80, to keyboard
@bread80@mstdn.social avatar

I want to see if I can make my keyboard a bit less ‘squidgy’. I’ve bought a selection of the thinnest tactile switches I can find to experiment with. The switches here run from 0.8mm to 2.5mm.

bread80,
@bread80@mstdn.social avatar

The keyboard is constructed of a rubber mat with a dome for each key. The largest of the switches just sits inside a dome.

Underside of the mat showing the moulding under each dome which pushes into the matrix. The biggest of my switch samples just fits inside a dome.

bread80,
@bread80@mstdn.social avatar

My plan is to design a small section of PCB to run tests on.

The locating pins under the board are about 3mm tall. They need to position both the matrix and the rubber mat. Standard PCBs are 1.6mm thick. I’m planning to test different PCB thicknesses.

I note PCBWay can go down to 0.6mm on a $5 board. 0.6mm sounds mighty fragile. Especially on such a large board.

mikaellundin, to random
@mikaellundin@mastodon.social avatar

Can we please go back to Windows 3.11 for Workgroups, Eudora and Netscape Gold?

Write HTML with notepad.exe, with frameset and table layout. Upload to FTP with a CGI guestbook written in Perl.

Delphi, or just plain Borland Pascal. Looking up programming concepts in books. Typing in some assembler code from a magazine that you’ve no idea how it works, but it makes a cool plasma pattern.

Those were easier times.

bread80,
@bread80@mstdn.social avatar

@mikaellundin @mikej A language which lets me draw graphics, make sounds, read keyboard state in a single statement with no boilerplate.

A language in which I can craft a game loop in ten lines.

bread80,
@bread80@mstdn.social avatar

@mikej @mikaellundin So much was like that before MSDOS came along and ruined the party 🙁

thelastpsion, to random
@thelastpsion@bitbang.social avatar

Been thinking about and ASTs today. I've realised that I might be approaching this wrong.

OO C files are definition files. They're glorified mark-up, wrapping around snippets of C code that just gets copied to new files. There's no logic in them at all.

I basically need two arrays per file: a list of "classes" and their contents, and a list of "includes" and how they're, uh, included (EXTERNAL, INCLUDE, or REQUIRE).

It's still a tree, but it's got two distinct parts. Wonky tree.

bread80,
@bread80@mstdn.social avatar

@thelastpsion Variant records have the size of the largest variant.

In Delphi (and probably FP) strings are a managed type. The record will store a pointer. The actual string will be allocated elsewhere.

I’m not entirely sure what you’re trying to achieve, but maybe separate record types. The first field of each is a type identifier. You can use this to typecast as needed. A bit like a home brewed class system.

AverageDog, to books
@AverageDog@mastodon.social avatar

T3X/0 is a self-hosting compiler for CP/M, DOS, and Unix. It self-compiles in 10mins on a 4MHz Z80. Its implementation is described in my recent book, "Write Your Own Retro Compiler".
Download: http://t3x.org/t3x/0/
Book: http://t3x.org/t3x/0/book.html
, , , ,

bread80,
@bread80@mstdn.social avatar

@AverageDog “Rogue compiler writer”. I may have to steal that one.

bread80, to random
@bread80@mstdn.social avatar

I'm running final DRC checks and generating gerbers for the I found a naming error on the RAM control board which left a couple of pins not connected. It's now a case of 'can you just fit a couple more traces through the middle of that lot.'

NanoRaptor, to random
@NanoRaptor@bitbang.social avatar

This is what they took from us.

bread80,
@bread80@mstdn.social avatar

@NanoRaptor “Works wonders on breaking horses”. Do you give it to the horse or the person breaking the horse?

georgetakei, to random

Typos are my worst enema!

bread80,
@bread80@mstdn.social avatar

@georgetakei Reminds me of a company that quoted the ‘impotence’ of a loudspeaker.

bread80, to random
@bread80@mstdn.social avatar

What???

(Bloody LLMs)

lproven, to random
@lproven@vivaldi.net avatar

The rise and fall of the standard user interface

https://www.theregister.com/2024/01/24/rise_and_fall_of_cua/

IBM's SAA and CUA brought harmony to software design… until everyone forgot

<- by me on @theregister

bread80,
@bread80@mstdn.social avatar

@withaveeay @lproven Lotus Symphony was all separate parts bought in from other companies (except 1-2-3 of course).

The word processor was originally called Ami Samna IIRC and was rather good, with DTP like layout features and a good scripting language. I definitely missed it when I had to switch to the Borg equivalent.

bread80,
@bread80@mstdn.social avatar

@withaveeay @lproven Ah yes. I thought Symphony wasn’t quite the right word.

trcwm, to random
@trcwm@mastodon.social avatar

This one’s for @Dtl

bread80,
@bread80@mstdn.social avatar

@Dtl @trcwm Are you supposed to throw the milk in the harbour before the tea or after?

lopta, to Minecraft
@lopta@mastodon.social avatar

Drawing truth tables in sidewalk chalk with my son. "That's a NOT gate, I know that from !". Remember, talk to your children about logic gates before someone else does.

bread80,
@bread80@mstdn.social avatar

@lopta Teach your kids logic gates OR someone else will.

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