RAM equ 0000h THIS equ 0010h END equ 0020h SCSR equ 2Eh PORTB equ 1004h ; address of PORTB register org RAM jmp BEGIN BEGIN: ldab 01h ; move 1 into register b stab [PORTB] ; light b0 ldab 03h ; move 1 into register b stab [PORTB] ; light b0 bsr DELAY1K ldab 00h ; move 0 into register b stab [PORTB] ; turn off bo bsr DELAY1K jmp BEGIN ; ldaa [PORTB] ; move contents of PORTB into register a ; ldab [PORTB] ; rts DELAY10 equ * ; 10ms delay @ 2.1 mhz pshy ; save register y ldy 0BB8h ; load loop counter into y register DELAY10LOOP equ * ; loop counter sync address dey ; decrement counter bne DELAY10LOOP ; loop until zero in y puly ; restore register y rts ; return to caller DELAY1K equ * ; 1000ms delay @ 2.1 mhz pshy ; save register y ldy 0Ah ; load 10d into register y DELAY1KLP equ * ; loop counter sync address bsr DELAY100 ; call 100 ms delay dey ; decrement register y bne DELAY1KLP ; continue puly ; restore register y rts ; return to caller DELAY100 equ * ; 100 ms @ 2.1 mhz pshx ; save register x ldx 07530h ; load loop counter into register x DELAY100LP equ * ; loop counter sync address dex ; decrement register x bne DELAY100LP ; continue pulx ; restore register x rts ; return to caller