atarionline.pl Basic XE bez cartridge'a - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1: CommentAuthormono
    • CommentTime9 Aug 2017 zmieniony
     
    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.
    • 2:
       
      CommentAuthorlarek
    • CommentTime9 Aug 2017 zmieniony
     
    Czy VBXE "robi" tylko za emulator kartridża, czy można pisząc program w Basic XE korzystać z jego dobrodziejstw, tj. tryby graficzne, blitter, mapa kolorów?
    • 3: CommentAuthormono
    • CommentTime9 Aug 2017
     
    Można. Trzeba tylko pamiętać o tym, że do emulacji używane jest okno MEMACA i nie umieszczać niczego w $18000..$1ffff VRAM.
    • 4:
       
      CommentAuthorlarek
    • CommentTime9 Aug 2017
     
    Dzięki
    • 5: CommentAuthormono
    • CommentTime10 Aug 2017
     
    Aktualizacja. Poprawka w obsłudze RESET.
    • 6: CommentAuthormono
    • CommentTime11 Aug 2017
     
    Aktualizacja. Poprawka w obsłudze S2:
    • 7: CommentAuthorpin
    • CommentTime11 Aug 2017
     
    Mono - zgłaszam to, co zwykle.

    Uwaga istotna na 100% dla userów IDE+.
    • 8: CommentAuthorpin
    • CommentTime11 Aug 2017
     
    Aha - i nikt i nigdzie nie napisał, że to był mój pomysł ;)
    • 9: CommentAuthormono
    • CommentTime5 dni temu
     
    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ę.
    • 10: CommentAuthorpin
    • CommentTime5 dni temu
     
    Ta ostatnia i upubliczniona wersja zaczyna być stabilna. Testy trwają.

    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 ;)