25MENUvj V_CI COCSTSIOCHKIODEFIOSETLO PORI&UI)UO,UPPS@ISIS2STARTINTREXECUTE1EXECUTE2GETMENUq SWITCH GETFNAMEQGETPARM MSGFILLIN MSGOPTIONSMSGFILEORRETURNMSGCLRAFTERFNAMEGMSGCLFTVMSGCRGTiMSGCRGT1x MSGSEGMENTS MSGSEGMENT' MSGADDRESS MSGBEWAREMSGCONVENTIONS. MSGNOTEXISTSPECOMP1]ECOMP2cECOMP3oECOMP4uECOMP5|ECOMP6ECOMP7ECOMP8MENUEXITEXZERO EXONE MENUTREEROOTMENUTREEFILEHANDLINGMENUTREEFILELISTING`MENUTREELANGUAGETRANSLATIONMENUTREE8085LANGUAGEMENUTREE8086LANGUAGE2MENUTREE2920LANGUAGEMENUTREEOBJECTFILEHANDLINGMENUTREE8085OBJECT MENUTREE8086OBJECT!MENUTREEHEXOBJECT!MENUTREEEMULATION"MENUTREECOMMUNICATION2$MENUTREESYSTEMMANAGEMENT$ MENUTREEHELP(%EXCOPYLP&EXPR)EXATTRIB>,EXCOPY-EXRENAME 0EXDIR2EXDELETE4EXCREDIT4EXLIST4EXLAST5EXPR703B6EXASM80^6EXPLM80z6EXFORT80_7EXLINK:EXLOCATEg>EXOBJHEX?EXHEXOBJAEXASM86AEXPLM86 BEXPASC86)BEXFORT86BEXLINK86hEEXLOC86~IEXCONV86JEXOH86KEXAS2920KEXSM2920 LEXSPAS20LEXHDBACKYEXHELP1YEXHELP2ZEXTABSPC\EXIDISK_EXFORMAT]aEXDCOPYbEXEXMONbEXHDCOPYFfEXFIXMAPFgEXVERSgEXICE86gEXICE85gEXNOVAgEXBAUDpnEXLIBnEXLIB86nEXXMTnEXUPMmqERRORMSG$rMSGOUTvr CHECKSTATUSrRDCONSOLr DELIMITERHsAPPENDSs FIRSTPARMtALPHA uUPPER1uATTRIBPuCLOSEcuCONSOL}uDELETEuEXITuLOADuMEMCKuOPENuREADvRENAME+vRESCAN>vSEEKbvWHOCON{vWRITEvERRORv@P0011v@P0012v@P0013v@P0014v@P0015v@P0016v@P0017v@P0034v@P0035v@P0098v@P0099v@P0100v@P0101v@P0102v@P0103v@P0104 CONSOLLINEMYNAMEzMTITLE MEMORY TITLE[^ ISIS-II MENU PROGRAM V1.0 Written by Dror Caspi and Ilan Shpilinger, spring 1982 MAIN MEMORY` CONSOLLINE CONSOLLINEIMYNAMECOMLINECOMLINEI COMLINETYPESTATEXECPZMSG1START o Z Q/ZE********************************************************************************* Signal Processing Laboratory ** ISIS-II MENU PROGRAM, V1.0 Technion I.I.T , Haifa ** Israel 198l2 *********************************************************************************r  (.4@ILMSTbcijr{11+v*DMvr͔rs!6:ŒZ$r!">vL"4!b*@:{ͫÉ:‰ͅ Qmq͐uv$-&)>J[pyDv ,:A3$' !27GUX_ks|$MINTRZ MEMORY INTR 0Öh$1"7#$%&'> $0 MEXECUTE1K MEMORYEXECUTE1COMLINEP0CIBUFF~0CIIpISTATENTRY-m:rstuvwxy z9{@|L}R~UW!p+q!"* *~ *##vH*#"÷*"~0*##^#V* DM0 +|$r* DM$r* ͟u*Mmq> vR.$r͐u$ JM7>FPS$%$14:Ci MEXECUTE2J MEMORYEXECUTE2 JCOMLINEPAFTNSTATACTUALENTRYICINAMECONAMEVCOMP1bCOMP2PVCONSOL  b ni-Zk:F1:MENU.CON ,x:F1:MENU.CON nuvwxyz{|}~ *5CCNYdj";BNTailp!p+qi$rbv!"!"*  ~ vH*#"æbv!"!"*  ~ vH*#"::C*##>Ͷv"*DMHs*##*s#r*DMVHs*DMHs*DMbHs!"* *~ *##vHҚ*#"jku*DMvr** *##N#F{v*DMvr*DMPu*DMvrxcu*DMvr* *u*DMvr* ͟u*Mmq> vT.$rcu*DMvr͐uo$W I_LO%3LWb 9@HR_gj$ (+6<DOTZhks} &36<EUY\b0 MGETMENU| MEMORY GETMENU MENUTREEPTYPECHAR"mMSG1MSG2MSG3MSG4/mJDIRECTINS: 1. Read the menu choices listed below. 2. Type the number of section you want. Type 'P' to get the previous menu, Type 'B' to get the main menu. -------------------------------------------------------------------------------- -----------R--------------------------------------------------------------------- KPlease type here :  KKKKKKK Jjan%s+t0uLvUw[xayz{|}~!'+u!p+qm$r!6:>vH!*N#F$r$r2*M uB*M uPH:1/* ~0!/HHڮ 2a*M *M uB!6!"*M uP!6*##^#V":0=O! *~2! *^#V"$r0$r*ɂ$/&JV")?SYfs%$7 ,1<M_bo ( MSWITCH MEMORY q SWITCHYESNOPMSGP +MSG1KJICHAROK/+J DIRECTIONS: 1. Read the choices listed below. 2. Type RETURN for default option, 'Y' for YES, 'N' for NO. 3. Type 'D' if you want all options unchanged. -------------------------------------------------------------------------- V ------] u` b jd  sg  pj vl tn dq l { r s t u v w x y z { | } ~    ( - 1 ; A F I I L R c i p u x  ' 0 < A F F I M P Z ` d g m q !r+s+p+q+$r!6+6+6*:L *&*~ ʽ *&*N !4#4Ö  :2>D! . !4  *& *~ N *& *~ Y *& *~-  !4*:I ] $r!6#44Ì ` $r!6*~=!p b $r!4W !6#6*M uD*:HP !6:I 2!6*M uY *& *6*M d $rF *M uN *& *6*M g $rF : *& *~H0 j $rF *M uDF !6 Ù !4x *:g l $r!4P n $r$a| & 9 < J M a d n  % ( . : G N X [ e h  ? P g } + 5 ^ k t$kr    . 2 5 B S X ] j q y   1 = J Q T a  MGETFNAMEH MEMORY GETFNAMEuNAMEPTYPEWILDCARDNULLNAMEEXTPNTSTATELAST5LAST7LEN5LEN7ICHARDISKTn DELETEr CLRNAMEADD CHARRUB CMPDEVICE)CHAR0CHAR1NUMFOUNDIS= DEVICES S0 S1 S2 S3= S4 S5eS6S7n  Hr U, TITRVIHRCIBBR1R2I1TOTPVOHPLPCOBBP1P2L1O1 lq !s+q+q+q+p+qդ$ stuv21!q*##͹v*:w*##N#F+q#p*M $)$wxyz*##N#F +q#pn $r$${(08RW\\add/4DIIM!s+q+q!6::Hd!6::Hd*& *M u\:8!6\*&  *M u\!6!6!44:/::HH!6::H*&  *M u:!6*&  *M u!6!6!44É:I*M uF4:!64:0/>9!/H4!6:!I!6:ɘ$=&.6BPb-B!K$W)19GSX]ejs #05=EJ>     $ ) , < D S Z ` e j z       & - 2 5 : = = E H M P t |              !BIMUZ]beemp u!x"#$&'()*+,-./023456789:%<,=0>8?=@@AEBHCXD[EoFtG{HI *>w#6*##>w#6!6!6#6!6#6:[2*M!H ^#V::, *M͎r $r!6Ï : !D !6Ï *M*ͭtҊ *M͎r $r!6!6:*!҂ !6Ç !6Ï  X:¥ ͻ!6 * *M͎!6  X: ͻ!6 * N*M *M͎!6  X: ͻ!6: ::5 *M͎!6:  X:P ͻ!6ý : :/:!HH| !6ý *M*ͭt!Ҹ *M͎!6!6:*° !6õ !6ý  X: ͻ!5!6: *##>v !6 !6b: !6b:.!*M͎!6b::/H*M*ͭtH]*M͎!4:*Z!6b X:xͻ!6: !Ґ!6*M*ͭt*M͎!6!6:*!6!6 X:ͻ!5!6:!6E: !6E::/H*M*ͭtH@*M͎!4:*=!6E X = e !6*##:v{ !4`*##͹v*6i$     * : B Q X [ x     $ + 3 ; C F N r z @GS[cknv#*6>FHJLNPRTVYmy" M ^ 9j$   % - 5 = E I T a f k s {   ' . > I Q Z _ g u }  ")15CJNVfqy &-19\agu|A MGETPARM MEMORY QGETPARMgPARMPALLICHAR MDELETEM cQl#jYqdrjs|tuvwxyz|}~%,@MPU[^pDQ!s+p+q*##>w#62!6*:vڈ !4o!6*:vڦ !4: *##*vH^:*##>vHM$r*##N#F +q#pU: /!>~!/H:/*MͭtHHP*M *##͹v*:w*##N#F+q#pU 2æ*##͹v*6!6*##:vڐ !4u$/z#N\w5g$GRZhkpt&-9=AY_kqv|\ MESSAGES MEMORY MSGFILLIN MSGOPTIONSMSGFILEORRETURNMSGCLRAFTERFNAMEGMSGCLFTVMSGCRGTiMSGCRGT1x MSGSEGMENTS MSGSEGMENT' MSGADDRESS MSGBEWAREMSGCONVENTIONS. MSGNOTEXISTSJDIRECTIONS: 1. Fill in the blank spaces with missing parameters. 2. After each parameter, type RETURN. 3. If you want to return to the first menu, press INTERRUPT 6. --------------------------------------------------------------------------------  Special options (y/n) ? 8.............. ( Type RETURN if no more files ) V fGViQ[x SEGMENT NAMES AND ADDRESSES, IN ORDER ------------------------------------- \SEGMENT ............................... ( Type RETURN if no more segments ) P^'ADDRESS .............. ( Type RETURN if immidiately after previous segment )p BEWARE !!! All files currently on output disk will be deleted. Do you want to continue (y/n) ? 8/ | NOTATION : APPERCASE - Entered as shown | | lowercase - Variable parameter | | [ ] - Option | | ... - May be repeated |&. Program is not available. MCOMPh MEMORYRPECOMP1]ECOMP2cECOMP3oECOMP4uECOMP5|ECOMP6ECOMP7ECOMP8P &  ](Qc PRINT( o)> u G |,.  TO h FROM  MMENUEXIT  MEMORYMENUEXITMSG1'E MENU PROGRAM, EXIT TO ISIS-II s$r@͐uɝ$ K MEXZERO MEMORY EXZERO#COMLINEPCOMTYPEP COMPPFElopqrs|8! r+s+p+q+p+q*##>w#6*DM* Hs$r*6N$ $ MEXONE MEMORY  EXONE:5 COMLINEPCOMTYPEPCOMP1PMSG1PNAME. COMP2b' CONSOLLINEI)I   Eq q\."x(y0z6{A|M}^~itzx !r+s+p+q+p+q+p+q$r*DM$rG$r* ##>w#6* *Hs͵ * DMHs* DMHs $r*6,$ou#1\&.4Kgrx$ )7BFN_dj{ MMENUTREEROOT MEMORYMSGROOT MENUTREEROOT MENU CHOICES : 1. General file handling 5. Communication 2. Language translation 6. System management 3. Object file handling 7. Help 4. Emulation / Simulation 8. Exit to ISIS-II operating system T!`!"2$$J$qMMENUFILEHANDLING MEMORY-MSGFILEHANDLINGMENUTREEFILEHANDLINGFILE HANDLING : 1. Edit ( create / modify ) a file 5. Display / change file attributes 2. Copy files 6. Display disk directory ( file names )3. Delete files 7. List / print a file 4. Change file names !4>,2-) 0a$MMENUFILELISTING MEMORY+MSGFILELISTINGMENUTREEFILELISTING FILE LISTING / PRINTING : 1. List a file on console 4. Print ( printer connected as :LP: ) 2. List the last lines of a file 5. Format for printing ( with paging ) 3. Print ( Centronics-703 printer ) 6. Format ( without paging ) !445(%&Z8$_MMENULANGUAGETRANSLATION MEMORY;MSGLANGUAGETRANSLATION`MENUTREELANGUAGETRANSLATIONvcLANGUAGE TRANSLATION - PROCESSOR TYPES : 1. 8080 / 8085 2. 8086 / 8087 / 8088 3. 2920 ?!`2n$ `bmoq0MMENU8085LANGUAGE1 MEMORY-}MSG8085LANGUAGEMENUTREE8085LANGUAGEj}8080 / 8085 LANGUAGE TRANSLATION : 1. Assembly language ( ASM-80 ) 2. PL/M-80 3. FORTRAN-80 e!}`B6^6z6$ MMENU8086LANGUAGE0 MEMORY-MSG8086LANGUAGEMENUTREE8086LANGUAGE(8086 / 8087 / 8088 LANGUAGE TRANSLATION : 1. Assembly language ( ASM-86 ) 4. Pascal-86 2. PL/M-86 5. Convert ASM-80 to ASM-86 3. FORTRAN-86 A!`AA)B B~I$MMENU2920LANGUAGE9 MEMORY-MSG2920LANGUAGE2MENUTREE2920LANGUAGE^2920 LANGUAGE TRANSLATION : 1. Assembly language ( ASM-2920 ) 2. 2920 Compiler !2`K L$ 24?AoMMENUOBJECTFILEHANDLING" MEMORY9OMSGOBJECTFILEHANDLINGMENUTREEOBJECTFILEHANDLINGOOBJECT FILE HANDLING - PROCESSOR TYPES : 1. 8080 / 8085 2. 8086 / 8087 / 8088 3. 2920 ( eprom programming only ) 4. Hex - Object file handling !O n!z$oMMENU8085OBJECT MEMORY) MSG8085OBJECTMENUTREE8085OBJECT8080 / 8085 OBJECT FILE HANDLING : 1. Link object files 4. Convert an object file to hex 2. Locate an object file 5. Convert a hex file to object 3. Library management 6. Program an eprom !_7:png>?nC$    yMMENU8086OBJECT MEMORY) MSG8086OBJECT MENUTREE8086OBJECT 8086 / 8087 / 8088 OBJECT FILE HANDLING : 1. Link object files 4. Convert an object file to hex 2. Locate an object file 5. Program an eprom 3. Library management !  BhEnJnj$ ! ! ! !!MMENUHEXOBJECT MEMORY'! MSGHEXOBJECT!MENUTREEHEXOBJECTBw!HEX OBJECT FILE HANDLING : 1. Program an eprom 2. Convert a hex file to 8085 object I!!!n?$ !!!!MMENUEMULATION MEMORY'! MSGEMULATION!MENUTREEEMULATION%P!EMULATION / SIMULATION - PROCESSOR TYPES : 1. 8085 2. 8086 3. 2920 !!!ggK$ !!"""5MMENUCOMMUNICATIONr MEMORY/"MSGCOMMUNICATION"MENUTREECOMMUNICATION^"COMMUNICATION : 1. NOVA terminal simulation and file transfer 2. General - purpose terminal simulation and file transfer ( XMT ) 3. General - purpose terminal simulation and file transfer ( EXMON ) 4. Set baud rate !""gnbg$""""##MMENUSYSTEMMANAGEMENT MEMORY5 #MSGSYSTEMMANAGEMENT2$MENUTREESYSTEMMANAGEMENT8* #SYSTEM MANAGEMANT : 1. Format a system / non-system disk 5. Back-up a hard disk on floppy disks 2. Format a new disk and copy files 6. Map bad sectors on hard disk 3. Copy a whole floppy disk to another 7. Display program version number 4. Copy a whole hard disk to another !2$ #\_]abLFfFgw$2$4$?$A$C$E$G$I$K$6 MMENUHELP1 MEMORYO$MSGHELP$ MENUTREEHELP6O$HELP : 1. File names 2. File attributes !$O$YY$ $$$$ MEXCOPYLP MEMORY(%EXCOPYLP"*COMLINEP,COMTYPEP.NAME:$COMP1$COMP2~A CONSOLLINEICI$MSG1%MSG2$COPYLP "$ TO :LP: S$ --- PRINT A FILE ON :LP: --- FILE NAME ..............!%DDDDDDDDDDDDDDy%%EH(%p4.2%z8%{>%|D%}O%~Z%k%v%%%%i(%!-r+s+p+q$r$$r%$r**##>w#6**DM$Hs.͵ **DM.Hs**DM$Hs%%$r*,6u$9%?%U%|%%3%6%<%B%X%i%t%%%$)%E%P%[%l%q%w%%MEXPRX MEMORY &EXPR*DCOMLINEPFCOMTYPEPHNAME[CHARb/%COMP1%COMP2%COMP3%COMP4%COMP5n CONSOLLINEIpIZ%MSG1(&MSG3&MSG4 %PR s % -L % -T %55 %8 y% --- FORMAT A FILE FOR PRINTING (WITH PAGING) --- INPUT FILE OUTPUT FILE .............. .............. p(& LINES/PAGE COLUMNS/TAB 55 8 (Type RETURN for default values)  &55&E&v&&&&&&&&&' '''&'4'?'E'E'K'V'\'b'j'v''''''''''';&!Gr+s+p+q$r%$r*D##>w#6*DDM%HsH͵ *DDMHHs*DDM%HsV$rH͵ (&$r!"[[Q>]v4'*DDM[HsE'*DDM%Hs&$rV$r*DDM%Hs!"[!"][Q>]vʦ'*[ [ 6 *]#`is#r#s#r! 6*DDM[Hsñ'*DDM%Hs*DDMHHs*DDMuHs&$r*F6+$S&&&'$'2':'@'Q't''''&&&&&&&&&' '' '/'='C'F'I'T'h'p'''''''$=&&&&&&&&''''','5'L'Z'`'e'm'w'~''''''''' MEXATTRIB, MEMORY)EXATTRIB"qCOMLINEPsCOMTYPEPuNAMEe'SWITCHESs YESNO(COMP1'(COMP3{ CONSOLLINEII.(MSG1(MSG2(MSG4L' I0 I1 W0 W1 F0 F1 S0 S1 Q (ATTRIB  '( c.( --- CHANGE/DISPLAY FILE ATTRIBUTES--- FILE NAME ..............!(DDDDDDDDDDDDDD(Invisible file : OFF Invisible file : ON Write protect : OFF Write protect : ON Format file : OFF Format file : ON System file : OFF System file : ON Query ( ask for o.k. ) before each change )K )E)tb)))))))))))****!*!*1*D*Y*`*k*q*v*;)!tr+s+p+q!6 !6>!ڼ)*&  6!4)$r.($r($r*q##>w#6*qDM(Hsu͵ *qDMuHs$rO uY!*)$r(q !6:=!`**&  ~Y**q*&)))' Hs!4&**qDM'(Hs)$r*s6n$=)))))***/*B*Q*^*f*l*)))))))** ***W*i*o*$1))))))))))))*"*'*+*2*;*E*I*Z*a*r*Q MEXCOPY MEMORY >,EXCOPY"COMLINEPCOMTYPEPNAMEw*SWITCHES YESNO*COMP1*COMP2*COMP3  CONSOLLINEII*MSG1+MSG2A+MSG45w* Q B P C S N U *COPY  * TO % * ^* --- COPY FILES --- FROM TO .............. .............. )+CCCCCCCCCCCCCCCCCCA+Query ( ask for o.k. ) before each copy Delete the file before copying to it Pause to change disks before copying Copy files with their attributes also Copy system files only Copy non-system files only Update ( do NOT re-write ) the file 7,K ;,E+>,tnH,M,[,j,q,w,},,,,,,,,,,,,,, - -8-?-J-P-U->,!r+s+p+q!6!6>!q,*&  6!4R,$r*$r*##>w#6*DM*Hs͵ *DMHs*DM*Hs+$r͵ *DMHs$rO uY,7,$rA+q !6:=!?-*&  ~8-**&vw* Hs!4-*DM*Hs;,$r*6ɸ$GY,o,x,,,,,,, --0-=-E-K-r,u,{,,,,,,,,,,,,,--6-H-N-$9?,I,N,U,\,e,k,~,,,,,,,,,,,----!-(-9-@-Q-^ MEXRENAME: MEMORY-EXRENAME_"COMLINEPCOMTYPEPNAMEV-COMP1b-COMP2k-COMP3 CONSOLLINEIIr-MSG1-MSG2V-RENAME  b- TO r k- ;`r- --- CHANGE FILE NAME--- FROM TO .............. .............. )-CCCCCCCCCCCCCCCCCC9-Er-p^:.{.| .}.~".3.>.I.O.`.k.v.|..-!r+s+p+q$rr-$r*##>w#6*DMV-Hs͵ *DMHs*DMb-Hs-$r͵ *DMHs*DMk-Hs-$r*6$'..D.J.q.w... . .1.<.G.M.^.i.t.z.$- ..#.4.9.?.P.a.f.l.}.MEXDIR MEMORY  0EXDIR%*COMLINEPCOMTYPEPNAMECHAR..SWITCHES YESNO[.COMP1.COMP2.COMP3  CONSOLLINEIIN2.MSG1.MSG2.MSG3/MSG4/MSG5/MSG6'. I F P O Z .DIR  .FOR  . ). --- DISPLAY DISK DIRECTORY --- . ENTER DISK NUMBER : !.DDDDDDDDDDDDDD|/List invisible files List only name.ext of files Pause to change disks before listing Single column display Show only number of sectors in use -/ FILE NAME ..............+/ Display whole disk directory (y/n)? /K Q0K L0  0EY 0tA00!0'0,02080C0N0T0Z0`0l0r0x0000000000000000001 1111+111<1G1G1L1Z1i1p1y111111111 0!r+s+p+q!"!6!"!6$r.$r*##>w#6*DM.Hs$r2/$r*M uYʮ0.$r2:0>9!Hқ0 2x0 *DMHsû1/$r20$r*M uY1.$r2:0>9!H0 20 *DMHsG1/$r.$r͵ 0$r*DM.Hs*DMHs!6!6>!p1*&  6!4Q1/q !6:=!ڻ1*&  ~´1**&v. Hs!4~1*DM.Hs 0$r*6+$o30I0[0j0m0000000000 111,171X1n1q1111111-00060L0O0R0^0e0p000000 111)1/1:1E1w11111)$[ 000%0(090D0X0a0v0y0000000000011121=1B1H1M1T1[1d1j1t1z1111111111 MEXDELETE? MEMORY2EXDELETE"COMLINEPCOMTYPEPNAME1COMP11COMP21COMP3vI1MSG12MSG2Z2MSG31DELETE  1 Qj 1 Pd-1 --- DELETE FILES --- FILE NAMES I2 Query ( ask for o.k. ) before deleting ( y/n ) ? 9Z2 Pause to change disks before deleting ( y/n ) ? 2Y 2N 2E2tz2222222222 3333%313<3B3E3K3V3V3Y3f3l3x333332!r+s+p+q$r1$r*##>w#6*DM1Hs!6!">!v:HY3$r͵ >!vV3!4*DMHs$r2$rO uYE3*DM1Hs2$rK32$r*DM|Hs2*##N#F +q#pZ2$rO uYƒ3*DM1Hs*DMuHs2$r*6$S2223 3/373=3C3F3W3g3v3~33222222223333#3*3:3@3I3Q3T3j3q33333>$'222222223 33323L3Z3y333KMEXFLH MEMORY4EXCREDITCOMLINEPCOMTYPEP3COMP13MSG14EXLISTCOMLINEPCOMTYPEP3COMP13MSG14EXLAST COMLINEPCOMTYPEP24COMP1<4MSG15EXPR703\COMLINEPCOMTYPEP~4COMP14MSG13CREDIT 3N3 --- EDIT FILE --- SOURCE FILE ..............3LIST b<3 --- LIST FILE --- ..............24LAST 'F<4 --- DISPLAY LAST LINES OF FILE --- ..............~4PR703 .4 PRINT FILE ..............4r 4v4w  4!r+s+p+q**33 ɶ$ 444$ 4444xv 4|4} 4!r+s+p+q**33 $ 444$ 4444~T 45 4!r+s+p+q**<424 6$ 455.$ 444V51 5"5? 5!r+s+p+q**4~4 t$ 55 5$ 555 MEXLT80 MEMORY B6EXASM80{COMLINEP!COMTYPEP#5COMP1.5MSG1^6EXPLM80 #COMLINEP%COMTYPEP}5COMP15MSG1z6EXFORT80'COMLINEP)COMTYPEP5COMP15MSG1+#5ASM80 S.5 --- 8080/8085 ASSEMBLER --- SOURCE FILE ..............}5PLM80 X5 --- 8080/8085 PLM COMPILER --- SOURCE FILE ..............5FORT80 ^5 --- 8080/8085 FORTRAN COMPILER --- SOURCE FILE ..............B6r L6v]6w B6!"r+s+p+q**!.5#5 $ U6X6[6%$ C6M6Q6K^6x h6|y6} ^6!&r+s+p+q*#*%5}5 $ q6t6w6$ _6i6m6z6~ 66c z6!*r+s+p+q*'*)55 $ 666}$ {666 MEXLINK MEMORY _7EXLINKz"+COMLINEP-COMTYPEP/NAME46COMP16COMP2lBIS6MSG16MSG2 7MSG376LINK 6 MAP PRINT(&<6 --- LINK 8080 / 8085 OBJECT FILES --- INPUT FILES 8&6K OUTPUT FILE .............. ?V 7K LINK MAP FILE .............. ( Type RETURN if you don't want a link map ) 9\7E_7ti7~o7u777777777777777888"8-838?8E8V8\8g8r8}8888888D_7!.r+s+p+q$r6$r*+##>w#6*+DM6Hs!"1>!1v7$r/͵ >!1v7*+DMPHs*+DM/Hs*+DM|Hs$rÑ7*+##N#F +q#p*+DMPHs6$r/͵ *+DMHs*+DM/Hs$rO uYˆ8 7$r/͵ $r>!1v҈8*+DM6Hs*+DM/Hs*+DMoHs*+DMuHs\7$r*-6*$ep777778=8@8e8m88j7m7s7777777777777777888 8+8.81888C8T8W8Z8b8p8{888888o$5`7v77777777777788#8(8F8_8h8s8x8~888U MEXLOCATE: MEMORY:EXLOCATE?CCOMLINEPECOMTYPEPGNAMEZSEGMENTSADDRYESNO{8SWITCHES8COMP18COMP88COMP98COMP108COMP118COMP128COMP139COMP149MSG1Z9MSG69MSG7f:MSG8LISTFLAGIJ58988888f$8888888LOCATE 8ORDER(E 8 MAP8 SYMBOLS8 PUBLICS8 LINES 8 PURGE 9 RESTART0&O9 --- LOCATE AN 8080 / 8085 OBJECT FILE --- INPUT FILE .............. FZ9 LIST FILE :CO: ( Type RETURN for default file ) :9Insrsert a jump to the start of the program at location 0 Print a memory map Print symbols Print public symbols Print line numbers and their addresses Delete symbol table from output object file Of: ( NOTE - ASM-80 and PL/M-80 segments are CODE,STACK,DATA,and MEMORY ) p:K  :K y:E:~{2::::::;;;;+;@;G;M;R;U;[;;;;;;;;;;;;< <<#<.<1<7<7<;<;<><G<R<b<m<<<<<<<<<<<<<<<==0=H=M=M=T=[=a=r=}=========&:!Fr+s+p+q$r9$r*C##>w#6*CDM8HsG͵ *CDMGHs*CDMPHsx$rf:$r!6> !G;$*&vZ >w#6!4";!"!6#6!"\$*&vZ  >v: H><:2$r$*&vZ DMQ$*&vZ  >v;<i$r$r'$rQ>!v1<$r*C$*&vZ Hs*CDM]Hs*CDMHs*CDMoHs*CDMPHs7<:$r!4[;>!җ<*CDM8Hs!6:=!ڗ<*CDMPHs*C$*&vZ Hs*CDM|Hs!4W<*C##N#F +q#p*CDMoHs*CDMPHs:$r!6!6>!<*&  6!4<9q !6#6>!T=*&  ~M=*C*&v8 ^#VHs*&v8  ~M=!6!4<:Ҟ=Z9$rG͵ >!IvҞ=*CDMcHs*CDMGHs*CDMoHs*CDMuHs:$r*E6Ƀ$::;);E;;;;/<2<<EXOBJHEX"COMLINEPCOMTYPEPNAME=COMP1=COMP2=COMP3 CONSOLLINEIIF=MSG1;>MSG2=OBJHEX  = TO  = n= --- CONVERT OBJ FILE TO HEX --- OBJ FILE HEX FILE .............. .............. ~-;>CCCCCCCCCCCCCCCCCCCCd>Eg>p:q>{w>|}>}>~>>>>>>>>>>g>!r+s+p+q$r=$r*##>w#6*DM=Hs͵ *DMHs*DM=Hs;>$r͵ *DMHs*DM=Hsd>$r*6ɒ$'x>>>>>>r>u>{>>>>>>>>>>$h>~>>>>>>>>>>> MEXHEXOBJ2 MEMORY?EXHEXOBJ"COMLINEPCOMTYPEPNAME>COMP1>COMP2?COMP3 CONSOLLINEII ?MSG1y>HEXOBJ  > TO  ? ? --- CONVERT HEX FILE TO 8080/8085 OBJECT --- OBJ FILE HEX FILE .............. .............. ?E?q:?{?|?}?~?????? @@@@?!r+s+p+q$r?$r*##>w#6*DM>Hs͵ *DMHs*DM>HsV$r͵ *DMHs*DM?Hs?$r*6$'???@@??????????@@@$?????????@ @@r MEXLT86 MEMORY AEXASM86COMLINEPCOMTYPEP @COMP1/@MSG1AEXPLM86RCOMLINEPCOMTYPEP@COMP1@MSG1 BEXPASC86'COMLINEPCOMTYPEP@COMP1AMSG1)BEXFORT86COMLINEP!COMTYPEPcACOMP1sAMSG1 @ RUN ASM86 \/@ --- 8086/8087/8088 ASSEMBLER --- SOURCE FILE ..............R@ RUN PLM86 `@ --- 8086/8087/8088 PLM COMPILER --- SOURCE FILE ..............@ RUN PASC86 eA --- 8086/8087/8088 Pascal COMPILER --- SOURCE FILE ..............cA RUN FORT86 MfsA --- 8086/8087/8088 FORTRAN COMPILER --- SOURCE FILE ..............Ari AvAw A!r+s+p+q**/@ @ L$ AAAK$ AAAqAxG A| B}j A!r+s+p+q**@@ V$ BB B$ AAB B~$ B(B%  B!r+s+p+q**A@ U$  B#B&B$ BBB)B 3BDB )B!"r+s+p+q**!sAcA J$ w#6*#DMEBHs!")>!)v"C$r'͵ >!)vC*#DMPHs*#DM'Hs*#DM|Hs$rB*###N#F +q#p*#DMuHsB$r*%6+$5BBBB C;CBBBBBBBBBBC CCCCC5C8C>Cd$BBBBBBBBC CC#C0CAC MEXLOC86 MEMORY;NAMENSEGMENTS ADDR hEEXLOC86C# COMLINEP COMTYPEP YESNOFCSWITCHESTCCOMP1cCCOMP8nCCOMP9xCCOMP10CCOMP11CCOMP12CCOMP13CCOMP14CCOMP15CCOMP17CCOMP18CMSG1DMSG6lDMSG7  I JFCCCnCxCCCC$FCHCJCLCNCPCRCTC RUN LOC86 cCOD(SM(nC NOMAxC NOSBC NOPLC NOLIC PURGEb C BSNCAD(SM(}C NOIC C IC(RC --- LOCATE AN 8086/8087/8088 OBJECT FILE --- INPUT FILE .............. [D INITIALIZATION CODE ADDRESS 200H ( Type RETURN for default address ) 8lDInsrsert a jump to the start of the program at location 0FFFF0H Insert an initialization code Print a memory map Print symbols Print public symbols Print line numbers and their addresses Delete symbol table from output object file .[EK  _EK eEEhEVrExE~EEEEEEEEEEEEFF F1F7F=FSFnFtFzFFFFFFFFFFFFFFFFFGGG&G/G:GJGUGmGxGGGGGGGGGGGGGGGGHH$H9H9H@HHHTH\HbHjHuHHHHHHHHHIhE! r+s+p+q$rC$r* ##>w#6* DMTCHs;͵ * DM;Hs* DMPHsx$r* DMCHs! 6> ! E$* &vN >w#6! 4E!" ! 6#6!"P$* &vN  >v: HF: 2 $r$* &vN DMQ$* &vN  >vFi$r$r'$r Q>! vF$r* DMPHs* $* &vN Hs* DM]Hs* DM Hs* DMoHs* DM|HsF[E$r! 4 F* ##N#F +q#p* DMoHs* DMoHs* DMPHs>! ҢG* DMcCHs! 6: =! G* DMPHs* $* &vN Hs* DM|Hs! 4?G* ##N#F +q#p* DMoHs* DMoHs* DMPHs_E$r! 6! 6>! G* &  6! 4½G! 6! 6lD q : H* DM*FCHs! 6>! @H* &  ~9H* * &FC) ^#VHs! 4H: TH* DM*RCHs: –HD$r Q>! vҖH* DMCHs* DM Hs* DMoHs* DMuHseE$r* 6ɓ$yEEEEE/FlFFFFF-G5GHG}GGGGGGGH"H.H>HFHNHZH]HsH{HHsEvE|EEEEEEEEEEF F8F;FFFQF\FiFoFrFuFxF{F~FFFFFFFFFFFFFFFFF GGGG!G$G8GPGSGbGkGsGvGGGGGGGGGH7HRH`HhHpH~HHHHHHHK$iEEEEEEEEEEEEEEEFFF%F2F5FAFIFWF_FFFFFFFFFFFFFFGGG)G0G;G@GDGKGVG]GeGnGyGGGGGGGGGGGGGGGGH HHH%H)H:HAHIHUHeHmHvHHHHHHK MEXCONV86N MEMORY~IEXCONV86" COMLINEP COMTYPEP NAME'HCOMP1HCOMP2HCOMP3 CONSOLLINEI IRHMSG1VIMSG2HCONV86 " H TO  H H --- CONVERT 8080/8085 ASSEMBLY LANGUAGE SOURCE FILE TO 8086 ASSEMBLY --- 8080/8085 FILE 8086 FILE .............. .............. )VICCCCCCCCCCCCCCCCCC{IE~Ip:I{I|I}I~IIIIIIIIJ J~I! r+s+p+q$rH$r* ##>w#6* DMHHs ͵ * DM Hs* DMHHsVI$r ͵ * DM Hs* DMHHs{I$r* 6f$'IIIIIIIIIIIIIIIIIJ$IIIIIIIIIIIJ MEXOH86 MEMORY JEXOH86#" COMLINEP COMTYPEP NAME JCOMP1JCOMP2!JCOMP3} CONSOLLINEI I(JMSG1JMSG2F J RUN OH86 G J TO  !J h|(J --- CONVERT AN 8086 OBJ FILE TO HEX --- OBJ FILE HEX FILE .............. .............. CCk-JCCCCCCCCCCCCCCCCCCCCJEJpkBJ{J|J}J~J KKK+K6KAKLKLKWK]KbKJ! r+s+p+q$r(J$r* ##>w#6* DM JHs ͵ * DM HsJ$r ͵ >! vLK* DMJHs* DM Hs* DM!JHsJ$r* 6ɾ$+JJK4KrMz M{M|M} M~+M1MFMKMQMTM[MfMqMwM}MMMMMMMMMMMMML! r+s+p+q!" " ! 6IL$r* ##>w#6* DM%LHs2 : 0>3! HTM 2 1M* M * DM Hs* DM3LHsL$r2 : 0>9! HҠM 2 }M* M * DM HsL$rO uYM* DM=LHs* DMuHs* 6L$r$3M&MDMRMlMrMMMMMMMM)MdMoMuMMMMMMMMr$3LMM MM!M/M2M;MOMUM\MaMgM{M~MMMMMMMMMA MEXHELP MEMORY YEXHELP1"" COMLINEP$ COMTYPEP& CHARF%MMSG1PMSG2TMSG3YEXHELP2"' COMLINEP) COMTYPEP+ CHAR7 VMSG1m/ME-------------------------------- FILE NAMES ------------------------------------ ISIS-II file names have the following general format : :device: name . extension ^ ^ ^ | | |______ 1-3 alphanumeric characters or wildcards /O | | | |______ 1-6 alphanumeric characters or wildcards | |_______ 2 alphanumeric characters ( see below ) default is :F0: NOTE - Name and extension are valid for disk files only WILDCARDS : * - matches any sew#6*, DM ZHs0 ͵ *, DM0 Hs*, DMHsV$r0 ͵ *, DM0 HsZ$r!"C C Q>!E vң[*, DMZHs*, DMC Hs*, DMuHsZ$r*. 66$7 [ [o[[[[[[ [#[4[?[G[J[M[P[a[l[r[[[[[[[[$'Z[[&[7[<[B[S[d[i[x[}[[[[[[[ MEXIDISK MEMORY \EXIDISK"V COMLINEPX COMTYPEPZ NAME[SWITCHESX m YESNO [COMP1Zp CHARq I|[MSG12\MSG2x\MSG3[ S P[IDISK 'c[ --- FORMAT A NEW DISK AS BASIC SYSTEM OR NON-SYSTEM DISK --- NEW DISK NAME .............. J2\Format a basic system disk Pause to change disks before formatting Zx\ DRIVE NUMBER OF SOURCE SYSTEM DISK 0 ( Type RETURN for default drive number ) \ \Ed\vJ\\\\\\] ]](].]7]G]Z]r]y]]]]]]]]]]]]^^ ^^^#^&^+^+^1^a\!Y r+s+p+q!m 6#6#6$r[$r*V ##>w#6*V DM[HsZ ͵ *V DMZ Hs\$r2\m q !q 6:m =!q y]*q & m ~r]*V *q &v[ Hs!q 4<]x\$r2p :p 0/>9!p /H~ Hڴ] 2p Å]:p ^*p M *V DMHs*V ##͹v*V :p w*V ##N#F+q#p*V ##͹v*V 6*V DMuHs$rO uY&^*X 6+^*X 6\$r$K\])]/]E]X]j]w]z]]]]^$^,^\\\ ]]&],]5]g]p]}]]]]]^ ^ ^^^/^ $C\\\] ]]#]2]8]=]A]H]Q][]b]s]]]]]]]]]]]]]]^^'^( MEXFORMAT) MEMORY_EXFORMAT"r COMLINEPt COMTYPEPv NAMES2^SWITCHES  YESNO @^COMP1 CHAR IDL^MSG1^MSG2^MSG32^ S A{@^FORMAT TOL^ --- FORMAT A NEW DISK AND COPY FILES --- NEW DISK NAME .............. (^Copy system files Copy all files Z^ DRIVE NUMBER OF SOURCE SYSTEM DISK 0 ( Type RETURN for default drive number ) _ `_E_v"_'_*_-_3_9_D_O_`_k_q_z____________``%`2`D`D`O`U`a`i`n`t`a_!u r+s+p+q! 6#6#6$rL^$r*r ##>w#6*r DM@^Hsv ͵ *r DMv Hs_$r^ q ! 6: =! ڼ_* &  ~µ_*r * &v2^ Hs! 4_^$r2 : 0/>9! /H~ H_ 2 _: D`* M *r DMHs*r ##͹v*r : w*r ##N#F+q#p*r ##͹v*r 6*r DMuHs$rO uYi`*t 6n`*t 6_$rg$K4_J_l_r__________`g`o`._1_7_M_^_i_o_x____ ```;`J`M`P`S`Z`r`O$C_#_:_E_P_a_f_u_{_____________````"`&`3`?`E`b`j`} MEXDCOPYu MEMORY ]aEXDCOPY" COMLINEP COMTYPEP NAMEu`SWITCHES  YESNO `COMP1 I`MSG1`MSG2*aMSG3u`IVq`DCOPY ^S` --- COPY A WHOLE FLOPPY DISK ( in drive 0 ) TO ANOTHER ( in drive 1 ) --- S`Initialize output disk before copying Verify output disk data after copying 4*aEAfter finished copying, type E and RETURN tZaE]asVga~laoaraxaaaaaaaaaaaabb bbb]a! r+s+p+q! 6#6#6`$r* ##>w#6* DM`Hs` q ! 6: =! a* &  ~a* * &vu` Hs! 4œa* DMuHs$rO uYb* 6Za$rb*a$r* 6H$1saaaaaaaaabbvaaaaaaaaaaab$#^ahayaaaaaaaaaaaaa b MEXEXMONm MEMORY bEXEXMON4 COMLINEP COMTYPEP bCOMP1 bEXMON bEbl)bp4bq?brEbsJbt0b! r+s+p+q* ##>w#6* DMbHsb$r* 6ɿ$ :b@b=bCbK$  b*b5bFb MEXHDCOPY+ MEMORYbEXHDCOPYJ" COMLINEP COMTYPEP CHAR KbCOMP1 I WbMSG1KbHDCOPY GiWb --- COPY A WHOLE HARD DISK TO ANOTHER --- FROM TO DISK DRIVE NUMBERS:  bmb bElbpXvbwbxbybzb{b|c}c~c!c$c+c6cAcGcMcbcgcmcpcwccccccccc$b! r+s+p+q!" " ! 6Wb$r* ##>w#6* DMKbHs2 : 0>3! H$c 2 c* M * DM Hs* DMHsb$r2 : 0>3! Hpc 2 Mc* M * DM Hs* DMuHsb$r$rO uYʭc* 6òc* 6b$r$5bbc"cBc`cncccccbb4cw#6* DMcHs2 : 0>3! Hңf 2 Àf* M * DM Hs* DMuHsd$r$r;d$r* 6$!_fufffffbfxffffffff$!GfTfWfZfefpf~fffffffff MEXVERS MEMORY FgEXVERSQ COMLINEP COMTYPEP^fCOMP1fMSG1fVERS Chf --- DISPLAY PROGRAM VERSION NUMBER --- PROGRAM NAME ..............Fgr Pgvagw Fg! r+s+p+q* * ff $ Yg\g_g$ GgQgUg MEXNONAME4 MEMORY gEXICE86 COMLINEP COMTYPEPVbgCOMPgEXICE85 COMLINEP COMTYPEPNwgCOMPgEXNOVA COMLINEP COMTYPEPFgCOMPgEXBAUD COMLINEP COMTYPEP> gCOMPbgICE86 WF(:F1:) wgICE85 gNOVA gBAUD go grgsg! r+s+p+q* * DMbg$gg$ ggggtc gwgxg! r+s+p+q* * DMwgɡ$ggr$ gggegyD g|g}ig! r+s+p+q* * DMgo$gg>$ gggg~% gh*g! r+s+p+q* * DMg>$gg $ gggMEXNONAMEMESSAGE! MEMORYhMSGLIBpnEXLIBT COMLINEP COMTYPEP6hCOMPhMSG1nEXLIB86 COMLINEP COMTYPEP.\iCOMPliMSG1nEXXMT COMLINEP COMTYPEP&#iCOMPjMSG1SjMSG2nEXUPM COMLINEP COMTYPEP>lCOMPHlMSG1lMSG2h CREATE library file ADD object file [(module,...)] [,...] TO library file DELETE library file (module,...) LIST library file [(module,...)] [,...] [ TO list file ] [ PUBLICS ] EXIT &hLIB h--- 8080/8085 PROGRAM LIBRARY MANAGER --- COMMANDS ( See "ISIS-II USER'S GUIDE" ) : ------------------------------------------ \i RUN LIB86 li--- 8086/8087/8088 PROGRAM LIBRARY MANAGER --- COMMANDS ( See "iAPX86 FAMILY UTILITIES" ) : -------------------------------------------- riXMT nSj--- XMT - TERMINAL SIMULATION AND FILE TRANSFER --- COMMANDS : ---------- /Sj &R filename Open a file for reading and establish a transfer mode from MDS to external computer &W filename Open a file for writing and establish a transfer mode from external computer to MDS &C filename Close a file $~k &P character Change default external computer prompt character (.) &E character Change default end-of-file character (CNTRL-Z) &X Exit XMT to ISIS-II F>lUPM .@Hl--- UNIVERAL PROM PROGRAMMER --- COMMANDS : ---------- /l SOCKET=n | OBJECT | READ | HEX | FILE file name [ INTO offset address ] | 86HEX | PROGRAM FROM start address TO end address START prom start address TRANSFER FROM start address TO start address START prom address DISPLAY FROM start address TO end address Sm COMPARE FROM start address TO end address START prom address CHANGE FROM start address=value1 [ ,value2,... ] STRIP FROM start address TO end address INTO new buffer address EXIT 7pnqznunvnwnxny0pn! r+s+p+q* * DMhh$r$rh$rx$nnnnnnnn$ qn{nnnzmn~nnnn0n! r+s+p+q* * DM\ili$r$rh$r$nnnnnnnn$ nnnn8nnnnn0n! r+s+p+q* * DMij$r$rSj$rY$nnnnnnnn!$ nnnnn oooo}0n! r+s+p+q* * DM>lHl$r$rl$ra$ooo ooooo$ nno! oLIMIT OF 19 BUFFERS EXCEEDED'=oAFTN DOES NOT SPECIFY AN OPEN FILE-$`oILLEGAL FILE NAME SPECIFICATION1oILLEGAL OR UNRECOGNIZED DEVICE SPECIFICATION.oATTEMPT TO WRITE TO A FILE OPEN FOR INPUT0oATTEMPT TO READ FROM A FILE OPEN FOR OUTPUT#pNO MORE ROOM IN DISK DIRECTORY?("pATTEMPT TO OPEN A FILE ALREADY OPENFpNO SUCH FILENSpATTEMPT TO OPEN FOR WRITING OR TO DELETE OR RENAME A WRITE-PROTECTED FILEV-pATTEMPT TO RENAME/DELETE A NON-DISK FILE+pILLEGAL ACCESS MODE FOR FILE SPECIFIED+pNO FILE NAME SPECIFIED FOR A DISK FILEqCAN'T DELETE AN OPEN FILE..q o=o`oooo p "p FpSpppp q$VqSqPqMqJqGqDqAq>q;q8q5q2q/qXq ISIS ERROR : Gjq mq! q! 6! 6> ! r* &v.q : r* &v.q  ^#V" ! 6! 6* &* ~q! 4þqXq {v* * M {vjq {v! 4{q: #r* &DM͚vY$#!r rqqqqrrqqqqqqqq|$-rr rrqqqqqqqqqqqqq~qwqrqnqu MESSAGEOUT MEMORY $rMSGOUTf MSGP I STAT$rR *rU0rVPrWWrXZrYmrZur[V$r! p+q!" * * ~ vHZr* #" 0r* * DM {v* DMvr$ srkrFrXrNr$nrhrcr_rUrQrBr5r1r.r%r"vr! p+q> vʓr* DMmq͐u$ rrrr$ rrwr READCONSOL MEMORYrRDCONSOLm BUFFP STATrRrUrVrWrXEr! p+q* * N#F* ##DM u* DMvr* ##͹v* 6ɋ$rrrrrrrr$ rrr6 MDELIMITER MEMORYr DELIMITER CHAR WILDCARDWrrrrGs wr! s+q: ?: *H! r>: A/>Z! /H~a/>z/HH~0/>9/HH~:H~.H/>$rl$srrrrr MAPPENDS MEMORY HsAPPENDS DSTP SRCP SRCIHs0"Rs Ws ys s ssssc|Hs! r+s+p+q! 6* ##: v* ##* vHҭs* & * * ##ͭv* w! 4* ##N#F+q#pWs* ##͹v* 6$ssos`ssws$ssssssszsjsds]sXsSsIs MFIRSTPARM MEMORYs FIRSTPARM' DSTP SRCP SRCIP WILDCARD2s 2s s tttt]ttttttIs! s+p+q+p+q+p+q* >w#6* * ##vͭv* ~ Ht* N#F+q#ps* ##>w#6* ͹v* N* r/* * ##vH* ##* vHҚt* ͹v* * ##͹v*  w* ##N#F+q#p* N#F+q#pt* ##͹v* 6$tutdtStAt2t%tsst[ttt$/ttttytmtht^tNtHt:t6t.t)ttttsssssMALPHA/ MEMORY tALPHAV CHAR WILDCARD9tttt u bt! s+q: ?: *H! t>: A/>Z! /H~a/>z/HH~0/>9/HH$t$ttttttyMUPPER  MEMORY  uUPPER  CHAR uou&u,u0uj* u! q: a/>z! /H,u: : $$u:$ -u'uuu u#1u! r+s+p+q+p+q+p+q  @$Hu2ulPu! r+s+p+q @~$[uQu:cu! r+s+p+q+p+q @ɵ$uudu }u!! r+s+p+q @<$u~uu!" "" "  @$ uuu(u!- r+s+p+q+p+q+p+q+p+q$ @e$uu u`o?(u!7 r+s+p+q+p+q+p+q+p+q. @-$uu7(u!A r+s+p+q+p+q+p+q+p+q8 @$ vuv!G r+s+p+q+p+qB @ɳ$#vv+v!K r+s+p+qH  @0$6v,v(>v!U r+s+p+q+p+q+p+q+p+qL @v$Zv?vKbv!Y r+s+p+q!Z "Z V  @$ svpvmvcvA#{v!c r+s+p+q+p+q+p+q\ @$v|vv> !h +p+qO@$vh d $h _vi`N#Fog[v_og{vDM!>))v =vX$vvDvi`N#Fog vo&ogv_{_z#WZ