851

(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

852

(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

853

(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

854

(12 odpowiedzi, napisanych Miejsca w sieci)

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

855

(259 odpowiedzi, napisanych Fabryka - 8bit)

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

856

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

857

(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

858

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

859

(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

860

(124 odpowiedzi, napisanych Fabryka - 8bit)

wystarczy usunąć znak #

  lda <(LINES-1)*40

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

861

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

862

(22 odpowiedzi, napisanych Zloty)

prezentacja prac będzie w 3d czy 2d ? bo teraz 3d jest w modzie, może Pinek dokona konwersji do 3d :D

863

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

Super Packer też może pomóc

864

(4 odpowiedzi, napisanych Miejsca w sieci)

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

865

(124 odpowiedzi, napisanych Fabryka - 8bit)

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

866

(73 odpowiedzi, napisanych Fabryka - 8bit)

a dlaczego nie działa z komputerem Pinokia ?

867

(124 odpowiedzi, napisanych Fabryka - 8bit)

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

.local name
{
 nop 
 nop
}

czyli dla każdego coś miłego ;)

868

(124 odpowiedzi, napisanych Fabryka - 8bit)

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

Etykieta
etykieta

to dwie różne etykiety

869

(124 odpowiedzi, napisanych Fabryka - 8bit)

mono napisał/a:

Hmmm. A co myślicie o czymś takim:?

lda #
ldx #
ldy #

Co powinno się zdarzyć?

zdarzy się ZERO

lda #0
ldx #0
ldy #0

870

(124 odpowiedzi, napisanych Fabryka - 8bit)

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

871

(124 odpowiedzi, napisanych Fabryka - 8bit)

nie można tego traktować jako błąd, jeśli zostanie to zablokowane przestanie działać kod typu

    ldx:dex $00

872

(161 odpowiedzi, napisanych Fabryka - 8bit)

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

873

(161 odpowiedzi, napisanych Fabryka - 8bit)

Ja pomogę, w załączniku wszystko co mam na temat Rick-a, m.in. mapy leveli 1 i 2

874

(11 odpowiedzi, napisanych Scena - 8bit)

w paczce z mads-em jest mandelbrot

875

(4 odpowiedzi, napisanych Miejsca w sieci)

superaśna :)