יצא בלוקר ל SECA 2 השפה אסמבלר
LIST P=16F628, F=INHX8M
include "P16F628.inc"
errorlevel 1,-224,-302
CLRF TMR1L
CLRF TMR1H
CLRF TMR0
CLRF 0x67
CLRF 0x76
CLRF 0x7a
MOVLW 0x1
MOVWF 0x65
MOVLW 0x7f
OPTION
CLRF PORTA
MOVLW 0x7
MOVWF CMCON
MOVLW 0xfc
TRIS PORTA
MOVLW 0x60
CALL Read_EE
XORLW 0x1
BTFSC STATUS, 0x2
BSF TMR0, 0x2
MOVLW 0x6e
CALL Read_EE
XORLW 0x1
BTFSC STATUS, 0x2
BSF TMR0, 0x7
MOVLW 0x6f
CALL Read_EE
XORLW 0x1
BTFSC STATUS, 0x2
BSF TMR1H, 0x6
MOVLW 0x61
CALL Read_EE
MOVWF 0x73
MOVLW 0x62
CALL Read_EE
XORLW 0x1
BTFSC STATUS, 0x2
BSF TMR0, 0x5
MOVLW 0x63
CALL Read_EE
XORLW 0x1
BTFSC STATUS, 0x2
BSF TMR0, 0x3
MOVLW 0x64
CALL Read_EE
XORLW 0x1
BTFSC STATUS, 0x2
BSF TMR0, 0x1
MOVLW 0x65
CALL Read_EE
XORLW 0x1
BTFSC STATUS, 0x2
BSF TMR1L, 0x2
MOVLW 0x6a
CALL Read_EE
XORLW 0x1
BTFSC STATUS, 0x2
BSF TMR1H, 0
MOVLW 0x6d
CALL Read_EE
XORLW 0x1
BTFSC STATUS, 0x2
BSF TMR1H, 0x4
MOVLW 0x69
CALL Read_EE
XORLW 0x1
BTFSC STATUS, 0x2
BSF TMR1L, 0x5
MOVLW 0x5f
CALL Read_EE
XORLW 0x1
BTFSC STATUS, 0x2
BSF TMR1L, 0x7
MOVLW 0x9f
MOVWF 0x7e
CLRF 0x36
CLRF 0x37
CLRF 0x38
Label_0003 CALL Wait_Tx
MOVF 0x26, W
XORLW 0x90
BTFSS STATUS, 0x2
GOTO Label_0003
MOVLW 0
CALL Byte_to_CAM
CLRF 0x64
CLRF 0x6c
CLRF 0x6d
MOVLW 0x66
CALL Read_EE
MOVWF 0x7c
BTFSC STATUS, 0x2
CALL Full
MOVLW 0x67
CALL Read_EE
MOVWF 0x7d
MOVLW 0x68
CALL Read_EE
XORLW 0x1
BTFSS STATUS, 0x2
GOTO Main
BSF TMR1L, 0x1
BSF TMR1L, 0x6
Main MOVF 0x20, W
MOVWF 0x72
Main_2 BTFSC TMR0, 0
CALL Switch_Log
BTFSC TMR1H, 0x1
GOTO Main_3
BCF PORTA, 0
Main_3 BCF PORTA, 0x1
BTFSS TMR1L, 0x1
GOTO No_led_yellow
BSF PORTA, 0x1
No_led_yellow CALL Receive
MOVWF 0x2a
XORLW 0xc1
BTFSS STATUS, 0x2
GOTO Main_2
CALL Receive
MOVWF 0x20
CALL Receive
MOVWF 0x21
CALL Receive
MOVWF 0x22
CALL Receive
MOVWF 0x23
MOVWF 0x74
BTFSC TMR1L, 0x1
GOTO Spegni
BTFSC TMR1H, 0x1
GOTO Continua
MOVF 0x20, W
XORLW 0x3c
BTFSC STATUS, 0x2
GOTO Led_3C
XORLW 0x6
BTFSC STATUS, 0x2
GOTO Led_3A
BSF PORTA, 0
BSF PORTA, 0x1
GOTO Continua
Spegni BCF PORTA, 0x1
Continua BTFSS TMR1L, 0x1
GOTO INS_Check
BTFSC TMR1H, 0x3
CALL Memo_Log
MOVLW 0x9f
SUBWF 0x7e, W
MOVWF 0x7f
BTFSS STATUS, 0x2
CALL Memo_Log
INS_Check CLRF PCLATH
MOVLW 0x7
MOVWF 0x77
INS_Scan MOVF 0x77, W
ADDLW 0x6f
CALL Read_EE
XORWF 0x20, W
BTFSC STATUS, 0x2
GOTO Jump_INS
DECFSZ 0x77, F
GOTO INS_Scan
GOTO All_Ins
Jump_INS MOVF 0x77, W
ADDLW 0xa6
Tab_INS MOVWF PCL
GOTO Ins_12
GOTO Ins_0E
GOTO Ins_40
GOTO Ins_3C_3A
GOTO Ins_3C_3A
GOTO Ins_16
GOTO Ins_13
PIN_Check BCF TMR0, 0x4
CLRF PCLATH
BCF STATUS, 0
MOVF 0x7a, W
ADDLW 0xec
BTFSC STATUS, 0
GOTO PinCheck_Return
Entra_da_Ins_13 MOVF 0x7a, W
CLRF 0x7a
ADDLW 0xb8
Tab_Pin MOVWF PCL
GOTO Log_OnOff
GOTO Memo_Fill
GOTO Led_OFF
GOTO Log_Video
GOTO Reset_Indirizzo_Lettura
GOTO Reverse_Read_LOG
GOTO Allinea_Puntatori
GOTO Dump_Card
GOTO Dump_00
GOTO Dump_01
GOTO Dump_02
GOTO Dump_03
GOTO Log_Ins_x
GOTO Block_Log_3C_3A
GOTO PPV_ON
GOTO INS30_ON
GOTO SEND_3C
GOTO SEND_40
GOTO INS_30
PinCheck_Return CLRF 0x7a
RETURN
SEND_3C CALL INVIO_3C
GOTO PinCheck_Return
SEND_40 CALL INVIO_40
GOTO PinCheck_Return
Led_3C BSF PORTA, 0
GOTO Ins_3C_3A
Led_3A BSF PORTA, 0x1
GOTO Ins_3C_3A
Log_OnOff BTFSC TMR0, 0
CALL Switch_Log
MOVLW 0x68
BTFSS TMR1L, 0x1
GOTO LOG_ON
LOG_OFF BCF TMR1L, 0x1
BCF PORTA, 0x1
CALL Reset_imp_EE
RETURN
LOG_ON BSF TMR1L, 0x1
CALL Set_imp_EE
RETURN
PPV_ON MOVLW 0x6e
BTFSS TMR0, 0x7
GOTO PPV_ON1
BCF TMR0, 0x7
CALL Reset_imp_EE
RETURN
PPV_ON1 BSF TMR0, 0x7
CALL Set_imp_EE
RETURN
INS30_ON MOVLW 0x6f
BTFSS TMR1H, 0x6
GOTO INS30_ON1
BCF TMR1H, 0x6
CALL Reset_imp_EE
RETURN
INS30_ON1 BSF TMR1H, 0x6
CALL Set_imp_EE
RETURN
Block_Log_3C_3A MOVLW 0x64
BTFSS TMR0, 0x1
GOTO Block_3C_On
BCF TMR0, 0x1
CALL Reset_imp_EE
RETURN
Block_3C_On BSF TMR0, 0x1
CALL Set_imp_EE
RETURN
Log_Ins_x MOVLW 0x60
BTFSS TMR0, 0x2
GOTO Log_Ins_On
BCF TMR0, 0x2
CALL Reset_imp_EE
RETURN
Log_Ins_On BSF TMR0, 0x2
CALL Set_imp_EE
RETURN
Log_Video MOVLW 0x6a
BTFSS TMR1H, 0
GOTO Log_Video_On
BCF TMR1H, 0
MOVLW 0
CALL Reset_imp_EE
RETURN
Log_Video_On BSF TMR1H, 0
CALL Set_imp_EE
RETURN
Reverse_Read_LOG MOVLW 0x6d
BTFSS TMR1H, 0x4
GOTO Reverse_ON
Reverse_OFF MOVLW 0x6d
BCF TMR1H, 0x4
CALL Reset_imp_EE
RETURN
Reverse_ON BSF TMR1H, 0x4
CALL Set_imp_EE
RETURN
Set_imp_EE BSF STATUS, 0x5
MOVWF 0x1b
MOVLW 0x1
MOVWF RCREG
CALL Write
RETURN
Reset_imp_EE BSF STATUS, 0x5
MOVWF 0x1b
MOVLW 0
MOVWF RCREG
CALL Write
RETURN
Allinea_Puntatori MOVF 0x7c, W
MOVWF 0x6c
MOVF 0x7d, W
MOVWF 0x6d
GOTO Hi_Low_Memo_1
Led_OFF BCF PORTA, 0
RETURN
Reset_Indirizzo_Lettura CLRF 0x6c
CLRF 0x6d
GOTO Hi_Low_Memo_1
Dump_00 MOVLW 0
MOVWF 0x65
RETURN
Dump_01 MOVLW 0x1
MOVWF 0x65
RETURN
Dump_02 MOVLW 0x2
MOVWF 0x65
RETURN
Dump_03 MOVLW 0x3
MOVWF 0x65
RETURN
Ins_13 MOVF 0x23, W
XORLW 0x1
BTFSS STATUS, 0x2
GOTO Invia_6700
MOVLW 0x13
CALL Byte_to_CAM
CALL Receive
MOVWF 0x7a
MOVF 0x7a, F
BTFSC STATUS, 0x2
GOTO Pin_Check_Error
BCF STATUS, 0
MOVF 0x7a, W
ADDLW 0xec
BTFSC STATUS, 0
GOTO Pin_Check_Error
MOVLW 0x90
CALL Byte_to_CAM
MOVLW 0
CALL Byte_to_CAM
CALL Entra_da_Ins_13
GOTO Main
Pin_Check_Error MOVLW 0x90
CALL Byte_to_CAM
MOVLW 0xff
CALL Byte_to_CAM
CLRF 0x7a
GOTO Main
Invia_6700 MOVLW 0x67
CALL Byte_to_CAM
MOVLW 0
CALL Byte_to_CAM
GOTO Main
Ins_0E BTFSC TMR1L, 0x1
CALL Memo_5byte
MOVLW 0x8
SUBWF 0x74, F
MOVLW 0
MOVWF 0x3f
MOVLW 0x8
MOVWF 0x40
MOVLW 0x8
MOVWF 0x23
BSF TMR1L, 0x3
CALL Tx_Dati_EE
GOTO Send_FF
Send_FF MOVF 0x74, F
BTFSC STATUS, 0x2
GOTO Tx_9000
Loop_FF MOVLW 0xff
CALL Byte_to_CAM
DECFSZ 0x74, F
GOTO Loop_FF
GOTO Tx_9000
Tx_Dati_EE MOVLW 0x2b
MOVWF FSR
MOVWF 0x79
Loop_Dati MOVF 0x3f, W
CALL Read_EE
MOVWF INDF
INCF 0x3f, F
INCF FSR, F
MOVF 0x40, W
XORWF 0x3f, W
BTFSS STATUS, 0x2
GOTO Loop_Dati
BTFSS TMR1L, 0x3
GOTO Loop_Invio
MOVLW 0xe
CALL Byte_to_CAM
Loop_Invio MOVF 0x79, W
MOVWF FSR
MOVF INDF, W
CALL Byte_to_CAM
INCF 0x79, F
DECFSZ 0x23, F
GOTO Loop_Invio
BCF TMR1L, 0x3
RETURN
Ins_12 MOVF 0x21, F
BTFSC STATUS, 0x2
GOTO All_Ins
BTFSC TMR1L, 0x2
CALL Switch_Log
BTFSC TMR0, 0x4
GOTO Memo_Code_12
MOVF 0x21, W
XORLW 0x1
BTFSS STATUS, 0x2
GOTO _Ins_12
INCF 0x76, F
MOVF 0x76, W
XORLW 0x3
BTFSC STATUS, 0x2
BSF TMR0, 0x4
_Ins_12 BTFSC TMR1L, 0x1
GOTO All_Ins
BTFSC TMR1H, 0
GOTO Send_5
MOVLW 0xfc
ADDWF 0x21, W
BTFSC STATUS, 0
GOTO All_Ins
MOVLW 0xe8
ADDWF 0x23, W
BTFSS STATUS, 0
GOTO All_Ins
Send_5 CALL Send_5byte
CALL Receive
Ins_12_1 CALL Receive
MOVWF 0x26
MOVF 0x74, W
SUBLW 0xef
MOVWF FSR
MOVF 0x26, W
MOVWF INDF
DECFSZ 0x74, F
GOTO Ins_12_1
MOVF 0x21, W
XORLW 0x1
BTFSS STATUS, 0x2
GOTO 0x1b8
CALL Prepara_121
GOTO Invio_12_CAM
MOVF 0x21, W
XORLW 0x2
BTFSS STATUS, 0x2
GOTO 0x1be
CALL Prepara_122
GOTO Invio_12_CAM
XORLW 0x1
BTFSS STATUS, 0x2
GOTO Video_Log
CALL Prepara_123
Invio_12_CAM MOVLW 0x12
CALL Byte_to_CAM
MOVF 0x23, W
SUBLW 0xef
MOVWF FSR
MOVF INDF, W
XORLW 0xff
BTFSS STATUS, 0x2
GOTO Rilegge_Dato
MOVLW 0
Invio_12_ CALL Byte_to_CAM
INCF FSR, F
MOVF INDF, W
XORLW 0xff
BTFSS STATUS, 0x2
GOTO Rilegge_Dato_1
INCF 0x64, F
MOVF 0x64, W
Invio_12_1 CALL Byte_to_CAM
BSF STATUS, 0x6
BSF STATUS, 0x7
MOVLW 0x23
MOVWF FSR
Loop_12 INCF FSR, F
MOVF INDF, W
BCF STATUS, 0x6
BCF STATUS, 0x7
CALL Byte_to_CAM
BSF STATUS, 0x6
BSF STATUS, 0x7
MOVLW 0x37
XORWF FSR, W
BTFSS STATUS, 0x2
GOTO Loop_12
BCF STATUS, 0x6
BCF STATUS, 0x7
MOVLW 0x16
SUBWF 0x23, F
Fine_12 MOVF 0x23, W
SUBLW 0xef
MOVWF FSR
MOVF INDF, W
CALL Byte_to_CAM
DECFSZ 0x23, F
GOTO Fine_12
GOTO Tx_9000
Rilegge_Dato MOVF INDF, W
GOTO Invio_12_
Rilegge_Dato_1 MOVF INDF, W
GOTO Invio_12_1
Prepara_121 CALL Inizial_12
BCF STATUS, 0x6
BTFSS TMR1L, 0x6
GOTO NO_Log
BSF STATUS, 0x6
MOVLW 0x4c
MOVWF INDF
INCF FSR, F
MOVLW 0x67
MOVWF INDF
INCF FSR, F
GOTO Dati_stat_1a
NO_Log CALL Blank_x_2
Dati_stat_1a CALL Trattino
BCF STATUS, 0x6
BTFSS TMR0, 0x2
GOTO NO_INS_spec
BSF STATUS, 0x6
MOVLW 0x4d
MOVWF INDF
INCF FSR, F
MOVLW 0x69
MOVWF INDF
INCF FSR, F
GOTO Dati_stat_1b
NO_INS_spec CALL Blank_x_2
Dati_stat_1b CALL Trattino
BCF STATUS, 0x6
BTFSS TMR0, 0x7
GOTO NO_PPV
BSF STATUS, 0x6
BSF STATUS, 0x6
MOVLW 0x50
MOVWF INDF
INCF FSR, F
MOVLW 0x49
MOVWF INDF
INCF FSR, F
GOTO Dati_stat_1c
NO_PPV CALL Blank_x_2
Dati_stat_1c CALL Trattino
BCF STATUS, 0x6
BTFSS TMR0, 0x1
GOTO NO_3C
BSF STATUS, 0x6
MOVLW 0x33
MOVWF INDF
INCF FSR, F
MOVLW 0x43
MOVWF INDF
INCF FSR, F
GOTO Dati_stat_1d
NO_3C CALL Blank_x_2
Dati_stat_1d CALL Trattino
BCF STATUS, 0x6
BTFSS TMR1L, 0x2
GOTO NO_12
BSF STATUS, 0x6
MOVLW 0x31
MOVWF INDF
INCF FSR, F
MOVLW 0x32
MOVWF INDF
INCF FSR, F
GOTO Dati_stat_1e
NO_12 CALL Blank_x_2
Dati_stat_1e CALL Trattino
BCF STATUS, 0x6
MOVF 0x36, W
CALL Notifica
Ret_Prep_12 CALL Emu_PPUA
BCF STATUS, 0x6
BCF STATUS, 0x7
RETURN
Prepara_122 CALL Inizial_12
BCF STATUS, 0x6
BTFSS TMR0, 0x5
GOTO NO_40
BSF STATUS, 0x6
MOVLW 0x34
MOVWF INDF
INCF FSR, F
MOVLW 0x30
MOVWF INDF
INCF FSR, F
GOTO Dati_stat_2
NO_40 CALL Blank_x_2
Dati_stat_2 BCF STATUS, 0x6
BTFSS TMR0, 0x3
GOTO NO_B0
BSF STATUS, 0x6
MOVLW 0x42
MOVWF INDF
INCF FSR, F
MOVLW 0x30
MOVWF INDF
INCF FSR, F
GOTO Dati_stat_2a
NO_B0 CALL Blank_x_2
Dati_stat_2a BCF STATUS, 0x6
BTFSS TMR1L, 0x5
GOTO NO_B0_0072
BSF STATUS, 0x6
MOVLW 0x37
MOVWF INDF
INCF FSR, F
MOVLW 0x32
MOVWF INDF
INCF FSR, F
GOTO Dati_stat_2b
NO_B0_0072 CALL Blank_x_2
Dati_stat_2b CALL Trattino
BCF STATUS, 0x6
BTFSS TMR1H, 0x6
GOTO NO_30
BSF STATUS, 0x6
MOVLW 0x33
MOVWF INDF
INCF FSR, F
MOVLW 0x30
MOVWF INDF
INCF FSR, F
GOTO Dati_stat_2c
NO_30 CALL Blank_x_2
Dati_stat_2c CALL Trattino
BCF STATUS, 0x6
BTFSS TMR1H, 0x4
GOTO NO_EEr
BSF STATUS, 0x6
MOVLW 0x45
MOVWF INDF
INCF FSR, F
MOVLW 0x72
MOVWF INDF
INCF FSR, F
GOTO Dati_stat_2d
NO_EEr CALL Blank_x_2
Dati_stat_2d BCF STATUS, 0x6
BTFSS TMR1L, 0x7
GOTO NO_16
BSF STATUS, 0x6
MOVLW 0x31
MOVWF INDF
INCF FSR, F
MOVLW 0x36
MOVWF INDF
INCF FSR, F
GOTO Dati_stat_2e
NO_16 CALL Blank_x_2
Dati_stat_2e CALL Trattino
BCF STATUS, 0x6
MOVF 0x37, W
CALL Notifica
GOTO Ret_Prep_12
Prepara_123 CALL Inizial_12
BCF STATUS, 0x6
MOVLW 0xe
MOVWF 0x71
MOVLW 0x28
MOVWF 0x70
CALL loop_ppua
CALL Trattino
BCF STATUS, 0x6
MOVF 0x38, W
CALL Notifica
GOTO Ret_Prep_12
Blank_x_2 BSF STATUS, 0x6
MOVLW 0x20
MOVWF INDF
INCF FSR, F
MOVWF INDF
INCF FSR, F
RETURN
Trattino MOVLW 0x2d
MOVWF INDF
INCF FSR, F
RETURN
Notifica IORLW 0x30
BSF STATUS, 0x6
MOVWF INDF
INCF FSR, F
RETURN
Inizial_12 BSF STATUS, 0x6
BSF STATUS, 0x7
MOVLW 0x24
MOVWF FSR
RETURN
Memo_Code_12 INCF 0x7a, F
GOTO _Ins_12
Video_Log CALL Prepara_LOG
GOTO Invio_12_CAM
Prepara_LOG BSF STATUS, 0x6
BSF STATUS, 0x7
MOVLW 0x24
MOVWF FSR
BCF STATUS, 0x6
BCF STATUS, 0x7
CALL Legge_Indirizzo
BTFSC TMR1H, 0x4
CALL Reverse_Read
MOVF 0x6c, W
MOVWF 0x75
MOVF 0x6d, W
CALL EEprom_ext_read
Update_Puntatori MOVLW 0x8
ADDWF 0x6d, F
BTFSC STATUS, 0
INCF 0x6c, F
MOVF 0x6c, W
BTFSC STATUS, 0x2
CLRF 0x6c
GOTO Hi_Low_Memo_1
Reverse_Read MOVF 0x67, F
BTFSS STATUS, 0x2
GOTO Legge_Pagina
INCF 0x67, F
MOVLW 0xd0
SUBWF 0x6d, F
BTFSC STATUS, 0
RETURN
MOVLW 0x1
SUBWF 0x6c, F
BTFSC STATUS, 0
RETURN
RETURN
Legge_Pagina INCF 0x67, F
MOVF 0x67, W
XORLW 0xd
BTFSS STATUS, 0x2
RETURN
CLRF 0x67
RETURN
Emu_PPUA BCF STATUS, 0x6
MOVLW 0x4
MOVWF 0x71
MOVF 0x21, W
MOVWF 0x70
RLF 0x70, F
RLF 0x70, F
RLF 0x70, F
MOVLW 0x2
SUBWF 0x70, F
loop_ppua MOVF 0x70, W
CALL Read_EE
BSF STATUS, 0x6
MOVWF INDF
INCF FSR, F
BCF STATUS, 0x6
INCF 0x70, F
DECFSZ 0x71, F
GOTO loop_ppua
RETURN
Ins_16 BTFSC TMR1H, 0
GOTO Log_a_video
BTFSC TMR1L, 0x7
GOTO Log_a_video
GOTO All_Ins
Log_a_video MOVLW 0x6
SUBWF 0x74, F
MOVLW 0x16
CALL Byte_to_CAM
MOVLW 0
CALL Byte_to_CAM
MOVLW 0
CALL Byte_to_CAM
BTFSS TMR1H, 0
GOTO Maschera_ins_16
MOVLW 0xff
CALL Byte_to_CAM
MOVLW 0xff
CALL Byte_to_CAM
GOTO Completa
Maschera_ins_16 MOVLW 0
CALL Byte_to_CAM
MOVLW 0xf
CALL Byte_to_CAM
Completa MOVLW 0
CALL Byte_to_CAM
MOVLW 0
CALL Byte_to_CAM
GOTO Send_FF
All_Ins CALL Send_5byte
CALL Wait_Tx
Tx_Ins_Loop CALL Wait_Tx
DECFSZ 0x23, F
GOTO Tx_Ins_Loop
GOTO Tx_Status
Nibble_P2 MOVLW 0xf
ANDWF 0x22, W
ADDLW 0x1
RETURN
Ins_40 MOVF 0x21, W
XORLW 0x1
BTFSS STATUS, 0x2
GOTO Vedi_se_2
CALL Nibble_P2
IORWF 0x36, F
GOTO Prosegui
Vedi_se_2 MOVF 0x21, W
XORLW 0x2
BTFSS STATUS, 0x2
GOTO Vedi_se_3
CALL Nibble_P2
IORWF 0x37, F
GOTO Prosegui
Vedi_se_3 XORLW 0x1
BTFSS STATUS, 0x2
GOTO Prosegui
CALL Nibble_P2
IORWF 0x38, F
Prosegui BTFSC TMR0, 0x5
GOTO _Ins_40
BTFSC TMR0, 0x3
GOTO Blocca_00
BTFSS TMR1L, 0x5
GOTO All_Ins
MOVF 0x21, W
XORLW 0x3
BTFSC STATUS, 0x2
GOTO Blocca_00
GOTO All_Ins
Blocca_00 MOVLW 0xf
ANDWF 0x22, W
XORLW 0
BTFSS STATUS, 0x2
GOTO All_Ins
_Ins_40 BTFSC TMR1L, 0x1
CALL Memo_5byte
BSF TMR1H, 0x7
MOVLW 0x40
CALL Byte_to_CAM
_Ins_40_Loop CALL Receive
DECFSZ 0x23, F
GOTO _Ins_40_Loop
BCF TMR1H, 0x7
GOTO Tx_9000
Ins_3C_3A BTFSC TMR0, 0x1
CALL Switch_Log
CALL Send_5byte
CALL Wait_Tx
Tx_3c_Loop CALL Wait_Tx
DECFSZ 0x23, F
GOTO Tx_3c_Loop
GOTO Tx_Status
PULIZIA BCF PORTA, 0x1
CALL INVIO_3C
CALL INVIO_40
MOVLW 0x1d
MOVWF 0x34
RETURN
STATUS_CHECK MOVF 0x31, W
XORLW 0x97
BTFSS STATUS, 0x2
GOTO SB_90_xx
Rimanda_40 MOVF 0x21, W
XORLW 0x1
BTFSS STATUS, 0x2
RETURN
BCF TMR1H, 0x5
RETURN
SB_90_xx XORLW 0x7
BTFSS STATUS, 0x2
RETURN
MOVF 0x32, W
XORLW 0x27
BTFSS STATUS, 0x2
GOTO SB_90_00
BTFSS TMR0, 0x7
RETURN
DECF 0x34, F
RETURN
SB_90_00 MOVF 0x32, W
XORLW 0
BTFSS STATUS, 0x2
GOTO SB_90_1A
MOVF 0x20, W
XORLW 0x3a
BTFSS STATUS, 0x2
RETURN
BTFSS TMR0, 0x7
RETURN
BTFSC TMR1H, 0x5
GOTO Avanti
BSF TMR1H, 0x5
CALL INVIO_40
CALL PULIZIA
RETURN
Avanti MOVF 0x34, W
BTFSS STATUS, 0x2
GOTO Avanti1
CALL PULIZIA
RETURN
Avanti1 BTFSS TMR0, 0x6
RETURN
CALL INS_30
BCF TMR0, 0x6
RETURN
SB_90_1A MOVF 0x32, W
XORLW 0x1a
BTFSS STATUS, 0x2
GOTO SB_90_19
BTFSS TMR1H, 0x6
RETURN
BSF TMR0, 0x6
RETURN
SB_90_19 MOVF 0x32, W
XORLW 0x19
BTFSS STATUS, 0x2
RETURN
GOTO Rimanda_40
ZEROS MOVWF 0x71
back MOVLW 0
CALL Byte_to_CARD
DECFSZ 0x71, F
GOTO back
RETURN
Memo_5byte MOVLW 0xc1
CALL Log
MOVF 0x20, W
CALL Log
MOVF 0x21, W
CALL Log
MOVF 0x22, W
CALL Log
MOVF 0x23, W
CALL Log
RETURN
Tx_Status CALL Wait_Tx
MOVF 0x26, W
BTFSS STATUS, 0x5
GOTO WRITE_RP0
BCF STATUS, 0x5
MOVWF 0x31
BSF STATUS, 0x5
CALL Wait_Tx
MOVF 0x26, W
BCF STATUS, 0x5
GOTO Run_status_ch
WRITE_RP0 MOVWF 0x31
CALL Wait_Tx
MOVF 0x26, W
Run_status_ch MOVWF 0x32
CALL STATUS_CHECK
GOTO Main
Tx_9000 MOVLW 0x90
CALL Byte_to_CAM
MOVLW 0
CALL Byte_to_CAM
GOTO Main
Log MOVWF 0x7b
BTFSC TMR1H, 0x3
GOTO Check_Loc
INCF 0x7e, F
MOVLW 0xf0
XORWF 0x7e, W
BTFSS STATUS, 0x2
GOTO Log_Bank1
BSF TMR1H, 0x3
MOVLW 0x41
MOVWF 0x7e
GOTO Log_Bank0
Log_Bank1 MOVF 0x7e, W
MOVWF FSR
MOVF 0x7b, W
MOVWF INDF
Stop_Log NOP
NOP
NOP
NOP
NOP
RETURN
Check_Loc MOVLW 0x64
XORWF 0x7e, W
BTFSC STATUS, 0x2
GOTO Stop_Log
Log_Bank0 INCF 0x7e, F
MOVF 0x7e, W
MOVWF FSR
MOVF 0x7b, W
MOVWF INDF
RETURN
Memo_Log BTFSC TMR0, 0x2
GOTO Check_Ins_Log
Memo_Log_0 BTFSC TMR1H, 0x3
CALL Def_Count0
MOVLW 0x9f
MOVWF 0x7e
Memo_Log_1 BTFSC TMR1H, 0x1
RETURN
BSF PORTA, 0
MOVLW 0x8
MOVWF 0x77
MOVF 0x7c, W
MOVWF 0x75
MOVF 0x7d, W
CALL i2c_wr
MOVF 0x7e, W
MOVWF FSR
Memo_Loop INCF 0x7e, F
INCF FSR, F
MOVF INDF, W
CALL i2cw_byte
DECFSZ 0x7f, F
GOTO Conta_Page
BTFSS TMR1H, 0x3
GOTO Exit_da_Log
CALL Re_MemoLog_bk0
Conta_Page DECFSZ 0x77, F
GOTO Memo_Loop
CALL Incr_Page
GOTO Memo_Log_1
Check_Ins_Log MOVF 0x73, W
XORWF 0x72, W
BTFSC STATUS, 0x2
GOTO Memo_Log_0
BCF TMR1H, 0x3
MOVLW 0x9f
MOVWF 0x7e
RETURN
Def_Count0 MOVLW 0x41
SUBWF 0x7e, W
MOVWF 0x78
MOVLW 0x50
MOVWF 0x7f
RETURN
Exit_da_Log BCF PORTA, 0
MOVLW 0x9f
MOVWF 0x7e
Incr_Page CALL i2c_stop
BTFSC TMR1H, 0x2
GOTO Aumenta_step
MOVLW 0x8
Incr_pg ADDWF 0x7d, F
BTFSC STATUS, 0
INCF 0x7c, F
Aumenta_step MOVLW 0x20
GOTO Incr_pg
Re_MemoLog_bk0 BCF TMR1H, 0x3
MOVF 0x78, W
MOVWF 0x7f
MOVLW 0x41
MOVWF 0x7e
RETURN
Memo_Full BTFSC TMR1H, 0x2
GOTO Zero_Full
CALL Hi_Low_Memo
Full BSF TMR1H, 0x1
BSF PORTA, 0
RETURN
Zero_Full CLRF 0x7c
CLRF 0x7d
CALL Hi_Low_Memo
BCF TMR1H, 0x2
BCF TMR1H, 0x1
BCF PORTA, 0
RETURN
Memo_Fill BSF TMR1H, 0x2
CLRF 0x7c
CLRF 0x7d
Zero_Fill BTFSS TMR1H, 0x2
GOTO Va_al_Main
MOVF 0x7c, W
MOVWF 0x75
MOVF 0x7d, W
CALL i2c_wr
Zero_Loop BSF PORTA, 0
MOVLW 0
CALL i2cw_byte
DECFSZ 0x77, F
GOTO Zero_Loop
CALL Incr_Page
BCF PORTA, 0
GOTO Zero_Fill
Va_al_Main CALL Reset_Indirizzo_Lettura
CALL Reverse_OFF
MOVLW 0x9f
MOVWF 0x7e
GOTO Main
Hi_Low_Memo MOVF 0x7c, W
BSF STATUS, 0x5
MOVWF RCREG
MOVLW 0x66
MOVWF 0x1b
CALL Write
MOVF 0x7d, W
BSF STATUS, 0x5
MOVWF RCREG
MOVLW 0x67
MOVWF 0x1b
CALL Write
RETURN
Switch_Log BTFSC TMR0, 0
GOTO Riattiva_Log
BTFSS TMR1L, 0x1
RETURN
BCF TMR1L, 0x1
BSF TMR0, 0
RETURN
Riattiva_Log BSF TMR1L, 0x1
BCF TMR0, 0
RETURN
Wait_Tx BTFSS PORTB, 0x7
GOTO Tx_CAM_SC
BTFSS PORTB, 0
GOTO Tx_SC_CAM
GOTO Wait_Tx
Tx_SC_CAM CALL Delay_0E
MOVLW 0x7f
TRIS PORTB
CLRF 0x26
BCF PORTB, 0x7
CALL Delay_1A
MOVLW 0x8
MOVWF 0x28
BCF STATUS, 0
Label_001F RRF 0x26, F
BTFSS PORTB, 0
GOTO Label_001D
BSF PORTB, 0x7
BSF 0x26, 0x7
GOTO Label_001E
Label_001D BCF PORTB, 0x7
Label_001E CALL Delay_1A
DECFSZ 0x28, F
GOTO Label_001F
BTFSS PORTB, 0
BCF PORTB, 0x7
BTFSC PORTB, 0
BSF PORTB, 0x7
CALL Delay_1A
BSF PORTB, 0x7
MOVLW 0xff
TRIS PORTB
BTFSS TMR1L, 0x1
GOTO Delay_1A
MOVF 0x26, W
CALL Log
MOVLW 0x2
GOTO Delay
Tx_CAM_SC CALL Delay_0E
MOVLW 0xfe
TRIS PORTB
CLRF 0x26
BCF PORTB, 0
CALL Delay_1A
MOVLW 0x8
MOVWF 0x28
BCF STATUS, 0
Label_0022 RRF 0x26, F
BTFSS PORTB, 0x7
GOTO Label_0020
BSF PORTB, 0
BSF 0x26, 0x7
GOTO Label_0021
Label_0020 BCF PORTB, 0
Label_0021 CALL Delay_1A
DECFSZ 0x28, F
GOTO Label_0022
BTFSS PORTB, 0x7
BCF PORTB, 0
BTFSC PORTB, 0x7
BSF PORTB, 0
CALL Delay_1A
BSF PORTB, 0
MOVLW 0xff
TRIS PORTB
BTFSS TMR1L, 0x1
GOTO Delay_1A
MOVF 0x26, W
CALL Log
MOVLW 0x2
GOTO Delay
Delay_0E NOP
MOVLW 0xe
GOTO Delay
Delay_1A NOP
MOVLW 0x1a
Delay MOVWF 0x3e
Delay_Loop DECFSZ 0x3e, F
GOTO Delay_Loop
RETLW 0
Receive CLRF 0x6a
CLRF 0x69
CLRF 0x68
GOTO Loop_2
Loop_3 INCF 0x6a, F
Loop_2 INCF 0x69, F
Loop_1 INCF 0x68, F
BTFSS PORTB, 0x7
GOTO Receive_CAM
BTFSS PORTB, 0
GOTO Receive_SC
MOVF 0x68, W
BTFSS STATUS, 0x2
GOTO Loop_1
MOVF 0x69, W
BTFSS STATUS, 0x2
GOTO Loop_2
MOVF 0x6a, W
XORLW 0x5
BTFSS STATUS, 0x2
GOTO Loop_3
BTFSC TMR1L, 0x4
GOTO Receive_2
BTFSS TMR1L, 0x1
GOTO Receive_2
BTFSC TMR1H, 0x3
CALL Memo_Log
MOVLW 0x9f
SUBWF 0x7e, W
MOVWF 0x7f
BTFSS STATUS, 0x2
CALL Memo_Log
Receive_2 CLRF 0x76
MOVF 0x7a, F
BTFSS STATUS, 0x2
CALL PIN_Check
CLRF 0x6a
GOTO Loop_2
Receive_SC MOVLW 0x2a
CALL Delay
MOVLW 0x9
MOVWF 0x41
Label_0028 BCF STATUS, 0
BTFSC PORTB, 0
BSF STATUS, 0
RRF 0x3d, F
CALL Delay_1A
DECFSZ 0x41, F
GOTO Label_0028
Ruota_3D RLF 0x3d, F
BTFSC TMR1L, 0x4
GOTO No_log
BTFSC TMR1L, 0x1
GOTO Jump_4
No_log MOVLW 0x27
MOVWF 0x3e
Delay_29 DECFSZ 0x3e, F
GOTO Delay_29
MOVF 0x3d, W
RETURN
Jump_4 BTFSS TMR1H, 0x7
GOTO Jump_5
MOVF 0x3d, W
CALL Log
MOVLW 0xd
MOVWF 0x3e
GOTO Delay_29
Jump_5 MOVLW 0x20
MOVWF 0x3e
GOTO Delay_29
Receive_CAM MOVLW 0x2a
CALL Delay
MOVLW 0x9
MOVWF 0x41
Label_0029 BCF STATUS, 0
BTFSC PORTB, 0x7
BSF STATUS, 0
RRF 0x3d, F
CALL Delay_1A
DECFSZ 0x41, F
GOTO Label_0029
GOTO Ruota_3D
Byte_to_CARD MOVWF 0x7b
MOVWF 0x3d
MOVLW 0x32
CALL Delay
MOVLW 0xfe
TRIS PORTB
CLRF 0x40
BCF PORTB, 0
MOVLW 0x8
MOVWF 0x41
Label_002C CALL Delay_1A
RRF 0x3d, F
RLF 0x3d, W
ANDLW 0x1
XORWF 0x40, F
XORWF PORTB, W
XORWF PORTB, F
DECFSZ 0x41, F
GOTO Label_002C
CALL Delay_1A
MOVF 0x40, W
XORWF PORTB, W
XORWF PORTB, F
CALL Delay_1A
MOVLW 0xff
TRIS PORTB
BTFSC TMR1L, 0x1
GOTO Jump_2
MOVLW 0x27
GOTO Delay
Jump_2 MOVF 0x7b, W
CALL Log
MOVLW 0xf
GOTO Delay
Byte_to_CAM MOVWF 0x7b
MOVWF 0x3d
MOVLW 0x32
CALL Delay
MOVLW 0x7f
TRIS PORTB
CLRF 0x40
BCF PORTB, 0x7
MOVLW 0x8
MOVWF 0x41
Label_002D CALL Delay_1A
RRF 0x3d, F
RRF 0x3d, W
ANDLW 0x80
XORWF 0x40, F
XORWF PORTB, W
XORWF PORTB, F
DECFSZ 0x41, F
GOTO Label_002D
CALL Delay_1A
MOVF 0x40, W
XORWF PORTB, W
XORWF PORTB, F
CALL Delay_1A
MOVLW 0xff
TRIS PORTB
BTFSC TMR1L, 0x1
GOTO Jump_3
MOVLW 0x27
GOTO Delay
Jump_3 MOVF 0x7b, W
CALL Log
MOVLW 0xf
GOTO Delay
Send_5byte MOVF 0x2a, W
CALL Byte_to_CARD
MOVF 0x20, W
CALL Byte_to_CARD
MOVF 0x21, W
CALL Byte_to_CARD
MOVF 0x22, W
CALL Byte_to_CARD
MOVF 0x23, W
GOTO Byte_to_CARD
Send_Corpo MOVLW 0x2b
Send_sw_corpo MOVWF FSR
Label_0030 MOVF INDF, W
CALL Byte_to_CARD
INCF FSR, F
BCF STATUS, 0x5
DECFSZ 0x23, F
GOTO Label_0030
RETURN
Converte_Byte MOVWF 0x7b
ANDLW 0xf0
MOVWF 0x6b
SWAPF 0x6b, W
ADDLW 0xf6
BTFSC STATUS, 0
GOTO A_F
ADDLW 0x3a
BSF STATUS, 0x6
BSF STATUS, 0x7
MOVWF INDF
INCF FSR, F
BCF STATUS, 0x6
BCF STATUS, 0x7
_Parte2 MOVF 0x7b, W
ANDLW 0xf
MOVWF 0x6b
ADDLW 0xf6
BTFSC STATUS, 0
GOTO A_F_
ADDLW 0x3a
BSF STATUS, 0x6
BSF STATUS, 0x7
MOVWF INDF
INCF FSR, F
BCF STATUS, 0x6
BCF STATUS, 0x7
RETURN
A_F MOVF 0x6b, W
SWAPF 0x6b, W
ADDLW 0x37
BSF STATUS, 0x6
BSF STATUS, 0x7
MOVWF INDF
INCF FSR, F
BCF STATUS, 0x6
BCF STATUS, 0x7
GOTO _Parte2
A_F_ MOVF 0x6b, W
ADDLW 0x37
BSF STATUS, 0x6
BSF STATUS, 0x7
MOVWF INDF
INCF FSR, F
BCF STATUS, 0x6
BCF STATUS, 0x7
RETURN
Hi_Low_Memo_1 MOVF 0x6c, W
BSF STATUS, 0x5
MOVWF RCREG
MOVLW 0x6b
MOVWF 0x1b
CALL Write
MOVF 0x6d, W
BSF STATUS, 0x5
MOVWF RCREG
MOVLW 0x6c
MOVWF 0x1b
CALL Write
RETURN
Legge_Indirizzo MOVLW 0x6b
CALL Read_EE
MOVWF 0x6c
MOVLW 0x6c
CALL Read_EE
MOVWF 0x6d
RETURN
Dump_Card CALL LOG
bloker seca 2
- Zacky
- הודעות: 4354
- הצטרף: 22 דצמבר 2003, 20:05