* Copyright 1975 Stuart D. Gathman ORG $6200 KIM VERSATILE INTERFACE ADAPTER V1ORB RES 1 OUTPUT REGISTER B RES 1 V1DDRB RES 1 DATA DIRECTION B V1DDRA RES 1 DATA DIRECTION A V1T1CL RES 1 WRITE LATCH/READ COUNTER TIMER 1 V1T1CH RES 1 WRITE LATCH & SET COUNTER/READ COUNTER V1T1LL RES 1 TIMER 1 LATCH LOW V1T1LH RES 1 TIMER 1 LATCH HIGH RES 1 RES 1 RES 1 V1ACR RES 1 AUX CONTROL REGISTER RES 1 V1IFR RES 1 INTERRUPT FLAG REGISTER V1IER RES 1 INTERRUPT ENABLE REGISTER V1ORA RES 1 OUTPUT A WITHOUT HANDSHAKE * NLINES EQU 4 NUMBER OF RS232 LINES RLINES EQU 1 NUMBER OF LINES INSTALLED ASIZ EQU 22 SIZE OF AUTO ANSWER BACK BUFFER TBASE EQU 1111 TIME BASE CONSTANT (CYCLES/TIC) * * SETUP BYTE BIT MASKS EVEN EQU 80H EVEN PARITY SETUP BITS ODD EQU 81H ODD PARITY SETUP BITS STP1 EQU 04H ONE STOP BIT SETUP STP2 EQU 00H TWO STOP BITS SETUP NONE EQU 00H NO PARITY SETUP * * LINE MONITOR FLAG BYTE (1ST 6 DISPLAYED IN STATUS LIGHTS) RCVD EQU 01H RECEIVE BUFFER FULL XMIT EQU 02H TRANSMIT BUFFER BULL OVRN EQU 04H OVERRUN ERROR FERR EQU 08H FRAMING ERROR PERR EQU 10H PARITY ERROR CONN EQU 20H CONNECT/DISCONNECT STATUS OF RECEIVE LINE RCON EQU 40H REQUEST CONNECT/DISCONNECT FOR XMIT LINE INTR EQU 80H INTERRUPT - CONNECT/DISCONNECT * * DISPATCHER FLAGS XOFF EQU 01H XOFF CHARACTER SENT PAU EQU 02H PAUSE REQUESTED FULL EQU 04H INPUT BUFFER FULL EMPTY EQU 08H OUTPUT BUFFER EMPTY SUPR EQU 20H SUPPRESS INCOMING DATA DPND EQU 80H DISCONNECT PENDING * ETX EQU 03H DISCONNECT CHARACTER ENQ EQU 05H ENQUIRY CHARACTER CR EQU 0DH CARRIAGE RETURN * ORG 0 PAGE ZERO * * LINE MONITOR REGISTERS FLAGS RES NLINES COMMUNICATION FLAGS IBUF RES NLINES CHARACTER WORK REGISTER ICHAR RES NLINES CHARACTER BUFFER IWRK RES NLINES PARITY WORK REGISTER OBUF RES NLINES OUTPUT CHARACTER BUFFER OCHAR RES NLINES OUTPUT CHARACTER OWRK RES NLINES OUTPUT WORK REGISTER IOBITS RES 1 USED TO STROBE INPUT LINES SAVX RES 1 IRQX RES 1 IRQY RES 1 LINENO RES 1 PCL RES NLINES*2 PC LOW PCH RES NLINES*2 PC HIGH DELAY RES NLINES*2 DELAY IN TICS SAVY RES NLINES*2 SAVE Y REG FOR COUNT, ETC. * * DISPATCHER WORK AREA DFLGS RES NLINES DISPATCH/NONDISPATCH FLAGS TEMP RES 1 TEMPORARY SAVE AREA PTRL RES 1 BUFFER POINTER LOW PTRH RES 1 BUFFER POINTER HIGH OPTRL RES 1 OUTPUT BUFFER POINTER OPTRH RES 1 IPTRL RES 1 INPUT BUFFER POINTER IPTRH RES 1 APTRL RES 1 APTRH RES 1 TMPY RES 1 TMPX RES 1 SAVO RES 1 SAVI RES 1 MODE RES 1 OTOP RES NLINES TOP POSITION OBOT RES NLINES BOTTOM POSITION OF OUTPUT BUFFER ITOP RES NLINES INPUT TOP IBOT RES NLINES INPUT BOTTOM IFIG RES NLINES CASE FLAG FOR INPUT OFIG RES NLINES CASE FLAG FOR OUTPUT BCNT RES NLINES INPUT BUFFER COUNT ANSBC RES NLINES STOP COUNT FOR AUTO ANSWER BACK WCNT RES NLINES START COUNT FOR AUTO ANSWER BACK ANSB1 RES ASIZ ANSWER BACK BUFFERS ANSB2 RES ASIZ ANSB3 RES ASIZ * * BUFFER ALLOCATIONS ORG $0100 USE PART OF STACK IBUF0 RES 128 FOR S/1 BUFFER OBUF0 RES 42 LEAVING TOP OF STACK FOR PROGRAM ORG $0200 IBUF1 RES 128 IBUF2 RES 128 IBUF3 RES 128 OBUF1 RES 42 OBUF2 RES 42 OBUF3 RES 42 * ORG $4000 EPROM MEMORY (KIM RAM FOR TEST) BIT3 BYTE 1,6,6,6 1/3 BIT TIMES FOR LINES BIT BYTE 3,18,18,18 BIT TIME FOR LINES CHLEN BYTE 7,5,5,5 CHAR LEN (NOT INCLUDING START,STOP,PARITY) PARITY BYTE EVEN+STP2,NONE+STP1,NONE+STP1,NONE+STP1 OBUFL BYTE >OBUF0,>OBUF1,>OBUF2,>OBUF3 OBUFH BYTE IBUF0,>IBUF1,>IBUF2,>IBUF3 IBUFH BYTE ANSB1,>ANSB2,>ANSB3 ANSBH BYTE TBASE STA V1T1CL TIMER LATCH - LOW BYTE LDA #