Page 1 of 9

Scorpion-ZS256 Turbo+

PostPosted: 17 Apr 2007, 00:54
by deathsoft
Предлагаю Вашему вниманию схему компьютера "Scorpion ZS 256 Turbo+".
Данная схема восстановлена мной со сканированной схемы (http://mr-linker.narod.ru/sheme_zx.html). Схема векторная в формате pdf на листе A3. Схема нарисована с помощью OrCad.

Теперь формат почти A4 (по горизонтали ужал полностью, по вертикали на A4 не вошло, поэтому немного больше)

При восстановлении схемы также использовались:
Схема скорпиона от трайдента, схема "Графика-М" купленная в ларьке у С.Зонова, фрагменты схем из руководства к плате компьютера скорпион 1993года.

Поскольку схема полностью перерисована, то она может содержать ошибки, если Вы их обнаружите, то пожалуйста напишите об этом. (большинство ошибок уже исправлено, хотя возможно остались еще).

На схеме отсутствует небольшой фрагмент (в левом нижнем углу), связаный с кнопкой "турбо", т.к. этого куска не было на сканированной схеме. Если у когото есть этот кусок, то пожалуйста пришлите его, я включу его в схему. (данная проблема уже решена).

04.12.06
Исправлены мелкие ошибки, добавлены комментарии из книжки по SMUC, и мои личные.

28.09.12
Исправлены ошибки в нумерации ног ТМ9.

29.11.12
Исправлена нумерация ног ИР22

Re: Scorpion-ZS256 Turbo+

PostPosted: 18 Apr 2007, 20:49
by deathsoft
Монтажка "зеленого" скорпиона в хорошем качестве (от KOE).

Re: Scorpion-ZS256 Turbo+

PostPosted: 18 Apr 2007, 21:10
by deathsoft
Исходник прошивки диспетчера ПрофПЗУ (для GAL22v10)
Все прошивки для GALxxxx на языке ABEL

MODULE profrom
clk pin 1;
" !OE pin 11;
A15..A2 pin 2,15,21,3,18,17,19,20,4,5,6,7,8,9;
A17,A16 pin 23,22 istype 'reg_d';
A,B,C,D node istype 'com';
sw node 14 istype 'com';
p16 pin 16;
src = [A17..A16].fb;
dst = [B,A];
rd_addr = [A3..A2];
ff_in = [D,C];

equations
sw=([A15..A4]==^h810);
when sw then ff_in=dst else ff_in=src;

A16.C=clk;
A17.C=clk;
A16.OE=1;
A17.OE=1;
[A17,A16].D=ff_in;

sw.OE=1;
p16.OE=0;

truth_table([rd_addr, src] -> dst)
[0, 0] -> 0;
[1, 0] -> 3;
[2, 0] -> 2;
[3, 0] -> 1;

[0, 1] -> 1;
[1, 1] -> 3;
[2, 1] -> 2;
[3, 1] -> 0;

[0, 2] -> 2;
[1, 2] -> 3;
[2, 2] -> 0;
[3, 2] -> 1;

[0, 3] -> 3;
[1, 3] -> 2;
[2, 3] -> 1;
[3, 3] -> 0;
END
[color=red]

Re: Scorpion-ZS256 Turbo+

PostPosted: 18 Apr 2007, 21:44
by deathsoft
Исходник прошивки Turbo для плат версии 15.3 (для GAL22v10)

MODULE SC15_3
TITLE 'TURBO 15.3'

"Pin and Node Declarations
CLK_7MHZ, IORQ_, WR_EN, RAM_ PIN 1, 4, 5, 6;
INT, TRB_IN, BORDER_, M1_ PIN 7, 8, 9, 10;
H0, H1, H1M PIN 11, 13, 14;
WR_BUFF, RAS_ PIN 16, 17;
WE, CLK_CPU, WAIT_ PIN 19, 20, 21;
VCC PIN 22;

Pin13,TRB NODE 15, 18;

Pin13,WE ISTYPE 'Neg';
H1M,WR_BUFF,CLK_CPU,WAIT_ ISTYPE 'Com';
Pin13,RAS_,TRB,WE ISTYPE 'Reg_D';
H1M,WR_BUFF,RAS_,WE,CLK_CPU,WAIT_ ISTYPE 'Buffer';

X,K,Z,C,P,U,D = .X.,.K.,.Z.,.C.,.P.,.U.,.D.;

EQUATIONS

VCC.OE = 0;

H1M = (H1 & !TRB.Q
#BORDER_ & H1 & TRB.Q);
H1M.OE = (1);

Pin13.D = !(!IORQ_ & Pin13.Q);
Pin13.C = CLK_7MHZ;
Pin13.OE = 0;

WR_BUFF = (!BORDER_ & H0 & TRB.Q
# H0 & !H1);
WR_BUFF.OE = (1);

RAS_.D = (H0);
RAS_.C = CLK_7MHZ;
RAS_.OE = (1);

TRB.D = (!WR_EN & RAM_ & INT & !TRB_IN & !H1 & !RAS_.Q
# WR_EN & TRB.Q
# H1 & TRB.Q
# RAS_.Q & TRB.Q
# !RAM_ & TRB.Q );
TRB.C = CLK_7MHZ;
TRB.OE = 0;

WE.D = !(WR_EN & !BORDER_ & RAS_.Q & TRB.Q
# WR_EN & !H1 & RAS_.Q);
WE.C = CLK_7MHZ;
WE.OE = (1);

CLK_CPU = (CLK_7MHZ & TRB.Q
# RAS_.Q & !TRB.Q);
CLK_CPU.OE = (1);

WAIT_ = (!WR_EN & RAM_ & Pin13.Q
# !BORDER_ & Pin13.Q & !RAS_.Q
# !H1 & Pin13.Q & !RAS_.Q
# !TRB.Q);
WAIT_.OE = (1);

END

Re: Scorpion-ZS256 Turbo+

PostPosted: 18 Apr 2007, 23:23
by deathsoft
Исходник прошивки для ФАПЧ контроллера дисковода (GAL16v8)

MODULE rt11
A4..A0 pin 5,6,9,8,7;
D3,D2,D1,D0 pin 15,12,13,14;

equations

truth_table([A4..A0] -> [D3,D2,D1,D0])
0 -> ^h1;
1 -> ^h1;
2 -> ^h2;
3 -> ^h3;
4 -> ^h3;
5 -> ^h4;
6 -> ^h5;
7 -> ^h6;
8 -> ^hB;
9 -> ^hD;
10 -> ^hC;
11 -> ^hE;
12 -> ^hF;
13 -> ^hF;
14 -> ^h0;
15 -> ^h1;
16 -> ^h1;
17 -> ^h2;
18 -> ^h3;
19 -> ^h4;
20 -> ^h5;
21 -> ^h6;
22 -> ^h7;
23 -> ^h8;
24 -> ^h9;
25 -> ^hA;
26 -> ^hB;
27 -> ^hC;
28 -> ^hD;
29 -> ^hE;
30 -> ^hF;
31 -> ^h0;
END

Re: Scorpion-ZS256 Turbo+

PostPosted: 19 Apr 2007, 10:11
by lvd
А на каком лангуаге эти коды написаны? А то я парень простой, деревенский, кроме верилога ничего не знаю =)

Re: Scorpion-ZS256 Turbo+

PostPosted: 19 Apr 2007, 13:25
by нолька
сказано же - на абеле

Re: Scorpion-ZS256 Turbo+

PostPosted: 20 Apr 2007, 13:47
by lvd
Опа! А я и не заметил =)

Re: Scorpion-ZS256 Turbo+

PostPosted: 30 Nov 2007, 00:01
by deathsoft
Еще пара файлов с Турбой (более древние чем предыдущие)

MODULE zs1_7

TITLE
'STERH(tm) Version 3.42 JEDEC file for: 85c220
'

zs1_7 device '85c220';

"Pin and Node Declarations
Pin01, Pin02, Pin03, Pin04 PIN 1, 2, 3, 4;
Pin05, Pin06, Pin07, Pin08 PIN 5, 6, 7, 8;
Pin09, Pin10, Pin11, Pin12 PIN 9,10,11,12;
Pin13, Pin14, Pin15, Pin16 PIN 13,14,15,16;
Pin17, Pin18, Pin19, Pin20 PIN 17,18,19,20;

Pin12,Pin14,Pin17,Pin18 ISTYPE 'Com';
Pin13,Pin15,Pin16,Pin19 ISTYPE 'Reg_D';
Pin12,Pin13,Pin14,Pin15,Pin16,Pin17,Pin18,Pin19 ISTYPE 'Buffer';

X,K,Z,C,P,U,D = .X.,.K.,.Z.,.C.,.P.,.U.,.D.;

EQUATIONS

Pin12 = (Pin11 & !Pin16.Q
# !Pin05 & !Pin06
# Pin07 & Pin11 & Pin16.Q );
Pin12.C = Pin01;
Pin12.OE = ( 1 );

Pin13.D = (!Pin02 & Pin16.Q & !Pin19.Q );
Pin13.C = Pin01;
Pin13.OE = ( 0 );

Pin14 = (Pin09 & !Pin12
# !Pin05 & !Pin06 );
Pin14.C = Pin01;
Pin14.OE = ( 1 );

Pin15.D = (Pin09 );
Pin15.C = Pin01;
Pin15.OE = ( 1 );

Pin16.D = (Pin05 & Pin06 & Pin16.Q
# Pin05 & !Pin06 );
Pin16.C = Pin01;
Pin16.OE = ( 1 );

Pin17 = (!Pin04 & !Pin08 );
Pin17.C = Pin01;
Pin17.OE = ( 1 );

Pin18 = (Pin01 & Pin16.Q
# !Pin05 & !Pin06
# Pin15.Q & !Pin16.Q );
Pin18.C = Pin01;
Pin18.OE = ( 1 );

Pin19.D = (Pin02 & !Pin03 & Pin04 & Pin16.Q
# Pin02 & Pin08 & !Pin09 & !Pin12 & Pin16.Q
# !Pin16.Q & !Pin17
# !Pin09 & Pin12 & !Pin16.Q
# Pin02 & Pin08 & !Pin09 & !Pin12 & Pin16.Q &
!Pin19.Q
# Pin02 & !Pin08 & Pin09 & !Pin12 & !Pin19.Q
# Pin09 & !Pin12 & !Pin16.Q
# Pin13.Q );
Pin19.C = Pin01;
Pin19.OE = ( 1 );

TEST_VECTORS
([]->[])

END

Re: Scorpion-ZS256 Turbo+

PostPosted: 30 Nov 2007, 00:03
by deathsoft
MODULE zs1_8

TITLE
'TITLE TURBO PLATA VER2.0
PATTERN PDS
REVISION 1
AUTHOR ZS
COMPANY SCORPION
DATE 29.10.95

OPTIONS: TURBO = ON
SECURITY = OFF
LOC Release [ 3.1 ] SID [ 2.364 ]
'

zs1_8 device '85C220';

"Pin and Node Declarations
Pin01, Pin02, Pin03, Pin04 PIN 1, 2, 3, 4;
Pin05, Pin06, Pin07, Pin08 PIN 5, 6, 7, 8;
Pin09, Pin10, Pin11, Pin12 PIN 9,10,11,12;
Pin13, Pin14, Pin15, Pin16 PIN 13,14,15,16;
Pin17, Pin18, Pin19, Pin20 PIN 17,18,19,20;

Pin12,Pin14,Pin17,Pin18 ISTYPE 'Com';
Pin13,Pin15,Pin16,Pin19 ISTYPE 'Reg_D';
Pin12,Pin13,Pin14,Pin15,Pin16,Pin17,Pin18,Pin19 ISTYPE 'Buffer';

X,K,Z,C,P,U,D = .X.,.K.,.Z.,.C.,.P.,.U.,.D.;

EQUATIONS

Pin12 = (Pin11 & !Pin16.Q
# Pin07 & Pin11 & Pin16.Q );
Pin12.C = Pin01;
Pin12.OE = ( 1 );

Pin13.D = (!Pin02 & Pin16.Q & !Pin19.Q );
Pin13.C = Pin01;
Pin13.OE = ( 0 );

Pin14 = (Pin09 & !Pin12 );
Pin14.C = Pin01;
Pin14.OE = ( 1 );

Pin15.D = (Pin09 );
Pin15.C = Pin01;
Pin15.OE = ( 1 );

Pin16.D = (!Pin03 & Pin04 & Pin05 & !Pin06 & !Pin11 &
!Pin15.Q
# Pin03 & Pin16.Q
# Pin11 & Pin16.Q
# Pin15.Q & Pin16.Q
# !Pin04 & Pin16.Q );
Pin16.C = Pin01;
Pin16.OE = ( 1 );

Pin17 = (!Pin04 & !Pin08 );
Pin17.C = Pin01;
Pin17.OE = ( 1 );

Pin18 = (Pin01 & Pin16.Q
# Pin15.Q & !Pin16.Q );
Pin18.C = Pin01;
Pin18.OE = ( 1 );

Pin19.D = (Pin02 & !Pin03 & Pin04 & Pin16.Q
# Pin02 & Pin08 & !Pin09 & !Pin12 & Pin16.Q
# !Pin16.Q & !Pin17
# !Pin09 & Pin12 & !Pin16.Q
# Pin02 & Pin08 & !Pin09 & !Pin12 & Pin16.Q &
!Pin19.Q
# Pin02 & !Pin08 & Pin09 & !Pin12 & !Pin19.Q
# Pin09 & !Pin12 & !Pin16.Q
# Pin13.Q );
Pin19.C = Pin01;
Pin19.OE = ( 1 );

TEST_VECTORS
([]->[])

END