document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. ;------------------------------------------------------------------------------------------
  2. ; ASSIGNMENT NO : 7
  3. ; TITLE : WRITE ALP FOR MOUSE INTERFACE
  4. ;------------------------------------------------------------------------------------------
  5.  
  6. PRINT MACRO MSG
  7.  
  8.         LEA DX,MSG
  9.         MOV AH,09H
  10.         INT 21H
  11.  
  12. ENDM
  13.  
  14. DATA SEGMENT
  15.  
  16.   MSGMENU DB    10,13," --------------- : MENU : --------------- "
  17.           DB    10,13," TO SHOW THE MOUSE POINTER -> PRESS \'S\' : "
  18.           DB    10,13," TO HIDW THE MOUSE POINTER -> PRESS \'H\' : "
  19.           DB    10,13," TO SHOW X & Y CO-ORDINATE -> PRESS \'R\' : "
  20.           DB    10,13," TO DRAW A RECLANGLE       -> PRESS \'D\' : "
  21.           DB    10,13," TO EXIT FROM THE MENU     -> PRESS \'Q\' : "
  22.           DB    10,13," TO PRODUCE BEEP                  -> PRESS \'B\' : "        
  23.           DB    10,13," ---------------------------------------- $ "
  24.   MSGCH   DB    10,13," ENTER YOUR CHOICE : $ "
  25.   AXIS    DB    10,13," CO-ORDINATES : $ "
  26.   XAXIS   DB    10,13," X-AXIS : $ "
  27.   YAXIS   DB    10,13," Y-AXIS : $ "
  28.   RECT    DB    10,13," RECTANGLE : $ "
  29.   BEEP    DB    10,13," BEEP WILL BE PRODUCED WHEN MOUSE POINTER IS AT POSITION (0,0) ..! $ "
  30.  
  31.   TEMP    DB    ?
  32.   X       DW    ?
  33.   Y       DW    ?
  34.  
  35. DATA ENDS
  36.  
  37. ASSUME CS:CODE, DS:DATA
  38.  
  39. CODE SEGMENT
  40.  
  41. START :
  42.         MOV AX,DATA
  43.         MOV DS,AX
  44.  
  45.         MOV AX,12H                      ;INITIALISE GRAPHICS MODE
  46.         INT 10H
  47.  
  48. BEGIN :
  49.         PRINT MSGMENU
  50.         PRINT MSGCH
  51.  
  52. NO :
  53.         MOV AH,11H                      ;INTERRUPT TO CHECK STATUS OF KEYBOARD
  54.         INT 16H
  55.         JNZ S1                          ;CLEARED IF PREESED
  56.         JZ NO
  57.  
  58. S1:
  59.         MOV AH,08H
  60.         INT 21H
  61.  
  62.         CMP AL,54H
  63.         JE CH1
  64.  
  65.         CMP AL,"s"
  66.         JE CH1
  67.  
  68.         CMP AL,48H
  69.         JE CH2
  70.  
  71.         CMP AL,"h"
  72.         JE CH2
  73.  
  74.         CMP AL,"Q"
  75.         JE CH3
  76.  
  77.         CMP AL,"q"
  78.         JE CH3
  79.  
  80.         CMP AL,"R"
  81.         JE CH4
  82.  
  83.         CMP AL,"r"
  84.         JE CH4
  85.  
  86.         CMP AL,"D"
  87.         JE CH5
  88.  
  89.         CMP AL,"d"
  90.         JE CH5
  91.  
  92.         CMP AL,"b"
  93.         JE CH6
  94.  
  95.         CMP AL,"B"
  96.         JE CH6
  97.  
  98.  
  99. CH1 :
  100.         CALL C1
  101.         JMP BEGIN
  102.  
  103. CH2 :
  104.         CALL C2
  105.         JMP BEGIN
  106.  
  107. CH3 :
  108.         CALL C3
  109.  
  110.         MOV AH,4CH
  111.         INT 21H
  112.  
  113. CH4 :
  114.         CALL C4
  115.         JMP BEGIN
  116.  
  117. CH5 :   CALL C5
  118.         JMP BEGIN
  119.  
  120. CH6 :   CALL C6
  121.         JMP BEGIN
  122.  
  123. C1 PROC NEAR
  124.  
  125.         MOV AX,01H
  126.         INT 33H
  127.         RET
  128.  
  129. C1 ENDP
  130.  
  131. C2 PROC NEAR
  132.  
  133.         MOV AX,02H
  134.         INT 33H
  135.         RET
  136.  
  137. C2 ENDP
  138.  
  139. C3 PROC NEAR
  140.  
  141.         MOV AX,03H
  142.         INT 10H
  143.         RET
  144.  
  145. C3 ENDP
  146.  
  147. C4 PROC NEAR
  148.  
  149.        MOV AX,03H
  150.        INT 33H
  151.  
  152.        PRINT AXIS
  153.        
  154.        MOV X,CX
  155.        MOV Y,DX
  156.  
  157.        PRINT XAXIS
  158.  
  159.        MOV CX,X
  160.        MOV TEMP,CH
  161.        CALL DISPLAY
  162.        MOV CX,X
  163.        MOV TEMP,CL
  164.        CALL DISPLAY
  165.  
  166.        MOV AX,03H
  167.        INT 33H
  168.  
  169.        MOV X,CX
  170.        MOV Y,DX
  171.  
  172.        PRINT YAXIS
  173.  
  174.        MOV DX,Y
  175.        MOV TEMP,DH
  176.        CALL DISPLAY
  177.        MOV DX,Y
  178.        MOV TEMP,DL
  179.        CALL DISPLAY
  180.        RET
  181.  
  182. C4 ENDP
  183.  
  184. C5 PROC NEAR
  185.  
  186.         PRINT RECT
  187.  
  188.         MOV CX,500
  189.         MOV DX,250
  190.  
  191. LINE1:
  192.         MOV AL,0BH
  193.         MOV AH,0CH
  194.         INT 10H
  195.  
  196.         INC CX
  197.         CMP CX,590
  198.         JNE LINE1
  199.  
  200. LINE2:
  201.         MOV AL,0AH
  202.         MOV AH,0CH
  203.         INT 10H
  204.  
  205.         DEC DX
  206.         CMP DX,190
  207.         JNE LINE2
  208.                
  209. LINE3:
  210.         MOV AL,0EH
  211.         MOV AH,0CH
  212.         INT 10H
  213.  
  214.         DEC CX
  215.         CMP CX,500
  216.         JNE LINE3
  217.  
  218. LINE4:
  219.         MOV AL,0DH
  220.         MOV AH,0CH
  221.         INT 10H
  222.  
  223.         INC DX
  224.         CMP DX,250
  225.         JNE LINE4
  226.  
  227.         RET
  228.  
  229. C5 ENDP
  230.  
  231. C6 PROC NEAR
  232.  
  233.         PRINT BEEP
  234.  
  235. A1:     MOV AH,11H
  236.         INT 16H
  237.         JNZ A4
  238.  
  239.         MOV AX,03H                            ;GET MOUSE CO-ORDINATES
  240.         INT 33H
  241.         CMP CX,0
  242.         JE A2
  243.         JMP A1
  244.  
  245. A2:     CMP DX,0
  246.         JE A3
  247.         JMP A1
  248.  
  249. A3:     CALL C4
  250.         MOV DL,7
  251.         MOV AH,2
  252.         INT 21H
  253.         JMP A1
  254.  
  255. A4:     RET
  256.        
  257. C6 ENDP
  258.  
  259. DISPLAY PROC NEAR
  260.  
  261.         MOV AL,TEMP
  262.         AND AL,0F0H
  263.         MOV CL,04H
  264.         SHR AL,CL
  265.         CMP AL,09H
  266.         JBE L1
  267.         ADD AL,07H
  268.  
  269. L1:
  270.         ADD AL,30H
  271.         MOV DL,AL
  272.         MOV AH,02H
  273.         INT 21H
  274.         MOV AL,TEMP
  275.         AND AL,0FH
  276.         CMP AL,09H
  277.         JBE L2  
  278.         ADD AL,07H
  279.  
  280. L2:
  281.         ADD AL,30H
  282.         MOV DL,AL
  283.         MOV AH,02H
  284.         INT 21H
  285.         RET
  286.  
  287. DISPLAY ENDP
  288.  
  289. CODE ENDS
  290.  
  291. END START
  292.  
  293.  
  294. ;------------------------------------------------------------------------------------------
  295. ; END OF THE PROGRAM
  296. ;------------------------------------------------------------------------------------------
');