home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
MBUG
/
MBUG039.ARC
/
DESPOOL.GDE
< prev
next >
Wrap
Text File
|
1979-12-31
|
15KB
|
321 lines
DESPOOL BACKGROUND PRINT UTILITY OPERATOR'S GUIDE
1. GENERAL
Mos⌠á largσá compute≥á system≤á perforφá ßá functioεá calleΣ
printe≥á "spooling"¼á wherσ printe≥ outpu⌠ i≤ directeΣ t∩ ßá disδ
filσá rathe≥ thaε thσ physica∞ printer,leadinτ t∩ thσ notioε tha⌠
thσá streaφ oµ outpu⌠ character≤ i≤ wounΣ arounΣá ßá spool«á Thσ
spooleΣá printe≥á file≤ arσ theε writteε t∩ thσ physica∞á printe≥
devicσ a⌠ ß late≥ timσ iε "backgrounΣ modeó whilσ thσ compute≥ i≤
performinτ somσ othe≥ function«á Thi≤ backgrounΣ prin⌠á functioε
caεá bσá though⌠ oµ a≤ thσ conversσ oµ spooling¼á resultinτ iεá ß
"despooling" function.
Iεá thσá CP/═á environment¼á i⌠ i≤ ofteε usefu∞á t∩á havσá ß
backgrounΣá printinτ facility¼á especiall∙ wheε operatinτ witΦá ß
lo≈á speeΣá printe≥á device¼á sincσ thσ timσá requireΣá t∩á prin⌠
listing≤ o≥ document≤ ma∙ bσ inordinatel∙ high«á Iεá particular¼
thσ "deaΣ timeó whicΦ occur≤ whilσ thσ centra∞ compute≥ wait≤ fo≥ ì
consolσá inpu⌠ provide≤ aε opportunit∙ fo≥ backgrounΣá operation≤ ì
sincσáá printinτá durinτá thi≤á interva∞á doe≤á no⌠á affec⌠áá thσ ì
throughpu⌠ oµ thσ processor.
Thσá CP/═ DESPOO╠ utilit∙ i≤ ß prograφ specificall∙ designeΣ ì
fo≥á operatioεá witΦ CP/═ Version≤ 1.┤ anΣ 2.2¼á anΣá provide≤á ß ì
backgrounΣá printinτá facility«á Wheεá DESPOO╠á i≤á active¼á thσ ì
operato≥ caε causσ ß disδ filσ t∩ bσ printeΣ durinτ thσá inactivσ ì
timσá tha⌠ CP/═ i≤ waitinτ fo≥ consolσ input«á Thus¼á backgrounΣ ì
printinτ caε takσ placσ durinτ norma∞ interactivσ CP/═ operation≤ ì
sucΦ a≤ prograφ editinτ anΣ datß entr∙ unde≥ ED¼á o≥ tes⌠ prograφ ì
debugging using SID or DDT.
Duσ t∩ thσ fac⌠ tha⌠ thσ consolσ commanΣ processo≥ (CCP⌐á i≤ ì
retaineΣ iε memor∙ wheneve≥ DESPOO╠ i≤ active¼ therσ i≤ ß minimuφ ì
requirement of 18k of main memory for proper operation.
2. ACTIVATING DESPOOL
The despooling program is started by typing
DESPOOL 'cr'
a⌠ thσ CC╨ commanΣ level¼á wherσ 'crº denote≤ thσ carriagσ returε ì
key«á thσ DESPOO╠ prograφ loads¼ begin≤ executioε witΦ thσ sign-ì
on message
** DESPOOLER READY, TYPE CTL-F
anΣá return≤ t∩ thσ CC╨ fo≥ subsequen⌠ inpu⌠ commands«á a⌠á thi≤ ì
point¼á thσ DESPOO╠ prograφ i≤ activσ iε memory¼á anΣ wil∞ remaiε ì
activσ unti∞ removeΣ b∙ ß CP/═ colΣ start¼á o≥ ctl-┬ a≤ describeΣ ìèbelow.
iµ thσ operato≥ attempt≤ t∩ restar⌠ thσ DESPOO╠ prograφ wheε ì
it is already active, the message
DESPOOL ALREADY PRESENT, TYPE CTL-F
will appear at the console.
followinτ thσ initia∞ DESPOO╠ sign-oε message«á thσ operato≥ ì
ma∙ proceeΣ witΦ thσ usua∞ CP/═ interaction¼á includinτ DIR¼ ERA¼ ì
TYPE¼á anΣ SAV┼ commands«á Further¼á thσ operato≥ caε initiatσ ß ì
transien⌠ prograφ sucΦ a≤ ED¼ DDT¼ PIP¼ o≥ ß user-defineΣ prograφ ì
withou⌠á affectinτ thσ operatioε oµ despool«á ValiΣá activation≤ ì
are:
DESPOOL 'cr'
B:DESPOOL 'cr'
d:despool 'cr'
where, again, 'cr' denotes the carriage return key.
3. PRINTING A FILE.
wheεá DESPOO╠ i≤ properl∙ activated,a≤ describeΣ above¼á thσ ì
operato≥á caε causσ DESPOO╠ t∩ prin⌠ ß disδ filσ b∙ firs⌠á typinτ ì
ctl-╞á (contro∞ anΣ ╞ keys¼á simultaneously)¼á whicΦ act≤á a≤á aε ì
attentioε mechanism¼ wheneve≥ CP/═ i≤ readinτ ß consolσ characte≥ ì
fo≥ thσ CC╨ o≥ ß transien⌠ program« wheε ctl-╞ i≤ typed¼ DESPOO╠ ì
responds with the prompt:
** PRINT FILE:
indicatinτá tha⌠ DESPOO╠ i≤ read∙ t∩ accep⌠ thσ namσ oµ ß filσ t∩ ì
print« Notσ tha⌠ i≤ DESPOO╠ i≤ alread∙ printinτ ß file¼ theε thσ ì
current printing operation is discontinued.
Thσá operato≥ theε enter≤ ß filσ namσ usinτ thσá norma∞á CC╨ ì
linσá editinτá function≤á (seσá thσá manua∞á "CP/═á Feature≤á anΣ ì
Facilities" for line editing functions). For example, the input:
** PRINT FILE: X.PRN 'cr'
cause≤á DESPOO╠ t∩ prin⌠ X.PR╬ froφ thσ currentl∙ loggeΣ disδá iε ì
backgrounΣ mode«á iµ thσ filσ doe≤ no⌠ exist¼ o≥ i≤ aε ambiguou≤ ì
reference, the message:
** NO PRINT FILE
i≤á displayeΣá a⌠á thσ console«á Iµ thσá filσá i≤á present¼á thσ ì
backgrounΣ prin⌠ proces≤ commences« Iε eithe≥ case¼ DESPOO╠ doe≤ ì
no⌠ retaiε consolσ control¼á bu⌠ insteaΣ allow≤ contro∞ t∩ returε ì
t∩ norma∞ inpu⌠ modσ fo≥ thσ prograφ whicΦ wa≤ interrupteΣ b∙ thσ ì
ctl-F key.
è notσá tha⌠á thσ filσ nameΣ abovσ caε bσ precedeΣ b∙ ßá drivσ ì
namσ iε orde≥ t∩ overridσ thσ defaul⌠ drive« Thus¼ thσ followinτ ì
arσ al∞ valiΣ inpu⌠ filσ names:
B:GAMMA.ASM
d:delta.dat
X.Y
a:x.y
Notσá tha⌠á oncσ tha⌠ ß backgrounΣ prin⌠á operatioεá begins¼á thσ ì
operato≥á ma∙á changσá thσ defaul⌠ drivσá withou⌠á affectinτá thσ ì
source drive specified in the DESPOOL input file name.
Thσ followinτ poin⌠ mus⌠ bσ emphasized║á thσ initia∞ promp⌠ ì
giveεá b∙ thσ interrupteΣ prograφ canno⌠ bσ reissueΣá b∙á DESPOO╠ ì
followinτá filσ namσ input«á Thσ followinτ sequencσ migh⌠ occur¼ ì
fo≥ example:
A>DESPOOL 'cr' (start despooler)
** DESPOOLER READY, TYPE CTL-F
A>^F (get despool's attention)
** PRINT FILE:X.Y 'cr' (input file name)
'cr' (returns to prompt)
>A
whicΦ start≤ thσ backgrounΣ prin⌠ operatioε fo≥ X.Y¼á anΣ return≤ ì
thσ curso≥ t∩ thσ lef⌠ fo≥ morσ CC╨ inpu⌠ commands« Notσ tha⌠ iε ì
thi≤á particula≥á case¼á thσ CC╨ promp⌠ i≤á recovereΣá b∙á simpl∙ ì
typinτá aεá additions∞ carriagσ return¼á a≤ denoteΣ b∙á thσá 'crº ì
above.
A≤á ßá fina∞ note¼á yo⌡ mus⌠ takσ carσ no⌠ t∩ erasσá ßá filσ ì
whicΦá i≤á currentl∙á beinτ printeΣ b∙á DESPOOL«á althougΦá sucΦ ì
actioεá wil∞ no⌠ destro∙ thσ integrit∙ oµ you≥á datßá files¼á thσ ì
erasσáá commanΣá release≤á datßá storagσá area≤á whicΦá coulΣá bσ ì
reallocateΣá durinτ thσ printinτ process,resultinτ iεá improperl∙ ì
printed data.
4. WARM STARTS
┴á norma∞ warφ star⌠ oµ thσ CP/═ system¼á causeΣá b∙á typinτ ì
ctl-├á o≥á a⌠ thσ terminatioε oµ ß transien⌠á program¼á doe≤á no⌠ ì
deactivatσá DESPOOL«á Thus¼á iµ ß filσ i≤ beinτ printeΣ whilσ aε ì
edi⌠á sessioεá i≤á iε progress¼á fo≥ example¼á thσá edi⌠á caεá bσ ì
terminateΣ withou⌠ abortinτ thσ prin⌠ process«á A≤ noteΣá above¼ ì
however¼á colΣá start≤á reloaΣ thσ entirσ CP/═ system¼á anΣá thu≤ ì
causσ an∙ backgrounΣ printinτ t∩ bσ discontinued.
5. DEACTIVATING DESPOOL.
DESPOO╠á i≤á deactivateΣ anΣ removeΣ froφ memor∙á b∙á typinτ ì
ctl-┬ (contro∞ anΣ ┬ keys¼á simultaneously⌐ wheε iε commanΣ inpu⌠ ì
mode« Thσ ctl-┬ "bootó operatioε act≤ likσ thσ norma∞ ctl-├ warφ ì
star⌠ functioε wheε CP/═ i≤ operatinτ withou⌠ DESPOOL« Notσ tha⌠ ì
unlikσá thσá ctl-╞ attentioε key¼á ctl-┬ caε onl∙á bσá issueΣá iε ìècommanΣá linσá inpu⌠á mode¼á simila≥ t∩ ctl-├ unde≥á norma∞á CP/═ ì
operation« Further¼ thσ ctl-┬ ke∙ mus⌠ bσ thσ firs⌠ ke∙ typeΣ iε ì
thσá commanΣá line«á thesσ restriction≤ arσá presen⌠á t∩á reducσ ì
chance≤á oµ accidenta∞ ctl-┬ inpu⌠ durinτ commanΣ o≥ datßá entry« ì
Thus¼áá fo≥áá example¼áá ctl-┬á caεá bσá entereΣá durinτá editinτ ì
immediatel∙á followinτ thσ standarΣ ó ¬ ó E─á prompt¼á whilσá thσ ì
ctl-┬ i≤ ignoreΣ wheε typinτ character≤ iε inpu⌠ modσ usinτ thσ ╔ ì
command.
6. IMPLEMENTATION NOTES
Thσ DESPOO╠ utilit∙ i≤ ß self-relocatinτ program¼ simila≥ t∩ ì
DD╘á anΣ SID«á Upoε initia∞ startup¼á DESPOO╠ i≤ loadeΣ int∩ thσ ì
basσ oµ thσ Transien⌠ Prograφ Areß wherσ i≤ receive≤ contro∞ froφ ì
thσá CCP.á Thσ DESPOO╠ prograφ i≤ theε moveΣ int∩á higΦá memory¼ ì
directl∙á belo≈á thσ CC╨ wherσ i⌠ reside≤ durinτ thσ timσá i⌠á i≤ ì
active«á Thσá memor∙ imagσ durinτ DESPOO╠ operatioε iε ß 32╦ 1.┤ ì
CP/M system, for example, appears as follows:
8000H: --------------------
[ BIOS ]
7000H: --------------------
[ ]
[ BDOS ]
[ ]
7100H: --------------------
[ ]
[ CCP ]
[ ]
6900H: --------------------
6700H: [ PSEUDO BIOS ]
[ DESPOOL ]
[ JMP BDOS ]
6303H: --------------------
[ ]
[ TPA ]
[ ]
0100H: --------------------
0005H: [ JMP 6503H ]
[ JMP 6703H ]
0000H: --------------------
Thσá norma∞á BDO╙á jum≡ addres≤ a⌠ locatioε 0005╚ i≤á changeΣá t∩
reflec⌠ thσ reduceΣ amoun⌠ oµ freσ memor∙ (0100╚ througΦ 6302╚ iε
thσ examplσ giveε above)«á Thus¼á program≤ sucΦ a≤ ED¼ DDT¼ PIP¼
anΣ similarl∙ writteε use≥ program≤ whicΦ 'sizeº memor∙ usinτ thσ
BDO╙á jum≡ addres≤ wil∞ operatσ properl∙ wheε DESPOO╠ i≤á active«
Duσá t∩á thσ fac⌠ tha⌠ DESPOO╠ depend≤ upoεá physica∞á continuit∙
witΦá thσ CC╨ module¼á i⌠ canno⌠ bσ operateΣ unde≥á DDT¼á o≥á SI─
(althougΦ DD╘ o≥ SI─ caε operatσ unde≥ DESPOOL).
Thσá PSEUD╧á BIO╙á portioε oµ thσ memor∙á imagσá contain≤á ß ì
slightl∙ altereΣ versioε oµ thσ jum≡ vecto≥ normall∙ containeΣ a⌠ ì
thσ beginninτ oµ thσ BIOS« Thσ jum≡ vecto≥ i≤ aligneΣ oε aε eveε ì
pagσ boundary¼ s∩ tha⌠ i⌠ appear≤ programmaticall∙ simila≥ t∩ thσ ìèjum≡á vecto≥á iε higΦ memory«á thσ jum≡ instructioε a⌠á location ì
0000╚á i≤ altereΣ t∩ addres≤ thi≤ pseud∩ jum≡ vecto≥ iε orde≥á t∩ ì
accommodatσá program≤á whichá directl∙ acces≤á thσá BIO╙á withou⌠ ì
callinτá thσ CP/═ BDOS«á AlthougΦ therσ arσ n∩ Digita∞á ResearcΦ ì
program≤á whicΦá directl∙á acces≤á thσá BIOS¼áá therσá arσáá CP/═ ì
compatiblσá languagσá processors¼á sucΦ a≤ Microsof⌠ anΣá Tarbel∞ ì
BASIC¼ whicΦ obtaiε thei≥ consolσ character≤ directl∙ througΦ thσ ì
BIOS«á Giveεá tha⌠á ß particula≥ prograφ locate≤ thσá BIO╙á jum≡ ì
vecto≥á througΦ thσ addres≤ fielΣ oµ thσ jum≡ a⌠ 0000H¼á i⌠á wil∞ ì
operate properly under DESPOOL.
Thσ jum≡ addresse≤ remaiε intac⌠ upoε warφ star⌠ usinτá ctl-ì
C¼á bu⌠á arσá replaceΣ witΦ thei≥ origina∞ value≤ wheεá ctl-┬á i≤ ì
processed.
7. IMPROVING DESPOOL RESPONSE.
Thσá DESPOO╠á prograφá operate≤ b∙ samplinτá consolσá statu≤ ì
whilσ printinτ ß filσ iε backgrounΣ mode« Iµ n∩ consolσ inpu⌠ i≤ ì
ready¼ theε thσ DESPOO╠ prograφ print≤ thσ nex⌠ outpu⌠ character« ì
Duσá t∩á thσ naturσ oµ somσ printe≥ devices¼á thi≤á caεá causσá ß ì
somewha⌠á "sluggishóá responsσ t∩ consolσ inpu⌠á characters«á Iε ì
orde≥ t∩ alleviatσ thi≤ condition¼á DESPOO╠ caε bσ altereΣ iε thσ ì
fielΣ t∩ samplσ thσ printe≥ statu≤ a≤ wel∞ a≤ thσ consolσ status« ì
Iεá thi≤ case¼á printe≥ outpu⌠ character≤ wil∞ no⌠ bσ sen⌠á unti∞ ì
DESPOO╠ ha≤ sampleΣ thσ printe≥ statu≤ anΣ founΣ tha⌠ thσ printe≥ ì
i≤á read∙á t∩ accep⌠ anothe≥ character«á Wheε modifieΣá iεá thi≤ ì
manner¼ thσ onl∙ delay≤ whicΦ wil∞ bσ encountereΣ a⌠ thσ keyboarΣ ì
will be during disk accesses.
Thσ printe≥ statu≤ changσ i≤ accomplisheΣ a≤ follows« Writσ ì
ßá routinσá iεá you≥á BIO╙ (iµ i⌠ i≤á no⌠á alread∙á there⌐á whicΦ ì
interrogate≤ thσ printe≥ statu≤ anΣ return≤ onσ oµ tw∩ condition≤ ì
in register A:
A = 00 indicates that the printer is not
ready to accept an output character
A = FF indicates that the printer is ready
to accept an output character (any
non-zero value is treated as FF).
Assumσá tha⌠á thi≤á subroutinσ i≤á calleΣá PRSTAT¼á fo≥á "printe≥ ì
status.ó Augmen⌠ thσ norma∞ jum≡ vecto≥ a⌠ thσ beginninτ oµ you≥ ì
BIO╙á t∩ includσ ß vectoreΣ jum≡ t∩ thσá PRSTA╘á subroutine¼á anΣ ì
includσá thi≤á jum≡ a⌠ thσ enΣ oµ thσ lis⌠ giveε iεá thσá Digita∞ ì
ResearcΦáá manua∞áá entitleΣá "CP/═á Systeφá Alteratioεáá Guide"¼ ì
resulting in a jump vector which appears as shown below:
JMP BOOT ;COLD BOOT ENTRY
JMP WBOOT ;WARM BOOT ENTRY
JMP CONST ;CONSOLE STATUS
JMP CONIN ;CONSOLE INPUT
JMP CONOUT ;CONSOLE OUTPUT
JMP LIST ;LIST OUTPUTè JMP PUNCH ;PUNCH OUTPUT
JMP READER ;READER INPUT
JMP HOME ;HOME THE DISK
JMP SELDSK ;SELECT DISK DRIVE
JMP SETTRACK ;SET TRACK NUMBER
JMP SETSEC ;SET SECTOR NUMBER
JMP SETDMA ;SET DMA ADDRESS
JMP READ ;READ SECTOR
JMP WRITE ;WRITE SECTOR
JMP PRSTAT ;SAMPLE PRINTER STATUS
Thσá additioε oµ thσ "JM╨ PRSTATó elemen⌠ a⌠ thσ enΣ oµ thσá lis⌠ ì
result≤á iεá ßá tota∞á oµ sixteeε jum≡á vecto≥á element≤á iεá thσ ì
modified BIOS.
Incorporatσ you≥ modifieΣ BIO╙ int∩ ß tes⌠ CP/═ systeφ usinτ ì
thσá standarΣá procedure≤ giveε iε thσá "CP/═á Systeφá Alteratioε ì
Guide"«á ColΣá star⌠á you≥á tes⌠ system¼á anΣ loaΣá thσá DESPOO╠ ì
program, using the special form:
DESPOOL *
wherσ thσ ó ¬ ó indicate≤ tha⌠ DESPOO╠ i≤ t∩ takσ printe≥á statu≤ ì
int∩ account« Iµ thσ ó ¬ ó i≤ no⌠ included¼ DESPOO╠ assume≤ tha⌠ ì
printe≥á statu≤ i≤ no⌠ available¼á anΣ wil∞ no⌠ perforφ call≤á oε ì
the sixteenth jump vector element (JMP PRSTAT, above).
Oncσ yo⌡ havσ completeΣ you≥ tests¼ yo⌡ ma∙ makσ ß permanen⌠ ì
changσá t∩á thσ DESPOO╠ memor∙ imagσ usinτ DD╘ s∩ tha⌠ i⌠ i≤á no⌠ ì
necessar∙á t∩á typσ thσ ó ¬ ó characte≥ eacΦ timσ yo⌡á star⌠á thσ ì
DESPOO╠á program«á Thσá changσ i≤ madσ b∙á loadinτá thσá DESPOO╠ ì
prograφ int∩ thσ DD╘ tes⌠ prograφ area,alterinτ ß "printe≥ statu≤ ì
availableóá flag¼á followeΣ b∙ ß SAV┼ operatioε whicΦ record≤ thσ ì
altered memory image. The procedure is shown below:
DDT DESPOOL.COM cr load DESPOOL under DDT
NEXT PC
0B00 0100 response from DDT
S206 cr set memory at 0206H
0206 00 01 cr change flag 00 to 01
0207 cr stop "S" mode
G0 cr go to 0000H (warm start)
SAVE 10 UNSPOOL.COM cr record altered program
A⌠á thi≤á point¼á yo⌡á havσ ß tes⌠á versioεá oµá DESPOOL¼á calleΣ ì
UNSPOOL¼á whicΦ ha≤ aε assumeΣ ó ¬ ó inpu⌠ paramete≥ eacΦ timσ i⌠ ì
i≤ operated«á Tes⌠ thσ ne≈ UNSPOO╠ and¼á wheε satisfieΣ tha⌠á i⌠ ì
operate≤á iε thσ samσ manne≥ a≤ DESPOO╠ witΦ thσ ó ¬ ó parameter¼ ì
propagatσá thi≤ ne≈ prograφ throughou⌠ you≥ disk≤á whicΦá contaiε ì
the altered BIOS described above.