RTV forum PL | NewsGroups PL

Odwrotna Notacja Polska w projekcie kalkulatora na mikroprocesorze 32/256 KB

Odwrotna Notacja Polska - pytania

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Odwrotna Notacja Polska w projekcie kalkulatora na mikroprocesorze 32/256 KB

Goto page Previous  1, 2

tbird
Guest

Wed Jan 09, 2008 6:07 pm   



Igon Skrzypek wrote:
Quote:
Witam!

Wiem, Ĺźe prawdopodobnie powinno iĹÄ na grupÄ o programowaniu - ale
pewnie nie jednen z was prĂłbowaĹ napisaÄ kiedyĹ kalkulator lub coĹ
podobnego - a za to wĹaĹnie siÄ biorÄ - dlatego mam parÄ pytaĹ:

1) czy to wogĂłle realne do zaimplementowania na mikroprocesorze doĹÄ
maĹym - np 32 kb lub 256 kb pamiÄci flash??

W 256KB ROM powinien zmieścić się analizator leksykalny i składniowy
flex/bison a wtedy problem analizy wyrażeń matematycznych jest trywialny.

lwh
Guest

Wed Jan 09, 2008 7:39 pm   



Użytkownik "Igon Skrzypek" <igon.skrzypek@gmail.com.reszta.to.smiec> napisał
w wiadomości news:fm1538$gu4$1@matrix2.idg.com.pl...
Quote:
1) czy to wogóle realne do zaimplementowania na mikroprocesorze dość
małym - np 32 kb lub 256 kb pamięci flash??

Z ciekawości:komu to dziś potrzebne ?
Sztuka dla sztuki ? Takie kalkulatory miały rację bytu ćwierć wieku temu, a
te z ONP były dla nielicznych zawziętych chętnych. Mikroprocesory wówczas
były na początku rozwoju.
Domowe komputery ośmiobitowe z BASICiem robiły to doskonale.
Dzisiejszy mikrokontroler dla dzieci, hobbystów, siakiś ATMega czy PIC18
leje "dziadków".
Arkuszowi kalkulacyjnemu w PCcie , czy nawet kalkulatorowi z wyposażenia
WIndows to nie dorównuje.
Pełnowartościowy programowalny kalkulator inżynierski CASIO kosztuje znikome
pieniądze.

Jarosław Sokołowski
Guest

Wed Jan 09, 2008 7:41 pm   



tbird napisał:

Quote:
Wiem, że prawdopodobnie powinno iść na grupę o programowaniu - ale
pewnie nie jednen z was próbował napisać kiedyś kalkulator lub coś
podobnego - a za to właśnie się biorę - dlatego mam parę pytań:

1) czy to wogóle realne do zaimplementowania na mikroprocesorze dość
małym - np 32 kb lub 256 kb pamięci flash??

W 256KB ROM powinien zmieścić się analizator leksykalny i składniowy
flex/bison a wtedy problem analizy wyrażeń matematycznych jest trywialny.

A gdyby tak jeszcze wirtualną maszynę Javy dorzucić w kolejnych
megabajtach... Ośmiobitowe komputery miały basic mieszczący się w 4KB
(nawet istnieje pojęcie 4K-BASIC), podobnie było w pececie. A ja miałem
kalkulator z początku lat '70, jeszcze taki przed-komercyjny, tamte
kalkulatory nie były produktem masowym i tanim. On miał Odwrotną Notację
Polską, sześć cyfr znaczących i stały przecinek. Właśnie ze względu na
łatwośc implementacji w szczupłych zasobach. Ja nie wiem co miał w środku
zamontowany w nim układ (był w wąskiej obudowie DIL), ale nie sądzę, by
wielkość jego pamięci wyrażona była w K(ilo).

--
Jarek

pracownik
Guest

Wed Jan 09, 2008 7:57 pm   



Quote:

Wiem, że prawdopodobnie powinno iść na grupę o programowaniu - ale
pewnie nie jednen z was próbował napisać kiedyś kalkulator lub coś
podobnego - a za to właśnie się biorę - dlatego mam parę pytań:

1) czy to wogóle realne do zaimplementowania na mikroprocesorze dość
małym - np 32 kb lub 256 kb pamięci flash??

Kiedyś popełniłem stosowne procedury dla Z80; cztery podstawowe działania na
32 bit float (3m+1e), z tego co pamiętam to kod wyniósł ok 2k (i chyba był
dość rozrzutny).
Kod w pełni współużywalny (chodziło toto w systemie wielozadaniowym)

Quote:
2) jak dobrać pryjorytety operatorów (może macie gotową tabelę) -
zwłaszcza jak dobrać pryjorytety operatorów typu sinus, cosinus itp
To jest dość proste; wystarczy pooglądać jakieś gotowe rozwiązanie.
3) jak implementować stos - używać tego wbudowanego czy zbudować własny
oparty o zmienne itp
Raczej zaimplementować
Pozdrawiam,
Igon
Również

Jacek Poźniak

Padre_peper
Guest

Wed Jan 09, 2008 8:51 pm   



Quote:
Z ciekawości:komu to dziś potrzebne ?
Sztuka dla sztuki ? Takie kalkulatory miały rację bytu ćwierć wieku
temu,

Myślę, że sie mylisz. Dla wprawnej osoby RPN to możliwość liczenia sporo
szybszego a co najważniejsze obarczonego mniejszym ryzykiem pomyłki. I
wcale tu nie pomogą programowalne super kalkulatory bo mam na myśli
proste obliczenia ale takie które na zwykłych kalkulatorach zmuszają do
używania na przykład wielopoziomowych nawiasów które bardzo łatwo się
pisze na kartce ale bardzo trudno wprowadza z pamięci do kalkulatora.
RPN odpowiada myślowej logice obliczeń i jest nieoceniona "w terenie"
tam gdzie prowadzi sie obliczenia wprost na kalkulatorze nie zapisując
ich wcześniej na kartce. Osobiście kalkulatora ze zwykłą notacją używam
wyłącznie do sumowania kolumn liczb bądź operacji na dwóch liczbach.
Kiedy potrzebuję policzyć cokolwiek bardziej skomplikowanego od razu
sięgam po maszynkę z RPN w postaci emulatora na palmtopie.

J.F.
Guest

Wed Jan 09, 2008 9:58 pm   



On Wed, 09 Jan 2008 20:51:53 +0100, Padre_peper wrote:
Quote:
Z ciekawości:komu to dziś potrzebne ?
Sztuka dla sztuki ? Takie kalkulatory miały rację bytu ćwierć wieku
temu,

Myślę, że sie mylisz. Dla wprawnej osoby RPN to możliwość liczenia sporo
szybszego a co najważniejsze obarczonego mniejszym ryzykiem pomyłki. I
wcale tu nie pomogą programowalne super kalkulatory bo mam na myśli
proste obliczenia ale takie które na zwykłych kalkulatorach zmuszają do
używania na przykład wielopoziomowych nawiasów które bardzo łatwo się
pisze na kartce ale bardzo trudno wprowadza z pamięci do kalkulatora.

eee .. jak juz sa napisane na kartce, to latwo sie wprowadza.

Quote:
RPN odpowiada myślowej logice obliczeń i jest nieoceniona "w terenie"
tam gdzie prowadzi sie obliczenia wprost na kalkulatorze nie zapisując
ich wcześniej na kartce.

Nad co bardziej skomplikowanym zadaniem trzeba jednak pomyslec.

Quote:
Kiedy potrzebuję policzyć cokolwiek bardziej skomplikowanego od razu
sięgam po maszynkę z RPN w postaci emulatora na palmtopie.

Eee - nie lepiej excela ?

P.S. troche o kalkulatorach HP, ale juz dosc zaawansowanych
http://www.hpmuseum.org/techcpu.htm

symulator, firmware ... 8K niecale
http://www.hpmuseum.org/simulate/sim45.htm

J.

lwh
Guest

Wed Jan 09, 2008 11:32 pm   



Użytkownik "Padre_peper" <Padre@no.net> napisał w wiadomości
news:fm38lj$rno$1@mx1.internetia.pl...
Quote:
Myślę, że sie mylisz. Dla wprawnej osoby RPN to możliwość liczenia sporo
szybszego a co najważniejsze obarczonego mniejszym ryzykiem pomyłki. I

Dla wprawnego wystarczy cokolwiek, czym biegle umie się posługiwać,także
suwak logarytmiczny.
Wprawny ma taki kalkulator od lat i go nie musi robić od podstaw. Ryzyko
pomyłki w programie jest duże.

Quote:
Kiedy potrzebuję policzyć cokolwiek bardziej skomplikowanego od razu
sięgam po maszynkę z RPN w postaci emulatora na palmtopie.

A ja sięgam po Excel jak mi moje "dziadki" nie wystarczą Smile
Ongiś lubiłem radziecki kalkulator z wbudowanym BASICiem.
Bardzo fajna to była zabawka. Programowało się go podobnie jak ZX81 i prawie
tyle samo umiał.
Akumulatory w nim już zdechły, a prądożerny był.
Najczęściej jednak używam kalkulatora z Windows, bardzo leciwym
nieprogramowalnym Privilegiem ze wszystkimi funkcjami inżynierskimi, bez
baterii (ogniwa słoneczne ma) nie gardząc.

PAndy
Guest

Thu Jan 10, 2008 1:28 pm   



"Jarosław Sokołowski" <jaros@lasek.waw.pl> wrote in message
news:slrnfoa4m5.gt5.jaros@falcon.lasek.waw.pl...

Quote:
A gdyby tak jeszcze wirtualną maszynę Javy dorzucić w kolejnych
megabajtach... Ośmiobitowe komputery miały basic mieszczący się w 4KB
(nawet istnieje pojęcie 4K-BASIC), podobnie było w pececie. A ja
miałem
kalkulator z początku lat '70, jeszcze taki przed-komercyjny, tamte
kalkulatory nie były produktem masowym i tanim. On miał Odwrotną
Notację
Polską, sześć cyfr znaczących i stały przecinek. Właśnie ze względu na
łatwośc implementacji w szczupłych zasobach. Ja nie wiem co miał w
środku
zamontowany w nim układ (był w wąskiej obudowie DIL), ale nie sądzę,
by
wielkość jego pamięci wyrażona była w K(ilo).

http://en.wikipedia.org/wiki/Demoscene
http://en.wikipedia.org/wiki/Demo_%28computer_programming%29
http://en.wikipedia.org/wiki/Procedural_generation
http://en.wikipedia.org/wiki/.kkrieger
http://www.pouet.net/prod.php?which=482

w 4KB mozna naprawde duzo zmiescic...

polecam 1KB intros competition...

tbird
Guest

Thu Jan 10, 2008 1:38 pm   



Jarosław Sokołowski wrote:
Quote:
tbird napisał:

Wiem, że prawdopodobnie powinno iść na grupę o programowaniu - ale
pewnie nie jednen z was próbował napisać kiedyś kalkulator lub coś
podobnego - a za to właśnie się biorę - dlatego mam parę pytań:

1) czy to wogóle realne do zaimplementowania na mikroprocesorze dość
małym - np 32 kb lub 256 kb pamięci flash??
W 256KB ROM powinien zmieścić się analizator leksykalny i składniowy
flex/bison a wtedy problem analizy wyrażeń matematycznych jest trywialny.

A gdyby tak jeszcze wirtualną maszynę Javy dorzucić w kolejnych
megabajtach...

Zależy co dokładnie chcemy osiągnąć. Do obliczenia wyrażenia
algebraicznego podanego w całości jako string wklepany z klawiatury np:
"1+2*3-4.0--5*sin(6*(7+Cool)"
trzeba pomyśleć o jakimś parserze gramatycznym. Zwykłe ONP oczywiście
jest prostsze w implementacji.

--
tbird

Jarosław Sokołowski
Guest

Thu Jan 10, 2008 6:42 pm   



Pan PAndy napisał:

Quote:

Jak DOS był tylko w wersji angielskiej (a później jeszcze w kilku
dodatkowych językach), to chcąc pisać po polsku, trzeba było załadować
do pamięci sterownik klawiatury. A jak już były karty EGA i VGA, to
również program dbający o to, by wiedziały one jak wyglądaja litery
z ogonkami, nawet po resecie związanym ze zmiana trybu wyświetlania.
Trwało więc nieustające competition, kto napisze program do obsługi
klawiatury i monitora zajmujący mniej miejsca. Mnie się udało naskrobać
drajwer klawiatury na 206 bajtów i obsługę VGA w 460 bajtach (z czego
dwie trzecie to oczywiście same kształty liter). Nic mi nie wiadomo
aby ktoś zrobił krótsze. Ale ruchome obrazki w 1KB też były fajne.

--
Jarek

Jarosław Sokołowski
Guest

Thu Jan 10, 2008 6:42 pm   



Pan tbird napisał:

Quote:
W 256KB ROM powinien zmieścić się analizator leksykalny i składniowy
flex/bison a wtedy problem analizy wyrażeń matematycznych jest trywialny.

A gdyby tak jeszcze wirtualną maszynę Javy dorzucić w kolejnych
megabajtach...

Zależy co dokładnie chcemy osiągnąć. Do obliczenia wyrażenia
algebraicznego podanego w całości jako string wklepany z klawiatury np:
"1+2*3-4.0--5*sin(6*(7+Cool)"
trzeba pomyśleć o jakimś parserze gramatycznym. Zwykłe ONP oczywiście
jest prostsze w implementacji.

Co chcemy osiągnąć, to napisano w temacie wątku. RPN ma to do siebie,
że nie wymaga 'jakiegoś parsera gramatycznego', bo w zasadzie w tym
zapisie nie ma gramatyki. Wystarczy natychmiastowe wykonanie tego, co
po kolei brane jest ze stosu.

--
Jarek

RoMan Mandziejewicz
Guest

Fri Jan 11, 2008 12:08 am   



Hello Jarosław,

Thursday, January 10, 2008, 6:04:13 PM, you wrote:

[...]

Quote:
polecam 1KB intros competition...
Jak DOS był tylko w wersji angielskiej (a później jeszcze w kilku
dodatkowych językach), to chcąc pisać po polsku, trzeba było załadować
do pamięci sterownik klawiatury. A jak już były karty EGA i VGA, to
również program dbający o to, by wiedziały one jak wyglądaja litery
z ogonkami, nawet po resecie związanym ze zmiana trybu wyświetlania.
Trwało więc nieustające competition, kto napisze program do obsługi
klawiatury i monitora zajmujący mniej miejsca. Mnie się udało naskrobać
drajwer klawiatury na 206 bajtów i obsługę VGA w 460 bajtach (z czego
dwie trzecie to oczywiście same kształty liter). Nic mi nie wiadomo
aby ktoś zrobił krótsze. Ale ruchome obrazki w 1KB też były fajne.

A gry w 256 bajtach na VGA? Z licznikiem Wink Też takie są...

A jak się chwilimy, to całą gębą - mój driver drukarki (grafika 72x72
dpi) na własnoręcznie zbudowanym porcie równoległym do Spectrum i
programu Art Studio (kto pamięta?) miał chyba 89 bajtów. Driver do
Tasworda (tak to się chyba nazywało), obsługujący na tym samym porcie
drukarki polskie litery i całe mnóstwo ozdobnych trybów też coś koło
tego. Driver obsługujący BASICowe LPRINT i LLIST trochę większy - ok.
120 bajtów. Wszystkie obsługiwały rewelacyjnie szybką (200 cps) jak na
tamte czasy i stosunkowo mało znaną drukarkę Star Radix 15.

Na Spectrum popełniłem też program w BASICu, obsługujący... dalekopis
jako drukarkę przez wyjście... słuchawkowe/nagrywania. Wykorzystałem
specyfikę komendy PAUSE 1. Od strony elektrycznej był to banalny układ
z wykorzystaniem jedynego jFETa, jakiego miałem pod ręką: 2SK41E (plus
bodaj BC313 jako driver pętli 40 mA) - zniewaga straszna, wykorzystać
FETa UKF do nadawania z prędkością 50 bodów ;)

--
Best regards,
RoMan mailto:roman@pik-net.pl
Spam: http://www.allegro.pl/sklep/7416823_squadack Smile

Zenek
Guest

Mon Apr 21, 2008 4:58 pm   



Dnia 09.01.2008 Igon Skrzypek <igon.skrzypek@gmail.com.reszta.to.smiec>
napisał/a:
Quote:
Wiem, ?e prawdopodobnie powinno i?? na grup? o programowaniu - ale
pewnie nie jednen z was próbowa? napisa? kiedy? kalkulator lub co?
podobnego - a za to w?a?nie si? bior? - dlatego mam par? pyta?:
(...)

Taka sprawdzona rada "jak szybko przejść na Odwrotną Notację Polską".

1. Wszystkie oepracje traktuj jak funkcje. Czyli zamiast a + b,
pomysl o funkcji 'dodaj(a, b)'.

2. Zapisz w ten sposób swoje wyrażenie do obliczenia. Np:
(a + b) * (c - d) => mnoz(dodaj(a, b), odejmij(c, d))

3. Nazwę funkcji przesuń ZA jego nawiasy z parametrami, np.
dodaj(a, b) => (a, b)dodaj

4. No i juz masz zapis w odwrotnej notacji Smile. Tam gdzie trafisz na
przecinek wciskaj ENTER.

(a + b) * (c - d) =>
mnoz(dodaj(a, b), odejmij(c, d)) =>
(((a, b)dodaj, (c, d)odejmij)mnoz =>
a b + c d - *

Fajne, nie?



--
Zenek

http://www.archimedes.eu.org/

Goto page Previous  1, 2

elektroda NewsGroups Forum Index - Elektronika Polska - Odwrotna Notacja Polska w projekcie kalkulatora na mikroprocesorze 32/256 KB

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map