DOSPATCH  % JOB DOC f JOB15 COM@ JOB15 MQC%r A patch for cpm2.2 for submit jobs to execute while changing user numbers. This co-operates with CCP+ v2.1 and JOB v1.5. All values are shown for an unrelocated BDOS. marked bytes may be different by a constant Location (from start of BDOS) Was Becomes Comment 06DE 3e 7e mvi a,0e5 --> mov a,m 06DF e5 fe 06E0 be e5 cmp m --> cpi 0e5 06E1 ca 06E2 d2 jz ... unchanged 06E3 06 * 06E4 3a 18 lda usrno --> jr $+3 06E5 41 01 06E6 03 * (code byte skipped) 06E7 be b7 cmp m --> ora a The WAS items marked by '*' will vary with the location of the CPM system, and should not be altered. The patch uses the Z80 JR instruction, so for Z80 systems only. This has been carefully designed to be position independant. When completed, the original CCP will no longer execute SUBMIT jobs when the user number is non-zero. It would never allow a submit job to change users, which can now be done when using CCP+ and JOB15. (earlier versions of JOB will work if the job is started on user 0 only.) This causes BDOS to return 0ffh for call 13 (reset disks) whenever a '$*.*' file exists on user 0. This flag is used by CCP+, ZCPR, and the original CCP to decide whether to bother searching for the $$$.SUB file. The original code only returned 0ffh when the file existed on the current user. C.B.F 86/10/15 hAn improved replacement for SUBMIT for CPM2 only. For documentation read the 1st page of the source. Execute JOB with no parameters for short summary. Requires CCP+ and a small patch to DOS for best results. See DOSPATCH file. For use with the original systems remove xra a ! mov e,a ! mvi a,gsuser ! call dos near the end of the outer block, or simply get JOB14. i!9" 1 > 82 "JOB V1.5 $:] .> 8͟g!"v LœX_> 8: _> 8!e~ ʐ}.JOB file not found$!}~#–!2 /½#" ~2 #ïҽ+*t ~~#7 77  +J*r *t ~rs#r#"t :q "#~#e"+1#+~#1"r p"E~,E#~7?> 2q ~"2q #: /:;:;!#J͢yʗx—*r s#r~oT]:q "ʿ}e~# î}e~ e" #ÿ#~e , ȷ: /\ʹ!) y6ʹ>8}͆}G|x>8x/<ƀo& "~2J #~2K #~#fo" 2L >!) 8!\$w#o~4 !~¯ #~ ¯“#~###¯+~ð! 6>8<>ô*v #"v *x *r "x s#r##  w#ʹ "r q"r q: /,iG: L;>G_<2 !~>2 * |+" >>\87?: „: ړ=2 > * ~#" |ʁ>> 8 > 8: ! " 7?:=Memory full$>5<:\ 2m 2m >5<Directory full$*x |ʜ^#V#"x ~)D*v +"v *x |3^#V#"x *v +"v >M O~#2z "{ !"} 2Ew#W^€ڮ^ʀ\@ڮ Ү$: />$ʝe$£]"e0eG]~#ö>5Disk full$!z ~=7w*{ ~#"{ ?!4*} w#"} :z 7~? ro&) ^#V+~##0:? )8#0|)0S> S> _>8a{_Parameter$Too many parameters:$Line too long:$Job file empty$Control character$> 8> 8*v )L>5 error on line number: $ *$!Y D6# x! "t !" " ! "r >2 2 2 ;> 8* How to use JOB: JOB : print this message JOB / : interactive mode JOB / : use SUMMARY mode JOB : as standard SUBMIT.COM, but JOB will search for A:file.JOB after the default disk if no drive was specified, and then as a component of "JOBS.LBR" if not already found. The SUB file is created on "A:", thus JOB may be used while any drive is the default. Parameters may be delimited by commas and may be "quoted strings". An initial line beginning with ";;" can be used to specify default params (0..9) at execution time. In "/" (interactive) mode, JOB will prompt you a line at a time for the "SUBMIT" job input. Logical lines may be combined on the same input line by separating them with "|". Example: A>JOB /STAT|DIR specifies two commands on the same input line. Submitted jobs may nest...JOB inserts ahead of an existing job. To insert a control character into the output, prefix it with a "^" ("^^" for real "^"). $JOBS LBR$$$ SUBov JOB15.MAC_  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSoTUVWXYZ[\]^p%z8ӯ9@>Q-VcFKǿTnq/g~7|; Ӗb@eؗiFȁ{Tfyx7??2ˍ>_K5L6}WkJ>_|wOл{*3yNlLnd-J-wTf>!K)[gǾ˴19=shQͽ[YɍS!W5Lo \r#0Dy؟~Z.`:;Eej6Svܨ8ñ]e=YQ ~4W2؟~yʎLd0LR \3G?&ޣ{ޜUf>r#7|s/Ĕ5L?[u*鉬P^/oBSɍSj6&޹NG7v.#x)9j>L2]́>ȅFr#SŦBQɍL_TfZbb9P|<0Beȍb 72ܻF)^B{z8FePtF+tcGs%OQauB# ʭ8by,*3-ٓQ}ȁ/_ Zbʬ2q*dTQ^tK߿hc>r\_:d;q=Wng9Pp/ą3M1Tf*nMHeoGVUfY( -11m|!pFz;oiK2S9J\3n4nt?r 72ur1jBS\(dGetuvYeVj 7Ӎqqd+Mȍ>}L1%|lK72őD1 3ѧO?j6Ž\&;Tfrc,4 exVUfcJdh Uђ=}_JSH\ iR2`:;bijL5n,4zr&*F&) ّ >pu+'a-1q!ic t2?ZWn2]؛cnO~SЈwc[!7Ie:Z8rh*)L}c&i`dߩfﹺt[ɨǐ= H.o2S,yJ)Ǎ6N23r\-11L{ysL߿ /qc SJb7yv\\ ǻ`?v0߽]Woi0߿|oJoUf SJx)BK4VWW<**7f7߮|YzV22Yei+B%&oUTfrF?/>|2/~d丸Q,F&ii[>P}H7*c/dTQ^98w PFCɉ*LC,1cqTf/SeV_=|׺-o/Wn7ߜ -11@SaOOgؓҧZeF,dTb8&r+S{s\>>}O2g4#-S;Z2m=:[!wccbc GSaOar&w*μSzk\)x7?fC$[ }oUf<} x'`c>P'}oʌxxw@{]|>hMe?|?xoT|w;Oʌ|O_5ܘc*qQ6g>P_w72Pyd}Eq/?rF?>D7n$72\(/*3ǿr+J1OQȎ6&K=3i0WG nd/(T]aiɞ'*!DXh2ccT2t%7r6!bCC*ʌ9P}H츭F1Kӏ>D!SȞx:9V^~tB#r#TSƞbwWL?rt( K)ߓQ\:Z82M}Y~ujB*3G4ӏJ}|LSdO%P(/ ǔTfgHq!72b;nM==Qv~2ВH̘ 7nӏ?|/VȍLc ӧԸt?٫pFT|c8Ғ=o9Zb3)xʌSF7zZGF%&&cq(r#STfLYeV-WO_z~7JqoT|IeV9y×1G7[!ʬR=ڨ'<٨lyU8''9 {̓'9deyW'{7'֓ngy[ӟR FK[Ujot~P{K1J\G* Q4*c f ePASCq = kqVUTث"x}ZQRBE/S3P09 {TK wySAp~EOS:=V:O+ӯtz:կiY9'Y.o y@SAj[𨂻+FN !ar*Z.3P1| SApdW{h*2K% =F;%栂G ʘR TK y2>ӒHKcoSύUPgkwy1LS M^wኻqmgkXLTP-%4^lJnFaGj)!ar)`3~ 7BK4F>cfӧS~ !c {TK -N.T-S\̡ZJC(ӶZJLۢ x|~X^RBe<=o4*%&-y rN*JcX]T=b\vޝ !b[?1E=`kLo?yK1LC*(v4İcTA ; ZTpc xv*ʑ]]TqhZJ(qcQAqCBu(ʨpő]}(TÎQȮ.*(cj/C=`kWAq8%:Dl£ |B1Upڃʑ]}ZJ(qcQ9=o/*w܅#CVw3Y}$sn)L)`޺ U01]=`kWAS*ȮоQM)%[g^ʬ2SyÖ,<<z(B% g7Z'i%΋L.&-= z>֮v*`*(_:DT *C祛TAqU !bKUpwEyÖ lS1[z,*huǨ NeVɳ|j(.9sS)j)kbW0 ;00Lbh ã*x Ҙ=l*`* Wt |WAUÎQ=צv*(cj y2-ުT4ΎLcz3(/4Ύ=c8*36~rRb2;0 歳cR0 STÎ~'b| 5C {T@Ȏb.ZViKӇ/3-GC.%n:*臈m}uv)L}c2~g=O?LDS`:;LD?  SJLٱ BaJ>GT``cqۑUfPػlؔL?7L)(h0o~ofƋM=\TÎq`Tq=:*cXT dٳ ®q]RBfewTf ^ٱtWzmb̻^7 Ŧ2ӽ:R-SӖjFVpL\TfzӛP,p:_)dGyGy|W0 h*[ 7 hؔ3/6%Gy )%| 歳cOZJXbh pEŦ侟Q{K100LbwaJIe喝x)9[gǞ,4cr#S wr;}χ2Sqۑiɞ” 歳cOPo*HcjX< :+  z>MC0Oh0o3T0LeĨa*#6TK !T/6%ECT0 z>֮j))ph*@ˁU6wGySl*/6%0-Sݩ*3j\uvC;b;<zm'2gޭZ(q8Qe1 LSp:ثdֵkR)=Q=kb̻4 !O38ݸRŦIUP);VZx7)dO}=OٱJ.[ 7 w~FġђTvTK u|lbWZ b1 :5OQpt R-6N.\1J~~g74\!ɱ1Hu4VUf#Gz7dOC.%nq=:+]gZ).TL.*u|lb[ lSBuwSBe[U\В=8TG+]gZ).TL.*u|LCի_:Dp^G+TT٩*30LLWZiɞbp쭺x`깱J8İ\T*CDIVF ު muKTP-%â32ʥ 6MR@b_: ђTpwEKL<Mʬ2g#iQ}ȁo~B1P7%&1LWZiɞi2ӏ*S\2%*h~˧%{9ppdr)*31;&7#72܇88* ƍbjɍLqWC+y7G7ɑq^Ql4{oi{UMwW8K3288%Olf^moHBćX'72tto"l -8=W8G| j7a*ALLLLlDvs\h`OZDu!erc, <`T0 Q}ȁ!ث`ʈa*#?s+T[r”CY{PAf7[gǾВ=}˧bW*臈q} <2\oT@[}~ևw3̅ qpF\UP-%a< 9^1UvİcTAkWAfs;QSp*(cj{e˴d_,GZ G`*(ΐfB2y -wl\Ž h*[}T/uSArQA#-uSA?Dl뇯Uf; :Ts;Q\(dGF)nL.*u|, T0LeDS0 1M=`kWAS]N*u|,ׇ b1l*CĉN* W\@ KQ^zl* W\TÎQ=`kWA ;Fdo*aǨv*UpcSA;F|}Eek k 61PF\Tp\?U bﳧJ7 x (*u|, y!h*Mʬ2-116~3ѧ#5^lJ,4*S屨t%ّi&*3ٺr0 1ީYCSA?Di ;\o4{r <`TA?Dغ䁃 b0pV.Eَ +ay{+x)Q]7 <}t#]iIv%{Z,ɳJ8,C3ʭ8byTAqEeVa\ 墂4(hhɞR v*(cjH1p:TԐbyuM1U0LeĨv*臈>0L.}ZJ:@q3Xw1 K_T6"lt*ﮎTﮎ.*^M'a*(L}σy&ɆCSgPmy8CS+e\Iak%&VAi[T+TP-%G蹺oL)VIeVLrQASCU*ސTpw]޸൫  z>]1U15xp*x z>֮ ++Ӷ|}p7J1ʽweږ {RPASCUQeL )S ҘR <8uTA++Ӷ|;#dٳ z>׮v*vİcT^#TPԐby`*+Ӷ<{WmpQASCUQeL )S {ʴ-*ޕi["l]jʅUf[ʴ-11偽l]ֶ^m m-ӶMe[UBRZiBu1z7+yvڛυ1Ǿ;Z @Fe&[TF*2`ʈM=PWSA\TT0 <`Fxv*Lp#72xn1ٱ2mE7CQ. z>֮v*(PG_/*(cj#Tqha`[mU6n1]g{RV=6]q] fCP⢛\A=`kWA ;F S1ZJ&'WG y>޻VUɕi[.*[+j)a/Ӷ {_j)=: H˔iTf#: ZG_/N=`kWA | z>4 :l*aǨ2 :BWxv*0<:^TqqTA ]w.QiL U}5İcTAS0ySUvWNj R3їċSASAqU |]Wxv*LK ٱW{s_|(jo~8ݸ:7?!8Byد*36~rcO.S:DN^ch-l]ֶ:Ie Eu{ BEpw|@ZM1OOO 5*H{D[}BSA൫  z>]U|]1U٩*\/Hv4>+TÎQ1h*hcS]⹛ <;Yej(.jo( ّQ:X:*3-*a!tRPA"N??AWxv*L>:1!+Ըn7+i-OO6ΨkK{xi]t5} voͫv-4kU-GyY(ިUw]˻TP U1g`w*]˻ bTpڵ<@ȎZ!T0LePg؁)OnxN=`먂 I5\ڵ̀:!ʽ <`TIRB͓S ^ʬ2Si!Prbl]TOak*j !ִx*3rj%'VE]0LeDSAj*[Ѽ 'yiTf~ͥؑ'dѩGwQ4C1UP-%\TU+pTArQASCUP-%v-*O !eUP-%eʬrm8{=@)0N+25-OsRUbGkM~c *H{ĶnrWJ =\}}zzgUÎQTn*PUp!=b\}BSAS`v  tġQ^h0o{r }QASC*(cj{e/_>|!ϵPryZbb=b\ގ23CaO 308gئ\╡ ۴Pg2 ֑Qa0| GTK -15X*(ØNeV9 /*h_Ӳ:ߓ4_.5-kZT6>O-?.tRAp|  u.Ŏ|Z_Ӣ >KIm)ު״m8}|B.tRAp W״m8}|B_gW Y,4N*hN_?|+m_>DVEmiɞ~vYb/dcOndjؔT6Z, {+TqZ ' ȁQ}ȁۏ_:o餂 ّ%n)i~M چ?S,T=F9۟]ޮtRAp"7N>n7ژǘ,NkkZT6XȍL;ؼuv T6hcjbm7w+d״m8uyʎc8gY褂b`CHэvRpZ_Ӣ1MLe5^lJ T6^矿!s;Z5-*hN? Wo5ު~C=7^> چ}L'2J10##;״m8-ٓ~_[0LL' c(hco1pȍ|Z_ӢT30LR Lۍ p$7r چ}t#gvCi~M چ~ ?//NkkZT65. L5nʁ' '*֙b&G)>״iQApjztP.|>|B'  {WFFy! {,.#|Z_ӲEms {GF5s:Im)ɍLyrVVEmO۟--ٓgK'oߜOkkZVIeVI_vA>~7i}Z֧Ik}ʬRmmzo^N3~>S EKʍގ27>pA+0 g<72G1D-ūJsW