Casa
Top.Mail.Ru Yandeks.Metrika
Fórum: "Principal";
Arquivo atual: 2002.01.08;
Download: [xml.tar.bz2];

Para baixo

Pergunta para pascalshchik ??? Encontre agências semelhantes


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

O compilador gera um erro de Indefinição Variável Esperada e indica o local no programa onde duas constantes são multiplicadas ??? Qual é o problema ???



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

Indefinido de variável Esperado significa: Identificador de variável esperado.

Tire conclusões.

Dê o código.



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

System.Move (grecFixedDiskBoot, gsTempInput [1], aMaxTpStrLen);
gsTempInput [0]: = System.Char (aMaxTpStrLen);
IF (System.Pos (asCopyrightNotice, gsTempInput) <> 0)
ENTÃO COMEÇAR
System.WriteLn (asProgramPrompt + asProgram +
"carregador encontrado no disco fixo 0.");
System.Write (asProgramPrompt +
"Copiar seqüências de descrição da cópia instalada (S / N):");
System.ReadLn (gsTempInput);

IF (System.UpCase (_fnchGetFirstChar (gsTempInput)) <> achNo)
ENTÃO COMEÇAR
System.WriteLn (asProgramPrompt + "Copiar cadeias de descrição.");
System.Move (System.Mem [System.Seg (grecFixedDiskBoot.dbReservedCode):
(System.Ofs (grecFixedDiskBoot.dbReservedCode) + aOS_Desc_Start)],
(“Ele mostra as constantes aqui) aOS_Desc_Str_Len_Ext * aMaxAvailLogicalPartition);
FIM;
{se-então}
END
ELSE
System.WriteLn (asProgramPrompt + asProgram + "loader not present.");
{se-então}



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

Declare uma variável. Dê um significado. Passe no procedimento.
Provavelmente, o procedimento espera um parâmetro por referência e você passa por valor.



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

Você precisa de dois pontos lá?



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

Que diabos é um cólon? Pegamos um livro didático para as séries do ensino fundamental e começamos a descobrir como os valores e variáveis ​​dos parâmetros diferem. Também é útil procurar na ajuda e descobrir quais parâmetros o procedimento possui. Mover e quantos deles.



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

Parece-me que o problema está aqui
"(" Mostra constantes aqui) "é uma variável? e então onde está a vírgula?
E, portanto, a sintaxe está correta.
Forneça o código de chamada exato e a declaração de variável usada no procedimento Mover.



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

Gente, eu já fui torturado, agora vou dar o código inteiro!



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

{* ========================== PARTE DOS CONSTANTES ==================== ========= *}

CONST

{definições do programa}
asPurpose = "OS-MultBoot";
asVersion = "1.30";
asAuthor = "Dima Stefankov";
asCopyright = "Copyright (c) 1987, 1993";
asProgram = "Inicialização do SO";
asProgramPrompt = asProgram + ":";

{códigos de saída}
errTerminateOK = 0;
errBootStrapDebug = 1;
errBadReadFixedDisk = 2;
errBadWriteFixedDisk = 3;
errUserInstallAbort = 4;
errUserWriteAbort = 5;
errMismatchLoaderCode = 6;

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

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

{***** ATENÇÃO !!! Valores codificados abaixo. *****}
{***** Por favor, modifique com cuidado! *****}
{$ IFDEF DebugVersion}
adwBootSeg = $ 8000; {segment em 512K}
{$ ELSE}
adwBootSeg = $ 0000; {segment em 0K}
{$ ENDIF}
adwBootOfs = $ 7C00;
adwRelBootOfs = adwBootOfs + aSectorSize;
adwPartitionTable = $ 1BE;
aPartitonEntrySize = $ 10;
aMaxAvailLogicalPartition = 4;
adwBootMarkOfs = adwPartitionTable +
(aPartitonEntrySize *
aMaxAvailLogicalPartition);
adwBootSecID = $ AA55;

aOS_Desc_Str_Len = $ 16; {estes valores encontrados}
aOS_Desc_Ofs = $ 04; {depois da montagem de}
aOS_Desc_Start = $ 40-1; {Procedimento IPL. }
aOS_Desc_Str_Len_Ext = aOS_Desc_Str_Len + 2;

aDebugOff = 0;
aDebugOn = 1;

aFarJumpOpCode = $ EA; {opcode do iAPX86}

aRomKbdDriver = $ 16; {Funções do IBM PC BIOS}
aRomDiskDriver = $ 13;
aRomVideoDriver = $ 10;

{use para verificar a versão instalada}
asCopyrightNotice = "OS-MultBoot (C) 1992 D. Stefankov";


{* ======================= PARTE CONSTANTES TYPED ======================= === *}

TIPO

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

{* Informação sobre disco lógico *}
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}
FIM;
{* recLogicalPartition *}

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


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

VAR

grecFixedDiskBoot: recMasterBoot;
gfOutStream: ARQUIVO DE 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]

É melhor começar com isso, mas você não precisa de todo o código, apenas para movimentos e declarações de variáveis ​​necessárias.



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

System.Move (grecFixedDiskBoot, gsTempInput [1], aMaxTpStrLen);
gsTempInput [0]: = System.Char (aMaxTpStrLen); - ele pula essa linha significa todos os parâmetros!



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

Mover do módulo SYSUTILS



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

Então, qual dos dois movimentos o compilador jura?
Bem, não puxe a informação de você gota a gota, você logo se cansará.



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

> ele pula essa linha significa todos os parâmetros!

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

Existem três parâmetros

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

Existem dois parâmetros

> Mover do módulo SYSUTILS

O que isso significa?



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

Mover do módulo SYSUTILS



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

Ok, martelo no módulo!
System.Move (System.Mem [System.Seg (grecFixedDiskBoot.dbReservedCode): (System.Ofs (grecFixedDiskBoot.dbReservedCode) + aOS_Desc_Start)],

aOS_Desc_Str_Len_Ext * aMaxAvailLogicalPartition); - Jura este pedaço!



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

Pessoas! Será mais fácil para todos se alguém souber onde obter a fonte do bootloader!



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

Era necessário que não houvesse dois, mas três parâmetros !!!



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

> Arte © (18.12.01 21: 12)

Será mais fácil se você não "agitar a água" :-)

Aqui está a declaração do procedimento:
procedimento Mover (const Source; var Dest; Count: Integer);

E aqui está como você o usa:
System.Move (System.Mem [System.Seg (grecFixedDiskBoot.dbReservedCode): (System.Ofs (grecFixedDiskBoot.dbReservedCode) + aOS_Desc_Start)], aOS_Desc_Str_Len_Ext * aMaxAvailLogicalPartition)

Encontre as diferenças ...

Será mais fácil para todos se alguém souber onde obter a fonte do bootloader!

"Por favor, me dê um pouco de água para beber, caso contrário eu quero comer tanto que não há onde dormir".

Boa sorte.



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

Ok, desculpe, obrigado a todos!



Страницы: 1 filial inteira

Fórum: "Principal";
Arquivo atual: 2002.01.08;
Download: [xml.tar.bz2];

em cima









Memória: 0.63 MB
Hora: 0.063 c
14-22407
KL
2001-11-03 00:47
2002.01.08
Teste Beta !!!


6-22301
Chinês que
2001-10-10 14:45
2002.01.08
Esclerose ou o que?


1-22181
Comida
2001-12-21 11:12
2002.01.08
Como proibir o movimento do mouse?


7-22424
Nik
2001-09-21 14:30
2002.01.08
Ao instalar o Pro, você dá erros na unidade C


6-22300
evgen_2001
2001-10-04 12:25
2002.01.08
Lista de discussão





afrikaans albanês Arabic armênio azerbaijano basco belarusian Bulgarian catalão Chinês simplificado) Chinês tradicional) croata checo dinamarquês Dutch Inglês estoniano filipino Finnish French
Galego georgiano German grego crioulo haitiano hebraico hindi húngaro islandês Indonesian irlandês Italian Japanese Korean letão lituano macedónio Malay maltês Norwegian
persa polonês Portuguese romeno Russa sérvio Slovak esloveno espanhol swahili sueco tailandês turco ucraniano urdu vietnamita galês ídiche bengali bósnio
cebuano esperanto gujarati hausa hmong igbo javanês kannada khmer lao latino maori marata mongol Nepali punjabi somali tâmil telugu yoruba
zulu
Английский francês Alemão Italiano Португальский russo Espanhol