• Please review our updated Terms and Rules here

How to Start hardware of 8085up......??

RITESH

Experienced Member
Joined
Jun 26, 2011
Messages
115
Location
Earth
Hello,

I found this forum great place for 8085 up, because many people are not aware of this processor hardware application only theory..!!

OK, i am currently using Oshon 8085 for programing, and done some practical in old & new 8085 KIt, but know i want to use it......

Please tell me what to have for very basic use of this 8085 application, as i know after searching that RAM & EEPROM ( ROM) is needed but what the use of this RAM if i have ROM for storing data & program??

pls help me, sorry if i have started this thread in wrong place you can shift it..!!


Thanks
 
ROM is traditionally used to store vital startup code such as the bootloader and eventually a BIOS, while RAM has been used as the main storage for programs. Some EEPROMs actually works like RAM, but you can only write to them a limited number of times.
 
There were also some 8085-specific chips such as the 8755A (a 2Kx8 EPROM with two 8-bit I/O ports) or the 8155 (256 bytes of SRAM, and 8255-ish parallel I/O) that could be paired up with the 8085 with no external logic. You could have a very useful 3-chip system. One big advantage over the Zilog Z80 (and other microprocessors) was that there was bit-bang serial I/O on-chip.

The 8085 was far more common than you'd think--it was one of the primary choices for embedded applications. (Adaptec SCSI controllers carried them onboard for quite some time, for example). Since it used a multiplexed data/address bus (like the 8088 ), if you had the right peripheral chips, you needed to run fewer signal lines.
 
There were also some 8085-specific chips such as the 8755A (a 2Kx8 EPROM with two 8-bit I/O ports) or the 8155 (256 bytes of SRAM)

Hi again,

Please tell what to copy in EEPROM, which type of codes or Program?? what the need of RAM as how it automaticaly feteches the data from rom??
 
The 8085 begins execution at location 0000, so you'll want to place a jump to your main code in EPROM there, as locations below 0x0068 are used for the RST instruction vectors and NMI/trap vector.

If you want to dedicate low memory to RAM, you'll have to set up some sort of arrangement to intercept the access of 0000 after a reset or a ROM "shadowing" circuit that allows a program to disable low-memory ROM under program control. Usually, the circuitry for this is fairly simple.
 
The 8085 begins execution at location 0000, so you'll want to place a jump to your main code in EPROM there, as locations below 0x0068 are used for the RST instruction vectors and NMI/trap vector.

In some kit starting add. is 2000h or 8000h why??

the 8085 use 64KB memory is it is RAM or ROM?? and as locations below 0x0068 are used for the RST instruction vectors and NMI/trap vector. we have to give this codes, from where codes no.??
 
In some kit starting add. is 2000h or 8000h why??
It depends on what kind of system you are planning to build. If you plan to make a microcontroller, you want a lot of ROM to store the entire program the controller runs, and just enough RAM for variables. In a microcomputer system, you would only want just enough ROM for the system to bootstrap, and a lot of RAM for user programs.

Unless I remember wrongly, the 8085 is based on the 8080 instruction set. The RST instructions has the syntax of "RST [addr]", where [addr] is one of 8 addresses (below h0038 ) for one of 8 absolute address-vectors. By executing a RST instruction, you basically call some routine defined by the vector table below address h0038. These calls can also be invoked by external hardware, just like the Interrupt system of the x86 architecture.
 
Last edited:
The RST instructions were implemented (in the 8008, no less) to provide a means for external hardware to interrupt the CPU. Since the RST instructions are only one byte in length, it was easy to build an interrupt controller using little more than a priority encoder and a latch to force an RST onto the system data bus during an M1 cycle.

Oh, and I got a little confused (not enough coffee) on my earlier response. The Z80 TRAP/NMI vectors to 0x0066 (so a jump placed there would occupy 0x0066-0x0068 ). The 8085 TRAP vectors to 0x0024. The 8085 also has externally-triggerable "half" restarts that can be used to implment prioritized interrupts without an interrupt controller.

One very simple way to get the 8085 to start execution at a high memory address is to force 00 bytes onto the data bus starting with location 0000 after a RESET until the first location of ROM is reached. It's scarcely more than a flip-flop and some transceivers.
 
OK, then please tell which EEROM is needed whether serial or parallel ?? and We have to copy EEPROM by its programere or.........
Then what to write fromm 0000h??
please tell in details b'coz i am newbies about u processor hardware....

Thanks
 
per's question was a good one--what do you want to use this for? If you want to run something like CP/M, then memory layout is important. Is your program going to reside completely in ROM? If so, you can put your ROM right at 0000, wiith RAM above it.

But in the case of PROM--parallel. You'll have to have some sort of programmer for it, such as the Genius or Willem. RAM should be (parallel) SRAM.
 
Hi again,

I want to start with basic on/off light led blinkig in series like that......for understanding
 
Hi again,

I want to start with basic on/off light led blinkig in series like that......for understanding

Then a ROM at 0000 should be fine, say an 8Kx8 28C64 with perhaps 32K of RAM above it. You aren't restricted to using ROM; you can also put your program in RAM--it's just that you can't change low memory because it's in ROM. That could be a good thing too--I could see using the ROM for a basic debug monitor with a low-memory RST reserved for breakpoints.

Eventually you'll want some I/O. RIM and SIM instructions can give you one-bit "bit bang" facilities over the SID and SOD pins, but you'll probably want more. 8255 parallel I/O chips are readily available and inexpensive and very easy to interface.
 
OK, for this what component i need for this?? as i have simple tools no othere please tell all list of parts...
this is my without micro controller projects.....!!

http://www.youtube.com/watch?v=C9WN89WEUnw

Sounds like you got a good understanding of logical cirquits, which is mandatory when designing a computer system. It's not hard to understand how the CPU works, but you should definiely read a bit about it. You should especially read about the 8080/8085 (and eventually the Z80) as those CPU's uses the assembly language you'll be programming in. I don't know of any books or websites at the moment, but I'm sure there are good documents out there.

In order to do something with blinking leds, you will at least need some I/O ports, like the intel 8255 input/output support-chip. You should also support it by some logical cirquits to reduce the number of I/O pins needed.
 
In order to do something with blinking leds, you will at least need some I/O ports, like the intel 8255 input/output support-chip. You should also support it by some logical cirquits to reduce the number of I/O pins needed.

Not entirely true with the 8085...you can attach a LED to the SOD pin since it's just a single-bit output. I use this as a general "board is alive" test with my 8085 SBC builds. The routine I wrote makes uses of the hardware stack, so it makes sure RAM is working as well. Here's the code to flash a LED on the SOD pin:

Code:
;Flash a LED on SOD
;Top of RAM @ 0x4000

RAM:    equ 4000h

START:  LXI H, RAM
        SPHL

FLASH:  MVI A, 0C0h
        SIM
        CALL DELAY
        MVI A, 40h
        SIM
        CALL DELAY
        JMP FLASH

;Delay routine
DELAY:  MVI A, 0FFh
        MOV B, A
PT1:    DCR A
PT2:    DCR B
        JNZ PT2
        CPI 00h
        JNZ PT1
        RET

This code can be burned directly to PROM and loaded at 0x0000. It expects RAM from 0x2000 to 0x4000, but you can change the RAM equate for whatever you're using. I've got a version that doesn't use RAM at all, which is useful in incrementally building an 8085 system.
 
You should especially read about the 8080/8085 (and eventually the Z80) as those CPU's uses the assembly language you'll be programming in. I don't know of any books or websites at the moment, but I'm sure there are good documents out there.

In order to do something with blinking leds, you will at least need some I/O ports, like the intel 8255 input/output support-chip. You should also support it by some logical cirquits to reduce the number of I/O pins needed.

Hi again,

I have readied it's theory of 8085 & 8086....
Intel 8255 has also been in my course book i has Port A,B, Cupppper & lower .....,etc..
 
Not entirely true with the 8085...you can attach a LED to the SOD pin since it's just a single-bit output. I use this as a general "board is alive" test with my 8085 SBC builds. The routine I wrote makes uses of the hardware stack, so it makes sure RAM is working as well. Here's the code to flash a LED on the SOD pin:

Code:
;Flash a LED on SOD
;Top of RAM @ 0x4000

RAM:    equ 4000h

START:  LXI H, RAM
        SPHL

FLASH:  MVI A, 0C0h
        SIM
        CALL DELAY
        MVI A, 40h
        SIM
        CALL DELAY
        JMP FLASH

;Delay routine
DELAY:  MVI A, 0FFh
        MOV B, A
PT1:    DCR A
PT2:    DCR B
        JNZ PT2
        CPI 00h
        JNZ PT1
        RET

This code can be burned directly to PROM and loaded at 0x0000. It expects RAM from 0x2000 to 0x4000, but you can change the RAM equate for whatever you're using. I've got a version that doesn't use RAM at all, which is useful in incrementally building an 8085 system.


Thank's Glitch for the reply, i have understood that program and working in Oshon 8085 stimulator....

I want to know whole list of tools & chips that are used in thisa circuits and EEROM used in this can be Serial or paralllel one....??
and what write un this EEROM??
 
The EPROM should be parallel since the 8085 uses parallel data and address buses. You can put together a basic 8085 board with an 8085, a 74LS373 (or 74LS573) 8-bit latch, a 74LS138 1-of-8 decoder, a 6264 8K x 8 Static RAM and a 2764 EPROM (or 2864 EEPROM). I did that for my first 8085 SBC, which I believe you've seen:

running.jpg


You'll also need a crystal and 15-30 pF capacitor. I used a 74LS14 hex inverter to generate the reset signals for my board, but you can use a switch, resistor and capacitor.

As to programming the PROM, you will need either a PROM programmer and the software for your PC, or you'll need to build a PROM programmer. They're easy to build (just some switches and a 555 timer for the program pulse), but you then have to toggle each byte into the PROM by hand.
 
Hi,

in this a 6264 8K x 8 Static RAM what does x8 mean??
a 2764 EPROM (or 2864 EEPROM).
only EPROM is used not EEROM??

74LS14 hex inverter to generate the reset signals for my board, but you can use a switch, resistor and capacitor.
What is this inverter, is that mean Not gates?? and why reset circuit need such devices??
 
Back
Top