1,751

(39 odpowiedzi, napisanych Bałagan)

Te mierniki UNI-T, które pokazał yamahalodz są bardzo fajne z takich tańszych. Warto tylko zwrócić uwagę, one występują w kilku odmianach, różnią się literką, chyba A,B,C,D - i każdy z nich ma tą samą podstawę V/A/R, ale każda z wersji ma dodatkowo coś tam jeszcze do wyboru, chyba temperaturę, lub pojemność, lub piszczyk, lub coś tam jeszcze, ale to tak nie wiem dokładnie co, tylko pamiętam, że jest ich kilka modeli.

1,752

(39 odpowiedzi, napisanych Bałagan)

No bo z tymi przyzwyczajeniami chodzi przede wszystkim o to, że do każdego miernika, jaki by on nie był, jest potrzebny odpowiedni operator, który potrafi odpowiednio dane zinterpretować. Natomiast do tzw. zastosowań domowych dla amatora będzie odpowiedni jakikolwiek podstawowy miernik, bo _każdy_ pokaże prawidłowo czy w gniazdku jest mniej-więcej 230V, czy w samochodzie jest ładowanie na akumulatorze, czy zasilacz Atari daje mniej-więcej 5V, i czy nie ma zwarcia między masą i zasilaniem, albo między nóżkami pamięci w rozszerzeniu SIMMexp:-)

1,753

(39 odpowiedzi, napisanych Bałagan)

Hehe:-) No widzisz, co człowiek to ma swoje przyzwyczajenia:-) Dlatego kupno miernika to jednak każdy powinien sam dobierać pod siebie. Ale podtrzymuję, że jak amatorsko do zastosowań domowych, to tak na prawdę może być jakikolwiek bądź miernik.

A tak swoją drogą, to dziwię się jer, że masz kłopot z piszczykiem w mierniku. Ja używam starego mernika, którego kupiłem sobie jeszcze w technikum jakieś 25 lat temu i on mi piszczy jak należy:-) I tu dochodzimy do jeszcze jednego aspektu: miernik stary, prosty, podstawowy, prymitywny - ale po tylu latach wiem dokładnie co i jak pokazuje, mam zaufanie do niego, a używając czasem nowych przyrządów współczesnych i tak sprawdzam i porównuję wskazania z moim starym wysłużonym, który stanowi dla mnie wzorzec:-)

1,754

(39 odpowiedzi, napisanych Bałagan)

Nie rozczulaj się nad tym aż tak bardzo i kup normalny miernik z Chin, najlepiej na aliexpress, bo za mniejsze pieniądze będziesz miał lepszą funkcjonalność.
Jak potrzebujesz do zastosowań domowych, to nie jakość Cię interesuje, tylko model i jego funkcje, bo jakość będzie wystarczająca dla Ciebie niemalże w każdym przypadku, zwłaszcza, że pisałeś o budżecie 200zł, co już jest sporą kwotą jak na amatorski miernik.
Zastanów się co będziesz mierzył, czy potrzebujesz pojemności, czy potrzebujesz indukcyjności, czy potrzebujesz częstotliwości, czy temperaturę itd. Podstawę, czyli napięcie, prąd i rezystancję ma każdy miernik, więc patrz na rzeczy dodatkowe. Patrz też czy ma "piszczyk" do sprawdzania przejść, bo wiele mierników nie ma tej podstawowej funkcji, a w zastosowaniach domowych jest to jak dla mnie jedna z podstawowych funkcji.
Idąc dalej, ja osobiście unikam mierników z automatycznymi zakresami, bo zanim taki miernik poszuka sobie zakresu, to ja już zrobię kilka pomiarów np. na płycie głównej Atari. Co więcej, niektóre mierniki z automatycznymi zakresami wymagają też przytrzymania i poczekania kilka ułamków sekund nawet przy sprawdzaniu przejść piszczykiem, co jest kompletną porażką, bo piszczyk musi piszczeć natychmiast.
W budżecie do 200zł pooglądaj sobie mierniki UNI-T, jest kilka modeli, jest w czym wybierać. Na ali niektóre to podróby, ale z tego co zauważyłem też nie ma to za bardzo znaczenia, bo są to klony identycznie skopiowane i działają wg opisów na forach tak samo jak oryginały. Ale jak nie szukasz żeby był o kilka groszy tańszy, to możesz kupić w Polsce w jakimś oficjalnym sklepie, dostaniesz wtedy oryginała.

1,755

(52 odpowiedzi, napisanych Fabryka - 8bit)

@ccwrc, to nie chodzi czy carty są od xangela, czy jakiekolwiek inne, z resztą ja mówię o innej płytce od xangela niż te Twoje kartridże z grami - chodzi o SDX z RTC, których xangel zrobił tylko kilka sztuk.
Chodzi o obciążenie magistral pojemnościami, co wpływa na kształty i długości zboczy sygnałów oraz przesunięcia ich timingów względem siebie, do tego dochodzą zakłócenia, więc i zasilacz ma w tym swój udział. Im bardziej rozszerzone Atari, tym bardziej problematyczne jest dokładanie czegokolwiek, w tym również zwykłych kartridży. Te tematy wracają jak bumerang, jest to kwestia konstrukcji Atari i konstrukcji rozszerzeń - dopóki magistrale nie są buforowane, dopóty każde gmeranie w magistralach niesie ze sobą różnorakie problemy.

1,756

(52 odpowiedzi, napisanych Fabryka - 8bit)

U mnie nie działał w przełączniku kartridż SpartaDOS X zrobiony na płytce od xangela, ale ten kartridż miewa też problemy w niektórych Atari bezpośrednio, więc raczej zwalam winę na kartridż niż na przełącznik.

1,757

(31 odpowiedzi, napisanych Sprzęt - 8bit)

Kto nie wysyła za granicę? Zaxon robi klony XF pod różnymi postaciami. Jak nie masz problemu z zakupem, to kup od niego jakąś wersję, wtedy będziesz miał cały komplet części na podmiankę i też sygnały do porównania.

1,758

(31 odpowiedzi, napisanych Sprzęt - 8bit)

No to nie wiem. A z podłączonym napędem objawy są takie same? Tzn. w sumie brak objawów... Tak w sumie ten filmik to za wiele nie mówi, wierzymy Ci na słowo, że masz selftest i że włączniki przełączasz właściwym palcem:-)
Bez narzędzi się tak na odległość nie da. Trzeba sprawdzić czy są sygnały zegarowe, czy Intel coś wystawia, żeby wiedzieć czy wykonuje program, czy pojawiają się jakieś sygnały w różnych miejscach, czy EPROM jest sprawny skoro podejrzewasz, że może nie być, czy napięcia są wszystkie poprawne, czy podstawki kontaktują, itd., itp. Być może trzeba mieć też jakieś układy na podmiankę do testów. Słowem pewnie łatwiej by Ci było skontaktować się z kimś z Twojej okolicy, kto ogarnie tą stacyjkę.

1,759

(31 odpowiedzi, napisanych Sprzęt - 8bit)

Wiesz co, tak sobie myślę, że nawet bez napędu powinien wstać EPROM wraz z elektroniką, a Intel powinien odpalić program i powinieneś w Atari zobaczyć menu Hyper-XF, które jeden raz zobaczyłeś. To menu odpala się jeżeli nie ma w stacji dyskietki, więc odpalaj stację bez dyskietki, żeby w pierwszej kolejności dojść chociaż do momentu, że Hyper-XF się odpala, a samym napędem zajmij się dopiero jak uzyskasz Hyper-XF na ekranie Atari. Słuchaj, a w jakiej kolejności włączasz sprzęt? Może to banał, ale najpierw włącza się zawsze stację, a dopiero później Atari. Musisz włączyć stację, dać jej chociaż z 5 sekund na odpalenie programu (choć dzieje się to o wiele szybciej) i dopiero włączyć komputer. Wtedy powinieneś zobaczyć na ekranie menu Hyper-XF.

Jeden raz zobaczyłeś Hyper-XF, więc założył bym, że wszystkie układy masz sprawne, a EPROM prawidłowo zaprogramowany. Szukał bym najprostszych rzeczy, czyli najpierw opisany wyżej motyw z kolejnością włączania sprzętu, a jeżeli wszystko robisz poprawnie, to szukał bym problemu w samych połaczeniach (zimne luty, przerwane ścieżki, niekontaktujące złącza, uszkodzone kabelki itp.).

1,760

(31 odpowiedzi, napisanych Sprzęt - 8bit)

No tak, ale musi przełączyć się na ROM dla swojej stacji, więc opisałem jak to łatwo zrobić. Hichal zrób na początek tak, żebyś miał właściwy ROM wybrany i wtedy sprawdź objawy.

1,761

(31 odpowiedzi, napisanych Sprzęt - 8bit)

Nie mam stacji 5,25, używam tylko 3,5", ale na moje to ROM A i ROM B właśnie tym się różnią, że nie będzie jeden działał na stacji 3,5, a drugi na stacji 5,25:-)

Aha, nie wiem jaką tam kość użyliście, ale generalnie nie może być tak, że jakaś noga adresowa "wisi" w powietrzu. Wg schematów w oryginalnej stacji noga A12 jest dopięta na stałe do masy, a noga A13 do +5V. Czyli wg tego co napisał pancio.net jak nagrał te obrazy, to wychodzi, że jeśli tylko po prostu wsadziłeś kość w podstawkę wszystkimi nogami, to odpala Ci się HYPROMB - czyli wersja dla stacji 3,5". Jeśli masz stację 5,25, to najprościej odegnij nogę A13 (pin 26) tak żeby nie weszła w podstawkę i kawałkiem przewodu przylutuj ją gdzieś w pobliżu do masy -sprawdź miernikiem, ale wg schematu na tymże EPROM-ie masa powinna być na nogach 2,14 i 22, więc możesz ten kabelek nalutować na eprom z wierzchu bez grzebania w płytce stacji.

1,762

(402 odpowiedzi, napisanych Fabryka - 8bit)

Tak, tak, z paczkomatu:-) Niezły miałem polew jak zobaczyłem rozmiar opakowania - aż trudno mi tą płytkę było odnaleźć w środku:-)
Wracając do tematu okienka, to jak widzisz wymierzyłeś dokładnie tyle ile zaproponowałem, żeby było:-)

1,763

(402 odpowiedzi, napisanych Fabryka - 8bit)

Sikor, wpadła mi w ręce oryginalna płytka z kartridża XEGS z grą One On One. W komplecie mam do niej oryginalną naklejkę z tegoż kartridża i nie pasuje ona do okienka w wydrukowanej obudowie od Ciebie.
Naklejka ma 55x53mm, a okienko 54,5x52,5mm.
Myślę, że okienko powinno być większe w obie strony o 1mm niż naklejka, żeby naklejka mieściła się w nim swobodnie. Czyli jakieś 56x54mm by musiało mieć okienko, nie wiem jakie jest w oryginale.

O faktycznie, przeoczyłem tą uwagę.
Niemniej chętnie bym się coś więcej na temat tych tekstów/fontów/wyświetlania dowiedział, bo akurat się tym bawię w danym momencie:-)

Mam pytanie dot. zawartości materiałów binarnych. Co to jest za plik z tymi polskimi fontami? Oprócz tego, że ma polskie fonty, to zauważyłem, że ma trochę pozmieniane też inne literki. Np. S jest bardziej zawinięte itp. Ale najistotniejsze co zauważyłem, to font ma zamienione miejscami przecinek i średnik. Pytam z ciekawości, to tak ma być, czy może jest to jakaś wersja "rozgrzebana" czy coś w tym stylu? A może celowo font ma szereg jakichś zmian. Czy jest gdzieś do tego opis jakiś autora, lub coś, albo możesz Sikor Ty coś więcej o tym pliku opowiedzieć?

I może trochę wybiegnę tutaj do przodu, ale mam pytanie dot. przygotowania tekstów do gry i ich wyświetlania.
Kłopot jest taki, że jak chcę przykładowo wyświetlić większe ilości tekstu całymi ekranami, to najmniej kosztowne wydaje się być wrzucenie takich tekstów również jako dane binarne i wówczas wyświetlanie ich za pomocą MOVE bezpośrednio wrzucając pod adres ekranu z odpowiednim ofsetem. To działa super, jednak żeby w ogóle zadziałało, to teksty muszą być przygotowane w kodowaniu znaków z użyciem INTERNAL CODE. Jednak jak mamy tak przygotowane teksty, to z kolei nie da się (chyba) łatwo takiego tekstu wydłubywać jednocześnie z pamięci i wyświetlać za pomocą standardowych PRINT, czy TEXT, czy pojedynczych znaków przez CHR$, bo wszystkie te polecenia wymagają z kolei tekstu zakodowanego jako ATASCII. Czy da się jakoś łatwo radzić sobie z tą dualną naturą kodowania znaków na Atari (IC/ATASCII)?

Tak, ja sobie sporo skorzystałem z Twoich porad, tak że super.

Co do tworzenia na Atari i opisywania pod tym kątem, to jestem jak najbardziej za - ma to też swoją dużą wartość, więc kontynuuj to właśnie tak.

Ja te swoje "udogodnienia" pecetowe opisałem tutaj tylko tak nawiasem, w dzisiejszych czasach jest mnóstwo różnych narzędzi, z których można korzystać na różne sposoby, tylko tyle chciałem pokazać. Odpowiada mi bardzo tutorial pokazujący jak to się wszystko robi na Atari, bo mówimy cały czas o Atari tylko i wyłącznie. Natomiast znając już jak się coś tam robi na Atari i mając podstawy można poszukiwać jakby w kolejnych krokach udogodnień, dodatkowych narzędzi itp. - ale to już indywidualnie co kto tam lubi.

Ja z uwag mam tylko coś o czym już mówiliśmy wcześniej, ale chciałbym przypomnieć: żeby wszystkie pliki, całość prac trzymać w jednym atr i nie bawić się w ustalanie gęstości i innych takich. I tak większość chyba programuje to i testuje pod emulatorem na pececie z racji wygody, a jeśli ktos jest takim hardkorowcem, że robi wszystko na Atari, to również poradzi sobie bez problemu z samodzielnym podzieleniem tego sobie jak mu wygodnie na dyskietkach.
Tak że proponował bym atr 720kB i wrzucić wszystko do niego - ale to już decyzja Sikora.

Ja obecnie dość dużo grzebałem akurat w TBXL przy okazji refaktoringu mojej starej gry z dzieciństwa The Last Disk (udostępniałem na sąsiednim forum) i przy tej okazji doświadczyłem różnych koncepcji, co zaowocowało wypracowaniem najwygodniejszej dla mnie metody pracy. Oczywiście każdy robi po swojemu, ale napiszę jak ja to robię, może się przyda innym.
Po pierwsze skorzystałem z narzędzi Sikora opisanych w tym wątku - wszystko bardzo się przydaje.
Robię tak, że mam atr 720kB, na którym mam MyDOS, TBXL, i pozostałe narzędzia. Pracuję pod Altirra, więc odpalam tego atr-a i z niego startuję. Dodatkowo mam podmapowany katalog na pececie jako H6: i w tym katalogu trzymam cały listing pisanego programu w zwykłym pliku textowym, którego edytuję sobie na pececie (używam akurat Notepad++, który koloruje mi ładnie składnię).
I teraz tak: pracę zaczynam od odpalenia Altirra, następnie uruchamiam TB.COM.
W TBXL piszę sobie ENTER "H6:GRA" (plik nazwałem GRA, żeby szybko się wpisywało).
To powoduje wciągnięcie całego listingu i już można go odpalić RUN
Następnie podczas wprowadzania zmian w listingu nie robię całej operacji za każdym razem od nowa, tylko kopiuję z pliku tekstowego kilka linijek, które akurat pozmieniałem i zwyczajnie w Altirra robię prawym przyciskiem wklej. I znowu RUN.
Bardzo szybko się w taki sposób pracuje. Program przerywam Reset(F5), albo Break(F7). Jak zmienię bardzo dużo w kodzie, to ewentualnie "odświeżam" całość, więc w Altirra robię Shift+F5(cold start), L->TB.COM, ENTER "H6:GRA" i już.
Dodatkowo na każdym etapie wklejania kodu do Altirra można przytrzymać F1(przyspieszenie emulacji), co powoduje szybkie wykonanie szeregu operacji tak długo jak trzymamy F1 - jak puścimy, to wszystko pracuje z powrotem z normalną prędkością.

Jeszcze co do łączenia plików z danymi. Używam Super Packera od Sikora, jest fajny, używam też Mossada - też wszystko super. Ale jak już mamy plik z danymi i chcemy do niego dokładać kolejne dane, które i tak mamy na pececie, to już robię to inaczej, szybciej. Plik binarny edytuję sobie na pececie programem HxD Hex Editor. Jak sobie otworzymy w nim nasz plik z danymi, to zobaczymy, że nagłówek, który dołożył nam Super Packer jest bardzo prosty i można go szybko i łatwo zmieniać ręcznie. Pierwsze dwa bajty, to FFFF, następnie mamy dwa bajty adresu początkowego pod jaki wczytane zostaną nasze dane, a następnie dwa bajty adresu końcowego. Oba adresy mają odwrotnie zapisane bajty (najpierw bajt młodszy, a później starszy -trzeba na to zwrócić uwagę). I teraz jak do swojego pliku doklejam np. kolejne dane, to po prostu wklejam te dane na końcu pliku w HexEditorze, do adresu końcowego dodaję odpowiednią ilość bajtów i poprawiam go ręcznie w pliku. Zapisuję sobie plik i gotowe. Poprawiony plik wrzucam sobie na swojego atr-a również w Altirra. Odmontowuję dyskietkę, wchodzę sobie w Tools->Disk explorer, tam usuwam stary plik, a nowy przeciągam i upuszczam do wnętrza atr-a. I gotowe, podmontowuję z powrotem atr-a i już mam zaktualizowane dane.
Dane binarne wczytuję w pierwszej linii programu za pomocą BLOAD, więc jak robię RUN, to nie muszę o tym pamiętać. Jak już program jest skończony, to wywalam tą linijkę z BLOAD, a dalej kompiluję i łączę wszystko w całość już tak jak opisał Sikor w swoich poradnikach.

1,768

(22 odpowiedzi, napisanych Programowanie - 8 bit)

Tak, temat jest wyjaśniony, wiemy skąd się brały moje błędy.
Robiłem IF sprawdzający czy jest pusty string, w sensie, że wciśnięto Return, a następnie kolejny IF sprawdzający co jest w A$.

Jednak zastanawiające jest to, że mamy LEN(A$)=0, a pomimo to jak wyświetlimy ASC(A$), to wyświetli nam się kod znaku wcześniej tam wprowadzonego. Ciekawe z czego wynika taki błąd, czy jest to błąd Basica? Tak czy owak samo zachowanie jest wyjaśnione, więc należy na to uważać podczas programowania.

1,769

(22 odpowiedzi, napisanych Programowanie - 8 bit)

Tak, tylko, że nawet gdy to robiłem, to mi się działy jaja. Nie mam już tego problematycznego kodu, ale myślę, że kłopot polegał na tym, że sprawdzałem sobie w szeregu IF-ami po kolei te warunki, tylko że w różny sposób. Prawdopodobnie mój problem się powtarzał dlatego, że na początku sprawdzałem w pierwszej linii Return, więc obojętnie czy sprawdzałem LEN(A$)=0, czy też A$="", to ten warunek prawdopodobnie działał poprawnie i przypisywał odpowiednią wartość pod moją zmienną wynikową. Tylko że po sprawdzeniu tego warunku leciały jeszcze warunki dot. poszczególnych wprowadzonych liter i prawdopodobnie któryś z tych warunków również zwracał prawdę i nadpisywał mi zmienną wynikową inną wartością. Stąd miałem bałagan. Myślę, że temat jest wyjaśniony.

1,770

(22 odpowiedzi, napisanych Programowanie - 8 bit)

@Sikor, no to może jakiś taki zbieg właśnie u mnie zachodził. Ale u mnie kod żyje, a jak nad czymś siedzę, to po kilku godzinach mam już zupełnie coś innego niż miałem na początku, więc nawet nie mam już jak swojego błędu odtworzyć.

Natomiast odpaliłem Twój programik, zmodyfikowałem mu tylko linię, żeby po return wpisywał K=9.

1 DIM A$(1)
2 Z=0
10 GOSUB 100
12 GOTO 10
100 K=0
101 INPUT A$:IF A$="" THEN K=9
102 IF A$="X" THEN K=1
104 Z=Z+1:? A$,K,ASC(A$),Z
105 RETURN

READY
RUN
?X
X         1         88        1
?A
A         0         65        2
?
          9         65        3
?

I faktycznie to będzie ten problem.
Za pierwszym razem wpisałem X i się K ustawiło na 1,
za drugim razem wpisałem A i się K ustawiło na 0,
za trzecim razem dałem tylko return - i zadziałał warunek sprawdzający A$="", ale ASC(A$) pokazał kod poprzedniego klawisza, czyli A.
No i tu jest pies pogrzebany, mamy z jakiegoś powodu sytuację, że A$ jest jednocześnie pusty i niepusty. Nie mam pod ręką żywego Atari, żeby sprawdzić, czy też się tak zachowa. Testy robiłem na Altirra 3.20 w zwykłym Basicu.

@Pin, PROC i EXEC jest fajny, przejrzystość kodu bez dwóch zdań itd. Jak robisz pojedynczy skok, to też PROC EXEC zajmie Ci mniej pamięci niż GOSUB RETURN, bo PROC/ENDPROC zajmuje mniej niż RETURN. Ale za to EXEC zajmuje więcej niż GOSUB, więc jak masz do wykonania dziesiątki skoków do tego samego podprogramu, to każdy EXEC zajmuje więcej pamięci niż GOSUB i zaczyna program puchnąć. Akurat to co grzebię jest na tyle duże, że zależy mi na pamięci i każdy bajt się liczy, więc robię GOSUB.

1,771

(22 odpowiedzi, napisanych Programowanie - 8 bit)

@mono: u mnie oba te IF-y działały tak samo. Jednak gdy zastosowałem którykolwiek z nich, to mój problem występował tak samo.

@Sikor: też myślę że jest to warte zbadania, zwykle jestem dociekliwy w takich kwestiach, ale przesiedziałem nad tym dzisiaj chyba ze trzy godziny i potrzebuję rozwiązania skutecznego, żeby działało, a GET mi to zapewnił - trochę już opadłem nad tym z sił.

1,772

(22 odpowiedzi, napisanych Programowanie - 8 bit)

Dzięki Sikor:-) GET załatwia mi temat super, uprościł mi program, ulepszył i w ogóle jest gites:-) A problem który miałem zniknął.
Niemniej jednak nie wiem co mogło być problemem, pętle opóźniające i PAUSE też przetestowałem, ale nie pomagało.
Skoro jednak GET się sprawdza w moim przypadku idealnie, to nie będę już drążył.

1,773

(22 odpowiedzi, napisanych Programowanie - 8 bit)

@mono, strukturę programu mam dokładnie taką jak napisałeś w przykładzie. Z tym że ja ten program mam dłuuuugi na kilkaset linii i jest to trochę rozstrzelone, ale DIM jest na początku, wywoływane tylko raz, kolejność wszystkich działań jest taka jak u Ciebie.

@Fox, dzięki za przypominajkę, zapomniałem już że się tak sprawdzało w Basicu - przypominam sobie dawne czasy po wielu latach, a mam przyzwyczajenia ze współczesnych języków, głównie z C i podobnych.
Jednak przy tak postawionym warunku mam te same problemy, te same objawy.

Ciekawe jest to, że ten problem pojawia mi się dość rzadko, raz na kilkadziesiąt wprowadzonych liter, lub Returnów.

Testuję to pod Altirrą, może ona robi jakiś problem?
Dziwna sprawa, bo na takim krótkim programiku jak te powyższy od mono nie udaje mi się tego błędu odtworzyć, a dzieje się na długim programie. Mam w nim też bardzo dużo GOSUB-ów jednych w drugich i gdzieś tam głęboko w nich siedzi dopiero ten INPUT A$. Może są jakieś granice stosu i coś się przez to kaszani ze zmiennymi?

1,774

(22 odpowiedzi, napisanych Programowanie - 8 bit)

Sprawdziłem, nie pomaga. Wiem co robi, przywraca 255 w buforze klawiatury po wciśnięciu jakiegoś klawisza, bo tam zostaje ostatnio wciśnięty klawisz. Nie pomyślałem o tym, ale tak jak mówię, teraz przetestowałem i nic to niestety nie daje w tym wypadku.

Testowałem teraz jeszcze wielokrotnie temat na różne sposoby i widzę, że problem pojawia się jak próbuję sprawdzić czy nie ma pustego stringa po wciśnięciu Return na INPUT. Może w takim wypadku jest coś dziwnego/losowego w A$ czasami, bo właśnie w wypadku jak testuję taki warunek, to również inne warunki potem się sypią.

1,775

(22 odpowiedzi, napisanych Programowanie - 8 bit)

Mam taki kłopot w Turbo Basicu, ale nie wiem czy może dotyczyć też zwykłego Basica.
Mam w programie coś takiego w podprogramie po GOSUB:

DIM A$(1)
...

K=0
INPUT A$
IF A$="X" THEN K=1
? A$,K
RETURN

Kłopot polega na tym, że czasami warunek się sprawdza, a czasami nie chce zaskoczyć. Program w pętli działa, ciągle wyświetlając od nowa INPUT, wprowadzam sobie jakiś znak i w 90% przypadków znak jest wprowadzony, ale od czasu do czasu pomimo, że go wprowadzam, to ? wyświetla mi nic dla A$ a K=0, chociaż powinno być 1
Czy jest jakiś znany błąd związany z poleceniem INPUT, albo jakieś zastrzeżenia co do użycia tego polecenia np. w pętlach, albo w podprogramach GOSUB?

Edit: wygląda na to, że znalazłem pewną prawidłowość, ale i tak bym chciał to jakoś wyjaśnić.
Otóż w swoim programie mam szereg warunków:
IF A$="X" THEN K=1
IF A$="Y" THEN K=2
IF A$="Z" THEN K=3
Problem zaczął się jak chciałem jeszcze sprawdzać wciśnięcie samego Return. Dodałem warunek:
IF A$=" " THEN K=9
Próbowałem też IF A$="" THEN K=9
W obu przypadkach działa tak sprawdzanie pustego stringu - ale właśnie czasem działa a czasem nie, a oprócz tego dodanie takiego warunku powoduje że wszystkie pozostałe "normalne warunki" też zaczynają działac czasami, a czasami nie.
Ciekawe...