RENAME FILE
From Atariki
| Wersja z dnia 20:13, 28 sie 2009 KMK (Dyskusja | wkład) ← Previous diff |
Aktualna wersja KMK (Dyskusja | wkład) |
||
| Linia 1: | Linia 1: | ||
| - | XIO 32. 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,"Dn:old_name,new_name" | + | '''Dostępność:''' wszystkie DOS-y. |
| - | Kod w asemblerze: | + | '''Składnia [[BASIC]]-a:''' XIO 32,#''iocb'',''x1'',''x2'',"D''n'':old_name,new_name" |
| - | <pre> | + | '''Kod w asemblerze:''' |
| - | ldx #iocb*16 | + | |
| + | <code> | ||
| + | ldx #''iocb''*16 | ||
| lda #32 | lda #32 | ||
| sta iccmd,x | sta iccmd,x | ||
| - | lda #<fname | + | lda #<''fname'' |
| sta icbufa,x | sta icbufa,x | ||
| - | lda #>fname | + | lda #>''fname'' |
| sta icbufa+1,x | sta icbufa+1,x | ||
| - | lda #x1 | + | lda #''x1'' |
| sta icax1,x | sta icax1,x | ||
| - | lda #x2 | + | lda #''x2'' |
| sta icax2,x | sta icax2,x | ||
| - | jsr jciomain | + | jsr [[Tablica skoków#JCIOMAIN|jciomain]] |
| - | </pre> | + | </code> |
| gdzie: | gdzie: | ||
| - | * iocb - numer kanału [[IOCB]] z zakresu od 1 do 7. Kanał musi być zamknięty w chwili wywołania. | + | * ''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. | + | * ''x1'' - wartość AUX1. Powinna wynosić $00. |
| - | * x2 - wartość AUX2. Patrz niżej. | + | * ''x2'' - wartość AUX2. Patrz niżej. |
| - | * n - numer stacji dysków (brak pod MyDOS-em i SpartaDOS X oznacza stację bieżącą) | + | * ''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). | + | * ''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). | 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 [[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 zmianę nazwy wskazanego pliku, a w niektórych implementacjach (MyDOS, SpartaDOS X 4.4) także katalogu.
Dostępność: wszystkie DOS-y.
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.
