Привет!
Полезные ссылки по программированию под Вектор 06ц.
Документация
Скрытый текст
Описание архитекстуры и общие сведения:
http://emuverse.ru/wiki/%D0%92%D0%B5...D1%80-06%D0%A6
Секреты "Вектора"-1992г. Лебедев А.
https://raw.githubusercontent.com/wi..._by_Lebedev.md
ТЕХНИЧЕСКОЕ ОПИСАНИЕ ПК "ВЕКТОР-06Ц"
https://github.com/svofski/vector06c...al_Description
Справка по командам i8080 (теже что у Вектора06ц)
https://pmd85.borik.net/instrset/instuction-set.html
Тайминги команд процессора КР580ВМ80
Скрытый текст
http://emuverse.ru/wiki/%D0%92%D0%B5...uction_TimingsКод:MOV 8 MVI R,_ 8 MVI M,_ 12 LDAX / STAX 8 LDA / STA 16 LXI 12 LHLD / SHLD 20 SHLD 20 POP 12 PUSH 16 SPHL 8 XCHG 4 XTHL 24 CMC / STC / CMA / DAA 4 RRC / RLC / RAL / RAR 4 INR/INX/DCR/DCX R 8 INR/DCR MOV 12 ADD / SUB / ADC / SBB / ANA / ORA / XRA / CMP R 4 ADD / SUB / ADC / SBB / ANA / ORA / XRA / CMP M 8 ADI / SUI / ACI / SBI / ANI / ORI / XRI / CPI R 8 DAD 12 NOP 4 EI / DI 4 HLT 8 IN / OUT 12 PCHL 8 JMP / J* 12 CALL 24 C* /Y 24 C* /N 16 RET 12 R* /Y 16 R* /N 8 RST 16
https://github.com/svofski/vector06c...uction_Timings
[свернуть]
[свернуть]
Среды разработки
Настройка среды программирования и запуск примера
TASM ассемблер + Visual Studio Code среда разработки, Emu80 эмулятор
Retro Assembler + Visual Studiop Code, v06x эмулятор
https://github.com/parallelno/Vector06c
https://enginedesigns.net/download/r...html#Assembler
Pretty Assembler.
Online редактор и примеры
https://zx-pk.ru/threads/29144-progr...=1#post1068781
Программы, игры и сканы старых журналов
Скрытый текст
Каталог програм и игр
http://sensi.org/scalar/categories/all/
Категория sourcecode
http://sensi.org/scalar/categories/37/
Дополнительная документация
http://sensi.org/scalar/categories/41/
Копия сайта sensi.org
http://tenroom.ru/scalar/recent20/index.html
[свернуть]
Советы по программированию и примеры
Современный биперный движок phaser1
https://zx-pk.ru/threads/28132-biper...=1#post1130092
Про палитры
Скрытый текст
Самая быстрая установка палитры по версии ivagor
https://zx-pk.ru/threads/29144-progr...=1#post1136880
Самая быстрая установка палитры по версии Improver
https://zx-pk.ru/threads/29144-progr...ml#post1136855
Установка палитры читаемой с квазидиска при разрешенных прерываниях
https://zx-pk.ru/threads/29144-progr...=1#post1160854
Совет по установке палитр
https://zx-pk.ru/threads/29144-progr...ml#post1119119
[свернуть]
Про мультиколор
https://zx-pk.ru/threads/31954-pishu...ml#post1069994
квазидиск
Скрытый текст
Квазидиск имеет объем 256kB который разбит на 4 банка по 64kB.
включение:
отключение:Код:mvi a, CODE out $10
CODE это управляющий байт с битами E8ASXXYY.Код:xra a out $10
bitS=1 включить квазидиск как стек. Операции со стеком будут использовать банк xx квазидиска. bitS=0 отключить.
bitsXX, номер банка для доступа через стек.
bitA=1 включить квазидиск как ОЗУ. Операции с памятью (не операции со стеком) будут использовать область $A000-$BFFF банка yy квазидиска. bitA=0 отключить.
bit8=1 включить квазидиск как ОЗУ. Операции с памятью (не операции со стеком) будут использовать область $8000-$9FFF банка yy квазидиска. bit8=0 отключить.
bitE=1 включить квазидиск как ОЗУ. Операции с памятью (не операции со стеком) будут использовать область $E000-$FFFF банка yy квазидиска. bitE=0 отключить.
bitsYY - номер банка для использования квазидиска как ОЗУ.
Управляющие биты bit8, bitE работают только с квазидиском с модификацией А.Баркаря.
https://www.radioman-portal.ru/magaz...el/1995/11.php
Интересная особенность. Если квазидиск включить как ОЗУ, и выключить как как стек, то он будет включен как ОЗУ и как стек на банк указаный битами для ОЗУ для адресов которые замаплены как ОЗУ. То есть если адреса стека совпадают с адресами для ОЗУ то стековые операции будут обращаться к квазидиску несмотря на то что квазидиск выключен как стек.
[свернуть]
Прерывания
Скрытый текст
Перед возвратом из
подпрограммы необходимо обратно восстановить дисплейный режим и значения
портов, определяющих номер верхней строки, цвет рамки, режим 256*256 или
512*256 и т.п. Также необходимо разрешить прерывание, т.к. аппаратное
прерывание сбрасывает программный триггер.
Прерывания происходят 50 раз в секунду. Между прерываниями 59904 такта процессора. В течение этого времени растеризатор линию за линией отрисовывает фрейм на экране монитора начиная с левого верхнего угла.
Фрейм включает в себя видимую область (данные из видеопамяти) окруженную областью бордюра. Верхние 22 линии бордюра включает в себя область сихнхронихации.
Всего фрейм содержит 312 строк. В каждой строке первые 64 пикселя это бордюр. Затем отображаются 256 пикселей из видео озу, и завершается строка 64 пикселями бордюра. Для режима 512 значения удроенные. Таким образом 40 строк * 192 = 7680 такта до начала рисования первой видимой строки.
// 312 scanlines:
// vsync: 22 lines
// vblank (top): 18 lines
// vertical resolution: 256 lines
// vblank (bottom): 16 lines
// 384 pxls (192 cpu cycles / 768 clock cycles of 12 Mhz) per scanline
// hblank (left): 64 pxls
// horizontal resolution : 256 pxls
// hblank (right): 64 pxls
На бордюре удобно оборажать длительность процедуры. Это работает только если основной цикл приложения уладывается в длительность фрейма.
https://zx-pk.ru/threads/34480-progr...=1#post1159402
[свернуть]
Вывод спрайта
Скрытый текст
от jerri
https://zx-pk.ru/threads/31954-pishu...ml#post1075371
от KTSerg
https://zx-pk.ru/threads/31954-pishu...ml#post1075256
от ivagor
https://zx-pk.ru/threads/31954-pishu...ml#post1075277
[свернуть]
Музыка и звуковые эффекты
Скрытый текст
плеер gigachad16 нужен буфер чуть меньше 4К (14 буферов распаковщика + 14 стеков). perf 1,6% - 8%
https://zx-pk.ru/threads/29679-szhat...=1#post1159612
https://svofski.github.io/pretty-808...gigachad16.asm
плеер из "Полета навигатора" STC формат perf 11,9% - 16%
https://zx-pk.ru/threads/34480-progr...=1#post1159770
[url]https://svofski.github.io/pretty-8080-assembler/?https://gist.githubusercontent.com/svofski/19aeb8641cbcce4fa56fa79f3400fca4/raw/309a487e1dd20ae1f782706a54e307a06441792f/p4kplayer.asm[.url]
плеер от DemonId7 STC формат
https://zx-pk.ru/threads/8378-pk8000...l=1#post938887
плеер от DemonId7 STC формат оптимизированный svofski. perf в среднем ~ 9,6%, периодически проседает до 14,4%, а один раз поймал на 18,6%."
https://svofski.github.io/pretty-808...y-demonid7.asm
плеер от Mick STC формат
https://zx-pk.ru/threads/8374-pk8000...l=1#post150239
конвертирование музыки для плеера gigachad16
1. скачать музыку в например от сюда
https://zxart.ee/spa/music/top-100/
2. скачать
Ay Emulator v2.9
https://vtrd.in/pcutilz/AYEM2932.zip
3. открыть в ней плейлист по кнеопке PL
4. сохранить в пормате AY6
5. прогнатать через скрипт
https://github.com/svofski/v06c-arza...ls/ym6break.py
описание фомата AY6
https://documentation.help/AY-3-8910...m/ay_e04vt.htm
Описание музыкального сопроцессора AY-3-8910 "R-SOUND"
http://tenroom.ru/scalar/ware/766/index.html
Описание трех-канального таймера встроенного в Вектор
Начинается раздел со строки: "Теперь о программировании звука:"
https://raw.githubusercontent.com/wi..._by_Lebedev.md
база музыки для AY-3-8910 sound chip
https://zxart.ee/spa/music/top-100/
Мелодия из игры Arkanoid на Векторе-06ц без AY-3-8910 sound chip
; Тонгенератор: Иван Городецкий, Уфа
; Мелодия: Вячеслав Славинский, С.-Петербург
; 2019
https://svofski.github.io/pretty-8080-assembler/?arkmus
Редактор звуковых эффектов AY Sound FX Editor + примеры взуковых эффектов для AY-3-8910 sound chip
https://github.com/Threetwosevensixs...xedit-improved
web версия с чуть меньшим функционалосм
http://<a href="https://github.com/T...t-improved</a>
[свернуть]
Псевдо случайное число
https://zx-pk.ru/threads/31954-pishu...ml#post1076189
PrettyAsm в Tasm
https://zx-pk.ru/threads/29144-progr...ml#post1068786
Отладка
Скрытый текст
Отладка в VVector эмуляторе
https://zx-pk.ru/threads/31954-pishu...ml#post1072925
Отладка в Emu, Emu80 эмуляторе
https://zx-pk.ru/threads/31954-pishu...ml#post1075182
[свернуть]
TASM
Скрытый текст
Передача параметром в TASM через макросы
https://zx-pk.ru/threads/31954-pishu...=1#post1157180
Линковка файлов данных к коду)
https://zx-pk.ru/threads/31954-pishu...=1#post1157162
[свернуть]