176

(11 odpowiedzi, napisanych Programowanie - 8 bit)

Tu w załączniku orginalny plik z projektu SDRIVE

177

(11 odpowiedzi, napisanych Programowanie - 8 bit)

Loader ma 179=6+173 bajtow, a więc reszta drugiego sektora wypełniona jest pewnie zerami.
Ciekawostką jest to, że kod jest relokowalny w taki sposób, że wszystkie wystąpienia bajtu '$07' w  loaderze można zamienić na inny numer strony pamięci, np. '$05'.
Np. w appce SIO2BT można przytrzymać palec na nazwie pliku gra.xex, żeby pojawiła się lista stron pamięci, na którą chcemy załadować loader.

178

(11 odpowiedzi, napisanych Programowanie - 8 bit)

Sorry za edytowanie, ale sam zorientowałem się, że coś nie gra.
Tutaj jeszcze raz uwzględniając poprawkę, że
"Program uruchamiany jest od adresu wczytywania, plus sześć bajtów. "

Nagłówek BOOT-a

72 - wartość bez znaczenia
02 - liczba 128-bajtowych sektorów dyskietki jakie należy wczytać 
5f 07 - adres, pod jaki system operacyjny wczyta całość danych ($75F)
f8 07 - adres ponownego inicjowania programu w przypadku wciśnięcia klawisza RESET ($7f8)

Kod zdisassemblowany od adresu $75F+6

                  * = 0765
0765   A9 20      LDA #$20
0767   8D 04 03   STA $0304
076A   8D 44 02   STA $0244
076D   A9 07      LDA #$07
076F   8D 05 03   STA $0305
0772   A9 70      LDA #$70
0774   8D 0A 03   STA $030A
0777   A9 01      LDA #$01
0779   8D 0B 03   STA $030B
077C   85 09      STA $09
077E   60         RTS
077F   7D 8A 48   ADC $488A,X
0782   20 53 E4   JSR $E453
0785   88         DEY
0786   D0 FA      BNE $0782
0788   68         PLA
0789   AA         TAX
078A   8C 8E 07   STY $078E
078D   AD 7D 07   LDA $077D
0790   EE 8E 07   INC $078E
0793   60         RTS
0794   A9 93      LDA #$93
0796   8D E2 02   STA $02E2
0799   A9 07      LDA #$07
079B   8D E3 02   STA $02E3
079E   A2 02      LDX #$02
07A0   20 DA 07   JSR $07DA
07A3   95 43      STA $43,X
07A5   20 DA 07   JSR $07DA
07A8   95 44      STA $44,X
07AA   35 43      AND $43,X
07AC   C9 FF      CMP #$FF
07AE   F0 F0      BEQ $07A0
07B0   CA         DEX
07B1   CA         DEX
07B2   10 EC      BPL $07A0
07B4   30 06      BMI $07BC
07B6   E6 45      INC $45
07B8   D0 02      BNE $07BC
07BA   E6 46      INC $46
07BC   20 DA 07   JSR $07DA
07BF   A2 01      LDX #$01
07C1   81 44      STA ($44,X)
07C3   B5 45      LDA $45,X
07C5   D5 43      CMP $43,X
07C7   D0 ED      BNE $07B6
07C9   CA         DEX
07CA   10 F7      BPL $07C3
07CC   20 D2 07   JSR $07D2
07CF   4C 94 07   JMP $0794
07D2   A9 03      LDA #$03
07D4   8D 0F D2   STA $D20F
07D7   6C E2 02   JMP ($02E2)
07DA   AD 8E 07   LDA $078E
07DD   CD 7F 07   CMP $077F
07E0   D0 AB      BNE $078D
07E2   EE 0A 03   INC $030A
07E5   D0 03      BNE $07EA
07E7   EE 0B 03   INC $030B
07EA   AD 7D 07   LDA $077D
07ED   0D 7E 07   ORA $077E
07F0   D0 8E      BNE $0780
07F2   20 D2 07   JSR $07D2
07F5   6C E0 02   JMP ($02E0)
07F8   20 DA 07   JSR $07DA
07FB   8D E0 02   STA $02E0
07FE   20 DA 07   JSR $07DA
0801   8D E1 02   STA $02E1
0804   2D E0 02   AND $02E0
0807   C9 FF      CMP #$FF
0809   F0 ED      BEQ $07F8
080B   A9 20      LDA #$20
080D   8D 8E 07   STA $078E
0810   F0 82      BEQ $0794
0812              .END

179

(11 odpowiedzi, napisanych Programowanie - 8 bit)

Jak już napisałem na forum: http://www.atari.org.pl/forum/viewtopic … 36#p252436
zauważyłem , że XEX loader z projektu SDRIVE wyłącza BASIC, czyli, ze nie trzeba wciskać OPTION, żeby załadować gry potrzebujące więcej RAM-u.

Zastanawiam się, jak działa ta magia, bo w kodzie loader-a nie widzę odniesień do $D301 (PORTB).
Kod zdeasemblowałem na szybko za pomocą http://e-tradition.net/bytes/6502/disassembler.html
Plik binarny w załączeniu.

Czy ktoś ma jakiś pomysł?

                  * = 075F
075F   A9 20      LDA #$20
0761   8D 04 03   STA $0304
0764   8D 44 02   STA $0244
0767   A9 07      LDA #$07
0769   8D 05 03   STA $0305
076C   A9 70      LDA #$70
076E   8D 0A 03   STA $030A
0771   A9 01      LDA #$01
0773   8D 0B 03   STA $030B
0776   85 09      STA $09
0778   60         RTS
0779   7D 8A 48   ADC $488A,X
077C   20 53 E4   JSR $E453
077F   88         DEY
0780   D0 FA      BNE $077C
0782   68         PLA
0783   AA         TAX
0784   8C 8E 07   STY $078E
0787   AD 7D 07   LDA $077D
078A   EE 8E 07   INC $078E
078D   60         RTS
078E   A9 93      LDA #$93
0790   8D E2 02   STA $02E2
0793   A9 07      LDA #$07
0795   8D E3 02   STA $02E3
0798   A2 02      LDX #$02
079A   20 DA 07   JSR $07DA
079D   95 43      STA $43,X
079F   20 DA 07   JSR $07DA
07A2   95 44      STA $44,X
07A4   35 43      AND $43,X
07A6   C9 FF      CMP #$FF
07A8   F0 F0      BEQ $079A
07AA   CA         DEX
07AB   CA         DEX
07AC   10 EC      BPL $079A
07AE   30 06      BMI $07B6
07B0   E6 45      INC $45
07B2   D0 02      BNE $07B6
07B4   E6 46      INC $46
07B6   20 DA 07   JSR $07DA
07B9   A2 01      LDX #$01
07BB   81 44      STA ($44,X)
07BD   B5 45      LDA $45,X
07BF   D5 43      CMP $43,X
07C1   D0 ED      BNE $07B0
07C3   CA         DEX
07C4   10 F7      BPL $07BD
07C6   20 D2 07   JSR $07D2
07C9   4C 94 07   JMP $0794
07CC   A9 03      LDA #$03
07CE   8D 0F D2   STA $D20F
07D1   6C E2 02   JMP ($02E2)
07D4   AD 8E 07   LDA $078E
07D7   CD 7F 07   CMP $077F
07DA   D0 AB      BNE $0787
07DC   EE 0A 03   INC $030A
07DF   D0 03      BNE $07E4
07E1   EE 0B 03   INC $030B
07E4   AD 7D 07   LDA $077D
07E7   0D 7E 07   ORA $077E
07EA   D0 8E      BNE $077A
07EC   20 D2 07   JSR $07D2
07EF   6C E0 02   JMP ($02E0)
07F2   20 DA 07   JSR $07DA
07F5   8D E0 02   STA $02E0
07F8   20 DA 07   JSR $07DA
07FB   8D E1 02   STA $02E1
07FE   2D E0 02   AND $02E0
0801   C9 FF      CMP #$FF
0803   F0 ED      BEQ $07F2
0805   A9 20      LDA #$20
0807   8D 8E 07   STA $078E
080A   F0 82      BEQ $078E
080C              .END

180

(243 odpowiedzi, napisanych Fabryka - 8bit)

Popełniłem właśnie patcha do patcha (metapatcha?).
W każdym razie kawał dobrej nikomu niepotrzebnej roboty :)

https://github.com/TheMontezuma/highspeed-sio/releases

Ci co mają i używają Ultimate 1MB z firmware-em FJC znają funkcję SIO Driver.
Ponieważ U1MB to urządzenie PBI, może ono przechwycić żadania dostępu do SIO i zamiast systemowych procedur, wykonywany jest zawarty w U1MB kod HIAS-a pozwalający na szybką transmisję danych.
FJC zadbał o konfigurację ustawień - użytkownik może wybrać, czy szybki kod SIO ma być zastosowany do:
- dysków D1-D4
- wszystkich dysków i PCLINK-a
- wszystkich urządzeń SIO
oraz wybrać tryb pracy driver-a:
- HSIO (w pełni zgodny z kodem HIAS-a)
- SIO2BT (tylko 19200, ze zwiększonym timeoutem)
- HSIO+SIO2BT (zwiększony timeout, najpierw próba komunikacji z 57600, potem wolniej, a jeśli się nie uda, to detekcja urządzeń zgodna z kodem HIAS-a)
To jest od dawna dostępne i było tylko tytułem przypomnienia.

Na warsztat wziąłem konfigurację: HSIO+SIO2BT dla wszystkich urządzeń.
Postanowiłem rozszerzyć patch-a "Highspeed SIO" autorstwa HIAS-a o obsługę SIO2BT (w powyższym trybie).
Podchodziłem do tematu parę razy, ale z braku czasu odkładałem go ciągle na później.
Tym razem się udało (na Lost Party posunąłem projekt do przodu i skończyłem go tydzień później).

Dzięki tool-owi "patchrom" można spatchować standardowy OS i zainstalować go w Atari, w którym nie ma U1MB.
Taki ROM pozwala na komunikację z SIO2BT z prędkością 57600 lub 19200
oraz na super szybką (HSIndex=0) komunikację z innymi urządzeniami (SIO2SD, SDRIVE, RespeQt, itd.) oraz ze stacjami dyskietek.

To już druga alternatywa wspierająca SIO2BT i 57600 Baud.
Pierwszą jest napisany od zera przez Mr.Atari system operacyjny zgodny ze specyfikacją Atari:
http://www.mr-atari.com/Mr.Atari/MyBIOS/

Mam jedno zmodowane Atari bez U1MB, ale ze zmieniaczem OS-ów (16 romów), do którego wgrałem oba systemy. Również Atari ITX od x_angel-a dostało update.

Przy okazji testowania odkryłem Amerykę. Pewnie wszyscy to już wiedzą, ale i tak napiszę, bo może komuś to ułatwi zabawę z Atari.
Otóż loader do plików XEX z projektu SDRIVE (którego użyłem w SIO2BT) automatycznie wyłącza BASIC!
Czyli ładując gry w formacie XEX z appki SIO2BT, czy z SDRIVE-MAX nie musimy trzymać wciśniętego przycisku OPTION.
To samo dotyczy ATR-ów z kolekcji Homesoft. Loader wyświetlający menu z wyborem gier również wyłącza BASIC.
Mój przycisk OPTION jest w każdym razie bardzo zadowolony z tego odkrycia :)
A było ono możliwe dzięki rozszerzeniu Bios4Config:
http://www.8bit-retro.de/hardwaredoc/pr … onfig.html
które pokazuje na wyświetlaczu, czy BASIC jest aktywny, czy nie.

http://www.8bit-retro.de/hardwaredoc/images/xe-teil.jpg

181

(32 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

Poproszę o jedną kasetę.

182

(157 odpowiedzi, napisanych Zloty)

@Pin
Proponuję raczej coś w tym stylu:

http://www.lichen.pl/media/foto/24298_img_4890.jpg

Z takim T-shirt-em nie tylko nie spalą Cię na stosie, ale może jeszcze gratis ugoszczą ;)
A bębny ma się rozumieć poświęcone? To można.

183

(48 odpowiedzi, napisanych Sprzęt - 8bit)

http://atariage.com/forums/topic/291579-spiflashorg/

184

(48 odpowiedzi, napisanych Sprzęt - 8bit)

Candle napisał/a:

krytyczne jest phi2, rw chyba też jest w dwóch kopiach na płycie i nie są równorzędne czasowo
nie rozumiem po co sobie tak upraszczać i właściwie co - poświęciłem sporo czasu na opis instalacji, a na koniec podłącza się to byle jak, byle nazwy sygnałów się zgadzały
jeśli tak ma lotharek na stronie to niedobrze - moja strona z niewiadomych mi powodów nie działa

To chyba bardzo istotna informacja dla wszystkich, że sygnały trzeba podpiąć dokładnie w miejscach przez Ciebie przewidzianych.
Dużo osób (w tym ja) zrobiło tak jak napisałeś powyżej - wyszukało sygnały na płycie w dogodnych miejscach.

Twoja strona została na szczęście zarchiwizowana:
http://ftp.pigwa.net/stuff/mirror/spifl … ck/18.html

185

(244 odpowiedzi, napisanych Fabryka - 8bit)

Ładna obudowa :)

186

(244 odpowiedzi, napisanych Fabryka - 8bit)

To się trochę pośpieszyłem z moim "chińskim" przekaźnikiem :)

187

(244 odpowiedzi, napisanych Fabryka - 8bit)

Montezuma napisał/a:

Mam jeszcze pomysł na na włącznik zasilania:
https://www.ebay.de/itm/Flip-Flop-Latch … 3609757304

Okazało się, że Chińczycy albo nie wiedzą co sprzedają, albo wciskają nam kit.
Przekaźnik okazał się zwykłym przekaźnikiem bez funkcjonalności przerzutnika...

Druga próba zakończyła się na szczęscie sukcesem:
https://www.ebay.de/itm/1ch-5V-Latch-Re … 4074393083

ROFL :lol:

http://kck.st/2VWXiNo

Książka ma polskie akcenty (Laura w pierwszej lidze obok Rescue on Fractalus)!

190

(30 odpowiedzi, napisanych Sprzęt - 8bit)

Okazało się, że x_angel przewidział możliwość zamiany miejscami START i OPTION.
W tym celu wystarczy przelutować dwa oporniki.
Dzisiaj udało się nam to zrobić na zlocie NOMAM.
Z nowym wsadem i prawidłową kolejnością klawiszy funkcyjnych, nie mam więcej życzeń ;)

191

(30 odpowiedzi, napisanych Sprzęt - 8bit)

x_angel napisał/a:

Tak więc przyszedł PIC16F628A, zaprogramowałem go wsadem xaki_B1_(v2.0).HEX i włożyłem zamiast PIC16F84.
Wszystko działa jak należy, kwarc został 4MHz. Klawisze Help Start Select Option Reset są w innych miejscach niż na wsadzie Tasta.hex

Hej,
zmobilizowałeś mnie do działania.
Nie było łatwo wylutować PIC-a, bo wokół niego znajduje się podstawka PIA, ale jakoś dałem radę (orginalny PIC niestety na straty).
Miałem w domu PIC16F628 (bez A na końcu) w wersji 20Mhz.
Zaprogramowałem go programatorem TL866a, który wspiera tylko wersję PIC16F628A, ale odkliknąłem sprawdzanie CHIP ID i udało mi się go zaprogramować wsadem xaki_B1_(v2.0).HEX.
Software programatora TL866a ma inną konfigurację FUSE bits (w załączeniu) i nic w niej nie zmieniałem.

Odpaliłem ATARI i działa. Działa też moja klawiatura mini, która ze starym wsadem nie chciała działać :)

Obserwuję jednak pewien efekt uboczny, a mianowicie czasem nie ma dźwięku podczas naciskania klawiszy.
Nie udało mi się znaleźć reguły, ale mam odczucie, że wciskając klawisze, po iluś tam wciśnięciach znika dźwięk.
I nie znika na jakiś czas, tylko na ileś wciśnieć. Jeśli po pierwszym "niemym" wciśnieciu przycisku zrobię długą pauzę, to nic nie pomoże, kolejne wciśnięcie też będzie "nieme". Zauważyłem prawidłowość, że po kilku niemych wciśnieciach, znowu pojawia się dźwięk.

@x_angel
czy możesz sprawdzić u siebie, czy też tak masz ?
Czy mogłem coś popsuć lutując? Albo może złe FUSE bits?

EDIT1:
Odwoluję alarm. Winny był mały telewizorek MEDION, któremu czasem zanika dźwięk.

EDIT2:
Kolejność klawiszy funkcyjnych jest trochę dziwna:
F1 - HELP
F2 - OPTION
F3 - SELECT
F4 - START
F5 - RESET
ale da się z tym żyć :)

192

(244 odpowiedzi, napisanych Fabryka - 8bit)

SIO2SD Ci nie działa, bo domyślnie jest odpięte.
Musisz połączyć 3 jumperami piny przy złączu SIO.

Na zdjęciu x_angel-a 3 żółte jumpery:
https://drive.google.com/file/d/0ByJzv6 … 9sdDA/view

193

(30 odpowiedzi, napisanych Sprzęt - 8bit)

pajero napisał/a:

musi być 20Mhz dla F628

I to jest bardzo cenna informacja.
Na razie czekam na programator.

Czy oprócz wsadu, jest jeszcze coś, czego będę potrzebował, żeby zaprogramować PIC-a (F628)?
x_angel wspominał na przykład, że ustawił oscylator na XT, cokolwiek to nie znaczy ;) Jakieś FUSE BITS, itp ?

Edit:
Znalazłem w sieci ustawienia programowania PIC-a:
WDT
BODEN
CPD
DEBUG
Code Protect
PWRTE
LVP
WRT Enable
Oscilator

Jak je trzeba ustawić?

194

(30 odpowiedzi, napisanych Sprzęt - 8bit)

Ale napisałeś to co ja, a więc raczej "tak" :)
Chyba, że to było nawiązanie do Rejsu:

"No tak... Wiec w tej sprawie wlasciwie moge panu odpowiedziec, ze... wlasciwie
mozna sie zamienic, to znaczy... nie mozna. Chyba tak."

Są różne warianty PIC16F628 i miałem wątpliwość, czy "PIC16F628-04/P 8-Bit-µC 4MHz 2048x14 Bit FLASH 16 I/O DIP18" z "xaki_B1_(v2.0).HEX" można wstawić do AKI na MiniITX.

195

(402 odpowiedzi, napisanych Fabryka - 8bit)

Mq napisał/a:

I druga rzecz: zawsze starajcie się montować złącza w taki sposób, w jaki są zamontowane pozostałe złącza w sprzętach. Czyli np. nie przykręcamy po chamsku chinchy do obudowy, tylko montujemy gniazda w środku tak jak to jest zrobione z pozostałymi gniazdami i odpowiednie otwory do tego.

Pięknie zrobiłeś tą 800XL. Podziwiam precyzję i wysiłek w to włożony.

Ja skłaniam się ku kompromisom i przykręcam "po chamsku" chinche do obudowy :)
Po pierwsze obudowy są stabilne i nie muszę się bać, że wcisnę wtyczkę do środka, a po drugie to mniej pracy.
Nie wyciągam codziennie płyty z kompa, więc nie ma dla mnie dużej róźnicy, że dodatkowe złącza przymocowane są do obudowy.

Ale bardzo mi się podoba Twoje wykonanie.

196

(244 odpowiedzi, napisanych Fabryka - 8bit)

A widzisz, to bym się zdziwił próbując przeprogramować AKI przez złacze, które nie jest do niego podłączone ;)

Dzięki za info o programatorze. Zamówiłem u Chinczyków programator i PIC16F628 (za jakiś miesiąc sprawdzę, czy zadziała z klawiaturą mini).
Tymczasem wlutuję podstawkę pod PIC-a, a do podstawki pod PIA włoże kolejną podstawkę, żeby się wszystko jakoś pomieściło :)
Taką wieżę zbudowałem też pod Freddiem, bo wylutowany z innego ATARI Freddie nie chciał kontaktować w precyzyjnej podstawce. Wstawiłem więc zwykłą podstawkę do precyzyjnej i Freddiego do tej zwykłej podstawki.
Problem zniknął :)

197

(244 odpowiedzi, napisanych Fabryka - 8bit)

Kombinowałem, żeby poeksperymentować z kodem z tego wątku:

https://www.microchip.com/forums/m675230-p3.aspx

a drugą alternatywą jest wymiana PIC-a na inny, kompatybilny elektrycznie:

http://www.atari.org.pl/forum/viewtopic … 46#p249446

198

(30 odpowiedzi, napisanych Sprzęt - 8bit)

Niniejsza instrukcja dotyczy oprogramowania DARKAKI ver. 2.0 w odmianach A2, A3 i B1:
•    odmiana B1 jest zgodna elektrycznie z oryginalnym AKI 1.1 by  André Bertram, poza obsługą zewnętrznej pamięci EEPROM. Wolne piny RA0, RA1, RA2 są przeznaczone do sterowania dowolnymi urządzeniami. Aby wykorzystać nową wersję AKI należy w miejsce PIC16F84 umieścić PIC16F628 z nowym wsadem

Czy można poniższy PIC:

"PIC16F628-04/P 8-Bit-µC 4MHz 2048x14 Bit FLASH 16 I/O DIP18"

zaprogramować używając "xaki_B1_(v2.0).HEX" i zastąpić nim PIC16F84 na płycie MiniITX ?

199

(402 odpowiedzi, napisanych Fabryka - 8bit)

uicr0Bee napisał/a:

Montezuma, a możesz zdradzić technikę takiego precyzyjnego wycięcia otworu pod gniazdo DVI? Sam ręcznie, czy ktoś, gdzieś,  jakąś maszyną?

Sam ręcznie. Aż tak precyzyjnie to nie wyszło :) Na powiększeniu lepiej widać niedoskonałości.
Najlepiej na papierze narysować kształt do wycięcia, papier przykleić taśmą klejącą do obudowy.
Następnie jakimś ostrym szpikulcem zaznaczyć charakterystyczne punkty i wiertłem do drewna (takim z ostrą końcówką) ponawiercać otwory. Teraz ostrym nożem (Uwaga! Obudowa 800XL jest z twardego plastiku) powycinać "mostki" pomiędzy wywierconymi otworami, a resztę wyrównać pilnikiem.

200

(244 odpowiedzi, napisanych Fabryka - 8bit)

Nie znam się na PIC-ach.
Mój jest niestety wlutowany, więc gdybym chciał go przeprogramować, to albo go będę musiał wylutować, albo zostaje programowanie "in circuit".
Znalazłem w sieci programator PICKit3 (kompatybilny z PIC16F84) i zastanawiam się czy da się go użyć i jak go podpiąć.

Na płytce miniITX wyprowadzone są  PIN-y:
- VCC
- CLK
- DAT
- GND

a programator ma takie PIN-y:
1 - VPP/MCLR
2 - VDD of target board
3 - VSS
4 - ICSPDAT/PGD
5 - ICSPCLK/PGC
6 - LVP

Czy dobrze kombinuję?

CLK <-> ICSPCLK/PGC
DAT <-> ICSPDAT/PGD

VCC <-> VDD of target board
GND <-> VSS