A mostly Mac/65 compatible cross-assembler
http://www.cs.utah.edu/~schmelze/atari/atasm/index.html
hehe, jest i na PC MAC65
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
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.
Fujisan 2.0.2 Nowa wersja emulatora Fujisan przynosi poprawki błędów oraz usprawnienia w obsłudze interfejsu.
BurgerTom: teraz na Atari Jaguar Nowa konwersja BurgerTime trafia na Atari Jaguar dzięki pracy twórcy o nicku swapd0.
Altirra 4.50 test 9 Avery Lee udostępnił kolejną wersję testową emulatora Altirra 4.50 z poprawkami w AltirraOS i SAP.
atari.area forum » Posty przez tebe
A mostly Mac/65 compatible cross-assembler
http://www.cs.utah.edu/~schmelze/atari/atasm/index.html
hehe, jest i na PC MAC65
zdaje sie ze zapakowali do Commodore 128, cos takiego blittero podobnego
nie dziekuje, to taki zart odpowiedz na twoje zapytanie :)
jak w temacie :lol:
no bardzo ladne
podajcie przyklad makra z parametrami w MAC65
nie łam sie Stryker, po osiagnięcu 15MB limitu w przypadku 640kb/s nadal bedziesz mogl ssac z zawrotna szybkoscia 32kb/s ;)
o planach tepsy, mozna bylo duzo wczesniej poczytac na boardzie http:// www.twojepc.pl i pewnie innych tego typu stronach
Netia pewnie w odpowiedzi na ruch TEPSy, wprowadzila usluge net24h, bez limitow itp, tylko czy w Twojej okolicy jest Netia ?
podajcie przyklad makra z parametrami
da sie obejsc, uzyj XASM-a
uuu rezygnujesz z HDD do Atari?
mam nadzieje ze chcesz wlozyc tam wiekszy
gratuluje spotkania, pewnie gdyby ludziki z aarea wierzyly ze to mozliwe, przygotowalyby jakis zestaw pytan do wywiadu :)
mam nadzieje ze zdobyles do niego bezposredni numer telefonu ;)
Pecus, chetnie przyjme zdisasemblowany loader Sparty, adres email tbiela@poczta.onet.pl
Poczytalem dokumentacje do BWDos'a Jiri Bernaska i zdaje sie ze nie trzeba pisac wlasnych, krotszych procedur dla Sparty, bo BWDos jest w sam raz. Nie uzywa banku dodatkowego, wszystko siedzi w RAM, nie korzysta z pamieci pod ROM.
Ktos uzywal juz BWDos'a i HDD ?
czyli ograniczenia wprowadza tylko zastosowany DOS, wlasne procedury moglyby obsluzyc pewnie i FAT16, tak ?
Ale Sparta i ograniczenie sektora do 256 bajtow, a ich liczbe do $FFFF jest w zupelnosci wystarczajace, zgadzacie sie ?
I chyba nie warto forsowac nowego formatu, chyba ze bylby to zgodny z platformą PC, zgadzacie sie ?
p.s.
planuje napisac procedury obslugujace dyskietke Sparty bez udzialu Sparty, czyli taką mini Sparte, a moze ktos juz takie posiada ?
Jakie sa ograniczenia kontrolerow HDD stosowanych w Atari ?
Czy partycja HDD musi miec koniecznie sektory max 256 bajtow ?
Czy jest ograniczona liczba sektorow ktore potrafi kontroler zaadresowac ?
W jaki sposob mozna odwolac sie do kontrolera, przez DCB ?
Gdzie znajde opis obslugiwanych komend kontrolera ?
Jak rozpoznac obecnosc kontrolera SIO2IDE, KMK ?
Pin nie masz katalogu LL99, przeciez Sparta ma katalogi :)
spakowalem plik ROM z Commando, deflaterem FOX'a z 524288 bajtów wyszlo 16950 bajtów :) wiec nie bylo by zadnego machania dyskietkami, tylko troche dluzsza kompresja, albo podzielic caly ROM na 16KB pliki i je spakowac i podczas ladowania depakowac
chyba ze deflater FOX'a nie jest przystosowany do kompresji tak dlugich plikow, bo ZIP spakowal to do 56253 bajtow
albo w linker na całą pamięć posiadaną prze usera - też pomysł chyba upadł, co???
pierwsze slysze, o co w tym chodzilo ? o linker dla cc65 ?
mnie tez dopiszcie do listy osob zainteresowanych
a czy MAE jest na PC ?
przyklad Lizard'a niezle przekombinowany :)
zaleta takiego asemblera/kompilatora mialaby byc wlasnie mozliwosc swobodnego napisania duzego programu, z full wypas bajerami, nie trzeba martwic sie gdzie zmiescic ekran, dane, duzy bufor bo podczas asemblacji zostanie to automatycznie podzielone na 16KB fragmenty i niezaleznie od aktualnej konfiguracji pamieci dodatkowej (bo w kodzie wynikowym kody bankow nie bylyby podawane przez 'lda #$fe' tylko jako odwolanie do tablicy 'lda tablica_bankow+4') zostanie zaladowany i uruchomiony
oczywiscie warunkiem koniecznym musialoby byc istnienie konkretnej ilosci dodatkowych bankow, tyle ile wymaga dany program
z poziomu kazdej procedury mieszczacej sie w dodatkowym banku ($4000..$7FFF) bylaby mozliwosc adresowania obszarow $0000..$3FFF i $8000..$FFFF, w ten sposob przekazywane bylyby dane pomiedzy bankami jesli jest taka potrzeba, oczywiscie troszczy sie o to uzytkownik
Wstęp
CPU6502 nie ma możliwości bezpośredniego odwołania się pod konkretny adres dodatkowej pamięci (XMS) jak jest to w przypadku CPU65816. Potrafi maksymalnie zaadresować 64KB pamięci, dostęp do pamięci rozszerzonej realizowany jest przez przełączanie 16KB banków w obszarze $4000..$7FFF. Rejestr PORTB ($d301) jest odpowiedzialny za włączenie konkretnego banku pamięci w w/w obszar.
Założenia.
Aby program mógł działać w pamięci XMS będzie potrzebował kilka krótkich procedur i buforów umieszczonych poza obszarem $4000..$7FFF. Procedury te będą przełączały banki pamięci, dokonywały skoku.
Kompilator przestawia się w tryb pracy z dodatkowymi bankami pamięci (banked) po napotkaniu mnemonika BLK. Po napotkaniu tego mnemonika licznik banków zostaje zwiększony (defaulf=-1), a adres generowanego kodu ustawiany jest na $4000. Jeśli podczas kompilacji zostanie przekroczony adres $7FFF kompilacja zostaje przerwana i zasygnalizowany zostaje błąd przekroczenia dozwolonego obszaru. Aby uniknąć błędu przekroczenia dozwolonego obszaru należy ponownie umieścić mnemonik BLK w programie.
W trybie 'banked', podczas kompilacji wszelkie rozkazy skoków i adresowania będą sprawdzane czy nie odwołują się do obszaru o innym numerze banku. Odwołanie do obszaru o innym numerze banku będzie traktowane jako błąd i odpowiednio sygnalizowane.
Wyłączenie trybu 'banked' nastąpi po napotkaniu mnemonika ORG i adresu spoza zakresu $4000..$7FFF.
Skok do obszaru o innym numerze banku będzie możliwy tylko w trybie 'banked' przy pomocy dwóch mnemoników JML (jump long) oraz JSL (jump subroutine long). Jako że tylko CPU65816 posiada sprzętową obsługę JML i JSL, w przypadku 6502 będzie musiała zostać wykonana dodatkowa procedura. I tak napotkanie mnemonika JML lub JSL, każdorazowo spowoduje zastąpienie go następującym fragmentem kodu:
JML
jsr ___pushAXY
lda tablica_bankow ; odczytanie kodu banku obszaru z tablicy
ldx < $xxx ; wyliczony adres
ldy > $xxx
jmp ___jmlJSL
jsr ___pushAXY
lda tablica_bankow ; odczytanie kodu banku obszaru z tablicy
ldx < $xxx ; wyliczony adres
ldy > $xxx
jsr ___jsl* --- jump long --- *
___jml stx ___jmp+1 ; modyfikacja adresu ___jmp
sty ___jmp+2
jsr ___pullAXY
___jmp jmp $ffff ; skok* --- jump subroutine long --- *
___jsl pha ; zapamietanie rejestru regA
lda $d301 ; zapamietanie kodu poprzedniego banku
sta ___bank
pla
sta $d301 ; wlaczenie banku
stx ___jmp+1 ; modyfikacja adresu _JSR
sty ___jmp+2
jsr ___pullAXY ; odczytanie wartosci z rejestrow A,X,Y
___jmp jsr $ffff ; wywołanie procedury
pha ; powrót z procedury, zapamiętanie regA
lda #0 ; przywrócenie kodu poprzedniego banku
___bank equ *-1
sta $d301 ; włączenie poprzedniego banku
pla ; zwrócenie regA
rts ; kontynuowania programu w dodatkowym banku* --- push A,X,Y --- *
_pushAXY equ *
sta ___regA ; zapamiętanie wartości rejestrów
stx ___regX
sty ___regY
rts* --- pull A,X,Y --- *
___pullAXY equ * ; oddanie wartości rejestrów
lda #0
___regA equ *-1
ldx #0
___regX equ *-1
ldy #0
___regY equ *-1
rtsJeśli posiadamy 16-bit CPU kod generowany przez kompilator może być pozbawiony tych procedur i zastąpiony konkretnym kodem JML, JSL.
I tak ogolnie przedstawia sie pomysl na nowy kompilator 6502, co Wy na to ?
a jesli chcesz byc kompatybilny i jesli chodzi Ci o muze na samplach to uzywaj ProTracker'a ktorym stworzysz znanego z Amigi MOD'a
atari.area forum » Posty przez tebe
Wygenerowano w 0.101 sekund, wykonano 22 zapytań