Computers Overview
Commodore PET
Sinclair ZX80
Sinclair ZX81
BBC Micro
Sinclair Spectrum
Memotech MTX
    About
    Library
    Manuals
    Options
    Photos
    Projects
      CFX
      Hardware Hacks
      Legacy (1980s)
      MAGROM
      MTXPlus+
      PAL Reader
          Construction
          Hardware
          Software
      PC Keyboard I/F
      Programmers
      ReMemotech
      ReMemorizer
      SDX
      SFX
    Repairs
    Software
    Tools
      Development
      Web Tools
    User Groups
    Video Wall
Memotech CP/M
Atari ST
PDAs
DEC 3000 AXP
OpenVMS
Raspberry Pi

 

 
 
 

The Memotech MTX Series

 

PAL Reader / Decoder for PAL14L4s 

Introduction

Memotech computers and expansion boards, including ROM/RAM memory cards, disk controllers, the RS232 interface and the Speculator, all make use of PAL14L4s to implement custom designed logic.

 

Programmable Array Logic (PAL) chips are a family of programmable logic devices used to implement combinational logic functions, that is, where the outputs are a function of only the current state of the inputs.

 

The PAL14L4 is one example, as shown in this Monolithic Memories block diagram, the 14L4 comprises a programmable AND array feeding into fixed NOR gates to generate active low outputs.

 

The PAL14L4 is member of the Small 20 Series as defined by Monolithic Memories, having varying numbers of inputs and outputs, a total of 16 product terms but no internal feedback, no XOR gates and no registers.

The name of each component in the series contains its number of inputs, output type (active high or low) and the number of outputs.

In the 14L4, the 16 available product terms are divided equally between the four outputs..

The logic diagram is shown opposite :

These devices are one time programmable, programming was performed by "blowing" interconnecting fuses in the AND array.

To protect proprietary designs, the devices could be secured to prevent the program logic being read back by a device programmer by "blowing" the security fuse.

After programming, "blowing" the security fuse defeats read back of the internal programmed pattern by a device programmer - the array will read as if every fuse is programmed.

The programmer took Boolean expressions and converted them to fuse maps which were used to program the PAL by burning the appropriate "fuses".

This diagram provides an indication of how breaking these fusible links can modify the logic circuit.

 

PAL Reader Design

The PAL equations for the more common boards are shown in the User and Maintenance manuals. Although Memotech probably did not "blow" the security fuses, making it technically possible to read back the fuse maps for the other PALs, tools for reading the configuration of these devices are not common today.

Given that there are 14 inputs, there are "only" 16384 (2^14) possible input combinations to drive the four possible outputs. Tony Brewer made a PAL14L4 Reader for his Tatung Einstein and wrote the Z80 code to control it. Describing its performance before the program was optimised, he said "it takes just over 10 seconds @ 4MHz to step through all of the possible input combinations and read the 16K nibbles of output, search for active low outputs, remove redundancy and give the logic expressions as a text string, e.g. XX X010 000X 1111". Subsequent optimisation of the code means that program execution is now much faster, with some PALs taking only 2-3 seconds to read.

With Tony's help, I have drawn up a schematic for the PAL Reader interfaced to the MTX User I/O Port using KiCAD and constructed a working prototype on Stripboard. This is a practical example of using the MTX Uncommitted PIO port, a feat rarely done "back in the day". The main reason for making the PAL Reader was to check that actual SDX PAL programs matched the design and to allow their modification to support a combined CP/M / SDX BASIC ROM.

 

 

 

mailto: Webmaster

 Terms & Conditions