- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Recently, I've started working on a small computer project which uses i8086 as its main CPU. Everything seems to be working fine, except instruction fetching from EEPROM. It is confusing, and I may be missing something, but I've tried tonnes of combinations using my two EEPROM chips (Lower and upper byte per chip, even and odd address chips etc.). IP increments by 2, apparently due to the fact that i8086 reads instruction words (16-bit)... But, as I've said, it's pretty unpredictable. The program I wrote is located at the address FFFF0h (initial boot sequence). The instruction (which I've translated to hex using iAPX devellopment enviroment for MS DOS) looks like this:
EA 2D F0
Program execution should jump to address F02D0h.
If there is someone old enough who knows where the problem lies or has worked with the 8086 CPU and can offer an optimal solution, I'd be very thankful!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here’s an example:
EEPROM1 | EA | 00 | 00 | 2D | F0
EEPROM2 | 00 | 00 | 2D | F0 | X
EEPROM1 -> lower 8 bits of data
EEPROM2 -> higher 8 bits of data
It’s a bit weird but it works.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
iWizz, Thank you for posting in the Intel® Communities Support.
In order for us to be able to provide the most accurate assistance on this matter, we just wanted to confirm a few details:
Could you please confirm the model of the Intel® Processor that you are using? I cannot find it on our web site:
https://ark.intel.com/content/www/us/en/ark.html
Are you a developer?
What is the "small computer project" about?
Is it about hardware or software?
Please provide the SSU report so we can verify further details about the components in your platform, please check all the options in the report including the one that says "3rd party software logs"
Any questions, please let me know.
Regards,
Albert R.
Intel Customer Support Technician
A Contingent Worker at Intel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I’m using an Intel 8086 microprocessor which was designed in the late 1970s and is discontinued unfortunately. I’ve contacted Intel support a couple of weeks ago regarding a similar matter and they’ve told me the best course of action is to ask the community here. I’m working on a personal project of mine (you could call it a hobby). What I’m doing is assembling a computer from microchips (it’s currently on breadboards but soon enough I’ll create an appropriate printed board).
Best regards,
Vito Tomas
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hhmmm, from what I remember, the EA opcode is for an absolute far jump. That is, to jump to F02D0h, you need to code EA 00 00 2D F0.
...S
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the answer. There’s only one more detail that needs to be addressed. I have two EEPROMs, both with 8-bit data lengths. Should my memory table look like this?
Address|EEPROM1|EEPROM2
——————————————
FFFF0h| EA | x
——————————————
FFFF1h| X | 00
——————————————
FFFF2h| 00 | X
——————————————
FFFF3h| X | 2D
——————————————
FFFF4h| F0 | X
X meaning that it doesn’t matter what data is on the specific address.
From what I’ve gathered even addressed locations are read form one EEPROM and odd addressed locations are read from the other one.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi iWizz, Thank you very much for providing that information.
We really hope the information provided by n_scott_pearson was useful and helpful for you.
Otherwise, since we are talking about an Intel® Microprocessor, the best thing to do will be to get in contact directly with Rochester Electronics for further assistance on this matter since they are the ones that support this kind of product:
Regards,
Albert R.
Intel Customer Support Technician
A Contingent Worker at Intel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I think I’ll be able to get my questions answered here this time. Thank you very much for the support (and recommending Rochester Electronics, I’ll keep that in mind) !
VT
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi iWizz, Thank you very much for your response.
Perfect, no problem at all, hopefully, @n_scott_pearson will be able to provide further details about this matter.
Any other inquires, do not hesitate to contact us again.
Regards,
Albert R.
Intel Customer Support Technician
A Contingent Worker at Intel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sorry, I cannot help any further. All I can say is I do not remember the code being interleaved on the EEPROMs. It might be possible to set it up this way, but that's not what I remember. Of course, we are talking almost 40 years ago...
...S
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here’s an example:
EEPROM1 | EA | 00 | 00 | 2D | F0
EEPROM2 | 00 | 00 | 2D | F0 | X
EEPROM1 -> lower 8 bits of data
EEPROM2 -> higher 8 bits of data
It’s a bit weird but it works.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page