 | Код: test_interrupt: MOVWF R15+0 SWAPF STATUS+0, 0 CLRF STATUS+0 MOVWF ___saveSTATUS+0 MOVF PCLATH+0, 0 MOVWF ___savePCLATH+0 CLRF PCLATH+0
;test.mbas,74 :: dim i as byte ;test.mbas,79 :: scaler = scaler + 1 INCF _scaler+0, 1 BTFSC STATUS+0, 2 INCF _scaler+1, 1 ;test.mbas,80 :: if scaler > maxcount MOVF _scaler+1, 0 SUBWF _maxcount+1, 0 BTFSS STATUS+0, 2 GOTO L_test_interrupt108 MOVF _scaler+0, 0 SUBWF _maxcount+0, 0 L_test_interrupt108: BTFSC STATUS+0, 0 GOTO L_test_interrupt2 ;test.mbas,82 :: scaler = 0 CLRF _scaler+0 CLRF _scaler+1 ;test.mbas,84 :: inc(ss) INCF _ss+0, 1 ;test.mbas,85 :: if ss = 60 MOVF _ss+0, 0 XORLW 60 BTFSS STATUS+0, 2 GOTO L_test_interrupt5 ;test.mbas,87 :: ss = 0 CLRF _ss+0 ;test.mbas,88 :: inc(mn) INCF _mn+0, 1 ;test.mbas,89 :: if mn = 60 MOVF _mn+0, 0 XORLW 60 BTFSS STATUS+0, 2 GOTO L_test_interrupt8 ;test.mbas,91 :: mn = 0 CLRF _mn+0 ;test.mbas,92 :: inc(hh) INCF _hh+0, 1 ;test.mbas,93 :: if hh = 24 MOVF _hh+0, 0 XORLW 24 BTFSS STATUS+0, 2 GOTO L_test_interrupt11 ;test.mbas,95 :: hh = 0 CLRF _hh+0 ;test.mbas,96 :: inc(jj) INCF _jj+0, 1 ;test.mbas,97 :: if jj = 8 MOVF _jj+0, 0 XORLW 8 BTFSS STATUS+0, 2 GOTO L_test_interrupt14 ;test.mbas,99 :: jj = 1 MOVLW 1 MOVWF _jj+0 L_test_interrupt14: ;test.mbas,100 :: end if L_test_interrupt11: ;test.mbas,101 :: end if L_test_interrupt8: ;test.mbas,102 :: end if L_test_interrupt5: ;test.mbas,103 :: end if L_test_interrupt2: ;test.mbas,115 :: #else MOVLW 15 IORWF PORTA+0, 1 ;test.mbas,116 :: PORTA = PORTA or $0f MOVLW 15 MOVWF TRISA+0 ;test.mbas,117 :: TRISA = $0f MOVF PORTA+0, 0 MOVWF _key+0 ;test.mbas,118 :: key = PORTA COMF _key+0, 1 ;test.mbas,119 :: key = not(key) CLRF TRISA+0 ;test.mbas,120 :: TRISA = 0 MOVLW 255 MOVWF PORTB+0 ;test.mbas,122 :: #endif MOVLW 7 ANDWF _key+0, 1 ;test.mbas,124 :: INCF _digit+0, 1 ;test.mbas,126 :: MOVF _digit+0, 0 SUBLW 3 BTFSC STATUS+0, 0 GOTO L_test_interrupt17 ;test.mbas,128 :: then CLRF _digit+0 ;test.mbas,129 :: digit = 0 MOVLW 1 MOVWF R1+0 GOTO L_test_interrupt18 ;test.mbas,130 :: i = $01 L_test_interrupt17: ;test.mbas,131 :: else MOVF _digit+0, 0 MOVWF R0+0 MOVLW 1 MOVWF R1+0 MOVF R0+0, 0 L_test_interrupt109: BTFSC STATUS+0, 2 GOTO L_test_interrupt110 RLF R1+0, 1 BCF R1+0, 0 ADDLW 255 GOTO L_test_interrupt109 L_test_interrupt110: ;test.mbas,132 :: i = $01 << digit L_test_interrupt18: ;test.mbas,137 :: PORTA = PORTA or i MOVF _digit+0, 0 ADDLW _digiled+0 MOVWF FSR MOVF INDF+0, 0 MOVWF PORTB+0 ;test.mbas,138 :: #else COMF PORTB+0, 0 MOVWF R0+0 MOVF R0+0, 0 MOVWF PORTB+0 ;test.mbas,139 :: PORTB = digiled[digit] COMF R1+0, 0 MOVWF R0+0 MOVF R0+0, 0 ANDWF PORTA+0, 1 ;test.mbas,142 :: #endif BCF INTCON+0, 2 L_test_interrupt107: MOVF ___savePCLATH+0, 0 MOVWF PCLATH+0 SWAPF ___saveSTATUS+0, 0 MOVWF STATUS+0 SWAPF R15+0, 1 SWAPF R15+0, 0 RETFIE ; end of test_interrupt
test_intTo7seg:
;test.mbas,148 :: ' converts digit to 7 segment ;test.mbas,150 :: sub function intTo7seg(dim n as byte) as byte MOVF FARG_intTo7seg_n+0, 0 XORLW 0 BTFSS STATUS+0, 2 GOTO L_test_intTo7seg23 MOVLW 63 MOVWF R1+0 GOTO L_test_intTo7seg20 L_test_intTo7seg23: ;test.mbas,151 :: select case n MOVF FARG_intTo7seg_n+0, 0 XORLW 1 BTFSS STATUS+0, 2 GOTO L_test_intTo7seg26 MOVLW 6 MOVWF R1+0 GOTO L_test_intTo7seg20 L_test_intTo7seg26: ;test.mbas,152 :: case 0 result = $3F MOVF FARG_intTo7seg_n+0, 0 XORLW 2 BTFSS STATUS+0, 2 GOTO L_test_intTo7seg29 MOVLW 91 MOVWF R1+0 GOTO L_test_intTo7seg20 L_test_intTo7seg29: ;test.mbas,153 :: case 1 result = $06 MOVF FARG_intTo7seg_n+0, 0 XORLW 3 BTFSS STATUS+0, 2 GOTO L_test_intTo7seg32 MOVLW 79 MOVWF R1+0 GOTO L_test_intTo7seg20 L_test_intTo7seg32: ;test.mbas,154 :: case 2 result = $5B MOVF FARG_intTo7seg_n+0, 0 XORLW 4 BTFSS STATUS+0, 2 GOTO L_test_intTo7seg35 MOVLW 102 MOVWF R1+0 GOTO L_test_intTo7seg20 L_test_intTo7seg35: ;test.mbas,155 :: case 3 result = $4F MOVF FARG_intTo7seg_n+0, 0 XORLW 5 BTFSS STATUS+0, 2 GOTO L_test_intTo7seg38 MOVLW 109 MOVWF R1+0 GOTO L_test_intTo7seg20 L_test_intTo7seg38: ;test.mbas,156 :: case 4 result = $66 MOVF FARG_intTo7seg_n+0, 0 XORLW 6 BTFSS STATUS+0, 2 GOTO L_test_intTo7seg41 MOVLW 125 MOVWF R1+0 GOTO L_test_intTo7seg20 L_test_intTo7seg41: ;test.mbas,157 :: case 5 result = $6D MOVF FARG_intTo7seg_n+0, 0 XORLW 7 BTFSS STATUS+0, 2 GOTO L_test_intTo7seg44 MOVLW 7 MOVWF R1+0 GOTO L_test_intTo7seg20 L_test_intTo7seg44: ;test.mbas,158 :: case 6 result = $7D MOVF FARG_intTo7seg_n+0, 0 XORLW 8 BTFSS STATUS+0, 2 GOTO L_test_intTo7seg47 MOVLW 127 MOVWF R1+0 GOTO L_test_intTo7seg20 L_test_intTo7seg47: ;test.mbas,159 :: case 7 result = $07 MOVF FARG_intTo7seg_n+0, 0 XORLW 9 BTFSS STATUS+0, 2 GOTO L_test_intTo7seg50 MOVLW 111 MOVWF R1+0 GOTO L_test_intTo7seg20 L_test_intTo7seg50: L_test_intTo7seg20: ;test.mbas,160 :: case 8 result = $7F MOVF R1+0, 0 MOVWF R0+0 RETURN ; end of test_intTo7seg
test_setValue:
;test.mbas,167 :: ' value is pointed to by v, display char s as header, maximum value is max ;test.mbas,168 :: ' MOVF FARG_setValue_s+0, 0 MOVWF _digiled+0 ;test.mbas,169 :: sub procedure setValue(dim v as ^byte, dim s as byte, dim max as byte) CLRF _digiled+1 ;test.mbas,171 :: digiled[1] = 0 L_test_setValue53: ;test.mbas,172 :: BTFSS _key+0, 0 GOTO L_test_setValue58 ;test.mbas,174 :: if key.0 MOVF FARG_setValue_v+0, 0 MOVWF FSR INCF INDF+0, 0 MOVWF R0+0 MOVF FARG_setValue_v+0, 0 MOVWF FSR MOVF R0+0, 0 MOVWF INDF+0 ;test.mbas,175 :: then MOVF FARG_setValue_v+0, 0 MOVWF FSR MOVF INDF+0, 0 SUBWF FARG_setValue_max+0, 0 BTFSC STATUS+0, 0 GOTO L_test_setValue61 ;test.mbas,177 :: if(v^ > max) MOVF FARG_setValue_v+0, 0 MOVWF FSR CLRF INDF+0 L_test_setValue61: ;test.mbas,178 :: then L_test_setValue58: ;test.mbas,181 :: end if BTFSS _key+0, 1 GOTO L_test_setValue64 ;test.mbas,183 :: if key.1 MOVF FARG_setValue_v+0, 0 MOVWF FSR MOVF INDF+0, 0 XORLW 0 BTFSS STATUS+0, 2 GOTO L_test_setValue67 ;test.mbas,185 :: if(v^ = 0) MOVF FARG_setValue_v+0, 0 MOVWF FSR MOVF FARG_setValue_max+0, 0 MOVWF INDF+0 GOTO L_test_setValue68 ;test.mbas,186 :: then L_test_setValue67: ;test.mbas,187 :: v^ = max MOVF FARG_setValue_v+0, 0 MOVWF FSR DECF INDF+0, 0 MOVWF R0+0 MOVF FARG_setValue_v+0, 0 MOVWF FSR MOVF R0+0, 0 MOVWF INDF+0 ;test.mbas,188 :: else L_test_setValue68: L_test_setValue64: ;test.mbas,191 :: end if BTFSS _key+0, 2 GOTO L_test_setValue70 ;test.mbas,193 :: if key.2 MOVLW 130 MOVWF R12+0 MOVLW 221 MOVWF R13+0 L_test_setValue72: DECFSZ R13+0, 1 GOTO L_test_setValue72 DECFSZ R12+0, 1 GOTO L_test_setValue72 NOP NOP ;test.mbas,194 :: then L_test_setValue74: BTFSS _key+0, 2 GOTO L_test_setValue75 ;test.mbas,195 :: Delay_ms(50) GOTO L_test_setValue74 L_test_setValue75: ;test.mbas,196 :: while key.2 MOVLW 130 MOVWF R12+0 MOVLW 221 MOVWF R13+0 L_test_setValue78: DECFSZ R13+0, 1 GOTO L_test_setValue78 DECFSZ R12+0, 1 GOTO L_test_setValue78 NOP NOP ;test.mbas,197 :: wend CLRF _scaler+0 CLRF _scaler+1 ;test.mbas,198 :: Delay_ms(50) CLRF _ss+0 ;test.mbas,199 :: scaler = 0 RETURN L_test_setValue70: ;test.mbas,202 :: end if MOVF FARG_setValue_v+0, 0 MOVWF FSR MOVF INDF+0, 0 MOVWF R0+0 MOVLW 10 MOVWF R4+0 CALL _Div_8x8_U+0 MOVF R0+0, 0 MOVWF FARG_intTo7seg_n+0 CALL test_intTo7seg+0 MOVF R0+0, 0 MOVWF _digiled+2 ;test.mbas,203 :: MOVF FARG_setValue_v+0, 0 MOVWF FSR MOVF INDF+0, 0 MOVWF R0+0 MOVLW 10 MOVWF R4+0 CALL _Div_8x8_U+0 MOVF R8+0, 0 MOVWF R0+0 MOVF R0+0, 0 MOVWF FARG_intTo7seg_n+0 CALL test_intTo7seg+0 MOVF R0+0, 0 MOVWF _digiled+3 ;test.mbas,205 :: digiled[3] = intTo7seg(v^ mod 10) MOVLW 4 MOVWF R11+0 MOVLW 12 MOVWF R12+0 MOVLW 51 MOVWF R13+0 L_test_setValue79: DECFSZ R13+0, 1 GOTO L_test_setValue79 DECFSZ R12+0, 1 GOTO L_test_setValue79 DECFSZ R11+0, 1 GOTO L_test_setValue79 NOP NOP ;test.mbas,206 :: GOTO L_test_setValue53 RETURN ; end of test_setValue
_main:
;test.mbas,213 :: ' ;test.mbas,218 :: ' init variables CLRF _dp+0 ;test.mbas,220 :: dp = 0 CLRF _hh+0 ;test.mbas,221 :: CLRF _mn+0 ;test.mbas,222 :: hh = 0 CLRF _ss+0 ;test.mbas,223 :: mn = 0 CLRF _jj+0 ;test.mbas,225 :: jj = 0 MOVLW 9 MOVWF _maxcount+0 MOVLW 61 MOVWF _maxcount+1 ;test.mbas,230 :: ' init I/O MOVLW 16 MOVWF PORTA+0 ;test.mbas,231 :: ' CLRF TRISA+0 ;test.mbas,233 :: TRISA = %00000000 CLRF PORTB+0 ;test.mbas,234 :: CLRF TRISB+0 ;test.mbas,239 :: ' init interrupts MOVLW 160 MOVWF INTCON+0 ;test.mbas,240 :: ' MOVLW 216 MOVWF OPTION_REG+0 ;test.mbas,242 :: OPTION_REG = %11011000 MOVLW 130 MOVWF R12+0 MOVLW 221 MOVWF R13+0 L__main81: DECFSZ R13+0, 1 GOTO L__main81 DECFSZ R12+0, 1 GOTO L__main81 NOP NOP ;test.mbas,247 :: ' clock adjustment MOVLW _hh+0 MOVWF FARG_setValue_v+0 MOVLW 116 MOVWF FARG_setValue_s+0 MOVLW 23 MOVWF FARG_setValue_max+0 CALL test_setValue+0 ;test.mbas,248 :: ' MOVLW _mn+0 MOVWF FARG_setValue_v+0 MOVLW 55 MOVWF FARG_setValue_s+0 MOVLW 59 MOVWF FARG_setValue_max+0 CALL test_setValue+0 ;test.mbas,249 :: setValue(@hh, 116, 23) MOVLW _jj+0 MOVWF FARG_setValue_v+0 MOVLW 14 MOVWF FARG_setValue_s+0 MOVLW 6 MOVWF FARG_setValue_max+0 CALL test_setValue+0 ;test.mbas,254 :: ' forever loop L__main83: ;test.mbas,255 :: ' MOVF _key+0, 0 BTFSC STATUS+0, 2 GOTO L__main88 ;test.mbas,260 :: ' display day and seconds (what for ? don't remember !) MOVF _jj+0, 0 MOVWF FARG_intTo7seg_n+0 CALL test_intTo7seg+0 MOVF R0+0, 0 MOVWF _digiled+0 ;test.mbas,261 :: ' CLRF _digiled+1 ;test.mbas,262 :: digiled[0] = intTo7seg(jj) MOVLW 10 MOVWF R4+0 MOVF _ss+0, 0 MOVWF R0+0 CALL _Div_8x8_U+0 MOVF R0+0, 0 MOVWF FARG_intTo7seg_n+0 CALL test_intTo7seg+0 MOVF R0+0, 0 MOVWF _digiled+2 ;test.mbas,263 :: digiled[1] = 0 MOVLW 10 MOVWF R4+0 MOVF _ss+0, 0 MOVWF R0+0 CALL _Div_8x8_U+0 MOVF R8+0, 0 MOVWF R0+0 MOVF R0+0, 0 MOVWF FARG_intTo7seg_n+0 CALL test_intTo7seg+0 MOVF R0+0, 0 MOVWF _digiled+3 GOTO L__main89 ;test.mbas,264 :: digiled[2] = intTo7seg(ss / 10) L__main88: ;test.mbas,268 :: ' display hours and minutes MOVLW 10 SUBWF _hh+0, 0 BTFSC STATUS+0, 0 GOTO L__main91 ;test.mbas,270 :: if hh < 10 CLRF _digiled+0 ;test.mbas,271 :: then MOVF _hh+0, 0 MOVWF FARG_intTo7seg_n+0 CALL test_intTo7seg+0 MOVF R0+0, 0 MOVWF _digiled+1 GOTO L__main92 ;test.mbas,272 :: digiled[0] = 0 L__main91: ;test.mbas,273 :: digiled[1] = intTo7seg(hh) MOVLW 10 MOVWF R4+0 MOVF _hh+0, 0 MOVWF R0+0 CALL _Div_8x8_U+0 MOVF R0+0, 0 MOVWF FARG_intTo7seg_n+0 CALL test_intTo7seg+0 MOVF R0+0, 0 MOVWF _digiled+0 ;test.mbas,274 :: else MOVLW 10 MOVWF R4+0 MOVF _hh+0, 0 MOVWF R0+0 CALL _Div_8x8_U+0 MOVF R8+0, 0 MOVWF R0+0 MOVF R0+0, 0 MOVWF FARG_intTo7seg_n+0 CALL test_intTo7seg+0 MOVF R0+0, 0 MOVWF _digiled+1 ;test.mbas,275 :: digiled[0] = intTo7seg(hh / 10) L__main92: ;test.mbas,276 :: digiled[1] = intTo7seg(hh mod 10) MOVLW 10 MOVWF R4+0 MOVF _mn+0, 0 MOVWF R0+0 CALL _Div_8x8_U+0 MOVF R0+0, 0 MOVWF FARG_intTo7seg_n+0 CALL test_intTo7seg+0 MOVF R0+0, 0 MOVWF _digiled+2 ;test.mbas,277 :: end if MOVLW 10 MOVWF R4+0 MOVF _mn+0, 0 MOVWF R0+0 CALL _Div_8x8_U+0 MOVF R8+0, 0 MOVWF R0+0 MOVF R0+0, 0 MOVWF FARG_intTo7seg_n+0 CALL test_intTo7seg+0 MOVF R0+0, 0 MOVWF _digiled+3 ;test.mbas,278 :: digiled[2] = intTo7seg(mn / 10) L__main89: ;test.mbas,283 :: ' blinks semicolon (or decimal point) MOVF _maxcount+0, 0 MOVWF R1+0 MOVF _maxcount+1, 0 MOVWF R1+1 RRF R1+1, 1 RRF R1+0, 1 BCF R1+1, 7 MOVF _scaler+1, 0 SUBWF R1+1, 0 BTFSS STATUS+0, 2 GOTO L__main111 MOVF _scaler+0, 0 SUBWF R1+0, 0 L__main111: BTFSC STATUS+0, 0 GOTO L__main94 ;test.mbas,285 :: if scaler > maxcount / 2 BSF _dp+0, 1 GOTO L__main95 ;test.mbas,286 :: then L__main94: ;test.mbas,287 :: dp.1 = 1 BCF _dp+0, 1 ;test.mbas,288 :: else L__main95: ;test.mbas,293 :: ' set decimal points BTFSC _dp+0, 0 GOTO L__main112 BCF _digiled+0, 7 GOTO L__main113 L__main112: BSF _digiled+0, 7 L__main113: ;test.mbas,294 :: ' BTFSC _dp+0, 1 GOTO L__main114 BCF _digiled+1, 7 GOTO L__main115 L__main114: BSF _digiled+1, 7 L__main115: ;test.mbas,295 :: digiled[0].7 = dp.0 BTFSC _dp+0, 2 GOTO L__main116 BCF _digiled+2, 7 GOTO L__main117 L__main116: BSF _digiled+2, 7 L__main117: ;test.mbas,296 :: digiled[1].7 = dp.1 BTFSC _dp+0, 3 GOTO L__main118 BCF _digiled+3, 7 GOTO L__main119 L__main118: BSF _digiled+3, 7 L__main119: ;test.mbas,301 :: ' check for alarm condition CLRF _alarm+0 ;test.mbas,302 :: ' CLRF _i+0 L__main97: ;test.mbas,303 :: alarm = 0 MOVF _i+0, 0 ADDLW _alarmTable+0 MOVWF R0+0 MOVLW hi_addr(_alarmTable+0) BTFSC STATUS+0, 0 ADDLW 1 MOVWF R0+1 MOVF R0+0, 0 MOVWF ___DoICPAddr+0 MOVF R0+1, 0 MOVWF ___DoICPAddr+1 CALL _____DoICP+0 MOVWF R0+0 MOVF R0+0, 0 XORWF _jj+0, 0 MOVLW 255 BTFSS STATUS+0, 2 MOVLW 0 MOVWF R2+0 MOVF _i+0, 0 ADDLW _alarmTable+0 MOVWF R0+0 MOVLW hi_addr(_alarmTable+0) BTFSC STATUS+0, 0 ADDLW 1 MOVWF R0+1 MOVF R0+0, 0 MOVWF ___DoICPAddr+0 MOVF R0+1, 0 MOVWF ___DoICPAddr+1 CALL _____DoICP+0 MOVWF R0+0 MOVF R0+0, 0 XORLW 7 MOVLW 255 BTFSS STATUS+0, 2 MOVLW 0 MOVWF R1+0 MOVLW 5 SUBWF _jj+0, 0 MOVLW 255 BTFSC STATUS+0, 0 MOVLW 0 MOVWF R0+0 MOVF R1+0, 0 ANDWF R0+0, 1 MOVF R0+0, 0 IORWF R2+0, 1 ;test.mbas,304 :: for i = 0 to (NBALARM - 1) * 4 INCF _i+0, 0 MOVWF R0+0 MOVLW 0 MOVWF R0+1 MOVLW _alarmTable+0 ADDWF R0+0, 1 MOVLW hi_addr(_alarmTable+0) BTFSC STATUS+0, 0 ADDLW 1 ADDWF R0+1, 1 MOVF R0+0, 0 MOVWF ___DoICPAddr+0 MOVF R0+1, 0 MOVWF ___DoICPAddr+1 CALL _____DoICP+0 MOVWF R1+0 MOVF R1+0, 0 XORWF _hh+0, 0 MOVLW 255 BTFSS STATUS+0, 2 MOVLW 0 MOVWF R0+0 MOVF R0+0, 0 ANDWF R2+0, 1 ;test.mbas,305 :: if ((alarmTable[i] = jj) or ((alarmTable[i] = LMMJV) and (jj < SAMEDI))) MOVLW 2 ADDWF _i+0, 0 MOVWF R0+0 MOVLW 0 MOVWF R0+1 MOVLW _alarmTable+0 ADDWF R0+0, 1 MOVLW hi_addr(_alarmTable+0) BTFSC STATUS+0, 0 ADDLW 1 ADDWF R0+1, 1 MOVF R0+0, 0 MOVWF ___DoICPAddr+0 MOVF R0+1, 0 MOVWF ___DoICPAddr+1 CALL _____DoICP+0 MOVWF R1+0 MOVF R1+0, 0 XORWF _mn+0, 0 MOVLW 255 BTFSS STATUS+0, 2 MOVLW 0 MOVWF R0+0 MOVF R0+0, 0 ANDWF R2+0, 1 ;test.mbas,306 :: and (alarmTable[i + 1] = hh) MOVLW 3 ADDWF _i+0, 0 MOVWF R0+0 MOVLW 0 MOVWF R0+1 MOVLW _alarmTable+0 ADDWF R0+0, 1 MOVLW hi_addr(_alarmTable+0) BTFSC STATUS+0, 0 ADDLW 1 ADDWF R0+1, 1 MOVF R0+0, 0 MOVWF ___DoICPAddr+0 MOVF R0+1, 0 MOVWF ___DoICPAddr+1 CALL _____DoICP+0 MOVWF R1+0 MOVF R1+0, 0 SUBWF _ss+0, 0 MOVLW 255 BTFSC STATUS+0, 0 MOVLW 0 MOVWF R0+0 MOVF R2+0, 0 ANDWF R0+0, 1 BTFSC STATUS+0, 2 GOTO L__main102 ;test.mbas,308 :: and (alarmTable[i + 3] > ss) INCF _alarm+0, 1 L__main102: ;test.mbas,310 :: inc(alarm) MOVF _i+0, 0 XORLW 60 BTFSC STATUS+0, 2 GOTO L__main100 INCF _i+0, 1 GOTO L__main97 L__main100: ;test.mbas,312 :: next i MOVF _alarm+0, 0 BTFSC STATUS+0, 2 GOTO L__main105 ;test.mbas,317 :: ' set alarm BSF _dp+0, 3 ;test.mbas,318 :: ' BCF PORTA+0, 4 GOTO L__main106 ;test.mbas,319 :: dp.3 = 1 L__main105: ;test.mbas,323 :: ' clear alarm BCF _dp+0, 3 ;test.mbas,324 :: ' BSF PORTA+0, 4 ;test.mbas,325 :: dp.3 = 0 L__main106: ;test.mbas,326 :: PORTA.4 = 1 GOTO L__main83 GOTO $+0 ; end of _main |  |