Got some new roms in. These are for my 8088/8086 the 6502 computer and C64 cartridges.
While I seldom had any problem writing to these, now I could not write one! Erasing didn“t give me an error?!?
henri@zspot:~/projects/wozmon8088/mon8086$ minipro -w mon8086.rom -p AT28C64
Found TL866II+ 04.2.129 (0x281)
Warning: Firmware is newer than expected.
Expected 04.2.128 (0x280)
Found 04.2.129 (0x281)
Erasing... 0.02Sec OK
Writing Code... 9.57Sec OK
Reading Code... 0.12Sec OK
Verification failed at address 0x0001: File=0xAA, Device=0xFF
Whenever you get this, check the markings of the chip!
Mine are AT28C64b !!!!!!!!!!!
Change your command accordingly. Another thing to watchout for is write protect, look at the commands
I really like GlaBios for my 8088, so today I got my Laser XT/3 8086 machine from the attic.
Mmm TWO ROM’s thats interesting
Looking futher in the schematics I found this. Apparantly there is a 8K ROM configured in a D0-D7 + D8-D15 setup. (16 bits)
Found a technical manual, this is a excerpt.
In Turbo XT, there are two 28-pin sockets for ROM, one of them is occupied by a 2764 which stored the BIOS (Basic Input Output System). The other empty socket is used to house a 32K ROM, such as the BASIC ROM
And about the XT/3 version which I have.
In Turbo XT /2 and Turbo XT /3, there are two 28-pin sockets for ROM, both of them are occupied by 2764 which stored the BIOS. The contents of the two 2764 are identical. One of them contribute the ODD Byte to the system and the other EVEN Byte. Together they support 16 Bit BIOS access.
This could be an interesting chat with Greg ..
Meanwhile i’m going to look how to split a rom into odd/even. Maybe i have to write a little python program for this.
Well, thats enough for today.
Lets fix my Cat S60 Flir phone, so i can track the hedgehog in our garden. (Battery replacement and powerbutton fix)
Hard to remove backcover and a sh*tload of screwsAt least the battery replacement was a breeze
I fixed several phones before, (broken screen. touch not working). But I hate how some manufacturers build them.
Today I got the EIStar LP-1. Its just a cheap easy probe, but does the job. My version is only TTL and this one is TTL/CMOS (cmos is better when measuring arduino’s outputs) TTL – Logic 1 = 4.75 -> 5V CMOS – Logic 1 = more around the 3.3/3.7V
Only thing my version has which i’m missing is a pulse detector. One millisecond puls gets clocked into a latch and keeps a led on.
Schematic I found (some similarities can be seen with my version)
Below board replaces 2364 (8k) with a 28c256 (32k 4 roms) socket. My design in Kicad
The rom can be selected using the pressing restore while starting the C64. ( This button press to select is not my idea but I liked it, when I find the original idea I’ll post it.
After ordering and testing, I’ll attach the Gerber files.
While working on a Lidar project, my mouser components came in.
Now I have to find a IO address decoder schematic I made a while ago.
This ISA board is going to have a Wirewrapped setup. There is a 8255 IO chip, and uses 3x 74138 for IO address decoding, OR i will use a setup i’ve made for my 6502 using an atf22v10.
What to controll using this 8255? First some Leds, later a LCD display.
Below the 3 mentioned IC’s
The 8255 is a chip like the 6522 used in my DIY 6502 elsewhere on my site.
Overview of comparable IO chips. ( Not interchangeable due to bus timing!) Most of them have 8 data lines and 2x 8 IO bi-directional lines.
CHIP
NOTES
6522
6502 based machines
8255
8088/8068 based machines
Z84C2008
Z80 (called PIO)
8155
8085 / 8088
8520
68000 amiga
6821
6800
6821 example
UPDATE 20230702
Started wirewrapping, luckily i’ve got a big choice of colors. That makes finding the right signals a breeze.
UPDATE 20230703
Found my schematic
Above uses 3 74138 decoders, address can be “programmed” using jumpers (not used on my prototype board) . Address 0400h in above example.
A15 – 0 A14,13,12 – decodes to OUT-0 A11 – 0 A10,9,8 – decodes to OUT-4 A7 – 0 A6,5,4 – decodes to OUT-0 A3 and A2 are not used (see note) A1 and A0 are register select on the 8255
Address 0000,0100,0000,xxrr xx can be a 0 or 1 the 8255 can be controlled using 0400h 0401h 0402h but also 0404h 0405h 0406h 0408h 0409h …. 040Ch ……
UPDATE 20230714 – Alternative address decode test with ATF22V10
UPDATE 20230803
UPDATE
Miswired second 74138. Tested with below code
mov dx,503h # control register
mov al,80h # output port a,b,c as standard IO/output
out dx,al # 16 bit IO mapped IO out
mov dx,500h # data register
mov al,0 # 0/ff all on/all off
out dx,al
Started drawing a Cassette interface in Kicad. This so i can read back my old cassettes with programs. (And write some new stuff)
I’m planning to buy a small micro cassette player. With schematic below, I’m going to use it as save/load device. But also with the same player, I’m going to convert the tape to a wave file, and try to decode the program using python.
While I’m at it, reading the old manuals, a RS-232 interface would be nice also!
While working on my game, i had to come up with some solutions i could not find an answer for on the internet.
I’m not going to post every little detail of my game on this blog, my main reason is sharing my experiences and solutions.
16 SWITCHES
16 Switches on a Wemos Arduino. While push buttons are easier to connect, I needed ON/OFF switches. Push buttons are easy, there is only one active, so 4 enable lines and 4 scan lines and you’re golden. 16 Switches can be enabled all at the same time. So you need some extra components to get a good result (0-65535)
Above schematic works, you need 4x 1k Pull-up resistors and 16 diodes. I used 1N4007
CONTROLLING 24V using Arduino and a buck convertor
Next problem, i’m using some elevator buttons for a project. These have build-in leds but run at 24V. I only have 5V from the Arduino. Regular leds you can connect directly to the Arduino using a 220ohm resistor. So i used a Buck-Step-Up-Convertor. This little module converts 5V to 24V. (You can control the output voltage using a variable resistor) To control the lamp/leds i used a PN2222a transistor to switch the lights on/off using a pin of the Arduino.