/ M4 WRITE TEST / LAST EDIT: 23-JAN-1988 16:00:00 CJL / DEFINITIONS. INIOT= 72 /INPUT DEVICE CODE INCLR= INIOT^10+6002 /CLEAR INPUT FLAG, AC AND PULSE ACKNOWLEDGE INCLR0= INIOT^10+6000 /CLEAR INPUT FLAG ONLY **** PDP-8/E ONLY **** INIE= INIOT^10+6005 /SET/CLEAR INTERRUPT ENABLE PER AC[11] INRAW= INIOT^10+6004 /OR INPUT, DO NOT CLEAR FLAG OR PULSE ACKNOWLEDGE INREAD= INIOT^10+6006 /READ INPUT, CLEAR FLAG AND PULSE ACKNOWLEDGE INSKP= INIOT^10+6001 /SKIP ON INPUT FLAG OUTIOT= 73 /OUTPUT DEVICE CODE OUTCLR= OUTIOT^10+6002 /CLEAR OUTPUT FLAG OUTLOD= OUTIOT^10+6006 /LOAD OUTPUT BUFFER, CLEAR FLAG OUTRAW= OUTIOT^10+6004 /LOAD OUTPUT BUFFER, DO NOT CLEAR FLAG OUTSET= OUTIOT^10+6000 /SET OUTPUT FLAG **** PDP-8/E ONLY **** OUTSK= OUTIOT^10+6005 /SKIP ON (M8342 INTERRUPT ENABLE) .AND. /(INPUT FLAG .OR. OUTPUT FLAG) OUTSKP= OUTIOT^10+6001 /SKIP ON OUTPUT FLAG INIT, CAF /CLEAN UP INCLR /CLEAR INPUT FLAG ALSO PULSING ACKNOWLEDGE ISZ 0 /WASTE JMP .-1 /SOME TIME ISZ 0 /WASTE JMP .-1 /SOME TIME ISZ 0 /WASTE JMP .-1 /SOME TIME ISZ 0 /WASTE JMP .-1 /SOME TIME ISZ 0 /WASTE JMP .-1 /SOME TIME ISZ 0 /WASTE JMP .-1 /SOME TIME ISZ 0 /WASTE JMP .-1 /SOME TIME ISZ 0 /WASTE JMP .-1 /SOME TIME ISZ 0 /WASTE JMP .-1 /SOME TIME ISZ 0 /WASTE JMP .-1 /SOME TIME OUTSET /SET OUTPUT FLAG NOW CLA /CLEAN UP START, TAD ("P&37) /GET JMS SEND /SEND IT TAD ("4&177) /GET REWIND CODE JMS SEND /SEND IT JMS REC /GET FIRST STATUS BYTE DCA STAT1 /STASH IT JMS REC /GET SECOND STATUS BYTE DCA STAT2 /STASH IT TAD ("P&37) /GET JMS SEND /SEND IT TAD ("1&177) /GET WRITE CODE JMS SEND /SEND IT LAS /GET THE WRITE COUNT CIA /INVERT IT DCA 10 /STASH THE COUNTER TAD 10 /GET IT BACK CIA /INVERT IT BSW /WANT HIGH-ORDER FIRST JMS SEND /SEND IT TAD 10 /GET IT AGAIN CIA /INVERT IT JMS SEND /SEND IT LAS /GET DATA PATTERN JMS SEND /SEND IT ISZ 10 /DONE ALL YET? JMP .-3 /NO, KEEP GOING JMS REC /GET FIRST STATUS BYTE DCA STAT1 /STASH IT JMS REC /GET SECOND STATUS BYTE DCA STAT2 /STASH IT TAD STAT2 /GET SECOND STATUS MQL /DISPLAY IT TAD STAT1 /GET FIRST STATUS KSF /WAIT JMP .-1 /FOR OPERATOR KRB CLA JMP I (7600) /GOODBYE STAT1, .-. /FIRST STATUS BYTE STAT2, .-. /SECOND STATUS BYTE TEMP, .-. /TEMPORARY DATA1, 0 DATA2, 0 DATA3, 0 / RECEIVE ROUTINE. REC, .-. /RECEIVE ROUTINE INSKP /FLAG UP? JMP .-1 /NO, WAIT FOR IT INREAD /YES, GET THE CHARACTER AND CLEAR THE FLAG CMA /INVERT THE DATA AND (377) /JUST EIGHT BITS JMP I REC /RETURN / SEND ROUTINE. SEND, .-. /SEND ROUTINE OUTSKP /FLAG UP? JMP .-1 /NO, WAIT FOR IT OUTLOD /YES, SEND THE VALUE NOW CLA /CLEAN UP JMP I SEND /RETURN $ /THAT'S ALL FOLK!