Глава 17. Модуль Printer




TestPrinter (рис. 17.3)

Функция возвращает код состояния принтера LPT1 (PRN)

PrintFile (рис. 17.3)

Процедура печати файла на принтере, подключенном к LPT1, с анализом состояния принтера.

PROGRAM (рис. 17.4)

Резидентная программа перенаправления потоков печати {558}

Глава 18. Модуль Overlay

PROGRAM (рис. 18.2)

Пример блока обработки ошибок при работе с оверлеями

Глава 19. Модуль Graph

CopyToPRN (рис. 19.27)

Процедура получения твердой копии изображения, полученного на экране в графическом режиме, на принтерах типа EPSON FX

PROGRAM (рис. 19.29)

Программа-каркас моделирования движения бильярдного шара, использующая свойство режима XOR вывода изображения

PROGRAM (рис. 19.30)

Программа-каркас, использующая покадровый алгоритм движения изображения (только для адаптеров EGA и VGA)

LoadFont (рис. 19.32)

Процедура связывания файла внешнего шрифта с паскаль-программой

LoadFont8x8 (рис. 19.33)

Процедура замены системного шрифта DefaultFont на внешний, сконструированный в матрицах 8x8

UNIT BGI (рис. 19.36)

Модуль, составленный для включения всех BGI-драйверов и CHR-шрифтов (в том числе и собственных) в ЕХЕ-файл

Глава 20. Профессиональная работа с текстовыми изображениями

GetScreenPtr (рис. 20.1)

Функция, выдающая адрес видеопамяти в режиме текста

CurrentMode (рис. 20.2)

Функция, выдающая номер текущего текстового режима

Font8x8YES (рис. 20.2)

Функция, выдающая True, если включен режим Font8x8

GetScreenSize (рис. 20.2)

Функция, выдающая длину видеопамяти в текущем режиме

GetColNum, GetRowNum (рис. 20.2)

Функции, выдающие текущие число столбцов и строк

FillArea (рис. 20.5)

Процедура заполнения прямоугольной области экрана символом в заданном цветовом атрибуте

ChangeAttr (рис. 20.5)

Процедура переназначения цветового атрибута прямоугольной области экрана

PROGRAM (рис. 20.7)

Пример, ведения системы окон с помощью средств модуля Win

SaveCurrentScreenOnDisk, LoadScreenFromDisk (рис. 20.8)

Процедура сохранения текущего текст-экрана на диске и его чтения

WriteChar (рис. 20.11)

Процедура вывода символа в виде изображения размером 8x8 позиций {559}

WriteLargeString (рис. 20.11)

Процедура изображения строки большими буквами

SetCursorSize (рис. 20.13)

Процедура установки формы текстового курсора

SetNormalCursor, SetBlockCursor, SetNoCursor (рис. 20.13)

Процедуры установки нормальной, блочной и невидимой формы

Глава 21. Как осуществить полный доступ к клавиатуре

ClrKeyBuf (рис. 21.1)

Процедура очистки буфера клавиатуры

Wait (рис. 21.2)

Процедура ожидания нажатия на клавиатуре

GetLockKey, SetLockKey (рис. 21.9)

Функция, анализирующая состояние режима xxLock и процедура управления им

UnReadKey (рис. 21.12)

Процедура, возвращающая в буфер клавиатуры значение, содержащее ASCII-код алфавитной клавиши

UnReadExtCode (рис. 21.12)

Процедура, возвращающая в буфер клавиатуры значение, содержащее расширенный код функциональной клавиши или алфавитной в режиме Alt

UnReadString (рис. 21.12)

Процедура помещения в буфер строки (до 16 символов)

Глава 22. Работа с оперативной памятью видеоадаптеров

WriteSym (рис. 22.9)

Процедура вывода символа заданного цвета на графический экран шрифтом текстового режима

WriteStr (рис. 22.10)

Процедура вывода строки на графический экран шрифтом текстового режима (только EGA и VGA)

SaveScreen (рис. 22.11)

Процедура записи на диск картинки с экрана, не превышающего размер 640x200 при 16 цветах

LoadScreen (рис. 22.12)

Процедура вывода на экран картинки, записанной на диск. Максимальный размер — весь экран в режиме 640x200 при 16 цветах

SaveBitPlanes, LoadBitPlanes (рис. 22.13)

Процедуры сохранения изображения всего экрана на диске и считывания его

SaveCGAScr, LoadCGAScr (рис. 22.14)

Процедуры сохранения изображения всего экрана на диске и его чтения для CGA-адаптеров {560}

Индекс

В индексе представлены зарезервированные слова (записаны прописными буквами) и предопределенные идентификаторы языка Турбо Паскаль. После идентификатора стоит имя вводящего его модуля и буква, обозначающая его сущность: t — тип (type), с — константа (const), v — переменная (var), p — процедура (procedure), f — функция (function).


$

$DEFINE 57–58

$ELSE 57–59, 181, 183

$ENDIF 57–59

$IFDEF 57–59, 181

$IFNDEF 57–58

$IFOPT 57, 59, 183

$UNDEF 57, 59

A

AbsSystem.f 77, 175

ABSOLUTE 79–82, 292

Addr System.f 190–192, 197, 307
AND 77, 162, 166, 171–172

AndPut Graph.c 419, 452

AnyFile DOS.c 357

Append System.p 231, 235, 267–268

Arc Graph.p 406, 428–429, 439

ArcCoordsType Graph.t 429

Archive DOS.c 357

ArcTan System.f 175, 177

ARRAY 61, 69, 132–133

Assign System.p 221, 225–226, 268

AssignCRT CRT.p 315, 326, 343–344

ATT400 Graph.c 407, 413

ATT400Cx Graph.c 413

ATT400Hi Graph.c 413

ATT400Med Graph.c 413

В

Bar Graph.p 406, 439, 458

Bar3D Graph.p 406, 439

BEGIN 53, 93–94

BkSlashFill Graph.c 437

Black CRT.c 337, 438

Black Graph.c 441–442

Blink CRT.c 337, 442

BlockRead System.p 250–252, 267–268

BlockWrite System.p 250–252, 267–268

Blue CRT.c 337

Blue Graph.c 441–442

Boolean System.t 61, 64–66, 171, 241–242

BottomText Graph.c 464

Brown CRT.c 337

Brown Graph.c 441–442

BW40 CRT.c 329–330

BW80 CRT.c 329

Byte System.t 61–62, 65, 142, 164

С

C80 CRT.c 329

CASE 96–98, 138

CenterLn Graph.c 424

CenterText Graph.c 464

CGA Graph.c 407, 412

CGACx Graph.c 412

CGAHi Graph.c 412, 443

Char System.t 61, 64–65, 148–152

ChDir System.p 260–261, 267

CheckBreak CRT.v 320–322

CheckEOF CRT.v 319–320, 322–323

CheckSnow CRT.v 320–321, 331

Chr System.f 77, 152

Circle Graph. p 406, 427

ClearDevice Graph.p 406, 417, 423 ClearViewPort Graph.p 406, 423, 458 {561}

ClipOff Graph.c 456–458

ClipOnGraph.c 456–458

Close System.p 225–228, 263, 268

CloseDotFill Graph.c 437

CloseGraph Graph.p 405–406, 408

ClrEOL CRT.p 326, 334

ClrScr CRT.p 326, 329, 480

CO80 CRT.c 329–330

CompSystem.t 182

ComStr DOS.t 361

Concat System.f 153–154

CONST 53, 60, 75–76, 84

CONSTRUCTOR 283, 293

Copy System.f 153–154

CopyPut Graph.c 419-420, 452

Cos System.f 175

Cpu86 59

Cpu87 59

CRT модуль 7, 130–131, 314

CSeg System.f 189

CurrentDriver Graph.c 407

Cyan CRT.c 337

Cyan Graph.c 441–442

D

DarkGray CRT.c 337

DarkGray Graph.c 441-442

DashedLn Graph.c 424

DateTime DOS.t 350, 352–353

Dec System.p 176, 180

DefaultFont Graph.c 459–460, 462–464, 466

Delay CRT.p 326, 339, 342

Delete System.p 153, 155–156

DelLine CRT.p 326, 335–336

DESTRUCTOR 288

Detect Graph.c 407, 416

DetectGraph Graph.p 406, 413

Directory DOS.с 357

DOS модуль 7, 130–131, 345

DosError DOS.v 361–363, 381–382

DosExitCode DOS.f 379, 381–382

DosVersion DOS.f 346

DottedLn Graph.c 424

Double System.t 182–184

DOWNTO 101

Drawpoly Graph.p 406, 420, 430–431

DSegSystem.f 189, 306

E

EGA Graph.c 407, 412

EGA64 Graph.c 407, 413

EG A64Hi Graph.c 413

EGA64Lo Graph.c 413

EGABlack-EGAWhite Graph.c 446
EGAHi Graph.c 412

EGALo Graph.c 412

EGAMono Graph.c 407, 413

EGAMonoHi Graph.c 413

Ellipse Graph.p 406, 428, 439–440
ELSE 94–97

Empty Fill Graph.c 437

END 53, 71–72, 93–94

EnvCount DOS.f 346–348

EnvStr DOS.f 347–348

EOF System.f 226, 229–230, 259, 268, 322

EOLn System.f 232, 235–237, 268

Erase System.p 225, 228–229, 267–268

ErrorAddr System.v 309

Exec DOS.p 379–381

Exit System.p 105, 124

ExitCode System.v 309

ExitProc System.v 309, 311

Exp System.f 175

Extended System.t 182–184

EXTERNAL 112–113

ExtStrDOS.t 357, 361

F

Fail System.p 289, 292

False System.c 64–66, 68, 174

FExpand DOS.f 357, 360, 368

FILE 61, 224, 245, 249–250, 360

FileMode System.v 247, 267–268

FilePos System.f 255–257, 268 {562}

FileRec DOS.t 250, 358–360

FileSize System.f 255-257, 259, 268

FillChar System.p 151, 295, 299–301

FillEllipse Graph.p 406, 429, 440

FillPatternType Graph.c 436-437, 439

FillPoly Graph.p 406, 410, 440–441

FillSettingsType Graph.t 438

FindFirstDOS.p 356–357, 361–363, 365

FindNext DOS.p 356–357, 361–363, 365

FloodFill Graph.p 406, 410, 441

Flush System.p 232, 235, 268

fmClosed DOS.c 358

fmInOut DOS.c 358

fmInput DOS.c 358

fmOutput DOS.c 358

Font8x8 CRT.c 330, 473

FOR 100–103, 105, 108

FORWARD 112, 126–127, 272

Free System.f 175,179

FreeMem System.p 200–202, 204, 208–209, 312

FreeMin System.v 206–207

FreePtr System.v 206–207

FSearch DOS.f 356, 364–365

FSplit DOS.p 357, 360, 367

FUNCTION 107, 114

G

GetArcCoords Graph.p 406, 429

GetAspectRatio Graph.p 406, 427, 440
GetBkColor Graph.f 406, 443

GetCBreak DOS.p 346–347

GetColor Graph.f 406, 443

GetDate DOS.p 350

GetDefaultPalette Graph.p 406, 444

GetDir System.p 259–260, 268

GetDriverName Graph.f 406, 416

GetEnv DOS.f 346–348

GetFAttr DOS.p 356, 365–366

GetFillPattern Graph.p 406, 439

GetFillSettings Graph.p 406, 438

GetFTime DOS.p 350, 353–354

GetGraphMode Graph.f 406, 415, 419

GetImage Graph.p 406, 452, 454, 521

GetIntVec DOS.p 369, 371

GetLineSettings Graph.p 406, 425

GetMaxColor Graph.f 406, 442, 444

GetMaxMode Graph.f 406, 415–416

GetMaxX Graph.f 406, 421, 423

GetMaxY Graph.f 406, 421, 423

GetMem System.p 200–202,

207–210, 312

GetModeName Graph.f 406, 416

GetModeRange Graph.p 406, 407, 416

GetPalette Graph. p 406, 444

GetPaletteSize Graph.f 406, 444

GetPixel Graph. f 406, 448

GetTextSettings Graph.p 466

GetTime DOS. p 350–352

GetVerify DOS. p 346–347

GetViewSettings Graph.p 406, 457

GetX Graph.f 406, 423

GetY Graph.f 406, 423

GothicFont Graph.c 459

GOTO 102–105, 111

GotoXY CRT.p 326, 331–334, 464

Graph модуль 7, 130–131, 405

Graphs модуль 7–8, 130–131

GraphDefaults Graph.p 406, 417, 423

GraphErrorMsg Graph.f 406, 409–410

GraphResuIt Graph.f 406, 409, 414

Green CRT.c 337

Green Graph.c 441–442

grError Graph.c 411, 438, 444, 457, 462

grFileNotFound Graph.c 410

grFontNotFound Graph.c 410

grInvalidDeviceNum Graph.c 411

grInvalidDriver Graph.c 410

grInvalidFont Graph.c 411, 462

grInvalidFontNum Graph.c 462

grInvalidMode Graph.c 411

grIOError Graph.c 411

grNoInitCraph Graph.c 410

grNoFloodMem Graph.c 410

grNoFontMem Graph.c 410

grNoLoadMem Graph.c 410

grNoScanMem Graph.c 410

grNotDetected Graph.c 410, 414

grOk Graph.c 410

H

Halt System.p 106, 202, 309, 311

HatchFill Graph.c 437 {563}

НеарError System.v 209–211

HeapOrg System.v 198–199, 204

HeapPtr System.v 198–199, 203,

206–207

HercMono Graph.c 407

HercMonoHi Craph.c 413

HiSystem.f 77, 304, 306

Hidden DOS.c 357, 367

HighVideo CRT.p 326, 338

HorizDir Graph.c 459

I

IBM8514 Graph.c 407, 413

IBM8514Lo Graph.c 413

IF 94–98

ImageSize Graph.f 406, 451–452, 522
IMPLEMENTATION 125, 127, 129
IN 77, 152, 163

IncSystem.p 176, 180

InitGraph Graph.p 405–408, 410, 414–418, 423

INLINE 115, 126, 305–307

INLINE директива 307

InOutRes System.v 262

Input System.v 229, 231, 236, 238, 315–316

Insert System.p 154–156

InsLine CRT.p 326, 335–336

InstallUserDriver Graph.f 406, 469

InstallUserFont Graph.f 407, 462

IntSystem.f 175, 179, 306

Integer System.t 61–63, 165

INTERFACE 125–126, 129

InterleaveFill Graph.c 437

INTERRUPT 115, 126, 371–372

IntrDOS.p 370, 373

IOResult System.f 262, 265, 267

К

KeepDOS.p 379, 384

KeyPressed CRT.f 326, 342–343

L

LABEL 52–53, 104

LastMode CRT.v 320, 330–331, 473

LeftText Graph.c 464

Length System.f 77, 153–154, 193

LightBlue CRT.c 337

LightBlue Graph.c 441–442

LightCyan CRT.c 337

LightCyan Graph.c 441–442

LightGray CRT.c 337

LightGray Graph.c 441–442

LightGreen CRT.c 337

LightGreen Graph.c 441–442

LightMagenta CRT.c 337

LightMagenta Graph.c 441–442

LightRed CRT.c 337

LightRed Graph.c 441–442

Line Graph.p 406, 420, 424, 457

LineFill Graph.c 437

LineRel Graph.p 406, 420, 423–424, 426

LineSettingsType Graph.t 424–425

LineTo Graph.p 406, 420, 423–424

Ln System.f 175, 313

Lo System.f 77, 304, 306

LongInt System.t 61–63, 165, 175–176

LowVideo CRT.p 326, 338

Lst Printer.v 387–388

LtBkSlashFill Graph.c 437

LtSlashFill Graph.c 437

M

Magenta CRT.c 337

Magenta Graph.c 441–442

Mark System.p 200, 202–204

MaxAvall System.f 200, 204–205, 207

MaxColors Graph.c 444

MCGA Graph.c 407, 412

MCGACx Graph.c 412

MCGAHi Graph.c 412

MCGAMed Graph.c 412

MemAvail System.f 200, 204–205, 207

Mem System.v 297–298

MemL System.v 297–298

MemW System. v 297–298;

MkDir System.p 260–261, 267

MOD 77, 162, 164

Mono CRT.c 324, 330

Move System.p 295, 301–304

MoveRel Graph.p 406, 423 {564}

MoveTo Graph.p 406, 423, 426

MsDos DOS.p 370, 373–374

MsDos 59

N

NameStrDOS.t 357, 361

New System.pf 200–204, 209–210, 287–289, 312

NIL 195, 289

NormVideo CRT.p 326, 331, 338

NormWidth Graph.c 424

NoSound CRT.p 326, 339

NOT 77, 162, 166, 171

NotPut Graph.c 419, 452

О

OBJECT 61, 72, 271, 276

Odd System.f 77, 176

OF 61, 97, 142

Ofs System.f 190–192, 206, 307

OR 77, 163, 166, 168, 172

Ord System.f 67, 77, 152, 154

OrPut Graph.c 419, 452

Output System.v 231, 238, 241, 315–316

OutText Graph.p 158, 407, 423, 463

OutTextXY Graph.p 158, 407, 463,

465, 470

Overlay модуль 7, 130–131, 393

OvrClearBuf Overlay.p 399–400

OvrCodeList System.v 403

OvrDebugPtr System.v 403

OvrDosHandle System.v 403

OvrEMSHandle System.v 403

OvrError Overlay.с 396–397, 399

OvrFileMode Overlay.v 402–403

OvrGetBuf Overlay.f 398, 400–401

OvrGetRetry Overlay.f 401

OvrHeapEnd System.v 400, 403

OvrHeapOrg System.v 400, 403

OvrHeapPtr System.v 403

OvrHeapSize System.v 399, 403

OvrInit Overlay.p 395–397, 399, 401–404, 313

OvrInitEMS Overlay.p 397, 399, 401

OvrIOError Overlay.c 396–397

OvrLoadCount Overlay.v 401–402

OvrLoadList System.v 403

OvrNoEMSDriver Overlay.c 396–397

OvrNoEMSMemory Overlay.c396-397

OvrNoMemory Overlay.c 396–397, 399

OvrNotFound Overlay.c 396

OvrOk Overlay.с 396

OvrReadBuf Overlay.v 402

OvrReadFunc Overlay.t 402

OvrResult Overlay.f 396–397, 399, 402
OvrSetBuf Overlay.p 399–400

OvrSetRetry Overlay.p 401

OvrTrapCount Overlay.v 401–402

P

PACKED 135

PackTime DOS.p 350, 353

PaletteType Graph.t 444–445

ParamCount System.f 295–296

ParamStr System.f 295–297

PathStr DOS.t 356–357, 361

PC3270 Graph.c 407, 413, 443

PC3270Hi Graph.c 413

Pi System.f 175, 177

PieSlice Graph.p 406, 429, 440

Pointer System.t 61, 65, 189–190,

194–195

PointType Graph.t 436, 441

Port System.v 298–299

PortW System.v 299

Pos System.f 154, 157–158

Pred System.f 67–68, 77, 152

PrefixSeg System.v 187

Printer модуль 7, 130–131, 387

PROCEDURE 106, 114, 283

PROGRAM 51, 141

Ptr System.f 77, 190, 192–193, 197

PutImage Graph.p 406, 452, 454, 458, 522

PutPixel Graph.p 406, 450

R

Random System.f 176, 179–180

Randomize System.p 176, 179

RandSeed System.v 180

Read System.p 247, 267–269

Read System.p (текст) 238–242, 316, 318, 342 {565}

ReadKey CRT.f 326, 342–343, 496

ReadLn System.p 238, 241, 268–269,

315-316, 3V8, 342

ReadOnly DOS.c 357, 367

RealSystem.t 61, 63, 183

RECORD 61, 71, 135–136

Rectangle Graph.p 406, 420, 430

Red CRT.c 337

RegisterBGIdriver Graph.f 406, 461

RegisterBGIfont Graph.f 407, 461

Registers DOS.t 370, 374

Release System.p 200, 202, 203, 204

Rename System.p 225, 228–229, 267–268

REPEAT 99–100

Reset System.p 225, 227, 247, 250,

267–268

RestoreCrtMode Graph.p 405–406, 418–419

Rewrite System.p 225, 227, 247, 250, 267–268

RightText Graph.c 464

RmDir System.p 260–261, 267–268

Round System.f 77, 176, 179, 185

RunError System.p 311

S

SansSerifFont Graph.c 459

SaveIntNN System.v 379

SearchRec DOS.t 356–357, 362

Sector Graph.p 406, 429, 439–440

Seek System.p 255, 257, 259, 268

SeekEOF System.f 232, 237–238, 268

SeekEOLn System.f 232, 237, 268

Seg System.f 190–192, 307

Self System.v 273–274, 292–293

SET 61, 70, 142

SetActivePage Graph.p 406, 454, 456

SetAllPalette Graph.p 406, 444

SetAspectRatio Graph.p 406, 427

SetBkColor Graph.p 406, 442

SetCBreakDOS.p 346, 347

SetColor Graph.p 406, 442

SetDateDOS.p 350

SetFAttrDOS.p 356, 365–366

SetFillPattern Graph.p 406, 437

SetFillStyle Graph.p 406, 437–438

SetFTimeDOS.p 350, 353–354

SetGraphBufSize Graph.p 406

SetGraphMode Graph.p 405-406, 417, 423, 521

SetIntVecDOS.p 369, 371

SetLineStyle Graph.p 406, 425

SetPalette Graph.p 406, 444

SetRGBPalette Graph.p 406, 446

SetTextBuf System.p 227, 231–235

SetTextJustify Graph.p 407, 464

SetTextStyle Graph.p 407, 459, 462, 464–466

SetTimeDOS.p 350–352

SetUserCharSize Graph.p 407, 466

SetVerifyDOS.p 346, 347

SetViewPort Graph.p 406, 423, 457–458

SetVisualPage Graph.p 406, 454, 456 SetWriteMode Graph.p 406, 419-420, 452

SHL 162, 169–170

Shortint System.t 61–62, 165

SHR 162, 169

Sin System.f 175

Single System.t 182–184

SizeOf System.f 77, 190, 193, 292, 299

SlashFill Graph.c 437

SmallFont Graph.c 459

SolidFill Graph.c 437–438

SolidLn Graph.c 424

Sound CRT.p 326, 339–340, 342

SPtr System.f 189

Sqr System.f 175

Sqrt System.f 175, 313

SSeg System.f 189, 306

StackLimit System.v 188

Str System.p 154, 157–159, 185

STRING 61, 64, 148, 149

Succ System.f 67–68, 77, 103, 152

Swap System.f 77, 304

SwapVectorsDOS.p 379

SysFile DOS.c 357

System модуль 7, 130–131

Т

Test8087 System.v 181

TextSystem.t 61, 223, 231, 360

{566}

TextAttr CRT.v 320, 323–324, 337–338, 474

TextBackground CRT.p 324, 326, 329, 337

TextBuf DOS.t 359

TextColor CRT.p 324, 326, 337

TextHeight Graph.f 407, 465

TextMode CRT.p 326, 329–331

TextRec DOS.t 359–360

TextSettingsType Graph.t 466

TextWidth Graph.f 407, 465

THEN 94–95

ThickWidth Graph.c 424

TO 101

TopOff Graph.c 439

TopOn Graph.c 439

TopText Graph.c 464

TriplexFont Graph.c 459

True System.c 64–66, 68, 174

Trunc System.f 77, 175, 179, 313

Truncate System.p 255, 259

Turbo3 модуль 7–8, 130–131

TYPE 53, 60, 273

TypeOf System.f 292

U

UNIT 124–125

UnpackTime DOS.p 350, 353

UNTIL 99–100

UpCase System.f 152

UserBitLn Graph.c 424–425

UserFill Graph.c 437–438

USES 52-53, 124–130, 394–395

V

Val System.p 154, 160

VAR 53–54, 78, 84, 109

Ver55 59

VertDir Graph.c 459

VGA Graph.c 407, 413

VGAHi Graph.c 413

VGALo Graph.c 413

VGAMed Graph.c 413

ViewPortType Graph.t 456, 457

VIRTUAL 282

VolumeID DOS.c 357

W

WhereX CRT.f 326, 334

WhereY CRT.f 326, 334

WHILE 98–100, 103

White CRT.c 337

White Graph.c 441–442

WideDotFill Graph.c 437

Win модуль 8, 479

WindMax CRT.v 320, 328–329

WindMin CRT.v 320, 328–329

Window CRT.p 325, 327–329, 479–480

WITH 140–141, 273–274

Word System.t 61-63, 65, 164

Write System.p 267, 269, 314–316 Write System.p (текст) 238, 241–243, 314–316, 332

WriteLn System.p 238, 241–242, 268–269, 316, 332

X

XHatchFill Graph.c 437

XOR 77, 163, 166, 168, 172

XORPut Graph.c 419, 452

Y

Yellow CRT.c 337

Yellow Graph.c 441–442 {567}


ЛИТЕРАТУРА

1. Turbo Pascal Version 5.0 User's Guide. — Borland International, 1988.

2. Turbo Pascal Version 5.0 Reference Guide. — Borland International, 1988.

3. Turbo Pascal Version 5.5 Object-Oriented Programming Guide. — Borland International, 1989.

4. Microsoft MS-DOS 3.3 Programmer's Reference. — Microsoft Corporation, 1987.

5. *Duntemann J. Turbo Pascal Solutions. — Scott, Foresman and Company, 1988.

6. *Dutton F. Turbo Pascal Toolbox. — SYBEX, 1988.

7. Hergert D. Mastering Turbo Pascal 5. — SYBEX, 1988.

8. Rankin, John R. Computer graphics software constructions. —
Prentice Hall, 1989.

КНИГИ, ОПИСЫВАЮЩИЕ СТАНДАРТНЫЙ ПАСКАЛЬ

Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. — М.: Наука, 1988.

Грогоно П. Программирование на языке Паскаль / Пер. с англ. — М.: Мир, 1982.

Йенсен К., Вирт Н. Паскаль. Руководство для пользователя / Пер. с англ. — М.: Финансы и статистика, 1989. {568}

Оглавление

От автора......................................................... 3

Введение......................................................... 5

Часть I. РАБОТА В СРЕДЕ ПРОГРАММИРОВАНИЯ

ТУРБО ПАСКАЛЬ

1. Интегрированная среда............................................. 9

1.1. Окно просмотра результатов Output................................. 11

1.2. Окно просмотра переменных Watch................................. 12

1. 3. Структура меню................................................. 12

1.3.1. Пункт File (работа с файлами).................................... 14

1.3.2. Пункт Edit (работа с редактором)................................. 18

1.3.3. Пункт Run (запуск на выполнение)................................ 20

1.3.4. Пункт Compile (компиляция)..................................... 22

1.3.5. Пункт Options (установка параметров системы)...................... 26

1.3.6. Пункт Debug (установки отладчика)............................... 35

1.3.7. Пункт Break/Watch (точки останова/обзор).......................... 40

1.4. Интерактивная справка............................................ 42

2. Настройка системы................................................... 45

2.1. Система настройки среды программирования...................... 45

2.2. Принятые в системе расширения имен файлов......................... 47

Часть II. ЯЗЫК ТУРБО ПАСКАЛЬ

3. Построение программ............................................... 49

3.1. Алфавит языка и зарезервированные слова............................ 49

3.2.Общая структура программ......................................... 51

3.3.Комментарии и ключи компиляции.................................. 54

3.4.Условная компиляция программ..................................... 57

4. Введение в систему типов языка...................................... 60

4.1. Простые типы языка.............................................. 62

4.1.1. Целочисленные типы............................................ 62

4.1.2. Вещественные числа............................................. 63

4.1.3. Логический тип................................................. 64

4.1.4. Символьный тип................................................ 64

4.1.5. Строковый тип................................................. 64

4.1.6.Адресный тип................................................... 65

4.1.7. Перечислимые типы............................................ 65

4.1.8. Ограниченные типы (диапазоны)................................. 68

4.2 Сложные типы языка............................................... 69

5. Константы и переменные............................................. 75

5.1. Простые константы................................................. 75 {569}

5.2. Переменные...................................................... 77

5.2.1. Совмещение адресов директивой absolute.......................... 79

5.2.2. Переменные со стартовым значением или типизированные константы...82

5.3. Операция присваивания и совместимость типов и значений............... 85

5.4. Изменение (приведение) типов и значений............................. 89

6. Управляющие структуры языка........................................ 93

6.1. Простой и составной операторы...................................... 93

6.2. Условный оператор (IF...THEN...ELSE).............................. 94

6.3. Оператор варианта (CASE)......................................... 96

6.4. Оператор цикла с предусловием (WHILE)............................ 98

6.5. Оператор цикла с постусловием (REPEAT...UNTIL)................... 99

6.6. Оператор цикла с параметром (FOR...DO)............................ 100

6.7. Оператор безусловного перехода Goto............................... 103

6.8. Операторы Exit и Halt............................................... 105

6.9. Процедуры и функции............................................. 106

6.9.1. Параметры. Глобальные и локальные описания..................... 107

6.9.2. Опережающее описание процедур и функций....................... 112

6.9.3. Объявление внешних процедур................................... 113

6.9.4. Процедуры и функции как параметры............................. 113

6.9.5. Переменные-процедуры и функции............................... 116

6.9.6. Специальные приемы программирования.......................... 117

6.10. Модули. Структура модулей....................................... 124

6.11. Особенности работы с модулями................................... 127

6.12. Система библиотечных модулей языка.............................. 130

Часть III. СРЕДСТВА ЯЗЫКА ТУРБО ПАСКАЛЬ

7. Массивы, записи и множества в деталях................................ 132

7.1. Массивы (Array) и работа с ними.................................. 132

7.2. Тип «запись» (Record) и оператор присоединения With............... 136

7.3. Тип «множество» (Set). Операции с множествами..................... 142

8. Обработка символов и строк......................................... 148

8.1. Символьный и строковый типы (Char и String)....................... 148

8.2. Операции над символами......................................... 151

8.3. Операции над строками........................................... 152

8.3.1. Редактирование строк.......................................... 154

8.3.2. Преобразование строк.......................................... 158

9. Математические возможности Турбо Паскаля............................. 161

9.1. Базовые операции................................................ 161

9.2. Битовая арифметика.............................................. 164

9.3. Логические вычисления и операции отношения...................... 171

9.4. Математические процедуры и функции............................. 175

9.4.1. Обсуждение математических функций языка...................... 177

9.4.2. Генераторы случайных чисел................................... 179 {570}

9.4.3. Оптимизация сложения и вычитания.............................. 180

9.5. Использование математического сопроцессора 80X87.................. 180

10. Код программы, данные, адреса....................................... 186

10.1. Система адресации MS-DOS...................................... 186

10.2. Распределение памяти при выполнении программ.................... 187

10.3. Анализ расположения кода и областей данных программы...............189

10.4. Тип Pointer...................................................... 189

10.5. Средства для работы с адресами.................................... 190

10.5.1. Определение адреса переменных................................. 191

10.5.2. Создание адреса функцией Ptr.................................. 192

10.5.3. Определение размеров типов и переменных...................... 193

11. Ссылки, динамические переменные и структуры......................... 194

11.1. Ссылочные переменные.......................................... 194

11.2. Операция разыменования......................................... 196

11.3. Организация памяти области кучи.................................. 197

11.4. Управление размерами области кучи и стека......................... 199

11.5. Процедуры управления кучей..................................... 199

11.5.1. Размещение динамических переменных.

Процедуры New и GetMem......................................... 200

11.5.2. Освобождение динамических переменных.

Процедуры Dispose и FreeMem..................................... 201

11.5.3. Управление состоянием кучи.

Процедуры Mark и Release........................................ 202

11.5.4. Анализ состояния кучи.

Функции MaxAvail и MemAvail.................................... 204

11.5.5.Более детальный анализ состояния кучи......................... 205

11.5.6. Обработка ошибок распределения памяти........................ 209

11.6. Ссылки, работающие не с кучей................................... 211

11.7. Как организовать структуры, большие чем 64K?..................... 212

11.8. Практический пример построения стека............................. 214

12. Ввод-вывод данных и файловая система. 220

12.1. Понятие логического файла....................................... 220

12.2. Физические файлы в MS-DOS..................................... 221

12.3. Понятие буфера ввода-вывода..................................... 223

12.4. Файловые типы Турбо Паскаля.................................... 223

12.5. Общие процедуры для работы с файлами........................... 225

12.5.1. Связывание файлов........................................... 226

12.5.2. Открытие файлов............................................. 227

12.5.3. Закрытие файлов.............................................. 227

12.5.4. Переименование файлов........................................ 228

12.5.5. Удаление файлов.............................................. 229

12.5.6. Анализ состояния файлов....................................... 229

12.6. Текстовые файлы................................................ 230

12.6.1. Текст-ориентированные процедуры и функции................... 231 {571}

12.6.2. Операция ввода-вывода в текстовые файлы....................... 238

12.7. Типизированные файлы и операции ввода-вывода..................... 245

12.8. Бестиповые файлы и операции ввода-вывода......................... 249

12.9. Последовательный и прямой доступ к файлам........................ 254

12.9.1. Опрос размеров файлов и позиции в них.......................... 256

12.9.2. Позиционирование в файлах.................................... 257

12.9.3. Усечение файлов.............................................. 259

12.10. Процедуры для работы с каталогами............................... 259

12.11. Обработка ошибок ввода-вывода.................................. 261

12.11.1. Функция IOResult............................................ 262

12.11.2. Примеры обработки ошибок ввода-вывода....................... 262

12.11.3. Сводка номеров ошибок ввода-вывода.......................... 266

13. Объектно-ориентированное программирование.......................... 270

13.1. Определения объектов........................................... 270

13.2. Область действия полей объекта и параметр Self.................... 273

13.3. Наследование................................................... 275

13.4. Присваивание объектов........................................... 279

13.5. Полиморфизм.................................................. 280

13.5.1. Статические методы.......................................... 281

13.5.2. Виртуальные методы.......................................... 282

13.5.3. Выбор вида метода............................................ 286

13.6. Динамические объекты........................................... 286

13.6.1. Создание динамических объектов................................ 286

13.6.2. Освобождение объектов. Деструкторы............................ 288

13.6.3. Обработка ошибок при работе с динамическими объектами.......... 289

13.7. Функции TypeOf и SizeOf.......................................... 292

13.8. Задание стартовых значений объектам............................... 293

13.9. Модули, экспортирующие объекты................................. 293

14. Специальные средства языка.......................................... 295

14.1. Работа с командной строкой. Функции ParamCount и ParamStr.......... 295

14.2. Доступ к памяти ПЭВМ. Массивы Mem, MemW, MemL............... 297

14.3. Доступ к портам ввода-вывода. Массивы Port и PortW................ 298

14.4. Процедура заполнения FillChar................................... 299

14.5. Процедура перемещения данных Move............................. 301

14.6. Функции обработки машинных слов Lo.Hi и Swap................... 304

14.7. Вставки машинного кода в программе............................. 304

14.7.1. Оператор inline.............................................. 304

14.7.2. Процедуры с директивой inline................................. 307

14.8. Процедура завершения и обработка ошибок программ................ 307

14.8.1. Оператор RunError............................................ 311

14.8.2. Сводка номеров фатальных ошибок................................. 311 {572}

Часть IV. СПЕЦИАЛЬНЫЕ БИБЛИОТЕКИ ЯЗЫКА

15. Модуль CRT....................................................... 314

15.1. Вывод специальных символов..................................... 316

15.2. Модификация операторов Read, ReadLn............................. 318

15.3. Системные переменные модуля CRT................................ 319

15.3.1. Переменные управления выводом на дисплей..................... 320

15.3.2. Переменные управления работой клавиатуры..................... 321

15.3.3. Переменная TextAttr.......................................... 323

15.4. Процедуры и функции модуля CRT................................ 325

15.4.1. Работа с экраном в целом...................................... 327

15.4.2. Позиционирование курсора.................................... 331

15.4.3. Работа со строками........................................... 334

15.4.4. Настройка цвета.............................................. 337

15.4.5. Подача звуковых сигналов..................................... 339

15.4.6. Использование встроенного таймера............................. 342

15.4.7. Опрос клавиатуры............................................ 342

15.4.8. Переназначение стандартных файлов............................ 343

16. Модуль DOS....................................................... 345

16.1. Опрос и установка параметров MS-DOS............................ 346

16.1.1. Управление параметрами BREAK и VERIFY...................... 347

16.1.2. Опрос системных переменных MS-DOS.......................... 347

16.2. Работа с часами и календарем..................................... 349

16.2.1. Опрос и назначение даты....................................... 350

16.2.2. Опрос и назначение времени.................................... 351

16.2.3. Работа с датой создания файлов................................. 352

16.3. Анализ ресурсов дисков.......................................... 354

16.4. Работа с каталогами и файлами.................................... 356

16.4.1. Типы и константы модуля DOS для работы с файлами. 357

16.4.2. Переменная DosError.......................................... 361

16.4.3. Процедуры поиска файлов на диске.............................. 362

16.4. 4. Работа с атрибутами файлов.................................... 365

16.4.5. Анализ имен файлов........................................... 367

16.5. Работа с прерываниями MS-DOS................................... 369

16.5.1. Чтение и перестановка адресов подпрограмм

прерываний........................................................ 370

16.5.2. Процедура Keep прерывания процедурой Intr...................... 373

16.5.3. Процедура MsDos............................................. 373

16.6. Организация субпроцессов и резидентных программ................... 375

16.6.1. Программирование субпроцессов................................ 379

16.6.2 Процедура Keep и резидентные программы........................ 384

17. Модуль Printer....................................................... 387

17.1. Содержание модуля Printer......................................... 387

17.2. Низкоуровневые средства работы с принтером....................... 388

17.3. Работа с двумя принтерами одновременно........................... 390 {573}

18. Модуль Overlay...................................................... 393

18.1. Оверлейное построение программ................................... 393

18.2. Правила оформления оверлейных программ.......................... 394

18.3. Инициализация работы оверлеев.................................... 395

18.3.1. Включение администратора оверлеев............................ 395

18.3.2. Анализ результата инициализации............................... 396

18.3.3. Размещение оверлейного файла в EMS-памяти.................... 397

18.4. Управление оверлейным буфером.................................. 398

18.4.1. Опрос размера буфера........................................ 399

18.4.2. Установка размера буфера...................................... 399

18.4.3. Принудительная очистка буфера................................. 400

18.5. Оптимизация работы оверлеев..................................... 400

18.5.1. Установка размера области испытаний........................... 401

18.5.2. Подсчет вызовов оверлеев...................................... 401

18.6. Предопределенные переменные для работы с оверлеями............... 402

18.7. Включение оверлеев в ЕХЕ-файлы................................. 403

19. Модуль Graph....................................................... 405

19.1. Файлы BGI и содержимое модуля Graph............................ 405

19.2. Управление графическими режимами............................... 407

19.2.1. Инициализация и закрытие графического режима................. 407

19.2.2. Обработка ошибок инициализации.............................. 408

19.2.3. Классификация и анализ графических режимов................... 412

19.2.4. Очистка экрана и переключение режимов........................ 416

19.2.5. Управление режимом вывода отрезков на экран................... 419

19.3. Системы координат и «текущий указатель»......................... 421

19.3.1. Координаты устройства и мировые координаты................... 421

19.3.2. Управление «текущим указателем»............................. 423

19.4. Рисование графических примитивов и фигур......................... 424

19.4.1. Линии и их стили............................................. 424

19.4.2. Коэффициент сжатия изображения............................... 426

19.4.3. Окружности, эллипсы и дуги.................................... 427

19.4.4. Построение прямоугольников и ломаных......................... 430

19.5. Управление цветами и шаблонами

заливки (заполнения)............................................. 432

19.5.1. Немного о цветах.............................................. 432

19.5.2. Задание типа заливки........................................... 435

19.5.3. Заливка областей изображения.................................. 439

19.5.4. Опрос и установка цветов пера и фона............................ 441

19.5.5. Управление палитрой.......................................... 443

19.6. Битовые графические операции.................................... 448

19.6.1. Битовые операции............................................ 448

19.6.2. Работа с фрагментами изображений.............................. 451

19.7. Управление видеостраницами...................................... 454

19.8. Графические окна................................................ 456

19.9. Вывод текста.................................................... 458 {574}

19.9.1. Выбор шрифта и стиля......................................... 458

19.9.2. Предварительная загрузка и регистрация шрифтов................. 460

19.9.3. Непосредственный вывод строк................................. 463

19.9.4. Размер букв и его масштабирование.............................. 464

19.9.5. Опрос стиля и ориентации шрифтов.............................. 466

19.10. Включение шрифтов и драйверов в ЕХЕ-файл....................... 466

19.11. Подключение новых драйверов.................................... 469

19.12. Один полезный совет............................................ 469

Часть V. ПРАКТИЧЕСКИЕ ПРИЕМЫРАБОТЫС ПЭВМ

20. Профессиональная работа с текстовыми изображениями................... 471

20.1. Программный опрос режимов текстового дисплея..................... 471

20.2. Организация доступа к видеопамяти................................ 474

20.3. Запоминание окон экрана и их восстановление....................... 478

20.3.1. Общие принципы работы с окном............................... 478

20.3.2. Модуль Win.................................................. 479

20.4. Работа с образом экрана на диске................................... 484

20.5. Крупные надписи на экране....................................... 486

20 6. Управление формой курсора....................................... 489

21. Как осуществить полный доступ к клавиатуре............................ 493

21.1. Как организовать опрос алфавитно-цифровой

клавиатуры.......................................................... 493

21.2. Опрос клавиши в регистре Ctrl..................................... 496

21.3. Опрос расширенных кодов и функциональных клавиш................ 499

21.4. Опрос служебных клавиш........................................ 501

21.5. Анализ клавиш регистров и их состояния............................ 502

21.6. Скэн-коды клавиатуры и работа с ними............................. 505

21.7. Эффект обратной записи в буфер ввода.............................. 510

22. Работа с оперативной памятью видеоадаптеров........................... 514

22.1. Многобитовое и многоплоскостное ОЗУВ............................ 514

22.2. Карта дисплейной памяти.......................................... 515

22.3. Вывод текста на графический экран................................. 518

22.4. Работа с графическими образами на диске 520

Приложение 1. Сообщения и коды ошибок, генерируемые

компилятором.......................................................... 527

Приложение 2. Ключи и директивы компилятора............................ 540

Приложение 3. Использование компилятора TPC............................. 547

Приложение 4. Список утилит пакета Турбо Паскаль......................... 549

Приложение 5. Команды встроенного редактора............................. 553

Приложение 6. Автоматическая оптимизация программ....................... 555

Приложение 7. Список демонстрационных процедур и функций................ 556

Индекс................................................................. 561

Литература............................................................. 568 {575}

Справочное издание

Поляков Дмитрий Борисович

Круглов Игорь Юрьевич

Программирование в среде Турбо Паскаль (версия 5.5)

Редактор Г.Н. Борисова

Художественный редактор И.Ю. Круглов

Технический редактор Л.А. Леманская

Художник обложки И.Ю. Круглов

ИБ № 56

Подписано в печать 15.01.92. Бум. тип. № 2. Формат 84 х 1081/32 Гарнитура литературная. Усл. печ. л. 45,51. Уч.-изд. л. 45,54 Печать высокая. Тираж 50000 экз. Заказ № 3886.

Издателъство МАИ, 125871, Москва, Волоколамское шоссе, 4

Отпечатано с готового оригинал-макета в ордена Октябрьской

Революции и ордена Трудового Красного Знамени МПО «Первая

Образцовая типография» Министерства печати и информации

Российской Федерации. 113054, Москва, Валовая, 28.

{576}


* Так напечатано. Видимо при печати пропущена часть текста.— Ю. Ш.

* Так напечатано. Вообще-то с точностью до 8-го знака после запятой число p=3,14159265.— Ю.Ш.

* В книгах рассматривается Турбо Паскаль версий 3.0 и 4.0



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-11-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: