; ; sysmem.inc ; ; constants MAXTIMERS_USER equ 20 ; table lengths (number of entries, not size in bytes) JUMPTABLESIZE equ 30 COMMANDTABLESIZE equ 256 IPCTABLESIZE equ 32 TIMERTABLESIZE equ 32 MESSAGEBUFFERSIZE equ 64 HOOKTABLESIZE equ 6 RESOURCETABLESIZE equ 256 ; jump table is always at the top of RAM JUMPTABLE_START equ RAMBASE ; system tables start at the top of RAM if running from eeprom, ; or from the end of the code if running as a module. ifconst __module SYSMEM_START equ EndOfCode else SYSMEM_START equ RAMBASE endif ; system tables SYSTABLES_START equ SYSMEM_START coke_jumptable equ SYSTABLES_START coke_commandtable equ coke_jumptable+(JUMPTABLESIZE*3) coke_ipctable equ coke_commandtable+(COMMANDTABLESIZE*2) coke_timertable equ coke_ipctable+(IPCTABLESIZE*2) coke_messagebuffer equ coke_timertable+(TIMERTABLESIZE*8) coke_messagebufferend equ coke_messagebuffer+(MESSAGEBUFFERSIZE) coke_hooktable equ coke_messagebufferend resource_resourcetable equ coke_hooktable+(HOOKTABLESIZE*2) SYSTABLES_END equ resource_resourcetable+(RESOURCETABLESIZE*3) ; system variables SYSVARS_START equ SYSTABLES_END coke_externalramcheck equ SYSVARS_START SYSVARS_END equ coke_externalramcheck+1 ; free memory for resources FREEMEM_START equ SYSVARS_END ; direct page system variables coke_numtimers16 equ sysdirpage coke_numtimers equ sysdirpage+1 coke_getcharptr equ sysdirpage+2 coke_messagegetptr equ sysdirpage+4 coke_messageputptr equ sysdirpage+6 coke_messagelength equ sysdirpage+8 coke_scratch equ sysdirpage+9 resource_scratch equ sysdirpage+15 resource_checksum equ sysdirpage+15 resource_checksumhi equ sysdirpage+15 resource_checksumlo equ sysdirpage+16 resource_freepointer equ sysdirpage+19 resource_numresources equ sysdirpage+21 coke_chipramcheck equ sysdirpage+23