.include "1200def.inc" .equ MINPR = 1 .equ MAXPR = 20 .equ MINCH = 2 .equ MAXCH = 69 .equ MSGBSYTM = $ff ;Message busy time .equ UHFBAS = $1fe2 .equ VHF3BAS = $0d62 .equ VHF1BAS = $0572 .equ SDAP = 6 .equ SCLP = 5 ;***** Flags Bit Definitions ***** .equ KEYPR = 0 .equ CHANN = 1 .equ MSGBSY = 2 .equ NORPT = 3 .equ WUP = 4 ;***** Scanr Bit Definitions ***** .equ DGT2 = 0 .equ DGT1 = 1 .def dig1 = r1 .def dig2 = r2 .def dig3 = r3 .def dig4 = r4 .def m1 = r5 .def m2 = r6 .def timr1 = r8 .def timr2 = r9 .def temp4 = r7 .def scanr = r16 .def temp1 = r17 .def temp2 = r18 .def temp3 = r19 .def code = r20 .def char = r21 .def key_no = r22 .def key_rpt = r23 .def ch_no = r24 .def flags = r25 .def rptcnt = r26 .def pr_no = r27 .def cnt1 = r28 .def cnt2 = r29 .def port3202 = r10 .def plladdr = r30 .cseg .org $0000 rjmp RESET ;**************************************************************************************** ;* Startup Routine ;**************************************************************************************** INIT: ldi temp1,0b11111111 ;Port B is an output port out DDRB,temp1 ldi temp1,0b00010011 ;b2, b3 of Port D are inputs out DDRD,temp1 ;also b5, b6 ldi temp1,0b00001101 ;Pull up inputs of Port D, b5, b6 open collector mov scanr,temp1 ;Start scan with pattern '01' out PORTD,scanr clr flags ;Reset flags ldi pr_no,2 ;Set Program to 1 mov temp2,pr_no rcall EERD ;Read channel of Program 1 from EEPROM mov ch_no,temp3 mov cnt1,pr_no sbr flags,1<