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 22:02
       
      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 00:02 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 10:02 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