ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 1.
Hexadecimal [16-Bits]



                              1 ; --------------------------------------
                              2 ;; ARCHIVO DE CABECERA DEL ENTITY MANAGER
                              3 ;; --------------------------------------
                              4 
                              5 ;; FUNCIONES PUBLICAS
                              6 .globl entity_manager_create 
                              7 .globl entity_manager_getEntityArray
                              8 .globl entity_manager_destroy_entity
                              9 .globl entity_manager_update
                             10 .globl entity_manager_forall_matching
                             11 
                             12 ;; CONSTANTES
                     0007    13 max_entities = 7
                     0011    14 sizeof_e = 17
                             15 
                             16 
                             17 ;; Macro que define una entidad con todos sus componentes
                             18 .macro DefineEntity _name, _x, _y, _w, _h, _vx, _vy, _sprite_pointer, _cmp, _ai_st
                             19 _name::
                             20     .db     _x                  ;; Posición x de la entidad
                             21     .db     _y                  ;; Posición y de la entidad
                             22     .db     _w                  ;; Ancho de la entidad
                             23     .db     _h                  ;; Altura de la entidad
                             24     .db     _vx                 ;; Velocidad en el eje x
                             25     .db     _vy                 ;; Velocidad en el eje y
                             26     .dw     _sprite_pointer     ;; Puntero a la zona de memoria donde empieza el sprite
                             27     .dw     0x0000
                             28     .db     0x00, 0x00          ;; AI-aim  (AI apunta a x) (AI apunta a y)
                             29     .db     _cmp                ;; Componentes de la entidad
                             30     .db     _ai_st              ;; AI (estado)
                             31     .db     _ai_st              ;; AI (estado anterior)
                             32     .dw     0x0000              ;; Next AI  patrol-step ()
                             33 .endm
                             34 
                             35 ;; Variables auxiliares para mayor legibilidad
                             36 ;; del código al usar el registro puntero IX
                     0000    37 e_x  = 0
                     0001    38 e_y  = 1
                     0002    39 e_w  = 2
                     0003    40 e_h  = 3
                     0004    41 e_vx = 4
                     0005    42 e_vy = 5
                     0006    43 e_sprite_pointer_l = 6
                     0007    44 e_sprite_pointer_h = 7
                     0008    45 e_last_sprite_pointer_position_l = 8
                     0009    46 e_last_sprite_pointer_position_h = 9
                     000A    47 e_ai_aim_x = 10
                     000B    48 e_ai_aim_y = 11
                     000C    49 e_cmp = 12
                     000D    50 e_ai = 13
                     000E    51 e_ai_pre = 14
                     000F    52 e_ai_patrol_step_l = 15
                     0010    53 e_ai_patrol_step_h = 16
                             54 
                             55 ;;ENTITY COMPONENTS
ASxxxx Assembler V02.00 + NoICE + SDCC mods  (Zilog Z80 / Hitachi HD64180), page 2.
Hexadecimal [16-Bits]



                     0000    56 e_cmp_invalid = 0x00
                     0001    57 e_cmp_alive = 0x01
                     0002    58 e_cmp_physics = 0x02
                     0004    59 e_cmp_render = 0x04
                     0008    60 e_cmp_colision = 0x08
                     000F    61 e_cmp_default = e_cmp_render | e_cmp_physics | e_cmp_alive | e_cmp_colision
                             62 
                             63 ;;AI ESTADO
                     0000    64 e_ai_st_noAI = 0x00
                     0001    65 e_ai_st_stand_by = 0x01
                     0002    66 e_ai_st_move_to = 0x02
                     0003    67 e_ai_st_patrol = 0x03
