"Stoi w miejscu" ? https://xxl.atari.pl/zx0-decompressor/ 10 października 2021, a Super Packer równo rok wcześniej.
Próbowałeś napisać do TeBe zamiast marudzić na forum?
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Generator okładek do kaset Nowy generator okładek na kasety magnetofonowe dla ośmiobitowych komputerów Atari od lexxa.
Nowa wersja emulatora Test7800 - 0.4.3 Eksperymentalny emulator konsoli Atari 7800 w nowej wersji 0.4.3 przynosi kluczowe poprawki w synchronizacji i wydajności.
Fujisan 1.0.3 Wydano nową wersję Fujisan, nowoczesnego frontendu do emulatora Atari800 z wieloma poprawkami i ulepszeniami.
Altirra 4.40 beta 19 Dziewiętnasta beta Altirra, najlepszego emulatora 8-bitowych komputerów Atari, już dostępna!
13. odcinek kursu programowania u Larka Larek wraca z kolejną, trzynastą częścią swojego popularnego kursu pisania gier na Atari.
atari.area forum » Posty przez Fox
"Stoi w miejscu" ? https://xxl.atari.pl/zx0-decompressor/ 10 października 2021, a Super Packer równo rok wcześniej.
Próbowałeś napisać do TeBe zamiast marudzić na forum?
W samą porę na zabawę sylwestrową! Brawo!
Na PCB jest: 2060-701572-002 REV A oraz naklejka z kodem paskowym i pod nim: 2061-701572-400 AE XT 7T10 QM53 2 0004370 0 374
Te zgrzyty nie są takie głośne - jakby zwykły dłuższy ruch głowicy. Co jest na tym EEPROM, że nie wystarczy przełożyć PCB?
Dane nie wydają się tak cenne, żeby płacić ileś tysi firmie zewnętrznej. Odgrzebuję źródła efektów na malucha i niektóre są chyba tylko na tym padniętym dysku.
Mam dysk WD5000BEVT-75ZAT0, który bez problemu działał w laptopie i po przełożeniu do kieszeni USB.
Niestety podłączyłem go do gniazda USB, które było luźne i od tego czasu dysk nie działa.
Po podłączeniu słychać pięć zgrzytów. Windows nie wyświetla partycji. Windowsowy Disk Manager proponuje mi "inicjalizację dysku".
Kieszeń jest ok, bo podłączyłem inną kieszeń i jest to samo.
Jak mogę odzyskać dane z tego dysku?
Jest tam jedna ZTCP nieszyfrowana partycja NTFS 500 GB.
if (adres1 > adres2)
Adresy są nazywane w C wskaźnikami, np.
char *p = ...
p += 0x100; // zwiększ adres
*p += 5; // zwiększ bajt pod adresem p
To tym bardziej przeplot ma znaczenie - trzeba go dobrać do prędkości dekompresji.
Ładne! Podoba mi się też intro.
32:49 - glitch na dole kolumny po prawej.
"Press Action to continue" ?
Co do prędkości odczytu, to wygląda mi jakby dyskietka była zaformatowana z nieoptymalnym przeplotem.
"scena" dryfuje, zrob jakis stream i wyznacz kierunek kapitanie :D
Będzie brzęczeć składowa 50 Hz i piszczeć 15 kHz.
Pytasz o to, czy masz 16 czy 48 KB podstawowego RAMu?
Jeśli masz cartridge z BASICiem, to:
? PEEK(106)/4
16 = 16 KB
40 = 48 KB (8 KB przesłonięte przez BASIC)
Wow, właśnie odkryłem, że Compiler Explorer ma cc65! https://godbolt.org/z/4YvxdeT7f
Nie ma.
To nie jest sam pomysł, tylko coś działającego. Napisz chociaż do autora, że Ci to potrzebne.
Akurat taka optymalizacja w kompilatorze nie jest zbyt skomplikowana: sprawdzasz, że inicjalizator tablicy jest stały i że tablica jest tylko odczytywana. Poprawiłem nie ze względu na wydajność, tylko czytelność kodu - jak widzę taki, jak Twój, to szukam miejsca, gdzie tablica jest modyfikowana oraz dlaczego literały znakowe konwertują się do wskaźnika nie-const - to powinien być błąd kompilacji. Niezależnie, czy targetem jest 6502 czy Xeon.
Bardziej skomplikowana jest analiza zakresu zmiennych.
Jako twórca kompilatora widziałem większe "kwiatki", ale to już przy jakimś piwie kiedyś. I o LLVMie. ;)
Lepiej napisać to tak:
static const char * const msg[] = { ... };
I wtedy to jest zwykła tablica o stałym adresie (spoko, non-stop spotykam się z kodem napisanym tak, jak Ty napisałeś :).
Kluczowe jest, czy kompilator zrozumie, że "i" jest w zakresie 0..127 i wtedy:
; AX=i
asl @
tay
lda msg,y
ldx msg+1,y
jsr pushax
Tu widać, że w przypadku 65816 nie ma to znaczenia.
nie wiem jak jest dokładnie w CC65 (trzeba by podpytać np. Fox-a) ale wydaje mi się że stos jest emulowany (przynajmniej gdy wybierzemy "większy model pamięci/adresowania"). Niestety narzut kodu przy realizacji w tego w ten sposób jest dość spory i mam wrażenie że wydajność kodu generowanego przez kompilator drastycznie spada.
ABI cc65 stosuje do argumentów i zmiennych lokalnych stos programowy. Na stronie zerowej jest wskaźnik o identyfikatorze "sp". Stos sprzętowy jest używany tylko do adresów powrotu i na dane tymczasowe. Odczyt z wierzchołka stosu programowego wygląda tak:
ldy #1
lda (sp),y
tax
dey
lda (sp),y
Na tej zasadzie mamy dostęp do wierzchnich 256 bajtów stosu.
Wydaja mi się że w przypadku 65xx i C problemem stają się również operacje które wymagają użycia dużej ilości
wskaźników, przykładowo:ctx->iocb.len = 256;
Tu widzę tylko jeden wskaźnik: ctx. Zagnieżdżone struktury mają offsety będące stałymi czasu kompilacji.
; AX=ctx
sta ptr
stx ptr+1
ldy #offsetof(ctx_iocb.len)
lda #<256
sta (ptr),y
iny
lda #>256
sta (ptr),y
@Fox: Możesz wyspecyfikować, o co ci chodzi? Czego według ciebie nie zrobiłem lub co zrobiłem a nie powinienem? I przede wszystkim, czemu powinienem byl tak zrobić (lub nie)? Konkrety proszę. Przyglądałem się fragmentom, np. jak robiona jest pętla dla tablicy dłuższej niż jedną strona albo jak jest robione memcpy. Ale całego kodu nie przeglądałem bo nie było to dla mnie interesujące.
Twierdzę, że wydajność kodu zależy od tego, czy ISA jest dostosowana do semantyki języka programowania.
Twierdzisz, że "można spokojnie napisać kompilator", "Bez żadnego problemu", "zadanie dla studenta 3-go roku informatyki", ale nawet nie zajrzałeś do wyników cc65, nie wspominając o jego algorytmach optymalizacji.
Jeśli nie było to dla Ciebie interesujące, to skąd tak śmiałe tezy?
Myślisz zbyt "szablonowo" - język wejściowy to jedno, kod generowany to drugie. Można spokojnie napisać kompilator
(...)
nie przyglądałem się temu jak wygląda wygenerowany kod maszynowy.
Ciekawe podejście do problemu.
Dzięki za odpowiedzi! Autor posta chyba popłynął. W komentarzu ktoś mu wytknął, że nie wszystkie myszki działają z pasywną przejściówką.
Hmmm, nie szukają w tym WDC inżyniera kompilatora? ;)
Z C na 6502 są dwa podstawowe problemy:
większość kodu operuje na intach, które są co najmniej 16-bitowe
mocno używany jest stos, a 6502 oferuje tylko dostęp do elementu na wierzchu i ma mały stos
65816 rozwiązuje oba te problemy. Nie widziałem kodu wygenerowanego dla 65816, ale mogę się założyć, że jest znacznie bardziej wydajny, niż dla 6502.
Nie widzę żadnego odniesienia do 6502. To na pewno ten link co trzeba?
Pod zdjęciem adaptera: "It has a full-fledged computer inside it, usually a simple embedded processor with a 6502 core".
https://www.quora.com/Does-a-USB-to-PS- … -protocols
Ciekawe, naprawdę stosuje się rdzenie 6502 w takich zastosowaniach?
Szpulowiec w kuchni Pina rok temu brzmiał świetnie. A VBXE robi wszystko to, co XEP i wiele więcej.
atari.area forum » Posty przez Fox
Wygenerowano w 0.058 sekund, wykonano 20 zapytań