home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol147 / te.asm < prev    next >
Encoding:
Assembly Source File  |  1985-02-10  |  2.6 KB  |  138 lines

  1. ****************************************************************************
  2.  
  3. *         Read the Calendar/clock on the TimEPROMmer Board                 *  
  4. *       from Optronics Technology, POB 81, Pittsford, NY 14534             *
  5. *       by D. Mc Lanahan, POB 17, Marlow, NH 03456, 1 Feb 1983              *
  6. *                Numeric date group (as DD/MM/YY)               *   
  7.  
  8. ****************************************************************************
  9.  
  10.  
  11. CPM$BASE    EQU    0        ; BASE ADDRESS OF CP/M SYSTEM
  12.     CLK    EQU    40        ; BASE ADDRESS OF TP-100 CLOCK
  13.     BDOS    EQU    CPM$BASE+5    ; ADDRESS OF BDOS ENTRY
  14.     CR    EQU    0DH
  15.     LF    EQU    0AH
  16.         SPACE   EQU     20H
  17.         PERIOD  EQU     2EH
  18.         COMMA   EQU     2CH
  19.     COLON    EQU    3AH
  20.     SLASH    EQU    2FH
  21.     DLYL    EQU    14
  22.  
  23.     ORG    CPM$BASE+100H
  24.  
  25.     MVI     A,10H
  26.     OUT    CLK    ;OUTPUT HOLD BIT
  27.     MVI    A,00            
  28.     CALL    COUT
  29.     MVI    A,00H            
  30.     CALL    COUT
  31.         LXI     B,DLYL
  32.         CALL    DELAY
  33.         MVI     A,48
  34.     OUT    CLK        ;OUTPUT HOLD AND READ BITS
  35.     NOP
  36.     NOP
  37.         
  38.  
  39. MON10:  MVI     A,58            ;ASK FOR DECADE MONTH
  40.     LXI    B,01H        ;NOT OVER 1
  41.     CALL     READ
  42.  
  43.  
  44. MON1:   MVI     A,57        ;ASK FOR UNIT MONTH
  45.     CALL     READ
  46.  
  47.     MVI    A,SLASH
  48.     CALL     COUT
  49.  
  50. DA10:   MVI     A,56            ;ASK FOR DECADE DATE
  51.     LXI    B,03H        ;NOT OVER 3
  52.     CALL     READ
  53.  
  54. DA1:    MVI     A,55            ;ASK FOR UNIT DATE
  55.     LXI    B,0FH
  56.     CALL    READ
  57. è
  58.     MVI     A,SLASH
  59.     CALL    COUT
  60.  
  61. YR10:    MVI     A,60            ;ASK FOR DECADE YEAR
  62.     CALL    READ
  63.  
  64. YR1:    MVI     A,59        ;ASK FOR UNIT YEAR
  65.     CALL    READ
  66.     
  67.         CALL    PRCSP
  68.  
  69.         MVI     A,SPACE
  70.         CALL    COUT
  71.  
  72. HR10:   MVI     A,53            ;ASK FOR DECADE HOUR
  73.     LXI    B,03H        ;NOT OVER 2
  74.     CALL     READ
  75.  
  76. HR1:    MVI     A,52            ;ASK FOR UNIT HOUR
  77.     CALL    READ
  78.  
  79.     MVI    A,COLON
  80.     CALL     COUT
  81.  
  82. MIN10:    MVI     A,51            ;ASK FOR DECADE MINUTES
  83.     LXI    B,07H
  84.     CALL    READ
  85.  
  86. MIN1:    MVI     A,50        ;ASK FOR UNIT MINUTES
  87.     CALL     READ
  88.  
  89.     MVI    A,COLON
  90.     CALL    COUT
  91.  
  92. SEC10:    MVI     A,49            ;ASK FOR DECADE SECONDS
  93.     LXI    B,07H
  94.     CALL    READ
  95.  
  96.  
  97. SEC1:    MVI     A,48        ;ASK FOR UNIT SECONDS
  98.     CALL    READ
  99.  
  100.     MVI    A,00        ;RELEASE CLOCK HOLD
  101.     OUT    CLK
  102. è    RET
  103.  
  104. READ:   OUT     CLK
  105.         NOP
  106.         NOP
  107.         IN      CLK+1           
  108.     ANA    C    ;LEGAL NUMBER?
  109.     ADI    '0'    ;CONVERT TO ASCII
  110.     CALL     COUT
  111.     LXI    B,0FH
  112.     RET
  113.     
  114. PRCSP:    MVI    A,COMMA     ;PRINT COMMA
  115.     CALL    COUT
  116.     MVI    A,SPACE        ;PRINT SPACE
  117.         CALL    COUT
  118.     RET
  119.  
  120.  
  121. *  PRINT CHAR IN REG A ON CONSOLE
  122.  
  123. COUT:    PUSH    H    ; SAVE REGS
  124.     PUSH    D
  125.     PUSH    B
  126.     MOV    E,A
  127.     MVI    C,2    ; CONSOLE OUTPUT
  128.     CALL    BDOS
  129.     POP    B    ; RESTORE REGS
  130.     POP    D
  131.     POP    H
  132.     RET
  133.  
  134. DELAY:  DCR    C
  135.     JNZ    DELAY
  136.     RET
  137.  
  138.  
  139.     END
  140.