&LLF11 COM$LLF11 DOC%4SLUDIR11ZQ04m[ Z3ENV* ͭ >2!"s"w>2}2y2|!6>:7( *8~/NLLF (List Library Files), Version 1.1 Syntax: LLF dir:library -or- LLF dir:library afn1,afn2,... o... -or- LLF dir:library /o... Options: C - Print CRCs G - Group by File Type and Name I - Print Indices P - Printer OutputO>~ͳ !3X>((: Library File P3 Not Found or Structure Error:7(q*:~#/( :78_*<~͚  /CGIP>2y#:|/2|#>2}#>2# Invalid Option: wN*:y(!/\>~!]>Kw͋`i*s~("w~#,(C*w  TPA Overflow*s"F *w6ʹ*z|2~*s"u:~l*u"wN ##~G*u~( ~(2~"u>2~i&\#[wA~(~(6 :~ʝ More Files to Follow - Strike Any Key (^C to Quit) lXÝ͟ ͅ ͅX X Filename.Typ Recs Size :}( Index:y CRC ------------ ----- ------:}( -----:y ----U! ^#V#^#V#> ͛4 }(#> ͛4 >K͛:}(> ͛4 ^#V:y(> ͛ yX yX͟ *z4 Files Selected in Library !P~ (͛#:X!"z*sT]~(! ((*z#"z ~(  #:|  ' ' '#*.*LBR: 2%"!`i"#!N#F!̀ ( # x *#6!~ 3#[! ?( #*#:%8S#  !6# !ͨ ͽ $ #: !  w#w>>>2 e ѯ2I :H *J ~ͪ ʵ#çp*F ! : 2 e>2I ! \ ! :H 2 ! *  :E 2 "J ~ͪ #"F ͆ \͆ l2E 2L 2H Fy2M ͹~2 :{2E #: RbC b: b:L  ѯ2H ͹~2 :  .‘#͹ :M :I ʴ~!ڴͪ ʴ#=¢:H ͏ *>?#?¹͏ #!H 4d w #r G~A @@ 2L #~ ~ - ? # ~ ? ̀ O ͱ @ 2M =K ͎ w #w i #^ z  S =2M 2L ~# ʆ +~!گ =_.:,<>ȷ;ɯ~͏ # Wy   Oµ y70 ?7ɯ  > Fy ~# COM* /F##x_* .~* ,~* -~* ^#V#~ѷ* (~" *4 ,  *. "8 DMxf yډ :6 ʈ *, *4 xʈ s#r#*0 t *8 ": *: |g}o ": "@ *@ #"@ *8 }|ڎ *@ "< *: *< }o|g"< ڢ |ʢ *: "> ڢ *< *> ͎ ú :6 ʉ *. "< *4 "B *, "D *< DM*B *D  ?  y w SORT Pointer Error*B ~#~*0 DM*D *B ~#foNq# xZ *0 *D "D *B ##"B *< +"< | :6 ͯ *0 DMNwy# xŸ " * *0 DM!z *, *4 DM+) +) Nq#Nq:6  ͯ  *4 DM+) +) N#F^#V`i*2 |͈ }͈ : '] ] d]  ] }0͛}o|gl _ }o|gy€ ʀ > Ûy0Û͗ ͗  ڣ 7Û0Ûw w] > ] ] ]~#T > ̈́ + 004 y yG>GO> ͛J:jw> 2> 2}~# ʻ ͳ ʨ ʭʭʱ Âyʂ ÂyG>GO> Â~#/      y yG>GO> %I>.IIk>.͛k͛k> > O:GyxyijO:Gy2xy   >^@ 2222 2 2>^2@2*. O*. -O*.A OG~tuw#gH̀W͡H͖W͡r# x¡H  H|}~# x ~+ x|g}o 7կ2t!"rV;*r}o|g"r:>2td*r:tS7|g}oSP}o|gSPa{_! s#r#6!F#"##ʵ###¤*ö#~#foOF##s#r#yx~#w   */}-$.164#:&*:( )*%F(͈/~(E )"$**&F \&$F$I$$A !A@$I$"!$H$I$I "! $A$  HHAA"I @BB $A" LLF Version 1.1 11/27/86 LLF Version 1.1 corrects a bug in Version 1.0 that caused sporadic and unpredictable bomb-outs. The bug manifested itself with a 'TPA Overflow' error-message, for which nobody had a sensible explanation. Bruce Morgen finally tracked the bug down during his recent exhaustive work with library files. The bug results from an error in the LUDIR module of SYSLIB Version 3.6. The source of the bug was traced to the file SLUDIR.Z80. The line in SLUDIR.Z80,'ld a,(bdose+7)', should be 'ld a,(bdose+2)'. The LUDIR module of SYSLIB, used in LLF, derives the top of TPA from the most significant byte (msb) of the bdos entry address, which is contained at memory address 7. Since 'bdose' is equated to 5, the most significant byte of the bdos entry address is at 'bdose+2', not 'bdose+7'. By loading 'bdose+7' into the A register, the LUDIR module introduces a random number into the top-of-TPA calculation. Neither CP/M nor ZCPR3 documentation sets forth a value for 'bdose+7' and at any particular time this address may contain any of 255 different values. The source code for LLF has not been released. Nevertheless, examination of the program with a debugger reveals the erroneous code at 069DH. That byte should be changed from 0C to 07. That's all there is to it. For those unaccustomed to in-memory modification of COM files, we have included a patched version of LLF in this library, LLF Version 1.1. In addition, we have included the modified source code for the LUDIR module, SLUDIR11.Z80. Bug Fix: Bruce Morgen Director, NAOG/ZSIG Documentation: Richard Jacobson Sysop, Lillipute Z-Node 312-649-1730 System 1 312-664-1730 System 2 vDSLUDIR11.Z80V  !"#$%&'()*+,-./0123456789:;<o=>?@ABCDEFGHIJKLMNOPQRSTUٌ4 ]=v6x0[7 x1:qP f9ܝ5o9ܝ!1^qᑳٌ4 ]=v6174 fTYDHeٌbxxL,ٌY|Ӹٌ4 7klfg3ak4b{ao< ЊWǘVHZB7f?m[m]0Œ)G#+GFaFƱυ743Œ)M@ (C5o͸==|w0QGDQL?yWg)3}B 8Fh(×sFoFQ[bIJDabEeiYJ9K)4ʲ?2|9gF` /*+LC,R 49 veh ɉTB1́%2 ONƴOaqcFhEhQY9K-v4&g)1;K)И# pgTVh{JѾI_;K]Ip DRb%8KwBjfʨ-1Tb@`gHc"WxgH~#Mԕw%eDTԖ,nDR4,e{+okO^{t't5 Qūc!%gŎDE[N%8K;:Nh&"qܘZ8K)P'pTs՜T{g)Ӽ7 SF-E[ie 8Y9K)ޘ# oTW,, LqUtUaF;AjYQY;K*tTHA#^{: aoT,S`gמ,P!lPSxgI8ۮD\\Ĉeal*^TVsf#74 ޲q6gqYߕvR1fj(Vg)߈2~G#=zM]۵yoLD'TδsG#+gI Qѳ{gN(^;+8KGbGc" "(W[} Ĉeag)(cŴ2]_;K)Pel #QR',~r(c)qRpfߕ7}N(Bp4rSJLv,ј2z|k; ,xE+1R=&ʸaQӍx(8YᦙR 4yoje٧ VD5ZYYJʼg1SF7r UzR8K]Ot';+E(1&q(×sFoY?ertYjDQԖ,,-Du"^h+hd߮YJMC,s`AUA[NkOSGaNh;!ߕkNiq`g}W"[*DffF\( XDY6_^{QFo` 8oYJϿ^eF8K%Y QG DgN(^;+q,Q#Qg`gI8lv6'C,lm<]eڢaQ>=