
TITLE		LIFO RAM CONTROLLER.
PATTERN		2B.
REVISION	02.
AUTHOR		CHRIS JAY.
COMPANY		MMI SANTA CLARA, CA.
DATE		23 SEPTEMBER 1986.
;REVISION DATE 12 APRIL 1987.
;
;SEVEN BIT UP/DOWN  COUNTER  TO  SUPPLY  ADDRESS
;INPUTS  A6 - A12 TO  A  8K  CMOS  RAM  ARRAY THAT
;IS  CONTROLLED  AS  A  LAST  IN  FIRST  OUT  STACK
;THE  COUNTER  WILL  INCREMENT  BEFORE  AN  ACTIVE
;WRITE  AND  DECREMENT  AFTER  AN  ACTIVE  READ OF
;THE MEMORY. AN ACTIVE READ IS POP OPERATION AND
;A WRITE OPERATION IS THE EXECUTION OF A PUSH CYCLE.
;THE  CONTROL  SIGNALS  APPLIED  TO  THE  INPUTS
;ARE  FROM  A  PAL32VX10  DESIGNED  AS  A  COUNTER
;AND CONTROLLER  CHIP  TO  THE  CMOS RAM  ARRAY.
;THERE  IS  A  STACK  FULL  FLAG  WHICH WILL BECOME
;ASSERTED  WHEN  THE  RAM  IS  COMPLETELY
;FILLED.
;
CHIP LIFOCONT PAL20X8
;
;PIN	1	2	3	4	5	6
	CLK 	/RST 	CEI	PUSH	POP	NC 

;PIN	7	8	9	10	11	12
	NC	NC	NC	NC	NC	GND

;PIN	13	14	15	16	17	18
	/OE	NC	Q6	Q7	Q8	Q9

;PIN	19	20	21	22	23	23
	Q10	Q11	Q12	/STKFL	NC	VCC

STRING	UP 'CEI*/RST*PUSH'
STRING  DN 'CEI*/RST*POP'

EQUATIONS				
						;
/Q6	:= 	/Q6				;HOLD
	 +	RST				;RESET
	:+:	CEI*/RST			;COUNT
						;
/Q7	:= 	/Q7				;HOLD
	 +	RST				;RESET
	:+: 	Q6*UP				;COUNT UP
	 + 	/Q6*DN				;COUNT DOWN
						;
/Q8	:= 	/Q8				;HOLD
	 +	RST				;RESET
	:+: 	Q6*Q7*UP			;COUNT UP
	 +	/Q6*/Q7*DN			;COUNT DOWN
						;
/Q9	:=	/Q9				;HOLD
	 +	RST				;RESET
	:+:	Q6*Q7*Q8*UP			;COUNT UP
	 +	/Q6*/Q7*/Q8*DN			;COUNT DOWN
						;
/Q10	:= 	/Q10				;HOLD
	 + 	RST				;RESET
	:+:	Q6*Q7*Q8*Q9*UP			;COUNT UP
	 + 	/Q6*/Q7*/Q8*/Q9*DN		;DOWN COUNT
						;
/Q11	:= 	/Q11				;HOLD
	 +	RST				;RESET
	:+:	Q6*Q7*Q8*Q9*Q10*UP		;COUNT UP
	 +	/Q6*/Q7*/Q8*/Q9*/Q10*DN 	;COUNT DOWN
						;
/Q12	:= 	/Q12				;HOLD
	 + 	RST				;RESET
	:+:	Q6*Q7*Q8*Q9*Q10*Q11*UP		;COUNT UP
	 +	/Q6*/Q7*/Q8*/Q9*/Q10*/Q11*DN	;COUNT DOWN
						;SET STACK
STKFL	:= Q6*Q7*Q8*Q9*Q10*Q11*Q12*/RST*CEI	;FULL WHEN
						;ALL REGS HIGH
					;	
SIMULATION				;
TRACE_ON CLK RST PUSH POP		; 
	 CEI				;
	 Q6 Q7 Q8 Q9 Q10 		;
	 Q11 Q12 /STKFL			;
SETF 	 OE /CLK RST /CEI		;SET ALL SIGNALS
	/PUSH /POP			;INACTIVE EXCEPT
CLOCKF	 CLK				;RESET. CLOCK
SETF 	/RST CEI			;RESET INPUT.
CLOCKF	 CLK				;ENABLE COUNTER
SETF	/PUSH POP			;INPUT. ENABLE POP
FOR I := 0 TO 32 DO			;INPUT.
BEGIN	 CLOCKF CLK			;32 CLOCK PULSES.
END					;TO INVOKE 32 POP
SETF	 PUSH /POP	 		;COMMANDS.
FOR I := 0 TO 32 DO			;ENABLE PUSH. 
BEGIN	 CLOCKF CLK			;DISABLE POP
END					;APPLY 32 CLOCK
TRACE_OFF				;PULSES.
					;
