SPECIFY FORMAT: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
Mono (dyskusja | edycje)
opis polecenia
 
Mono (dyskusja | edycje)
m fspec
 
Linia 3: Linia 3:
'''Dostępność:''' [[SuperDOS]].
'''Dostępność:''' [[SuperDOS]].


'''Składnia [[BASIC]]-a:''' XIO 253,#''iocb'',''x1'',''x2'',"D''n'':fname"
'''Składnia [[BASIC]]-a:''' XIO 253,#''iocb'',''x1'',''x2'',"D''n'':fspec"


'''Kod w asemblerze:'''
'''Kod w asemblerze:'''
Linia 11: Linia 11:
     lda #253
     lda #253
     sta iccmd,x
     sta iccmd,x
     lda #<''fname''
     lda #<''fspec''
     sta icbufa,x
     sta icbufa,x
     lda #>''fname''
     lda #>''fspec''
     sta icbufa+1,x
     sta icbufa+1,x
     lda #''x1''
     lda #''x1''
Linia 26: Linia 26:
* ''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.
* ''n'' - numer stacji dysków.
* ''n'' - numer stacji dysków.
* ''fname'' - specyfikacja formatu dysku:<dl>
* ''fspec'' - specyfikacja formatu dysku:<dl>
<dd>
<dd>
<ul>
<ul>
Linia 44: Linia 44:
<li>$21 - formatowanie w gęstości ustawionej w napędzie, chyba że jest to Enhanced Density, wtedy formatowanie w Single Density</li>
<li>$21 - formatowanie w gęstości ustawionej w napędzie, chyba że jest to Enhanced Density, wtedy formatowanie w Single Density</li>
<li>$22 - formatowanie w Enhanced Density</li>
<li>$22 - formatowanie w Enhanced Density</li>
<li>$66 - US Doubler: formatowanie wg ''x2'' ($80 lub $81), adresem tabeli z przeplotem sektorów w AUX3 i AUX4, oraz parametrami podanymi w specyfikacji pliku ''fname''</li>
<li>$66 - US Doubler: formatowanie wg ''x2'' ($80 lub $81), z adresem tabeli z przeplotem sektorów w AUX3 i AUX4, oraz parametrami podanymi w specyfikacji formatu ''fspec''</li>
<li>$69 - SUPERMAX: formatowanie w gęstości ustawionej w napędzie (prócz Enhanced Density) z przeplotem</li>
<li>$69 - SUPERMAX: formatowanie w ustawionej w napędzie (prócz Enhanced Density) gęstości z przeplotem</li>
<li>$A1 - XF551: formatowanie w gęstości ustawionej w napędzie z przeplotem</li>
<li>$A1 - XF551: formatowanie w ustawionej w napędzie gęstości z przeplotem</li>
</ul>
</ul>
</dd>
</dd>
Linia 65: Linia 65:
<ul>
<ul>
<li>$00 - ignorowane</li>
<li>$00 - ignorowane</li>
<li>$01 - gęstość ustawiana odpowiednio do specyfikacji pliku ''fname''</li>
<li>$01 - gęstość ustawiana odpowiednio do specyfikacji formatu ''fspec''</li>
<li>$80 - format bez zapisu boot sektorów, VTOC ani katalogu</li>
<li>$80 - format bez zapisu boot sektorów, VTOC ani katalogu</li>
<li>$81 - gęstość ustawiana odpowiednio do specyfikacji pliku ''fname'', format bez zapisu boot sektorów, VTOC ani katalogu</li>
<li>$81 - gęstość ustawiana odpowiednio do specyfikacji formatu ''fspec'', format bez zapisu boot sektorów, VTOC ani katalogu</li>
</ul>
</ul>
</dd>
</dd>

Aktualna wersja z 9 lis 2023, 10:57

Przeznaczenie: Funkcja DOS-u pozwalająca programowi na sformatowanie dyskietki w wyspecyfikowanej gęstości. Patrz też FORMAT DISK.

Dostępność: SuperDOS.

Składnia BASIC-a: XIO 253,#iocb,x1,x2,"Dn:fspec"

Kod w asemblerze:

    ldx #iocb*16
    lda #253
    sta iccmd,x
    lda #<fspec
    sta icbufa,x
    lda #>fspec
    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.
  • fspec - specyfikacja formatu dysku:
  • D:h??R?@@@ - Single Density
  • D:h??Z?D@@ - Enhanced Density
  • D:h??R@DA@ - Double Density
  • D:H??RADA@ - Quad Density

Całość ciągu znaków trzeba zakończyć znakiem EOL (ASCII $9B).

  • x1 - jest zależne od rodzaju nośnika:
dyskietka
  • $00 - formatowanie w gęstości ustawionej w napędzie
  • $21 - formatowanie w gęstości ustawionej w napędzie, chyba że jest to Enhanced Density, wtedy formatowanie w Single Density
  • $22 - formatowanie w Enhanced Density
  • $66 - US Doubler: formatowanie wg x2 ($80 lub $81), z adresem tabeli z przeplotem sektorów w AUX3 i AUX4, oraz parametrami podanymi w specyfikacji formatu fspec
  • $69 - SUPERMAX: formatowanie w ustawionej w napędzie (prócz Enhanced Density) gęstości z przeplotem
  • $A1 - XF551: formatowanie w ustawionej w napędzie gęstości z przeplotem
ramdysk
  • $00 - formatowanie z maksymalnym rozmiarem sektora i maksymalną ilością dostępnej pamięci
  • $01 - formatowanie z Single Density, 64KB, 502 sektory (SuperRAM, 130XE lub Axlon)
  • $02 - formatowanie z Single Density, 90KB, 707 sektorów (SuperRAM lub Axlon)
  • $03 - formatowanie z Enhanced Density, 128KB, 1011 sektorów (SuperRAM)
  • $04 - formatowanie z Double Density, 180KB, 707 sektorów (SuperRAM)
  • $05 - formatowanie z Xtended Density, 256KB, 1011 sektorów (130XE SuperRAM)
  • x2 - niezależnie od rodzaju dysku:
  • $00 - ignorowane
  • $01 - gęstość ustawiana odpowiednio do specyfikacji formatu fspec
  • $80 - format bez zapisu boot sektorów, VTOC ani katalogu
  • $81 - gęstość ustawiana odpowiednio do specyfikacji formatu fspec, format bez zapisu boot sektorów, VTOC ani katalogu

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.