File MOPCMD.PA (PAL assembler source file)

Directory of image this file is from
This file as a plain text file

/ READ OPERATOR PUSHBUTTONS ON THE MOP         22-AUG-91
/
/
/
/	M   M   OOO   PPPP    CCCC  M   M  DDDD
/	MM MM  O   O  P   P  C      MM MM  D   D
/	M M M  O   O  P   P  C      M M M  D   D
/	M   M  O   O  PPPP   C      M   M  D   D
/	M   M  0   0  P      C      M   M  D   D
/	M   M  0   0  P      C      M   M  D   D
/	M   M   OOO   P       CCCC  M   M  DDDD
/
/
/

/
/EDIT HISTORY:
/
/24-APR-90	(LHN)
/	1) DISABLED THE MANUAL SAMPLE PUSH BUTTON
/
/
/03-JUL-91	(LHN)		FOR VERSION 4A
/	1)  REENABLED THE MANUAL SAMPLE PUSH BUTTON
/
/4-AUG-91	(LHN)
/	1)  DISABLED THE MANUAL REJECT PUSH BUTTON
/
/
/22-AUG-91	(LHN)		FOR VERSION 4B
/	1)  ALLOW MANUAL REJECT IF MAST IS IN TEST MODE.
/

/ / / /%R READ THE OPERATOR PUSHBUTTONS ON THE MOP / /%TW THIS ROUTINE IS CALLED / WHEN ANY OPERATOR REQUEST PUSH BUTTON ON / THE MOP IS PRESSED. THE DATA IN THE PUSH BUTTON / REGISTER (DR8 CODE 56) IS SAVED AND THE DATA / DECODE ROUTINE "MOPDEC" IS CALLED. / /%TD THE INTERRUPT ON THE PUSH BUTTON REGISTER CARD IS / DISABLED UNTIL ALL OF THE CURRENT DATA IS DECODED / AND PROCESSED. THIS FORCES THE OPERATOR / REQUESTS TO BE PROCESSED IN SEQUENCE AND INSURES / THAT NO REQUESTS ARE LOST. THE INDIVIDUAL PUSH / BUTTONS ARE BACK LITE AS EACH REQUEST IS / PROCESSED, INFORMING THE OPERATOR THAT HIS REQUEST / WAS HONORED. / / TASK= MOPDEC CUR= MOPFLD INIWT= 0 VERS= 4 TASK2= BELL CUR2= CUR INIWT2= 0 /INITIALLY RUNNABLE VERS2= 1 FIELD CUR%10 *MOPLOC
/ / MOP PUSHBUTTON INTERRUPT SERVICE ROUTINE / MOPCMD, ZBLOCK 2 DBSK56 /IS THIS OUR INTERRUPT ? JMP I MOPCMD /NO, BACK INTO THE SKIP CHAIN. CDI CUR ACL /SAVE THE MQ REGISTER VALUE !!! DCA MOPC1 DBRI56 /READ THE MOP PUSHBUTTON BUFFER. AND (7770) DBCI56 /CLEAR THE PUSHBUTTON BUFFER. MQL /"OR" NEW DATA INTO THE CURRENT TAD MOPDAT /REQUESTS. MQA DCA MOPDAT /SAVE THE OPERATOR REQUESTS FOR /DECODING LATER BY "MOPDEC". TAD MOPC1 /RESTORE THE MQ MQL CIF 0 TAD (MOPEVF) /GET THE DECODER'S EVENT FLAG, AND POSTDS /LET'S POST IT. MOPC1, 0 /LOCAL INTERRUPT TEMPORARY
/ / /%R DECODE OPERATOR PUSHBUTTON REQUESTS / /%TW COME HERE WHEN A MOP OPERATOR PUSH BUTTON IS / PRESSED, THIS SEGMENT DECODES AND PROCESSES / THE OPERATOR REQUESTS. WE ALSO BACK LIGHT / THE DECODED SWITCH TO ACKNOWLEDGE THE / OPERATOR REQUEST. / /%TD WHEN A SWITCH LITE IS TURNED ON, THE INDICATOR / TIMER IS ENABLED AND WILL TURN THE INDICATOR / OFF AFTER A PRESET INTERVAL. IF MORE PUSH / BUTTON DATA EXISTS WHEN AN INDICATOR IS TURNED / OFF, THIS ROUTINE WILL CONTINUE THE DECODING / PROCESS. THIS METHOD INSURES THAT ALL CURRENT / REQUESTS ARE PROCESSED ONCE BEFORE ANY REQUEST / IS HONORED A SECOND TIME. / / START, CAL SKPINS /PUT US IN THE SKIP CHAIN. MOPCMD CAL /HOOK TO POWER FAIL SEND PWRF MOPPWR CLB /PWRF OVERHEAD MOPD0, CLB DCA MOPEVF DBEI56 /AND ENABLE OUR INTERRUPT. MOPD1, CLB CAL WAITE /GO WAIT FOR A PUSHBUTTON. MOPEVF ISZ MOPEVF /SET OUR EVENT FLAG PENDING NOW. AC4000 /IS BIT 0 SET? (END OF ROLL AND MOPDAT /SUMMARY). SNA CLA JMP MOPD2 /NO, GO ON. TAD (EORSUM) /YES, GO FORCE THE E-O-R SUMMARY. CAL RUN AC4000 JMS MOPDX /GO LIGHT THE PUSHBUTTON INDICATOR.
/ MOPD2, AC2000 /IS BIT 1 SET ? (MANUAL SAMPLE). AND MOPDAT SNA CLA JMP MOPD3 /NO, GO ON. CDF 10 ISZ I (MANSMF) /YES, INCREMENT THE MANUAL SAMPLE NOP / FLAG. CDF CUR AC2000 JMS MOPDX /GO LIGHT THE PUSHBUTTON INDICATOR. MOPD3, TAD MOPDAT /IS BIT 2 SET ? (MANUAL REJECT) AND (1000) SNA CLA JMP MOPD4 /NO, GO ON. DBRI50 /YES, IS MAST IN "TEST" MODE ? AND (0040) SZA CLA JMP MOPD3A /NO, GO ON. CDF 10 ISZ I (MANRJF) /YES, INCREMENT THE MANUAL REJECT NOP / FLAG. CDF CUR MOPD3A, TAD (1000) JMS MOPDX /GO LIGHT THE PUSHBUTTON INDICATOR. MOPD4, TAD MOPDAT /IS BIT 3 SET ? AND (0400) SNA CLA JMP MOPD5 /NO, GO ON. TAD (400) /YES, FOR USE LATER. JMS MOPDX /GO LIGHT THE PUSHBUTTON INDICATOR.
/ MOPD5, TAD MOPDAT /IS BIT 4 SET ? (COUNT/HOLD). AND (0200) SNA CLA JMP MOPD6 /NO, GO ON. TAD (200) /YES, TURN OFF THE HOLD INDICATOR. DBCO56 CLB CDF 10 TAD I (CTHOLD) /IS THE COUNT/HOLD FLAG SET NOW ? SNA CLA /YES, CLEAR THE FLAG TO SHOW "COUNT" / MODE. CLB STL IAC /NO, SET THE FLAG TO SHOW "HOLD" DCA I (CTHOLD) /MODE SNL /ARE WE NOW ENTERING COUNT/HOLD ? JMP MOPD5A /NO, GO ON. TAD I (PROCNT) /YES, SAVE THE ACTIVE PRODUCT TRAY DCA I (CTSAVE) /SHEET COUNTER FOR WHEN WE RESUME CDF CUR / "COUNT" MODE. TAD (200) /TURN ON THE "HOLD" INDICATOR JMS MOPDX TAD (200) /LEAVE THE "HOLD" LIGHT ON ! DBSO56 CLB JMP MOPD6 MOPD5A, TAD I (CTSAVE) /RESTORE THE ACTIVE PRODUCT TRAY DCA I (PROCNT) /SHEET COUNTER AS IT WAS BEFORE CDF CUR /ENTERING "HOLD". TAD (200) /NOW REMOVE THE COUNT/HOLD CMA /BIT FROM "MOPDAT" AND MOPDAT DCA MOPDAT JMP MOPD6
/ PAGE
/ MOPD6, TAD MOPDAT /IS BIT 5 SET ? (MACHINE CHECK). AND (0100) SNA CLA JMP MOPD7 /NO, GO ON. CDF 10 CLB IAC /SET THE MACHINE CHECK FLAG FOR DCA I (MCHECK) / "CHOP". CDF CUR TAD (100) JMS MOPDX /GO LIGHT THE PUSHBUTTON INDICATOR. MOPD7, TAD MOPDAT /IS BIT 6 SET ? AND (0040) SNA CLA JMP MOPD8 /NO, GO ON. TAD (SCREEN) /REFRESH THE CRT FORMAT CAL RUN TAD (40) JMS MOPDX /GO LIGHT THE PUSHBUTTON INDICATOR. MOPD8, TAD MOPDAT /IS BIT 7 SET ? AND (0020) SNA CLA JMP MOPD9 /NO, GO ON. TAD (20) /YES, FOR FUTURE USE. JMS MOPDX /GO LIGHT THE PUSHBUTTON INDICATOR. MOPD9, TAD MOPDAT /IS BIT 8 SET ? (TOP OF FORM RESET). AND (0010) SNA CLA JMP MOPD1 /NO, GO ON. CDF 20 /YES, RESET THE SAMPLE TALLEY LINE DCA I (DWLINE) /COUNTER. CDF CUR TAD (10) JMS MOPDX JMP MOPD1 /NOW, BACK TO FIRST BASE
/ MOPDX, 0 DCA MOPDA TAD MOPDA DBSO56 /TURN ON THE SERVICED INDICATOR. CMA AND MOPDAT /REMOVE THE SERVICED BIT FROM THE DCA MOPDAT /OPERATOR REQUEST DATA. CAL SENDW /WAIT FOR 1/2 SECOND. CLOCK MOPMSG CLB /NOW TURN THE INDICATOR OFF. TAD MOPDA DBCO56 CLB JMP I MOPDX /RETURN TO DECODER. / MOPEVF, 1 MOPDAT, 0 MOPDA, 0 MOPMSG, ZBLOCK 3 0 0 31 /1/2 A SECOND 0 0 MOPPWR, ZBLOCK 3 /PWRF MESSAGE MOPD0-1
/ / / RING THE ALERT ALARM / / START2, CLB /GO TO SLEEP 'TIL NEEDED. CAL SUSPND AC0001 DBSO56 /RING OUR CHIME CLB CAL /WAIT 200MS SENDW CLOCK CLKMG1 AC0001 /THEN TURN THE BELL OFF DBCO56 CAL /NOW PAUSE FOR HALF A SECOND SENDW CLOCK /WE DON'T WANT THE BELL TO CLKMG2 /SOUND TOO OFTEN. JMP START2 CLKMG1, ZBLOCK 3 0 0 24 /200 MS CLKMG2, ZBLOCK 3 0 0 62 /HALF A SECOND PAGE NOPUNCH /FIELD 1 COMMON FOLLOWS XLIST 1



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search