SPECIFY FORMAT
From Atariki
(Różnice między wersjami)
| Wersja z dnia 20:11, 8 lis 2023 Mono (Dyskusja | wkład) (opis polecenia) ← Previous diff |
Aktualna wersja Mono (Dyskusja | wkład) (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
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 DensityD:h??Z?D@@- Enhanced DensityD:h??R@DA@- Double DensityD:H??RADA@- Quad Density
- x1 - jest zależne od rodzaju nośnika:
- $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
- $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.
