atarionline.pl Ilość cykli potrzeba na polecenia BASIC - 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.  
    Hej,
    Powszechnie wiadomo ile cykli procesora schodzi na wykonanie poszczególnych rozkazów procka.

    Załóżmy, że interesują mnie teraz rozkazy BASICa, np. ile cykli zjada wykonanie "PRINT 3^2". Można to jakoś łatwo sprawdzić?
    • 2: CommentAuthormono
    • CommentTime7 dni temu zmieniony
     
    ->link<-
    Jak rozpakujesz to w Procedury_interpretera_basica/pib/zapis_programu_w_pamieci.html#223 (sekcja 2.2.3.Wykonanie instrukcji) masz opisaną procedurę PRCSTM - można próbować tam się debuggerem ustawić na wywołaniu EXESTM.

    Edit: A "ilość cykli" muisz wywnioskować z RTCLOK + VCOUNT (pamiętaj, że RTCLOK jest modyfikowane w 248 linii skanningowej a więc kiedy VCOUNT=124; w PAL VCOUNTmax=155, w NTSC 130).
    • 3: CommentAuthortebe
    • CommentTime6 dni temu zmieniony
     
    print-y i inne in/out powinny iść przez systemowe wektory, jak zrobisz jakieś "haki" a są takie to DracOs powie Ci papa

    konkludując, tego typu operacje będą zależne od OS-a i potencjalnie sterowników np. SDX gdzie jest dostępny szybszy print

    najlepiej napisz program testowy który wypisuje n-tą liczbę stringów i sprawdź ile ramek zajmuje, jeśli test jest nierozstrzygalny tzn. że trzeba zmienić skalę czyli zwiększyć liczbę wypisywanych stringów
    • 4: CommentAuthormono
    • CommentTime6 dni temu
     
    W AtariBASIC-u nie kojarzę, żeby jakiekolwiek operacje były robione hakami. Może PRINT, ale on też korzysta z wektora wystawionego w CIO (ICPUTBT).
    Oczywiście odwołania do FP są w konkretne miejsca, ale tam nie ma tablicy skoków ani oficjalnych wektorów (co jest utrapieniem twórców alternatywnych pakietów FP).
  2.  
    Dzięki za info. Gra w haki i debugery raczej nie warta świeczki - nie potrzebuję tego w jakimś szczytnym celu.

    Z ciekawości chciałem sobie napisać jakiś automatyczny porównywacz prędkości przed i po skompilowaniu programu.

    I tutaj tebe dobrze gada, nie muszę przecież schodzić do poziomu cykli tylko uruchamiać X razy w pętli i liczyć sobie sekundy.