ASMB,R,L,C,B
      HED STALL PROGRAM 92413-16009 REV A 
      NAM STALL,1,2,1,75 92413-16009A 07MAY75 
      ENT STALL 
      EXT &6940,EXEC
      SUP 
********************************************* 
*     STALL PROGRAM 
* 
*     SOURCE: 92413-18009 REV A 
*     RELOC:  92413-16009 REV A 
* 
*     REVISION A BY STEVE SCOVILL 
********************************************* 
* 
* 
* 
*     THE STALL PROGRAM CAN BE INITATED WITH THE
* 
*     *ON,STALL,NOW 
* 
*     OPERATOR REQUEST.  AFTER THIS IS DONE, THE STALL PROGRAM
*     WILL BE AUTOMATICALLY SCHEDULED TO UPDATE THE STALL TIMER 
*     CHANNEL EVERY 750 MILLISECONDS.  THE STALL TIMER CHANNEL
*     IS DEFINED AS THE FIRST TIMER CHANNEL IN THE FIRST CONFIG-
*     URED 6940.  THERE ARE TWO DIFFERENT TIME PERIODS THAT HAVE
*     TO BE CONSIDERED WHEN USING THE STALL PROGRAM.  ONE, THE
*     TIME BEWTEEN UPDATES, CAN BE MODIFIED WITH THE "IT" OPERATOR
*     COMMAND.  THUS
* 
*     *IT,STALL,2,50
*     *ON,STALL,NOW 
* 
*     WOULD CHANGE THE UPDATE PERIOD TO EVERY 50 SECONDS AND RESTART
*     EXCUTION OF THE STALL PROGRAM.
* 
*     THE OTHER TIME PERIOD, THE TIME REQUIRED FOR THE TIMER CARD TO
*     TIME OUT, CAN BE SET TWO DIFFERENT WAYS.  THE FIRST WAY, IS TO
*     CHANGE THE POSITION OF THE JUMPER W2, THE SECOND WAY IS TO
*     CHANGE THE ANSWER TO THE "NUMBER OF STALL INCREMENTS?" QUESTION 
*     AT CONFIGURATION TIME.
* 
*     NO ERROR MESSAGES ARE GIVEN BY THE STALL PROGRAM. 
* 
      SKP 
* 
*     ENTRY 
* 
STALL NOP 
      LDB TOP       GET BASE PAGE LINK
      SSB,RSS        AND CHECK FOR INDIRECT 
      JMP *+4         NO,ITS THE TRUE ADDR
      ELB,CLE,ERB   STRIP INDIRECT BIT
      LDB 1,I        GET ADDR 
      JMP *-4         AND TEST AGAIN
      INB            TABLE TO POINT TO
      STB ADR1        FIRST 6940
* 
*     UPDATE THE TIMER FIRST
* 
      LDA LU        HAVE WE DONE
      SZA            THIS ONCE
      JMP OUTPT       BEFORE? 
* 
*     GET INFO FOR TIMER CARD 
* 
      LDA  .M6      INITIALIZE
      STA COUNT      COUNTER
* 
      LDB ADR1,I    GET ADDR
      ADB .2         AND MOVE 
      LDA 1,I         TO GET
      STA LU           LU 
* 
      INB           MOVE TO GET #EVENT
      CLA           INITIALIZE ACCUM
      ADA 1,I       ACCUMULATE
      ADB .2         CHANNEL
      ISZ COUNT       COUNT 
      JMP *-3 
      STA SLOT      SAVE THE TIMER CHANNEL
* 
      INB 
* 
      LDA 1,I       GET TIMER INFO
      LDA 0,I 
      SZA,RSS         CHECK IF STALL
      JMP EXIT      NOPE! 
* 
      AND M7777     MASK THE DATA 
      STA OBUFF+1    SAVE FOR LATER 
* 
      LDA SLOT      GET THE SLOT
      CLB 
      DIV .15        DIVIDE TO FIND UNIT
      IOR =B170140
      STA OBUFF     SAVE CNTL WORD
      BLF,BLF       ROTATE
      BLF            B
      LDA OBUFF+1     TO OBTAIN 
      IOR 1            SLOT AND OR
      STA OBUFF+1       IN DATA 
* 
*     OUTPUT TO THE TIMER CARD
* 
OUTPT JSB EXEC      OUTPUT
      DEF *+6        TO 
      DEF .2          6940
      DEF LU           USING
      DEF OBUFF         WRITE 
      DEF .2             WITH 
      DEF .1             HANDSHAKE
* 
*     TERMINATE 
* 
EXIT  JSB EXEC      REST
      DEF *+2        FOR A
      DEF .6          WHILE 
* 
*     CONSTANTS 
* 
.M6   DEC -6
.1    DEC 1 
.2    DEC 2 
.6    DEC 6 
.15   DEC 15
M7777 OCT 7777
* 
LU    NOP 
SLOT  NOP 
COUNT NOP 
ADR1  NOP 
TOP   DEF &6940 
* 
*     OUTPUT BUFFER 
* 
OBUFF NOP 
      NOP 
      END STALL 
                                                                                                                                                                                                                                                          