VOGONS


First post, by vrob98

User metadata
Rank Newbie
Rank
Newbie

Hi All,
I’m looking for some technical advice on a mini ICL 386SX motherboard I’ve been trying to save from the scrap.
The board was originally missing many SMD components, but using detailed photos from CharlieGolf's same mobo (66MHz Brain on YouTube) I was able to identify the missing parts, successfully bringing it back to life. It was stable and running DOS games like Wolfenstein 3D without issue.

After expanding the memory with two new SIM module and power-cycling the system, it stopped POSTing. It is now stuck in an endless loop of 4 short beeps and 1 long beep, no display activity at all. Reversing the expansion (removing new RAM, clearing CMOS) does not help.
ISA Analyzer shows 00/--, LPT Analyzer shows 77/6F

I’ve spent a lot of time checking the memory subsystem (CAS, RAS, WE, Parity, and Data lines) with an oscilloscope. Interestingly, I was trying in the wrong direction, the board will succesfully POST and enter BIOS if I replace the original BIOS with a "MrBIOS" universal image for the same Tact83000 chipset, and with and ISA VGA card. (with original BIOS the ISA VGA doesn't change anything)
(it was also not simple, because the bigger 27c512 eprom requirements - but I solved it with disconnect VCC from EPROM leg one, and connect the A15 to Address 15 on ISA bus)
However, this is only a partial fix because the MrBIOS image fails to initialize the onboard ATi VGA and I/O chips, rendering the board's unique integrated features useless.
So I need to get it working with an original BIOS.

The BIOS was dumped from the original 27C256(32KB) EPROM using a T48 programmer. Gemini AI tells me this is a good BIOS, because the checksum is valid. But the data looks unusual, only about 8KB contains data, different from other 386SX BIOS files.
I am confused, the size and content are concerning, its very small for such an integrated board.

Can anyone with greater knowledge verify if the BIOS dump is corrupted?
Does anyone have a working original BIOS file for this motherboard?
Any idea how this motherboard could be made to function fully again?

Motherboard Specs: ICL CL386S
https://theretroweb.com/motherboards/s/icl-cl … 386s,-cs386s-25
The (potentially corrupt) original BIOS dump is attached.

Thank you very much,
vrob98

Reply 1 of 12, by Xicor

User metadata
Rank Member
Rank
Member

Hi vrob98,

Today I just managed to rescue one of those computers from the recycler. Researching my machine I bumped in your post. I don't think that the 27c is the bios. If you check your photo, you will notice that near the 27c there is a plcc32 ic (IC47) half covered by a sticker, with the typical Intel Flash logo. So I wage that under the sticker you will find a 28F010 or 28F001.
My machine appears fully functional, I can dump my flash as soon as this weekend.

The attachment IMG_20260929_145313.jpg is no longer available

Reply 2 of 12, by majestyk

User metadata
Rank Oldbie
Rank
Oldbie

A 1024K Flash chip for BIOS in a 386SX machine? I don´t think so.

TO also noted: "the board will succesfully POST and enter BIOS if I replace the original BIOS with a "MrBIOS" universal image for the same Tact83000 chipset"

Reply 3 of 12, by Xicor

User metadata
Rank Member
Rank
Member

Hi all,

There is nothing like checking, and lo and behold, a 28F010.

The attachment IMG_20260930_093701.jpg is no longer available
The attachment IMG_20260930_093745.jpg is no longer available

That may explain why there was a sudden malfunction. I have in my collection a non trivial amount of motherboards with failed 28Fxxx. Probably bit rotten, because after re-flashing they do work.
Now I'm somewhat concern because there is no available dump, and the size may point to some boot-loader code that is common on intel MB (or other proprietary shenanigans). Additionally I think the IC53 (pal or gal) probably has something to do with selecting portions of flash to something else than BIOS.

Any way I now feel some urgency to dump whatever is in mine specimen.

Reply 4 of 12, by rasz_pl

User metadata
Rank l33t
Rank
l33t

8KB contents on the dip eeprom sounds suspiciously like VGA rom, but quick glance and sure enough it starts like normal PC bios, gonna add it to my bios dissasembly zoo

https://github.com/raszpl/sigrok-disk FM/MFM/RLL decoder
https://github.com/raszpl/FIC-486-GAC-2-Cache-Module (AT&T Globalyst)
https://github.com/raszpl/386RC-16 ram board
https://github.com/raszpl/Zenith_ZBIOS Zenith Z-386 MFM-300 ZBIOS disassembly

Reply 5 of 12, by Xicor

User metadata
Rank Member
Rank
Member

Just dumped the 27C256B, its a match.

Reply 6 of 12, by Xicor

User metadata
Rank Member
Rank
Member

Made some dumps with ATHROMID. Its even stranger.....

The attachment IMG_20260930_223218~2.jpg is no longer available

Reply 7 of 12, by Xicor

User metadata
Rank Member
Rank
Member

Manage to remove the flash and made a backup dump with my T48:

The attachment ICL_CS386s_N28F010@PLCC32.zip is no longer available

Hope that it may be useful.

Reply 8 of 12, by rasz_pl

User metadata
Rank l33t
Rank
l33t

I think DIP eeprom is just a bootblock

seg000:F020                 db  42h ; B
seg000:F021 db 6Fh ; o
seg000:F022 db 6Fh ; o
seg000:F023 db 74h ; t
seg000:F024 db 42h ; B
seg000:F025 db 6Ch ; l
seg000:F026 db 6Bh ; k

but why such elaborate setup 😮 ? neato

https://github.com/raszpl/sigrok-disk FM/MFM/RLL decoder
https://github.com/raszpl/FIC-486-GAC-2-Cache-Module (AT&T Globalyst)
https://github.com/raszpl/386RC-16 ram board
https://github.com/raszpl/Zenith_ZBIOS Zenith Z-386 MFM-300 ZBIOS disassembly

Reply 9 of 12, by Xicor

User metadata
Rank Member
Rank
Member

Just added a socket In the plcc footprint for future proofing (at least the 28F010). Put it all together and it works as expected. Also managed to archive the HDD, a Seagate ST3144A. Surprisingly ddrescue reported no faulty sectors.
As I suspected the small plcc is a PAL16L8 from Ti, by the traces there is a good probability that is related to this odd configuration.

The attachment IMG_20261001_014051.jpg is no longer available

I can now rest easy with this machine. Also the version of the bios is:

The attachment IMG_20261001_015458~2.jpg is no longer available

Reply 10 of 12, by rasz_pl

User metadata
Rank l33t
Rank
l33t

I went back to OPs

vrob98 wrote on 2026-03-27, 17:14:

ISA Analyzer shows 00/--, LPT Analyzer shows 77/6F

and sure enough Xicor you are right on the money!

seg000:C560                 mov     dx, 378h
seg000:C563 mov al, 77h
seg000:C565 out dx, al
seg000:C566 sti
seg000:C567 call RTC_RegC_IO_120_121
seg000:C56A call PIC1_enable_FDD_irq
seg000:C56D call FDD_Load_Drive_Parameters
seg000:C570 mov dx, 378h
seg000:C573 mov al, 6Fh
seg000:C575 out dx, al
seg000:C576 call FDD_read_firmware

vrob98s board has most likely (havent disassembled whole thing yet) detected corrupted flash and is trying to bootstrap itself by loading firmware for most likely (havent disassembled past that point ether hehe) rescue flashing. Whats more there is tons of routines beeping different error codes meaning vrob98 either has broken or unconnected PCspeaker 😀 because its beeping like crazy during this routine
Edit1: missed this line
>endless loop of 4 short beeps and 1 long beep

so it is beeping like crazy 😀

Edit2: and it is indeed beeping because its failing to find a floppy with data for recovery.
FDD_read_firmware starts by calling FDD_read_track0_sector1 (all names invented by me)
FDD_read_track0_sector1 as the name implies tries to read track 0 sector 1 twice, if both tries fail it does this

seg000:D446                 mov     ax, 1
seg000:D449 call BEEP_error_code
seg000:D44C mov ax, 500
seg000:D44F call Delay_AX_milliseconds
seg000:D452 jmp short read_sector1_loop

and the Beeper function:

seg000:CB85 BEEP_error_code proc near
seg000:CB85
seg000:CB85 error_bitmask = word ptr -2
seg000:CB85
seg000:CB85 push bx
seg000:CB86 push cx
seg000:CB87 push dx
seg000:CB88 push bp
seg000:CB89 mov bp, sp
seg000:CB8B push ax
seg000:CB8C mov bx, 4
seg000:CB8F
seg000:CB8F BEEP_loop:
seg000:CB8F mov cl, bl
seg000:CB91 mov ax, 1
seg000:CB94 shl ax, cl
seg000:CB96 test [bp+error_bitmask], ax
seg000:CB99 jz short BEEP_1355Hz_120ms
seg000:CB9B mov ax, 400
seg000:CB9E mov dx, 784 ; 1520Hz
seg000:CBA1 jmp short BEEP_it
seg000:CBA3 ; ---------------------------------------------------------------------------
seg000:CBA3
seg000:CBA3 BEEP_1355Hz_120ms:
seg000:CBA3 mov ax, 120
seg000:CBA6 mov dx, 880
seg000:CBA9
seg000:CBA9 BEEP_it:
seg000:CBA9 call BEEP_AX_milliseconds_DX_frequency
seg000:CBAC mov ax, 120
seg000:CBAF call Delay_AX_milliseconds
seg000:CBB2 mov ax, bx
seg000:CBB4 dec bx
seg000:CBB5 test ax, ax
seg000:CBB7 jnz short BEEP_loop
seg000:CBB9
seg000:CBB9 Halt_here_loop:
seg000:CBB9 test byte ptr [bp+error_bitmask], 10000000b
seg000:CBBD jnz short Halt_here_loop
seg000:CBBF leave
seg000:CBC0
seg000:CBC0 end:
seg000:CBC0 pop dx
seg000:CBC1 pop cx
seg000:CBC2 pop bx
seg000:CBC3 retn
seg000:CBC3 BEEP_error_code endp

ax = 1 results in four short beeps (1350 Hz, 120 ms) followed by one long (1520Hz, 400ms). Then 500ms delay and it tries reading sector 1 again. If vrob98 had Floppy 0 connected he could also notice motor turning on, Floppy wouldnt be making any head movement/noises as we are repeatedly trying same track.

if im mega super bored I might try reverse engineering what format of data its expecting from the floppy

https://github.com/raszpl/sigrok-disk FM/MFM/RLL decoder
https://github.com/raszpl/FIC-486-GAC-2-Cache-Module (AT&T Globalyst)
https://github.com/raszpl/386RC-16 ram board
https://github.com/raszpl/Zenith_ZBIOS Zenith Z-386 MFM-300 ZBIOS disassembly

Reply 11 of 12, by rasz_pl

User metadata
Rank l33t
Rank
l33t

vrob98 if you ever come back or someone else happens to have deteriorated Intel flash chip on this board:
1 format standard 720KB or 1.4MB floppy. Only 9 and 18 sectors per track supported.
2 download download/file.php?id=249990 graciously uploaded by Xicor
3 extract VGA_BIOS.BIN and rename to VGA74_vv.LDB or VGA74_.LDB
4 extract BIOS_ROM.BIN and rename to B22_vvvv.LDB or B22_.LDB
sidenote: Anything in filenames between '_' and '.' is ignored, guessign its their magic wildcard so can still put version numbers in filenames like VGA74_01.LDB VGA74_03.LDB etc.
5 Put those two files in the root directory of a floppy
6 boot with floppy in drive plugged/connected as A/first.

There will be some short beeps followed by flashing firmware to Intel chip.

https://github.com/raszpl/sigrok-disk FM/MFM/RLL decoder
https://github.com/raszpl/FIC-486-GAC-2-Cache-Module (AT&T Globalyst)
https://github.com/raszpl/386RC-16 ram board
https://github.com/raszpl/Zenith_ZBIOS Zenith Z-386 MFM-300 ZBIOS disassembly

Reply 12 of 12, by Xicor

User metadata
Rank Member
Rank
Member

Outstanding job rasz_pl !!
I will try to find in my stash a 28F010 and test. It boggles the mind why ICL would feel the need to have a somewhat advanced feature in a very low entry level computer, worst yet my machine is from 1993-02-02, extraordinarily late for the 386 family.