; ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ ΥΠΟΔΕΙΓΜΑΤΟΣ
;
; 1. Η χρήση του  υποδείγματος ως βάση για το πρόγραμμά σας
; είναι ΥΠΟΧΡΕΩΤΙΚΗ. Μπορείτε να προσθέσετε εντολές και να 
; διαλέξετε τους καταχωρητές που χρησιμοποιούνται αλλά ΔΕΝ ΠΡΕΠΕΙ
; να αλλάξετε τη δομή του υποδείγματος.
; 
; 2. Πριν τη χρήση του υποδείγματος διαγράψτε ΟΛΕΣ τις γραμμές
; σχολίων. Στο τελικό πρόγραμμα πρέπει να υπάρχουν μόνο λατινικοί
; χαρακτήρες (ANSI text).

[start]

; Αρχικοποιήστε τον μετρητή C και τις μεταβλητές σύγκρισης Qn για
; τα 7 κανάλια PWM στις τιμές #20,#40,#60,#80,#A0,#C0,#E0 

; Θέστε τα ports της PIA σε κατάσταση εξόδου (output)
; γράφοντας στη διεύθυνση της λέξης ελέγχου της PIA (1b03)

; Χρησιμοποιήστε έναν καταχωρητή για να κρατάτε την τιμή που
; γράφετε στα ports της PIA. ΜΗΝ ΔΙΑΒΑΖΕΤΕ τα ports εξόδου!
; outvalue=0
; PIA_output_port=outvalue

; Τοποθετήστε τα διανύσματα διακοπής για τα INT7 και ΙΝΤ6 και
; ενεργοποιήστε τις διακοπές INT7 και INT6. Δείτε το παράδειγμα
; της 1ης άσκησης.

; Ατέρμων βρόχος. Εδώ παράγετε συνεχώς τις 7 παλμοσειρές
; του PWM. Υλοποιήστε τον βρόχο ως εξής:

[loop]
; C+=1
; if (C!=0) goto next1
; outvalue=0
; PIA_output_port=outvalue
; goto loop
; [next1]
; if (C!=Q1) goto next2
; outvalue|=τιμή_που_θέτει_το κανάλι1_σε_HIGH
; [next2]
; if (C!=Q2) goto next3
; outvalue|=τιμή_που_θέτει_το κανάλι2_σε_HIGH
; [next3]
; ...
; κ.λ.π.
; ...
; PIA_output_port=outvalue
ljmp loop  


[int7]
di
; στο σημείο αυτό τροποποιήστε τις μεταβλητές σύγκρισης Qn
; έτσι ώστε να μειωθεί η φωτεινότητα των leds στο μισό.
; ΠΡΟΣΟΧΗ!!! Αν χρησιμοποιείτε εντολές ολίσθησης:
; ΜΗΝ ΧΡΗΣΙΜΟΠΟΙΗΣΕΤΕ π.χ shlb reg,#01 ΑΛΛΑ shlb reg,reg1 (με reg1=1).
; Επίσης φροντίστε να ελέγχετε τα όρια της ολίσθησης. 
ei
ret

[int6]
di
; στο σημείο αυτό τροποποιήστε τις μεταβλητές σύγκρισης Qn
; έτσι ώστε να διπλασιαστεί η φωτεινότητα των leds.
; ΠΡΟΣΟΧΗ!!! Αν χρησιμοποιείτε εντολές ολίσθησης:
; ΜΗΝ ΧΡΗΣΙΜΟΠΟΙΗΣΕΤΕ π.χ. shlb reg,#01 ΑΛΛΑ shlb reg,reg1 (με reg1=1).
; Επίσης φροντίστε να ελέγχετε τα όρια της ολίσθησης. 
ei
ret
