IMD 1.16: 26/05/2007 17:25:53 TRANTCCP.LBR MVT/MSUPPORT.DOC TRANTCCPLBR TRANTCCPLBR !TRANTCCPLBR"#$%&'()*+,-./01TRANTCCPLBR23456789:;<=>?@ATRANTCCPLBRNBCDEFGHIJKMSUPPORTDOCLMNOPQRSTUVWXYZ[MSUPPORTDOC\]^_`abcdefghijkMSUPPORTDOClmnopqrstuvwxyz{MSUPPORTDOC|}~MSUPPORTDOCMSUPPORTDOC@MFIX INS&- 001 -08/86 [BLDRCPM SUBCBLDTCCP SUB%GENBMP COMA)TRANTCCPDOC[8gRTRANTCCPHEX TRANTCCPSYS+TRCPMCCPSYSCZCMD AQM<* mac zcmd $$ sz pz mac zcmd2 $$ sz pz load zcmd load zcmd2 genbmp zcmd.com zcmd2.com xsub ddt zcmd.bmp itrantccp.hex r100 g0 save 12 trcpmccp.sys mac zcmd $$szpz mac zcmd2 $$szpz load zcmd load zcmd2 genbmp zcmd.com zcmd2.com xsub ddt zcmd.bmp itrantccp.hex r100 g0 save 12 trantccp.sys 2 $$szpz load zcmd load zcmd2 genbmp zcmd.com zcmd2.com xsub ddt zcmd.bmp itrantccp.hex r100 g0*&COPYRIGHT (c) Y. N. Sahae 1983!9"$11 ́R!\ G!l@ G>C22I>O22J>M22K2ڋ!‹2Î@ڋ@!e‹™2d2!"!5 6# x¾!͆2!@͆2*5 1:w#"5 G:y:<2*#"@>B2>M2>P2>2ڋ*5 "3 {{_!1 .! zU:!_~*7 wɀ@ @!e‹™2d2!"!5 6# x¾!͆2!@͆2*5 1:w#"5 G:y:<2*#"@>B2>M2>P2>2ڋ*5 "3 {{_!1 .! zU:!_~*7 wɀ@ @!e‹™2d2!"!5 6# x¾!͆2!@͆2*5 1w#"5 G:y:<2*#"@>B2>M2>P2>2ڋ*5 "3 {{_!1 .! zU:!_~*7 wɀ@ @!e‹™2d2!"!5 6# x¾!͆2!@͆2*5 1w#"5 G:y:<2*#"@>B2>M2>P2>2ڋ*5 "3 {{_!1 .! zU:!_~*7 wɀ@ @!e‹™2d2!"!5 6# x¾!͆2!@͆2*5 1 TRANTOR SYSTEMS LIMITED GEN BIT MAP UTILITY V 1.1 Date: 05/20/83 COPYRIGHT (c) TRANTOR SYSTEMS LIMITED, 1983 $lR Difference <> 1 $!&~ʜ~_#‹R $R $ͬRW!yGMM/DD/YYENTER TODAYS DATE IN MM/DD/YY FORMAT: -$! 6# F< ѷ:2<>R7 OPEN ERROR FILE: $ w ͬ:x!yG~w#k<> 1 $!&~ʜ~_#‹R $R $ͬRW!yGMM/DD/YYENTER TODAYS DATE IN MM/DD/YY FOa{ _FF~#G!6"P$ "RT!ͱw# nͱ!p"P$ "R~¨#*Pʦ7ɯw_4#~*R~#*P76_4#~:=A>:#  ~  >. ͬ~ # F~#G!6"P$ "RT!ͱw# nͱ!p"P$ "R~¨#*Pʦ7ɯw_4#~*R~#*P76_4#~:=A>:#  ~  >. ͬ~ # F~#G!6"P$ "RT!ͱw# nͱ!p"P$ "R~¨#*Pʦ7ɯw_4#~*R~#*P76_4#~:=A>:#  ~  >. ͬ~ # F~#G!6"P$ "RT!ͱw# nͱ!p"P$ "R~¨#*Pʦ7ɯw_4#~*R~#*P76_4#~:=A>:#  ~  >. ͬ~ # :1000000018490D5472616E746363702E7379732096 :10001000312E32420D0A436F70797269676874201D :10002000286329205472616E746F7220537973743F :10003000656D73204C74642E2C20313938342C318A :100040003938352C313938360D0A1A310001E5D5E9 :100050002A3800EB21E1E9223800FF2E00EB22389C :1000600000217700194E23462378A13C2859788235 :0700700047030A820218EEAB :0300C7002A00020A :02007700C800BF :0300CA0011000220 :02007900CB00BA :0500CD0019EB2A0402FA :02007B00D000B3 :0500D200192B2297012B :02007D00D500AC :0900D7002A06002E00EB2A0202A9 :02007F00DE00A1 :0C00E00001FF00092E007A9467229901AC :02008100EA0093 :0400EC003D329D0103 :02008300EE008D :0400F000EB2A0402F1 :02008500F20087 :0500F400192B229B0105 :02008700F70080 :0300F9002A0402D4 :02008900FA007B :0D00FC00110700197DE6F86F444D11060252 :02008B0007016B :10010900C50603AF7C1F677D1F6F10F8C1192B222D :0201190094014F :02008D00190157 :0F011B0011000078B1282B7BE607200B2A9401F6 :02008F00280146 :04012A007E3296018A :020091002C0140 :04012E002B229401EB :0200930030013A :030132002A970108 :02009500330135 :04013500193A9601DC :0200970037012F :040139000F329601EA :020099003B0129 :06013D007E3004219D014B :02009B00410121 :04014300862A9B016C :02009D0045011B :1001470019771B0B18D1E1113400197EFE033E030A :0701570030023E012A99016C :02009F005C0102 :10015E002E0D5E235612E17EB7281E360023EB2AA3 :02016E009901F5 :0200A1006E01EE :0F017000EB1E074604047E12231310FA2A99018E :0200A3007D01DD :0B017F002E8836082E0018062A990171 :0200A5008801D0 :10018A002323233A04004FE9000000000000000086 :04019A000000000061 :0200A700FFFF59 :00010010 I Trantccp.sys 1.2B Copyright (c) Trantor Systems Ltd., 1984,1985,1986 1*8!"8."8!wN#F#x<(YxG (,037;AE\n}:=A**+"*.* .zg"=2*+"*}oDM|g}o+"x(+{ *~2+"*:2~0!*w 4~>0>*. ^#V~(6#*F~#*.6.*###:O6_4#~:=A>:#  ~  >. ͬ~ # $  @H$$A$ @I $ H A$!! @@ ! D@    A $  !$$@ @$  $HH"$HD!$$"HI BIBH@@@ÿP COM$$$ SUBLISTpTYPEtERA `SAVEREN i1>  M(21!"Yy2̈́L2#* " """y2Q͉E^>k2#*Y~( 81:A: 8 >10!"Y6ͥ~;(˷(1"~͚w#  #>¬¬~#fo: 6!~!8#-s6*No Fil> > Ú_>( !5 6>P( ʗ3~#  _2<!#~6^>_ ͂!2a{_:#(E^](;:m=2~! /!P!l6#5^d(>$!3 s6s>> !~#O6  !8=_.:,;<>ɯ[Y o$! ~+ H(5!~ (":(#0 0Wy8888 88Oyå! ~ (-H()08 80#OzW{_W{_}!O~ɯ2> :<=Q>Ä>Q>Ä!2w2:2AS (^ A8Q808 :0 : )2A8@ҥ2w:(mҥ22͙. ͙ͺͼSY> (#* 6?w? > #w!4!y( # ### x2Vh G({ - : x2 (o >>>.~# =`O>  6?#~>2¥A2 (SYVʥ>2y8 7!~ ( ( (  > x # =åTo&8_(:2AS()SY|(+!H# d< ͿE¥h*Erase!2>?Yº~8:!A(&SY G!~( p2_åÚ: ::ҥ2:(=2É ¥![!G"<!~2!~22\!!!~( (#~(#x2EE6">2Vh! 6~ʥ$ :<2>2V#~#$ :2/ 2Vh(G(V!x=8H! =*Ful6I Trantccp.sys 1.2B Copyright (c) Trantor Systems Ltd., 1984,1985,1986 1*8!"8."8!wN#F#x<(YxG (,037;AE\n}:=A**+"*.* .zg"=2*+"*}oDM|g}o+"x(+{ *~2+"*:2~0!*w 4~>0>*. ^#V~(6#*F~#*.6.*###:O6_4#~:=A>:#  ~  >. ͬ~ # $ H$ $@! I I@$@BB@"H@!@ $$B$@@  @A @ @H@ @@HD$H@$I!D$$I I$ @I$! @H AI @$@ ÒúP COMERA SAVE*REN 1>  M(>2?>2=>2>1y2h;* " """y2@m4*Y~( X1:>> >2ͽ MJ:h:A: 8 >10!"Y6͉~;((1~; #"Y"a~~w# ͺ #>~#fo͟ͺ:_ ͽ!~!8#͟No Fil> > ~_>( !5 6>P( ʉ^ͽ"~#  _2~^<^>_ f!2a{_:>>>(>} !~#6  !8=_.:,;<>;ɯ[Y;;o$ͺ!i ~+ H(5!_~ (":(#0 0Wy8888 88Oy×ͺ!_ ~ (-H()08 80#OzW{_W{_}!~ɯ2^> :<=@>h>@>h:>×ͺ͉!^2w2y:2S (i;A8Q808 :0;: 42yA8@:=Gҗ2w:(!?җ22MP. PqsSY>;(#* 6?xw?x;> #w!M4!y(_ # ### x2 W Ͳ({ ͽ : x̀ͩ(^ >>.~# =`O> ̀ 6?#ͩͱͥ^bͩo&N(:2~S()SY|(+!7^ ^S< =4ͱ—W^Erase!_>?Y¬bͩ:!^n(&SYͺ G!~( p2^^NͲ×Ì:_ :y:җ2͉:(=2mg —![!>͠"ͺ!~2^!nͽ~2n2~\!^!!~( ;( (#~( ;(#"Yx2ͽ44͟2"!~ 0>ʗ2*a+6 "a"Y!^ 7CMDRUN COM$ :<2>2 #~#$ :2/ 2 ͉W((E!x=87^ =ʟFul͟OQG( :> Ox!{͂!z"!"[ ] w#w#wd/ ҔGy1ҧ{yʫw#zZWxҒ0w$$Date: 12 August, 1986 From: Jack Brown Subject: TRANTOR relocating CCP building blocks Included with this file are the building blocks you will require to produce your own version of the CCP used by WestWind in their TRANTOR hard disk for CP/M 2.2 computers. There are 2 different CCPs included here that have already been configured... TRANTCCP.SYS is a replacement for the original that comes with the TRANTOR hard disk, and TRCPMCCP.SYS is a version configured for RCP/M operation and uses the clock information passed to it by BYE5xx. Both these versions are based on ZCMD26. FEATURES: _________ DU: Drive and user area changes. To log to User 3 type 3: To log to User 4 and drive D type D4: DIR This command has been eliminated. Use your favorite SDIR, D, XDIR in place of the built in DIR command. The TYPE command is only in TRANTCCP.SYS TYPE Will even type Wordstar Document files, and pause when the screen is full. Use the P option to disable paging. Eg: TYPE DISK.DOC P The following three commands are in both files, but only active in TRCPMCCP.SYS when the sysop WHEEL byte is toggled. BBS security is maintained otherwise. ERA Displays filenames as it erases them. SAVE See your CP/M owner's manual. REN Renames files. See your CP/M owner's manual. - When a command is entered, first the current drive and user is searched for that command, next drive A: user 0 is searched for the command. If the wheel byte has been toggled while TRCPMCCP.SYS is in use, then drive A: user 15 is also searched. - If the wheel byte has been toggled, the CP/M prompt will show as A0} rather than A0> - The CP/M prompt will show the time remaining on the system with TRCPMCCP.SYS when BYE5xx is active in normal mode, and the time on system when the wheel byte is toggled. - Submit files will not operate when TRCPMCCP.SUB is active -- Use TRANTCCP.SYS - The CMDRUN option is active in TRCPMCCP.SYS - See ZCMD26 source for information - Multiple command line buffer is active in TRANTCCP.SYS The modifications to ZCMD26 are as follows. I included some of the surrounding code so you could find the right locations. The following code sets up the equates you have to change and is near the beginning of the program code. The arrows show what to add. (don't actually put the arrows into your code!): OZFLOP EQU NO ; Set to YES if booting Ozzie-1 from ; floppy disk system tracks. Set NO ; if using MAKESPR. Read OZZIE-1.NOT TRANT EQU YES ; Set to YES if making TRANTOR relocatable <== ; CCP - MAKESPR should also be yes <== WEB EQU YES ; Force SUB for WEB use - SUBON should also <== ; be set to YES <== ; <== IF TRANT <== CPRLOC EQU 100H ; First file at 100H, second file at 200H <== ENDIF ;TRANT ; to produce bitmap for relocation <== ; IF NOT MAKESPR IF REL CPRLOC EQU 0 ; MOVCPM image ENDIF ; REL The following code puts the address for the bit-map procedure into the code. It is at the start of the program itself: IF NOT MAKESPR ORG CPRLOC ENDIF ; IF TRANT <== ORG CPRLOC <== new code here! ENDIF ; TRANT <== ENTRY: IF OZFLOP JMP BOOTJMP ; Used to properly set the Osborne CCP ; if using ZCMD from the floppy disk system ; tracks the first two bytes must ; be C3H, 5CH ENDIF ; OZFLOP The following are the modifications required when using the TRANTOR WEB, a small area network for up to 4 CP/M computers sharing a single hard disk: This will only be effective when both WEB and SUBON equates are YES. RNGSUB EQU $+1 ; Pointer for in-the-code modification MVI A,0 ; 2nd byte (immediate arg) ORA A ; Set flags on clue ; IF WEB <== CALL SEAR1 ; Force it to look for .SUB files <== ELSE <== CNZ SEAR1 ; <---- this is already in ZCMD26 ENDIF ;WEB <== ; STA RNGSUB ; Set flag (0=no $$$.sub) ENDIF ; SUBON The following just changes the last few lines of the file to give an error message if you make the CCP too large. It MUST be contained within 800H bytes. The code for the configured TRANTCCP.SYS is exactly 800H long now. IF (NOT MAKESPR) OR TRANT <== add to this line IF ($ GT CPRLOC+800H) ZCMD2ER EQU NOVALUE ; WARNING, ZCMD2 IS LARGER THAN 2K ENDIF ; ($ GT CPRLOC+800H) ENDIF ; (NOT MAKESPR) OR TRANT ; ;..... ; ; END MAKING the new CCP __________________ Rename your ZCMD26.ASM file to ZCMD.ASM. Edit your ZCMD.ASM source code with the options you require,and assemble it to check it is within 800H bytes. Make a copy of the edited ZCMD.ASM file, and call it ZCMD2.ASM. At the beginning of the option configuration section of ZCMD2.ASM you have the following code: ; IF TRAN CPRLOC EQU 100H ; First file at 100H, second file at 200H ENDIF ;TRAN ; to produce bitmap for relocation ; You want to change it to the following: ; IF TRAN CPRLOC EQU 200H ; First file at 100H, second file at 200H ENDIF ;TRAN ; to produce bitmap for relocation ; Save your file. You should now have 2 files on your disk, one called ZCMD.ASM and one called ZCMD2.ASM. The only difference between the 2 files is their name, and the single CPRLOC equate. The reason this is done is to enable GENBMP.COM to create a bit-map of the 2 files, differing where one file relocates in comparison with the other. This then is overlaid with a TRANTOR proprietary loader routine to allow the new TRANTCCP.SYS to move up to position itself right under the BDOS of whichever system it is running on. One big advantage of this system is that you never have to reserve space for the CCP.... it is loaded back from disk whenever it is needed, and positions itself as high as it can go in the available memory. With BYE5xx running, that allows you an extra 2K of Transient Program Area (TPA) to run your bulletin board software in. With large hard disk drivers in memory, every K helps! The BLDCCP.SUB file will automatically create your new CCP file. Note this requires MAC, LOAD, DDT, SUBMIT, and XSUB as well as the supplied GENBMP.COM and TRANTCCP.HEX (which are both copyright by Trantor). It works like this: mac zcmd $$ sz pz ; <<<<-- assemble the first file ORG 100 mac zcmd2 $$ sz pz ; <<<<-- assemble the second file ORG 200 load zcmd ; load zcmd2 ; genbmp zcmd.com zcmd2.com ; <<<<-- create the bit map xsub ddt zcmd.bmp ; itrantccp.hex ; <<<<-- overlay the loader routine r100 g0 ; <<<<-- exit DDT save 12 trcpmccp.sys ; <<<<-- save new TRCPMCCP.SYS file This same procedure will allow you to create any new CCP you wish, and should be easily adapted to any version of ZCPR1, ZCPR2, or ZCPR3 For more information or help, you can contact me on one of the following remote systems: FOG #1 (415) 755-2030 FOG #6 (415) 755-8315 WestWind RCP/M (415) 692-1861 Good luck! ....Jack  remote systems: FOG #1 (415) 755-2030 FOG #6 (415) 755-8315 v7ZCMD.ASMc  !"#$%&'()*+,-./0123456789:;<=>?o@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab󝒖]I||^%|LWUp)6^gx}Cϛ$d\x~{o}W?+i[h>D?ƈqÙ |@A# QxJZzg k<J Q锣@6wB  Ia *6^c#p+i1]U[hb`qW1hai_E/!4BB 1G 4pW!A45o|JZwqoIxh<# 6y]끡7h|WB A1Q N< S1 / qq_+ib'PNk`. p!`F <]IBwB{T7](Ba?/M?|WbSSN;s89"D>q?翝!42=gb`dnb`|. R >Aoa) ߕXo ya!FH{󅉂}Dp)nBDQx}2Ͽ|W-_4x b7ӿ`]@ EȼFx IB)x廒#!7F "4}wrqQ1Fx i)3Xm|W")G9E=V'}͠QQ ![h>@;d:IZEu1(ٜp |!!5o b`lNHM|/ߕ(!{g >\-PigH~(шLa2 ߾+i5GKHF(cQč$8b`6N໒ ||J)XuZ0 _NCpBWb '|W">;v(xpQh/"Cʅq]@ &b.xp'ߕxJZ,tj )v'|'X(3.~? 8(GH{ߕhx]mFH t7m'Na"V50(8"q+iQ_'= 'd֑!4Ȩ/$| {#v}WҢ{qUF]&vT)8cG`Rt70߾+i`DN8Fx |=?|WbSSN;s89"D>ᷗϿ>Ch$7#]5n|W"KtI)F6h;77h &npq=C ໒x]m5r F;$77!I%:{0Ch$8=߿+iO3 CIX -aÍI&npcdY_.īvW9_P_=&)*ʸQpD…vER_ڒ-K%-~f.뒺iu7L.iu%..GRhT*i˯A|-9@*4"ehx5Q3岤e]wyn/m/#z/JZ<#JI_~=4-՝Ͽ]bZ -~jiYJZ%/{TSQeOj~U*iN}ccQv1r Q!/KC 1JZS\! A 8,Ť!L(VI󷲝q/|F;c1^Lbu/JZW+ A`"Ǝjx1MFp)O]+i-_*+!2Q B &%$## ;މ`JZNs]@ CU>T'=zS\=v'%-# aXt[RU>8BC x+%-+?!3ï^w'/QT\i?s%<=qxxݝk:̫}={ SGüꔴ7N*$|Fp)c8¼0L=󪃉0NIKxeZ@{k0#*?]+iJD=+"ƧC=|q/|F;%nYReOڎȢcPhnY vJ޶jI=+"Ƨ)Zwo ו(ٜx+xM +%` Ѹ ,_ݲJ)VoostݯJ˺_SeOڎȢc` T ˺_JxNtD%$=@/E[!;Ɖ#A/{rb}s{U81Io1" OmU0oi]Z|YN/{z<YlIAxFLIAQIB7Ȯ˺_t;#A=<': hU0o_vRI¼̗ʩK">_.`pJھDdQVIUbY _*?CD0b`ho..pңG6zN _qXaDT҂8g*Y _*Cx !8Q$7JZw8U*IԯXmR|YN/{#5IpcĀC3u*fN$}3oJ-޶jd,UN=]6<Y~{ïO(ٜ0&yTY΂0D YIB7VIUҢׂ! p#$v cdhǨX :C5h5R.c%-e9rVI(t.pa^8B (" Db` 10oJZt\ /4?Qꢈ, .iCx JZdW7F #SddlEHS18>uwm U0o_Q,/iEӬBEdB{8 **im,Kj/iEӬBEdB{, Gsᢒo-Y5vR*iXB'11I S#YF;b`Uw `%-~_L) [hM#Bcb`D\|E4]# /.e{yyD=ͪCp)RN 8BcJZT:5cdG猻@@ȗ] Ӯ0hwU0:j)_*ϗ]GXi9Fy)IhfŢU-K%VI(t.P눔 b`&aӆ#t102]UлL0 G%-~W &ѥ/?Bh)!i9[h>(i .0/\ ]@ R9tU0 G(LK+i/?BhcB? 2LWUpiDu0.53LWJZT(Bf#N0ƽNJӒr$5W+"IaR&a% m,JvӒr$5+"Iaƥs& .EaVBIUb=0 $Ƹ IK8B{&]b`I8AxǨE?,5 pR&]@ B ?u?x aD|jb`||Il8F1P#ȗ]\EN*$ ha %-aD3E7&IcDI8sg!٠E@"CR9tU0 I0[$ZId?zji"v.al8F. %O?]w5LH`d:ep앤o@M ] 5*"BڱLh~ϗk%Q$7]HB蛈||YLWUpiDbK}k%-My,(`"BFpja 3`" +!x#8փ(p!D]HML@U& IrR"r™0I88޳HM|m6zN`a .) %-(|7)zFʂ}eGf7 "' N(L@S/v;?D|jk%My,˞&v.al<5ЯPhJ{VY3|) JZFDw" Io"#{ gb`!ٍ#t1I88޳HM|m6zN`!4v *8) FS/v;?*iQ$XB'1/!9"xFʅq*iDMy5mM' NDxvIԝJIK#QcBhN}écYtUF>` Gcg =؝ V0:"10/& `Yj>Tz`ddz}T"zLRb`4#t10498T\ib``B,_L)v'L1b`_/qcbJZ 8vg &9LDG\)v'1/:/W.UB SZbĀ>v {,&Bhc 1Sbz}D1cBh+"8 /!# %-X#$ŎŤ^Se>DD#tI&+󪤅 SN ״Q`w ]C6`#5nv앴o(GjCDR9.$l&!+ij?\k`=03dC!qKMG޳#{%-G6zN 5jMg b@ul@jo{vcdF &>vq cdK gSNIoP"Gv*i]YR~;FJZ@W?]/"g'1ǥ9,Pvq%jtIK lJZu{ ~Y&S۝!vF &>va"(tB|6pzFp)˒15F8 .E daaƎ|6p qc2>&Da?"nB0b`l~:2F ^x1^$Í~Y;C puLWUp)" 1(iq$eɘ2F &>v쯕JzY~ӧ#WcdGޅoMVI¼_/QyYE+%9O?]YRo^cd$5^|I7/15б@;aQIB7 "8y3v@ᅡ}e\]ZIzf@%Lr N" ZIUb=0 $Ƹ  8"8QMFDII0LĪ?#s^#LħV*}/{^Ȣb07/ Sf`N; vJv}WReOO&GtSהq)OjyouZ0 k% m["^JZ%-փ?A0R.10v!2BzQw!&AI$aRZcz}$`BM"' N\#_#EQw![h>`Ā UX앤o@$}3oȢ_1e>*iJZFDw# c䈶!42 +h10 p1؇ȩ;.g a"C1pu ڲ^ &S۝!vc앴1IcuC6@-L#`"b`107&Ix]mJZ%۲^/{rSۡP*i eLħ;C B'11FHӈ{8AoBC tUf0ـ,##{cuBS@ {8AoNI`FʅqbwB[6 qa^!=(Lpk`.Ж=LTҢ_A $ v8xaoKNء-ti'q*iatU"1-La"b`=nL $7c) Vⅽ)NJZ%۲˞&h]%8AoNɶl_tuEdѱVIz`:Iq?A0؅]b`͆.cz<.3hVbu0_D9.pcĀ,5P#8{BP5L3f!FC SŵVïi/{WD;8|j!Dd`\!I8Ep87 boHM$)v$= b`4?cYM9ߣѯPh$=`"ƍJ~V_tHdj3LçBD@ES*I,׾7&np;.g%710ϸ3ÍI,VY<[_.īvWjBIzfmW!r™v 1F~V*i.>z=:L 1ïiCH!4B\ƍ~٣_Ah<0o;N ~<^+iX~Z1K8B =C‹qg!8htU*ib$7)v'D|{ &`"R.TI b`䋦k?AV~Z狆/{:q$X0 .ذ~U2_4]˞E*7VIz`:Iq?A0B蛈 gh]`] 8'ػ@{`BLWUp)vcQV*>/{WDBc (ػ U\X앴J--:_4T *Okv{yy$8i9F(+yo˞>\^Y|$88vcQWͼU*iXsC]`v GضĈt||>1@ &*iQ$F|l Od""o Pq CeJZОY@0.$_#' N .9\@ &*i; pZb`102]Ux1FD>C V"U\ @H})9Ep)L4S1 8ڣ_+iXB'1tGT! a\j 8E*4" g"7ڥb`|N=\s[ֿvgPshF 10> '綬ӯ0ŵVǩnJjȢNS1B؝ChPJ~n˚/{vDhW ;)2]UJ~.۞/{vD 큿_/%?OkjSY/֟-B_|˞>n/ E]}ReOڎ-B_|׮OmGdk_/%_@dx/ BQs˞_/J~>D=}n>mUI5V%>߭*[J|kX_,*sWRe97sI=+";#pZ $Gex΄#Fp+I, v'05LDjb%oߚUqchenG"$Q+I, . ޳hJZzfѱ@B=|JZ%-cݺDS'b`D{h]H 4E}H`쌀.7!c^8) V"=Dlq (ػ@h50c6Dg1FJZAIb`t_q !4qθ b`DAIvZ]A#=xUҢ_[sZW X[t:jzjE_]+i [`">b`D{||su+~Q&? .$opFp)؅"datQGDgAp ЭuZIܯu =}j;"օ]a0]HEJ-5~ݭWJv_ꮥ˞.n.DuzN +Qw!A!{P[nCݵdQ .E͢!{@4gAI#$~$8*IhfEZcuJIUX Kq%NB6F+ v?ApT*Osv~Ӈ?Ycc] 1#Cb晝禥˞>ŧC=Bx΄'&npRryK=]^Yt >! رav(LQINkjSYt, 4Fjb%M0B]V{ӆ .&\0?vJ7 `ylz0E.=G+I,0&\k%߿Č$8cq V}W.Gj#Ť vv'0Wڟi'q](I,7V;s1pIo.at5L, 4+a >J7 D8-ى3K bFDdڽ*I,up Wx}CPY\ԏaQ?YpN XIzf'*$9!RAI+I, *8v"9!.=DxtUK_o(Ǿ+#L1rz~w%_k"EhÍՎ=Bqa׿AH}1Gp 1OV)#_tyHd1,tI0Cŕ'dډ`qJ7 M5VH"$Hy3`"^B22LTYƢ~lW0Z6#;$=B@:I8x+lJ7 `.Д7;,f~,8v$=! N;? .$x}C.UYqcbذc'"kCsJ7 s])L1rz~lW~"}>jj@jCD21VY<>EvdNw~U}EdtU"1QSR̥j;QeOWV{#U\zDO pvInY.kj+"|Ybu0.5Y] dK̗b˞|Ed/Kl6ƥ& ¸ =2]UJZ/r˞|/ }dD$1n>YD b%3&"# >^+I,ub`#nL cd>x1)kh+F4wk"D$ tU*Í֟핒|eKd>mI!.ꄑ .Uͼ%"iꕴJ-ݭVn\)Ig[Y9#g' 6R% m["[z%yKmYz%9U[ָRԖ5ECd&LWUpo-YeꕴJ-u}ꕤ@W]}^)IgȢ / tU*IhfEW߷^I$aR^IjtU=3mOdQ 0 GdK$}3oȢlUU0o]z%9]ƕ|vMd1鐢0 8^tU*Ihf]^JZ% W]+%LŒ}6Pq ΂0!U\$yKDr+IhfAD:/WJZ%D ) qa /DgAp { _]H 4E m~vglCݔH0#n #`" =ZIe2. [h>`{||8Ҟ7!c B{h1Wbqc`EZIdj_YIo{lVI¼qJnCݔ~em.Duz]HJھJZ%)=^/h? v)uUbu1wmLbIIz01K8B ||@h}"d&1t ES{Omw)i{D.@*3Ѹ ^o"B+iQ" _-Pq3cd k`=(øpT¸`W &a g0bwBh0/]޳JZdK!b'iv 3LqF 3?_bY>&QILWUpo .EbS߰runK,݇3[K,Tcu1rz p|LWUp)`xFpo`%-{Qqa". k%QVU?}0Fx (at&GC `r \WUp)^g0, 4>500BI Y@h31DD>8E=h? v)uUbu1jz`RE=D!zO|j;cDGKQ o (B!PVU?}oЯJ拦~Ӊ#E.aQ$FJ-勦JzO~ӧ#Xa $Z? xKN(RNo@*3Q3LDD % bP2_4@XyR]*ÍES{,P1t>TJRs|"ؚ!NVBIB7,ES{%VIK] ] Е}F;D΄NI|U2/䴥˞.룒@=]QIj˞.,o NkcTrl/{ӑbÍ`.n0QЬ:jG"CP.F;d!IN68z_G"0&X\-_tyȢ"@j߮eM=]>]^,!2tV*iXy 46^%`vXy`\)*i^u^bk|wE10&hJZ%-b|*ie;żE^'%-}Nx/(۩^--,?)i|WKTomR{ٿ+%v}y~\)iyM8KT omR%b?'WvU"_5\IKcCVuf?L-\ZIKcC֫Ee{f.|U?ݵ}Ӡ #(G6p`Kq}](i Xm9 ¼0R7Iȸb'ⵒVk!,\צ!"|p ]םHM$!㊝JZ% ~4[߷Q ~4ָn<$5z<Y4&nqNw`﵇vDZsr$VIji$}3o¢ k$YX,\)iJ;%-|*d^? vhJE+YX +Í~>*ItMC_ן^$}P*^E+YX C;d?kOOJھY(i|/rE_{" syahOJRs?\kOOJھY(i|/:/W'x <'Av={$5QIoڿ$훅V#,\מ}6a^iV}<*ItMC_ן^$}P*ټoE+YX4y \ <'AV=]kOOJھY(i$,\̥mQIB7 %S6E+YXL:hZs&@ms<_pTWBIt¢},,&Rrs&@msD9U"$: h|YN?10K|YxA 0&REhǍI3k`./0{NaC,U?(iC}ȗӏgHc" .q41I~Ǝxq^j[h> rZ03vqJZhG=`"ƍgf{,;qFs i'q+i .Ebvq0?"b`䯞/Lwkdډ`^BbR%-(pt™d n02D0.B 1{%-K!F! DsLaiKv"!FjXx tb/|"~c6 DtUij# 4#"@*ExU"3k`RC{sa\H/3Mpq 43„!Vb b`x_8E܄Qh102]U؍EBcZI 10 $RƢ` FΏ%~qʐ JZlq0΂Bct "ƍ x}C) >!W%-8(#aw!^Wcw po /iwۿxnJZ.e||Lpv8?]o0 ]a$'g ɫ!=68!$ 9Xuh`"`v JZ%--i/Omw Bȗ%G,010b\kZ0tUbu1w$$ 2q#_Gva ,:_40ꌠcs R=E3=n FxN .U"1+~^aOCh ! .Eb?(8 Lħ;#`‡ RDƢ`W%- (001 $jD\m`  10 P"`]@ LWUp)W ~8wu#?>TQI8fBD_I$01f02]U3؅]Q@ &*iQpg1r1&C0&F{1@ 2o 5o(Lb][zDp)m?31f02]URD%- bD ʈhMȆ`q6^_PEcc41b`ؽ]N\+i$[Wk,_ݲTVrZJھJZ% eݯUyGVo-źm.?*IzNXaZ/D) b`N{qx +Q$z9!5WJ7 C10 㣀؝GTcJ7#_G% m["XmRI% Z*I%˒bu1b;aB0&R% m["Wk޶jUKʗEcF v„)aL*U*i_D:΄OMIa, ,¸( .Eb#)aL2]UJZ%-#U\81#g&" 9`"2]UHc;Ap Cn)*iӏ؝ ك`o/qhVʶn2aCJZ"10ø(Px]O;|oJZÏ؝ F?,5&alCf#N$!3F@ ~nP&a%-;!8Gޅ/|=$d]@ R%-qBC &b7{%CHd!rr<8~Y3K9G .Eb_y @4μ*iQ,8 F*q| 2^؋$H ,DFBZIqa\`vg#{Tc, ZI 10 @62R$1b`Ƣ`qk`.Xuh`"N#dh-Cp$!3g_ʸ 8E*TI8qBC XE¸ |LsB; ^@+i1FV{Tc"&adKb`dK؍E?fa"E [h> j!ᴀ~aHGonZD1T Phq3R< (_\XN jN 36^SD 10ͪCԣ]&vȂCCEhGjTȂCdƠoPـ D`KXI /iQh#"JZ% i/c~o˞Pw-EQdGs (ػ$'ߨq} XD{D= IrO؝d~,~M=n~YϜ@s (ػ$'IJf{j)?yYU(Qw!IN!G% m["XuhP *iJZX#g$\'ػ@hڛ B<_*i .EbI81FN;aUDbݧ~ZGdaHJZ'B&J-5*yo˞~$X+Ƣ`݅8dKJf[jtEE2i-~D*TIjtId .E޸ qAh$5۩_5_4'X La dΏ-5)_4Y,q=F*mFX$}3oȢ_>VIUbk8mtU*iWEwwKj$"}dT!Esli>(iJZt2IvDgJZ% aY⸫@2qK8Ȣ1.TB#"HyaԷJRs~bk +Í˕OK"GF2Qx]-_4Ǧ惒Ȣ( ڱW ]YtOJvöpKMGOD%a[tDdQr}LN(IMGO#hL|U(ۼ'"|Lnv$}3oȢVVIE*IvDgJZ% 6?Y, ;&  [h>(MO=mCݔDpb%aSeO{"ؚBJnvM=möD[0iJnC˞a߉,pA6JnC^ReO,~7G xδOj^IB7,6?(i$[Wkm~Pr,BJnö,&aP]R,&aӆ'"`'j^Ij:@d=!%ȢLPr-5=Ȣ1^Ta6?-5=Y_MG=khևǺ~G%NIKDߟLߟ)ixD0mJZ%-z} S𩅉s](i̗-M3us_Eb`D%itPH>祒D_DDB ç*WJ~D%GHt.o. 7W;=ӓDfY!Ip^EU$-WKjjI%)_Ys]|U7ʗ"Oȴƍ#= D¸ \1QI$aҾ+>/}W,:w~vtbPuM\ԏJھDdEU0o)>/f~D 4~vtbPuMMy$}3oȢ)VI¼}W.GJ4~T3$u>),:|lIIB7,]*єQI$/D+$i-(c%^-_4\T+Lj0&RD=01f02]*iQFpZ $X&Dq|Zk%|%[Wk,:_4d1DMtUF8-Dp$=5D[4R.˜dKn]Sh'!x(+IhfE1Y*iJZt"x||@p)6:FKNxqHc" .U*iѯ-ͪg1zqaW&  {D_Dx΄@p'&aP12D0."+#`"L7#Y22V"e2q3C{8- 4Rg ]e A=V҂S&DŘ rZId,?7Lj0&RϑPYa"tb;OJ8SYlF@h$Z?$$S*IyF][OJھDs{P*I5]?Yt,P$?\iOq$yKDꕴJZ%- @*!N71"zSa6 #U\8n,^(D k%yK_*Ihfb?EUPΏ%R' 4ȆC&Chl8F%i c#|9,J"xS _O^Qvr$ʚj"KN#U\8sd'{R*iXs(Gp'\1tUbDžL;aܨLjD UI a6 #U\8n, 0apzU0o_O|(o-Y5i/%VIFW1Gp)یR$1 + R*Yݺ\8SBhGგ$ LsY@ A N` |]JZ% >vB7^qn`%iUT+I%Eɑ" 1E$O>w'" Hya7s픤n]\,f'4|6`Ġ$yKDm;zYJZ%Koj#nUz(/-'%yKrob.%Fj),68ԛcuJҪ& `v J{Fewyy$yKDroRI$aE_U$-g$-gj$4ѡYuJR'#_ÏwUIh=/Z"OHM$=oWMI}J%)vJ"b`qWbt0ڡ{RIB7,ΧU+J~VVI}ٔD=;ԛ/ l6BI+"\ByFTz(_ZI}J";#{ڱW*Ie)IZIz/ߨ.//$}3oȢ/˶S*IrK"}d^TvJRȢw‡LPH3E^F(IjQ*"5F(Iy=M~$-WKZvJ-LWWDQlF\2^ G%)UگJZ%-J)یq cdO?]wVɲq9_4ܓEm`Q! JRw$Xj{ ! 3QIZϴ8_YУ@*q$-ݑD]xalqDe["mFLWUp)^IZt$c6NW{ "|tUHc%)_Δ_Y¸#d dC!*Im.Dیi1GbZIZ5DqQ|U7*n]JZ%-^g#یqW'lq"BhG`] U\Uniz[u,J,EJ--:_4D1f02]U!I _ @6] U\$˙EӵK"9dKy|U4t$F0&*Iqj\ǒȢc6N.dJھDdO|(iJZt, (F5&lF*qhFa|ȆC&CJZ8A*TId}85/DdѱF'ChGl>dVIE6F .Eb+ia"#Bb~tU"`$4>VIZiq#R' 4ȆC&+IȢW%(VIi.$XRP1 +dKJ{ٿQ[Ȣ^{RP12D0."땒4=Ԝn/KXBz@*TIZ#5D+10كV|5zj=YlpB{*~tʨtj aS3K"\WUp)t10 +\5LWUpW%iUTY\i%| XzqPa 8-&MזD] mhRvR%| @񯞣I %i ѥ0`D߼j&x$#,X`0ë){lJbuOȢ3s1(I=MȢ3}$-DDGF6^8V^?U*i:Oh 9qȗ%K .`R.˜޼Vɲ[zVwsOd1 l65AIUҢuŸ s ./K1Q ]8\1Hya%e,z-,ڏ‡LGءB*q$MMM,X0> dC~`$˙ pEdQ!J~Mdk'7F pQ U\ Si+iJZ%$ .+68#Je*o)rY|8V*W~O{"Xj{øW1kSFSS,4=t<_Y,Ǝ/s]@tU"1JetK= dC!앤|9~Ddљj0^k#2,?(Iy=M~Md dK +IsHG"pQ WKj"N7Vɶ,?R^O-˹_Y,qW_@W_~QId[&jY,3O[%齤|կk%[Zϔ,f! JR^OUGdqmFl>d=nX>"#Bb~JZ%UگoitPHwG:*I%z_buOVzЬ:%iZQIZ(IՒJRٮϿ(iJNj;ҲLdfȆC&ChZINw~O{"Xj{øW1kSFSS,>_Y|p)v'T&FcN$ʚj"߈ӆIIZ>Yܱ@62^IUb5( Lq_=_(Ch$& b2V*9u~}K}wE^/wGj;QIZϔ$گV)jI3 dC!앤;Ҳ$4QW5jQ@hZIZ>+IriKd=pa܅ToJZ%paqe}זDDo8"0F(Gj_Y\ '؝(  XIʗ3-tGd 0&7)Co7 N*i$[Z5iMd1؄ .`"R.˜%|e}זOD˻f;ݡ"&\wq&YIB7,wvZ+i$[Wk,V][>Y,/"@El JھDdѯX5iUH".0<_(G%ym^OU!8̫vQ' 6ף0jI";|a`$˙׫"\Iz[˒Ȣ(ȗVe}זO\-HdQr3Tk%/JZ%%IDg(F Vɲ-M35m~hz"mHbR%e[7)??Hd I1x=^ fJZ%-$84quȯJUw;AIiCꔤjI%iUT+IeV^?U*i D፻R.`! 1b; mBcwg1zEHS1Q/pcĀVe9z(/-E7Hc%r׷>NDdq!4](Iy=M,bw$=YRxwi9F%lJ_JZ%-8(q]j%$7F XtD?bBhN:NWJZ%?buOyAdq? N#R' 4؝+IȢu)t(q_,:፻`_؝3..;ҲLdхF$L,!>@NIi|կk"7N `$-WKZv,XHETYtw2.N;aY(I%-˹R^?U*iqhVehGaG%VIXCF &>8\WJZ%uS~/G%齤CޗJ_JZ%-:,j4Vɦ6Ǚn,~ '쌈JR4TY,1qwVꦡZIj%nq9ߗMId!g'zpcc$ʚD`ԭk7۩#X`7V;JRٮϿ(iJZڽȆC&8\Wf5 JkogHdzXt%)_#Ťoؿf!2+%̕|9G";ACoؿf!2޾*Ie+Iu?ӯG"VIz/ߨ<<Y;~n)k$-gݲ\,d qWF(Iy=M~$M3,8LWUp)~nPzhYDEd=a $YgxwYH.Dy"IOS JbIeۭ5EQ//K%7%VImFLWUp)vQ'U<$-g\,d l6BIB7,m;)i$[|lII>)UYSMdض$-g\,dk_P7*,z}F0nd1i_P3\,d&ψp&x]mo-Y|>U<|&WjV3HdQrH .Eb+ILv󛒔Df)iJZtB{kv)tLWUp)XI$M35Y,qB#`LN(I= dC! %iHdQ `] U\8VznHd쑄( CtU"1L%E'gKk%lJ_JZ%-#! (0Fȴ:3<;15" BI _+ipa 4-68!4RNLe3LYƈgQ$BIZId״▦~FIZ5DI91앤MIʗ3]wOD ')J{[[|9o,~sS^I*ߔ|9ӯG"KL{Mʉ`$oJR7)'2T)Ir+"۫ߤJR$˙WDWߤJR$˙ŕMʉ`$oJRWDWMʉ`$oJRWDWMʉ`U0oi!X0 .Io8$oJR)_4]$uU"& Wͼ%"~ZFI$ZI[[n鱬&X5$\(IeV^?U*iQ/e 6F'ChG. (B@ ^FwWJZ%oijچu~,,8@62^IUҢ{0D፻F'8؝д! oإ0 إЅQx.=v)'2S?8gtxU;Lu[";ȆC&+I⍽$oJZ% i/"ŘI҈$ӯJR)_4]$uU"& $oJھDdO|(i&vZYtf)'2ToJ?RCdQ/e @6$%VI:MQk'p~s~WUnxKuФ$-V4k%s%iK:*IeV^?U*i~>d)g XأB*qWxw1bKHFq_=_\+iQ' <_(GT#gk%~qh[i.$Xnv\M2q(]ᔤqy.b) 4إ~`B{dڽF;%iq?Ddl>d}D>jJZ%-#Ea> )g X+i{ ";ȆC&أTIjG:YBq$˙pEdmB_~螈,#Ea>*I{F~YztqJ{I~qIdq8!"8cu1*iL~q"8{@E]xcD6H…^ѱ/.JZ%-^g#RLڱW*4=tpB{.JbuO&X ^B2ԼoOD@oVIEbX+iXS}Ή,X dXI%$#+IeV^?U*iяՎ={(c#nBȴ_0)i,o},W%>2{(c%/JZ%GC&0ǐrfՎ= +dKxg1z#ddE⌐$|a`QvP NJ~&oK"ej$!cm~JZ%~qyKL6?l{"6N@hȴ{avJ8Ss$h7!jL/!YIZt8?=Y~ LW*y[Z>/,X `$˙pEdh_~"L|9S_%hcnv!2X棒^ѱ/$u.,r^ q2~h˒Ȣd1zR1L^{%)_tIdq/_2c_|PL'__|9Ȣ^J{mY*i<Ň[G:Y,qBGl>d앤sMdј #`+%iYܱ@Ȳ 8KHFV)'"c6wp.$S$S$S$L#"Q 7p.a%i\+I=Ȣ1"WSp.$S$S$S$S$-VԞk"N]7o0+Iu?Hdqo*kj,!>8 b.*I=5Ȣ b$!U{ϭT3]n/DGD@`%iU֔Y,B|qp|D(I=Ȣ$`V~Dd )iJZ,FPx]>Vc_Y,F8KHFq%i<YLU=v'0AI*۵%VI6N@hs&?'afБ"La8ȕJ6s\4=t<bT7 DKmx` O`'IIii#R' 4RsI0Cj< R{ ";H9)v'JRٮϿ(iJZg(Gpf )Ro^HqJZ%iu7XTYԿD=R.˜&>(Iݺm~hz"R.˜&> 1JZ%bٔ~O{"Xj{øW1kSFSS,>_Y|p)v'T&F?D6WVeM5o{v7/$uII}ٔDqF ޼4%Du pQ ͼVnZ=RTY?Q7쑚7V;!G%)YL Ro^XI],]I='"6NG={f:eT:5ɂ0)I%bw 1F;F3XR׮]Id1 7#{%/JZ% 7pԛFp)}rD 慕J6noRId//{wODKm`B{*~tʨtj aS3K" F/`{v7/J*Iy=M4b!g'zJZ%}Jj=Y,q= aܫ5)ҩ)LNIZT/,7qF =X+I%uzߕDqp|1W^?U*iQQ p30'؝#D8^^a v'0gJZN{6z(BRxw?^+i$[|lۉI8}Uqʏqn`%iUTY_#"LXR[bu1"D+IhfcNJ_JZ%-ڏ‡L@v( .Eb#$d #`懦?о JZlLsjpDa #aP]Z6?^+68+ix\m|{dF ,k`G:?JZlq"BhdC!n v¸\߳(p9)0^D)ih'lq"*i~Z)~`Fa|"0 JZoKzEC 8QAIK]^DB?qBc N!4v'\+%]^6ےȢшYpJri}& H…Dݴ{"I_8665AIZ>Yܱ@ %lJ_JZ%Ǚm~hz"6N@hlC+iDzȢͥԭkZeSYt, h 7/ 7V;)aLX\Yt,Pv'镤n]SV=EN#Ӊv(p$MMMw% d^I5rߕD 6cJR^O}Ytf{%=@{K $Ʊ5mC\~EdѱFx . ڃ] ] 1L.aMI%|.?Y41L։VIEء7T\ c/1mj3S,M6ND ! 0q|qF'"6?4VIZ#5D]xalq=Fa|ȆC&+Iy=M5 PhS`( +IrbvHX]W%̩IIʗ3]-~Dd1;$,{.^uT+i|9E>pB{.XIz/s$˙wODCj.*IeS%]^O-#5DK@6$4Q״ӂ"8{@=RNLe38\$uU--WKj,JB{Fx( +Ir+"!"TFG@*IeF]^ hcN#ӉvJR)_MȢcL'ڡУKJ--K%)>+"N;a٭!4Iopu{JھDd,f.JZ%-,8#Q oS`\ N m懦?ihD(|{~|a`L;0> dC!쯕JԏYܱ@a|ȆC&+Ir"Fhv #7AhڱW˜}Dd1H8F!8\31 0BIUҢcڱo~T*I~II$aRS/G%it _)I}weȢ /ԛ?4555~$c*|4X!ዐ 慕a60Fb`dJbuOsMdхF>jz0W+%iZҲLdQr3Ro^8rJRXҁȢc)`/BԛV%,JB{.Sͼ%"_ԏJZ% My|9Ӣ~lW{"F w_$}3oȢ_єQI$9e*,f"5nv앤n]Ӻ],ȢcFOHyaڱW{Zk"l:%i!X  !x%ijGj,:fFDd:?$˙n}Ȣюa 81{`LD@~T*iX`j^Idonit$ c!4镤xGD!4 @j.Pz/.k";pcc$=;"h!4ʸ @픴J-rQ?*IL+/Pͼ%"}W.G%yKj}W.G%)_δ]'l`SUIB7,\ԏJZ%iZґ68Bc^IzsjrU*i$[wm,$7#{dCp S`a"BNn]Ӻ],]IdхÍՎo-Y컶\JZ%}"6N@hdC! NS*ih? 2$B(1]S׋ziW4-68!4Ȇ_`:8NhDJZ%pKeM5EK%[ek"?U脒pb>B|q(Lpb%)D[$&aPVIEQ &aӆQx]ac4RI$-g:@d !4! +ISS?RCdqI_Ycc]#GaCCTVeM5EgQ$BødA0;땒Tk%/JZ%]~`6Np ;iQh*|.p$8Zl1qB0 +iB( ')68)d7.qƳIRd+%-^YhhM6ND 2..rb*#_+iR^OuM;-,@ʉ`v`ϩ^QOJ?ґb? Na镤|9+"9⇦7&I~UODv¸a 8-L+"e2+m~Pz˿YtYp=2=:?UQIz/~AId{Zk"Nh(L.TlơvJ?RCd? dC0R$Ʊ/gzEd=9 ÍI E#ӣQPJvyo?R޿QȢsN GG'0:a N&rU~[iiȆ#G=l0:aJRFDo5$\ )rb*#أУKb) 4Ȇa2]UHc%齤.JZ%-&IPq mBcwq&dQhv'QIdO>_bk7F qT*u-#,8$abk7F ؝8ԯ/.]+iQ*i]b'Ǒ0ڡ @=bcWDx= e+v"*i!FG' jGh* F6zN`NӵV.rK}w#E^IIg:,~MdqP澤2;$-WK:YܱqRv~EIU"_4Ä2]UaYp;8aB# dKa s4);r,F={" ,Pqp|MN U\U2_4][8/a"6N@hdK!.a%iq?S~Etdѱ@*`$-VTs"|nv dK*k,N;>C v %||ZIdniz9oö'XjFsLWUp)\XIZt8.;j@6 .? T*/45#5D63E0. K?)IbI %(_t 5 AIGj,8@62^IG:*I{F@d )ISS?RCdGlv +Ir+\)IeFTk"uUDs4);U*/??ґȢ{0 2]Ua0 RE%-#,AHS1*IsHG%Kʉ,u(LQIK\3&npN\"ݧI8*iW붻UҒE.}R.10=)Fj& '%KDݧI8A /B*"r&v?*iI " V)q cB#5qKN)i pa_UDL~TҒE.ynZ,Wq) Fa Gψqbb`% ~1)GL'gvQIKb`I)q|{Sț`QD.TJ-5s,.Nlz~ZYFhv S׋zi )IL6?l{"Ex`lnL⇐$z#L׋zi$-VTDw,P!C&CE{l|9,q2>#$ nL*Imi$4Q=ŤmFl^IZt8|y$Xz(Gjv ΄NIz/ߨ˦'X&iI8#jC$-g:,:(N.EYܱ@ %[}ݚȢcx+E.LȢcL'c g;RCdхFr{?*Iy=MԵu%8l@=3SNQf.$4Ѳ-'4 0xaN dCp*IeM5EgQ$BIZY]+iQ*ih'DN8F;$Zo,;OgԿEYBڣkW*n)uwDw,\ QaI8*I5s7%iZRCdq?!ӣ7?#ӣT{-Ex0BIZ%iYtaT3]Hdfk^N? o8b*IeF\IIiD= 1Vf.tKy=M,~U0oܴJRs+&d@۶[" +Ípu~M$5E +ÍmD v#W]w?_,;MXIB7,U*oiq?|t$X (; .PBJbuO@dQFEd$4Q3uIdqL 6"Bh/,X WDKPz(_bȆ&/@d )IeFr?)IeV^?U*iQ=" gxwYH9)i 0 =7Nk%-փɅF "W]@ DgAp$| 3BI Y@h<0 DS\0 #0(BaVb=0 $Ƹ ,yah*ćaI ޠ=7ϯJZq4SN# Ib6^_P*iS\aw|%.K\ ?_T!>7O0OVI Խj%pK\W%.\xϗGyRhUO%.K\*ϗGop S7OJZi1[\.qK<~O37cŠU]wy}%Ducx JRYDdk^Վ=. BI*\I*\IvyT{5Ū(" '4ևv )I%ExhFCaF›(XIif.ȢMDHc%mZ:~a< E."BQp&  .Ue}8qVmFv)J?RCd`7{lqVɶn1?rh{'4u~,,:h{I0 @*TIB7,ڲG7hz+%p~"hL$ᄐ$.PD\.K"7N 53 9EaJRFDN{Si&ᨤU0o-կ,8F(IԖ=Ś {SP$Bɶ_,4#t" J~|Id؝DIPLml;"97 z#v_?YtfF0&i$yKDmY+i&ZsΕ@W_Ah>D:_}ϗG%)U?Dw,y|9է+"O*IeFDN{Si$yKDmY~U-4=Ԝ,NX0 03SN&jک]JRٮȢdv=Wͼ%"W%VI3a~+i .[+i]&vXz(7p$ FR~1+i-⭒[mgx 0~ppaŏJZ%-պnE."n Mr #pZ@g7F HLJZ% 'L.8m.ܭoiq?S}nD;h7NG %齤e{~EIUҢLn_7JZ亪Koevt0bУ@pf ) 0vHdV**iiimgx ֟-ƒ68$#l…q(pUu*ii=0$\`yl;\b`$,{ & Eb`l…qJZ"d&10b`W3aCQIKQ$˻f;`_8m&BhlcwBE%aylo>Lq06#v'\1?Zd)nD˻f;ݝ!FDw~a'"tJZ" ,oX5b.B6¸ %-wvZ7Wg,t1z6¸ %O˚j"tQ`Q$BIUҢuŸ #_HL(F ~HL?*i\ZԭkZȢc" JZ% >Ok"s*Iy=M8_YgN$}3oV*Iy=Mu?,ڏ‡L`;Om_/%N)Ie*,Z﵇) 9 Dus_Dw,HWb`JRiy,0!"H…^Ӳ}"x L6S%i!Xo lqVetK]6?cIdѱF'أ? dK&Z-~KdڰC3) FmYJ"z)k$4Q^N["oJ~OsvOdѱ@b#ӣJRiYZIg:/<Yt, LFG#v.;dztBIUbCHtHDgJZ%ן[Z>Dw, LGG'|9ϗG%iiAIZ#,J)%:{PH%)ʶnJr\-$?-ۿYkUIZϔ/,:ȆC&#ӣJ8>["6B0> dC!앴JZ%-8$ZoPh7Nwl>d=nJ?-?buOyAdq? dCJRb(Pŝ/gzDK &aTEQ/m(Iu?ߕek%VI\;axq](i\Z/)']b' #ӣJ?ґb) 4Ȇ&:m+"|;텒TEQ/` D$l?(i\Z&/&5{*IYE+I%e*$}3obZz%/JZ%ghw U"U\z t}vt0b C L;NDb`5IXIUURW߷{p~YIK #n83nv lGEAzY87p$lW7V;6a6WRW߷{3}3FT%-NQ{!b'7p{%-.9G Cp؄ J~n[%-b?E" a6 #U\Dp#&4B L%Dr:c7 B#՘IҨ%Uz`tmNwH0#HXL6dApD@LhLN(i~`(""gh/VI¼oW=E^.]}-}I8}Uzqʏ"Ph9$XIB7,>w}Uz/mId~>dnvQx]!U\8V{5q&\02=:$-g:/;ґȢ /M`dztBIiqvk"5GB{G &a%iq?S~~ۑ*<0 DwYuJr# l#ӣJ{F]}Ȣ^JcYSMdѱL@a8In]6?䥒Dus_D(UB="gB{0)IsH R@hBU씤|9St$oYW B?;#jBq$5uCG"Fa q~9>O~$8U[ꚶqK"68BcRNIgjeMd (EzYUۧ[Z>,7F ᅿ*I8@J{F]}~PD@oLTIZ#,h{]^XIg:>LdgN#69>Ub? xδO;ґȢ / E&ju׮,:h5BzF0~iaG%iz9oCY|F0Y FV*[gjDy##NQ&ʧU*Is_RMdzW%ߨ?)iD˲Z"7NiM JZ%-/ԴfQYt,,j˟/\ Q/mo-Yt}ꕴϿ(iJZ9 &am~@=]g1H9a0>#a)٠uV*IǪD,#Fp)<;˄.*>n}Ky=Mu?,ڏ‡L0 Å\D_8oSڲ\DW_`"ذ*Iy=MԵu%~@=3SNQqMOd $m~P7"X=pZУK;RCdхF'Chl󃒔Dr׹! W$M3,8QB( 'DrY,qF(I+"7N#GaSz(_ZIi|= x"+IՒ";Qd;%)_tW|v8qT7jD%G@`﵇)ഒwGj,Qd;%)vj-E FaV%5Dw,BvJRٮ$}3oȢUUW%VI3a~U"U\z mvt0b ]0pb?(@aVb}oT=mU')ذ/P.F;%yKeۯz".N*Y-a,> ĈW%)>+"|N$}3osJZ%)uۭ, QM2Fp)<;%ijjZeSYt9Lp%i>YtᅡكVɲ/oizx懦' 0\XIgj,qoDO$8*IS3JR^O}YKpCh8( LNהS$oT,Z﵇)c%VI%B ]2aS*Y-uMPΏ%E^m`I.T$4Q}[Yvھ^OKNIz/7*ODWJret""@ +I=5E^F(IL],,r]mgpHya%i hc"*IZIz/ߨlJRXҁ"8{@=Ro^J{ٿQR*Y[Ziq>(IeMԭk懦'X "@ +ILyȢd*FaV3秿,ͪg*6_+Iy=MtWU$VɲpKy=M,~Kd +lE1 V*Yn},Wo-YmꕴJ}Œ|YEQ/m%VI3a~}E*x/JZlG -YH‡ ?q(La8EHS1*i Ͽ1Q !5Rj_[%-/K5DYHMg׺) aU0o}Xz"ڀ]%~U}X-}~/DELb髒DS~E>pB{ v'JھDd}X*i&:~Adq)Bz8)I%4-Y,WB(Ihf~\J_JZ%-:΄QI\WUp-pRb;LnB@ >T0b`5n(w JZ.Tc(PـJ{F ;NqÙ IrR 0FNqcĀMb>/|"JZ,8!I +-5dLjxxVVIKw+u|XH?+i$[[z"; vapUɻ-a9A2q$4Ed=7sIo-Y|[)iqy,&"zY+I%4-Y,WB(Ihfj+iQ*i8F[׳[ _-P:Pb;LnHtH!Fpf )IR\ (F(iվxLWUp)JZuuZ0 Gxq"D:IM뫒I.TX#gg =.Esb*?)iLD+i>\c1&bBhD>Ph10 0B1(i()qBC Vy=Mru1FN!4" }1)v'%-!|pѰa~3ևv DGb`lRz`Ib?ELWa$Gv"9a`F %'%-QdB#F܄a ,:_40 .K8*i1f02]UA *FbXuh`">ݵV|i=ENtU~ULW"*."U\q^Ah#AIz/7W'"v ჋`W*ih'lqB#r™65AI$afOdy`NP$F*Iy=M8_Yg(`w$yKDVIմ,&PhL'ڡH…*k,g1 ,JwU0^8V*iuUD43F/`JZ%ijjZ+,X r™cd$˙.Dg ;#Ԗ$(`UuMw%E=;1WzVwsOd1 1mjB) hINJZ%9 D_ *8vBI$MMMvlJ";p&8E +Ib.pR.˜p+Iť%Duc(G/`ԭkeSYt,޳Hya%jqyK%uzYt,޳#ߦ&>(iQ*iXzqtU*iW[gj]Y,qB0 C6$MMH  Gl>d=t$ qڰ/gb;. k$oԖTǙ|XtwdLBHc"P!N~qBvJ8"?`wK%izx^/k"#g06!EHS1*I}w#E^hU0o)_4'uUELb %$$-gϗbF/$ao-Y䋦JZ%)Ӫn,&RT\i 03SNjIG";hcT*ih'lq?r6 t10RN‡B;!z 2D0b`GFaCHS1Bc~UI a9_+iiZ[%;N m^7%Œ}}^NNMa vJR^Ouyݷ%Eg2]UHcG)IL],,h{ԛFpf aSHG%i X 7dA픤n]6?44=t/n]6?4 %鱬VuMJ8Ss^oE7'0&$M3D[+lC+IL@dѱAEm~Pf.J&?>QeO?bvbLXs@6$M3^Id^O{ "l 4إ>I.T$ʚj"֥^Q^OVI¼~Z狆b1&lF*4"$/gM.,r]U >*I4-?(Ihfb?EULW"h] ]@v_z^R^OIIUb!E*q nJ4-?~Ȣcl>d=2=:$M35a,8 LFG#vJZ%z"כ2]UHca*Iݺ~FIZ5Dv S쵒^Q^OJZ% i/"ŘI҈$ӯJR)_4]$hcRDJ{Fy=M?)Ihfb?EU澤2;l>d=2=:$#,8P%齤J--:_4D1f02]U!I _iZ˚j"Nh`w߳JR!]RYF(Ihfb?EU*iQ)>h lR*Ӵ-ab?ECda6 #U\DpUISC:?D]xalq=F0ndl8F.$}3obQ*I=E^|{dztBI5VIiD= 1&jm,:h5ϗJZ%GFaYH lqy= G,}Jm^7%_,! FHS1ƽ&122*^+Iy=M^DyH\4섒DMm5E͢и! anBD6wDʹ{"I_l65AIz_,)_k"^ _.E0nddKϿ(iJZt -w%-r]UkJZlG -)La8EaFu 103SNDi9F%-WVIKw 3FC 103SNQLa8&\U50aJZ% 'cvapUɻv}K]Y|hUIi)?"8{`w$yKDڵVIicDw,"aDIZ#,i9F%)ے 0\XIZt$(9 !M=Ǩ$oԖ$XQ`]vbcT*i؆$/Ŵ%yK)=E*~t(Bf#N/$aW%鱬&5*)P$F`"$}3o"_4Wͼ%"vꕴJZ%-\iBC8qUb!Eŕ'1@ $AG D g08 .Eb_+ir0n332D0."qi9FDh?6NDCp)}j{vcdN60BI$  =##a)Pq Ř$JZ%Ӫnn ES{"JP$F*IݺNE^E.$}3o"_4W*IqjhZMݔD $:i9F%VI F'Phkȗ]ҩ)LXM2]UJZD>`"LIb'81Ga+i\L-aRS/v;?\ 慱\Io8yKrob.%Fj),Bl<#G.UYSMda"nDIg:$oK% m["X}3JZ%iq?S}n^ɢc" ذ#n8C=)iOQI5uu&Xs(pp"PzVwsOd1iѥ!h cd%).D(GaV*r8G"6N@hlPh"d􌍎LbIIz/7ZL,zt)+RR)IhfES/v;?*i$[Wk4l󣒋.-M3z}$Xj&AIB7,~YQIb/oi cԛVVeM5oR7R8-PѥJZ% ES{"\WUp)P$F~ȢCzB=*N,Jv~Dd (qbLJ0YF;%iq?S}$" JҪ&Je*,^g#B{VI¼rZY\rB {dK;QIB7,jOJZ%鱬&h4NLDSVuMy;"~^N'%i:N &?>YܱF'ChGl@*TIjG:Y,F6LN(I+\YtB{F!5q2VPhR' 4q1BDa|Ȇ85?cIdGl&0> dC2]UJ8oEY"2]UJ8Ss懦'8ɸ FR$M3O,V.9v'8ϩ45sU0o\֫~D(]H .UKZLʵo-YzOJ-5jOJcYSMdQRIz/i1' ?A ?:% m["WkzOJpK"\g3„R%*/-yKD)VI¼~Fh}$Q[b탋@C ^{0 iB.Uͼ%"~Fh}U*i1iB{dKaR9ڟ N!4v''ԛqoJR)ߗsYRo^qÙ) _T?Ytf0&7/ ghS j%ijjeSYܱ@6zN 慕/&X IIbn[״n˦$8L 5E@ pZ g'LȢ2}\f.Qԭk>unMd(P$& i1(IsHG"6N@h=X+I= =X+IsHG"6BGvŸ`6A JrHdхF'+Iu?߷G"EУ@(B@ ~xVIŤC ^{%˲[ie9\IjtUr/JR^O5n,JB{F6zN`$/Tݺ\YEϪTI{VIz`:Iqz1nL` 8 ^W8|jR&npJZ% ΧU+?5^OG%󢽥L$4ѡYuDw,p^E!M=Ǩ$-VTDw,p<#"!o~THG".0BzQIg:;,:}`$: h$4QLdk^ Qh13FIZt$cc.dJ?QIZ>/,X`8#$Q8TIg:[,,:}`$: h$4QLdk^ Qh13FIg:׋NIz_,iYERlqFYޡ~EIUy;ҲLdх!o +Ie]*Ie]*Ie]*Ie]*Iu?Hdq]7㕤buϳX\YtB{J?ґb? D=#YF;%iZҲ$L# L!o +Iu3E {Qw<+I=-5E'g$ZI{VIzRsR]]^^)YbqḰ./ WK% m["8:VP _U~EIUb=0 $Ƹ x= 7&II ܿaDž 10ϸ3JZSk…x5 ڟa v'0A{T0$ KͫY a*~5ZI$aiաЯtu>_z^)?_&:4{vTk)UYS$EDdy`N; NIZ>YWCBIZ)?Dq_=_(I=Ţ~\ϋơ~|$uDq=/zZuJ{Iy~P*--WKZv,X`Ph9]b*#80+i\ϋ-M3iYtBpDMLdk^6 ByVǙJR^O-˹"Xz &x$M3i=)I%-˹"]șv)63(=)iQ*i\OnqḰJn9%a, (zZuUzZuOpuT^?U*i_JZ4m3nL @pugv{!όxqF'"DgAp3gQw,Jq){%ϩi󟟈, #.qJRtuyEdYIZiq,j" F(IՒ%iZAI*۵o-Y~VAZ|ZR^?U*i_JZ4\11` dK_# JZ% ~G"}dDl*[HDy 8ŸAJZ% >vRqZ}]I[$"=P,$ 9vN$}3om'%b;2..pB{$! lJھDd1e>*iJZt"dVI¼_w:YNw!A!{P3E'B9(iu+j'"@"dJھDd1n]R*iXB'17&I12{=*1\0Fl8xb`D{.x; JZ% ~Wk,_ݲJ-ȗG%E-~u_Os]sw[h>`0][b}{|o-YȗG% m["_vGJ˺_+iϿ(iJR7J-yKD)VI¼~Fh}$Q[b!5gQ$BIZԜ./J6m--gWWOJZ%6-}IY<]^B{<]*I}NMȢ&I;%nj,z}0=(I=5EU0.e$-VTs";xӥ/gz"xc*I}NM'"OsKd=H…*k,J,*I=Ȣ(gN7j_YLR.{:"xF|0 JZ%6OX\YtB{ ********************************************************************** ********************************************************************** ********************************************************************** ***================================================================*** ***|++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++|*** ***|+============================================================+|*** ***|+|**********************************************************|+|*** ***|+|**********************************************************|+|*** ***|+|**********************************************************|+|*** ***|+|*** ***|+|*** ***|+|*** ####################### ***|+|*** ***|+|*** # M - S U P P O R T # ***|+|*** ***|+|*** # - v2.00 - # ***|+|*** ***|+|*** ####################### ***|+|***  ***|+|*** ***|+|*** ***|+|**********************************************************|+|*** ***|+|**********************************************************|+|*** ***|+|**********************************************************|+|*** ***|+============================================================+|*** ***|++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++|*** ***================================================================*** ********************************************************************** ********************************************************************** ********************************************************************** ********************************************************************** ********************************************************************** ********************************************************************** ***================================================================*** ***|++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++|*** ***|+============================================================+|*** ***|+|**********************************************************|+|*** ***|+|**********************************************************|+|*** ***|+|**********************************************************|+|*** ***|+|*** ***|+|*** ***|+|*** ################### ***|+|*** ***|+|*** # by Kevin Murphy # ***|+|*** ***|+|*** # - MURPHY's - # ***|+|*** ***|+|*** # Los Altos, CA. # ***|+|*** ***|+|*** # (415) 949-1072 # ***|+|*** ***|+|*** ################### ***|+|*** ***|+|*** ***|+|*** ***|+|**********************************************************|+|*** ***|+|**********************************************************|+|*** ***|+|**********************************************************|+|*** ***|+============================================================+|*** ***|++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++|*** ***================================================================*** ********************************************************************** ********************************************************************** ********************************************************************** * M - S U P P O R T * Release Version 2.00 Installation, Operation, and Support Manual MEXIT / MINIT / MFIX / MUT / MSTAL / MSET Copyright (c) 1986, by Kevin Murphy All rights reserved. This manual and the M-SUPPORT series of programs are released to the public domain and may be freely copied as long as no profit is gained. All files may also be freely distributed with the METAL and Z-MSG message systems. No other reproduction or distribution, full or partial is allowed without the authors express written consent. The programs and documents may be altered for personal use, but may not be released to the public. Suggestion for future updates may be forwarded to MURPHY's (415) 949-1072 Los Altos, CA. 24 hours/7 days 300/1200/2400 bps FORWARD An enormous effort, representing many hours, have gone into the the M-SUPPORT series of software. Not only by the author, but also by a number of people who's efforts have not been forgotten, and without whom this project would not have advanced to this stage. Andy Bajka, Norm Gregory, Al Mehr, Bond Shands, Gayle Rhoades, Jack Brown, Troy Soult, and Wayne Masters, my thanks to all them. A special thanks to Tim Gary, not only for creating METAL/Z-MSG, but also for all the information and support he provided as this project progressed. Also thanks to April, and Brandee, my wife and daughter, who allowed me the endless hours. *** DISCLAIMER *** Although all of software, documentation, and information contained in the M-SUPPORT series has been thoroughly checked and tested, and is believed to be correct, accurate, and complete. The Author assumes no responsibility for the use of these programs, or fitness there of. There are no guarantees or warranties of any kind, express or implied. Trademarks: CP/M , Digital Research METAL message system and MECONFIG, Delphi Data systems Z-MSG and ZMCONFIG, Echelon Inc. Copyrights: METAL message system; Tim Gary Z-MSG message system; Tim gary BYE 5; Wayne Masters and Irv Hoff KMD; Wayne Masters and Irv Hoff ------------------------ Table of Contents ----------------------- *M-SUPPORT MANUAL* 1. INTRODUCTION ............................................... 1-1 1.1. Overview of the M-SUPPORT files ....................... 1-1 1.2. Computer System requirements .......................... 1-1 1.3. Distribution files .................................... 1-1 2. INSTALLATION ............................................... 2-1 2.1. Files and Disk space .................................. 2-1 2.2. BYE 5 Setup ........................................... 2-1 2.2.1. Clock requirements ............................. 2-1 2.2.2. LCDATA and READLC equates ...................... 2-1 2.2.3. BCD2BIN equate ................................. 2-1 2.2.4. EXFILE, EXDRV, and EXUSR equates ............... 2-2 2.2.5. MFIX 2.xx Insertion ............................ 2-2 2.2.5.1. MAXCALS equate ........................ 2-2 2.3. KMD Setup ............................................. 2-2 2.3.1. LOGLDS, UPLDS, and DNLDS equates ............... 2-2 2.3.2. CREDIT equate, and support ..................... 2-3 2.3.3. RESUSR equate, and support ..................... 2-3 2.4. M-SUPPORT Setup ....................................... 2-3 2.4.1. Getting ready, (whats needed) .................. 2-3 2.4.2. METAL/Z-MSG Setup .............................. 2-3 2.4.3. Using MSTAL .................................... 2-3 2.4.4. MSTAL self configuration ....................... 2-4 2.4.5. Installing MINIT.OVR into METAL/Z-MSG .......... 2-4 2.4.6. Configuring MINIT .............................. 2-4 2.4.7. Configuring MEXIT .............................. 2-4 2.4.8. Configuring MSET ............................... 2-4 2.4.9. Configuring MUT ................................ 2-5 2.4.10. Finishing up .................................. 2-5 3. MAINTENANCE ................................................ 3-1 3.1. MUT for house keeping ................................. 3-1 3.2. MSET (if needed) ...................................... 3-1 4. ADDITIONAL NEW SYSTEM CAPABILITIES ......................... 4-1 5. MINIT ...................................................... 5-1 5.1. Running MINIT ......................................... 5-1 5.1.1. The TIME CHECK feature ......................... 5-1 5.1.2. The NULLS passing feature ...................... 5-2 6. MEXIT ...................................................... 6-1 6.1. Running MEXIT ......................................... 6-1 6.1.1. The USERS file drive/user selection ............ 6-2 6.1.2. The TIME CHECK feature ......................... 6-2 6.1.3. The CLOCK feature .............................. 6-2 6.1.4. The WHEEL feature .............................. 6-2 6.1.5. The WHEEL location ............................. 6-2 6.1.6. The TIME LEFT feature .......................... 6-2 6.1.7. The BEG feature ................................ 6-2 6.1.8. The BEG RATIO .................................. 6-2 6.1.9. The STOP feature ............................... 6-3 6.1.10. The STOP RATIO ................................ 6-3 6.1.11. The SPECIAL STOP STATUS ....................... 6-3 ------------------------ Table of Contents ------------------------ (continued) *M-SUPPORT MANUAL* (6.1. Running MEXIT continued) 6.1.12. The SPECIAL STOP RATIO ........................ 6-3 6.1.13. The BYPASS STOP STATUS ........................ 6-3 6.1.14. The RESTORATION feature ....................... 6-3 6.1.15. The UPLOAD counter location ................... 6-4 6.1.16. The DOWNLOAD counter location ................. 6-4 6.1.17. The SINCE SYSOP feature ....................... 6-4 6.1.18. The SYSOP SEEK number ......................... 6-4 6.1.19. The COUNTERS file drive/user selection ........ 6-4 6.1.20. The MEXIT file drive/user selection ........... 6-4 6.2. MEXIT operations ...................................... 6-4 7. MUT ........................................................ 7-1 7.1. Running MUT ........................................... 7-1 7.1.1. The SEARCH configuration ....................... 7-1 7.1.2. The DRIVE/USER selection ...................... 7-1 7.1.3. The CLEAR SCREEN feature ....................... 7-1 7.1.4. The ARROWS feature ............................. 7-2 7.1.5. The UP ARROW value ............................. 7-2 7.1.6. The DOWN ARROW value ........................... 7-2 7.1.7. The TIME CHECK feature ......................... 7-2 7.1.8. The PASSWORD feature ........................... 7-2 7.1.9. The PASSWORD selection ......................... 7-2 7.1.10. The (AD)d command default parameters .......... 7-3 7.1.10.1. The default user status ............. 7-3 7.1.10.2. The default terminal height ......... 7-3 7.1.10.3. The default terminal width .......... 7-3 7.1.10.4. The default message group ........... 7-3 7.1.11. The (Y) command data file parameters .......... 7-4 7.1.11.1. The field encaser ................... 7-4 7.1.11.2. The field separator ................. 7-4 7.1.11.3. The record terminator ............... 7-4 8. MUT commands ............................................... 8-1 8.1. The NEXT user command ................................. 8-1 8.2. The PREVIOUS user command ............................. 8-1 8.3. The , find user by record NUMBER command ....... 8-1 8.4. The (F), find user by NAME command .................... 8-2 8.5. The (S), NEXT match of NAME string command ............ 8-2 8.6. The (E), EDIT command ................................. 8-2 8.6.1. Editing name ................................... 8-2 8.6.2. Editing password ............................... 8-2 8.6.3. Editing status ................................. 8-2 8.6.4. Editing group flag ............................. 8-3 8.6.5. Editing location ............................... 8-3 8.6.6. Editing last date logged ....................... 8-3 8.6.7. Editing last time logged ....................... 8-3 8.6.8. Editing last message read ...................... 8-3 8.6.9. Editing total times called ..................... 8-3 8.6.10. Editing total time hours ...................... 8-3 8.6.11. Editing total time minutes .................... 8-3  8.6.12. Editing uploads ............................... 8-3 8.6.13. Editing Downloads ............................. 8-4 ------------------------ Table of Contents ------------------------ (continued) *M-SUPPORT MANUAL* (8. MUT commands continued) 8.6.14. Editing terminal height ....................... 8-4 8.6.15. Editing terminal width ........................ 8-4 8.6.16. Editing nulls value ........................... 8-4 8.6.17. Editing time check date ....................... 8-4 8.6.18. Editing time check minutes .................... 8-4 8.6.19. Editing time check calls ...................... 8-4 8.6.20. Editing mode (expert/novice) .................. 8-4 8.6.21. Editing bell (on/off) ......................... 8-5 8.6.22. Editing O/S jump (on/off) ..................... 8-5 8.6.23. Editing auto read (on/off) .................... 8-5 8.7. The (/), QUICK EDIT command ........................... 8-5 8.7.1. Editing status ................................. 8-5 8.7.2. Editing group flag ............................. 8-5 8.7.3. Editing uploads ................................ 8-5 8.7.4. Editing Downloads .............................. 8-5 8.8. The (Z), ZIP command .................................. 8-6 8.9. The (I), INFORMATION command .......................... 8-6 8.10. The (T), TAG command ................................. 8-6 8.10.1. DATE search tag .............................. 8-6 8.10.2. STATUS search tag ............................ 8-6 8.10.3. CALLS search tag ............................. 8-6 8.10.4. UPLOADS search tag ........................... 8-7 8.10.5. DOWNLOADS search tag ......................... 8-7 8.11. The (V), VIEW tags command ........................... 8-7 8.12. The (C), CLEAR tags command .......................... 8-7 8.13. The (AD), ADD user command ........................... 8-7 8.14. The (D), DELETE user command ......................... 8-7 8.15. The (U), UNDELETE user command ....................... 8-7 8.16. The (M), MASS user delete command .................... 8-8 8.17. The (AL), ALL users display command .................. 8-8 8.18. The (R), RESET counters command ...................... 8-8 8.19. The (G), GROUP flag set command ...................... 8-8 8.20. The (W), STATUS level set command .................... 8-8 8.21. The (P), PRINT command ............................... 8-8 8.22. The (Y), DATA FILE command ........................... 8-8 8.23. The (Q), COMPRESS command ............................ 8-9 8.24. The (X), EXIT command ................................ 8-9 9. MSTAL ...................................................... 9-1 9.1. Running MSTAL ......................................... 9-1 9.1.1. Command (1), the MUT configuration command ..... 9-1 9.1.2. Command (2), the MUT listing command ........... 9-1 9.1.3. Command (3), the MEXIT configuration command ... 9-1 9.1.4. Command (4), the MEXIT listing command ......... 9-1 9.1.5. Command (5), the MINIT configuration command ... 9-2 9.1.6. Command (6), the MINIT listing command ......... 9-2 9.1.7. Command (7), the MINIT.OVR install command ..... 9-2 9.1.8. Command (8), the MINIT.OVR UN-install command .. 9-2 9.1.9. Command (9), the MSET configuration command .... 9-2 9.1.10. Command (C), the MSTAL configuration command .. 9-2 9.1.11. Command (X), the MSTAL exit command ........... 9-2 ------------------------ Table of Contents ------------------------ (continued) *M-SUPPORT MANUAL* 10. MSET ...................................................... 10-1 10.1. Running MSET ........................................ 10-1 10.1.1. The MEXIT file drive/user selection ........... 10-1 10.2. MSET operations ..................................... 10-1 11. ACQUISITION OF SOURCE FILES ............................... 11-1 11.1. Problems, Bugs, Suggestions ......................... 11-1 APPENDIX A ASCII to Decimal Conversion chart .............. A-1 APPENDIX B Expected page zero mapping ..................... A-1 APPENDIX C Basic Flow Chart ............................... A-2 NOTES ......................................................... B-1 [ INTRODUCTION ] PAGE 1-1 1. INTRODUCTION M-SUPPORT is a series of programs designed to support the METAL or Z-MSG message systems in some unique ways. This manual assumes that the METAL/Z-MSG message system has been successfully installed under BYE 503 or newer, if not this should be the first step. 1.1. Overview of the M-SUPPORT files The M-SUPPORT series was designed to help the METAL/Z-MSG message system PERFORM in a BYE 5 environment, expanding on existing features from both, and adding a number of it's own. When the M-SUPPORT series is installed the Sysop may choose to track, log, and control such things as maximum time allowed on system per day, maximum calls per day, uploads, downloads, total time on system to date, users download to upload ratio, and many other system statistics. 1.2. Computer system requirements - CP/M 2.2, or 3.0, any form of ZCPR or ZCMD will have no effect on the operation of the programs. - BYE 5, version 503 or newer. Version 506 or newer recommended. - KMD, version 11 or newer. Version 17 or newer is recommended. 1.3. Distribution Files The following files are supplied in the M-SUPPORT distribution library. A brief description is given of each. MINIT.OVR - This overlay is used to pass data from the message system to a buffer in BYE 5. MEXIT.COM - This program handles tracking of system information, and updates the users file. MUT.COM - This is an editing program / file manager for the USERS file used by METAL/Z-MSG. MSET.COM - This program is used to reset the SINCE SYSOP counters, and is needed only if the Sysop can not call remote or run locally under BYE 5. MSTAL.COM - This program is used to install, and configure the M-SUPPORT series, listed above. MFIX.INS - This is an insert which is placed in BYE 5 as the user definable extended BDOS call. MSUPPORT.DOC - This document text file. MSUPREN.SUB - This is a submit file used to REName all of the distribution files in the library. [ INSTALLATION ] PAGE 2-1 2. INSTALLATION The installation of the M-SUPPORT series is fairly simple. The next few sections will describe the necessary steps to install all of the programs. 2.1. Files and Disk space The installation of the M-SUPPORT software should not have much of an effect on computer system disk space requirements. Since MINIT.OVR is placed in a predefined location within METAL/Z-MSG, and MFIX.INS will add only 234 bytes to the assembled BYE 5 program. MEXIT itself is less than 4k bytes in assembled form. MUT was designed to operate on the users file one record at a time so that a small TPA will not prevent working on a large USERS file. MUT need not even be left online, it is simply a handy utility, and may be found very useful while testing the M-SUPPORT series. 2.2. BYE 5 Setup The installation of these programs will require that BYE 5 be edited and reassembled. This is necessary in order to properly set the pertinent equates in BYE 5, and install the MFIX.INS file if the TIME CHECK feature of the system is to be used. If NULLS are to be handled automaticly on the system refer to section 5.1.2. of this manual before closing the BYE 5.ASM file. 2.2.1. CLOCK requirements Several options in the support files depend upon BYE 5 having an active clock, if a clock is not available in BYE 5, be certain to set all CLOCK and TIME CHECK options to NO. If a clock is installed in BYE 5, set these option to suit the system needs. 2.2.2. LCDATA and READLC equates MINIT depends on a buffer area supplied by BYE 5 to pass and hold the user information for the BYE 5 ^W, (who's on key) feature. This is a must since this is the area which also holds the users file seek number for all MEXIT operations. The equates must be set as follows even if there is an activated 25th status line on the system. --> LCDATA EQU YES (yes, allocate 78 bytes of ram in BYE 5) --> READLC EQU NO (no, don't read info from lastcalr file) 2.2.3. BCD2BIN equate This equate enables a convertion routine used by some of the various clock inserts supplied in the BYE 5 library, if a clock is installed in BYE 5, this eqaute may already be set to YES. If not and the TIME CHECK feature is to be used, set this equate to YES. --> BCD2BIN EQU YES (if TIME CHECK is used) [ INSTALLATION ] PAGE 2-2 2.2.4. EXFILE, EXDRV, and EXUSR equates These equates are used to inform BYE 5 where to search for the MEXIT file as a user exits the system, and must be set properly. --> EXFILE EQU YES (yes, call an exit file) --> EXDRV EQU 'A' (whatever drive MEXIT.COM will be on) --> EXUSR EQU 14 (user area that MEXIT.COM will be in) 2.2.5. MFIX 2.xx Insertion The MFIX insert must be installed if the TIME CHECK feature is to be used, otherwise it is not necessary. Find the line in BYE 5 which reads as follows. --> SRUDEF: RET Delete the entire line and insert the MFIX.INS file in it's place. 2.2.5.1. MAXCALS equate There is one equate at the top of the MFIX insert which will require a decision. The equate is MAXCALS and represents the maximum number of calls per day allowed to any user. The distribution file is set for 10, and may be any number from 1 to 255. If you do not wish to limit the maximum times a user can call then set this equate to zero. There is one bypass condition in this routine, and that is if the user has unlimited time on the system, MAXCALS will then be ignored no matter what value is set. --> MAXCALS EQU 10 (0 = no maximum, 1 to 255 = valid max) 2.3. KMD Setup The installation of these programs will require that KMD be edited and reassembled. This is necessary in order to properly set the pertinent equates in KMD. 2.3.1. LOGLDS, UPLDS, and DNLDS equates These equates force KMD to count upload and download activity, and to select the location of the counters in low memory. Set the equates as shown below. --> LOGLDS EQU YES (yes, count transfer activity) --> UPLDS EQU 0054h (location of the upload counter) --> DNLDS EQU 0055h (location of the download counter) The location of the counters may need to be altered in some systems if they conflict with locations used by some other functions. An Example would be a CP/M 3.0 system, the locations would be changed to 0021H for UPLDS, and 0022H for DNLDS. If your system requires that the counters be moved, consult the KMD document file and/or your computer manual for further details, also insure that if changed, the locations listed in MEXIT are also changed. This can be done while configuring MEXIT with the MSTAL program. [ INSTALLATION ] PAGE 2-3 2.3.2. CREDIT equate, and support This equate, as explained in the KMD document will allow reimbursement of time spent uploading. MEXIT will automaticlly account for this feature if used, and will accurately track the charged time on system, which should be subtracted from the users total time allowed. 2.3.3. RESUSR equate, and support This equate is used to enable a feature in KMD that will make it possible to prevent a user from downloading if that user has exceeded the maximum download to upload ratio selected. If the STOP feature is used in MEXIT this must be set to YES, otherwise leave it set to NO. --> RESUSR EQU YES (if STOP feature is used) 2.4. M-SUPPORT Setup This section will walk through the configuration and installation of the M-SUPPORT programs. Detailed descriptions, and further references may be found in the appropriate sections of this manual. 2.4.1. Getting ready, (whats needed) The first thing to do is get all of the pertinent files in one place where we can work on them. You will need MECONFIG/ZMCONFIG.COM METAL/Z-MSG.COM, MINIT.OVR, MEXIT.COM, MUT.COM, and MSTAL.COM. Now make sure that all of the files and programs from the M-SUPPORT library are renamed to remove there version number, for example MEXIT200.COM becomes MEXIT.COM and so on, including MSTAL. MSUPREN.SUB will do this for you, simply SUBMIT MSUPREN, and the submit function will rename all of the files. MSET.COM may also be needed if BYE 5 won't run in local mode. If it is desired to install the M-SUPPORT series while the programs are on different drive/users. This is not a problem, since MSTAL will request the drive/user location of any files not found in the current default drive/user area. 2.4.2. METAL/Z-MSG Setup Since MEXIT is not only called by BYE 5, but also by the METAL/Z-MSG program as a user jumps to the operating system, we must tell the message system to load and run this file as it enters the operating system. Use MECONFIG/ZMCONFIG, menu selection #5 allows selection of a file to run, it is the second to the last selection in this configuration command. Simply enter the user, drive, and file name. Example: 14/A:MEXIT.COM There is one other thing that may require some consideration, if NULLS are to be handled automaticly on the system refer to section 5.1.2. of this manual, before exiting MECONFIG/ZMCONFIG. [ INSTALLATION ] PAGE 2-4 2.4.3. Using MSTAL MSTAL is a configuration program designed to configure and/or install the M-SUPPORT series of programs. MSTAL will go through a step by step installation of MINIT, MEXIT, MSET, and MUT. MSTAL can also configure itself, since MSTAL must know which message system file to look for, METAL.COM or Z-MSG.COM. MSTAL also supports inline help, and during configuration entering a "?" will supply inline help, (a paragraph or so) for each question in the configuration. 2.4.3. Using MSTAL (continued) The default distribution setup is for METAL.COM The current configuration is listed at the top of the menu. MSTAL was written with the intent of removing the troublesome editing, assembly, and .COM file overlay operations of MINIT, MEXIT, MSET, and MUT. 2.4.4. MSTAL self configuration Run MSTAL and use the "C" command to select Z-MSG rather than METAL if you are installing this in a Z-NODE. 2.4.5. Installing MINIT.OVR into METAL/Z-MSG The first step must be to insert the MINIT overlay into your METAL/Z-MSG.COM file. This is quite simple, just select command #7 from the MSTAL menu, and MSTAL will insert the overlay, and inform you that the task is complete. In the event that either MINIT.OVR or METAL/Z-MSG.COM are not found on the current drive/user, MSTAL will request the drive/user information. 2.4.6. Configuring MINIT Now that MINIT has been inserted into METAL/Z-MSG, it can be configured. Simply select command #5 from the MSTAL menu. MSTAL will respond by displaying the current setting of each option. If no change is desired just enter a RETURN, for HELP simply enter " ? ", any other input will toggle the option from YES to NO or visa versa. For a more detailed description of the options than the " ? " inline help offers, refer to section five. 2.4.7. Configuring MEXIT MEXIT has a number of selectable options, in particular the drive/user area selection must be set, so MEXIT will be able to locate the USERS file. Select command #3 from the MSTAL menu, MSTAL will display the current setting of each option. If no change is desired simply enter a RETURN. A " ? " will offer inline help, in the case of the USERS file drive/user area selection, insure that the proper drive and user are entered. For more information on any of the selections in the MEXIT configuration refer to section six of this manual. [ INSTALLATION ] PAGE 2-5 2.4.8. Configuring MSET MSET has only one option and that is the drive/user area to search for the MEXIT file. This program is only needed if the SINCE SYSOP feature is used, and the the Sysop is unable to run BYE 5 localy. Also if the Sysop normally logs in remote this is not needed. Refer to section ten for more information. 2.4.9. Configuring MUT MUT, like mexit has a large number of options to select and can be configured in a number of ways. Use MSTAL command #1 and set the necessary options to your liking. For detailed information on these options use the " ? " inline help or refer to section seven of this manual. NOTE: If MUT is to be used the files USERS, and USERS.IDX MUST be in the same drive/user area. 2.4.10. Finishing up After all the files have been configured, place your reassembled versions of BYE 5, KMD, and METAL/Z-MSG in the appropriate drive, and place MEXIT in the drive/user area you have designated in BYE 5, MECONFIG/ZMCONFIG, and MSTAL. The M-SUPPORT series is now handling all of the requested file update features. For future online configuration MSTAL may be placed in a secure drive area. MSTAL will ask for drive user information if a file is not found so it may be placed anywhere in the storage system [ MAINTENANCE ] PAGE 3-1 3. MAINTENANCE There is no maintenance to speak of, MEXIT will update the users files as needed and requires no human intervention. Some Sysop's may choose to zero the upload and download counters at some regular interval, this choice is purely up to to you. 3.1. MUT for house keeping MUT is very useful in clearing out old inactive users. The mass delete command, and the squeeze command enable a completely new USERS file with all deleted users removed. If the size of the users file has gotten out of hand due to inactive or deleted users, this is a great solution. Refer to section 8.23. for more detailed information. 3.2. MSET (if needed) If the SINCE SYSOP feature is used in MEXIT, and the sysop can not run locally under BYE 5, or is unable to do system maintenance from a second remote system, then MSET should be run after the sysop's log in. This will reset the SINCE SYSOP counters in MEXIT. [ ADDITIONAL NEW SYSTEM CAPABILITIES ] PAGE 4-1 4. ADDITIONAL NEW SYSTEM CAPABILITIES The M-SUPPORT series of programs offers your BBS system an array of additional new features, and it is strongly suggested that you read this manual from cover to cover, and become familiar with all of the features and options. -SUMMARY of NEW FEATURES- - Nulls value passed from USERS file to BYE 5, (if option is used) - Users information passed to the BYE 5 LCDATA buffer - Maximum time on system value passed to BYE 5 - No activity time out value passed to BYE 5 - Maximum time on system per day tracking and control, (if TIME CHECK) - Maximum calls per day tracking and control , (if TIME CHECK is used) - Total time on system to date support, (if TIME CHECK feature is used) - User upload tracking - User download tracking - Download ratio dependent begging, (if the BEG feature is used) - Download ratio dependent restriction, (if the STOP is used) - Special status ratio restriction, (if STOP is used) - Special status restriction bypass, (if STOP is used) - Local print of users name and logout time, (if CLOCK feature is used) - Local print of times called and minutes on, (if TIME CHECK is used) - Local print of calls since sysops last login (if SINCE SYSOP is used) - Local print of messages since sysops last login (if SINCE SYSOP used) - Local print of uploads since sysops last login (if SINCE SYSOP used) - Local print of downloads since sysops last login (if SINCE SYSOP) - Ability to edit any value in the USERS file (MUT) - Extended name string search (MUT) - Extended scan and display (MUT) - Compression of the USERS file (MUT) - Selective user print (MUT) - Selective upload/download counters resets (MUT) - Selective status level asignments (MUT) - Selective message group flag asignments (MUT) - Selective user delete (MUT) - Selective data base file output (MUT) - Online configuration (MSTAL) [ MINIT ] PAGE 5-1 5. MINIT MINIT is actually a short routine contained in a overlay file which is moved into a predetermined location within the METAL/Z-MSG .COM file. The routine takes advantage of the MEINIT feature offered in the newer versions of METAL/Z-MSG. This routine is called by the METAL/Z-MSG file immediately after verifing and logging in the user. MINIT then will complete a number of tasks such as moving the users name, status, password, and location to the BYE 5 LCDATA buffer, which in turn will supply the ^W (who's on key). An example of the user data is shown below. John Doe (c) - PASSWORD -> Hometown, CA. The users file seek number is also stored in the last two bytes of the buffer with a flag prefix, this is not shown in the display. MINIT also is used to pass the number of nulls from the users file, the maximum time allowed on the system, and the no activity time out value to BYE 5. The RESUSR bit mapped flag for KMD is set, so if the STOP feature is used in MEXIT, the original restriction is properly set. If you don't use this feature it will be transparent since the RESUSR equate in KMD will be set to NO. The final and most important function of MINIT is to call the user defined RSX function in BYE 5. This function is the MFIX.INS routine which was inserted in BYE 5, the reason for this insert is to accommodate the need for some time calculations, which there is not space for in MINIT, also this allows us to use existing routines in BYE 5, such as BCDBIN. The MFIX routine will calculate the number of times a user has called "today", refuse access, and hang up. If the maximum number of calls chosen in MFIX is exceeded, or will inform METAL/Z-MSG and MEXIT how much time the user has spent on the system previously "today". In the event that it is the first call for a user on a given day, MFIX will zero the TIME CHECK minutes, and TIME CHECK calls counters. ANY user with unlimited time will BYPASS the TIMES CALLED lock. 5.1. Running MINIT MINIT is executed automaticlly by the METAL/Z-MSG program, and requires no intervention. This assumes that the MINIT routine has been inserted into METAL/Z-MSG, as described in section 2.4.5. 5.1.1. The TIME CHECK feature This feature is really a toggle you must select in MINIT. If you choose to use the TIME CHECK feature in this system, you must make sure that MFIX.INS was inserted into BYE 5, and must also set the TIME CHECK toggle in MEXIT to YES. The TIME CHECK feature offers the following functions to the system. - Maximum time on system per day tracking and control - Maximum calls per day tracking and control - Total time on system to date support - Local screen print of times called, and minutes on today after user logs out [ MINIT ] PAGE 5-2 5.1.2. The NULLS passing feature BYE 5 has an option which allows it to ask for, and set the nulls value as a user logs in. If you would like to handle nulls automaticly it is quite easy. Simply set the equate in BYE to not ask for nulls, BYE will answer the phone with a default value of five nulls, as soon as the user logs in, MINIT will pass the nulls value from the users file to BYE 5. You must also use MECONFIG or ZMCONFIG to set the BYE parameters in METAL/Z-MSG. NOTE: It may be desired to use this feature and still allow BYE 5 to ask for nulls. The nulls value entered would be overwritten at login by the value in the users file. Also this provides a way to insure the user is in terminal mode, and doesn't miss the welcome messages at sign on. [ MEXIT ] PAGE 6-1 6. MEXIT MEXIT has three possible entry points, each serves a different purpose. The first of these is the original entry when the user jumps to the operating system, at this time MEXIT will open the users file and redundantly calculate all of the TIME CHECK values that MINIT and MFIX calculated at log in. Then updating the file, since MINIT only changes the memory image in METAL/Z-MSG. Now if the user re-enters the message system, all data is still correct. After the updating process MEXIT will inform the user of his system status, as shown. System status: John Doe Uploads: 19 Downloads: 67 Minutes per day: 60 Minutes on today: 34 (if CLOCK is used) Previous calls: 2 Previous minutes: 23 (if TIME CHECK is used) Minutes left: 26 (if TIME LEFT is used) Enjoy your stay on the system. MEXIT will also beg for uploads in this display if the BEG feature is set to YES, and the ratio is exceeded. If the STOP feature is on and the user has exceeded the STOP ratio, download priviledges will be removed and the user will be informed. If the user never enters the operating system, the TIME CHECK update will be performed at log off, before the log off calculations. The second entry point is if the user re-enters the operating system from the message system after the original jump. At this point MEXIT will either simply return after doing nothing, or if the RESTORATION feature is ON, MEXIT will update the users upload and download logs, then recalculate the users STOP ratio. If the user has uploaded enough files to regain download priviledges MEXIT will reset the RESUSR byte for KMD. On the other hand, if the user has downloaded files in this session and now exceeds the maximum ratio selected, download priviledges will be revoked. The third and final entry to MEXIT is when carrier is gone, MEXIT assumes that if it has been called and no carrier is present this must be a log out function, also it is assumed that BYE called MEXIT. If the user never entered the operating system MEXIT will update the file to first entry level, this way all log out calculations and functions are the same. MEXIT will then complete the final file update, calculate and rewrite total uploads, downloads, and total time on system. Then print localy to the screen, if the proper features are set to YES. The number of times called, time of day at logout for that user, and other useful information if the SINCE SYSOP feature is used. 6.1. Running MEXIT Assuming you have properly set BYE 5 and METAL/Z-MSG to call MEXIT, it will run by itself as described above. If you have not set BYE 5 and METAL/Z-MSG refer to sections 2.2.4. and 2.4.2. respectively. [ MEXIT ] PAGE 6-2 6.1.1. The USERS file drive/user selection MEXIT must know which drive/user area to search for the USERS file in. MSTAL will allow you to select the proper drive/user area in MEXIT. The format is (duu). 6.1.2. The TIME CHECK feature MEXIT is able to track and limit such things as total time on system today, and times called today. If you wish to use this feature it can be enabled with MSTAL. If this feature is used the same feature must be enabled in MINIT, and MFIX.INS must be installed in BYE 5. Also this feature requires that a clock be installed in BYE 5, and MSTAL will automacticlly select the clock option if TIME CHECK is set to YES. 6.1.3. The CLOCK feature  MEXIT uses the clock in BYE 5 for a number of functions, if you do not have a clock installed in BYE 5 set this to NO. If a clock is available in BYE 5 set this to yes. 6.1.4. The WHEEL feature MEXIT uses the WHEEL byte to determine Sysop status, if the wheel byte is set, certain traps are bypassed to prevent a Sysop from having download priviledges removed and a few other details. Even if you do not use some form of ZCPR, but do use the wheel byte, set this to YES. 6.1.5. The WHEEL location If the WHEEL byte is being used, MEXIT must know it's low memory location. This is entered with MSTAL and presumes it will be in page zero of memory, so only the last two hexadecimal digits are required. The common location on most systems is 3Eh. 6.1.6. The TIME LEFT feature This feature allows MEXIT to print the time remaining for the user on the system today, from BYE 5. If BYE 5 is set to print this at each warm boot, you will probably want this feature set to NO in order to prevent a redundant display, otherwise I suggest leaving it set to YES. 6.1.7. The BEG feature This feature will allow MEXIT to BEG for uploads from the user if the download ratio exceeds the ratio selected. A message will be displayed, asking for uploads. 6.1.8. The BEG RATIO If the BEG feature is set to YES, MSTAL can select the RATIO of downloads to uploads at which to begin begging. For example a ratio of 5 would result in a 5 to 1 ratio, (downloads to uploads). [ MEXIT ] PAGE 6-3 6.1.9. The STOP feature This feature will allow MEXIT to STOP a user from downloading if the download ratio exceeds the ratio selected. A message will be displayed, informing the user that until uploads are made to offset the ratio, he will not be allowed to download any files. 6.1.10. The STOP RATIO If the STOP feature is set to YES, MSTAL can select the RATIO at which to STOP downloads. For example a ratio of 20 would result  in a 20 to 1 ratio, (downloads to uploads). 6.1.11. The SPECIAL STOP STATUS This feature will allow MEXIT to select a different STOP RATIO for users with the STATUS levels chossen. There may be from 0 to 3 SPECIAL STOP STATUS characters, if the download ratio exceeds the ratio selected. A message will be displayed, informing the user that until uploads are made to offset the ratio, he will not be allowed to download. 6.1.12. The SPECIAL STOP RATIO If from 1 to 3 special status characters are selected, MEXIT will then use the SPECIAL STOP RATIO to STOP downloads. For example a ratio of 40 would result in a 40 to 1 ratio, (downloads to uploads). 6.1.13. The BYPASS STOP STATUS This feature will allow MEXIT to BYPASS the STOP feature for users with the STATUS levels chossen. There may be from 0 to 3 SPECIAL STATUS BYPASS characters. If the WHEEL byte is not used the sysop symbol (+) should be included here. 6.1.14. The RESTORATION feature This feature if set to YES allows the second entry described in section 6. The intent is that if this feature is on, MEXIT will restore a users download priviledges after the user has uploaded enough files to offset the ratio. After the uploads the user may return to the message system, and then jump back to the operating system, as MEXIT runs on re-entry it will reset the download flag if indeed the user has uploaded enough files. If this feature is set to NO, the user would need to wait until next login, which unless you have a very busy system could be only ten seconds later. The other side of this feature is that if the user re-enters the operating system after downloading enough files to warrant a STOP condition he will indeed have his priviledges revoked. If you like you may put a copy of MEXIT, possibly renamed to reset or something, on the system drive with DIR and alike and inform the user that they may simply call that program to restore their privilegdes. This would be much faster than re-entering the message system. [ MEXIT ] PAGE 6-4 6.1.15. The UPLOAD counter location Since MEXIT tracks and logs the upload activity of the user it is necessary to define the location of the UPLOAD counter in low memory. This address must be the same as was set in KMD, and is assumed to be in page zero of memory, so only the last two hexadecimal digits are required . The location may be changed with MSTAL. 6.1.16. The DOWNLOAD counter location Since MEXIT tracks and logs the download activity of the user it is necessary to define the location of the DOWNLOAD counter in low memory. This address must be the same as was set in KMD, and is assumed to be in page zero of memory, so only the last two hexadecimal digits are required . The location may be changed with MSTAL. 6.1.17. The SINCE SYSOP feature This feature allows MEXIT to track the number of calls, messages, uploads, and downloads since the sysops last log in. The display will be printed on the screen after each users log out. Example: MEXIT 2.00 All Rights Reserved ( Copyright header ) Copyright (c) 1986 by Kevin Murphy ( is always there ) [ John Doe Logoff 10:32 ] <---( if CLOCK ) [ Calls today: 1 Minutes: 14 ] <---( if TIME CHECK ) [ ** Status Since Sysop Login ** ] <-( if SINCE SYSOP ) [ Callers: 12 Messages : 7 ] <-( if SINCE SYSOP ) [ Uplaods: 9 Downloads: 24 ] <-( if SINCE SYSOP ) 6.1.18. The SYSOP SEEK number If the SINCE SYSOP feature is used, MEXIT must know the record number of the SYSOP, so it can determine when to reset the SINCE SYSOP counters. Normally this is record # 1. 6.1.19. The COUNTERS file drive/user selection If the SINCE SYSOP feature is used, MEXIT must know which drive/user area to search for the COUNTERS file in. MSTAL will allow you to select the proper drive/user area in MEXIT. The format is (duu). 6.1.20. The MEXIT file drive/user selection If the SINCE SYSOP feature is used, MEXIT must know which drive/user area it is located in. MSTAL will allow you to select the proper drive/user area in MEXIT. The format is (duu). 6.2. MEXIT operations MEXIT is less than four k-bytes in assembled form, and uses all standard 8080 and CP/M calls and routines, there should be no problems incountered. MEXIT is very fast in it's proccessing, so speed should not be a big factor. [ MUT ] PAGE 7-1 7. MUT MUT is an editing program designed for the message system USERS file, MUT will perform a number of useful tasks. The basic operational format of MUT is similar to the ED command found in METAL/Z-MSG. MUT also offers a number of special or extended editing features such as user file compression, and mass operations such as group flag setting with tags. All of these features are explored in detail and can be found in section eight of this manual. NOTE: USERS, and USERS.IDX MUST be in the same drive/user area. Insure that this has been done in MECONFIG/ZMCONFIG. 7.1. Running MUT When MUT is first executed a message will be printed on the screen informing you of which drive and user area it is searching for the USERS file, if MUT is unable to find the file it will request the location of the USERS file. MUT has extensive help menus built in, and at most any point in the use of MUT, you may enter a "?" and receive the necessary help. 7.1.1. The SEARCH configuration MUT has an option which determines what drive it will search for the USERS file before requesting the location. The two choices are the DEFAULT drive, which would have MUT search the current default drive and user area for the file. The second selection allows you to PRECONFIGURE the drive and user area to search, this way no matter which drive MUT is executed from it would be able to locate the USERS file. In either configuration if the file is not found MUT will request the location. 7.1.2. The DRIVE selection If MUT is set for the PRECONFIGURED drive selection it must know which drive/user area to search for the USERS file in. MSTAL will allow selection of the proper drive in MUT. The format is (duu). 7.1.3. The CLEAR SCREEN feature MUT was designed to clear the screen between certain functions. This adds a degree of clarity, and helps to keep the displays easy to understand. The clear screen sequence may be up to four characters in length. MSTAL will allow you to change the clear screen sequence, the format is one to four characters entered in decimal equivalents. MSTAL will ask for the four characters one at a time, and if your clear screen is less than four characters simply enter zeros in the remaining spaces. An example would be if your clear screen sequence is "ESCape B", the first character you entered would be an ESCape which has a decimal equivalent of 27 , the second character would be a B, which has a decimal equivalent of 66, the third and forth characters would be zeros since they are not needed. For the decimal equivalents refer to appendix A. [ MUT ] PAGE 7-2 7.1.4. The ARROWS feature MUT has made previsions for use of the keyboard arrow keys as additional scan mode commands, (up arrow = previous user, down arrow = next user). This is a matter of choice and will not effect the actual performance of MUT. You may toggle this feature ON or OFF with MSTAL. 7.1.5. The UP ARROW value If the ARROWS feature is used MUT must know the value of of the UP arrow key, this is entered with MSTAL in the form of a decimal equivalent. Refer to appendix A for decimal equivalents. For example if the UP arrow is a ctrl-K the decimal equivalent would be 11. 7.1.6. The DOWN ARROW value If the ARROWS feature is used MUT must know the value of of the DOWN arrow key, this is entered with MSTAL in the form of decimal equivalent. Refer to appendix A for decimal equivalents. For example if the UP arrow is a ctrl-J the decimal equivalent would be 10. 7.1.7. The TIME CHECK feature MUT has the ability to edit a number of values in the USERS file such as times called today, time on system today, and others. These special values are ONLY updated and used if the TIME CHECK feature in MEXIT and MINIT is set to YES. If you have chosen not to track and limit the system with the TIME CHECK feature, then say NO to the feature here also. 7.1.8. The PASSWORD feature MUT has a feature which will allow password access as an extra security measure. Since MUT can derive any piece of information about any user this may be desirable if MUT is left in the storage system, even in a secure area. 7.1.9. The PASSWORD selection If the PASSWORD option is set to YES, MSTAL will then request a password. The password may be any ascii characters, and may be from 1 to 39 characters in length. The alphabet is a slight exception since upper and lower case letters are treated the same. i.e. When the password is checked all lower case letters are converted to upper case first. [ MUT ] PAGE 7-3 7.1.10. The (AD)d command default parameters The basic default user parameters may be altered to taste. This way when the (AD)d command in MUT is used the user will have the intended status, group flag, terminal height, and terminal width. While configuring MUT with MSTAL, you will be asked if you wish to change these. The distribution file is set for a status of "x", group flag is "0001h", terminal height is 24, width is 80. 7.1.10.1. The default user status The (AD)d command will set the new users status to the default value chosen, this should be the same as the default status selected in MECONFIG/ZMCONFIG. 7.1.10.2. The default terminal height The new users default terminal height may be altered, normally it would be between 16 and 24, 0 for no pause. 7.1.10.3. The default terminal width The new users default terminal width may be altered, normally it would be between 40 and 80. 7.1.10.4. The default message group The new users group flag may be altered if desired, the default flag in METAL/Z-MSG is 0001h. 7.1.11. The (Y) command data file parameters MUT will allow the creation of a database file from the USERS file, including user number, last name, first name, and the location. The fields may be encased, separated, and terminated as the application calls for. The distribution file has default values as follows: ascii decimal field encaser " 34 field separator , 44 record terminator CR,LF 13,10 Example: "field","field","field","field" 7.1.11.1. The field encaser The field encaser may be any character, and is entered as a decimal equivalent in order to handle NON-ascii characters. The ascii to decimal convertion chart in appendix A should make this very simple. [ MUT ] PAGE 7-4 7.1.11.2. The field separator The field separator may be any character, and is entered as a decimal equivalent in order to handle NON-ascii characters. The ascii to decimal convertion chart in appendix A should make this very simple. 7.1.11.2. The record terminator The record terminator may be from 0 to 3 characters and are entered as decimal equivalents in order to handle any NON-ascii characters. If less than three characters are needed simply enter zeros in the remaining spaces. If no record termination is required enter a zero in the first location. The ascii to decimal convertion chart in appendix A should make this very simple. [ MUT commands ] PAGE 8-1 8. MUT commands MUT has a large number of commands, many of which have a number of sub commands. This section will attempt to clarify the use of these commands, and explore the power of MUT. When MUT is first executed it will begin in the SCAN mode at user record one, MUT will show a compact three line display of the users statistics, Example: #1 John Smith (c) [0001h] PASSWORD Hometown, CA. uploads 9 downloads 24 calls 79 last message read 1457 on 03/12/86 -------> Using the NEXT and PREVIOUS user commands you may scan the users file in this manner. NOTE: MUT requires that the two files USERS, and USERS.IDX must be located in the same drive/user area. MUT will not function unless this is true. At execution time MUT will search for the USERS file, once located MUT will test for the USERS.IDX, if not found MUT will exit back to the operating system. Insure that you have set the same drive/user location for both files in MECONFIG/ZMCONFIG. 8.1. The NEXT user command The NEXT user command will advance to the next user in the file. If any TAGS have been set the command will advance to the next user record that matches the tags. Simply enter a "RETURN" or a "space", if ARROWS are being used the down arrow will execute this command also. If this command is used at the end of the USERS file a message will inform you, and then loop around to the first user. 8.2. The PREVIOUS user command The PREVIOUS user command will backup to the previous user in the file. If any TAGS have been set the command will backup to the next user record that matches the tags. Simply enter a "B" or a "-", if ARROWS are being used the up arrow will also execute this command. If this command is used while at the top of the USERS file, it will loop around to the last user. 8.3. The find user by NUMBER command MUT also supports jumping to a users record specified by number. The first user in the file is record number 1, and while in SCAN mode the display prefixes the users name with their record number. Simply enter the number of the user you wish to display and hit return. [ MUT commands ]  PAGE 8-2 8.4. The (F), find user by NAME command MUT supports searching the users file for a specified name, partial name, or initials. Simply enter the "F" command and MUT will prompt you for the name string to search for. The search will begin at the current user position in the file. An example would be to enter the initials "J D", (the space separating the first and last initial). MUT would find "John Doe" if that were the first user to match the string. 8.5. The (S), NEXT MATCH of name string command The NEXT MATCH command allows you to search the file, begining at the current user for the next NAME string match, after using the (F) command. From the above example the next match might be "Joe Doyle". If no name string was entered with the (F) command MUT will inform you that there is no search string entered. 8.6. The (E), EDIT command MUT supports an extensive editing capability, allowing virtually anything to be changed in a users file. Each of the edit functions will be explored. 8.6.1. Editing name MUT allows you to edit the users name, but if this is done MUT may automaticly create a new record. Since this command will alter the USERS.IDX file. hash file 8.6.2. Editing password MUT will allow you to change a users password, if no change is desired enter a "RETURN", otherwise enter the new password. MUT will then overwrite the display to show the new password as it progresses to the next editing line. 8.6.3. Editing status MUT allows the users status to be edited, if no change is desired just enter "RETURN", or a new status may be entered, MUT will test the character entered, if it is not a valid status character MUT will respond with an error message and again request the new status. The display will then be rewritten to reflect the new status. [ MUT commands ] PAGE 8-3 8.6.4. Editing group flag The group flag may be edited, if no change is desired simply enter a "RETURN", if a new group flag is desired it can be entered in the format of four hexadecimal characters. If less than four characters are entered MUT will assume they are the low order characters of the flag. The display will be updated to reflect the change. 8.6.5. Editing location The users city and state may be altered if desired, or a "RETURN" for no change. Simply enter the new location, and the display will reflect the changes. 8.6.6. Editing the last date logged The last log in date of the user may be changed, or a "RETURN" for no change. The format is (mm/dd/yy). 8.6.7. Editing last time logged The last log in time may be edited, or "RETURN" for no change. The format is (hh:mm) 8.6.8. Editing the last message read The message number of the last message read by a user may be altered, or "RETURN" for no change. Simply enter the new number, the display will reflect the change. 8.6.9. Editing total times called The total times a user has called the system may be edited, or enter "RETURN" for no change. Changes will be reflected in the display. 8.6.10. Editing total time hours If the M-SUPPORT series is completely installed, the total hours a user has spent on the system to date will be tracked. This value may be edited or enter "RETURN" for no change. 8.6.11. Editing total time minutes If the M-SUPPORT series is completely installed, the total minutes, (the remainder of total hours), a user has spent on the system to date will be tracked. This value may be edited or enter "RETURN" for no change. The value must be between 0 and 59. 8.6.12. Editing Uploads The number of user uploads may be edited, or "RETURN" for no change. The number may be 0 to 65,535. [ MUT commands ] PAGE 8-4 8.6.13. Editing Downloads The number of user downloads may be edited, or "RETURN" for no change. The number may be 0 to 65,535. 8.6.14. Editing terminal heigth The users terminal heigth may be altered, or "RETURN" for no change. The value may be 0 to 255. Normally this would be somewhere between 16 and 24. 8.6.15. Editing terminal width The users terminal width may be altered, or "RETURN" for no change. The value may be 0 to 255. Normally this would be between 40 and 80. 8.6.16. Editing nulls value The number of nulls for each user is stored in the USERS file and may be edited, or "RETURN" for no change. The value may be 0 to 9, and although MUT will allow values of up to 255 for testing purposes, they should not normally be entered. 8.6.17. Editing time check date This date string is used after a user logs in to compare with the last date logged, to determine if the TIME CHECK feature should deduct anything from the users current log in. The date may be changed, or enter a "RETURN" for no change. The entry format is (mm/dd/yy). Actually MUT only saves the month and day and the year is derived from the last date logged. 8.6.18. Editing time check minutes This is the users total time on system for the day, and is set to zero by MEXIT on the users first log in of any given day. Each time the user logs in, his time on system will be added to this value at log out. The value may be edited, or "RETURN" for no change. 8.6.19. Editing time check calls This is the users total calls to the system for the day, and is set to zero by MEXIT on the users first log in of any given day. Each time the user logs out this value will be incremented. The value may be edited, or "RETURN" for no change. 8.6.20. Editing mode (expert/novice) MUT allows the users mode flag to be toggled, or enter a "RETURN" for no change. ANY other key will toggle the mode flag, and the display will reflect the change. [ MUT commands ] PAGE 8-5 8.6.21. Editing bell (on/off) MUT allows the users bell flag to be toggled, or enter a "RETURN" for no change. ANY other key will toggle the bell flag, and the display will reflect the change. 8.6.22. Editing O/S jump (on/off) MUT allows the users O/S jump flag to be toggled, or enter a "RETURN" for no change. ANY other key will toggle the O/S jump flag, and the display will reflect the change. If the users O/S flag is on, he will drop to the operating system immediately after log in verification, the BBS will be bypassed. 8.6.23. Editing auto read (on/off) MUT allows the users auto read flag to be toggled, or enter a "RETURN" for no change. ANY other key will toggle the auto read flag, and the display will reflect the change. If the users auto read flag is on, he will automaticly read any new messages since last log in, presuming that he has access to those messages. 8.7. The (/), QUICK EDIT command MUT also supports a quick or short edit routine, which allows the alteration of the four most common user statistics. The editing routines are in fact the routines used by the full edit command. 8.7.1. Editing status MUT allows the users status to be edited, if no change is desired just enter "RETURN", or a new status may be entered, MUT will test the character entered, if it is not a valid status character MUT will respond with an error message and again request the new status. The display will then be rewritten to reflect the new status. 8.7.2. Editing group flag The group flag may be edited, if no changed is desired simply enter a "RETURN", if a new group flag is desired it can be entered in the format of four hexadecimal characters. If less than four characters are entered MUT will assume they are the low order characters of the flag. The display will be updated to reflect the change. 8.7.3. Editing Uploads The number of user uploads may be edited, or "RETURN" for no change. The number may be 0 to 65,535. 8.7.4. Editing Downloads The number of user downloads may be edited, or "RETURN" for no change. The number may be 0 to 65,535. [ MUT commands ] PAGE 8-6 8.8. The (Z), ZIP command The ZIP command will jump directly to the last user in the file. This is quite handy when you aren't sure where the end of the USERS file is. 8.9. The (I), INFORMATION command The INFORMATION command will list all of the users information, as would be seen in the EDIT mode, but it is a display function only. 8.10. The (T), TAG command The TAG command allows search parameters to be set, users may be selectively scaned, deleted, printed, or have group flags or status set, even reseting of the upload/download counters. The TAGs may work individualy or in any combination. The TAGs are DATE, STATUS, CALLS, UPS (uploads), DOWNS (downloads). 8.10.1. DATE search tag The DATE search tag allows searching for any users which fit the parameters set. There are also three prefixes which are valid for a date search, "<" is before a certain date, ">" is after a certain date, and "=" is on that specific date. The date string itself is entered in the format of (mm/dd/yy), and the default prefix is "<" (before the entered date). Example: <10/24/85 (search for users who's last log in was BEFORE 10/24/85) >10/24/85 (search for users who's last log in was AFTER 10/24/85) =10/24/85 (search for users who's last log in was ON 10/24/85) 8.10.2. STATUS search tag The STATUS search tag allows searching for users according to the users status level. The TAG may contain multiple status characters to allow searching for more than one status level at a time. The status tag command honors one prefix, which is the "!", this can be thought of as the "NOT" prefix, when used to precede the status selections, it will cause the tag to search for all status levels NOT listed. Example: abcd (search for all users with a status of a,b,c, or d) +s (search for sysop's and special users) !Xxn (search for all users EXCEPT status levels X,x, and n) 8.10.3. CALLS search tag The CALLS search tag allows searching for users according to the number of calls a user has made to the system. There are three prefixes which are honored, "<" (less than), ">" (more than) and "=" equal. The default prefix is "<" (less than). Example: <50 (all users with LESS than fifty calls) >50 (all users with MORE than fifty calls) =50 (all users with EXACTLY fifty calls) [ MUT commands ] PAGE 8-7 8.10.4. UPLOADS search tag The Uploads search tag allows searching for users according to the number of Uploads a user has made to the system. There are three prefixes which are honored, "<" (less than), ">" (more than) and "=" equal. The default prefix is "<" (less than). Example: <50 (all users with LESS than fifty Uploads) >50 (all users with MORE than fifty Uploads) =50 (all users with EXACTLY fifty Uploads) 8.10.5. DOWNLOADS search tag The Downloads search tag allows searching for users according to the number of Downloads a user has made to the system. There are three prefixes which are honored, "<" (less than), ">" (more than) and "=" equal. The default prefix is "<" (less than). Example: <50 (all users with LESS than fifty Downloads) >50 (all users with MORE than fifty Downloads) =50 (all users with EXACTLY fifty Downloads) 8.11. The (V), VIEW tags command The VIEW tags command will display the current setting of all the tags. This is very handy before any kind of mass operation. 8.12. The (C), CLEAR tags command The CLEAR tags command will reset all tags to default condition, no tags sets. Search for ALL users. 8.13. The (AD), ADD user command The ADD user command will allow you to add a new user to the message system, as does the same command in METAL/Z-MSG. After creating the user, MUT will jump directly to EDIT mode. This operation will update the USERS.IDX file 8.14. The (D), DELETE user command The DELETE  user command will simply delete the current user. Depending on the ALL users display toggle, the user may no longer be seen in scan mode, refer to section 8.17. 8.15. The (U), UNDELETE user command The UNDELETE user command will simply restore a user from a deleted state, presuming that the record has not been overwritten by an ADD user command or similar operation. [ MUT commands ] PAGE 8-8 8.16. The (M), MASS user delete command The MASS delete command functions much like the Mass command found in EDit of the message system. The tags will be displayed for verification, and then precede to delete all users matching the tags set. If the ALL users toggle is displaying deleted users, you will go through a review of the users deleted by the operation after it's completion. 8.17. The (AL), ALL users display command The ALL users display command will simply toggle the scan mode display to include or not, any deleted users in the file, the screen will display the choice each time it is toggled. 8.18. The (R), RESET counters command The RESET command will begin at the first user in the file and zero the upload and download counters of all users matching the current tags, much like the MASS delete function. 8.19. The (G), GROUP flag set command The GROUP command allows setting the message group flag for multiple users. This is done as a mass tag function, so the group flag selected will be set for any users matching the current tags. The operation will begin with user one. 8.20. The (W), STATUS level set command The STATUS command allows setting the status level for multiple users. This is done as a mass tag function, so the status level selected will be set for any users matching the current tags. The operation will begin at the first user. 8.21. The (P), PRINT command The PRINT command will print the users file beginning at the current user, all tags are honored so the file print may be selective. This way it is possible to print by date, status and so on. Entering a 'control C' will stop the print function. 8.24. The (Y), DATA FILE command MUT has an option which allows creation of a data file, intended to allow database operation with the derived information. All tags are valid for the function so the file may be created selectively by user status, date and so on. The information derived is as follows. USERS RECORD NUMBER USERS LAST NAME USERS FIRST NAME USERS LOCATION Each field is encased with a set of ("), and separated with a (,) after the location field, the record is terminated with hard return. All of these delimiters may be changed with MSTAL. [ MUT commands ] PAGE 8-9 8.23. The (Q), COMPRESS command The COMPRESS command will recreate the USERS file removing all deleted users. This function is quite handy if the size of the users file has gotten out of hand with old, deleted users. When the operation is complete MUT will have to reconstruct the USERS.IDX file. Mut will inform you of the operation. This operation will move some to new and differant record numbers, if you use the record number for some other function think twice about this command. METAL/Z-MSG no longer depends on or honors user numbers so unless you have written some custom application program there will not be a problem. hash file 8.24. The (X), EXIT command The EXIT command will simply close the open files, and return to the operating system. [ MSTAL ] PAGE 9-1 9. MSTAL MSTAL is an installation and configuration tool for the M-SUPPORT series. This program allows you to set or select any, and all available options in MEXIT, MINIT, MUT, MSET, and even itself. 9.1. Running MSTAL When MSTAL is executed the main menu will appear on the screen. All of the commands will assume that the necessary files are on the current default drive, if a file is not found when needed MSTAL will request the drive/user to locate the file. Above the menu is the current configuration of MSTAL. If MSTAL's configuration is changed the header will reflect it. Example of Main Menu shown below. [ MSTAL - 2.00 configured for the METAL message system ] | | | (1) Configure MUT.COM (2) List MUT configuration | | (3) Configure MEXIT.COM (4) List MEXIT configuration | | (5) Configure MINIT.OVR (6) List MINIT configuration | | (7) Install MINIT.OVR (8) UN-install MINIT.OVR | | (9) Configure MSET.COM (C) Configure MSTAL | | (X) Exit from MSTAL | |.......................................................| [ Enter selection ? ]----> 9.1.1. Command (1), the MUT configuration command The MUT configuration command allows the setting of all user selectable options. MSTAL will open the file and read the current configuration as well as the version number of! MUT. The version number will be displayed above the first configuration question/display. For detailed information on any of the selections refer to sections 7.1.1. through 7.1.11.2. of this manual. 9.1.2. Command (2), the MUT listing command The list MUT configuration command simply lists the current configuration stored in MUT. 9.1.3. Command (3), the MEXIT configuration command The MEXIT configuration command allows the selection of all user selectable options. MSTAL will open the file and read the current configuration as well as the version number of MEXIT. The version number will be displayed above the first configuration question/display. For detailed information on any of the selections refer to sections 6.1.1. through 6.1.20. of this manual. 9.1.4. Command (4), the MEXIT listing command The list MEXIT configuration command simply lists the current configuration stored in MEXIT. [ MSTAL ] PAGE 9-2 9.1.5. Command (5), the MINIT configuration command The MINIT configuration command allows the selection of the user selectable options. MSTAL will open the file and read the current configuration as well as the version number of MINIT. The version number will be displayed above the first configuration question/display. MSTAL can only configure or list MINIT after it has been install into METAL/Z-MSG. For detailed information on these selections refer to sections 5.1.1. and 5.1.2. of this manual. 9.1.6. Command (6), the MINIT listing command The list MINIT configuration command simply lists the current configuration stored in MINIT. 9.1.7. Command (7), the MINIT.OVR install command The install command will read in the MINIT.OVR file and insert or overlay the routine into METAL/Z-MSG. After installation MINIT may be configured. 9.1.8. Command (8), the MINIT.OVR UN-install command The UN-install command will blank out the MINIT routine in the METAL/Z-MSG file if it is desired to remove the M-SUPPORT series. 9.1.9. Command (9), the MSET configuration command The MSET configuration command allows the selection of the only selectable option. MSTAL will open the file and read the current configuration as well as the version number of MSET. The version number will be displayed above the MEXIT drive/user question/display. For detailed information on drive/user selection refer to section 10.1.1. of this manual. 9.1.10. Command (C), the MSTAL configuration command The self configuration command allows MSTAL to select between the METAL or Z-MSG programs. The configuration may be saved temporarily or permanently. The menu header will reflect the proper setting. 9.1.11. Command (X), the MSTAL exit command The EXIT command will finish up housekeeping and then return to the operating system. [ MSET ] PAGE 10-1 10. MSET The MSET program has only one purpose, which is to reset the SINCE SYSOP counters, if that feature was selected in MEXIT. MSET is only needed for some special installations, if the Sysop can not run BYE 5 locally, or call in remotely. The reason is simple, if SINCE SYSOP is being used the counters need to be reset after the Sysop's log in, in some systems BYE 5 will not run the ENTRY or EXIT files properly in local mode. If MEXIT runs properly in local mode, or the Sysop calls in remote, MSET is not needed. 10.1. Running MSET Simply execute MSET and it will zero the SINCE SYSOP counters. When complete MSET will print a message to inform you that the job is done. The process takes only a second or two. 10.1.1. The MEXIT file drive/user selection MSET must know which drive/user area to search for MEXIT in. MSTAL will allow you to select the proper drive/user area in MSET. 10.2. MSET operations MSET is a very simple program, when executed it simply opens, and reads the storage block from MEXIT. Then sets the four SINCE SYSOP counters to zero, and rewrites the block to MEXIT. All possible file errors will be checked, and MSET will inform you of any problems. [ ACQUISITION OF SOURCE FILES ] PAGE 11-1 11. ACQUISITION OF SOURCE FILES The source files for all of the M-SUPPORT programs are placed in the public domain as are the files contained in the M-SUPPORT library. They were not included in the distribution library due only to their size. If source files are desired they may be found in the MSRC-200.LBR. This library can be obtained at - Murphy's Remote Los Altos, CA. (415) 949-1072 300/1200/2400 bps 24 hours/7 days ATTENTION: None of the files may be altered and released to the public or private sector, in whole or part, without the authors express written consent. Aterations for personal use are unlimited. 11.1. Problems, Bugs, Suggestions The author would like any suggestions for future updates and revisions, and would also like hear rep"orts of any bugs or problems encountered with the M-SUPPORT series. Leave messages at MURPHY's. PAGE A-1 APPENDIX A ________________________________________________________________ ASCII to DECIMAL conversion chart ________________________________________________________________ ascii decimal ascii decimal ascii decimal ascii decimal _____ctrl_______________________________________________________ NUL ^@ 0 space 32 @ 64 ` 96 SOH ^A 1 ! 33 A 65 a 97 STX ^B 2 " 34 B 66 b 98 ETX ^C 3 # 35 C 67 c 99 EOT ^D 4 $ 36 D 68 d 100 ENQ ^E 5 % 37 E 69 e 101 ACK ^F 6 & 38 F 70 f 102 BEL ^G 7 ' 39 G 71 g 103 BS ^H 8 ( 40 H 72 h 104 HT ^I 9 ) 41 I 73 i 105 LF ^J 10 * 42 J 74 j 106 VT ^K 11 + 43 K 75 k 107 FF ^L 12 , 44 L 76 l 108 CR ^M 13 - 45 M 77 m 109 SO ^N 14 . 46 N 78 n 110 SI ^O 15 / 47 O 79 o 111 DLE ^P 16 0 48 P 80 p 112 DC1 ^Q 17 1 49 Q 81 q 113 DC2 ^R 18 2 50 R 82 r 114 DC3 ^S 19 3 51 S 83 s 115 DC4 ^T 20 4 52 T 84 t 116 NAK ^U 21 5 53 U 85 u 117 SYN ^V 22 6 54 V 86 v 118 ETB ^W 23 7 55 W 87 w 119 CAN ^X 24 8 56 X 88 x 120 EM ^Y 25 9 57 Y 89 y 121 SUB ^Z 26 : 58 Z 90 z 122 ESC ^[ 27 ; 59 [ 91 { 123 FS ^\ 28 < 60 \ 92 | 124 GS ^] 29 = 61 ] 93 } 125 RS ^^ 30 > 62 ^ 94 ~ 126 US ^_ 31 ? 63 _ 95 DEL 127 _______________________________________________________________ APPENDIX B ________________________________________________________________ Expected page zero mapping ________________________________________________________________ 0004h Current user/drive This must never change 0005h BDOS jump This must never change 003Eh WHEEL byte location These three addresses may be 0054h upload counter changed, but be certain they 0055h download counter are also changed in MEXIT 0100h Base of the TPA This must never change __________________________________________________________________ PAGE A-2 APPENDIX C BASIC FLOW CHART LOAD BYE 5 MSTAL | ----------------- reload BYE --------v--------- | | | | | ------------>| BYE 5 WAITS | MEXIT | MSET | MSTAL | --------v--------- | | | got call | answer MINIT MUT | --------v--------- | | print welcome | |  | RUN MENTR | ^ --------v--------- | ask user i.d. | | --------v--------- | | USER LOG IN |------->-+ | --------v--------- | | | | | --------v--------- | | | make LASTCALR | | ^ --------v--------- | | | | | --------v--------- | -------------- | | Run MINIT.OVR | | | BYE 5 RSX | | | call MFIX.INS |-------- | --->| BDOS (84) | | --------v--------- | | MFIX.INS | ^ | | -------------- | print BULLETIN | ------------- v | | | read | | | | | LASTCALR |--->| | | -^----------- | | | | | | | ^ bye ------v-------- ----v-------- --------- | | +--<-| METAL/Z-MSG |----->| USERS & |<----| MUT | | | | ------v-------- | USERS.IDX | --------- | | | J or C | ----^-------- ^ | v ------v-------- | | | | | MEXIT |-------->-+ | ^ | | entry 1 & 2 | | | | | ------v-------- | | | v | | ^ | | ------v-------- | | | |bye | Operating | | | ^ +--<-| System | | | | v ------v-------- | | | | bbs | | | +-<-----<----<--| | ^ | | | -----v------ | | | MEXIT |--------------------->-+ | | -exit- | +--<-|----------| ------------- | SINCE | <- if SINCE SYSOP | MSET only | | counters | <--------------------| if needed | ------------ ------------- PAGE B-1 NOTES ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ _____________________#_________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ PAGE B-2 NOTES ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ;............................................................................ ; ;title mfix.ins ;version 2.00 ;date 04/07/86 ;written by Kevin Murphy ; ; vers 2.00 - new release for METAL/Z-MSG vers 1.4xx or later ; and BYE503 or later. Needed to support the TIME CHECK ; feature in MEXIT. ;.............................................................................. ; >>> comments <<< ;.............................................................................. ; ; Find and DELETE the line in BYE503 or newer which reads: ; *----> SRUDEF: RET ; ; INSERT this file in it's place ; ; BCD2BIN equate must be set to YES in BYE5xx ;.............................................................................. ; >>> equates <<< ;.............................................................................. ; MAXCALS EQU 10 ;maximum number of calls per day if exceeded ;tell him why, and hang up ;set to zero for no maximum ;This is bypassed if the user has unlimit$ed time ; ; ;metal buffer pointers UTIME EQU 69 ;pointer to time UDATE EQU 66 ;pointer to date UMINS EQU 79 ;mins on today, so far UD EQU 124 ;date of umins UM EQU 125 ;month of umins UTC EQU 126 ;times called on this day ; ;.............................................................................. ; >>> main routine <<< ;.............................................................................. ;enter with address of user record in DE ; SRUDEF: XCHG ;get user address in HL SHLD USER ;save it LHLD USER ;get it back, (incase we slip a routine in ) LXI B,UDATE+1 ;point to current day DAD B MOV A,M ;get day, and save it in A LHLD USER ;point to day of last umins update LXI B,UD ; DAD B ; MOV B,M ;get the minson day CMP B ;compare JNZ OKDAY ;no match, no problem, ; LHLD USER ;get base pointer LXI B,UDATE ;add date offset DAD B MOV A,M ;get month LHLD USER ;get pointer again LXI B,UM ;add offset DAD B MOV B,M ;get check month CMP B ;compare JNZ OKDAY ;no match, no problem, ; ;same day... ; LXI B,UTIME ; CALL GET ;convert it STA HOUR ;save it LXI B,UTIME+1 ; CALL GET ;convert it STA MIN ;save it ; LDA MXTIME ;check wheel CPI 0 ;is it a normal user ? JZ NOMAX ;no ; LHLD USER ;make sure we have not exceeded max calls LXI B,UTC ;point to times called today DAD B MOV B,M ;get it in B ; MVI A,MAXCALS ;get max times allowed CPI 0 ;is it zero JZ NOMAX ;then skip this stuff ; SUB B JZ KILLER ;if it was a match, say he's been on forever JC KILLER ; NOMAX: ; LHLD USER ;point to minutes on to day LXI B,UMINS ; DAD B MOV A,M ;get value CPI 0 ;if no update, no problem RZ ;return to metal ; MOV B,A ;do routine LDA MIN ;get login minutes in c CPI 0 ;did hour just turn ??? JZ DOHOUR ;yep, set up to previous hour + 60 mins MOV C,A ;do it ; SUBTR: ; DCR C ;dec JZ DOHOUR ;if zero, drop the hour count DCR B ;dec lop count JNZ SUBTR ;loop till done MOV A,C ;get new minute value STA MIN ;save it LDA HOUR ;reset log in time in bye MOV D,A LDA MIN MOV E,A CALL RMLTIM ;use a short cut to extended bdos RET ;get your butt back to metal ; ;............................... ; OKDAY: LHLD USER ;point to minutes on to day LXI B,UMINS ;zero time on today DAD B MVI M,0 RET ; ;................................ ; DOHOUR: ;increment hour, reset minutes LDA HOUR ;get binary hour DCR A ;dec STA HOUR ;save new count LOADMIN: MVI C,60 ;restart minutes at 60 JMP SUBTR ;go back to loop ; ;................................ ; GET: ;convert bcd byte pointed to by HL ;to binary byte in A LHLD USER ;get base address DAD B ;add in off set MOV A,M ;get 1st CALL BCDBIN ;convert BCD to binary RET ;return to sender, result in A ; ;................................ ; KILLER: ;exceeded maximum number of calls for the day LXI H,TOOMANY ;tell them they have called to many times  CALL PRINTB ;print local and remote CALL PATCH ;patch up bye JMP LOGOFF ;logout, sign off, and all that ; ;.............................................................................. ; >>> db area <<< ;.............................................................................. ; USER: DW 00 HOUR: DB 0 MIN: DB 0 TOOMANY: DB 7,CR,LF,'[You''ve called too many times today !]',CR,LF,0 ; ;.............................................................................. ; >>> end of insert <<< ;.............................................................................. ; mfix2xx.ins ;..............................................................................  MOV A,M ;get 1st CALL BCDBIN ;convert BCD to binary RET ;return to sender, result in A ; ;................................ ; KILLER: ;exceeded maximum number of calls for the day LXI H,TOOMANY ;tell them they have called to many times cA(ۖCЗPVZU54bw5?,3q\fЇ1[L#SAE'8^E vtX-oww2#'Abb .v̈r8r=g C~}Q D921؊rPVaǿ=ZCSOMk"1c) 592Nq<(l59YZ'(i\],\ (ZU;krkr_bjMƷX)/T GgM?[qUct8 )v +>+QxDq\+hcJtShGkɪa=QV0a=)= (l nD92EXCe__T5UtXfcݱGњe@:0DAByoiybk(h?ZCYEl|8[CCU254T-q[CCU25UԏXCYuQ'uX)/ hEҞ=UӸ̈r8r=g eq|#Xw1OѿXCSO]h!1V]CaE,xg)dl8:kh*ƏD9Y dl8:hnc5Y5wwUw_w?|} Aޡ[-WZ:tz=N)YCf__TD9}VKvm zE>[c ɚZ'F8VWl59YZ'(i\],\ Dr(wk wƷTɱ% |59Z^ |ŏ tʣcGk鎦TM2#ʱhEҞшxX#ai;^5U4Kj6|#l fgAJg f54 pfi eHc\107c>?Mc8#+N Qxxg54bI("^2 54T-qXt/mFٸ̬h]/̈r,%c})=UӸ̈r̸UtH3qP?d@#AЩYCYEev)Ǻc:zZfbG QQ}`})T77KkjXOﬡŎ3#IA\Y!;k(̎` O=-3kh6(njtkh7OtteL%[cM;,s[CYC5ѡGk*krd::~Fڣƚj92;54*k*krd::~ 5 ]ui U` ;ui -= *:,8XCSOMkk1+ULVKvA+6.C%{;ekr}Q wU&ʑ _kRJ/D92sSW{*kÌ\_TD92sSW{*kٯ/ᎲD92sS0hU D92sS0J0"ʑ ko=hU X/Ꮂ럼?rd:)Z[h_U)XӇekh7O蕿d'ȔTrokPqW1aX59fnq kr}>~m59&/nsG-}[>>ϵ`eL%__TGkrj·Ao=xyWd\_TGkrj·)D!+7P5y<ׂ1CD{[<ŷ"J+I}}˷ Iɉz[,{BSʦq:?aP譖p&'ZfCQ8D9ưg7Z[cR:G b(U[|#X ;Ašܚ ? %0c^"׵nz%@{RRɭqR58oQvzx?aD{~Dݳr;BoDe8[krs WP0.c*933Z/ #ɉ:.̬j<,5t>̬a<,5t>̬xXfGkhzO4.3T2ef }Qr|PڣUhUX__TwU4Qɋ۠VZ0C{ PVQ5U(<|<ׂ+ hjƚ/K&AzkrG5޿'@{$p CRmL([C-33n%;\T22_h ʱ`(C40=*krjR*r)8kEpGYE88+tͻ\T2G5-3k(gCu~OcR6poQ+B_ꂃ5o(ǂvAEu[khwXpCc/rW{ʳ5nɱV TVKvA+Tc59X:UEaRRP譖$//r[`mTcMB_c\T2Hpoo; T)M)(VhMJ4{[r ) Q :زvʚ?*h-TBo|U|{ N-taHWqe. D&G3 2B->apSbmSzh5zwGeT?D9*} (lY[-Ō_r_°gѹ޿'@{1%v>P&ʱx t :%c8VA[k1By2Q8 CҔTc5掲8D9[-A[k|iؗA[4⬱&[_TbG Qk$/VPkÌN/o(GT]#5lZQKzQ 8+cz%Gt8o ;\p5(*6mLcm.fcN W YCffD9NjVAT)M)HJ5X/(̎@c!1B-j5t>̈rU N-qPEQ7PPkCDž5aF(ǺcB1 vd -uFO:RʀE4 f9XcMuǨUJJ-ܔQT)3t@[:^eC:ɩqj ʧ DЗ`$ ^qoPpW1U(7"[_T[krZweQJ .ЪTE+KƜ٣U{[kr:< AFԎW%kr\ *}VFr~#||Fؚ[ q̅5A{# } a8V2r8 ePpþPmL ehMK%sQM 2qUԾ`1XcM^?}.f4yceÀߡ?ZӇތl@9/KJ9twk XS?wU4Qo=ϵЗ`_@{T2.f4ؗcJ(6x s-3kÌތ/D90"0i (D$%Gk3rC~T*r B_ꂭ:Q{M?*hZ #cp;kM署eFiG^=iDRW=5TO D9}<ׂB_}1,30ӛ:r,^t]r Wk XS?rGYEø$\ } 2D9)G^0g$Ek YCfԏr|aDx aSB/u@h9Zc @O:Rf/XS?rpGYE+ AJ/Ws-(.0(E7B_ꂑj&ΟwbFQs-(.5ᎲcFF9\ bJ*܎h?Nׂk PVQ6XmFƏJ%J9v*ڏr,X*VZPK]5XF/uHJ58\FSIeN}ʹk;ٸ̈rTRa#ða#,(Ǣӵ@oWQZÌ: qXw:3\@A } }=NՓ5Ѿv;&khwef ͦ5Ȫ qe+ZyLQƚ:hwXpc5Yu=QV0*:Tqef O=U5TM={k(hŌzkÎNoƬ:v;nٴƚZsXzG՞||E&q81f:Uk==^Y8WNjo>ZC՞HcZ9쫋~ژTWkSu=MU{zw?~%;(No;vpR;.WkN;xRvXJjixf;8z[2 ӗZ'+~_؝쎪=={%/]KF?<쎪==eL@tm/NZU՚e5f;et^@tm/Ncn|#^tpohͲ-Q_q|ff;xmípTN_2jq|tqswT񤰊voQćp%?\_Ƥ DvQ(՚P]T;x1N_j0wTqpm/7:1ţ5ì? OwTMifjiqG՞/JiJA%[j5-#~o[_//|P~6f7PǵGqΧ 2jkh7Oz^gTEXrqXk1O@%" 8ʋRp_<։'|ƚ|ZPv>e#A"iϘuZXGkjA;;.$/8/95G3RtJP>mnh=Zcb_6BI~ QSf}sΦU zGk%1։Z ktjAZIL(}V|#YWwwT-QĄPyRKf8ZD9VZj`Mv>;@#ӞѪ jPĐMêk랦ϯg(GJ/P5QhGg5zQwD9ξ)١Q ;k}U z Qjh1O}AП0jt֬OtGՂr9(ΣVN WwT-77~(E)M)ub{kMjAD9ξ)N~o5U7(ǡ/c/i2hEu,C 5,~k;}ɨubt vu֚OU z ʱX%W8QWqːMGkNtGՂ!q+Fu,VGhfjAժqo5հZ;(ZyQؚijArh!z#oڤ[/P5JߪU8.Pd鎪}Oڷj8 7KvA+_hͲ-oh~fʱXCП0#q5.<k78]5䨢DWhĕh2E[c2[ QwD9٣5մ>jArTӣ5~1|zGՂ 7;(phb#q~o5ө:Xc4=5(ǓXJ ^i+:1T)M)Gkp?YQ+Z'*)S-ʧ5/~FBԎ;k7=E)M)uA4qoU z ʁRR0/^iAl5Q)+P`?*ΚwT-(zU0ZUzAZW7X?çwT-(ZBdʡuo;.}S5zqGՂr`*V+}qRf;(I݂8ڣuo;.iybkɱu.VN UJS59CJP5c*%u2&n9&\.f8TuI9-cJ_Dƚ~֯U zW?yGHJ $yeL%5onh~F㢔˺FG%'\uo;.~Ycz6M4}~M?#Qq njZ9̟pZ'֬gӴxC~=Qû0*8_,>kZϦ4-PRR0/j~T2j8Xc 9ƚzkQ88OZ9mj8XXohW?(|# 45뛛~F״X?_g7㢔˺fZ9xb֕@k_6GʀCT*luo;.Pxg5rM״gD9"$V] ZU0.j֚bxC믿;ûFiGk77{>br\4`^5;AZWNƚ.c@LiDK5th?ݟO FT!hΧQ^ z1|j e arܳ K.8d̵k|i -08JUN86 OZZIE-1 NOTUSER ASM<ZCMD26 AQMo ; * ; If you boot your Ozzie-1 with ZCMD2 from the floppy disk, * ; set OZFLOP to YES and insert the following software patch. * ; * ; * ; IF OZFLOP * ; JMP BYPASS * ; BOOTJMP: * ; ORG 0CE5CH * ; JMP CPR * ; BYPASS: * ; NOP * ; ENDIF * ; * ; This patch must be entered into the program such that the label * ; BOOTJMP: is located at the program address 0CE5CH within ZCMD2. * ; * ; To do this, follow the procedure below. * ; * ; Set the equate OZFLOP to YES. The remaining equate options for * ; ZCMD2 may be set the way you wish, be sure the MAKESPR equate is * ; set to NO. ZCMD2 must not be larger than 800h bytes in size. * ; You will receive an error message if too many equates are set. * ; Do not insert the software jump patch at this time. * ; With your assembler, create a ZCMD2 PRN listing. You will receive * ; an error message for the label BOOTJMP: which can be ignored for * ; this assembly. Use your text editor to view that portion of the * ; PRN listing which is located near the program address 0CE5CH. * ; This is the area where the patch will need to be installed. * ; You will then need to edit the ZCMD2 ASM file again and insert the * ; jump patch such that the BOOTJMP: label will be at program address * ; 0CE5CH when ZCMD2 is assembled again. * ; You may have to include several NOPs before the patch. This is * ; dependent on the ZCMD2 code where the patch is inserted. ' * ; The location of the patch in the ZCMD2 file will vary depending on * ; your equate selections. If you later on change your equate * ; options, you will again have to change the location of the * ; jump patch. * ; * ; If you do NOT cold boot the Ozzie-1 with ZCMD2 on the floppy disk * ; system tracks and will be using the relocating code generated by * ; setting MAKESPR to YES, then you must set OZFLOP to NO and Do NOT * ; insert the above software patch. The Neurahn system is an example * ; of the MAKSPR method. * ; USER.ASM ; ; This file when named to USER.COM will display a short message ; telling the user how to change drive/user areas with ZCMD22. < wm > ; ; ORG 0100H CR EQU 0DH LF EQU 0AH ; ; LXI H,0 DAD SP SHLD STACK LXI SP,STACK ; MVI C,9 LXI D,MSG1 CALL 5 ; XRA A LHLD STACK SPHL RET ;..... ; ; MSG1: DB CR,LF DB CR,LF,' To log into a new user area, type: ',CR,LF DB 'n: Example, to log from A0 to A1, type:',CR,LF,CR,LF DB 'A0>1: (you just type 1:',CR,LF DB CR,LF,' To log into a new drive, type: ',CR,LF DB 'd: (where d is a valid disk drive',CR,LF DB CR,LF, 'You may combine drive/user changes in one command,' DB ' for example',CR,LF DB CR,LF,'A0>F2: will log into drive F user 2' DB ' from A0',CR,LF,CR,LF,'$' ;..... ; ; DS 20 STACK: DS 0 ; END vZCMD26.ASMc  !"#$%&'()*+,-./0123456789:;<=>o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abJ^xxǿ;~B/ .c/>TIB;w\~/?(i?(i||x˗Ǜ7ĭ3r=Gڣ̗ ?(i?(ixWѸI` & O/^/ p _1! 񌫿/rl `~PbQ?6+rD5$#Gh` >0jNs/AIsd'x Bc'="x39=)#b/AI=[lPq8tx}:C{lBڧx}­ID?(iƄ#B?sz #6Z&$ވvC6W?(iaG!$AwA!\*|#x7xgqWLD]~Y}jB)gs&v%-?&BhWNRxi-"K6 wZxCs_Iy!O0b0Upb`b`8_uߔ_%-Fփ5IWvb`,Ǧ|8cQ?rl /Pb] ]8v`#tB{_Nkq|#IDJZAG<3v'v޸q>5b@&x}|AIأ)GlB O Ia:6^c#p~Pb׻1w[hb`qW1hai_AI<_Bh4cd9@hᴯB|6^Wqijo|$.oIxh<#pqüna~PB A1Q N< S1 ?A /AILW;p t10GЅ`  F6zXW?(iY.(G@Q{#N"$IFx7DxxXSNNQg\=/3102dF xb`r.狉}Dp)Xߟ70xJZ0ü0F#$ b`\r^W?(i/d1[_1F.c2>>%oq 10^~#!F "4}wrqQ1Fxi)3XmES?sB{#A@C||vtbƣHfsBj e`DԸ E(ٜ_EB8|n[#?(i%:{qQ$B#[faR7I8EО!/x]m r F;$ѷ!I%:{0Ch$8=P_C}ڃ?j Z 7h[$HM$10>JZum*~OڽS\C}3n88#*F A %-) nsI0Lvgh10&"$KLe~PB~\ϋ 13R0$ R7I8kSv˯~P1_צ _OQpuG$j$ѷ՘I/#11F.8ޅ(}dDG~PB & Fϸ5bQ`Ň b]ī i-^n$ v,{!88-.7Ǜ/^/ p _1! w D8ޅ $|JZD>+'HO.T& Ir.DN20'؝# xpAI/7u~|ͱ)a\)gKDa>q qnP.BJZT-K&3 /^/oq;4|\;wb+pFhv&1 ;qB=#o99c3!U0/PҢNLW̄cdhnWxxX͸KL.ӣN!4 Ϝ #C &bŇ xJZ83]U3lFё P2]U3 #LAI%#f+؝ FŠɆSڹ3í7¸ ~P?~PrU*i~ye:+v"[,?"b`$F0b`#) ȂÎQѥ0b`:IqT!w