1

Dzień dobry.

Pytanie na śniadanie. Czy ktoś z Was ma jakieś szczególne doświadczenia w trybie EXTEND z instrukcjami MOVE, BGET na pamięci rozszerzonej. Uwaga - doświadczenia z jak i z programu, tak i z operacji w trybie bezpośrednim. Testy wykazały niepokojące różnice, ze strachu zamieniłem Sratari na Atari ale nic to nie dało ;).

Test: W trybie bezpośrednim ładujemy BGETEM dane grafiki do ext ram 130XE, kopiujemy poprzez MOVE do pamięci na antica i jest OK. To samo z procedury z regularnego programu zawiesza kompa. Jakieś pomysły?

Kontakt: pin@usdk.pl

2

okazuje się, że po wyłączeniu trybu EXTEND operacje poprzez BGET skąd,dokąd,ile,bank_ext_ram działają z poziomu programu.

Wg. dokumentacji p. Zientary (która jest dość niekompletna), ale też i oryginalnej do interpretera winno to wyglądać inaczej. Oryginalny doc na Atarimanii.

Kontakt: pin@usdk.pl

3

Uwaga ;)

Szykuje się plikowa wersja Basica XE ;). Z powodów technicznych do uruchomienia potrzebne jest VBXE ... i tego raczej nie obejdziemy. Ale się da.

Kontakt: pin@usdk.pl

4 Ostatnio edytowany przez mono (2017-08-10 00:52:02)

Chciałbym wstępnie zaprezentować wersję alfa Basic-a XE 4.1 nie wymagającego do działania oryginalnego cartridge'a.
Wymaga za to do działania VBXE z rdzeniem FX i dlatego nazwałem go sobie "Basic XE 4.1 for VBXE/FX".
Program można odpalić pod dowolnym DOS-em, który nie zajmuje pamięci pod ROM, czyli np. DOS 2.5, MyDOS czy Sparta DOS X skonfigurowanym w trybie BANKED.
Pakiet składa się z dwóch plików:
- BXE41FX.COM zawierający kompletny obraz cartridge'a zmodyfikowanego przez Draco pod kątem działania z katalogiem bieżącym,
- BXE41FX.OSS zawierający rozszerzenie Basica XE.
Zarówno obraz jak i plik rozszerzenia został przeze mnie zmodyfikowany w taki sposób, aby odwoływał się do rejestrów VBXE (okno MEMACA), zamiast do rejestrów sprzętowych cartridge'a OSS, stąd też zdecydowałem się na zmianę nazwy oryginalnego pliku rozszerzenia (BASICXE.OSS) aby uniknąć problemu załadowania pliku nie pasującego do mojej modyfikacji Basica XE.
Przy okazji poprawiłem też błąd obsługi przerwań, który mógł się ujawniać podczas wykorzystywania procedur rozszerzenia. Otóż w przypadku kiedy ROM jest podniesiony oryginalny cartridge w reakcji na przerwanie IRQ wywoływał procedurę obsługi NMI i na odwrót. O ile przerwanie IRQ w końcu zostanie poprawnie obsłużone, o tyle NMI zostanie pominięte, co może skutkować opóźnieniami w działaniu zegara systemowego RTCLOK ($12) lub aktualizacji rejestrów cieni.
Aby móc używać programiku we własnych projektach należy skopiować obydwa pliki na swoją dyskietkę. Plik .OSS nie jest wymagany do działania BASIC-a. Podręcznik leży tutaj.
Zapraszam do testowania.

P.S. Pinokio zauważył drażniący błąd działania procedury BLOAD. Powoduje ona załadowanie pliku binarnego i natychmiastowe przerwanie działania programu.

Post's attachments

bxe41fx.atr 130.02 kb, liczba pobrań: 3 (od 2017-08-10) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

5

Aktualizacja. Poprawki związane z obsługą RESET oraz współpracą z S2:

Post's attachments

bxe41fx.atr 130.02 kb, liczba pobrań: 8 (od 2017-08-11) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

6 Ostatnio edytowany przez Pin (2017-08-11 00:10:52)

Mono - wiesz jaka była historia powstania tego projektu? :) - zaznaczam, że nie miałem kiedy sprawdzić aktualnej wersji ;)

EDIT:

I nie załączaj wersji *.com, bo jak który dopali COMa pod SDX bez runexta i X.COM to głównie będą same pytania :)

Kontakt: pin@usdk.pl

7 Ostatnio edytowany przez Pin (2017-08-11 00:12:33)

No i na koniec dodam, że u mnie działa tak samo, jak ostatnio ;)

EDIT:

ok, ide w kimono, jedziemy dziś na IRONIE!!!!

Kontakt: pin@usdk.pl

8

Rzeczywiście. Niniejszym chciałem naprawić swój błąd i oświadczam wszem i wobec iż inspiratorem i pomysłodawcą takiej wersji Basica XE jest Pinokio za co mu bardzo dziękuję.

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

9 Ostatnio edytowany przez Pin (2017-08-14 17:28:57)

Ta ostatnia i upubliczniona wersja zaczyna być stabilna. Testy trwają.

EDIT:

Mono - tak sobie teraz sprawdzam np. BGET'a bezpośrednio na pamięć rozszerzoną i:

* w trybie 64k wygląda jak by działał. Odczytałem z pliku jakieś dane wprost do ext ram, odczytałem stamtąd i zapisałem do innego pliku. Dane się zgadzają.

* W trybie EXTEND ta sama procedura powoduje .. uwaga: włączenie automatycznej numeracji dla linii programu :) .. BGET na rozszerzoną pamięć się nie wykona.

Warunki testowe: STOCK + VBXE, oraz Rapidus - fast dla #0 i #3, reszta slow, sdx 4.49d.

oto "program", choć to zbyt wiele powiedziane :D

100 O.#1,4,0,"DANE.TMP":BGET #1,$4000,$FF,1:CL.#1:? "A"
110 O.#1,8,0,"DANE.COS":BPUT #1,$4000,$FF,1:CL.#1:? "B"

Dla odmiany wygląda, jak by POKE działało jak i w trybie 64k, tak i w extend, czyli np. POKE $4000,$FF,1 nie zawiesza interpretera.

Ogólnie jest poważny progress ;)

Kontakt: pin@usdk.pl