*SUBR MSGINT/INTERR/ASR/ B.2 PAGE 1
0001 *SUBR MSGINT/INTERR/ASR/ B.2. 11-11-70
0002 *SUBR MSGINT/INTERR/ASR REV B.1. 7.11.70
0003 *SUBR MSGINT/INTERR REV A 28 OKT 70 PL
0004 *SUBROUTINE MSGINT & INTERR.16 OKT 70 PL.
0005 *
0006 * PURPOSE:TYPE EITHER A MESSAGE OR TWO
0007 * ASCII CHARACTERS,OR RECEIVE TWO ASCII
0008 * CHARACTERS ON A INTERRUPT BASE.
0009 *
0010 * USE: LOAD THE ACCUMULATOR WITH TWO
0011 * ASCII CHARACTERS OR THE ADDRESS OF A
0012 * MESSAGE AND CALL"MSGINT".
0013 *
0014 * MSGINT WILL PREPARE THE ASR FOR OUTPUT
0015 * IT STORES THE MESSAGE ADDRESS OR ASCII
0016 * CHARACTERS, CLEARS THE REFERENE CEL
0017 * AND JUMPS BACK TO THE MAIN PROGRAM.
0018 *
0019 * THE MAIN PROGRAM WILL CONTINUE BUT WILL
0020 * BE INTERRUPTED BY "INTERR" FROM TIME TO
0021 * TIME.TO SEND A CHARACTER TO THE ASR
0022 * BUFFER UNTIL A WORD "@@" IS FOUND.THE
0023 * ASR IS THEN PREPARED FOR INPUT AGAIN.
0024 *
0025 * ASR INPUT WILL ALSO CAUSE INTERRUPTS.
0026 * ANY TWO CHARACTERS RECEIVED ARE COMPARED
0027 * WITH THE REFERENCE CELL OR CHECKED FOR
0028 * ASTERISK + ONE CHARACTER.
0029 * CHARACTERS RECEIVED ARE STORED IN THE
0030 * "REC" CEL ('77).
0031 * IF ILLEGAL CHARACTERS ARE TYPED,A "?"
0032 * IS TYPED.
0033 * IN ALL CASES THE CONTROL WILL NOW GO
0034 * BACK TO THE MAIN PROGRAM.
0035 *
0036 * ANY OTHER INTERRUPT ON THE PIL00 LINE
0037 * WILL GIVE CONTROL TO A SUBPROGRAM "INTR"
0038 *
0039 REL
0040 SUBR MSGINT
0041 SUBR INTERR
0042 SUBR ASR
0043 *
0044 00000 0 000000 MSGI DAC **
PREPARE ASR FOR
0045 00001 101400 SMI CHECK FOR
0046 00002 0 01 00005 JMP *+3
ADDRESS OR
0047 00003 0 04 00205 STA CHAR ASCII.
0048 00004 0 02 00207 LDA CHA!
0049 00005 0 04 00212 STA MNR OUTPUT.
0050 00006 34 0104 SKS '104
0051 00007 0 01 00006 JMP *-1
0052 00010 140040 CRA
0053 00011 0 04 00204 STA CHNR
0054 00012 0 04 00074 STA REF CLEAR REFERENCE CELL
0055 00013 14 0104 OCP '104
0056 00014 0 02 00213 LDA OUTP
0057 00015 0 04 00036 STA ASR