home *** CD-ROM | disk | FTP | other *** search
- ; THIS PROGRAM WILL POLL A PORT SELECTED FROM THE KEYBOARD.
- ; A DELAY IS PROVIDED BETWEEN POLLINGS, BECAUSE WITHOUT IT
- ; THE DISPLAY UPDATES TOO FAST TO KEEP UP WITH.
- DELAY EQU 0FFFFH
- ORG 0100H
- CS1: LXI D,STR2 ; CLEAR SCREEN STRING ADDRESS
- MVI C,9
- CALL 5
- LXI D,STR1 ; 'ENTER PORT NUMBER'
- MVI C,9
- CALL 5
- POLL1: MVI C,06 ;CONSOLE IN DIRECT
- MVI E,0FFH
- CALL 5
- STA TEMP
- SUI 30H
- JM POLL1 ;CONTROL CHARACTER
- CPI 0AH
- JM STORE1
- SUI 7
- JM POLL1
- CPI 10H
- JP POLL1
- STORE1: STA (GET+1)
- LDA TEMP
- MOV E,A
- MVI C,2
- CALL 0005
- POLL2: MVI C,06
- MVI E,0FFH
- CALL 5
- STA TEMP
- CPI 0DH ; <CR>
- JZ DOIT
- CPI 08 ; <BS>
- JZ CS1
- SUI 30H
- JM POLL2
- CPI 0AH
- JM STORE2
- SUI 7
- JM POLL2
- CPI 10H
- JP POLL2
- STORE2: MOV C,A
- LDA (GET+1)
- ADD A
- ADD A
- ADD A
- ADD A ; SHIFT LEFT 4 PLACES
- ORA C
- STA (GET+1)
- LDA TEMP
- MOV E,A
- MVI C,2
- CALL 5
- DOIT: MVI E,20H
- MVI C,02
- CALL 5
- LDA (GET+1)
- BACK: CALL DSPLY
- MVI C,02
- MVI E,0DH ; <CR>
- CALL 5
- MVI C,02
- MVI E,0AH
- CALL 5 ; <LF>
- LXI H,DELAY
- LOOP1: DCR L
- JNZ LOOP1
- DCR H
- JNZ LOOP1
- GET: IN 00 ;PORT WILL BE SELF MODIFIED
- JMP BACK
- ;**********************************************************
- DSPLY: PUSH PSW
- RAR
- RAR
- RAR
- RAR
- ANI 0FH
- ADI 30H
- CPI 3AH
- JM PUT1
- ADI 7
- PUT1: MOV E,A
- MVI C,2
- CALL 5
- POP PSW
- ANI 0FH
- ADI 30H
- CPI 3AH
- JM PUT2
- ADI 7
- PUT2: MOV E,A
- MVI C,2
- CALL 5
- RET
- STR1: DB 'ENTER PORT ADDRESS TO BE POLLED? $'
- TEMP: DS 0
- STR2: DB 26,'$'
- END