casa

Forum: "Principale";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];
giù

Domanda a pascalshchik ??? Trova rami simili


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

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



Vladislav (2001-12-18 17:20) [1]

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

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

Приведи код.



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

System.Move(grecFixedDiskBoot,gsTempInput[XNUMX],aMaxTpStrLen);
gsTempInput[XNUMX] := System.Char(aMaxTpStrLen);
IF (System.Pos(asCopyrightNotice,gsTempInput) <> XNUMX)
THEN BEGIN
System.WriteLn(asProgramPrompt+asProgram+
" loader found on fixed disk XNUMX.");
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);
FINE;
{if-then}
END
ELSE
System.WriteLn(asProgramPrompt+asProgram+" loader not present.");
{if-then}



Vladislav (2001-12-18 17:26) [3]

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



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

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




Ivan Shikhalev (2001-12-18 18:52) [5]

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



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

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



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

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



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

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

CONST

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

{ exit codes }
errTerminateOK = XNUMX;
errBootStrapDebug = XNUMX;
errBadReadFixedDisk = XNUMX;
errBadWriteFixedDisk = XNUMX;
errUserInstallAbort = XNUMX;
errUserWriteAbort = XNUMX;
errMismatchLoaderCode = XNUMX;

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

{ ASCII codes }
achNULL = XNUMX;
achLF = XNUMX;
achCR = XNUMX;
achOne = "XNUMX";
achFour = "XNUMX";

{***** ATTENTION!!! Hard-coded values below. *****}
{***** Please modify carefully! *****}
{$IFDEF DebugVersion}
adwBootSeg = $XNUMX; { segment at XNUMXK }
{$ELSE}
adwBootSeg = $XNUMX; { segment at XNUMXK }
{$ENDIF}
adwBootOfs = $XNUMXCXNUMX;
adwRelBootOfs = adwBootOfs + aSectorSize;
adwPartitionTable = $XNUMXBE;
aPartitonEntrySize = $XNUMX;
aMaxAvailLogicalPartition = XNUMX;
adwBootMarkOfs = adwPartitionTable +
(aPartitonEntrySize*
aMaxAvailLogicalPartition);
adwBootSecID = $AAXNUMX;

aOS_Desc_Str_Len = $XNUMX; { these values found }
aOS_Desc_Ofs = $XNUMX; { after assembly of }
aOS_Desc_Start = $XNUMX-XNUMX; { IPL procedure. }
aOS_Desc_Str_Len_Ext = aOS_Desc_Str_Len + XNUMX;

aDebugOff = XNUMX;
aDebugOn = XNUMX;

aFarJumpOpCode = $EA; { iAPXXNUMX opcode }

aRomKbdDriver = $XNUMX; { IBM PC BIOS functions }
aRomDiskDriver = $XNUMX;
aRomVideoDriver = $XNUMX;

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


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

TIPO

{* strings *}
STRXNUMX = STRING[XNUMX];
STRXNUMX = STRING[XNUMX];
STRXNUMX = STRING[XNUMX];

{* Information about logical disk *}
recLogicalPartition = RECORD
dbBootDriveMark : System.Byte; {XNUMX}
dbStartingHead : System.Byte; {XNUMX}
dwStartingCylSec : System.Word; {XNUMX}
dbOperatingSystemID : System.Byte; {XNUMX}
dbEndingHead : System.Byte; {XNUMX}
dwEndingCylSec : System.Word; {XNUMX}
ddPrecedingSecs : System.Longint; {XNUMX}
ddSecsPerPartition : System.Longint; {XNUMXC}
FINE;
{* recLogicalPartition *}

{* Master Boot Sector *}
recMasterBoot = RECORD
dbReservedCode : ARRAY[XNUMX..adwPartitionTable-XNUMX] OF
System.Byte; {XNUMX}
recDiskPartitionsTable : ARRAY[XNUMX..aMaxAvailLogicalPartition-XNUMX] OF
recLogicalPartition; {XNUMXBE}
dwValidBootRecID : System.Word; {XNUMXFE}
FINE;
{* 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 и необходимые объявления переменных.




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

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



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

Move с модуля SYSUTILS



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

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



Ivan Shikhalev (2001-12-18 21:06) [13]

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

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

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

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


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

> Move с модуля SYSUTILS

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



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

Move с модуля SYSUTILS




Arte (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); - на этот кусок ругается!



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

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



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

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



Vladislav (2001-12-19 07:44) [18]

> Art © (XNUMX XNUMX:XNUMX)

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

Вот декларация процедуры:
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);

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

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

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

Buona fortuna.



Arte (2001-12-19 13:47) [19]

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




Pagine: 1 tutto il ramo

Forum: "Principale";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];

al piano di sopra

Top.Mail.Ru Yandeks.Metrika













Memoria: 0.82 MB
Ora: 0.044 c
14-22379
Felix
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
Покажи? - А может не надо? -Покажи тебе говорят!


3-21969
Kozhanov
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
Opzioni del driver OBDC


14-22402
Darker
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
Ищу человека с ником


6-22282
Mamed
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
ПОМОЩ ПОМОЩ!!! до XNUMX/XNUMX Как написат программу для работы в Pocket CE?


1-22010
dorixe
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
treeview on dblclick





afrikaans albanese Arabic armeno Azero basco bielorusso Bulgarian catalano Cinese (semplificato) Cinese (tradizionale) croato Ceco danese Dutch Inglese estone filippina Finnish Francese
galiziano georgiano Tedesco greco Creolo haitiano ebraico hindi ungherese islandese Indonesian irlandese Italiano Giapponese Korean lettone lituano macedone Malay maltese Norwegian
persiano polacco Portoghese rumeno Russian serbo Slovak sloveno Spagnolo swahili Swedish Thai turco ucraino Urdu vietnamita gallese yiddish bengalese bosniaco
Cebuano esperanto Gujarati Hausa Hmong Igbo giavanese kannada khmer lao latino maori marathi mongolo nepali punjabi somalo tamil telugu Yoruba
zulù
Английский Francese tedesco italiano portoghese russo spagnolo