  title  "Walking Lights, by PEK 99.07.05"
; Klocka 16C84 på 4 MHz för rätt tider.
; Anslut de 8 lysdioderna med anoden till PortB.
; Katoden på lysdioderna kopplas samman och kopplas till ett
; 220 Ohms motstånd som går till GND.

  LIST P=16C84, R=DEC
  errorlevel 0,-305
  INCLUDE "P16C84.inc"

; Registers
  Count_1       equ 12
  Count_2       equ 13
  i             equ 14

  __CONFIG _CP_OFF & _WDT_OFF & _XT_OSC

  PAGE
; Start of Program

  org           0

  bsf           STATUS, RP0     ; Alla bitar på Port-B som utgångar.    
  clrf          TRISB & 0x07F          
  bcf           STATUS, RP0    

  movlw         1               ; Startar med En bit hög
  movwf         PORTB


; Loop som går runt i all evighet
Start

  movlw         7               ; 7 ggr som det ska skiftas
  movwf         i
Loop1
  call          Delay
  rlf           PORTB, f        ; Roterar PortB åt vänster
    decfsz      i
      goto      Loop1

  movlw         7               ; 7 ggr igen
  movwf         i
Loop2
  call          Delay
  rrf           PORTB, f        ; Roterar PortB åt höger
    decfsz      i
      goto      Loop2

  goto Start


; Delay-rutin, ska vara 1 sek då kretsen klockas med 1 MHz.
Delay
  ifndef        Debug
  movlw         194
  movwf         Count_1
  movlw         163
  movwf         Count_2
Dlay
  decfsz        Count_1
    goto        Dlay
  decfsz        Count_2
    goto        Dlay
  endif
  return


  end

