1,901

(84 odpowiedzi, napisanych Różne)

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

1,902

(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,903

(294 odpowiedzi, napisanych Bałagan)

Atari zamknięte? Hmmm...

1,904

(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,905

(294 odpowiedzi, napisanych Bałagan)

Celowo było 8086 dla uwypuklenia absurdu.

1,906

(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,907

(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,908

(294 odpowiedzi, napisanych Bałagan)

Patologika.

1,909

(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,911

(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,913

(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,915

(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,917

(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,918

(117 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,919

(117 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...

1,920

(61 odpowiedzi, napisanych Fabryka - 8bit)

Dzięki pomocy drac030 okazało się, że problem nie leżał po stronie ENV.SYS, a na styku człowiek-mads.
Wersja 1.08 dostępna, a wraz z nią:
* wykrywanie czy plemnik już zainstalowany (poprzez symbol WORM) opatrzone stosownym komunikatem,
* możliwość zmiany opóźnienia w locie za pomocą:

POKE WORM,V

* /F pozwala na wymuszenie instalacji bez względu na ilość pamięci, którą trzeba zaalokować nadmiarowo aby spełnić wymagania ANTICa (program bez tego przełącznika zainstaluje się wyłącznie kiedy nie trzeba alokować nadmiarowo pamięci - w przeciwnym wypadku wypisze komunikat i wróci do DOSa).
Wartość wstawiana do komórki wskazywanej symbolem WORM obliczona może być ze wzoru:

V=128-D*TV/256

gdzie
V - wartość wpisywana do WORM
D - opóźnienie liczone w sekundach
TV - ilość ramek przypadających na sekundę w danym systemie TV (50=PAL, 60=NTSC)

Smacznego

1,921

(61 odpowiedzi, napisanych Fabryka - 8bit)

Manual rzecze, jakoby ENV.SYS pozwalał na zdefiniowanie większej ilości zmiennych systemowych, których łączny rozmiar przekracza 256 bajtów (jako zakłada sam SDX), trzyma je albowiem w XRAMie.

1,922

(61 odpowiedzi, napisanych Fabryka - 8bit)

Zrobię.

Zauważono, że ENV.SYS przeszkadza bardzo i nie wiedzieć czemu powoduje zwis plemnika. Dochodzenie w toku...

1,923

(117 odpowiedzi, napisanych Programowanie - 8 bit)

Mads 1.9.8, kod:

  opt ?+ h+ o+

  blk reloc main
  nop
  rts

  blk reloc extended
dupa1 .ds 10
dupa2 .ds 10

  end

generuje strukturę:

001: @$0000 SDX $0000   #01: $0002           RELOC MAIN
002: @$000A SDX $0002   #02: $0000           RELOC EXTENDED
003: @$0012 SDX $0002   #03: $0014           EMPTY EXTENDED
     @$001A EOF

W binarce wygląda to tak:

0000000: fe ff 01 00 00 00 02 00 ea 60 fe ff 02 02 02 00  .........`......
0000010: 00 00 fe ff 03 82 02 00 14 00                    ..........

Czy jest sposób uniknięcia pustego bloku reloc extended? Blok empty extended nie bardzo się nadaje do użycia kiedy chciałbym mieć w ciągłym bloku kilka buforów.

1,924

(61 odpowiedzi, napisanych Fabryka - 8bit)

Wersja 1.07:
* część w pamięci głównej zajmuje minimum 357 bajtów (granica ruchoma ze względu na ograniczenia w lokacji displaylisty i ekranu) z czego ekran to 200 bajtów, dlista to 86 bajtów, a program to 71 bajtów,
* część w pamięci ext zajmuje dokładnie 313 bajtów,
* dlist i screen układane są w najlepszej optymalnej kolejności i z uszanowaniem ograniczeń ANTICa,
* jest jeszcze jeden fjuczer związany z VBXE, ale na razie o tym sza.
Smacznego i wesołych świąt.

Ruchable... hiehie. Przyznaj się Mikej, że sam to napisałeś :P