)1Z8DUTILRMF }DATEREG COM DATEREG DZC DATEREG ZZ0 ECHO COM*fkvECHO HLPyMODDATE DOCSAVESTMPPZTSVSTMP-DCOMmSVSTMP-SCOM"Z80DOS CMDZ80DOS utilities, for manipulating and using the system date, etc. -------------------------------------------------------------------- 1Z8DUTIL.RMF This file, RMF=Read Me First. The initial '1' floats the file to the top of a directory sort. DATEREG.COM Stores the system date in ZCPR3 registers 5, 6 and 7. DATEREG.DOC Documentation to the above. DATEREG.Z80 Source to the above. Z80DOS.CMD Aliases. One especially nice one, LOG, uses DATEREG to write the date of each editing of a word processed file FILENAME to FILENAME.DAT. MODDATE.DOC Documentation for one alias above that will change the creation date of a file to any date. ECHO.COM Should be renamed to ECHOLOG.COM, used with LOG alias in Z80DOS.CMD. Program by Eugene Mallory. ECHO.HLP Help file. SVSTMP-D.COM SVSTMP-S.COM Two patched versions of SAVESTMP. SAVESTMP.PAT Documentation. - Rick Charnes  z3env* *P(|}|"N͗:J|J"0x͜2͗>[>2*>O" GO> ͒W Ғʒʒʒ ʒ ʒ>^͒@͒O*. G}(B[!: !G[8 : !_ɷB #6 ~ʹ8( 4vDATEREG.DOC$ "JR."`QHc5f e9!c:FSb9 3 @F9L fBLĴ8C b 2N$9LLe6GcM㘀`0 j1JHI<a6 VIV-LU(u6ɥ5,ycou"t9I8f1ʆ{܆fWpX0'3lmeΟ1L= ^ JSC 1i֋}tYҎoqU WQSyQuLGtZ'xhC UtN{FFi`ٰ]$yeWLDHU 0|R`bRHteGEn8.O zRwoGBԡi# RWXX mfawéHC$Sv=FtwbԠmBv ' FA |gyzD GU'jj^ H`^`RXtUhnXfAgzYew%˜A=Bh~@>j"  ֱ (hS <Z FkYTNۥ!Mz+ 10T̗)MðN֙>6LrW35 %H=h ćYNwE@RIZfP8v7LIWTCy1蘹դCA[ISmv.uҧcR]X / |ti<$s#f8jH Qja囇Sl@`R#E$#mT7w4Po=OڇLiI`xgw'KSj2(K#ë2Qu9 ~B{d+Zڏla1QxSENM TSKC 0<lp4ZP(1& M2 ~]TnxrY;݉M,HZZM4Un9jSԫـ)T1W+)r찶<]]UxHrl2f%LpnTMR` aFR-&8YBVd.[O>hUhSd ÀiK!C Ը>PK<1)"ҪJLA8>koHOMB23ttbu ӎBQhE;$1T8Z1LGd3=vVPaUca\kByg&bWgOVZ$V#$#xtKHFdF%F[a7wOK&ub/E"!`;($wl85gAO$NXYU%q`geb7L lM(hO'%$rdL!#xgP/.؄"~zO$0yPaGdѹd9!| SID@Rj:be= 'pvEps[Hxd*NgO!J>H ð'X0//‡|x%XJ<*g_ ֱE]q uCGc5}xsq;b8Za[_H֍<|QeCu=9%PW;r*rO9cUAAvAxA2h8enXO%{/#bTo_=! C gHN6?mPQX5;} wz9WC1lycBXk;%#X9#uPU4BtQVmVnaqD/z0 B]zB8:0HpABr t ^1/kJc]]0;V,#tiAxuQJ#ے?u;7Pl<3GBeA$ÞZbhOeLA7!J-0'Qaע3QJ2]B8J+e0aԢNPwA1HWH&n(b'45C8 69@42B*CUcW4W̤*PJFX* b͸{P3Xw{ÖüH!K]jU 2͵ ^#V#*~#fo^#*~#fo^#V#*n^#*n^#V# ~#fo^#& ~#fo!+!#!+!#!+!+}|z{|}|z7||7zZZ)|/g}/o#|͉k|/g}/o#ɯ2hZZk:h|/g}/o#|/g}/o#:h<2hqDM!xxGyO҃)v|͔`i|)Öxڷz/W{/_ѯzW{_=yOxGæ2hZZ͉M|}ȯ|g}o)|/g}/o#z/W{/_!9~#fo! ! ! ! ! ! P!9~#A!9"w**w"j!z*"d!"f!Y"H>2^>2a>2`2c>2s2t>2r>2v!"@!"D!@"B!"F !F#x:~#!|2i~# :" 2i +}|~#:G:ix."2i+w# +6#!6#@A2n2?*j**|+`!#"0!#"2!>ڌo&͖=}  w~2ʸͼ56!+W ?_!~7z?ͧ:>͞@w#5.ww#w#w#w*>?@͌>w#͌5> w#@ͧ͵g 2q&0OxG͵j/ʆSx\͞.7:77!a{  ʨ ʨ0:?ŷO !y$ 7o&))T])))!y 2p_ :p!j9DM͐! ͑ ! ^#Vr+sz `i! ^#Vr+s~#fo `i! $p!9%s !9DM! ^#Vr+sn`is#rz ͐>_K >f >\W >x >~c > ! ^#Vr+s6  ! ^#Vr+sn`is#6͐|ʣ ͐|« !/ M! ^#Vr+s͐s ! ^#Vr+sn`is#6͐<| !a M! ^#Vr+s͐ms ! ^#Vr+s͐s ͐6!9ECHO: Bad string, \ requires character following.ECHO: Bad string, ~ requires a following alpha.!9DM*6#6* 6*"*s#r*"6!!ͥ+*s#r* s*s*s* s*s* s`i6#6͐͐ ~#fo ! ~#fo͐)~#fon! s#6! ~#fo͐)~#fo#n! s#6͐|Ž *6͐|¤ * 6͐|ʾ ͐| ͐| !! ~#fo͐)~#fo͐ ͐ ͐& ͐| ͐|@ ͐|@ ͐ ͐ ͐~ ͐|r ͐|r ͐ ͐ ͐~ ͐|ʙ ͐|ʙ ͐|± ͐ ͐ ͐  ͐| ͐ ͐ ͐ ͐| ͐ ͐ ͐& `i^#Vr+s' !9!9DM**s#r! ~#fo͐)~#fon}+P *6! ~#fo͐)~#fo͡+|‡ ͐͐͐så !! ~#fo͐)~#fo!a! ~#fo͐)~#fo| *6#6C!f! ~#fo͐)~#fo| *6#6C!k! ~#fo͐)~#fo|\*6#6M?|g}o|g}o!ͥ+C!p! ~#fo͐)~#fo|¯*6#6M?|g}o|g}o!ͥ+C! ~#fo͐)~#fo*m *`i͢!u`i͵ `iͶ+w }*! ~#fo͐)~#fo|*!`i! ~#fo͐)~#fo+#|}`i! ~#fo͐)~#fo!!I!p*`ig!#|¾`i!!I!-I,!!I!p`i! ~#fo͐)~#fo+*! ~#fo͐)~#foͱ!#|C! ~#fo͐)~#fo!!I!-I,! !I!p͐͐͐s!9LST:OUT:LP1:LP2:BACKUP.$$$DIO: Failed to rename %s to %s. DIO: Unable to open file %s for input. DIO: Error caused by %s. DIO: Unable to open file %s for output. DIO: Error caused by %s. !9DM! ~#fo͐)~#fo͡+|e͐͐͐sÃ!! ~#fo͐)~#fo*6**s#r! ~#fo͐)*s#r͐~#fo͐* s#r͐͐s#r*!(ͱ!#|&!4!I!-I,!d!I!pTEMPOUT.$$$DIO: Unable to open file TEMPOUT.$$$ for pipe. DIO: Error caused by %s. !9DM*6**s#r! ~#fo͐)~#fon}+*6! ~#fo͐)~#fo͡++|͐͐͐s!! ~#fo͐)~#fo!! ~#fo͐)~#fo|O*6#6Ì!! ~#fo͐)~#fo|*6#6Ì!! ~#fo͐)~#fo|*6#6M?|g}o|g}o!ͥ+Ì!! ~#fo͐)~#fo|'*6#6M?|g}o|g}o!ͥ+Ì*! ~#fo͐)~#foq2#|Œ! ~#fo͐)~#fo!!I!-I,!!I!p͐͐͐sLST:OUT:LP1:LP2:DIO: Unable to open file %s for append. DIO: Error caused by %s. !9DM! ~#fo͐)~#fo͡+|9͐͐͐sW!! ~#fo͐)~#fo* 6!-! ~#fo͐)~#fo|* 6*! ~#fo͐)~#fog!#|! ~#fo͐)~#fo!1!I!-I,!Y!I!p! ~#fo͐)~#fo*m ͐͐͐sIN:DIO: Unable to open file %s for input. DIO: Error caused by %s. !9DM͐͐~#fo+s#r͐`is#r͐͐~#fo! ~#fo͐)! ~#fo͐#)~#fos#r`i^#Vr+sØ!9!9DM͐`is#r! ~#fo͐n}L! ~#fo͐͐! ~#fo͐ns`i^#Vr+s! ~#fo͐͐6!9!9DMw }ʖw }–*-M**! "*!M!ͥ+w}!Ͷ+!!+*~#fo~#fo! m !! ͵ !! .`is#rzu͐t.!"! m *~#fo~#fo! ͵ !'! ͵ ͐t.*~#fo!,s#r*~#fo\ )w#w\! w.#|! !8!I!p!UͶ+!aͶ+!lͶ+ͯ.!9TEMPIN.$$$TEMPIN.$$$TEMPOUT.$$$.com0/A:.com0">W"><">e">H">x">T">ʋ"ö"! n&w! n&!ͥ+! n&!ͥ+! n} £"! !ͥ+! n&!ͥ+͐##^#Vr+s|#!͐͐~#fo.|"!͐##6#6͐͐s#r͐^#Vr+s! ns&!9DM͐|L#Z#͐+++|c#!ͥ+#͐##^#Vr+s|#!͐͐~#fo͟/`is#r!|Ҵ#͐##^#Vr+s#͐##͐?+s#r͐͐s#r͐^#Vr+sn&#!9!9DM͐| $! n&H0͐>$͐##~#fo|C$!͐^#Vr+s! ns͐##^#Vr+s!!Y9DM! ^#Vr+s~#fo! s#r͐! s#r! ^#Vr+sn`is{?(`in}%(! ! s#r! 6#6! s! s! s͐n}-$! ^#Vr+s! 4͐n}0%! 4͐n&*},%! +/%!! s#r! ^#Vr+sn`is{.w%! +! s#r! 4! ^#Vr+sn`is`in&q+}Dʣ%U%X%O%C7&Sh&'͐~#fo|%! ^#Vr+s6-͐͐~#fos#r! ^#Vr+s! 6 %! 6%! 6! ~#fo! n&! ^#Vr+s~#fo! C*ѯgs#r&! ^#Vr+s! ^#Vr+s~#fos! ^#Vr+s&! n}{&! 6#6! ^#Vr+s~#fo! s#r͐n}&͐|&! ^#Vr+s! ^#Vr+sns! ^#Vr+s! ^#Vr+sÖ&͐6! ! s#r! n}N'! ^#Vr+s!|N'͐͐! n}+'!0.'! !<'!9~#fo#|K'!?(&͐n}ʒ'͐͐! ^#Vr+sn&!'!9~#fo#|'!?(N'! n}'! ^#Vr+s!|'͐͐! !'!9~#fo#|'!?(Ü' (͐͐`in&!'!9~#fo#| (!?(<(͐͐`in&!-(!9~#fo#|<(!?(Þ$!9!9DM! n&|ͯs(! n&|ͩ!9DM! n&|ͯڢ(! n&|ͩ!9DM͐ڿ(!)͐n&|g}o|(!)͐##~#fo|(!)͐##~#fo`is#r͐͐͐~#fo.͐D)!)͐+?`is#r͐##~#fo|)!͐͐͐W0͐##~#fo͐s#r͐~#fo͐s#r!!͐~#foͨ0)͐##6#6͐͐s#r!)!9!9DM͐|'*͐! *͐͐ "#|A*!!9DM͐͐ ґ*͐^#Vr+s͐~*͐0Æ*͐7s!&*͐ ͐͐ ͉͐C*`is͐ ͐͐ )͐C*`in&#&*!9!9DM! n&|ͯ+! n&|ͩ!9DM`iw#w͐~#fon&*}a+͐ ?͐^#Vr+snѯg`is#r"+͐h+!9!9DM! n&w(|ʘ+! n&ß+! n&&7:PO*R !\/:q25!> 2?+7*P!,/:q2*R!$,/,5!> 2?+Q:zJEËC–EQyQxQR S,>)],~#fo},,,,,,-$-8-O-g-{-----No errors occurred yetReading unwritten dataDisk out of data spaceCan't close current extentSeek to unwritten extentCan't create new extentSeek past end of diskBad file descriptorFile not open for readFile not open for writeToo many files openFile not foundBad mode to "open"Can't create the fileSeek past 65535th recordErrmsg: error number out of range:?o& ).>2?6!7,.> 2h*P/:q2> k.:h):RW.=W.=> k.:qw#w#w:ho&552?#7*R^#V#z€.x2.+V+^+.*P0:. 2?!*P .7:P)"XV>ڙ/z> ʙ/z2:P,"j!"l*T|G/*j!^#V*X#^#V?/r+s*l5*R"R*j"*lo/2?B/#"l*T+"T*j! N#Fp+qx/##6>2??/2?7:P)V>B0z>B0z2:P,"j!"l*T|*l/5*R*j!ѷ 02?00!/*l/*T+"T*R"R*l#"l*j! N#Fp+qx/##6>2?/2?:no2n&7*T|DM*R*Pچ0><0~+ x–0|}7:P,>Ҿ02?!^#V*R:T0=00*P2*R!s#r7*P!9/:q2 6C#6O#6M5+1*R|A1R!\&S1!\&*T|S1!T!l&!9~#foʃ1> +1#~q1##e1xSڵ11 &1EXECL: Command line overflow $!p1!*w#1*:11*1!1!a{ ѷ! ,02>2?)~2#"j!!~#fo#^#Vp+q*j~#fok2s#r5!9DM!͐ .! s#rz§2͐ ͐ͱ!3͐2`is#r|2͐t.͐ ͐ͱ!3!!͐ͨ0#|3!͐ ͐͟/| 3͐t.!3!!͐ͨ0`iw#w͐|k3͐ ͐n}_3k3`i^#Vr+s93͐ ͐s#r͐ ͐ ͐s#r͐ ##!?͐s#r͐ 6͐3!9********************************************************************** * ECHO * ********************************************************************** * COPYRIGHT 1983 EUGENE H. MALLORY * ********************************************************************** PROGRAM: ECHO - Echos command line args to output. USAGE: ECHO [arg1 arg2 arg3 ... argi] FUNCTION: ECHO copies command line args to the output with one arg per line. Because the CP/M translates characters into upper case and deletes spaces, and because the I/O redirection and pipes use <, >, and + as markers, some special conventions are provided to get around these restrictions. These are: \ Literal follows. Used with restricted characters like \+ . _ Space. may be used as a space. Use \_ if you want a literal _. ~ Lowercase flag. Letter which follows goes into lower case. EXAMPLE: ECHO HELLO! ECHO HELLO_THERE {Both words go on one line} ECHO HELLO THERE {Words go on separate lines} ECHO XSUB COPY B:=*.HLP B:=*.COM . >COPY.SUB {Builds a submit file to copy files} Command Line ___________________________________ | | ARGUMENT LIST | | | ______________V______________ | | Standard Output | | ONE ARGUMENT PER LINE | ECHO |-----------------------> | | | | |___________________________| MODDATE.CMD by Rick Charnes, San Francisco, 10/25/87 The successful operation of MODDATE.CMD requires DATEREG.COM to have been run previously, preferably by inserting it in one's startup alias. This is another alias that works beautifully to do what I would like to teach myself to write in assembly language. MODDATE (to be inserted in your ALIAS.CMD) is used to manually set the creation date of a file. Syntax is: MODDATE SMITH.LTR 05/01 where the user desires to set the creation date of SMITH.LTR to be May 1, 1987. The alias is: MODDATE time 87/$2 12:00;time;save 0 $2;savestmp $d1$u1:$:1.$.1=$2 << era $2;tdir $1;time $r7/$r5/$r6 12:00;time First we set the system date with the TIME.COM program supplied by Carson Wilson in Z80DOS10.LBR. Our second parameter is the month/day, which should be entered in the form 'MM/DD', with the slash included. The parameter becomes a parameter for TIME.COM, using '12:00' as a dummy time. Running TIME again confirms that we have changed the date correctly. Then we SAVE a 0-length file whose directory entry will be stamped with the new date. Then SAVESTMP runs, copying the date of our 0k file onto our current file. Next, the 0k file, having served its purpose, is erased. TDIR is run to display the changed date. Finally, since we have previously run DATEREG and the system date is stored in ZCPR3 registers 5, 6 and 7, the next command expands as: TIME yy/mm/dd 12:00 which is how TIME.COM requires its parameters. I'm going to try to do an assembly language version of this. Using Carson's new BDOS functions should make it quite easy. vSAVESTMP.PA$ )JRPP%@h(i13An2ł^2 xLnRc7"9 8N3A Aq M͆9l<eΎzf3kF㠂rr9M㘀fD gjEp6j3p #gc3 9NFcaǐnfڤ@oÈ գgbW+yM"cv9ѦѪq8"JWZEZֺwiђU gS_9931AL=Anndel  AEVmJ=DTD8IIX|MEЀ.$5 DUYPṿA1wlu nWaBDCQ O@'| cxsuazd&9de\U|u$`@ a!Hm1\O%b<.wb8zdxZ'5vOQU(  m*XԮrcР1 Bi}eǭB dyY-VFA)4Ðp{9h + oJmweG6]sa݅5T zy&w|(=P'j+%)RV%kZV(旾ltѡyU?NQ L~]@)H p4&k^D"[*򡲙sI~U%'A:D`mA<:- ?CDfTN.pGrDone. No time stamps present on destination disk! p not found. Write error! ~#l V ͔ C HHL y yG>GO> b͆>.͆ †   >^@O*. "*+++=* H  H|3$}3~# x$ ~+ x9.k6  #6 > > _> { Z3ENV SAVESTAMP: :(:]/:^ Version 1.0. Copies Z80DOS file create date. Syntax: SAVESTMP [du: or dir:]dest.fil [du: or dir:]source.fil - ZCPR usage SAVESTMP [d:]dest.fil [d:]source.fil - CP/M usage * |2D( :y_ l<6E:D( :i_ \<=:!(òStoring creation date of mn . . . :\(=__'''_W!!E>Done. No time stamps present on destination disk! n not found. Write error! ~#j T ͒ A FFJ y yG>GO> Ϳ`̈́>.Ϳ̈́ Ŀ„ ҿʿʿʿ ʿ ʿ>^Ϳ@ͿO*. "*+++=*H  H|1"}1~# x" ~+ x7,bk6  #6 > > _> {LOG e l%>ogging date of %<$2...;echolog $r6/$r7/$r5 >>$2.dat;$* MODDATE time 87/$2 12:00;time;save 0 $2;savestmp $d1$u1:$:1.$.1=$2;era $2;tdir $1;time $r7/$r5/$r6 12:00;time TODAY echo t%>oday is the $r5th day of the $r6th month in the year 19$r7. vDATEREG.Z80$  #ya6!E)HTu: (j@R4br7Nqx!t2!c:FSb9 $ -ByLA2 * 9FS J6MȀo1̍&uh`0u5CER<aZ 1Ά~XPu6Ϩ5Tyepuu9f1PG#qJVDh1kFSq^6Z,Fs4Mu9)XsIs"QB=HkT}cc O ,%j[Z]iE` P0^ՔrxpAIJQ10 E!TN OmO!ApW!U0 AG_F0mtVWeEz9KdEoewéwI`5ЀmݓUqy W2 .L_yRfpjUFIqyvo^ՙ(ADމ(rJEZ{UaFjG(Ƭ.5v^!J cd+4UUVGZѤma߶eGQu=iV%Z` UBeq? ^vVt᝘~5xVql;QeoƖES@1 0B0uDQ;9XЃo/=V5yqx3Z $BVLYR\.FpC @̱5 X윀Xڃ@lU$:Rаn ň3 +@A<8hP H P