I like to work on mini models and diorama’s.
The fine miniature work helps me relax, it’s a zen moment for me.
Address decoder in a ATF22V10
Whereas i needed to use several logical components to make a address decoder, below i only need one!
cat addressdecoder-fash.PLD
ATF22V10 (GAL22V10)
Address Decoder
PHI2 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 GND
xx xx RAM ROM SID ACIA VIA1 VIA2 DEV0 DEV1 BANK VCC
/RAM = PHI2 * /A15 * /A14
/ROM = A15 * BANK
/SID = /A15 * A14 * A13 * A12
/VIA1 = /A15 * A14 * A13 * /A12 * /A11
/ACIA = /A15 * A14 * A13 * /A12 * A11
/VIA2 = /A15 * A14 * /A13 * A12
/DEV0 = A15 * /BANK
DESCRIPTION
Address decoder
galasm addressdecoder-fash.PLD # Generates below file which i can flash into the PLD
cat addressdecoder-fash.jed
Used Program: GALasm 2.1
GAL-Assembler: GALasm 2.1
Device: GAL22V10
*F0
*G0
*QF5892
*L0924 11111111111111111111111111111111111111111111
*L0968 11100111111111111111111111111111111111111111
*L1496 11111111111111111111111111111111111111111111
*L1540 11111011011110110111111111111111111111111111
*L2156 11111111111111111111111111111111111111111111
*L2200 11111011011101111011101111111111111111111111
*L2904 11111111111111111111111111111111111111111111
*L2948 11111011011101111011011111111111111111111111
*L3652 11111111111111111111111111111111111111111111
*L3696 11111011011101110111111111111111111111111111
*L4312 11111111111111111111111111111111111111111111
*L4356 11010111111111111111111111111111111111111111
*L4884 11111111111111111111111111111111111111111111
*L4928 01111011101111111111111111111111111111111111
*L5808 01000101010101010100
*L5828 0100000101100100011001000111001001100101011100110111001100100000
*C50fa
*
b734
So one chip replaces schematic below!
Cool terminal combo
I was using zevv’s bucklespring way back since he was beta testing.
https://github.com/zevv/bucklespring
Also cool-retro-term, i used whenever i felt nostalgic.
But both at the same time, how much fun is that!
(Both newly installed on my laptop, which i had to reinstall, because i f*cked it up beyond repair. installing openxr stuff. OpenXR is an open, royalty-free standard for access to virtual reality and augmented reality platforms and devices. )
Programming ATF22V10 PLD – 7 Segment with Linux
The ATF22V10 is a Programmable Logic Device. This means you can program the logic in the chip.
Internally it looks like a big matrix of connections which you can program to connect/disconnect from certain logic.
It has just a bunch of inputs/outputs
So if we want to have a 7 Segment decoder (you can easily buy a BCD decoder .. but these only work for displaying 0-9 and not 0-9A-F for displaying HEX numbers)
| Binary IN | 7 Segment decoded | Displays |
| D C B A | A B C D E F G | |
| 0 0 0 0 | 1 1 1 1 1 1 0 | 0 |
| 0 0 0 1 | 0 1 1 0 0 0 0 | 1 |
| 0 0 1 0 | 1 1 0 1 1 0 1 | 2 |
| 0 0 1 1 | 1 1 1 1 0 0 1 | 3 |
| 0 1 0 0 | 0 1 1 0 0 1 1 | 4 |
| 0 1 0 1 | 1 0 1 1 0 1 1 | 5 |
| 0 1 1 0 | 1 0 1 1 1 1 1 | 6 |
| 0 1 1 1 | 1 1 1 0 0 0 0 | 7 |
| 1 0 0 0 | 1 1 1 1 1 1 1 | 8 |
| 1 0 0 1 | 1 1 1 1 0 1 1 | 9 |
| 1 0 1 0 | 1 1 1 0 1 1 1 | A |
| 1 0 1 1 | 0 0 1 1 1 1 1 | B |
| 1 1 0 0 | 1 0 0 1 1 1 0 | C |
| 1 1 0 1 | 0 1 1 1 1 0 1 | D |
| 1 1 1 0 | 1 0 0 1 1 1 1 | E |
| 1 1 1 1 | 1 0 0 0 1 1 1 | F |
Now we see that segment A is 1 in the case of (0,2,3,5,6,7,8,9,A,C,E,F)
When programming the PLD we can write that as: (note / means inverted a plus is OR, and * is AND)
So A is 0 in case of input being (1,4,B,D)
/QA = /D1 * /C1 * /B1 * A1
+ /D1 * C1 * /B1 * /A1
+ D1 * /C1 * B1 * A1
+ D1 * C1 * /B1 * A1
Complete code for galasm
Compiling and burning
GAL22V10
7SEGMENT
Clock D1 C1 B1 A1 D2 C2 B2 A2 NC NC GND
/OE NC NC NC QG QF QE QD QC QB QA VCC
/QA = /D1 * /C1 * /B1 * A1
+ /D1 * C1 * /B1 * /A1
+ D1 * /C1 * B1 * A1
+ D1 * C1 * /B1 * A1
/QB= /D1 * C1 * /B1 * A1
+ /D1 * C1 * B1 * /A1
+ D1 * /C1 * B1 * A1
+ D1 * C1 * /B1 * /A1
+ D1 * C1 * B1 * /A1
+ D1 * C1 * B1 * A1
/QC = /D1 * /C1 * B1 * /A1
+ D1 * C1 * /B1 * /A1
+ D1 * C1 * B1 * /A1
+ D1 * C1 * B1 * A1
/QD= /D1 * /C1* /B1 * A1
+ /D1 * C1 * /B1 * /A1
+ /D1 * C1 * B1 * A1
+ D1 * /C1 * B1 * /A1
+ D1 * C1 * B1 * A1
/QE = /D1 * /C1 * /B1 * A1
+ /D1 * /C1 * B1 * A1
+ /D1 * C1 * /B1 * /A1
+ /D1 * C1 * /B1 * A1
+ /D1 * C1 * B1 * A1
+ D1 * /C1 * /B1 * A1
/QF = /D1 * /C1 * /B1 * A1
+ /D1 * /C1 * B1 * /A1
+ /D1 * /C1 * B1 * A1
+ /D1 * C1 * B1 * A1
+ D1 * C1 * /B1 * A1
/QG = /D1 * /C1 * /B1 * /A1
+ /D1 * /C1 * /B1 * A1
+ /D1 * C1 * B1 * A1
+ D1 * C1 * /B1 * /A1
DESCRIPTION
A 7 segment hex decoder
galasm 7seghex.gal
minipro -p ATF22V10CQZ -w 7seghex.jed
minipro -p ATF22V10CQZ -w 7seghex.jed Found TL866II+ 04.2.129 (0x281) Warning: Firmware is newer than expected. Expected 04.2.128 (0x280) Found 04.2.129 (0x281) VPP=12V Warning! JED file doesn't match the selected device! Declared fuse checksum: 0x98D5 Calculated: 0x98D5 ... OK Declared file checksum: 0x40B3 Calculated: 0x41A8 ... Mismatch! JED file parsed OK Use -P to skip write protect Erasing... 0.33Sec OK Writing jedec file... 5.01Sec OK Reading device... 0.32Sec OK Writing lock bit... 0.35Sec OK Verification failed at address 0x16C6: File=0x01, Device=0x00 < ------------------ Gives error, but burning seems okay henri@zspot:~/projects/galasm$ minipro -p ATF22V10CQZ -r 7seghex.out Found TL866II+ 04.2.129 (0x281) Warning: Firmware is newer than expected. Expected 04.2.128 (0x280) Found 04.2.129 (0x281) Reading device... 0.32Sec OK Gives all zeros as output, but device works!


Address decoding with split IO
Made a simulation of my new address decoder.
It uses a 74LS138 and a bunch of NAND gates.
You can safe using 4 NAND gates if you are not going to use split IO
| Address | ||
| 8000-FFFF | ROM | ROM |
| 7000-7FFF | Sound chip | SID |
| 6000-6FFF | Display + cursor | VIA1 |
| 5000-5FFF | Keymatrix | VIA2 |
| 4800-4FFF | split io | IO |
| 4000-47FF | split io | IO – ACIA |
| 0000-3FFF | Uses clock | RAM |
UPDATE: Found some 74LS139, so i could have changed some things around.
Try it over here:
180 VR Video test
360 degrees Video test
Video drinking beer in the garden, use mouse to move!
Eurocards
UPDATE 20240927 PCBs are in
I found some stuff while sorting out some old computer stuff.
Way back, when my Amiga was my main computer, i wanted to make my own version. A modular one.
So i started to segmentize the amiga, to put it on several exchangeable cards.
Eurocards are standardized prints 150mm x 100mm, mostly with a DIN41612 connector.
When you make modules you can change/upgrade/test, you can have a very easy interchangeable system using a backplane like this
So i started planning those modules:
- CPU – 68000 but upgradeable to 68030 or alike
- Memory – With expansion
- Sound
- Video
- More IO possibilities
- Keyboard (see more at the bottom of this page)
I had a nice case which could hold a big backplane, custom powersupply. And a front panel containing drives, leds and knobs. (I know i have more info on this somewhere on my fileserver)
A nice example picture i found on danceswithferrets website
I never finished this project.
I used Tech Manuals and print layouts to understand how things where done.
I started to draw the modules like they where placed on the print on semi transparent (chalk)paper, the kind of paper that was used for electronic and mechanic diagrams.



UPDATE 20240927 PCBs are in

Selling a lot of my computer collection
UPDATE : Bought after selling these
The last days i’ve been selling a lot of my old computers.
They have been in my collection for many years, but now its time to part.
Time for others to enjoy them.
(Instead of posting which ones are being sold and which i’ve still got on this page i’ll make another post)
I started collecting when i studied computer sciences.
It’s a wonder my parents attic wasn’t collapsing.
(They let me store many computers on their attic, let me run a mainframe in the house (previous post) and let me have computer-parties (pre-lan) in their home. (They even left, and gave me the space) .. 15+ teens with computers … there was a pingpong table in the livingroom (besides the other tables in the house ) For all computers.
Then i’ve got even more, when living on my own. (At some point about 140. )
A few years later i got rid of uninteresting computers (to my taste at that time) and incomplete ones. Then i filtered-out the non working.
Still leaving with a lot of computers, i kept these for many years.
Now i only want the ones i’ve worked with, or are special to me.
My first computer was a Commodore Vic-20. Friends had the popular C64. So i kept 2 of both.
In Junior Technical School i’ve used the BBC Acorn a lot (Funny story below)
My then friend Richard had a Atari ST, loads of fun we had with that machine, so i’m keeping a Atari 1040STf.
Another friend used a Apple SE, so that one i also keep for now.
I’ve been programming a lot on 80×86, the first dos PC’s, i’m still looking for a old machine (Laser XT) which i used way back then. But for now i’ve got a Sinclair PC200.
I’ll keep a old Commodore PET 2001, because its cute.
Besides having a cute PET, i’ve got a Holborn System. Made in Holland (Enschede), there are only a few left according to some sites: only 200 made! (Holborn means Holland Born) One of the inventors was from Holten, my birthplace. (Polak)


At school we kept a list of everyone’s collection.
Soo .. the story about the BBC Acorn.
When i was at school outside study hours, i went to the computer lab.
This was one classroom with about 16 BBC Acorns and a master (teacher station). When they saw how enthusiastic i was, i got the key to the classroom. I even got access to the master system. And after a little hacking i’ve gained access to the teachers files.
There was a simple network system, i think it was called Econet.
The teachers system was the only one with a disk station.
I liked the ‘highres’ line graphics you could make on the machines. (640×256)
So i’ve wrote a lot of programs using this mode.
I even wrote a program which drew a 3D robotarm on screen using wireframe graphics.
At that time my mathematics scores where .. bad.
Wasn’t interested i think.
But drawing 3D robotic arms are not possible using mathematics, like using sinus, triangulary etcetera.
So when my mathematics teacher saw my program, he didn’t believe me.
So .. fooling around in the computer lab, i missed start of classes. And later on .. worse .. i almost was not allowed to do my final exams.
I was late several times (and one of the first to leave, …. straight from and to the computer lab. )
I’ve got some programs printed on paper, i will use my leftover BBC Acorn (or a emulator) to capture some screen examples.
Sold stuff
UPDATE : Selling a lot, but i’ve bought some others between 2020-2023
- SDK-85
- Laser Xt/3
- 80386 DX
Also a “new” 1084 monitor (CRT for a Commodore 64)
Now i have to look for a VGA Crt to get old vga-register manipulation programs working.
Icecream
Still hot outside, and i like coffee. So what about some coffee icecream!
Ingredients:
- 200ml Milk (whole)
- 3 spoons coffee
- 90gr sugar
- 4 egg yolks
- 425ml liquid cream
Place a fine meshed strainer over a container. Put the coffee in the seive. Heat the milk (allmost boiling) and pour it over the coffee. Let it cool.
Dissolve the sugar in 150ml water. Bring to the boil for a few minutes.
Let this also cool for a few minutes.
Pour the sugarliquid to the container holding the eggyolks. Add the liquid cream and the coffee-milk solution.
Cool in the refrigerator and put into your icecream maker. Thats all.
Used this ice maker for many years, a lot of different icecreams we made!



















