#ifndef _common_inc_ #define _common_inc_ messg "include 'common.inc'" LIST ; Title : common defines ; By : komi ; Last update : 2005.11.18 ; Version : 0.1 NOLIST ;---------------------------------------------------------------------------- #define true (0==0) #define false !(0==0) variable _COMMON_temp_used_ = false ;---------------------------------------------------------------------------- ; テーブルジャンプ on_goto_U1 MACRO varU1 local jump_table MOVLW HIGH jump_table MOVWF PCLATH banksel varU1 MOVF varU1, W ADDLW LOW (jump_table+0) BTFSC STATUS, C INCF PCLATH, F MOVWF PCL jump_table: ENDM ;---------------------------------------------------------------------------- ; memset memset_V1V1V1 MACRO start, c, n NOLIST _COMMON_temp_used_ = true LIST local memset_loop bankisel start MOVLW start MOVWF FSR banksel com_temp MOVLW n MOVWF com_temp memset_loop: if (c != 0) MOVLW c MOVWF INDF else CLRF INDF endif INCF FSR, F DECFSZ com_temp, F GOTO memset_loop ENDM ;---------------------------------------------------------------------------- ; 間接参照 W_read_ram_V1V1 MACRO start, index bankisel start MOVLW start ADDLW index MOVWF FSR MOVF INDF, W ENDM U1_read_ram_V1V1 MACRO varU1, start, index W_read_ram_V1V1 start, index banksel varU1 MOVWF varU1 ENDM W_read_ram_V1U1 MACRO start, idxU1 bankisel start MOVLW start banksel idxU1 ADDWF idxU1, W MOVWF FSR MOVF INDF, W ENDM U1_read_ram_V1U1 MACRO varU1, start, idxU1 W_read_ram_V1U1 start, idxU1 banksel varU1 MOVWF varU1 ENDM write_ram_V1V1V1 MACRO start, index, value bankisel start MOVLW start ADDLW index MOVWF FSR MOVLW value MOVWF INDF ENDM write_ram_V1U1U1 MACRO start, idxU1, varU1 bankisel start MOVLW start banksel idxU1 ADDWF idxU1, W MOVWF FSR banksel varU1 MOVF varU1, W MOVWF INDF ENDM ;---------------------------------------------------------------------------- COMMON_functions MACRO NOLIST #if _COMMON_temp_used_ _COMMON_temp_used_ = false LIST U_COMMON UDATA com_temp RES 1 NOLIST #endif LIST ENDM ;---------------------------------------------------------------------------- LIST #endif