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,927

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

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

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

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

1,932

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

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

(61 odpowiedzi, napisanych Fabryka - 8bit)

Zrobię.

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

1,935

(118 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,936

(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

1,938

(21 odpowiedzi, napisanych Fabryka - 8bit)

notepadzie?

1,939

(21 odpowiedzi, napisanych Fabryka - 8bit)

Under production :)
vi to klasyka gatunku i kto nie zna bezwzględnie powinien się nauczyć gdyż jest to standard.

To ja z kolei pozwolę sobie przypomnieć dwie ciekawe inicjatywy made by Sikor, które przeczą tezie:
http://www.atari.org.pl/forum/viewtopic.php?id=8666
http://www.atari.org.pl/forum/viewtopic.php?id=11609

1,941

(30 odpowiedzi, napisanych Bałagan)

Gratulacje Cosi! Niech rośnie w siłę, a rodzicom żyje się dostatniej :)

1,942

(37 odpowiedzi, napisanych Fabryka - 8bit)

Ale ładna graficzka!

1,943

(0 odpowiedzi, napisanych Emulacja - 8bit)

Gdyby komuś było potrzebne sterowanie emulacją atari800 za pomocą monitora, to zrobiłem mikropacz pozwalający na wejście do monitora zaraz przy starcie atari800 (przełącznikiem -monitor).

1. Ściągamy z CVS źródła atari800

$ cvs -d:pserver:anonymous@atari800.cvs.sourceforge.net:/cvsroot/atari800 login
$ cvs -z3 -d:pserver:anonymous@atari800.cvs.sourceforge.net:/cvsroot/atari800 export -r HEAD atari800

Zamiast HEAD można podać datę np. 2013/12/11.
2. Ściągamy i aplikujemy łatę:

$ wget http://mono.atari.pl/atari800/atari800-20131211-monitor-patch.diff
$ patch -p0 <atari800-20131211-monitor-patch.diff

Po czym kompilujemy zgodnie z instrukcją.

Smacznego.

1,944

(2 odpowiedzi, napisanych Programowanie - 8 bit)

No tak - jera strona. Bardzo dziękuję.

1,945

(2 odpowiedzi, napisanych Programowanie - 8 bit)

Czy ktoś ma i mógłby udostępnić?

1,946

(141 odpowiedzi, napisanych Bałagan)

Przyjrzyj się systemowi operacyjnemu. Zobacz jak sprzęt został zaprojektowany pod kątem rozszerzania zarówno sprzętowego, jak i softwareowego, mechanizmom plug'n'play (PBI i relokowalny software ściągany automatycznie z podłączanego urządzenia), CIO i jednolity sposób dostępu do dowolnego urządzenia. Porównywanie Atari i C64 to kompletna pomyłka.

Edit: Seria XE i działalność Tramiela sprowadziła ten komputer do roli zabawki.

1,947

(19 odpowiedzi, napisanych Programowanie - 8 bit)

Różnic w SELF-TEŚCIE nie ma, ale (przynajmniej kiedy sam odpalam na emulcu) to przy wejściu coś tam gada. Fajne.

1,948

(19 odpowiedzi, napisanych Programowanie - 8 bit)

No to odpalcie na 1400XL SELF TEST :D

1,949

(53 odpowiedzi, napisanych Programowanie - 8 bit)

To w takim razie konfigurując MOTORCTL jako wyjście i odblokowując IRQ możemy sobie sami programowo generować sprzętowe przerwanie? Czy odblokowując przerwanie od PORTA i włączając silnik magnetofonu możemy zawiesić kompa (IRQ nie obsłużone włazi ciągle w procedurę obsługi).

1,950

(19 odpowiedzi, napisanych Programowanie - 8 bit)

Z 1MB pewnie. Nic innego poważnego nie przychodzi mi do głowy :)