2007年5月30日星期三

DEMO PROGRAM MDT10P716

;Registers
IAR EQU 00H
RTCC EQU 01H
PCL EQU 02H
STATUS EQU 03H
MSR EQU 04H
PORTA EQU 05H
PORTB EQU 06H
PORTC EQU 07H
;
W EQU 0H
R EQU 1H
;Flags
CF EQU 0H
HC EQU 1H
ZF EQU 2H
PF EQU 3H
TF EQU 4H
;
ORG 0000H ;Addr Org-Code
LJUMP 0160H ;0000 2960
ADDWI 0FFH ;0001 37FF
ADDWI 0FFH ;0002 37FF
ADDWI 0FFH ;0003 37FF
LDWI 000H ;0004 3A00
STWR 00AH ;0005 118A
LJUMP 0010H ;0006 2810
ADDWI 0FFH ;0007 37FF
ADDWI 0FFH ;0008 37FF
ADDWI 0FFH ;0009 37FF
ADDWI 0FFH ;000A 37FF
ADDWI 0FFH ;000B 37FF
ADDWI 0FFH ;000C 37FF
ADDWI 0FFH ;000D 37FF
ADDWI 0FFH ;000E 37FF
ADDWI 0FFH ;000F 37FF
LDR STATUS,W ;0010 1803
BCR STATUS,5 ;0011 0283
STWR 07BH ;0012 11FB
BSR STATUS,5 ;0013 0A83
BTSC 00CH,6 ;0014 070C
LJUMP 0052H ;0015 2852
BCR STATUS,5 ;0016 0283
BTSC 00CH,2 ;0017 050C
LJUMP 006BH ;0018 286B
BTSC 00DH,0 ;0019 040D
LJUMP 006BH ;001A 286B
BSR STATUS,5 ;001B 0A83
BTSC 00BH,4 ;001C 060B
LJUMP 0040H ;001D 2840
BTSC 00BH,3 ;001E 058B
LJUMP 0034H ;001F 2834
BCR STATUS,5 ;0020 0283
BTSC 00BH,2 ;0021 050B
LJUMP 0030H ;0022 2830
BTSC 00CH,3 ;0023 058C
LJUMP 0077H ;0024 2877
BTSC 00CH,0 ;0025 040C
LJUMP 005CH ;0026 285C
BTSC 00CH,1 ;0027 048C
LJUMP 00ACH ;0028 28AC
RTFI ;0029 1009
ADDWI 0FFH ;002A 37FF
ADDWI 0FFH ;002B 37FF
ADDWI 0FFH ;002C 37FF
ADDWI 0FFH ;002D 37FF
ADDWI 0FFH ;002E 37FF
ADDWI 0FFH ;002F 37FF
BCR 00BH,2 ;0030 010B
BSR 07CH,2 ;0031 097C
LCALL 00B6H ;0032 20B6
RTFI ;0033 1009
BCR STATUS,5 ;0034 0283
BCR 00BH,0 ;0035 000B
BSR STATUS,5 ;0036 0A83
BCR STATUS,CF ;0037 0003
RLR PORTB,R ;0038 1586
BCR STATUS,5 ;0039 0283
BCR STATUS,CF ;003A 0003
CLRR PORTB ;003B 1106
RLR 07CH,R ;003C 15FC
BCR 00BH,0 ;003D 000B
LCALL 00B6H ;003E 20B6
RTFI ;003F 1009
BCR STATUS,5 ;0040 0283
BCR 00BH,1 ;0041 008B
BCR 00BH,4 ;0042 020B
BSR STATUS,5 ;0043 0A83
BTSC RTCC,6 ;0044 0701
LJUMP 004BH ;0045 284B
BCR STATUS,5 ;0046 0283
LDR PORTB,W ;0047 1806
BSR STATUS,5 ;0048 0A83
BCR PORTB,0 ;0049 0006
BSR PORTB,4 ;004A 0A06
BCR STATUS,5 ;004B 0283
CLRR PORTB ;004C 1106
BSR 07CH,0 ;004D 087C
BSR 07CH,3 ;004E 09FC
BCR 00BH,0 ;004F 000B
LCALL 00B6H ;0050 20B6
RTFI ;0051 1009
BSR STATUS,5 ;0052 0A83
CLRR PORTB ;0053 1106
BCR STATUS,5 ;0054 0283
BCR 00CH,6 ;0055 030C
COMR 01EH,W ;0056 1F1E
STWR PORTB ;0057 1186
LCALL 0380H ;0058 2380
LCALL 0526H ;0059 2526
LCALL 00B6H ;005A 20B6
RTFI ;005B 1009
BCR STATUS,5 ;005C 0283
CLRR 023H ;005D 1123
BCR 00CH,0 ;005E 000C
BSR STATUS,5 ;005F 0A83
BCR 00CH,0 ;0060 000C
BCR STATUS,5 ;0061 0283
LCALL 013DH ;0062 213D
STWR PORTB ;0063 1186
LCALL 0380H ;0064 2380
LDR 023H,W ;0065 1823
XORWI 00AH ;0066 360A
BTSC STATUS,ZF ;0067 0503
RTFI ;0068 1009
INCR 023H,R ;0069 19A3
LJUMP 0062H ;006A 2862
BSR STATUS,5 ;006B 0A83
BCR 00CH,2 ;006C 010C
BCR 00DH,0 ;006D 000D
BCR STATUS,5 ;006E 0283
BCR 010H,0 ;006F 0010
BCR 012H,2 ;0070 0112
BCR 00CH,2 ;0071 010C
BCR 00DH,0 ;0072 000D
BCR STATUS,5 ;0073 0283
LDWI 0F3H ;0074 3AF3
STWR 023H ;0075 11A3
RTFI ;0076 1009
BSR STATUS,5 ;0077 0A83
BCR 00CH,3 ;0078 018C
BTSC 014H,5 ;0079 0694
LJUMP 008EH ;007A 288E
BCR STATUS,5 ;007B 0283
LDR 013H,W ;007C 1813
STWR 029H ;007D 11A9
BCR 00CH,3 ;007E 018C
NOP ;007F 1000
BSR STATUS,5 ;0080 0A83
CLRWT ;0081 1001
BTSC 014H,4 ;0082 0614
LJUMP 00ABH ;0083 28AB
BTSS 014H,0 ;0084 0C14
LJUMP 0080H ;0085 2880
BCR STATUS,5 ;0086 0283
CLRWT ;0087 1001
BTSS 00CH,3 ;0088 0D8C
LJUMP 0080H ;0089 2880
BCR STATUS,5 ;008A 0283
CLRWT ;008B 1001
BTSC 014H,6 ;008C 0714
LJUMP 00ABH ;008D 28AB
BSR STATUS,5 ;008E 0A83
CLRWT ;008F 1001
BTSC 014H,4 ;0090 0614
LJUMP 00ABH ;0091 28AB
BTSS 014H,0 ;0092 0C14
LJUMP 008EH ;0093 288E
BTSS 014H,5 ;0094 0E94
LJUMP 0080H ;0095 2880
BCR STATUS,5 ;0096 0283
CLRWT ;0097 1001
BTSS 00CH,3 ;0098 0D8C
LJUMP 008EH ;0099 288E
BCR STATUS,5 ;009A 0283
CLRWT ;009B 1001
BTSC 014H,6 ;009C 0714
LJUMP 00ABH ;009D 28AB
BCR STATUS,5 ;009E 0283
LDR 013H,W ;009F 1813
STWR IAR ;00A0 1180
XORWI 080H ;00A1 3680
BTSC STATUS,ZF ;00A2 0503
LJUMP 00ABH ;00A3 28AB
INCR MSR,R ;00A4 1984
LDR MSR,W ;00A5 1804
XORWI 040H ;00A6 3640
BTSC STATUS,ZF ;00A7 0503
LJUMP 00ABH ;00A8 28AB
BCR 00CH,3 ;00A9 018C
LJUMP 008EH ;00AA 288E
RTFI ;00AB 1009
BSR STATUS,5 ;00AC 0A83
BCR 00CH,1 ;00AD 008C
BSR STATUS,5 ;00AE 0A83
CLRR PORTB ;00AF 1106
BCR STATUS,5 ;00B0 0283
LCALL 0380H ;00B1 2380
LDWI 000H ;00B2 3A00
STWR PORTB ;00B3 1186
BCR STATUS,5 ;00B4 0283
RTFI ;00B5 1009
BCR STATUS,5 ;00B6 0283
LDR 07BH,W ;00B7 187B
STWR STATUS ;00B8 1183
RET ;00B9 1004
ADDWI 0FFH ;00BA 37FF
ADDWI 0FFH ;00BB 37FF
ADDWI 0FFH ;00BC 37FF
ADDWI 0FFH ;00BD 37FF
ADDWI 0FFH ;00BE 37FF
ADDWI 0FFH ;00BF 37FF
ADDWI 0FFH ;00C0 37FF
ADDWI 0FFH ;00C1 37FF
ADDWI 0FFH ;00C2 37FF
ADDWI 0FFH ;00C3 37FF
ADDWI 0FFH ;00C4 37FF
ADDWI 0FFH ;00C5 37FF
ADDWI 0FFH ;00C6 37FF
ADDWI 0FFH ;00C7 37FF
ADDWI 0FFH ;00C8 37FF
ADDWI 0FFH ;00C9 37FF
ADDWI 0FFH ;00CA 37FF
ADDWI 0FFH ;00CB 37FF
ADDWI 0FFH ;00CC 37FF
ADDWI 0FFH ;00CD 37FF
ADDWI 0FFH ;00CE 37FF
ADDWI 0FFH ;00CF 37FF
ADDWI 0FFH ;00D0 37FF
ADDWI 0FFH ;00D1 37FF
ADDWI 0FFH ;00D2 37FF
ADDWI 0FFH ;00D3 37FF
ADDWI 0FFH ;00D4 37FF
ADDWI 0FFH ;00D5 37FF
ADDWI 0FFH ;00D6 37FF
ADDWI 0FFH ;00D7 37FF
ADDWI 0FFH ;00D8 37FF
ADDWI 0FFH ;00D9 37FF
ADDWI 0FFH ;00DA 37FF
ADDWI 0FFH ;00DB 37FF
ADDWI 0FFH ;00DC 37FF
ADDWI 0FFH ;00DD 37FF
ADDWI 0FFH ;00DE 37FF
ADDWI 0FFH ;00DF 37FF
BCR STATUS,5 ;00E0 0283
LDR 07FH,W ;00E1 187F
ANDWI 0F0H ;00E2 34F0
BTSS STATUS,ZF ;00E3 0D03
CLRR 07FH ;00E4 117F
LDR 07FH,W ;00E5 187F
ADDWR PCL,R ;00E6 1B82
LJUMP 0160H ;00E7 2960
LJUMP 03B0H ;00E8 2BB0
LJUMP 03F0H ;00E9 2BF0
LJUMP 0780H ;00EA 2F80
LJUMP 0240H ;00EB 2A40
LJUMP 0300H ;00EC 2B00
LJUMP 0320H ;00ED 2B20
LJUMP 0420H ;00EE 2C20
LJUMP 04C0H ;00EF 2CC0
LJUMP 0540H ;00F0 2D40
LJUMP 06C0H ;00F1 2EC0
LJUMP 05E0H ;00F2 2DE0
LJUMP 0640H ;00F3 2E40
LJUMP 00F5H ;00F4 28F5
CLRR 07FH ;00F5 117F
BSR STATUS,5 ;00F6 0A83
LDWI 0FFH ;00F7 3AFF
STWR PORTA ;00F8 1185
STWR PORTB ;00F9 1186
STWR PORTC ;00FA 1187
SLEEP ;00FB 1002
LDWI 011H ;00FC 3A11
STWR 07EH ;00FD 11FE
LJUMP 0160H ;00FE 2960
ADDWI 0FFH ;00FF 37FF
ADDWI 0FFH ;0100 37FF
ADDWI 0FFH ;0101 37FF
ADDWI 0FFH ;0102 37FF
ADDWI 0FFH ;0103 37FF
ADDWI 0FFH ;0104 37FF
ADDWI 0FFH ;0105 37FF
ADDWI 0FFH ;0106 37FF
ADDWI 0FFH ;0107 37FF
ADDWI 0FFH ;0108 37FF
ADDWI 0FFH ;0109 37FF
ADDWI 0FFH ;010A 37FF
ADDWI 0FFH ;010B 37FF
ADDWI 0FFH ;010C 37FF
ADDWI 0FFH ;010D 37FF
ADDWI 0FFH ;010E 37FF
ADDWI 0FFH ;010F 37FF
ADDWI 0FFH ;0110 37FF
ADDWI 0FFH ;0111 37FF
ADDWI 0FFH ;0112 37FF
ADDWI 0FFH ;0113 37FF
ADDWI 0FFH ;0114 37FF
ADDWI 0FFH ;0115 37FF
ADDWI 0FFH ;0116 37FF
ADDWI 0FFH ;0117 37FF
ADDWI 0FFH ;0118 37FF
ADDWI 0FFH ;0119 37FF
ADDWI 0FFH ;011A 37FF
ADDWI 0FFH ;011B 37FF
ADDWI 0FFH ;011C 37FF
ADDWI 0FFH ;011D 37FF
ADDWI 0FFH ;011E 37FF
ADDWI 0FFH ;011F 37FF
ADDWI 0FFH ;0120 37FF
ADDWI 0FFH ;0121 37FF
ADDWI 0FFH ;0122 37FF
ADDWI 0FFH ;0123 37FF
ADDWI 0FFH ;0124 37FF
ADDWI 0FFH ;0125 37FF
ADDWI 0FFH ;0126 37FF
ADDWI 0FFH ;0127 37FF
ADDWI 0FFH ;0128 37FF
ADDWI 0FFH ;0129 37FF
ADDWI 0FFH ;012A 37FF
ADDWI 0FFH ;012B 37FF
ADDWI 0FFH ;012C 37FF
ADDWI 0FFH ;012D 37FF
ADDWI 0FFH ;012E 37FF
ADDWI 0FFH ;012F 37FF
BCR STATUS,5 ;0130 0283
LDWI 001H ;0131 3A01
STWR 00AH ;0132 118A
LDR 023H,W ;0133 1823
ADDWR PCL,R ;0134 1B82
RTIW 031H ;0135 3131
RTIW 021H ;0136 3121
RTIW 011H ;0137 3111
RTIW 001H ;0138 3101
RTIW 001H ;0139 3101
RTIW 011H ;013A 3111
RTIW 021H ;013B 3121
RTIW 031H ;013C 3131
BCR STATUS,5 ;013D 0283
LDWI 001H ;013E 3A01
STWR 00AH ;013F 118A
LDR 023H,W ;0140 1823
ADDWR PCL,R ;0141 1B82
RTIW 0FEH ;0142 31FE
RTIW 0FDH ;0143 31FD
RTIW 0FBH ;0144 31FB
RTIW 0F7H ;0145 31F7
RTIW 0EFH ;0146 31EF
RTIW 0DFH ;0147 31DF
RTIW 0BFH ;0148 31BF
RTIW 07FH ;0149 317F
RTIW 0FFH ;014A 31FF
RTIW 000H ;014B 3100
RTIW 0FFH ;014C 31FF
RTIW 000H ;014D 3100
ADDWI 0FFH ;014E 37FF
ADDWI 0FFH ;014F 37FF
ADDWI 0FFH ;0150 37FF
ADDWI 0FFH ;0151 37FF
ADDWI 0FFH ;0152 37FF
ADDWI 0FFH ;0153 37FF
ADDWI 0FFH ;0154 37FF
ADDWI 0FFH ;0155 37FF
ADDWI 0FFH ;0156 37FF
ADDWI 0FFH ;0157 37FF
ADDWI 0FFH ;0158 37FF
ADDWI 0FFH ;0159 37FF
ADDWI 0FFH ;015A 37FF
ADDWI 0FFH ;015B 37FF
ADDWI 0FFH ;015C 37FF
ADDWI 0FFH ;015D 37FF
ADDWI 0FFH ;015E 37FF
ADDWI 0FFH ;015F 37FF
LDWI 000H ;0160 3A00
STWR 00AH ;0161 118A
BSR STATUS,5 ;0162 0A83
CLRR PORTB ;0163 1106
BCR STATUS,5 ;0164 0283
BTSS STATUS,TF ;0165 0E03
LJUMP 0218H ;0166 2A18
BTSS STATUS,PF ;0167 0D83
LJUMP 016AH ;0168 296A
LJUMP 01B0H ;0169 29B0
BTSS STATUS,PF ;016A 0D83
LJUMP 0171H ;016B 2971
BCR STATUS,5 ;016C 0283
SLEEP ;016D 1002
LDWI 011H ;016E 3A11
STWR 07EH ;016F 11FE
LJUMP 0160H ;0170 2960
BSR STATUS,5 ;0171 0A83
LDWI 007H ;0172 3A07
STWR 01FH ;0173 119F
BCR STATUS,5 ;0174 0283
INCR 07FH,R ;0175 19FF
LDWI 071H ;0176 3A71
STWR 07EH ;0177 11FE
NOP ;0178 1000
NOP ;0179 1000
LJUMP 00E0H ;017A 28E0
ADDWI 0FFH ;017B 37FF
ADDWI 0FFH ;017C 37FF
ADDWI 0FFH ;017D 37FF
ADDWI 0FFH ;017E 37FF
ADDWI 0FFH ;017F 37FF
ADDWI 0FFH ;0180 37FF
ADDWI 0FFH ;0181 37FF
ADDWI 0FFH ;0182 37FF
ADDWI 0FFH ;0183 37FF
ADDWI 0FFH ;0184 37FF
ADDWI 0FFH ;0185 37FF
ADDWI 0FFH ;0186 37FF
ADDWI 0FFH ;0187 37FF
ADDWI 0FFH ;0188 37FF
ADDWI 0FFH ;0189 37FF
ADDWI 0FFH ;018A 37FF
ADDWI 0FFH ;018B 37FF
ADDWI 0FFH ;018C 37FF
ADDWI 0FFH ;018D 37FF
ADDWI 0FFH ;018E 37FF
ADDWI 0FFH ;018F 37FF
ADDWI 0FFH ;0190 37FF
ADDWI 0FFH ;0191 37FF
ADDWI 0FFH ;0192 37FF
ADDWI 0FFH ;0193 37FF
ADDWI 0FFH ;0194 37FF
ADDWI 0FFH ;0195 37FF
ADDWI 0FFH ;0196 37FF
ADDWI 0FFH ;0197 37FF
ADDWI 0FFH ;0198 37FF
ADDWI 0FFH ;0199 37FF
ADDWI 0FFH ;019A 37FF
ADDWI 0FFH ;019B 37FF
ADDWI 0FFH ;019C 37FF
ADDWI 0FFH ;019D 37FF
ADDWI 0FFH ;019E 37FF
ADDWI 0FFH ;019F 37FF
ADDWI 0FFH ;01A0 37FF
ADDWI 0FFH ;01A1 37FF
ADDWI 0FFH ;01A2 37FF
ADDWI 0FFH ;01A3 37FF
ADDWI 0FFH ;01A4 37FF
ADDWI 0FFH ;01A5 37FF
ADDWI 0FFH ;01A6 37FF
ADDWI 0FFH ;01A7 37FF
ADDWI 0FFH ;01A8 37FF
ADDWI 0FFH ;01A9 37FF
ADDWI 0FFH ;01AA 37FF
ADDWI 0FFH ;01AB 37FF
ADDWI 0FFH ;01AC 37FF
ADDWI 0FFH ;01AD 37FF
ADDWI 0FFH ;01AE 37FF
ADDWI 0FFH ;01AF 37FF
BSR STATUS,5 ;01B0 0A83
LDWI 007H ;01B1 3A07
STWR 01FH ;01B2 119F
BCR STATUS,5 ;01B3 0283
CLRR 07DH ;01B4 117D
BSR STATUS,5 ;01B5 0A83
BTSC 00EH,1 ;01B6 048E
LJUMP 01BFH ;01B7 29BF
BCR STATUS,5 ;01B8 0283
CLRR 07FH ;01B9 117F
BSR STATUS,5 ;01BA 0A83
BSR 00EH,1 ;01BB 088E
LCALL 01F6H ;01BC 21F6
BSR STATUS,5 ;01BD 0A83
BCR RTCC,3 ;01BE 0181
BCR STATUS,5 ;01BF 0283
LDWI 071H ;01C0 3A71
STWR 07EH ;01C1 11FE
LDWI 01BH ;01C2 3A1B
STWR STATUS ;01C3 1183
XORWI 01BH ;01C4 361B
BTSS STATUS,ZF ;01C5 0D03
BSR 07DH,2 ;01C6 097D
LDWI 01EH ;01C7 3A1E
STWR STATUS ;01C8 1183
ADDWI 0F0H ;01C9 37F0
BTSS STATUS,CF ;01CA 0C03
BSR 07DH,0 ;01CB 087D
LDWI 01DH ;01CC 3A1D
STWR STATUS ;01CD 1183
ADDWI 0D3H ;01CE 37D3
BTSS STATUS,HC ;01CF 0C83
BSR 07DH,1 ;01D0 08FD
LDWI 0AAH ;01D1 3AAA
STWR 07CH ;01D2 11FC
BSR STATUS,5 ;01D3 0A83
LDWI 055H ;01D4 3A55
STWR 07CH ;01D5 11FC
LDWI 07FH ;01D6 3A7F
LDR 07CH,W ;01D7 187C
BCR STATUS,5 ;01D8 0283
XORWR 07CH,W ;01D9 147C
XORWI 0FFH ;01DA 36FF
BTSS STATUS,ZF ;01DB 0D03
BSR 07DH,5 ;01DC 0AFD
LDR 07DH,W ;01DD 187D
STWR PORTB ;01DE 1186
BSR STATUS,5 ;01DF 0A83
LDWI 000H ;01E0 3A00
STWR PORTB ;01E1 1186
LDWI 010H ;01E2 3A10
STWR PORTA ;01E3 1185
BCR STATUS,5 ;01E4 0283
LDWI 006H ;01E5 3A06
STWR 07CH ;01E6 11FC
LCALL 0380H ;01E7 2380
COMR PORTB,R ;01E8 1F86
DECRSZ 07CH,R ;01E9 1EFC
LJUMP 01E7H ;01EA 29E7
LDWI 0FFH ;01EB 3AFF
STWR PORTB ;01EC 1186
LDWI 000H ;01ED 3A00
STWR PORTA ;01EE 1185
NOP ;01EF 1000
SLEEP ;01F0 1002
LDWI 098H ;01F1 3A98
STWR 07CH ;01F2 11FC
LDWI 011H ;01F3 3A11
STWR 07EH ;01F4 11FE
LJUMP 0160H ;01F5 2960
BSR STATUS,5 ;01F6 0A83
CLRR PORTA ;01F7 1105
CLRR PORTB ;01F8 1106
BCR STATUS,5 ;01F9 0283
CLRR 027H ;01FA 1127
CLRR PORTA ;01FB 1105
CLRR PORTB ;01FC 1106
INCR PORTB,R ;01FD 1986
BCR STATUS,5 ;01FE 0283
LDR 027H,W ;01FF 1827
BSR STATUS,5 ;0200 0A83
ANDWI 007H ;0201 3407
XORWI 088H ;0202 3688
STWR RTCC ;0203 1181
BCR STATUS,5 ;0204 0283
LDWI 071H ;0205 3A71
STWR 07EH ;0206 11FE
SLEEP ;0207 1002
BTSC STATUS,TF ;0208 0603
LJUMP 035AH ;0209 2B5A
BCR STATUS,5 ;020A 0283
BCR STATUS,CF ;020B 0003
RLR PORTB,R ;020C 1586
BTSC STATUS,CF ;020D 0403
RET ;020E 1004
INCR 027H,R ;020F 19A7
LDR 027H,W ;0210 1827
ANDWI 0F8H ;0211 34F8
BTSC STATUS,ZF ;0212 0503
LJUMP 01FEH ;0213 29FE
SLEEP ;0214 1002
LDWI 011H ;0215 3A11
STWR 07EH ;0216 11FE
LJUMP 0160H ;0217 2960
BTSS STATUS,PF ;0218 0D83
LJUMP 0223H ;0219 2A23
BCR STATUS,5 ;021A 0283
LDR 07EH,W ;021B 187E
XORWI 071H ;021C 3671
BTSS STATUS,ZF ;021D 0D03
LJUMP 035AH ;021E 2B5A
SLEEP ;021F 1002
LDWI 011H ;0220 3A11
STWR 07EH ;0221 11FE
LJUMP 0160H ;0222 2960
LDR 07EH,W ;0223 187E
XORWI 011H ;0224 3611
BTSS STATUS,ZF ;0225 0D03
LJUMP 035AH ;0226 2B5A
SLEEP ;0227 1002
LJUMP 0160H ;0228 2960
ADDWI 0FFH ;0229 37FF
ADDWI 0FFH ;022A 37FF
ADDWI 0FFH ;022B 37FF
ADDWI 0FFH ;022C 37FF
ADDWI 0FFH ;022D 37FF
ADDWI 0FFH ;022E 37FF
ADDWI 0FFH ;022F 37FF
ADDWI 0FFH ;0230 37FF
ADDWI 0FFH ;0231 37FF
ADDWI 0FFH ;0232 37FF
ADDWI 0FFH ;0233 37FF
ADDWI 0FFH ;0234 37FF
ADDWI 0FFH ;0235 37FF
ADDWI 0FFH ;0236 37FF
ADDWI 0FFH ;0237 37FF
ADDWI 0FFH ;0238 37FF
ADDWI 0FFH ;0239 37FF
ADDWI 0FFH ;023A 37FF
ADDWI 0FFH ;023B 37FF
ADDWI 0FFH ;023C 37FF
ADDWI 0FFH ;023D 37FF
ADDWI 0FFH ;023E 37FF
ADDWI 0FFH ;023F 37FF
BSR STATUS,5 ;0240 0A83
LDWI 010H ;0241 3A10
STWR PORTA ;0242 1185
BCR RTCC,4 ;0243 0201
BCR STATUS,5 ;0244 0283
COMR 07FH,W ;0245 1F7F
STWR PORTA ;0246 1185
CLRR RTCC ;0247 1101
LCALL 0380H ;0248 2380
BSR STATUS,5 ;0249 0A83
LDWI 0FFH ;024A 3AFF
STWR PORTA ;024B 1185
STWR PORTC ;024C 1187
LDWI 000H ;024D 3A00
STWR PORTB ;024E 1186
BCR STATUS,5 ;024F 0283
CLRWT ;0250 1001
COMR PORTA,W ;0251 1F05
STWR PORTB ;0252 1186
LDWI 01FH ;0253 3A1F
SUBWR PORTA,W ;0254 1C05
BTSS STATUS,ZF ;0255 0D03
LJUMP 0250H ;0256 2A50
BSR STATUS,5 ;0257 0A83
LDWI 0FFH ;0258 3AFF
STWR PORTB ;0259 1186
LDWI 000H ;025A 3A00
STWR PORTA ;025B 1185
BCR STATUS,5 ;025C 0283
CLRWT ;025D 1001
COMR PORTB,W ;025E 1F06
STWR PORTA ;025F 1185
LDWI 0FEH ;0260 3AFE
SUBWR PORTB,W ;0261 1C06
BTSS STATUS,ZF ;0262 0D03
LJUMP 025DH ;0263 2A5D
BSR STATUS,5 ;0264 0A83
BSR PORTA,4 ;0265 0A05
LDWI 000H ;0266 3A00
STWR PORTB ;0267 1186
BCR STATUS,5 ;0268 0283
COMR 07FH,W ;0269 1F7F
STWR PORTA ;026A 1185
CLRR RTCC ;026B 1101
CLRWT ;026C 1001
COMR PORTC,W ;026D 1F07
STWR PORTB ;026E 1186
LDWI 001H ;026F 3A01
SUBWR RTCC,W ;0270 1C01
BTSS STATUS,ZF ;0271 0D03
LJUMP 026CH ;0272 2A6C
BSR STATUS,5 ;0273 0A83
LDWI 0FFH ;0274 3AFF
STWR PORTB ;0275 1186
LDWI 00FH ;0276 3A0F
STWR PORTC ;0277 1187
BCR STATUS,5 ;0278 0283
CLRWT ;0279 1001
LDR PORTB,W ;027A 1806
STWR PORTC ;027B 1187
LDWI 002H ;027C 3A02
SUBWR RTCC,W ;027D 1C01
BTSS STATUS,ZF ;027E 0D03
LJUMP 0279H ;027F 2A79
SLEEP ;0280 1002
LDWI 011H ;0281 3A11
STWR 07EH ;0282 11FE
LJUMP 0160H ;0283 2960
ADDWI 0FFH ;0284 37FF
ADDWI 0FFH ;0285 37FF
ADDWI 0FFH ;0286 37FF
ADDWI 0FFH ;0287 37FF
ADDWI 0FFH ;0288 37FF
ADDWI 0FFH ;0289 37FF
ADDWI 0FFH ;028A 37FF
ADDWI 0FFH ;028B 37FF
ADDWI 0FFH ;028C 37FF
ADDWI 0FFH ;028D 37FF
ADDWI 0FFH ;028E 37FF
ADDWI 0FFH ;028F 37FF
ADDWI 0FFH ;0290 37FF
ADDWI 0FFH ;0291 37FF
ADDWI 0FFH ;0292 37FF
ADDWI 0FFH ;0293 37FF
ADDWI 0FFH ;0294 37FF
ADDWI 0FFH ;0295 37FF
ADDWI 0FFH ;0296 37FF
ADDWI 0FFH ;0297 37FF
ADDWI 0FFH ;0298 37FF
ADDWI 0FFH ;0299 37FF
ADDWI 0FFH ;029A 37FF
ADDWI 0FFH ;029B 37FF
ADDWI 0FFH ;029C 37FF
ADDWI 0FFH ;029D 37FF
ADDWI 0FFH ;029E 37FF
ADDWI 0FFH ;029F 37FF
ADDWI 0FFH ;02A0 37FF
ADDWI 0FFH ;02A1 37FF
ADDWI 0FFH ;02A2 37FF
ADDWI 0FFH ;02A3 37FF
ADDWI 0FFH ;02A4 37FF
ADDWI 0FFH ;02A5 37FF
ADDWI 0FFH ;02A6 37FF
ADDWI 0FFH ;02A7 37FF
ADDWI 0FFH ;02A8 37FF
ADDWI 0FFH ;02A9 37FF
ADDWI 0FFH ;02AA 37FF
ADDWI 0FFH ;02AB 37FF
ADDWI 0FFH ;02AC 37FF
ADDWI 0FFH ;02AD 37FF
ADDWI 0FFH ;02AE 37FF
ADDWI 0FFH ;02AF 37FF
ADDWI 0FFH ;02B0 37FF
ADDWI 0FFH ;02B1 37FF
ADDWI 0FFH ;02B2 37FF
ADDWI 0FFH ;02B3 37FF
ADDWI 0FFH ;02B4 37FF
ADDWI 0FFH ;02B5 37FF
ADDWI 0FFH ;02B6 37FF
ADDWI 0FFH ;02B7 37FF
ADDWI 0FFH ;02B8 37FF
ADDWI 0FFH ;02B9 37FF
ADDWI 0FFH ;02BA 37FF
ADDWI 0FFH ;02BB 37FF
ADDWI 0FFH ;02BC 37FF
ADDWI 0FFH ;02BD 37FF
ADDWI 0FFH ;02BE 37FF
ADDWI 0FFH ;02BF 37FF
ADDWI 0FFH ;02C0 37FF
ADDWI 0FFH ;02C1 37FF
ADDWI 0FFH ;02C2 37FF
ADDWI 0FFH ;02C3 37FF
ADDWI 0FFH ;02C4 37FF
ADDWI 0FFH ;02C5 37FF
ADDWI 0FFH ;02C6 37FF
ADDWI 0FFH ;02C7 37FF
ADDWI 0FFH ;02C8 37FF
ADDWI 0FFH ;02C9 37FF
ADDWI 0FFH ;02CA 37FF
ADDWI 0FFH ;02CB 37FF
ADDWI 0FFH ;02CC 37FF
ADDWI 0FFH ;02CD 37FF
ADDWI 0FFH ;02CE 37FF
ADDWI 0FFH ;02CF 37FF
ADDWI 0FFH ;02D0 37FF
ADDWI 0FFH ;02D1 37FF
ADDWI 0FFH ;02D2 37FF
ADDWI 0FFH ;02D3 37FF
ADDWI 0FFH ;02D4 37FF
ADDWI 0FFH ;02D5 37FF
ADDWI 0FFH ;02D6 37FF
ADDWI 0FFH ;02D7 37FF
ADDWI 0FFH ;02D8 37FF
ADDWI 0FFH ;02D9 37FF
ADDWI 0FFH ;02DA 37FF
ADDWI 0FFH ;02DB 37FF
ADDWI 0FFH ;02DC 37FF
ADDWI 0FFH ;02DD 37FF
ADDWI 0FFH ;02DE 37FF
ADDWI 0FFH ;02DF 37FF
ADDWI 0FFH ;02E0 37FF
ADDWI 0FFH ;02E1 37FF
ADDWI 0FFH ;02E2 37FF
ADDWI 0FFH ;02E3 37FF
ADDWI 0FFH ;02E4 37FF
ADDWI 0FFH ;02E5 37FF
ADDWI 0FFH ;02E6 37FF
ADDWI 0FFH ;02E7 37FF
ADDWI 0FFH ;02E8 37FF
ADDWI 0FFH ;02E9 37FF
ADDWI 0FFH ;02EA 37FF
ADDWI 0FFH ;02EB 37FF
ADDWI 0FFH ;02EC 37FF
ADDWI 0FFH ;02ED 37FF
ADDWI 0FFH ;02EE 37FF
ADDWI 0FFH ;02EF 37FF
ADDWI 0FFH ;02F0 37FF
ADDWI 0FFH ;02F1 37FF
ADDWI 0FFH ;02F2 37FF
ADDWI 0FFH ;02F3 37FF
ADDWI 0FFH ;02F4 37FF
ADDWI 0FFH ;02F5 37FF
ADDWI 0FFH ;02F6 37FF
ADDWI 0FFH ;02F7 37FF
ADDWI 0FFH ;02F8 37FF
ADDWI 0FFH ;02F9 37FF
ADDWI 0FFH ;02FA 37FF
ADDWI 0FFH ;02FB 37FF
ADDWI 0FFH ;02FC 37FF
ADDWI 0FFH ;02FD 37FF
ADDWI 0FFH ;02FE 37FF
ADDWI 0FFH ;02FF 37FF
COMR 07FH,W ;0300 1F7F
STWR PORTA ;0301 1185
BSR STATUS,5 ;0302 0A83
LDWI 010H ;0303 3A10
STWR PORTA ;0304 1185
LDWI 0FFH ;0305 3AFF
STWR PORTB ;0306 1186
BCR RTCC,7 ;0307 0381
BCR STATUS,5 ;0308 0283
SLEEP ;0309 1002
LDWI 011H ;030A 3A11
STWR 07EH ;030B 11FE
LJUMP 0160H ;030C 2960
ADDWI 0FFH ;030D 37FF
ADDWI 0FFH ;030E 37FF
ADDWI 0FFH ;030F 37FF
ADDWI 0FFH ;0310 37FF
ADDWI 0FFH ;0311 37FF
ADDWI 0FFH ;0312 37FF
ADDWI 0FFH ;0313 37FF
ADDWI 0FFH ;0314 37FF
ADDWI 0FFH ;0315 37FF
ADDWI 0FFH ;0316 37FF
ADDWI 0FFH ;0317 37FF
ADDWI 0FFH ;0318 37FF
ADDWI 0FFH ;0319 37FF
ADDWI 0FFH ;031A 37FF
ADDWI 0FFH ;031B 37FF
ADDWI 0FFH ;031C 37FF
ADDWI 0FFH ;031D 37FF
ADDWI 0FFH ;031E 37FF
ADDWI 0FFH ;031F 37FF
CLRWT ;0320 1001
BSR STATUS,5 ;0321 0A83
LDWI 007H ;0322 3A07
STWR 01FH ;0323 119F
CLRR PORTB ;0324 1106
BCR STATUS,5 ;0325 0283
CLRR PORTB ;0326 1106
CLRR RTCC ;0327 1101
LDWI 000H ;0328 3A00
STWR 00BH ;0329 118B
COMR 07FH,W ;032A 1F7F
STWR PORTA ;032B 1185
BSR STATUS,5 ;032C 0A83
LDWI 001H ;032D 3A01
STWR PORTB ;032E 1186
LDWI 010H ;032F 3A10
STWR PORTA ;0330 1185
BCR STATUS,5 ;0331 0283
CLRR 07CH ;0332 117C
NOP ;0333 1000
NOP ;0334 1000
BSR STATUS,5 ;0335 0A83
BCR RTCC,6 ;0336 0301
BCR STATUS,5 ;0337 0283
LDWI 090H ;0338 3A90
STWR 00BH ;0339 118B
CLRWT ;033A 1001
BTSS 07CH,0 ;033B 0C7C
LJUMP 033AH ;033C 2B3A
NOP ;033D 1000
BSR 00BH,3 ;033E 098B
CLRWT ;033F 1001
BTSS 07CH,7 ;0340 0FFC
LJUMP 033FH ;0341 2B3F
CLRR 00BH ;0342 110B
BCR 07CH,0 ;0343 007C
BSR STATUS,5 ;0344 0A83
BSR PORTB,0 ;0345 0806
BSR RTCC,6 ;0346 0B01
LDWI 090H ;0347 3A90
STWR 00BH ;0348 118B
BCR STATUS,5 ;0349 0283
CLRWT ;034A 1001
BTSS 07CH,0 ;034B 0C7C
LJUMP 034AH ;034C 2B4A
CLRR 00BH ;034D 110B
BSR STATUS,5 ;034E 0A83
CLRR PORTB ;034F 1106
BCR STATUS,5 ;0350 0283
NOP ;0351 1000
LDWI 0FFH ;0352 3AFF
STWR PORTB ;0353 1186
NOP ;0354 1000
NOP ;0355 1000
SLEEP ;0356 1002
LDWI 011H ;0357 3A11
STWR 07EH ;0358 11FE
LJUMP 0160H ;0359 2960
BCR STATUS,5 ;035A 0283
LDWI 055H ;035B 3A55
STWR PORTB ;035C 1186
BSR STATUS,5 ;035D 0A83
STWR PORTA ;035E 1185
STWR PORTB ;035F 1186
BCR STATUS,5 ;0360 0283
COMR 07FH,W ;0361 1F7F
STWR PORTA ;0362 1185
SLEEP ;0363 1002
LDWI 011H ;0364 3A11
STWR 07EH ;0365 11FE
LJUMP 0160H ;0366 2960
ADDWI 0FFH ;0367 37FF
ADDWI 0FFH ;0368 37FF
ADDWI 0FFH ;0369 37FF
ADDWI 0FFH ;036A 37FF
ADDWI 0FFH ;036B 37FF
ADDWI 0FFH ;036C 37FF
ADDWI 0FFH ;036D 37FF
ADDWI 0FFH ;036E 37FF
ADDWI 0FFH ;036F 37FF
ADDWI 0FFH ;0370 37FF
ADDWI 0FFH ;0371 37FF
ADDWI 0FFH ;0372 37FF
ADDWI 0FFH ;0373 37FF
ADDWI 0FFH ;0374 37FF
ADDWI 0FFH ;0375 37FF
ADDWI 0FFH ;0376 37FF
ADDWI 0FFH ;0377 37FF
ADDWI 0FFH ;0378 37FF
ADDWI 0FFH ;0379 37FF
ADDWI 0FFH ;037A 37FF
ADDWI 0FFH ;037B 37FF
ADDWI 0FFH ;037C 37FF
ADDWI 0FFH ;037D 37FF
ADDWI 0FFH ;037E 37FF
ADDWI 0FFH ;037F 37FF
BCR STATUS,5 ;0380 0283
CLRWT ;0381 1001
LDWI 0FFH ;0382 3AFF
STWR 020H ;0383 11A0
LDWI 0FFH ;0384 3AFF
STWR 021H ;0385 11A1
LCALL 038AH ;0386 238A
DECRSZ 020H,R ;0387 1EA0
LJUMP 0384H ;0388 2B84
RTIW 0FFH ;0389 31FF
CLRWT ;038A 1001
DECRSZ 021H,R ;038B 1EA1
LJUMP 038AH ;038C 2B8A
RTIW 0FFH ;038D 31FF
ADDWI 0FFH ;038E 37FF
ADDWI 0FFH ;038F 37FF
ADDWI 0FFH ;0390 37FF
ADDWI 0FFH ;0391 37FF
ADDWI 0FFH ;0392 37FF
ADDWI 0FFH ;0393 37FF
ADDWI 0FFH ;0394 37FF
ADDWI 0FFH ;0395 37FF
ADDWI 0FFH ;0396 37FF
ADDWI 0FFH ;0397 37FF
ADDWI 0FFH ;0398 37FF
ADDWI 0FFH ;0399 37FF
ADDWI 0FFH ;039A 37FF
ADDWI 0FFH ;039B 37FF
ADDWI 0FFH ;039C 37FF
ADDWI 0FFH ;039D 37FF
ADDWI 0FFH ;039E 37FF
ADDWI 0FFH ;039F 37FF
ADDWI 0FFH ;03A0 37FF
ADDWI 0FFH ;03A1 37FF
ADDWI 0FFH ;03A2 37FF
ADDWI 0FFH ;03A3 37FF
ADDWI 0FFH ;03A4 37FF
ADDWI 0FFH ;03A5 37FF
ADDWI 0FFH ;03A6 37FF
ADDWI 0FFH ;03A7 37FF
ADDWI 0FFH ;03A8 37FF
ADDWI 0FFH ;03A9 37FF
ADDWI 0FFH ;03AA 37FF
ADDWI 0FFH ;03AB 37FF
ADDWI 0FFH ;03AC 37FF
ADDWI 0FFH ;03AD 37FF
ADDWI 0FFH ;03AE 37FF
ADDWI 0FFH ;03AF 37FF
CLRR RTCC ;03B0 1101
BSR STATUS,5 ;03B1 0A83
LDWI 007H ;03B2 3A07
STWR 01FH ;03B3 119F
LDWI 0FFH ;03B4 3AFF
STWR RTCC ;03B5 1181
CLRWT ;03B6 1001
BCR STATUS,5 ;03B7 0283
COMR 07FH,W ;03B8 1F7F
STWR PORTA ;03B9 1185
BSR STATUS,5 ;03BA 0A83
CLRW ;03BB 1080
STWR PORTA ;03BC 1185
STWR PORTB ;03BD 1186
BCR STATUS,5 ;03BE 0283
LDWI 020H ;03BF 3A20
LCALL 03D5H ;03C0 23D5
STWR PORTB ;03C1 1186
XORWI 055H ;03C2 3655
BTSC STATUS,ZF ;03C3 0503
LJUMP 03CAH ;03C4 2BCA
BSR STATUS,5 ;03C5 0A83
LDWI 0A0H ;03C6 3AA0
LCALL 03D5H ;03C7 23D5
BCR STATUS,5 ;03C8 0283
STWR PORTB ;03C9 1186
BCR STATUS,5 ;03CA 0283
LDR PORTB,R ;03CB 1886
BSR STATUS,5 ;03CC 0A83
CLRW ;03CD 1080
STWR PORTA ;03CE 1185
STWR PORTB ;03CF 1186
BCR STATUS,5 ;03D0 0283
SLEEP ;03D1 1002
LDWI 011H ;03D2 3A11
STWR 07EH ;03D3 11FE
LJUMP 0160H ;03D4 2960
CLRWT ;03D5 1001
STWR MSR ;03D6 1184
LDWI 05DH ;03D7 3A5D
BTSC MSR,7 ;03D8 0784
LDWI 01FH ;03D9 3A1F
STWR 020H ;03DA 11A0
CLRWT ;03DB 1001
INCR MSR,R ;03DC 1984
LDWI 055H ;03DD 3A55
STWR IAR ;03DE 1180
DECRSZ 020H,R ;03DF 1EA0
LJUMP 03DBH ;03E0 2BDB
LDWI 05DH ;03E1 3A5D
BTSC MSR,7 ;03E2 0784
LDWI 01FH ;03E3 3A1F
STWR 020H ;03E4 11A0
LDR MSR,R ;03E5 1884
CLRWT ;03E6 1001
COMR IAR,R ;03E7 1F80
LDR IAR,W ;03E8 1800
DECR MSR,R ;03E9 1D84
XORWI 0AAH ;03EA 36AA
BTSS STATUS,ZF ;03EB 0D03
RTIW 055H ;03EC 3155
DECRSZ 020H,R ;03ED 1EA0
LJUMP 03E6H ;03EE 2BE6
RTIW 03CH ;03EF 313C
BSR STATUS,5 ;03F0 0A83
LDWI 010H ;03F1 3A10
STWR PORTA ;03F2 1185
CLRR PORTB ;03F3 1106
BCR STATUS,5 ;03F4 0283
CLRR 021H ;03F5 1121
COMR 07FH,W ;03F6 1F7F
STWR PORTA ;03F7 1185
LDWI 021H ;03F8 3A21
LCALL 0407H ;03F9 2407
LDWI 0A0H ;03FA 3AA0
LCALL 0407H ;03FB 2407
LDR 021H,W ;03FC 1821
XORWI 07BH ;03FD 367B
BTSS STATUS,ZF ;03FE 0D03
LDWI 0AAH ;03FF 3AAA
STWR 021H ;0400 11A1
LDR 021H,W ;0401 1821
STWR PORTB ;0402 1186
SLEEP ;0403 1002
LDWI 011H ;0404 3A11
STWR 07EH ;0405 11FE
LJUMP 0160H ;0406 2960
STWR MSR ;0407 1184
LDWI 05DH ;0408 3A5D
BTSC MSR,7 ;0409 0784
LDWI 01FH ;040A 3A1F
STWR 020H ;040B 11A0
CLRWT ;040C 1001
INCR MSR,R ;040D 1984
LDR IAR,W ;040E 1800
XORWI 0AAH ;040F 36AA
BTSC STATUS,ZF ;0410 0503
INCR 021H,R ;0411 19A1
DECRSZ 020H,R ;0412 1EA0
LJUMP 040CH ;0413 2C0C
RET ;0414 1004
ADDWI 0FFH ;0415 37FF
ADDWI 0FFH ;0416 37FF
ADDWI 0FFH ;0417 37FF
ADDWI 0FFH ;0418 37FF
ADDWI 0FFH ;0419 37FF
ADDWI 0FFH ;041A 37FF
ADDWI 0FFH ;041B 37FF
ADDWI 0FFH ;041C 37FF
ADDWI 0FFH ;041D 37FF
ADDWI 0FFH ;041E 37FF
ADDWI 0FFH ;041F 37FF
BCR STATUS,5 ;0420 0283
CLRR 023H ;0421 1123
LCALL 049DH ;0422 249D
XORWR 023H,R ;0423 14A3
LDR 023H,W ;0424 1823
XORWI 0FFH ;0425 36FF
BTSS STATUS,ZF ;0426 0D03
LJUMP 0478H ;0427 2C78
CLRW ;0428 1080
BTSS STATUS,ZF ;0429 0D03
LJUMP 0478H ;042A 2C78
STWR 022H ;042B 11A2
INCR 022H,R ;042C 19A2
BTSC STATUS,ZF ;042D 0503
LJUMP 0478H ;042E 2C78
BCR STATUS,CF ;042F 0003
RRR 022H,R ;0430 16A2
BTSS STATUS,CF ;0431 0C03
LJUMP 0478H ;0432 2C78
BTSC 022H,7 ;0433 07A2
LJUMP 0478H ;0434 2C78
RLR 022H,R ;0435 15A2
BTSC STATUS,CF ;0436 0403
LJUMP 0478H ;0437 2C78
BTSS 022H,0 ;0438 0C22
LJUMP 0478H ;0439 2C78
COMR 022H,W ;043A 1F22
BTSC STATUS,ZF ;043B 0503
LJUMP 0478H ;043C 2C78
ADDWR 022H,R ;043D 1BA2
BTSC STATUS,CF ;043E 0403
LJUMP 0478H ;043F 2C78
BTSC STATUS,HC ;0440 0483
LJUMP 0478H ;0441 2C78
BTSC STATUS,ZF ;0442 0503
LJUMP 0478H ;0443 2C78
IORWR 022H,R ;0444 13A2
BTSC STATUS,ZF ;0445 0503
LJUMP 0478H ;0446 2C78
ANDWR 022H,W ;0447 1222
BTSC STATUS,ZF ;0448 0503
LJUMP 0478H ;0449 2C78
STWR 022H ;044A 11A2
SWAPR 022H,W ;044B 1722
SUBWR 022H,R ;044C 1CA2
BTSS STATUS,CF ;044D 0C03
LJUMP 0478H ;044E 2C78
BTSC STATUS,HC ;044F 0483
LJUMP 0478H ;0450 2C78
BTSC STATUS,ZF ;0451 0503
LJUMP 0478H ;0452 2C78
DECR 022H,R ;0453 1DA2
BTSC STATUS,ZF ;0454 0503
LJUMP 0478H ;0455 2C78
XORWR 022H,R ;0456 14A2
BTSC STATUS,ZF ;0457 0503
LJUMP 0478H ;0458 2C78
CLRR 022H ;0459 1122
BTSS STATUS,ZF ;045A 0D03
LJUMP 0478H ;045B 2C78
LDR 022H,W ;045C 1822
BTSS STATUS,ZF ;045D 0D03
LJUMP 0478H ;045E 2C78
LDWI 055H ;045F 3A55
XORWI 0FFH ;0460 36FF
BTSC STATUS,ZF ;0461 0503
LJUMP 0478H ;0462 2C78
SUBWI 0FFH ;0463 38FF
BTSS STATUS,CF ;0464 0C03
LJUMP 0478H ;0465 2C78
BTSS STATUS,HC ;0466 0C83
LJUMP 0478H ;0467 2C78
BTSC STATUS,ZF ;0468 0503
LJUMP 0478H ;0469 2C78
ADDWI 0FFH ;046A 37FF
BTSS STATUS,CF ;046B 0C03
LJUMP 0478H ;046C 2C78
BTSS STATUS,HC ;046D 0C83
LJUMP 0478H ;046E 2C78
BTSC STATUS,ZF ;046F 0503
LJUMP 0478H ;0470 2C78
IORWI 0FFH ;0471 35FF
BTSC STATUS,ZF ;0472 0503
LJUMP 0478H ;0473 2C78
ANDWI 000H ;0474 3400
BTSS STATUS,ZF ;0475 0D03
LJUMP 0478H ;0476 2C78
LJUMP 048BH ;0477 2C8B
BCR STATUS,5 ;0478 0283
LCALL 049BH ;0479 249B
STWR PORTB ;047A 1186
BCR STATUS,5 ;047B 0283
CLRWT ;047C 1001
LCALL 0380H ;047D 2380
COMR 07FH,W ;047E 1F7F
STWR PORTA ;047F 1185
COMR PORTB,R ;0480 1F86
BSR STATUS,5 ;0481 0A83
CLRR PORTA ;0482 1105
CLRR PORTB ;0483 1106
LCALL 0380H ;0484 2380
BCR STATUS,5 ;0485 0283
BCR STATUS,5 ;0486 0283
SLEEP ;0487 1002
LDWI 011H ;0488 3A11
STWR 07EH ;0489 11FE
LJUMP 0160H ;048A 2960
LCALL 049CH ;048B 249C
STWR PORTB ;048C 1186
CLRWT ;048D 1001
LCALL 0380H ;048E 2380
COMR 07FH,W ;048F 1F7F
STWR PORTA ;0490 1185
BSR STATUS,5 ;0491 0A83
CLRR PORTA ;0492 1105
CLRR PORTB ;0493 1106
BCR STATUS,5 ;0494 0283
LCALL 0380H ;0495 2380
BCR STATUS,5 ;0496 0283
SLEEP ;0497 1002
LDWI 011H ;0498 3A11
STWR 07EH ;0499 11FE
LJUMP 0160H ;049A 2960
RTIW 055H ;049B 3155
RTIW 03CH ;049C 313C
LCALL 04A0H ;049D 24A0
XORWR 023H,R ;049E 14A3
RTIW 080H ;049F 3180
LCALL 04A3H ;04A0 24A3
XORWR 023H,R ;04A1 14A3
RTIW 040H ;04A2 3140
LCALL 04A6H ;04A3 24A6
XORWR 023H,R ;04A4 14A3
RTIW 020H ;04A5 3120
LCALL 04A9H ;04A6 24A9
XORWR 023H,R ;04A7 14A3
RTIW 010H ;04A8 3110
LCALL 04ACH ;04A9 24AC
XORWR 023H,R ;04AA 14A3
RTIW 008H ;04AB 3108
LCALL 04AFH ;04AC 24AF
XORWR 023H,R ;04AD 14A3
RTIW 004H ;04AE 3104
LCALL 04B2H ;04AF 24B2
XORWR 023H,R ;04B0 14A3
RTIW 002H ;04B1 3102
CLRW ;04B2 1080
RTIW 001H ;04B3 3101
ADDWI 0FFH ;04B4 37FF
ADDWI 0FFH ;04B5 37FF
ADDWI 0FFH ;04B6 37FF
ADDWI 0FFH ;04B7 37FF
ADDWI 0FFH ;04B8 37FF
ADDWI 0FFH ;04B9 37FF
ADDWI 0FFH ;04BA 37FF
ADDWI 0FFH ;04BB 37FF
ADDWI 0FFH ;04BC 37FF
ADDWI 0FFH ;04BD 37FF
ADDWI 0FFH ;04BE 37FF
ADDWI 0FFH ;04BF 37FF
BCR STATUS,5 ;04C0 0283
COMR 07FH,W ;04C1 1F7F
STWR PORTA ;04C2 1185
BSR STATUS,5 ;04C3 0A83
CLRR PORTA ;04C4 1105
BCR PORTC,2 ;04C5 0107
BCR STATUS,5 ;04C6 0283
LCALL 0380H ;04C7 2380
BSR STATUS,5 ;04C8 0A83
BSR PORTA,4 ;04C9 0A05
CLRR PORTB ;04CA 1106
LDWI 02FH ;04CB 3A2F
STWR RTCC ;04CC 1181
CLRR 01FH ;04CD 111F
BSR 00CH,6 ;04CE 0B0C
BCR STATUS,5 ;04CF 0283
CLRR PORTB ;04D0 1106
BCR 00CH,6 ;04D1 030C
CLRR 00BH ;04D2 110B
BSR 00BH,6 ;04D3 0B0B
BSR 00BH,7 ;04D4 0B8B
CLRR 022H ;04D5 1122
BCR STATUS,5 ;04D6 0283
LDWI 023H ;04D7 3A23
STWR 031H ;04D8 11B1
LDWI 04FH ;04D9 3A4F
STWR 032H ;04DA 11B2
LDWI 091H ;04DB 3A91
STWR 033H ;04DC 11B3
LDWI 0B2H ;04DD 3AB2
STWR 034H ;04DE 11B4
LDWI 0FFH ;04DF 3AFF
STWR 035H ;04E0 11B5
CLRR RTCC ;04E1 1101
BSR STATUS,5 ;04E2 0A83
LDWI 0FFH ;04E3 3AFF
STWR PORTA ;04E4 1185
BCR STATUS,5 ;04E5 0283
CLRWT ;04E6 1001
LDWI 004H ;04E7 3A04
STWR 00AH ;04E8 118A
LDR RTCC,W ;04E9 1801
ADDWR PCL,R ;04EA 1B82
LJUMP 04E6H ;04EB 2CE6
LJUMP 050AH ;04EC 2D0A
LJUMP 050EH ;04ED 2D0E
LJUMP 0512H ;04EE 2D12
LJUMP 0516H ;04EF 2D16
LJUMP 051AH ;04F0 2D1A
LJUMP 04FBH ;04F1 2CFB
CLRWT ;04F2 1001
BTSC PORTA,4 ;04F3 0605
LJUMP 04F2H ;04F4 2CF2
BSR 01FH,2 ;04F5 091F
NOP ;04F6 1000
BTSC 01FH,2 ;04F7 051F
LJUMP 04F7H ;04F8 2CF7
LCALL 0380H ;04F9 2380
LJUMP 04E6H ;04FA 2CE6
CLRR 00BH ;04FB 110B
BCR 00CH,6 ;04FC 030C
BSR STATUS,5 ;04FD 0A83
BCR 00CH,6 ;04FE 030C
BSR PORTC,2 ;04FF 0907
BCR STATUS,5 ;0500 0283
COMR 07FH,W ;0501 1F7F
STWR PORTA ;0502 1185
NOP ;0503 1000
LDWI 0FFH ;0504 3AFF
STWR PORTB ;0505 1186
SLEEP ;0506 1002
LDWI 011H ;0507 3A11
STWR 07EH ;0508 11FE
LJUMP 0160H ;0509 2960
LCALL 051EH ;050A 251E
LDWI 001H ;050B 3A01
IORWR 01FH,R ;050C 139F
LJUMP 04F2H ;050D 2CF2
LCALL 051EH ;050E 251E
LDWI 009H ;050F 3A09
IORWR 01FH,R ;0510 139F
LJUMP 04F2H ;0511 2CF2
LCALL 051EH ;0512 251E
LDWI 011H ;0513 3A11
IORWR 01FH,R ;0514 139F
LJUMP 04F2H ;0515 2CF2
LCALL 051EH ;0516 251E
LDWI 019H ;0517 3A19
IORWR 01FH,R ;0518 139F
LJUMP 04F2H ;0519 2CF2
LCALL 051EH ;051A 251E
LDWI 021H ;051B 3A21
IORWR 01FH,R ;051C 139F
LJUMP 04F2H ;051D 2CF2
BCR STATUS,5 ;051E 0283
LDR PORTC,W ;051F 1807
ANDWI 060H ;0520 3460
STWR 07CH ;0521 11FC
RLR 07CH,R ;0522 15FC
LDR 07CH,W ;0523 187C
STWR 01FH ;0524 119F
RET ;0525 1004
BCR STATUS,5 ;0526 0283
LDWI 030H ;0527 3A30
STWR MSR ;0528 1184
LDR RTCC,W ;0529 1801
ADDWR MSR,R ;052A 1B84
LDR IAR,W ;052B 1800
BSR STATUS,5 ;052C 0A83
STWR 012H ;052D 1192
BCR STATUS,5 ;052E 0283
LDR 01EH,W ;052F 181E
STWR 015H ;0530 1195
LDWI 061H ;0531 3A61
STWR 012H ;0532 1192
LDWI 00CH ;0533 3A0C
STWR 017H ;0534 1197
BSR 012H,2 ;0535 0912
NOP ;0536 1000
RET ;0537 1004
ADDWI 0FFH ;0538 37FF
ADDWI 0FFH ;0539 37FF
ADDWI 0FFH ;053A 37FF
ADDWI 0FFH ;053B 37FF
ADDWI 0FFH ;053C 37FF
ADDWI 0FFH ;053D 37FF
ADDWI 0FFH ;053E 37FF
ADDWI 0FFH ;053F 37FF
CLRWT ;0540 1001
BCR STATUS,5 ;0541 0283
COMR 07FH,W ;0542 1F7F
STWR PORTA ;0543 1185
CLRW ;0544 1080
STWR PORTB ;0545 1186
BSR STATUS,5 ;0546 0A83
LDWI 010H ;0547 3A10
STWR PORTA ;0548 1185
CLRW ;0549 1080
STWR PORTB ;054A 1186
STWR 00BH ;054B 118B
LCALL 0554H ;054C 2554
LJUMP 057AH ;054D 2D7A
LJUMP 05A0H ;054E 2DA0
SLEEP ;054F 1002
NOP ;0550 1000
LDWI 011H ;0551 3A11
STWR 07EH ;0552 11FE
LJUMP 0160H ;0553 2960
BCR STATUS,5 ;0554 0283
CLRW ;0555 1080
STWR 010H ;0556 1190
STWR 00EH ;0557 118E
STWR 00FH ;0558 118F
STWR 00CH ;0559 118C
BSR STATUS,5 ;055A 0A83
CLRW ;055B 1080
STWR 00CH ;055C 118C
BSR 00CH,0 ;055D 080C
BCR STATUS,5 ;055E 0283
CLRR 023H ;055F 1123
LDWI 001H ;0560 3A01
STWR 022H ;0561 11A2
CLRWT ;0562 1001
LDR 023H,W ;0563 1823
XORWI 004H ;0564 3604
BTSC STATUS,ZF ;0565 0503
RET ;0566 1004
LCALL 0130H ;0567 2130
STWR 010H ;0568 1190
INCR 023H,R ;0569 19A3
CLRWT ;056A 1001
LDR 022H,W ;056B 1822
STWR PORTB ;056C 1186
LCALL 0574H ;056D 2574
CLRWT ;056E 1001
BCR STATUS,CF ;056F 0003
RLR 022H,R ;0570 15A2
BTSC STATUS,CF ;0571 0403
LJUMP 0560H ;0572 2D60
LJUMP 056AH ;0573 2D6A
BCR STATUS,5 ;0574 0283
BCR 00CH,0 ;0575 000C
CLRWT ;0576 1001
BTSS 00CH,0 ;0577 0C0C
LJUMP 0576H ;0578 2D76
RET ;0579 1004
CLRWT ;057A 1001
BSR STATUS,5 ;057B 0A83
LDWI 003H ;057C 3A03
STWR PORTC ;057D 1187
BCR STATUS,5 ;057E 0283
CLRR 010H ;057F 1110
CLRR 00FH ;0580 110F
CLRR 00EH ;0581 110E
CLRR 00CH ;0582 110C
BSR STATUS,5 ;0583 0A83
CLRR 00CH ;0584 110C
BSR 00CH,0 ;0585 080C
BCR STATUS,5 ;0586 0283
LDWI 003H ;0587 3A03
STWR 010H ;0588 1190
CLRWT ;0589 1001
COMR 00EH,W ;058A 1F0E
STWR PORTB ;058B 1186
LDR 00EH,W ;058C 180E
ANDWI 010H ;058D 3410
BTSC STATUS,ZF ;058E 0503
LJUMP 0589H ;058F 2D89
SLEEP ;0590 1002
BCR 010H,0 ;0591 0010
COMR 00EH,W ;0592 1F0E
STWR PORTB ;0593 1186
LCALL 0380H ;0594 2380
BSR STATUS,5 ;0595 0A83
BCR 00CH,0 ;0596 000C
BSR PORTA,5 ;0597 0A85
BCR STATUS,5 ;0598 0283
BCR 00CH,0 ;0599 000C
CLRR RTCC ;059A 1101
CLRWT ;059B 1001
LDR RTCC,W ;059C 1801
BTSC STATUS,ZF ;059D 0503
LJUMP 059BH ;059E 2D9B
LJUMP 054EH ;059F 2D4E
BCR STATUS,5 ;05A0 0283
CLRR 010H ;05A1 1110
CLRR 00FH ;05A2 110F
CLRR 00EH ;05A3 110E
CLRR 00CH ;05A4 110C
BSR STATUS,5 ;05A5 0A83
CLRR 00CH ;05A6 110C
BCR STATUS,5 ;05A7 0283
LDWI 000H ;05A8 3A00
STWR PORTB ;05A9 1186
STWR 023H ;05AA 11A3
LDWI 007H ;05AB 3A07
STWR 010H ;05AC 1190
CLRWT ;05AD 1001
COMR 00EH,W ;05AE 1F0E
STWR PORTB ;05AF 1186
LDR 00EH,W ;05B0 180E
ANDWI 010H ;05B1 3410
BTSC STATUS,ZF ;05B2 0503
LJUMP 05ADH ;05B3 2DAD
SLEEP ;05B4 1002
BCR 010H,0 ;05B5 0010
COMR 00EH,W ;05B6 1F0E
STWR PORTB ;05B7 1186
LCALL 0380H ;05B8 2380
CLRR RTCC ;05B9 1101
CLRWT ;05BA 1001
LDR RTCC,W ;05BB 1801
BTSC STATUS,ZF ;05BC 0503
LJUMP 05BAH ;05BD 2DBA
CLRR PORTB ;05BE 1106
LJUMP 054FH ;05BF 2D4F
ADDWI 0FFH ;05C0 37FF
ADDWI 0FFH ;05C1 37FF
ADDWI 0FFH ;05C2 37FF
ADDWI 0FFH ;05C3 37FF
ADDWI 0FFH ;05C4 37FF
ADDWI 0FFH ;05C5 37FF
ADDWI 0FFH ;05C6 37FF
ADDWI 0FFH ;05C7 37FF
ADDWI 0FFH ;05C8 37FF
ADDWI 0FFH ;05C9 37FF
ADDWI 0FFH ;05CA 37FF
ADDWI 0FFH ;05CB 37FF
ADDWI 0FFH ;05CC 37FF
ADDWI 0FFH ;05CD 37FF
ADDWI 0FFH ;05CE 37FF
ADDWI 0FFH ;05CF 37FF
ADDWI 0FFH ;05D0 37FF
ADDWI 0FFH ;05D1 37FF
ADDWI 0FFH ;05D2 37FF
ADDWI 0FFH ;05D3 37FF
ADDWI 0FFH ;05D4 37FF
ADDWI 0FFH ;05D5 37FF
ADDWI 0FFH ;05D6 37FF
ADDWI 0FFH ;05D7 37FF
ADDWI 0FFH ;05D8 37FF
ADDWI 0FFH ;05D9 37FF
ADDWI 0FFH ;05DA 37FF
ADDWI 0FFH ;05DB 37FF
ADDWI 0FFH ;05DC 37FF
ADDWI 0FFH ;05DD 37FF
ADDWI 0FFH ;05DE 37FF
ADDWI 0FFH ;05DF 37FF
BCR STATUS,5 ;05E0 0283
LDWI 0C0H ;05E1 3AC0
STWR 00BH ;05E2 118B
BSR STATUS,5 ;05E3 0A83
LDWI 02FH ;05E4 3A2F
STWR RTCC ;05E5 1181
LDWI 010H ;05E6 3A10
STWR PORTC ;05E7 1187
LDWI 010H ;05E8 3A10
STWR PORTA ;05E9 1185
LDWI 000H ;05EA 3A00
STWR PORTB ;05EB 1186
BCR STATUS,5 ;05EC 0283
COMR 07FH,W ;05ED 1F7F
STWR PORTA ;05EE 1185
LDWI 021H ;05EF 3A21
STWR 014H ;05F0 1194
CLRR RTCC ;05F1 1101
CLRWT ;05F2 1001
LDR RTCC,W ;05F3 1801
XORWI 000H ;05F4 3600
BTSC STATUS,ZF ;05F5 0503
LJUMP 05F2H ;05F6 2DF2
LCALL 0380H ;05F7 2380
BCR STATUS,5 ;05F8 0283
LDR 013H,W ;05F9 1813
LDWI 001H ;05FA 3A01
STWR 028H ;05FB 11A8
LDR 028H,W ;05FC 1828
STWR 013H ;05FD 1193
NOP ;05FE 1000
CLRWT ;05FF 1001
BTSS 00CH,3 ;0600 0D8C
LJUMP 05FEH ;0601 2DFE
BCR 00CH,3 ;0602 018C
BTSC 014H,7 ;0603 0794
BCR 014H,7 ;0604 0394
BCR STATUS,CF ;0605 0003
RLR 028H,R ;0606 15A8
BTSC STATUS,CF ;0607 0403
LJUMP 060AH ;0608 2E0A
LJUMP 05FCH ;0609 2DFC
CLRR 014H ;060A 1114
BSR STATUS,5 ;060B 0A83
CLRR PORTC ;060C 1107
LDWI 018H ;060D 3A18
STWR PORTC ;060E 1187
BCR STATUS,5 ;060F 0283
LDR 013H,W ;0610 1813
LDWI 025H ;0611 3A25
STWR 014H ;0612 1194
LDWI 031H ;0613 3A31
STWR MSR ;0614 1184
CLRWT ;0615 1001
BSR STATUS,5 ;0616 0A83
BTSS 014H,0 ;0617 0C14
LJUMP 0615H ;0618 2E15
BCR STATUS,5 ;0619 0283
BTSS 00CH,3 ;061A 0D8C
BCR 00CH,3 ;061B 018C
BTSC 014H,6 ;061C 0714
BCR 014H,6 ;061D 0314
BCR STATUS,5 ;061E 0283
LDR 013H,W ;061F 1813
STWR IAR ;0620 1180
XORWI 080H ;0621 3680
BTSC STATUS,ZF ;0622 0503
LJUMP 0626H ;0623 2E26
INCR MSR,R ;0624 1984
LJUMP 0615H ;0625 2E15
BCR STATUS,5 ;0626 0283
LDWI 00AH ;0627 3A0A
STWR 022H ;0628 11A2
LDWI 031H ;0629 3A31
STWR MSR ;062A 1184
COMR IAR,W ;062B 1F00
STWR PORTB ;062C 1186
LCALL 0380H ;062D 2380
BCR STATUS,5 ;062E 0283
LDR IAR,W ;062F 1800
XORWI 080H ;0630 3680
BTSC STATUS,ZF ;0631 0503
LJUMP 0636H ;0632 2E36
INCR MSR,R ;0633 1984
DECRSZ 022H,R ;0634 1EA2
LJUMP 062BH ;0635 2E2B
NOP ;0636 1000
BCR STATUS,5 ;0637 0283
CLRR PORTB ;0638 1106
SLEEP ;0639 1002
LDWI 011H ;063A 3A11
STWR 07EH ;063B 11FE
LJUMP 0160H ;063C 2960
ADDWI 0FFH ;063D 37FF
ADDWI 0FFH ;063E 37FF
ADDWI 0FFH ;063F 37FF
BSR STATUS,5 ;0640 0A83
LDWI 000H ;0641 3A00
STWR PORTB ;0642 1186
CLRR PORTC ;0643 1107
BCR STATUS,5 ;0644 0283
CLRR PORTC ;0645 1107
BSR STATUS,5 ;0646 0A83
LDWI 018H ;0647 3A18
STWR PORTC ;0648 1187
LDWI 02FH ;0649 3A2F
STWR RTCC ;064A 1181
LDWI 010H ;064B 3A10
STWR PORTA ;064C 1185
LDWI 002H ;064D 3A02
STWR 013H ;064E 1193
LDWI 0C0H ;064F 3AC0
STWR 014H ;0650 1194
BCR STATUS,5 ;0651 0283
COMR 07FH,W ;0652 1F7F
STWR PORTA ;0653 1185
LDWI 03EH ;0654 3A3E
STWR 014H ;0655 1194
NOP ;0656 1000
LDWI 001H ;0657 3A01
STWR 028H ;0658 11A8
CLRR RTCC ;0659 1101
LJUMP 065BH ;065A 2E5B
CLRWT ;065B 1001
BTSC 014H,4 ;065C 0614
LJUMP 065BH ;065D 2E5B
BTSS 00CH,3 ;065E 0D8C
LJUMP 065BH ;065F 2E5B
LDR 028H,W ;0660 1828
STWR 013H ;0661 1193
BCR 031H,0 ;0662 0031
BSR 014H,4 ;0663 0A14
BCR 00CH,3 ;0664 018C
CLRWT ;0665 1001
BSR STATUS,5 ;0666 0A83
BTSC 014H,4 ;0667 0614
LJUMP 0678H ;0668 2E78
BTSC 014H,0 ;0669 0414
LJUMP 0660H ;066A 2E60
BCR STATUS,5 ;066B 0283
BTSC 014H,4 ;066C 0614
LJUMP 0665H ;066D 2E65
CLRWT ;066E 1001
BTSS 00CH,3 ;066F 0D8C
LJUMP 066EH ;0670 2E6E
BTSC 031H,0 ;0671 0431
LJUMP 0678H ;0672 2E78
BCR STATUS,5 ;0673 0283
BCR STATUS,CF ;0674 0003
RLR 028H,R ;0675 15A8
BTSS STATUS,CF ;0676 0C03
LJUMP 0660H ;0677 2E60
BCR 00CH,3 ;0678 018C
LJUMP 067BH ;0679 2E7B
NOP ;067A 1000
BSR STATUS,5 ;067B 0A83
LDWI 006H ;067C 3A06
STWR 013H ;067D 1193
BCR STATUS,5 ;067E 0283
LDWI 0C0H ;067F 3AC0
STWR 00BH ;0680 118B
CLRR 00CH ;0681 110C
LDWI 031H ;0682 3A31
STWR MSR ;0683 1184
BSR STATUS,5 ;0684 0A83
CLRWT ;0685 1001
BTSS 014H,0 ;0686 0C14
LJUMP 0684H ;0687 2E84
BTSC 014H,5 ;0688 0694
LDR 013H,W ;0689 1813
BCR STATUS,5 ;068A 0283
NOP ;068B 1000
CLRWT ;068C 1001
LDR 013H,W ;068D 1813
BTSS 00CH,3 ;068E 0D8C
LJUMP 068AH ;068F 2E8A
NOP ;0690 1000
BSR STATUS,5 ;0691 0A83
BSR 00CH,3 ;0692 098C
NOP ;0693 1000
NOP ;0694 1000
NOP ;0695 1000
NOP ;0696 1000
NOP ;0697 1000
BCR STATUS,5 ;0698 0283
LDWI 031H ;0699 3A31
STWR MSR ;069A 1184
COMR IAR,W ;069B 1F00
STWR PORTB ;069C 1186
LCALL 0380H ;069D 2380
LDR IAR,W ;069E 1800
XORWI 080H ;069F 3680
BTSC STATUS,ZF ;06A0 0503
LJUMP 06A7H ;06A1 2EA7
INCR MSR,R ;06A2 1984
LDR MSR,W ;06A3 1804
XORWI 040H ;06A4 3640
BTSS STATUS,ZF ;06A5 0D03
LJUMP 069BH ;06A6 2E9B
NOP ;06A7 1000
NOP ;06A8 1000
CLRR PORTB ;06A9 1106
BCR STATUS,5 ;06AA 0283
CLRR 014H ;06AB 1114
SLEEP ;06AC 1002
LDWI 011H ;06AD 3A11
STWR 07EH ;06AE 11FE
LJUMP 0160H ;06AF 2960
ADDWI 0FFH ;06B0 37FF
ADDWI 0FFH ;06B1 37FF
ADDWI 0FFH ;06B2 37FF
ADDWI 0FFH ;06B3 37FF
ADDWI 0FFH ;06B4 37FF
ADDWI 0FFH ;06B5 37FF
ADDWI 0FFH ;06B6 37FF
ADDWI 0FFH ;06B7 37FF
ADDWI 0FFH ;06B8 37FF
ADDWI 0FFH ;06B9 37FF
ADDWI 0FFH ;06BA 37FF
ADDWI 0FFH ;06BB 37FF
ADDWI 0FFH ;06BC 37FF
ADDWI 0FFH ;06BD 37FF
ADDWI 0FFH ;06BE 37FF
ADDWI 0FFH ;06BF 37FF
BCR STATUS,5 ;06C0 0283
COMR 07FH,W ;06C1 1F7F
STWR PORTA ;06C2 1185
BSR STATUS,5 ;06C3 0A83
CLRR 00BH ;06C4 110B
CLRR 00CH ;06C5 110C
CLRR PORTB ;06C6 1106
LDWI 010H ;06C7 3A10
STWR PORTA ;06C8 1185
BCR STATUS,5 ;06C9 0283
LDWI 0FFH ;06CA 3AFF
STWR PORTB ;06CB 1186
CLRR RTCC ;06CC 1101
CLRWT ;06CD 1001
BCR STATUS,5 ;06CE 0283
CLRR RTCC ;06CF 1101
CLRR 026H ;06D0 1126
CLRWT ;06D1 1001
BCR STATUS,5 ;06D2 0283
LDWI 003H ;06D3 3A03
XORWR RTCC,W ;06D4 1401
BTSC STATUS,ZF ;06D5 0503
LJUMP 06DDH ;06D6 2EDD
LDR 026H,W ;06D7 1826
XORWR RTCC,W ;06D8 1401
BTSC STATUS,ZF ;06D9 0503
LJUMP 06D1H ;06DA 2ED1
LJUMP 0770H ;06DB 2F70
LJUMP 06CDH ;06DC 2ECD
BCR STATUS,5 ;06DD 0283
COMR 07FH,W ;06DE 1F7F
STWR PORTA ;06DF 1185
SLEEP ;06E0 1002
LDWI 011H ;06E1 3A11
STWR 07EH ;06E2 11FE
LJUMP 0160H ;06E3 2960
CLRWT ;06E4 1001
BCR STATUS,5 ;06E5 0283
LDWI 00EH ;06E6 3A0E
STWR PORTA ;06E7 1185
BSR STATUS,5 ;06E8 0A83
LDWI 000H ;06E9 3A00
STWR PORTA ;06EA 1185
LDWI 007H ;06EB 3A07
STWR PORTC ;06EC 1187
CLRW ;06ED 1080
STWR PORTB ;06EE 1186
BCR STATUS,5 ;06EF 0283
BCR 00CH,2 ;06F0 010C
LDWI 0FFH ;06F1 3AFF
STWR PORTB ;06F2 1186
CLRW ;06F3 1080
STWR 00FH ;06F4 118F
STWR 00EH ;06F5 118E
CLRWT ;06F6 1001
LDWI 0C0H ;06F7 3AC0
STWR 00BH ;06F8 118B
LDWI 005H ;06F9 3A05
STWR 017H ;06FA 1197
LDWI 03AH ;06FB 3A3A
STWR 010H ;06FC 1190
LDWI 0FFH ;06FD 3AFF
STWR 023H ;06FE 11A3
BSR 010H,0 ;06FF 0810
BSR STATUS,5 ;0700 0A83
BSR 00CH,2 ;0701 090C
BCR STATUS,5 ;0702 0283
CLRWT ;0703 1001
LDR 00FH,W ;0704 180F
STWR PORTB ;0705 1186
LDR 023H,W ;0706 1823
XORWI 0F3H ;0707 36F3
BTSS STATUS,ZF ;0708 0D03
LJUMP 0702H ;0709 2F02
CLRWT ;070A 1001
BCR STATUS,5 ;070B 0283
LDWI 0FFH ;070C 3AFF
STWR PORTB ;070D 1186
BCR STATUS,5 ;070E 0283
CLRWT ;070F 1001
NOP ;0710 1000
LCALL 0380H ;0711 2380
BCR STATUS,5 ;0712 0283
CLRR 017H ;0713 1117
LDR RTCC,W ;0714 1801
STWR 026H ;0715 11A6
BCR 010H,0 ;0716 0010
BSR STATUS,5 ;0717 0A83
BSR PORTA,4 ;0718 0A05
LJUMP 06D1H ;0719 2ED1
NOP ;071A 1000
BSR STATUS,5 ;071B 0A83
LDWI 000H ;071C 3A00
STWR PORTA ;071D 1185
CLRR 00CH ;071E 110C
BCR STATUS,5 ;071F 0283
LDWI 00DH ;0720 3A0D
STWR PORTA ;0721 1185
BCR STATUS,5 ;0722 0283
CLRR 017H ;0723 1117
CLRR 00CH ;0724 110C
LDWI 0FFH ;0725 3AFF
STWR PORTB ;0726 1186
STWR PORTC ;0727 1187
CLRW ;0728 1080
STWR 00FH ;0729 118F
STWR 00EH ;072A 118E
LDWI 010H ;072B 3A10
STWR 015H ;072C 1195
CLRR 016H ;072D 1116
BSR STATUS,5 ;072E 0A83
CLRR PORTB ;072F 1106
LDWI 0C0H ;0730 3AC0
STWR 00BH ;0731 118B
LDWI 001H ;0732 3A01
STWR PORTC ;0733 1187
NOP ;0734 1000
BCR STATUS,5 ;0735 0283
LDWI 009H ;0736 3A09
STWR 017H ;0737 1197
LDWI 003H ;0738 3A03
STWR 010H ;0739 1190
LDWI 0FFH ;073A 3AFF
STWR 023H ;073B 11A3
BSR STATUS,5 ;073C 0A83
BSR 00CH,2 ;073D 090C
NOP ;073E 1000
BCR STATUS,5 ;073F 0283
LDR 00EH,W ;0740 180E
STWR PORTB ;0741 1186
CLRWT ;0742 1001
LDR 023H,W ;0743 1823
XORWI 0F3H ;0744 36F3
BTSS STATUS,ZF ;0745 0D03
LJUMP 073FH ;0746 2F3F
NOP ;0747 1000
BCR STATUS,5 ;0748 0283
LDWI 000H ;0749 3A00
STWR PORTB ;074A 1186
LCALL 0380H ;074B 2380
CLRWT ;074C 1001
NOP ;074D 1000
LCALL 0380H ;074E 2380
BCR STATUS,5 ;074F 0283
CLRR 017H ;0750 1117
LDR RTCC,W ;0751 1801
STWR 026H ;0752 11A6
BCR 010H,0 ;0753 0010
BSR STATUS,5 ;0754 0A83
BSR PORTA,4 ;0755 0A05
LJUMP 06D1H ;0756 2ED1
ADDWI 0FFH ;0757 37FF
ADDWI 0FFH ;0758 37FF
ADDWI 0FFH ;0759 37FF
ADDWI 0FFH ;075A 37FF
ADDWI 0FFH ;075B 37FF
ADDWI 0FFH ;075C 37FF
ADDWI 0FFH ;075D 37FF
ADDWI 0FFH ;075E 37FF
ADDWI 0FFH ;075F 37FF
ADDWI 0FFH ;0760 37FF
ADDWI 0FFH ;0761 37FF
ADDWI 0FFH ;0762 37FF
ADDWI 0FFH ;0763 37FF
ADDWI 0FFH ;0764 37FF
ADDWI 0FFH ;0765 37FF
ADDWI 0FFH ;0766 37FF
ADDWI 0FFH ;0767 37FF
ADDWI 0FFH ;0768 37FF
ADDWI 0FFH ;0769 37FF
ADDWI 0FFH ;076A 37FF
ADDWI 0FFH ;076B 37FF
ADDWI 0FFH ;076C 37FF
ADDWI 0FFH ;076D 37FF
ADDWI 0FFH ;076E 37FF
ADDWI 0FFH ;076F 37FF
BCR STATUS,5 ;0770 0283
LDWI 007H ;0771 3A07
STWR 00AH ;0772 118A
LDR RTCC,W ;0773 1801
ADDWR PCL,R ;0774 1B82
LJUMP 06CDH ;0775 2ECD
LJUMP 06E4H ;0776 2EE4
LJUMP 071BH ;0777 2F1B
LJUMP 06D1H ;0778 2ED1
ADDWI 0FFH ;0779 37FF
ADDWI 0FFH ;077A 37FF
ADDWI 0FFH ;077B 37FF
ADDWI 0FFH ;077C 37FF
ADDWI 0FFH ;077D 37FF
ADDWI 0FFH ;077E 37FF
ADDWI 0FFH ;077F 37FF
CLRWT ;0780 1001
BSR STATUS,5 ;0781 0A83
LDWI 010H ;0782 3A10
STWR PORTA ;0783 1185
CLRR PORTB ;0784 1106
BCR STATUS,5 ;0785 0283
COMR 07FH,W ;0786 1F7F
STWR PORTA ;0787 1185
CLRR PORTB ;0788 1106
CLRR 079H ;0789 1179
BSR STATUS,5 ;078A 0A83
LDWI 0A8H ;078B 3AA8
STWR RTCC ;078C 1181
BCR STATUS,5 ;078D 0283
CLRR RTCC ;078E 1101
CLRWT ;078F 1001
LDR RTCC,W ;0790 1801
STWR PORTB ;0791 1186
LDWI 004H ;0792 3A04
STWR 07CH ;0793 11FC
RLR 07CH,R ;0794 15FC
RRR 07CH,R ;0795 16FC
LDR 07CH,W ;0796 187C
BSR STATUS,CF ;0797 0803
SUBWR PORTB,W ;0798 1C06
BTSS STATUS,ZF ;0799 0D03
LJUMP 078FH ;079A 2F8F
BSR STATUS,5 ;079B 0A83
LDWI 0B8H ;079C 3AB8
STWR RTCC ;079D 1181
BCR STATUS,5 ;079E 0283
CLRWT ;079F 1001
LDR RTCC,W ;07A0 1801
STWR PORTB ;07A1 1186
XORWI 008H ;07A2 3608
BTSS STATUS,ZF ;07A3 0D03
LJUMP 079FH ;07A4 2F9F
CLRR PORTB ;07A5 1106
CLRWT ;07A6 1001
LCALL 07BEH ;07A7 27BE
INCR PORTB,R ;07A8 1986
LDWI 010H ;07A9 3A10
XORWR PORTB,W ;07AA 1406
BTSS STATUS,ZF ;07AB 0D03
LJUMP 07A6H ;07AC 2FA6
CLRR PORTB ;07AD 1106
CLRR 07CH ;07AE 117C
INCR PORTB,R ;07AF 1986
CLRWT ;07B0 1001
LDR 07CH,W ;07B1 187C
ANDWI 087H ;07B2 3487
LCALL 07CDH ;07B3 27CD
INCR 07CH,R ;07B4 19FC
BCR STATUS,CF ;07B5 0003
RLR PORTB,R ;07B6 1586
BTSS STATUS,CF ;07B7 0C03
LJUMP 07B0H ;07B8 2FB0
CLRR 07CH ;07B9 117C
SLEEP ;07BA 1002
LDWI 011H ;07BB 3A11
STWR 07EH ;07BC 11FE
LJUMP 0160H ;07BD 2960
BSR STATUS,5 ;07BE 0A83
LDWI 087H ;07BF 3A87
STWR RTCC ;07C0 1181
BCR STATUS,5 ;07C1 0283
LDWI 014H ;07C2 3A14
STWR 025H ;07C3 11A5
LDWI 007H ;07C4 3A07
STWR RTCC ;07C5 1181
CLRWT ;07C6 1001
LDR RTCC,W ;07C7 1801
BTSS STATUS,ZF ;07C8 0D03
LJUMP 07C6H ;07C9 2FC6
DECRSZ 025H,R ;07CA 1EA5
LJUMP 07C4H ;07CB 2FC4
RTIW 000H ;07CC 3100
BSR STATUS,5 ;07CD 0A83
STWR RTCC ;07CE 1181
BCR STATUS,5 ;07CF 0283
LDWI 050H ;07D0 3A50
STWR 025H ;07D1 11A5
LDWI 007H ;07D2 3A07
STWR RTCC ;07D3 1181
CLRWT ;07D4 1001
LDR RTCC,W ;07D5 1801
BTSS STATUS,ZF ;07D6 0D03
LJUMP 07D4H ;07D7 2FD4
DECRSZ 025H,R ;07D8 1EA5
LJUMP 07D2H ;07D9 2FD2
RTIW 000H ;07DA 3100
ADDWI 0FFH ;07DB 37FF
ADDWI 0FFH ;07DC 37FF
ADDWI 0FFH ;07DD 37FF
ADDWI 0FFH ;07DE 37FF
ADDWI 0FFH ;07DF 37FF
ADDWI 0FFH ;07E0 37FF
ADDWI 0FFH ;07E1 37FF
ADDWI 0FFH ;07E2 37FF
ADDWI 0FFH ;07E3 37FF
ADDWI 0FFH ;07E4 37FF
ADDWI 0FFH ;07E5 37FF
ADDWI 0FFH ;07E6 37FF
ADDWI 0FFH ;07E7 37FF
ADDWI 0FFH ;07E8 37FF
ADDWI 0FFH ;07E9 37FF
ADDWI 0FFH ;07EA 37FF
ADDWI 0FFH ;07EB 37FF
ADDWI 0FFH ;07EC 37FF
ADDWI 0FFH ;07ED 37FF
ADDWI 0FFH ;07EE 37FF
ADDWI 0FFH ;07EF 37FF
ADDWI 0FFH ;07F0 37FF
ADDWI 0FFH ;07F1 37FF
ADDWI 0FFH ;07F2 37FF
ADDWI 0FFH ;07F3 37FF
ADDWI 0FFH ;07F4 37FF
ADDWI 0FFH ;07F5 37FF
ADDWI 0FFH ;07F6 37FF
ADDWI 0FFH ;07F7 37FF
ADDWI 0FFH ;07F8 37FF
ADDWI 0FFH ;07F9 37FF
ADDWI 0FFH ;07FA 37FF
ADDWI 0FFH ;07FB 37FF
ADDWI 0FFH ;07FC 37FF
ADDWI 0FFH ;07FD 37FF
ADDWI 0FFH ;07FE 37FF
ADDWI 0FFH ;07FF 37FF
END

IMD 103 DEMO PROGRAM 操作说明

IMD 103 DEMO PROGRAM 操作说明:




注意事项:




1. 须配合 MDT 仿真器光盘中 Demo program \ IMD100-03.JPG 档案之演示板电路使用




2. Configuration Register 须作如下设定:

(1) External Power disable

(2) 使用 control OSC mode (建议使用 10MHz)

(3) Watchdog 须 enable

(4) PUT 须 enable

(5) PRD 须 disable




3. 未使用之接脚将 output Lo

EX. 以 42 pin 转接座仿真 10P74(40pin) 时,

演示板上 PA7 及 PA6 恒亮




-----------------------------------------------------------------------------------------------------------------------------

demo10P73.asm // STAGE1_I/O testing :




(1)PB 01H 值闪烁三次, 代表已进入STAGE1

(2)PB.PC 执行跑马灯程序,同时 PA 由 PA0 开始点亮至 PA5 为止

(3)测试完毕,PB 将维持 01H 输出值,直到按下 MCLR 键始执行跳关程序跳至下一 STAGE

STAGE2_RAM testing :




(1)PB 02H 值闪烁三次, 代表已进入STAGE2

(2)PC 28H 闪烁三次, 此为 RAM testing BANK0 之起始地址

(RAM 00H ~ 27H 的部份地址供特殊缓存器及子程序循环使用, 所以将 RAM testing BANK0 设定为从 10H 开始)

(3)PC 显示 28H ~ 7FH 值

(4)PC A0H 闪烁三次, 此为 RAM testing BANK1 之起始地址, 同时 RB 显示 01H 代表 RAM BANK0(RAM 80H ~ 9FH 的部份地址供特殊缓存器及子程序循环使用, 所以将 RAM testing BANK1 设定为从 10H 开始)

(5)PC 显示 A0H ~ FFH 值

(6)PC FFH 闪烁三次, 此为 RAM testing 之结束地址

(7)测试完毕,PB 将维持 02H 输出值,直到按下 MCLR 键始执行跳关程序跳至下一 STAGE

STAGE3_RTCC testing :




(1)PB 03H 值闪烁三次, 代表已进入STAGE3

(2)所有 I/O port 上之 LED 均熄灭, 直至按下 RTCC 键始有动作

(3)外部 RTCC 测试, PC 将反应出按下 RTCC 键的次数, 其中

1~ 7 次 trig edge 为 Hi > Lo

8~14 次 trig edge 为 Lo > Hi

(4)按下第 15 次时开始执行内部 RTCC 测试,

PB0 将左旋至 PB7 为止, 且每左旋一个位置其间隔时间将因 RTCC 使用 prescaler 比例的加大而变长

(5)测试完毕,PB 将维持 03H 输出值,直到按下 MCLR 键始执行跳关程序跳至下一 STAGE

STAGE4_WDT testing :




(1)PB 04H 值闪烁三次, 代表已进入STAGE4

(2)PA 由 01H 开始显示至 08H 为止, 同时 PB HI/LO byte 相对位置交替变换作 SWAP 动作,

且每交替之间隔时间将因 WDT 使用 prescaler 比例的加大而变长

(3)测试完毕,PB 将维持 04H 输出值,直到按下 MCLR 键始执行跳关程序跳至下一 STAGE

STAGE5_AD conversion testing :




(1)PB 05H 值闪烁三次, 代表已进入STAGE5




(2)PB LED 熄灭代表已经开启 AD Channel 0,

此时将 PATH PA0 调整至 PATH AD0,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(3)按下 RTCC 键后 PB 显示 01H 开启 AD Channel 1,

此时将 PATH PA1 调整至 PATH AD1,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(4)按下 RTCC 键后 PB 显示 02H 开启 AD Channel 2,

此时将 PATH PA2 调整至 PATH AD2,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(5)按下 RTCC 键后 PB 显示 03H 开启 AD Channel 3,

此时将 PATH PA3 调整至 PATH AD3,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(6)按下 RTCC 键后 PB 显示 04H 开启 AD Channel 4,

此时将 PATH PA5 调整至 PATH AD4,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(7)按下 RTCC 键结束测试,

PB 将维持 05H 输出值,

直到按下 MCLR 键始执行跳关程序跳至下一 STAGE




STAGE6_Capture testing :




(1)PB 06H 值闪烁三次, 代表已进入STAGE6




(2)按下 RTCC 键后 PB 显示 01H 代表 CCP1 接脚当侦测到每一个 Hi to Lo 发生时即产生中断,

按下一次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(3)按下 RTCC 键后 PB 显示 02H 代表 CCP1 接脚当侦测到每一个 Lo to Hi 发生时即产生中断,

按下一次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(4)按下 RTCC 键后 PB 显示 03H 代表 CCP1 接脚当侦测到每四个 Hi to Lo 发生时即产生中断,

按下四次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(5)按下 RTCC 键后 PB 显示 04H 代表 CCP1 接脚当侦测到每十六个 Hi to Lo 发生时即产生中断,

按下十六次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(6)按下 RTCC 键后 PB 显示 05H 代表 CCP2 接脚当侦测到每一个 Hi to Lo 发生时即产生中断,

按下一次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(7)按下 RTCC 键后 PB 显示 06H 代表 CCP2 接脚当侦测到每一个 Lo to Hi 发生时即产生中断,

按下一次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(8)按下 RTCC 键后 PB 显示 07H 代表 CCP2 接脚当侦测到每四个 Hi to Lo 发生时即产生中断,

按下四次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(9)按下 RTCC 键后 PB 显示 08H 代表 CCP2 接脚当侦测到每十六个 Hi to Lo 发生时即产生中断,

按下十六次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(10) 按下 RTCC 键结束测试,

PB 将维持 06H 输出值,

直到按下 MCLR 键始执行跳关程序跳至下一 STAGE




STAGE7_Compare testing :




(1)PB 07H 值闪烁三次, 代表已进入STAGE7

(2)PC 依序显示值 02H > 04H > 06H 然后熄灭

(3)PB 将维持 07H 输出值,

直到按下 MCLR 键始执行跳关程序跳至下一 STAGE




STAGE8_PWM testing :




(1)PB 08H 值闪烁三次, 代表已进入STAGE8

(2)PC 显示 06H 值




(3)按下 RTCC 键后 PB 显示 01H 代表 CCP1/CCP2 接脚将输出一Duty cycle为1/4周期之方波,

此时将发现 PC LED 亮度降低,

而方波可直接以示波器由 CCP1/CCP2 接脚测量到




(4)按下 RTCC 键后 PB 显示 02H 代表 CCP1/CCP2 接脚将输出一Duty cycle为1/2周期之方波,

此时将发现 PC LED 亮度更低,

而方波可直接以示波器由 CCP1/CCP2 接脚测量到




(5)按下 RTCC 键后 PB 显示 03H 代表 CCP1/CCP2 接脚将输出一Duty cycle为1/1周期之方波,

此时将发现 PC LED 完全熄灭,

而方波可直接以示波器由 CCP1/CCP2 接脚测量到




(6)按下 RTCC 键后 PB 将维持 08H 输出值,

直到按下 MCLR 键始执行跳关程序跳回至 STAGE1




-----------------------------------------------------------------------------------------------------------------------------

demo10P74.asm // STAGE1_I/O testing :




(1)PB 01H 值闪烁三次, 代表已进入STAGE1

(2)PB.PC.PD.PE 执行跑马灯程序,同时 PA 由 PA0 开始点亮至 PA5 为止

(3)测试完毕,PB 将维持 01H 输出值,直到按下 MCLR 键始执行跳关程序跳至下一 STAGE

STAGE2_RAM testing :




(1)PB 02H 值闪烁三次, 代表已进入STAGE2

(2)PC 28H 闪烁三次, 此为 RAM testing BANK0 之起始地址

(RAM 00H ~ 27H 的部份地址供特殊缓存器及子程序循环使用, 所以将 RAM testing BANK0 设定为从 10H 开始)

(3)PC 显示 28H ~ 7FH 值

(4)PC A0H 闪烁三次, 此为 RAM testing BANK1 之起始地址, 同时 RB 显示 01H 代表 RAM BANK0(RAM 80H ~ 9FH 的部份地址供特殊缓存器及子程序循环使用, 所以将 RAM testing BANK1 设定为从 10H 开始)

(5)PC 显示 A0H ~ FFH 值

(6)PC FFH 闪烁三次, 此为 RAM testing 之结束地址

(7)测试完毕,PB 将维持 02H 输出值,直到按下 MCLR 键始执行跳关程序跳至下一 STAGE

STAGE3_RTCC testing :




(1)PB 03H 值闪烁三次, 代表已进入STAGE3

(2)所有 I/O port 上之 LED 均熄灭, 直至按下 RTCC 键始有动作

(3)外部 RTCC 测试, PC 将反应出按下 RTCC 键的次数, 其中

1~ 7 次 trig edge 为 Hi > Lo

8~14 次 trig edge 为 Lo > Hi

(4)按下第 15 次时开始执行内部 RTCC 测试,

PB0 将左旋至 PB7 为止, 且每左旋一个位置其间隔时间将因 RTCC 使用 prescaler 比例的加大而变长

(5)测试完毕,PB 将维持 03H 输出值,直到按下 MCLR 键始执行跳关程序跳至下一 STAGE

STAGE4_WDT testing :




(1)PB 04H 值闪烁三次, 代表已进入STAGE4

(2)PA 由 01H 开始显示至 08H 为止, 同时 PB HI/LO byte 相对位置交替变换作 SWAP 动作,

且每交替之间隔时间将因 WDT 使用 prescaler 比例的加大而变长

(3)测试完毕,PB 将维持 04H 输出值,直到按下 MCLR 键始执行跳关程序跳至下一 STAGE

STAGE5_AD conversion testing :




(1)PB 05H 值闪烁三次, 代表已进入STAGE5




(2)PB LED 熄灭代表已经开启 AD Channel 0,

此时将 PATH PA0 调整至 PATH AD0,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(3)按下 RTCC 键后 PB 显示 01H 开启 AD Channel 1,

此时将 PATH PA1 调整至 PATH AD1,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(4)按下 RTCC 键后 PB 显示 02H 开启 AD Channel 2,

此时将 PATH PA2 调整至 PATH AD2,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(5)按下 RTCC 键后 PB 显示 03H 开启 AD Channel 3,

此时将 PATH PA3 调整至 PATH AD3,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(6)按下 RTCC 键后 PB 显示 04H 开启 AD Channel 4,

此时将 PATH PA5 调整至 PATH AD4,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(7)按下 RTCC 键后 PB 显示 05H 开启 AD Channel 5,

此时将 PATH PE0 调整至 PATH AD5,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(8)按下 RTCC 键后 PB 显示 06H 开启 AD Channel 6,

此时将 PATH PE1 调整至 PATH AD6,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(9)按下 RTCC 键后 PB 显示 07H 开启 AD Channel 7,

此时将 PATH PE2 调整至 PATH AD7,

调整 DEMO BOARD 上之可变电阻即可由 PC 观查到 A/D 之转换值




(10) 按下 RTCC 键结束测试,

PB 将维持 05H 输出值,

直到按下 MCLR 键始执行跳关程序跳至下一 STAGE




STAGE6_Capture testing :




(1)PB 06H 值闪烁三次, 代表已进入STAGE6




(2)按下 RTCC 键后 PB 显示 01H 代表 CCP1 接脚当侦测到每一个 Hi to Lo 发生时即产生中断,

按下一次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(3)按下 RTCC 键后 PB 显示 02H 代表 CCP1 接脚当侦测到每一个 Lo to Hi 发生时即产生中断,

按下一次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(4)按下 RTCC 键后 PB 显示 03H 代表 CCP1 接脚当侦测到每四个 Hi to Lo 发生时即产生中断,

按下四次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(5)按下 RTCC 键后 PB 显示 04H 代表 CCP1 接脚当侦测到每十六个 Hi to Lo 发生时即产生中断,

按下十六次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(6)按下 RTCC 键后 PB 显示 05H 代表 CCP2 接脚当侦测到每一个 Hi to Lo 发生时即产生中断,

按下一次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(7)按下 RTCC 键后 PB 显示 06H 代表 CCP2 接脚当侦测到每一个 Lo to Hi 发生时即产生中断,

按下一次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(8)按下 RTCC 键后 PB 显示 07H 代表 CCP2 接脚当侦测到每四个 Hi to Lo 发生时即产生中断,

按下四次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(9)按下 RTCC 键后 PB 显示 08H 代表 CCP2 接脚当侦测到每十六个 Hi to Lo 发生时即产生中断,

按下十六次 CCP1 键后随即进入中断程序使得 PB 上 FFH 值闪烁三次




(10) 按下 RTCC 键结束测试,

PB 将维持 06H 输出值,

直到按下 MCLR 键始执行跳关程序跳至下一 STAGE




STAGE7_Compare testing :




(1)PB 07H 值闪烁三次, 代表已进入STAGE7

(2)PC 依序显示值 02H > 04H > 06H 然后熄灭

(3)PB 将维持 07H 输出值,

直到按下 MCLR 键始执行跳关程序跳至下一 STAGE




STAGE8_PWM testing :




(1)PB 08H 值闪烁三次, 代表已进入STAGE8

(2)PC 显示 06H 值




(3)按下 RTCC 键后 PB 显示 01H 代表 CCP1/CCP2 接脚将输出一Duty cycle为1/4周期之方波,

此时将发现 PC LED 亮度降低,

而方波可直接以示波器由 CCP1/CCP2 接脚测量到




(4)按下 RTCC 键后 PB 显示 02H 代表 CCP1/CCP2 接脚将输出一Duty cycle为1/2周期之方波,

此时将发现 PC LED 亮度更低,

而方波可直接以示波器由 CCP1/CCP2 接脚测量到




(5)按下 RTCC 键后 PB 显示 03H 代表 CCP1/CCP2 接脚将输出一Duty cycle为1/1周期之方波,

此时将发现 PC LED 完全熄灭,

而方波可直接以示波器由 CCP1/CCP2 接脚测量到




(6)按下 RTCC 键后 PB 将维持 08H 输出值,

直到按下 MCLR 键始执行跳关程序跳回至 STAGE1

DEMO PROGRAM MDT10P63

; PROGRM NAME : AZ9730B Demo PROGRAM
;
; PROGRM NAME : DEMO_B.ASM
;
;CONSTANT
PORTA EQU 0FFH ;RA 8 BITS
PORTB EQU 0FFH ;RB 8 BITS
PORTC EQU 0FFH ;RC 8 BITS
PORTD EQU 0FFH ;RD 8 BITS
PORTE EQU 07H ;RE 3 BITS
RAMNO EQU 96 ;20H - FFH
TBLEND EQU 26H
;
; ***** REGISTER FILE ****
INDEX EQU 0
RTCC EQU 1
PC EQU 2
STUS EQU 3
FSR EQU 4
RA EQU 5 ;
RB EQU 6 ;
RC EQU 7 ;
RD EQU 8 ;
RE EQU 9 ;
RCH EQU 0AH ;PCH
IRQ EQU 0BH ;INTTERUPT
PIR1 EQU 0CH ;TIMER 1
PIR2 EQU 0DH ;PD INTTERUPT
T1L EQU 0EH ;TIMER 1 LOW BYTE
T1H EQU 0FH ;TIMER 1 HI BYTE
T1C EQU 10H ;TIMER CONTROL
TM1CR EQU 15H ;TIMER CONTROL
TM1CE EQU 17H ;TIMER CONTROL
TESTNO EQU 20H ;TEST NO
COUNT EQU 21H
ERROR EQU 22H
DLYCNT EQU 23H
DLYCT2 EQU 24H
TEMP EQU 25H
;********************
; STATUS FLAG
A EQU 0
CY EQU 0
DC EQU 1
ZF EQU 2
PD EQU 3
TO EQU 4
;********************

ORG 00H
LJUMP BEGIN

ORG 04H
BTSS 0BH,0
LCALL DELAY
BTSS 0DH,7
LCALL DELAY
BSR ERROR,0
BCR T1C,0
LDWI 00H
STWR IRQ
RTFI

ORG 030H
TNOISE
CLRWT
LDWI 08H
STWR COUNT
LDWI 7FH
STWR RA
STWR RB
STWR RC
STWR RD
STWR RE
BSR STUS,5 ; Set Page 1
CLRW
CPIO RA
CPIO RB
CPIO RC
STWR RD ; Set Port_D OUTPUT MODE
STWR RE ; Set Port_E OUTPUT MODE
BCR STUS,5

NTLOOP
LDWI 25H
STWR FSR

NORAM
CLRWT
LDR RA,A ;X->R(X) FOR X=20H - 7FH
STWR INDEX
INCR FSR
BTSS FSR,7
LJUMP NORAM
LDWI 0A0H
STWR FSR

NORAM1
CLRWT
LDR RB,A ;X->R(X) FOR X=A0H - FFH
STWR INDEX
INCRSZ FSR,1
LJUMP NORAM1
LDWI 25H
STWR FSR

NORAM2
CLRWT
LDR INDEX,A ;IF R(X)==RC FOR X=20H - 7FH OR NOT
XORWR RC,A
BTSS STUS,ZF
LJUMP POWER
INCR FSR
BTSS FSR,7
LJUMP NORAM2
LDWI 0A0H
STWR FSR

NORAM3
CLRWT
LDR INDEX,A ;IF R(X)==RD FOR X=A0H - FFH OR NOT
XORWR RD,A
BTSS STUS,ZF
LJUMP POWER
INCRSZ FSR,1
LJUMP NORAM3
NOP
LCALL DELAY
DECRSZ COUNT,1
LJUMP NORAM4
LDWI 08H
STWR COUNT
LDWI 7FH
STWR RA
STWR RB
STWR RC
STWR RD
STWR RE
LJUMP NTLOOP

NORAM4
BSR STUS,CY
RRR RA,1
RRR RB,1
RRR RC,1
RRR RD,1
INCR RE,1
LJUMP NTLOOP



ORG 01FFH
BEGIN
BTSS STUS,TO
LJUMP KEEP ;WDT WAKE-UP FROM TIME-OUT
BTSS STUS,PD
LJUMP MCLRSP ;/MCLR WAKE-UP FROM SLEEP

LDR RE,A
XORWI 01H
BTSS STUS,ZF
LJUMP TNOISE ;Test noise

POWER

BSR STUS,5 ; Set Page 1
LDWI 0FFH
CPIO RA
CPIO RB
CPIO RC
STWR RD ; Set Port_D OUTPUT MODE
STWR RE ; Set Port_E OUTPUT MODE
BCR STUS,5

POWERON
LDWI 7FH
STWR FSR
STWR RA
STWR RB
STWR RC
STWR RD
STWR RE
BSR STUS,5
LDWI 00H
STWR RE
BCR STUS,5
LDWI 0FEH ;RC=1110 , LF=1101 , XT=1100 , HF=1011
STWR RE
LCALL DELAY
BSR STUS,5
LDWI 0FFH
CPIO RB
STWR RE
BCR STUS,5
LJUMP PWRUP
;****************************************************************
;* POWER UP *
;* ERROR MESSAGE *
;* BIT 0,1 - STATUS INCORRECT *
;* BIT 2,3 - RB ERROR *
;****************************************************************

PWRUP CLRR ERROR ;CLEAR ERROR FLAG
CLRR TESTNO ;RESET TESTNO
LDWI 01DH ;IF STUS CORRECT OR NOT
STWR STUS
LDR STUS,A
ANDWI 0FDH
XORWI 01DH
BTSS STUS,ZF
BSR ERROR,0
LDWI 1AH
STWR STUS
LDR STUS,A
ANDWI 0EFH
XORWI 0AH
BTSS STUS,ZF
BSR ERROR,1

LDWI 10101010B
STWR RA
STWR RB
STWR RC
STWR RD
STWR RE
ANDWI PORTA
XORWR RA,A ;RA PULL-UP IN INPUT MODE
BTSC STUS,ZF ;IF RA INPUT DATA = OUTPUT DATA
BSR ERROR,2 ;THEN ERROR
LDWI 10101010B
ANDWI PORTB
XORWR RB,A ;RB PULL-UP IN INPUT MODE
BTSC STUS,ZF ;IF RB INPUT DATA = OUTPUT DATA
BSR ERROR,3 ;THEN ERROR
LDWI 10101010B
ANDWI PORTC
XORWR RC,A ;RC PULL-UP IN INPUT MODE
BTSC STUS,ZF ;IF RC INPUT DATA = OUTPUT DATA
BSR ERROR,4 ;THEN ERROR
LDWI 10101010B
ANDWI PORTD
XORWR RD,A ;RD IN INPUT MODE
BTSC STUS,ZF ;IF RD INPUT DATA = OUTPUT DATA
BSR ERROR,5 ;THEN ERROR
LDWI 10101010B
ANDWI PORTE
XORWR RE,A ;RE IN INPUT MODE
BTSC STUS,ZF ;IF RE INPUT DATA = OUTPUT DATA
BSR ERROR,6 ;THEN ERROR

BSR STUS,5
CLRW
CPIO RA
CPIO RB
CPIO RC
STWR RD ;RE OUTPUT MODE
STWR RE ;RE OUTPUT MODE
BCR STUS,5
LDWI 80H
STWR TEMP
P_LOOP
CLRWT
LDR TEMP,A
IORWR TEMP,A
STWR RA
STWR RB
STWR RC
STWR RD
STWR RE
XORWR TEMP,A
BTSS STUS,ZF ;IF NOT ZER0
BSR ERROR,7 ; THEN FAIL
LDR RB,A
ANDWI PORTB
XORWR RB,A
BTSS STUS,ZF
BSR ERROR,7
LCALL DELAY
BCR STUS,CY
RRR TEMP
BTSS STUS,CY
LJUMP P_LOOP ;RA,RB:10000000->01000000->00100000->00010000->
LDWI 1 ; 00001000->00000100->00000010->00000001
BCR STUS,CY
SUBWR TESTNO
INCR TESTNO
INCR TESTNO,A
STWR RE ;SHOW TEST NO.
LDR ERROR,0
STWR RA ;SHOW ERROR
STWR RB ;SHOW ERROR
STWR RC ;SHOW ERROR
STWR RD ;SHOW ERROR
SLEEP
LJUMP BEGIN


MCLRSP
LDWI 07FH ;RB AND RE OUTPUT
STWR FSR
CLRWT
LDWI 10001111B
TMODE
BSR STUS,5
CLRW
CPIO RB
STWR RE
BCR STUS,5
LDWI 0
XORWR TESTNO,A
BTSC STUS,ZF ;TESTNO = 00H TEST T_RAM
LJUMP T_RAM
LJUMP TAZ
TAZ
LDWI 02H
STWR RCH
LDWI 01H
SUBWR TESTNO,A
ADDWR PC
LJUMP T_PORT ;I/O PORT TEST & RAM DATA TEST
LJUMP T_RTCC ;RTCC TEST
LJUMP T_WDT ;WDT TEST
LJUMP INTTM0 ;PIN RESET TEST
LJUMP POWERON ;POWER ON
T_RAM
CLRWT
INCR TESTNO
INCR TESTNO,0
STWR RE
LCALL DELAY
CLRR ERROR
LDWI 26H ;STWRT RAMTEST AT 26H
STWR FSR
LCALL FTEST
LDR ERROR,0
STWR RB ;RB=00 IF SUCCESSFUL, RB=FFH FF ERROR
SLEEP
LJUMP BEGIN


FTEST
LDWI RAMNO ;RAMNO=96 BYTES TO TEST
STWR COUNT
LDWI 06H
SUBWR COUNT
FTEST1
CLRWT
LDR FSR,A ;X->R(X) FOR X=26H - 7FH
STWR INDEX
INCR FSR
DECRSZ COUNT
LJUMP FTEST1
LDWI 0A0H ;STWRT RAMTEST AT 26H
STWR FSR
LDWI RAMNO ;RAMNO=92 BYTES TO TEST
STWR COUNT
FTEST2
CLRWT
LDR FSR,A ;X->R(X) FOR X=26H - 7FH
STWR INDEX
INCR FSR
DECRSZ COUNT
LJUMP FTEST2
LDWI RAMNO
STWR COUNT
LDWI 0FFH
STWR FSR
FCHK1
CLRWT
LDR INDEX,A ;IF R(X)==X FOR X=1FH - 13H OR NOT
XORWR FSR,A
BTSS STUS,ZF
LJUMP FERR1
DECR FSR
DECRSZ COUNT
LJUMP FCHK1
LDWI RAMNO ;RAMNO=96 BYTES TO TEST
STWR COUNT
LDWI 06H
SUBWR COUNT ;RAMNO=90 BYTES TO TEST
LDWI 7FH
STWR FSR
FCHK2
CLRWT
LDR INDEX,A ;IF R(X)==X FOR X=1FH - 13H OR NOT
XORWR FSR,A
BTSS STUS,ZF
LJUMP FERR1
DECR FSR
DECRSZ COUNT
LJUMP FCHK2
RTIW 0
FERR1
LDR FSR,0
STWR ERROR ;TEST FAIL
RTIW 0

DELAY
LDWI 0FFH
STWR DLYCNT
LP1
LCALL DLY
DECRSZ DLYCNT
LJUMP LP1
RTIW 0
DLY
CLRR DLYCT2
DLY1
CLRWT
INCRSZ DLYCT2
LJUMP DLY1
RTIW 55H
T_PORT ;TEST PORT-B OUT 1. RB SHOW FSR
CLRWT
CLRR ERROR
INCR TESTNO
INCR TESTNO,0
STWR RE
LDR RE,0 ;15H ~ 1FH STWR 33H
STWR TEMP
LDWI 03H
XORWR TEMP,A
BTSS STUS,ZF ;IF INPUT DATA <> OUPUT DATA
BSR ERROR,4 ; THEN FAIL
BSR STUS,5 ;
CLRW
CPIO RA
CPIO RC
STWR RD
BCR STUS,5 ; THEN FAIL
LDWI 55H
STWR RA
LDR RA,0 ;15H ~ 1FH STWR 33H
STWR TEMP
LDWI 55H
XORWR TEMP,A
BTSS STUS,ZF ;IF INPUT DATA <> OUPUT DATA
BSR ERROR,0 ; THEN FAIL
LDWI 55H
STWR RB
LDR RB,0 ;15H ~ 1FH STWR 33H
STWR TEMP
LDWI 55H
XORWR TEMP,A
BTSS STUS,ZF ;IF INPUT DATA <> OUPUT DATA
BSR ERROR,1 ; THEN FAIL
LDWI 55H
STWR RC
LDR RC,0 ;15H ~ 1FH STWR 33H
STWR TEMP
LDWI 55H
XORWR TEMP,A
BTSS STUS,ZF ;IF INPUT DATA <> OUPUT DATA
BSR ERROR,2 ; THEN FAIL
LDWI 55H
STWR RD
LDR RD,0 ;15H ~ 1FH STWR 33H
STWR TEMP
LDWI 55H
XORWR TEMP,A
BTSS STUS,ZF ;IF INPUT DATA <> OUPUT DATA
BSR ERROR,3 ; THEN FAIL
LDWI 0AAH
STWR RA
LDR RA,0 ;15H ~ 1FH STWR 33H
STWR TEMP
LDWI 0AAH
XORWR TEMP,A
BTSS STUS,ZF ;IF INPUT DATA <> OUPUT DATA
BSR ERROR,0 ; THEN FAIL
LDWI 0AAH
STWR RB
LDR RB,0 ;15H ~ 1FH STWR 33H
STWR TEMP
LDWI 0AAH
XORWR TEMP,A
BTSS STUS,ZF ;IF INPUT DATA <> OUPUT DATA
BSR ERROR,1 ; THEN FAIL
LDWI 0AAH
STWR RC
LDR RC,0 ;15H ~ 1FH STWR 33H
STWR TEMP
LDWI 0AAH
XORWR TEMP,A
BTSS STUS,ZF ;IF INPUT DATA <> OUPUT DATA
BSR ERROR,2 ; THEN FAIL
LDWI 0AAH
STWR RD
LDR RD,0 ;15H ~ 1FH STWR 33H
STWR TEMP
LDWI 0AAH
XORWR TEMP,A
BTSS STUS,ZF ;IF INPUT DATA <> OUPUT DATA
BSR ERROR,3 ; THEN FAIL
BSR STUS,5
LDWI 0FFH
STWR RA
STWR RC
STWR RD
BCR STUS,5
LDR ERROR,0
STWR RB
SLEEP
LJUMP BEGIN


T_RTCC
CLRWT
LDWI 0
CPIO RB
INCR TESTNO
INCR TESTNO,0
STWR RE ;SHOW TEST NO.
CLRR RB
CLRR ERROR

LDWI 10101000B ;INC ON LOW TO HIGH EDGE
TMODE
CLRR RTCC
T_R4
CLRWT
LDR RTCC,A
STWR RB ;SHOW COUNT TO RB
LDWI 04H ;RTCC=0,1,2,3,4
STWR TEMP
RLR TEMP
RRR TEMP
LDR TEMP,A
BSR STUS,CY
SUBWR RB,A
BTSS STUS,ZF
LJUMP T_R4

LDWI 10111000B ;INC ON HIGH TO LOW EDGE
TMODE
T_R8
CLRWT
LDR RTCC,A
STWR RB ;RTCC=5,6,7,8
XORWI 08H
BTSS STUS,ZF
LJUMP T_R8

CLRR RB
T_R10
CLRWT
LCALL ONESEC
INCR RB
LDWI 10
XORWR RB,A
BTSS STUS,ZF ;IF COUNT 10 SEC, THEN STOP
LJUMP T_R10
CLRR RB
CLRR TEMP
T_R20
CLRWT
LDR TEMP,0
ANDWI 07H
LCALL ONESEC1
INCR TEMP
INCR RB
LDWI 10
XORWR RB,A
BTSS STUS,ZF ;IF COUNT 10 SEC, THEN STOP
LJUMP T_R20
CLRR TEMP
SLEEP
LJUMP BEGIN

ONESEC
LDWI 10000111B ;INTERNAL CLOCK, PSC=256
TMODE
LDWI 14 ;Freq = 4*256*(256-7)*14 = 3.57 MHz
STWR COUNT
O_S1
LDWI 7
STWR RTCC
O_S2
CLRWT
LDR RTCC,A
BTSS STUS,ZF
LJUMP O_S2
DECRSZ COUNT
LJUMP O_S1
RTIW 0
ONESEC1
LDWI 1000111B ;INTERNAL CLOCK, PSC=256
TMODE
LDWI 50 ;Freq = 4*256*(256-7)*14 = 3.57 MHz
STWR COUNT
O_S11
LDWI 7
STWR RTCC
O_S21
CLRWT
LDR RTCC,A
BTSS STUS,ZF
LJUMP O_S21
DECRSZ COUNT
LJUMP O_S11
RTIW 0
T_WDT
BSR STUS,5
CLRW
CPIO RB
STWR RE
BCR STUS,5
INCR TESTNO
INCR TESTNO,0
STWR RE
TWDT3
LDWI 08H
STWR COUNT
LDWI 80H
STWR ERROR
LDR ERROR,0
STWR RB
LDR COUNT,0
TMODE
SLEEP
LJUMP BEGIN

TWDT2
LDWI 01H
ADDWR COUNT
LJUMP WCOUNT

WCOUNT ;WDT 1 : 1 RB SHOW 80\H
CLRWT ;WDT 1 : 2 RB SHOW 40\H
BCR STUS,0 ;WDT 1 : 4 RB SHOW 20\H
RRR ERROR ;WDT 1 : 8 RB SHOW 10\H
LDR ERROR,0 ;WDT 1 : 16 RB SHOW 08\H
STWR RB ;WDT 1 : 32 RB SHOW 04\H
BTSC STUS,2 ;WDT 1 : 64 RB SHOW 02\H
LJUMP TWDT3 ;WDT 1 : 128 RB SHOW 01\H
LDR COUNT,0
TMODE
SLEEP
LJUMP BEGIN


KEEP
BSR STUS,5
CLRW
CPIO RB
STWR RE
BCR STUS,5
LDWI 04H
XORWR TESTNO,A
BTSC STUS,2
LJUMP TWDT2
CLRWT
SLEEP
LJUMP BEGIN

INTTM0
CLRWT
LDWI 0F0H
CPIO RA
LDWI 0FEH ;RA0~3 OUTPUT SHOW FEH
STWR RA
LDWI 0AFH
TMODE
INCR TESTNO
INCR TESTNO,0
STWR RE
CLRR ERROR
CLRR RTCC
LDWI 0F0H ;RTCC = F0H
STWR RTCC
LDWI 0A0H ;TEST INT TIMER0
STWR IRQ
TM0J
CLRWT
LDR RTCC,0
STWR RB
BTSS ERROR,0
LJUMP TM0J
INTRB0
LDWI 0FFH
CPIO RB
LDWI 0FDH ;RA0~3 OUTPUT SHOW FDH
STWR RA
LDWI 0DFH
TMODE
LDR RB,0 ;
LDWI 90H ;
STWR IRQ
CLRR ERROR
BB1
CLRWT
SLEEP
NOP
BTSS STUS,4
LJUMP BB1
INTRB01
LDWI 0FFH
CPIO RB
LDWI 0FCH ;RA0~3 OUTPUT SHOW FCH
STWR RA
LDWI 08FH
TMODE
LDR RB,0 ;
LDWI 90H ;
STWR IRQ
CLRR ERROR
BB2
CLRWT
SLEEP
NOP
BTSS STUS,4
LJUMP BB2
INTRB
CLRR TEMP
LDR TEMP,0
STWR RC
LDWI 00H
CPIO RC
LDWI 0FBH ;RA0~3 OUTPUT SHOW FBH
STWR RA
INTRB1
LDR TEMP,0
STWR RC
LDR RB,0 ;RC0~7 OUTPUT SHOW 00~07H
LDWI 88H
STWR IRQ
BB3
CLRWT
SLEEP
NOP
BTSS STUS,4
LJUMP BB3
INCR TEMP
BTSS TEMP,3
LJUMP INTRB1
INTRD
CLRR TEMP
LDR TEMP,0
STWR RC
LDWI 0FAH ;RA0~3 OUTPUT SHOW FAH
STWR RA
INTRD1
LDR TEMP,0
STWR RC ;RC0~7 OUTPUT SHOW 00~0FH
LDR RD,0
BCR PIR2,7
BSR STUS,5
BSR PIR2,7
BCR STUS,5
LDWI 0C0H
STWR IRQ
BB4
CLRWT
SLEEP
NOP
BTSS STUS,4
LJUMP BB4
INCR TEMP
BTSS TEMP,3
LJUMP INTRD1
LDWI 00H ;
CPIO RC
INTM1A ; TIMER1 INTERNAL COUNTER 1:1 & 1:2 & 1:4 & 1:8
LDWI 01H ;
STWR TEMP
CLRR COUNT
BCR PIR2,7
BSR STUS,5
BCR PIR2,7
BCR STUS,5
CLRWT
CLRW
CPIO RB
LDWI 0F9H ;RA0~3 OUTPUT SHOW F9H
STWR RA
CLRR T1H
CLRR T1L
TM2J
LDWI 00H
STWR T1L
BCR PIR1,0
BSR STUS,5
BSR PIR1,0
BCR STUS,5
LDWI 0C0H ;TEST INT TIMER1
STWR IRQ
LDR TEMP,0
STWR T1C
CLRR ERROR
TM1J
CLRWT
LDR T1L,0
STWR RB
BTSS ERROR,0
LJUMP TM1J
LDWI 10H
ADDWR TEMP,1
INCR COUNT,1
BTSS COUNT,2
LJUMP TM2J
INTTM1B ; TIMER1 EXTERNAL COUNTER 1:1
LDWI 07H ;
STWR TEMP
CLRR COUNT
BSR STUS,5
LDWI 00H
STWR RD
BCR STUS,5
CLRWT
LDWI 0F8H ;RA0~3 OUTPUT SHOW F8H
STWR RA
TM2BJ ; TIMER1 EXTERNAL COUNTER 1:2 NOT SYNCHRONIZE
LDWI 0E0H
STWR T1L
BCR PIR1,0
BSR STUS,5
BSR PIR1,0
BCR STUS,5
LDWI 0C0H ;TEST INT TIMER1 IN OSC1
STWR IRQ
LDR TEMP,0 ;
STWR T1C
CLRR ERROR
TM2CJ ; TIMER1 EXTERNAL COUNTER 1:2 NOT SYNCHRONIZE
CLRWT
LDR T1L,0
STWR RD
BTSS ERROR,0
LJUMP TM2CJ
LDWI 10H
ADDWR TEMP,1
INCR COUNT
BTSS COUNT,1
LJUMP TM2BJ
INTTM1C ; TIMER1 EXTERNAL COUNTER 1:4 NOT SYNCHRONIZE
LDWI 3FH
STWR TEMP
CLRR COUNT
CLRWT
LDWI 0F7H ;RA0~3 OUTPUT SHOW F7H
STWR RA
TM3BJ
LDWI 00H
STWR T1L
BCR PIR1,0
BSR STUS,5
BSR PIR1,0
BCR STUS,5
LDWI 0C0H ;TEST INT TIMER1 IN OSC1
STWR IRQ
LDR TEMP,0 ;
STWR T1C
CLRR ERROR
BB5
CLRWT
LDR T1L,0
STWR RD
BTSS ERROR,0
LJUMP BB5
LDWI 00H ;
STWR IRQ
STWR T1C
INCR TESTNO
INCR TESTNO,0
STWR RE
LCALL DELAY
LDWI 08H
STWR RCH
LJUMP PHTEST

ORG 800H

PHTEST
CLRWT
LDWI 0FFH
CPIO RA ;PA INPUT
CPIO RC ;PC INPUT
CPIO RB ;PB INPUT
BSR STUS,5
STWR RD
BCR STUS,5
INCR TESTNO
INCR TESTNO,0
STWR RE ;SHOW TEST NO.
CLRR RB
CLRR ERROR
BSR STUS,5
LDWI 80H
STWR T1C ;SET RA & RC & RD PULL_HI
BCR STUS,5
LDWI 7FH ;SET RB PULL_HI
TMODE
DKEEP
CLRWT
BTSC RA,0
LJUMP DKEEP ;
BSR STUS,5
LDWI 40H
STWR T1C ;TURN OFF RD PULL_HI
BCR STUS,5
DKEEP1
CLRWT
BTSC RA,1
LJUMP DKEEP1 ;
BSR STUS,5
LDWI 20H
STWR T1C ;TURN OFF RC PULL_HI
BCR STUS,5
DKEEP2
CLRWT
BTSC RA,2
LJUMP DKEEP2 ;
LDWI 0FFH
TMODE ;TURN OFF RB PULL_HI
DKEEP3
CLRWT
BTSC RD,0
LJUMP DKEEP3 ;
BSR STUS,5
LDWI 77H
STWR T1C ;TURN OFF RA PULL_HI
STWR RE ;SET PORT E INPUT ON PULL_HI MODE
BCR STUS,5
LDWI 00H
CPIO RA
CPIO RB
LDWI 0F0H
STWR TM1CR
BSR TM1CE,0
CLRR T1L
LDWI 31H
STWR T1C
LDWI 80H
STWR RA
DKEEP4
CLRWT
LDR T1L
STWR RB
BTSC RE,0
LJUMP DKEEP4 ;
LDWI 03H
STWR TM1CR
CLRR T1L
LDWI 03H
STWR T1C
DKEEP5
CLRWT
LDR T1L
STWR RB
BTSC RE,1
LJUMP DKEEP5 ;
LDWI 0F0H
STWR TM1CR
CLRR T1L
LDWI 2BH
STWR T1C
DKEEP6
CLRWT
LDR T1L
STWR RB
BTSC RE,2
LJUMP DKEEP6 ;
BCR TM1CE,0
LDWI 00H
STWR T1C
TSTACK
LCALL STACK1
NOP
BTSC RE,0
LJUMP TSTACK ; GOTO Test STACK
CLRR TESTNO
LDWI 00H
STWR RCH
LJUMP BEGIN ; GOTO BEGIN

ORG 0900H
STACK1
LDWI 07H
STWR ERROR
LDWI 0FFH
STWR RB
BCR STUS,CY
SLOOP1
LCALL DDELAY
RLR RB,1
DECRSZ ERROR
LJUMP SLOOP1
LCALL STACK2
RET

ORG 0A00H
STACK2
LDWI 07H
STWR ERROR
LDWI 0FEH
STWR RB
BCR STUS,CY
SLOOP2
LCALL DDELAY
RLR RB,1
DECRSZ ERROR
LJUMP SLOOP2
LCALL STACK3
RET

ORG 0B00H
STACK3
LDWI 07H
STWR ERROR
LDWI 0FCH
STWR RB
BCR STUS,CY
SLOOP3
LCALL DDELAY
RLR RB,1
DECRSZ ERROR
LJUMP SLOOP3
LCALL STACK4
RET

ORG 0C00H
STACK4
LDWI 07H
STWR ERROR
LDWI 0FFH
STWR RB
BCR STUS,CY
SLOOP4
LCALL DDELAY
RRR RB,1
DECRSZ ERROR
LJUMP SLOOP4
LCALL STACK5
RET

ORG 0D00H
STACK5
LDWI 07H
STWR ERROR
LDWI 07FH
STWR RB
BCR STUS,CY
SLOOP5
LCALL DDELAY
RRR RB,1
DECRSZ ERROR
LJUMP SLOOP5
LCALL STACK6
RET

ORG 0E00H
STACK6
LDWI 07H
STWR ERROR
LDWI 03FH
STWR RB
BCR STUS,CY
SLOOP6
LCALL DDELAY
RRR RB,1
DECRSZ ERROR
LJUMP SLOOP6
RET
ORG 0F00H
DDELAY
LDWI 0FFH
STWR DLYCNT
DLP1
LCALL DDLY
DECRSZ DLYCNT
LJUMP DLP1
RTIW 0
DDLY
CLRR DLYCT2
DDLY1
CLRWT
INCRSZ DLYCT2
LJUMP DDLY1
RTIW 55H

DEMO PROGRAM MDT10P74

; ===== DESCRIPTION ========================================================================================
; for IMD103 7X series: 10P74

; ===== REGISTER DEFINITION (RAM MAPPING) ==================================================================


; --- PAGE 0 -----------------------------------------------------------------------------------------------
INDF EQU 00H ;00H
TMR0 EQU 01H ;01H
PCL EQU 02H ;02H
STATUS EQU 03H ;03H
MSR EQU 04H ;04H
RA EQU 05H ;05H
RB EQU 06H ;06H
RC EQU 07H ;07H
RD EQU 08H ;08H
RE EQU 09H ;09H
PCH EQU 0AH ;0AH
INTS EQU 0BH ;0BH
PIFB1 EQU 0CH ;0CH
PIFB2 EQU 0DH ;0DH
TMR1L EQU 0EH ;0EH
TMR1H EQU 0FH ;0FH
T1STA EQU 10H ;10H
TMR2 EQU 11H ;11H
T2STA EQU 12H ;12H
SCMBUF EQU 13H ;13H
SCMCTL EQU 14H ;14H
CCP1L EQU 15H ;15H
CCP1H EQU 16H ;16H
CCP1CTL EQU 17H ;17H
RCSC EQU 18H ;18H
TXREG EQU 19H ;19H
RCREG EQU 1AH ;1AH
CCP2L EQU 1BH ;1BH
CCP2H EQU 1CH ;1CH
CCP2CTL EQU 1DH ;1DH
ADRES EQU 1EH ;1EH
ADS0 EQU 1FH ;1FH

DELAY_1 EQU 20H ;20H
DELAY_2 EQU 21H ;21H
STAGE EQU 22H ;22H
STAGELP EQU 23H ;23H
STAGE3T EQU 24H ;24H
TEMP0 EQU 25H ;25H
TEMP1 EQU 26H ;26H
TEMP2 EQU 27H ;27H
TEMP3 EQU 28H ;28H
TEMP4 EQU 29H ;29H
TEMP5 EQU 2AH ;2AH
TEMP6 EQU 2BH ;2BH

; --- PAGE 1 -----------------------------------------------------------------------------------------------
;80H
OPTION EQU 81H ;81H
;82H
;83H
;84H
CPIOA EQU 85H ;85H
CPIOB EQU 86H ;86H
CPIOC EQU 87H ;87H
CPIOD EQU 88H ;88H
CPIOE EQU 89H ;89H
;8AH
;8BH
PIEB1 EQU 8CH ;8CH
PIEB2 EQU 8DH ;8DH
PSTA EQU 8EH ;8EH
;8FH
;90H
;91H
T2PER EQU 92H ;92H
;93H
SCMSTA EQU 94H ;94H
;95H
;96H
;97H
TXSC EQU 98H ;98H
BRREG EQU 99H ;99H
;9AH
;9BH
;9CH
;9DH
;9EH
ADS1 EQU 9FH ;9FH

; ===== STATUS DEFINITION ==================================================================================
C EQU 0
HC EQU 1
Z EQU 2
PF EQU 3
TF EQU 4
RBS0 EQU 5
ADIF EQU 6
CCP1IF EQU 2

; ===== OTHERS DEFINITION ==================================================================================
W EQU 0
PRDB EQU 0
PORB EQU 1

; ===== MAIN-PROGRAM BLOCK =================================================================================
; ----- 檢查 STATUS 暫存器的 B4(TF) 及 B3(PF), 依 RESET 原因作 DEMO 程式的流程控制 -------------------------
;if TF為是'0': PF為是'0'> 代表 IC 進入 sleep 後被 WDT reset, 為閒置狀態, 須再次進入 sleep 等待 MCLR reset 以進行跳關
; : PF為否'1'> 代表 IC 尚未進入 sleep 便被 WDT reset, 跳至指定的副程式作 WDT 功能檢測
;if TF為否'1': PF為是'0'> 代表 IC 進入 sleep 後在 WDT reset 前被 MCLR reset, 並執行跳關程序
; : PF為否'1'> Power on reset 或程式進行中作 MCLR reset


; ----- RESET VECTOR ---------------------------------------------------------------------------------------
ORG 00H ; 以下程式碼由 00H 的位址開始存入程式記憶體(ROM)
LJUMP BEGIN

; ----- INTERRUPT VECTOR -----------------------------------------------------------------------------------
ORG 04H
CLRWT
LCALL SET_PAGE0

BCR T1STA,0 ; Stop TMR1

BTSC PIFB1,6 ; ADIF
LJUMP INTAD2

BTSC INTS,2
LJUMP INTTMR0

BTSC PIFB1,2 ; CCP1IF
LJUMP INTCCP

BTSC PIFB2,0 ; CCP2IF
LJUMP INTCCP
;
; BTSC INTS,1
; LJUMP INTEXTPB0
;
; BTSC INTS,2
; LJUMP INTTMR0

RTFI


ORG 10H
BEGIN: LCALL SET_PAGE1
LDWI 00000111B ; Set PA3~PA0 in digital I/O mode
STWR ADS1
LCALL SET_PAGE0
BTSS STATUS,TF ; check TF 判斷是否被 WDT reset, 0:是 1:否
LJUMP TF0 ; TF=0, IC 被 WDT reset, 跳至 'TF0 副程式'

TF1: BTSS STATUS,PF ; TF=1, IC 未被 WDT reset, check PF 判斷是否進入 sleep 狀態, 0:是 1:否
LJUMP PF0 ; ____PF=0, 代表 IC 進入 sleep 後在 WDT reset 前被 MCLR reset, 並執行跳關程序

LJUMP STAGE1 ; ____PF=1, Power on reset, 跳至 'STAGE1 副程式'


TF0: LCALL SETRA_OUT ; 因為 TF=0, IC 被 WDT reset
BTSC STATUS,PF ; check PF 判斷是否進入 sleep 狀態, 0:是 1:否
LJUMP TF0PF1 ; ____PF=1, 代表 IC 尚未進入 sleep 便被 WDT reset, 跳至 'TF0PF1 副程式' 進行 WDT test
LCALL SETRB_OUT
SLEEP ; ____PF=0, 代表 IC 進入 sleep 後又被 WDT reset, 為閒置狀態, 須再次進入 sleep 等待 MCLR reset 以跳至 'PF0 副程式',
LJUMP BEGIN ; 並以 STAGE 暫存器之累加值進行關卡轉換

TF0PF1: CLRWT
LJUMP BEGIN1A ; 跳至 'BEGIN1A 副程式' 進行 WDT test


PF0: LDWI 11110000B
ANDWR CCP1CTL,1
ANDWR CCP2CTL,1
LDR STAGE,W ; 將 STAGE 暫存器累加值與目前 PC 值相加
ADDWR PCL,1 ; 相加後的 PC 值指向欲測試之關卡
LJUMP STAGE2 ; RAM testing
LJUMP STAGE3 ; TMR0 testing
LJUMP STAGE4 ; WDT testing
LJUMP STAGE5 ; A/D interrupt
LJUMP STAGE6 ; Capture_TMR1 testing
LJUMP STAGE7 ; Compare_TMR1 testing
LJUMP STAGE8 ; PWM_____TMR2 testing
LJUMP STAGE1 ; I/O testing

; ----- STAGE1 I/O testing ---------------------------------------------------------------------------------
STAGE1: LCALL SET_PAGE0
LDWI 10101010B
STWR RA
STWR RB
STWR RC
STWR RD
STWR RE

TESTIN_BI: XORWR RB,1
BTSC STATUS,Z
LJUMP FAILRBIN
TESTIN_CI: XORWR RC,1
BTSC STATUS,Z
LJUMP FAILRBIN
TESTIN_DI: XORWR RD,1
BTSC STATUS,Z
LJUMP FAILRBIN

TESTIN_AI: LDWI 00101010B
XORWR RA,1
BTSC STATUS,Z
LJUMP FAILRAIN

TESTIN_EI: LDWI 00000010B
XORWR RE,1
BTSC STATUS,Z
LJUMP FAILREIN

LCALL SETRA_OUT
LCALL SETRB_OUT
LCALL SETRC_OUT
LCALL SETRD_OUT
LCALL SETRE_OUT

;.............................
TESTIN_BO: LDWI 01010101B
XORWR RB,1
BTSS STATUS,Z
LJUMP FAILRAIN
COMR RB,1

TESTIN_CO: XORWR RC,1
BTSS STATUS,Z
LJUMP FAILRBIN
COMR RC,1

TESTIN_DO: XORWR RD,1
BTSS STATUS,Z
LJUMP FAILRCIN
COMR RD,1

TESTIN_AO: LDWI 00010101B
XORWR RA,1
BTSS STATUS,Z
LJUMP FAILRDIN
LDWI 0FFH
STWR RA

TESTIN_EO: LDWI 00000101B
XORWR RE,1
BTSS STATUS,Z
LJUMP FAILREIN
COMR RE,1

;.............................
CLRR STAGE
INCR STAGE,W
STWR STAGE3T
LCALL TRIPLE

;.............................
CLRR TEMP0
ADDRA: CLRWT
LDR TEMP0,W
ADDWR PCL,1
LJUMP RA01H
LJUMP RA03H
LJUMP RA07H
LJUMP RA0FH
LJUMP RA1FH
LJUMP RA3FH
LJUMP IOEND

OUTTEST: CLRR RB
CLRR RC
CLRR RD
CLRR RE
BSR STATUS,C
LOOPRB: CLRWT
RRR RB
LCALL DELAY
BTSS STATUS,C
LJUMP LOOPRB
LOOPRC: CLRWT
RRR RC
LCALL DELAY
BTSS STATUS,C
LJUMP LOOPRC
LOOPRD: CLRWT
RRR RD
LCALL DELAY
BTSS STATUS,C
LJUMP LOOPRD

BCR STATUS,C
BSR RE,2
LCALL DELAY
LOOPRE: CLRWT
RRR RE
BCR RE,2
LCALL DELAY
BTSS STATUS,C
LJUMP LOOPRE

INCR TEMP0
LJUMP ADDRA

RA01H: LDWI 11111110B
STWR RA
LJUMP OUTTEST

RA03H: LDWI 11111100B
STWR RA
LJUMP OUTTEST

RA07H: LDWI 11111000B
STWR RA
LJUMP OUTTEST

RA0FH: LDWI 11110000B
STWR RA
LJUMP OUTTEST

RA1FH: LDWI 11100000B
STWR RA
LJUMP OUTTEST

RA3FH: LDWI 11000000B
STWR RA
LJUMP OUTTEST

IOEND: CLRWT
LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 0FFH
STWR RA
STWR RC
STWR RD
STWR RE
SLEEP
LJUMP BEGIN

;.............................
FAILRAIN: LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 11111110B
STWR RC
LDWI 0FFH
STWR RA
STWR RD
STWR RE
SLEEP
LJUMP BEGIN

FAILRBIN: LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 11111101B
STWR RC
LDWI 0FFH
STWR RA
STWR RD
STWR RE
SLEEP
LJUMP BEGIN

FAILRCIN: LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 11111100B
STWR RC
LDWI 0FFH
STWR RA
STWR RD
STWR RE
SLEEP
LJUMP BEGIN

FAILRDIN: LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 11111011B
STWR RC
LDWI 0FFH
STWR RA
STWR RD
STWR RE
SLEEP
LJUMP BEGIN

FAILREIN: LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 11111010B
STWR RC
LDWI 0FFH
STWR RA
STWR RD
STWR RE
SLEEP
LJUMP BEGIN

; ----- STAGE2 RAM testing ---------------------------------------------------------------------------------
STAGE2: LCALL SETRA_OUT
LCALL SETRB_OUT
LCALL SETRC_OUT
LCALL SETRD_OUT
LCALL SETRE_OUT

LCALL SET_PAGE0

INCR STAGE,1
INCR STAGE,W
STWR STAGE3T
LCALL TRIPLE

LDWI 28H ; Initial address 28H
STWR MSR ; MSR point
STWR TEMP0 ; "10H" Compare value
STWR TEMP1
LCALL TRIRC
BANK0: LDR MSR,W ; Load the address where MSR point to
STWR INDF ; Save address value to itself
LDR TEMP0,W
XORWR INDF,W
BTSS STATUS,Z
LJUMP RAMFAIL
LDR MSR,W
STWR RC
COMR RC,1
LCALL DELAY
LDR MSR,W
INCR MSR,1 ; Indirect address +1
INCR TEMP0,1 ; compare value +1
XORWI 07FH
BTSS STATUS,Z
LJUMP BANK0

LDWI 01H
STWR RB
COMR RB,1

LDWI 0A0H ; Initial address A0H
STWR MSR ; MSR point
STWR TEMP0 ; "10H" Compare value
STWR TEMP1
LCALL TRIRC
BANK1: LDR MSR,W ; Load the address where MSR point to
STWR INDF ; Save address value to itself
LDR TEMP0,W
XORWR INDF,W
BTSS STATUS,Z
LJUMP RAMFAIL
LDR MSR,W
STWR RC
COMR RC,1
LCALL DELAY
LDR MSR,W
INCR MSR,1 ; Indirect address +1
INCR TEMP0,1 ; compare value +1
XORWI 0FFH
BTSS STATUS,Z
LJUMP BANK1

DECR TEMP0,W
STWR TEMP1
LCALL TRIRC

RAMEND: CLRWT
LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 0FFH
STWR RC
SLEEP
LJUMP BEGIN

RAMFAIL: LDR MSR,W
STWR RC
COMR RC,1
SLEEP
LJUMP BEGIN

; ----- STAGE3 TMR0 testing --------------------------------------------------------------------------------
STAGE3: LCALL SETRA_OUT
LCALL SETRB_OUT
LCALL SETRC_OUT
LCALL SETRD_OUT
LCALL SETRE_OUT

LCALL SET_PAGE0

INCR STAGE,1
INCR STAGE,W
STWR STAGE3T
LCALL TRIPLE

CLRR TMR0

LCALL SET_PAGE1
LDWI 00111000B ; set 1_external TMR0 2_hi to lo edge 3_not assign TMR0 4_no rate
TMODE

LCALL SET_PAGE0

EXTERHI: CLRWT
LDR TMR0,W ; push bottom 0~7 by Hi to Lo trigger
STWR TEMP0
COMR TEMP0,W
STWR RC
LDWI 00000111B
SUBWR TMR0,W
BTSS STATUS,Z
LJUMP EXTERHI

LDWI 00101000B ; set 1_external TMR0 2_lo to hi edge 3_not assign TMR0 4_no rate
TMODE

EXTERLO: CLRWT
LDR TMR0,W ; push bottom 8~F by Lo to Hi trigger
STWR TEMP0
COMR TEMP0,W
STWR RC
LDWI 00001111B
SUBWR TMR0,W
BTSS STATUS,Z
LJUMP EXTERLO

LDWI 11000000B
STWR INTS

LDWI 0FFH
STWR RB
STWR RC
BSR STATUS,C
BCR RB,0

LDWI 00000000B ; 1: 2
TMODE
CLRR TMR0
BSR INTS,5
CLRR TEMP0
CLRR TEMP1
CLRR TEMP2
LCALL TMR0DMY

BCR INTS,2
LDWI 00000001B ; 1: 4
TMODE
CLRR TMR0
BSR INTS,5
CLRR TEMP0
CLRR TEMP1
CLRR TEMP2
LCALL TMR0DMY

BCR INTS,2
LDWI 00000010B ; 1: 8
TMODE
CLRR TMR0
BSR INTS,5
CLRR TEMP0
CLRR TEMP1
CLRR TEMP2
LCALL TMR0DMY

BCR INTS,2
LDWI 00000011B ; 1: 16
TMODE
CLRR TMR0
BSR INTS,5
CLRR TEMP0
CLRR TEMP1
CLRR TEMP2
LCALL TMR0DMY

BCR INTS,2
LDWI 00000100B ; 1: 32
TMODE
CLRR TMR0
BSR INTS,5
CLRR TEMP0
CLRR TEMP1
CLRR TEMP2
LCALL TMR0DMY

BCR INTS,2
LDWI 00000101B ; 1: 64
TMODE
CLRR TMR0
BSR INTS,5
CLRR TEMP0
CLRR TEMP1
CLRR TEMP2
LCALL TMR0DMY

BCR INTS,2
LDWI 00000110B ; 1:128
TMODE
CLRR TMR0
BSR INTS,5
CLRR TEMP0
CLRR TEMP1
CLRR TEMP2
LCALL TMR0DMY

BCR INTS,2
LDWI 00000111B ; 1:256
TMODE
CLRR TMR0
BSR INTS,5
CLRR TEMP0
CLRR TEMP1
CLRR TEMP2
LCALL TMR0DMY

CLRR TMR0
CLRWT
LDWI 00001111B
TMODE

TMR0END: CLRWT
LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 0FFH
STWR RC
SLEEP
LJUMP BEGIN

TMR0DMY: CLRWT
INCR TEMP2,1
BTSC INTS,2
RET
LDWI 0FFH
XORWR TEMP2,W
BTSS STATUS,Z
LJUMP CHKTMR0FG
INCR TEMP1,1
LDWI 0FFH
XORWR TEMP1,W
BTSS STATUS,Z
LJUMP CHKTMR0FG
INCR TEMP0,1
LDWI 0FFH
XORWR TEMP0,W
BTSS STATUS,Z
LJUMP CHKTMR0FG
CHKTMR0FG: BTSC INTS,2
RET
LJUMP TMR0DMY

;...........TMR0 overflow interrupt sub-program...............
INTTMR0: CLRR TEMP3
CLRR TEMP4
CLRR TEMP5
CLRR TEMP6

CHKTEMP0: LDR TEMP0,W
XORWR TEMP3,W
BTSS STATUS,Z
LJUMP ADDTEMP6B2
LJUMP CHKTEMP1

CHKTEMP1: LDR TEMP1,W
XORWR TEMP4,W
BTSS STATUS,Z
LJUMP ADDTEMP6B1
LJUMP CHKTEMP2

CHKTEMP2: LDR TEMP2,W
XORWR TEMP5,W
BTSS STATUS,Z
LJUMP ADDTEMP6B0
LJUMP INTTMR0FSH

ADDTEMP6B2: CLRWT
INCRSZ TEMP6,1
LJUMP ADDTEMP6B2
INCRSZ TEMP5,1
LJUMP ADDTEMP6B2
INCRSZ TEMP4,1
LJUMP ADDTEMP6B2
INCR TEMP3,1
LDR TEMP0,W
XORWR TEMP3,W
BTSS STATUS,Z
LJUMP ADDTEMP6B2

ADDTEMP6B1: CLRWT
INCRSZ TEMP6,1
LJUMP ADDTEMP6B1
INCRSZ TEMP5,1
LJUMP ADDTEMP6B1
INCR TEMP4,1
LDR TEMP1,W
XORWR TEMP4,W
BTSS STATUS,Z
LJUMP ADDTEMP6B1

ADDTEMP6B0: CLRWT
INCRSZ TEMP6,1
LJUMP ADDTEMP6B0
INCR TEMP5,1
LDR TEMP2,W
XORWR TEMP5,W
BTSS STATUS,Z
LJUMP ADDTEMP6B0

INTTMR0FSH: RLR RB,1
BCR INTS,5
CLRR TMR0
CLRR TEMP0
CLRR TEMP1
RTFI




; ----- STAGE4 WDT testing --------------------------------------------------------------------------------
STAGE4: LCALL SETRA_OUT
LCALL SETRB_OUT
LCALL SETRC_OUT
LCALL SETRD_OUT
LCALL SETRE_OUT

LCALL SET_PAGE0

INCR STAGE,1
INCR STAGE,W
STWR STAGE3T
LCALL TRIPLE

BEGIN1: CLRWT ; Set initial value
CLRR TEMP0 ; Set PC ++ register
LDWI 08H ; Set testing cycle count
STWR TEMP1
LDWI 00001000B ; Set WDT RATE 1
TMODE
LCALL RCHI ; RB Hi-byte light on
LDWI 01H ; RA shows 1
STWR RB
COMR RB,1
LJUMP DUMMY ; Dummy for WDT testing & Set 10H.11H.12H to save count value

BEGIN1A: CLRWT
LCALL SETRB_OUT
LCALL SETRC_OUT
DECRSZ TEMP1,1 ; Check tesing cycle
LJUMP BEGIN2 ; Countinue testing
CLRWT
LJUMP WDTEND ; Cycle finish to end stage4


BEGIN2: CLRWT
LDWI 02H
STWR PCH
LDR TEMP0,W
ADDWR PCL,1
LJUMP R2
LJUMP R4
LJUMP R8
LJUMP R16
LJUMP R32
LJUMP R64
LJUMP R128
LJUMP WDTEND

R2: LDWI 00001001B
TMODE
LCALL SETRB_OUT
LCALL SETRC_OUT
SWAPR RC
LDWI 02H
STWR RB
COMR RB,1
INCR TEMP0,1
LJUMP DUMMY

R4: LDWI 00001010B
TMODE
LCALL SETRB_OUT
LCALL SETRC_OUT
SWAPR RC
LDWI 03H
STWR RB
COMR RB,1
INCR TEMP0,1
LJUMP DUMMY

R8: LDWI 00001011B
TMODE
LCALL SETRB_OUT
LCALL SETRC_OUT
SWAPR RC
LDWI 04H
STWR RB
COMR RB,1
INCR TEMP0,1
LJUMP DUMMY

R16: LDWI 00001100B
TMODE
LCALL SETRB_OUT
LCALL SETRC_OUT
SWAPR RC
LDWI 05H
STWR RB
COMR RB,1
INCR TEMP0,1
LJUMP DUMMY

R32: LDWI 00001101B
TMODE
LCALL SETRB_OUT
LCALL SETRC_OUT
SWAPR RC
LDWI 06H
STWR RB
COMR RB,1
INCR TEMP0,1
LJUMP DUMMY

R64: LDWI 00001110B
TMODE
LCALL SETRB_OUT
LCALL SETRC_OUT
SWAPR RC
LDWI 07H
STWR RB
COMR RB,1
INCR TEMP0,1
LJUMP DUMMY

R128: LDWI 00001111B
TMODE
LCALL SETRB_OUT
LCALL SETRC_OUT
SWAPR RC
LDWI 08H
STWR RB
COMR RB,1
INCR TEMP0,1
LJUMP DUMMY

WDTEND: CLRWT
LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 0FFH
STWR RC
SLEEP
LJUMP BEGIN


DUMMY: CLRR 28H
CLRR 29H
CLRR 2AH
CLRR 2BH
CLRR 2CH
CLRR 2DH
CLRR 2EH
CLRR 2FH
CLRWT
B0: INCRSZ 2FH ; 1 * 256 * ( 255 * 255 )
LJUMP B0 ; 2 * 255 * ( 255 * 255 )
B1: INCRSZ 2EH ; 1 * 256 * 255
LJUMP B0 ; 2 * 255 * 255
B2: INCRSZ 2DH ; 1 * 256
LJUMP B0 ; 2 * 255
SLEEP
LJUMP BEGIN

RCHI: LDWI 11110000B
STWR RC
COMR RC,1
RET

; ----- STAGE 5. A/D conversion test (R08.R09.R0B.R88) Vref=PA3 --------------------------------------------
; 利用 A/D INT flag 作檢查
; 將ADS1設為01H
; Vref=PA3 , A/D ch are PA2 . PA1 . PA0
; Pass message RA = 04H / RB =66H

STAGE5: LCALL SET_PAGE1
LDWI 00000000B
STWR ADS1
LCALL SETRA_IN
LCALL SETRB_OUT
LCALL SETRC_OUT
LCALL SETRD_OUT
LCALL SETRE_IN

LCALL SET_PAGE0

INCR STAGE,1
INCR STAGE,W
STWR STAGE3T
LCALL TRIPLE

CLRWT
LDWI 00111111B
TMODE

CLRR TMR0

LDWI 11000000B ; Set total INT on, turn off all source except A/D & clear all flag
STWR INTS
LCALL SET_PAGE1
LDWI 01000000B ; A/D interrupt enable
STWR PIEB1

LCALL SET_PAGE0 ; Select page 0
CLRR ADRES

WAITINTF: CLRWT

LDWI 00H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP ADCH0

LDWI 01H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP ADCH1

LDWI 02H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP ADCH2

LDWI 03H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP ADCH3

LDWI 04H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP ADCH4

LDWI 05H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP ADCH5

LDWI 06H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP ADCH6

LDWI 07H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP ADCH7

LJUMP STAGE5_FSH

WAITINTB: LJUMP WAITINTF

ADCH0: LDWI 01000101B ; Set conversion timing use RC,A/D module turn on standby & clear A/D INT flag
STWR ADS0
LJUMP WAITINTB

ADCH1: LDWI 01001101B ; Set conversion timing use RC,A/D module turn on standby & clear A/D INT flag
STWR ADS0
LJUMP WAITINTB

ADCH2: LDWI 01010101B ; Set conversion timing use RC,A/D module turn on standby & clear A/D INT flag
STWR ADS0
LJUMP WAITINTB

ADCH3: LDWI 01011101B ; Set conversion timing use RC,A/D module turn on standby & clear A/D INT flag
STWR ADS0
LJUMP WAITINTB

ADCH4: LDWI 01100101B ; Set conversion timing use RC,A/D module turn on standby & clear A/D INT flag
STWR ADS0
LJUMP WAITINTB

ADCH5: LDWI 01101101B ; Set conversion timing use RC,A/D module turn on standby & clear A/D INT flag
STWR ADS0
LJUMP WAITINTB

ADCH6: LDWI 01110101B ; Set conversion timing use RC,A/D module turn on standby & clear A/D INT flag
STWR ADS0
LJUMP WAITINTB

ADCH7: LDWI 01111101B ; Set conversion timing use RC,A/D module turn on standby & clear A/D INT flag
STWR ADS0
LJUMP WAITINTB

STAGE5_FSH: CLRWT
LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 0FFH
STWR RC
SLEEP
LJUMP BEGIN

INTAD2: CLRWT
LCALL SET_PAGE0 ; Select page 0
LDR ADRES,W
STWR TEMP1
COMR TEMP1,W
STWR RC
LDR TMR0,W
STWR TEMP0
COMR TEMP0,W
STWR RB
BCR PIFB1,ADIF ; Clear A/D flag
RTFI


; ----- STAGE6 Capture_TMR1 testing ------------------------------------------------------------------------
STAGE6: LCALL SETRA_OUT
LCALL SETRB_OUT
LCALL SETRC_OUT
LCALL SETRD_OUT
LCALL SETRE_OUT

LCALL SET_PAGE0

INCR STAGE,1
INCR STAGE,W
STWR STAGE3T
LCALL TRIPLE

INCR STAGE,W
STWR RB
COMR RB,1


LCALL SET_PAGE1
BSR CPIOC,1
BSR CPIOC,2

LCALL SET_PAGE0
CLRWT
LDWI 00111111B
TMODE

LDWI 11000000B ; Set total INT on, turn off all interrupt
STWR INTS
LDWI 00000000B ; Clear all interrupt flag
STWR PIFB1

LCALL SET_PAGE1 ; Turn off all interrupt except CCPIE enable
LDWI 00000100B
STWR PIEB1
LDWI 00000001B
STWR PIEB2

LCALL SET_PAGE0
LDWI 00000000B ; Prescaler rate 1:1 ; TMR1 Osc off ; Synchronize enable ; select internal clk(Fosc/4) ; stop TMR1
STWR T1STA

CLRR TMR0
CLRR TMR1L
CLRR TMR1H


CCP1LOOP: CLRWT

LDWI 00H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP CCP1LOOP

LDWI 01H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP CCP1FALL

LDWI 02H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP CCP1RISE

LDWI 03H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP CCP1X4

LDWI 04H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP CCP1X16

LDWI 05H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP CCP2FALL

LDWI 06H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP CCP2RISE

LDWI 07H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP CCP2X4

LDWI 08H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP CCP2X16

LJUMP STAGE6_FSH

CCP1COMP: CLRWT
LCALL SET_PAGE0
BSR T1STA,0 ; Enable TMR1
COMR TEMP0,W
STWR RB
LDR TMR0,W
XORWR TEMP0,W
BTSC STATUS,Z
LJUMP CCP1COMP
CLRW
STWR CCP1CTL ; Turn off CCP1 function
STWR CCP2CTL ; Turn off CCP2 function
LJUMP CCP1LOOP

CCP1FALL: LCALL SET_PAGE0
CLRWT
LDR TMR0,W
STWR TEMP0
COMR TEMP0,W
STWR RB
LDWI 00000100B ; Capture1 mode, every falling edge
STWR CCP1CTL
LCALL SET_PAGE0
CLRR CCP1L
CLRR CCP1H
CLRR CCP2L
CLRR CCP2H
LJUMP CCP1COMP

CCP1RISE: LCALL SET_PAGE0
CLRWT
LDR TMR0,W
STWR TEMP0
COMR TEMP0,W
STWR RB
LDWI 00000101B ; Capture1 mode, every rising edge
STWR CCP1CTL
LCALL SET_PAGE0
CLRR CCP1L
CLRR CCP1H
CLRR CCP2L
CLRR CCP2H
LJUMP CCP1COMP

CCP1X4: LCALL SET_PAGE0
CLRWT
LDR TMR0,W
STWR TEMP0
COMR TEMP0,W
STWR RB
LDWI 00000110B ; Capture1 mode, every 4th rising edge
STWR CCP1CTL
LCALL SET_PAGE0
CLRR CCP1L
CLRR CCP1H
CLRR CCP2L
CLRR CCP2H
LJUMP CCP1COMP

CCP1X16: LCALL SET_PAGE0
CLRWT
LDR TMR0,W
STWR TEMP0
COMR TEMP0,W
STWR RB
LDWI 00000111B ; Capture1 mode, every 16th rising edge
STWR CCP1CTL
LCALL SET_PAGE0
CLRR CCP1L
CLRR CCP1H
CLRR CCP2L
CLRR CCP2H
LJUMP CCP1COMP

CCP2FALL: LCALL SET_PAGE0
CLRWT
LDR TMR0,W
STWR TEMP0
COMR TEMP0,W
STWR RB
LDWI 00000100B ; Capture1 mode, every falling edge
STWR CCP2CTL
LCALL SET_PAGE0
CLRR CCP1L
CLRR CCP1H
CLRR CCP2L
CLRR CCP2H
LJUMP CCP1COMP

CCP2RISE: LCALL SET_PAGE0
CLRWT
LDR TMR0,W
STWR TEMP0
COMR TEMP0,W
STWR RB
LDWI 00000101B ; Capture1 mode, every rising edge
STWR CCP2CTL
LCALL SET_PAGE0
CLRR CCP1L
CLRR CCP1H
CLRR CCP2L
CLRR CCP2H
LJUMP CCP1COMP

CCP2X4: LCALL SET_PAGE0
CLRWT
LDR TMR0,W
STWR TEMP0
COMR TEMP0,W
STWR RB
LDWI 00000110B ; Capture1 mode, every 4th rising edge
STWR CCP2CTL
LCALL SET_PAGE0
CLRR CCP1L
CLRR CCP1H
CLRR CCP2L
CLRR CCP2H
LJUMP CCP1COMP

CCP2X16: LCALL SET_PAGE0
CLRWT
LDR TMR0,W
STWR TEMP0
COMR TEMP0,W
STWR RB
LDWI 00000111B ; Capture1 mode, every 16th rising edge
STWR CCP2CTL
LCALL SET_PAGE0
CLRR CCP1L
CLRR CCP1H
CLRR CCP2L
CLRR CCP2H
LJUMP CCP1COMP



STAGE6_FSH: LCALL SET_PAGE1
BCR PIEB1,2
CLRWT
LCALL SET_PAGE0
LDWI 00000000B ; Prescaler rate 1:1 ; TMR Osc off ; Synchronize enable ; select internal ; stop TMR1
STWR T1STA
LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 0FFH
STWR RC
SLEEP
LJUMP BEGIN

INTCCP: LCALL SET_PAGE1
LDWI 00000110B
ANDWR CPIOC,W
XORWI 00000110B
BTSS STATUS,Z
LJUMP INTCPR ; Go to Compare testing

LCALL SET_PAGE0

LDWI 0FFH
STWR TEMP1
LCALL TRIRB

BCR PIFB1,2 ; Clear CCP1IF
BCR PIFB2,0 ; Clear CCP2IF
CLRR TMR1L
CLRR TMR1H
RTFI


; ----- STAGE7 Compare_TMR1 testing ------------------------------------------------------------------------
STAGE7: LCALL SETRA_OUT
LCALL SETRB_OUT
LCALL SETRC_OUT
LCALL SETRD_OUT
LCALL SETRE_OUT

LCALL SET_PAGE0

INCR STAGE,1
INCR STAGE,W
STWR STAGE3T
LCALL TRIPLE

INCR STAGE,W
STWR RB
COMR RB,1

LCALL SET_PAGE0
CLRWT
LDWI 00111111B
TMODE

LDWI 11000000B ; Set total INT on, turn off all interrupt
STWR INTS
LDWI 00000000B ; Clear all interrupt flag
STWR PIFB1

LCALL SET_PAGE1 ; Turn off all interrupt except CCPIE enable
LDWI 00000100B
STWR PIEB1
LDWI 00000001B
STWR PIEB2

LCALL SET_PAGE0
LDWI 00110000B ; Prescaler rate 1:1 ; TMR1 Osc off ; Synchronize enable ; select internal clk(Fosc/4) ; stop TMR1
STWR T1STA

CLRR TMR0
CLRR TMR1L
CLRR TMR1H

LDWI 0FFH
STWR CCP1L
STWR CCP1H
STWR CCP2L
STWR CCP2H


BSR RC,2 ; CCP1 output Hi : LED turns off
BSR RC,1 ; CCP2 output Hi : LED turns off
; PC2(CCP1)/PC1(CCP2) : 1/1

LCALL SET_PAGE0

CLRR TEMP0
CPR1: LDWI 00001010B ; CCP1 HAVE NO CHANGE ON PIN(PC2) ON PIN
STWR CCP1CTL
LDWI 00001001B ; CCP2 OUTPUT LO ON PIN(PC1) WHEN CCP2 INT OCCURS
STWR CCP2CTL ; PC2(CCP1)/PC1(CCP2) : 1/0
BSR T1STA,0
DUMMYCPR1: CLRWT
LDWI 66H ; Check backing flag TEMP0=66 leave from INT
XORWR TEMP0,W
BTSS STATUS,Z
LJUMP DUMMYCPR1

CLRR TEMP0
CPR2: LDWI 00001001B ; CCP1 OUTPUT LO ON PIN(PC2)WHEN CCP1 INT OCCURS
STWR CCP1CTL
LDWI 00001000B ; CCP2 OUTPUT HI ON PIN(PC1)WHEN CCP2 INT OCCURS
STWR CCP2CTL ; PC2(CCP1)/PC1(CCP2) : 0/1
BSR T1STA,0
DUMMYCPR2: CLRWT
LDWI 66H ; Check backing flag TEMP0=66 leave from INT
XORWR TEMP0,W
BTSS STATUS,Z
LJUMP DUMMYCPR2

CLRR TEMP0
CPR3: LDWI 00001001B ; CCP1 OUTPUT LO ON PIN(PC2)WHEN CCP1 INT OCCURS
STWR CCP1CTL
LDWI 00001001B ; CCP2 OUTPUT LO ON PIN(PC1)WHEN CCP2 INT OCCURS
STWR CCP2CTL ; PC2(CCP1)/PC1(CCP2) : 0/0
BSR T1STA,0
DUMMYCPR3: CLRWT
LDWI 66H ; Check backing flag TEMP0=66 leave from INT
XORWR TEMP0,W
BTSS STATUS,Z
LJUMP DUMMYCPR3

BCR RC,2 ; CCP1 output Hi : LED turns on
BCR RC,1 ; CCP2 output Hi : LED turns on
; PC2(CCP1)/PC1(CCP2) : 0/0

CLRR TEMP0
CPR4: LDWI 00001010B ; CCP1 HAVE NO CHANGE ON PIN(PC2) ON PIN
STWR CCP1CTL
LDWI 00001010B ; CCP1 HAVE NO CHANGE ON PIN(PC2) ON PIN
STWR CCP2CTL ; PC2(CCP1)/PC1(CCP2) : 0/0
BSR T1STA,0
DUMMYCPR4: CLRWT
LDWI 66H ; Check backing flag TEMP0=66 leave from INT
XORWR TEMP0,W
BTSS STATUS,Z
LJUMP DUMMYCPR4

LDWI 0FFH
STWR RC

STAGE7_FSH: CLRWT
LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 0FFH
STWR RC
SLEEP
LJUMP BEGIN

INTCPR: LCALL SET_PAGE0

LDWI 08H
STWR TEMP1
RESWTEMP1: LCALL DELAY
DECRSZ TEMP1
LJUMP RESWTEMP1

CLRR CCP1CTL
CLRR CCP2CTL
CLRR TMR1L
CLRR TMR1H
BCR PIFB1,2
BCR PIFB2,0
LDWI 66H
STWR TEMP0
RTFI


; ----- STAGE8 PWM_____TMR2 testing ------------------------------------------------------------------------
STAGE8: LCALL SETRA_OUT
LCALL SETRB_OUT
LCALL SETRC_OUT
LCALL SETRD_OUT
LCALL SETRE_OUT

LCALL SET_PAGE0

INCR STAGE,1
INCR STAGE,W
STWR STAGE3T
LCALL TRIPLE

INCR STAGE,W
STWR RB
COMR RB,1

LCALL SET_PAGE0
CLRWT
LDWI 00111111B
TMODE

LDWI 00000000B ; Set total INT off, turn off all interrupt
STWR INTS
LDWI 00000000B ; Clear all interrupt flag
STWR PIFB1

LCALL SET_PAGE1 ; Turn off all interrupt
LDWI 00000000B
STWR PIEB1
LDWI 00000000B
STWR PIEB2

LDWI 0FFH ; PWM period value = FFH "period time: (256) * (0.1uS*4) * (1) = 102.4uS" when 10Mhz
STWR T2PER ; (256)>>FFH / (0.1uS*4)>>TOSC / (1) = prescaler rate

LCALL SET_PAGE0
LDWI 00001111B ; Set CCP1 / CCP2 into PWM mode
STWR CCP1CTL
STWR CCP2CTL

LDWI 00000000B ; Prescaler rate 1:1 ; TMR2 off
STWR T2STA

CLRR TMR0
CLRR TMR2


PWM_LOOP: CLRWT

LDWI 00H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP PWM_LOOP

LDWI 01H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP PWM14

LDWI 02H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP PWM12

LDWI 03H
XORWR TMR0,W
BTSC STATUS,Z
LJUMP PWM11

LJUMP STAGE8_FSH

PWM_COMP: CLRWT
LCALL SET_PAGE0
BSR T2STA,2 ; Enable TMR2
LDR TMR0,W
XORWR TEMP0,W
BTSC STATUS,Z
LJUMP PWM_COMP
BCR T2STA,2 ; Disable TMR2
LJUMP PWM_LOOP

PWM14: LCALL SET_PAGE0
CLRWT
LDR TMR0,W
STWR TEMP0
COMR TEMP0,W
STWR RB
LDWI 00111111B ; Set duty cycle value = (1/4)*256 = 64
STWR CCP1L
STWR CCP2L
LJUMP PWM_COMP

PWM12: LCALL SET_PAGE0
CLRWT
LDR TMR0,W
STWR TEMP0
COMR TEMP0,W
STWR RB
LDWI 01111111B ; Set duty cycle value = (1/2)*256 = 128
STWR CCP1L
STWR CCP2L
LJUMP PWM_COMP

PWM11: LCALL SET_PAGE0
CLRWT
LDR TMR0,W
STWR TEMP0
COMR TEMP0,W
STWR RB
LDWI 11111111B ; Set duty cycle value = (1/1)*256 = 256
STWR CCP1L
STWR CCP2L
LJUMP PWM_COMP


STAGE8_FSH: CLRWT
LDR STAGE3T,W
STWR RB
COMR RB,1
LDWI 0FFH
STWR RC
SLEEP
LJUMP BEGIN


;.............................

; ===== COMMON SUB-PROGRAM BLOCK ===========================================================================
; ..... Sub_program : common delay time ..........................
DELAY: CLRWT ;*1
LDWI 0FFH ;*1
STWR DELAY_1 ;*1

DELAY1: LDWI 0FFH ;*256
STWR DELAY_2 ;*256
DELAY2: CLRWT ;*256*256
DECRSZ DELAY_2 ;*256*256
LJUMP DELAY2 ;*255*256

DECRSZ DELAY_1 ;*256
LJUMP DELAY1 ;*255
RET ;*1

; ..... Sub_program : PA shows how stage for TRIPLE ..............
TRIPLE: LDWI 03H
STWR STAGELP
TRIPLELP: LDR STAGE3T,W
STWR RB
COMR RB,1
LCALL DELAY
LDWI 0FFH
STWR RB
LCALL DELAY
DECRSZ STAGELP,1
LJUMP TRIPLELP
RET

TRIRC: LDWI 03H
STWR STAGELP
TRIRCLP: LDR TEMP1,W
STWR RC
COMR RC,1
LCALL DELAY
LDWI 0FFH
STWR RC
LCALL DELAY
DECRSZ STAGELP,1
LJUMP TRIRCLP
RET

TRIRB: LDWI 03H
STWR STAGELP
TRIRBLP: LDR TEMP1,W
STWR RB
COMR RB,1
LCALL DELAY
LDWI 0FFH
STWR RB
LCALL DELAY
DECRSZ STAGELP,1
LJUMP TRIRBLP
RET

; ..... Sub_program : Memory page selection ......................
SET_PAGE0: BCR STATUS,RBS0
RET

SET_PAGE1: BSR STATUS,RBS0
RET

; ..... Sub_program : RA.RB I/O mode selection ...................
SETRA_IN: LCALL SET_PAGE1
LDWI 0FFH
STWR CPIOA
LCALL SET_PAGE0
RET
SETRA_OUT: LCALL SET_PAGE1
CLRW
STWR CPIOA
LCALL SET_PAGE0
RET

SETRB_IN: LCALL SET_PAGE1
LDWI 0FFH
STWR CPIOB
LCALL SET_PAGE0
RET
SETRB_OUT: LCALL SET_PAGE1
CLRW
STWR CPIOB
LCALL SET_PAGE0
RET

SETRC_IN: LCALL SET_PAGE1
LDWI 0FFH
STWR CPIOC
LCALL SET_PAGE0
RET
SETRC_OUT: LCALL SET_PAGE1
CLRW
STWR CPIOC
LCALL SET_PAGE0
RET

SETRD_IN: LCALL SET_PAGE1
LDWI 0FFH
STWR CPIOD
LCALL SET_PAGE0
RET
SETRD_OUT: LCALL SET_PAGE1
CLRW
STWR CPIOD
LCALL SET_PAGE0
RET

SETRE_IN: LCALL SET_PAGE1
LDWI 0FFH
STWR CPIOE
LCALL SET_PAGE0
RET
SETRE_OUT: LCALL SET_PAGE1
CLRW
STWR CPIOE
LCALL SET_PAGE0
RET