5,051

(9 odpowiedzi, napisanych Fabryka - 8bit)

takie cos zrobil Nosty, zaemulowal na avr pamiec atari, mial zapis i odczyt, w locie avr jeszcze te dane mogl przetwarzac... cuda panie.

@Pecus, bo jak xxl zrobi program to nie ma uja we wsi ;)

5,052

(0 odpowiedzi, napisanych Programowanie - 8 bit)

dlaczego to tak wyglada? wersja ZX-Spectrum zostala przetlumaczona na 6502, z wersji 6502 przepisalem go na 8088 (AtariPortfolio) a z tego na powrot przetlumaczylem na 6502.

jeden z najprostszych silnikow na GTIA, publikuje zrodlo, moze ktos zechce poeksperymentowac :-)

dane muzyki mozna sobie pociagnac z edytorow na zx spectrum... jest ich kilka do tego silniczka. w zalaczniku plik wykonywalny dla atari - no ewentualnie Altirra, inne emulatory moga nie grac tak jak trzeba.

smacznego

                opt h+l+o+

gractl          equ $d01d
consol          equ $d01f
skctl            equ $d20f
dmactl          equ $d400
nmien           equ $d40e

S_REG           equ $f0
speed           equ $f1
_channel        equ $f2 ; 4 byte


                org $2000
run_adr         sei
                lda #$00 
                sta nmien
                sta gractl
                sta dmactl

music_studio_stack
                tsx
                stx S_REG
                ldx #$03
_lch            lda _ch1,x
                sta _channel,x
                dex
                bpl _lch

_loop           lda skctl
                and #$04
                bne _cont
                ldx S_REG
                txs
                rts

_cont           ldx #$00
_load           lda (_channel,x)
                bpl _80_1
                lda _ch1,x
                sta _channel,x
                lda _ch1+1,x
                sta _channel+1,x
                lda (_channel,x)
_80_1            inc _channel,x
                bne _80_2
                inc _channel+1,x
_80_2            tay
                lda _nuty,y
                pha
                pha
                pha
                sec
                sbc #$01
                pha
                beq _80_en1
                lda #$08
_80_en1         pha
                lda #$00
                pha
                txa
                eor #%10
                tax                 
                bne _load
                tay ; =0
                lda music_speed
                sta speed

_iloop          tsx
_2kolej         lda $0101,x
                sta consol
                dec $0105,x
                bne _2kl
                eor $0102,x
                sta $0101,x
                lda $0106,x
                sta $0105,x
                lda $0104,x
                cmp #$20
                bcs _2kl
                inc $0106,x
_2kl            dec $0103,x
                bne _2kn
                lda $0101,x
                eor $0102,x
                sta $0101,x
                lda $0106,x
                sta $0103,x
                dec $0103,x
_2kn
                txa
                ;clc          ; too slow, replace with sbx
                ;adc #$06
                ;tax
                sbx #$100-$06 ; +6
                cpx S_REG
                bne _2kolej
            
                dey
                bne _iloop
                dec speed
                bne _iloop
                txs
                jmp _loop

_nuty   .byte $FF,$F0,$E3,$D7,$CB,$C0,$B4,$AB
        .byte $A1,$97,$90,$88,$80,$79,$72,$6C
        .byte $66,$60,$5B,$56,$51,$4C,$48,$44
        .byte $40,$3D,$39,$36,$33,$30,$2D,$2B
        .byte $28,$26,$24,$22,$20,$1E,$1C,$1B
        .byte $19,$18,$17,$15,$14,$13,$12,$11
        .byte $10,$01


music_speed     .byte $0f
_ch1            .word kanal1
_ch2            .word kanal2
    
kanal1  .byte $00,$0C,$00,$0C,$00,$0C,$00,$0C
        .byte $08,$14,$08,$14,$05,$11,$05,$11
        .byte $00,$0C,$00,$0C,$00,$0C,$00,$0C
        .byte $08,$14,$08,$14,$05,$11,$05,$07
        .byte $00,$0C,$00,$0C,$00,$0C,$00,$0C
        .byte $08,$14,$08,$14,$05,$11,$05,$07
        .byte $00,$0C,$00,$0C,$00,$0C,$00,$0C
        .byte $08,$14,$08,$14,$05,$11,$05,$07
        .byte $00,$0C,$25,$0C,$00,$0C,$25,$0C
        .byte $03,$0F,$25,$0F,$03,$0F,$25,$25
        .byte $08,$14,$25,$14,$08,$14,$25,$14
        .byte $05,$11,$25,$11,$05,$11,$25,$25
        .byte $00,$0C,$25,$0C,$00,$0C,$00,$0C
        .byte $03,$0F,$25,$0F,$03,$0F,$25,$0F
        .byte $08,$14,$25,$14,$08,$14,$25,$14
        .byte $05,$11,$25,$11,$07,$25,$25,$25
        .byte $03,$0F,$25,$0F,$03,$0F,$25,$0F
        .byte $05,$11,$25,$11,$05,$11,$25,$25
        .byte $00,$0C,$25,$0C,$00,$0C,$25,$0C
        .byte $0A,$16,$25,$16,$0A,$25,$0A,$25
        .byte $03,$0F,$25,$0F,$03,$0F,$25,$25
        .byte $05,$11,$25,$11,$05,$11,$25,$25
        .byte $00,$0C,$25,$0C,$00,$0C,$25,$0C
        .byte $0A,$16,$25,$16,$0A,$25,$0A,$25
        .byte $00,$0C,$25,$0C,$00,$0C,$25,$0C
        .byte $00,$0C,$25,$0C,$07,$05,$25,$25
        .byte $00,$0C,$25,$0C,$00,$0C,$25,$0C
        .byte $00,$0C,$25,$0C,$07,$25,$03,$25
        .byte $30,$30,$31,$30,$30,$31,$2D,$2D
        .byte $31,$2B,$2B,$31,$27,$31,$27,$31
        .byte $30,$30,$30,$30,$30,$30,$2D,$2D
        .byte $2D,$2A,$2A,$2A,$27,$27,$27,$27
        .byte $18,$1F,$18,$1D,$1F,$18,$22,$1F
        .byte $18,$1D,$1F,$18,$24,$1F,$22,$24
        .byte $18,$1F,$22,$1D,$1F,$18,$22,$1F
        .byte $18,$1D,$1B,$1F,$1A,$1D,$16,$1A
        .byte $18,$1F,$18,$1D,$1F,$18,$22,$1F
        .byte $18,$1D,$1F,$18,$24,$1F,$22,$24
        .byte $18,$1F,$22,$1D,$1F,$18,$22,$1F
        .byte $18,$1D,$1B,$18,$1A,$1B,$16,$1A
        .byte $ff
        
kanal2  .byte $00,$0C,$00,$0C,$00,$0C,$00,$0C
        .byte $08,$14,$08,$14,$05,$11,$05,$11
        .byte $00,$0C,$00,$0C,$00,$0C,$00,$0C
        .byte $08,$14,$08,$14,$05,$11,$05,$07
        .byte $00,$0C,$25,$0C,$00,$0C,$25,$0C
        .byte $08,$14,$25,$14,$05,$11,$25,$25
        .byte $00,$0C,$25,$0C,$00,$0C,$25,$0C
        .byte $08,$14,$25,$14,$05,$25,$05,$25
        .byte $1F,$0C,$1F,$0C,$1D,$1F,$00,$18
        .byte $03,$18,$1B,$18,$03,$18,$1B,$18
        .byte $1F,$14,$1F,$14,$1D,$1F,$08,$18
        .byte $05,$18,$1B,$18,$1F,$1D,$1B,$1D
        .byte $1F,$0C,$1F,$0C,$1D,$1B,$25,$18
        .byte $03,$18,$1B,$18,$03,$18,$1F,$18
        .byte $1F,$14,$1F,$14,$1D,$1B,$08,$18
        .byte $05,$18,$1B,$1D,$1F,$1D,$1B,$1A
        .byte $18,$0F,$18,$0F,$16,$18,$03,$13
        .byte $05,$18,$1B,$1D,$1F,$1D,$1B,$1D
        .byte $18,$0C,$1A,$0C,$1B,$18,$00,$1F
        .byte $0A,$1D,$1B,$1D,$1F,$1D,$1B,$1D
        .byte $18,$0F,$18,$0F,$16,$18,$03,$13
        .byte $05,$1D,$1B,$1D,$1F,$1D,$1B,$1A
        .byte $18,$0C,$18,$1A,$1B,$18,$00,$1F
        .byte $0A,$1F,$1D,$1B,$1D,$1B,$1A,$16
        .byte $00,$0C,$00,$0C,$00,$0C,$00,$0C
        .byte $00,$0C,$00,$0C,$07,$05,$03,$05
        .byte $00,$0C,$00,$0C,$00,$0C,$00,$0C
        .byte $00,$0C,$00,$0C,$07,$05,$03,$02
        .byte $30,$30,$30,$30,$30,$30,$2D,$2D
        .byte $2D,$2B,$2B,$2A,$27,$27,$27,$27
        .byte $30,$30,$31,$30,$30,$31,$2D,$2D
        .byte $31,$2A,$2A,$31,$27,$31,$27,$31
        .byte $18,$1F,$31,$1D,$1F,$31,$22,$1F
        .byte $31,$1D,$1F,$31,$24,$31,$22,$31
        .byte $18,$1F,$31,$1D,$1F,$31,$22,$1F
        .byte $31,$1D,$1B,$31,$1A,$31,$16,$31
        .byte $18,$1F,$31,$1D,$1F,$31,$22,$1F
        .byte $31,$1D,$1F,$31,$24,$31,$22,$31
        .byte $18,$1F,$31,$1D,$1F,$31,$22,$1F
        .byte $31,$1D,$1B,$31,$1A,$31,$16,$31
        .byte $ff

        org $2e0
        .word a(run_adr)

---
muzyka Mr.Beep

5,053

(5 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

jaki 11 punkt. gdzie napisalem ze sprzedaje?

5,054

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

jesli wolisz 800xl zamiast 600xl to mozemy sie wymiec

5,055

(24 odpowiedzi, napisanych Zloty)

aaaa... :-) dzieki

a prace pozakonkursowe przed kompo? pytam bo moze uda mi sie zlozyc kilka rymow w asemblerze do pokazania poza konkursem...

5,056

(24 odpowiedzi, napisanych Zloty)

sobota. w punkcie 4 sa kompoty a w punkcie 3 kompo muzyczne? czy prezentacje pozakonkursowe?

5,057

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

sluszna uwaga.

a nie lepiej przeniesc tabele z opisami do Atariki? latwiej edytowac i poprawiac

---
dostalem tez uwage, ze lepiej wydzielic SparteDOS X z kartow (jest przelotowa), rozdzielic IDE Plus / IDEA

5,058

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

nie ma innego rozszerzenia ktore po wpisaniu 0x11xxx0 do portb pod adresem $5000 wlaczy 2kb ram.

5,059

(644 odpowiedzi, napisanych Programowanie - 8 bit)

tego chyba nie zrozumialem. jak?

    jsr podprogram
    TOP
    .byte par1,par2

vs

a/

    jsr podprogram
    BIT
    .byte par1,par2

czy

b/

    jsr podprogram
    .byte par1,par2

w przypadku (a) przeciez zmienia sie znaczniki w w przypadku (b) trzeba korygowac stos

5,060

(644 odpowiedzi, napisanych Programowanie - 8 bit)

a Fox z dwoma niepublikowanymi zrobil to w 20 cyklach :-)

ror @
ror @
ror @
ror @
ldx #$f
sax high
arr #$e0
sta low

5,061

(644 odpowiedzi, napisanych Programowanie - 8 bit)

na AAge byl watek o mnozeniu przez 16 bez tablic (zmiescili sie w 28 cyklach)

tu wersja z niepublikowanym w 22 cyklach

      ldx #$f0    ;2
      asl @       ;4
      rol @       ;6
      rol @       ;8
      rol @       ;10
      sax low     ;14
      and #$07    ;16
      rol @       ;18
      sta high    ;22

5,062

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

cardridge (ktorych jest pińćset rodzajow takich jak Sparta,Ram-Cart itp.) wrzucilem do jednego worka i nie sa to rozszerzenia softwarowe... w tym kawalku HW moze byc zapisany inny program niz DOS i tez bedzie dzialal... uwazasz inaczej przeslij mi na maila Sparta DOS X do wczytania z dyskietki.

te karty miedzy soba tez moga byc niekompatybilne np. ram-cart z basic xe ram-cart z sparta dos x ale nie wiem czy jest sens tak bardzo sie rozdrabniac - moze pozniej tak.

5,063

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

:-)

oprocz Altirra teraz Atari800 emuluje MapRAM...

to swietnie, ze gracze na Linuxach i Mackach tez beda mogli sie pobawic w ... [ chicho! sza! ]

5,064

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

zaznaczylem konflikt miedzy IDE Plus i Karin Maxi (problem opisany na Atariki). gdy tabela bedzie gotowa wszystkie konflikty zostana opisane.

---

zmienilem tez opis:

"- - funkcja zdublowana w calosci (jedno z tych urzadzen usunac)"

przykladowo jesli mam karta SpartaDOS X oraz IDE Plus to karta nie potrzebuje poniewaz IDE Plus ma wbudowana Sparte. podobna sytuacja z Qmeg i Ultimate1M.

5,065

(644 odpowiedzi, napisanych Programowanie - 8 bit)

albo cos takiego. przekazujemy do podprogramu parametry przykladowo dwa:

    jsr podprogram
    .byte $00,$00

zwyczajowo podprogram powinien aktualizowac stos zeby ominac parametry po powrocie:

      lda PZER0
      clc
      adc #2
      tay
      bcc _1
      inc PZER0+1
_1    lda PZER0+1
      pha
      tya
      pha
      rts

a z niepublikowanym rozkazem TOP mozna to ominac:

    jsr podprogram
    TOP
    .byte $00,$00

i podprogram wraca tak

    rts

caly czas wskazniki mamy prawidlowe

5,066

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

> Powinien, jako rozszerzenie softwarowe.

juz mowilem, mamy inne zdanie na ten temat i mozemy o tym dlugo i bezsensowie rozmawiac. skupmy sie na istocie:

usunac informacje na temat Qmega nawet jesli moze on miec wplyw na dzialanie / nie dzialanie innych rozszerzen? ktos kto bedzie decydowal sie na instalacje QMEGa byc moze bedzie szukal informacji na temat poziomu jego zgodnosci z rozszerzeniami ktore byc moze ma lub planuje zainstalowac.

5,067

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

mam inne zdanie ale wrocmy do tematu :-)

uwazasz, ze qmega nie powinno byc w tym zestawieniu?

5,068

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

ciekawy punkt widzenia.
co jesli wymienie MMU na takie w ktorym zapisany jest program zmieniajacy architekture atari.
co jesli wymienie dowolny uklad na dokladna kopie w ukladzie programowalnym

typowy problem tozsamosci obiektu ;-)

poza tym bardziej interesuje mnie to, ze to rozszerzenie (jak zwal tak zwal - gdzie napisalem sprzetowe? :D ale i tak bez lutownicy nie zainstalujesz) moze miec wplyw na dzialanie innych rozszerzen.

5,069

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

instalacja qmega (za instrukcja):

Aby zainstalować Qmeg'a (jak i dowolnie inny Os) potrzebne ną nam następujące części:
podstawka pod układ 28 pinów
mikroprzełącznik dwu-pozycyjny
trochę kabelków
kość z następnym OS Rom'em
butelka piwa

:-)


---
poza tym program zapisany w nowym romie moze miec wplyw na skladniki systemu jak rowniez sposob dzialania/nie dzialania innych rozszerzen. qmeg jest tu dobrym przykladem.

5,070

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

potrzebuje informacji na temat kompatybilnosci roznych rozszerzen do malego atari. mysle, ze moga to byc przydatne informacje

1.Cartridge (rowniez SpartaDOS X)
2.Zegar
3.Freezer
4.IDE Plus / IDEA
5.KARIN MAXI
6.MapRAM
7.Rozszerzenie pamieci (dowolne)
8.SIDE
9.Ultimate1M
0.QMEG

2  |   |
3  | ? | ? |
4  | - | - | ? |
5  |   |   | ? | x |
6  |   |   | x |   |   |
7  |   |   | ? |   |   |   |
8  |   | - | ? |   |   |   |   |
9  | - | - | x | *1|   | x | - | *1|
0  |   |   | ? |   |   |   |   |   | - |
   | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

*1 - nalezy wylaczyc SpartaDOS X na jednym z tych rozszerzen

? - brak danych
- - funkcja zdublowana w calosci (jedno z tych urzadzen usunac) 
x - kolizja
*n - zgodna warunkowo

1.moze trzeba tabelke uzupelnic o jakies rozszerzenie, zmienic lub uszczegolowic wpis
2.moze trzeba podac informacje o czesciowej lub warunkowej kompatybilnosci wraz z warunkami

tabelka bedzie uaktualniana

---
jak wyglada kompatybilnosc:

SIDE - IDE+ (na poziomie SpartaDOS X - czy musi byc wylaczony i na ktorym rozszerzeniu)
zegarow na IDE+/SIDE/Ultimate1M

5,071

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

to jest celowe dzialanie. dzieki temu MapRAM dziala dokladnie tak samo na atari bez rozszerzenia pamieci i z dowolnym typem rozszerzenia pamieci (z oddzielnym sterowaniem pamiecia dla ANTICa).

5,072

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

artek na temat MapRAM:

http://atarionline.pl/v01/index.php?sub … =Stary+Dum

5,073

(644 odpowiedzi, napisanych Programowanie - 8 bit)

no chyba wszystkie uzaleznione od wskaznikow zaraz po BIT.

nie za ambitny przyklad ale ciekawe zagniezdzenie nopow :) i w x roznica...

            lda granica
_1        dcp (licznik),y
            top
_2        inx
            top
            bcc _2
            bne _1

5,074

(644 odpowiedzi, napisanych Programowanie - 8 bit)

2 i 3 bajtowe NPO (DOP/TOP), spotkalem sie z nazwami SKB,SKW (skip byte/word) ale uwazam, ze takie nazwy sa mylace poniewaz rozkaz NPO wykonuje odczyt z adresu (moze wplywac na rejestry wrazliwe na odczyt), nie wplywa na znaczniki i rejestry - przez co do maskowania rozkazow jest lepszy od BIT.

5,075

(22 odpowiedzi, napisanych Bałagan)

efekt jest taki, ze samochod nie podaje pozycji, na lokalizatorze masz zawsze ostatnia pozycje i w zaleznosci od ustawien (m.innymi map zasiegu) alarm ;). nawet jak wrocisz na miejsce jaja sie zaczynaja jak wylaczysz zagluszacz i strerownik zacznie przekazywac dane... ogolnie takie zagluszacze to disco polo