;***************************************************************************;
; ;
; CLOCK ;
; time-of-day display program ;
; ;
; Author: David F. Pallmann ;
; ;
;***************************************************************************;
;
;
; File uses universal (.UNV) files other
; than SYS, SYSSYM, and TRM.
; These are on the AMUS network
;
; Updated by Dave Heyliger - AMUS Staff (dkh) to allow ESC exit.
;
OBJNAM CLOCK.LIT
VMAJOR=1
VEDIT=100. ;22-Dec-83 DFP creation
VEDIT=101. ;15-Feb-88 dkh
;universals
SEARCH SYS
SEARCH SYSSYM
SEARCH AAA ;dkh - DSK2:[100,133]
SEARCH TRM
SEARCH MACLIB
ILOOP=D0
ROW=D2
COL=D3
OLOOP=D4
IMP=A5
OFINI
OFDEF OLDDAT,4 ;old system date
OFDEF NEWDAT,4 ;new system date
OFSIZ IMPSIZ
START: PHDR -2,0,PH$REE!PH$REU ;program header
GETIMP IMPSIZ,IMP ;allocate impure area
ONEKEY ;dkh - sets one key input
BCKGND: CRT #0 ;clear screen
CRT #29.
CRT #3,#38.
TYPE ....
CRT #4,#38.
TYPE ....
CRT #7,#38.
TYPE ....
CRT #8.,#38.
TYPE ....
CHKTIM: CTRLC EXIT
SLEEP #10000
TCKI ;dkh - input???
BNE 10$ ;dkh - nope
KBD ;dkh - yes, get the keystroke
CMPB D1,#33 ;dkh - escape?
JEQ EXIT ;dkh - yes, exit
10$: GTIMES NEWDAT(IMP)
CMMW OLDDAT(IMP),NEWDAT(IMP)
BEQ CHKTIM
NEWTIM: MOV NEWDAT(IMP),OLDDAT(IMP)
HRS1: CLR D1
MOVB NEWDAT(IMP),D1
DIV D1,#10.
AND #377,D1
MOV #7,COL
CALL DIGIT
HRS2: CLR D1
MOVB NEWDAT(IMP),D1
10$: CMPB D1,#10.
BLT 20$
SUB #10.,D1
BR 10$
20$: MOV #22.,COL
CALL DIGIT
MIN1: CLR D1
MOVB NEWDAT+1(IMP),D1
DIV D1,#10.
AND #377,D1
MOV #46.,COL
CALL DIGIT
MIN2: CLR D1
MOVB NEWDAT+1(IMP),D1
AND #377,D1
10$: CMPB D1,#10.
BLT 20$
SUB #10.,D1
BR 10$
20$: MOV #61.,COL
CALL DIGIT
JMP CHKTIM
DIGIT: MUL D1,#15.
MOV D1,D5
LEA A0,DIGTBL
ADD D1,A0
MOV #1,ROW
MOV #5,OLOOP
DOROW: CALL LINE
CALL LINE
ADD #3,A0
SOB OLOOP,DOROW
RTN
LINE: CTRLC EXIT
MOV ROW,D1
ROLW D1,#8.
ADDW COL,D1
TCRT
MOV #3,ILOOP
MOV A0,A1
20$: MOVB (A1)+,D1
TTY
TTY
TTY
TTY
SOB ILOOP,20$
INC ROW
RTN
EXIT: CRT #28.
CRT #0
PRTTAB -1,28. ;dkh - turn on cursor
EXIT
DIGTBL: ASCII /0000 00 00 0000/
ASCII /11 1 1 1 111/
ASCII /222 22222 222/
ASCII /333 3333 3333/
ASCII /4 44 4444 4 4/
ASCII /5555 555 5555/
ASCII /6666 6666 6666/
ASCII /777 7 7 7 7/
ASCII /8888 88888 8888/
ASCII /9999 9999 9 9/
EVEN
END