home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / basic / library / qb_pds / asmmod / fixcsr.asm < prev    next >
Encoding:
Assembly Source File  |  1986-07-19  |  2.0 KB  |  42 lines

  1.         title FIXCSR.ASM: A LINKABLE ROUTINE TO FIX THE CURSOR POSITION.
  2.         ;THIS ROUTINE IS PASSED A DUMMY INTEGER VARIABLE AND RETURNS THE
  3.         ;CURRENT CURSOR ROW AND COLUMN POSITION BY MEANS OF A BIOS CALL.
  4.         ;THIS ROUTINE IS NECESSARY WHEN USING MACHINE LANGUAGE OR DOS
  5.         ;FUNCTIONS WHICH PRINT TO THE SCREEN, BECAUSE QUICK BASIC LOSES
  6.         ;TRACK OF WHERE THE CURSOR IS.  THIS ROUTINE CAN BE USED WITH A
  7.         ;LOCATE FUNCTION TO TELL QB TO POSITION THE CURSOR TO WHERE DOS
  8.         ;KNOWS IT ALREADY IS.  ON RETURN, THE INTEGER VARIABLE CONTAINS THE
  9.         ;ROW IN THE LOW ORDER BYTE, AND THE COLUMN IN THE HIGH ORDER BYTE.
  10.         ;
  11.         ;WRITTEN BY BRUCE W. TONKIN ON 12-16-85.  COPYRIGHT, 1985, BRUCE W.
  12.         ;TONKIN.  YOU MAY USE THIS ROUTINE WITH OR WITHOUT ATTRIBUTION.
  13.         ;THIS ROUTINE WAS WRITTEN USING IBM MACRO-ASSEMBLER VERSION 1.0
  14.         ;FOR USE WITH MY WORD! (REGISTERED TRADEMARK).
  15.  
  16. DATA     SEGMENT WORD PUBLIC 'DATA'
  17. STORAGE  DW   16
  18. DATA     ENDS
  19. DGROUP   GROUP     DATA
  20. CODE     SEGMENT BYTE PUBLIC 'CODE'
  21.          ASSUME CS:CODE, DS:DGROUP
  22.          PUBLIC FIXCSR
  23. FIXCSR   PROC FAR
  24.          PUSH BP             ;SAVE BASE POINTER
  25.          MOV  BP,SP          ;SET UP TO ADDRESS OFF OF BP
  26.          MOV  BX,[BP]+6      ;GET THE ADDRESS OF THE PARAMETER
  27.          MOV  STORAGE,BX     ;SAVE ADDRESS OF VARIABLE
  28.          MOV  BX,0           ;SET UP FOR PAGE ZERO
  29.          MOV  AH,3           ;BIOS FUNCTION CALL FOR READING CURSOR POSITION
  30.          PUSH DS
  31.          INT  010H           ;INTERRUPT 10 HEX=16 DECIMAL
  32.          MOV  BX,STORAGE     ;BX NOW POINTS TO VARIABLE AGAIN
  33.          MOV  [BX],DX        ;DH,DL POINT TO ROW AND COLUMN POSITION
  34.                              ;AND VALUES ARE STORED IN VARIABLE FOR RETURN
  35.          POP  DS
  36.          POP  BP             ;RESTORE BASE POINTER
  37.          RET  2              ;RETURN AND REMOVE
  38. ONE PARAMETER FROM STACK
  39. FIXCSR   ENDP
  40. CODE     ENDS
  41.          END
  42.