PAL20X10 PAL DESIGN SPECIFICATION P7056 BIRKNER/UDI 07/29/81 RAM CONTROL MMI SUNNYVALE, CALIFORNIA CK /DTCNT0 /DTCNT1 /DTCNT2 /CHAR1 /CHAR2 /CHAR3 /CHAR4 /CHAR5 /READY /LF GND /OC /H255 /CHAR0 /INCSCR /CLRLIN /SWAPC /WE /HBLANK /SWAP /CURS0 /WRITE VCC WRITE:=READY*/DTCNT2*/DTCNT1*/DTCNT0*/H255 ;SET WHEN DTCNT=0 *CHAR5*CHAR4*CHAR3*CHAR2*CHAR1*CHAR0 ;& CHAR=63 + WRITE*/DTCNT2*/H255 ;HOLD AT 0,1,2,3 :+:WRITE* DTCNT2*/DTCNT1*/H255 ;HOLD AT 4,5 + CLRLIN*/DTCNT2*/DTCNT1*/DTCNT0 ;SET AT DTCNT=0 SWAP := WRITE*/DTCNT2*/DTCNT1*DTCNT0 ;SWAP AT DTCNT=1 + WRITE* DTCNT2*/DTCNT1*/DTCNT0 ;SWAP BACK AT 4 SWAPC:= WRITE*/DTCNT2*/DTCNT1*DTCNT0*/CLRLIN ;SWAP AT DTCNT=1 + WRITE* DTCNT2*/DTCNT1*/DTCNT0*/CLRLIN ;SWAP BACK AT 4 :+:CHAR5*CHAR4*/CHAR3*LF ;TEST CONDITION WE := WRITE*/DTCNT2*DTCNT1*DTCNT0 ;ENABLE WRITE INCSCR := WRITE*DTCNT2*/DTCNT1*DTCNT0*/CLRLIN*/H255*LF ;DETECT LINEFEED + WRITE* CHAR5*/CHAR4*CHAR3*CHAR2*CHAR1*CHAR0 ;CURS=47, LAST */CLRLIN*/H255 ;VISIBLE CHAR ON * DTCNT2*/DTCNT1*DTCNT0 ;LINE. DTCNT=5 :+:CHAR5*CHAR4*/CHAR3*LF ;TEST CONDITION H255 := CHAR5*CHAR4*CHAR3*CHAR2*CHAR1*CHAR0 ;END OF LINE *DTCNT2*DTCNT1*/DTCNT0 ;DTCNT=6 CLRLIN := INCSCR ;SET ON LINE END + CLRLIN*CHAR5*CHAR4*CHAR3*CHAR2*CHAR1*CHAR0 ;HOLD THIS WRITE :+:CLRLIN*/CHAR5 ;HOLD, CHAR=0-31 + CLRLIN*/CHAR4 ;HOLD, CHAR=32-47 HBLANK := CHAR5*CHAR4 ;CHAR=48-63 + CHAR5*CHAR4 ;EXTEND :+:CHAR5*CHAR4*/CHAR3*/CHAR2*/CHAR1*/CHAR0*/DTCNT2 ;CANCEL 48-48.5 + CHAR5*CHAR4*/CHAR3*/CHAR2*/CHAR1*/CHAR0*/DTCNT1 ;CANCEL 48.5-48.75 CHAR0 := SWAPC*CURS0 ;SWAP WITH CURS + /SWAPC*CHAR0 ;HOLD :+:/SWAPC*DTCNT0*DTCNT1*DTCNT2 ;INC CURS0 := SWAPC*/INCSCR*CHAR0 ;SWAP WITH CHAR + /SWAPC*/INCSCR*CURS0 ;HOLD :+:/SWAPC*/INCSCR*WRITE*/CLRLIN*DTCNT2*DTCNT1*/DTCNT0 ;INC FUNCTION TABLE CK DTCNT2 DTCNT1 DTCNT0 CHAR5 CHAR4 CHAR3 CHAR2 CHAR1 CHAR0 READY LF /OC H255 INCSCR CLRLIN SWAPC /WE HBLANK SWAP CURS0 WRITE ; I C H ; R N L S B C W ; E H C R W L S U R ; A / 2 S L A / A W R I ; C DTCNT CHAR D L O 5 C I P W N A S T ; K 210 54321 0 Y F C 5 R N C E K P 0 E COMMENTS ------------------------------------------------------------------------------ C LLL HHLXX X X H L X H X H X X X X X SET INCSCR,SWAPC C HHL HHLXX X X H L X H H H X X X L X CLRLIN=H,CURS=L C LLL HHLXX X X H L L H H H X X X L H SET WRITE C LLH LLLXX X X X L L L L L X X X L H INCSCS,CLRLIN=L C HHL LLXXX X L X L L L L L X X X X L SWAP CURS0,CHAR0 C HHL HHLXX X X H L X H X H X X X X X SET INCSCR,CWAPC C HHL HHLXX X X H L X H H H X X X L X CLRLIN=H C LLL HHLXX X X H L L H H H X X X X H SET WRITE SIGNAL C LLH XXXXX X L X L L X X X X X X X H HOLD WRITE C LHL XXXXX X L X L L X X X H X X X H HOLD WRITE C LHH XXXXX X L X L L X X X L X X X H ENABLE WRITE C HLL XXXXX X L X L L X X X H X X X H HOLD WRITE C HLH XXXXX X L X L L X X X X X X X H HOLD WRITE C HHL XXXXX X L X L L X X L X X X X L CLEAR WRITE SIGNAL C HHH XXXXX H L X L L L X L X X X X L CHAR0=H, INCSCR=L C LLL XXXXX H L X L L L X L X X X X L HOLD C LLH XXXXX H L X L L L X L X X X X L HOLD C LHL XXXXX H L X L L L X L X X X X L HOLD C LHH XXXXX H L X L L L X L X X X X L HOLD C HLL XXXXX H L X L L L X L X X X X L HOLD C HLH XXXXX H L X L L L X L X X X X L HOLD C HHL HHHHH H L X L H L X L X X X X X END OF LINE C HHH HHLXX L L L L L L L L X X X X X CLEAR CLRLIN & H255 C LLL HHHXX L H L L L L L L X H X X L SET HBLANK C HHH HHLXX H L L L L L L L X H X L L SET CURS0 LO C LLL HHLLL H H L L L L L L X H X L X HBLANK=L C LHH HHLXX H L L L L L L L X X L L L HOLD C HHL HHLXX H L H L L H L H X X L L L SET INCSCR C XXX HHLXX L L L L L L H X X X X L L SET CLRLIN C LLL LLXXX L L L L L L H X X X X L H HOLD CLRLIN,SET WRITE C LLL LLXXX L L L L L L H X X X X L L CLR WRITE,HOLD CLRLIN C LLL HHLXX L L L L L L L X X X X L H CLEAR CLRLIN C LLH XXXXX L L L L L L L H X X H L H SET SWAP & SWAPC ------------------------------------------------------------------------------ DESCRIPTION THIS PAL CONTROLS BOTH THE TIMING FOR WRITING A CHARACTER INTO THE RAM AND THE TIMING FOR READING A CHARACTER FROM THE RAM. "WRITE" IS A SIGNAL THAT DATA IS AVAILABLE AND CAN BE WRITTEN INTO THE RAM WHEN "DTCNT" IS BETWEEN 0 AND 5. "SWAP" AND "SWAPC" SWAP POINTERS TO ENABLE WRITING AND READING BY ADDRESSING THE RAM THROUGH THE SAME ADDRESS LINES. "UEN" ENABLES THE UART. "WE" WRITES TO THE RAM THE DATA THAT IS IN THE UART REGISTER. "INCSCR" IS A SIGNAL THAT DETECT LINEFEED AND 48 CHARACTERS PER LINE. "CLRLIN" ERASES EARLIER INFORMATION AND ALLOWS TO WRITE TO THAT LOCATION. WHEN THE "LF" KEY IS PUSHED, THE CLRLIN SIGNAL IS SET. IT REMAINS SET AS LONG AS A WRITE IS DONE TO THIS LOCATION. "H255" DETECTS END OF LINE. "HBLANK" BLANK OUT THE SCREEN WHEN "CHAR" IS BETWEEN 48 AND 63.