rendered paste body INCLUDE 'MC68HC908QB8.inc' ;para o QB8
XDEF main
ABSENTRY main
;===============================================================================
ORG Z_RAMStart ;1a pagina da RAM $0040 até $00FF
TEMPO: DS 3
TLED_R: DS 1
TLED_G: DS 1
TLED_B: DS 1
;===============================================================================
ORG RAMStart ;2a pagina da ram
;===============================================================================
ORG ROMStart ;Onde comeca a flash
main:
MOV #0,CONFIG2
MOV #$39,CONFIG1
MOV #$39,DDRA
MOV #0,PTA
INICIO: BRSET 1,PTA,TESTE1 ;DESVIA SE CH1 = 1
BRSET 0,PTA,OP2 ;DESVIA SE CH1 = 0 E CH0 = 1
OP1: MOV #2,TLED_R
MOV #3,TLED_G
MOV #5,TLED_B
BRA BLUE
TESTE1: BRSET 0,PTA,OP4 ;DESVIA SE CH1 = 1 E CH0 = 1
OP3: MOV #1,TLED_R
MOV #2,TLED_G
MOV #3,TLED_B
BRA BLUE
OP2: MOV #3,TLED_R
MOV #2,TLED_G
MOV #1,TLED_B
BRA BLUE
OP4: MOV #1,TLED_R
MOV #1,TLED_G
MOV #1,TLED_B
BLUE: LDA TLED_B
BEQ BLUE1
BSET 3,PTA
DEC TLED_B
GREEN: LDA TLED_G
BEQ GREEN1
BSET 4,PTA
DEC TLED_G
RED: LDA TLED_R
BEQ RED1
BSET 5,PTA
DEC TLED_R
TESTA: BSR D1SEG
LDA TLED_B
BNE BLUE
LDA TLED_G
BNE BLUE
LDA TLED_R
BNE BLUE
BRA INICIO
BLUE1: BCLR 3,PTA
BRA GREEN
GREEN1: BCLR 4,PTA
BRA RED
RED1: BCLR 5,PTA
BRA TESTA
;Sub-rotina de delay
D1SEG: MOV #100,TEMPO+2
D10MILI: MOV #100,TEMPO+1
D100MICRO: MOV #64,TEMPO
VOLTA: DBNZ TEMPO,VOLTA ;5T
DBNZ TEMPO+1,D100MICRO ;5T
DBNZ TEMPO+2,D10MILI ;5T
RTS
;===============================================================================
ORG $FFFE
DC.W main ;Reset
END