26

no to mi sie wydawalo (wydawalo ze byl jakis klawisz, trzymajac ktory obraz nie migal a program sie dalej wczytywal - wolniej)

http://atari.pl/hsc/ad.php?i=1.

27

Dobra ... Karinka ruszyła na moim XEGS'ie :-)
Pytanie czemu pod SDX chodzi wolno ? Trzeba tam coś dograć ?
Nie mam podpiętego IDE+ ... więc Sparta chodzi na oryginalnym configu...

"wszystko się kiedyś kończy......."

28 Ostatnio edytowany przez stryker (2012-01-17 06:48:56)

I tak w nim to chodzi (w tle efekty dzwiekowe nimfy ;D )...
http://www.youtube.com/watch?v=Hgr074obfUw
http://www.youtube.com/watch?v=zcfBmdHh5aA

"wszystko się kiedyś kończy......."

29

DObra mam mały problem ...
Jako ze odpalałem numena ale nei oglądałem go w całości....na karince....po wczytanu i oglądnieciu w pewnym momencie wywala mi sie za kazdym razem w tej samej chwili(napewno komp sprawny, wczytywałem numena z sio2sd szedł bez problemu.)
Tu niby tez sie caly wczytuje ale ....czemu tak sie dzieje ? Jakies pomysły ?
Tutaj filmik: http://www.youtube.com/watch?v=e2jmxJNf89o

"wszystko się kiedyś kończy......."

30

Dobra Numen juz chodzi.... winnym okazał się Toms Navigator.... mam wersje 1.23.... widocznie cos podczas kopiowanie upierdziela....
Skopiowałem na gołym Mydosie... i śmiga ;-)
Jest jakis program co by mi zweryfikował nagrane pliki z oryginalnej dyskietki... czy faktycznie skopiowały sie 1:1 ?

"wszystko się kiedyś kończy......."

31

pbi device id = 0x80 (the only possible)

WD1772/0 is mapped at D100-D103

writing 0x80 to D1F8 selects second half of 4kb rom
writing 0x00 to this register, restores lower half, its not restored on device reset

D104 is status/configuration register (RO)
 D5-D0 - configuration
 D6-D7 - WD177x status
  D0 - boot order - 0 - SIO, 1 - KARIN MAXI first
  D1 - 0 - Auto configure, 1 - manual config (depends on D2-D5)
  D2 - stepping for DS1 - 0 - 3ms, 1 - 6ms
  D3 - stepping for DS0 - 0 - 3ms, 1 - 6ms
  D4 - DS1 number of tracks, 0 - 80 tracks drive, 1 - 40 tracks drive
  D5 - DS0 number of tracks, 0 - 80 tracks drive, 1 - 40 tracks drive
  D6 - DRQ line from WD chip
  D7 - INTRQ line from WD chip

remaining registers are WO, data bus is discarded, A5 line controls logic level of output pins:
D110 - enables DS0
D130 - disables DS0
D111 - enables DS1
D131 - disables DS1
D112 - set side 1
D132 - set side 0
D113 - sets DDEN line of WD117x to low
D133 - sets DDEN high
D114 - disables index pulse line from the drive
D134 - enables index pulse line from the drive
D115 - sets emulated index pulse to logic high
D135 - sets emulated index pulse to logic low

kto sie nudzi i dopisze do atariki?

przechodze na tumiwisizm

32

stryker napisał/a:

Jest jakis program co by mi zweryfikował nagrane pliki z oryginalnej dyskietki... czy faktycznie skopiowały sie 1:1 ?

Professional Copy.

https://www.youtube.com/watch?v=jofNR_WkoCE

33

powiesc w odcinkach
odcinek pierwszy

    opt    h-f+
    org    $d800
;
PBI_Entry:
PBI_rev:    .byte    '1.0';
PBI_DEVID1:    .byte    0x80,0x00
PBI_PDIOR:    jmp    Karin_IO    ;D90B
PBI_PDINT:    jmp    Karin_IRQ    ;D898
PBI_DEVID2:    .byte    0x91
PBI_PDSPC:    .byte    0x00
PBI_PDVOPV:    .word    Karin_CIO_Open-1    ;D900
PBI_PDVCLV:    .word    Karin_CIO_Close-1    ;D900
PBI_PDVGBV:    .word    Karin_CIO_GetByte-1    ;D8F6
PBI_PDVPBV:    .word    Karin_CIO_PutByte-1    ;D900
PBI_PDVSTV:    .word    Karin_CIO_Status-1    ;D900
PBI_PDVSPV:    .word    Karin_CIO_Special-1    ;D900
PBI_PDINIT:    
;-----------------------------------------------------------------------------------------
Karin_Init:
        ldx    #$4E            ; N: device
        ldy    #$8F
        lda    #$E4            ; Point to Generic Parallel Device Table (GPDVV, 0xE48F)
        jsr    PENTV            ; install new device
        lda    #$80            ; Karin-Maxi fixed PBI device number
        sta    PDVMSK            ; report that back to the system
        lda    #$D0
        sta    WD177x_Command        ; read track command
        ldx    #$1E
Karin_Init_wait1:
        dex
        bne    Karin_Init_wait1
        stx    Karin_EnableIP        ; enable Index Pulse singal comming from the drive
        stx    Karin_DslctDS0
        stx    Karin_DslctDS1        ; deselect both drives
Karin_Init_l1:    stx    Karin_AssertIP        ; emulate Index Pulse
        php                ;
        plp                ; wait...
        php                ;
        plp                ;
        stx    Karin_DessertIP        ; Index Pulse end
        lda    WD177x_Status
        bmi    Karin_Init_l1        ; repeat, if Motor On
        lda    WARMST
        bne    Karin_Init_End        ; end here if this is warm start
        stx    Karin_EnableDD
        inx                ; set drive numer to #1
        lda    Karin_Config
        and    #$10            ; auto config?
        bne    Karin_AutoConfigure    ; yes, so sense drives
Karin_Init_Config_l1:
        sta    Karin_DslctDS0
        sta    Karin_DslctDS1        ; deselect both drives
        sta    Karin_SlctDS0,X        ; select desired drive
        lda    Karin_Config        ; load configuration register
        and    Config_Table,X        ; manual configured for 6ms?
        beq    Karin_Init_skip1    ; yes, so skip setting it to 3ms
        lda    #$03
        sta    ACMVAR+4,X
Karin_Init_skip1:
        lda    #$08
        ora    ACMVAR+4,X
        sta    WD177x_Command        ; restore command (seek to track #0)
Karin_Init_wait2:
        bit    Karin_Status
        bmi    Karin_Init_wait2    ; wait until seek is complete
        lda    WD177x_Status
        and    #$04
        sta    ACMVAR,X        ; bit 2 ov ACMVAR is now drive-present flag
        beq    Karin_Init_Next        ; no drive here, check next drive
        lda    Karin_Config
        and    Config_Table+2,X    ; check if configured for 80 tracks
        beq    Karin_Init_Next        ; no, then configuration for that drive is done
        lda    ACMVAR,X
        ora    #$10
        sta    ACMVAR,X
Karin_Init_Next:
        dex
        bpl    Karin_Init_Config_l1
Karin_Init_End:
Karin_IRQ:      rts
;-----------------------------------------------------------------------------------------
Karin_AutoConfigure:
        sta    Karin_DslctDS0
        sta    Karin_DslctDS1        ; deselect both drives
        sta    Karin_SlctDS0,X        ; select only actual one
        lda    #$08
        sta    WD177x_Command        ; restore (seek to track 0) with spin-up sequence
Karin_AutoC_wait1:
        bit    Karin_Status
        bmi    Karin_AutoC_wait1    ; wait for INTRQ from WD177x
        lda    WD177x_Status
        and    #$04            ; bit 2 in ACMVAR,x is now drive-found flag
        sta    ACMVAR,X
        beq    Karin_AutoC_Next    ; track 0 not found, check next drive
        lda    #$03            ; set stepping for 3ms
Karin_AutoC_ChangeStepping:
        sta    ACMVAR+4,X        ; now ACMVAR+4,x contains stepping information 0x03 = 3ms, 0x00 = 6ms
        ldy    #45
        sty    WD177x_Data        ; try to go to track 45
        lda    #$10
        ora    ACMVAR+4,X        ; build command value with apriopriate flags
        sta    WD177x_Command        ; seek command
Karin_AutoC_wait2:
        bit    Karin_Status
        bmi    Karin_AutoC_wait2    ; wait for INTRQ
Karin_AutoC_Step_l1:
        lda    #$60
        sta    WD177x_Command        ; step-out
Karin_AutoC_wait3:
        bit    Karin_Status
        bmi    Karin_AutoC_wait3    ; wait for INTRQ
        dey
        lda    WD177x_Status
        and    #$04            ; are we on track 0?
        beq    Karin_AutoC_Step_l1    ; no, so step out again
        lda    #$00            ; set stepping to 6ms (in case of retry) and reset 80 track drive marker
        cpy    #$00            ; track number is 0?
        beq    Karin_AutoC_80Tracks    ; yes, 80 track drive found
        cpy    #$09            ; less than 9 tracks remaining?
        bcc    Karin_AutoC_40Tracks    ; yes - so 40 track drive found, and stepping is 3ms
                        ; no - set stepping to 6ms and try again
        bcs    Karin_AutoC_ChangeStepping
Karin_AutoC_80Tracks:
        lda    #$10            ; set 80 track drive marker
Karin_AutoC_40Tracks:
        ora    ACMVAR,X
        sta    ACMVAR,X        ; save status of that drive
Karin_AutoC_Next:
        dex
        bpl    Karin_AutoConfigure
        rts        
;-----------------------------------------------------------------------------------------
; Karin CIO routines - just for fun
;-----------------------------------------------------------------------------------------
Karin_CIO_GetByte:
        lda    RANDOM            ;get random byte
        ldy    RANDOM
        cpy    #$88            ; is it EOF?
        beq    Karin_CIO_GetByte_EOF    ; if so, return EOF
Karin_CIO_Open:
Karin_CIO_Close:
Karin_CIO_PutByte:
Karin_CIO_Status:
Karin_CIO_Special:
        ldy    #$01            ; set status to OK
Karin_CIO_GetByte_EOF:
        sec
        rts
;-----------------------------------------------------------------------------------------
Config_Table:
    .byte $04,$08,$01,$02

jak widać, bity 0-5 rejestru konfiguracyjnego stacji, powinny być odwrócone:

  D0 - DS0 number of tracks, 0 - 80 tracks drive, 1 - 40 tracks drive
  D1 - DS1 number of tracks, 0 - 80 tracks drive, 1 - 40 tracks drive
  D2 - stepping for DS0 - 0 - 3ms, 1 - 6ms
  D3 - stepping for DS1 - 0 - 3ms, 1 - 6ms
  D4 - 0 - Auto configure, 1 - manual config (depends on D2-D5)
  D5 - boot order - 0 - SIO, 1 - KARIN MAXI first
przechodze na tumiwisizm

34 Ostatnio edytowany przez Fox (2012-01-24 21:39:39)

Z przyszłych odcinków najfajniejszy będzie z przeplotem sektorów na stosie. :)

Warto byłoby naprawić błędy zapisu przez wprowadzenie opóźnienia na rozpędzenie silnika i po przesunięciu głowicy (wystarczy wysłać odpowiednie komendy do kontrolera). Można też zostawić włączone DMA dla DL - nie skacze obraz. DMA można wyłączać dopiero po przesunięciu głowicy. Mnie osobiście przeszkadzały paski i szumy podczas transmisji. Takie zmiany pamiętam z MasterDOS.

Wkurzająca była obsługa formatów DSSD i DSED - przecież nikt ich na Atari nie stosuje, a były wykrywane przy przeformatowaniu z DS na SS.

4 KB ROMu?

https://www.youtube.com/watch?v=jofNR_WkoCE

35

2 banki po 2kb, ale oba identyczne
nie ma tez odwolan do rejestru zmiany banku
paski i szum to featura, aktywnie odwoluje sie to to do colbak i pokeya
ja bym wolal taka feature ktora pozwoli na niewylaczanie ekranu i do takiej bede dazyl (tak wiem, nie da sie na cpu tego obgonic z wlaczonym ekranem, totez nie zamierzam)

przechodze na tumiwisizm

36

6502 wyrabia do GR. 3 + PMG. ;)

https://www.youtube.com/watch?v=jofNR_WkoCE

37

Fox ... poprawiłbyś te błędy ... z wsadu do epromki....
Mam rozumieć gdy obraz nie bedzie "skakał" to i transfer spadnie ?

"wszystko się kiedyś kończy......."

38 Ostatnio edytowany przez Fox (2012-01-26 07:59:38)

Poprawię, jak znajdę trochę czasu.
Transfer nie spadnie.
Czy była tylko jedna wersja firmware-u?

https://www.youtube.com/watch?v=jofNR_WkoCE

39

raczej nie
disasm jest do wersji 1.0, rom karinki od stryja raportuje 1.2 ale nie mam zamiaru zaczynac od poczatku

przechodze na tumiwisizm

40

diffa zrob ;)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

41

Jest wersja dla WD1770 i WD1772

"wszystko się kiedyś kończy......."

42

Poproszę o dumpy wszystkich wersji.

https://www.youtube.com/watch?v=jofNR_WkoCE

43

Fox masz w załączniku.
Ogólnie to dla wersji 1772 - mam 3 rożne pliki ale każdy działa (sprawdziłbyś czym się różnią ?)
Do WD1770 jest jeden....
Co w kodzie zostało zmienione ? (Dla WD1770 / WD1772)
Dodatkowo źródła od Jer'a

Post's attachments

wd1772_wd1770.zip 18.69 kb, liczba pobrań: 18 (od 2012-01-26) 

Tylko zalogowani mogą pobierać załączniki.
"wszystko się kiedyś kończy......."

44

Te "źródła" to zdisassemblowany kod z epromu, ale po porównaniu z candlowym bardzo podobny.

45

Co trza zrobić żeby razem ruszyło IDE+ i Karinka ?
Bo się do tego powoli przymierzam ....

"wszystko się kiedyś kończy......."

46

przestaw rezystor w ide+ na inne miejsce niz ostatnie

przechodze na tumiwisizm

47

fajnie tylko gdzie to jest ? ;-)

A tak z innej beczki ...podłączyłem napęd 5,25 FB-55BR 101-U  (360K)
Czyta i formatuje mi w Double i 360K ....odczytuje atarowskie dyskietki....
ale nie chce isc w S i E ...
Coś trzeba w tej stacji jeszcze przestawić ? By te formaty zaczęło tez czytać ?

"wszystko się kiedyś kończy......."

48 Ostatnio edytowany przez stryker (2012-02-02 21:48:03)

Dobra już wszystko jasne....
Test zrobiłem z oryginalnym rezonatorem w stacji 480 kHz i podmienionym 460 kHz różnicy brak.
Zrobiłem test. Wychodzi na to że do obsługi atarowych formatów w stacji 5,25 - nadaje się TYLKO WD1772 z końcówką 02-02 !! Być może jest też wersja WD1770 02-02 ... niestety takiej nie posiadam.
Reszta AJAX C302434, WD1770 00-02 i WD1772 00-02 nadaje się tylko raczej do formatów 360/720 KB (chyba że się myle i można je zmusić do tego by czytało wszystko)
Testowałem stacje j/w z 4 rożnymi dyskietkami (3 oryginały i jedna składanka)
a) Sound Tracker SINGLED
b) AD 2044 zapewne MEDIUM
c) Miecze Valdgira II MEDIUM
d) nagrana składanka w DOUBLED
i tak:
1) WD1772 00-02
Poszedł tylko Sound Tracker na reszcie czarny ekran.
2) WD 1770 00-02
j/w
3) AJAX
AD.2004 - działa
Składanka - działa
Miecze Valdgira II - ładuje się do loadera i po sprawdzeniu zabezpieczen koniec wczytywania...
Sound Tracker nie działa.
4) WD1772 02-02
Działają wszystkie dyskietki.
Testowałem formatowanie i nagrywanie w Toms Navigatorze (S/M/D/360) idą bez problemu.

To tyle ... czekam na wskazówki...

"wszystko się kiedyś kończy......."

49 Ostatnio edytowany przez jer (2012-02-02 21:35:44)

Ja bym jeszcze próbował z regulacją stałej czasowej LS123 do każdego typu WD. Pamiętaj, że układ był dostrajany do konkretnego egemplara WD-ka, który potem pozostawał w układzie na stałe. Na schematach Mariusza są wartości 1k8 i 180pF, a na moim karcie, z któregorobiłem schemat było 160pF.

50

stryker napisał/a:

Dobra już wszystko jasne....
Test zrobiłem z oryginalnym rezonatorem w stacji 480 kHz i podmienionym 460 kHz różnicy brak. (ma niby spowalniać obroty silnika)

A gdzieś Ty usłyszał, że spowolni obroty silnika?

Ceterum censeo Germaniam esse delendam.