Периферия своими руками 1993 г.

Программатор - постоянные запоминающие устройства (ПЗУ) широко применяются во всех областях электронной техники для хранения программ, дешифрации м кодирования мнформацмм и т.п. Программная поддержка программатора.


10. ПРОГРАММАТОР.

Постоянные запоминающие устройства (ПЗУ) широко приме-
няются во всех областях электронной техники для хранения
программ, дешифрации м кодирования мнформацмм и т.п. Большой
интерес вызывает мспользованме перепрограмммруемых ПЗУ -
РПЗУ с УФ-стиранием, так как Вы можете многократно перезапи-
сывать содержащуюся в нмх информацию даже в домашних услови-
ях. Для стмранмя мнформацим в такмх РПЗУ вам понадобится ис-
точник ультрафиолетового мэлученмя. Хорошие результаты можно
получмть, мспольэуя, например, бытовой косметический прмбор
"ФОТОН" млм кварцевую лампу для загара. "ФОТОН" стирает ин-
формацию в ПЗУ за 15 - 20 ммнут прм расстоянмм до микросхемы
1 - 2 см.

Для программирования РПЗУ необходим программатор - спе-
циальное устройство, которое может быть выполнено в вмде са-
мостоятельного прибора млм в вмде приставки к компьютеру.
Предлагаемая Вашему вмиманмю схема программатора - это при-
ставка к компьютеру СПЕКТРУМ, которая предназначена для
программирования наиболее широко прмиемяемых РПЗУ емкостью
от 2-х до 32-х килобайт, как отечественного, так и зарубеж-
ного производства. Это нмкросхемы - К573РФ2, К573РФ5,
К573РФ4, К573РФ6, К573РФ8, 2716, 2764, 27128, 27256.

Цоколевка микросхем РПЗУ приведена на рис. 44, а в
таблице 4 указаны сигмалы на выводах иикросхеи в различных
режииах работы.

Схема программатора (рмс. 45) выполнена на програмни-
руемом интерфейсном адаптере (ПИА) КР580ВВ55А. Три 8-мм раз-
рядных порта ПИА с адресами IF, 3F, 5F (HEX) используются
для ввода/вь(вода данных и фориирования адреса ПЗУ. Сигналы
управления ПЗУ - CS, ОЕ, PGM - формируются с помощью допол-
нительного регистра К155ИР1 с адресон EF (HEX). Адрес ре-
гистра управления ПИА - 7Т(НЕХ). Разряды шмн адреса, данных
м сигналы управления ПЗУ подключены к 28-мм полюсному разъе-
му (панелм, сокету), обеспечивающему надежный контакт с вы-

водами вставляемой в него микросхемы, коммутация адресов и
сигналов управления для различных типов ПЗУ осуществляется с
помощью переключателя П2. Микросхемы К573РФ2,РФ5 и 2716 име-
ют 24 вывода и вставляются в разъем со смещением (смотри
таблицу 4). Эту же задачу можно решить другим образом - ус-
тановить на плате программатора три типа разъемов под микро-
схемы и соответственно скоммутировать их. В этом случае пе-
реключатель П2 не нужен. В качестве разъемов под ПЗУ можно
использовать самодельные, изготовленные из разъемов типа СНП.
Микросхему ПЗУ можно вставлять в разъем и вынимать из него

Vpp - мапряжение программирования. Определяется фирмой-
нэготовителеи микросхены. Имогда Vpp указывается на корпусе
микросхены, наприиер, PGM 12,5V.

только при средней положении переключателя П1. В этом поло-
жении на разъем ме подаются питающие напряжения. Два других
положения переключателя.П1 служат для выбора режина - ЧТЕНИЕ
или ЗАПИСЬ (ПРОГРАММИРОВАНИЕ).

Програииа обслуживания програииатора состоит из частм,
напмсаимой на языке Бейсик и иэ 463 байтов машинных кодов.
Программа ма Бейсике поддерживает интерактивный режим обмема
с помощью мескольких иеню. В блоке иашииных кодов содержатся
подпрограмиы: чтение, запись м тестирование. Эти програииы
необходимо замести в память компьютера м сохранить на маг-
нитной лемте. После загрузки программы на экране появляется
надпмсь - "Load MONITOR (Y/N)?". Нужно ответить Y, если Вы
используете программу МОНИТОР (приведена в Приложении 1,
стр. 164). После ввода Y и Enter компьютер будет готов к за-
грузке МОНИТОРа. Если Вы введете N м Enter, то сразу перей-

дете к началу работы программы. На экране появится - "Pro-
gramming 2716, 2764, 27128, 27256" и меню - "Read or Write
or Test or Verify" - включите режим CAPS LOCK и введите сим-
вол выбранного Ваии режима:

- R - режим чтения из ПЗУ в память компьютера;

- W - режим программирования ПЗУ данными из паняти кон-
пьютера;

- Т - режим проверки "чмстоты" ПЗУ. "Чмстое" ПЗУ содер-
жит по всем адресам байт FF (HEX);

- V - режим сравнения содержииого ПЗУ с содержимым па-
мяти компьютера.

Область паияти компьютера, отведенная для всех режимов
работы программатора, занииает 32К, с адреса 8000 (HEX) по
FFFF (HEX). Если Вы используете при работе с программатором
МОНИТОР, то рабочая область памяти сокращается на "верхних"
4,5 Кб, то есть 8000 - ЕЕ6А.

После выбора режина, например, W и Enter Ваи необходимо
выбрать тмп микросхемы. Вводите:

- 1 - для работы с микросхемами 2716 и К573РФ2, РФ5;

- 2 - для работы с микросхемами 2764 и К573РФ4;

- 3 - для работы с микросхемами 27128 и К573РФ6;

- 4 - для работы с микросхемани 27256 и К573РФ8.

Положение переключателя П2 должно соответствовать выб-
ранному типу микросхены.. Затеи Ваи необходимо выбрать на-
чальный и конечный адреса програииируеиой иикросхеиы. Адрес
вводится в шестнадцатиричном (HEX)'вмде 4-ия символами, то

есть два байта,например, 01FF. Аналогично вводится начальный
адрес рабочей области компьютера (RAM address ....), в кото-
рой расположена информация для программирования. На вопрос
"Correct (Y/N)?" Вы отвечаете Y, Enter, если набранная Вами
информация не требует корректировки, в противном случае - N.
Затем на экране появляется надпись "Insert chip - Ready? -
Press any key". Теперь Вам необходимо вставить в разъем мик-
росхему ПЗУ, переключатель П1 установить в позицию ЗАПИСЬ н
нажать любую клавишу для начала процесса программирования.

Ход процесса графически отображается на экране. В слу-
чае ошибки при программировании на экране появляются ошибоч-
ные дамные и адрес. Другие режимы выполняются аналогично.

Если Вы используете программатор для записи в ПЗУ са-
мостоятельно составленных программ в машинных кодах, то
большую помощь в этом Вам окажет МОНИТОР - прикладная про-
грамма, позволяющая заниматься программированием, отладкой и
дисассемблированием программ в машинных кодах. Эта программа
приведена в Приложении 1.

10.1. Программная поддержка.

Р R 0 G +

5 GO ТО 30

10 CLEAR 31999: LOAD ""CODE : INPUT " Load MONITOR (Y/N) ? ";

M$: IF M$="N" THEN GO TO 30
20 IF M$="Y" THEN LOAD ""CODE
30 CLS : PRINT AT 0,10 ; "PROGRAMMING"
50 PRINT AT 2,5;"2716,2764,27128,27356"
60 INPUT " Read or write or Test or Verify";Q$
70 IF Q$ = "R" THEN PRINT AT 5,8;" READ": GO TO 120
80 IF Q$="W" THEN PRINT AT 5,8;" WRITE": GO TO 120
90 IF Q$="T" THEN PRINT AT 5,8;" TEST": GO TO 120
100 IF Q$ = "V" THEN PRINT AT 5,8; "VERIFY" : GO TO 120
110 GO TO 60

120 INPUT " INPUT 1-2716, 2-2764, 3-27128,

4-27256";Q

130 IF Q=1 THEN PRINT AT 5,17;"2716": GO SUB 3500: GO TO 180
140 IF Q=2 THEN PRINT AT 5,17;"2764": GO SUB 3600: GO TO 180
150 IF Q=3 THEN PRINT AT 5,17;"27128": GO SUB 3600: GO TO 180
160 IF Q-4 THEN PRINT AT 5,17; "27256" : GO SUB 3700: GO TO 180
170 GO TO 120

180 PRINT AT 8,1;"ROM adress from ";: DIM W$(4): INPUT W$: GO

SUB 5000: GO SUB 6000
190 POKE 32117,R: POKE 32190,R: POKE 32314,R
200 POKE 32118,E: POKE 32191,E: POKE 32315,E
250 GO SUB 7000: PRINT 1$

260 PRINT AT 8,22:"to ";: DIM W$(4): INPUT W$: GO SUB 5000: GO
SUB 6000

270 POKE 32120,R: POKE 32193,R: POKE 32317,R
280 POKE 32121,E: POKE 32194,E: POKE 32318,E
330 GO SUB 7000: PRINT 1$
335 IF Q$="T" THEN GO TO 420

340 PRINT AT 10,1;"RAM adress from ";: DIM W$(4): INPUT W$: GO

SUB 5000: GO SUB 6000
350 POKE 32123,R: POKE 32196,R: POKE 32334,R
360 POKE 32124,E: POKE 32197,E: POKE 32335,E
410 GO SUB 7000: PRINT 1$

420 INPUT " CORRECT (Y/N) ? ";P$

430 IF P$="N" THEN GO TO 30

440 IF p$="Y" THEN PRINT AT 14,10;"Insert chip

READY ? Press any key": PAUSE 0: GO TO 460

450 GO TO 420

460 IF Q$="R" THEN GO TO 1000
470 IF Q$="W" THEN GO TO 1500
480 IF Q$="T" THEN GO TO 2000
490 IF Q$—"V" THEN GO TO 2500
1000 POKE 32009,119: RANDOMIZE USR 32112

1020 PRINT FLASH 1;AT 21,15;"END": PRINT " For continue press

any key": PAUSE 0: GO TO 30
1500 RANDOMIZE USR 32304

1510 IF PEEK 32463-255 THEN PRINT FLASH 1;AT 21,15;"END":
PRINT "For continue press any key": PAUSE 0: GO TO 30
1520 PRINT AT 18,1,-"ROM adress " ": LET U-PEEK 32394 + 256»PEEK

32395: GO SUB 7010: PRINT AT 18,13;IS
1530 PRINT AT 18,20;"ROM data ": LET D=PEEK 32095: GO SUB

7500: PRINT AT 18,30;S$
1540 PRINT AT 19,1;"RAM adrees ": LET U=PEEK 32400+256*PEEK

32401: GO SUB 7010: PRINT AT 19,13;I$
1550 PRINT AT 19,20;"RAM data ": LET D=PEEK (PEEK 32400+256*

PEEK 32401): GO SUB 7500: PRINT AT 19,30:S$
1560 INPUT " Continue.(Y/N) ? ":G$

1570 IF G$-"N" THEN GO TO 30

1580 IF G$="Y" THEN RANDOMIZE USR 32384: GO TO 1510
2000 POKE 32009,0: POKE 32210,254: POKE 32211,255
2030 RANDOMIZE USR 32176

2040 IF PEEK 32303=255 THEN PRINT FLASH 1;AT 21,15;"END":
PRINT " For continue press any key": PAUSE 0: GO TO 30
2050 PRINT AT 18,1;"ROM adress ": LET U=PEEK 32249=256*

PEEK 32250: GO SUB 7010: PRINT AT 18,13;IS
2060 PRINT AT 18,20;"ROM data ": LET D-PEEK 32015: GO SUB

7500: PRINT AT 18,30;S$
2070 INPUT " Continue (Y/N) ? ";H$

2080 IF H$ = "Y" THEN RANDOMIZE USR 32240: GO TO 2040
2090 IF H$="N" THEN GO TO 30
2100 GO TO 2070

2500 POKE 32009,0: POKE 32210,0: POKE 32211,190
2530 RANDOMIZE USR 32176

2540 IF PEEK 32303-255 THEN PRINT FLASH 1;AT. 21,15: "END":
PRINT " For continue press any key": PAUSE 0: GO TO 30
2550 PRINT AT 18,1;"ROM adress ": LET U=PEEK 32249+256*

PEEK 32250: GO SUB 7010: PRINT AT 18,13;IS
2560 PRINT AT 18,20;"ROM data ": LET D=PEEK 32015: GO SUB

7500: PRINT AT 18,30;S$
2570 PRINT AT 19,1;"RAM adress ": LET U-PEEK 32255+256*

PEEK 32256: GO SUB 7010: PRINT AT 19,13;I$
2580 PRINT AT 19,20;"RAM data ": LET D=PEEK (PEEK 32255+

256*PEEK 32256): GO SUB 7500: PRINT AT 19,30;S$
2590 INPUT " Continue (Y/N) ? ";J$

2600 IF 3$="N" THEN GO TO 30

2610 IF J$="Y" THEN RANDOMIZE USR 32240: GO TO 2540
2620 GO TO 2590

3500 POKE 32001,8: POKE 32011,10: POKE 32046,2: POKE 32050,3
3510 POKE 32068,10: POKE 32082,8: POKE 32091,10: RETURN
3600 POKE 32001,12: POKE 32011,15: POKE 32046,6: POKE 32050,2
3610 POKE 32068,15: POKE 32082,12: POKE 32091,15: RETURN
3700 POKE 32001,8: POKE 32011,9: POKE 32046,0: POKE 32050,2
3710 POKE 32068,9: POKE 32082,8: POKE 32091,9: RETURN
5010 LET T=0
5020 FOR Y = 1 TO 4

5030 LET T-T+16T(4-Y)*CODE W$ (Y)-48-7*(CODE W$(Y)>57))
5040 NEXT Y

5050 POKE 32030,INT (T-(INT (T/256))*256)
5060 POKE 32031,INT (T/256)
5070 RETURN

6000 LET W-PEEK 32030+256*PEEK 32031
6010 LET E=INT (W/256)
6020 LET R=INT (W-(E*256))
6030 RETURN

7000 LET U—PEEK 32030+256*PEEK 32031

7010 DIM 1(4): DIM I$(4)

7020 LET 1(1)=INT (U/4096)

7030 LET U=U-I(1)*4096

7040 LET I(2)=INT (U/256)

7050 LET U=U-I(2)*256

7060 LET I(3)-INT (U/16)

7070 LET I(4)=U-I(3)*16

7080 FOR 0-1 TO 4

7090 LET 1$(0)—CHR$ (I(0)+48+7*(I(0)>9))
7100 NEXT 0
7110 RETURN

7500 DIM s(2): DIM S$(2)
7510 LET S(1)-INT (D/16)
7520 LET S(2)=INT (D-S(l)*16)
7530 FOR F=1 TO 2

7540 LET S$(F)=CHR$ (S(F)+48+7*(S(F)>9))
7550 NEXT F
7560 RETURN

9999 SAVE "PROG+" LINE 10: SAVE "PROG+"CODE 32000,500: SAVE
"MONITOR "CODE 61000,4535: STOP

7d00

зе

00

d3

ef

db

1f

32

of

7d08

7d

00

зе

00

d3

ef

с9

00

7d10

00

00

00

00

00

00

00

00

7d18

00

00

00

00

00

00

00

00

7d20

зе

80

d3

7f

d3

1f

78

7d28

d3

3f

79

d3

5f

зе

00

d3

7d30

ef

зе

00

d3

ef

зе

55

32

7d38

18

7d

32

18

7d

32

18

7d

7d40

3d

20

f4

зе

00

d3

ef

зе

7d48

90

d3

7f

78

d3

3f

79

d3

7d50

5f

зе

00

d3

ef

db

1f

32

7d58

5f

7d

зе

00

d3

ef

зе

00

7d60

be

с9

00

00

00

00

00

00

7d68

00

00

00

00

00

00

00

00

7d70

с5

d5

е5

f5

01

00

00

и

7d78

00

00

21

00

00

зе

90

d3

7d80

7f

78

d3

3f

79

d3

5f

cd

7d88

00

7d

78

аа

20

09

79

ав

7d90

20

05

f1

е1

d1

с1

с9

03

7d98

23

18

еб

00

00

00

00

00

7da0

00

00

00

00

00

00

00

00

7da8

00

00

00

00

00

00

00

00

7db0

с5

d5

е5

f5

зе

90

d3

7f

7db8

зе

00

32

2f

01

00

00

7dc0

11

00

00

21

00

00

78

d3

7dc8

3f

79

d3

5f

cd

00

7d

за

7dd0

of

7d

00

00

28

22

ff

7dd8

7d

ed

53

fc

7d

ed

43

f9

7de0

7d

f1

е1

d1

с1

с9

00

00

7de8

00

00

00

00

00

00

00

00

7df0

с5

d5

е5

f5

зе

90

d3

7f

7df8

01

00

00

11

00

00

21

00

7е00

00

78

аа

20

79

ав

20

7е08

17

зе

ff

32

2f

f1

е1

7е10

d1

с1

с9

00

00

00

00

00

7е18

00

00

00

00

00

00

00

00

7е20

03

23

18

а2

00

00

00

00

7е28

00

00

00

00

00

00

00

00

7е30

с5

d5

е5

f5

зе

00

32

cf

7е38

01

00

00

и

00

00

7е40

32

f1

40

32

f1

41

32

7е48

f2

40

32

f2

41

21

00

00

7е50

78

32

f1

43

32

f1

44

79

7е58

32

f2

43

32

f2

44

зе

33

7е60

3d

32

5f

32

ес

43

32

7е68

ес

44

20

22

90

ed

7е70

53

8d

ed

43

f1

7е78

е1

d1

с1

с9

00

00

00

00

7е80

с5

d5

е5

f5

зе

33

32

5f

7е88

01

00

00

11

00

00

21

7е90

00

00

18

16

00

00

00

00

7е98

cd

20

7d

20

с1

зе

ff

32

7еа0

36

7d

cd

20

7d

зе

55

32

7еа8

36

7d

78

аа

20

12

79

ав

7ев0

20

ое

зе

ff

32

cf

f1

7ев8

el

d1

с1

с9

00

00

00

00

7ес0

03

23

зе

33

32

5f

сз

7ес8

50

00

00

00

00

00

00




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Система - Персональный компьютер АТМ-Тurbo 2+ : Техническое описание и руководство программиста: Spectrum 128.Системный порт. Порт телефонной линии. Порт чтения АЦП. Порт музыкального синтезатора. Порт принтера и ЦАП. Порт атрибутов. Порт клавиатуры. Порт бордюра.
Предисловие - Скоро вы увидите, то что никогда не видели.
B.B.S. Новости - О новой B.B.S. - Lime Tree 2-BBS. Платная B.B.S. ?!
Глоссарий - кто есть кто на демосцене.
Партийная зона - Информация о Конструкциях Хаоса'2000.

В этот день...   23 ноября