*OS0FILEIOZQ0 *S1FILEIOZQ0 5S2FILEIOZQ0% S3FILEIOZQ00 SACAS1 ZQ0; SACAS2 ZQ0E SACAS3 ZQ0P ]SAGO1 Z80\ʣSAGO2 Z80dSAIF1 Z80lVSAIF2 Z80sSALLOC ZQ0z zSARGV ZQ0SBBLINE ZQ0-SBDOS Z80ESBGO1 ZQ0 <SBGO2 ZQ0 SBIN Z80CSBIOS ZQ0SBIST Z80ݽSBLINE ZQ0SBOUT Z80SCAPIN Z80cSCAPS Z80uSCAPSTR Z80SCATH Z80SCCOUT ZQ0VSCIN Z80SCLINE ZQ0 RSCLOUT ZQ0SCODEND Z802wSCOMP Z80 xSCOMPHD Z80(w@SCONDIN Z80,SCOUT Z802ASCPOUT ZQ09< SCRC ZQ0ASCRC1 ZQ0T_SCRC2 ZQ0gSCRLF Z80ySCST Z806SDGO1 ZQ0 2SDGO2 Z80 SSDIR ZQ0 KSDIR00 ZQ0 PSDIR01 ZQ0 SDIR02 ZQ0VZSDIR03 ZQ0 !wSDIR04 ZQ0 SDIR05 ZQ0%7SDIR06 ZQ05HSDIR07 ZQ0= SDIR08 ZQ0J SDIR09 ZQ0T SDIR10 ZQ0` SDIRBF Z80k}/SDIRQ ZQ0pYPSDIRQS ZQ0dU vAS0FILEIO.Z80F  ! #"$%&'()*+,.-/0123465798:;<=?@>ABoDCEAbMvPgU5=Jq۲Sȫ5<ur^ߏ-%uӹYU:QU~?MgUyJIewn'sk%?XG'ݖݙZIO̙Zɺt*şUgk:NA~F;~5MƜnP5B$*%_ԧ"ҞbKI4?~bIAUPeb:͵'RR3*P;gT$W&ll)yX9$w{,[وx2VDIRUQ`5rH4a~>W&ll)yVN0?w{,ez[%_HUGrqmլ <0 Ǖ=!qwÁ}u1p+o8Xۊ(B8*l ǵa~>W&ll)y Tՠ D=ߏ5S_Vؒ?>Loe#Aolqn艣cͭ:|fVz{ꍧy[95 톞8:;|Trh *8:;|9?41[twCOkn_f">&[<'%yílD=V|Vcͭ:|fVz{ꍧyܚlcvѱ)䋥ʡf+N!_Nf"f+nn:::ܺD|&[<X<&ABoDCE~㔃bMcOÙ\C8|Vmǫ5aur^ǖѺ\}VG9~iL6Vzchu.>rIvndRdF:)lDk ;3'T1;i騘F?TYu~UJM{NҎfj[1[?TMcT$m,ڞĖXβ1}R SMCU ?R׫#ұ}Ŭړ2ZJa;w ?TN/-cG?f딯+^M>Puu4WJ}MHj7Ѭ%;:5\߫Y f  ^y{u4khCմ^]hu2~oz'p3;$n8,=u70H61]'ic=q7XK>\0լ[F7I>\ 7K{/y( wɆ32U|6֣Q 5\|fM2 q|5mod7 W:_QF$⓴U8J? \͚ e>|h2;$n8,=u70F$pWIXzG%!|fM2 靜~\mod7 W:_QF$⓴U8J?0լ[F7 Ǖ!qFv`}u3%N6"pXOzT8*o ǵa@?3YS!‡zjPD=ǚ/tl)|;و$;i9۷wCO-knm,f!EfIOt{''&n7ұǗ4{'ؔSK_V{'D}l黡56{'ń}K9zjXgd# >wҐsoq_cͭ,l?iw>wrro}vұǗ4C}ln:Z:0ϝ41ycͭe&"|0پu)'vұD=IӟvS2FILEIO.Z80F  ! #"$%&'()*+,.-/0123465798:;<=?@>ABoDCE~㔃bMcvnOÚ\C8|Vmǫ5aur^ǖѺ\}VN9~iL.VZcht.>SZIvndRle*FZ)lD ;3+T1[記F?TYu~iIutCU_լRzk:tᇪCSqj|Cۓ2Z9.FtO*aꡩ*WzuD:/XS\{[FA?3CU ?lNezǖl+}h8mᇪRkBR)MofM/pѬ ^͚^N?.{u4k~\h߫Y#D~D߮ |[ɇ!qNv`}u3%lDጱLo+>IQU㨄Ú^|fM2 VewHpP6V$]%yF?|[]cKqF$JCپ}zXsb1)5Oj}ꍧ[95پ =ut,a%0M#ʡf>::0r[i&bcM =utuD[)&LcSG<p+d𹕆}z7pkn], EfIO4𹕓[ؼutt,a%0M#|nt}kwѱǗ=|nپM7}7pkn],3s+ń}l=%yF^7N:4ZvS3FILEIO.Z80F  ! #"$%&'()*+,.-/0132465798:;=<?>A@oBDCEPIĚ-BPC\Jqj԰[5Ɣ8 X uӹ$J9j: `Z7KϪN s$2g%S!2FIN 3V@+ɺx UմS9ttBM=jf+MnjWll0?dhOp :D;ad+ ge.,o5O?cYS66~\'n8Jkt["0Md+ ge:U%](dYk:9&6gs5k3\1Ǖ}1F% p%[l8C,UEtey߯rLqmj֔ :jQ҅B*Q3f˨a ?)ي$SҐsN57.UR+7NV86o7tֱIŚ:%vpn設cȗf,f+솎:ܸPf,))&L±ySwCGmK WIWҐsNhXsBa(X5(8|iJom±yhX$bM\ɾe+N"_vq%XV8VM \G[ǚʌbd+?Aoiǀ7+ސGJr<i{.ӅcokH<yOg_6 Č1=uͳ1.$nT;$r<`gK#:ϵnYh-zu_49m m?ZsTvMM/n$I׶R?&ҮXn>/.1'H15859>}egr4r< B"?1e\=ײ^^q?+'H15'MNxR˷#?+n<0#Dϵ߫@v6Þq􇹐vcjv6~:MZ5ZiYq>B\zz dg>lV?0ҮC5in>lڇt›Y5Z?Lkì=ײ^^ٴ{BH۳SC3ie>}e?2{Oin>4+Lg B"m Rb?js-f9REu^)*zTA`Ć_} ΦB*#^(HA#j{4P/j;R Rg>TFڞYa?+gٴ\#{?kv?i#{# RQaTz8C/j;RuTR H%Ammjq?mH/6(!m-߷ 3"EHD0b_TEz6ߕ4AH? hPMGk!mR}蹖Aܧ Է7z%HD~mSH_0 UGlM5_TATږs!zTэjvϥ{~RE7##U>/#{ۛ=m^zOFS UOEH<|)7=BH" XŊT=g@>?AvSACAS2.Z80C  "!$#&%'()+*,-./102436587:9=;<>o?BA@}wfδbjHGfpUf<JA:z3YEm<߄t4SSYﳊx $vQ|@oz>7-YLn] ]5\zcSve'\}-Y^\/^*re0y#)o(& n0>G4HnfB}MD:1Ls{t:<f_m{_^=E RGp( b{_^..vaRGߣFVm<ʪ('/R?4}lɧhH}}:GOC꧀\-9O,VÐ)aD:HGZ ֵ)bɻS\k嬪7R\!5p #&Ru;H0koR?4H0"OУ>k+&+H."rVvS>EC:H}øctG4t _75 d?t!S@Gzɖ5E:HG{_^=E~i[-Hil:;6>ڧ))aD0h&!RGq(l}kދr{US5w:nuY;jV5*;2ymH]Ӑѻ)gUtM"$ߢ#!u4 3YEm<߄t4SSYﳊx $vQ|@ovMRSACAS3.Z80E  "!$#&%')(+*,-.0/214358679;:<=?>@oCABDDcmTEr9yk'֭Dܩ 9?h,MꔚOw,5wݺвُ"RNe?̜ƥ:DO[bJ-yh!`wʳ6uCo&e9B\Q|r{mz\WY>Ųfaz:DO}kg WYc'֭hfքZ?vӅwR.EL3G$o||2zە2O~ٳ,WP7g˱օ#S҇_'cX ЛI?bhh:ŲfG@6tX?eZg rܢ<ٳ, jy^h#X𾞺]?Iv6~ wl\]&/4艵6s? 0JBosxyK/V#کoc4Co&E˱3nz WY͑c4/zyGS#EpuiLc)kg? v>R-Ǜ#\sui X`#کo1\]f7rr,bL$Iv6# Boa1|h99暫Ls+?N°Y'ʝ,5}4Co&Iѷ^XpMw (Ӌe\/XC1Z۾YX6lҋe\JB|?!j1Z!Iߏy/;Y6kh.9.~d;K@a2w 0#cOW~Ns lŲf.W W}cL_/Px?b%sghdB; cq/~Nw h4ck&z#|x8yBCr&XV]~d vTidًMUidy?X39r_`nے+9ûXRU,DnoW{"wo,!*5 ( ; IF A=3 ; ... ; ADDR0: ; COME HERE IF A=0 ; ... ; ADDR1: ; COME HERE IF A=1 ; ... ; ADDR2: ; COME HERE IF A=2 ; ... ; ; No error or range checking is done ; agoto2: ex (sp),hl ; get address of routines, save HL push de ; save regs push af push hl ; save return address ld h,0 ld l,a ex de,hl ; index in DE ld hl,0 add hl,de ; HL = index add hl,hl ; HL = index * 2 add hl,de ; HL = index * 3 pop de ; get return address add hl,de ; point to jump in HL pop af ; get regs pop de ex (sp),hl ; restore HL, set address of routine ret end ; ; SYSLIB Module Name: AIF1 ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.1 public aif1 ; ; AIF1 is an arithmetic IF facility. A key value is passed in the B register ; and a test value is passed in the A register: ; ; MVI B,5 ; key value ; MVI A,TEST ; test value ; CALL AIF1 ; DW ALTB ; go here if A < B ; DW AEQB ; go here if A = B ; DW AGTB ; go here if A > B ; aif1: ex (sp),hl ; get return address push af ; save regs push de cp b ; compare jp c,less jp z,equal ld de,4 ; A > B, so add 4 add hl,de jp less equal: ld de,2 ; A = B, so add 2 add hl,de ; ; A < B, so HL contains the address pointer (no change) ; less: ld a,(hl) ; get low inc hl ld h,(hl) ; get high ld l,a ; HL = address to return to pop de ; restore regs pop af ex (sp),hl ret end ; ; SYSLIB Module Name: AIF2 ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.1 public aif2 ; ; AIF2 is an arithmetic IF facility. A key value is passed in the B register ; and a test value is passed in the A register: ; ; MVI B,5 ; key value ; MVI A,TEST ; test value ; CALL AIF2 ; JMP ALTB ; go here if A < B ; JMP AEQB ; go here if A = B ; JMP AGTB ; go here if A > B ; aif2: ex (sp),hl ; get return address push af ; save regs push de cp b ; compare jp c,less jp z,equal ld de,6 ; A > B, so add 6 add hl,de jp less equal: ld de,3 ; A = B, so add 3 add hl,de ; ; A < B, so HL contains the return address (no change) ; less: pop de ; restore regs pop af ex (sp),hl ret end vSALLOC.Z80M ! "#$%&'(*)+,-/.0123546798:;<=>?A@oBDCEFJHKLGIlgQPO2xxt*a6ח` 4 zyRpü>O:z*V!^0Ⓨ?>[~~uWס٪ 0| oVg?K.gV3|(lYh+gB[Vg+!)ovDRQ30k8،A:Wסu7#zU0:;: ƀ1``o:鬻~717 Uu6mlI{y؟IguVk|¯zƙ7q2`ޱNvXAN |q讅_uAL`ClҺ+^0v;7C# >]g_:ߢ&γU0i(ou lIau6¯:E٪uٙ_u6|ߤ?Z̺ޠ a,goRpGazt?Zz_]aZw ' ^/ovgw&u5>fWw}u_7ƙw^6v׾^ogouh| 266cOgVg+x;ow}鬻]0Fqp:[ ;gME^$ k|ߤ%tg+"uaI @׀IK|V"-i z nW+,o0~ʦ t5ft!0ֈ㳕 z nWLgLיw7 uDF},3o @? c"luģExX!Q}l!?gv¦ExXl.VlIXC.FXDY{M(ΖK4#Ζ$ǢlK2;K0qF/=" alIX .CM,[fBCΖL6^yVQ-xE&Qj0{_#<- A" vlgj6M v-$D5[jEuh\6-ׄϖlٳVgģ\ـIAZLzw0,^Ej~ J Vr 0,7 wSskIV"EFԿ)Rz_{"|ФրMWCó z#E훇rVgx4~h+x- Lm0PTe/m0l! LDUoWD`hٲЂɦ%aaic]/쟸wgKDR{j,U~yeĽ8[.$2IZY&$%;~WlIXd m]l5 m :[Z2$ʦj%&CΖ_h 24$^m]gB ^&DTԈx=l^&b- 1>r<+GlᙐE%z,V:[e&ieقQ]YƳFEud˞}:[lu65~G<*8[SжЮO@ABCFDEHoGJIKGj9*=<.}YUʑ gJ G-Ҝ_r^Ypz9*Ksv ~y5uu uoUE wנ,DCZ),@HRwgvw{ zy|(;MucZ!}ٻ!1Al )t.!JB>1~ۭRo#"ʅoQV馊.zM5VlU7f f ,LP$;YvjkW)\~|x{-ʣF/S͘%F3MP$wp'H~UQ۪"K^Sz*h(Qʯm%!v2M:|*lm~iLgw')}*R4cYfiɮ~Uٱ۬34 d}(mWidn̔&(M%PmA}fZfwL)}ueai:~l̺ql4!v4H6f ,R:cBP,u8(OL9MC:NRbA dۖ>!8"!<Ɏ4X& nŦ!g|fZCD}&(i8l )gy&UiJMl>,]>3Wﯮ(g>WW}!A.mG1}?pNѕy^n"CPzg4EbzuՇ6>R~FLS*3!l&H6Ōv۬d )R~FMP$A{mG1=Ɏé7=7!(ls=3j"*Wls.4"#ra53l Av'y&Ubz5=6ד<ɎéagvY2_ z/I=R`mPJ4pAEWo{n"2d4+h(_q%^t"m3&UǦsyz+md̃(;o7{ڠ |}K3t.FÙQ~{䞛Lm' g |?xgҖ6K4U/{{gҖ6K4A"3iKv%pǦsy1͚L`Qz~M rNѕv.6SBBLINE.Z80H  !"#$%&'()*+-,./013245678;9:<>=?A@BCFDGEo\Ւog0,]sM*/&]\ |9?atpb<`O LX*_&+ NLЗǒ쉁rW+L ҵ s͹&Ylg!wg)˿9QItgZkdY-L2IdY~9>wzƿߜ^ʙ?|fqv$_{rr"yO0lr8/sM]~r&R>z4 O"*B}$D0_&~?aw)!/ļ<¿xByaP"~b?KafoFoHbfY ϐsr5C=gz`R?˳wų35tG ?qyvaeʶI>IR3~?C9皀Ϭ~b„RSedY-IRP$}@gk?1q {^<'1]Y 8qF웉~KȀg$6k+ʓOOba{"sMv>lV?33I򙁗R~('2dg8 8\~OLR>5k5Ic89ssDñܥ6i j$&_-Zms͹&iulZm9ל+X s͹&YYͷ-˲te۹e6GOò*/h߹ve\q=I}[q\FYXD,ǣ}Bh5\ DWn_6ܮl+#G#1YƏGs_d$&}+Z縴o;џ+1PvRl>inX=s;ML 7$ W/C61)tex\@d)MLVte[c loιk#&?]ٖB6{_Ў@h:z D>W/yB<7e]L >G;WKED>W/J"R(s"ULОB;[C/::߹yB*2Go_Kqiv_*kϫbktʥqlT11۹l;W/hGMLVn-ʶsa-zb푮l+\qS o+.Z(]rihΕW*&XG,|( bR-1犛B`-zqIR3~?C9皀Ϭ~b„; ; SYSLIB Module Name: SBDOS ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.1 public bdos ; ; BDOS -- STANDARD ROUTINE FOR CALLING THE CP/M BDOS ; DO NOT AFFECT REGISTERS BC OR DE ; BDOSE EQU 5 ; ENTRY POINT FOR BDOS BDOS: PUSH BC ; SAVE BC PUSH DE ; SAVE DE CALL BDOSE ; MAKE CALL POP DE ; GET DE POP BC ; GET BC RET END vVSBGO1.Z80E  !#"%$'&)(*+-,.0/134256879:;o<>=?@CADB5Lie%U:2o`h.v#5Lie ݁=ֲ],XY?\c^/ZBw`lfu}?|RN6z?|WRg,X}ML-u=cm\QA[#nW^r?ȣ3}o 9AsgAF,$^y馐f􂠥ZPt~8MUZCAs-M+x+-;Ӭ굹n -ՂǯÝ*ԙ|p'*ms}¹Z}KNǍ\pwbɩ⸱6'ڇ;uHHD{$ȘΕՇ;U7ڊ3׋gCղl ߇*s08s<~mp]qc8sx?4>\->}[u ],?l;?ʧ=puN:dW&F4bA| t [a2#r!y[H{aqKo!,ݫiuқf+/0s4Һ~4}U0uۇ}sHWq|0*uNg*7#gjoM&o 8>|\Wfrg52MF>95IN&gF|G9-H0Cu{N :E}h-Ң!8=oM&Npu[aMi\aӹj|vdW&FlM>A  !#"%$'&)(vNSBGO2.Z80G  !"$#%'&)(*+,.-/0123456798:<;o>=?A@BECDFYCF4rs=j~EˮKJQS YCF4Vt)`}fF/ϥ6;]G볅1@x{TT;j~omA}>\)]ۂ *}>\omA>H.~CU|.ұ' #ATʻGC #sAry[:8y|"0"<Qw'#Cxl[wTKBҳ@xL6,#l|flp9{H6vo5*dfI*Lw>KzJk.#l^t{%=uWsa/2NX|/x. a՝}#Ҍ2 6>Ja,E`oes"l|vF,Ԍ2q@{nzgWKfsꟅAX:wgf|Csnzg39YBX"llpuWsa霛ٌ}ΛPܼY>*-_:g6{a ^,䭇2=t ۃ# l@$ !"$#%'&)(; ; SYSLIB Module Name: BIN ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.1 public bin BDOS EQU 5 ; ; GET CHAR FROM USER IN A VIA BDOS CALL ; AFFECT ONLY PSW ; BIN: PUSH HL ; SAVE REGS PUSH DE PUSH BC LD C,1 ; GET CHAR CALL BDOS POP BC ; RESTORE REGS POP DE POP HL RET END vSSBIOS.Z80O  !#"$%'&()*+,-.0/1234567:8;9<>=@?BAoCDEGHFIJKLMN{k;x^z:aٚ;{ԭߩEtd̚;?(vWLSnx;xm!['ߚ5ׄ[:5k f+ fQ{57P Bd IqRHE`;Qn\*_*B@UTdt\LAX*8sњ;W f9qΕ/NxNV^5SƝ*Htj:z3;iZsGE撹59đGvXJE.(Y^ XQ{ͽVXq*Wz`k5G4321n3<0暶pd<As ?s A׬ \#9bvJ: 221nׄЁk`to<9coybcܮ ϡ׬ ϡ׬ ! ;6-k f}`5~(̞5axsιM?hׄam<¯ `+5k5w5HX[V0˩sZE85c&vJ:<ǚpdp 윛A?V a{[FkOb׬ _QV0Oh3<~}hV0\cׄcD\Z6h5ׄ,_Ȭ!'oveknFd]#T+[w|o75HY ,N3Yb]sCLE_b; ; SYSLIB Module Name: BIST ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.1 public bist BDOS EQU 5 ; ; GET CON CHAR STATUS IN A VIA BDOS CALL ; AFFECT ONLY PSW ; BIST: PUSH HL ; SAVE REGS PUSH DE PUSH BC LD C,11 ; GET STATUS CALL BDOS OR A ; SET FLAGS POP BC ; RESTORE REGS POP DE POP HL RET END v3SBLINE.Z80I  !"#$%'&()*+,-./0123546789:<;?>=@ACBDEHFGodM1 |H)&ķ#Я$uQ?̧tM1 #6n?Id{`h,g5-du(&Yx@.Fch, BK叭I ׍]i&U@s _3ŏm,*򚤲Pxr=gECӞ"!d$<4Xt7Iqe#F5s*$>)2IR<_-1CÚbCICEДzhNE4y(0Oqk l|++ ~k5$kV?sBk5c>8ЯM?8RFzkw4_/5ɚXz+ dMX].\I{o>~vk5~%ѳCů5-ך{\ ;{g{{ h ngM Q<`{'GQa4顛b+{>î=}k#;Я@_?qM\hFzl;Я@ۿü ףx4DTlݿ>zy~2/i0£EbMCe^0#MD'GsFϼ`F:+>=^4wG/ݽ6/ִpXػ5-ޚˤִpwf^h"Ɗ)Fs{^ʌtۭ;%[b^0#Ѣ+>=^״pۿ].yG#\ _cm93RmM{'1zMK|g^0#{D[E/k^. Is7/-terminated string ; pointed to by HL. No Registers are affected. ; EXT CAPS CAPSTR: PUSH AF ; SAVE REGS PUSH HL CAPSLP: LD A,(HL) ; GET CHAR OR A ; DONE? JP Z,CAPSDN CALL CAPS ; CAPITALIZE IT LD (HL),A ; PUT IT BACK INC HL ; PT TO NEXT JP CAPSLP CAPSDN: POP HL ; GET REGS POP AF RET END ; ; SYSLIB Module Name: SCATH ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.1 public cath ; CATH -- CONVERT ASCII TO HEX ; This routine converts the ASCII Hexadecimal char (0-9,A-F) ; in A to the corresponding binary value in A. ; ; On return, A=hex value if no error; if error, A=20H (). ; CATH: SUB '0' ; CONVERT 0-9 JP C,ERROR ; INVALID CHAR CP 10 ; 0-9? RET C SUB 7 ; CONVERT A-F CP 10 JP C,ERROR CP 16 ; A-F? JP NC,ERROR RET ERROR: LD A,' ' ; ERROR CHAR RET END vYSCCOUT.Z80A  "!#%$'&(*)+,-.0/1234567:89;<>@?=o3|B}S'[EUPfu&*URyPfv_` MT3o,Hȟ޲/RK?frK?Y[ΖJ P.ϵzu<=|+`Th1AS5V*sxzV4 _%t1O}yv״7)3%H@gp;}zzq5MǚҐ6vA3U4ʊB|s631N; ; SYSLIB Module Name: SCIN ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.1 public cin ; ; CIN -- ; CONSOLE INPUT ROUTINE ; INPUT CHARACTER FROM CON: INTO REG A ; AFFECT ONLY REG A AND FLAGS ; PUTRG MACRO PUSH BC ; SAVE BC, DE, HL PUSH DE PUSH HL ENDM GETRG MACRO POP HL ; RESTORE HL, DE, BC POP DE POP BC ENDM CIN: PUTRG ; SAVE REGISTERS LD HL,(JTABL) ; GET ADDRESS OF JUMP TABLE LD L,CI$OFF ; CONSOLE INPUT ADR LD DE,CRET1 ; SET UP RET ADR PUSH DE ; ... ON STACK JP (HL) CRET1: GETRG ; RESTORE REGISTERS RET BOOT EQU 0 ; CP/M BOOT ADDRESS JTABL EQU BOOT+1 ; CP/M JUMP TABLE ADDRESS CI$OFF EQU 9 ; CONSOLE INPUT OFFSET END vhSCLINE.Z80H  "!#$%&'()*+,-./012345768:9;<=>oA?DCB@GEFlVkKE{ibqI*ӖCKlVkvn/%b΋I 6 })hOQl[y1in=lGRty]p?ls_@5"Qb^Rgϧy6r kK%<(Ye(ul&A&4Yp΂1A#e);$N.m6E+6ACK8y|AK r,~Y,_;h5['5g /(iy{r4!at!AtOZy_J*6g~ 'un@0,n)eM6>N.&Ha*YݶSRv`9b=9x0R,y%K% sq?峍0O* 6yv^A&? Ozdy&fgfT_ 6g/|DG&/|LMVi|ٿjvPUݑyX޳_lߣժ7nR<7SUo19d՛fysV7+?P']]*p5{_@5ZgngfsOj앛ޓg;SП_@5{?=IPgM,ju]^Z&~ep5E 8&+$Ae՛f^g;Sճ Fٿj v앛Tg-M@P7T<} $5768:9;<=>oA?DCB@vXSCLOUT.Z80B  "!#%$'&()*+,/-1.02365478;:9<=>?@Ao3|Ҿ |!{'*p/^Dڥy&T^Dbq 'K@y[RY!wW'l*'_މ $U,r%y{"*ѫ@&>'4N'|3o'X&5W?fi0/6f|!ӝb6jS$>Lqj?eF&6|<~xI,Ga ?3l}-I-̰$Tzmӭ{s6\&VS=㇟Zrb\ukR<7.3W0VS=㇟ZrgC3|ͮ45Ҧ\uö> 1>z܇jz 7)j`XM mɵ-M8xcU7c\MjiƒǸ7b@?p_<7>jGq<7>jgZ|-vJ\S.=x7)\u]^]5UW =IPgM,ju]^Z&~ep5E 8&31N; ; SYSLIB Module Name: SCODEN ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.2 public codend,$memry ; ; This module returns the address of the last element of code in ; in the user's object program. This address should correspond to ; the first available block for scratch buffer area. ; ; Thanks to Ron Fowler for pointing out the availability of the ; $MEMRY variable. This value is filled in by LINK-80 when the ; external references are resolved. ; ; Input Parameters: None ; Output Parameters: HL = Address of next page ; CODEND: PUSH AF LD HL,($MEMRY) ; GET ADDRESS OF NEXT BYTE LD A,L ; DON'T WASTE SPACE IF AT 256-BYTE OR A ; BLOCK BOUNDARY JP Z,CODE1 INC H ; NEXT BLOCK LD L,0 CODE1: POP AF RET $MEMRY: DS 2 ; FILLED IN BY L80 END ; ; SYSLIB Module Name: SCOMP ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.1 public compb,compbc ; ; SCOMP -- ; Vector Compare Routine. Compare vector pointed to by HL with that ; pointed to by DE. Vector is B bytes long for COMPB and BC bytes long for ; COMPBC. On exit, Zero Flag Set indicates match, Carry Flag Set indicates ; that vector pointed to by HL is binarily less than vector pointed to by DE. ; PSW is affected. HL, DE, BC are not affected. ; COMPB: PUSH BC ; SAVE BC LD C,B ; SET COUNT IN C LD B,0 CALL COMPBC ; USE BC FOR COUNT POP BC ; RESTORE BC RET COMPBC: PUSH HL ; SAVE REGISTERS PUSH DE PUSH BC ; COMPARE LOOP COMP: LD A,(DE) ; GET BYTE PTED TO BY DE CP (HL) ; COMPARE TO BYTE PTED TO BY HL JP NZ,COMPDN ; DONE IF NO MATCH INC HL ; PT TO NEXT INC DE DEC BC ; COUNT DOWN LD A,B ; DONE? OR C JP NZ,COMP ; DONE WITH COMPARE; Z=>MATCH, C=>(HL)>(DE) COMPDN: JP Z,CMPDN ; DON'T COMPLEMENT CARRY IF ZERO SET CCF ; C=>(HL)<(DE) CMPDN: POP BC ; RESTORE REGISTERS POP DE POP HL RET END ; ; SYSLIB Module Name: SCOMPH ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.1 public comphd ; ; SCOMPHD -- ; Compare HL with DE. On return, Zero means HL=DE; Carry means ; HL@oݣSe0)  ?#YA?$f6fg{tj@lP,c6R!T `Sa2f* 2`VgpaRGi>6ƄdoGLP~%w.+90mچ&~i1wY6$ rLѯZGbLHkU'9Fc4ߏqM6s J%ZGihMHۢ|g]LHJ}ݣ`-8jRe?lakY[88׺k=og6^gkcFϣ{tr ~=nL]^S a1uyei߼΁6|1]׺U:MˊW-s'!wYv]FFWD/zz6m]V R>εN{p:cTe-U|T.GzUcY'y׹l(DO2^箈v5 QD.Z31Nv9SCRC.Z80P  !"#%$'&)(*+,-/.0123465798:;=<?>@BACEDFGJHKILoNMOeW:XbLN3d)֠H~O}J%=I82>%~u8>;iH8wŘfH S$a>uϣg}<缉JO٧7Yᩏ7S't7A(~ǾOGыrIq{Ű2P1d.·Ŗ}ݤYpŴup/O()+)%>#Ө'晖}bbӯKaVB,MVĵO1{V{ <)fߞ1Z{(O?Ug%}+-TO1{V{򲒶.9-TkbcjOVC+-TkbӯYny"7yĵO1{V{ <)fߞ1Z{(O?Ug%}+-TO1{V{Y^ǴeVB2XF)f=ZZngiO1{V{bQ5Y05rʊW:XnyVSY~m֍KFge#_})<^7pyzEnbᩏ7d=? dDO ׃I:wb=O٧X7uak"K|>ebiNzX:8߰OVc,cXUV~_&__Ǫj+~-TW~ kL%O٧$ϥO?UKC>V~u}XXSǿH?UYYJ2XcU5~VVUCgE720;_Vr{JV>CXU}>VUCZ}>>+Ǫjc|;0f%eYhCYhCYYhn-4(t5$@Af%莘;[tD.IyýUЧLȌw8$oy{( LeѡeYam_,4:te. " N 0 z=[b)Gm>k˯?֦aڊ_ ՕZ֕/yOOmW5uO4>{b48<KO4>Ş~:O|ѓxҝz.A-}u_?VK5p. +='];u>ebԩN, }:uak"ajڋ'foE2Oi>e,/>?Ɛj]AB Y]K5 !gQtsjCӏ`}ϊ_ ՕV%z_ZW0uc֐>/y}Zm_:B)@BADCGFEHJIKLoNMOeG>_L3 IO?qvD{G>xDIϜW_L3 e<"$8)Gd<'zz |s8*{& lDp0;X>{c=1CM#2CÎ]9cЅ &`Uad>AFz9X*3]/UlƮ'`UaU9!cdd.Xg *I>nbR}]߄|'p#|<^C;t54^eb ؇Xty<22 YTxU,y~JJtRyWܫV{j+yu~{OZ{"O?OYZFݫV{Js9SW1RU|_sbOĬD7ܾ<|_sbZ'y{OZ{"O?OYZFݫV{Js9Ҵ{G`V+z}rU*U{ZnTkW1{4Xkҿ>CM3}k0A@t:w=X!;ɽ^Ҿc?B$*{K3vCsǏ1I.^O?U-hKUU|O9OMԝ˪b~Ru/ڨSkWIQ5SGyWܫUbW٫'A.@~7Ǚw*YXpC#A g o.=!C;]!u1*"% .@~Xx|ƙw &*{K&=4wOAHqp{HoW4c'=4woثQZe4W}gZ{~);|{~)^V;NLa[eUw~$i_U~B֛_s/VjВ*_ȿ|/7|ba[^&Ga[t}^V{/׺eUz2]*F]%.M彬*_)YL w2LZZ{Tmzʬ87DRk^VY;dnpc)a ,X˪b woT#.S4^t[XVo"S L5:?2={{;{{!u`H '8qp.@T罊u)ԁ.zprWoCsǏ1I.^Ҍ<#tpLP57μ_RW'*e4W}gl[% *Oԝ9{k^Z'UŨz=}ʨ_3K m^Oy({}EuUbW٫'A.@~7Ǚw*YXpC#A g o.=!C;]!u1*"% .@~XvSCRC2.Z80N ! "$#%&'()*,+-./0123456789:;=><?A@BCDEFGHIJLKMo}nI"+tbYeU>Yl!`ez=O7$udxFϧ8}+tO;d]gNk4A5;ArP}tS1Y `23ab]R?x*%US]bͱKWY tJEW*kJ}WYՕ.ٍ,`zMlOާyv ԆH낯escD 2`}l`2bOWL,_ }:Ztje/hg}>JE(#޵jg0UqUVOBGV!6rq17.^e'Ye$֐>}WYUd4 X*2t}gLm4.p60OW? ȓƂWY07LlEji d"Z|l0zOߧEfZf=Fاh#y& 5 2q&UVMό:,_}gjp3>M47#b<3%o$ޮm~rYLvTހ)̌اʪt(GiTHڙ-}FAK;ױkQFПTd}4J}ڙMEEsS޷VY?.C\jeHT(#ulyG0T!.jGS#ME>ﴏPG֟F+* .zU[Ę".>}MoaU^X1a:Nh Uxh }F\tvA{b,x0'}4>}UZ)GSVY?~ I;ױ ftL^0>JǴR>JǴ i-gO*sl$ ^e9W0] ϸOW3aā.ZFd7|I|l'Ƃ LZڧ++y* ÷МMy$n,8W0]w,?9!`Hܲkh čGQ^tm  ~!|+2d,Xn#thNʹ 2{OߧEfZfm! K6zgOgU 9)T!o`-s\-[Hh>(p*D 2`}l`2bOWL,_ }:Ztje/hg}>JE(#޵jg0UqUVOBGV!; ; SYSLIB Module Name: SCRLF ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.1 public crlf ; ; CRLF -- ; PRINT AND ON CON: ; AFFECT NO REGS ; EXT COUT CRLF: PUSH AF ; SAVE REG A AND FLAGS LD A,CR ; PRINT CALL COUT LD A,LF ; PRINT CALL COUT POP AF ; RESTORE REG A AND FLAGS RET ; ; ASCII SPECIAL CHARACTER EQUATES ; NULL EQU 0 ; NULL BEL EQU 7 ; BELL BS EQU 8 ; BACKSPACE TAB EQU 9 ; TAB LF EQU 10 ; LINE FEED CR EQU 13 ; CARRIAGE RETURN CTRLR EQU 'R'-40H ; CTRL-R CTRLU EQU 'U'-40H ; CTRL-U CTRLX EQU 'X'-40H ; CTRL-X DEL EQU 7FH ; DELETE CHAR END ; ; SYSLIB Module Name: SCST ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.1 public cst ; ; CST -- ; CONSOLE STATUS ROUTINE ; INPUT STATUS OF CON: IN REG A ; RDA IF 0, NOT RDA IF 1 ; PUTRG MACRO PUSH BC ; SAVE BC, DE, HL PUSH DE PUSH HL ENDM GETRG MACRO POP HL ; RESTORE HL, DE, BC POP DE POP BC ENDM CST: PUTRG ; SAVE REGISTERS LD HL,(JTABL) ; GET ADDRESS OF JUMP TABLE LD L,CS$OFF ; CONSOLE STATUS ADR CST1: LD DE,CST1R ; SET UP RET ADR PUSH DE ; ... ON STACK JP (HL) ; RUN ROUTINE CST1R: CPL ; FLIP FLAGS AND 1 ; SET FLAGS -- 0 MEANS RDA GETRG ; RESTORE REGISTERS RET BOOT EQU 0 ; CP/M BOOT ADDRESS JTABL EQU BOOT+1 ; CP/M JUMP TABLE ADDRESS CS$OFF EQU 6 ; CONSOLE STATUS OFFSET END vSDGO1.Z80D   !"$#%&'()+*,.-/0132548697:;=o><?@BAC#G?Qu9tQhA``gMYs5#G?Qŵo5:<6r豸FSܦc N}b&}V(u4kUn`1(u45&=8YrFZW]y<_+fBuDkTs^yZ*[*fFZW]yڥV<s=Uz|l7>ixnp샭־n^Ѻ◅z%s=}:jhmyDZ^篎hmy lږ<N^Ʋ;<[}<_.oquжM`9尔-^篎>Bmy&rX[JW cGo-o l9򖼥k:1#7TVMgeK/ D[B7K`O̠^ęlFjhTzu O*M㯙wό-[zXGW;`Xj2v83 6\2 k-ЍG7eD 6\2 kKgv_3cя-JP!̉3g<_+kf,ĉ̉33U^#ϧ^ę#O$79#Od[ʜ7k*}tC[I0H,}t { 2 kUGu` gvlK/uòzCO7M˱BNhlK/تM^SLq?5<?@; ; SYSLIB Module Name: DGOTO2 ; Author: Richard Conn ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.1 public dgoto2 ; ; DGOTO2 is a computed GOTO. When called, register pair HL = index of ; following address to branch to and register pair DE = maximum value ; allowed, as indicated: ; ; LXI H,INDEX ; zero-relative ; LXI D,2 ; max value allowed ; CALL DGOTO2 ; JMP ADDR0 ; IF HL=0 ; JMP ADDR1 ; IF HL=1 ; JMP ADDR2 ; IF HL=2 ; ; IF HL > DE ; ... ; ADDR0: ; COME HERE IF HL=0 ; ... ; ADDR1: ; COME HERE IF HL=1 ; ... ; ADDR2: ; COME HERE IF HL=2 ; ... ; dgoto2: ld (hlsave),hl ; save HL push af ; save regs push de ld a,d ; check for range error cp h jp c,rangerr ; H > D, so set max jp nz,goto ld a,e ; check for range error cp l jp nc,goto ; E >= L, H = D rangerr: ex de,hl ; HL = DE = return index inc hl ; return index + 1 for error return goto: ld (index),hl ; save index pop de ; restore regs pop af pop hl ; get return address push de ; save regs push af push hl ; save return address ld hl,(index) ; HL = index value ld d,h ; DE = HL = index value ld e,l add hl,hl ; HL = index * 2 add hl,de ; HL = offset = index * 3 pop de ; get return address add hl,de ; HL = destination address pop af ; get regs pop de push hl ; set address of routine ld hl,(hlsave) ; restore HL ret ; ; Save buffer ; hlsave: ds 2 ; original HL index: ds 2 ; index entry end vMSDIR.Z80E  "!#%$&('*),+-./013246578o9:<>;=?@ABCD0EXTcC=]I,h{kKWѭAkH XQTc_$*",1e T,W&K݋;S.V `Qmr5a]j׻N)WSUt^e]baxg@01bp9fyG6%{SJPiIo^xNgKa9(EdMxN*X%c{WTfOuj<ޜZ>;R~Seu-K99:))BwD7gQrxsWYû[9?@ABCDIM&TPHJd%ðbEo*TVнmmIM%PBtJ_RK|S[-oMEt ѡoz+ GX@o JT<M~'$'Akhc|j }>MZp}<<~:xpG$?)Tz_Y'vGHh/SaXP{zJ죮k:13g S?׋#UXIOFPIv-n*\nk`6iiqh<ʶOǚ^P%v3tǏU\^DPIv(ማ>MÖVzw5yyXoJn*_Lީx'x\ө)+w'x!֗[<aT281ntG\LS#r+9_wWwǏU.a=0l*T:ry .C:aǚŔǏ6 ^ޕSbXMCT}7ω,cyXS}$]h1 -T}ҽ5[GSO{|1 >%(׾&zhm{ib A!yX_Qw&ރB5E#:ݗ$hbS4[c_SS}$]h1 -T $S?UPUiB7J%ʵ4 ѭE< ƛ:wǏa6-`<*{#LV=UYO{;B #9yҽ_ܥGΜ0ЌDŽ3SDP*q[lw6<`<]z TbGDܧqaGN gt{l G⵱qaGapw)Oߙ3OSy }>M}>M5 Iuy  )tσw=t˪}z%?'ecd>/X XkqjG"tX + (^_z%?"_6#}z%? g32$e`3Nm,'ecfdH\1Yfڠ,~-z%@Xf~J~ERj.#Fz_%WI{ ~sٜ1n{ F|h#+)><﫤-<)'}-fF z6ht>[%;}t z =<%{ۢ}N>z6G:I=yKnp#t0t_WWI{s}zOr}﫤=z_iq,*,҃3uLr}{T{;b!x,yq~.;mK/WAKx:g!KYo=R# m=b;%< t0WK,ᙻלy_,쳐UʐY0c_K X-==;|@,!إ}萲N2Mg8#߂ ~b y.e!Fǒ_tHYiTJ3oc`_yKzoo-ȣcKO]-g~ ~3j_شF)^LW~S*^(!Kx;x/\QW3 ,d2i@לXBO%R@3_kh p>z y.~s錅wBs#S.!߯~錅_z.g.!/ ^~력Le݃/=u>e%03124687o59:;=<@?AB>vSDIR02.Z80I ! "$#%&(')*+,.-0/12346597:8;<=>A?B@oFDHECG}6h'$-õjƹy}ǎ)S<kzc8<%j&m *l5NԔMwlQQ#5&MHZQh^щ|߱hzBҒJ4="iEM { Mޝ'o t Q]q:.I.gޮhj ELFYʖ̅km}%%1m)hK)ChTh/ d1쳗ei42$!l9Fԫ޿hs2M=OnɬSAc{^Xz cA,B-J&N޿hx{;G,8<lE޿hx^vW7EciynɬSQ5҃oKbmQ2u8<f%^ ,C$Cυi4.~ ,i斈Kc̶ ߫2wavqe8<lE(veLUs{{;G,AosBgI5X•[":kW]sEck;9IJ-ۢd2fIpU|_ 99ŕ D}P{;G6E->wavqe*xdm|^v+Kw~?G,_ POݝ#BKb*x%zIpU|_ 9Z~^Xz cA,B-J&N}w{6ﮭ~,αɢKbmL=OsaL Q]}$;>{%Q5;^Rwkg~^p aaOoz[OfN;5S \/6s޿puzO9"dQCfnpA;Glv+SDIR03.Z80G ! "$#&%(')+*-,/.0132458679;<:=>o@?BADFEC]02 'Ö ] I=|=g7.aכzP [j$ֻ<<~|a44 e <]3|@@_X' gB3=O}])A'Sᆱ^PTVxww?Y&v6# ^#3 ]WiNl{lF̉R3:2cpSfw_c͌T1c &R;Ȗ*&)#h.kI>WsJ Ԇw0Wsɻ.NjϕҘmm1"$ỲzwuZjm~4.(1'_"3^(]Vr*OC,7K̉A ww?+ede2(5DjƱW |`ն ee[[{w[igZ0F:#$YP0IyFcPrTY=F<~Yxn/j[ nemleS&J֮7]9t9vC+O!9M zqB,7ed/kcw̥t)O!N妌LemldH\s 6ݡ_%wI>WUlԩ2˄d/kcZpwR+sb&CFHȌ-}WwU*̡'R()$SH/M]Vcg{,֞Efh|Wm/ma7Ђ#{6Sf[0^g2N!!VHc)%Ỳzw̥21(mXdUCIV%4;1ʄdf/kc ~]?sbcN̈/rv9W9Զ߻vH&ro;KyA45BBjww[e~9M;XrFy _!{wuTguL]#$rGP⾫0pH DGHv̸rv=W~ '{uҸ~ɐ/` Pj{VS!gz+[<+ȁ:O8v}]AR&:afĜ!!;ث#3 7e}%Fjasr&S{NmxW9!w՞] O3)#h.kI>WsJ Ԇw0Wsɻ.NjϕҘmm1"$ỲzwuZjm~4.(vPSDIR04.Z80L  "!#%$'&)(*+-,./012345678:9><=;@AB?DCEFHGJIKo =?vrF o͈[%O0oQp&{uu|u:"0ȵ%=@`pZ mZgagxk%؛TVDT-TcIx}]zwsV=|y)dw)D!7՛&^]ޥmqseb3t*9Ȣ5Vzmyr 7`pD#'%x3C :~OQݭͷ73_gWӏ3`N`:D^5JO^=]2i@j7.Sm-~僰3M ]ma#C5 ak~8aGvi/f{G#,~#NuX,K^E=bI!0nP aXǧB8Dd+~@oABDCEFGIHJKLrm ֓D& !y zA^[z3s35623%W¯-ͅ<-sVML@M>ϼ\[+Ȝs:]ז@z&t>ꔭ|ٵ%qws3־[v~񝐮cM]LU%4/kfNWcv9MnqnL|Fq!][(}CWvP3 ڧ:ՙ8mu87&43q!][}9V\Z_kǹ1q,uL}5S$sqnLܪtNHVWlϹɃz-%`뗪k3M o;i4Owm wJhHGvtNH+8t5>T[е%쇳m]Lϕ+:#9Պgvz֯ 7ZsnZ[kǹJڃNxD _&:``gv?%&Z;+o"'ᆑ@TS>8&BZ; V =}H~ QCٷMtܸ]jfbHsgӹ~sBXCh鋯Z;xsMtX[Y϶/lkpmM?=Ow][kD!}p\6ҵbě\&Rv)'2dH[dt]; BZB,`Y[kKԦ.M]SOom y^;8AkK`m pHq)u!-o"ʧ` 㺉֎i-!`Hmӳl:3qm *~Xl2ft:=D Q|ۘ_;ҩ+Yѯ!~J]뗪Pk4o}uHtSMOOY{m _{6gO lpHq)u!)X; H1B<Uźvpq{Cdk싯=3zn"y_|]v@bC7q|FzMy|'"uj]{m -[ӹ)hiM$ym ~&jHk_kjӵsN,S7okK BI}~? 濶ktzm D4Mhڹ6|NZ;Z蛨"vLqCƷX[ve&jH)΃<~JE{m pKk~J-kS=~3䆬-ZzMY\:Qtm-MlhzE?YtZ:e?Ե%wKSOϳI?5ESVOɵ%`sz1jESsF*O-b1R΃ʵ%1ĭ:H'-誃4ǽԵof}ז+z&t>}~:y7"RCߟkK ?Tiߵ%y?%`;!]T+Y@+֎;\qn| !;fvB)BHq֎i<ʇ!'~JvbM~Jqnwʉ[uNw̵Z9QUS׾? /DuLO/uLR];_vb)\fA6T:]g];8'|vHSWEjsvpc7W>??!iz NOP&SזIlhRoLtiʩZT1=];_NH1Jգ8[;_v"+ \8>wwJ w֎qo|YH6jED t?%w̵Z:غv=V7Dss aD t?%p`<&3 a>=~CuPuvH[͕w֎i<++kGCvixLo\׳AҷՊ]u87IJk~?,6EPZ0N9Q/S0NxܟwזYbSu9Mo8k63Ϡb!kR >4xY[sz7HoObC۳:݂#4;= ΄6} nbCvp񝐦JVt?%ЊlMnH>4!kǭ!|[u!1=ms)~Jڙ`5iE&cvN MڧuNkG<)tC t?%p`<&3 a>=~CuPuvH[͕w֎i<++?@BACDEFGHIJLKMNOPRQl}aNu`',x, #uбẝбdA9uB :g} Bt:g~_:Vh8iyS:vzrEÂ@ ' #x@NV쳇_x??z']gU-ɂ!X^FU69lv6KȂzΨxyE=g_b;YE>(bdMml6b*r pmS! ȇ[TFpOufsī?H[8*M] \۞AW+\M] 9MsFa=\S]WâK=={aQξk:{>r@t>{E1oX@u. .ڌ=N V|'! ȇ.ڌyâ_żјxKѼ~9{ͽ!yâK{qߍygYMAu6b *VGrR5Ɋ4gxMA]բ=u隂>Nu+x>Yʏ>߼VJ?%/RM>?S͛aq6)Z-y4T *(l\\>PADX̋iTŶ|_iY<֨&pm! ȇ[ osWjuU=?*h!} W>PAgm˘7,N"?T&uPA wf*Ny4mxsoRW5٣ƼjXD~Z%da5ngOᇪ7o*Nt^RMvƼa D~>PADeeXi+y4~5=f9{PnZ^ճ,cuUAw>DLEz/Ķ?'+ *Ӹǿofgf6^ dEAExSlբ=uΞGc^oȰ/b:?h]޼a%͊U/]"?-܇p,x?lpr*4\YU.*;ryϞey =ƼUnIrgϣQk$CRſΞGczu<տ@=Y"%܇t.gχ1gM^o5,[eŊ \ʅ7>{ͽқ7,$|]*KW-zHoްXޮr>ۺyf !wt˚bo ol֜Ul VϞGc^|!âgm˘w{y2,ݒt;{ ?Ty3,=ƶP=ƼB[hTeWw *^*w?u<׫Ѩޜ=_Ft<ӫQHoްTUAYz VrY-kPtTpFQ9{Ͱx=0Ak:,K)QA>%$nxʚU)PͰb[ΞGc^* K$]E4TÂʚUy4wTT7Ae*w,\|wxwGuY{cu jXP-T}P>%=FLPʛf5[=lXzRŨ֭јQȰ=޼јQ]Y{crÂmƶw,F\lk^ׯ%܇كrAfgDX(-pYۢ?HQ>PAl{jٚ~+ј2,r TϞGfX{m,;{y "?(&:{݉@zE =ƼN \*( YE>ΞGswB޼a%q! /Wp,l8O+,l B y4w'N'ͶnܷM S͛aY6y4w'dDG~Z%d!ngh32,ZUiljg"j5UѨN K$}ۤ W&p z:{l[jXD~Tm7gqeW6-! QDPZu55ҾF=Fw*dX_@oR:W%W%1k>PAܷM ߤΞō_*۴,FAicAkj UbK55gmP O+ D*ng22,˿4 v</R_0كr:,mҾ}6K8%>+IAS/}ۤ Wi_jr6W;gQ!<=)HsFy==(7}6Ki1m_-+.&&:# /TPjY<ָ*o*mK'Y.$ BVSMⱆIGkE-w'iTE~*(B 0>{y݉@['i|T=TP U+^ &QDPZ=Fwa*o*N /TP'q>=NjX<֒TE~E~Z% BV>{l[Ƽaqi8("(ۖ:{!rUT횸oD۫} y4w*Wg͒[Z% BVSM1Q =K5,>o\|.MJ&p;{y Y@I䧚y4TIG/Wp6/â_m_ſIi\ngϢMWgnY|w|/>PAQj "?TPhN2,&+:&gϣn2,ݒ⥈Ic2=yȰtKblx)"(mRp< ۔ߢ!TPjC՛7b^O5[ǯ\?_Q8ё*-gh32,ZU|v\UMv,t|u_ΞUo yq#?K@E! &p;{ Y@zE}ۤ ܇KY|wK5[l_8 gE[L=SRZ RMv<' K$N "?b*TZlSb;{Mwa/EuܷM ۖ1y4CخRDPZ}ۤy4?DG~q}DG~ BY{jX|v\UMv,q6K b[ܷM "u<' IAgTT=-cްho+Ƕe;{݉@z>%˿4 v_[_=T˰,$WhT Vk:{>ܴνv_Jˇ TW=:{wc%3,[}6;%zEk0\?u \#@8\# x#.֎ұX #qfXütV(}6c V|ΞGc^@ ":*(Uy4~ofX{m,;{wcCy3,P- cmZ k٣Ƽ޼DG~>("(cEIQ[lŸ=kx\>خmżWxc-r(1JȏIAl)PZ':mRۨEo1ZƼEFxZﱶyzQDc^o yq#?tIֱ좤(-Q5X<~.l6Bj}{EE42b^_q6)m|=f!3,_j݊IW%rBΞG;2nICΞUo ^Ce]$Vr79{͝ HZN=-c O+ĿIsq6)8{l[y4K7a?;Ѣ;0YG'C~Bl5:`IC܁N8XмNdzN8XsS!H<9mu qmƼ*=Ƽ aQDPZs@aY6_ΞGqߍyg2Ͱ(B]6*|zk5kV{mg"zfX_WSWjvmȏ8{ј ":b*Eu>1'QC՛7/Ob[e̛aQhmTȏkj8׬XE4ͰЏVʊ1kz:{јS;lv6KK+q6ё1m+Q᳢tlyeŊ9%Ti%&:#mRu6*|Vmյ-+Vl)W},*^E5yЇ*}DG~Tx&&N Q;E~TALܷM fgϣYy \U}$#}T-ۨEضy3,=ƿELڦ^;{CΞUoh̰P\U}$#}T-ۨEضy3,=ƿELڦ^ΞGC{,eW q (yXĶKrYսUbwf;{E:{l[Ƽaq4uǶeΞG4,&ϞE7˿aY)pG}qߍygL<,obۥb,^Id1gh3=P=_U$Sx}u5MJ$QVߤ}E g"z9{ ?Tyg"z9{ ?Ty3,T}K+qSRxQ=Fw*dXu YCP=1쁒iϞG;2,˿:.H\},n!gfNAſԵpUOᥚQrikE|lvrussNwf;{E:{l[Ƽaqc2TgϣUòSPZNY{;{wCuƼJu>{TȰ,T. r Ξ<쁒,YeWt˼pǿIi( EbPflڏ! lvy4 K$wG5ṵ\&W=fհX۲=Fw*dXu Qf93,WUgf9{dZǶe'Vx9{l[Z_J;{PnZ~Ww@gua>qlvrusOugX<ξJS%7W}\jZgY=GggRŨ֭( }<곝8쳇xmo,`=Z-&g[>}Xl—!>{HQ]쳇x?a=/RDG~9Czo[EuS^ Ե^i[(]m$9\b.ڌygh3TgϣIvSDIR07.Z80I  !#"%$'&)(+*,-.0/21435678:9=<;?>AoC@BDEFGH0YG.u~[.:֓vOSkwxU;z?fU)VF￶NfYG~hraաmkAބ;fVm'Whp6U[ ?Lv+dkɄ -^C?3p#_gWB;J5+1 8TC3t|&g;%q9('2!~Ut~;y۹˫%9.G\4O];?'_ yDzxN|GnG㝟q̍]Xuh#Ӄ#ob RJ+@τ_M f"y 7q7lM LM xUu]Qb2tmo{_Q2jLM ;E<#W0d3{4%>s+@n͞ADKKIlizk,5qϻ"[e37{Fkd/}ۋxF& jo{'.&B}f'0Dp2 ᪺OhgcF}pmtAf+h~>;R;oGjWW f Vl|pSLᲥ-Z]G٭2] ,{%h0& jo{'.&B3;l 2ͫ|׼jΪ]3!V=pmtAnuꞹ5W S砜t]pUݧӹ3N?CK)3fx{~x`M1mB K) pޣAy}4ApgSjogdWy -m=.G4 0mvqh/ ѾKoHτ%\Uubl!o }|܇pUA1tm~ Lv/L1DyKoHτ /᪺Zم;y?CjݠgnvCt7˖ޣfX/3a>51{wBτXpSLO.O niI)B) p?B|&g]x>XR A3GKnŰL p[}>;Ӿjn`j.[Zn#oήm,OUu[ fx RW6h}w l"H/enP] /snfppn#'OpTB}yDzxNvCSDIR08.Z80F  !#"$&%'()*-+/,.102536498:7;<=>?A@oCDBE?[3*$<sc3nyRONS$-:1 ׹+p 15˥oWJd+7ѯe8RpZGTeD>^PQ] 38Hn{AqP^Ġl%֑)TJݽȧ ,> dj]đknYWcr_ %\ks{P-N俶%࿾f6)kSmnj{7f8Z _h*_r{po&cmJۃ:k"6/5Y*=ij d_rl7SzZ6Aچ͔**=& ks{{7j4SLPDG=7qT"uJl>8j`3zEJŢf:c֕mR1}nVe*3&翎664qTIAuJl>8jmnj{7f8 (V{3]?n<nh .8r-q@mn_,>ohWAU) =Pطđn&U3?h+Ɔ6:ػSbu3*FɻGhH#/,.102536498:7;<=>?A@oCDvBSDIR09.Z80I  !"$#%'&)(+*,-./1023457698:=;><?A@oCFDHGBE0hQLȼf9t|EֱVbIQy>*E |֦zhQ٬fcקWEg3>#G5>'M9 Aȼf9d`S_4qvMfs;5qTO@v٬ױ 'ʽs0Q:L](8}g,SʗOe?_FLFǖI %޲7}`0*WLbg9([<` Fi_vEN4"M^4*"WEZiD`乵Wi .ydeU/߾ a4ؒ%Vly.E:Kb(ޞ~R9 +~c7D&}Eg]:vnϾgRg/:.`R4J<إg a9^Ѯ4 =]ZּI<绀7;Q (UGk$\(t3tPz9W]i͛s4 =]ߊ;M'ƀEZi;MK/:T9U7J &iz~>A[/e.k.J `cKW,޺eBe 3.yAoD=@B?AohXI;n9t6˖7)\'8cŎ-s>HO,o'hXIO,sil?x8?8M~b1şxp?+瀀}=?$И1z'rPϫ ИeU u==W T)YמjxCrgWP Q2:, T[e~'] TMhLIKuyqߵ?yN+@cbԲgsߋ4&$~b^AkXzo؀jd=հfl7l@B8jߵ?YA}}T7S Ÿ,>~vg{zᯢ՞jj ն T7xjjFP_?U u34c =V.HG40zv}h^t@n٩Z'_yVD[ SgYNk|ёh^~esU_4u^90zv}菼f~P,Ǐ,9S{ NGT[ yk8/(ve95cc|ӟF@yqߵ?y^[[6Gͷ@A"vgiN*zN T7uj~y5ߔ62 ¨kg"PP;Ms>Ws_9ǼWёhsC>~GJְ}U u==p6u$ڜf\fl Pck8uEG9zm@oup65.oWD#6* ykXNv^h:m{h@~/{gYnQ {TϬVE|m "v^bw@Az/*<5,|m V TM4|zohXI;n9t6˖7)\'8cŎ-s>HO,o'hXIO,sil; ; SYSLIB Module Name: SDIRn ; Author: Richard Conn ; Part of SYSLIB3 SDIR Series ; SYSLIB Version Number: 3.6 ; Module Version Number: 1.5 public blkshf,blkmsk,blkmax,dirmax,selflg,order,dirbuf ;* ;* BUFFERS ;* BLKSHF: DB 0 ; BLOCK SHIFT FACTOR BLKMSK: DB 0 ; BLOCK MASK BLKMAX: DW 0 ; MAX NUMBER OF BLOCKS DIRMAX: DW 0 ; MAX NUMBER OF DIRECTORY ENTRIES SELFLG: DB 0 ; FILE ATTRIBUTE FLAG ORDER: DW 0 ; POINTER TO ORDER TABLE DIRBUF: DW 0 ; POINTER TO DIRECTORY END vSDIRQ.Z80Z  !"$#%&')(+*-,.0/12435o6798:;<=>?@BACDEFGHJIKLMNOPQRSUTWXYVbtׯ!m>bX3*}D 0dl Qva>"(aSqKwJdʎ~ +ذ>N6!rB!m>bX#nh6e@Mg}z!/1 3`G@G#R6KF#y)eԄ\RgUz.&!oOSγTR/EugH5 ͕Rp^\խW E$,~H0'ܻ HgŽf"+Ar.+ߣAi"Šw1q~0_35S"rQZo9W>by+ߣ 6 Hg5(dH~ר kw~yb=֫\0?Dykjzp{3$W8|Bdӯz]hLXF }D.yGDTP,-t7T]JShW(yW+&խW\3G;rqİeA {r dc%u( zvV ž` %"bX3֌ G.60.>  F.= j>"AR*iAC:}D. y<:oϬ#z}Ø)kao}DFgXCaXME Vv6E GHf#mݧxjgd*T1 yu},"T\z55{Ƞ4ThjAib>M%ǛqFBUz}5x`~zpE$,~H03~\0OSo JCUz}i Ƞ4T1 yu}K[ĬD >٧xE< ?V&D >ߣ1rzڧ)6O JCbJM@𹰘h}DwAϊyߢbW1c90+9 ߬}D b,yo~ Őy+fc"q.+0T1 (<̟q(j'3qԼ|aݘ=|aSγhTR+B׬Wf@R*~CE!*=41\3+4 SGWy e{ G-B5 Qڧ_sojАE YZ_k=9j)kaIME_.~{ܧٿ,~EۉOZc_8j W~qӯ"_"/-`r?fj67֯7T]=ҳO&|9[^l"Oz۴+se}ej)Di/mOҞE (BfpFOSk@}K!>Mr X4hE[Լl4M`34G$ʽ ~Vh^uޱ4dia|I0 Q^tyNEw$zSvesi^x4y0K>F:&^N.녗-qlg]j]L rr)ԐƱe5hH'G$2Ì! `H0ا"rE!VC҅!vli>]O6oO;jAi /[xl?#˴ze}5w"|*2γ>b/}ϷmfJZxRSїۧHEHDfJZx=֫Ti,gHVߟ^\Fz+F=ҳhŻ(UO^\Aw H,>2 Y.U(F=x '=}MGt+JZQ^y8Rn0' ꢐ^\f0ᅆX! s. y5cwaYZ.#f@R*wx[nm cK!fWD >|̗ݧ|WPB+ӐOZc}u"T}u,quռbMmm~[j[}uWkxErn/ݧocZܧ1#~oPBf1u_yAs=Y/ݧղKKܠR>l",,'>^:,Oc~GiBا|b>E^ܧmiO @G#իf Wog).اo~-ᗑp ԑo(y-ޱ1}D2a1~ƽfN?y[. ׼?B *=O>b_k-i[|ӯiMekJMeOfGynE.2υ">}0qZĕ,4}Ke_kϻZj>]eO^?}m=iػOҞ,x>bLXb`ì,zQ^`~J#`32J|L6-r>m"45d=ɔݧo~4u"(<ۧ-2DNk}K,p)|.,| \} ئE.Bܧmi2G#ZSq9}DBy+53c *=Oa 3Sh\T\# I%H(Gd3~f'2ϻ#: Me< }D3 )4qJZx[.~{<y61\3+B >S}hMť>nR]f]HyJI%5aӈ٧_O{E <+ݧ_*=OPBVy SSqO2-rK/#<+ݧon"2R(y}>"| "y.k֏Be UeVy t1o32?k*=bjj*.s5a_"Bw+T]2̅רO߫UγTL\ O֥[r~ͽ> 2"/ew !\fp.f7T]2ܧJE\i>]e-BYLMMe̯}PG-W1c9x~p3x JWfP'O;imjH*ie8 *~AxWfP'KoBYLMMeZQ{i,m}/YSfJZx[n Q(y-(y-fxm~{ MYH>ʢWZSq3&a>l"RM< \ƓeOc>}DzbTѯ M6-Bi3etmEquU35}ږ6e{ܧM8L(Ok^"cTѯ>ei3ۧk^L@UOc>}D=K\̥ܬ\zpu~E7/L5~}D+L\ O(|*2f0jk2:@ͺoe%-+30quߊ.i-< Y}>ߣ}6"f.[4`46>M%ǛqF5p4_4ݧJEP({W4o~[ ͭEe\_ }ֻO9mWOhG$׽q9}D *.P bZ?;xt`Ec>"e 35ҀZfP&\D?jeP+`-H`2N\ Oj*r}_"({W3_k G-B5 QG#WFzKPuQ,2~FzʯPuQ,#"O2~{WV7-`O?}ߑU-raQ>(dS .{-˜ۧ|bjaj*.i*932OZb}>"q<dEYa+~1^# ͯ5x-E!P{<0td"4~zf`h24xaf]>x`h3+204 0f`vG8K(OiqOZちbx\x ({+2viDO2mO#}gh9BاӶY,aV|E<P c٧БoȘ+U}{sG-J¢\>"y3a 5">3f0gP>}k1g8 oOc/cw}D4`|gܧٿ,~E|OZ9jAi>} $5XYqҪh^0i']m,Omcy 24d}ږk9K"Mk>O|>}kq c|<Iy <Ocۑ>6P0<"am20tCve_k<0t" ݧٿ,~EۉOZcQ JcOƺ-I%F.Ci']}-O[6ߧon}ێ,~[6\Ӷ_ˡO^̃@IytVlC|cYu[Ė4`}ږ6Pp',`Ŗ0fPG$406C}[6~>}kZdP~m=,~[vf>"O2cQgv0ӯ $5X-b?ˊ ~}y;Q^3+aۧmiC#!vRUr3OZcQECckvOY7v0ڧ_so{hhb;w}DR9 Hp0Ӷ굻>b8@w0+rrrҫV g5o#qf7xZdJZxRSїۧ-2DNk}QP(?0j[=JG-JCC_k=3jHX.{L{Y+ UUz}UBf15pj*.q7֘*U(4~9?_"Cڧo~1q"Bf15cj*.i*9"T^`O?H?bԬRSqCsXv55jAi^ Z5T\F\i?"T\ZuOo@R30~:8?sOҞ,CnL< ͟e>}kk"a֥ i呓ˠ4/ ?0Rk~iy+f`tq8,ӶY,'-B}yǡiWv_-B5 PŨYor |XmEj5-ӀӶ'Pn)U >"yB\in PZ5Lм0wZSy &TQv"vu>}Ikۧmig<  ~jaԬRSqE_ ~BWf15=rya<B1UBf1 UB^ F~T\'HOB!+^fT1 |éB /?ǡI>}kRQ JCYL /}ۿZW(¢/ ?0,Xc~G-B UBf15=jJSpǿFiy;pj*.BL(dS#M_X?p(}ϷmQ,*>ۿXc~G-B  ~j'5x=5>,F~T\F!*=O>}V9R-2N\ O֥[r(Y)ܧٿ,~_kL{(r㽾-LeeK-pM>{}dj@{}G$/e֒=2 Cy0_kL*ZxuwYc~G-2(ͅE9?s~>}kE~X΅ZOZcE~9Ө?sy3SSqOYv. B 2 UrOS^qF2N\ O֥[r~ͽ> 2OSt1oꢐYL4a|éܧ1qd"4<\>"y.SSq?F!P,?2h9 /}S*F!T1 Q^O>}5w"\X3c9 ~j>Z3c9 ~j>}k9?j~CE!*=O_ꢐrOvjqJZx.5# ~j2FzkTE(Q+!T\~o86O2O6=JG#8i ׷EyAZOz{}[ij>,}6"fwu=Y,>MS hڧ)wnG#hhE0Dð!,{ X !, j_bXð 5 J,֡CkGD !jGݢ4o~EOZc_81c9x fݧ"CϬ>}ݧ)w6"JN/fB8DΔ΃@fxO_n~CE!<4,Ys'("oߌص2Dh67v  ~ja+S.fmy;"2a1T]BO-.>m~E̷_(p)7y;s67"By\iX_./>-OPD<?ͯص2Dh67v  ~ja+S_k[/7sPeP?_}6ר[DN.;ڧٿ,~[ގ[};n*if-fhǿFfbƿFo-B5 ԬK ~j>ۿE3wOu JgkOY=wd"TZhǿFfbi,G#I Vbe:t0V{ ``oY`#%" bBl0]bgؗ𻏈}k[\ /\jn!vgw_hOznm%3 !"og A 3}Do&, ~ja9Y4.~(dYɯLX ?E!+,rp?1h\̯(dY'3e$_ ~BWأ}֘QƻWBOBW`W/f(~oy;YQ^? Zc~Gt1>}5w-+ޅ4 ~jm?1Gam~Eɺ in~[k+ a j֏Bջ̺}| QȺ Yʣh֏Be~}DO,M=O/,¯A\ƕ,3]~>4 B\i2#}^ڤRv5vu;AYy{i3G>mKzIjg}>"y+2]Ҋ?i(7_8GTrݧxڧEF!fLK-f8R+`$W)kh67_w.feLX (Dyỵ6{l".>{ $5XyԦ>M}m~i,-T?Ioi4}^-q.>mK%MG#Hj.[[%r}>/ImL<*O߫5<"YZ.`3%MݧxOSO6-B5 y>ۿ/E>>M}m~i,G#HHj\~eqa~fͺr"XŅ_x~M5{50#ym1fh67"ql!ݺO߯eZdw55jHji3-BҭKݧ'>(dSi?Oz{m8i[ړz4G̃@(WYZn$Ȕ>}kE^}Yfm~[j2oڧ |X-bOLX>b}>ݧk-R̗9p?]m)kaI"kB30Tveyg}Uv˹-\y}wmEL\ O-<%r- esݧڄ-^x4ypMvkze i>e# SvM"afJZx^x>#i_l! 3S"^\/܁>&lߊQEJZy e؄-BO-BaԬWݧb?0 U>tͿ}"(]Ҋ?i(7_8GTrݧxڧEF!fLK-f8R+`$W)kh67_w.feLX (Dyỵ6vISDIRQS.Z80Z  "!#$&%')(+*,.-/021345o678:9;<=>?A@BCDEGFHJIKMLNOPQRSUTWXYVl$~}5J%{؞-o%'}$AE ob߾7ہ/{ <Y7}O*yӀ-I&62oxz oRyT21}>~-o2"-lİjvVKl=S-Q5\fyn륻Zb&_"ҶRz}8[$^M1H^}i 3啃^گaz0"(6ձ-(;ô2;n\pݛ^J"S#)5l[?Q6.xo'vb'=٢e/V{2I~o&L.[6iHx/{O/k~y_xӂC VE'Cado(d52t]M'mMtNfb;\@}}OV›=[ qgO[NÔg]}pdNc6< mVqqwv_cL~KĶ)E!l֒q3?Q2Mυ.fX^)d:u(į΂(sمܽ=˸+wws+Ȱ5Ned Sy.j=lqH{C8lOmm(rGigOB-᩿ڄ62:ކZbS<@Qޙi"c[mw~SR4 Qy[-ކP:SrHma )<Xw>?[@maN=%uJZ2_@?!x"K{tJbVހ d_ڣE5N{i<4N{i0g%3E[q %EWsz^02)d$m`{+/m;:[9\/ex=5RWz)Ҷٟ9r:[-&aEހ P06v8/diD caeQKl|6][{v߳/T]3JdؚѳWgd/ X]~D/ `J]3ήk<_IJLW"$Yɳ/T]~캿;*ak0|Iftv߳ոm{vqg"P02)d$u+9D0ex2_@j\6=Bu9wT"|O g1q %D,Oz)g50p3,OF J/%ֳgd6)+qi6E)6Fyz|O PZk`W.oc,/grX<XffC9mh<^zRQyX/lQ3 aj祝2Ӕ3Ynt6 yМ1ʄ/m+`(3̌m<=[Tw֏tnD 4=gOܗ:HG&%b[cՑ4Q/TKiYQ0BAuJmAQ/V %4 y,u>h>ٜ( Ȟ`RgQ `;2*~Kig_~]Q%XSc/;1#s:7%b6Ҹ{8 %4 Y 캿fSޛJDޛ#{vʕtj>h> &ήkt%b#g_-Qj]Q%XSc/8lqH{H=Wﮗn&?[]ݴ?#QPw6̻L;[-S=+o(]:~)Dyk xu!sb:KĶ#.9VegOI][ҫDuK=]r d["Xc@Lsa*Mtv_Ȝ<@Y`N?{lB캿5yT"LgWمܽ5gb%}ާD>%jIegE`*SG3GyËmBȸk=[=%uvʕgoTDlk6%=:{ 'uv_tT"(Y67<=%2_Vʌή ֳ"zd Si"[-a? _7~){j@4-ήo*d:L)~ukxF%4 YRzra]&U"B46 YRzra]l]"m:@K{AsR+[-]].nnm=5RWBWQ,u~ٳE),OƯ(|O~\igO{g4+L_ͼͧ],f~/փ-lq.N캿9[<T֒>ay["tbb5OL~K:SBF :ay["t=/n%{ 0]5uDlkŀgEby ;[i mwL!rQklIW$~uƐ7anؙ6 "?jfbM͸7k"^J/33z ln <۞-ζ@*uv5~V0K祝W~]7Jin}8[$5 oaj8M/W oaj8=[^J祝( ln TcM gEx ,Pw,{c4~-<:娣׾W$%jv8lqH,{c4蔣\_lZ~ [q]g gů9^Y67xmF!HϮk`O|<{wG%b[#wyxkJx2t캿r#߳\/CD&"w ^ζWukJdؚcgWo|Y+Ϯ_s,7*akή˙D`Ў\2t\}v_tgL~v3uqӝ]Xnd["rye% N+kJe ~ gL^"r {vɱ6-(D Ƚ~ g-aE.бqJD.~ukJdؚcg5\䗡cg5L~KDnw2tE⟌er]drB0KD.~a g-Wfj'yvɱB%g-v[>/~ͱܨDc3#7<WM~Ϯ_s,7][N9V"r+ W=l'~&< `g+Kz}8[$Hm>^Ԡ4b~S laukרDM'|۳M^"eů캿yϮ_s F%”? Ҧo]ט)Sm S S:/~4ϨDRb,?S#z]ט42-)[$_?L):ے5!uv_Ȱ5 a6E|;^q/TKi0K2.9긡jͅKՒ6-_JdcZϮ˙ߣ02m0/p?x@) Ҧ/ %c:ni"jk]rMKכJsx0?ے%O aiRͷKuvF5A`,͇uv_D%ocMKD XOgqn(xxKi" ~iSͷ@`Yo4Du9%B~ 3gLy%2C.=X!}H0֏)_j8~S|O:[IvfP~i͘)E!qj)E! 1oi"^E'aF!a ȩ1SBV4Dz)ζI캿5LҨDaJQj7O/6 0/mڳrQ`NÔ8~S|Oa4:J_4^J(d` ? Y 74 %4 Y0=B캿9wT"p?az_Guv_#ӝ}HWV4M=M+ pfyήk6z.2)d~iz)ή_sQ0B8ܟxq캿5LQ0Bz).fX^3*d:e`sSҶRz][c gV3:l `(͍{H/WM=Ma])S4 j/m:6Jdؚ Sxjk/m:Bu}sD~ֆ_tv_cӨD~[˩?yMKuv5~V6 B2Szv1QX'ә-O时B޲>ոm[%o(d5Nc,?Dz)ήk{m )PV4}HWz)W8ܟx( ` 3r:/~1S4*akR”Vra]Wc~G%2lͅ)T%jIUО] X>*>[-;X=}Qm/azك޾7pAo|ߔAdof(aෙ^|o'^"e˗grLbou2~Ϯ_s FU"jkO~Sͷyg5Jd]2ŀgoTV/gX_qQȴD,e_V6 籭qS[GNg~ů߸ |Yr7fw8*!2]n6mbD5]rM1[-x&{8Rg׷%D[3Ӕ(Þ͔)I]ߖa6_t6IH^a6eܕ:-y%o\<@@zm;[n(uv}[^Rg׷%DM'}6 @z1ےW"_^:Am+?'rʃ泿UG*uv}[J_<{j@Rz 0J]ߖQPw ln {GS5DMQH^g] >d1b캿fdNa