Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: Otwarcie pliku do odczytu i zapisu  (Przeczytany 972 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Otwarcie pliku do odczytu i zapisu
« dnia: 06 Października 2008, 20:13 »
witam,
poniewaz sie na tym temacie wylozylem lata temu, mam pytanie czy ktos widzial kiedys  otwarcie pliku do odczytu i zapisu rownoczesnie.
Czyli otwieramy plik odczytujemy iles bajtow i zapisujemy  reszte jako nowa zawartosc.
Widzial ktos to w akcji?


idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Otwarcie pliku do odczytu i zapisu
« Odpowiedź #1 dnia: 07 Października 2008, 07:15 »
                   
kisiel napisal:
witam,
poniewaz sie na tym temacie wylozylem lata temu, mam pytanie czy ktos widzial kiedys  otwarcie pliku do odczytu i zapisu rownoczesnie.
Czyli otwieramy plik odczytujemy iles bajtow i zapisujemy  reszte jako nowa zawartosc.
Widzial ktos to w akcji?


To moze ja zaczne...
Przy kontakcie ze stacja i jej kernelem nie ma rozkazu do jednoczesnego zapisu i odczytu - jest to realizowane oddzielnie. Trzebaby w takim wypadku samodzielnie stworzyc takie procedury dla OS stacji, a wiadomo ze tam z pamiecia krucho.
Moim zdaniem jest to jednak zbedne, a przynajmniej w takim przykladzie jaki opisujesz Kisiel.
                   
kisiel napisal:
Czyli otwieramy plik odczytujemy iles bajtow i zapisujemy  reszte jako nowa zawartosc.


Oczywiscie pierwsza propozycja to przeczytanie, a potem \"nadpisanie\" pliku. Czyli wczytanie do pamieci C64-> skasowanie pliku z dysku->zgranie \"obcietego\" z pamieci.

Drugie rozwiazanie - akurat w tym przypadku (i jesli chodzi o pliki na stacji dyskow oczywiscie) to skrocenie \"linki\" wiazacej sektory (skoro tylko ma sie odcinac dane z pliku) oraz zmiana bitow w tablicy zajetosci blokow (BAM). No i oczywiscie w tym rozwiazaniu nalezy pamietac o ulozeniu danych w plikow w tzw LILO - > czyli ostatnie bajty beda odcinane jako pierwsze.

Kisiel w sumie nie wiele napisales: jaki to rodzaj pliku i jaki danych, jak chcesz obslugiwac stacje (wystarcza komendy OPEN ? )

Pzdr

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Otwarcie pliku do odczytu i zapisu
« Odpowiedź #2 dnia: 07 Października 2008, 15:59 »
no dobra to teraz bardziej precyzyjnie w stacji mozna uzyc opcje r,w,a Ostatnia to append. jedyny programik ktory z tego korzysta to chyba jest jakis ziper albo lha, jak dobrze pamietam, bo: umozliwia dopisanie pliku do archiwum. Moze znasz jeszcze jakis programik ktory to robi z plikiem?
Musze miec cos do testow i do podgladniecia jak to dziala... mecze teraz znowu open pod fat16
PS. ja nie mam klopotow z pamiecia.. naprawde \"Smile\"
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

Nitro__

  • Gość
Otwarcie pliku do odczytu i zapisu
« Odpowiedź #3 dnia: 07 Października 2008, 16:14 »
Program na 99% bedzie korzystal z polecen kernela, ciekawe komu chcialoby sie napisac turbo appender?
Do tego calego appendu jest taka komenda:
                   
Cytat:
Basic 4.0 Commands
------------------

APPEND
------

Format  -   APPEND# , \"\" [,D] [ON U]

Use     -   To add additional data to the end of a sequential disk
            file.
Notes   -   APPEND is used like a DOPEN command but can only be
            used to add data to an existing sequential disk file.
            APPEND opens the specified data file for write and
            positions the DOS pointers to the current end of the
            file and new data can be added. Any variable or
            evaluated expressions must be enclosed in parentheses.
            Unit defaults to device 8, drive 0.

Example -   x=1 : APPEND#1 \"data file\", D(x) ON U 9
            Opens a file with a logical number of 1 called
            \"data file\" on drive 1 of unit 9 for append.

Jak widac dziala ona tylko na plikach o dostepie sekwencyjnym, o zwyklych nalezy zapomniec. Jesli chcesz zaglebic mimo wszystko jej tajniki, to znajdz dissasemblerki kernela i kernela stacji dyskow.

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Otwarcie pliku do odczytu i zapisu
« Odpowiedź #4 dnia: 07 Października 2008, 19:05 »
nie o to mi chodzi.
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

Nitro__

  • Gość
Otwarcie pliku do odczytu i zapisu
« Odpowiedź #5 dnia: 08 Października 2008, 14:06 »
Hmm, no to nie pozostaje mi nic, tylko poradzic zapostowanie problemu na CSDB, na tym forum nie ma zadnych koderow od stacji, chyba wogole ten gatunek wyginal na Polskiej scenie.

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Otwarcie pliku do odczytu i zapisu
« Odpowiedź #6 dnia: 08 Października 2008, 14:40 »
to nawet nie chodzi o kodowanie w stacji. Chodzi o obsluge urzadzenia z poziomu basica nawet. Jak robisz podrobke jakiegos urzadzenia to musisz miec narzedzia aby je sprawdzic.
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

Nitro__

  • Gość
Otwarcie pliku do odczytu i zapisu
« Odpowiedź #7 dnia: 08 Października 2008, 16:05 »
Napisalem bzdury, ta komenda jest w jakims rozszerzonym basicu nazwanym 4.0, my mamy dwojke.
W basicu 2 mozemy prawdopodobnie tylko skorzystac z open i z parametrem accessmode na \'a\'. Niestety zadnych konkretnych instrukcji nadpisywania tym sposobem nie znalazlem.

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Otwarcie pliku do odczytu i zapisu
« Odpowiedź #8 dnia: 08 Października 2008, 16:46 »
chyba pozostanie mi pomeczyc unzipa.
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Otwarcie pliku do odczytu i zapisu
« Odpowiedź #9 dnia: 08 Października 2008, 20:06 »
Hmm...
Problem ktory tu zostal poruszony stwarza pozory trudnego, ale tak sie moze tylko wydawac. Instrukcja append (nigdy nie uzywalem) zdaje sie byc tylko uzyteczna w plikach rel albo seq, gdzie dane sa w postaci paczek (rekordow) i tam to ma sens - gdy wiadomo jakie porcje danych beda dodawane. Moze sie myle, ale tu nie ma co sie w nia zaglebiac - w zasadzie chodzi o dzialanie odwrotne do append.

Co do kodowania stacji, to nie chwalac sie udalo mi sie jakis loader nie dawno stworzyc - ktory z reszta uzywam w grze ktora robie.
Ogolnie rzecz ujmujac transmisja po szeregowym odbywa sie na zasadzie zsynchronizowania rejestrow wysylajacych/odbierajacych dane z jednego urzadzenia do drugiego (w c64 rejestr $DD00, a np. w stacji $1800) i potem ich obserwacji (transmisja bitow).
Niby proste, ale wlasnie przez to, ze tych rejestrow jest taka skromna ilosc, programowanie jest wrecz irytujace (tak jakby ktos chcial przeprowadzic dialog przez rure, ale mowiac gloskami/samogloskami jednoczesnie uwazajac zeby nie zagluszac przy tym tego co \"mowi\" odbiorca).

Co do uzywania komunikacji na poziomie wyzszym (gotowych procedur kernala, albo nawet interpretera basica) to wyglada to tak, ze otwierajac kanal mozemy odczytywac i zapisywac do puki go nie zamkniemy.
Wiec wyglada to w rzeczywistosci tak jakbysmy otwierali plik zarowno do zapisu jak i odczytu - i gdzie tu problem ?
Kisiel polecam znalezc kod do transmisji miedzy dwoma c64 (taki rodzaj chat-a) jest np. w ksiazce Frelka.

Inna sprawa, ze nie ma za bardzo uzytecznych funkcji jakie sa w innych jezykach dotyczacych plikow (zbiorow) typu seek, sizeof, eof itd.

Nitro__

  • Gość
Otwarcie pliku do odczytu i zapisu
« Odpowiedź #10 dnia: 09 Października 2008, 15:17 »
Cytuj
Hmm...
Problem ktory tu zostal poruszony stwarza pozory trudnego, ale tak sie moze tylko wydawac. Instrukcja append (nigdy nie uzywalem) zdaje sie byc tylko uzyteczna w plikach rel albo seq, gdzie dane sa w postaci paczek (rekordow) i tam to ma sens - gdy wiadomo jakie porcje danych beda dodawane. Moze sie myle, ale tu nie ma co sie w nia zaglebiac - w zasadzie chodzi o dzialanie odwrotne do append. [/quite]
No i jest dostepna w jakims basicu 4.0, ktorego kij wie, gdzie mozna znalezc - pisalem powyzej.

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Otwarcie pliku do odczytu i zapisu
« Odpowiedź #11 dnia: 09 Października 2008, 16:01 »
@skull
a mnie sie udalo zrobic turbo loader z wlaczonym ekranem z przeplotem 2, tak jakbym mial sie tez chwalic.
@ nirto, wpisz open 2,8,2\"nazwa pliku,a\" ..PRG APPEND i posluchaj co stacja zrobi z tym plikiem. To Stacja robi append a nie basic.
Chlopaki ja szukam programow do testu softu z twardzielem a nie ze stacja dyskow \"Smile\"
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

leming__

  • Gość
Otwarcie pliku do odczytu i zapisu
« Odpowiedź #12 dnia: 09 Października 2008, 16:05 »
kisiel wytlumacz po ludzku o co ci chodzi a nie tu jakies czary wypytujesz, to jest forum dla scenowcow a nie dla inzynierow z Western Digital \"Razz\"