Написал некое руководство. Шрифт и исходники приложены. Форматы .doc/.docx
скачать
Написал некое руководство. Шрифт и исходники приложены. Форматы .doc/.docx
скачать
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Толковый мануал! Прямо захотелось самому попробовать что-то сделать. Начну с простых примеров.
Шынни, в архиве не хватает sjasm-а и батников
чтоб все компилилось из коробки
заставить компилировать код какую нибудь ...т.
иногда не так просто...
...хотя с sjasm-ом особых проблем в этом плане нет
так жо можно приложить генераторов табличек всяких синусов который есть утя на сайтеке дето
3Ы
считаю хорошим мануалом по z80
http://www.z80.info/zip/z80-documented.pdf
в конце очень четкие и удобные таблицы
3Ы3Ы!!!!
ищу такой же мануал для всех остальных процессоров с быдломануалами
- - - Добавлено - - -
сам docx
пока не асилил тк много букоф
но с ходу
Ясно, что для подготовки таблиц понадобится память, и вряд ли использование LUT применимо к созданию игрне обязательноОбязательным требованием является расположение таблицы LUT по адресу кратному 256(в примере адрес $B000).
таблицы успешно применяются в играх
и не обязательно с кратного адреса (точнее мне даже чаще попадаются не с кратного адреса (а иногда попадаются даже "не кратные" таблицы для 2-х\3-х входящих значений!!!!!!!))
куча старых игр использует конструкции типа
или еще что нибудь похужеКод:ld d,0 ld e,a ld hl,tabaddres add hl,de ld a,(hl)
...а потом фиг эти таблицы откалупаешь от кода при дизасме...
- - - Добавлено - - -
сильно не рациональная конструкция (при выравнивании даже inc hl там не нужен, хватит одного inc lКод:GETSQ: LD L,A LD H,0 ADD HL,HL LD DE,SQTAB ADD HL,DE LD A,(HL) INC HL LD H,(HL) LD L,A RET
(тк переполнение никогда не наступает))
лучше ее не показывать, а то вдруг еще применит кто, а сразу давать эту
если нужно прогонять через эту таблицу еще данные а h остался не тронутымКод:ld l,a ld h,tabaddres ld e,(hl) inc h ld d,(hl)
то следующее чтение делаем
экономя 4 тактаКод:ld d,(hl) dec h ld e,(hl)
с таким же успехом одновременно можно использовать и часть таких таблиц
когда прокатит и менее точный результат
так же можно упомянуть, что бывают и "горизонтальные" таблицы
когда в l заносишь "адрес" таблицы
а в h данные для обработки
и то, что их можно втулить туда куда другие таблицы уже не лезут
и несколько коротких таблиц в одной когда тоже памяти мало
- - - Добавлено - - -Код:ld h,tabaddres ;7 ld l,a ;4 ld b,(hl) ;7 add 32 ;7 ld l,a ;4 ld c,(hl) ;7 add 32 ;7 ld l,a ;4 ld d,(hl) ;7 add 32 ;7 ld l,a ;4 ld e,(hl) ;7
если используются маленькие таблицы одинакового размера
и чтение идет подряд как в примере выше
то можно оптимизировать используя код Грея (превед lvd)
итого выигрыш по 3 такта на смене таблицыКод:ld h,tabaddres ;7 ld l,a ;4 ld b,(hl) ;7 set 6,l ;8 ld c,(hl) ;7 set 7,l ;8 ld d,(hl) ;7 res 6,l ;8 ld e,(hl) ;7
- - - Добавлено - - -
так же можно упомянуть про "многомерные" таблицы
с 2-мя и 3-мя итд входящими переменными
например 16К таблица деления
6 битного (2 деление на 2 перед использованием (все равно при деление оно теряет точность)) числа на 8 битное
самое интересное что чем больше делитель тем точней ответ
а деление на 1 дает самый не точный результат
при делении на 2 уже сама по себе происходит потеря 7-го бита а результат не точен только одним битом
при делении на 4 точность 6-ти битной части таблице уже достаточная
есное дело в таблице делитель может быть и дробным числом с фиксированной запятой 4.4 и 6.2 и дажо 8битным minifloat-ом для особых извращенцев....
Последний раз редактировалось NEO SPECTRUMAN; 24.12.2017 в 03:24.
let.doc и let.docx отличаются только форматом?
Да, сделано по просьбам.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)