;############################ ;### ACM-801.INC ### ;############################ ;Include file for assembly program. ;Suitable for models: ACM-801, ACM-811. ;Version: 1.3 ;Date: 20 SEP 2005 ;Filename: ACM-801.INC ;Support E-mail: info@astroma-spb.ru ;************************************************ ;************* ТОЧКИ ВХОДА В СИСТЕМУ ************ ;************************************************ .equ System =$0000 ;вызов системных функций .equ ReadEEPROM =$0002 ;чтение байта из EEPROM .equ WriteEEPROM =$0004 ;запись байта в EEPROM .equ GetUARTRate =$0006 ;запрос скорости обмена по UART .equ SetUARTRate =$0008 ;установка скорости обмена по UART .equ GetCmdHandler =$000A ;чтерние адреса обработчика команды .equ SetCmdHandler =$000C ;установка обработчика команды .equ ClrCmdHandler =$000E ;отключение обработчика команды .equ GetSysSendBuffer =$0010 ;получение адреса в X системного буфера передачи по UART .equ GetSysReceiveBuffer =$0012 ;получение адреса в X системного буфера приема по UART .equ GetRAMSize =$0014 ;определение объема RAM .equ GetRAMPage =$0016 ;чтение номера активной страницы RAM .equ SetRAMPage =$0018 ;переключение страниц RAM .equ GetBaseAddress =$001A ;системная функция определения базового адреса .equ GetHookHandler =$001C ;запрос адреса (и наличия) обработчика ловушки .equ SetHook =$001E ;установка ловушки .equ ClrHook =$0020 ;отключение ловушки .equ CallHook =$0022 ;вызов ловушки .equ GetUARTMode =$0024 ;определение режима UART (Master/Slave) .equ SetUARTMode =$0026 ;установка режима UART (Master/Slave) .equ UARTSendData =$0028 ;отправка пакета в режиме "Master" .equ GetCurSendBuffer =$002A ;получение адреса в X текущего буфера передачи по UART .equ GetCurReceiveBuffer =$002C ;получение адреса в X текущего буфера приема по UART .equ SetSendBuffer =$002E ;назначение адреса текущего буфера передачи по UART .equ SetReceiveBuffer =$0030 ;назначение адреса текущего буфера приема по UART .equ GetUARTAddress =$0032 ;чтение собственного сетевого адреса .equ GetID =$0034 ;запрос идентификатора ;************************************************ ;*************** СИСТЕМНЫЕ ФУНКЦИИ ************** ;************************************************ .equ F_ReadEEPROM =$00 ;чтение байта из EEPROM .equ F_WriteEEPROM =$01 ;запись байта в EEPROM .equ F_GetUARTRate =$02 ;запрос скорости обмена по UART .equ F_SetUARTRate =$03 ;установка скорости обмена по UART .equ F_GetCmdHandler =$04 ;чтерние адреса обработчика команды .equ F_SetCmdHandler =$05 ;установка обработчика команды .equ F_ClrCmdHandler =$06 ;отключение обработчика команды .equ F_GetSysSendBuffer =$07 ;получение адреса в X системного буфера передачи по UART .equ F_GetSysReceiveBuffer =$08 ;получение адреса в X системного буфера приема по UART .equ F_GetRAMSize =$09 ;определение объема RAM .equ F_GetRAMPage =$0A ;чтение номера активной страницы RAM .equ F_SetRAMPage =$0B ;переключение страниц RAM .equ F_GetBaseAddress =$0C ;системная функция определения базового адреса .equ F_GetHookHandler =$0D ;запрос адреса (и наличия) обработчика ловушки .equ F_SetHook =$0E ;установка ловушки на 200 Hz .equ F_ClrHook =$0F ;отключение ловушки .equ F_CallHook =$10 ;вызов ловушки .equ F_GetUARTMode =$11 ;определение режима UART (Master/Slave) .equ F_SetUARTMode =$12 ;установка режима UART (Master/Slave) .equ F_UARTSendData =$13 ;отправка пакета в режиме "Master" .equ F_GetCurSendBuffer =$14 ;получение адреса в X текущего буфера передачи по UART .equ F_GetCurReceiveBuffer =$15 ;получение адреса в X текущего буфера приема по UART .equ F_SetSendBuffer =$16 ;назначение адреса текущего буфера передачи по UART .equ F_SetReceiveBuffer =$17 ;назначение адреса текущего буфера приема по UART .equ F_GetUARTAddress =$18 ;чтение собственного сетевого адреса .equ F_GetID =$19 ;запрос идентификатора ;************************************************ ;******************* ЛОВУШКИ ******************** ;************************************************ .equ HOOK_SYS_TIME =$00 ;ловушка прерывания 200 Hz .equ HOOK_EE_RDY =$01 ;ловушка окончания записи байта в EEPROM .equ HOOK_INT0 =$02 ;ловушка внешнего прерывания INT0 .equ HOOK_INT1 =$03 ;ловушка внешнего прерывания INT1 .equ HOOK_INT2 =$04 ;ловушка внешнего прерывания INT2 .equ HOOK_INT3 =$05 ;ловушка внешнего прерывания INT3 .equ HOOK_INT4 =$06 ;ловушка внешнего прерывания INT4 .equ HOOK_INT5 =$07 ;ловушка внешнего прерывания INT5 .equ HOOK_INT6 =$08 ;ловушка внешнего прерывания INT6 .equ HOOK_INT7 =$09 ;ловушка внешнего прерывания INT7 .equ HOOK_UART_ANS_COMPLETE =$0A ;ловушка готовности принимаемого пакета (для "Master") .equ HOOK_Tx_COMPLETE =$0B ;ловушка завершения передачи пакета .equ HOOK_ADDRESS_Rx =$0C ;ловушка на прием адресного байта ;************************************************ ;************* СИСТЕМНЫЕ ПЕРЕМЕННЫЕ ************* ;************************************************ .equ MemoryPage0 =$0100 ;страница SRAM, установленная в окне 0 (1100h-3FFFh) .equ MemoryPage1 =$0101 ;страница SRAM, установленная в окне 1 (4000h-7FFFh) .equ MemoryPage2 =$0102 ;страница SRAM, установленная в окне 2 (8000h-BFFFh) .equ MemoryPage3 =$0103 ;страница SRAM, установленная в окне 3 (C000h-FFFFh) .equ IdDisableFlag =$0104 ;флаг запрета идентификации устройства (по UART) .equ ADC0 =$0106 ;данные АЦП (канал 0) .equ ADC1 =$0108 ;данные АЦП (канал 1) .equ ADC2 =$010A ;данные АЦП (канал 2) .equ ADC3 =$010C ;данные АЦП (канал 3) .equ ADC4 =$010E ;данные АЦП (канал 4) .equ ADC5 =$0110 ;данные АЦП (канал 5) .equ ADC6 =$0112 ;данные АЦП (канал 6) .equ ADC7 =$0114 ;данные АЦП (канал 7)