RENAME FILE
From Atariki
(Różnice między wersjami)
Wersja z dnia 20:34, 28 sie 2009 KMK (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 20:41, 28 sie 2009 KMK (Dyskusja | wkład) Next diff → |
||
Linia 1: | Linia 1: | ||
- | Funkcja [[DOS]]-u pozwalająca programowi na zmianę nazwy wskazanego pliku, a w niektórych implementacjach ([[MyDOS]], [[SpartaDOS X]] 4.4) także katalogu. | + | '''Przeznaczenie:''' Funkcja [[DOS]]-u pozwalająca programowi na zmianę nazwy wskazanego pliku, a w niektórych implementacjach ([[MyDOS]], [[SpartaDOS X]] 4.4) także katalogu. |
'''Składnia [[BASIC]]-a:''' XIO 32,#''iocb'',''x1'',''x2'',"D''n'':old_name,new_name" | '''Składnia [[BASIC]]-a:''' XIO 32,#''iocb'',''x1'',''x2'',"D''n'':old_name,new_name" |
Wersja z dnia 20:41, 28 sie 2009
Przeznaczenie: Funkcja DOS-u pozwalająca programowi na zmianę nazwy wskazanego pliku, a w niektórych implementacjach (MyDOS, SpartaDOS X 4.4) także katalogu.
Składnia BASIC-a: XIO 32,#iocb,x1,x2,"Dn:old_name,new_name"
Kod w asemblerze:
ldx #iocb*16 lda #32 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.
- x1 - wartość AUX1. Powinna wynosić $00.
- x2 - wartość AUX2. Patrz niżej.
- n - numer stacji dysków (brak pod MyDOS-em i SpartaDOS X oznacza stację bieżącą)
- fname - adres specyfikacji pliku, którego nazwa ma zostać zmieniona. Po niej musi następować nowa nazwa oddzielona przecinkiem, jako to widać w powyższym przykładzie dla BASIC-a. Całość ciągu znaków trzeba zakończyć znakiem EOL (ASCII $9B).
Wartość x2 wynosi normalnie $00. Pod MyDOS-em pozwala to na zmianę nazwy pliku lub katalogu, natomiast SpartaDOS zmieni tylko nazwę pliku ignorując katalogi. Żeby zmienić nazwę katalogu, trzeba ustawić wartość x2 na 128 (działa to w ten sposób od wersji 4.42 SpartaDOS X, poprzednie wersje ignorują wartość parametru).
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.