casa
Top.Mail.Ru Yandeks.Metrika
Forum: "Principale";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];

giù

Domanda a pascalshchik ??? Trova rami simili


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

Il compilatore restituisce l'errore Indefinier variabile previsto e punta a un punto nel programma in cui vengono moltiplicate due costanti ??? Che problema c'è ???



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

Variabile Indefinier Expected significa: identificatore di variabile previsto.

Traccia conclusioni.

Dare il codice.



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

System.Move (grecFixedDiskBoot, gsTempInput [1], aMaxTpStrLen);
gsTempInput [0]: = System.Char (aMaxTpStrLen);
IF (System.Pos (asCopyrightNotice, gsTempInput) <> 0)
POI INIZIARE
System.WriteLn (asProgramPrompt + asProgram +
"loader trovato su disco fisso 0.");
System.Write (asProgramPrompt +
"Copia le stringhe di descrizione dalla copia installata (S / N):");
System.ReadLn (gsTempInput);

IF (System.UpCase (_fnchGetFirstChar (gsTempInput)) <> achNo)
POI INIZIARE
System.WriteLn (asProgramPrompt + "Copia descrizione stringhe.");
System.Move (System.Mem [System.Seg (grecFixedDiskBoot.dbReservedCode):
(System.Ofs (grecFixedDiskBoot.dbReservedCode) + aOS_Desc_Start)],
("Qui si introducono le costanti) aOS_Desc_Str_Len_Ext * aMaxAvailLogicalPartition);
FINE;
{Se-allora}
END
ELSE
System.WriteLn (asProgramPrompt + asProgram + "loader non presente.");
{Se-allora}



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

Dichiarare una variabile. Dagli un significato. Passa nella procedura.
Molto probabilmente, la procedura prevede un parametro per riferimento e si passa per valore.



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

Hai bisogno di un colon lì?



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

Che diavolo è il colon? Prendiamo un libro di testo per le classi junior e iniziamo a capire la differenza tra i valori dei parametri e le variabili dei parametri. È ancora utile esaminare l'aiuto e scoprire quali sono i parametri della procedura Spostare e quanti di loro.



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

Mi sembra che il problema sia qui
"(" Questa costante di chiamata qui) "è questa variabile? e dov'è la virgola allora?
E poiché la sintassi è altrimenti corretta.
Fornire il codice esatto della chiamata e la dichiarazione delle variabili utilizzate nella procedura di spostamento.



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

Ragazzi, ho già torturato, in questo momento darò tutto il codice!



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

{* ========================== PARTI DELLA COSTANZA ==================== ======== *}

CONST

{definizioni del programma}
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;

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

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

{***** ATTENZIONE !!! Valori hard-coded sotto. *****}
{***** Si prega di modificare attentamente! *****}
{$ IFDEF DebugVersion}
adwBootSeg = $ 8000; {segmento su 512K}
{$ ELSE}
adwBootSeg = $ 0000; {segmento su 0K}
{$ ENDIF}
adwBootOfs = $ 7C00;
adwRelBootOfs = adwBootOfs + aSectorSize;
adwPartitionTable = $ 1BE;
aPartitonEntrySize = $ 10;
aMaxAvailLogicalPartition = 4;
adwBootMarkOfs = adwPartitionTable +
(aPartitonEntrySize *
aMaxAvailLogicalPartition);
adwBootSecID = $ AA55;

aOS_Desc_Str_Len = $ 16; {questi valori trovati}
aOS_Desc_Ofs = $ 04; {dopo l'assemblaggio di}
aOS_Desc_Start = $ 40-1; {Procedura IPL. }
aOS_Desc_Str_Len_Ext = aOS_Desc_Str_Len + 2;

aDebugOff = 0;
aDebugOn = 1;

aFarJumpOpCode = $ EA; {IAPX86 opcode}

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

{usa per controllare la versione installata}
asCopyrightNotice = "OS-MultBoot (C) 1992 D.Stefankov";


{* ====================== PARTI CONSTANTI TIPO ======================= === *}

TIPO

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

{* Informazioni sul disco logico *}
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
FINE;
{* 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
FINE;
{* recMasterBoot *}


{* =========================== PARTE VARIABILI =================== ======== *}

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]

È meglio iniziare con questo, ma non è necessario tutto il codice, solo per lo spostamento e le dichiarazioni delle variabili necessarie.



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

System.Move (grecFixedDiskBoot, gsTempInput [1], aMaxTpStrLen);
gsTempInput [0]: = System.Char (aMaxTpStrLen); - questa linea, salta tutti i parametri significa!



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

Sposta dal modulo SYSUTILS



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

Quindi quale dei due Move fa giurare il compilatore?
Bene, non tiri le stesse informazioni da te goccia a goccia, presto ti annoierai.



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

> salta questa linea significa tutte le opzioni!

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

Ecco tre parametri

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

Ecco due parametri

> Sposta dal modulo SYSUTILS

Cosa significa?



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

Sposta dal modulo SYSUTILS



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

Okay hammer sul modulo!
System.Move (System.Mem [System.Seg (grecFixedDiskBoot.dbReservedCode): (System.Ofs (grecFixedDiskBoot.dbReservedCode) + aOS_Desc_Start)],

aOS_Desc_Str_Len_Ext * aMaxAvailLogicalPartition); - giura su questo pezzo!



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

Gente! Sarà più facile per tutti, se qualcuno conosce la discussione, dove trovare la fonte del caricatore !!



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

Sarebbe necessario che non ci fossero due, ma tre parametri !!!



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

> Arte © (18.12.01 21: 12)

Sarà più facile se non "agiti l'acqua" :-)

Ecco la dichiarazione della procedura:
procedura Move (const Source; var Dest; Count: Integer);

Ma come lo usi:
System.Move (System.Mem [System.Seg (grecFixedDiskBoot.dbReservedCode): (System.Ofs (grecFixedDiskBoot.dbReservedCode) +

Trova le differenze ...

Sarà più facile per tutti se qualcuno sa dove trovare il sorgente del bootloader!

"Per favore dammi un po 'd'acqua da bere, altrimenti vuoi mangiarlo anche se non c'è posto per dormire."

Buona fortuna.



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

Ok, scusa, grazie a tutti!



Pagine: 1 tutto il ramo

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

al piano di sopra









Memoria: 0.89 MB
Ora: 0.034 c
1-22255
Dmitry Kataev
2001-12-14 14:51
2002.01.08
Come implementare una nuova voce di menu in IE, che viene chiamata dal pulsante destro (ad esempio in Reget, ad esempio)


14-22358
spesso
2001-11-07 19:08
2002.01.08
Dov'è hosting frisny SMALL ma HIGH-SPEED?


1-22160
Yakudza
2001-12-20 16:46
2002.01.08
Copia negli appunti


1-22176
Serg5
2001-12-20 14:57
2002.01.08
Di nuovo, il problema con il testo: visualizzo Image1.Canvas.TextOut, ma sotto il testo stesso è un corridore bianco. È possibile se non si rimuove (basta mettere le lettere), quindi almeno rendere il corridore nero.


1-22007
creepster
2001-12-17 18:09
2002.01.08
screen saver





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