526

(62 odpowiedzi, napisanych Programowanie - 8 bit)

No Twój jest krótszy.
Ano za mało. Tylko BELL można jakoś tam z biedą wywołać legalnie - resztę albo trzeba skokiem do ROM-u albo się nie da.
Ciekawe jest, że w stanie krytycznym wszystkie te sygnały brzmią inaczej (ze względu na ustawiony I lub CRITIC).

527

(62 odpowiedzi, napisanych Programowanie - 8 bit)

To jest sygnał rozpoczęcia operacji zapisu na magnetofon.
ERROR (czyli BELL) to jest 32 razy wywołany CLICK.

528

(62 odpowiedzi, napisanych Programowanie - 8 bit)

Są trzy: klik klawiatury, dzwonek (BELL=CHR$(125)) i sygnał odczytu/zapisu na magnetofon (mam na myśli ten dzwonek, dwa przed rozpoczęciem operacji z magnetofonem). I SELF-TEST :) Chyba więcej dźwięków z OS-u nie wydusisz.

Edit: Właściwie to jeszcze kilka: odczyt/zapis danych z magnetofonu (transmisja dwutonowa) i ogólny odczyt/zapis przez SIO.

529

(62 odpowiedzi, napisanych Programowanie - 8 bit)

Masz jakiś strumieniowy kompresor, który dałoby się zaprząc do takiej syntezy?

530

(10,041 odpowiedzi, napisanych Bałagan)

Założyłeś rafinerię liquidu? :) I masz tam całą kolumnę rektyfikacyjną?

531

(27 odpowiedzi, napisanych Emulacja - 8bit)

Dla mnie również atari800 to podstawowy emulator Atari, więc dołączam się do próśb.

532

(10,041 odpowiedzi, napisanych Bałagan)

"Wspieranie ożywienia gospodarczego" przez wyższe opodatkowanie :) Brawo! Papier przyjmie wszystko.

533

(62 odpowiedzi, napisanych Programowanie - 8 bit)

Uuuu drogi Panie. Piękne! Napisz coś więcej może jak tej syntezy używać i jak to działa może. I może więcej niż jest na atariage. Bardzo dobra funkcja!

534

(6 odpowiedzi, napisanych Fabryka - 8bit)

Tak, pierwsze max 64 cykle są stracone :)
A dałoby się tam dodać jeszcze taki drobiazg z XEGS: "wskazuje fakt podłączenia klawiatury (1 - podłączona)" http://atariki.krap.pl/index.php/Rejestry_GTIA#TRIG2 ?

535

(6 odpowiedzi, napisanych Fabryka - 8bit)

Nie timera a licznika. Nie jest potrzebny timer taktowany jakimś swoim zegarem. K0 OR K5 -> reset licznika K1K2K3K4, K0 jest podawane na wejście taktujące licznika K1K2K3K4. Linia K0 + licznik K1K2K3K4 + linia K5 składa się na pełny licznik wierszy i kolumn.

536

(6 odpowiedzi, napisanych Fabryka - 8bit)

@_tzok_: Moim zdaniem nie ma potrzeby generowania wewnętrznych timingów, bo zakładając że linia K0 jest najmłodszym bitem licznika a K5 najstarszym, to wtedy zmiana K0 mówi o zwiększeniu licznika K0..K5, natomiast zmiana K0K5 z 11 na 00 mówi o tym, że licznik K0..K5 zostaje wyzerowany. Krótko mówiąc mając najmłodszy i najstarszy bit licznika jesteś w stanie zregenerować wszystkie bity.

Edit: Oczywiście podstawą jest synchronizacja do zmiany 11->00 K0K5.

537

(127 odpowiedzi, napisanych Fabryka - 8bit)

Zgadzam się. Trochę mnie zaskoczyło, że Pajero chce coś robić dodatkowo w przypadku gdy używana jest SDX, stąd te elaboraty. Kfadratiszen-praktiszen-gut!

538

(127 odpowiedzi, napisanych Fabryka - 8bit)

xxl napisał/a:
mono napisał/a:

Edit: Skoro potrzebujesz CIO i urządzenia D: to pewnie zamiast loadera potrzebny będzie jakiś GameDOS. Czemu właściwie używasz CIO a nie wpakujesz wszystkiego do jednego .XEX-a, choćby i megabajtowego, i nie porozmieszczasz samodzielnie wszystkiego po pamięci jak Ci pasuje? Gra ładowałaby się nawet z najprostszego loadera a nikt nie zabrania wykonywania bloków init.

skoro gra doczytuje dane to jak wykonac "powrot" do juz wczesniej zaladowanego/wykonanego inita?

Chodziło mi o model, kiedy gra cała mieści się w pamięci i trzeba ją tylko załadować do kolejnych banków.

@pajero: Skoro musisz mieć DOS-a, to proponuję:
1. Rozpoznać czy masz SDX i w jakiej konfiguracji (czyli gdzie jest bank systemowy z procedurami obsługi filesystemu): http://atariki.krap.pl/index.php/Progra … mi%C4%99ci
2. Znaleźć indeksy banków pamięci http://atariki.krap.pl/index.php/Progra … zszerzonej (punkt 2).
W Programming Guide znajdziesz sposób odczytu adresów symboli http://sdx.atari8.info/index.php?show=en_docs za pomocą procedury JFSYMBOL i zmienne systemowe ulokowane względem COMTAB (którego adres znajduje się w DOSVEC).
W ten sposób będziesz mógł załadować swoje rzeczy do ExtRAM nie kolidując z CIO, choć pamiętaj że bank systemowy może być ulokowany albo w ExtRAM (konfiguracja BANKED) albo w pamięci pod ROM (konfiguracja OSRAM). Więc może lepiej zasygnalizować użytkownikowi przypadek kiedy nie da się załadować danych bez kolizji z SDX?

539

(127 odpowiedzi, napisanych Fabryka - 8bit)

@pajero: Nie wiesz jak SDX jest skonfigurowana czyli czy jest w pamięci bazowej, pod ROM-em, czy w banku pamięci. Nie wiesz w którym banku pamięci. Nie wiesz też jaki jest nośnik na którym masz SDX i wiedzieć nie możesz, bo już aktualnie SDX jest:
1. W wersji wbudowanej do środka komputera (intSDX).
2. Na wielu różnych cartridgeach (z różnymi schematami bankowania i używającymi różnych rejestrów do przełączania).
3. Na różnych nowych urządzeniach (również pod różnymi adresami).
A kto wie co przyniesie przyszłość - czy SDX nie będzie ładowany z dyskietki i nie będzie siedział całkowicie w pamięci dodatkowej, albo w VBXE.
Nie ma więc jedynego słusznego adresu i jednej słusznej metody. Żeby odłączyć moduł musiałbyś:
1. Rozpoznać czy SDX jest włączony.
2. Wywołać funkcję JHWCTRL która nie jest publiczna.
Ale to i tak nie gwarantuje poprawnego załadowania Twojego programu, bo jest jeszcze ExtRAM.
A skoro ładujesz dane do banków ExtRAM, to wypadało by:
1. Dowiedzieć się gdzie SDX ma bank systemowy i czy przypadkiem nie jest on w ExtRAM.
2. Omijać go przy ładowaniu danych (bo tam raczej będzie siedzieć procedura obsługująca I/O).
A jak potrzebujesz 128KB dodatkowej pamięci a masz 130XE? To bank systemowy musi zostać zniszczony (jak Kartagina).

Proponuję się więc nie przejmować SDX, niczego nie odłączać, a zdać się na użytkownika który i tak grę raczej będzie ładował z loadera :) albo użyje X lub #.

Edit: Sprecyzowanie dlaczego należy omijać bank systemowy.

Edit: Skoro potrzebujesz CIO i urządzenia D: to pewnie zamiast loadera potrzebny będzie jakiś GameDOS. Czemu właściwie używasz CIO a nie wpakujesz wszystkiego do jednego .XEX-a, choćby i megabajtowego, i nie porozmieszczasz samodzielnie wszystkiego po pamięci jak Ci pasuje? Gra ładowałaby się nawet z najprostszego loadera a nikt nie zabrania wykonywania bloków init.

540

(62 odpowiedzi, napisanych Programowanie - 8 bit)

Fajny silniczek. Czy aby na pewno okrzyki w IK są na samplach? Bo np to http://asma.atari.org/asmadb/search.php?play=1839 chyba nie...

541

(313 odpowiedzi, napisanych Zloty)

Robert to ten gość koło Nietoperka?

542

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

@xxl: A co zrobisz z 72 liniami w PAL/SECAM (lub 22 w NTSC)? W FGTIA jest 3 linie luminancji.

543

(10,041 odpowiedzi, napisanych Bałagan)

"Samorządowcy". PRL siedzi w ludziach głęboko.

544

(313 odpowiedzi, napisanych Zloty)

Film p.t. "Ściana"? Z ujęciami z kilku kamer :)

545

(15 odpowiedzi, napisanych Software, Gry - 8bit)

Lizard napisał/a:

Widać brać studencka aktywnie wspiera swojego żywiciela. :D

Powinni założyć jeszcze browar i mieliby całość rynku w kieszeni. Zestaw dobowy - zupka + piwo - dostępna w dobrych społemach i salonach żabki.

To zamiast robić zapisy rób licytację na kolejne carty :)

547

(743 odpowiedzi, napisanych Kolekcjonowanie)

Dzisiejsza medycyna estetyczna potrafi i takie cuda, więc o folię też się nie ma co troszczyć specjalnie. Szalej Pinokio!

548

(10 odpowiedzi, napisanych Programowanie - 8 bit)

32 bajty + tekst jeśli dobrze liczę.
Jako że Twój kod znajdzie się w konkretnej wersji ROM i będzie niejako częścią konkretnego OS-a, to możesz korzystać z "nielegalnych" skoków prosto do OS-a np. do sławnej procedury PUTLINE ($C642) która wypisze Ci linię tekstu spod adresu w YX :) Kod będzie miał 7 bajtów (* ilość wierszy tekstu) zamiast 32 czyli:

  ldx #$FF
  txs
  ldx #<msg1
  ldy #>msg1
  jsr PUTLINE
  ldx #<msg2
  ldy #>msg2
  jmp PUTLINE
msg1 .byte 'Alamakota',$9B    ;$9B=EOL
msg2 .byte '(c) 2021 by Perinoid',$9B

Edit: Widzę że w $CB65..$CBFF masz trochę miejsca (BB01 czyi rev.02).

549

(10 odpowiedzi, napisanych Programowanie - 8 bit)

$C000-$CFFF jest wolne w Atari 400/800. W XL/XE tam jest OS.

550

(10 odpowiedzi, napisanych Programowanie - 8 bit)

U Zientary http://tajemnice.atari8.info/ksiazki/index.html "Procedury interpretera BASIC-a" rozdział "Uruchomienie interpretera".
Skoro już musisz, to proponuję fragment od etykiety CONT:

            0300     *=  $A000
            0310 ;
            0320 ;ColD STart
            0330 ;
            0340 CDST LDA LOADFLG
            0350     BNE CONT
            0360     LDA WARMST
            0370     BNE WMST
            0380 CONT LDX #$FF
            0390     TXS
            0400     CLD

zamienić na swój JSR i tam zrobić LDX #$FF i TXS po czym wypisać co tam chcesz używając zwykłego CIO.

Edit: Zwykłym CIO przez #0. Np. tak:

  ldx #$FF
  txs
  inx
  lda #$0B   ;PUTBT
  sta ICCMD,x
  lda #<msg
  sta ICBUFA,x
  lda #>msg
  sta ICBUFA+1,x
  lda #<msg.?len
  sta ICBUFL,x
  lda #>msg.?len
  sta ICBUFL+1,x
  jmp JCIOMAIN

msg:
  .byte 'Alamakota',$9B    ;$9B=EOL
  .byte '(c) 2021 by Perinoid',$9B
?len = *-msg