1

... i Blekota i Plekota i Jekota. No właśnie.

Mam taki oto problem w Turbo-Basic'u. Otóż jak wiadomym jest instrukcja NOTE / POINT służy do pozycjonowania odczytu / zapisu w plikach. Potrzebuję jednak zrobić coś innego, tzn - określić pozycję dla odczytywanego katalogu dysku. Chodzi dla ścisłości o Sparta DOS X (bo tu obsługa N/P wygląda normalnie a nie jak w AtariDOS :P ) i o możliwość (o ile to realne) ustawiania znacznika odczytu dla katalogu dysku.

Reasumując - na otwarty kanał poprzez np.:

O.#%1,6,%0,"D5:>mlekota>*.*"

kanał otwarty dla odczytu katalogu, jednak następująca instrukcja:

NOTE #%1,X,Y

... zwraca błąd: 133 (not open)

Czy więc taka operacja nie jest możliwa i dlatego interpreter zwraca błąd? Jak wspomniałem, wszystko działa pod SDX

Kontakt: pin@usdk.pl

2

Mogę się mylić, ale żeby używać note/point to chyba musisz otworzyć katalog w trybie odczytu pliku. Jak to się robi to już sobie doczytaj w manualu.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

3

siedzę od godziny przy manualu:

http://sdx.atari8.info/sdx_files/4.45/s … manual.pdf

... i przyznam, nie bardzo widzę informację co z tym fantem zrobić. Pomożecie? ;)-

Kontakt: pin@usdk.pl

4

Nie przyszłoby mi do głowy, żeby używać NOTE/POINT przy odczycie katalogu. Jest szansa, że nie wpadł też na ten pomysł żaden z autorów DOSów.

Może zacznijmy od tego, po co to robisz, a wtedy pewnie uda się znaleźć alternatywne rozwiązanie.

https://www.youtube.com/watch?v=jofNR_WkoCE

5

@Pin mam nadzieje dos nie ma tej funkcji, przy jakiejkolwiek zmianie w filesystemie Twoj program sie rozsypie, zreszta zaden dos nie powinien dawac userowi danych o filesystemie - wlasnie NOTE i POINT w dos2.5 jest przykladem tego bledu

http://atari.pl/hsc/ad.php?i=1.

6

Dyskowy System Operacyjny SpartaDOS X Podręcznik Użytkownika napisał/a:

Bezpośredni dostęp do katalogów

Ustawienie bitu 4 w aux1 (zwiększenie o 16) umożliwia bezpośredni dostęp do
katalogu. Pozwala to na odczytywanie i/lub zapisywanie katalogu SpartaDOS tak, jakby był
to normalny plik danych. Jest to znacznie szybsze niż zwykły odczyt katalogu, jednak jest to
najprostszy sposób zniszczenia katalogu i uczynienia dyskietki nieużyteczną, gdy popełnisz
błąd w jej katalogu. Unikaj bezpośredniego dostępu do katalogu, chyba że wiesz dokładnie
co robisz i nie obawiasz się utracić informacji zapisanych na dyskietce. Tryb ten jest
dozwolony także dla dyskietek Atari DOS, jeśli zainstalowana jest procedura
ATARIDOS.SYS. Tłumaczy ona katalog Atari na format SpartaDOS i odwrotnie.

Niestety nie jest napisane, co ma być w aux1 przed zwiększeniem, ale wybór nie jest duży, więc dasz sobie radę.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

7

skoro to ma byc "operacja na katalogu" to pewnie 6, bo 6+64 czy 6+32 raczej nie ma sensu przy 6+16
swoja droga - przy wylacznie operacjach odczytu - chyba dosc ciezko zniszczyc sobie katalog, co sugeruje manual ;)
niby w sumie zawsze sie mozna jebnac przy m.in. otwartym katalogu z iocb i cos "niechcacy" do niego zapisac...

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

8

Fox napisał/a:

Może zacznijmy od tego, po co to robisz, a wtedy pewnie uda się znaleźć alternatywne rozwiązanie.

Alternatywne rozwiązanie? :) - dobre ;)-

buforowanie odczytywanego katalogu dla np. 800 wpisów? ... powiedzmy, że nie musi być z datą i czasem, co ograniczy ilość danych do minimum. Optymalnie do skrajnej ilości 1423 wpisy na katalog, czyli tyle - ile można pod Sparta DOS X użyć realnie.

Chodzi o "BROWSE" dla TRS Desktop i możliwość czytania katalogu w przód i w tył tak, by nie buforować zbyt dużej ilości danych w pamięci, której jak wiadomo nie ma. Szczególnie w kompilowanym TurboBasicu. To tyle, jeśli chodzi o ideę "Napisz se". Właśnie chce "se" napisać, więc grzecznie pytam jakie są rozwiązania problemu :D

Kontakt: pin@usdk.pl

9

Masz megabajt RAMu przecież.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

10

przy 11 bajtach na wpis miescisz sie w banku ;) tylko po co trzymac taki katalog w pamieci i ile zajmie sam jego odczyt?
lepiej wyswietlic okienko "zrob se pozadek"

przechodze na tumiwisizm

11

Candle - przypominam też, iż istotnie chodzi o poRZądek :D, chodzi również o TurboBasic po kompilacji, co wyklucza użycie rozszerzenia portB na normalnych, lub humanitarnych zasadach.

Jak zrobić wspomniany porządek "bardziej" w przypadku np. 500 modułów CMC, 600 modułów TMC, 450 modułów MPT itd., jeśli każdy z nich mieści się w swoim podkatalogu? Tylko nie mów, że wywalić wszystko tak, by zmieściło się w "jedynie słusznym" standardzie AtariDOS - 64 wpisy na katalog, bo to jest dopiero apokalipsa św. Jana :)

Kontakt: pin@usdk.pl

12

Pinokiur, a nie mozna ich podzielic analfabetycznie?
limit dla fat32 loadera to 254 wpisy/katalog - tylko tam te 254 wpisy zabiera troche wiecej miejsca i nie pisze tego w beju
moze czas przeniesc to do np ccs65 czy jak sie ten cud nazywal? (o asmie nie wspomne bo to by byly apokalipsy wszystkich sw jacy tylko przyjda ci do glowy)

ps. bo nie wiem czy odpisalem - twoje vbxe 1.x jest naprawione od kilku miesiecy

przechodze na tumiwisizm

13 Ostatnio edytowany przez Fox (2012-01-11 08:58:42)

Rozumiem, że chodzi o podział katalogu na strony.

Alternatywne rozwiązanie:
- następna strona: zostawiasz kanał otwarty - będziesz kontynuować tam, gdzie skończyłeś
- poprzednia strona: zapamiętujesz, ile bajtów przeczytałeś do początku poprzedniej strony, przy przełączaniu na poprzednią stronę otwierasz ponownie katalog i pomijasz z niego tyle bajtów wczytując je BGETem. edit: Wpisy są chyba równej długości, więc możesz sobie obliczyć liczbę bajtów do pominięcia.

https://www.youtube.com/watch?v=jofNR_WkoCE

14

rozumiem, ze ten program bedzie dzialal tylko pod konkretnym dosem ale:

> Wpisy są chyba równej długości, więc możesz sobie obliczyć liczbę bajtów do pominięcia

to pulapka. zmiana w FS (nie w DOS) i program przestaje dzialac.

http://atari.pl/hsc/ad.php?i=1.

15

Ale kto miałby tej zmiany dokonać? Program pamięta te liczby tylko na czas wyświetlania i przewijania katalogu w okienku.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

16 Ostatnio edytowany przez jellonek (2012-01-11 14:15:22)

epi: xxl pewnie ma na mysli pliki atr podpiete pod aspeqt czy czyms podobnym, na ktorych operuje... chyba ze dyskietke w miedzyczasie przeklada miedzy stacjami, miedzy roznymi atarkami, na 2 roznych cos modyfikujac ;)

xxl: ten program to aktualizacja do pinokiowego desktopu i faktycznie tylko pod sparta go chyba uruchamia pin...

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

17

dlugosc wpisu katalogu jest inna dla FS, np. jesli przyjmuje na stale ze dlugosc wpisu dla FS sparty jest x bajtow to gdy operuje na FS np ataridos2 tez pod spartados to wspis ma inna dlugosc (na jakim FS dzialamy? nie ma to zwiazku z gestoscia albo wielkoscia sektora) jesli bedzie otwieral katalog do odczytu jak plik to co dostaniemy czytajac "plik" katalogu dos2 FS przy zalozeniu ze wpis ma x bajtow? dos powinien oddawac wpis w katalogu, na tej podstawie Pin robi sobie licznik wpisow a reszta jak napisal Fox oczywiscie oprocz pomyslu z otwarciem katalogu jako plik. niedawno wyszedl sio2sd z obsluga fat32 i wsparciem dla progrmaistow jesli powstanie sterownik dla sparty dla tego fs to bedzie podobna sytuacja. no chyba ze sparta przy otwieraniu katalogu jako plik (co za pomysl) robi translacje czytaj duzo pamieci potrzebuje... zaby zaladowac katalog :-)

http://atari.pl/hsc/ad.php?i=1.

18 Ostatnio edytowany przez epi (2012-01-11 16:08:53)

Co do tłumaczenia patrz post nr 6. Translacja potrzebuje tylko 23 bajtów, bo tyle ma wpis katalogu sparty, zarówno w pamięci, jak i na dysku.

Przy odczycie katalogu w normalnym, tj. tekstowym trybie można polegać na tym, że linie są jednakowej długości.

A poza tym czytaj to, co piszesz, albo zmień dilera.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

19

czytanie instrukcji jest dla p.edalow.

> Przy odczycie katalogu w normalnym, tj. tekstowym trybie można polegać na tym, że linie są jednakowej długości.

nie wiem czy czytanie katalogu poprzez ustawienie NOTE/POINT to normalny tryb.

http://atari.pl/hsc/ad.php?i=1.

20 Ostatnio edytowany przez epi (2012-01-11 18:58:11)

Komunikacja polega na tym, że czytasz ze zrozumieniem posty, na które zamierzasz odpowiedzieć, a udzielając odpowiedzi, posługujesz się poprawnym językiem, który umożliwia innym zrozumienie twojej wypowiedzi. To też jest dla pedałów?

Używanie NOTE/POINT nic do tego nie ma.
Odczyt n linii przy pomocy BGET to nic nienormalnego, pod warunkiem, że długość linii z wpisem jest znana i stała.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

21

.. co do rozwiązania Fox'owego, to wydaje mi się, że przy rozbudowanym katalogu ze znaczną ilością wpisów ponowne otwieranie kanału i odczytywanie do "null" X wpisów zajmie w skrajnym przypadku dużo czasu. Sumarycznie wydaje mi się, że lepiej będzie otworzyć katalog w trybie pliku i po prostu cofać się, jeśli będzie to konieczne. Idea jest taka, by każdy fragment programu optymalizować pod kątem czasu, cóż - TB nie jest taki Turbo, jak by się z nazwy wydawać mogło ;).

XXL - to ma działać wyłącznie pod Sparta DOS X, bo ma być to część desktopu którego istnienie jest silnie uzależnione od wspomnianego systemu a okienka nie mają większego sensu na podbudowie jakiegokolwiek innego. Przyczyna jest prosta - ułomności systemu plików AtariDOS i problematyczny sens istnienia desktopu dla FS na którym nie zapiszesz tak czy inaczej znacznej ilości plików. Jedyny (powiedzmy że) konkurent jakkolwiek obsługujący HDD - czyli MyDOS ma niestety ograniczenie 64 wpisów na katalog. Jeśli by to było jedyne ograniczenie tego systemu, to i tak nie miał by on większego sensu - ze względu na powagę sytuacji "choć by i" :D

Co do rozwiązań w ASM to naukę języka dobrze jest rozpocząć od rzeczy znacznie lajtowych, może zacznijmy od "Halo Łord" :D

Candle - DZIĘKI!!! - co tak ostatecznie zdechło w tym moim nieszczęsnym VBXE?

Kontakt: pin@usdk.pl

22 Ostatnio edytowany przez xxl (2012-01-11 20:09:43)

@Epi
> Używanie NOTE/POINT nic do tego nie ma.
> Odczyt n linii przy pomocy BGET to nic nienormalnego, pod warunkiem, że długość linii z wpisem jest znana i stała.

chyba jednak ma, poniewaz Pin wyraznie przez caly watek o tym pisze... o nawet w ostatnim poscie:

> lepiej będzie otworzyć katalog w trybie pliku i po prostu cofać się, jeśli będzie to konieczne.

GETem sie nie cofniesz, tu wkracza POINT zlo i szatan do poruszania sie po wpisach w katalogu (niezbyt zrozumiale dla kazdego wyjasnialem dlaczego).

> posługujesz się poprawnym językiem, który umożliwia innym zrozumienie twojej wypowiedzi.

to prawda, dziekuje. postaram sie.

http://atari.pl/hsc/ad.php?i=1.

23

To przeczytaj jeszcze uważnie post Foxa, to się dowiesz, co ma BGET do cofania się.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

24

Pin napisał/a:

.. co do rozwiązania Fox'owego, to wydaje mi się, że przy rozbudowanym katalogu ze znaczną ilością wpisów ponowne otwieranie kanału i odczytywanie do "null" X wpisów zajmie w skrajnym przypadku dużo czasu. Sumarycznie wydaje mi się, że lepiej będzie otworzyć katalog w trybie pliku i po prostu cofać się, jeśli będzie to konieczne. Idea jest taka, by każdy fragment programu optymalizować pod kątem czasu, cóż - TB nie jest taki Turbo, jak by się z nazwy wydawać mogło ;).

Znowu wypowiadasz się na temat prędkości nie robiąc żadnych pomiarów, a stosując porażające argumenty typu "TB nie jest taki Turbo".
Odczyt katalogu BGETem do pozycji pliku X będzie trwać nieco więcej, niż otwarcie pliku X do odczytu. To nieco więcej, to narzut na formatowanie tekstu (nie wiem, jak tu sobie Sparta radzi) i przepchanie bajtów przez CIO (tu zaprogramowany strukturalnie system operacyjny ogranicza nam przepustowość do rzędu 10 KB/s). Jeśli składnikiem dominującym są operacje dyskowe, to znaczy, że powinieneś się zastosować do porady z postu 10.

https://www.youtube.com/watch?v=jofNR_WkoCE

25

:) - zobaczy się. Sprawdzę to na żywym organizmie.

Kontakt: pin@usdk.pl