Tag Archives: retro

Checking faulty chips/hardware

When I fix old hardware I often use a flir camera.

My brother gave me his CAT S60 mobile phone. Which has a flir camera, he used it when he was a voluntary fireman.

Forward-looking infrared (FLIR) cameras, typically used on military and civilian aircraft, use a thermographic camera that senses infrared radiation

Soo .. when testing hardware. I do the following.

  • Clean the motherboard
  • Check chip pins
  • Press all chips/ic’s in their sockets
  • Test the power supply disconnected. ( Most will give a higher voltage when nothing is connected )
  • Measure the resistance of the board (sometimes)
  • Check if the machine can be started.

Now it gets interesting. Sometimes nothing happens. Sometimes the machine runs like it suppose to do.

But old hardware can be faulty or connections are bad. IC’s run hot and they stop working. ( Untill they are cooled enough or they stop forever šŸ™ )

So I start monitoring the temperature when I boot the machine. Sometimes components heat up very fast. I use my finger and the flir camera.

These are pictures from my 8088. Nothing runs hot

Old mystery motherboard and Bios hacking – followup

The board seems to be a X Golden Board, except for the missing logo on the motherboard.

Downloaded pcxtbios and compiled the eproms native in linux. So i donĀ“t have to use dosbox any more.
https://github.com/virtualxt/pcxtbios

cd pcxtbios
edit make_linux.sh if needed
./make_linux.sh

and you should end up with
eproms/27512/basicfc.rom
eproms/27512/basicf8.rom
eproms/27512/basicf6.rom
eproms/27512/pcxtbios.rom
eproms/27512/basicfa.rom
eproms/27128/basicfc.rom
eproms/27128/basicf8.rom
eproms/27128/basicf6.rom
eproms/27128/pcxtbios.rom
eproms/27128/basicfa.rom
eproms/27256/basicfc.rom
eproms/27256/basicf8.rom
eproms/27256/basicf6.rom
eproms/27256/pcxtbios.rom
eproms/27256/basicfa.rom
eproms/ibmxt/u18.rom
eproms/ibmxt/u19.rom
eproms/2764/basicfc.rom
eproms/2764/basicf8.rom
eproms/2764/basicf6.rom
eproms/2764/pcxtbios.rom
eproms/2764/basicfa.rom

I didn’t have enough 28C64, but the 28C256 has the same pinout. It just lacks A14 and A13

So I flashed the compiled ROMs for basic to different Eeproms

minipro -w ./2764/basicfc.rom -p AT28C64
minipro -w ./2764/basicf6.rom -p AT28C64
minipro -w ./27256/basicfa.rom -p AT28C256
minipro -w ./27256/basicf8.rom -p AT28C256

These roms need to be placed in sockets ROM6,5,4,3

ROM7 (BIOS)fe00:0-ffff:ffff
ROM6 Basicfc00:0000-fdff:ffff
ROM5 Basicfa00:0000-fbff:ffff
ROM4 Basicf800:0000-f9ff:ffff
ROM3 Basicf600:0000-f7ff:ffff

Machine Code monitor/editor

I tried to find a machine code monitor for 8088 rom, but did not have any luck there.

I tried mumon88, but that didnĀ“t work.

PCem and bootdisks.

PCem (short for PC Emulator) is an IBM PC emulator for Windows and Linux that specializes in running old operating systems and software that are designed for IBM PC compatibles. Originally developed as an IBM PC XT emulator, it later added support for other IBM PC compatible computers as well.

The big difference with PCem and Dosbox is the fact that you can configure many systems from 8088 to pentium, soundcards and graphic cards (like hercules, CGA, EGA VGA and alike)
You won’t start in MS-DOS, you can boot from a virtual floppy, just what i needed!

Update : Typing boot disk.img in dosbox works

I’ve installed PCem using:

cd pcem/
sudo apt-get install libsdl2-dev
sudo apt-get install libopenal-dev
tar xzvf ../PCemV17Linux.tar.gz 
./configure 
make clean
make
# first start (complains about roms, but creates ~/.pcem/...
./pcem 
cd ~/.pcem/roms
# git clone roms
git clone https://github.com/BaRRaKudaRain/PCem-ROMs.git
mv PCem-ROMs/* ./
rm -rf PCem-ROMs

Below a simple example, booting a floppy with a custom made bootsector.
I’m still searching for our bootblock demo, which uses VGA graphics and a music loader using Soundblaster.
We made this around the 90’s, and i have never seen a demo then booting a demo without dos.
Scrollers, music, starfields etc.

NOTE: Dos calls can’t be used, that’s not loaded. So NO int 21h software functions!

Running a bootblock program, there is NO ms-dos being loaded.

The disk image I created using my real original 5.25″ floppy, and converted this with my Fluxengine.

One of the other bootblock thingy’s I made, An amiga guru meditation error. (below a old capture)
When a corrupted disk or faulty software was booted using a amiga you often could see an error like this, now you could have it on you PC!

Original screen capture of a Guru Meditation.
You can see, mine is a little different, because of the font spacing and color.

PCem info

Systems / motherboards emulated :
8088

    AMI XT clone
    Atari PC3
    Compaq Portable Plus
    DTK Clone XT
    (c)Anonymous Generic Turbo XT BIOS
    IBM PC
    IBM PCjr
    IBM XT
    Juko XT clone
    NCR PC4i
    Phoenix XT clone
    Schneider Euro PC
    Tandy 1000
    Tandy 1000HX
    Thomson TO16 PC
    Toshiba T1000
    VTech Laser Turbo XT
    Zenith Data SupersPort
    Xi8088

8086

    Amstrad PC1512
    Amstrad PC1640
    Amstrad PC2086
    Amstrad PC3086
    Amstrad PC5086
    Amstrad PPC512/640
    Compaq Deskpro
    Olivetti M24
    Sinclair PC200/Amstrad PC20
    Tandy 1000SL/2
    Toshiba T1200
    VTech Laser XT3

286

    AMI 286 clone
    Award 286 clone
    Bull Micral 45
    Commodore PC30-III
    Compaq Portable II
    Dell System 200
    Epson PC AX
    Epson PC AX2e
    GW-286CT GEAR
    IBM AT
    IBM PS/1 Model 2011
    IBM PS/2 Model 30-286
    IBM PS/2 Model 50
    IBM XT Model 286
    Samsung SPC-4200P
    Samsung SPC-4216P
    Toshiba T3100e
    Tulip AT Compact

386SX

    Acermate 386SX/25N
    AMI 386SX clone
    Amstrad MegaPC
    DTK 386SX clone
    Epson PC AX3
    IBM PS/1 Model 2121
    IBM PS/2 Model 55SX
    KMX-C-02
    Packard Bell Legend 300SX
    Samsung SPC-6033P

386DX

    AMI 386DX clone
    Compaq Deskpro 386
    IBM PS/2 Model 70 (type 3)
    IBM PS/2 Model 80
    MR 386DX clone
    Samsung SPC-6000A

486

    AMI 486 clone
    AMI WinBIOS 486 clone
    Award SiS 496/497
    Elonex PC-425X
    IBM PS/2 Model 70 (type 4)
    Packard Bell PB410A

Socket 4/5/7 (Pentium)

    ASUS P/I-P55TVP4
    ASUS P/I-P55T2P4
    Award 430VX PCI
    Epox P55-VA
    Intel Advanced/EV (Endeavor)
    Intel Advanced/ZP (Zappa)
    Intel Premiere/PCI (Batman's Revenge)
    Packard Bell PB520R (Robin LC)
    Packard Bell PB570 (Hillary)

Super Socket 7 (K6-2/III)

    FIC VA-503+

Socket 8 (Pentium Pro)

    Intel VS440FX

Slot 1 (Pentium II)

    Gigabyte GA-686BX

Graphics cards emulated :

    3DFX Voodoo Graphics
    3DFX Voodoo 2
    ATI Graphics Pro Turbo (Mach64 GX)
    ATI Video Xpression (Mach64 VT2)
    ATI VGA Edge-16 (ATI-18800)
    ATI VGA Charger (ATI-28800)
    CGA
    Cirrus Logic CL-GD5429
    Cirrus Logic CL-GD5430
    Cirrus Logic CL-GD5434
    Compaq CGA
    Diamond Stealth 32 (Tseng ET4000/w32p)
    Diamond Stealth 3D 2000 (S3 ViRGE/325)
    Hercules
    Hercules InColor
    IBM EGA
    IBM VGA
    MDA
    MDSI Genius
    Number Nine 9FX (S3 Trio64)
    OAK OTI-037
    OAK OTI-067
    Olivetti GO481 (Paradise PVGA1A)
    Paradise Bahamas 64 (S3 Vision864)
    Phoenix S3 Trio32
    Phoenix S3 Trio64
    Plantronics ColorPlus
    S3 ViRGE/DX
    Sigma Color 400
    Trident TVGA8900D
    Trident TGUI9400CXi
    Trident TGUI9440
    Trigem Korean VGA (Tseng ET4000AX)
    Tseng ET4000AX
    Wsye 700

Sound cards emulated :

    AdLib
    AdLib Gold
    Ensoniq AudioPCI
    GameBlaster
    Gravis UltraSound
    Sound Blaster v1.0
    Sound Blaster v1.5
    Sound Blaster MCV
    Sound Blaster v2.0
    Sound Blaster Pro v1
    Sound Blaster Pro v2
    Sound Blaster Pro MCV
    Sound Blaster 16
    Sound Blaster AWE32
    Sound Blaster PCI128
    Windows Sound System

Old mystery motherboard and Bios hacking

When selling a large part of my computer collection I kept a few odd pieces.

Amongst those was a 8088 DIY machine.

It is a 50PTX3 motherboard with a 8088 compatible CPU

  • Power light (Not LED) and connected to power adaptor, not motherboard
  • Reset button??? not connected
  • Power switch
  • Mid center, 5v gnd and 12v
  • 5.25″ drive not connected
Bottom

Tested the power adapter first, a nice 5V and 12V.
Then I plugged the power in the Motherboard add plugged a test ISA card in the slot.
After turning the machine on I saw the Address leds flashing

A NEC D70108C from 1984, which is 8088 pin compatible with Intel 8088 but faster, and has some extra functionality.
The empty socket is for the 8087 Co-processor.

Nec V20 versus 8088

Everything pretty dirty

Rom 2764 (8Kb) and a disconnected speaker wire.

Adding an 8bit Isa hercules/CGA card.

It starts! .. But there is no Floppy controller (yet)

I’ve dumped the Bios to a file and used a hexeditor to play around.
So that’s why there is a bad checksum.

Installing a ZIF socket (Zero Insertion Force) to make things easier to modify.

Burned GlaBios on the Eprom and now I can continue to play around.

So why? Why this all ..

I want to play around with old 8088 assembly code again, but not as I did before using a Dos machine, but hardcoded into Eproms.
I’ve got 8 banks for ROMs and the source code for GlaBios is available.

In the past Edk and me wrote a boot demo, so it was not utilizing Ms-Dos functions. Maybe i can get some graphical and sound stuff working straight from the Bios.

Some commands:

# Dump the bios to file
minipro -w original.rom -p AT2764A@DIP28

xxd and hexdump to view the dump

I've used ghex to alter the ROM

# Write a new bios to a 28C64 (same Eeprom i've used for the C64 Cartridges)
minipro -w /home/henri/Downloads/MYROM -p AT28C64
 

GlaBios source code:
https://github.com/640-KB/GLaBIOS/blob/main/src/GLABIOS.ASM

I was planning to disassemble the Phoenix Bios, but it’s quite hard to differentiate between code and data, there are no named pointers and you have to interpret every line of code.

So GlaBios it is ..

First code to look at:

This is after the whole post reset.
There is a reset pointer at ffff:fffe
Which points to the bootstrap routine, which ends in below machine code.
I'm going to plug my own code over here.

(See the funny remark about Monster as being displayed in one of above pictures)

;----------------------------------------------------------------------------;
; INT 18 - Unbootable IPL
;----------------------------------------------------------------------------;
; Display a disk boot failure message and wait for a key to cold reboot.
;
; This may be re-vectored to ROM BASIC, if present.
;
; Size: 18 bytes
;----------------------------------------------------------------------------;
INT_18 PROC
		ASSUME DS:_BDA_ABS
	PRINT_SZ  BOOT_FAIL			; print boot failure string
	XOR	AX, AX				; AH = 0 (wait for key)
	MOV	DS, AX				; DS = 0000
	MOV	WARM_FLAG_ABS, AX			; do a cold boot
	INT	16H					; wait for key press
	JMP	BOOT					; reboot
INT_18 ENDP

BOOT ENDP

;----------------------------------------------------------------------------;
;
; END OF BIOS POST/BOOTSTRAP
;
;----------------------------------------------------------------------------;

		ASSUME DS:_BDA
STRINGS PROC
;----------------------------------------------------------------------------;
; Banner Strings
;
BANNER_STRINGS PROC

					IF POST_GLADOS EQ 1
BOOT_BEGIN		DB	CR, LF
			DB	'Starting GLaDOS...'
NL2_Z			DB	LF				; two NL's, null term'd
					ENDIF
NL_Z			DB	CR, LF, 0			; one NL, null term'd
BOOT_FAIL		DB	'Disk Boot Fail.'
			DB	' You monster.'
NL2_ANY_KEY		DB	LF
NL_ANY_KEY		DB	CR, LF
ANY_KEY		DB	'Press the Any Key'
			DB	'...'

Assembly stuff

I’ve got Dosbox installed on my machine.

git clone https://github.com/640-KB/GLaBIOS.git
I copied MASM.EXE and LINK.EXE in the GLaBios src directory.

edit make.bat

change
MASM GLABIOS;
into
MASM /DVER_DATE=”05/24/23″ /DARCH_TYPE=”T” /DCPU_TYPE=”V” GLABIOS;

start dosbox

mount c: /home/henri/projects/

c:

cd glabios/src

make.bat

SDK-85 Cassettes

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!

UPDATE 20231016

This is the final version

Information about the 7655A.
A eprom WITH IO ports! Amazing piece of history hardware.

Testing some sims on Linux and Android

JiffyDos notes (work in progress)

JiffyDOS is an enhanced DOS for the C64. The software is programmed onto ROM chips that replace the Kernal ROM chip on the motherboard and the DOS ROM chip in the disk drive. JiffyDOS is intended to provide greater speed, commands and convenience than on stock systems.

The 1541 drive is a computer on its own, using a 6502 and VIA chips.
(See other pages) (C64 uses a 6510, that is the same slightly modified version of the 6502)
A cool example of the drive being an OS/computer on its own:
https://www.youtube.com/watch?v=zprSxCMlECA

Some notes:

  • I want to use a larger rom and using the higher address lines as kernal selector. Address line A13 and A14 can be used as selector
  • There is a schematic out there using runstop at boottime to do de selection of the rom part

Did I misspell kernel? NO
(Below from Wikipedia)

The KERNAL was known as kernel inside of Commodore since the PET days, but in 1980 Robert Russell misspelled the word as kernal in his notebooks. When Commodore technical writers Neil Harris and Andy Finkel collected Russell’s notes and used them as the basis for the VIC-20 programmer’s manual, the misspelling followed them along and stuck.

Original Kernal: 901227-03
8-kilobyte 2364 ROM 4K * 8 bits PROM

28C265 = 32K * 8bits

Diffference in ROM size AND there are some other pin placements.
V0.1

Romselect should be /(a15 * a14 * a13) depending on ram/rom switch.


SEL0SEL1
00rom0
01rom1
10rom2
11rom3

$E000-$FFFF – ROM
57344-65535

KERNAL ROM or RAM area (8192 bytes); depends on the value of bits #0-#2 of the processor port at memory address $0001
$FFFA-$FFFF – hardware vectors

%x0x: RAM area.

%x1x: KERNAL ROM.

3D printing problem and Fluxengine

3D printed a case for my fluxengine.

Last week I got my 1.2MB 5.25″ drive.
And tested it with the fluxengine.
Now i can read old 5.25″ disks again. And convert these to disk images.
Amiga/Atari ST/C64 (single side) and my old MSDos disks.
(That’s what I’m using, the fluxengine can read many more)

Why single side C64? you ask?
Those are flippy disks, that means they are single sided and you flip the disk in the drive to read the other side.

Why can’t the fluxengine read those?

  • There is only one sensor in my drive.
  • Reading side 2 without turning the disk won’t work, the sectors are in reverse!
    (Maybe there is a trick to read in reverse? Fluxengine is reading and decoding raw disk sectors, but i have to read into this)

Note: The 1541 Drive for the commodore’s is a complete 6502 computer with 2x 6522 VIA and ram/rom chips! (2016-15 2K x 8 bit Static RAM / 27128 16kb x 8)

see: https://www.henriaanstoot.nl/tag/6502/

And this amazing trick:

https://www.youtube.com/watch?v=zprSxCMlECA

Maybe i’m going to modify my 5.25 drive with another index sensor.

So i downloaded a diskdrive case from thingiverse, which can hold 2 drives. 3.5″and 5.25″.
https://www.thingiverse.com/thing:3089895

I started printing the bottom, no problem there. But because of the large size of bottom and top. (Both about a day of printing) I had to change the filament.
But I didn’t have a good look at what I took!
Below is what you get when printing PLA and switch to PETG!

Temperatures for PLA:
Tool: 200 and bed 50
Temperatures for PETG:
Tool: 240 and bed 70


So 12 hours printing and I had to start again.

I could not remove the knob, else I would have removed the beige front and spray painted this black.

Finished a display case for the SDK-85

So i made a nice display case for this SDK.

I made some designs and came up with this:

I just took a 12mm x 60mm piece of wood, and made a slit for the acrylic plastic using a circular saw, and removed a part for the back-plate using a wood router. I found a piece of acrylic in my shed, cut it to the right size using the circular saw. Slapped some paint on the wood.

I want to be able to use the sdk whenever i want, so i made a sliding window thingy. ( With wooden handle so the frame looks intact when closed. )

Then I 3D printed some holders, which I designed using Openscad.

Openscad code

difference(){
difference(){

    translate([0,8,1])
    cube([20,15,10],center=true);
union(){
    cylinder(h=9, d1=9, d2=9, center=true);
translate([0,0,3])
cylinder(h=9, d1=15, d2=15, center=true);
}
   
}
$fn=100;
 translate([0,12,0])
 cylinder(h=30, d1=3.5, d2=3.5, center=true);
}

I will probably add a powerconnector and lasercut a hole for the keypad at a later stage.

Serial link between MSDos and Linux troubles

In post https://www.henriaanstoot.nl/2022/11/25/disk-troubles-or-missing-old-skool-hardware/ i mentioned the serial connectors i’ve bought to connect the Laser XT to my Workstation to transfer files.

The null modem i’ve made is like mentioned on https://en.wikipedia.org/wiki/Null_modem

I’ve used the loopback handshaking using 3 wires. ( Only using a DB25 and a DB9 on the other end )

So i configured the Linux side as follows.

I’ve tried two usb to serial converters.

Both when trying on windows 10 are not supported any more

Dec 14 17:34:40 zspot kernel: [ 1082.299607] usb 1-4: pl2303 converter now attached to ttyUSB0

sudo stty -F /dev/ttyUSB0 9600

Then i start dosbox.
To enable a com port i have to enter:

serial1=directserial realport:ttyUSB0

Starting Norton Commander and selecting COM1

After a few seconds i got this ..

What else is there to check?
At least i’ve still got the Flux Engine!