SET ATTRIBUTES

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 22:37, 28 sie 2009
KMK (Dyskusja | wkład)

← Previous diff
Aktualna wersja
KMK (Dyskusja | wkład)

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 20: Linia 19:
sta icax2,x sta icax2,x
jsr [[Tablica skoków#JCIOMAIN|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

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