;       TIME.SBR
;               VERSION 1.0 - 09/01/84 - D. EICHBAUER
;
;
;       ALLOWS USER TO SET SYSTEM TIME FROM BASIC
;
;                       PROPRIETARY PROGRAM MATERIAL
;
;       THIS MATERIAL IS THE PROPERTY OF DALE A. EICHBAUER,
;       692 E. FREELAND ROAD, MERRILL, MICHIGAN, 48637.  PERMISSION
;       TO COPY & USE IS GRANTED FOR NON-PROFIT USES ONLY.
;
;
;
       SEARCH  SYS
       SEARCH  SYSSYM

       AUTOEXTERN

       OBJNAM  TIME.SBR

DEFINE  XY      A,B
       MOV     #^D<A_8.+B>,D1
       TCRT
       ENDM

       VMAJOR=1.
       VMINOR=0.
       VSUB=0.
       VEDIT=100.
       VWHO=1.

; OFFSETS FROM A3 FOR PARAMETERS PASSED FROM BASIC

       PARMS=0
       TYPE.1=2
       ADD.1=4
       SIZE.1=10



; OFFSETS FROM A4 FOR TEMPORARY STORAGE

       DEV.W = 0               ; STORAGE FOR DEVICE NAME PACKED RAD50
       DRV.W = 2               ; STORAGE FOR DRIVE #
       PPN.W = 4               ; STORAGE FOR PPN

       PHDR    -1,PV$RPD,PH$REE!PH$REU

       BR      START
       ASCII   / COPYRIGHT (C) 1984, 1985 DALE A. EICHBAUER /
       EVEN
START:
       CLRW    PPN.W(A4)
       CLRW    DEV.W(A4)
       CLRW    DRV.W(A4)
       JOBIDX  A6                      ; POINT TO JOB'S JOB TABLE ENTRY
       ANDW    #^C<J.HEX>,JOBTYP(A6)   ; SET JOB TO OCTAL
       MOVW    JOBUSR(A6),PPN.W(A4)    ; GET THE CURRENT PPN
       MOVW    JOBDEV(A6),DEV.W(A4)    ; AND THE CURRENT DEVICE NAME (RAD50)
       MOVW    JOBDRV(A6),DRV.W(A4)    ; AND THE CURRENT DRIVE #
       MOVW    #[DSK],JOBDEV(A6)       ; LOG TO DSK:
       MOVW    #0,JOBDRV(A6)           ; AND DISK 0
       MOVW    #402,JOBUSR(A6)         ; NOW WE'RE IN OPR:
       MOV     ADD.1(A3),A2            ; POINT A2 TO THE INPUT STRING
       MOV     #1,D5                   ; PREVENT DATE SCANNING OF STRING
       CALL    $IDTIM                  ; GET THE TIME INPUT IN
                                       ;       SEPARATED FORMAT
       BNE     ERROR                   ; IF BAD VALUE, BRANCH
       STIMES  D4                      ; TRY TO SET THE TIME
       BNE     ERROR                   ; IF UNSUCESSFUL, DO ERROR ROUTINE
RELOG:  JOBIDX  A6                      ; POINT TO JOB'S JOB TABLE ENTRY AGAIN
       MOVW    DEV.W(A4),JOBDEV(A6)    ; SET THE FORMER DEVICE
       MOVW    DRV.W(A4),JOBDRV(A6)    ; AND THE DRIVE #
       MOVW    PPN.W(A4),JOBUSR(A6)    ; AND FINALLY THE PPN
       RTN                             ; & BACK TO BASIC

ERROR:  XY      24,1
       XY      -1,9
       XY      -2,4                    ; MAKE CURSOR RED FOR COLOR TERMINALS
       TYPE    <INVALID TIME REQUEST>
       SLEEP   #30000.
       BR      RELOG

       ASCII   / COPYRIGHT (C) 1984, 1985 DALE A. EICHBAUER /
       EVEN

       END