בית
Top.Mail.Ru Yandeks.Metrika
פורום: "ראשי";
ארכיון נוכחי: 2002.01.08;
הורדה: [xml.tar.bz2];

למטה

שאלה ל pascalshchik ??? מצא סניפים דומים


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

המהדר נותן את השגיאה Variable Indefinier Expected, ומצביע על מקום בתוכנית בו מוכפלים שני קבועים ??? מה העניין ???



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

משתנה צפוי ללא הגדרה אמצעי: מזהה צפוי של משתנה.

להסיק מסקנות.

תן את הקוד.



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

System.Move (grecFixedDiskBoot, gsTempInput [1], aMaxTpStrLen);
gsTempInput [0]: = System.Char (aMaxTpStrLen);
IF (System.Pos (asCopyrightNotice, gsTempInput) <> 0)
ואז התחל
System.WriteLn (asProgramPrompt + asProgram +
"מטעין נמצא בדיסק קבוע 0.");
System.Write (asProgramPrompt +
"העתק מחרוזות תיאור מהעתק מותקן (Y / N):");
System.ReadLn (gsTempInput);

IF (System.UpCase (_fnchGetFirstChar (gsTempInput)) <> achNo)
ואז התחל
System.WriteLn (asProgramPrompt + "העתק מיתרי תיאור.");
System.Move (System.Mem [System.Seg (grecFixedDiskBoot.dbReservedCode):
(System.Ofs (grecFixedDiskBoot.dbReservedCode) + aOS_Desc_Start)],
("זה מעביר קבועים כאן) aOS_Desc_Str_Len_Ext * aMaxAvailLogicalPartition);
סוֹף;
{אם-אז}
הסוף
אחר
System.WriteLn (asProgramPrompt + asProgram + "מטעין לא קיים.");
{אם-אז}



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

הכרז על משתנה. תן לזה משמעות. לעבור בהליך.
ככל הנראה, ההליך מצפה לפרמטר לפי הפניה ואתה עובר לפי ערך.



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

אתה צריך שם מעי גס?



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

מה לעזאזל המעי הגס? אנו לוקחים ספר לימוד לשיעורי חטיבה ומתחילים להבין את ההבדל בין ערכי הפרמטרים למשתני הפרמטרים. עדיין כדאי לבדוק את העזרה ולברר מהם הפרמטרים של ההליך Move וכמה מהם.



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

נראה לי שהבעיה כאן
"(" האם השיחה הזו קבועה כאן) "האם משתנה זה? ואיפה הפסיק אז?
ומאחר והתחביר נכון אחרת.
ציין את קוד השיחה ואת ההצהרה המשתנה המדויקת המשמשים בהליך העברה.



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

חבר'ה, כבר עיינתי, כרגע אתן את כל הקוד!



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

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

קונסט

{הגדרות תוכנית}
asPurpose = "OS-MultBoot";
asVersion = "1.30";
asAuthor = "דימה סטפנקוב";
asCopyright = "זכויות יוצרים (ג) 1987, 1993";
asProgram = "Boot OS";
asProgramPrompt = asProgram + ":";

{קודי יציאה}
errTerminateOK = 0;
errBootStrapDebug = 1;
errBadReadFixedDisk = 2;
errBadWriteFixedDisk = 3;
errUserInstallAbort = 4;
errUserWriteAbort = 5;
errMismatchLoaderCode = 6;

{שונות}
aMaxTpStrLen = 255;
asBlank = "";
achHexPrefix = "$";
asFreeSlot = "<*** משבצת חינם ***>";
asNonFreeSlot = "<*** חריץ דיסק ***>";
aSectorSize = 512;
aSecSizeInWords = aSectorSize DIV 2;
aQuit = "Q";
achYes = "Y";
achNo = "N";
aDefExt = "BIN";
aDosExtMark = ".";

{קודי ASCII}
achNULL = 00;
achLF = 10;
achCR = 13;
achOne = "1";
achFour = "4";

{***** תשומת לב !!! ערכים עם קידוד קשה למטה. *****}
{***** אנא שנה בזהירות! *****}
{$ IFDEF DebugVersion}
adwBootSeg = $ 8000; {קטע ב- 512K}
{$ ELSE}
adwBootSeg = $ 0000; {קטע ב- 0K}
{$ ENDIF}
adwBootOfs = $ 7C00;
adwRelBootOfs = adwBootOfs + aSectorSize;
adwPartitionTable = $ 1BE;
aPartitonEntrySize = $ 10;
aMaxAvailLogicalPartition = 4;
adwBootMarkOfs = adwPartitionTable +
(aPartitonEntrySize *
aMaxAvailLogicalPartition);
adwBootSecID = $ AA55;

aOS_Desc_Str_Len = $ 16; {נמצאו ערכים אלה}
aOS_Desc_Ofs = $ 04; {לאחר הרכבה של}
aOS_Desc_Start = $ 40-1; {נוהל IPL. }
aOS_Desc_Str_Len_Ext = aOS_Desc_Str_Len + 2;

aDebugOff = 0;
aDebugOn = 1;

aFarJumpOpCode = $ EA; {iAPX86 opcode}

aRomKbdDriver = $ 16; {IBM PC BIOS פונקציות}
aRomDiskDriver = $ 13;
aRomVideoDriver = $ 10;

{השתמש לבדיקת הגירסה המותקנת}
asCopyrightNotice = "OS-MultBoot (C) 1992 D.Stefankov";


{* ====================== חלק תנאים מקובלים ======================== === *}

סוג

{* מיתרים *}
STR2 = STRING [2];
STR4 = STRING [4];
STR8 = STRING [8];

{* מידע על דיסק לוגי *}
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}
סוֹף;
{* recLogicalPartition *}

{* מגף האתחול הראשי *}
recMasterBoot = RECORD
dbReservedCode: ARRAY [0..adwPartitionTable-1] OF
System.Byte; {000}
recDiskPartitionsTable: ARRAY [0..aMaxAvailLogicalPartition-1] OF
recLogicalPartition; {1BE}
dwValidBootRecID: System.Word; {1FE}
סוֹף;
{* recMasterBoot *}


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

VAR

grecFixedDiskBoot: recMasterBoot;
gfOutStream: קובץ 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]

עדיף להתחיל עם זה, אבל אינך צריך את כל הקוד, רק לצורך מעבר והצהרות המשתנה הנדרשות.



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]

העבר ממודול SYSUTILS



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

אז איזה משני המהלכים המהדר נשבע לך?
ובכן, אל תמשוך מכם את אותו מידע טיפה אחר טיפה, בקרוב ישתעמם.



Иван Шихалев   (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);


להלן שני פרמטרים

> מעבר ממודול SYSUTILS

מה זה אומר?



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

העבר ממודול 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)

זה יהיה קל יותר אם לא "תערבי את המים" :-)

להלן הצהרת הנוהל:
נוהל מעבר (const source; var Dest; Count: Integer);

אבל איך משתמשים בזה:
System.Move (System.Mem [System.Seg (grecFixedDiskBoot.dbReservedCode): (System.Ofs (grecFixedDiskBoot.dbReservedCode) +

מצא את ההבדלים ...

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

"תן לי בבקשה מים לשתות, אחרת אתה רוצה לאכול שאפילו אין מקום לישון."

מזל טוב.



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

אוקיי, סליחה, תודה לכולם!



עמודים: 1 ענף שלם

פורום: "ראשי";
ארכיון נוכחי: 2002.01.08;
הורדה: [xml.tar.bz2];

למעלה





זיכרון: 0.62 MB
זמן: 0.035 c
14-22379
פליקס
2001-11-05 19:54
2002.01.08
תראה לי - או אולי לא? -אתה אומר!


14-22410
בסדר
2001-11-08 15:10
2002.01.08
נסה את זה עכשיו


3-21979
מקסמן
2001-12-06 13:21
2002.01.08
DBTreeView


3-21949
נָזִיר
2001-12-05 13:22
2002.01.08
ערך הרשומה הנוכחית


1-22051
קיי
2001-12-18 22:22
2002.01.08
Richedit





אפריקאנס אלבני ערבי אַרְמֶנִי אזרביג'אן הבסקים בלארוסית בולגרי קטלאנית הסיני (פשוט) סינית (מסורתית) קרואטית צ'כיה דני הולנדי אנגלית אסטוני פיליפיני פיני צרפתית
גליציה גאורגיה גרמני יווני קריאולית האיטית עברי הינדי הונגרי איסלנדי אינדונזי אירי איטלקי יפני קוריאני לטבי ליטאי מקדוניה מלאית מלטזית נורבגי
פרסי פולני פורטוגזי רומנית רוסי סרבית סלובקי סלובני ספרדי סוואהילית שבדי תאילנדי תורכי אוקראיני אורדו ויאטנמית וולשית יידיש בנגלית בוסנית
קבואנו אספרנטו גוג'ראטית האוסה המונג איגבו יָאוָנִי קנאדה לחמר לאו הלטינית מאורים מרתי מונגולי נפאלית פונג'בית סומליה טמילית טלוגו יורובה
זולו
Английский Французский Немецкий Итальянский Португальский Русский Испанский