home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / assemblr / library / sampler1 / ibm2oki.asm < prev    next >
Assembly Source File  |  1985-01-08  |  2KB  |  341 lines

  1. ;*****************************************************************************;
  2. ;*    This program traps the printer output interrupt (17H), and         *;
  3. ;*    translates outgoing IBM-style line drawing characters to codes         *;
  4. ;*    compatible with the Okidata 84p.                     *;
  5. ;*                                         *;
  6. ;*    Since the 84p doesn't fully implement all double-line characters,    *;
  7. ;*    we translate everything into single-line graphics.  Other graphics   *;
  8. ;*    characters (hearts, happy faces, etc.) are not supported in this     *;
  9. ;*    program.                                 *;
  10. ;*                                         *;
  11. ;*    The utility should be disabled prior to running any program (such as *;
  12. ;*    Lotus 1-2-3) that depends on the okidata graphics character set or   *;
  13. ;*    uses the Okigraph graphics printing facility.                 *;
  14. ;*                                         *;
  15. ;*    USE:    Giving the command "IBM2OKI" for the first time will install *;
  16. ;*    the conversion utility and produce the report "IBM2OKI installed and *;
  17. ;*    running."  Thereafter, giving the "IBM2OKI" command will toggle the  *;
  18. ;*    translation feature off and on, reporting "IBM2OKI temporarily       *;
  19. ;*    deactivated." or "IBM2OKI reactivated."                              *;
  20. ;*                                         *;
  21. ;*    Copyright (C) 1983 Jeffrey P. Garbers.        All rights reserved  *;
  22. ;*****************************************************************************;
  23.  
  24. cseg        segment para public 'CODE'
  25.     assume    cs:cseg, ds:cseg
  26.  
  27. ;    The printer interrupt number is defined by the PC to be 17H.
  28.  
  29. printer_interrupt    equ    17h
  30.  
  31. ;    The signature word is an arbitrary 16-bit number that we'll use in
  32. ;    checking to see if the utility has already been installed.
  33.  
  34. signature        equ    0944h
  35.  
  36. ;    DOS has a handy macro that calls DOS for service.  Its first argument
  37. ;    is a function code number.  The second one (if it's there) is assumed
  38. ;    to be an offset that needs to be loaded into DX
  39.  
  40. DOS    macro    fcn_code, location_arg
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.