~LIBDEF LIBhLIBLIB HZP)%LIBLIB RELG~LIBSUBS ZZ0ORLIB COMe<RLIB DOCBRLIB HSTGRLIB ZZ0b1NRLIB12 FOR( ;system interface FCB EQU 5CH ;system FCB tbuf equ 80h ;system buffer sector equ 80h ;length of record for disk I/O ;Z3 interface constants exfcbo equ 24h ;Z3 external fcb offset ;ASCII constants ht equ 9 ;horizontal tab cr equ 0dh ;carriage return lf equ 0ah ;line feed spc equ 20h ;space ;constants unique to zmlib mrleof equ 9eh ;mREL end-of-file byte mrlnam equ 84h ;first 7 bits marks valid mREL file ;buffer lengths, 128 byte records sblen equ 8 ;source files oblen equ 8 ;output buffer cblen equ 1 ;cmd line or command file ; bit offsets in DATA+OUTOPT DELFLG EQU 0 ;option D - delete modules PUBFLG EQU 1 ;option P - show names, entry symbols MODFLG EQU 2 ;option M - show names only REPFLG EQU 3 ;option R - repplace modules APPFLG EQU 4 ;option A - append modules NAMFLG EQU 5 ;flags redirection to nambuf SKPFLG EQU 6 ;set to skip copy of current module ; bit offsets in DATA+STATUS EOS EQU 0 ;end of source (mrel eof) EOM EQU 1 ;end of mrel module NDONE EQU 2 ;name has been transferred PDONE EQU 3 ;public symbol end-of-line flag for display EOF EQU 7 ;end of file encountered during load ; INDEX REGISTER OFFSETS TO DATA AREA status EQU 0 ;END OF SOURCE FILE FLAG (1=EOS) TSTMSK EQU 1 ;BIT TEST MASK EOFFLG EQU 2 ;1=END OF FILE OUTOPT EQU 3 ;OUTPUT OPTION (1=CRT,2=LST) LOPCNT EQU 4 ;LOOP COUNTER SYMLEN EQU 5 ;CURRENT SYMBOL LENGTH WRFLG EQU 6 ;1=A WRITE OPERATION HAS BEEN PERFORMED fwid equ 7 ;items per line for screen display scrlin equ 8 ;lines per screen for paging ;========================================================= ; MACRO DEFINITIONS ;Initialize file buffer control block to ;default buffer sizes & location. On entry, ;DE contains the allocated address. On exit, ;DE has been incremented by the buffer size ;and contains the next address allocation. ;If the buffer is not required (high bit set ;in the FN field), then allocation is skipped ;and DE is preserved for the next allocation. allocb macro xx local bypass ld a,(xx&fn) bit 7,a ;;buffer required? jr nz,bypass ;;jump if not ld a,(xx&opl) ;;defined size, records call x128 ;;calculate byte size ld (xx&len),hl ld (xx&siz),bc ld (xx&cnt),bc ex de,hl ;;get buffer start alloc ld (xx&ptr),hl ld (xx&beg),hl add hl,bc ;;next available alloc ex de,hl ;;..in DE bypass: endm ;create File Access control Block, including ;the user area byte and FCB FILFAB macro xx xx&ptr: ds 2 ;;->next free buffer loc xx&cnt: ds 2 ;;beg+siz-ptr-1 = bytes remaining xx&beg: ds 2 ;;address of file buffer xx&len: ds 2 ;;length of buffer, 128 byte records xx&siz: ds 2 ;;length of buffer, bytes = len*128 xx&du: ds 1 ;;user area for the file, 0..31 xx&fcb: ds 1 ;;drive byte for the file FCB xx&fn: ds 8 ;;FCB1 filename field xx&fty: ds 7 ;;filetype field & balance of FCB1 ;;xx&usr: ds 4 ;;Z-sys user byte & balance of FCB1 xx&cb2: ds 1 ;;drive byte (0) for fcb2 xx&fn2: ds 8 ;;fcb2 filename (used by RENAME) xx&ft2: ds 7 ;;filetype field & balance of FCB2 ds 3,0 ;;for random file access endm ;========================================================= gbits macro xx ld b,xx call getbit endm ;========================================================= ldhlhl macro ld a,(hl) inc hl ld h,(hl) ld l,a endm ;========================================================= vLIBLIB.HLP!!!# &HPBN*B I'1$L$cI 7 G 7)r<擡@an:ERT FSe;Dx:HyQo6ΩXu9̴Z9hS '#VvZ Ichf)BB8D$74MA6UHsꁾDB6f4Y=ezm:i6c-)QEYF#S'ʹ,3^+QN+UuNN)Hw6}ЮJd2I' $MFixn]XSq5^Q-ַ COaҁɄJeee,S$NaP8[^)}DV|ҡFupcV(:B9D@TEiVQ4-pGip@dZQlaF+KUu6aٽ4T!gcugй Wx%PuI (Af0(ZP'sNScnVmUcUZ)JBXdrP+VRq1DUp#E s%hRǒeUGVVKSuYy7U1a@UA Օ\R,liAFVK[mM.PM#8?H]T;X.c4o/4,HnC%;:\$gd UVQEsB[|ׇvs:Ĩ#1B3'Ic9t5 8g 阙re*waA0(x^-84xoI05= ;u@S BԐ&n 4HBwNrwm8nE#H͒"HIA*XYNs(j/`L5H oBCJ8XDa%*NKY%` 2 0X0Ȉ H r41A&=(C#"2a.E6PH@0TrŐoqZAT:C)cÕ_Jf+:3=FU G\Iw5<Ǣ1ҲVnArUW! r!q%~dz1 )T`SJyQ*oѫ },EvZiq5W$j4QMPX!QπACR뉧8¬U|9JrBN6zN6=Y]$I.zpo&Pd %ď٪H7sG\yuXcG8I:gL-h22UYHLnA!lt@YbEO *d3dJ C1 G'+d 4S(ݾZI9-VK[YJllopPq Hn zGBII. Qszlo%ճ܋--"哜Ӡ0PãW8,&_SΫZ*<$ 0< 5\L7)DJ;G㤶]|BS1B?Hm.2N08) {O/lSUk'>'zX/$1a/-ɱg\2̕rS5:Ng*P"'Q2^ciOT*Mt5{1z? Ҩ;SRzDV/^k'>mÞ][̪ЩFUN**W3(T/CܨEo1j( ĤW, St-eC"G f5ʚٲG^qoKT^:(L!nlr` X($mbUjRF00(X>@Os͙@"^)elI)rk(%HIBEߍE`aUlGM*q`Z5#K*8RbnbeCKr.^ȇxGԦz7D-B$ t`0[*65tT'8:9@c RQ1#/"9b!u :Q{*g!x;T5eR%4B?5wK`y!5wuFM -O1>-C#"""G>o>!'uR !DzX87nRec6%y}9gHsyw`b;'Dxaf5 rd%r'q=bPX! p 4SeA>Tr>~O $(9;ZYyll'fDaGh )YiԬ)Ƴ2&daofg(q;(-/;*Gvq$}Q ,?!U] SoȨo䋈JPbp$\+N;N㺕ZC h013Af rD MW +04*0OrD(gRf/DJXk>kf$!8F,hZwhb$&i'xDwciC50by-J+BIh"%3(0E02-@R5JwQWhxg"0R0aM` 12A"Oɧ"ڦYdfUј*oY{Ƹf](:!X0OAZrGuDLZwmk1v5xALE7ڗH6tY! &Jշ^xÈkt]0Q? O51RjMeAfRFqlĀ ~ɲPRb-fhåuag'tv 2S')ag9P&e>'P&^` #g!A<Yj׊j'^ua%a2QP"SFaq0yhd<$R9' ,R2!kHu5[b T!3-BCgV,Ea(;97;VAb0xW 7AS=|jg̺9뻧 M7Bn5cCV%28efC"*QeI=d*qb $%6܈#د!S^?[)p3К}4)2z<(ɥKAk!\ai|k/&U%R;*ܥɎ+>G*OH(µ~ml)?:2(";0a2ʧ-J , p*308+Us'p twsZjLpn?5}=wf2͎3v'j@;C-üРrkcO#hokq:z/9ҶϹFTq[>ญ,vu-#zLPA9:<$rI ;(Qˬ;$*U]P%.Ͽ\_n)%>HjCqr lUMZs//%#lʿ $ Gn绽/e_nJUTdY@! hjhEb5g<_8Y,b7+Utvf٠T&"x2wP0Xΰ u@kxEc@Y*\j d@@M*6ɀL$#ٖL f@0rj !P8EpP# ܭP0 4a0` 8nQY8VFp%#v A #@-#n" X|\.W@FNAMEDd4(0INIFCBЀetdhHRTEN1ƀU4DTUCASEQSU%DTI %:P5)n aa _XlW4 inG*jɉt ) !$G@**qd "&SQРdd4(% P5 h >3@0^á (hQ 8TS`U4DT@l $XY A^~dpv<M16pS Dd@ da&:S' E45 @ #[&:'UPT`UT44Y@,[A_d@* ,ёetdi@<TV2^K6Lt(%#F@@*њ*rSTLMTi@h|&@0@> !Xq!ɎTiUU dtUD$H%9% %RP5&R@{,(2I.CL@aG@2:*Jth$$$N(8%> %> %=:=ݾ8%=:=ݾ8ï=> vLIBSUBS.Z8!2!9!8# JeRHU*IRO) DI LylqXc6Ɠdn4&y*9 D 2LC=Mc,2Fa5˦󁺻?dg#)dwsaY·S e:+V: p6Mx1#Qqs:c怜!>E,l;Dc:ɎQm1UtӮNcCL%B@ $rǢag:6ac5DRTNs"!Aֳ֦CHAl'yZs XuA GoZ jFČdbplS]CI ;}T hu}7hce886w1/^vZv)tZ! yduk@Ax%h.qQrju a*Ba{Qф m[Xt\7aO1rjgᢗ6x .aٖ e^^恹aPaGhic`ay *xh*Z昼rjP qp!g#bJhvgXVIhf1iEiQ(ɮFu& pѠlp@@*)@s#{;u[:Z B aOUaahk$|w[Сk)T \d fwG4&Těѥ[́KYĔelG3$7)M l . *ZΦ+͜8 6sjVڧm} q+WY< oubpnMlYpkG5OZl`fT.$ka 0nY.i4f*G!dcL_c i"=⒚2NhRTk H^㡐j'J{40O Ć4~H|.8$ 9G$ H`XE$ܜ@XC m+T$ffpTp+.xBHP8*"`Gi)BE,H#F(ADgFqDS8*1oԲc,?%ArL L ! BHY ! €E=r 8 !#|N"AT'CrQ9"ZC#&0؅ /E91P8$+5QHؒ`O gJ³E*NY͕BK~T{elߖRЍK3_ex3iw k#I i)3Hh*0#<(a"K 8iUg"*A&4#l54pL| dZZlQyWSf쮩󆎀9P礓 g,T< 4X=ntfQ sɡ|י•T//eDבRkb6jq0c [#^PEFޚvClK%t  C*wWrW@ Mi$AT[A'_U?_k |Z,F٪%@݅B#Pp_ Vx3Jdjmx.?( &D4 13GqQ`< + & T"l @ !]L5(lkR,뾠7B܃X d#@4 r0Z3ENVRLIB RELREL$$$s( 1( !T z odL* NU2h2k2|\̈́ ʟ"~~!hwF NĖN&:W V&:W ( 6͜0:W !F * ~(B!u \[ * R!, E ͏ !   Ϳ 2  ! Ϳ F: G[ !B \ * " * " !F#> #[z ~= 6 (^/(Z#6 *z  Kx ͹ ~ (#"v  !G !    !=(:W ! [ > ʎ#~/( (~2!  ~#foDPMRA@;2-(66666z :W   Ϳ ͬ \̈́ fʟ*v ~ ʟ͜N=NN=NN_!^#V-1777>>>>>>BQ\N\\!k "i V 4N F ^ ͠0{ z F!k \#\ V\VV}GNNN= (#"v \!G  z !]ͳN [ B   N( ^( Y !a F ~# p AY FN 56N N(5:/w z k  z N1 z :W f(oKi ~Ci ~w#K C xž: G* " * [v !a F# ,( (7,( :] (//:^ (//]z {( j [* :  :#4 "| C~ Cx "v "z :  :!4 " C C " " :  :"4 " C C " "  !'T :w!k "i * |$%#  B> ~+ (!] z ͳ>'p !>.p ~# (p +#!]ͳ   z  ] z !Invalid option specification! Z/CPM Library Manager, Version 1.2 Copyright 1988 A.E. Hawley Function: Create, Modify, or display contents of a REL format Library file (LIB). Syntax: RLIB LIB[=MOD[,MOD...]] [[/]