небольшой опрос
-
irik
небольшой опрос
скажите,когда вы начали программировать- какая была первая программа(простая или сложная) ,
может заодно подскажите,с какой программы проще начинать писать,
откуда у вас берутся идеи,
и еще ,может глупый вопрос,а для написания пр-мы,жава скрипт?
может заодно подскажите,с какой программы проще начинать писать,
откуда у вас берутся идеи,
и еще ,может глупый вопрос,а для написания пр-мы,жава скрипт?
-
irik
-
irik
Re: небольшой опрос
у меня еще спектрумовские на винте есть 
но я не решился их сюда постить, они раз в 10 больше того, что я уже запостил
но я не решился их сюда постить, они раз в 10 больше того, что я уже запостил
-
irik
Re: небольшой опрос
Цитата:
это вообще трудно- самому придумывать программы?
Все зависит от фантазии.
это вообще трудно- самому придумывать программы?
Все зависит от фантазии.
-
BrutalBit
-
DYURIK
Re: небольшой опрос
Я начал писать еще на spectrum... первые программы были на бейсике, потом на ассемблере... писал восновном игры, или менял уже готовые (благо на спектруме это было сделать легко), вот так ..
Regards, suxxl
Regards, suxxl
-
vadimiron
Re: небольшой опрос
А я начал всё через "попу" 
Начал программировать на PHP, так как мне нравилось интернет программирование и всё с этим связанное, а сейчас пора уже учится нормальному программированию и учу С++
А первая программа была следущая:
$i=1;
while ($i

Начал программировать на PHP, так как мне нравилось интернет программирование и всё с этим связанное, а сейчас пора уже учится нормальному программированию и учу С++
А первая программа была следущая:
$i=1;
while ($i
-
JCooper
Re: небольшой опрос
Помню когда мне было еще лет 12 был у меня ibm 286. Вот это были времена. Писал проги на старом добром TP 6.0 (7.0). Запомнилась лишь игра типа РПГ только полностью текстовая. А так в сновном писал всякую ерунду, даже прогами назвать нельзя, учился одним словом. Первый код написанный мною был выдран из книги, некое подобие хеллоу ворлд.
-
JCooper
Re: небольшой опрос
Предложение, если у кого то есть старые исходники - кинуть сюда, вместе посмеемся
сейчас я маленький кусочек найду 
вот основная программа
Цитата:
Uses Crt,key,GraphLib;
Var x,s,y: LongInt;
Time : LongInt;
Timer : LongInt absolute $40:$6c;
Procedure movelka;
Begin
s:=1;
x:=150;
y:=100;
Repeat
Time:=Timer;
Repeat Until Timer-Time>1;
ClrVid2(0);
PrintD('“ç¨ *áª*«ì - ®â®¬áâ¨èì!
',1,1,3);
ShowPicTransD(x,y,s);
ShowDouble;
If pressed [scLeft] then
Begin
dec(x,4);
inc(s);
if s>2 then s:=1;
End else
If pressed [scRight] then
Begin
inc(x,4);
inc(s);
if s>2 then s:=1;
End else s:=1;
Until pressed [scEsc];
End;
BEGIN
GrInit;
Install_Handler;
ClrVid2(0);
ReadPicture('1.img');
ReadPicture('2.img');
TrCol:=$FF;
movelka;
GrDone;
Restore_Handler;
END.
и сама библиотека графическая:
Цитата:
Unit GraphLib;
{$L rus}
{$L mouse}
Interface
Uses Dos;
Type TPalette = Array[0..255] of record R,G,B : Byte; End; { *«¨âà* }
Const
VGA256 = $13;
TextMode = 3;
PalMask = $36C;
PalRegR = $3C7;
PalRegW = $3C8;
PalData = $3C9;
fcFriend = 15;
fcEnemy = 40;
colGreen = 28;
colYellow = 8;
colRed = 40;
fr=0;
en=64;
FadeSpeed : LongInt = 20; { ‘ª®à®áâì £*è¥*¨ï/¯à®ï¢«¥*¨ï íªà*** }
Type TVidBuf = Array[1..65100] of Byte;
TSpr = Array[0..15,0..15] of byte;
TFont = Array[128..239,1..8] of byte;
TMouseBuf = Array[1..16,1..16] of byte;
Var SegDB : Word;
GetBack : Byte;
Fnt : ^TFont;
Int1CSave : Pointer;
MouseVis : Boolean;
MouseX,MouseY : Integer;
MouseBuf : ^TMouseBuf;
MouseFile : File of TSpr;
MouseSpr : ^TSpr;
DoubleBuf : ^TVidBuf;
FrameColor : Byte;
Pic : Array[1..100] of record
W,H : Word;
Spr : Pointer;
End;
LastP : Integer;
TrCol : Byte;
Pal : TPalette;
Procedure SetPalette(Pal : TPalette);
Procedure FadePal(Pal : TPalette);
Procedure LightPal(Pal : TPalette);
Procedure ReadPicture(FileName : String);
Procedure FreePicture(PicN : Byte);
Procedure ShowPicture(X,Y,PicN : Integer);
Procedure ShowPictureD(X,Y,PicN : Integer);
Procedure ShowPicTrans(X,Y,PicN : Integer);
Procedure ShowPicTransD(X,Y,PicN : Integer);
Procedure VRT;
Procedure ReadMouseState(Var XMo,YMo : Integer;Var Lb,Mb,Rb : Boolean);
Procedure DrawLeft(A : Word;P : Pointer);
Procedure DrawRight(A : Word;P : Pointer);
Procedure ShowFrame(X1,Y1,W,H : Word);
Procedure Pixel(x,y : Word; Color : Byte);
Procedure PixelD(x,y : Word; Color : Byte);
Procedure SetMode(Mode : Byte);
Procedure SetPalReg(index,Red,Green,Blue : Byte);
Procedure ClrVid(color : Byte);
Procedure ClrVid2(color : Byte);
Procedure Print(S : String;x,y : Word; color : Byte);
Procedure PrintD(S : String;x,y : Word; color : Byte);
Procedure ShowImage(x,y : Word;w,h : Word;Spr : Pointer);
Procedure ShowTrans(x,y : Word;w,h : Word;Spr : Pointer);
Procedure ShowImageD(x,y : LongInt;w,h : Word;Spr : Pointer);
Procedure ShowTransD(x,y : Word;w,h : Word;Spr : Pointer);
Procedure ShowSprD(x,y : Word;w,h : Word;Spr : Pointer;col : Byte);
Procedure ShowEnergy(x,y : LongInt;len,col : Byte);
{Procedure DrawSprite16(Spr : TSpr;x,y : Word);}
Procedure DrawSpriteD(Spr : TSpr;x,y : Word);
Procedure DrawSpriteT(Spr : TSpr;x,y : Word);
Procedure ReadUnderMouse;
Procedure ShowUnderMouse;
Procedure ShowMous;
Procedure ShowMous2;
Procedure ShowDouble;
Procedure ShowMouse;
Procedure HideMouse;
Procedure GrInit;
Procedure GrDone;
Implementation
Procedure RusFont; far; external;
Procedure MouseSp; far; external;
Procedure FadePal(Pal : TPalette);
Var A,B : LongInt;
P : TPalette;
T : LongInt;
Begin
For B:=FadeSpeed downto 0 do
Begin
For A:=0 to 255 do
Begin
P[A].R:=Trunc(Pal[A].R*B/FadeSpeed);
P[A].G:=Trunc(Pal[A].G*B/FadeSpeed);
P[A].B:=Trunc(Pal[A].B*B/FadeSpeed);
End;
SetPalette(P);
T:=MemL[$40:$6c];
Repeat Until MemL[$40:$6c]-T>=1;
End;
End;
Procedure LightPal(Pal : TPalette);
Var A,B : LongInt;
P : TPalette;
T : LongInt;
Begin
For B:=0 to FadeSpeed do
Begin
For A:=0 to 255 do
Begin
P[A].R:=Trunc(Pal[A].R*B/FadeSpeed);
P[A].G:=Trunc(Pal[A].G*B/FadeSpeed);
P[A].B:=Trunc(Pal[A].B*B/FadeSpeed);
End;
SetPalette(P);
T:=MemL[$40:$6c];
Repeat Until MemL[$40:$6c]-T>=1;
End;
End;
Procedure ReadPicture(FileName : String);
Var F : File;
W,H : Word;
Begin
Assign(F,FileName);
ReSet(F,1);
BlockRead(F,W,2);
BlockRead(F,H,2);
Inc(LastP);
GetMem(Pic[LastP].Spr,W*H);
Pic[LastP].W:=W;
Pic[LastP].H:=H;
BlockRead(F,Pic[LastP].Spr^,W*H);
BlockRead(F,Pal,SizeOf(Pal));
Close(F);
For W:=0 to 255 do SetPalReg(W,Pal[W].R,Pal[W].G,Pal[W].B);
End;
Procedure FreePicture(PicN : Byte);
Begin
FreeMem(Pic[PicN].Spr,Pic[PicN].W*Pic[PicN].H);
End;
Procedure ShowPicture(X,Y,PicN : Integer);
Begin
ShowImage(X,Y,Pic[PicN].W,Pic[PicN].H,Pic[PicN].Spr);
End;
Procedure ShowPicTrans(X,Y,PicN : Integer);
Begin
ShowTrans(X,Y,Pic[PicN].W,Pic[PicN].H,Pic[PicN].Spr);
End;
Procedure ShowPicTransD(X,Y,PicN : Integer);
Begin
ShowTransD(X,Y,Pic[PicN].W,Pic[PicN].H,Pic[PicN].Spr);
End;
Procedure ShowPictureD(X,Y,PicN : Integer);
Begin
ShowImageD(X,Y,Pic[PicN].W,Pic[PicN].H,Pic[PicN].Spr);
End;
Procedure ReSetMouse;
Var R : Registers;
Begin
R.ax:=0;
Intr($33,R);
End;
Procedure ReadMouseState(Var XMo,YMo : Integer;Var Lb,Mb,Rb : Boolean);
Var R : Registers;
Begin
R.ax:=3;
Intr($33,R);
XMo:=R.cx;
YMo:=R.dx;
Lb:=R.bx and 1=1;
Rb:=R.bx and 2=2;
Mb:=R.bx and 4=4;
End;
Procedure SetMode(Mode : Byte); assembler;
Asm
Mov AH,0
Mov AL,Mode
Int 10h
End;
Procedure Pixel(x,y : Word; Color : Byte); assembler;
Asm
Mov ax,SegA000
Mov es,ax
Mov di,y
Shl di,6
Mov bx,di
Shl di,2
Add di,bx
Add di,x
Mov al,Byte Ptr color
Mov es : [di],al
End;
Procedure PixelD(x,y : Word;Color : Byte); assembler;
Asm
Mov ax,SegDB
Mov es,ax
Mov di,y
Shl di,6
Mov bx,di
Shl di,2
Add di,bx
Add di,x
Mov al,Byte Ptr color
Mov es : [di],al
End;
Procedure SetPalReg(index,Red,Green,Blue : Byte);
Begin
Port[PalMask]:=$FF;
Port[PalRegW]:=index;
Port[PalData]:=Red;
Port[PalData]:=Green;
Port[PalData]:=Blue;
End;
Procedure SetPalette(Pal : TPalette);
Var I : Byte;
Begin
For I:=0 to 255 do SetPalReg(I,Pal.R,Pal.G,Pal.B);
End;
Procedure ShMo;
Begin
DrawSpriteD(MouseSpr^,MouseX,MouseY);
End;
Procedure RdMo; assembler;
Asm
Push ds
Les di,MouseBuf
Mov si,MouseY
Shl si,6
Mov bx,si
Shl si,2
Add si,bx
Add si,MouseX
Push si
Mov ax,SegDB
Mov ds,ax
Pop si
Mov cx,16
Cld
@m1 :
Push cx
Mov cx,8
Rep MovsW
Pop cx
Add si,304
Loop @m1
Pop ds
End;
Procedure ShowDouble; assembler;
Asm
Mov dl,MouseVis
Push dx
Mov MouseVis,0
Cmp dl,1
Jne @dal1
Call RdMo
Call ShMo
@dal1 :
Push ds
Mov ax,SegA000
Mov es,ax
Mov di,0
Mov cx,32000
Mov ax,SegDB
Mov ds,ax
Mov si,0
Cld
Rep MovsW
Pop ds
Pop dx
Mov MouseVis,dl
End;
Procedure ShowFrame(X1,Y1,W,H : Word); assembler;
Asm
mov ax,SegDB
mov es,ax
Mov di,y1
Shl di,6
Mov bx,di
Shl di,2
Add di,bx
Add di,x1
mov cx,W
mov al,FrameColor
rep stosb
add di,320
sub di,w
mov cx,h
sub cx,2
@Met1:
mov es:[di],al
add di,w
dec di
mov es:[di],al
inc di
add di,320
sub di,w
loop @Met1
mov cx,w
rep stosb
End;
Procedure ClrVid(color : Byte); assembler;
Asm
Mov ax,SegA000
Mov es,ax
Mov di,0
Mov cx,32000
Mov ah,color
Mov al,ah
Cld
Rep StosW
Mov GetBack,al
End;
Procedure ClrVid2(color : Byte); assembler;
Asm
Mov ax,SegDB
Mov es,ax
Mov di,0
Mov cx,32000
Mov ah,color
Mov al,ah
Cld
Rep StosW
Mov GetBack,al
End;
Procedure Print(S : String;x,y : Word; color : Byte);
Var i,x1,y1,Off : Word;
Procedure Prt(Ch : Char;x,y,off : Word; color : Byte);
Var WrkSeg,WrkOff,x2,y2,TOff : Word;
BitMask,O : Byte;
Begin
If Ord(Ch)=0) and (X
вот основная программа
Цитата:
Uses Crt,key,GraphLib;
Var x,s,y: LongInt;
Time : LongInt;
Timer : LongInt absolute $40:$6c;
Procedure movelka;
Begin
s:=1;
x:=150;
y:=100;
Repeat
Time:=Timer;
Repeat Until Timer-Time>1;
ClrVid2(0);
PrintD('“ç¨ *áª*«ì - ®â®¬áâ¨èì!
',1,1,3);ShowPicTransD(x,y,s);
ShowDouble;
If pressed [scLeft] then
Begin
dec(x,4);
inc(s);
if s>2 then s:=1;
End else
If pressed [scRight] then
Begin
inc(x,4);
inc(s);
if s>2 then s:=1;
End else s:=1;
Until pressed [scEsc];
End;
BEGIN
GrInit;
Install_Handler;
ClrVid2(0);
ReadPicture('1.img');
ReadPicture('2.img');
TrCol:=$FF;
movelka;
GrDone;
Restore_Handler;
END.
и сама библиотека графическая:
Цитата:
Unit GraphLib;
{$L rus}
{$L mouse}
Interface
Uses Dos;
Type TPalette = Array[0..255] of record R,G,B : Byte; End; { *«¨âà* }
Const
VGA256 = $13;
TextMode = 3;
PalMask = $36C;
PalRegR = $3C7;
PalRegW = $3C8;
PalData = $3C9;
fcFriend = 15;
fcEnemy = 40;
colGreen = 28;
colYellow = 8;
colRed = 40;
fr=0;
en=64;
FadeSpeed : LongInt = 20; { ‘ª®à®áâì £*è¥*¨ï/¯à®ï¢«¥*¨ï íªà*** }
Type TVidBuf = Array[1..65100] of Byte;
TSpr = Array[0..15,0..15] of byte;
TFont = Array[128..239,1..8] of byte;
TMouseBuf = Array[1..16,1..16] of byte;
Var SegDB : Word;
GetBack : Byte;
Fnt : ^TFont;
Int1CSave : Pointer;
MouseVis : Boolean;
MouseX,MouseY : Integer;
MouseBuf : ^TMouseBuf;
MouseFile : File of TSpr;
MouseSpr : ^TSpr;
DoubleBuf : ^TVidBuf;
FrameColor : Byte;
Pic : Array[1..100] of record
W,H : Word;
Spr : Pointer;
End;
LastP : Integer;
TrCol : Byte;
Pal : TPalette;
Procedure SetPalette(Pal : TPalette);
Procedure FadePal(Pal : TPalette);
Procedure LightPal(Pal : TPalette);
Procedure ReadPicture(FileName : String);
Procedure FreePicture(PicN : Byte);
Procedure ShowPicture(X,Y,PicN : Integer);
Procedure ShowPictureD(X,Y,PicN : Integer);
Procedure ShowPicTrans(X,Y,PicN : Integer);
Procedure ShowPicTransD(X,Y,PicN : Integer);
Procedure VRT;
Procedure ReadMouseState(Var XMo,YMo : Integer;Var Lb,Mb,Rb : Boolean);
Procedure DrawLeft(A : Word;P : Pointer);
Procedure DrawRight(A : Word;P : Pointer);
Procedure ShowFrame(X1,Y1,W,H : Word);
Procedure Pixel(x,y : Word; Color : Byte);
Procedure PixelD(x,y : Word; Color : Byte);
Procedure SetMode(Mode : Byte);
Procedure SetPalReg(index,Red,Green,Blue : Byte);
Procedure ClrVid(color : Byte);
Procedure ClrVid2(color : Byte);
Procedure Print(S : String;x,y : Word; color : Byte);
Procedure PrintD(S : String;x,y : Word; color : Byte);
Procedure ShowImage(x,y : Word;w,h : Word;Spr : Pointer);
Procedure ShowTrans(x,y : Word;w,h : Word;Spr : Pointer);
Procedure ShowImageD(x,y : LongInt;w,h : Word;Spr : Pointer);
Procedure ShowTransD(x,y : Word;w,h : Word;Spr : Pointer);
Procedure ShowSprD(x,y : Word;w,h : Word;Spr : Pointer;col : Byte);
Procedure ShowEnergy(x,y : LongInt;len,col : Byte);
{Procedure DrawSprite16(Spr : TSpr;x,y : Word);}
Procedure DrawSpriteD(Spr : TSpr;x,y : Word);
Procedure DrawSpriteT(Spr : TSpr;x,y : Word);
Procedure ReadUnderMouse;
Procedure ShowUnderMouse;
Procedure ShowMous;
Procedure ShowMous2;
Procedure ShowDouble;
Procedure ShowMouse;
Procedure HideMouse;
Procedure GrInit;
Procedure GrDone;
Implementation
Procedure RusFont; far; external;
Procedure MouseSp; far; external;
Procedure FadePal(Pal : TPalette);
Var A,B : LongInt;
P : TPalette;
T : LongInt;
Begin
For B:=FadeSpeed downto 0 do
Begin
For A:=0 to 255 do
Begin
P[A].R:=Trunc(Pal[A].R*B/FadeSpeed);
P[A].G:=Trunc(Pal[A].G*B/FadeSpeed);
P[A].B:=Trunc(Pal[A].B*B/FadeSpeed);
End;
SetPalette(P);
T:=MemL[$40:$6c];
Repeat Until MemL[$40:$6c]-T>=1;
End;
End;
Procedure LightPal(Pal : TPalette);
Var A,B : LongInt;
P : TPalette;
T : LongInt;
Begin
For B:=0 to FadeSpeed do
Begin
For A:=0 to 255 do
Begin
P[A].R:=Trunc(Pal[A].R*B/FadeSpeed);
P[A].G:=Trunc(Pal[A].G*B/FadeSpeed);
P[A].B:=Trunc(Pal[A].B*B/FadeSpeed);
End;
SetPalette(P);
T:=MemL[$40:$6c];
Repeat Until MemL[$40:$6c]-T>=1;
End;
End;
Procedure ReadPicture(FileName : String);
Var F : File;
W,H : Word;
Begin
Assign(F,FileName);
ReSet(F,1);
BlockRead(F,W,2);
BlockRead(F,H,2);
Inc(LastP);
GetMem(Pic[LastP].Spr,W*H);
Pic[LastP].W:=W;
Pic[LastP].H:=H;
BlockRead(F,Pic[LastP].Spr^,W*H);
BlockRead(F,Pal,SizeOf(Pal));
Close(F);
For W:=0 to 255 do SetPalReg(W,Pal[W].R,Pal[W].G,Pal[W].B);
End;
Procedure FreePicture(PicN : Byte);
Begin
FreeMem(Pic[PicN].Spr,Pic[PicN].W*Pic[PicN].H);
End;
Procedure ShowPicture(X,Y,PicN : Integer);
Begin
ShowImage(X,Y,Pic[PicN].W,Pic[PicN].H,Pic[PicN].Spr);
End;
Procedure ShowPicTrans(X,Y,PicN : Integer);
Begin
ShowTrans(X,Y,Pic[PicN].W,Pic[PicN].H,Pic[PicN].Spr);
End;
Procedure ShowPicTransD(X,Y,PicN : Integer);
Begin
ShowTransD(X,Y,Pic[PicN].W,Pic[PicN].H,Pic[PicN].Spr);
End;
Procedure ShowPictureD(X,Y,PicN : Integer);
Begin
ShowImageD(X,Y,Pic[PicN].W,Pic[PicN].H,Pic[PicN].Spr);
End;
Procedure ReSetMouse;
Var R : Registers;
Begin
R.ax:=0;
Intr($33,R);
End;
Procedure ReadMouseState(Var XMo,YMo : Integer;Var Lb,Mb,Rb : Boolean);
Var R : Registers;
Begin
R.ax:=3;
Intr($33,R);
XMo:=R.cx;
YMo:=R.dx;
Lb:=R.bx and 1=1;
Rb:=R.bx and 2=2;
Mb:=R.bx and 4=4;
End;
Procedure SetMode(Mode : Byte); assembler;
Asm
Mov AH,0
Mov AL,Mode
Int 10h
End;
Procedure Pixel(x,y : Word; Color : Byte); assembler;
Asm
Mov ax,SegA000
Mov es,ax
Mov di,y
Shl di,6
Mov bx,di
Shl di,2
Add di,bx
Add di,x
Mov al,Byte Ptr color
Mov es : [di],al
End;
Procedure PixelD(x,y : Word;Color : Byte); assembler;
Asm
Mov ax,SegDB
Mov es,ax
Mov di,y
Shl di,6
Mov bx,di
Shl di,2
Add di,bx
Add di,x
Mov al,Byte Ptr color
Mov es : [di],al
End;
Procedure SetPalReg(index,Red,Green,Blue : Byte);
Begin
Port[PalMask]:=$FF;
Port[PalRegW]:=index;
Port[PalData]:=Red;
Port[PalData]:=Green;
Port[PalData]:=Blue;
End;
Procedure SetPalette(Pal : TPalette);
Var I : Byte;
Begin
For I:=0 to 255 do SetPalReg(I,Pal.R,Pal.G,Pal.B);
End;
Procedure ShMo;
Begin
DrawSpriteD(MouseSpr^,MouseX,MouseY);
End;
Procedure RdMo; assembler;
Asm
Push ds
Les di,MouseBuf
Mov si,MouseY
Shl si,6
Mov bx,si
Shl si,2
Add si,bx
Add si,MouseX
Push si
Mov ax,SegDB
Mov ds,ax
Pop si
Mov cx,16
Cld
@m1 :
Push cx
Mov cx,8
Rep MovsW
Pop cx
Add si,304
Loop @m1
Pop ds
End;
Procedure ShowDouble; assembler;
Asm
Mov dl,MouseVis
Push dx
Mov MouseVis,0
Cmp dl,1
Jne @dal1
Call RdMo
Call ShMo
@dal1 :
Push ds
Mov ax,SegA000
Mov es,ax
Mov di,0
Mov cx,32000
Mov ax,SegDB
Mov ds,ax
Mov si,0
Cld
Rep MovsW
Pop ds
Pop dx
Mov MouseVis,dl
End;
Procedure ShowFrame(X1,Y1,W,H : Word); assembler;
Asm
mov ax,SegDB
mov es,ax
Mov di,y1
Shl di,6
Mov bx,di
Shl di,2
Add di,bx
Add di,x1
mov cx,W
mov al,FrameColor
rep stosb
add di,320
sub di,w
mov cx,h
sub cx,2
@Met1:
mov es:[di],al
add di,w
dec di
mov es:[di],al
inc di
add di,320
sub di,w
loop @Met1
mov cx,w
rep stosb
End;
Procedure ClrVid(color : Byte); assembler;
Asm
Mov ax,SegA000
Mov es,ax
Mov di,0
Mov cx,32000
Mov ah,color
Mov al,ah
Cld
Rep StosW
Mov GetBack,al
End;
Procedure ClrVid2(color : Byte); assembler;
Asm
Mov ax,SegDB
Mov es,ax
Mov di,0
Mov cx,32000
Mov ah,color
Mov al,ah
Cld
Rep StosW
Mov GetBack,al
End;
Procedure Print(S : String;x,y : Word; color : Byte);
Var i,x1,y1,Off : Word;
Procedure Prt(Ch : Char;x,y,off : Word; color : Byte);
Var WrkSeg,WrkOff,x2,y2,TOff : Word;
BitMask,O : Byte;
Begin
If Ord(Ch)=0) and (X