1

Czołem!
ładuję dane do pamięci rozszerzonej w trakcie wczytywania pliku, więc ustawiam znaczniki PORTB tak, aby ROM był włączony i aby SELFTEST był wyłączony:

org $d301
dta b(%11100011)

Mam teraz problem z kompatybilnością z inną pamięcią niż ta w 130XE. Może ktoś zna metodę na ładowanie danych do pamięci w trakcie wczytywania pliku i poprawnym ich wywołaniem gdy program już się załaduje?

2

Odradzam bezpośrednie adresowanie PORTB za pomocą bloku pliku, bo:
1. Nie masz pewności czy loader nie jest pod romem/w extramie (dowolny loader/sdx/dos/xbios).
2. Nie wiadomo czy nie manipuluje extramem.
3. Nie wiesz jakie jest zainstalowane rozszerzenie (PORTB/Axlon/VBXE).
Polecałbym:
1. Detekcję rodzaju pamięci i dostępnych banków.
2. Ładowanie danych do pamięci.
3. Przepisywanie pamięci w miejsce docelowe w bloku init.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

3

okay, dzięki, to chyba najlepsza metoda

4 Ostatnio edytowany przez Vidol (2017-05-01 04:44:51)

A po co to przepisywanie, zeby program wczytywal sie wolniej niz z kasety :) ?

W czasie sprawdzania pamieci tworzysz sobie tabelke z numerami bankow, a potem w pliku robisz:

 org $2000 
 lda tab
 sta $d301
 ini $2000
$4000-$7fff - blok danych
org $2000 
 lda tab+1
 sta $d301
 ini $2000
$4000-$7fff - blok danych
 itd...

5

a ja polecam takie coś - działa na każdym rozszerzeniu pamięci :)

    org $022F
    dta b($00) ;czarny ekran

    org $4000
    ;ładowanie danych do banku podstawowego

    org $d301
    dta b(%1100 00 11) ;bank 00

    org $4000
    ;ładowanie danych do banku 00

    org $d301
    dta b(%1100 01 11) ;bank 01

    org $4000
    ;ładowanie danych do banku 01

    org $d301
    dta b(%1100 10 11) ;bank 10

    org $4000
    ;ładowanie danych do banku 10

    org $d301
    dta b(%1100 11 11) ;bank 11

    org $4000
    ;ładowanie danych do banku 11

6

Nadużywanie ORG w tym celu trochę boli, oczy zaczymają podchodzić krwią… :)

Ja bym najpierw dowiedział się CZY w ogóle pamięć rozszerzona istnieje i jeśli tak, to jaka i ile jej jest, a dopiero potem ładował kolejne bloki.

.: miejsce na twoją reklamę :.

7

Jak będą krwawić to załóż okulary:)
Pokaż mi bardziej efektywną metodę ładowania tych bloków do pamięci banków 130xe?
Po co wykrywać rozszerzenie jak każe jest kompatybilne z bankami 130xe?:)

8

no wlasnie...

kolega bedzie korzystal z maksymalnie 4 bankow - widac to po pierwszym poscie
wiec sprawdzanie ile jest pamieci jest zbedne, wystarczy ewentualnie sprawdzic czy jest bank nr.1 - czy jest rozszerzenie ktore ma mniej niz 4 banki?
numery bankow tez sa niepotrzebne bo czy istanieje rozszerzenie ktore nie ma nr.banku ktore ma a130?
z loaderami tez nie ma problemu bo rejestr portb jest r/w wiec dobrze napisane loadery sobie poradza :-)

najprosciej
org $d3x1
.byte bank
org $4000
dane

a czy jest efektywniejsze? no... ja bym do banku dekompresowal wprost z pliku

http://atari.pl/hsc/ad.php?i=1.

9

Skrzyp - nie martw się, Koala zrobił już raz na Silly Venture kompofilera, który nie działa na 64kB ale jednak na 64kB się uruchamia mimo, iż potrzebuje bodajże 128kB ram :D

XXL - najbardziej z twojej wypowiedzi spodobał mi się zapis:

XXL napisał/a:

$d3x1

;)

Kontakt: pin@usdk.pl

10

ładowanie bezpośrednio do banku wykłada SDX

uniwersalnie tzn. z przepisywaniem, czyli ładuj poza obszar $4000..$7FFF, potem przepisz z użyciem CPU w obszar $4000..$7FFF

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

11 Ostatnio edytowany przez koala (2017-05-01 11:30:44)

@Pin:  kompofiler był robiony na party, przez co nie był dokładnie przetestowany - stąd problem na gołej 130stce. Wersja afterparty nie miała tego problemu. A co odpalenia prodli na stocku 64kbram... no cóż, jak ktoś nie umie czytać readme to polecam szkołę podstawową.

@TeBe - w jaki sposób wykłada?

Edit:
@XXL - Nawet jakby rejestr PortB był W-only  to IMO także by działał taki zapis, R/W tutaj nic nie zmienia, ważne że jest W:)

12

Widzisz Koala - ale jak byś wykrył co masz to problem nigdy by nie zaistniał. Tzn w imię niedbalstwa odsyłasz do dokumentacji? :)

Kontakt: pin@usdk.pl

13

Pin - nie rób już oftopika - od tego jest inny temat (notabene założony przeze mnie:P) ps: wykrywanie to zło:P

14 Ostatnio edytowany przez Pin (2017-05-01 12:19:03)

Nie robię offtopica, tylko zwracam uwagę że promujesz koszerne i nieprofesjonalne rozwiązanie ;)

Koala - poprawiona wersja tego dema odpalona ze sparty x ma przestawione elementy grafiki, pewnie chodzi o to o czym wspominał TeBe.

Kontakt: pin@usdk.pl

15

@pin - zapodaj na maila wersję którą masz
Niech Tebe napisze o co chodzi z tym SDXem bo to ciekawe jest

16 Ostatnio edytowany przez Pin (2017-05-01 12:26:45)

jest w stuffie na pigwie.

tu:

http://ftp.pigwa.net/stuff/parties/prod … coming.rar

Kontakt: pin@usdk.pl

17 Ostatnio edytowany przez koala (2017-05-01 13:11:01)

To jest wersja "partowa". after party leży na pouecie, albo tutaj:
http://e4www.pl/koala/winteriscoming.zip
Edit: oczywiście daj znać czy Ci Pin to działa:)

18 Ostatnio edytowany przez Pin (2017-05-01 13:38:10)

O ile party version po uruchomieniu z sdx krzaczył prawie wszystkie grafy tak wersja poprawiona wyświetla tylko skrzaczoną pierwszą, następnie blank screen i leci muzyczka. Co zabawne po resecie wraca do dos.

Ludwiku, Koala i psie Sabo :) - nie idźcie tą drogą, bo inne programy używające pamięci rozszerzonej działają.

Kontakt: pin@usdk.pl

19

jedyne co udowodniles i w co dzieki Tobie zmienil sie ten watek to to zeby nie uruchamiac programow za pomoca sparty,
kto ma ochote startowac programy za pomoca loadera uzytowo przpominajacego uruchomiony system w trybie awaryjnym.

http://atari.pl/hsc/ad.php?i=1.

20

Pin: a bez Sparty ta wersja działa (ten link co podałem)?
To ciekawe czemu Sparta sobie nie radzi z tym - może TeBe wyjaśni:)

21 Ostatnio edytowany przez Pin (2017-05-01 14:45:56)

do XXL

.. a jakie są przeciwwskazania do uruchamiania programów pod sdx? Wystarczy to kulturalnie zrobić i nie ma problemu.

Skutkiem podejścia które reprezentujesz jest jedynie to, że Twoje programy nie działają na większości sprzętu. Zobacz do wątku o grze na 1MB i ogarnij wreszcie jakim hardware przeciętnie dysponują użytkownicy.

Kontakt: pin@usdk.pl

22

xxl napisał/a:

najprosciej
org $d3x1
.byte bank
org $4000
dane

Żeby być ścisłym:

org %11010011xxxxxx01
.byte bank
org $4000
dane

:P

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

23

Merytoryczna dyskusja zakończyła się wraz z "$d3x1".

24 Ostatnio edytowany przez mono (2017-05-01 18:19:08)

Akurat zapis do PORTB SDX-a nie wyłoży, bo  i tak SIO ładuje dane do bufora SIO po czym przerzuca dane do pamięci (nawet jeśli używany jest ramdysk, to po powrocie z SIO odtwarzany jest PORTB). Ale w PORTB są nie tylko bity od konfiguracji extramu - są też od OS-a, BASIC-a, cartridge-a i SELF-TEST-u. Skoro zamierza się używać extramu, to może należałoby pozostawić resztę bitów w spokoju, bo nie wiadomo jaki loader ładuje program?  Może akurat jest pod OS ROM-em, w MAPRAM-ie albo w ROM-ie carta XEGS (tak, wiem że to karkołomna sztuczka i że _do_tej_pory_nikt_takiego_nie_zrobił_)? Spróbujcie łaskawie spojrzeć może nieco bardziej perspektywicznie.

Edit: Warto też pamiętać o priorytetach okien MEMAC w VBXE/FX i extram. Zapis do PORTB może okazać się bardzo nieskuteczny.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

25 Ostatnio edytowany przez mono (2017-05-01 18:11:17)

koala napisał/a:

Nawet jakby rejestr PortB był W-only  to IMO także by działał taki zapis, R/W tutaj nic nie zmienia, ważne że jest W:)

Pewności niestety nie ma zanim nie sprawdzi się rejestru kierunku danych (ale kto by się o to troszczył?). Nie testowałem zachowania PORTB ustawionego do odczytu, ale intuicyjnie czuję, że wyjścia będą albo w stanie HI (czyli wartość nieustalona), albo 1 (czyi $FF) niezależnie od tego co się do PORTB wpisze. Swoją drogą warto by to sprawdzić.

Edit: Milcząco zakładacie, że konfiguracja ustalona przez OS podczas RESET ciągle obowiązuje.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje