.TITLE DRV11 ; ; HISTORIK: ; DATUM NAMN ORSAK ; 880718 B-E TAPPER URUPPF\RANDE ; 880721 B-E TAPPER EN PARAMETER TILL ; ; L[SER DRV11-KORTET P] ADRESS 167774 ; L[GGER I EN 16-BYTE LOGICAL BUFFER ; ; CALL: ; ; LOGICAL*1 BUFFER(16) ; ; CALL DRV11(BUFFER,INPUT) ; ; INPUT: .WORD ; DRV11:: MOV 2(R5),R2 ;GET BASE ADRESS OF BUFFER MOV 167774,INPUT ;READ DEVICE ; MOV #16,R1 ;NUMBER OF BITS ; MOV #1,R4 ; MOV #-1,R3 ;ALL BITS SET ; AGAIN: CLRB (R2) ;FIRST BIT BIT R4,INPUT ;IF BIT SET BNE NEQUAL ;DON'T BRANCH MOVB R3,(R2) ;FIRST BIT NEQUAL: INC R2 ;PONT TO NEXT ASL R4 ;SHIFT THE BIT LEFT SOB R1,AGAIN ;READY ? IF NO, BRANCH (DEC R1) ; MOV INPUT,@4(R5) ;THE VALUE OF THE INPUT = PARAM 2 ; RETURN ; .END