Студентам > Курсовые > Программатор ПЗУ
Программатор ПЗУСтраница: 6/9
Корпус
блока трансформатора выполнен из диэлектрического материала. Шасси выполнено из
дюралюминия. Клемма заземления шасси должна быть выведена на корпус. К этой
клемме должно быть подключено заземление.
Шнур
питания и вилка должны соответствовать ТУ на них, и не иметь изломов и
нарушений в изоляции.
Сетевой
тумблер типа ПТ2-2 (напряжение 600 вольт, ток до 2 ампер) отвечает требованиям
электробезопасности.
Должны
быть использованы сетевые предохранители в стандартных держателях.
Напряжения
и температуры в остальных блоках лабораторного макета не представляют опасности
и не требуют особых мер предосторожности.
Так как
программатор взаимодействует при работе с ПЭВМ, а ПЭВМ является
электроустановкой, то к ней предъявляются требования соблюдения всех параметров
электробезопасности согласно ТУ на ПЭВМ. Вредными факторами для человека
являются:
мягкое рентгеновское
излучение экрана;
мерцание экрана с
частотой кадровой развертки;
электростатическое
поле вокруг экрана;
ультрафиолетовое
излучение экрана.
СПИСОК
ЛИТЕРАТУРЫ
1.Скотт Мюллер
«Модернизация и ремонт персональных компьютеров», Москва, изд. «Восточная
Книжная Компания», 1996г., ISBN
0-7897-0321-1
2.Гук «Аппаратные средства
IBM PC», Санкт-Петербург,
изд. «Питер Пресс», 1996г., ISBN
5-88782-036-5
3.Фаронов В.В. «Турбо Паскаль 7.0. Начальный курс.
Учебное пособие», Москва, изд. «Нолидж», 1997г., ISBN 5-89251-012-3
4.М.В. Сергиевский, А.В. Шалашов «Турбо Паскаль 7.0: Язык,
среда программирования», Москва, изд. «Машиностроение», 1994г.,
ISBN 5-217-02468-2
5.Абель П. «Язык Ассемблер для
IBM PC и
программирования», Москва, изд. «Высшая школа», 1992г., ISBN 5-101-123447-1
6.Гейтс Б. «Дорога в будующее», Москва, изд. «Русская
редакция», 1996г., ISBN
5-7502-0019-1
7.Информация с сервера www.referats.aha.ru, изд.
INTERNET
8.CD-библиотека
«Все для инженера», изд. InfoLink,
1997г.
ПРИЛОЖЕНИЕ
1
ПРОГРАММНЫЙ
ИНТЕРФЕЙС
Uses DOS;
Type TNT = Array[0..65534]Of Byte;
Filearray = Array[1..5000]Of String[12];
Const
U0 = Char(200);
U1 = Char(201);
U2 = Char(202);
U3 = Char(199);
U4 = Char(198);
U5 = Char(203);
U6 = Char(193);
U7 = Char(192);
Up = Char(194)+Char(195);
Uf = Char(196)+Char(185);
Us = Char(197)+Char(186);
Speed = 3;
Hex : Array[0..15]Of Char =
('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
Var
Buffer : ^TNT;
Filx : ^filearray;
Dirx : ^filearray;
Fake : ^TNT;
ScanCode: Byte;
Key : Char;
Screen : Array[0..50*90] of byte;
Segscr : Word;
Ofsscr : Word;
px,py : Byte;
Clr : Byte;
MenuP : Byte;
F : File;
RomSize : Longint;
Curd : String;
RomName : String;
lxul,lyul,lxdr,lydr : byte;
Procedure WaitRt; assembler;
Asm
mov dx,$3da
@wa1:
in al,dx
test al,8
je @wa1
@wa2:
in al,dx
test al,8
jne @wa2
End;
Procedure Color(c1,c2 : byte);
Begin
clr:=c1+16*c2;
End;
Procedure Loc(x,y: byte);
Begin
px:=x;
py:=y;
End;
Procedure WChar(c : char);
Begin
screen[py*160+px+px]:=byte(c);
screen[py*160+px+px+1]:=clr;
inc(px);
If px=80 Then
Begin px:=0; inc(py);
If py>25 Then py:=25;
End;
End;
Procedure Shade(x : byte);
Var
m : byte;
Begin
For m:=1 To x Do
Begin
Screen[py*160+px+px+1]:=screen[py*160+px+px+1]
And $7;
inc(px);
If px=80 Then
Begin px:=0; inc(py);
If py>25 Then py:=25;
End;
End;
End;
Procedure Wrt(s : string);
Var
x: word;
Begin
For x:=1 To length(s) Do WChar(s[x]);
End;
Procedure WrtLn(s : string);
Var
x: word;
Begin
For x:=1 To length(s) Do WChar(s[x]);
px:=0;
inc(py);
If py>25 Then py:=25;
End;
Procedure Map;
Begin
Move(screen,mem[$b800:0],80*50);
End;
Procedure Cls;
Begin
FillChar(screen,80*50,0);
End;
Procedure ReadKey; assembler;
Asm
xor ax,ax
int 16h
End;
Function ScanKey : char;
Var
x : byte;
Begin
x:=255;
Asm
mov ah,01
int 16h
jz @nokey
mov x,al
mov ScanCode,ah
@nokey:
End;
If x<>255 Then ReadKey;
ScanKey:=char(x);
End;
Procedure SkipTime;
Var
h,m,s,c : word;
lh,lm,ls,lc : longint;
abstime1,abstime2: longint;
Begin
GetTime(h,m,s,c);
lh:=h; lm:=m; ls:=s; lc:=c;
abstime1:=lc+(ls*100)+(lm*60*100)+(lh*60*60*100);
Repeat
GetTime(h,m,s,c);
lh:=h; lm:=m; ls:=s; lc:=c;
abstime2:=lc+(ls*100)+(lm*60*100)+(lh*60*60*100);
Until (abstime2<>abstime1);
End;
Procedure MoveMan;
Var
addr : word;
a : byte;
x : word;
Begin
addr:=0;
For x:=0 To 80*25-1 Do
Begin
a:=screen[addr];
If (a>207)And(a<217) Then
inc(a);
If a=217 Then a:=208;
If a=205 Then a:=204 Else If a=204 Then
a:=205;
screen[addr]:=a;
inc(addr,2);
End;
End;
Procedure MakeMans;
Var x: word;
Begin
For x:=0 To 80*25-1 Do
Begin
screen[x+x] :=177;
screen[x+x+1]:=16+7;
End;
End;
Procedure LoadFont;
Var
f: file;
Begin
Assign(f,curd+'axefont.fnt');
Reset(f,1);
Blockread(f,screen,50*80);
Close(f);
Asm
push bp
mov ax,segscr
mov es,ax
mov bp,ofsscr
mov bx,1000h
xor dx,dx
mov cx,256
mov ax,1100h
int 10h
pop bp
mov ah,1
mov cx,1000h
int 10h
End;
Cls;
End;
Procedure WaitKey;
Begin
WaitRt;
Map;
Repeat
Key:=ScanKey;
If Key=char(255) Then
Begin
Map;
MoveMan;
SkipTime;
End;
Until Key<>char(255);
End;
Procedure Window(xul,yul,xdr,ydr : byte; name :
string);
Var
x,y : word;
Begin
Loc(xul,yul);
Wrt(up);
For x:=xul+2 To xdr Do Wrt('-');
For y:=yul+1 To ydr-1 Do
Begin
Loc(xul,y); Wrt(u0);
For x:=xul+1 To xdr-1 Do Wrt(' ');
Wrt(u1);
Shade(2);
End;
Loc(xul,y);
Wrt(u4);
For x:=xul+1 To xdr-1 Do Wrt(u7);
Wrt(u5);
Loc(xul+2,ydr);
Shade(xdr-xul+1);
|