Skip to content
Sections
Personal tools
You are here: Home » Projects » cyhist » Cyhist 1998 » Cyhist April 1998 » cyhist Apr. 8 1998 d

cyhist Apr. 8 1998 d

Document Actions
========================================================================= Date: Wed, 8 Apr 1998 13:37:50 -0700
Reply-To: "CYHIST Community Memory: Discussion list on the History of
Cyberspace" <CYHIST@MAELSTROM.STJOHNS.EDU> Sender: "CYHIST Community Memory: Discussion list on the History of
Cyberspace" <CYHIST@MAELSTROM.STJOHNS.EDU> From: Stan Mazor <stan.mazor@BEASYS.COM>
Subject: 8080 stack history
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
______________________________________________________________________
Community Memory: Discussion List on the History of Cyberspace ______________________________________________________________________

8080 history --the stack=97Stan Mazor
I joined Intel=92s Ted Hoff in 1969 to work on the MCS-4, MCS-8, 8080,=20 and 8086. I record here some notes on the 8080 push down stack. 1970 Perspective
Early microprocessors were used in control applications in which main memory might be shift register (Datapoint 2200) or ROM. We needed a different mechanism for saving subroutine return addresses than=20 minicomputers which saved addresses in the main program (core) memory. Ted and I had programmed (=9263) the IBM 1620 which had a single subr. return register for BranchandTransmit (no-nest subroutine call). Burroughs 5500 made extensive usage of the stack for Algol local variables and subroutine linkage in a section of main core memory. I was a designer of Symbol (Fairchild 66-69) which was also a stack machine.=20
1972 8008 perspectives
The 8008 had an on-chip 7 level stack (the 8th is the program counter) for saving 14-bit program counter values for subroutine returns; no data was kept in the stack. This on-chip RAM memory array used dynamic cells with built-in refresh. Although 7 levels seemed deep, programmers used most of these levels; interrupts added to the dynamic run time stack depth.
1974 8080 history. =20
I decided to put the 8080 stack in main memory: a. save chip area of 112 bits (7x16) --no on-chip stack =3D "limitless" b. subroutine arguments and local variables could be put in the stack c. PC addresses were stored little endian-- same as in jump instructions d. register pairs saved in same way-- little endian (L,H) For the memory stack an SP register and several operations were added: a. Push/Pop register pairs to the stack (BC, DE, HL, AF-saving flags!!) b. Add SP to HL -- allows indexing into the stack c. XTHL --Exchange top of stack (16 -bits) with HL register=97to address
data arguments which followed immediately behind the CALL instruction.
Additionally I decided that the stack would grow downward: a. allocating free-space from the opposite end of memory then code, e.g
code grows upwards, and stack grows downward. c. indexing seems simpler using positive index values into the stack Other comments:
1. We could market the unlimited stack as a benefit when in fact we
put less stuff (memory) on the chip.
2. Front panel displays had address incrementer for scanning: program code,
stack (top down), and data regions.
3. Interrupt routines easily restore the prior flag state (C,Z,S,P).
thx stan
------------------------------------------------- Stanley Mazor 408-542-4120 phone
Training Department 408-542-4110 fax
BEA Systems smazor@beasys.com
385 Moffett Park Dr. Enterprise Middleware=20
Sunnyvale, Ca. 94089-1208
______________________________________________________________________
Created by sbaldwin
Contributors :
Last modified 2004-11-04 12:07 PM
 

Powered by Plone

This site conforms to the following standards: