851

(99 odpowiedzi, napisanych Programowanie - 8 bit)

no i ślicznie gra, ile lat trzeba było aby wynalazki zastosowane w Overmind, Joyride trafiły do mas ;)

852

(99 odpowiedzi, napisanych Programowanie - 8 bit)

napisz XXL co konkretnie poprawił Dorndorf, tak dla potomności, aby kolejne pokolenia nie popełniały tych samych błędów

853

(99 odpowiedzi, napisanych Programowanie - 8 bit)

a kto Wam kazał pozbywać się stacji dyskietek, starsze produkcje możecie sobie odpalać z HDD, najnowsze będą tylko z dyskietki :P

854

(27 odpowiedzi, napisanych Programowanie - 8 bit)

przepraszam Pin, ale jak Ty pod SDX ładujesz pliki ATR ? jak wyciągasz pliki z takiej gry jak np. Eidolon ? jak taką gre uruchamiasz ?

855

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

czy ktoś tu neguje istnienie stacji dysków, w dobie KMK, SIDE etc. chce się odciąć od SIO i narzucić jedyną słuszną drogę, przecież każdy ma emulator stacji dysków w postaci PC i SIO2PC, więc w czym problem aby taką dystrybucję XBIOS-a uruchomić w takim tandemie

ktoś tu chce mieć "gołe" Atari i KMK, SIDE aby przekonać nie obeznanych w temacie że tak zawsze było i być powinno, czy z czystego lenistwa widząc szanse mobbingu trolluje na rzecz swojej "wygody"

no tak PC+SIO2PC to nie to samo, elektronika inaczej pachnie jak się nagrzeje, puryści od siedmiu boleści

856

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

jellonek napisał/a:

i to jest przyczyna dla ktorej mazezam uzywa xBios?

Mazazem używa xBiosa bo XXL chciał przykładowo pokazać jak to działa, miał prawo, czy może nie było mu wolno?

857

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

gdyby olać XBios, program ładować spod jakiegoś ATARI-DOS-a (MyDos, SDX etc.) i wykorzystać same procedurki transmisji XBios-a w swoim programie, bez całego interfejsu inicjalizera etc. co by wówczas powstało, najmniej uniwersalne rozwiązanie, bo ograniczające się tylko do jednego medium które z góry przewidział autor programu

wszystkie dotychczasowe produkcje Overmind, Energy, Total Daze, Joyride itp. dysponują swoimi własnymi procedurami transmisji, nie można ich modyfikować bez ingerencji w program

XBios zostawia otwarte drzwi dla innych protokołów transmisji, przy minimalistycznych założeniach wykorzystania pamięci, rezygnacji z ROM, przerwań itd. ale jest to projekt skierowany bardziej dla programistów, tak jak nakładki na MS-DOS pozwalające korzystać z trybu chronionego

jedyne co bym w nim zmienił to możliwość relokacji pod wskazany adres, co bardziej wymagałoby symboli SDX

858

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

jellonek napisał/a:

tebe: mi przeszkadza ze xBios nie dziala z side. miljonom userow side pewnie rownie mocno to przeszkadza. ale to nie autor side nie przewidzial xBiosa - to autor xBiosa nie przewidzial urzadzen innych niz dzialajacych na sio. tj. przewidzial ze mozna podgrac inna wersje biblioteki, np. taka ktora nie istnieje.

to jak to SIDE działa z takim np. Energy-zinem gdzie jest własna transmisja SIO, czy z demami Tight-ów albo Hard-ów

czy projektant tego urządzenia uznał że jest mało programów z takim typem transmisji i nie warto się tym przejmować ?

electron napisał/a:

Ale xbios to mutant. Ze specyfiki działania zachowuje się jak sztywny całodysk, a mieni się być programem uniwersalnym do obsługi plików. Zdanie xxl-a "xbios bazuje na standardowym filesystemie" świadczy dla mnie o tym, że niestety XXL lekceważy rzeczywistość, która nie pasuje się do Jego pomysłów.

przygotowujesz dyskietkę, formatujesz (Single-90Kb, Enhanced-130Kb, Double-180Kb), nagrywasz jakieś pliki w standardzie DOS (w sensie VTOC itp.) i XBIOS będzie to czytało, zgodnie z tym jak Atari DOS-y zapisują dyskietki S,E,D

jeśli mamy do wydania jakieś demo czy grę bardziej rozbudowane to w czym przeszkadza wydanie jej w formie takiej dyskietki

electron napisał/a:

Zastanawiam się, czy osoby, które chcą tego używać chcą to robić dlatego, że jest lepsze, czy dlatego, że łatwiej przeczytać opis kilku funkcji xbiosa niż przekopywać się przez opisy CIO z różnych źródeł. Czyli po prostu lenistwo.

XXL jest osobą która przenosi gry z innych platform, Spectrum, BBC Micro, czy programy z tych platform przejmują się architekturą pamięci XE/XL, bezczelnie ładują swój kod w obszar $c000... albo o zgrozo od $00

XBios ułatwia to z czym normalnie trzeba się gimnastykować, upraszcza projektowanie zarządzania pamięcią, trzymanie DOS-a w pamięci i przywoływanie ROM-u narzuca inne podejście i na pewno nie jest ono elastyczne

innym przykładem może być demo lub gra które będą korzystać tylko z pamięci podstawowej, a resztę danych, kolejne części będą doczytywane podobnie jak ma to często miejsce na C64, chyba możecie sobie wyobrazić że efekty w demach potrafią być bardzo zachłanne na pamięć i nie tolerują kompromisów w tym względzie

859

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

przepraszam że pytam, ale w czym Wam ten XBios przeszkadza, jakieś urządzenie z tym nie działa bo ktoś nie przewidział XBiosa ?

wyłączyć ROM i mieć cały RAM dla siebie, dodatkowo możliwość ładowania przez SIO pod "dowolny" adres, super

w podobny sposób pewnie działają loadery odtwarzające sample podczas transmisji, własne przerwanie IRQ czy inna synchronizacja

jeśli będziemy robić to z udziałem DOS-a, to przed każdą operacją I/O musimy włączyć ROM i wywołać odpowiednią prockę CIO, potem wyłączyć ROM i wrócić do tego co przerwaliśmy na czas transmisji, organizacja pamięci zupełnie inna, nasze procki NMI nie mogą być pod ROM bo go włączamy, pamięć dla ANTIC etc. poniżej $c000

XXL ułatwił sobie i innym życie, tym innym którzy są zachłanni na pamięć RAM :)

860

(11 odpowiedzi, napisanych Programowanie - 8 bit)

w Mario Bros (konwersja z 5200) detekcja kolizji polega na sprawdzeniu podczas odrysowania ducha programowego, czy tło jest <> 0, jeśli jest różne to kolizja i dalsze uściślanie z czym ta kolizja nastąpiła

http://madteam.atari8.info/gry/mario2007.7z

stawianie/kasowanie duchów realizuje jedna procedura, dzięki metodzie EOR (XOR), czyli aby skasować poprzednio postawionego ducha, stawiamy ostatni kształt ducha ale przez EOR, aby postawić nową klatkę ducha używamy OR

pewne dodatkowe operacje są wymagane aby wiedzieć czy wcześniej była postawiona jakaś klatka ducha czy zaczynamy od czystego ekranu

dzięki tej metodzie udało zmieścić się intro do Panga w 2KB, bez potrzeby używania dwóch buforów dla zachowania płynności animacji obiektów

861

(11 odpowiedzi, napisanych Programowanie - 8 bit)

szybka detekcja kolizji, interko Raster/CPU

w Pangu detekcja kolizji kuli z bohaterem, kolizji harpun-kula realizowane są przez w/w metodę nachodzących się prostokątów/kwadratów (kula opisana jest poprzez wpisany w nią kwadrat), natomiast detekcja kuli - otoczenie (murki etc.) realizowana jest na znakach, z tym że dla każdego przesunięcia X kuli (X=<0..3>) jest inna detekcja, uwzględniająca przesunięcie 1 pikslowe, tylko to gwarantuje dokładną detekcję

w większości przypadków stosuje się metodę z czworokątem (w załączniku), czyli albo prostokąt albo kwadrat, jeśli się uprzeć to jakiś inny kształt też da się opisać takimi czworokątami

jak widać na postawie programiku z załącznika detekcja może być szybka

tutaj wersje bardziej pierwotne metody detekcji zaprezentowanej przez Rastera, dział poświęcony duchom C64
http://codebase64.org/doku.php?id=base:sprites

tutaj dla różnych kształtów
http://en.wikipedia.org/wiki/Point_in_polygon

kolizje kul z przykładową animacją, zmianą kierunku po uderzeniu etc. gdyby ktoś chciał robić bilard albo pinball to koniecznie musi to obejrzeć
http://processing.org/learning/topics/c … ision.html

862

(22 odpowiedzi, napisanych Programowanie - 8 bit)

ustawianie odpowiedniego rozmiaru rejestrów realizowane jest poprzez makra, parametrem jest wartość 8 lub 16

863

(22 odpowiedzi, napisanych Programowanie - 8 bit)

w mads jest też możliwość śledzenia rozmiaru rejestrów OPT T+

    opt c+t+
    org $2000

    rep #$20

    lda #0

dla w/w przykładu wystąpi komunikat błędu
ERROR: Bad register size

w tym przypadku prawidłowo powinno być

 lda.w #0

OPT T+ sprawdza rozmiar tylko dla adresowania absolutnego #

864

(22 odpowiedzi, napisanych Programowanie - 8 bit)

w mads ORG-a można zaprojektować wg potrzeb

 opt h-f+
 ORG [a(start), a(over-1)],$2000

start
         nop
over

adres asemblacji po nawiasie kwadratowym jest wymagany, zadziała to tylko gdy OPT H-

dla wspomnianego nagłówka $FBFB, ORG może wyglądać tak:

    opt h-c+
    ORG [a($fbfb),t(prg_start,prg_end-1)],$FFFF80

prg_start
    nop

prg_end

adresy są 24 bitowe

p.s.
w załączniku mads po poprawce, akceptuje adresy ORG 24 bit gdy OPT C+

865

(22 odpowiedzi, napisanych Programowanie - 8 bit)

laoo/ng napisał/a:

Te fragmenty w dokumentacji znam, ale nie tłumaczą one np. jak otrzymać 16 młodszych bitów z adresu 24-bitowego.

pewnie przesuwają bity >> lub << lub AND-ując

możesz też stworzyć jakieś makro które będzie wycinać konkretnie

p.s.
ORG powyżej $FFFF mads nie obsłuży, bo nie miałby jak zapisać tego do wyjścia. ATARI DOS czy SDX nie obsługują adresów > $FFFF

866

(22 odpowiedzi, napisanych Programowanie - 8 bit)

Możliwe jest użycie rozszerzenia mnemonika po znaku kropki '.' dla rozkazów typu LDA, LDX, LDY, STA, STX, STY:

   .b lub .z          BYTE
   .a lub .w lub .q   WORD
   .t lub .l          TRIPLE, LONG (24bit)

np.
   lda.w #$00   ; A9 00 00
   lda   #$80   ; A9 80

Wyjątki stanowią rozkazy n/w, którym nie można zmienić rozmiaru rejestru w adresowaniu absolutnym (niektóre assemblery nie wymagają dla tych rozkazów podania znaku '#', jednak MADS wymaga tego)
#$xx

   SEP   REP   COP

#$xxxx

   PEA

Innym wyjątkiem jest tryb adresowania pośredni długi, który reprezentowany jest przez nawiasy kwadratowe [ ]. Jak wiemy tego typu nawiasy wykorzystywane są też do obliczania wyrażeń, jednak jeśli asembler napotka pierwszy znak '[' uzna to za tryb adresowania pośredni długi i jeśli nie zasygnalizowaliśmy chęci używania 65816 wystąpi błąd z komunikatem Illegal adressing mode. Aby "oszukać" assembler wystarczy dać przed kwadratowym nawiasem otwierającym '[' znak '+'.

 lda [2+4]     ; lda [6]
 lda +[2+4]    ; lda 6

Unary operators:

+  Plus (does nothing)
-  Minus (changes sign)
~  Bitwise not (complements all bits)
!  Logical not (changes true to false and vice versa)
<  Low (extracts low byte)
>  High (extracts high byte)
^  High 24bit (extracts high byte)
=  Extracts memory bank
:  Extracts global variable value

867

(26 odpowiedzi, napisanych Programowanie - 8 bit)

w G2F można wyłączyć wiersze (z prawej strony ekranu ustawić wartości na 0) wtedy zostanie zapisany krótszy MIC

868

(12 odpowiedzi, napisanych Miejsca w sieci)

http://www.zabytkiinformatyki.edu.pl/in … ;Itemid=69

869

(259 odpowiedzi, napisanych Fabryka - 8bit)

a jak wygląda kwestia detekcji kolizji? jakoś wspomagana czy bez wspomagania?

870

(259 odpowiedzi, napisanych Fabryka - 8bit)

xxl napisał/a:

estowo funkcja blittera - zapisanie calego ekranu gr.8 czyli 320x192 pixele stala wartoscia to 193 cykle 6502...

pixele czy całe bajty ?

193 cykle 6502 zajmuje bliterrowi postawienie 320x192 = 61440 pikseli czy postawienie 7680 bajtów odpowiadających tym pikselom ?

871

(259 odpowiedzi, napisanych Fabryka - 8bit)

co w takim razie daje takie przyspieszenie, bo jak wkładam np. kart AtariMax to nie mam przyspieszenia

standardowy kart z nie standardową zawartością ?

konkretniej, bo jak ma być to zgaduj zgadula to równie dobrze może to być kogel mogel

872

(125 odpowiedzi, napisanych Fabryka - 8bit)

bloki co $400 bajtów

 opt h+
 org $4000

 .pages $40

  .align $400

  kod.............

 .align $400

  kod .............

 ...
 ...
 ...

 .endpg

własny nagłówek $ffff,start,end-1+3   (3 bajty napisu 'XXL'), można dać dowolne informacje, należy prawidłowo podać nagłówek w stylu Atari DOS jeśli ma być to ładowane przez Atari DOS, jeśli mamy własny loader możemy postąpić wg uznania

    opt h-
    org $4000

.local    block0
    org [a($ffff, block0, block0+.len(block0)-1+3), c'XXL'],*
    
    lda #0
.endl

    org $4400

.local    block1
    org [a($ffff, block1, block1+.len(block1)-1+3), c'XXL'],*

    nop

.endl

873

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

masz na myśli te gry dla dzieci we flashu itp. na onecie, ubieranki są ulubionym zajęciem poza oglądaniem bajek

874

(125 odpowiedzi, napisanych Fabryka - 8bit)

wystarczy usunąć znak #

  lda <(LINES-1)*40

i będzie OK, jest to zgodne z konwencją QA

875

(644 odpowiedzi, napisanych Programowanie - 8 bit)

nazwy nielegali podpatrywałem w Atari800Win, stąd Mads ich używa, można wstawić dodatkowe nazwy mnemoników jako alternatywę