;*****************************
;*        Main program       *
;*****************************
egk1    `EQU    FFFFFF10
egk1st  `EQU    FFFFFF11
egk1cl  `EQU    FFFFFF11
egk2    `EQU    FFFFFF20
egk2st  `EQU    FFFFFF21
egk2cl  `EQU    FFFFFF21
egk3    `EQU    FFFFFF30
egk3st  `EQU    FFFFFF31
egk3cl  `EQU    FFFFFF31

        `ORG    0
        LOADL   R7, 10000       ;stog
        LOADL   R1, %D 175      ;broj glasaca
        CLEAR   R2              ;broj glasova za
        CLEAR   R3              ;broj glasova protiv

check1  LOADcc  R0, (egk1st)    ;ispitaj vj1
        JR_Z    check2          ;skoci dalje
        LOAD    R0, (egk1)      ;ucitaj podatak
        STORE   R0, (egk1cl)    ;obrisi spremnost
        CALL    addvote         ;obradi glas
        TEST    R0              ;da li smo gotovi?
        JR_NZ   end             ;jesmo
check2  LOADcc  R0, (egk2st)    ;ispitaj vj2
        JR_Z    check3          ;skoci dalje
        LOAD    R0, (egk2)      ;ucitaj podatak
        STORE   R0, (egk2cl)    ;obrisi spremnost
        CALL    addvote         ;obradi glas
        TEST    R0              ;da li smo gotovi?
        JR_NZ   end             ;jesmo
check3  LOADcc  R0, (egk3st)    ;ispitaj vj3
        JR_Z    check1          ;skoci dalje
        LOAD    R0, (egk3)      ;ucitaj podatak
        STORE   R0, (egk3cl)    ;obrisi spremnost
        CALL    addvote         ;obradi glas
        TEST    R0              ;da li smo gotovi
        JR_Z    check1          ;nismo, petljaj ponovo

end     STORE   R2, (za)        ;spremi glasove za
        STORE   R3, (protiv)    ;spremi glasove protiv
        HALT

za      `DW     0
protiv  `DW     0

;*********************
;* Addvote subrutine *
;*********************
        `ORG    50
addvote CMP     1, R0           ;da li je glas za?
        JR_NE   checkno         ;nije, skoci
        INC     R2              ;povecaj brojac za
        JR      notdec
checkno CMP     2, R0           ;da li je glas protiv?
        JR_NE   notdec          ;glas je suzdrzan
        INC     R3              ;povecaj brojac protiv
notdec  CLEAR   R0
        DEC     R1              ;smanji brojac preostalih ljudi
        JR_NZ   endsub
        INC     R0              ;R0 = 1 - svi su glasali
endsub  RET

        `END