home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / assemblr / asm / wasm / ptest.asm < prev    next >
Assembly Source File  |  1987-05-05  |  2KB  |  49 lines

  1.  
  2.  Title 'Wolfware Assembler Sample Program', 'Pascal Printer Function'
  3.  
  4. ;=============================================================================
  5. ; Turbo Pascal Printer Function
  6. ;
  7. ; This program is a machine language printer testing routine for Turbo Pascal.
  8. ; This routine creates a function that returns true if the first parallel
  9. ; printer does not exist or is not ready. Assuming that the file is assembled
  10. ; to PRINT.COM, the routine should be declared in a Pascal program in the
  11. ; following manner:
  12. ;
  13. ;   FUNCTION PRINTER_ERROR:BOOLEAN;
  14. ;     EXTERNAL 'PRINT.COM';
  15. ;
  16. ;
  17. ; Having done so, PRINTER may be used as a normal Pascal function.  Example:
  18. ;
  19. ;   IF PRINTER_ERROR THEN
  20. ;     WRITELN ('Printer is not ready');
  21. ;
  22. ; Uses the printer BIOS routine.  Assumes that  all relevant registers will be
  23. ; saved (as they should be with an IBM or truly compatible BIOS).
  24.  
  25.  Proc Near
  26.  
  27. ;--- equates
  28.  
  29. Prn_Number Equ 0         ;parallel printer number
  30. Error_Bits Equ 00101001b ;printer error bits (should not be returned)
  31. Ready_Bits Equ 10010000b ;printer ready bits (should be returned)
  32.  
  33. ;--- get printer status
  34.  
  35.  Mov Ah, 2              ;function number
  36.  Mov Dx, Prn_Number     ;printer number
  37.  Int 17h                ;execute
  38.  
  39. ;--- test printer status
  40.  
  41.  Mov Al, Ah
  42.  And Al, Error_Bits     ;mask out error bits
  43.  And Ah, Ready_Bits     ;mask out ready bits
  44.  Xor Ah, Ready_Bits     ;set missing ready bits
  45.  Or Al, Ah              ;combine all error bits and set ZF flag
  46.  Ret
  47.  Endp                   ;main program
  48.  
  49.