SWR NOP LIA 1 JMP SWR,I YES SPC 2 MCLR NOP ENTER MCLR WITH CONTROL WORD IN CLC 0 A REGISTER STA CWXX IOR MSK5 001017 - BYTE SIZE 1, SYNC OFF JSB OTACH ALL ONE'S TO BIT COUNTER JSB TOGLE OUTPUT ZERO LDA SYNCH JSB OTACH LOAD SYNC REGISTER LDA CWXX JSB OTACH JSB TOGLE OUTPUT ZERO CLA JSB OTACH DATA ALL ZERO JMP MCLR,I SKP TOGLE NOP ENTER TOGLE WITH CONTROL WORD IN STA B A REGISTER IOR BT7 TEST = 1 JSB OTACH AND NBT7 TEST = 0 JSB OTACH LDA B REINSTATE TEST BIT JSB OTACH JMP TOGLE,I SPC 2 SENDC NOP SEND SYNC CHARACTER LDA BTNM NO. OF BITS (WITH PARITY) CMA,INA STA SNA LDA TRW CONTROL WORD JSB TOGLE OUTPUT ONE BIT ISZ SNA JMP *-2 JMP SENDC,I SPC 2 SENDD NOP SEND CHARACTER AND RETURN CLA WITH CHAR RECEIVED IN DIN STA DIN LDA BTNM NO. OF BITS (INCLUDING PARITY) CMA,INA STA SNB SLOOP ISZ SNB NEXT TO LAST BIT? JMP PZ NO, CONTINUE LDA CNR YES, SEND JSB OTACH OTA OF DATA PZ LDA TRW CONTROL WORD JSB TOGLE OUTPUT ONE BIT JSB LIACH IOBI IN A NOP (EXTRA INSTRUCTION) CMA AND BT11 RETURN THE BIT IOR DIN RAR STA DIN STACK BITS NOP (EXTRA INSTRUCTION) LDB SNB SZB FINISHED? JMP SLOOP NO, SEND MORE BITS LDB BTNM YES, RIGHT JUSTIFY THE DATA ADB MN11 RAR DATA STILL IN A ISZ B JMP *-2 STA DIN RT JUSTIFIED AND STORED IN DIN JMP SENDD,I SKP PRTY NOP SET PARITY BIT INTO DATA - DATA STB CHE IN B-REG LDA CHCNT CMA,INA STA CHC STA CHD LDA PAR 0 = NO, 1 = ODD, 2 = EVEN PARITY SZA,RSS JMP PRTY,I NO PARITY, EXIT CPA A0002 JMP EVN EVEN PARITY JSB PADD ODD PARITY CMA EVEN AND BT0 ALR ISZ CHD JMP *-2 IOR CHE INSERT PARITY STA B REPLACE WITH PARITY IN WORD JMP PRTY,I EVN JSB PADD JMP EVEN PADD NOP CLA ADA B BRS ISZ CHC JMP *-3 JMP PADD,I PARITY BIT IN A0 CHC NOP CHD NOP CHE NOP SKP INP NOP NO PARITY INITIALIZATION STA TRW AND P7760 STA CWX CLA,INA STA CHCNT CHARACTER SIZE, START WITH 1 BIT STA BTNM BITS PLUS PARITY CLA STA PAR 0 = NO PARITY STA CNR PATTERN COUNTER = 0 LDA TABL MAX COUNT OF PATTERNS REQUIRED STA PTNC FOR DIFFERENT CHAR. SIZES JMP INP,I SPC 2 IOP NOP ODD PARITY INITIALIZATION STA TRW AND P7760 STA CWX CLA STA CNR CLA,INA STA CHCNT STA PAR 1 = ODD PARITY LDA TABL STA PTNC LDA A0002 STA BTNM JMP IOP,I SPC 2 IEP NOP EVEN PARITY INITIALIZATION JSB IOP ISZ PAR 2= EVEN PARITY JMP IEP,I SKP SETNP NOP SET NO PARITY TABLES ISZ CHCNT ISZ PTNC CLA STA CNR LDA CHCNT CMA,INA AND A0017 IOR CWX STA TRW LDA CHCNT STA BTNM JMP SETNP,I SPC 2 SETOP EQU * SETEP NOP SET EVEN PARITY TABLES ISZ CHCNT ISZ PTNC CLA STA CNR LDA CHCNT CMA AND A0017 IOR CWX STA TRW LDA CHCNT INA STA BTNM JMP SETEP,I SKP SDTA NOP OUTPUT DATA WD TO BUFFER LDB CNR JSB PRTY RETURN WITH DATA IN B AND STB WD1 PARITY ADDED LDA CNR JSB OTACH JMP SDTA,I SPC 2 SC3 NOP LDA SYNCH JSB OTACH OUTPUT SYNC WORD TO BUFFER JSB SENDC SEND 1ST SYNC CHARACTER JSB SENDC SEND 2ND JSB SDTA OUTPUT DATA WD TO BUFFER JSB SENDC SEND 3RD JMP SC3,I SPC 2 SN NOP OUTPUT SYNC CHARACTER TO BUFFER LDB CNR JSB PRTY STB WD1 STORE FOR DATA COMPARE LDA CNR ADA BT14 JSB OTACH JMP SN,I SPC 2 SENCC NOP SEND SYNC AND RETURN WITH CLA CHAR RECEIVED IN DIN STA DIN LDA BTNM NO. OF BITS (INCLUDING PARITY) CMA,INA STA SNB CLOOP LDA TRW JSB TOGLE OUTPUT ONE BIT JSB LIACH CMA AND BT11 RETURN THE BIT IOR DIN RAR STA DIN STACK BITS ISZ SNB FINISHED? JMP CLOOP NO LDB BTNM YES, RIGHT JUSTIFY DATA ADB MN11 RAR DATA STILL IN A ISZ B JMP *-2 STA DIN JMP SENCC,I SUP M7 ASC 18,H7. PRESS PRESET (INT/EXT) THEN RUN L7 EQU *+*-M7-M7 UNS HED CONFIGURATION PROGRAM - SEND INTERFACE DIAGNOSTIC ORG 1745B CFGR LIA 1 SWR AND A0077 ADA MN8 SSA,RSS SC > 7 ? JMP *+3 H73 HLT 73B *SELECT CODE INPUT ERROR JMP CFGR LIA 1 AND A0077 STA IO LDB FIRST MODIFY I/O INSTRUCTIONS STB SRP L LDB SRP,I LDA B,I AND P7700 IOR IO STA B,I CPB LAST,I FINISHED? JMP *+3 YES ISZ SRP JMP L CLA LDB 112B SZB,RSS CCA STA NOTTY TELETYPE AVAILABLE BIT H74 HLT 74B **END OF CONFIGURATION** HED INITIALIZATION PROGRAM - SEND INTERFACE DIAGNOSTIC START CLC 0,C TURN EVERYTHING OFF LDB A0002 TRAP CELL LOCATION LDA THLT TRAP CELL HALT STA B,I INB INA CPB A0100 TRAP CELL HALTS COMPLETE? RSS YES JMP *-5 NO, REPEAT JSB SW09 OMIT START MESSAGE? RSS NO JMP EXECX YES JSB TTSK LDA CRL LDB CRI JSB TTY.O,I OUTPUT CR, LF JSB TTSK LDA SML LDB SMI JSB TTY.O,I START DATA SET DIAGNOSTIC HED EXECX - EXECUTIVE PROGRAM - SEND INTERFACE DIAGNOSTIC EXECX NOP ONE JSB SWR CALL BI/O? AND BT1 (SWITCH 1) SZA JMP TWO NO JSB BI/O YES, EXECUTE BI/O JSB SW15 CONTINUE AUTO? JMP ONE2 YES JSB TTSK NO, PRINT MSG? LDA LM11 YES, OTHERWISE HALT AT H11 LDB MI11 JSB TTY.O,I PRINT END BI/O H11 HLT 11B SELECT OPTIONS AND PRESS RUN ONE2 JSB SW13 REPEAT BI/O? JMP ONE YES (IF NO, JUMP TO TWO) SPC 2 TWO JSB SWR CALL FCTST? AND BT2 (SWITCH 2) SZA JMP THREE NO JSB FCTST YES JSB SW15 CONTINUE AUTO? JMP TWO2 YES JSB TTSK NO, PRINT MSG? LDA LM52 YES LDB MI52 JSB TTY.O,I PRINT END FCTST H52 HLT 52B SELECT OPTIONS AND PRESS RUN TWO2 JSB SW13 REPEAT FCTST? JMP TWO YES (IF NO, JUMP TO THREE) SPC 2 THREE JSB SWR CALL TNS? AND BT3 (SWITCH 3) SZA JMP FOUR NO JSB TNS YES JSB SW15 CONTINUE AUTO? JMP THRE2 YES JSB TTSK NO, PRINT MSG? LDA LM270 LDB MI270 JSB TTY.O,I PRINT END TNS H270 OCT 103070 THRE2 JSB SW13 REPEAT TNS? JMP THREE YES (IF NO, JUMP TO FOUR) SPC 2 FOUR JSB SWR CALL ASON? AND BT4 (SWITCH 4) SZA JMP FIVE NO JSB ASON YES JSB SW15 CONTINUE AUTO? JMP FOUR2 YES JSB TTSK NO, PRINT MSG? LDA LM65 YES LDB MI65 JSB TTY.O,I PRINT END ASON H65 HLT 65B SELECT OPTIONS AND PRESS RUN FOUR2 JSB SW13 REPEAT ASON? JMP FOUR YES (IF NO, JUMP TO FIVE) SPC 2 FIVE JSB SWR CALL ASOFF? AND BT5 (SWITCH 5) SZA JMP SIX NO JSB ASOFF YES JSB SW15 CONTINUE AUTO? JMP FIVE2 YES JSB TTSK NO, PRINT MSG? LDA LM176 YES LDB MI176 JSB TTY.O,I PRINT END ASOFF H176 OCT 107076 SELECT OPTIONS AND PRESS RUN FIVE2 JSB SW13 REPEAT A JMP FIVE YES (IF NO, JUMP TO SIX) SPC 2 SIX JSB SWR CALL ASDTA? AND BT6 (SWITCH 6) SZA JMP END NO JSB ASDT,I YES JSB SW15 CONTINUE AUTO? JMP SIX2 YES JSB TTSK NO, PRINT MSG? LDA LM140 YES LDB MI140 JSB TTY.O,I PRINT END ASDTA H140 OCT 107040 SELECT OPTIONS AND PRESS RUN SIX2 JSB SW13 REPEAT ASDTA? JMP SIX YES (IF NO, PROCEED TO END) HED END - END OF TEST - SEND INTERFACE DIAGNOSTIC END NOP JSB SW09 OMIT STOP MESSAGE? RSS NO JMP H77-2 YES JSB TTSK LDA LM77 LDB MI77 JSB TTY.O,I TELL OPERATOR TEST IS FINISHED JMP EXRTN,I JSB SW12 REPEAT TEST AUTO? H77 HLT 77B JMP STR,I YES HED BI/O - BASIC I/O PROGRAM - SEND INTERFACE DIAGNOSTIC * TEST ABILITY TO SET AND CLEAR THE CHANNEL FLAG SPC 2 BI/O NOP CLC 0,C LDA CW6 150010 JSB MCLR MASTER CLEAR THE INTERFACE NOP (EXTRA INSTRUCTION) JSB STN SET TEST NUMBER FOR SW7 LOOP LDA HLTA TRAP CELL HALTS LDB HLTB CH0 STF CH CH1 CLF CH CLEAR CHANNEL FLAG CH2 SFS CH RSS ** CLF DID NOT CLEAR FLAG OR SFS E1 JSB ERROR CAUSED SKIP WITH FLAG CLEAR JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) NOP (EXTRA INSTRUCTION) JSB STN SET TEST NUMBER FOR SW7 LOOP CH7 CLF CH CH3 SFC CH E2 JSB ERROR * SFC NO SKIP WITH FLAG CLEAR JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) NOP (EXTRA INSTRUCTION) JSB STN SET TEST NUMBER FOR SW7 LOOP CH4 STF CH CH5 SFC CH RSS ** STF DID NOT SET FLAG OR SFC E3 JSB ERROR CAUSED SKIP WITH FLAG SET JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) NOP (EXTRA INSTRUCTION) JSB STN SET TEST NUMBER FOR SW7 LOOP CH10 STF CH CH6 SFS CH E4 JSB ERROR * SFS NO SKIP WITH FLAG SET JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) NOP (EXTRA INSTRUCTION) JSB STN SET TEST NUMBER FOR SW7 LOOP CH18 STF CH CH19 CLC CH,C CH20 SFC CH * ERROR = CLC CH,C DID NOT CLEAR E24 JSB ERROR * FLAG OR SFC DID NOT SKIP JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) SPC 2 * TEST ABILITY TO ENABLE AND DISABLE INTERRUPT SYSTEM SPC 2 NOP (EXTRA INSTRUCTION) JSB STN SET TEST NUMBER FOR SW7 LOOP CH29 CLF CH STF 0 ENABLE INTS CLF 0 DISABLE INTS SFS 0 IS INTERRUPT SYSTEM ON? JMP E17+1 NO JSB SW14 SUPPRESS HALT SWITCH 14 E17 HLT 17B * CLF 0 OR SFS 0 ERROR JSB SW7 LOOP ON LAST TEST (BIT 7) NOP (EXTRA INSTRUCTION) JSB STN SET TEST NUMBER FOR SW7 LOOP CLF 0 SFC 0 IS INT SYSTEM ON? RSS YES JMP E20+1 NO JSB SW14 SUPPRESS HALT SWITCH 14 E20 HLT 20B * CLF 0 OR SFC 0 ERROR JSB SW7 LOOP ON LAST TEST (BIT 7) NOP (EXTRA INSTRUCTION) JSB STN SET TEST NUMBER FOR SW7 LOOP STF 0 SFC 0 IS INT SYSTEM ON? RSS YES E21 JSB ERROR * STF 0 OR SFC 0 ERROR JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) NOP (EXTRA INSTRUCTION) JSB STN SET TEST NUMBER FOR SW7 LOOP STF 0 SFS 0 IS INT SYSTEM ON? E22 JSB ERROR * STF 0 OR SFS 0 ERROR JSB SW8 HALT AT END OF TEST (BIT 8) CLF 0 JSB SW7 LOOP ON LAST TEST (BIT 7) SKP * TEST INTERRUPT CAPABILITY SPC 2 NOP (EXTRA INSTRUCTION) JSB STN SET TEST NUMBER FOR SW7 LOOP LDA JSB1 SET INTERRUPT TRAP CELL STA DCH,I LDA HLTA TRAP CELL HALTS LDB HLTB CH8 STC CH SET CHANNEL TO REQUEST CH9 STF CH AN INTERRUPT STF 0 ENABLE INTERRUPTS STC 1 * INTERRUPTS STF 1 SHOULD CLC 1 BE CLF 1 DELAYED JMP *+1,I UNTIL DEF *+1 . JSB *+1,I . DEF *+1 . NOP . INTPT NOP * HERE E5 JSB ERROR * DID NOT INTERRUPT JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) JMP TCR SPC 1 RETRN NOP INTERRUPT SUBROUTINE CLF 0 DISABLE INTERRUPTS LDA J1 IJ1 INTERRUPT ROUTINE STA DCH,I STF 0 TEST INTERRUPT ACKNOWLEDGE NOP * SHOULD NOT NOP INTERRUPT HERE CLF 0 DISABLE INT LDA RETRN DID INTERRUPT OCCUR AT THE CPA ADDRS CORRECT MEM LOCATION? RSS E6 JSB ERROR * RETURN ADDRESS IS INCORRECT JSB SW8 HALT AT END OF TEST (BIT 8) STB RETRN CHANGE RETRN JSB SW7 LOOP ON LAST TEST (BIT 7) JMP TCR SPC 1 IJ1 NOP CLF 0 E14 JSB ERROR * NO INTERRUPT ACKNOWLEDGE JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) JMP EB SKP * TEST CONTROL RESET SPC 2 TCR NOP (EXTRA INSTRUCTION) JSB STN SET TEST NUMBER FOR SW7 LOOP LDA J2 IJ2 INTERRUPT ROUTINE STA DCH,I LDA HLTA LDB HLTB CH11 STC CH SET CONTROL CH12 STF CH CLC 0 SHOULD CLEAR ALL CNTL FLIP-FLOPS STF 0 ENABLE NOP ** SHOULD NOT NOP INTERRUPT HERE CLF 0 DISABLE INTS TCR2 LDA J4 STA DCH,I IJ4 INTERRUPT ROUTINE LDA HLTA LDB HLTB CH33 STC CH CH34 STF CH CH17 CLC CH CLEAR CHANNEL CONTROL FLIP-FLOP STF 0 ENABLE INTS NOP ** SHOULD NOT NOP INTERRUPT HERE CLF 0 JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) JMP PRSET SPC 1 IJ2 NOP CLF 0 E15 JSB ERROR * CLC 0 DID NOT CLEAR CONTROL JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) JMP TCR2 IJ4 NOP CLF 0 E23 JSB ERROR * CLC ON CH DID NOT CLEAR CONTRL JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) SKP * PRESET TEST SPC 2 PRSET NOP (EXTRA INSTRUCTION) JSB STN SET TEST NUMBER FOR SW7 LOOP LDA J5 STA DCH,I JSB SW10 OMIT TEST? RSS NO JMP EB YES JSB TTSK LDA LM7 LDB MI7 JSB TTY.O,I LDA HLTA LDB HLTB CH13 STC CH,C SET CONTROL, CLEAR FLAG STF 0 ENABLE INTS H7 HLT 7 ** PRESS PRESETS, THEN PRESS RUN CH14 SFS CH IS FLAG SET? JMP TZ NO SFC 0 YES, IS INT SYSTEM DISABLED? E12 JSB ERROR * PRESET DID NOT DISABLE INTS JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) JMP CL YES TZ SFC 0 JMP E13 E10 JSB ERROR * PRESET DID NOT SET FLAG JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) JMP EB E13 JSB ERROR * FLG NOT SET, INTS NOT DISABLED JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) JMP EB CL JSB LIACH STATUS TO A-REG AND MSK1 CPA BT15 STATUS CORRECT? JMP Z YES STA SAVA NO, REPORT ERROR LDB MG0A JSB DATA LDA BT15 STA SAVB LDB MG0B JSB DATA LDA E25 JSB MHLT3 E0 JSB ERROR * STATUS AFTER PRESET ERROR Z JSB SW8 JSB SW7 LOOP ON LAST TEST (BIT 7) LDA J3 IJ3 INTERRUPT ROUTINE STA DCH,I CHECK FOR A CLC 0 BY PRESET LDA HLTA LDB HLTB STF 0 ENABLE INTS NOP SHOULD NOT INTERRUPT HERE NOP CLF 0 JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) JMP EB SPC 2 IJ5 NOP CLF 0 E70 JSB ERROR * PRESET FAILED - ABORT BI/O JSB SW8 JSB SW7 JMP EB SPC 1 IJ3 NOP CLF 0 E16 JSB ERROR * PRESET DID NOT CLEAR CONTROL JSB SW8 HALT AT END OF TEST (BIT 8) JSB SW7 LOOP ON LAST TEST (BIT 7) SPC 1 EB CLC 0,C TURN EVERYTHING OFF LDA HLTC STA DCH,I RESET TRAP CELL HALT JMP BI/O,I EXIT ***** HED FCTST - FUNCTION-STATUS - SEND INTERFACE DIAGNOSTIC FCTST NOP TST1 NOP (EXTRA INSTRUCTION) JSB STN LDA CW4 150410 JSB MCLR MASTER CLEAR THE INTERFACE JSB LIACH SSA TEST READY E30 JSB ERROR * READY NOT RESET BY DATA OUTPUT JSB SW8 JSB SW7 SPC 2 TST2 NOP (EXTRA INSTRUCTION) JSB STN LDA CW1 160010 SET CD JSB OTACH JSB DELAY JSB LIACH AND BT12 CD,CE = 1? SZA,RSS E31 JSB ERROR * CD,CE NOT 1 JSB SW8 JSB SW7 CH21 CLF CH CH22 SFS CH FLAG SHOULD BE SET (AGAIN) BY CE E32 JSB ERROR * FLAG NOT SET JSB SW8 JSB SW7 SPC 2 TST3 NOP (EXTRA INSTRUCTION) JSB STN LDA CW2 150610 CLEAR CD JSB OTACH JSB DELAY JSB LIACH AND MSK4 14001 CPA BT0 00001 JMP E33+1 STATUS OK STA SAVA REPORT ERROR LDB MG33A JSB DATA LDA BT0 STA SAVB LDB MG33B JSB DATA LDA E35 JSB MHLT3 E33 JSB ERROR * STATUS ERROR JSB SW8 JSB SW7 CH23 CLF CH CH24 SFS CH FLAG SHOULD BE SET (AGAIN) BY SB E34 JSB ERROR * FLAG NOT SET JSB SW8 JSB SW7 SPC 2 TST4 NOP (EXTRA INSTRUCTION) JSB STN LDA CW4 150410 JSB MCLR JSB DELAY JSB LIACH AND MSK2 66001 CPA MSK3 46000 JMP E44+1 STATUS OK STA SAVA REPORT ERROR LDB MG44A JSB DATA LDA MSK3 STA SAVB LDB MG44B JSB DATA LDA E45 JSB MHLT3 E44 JSB ERROR * STATUS ERROR JSB SW8 JSB SW7 CH25 CLF CH FLAG SHOULD BE SET (AGAIN) BY CC CH26 SFS CH E40 JSB ERROR * FLAG NOT SET JSB SW8 JSB SW7 SPC 2 TST5 NOP (EXTRA INSTRUCTION) JSB STN LDA CW15 140610 JSB MCLR JSB DELAY JSB LIACH AND MSK6 60000 CPA BT13 20000 JMP E61+1 STATUS OK STA SAVA REPORT ERROR LDB MG61A JSB DATA LDA BT13 STA SAVB LDB MG61B JSB DATA LDA E62 JSB MHLT3 E61 JSB ERROR * STATUS ERROR JSB SW8 JSB SW7 CH27 CLF CH CH28 SFS CH FLAG SHOULD BE SET AGAIN BY CB E43 JSB ERROR * FLAG NOT SET JSB SW8 JSB SW7 LDA CW3 150017 JSB OTACH JSB DELAY LDA CW3 JSB MCLR CH30 CLF CH CH31 SFC CH E41 JSB ERROR * FLAG NOT CLEAR JSB SW8 JSB SW7 JMP FCTST,I EXIT ***** HED TNS - TEST SYNC/NON-SYNC OPERATIONS - SEND INT. DIAG