home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / assemblr / library / nor_asm / dskpat30.asm < prev    next >
Assembly Source File  |  1989-06-09  |  2KB  |  70 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.     PUBLIC    PROMPT_LINE_NO, EDITOR_PROMPT
  32. PROMPT_LINE_NO        DB    21
  33. EDITOR_PROMPT        DB    'Press function key, or enter'
  34.             DB    ' character or hex byte: ',0
  35.  
  36. .DATA?
  37.  
  38.     PUBLIC    SECTOR
  39. ;-----------------------------------------------;
  40. ; The entire sector (up to 8192 bytes) is    ;
  41. ; stored in this part of memory.        ;
  42. ;-----------------------------------------------;
  43. SECTOR    DB    8192 DUP (?)
  44.  
  45. .CODE
  46.  
  47.     EXTRN    CLEAR_SCREEN:PROC, READ_SECTOR:PROC
  48.     EXTRN    INIT_SEC_DISP:PROC, WRITE_HEADER:PROC
  49.     EXTRN    WRITE_PROMPT_LINE:PROC, DISPATCHER:PROC
  50.     EXTRN    INIT_WRITE_CHAR:PROC
  51. DISK_PATCH    PROC
  52.     MOV    AX,DGROUP        ;Put data segment into AX
  53.     MOV    DS,AX            ;Set DS to point to data
  54.  
  55.     CALL    INIT_WRITE_CHAR
  56.     CALL    CLEAR_SCREEN
  57.     CALL    WRITE_HEADER
  58.     CALL    READ_SECTOR
  59.     CALL    INIT_SEC_DISP
  60.     LEA    DX,EDITOR_PROMPT
  61.     CALL    WRITE_PROMPT_LINE
  62.     CALL    DISPATCHER
  63.  
  64.     MOV    AH,4Ch            ;Return to DOS
  65.     INT    21h
  66. DISK_PATCH    ENDP
  67.  
  68.  
  69.     END    DISK_PATCH
  70.