1,901

(25 odpowiedzi, napisanych Bałagan)

Przyjacielu. Skoro Twój Ukochany Komputer nie żyje, umarł i nic nikt na niego nie robi (co najwyraźniej spędza Ci sen z powiek), a na dedykowanym forum nie da się wytrzymać, to może po prostu czas znaleźć sobie nowe zajęcie i zająć się czymś pożytecznym lub przynajmniej pasjonującym, zamiast opowiadać co to kto i czym nie powinien się zająć w swoim wolnym czasie? Atari jak widać "30 lat po czasie" ma się całkiem nieźle.

1,902

(8 odpowiedzi, napisanych Programowanie - 8 bit)

Czy w trybie AND (4) zachodzi optymalizacja z source"=$FF?

Edit: Głupie pytanie. Uprasza się admina o usunięcie cichcem :P

1,903

(8 odpowiedzi, napisanych Programowanie - 8 bit)

Dzięki ajcek. Późno już było, lecz dziś jest nowy lepszy dzień w związku z czym poszukałem forum i oto: http://www.atari.org.pl/forum/viewtopic.php?id=10265

1,904

(8 odpowiedzi, napisanych Programowanie - 8 bit)

Szkoda.
Zadanie: dokonać rotacji w lewo bloku "len" danych zaczynającego się we "from"; wynik umieścić w "to"

0: to+len=0                                      ;clear bit shifted into end of buffer (1 if bit should be set)

1: mode=0, and=$00, xor=$7f, src=xxx, dst=to     ;fill buf with $7f
2: mode=1, and=$80, xor=$00, src=from, dst=to    ;copy $80 to buf when source value has highest bit set
3: mode=2, and=$00, xor=$81, src=xxx, dst=to     ;buffer contains shifted out bits shifted into lowest bits
4: mode=2, and=$ff, xor=$00, src=from, dst=to+1  ;add
5: mode=2, and=$ff, xor=$00, src=from, dst=to+1  ;add

Wynik operacji znajduje się w "to"+1.
"from" nie jest modyfikowany.
"to" powinien mieć rozmiar o 1 bajt większy niż "from".

Jeśli dobrze liczę VBXE będzie realizować rol pojedynczego bajtu w 7/8 cykli (czy można by prosić o diagramy dla operacji blittera tak, żeby można było sobie precyzyjnie policzyć czasochłonność blitów).

Edit: styl

1,905

(1,653 odpowiedzi, napisanych Bałagan)

Ech te gry z Ultimate są po prostu śliczne!

1,906

(1,653 odpowiedzi, napisanych Bałagan)

Pięknie gra.

1,907

(84 odpowiedzi, napisanych Różne)

A gdzie opcja "wszystkie"? Ankieta jest tendencyjna :/

1,908

(8 odpowiedzi, napisanych Programowanie - 8 bit)

Czy zadając blit w trybie 2 (ADD) można spowodować, żeby operacja ta odbywała się Z PRZENIESIENIEM?

Edit: Przeniesienie mogłoby działać tylko w obrębie pojedynczej linii.

1,909

(294 odpowiedzi, napisanych Bałagan)

Atari zamknięte? Hmmm...

1,910

(294 odpowiedzi, napisanych Bałagan)

A jakie ma znaczenie czy dodatki robi firma macierzysta (która nota bene nie istnieje, bo zbankrutowała) czy firmy trzecie? Cały pece opiera się na działalności firm trzecich. Kto kupuje IBMa?

1,911

(294 odpowiedzi, napisanych Bałagan)

Celowo było 8086 dla uwypuklenia absurdu.

1,912

(294 odpowiedzi, napisanych Bałagan)

Otóż to. Co prawda Atari Inc i Atari Corp już nie ma, ale sprzęt żyje, a więc się też i rozwija dzięki inicjatywie prywatnej. Właśnie montuje się rozwojowe wersje procesora do maszyny, projektuje rozszerzenia (pamięci, grafiki, dźwięku, urządzenia io), więc jeśli ktoś chce żeby jego programy działały na 8086 z magnetofonem, to jego sprawa.

1,913

(294 odpowiedzi, napisanych Bałagan)

@xxl: Za wąska w biodrach. Tutaj jest model niewybrakowany: http://www.dereatari.republika.pl/images/3xe_2.jpg (między nimi inwalida).

1,914

(294 odpowiedzi, napisanych Bałagan)

Patologika.

1,915

(27 odpowiedzi, napisanych Emulacja - 8bit)

vi + mads + atari800 + franny + iconv + make + sio2bsd + atari65xe :)

Jakże się myliłem. Czy mógłbyś podesłać te atry? Sprawdzę co się dzieje.

Edit: Kompatybilność na poziomie wpisów w katalogu jest zachowana - inne nieco jest vtoc, no i linki 16-bitowe w sektorach (to moje usprawiedliwienie :P, ale fakt jest faktem - Franny nie pokazuje wpisów).

1,917

(124 odpowiedzi, napisanych Fabryka - 8bit)

A dlaczego wszystko chcecie mieć w assemblerze, a nie chcecie korzystać z zewnętrznych narzędzi? IMHO assembler powinien w zasadzie tylko assemblować mnemoniki i generować kod relokowalny dla linkera, a linker na podstawie modelu pamięci i rodzaju pliku wynikowego powinien wygenerować co trzeba (nierelokowalne lub relokowalne).
Jak Fox powiedział - generowanie dodatkowych danych załatwia make, włączanie tego do kodu załatwia preprocesor, kompilację assembler. Tebe ma mniej roboty, mads działa lepiej bo jest łatwiejszy w utrzymaniu i wszyscy są zadowoleni.

Duże dyski MyDOS zakładają nieco inny system plików niekompatybilny z AtariDOS. MyDOSa obsługuje mój ataridosfs i xedisk, Franny tego niestety nie potrafi :/

1,919

(6 odpowiedzi, napisanych Bałagan)

side, sdx, sparta commander, vbxe, s2:, last word

Zasysamy tak:

$ cvs -d:pserver:anonymous@atari8.cvs.sourceforge.net:/cvsroot/atari8 login
$ cvs -z3 -d:pserver:anonymous@atari8.cvs.sourceforge.net:/cvsroot/atari8 co -P franny

Przy logowaniu podajemy puste hasło. Kod franny znajdzie się w podkatalogu franny.
To wszystko opisane jest o tu.

Edit: A pacza to już standardowo:

$ patch -p0 <franny-20140107-sdx2x512bps.diff

1,921

(1,653 odpowiedzi, napisanych Bałagan)

Sparkling icicles piękne! Dzięki.

Dodałem support dla:
- 512b sektorów .ATR,
- wersja 2.1 SpartaFS,
- atrybut A w listingu.
Paczowałem wersję z CVS z dnia 7 I 2014 (jak sama nazwa pacza wskazuje).
To szybka poprawka i może nie najlepsza, ale jak na razie zachowuje się poprawnie :) więc jakby komuś się przydało to proszę bardzo.

Edit: Atrybut.

1,923

(1,754 odpowiedzi, napisanych Fabryka - 8bit)

Sprawdziłem ten BiboDOS (wersja 6.4.RF 1988 Compy Shop DE).
Okazuje się, że SD i DD są identyczne, jak w DOS 2.
MD jest identyczny, jak w DOS 2.5 za wyjątkiem tego, że sektor $2D0 jest dostępny w fsie więc total sectors jest $3F3 a nie $3F2.
Nie ma za to gęstości Q, lecz XF (DSDD) - czyli $5A0 sektorów DD. I ten format zawiera:
- identyfikator fsa VTOC[0] = 3,
- total sectors VTOC[1..2] = $593 co sugerowałoby, że $5A0 jest niedostępny dla fsa,
- mapa bitowa VTOC[$0A..$BD] ($5A0 faktycznie jest niedostępny)
- directory jest w sektorach $169..$170 i zawierają po 16 wpisów jeden za drugim bez żadnych kombinacji
Linki do sektorów są rozwiązane jak w mydłosie - 2 bajty na sektor, 1 bajt na ilość danych.

Edit: bardziej po ludzku

1,924

(118 odpowiedzi, napisanych Programowanie - 8 bit)

W programach relokowalnych dla SDX potrzeba czasem znać indeks bloku (w pliku), w którym znajduje się obiekt (procedura, dane).
Czy w związku z tym można by mieć możliwość np. nazywania bloków za pomocą etykiety:

kod1: blk reloc main
  ...
kod2: blk reloc extended
  ...

dzięki temu mógłbym sobie adresować tablicę EXTENDED+3 w taki sposób:

  lda EXTENDED+3+kod1
  jsr JEXT_ON
  ...
  jsr JEXT_OFF

  lda EXTENDED+3+kod2
  jsr JEXT_ON
  ...
  jsr JEXT_OFF

co gwarantowało by mi dostęp do odpowiedniego bloku pamięci.

Problematyczne jest też wykorzystanie blk empty, ponieważ rzadko zachodzi potrzeba rezerwacji pojedynczego bufora, jako osobnego bloku pamięci (tym bardziej, że loader ogranicza ilość bloków relokowalnych), a bardzo często pojedynczy blok empty dzielony jest na kilka różnych buforów lub zmiennych. Czy można by dodać taką konstrukcję:

  blk empty main/extended/$xx
dane1: .ds 20
dane2: .ds 30
adres: .ds 2

która generowałaby odpowiedni blok empty (pojedynczy). W połączeniu z nazywaniem bloków blk pozwalałoby to na ładny dostęp do pamięci w programach dla SDX.

Edit: Oczywiście nie upieram się przy etykiecie - może to być nazwa bloku deklarowana np:

blk empty main/extended/$xx nazwa
blk reloc main/extended/$xx nazwa

czy jak by tam było wygodnie.

1,925

(118 odpowiedzi, napisanych Programowanie - 8 bit)

Natknąłem się na błędne działanie:

  blk reloc main
rutynal = *+1
  ldx #<rutyna
rutynah = *+1
  ldy #>rutyna
  rts

rutyna:
  nop
  rts

Wystąpiło coś takiego w plemniku no i mimo, że w statycznym (blk sparta) bloku te bajty były wyliczane i aktualizowane na poprawny adres rutyny, to coś się w kodzie psuło (w tym przypadku nie chciało działać z biblioteką ENV.SYS, ale nie wiem czemu).
Jeśli dobrze zrozumiałem drac030, to winne były fixupy dla rutyna.
Ponieważ dochodzenie co się stało (nie widać błędów w listingu programu -l, a kod pod emulcem często wygląda poprawnie), to może dałoby się spowodować, żeby konstrukcja #<. #> i #^ nigdy nie generowała fixupa? Albo przynajmniej niech rzuca błędem, że tak nie można...