home *** CD-ROM | disk | FTP | other *** search
- Program SPOOLIT;
-
- { Example program to demonstrate the PRINT spooler interface }
-
- { Define the data structure we need for spooling files }
-
- Uses DOS;
-
- Type
-
- SpoolRecType = Record
- Priority : Byte;
- Filename : Pointer;
- end;
-
- Var
-
- SpoolFile : PathStr;
- SpoolBuffer : Array[1..70] of char;
- SpoolRec : SpoolRecType;
- Regs : Registers;
- SpooledOk : Boolean;
-
- Begin
-
- With Regs do begin
- AX := $100;
- Intr($2F,Regs);
- If AL = 0 then Begin
- WriteLn('PRINT is not loaded.');
- Halt
- end
- end;
-
- { Query user for the name of a file to spool }
-
- Write('Enter the filename to print: ');
- ReadLn(SpoolFile);
-
- If Length(SpoolFile) = 0 then Halt; {Nothing to do, so quit}
-
- FillChar(SpoolBuffer,SizeOf(SpoolBuffer),0);
-
- Move(SpoolFile[1],SpoolBuffer,Length(SpoolFile));
-
- SpoolRec.Priority := 0;
- SpoolRec.Filename := Addr(SpoolBuffer);
-
- { Send the file on its way }
-
- With Regs do Begin
- AX := $101;
- DS := DSeg;
- DX := Ofs(SpoolRec);
- Intr($2F,Regs);
-
- { Isolate the status fo the spool operation }
-
- SpooledOK := Not ((Flags and 1) = 1);
-
- If SpooledOk then
- WriteLn('Your file has been placed in the queue.')
- else
- WriteLn('Could not spool your file, error code is ',AL)
- end
-
- End.