atarionline.pl xBoot DOS - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthorxxl
      • CommentTime18 Apr 2020 20:04 zmieniony
       
      Dos w boot sektorze

      MEMLO = $930

      pracuje z dowolnymi FS z rodziny AtariDOS2 (MyDOS itp.) z dyskietkami SD,ED,DD,DSDD itd. do 16MB w ATR.

      ma tez funkcje specjalna:
      - Binary Load (można załadować pliki binarne)
      - Point (ustawiene biezacej pozycji odcztu w pliku)

      potrafi zapisac plik o dowolnej dlugosci

      jesli bootujemy z wylaczonym basic to dos probuje uruchomic plik AUTORUN. a jesli basic jest wlaczony to wchodzi do basica.

      w zalaczniku test z nagranym programem w basicu i binarka:


      spod basica piszemy:

      LOAD "D:TEST.BAS" (SAVE)

      lub

      XIO 40,#1,0,0,"D:AUTORUN"

      dodana funkcja POINT

      do sciagniecia: ->link<-
      • 2: CommentAuthorgorgh
      • CommentTime18 Apr 2020 21:04
       
      dzięki, nie znam się ale to chyba przydatne, może bocianu by użył tego do swojego music dysku
      • 3: CommentAuthorzbyti
      • CommentTime19 Apr 2020 00:04
       
      @gorgh to jednak umie człowiek rozbawić :D
      • 4:
         
        CommentAuthorpirx
      • CommentTime19 Apr 2020 00:04
       
      barzo ładne!
      • 5: CommentAuthorxxl
      • CommentTime19 Apr 2020 13:04
       
      dodalem zapis.
      • 6: CommentAuthormono
      • CommentTime19 Apr 2020 13:04 zmieniony
       
      Nieźle, nieźle. A można to samo ale przez odwołania systemowe? Żeby chodziło z Nowymi Urządzeniami?
      • 7: CommentAuthorxxl
      • CommentTime19 Apr 2020 13:04
       
      ktore odwolanie nie jest systemowe?
      • 8: CommentAuthormono
      • CommentTime19 Apr 2020 13:04
       
      No nie śledziłem kodu, jeśli wszystko idzie przez OS to super.
      • 9: CommentAuthorilmenit
      • CommentTime19 Apr 2020 14:04
       
      Jaka ma licencje?
      • 10: CommentAuthorxxl
      • CommentTime21 Apr 2020 20:04
       
      kolejny update.

      zmiany:

      xBootDOS moze zapisywac pliki dowolnej dlugosci

      memlo = $936
      • 11: CommentAuthorilmenit
      • CommentTime21 Apr 2020 22:04
       
      Jaka jest licencja tego programu?
      • 12:
         
        CommentAuthorKaz
      • CommentTime21 Apr 2020 22:04
       
      Ilmenit, zadajesz niewygodne pytanie, a xxl już nie ma kogo wyrzucić z atari.pl w odwecie :)
      • 13: CommentAuthorzbyti
      • CommentTime21 Apr 2020 22:04 zmieniony
       
      Potworzy nowe konta i usunie, tak dla wprawy :]

      LICENCJA: korzystając z xBIOS przenosisz prawa do kodu korzystającego z xBIOS na twórcę xBIOS.
      • 14:
         
        CommentAuthorKaz
      • CommentTime21 Apr 2020 22:04
       
      Ale warunkiem jest, że ktoś się musi rozpruć :D
      • 15: CommentAuthorxxl
      • CommentTime21 Apr 2020 23:04 zmieniony
       
      Niestety, Solo grozil donosem, trzeba sie bylo zabezpieczc :( szkoda postronnych ofiar jego glupoty i szkoda mojej pracy.

      a licencja to Freeware :-)
      • 16: CommentAuthorzbyti
      • CommentTime21 Apr 2020 23:04
       
      Cholera... Goebbels miał jednak rację... Powoli zaczynam wierzyć w tę wersję ;)
      • 17:
         
        CommentAuthorjhusak
      • CommentTime22 Apr 2020 00:04
       
      Dlaczego dopiero teraz...

      Przecież to petarda!
      • 18: CommentAuthorilmenit
      • CommentTime22 Apr 2020 09:04 zmieniony
       
      Kaz, ja bym proponował usunąć stąd tego xBoota. Niby nie jest nielegalny, ale trzeba się zabezpieczyć :( tylko szkoda postronnych ofiar jego glupoty
      • 19: CommentAuthorzbyti
      • CommentTime22 Apr 2020 09:04
       
      @ilmenit tylko szkoda czyjej pracy?
      • 20:
         
        CommentAuthorJacques
      • CommentTime22 Apr 2020 09:04 zmieniony
       
      "Zmusiliście mnie do tego..." Klasyczny przejaw nie napiszę czego ;-)
      • 21: CommentAuthorxxl
      • CommentTime22 Apr 2020 12:04
       
      - obsluguje format BiboDOS - z 128 wpisami katalogowmi
      • 22: CommentAuthorxxl
      • CommentTime22 Apr 2020 20:04 zmieniony
       
      i kolejna optmalizacja, memlo zjechalo do $924 :D (optmalizacja o 18 bajtow)
      • 23: CommentAuthorbob_er
      • CommentTime22 Apr 2020 21:04
       
      Dodasz jeszcze obsługe formatu Sparty to memlo eksploduje do $980 :)
      • 24: CommentAuthorxxl
      • CommentTime23 Apr 2020 13:04
       
      moglo by braknac ;-)
      • 25: CommentAuthorxxl
      • CommentTime23 Apr 2020 21:04
       
      kolejna optymalizacja :DDDD

      MEMLO = $920
      • 26: CommentAuthorsolo/ng
      • CommentTime23 Apr 2020 23:04 zmieniony
       
      xxl udaj sie w koncu do lekarza. schizofrenie paranoidalna sie leczy.
      • 27: CommentAuthorxxl
      • CommentTime25 Apr 2020 12:04
       
      adhd tez :D

      kolejny dzien, kolejna optymalizacja


      dzis dodana funkcja POINT
      • 28: CommentAuthortebe
      • CommentTime25 Apr 2020 13:04
       
      w tym POINT, A = numer sektora, B = numer bajta ?

      a gdzie POINT (SEEK) jak w SDX ? :)
      • 29: CommentAuthorxxl
      • CommentTime25 Apr 2020 14:04
       
      tak, POINT dziala jak w DOS a nie jak w SDX.

      "kompatybilnosc"
    1.  
      There is also this 3-sector-DOS
      ->link<-
      written by C.Strotmann several years ago. Do not know the memlo of this DOS. It supports multiple files (up to a max. of 8 files / only one dir. sector!), but loading/reading only...
      • 31: CommentAuthorxxl
      • CommentTime25 Apr 2020 22:04 zmieniony
       
      ok. to jest wlasciwie wersja ostateczna, optymalizowac mozna pewnie jeszcze o pare bajtow ale to juz by byly uproszczenia...

      to tyle jesli chodzi o minimalistyczny DOS:

      - czytanie
      - zapis (do istniejacych plikow)
      - funkcja specjalna BINARY LOAD
      - funkcja specjalna POINT
      - dowolny format i gestosc dla filesystemu rodziny Atari DOS (MyDOS, BiboDOS, TopDOS)
      - MEMLO = $930
      - DOS zajmuje $130 (304 bajty)
      - w calosci miesci sie w BOOT SECTORS
      - jesli BASIC wylaczony to automatycznie uruchamia plik "D:AUTORUN"


      BOOTowalny atr możemy stworzyć poleceniem:
      dir2atr -md -B xbootdos.obx atrfile.atr directory


      strona projektu:


      ->link<-
      • 32: CommentAuthortebe
      • CommentTime25 Apr 2020 23:04
       
      d z i ę k u j e m y :)
      • 33:
         
        CommentAuthorjhusak
      • CommentTime26 Apr 2020 03:04 zmieniony
       
      Ja tego nie rozumiem. dos w $130 bajtach, z (uproszczonym) zapisem, z binloaderem? Czad.

      Jak czytam dowolny kod xxl-a - to go nijak nie rozumiem :)

      Zapostulował bym jeszcze o dosa z możliwością zapisu do nieistniejącego pliku kosztem długości, nawet do $180. Wówczas można już na tym pracować natywnie.
      • 34: CommentAuthorxxl
      • CommentTime26 Apr 2020 09:04
       
      to jest dos do gamedevu, tworzenie plikow jest srednio potrzebne - jesli wogole. zreszta niestety brak miejsca w bootsektorze na kolejne funkcjonalnosci.
      • 35: CommentAuthoremka
      • CommentTime26 Apr 2020 10:04 zmieniony
       
      Zachęcony informacją z pierwszego postu (potrafi zapisać plik o dowolnej długości)
      postanowiłem to sprawdzić.

      Chyba nie rozumiem jak działa zapis.
      Myślałem że ponieważ program nie tworzy nowych plików, wystarczy stworzyć kilka kontrolnych plików np. L1,L2,L3,...
      o minimalnej długości 2 sektorów i zawsze zapisywać do tych plików. Niestety zapis zostaje obcięty do tych dwóch sektorów. Reszta jest wyrzucana na ekran.
      Podejście drugie.
      Może pliki powinny być dużo dłuższe i program jakoś ominie nadmiarowe sektory.
      Nic z tego xbootDOS wczytuje wszystko do końca starej mapy. Dodatkowo miesza stare dane z nowymi i robi błędy w pliku.
      Co robię źle?
      Potrzebna dokumentacja i jakiś manual.
      Program nie radzi sobie też z innymi językami na cartridge'u. sprawdzone na ACTION!, BASICXE.
      Bez zapisu xbootDOS jest mało przydatny.
      • 36: CommentAuthortebe
      • CommentTime26 Apr 2020 10:04
       
      xBootDOS nie zarządza mapą VTOC, więc zapis może być tylko do wcześniej zdefiniowanych sektorów

      jeśli stworzyłeś plik który zajmuje 2 sektory, zapis będzie tylko do tych dwóch sektorów

      jeśli stworzyłeś plik który zajmuje 5 sektorów, zapis będzie tylko do tych pięciu sektorów

      itd.
      • 37: CommentAuthorxxl
      • CommentTime26 Apr 2020 10:04 zmieniony
       
      @emka: mozesz dodac przykladowy atr?
      • 38: CommentAuthoremka
      • CommentTime26 Apr 2020 11:04 zmieniony
       
      Testowane pod Linuksem na atari800 4.2.0
      Pliki zapisane w DOS 4.3T SD
      L1 to plik action nadpisany basic'iem
      L2 to plik którym nadpisałem
      L3 to plik ACTION!
      • 39: CommentAuthorxxl
      • CommentTime26 Apr 2020 12:04 zmieniony
       
      ok. wiem o co chodzi.

      1. nie mogles uruchomic tego z innymi cardrydzami. sciagnij xBootDOSa jeszcze raz - jest poprawiony, bedzie dziala z Action i Basicami XL/XE, Altirra Basic itd.

      2. zapisujesz komenda LIST a ladujesz komenda ENTER i wychodza Ci smieci - tak, to jest prawidlowe zachowanie poniewaz zapisales LISTem do wiekszego pliku w ktorym juz cos bylo - te pozostale dane nie zostana skasowane i dlatego tak masz.

      jak zapiszesz komenda SAVE (stokenizowane) to podczas ladowania LOAD bedziesz mial ok i smieci sie nie pojawia.

      3. jesli bedziesz zapisywal wiecej danych do pliku o zbyt malym rozmiarze to dostaniesz komunikat z bledem end of file

      to jest prawidlowe zachowanie.
      • 40: CommentAuthorxxl
      • CommentTime26 Apr 2020 12:04
       
      jeszcze jedno, (chyba to Cie zmylilo) do pliku ktory poczatkowo mial np. 10 bajtow i miescil sie w 1 sektorze nie zapiszesz 20 bajtow (mimo, ze w sektorze jest jeszcze sporo wolnego miejsca)
      • 41: CommentAuthoremka
      • CommentTime26 Apr 2020 13:04
       
      Problem cardridge'a wygląda na rozwiązany.
      @ Do pliku który początkowo miał np. 10 bajtów i mieścił się w 1 sektorze nie zapiszesz 20 bajtów
      Byłem pewien że w granicach sektora możemy zapisać wszystko.

      Tylko Basic w stokenizowanym pliku zna jego długość (dlatego w C: nie czeka na ostatni blok). Wszystkie inne programy czekają na EOF. Czy nie dało by się kontrolować długości pliku bez ruszania mapy dysku (jakiś znacznik EOF w nadmiarowych sektorach należących do danego pliku). To mocno by zwiększyło funkcjonalność programu i wszystkim by szczęka opadła.
      Pomyśl o tym.
      • 42: CommentAuthorxxl
      • CommentTime26 Apr 2020 14:04
       
      masz racje. dobry pomysl. ale brak miejsca, trzebaby zrezygnowac z POINT...

      i to wlasciwie zalatwiloby sprawe plikow roznej dlugosci...
      • 43: CommentAuthorxxl
      • CommentTime26 Apr 2020 20:04 zmieniony
       
      .
      • 44: CommentAuthoremka
      • CommentTime26 Apr 2020 22:04 zmieniony
       
      Za bardzo nie wiem co to oznacza "jak stworzysz odpowiedniego "templata"". Ale nic to jedziemy dalej.
      Program zapisuje na dysku więcej niż wczytuje. W przykładowym atr masz 3 pliki L1,L2,L3 spróbuj wczytać pod ACTION!. plik D:L3 zapisać go i ponownie wczytać może być pod tą samą nazwą to sam zobaczysz.Nadal nie potrafi rozpoznać miejsca końca krótszego pliku i wczytuje całość.
      Po którymś teście wyrzucił error 136 i nadpisał częściowo bootblok.

      Może napisanie DOSa w bootsektorach to za ambitne zadanie?
      To moja ostatnia odpowiedź w tym temacie. Chyba nie nadaję się na betatestera.
      Powodzenia
      • 45: CommentAuthorxxl
      • CommentTime26 Apr 2020 23:04
       
      nie ma zbyt ambitnych zadan ;-)

      ogarne to i dam znac.
      • 46: CommentAuthorxxl
      • CommentTime26 Apr 2020 23:04 zmieniony
       
      ten dziala w zakresie co rozmawiamy... autostart nie dziala.

      ---
      usuniety zal.
      • 47: CommentAuthorxxl
      • CommentTime27 Apr 2020 11:04 zmieniony
       
      ok.
      - autorstart dziala - plik "AUTORUN"
      - memlo $930 (utrzymane)
      - skraca/wydluza pliki wedlug pomyslu emka

      jesli nie znajde jakiegos glupiego bledu to ta wersja bedzie wiodaca (wersja z POINT ma bledy!!!)
      • 48: CommentAuthormono
      • CommentTime27 Apr 2020 12:04 zmieniony
       
      No dobrze, ale na czym polega "rozszerzanie/skracanie pliku bez ruszania VTOC"? Linki w sektorach zawsze wskazują na kolejny sektor na dysku, ale kontrolujesz rozmiar pliku za pomocą znacznika zajętości sektora?

      Edit: I ewentualnie rozmiaru pliku w direntry?
      • 49: CommentAuthorxxl
      • CommentTime27 Apr 2020 12:04 zmieniony
       
      tak, poprzez znacznik zajetosci sektora.

      na okolicznosc EOF podczas zapisu kontrolujesz link a podczas czytania znacznik zajetosci... genialne.

      nie wolno zmianiac wartosci w directory bo plik traktujemy jak kontener
      • 50: CommentAuthormono
      • CommentTime27 Apr 2020 14:04 zmieniony
       
      Tak, pomysł jest bardzo ciekawy. Ciekawe jak sobie poradzą loadery i same DOS-y z takimi plikami. Ale w ten sposób można by rezerwować miejsce pod pliki o maksymalnej zadanej długości na etapie tworzenia pliku.

      Edit: To jeszcze uściślając parę kwestii.

      Podczas zapisu idziemy po linkach i aktualizujemy znacznik zajętości sektora. Czyli wszystkie sektory w pliku są zajęte na max do momentu kiedy trafimy na sektor częściowo zajęty, albo pusty, albo kiedy link jest pusty (wtedy nie ma więcej miejsca na zapis).
      Uważałbym na sytuację kiedy kończymy zapis z sektorem zapełnionym na max, bo wtedy następny sektor (o ile aktualny link nie jest 0) musi mieć znacznik wypełnienia ustawiony na 0 (szczególnie w przypadku kiedy nadpisujesz plik który był wcześniej dłuższy).

      Podczas odczytu bierzemy dane z sektora do momentu kiedy znacznik zajętości jest mniejszy niż max lub kiedy link jest pusty.

      Mógłbyś podczas tworzenia pliku markować taki rodzaj pliku ("sticky"? że niby przyklejony jest do sektorów na dysku) w statusie jakimś bitem lub kombinacją? Tak żeby zachować kompatybilność z już istniejącymi filesystemami.

      Edit 2: A może jednak zostawić status pliku w spokoju? Chociaż pewnie wszystkie disk cleanery i inne disk fixery będą raportować błąd w pliku. I tak będą pewnie raportować błąd kiedy status będzie zmieniony.