У меня есть довольно большой вопрос, на который мне очень трудно ответить, имея всего пару справочников, интернет и ваш покорный слугу.
- Я просто хочу отобразить растровое изображение. Подождите пару секунд.
- Сотрите это из памяти.
- Показать другое растровое изображение. Подождите еще раз.
- Сотрите это из памяти.
- Отобразите окончательное растровое изображение. Подождите в последний раз.
- И, как вы уже догадались, сотрите это из памяти.
- Затем войдите в стандартный текстовый режим. & Продолжите выполнение моего кода, который начинается с пустого экрана и переходит к запросу пользователя на ввод текста и т. д.
Биты, выделенные жирным шрифтом, вызывают у меня большие затруднения!
Это код, который я использую для запуска растровой части дисплея, сейчас он просто входит в бесконечный цикл...
*=$1000
lda $4710
sta $d020
sta $d021
ldx #$00
loaddccimage
lda $3f40,x
sta $0400,x
lda $4040,x
sta $0500,x
lda $4140,x
sta $0600,x
lda $4240,x
sta $0700,x
lda $4328,x
sta $d800,x
lda $4428,x
sta $d900,x
lda $4528,x
sta $da00,x
lda $4628,x
sta $db00,x
inx
bne loaddccimage
lda #$3b
sta $d011
lda #$18
sta $d016
lda #$18
sta $d018
jsr *
*=$1FFE
incbin "ASTRO1.prg"
До сих пор я пытался повторить код, думая, что он может просто перезаписать все, но *=$1FFE, похоже, не работает в хронологическом порядке, с каждым файлом я получаю ошибку перезаписи памяти, и по умолчанию всегда используется отображение последнего растрового изображения, которое я вызываю с помощью функции incbin. Есть ли способ сбросить все (но просто перейти к черному) между каждым кадром растрового изображения? Или я просто загружаю эти изображения неправильно?
Переход в символьный режим также будет сложным, поскольку я не могу найти способ сделать это даже с одним растровым изображением. Возможно, вся эта структура кода - неправильный путь, idk...
Или это просто то, что c64 не может сделать? Я не хочу идти сюда, так как я уверен, что видел цикл растровых изображений во вступлении к игре раньше - просто действительно почесал голову, чтобы понять, как это можно сделать.
Еще раз спасибо, ребята, и извините за непонимание здесь, я новичок в программировании в целом, но думаю, что я на правильном пути. Я надеюсь, что многие смогут извлечь уроки из ваших ответов, поскольку я действительно думаю, что об этом нет никакой информации.
Ваш любящий друг Коммодора,
Джеймс (Смокипаркин)
JSR *
и у вас есть*=$1FFE
, почему бы не простоJSR $1FFE
? - person tendim   schedule 12.07.2021