home *** CD-ROM | disk | FTP | other *** search
- program SpoolerDemo;
-
- uses Crt,Dos,Spooler;
-
- const NUL = #00;
- ESC = #27;
-
- var SStatus : word;
- k,
- e : char;
- Queue : QueueType;
- s : string;
-
- { ------------------------------------------------------------- SpoolerReport }
- procedure SpoolerReport(DosErrorOnly : boolean);
-
- begin
- SStatus := SpoolerStatus;
- if not DosErrorOnly then LowVideo; write('Stato dello Spooler: ');
- case SStatus of
- SPOOLER_INSTALLED : if not DosErrorOnly then
- begin
- HighVideo; writeln('INSTALLATO');
- writeln;
- end;
- SPOOLER_NOT_INSTALLED : if not DosErrorOnly then
- begin
- HighVideo; writeln('NON INSTALLATO');
- writeln;
- LowVideo; write('Dai il comando: ');
- HighVideo; write('PRINT /D:PRN /Q:32');
- LowVideo; writeln(' (da DOS).');
- writeln;
- end;
- SPOOLER_CANNOT_BE_INSTALLED : if not DosErrorOnly then
- begin
- HighVideo; write('NON INSTALLATO');
- LowVideo; write(' e ');
- HighVideo; writeln('NON INSTALLABILE');
- writeln;
- end;
- else begin
- LowVideo; write('Probabile ');
- HighVideo; writeln('ERRORE MS-DOS ',SStatus);
- writeln;
- end;
- end;
- end;
-
- { -------------------------------------------------------------------- Banner }
- procedure Banner;
-
- begin
- DirectVideo := false;
- ClrScr;
-
- LowVideo; write('Test della ');
- HighVideo; write('SPOOLER UNIT');
- LowVideo; write(' ver. ');
- HighVideo; write('1.0');
- LowVideo; write(' del ');
- HighVideo; write('21/04/90');
-
- writeln; writeln;
- end;
-
- { ------------------------------------------------------------------- WaitKey }
- function WaitKey(prompt : string; var extkey : char) : char;
-
- begin
- LowVideo; write(prompt);
- k := readkey;
- if (k=NUL) then extkey := readkey;
- writeln;
- WaitKey := k;
- end;
-
- { ---------------------------------------------------------- DisplayQueueList }
- procedure DisplayQueueList;
-
- var i,
- c : byte;
-
- begin
- i := 1;
- c := 0;
- writeln;
- while ((length(Queue[i])<>0) and (i<=MAX_SPOOLER_ENTRY)) do
- begin
- HighVideo; write(Queue[i]);
- LowVideo; gotoxy(65,wherey); if (i=1) then writeln(' è in stampa.')
- else writeln(' è in coda.');
- inc(i);
- inc(c);
- end;
- if (c=0) then
- begin
- HighVideo; writeln('La coda è vuota.');
- end;
- writeln;
- end;
-
- { -------------------------------------------------------------- SubmitReport }
- procedure SubmitReport;
-
- begin
- case SpoolerResult of
- 0 :
- begin
- ListQueue(Queue);
- DisplayQueueList;
- end;
- QUEUE_FULL :
- begin
- k := WaitKey('CODA PIENA, premi un tasto per vedere i files in coda.',e);
- DisplayQueueList;
- end;
- else
- begin
- str(SpoolerResult,s);
- k := WaitKey('ERRORE SCONOSCIUTO ('+s+'), premi un tasto.',e);
- end;
- end;
- end;
-
- { ============================================================== SPOOLER TEST }
- begin
- Banner;
- SpoolerReport(false);
- if (SStatus<>SPOOLER_INSTALLED) then halt(1);
-
- k := WaitKey('SPEGNI o metti in LOCAL la STAMPANTE e premi un tasto.',e);
-
- ClrScr;
-
- SubmitFileS('SPOOL*.*',Queue);
- SubmitReport;
-
- k := WaitKey('Premi un tasto che CANCELLO SPOOLER.PAS (dalla coda).',e);
-
- CancelFiles('SPOOLER.PAS');
- ListQueue(Queue);
- DisplayQueueList;
-
- k := WaitKey('Premi un tasto che CANCELLO TUTTI i FILES (dalla coda).',e);
-
- CancelAllFiles;
- ListQueue(Queue);
- DisplayQueueList;
-
- k := WaitKey('Se vuoi STAMPARE SPOOLER.DOC ACCENDI e METTI ON LINE la STAMPANTE o premi ESC.',e);
-
- if (k<>ESC) then
- begin
- SubmitFiles('SPOOLER.PAS',Queue);
- SubmitReport;
- k := WaitKey('Premi un tasto.',e);
- end;
-
- ClrScr;
- LowVideo; write('Thank you for using ');
- HighVideo; write('SPOOLER UNIT');
- LowVideo; writeln('.');
- writeln;
- end.