Co to je za programovaci jazyk?

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

Co to je za programovaci jazyk?

#1 Příspěvek od Celeron »

Nepoznate nekdo prosim, v cem je napsany nasledujici zdrojak?
;--------------------
BEGIN { Prim }
p := LAST;
v := p + (2 * (n + 1));
printInt(2);
printSpace;
printInt(3);
printSpace;
x := 1;
lim := 2;
i := 6;
inc := 4;
squ := 9;
WHILE i <<= 2 * n DO
REPEAT
x := x + inc;
inc := 6 - inc;
IF squ <<= x
THEN lim := lim + 2;
v^[lim] := squ;
k := p^[lim + 2];
squ := k * k
ENDIF;
k := 4;
isPrime := true;
WHILE (isPrime <> false) AND (k << lim) DO
k := k + 2;
IF v^[k] << x
THEN v^[k] := v^[k] + 2 * p^[k]
ENDIF;
isPrime := x <> v^[k]
ENDWHILE
UNTIL isPrime <> false;
IF i <<= 2 * nl
THEN p^ := x
ENDIF;
printInt(x);
printSpace;
i := i + 2
ENDWHILE;
printChar(cr);
printChar(lf)
END Prim.
;----------------------------------------
Diky za pomoc.
Jirka
edit: bohuzel se rozhodil format

Uživatelský avatar
mikollar
Příspěvky: 1406
Registrován: 26 pro 2004, 01:00
Bydliště: Košice - okolie

#2 Příspěvek od mikollar »

Pascal ?

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#3 Příspěvek od Celeron »

Pascal MT+ a Turbopascal (je to na 8 bitu) jsem zkousel, vyhazoval spoustu chyb... Tohle je jen cast vetsiho zdrojaku. Je k nemu funkcni spustitelnej COM, takze necim to prelozit urcite jde.
Jirka

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#4 Příspěvek od ZdenekHQ »

Zkus Delphi.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
Panda38
Příspěvky: 713
Registrován: 21 lis 2012, 01:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#5 Příspěvek od Panda38 »

Z toho COM by mohlo jít něco vyčíst, překladače si často do kódu ukládají své podpisy, zkusit najít nějaké identifikační texty.

(Delphi neumí vygenerovat COM :-) )

Když je to na 8 bitů, to je pro jaký procesor, počítač, systém? CP/M ?

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#6 Příspěvek od ZdenekHQ »

Něco podobnýho jsem viděl na netu s koncovkou pro, ale k čemu to patří, to nevím.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
Panda38
Příspěvky: 713
Registrován: 21 lis 2012, 01:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#7 Příspěvek od Panda38 »

Nejspíš se jen trefit do správné verze Pascalu, možná tady by mohl některý sedět? http://www.z80.eu/pas-compiler.html

Uživatelský avatar
fikes
Příspěvky: 70
Registrován: 15 lis 2005, 01:00
Bydliště: Trutnov

#8 Příspěvek od fikes »

Když už jste u toho luštění v čem je program napsán, mám taky prosbu, v čem je toto? Pracuji v MPLABIDE a píšu programy v *.asm. Uvedenou proceduru bych potřeboval přepsat do MPLABIDE do formátu asm, nějak neumím níže uvedené číst. Je ke stažení nějaký popis instrukcí?


#include <p18f458.h> /* Register and bit declarations */
#include <delays.h>
#include <string.h>
#include "lcd1100.h"
#pragma config OSC = HS, OSCS = OFF
#pragma config PWRT= OFF , BOR=ON, BORV = 27
#pragma config WDT = OFF
#pragma config DEBUG = OFF ,LVP =OFF , STVR =OFF


void long_to_string_lz (unsigned int input, char *str, char numdigits);
void long_to_string (unsigned int input, char *str, char numdigits);

void main (void) {
TRISD=0;
Lcd_Init();
Gotoxy(5,2);
print_message("Nokia 1100 LCD ");
Gotoxy(5,5);
print_message("CircuitValley");
while(1) {
}
}



/*
*********************************************************************************************************
* long_to_string()
*
* Description : Convert a "long" to a null-terminated string
* (base = decimal)
* Arguments : input = number to be converted
* str = pointer to string (i.e. display buffer)
* numdigits = number of digits to display
* Returns : none
*********************************************************************************************************
*/
void long_to_string (unsigned int input, char *str, char numdigits)
{
char digit;
int blank = 1;
long_to_string_lz(input, str, numdigits);
for (digit=0; digit < numdigits-1; digit++) {
if (str[digit] == '0') {
if (blank == 1) str[digit] = ' ';
}
else {
blank = 0;
}
}
}


/*
*********************************************************************************************************
* long_to_string_lz()
*
* Description : Convert a "long" to a null-terminated string, with leading zeros
* (base = decimal)
* Arguments : input = number to be converted
* str = pointer to string (i.e. display buffer)
* numdigits = number of digits to display
* Returns : none
*********************************************************************************************************
*/
void long_to_string_lz (unsigned int input, char *str, char numdigits)
{
char digit;
for (digit=numdigits; digit > 0; digit--) {
str[digit-1] = (input % 10) + '0';
input = input / 10;
}
str[numdigits] = 0; // null-terminate the string
}
Přílohy
Nokia 1100 LCD interfaceing.zip
(9.29 KiB) Staženo 34 x

Uživatelský avatar
procesor
Příspěvky: 5284
Registrován: 02 říj 2009, 02:00
Bydliště: PO

#9 Příspěvek od procesor »

Je to v C-čku, ... :(

Uživatelský avatar
Panda38
Příspěvky: 713
Registrován: 21 lis 2012, 01:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#10 Příspěvek od Panda38 »

Pro převod C do ASM je dobrá metoda přeložit to s listingem, je to pak výborná ASM nápověda a často lze přebírat celé úseky optimalizovaného ASM kódu.

Na popisy registrů a instrukcí PIC18f458 jsou datasheety: http://ww1.microchip.com/downloads/en/d ... 41159d.pdf , http://ww1.microchip.com/downloads/en/D ... 39500a.pdf

Uživatelský avatar
monterjirka
Příspěvky: 2761
Registrován: 14 čer 2003, 02:00
Bydliště: Blížejov

#11 Příspěvek od monterjirka »

Ten výpis z prvního příspěvku mi trochu připomíná ALGOL, je to jeden z prvních "vyšších" jazyků", možné je to možné považovat za předchůdce nebo vzor Pascalu...

Uživatelský avatar
Celeron
Příspěvky: 16140
Registrován: 02 dub 2011, 02:00
Bydliště: Nový Bydžov

#12 Příspěvek od Celeron »

Panda38 píše: Když je to na 8 bitů, to je pro jaký procesor, počítač, systém? CP/M ?
Je to Z80 s CP/M. Prave ze jsem zkousel CP/M Pascaly. V tom zdrojaku je ale datum z roku 2004, takze by to mohlo byt neco novejsiho od nejakyho retro priznivce. CP/M byla hodne psana v PL/1 a nebo ve PL/M "sloucenine" PL/1 a Algolu. Takze monterjirka ma asi pravdu. Tak to asi nema reseni, nevim o tom vubec nic...
Jirka

Uživatelský avatar
piitr
Příspěvky: 1003
Registrován: 19 říj 2007, 02:00
Kontaktovat uživatele:

#13 Příspěvek od piitr »

Mně to spíš připomíná nějaký basic.

Uživatelský avatar
Panda38
Příspěvky: 713
Registrován: 21 lis 2012, 01:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#14 Příspěvek od Panda38 »

Basicy nepoužívaly přiřazení s := . Jinak by mohla být podobnost i s např. IDL, ale to jsou už novější jazyky vycházející z Basicu.

Ale připadá mi to přepsatelné do novějšího Pascalu. Nějaký který má kvalitnější chybová hlášení, pak by se snadno vyhledaly všechny potřebné změny. Např. hromadně nahradit všechna "THEN" slovy "THEN BEGIN" a všechna "ENDIF" nahradit "END", "ELSE" -> "END ELSE BEGIN". Podobně " DO" nahradit " DO BEGIN" a "ENDWHILE" nahradit "END", "REPEAT" -> "REPEAT BEGIN", "UNTIL" -> "END UNTIL". atd. Dal by se vytvořit skript na automatickou konverzi (např. pomocí sed popř. grep). Hlavičky funkcí BEGIN {} asi upravit ručně.

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#15 Příspěvek od ZdenekHQ »

Basic to není, to je nějakej přechod mezi Basicem a Pascalem. Mě pod CP/M taky běžel nějakej podivnej překladač, ale nikdy jsem ho nepoužíval. Navíc kdo si to má 20 let pamatovat, a pochybuju, že ty moje 3" diskety ještě žijí.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“