VOGONS


Toshiba 460CDT - POST/Flash codes?

Topic actions

First post, by mattlacey

User metadata
Rank Newbie
Rank
Newbie

Recently received an old 460CDT. Removed the battery, checked the voltage on the PSU (was good, at 15V) and plugged it in. PSU light shows, then when hitting the power button the ON light comes on too. Shortly after, the Capslock flashes once, then twice more quickly (i.e. dah dot dot, or long short short)

Presumably it wants to tell me something but damned if I can find the codes anywhere! Also tried my parallel port POST code reader, on that I see 0102 followed by 0304 which holds stead. It's a Chips and Technologies BIOS but again, can't seem to find out what 12 and 34 are.

I've pulled the Ni-MH battery packs out that are for CMOS and the RTC, as expected they're both dead, would those cause such symptoms? One is a 7.2V 110mAh battery seemingly made of 6 lots of two cells, and the other is 3.6v 30mAh composed of three cells, both made by Varta. Is the best bet here to find cells of the right voltage and just wire them in?

Reply 1 of 21, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie

Hi there 😀

That info seems to be a bit unknown - sadly there's a blind spot in Toshiba's detailed maintenance manual documents from the beginning of the MMX era up to the Pentium 4. In this era, Toshiba really developed their diagnostic information so not only is there parallel port POST code output, there's also an LED error read-out for the PSU section. Specifically the PSU error read out was introduced from the first Tecra laptops which were the first to be PCI-bus based and seems to be a platform for the later satellite laptops too.

Here are documents for the Satellite Pro 420 and the Tecra 730CDT. The PSU troubleshooting for the Satellite 420 is pretty useless but the Tecra's one is more detailed, see the Tecra 730CDT maintenance manual in section 2-6. Hopefully you don't come across any shorts though - I only mention it because I did need that info the other day and had to decode the PSU LED flashing out 10001100 which was in least significant bit first so the value to convert was actually 00110001 resulting in "31" and that's B3V voltage low, meaning there was a short on the 3.3v rail. In the end that turned out to be because I had forgotten to install one of the plastic insulating sheets.

So what's happening with your laptop when it starts up? Is it powering up the hard drive? Displaying anything on screen?
Since you've said the BIOS is C&T then I guess it's displaying - that's the video BIOS though not the system BIOS, the system BIOS is all Toshiba - you can read what the POST codes are in section 2-14 of the Tecra 730CDT MM. To be clear those POST code readers are annoying in that they'll show the current code and the previous, so really you're stuck on code 04H (hexadecimal).

If it's displaying on the LCD or via VGA, make sure a hard drive is connected otherwise you'll be waiting 5+ minutes for it to finish attempting to detect the HD.
Don't replace the Standby battery and for now, don't worry about the RTC battery, it's not needed for a successful boot and you can use the computer just fine forever without one.

How bad is the corrosion around those battery terminals?
I had a similar experience getting stuck on code 05h - Re: Help with diagnosing an old Toshiba laptop
That one was saveable, not all of them are though if the corrosion got far enough 😒

Reply 2 of 21, by mattlacey

User metadata
Rank Newbie
Rank
Newbie

So what's happening with your laptop when it starts up? Is it powering up the hard drive? Displaying anything on screen?

It's doing nothing. ON illuminates and then caps lock flashes and that's it. Screen shows no sign of life fan doesn't spin and there's no noise from the HDD. Batteries haven't leaked at all which surprised me.

Was wondering why the code reader had four digits... That makes way more sense!

Reply 3 of 21, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie

Ah, get some pictures of the board if possible and check out the underside of that board that sits on top. Follow this disassembly / assembly guide to get the top casing then the upper PCB off: https://archive.org/details/toshiba-service-m … 60cdtcdx-440cdt
It's pretty quick to do since the screen and top case come off as a whole piece and there aren't too many screws to remove after that to pull the top PCB.

The Satellite 440 > 480 series laptops split off the power supply and some connections like IDE out to a separate board in the bottom of the case. That part never has a problem, have a read of my "Re: Help with diagnosing an old Toshiba laptop" post to see what goes wrong with the top board.

Not powering up the hard drive means it's probably the same fault I had with the 480CDT, those batteries may have leaked more than is visible from the topside of the mainboard.

Reply 4 of 21, by mattlacey

User metadata
Rank Newbie
Rank
Newbie

Thanks for all the info, do appreciate it. I basically stopped once I got the batteries out because it was nigh on midnight and I needed to be up in the morning, but will tear it down over the weekend and get that PCB out.

Reply 5 of 21, by mattlacey

User metadata
Rank Newbie
Rank
Newbie
Thermalwrong wrote on 2024-05-31, 20:11:

How bad is the corrosion around those battery terminals?
I had a similar experience getting stuck on code 05h - Re: Help with diagnosing an old Toshiba laptop
That one was saveable, not all of them are though if the corrosion got far enough 😒

So I finally got the time to get the thing apart (the weekend I hoped to do it just went out the window and then was away last weekend)... and lo and behold, it's got corrosion in the same area you had it. not sure how I didn't notice it next to the terminals on the top before, kinda confused as to how it got to there from where the batteries were, though I guess the machine was stored on edge (not sure which way now, but makes sense it could have dripped down. Looking at the battery packs even now there are no obvious signs of leakage. But sure enough there were green deposits around the connectors:

The attachment 460cdt1.jpg is no longer available

Terrible pic, struggle to get my phone to focus on close things, wish I still had my old one with a macro lens! The vias I've underlined all have connectivity to their other ends, the ones with the question mark I've not yet tested, are they supposed to be connected vertically (I realise the trace isn't missing here, but haven't quite worked out what's on the bottom of the board either). The area around the x I'm guessing isn't too important if I'm not hooking up new batteries?

And then on the bottom of the board too:

The attachment 460cdt2.jpg is no longer available

Didn't even notice it at first, it was only when I got the magnifying glass for a closer look that I saw it. On this one I'm not sure if the points marked with a 1 are a problem or not. The few traces around the 2's are clearly broken (and don't have continuity, did check!) and I don't know yet if the vias around 3 are an issue.

Despite your post saying these traces are of a reasonable size, they're a lot smaller than things I've fixed before, going to make for an interesting challenge. If I can get some fine gauge solid core I might go for a bodge wire (end to end) approach rather than trying to strip the solder mask, but I'm guessing space might be too tight for that.

Reply 6 of 21, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie
mattlacey wrote on 2024-06-10, 22:37:
So I finally got the time to get the thing apart (the weekend I hoped to do it just went out the window and then was away last w […]
Show full quote
Thermalwrong wrote on 2024-05-31, 20:11:

How bad is the corrosion around those battery terminals?
I had a similar experience getting stuck on code 05h - Re: Help with diagnosing an old Toshiba laptop
That one was saveable, not all of them are though if the corrosion got far enough 😒

So I finally got the time to get the thing apart (the weekend I hoped to do it just went out the window and then was away last weekend)... and lo and behold, it's got corrosion in the same area you had it. not sure how I didn't notice it next to the terminals on the top before, kinda confused as to how it got to there from where the batteries were, though I guess the machine was stored on edge (not sure which way now, but makes sense it could have dripped down. Looking at the battery packs even now there are no obvious signs of leakage. But sure enough there were green deposits around the connectors:

The attachment 460cdt1.jpg is no longer available

Terrible pic, struggle to get my phone to focus on close things, wish I still had my old one with a macro lens! The vias I've underlined all have connectivity to their other ends, the ones with the question mark I've not yet tested, are they supposed to be connected vertically (I realise the trace isn't missing here, but haven't quite worked out what's on the bottom of the board either). The area around the x I'm guessing isn't too important if I'm not hooking up new batteries?

And then on the bottom of the board too:

The attachment 460cdt2.jpg is no longer available

Didn't even notice it at first, it was only when I got the magnifying glass for a closer look that I saw it. On this one I'm not sure if the points marked with a 1 are a problem or not. The few traces around the 2's are clearly broken (and don't have continuity, did check!) and I don't know yet if the vias around 3 are an issue.

Despite your post saying these traces are of a reasonable size, they're a lot smaller than things I've fixed before, going to make for an interesting challenge. If I can get some fine gauge solid core I might go for a bodge wire (end to end) approach rather than trying to strip the solder mask, but I'm guessing space might be too tight for that.

Hello there, sorry for not getting back to you, I had a dead 460CDT in worse condition than your pictures that had damage to the CPU and wouldn't even give POST codes.
On your one to start with, clean the green crust off using a Q-tip / cotton bud soaked in IPA. No need for vinegar imo. Be fairly gentle and just clean off the green gunk to get an idea of what state those traces are in. I recommend against using motorised tools and don't clean too hard on those VIAs.

I've just got a Toshiba 460CDX with the same fault and there are differences between the 460CDx and the Toshiba 480CDT. They're all RAM signals though - that's one of the reasons these are failing, they're tiny data traces that all sit just underneath the RTC and standby battery connectors, so it doesn't take much corrosion for the traces to break since they were thin to start with.

Here's how my latest one looked to start with:

The attachment 460CDX-initial-state.JPG is no longer available

It was showing these codes on the parallel port POST code reader:

The attachment 460CDX-initial-POST-codes.JPG is no longer available

Here's how it looked after cleaning and having found one of the traces with a test pad had no continuity past the test pad, that seems to be the weak spot I'm finding on the ones I've been able to repair:

The attachment 460CDX-2-cleanedup-traces.JPG is no longer available

The failure point(s) should be the test points that you've circled which are both the (2), and (3) and (?)
Don't worry about the VIAs that you've highlighted as (1), those can just be cleaned with a Q-tip and should work fine

Before soldering stuff down, use some fresh solder & flux to clean up the small traces that need fixing. When I did that, one of the weaker test pads fell off which is okay since it had no continuity anyways.
Regarding the wires, I use single strands of uncoated copper wire from old AC/DC adaptor cables or mains cables. Just tin them up prior to use and I've found that keeping them attached to the piece of wire / DC jack they're from, using that as a handle helps greatly with guiding the wire location. Then gently cut the wire / hold a craft knife where you want to cut and wiggle the segment to remove back and forth til it cuts through. I usually need to resolder the end just cut afterwards so that the whole section of wire is soldered down - especially important when soldering directly to a trace since there's so little surface area.

Here's how it looked after the repair on mine - notice I've soldered from the good bit of the trace directly onto the resistor the line originally went to, much easier that way. In total 3 traces needed actual repair wires, the 4th test pad was okay after tinning it:

The attachment 460CDX-3-repaired-traces-underside-b.JPG is no longer available

And on the topside, because I wasn't happy with the state of that via that hooks onto the test pad, I soldered a wire from the top to the bottom side:

The attachment 460CDX-3-repaired-traces-topside.JPG is no longer available

Why is the RAM in shot? Because that's where all the signals go! so I found I can beep out the traces by sliding the multimeter probe across the EDO memory pads to verify their function. The unpopulated IC12 is a great spot to check since that seems to be where most of the signals w/test pads go to, which makes me think these are some address pins but I don't want to verify that right now.

Hopefully this helps you with getting your one working, it should be do-able 😀 Even without a microscope

Reply 7 of 21, by mattlacey

User metadata
Rank Newbie
Rank
Newbie

This one might be beyond me. I've run a few bodge wires so far from the resistors to the vias for two, but one I made such a mess of (the leftmost of the 3 in a row.. not hard to see in the pic!) it was easier to run it to the other side of the board. I had temporarily made it seemingly worse, and was stopping at 03, but now it's back to stopping at 05. Will give it another run over sometime and see if I can improve it but working on something so tiny is driving me a bit crazy. The ione on the far right of the three doesn't look too smart but I verified continuity from the resister to a pad further right ok (it goes through to the other side, along to the right, then back to this side of the board).

The attachment PXL_20240704_203114604.jpg is no longer available

Reply 8 of 21, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie
mattlacey wrote on 2024-07-04, 21:02:

This one might be beyond me. I've run a few bodge wires so far from the resistors to the vias for two, but one I made such a mess of (the leftmost of the 3 in a row.. not hard to see in the pic!) it was easier to run it to the other side of the board. I had temporarily made it seemingly worse, and was stopping at 03, but now it's back to stopping at 05. Will give it another run over sometime and see if I can improve it but working on something so tiny is driving me a bit crazy. The ione on the far right of the three doesn't look too smart but I verified continuity from the resister to a pad further right ok (it goes through to the other side, along to the right, then back to this side of the board).

The attachment PXL_20240704_203114604.jpg is no longer available

Ooh I didn't see your reply! I've been doing some pretty serious reverse engineering of this PCB area and these should help - you could try putting jumper wires to the empty pads that I've drawn on:

The attachment 460cdt-testpad-traces.jpg is no longer available
  • Green = UCAS signal
  • Red = LCAS signal
  • Pink = Memory Address 2 for on-board RAM

Those are the 3 most messed up on the 460CDT / CDX boards I've seen so far because they've got test pads right underneath the battery area, they corrode first.
Looking up close at your latest picture, I'm pretty sure those 3 signals are broken right now. Hopefully with knowing where they're supposed to go, you can either check them with a multimeter or run traces directly 😀

It's great that you're still on code 05 though, it should be fixable - I'm now trying to fix another board that's stuck on code 04 and that's tougher, I think it means one of 64x memory data signals is broken.

Reply 9 of 21, by mattlacey

User metadata
Rank Newbie
Rank
Newbie

Oh that's helpful - the green line I'd traced myself, though my bodge wire goes to the other side of the board there is now continuity from that resistor to the pad you've linked it to. I'll check the red and magenta ones next then - fingers crossed! The photos make those orange wires I put on look massive, when in reality it's the thinnest thing I've ever soldered.

Reply 10 of 21, by mattlacey

User metadata
Rank Newbie
Rank
Newbie
Thermalwrong wrote on 2024-07-10, 00:30:
Ooh I didn't see your reply! I've been doing some pretty serious reverse engineering of this PCB area and these should help - yo […]
Show full quote

Ooh I didn't see your reply! I've been doing some pretty serious reverse engineering of this PCB area and these should help - you could try putting jumper wires to the empty pads that I've drawn on:

The attachment 460cdt-testpad-traces.jpg is no longer available
  • Green = UCAS signal
  • Red = LCAS signal
  • Pink = Memory Address 2 for on-board RAM

Those are the 3 most messed up on the 460CDT / CDX boards I've seen so far because they've got test pads right underneath the battery area, they corrode first.
Looking up close at your latest picture, I'm pretty sure those 3 signals are broken right now. Hopefully with knowing where they're supposed to go, you can either check them with a multimeter or run traces directly 😀

It's great that you're still on code 05 though, it should be fixable - I'm now trying to fix another board that's stuck on code 04 and that's tougher, I think it means one of 64x memory data signals is broken.

Still occasionally taking a gander at this machine, every time I put another bodge in I hope it'll get further, but every time I get to 04/05 and it stops. Not sure I can deal with much more disappointment! Don't suppose you've mapped out any more of the traces? Today I checked all the ones you'd colour coded, and they were all good except for the purple which was broken near the resistor on that end. Tried to just patch that bit but accidentally knocked the resistor loose in the process. Put it back, and ran a full wire instead from the resister to the pad. Got connectivity but machine is still getting to the same point. Suppose I should double check the resistor is actually soldered properly at the other end too now.

Also, assume it would get past 05 even when I'm booting with no screen etc? I'm just putting the motherboard back into the case so it's got power and firing it up there.

Reply 11 of 21, by kmeaw

User metadata
Rank Member
Rank
Member

I found the file called BIOFCEFT.COM that looks like a BIOS image of 460CDT.
It outputs code 4 to the parallel port, then zeroes a PCI register of device 0x4040, reads a byte from ISA port 0x8D (probably a DMA controller) - probably it should enable either RAM or ROM shadowing.
Then it writes two words on the stack, reads them back and freezes the machine if the result is unexpected.

On POST code 5, it expects the RAM to be functioning, writes a byte to ISA port 0xE4, reads one back from 0xE5, writes to a PCI register of device 0x18B2, writes into CMOS, sets up CPU cache, enables ROM shadowing and tests if A20 is working by probing memory above 1M - if it is not, halts the machine.

Reply 12 of 21, by DudeFace

User metadata
Rank Member
Rank
Member

do all these CDT models have an RTC thats susceptable to leaks? i've got a CDT330, should i think about opening it up, if so whats the procedure just remove the RTC or replace it?

Reply 13 of 21, by mattlacey

User metadata
Rank Newbie
Rank
Newbie
DudeFace wrote on 2024-10-19, 22:38:

do all these CDT models have an RTC thats susceptable to leaks? i've got a CDT330, should i think about opening it up, if so whats the procedure just remove the RTC or replace it?

Not sure, but from the little reading I've done it seems that way. I didn't think the batteries had leaked in this one when I first took it apart, but it had been so long ago there wasn't really any trace of it short of a few corroded traces which weren't even obvious until I busted out the magnifying glass.

Reply 14 of 21, by DudeFace

User metadata
Rank Member
Rank
Member
mattlacey wrote on 2024-10-21, 08:41:
DudeFace wrote on 2024-10-19, 22:38:

do all these CDT models have an RTC thats susceptable to leaks? i've got a CDT330, should i think about opening it up, if so whats the procedure just remove the RTC or replace it?

Not sure, but from the little reading I've done it seems that way. I didn't think the batteries had leaked in this one when I first took it apart, but it had been so long ago there wasn't really any trace of it short of a few corroded traces which weren't even obvious until I busted out the magnifying glass.

its probably best i open it up when ive got some time just to be sure, seems theres two batteries one for the resume function and one for the clock, i read on another forum people leave out the one for the resume but just change the one for the RTC, apparently genuine replacements are expensive so they buy a similar battery and solder on the original connector, might be a good idea to do that anyway even if they look ok.

Reply 15 of 21, by mattlacey

User metadata
Rank Newbie
Rank
Newbie
DudeFace wrote on 2024-10-21, 13:06:

its probably best i open it up when ive got some time just to be sure, seems theres two batteries one for the resume function and one for the clock, i read on another forum people leave out the one for the resume but just change the one for the RTC, apparently genuine replacements are expensive so they buy a similar battery and solder on the original connector, might be a good idea to do that anyway even if they look ok.

Yeah I would. As I said, when I opened this I thought it was ok and that something else must be the cause of the fault, but it was only when I got the motherboard out and looked underneath very carefully that I could see the damage. Nothing like the kind of obvious battery leak I've seen elsewhere.

Reply 16 of 21, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie
DudeFace wrote on 2024-10-19, 22:38:

do all these CDT models have an RTC thats susceptable to leaks? i've got a CDT330, should i think about opening it up, if so whats the procedure just remove the RTC or replace it?

The Satellite 300 to 335 models also contain those leaky NiMH batteries but where they leak affects a less easily damaged lot of traces. Looks like I took some pictures of it a while back: Re: The quest for the perfect retro laptop: a saga
So you should disconnect / remove those batteries that plug in near the audio jacks, then clean the area with isopropyl alcohol and a brush.
The Satellite 300 series are less affected though, I've found they can have quite a bit of battery damage in that area and still run just fine. The Satellite Pro 440 to 480 laptops are an exception, they have some weak traces in the area that can break even with barely visible battery damage.

kmeaw wrote on 2024-10-19, 21:25:
I found the file called BIOFCEFT.COM that looks like a BIOS image of 460CDT. It outputs code 4 to the parallel port, then zeroes […]
Show full quote

I found the file called BIOFCEFT.COM that looks like a BIOS image of 460CDT.
It outputs code 4 to the parallel port, then zeroes a PCI register of device 0x4040, reads a byte from ISA port 0x8D (probably a DMA controller) - probably it should enable either RAM or ROM shadowing.
Then it writes two words on the stack, reads them back and freezes the machine if the result is unexpected.

On POST code 5, it expects the RAM to be functioning, writes a byte to ISA port 0xE4, reads one back from 0xE5, writes to a PCI register of device 0x18B2, writes into CMOS, sets up CPU cache, enables ROM shadowing and tests if A20 is working by probing memory above 1M - if it is not, halts the machine.

Thank you 😀 That is much more detailed than the Toshiba maintenance manual, since there isn't a full maintenance manual available for the 440 to 480 series, only the disassembly guide. The best match I've found so far for codes is the maintenance manual for the Toshiba Libretto 100CT which someone bought a long time ago from one of those service guide websites and shared.
It's for the MMX platform so the codes match up on the power supply's binary read-out, but I've been unsure of whether it is a 100% match for the BIOS codes and your post gives some useful insight into what it's doing. I've still got one stuck on code 04.
Two words is 64 bits, right? Is that data anything specific or just all 1s / 0s? Just the one write / read cycle?
The memory bus is 64-bits wide since it's a pentium, so it's writing those to check whether it can write to and read from all 64 of the data bits. So code 04 means that either some RAM is giving an incorrect response or there's a bad data bit / trace.

Code 05 is where it starts trying to go through the memory and check whether it can access above 1MB of RAM and it breaks if it can't? So that would be addressing or bad RAM. But bad RAM is really unlikely, it's too far away to get damaged by corrosion normally...

Reply 17 of 21, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie
mattlacey wrote on 2024-10-19, 19:54:
Thermalwrong wrote on 2024-07-10, 00:30:
Ooh I didn't see your reply! I've been doing some pretty serious reverse engineering of this PCB area and these should help - yo […]
Show full quote

Ooh I didn't see your reply! I've been doing some pretty serious reverse engineering of this PCB area and these should help - you could try putting jumper wires to the empty pads that I've drawn on:

The attachment 460cdt-testpad-traces.jpg is no longer available
  • Green = UCAS signal
  • Red = LCAS signal
  • Pink = Memory Address 2 for on-board RAM

Those are the 3 most messed up on the 460CDT / CDX boards I've seen so far because they've got test pads right underneath the battery area, they corrode first.
Looking up close at your latest picture, I'm pretty sure those 3 signals are broken right now. Hopefully with knowing where they're supposed to go, you can either check them with a multimeter or run traces directly 😀

It's great that you're still on code 05 though, it should be fixable - I'm now trying to fix another board that's stuck on code 04 and that's tougher, I think it means one of 64x memory data signals is broken.

Still occasionally taking a gander at this machine, every time I put another bodge in I hope it'll get further, but every time I get to 04/05 and it stops. Not sure I can deal with much more disappointment! Don't suppose you've mapped out any more of the traces? Today I checked all the ones you'd colour coded, and they were all good except for the purple which was broken near the resistor on that end. Tried to just patch that bit but accidentally knocked the resistor loose in the process. Put it back, and ran a full wire instead from the resister to the pad. Got connectivity but machine is still getting to the same point. Suppose I should double check the resistor is actually soldered properly at the other end too now.

Also, assume it would get past 05 even when I'm booting with no screen etc? I'm just putting the motherboard back into the case so it's got power and firing it up there.

Can you take a picture of the current state? Some of those Vias look pretty crusty too, perhaps there's another bad addressing trace in there that's not one of the usually damaged test-pad-traces. I've done a lot more trace checking than what I've shared so far but I'm not sure how to make it useful since it needs to be interactive to be useful and right now it's a fairly huge paint.net file with a bunch of layers.

Reply 18 of 21, by kmeaw

User metadata
Rank Member
Rank
Member
Thermalwrong wrote on 2024-10-21, 14:56:

Two words is 64 bits, right? Is that data anything specific or just all 1s / 0s? Just the one write / read cycle?
The memory bus is 64-bits wide since it's a pentium, so it's writing those to check whether it can write to and read from all 64 of the data bits. So code 04 means that either some RAM is giving an incorrect response or there's a bad data bit / trace.

I was referring to 16-bit real-mode BIOS code, so the word in this context is 16-bit.

This is what I got by running "ndisasm -b 16 BIOFCEFT.COM -o 0xdff00":

POST_4
000F1435  BA7803            mov dx,0x378
000F1438 B004 mov al,0x4
000F143A EE out dx,al
...
000F1467 BC00FE mov sp,0xfe00
000F146A 68AA55 push word 0x55aa
000F146D 6855AA push word 0xaa55
000F1470 58 pop ax
000F1471 58 pop ax
000F1472 3DAA55 cmp ax,0x55aa
000F1475 7401 jz 0x1478
000F1477 F4 hlt

Then follows the code that emits POST code 0x05. If you get 0x04 but not 0x05 it means that the problem is caused by the code in the range 0xF1435..0xF1477 or its subroutine calls.

The code at F1467 wrties a checkerboard pattern to 0xfdfc..0xfdef. Probably just a simple test to make sure the DRAM is functional and we can stop doing tricks needed for ROM code.

There are two ROM subroutine calls before this simple test.

Subroutine at F143B

The first one:

000F143B  66B840400080      mov eax,0x80004040
000F1441 BAF80C mov dx,0xcf8
000F1444 66EF out dx,eax
000F1446 B2FC mov dl,0xfc
000F1448 B80000 mov ax,0x0
000F144B EF out dx,ax
000F144C E48D in al,0x8d
000F144E BF6114 mov di,0x1461
000F1451 BEE84D mov si,0x4de8
000F1454 B406 mov ah,0x6
000F1456 F6E4 mul ah
000F1458 03F0 add si,ax
000F145A 2E8B7404 mov si,[cs:si+0x4]
000F145E E96731 jmp 0x45c8

It depends on something that we read from PCI. The subroutine itself (at F45C8) uses a jump table that also depends on the byte we have read from that PCI device:

000F4620  D0E0              shl al,1
000F4622 660FB6C0 movzx eax,al
000F4626 672EFFA00E460000 jmp [cs:eax+0x460e]

Possible branches look like EGA/VGA register writes (ISA port 0x3CC).

000F1461  BF6714            mov di,0x1467
000F1464 E9154B jmp 0x5f7c

This call goes to a subroutine that enables big real mode:

Subroutine at F5F7C
000F5F7C  2E0F0116765F          lgdt cs:[0x5f76]
000F5F82 0F20C0 mov eax,cr0
000F5F85 0C01 or al,0x1
000F5F87 0F22C0 mov cr0,eax
000F5F8A EB00 jmp short 0x5f8c
000F5F8C B81800 mov ax,0x18
000F5F8F 8ED8 mov ds,ax
000F5F91 8EC0 mov es,ax
000F5F93 B80800 mov ax,0x8
000F5F96 8ED0 mov ss,ax
000F5F98 0F20C0 mov eax,cr0
000F5F9B 24FE and al,0xfe
000F5F9D 0F22C0 mov cr0,eax
000F5FA0 FFE7 jmp di

Reply 19 of 21, by mattlacey

User metadata
Rank Newbie
Rank
Newbie
Thermalwrong wrote on 2024-10-21, 15:48:

Can you take a picture of the current state? Some of those Vias look pretty crusty too, perhaps there's another bad addressing trace in there that's not one of the usually damaged test-pad-traces. I've done a lot more trace checking than what I've shared so far but I'm not sure how to make it useful since it needs to be interactive to be useful and right now it's a fairly huge paint.net file with a bunch of layers.

I'll dig out my SLR and try and get a decent image - don't have much luck with my phone on close up stuff. TBH I'm sure my "repairs" have probably done as much damage as good, not used to something so tiny.

Where in the UK are you? I'm near Exeter, be great to get your eyes on it if you're not at the other end of the country!