atarionline.pl CLI 6502 emulator - 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:
       
      CommentAuthorGeorge
    • CommentTime19 Feb 2024
     
    Czołem, rozglądam się za emulatorami czystego 6502, które można odpalić z CLI na Linux/Mac.
    Coś w stylu: ->link<-
    Jeszcze tego nie odpalałem, ktoś to zna i wie czy działa?

    Ewentualnie jakieś inne rozwiązania. Cel, na razie w powijakach, ale ogólnie chodzi o skrypt, który kompiluje assembly 6502, a następnie odpala emulator z tym kodem i zrzuca po wykonaniu stan procesora i pamięci (pewnie z możliwością wyboru przedziału adresów). Symulacja stdout pewnie też, ale tylko to, poza tym nic więcej, oprócz procka i pamięci.

    (DISCLAIMER: znam Google, używałem, szukałem, lubię rozmawiać i wymieniać doświadczenia z innymi ludźmi. Będę szukał sobie dalej w międzyczasie też.)
    • 2: CommentAuthormrk
    • CommentTime20 Feb 2024 zmieniony
     
    llvm-mos (a dokładniej llvm-mos-sdk) dostarcza swój emulator 6502: ->link<-

    Pewnie nie ma ficzerów których potrzebujesz, ale za to mieści się w 200 linijkach C (nie licząc biblioteki do emulacji 6502). Budowany jest (jak cały llvm-mos) dla Linux'a, Windows'a i Mac'a

    Potrafi wypisywać na stdout / zrobić abort / wyjść z kodem wyjścia / podaje ilość cykli.

    llvm-mos ma dedykowany target 'sim' wypluwający pliki w formacie rozumianym przez ten emulator.

    Właśnie zauważyłem że cała funkcjonalność, łącznie z formatem pliku oraz opisem I/O jest wyświetlana przez sam emulator :)

    $ mos-sim   
    Usage: sim [OPTIONS] [image]

    6502 simulator.

    Takes a memory image file.
    The image file is a collection of blocks. Each block consists of a
    16-bit starting address, then a 16-bit block size, then that many bytes
    of contents. Both the address and size are stored little-endian.

    The simulated 6502 will execute a reset sequence through the vector at
    $FFFC like a real 6502.

    Writing to $FFF7 aborts.
    Writing to $FFF8 quits normally.
    Writing to $FFF9 writes to stdout.

    OPTIONS:
    --cycles: Print cycle count to stderr.
    --trace: Print each instruction address to stderr.
    --profile: Print number of cycles executed at each PC address.
    --cmos: Enable 65C02 emulation.


    Jeszcze dodam, że można przetestować na przykład za pomocą docker'a tak:

    docker run -v .:/workspace -w /workspace -it mrkits/rust-mos mos-sim
    • 3:
       
      CommentAuthorjhusak
    • CommentTime20 Feb 2024 zmieniony
     
    (DISCLAIMER: znam Google, używałem, szukałem, lubię rozmawiać i wymieniać doświadczenia z innymi ludźmi. Będę szukał sobie dalej w międzyczasie też.)


    Hejo, tu nie elektroda :) Jak ktoś tu pyta, to znaczy, że już odrobił lekcje ale mu nie wystarcza :D