[comp.sys.atari.st] Printer configuration

01659@AECLCR.BITNET (Greg Csullog) (01/09/89)

CONTROL.ACC has the following dialog box to configure the ST for
printing:
                       -------------------
     PRINTER TYPE:      DOT       DAISY 
     COLOR:             B/W       COLOR 
     PIXELS/LINE        1280      960   
     QUALITY            DRAFT     FINAL 
     PRINTER PORT       PRINTER   MODEM 
     PAPER TYPE         FEED      SINGLE
                       -------------------

All choices in the left column have a bit setting of 0, all on the
right have a setting of 1. Therefore, for example, 960 pixels/
line and a single sheet printer would have a register value of
001001 (this is the format used in DESKTOP.INF) or decimal 36. I
wrote the following program to check the value of the printer
configuration register - I tried setting the printer using
CONTROL.ACC and after each setting, ran the program. Everything
checked out, all settings were properly reported.

{***************************************************************}
PROGRAM set_prn ;

VAR
    cfg    : integer;
    result : integer;
    dummy  : integer;

  FUNCTION setprt(VAR config:integer):integer;XBIOS(33);

  BEGIN

     cfg    := -1;           {value of -1 = report status}
     result := setprt(cfg);
     writeln('Status:');
     writeln(result);
     read(dummy);            {wait for keyboard input to quit}

  END.

{***************************************************************}

When I added the following two lines to the program (just before
the request to check status) that is when things got really weird:

     cfg    := $0004;
     result := setprt(cfg);

I should have been able to set the value to 4 and had 4 reported
back in the status request. However, I got 3 as the value if I ran
the code from inside the PASCAL shell. From desktop, or from the
AUTO folder, the status reported back as 2!!!! I cannot figure out
what is going on; anyone have an idea? (for the checks, no desk
accessories were installed).

Thanks to Juergen Lanzki for forwarding a binary to set the printer
for me. Juergen, do you have any idea why my Pascal code is giving me
these strange status reports for the printer configuration?????