2,401

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

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 ___jml

JSL

        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
        rts

Jeś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 ?

2,402

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

a jesli chcesz byc kompatybilny i jesli chodzi Ci o muze na samplach to uzywaj ProTracker'a ktorym stworzysz znanego z Amigi MOD'a

2,403

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

bardzo szybkie mnozenie znajdziecie tu

http://www.ffd2.com/fridge/math/fastmult

pozatym powinniscie znac

http://www.ffd2.com/fridge/

a najlepiej

http://www.6502.org/

zreszta od czego jest Google :)

2,404

(5 odpowiedzi, napisanych Bałagan)

dziwny temat na aarea :) wole jednak nie ryzykowac na wrednych forach comodorowcow

czy znacie jakis emul c64 w ktorym mozna wylaczyc sprity, tak aby nie byly wyswietlane pod emulem ?

i czy jest jakis emul c64 z mozliwoscia tak jak atari800win nagrania pliku AVI ?

te z ktorymi mialem do czynienia ccs, vice nie mialy tych mozliwosci, przynajmniej nie udalo mi sie tych mozliwosci w nich znalezc :)

2,405

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

nie martw sie Miker, Swiety napisze wersje dla Covoxa i CPU16bit, tak ze bedzie lepiej niz w oryginale ;)

2,406

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

:o
C O O L

p.s.
ciekawe czy wyjdzie wersja dla Covoxa :)

2,407

(39 odpowiedzi, napisanych Bałagan)

ostatnio widzialem FOX'a w chinskiej potrawce

2,408

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

z rozszerzene, prawie wszystko co tylko mozliwe, 1MB, HDD, SpartaX, Qmeg, 2xPokey, cpu65816

2,409

(36 odpowiedzi, napisanych Zloty)

niech ktos mnie pocieszy i napisze negatywna opinie o party :)

2,410

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

Czy mozna z poziomu QMEG-a odpalic kartridge, chodzi konkretnie o Flash Cart 1MB ? Probowalem przez Shift+logo, ale wraca do Qmeg-a, pewnie inaczej powinno sie to robic, ale jak ?

Wylaczalem Qmeg-a, ale wtedy wchodzil do Self Testu. Moze liczne rozszerzenia w Atarku uniemozliwiaja uruchomienie takiego kartridga ?

2,411

(8 odpowiedzi, napisanych Bałagan)

jaki inteligent, jest fajnie bo jestem pijany, bezmogowiec jeden, bedzie fajniej jak wystawisz demo

2,412

(4 odpowiedzi, napisanych Bałagan)

kup sobie w sklepie, cholerny sępie  :lol:

2,413

(20 odpowiedzi, napisanych Scena - 8bit)

sciagnalem i odpalilem ten Manic Miner, teraz juz wiem dlaczego nie ma go na Atari i bardzo dobrze, tragiczna gierka

2,414

(20 odpowiedzi, napisanych Scena - 8bit)

to jakis zart, wbili malpe w garnitur i kazali jej pozowac do zdjec :)

2,415

(43 odpowiedzi, napisanych Zloty)

i Pajero, Vasco

2,416

(10 odpowiedzi, napisanych Bałagan)

dlatego nie warto jezdzic normalnym na tego typu imprezy, chyba ze ktos lubi sie upijac

a zeby wypic kazdy pretekst jest dobry

2,417

(42 odpowiedzi, napisanych Zloty)

Dyna Blaster by TeBe & Vidol  8)

2,418

(13 odpowiedzi, napisanych Bałagan)

na forach zwiazanych z PC bylo o tym glosno i we wlasciwym czasie

2,419

(42 odpowiedzi, napisanych Bałagan)

widac Dely ze masz sporo wolnego czasu, to moze w koncu umiescisz artykuly ktore zostaly do Ciebie wyslane

2,420

(30 odpowiedzi, napisanych Bałagan)

Buster, podzielisz sie szczesciem  :lol: ?

2,421

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

w Poznaniu bylo tez Turbo6000, bodajze tak to sie nazywalo, montowal to pirat z Półwiejskiej, nie bylo kartridza, nalezalo wczytac system z tasmy

zapisywal plik w tym systemie bez przerw, jednym ciagiem, jednak nie wszystkie programy daly sie na przerobic, nie bylo tez tak duzo softu jak na t2000

wiec w koncu przerobilem magnet na Turbo2000F

2,422

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

obawiam sie ze Marek M ma racje

stworzcie nowy format zapisu dyskietki w pliku, z uwzglednieniem Waszych fanaberii i wtedy meczcie Marka aby dorzucil obsluge takowego formatu jako lepszego od ATR

bo zrobicie z ATR to samo co z formatem Koali, "kazdy sobie rzepke skrobie" :)

2,423

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

tylko Pasiu to rozumie

2,424

(10 odpowiedzi, napisanych Quast Rules)

cos tutaj cicho, sa juz ostateczne uzgodnienia co do regulaminu ?

2,425

(6 odpowiedzi, napisanych Bałagan)

teraz wiemy czym mozemy meśce zaimponowac  :lol: