nodeus

x, y to attr

Aug 3rd, 2012
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Адрес экрана, используемый в процедурах ниже
  2. ; Для обычного экрана- #4000. Для рисования на втором экране- #c000
  3. ; Используя другие адреса можно рассчитывать координаты и во внеэкранных буферах.
  4. ; Адрес должен быть кратен #2000 - для других адресов процедуры придется усложнять
  5. SCREEN_ADDR EQU #4000
  6. ATTR_ADDR EQU SCREEN_ADDR+#1800
  7. ; Расчет адреса в области атрибутов с точностью до знакоместа
  8. ; Входные параметры:
  9. ;  L - координата по оси ординат (0..23)
  10. ;  H - координата по оси абсцисс (0..31)
  11. ; Результат:
  12. ;  HL - адрес в области атрибутов
  13. ; Замечание:
  14. ;  используется аккумулятор
  15.  
  16.         LD A,H
  17.         LD H,L
  18.         LD L,0
  19.         AND A
  20.         DUP 3  ;повторить участок между DUP/EDUP 3 раза
  21.         RR H
  22.         RR L
  23.         EDUP
  24.         ADD A,L
  25.         LD L,A
  26.         LD A,H
  27.         OR ATTR_ADDR/#100
  28.         LD H,A
Advertisement
Add Comment
Please, Sign In to add comment