home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / assemblr / library / nor_asm / dskpat17.asm < prev    next >
Assembly Source File  |  1989-05-16  |  1KB  |  60 lines

  1. DOSSEG
  2. .MODEL    SMALL
  3.  
  4. .STACK
  5.  
  6. .DATA
  7.  
  8.     PUBLIC    SECTOR_OFFSET
  9. ;-----------------------------------------------;
  10. ; SECTOR_OFFSET is the offset of the half-    ;
  11. ; sector display into the full sector.  It must    ;
  12. ; be a multiple of 16, and not greater than 256    ;
  13. ;-----------------------------------------------;
  14. SECTOR_OFFSET    DW    0
  15.  
  16.     PUBLIC    CURRENT_SECTOR_NO, DISK_DRIVE_NO
  17. CURRENT_SECTOR_NO    DW    0        ;Initially sector 0
  18. DISK_DRIVE_NO        DB    0        ;Initially Drive A:
  19.  
  20.     PUBLIC    LINES_BEFORE_SECTOR, HEADER_LINE_NO
  21.     PUBLIC    HEADER_PART_1, HEADER_PART_2
  22. ;-----------------------------------------------;
  23. ; LINES_BEFORE_SECTOR is the number of lines    ;
  24. ; at the top of the screen before the half-    ;
  25. ; sector display.                ;
  26. ;-----------------------------------------------;
  27. LINES_BEFORE_SECTOR    DB    2
  28. HEADER_LINE_NO        DB    0
  29. HEADER_PART_1        DB    'Disk ',0
  30. HEADER_PART_2        DB    '         Sector ',0
  31.  
  32. .DATA?
  33.  
  34.     PUBLIC    SECTOR
  35. ;-----------------------------------------------;
  36. ; The entire sector (up to 8192 bytes) is    ;
  37. ; stored in this part of memory.        ;
  38. ;-----------------------------------------------;
  39. SECTOR    DB    8192 DUP (?)
  40.  
  41. .CODE
  42.  
  43.     EXTRN    CLEAR_SCREEN:PROC, READ_SECTOR:PROC
  44.     EXTRN    INIT_SEC_DISP:PROC, WRITE_HEADER:PROC
  45. DISK_PATCH    PROC
  46.     MOV    AX,DGROUP        ;Put data segment into AX
  47.     MOV    DS,AX            ;Set DS to point to data
  48.  
  49.     CALL    CLEAR_SCREEN
  50.     CALL    WRITE_HEADER
  51.     CALL    READ_SECTOR
  52.     CALL    INIT_SEC_DISP
  53.  
  54.     MOV    AH,4Ch            ;Return to DOS
  55.     INT    21h
  56. DISK_PATCH    ENDP
  57.  
  58.  
  59.     END    DISK_PATCH
  60.