About microprocessor 8085: state signals?

  • Thread starter Thread starter ilconformista
  • Start date Start date
  • Tags Tags
    Signals State
AI Thread Summary
The discussion centers around the function of the S0, S1, and IO/M* state signals in the 8085AH microprocessor. S0 and S1 indicate the type of machine cycle, such as OpCode Fetch, with specific values assigned to each state (e.g., S1=S0=1 for fetch). The processor uses these signals, determined by the instruction decoder, to indicate whether it is in a halt, read, write, or fetch state. While some participants express confusion about the utility of S0 and S1, it is noted that they can be used to enhance functionality, such as extending address space by addressing ROM instead of main memory. Additionally, S0 and S1 can be leveraged for creating visual indicators like a "blinking light" front panel or for building a hardware debugger that allows control of the processor based on observed signal combinations.
ilconformista
Messages
18
Reaction score
0
Hello everyone! Could anyone explain to me the following: The 8085AH has 3 state signals: S0, S1 and IO/M*. S0 and S1 provide different type of machine cycles depending on their status.

For example if the machine cycle is OpCode Fetch, we will get: S1=S0=1 and IO/M*=0. I don't get it though, what do the S1 and S0 signals actually do? I believe the processor decides their status with the help of the instruction decoder, and then what happens? They don't seem to connect to anything!

Thank you for your time.
 

Attachments

  • preview_html_m301a4067.png
    preview_html_m301a4067.png
    15 KB · Views: 711
Technology news on Phys.org
Code:
s0 s1
 0  0  halt
 0  1  read
 1  0  write
 1  1  fetch

Link to pdf file:

http://staff.neu.edu.tr/~kuyar/301/ch3.pdf
 
Last edited by a moderator:
rcgldr, thanks four your answer! However I still can't think of any way that these signals are useful. The processor decides first if it's halt, read, write or fetch (by decoding the instruction) and THEN updates the states of S0 and S1. Am I right?
 
ilconformista said:
rcgldr, thanks four your answer! However I still can't think of any way that these signals are useful. The processor decides first if it's halt, read, write or fetch (by decoding the instruction) and THEN updates the states of S0 and S1. Am I right?
S0 and S1 don't have to be used, since there are already other signals for read and write. Fetch will occur when reading instructions. If a program was coded carefully, fetch could be used to address some type of rom instead of main memory, effectively extending the address space. S0 and S1 are updated before a memory operation takes place.
 
You could use S0 and S1 and some of the other status lines to create a "blinking light" front panel that would show what the processor is doing. It might be feasible to single step the processor one button press at a time and this would let you watch the status signals, address lines, data lines, etc.

You could use S0 and S1 to build a hardware debugger that would allow you to stop the processor and grab control with a particular combination was observed.
 
Thread 'Star maps using Blender'
Blender just recently dropped a new version, 4.5(with 5.0 on the horizon), and within it was a new feature for which I immediately thought of a use for. The new feature was a .csv importer for Geometry nodes. Geometry nodes are a method of modelling that uses a node tree to create 3D models which offers more flexibility than straight modeling does. The .csv importer node allows you to bring in a .csv file and use the data in it to control aspects of your model. So for example, if you...
I tried a web search "the loss of programming ", and found an article saying that all aspects of writing, developing, and testing software programs will one day all be handled through artificial intelligence. One must wonder then, who is responsible. WHO is responsible for any problems, bugs, deficiencies, or whatever malfunctions which the programs make their users endure? Things may work wrong however the "wrong" happens. AI needs to fix the problems for the users. Any way to...
I am trying to run an .ipynb file and have installed Miniconda as well as created an environment as such -conda create -n <env_name> python=3.7 ipykernel jupyter I am assuming this is successful as I can activate this environment via the anaconda prompt and following command -conda activate <env_name> Then I downloaded and installed VS code and I am trying to edit an .ipynb file. I want to select a kernel, via VS Code but when I press the button on the upper right corner I am greeted...
Back
Top