NAME Interupts RTMODEL "__64bit_doubles", "disabled" RTMODEL "__cpu", "1" RTMODEL "__cpu_name", "AT90Mega8" RTMODEL "__enhanced_core", "enabled" RTMODEL "__has_elpm", "false" RTMODEL "__memory_model", "2" RTMODEL "__rt_version", "2.30" RSEG CSTACK:DATA:NOROOT(0) RSEG NEAR_Z:DATA:NOROOT(0) RSEG RSTACK:DATA:NOROOT(0) EXTERN ?need_segment_init EXTERN ?PROLOGUE2_L09 EXTERN ?EPILOGUE_B2_L09 EXTERN ?CV_SWITCH_L06 PUBWEAK `?` PUBLIC Coord PUBLIC Delay125 FUNCTION Delay125,0203H PUBLIC Delay20 FUNCTION Delay20,0203H PUBLIC DiagramFS FUNCTION DiagramFS,021203H LOCFRAME CSTACK, 2, STACK LOCFRAME RSTACK, 2, STACK PUBLIC DiagramHS FUNCTION DiagramHS,021203H LOCFRAME CSTACK, 2, STACK LOCFRAME RSTACK, 2, STACK PUBLIC PreSetup FUNCTION PreSetup,0203H PUBLIC RXC_ FUNCTION RXC_,0233H LOCFRAME CSTACK, 6, STACK PUBLIC Reverce PUBLIC Speed PUBLIC SpeedRead PUBLIC Steps PUBWEAK _A_DDRB PUBWEAK _A_DDRC PUBWEAK _A_DDRD PUBWEAK _A_PORTB PUBWEAK _A_PORTC PUBWEAK _A_PORTD PUBWEAK _A_TCCR0 PUBWEAK _A_TCNT0 PUBWEAK _A_TIFR PUBWEAK _A_UBRRH PUBWEAK _A_UBRRL PUBWEAK _A_UCSRA PUBWEAK _A_UCSRB PUBWEAK _A_UDR PUBWEAK __?EEARH PUBWEAK __?EEARL PUBWEAK __?EECR PUBWEAK __?EEDR ; 1 //------------------------------------------------------------------------+ ; 2 //Модуль обработчиков прерываний и формирования диаграммы управления ШД | ; 3 //------------------------------------------------------------------------+ ; 4 ; 5 #include "iom8.h" ASEGN ABSOLUTE:DATA:NOROOT,029H ; union volatile __io _A_UBRRL; _A_UBRRL: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,02aH ; union volatile __io _A_UCSRB; _A_UCSRB: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,02bH ; union volatile __io _A_UCSRA; _A_UCSRA: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,02cH ; union volatile __io _A_UDR; _A_UDR: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,031H ; union volatile __io _A_DDRD; _A_DDRD: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,032H ; union volatile __io _A_PORTD; _A_PORTD: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,034H ; union volatile __io _A_DDRC; _A_DDRC: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,035H ; union volatile __io _A_PORTC; _A_PORTC: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,037H ; union volatile __io _A_DDRB; _A_DDRB: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,038H ; union volatile __io _A_PORTB; _A_PORTB: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,040H ; union volatile __io _A_UBRRH; _A_UBRRH: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,052H ; union volatile __io _A_TCNT0; _A_TCNT0: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,053H ; union volatile __io _A_TCCR0; _A_TCCR0: DS 1 ASEGN ABSOLUTE:DATA:NOROOT,058H ; union volatile __io _A_TIFR; _A_TIFR: DS 1 ; 6 #include "inavr.h" ; 7 ; 8 ; 9 // Глобальные флаги RSEG NEAR_Z:DATA:NOROOT(0) REQUIRE `?` ; 10 unsigned char Reverce; // 1 - Реверс 0 - Нет Реверса ; unsigned char __near Reverce; Reverce: DS 1 ; 11 unsigned char Coord; // 0 - передвижение по координате Х, 1 -по У ; unsigned char __near Coord; Coord: DS 1 ; 12 unsigned char Steps; // Количество шагов ; unsigned char __near Steps; Steps: DS 1 ; 13 ; 14 unsigned char SpeedRead; ; 15 unsigned char Speed; ; unsigned char __near Speed; Speed: DS 1 RSEG NEAR_Z:DATA:NOROOT(0) REQUIRE `?` ; unsigned char __near SpeedRead; SpeedRead: DS 1 ; 16 RSEG CODE:CODE:NOROOT(1) ; 17 void PreSetup (void) ; 18 { ; 19 ; 20 // УАПП ; 21 UCSRA = 0x02; ; __nearfunc void PreSetup(); PreSetup: LDI R16,2 OUT 0x0B,R16 ; 22 UCSRB = 0x98; LDI R16,152 OUT 0x0A,R16 ; 23 UCSRC_Bit7 = 1; IN R16,0x20 ORI R16,0x80 OUT 0x20,R16 ; 24 UCSRC = 0x86; LDI R16,134 OUT 0x20,R16 ; 25 UCSRC_Bit7 = 0; IN R16,0x20 ANDI R16,0x7F OUT 0x20,R16 ; 26 UBRRL=0x0c; //Скорость 38400 LDI R16,12 OUT 0x09,R16 ; 27 UBRRH=0x00; LDI R16,0 OUT 0x20,R16 ; 28 ; 29 //Ports Setup ; 30 DDRB = 0xFF; //На вывод LDI R16,255 OUT 0x17,R16 ; 31 DDRC = 0xFF; OUT 0x14,R16 ; 32 DDRD = 0xFE; LDI R16,254 OUT 0x11,R16 ; 33 PORTD=0; LDI R16,0 OUT 0x12,R16 ; 34 //Another Setup ; 35 Steps = 0; STS Steps,R16 ; 36 Reverce = 0; STS Reverce,R16 ; 37 } RET ; 38 RSEG CODE:CODE:NOROOT(1) ; 39 void Delay125 (void) // Задержка 250 мс ; 40 { ; 41 ; 42 unsigned char i; ; 43 ; 44 for (i=0; i<2; i++) ; __nearfunc void Delay125(); Delay125: LDI R16,2 ; 45 { ; 46 TCNT0=0; ??Delay125_0: LDI R17,0 OUT 0x32,R17 ; 47 TCCR0=0x05; LDI R17,5 OUT 0x33,R17 ; 48 while (!TIFR_Bit0) {}; ??Delay125_1: IN R18,0x38 SBRS R18,0 RJMP ??Delay125_1 ; 49 TIFR_Bit0=1; IN R17,0x38 ORI R17,0x01 OUT 0x38,R17 DEC R16 BRNE ??Delay125_0 ; 50 }; ; 51 ; 52 } RET ; 53 RSEG CODE:CODE:NOROOT(1) ; 54 void Delay20(void) // Задержка 20 мкс ; 55 { ; 56 unsigned char a; ; 57 a=80; ; __nearfunc void Delay20(); Delay20: LDI R16,80 ; 58 while (a) {a--;}; ??Delay20_0: DEC R16 BRNE ??Delay20_0 ; 59 } RET ; 60 RSEG CODE:CODE:NOROOT(1) ; 61 void DiagramFS (unsigned char Cor, unsigned char Rev) // Реализует полношаговый режим ; 62 { ; __nearfunc void DiagramFS(unsigned char, unsigned char); DiagramFS: FUNCALL DiagramFS, Delay125 LOCFRAME CSTACK, 2, STACK LOCFRAME RSTACK, 2, STACK FUNCALL DiagramFS, Delay125 LOCFRAME CSTACK, 2, STACK LOCFRAME RSTACK, 2, STACK FUNCALL DiagramFS, Delay125 LOCFRAME CSTACK, 2, STACK LOCFRAME RSTACK, 2, STACK FUNCALL DiagramFS, Delay125 LOCFRAME CSTACK, 2, STACK LOCFRAME RSTACK, 2, STACK FUNCALL DiagramFS, Delay125 LOCFRAME CSTACK, 2, STACK LOCFRAME RSTACK, 2, STACK FUNCALL DiagramFS, Delay125 LOCFRAME CSTACK, 2, STACK LOCFRAME RSTACK, 2, STACK FUNCALL DiagramFS, Delay125 LOCFRAME CSTACK, 2, STACK LOCFRAME RSTACK, 2, STACK FUNCALL DiagramFS, Delay125 LOCFRAME CSTACK, 2, STACK LOCFRAME RSTACK, 2, STACK RCALL ?PROLOGUE2_L09 MOVW R25 : R24,R17 : R16 ; 63 if ((Cor==0)&&(Rev==0)) TST R16 BRNE ??DiagramFS_0 TST R17 BRNE ??DiagramFS_0 ; 64 { ; 65 PORTB_Bit0=0; CBI 0x18,0x00 ; 66 PORTB_Bit1=1; SBI 0x18,0x01 ; 67 PORTB_Bit2=0; CBI 0x18,0x02 ; 68 PORTB_Bit3=1; SBI 0x18,0x03 ; 69 Delay125 (); RCALL Delay125 ; 70 PORTB_Bit0=1; SBI 0x18,0x00 ; 71 PORTB_Bit1=0; CBI 0x18,0x01 ; 72 PORTB_Bit2=0; CBI 0x18,0x02 ; 73 PORTB_Bit3=1; SBI 0x18,0x03 ; 74 Delay125 (); RCALL Delay125 ; 75 PORTB_Bit0=1; SBI 0x18,0x00 ; 76 PORTB_Bit1=0; CBI 0x18,0x01 ; 77 PORTB_Bit2=1; SBI 0x18,0x02 ; 78 PORTB_Bit3=0; CBI 0x18,0x03 ; 79 Delay125 (); RCALL Delay125 ; 80 PORTB_Bit0=0; CBI 0x18,0x00 ; 81 PORTB_Bit1=1; SBI 0x18,0x01 ; 82 PORTB_Bit2=1; SBI 0x18,0x02 ; 83 PORTB_Bit3=0; CBI 0x18,0x03 ; 84 Delay125 (); RCALL Delay125 ; 85 }; ; 86 if ((Cor==1)&&(Rev==0)) ??DiagramFS_0: CPI R24,1 BRNE ??DiagramFS_1 TST R25 BRNE ??DiagramFS_1 ; 87 { ; 88 PORTC_Bit0=0; CBI 0x15,0x00 ; 89 PORTC_Bit1=1; SBI 0x15,0x01 ; 90 PORTC_Bit2=0; CBI 0x15,0x02 ; 91 PORTC_Bit3=1; SBI 0x15,0x03 ; 92 Delay125 (); RCALL Delay125 ; 93 PORTC_Bit0=1; SBI 0x15,0x00 ; 94 PORTC_Bit1=0; CBI 0x15,0x01 ; 95 PORTC_Bit2=0; CBI 0x15,0x02 ; 96 PORTC_Bit3=1; SBI 0x15,0x03 ; 97 Delay125 (); RCALL Delay125 ; 98 PORTC_Bit0=1; SBI 0x15,0x00 ; 99 PORTC_Bit1=0; CBI 0x15,0x01 ; 100 PORTC_Bit2=1; SBI 0x15,0x02 ; 101 PORTC_Bit3=0; CBI 0x15,0x03 ; 102 Delay125 (); RCALL Delay125 ; 103 PORTC_Bit0=0; CBI 0x15,0x00 ; 104 PORTC_Bit1=1; SBI 0x15,0x01 ; 105 PORTC_Bit2=1; SBI 0x15,0x02 ; 106 PORTC_Bit3=0; CBI 0x15,0x03 ; 107 Delay125 (); RCALL Delay125 ; 108 }; ; 109 } ??DiagramFS_1: LDI R30,2 RJMP ?EPILOGUE_B2_L09 ; 110 RSEG CODE:CODE:NOROOT(1) ; 111 void DiagramHS (unsigned char Cor, unsigned char Rev, unsigned char NumOfStep) // Реализует полyшаговый режим ; 112 { ; __nearfunc void DiagramHS(unsigned char, unsigned char, unsigned char); DiagramHS: FUNCALL DiagramHS, Delay125 LOCFRAME CSTACK, 2, STACK LOCFRAME RSTACK, 2, STACK FUNCALL DiagramHS, Delay125 LOCFRAME CSTACK, 2, STACK LOCFRAME RSTACK, 2, STACK RCALL ?PROLOGUE2_L09 MOV R25,R16 ; 113 unsigned char i; ; 114 unsigned char Num; ; 115 if (Rev==0) Num=NumOfStep; // Реверс TST R17 BRNE ??DiagramHS_0 MOV R24,R18 RJMP ??DiagramHS_1 ; 116 else ; 117 Num=9-NumOfStep; ??DiagramHS_0: LDI R24,9 SUB R24,R18 ; 118 ; 119 if (Cor==0) ??DiagramHS_1: TST R25 BRNE ??DiagramHS_2 ; 120 { ; 121 switch (Num) MOV R16,R24 LDI R30,LOW(??DiagramHS_3) LDI R31,(??DiagramHS_3) >> 8 RJMP ?CV_SWITCH_L06 ; 122 { ; 123 case 1: ; 124 PORTB_Bit0=0; ??DiagramHS_4: CBI 0x18,0x00 ; 125 PORTB_Bit1=1; SBI 0x18,0x01 ; 126 PORTB_Bit2=0; ??DiagramHS_5: CBI 0x18,0x02 ; 127 PORTB_Bit3=1; SBI 0x18,0x03 RJMP ??DiagramHS_2 ; 128 break; ; 129 case 2: ; 130 PORTB_Bit0=0; ??DiagramHS_6: CBI 0x18,0x00 ; 131 PORTB_Bit1=0; ??DiagramHS_7: CBI 0x18,0x01 ; 132 PORTB_Bit2=0; RJMP ??DiagramHS_5 ; 133 PORTB_Bit3=1; ; 134 break; ; 135 case 3: ; 136 PORTB_Bit0=1; ??DiagramHS_8: SBI 0x18,0x00 ; 137 PORTB_Bit1=0; RJMP ??DiagramHS_7 ; 138 PORTB_Bit2=0; ; 139 PORTB_Bit3=1; ; 140 break; ; 141 case 4: ; 142 PORTB_Bit0=1; ??DiagramHS_9: SBI 0x18,0x00 ; 143 PORTB_Bit1=0; CBI 0x18,0x01 ; 144 PORTB_Bit2=0; RJMP ??DiagramHS_10 ; 145 PORTB_Bit3=0; ; 146 break; ; 147 case 5: ; 148 PORTB_Bit0=1; ??DiagramHS_11: SBI 0x18,0x00 ; 149 PORTB_Bit1=0; ??DiagramHS_12: CBI 0x18,0x01 ; 150 PORTB_Bit2=1; ??DiagramHS_13: SBI 0x18,0x02 ; 151 PORTB_Bit3=0; RJMP ??DiagramHS_14 ; 152 break; ; 153 case 6: ; 154 PORTB_Bit0=0; ??DiagramHS_15: CBI 0x18,0x00 ; 155 PORTB_Bit1=0; RJMP ??DiagramHS_12 ; 156 PORTB_Bit2=1; ; 157 PORTB_Bit3=0; ; 158 break; ; 159 case 7: ; 160 PORTB_Bit0=0; ??DiagramHS_16: CBI 0x18,0x00 ; 161 PORTB_Bit1=1; SBI 0x18,0x01 ; 162 PORTB_Bit2=1; RJMP ??DiagramHS_13 ; 163 PORTB_Bit3=0; ; 164 break; ; 165 case 8: ; 166 PORTB_Bit0=0; ??DiagramHS_17: CBI 0x18,0x00 ; 167 PORTB_Bit1=1; SBI 0x18,0x01 ; 168 PORTB_Bit2=0; ??DiagramHS_10: CBI 0x18,0x02 ; 169 PORTB_Bit3=0; ??DiagramHS_14: CBI 0x18,0x03 ; 170 }; ; 171 }; ; 172 if (Cor==1) ??DiagramHS_2: CPI R25,1 BRNE ??DiagramHS_18 ; 173 { ; 174 switch (Num) MOV R16,R24 LDI R30,LOW(??DiagramHS_19) LDI R31,(??DiagramHS_19) >> 8 RJMP ?CV_SWITCH_L06 ; 175 { ; 176 case 1: ; 177 PORTC_Bit0=0; ??DiagramHS_20: CBI 0x15,0x00 ; 178 PORTC_Bit1=1; SBI 0x15,0x01 ; 179 PORTC_Bit2=0; ??DiagramHS_21: CBI 0x15,0x02 ; 180 PORTC_Bit3=1; SBI 0x15,0x03 RJMP ??DiagramHS_18 ; 181 break; ; 182 case 2: ; 183 PORTC_Bit0=0; ??DiagramHS_22: CBI 0x15,0x00 ; 184 PORTC_Bit1=0; ??DiagramHS_23: CBI 0x15,0x01 ; 185 PORTC_Bit2=0; RJMP ??DiagramHS_21 ; 186 PORTC_Bit3=1; ; 187 break; ; 188 case 3: ; 189 PORTC_Bit0=1; ??DiagramHS_24: SBI 0x15,0x00 ; 190 PORTC_Bit1=0; RJMP ??DiagramHS_23 ; 191 PORTC_Bit2=0; ; 192 PORTC_Bit3=1; ; 193 break; ; 194 case 4: ; 195 PORTC_Bit0=1; ??DiagramHS_25: SBI 0x15,0x00 ; 196 PORTC_Bit1=0; CBI 0x15,0x01 ; 197 PORTC_Bit2=0; RJMP ??DiagramHS_26 ; 198 PORTC_Bit3=0; ; 199 break; ; 200 case 5: ; 201 PORTC_Bit0=1; ??DiagramHS_27: SBI 0x15,0x00 ; 202 PORTC_Bit1=0; ??DiagramHS_28: CBI 0x15,0x01 ; 203 PORTC_Bit2=1; ??DiagramHS_29: SBI 0x15,0x02 ; 204 PORTC_Bit3=0; RJMP ??DiagramHS_30 ; 205 break; ; 206 case 6: ; 207 PORTC_Bit0=0; ??DiagramHS_31: CBI 0x15,0x00 ; 208 PORTC_Bit1=0; RJMP ??DiagramHS_28 ; 209 PORTC_Bit2=1; ; 210 PORTC_Bit3=0; ; 211 break; ; 212 case 7: ; 213 PORTC_Bit0=0; ??DiagramHS_32: CBI 0x15,0x00 ; 214 PORTC_Bit1=1; SBI 0x15,0x01 ; 215 PORTC_Bit2=1; RJMP ??DiagramHS_29 ; 216 PORTC_Bit3=0; ; 217 break; ; 218 case 8: ; 219 PORTC_Bit0=0; ??DiagramHS_33: CBI 0x15,0x00 ; 220 PORTC_Bit1=1; SBI 0x15,0x01 ; 221 PORTC_Bit2=0; ??DiagramHS_26: CBI 0x15,0x02 ; 222 PORTC_Bit3=0; ??DiagramHS_30: CBI 0x15,0x03 ; 223 }; ; 224 }; ; 225 if (Cor==2) ??DiagramHS_18: CPI R25,2 BRNE ??DiagramHS_34 ; 226 { ; 227 switch (Num) MOV R16,R24 LDI R30,LOW(??DiagramHS_35) LDI R31,(??DiagramHS_35) >> 8 RJMP ?CV_SWITCH_L06 ; 228 { ; 229 case 1: ; 230 PORTD_Bit4=0; ??DiagramHS_36: CBI 0x12,0x04 ; 231 PORTD_Bit5=1; SBI 0x12,0x05 ; 232 PORTD_Bit6=0; ??DiagramHS_37: CBI 0x12,0x06 ; 233 PORTD_Bit7=1; SBI 0x12,0x07 RJMP ??DiagramHS_34 ; 234 break; ; 235 case 2: ; 236 PORTD_Bit4=0; ??DiagramHS_38: CBI 0x12,0x04 ; 237 PORTD_Bit5=0; ??DiagramHS_39: CBI 0x12,0x05 ; 238 PORTD_Bit6=0; RJMP ??DiagramHS_37 ; 239 PORTD_Bit7=1; ; 240 break; ; 241 case 3: ; 242 PORTD_Bit4=1; ??DiagramHS_40: SBI 0x12,0x04 ; 243 PORTD_Bit5=0; RJMP ??DiagramHS_39 ; 244 PORTD_Bit6=0; ; 245 PORTD_Bit7=1; ; 246 break; ; 247 case 4: ; 248 PORTD_Bit4=1; ??DiagramHS_41: SBI 0x12,0x04 ; 249 PORTD_Bit5=0; CBI 0x12,0x05 ; 250 PORTD_Bit6=0; RJMP ??DiagramHS_42 ; 251 PORTD_Bit7=0; ; 252 break; ; 253 case 5: ; 254 PORTD_Bit4=1; ??DiagramHS_43: SBI 0x12,0x04 ; 255 PORTD_Bit5=0; ??DiagramHS_44: CBI 0x12,0x05 ; 256 PORTD_Bit6=1; ??DiagramHS_45: SBI 0x12,0x06 ; 257 PORTD_Bit7=0; RJMP ??DiagramHS_46 ; 258 break; ; 259 case 6: ; 260 PORTD_Bit4=0; ??DiagramHS_47: CBI 0x12,0x04 ; 261 PORTD_Bit5=0; RJMP ??DiagramHS_44 ; 262 PORTD_Bit6=1; ; 263 PORTD_Bit7=0; ; 264 break; ; 265 case 7: ; 266 PORTD_Bit4=0; ??DiagramHS_48: CBI 0x12,0x04 ; 267 PORTD_Bit5=1; SBI 0x12,0x05 ; 268 PORTD_Bit6=1; RJMP ??DiagramHS_45 ; 269 PORTD_Bit7=0; ; 270 break; ; 271 case 8: ; 272 PORTD_Bit4=0; ??DiagramHS_49: CBI 0x12,0x04 ; 273 PORTD_Bit5=1; SBI 0x12,0x05 ; 274 PORTD_Bit6=0; ??DiagramHS_42: CBI 0x12,0x06 ; 275 PORTD_Bit7=0; ??DiagramHS_46: CBI 0x12,0x07 ; 276 }; ; 277 }; ; 278 for (i=0;i> 8 LDD R16,Z+2 TST R16 BRNE ??RXC__0 ; 291 { ; 292 Data = UDR; // Чего то приняли и ответили что приняли IN R17,0x0C ; 293 for (i=0;i<6;i++){__no_operation();} LDI R16,6 ??RXC__1: NOP DEC R16 BRNE ??RXC__1 ; 294 UDR = Data; // Это мы отвечаем OUT 0x0C,R17 ; 295 while (!(UCSRA_Bit6)) {}; // Waiting for the Sun ??RXC__2: SBIS 0x0B,0x06 RJMP ??RXC__2 ; 296 UCSRA_Bit6=1; SBI 0x0B,0x06 ; 297 ; 298 if (Data&0x80) // Управляющее слово BST R17,7 BRTC ??RXC__3 ; 299 { ; 300 if (Data&0x40) Reverce = 1; else Reverce = 0; //Направл вращения BST R17,6 BRTC ??RXC__4 LDI R16,1 RJMP ??RXC__5 ??RXC__4: LDI R16,0 ??RXC__5: ST Z,R16 ; 301 if ((Data&0x30)==0) Coord = 0; // Координата MOV R16,R17 ANDI R16,0x30 BRNE ??RXC__6 LDI R16,0 RJMP ??RXC__7 ; 302 if ((Data&0x30)==0x10) Coord = 1; ??RXC__6: MOV R16,R17 ANDI R16,0x30 CPI R16,16 BRNE ??RXC__8 LDI R16,1 RJMP ??RXC__7 ; 303 if ((Data&0x30)==0x20) Coord = 2; ??RXC__8: MOV R16,R17 ANDI R16,0x30 CPI R16,32 BRNE ??RXC__9 LDI R16,2 ??RXC__7: STD Z+1,R16 ; 304 Speed=Data&0x0F; ??RXC__9: ANDI R17,0x0F STD Z+3,R17 ; 305 return; RJMP ??RXC__0 ; 306 }; ; 307 ; 308 if (!(Data&0x80)) // Число шагов ; 309 { ; 310 Steps = Data; ??RXC__3: STD Z+2,R17 ??RXC__0: OUT 0x3F,R18 LD R16,Y+ LD R17,Y+ LD R18,Y+ LD R30,Y+ LD R31,Y+ RETI ; 311 return; ; 312 }; ; 313 }; ; 314 } ASEGN ABSOLUTE:DATA:NOROOT,01cH __?EECR: ASEGN ABSOLUTE:DATA:NOROOT,01dH __?EEDR: ASEGN ABSOLUTE:DATA:NOROOT,01eH __?EEARL: ASEGN ABSOLUTE:DATA:NOROOT,01fH __?EEARH: COMMON INTVEC:CODE:ROOT(1) ORG 22 RJMP RXC_ RSEG INITTAB:CODE:NOROOT(0) `?`: DW SFE(NEAR_Z) - SFB(NEAR_Z) DW SFB(NEAR_Z) DW 0 REQUIRE ?need_segment_init RSEG SWITCH:CODE:NOROOT(1) ??DiagramHS_3: DB 1 DB 0 DW (??DiagramHS_2) /2 DW 8 DW (??DiagramHS_4) /2 DW (??DiagramHS_6) /2 DW (??DiagramHS_8) /2 DW (??DiagramHS_9) /2 DW (??DiagramHS_11) /2 DW (??DiagramHS_15) /2 DW (??DiagramHS_16) /2 DW (??DiagramHS_17) /2 RSEG SWITCH:CODE:NOROOT(1) ??DiagramHS_19: DB 1 DB 0 DW (??DiagramHS_18) /2 DW 8 DW (??DiagramHS_20) /2 DW (??DiagramHS_22) /2 DW (??DiagramHS_24) /2 DW (??DiagramHS_25) /2 DW (??DiagramHS_27) /2 DW (??DiagramHS_31) /2 DW (??DiagramHS_32) /2 DW (??DiagramHS_33) /2 RSEG SWITCH:CODE:NOROOT(1) ??DiagramHS_35: DB 1 DB 0 DW (??DiagramHS_34) /2 DW 8 DW (??DiagramHS_36) /2 DW (??DiagramHS_38) /2 DW (??DiagramHS_40) /2 DW (??DiagramHS_41) /2 DW (??DiagramHS_43) /2 DW (??DiagramHS_47) /2 DW (??DiagramHS_48) /2 DW (??DiagramHS_49) /2 END ; 315 ; ; 14 bytes in segment ABSOLUTE ; 546 bytes in segment CODE ; 6 bytes in segment INITTAB ; 2 bytes in segment INTVEC ; 5 bytes in segment NEAR_Z ; 66 bytes in segment SWITCH ; ; 614 bytes of CODE memory (+ 6 bytes shared) ; 5 bytes of DATA memory (+ 14 bytes shared) ; ;Errors: none ;Warnings: none