-
81. Data: 2017-05-03 10:40:31
Temat: Re: arduino, początki, inny edytor
Od: "HF5BS" <h...@...pl>
Użytkownik "slawek" <f...@f...com> napisał w wiadomości
news:almarsoft.8174952577351404959@news.v.pl...
> On Wed, 3 May 2017 03:29:15 +0200, "HF5BS" <h...@...pl> wrote:
>> QBasic ma z kolei inny problem - działa ślicznie, zapisałem 26 GB
> do pliku
>> (oczywiście, ćwiczebnie, zawsze najpierw sprawdzam, nauczony
> smutnymi
>> doświadczeniami, czy mi program nie da rzyci, w najmniej
> odpowiednim
>> momencie). No, zapisało się, a teraz, Waść, zamknij plik. Powodzen
> ia, ślepa
>> Gienia, kup se trąbk...Aj, to nie teraz... cholera,
>
> Hardcore to kill program (przez odłączenie zasilanie też można) i
I czasem sie robi. Ale NT (czyli XP też) jest cwany i bywa, że nawet to nie
spowoduje sprawdzenia dysku, nawet ręczne popchnięcie wiele nie da.
> puszczanie potem chkdsk do fixacji dysku. Na 95% znajdzie i odzyska 26 GB
> plik. I to będzie to.
Tylko teraz, jaki to miało bufor, coby profilaktycznie dopchnąć tyle
(później się obetnie) tyle, aby wszystko, co nas interesuje, znalazło się w
pliku. Już w C64 ten problem występował, tyle, że wiadomo było, ile dać
nadmiaru, żeby było z czego obcinać. No i ręczne zamknięcie pliku bardziej
skomplikowane, bo całkowicie ręcznie, bądź odpowiednim programem (ja zwykle
ręcznie załatwiałem, wspomagając się jedynie programikiem, który sczytywał
mi odpowiedni sektor, a to tylko po to, żeby w ogóle wiedzieć, gdzie jest
wpis, który trzeba zmodyfikować, potem przestawienie bitu 7 (jego znaczenie
0 - plik otwarty, 1 - zamknięty) w znaczniku rodzaju pliku i już, na koniec
"validate" dla odświeżenia BAM.
NTFS, jako system z atomowymi operacjami zapisu, średnio daje się
sprowokować do zrobienia automatycznie chkdsk, zwykłym wyłączeniem
zasilania. Ale jest prosty sposób, z wiersza poleceń/okna "DOS"owego
zapodać:
fsutil dirty set <volumin>
gdzie <volumin>, to litera, albo ścieżka zamontowania zasobu.
I wtedy pyk hebel...
Przyznam, że muszę poćwiczyć, choć jak wtedy próbowałem, to chyba nawet nie
bardzo trzeba, bo przy zapisie sekwencyjnym nie ma zadeklarowanej długości
pliku i nie jest ona rezerwowana, jak w sytuacji, gdy wiadomo (no, system
musi wiedzieć przecież, sama nasza wiedza nie styknie), że "zapisujemy
4294967295 bajtów danych". A to się wiąże z tym, że do pliku dane dopisuje
się (nasz QBasic DOSowy) na bieżąco (i nawet nie wiem, czy to się w
przerwach między porcjami samo nie jakby nie zamyka... (nie chodzi o
BASICowe CLOSE, bo to się zrobić nie daje)) i tylko ten bufor, aby nadmiarem
zepchnąć jego zawartość na nośnik. A dopilnować trzeba, bo czasem ten
ostatni bajt najbardziej znaczy... taka przewrotność losu, jak np. archiwum
rozpakować nie zechce...
--
"Jeśli przyjmiesz do siebie zabiedzonego psa i sprawisz,
że zacznie mu się dobrze powodzić - nie ugryzie cię.
Na tym polega zasadnicza różnica między psem a człowiekiem"
(C) Mark Twain
-
82. Data: 2017-05-03 10:53:37
Temat: Re: arduino, początki, inny edytor
Od: Sebastian Biały <h...@p...onet.pl>
On 5/2/2017 7:28 PM, slawek wrote:
> On Tue, 2 May 2017 15:23:41 +0200, "HF5BS" <h...@...pl> wrote:
>> po prostu potrzeba więcej dyscypliny. Długo "bawiłem się" dialektem
> z C64
>> (taki sam dialekt, jak VIC-20), wzięty zresztą od M$,
>
> Chyba starszy niż MS, bo na początku lat 70-tych był już taki, a MS nie
> było przed 1975. BASICA i QBASIC były nieco inne niż to co miał C64
> zeszyte w ROM.
Producentem BASICa doa Commodore był MS. Historia sięga PETa i jest ciekawa:
http://www.pagetable.com/?p=43
Inne popularne maszyny jak Atari i Zx Spectrum miały wlasny basic, ale
Microsoft zdominował wtedy rynek komputerów 8-bit swoim basicem i wiele
maszyn go miało jako standardowy. Dodatkowo Atari miało feler (wszystko
na floating point) i zx (tokenizacja jednostka białkową).
-
83. Data: 2017-05-03 11:01:22
Temat: Re: arduino, początki, inny edytor
Od: "HF5BS" <h...@...pl>
Użytkownik "slawek" <f...@f...com> napisał w wiadomości
news:almarsoft.3637783890851740928@news.v.pl...
> On Wed, 3 May 2017 02:34:37 +0200, "HF5BS" <h...@...pl> wrote:
>> Aha... z równoległego wątku?
>
> I po to są komentarze. Bez komentarza fragment w którym dodaje się a+b
> wygląda na nudny, wręcz niepotrzebny. Komentarz zwraca uwagę na kontekst i
> ważność komentowanego fragmentu.
No to jasne, że wtedy jakoś trzeba temat zaznaczyć, żeby się kuku nie stało.
Wtedy jest to zdecydowanie potrzebne, coś jak znak "Zwolnij" na prostej
szosie postawiony, bo np. dzikie zwierzęta, czy śliska nawierzchnia, a zrobi
co zechce, tylko konsekwencje mogą być, że okoliczne drzewo zmieni się w
drewnianą jesionkę.
Jak ja to rozumiem, obrazowo, nie w języku programowania, czyli pseudokodem,
mniejsza o elegancję i prawidłowość.
najprościej:
NAPISZ 2+2
Nieco bardziej:
a=2
b=2
NAPISZ a+b
Bardziej:
Deklaracja zmiennych:
a - zmiennoprzecinkowa pojedyncza
b - całkowita
REM (czasem tak trzeba, niektóre kompilatory dają radę)
a=2
b=2
NAPISZ a+b
I już przerost formy nad treścią:
Program dodający dwie różne liczby, "a" i "b"
Deklaracja zmiennych:
a - zmienna zmiennoprzecinkowa podwójnej precyzji
b - zmienna zmiennoprzecinkowa podwójnej precyzji
REM dobra, już nie dziwaczę, niech typy będą jednakowe
a=2
REM zmiennej a nadano wartość 2, aby następnie poddać ją działaniu dodawania
b=2
REM zmiennej b nadano wartość 2, aby następnie poddać ją działaniu dodawania
NAPISZ a+b
REM dodano zmienne a oraz b, aby uzyskać wynik ich dodawania, w wyniku
działania dodawania wyprowadzona została ich suma, ukazująca wynik
dodawania.
Ja głosuję za przykładem pierwszym. Ewentualnie drugim, jeśli wartości będą
sie zmieniać. Mogę też, zamiast wpisywania w treść programu, zapodać komendę
przyjmującą dane z zewnątrz, za każdym odpaleniem programu.
W przypadkach, o jakich mówisz, zgadzam się na opcję nr 3, bo jesli mamy
uniknąć konfliktu interesów, to trzeba to zaznaczyć.
Ale już nr 4 wydaje się być przegięciem, gdzie przykład drugi obrósł
nadmiernie, wręcz zaciemniając program.
>
> Nota bene, MS zdarzyło się nie przywracać stanu FPU przy
Domyślam się, że konsekwencje potrafiły być bolesne...?
> przełączeniach pomiędzy zadaniami. Na szczęście natychmiast był patch.
To załatano. Ale wiele innych rzeczy "od narodzin po śmierć" było
pokrzywione i nadal jest, mniej, lub bardziej... o ile o tej samej
"dziedzinie" gadamy.
--
"Jeśli przyjmiesz do siebie zabiedzonego psa i sprawisz,
że zacznie mu się dobrze powodzić - nie ugryzie cię.
Na tym polega zasadnicza różnica między psem a człowiekiem"
(C) Mark Twain
-
84. Data: 2017-05-03 11:21:37
Temat: Re: arduino, początki, inny edytor
Od: "HF5BS" <h...@...pl>
Użytkownik "slawek" <f...@f...com> napisał w wiadomości
news:almarsoft.6098016854069617109@news.v.pl...
> On Wed, 3 May 2017 03:29:15 +0200, "HF5BS" <h...@...pl> wrote:
>> Ale musiałeś mieć chyba czytnik? Bo same z kart raczej nie
> spłynęły...
>
> Napęd taśm półcalowych dla PC. To do danych.
No, faktycznie... WIem, że do Komody cuda podłączano. Podobno kiedyś komuś
udało się (chyba w Bajtku pisali) podłączyć dwużyłowo dalekopis bezpośrednio
z portu rozszerzeń, sterując jakąś linię. (co wobec C64 jest raczej
nieostrożnością... ale skoro ruszyło, o ile to nie była bajka)
>
> A programy? Przepisanie paru tysięcy linijek to nie jest aż tak wielki
> problem. Być może niektóre były przepompowne przez port szeregowy: coś
> elektrycznie zgodnego było jeżeli nie w Odrze to w PDP11, w 8-bitowcach
> takich jak C64, Atari itp.
W sumie RS chyna jest standardem, więc przepompować, czemu nie?
>
> Internetu nie było. Ale dyskietki były. Chyba nawet C64 dawał radę
> zapisywać w FS FAT. Z drugiej strony nie było ograniczeń prawnych i
Owszem, choć nie tak najprościej. FAT jest bardzo prostym algorytmem (tak go
teraz określę), każda część ma swoje miejsce w strukturach, więc w sasadzie
wystarczy umiejętnie powachlować wektorami, wskaźnikami i jedziemy. FS, jako
wyższy w warstwie, dawał się załatwiać przez działanie zwykłego programu.
Sama stacja 1541 nie umiała sektorów MFM i jesli, to trzeba by to realizować
maszynowo, ale nie wiem, czy komuś się to udało, kodowała jedynie GCR.
Natomiast 1570/-1/-2, umiały już MFM, przełączało się jedną komendą (miały
OIDP kontroler, który umie MFM) i dawało się ponoc czytać dyskietki 360 kB,
w stacji 157x. Jednak między dyskietkami MFM dla PC i GCR dla Commodore była
inna, istotna różnica, dyskietki PC miały sektory 512 bajtów, a Commodore
256, przy czym jedynie 254 było dla danych, a dwa pierwsze bajty były
wektorem, wskazującym na następny w pliku sektor z jego zawartością. Bajt
zerowy na pozycji zero oznaczał, że to ostatni sektor, a bajt 1, był
lokalnym wektorem wskazującym, który bajt sektora jest ostatnim bajtem
pliku. Komenda validate powodowała skan wszystkich plików, wylistowanie
wektorów i odpowiednią modyfikację BAM, co zapobiegało uszkodzeniu dabych w
przypadku niezgodności. Nie wolno było wykonywać porządkowania na plikach o
dostępie swobodnym, gdyż powodowało ich uszkodzenie (nie udało mi się
rozkminić, jak działał mechanizm plików "REL", resztę rozgryzłem).
> wirusów, a to stwarzało możliwości których obecnie nie ma.
Bayerische HackerPost, wirus na komodę... Nie trafił mnie, podobno u
Niemców, jak nazwa wskazuje, roznosił się, w programach maszynowych. W
BASICu, rzecz jasna, nie miał jak się roznieść, ale wystarczyło coś
maszynowego i jedziem, nie pamiętam, jak się doklejał. A to nie jedyny na
C64.
http://csdb.dk/release/?id=49101 Tu coś mam, ale na razie nie zbadam, czy to
ma jakiś związek z rzeczywistym zagrożeniem.
--
"Jeśli przyjmiesz do siebie zabiedzonego psa i sprawisz,
że zacznie mu się dobrze powodzić - nie ugryzie cię.
Na tym polega zasadnicza różnica między psem a człowiekiem"
(C) Mark Twain
-
85. Data: 2017-05-03 11:39:38
Temat: Re: arduino, początki, inny edytor
Od: "HF5BS" <h...@...pl>
Użytkownik "HF5BS" <h...@...pl> napisał w wiadomości
news:oec7ev$nlq$1@node1.news.atman.pl...
> W sumie RS chyna jest standardem, więc przepompować, czemu nie?
"CHYBA"... rany, jak ja nie cierpię robić literówek...
--
"Jeśli przyjmiesz do siebie zabiedzonego psa i sprawisz,
że zacznie mu się dobrze powodzić - nie ugryzie cię.
Na tym polega zasadnicza różnica między psem a człowiekiem"
(C) Mark Twain
-
86. Data: 2017-05-03 14:03:41
Temat: Re: arduino, początki, inny edytor
Od: ToMasz <t...@p...fm.com.pl>
fajnie się Was czyta, ale co powiecie na takie coś:
char key = keypad.waitForKey(); //czekaj na naciśnięcie klawisza
Serial.println(key); //wyświetl co zostało naciśnięte
no i działa pięknie. wciskam 1 na klawiaturce, na ekranie pojawia się 1.
jak wcisnę 2 to na ekranie "wyskoczy" 2. Niestety na wyświetlaniu się
kończy. Problem pojawia się przy próbie wykorzystania zmiennej "Key" w
matematyce, gdyż "1" z klawiatury, zapamiętuje się jako key = 48. Chwała
Bogu że 2 to 49, 3 to 50, więc szybko problem "obszedłem", ale nie
rozwiązałem. nie wiem dlaczego arduino tak "robi"
ToMasz
-
87. Data: 2017-05-03 14:50:17
Temat: Re: arduino, początki, inny edytor
Od: Sebastian Biały <h...@p...onet.pl>
On 5/3/2017 2:03 PM, ToMasz wrote:
> char key = keypad.waitForKey(); //czekaj na naciśnięcie klawisza
> Serial.println(key); //wyświetl co zostało naciśnięte
> no i działa pięknie. wciskam 1 na klawiaturce, na ekranie pojawia się 1.
> jak wcisnę 2 to na ekranie "wyskoczy" 2. Niestety na wyświetlaniu się
> kończy. Problem pojawia się przy próbie wykorzystania zmiennej "Key" w
> matematyce, gdyż "1" z klawiatury, zapamiętuje się jako key = 48.
http://www.asciitable.com/
mylisz reprezentację graficzna z wartością. Zastanów sie przez chwile co
miało by sie pojawić jak wciśniejsz a.
-
88. Data: 2017-05-03 14:55:16
Temat: Re: arduino, początki, inny edytor
Od: Piotr Dmochowski <i...@p...onet.pl>
W dniu 2017-05-03 o 14:03, ToMasz pisze:
> fajnie się Was czyta, ale co powiecie na takie coś:
>
> char key = keypad.waitForKey(); //czekaj na naciśnięcie klawisza
> Serial.println(key); //wyświetl co zostało naciśnięte
>
> no i działa pięknie. wciskam 1 na klawiaturce, na ekranie pojawia się 1.
> jak wcisnę 2 to na ekranie "wyskoczy" 2. Niestety na wyświetlaniu się
> kończy. Problem pojawia się przy próbie wykorzystania zmiennej "Key" w
> matematyce, gdyż "1" z klawiatury, zapamiętuje się jako key = 48. Chwała
> Bogu że 2 to 49, 3 to 50, więc szybko problem "obszedłem", ale nie
> rozwiązałem. nie wiem dlaczego arduino tak "robi"
>
Tak robi bo mu tak kazałeś ;)
W definicji klawiszy prawdopodobnie użyłeś znaków a nie cyfr, więc
funkcja zwraca numer znaku w tabeli ASCII. Przykład z tutoriala:
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'#','0','*'}
};
Zgodnie z tablicą ASCII jedynka ma numer 49 i taka liczba jest zapisana
w zmiennej key.
Gdyby w tablicy keys była 1 zamiast '1' to łatwiej byłoby liczyć, ale na
porcie szeregowym byłyby krzaki.
--
Pozdrawiam
Piotrek
-
89. Data: 2017-05-03 15:55:08
Temat: Re: arduino, początki, inny edytor
Od: "HF5BS" <h...@...pl>
Użytkownik "ToMasz" <t...@p...fm.com.pl> napisał w wiadomości
news:oecgor$2du$1@dont-email.me...
> fajnie się Was czyta, ale co powiecie na takie coś:
>
> char key = keypad.waitForKey(); //czekaj na naciśnięcie klawisza
> Serial.println(key); //wyświetl co zostało naciśnięte
>
> no i działa pięknie. wciskam 1 na klawiaturce, na ekranie pojawia się 1.
> jak wcisnę 2 to na ekranie "wyskoczy" 2. Niestety na wyświetlaniu się
> kończy. Problem pojawia się przy próbie wykorzystania zmiennej "Key" w
> matematyce, gdyż "1" z klawiatury, zapamiętuje się jako key = 48. Chwała
> Bogu że 2 to 49, 3 to 50, więc szybko problem "obszedłem", ale nie
> rozwiązałem. nie wiem dlaczego arduino tak "robi"
Wszędzie tak masz.
Na szybko, więc mało eleganckie i ze znienawidzonym GOTO, ale prościej się
nie da:
10 a$=INKEY$: REM w różnych dialektach jest to bardzo różnie
20 PRINT a$;: GOTO 10
A jeszcze prościej, nie wszystkie dialekty pozwalają tak łatwo:
10 PRINT INKEY$: GOTO 10
Z "debagiem":
10 a$=INKEY$: IF a$="" THEN 10:REM lub GOTO 10, powinno być, aby tekst nie
latał po ekranie
20 PRINT "Znakowi ";a$;" odpowiada kod ASCII";ASC(a$+CHR$(0))
30 GOTO 10
Tak wygląda sprawa, dlaczemu tu i tam widzisz inne wartości.
--
"Jeśli przyjmiesz do siebie zabiedzonego psa i sprawisz,
że zacznie mu się dobrze powodzić - nie ugryzie cię.
Na tym polega zasadnicza różnica między psem a człowiekiem"
(C) Mark Twain
-
90. Data: 2017-05-03 16:37:18
Temat: Re: arduino, początki, inny edytor
Od: ToMasz <t...@p...fm.com.pl>
W dniu 03.05.2017 o 14:50, Sebastian Biały pisze:
> On 5/3/2017 2:03 PM, ToMasz wrote:
>> char key = keypad.waitForKey(); //czekaj na naciśnięcie klawisza
>> Serial.println(key); //wyświetl co zostało naciśnięte
>> no i działa pięknie. wciskam 1 na klawiaturce, na ekranie pojawia się 1.
>> jak wcisnę 2 to na ekranie "wyskoczy" 2. Niestety na wyświetlaniu się
>> kończy. Problem pojawia się przy próbie wykorzystania zmiennej "Key" w
>> matematyce, gdyż "1" z klawiatury, zapamiętuje się jako key = 48.
>
> http://www.asciitable.com/
>
> mylisz reprezentację graficzna z wartością. Zastanów sie przez chwile co
> miało by sie pojawić jak wciśniejsz a.
97. dzięki za naprowadzenie. klawiaturę numeryczną, bez literek, więc
nie pomyślałem o ascii....
ToMasz