home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / C-ASM_VI.ARJ / PROGASM.ZIP / PROG022P.ASM < prev    next >
Assembly Source File  |  1988-05-25  |  977b  |  38 lines

  1.  
  2. ;************************************************************************
  3. ; Get current number of rows and columns                *
  4. ; Entry:Rows - Pointer to number of rows                *
  5. ;    Cols - Pointer to number of columns                *
  6. ; Exit: Values at the pointer will be set                *
  7. ;************************************************************************
  8.  
  9. row_seg        EQU    [BP+12]
  10. row_offset    EQU    [BP+10]
  11. col_seg        EQU    [BP+8]
  12. col_offset    EQU    [BP+6]
  13.  
  14.     PUBLIC    Get_Rows_n_Cols
  15.  
  16. Get_Rows_n_Cols PROC FAR
  17.     PUSH    BP
  18.     MOV    BP,SP
  19.     PUSH    DS
  20.     PUSH    ES            ;Preserve ES
  21.     XOR    AX,AX            ;Set ES to segment zero
  22.     MOV    ES,AX
  23.     MOV    DL,ES:[BIOS_Rows]    ;Fetch current rows
  24.     INC    DL
  25.     MOV    DS,row_seg
  26.     MOV    BX,row_offset         ;Fetch pointer
  27.     XOR    DH,DH            ;Clear upper half of DX
  28.     MOV    [BX],DX         ;Save number of rows
  29.     MOV    CX,ES:[BIOS_Columns]    ;Fetch current columns
  30.     MOV    DS,col_seg
  31.     MOV    BX,col_offset         ;Fetch pointer
  32.     MOV    [BX],CX         ;Save number of columns
  33.     POP    ES
  34.     POP    DS
  35.     POP    BP
  36.     RET    8
  37. Get_Rows_n_Cols   ENDP
  38.