home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / sysutl / portpoll.lbr / PORTPOLL.AZM / PORTPOLL.ASM
Encoding:
Assembly Source File  |  1988-04-07  |  1.5 KB  |  103 lines

  1. ;    THIS PROGRAM WILL POLL A PORT SELECTED FROM THE KEYBOARD.
  2. ;     A DELAY IS PROVIDED BETWEEN POLLINGS, BECAUSE WITHOUT IT
  3. ;    THE DISPLAY UPDATES TOO FAST TO KEEP UP WITH.
  4. DELAY    EQU    0FFFFH
  5.     ORG    0100H
  6. CS1:    LXI    D,STR2        ; CLEAR SCREEN STRING ADDRESS
  7.     MVI    C,9
  8.     CALL    5
  9.     LXI    D,STR1        ; 'ENTER PORT NUMBER'
  10.     MVI    C,9
  11.     CALL    5
  12. POLL1:    MVI    C,06        ;CONSOLE IN DIRECT
  13.     MVI    E,0FFH
  14.     CALL    5
  15.     STA    TEMP
  16.     SUI    30H
  17.     JM    POLL1        ;CONTROL CHARACTER
  18.     CPI    0AH
  19.     JM     STORE1
  20.     SUI    7
  21.     JM    POLL1
  22.     CPI    10H
  23.     JP    POLL1
  24. STORE1: STA    (GET+1)
  25.     LDA    TEMP
  26.     MOV    E,A
  27.     MVI    C,2
  28.     CALL    0005
  29. POLL2:    MVI    C,06
  30.     MVI    E,0FFH
  31.     CALL    5
  32.     STA    TEMP
  33.     CPI    0DH        ; <CR>
  34.     JZ    DOIT
  35.     CPI    08        ; <BS>
  36.     JZ    CS1
  37.     SUI    30H
  38.     JM    POLL2
  39.     CPI    0AH
  40.     JM    STORE2
  41.     SUI    7
  42.     JM    POLL2
  43.     CPI    10H
  44.     JP    POLL2
  45. STORE2:    MOV    C,A
  46.     LDA    (GET+1)
  47.     ADD    A
  48.     ADD    A
  49.     ADD    A
  50.     ADD    A        ; SHIFT LEFT 4 PLACES
  51.     ORA    C
  52.     STA    (GET+1)
  53.     LDA    TEMP
  54.     MOV    E,A
  55.     MVI    C,2
  56.     CALL    5
  57. DOIT:    MVI    E,20H
  58.     MVI    C,02
  59.     CALL    5
  60.     LDA    (GET+1)
  61. BACK:    CALL    DSPLY
  62.     MVI    C,02
  63.     MVI    E,0DH        ; <CR>
  64.     CALL    5
  65.     MVI    C,02
  66.     MVI    E,0AH
  67.     CALL    5        ; <LF>
  68.     LXI    H,DELAY
  69. LOOP1:    DCR    L
  70.     JNZ    LOOP1
  71.     DCR    H
  72.     JNZ    LOOP1
  73. GET:    IN    00        ;PORT WILL BE SELF MODIFIED
  74.     JMP    BACK
  75. ;**********************************************************
  76. DSPLY:    PUSH    PSW
  77.     RAR
  78.     RAR
  79.     RAR
  80.     RAR
  81.     ANI    0FH
  82.     ADI    30H
  83.     CPI    3AH
  84.     JM    PUT1
  85.     ADI    7
  86. PUT1:    MOV    E,A
  87.     MVI    C,2
  88.     CALL    5
  89.     POP    PSW
  90.     ANI    0FH
  91.     ADI    30H
  92.     CPI    3AH
  93.     JM    PUT2
  94.     ADI    7
  95. PUT2:    MOV    E,A
  96.     MVI    C,2
  97.     CALL    5
  98.     RET
  99. STR1:    DB     'ENTER PORT ADDRESS TO BE POLLED? $'
  100. TEMP:    DS 0
  101. STR2:    DB 26,'$'
  102.     END
  103.