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.     MVI     A,SLASH
  58.     CALL    COUT
  59.  
  60. YR10:    MVI     A,60            ;ASK FOR DECADE YEAR
  61.     CALL    READ
  62.  
  63. YR1:    MVI     A,59        ;ASK FOR UNIT YEAR
  64.     CALL    READ
  65.     
  66.         CALL    PRCSP
  67.  
  68.         MVI     A,SPACE
  69.         CALL    COUT
  70.  
  71. HR10:   MVI     A,53            ;ASK FOR DECADE HOUR
  72.     LXI    B,03H        ;NOT OVER 2
  73.     CALL     READ
  74.  
  75. HR1:    MVI     A,52            ;ASK FOR UNIT HOUR
  76.     CALL    READ
  77.  
  78.     MVI    A,COLON
  79.     CALL     COUT
  80.  
  81. MIN10:    MVI     A,51            ;ASK FOR DECADE MINUTES
  82.     LXI    B,07H
  83.     CALL    READ
  84.  
  85. MIN1:    MVI     A,50        ;ASK FOR UNIT MINUTES
  86.     CALL     READ
  87.  
  88.     MVI    A,COLON
  89.     CALL    COUT
  90.  
  91. SEC10:    MVI     A,49            ;ASK FOR DECADE SECONDS
  92.     LXI    B,07H
  93.     CALL    READ
  94.  
  95.  
  96. SEC1:    MVI     A,48        ;ASK FOR UNIT SECONDS
  97.     CALL    READ
  98.  
  99.     MVI    A,00        ;RELEASE CLOCK HOLD
  100.     OUT    CLKè    RET
  101.  
  102. READ:   OUT     CLK
  103.         NOP
  104.         NOP
  105.         IN      CLK+1           
  106.     ANA    C    ;LEGAL NUMBER?
  107.     ADI    '0'    ;CONVERT TO ASCII
  108.     CALL     COUT
  109.     LXI    B,0FH
  110.     RET
  111.     
  112. PRCSP:    MVI    A,COMMA     ;PRINT COMMA
  113.     CALL    COUT
  114.     MVI    A,SPACE        ;PRINT SPACE
  115.         CALL    COUT
  116.     RET
  117.  
  118.  
  119. *  PRINT CHAR IN REG A ON CONSOLE
  120.  
  121. COUT:    PUSH    H    ; SAVE REGS
  122.     PUSH    D
  123.     PUSH    B
  124.     MOV    E,A
  125.     MVI    C,2    ; CONSOLE OUTPUT
  126.     CALL    BDOS
  127.     POP    B    ; RESTORE REGS
  128.     POP    D
  129.     POP    H
  130.     RET
  131.  
  132. DELAY:  DCR    C
  133.     JNZ    DELAY
  134.     RET
  135.  
  136.  
  137.     END
  138.