home *** CD-ROM | disk | FTP | other *** search
- /** pROGRAM TO CONVERT LOGIC EQUATIONS
- * OF 16 INPUTS AND 8 OUTPUTS
- * TO A 64-KILOBYTE TRUTH TABLE.
- * @AUTHOR mARKO m{$e4}KEL{$e4} (MSMAKELA@NIC.FUNET.FI)
- * @DATE 9TH jULY 2003, BASED ON A VERSION FROM 2ND jULY 2002
- * tHE EQUATIONS IN THIS PROGRAM HAVE BEEN TRANSLATED FROM THE
- * machxl DESIGN DESCRIPTION SUPPLIED BY jENS sCH{$f6}NFELD (JENS@AMI.GA),
- * AND VERIFIED AGAINST THE 64-KILOBYTE DUMPS SUPPLIED BY jENS sCH{$f6}NFELD.
- *
- * cOMPILATION:
- *CC -O PLA 906114-4.C
- * eXAMPLE USAGE:
- *./PLA {$7c} DIFF - PLA-DUMP.BIN
- * OR
- *./PLA > PLA-DUMP.BIN
- */
-
- #INCLUDE <STDIO.H>
-
- /** eXTRACT AN INPUT BIT
- * @PARAM BTHE BIT TO BE EXTRACTED
- * @RETURNNONZERO IF THE INPUT BIT B IS SET
- */
- #DEFINE i(B) (!!((I) & (1 << B)))
-
- /** @NAME tHE INPUT SIGNALS.
- * tHIS MAPPING CORRESPONDS TO THE 82s100 TO 27512 ADAPTER MADE BY
- * jENS sCH{$f6}NFELD (JENS@AMI.GA). nOTE ALSO THE PERMUTATION OF OUTPUTS
- * IN THE MAIN LOOP.
- */
- /*@{$7b}*/
- #DEFINE i0i(1)
- #DEFINE i1i(2)
- #DEFINE i2i(3)
- #DEFINE i3i(4)
- #DEFINE i4i(5)
- #DEFINE i5i(6)
- #DEFINE rasi(7)
- #DEFINE casi(12)
- #DEFINE refeni(14)
- #DEFINE ecasi(13)
- #DEFINE erasi(8)
- #DEFINE busy2i(9)
- #DEFINE bp3i(11)
- #DEFINE bp2i(15)
- #DEFINE bp1i(10)
- #DEFINE bp0i(0)
- /*@{$7d}*/
-
- /** @NAME tHE OUTPUT SIGNALS. */
- /*@{$7b}*/
- /* ras1 */
- #DEFINE f1 !((!bp3 && !bp2 && !bp1 && bp0 && !ras && busy2){$7c}{$7c}\
- (!ras && busy2 && refen){$7c}{$7c}\
- (!bp3 && !bp2 && !bp1 && bp0 && !eras && !busy2){$7c}{$7c}\
- (!eras && !busy2 && refen))
- /*ras2*/
- #DEFINE f2 !((!bp3 && !bp2 && bp1 && !bp0 && !ras && busy2){$7c}{$7c}\
- (!ras && busy2 && refen){$7c}{$7c}\
- (!bp3 && !bp2 && bp1 && !bp0 && !eras && !busy2){$7c}{$7c}\
- (!eras && !busy2 && refen))
- /*ras3*/
- #DEFINE f7 !((!bp3 && !bp2 && bp1 && bp0 && !ras && busy2){$7c}{$7c}\
- (!ras && busy2 && refen){$7c}{$7c}\
- (!bp3 && !bp2 && bp1 && bp0 && !eras && !busy2){$7c}{$7c}\
- (!eras && !busy2 && refen))
- /*ras4*/
- #DEFINE f4 !((!bp3 && bp2 && !bp1 && !bp0 && !ras && busy2){$7c}{$7c}\
- (!ras && busy2 && refen){$7c}{$7c}\
- (!bp3 && bp2 && !bp1 && !bp0 && !eras && !busy2){$7c}{$7c}\
- (!eras && !busy2 && refen))
- /*cas1*/
- #DEFINE f0 !((!bp3 && !bp2 && !bp1 && bp0 && !cas && busy2 && !refen){$7c}{$7c} \
- (!bp3 && !bp2 && !bp1 && bp0 && !ecas && !busy2 && !refen))
- /*cas2*/
- #DEFINE f3 !((!bp3 && !bp2 && bp1 && !bp0 && !cas && busy2 && !refen){$7c}{$7c} \
- (!bp3 && !bp2 && bp1 && !bp0 && !ecas && !busy2 && !refen))
- /*cas3*/
- #DEFINE f6 !((!bp3 && !bp2 && bp1 && bp0 && !cas && busy2 && !refen){$7c}{$7c} \
- (!bp3 && !bp2 && bp1 && bp0 && !ecas && !busy2 && !refen))
- /*cas4*/
- #DEFINE f5 !((!bp3 && bp2 && !bp1 && !bp0 && !cas && busy2 && !refen){$7c}{$7c} \
- (!bp3 && bp2 && !bp1 && !bp0 && !ecas && !busy2 && !refen))
- /*@{$7d}*/
-
- /** tHE MAIN PROGRAM
- * @PARAM ARGCCOMMAND LINE ARGUMENT COUNT
- * @PARAM ARGVCOMMAND LINE ARGUMENT VECTOR
- * @RETURNZERO ON SUCCESSFUL TERMINATION
- */
- INT
- MAIN (INT ARGC, CHAR** ARGV)
- {$7b}
- /** tHE INPUT COMBINATION, AT LEAST 16 BITS */
- REGISTER UNSIGNED INT I = 0;
- DO {$7b}
- /** tHE OUTPUT COMBINATION, 8 BITS */
- REGISTER UNSIGNED CHAR O = 0;
- /* tHE OUTPUTS ARE PERMUTED SO THAT THEY CORRESPOND TO THE ADAPTER
- * MADE BY jENS sCH{$f6}NFELD.
- */
- IF (f0) O {$7c}= 1 << 6;
- IF (f1) O {$7c}= 1 << 5;
- IF (f2) O {$7c}= 1 << 4;
- IF (f3) O {$7c}= 1 << 3;
- IF (f4) O {$7c}= 1 << 2;
- IF (f5) O {$7c}= 1 << 1;
- IF (f6) O {$7c}= 1 << 0;
- IF (f7) O {$7c}= 1 << 7;
- PUTCHAR (O);
- {$7d}
- WHILE (++I & 0XFFFF);
- RETURN 0;
- {$7d}
-