SET ATTRIBUTES

From Atariki

Jump to: navigation, search

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.

Personal tools