;modul2
;-----------------------------------------------
;       Program Using DT51 KND Routine
;-----------------------------------------------

        .CODE
        ORG     4000H
        LJMP    Scanning
        ORG     4100H
        $INCLUDE (KNDEXT.ASM)

JMPTABLE:       LJMP    S1Act
                LJMP    S2Act
                LJMP    S3Act
                LJMP    S4Act
                LJMP    S5Act
                LJMP    S6Act
                LJMP    S7Act
                LJMP    S8Act
                LJMP    S9Act
                LJMP    S10Act
                LJMP    S11Act
                LJMP    S12Act

S1Act:          MOV     A,#0	;menulis 0 pada memory display
                ACALL   Write7S	;menampilkan 0 pada 7segmen
                LJMP    Loop	;jump ke loop
S2Act:          MOV     A,#1	;menulis 1 pada memory display
                ACALL   Write7S	;menampilkan 1 pada 7segmen
                LJMP    Loop	;jump ke loop
S3Act:          MOV     A,#2	;menulis 2 pada memory display
                ACALL   Write7S	;menampilkan 2 pada 7segmen
                LJMP    Loop	;jump ke loop
S4Act:          MOV     A,#3	;menulis 3 pada memory display
                ACALL   Write7S	;menampilkan 2 pada 7segmen
                LJMP    Loop	;jump ke loop
S5Act:          MOV     A,#4	;menulis 4 pada memory display
                ACALL   Write7S	;menampilkan 4 pada 7segmen
                LJMP    Loop	;jump ke loop
S6Act:          MOV     A,#5	;menulis 5 pada memory display
                ACALL   Write7S	;menampilkan 5 pada 7segmen
                LJMP    Loop	;jump ke loop
S7Act:          MOV     A,#6	;menulis 6 pada memory display
                ACALL   Write7S	;menampilkan 6 pada 7segmen
                LJMP    Loop	;jump ke loop
S8Act:          MOV     A,#7	;menulis 7 pada memory display
                ACALL   Write7S	;menampilkan 7 pada 7segmen
                LJMP    Loop	;jump ke loop
S9Act:          MOV     A,#8	;menulis 8 pada memory display
                ACALL   Write7S	;menampilkan 8 pada 7segmen
                LJMP    Loop	;jump ke loop
S10Act:         MOV     A,#9	;menulis 9 pada memory display
                ACALL   Write7S	;menampilkan 9 pada 7segmen
                LJMP    Loop	;jump ke loop
S11Act:         ACALL   ShftDisRight	;menggeser tampilan kekanan 1 kali
                LJMP    Loop		;jump ke loop
S12Act:         ACALL   ShftDisLeft	;menggeser tampilan kekiri 1 kali
                LJMP    Loop		;jump ke loop

Start:          MOV     P1,#0FBH
                MOV     SP,#40H
                LCALL   InitKND		;inisialisasi PPI dan interupt
                LCALL   CursorOn	;menampilkan kursor
                LCALL   VirtualDis	;set memory display 18 bit
                LCALL   ClrDisMem	;hapus seluruh karakter pada memory
					;display dan tampilan
Loop:           JNB     KeyPressed,$
                CLR     KeyPressed
                MOV     A,KeyCode
                MOV     DPTR,#JMPTABLE
                DEC     A
                MOV     B,#3
                MUL     AB
                JMP     @A+DPTR
                END

