.TYPE TSTINT.PA
/INTERRUPT TEST
/ECHO CHARACTER TYPED FROM TTY
/ISR WILL BE CALLED TWICE; ONCE FOR KEYBOARD, ONCE FOR
/COMPLETION OF THE PRINTING CHARACTER
/KYLE OWEN - 23 SEP 2016

        *0
INTER,  0               /START OF INTERRUPT HANDLER
        TSF             /HAS CHAR FINISHED PRINTING?
        JMP CHKKEY      /NO, CHECK IF KBD FLAG IS SET
        TCF             /CLEAR PRINTER FLAG
        JMP RETURN      /YES, CLEAR FLAG AND RETURN
CHKKEY, KSF             /DO WE HAVE A CHARACTER?
        JMP RETURN      /NO, RETURN (WHAT TRIGD THE INT?)
        KRB             /READ CHARACTER
        TLS             /PRINT CHARACTER
        CLA             /AC = 0
RETURN, ION             /TURN INTERRUPTS BACK ON
        JMP I 0         /RETURN

        *200
        CLA IAC         /AC = 1
        KIE             /ENSURE INTERRUPT BIT IS SET
        CLA             /AC = 0
        ION             /TURN ON SYSTEM INTERRUPTS
LOOP,   JMP LOOP        /INFINITE LOOP

.PAL TSTINT,TSTINT<TSTINT/H

.TYPE TSTINT.LS


              /INTERRUPT TEST
              /ECHO CHARACTER TYPED FROM TTY
              /ISR WILL BE CALLED TWICE; ONCE FOR KEYBOARD, ONCE FOR
              /COMPLETION OF THE PRINTING CHARACTER
              /KYLE OWEN - 23 SEP 2016

        0000          *0
000000  0000  INTER,  0               /START OF INTERRUPT HANDLER
000001  6041          TSF             /HAS CHAR FINISHED PRINTING?
000002  5005          JMP CHKKEY      /NO, CHECK IF KBD FLAG IS SET
000003  6042          TCF             /CLEAR PRINTER FLAG
000004  5012          JMP RETURN      /YES, CLEAR FLAG AND RETURN
000005  6031  CHKKEY, KSF             /DO WE HAVE A CHARACTER?
000006  5012          JMP RETURN      /NO, RETURN (WHAT TRIGD THE INT?)
000007  6036          KRB             /READ CHARACTER
000010  6046          TLS             /PRINT CHARACTER
000011  7200          CLA             /AC = 0
000012  6001  RETURN, ION             /TURN INTERRUPTS BACK ON
000013  5400          JMP I 0         /RETURN

        0200          *200
000200  7201          CLA IAC         /AC = 1
000201  6035          KIE             /ENSURE INTERRUPT BIT IS SET
000202  7200          CLA             /AC = 0
000203  6001          ION             /TURN ON SYSTEM INTERRUPTS
000204  5204  LOOP,   JMP LOOP        /INFINITE LOOP


              $


CHKKEY 0005
INTER  0000
LOOP   0204
RETURN 0012


ERRORS DETECTED: 0
LINKS GENERATED: 0



.