From msmakela@snakemail.hut.fi Mon Sep 12 21:07 EET 1994
Return-Path: <msmakela@snakemail.hut.fi>
Date: Mon, 12 Sep 1994 20:42:42 +0300 (EET DST)
Mime-Version: 1.0
Content-Transfer-Encoding: QUOTED-PRINTABLE
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1


Jemand aus [zer.]znetz.rechner.c64+c128.allgemein hat uebrigens die PLA
ausgelesen! Falls Du diese Gruppe nicht bekommst, hier die
Umsetzungstabelle und die 64KB Daten: 

Boose-Mode: off

Empfaenger : /Z-NETZ/RECHNER/C64+C128/ALLGEMEIN
Absender   : SYSOP@NOSTLGIC.OCHE.DE  (Jens Schoenfeld)
Betreff    : PLA-Image
Datum      : Di 30.08.94, 23:54  (erhalten: 11.09.94)
Groesse    : 2706 Bytes
----------------------------------------------------------------------
Hallo *.*, #? und besonders *!

[mit arger Versp=84tung, weil mein Laptop seine Platte nicht mehr wollte.  
Ich _hasse_ PCs :-)]

Ich hatte ja versprochendie PLA als Eprom per Adapter auszulesen und das  
File zu posten. Den Adapter hab ich heute gebaut, aber es w=84hre wertlos  
wenn ich nicht die Belegung mit posten w=81rde. Ich hab den Adapter  
m=94glichst einfach gebaut, so da=E1 ich nur vier zus=84tzliche Verbindungen im  
Adaptersockel ziehen mu=E1te (FE habe ich wie im C64 einfach in der Luft  
h=84ngen lassen).

Die Verbindungen Eprom -> PLA sind im Einzelnen:

   A0  ->  I15      VA12 (gemultiplexte Addre=E1leitung, vom Vic)
   A1  ->  I0       _CAS (kommt vom Vic, geht an SEL der Multiplexer)
   A2  ->  I1       _Loram ($01 Bit 0)
   A3  ->  I2       _Hiram ($01 Bit 1)
   A4  ->  I3       _Charen ($01 Bit 2)
   A5  ->  I4       _VA14 (vom CIA, $DD01 Bit 0)
   A6  ->  I5       A15 (vom Prozessor)
   A7  ->  I6       A14
   A8  ->  I10      _AEC (wird wohl in jeder Gleichung vorkommen!)
   A9  ->  I11      R/_W (vom Prozessor)
   A10 ->  I14      VA13 (gemultiplexte Addre=E1leitung, vom Vic)
   A11 ->  I12      _Exrom (vom Expansionsport)
   A12 ->  I7       A13 (vom Proz)
   A13 ->  I9       BA (vom Vic, auch wenns nicht im M&T-Schaltplan steht)
   A14 ->  I8       A12 (vom Proz)
   A15 ->  I13      _GAME (vom Expansionsport)

   D0  ->  F6       _RomL (select f=81r externe Bausteine)
   D1  ->  F5       _I/O (Select f=81r $d000 bis $dfff)
   D2  ->  F4       GR/_W (R/W f=81rs Farb-Ram)
   D3  ->  F3       _CHAROM (Select f=81rs Character-Rom)
   D4  ->  F2       _Kernal (Select f=81rs Kernal)
   D5  ->  F1       _BASIC (Select f=81rs Basic-Rom)
   D6  ->  F0       _Casram (wohl das Interessanteste)
   D7  ->  F7       _RomH (Select f=81r externe Bausteine)

Ich k=94nnte mir vorstellen, da=E1 man mit diesen Infos ein kleines  
Simulationsprogramm schrieben kann. Ein paar Software-Schalter stellen ein  
welche Modulkonfiguration am Expansionsport angefordert wird, ein kleines  
Fensterchen zeigt den Inhalt von $01 an, in einem anderen Fenster wird  
angezeigt welche Konfiguration der Prozessor zu "sehen" bekommt, ein  
drittes Fenster zeigt die Konfiguration f=81r den VIC (AEC w=81rfelt ja  
entscheidend durcheinander). Ich werd mich mal n=84chste Woche dran setzen,  
falls jemand vorher fertig ist -> Bitte posten!

Ich sehe meine Arbeit als halblegal, schlie=E1lich ist weder physisch auf  
der PLA noch in der Software des ICs ein Copyrightvermerk vorhanden.  
Trotzdem w=81rd' ich nichts davon f=81r kommerzielle Zwecke verwenden (f=81r  
_welchen_ kommerziellen Zweck auch)!

ciao,
--
Highblitter, Sysop der Nostalgic BBS
## CrossPoint v3.02 ##
Empfaenger : /Z-NETZ/RECHNER/C64+C128/ALLGEMEIN
Absender   : SYSOP@NOSTLGIC.OCHE.DE  (Jens Schoenfeld)
Betreff    : PLA-Image.UU
Datum      : So 11.09.94, 00:46  (erhalten: 11.09.94)
Groesse    : 979 Bytes
----------------------------------------------------------------------
Wahnsinn, er l=84=E1t sich wie erwartet echt gut packen:


begin 644 PLA.lha
M'>XM;&@U+2@"``````$`<A(A`@``!W!L82YE<')6J@%76U"@"M/_<:[PGH#P5
M+QF$LH']4"LEP2.R,FP&DHJ!0+(MDP&`37@$@8!DWP$!`O!/":1^AXFC[@'@C
MWW3R&OWW*./-FJJ'4:*J-1_O]^T^6?+_N?^3_B.6_\?1\[\J^LBG\OW\_Y_^G
MS_S53<C'^/^?]POW7_^$GFKR[[[CXUY=]S_B+?__F63;<E^_G_/^?_!_^O]A8
MV?S_]W_</]U_UO_/^WOBW_C[OFN__YU?S_G_/^N_Y_S_N%^Z_ZW_G_;WQ;_S#
M;RQ=_S_G_/^N_Z__G_7_^>?2::80T'7[W7__;?_17EWO/^W_BW_N__=D;/_YZ
M[R]AW?_^*_G_+^?_#?_'N_]>__VW_]W_</]U_UO_/^WOBW_FWEB[_G_/^?]=D
M_U__/^[_Z__X]?_I;_X69[>\_[?^+?^[_]V+__%?S_PVX?]O_7?]O_/^X?[KQ
M_K?^?]O?%O_-O+%W_/^?\_Z[_K_^?]W_W?_QZ__*W_G_=_\>9RW_B*/^)_Q$=
M1%'_M/AGR_[WE?_T_\>9RW_B*/^W_G_$6_\11_[2O_Y_Q%?_Q3_T?\_Y_Q$11
M1_T?]7_S_B*O_BG_H_Z?^?\13_QXF>?2::80T'7[T?_>Q?S;_Z+,V>\_[?^+Q
M?^+?^C_R*?^G_I_XI_X\"C_VE7_S_B*O_BG_H_Z?^?\13_QXE7_\8__2W_PL"
LSU]Y_V_\6_\6_]'_D4_]/_3_Q3_QX%'_M*O_G_$5?_%/_1_T_\_XBG__9``LT
``
end
size 584

ciao,
--
Highblitter, Sysop der Nostalgic BBS

Boose-Mode: on

Ich habe gestern ein paar Minuten Zeit zum analysieren gehabt, allerdings 
nur die Ausgaenge D0-D2. Ich bin auf die Gleichungen:

!D0=!A12 and !A7 and A6 and !A8 and ((A11 and !A15) or (!A11 and A9 and A2 
and A3))

RomL=!A13 and !A14 and A15 and AEC and ((_EXROM and GAME) or (EXROM and R/_W 
and _Loram and _Hiram)
  
!D1=A14 and !A12 and !A8 and A7 and A6 and (((A4 and (A3 or (!A3 and A2))) 
and ((!A13 and !A11 and !A9) or (!A15 and A13 and !A11) or (A15 or A13))) or 
(!A15 and A11 and !A5 and (A13 or (!A13 and !A9))))

I/O=A12 and !A13 and A14 and A15 and AEC and (((_Charen and (_Hiram or (Hiram 
and _Loram))) and ((!BA and EXROM and !R/_W) or (GAME and BA and EXROM) or 
(_GAME and BA))) or (GAME and _EXROM and VA14 and (BA or (!BA and !R/_W))))

!D2=!A1 and A6 and A7 and !A8 and !A9 and !A12 and A14

!GR/_W=CAS and A15 and A14 and !A13 and A12 and AEC and !R/_W

Die Gleichungen fuer D0 und D2 sind logisch, aber die von D1 (I/O) muss 
auf jeden Fall nochmal ueberprueft werden, ich hatte vielleicht schon zu 
viel getrunken. :-)

Die Gleichung fuer D4 (Charrom) ist auch nicht ohne, JEDER der 16 
Eingaenge muss wahrscheinlich in der Gleichung auftauchen!!!


	Marko



From msmakela@snakemail.hut.fi Mon Nov  7 22:04 EET 1994
From: =?ISO-8859-1?Q?Marko_Mäkelä?= <Marko.Makela@HUT.FI>
Organization: Helsinki University of Technology, Finland.
Subject: PLA truth tables again
Mime-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=ISO-8859-1


Hello all!

I reorganized the PLA truth tables and constructed logical formulas
for all signals except the CASRAM.  Now that the signals are in a
somewhat logical order, it might be easier to analyze and to simplify
the equations for the CASRAM signal.  Could someone (or all) of you
try to do it?

I already noticed that I should have moved the -AEC and the BA signals
to the very left, so that you could separate video chip and processor
memory accesses easier.  To make analyzing the CASRAM easier, I
separated the memory accesses made by the video chip and by the processor.


The order of the terms is as follows:

 -GAME  -EXROM  -CAS   -CHAREN
 -HIRAM -LORAM  -VA14   VA13
  VA12   BA     -AEC    R/-W
  A15    A14     A13    A12

Truth tables (any rule true => signal = 0)


ROML:               explanation:

x0xx 11xx xx01 100x (!-EXROM & -HIRAM & -LORAM & !-AEC & R/-W & A=$8000-$9FFF) |
01xx xxxx xx0x 100x (!-GAME & EXROM & -AEC & A=$8000-$9FFF)


ROMH:

00xx 1xxx xx01 101x (!-GAME & -EXROM & -HIRAM & !-AEC & R/-W & A=$A000-$BFFF) |
01xx xxxx xx0x 111x (!-GAME & EXROM & !-AEC & A=$E000-$FFFF) |
01xx xxx1 1x1x xxxx (!-GAME & EXROM & VA=$3000-$3FFF,$7000-$7FFF,$B000-$BFFF,$F000-$FFFF & -AEC)


I/O:

01xx xxxx xx00 1101 (!-GAME & -EXROM & !-AEC & !R/-W & A=$D000-$DFFF) |
01xx xxxx x10x 1101 (!-GAME & -EXROM & BA & !-AEC & A=$D000-$DFFF)
xxx1 01xx xx00 1101 (-CHAREN & !-HIRAM & -LORAM & !-AEC & !R/-W & A=$D000-$DFFF) |
xxx1 01xx x10x 1101 (-CHAREN & !-HIRAM & -LORAM & BA & !-AEC & A=$D000-$DFFF) |
xxx1 1xxx xx00 1101 (-CHAREN & -HIRAM & !-AEC & !R/-W & A=$D000-$DFFF) |
xxx1 1xxx x10x 1101 (-CHAREN & -HIRAM & BA & !-AEC & A=$D000-$DFFF)


GR/W:

xx0x xxxx xx00 1101 (!-CAS & !-AEC & !R/-W & A=$D000-$DFFF)


CHAROM:

x0x0 1xxx xx01 1101 (!-EXROM & -CHAREN & HIRAM & !-AEC & R/-W & A=$D000-$DFFF) |
1xx0 01xx xx01 1101 (-GAME & -CHAREN & !-HIRAM & LORAM & !-AEC & R/-W & A=$D000-$DFFF) |
1xx0 1xxx xx01 1101 (-GAME & -CHAREN & -HIRAM & !-AEC & R/-W & A=$D000-$DFFF) |
x0xx xx10 1x1x xxxx (!-EXROM & VA=$1000-$1FFF,$9000-$9FFF & -AEC) |
1xxx xx10 1x1x xxxx (-GAME & VA=$1000-$1FFF,$9000-$9FFF & -AEC)


KERNAL:

x0xx 1xxx xx01 111x (!-EXROM & -HIRAM & -AEC & R/-W & A=$E000-$FFFF) |
1xxx 1xxx xx01 111x (-GAME & -HIRAM & -AEC & R/-W & A=$E000-$FFFF)



BASIC:

1xxx 11xx xx01 101x (GAME & -HIRAM & -LORAM & !-AEC & R/-W & A=$A000-$BFFF)


CASRAM (-AEC == 1 or x (videochip)):

010x xxx0 xx1x 111x
010x xxx0 xx1x 1x01
010x xxx0 xx1x x000
110x 0x0x xxxx xxx0  this rule is interesting: it depends on -HIRAM
                     => it's probably covered by other rules
110x xx0x xx11 xx10
110x xx0x xx1x xxx1
110x xx0x xxx0 xx10
110x xx0x xxxx xx00
110x xxx1 xxxx xx00
110x xxx0 0x1x xxx0
110x xxx1 xx1x xxxx
110x xxxx 0x1x xxx1
x00x xx00 xx1x xxxx
x00x xx0x xx10 0001
x00x xxx0 0x1x xxxx
x00x xxx1 xxx0 xxx0
x00x xxx1 xx10 xxx1
x00x xxx1 xx11 xxxx
x10x xxx1 0x1x 1x01
x10x xxxx 0x1x 111x
x10x xxxx 0x1x x000


CASRAM (-AEC == 0 or x (processor)):

0000 0xxx xx01 1101
000x 0xxx x001 x1x1
010x xxxx x001 1101
1100 xxxx xx00 xxx1
110x 00xx xx0x xxx1
110x 0x0x xxxx xxx0
110x 0xxx xx01 1x11
110x 0xxx xx01 xx10
110x xx0x xxx0 xx10
110x xx0x xxxx xx00
110x xxx1 xxxx xx00
110x xxxx xx00 xx1x
110x xxxx xx00 xxx0
110x xxxx xx01 0x10
110x xxxx xx0x 0xx1
110x xxxx xx0x x001
110x xxxx xx0x xx00
1x0x 10xx xx01 101x
x000 xx0x xx00 xx01
x000 xx1x xx00 1101
x001 00xx x101 11x1
x001 00xx xx00 1101
x00x 00xx xx01 1101
x00x 0xxx xx01 10xx
x00x 0xxx xx01 x111
x00x 0xxx xx01 x1x0
x00x 10xx xx01 100x
x00x xxx1 xxx0 xxx0
x00x xxxx xx00 0x01
x00x xxxx xx00 x001
x00x xxxx xx00 xx11
x00x xxxx xx00 xxx0
x00x xxxx xx01 00xx
x00x xxxx xx01 01xx
x00x xxxx xx01 x100
xx01 xxxx x001 1101
xx0x xxxx xx0x 0000

