Ja wiem, że dla rozsądniejszej części społeczeństwa (tej która czyta) stwierdzenie, że chyba mam zbyt dużo książek brzmi absurdalnie.
No bo jak można mieć zbyt dużo książek? ;-)
To fakt, nie można. Lepiej moją sytuację dookreślę, mój problem polega na tym, że mam za mało miejsca na książki ;-)
Przed chwilą próbowałem odłożyć Długą Ziemię (którą przeczytałem teraz po polsku i zaczynam nią być zachwycony... a po oryginale miałem mieszane uczucia) i jedynym miejscem gdzie było miejsc była jedna z "kupek", bo ja książki przechowuję "na kupkach".... Co często prowadzi do tego, że nie wiem gdzie która jest ;-)
Już mam książki nie tylko w półkach, ale i na meblach (u góry), na podłodze, na stoliku gdzie stoi TV, w miejscu gdzie kiedyś stał komputer i w miejscu spania w KRK, do tego jeszcze kilka mam w torbie z którą jeżdżę do KRK.
Jeśli ktoś ciekaw to to co widać na zdjęciach to jest fragment Pratchettowski, sekcja angielska ;-)
Zdecydowanie trzeba kupić mieszkanie by to gdzieś pomieścić....
A co mają powiedzieć ludzie, którzy mają dużo książek?
Podobne postybeta
Bałagan na podłodze = bałagan w głowie? ;-)
Update na statusie ;-)
Książeczki :-)
A może by tak Macbooka Air?
Twitter
poniedziałek, kwietnia 29, 2013
niedziela, kwietnia 28, 2013
Ingress i moje portale... ;-)
W Ingressa można grać, ale można też zgłaszać doń portale.
Na razie zgłosiłem ich "kilka" i do gry weszły 2 ;-)
Najpierw oba, które są w grze :-)
Zegar w Wodzisławiu i Fontanna Kwiatowa. Zegar stoi sobie chyba od lat 70, ale głowy nie dam, sam go widziałem po raz pierwszy w 89 roku gdy pierwszy raz przyjechałem do Wodzisławia ;-)
Fontanna Kwiatowa była fontanną, ale coś w trakcie jej budowy spaprano i przeciekała. W końcu po latach basen na wodę zasypano ziemią i jest tam teraz kwietnika.
Teraz reszta moich propozycji ;-)
Zegar Słoneczny zgłoszony dziś/wczoraj (27 kwietnia 2013 roku)
Muzeum i Pałac w Wodzisławiu Śląskim.
Ruiny domu pogrzebowego w Płaszowie, wysadzony przez Niemców (aka nazistów) w trakcie II Wojny Światowej, na tym terenie powstał obóz koncentracyjny Płaszów.
Grafiti pod wiaduktem w Krakowie na Wielickiej.
Fontanna w Wodzisławiu Śląskim
Rycerz (jakiś święty, ale nie wiem który ;-)) w Wodzisławiu Śląskim
Chyba święta Konstancja, też w Wodzisławiu Śląskim
Mój palec i jeszcze jeden rycerz (czyli zapewne też święty, w Wodzisławiu ;-))
Mikołaj Kopernik? ;-) Raczej nie, pewnie znów jakiś święty ;-)
Święty Wawrzyniec. Wygląda tak sobie, ale jest naprzeciwko portalu z Zegarem (na samej górze był) i ładnie by się komponował.
Rycerz, który już był wcześniej... możliwe, że dwa razy drania zgłosiłem ;-)
Willa. Bardzo mi się podoba, to chyba zasługuje ;-) też w Wodzisławiu
Pomnik Powstańców Śląskich w Wodzisławiu.
Koło :-) Taka niby rzeźba w Wodzisławiu obok MOKu.
Grzybek ;-)
Myślicie, że któreś z tych zgłoszonych przeze mnie portali zasługuje na bycie portalem? :-)
Bo ciekaw jestem czy znajdą uznanie SuperOpsów :-)
Podobne postybeta
Historia atakuje z każdej strony w Krakowie ;-)
Rycerz na białym koniu? ;-)
Jakieś święto, czy co?
Tunel... ciąg dalszy ;-)
Ingress - pole widziane z kosmosu ;-)
Na razie zgłosiłem ich "kilka" i do gry weszły 2 ;-)
Najpierw oba, które są w grze :-)
Zegar w Wodzisławiu i Fontanna Kwiatowa. Zegar stoi sobie chyba od lat 70, ale głowy nie dam, sam go widziałem po raz pierwszy w 89 roku gdy pierwszy raz przyjechałem do Wodzisławia ;-)
Fontanna Kwiatowa była fontanną, ale coś w trakcie jej budowy spaprano i przeciekała. W końcu po latach basen na wodę zasypano ziemią i jest tam teraz kwietnika.
Teraz reszta moich propozycji ;-)
Zegar Słoneczny zgłoszony dziś/wczoraj (27 kwietnia 2013 roku)
Muzeum i Pałac w Wodzisławiu Śląskim.
Ruiny domu pogrzebowego w Płaszowie, wysadzony przez Niemców (aka nazistów) w trakcie II Wojny Światowej, na tym terenie powstał obóz koncentracyjny Płaszów.
Grafiti pod wiaduktem w Krakowie na Wielickiej.
Fontanna w Wodzisławiu Śląskim
Rycerz (jakiś święty, ale nie wiem który ;-)) w Wodzisławiu Śląskim
Chyba święta Konstancja, też w Wodzisławiu Śląskim
Mój palec i jeszcze jeden rycerz (czyli zapewne też święty, w Wodzisławiu ;-))
Mikołaj Kopernik? ;-) Raczej nie, pewnie znów jakiś święty ;-)
Święty Wawrzyniec. Wygląda tak sobie, ale jest naprzeciwko portalu z Zegarem (na samej górze był) i ładnie by się komponował.
Rycerz, który już był wcześniej... możliwe, że dwa razy drania zgłosiłem ;-)
Willa. Bardzo mi się podoba, to chyba zasługuje ;-) też w Wodzisławiu
Pomnik Powstańców Śląskich w Wodzisławiu.
Koło :-) Taka niby rzeźba w Wodzisławiu obok MOKu.
Grzybek ;-)
Myślicie, że któreś z tych zgłoszonych przeze mnie portali zasługuje na bycie portalem? :-)
Bo ciekaw jestem czy znajdą uznanie SuperOpsów :-)
Podobne postybeta
Historia atakuje z każdej strony w Krakowie ;-)
Rycerz na białym koniu? ;-)
Jakieś święto, czy co?
Tunel... ciąg dalszy ;-)
Ingress - pole widziane z kosmosu ;-)
3 must have dla Chrome OS ;-)
Chrome OS musi wzbogacić się o kilka rzeczy.
Pierwszą jest współpraca z Androidem (już tu kiedyś na to narzekałem).
Jeśli dziś podłącze do swojego Chromebooka Nexusa 4 czy Nexus 10 albo 7 to po prostu zaczną się ładować i tyle ;-)
Nie uzyskam żadnego dostępu do plików.
Co ciekawe podłączenie Nexus S spowoduje pokazanie się dysku USB ;-)
To wynik decyzji Google by w Androidzie nie udostępniać zawartości urządzenia jako dysku USB.
Są metody na obejście problemu, można np. na urządzeniu z Androidem zainstalować soft, który pozwoli na dostęp do plików przez HTTP, ale to półśrodek.
Lepsze zarządzanie monitorami.
Podpiąłem dziś do Chromebooka monitor zewnętrzny.
Wszystko działało od kopa, od razu się ekran rozszerzył. To plus.
Minusem jest to, że chociaż złącze HDMI i VGA są po lewej stronie chromebooka, czyli monitor też stoi po lewej jego stronie to sam ekran monitora stał się ekranem prawym... czyli by przejść kursorem na ekran po lewej, trzeba było przesuwać kursor w prawo....
W ustawieniach można zmienić domyślny ekran, nie udało mi się jednak znaleźć opcji pozwalającej na zmianę kolejności ekranów i to kolejna rzecz, która by się przydała.
Lepsze odtwarzanie plików lokalnych.
Teraz dobrze działa przeglądanie obrazków, słuchanie muzyki jest takie sobie, filmów się nie da oglądać (najmniej na Acer C7). Filmy się straszliwie rwą.
Nikt raczej nie będzie Chromebooka używał do oglądania filmów, ale teraz wynika to nie z niesprzyjającego form factor, ale z faktu, że się po prostu nie da ;-)
To są 3 podstawowe rzeczy, które trzeba poprawić.
Tak btw. pod koniec maja najpewniej będę miał wyjazd na który w chwili obecnej planuję zabrać tylko Chromebooka, zobaczę więc jak się sprawdza w boju ;-)
Podobne postybeta
Chromebook vs netbook z Windows 8 ;-) - pierwsze wrażenia
Smartofny są kpiną ze swojej mocy, to superkomputery do oglądania przygłupich filmów
Podsłuchiwanie Chrome ;-)
Biurko
Foldery
Pierwszą jest współpraca z Androidem (już tu kiedyś na to narzekałem).
Jeśli dziś podłącze do swojego Chromebooka Nexusa 4 czy Nexus 10 albo 7 to po prostu zaczną się ładować i tyle ;-)
Nie uzyskam żadnego dostępu do plików.
Co ciekawe podłączenie Nexus S spowoduje pokazanie się dysku USB ;-)
To wynik decyzji Google by w Androidzie nie udostępniać zawartości urządzenia jako dysku USB.
Są metody na obejście problemu, można np. na urządzeniu z Androidem zainstalować soft, który pozwoli na dostęp do plików przez HTTP, ale to półśrodek.
Lepsze zarządzanie monitorami.
Podpiąłem dziś do Chromebooka monitor zewnętrzny.
Wszystko działało od kopa, od razu się ekran rozszerzył. To plus.
Minusem jest to, że chociaż złącze HDMI i VGA są po lewej stronie chromebooka, czyli monitor też stoi po lewej jego stronie to sam ekran monitora stał się ekranem prawym... czyli by przejść kursorem na ekran po lewej, trzeba było przesuwać kursor w prawo....
W ustawieniach można zmienić domyślny ekran, nie udało mi się jednak znaleźć opcji pozwalającej na zmianę kolejności ekranów i to kolejna rzecz, która by się przydała.
Lepsze odtwarzanie plików lokalnych.
Teraz dobrze działa przeglądanie obrazków, słuchanie muzyki jest takie sobie, filmów się nie da oglądać (najmniej na Acer C7). Filmy się straszliwie rwą.
Nikt raczej nie będzie Chromebooka używał do oglądania filmów, ale teraz wynika to nie z niesprzyjającego form factor, ale z faktu, że się po prostu nie da ;-)
To są 3 podstawowe rzeczy, które trzeba poprawić.
Tak btw. pod koniec maja najpewniej będę miał wyjazd na który w chwili obecnej planuję zabrać tylko Chromebooka, zobaczę więc jak się sprawdza w boju ;-)
Podobne postybeta
Chromebook vs netbook z Windows 8 ;-) - pierwsze wrażenia
Smartofny są kpiną ze swojej mocy, to superkomputery do oglądania przygłupich filmów
Podsłuchiwanie Chrome ;-)
Biurko
Foldery
poniedziałek, kwietnia 22, 2013
Cieszę się, że autorzy których czytują są lepszymi psiarzami niż ja czytelnikiem :-)
Po przeczytaniu Mgnienia Ekranu i opowiadania Wysokie megi postanowiłem wrócić do Długiej Ziemi i tym razem przeczytać ją po polsku.
Na razie przeczytałem niewiele bo 31 stron, ale już to sprawia że stwierdzam, że ja to mam szczęście ;-)
Czytam zwykle tych autorów, którzy są lepszymi pisarzami niż ja czytelnikiem ;-)
Szczerze nie potrafię zbyt dokładnie powiedzieć czemu lubię książki Arthura C. Clarke'a, Isaaca Asimova czy Terry'ego Pratchetta (jest jeszcze kilkoro autorów, Rowling, OCC, Chmielewska) a nie przepadam za wydawałoby się podobnymi jak Strugaccy czy inni.
Nie umiem wskazać kryterium innego niż "podoba mi się" ;-)
Niby są pewne tropy, bo u Pratchetta głównie lubię bohaterów, którzy pozbawieni głównych atutów bycia herosami okazują się nimi być, dokonując nie głupich Bohaterskich Czynów, a po prostu czynów bez których coś nie stałoby się tak jak powinno. Po prostu lubię takiego Mau z Nacji za to, że "wydoił" świnię by zdobyć trochę mleka dla dziecka.
U Asimova lubię tropy, to jak połączył Roboty z Imperium i z Fundacją, za Powiew Śmierci i intrygę. Clarka lubię za Clarkowatość, za książki które trzymają się fizyki i które w wielu miejscach można niemal przeliczyć.
Ale to wszystko tylko tropy, te same tropy u innych są takie jakieś nieteges.
Stąd ciągle się cieszę, że "moi" autorzy są lepszymi pisarzami niż ja czytelnikiem ;-) bo chociaż nie do końca wiem czemu lubię ich książki to jednak je lubię, a to sprawia mi olbrzymią radość :-)
Podobne postybeta
Książki, książeczki, książunie ;-)
eBook - jak na razie się nie opłaca
O! "Ostatnie Twierdzenie" Arthura C. Clarke'a po polsku :-)
Najmocniejszy "żart" Prima Aprilisowy
Im gęściej dobrych programistów, tym gęściej Linuksa
Na razie przeczytałem niewiele bo 31 stron, ale już to sprawia że stwierdzam, że ja to mam szczęście ;-)
Czytam zwykle tych autorów, którzy są lepszymi pisarzami niż ja czytelnikiem ;-)
Szczerze nie potrafię zbyt dokładnie powiedzieć czemu lubię książki Arthura C. Clarke'a, Isaaca Asimova czy Terry'ego Pratchetta (jest jeszcze kilkoro autorów, Rowling, OCC, Chmielewska) a nie przepadam za wydawałoby się podobnymi jak Strugaccy czy inni.
Nie umiem wskazać kryterium innego niż "podoba mi się" ;-)
Niby są pewne tropy, bo u Pratchetta głównie lubię bohaterów, którzy pozbawieni głównych atutów bycia herosami okazują się nimi być, dokonując nie głupich Bohaterskich Czynów, a po prostu czynów bez których coś nie stałoby się tak jak powinno. Po prostu lubię takiego Mau z Nacji za to, że "wydoił" świnię by zdobyć trochę mleka dla dziecka.
U Asimova lubię tropy, to jak połączył Roboty z Imperium i z Fundacją, za Powiew Śmierci i intrygę. Clarka lubię za Clarkowatość, za książki które trzymają się fizyki i które w wielu miejscach można niemal przeliczyć.
Ale to wszystko tylko tropy, te same tropy u innych są takie jakieś nieteges.
Stąd ciągle się cieszę, że "moi" autorzy są lepszymi pisarzami niż ja czytelnikiem ;-) bo chociaż nie do końca wiem czemu lubię ich książki to jednak je lubię, a to sprawia mi olbrzymią radość :-)
Podobne postybeta
Książki, książeczki, książunie ;-)
eBook - jak na razie się nie opłaca
O! "Ostatnie Twierdzenie" Arthura C. Clarke'a po polsku :-)
Najmocniejszy "żart" Prima Aprilisowy
Im gęściej dobrych programistów, tym gęściej Linuksa
niedziela, kwietnia 21, 2013
Podły zielony portal...
Postawili drania blisko mojej miejsca spania ale nie mogę go na razie zniszczyć bo mi się XMP skończyły :-(

Ale idę posępić na innych portalach, a nóż coś uzbieram ;-)

Ale idę posępić na innych portalach, a nóż coś uzbieram ;-)
posted from Bloggeroid
Podobne postybeta
A takie tam ;-)
Sen daje dobry humor ;-)
Dziwne.
Sposób na upierdliwych użyszkodników
Seriale na podstawie gier... na razie 2 się udały ;-)
sobota, kwietnia 20, 2013
Długa Ziemia vs Wysokie Megi...
Ciekawa sprawa, w Mgnieniu Ekranu, czyli zbiorze opowiadań Terry'ego Pratchett'a jest opowiadanie Wysokie Megi.
Podobne postybeta
Cieszę się, że autorzy których czytują są lepszymi psiarzami niż ja czytelnikiem :-)
Seriale na podstawie gier... na razie 2 się udały ;-)
Kombatanctwo JavaScript'owe ;-)
Marudzenie nocne ;-)
Żenada....
Wysokie Megi to pierwowzór dla Długiej Ziemi. Pratchett napisał je w 1986 roku co przeczy mojemu przypuszczeniu, że za pomysłem stał Stephen Baxer ;-)
Co jest jeszcze ciekawsze to wydaje mi się, że opowiadanie jest lepsze od książki.
Książka jest taka jakby nierówna, z jednej strony bardzo ciekawy pomysł na oboczne Ziemie, z drugiej całkiem nieźle to wszystko jest napisane, ale czegoś brakuje. W opowiadaniu zaś wszystko to jest w odpowiednich ilościach...
W książce trzeba czekać chyba na kolejne części cyklu...
W książce jest wiele ciekawych wątków, które są ale nie do końca wiadomo po co, w finale się wcale nie łączą, a pozostają nawet bardziej otwarte.
Bo niby za wybuchem jądrowym na Ziemi 0 stoi syn ludzi, którzy odeszli do innej, dalekiej Ziemi o której to rodzinie czytamy wcześniej i którą to rodzinę spotyka główny bohater, ale jakoś to się wszystko nie styka.
"Istota" (nie pomnę jej nazwy, a że czytałem na razie tylko oryginał to pewnie jest też inna niż ta w oryginale, a znów pisanie Żeluś też nie do końca pasuje ;-)) która się w książce pojawia też nie jest jakoś związana.... a szarzy aka elfy... w książce jest nadmiar wątków i brakuje im tylko jakiegoś połączenia.
Wysokie megi przez to jawią się jako coś lepszego niż Długa Ziemia.
Ale to się może zmienić gdy pojawi się Długa Wojna czyli kolejna część cyklu ;-)
Podobne postybeta
Cieszę się, że autorzy których czytują są lepszymi psiarzami niż ja czytelnikiem :-)
Seriale na podstawie gier... na razie 2 się udały ;-)
Kombatanctwo JavaScript'owe ;-)
Marudzenie nocne ;-)
Żenada....
czwartek, kwietnia 18, 2013
Potworność ;-) czyli mnożenie w 90 liniach ;-)
Bez zbędnych ceregieli od razu kod ;-)
Do jego wykonania najlepiej użyć opisanej w poprzednim poście maszyny wirtualnej ;-)
UWAGA! Przed uruchomieniem dobrze jest wstawić 2 wartości na stos ;-)
Nie należy przesadzać, bo jednak to nie jest zbyt optymalna maszyna ;-) Wyniki są podawane na stosie, jest to (A*B) mod 16 ale taki już urok mojej maszyny ;-)
Jak to działa?
A prosto :-) mnożenie jest zastąpione przez serię dodawań :-)
2*3 to nic innego jak 2+2+2, a 4*2 to 4+4. Czyli w MUL mamy dodawanie pierwszego operandu tyle razy ile wynosi drugi operand.
Dodawanie działa podobnie, pierwszą liczbę zwiększamy aż wykonamy tyle tych zwiększeń ile wynosi drugi operand.
Obie funkcje korzystają z podprogramu EQ, który sprawdza czy dwie liczby są sobie równe. Robi to tak, że dodaje do obu liczb 1 i czeka aż druga z nich będzie równa 0 (czyli przekręci się licznik), wtedy sprawdza czy pierwsza też jest równa 0, jeśli tak to zwraca 1, w przeciwnym przypadku zwraca 0 :-)
Po co to wszystko? A bo można :-)
Podobne postybeta
Jak zrobić dec mając tylko inc? :-)
DEC z INC odpowiedź i mała Maszyna Wirtualna ;-)
Pomnóżmy sobie duże liczby ;-)
Lubię bity, czyli jak dodawać, odejmować, mnożyć i dzielić na bitach ;-)
Chorowanie jest do bani, czyli wspomnienia z L4... które trwa ;-)
Q: DAT 0
A: DAT 0
B: DAT 0
Z: DAT 0
MUL: POPA
STA A
POPA
STA B
ZERO
STA R
STA Q
LDA B
LOOP LMUL2
ZERO
PUSHA
RET
LMUL2: LDA Q
INC
STA Q
LDA R
PUSHA
LDA A
PUSHA
CALL ADD
POPA
STA R
LDA Q
PUSHA
LDA B
PUSHA
CALL EQ
POPA
LOOP MULEND
INC
LOOP LMUL2
MULEND: LDA R
PUSHA
RET
X: DAT 0
Y: DAT 0
Z: DAT 0
ADD: POPA
STA X
POPA
STA Y
L1: LDA Y
LOOP L2
INC
LOOP L5
L2: ZERO
STA Z
L4: LDA Z
INC
STA Z
PUSHA
LDA X
INC
STA X
LDA Y
PUSHA
CALL EQ
POPA
LOOP L5
INC
LOOP L4
L5: LDA X
PUSHA
RET
X1: DAT 0
X2: DAT 0
EQ: POPA
STA X1
POPA
STA X2
LL1: LDA X1
INC
STA X1
LDA X2
INC
STA X2
LOOP LL1
LDA X1
LOOP NON_EQ
ZERO
INC
PUSHA
RET
NON_EQ: ZERO
PUSHA
RETDo jego wykonania najlepiej użyć opisanej w poprzednim poście maszyny wirtualnej ;-)
UWAGA! Przed uruchomieniem dobrze jest wstawić 2 wartości na stos ;-)
Nie należy przesadzać, bo jednak to nie jest zbyt optymalna maszyna ;-) Wyniki są podawane na stosie, jest to (A*B) mod 16 ale taki już urok mojej maszyny ;-)
Jak to działa?
A prosto :-) mnożenie jest zastąpione przez serię dodawań :-)
2*3 to nic innego jak 2+2+2, a 4*2 to 4+4. Czyli w MUL mamy dodawanie pierwszego operandu tyle razy ile wynosi drugi operand.
Dodawanie działa podobnie, pierwszą liczbę zwiększamy aż wykonamy tyle tych zwiększeń ile wynosi drugi operand.
Obie funkcje korzystają z podprogramu EQ, który sprawdza czy dwie liczby są sobie równe. Robi to tak, że dodaje do obu liczb 1 i czeka aż druga z nich będzie równa 0 (czyli przekręci się licznik), wtedy sprawdza czy pierwsza też jest równa 0, jeśli tak to zwraca 1, w przeciwnym przypadku zwraca 0 :-)
Po co to wszystko? A bo można :-)
Podobne postybeta
Jak zrobić dec mając tylko inc? :-)
DEC z INC odpowiedź i mała Maszyna Wirtualna ;-)
Pomnóżmy sobie duże liczby ;-)
Lubię bity, czyli jak dodawać, odejmować, mnożyć i dzielić na bitach ;-)
Chorowanie jest do bani, czyli wspomnienia z L4... które trwa ;-)
DEC z INC odpowiedź i mała Maszyna Wirtualna ;-)
Wczoraj zastanawiałem się czy mój pomysł na implementację DEC przy pomocy INC opierający się na obróceniu licznika działa.
Stwierdziłem, że nic tak dobrze nie działa jak uruchomienie programu wynikowego i dlatego popełniłem małą Maszynę Wirtualną dla mojego własnego assemblera ;-)
Wygląda ona tak:
W polu Program mamy program ;-) w Stack mamy stos danych, obok jest krótki opis poszczególnych instrukcji.
Program kończy się wykonywać po 10 tysiącach kroków, albo gdy zrobimy RET który nie miał CALL.
By wykonać program klikamy Execute, na końcu w Stack jest ostateczny wygląd stosu (momentami nie działa tak jak powinien), w Accumulator jest stan akumulatora a w Memory stan pamięci (tylko labelki, które odpowiadają instrukcji DAT).
Warto zwrócić uwagę, że mój VM jest 4 bitowy ;-) tzn. pracuje na 4 bitowych INTach, przy większych DEC działał zbyt wolno ;-)
I teraz już wiem, że mój poprzedni program miał błąd :-) ale tylko mięczaki bazują na kartce papieru ;-) [OK, żartuję, to że mam problemy z kartką źle świadczy o mnie, nie o metodzie].
Ale co miałem zabawy pisząc sobie tą "maszynę wirtualną" to moje ;-)
Update:
Oczywiście da się to samo co wyżej jest w maszynie wirtualnej zrobić prościej i szybciej ;-)
O tak:
A: DAT 1
B: DAT 0
POPA
STA B
L1: LDA B
INC
STA B
LDA A
INC
STA A
LOOP L1
LDA B
PUSHA
RET
Przecież zamiast robić dziwne rzeczy w stylu dodawaniu 15 razy, można zwiększać 1 aż będzie równe 0, wtedy wartość zwiększana wraz z nim będzie o dokładnie 1 mniejsza niż była na początku ;-)
Polecam przekleić ten programik do maszyny i sprawdzić :-)
Podobne postybeta
Jak zrobić dec mając tylko inc? :-)
Potworność ;-) czyli mnożenie w 90 liniach ;-)
.asm - to było fajne rozszerzenie plików z programami ;-)
Mózg jako komputer
Seek & Click - automagicznie wykryj buttona i na niego kliknij ;-)
Stwierdziłem, że nic tak dobrze nie działa jak uruchomienie programu wynikowego i dlatego popełniłem małą Maszynę Wirtualną dla mojego własnego assemblera ;-)
Wygląda ona tak:
W polu Program mamy program ;-) w Stack mamy stos danych, obok jest krótki opis poszczególnych instrukcji.
Program kończy się wykonywać po 10 tysiącach kroków, albo gdy zrobimy RET który nie miał CALL.
By wykonać program klikamy Execute, na końcu w Stack jest ostateczny wygląd stosu (momentami nie działa tak jak powinien), w Accumulator jest stan akumulatora a w Memory stan pamięci (tylko labelki, które odpowiadają instrukcji DAT).
Warto zwrócić uwagę, że mój VM jest 4 bitowy ;-) tzn. pracuje na 4 bitowych INTach, przy większych DEC działał zbyt wolno ;-)
I teraz już wiem, że mój poprzedni program miał błąd :-) ale tylko mięczaki bazują na kartce papieru ;-) [OK, żartuję, to że mam problemy z kartką źle świadczy o mnie, nie o metodzie].
Ale co miałem zabawy pisząc sobie tą "maszynę wirtualną" to moje ;-)
Update:
Oczywiście da się to samo co wyżej jest w maszynie wirtualnej zrobić prościej i szybciej ;-)
O tak:
A: DAT 1
B: DAT 0
POPA
STA B
L1: LDA B
INC
STA B
LDA A
INC
STA A
LOOP L1
LDA B
PUSHA
RET
Przecież zamiast robić dziwne rzeczy w stylu dodawaniu 15 razy, można zwiększać 1 aż będzie równe 0, wtedy wartość zwiększana wraz z nim będzie o dokładnie 1 mniejsza niż była na początku ;-)
Polecam przekleić ten programik do maszyny i sprawdzić :-)
Podobne postybeta
Jak zrobić dec mając tylko inc? :-)
Potworność ;-) czyli mnożenie w 90 liniach ;-)
.asm - to było fajne rozszerzenie plików z programami ;-)
Mózg jako komputer
Seek & Click - automagicznie wykryj buttona i na niego kliknij ;-)
środa, kwietnia 17, 2013
Jak zrobić dec mając tylko inc? :-)
Tak mnie to męczyło...
Wymyśliłem sobie prosty "język" w którym mam:
LDA X - load to accumulator (ładuje to co w pamięci pod X do akumulatora)
STA X - store accumulator (zapisuje do pamięci pod X to co w akumulatorze)
INC - increment, czyli zwiększenie wartości akumulatora o 1
ZERO - zeruje akumulator
LOOP X - skacze pod X jeśli akumulator nie jest równy 0
PUSHA - odkłada wartość akumulatora na stos
POPA - pobiera wartość akumulatora na stos
CALL X - woła "podprogram", odkłada aktualny adres na stos (drugi żeby było prościej) i skacze do X
RET - pobiera wartość z drugiego stosu i wraca do następnego adresu
DAT val - wartość val
Są do tego 2 stosy, jeden dla danych, drugi dla adresów.
No i DEC wyobrażam sobie jakoś tak:
COUNT: DAT 0
X: DAT 0
VAL_65535: DAT 65535
DEC: POPA
STA X
ZERO
STA COUNT
L1: LDA X
INC
STA X
LDA COUNT
INC
STA COUNT
PUSHA
LDA VAL_65535
PUSHA
CALL EQ
POPA
LOOP L2
ZERO
LOOP L1
L2: LDA X
POPA
RET
Użyty jest tu "podprogram" EQ sprawdzający równość:
X: DAT 0
Y: DAT 0
EQ: POPA
STA X
POPA
STA Y
EQ1: LDA X
INC
STA X
LDA Y
INC
STA Y
LOOP EQ1
LDA X
LOOP NON_EQ
ZERO
INC
PUSHA
RET
NON_EQ:
ZERO
PUSHA
RET
I teraz pytanie, da się prościej? :-)
Bo mnie się moje rozwiązanie nie podoba, a jakoś blisko 2 w nocy nie mam pomysłu na coś lepszego ;-)
Cała idea mojego programiku opiera się na przekręceniu licznika, czyli zwiększamy X i licznik, gdy licznik osiągnie zadaną wartość to znaczy, że nasza liczba to teraz X' = (X+VAL_65535)%65536=X'-1 (zakładam 16 bitowe liczby).
Do tego programik EQ działa tak, że zwiększa X i Y aż Y będzie równy 0, wtedy ładuje X i sprawdza czy X też jest równe 0 jeśli tak to zwróci 1, jeśli nie to zwróci 0.
Jest jeszcze to, że nie do końca mam pewność, że mój DEC robi to co powinien, ale jak na razie nie miałem siły by napisać symulator ;-)
Na kartce sprawdzałem dla liczb 3 bitowych i wydaje mi się, że DEC powinien działać... ale pewności nie mam :-)
Podobne postybeta
Potworność ;-) czyli mnożenie w 90 liniach ;-)
DEC z INC odpowiedź i mała Maszyna Wirtualna ;-)
Jak z metody size() w List w Java'ie dostać ujemną liczbę? ;-)
A takie tam ;-)
.asm - to było fajne rozszerzenie plików z programami ;-)
Wymyśliłem sobie prosty "język" w którym mam:
LDA X - load to accumulator (ładuje to co w pamięci pod X do akumulatora)
STA X - store accumulator (zapisuje do pamięci pod X to co w akumulatorze)
INC - increment, czyli zwiększenie wartości akumulatora o 1
ZERO - zeruje akumulator
LOOP X - skacze pod X jeśli akumulator nie jest równy 0
PUSHA - odkłada wartość akumulatora na stos
POPA - pobiera wartość akumulatora na stos
CALL X - woła "podprogram", odkłada aktualny adres na stos (drugi żeby było prościej) i skacze do X
RET - pobiera wartość z drugiego stosu i wraca do następnego adresu
DAT val - wartość val
Są do tego 2 stosy, jeden dla danych, drugi dla adresów.
No i DEC wyobrażam sobie jakoś tak:
COUNT: DAT 0
X: DAT 0
VAL_65535: DAT 65535
DEC: POPA
STA X
ZERO
STA COUNT
L1: LDA X
INC
STA X
LDA COUNT
INC
STA COUNT
PUSHA
LDA VAL_65535
PUSHA
CALL EQ
POPA
LOOP L2
ZERO
LOOP L1
L2: LDA X
POPA
RET
Użyty jest tu "podprogram" EQ sprawdzający równość:
X: DAT 0
Y: DAT 0
EQ: POPA
STA X
POPA
STA Y
EQ1: LDA X
INC
STA X
LDA Y
INC
STA Y
LOOP EQ1
LDA X
LOOP NON_EQ
ZERO
INC
PUSHA
RET
NON_EQ:
ZERO
PUSHA
RET
I teraz pytanie, da się prościej? :-)
Bo mnie się moje rozwiązanie nie podoba, a jakoś blisko 2 w nocy nie mam pomysłu na coś lepszego ;-)
Cała idea mojego programiku opiera się na przekręceniu licznika, czyli zwiększamy X i licznik, gdy licznik osiągnie zadaną wartość to znaczy, że nasza liczba to teraz X' = (X+VAL_65535)%65536=X'-1 (zakładam 16 bitowe liczby).
Do tego programik EQ działa tak, że zwiększa X i Y aż Y będzie równy 0, wtedy ładuje X i sprawdza czy X też jest równe 0 jeśli tak to zwróci 1, jeśli nie to zwróci 0.
Jest jeszcze to, że nie do końca mam pewność, że mój DEC robi to co powinien, ale jak na razie nie miałem siły by napisać symulator ;-)
Na kartce sprawdzałem dla liczb 3 bitowych i wydaje mi się, że DEC powinien działać... ale pewności nie mam :-)
Podobne postybeta
Potworność ;-) czyli mnożenie w 90 liniach ;-)
DEC z INC odpowiedź i mała Maszyna Wirtualna ;-)
Jak z metody size() w List w Java'ie dostać ujemną liczbę? ;-)
A takie tam ;-)
.asm - to było fajne rozszerzenie plików z programami ;-)
Subskrybuj:
Posty (Atom)




















