2008/01/08

Pascal дээрх график горим ба түүнтэй ажиллах №1

Сайн байна уу? Та бүхэнд энэ өдрийн мэнд хүргэе. Програмчлалын pascal хэл сонирхон судалж буй сурачидад болон хүүхэд залуучууддаа зориулан өөрийн мэддэг өчүүхэн зүйлсээ хуваалцахаар шийдлээ. Энэ удаадаа би та бүхэнд pascal-ийн стандарт биш график горимын талаар хэдэн зүйл сонирхуулъя.

  1. График горим тогтоох

Procedure SetGraphMode(aMode: byte); Assembler;

Asm

Mov ah, 00

Mov al, aMode

Int 10h

End;

Энд байгаа процедур нь DOS-ийн дэлгэцийн стандарт горимуудыг тогтоох зориулалттай юм. Үүний aMode гэсэн аргументд дараах утгуудыг өгч болно. Үүнд:

Утга

Төрөл

Хэмжээс

Үсэг

Өнгө

Нэр

Хаяг

$0

Text

40x25

8x8

16

CGA,EGA

B800

$1

Text

40x25

8x8

16

CGA,EGA

B800

$2

Text

80x25

8x8

16

CGA,EGA

B800

$3

Text

80x25

8x8

16

CGA,EGA

B800

$4

Graphic

320x200

8x8

4

CGA,EGA

B800

$5

Graphic

320x200

8x8

4

CGA,EGA

B800

$6

Graphic

640x200

8x8

2

CGA,EGA

B800

$7

Text

80x25

9x14

16

MDA,EGA

B000

$d

Graphic

320x200

8x8

16

CGA,VGA

A000

$e

Graphic

640x200

8x8

16

CGA,VGA

A000

$f

Graphic

640x350

8x14

3

CGA,VGA

A000

$10

Graphic

640x350

8x14

4

CGA,VGA

A000

$11

Graphic

640x480

8x16

2

VGA

A000

$12

Graphic

640x480

8x16

16

VGA

A000

$13

Graphic

320x200

8x16

256

VGA

A000

Хүснэгтэд буй $0 - $13 гэж тэмдэглэгдсэн багана нь дээрх процедурын aMode гэсэн аргументд өгөх утга юм. $13 = 19 гэдгийг та нар мэдэх байхаа. $ гэсэн тэмдэг нь тухайн тоо 16тын тооллын системийнх гэсэн үг шүү дээ.

$13 горим нь тоглоом хийхэд хамгийн тохиромжтой нь гэж би боддог. Учир нь энэ хамгийн их өнгөтэйд л байгаа юм.

  1. Дээрх горимуудаас график төрлийн горимуудыг ашиглан програм бичих гэж байгаа бол pascal хэлний стандарт GRAPH модулийн ямар ч функц ажиллахгүй. Тийм болохоор та бүхэнд дээрх горим дээр цэг зурах процедурыг хийж өгье.

Procedure MyPutPixel(x, y: integer; c: byte);

Begin

Mem[$a000: (x-1)+(y-1)*320] := c;

End;

Энд x, y нь зурах гэж буй цэгийн координат, c нь зурах цэгийн өнгө юм.

Өнөөдрийн хувьд энэ хүргээд дуусгая. Цайны цаг дуусчихлаа. Дараа үргэлжлүүлье.

1 comment:

Anonymous said...

sain bnuu Bi muis iin mts d surdag 2r kurs bichsen zuil chin ih sonirholtoi sanagdlaa surguulid zaaj bga zuileesee arai oor yum sonirhoj surya gj bodood haij yavaad ene blogiig unshlaa minii commentiig unshval Lohnes_shi@yahoo.com ruu msg bicheerei. Bid nariin zorilgo moroodol 1!