Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Основна";
Поточний архів: 2002.01.08;
Завантажити: [xml.tar.bz2];

Вниз

Питання до паскальщікам ??? Знайти схожі гілки


Art   (2001-12-18 17:19) [0]

Компилятор выдает ошибку Variable Indefinier Expected, и указывает на место в программе,где перемножаются две константы???В чем дело???



Владислав   (2001-12-18 17:20) [1]

Variable Indefinier Expected означает: Ожидался идентификатор переменной.

Делай выводы.

Приведи код.



Art   (2001-12-18 17:23) [2]

System.Move(grecFixedDiskBoot,gsTempInput[1],aMaxTpStrLen);
gsTempInput[0] := System.Char(aMaxTpStrLen);
IF (System.Pos(asCopyrightNotice,gsTempInput) <> 0)
THEN BEGIN
System.WriteLn(asProgramPrompt+asProgram+
" loader found on fixed disk 0.");
System.Write(asProgramPrompt+
"Copy description strings from installed copy (Y/N): ");
System.ReadLn(gsTempInput);

IF (System.UpCase(_fnchGetFirstChar(gsTempInput)) <> achNo)
THEN BEGIN
System.WriteLn(asProgramPrompt+"Copy description strings.");
System.Move(System.Mem[System.Seg(grecFixedDiskBoot.dbReservedCode):
(System.Ofs(grecFixedDiskBoot.dbReservedCode)+aOS_Desc_Start)],
(“казывает сюда это константы) aOS_Desc_Str_Len_Ext*aMaxAvailLogicalPartition);
END;
{if-then}
END
ELSE
System.WriteLn(asProgramPrompt+asProgram+" loader not present.");
{if-then}



Владислав   (2001-12-18 17:26) [3]

Объяви переменную. Присвой ей значение. Передай в процедуру.
Скорее всего процедура ожидает параметр по ссылке, а ты передаешь по значению.



MBo   (2001-12-18 18:40) [4]

двоеточие там нужно?



Иван Шихалев   (2001-12-18 18:52) [5]

Какое, к черту, двоеточие? Берем учебник для младших классов и начинаем выяснять, чем отличаются параметры-значения и параметры-переменные. Еще полезно заглянуть в справку и узнать, какие параметры у процедуры Рухатися и сколько их.



Anatoly Podgoretsky   (2001-12-18 20:06) [6]

Мне кажется что проблема вот здесь
"(“казывает сюда это константы)" - это переменная? и где тогда запятая?
А так синтаксис в остальном правильный.
Приведи точный код вызова и объявление переменных используемый в процедуре Move.



Art   (2001-12-18 20:22) [7]

Ребят я уже замучался,щас приведу весь код!



Art   (2001-12-18 20:29) [8]

{*========================== CONSTANTS PART ============================*}

CONST

{ program definitions }
asPurpose = "OS-MultBoot";
asVersion = "1.30";
asAuthor = "Dima Stefankov";
asCopyright = "Copyright (c) 1987, 1993";
asProgram = "OS-Boot";
asProgramPrompt = asProgram+": ";

{ exit codes }
errTerminateOK = 0;
errBootStrapDebug = 1;
errBadReadFixedDisk = 2;
errBadWriteFixedDisk = 3;
errUserInstallAbort = 4;
errUserWriteAbort = 5;
errMismatchLoaderCode = 6;

{ miscellaneous }
aMaxTpStrLen = 255;
asBlank = "";
achHexPrefix = "$";
asFreeSlot = " <*** free slot ***>";
asNonFreeSlot = " <*** disk slot ***>";
aSectorSize = 512;
aSecSizeInWords = aSectorSize DIV 2;
aQuit = "Q";
achYes = "Y";
achNo = "N";
aDefExt = "BIN";
aDosExtMark = ".";

{ ASCII codes }
achNULL = 00;
achLF = 10;
achCR = 13;
achOne = "1";
achFour = "4";

{***** ATTENTION!!! Hard-coded values below. *****}
{***** Please modify carefully! *****}
{$IFDEF DebugVersion}
adwBootSeg = $8000; { segment at 512K }
{$ ELSE}
adwBootSeg = $0000; { segment at 0K }
{$ ENDIF}
adwBootOfs = $7C00;
adwRelBootOfs = adwBootOfs + aSectorSize;
adwPartitionTable = $1BE;
aPartitonEntrySize = $10;
aMaxAvailLogicalPartition = 4;
adwBootMarkOfs = adwPartitionTable +
(aPartitonEntrySize*
aMaxAvailLogicalPartition);
adwBootSecID = $AA55;

aOS_Desc_Str_Len = $16; { these values found }
aOS_Desc_Ofs = $04; { after assembly of }
aOS_Desc_Start = $40-1; { IPL procedure. }
aOS_Desc_Str_Len_Ext = aOS_Desc_Str_Len + 2;

aDebugOff = 0;
aDebugOn = 1;

aFarJumpOpCode = $EA; { iAPX86 opcode }

aRomKbdDriver = $16; { IBM PC BIOS functions }
aRomDiskDriver = $13;
aRomVideoDriver = $10;

{ use for to check of installed version }
asCopyrightNotice = "OS-MultBoot (C) 1992 D.Stefankov";


{*====================== TYPED CONSTANTS PART ==========================*}

TYPE

{* strings *}
STR2 = STRING[2];
STR4 = STRING[4];
STR8 = STRING[8];

{* Information about logical disk *}
recLogicalPartition = RECORD
dbBootDriveMark : System.Byte; {00}
dbStartingHead : System.Byte; {01}
dwStartingCylSec : System.Word; {02}
dbOperatingSystemID : System.Byte; {04}
dbEndingHead : System.Byte; {05}
dwEndingCylSec : System.Word; {06}
ddPrecedingSecs : System.Longint; {08}
ddSecsPerPartition : System.Longint; {0C}
END;
{* recLogicalPartition *}

{* Master Boot Sector *}
recMasterBoot = RECORD
dbReservedCode : ARRAY[0..adwPartitionTable-1] OF
System.Byte; {000}
recDiskPartitionsTable : ARRAY[0..aMaxAvailLogicalPartition-1] OF
recLogicalPartition; {1BE}
dwValidBootRecID : System.Word; {1FE}
END;
{* recMasterBoot *}


{*=========================== VARIABLES PART ===========================*}

VAR

grecFixedDiskBoot : recMasterBoot;
gfOutStream : FILE OF recMasterBoot;
gsTempInput : STRING;
gdwOurBootRecLen : System.Word;
gdwMemOfs : System.Word;
gbStatusOk : System.Boolean;
gdbIndex : System.Byte;
gchIn : System.Char;





Anatoly Podgoretsky   (2001-12-18 20:30) [9]

С этого лучше начинать, но не надо весь код, только для move и необходимые объявления переменных.



Art   (2001-12-18 20:33) [10]

System.Move(grecFixedDiskBoot,gsTempInput[1],aMaxTpStrLen);
gsTempInput[0] := System.Char(aMaxTpStrLen); - эту строчку он пропускает значит параметры все!



Art   (2001-12-18 20:39) [11]

Move с модуля SYSUTILS



Anatoly Podgoretsky   (2001-12-18 20:54) [12]

Так на какой из двух Move у тебя ругается компилятор?
Ну не вытягивать же из тебя информацию по каплям, скоро надоест.



Иван Шихалев   (2001-12-18 21:06) [13]

> эту строчку он пропускает значит параметры все!

System.Move(grecFixedDiskBoot,gsTempInput[1],aMaxTpStrLen);

Здесь три параметра

System.Move(System.Mem[System.Seg(grecFixedDiskBoot.dbReservedCode): (System.Ofs(grecFixedDiskBoot.dbReservedCode)+aOS_Desc_Start)],
aOS_Desc_Str_Len_Ext*aMaxAvailLogicalPartition);


Здесь два параметра

> Move с модуля SYSUTILS

А это еще что значит?



Art   (2001-12-18 21:07) [14]

Move с модуля SYSUTILS



Art   (2001-12-18 21:10) [15]

Ладно забейте на модуль!
System.Move(System.Mem[System.Seg(grecFixedDiskBoot.dbReservedCode): (System.Ofs(grecFixedDiskBoot.dbReservedCode)+aOS_Desc_Start)],

aOS_Desc_Str_Len_Ext*aMaxAvailLogicalPartition); - на этот кусок ругается!



Art   (2001-12-18 21:12) [16]

Народ!Всем проще будет,если кто-нить знает ,где достать исходник загрузчика!!



Anatoly Podgoretsky   (2001-12-19 00:05) [17]

Надо что бы было не два, а три параметра!!!



Владислав   (2001-12-19 07:44) [18]

> Art © (18.12.01 21:12)

Будет проще, если ты не будешь "воду мутить" :-)

Вот декларация процедуры:
procedure Move(const Source; var Dest; Count: Integer);

А вот как ты ее используешь:
System.Move(System.Mem[System.Seg(grecFixedDiskBoot.dbReservedCode): (System.Ofs(grecFixedDiskBoot.dbReservedCode)+aOS_Desc_Start)], aOS_Desc_Str_Len_Ext*aMaxAvailLogicalPartition);

Найди отличия...

Всем проще будет, если кто-нить знает, где достать исходник загрузчика!

"Дайте, пожалуйста, водички попить, а то так кушать хочется, что даже переночевать негде."

Удачи.



Арт   (2001-12-19 13:47) [19]

Ладно извините ,спасибо всем!



сторінки: 1 вся гілка

Форум: "Основна";
Поточний архів: 2002.01.08;
Завантажити: [xml.tar.bz2];

наверх









Пам'ять: 0.88 MB
Час: 0.032 c
6-22308
Ігор
2001-10-14 09:44
2002.01.08
Обмін даними між клієнтом і сервером в Delphi


14-22323
Меламед
2001-11-04 19:57
2002.01.08
Як виправити дані анкетні, наведені при реєстрації?


4-22499
YUS
2001-10-31 20:51
2002.01.08
FindWindow


4-22507
Slaviq
2001-11-06 17:55
2002.01.08
Системні іконки


1-22116
Облігація
2001-12-19 19:08
2002.01.08
У кого-нить є процидурку хешу-MD5?





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в&#39;єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська