PAGE ,132 ; SUMMASKETCH DRIVER TESTER ; BY PATRICK SWAYNE 31-JAN-90 ; COPYRIGHT 1990 BY PATRICK SWAYNE. ALL RIGHTS RESERVED. CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE ORG 100H START: MOV DX,OFFSET SIGNON MOV AH,9 INT 21H ;PRINT SIGN-ON MOV AX,0 MOV DS,AX MOV SI,79H*4 ;POINT TO ADI INTERRUPT LDS SI,DWORD PTR [SI] ;GET VECTOR OR SI,SI ;IS VECTOR ZERO? JZ NOADI ;DRIVER NOT LOADED MOV SI,104H ;POINT TO POSSIBLE SIGNATURE MOV DI,OFFSET SIG MOV CX,5 REPZ CMPSW ;TEST FOR SIGNATURE JZ GOTADI ;WE HAVE DRIVER NOADI: PUSH CS POP DS MOV DX,OFFSET NOAMSG MOV AH,9 INT 21H ;ELSE, SAY "NO DRIVER" INT 20H GOTADI: PUSH CS POP DS MOV AX,1 INT 79H ;TRY TO INITIALIZE DRIVER OR AX,AX ;TEST RESULT JZ BADADI ;DRIVER IS BAD MOV DX,OFFSET OKMSG MOV AH,9 INT 21H ;ELSE, SAY "DRIVER OK" INT 20H BADADI: OR BH,BH ;ABLE TO COMMUNICATE? JNZ COMOK ;YES MOV DX,OFFSET NOCOM MOV AH,9 INT 21H ;ELSE, SAY "CAN'T COMMUNICATE" INT 20H COMOK: MOV DX,OFFSET BADMSG MOV AH,9 INT 21H ;SAY "TABLET BAD" TEST BL,1 ;TEST ANALOG CIRCUIT CALL PASSFL ;SHOW RESULT MOV DX,OFFSET DIGMSG MOV AH,9 INT 21H ;DIGITAL TEST MSG TEST BL,4 ;TEST DIGITAL CIRCUIT CALL PASSFL ;SHOW RESULT MOV DX,OFFSET CURMSG MOV AH,9 INT 21H ;CURSOR TEST MSG TEST BL,2 ;TEST CURSOR CALL PASSFL ;SHOW RESULT INT 20H ;EXIT PASSFL: JZ FAILED ;TEST FAILED MOV DX,OFFSET PASS JMP SHORT DTMSG FAILED: MOV DX,OFFSET FAIL DTMSG: MOV AH,9 INT 21H RET SIG DB 'ADISUM 1.0' ;SIGNATURE SIGNON DB 13,10,'SummaSketch ADI driver and tablet tester, v. 1.0' DB 13,10,10,'$' NOAMSG DB 'ADISUM is not loaded.',13,10,'$' OKMSG DB 'SummaSketch tablet tests ok.',13,10,'$' NOCOM DB 'Unable to communicate with tablet.',13,10,'$' BADMSG DB 'SummaSketch tablet did not initialize properly.',13,10,10 ANMSG DB 'Analog circuitry test: $' CURMSG DB 'Cursor/stylus operation: $' DIGMSG DB 'Digital circuitry test: $' PASS DB 'Passed.',13,10,'$' FAIL DB 'Failed.',13,10,'$' CODE ENDS END START