maison

Forum: "Main";
Archive actuelle: 2002.01.08;
Télécharger: [xml.tar.bz2];
vers le bas

Вопрос к паскальщикам??? Trouver des branches similaires


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

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



Vladislav (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);
FIN;
{if-then}
FIN
AUTRE
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

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



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}
FIN;
{* 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}
FIN;
{* 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 у тебя ругается компилятор?
Ну не вытягивать же из тебя информацию по каплям, скоро надоест.



Ivan Shikhalev (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

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



Vladislav (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);

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

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

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

Bonne chance.



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

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




Pages: 1 branche entière

Forum: "Main";
Archive actuelle: 2002.01.08;
Télécharger: [xml.tar.bz2];

à l'étage

Top.Mail.Ru Yandeks.Metrika













Mémoire: 0.85 MB
Heure: 0.046 c
3-21934
Alexsyy
2001-12-04 08:52
2002.01.08
Aidez-moi s'il vous plaît


1-22060
Atrem
2001-12-18 19:18
2002.01.08
Insérer la méthode Richedit


7-22418
Mikle
2001-09-20 09:06
2002.01.08
Срочно! Комп вместо принтера.


1-22011
Ksergey
2001-12-16 14:26
2002.01.08
Comment attraper la touche TAB?


3-21988
Andrew
2001-11-29 22:16
2002.01.08
SQL





afrikaans albanais Arabic arménien azerbaïdjanais basque Biélorusse Bulgare catalan Chinois simplifié) Chinois (traditionnel) croate Tchèque Danois Néerlandais English estonien Filipino Finlandais Français
galicien géorgien Allemand Grecque Créole haïtien hébreu Hindi Hongrois Islandais Indonesian irlandais Italien Japonais Coréen letton lituanien macédonien Malay maltais Norvégien
persan Polonais Portugais roumain Russe serbe Slovaque Slovène Espagnol Swahili Suédois Thai turc ukrainien Urdu vietnamien gallois yiddish bengali bosniaque
Cebuano espéranto gujarati Hause hmong Igbo Javanais Kannada Khmer lao latin maori Marathi mongol népalais punjabi somali tamil telugu yoruba
zoulou
Английский Français Allemand Italien Португальский Русский Espagnol