e an update when831030 ALL SUBC SUBF SUBKLOCKS MAC KLOCKS RELL SUBPORTABLEH S SUBSAVER C STAMP C *0STAMP COMZwSTAMP DOCGSTAMP H STAMP REL&STAMPA COM?wSTAMPA RELSTAMPCUSCOMzSTAMPCUSRELJSTAMPIT C gKSTAMPIT REL3STAMPX H STAMP DOCDcc stamp m80r =stamp era stamp.mac cc stampit m80r =stampit era stampit.mac ex l wm $1.c cc $1 -$2 m80r =$1 l80 $1,$3crunlib/s,$1/n/e wm $1.c cc $1 -$2 m80r =$1 era $1.mac  TITLE 'Subroutine for Scitronics Clock - AIL' entry klock? ; ; On entry, DE must hold the address of a buffer area ; which should have the string: ; .ascii 'yr/mo/da hr:mn:sc' ; ; This subroutine will fill in year, month, day and ; hour, minute, second, leaving the /'s and :'s untouched. ; ; PORT definition PORT equ 18H ; KLOCK?: push b ;save stack frame lxi h,4 dad sp ;get destination on stack mov e,m inx h mov d,m LXI H,KBUF PUSH D ;save destination address PUSH H CALL KLOCK5 ;read the clock POP H POP D MOV A,M CPI 0FH pop b ;restore stack frame RZ ;clock not installed CALL KLOCK1 ;convert year digits INX D ;skip the slash CALL KLOCK1 ;convert month digits INX D CALL KLOCK1 ;convert date digits INX H ;skip day-of-week digit INX D ;skip the space between CALL KLOCK1 ;convert hour digits INX D ;skip the colon CALL KLOCK1 ;convert minute digits INX D CALL KLOCK1 ;convert second digits RET ; KLOCK1: CALL KLOCK2 KLOCK2: MOV A,M ADI '0' STAX D INX D INX H RET ; KLOCK5: MVI A,0F0H OUT PORT+1 MVI A,0FH OUT PORT MVI A,7FH KLOCK6: INR A JNZ KLOCK6 MVI A,0FCH OUT PORT+3 MVI A,0F4H OUT PORT+1 OUT PORT+2 LXI B,0DH DAD B DCX H KLOCK7: MOV A,B OUT PORT NOP NOP NOP NOP NOP NOP IN PORT ANI 0F0H RRC RRC RRC RRC MOV M,A DCX H INR B DCR C JNZ KLOCK7 LXI D,8 DAD D MOV A,M ANI 3 MOV M,A DCX H DCX H DCX H MOV A,M ANI 3 MOV M,A MVI A,0F8H OUT PORT+1 MVI A,0FH OUT PORT MVI A,0F8H OUT PORT+3 MVI A,0FCH OUT PORT+1 MVI A,0FH OUT PORT MVI A,0FCH OUT PORT+1 OUT PORT+3 RET ; KBUF: dB 8,2,0,5,1,7,1,1,2,2,6,2,2 END Xd4@֘!%XCf@Vm:pO{ͦ6m0 i&ͦ6m0 i%LaH&#d 0 D?aѦi $Vximx<;Wwg0 >|4#{L0>|4cL2>L2 A @@ 0iigera *.$$$$$$ l80 stamp,stampit,klocks/s,crunlib/s,stamp/n/e stamp -l /* portable.c - define whether or not its portable A. I. Larky - 830815 Version of 830910 Revised 831030 for SYS function */ /* to get portable version, uncomment the line below */ /* #define PORTABLE 1 */ /* to get the ask-for-date-and-time version, uncomment the lines below. PORTABLE and ASKFOR are mutually exclusive. 830910 */ /* #ifndef PORTABLE #define ASKFOR 1 #endif */ /*======== end of portable stuff =======================*/ /* to reverse the sense of the -a option so that SYS files are processed normally, uncomment the lines below */ /* #define SYS 1 */ wm stamp.c cc stamp -$1 m80r =stamp era stamp.mac l80 stamp,stampit,klocks/s,crunlib/s,stamp/n/e #include "qstdio.h" static unsigned clock; char now[] = "83/08/06 00:00"; main() { static unsigned size = 0; static unsigned end; int numb,i; char c,*p; if(size == 0) {printf("\nEnter length of your clock program\n"); printf("Be sure to allow enough space: "); clock=malloc(1); numb=0; while((c=getchar()) != '\n') numb = 10*numb + c-'0'; size = numb; malloc(size); /*reserve the space */ end=malloc(1); /*find out where it ends*/ numb=(end-0x100-1)/256; if(((end-0x100) % 256) != 0) numb=numb+1; printf("\nSave %d SAVERX.COM now\n",numb); printf("\nYour clock program should be loaded at %xH\n",clock); poke(clock,0xc9); /* put an RET, just in case you execute */ exit(0); /* saverx without loading a clock */ } else {printf("\nThe values of clock, end, and size are: %x %x %u", clock,end,size); clk(&now[0]); printf("\nProgram may continue.\n"); printf("\nTodays date and time is: %s\n",now); exit(0); } } clk() { #asm lhld clock? ;get the pointer to the saved space shld go+1 go: jmp $ ;jump there, preserving the stack #endasm } /* Time-stamping program - A. I. Larky - 830709 With customizing additions - 830808 General cleanup of code - 830817 Revised ASKFOR code - 830910 Don't read clock on list only - 831006 Control SYS file entry with a - 831030 */ #include "stamp.h" /* header file for stamping */ #include "portable.h" /* file to say if portable */ #ifdef PORTABLE static unsigned clock; /* clock space */ #endif main(argc,argv) int argc; char *argv[]; {register int i,j,tabpos, all, /* show all files flag */ lflag, /* listing request flag */ qflag, /* quiet (no console out) */ selflg, /* selective update flag */ uflag; /* update required flag */ char c,*p; static char hello[] = "\nStamp File Program - A. I. Larky - 831030\n"; static unsigned size = MAXFIL*NAMLEN; /* alloc size */ #ifdef PORTABLE static unsigned end,sz = 0; int numb; #endif #ifndef SYS all = /* normally don't show SYS files*/ #endif /* but its a reversible option */ disk = /* use default disk for I/O */ lflag = /* no listing */ ocount= /* no active outputs */ selflg= 0; /* no selective updating */ #ifdef SYS all = /* to show SYS files normally */ #endif qflag = /* console output legal, so far */ uflag = 1; /* update is the default case */ #ifdef PORTABLE if(sz==0) {printf("\nEnter length of your clock program\n"); printf("Be sure to allow enough space: "); clock=malloc(1); numb=0; while((c=getchar()) != '\n') numb = 10*numb + c-'0'; sz = numb; malloc(sz); /*reserve the space */ end=malloc(1); /*find out where it ends*/ numb=(end-0x100-1)/256; if(((end-0x100) % 256) != 0) numb=numb+1; printf("\nSave %d STAMPX.COM now\n",numb); printf("\nYour clock program should be loaded at %xH\n",clock); poke(clock,0xc9); /* put an RET, just in case you execute */ exit(0); /* saverx without loading a clock */ } #endif i=0; while(--argc) {p=argv[++i]; if(*p=='-') while(*++p) {switch(*p) { case 'A': /* control recording of SYS files*/ all = all - 1; /* reverse the flag */ ++uflag; /* all implies an update*/ break; case 'D': /* select I/O disk */ if(((disk = *++p) - 'A') < 0) {fprintf(stderr,"\nError in disk specification\n"); exit(1); } break; case 'H': /* print help listing */ help(); exit(0); /* leave quietly */ break; case 'L': /* list the stamp file */ lflag = 1; --uflag; /* list alone means no update */ break; case 'O': /* output to named file */ ocheck(); /* check output count */ while(*++p == '\0') ; /*skip intervening blanks */ j = 0; while(*p != '\0') fcb[j++] = *p++; fcb[j] = '\0'; if((lst[ocount++]=fopen(fcb,"w")) == NULL) {fprintf(stderr, "\nError in opening output file '%s'\n",fcb); exit(1); } --p; /* recover the separator */ break; case 'P': /* output to lst: device*/ ocheck(); /* check output count */ lst[ocount++]=fopen("lst:","w"); break; case 'Q': /* turn off stdout */ qflag = 0; /* we won't open stdout */ break; case 'S': /* selective update */ selflg = 1; ++uflag; /* must do update to select */ break; case 'U': /* ensure an update when listing*/ ++uflag; break; default : /* bad parameter gets help list */ help(); exit(1); /* death on error */ break; } } } if(qflag) {ocheck(); /* check for room */ lst[ocount++] = stdout;/*make stdout available */ } for(i=0; i=(DATLEN+TIMLEN)) break; } } #endif help() /* print the help message */ { fprintf(stderr,"Time-stamping Program options:\n"); fprintf(stderr," -a enter all files (SYS also)\n"); fprintf(stderr," -dx stamp disk 'x'\n"); fprintf(stderr," -h print this help list\n"); fprintf(stderr," -l list current stamp file\n"); fprintf(stderr," -ofn output to file 'fn'\n"); fprintf(stderr," -p output to lst: device\n"); fprintf(stderr," -q no console output (quiet)\n"); fprintf(stderr," -s selective update\n"); fprintf(stderr," -u add/del files (default)\n"); } á 83/07/19 15:14:36V+ V+V+ V+ :+!;p"n:H$!K"< ڒ+"n:~w#~@´,~k+#^#VHk+*; H *;{Hl*u:!"c:"e:!=-w!<>8:b:8!b:44!2-w!=<>8,*:|,́:7=<2;ā2;,!,-!,-*:|N,>,H:7=<>,uǴ:7=<2;ā2;!,-,\,"H*;|t,d,Hͮ:=ʋ,>HbH͢HNo Fatal error(s) Warning(s):;GHk+-!,-,REPT/IRP/IRPC/MACROUnterminated -!&--> > :7=<> uG> uG!,w:7=&2<Ç.&.:<.>&y72<*<~T.;I.O+I. 9.x+~I.+.:<*<~ʅ.;z.O+z. l.x+~z.^.<*u:T &..G~# ʥ. ­..Ù.x.G .& .5 "u: . .5 ...Ͱ ´..Ͱ ... ;//8. 7 /88 / /+8"<7 7> y77:.!1!1?*0%0,0 0 0;0!( 1w+ /"00b&:*; 0: :w0W0PX D0|B0>:ï0)0͛0>)d00͛0=`00D͇0E͇0 >0ï0x͐0x0:ڛ0 ¯00O:گ0>0ͯ0y*0w+"05 *00Ow+ 0 10w+ 0/0w+00000{=*u:+~ 5 5 00!:͂ 41#6 +͇.&̇.:ʇ.! Y1iÇ.!c1h ?Stack overflow, try more P switches b&:*; ʘ1" Q1T :T ͑-1w:y7 1ɯy77!*<*&!ɷG-"<Ͳ/O:*; 2*<-y6+,Ē53( <Ēw+:*; 3GC3/ ʍ3>ʐ3$3" <2< Stamp File Program - A. I. Larky - 831030  Error in disk specification w Error in opening output file '%s' lst:w%s Not enough room for directory table createcloseTime-stamping Program options: -a enter all files (SYS also) -dx stamp disk 'x' -h print this help list -l list current stamp file -ofn output to file 'fn' -p output to lst: device -q no console output (quiet) -s selective update -u add/del files (default) * $;! !I:"~ ",:"n ! !I:I:"*:!"$:! @:+I:! *$:#"$:)! @:@:I:! @:2:-d:! @:#I:2:|! @:2: **:+"*:! @:#I:! @:#I:2:"n r:ʐ *5! !Ͱ&!Y&$!Y&!",:! @:+I:3! @:#I:2::º !"&:! @:8:!l: *&:#"&:+!! @:#I:+2:} *&:!6*~ #"~ +)!t !! &I::` *5! !!Ͱ&!9!Y&! @:+I:3*~ #"~ +)!t ! ! &I:i`6#6! 6#6! @:#I:! @:#I:$!Y&̀; U S Q Pp O L H DV A?  >:|)3*~ #"~ +)!t * 5I:!"$:*$:*~ s:mj*$:#"$:+)!t @:! ! !Ͱ&!9/?! @:|ʁ!\#!}2j*,:|ʫ! @::ʫ!Y&* s4"K:*5! !Ͱ&!Y&**:"(:*K*(:! ^! @:|*(:!!M! ͟! "$:*$:r:C@*$:#"$:+!6$.!!-"r #:j!D ͖!Y&*(:!*p I0*r I0#:ʑ!K ͖!M!'1!!'͡;!"$:*$: r:*$:#"$:ñ*$:!'*$:!'2:}! "$:*$: r:*$:#"$:+!'6$!!'͡;< *5!Q !Ͱ&*5!q !Ͱ&*5! !Ͱ&*5! !Ͱ&*5! !Ͱ&*5! !Ͱ&*5! !Ͱ&*5!: !Ͱ&*5!` !Ͱ&*5!} !Ͱ& write DEL: %s Can't %s output file %s - Good Bye! %s Can't open old file %s Enter names of files to be updated in the form: filename.ext Enter return only to terminate input. >Improper filename format File %s matches File %s does not exist b:-*.*no STAMP file on disk The STAMP file is %s File Name Date Time Rev. Too many outputs. This disk contains %d files %c UPD: %s ADD: %s ʹ;! ! @:! @:I:!"$:*$:! @:s:*$:#"$:ô! @:+I:! @: ;0}! ! @: ;I:;ʹ;!"$:*$:r::*$:#"$:+!n6;;!"$:*$: r:ʯa*$:#"$:H*$:)))))!nI:>: :3:}>: :3:}>:6 >:#6 W*r !n!J/#:!͖!Y&<ʹ;!"&:!"$:*$:! @:s:1'*&: :! @:#I:+2:"&:*$:#"$:*&:|;;i`6#6>:*~ s:ʉÆ>:#I:+)!t @:!! @:!Ͱ&!9EU!-<ͽ;!!'1!!'͡;*5!! @:!!Ͱ&! 9!Y&;!I:! ͍###I:! !nI:>:8:!l:! @:<{::Ͱ ! ͍I:! ! @:>:! ͟I:! @:#I:+6.! ! @:>:!͟I:! @:#I:+:3:}! @:#I:+:3:}! ! @:>: ! ͟I:! @:#I:+:3:}! @:#I:+:3:}! ! @:>:!͟I:! @:#I:+:3:}! @:#I:+:3:}! ! @:>:!͟I:! @:6! 6#6! @:*~ s:! @:#I:+)!t @:!! @:!Ͱ&!9×ë! @:#I:!I: *p I0Ͱ -< ͽ;! @::b!""!M!F-"p #:b*5!!M!Ͱ&!9!Y&**|:ʠ!"*p !n!E. ;"|:ʠ!*)))))!n!" *)))))!n 6*#"+)))))!n|;*5!4!Ͱ&*5!Y!Ͱ&*5!{!Ͱ&!|! ! I:*5!!Ͱ&!"&:*&: r:ʍg*&:#"&:N&} d:*&:! @:0:}]*&:! @:6*&::´! @:2: d:! @:!'1#:*5!!Ͱ&! 6#6!"(:*(: r:;! ! @:ͺ:I:*(:#"(:+!'2:?d:8! @:#I:!"(:!"&:*&:! @:s:e*&:#"&:G! *&: :*KI:!(! @:! @::! @:l:*5!! @:!Ͱ&!9*(:#"(:! @:! @:8:!O:}[*(::*5!!(!Ͱ&!9"<;i`6#6!!1!:}2N*n :f!}2}2'!!͡;A}2M}*n #}2}2'*n }2M!!͡;"$:d:ʰ*5!!Ͱ&!Y&*$:)))))"$:!"(:!"&:*&: r:9*&:#"&:+*&:d:*&:##!M6.!"(:*&:#!'*&:*(:##!M*$:>:*&:8:!]:}}!}2[}23!"&:*&:*~ s:ʈÅ*&:#"&:+)!t @:!!M!Ͱ&!9JZ<;i`6#6>:*~ s:õ>:#I:Ù>:)!t @:!!Ͱ&>:)!t @:!8!Ͱ&é!|-<;! @:8:!l: ! @:8:!l:ʕ! @:]:b! @:! @:8:2::I:l:b>:Ø! ! @:ͺ:I:! @:#I:! @:#I:!|-<ͽ;! @:+I:#|! @:! @:#I:+2:}! @:#I:+â! @:+I:ͽ;! ! @:38! !\38! ! @:!͒!Z*~ d:Y*5!G!Ͱ&!Y&ʹ;! @:!"[!"$:*$:r:ʶÒ*$:#"$:y*[)))))*$:!n*$:! 2:}È*[#"[ d:=!"[*[ l:=̀;sg;;i`6#6!?}2!"$:!!͡;"&:*&:l:*&:)))))"&:! @:|d*&:>: 8:!]::g!!"(:*(: r:ʼÊ*(:#"(:+p*$: :*K*(:*&:>:*(:8:!]:}*$: :*K*(:6*$:#"$:+!!͡;"&:&!"(:*(:*~ s:1.*(:#"(:+)!t @:!]*$:!Ͱ&!9*$:|<ͽ;! ! @:! ͟!Z;!& @:;"$:*$:s:ʫ Ó*$:;"$:t*$:"&:*&:!& @:s:ʨ ø*&:#"&:+Ù*&:*$::"(:*(:{:ʥ *(:*$::"(:!$ @:*(::!( @:*(:*$:!$ @::!( @:m8|:¥ !$ @:*(::!( @:38!$ @:*(::!( @:*(:*$:!$ @::!( @:38*(:*$:!$ @::!( @:38íÃ< ;i`6#6>:*~ s: >:#I:+)!t @:!z! !Ͱ&!9ü -<;!Z! !I:!"(:*(:! @:s:"*(: :*KI:>:8:!]:"&:>:>:8:!]:}>:! @:m8"$:s:ʘ!! @:8:!l:ʳ!! ! @:9I:"*$::]"*(:#"(:*&::!! @:;! !I:Z"!"*:**:*~ s:4"1"**:#"*:+)!t @:!~! @:!Ͱ&!9!"! @:* #" ! !I:"*$:r:y"! @:2:d:"!"*:**:*~ s:"ý"**:#"*:+)!t @:!>:!Ͱ&!9Â"Ò">:!*(:#"(:%!! @:8:!l:#! ! @:9I:"!Z<!9^#V!#I#~?#?#?##?#?#?#B#~0#>>>> +xw+ f#~w+++~w>>>>>>Too many command line args rw;b*##"#+2:"#i`"#! ! !}}}*##"#+)!#*#I:*#+"##|r%*##"#+2:"#*#J%*#͔9P$*#d:ʝ$!#*5-)!Y&*#"#*#<d:ʹ$! "#$*#>d:$! "#$*##"#+)!#*##I:*#"l:a%P$*#͔9 %!"#"#*##"#+*#}P$*#"d:0%!"#"#a%*#͔9G%!"#"#a%̀;"%>$<$q$3%*##"#*#}P$*#<d:‡%*#>d:ʒ%*#6Û%*##"#6! 2:l:%! !$&" 5:%! $&! 2:l:%! ! $&" 5:%! $&*#!#ͨ !Y&-<Can't open: %sͽ;*5!&! @:!Ͱ&!9!Y&A:$$$.SUBʹ;!5"$:!"&:*&: r:ʖ&Ë&*$: "$:*&:#"&:h&*$:͟(w&! @:|ʪ&!O&ͺ0͹1;ʹ;! @:)! "$:!g+*$:@:*$:++y5;* 5`)LST:ʹ;!5"$:!"&:*&: r:3''*$: "$:*&:#"&:&*$:8:!]::3' '*&: {:E'!Ú(! @:2:8ü'!"*:! @:!F-"(:'!"*:! @::4!&m8:ʟ'!"(:ó'! @:!-"(:'!Ú(̀;Wt'RW''*(:#:'!Ú(! @:#2:8Bd:(**:O:"*:*(:l:(*$:8:!]::N(*$:!s4I::>(!Ú(*$:2:O:}*$:#*$:@:I:*$:2:**:O:}*$:###6#6*$:6#6*$: *(:}*$:|;ʹ;! @:"$: 2:d:(*$:2:]:}!()*$:8:!]: )*$:8:!]::)!*$:g+*$:|,*$:2:]:}*$: 2:I0|;ʹ;! @:#I:+2:"$:|])*$:! @:g+0);ʹ;! @:"$:+:)*u5"&:l:ʌ)!"u5õ)!!͡;"&: d:ʵ)!! "&:͡;*&:d:)!)*&:ÿ**$:8:!]::)*$:8:!0]:)!)!ÿ**$:@:"&:l: **$:6#6]**$:###@:+I:{:R**$:#@:#I:+8:!]:Z**$:*"&:*$:8:!]:s**&:ÿ**&: d:ʊ**$:`)"&:*&:d:**&:#:ʶ**$:2:O:}!ÿ**&:]:|;ʹ;! @:"$: 2:*$:@:"&:!E."(:|::+*(::+*$:2:O:})+*$:2: O:}*$:###6#6!b+*$:###*(:+I:*$:#*&:#I:*&:8:!]:|;ʹ;! @:"&:! @:"$:*&:d:ʶ+*$: d:ʣ+! *&:g+!*$:͡;*$:w,*&:8:!]::+!w,*$: d:+*&:8:!]::,! *&:g+#:,!w,*&: 2:d:,,!*$:͡;*$:w,*&:###E:!|:S,*&:|,#:S,!w,*&:###@:#I:*&:#@:#I:+*$:}|;ʹ;! @:"$: 2:d:ʟ,!A-*$:8:!]::,*$:8:! ]:,!,!A-*$:###@:;:"&:*$:###6#6*$: 2:*$:#*$:@:I:*&:J/*&:s:>-*$:2: O:}!A-!|;ʹ;! @:"$:r:q-*$:s:q-0"(::z-!-*(:F1"&:! @:*&:#1#:²-!*&:#͡;d:ʻ-!-*&:*$:#}*(:|;ʹ;0"&::-!@.*&:F1"$:! @:*$:#1#: .!@.!*$:#͡;!*$:#͡;d:8.!@.*$:6*&:|;ʹ;! @:"$:4d:a.͹1! @:F1"(::˜.*(:8:!]::˜.*$:;|ʛ.!ʤ.!E/*(:8:!]:ʺ.!E/*$:;"$:!"&:*&:*$:s://.*&:#"&:.!! @:͡;!*(:#͡;/*(:2:O:}//! @:I:.!!͡;*&::|;ʹ;! @:"$:4d:f/͹1! @:F1"(::­/*(:8:!]::­/*$:;|­/*(:8:! ]:ʰ/!ʹ/!D0*$:;"$:!"&:*&:*$:s:.0/*&:#"&:/!! @:͡;!*(:#͡;0*(:2: O:}.0! @:I:/!!͡;*&::|;ʹ;! @:F1"$::g0!õ0*$:2:"&:*$:6*&: ]:ʈ0!õ0*&:]:ʲ0!*$:#͡;d:ʲ0!õ0!|;;!( @:1l:0!͡;d:0!0!0!|-<$;!"$:*$:F1I:l:<1>:2::21*$:?1*$:#"$: 1!|<ʹ;! @:"$:"$:{:l1*$: r:ʱ1*$:)!4@:"&::ʫ1*$:)!4!%s4I:"&:l:ʫ1*&:6*&:ô1!|;!!͡;ʹ;! @:"&:! @:"$::4"$:#8:!:l:2*&:#"&:+652*$:2:$9:2!54*&:#"&:+*$:2:}*$:##"$:! ",:!"(:*(:|:ʲ2Z2*(:#"(:A2*$:#"$:+2:"*::w2**:.d:²2**:8ʋ2!54**:*d:ʠ2!?",:ò2*&:#"&:+**:}P2*(:|:22*(:#"(:ò2*&:#"&:+*,:}2**:l:2**:.l:3*$:#"$:+2:"*:l:3**:.l:3!54**:|43*$:#"$:+2:"*:! ",:*(: |:ʢ3S3*(:#"(::3**::¢3**:8m3!54**:*d:ʂ3!?",:â3*&:#"&:+**:}*$:#"$:+2:"*:I3**:l:ʷ3*(: d:3**:*d:3*$:2:"*:**:l:3!54*(: |: 43*(:#"(:3*&:#"&:+*,:}3*(:$r:24%4*(:#"(: 4*&:#"&:+64!|;ʹ;! @:"$:*$:*$:2:8}g4*$:#"$:G4! @:|;ʹ;! @:"$:ͯ4*$:ͅ:ʓ4!ê4*.:*$:".:*$:*.::|;;i`*.::*w5:-<! !͡;]:4!!͡;4!|;! @:",:++",:##@:"&:*&:#"&:+2:"(:|7*(:%l:5! @:*(:! @:!5Õ5*&:#"&:+2:"(:67!"*: 6!"*: 6! "*: 6!"*:*,:++",:##@:**:7"$:*$:2:|X6! @:*$:#"$:+2:! @:!S6%6Õ5! @:*,:++",:##@:! @:!6Õ5*,:++",:##@:"$:*$:2:|6! @:*$:#"$:+2:! @:!6Õ6Õ5! @:*(:! @:!6Õ5̀;s6c[6d6u5x5o556Õ5<ʹ;! @:r:67! @:d:O7!"*:! @::"$:_7!"*:! @:"$:! @:d:x7! 6 #6! @:"(:"&:*&:*$:! @:A;0}9s:ʶ7*&:2:}*&:#"&:*$:! @:A;"$:ͅ:…7**:|7*&:#"&:+6-*&:6*&:+"&:*(:̈́:'8*(:2:",:*(:#"(:+*&:2:}*&:*,:}7! @:|;ʹ;! @:"$:*$:#"$:+! @:#I:+2:}@8! @:|;ʹ;! @:"&:! @:"$:*$:*&:8:2:d:ʻ8*$:2::ʪ8!8*$:#"$:*&:#"&:Ä8*$:*&:8:2::|;ʹ;! @:"$:p98*$:8*$:|;ͽ;! @:9 9! @::: 9!|ͽ;! @:L9E9! @:p9H9!|ͽ;! @:A{:l9! @:Z|:|ͽ;! @:a{:ʐ9! @:z|:|ʹ;! @:"$: d:9*$: d:9*$: d:9*$: d:9*$: d:|;ͽ;! @:{:9! @:|:|ͽ;! @: {: :! @:~|:|d*G_s8){_zWu;zu;k;{u;}o{_zW=~;S;N# ;#~#•;~ʚ;##Å;#~#fo!9^#V#No`!9;!9DM~#T]fo9DM*$:*&:*(:**:*,:~#T]fo9DM",:"*:"(:"&:"$:",:"*:"(:"&:"$:`i/<~#fo99;!9DM~#T]fo9DM*$:*&:*(:**:*,:~#T]fo9DM",:.h Stamp.Doc .fo Stamp.Do - Ho t Us th Stam Progra - Pag # Copyright (C) 1983 Arthur I. Larky 1320 Gaspar Avenue Bethlehem, PA 18017 (215) 865-2178 S wha d yo d wit thos '- file tha yo us t maintai catalo o th file o you disks The don' hav t contai anythin sinc the serv merel t identif th disk Yet i woul b nic i the coul hel yo kee trac o whic versio o th fil i o particula disk I fact wha woul b nic i time-stampin metho t identif th dat an tim whe fil wa place upo give dis o update o th disk STAMР i progra (writte i Q/C' C t d jus that O course yo nee rea tim cloc t provid th dat an tim information (No really yo ca fak i i yo wish.) Wha STAM Does STAMР read th dis director searchin fo th '- fil name The i read th res o th directory sort it an merge i wit an dat i find i th '- file Th merg i simila t tha o UCA i tha name i th '- fil whic ar no i th director ar delete an name i th director whic ar no i th fil ar added wit appropriat messages Thu yo en u wit ne fil wit th name o th file currentl o th disk STAM ma b use t lis th fil s yo ca se whe eac fil wa added bu th fil i a ASCI tex fil an ca b type o edite i th usua manner Furthermore eac fil contain versio number startin a 000 whic ca b update b th '-s optio o STAMP Wit tha brie background her ar th options: STAMP no optionsdoe th updatin functio o th currently logged-in disk. STAMP -anormally STAMP ignore file wit th SYSte bi set Thi optio cause SY file t b include i th stam fil list Th updatin function is turned on, of course. STAM -d use dis x (x thr p a th disk to be read and written. STAMP -h prints a help list. STAMР - list th stam file alsturn of th updatin function whic ca b turne bac o wit th - option. STAMР - fil th outpu othprograi writ- te t th name file Mor tha on fil ma b name (depend upo wha els yo do an th fil ca hav th usua dis spec ifier. STAMР - th outpu i writte t th LST device. STAMP -q quiet mode - only error messages appea a th console Presumabl yo ar sendin everythin els t a file or the LST: device. STAMР - selectiv updat mod - yo wil b aske fo th name o th file yo wis t hav updated Ambiguou name ma b used Th progra doe no permi yo t edi th name i yo mak mis tak i typin them bu wil rejec the benignl i yo d somethin lik backspac o de lete Th versio numbe o th file entry is incremented. STAMР - th-optioturn of th up- dating bu - turn i bac on (S doe th - option o course.) Ther i considerabl freedo i combinin th options The ar al compatibl wit eac other excep fo - whic print it messag an dies Th onl on whic i a al fuss i th - optio whic require tha ther b a leas on spac afte th fil name bu doesn' car abou space betwee th an th name Som example o satisfactor option are: stam -ql fred.zo Th listin i sen t th fil 'fred.zot' bu no t th console. stam -delofred.zot Sam a above excep th dis liste i dis e bu th 'fred.zot fil wil b writte t th curren disk. stamp -sdb >fred.zot -YV tEY F"aKCB.QPf0!"ghʹL;*B1]bf'( D:|!!\˭cvxBYe^!Yr@>84P@ՕB٠n6PriDU" ʦb<ᰗ(rmE@Vmh4D@$9ET !h@@K6*nVh(%9D 4Z-,"`B@hv| U_b++updl$a6(Hr@DEl,ʹ bf f 6YDUB*Vmhٶ |9 %ͷmJrq 4Z"!ĀVhh@P@0Ͱlå "#RFR@@@uq e*@$ k( DaA$"\\AuUSb*+uq dl$aF\Q$rh0#E vh@(r9BI@d4bc4&3 o7p(r9BI@o8MƓq@o:Si6Dq)N gAq 2S9@r7͢1 2NFSr< FS 1 3([*nQN r@@+6Z-UrspKB9Y@h#CB\ʹ@DUj`VmhZ"t(rn0#E\G(zD v-9D8T)!hEW!NQfFE*@Q] r@@+6Z-UrsSB9Yhe%CI-9 &ӁgF9mCIs@ Dn:NB 3MSPS,a)@-2a6CI @ @ 8&㠀h4) 6Ng@P@ `@  '3u9㠀t0N1e@-7t8N@f4 9'@-8t8N@l9B!i1A@@  N"@n7 fql2 St 'SI)@-9l2Ά@u8 'C(( i@  &C e6 Ɠa  c t~*i ~c*jQ ~ci鱀~wG豀~Q~jQ~ Jq~WGF~hѓ~g豖&~gq@F~g鈱~jF1`&~骩04~Cgȱ~G`$~Gqp&~k ~豀~ꩈ~G  JiJih<k*ig`:hG<m)0,2 I)ʑ,c誉)0Jk)J@ iig))<ɨ)q0<H)Jpiiq簌kꪈJaG'~dGg`8~hG<}H<Jj)`\j) ,ʪ*0Jk)J@ iig))< 83/07/19 15:14:36V+ V+V+ V+ :+!;p"n:H$!K"< ڒ+"n:~w#~@´,~k+#^#VHk+*; H *;{Hl*u:!"c:"e:!=-w!<>8:b:8!b:44!2-w!=<>8,*:|,́:7=<2;ā2;,!,-!,-*:|N,>,H:7=<>,uǴ:7=<2;ā2;!,-,\,"H*;|t,d,Hͮ:=ʋ,>HbH͢HNo Fatal error(s) Warning(s):;GHk+-!,-,REPT/IRP/IRPC/MACROUnterminated -!&--> > :7=<> uG> uG!,w:7=&2<Ç.&.:<.>&y72<*<~T.;I.O+I. 9.x+~I.+.:<*<~ʅ.;z.O+z. l.x+~z.^.<*u:T &..G~# ʥ. ­..Ù.x.G .& .5 "u: . .5 ...Ͱ ´..Ͱ ... ;//8. 7 /88 / /+8"<7 7> y77:.!1!1?*0%0,0 0 0;0!( 1w+ /"00b&:*; 0: :w0W0PX D0|B0>:ï0)0͛0>)d00͛0=`00D͇0E͇0 >0ï0x͐0x0:ڛ0 ¯00O:گ0>0ͯ0y*0w+"05 *00Ow+ 0 10w+ 0/0w+00000{=*u:+~ 5 5 00!:͂ 41#6 +͇.&̇.:ʇ.! Y1iÇ.!c1h ?Stack overflow, try more P switches b&:*; ʘ1" Q1T :T ͑-1w:y7 1ɯy77!*<*&!ɷG-"<Ͳ/O:*; 2*<-y6+,Ē53( <Ēw+:*; 3GC3/ ʍ3>ʐ3$3" <2< Stamp File Program - A. I. Larky - 831030  Error in disk specification w Error in opening output file '%s' lst:w%s Not enough room for directory table createclose Enter date and time as: YY/MM/DD HR:MN Time-stamping Program options: -a enter all files (SYS also) -dx stamp disk 'x' -h print this help list -l list current stamp file -ofn output to file 'fn' -p output to lst: device -q no console output (quiet) -s selective update -u add/del files (default) *#ͯ;! !1:"~ ":"n ":! !1:1:!" :! (:+1:1! * :#" :)! (:(:1:! (::-L:.! (:#1::|.! (::*:+":! (:#1:+! (:#1::"n Z:ʹ *4! !͘&!A&+Ͳ!A&+!":! (:+1:+! (:#1::: !":! (: :!T:7 *:#":+!! (:#1:+:} *:!6*~ #"~ +)!t !! &1::ʉ *4! !!͘&!9!A&! (:+1:+*~ #"~ +)!t ! ! &1:+i`6#6+! 6#6! (:#1:+! (:#1:+Ͳ!A&+h; U S Q P O L H D Ah F  &:|R*~ #"~ +)!t *41:!" :* :*~ [:ʖÓ* :#" :+)!t (:! ! !͘&!9Xh! (:|ʪ!\M!}2jͨ*:|m! (::!A&* [4"K:*4! !͘&!A&*:͋":*K*:! ! (:|0*:u!!M! -! " :* :Z:li* :#" :+!6$HW!!Ͷ-"r #:ʓ!D $!A&*:͏!*p 10*r 10#:ʺ!K $!M!'ͯ1!!'͉;!" :* : Z:* :#" :* :!'* :!':}! " :* : Z:;8* :#" :+!'6$&!!'͉;; ;*4!Q !͘&i`6#6! &} T:ʭ! (:#1:+! :}&:#1:c:­k<*4!z !͘&*4! !͘&*4! !͘&*4! !͘&*4! !͘&*4!! !͘&*4!A !͘&*4!c !͘&*4! !͘&*4! !͘& write DEL: %s Can't %s output file %s - Good Bye! %s Can't open old file %s Enter names of files to be updated in the form: filename.ext Enter return only to terminate input. >Improper filename format File %s matches File %s does not exist b:-*.*no STAMP file on disk The STAMP file is %s File Name Date Time Rev. Too many outputs. This disk contains %d files %c UPD: %s ADD: %s ͜;! ! (:! (:1:!" :* :! (:[:ʞ`* :#" :B! (:+1:! (: :0}! ! (: :1:V;͜;!" :* :Z:* :#" :+!n6ê;ͯ;!" :* : Z:=* :#" :* :)))))!n1:&: :g:}&: :g:}&:6 &:#6 *r !n!2/#:f!h$!A&;͜;!":!" :* :! (:[:ʿõ*: :! (:#1:+:":z* :#" :Î*:|;;i`6#6&:*~ [:&:#1:+)!t (:!n! (:!͘&!9!͞<ͥ;!!'ͯ1!!'͉;*4!x! (:!!͘&! 9!A&;!͞1:! ###1:! !n1:&: :!T:ʎ! (:<c:>!! 1:! ! (:&:! -1:! (:#1:+6.! ! (:&:!-1:! (:#1:+::}! (:#1:+::}! ! (:&: ! -1:! (:#1:+::}! (:#1:+::}! ! (:&:!-1:! (:#1:+::}! (:#1:+::}! ! (:&:!-1:! (:6! 6#6! (:*~ [:qn! (:#1:+)!t (:!! (:!͘&!9%9! (:#1:!͞1:Ú*p 10>!< ͥ;! (::!""!M!.-"p #:*4!!M!͘&!9!A&**d:.!"*p !n!-. :"d:.!q*)))))!n!k" *)))))!n 6*#"+)))))!n|ͯ;*4!!͘&*4!!͘&*4! !͘&!|ʣ! ! 1:*4!0!͘&!":*: Z:*:#":&} L:*:! (::}*:! (:6*::B! (:: L:£! (:!'ͯ1#:o*4!2!͘&! 6#6!":*: Z:! ! (:͢:1:*:#":+!':?L:! (:#1:~!":!":*:! (:[:}*:#":! *: :*K1:!(! (:! (:͆:z! (:T:X*4!L! (:!͘&!9*:#":! (:! (: :!7:}*::ʠ*4!]!(!͘&!9ð;ͯ;i`6#6!u!ͯ1!:}2N*n :!}2}2'!!͉;A}2M *n #}2}2'*n }2M!!͉;" :L:>*4!|!͘&!A&* :)))))" :!":!":*: Z:o*:#":+U*:L:ʍ*:##!M6.!":*:#!'*:*:##!M* :&:*: :!E:}}d!}2[}23!":*:*~ [:*:#":+)!t (:!!M!͘&!9;;i`6#6&:*~ [:|C&:#1:'&:)!t (:!!͘&&:)!t (:!!͘&7!|<;! (: :!T:ʮ! (: :!T:#! (:E:! (:! (: ::͵:1:T:&:&! ! (:͢:1:! (:#1:! (:#1:Ë!|<ͥ;! (:+1:#|p! (:! (:#1:+:}! (:#1:+0! (:+1:ͥ;! ! (:8! !\8! ! (:! !*~ L:*4!!͘&!A&͜;! (:u!"͡È!" :* :Z:D * :#" :*)))))* :!n* :! :}*#" L:`͡!"È* T:rÈh;cc;ͯ;i`6#6!?}2!" :!!͉;":*:T:{*:)))))":! (:|*:&:  :!E::!h!":*: Z:J*:#":+* : :*K*:*:&:*: :!E:} * : :*K*:6* :#" :+!!͉;":ô!":*:*~ [:ʿü*:#":+)!t (:!* :!͘&!9ÁÑ* :|;ͥ;! ! (:! -!ͯ;!& (::" :* :[:9!! * ::" : * :":*:!& (:[:6!F *:#":+' *:* :͵:":*:c:3!r *:* :͵:":S !$ (:*::!( (:*:* :!$ (::!( (:U8d:3!!$ (:*::!( (:8!$ (:*::!( (:*:* :!$ (::!( (:8*:* :!$ (::!( (:8b ;  ; ;i`6#6&:*~ [:ʊ!Ç!&:#1:+)!t (:!! !͘&!9J!Z!<ͯ;!! !͞1:!":*:! (:[:e#*: :*K1:&: :!E:":&:&: :!E:}&:! (:U8" :[:&"! (: :!T:A"! ! (:1:b#* ::"*:#":*::z"! (:! !͞1:"!":*:*~ [:"ÿ"*:#":+)!t (:! ! (:!͘&!9À"Ð"! (:* #" ̀! !͞1:b#* :Z:#! (::L:b#!":*:*~ [:N#K#*:#":+)!t (:!&:!͘&!9# #&:!̀*:#":ó!! (: :!T:ʐ#! ! (:1:e#!;Too many command line args rw;b*##"#+:"#i`"#! ! !}}}*##"#+)!#*#1:*#+"##|Z%*##"#+:"#*#2%*#|98$*#L:ʅ$!#*4)!A&*#"#*#<L:ʡ$! "#$*#>L:ʷ$! "#$*##"#+)!#*##1:*#"T:I%8$*#|9$!"#"#*##"#+*#}8$*#"L:%!"#"#I%*#|9/%!"#"#I%h;"%>$<$Y$%*##"#*#}8$*#<L:o%*#>L:z%*#6Ã%*##"#6! :T:ʳ%! !#&"4:ʳ%! &! :T:%! !#&"4:%! &*#!# !A&<Can't open: %sͥ;*4!%! (:!͘&!9!A&A:$$$.SUB͜;!4" :!":*: Z:~&s&* : " :*:#":P&* :͇(_&! (:|ʒ&!7&͢0͡1;͜;! (:)! " :!O+* :(:* :++a5;*4H)LST:͜;!4" :!":*: Z:''* : " :*:#":&* : :!E::'&*: c:-'!Â(! (::ͺ8ä'!":! (:!.-":ó'!":! (:"4!&U8:ʇ'!":Û'! (:!Ͷ-":ó'!Â(h;W\'R?''*:#:'!Â(! (:#:ͺ8BL:'*:7:":*:T:(* : :!E::6(* :![41::&(!Â(* ::7:}* :#* :(:1:* ::*:7:}* :###6#6* :6#6* : *:}* :|;͜;! (:" : :L:ʺ(* ::E:}!)* : :!E:(* : :!E::(!* :O+* :d,* ::E:}* : :10|;͜;! (:#1:+:" :|E)* :! (:O+);͜;! (:" :+:ʵ)*]5":T:t)!"]5Ý)!!͉;": L:ʝ)!! ":͉;*:L:ʯ)!ò)*:ç** : :!E::)* : :!0E:)!)!ç** :(:":T:** :6#6E** :###(:+1:c::** :#(:#1:+ :!E:B** :ͬ*":* : :!E:[**:ç**: L:r** :H)":*:L:…**:#:ʞ** ::7:}!ç**:E:|;͜;! (:" : :* :(:":!-.":d:"+*::+* ::7:}+* :: 7:}* :###6#6!J+* :###*:+1:* :#*:#1:*: :!E:|;͜;! (:":! (:" :*:L:ʞ+* : L:ʋ+! *:O+!* :͉;* :_,*: :!E::ʶ+!_,* : L:+*: :!E::+! *:O+#:+!_,*: :L:,!* :͉;* :_,*:###-:!d:;,*:d,#:;,!_,*:###(:#1:*:#(:#1:+* :}|;͜;! (:" : :L:ʇ,!)-* : :!E::©,* : :! E:ʬ,!ʵ,!)-* :###(:::":* :###6#6* : :* :#* :(:1:*:2/*:[:&-* :: 7:}!)-!|;͜;! (:" :Z:Y-* :[:Y-0"::b-!ñ-*:.1":! (:*:#ͯ1#:š-!*:#͉;L:ʣ-!ñ-*:* :#}*:|;͜;0"::-!(.*:.1" :! (:* :#ͯ1#:-!(.!* :#͉;!* :#͉;L: .!(.* :6*:|;͜;! (:" :Ͳ4L:I.͡1! (:.1"::€.*: :!E::€.* ::|ʃ.!ʌ.!-/*: :!E:ʢ.!-/* ::" :!":*:* :[:/.*:#":õ.!! (:͉;!*:#͉;/*::7:}/! (:1:.!!͉;*::|;͜;! (:" :Ͳ4L:N/͡1! (:.1"::•/*: :!E::•/* ::|•/*: :! E:ʘ/!ʡ/!,0* ::" :!":*:* :[:0/*:#":ô/!! (:͉;!*:#͉;0*:: 7:}0! (:1:/!!͉;*::|;͜;! (:.1" ::O0!Ý0* ::":* :6*: E:p0!Ý0*:E:ʚ0!* :#͉;L:ʚ0!Ý0!|;;!( (:ͯ1T:0!͉;L:0!0!0!|<$ͯ;!" :* :.11:T:$1&:::1* :'1* :#" :0!|;͜;! (:" :" :c:T1* : Z:ʙ1* :)!4(:"::ʓ1* :)!4!%[41:":T:ʓ1*:6*:Ü1!|;!!͉;͜;! (:":! (:" :"4" :# :!:T:1*:#":+62* :: 9:1!4*:#":+* ::}* :##" :! ":!":*:d:ʚ2B2*:#":)2* :#" :+:"::_2*:.L:š2*:8s2!4*:*L:ʈ2!?":Ú2*:#":+*:}82*:d:2ó2*:#":Ú2*:#":+*:}é2*:T:2*:.T:3* :#" :+:":T:2*:.T:3!4*:|3* :#" :+:":! ":*: d:ʊ3;3*:#":"3*::Š3*:8U3!4*:*L:j3!?":Ê3*:#":+*:}* :#" :+:":13*:T:ʟ3*: L:«3*:*L:ʷ3* ::":*:T:3!4*: d:33*:#":3*:#":+*:}3*:$Z:4 4*:#":3*:#":+64!|;͜;! (:" :* :* ::ͺ8}O4* :#" :/4! (:|;͜;! (:" :͗4* :m:{4!Ò4*:* :":* :*:͵:|;;i`*:͵:*_5͵:<! !͉;E:4!!͉;4!|ͯ;! (:":++":##(:":*:#":+:":|6*:%T:ʼ5! (:*:! (:!5}5*:#":+:":66!":5!":5! ":5!":*:++":##(:*:6" :* ::|@6! (:* :#" :+:! (:!;6 6}5! (:*:++":##(:! (:!h6}5*:++":##(:" :* ::|ʰ6! (:* :#" :+:! (:!6}6}5! (:*:! (:!6}5h;sm6cC6d5u5x5o556}5;͜;! (:Z:7! (:L:77!":! (:ͼ:" :G7!":! (:" :! (:L:`7! 6 #6! (:":":*:* :! (:);0}9[:ʞ7*::}*:#":* :! (:);" :m:m7*:|7*:#":+6-*:6*:+":*:l:8*::":*:#":+*::}*:*:}7! (:|;͜;! (:" :* :#" :+! (:#1:+:}(8! (:|;͜;! (:":! (:" :* :*: ::L:ʣ8* :::ʒ8!õ8* :#" :*:#":l8* :*: ::͵:|;͜;! (:" :X98* :8* :|;ͥ;! (:99! (:9:9!|ͥ;! (:49-9! (:X909!|ͥ;! (:Ac:T9! (:Zd:|ͥ;! (:ac:x9! (:zd:|͜;! (:" : L:¿9* : L:¿9* : L:¿9* : L:¿9* : L:|;ͥ;! (:c:9! (:d:|ͥ;! (: c::! (:~d:| O"I*I ){_zW];z];S;{];}o{_zW=f;;;N# ;#~#};~ʂ;##m;#~#fo!9^#V#No`!9ú;!9DM~#T]fo9DM* :*:*:*:*:~#T]fo9DM":":":":" :":":":":" :`i<~#fo99ú;!9DM~#T]fo9DM* :*:*:*:*:~#T]fo9DM":":":":" :":TST Dd4#%9 NAM@BUSTDs%9 UOUT@BUQTDd=UPLST?S e$Ud=UQ1&@MAIN?SPRSTT-1= ,Q51xn/Db4 sX$ %0%m8Ɠa@P9# @-EH@L0g@8F1( KA!.Qf,"Y D1D @%!,,f" %mm3Z8ETF"@XjeW,ڌ!,"4eV@! rkpͬ |Z l60 V|B\,#hl8@KjmmfِkᐈWT9D;4!!h@ +4h6@+64XuBYVfaf8fED@Y 08ͣ,B3@UmS0br@KNDmm$i8 DaPUMupdlg= .q D8!aVhhYJYVUu(roB_.fߠYpVfPafpV{@R˔CB\,fE͹@,:i0 1X@ $l fPE|XuB\#hh3o@ rm EX@$UQ"@$&( | jAY Pï :vVUfV{@R˔T4YB:Y!2` xEgbX8Yx !.Qr@`+6 a&m>-YWC@іgf|ZP4mfـU Vm0hXC4DY @T Ug\6VmhZ"͠mUr@d(D 4Z- fߠ#ՕYU "(r@E!VU_ 62ρEcn :ñb.Vhhx@EW$ CB\!dU7+4hhC4EY!ͺm6$Y !@Q$r@DB9D8-"@b QtUDAb*@âH.$ ET!ĀmehBL:>!TUR 62# p EWAn$ :ë!ĀVmhY$.NG#y@i7 @s8Lf1a:MPNG#y@i7 )n3 St&(N%9@a:SN7Sqg4Fy@f7CIc:Gb6A@a:@3aeK`*nQN r@@+6Z-Ilf H" 3j *@KUmmD %O'ГZmm xvQt2C 0eNcd/&EB RIUbAVmhZ"p(ro#E_G(_D AZ-D;d%!2 hET|!A.QfҰVE* Q r@@+6Z-UCrqSB9Y<h+Cͬ DUY\ VmshZ" 0(rl(+Ed˝JiZs:MI (s 7y:@-0t2a@f4 1Y) &ÙR Zd<m8 @'< @@  M@p9MAi9 Sa@l4΀@ @ 6NgAr9MAa6cI Zo3yp:Cxi6Ds1N Zpyp:Cxs:C)c2@ Do㙼eΧC N)R Zse1 'c(p2NPP@ Ө@ LAyl&)@(2L)#0T#M00TԣMH0c%Z2c :0S09N2OSԣaJ2 OV<aN3v9 0ѣ'0 N0c:0*R3c1MJ0OԌc2L1R0OUS#<`h:3`ӑc90:B0&LM^0#U%Z0QcUR0ScU1R0#5%82 S#/@ =L3O5`y IP<QT8ua%P<Џ=y%1IJ<S>`Y1%MP3S=UP3. S#=YQMR3N Uc,`yQ96; RS`%9 U8:b:8!b:44!2-w!=<>8,*:|,́:7=<2;ā2;,!,-!,-*:|N,>,H:7=<>,uǴ:7=<2;ā2;!,-,\,"H*;|t,d,Hͮ:=ʋ,>HbH͢HNo Fatal error(s) Warning(s):;GHk+-!,-,REPT/IRP/IRPC/MACROUnterminated -!&--> > :7=<> uG> uG!,w:7=&2<Ç.&.:<.>&y72<*<~T.;I.O+I. 9.x+~I.+.:<*<~ʅ.;z.O+z. l.x+~z.^.<*u:T &..G~# ʥ. ­..Ù.x.G .& .5 "u: . .5 ...Ͱ ´..Ͱ ... ;//8. 7 /88 / /+8"<7 7> y77:.!1!1?*0%0,0 0 0;0!( 1w+ /"00b&:*; 0: :w0W0PX D0|B0>:ï0)0͛0>)d00͛0=`00D͇0E͇0 >0ï0x͐0x0:ڛ0 ¯00O:گ0>0ͯ0y*0w+"05 *00Ow+ 0 10w+ 0/0w+00000{=*u:+~ 5 5 00!:͂ 41#6 +͇.&̇.:ʇ.! Y1iÇ.!c1h ?Stack overflow, try more P switches b&:*; ʘ1" Q1T :T ͑-1w:y7 1ɯy77!*<*&!ɷG-"<Ͳ/O:*; 2*<-y6+,Ē53( <Ēw+:*; 3GC3/ ʍ3>ʐ3$3" <2< Stamp File Program - A. I. Larky - 831030  Enter length of your clock program Be sure to allow enough space: Save %d STAMPX.COM now Your clock program should be loaded at %xH Error in disk specification w Error in opening output file '%s' lst:w%s Not enough room for directory table createcloseTime-stamping Program options: -a enter all files (SYS also) -dx stamp disk 'x' -h print this help list -l list current stamp file -ofn output to file 'fn' -p output to lst: device -q no console output (quiet) -s selective update -u add/del files (default) * %!=! !ͣ;"~ ";"n ";! !ͣ;ͣ;* :

!['*;ͩ"*p m1*r m1#:<+! >!M!'2!!'Improper filename format File %s matches File %s does not exist b:-*.*no STAMP file on disk The STAMP file is %s File Name Date Time Rev. Too many outputs. This disk contains %d files %c UPD: %s ADD: %s =! ! ͚;! ͚;ͣ;!"~;*~;! ͚;;ʸz*~;#"~;\! ͚;+ͣ;! ͚; i<0}! ! ͚; i<ͣ;pS==!"~;*~;;*~;#"~;+!n6S=!=!"~;*~; ;W *~;#"~;*~;)))))!nͣ;͘; :͍;}͘; :͍;}͘;6 ͘;#6 *r !n!n0#:<ʀ!>!['l==!";!"~;*~;! ͚;;*; E;;%! "$%*$#"$+)!$*$#ͣ;*$";c&R%*$͸: &!"$"$*$#"$+*$}R%*$";;2&!"$"$c&*$͸:I&!"$"$c&<"&>%<%s%5&*$#"$*$}R%*$<;;‰&*$>;;ʔ&*$6Ý&*$#"$6! ͌;;&! ! %("/6:<&! &'! ͌;;&! ! %("16:<&! &'*$!$9 !['͇=Can't open: %s=*36!'! ͚;!'!9!['A:$$$.SUB=!56"~;!";*; ;ʘ'Í'*~; "~;*;#";j'*~;)y'! ͚;|ʬ'!Q'12S==!,*16! ͚;)! ͝6=! ͚;)! "~;!,*~;͚;*~;++͝6S=*/6̈́*LST:=!56"~;!";*; ;W(B(*~; "~;*;#";(*~;͒;!ͷ;:){_zW 4eZ`$ rA K4 !,2h?-m3a$ fؠrjDB9Y"Hl@[4hmg@Dun"3k*A KB YFf` rA K69D U-EZ|!!$hEZ|!!dVh B\+hoՕ\ p%*@"1[ %RC,f fm@ [@ p%ͮ"66k jʭb8ͱ`,&çbD+Z rlͲ,:!.VmYhDY "B 4e_P(r@E!va֠6mVmhPQ rn ͹ ,: p%͢B663n` 608ͥLB3oX* ETn D p%ͨ`B66 ٴ } 0:826 @EbX8\+4hZ,ͦ`L*.Q~ rpB9Y!/XrhDB\+hli=Y V)us@e!A.Q rlEf0&j4í@b6 rnpͿ L:!.VmYp ZٶhB9Y í@l*)LB P]"x$`$@ -8 1aPDfū*ȁn=Y V)us@e*,X!U|Ue@bWT tV` F"bKCB,Nꐗ(P9D 0mb@ruӁ@K6! Vmh@33@U >-YTL@K6m*@+6E[4!ͷ@ Hf`FU>Zp'(VD q-rh#DUk\"Y *Q0f DBY eVAUNr@9D9(!hA`XP@8ͻ ,Võ#YpA[C#a#Â0 9D*@ 4Z",#fFU +4h@ +64EU"f Vorn#DFͷ!!.VmhrPCQ$r@DB AmeUV2QQ(BˬC.QU3uq e['ГA @U@P0ͤ îࢪ #V`Q[C#a#((.rq CZ-h KDSqr 9 7y 1 3Xr7Fh(B2gS@t7 &a 2S9@s8LfQЀ )NQ )$ҁ`\C'DyMSl7bg9Mu6#(o0 A  (r9BI@d4bc4&3 o7p(r9BI@o8MƓq@o:Si6Dq)N gAq 2S9@r7͢1 2NFSr< FS 1 3([ *+& ò@RPG(oD LA-͂D;%!N hEV!NQfېVE*QA r@@+6傴Z-UrsSB9Yth+CͽDU}A\LVmhZ" 쀧(rh3EQg(w9D IA-9D8,-!n hY2𒡤eΆin3 #ya6 n9@@  L"@e7 !l&)@()Jb o@ t0N!k pP@ @@ Fq@t4NbAp '3( i@  @c:FSq@s:Ml2@ u:A 3MQn@ u:A 6΃v4̠@ @ 73yo6Du:t@ e6LgCI :  !^d2cIs S1l: A@?AC4?ASL1C5(?ASR1C4?DIVX̰+?ENCT(?ENSST5(?EXRU%8?EXS#x@+?GCCt4h0?GCS3tXˈ?GF3u8+?GT3X?LSRS5#?LTSTH`"?N3X?NEG#x?P#8?SWC5H ?UDIVCTtX?UGTCTX?ULT#@MAIN?d%4T-BDOS?d44S͠&CREAT?5TD4x%EXIT?Dd4#ϰ&FILERR6DdFLIST?ddTxEFOUT?de$HψGET@STdtUD4`&GETNAMԄTXIN@BUFdd4(`.KLOCK?8D5C8MAIN?d4(&MALLOCddT@NAM@BU,DsOCHECK=d4THX&OUT@BU?dUDĘɐ POKE?$DhP,R?1?E##Θ$R?3?E#CϠR?5?e$TDHFREVNO?e4TPSTAMP?e5DDU%(STDIN?Ł5DDUHθ&UPDATEdd4(`.KLOCK?8D5C8MAIN?d4(&MALLOCddT/* Subroutines for use with Time-stamping program - 830717 */ /* Revised 831030 to skip SYS files with option to include them by -a. */ #include "stampx.h" /* header for subroutines */ bin_dec(p,n,m) char *p; /* where to plant the digits */ int n, /* the number to convert */ m; /* character count */ { register int i; p = p+m; /* to lsd of characters */ for(i=0; ifname[NAMLEN-1] = bl; pf->dat_time[DATLEN+TIMLEN-1] = bl; pf->crlf[0] = '\r'; pf->crlf[1] = '\n'; } if(write(fout,&out_buf,128*BUFSIZ)==-1) {filerr("write"); /* bitch and die! */ exit(1); } } dec_bin(p,n) /* convert characters to binary */ char *p; /* where to get the chars */ int n; /* how many to convert */ { register int i,val; val=0; for(i=0; i= LMAX) {slew(); /* to top of page */ lcnt=heading(); } p=moven(px,pf,9); /* file name */ *p++ = '.'; p=moven(p,pf+8,4); /* file ext */ *p++ = bl; *p++ = bl; p=moven(p,pf+12,9); /* date */ *p++ = bl; *p++ = bl; p=moven(p,pf+21,6); /* time */ *p++ = bl; *p++ = bl; p=moven(p,pf+27,4); /* revision number */ *p = '\0'; for(i=0; i= nrecs) {j = 0; if((nrecs = read(fin,&in_buf.data[0],128*BUFSIZ)/ENTLEN) <= 0) return &ch[0]; /* end-of-file */ } revno=dec_bin(&in_buf.buffer[j].revision[0],3); /* binarize the rev # */ in_buf.buffer[j].fname[NAMLEN-1] = '\0'; /* add string terminator*/ return(&in_buf.buffer[j++].fname[0]); /* ptr to file */ } getnam(tabpos) int tabpos; { char c, *p,*px; register int diff,i,j; unsigned mask; fprintf(stderr,"\nEnter names of files to be updated\n"); fprintf(stderr," in the form: filename.ext\n"); fprintf(stderr,"Enter return only to terminate input.\n"); while(1) {px = &out_line.chars[0]; fprintf(stderr,">"); /* prompt */ for(i=0;i<12;++i) {if((c=getchar())=='\n') break; *(px+i) = c; } *(px+i) = '\0'; if((i==0) || (*px==' ')) return; if(makfcb(px,in_fcb)==-1) /* makfcb will fill it */ fprintf(stderr,"Improper filename format\n"); mask=0; for(j=1; j<12; ) {mask=mask << 1; if(in_fcb[j++] == '?') ++mask; } j=0; /* count successful searches */ for(i=0; i0; gap=gap/2) for(i=gap;i=0; j=j-gap) {if((strcmp(&who[size*j],&who[size*(j+gap)])) <= 0) break; strcpy(temp,&who[size*j]); strcpy(&who[size*j],&who[size*(j+gap)]); strcpy(&who[size*(j+gap)],temp); } } slew() { int i; for(i=0; i 0) && (*pf != EOB)) pf = dele(pf); /* delete the file name */ else if(diff==0) {++i; /* next time, new dir file */ if(!upflag) {send(pf); /* write old stuff */ pf=get_fil(1); /* get a new file name */ } else {for(j=0;jò"B\#hnZD2",:*`"1aU>-Y?#D*}XwͶ"66.f(9D `%u\b@ru ဈ@ +64Y.ЀJs%LB9D 4Z"!NVhh(9D @%x\VmuA@!چ`e 3 Nt Nbyp:cI o2G(K&m{?آͯ6AK~b1EW@ @%!@-mlfPh! *AK6GhʵL<!.VmhkD @%c@Vm hZ-m+6,ۊ+ %!,ۚf` r@+64Z-6@@Kx@mmGX@Z'АY FfP1[u4 } @@KBY` ͼA`2@Vm hZ-m+6,ږ+r6O! rjͫb(3kD(kXN!Pe!hZ,!.VmYx Vc`mxhBBf`1EjnQ6f06$!.Q f7+6ŁC`˔B9Y4)hY BYh lF6@K6VnYUDS `%͡@66.  h#C ͥQ fӠ'X]l: ã @fӠAEIͯ60r@63h(.70PZ .=Z͠B ͪbʺEXB9D 4Z"*#fؐFUR '(!9D6`!ڄˬB9Y *ǠV?f  !XUiA!hD[6Df݀FUQcHR)72 .Q f԰DD R)]b0 U@b,z+E"KCMC'ū.C!Msp2a@f4 )m`*Q[r@@+6߂4Z-U[rtB9Yhh+Cͯ DB!.Qf֐AUrvHB9Y,h@[P0ͷ úz #\Vb@$ +BY2f IrEW!, WjATBYaB"68h3CF@ hٴ4SV!`QfVE!#`l@ UW 6ႲH0 D P%J 4hm(VV`6Gm eZ`a rk0ͯ: !VBP0ك: %gDWAwLUmb+ ö\`0ͮ.Phm 0HbͷQ f0g+6Z-m8eUq f߰`ͰLp*Qr@ K6D 0Rb@ruh0ENA %Iܢͨ!@DaܐaU=fPvUQw({9D2@ Vm/uAòڎKDSqr&)@o3 Ɠa :#(p2NS (  : 1mcIn0L) MC)@r2#pn6DCxe9M& 4S &Ӂp2cIn0L1m0@1e Nbic4N`l21e9 x4΀ U_Il '+64Z"2[pAPͬ 쫨!+2}VqdVmhB$d2;* 2#>9enWT2!VmhDVh"3l3* 8;C@\ͮDB9Y4* HR)Q"EvAT " 3k(3*ӄ0x@U Væ[BU@ F#uoH8dl.@*Z*7X\VȌF ˔UIlۼrCD2ͩ4O&$è2X0H\ Ȅ CUC}w UnBb++42ͩQ,rm`CB9YD!!/[0@C6Z* xT J1e!kECA@S*Il2 '1 K~8 4ͱUfU\ a0+6, à,2)un@euVmhZ,H)uiHHeKB\Vm9 hZ,:.!Vmz%` P@F4 qet2 *MQ@R2PZͿj@K6@meX fms  ʠaB0Ͱa!g+m rAK6l0Kclͣ!cYW@%OXt(B\0Ͷ!^,~!.Vm Y$B\#hoK@՛X@@m+6,#>-YU@(BYX)!.Vm( Yl(VͶ-HB\b#hiPD %ͨB6-X,m W( jS4Z" `d r@+64Z" u r@K69D 0@-rn@SEPͪ *Qnr@@+6Z-fѰ&\ *iyΧCs܀t- f fؠU -Ͱ :!V UyB!62 [@PE}˜w(UE"HR_ˬC].QU ulPeN'Г EB"62[6Հ3lh h h ͸,͵` :`@(U -i@Y$4!) *(!f@vDEsBVH,"3jP[* XR)DV,BY@(a] U unXHd" Y$B3lK6XeT")Jw,Uwb++aU  ۾ ^0`˔U|!(ٶ,2Pƈeq'6O& _0ͿnU ET\1T0F"!Hؐ+6ƅZ"*òbENU|1*ALʳ;8*A1r ]bf(BEU1!t˭XCu0UbVm%Ѐ%CA 2Nfn:M&㘀Jd&)Ԇ3kPD @%`͡MDB9Y )dk`[!,jl"1FCt4Ux wCW1xW0EUT5!,۬ͽ!,ä#Q[kU@Y$E]T4"3l*0hT5KDU 5LD"@%D]bͦ! fp˔UV]buDK6jkB(Y42f Df0VbDK6U5^]b@ͳa+64Z" ͵AU f XPmhe*Uo "@%qY5!,۲rmxkE*U "@%yYp5!,rY5a  am %4͢AUf f0Ujap+6,ڶ+502͠QrA(rlcB_.*aӠm % )-ofB9Y )!.QfFEPC sBY,9LUA*`]bjhlXs63h`f ' fۀ+63mpf$͹aQ f+6Z"+|9A %x88B3l[*@@KBY9ʹ-6ڇ03nh[*凊0pEJW9ICUh)P"dB)"g"Z* "$f?)"''jC**r!w03)"&Gb*g|#) k"*`)"$2"zg;))!FCu;*" "JrJ)z*qf;' !*Xr*e*''hBzB*\g?'*Fh*z*qd)P"dB)"g"/* Header file for the Time-stamping program. Includes all global definitions. 830727 version */ #define BUFSIZ 8 /* buffer size in 128's */ #define DATLEN 9 /* length of date */ #define DELETE 19 /* file delete */ #define ENTLEN 32 /* length of an entry */ #define EOB 0x1a /* end-of-buffer mark */ #define GETDSK 25 /* get current disk */ #define LMAX 60 /* max lines/page */ #define MAKEF 22 /* CP/M file make */ #define MAXFIL 512 /* max # of file names */ #define NAMLEN 12 /* length of a file */ #define NOUTS 5 /* max # of output LU's */ #define RENAME 23 /* file rename */ #define SLEW 0xc /* form-feed character */ #define SRCH 17 /* search for name */ #define SRCHNX 18 /* search next name */ #define SYSBUF 0x80 /* system disk buffer */ #define TIMLEN 6 /* length of time chars */ #include "qstdio.h" extern struct mark { char fname[NAMLEN], /* the file name */ dat_time[DATLEN+TIMLEN], /* the date and time */ revision[3], /* the revision number */ crlf[2]; /* end-of-line chars */ }; extern char fcb[], /* file control block */ in_fcb[], /* fcb for input file */ *nam_buf, /* directory pointer */ stamp[], /* stamp file name */ now[]; /* today's date & time */ extern union mixed { struct mark buffer[4*BUFSIZ]; /* stamp buffer */ char data[128*BUFSIZ]; /* data buffer */ }; extern union mixed in_buf, /* input buffer */ out_buf; /* output buffer */ extern int disk, /* desired I/O disk */ fin,fout, /* file numbers */ lst[NOUTS], /* list of output LU's */ ocount, /* # of active outputs */ revno; /* file revision # */ extern union once { /* output line buffer */ struct mark out; char chars[32]; } out_line;