Шынни, вопрос - вскользь проштудировал POKEY.
Обнаружил входа обозначенные POT. Там что ADC и можно считывать аналог?
Шынни, вопрос - вскользь проштудировал POKEY.
Обнаружил входа обозначенные POT. Там что ADC и можно считывать аналог?
ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
Profi 1024+CF+CPM+VGA
ATARI 800XL+SIO2PC+SIO2SD
RK86@Maximite
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Блин, что с форумом происходит? Второй день отваливается на несколько часов...
ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
Profi 1024+CF+CPM+VGA
ATARI 800XL+SIO2PC+SIO2SD
RK86@Maximite
с POKEY незнаком(
Привет, atariki.
Вот код, который либо поможет, либо всё испортит.
Его ПРАВДА в том, что он работает!
Где-то ранее (ищите!) я писал о том, что если ВЕРНЫЙ!!! код, написанный Вами будет РАНЕЕ исполнения стандартного кода Атари, то результата ПРОСТО не будет.Код:; Resident COLORizer program ; Bump-Up the MEMLO pointer .ou colorize.com ; Included LIBS .in macro.mae ; -------------------------------- ; equates DOSINI = $0c ; standard DOS init COLOR1 = $02c5 ; brightness COLOR2 = $02c6 ; bgCOLOR RUNAD = $02e0 ; Run address MEMLO = $02e7 ; Word, - first free byte LMARGIN = $52 ; Left Margin ; ; constants brwhite = $0e dkblue = $92 ; Resident part: .or $1900 start jmp init ; newmlo .ds 2 dummy ; trojan jsr dummy maw newmlo MEMLO ; bumps up ; mib dkblue COLOR2 mib brwhite COLOR1 rts finish = * ; ; Executed ones: ; (then can be deleted) init miw finish newmlo ; fill newmlo with finish maw newmlo MEMLO ; fill MEMLO as newmlo ; maw DOSINI 1+trojan ; save DOSINI into trojan miw trojan DOSINI ; set DOSINI as trojan ; mib dkblue COLOR2 mib brwhite COLOR1 rts ; .or RUNAD .wo start .en
Стандартный код ЗАМЕСТИТ ВСЁ, а в случае наличия конфликтов памяти выгонит Атарьку в висняк.
То есть, Совет Шинни - ЗАЦИКЛИТЬ, просто означает, что Вы исполняете только Ваш ВЕРНЫЙ!!! код и БОЛЬШЕ НИЧЕГО!
Вышеуказанная программа является на самом деле иллюстрацией к защите памяти от ОС.
Цвета там - не Главное!
Но, если заметить, что:
1. Новые цвета задаются инициализацией!
2. Новые цвета переустанавливаются при софтресете.
И добавить конструкционную целостность программы, (Где нужен выход из прерывания - предоставляем RTI, Где нужен Выход из подпрограммы - проедоставляем RTS и пр.)
Добавлю:
Наличие или отсутствие Бейсика - для ассемблирования -НЕ СУЩЕСТВЕННО!
Хватило бы памяти... Например, для самого Ассемблера! Или, для самой Программы!
И, ВАЩЕ, к вопросу о выходах из подпрограмм...
Наконец примите ОДНО решение! Если Вы его
не примите, будет чёрный экранчик
(у Атари бывает ещё и DMA вывод необновляемого состояния - зависание, при работающих системах вывода графики.)
zen
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
Здравствуйте, дорогие Форумчане.
Мы знаем, что байтом можно адресовать 256 значений. А кто собственно, задумывался в чём эти значения?
Какова их сущность?!! Identity?!!
Я уже сотню лет не писал ничего об ассемблере (был занят Паскалем и совершенно не разочарован), но кажется есть ещё темка, которая Вам может пригодится...
Это - использование identity table (IDT) на русский сложно перевести, но смысл прост, - Из неё мы получаем байт, определяемый собственным индексом, то есть сущность этого байта. (Подумайте над этим, это занятно!)
Итак, создаём таблицу, длиной в страницу и выровненную по странице (то есть адрес: $xx00).
Так вот, дело в том, что такая таблица может помочь нам с созданием новых несуществующих опкодов ассемблера для 6502.Код:IDT .by $00,$01,$02,$03, ... $0f ... .by $f0,$f1,$f2,$f3, ... $ff; Identity Table
(Например тех, которые изначально запрограммированы для 65816.)
Но не только...
На её основе можно создавать макросы для повторяющихся действий или другие, необычные вещи... Создав её один раз можно ей пользоваться для ЛЮБЫХ целей!
Просто сама таблица является отображением ПОНЯТИЯ <байт> в понятие <число>;
По русски: сущность БАЙТА - ЭТО ЧИСЛО! (То есть мы ПРОНУМЕРОВАЛИ числа БАЙТА!)
Теперь - фантастика!
Вы знакомы с TAX,TXA,TAY,TYA...
А где же здесь TXY или TYX?! А, НЕТУ!
Я всегда говорил, что процессор не умеет считать, зато байты двигать умеет!!!
Короче, ВОТ недостающие опкоды ассемблера:
(Их можно сделать как макросы ...)
Однако, это - не всё...Код:Calling OPCODE ldx IDT,y -> TYX ldy IDT,x -> TXY and IDT,x -> ANX and IDT,y -> ANY ora IDT,x -> ORX ora IDT,y -> ORY eor IDT,x -> EOX eor IDT,y -> EOY adc IDT,x -> ACX adc IDT,y -> ACY sbc IDT,x -> SCX sbc IDT,y -> SCY
Вот пример кода:
А у меня уже стотыщь переменных!..Код:ldx val lda num stx tmp clc adc tmp ; A=val+num
Ассемблер не отрабатывает!!!
Тогда, делаем так:
Во-о-от. Так-то, Друзья, В этом-то всё и дело!Код:ldx val lda num clc adc IDT,X ; A=val+num
zen
Последний раз редактировалось ezswift; 17.05.2019 в 17:12.
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
2denpopov
НИКОГДА!
При установке DLI существенно важно сохранение задействованных в DLI регистров !!!
Это и есть отличие от VBI, где в ОС существуют заранее установленные подпрограммы для выхода как из Непосредственоого, так и Отложенного VBI. (Они разные.)
zen
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
спасибо всем кто принимал участие в теме, было интересно почитать.
сам я занялся разработкой для атари недавно, хотя с платформой начал общение еще в 1987 году, но тогда был Бейсик и вырванные куски подпрограмм из демок (например у меня не было информации по маппингу памяти и нашел я её в одной из демок по замене шрифтов, тем и пользовался).
из прочитанного всё же не совсем понял зачем заниматься разработкой на самом оригинальном железе, возможно это и интересно, но всё же мне больше понравилось решение с канала " ". Там разработка идёт в VS Code, компиляция через PowerShell консоль, там же посредством запуска команды для MADS, а после компиляции запуск Altirra так же через командную строку для собранного файла.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)