SET ATTRIBUTES: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
Nie podano opisu zmian
 
Nie podano opisu zmian
 
(Nie pokazano 1 pośredniej wersji utworzonej przez tego samego użytkownika)
Linia 3: Linia 3:
'''Dostępność:''' [[SpartaDOS X]]
'''Dostępność:''' [[SpartaDOS X]]


'''Składnia [[BASIC]]-a:''' XIO 49,#''iocb'',''x1'',''x2'',"D''n'':filename.ext"
'''Składnia [[BASIC]]-a:''' <code>XIO 49,#''iocb'',''x1'',''x2'',"D''n'':filename.ext"</code>


'''Kod w asemblerze:'''
'''Kod w asemblerze:'''


<code>
     ldx #''iocb''*16
     ldx #''iocb''*16
     lda #49
     lda #49
Linia 19: Linia 18:
     lda #''x2''
     lda #''x2''
     sta icax2,x
     sta icax2,x
     jsr jciomain
     jsr [[Tablica skoków#JCIOMAIN|jciomain]]
</code>


gdzie:
gdzie:
Linia 27: Linia 25:
* ''n'' - numer stacji dysków (brak oznacza stację bieżącą)
* ''n'' - numer stacji dysków (brak oznacza stację bieżącą)
* ''fname'' - adres specyfikacji pliku. Całość ciągu znaków trzeba zakończyć znakiem EOL (ASCII $9B).
* ''fname'' - adres specyfikacji pliku. Całość ciągu znaków trzeba zakończyć znakiem EOL (ASCII $9B).
* ''x1'' - wybór atrybutów do zmiany oraz sposobu ich ustawienia (domyślna wartość $00):
* ''x1'' - wybór atrybutów do zmiany oraz sposobu ich ustawienia ($00 = nic nie zmieniaj):
<code>
 
   Zabezpieczenie (LOCK): +1   Odbezpieczenie (UNLOCK):      +16
   Zabezpieczenie (LOCK): +1   Odbezpieczenie (UNLOCK):      +16
   Ukrycie (HIDE):       +2   Ujawnienie (UNHIDE):          +32
   Ukrycie (HIDE):         +2   Ujawnienie (UNHIDE):          +32
   Archiwalny (ARCHIVED): +4   Niearchiwalny (NOT ARCHIVED): +64
   Archiwalny (ARCHIVED): +4   Niearchiwalny (NOT ARCHIVED): +64
</code>
 
* ''x2'' - wybór atrybutów, jakie ma mieć plik podlegający zmianie ($00 = wszystkie pliki):
* ''x2'' - wybór atrybutów, jakie ma mieć plik podlegający zmianie ($00 = wszystkie pliki):
<code>
 
   Zabezpieczone (LOCKED): +1  Odbezpieczone (UNLOCKED):    +16
   Zabezpieczone (LOCKED): +1  Odbezpieczone (UNLOCKED):    +16
   Ukryte (HIDDEN):        +2  Ujawnione (UNHIDDEN):        +32
   Ukryte (HIDDEN):        +2  Ujawnione (UNHIDDEN):        +32
   Archiwalne (ARCHIVED):  +4  Niearchiwalne (NOT ARCHIVED): +64
   Archiwalne (ARCHIVED):  +4  Niearchiwalne (NOT ARCHIVED): +64
</code>


'''Uwagi:''' w przypadu, gdy jedynym zmienianym atrybutem jest stan zabezpieczenia pliku, lepiej użyć funkcji [[LOCK FILE]] i [[UNLOCK FILE]], gdyż są zgodne z wszystkimi DOS-ami.
'''Uwagi:'''
 
* atrybutu S (SUBDIRECTORY) nie można w ten sposób zmienić
* w przypadku gdy jedynym zmienianym atrybutem jest stan zabezpieczenia pliku, lepiej użyć funkcji [[LOCK FILE]] i [[UNLOCK FILE]], gdyż są zgodne z wszystkimi DOS-ami.


'''Zwracana wartość:''' Procedura zwraca w rejestrze Y ujemny [[Kody błędów Atari OS|kod błędu]] albo wartość $01 w przypadku powodzenia, oraz odpowiednio do tego ustawia znacznik N rejestru znaczników.
'''Zwracana wartość:''' Procedura zwraca w rejestrze Y ujemny [[Kody błędów Atari OS|kod błędu]] albo wartość $01 w przypadku powodzenia, oraz odpowiednio do tego ustawia znacznik N rejestru znaczników.


[[Kategoria:Niezbędnik kodera]]
[[Kategoria:Niezbędnik kodera]]

Aktualna wersja z 30 sie 2009, 01:11

Przeznaczenie: Funkcja DOS-u pozwalająca programowi na ustawianie lub kasowanie atrybutów wskazanego pliku lub katalogu.

Dostępność: SpartaDOS X

Składnia BASIC-a: XIO 49,#iocb,x1,x2,"Dn:filename.ext"

Kod w asemblerze:

    ldx #iocb*16
    lda #49
    sta iccmd,x
    lda #<fname
    sta icbufa,x
    lda #>fname
    sta icbufa+1,x
    lda #x1
    sta icax1,x
    lda #x2
    sta icax2,x
    jsr jciomain

gdzie:

  • iocb - numer kanału IOCB z zakresu od 1 do 7. Kanał musi być zamknięty w chwili wywołania.
  • n - numer stacji dysków (brak oznacza stację bieżącą)
  • fname - adres specyfikacji pliku. Całość ciągu znaków trzeba zakończyć znakiem EOL (ASCII $9B).
  • x1 - wybór atrybutów do zmiany oraz sposobu ich ustawienia ($00 = nic nie zmieniaj):
  Zabezpieczenie (LOCK):  +1   Odbezpieczenie (UNLOCK):      +16
  Ukrycie (HIDE):         +2   Ujawnienie (UNHIDE):          +32
  Archiwalny (ARCHIVED):  +4   Niearchiwalny (NOT ARCHIVED): +64
  • x2 - wybór atrybutów, jakie ma mieć plik podlegający zmianie ($00 = wszystkie pliki):
  Zabezpieczone (LOCKED): +1   Odbezpieczone (UNLOCKED):     +16
  Ukryte (HIDDEN):        +2   Ujawnione (UNHIDDEN):         +32
  Archiwalne (ARCHIVED):  +4   Niearchiwalne (NOT ARCHIVED): +64

Uwagi:

  • atrybutu S (SUBDIRECTORY) nie można w ten sposób zmienić
  • w przypadku gdy jedynym zmienianym atrybutem jest stan zabezpieczenia pliku, lepiej użyć funkcji LOCK FILE i UNLOCK FILE, gdyż są zgodne z wszystkimi DOS-ami.

Zwracana wartość: Procedura zwraca w rejestrze Y ujemny kod błędu albo wartość $01 w przypadku powodzenia, oraz odpowiednio do tego ustawia znacznik N rejestru znaczników.