ASMB,R,L,C HED @CLCK - 91705-16113 * (C) HEWLETT PACKARD CO. 1976 NAM @CLCK,1,3 91705-16113 REV.A 751230 SPC 1 ****************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * ****************************************************************** SPC 1 * @CLCK * SOURCE: 91705-18113 * BINARY: 91705-16113 * JIM HARTSELL * DEC. 10, 1974 * MODIFIED BY: C.C.H. (12-30-75) [DERIVED FROM: 91705-18013 REV.B] * * CORE RESIDENT RTE-C SATELLITE PROGRAM SCHEDULED EVERY * 10 MILLISECONDS TO INCREMENT THE TIME VALUES FOR USER * PROGRAMS IN THE WAIT LIST. WHEN THE TIME VALUE GOES TO * ZERO, THE PROGRAM IS RE-STARTED. * ENT @CLCK EXT %LIST,%TIME,EXEC,$LIBR,$LIBX,$LINK,$WORK * A EQU 0 B EQU 1 * * GET CURRENT SYSTEM TIME FOR PARMB TIME-TAGS. * @CLCK JSB EXEC ASK THE SYSTEM DEF *+3 TO PROVIDE DEF D11 THE CURRENT DEF TIMBF TIME-OF-DAY. * LDA TIMBF GET THE 10'S OF MILLISECONDS VALUE. ADA TIMBF+1 ADD SECONDS FOR LEAST TIME-COMPOSITE. LDB TIMBF+2 GET THE MINUTES VALUE. ADB TIMBF+3 ADD HOURS FOR MOST TIME-COMPOSITE VALUE. * JSB $LIBR GAIN ACCESS TO NOP SYSTEM RESOURCES. DST %TIME SAVE RTE-II STYLE TIME VALUE IN <@QUE>. JSB $LIBX RESTORE THE DEF *+1 SYSTEM'S DEF *+1 DEFENSES. * * BEGIN SCAN OF WAIT-LIST. * LDA %LIST LDB A,I STB TEMP NEGATIVE # OF ENTRIES. INA STA TEMP1 ADDR OF FIRST ENTRY. * LOOP LDA TEMP1,I CHECK IF TIME VALUE SZA,RSS IS ZERO. JMP NEXT YES-GO TO NEXT ENTRY. * * INCREMENT THE TIME VALUE AS EACH IN-USE ENTRY IS FOUND. * JSB $LIBR NOP LDA TEMP1,I CAN'T USE ISZ. INA SSA STORE NEW TIME IF JMP CLCK1 NEGATIVE OR ZERO. SZA,RSS CLCK1 STA TEMP1,I JSB $LIBX DEF *+1 DEF *+1 * SZA JMP NEXT * * TIME IS UP. CHECK IF PROGRAM STILL IN OP SUSPEND LIST. * LDA TEMP1 ADA B4 LDA A,I ID SEGMENT ADDRESS. STA WORK ADA D15 LDA A,I PROGRAM STATUS WORD. AND B17 CPA B6 IN OPERATOR SUSPEND LIST? JMP SCHED YES. * * MOVE TO NEXT ENTRY IN WAIT-LIST. * NEXT LDA TEMP1 ADA B5 STA TEMP1 ISZ TEMP JMP LOOP * * EXIT WITH RECALL IF END OF LIST. * JSB EXEC RECALL IN 10 MS. DEF *+6 DEF D12 DEF B0 DEF B1 DEF B0 DEF MD1 * JMP @CLCK * SKP * RE-START A USER PROGRAM VIA RTE-C LINKAGE PROCESSOR. * SCHED JSB $LIBR NOP LDB TEMP1 KILL PROG NAME IN INB WAIT-LIST ENTRY. CLA STA B,I LDB $DWRK SSB,RSS JMP *+3 ELB,CLE,ERB LDB B,I * LDA WORK SET UP SCHEDULER VARIABLES: STA B,I "WORK" INB STA B,I "WLINK" INB ADA B6 STA B,I "WPRIO" * ADA D9 SET STATUS WORD IN CLB,INB ID SED = SCHEDULED. STB A,I * JSB $LINK CALL LINKAGE PROCESSOR: B6 OCT 6 REMOVE FROM OP SUSP LIST. B1 OCT 1 LINK INTO SCHEDULE LIST. * JSB $LIBX DEF *+1 DEF NEXT * * CONSTANTS AND WORKING STORAGE. * B0 OCT 0 B4 OCT 4 B5 OCT 5 B17 OCT 17 D9 DEC 9 D11 DEC 11 D12 DEC 12 D15 EQU B17 MD1 DEC -1 TEMP NOP TEMP1 NOP WORK NOP $DWRK DEF $WORK TIMBF BSS 5 * SIZE EQU * END @CLCK