6502, разработанный компанией MOS Technology, представляет собой 8-битный микропроцессор, который широко использовался в качестве микрокомпьютера и процессора видеоигр с конца 1970-х до начала 1990-х годов, в частности, для питания продуктов Commodore, Apple, Atari, Acorn и Nintendo..
2 ответа

Как мне установить биты в 0 с булевой арифметикой?

Все еще плохо знаком с побитовыми операциями в сборке 6502. Я хотел бы иметь байт, который имеет 8 флагов. Это сохранит статус моего мета-спрайта. Я хочу иметь возможность устанавливать определенные флаги, не изменяя другие. Я знаю, как использовать…
19 янв '13 в 02:00
11 ответов

Классические тексты на ассемблере, не использующие x86?

Я ищу тексты, которые подробно описывают принципы программирования на ассемблере и не используют x86 в качестве целевой архитектуры. Я не нашел ни одной недавней книги, подобной этой, но я ожидаю, что были хорошие книги, написанные в 1970-х и 1980-х…
27 ноя '09 в 07:57
2 ответа

Какие проблемы возникают при эмуляции чего-то вроде архитектуры x86 по сравнению с чем-то вроде 6502?

В настоящее время я делаю эмулятор NES на Java. Мое ядро ​​6502 работает на 99%, за исключением некоторых мелких проблем. Дело в том, что я эмулирую 6502 для NES, но я никогда не интересовался этим так сильно, как в PS1, N64 или DOS. Я всегда хотел …
28 июл '13 в 18:52
4 ответа

Написание цикла while в сборке

Я пытаюсь написать цикл while в сборке с процессором 6502, и я не могу понять, как написать шестнадцатеричный код. Я видел примеры, написанные с использованием сокращения, где есть метка для того, где цикл должен начинаться и заканчиваться, но я нич…
16 май '11 в 17:14
3 ответа

Упражнение по самоизменяющейся процедуре копирования памяти, 6502 ASM

Ниже приведена моя самоизменяющаяся процедура копирования памяти на Commodore 64. я написал char codes а также number of repeats в таблице и заполнил screen_ram с этой рутиной. Я ищу предложения по оптимизации. Мой приоритет - память в этом случае. …
10 фев '16 в 13:36
1 ответ

Поведение прерывания 6502 в автономном тесте по сравнению с Commodore PET

Я строю Commodore PET на ПЛИС. Я реализовал свое собственное ядро ​​6502 в Канзас-Лаве (код доступен по адресу https://github.com/gergoerdi/mos6502-kansas-lava) и поместил в него достаточно ввода-вывода ( https://github.com/gergoerdi/eightbit-kansas…
04 июл '15 в 13:03
2 ответа

Тестирование эмулятора 6502: гнездо

Я реализую свой собственный эмулятор процессора MOS 6502 для будущего эмулятора NES. Я использую nesttest для проверки корректности эмулятора. Кажется, все находит, пока я не достигну этой строки: Как вы можете видеть, регистр состояния (6F) помещае…
25 авг '18 в 13:11
3 ответа

Модифицированный возврат прерываний 6502

Я пытаюсь переключить нормальный поток программы, пока прерывание возвращается: START SEI LDX #<IRQ LDY #>IRQ STX $FFFE STY $FFFF CLI LOOP1 INC $D020 JMP LOOP1 LOOP2 INC $D021 JMP LOOP2 IRQ STA SAVEA+1 STX SAVEX+1 STY SAVEY+1 // Some Routines …
02 фев '16 в 22:50
1 ответ

Почему символы смещены на 0x40 в моем эмуляторе Commodore 64?

У меня есть код 6502 для печати строки в памяти экрана после очистки экрана. К сожалению, если я напечатаю строку, например "HELLO WORLD", она будет отображаться искаженными символами. Я обнаружил, что это потому, что символы верхнего регистра начин…
10 сен '14 в 17:18
1 ответ

Можно ли процедурным образом определить количество циклов, выполняемых конкретной инструкцией на 6502?

Большинство эмуляторов хранят количество циклов, выполняемых конкретной инструкцией, в справочной таблице, а затем добавляют любые условные циклы, если необходимо (например, при пересечении границ страницы). Мне интересно, есть ли способ процедурно …
21 дек '16 в 04:47
1 ответ

6502 Как получить инструкцию из кода операции

Как я могу узнать, какая инструкция стоит за двоичным кодом операции? Например: 0010000000000111 Я пытался преобразовать его в hex - 2007 и найти его на http://www.masswerk.at/6502/6502_instruction_set.html но он не работает. Есть идеи? РЕДАКТИРОВАТ…
17 янв '18 в 23:18
2 ответа

Преимущества массивов структур по сравнению с параллельными массивами в ассемблере 6502?

Насколько я понимаю, когда писал много 6502 в прошлом, параллельные массивы лучше, чем структуры для хранения данных. Представьте, что вы хотите иметь таблицу статистики монстров, которая в C была бы определена примерно так struct Monster { unsigned…
14 авг '17 в 04:49
1 ответ

Загрузка #$FF в A и сохранение по адресу $0000 не работает

Я изучаю ассемблер для NES, и я написал эту программу: .org $8000 ; set code to start of rom Start: ; make a label called start lda #$ff ; set acc to 0xff sta $0000 ; store address 0x0000 to acc which is 0xff jmp Start ; jump to label start Я компил…
26 фев '19 в 05:45
7 ответов

Эмуляция процессора и привязка к определенной тактовой частоте

Если бы вы прочитали мой другой вопрос, вы бы знали, что я провел эти выходные, собирая эмулятор процессора 6502 в качестве упражнения на программирование. Эмулятор процессора в основном завершен, и, судя по моим ограниченным тестам, он довольно точ…
21 сен '08 в 22:50
1 ответ

NES(сборка 6502) спрайты не двигается

Я пытаюсь написать игру на языке ассемблера 6502, но мой спрайт не хочет двигаться: мой спрайт стоит 200 долларов, поэтому я сделал следующее: Spriteloop: LDX $200 ;loading content of $200 address in X register INX ;increment the number JMP Spritelo…
21 окт '15 в 22:56
4 ответа

6502 Инструкция по сборке недействительна

Я печатаю на экран в 6502 сборке В мониторе я написал STA $01, y to store the value at the pointer Когда я нажимаю ввод в этой строке, однако он говорит, что инструкция недействительна? Есть идеи...?
13 мар '14 в 05:06
3 ответа

Занимать во время операции вычитания (инструкция sbc asm) на 6502?

Когда заимствование (т. Е. Флаг переноса сбрасывается) происходит во время операции вычитания (инструкция sbc asm) на 6502, используемой NES? Это каждый раз, когда результат отрицательный (от -1 до -128)? Большое спасибо! Спасибо STEN
11 дек '16 в 08:50
7 ответов

Какие методы использования потока управления существуют в 6502?

Я пытаюсь понять поток управления в 6502 сборке. Скажем, у меня есть следующий код: ControlFlow: lda mem cmp #1 bne .sub_one cmp #2 bne .sub_two .sub_one: ; sub routine one goes here jmp .done ; <-------------- without this jmp, .sub_two will exe…
19 янв '13 в 04:12
2 ответа

Читайте в памяти и вкл. (6502)

Извините, если вопрос кажется "слишком базовым". Я кодер 68K ASM, но один из друзей попросил меня взглянуть на код 6502. У нас есть указатель на строку данных: my_ptr ds 2 Этот указатель устанавливается с помощью этого кода: ldx sound_channel_busy b…
10 окт '17 в 18:43
3 ответа

6502 косвенных решения вопросов

У меня возникли проблемы со следующим кодом для машины 6502: C000 LDA #$00 C002 STA $FE C004 LDA #$20 C006 STA $FF C008 LDY #$08 C00A LDX #$00 C00C DEY C00D CPY #$FF C00F BEQ $C01B C011 LDA ($FE),Y C013 CMP #$2F C015 BPL $C00C C017 INX C018 JMP $C00…
04 июн '16 в 14:38