home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / BYE5 / B5C-EVE.INS < prev    next >
Text File  |  2000-06-30  |  6KB  |  207 lines

  1. ;-----------------------------------------------------------------------
  2. ;
  3. ;         ++++ Install your TIME routine here ++++
  4. ;
  5. ; If you have a clock and wish to use TIMEON or RSPEED, please replace
  6. ; the following code with your clock read code.  Use as many instruc-
  7. ; tions as you need but make sure you store binary, not BCD values in
  8. ; CCHOUR and CCMIN.  Use RTCBUF to store BCD clock data, then use BCDBIN
  9. ; to convert it to binary for CCHOUR and CCMIN.  See B5C-QXnn.INS as an
  10. ; example of handling a BCD clock, or B5C-SDS.INS for a BIOS interrupt-
  11. ; driven clock that runs in binary (hex).  All registers are saved before
  12. ; TIME is called, so you don't have to save them.
  13. ;
  14. ; NOTE... Set BCD2BIN to YES if your clock routine calls BCDBIN
  15. ;      ** FOR THE EVE SPEECH SYNTHESIZER/CLOCK CALENDAR **
  16. ;
  17. ;
  18. ; (Replace the following code with your own clock subroutine)
  19. ;
  20. ;
  21. ;**************************************************************
  22. ;
  23. ; B5C-EVE.INS A TIME INSERT FOR BYE500 AND UP
  24. ;             NOTE:  THIS IS AN INSERT -- NOT AN OVERLAY
  25. ; ADAPTED BY ROBERT BAKER FOR THE COLECO ADAM
  26. ;
  27. ; ADAPTED FROM:
  28. ;   A CLOCK INSERT FOR BYE AND MBYE WRITTEN BY DONALD E ROTH, DENVER.
  29. ;
  30. ; B5C-OKI1.INS FOR BYE500 AND UP
  31. ;  08/14/85    NOTE:  THIS IS AN INSERT -- NOT AN OVERLAY
  32. ;            BUCKY CARR
  33. ;            DENHUG (ZBBS) RCP/M, 303-423-3224
  34. ;
  35. ; ADAPTED FROM:
  36. ;   A CLOCK INSERT FOR BYE AND MBYE WRITTEN BY DONALD E ROTH, DENVER.
  37. ;
  38. ;   THIS IS AN INSERT FOR ADDRESSING AND READING FROM THE OKI MSM5832
  39. ;   CLOCK CHIP AS ADDRESSED BY AN 8255 USART.  IN OUR SETUP, IT HAPPENS
  40. ;   TO BE CONNECTED TO A HEATHKIT H89 AND IS ADDRESSED AT PORT 320Q.
  41. ;
  42. ;   IT SHOULD BE POSSIBLE TO USE THIS CODE FOR ANY PORTED SYSTEM, AND
  43. ;   THE 8255 AND 5832 LEND THEMSELVES TO RELATIVELY INEXPENSIVE WIRE-
  44. ;   WRAPPING SHOULD ONE DESIRE TO ROLL HIS OWN CLOCK BOARD.  SCHEMATICS
  45. ;   ARE AVAILABLE, AND PERHAPS SOMEWHERE DOWN THE LINE I WILL INCLUDE
  46. ;   A SCHEMATIC WITH THIS INSERT....
  47. ;
  48. ;   TO SET THE CLOCK INITIALLY WE USE A CLOCK SETTING PROGRAM WRITTEN FOR
  49. ;   THAT SPECIFIC PURPOSE (WHICH I CANNOT LAY MY HANDS ON AT THE MOMENT,
  50. ;   BUT WILL SEARCH FOR, FOR THE TRULY INTERESTED.  IT IS WRITTEN IN BASIC.
  51. ;
  52. ;   IF YOU ALSO DESIRE THE MBASIC CODE TO READ THE CLOCK FROM WITHIN
  53. ;   A BBS PROGRAM, LET ME KNOW AND I WILL OFFER THAT UP, TOO.
  54. ;
  55. ;
  56. ;
  57. ;   WHEN CALLED THIS ROUTINE WILL CHECK THE RTCBUF.  IF A '99H' IS IN
  58. ;   THE FIRST BYTE, THEN CLOCK IS INITIALIZED.    NEXT, THE SECONDS ARE
  59. ;   CHECKED, AND IF CHANGED SINCE LAST UPDATE OF RTC BUFFER, THE CLOCK
  60. ;   IS READ AND NEW DATA COPIED TO THE RTCBUF.    THE BCD HOURS AND
  61. ;   MINUTES ARE CONVERTED TO BINARY AND STORED IN CCMIN AND CCHOUR.è;
  62. ;
  63. ;                    - BUCKY CARR, SYSOP,
  64. ;                    WORLD PEACE (ZBBS) RCP/M, 303-320-4822
  65. ;                            AND
  66. ;                    DENHUG (ZBBS) RCP/M, 303-423-3224
  67. ;
  68. ;**********************************************************************
  69. ;
  70. ;THESE EQUATES ARE NEEDED TO SET UP THE 8255 PPI TO READ FROM
  71. ;THE OKI MSM5832 REAL TIME CLOCK CHIP
  72.  
  73. CLKD    EQU    048H    ;SET MODE BIT
  74. CLKA    EQU    049H        ;GROUP A MODE 0
  75. INPT    EQU    04AH    ;GROUP A MODE 1
  76. PPIX    EQU    04BH    ;GROUP A MODE 2
  77. EOS    EQU    '$'        ;GROUP B MODE 0
  78. CS    EQU    0    ;GROUP B MODE 1
  79. CSNOT    EQU    80H    ;PORT A INPUT
  80. CENTURY EQU    19H        
  81. ;
  82.      IF CLOCK
  83. TIME:    MVI    A,081H
  84.     OUT    PPIX
  85.     MVI    A,00H
  86.     OUT    CLKD
  87.     MVI    A,08FH
  88.     OUT    CLKA
  89.     MVI    A,0FH
  90.     OUT    CLKA
  91. CREAD:    PUSH    PSW
  92.     PUSH    B
  93.     PUSH    D
  94.     PUSH    H
  95.     MVI    A,00H
  96.     STA    SPCFLG
  97.     MVI    A,91H            ;SET 8255 CONTROL REG
  98.     OUT    PPIX            
  99.     MVI    B,00H            ;5832 ADDRESS COUNTER
  100.     LXI    H,TSTG            ;PUT ADDR OF 1ST MEM
  101.     MVI    A,10H+CS        ;HOLD HIGH & CS HI
  102.     OUT    INPT
  103.     PUSH    PSW            ;150 MICRO SECOND DELAY
  104.     MVI    A,11H        
  105. LOOP:    DCR    A
  106.     NOP
  107.     JNZ    LOOP    
  108.     POP    PSW    
  109. LOPI:    MVI    A,30H+CS        ;SET HOLD & READ
  110.     OUT    INPT
  111.     MOV    A,B
  112.     OUT    CLKA            ;ADDRS TO 5832
  113.     NOP                ;NOP & INR B MAKE UP
  114.     INR    B            ;6 USEC DELAY
  115.     IN    CLKD            ;INPUT DATA INTO ACCUM
  116.     ANI    0FH
  117.     MOV    M,A            
  118.     INX    H
  119.     MOV    A,B            ;LAST 5832 ADDRESS?
  120.     CPI    0DH            ;IF NOT, NEXT ADDRESS
  121.     JNZ    LOPI        ;SET HOLD LOW, READ LOWè    MVI    A,00H+CSNOT            
  122.     OUT    INPT
  123.     LXI    H,HRS10
  124.     MVI    A,00H            ;SET FLAGS TSTG+13,14
  125.     STA    MOD24            ;15,  TO ZERO
  126.     STA    AMPM
  127.     STA    LEAPYR
  128.      MOV     A,M             ;H10 DATA INTO ACCUM
  129.     LDA    HRS10
  130.     ANI    08H            ;IS 24 HOUR MODE SET?
  131.     CPI    00H
  132.     JZ    TWLV            ;IF NOT, SKIP TO TWLV
  133.     MVI    A,01H            ;IF SO, SET FLAG
  134.     STA    MOD24
  135. TWLV:
  136.     MOV    A,M            ;IS PM BIT SET?
  137.     LDA    HRS10
  138.     ANI    04H            ;IF NOT, SKIP TO CORVL
  139.     CPI    00H
  140.     JZ    CORVL            
  141.     MVI    A,01H            ;IF SO, SET FLAG
  142.     STA    AMPM
  143. CORVL:
  144.     MOV    A,M            ;PUT CORRECT VALUE OF
  145.     LDA    HRS10
  146.     ANI    03H            ;H10 INTO TSTG+5
  147.     MOV    M,A            
  148.     STA    HRS10
  149.     LXI    H, TSTG+08H
  150.     MOV    A,M            ;LEAP YEAR?
  151.     LDA    MON10
  152.     ANI    04H            
  153.     JZ    RLVL            ;IF NOT, SKIP TO RLVL
  154.     MVI    A, 01H            ;IF SO, SET FLAG
  155.     STA    LEAPYR
  156. RLVL:
  157.     MOV    A,M
  158.     LDA    MON10
  159.     ANI    03H            ;PUT CORRECT VALUE OF
  160.     MOV    M,A            ;D10 INTO TSTG+8
  161.     STA    MON10
  162.     POP    H
  163.     POP    D            
  164.     POP    B
  165.     POP    PSW
  166. ;
  167. CNVRTD: LDA    HRS10
  168.     MOV    H,A
  169.     LDA    HRS01
  170.     ADD    H
  171.     STA    RTCBUF        ;SAVE IT
  172.     CALL    BCDBIN        ;CONVERT IT TO BINARY
  173.     STA    CCHOUR        ;STUFF IT IN HERE FOR BYE5XX TO USE
  174.     LDA    MIN10
  175.     MOV    H,A
  176.     LDA    MIN01
  177.     ADD    H
  178.     STA    RTCBUF+1    ;SAVE IT
  179.     CALL    BCDBIN        ;CONVERT TO BINARY
  180.     STA    CCMIN        ;STUFF IT HERE FOR BYE5XX TO USE
  181.     LDA    SEC10è    MOV    H,A
  182.     LDA    SEC01
  183.     ADD    H
  184.     STA    RTCBUF+2    ;SAVE IT
  185.     LDA    YRS10
  186.     MOV    H,A
  187.     LDA    YRS01
  188.     ADD    H
  189.     STA    RTCBUF+4    ;SAVE IT
  190.     LDA    MON10
  191.     MOV    H,A
  192.     LDA    MON01
  193.     ADD    H
  194.     STA    RTCBUF+5    ;SAVE....
  195.     LDA    DAY10
  196.     MOV    H,A
  197.     LDA    DAY01
  198.     ADD    H
  199.     STA    RTCBUF+6    ;SAVE....
  200.     MVI    A,CENTURY    ;GET CENTURY VALUE (19XX)
  201.     STA    RTCBUF+3    ;SAVE....
  202.       RET              ;WHEW....
  203.      ENDIF
  204. ;
  205. ;
  206. ;-----------------------------------------------------------------------
  207.