Программа будет выглядеть примерно так:
LD IХ,zagolovok ; указываем где лежат 17 байт заголовочных данных
XOR A; указываем что тип - заголовок
LD DЕ,17; указывем длину - 17 байт
CALL 1218 ; вызываем процедуру записи в ПЗУ
LD IХ,16384 ; начало экранной области
LD DЕ,6912 ; длина картинки
LD А,255; указываем что запишем кодовый блок
CALL 1218 ; производим запись
JP 56 ; переход на опрос клавиатуры с последующим возвратом в бейсик.
zagolovok db #03, "screen ", #00, #1b, #00, #40, #0, #0
Чтоб не ломал голову как это реализовать, в приведенной тобой программе я добавил 0 строку с REM, где разместил код записи блока, а в 600 строке сделал вызов этого блока. Единственный "косяк" такого способа - плохо просматривать листинг программы.
В аттаче - измененная твоя программа.
- - - Добавлено - - -
Чтоб не кохаться с плохопросматриваемым листингом программы во время редактирования, можно сделать так - записать одну программу, в которой будет только строка
0 REM CODEBLOCK (кодовый блок для записи картинки)
и вторую программу - основную. После редактирования второй программы (основной) сделать MERGE "" - слить программу и кодовый блок для записи, а затем записать всё вместе на ленту.
- - - Добавлено - - -
Я сам когда-то ну ОЧЕНЬ давно делал похожую программу на бейсике. Только управление было от Кемпстон-джойстика. При нажатии на FIRE ставило точку. Плюс была кнопка включающая INVERSE и другая - OVER. Плюс ещё одна - постоянное рисование/отображение точки как курсора позиции.
Вот как-то так.
Потом ещё добавлял опрос кнопок 1-7, выбирающие цвет точки, но, как сами понимаете, из-за клешинга ничего хорошего не вышло.





Ответить с цитированием