Czy ktoś może mi pomóc w zakodowaniu zapisu na dyskietkę? Korzystam z procedury JSIOINT pod $E459. Z odczytem jest wszystko OK pod warunkiem, że w emulatorze Atari800Win Plus 4.0 jest włączona opcja SIO patch. Kiedy emulacja stacji dysków pracuje z rzeczywistą prędkością mogę czekać w nieskończoność i nic się nie załaduje.
Większy problem jest z zapisem. Wykonuję program wg kodu:
lda #$31
sta $0300
lda #$01
sta $0301
lda #$50
sta $0302
lda #$80
sta $0303
lda <$4000 ;zapis obszaru od $4000
sta $0304
lda >$4000
sta $0305
lda #$08
sta $0306
lda <$100 ;długośc bloku 256 bajtów
sta $0308
lda >$100
sta $0309
lda <$ff ;zapis na sektor nr 255
sta $030a
lda >$ff
sta $030b
jsr $E459
Po skompilowaniu programu dane zapisują się tylko za pierwszym razem. Przy kolejnych próbach plik .atr się nie zmienia. Sprawdzałem datę modyfikacji i dane w miejscu tego sektora.
Dyskietkę stworzyłem programem MakeATR jako DD (720 sektorów po 256 bajtów)