home *** CD-ROM | disk | FTP | other *** search
- ;**********************************************************************
- ;* -START.COM- *
- ;* *
- ;* A PROGRAM TO INITIONALIZE AN ISC 8001G COLOR TERMINAL, *
- ;* AND READ COMPU/TIME T102A TIME AND DATE BOARD AND THEN DISPLAY IT. *
- ;* *
- ;* BY HARRY KAEMMERER 11/30/1979 TEL. (201)-221-2297 *
- ;**********************************************************************
- ;
- FG EQU 1DH ;SELECT FORGROUND COLOR
- YELLOW EQU 13H ;COLOR IS YELLOW
- BG EQU 1EH ;SELECT BACKGROUND COLOR
- BLUE EQU 14H ;COLOR IS BLUE
- ESC EQU 1BH ;ESC KEY CODE
- FF EQU 0CH ;FORM FEED CLEARS SCREEN
- BELL EQU 07H ;RING BELL
- ENTRY EQU 05H ;TALK TO CP/M
- CR EQU 0DH ;CARRAGE RETURN
- LF EQU 0AH ;LINE FEED
- A7OFF EQU 0FH ;SETS TERMINAL TO 48 LINE FORMAT
- ;
- CLOCK EQU 0C0H ;MY CLOCKS ADDRESS PORT CHANGE AS NEEDED
- ;
- ORG 0100H ;START ASSEMBLY HERE
- ;
- LXI H,0 ;SET UP REGISTERS
- DAD SP ;AND STACK POINTER
- SHLD OLDSP ;WILE DUING IT SAVE THE OLD ONE
- LXI SP,STACK ;AND SET A NEW ONE FOR THIS PGM
- ;
- LXI H,LABEL1+16 ;POINT TO FIRST TIME MEM. LOCATION
- MVI A,0 ;TELL CLOCK YOU WANT TEN'S OF HR'S
- CALL GETDIG ;GET IT AND PUT IT IN MEM. FOR LATER USE
- MVI A,1 ;SAME FOR UNIT' HR'S
- CALL GETDIG ;GET IT AND SAVE IT
- INX H ;SKIP ':' WE DONT WHANT TO MESS IT UP!!
- MVI A,2 ;SAME FOR MINTES TENS
- CALL GETDIG ;GET IT
- MVI A,3 ;MIN UNITS
- CALL GETDIG ;YOU GOT IT .. GET IT AND SAVE AS ABOVE
- INX H ;SKIP ':'
- MVI A,4 ;NOW THE SECOND'S
- CALL GETDIG ;
- MVI A,5 ;
- CALL GETDIG ;
- LXI H,LABEL1+31 ;SET POINTER TO DATE LOCATIONS
- MVI A,8 ;SET FOR MONTH TENS
- OUT CLOCK ;SEND IT TO THE CLOCKS PORT
- CALL DELAY ;WAIST SOME TIME
- IN CLOCK ;GET THE DIGIT FROM THE CLOCK
- ANI 0FH ;CLEAR SOME BITS
- ADI 48 ;MAKE IT ASCII
- CPI 63 ;SEE IF IT SHOULD BE A BLANK?
- CZ SET1 ;IF SO THEN MAKE IT A BLANK
- MOV M,A ;ELSE SEND IT TO ITS MEM. LOCATION
- MVI A,9 ;THIS IS FOR MONTH UNITS
- CALL GETDIG ;SAME THING AS IN TIME
- INX H ;SKIP '/'
- MVI A,10 ;DAY TENS
- CALL GETDIG ;GET IT
- MVI A,11 ;DAY UNITS
- CALL GETDIG ;GET IT
- LXI H,LABEL1 ;POINT TO START OF MESSAGE
- ;
- LXI D,LABEL1 ;TELL CP/M START OF MESSAGE
- MVI C,9 ;SEND IT TO THE TERMINAL
- CALL ENTRY ;DO IT
- LHLD OLDSP ;PUT THE OLD CP/M STACK POINTER
- SPHL ;WHERE IT BELONGS
- RET ;AND EXIT THE PROGRAM
- ;
- SET1 MVI A,20H ;SET UP A BLANK FOR THE MONTH TENS DIGIT
- RET ;
- GETDIG OUT CLOCK ;SEND SELECT CHARACTER TO THE CLOCK
- CALL DELAY ;WAIST SOME TIME
- IN CLOCK ;GET THE CLOCKS OUTPUT
- ANI 0FH ;CLEAR SOME BITS
- ADI 48 ;MAKE IT ASCII
- INX H ;POINT TO NEXT MEMORY LOCATION
- MOV M,A ;PUT IT THERE
- RET ;
- DELAY LXI D,02FFH ;DELAY CONSTANT
- WAIT1 DCR E ;WAIST SOME TIME
- JNZ WAIT1 ;
- DCR D ;
- JNZ WAIT1 ;SEE IF YOU ARE DONE IF SO
- RET ;RETURN
- LABEL1 DB FG,YELLOW,BG,BLUE,ESC,'K',A7OFF,ESC,'F',FF,BELL
- DB CR,'TIME HH:MM:SS DATE MM/DD/1980',CR,LF,'$'
- DS 29
- OLDSP DS 2
- DS 100H
- STACK DB 0
-