Przejdź do treści forum
atari.area forum
Twoje polskie źródło informacji o Atari
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Aktywne tematy Tematy bez odpowiedzi
Aktualności ze świata Atari
Golden Axe na Atari: Nowy silnik Vegi Vega prezentuje szybki silnik dla portu Golden Axe, oferujący tryb dla dwóch graczy, muzykę Mikera i grafikę Gaspara.
FujiNet Go 800 na Androida Emulator Atari 8-bit z wbudowaną obsługą FujiNet zadebiutował w sklepie Google Play dla Androida.
Fujisan 2.0.3 Aktualizacja emulatora Fujisan przynosi poprawki FujiNet, FastBasic i naprawę obsługi joysticków.
TURGEN 9.4.3 Aktualizacja narzędzia TURGEN do tworzenia taśm dla 8-bitowych Atari z nowymi poprawkami.
Wyniki GRAWITACJA 8bit GameJam Znamy zwycięzców krakowskiego jamu. Temat: PROMIEŃ. Najlepsza gra to 3.14RANHAS na Atari.
Opcje wyszukiwania (Strona 36 z 117)
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ć
OPT T+ sprawdza rozmiar tylko dla adresowania absolutnego #
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+
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
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
w G2F można wyłączyć wiersze (z prawej strony ekranu ustawić wartości na 0) wtedy zostanie zapisany krótszy MIC
a jak wygląda kwestia detekcji kolizji? jakoś wspomagana czy bez wspomagania?
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 ?
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
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
masz na myśli te gry dla dzieci we flashu itp. na onecie, ubieranki są ulubionym zajęciem poza oglądaniem bajek
wystarczy usunąć znak #
i będzie OK, jest to zgodne z konwencją QA
nazwy nielegali podpatrywałem w Atari800Win, stąd Mads ich używa, można wstawić dodatkowe nazwy mnemoników jako alternatywę
prezentacja prac będzie w 3d czy 2d ? bo teraz 3d jest w modzie, może Pinek dokona konwersji do 3d :D
Super Packer też może pomóc
ostatnio coś podobnego udało mi się uzyskać w Notepad++ który jest lżejszy aniżeli Visual Studio czy WUDSN
plugin Explorer z lewej i plugin FunctionList z prawej
plugin Explorer można zassać przy pomocy wbudowanego menadżera, FunctionList nie jest na tej liście z powodu problematyczności, w załączniku ZIP z plikami i instrukcją instalacji, osobno DLL który jest stabilny
dodatkowo FunctionListRules.xml dla MADS-a, pokazuje listę dla .PROC, .LOCAL, .MACRO, .ENUM, .STRUCT
nowy mads 1.9.4 już jest http://mads.atari8.info
najważniejsza zmiana to możliwość nazywania parametrów makr, czyli większa przejrzystość kodu, łatwiej zrozumieć co makro wyczynia z parametrami
.macro SetColor val,reg
lda :val
sta :reg
.endm
.macro SetColor2 (arg1, arg2)
lda #:arg1
sta arg2
.endm
p.s.
w planach napisanie nowego kodu obsługującego pętle .REPT tak aby można było je zagnieżdżać, aktualnie aby to obejść trzeba posiłkować się makrami
a dlaczego nie działa z komputerem Pinokia ?
może dodam jeszcze dla Tych którzy są oburzeni potrzebą użycia znaku $ dla oznaczenia wartości Hex jest alternatywa, mogą użyć 0x, Candle z lubością tego używa
dla Tych którzy są oburzeni potrzebą kończenia bloku .LOCAL czy innego podobnego tworu odpowiednią dyrektywą .ENDL mogą użyć uniwersalnej wersji i o jeden znak krótszej .END
mogą także użyć klamr znanych z C { }, byle tylko te klamry były w osobnych wierszach
czyli dla każdego coś miłego ;)
pajero napisał/a:Oj, prze-kombi-nujecie zaraz.
Proszę wrócić do starych zasad, "LDX #0 cośtam" bo mi wali błędami.
Inne:
Moja sugestia - plik *.lab generuje etykiety UPCASE - proszę zrobić jak w orginale *.ASM.
Czyli, piszę:
ORG $1730
Etykieta LDX #
to plik LAB robi
00 1730 ETYKIETA
a winien wypluć
00 1730 Etykieta
od tego jest przełącznik -c Label case sensitivity
użyj go a będziesz miał w pliku LAB etykiety w takiej postaci jak zapisałeś, tylko miej na uwadze to że
to dwie różne etykiety
mono napisał/a:Hmmm. A co myślicie o czymś takim:?
Co powinno się zdarzyć?
zdarzy się ZERO
w załączniku mads po poprawce, tzn.
jeśli użyjemy łączenia mnemoników poprzez znak ':' będzie po staremu czyli w stylu QA, XASM
jeśli nie będzie łączenia mnemoników znakiem ':' to pojawi się błąd "Extra character in line"
ldx:dex $00 -> OK
dex $00 -> ERROR
p.s.
a może tak nauczyć edytor kontroli składni
nie można tego traktować jako błąd, jeśli zostanie to zablokowane przestanie działać kod typu
bracia Wiśniewscy, Probe i spółka, przecież Probe wcześniej na konkurs Abbuca wystawiał już Rick-a tyle że w wersji mocno okrojonej wizualnie
Ja pomogę, w załączniku wszystko co mam na temat Rick-a, m.in. mapy leveli 1 i 2
Znalezione posty [ 876 do 900 z 2,910 ]
Forum oparte o: PunBB
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.
Wygenerowano w 0.095 sekund, wykonano 19 zapytań