Rev 411 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
261 | ddp | 1 | .NOLIST |
290 | ddp | 2 | .INCLUDE "m128def.inc" |
3 | .INCLUDE "_macros.asm" |
||
695 | chrv | 4 | .INCLUDE "deflang.inc" |
261 | ddp | 5 | .LIST |
6 | .LISTMAC |
||
7 | |||
380 | ddp | 8 | ;.EQU DEBUG_FPGA_OUT=1 |
9 | |||
10 | .DEF MODE1 =R10 ;глобальный регистр, (.7 - 0=VGAmode, 1=TVmode) читается из EEPROM |
||
277 | ddp | 11 | .DEF LANG =R11 ;глобальный регистр, язык интерфейса (умнож.на 2) читается из EEPROM |
261 | ddp | 12 | .DEF INT6VECT=R12 ;глобальный регистр, (обработчики INT6) |
13 | .DEF FF =R13 ;глобальный регистр, всегда = $FF |
||
14 | .DEF ONE =R14 ;глобальный регистр, всегда = $01 |
||
15 | .DEF NULL =R15 ;глобальный регистр, всегда = $00 |
||
16 | .DEF DATA =R16 |
||
17 | .DEF TEMP =R17 |
||
18 | .DEF COUNT =R18 |
||
19 | .DEF BITS =R19 |
||
20 | .DEF FLAGS1 =R20 ;глобальный регистр, флаги: |
||
21 | ;.0 - PUTCHAR вызывает UARTDIRECT_PUTCHAR |
||
22 | ;.1 - PUTCHAR вызывает UART_PUTCHAR |
||
23 | ;.2 - PUTCHAR вызывает SCR_PUTCHAR |
||
352 | ddp | 24 | ;.3 - лог обмена SD в RS-232 |
25 | ;.4 - RS-232 RTS/CTS flow control |
||
261 | ddp | 26 | .DEF TMP2 =R22 |
27 | .DEF TMP3 =R23 |
||
28 | .DEF WL =R24 |
||
29 | .DEF WH =R25 |
||
30 | ; DATA,TEMP,COUNT,WL,WH,XL,XH,ZL,ZH - могут передавать параметры в функции и возвращать результаты |
||
31 | ; Y - указатель на стек данных (растёт вниз) |
||
32 | ; R0,R1 и остальные - используются локально |
||
33 | ; |
||
34 | ;-------------------------------------- |
||
35 | ; |
||
36 | .EQU DBSIZE_HI =HIGH(2048) |
||
37 | .EQU DBMASK_HI =HIGH(2047) |
||
38 | .EQU nCONFIG =PORTF0 |
||
39 | .EQU nSTATUS =PORTF1 |
||
40 | .EQU CONF_DONE =PORTF2 |
||
41 | ; |
||
42 | ;-------------------------------------- |
||
43 | ;регистры fpga |
||
44 | .EQU TEMP_REG =$A0 |
||
45 | .EQU SD_CS0 =$A1 |
||
46 | .EQU SD_CS1 =$A2 |
||
47 | .EQU FLASH_LOADDR =$A3 |
||
48 | .EQU FLASH_MIDADDR =$A4 |
||
49 | .EQU FLASH_HIADDR =$A5 |
||
50 | .EQU FLASH_DATA =$A6 |
||
51 | .EQU FLASH_CTRL =$A7 |
||
52 | .EQU SCR_LOADDR =$A8 ; текущая позиция печати |
||
53 | .EQU SCR_HIADDR =$A9 ; |
||
54 | .EQU SCR_ATTR =$AA ; запись атрибута в ATTR |
||
55 | .EQU SCR_FILL =$AB ; прединкремент адреса и запись атрибута в ATTR и в память |
||
56 | ; (если только дергать spics_n, будет писаться предыдущий ATTR) |
||
57 | .EQU SCR_CHAR =$AC ; прединкремент адреса и запись символа в память и ATTR в память |
||
58 | ; (если только дергать spics_n, будет писаться предыдущий символ) |
||
59 | .EQU SCR_MOUSE_TEMP =TEMP_REG |
||
60 | .EQU SCR_MOUSE_X =$AD |
||
61 | .EQU SCR_MOUSE_Y =$AE |
||
411 | ddp | 62 | .EQU SCR_MODE =$AF ; .7 - 0=VGAmode, 1=TVmode; .2.1.0 - режимы; |
261 | ddp | 63 | |
64 | .EQU MTST_CONTROL =$50 |
||
65 | .EQU MTST_PASS_CNT0 =$51 |
||
66 | .EQU MTST_PASS_CNT1 =TEMP_REG |
||
67 | .EQU MTST_FAIL_CNT0 =$52 |
||
68 | .EQU MTST_FAIL_CNT1 =TEMP_REG |
||
69 | |||
70 | .EQU COVOX =$53 |
||
71 | |||
72 | .EQU INT_CONTROL =$54 |
||
73 | ; |
||
74 | ;-------------------------------------- |
||
75 | ; |
||
76 | .MACRO SPICS_SET |
||
77 | SBI PORTB,0 |
||
78 | .ENDMACRO |
||
79 | |||
80 | .MACRO SPICS_CLR |
||
81 | CBI PORTB,0 |
||
82 | .ENDMACRO |
||
380 | ddp | 83 | |
84 | .MACRO LED_ON |
||
85 | CBI PORTB,7 |
||
86 | .ENDMACRO |
||
87 | |||
88 | .MACRO LED_OFF |
||
89 | SBI PORTB,7 |
||
90 | .ENDMACRO |
||
91 | |||
261 | ddp | 92 | ; |
93 | ;-------------------------------------- |
||
94 | ; |
||
95 | .DSEG |
||
277 | ddp | 96 | .ORG $0300 |
261 | ddp | 97 | DSTACK: |
98 | .EQU UART_TXBSIZE =128 ;размер буфера д.б. равен СТЕПЕНЬ_ДВОЙКИ байт (...32,64,128,256) |
||
99 | UART_TX_BUFF: .BYTE UART_TXBSIZE ;адрес д.б. кратен UART_TXBSIZE |
||
100 | .EQU UART_RXBSIZE =128 ;размер буфера д.б. равен СТЕПЕНЬ_ДВОЙКИ байт |
||
101 | UART_RX_BUFF: .BYTE UART_RXBSIZE ;адрес д.б. кратен UART_RXBSIZE |
||
102 | |||
277 | ddp | 103 | .ORG $0400 |
104 | BUFSECT: ;буфер сектора |
||
105 | .ORG $0600 |
||
106 | BUF4FAT: ;временный буфер (FAT и т.п.) |
||
107 | .ORG $0800 |
||
261 | ddp | 108 | MEGABUFFER: |
277 | ddp | 109 | .ORG RAMEND |
261 | ddp | 110 | HSTACK: |
277 | ddp | 111 | .ORG $0100 |
352 | ddp | 112 | RND: .BYTE 4 |
277 | ddp | 113 | NEWFRAME: .BYTE 1 |
114 | GLB_STACK: .BYTE 2 |
||
115 | GLB_Y: .BYTE 2 |
||
261 | ddp | 116 | ; |
117 | ;-------------------------------------- |
||
118 | ; |
||
119 | .ESEG |
||
380 | ddp | 120 | .ORG $0F00 |
121 | EE_DUMMY: .DB $54,$53 |
||
261 | ddp | 122 | EE_MODE1: .DB $FF |
695 | chrv | 123 | EE_LANG: .DB DEF_LANG |
261 | ddp | 124 | ; |
125 | ;-------------------------------------- |
||
126 | ; |
||
127 | .CSEG |
||
128 | .ORG 0 |
||
129 | JMP START |
||
380 | ddp | 130 | JMP START ;EXT_INT0 ; IRQ0 Handler |
131 | JMP START ;EXT_INT1 ; IRQ1 Handler |
||
132 | JMP START ;EXT_INT2 ; IRQ2 Handler |
||
133 | JMP START ;EXT_INT3 ; IRQ3 Handler |
||
134 | JMP EXT_INT4 ; IRQ4 Handler |
||
135 | JMP EXT_INT5 ; IRQ5 Handler |
||
136 | JMP EXT_INT6 ; IRQ6 Handler |
||
137 | JMP START ;EXT_INT7 ; IRQ7 Handler |
||
138 | JMP START ;TIM2_COMP ; Timer2 Compare Handler |
||
139 | JMP START ;TIM2_OVF ; Timer2 Overflow Handler |
||
140 | JMP START ;TIM1_CAPT ; Timer1 Capture Handler |
||
141 | JMP START ;TIM1_COMPA ; Timer1 CompareA Handler |
||
142 | JMP START ;TIM1_COMPB ; Timer1 CompareB Handler |
||
143 | JMP START ;TIM1_OVF ; Timer1 Overflow Handler |
||
144 | JMP START ;TIM0_COMP ; Timer0 Compare Handler |
||
145 | JMP TIM0_OVF ; Timer0 Overflow Handler |
||
146 | JMP START ;SPI_STC ; SPI Transfer Complete Handler |
||
147 | JMP START ;USART0_RXC ; USART0 RX Complete Handler |
||
148 | JMP START ;USART0_DRE ; USART0,UDR Empty Handler |
||
149 | JMP START ;USART0_TXC ; USART0 TX Complete Handler |
||
150 | JMP START ;ADC ; ADC Conversion Complete Handler |
||
151 | JMP START ;EE_RDY ; EEPROM Ready Handler |
||
152 | JMP START ;ANA_COMP ; Analog Comparator Handler |
||
153 | JMP START ;TIM1_COMPC ; Timer1 CompareC Handler |
||
154 | JMP START ;TIM3_CAPT ; Timer3 Capture Handler |
||
155 | JMP TIM3_COMPA ; Timer3 CompareA Handler |
||
156 | JMP START ;TIM3_COMPB ; Timer3 CompareB Handler |
||
157 | JMP START ;TIM3_COMPC ; Timer3 CompareC Handler |
||
158 | JMP START ;TIM3_OVF ; Timer3 Overflow Handler |
||
159 | JMP USART1_RXC ; USART1 RX Complete Handler |
||
160 | JMP USART1_DRE ; USART1,UDR Empty Handler |
||
161 | JMP START ;USART1_TXC ; USART1 TX Complete Handler |
||
162 | JMP START ;TWI_INT ; Two-wire Serial Interface Interrupt Handler |
||
163 | JMP START ;SPM_RDY ; SPM Ready Handler |
||
261 | ddp | 164 | |
165 | .DW 0,0 |
||
166 | .DB "================" |
||
352 | ddp | 167 | .DB " Test&Service " |
261 | ddp | 168 | .DB "================" |
169 | ; |
||
170 | ;-------------------------------------- |
||
171 | ; |
||
290 | ddp | 172 | .INCLUDE "_message.inc" |
173 | .INCLUDE "_t_sd.asm" |
||
174 | .INCLUDE "_uart.asm" |
||
175 | .INCLUDE "_timers.asm" |
||
176 | .INCLUDE "_pintest.asm" |
||
177 | .INCLUDE "_ps2k.asm" |
||
178 | .INCLUDE "_t_ps2k.asm" |
||
179 | .INCLUDE "_t_ps2m.asm" |
||
180 | .INCLUDE "_output.asm" |
||
181 | .INCLUDE "_screen.asm" |
||
261 | ddp | 182 | ; |
183 | ;-------------------------------------- |
||
184 | ;обмен с регистрами в FPGA |
||
185 | ;in: TEMP == номер регистра |
||
186 | ; DATA == данные |
||
187 | ;out: DATA == данные |
||
188 | FPGA_REG: |
||
189 | PUSH DATA |
||
380 | ddp | 190 | .IFDEF DEBUG_FPGA_OUT |
191 | CALL DBG_SET_FPGA_REG |
||
192 | .ENDIF |
||
261 | ddp | 193 | SPICS_SET |
194 | OUT SPDR,TEMP |
||
195 | RCALL FPGA_RDY_RD |
||
196 | POP DATA |
||
197 | ;обмен без установки регистра |
||
198 | ;in: DATA == данные |
||
199 | ;out: DATA == данные |
||
200 | FPGA_SAME_REG: |
||
380 | ddp | 201 | .IFDEF DEBUG_FPGA_OUT |
202 | CALL DBG_OUT_TO_FPGA |
||
203 | .ENDIF |
||
261 | ddp | 204 | SPICS_CLR |
205 | OUT SPDR,DATA |
||
206 | ;ожидание окончания обмена с FPGA по SPI |
||
207 | ;и чтение пришедших данных |
||
208 | ;out: DATA == данные |
||
209 | FPGA_RDY_RD: |
||
210 | ; SBIC SPSR,WCOL |
||
211 | ; JMP CHAOS00 |
||
212 | SBIS SPSR,SPIF |
||
213 | RJMP FPGA_RDY_RD |
||
214 | IN DATA,SPDR |
||
215 | SPICS_SET |
||
216 | RET |
||
217 | ; |
||
218 | ;-------------------------------------- |
||
219 | ; |
||
220 | EXT_INT6: |
||
277 | ddp | 221 | PUSH BITS |
222 | IN BITS,SREG |
||
261 | ddp | 223 | SBRC INT6VECT,0 |
224 | CALL T_BEEP_INT |
||
277 | ddp | 225 | SBRC INT6VECT,1 |
226 | STS NEWFRAME,ONE |
||
227 | OUT SREG,BITS |
||
228 | POP BITS |
||
261 | ddp | 229 | RETI |
230 | ; |
||
231 | ;-------------------------------------- |
||
232 | ; |
||
290 | ddp | 233 | .INCLUDE "_sd_lowl.asm" |
234 | .INCLUDE "_t_zxkbd.asm" |
||
235 | .INCLUDE "_t_beep.asm" |
||
236 | .INCLUDE "_sd_fat.asm" |
||
237 | .INCLUDE "_depack.asm" |
||
238 | .INCLUDE "_flasher.asm" |
||
239 | .INCLUDE "_t_video.asm" |
||
240 | .INCLUDE "_t_dram.asm" |
||
241 | .INCLUDE "_misc.asm" |
||
352 | ddp | 242 | .INCLUDE "_t_rs232.asm" |
380 | ddp | 243 | .IFDEF DEBUG_FPGA_OUT |
244 | .INCLUDE "__debug.asm" |
||
245 | .ENDIF |
||
261 | ddp | 246 | ; |
247 | ;-------------------------------------- |
||
248 | ; |
||
249 | START: CLI |
||
250 | CLR R0 |
||
251 | LDIZ $0001 |
||
252 | CLRALL1:ST Z+,R0 |
||
253 | CPI ZL,$1E |
||
254 | BRNE CLRALL1 |
||
255 | LDI ZL,$20 |
||
256 | CLRALL2:ST Z+,NULL |
||
257 | CPI ZH,$11 |
||
258 | BRNE CLRALL2 |
||
259 | INC ONE |
||
260 | DEC FF |
||
261 | ; |
||
262 | LDI TEMP,LOW(HSTACK) |
||
263 | OUT SPL,TEMP |
||
264 | LDI TEMP,HIGH(HSTACK) |
||
265 | OUT SPH,TEMP |
||
266 | LDIX RND |
||
267 | ST X+,TEMP |
||
268 | ST X+,FF |
||
269 | ST X+,ONE |
||
352 | ddp | 270 | ST X+,FF |
261 | ddp | 271 | ; |
272 | LDIW EE_MODE1 |
||
273 | CALL EEPROM_READ |
||
274 | MOV MODE1,DATA |
||
275 | LDI WL,LOW(EE_LANG) |
||
276 | CALL EEPROM_READ |
||
277 | CPI DATA,MAX_LANG |
||
278 | BRCS RDE1 |
||
279 | CLR DATA |
||
280 | RDE1: LSL DATA |
||
281 | MOV LANG,DATA |
||
282 | ; |
||
283 | CALL PINTEST |
||
284 | ; - - - - - - - - - - - - - - - |
||
285 | LDI TEMP, 0B11111111 |
||
286 | OUTPORT PORTG,TEMP |
||
287 | LDI TEMP, 0B00000000 |
||
288 | OUTPORT DDRG,TEMP |
||
289 | |||
290 | LDI TEMP, 0B00001000 |
||
291 | OUTPORT PORTF,TEMP |
||
292 | OUTPORT DDRF,TEMP |
||
293 | |||
411 | ddp | 294 | LDI TEMP, 0B11110011 |
261 | ddp | 295 | OUT PORTE,TEMP |
290 | ddp | 296 | LDI TEMP, 0B00000000 |
261 | ddp | 297 | OUT DDRE,TEMP |
298 | |||
299 | LDI TEMP, 0B11111111 |
||
300 | OUT PORTD,TEMP |
||
301 | LDI TEMP, 0B00000000 |
||
302 | OUT DDRD,TEMP |
||
303 | |||
304 | LDI TEMP, 0B11011111 |
||
305 | OUT PORTC,TEMP |
||
306 | LDI TEMP, 0B00000000 |
||
307 | OUT DDRC,TEMP |
||
308 | |||
309 | LDI TEMP, 0B11111001 |
||
310 | OUT PORTB,TEMP |
||
311 | LDI TEMP, 0B10000111 |
||
312 | OUT DDRB,TEMP |
||
313 | |||
314 | LDI TEMP, 0B11111111 |
||
315 | OUT PORTA,TEMP |
||
316 | LDI TEMP, 0B00000000 |
||
317 | OUT DDRA,TEMP |
||
318 | ; - - - - - - - - - - - - - - - |
||
319 | LDIZ MLMSG_STATUSOF_CRLF*2 |
||
320 | CALL POWER_STATUS |
||
321 | SBIS PINF,0 ;VCC5 |
||
322 | RJMP UP10 |
||
323 | SBIS PINC,5 ;POWERGOOD |
||
324 | RJMP UP11 |
||
325 | RJMP UP19 |
||
326 | UP10: LDIZ MLMSG_POWER_ON*2 |
||
327 | CALL PRINTMLSTR |
||
328 | ;ждём включения ATX, а потом ещё чуть-чуть. |
||
329 | UP12: SBIC PINF,0 ;VCC5 |
||
330 | RJMP UP11 |
||
331 | LDIZ MLMSG_STATUSOF_CR*2 |
||
332 | CALL POWER_STATUS |
||
333 | RJMP UP12 |
||
334 | UP11: LDI COUNT,170 ;170 раз по 31 символу на скорости 115200 = ~500ms |
||
335 | UP13: PUSH COUNT |
||
336 | LDIZ MLMSG_STATUSOF_CR*2 |
||
337 | CALL POWER_STATUS |
||
338 | POP COUNT |
||
339 | DEC COUNT |
||
340 | BRNE UP13 |
||
341 | UP19: |
||
342 | ; - - - - - - - - - - - - - - - |
||
343 | LDIZ MLMSG_CFGFPGA*2 |
||
344 | CALL PRINTMLSTR |
||
345 | ;SPI init |
||
346 | LDI TEMP,(1<<SPI2X) |
||
347 | OUT SPSR,TEMP |
||
348 | LDI TEMP,(1<<SPE)|(1<<DORD)|(1<<MSTR)|(0<<CPOL)|(0<<CPHA) |
||
349 | OUT SPCR,TEMP |
||
350 | ;загрузка FPGA |
||
351 | INPORT TEMP,DDRF |
||
352 | SBR TEMP,(1<<nCONFIG) |
||
353 | OUTPORT DDRF,TEMP |
||
354 | |||
355 | DELAY_US 40 |
||
356 | |||
357 | INPORT TEMP,DDRF |
||
358 | CBR TEMP,(1<<nCONFIG) |
||
359 | OUTPORT DDRF,TEMP |
||
360 | |||
361 | LDFPGA1:SBIS PINF,nSTATUS |
||
362 | RJMP LDFPGA1 |
||
363 | |||
364 | LDIZ PACKED_FPGA*2 |
||
365 | OUT RAMPZ,ONE |
||
366 | CALL DMLZ_INIT |
||
367 | LDFPGA3:CALL DMLZ_GETBYTE |
||
368 | BREQ LDFPGA_DONE |
||
369 | OUT SPDR,DATA |
||
370 | LDFPGA2:SBIS SPSR,SPIF |
||
371 | RJMP LDFPGA2 |
||
372 | RJMP LDFPGA3 |
||
373 | LDFPGA_DONE: |
||
374 | SBIS PINF,CONF_DONE |
||
375 | RJMP LDFPGA_DONE |
||
376 | |||
377 | ;SPI reinit |
||
378 | LDI TEMP,(1<<SPE)|(0<<DORD)|(1<<MSTR)|(0<<CPOL)|(0<<CPHA) |
||
379 | OUT SPCR,TEMP |
||
380 | ; - - - - - - - - - - - - - - - |
||
352 | ddp | 381 | LDIY DSTACK |
382 | LDIZ MLMSG_DONE1*2 |
||
261 | ddp | 383 | CALL PRINTMLSTR |
352 | ddp | 384 | ; |
385 | LDI COUNT,0 |
||
386 | CALL RANDOM ;note: используются особенности |
||
380 | ddp | 387 | LDI TEMP,SCR_ATTR |
352 | ddp | 388 | CALL FPGA_REG |
389 | SPITST1:CALL RANDOM ;note: используются особенности |
||
390 | CALL FPGA_SAME_REG |
||
391 | COM DATA |
||
392 | LDS TEMP,RND+1 ;предыдущее результат RANDOM |
||
393 | CP DATA,TEMP |
||
394 | BREQ SPITST2 |
||
395 | RJMP SPI_ERROR |
||
396 | SPITST2:DEC COUNT |
||
397 | BRNE SPITST1 |
||
398 | LDI DATA,$7F |
||
399 | CALL FPGA_SAME_REG |
||
400 | LDIZ MSG_OK*2 |
||
401 | CALL PRINTSTRZ |
||
402 | ; |
||
261 | ddp | 403 | DELAY_US 200 |
404 | CALL UART_INIT |
||
405 | CALL PS2K_INIT |
||
406 | CALL TIMERS_INIT |
||
277 | ddp | 407 | IN TEMP,EICRB |
408 | ORI TEMP,(1<<ISC61)|(0<<ISC60) |
||
409 | OUT EICRB,TEMP |
||
410 | IN TEMP,EIMSK |
||
411 | ORI TEMP,(1<<INT6) |
||
412 | OUT EIMSK,TEMP |
||
261 | ddp | 413 | SEI |
414 | |||
415 | MOV DATA,MODE1 |
||
380 | ddp | 416 | ANDI DATA,0B10000000 |
261 | ddp | 417 | LDI TEMP,SCR_MODE |
418 | CALL FPGA_REG |
||
277 | ddp | 419 | LDI DATA,0B00000000 |
420 | LDI TEMP,INT_CONTROL |
||
421 | CALL FPGA_REG |
||
261 | ddp | 422 | |
423 | CALL PS2K_DETECT_KBD |
||
424 | |||
425 | LDI DATA,$01 |
||
426 | LDI TEMP,MTST_CONTROL |
||
427 | CALL FPGA_REG |
||
428 | |||
429 | LDIZ MSG_READY*2 |
||
430 | CALL PRINTSTRZ |
||
431 | CALL SCR_KBDSETLED |
||
432 | ; |
||
433 | NOEXIT: |
||
434 | LDIZ MENU_MAIN*2 |
||
435 | CALL MENU |
||
436 | RJMP NOEXIT |
||
437 | ; |
||
438 | MSG_READY: |
||
439 | .DB "---",$0D,$0A,0 |
||
440 | ; |
||
441 | ;-------------------------------------- |
||
442 | ; |
||
443 | POWER_STATUS: |
||
444 | CALL PRINTMLSTR |
||
445 | LDIZ MSG_POWER_PG*2 |
||
446 | CALL PRINTSTRZ |
||
447 | LDI DATA,$30 ;"0" |
||
448 | SBIC PINC,5 ;POWERGOOD |
||
449 | LDI DATA,$31 ;"1" |
||
450 | CALL HEXHALF |
||
451 | LDIZ MSG_POWER_VCC5*2 |
||
452 | CALL PRINTSTRZ |
||
453 | LDI DATA,$30 ;"0" |
||
454 | SBIC PINF,0 ;VCC5 |
||
455 | LDI DATA,$31 ;"1" |
||
456 | JMP HEXHALF |
||
457 | ; |
||
458 | ;-------------------------------------- |
||
459 | ; |
||
352 | ddp | 460 | SPI_ERROR: |
461 | LDIZ MLMSG_SOMEERRORS*2 |
||
462 | CALL PRINTMLSTR |
||
463 | SPITST5:LDIW 50000 |
||
464 | LDIX 0 |
||
465 | SPITST3:CALL RANDOM ;note: используются особенности |
||
466 | CALL FPGA_SAME_REG |
||
467 | COM DATA |
||
468 | LDS TEMP,RND+1 ;предыдущее результат RANDOM |
||
469 | CP DATA,TEMP |
||
470 | BREQ SPITST4 |
||
471 | ADIW XL,1 |
||
472 | SPITST4:SBIW WL,1 |
||
473 | BRNE SPITST3 |
||
474 | ;PUSHX |
||
475 | LDIZ MLMSG_SPI_TEST*2 |
||
476 | CALL PRINTMLSTR |
||
477 | ;POPX |
||
478 | CALL DECWORD |
||
479 | RJMP SPITST5 |
||
480 | ; |
||
481 | ;-------------------------------------- |
||
482 | ; |
||
261 | ddp | 483 | ;NOTHING:RET |
484 | ; |
||
485 | ;-------------------------------------- |
||
486 | ; |
||
487 | .NOLIST |
||
488 | .ORG $7F80 |
||
489 | TABL_SINUS: |
||
290 | ddp | 490 | .INCLUDE "sin256.inc" |
261 | ddp | 491 | .ORG $8000 |
492 | PACKED_FPGA: |
||
290 | ddp | 493 | .INCLUDE "fpga.inc" |
261 | ddp | 494 | ; |
495 | ;-------------------------------------- |
||
496 | ; |