SSA,RSS BUFFER FULL OCT 15, 1974 JMP SWRT1 NO/OUTPUT CHARACTER CLA RESET BUFFER CLB,INB HALF FULL JSB BSTAT NOP LSID2 LDA PRCV1 WAIT UNTIL STA $EQ5,I BUFFER EMPTY JMP TEST * * LSIE EQU * LDA EQT25,I STATUS WORD SSA DEVICE INTERRUPT ON JMP TBRAK YES ALF,ALF RAL BREAK CONDITION SSA ON JMP LSID YES SLA,RSS BUFFER EMPTY JMP TEST CLA RESET BUFFER CLB,INB EMPTY JSB BSTAT NOP LDA EQT35,I CHECK FOR DIRECTIVE LDB EQT36,I AND TIMER JSB DRCTV DIRECTIVE LDA SEND NO DIRECTIVE STA $EQ5,I OUTPUT WORD JSB SWRIT * LSIK EQU * CLA AUTO SPEED INTERRUPT LSTB EQU * CLB JSB BSTAT PROCESS BOARD STATUS NOP CLF 0 INHIBIT INTERRUPTS LDB $EQ1 SET EQT STB EQTB BASE LDB $EQ5,I GOOD-INDICATE CONTINUE JSB EQT24,I CALL LOGICAL CONTROL JMP LSIK1 COMPLETE JSB DRCTV CHECK DIRECTIVES JMP TEST LSIK1 EQU * LDA IDLE LINE STATE STA $EQ5,I EQUALS IDLE JSB DONE * LSIF EQU * LDA EQT25,I STATUS WORD ALF,ALF BUFFER SSA,RSS EMPTY ON JMP TEST NO LDA $EQ15,I AND RCVON RESET TX BIT STA $EQ15,I TO COMPLETE JSB DONE * * LSIG EQU * CLA RECEIVE INTERRUPT LSTC EQU * CCB JSB BSTAT CHECK STATUS JMP TRBRK LINE ERROR SSA TIMEOUT JMP TRBRK TIMER REQUEST JMP STATB NO LSIG1 EQU * CLF 0 INHIBIT SYSTEM INTERRUPTS LDB $EQ1 WHILE IN LOGICAL DRIVER STB EQTB EQT BASE LDB $EQ5,I CALL LOGICAL JSB EQT22,I READ ENTRY JSB DONE COMPLETE STATA JSB DRCTV CHECK DIRECTIVE JSB STAT GET DATA & STATUS STATB LDA FRED DATA WORD SSA,RSS VALID DATA JMP TEST NO RAL MOVE SPECIAL CHAR BIT SSA,RSS SPECIAL CHARACTER JMP SETBT NO/ TURN ON 12 MOVEB RAR RIGHT POSITION AND RB1T$ MASK OFF BITS JMP LSIG1 PASS TO LOGICAL SETBT IOR B12$ SPECIAL BIT ON JMP MOVEB TEST EQU * ISZ C.74 CONTINUE JSB RTRN RETURN * LSIH EQU * CLF 0 LDA EQT25,I STATUS WORD SSA,RSS DEVICE INTERRUPT JMP RTRNI NO AND S$CC DATA SET READY ON SZA,RSS YES JMP LSIG NO/TELL LOGICAL LDA EQT25,I STATUS WORD AND P02$ CARRIER DOWN YET? SZA,RSS JMP C2E YES JMP TEST NO/WAIT FOR CARRIER DOWN * TBRAK EQU * JSB CLC INHIBIT INTERRUPTS LDB EQT19,I SECONDARY RBL CHANNEL SSB,RSS ON JMP SET10 NO AND P09$ SBB & DSR CPA P08$ DSR ON JMP *+2 YES JMP SET10 NO/LINE ERROR LDA $EQ6,I RX STATUS WORD ALF,ALF BREAK TEST RAR,SLA BIT ON JMP TEST YES LDA $EQ6,I NO/SET BREAK BIT IOR B09$ FIRST TIME STA $EQ6,I THROUGH CLA TELL IOR B12$ LOGICAL JMP LDID1 * SET10 EQU * LDA $EQ15,I TRANS CONTROL WORD ALF LINE RAL ERROR SSA PREVIOUS JMP *+5 YES LDA $EQ15,I NO/SET IOR B109$ LINE ERROR & DONE STA $EQ15,I BIT JMP LSID TELL LOGICAL JMP TEST * TRBRK EQU * SSA TIMING REQUEST JMP TLOG YES LDA $EQ15,I LINE ERROR ALF DETECTED RAL PREVIOUSLY SSA JMP TLOG YES LDA $EQ15,I NO IOR B109$ SET LINE ERROR STA $EQ15,I AND DONE BIT TLOG JSB CLC INHIBIT BOARD INTERRUPTS LDA SOMEW GET ERROR BIT JMP LSIG1 TELL LOGICAL * DONE EQU * NOP LDA $EQ6,I REMOVE AND DUNBT BREAK STA $EQ6,I BIT LDA $EQ15,I TX CONTROL WORD ALF BIT 10 ON RAL SSA YES JMP DONE3 LINE ERROR LDA $EQ15,I SET BIT 9 IOR B09$ DONE BIT STA $EQ15,I ALF WE SSA ARE JMP DONE1 TRANSMITTING DONE2 EQU * LDA $EQ15,I TX CONTROL WORD AND ERRBT REMOVE BIT 10 STA $EQ15,I JSB CLC INHIBIT INTERRUPTS JSB DQT DEQUE TIMERS LDA IDLE RETURN ENTRY POINT STA $EQ5,I POINT JSB RTRN DONE3 EQU * JSB STC FORCE FINAL INTERRUPT JSB STF FOR LINE ERROR T/O LDA $EQ15,I AND ERRBT REMOVE ERROR BIT 10 STA $EQ15,I JSB DQT DEQUE TIMERS LDA IDLE RETURN ENTRY STA $EQ5,I POINT JMP TEST * * DONE1 EQU * LDA PRCV2 RETURN STA $EQ5,I ENTRY POINT LDA $EQ15,I REMOVE AND DUNBT COMPLETE STA $EQ15,I BIT JMP TEST * SAVE EQU * NOP CLA,INA STA RTX INDICATE INTERRUPT LDA SAVE ADA N03$ CALCULATE LDA A,I RETURN ADDRESS STA EXIT JMP SAVE,I * INTON EQU * NOP LDB N01$ INTERRUPT STB IFLAG SYSTEM CLB ON SFC 0 STORE STB IFLAG ZERO JMP INTON,I ***************************************************** * * * COMMON RETURN * * * ***************************************************** * RTRN EQU * NOP LDA $EQ15,I COMPLETE ALF,ALF BIT RAR ON SLA,RSS DISABLE BOARD INTERRUPTS JSB STC ENABLE INTERRUPTS LDA RTX DETERMINE SZA,RSS RETURN TYPE JMP RTRN1 I.74 SLA,RSS JMP RTRN0 LOGICAL TIMER RTRN2 EQU * LDB $EQ14,I GET XMISSION LOG LDA SAVA LOAD RTN CODE ISZ IFLAG INT SYSTEM ON? STF 0 ENABLE INTERRUPTS JMP C.74,I * RTRN1 EQU * LDA SAVA LOAD RTN CODE ISZ IFLAG INT SYSTEM ON? STF 0 ENABLE INTERRUPTS JMP I.74,I RTRN0 ISZ IFLAG INT SYSTEM ON? STF 0 JMP LTIM,I * ***************************************************** * * * DEQUEUE TIMERS * * * ***************************************************** DQT EQU * NOP LDA $EQ16,I LOGICAL TIMER SSA,RSS IN PROGRESS JMP DQT1 NO ELA,CLE,ERA YES STA $EQ16,I CLEAR FLAG CLA LDB EQT31 ADB N01$ JSB $TIME CANCEL REQUEST DQT1 EQU * JMP DQT,I * ***************************************************** * BOARD STATUS CHECK * * B=-1 READ, 0 CONTROL, +1 WRITE * * P+1 BAD STATUS, P+2 GOOD STATUS * * * ***************************************************** BSTAT EQU * NOP STA COMP CLEAR COMPOSITE STATS ADB STATX LDA EQT19,I FULL DUX SYSTEM SSA ADB P06$ YES/NEW TABLE AND S$SBB ISOLATE SEC CHANNEL RAL,RAL XOR P01$ IF NOT SET FAKE IT IOR EQT25,I AND B,I CPA B,I CHECK STATUS JMP BST1 OK LDA P04$ BAD ADA COMP UPDATE STA COMP INDICATE LINE ERROR BST3 EQU * LDA EQT25,I AND DEVBT IOR B13$ JSB OTA ADB P03$ GET MASK LDA EQT25,I AND M40$ SZA,RSS DATA ERROR JMP *+3 NO ISZ COMP ISZ COMP LDA EQT25,I AND BREAK BREAK ON SZA,RSS YES JMP *+2 NO ISZ COMP LDA COMP GET COMPOSITE STATUS AND B,I SAVE SELECTED BITS ALF,ALF POSITION ALF FOR STA B LOGICAL LDA FRED AND RBYT$ IOR B FORM COMPOSITE STA SOMEW STORE COMPOSITE LDA CLR JSB OTA REGRP EQU * LDA SOMEW JMP BSTAT,I * BST1 EQU * ISZ BSTAT RETURN +2 JMP BST3 * * STATX DEF *+2 RSTAT OCT 12 -1-READ VALUE OCT 12 0-CONTROL VALUE OCT 31 +1-WRITE VALUE OCT 16 READ VALUE(TIMEOUT,LINE & DATA ERROR) OCT 16 CONTOL(TIMEOUT,LINE & DATA ER) OCT 15 WRITE(TIMEOUT,LINE ERROR,BREAK) FSTAT OCT 10 -1-READ OCT 10 0-CONTROL OCT 30 +1-WRITE OCT 16 READ OCT 16 CONTROL OCT 15 WRITE ***************************************************** * * CONFIGURE BOARD FOR RECEIVE * ***************************************************** RCVI EQU * NOP LDA $EQ6,I RESET IOR B15$ INTERFACE JSB FDON FULL DUX STSTEM IOR M40$ SBA ON JSB OTA LDA DEVR RESET ENABLE JSB OTA WORD LDA CLR RESET JSB OTA STATUS LDA EQT34,I OUTPUT CHARACTER JSB OTA FRAME CONTROL JMP RCVI,I ***************************************************** * * * CONFIGURE BOARD FOR SEND * * * ***************************************************** SNDI EQU * NOP LDA $EQ15,I RESET IOR B15$ INTERFACE JSB OTA LDA DEVST RESET ENABLE JSB OTA WORD LDA CLR RESET JSB OTA STATUS LDA EQT34,I CHARACTER FRAME CONTROL AND ECHO ECHO BIT OFF JSB OTA LDA EQT19,I SECONDARY CHANNEL RAL BIT SSA,RSS ON JMP SNDI,I NO LDA P01$ YES IOR B13$ OUT PUT SBB JSB OTA BIT EQUALS ONE JMP SNDI,I NOP FDON EQU * NOP LDB EQT19,I IS IT FULL DUX SSB NO IOR M200$ KEEP CA ON JMP FDON,I * ***************************************************** OTA EQU * NOP O1 OTA SC JMP OTA,I * ***************************************************** STC EQU * NOP O2 STC SC JMP STC,I * ***************************************************** CLC EQU * NOP O3 CLC SC JMP CLC,I * ***************************************************** STAT EQU * NOP O3A CLC SC O4 LIA SC,C STA EQT25,I O2A STC SC O4A LIA SC STA FRED JMP STAT,I * **************************************************** STF EQU * NOP O5 STF SC JMP STF,I * ***************************************************** * SETIO EQU * * * ***************************************************** NOP CPA LAST ALREADY CONFIGURED JMP SETIO,I YES STA LAST NO ADA CLCO FORM CLC INSTRUCTION STA O3 STA O3A ADA N4K FORM STC INSTRUCTION ADA B09$ STA O2 STA O2A ADA N64$ FORM OTA INSTRUCTION XOR B09$ STA O1 ADA N64$ FORM LIA INSTRUCTION STA O4 STA O4A LDA LAST ADA STFO FORM STF INSTRUCTION STA O5 JMP SETIO,I TBL0 DEF *+1 OCT 0 EXTERNAL CLOCK OCT 3 110 BAUD OCT 4 134.5 BAUD OCT 5 150 BAUD JSB BAUDB 220.BAUD OCT 6 300 BAUD JSB BAUDB 440 BAUD OCT 7 600 BAUD JSB BAUDB OCT 11 1200 BAUD JSB BAUDB 1760 BAUDX OCT 13 2400 BAUD OCT 14 3600 BAUD OCT 15 4800 BAUD OCT 16 7200 BAUD OCT 17 9600 BAUD BAUDB ISZ SAVA JSB RTRN ***************************************************** * * * EQT LINKAGE TABLE * * * ***************************************************** EQT19 NOP BOARD PARAMETERS EQT20 NOP CHAR FRAME CONTROL EQT21 NOP EQT22 NOP LREAD EQT23 NOP LWRIT EQT24 NOP LCNTL EQT25 NOP I/F BOARD STATUS EQT27 NOP DVR74 TIMER PROCESSOR EQT31 NOP LOGICAL TIMER PROCESSR EQT34 NOP COUNTER FOR NULL O/P EQT35 NOP FIRST CHARACTER O/P EQT36 NOP TIMER STORAGE * * BASE PAGE CONSTANTS * # EQU 53B N01$ EQU #-1 N02$ EQU #-2 N03$ EQU #-3 N04$ EQU #-4 N05$ EQU #-5 N06$ EQU #-6 N07$ EQU #-7 N08$ EQU #-8 N09$ EQU #-9 N10$ EQU #-10 N64$ EQU #-11 P00$ EQU # P01$ EQU #+1 P02$ EQU #+2 P03$ EQU #+3 P04$ EQU #+4 P05$ EQU #+5 P06$ EQU #+6 P07$ EQU #+7 P08$ EQU #+8 P09$ EQU #+9 P10$ EQU #+10 P17$ EQU #+11 P64$ EQU #+12 M17$ EQU #+13 M37$ EQU #+14 M77$ EQU #+15 M177$ EQU #+16 RBYT$ EQU #+17 OCT377 LBYT$ EQU #+18 OCT177400 M3777 EQU #+19 OCT 3777 M1777 EQU #+120 OCT177700 * BASE PAGE VARIABLES ## EQU 202B $EQ1 EQU ##+1 $EQ3 EQU ##+3 UNIT SELECT CODE $EQ4 EQU ##+4 STATUS $EQ5 EQU ##+5 LINE STATE $EQ6 EQU ##+6 RX CONTROL WORD $EQ9 EQU ##+9 CURRENT I/O REQUEST $EQ10 EQU ##+10 PARAMETER 1 $EQ11 EQU ##+11 PARAMETER 2 $EQ14 EQU ##+14 TRANSMISSION LOG $EQ15 EQU ##+15 TX CONTROL WORD $EQ16 EQU ##+16 TIMER FLAGS $EQ17 EQU ##+17 EXTENSION LINK AOPEN EQU P02$ AWAITING OPEN ARING EQU P01$ AWAITING RING AUTOS EQU P10$ B09$ OCT 1000 B10$ OCT 2000 B109$ OCT 3000 B11$ OCT 4000 B12$ OCT 10000 B13$ OCT 20000 B14$ OCT 40000 B15$ OCT 100000 BREAK OCT 100 CDOFF OCT 177677 CLCO CLC 0 CLOSE EQU P00$ CLOSED CLR OCT 50077 COMP NOP DEVR OCT 10012 DEVBT OCT 37 DEVST OCT 10033 DUNBT OCT 176777 ECHO OCT 177757 EQTB EQU 300B ERRBT OCT 171777 EXIT NOP FRED NOP DATA CHARACTER IDLE EQU P03$ IDLE IFLAG NOP INCD OCT 103 LAST NOP MPTFL EQU 271B MEMORY PROTECT FLAG M20$ OCT 20 M40$ OCT 40 M60$ OCT 60 M100$ OCT 100 M200$ OCT 200 M400$ OCT 400 M700$ OCT 700 N4K OCT 174000 PRCV1 EQU P06$ PRE TO RCV#1 PRCV2 EQU P07$ PRE TO RCV#2 PRCV3 EQU P08$ PRE TO RCV#3 PSND EQU P04$ PREPARE TO SEND RB1T$ OCT 4377 RCVON OCT 173777 RECV EQU P09$ RECEIVE RHOLD NOP RTX NOP SAVA NOP SCODE NOP SEND EQU P05$ SEND SOMEW NOP SPEC OCT 60400 STFO STF 0 SWORD NOP S$SBB EQU B14$ SECONDARY RECEIVE S$CC EQU P08$ DATA SET READY S$CE EQU P02$ RINGING TBT1 NOP TCONT OCT -400 TCON1 NOP END