NoneCa65 is a powerful macro assembler for the 6502, 65C02 and 65816 CPUs.
1 ответ

CC65: четыре строки плохие, две строки хорошие?

Я пытаюсь сделать IO, используя stdio.h на Commodore 64, но у меня есть даже со следующей программой: #include <stdio.h> void main(void) { printf("Foo\n"); printf("Bar\n"); /* printf("Foo\n"); */ /* printf("Bar\n"); */ } Проблема в том, если я…
23 дек '13 в 10:32
2 ответа

Пример удаления боковых границ на C64

Я знаю, что можно удалить верхнюю и нижнюю границы в C64, используя сборку, и я нашел примеры кодов для этого. Но я не могу найти пример кода для удаления боковых границ (который был изобретен 1001 Crew.) Кто-нибудь знает какие-нибудь примеры этого?
18 фев '15 в 15:32
2 ответа

Автоматическое заполнение, чтобы собрать определенные инструкции в заранее определенные адреса

Я хотел бы использовать CA65 для сборки ПЗУ 6502, которое должно работать самостоятельно, т.е. другого доступного ядра нет. Я бы хотел, чтобы моя программа начиналась с $C000, Но это значит, мне тоже нужно поставить $00 $C0 в вектор сброса в $FFFC, …
20 фев '15 в 09:59
2 ответа

CA65: "Ошибка диапазона" из 16-битного вычисленного адреса

Учитывая следующий код CA65: foo = $82 .scope LDA #$ff STA foo*$40 .endscope Я получаю это сообщение об ошибке: foo.s(5): Error: Range error (8320 not in [0..255]) Интересно, что следующая версия работает как положено: foo = $82 LDA #$ff STA foo*$40…
17 май '13 в 18:21
1 ответ

Изменить цвет текста без цветовой памяти в C64/Assembly

У меня есть код, как показано ниже, и он отлично работает. Он очищает экран, помещает некоторые цвета в цветовую память первых 12 символов на экране и печатает текст на экране. jsr $e544 ldx #$00 lda #3 loopclr: sta $d800,x inx cpx #$0c bne loopclr …
19 фев '15 в 01:20
1 ответ

Проблема с картой памяти сегмента CA65

Я работаю над проектом 6502 в CA65, и у меня возникают проблемы с пониманием некоторых директив. Я хочу, чтобы сегмент был определен так, как если бы он находился в другой части памяти, так что вся адресация этого кода, как если бы он уже находился …
18 дек '15 в 16:28
1 ответ

Компиляция простой программы с использованием ca65

Я начинаю изучать сборку 6502, используя книгу Родни Закса "Программирование 6502. В ней есть пример кода, я хотел бы иметь возможность запустить его на своем MacBook. Я надеюсь, что код сможет работать в том виде, в котором он представлен в книге, …
28 июл '19 в 17:08
1 ответ

Как заставить код правильно работать на Apple ii

Я написал небольшой фрагмент кода (add.asm, показанный ниже) на сборке 6502, но у меня возникли некоторые проблемы с его правильной работой на эмуляторе Apple II. Используя приведенный ниже файл конфигурации и ca65 и ld65, я могу получить двоичный ф…
09 ноя '19 в 19:50
2 ответа

C64 сборка рендеринга спрайта

Я написал короткую программу в 6502 ассемблере для Commodore 64 с помощью CA65 ассемблера и ld65 линкера. Программа должна отобразить спрайт сплошного квадрата где-то рядом с центром дисплея, но я не вижу, чтобы что-либо отображалось. Это моя сборка…
14 фев '20 в 01:50
1 ответ

ca65: Include Guard генерирует сообщение "Ошибка: ожидается идентификатор"

Пытаясь научиться использовать ассемблер ca65, я боролся с тем, чтобы заставить работать охрану включения. Поиск в Google и чтение руководства пользователя ca65 не помогли. Вот минимальный пример, который вызывает ошибку. $ ls -l total 16 -rw-r--r--…
22 окт '19 в 21:46
1 ответ

Убедитесь, что данные не пересекают границы страницы

Я пытаюсь создать оператор switch, как показано ниже, который хорошо работает, пока что-то не пересечет страницу. Назначение коммутатора создается автоматически, поэтому оно находится в другом файле. 'структура, x' содержит смещение (переключатель р…
15 мар '21 в 02:30
0 ответов

Как «beq [label]» может вызвать ошибку вне допустимого диапазона?

Я пытаюсь скомпилировать этот фрагмент кода и не могу понять ошибку ассемблера: [...] .macro collflag flags RW_forced a8i16 lda EXRAM, x and flags RW_forced a16i16 .endmac [...] col_r: RW_forced a16i16 lda lamus_vx bmi col_l beq col_d lda lamus_tile…
16 мар '21 в 01:27
1 ответ

CL65 не корректирует адреса при использовании .align

Я пытаюсь написать программу asm, которая использует директиву .align, чтобы данные не пересекали границы страницы. Однако, хотя данные находятся в правильном месте в памяти, скомпилированный код не использует правильный адрес. Согласно документам (…
05 апр '21 в 12:34
0 ответов

Передать метку в качестве параметра макроса для ассемблера ca65?

Я использую cc65 / ca65 для игры с основными инструкциями SNES. В некоторых из найденных мною примеров используется wla, который, по-видимому, позволяет передавать метку в макрос в качестве параметра. Я преобразовал его, надеюсь, использовать ca65: …
19 окт '21 в 08:17
1 ответ

Проблема CA65 NES с INY STY

Я новичок в CA65 и пытаюсь передать ему проект NESASM. Я все перевел и все строится. Когда я бегу, я ничего не получаю. Просто черный экран. Погружаясь глубже, я получаю бесконечный цикл. Кажется, проблема с увеличением Y (INY), а затем все, что я у…
07 дек '21 в 05:45
0 ответов

Чем отличается обычная этикетка от процедуры?

Недавно я начал писать код на системах на базе 6502 и использовал ассемблер макросов ca65. Однако я узнал, что он поддерживает процедуры, использующие .proc . Поэтому мне было интересно, в чем разница между этими блоками кода: mainLabel: jsr subrout…
03 фев '23 в 19:26
0 ответов

6502 Компоновщик ASM вычисляет неправильное смещение перехода

Мне кажется, что компоновщик ASM 6502 таким образом искажает логическую последовательность моего кода, поэтому я не могу объяснить, почему. В строках, отмеченных (<-- O), указатель адреса смещается на 2 байта. Таким образом, он переходит на строк…
22 окт '23 в 22:29
0 ответов

Как включить файл, заданный в качестве параметра макроса в ca65

Я пытаюсь написать макрос ca65, который должен включать файл, указанный в качестве параметра макроса. ca65 — ассемблер компилятора cc65. Хотя я научился работать с командой .incbin: .macro includethis4 filename .incbin .concat (filename, ".", "i") ;…
06 окт '23 в 00:22