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 ;)
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
zeST 20250627 - Atari ST w FPGA z turbo! Nowa wersja zeST z trybem turbo 50 MHz i poprawkami Shiftera i MFP
UltraSatan - firmware 1.30 Nowa wersja firmware dla UltraSatana wspiera nowoczesne karty SDHC i SDXC
53 lata marki Atari 53 lata od założenia Atari - firmy, która odmieniła świat gier i komputerów.
Odtwarzanie układów z Atari Falcon Trwa zbiórka na odtworzenie chipów Videl, Combel i SDMA z Atari Falcon
onEscape extEnded and reWorked Poison prezentuje rozszerzoną i poprawioną ścieżkę dźwiękową z gry onEscape.
atari.area forum » Posty przez xxl
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 ;)
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
jaki 11 punkt. gdzie napisalem ze sprzedaje?
jesli wolisz 800xl zamiast 600xl to mozemy sie wymiec
aaaa... :-) dzieki
a prace pozakonkursowe przed kompo? pytam bo moze uda mi sie zlozyc kilka rymow w asemblerze do pokazania poza konkursem...
sobota. w punkcie 4 sa kompoty a w punkcie 3 kompo muzyczne? czy prezentacje pozakonkursowe?
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
nie ma innego rozszerzenia ktore po wpisaniu 0x11xxx0 do portb pod adresem $5000 wlaczy 2kb ram.
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
a Fox z dwoma niepublikowanymi zrobil to w 20 cyklach :-)
ror @
ror @
ror @
ror @
ldx #$f
sax high
arr #$e0
sta low
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
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.
:-)
oprocz Altirra teraz Atari800 emuluje MapRAM...
to swietnie, ze gracze na Linuxach i Mackach tez beda mogli sie pobawic w ... [ chicho! sza! ]
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.
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
> 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.
mam inne zdanie ale wrocmy do tematu :-)
uwazasz, ze qmega nie powinno byc w tym zestawieniu?
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.
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.
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
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).
artek na temat MapRAM:
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
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.
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
atari.area forum » Posty przez xxl
Wygenerowano w 0.206 sekund, wykonano 11 zapytań