atarionline.pl MP, BlockRead czytanie z pliku pod adres - 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: CommentAuthortonual
      • CommentTime23 Oct 2025 18:29 (3 godzin temu) zmieniony
       
      Bazując na przykładzie grania muzyczek MusicProTracker'a
      ->link<-

      Piszę przykład, gdzie .md1 i plik sampli ładowane są z dysku, następnie grane:
      ->link<-

      Dlaczego dla pliku .D15 zostało przeczytanych 9040 bajtów (zamiast 8224)
      Z kolei Plik .MD1 został przeczytany prawidłowo - 816 bajtów.

      (funkcja LoadFileToAddr nie korzysta z "FileSize" ponieważ to nie działa na DOSsie z obrazu .atr)

      Próbowałem też "na raz" (11264), ale Atari crashuje (podobnie jak w poprzednim przypadku) przy próbie zagrania muzyczki.

      p := pointer(addr);
      BlockRead(f, p^, 11264);

      Będę wdzięczny jeśli ktoś podzieli się działającą funkcją; LoadFileToAddr(Const filename: String; addr: word)

      Zastosowanie:
      Próbuje przeczytać dane z pliku i umieścić pod adresesm w pamięci, aby player .md1 to znalazł i zagrał muzyczkę. Np,
      module_addr = $5000;
      sample_addr = $6000;
      LoadFileToAddr('abcsong.md1'; module_addr)