RENAME FILE

From Atariki

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

← Previous diff
Wersja z dnia 20:26, 28 sie 2009
KMK (Dyskusja | wkład)

Next diff →
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.+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"+'''Składnia [[BASIC]]-a:''' XIO 32,#''iocb'',''x1'',''x2'',"D''n'':old_name,new_name"
-Kod w asemblerze:+'''Kod w asemblerze:'''
-<pre>+<code>
- ldx #iocb*16+ 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 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).

Wersja z dnia 20:26, 28 sie 2009

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).

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