IMD 1.06: 20/10/2005 14:10:02 STRIDE MICRO SGDEV IV.21 DK0137B October 15, 1985 #   function ac_getrequest  ( !accept_socket : integer ; { the socket to pick up request on } !wait_time : integer ; { time to wait for a request (in 60ths/sec) } !var requestor : sk_netaddr ; { who the request is from } !var msg : interface packed array [l..h:integer] of char @{ user defined part of the message }  ) : lo_result ; { result of the operation }  !{ ac_getrequest picks up one locator request off of the ACCEPT_SOCKET. #WAIT_TIME defines the time to wait for the request. REQUESTOR is the #network address of the sender of the request. The MSG is the user part #of the request. } #   function ac_putresponse  ( !accept_socket : integer ; { socket to put out response on } !requestor : sk_netaddr ; { where to send the response } !var msg : interface packed array [l..h:integer] of char @{ user defined part of the message }  ) : lo_result ; { result of the operation }   c`SGDEVsp!²§Œxstru €DK0137BªÇ „ã SYSTEM.SYNTAX¨×IJSYSTEM.COMPILER©«Æ™"SYSTEM.ASSMBLER©UÆ€NCG.68000.CODE¨g:“ SYSTEM.LINKER©¹:Zæò PATCH.CODE©Z`ÁSAMPLEGOTO.TEXT§b`|Å DEBUGGER.CODE©ª|žë DECODE.CODE¨Lž«¦²SCREENTEST.CODE§Š«´€ 68000.ERRORS¦ˆ´¸€ 68000.OPCODES¦(¸Ê€ LMONITOR.CODE¨"Êçðâ XREF.CODE§šçî€ ASMLOAD.CODE¨îü€FPUMACROS.TEXT©6ü€ COMPRESS.CODE¦|F€ LDEMO.SVOL©‚Fj€ LDEMO.CODE©¤jŽ€MU4.FBOOT.TEXT¦{ް€MU4.WBOOT.TEXT¦{°È MU.PBOOT.TEXTª³Èê€MU.BOOTEXT.TEXT§©êó€FINDPARAMS.CODE¤tó÷€REMINTEST.TEXT¥÷ÿ€ RECEIVE.TEXT¥ÿ€REMOUTTEST.TEXT¥ € SEND.TEXT¥ € TEXTIN.TEXT¥?—SSAGE.PBOOT.TEXTªõ?gSSAGE.WBOOT.TEXTªõgŸ€TOPSYS4.2.TEXTªEX.TEXT¨EST_SOCKET is open rq_putrequest will broadcast a message #consisting of DESC (the service descriptor string) and MSG (the user #portion of the message. NOTE THAT msg_size is NOT the size of the request #MSG, but the size of the response messages that will be picked up using #the rq_getresponse procedure. } # #   function rq_getresponse  ( "request_socket : integer ; { socket to pick up the response on } "wait_time : integer ; { time to wait for one response } "var acceptor : sk_netaddr ; { who the response came from } "var msg : interface packed array[l..h:integer] of char @{ user portion of response message }  ) : lo_result ; { result of operation }  !{ rq_getresponse picks up one response message off of the REQUEST_SOCKET. #WAIT_TIME is the time to wait for one message. ACCEPTOR is the source #address of the response. MSG is the user portion of the message received. !} !   procedure rq_close  (  c`SGDEVsp!²§Œxstru €DK0137BªÇ „ã SYSTEM.SYNTAX¨×IJSYSTEM.COMPILER©«Æ™"SYSTEM.ASSMBLER©UÆ€NCG.68000.CODE¨g:“ SYSTEM.LINKER©¹:Zæò PATCH.CODE©Z`ÁSAMPLEGOTO.TEXT§b`|Å DEBUGGER.CODE©ª|žë DECODE.CODE¨Lž«¦²SCREENTEST.CODE§Š«´€ 68000.ERRORS¦ˆ´¸€ 68000.OPCODES¦(¸Ê€ LMONITOR.CODE¨"Êçðâ XREF.CODE§šçî€ ASMLOAD.CODE¨îü€FPUMACROS.TEXT©6ü€ COMPRESS.CODE¦|F€ LDEMO.SVOL©‚Fj€ LDEMO.CODE©¤jŽ€MU4.FBOOT.TEXT¦{ް€MU4.WBOOT.TEXT¦{°È MU.PBOOT.TEXTª³Èê€MU.BOOTEXT.TEXT§©êó€FINDPARAMS.CODE¤tó÷€REMINTEST.TEXT¥÷ÿ€ RECEIVE.TEXT¥ÿ€REMOUTTEST.TEXT¥ € SEND.TEXT¥ € TEXTIN.TEXT¥?—SSAGE.PBOOT.TEXTªõ?gSSAGE.WBOOT.TEXTªõgŸ€TOPSYS4.2.TEXTªEX.TEXT¨r,*b#Œ!r ,r h Ó ‘ ¤Š"!l$m%s%xMӤР$ç&'('£ípa#t– a r–h– ÿéÿíÿñÿõÿù .ùª¥m63 EXTRAHEABYTEFLIPSOCKETS  ¼DISKSHAR €€€€€€€€€€€€€€€€< ‚bCCopyright 1983 SofTech Microsystems, Inc.  Œ'LåO^L ×¨F„S1:Error in simple type  2:Identifier expected  3:unimplemented error  4:')' expected  5:':' expected  6:Illegal symbol (terminator expected)  7:Error in parameter list  8:'OF' expected  9:'(' expected  10:Error in type  11:'[' expected  12:']' expected  13:'END' expected  14:Semicolon expected  15:Integer expected  16:'=' expected  17:'BEGIN' expected  18:Error in declaration part  19:Error in  20:'.' expected  21:'*' expected  22:'INTERFACE' expected  23:'IMPLEMENTATION' expected  24:'UNIT' expected  50:Error in constant  51:':=' expected  52:'THEN' expected  53:'UNTIL' expected  54:'DO' expected  55:'TO' or 'DOWNTO' expected in for statement  56:'IF' expected  57:'FILE' expected  58:Error in (bad expression)  59:Error in variable  60:Must be of type 'SEMAPHORE'  61:Must be of type 'PROCESSID'  62:Process not allowed at this nesting level  63:Only main task may start processes  101:Identifier declared twice  102:Low bound exceeds high bound  103:Identifier is not of the appropriate class  104:Undeclared identifier  105:sign not allowed  106:Number expected  107:Incompatible subrange types  108:File not allowed here  109:Type must not be real  110: type must be scalar or subrange  111:Incompatible with part  112:Index type must not be real  113:Index type must be a scalar or a subrange  114:Base type must not be real  115:Base type must be a scalar or a subrange  116:Error in type of standard procedure parameter  117:Unsatisified forward reference  118:Forward reference type identifier in variable declaration  119:Re-specified params not OK for a forward declared procedure  120:Function result type must be scalar, subrange or pointer  121:File value parameter not allowed  122:A forward declared function's result type can't be re-specified  123:Missing result type in function declaration  124:F-format for reals only  125:Error in type of standard procedure parameter  126:Number of parameters does not agree with declaration  127:Illegal parameter substitution  128:Result type does not agree with declaration  129:Type conflict of operands  130:Expression is not of set type  131:Tests on equality allowed only  132:Strict inclusion not allowed  133:File comparison not allowed  134:Illegal type of operand(s)  135:Type of operand must be Boolean  136:Set element type must be scalar or subrange  137:Set element types must be compatible  138:Type of variable is not array  139:Index type is not compatible with the declaration  140:Type of variable is not record  141:Type of variable must be file or pointer  142:Illegal parameter solution  143:Illegal type of loop control variable  144:Illegal type of expression  145:Type conflict  146:Assignment of files not allowed  147:Label type incompatible with selecting expression  148:Subrange bounds must be scalar  149:Index type must be integer  150:Assignment to standard function is not allowed  151:Assignment to formal function is not allowed  152:No such field in this record  153:Type error in read  154:Actual parameter must be a variable  155:Control variable cannot be formal or non-local  156:Multidefined case label  157:Too many cases in case statement  158:No such variant in this record  159:Real or string tagfields not allowed  160:Previous declaration was not forward  161:Again forward declared  162:Parameter size must be constant  163:Missing variant in declaration  164:Substition of standard proc/func not allowed  165:Multidefined label  166:Multideclared label  167:Undeclared label  168:Undefined label  169:Error in base set  170:Value parameter expected  171:Standard file was re-declared  172:Undeclared external file  173:Fortran procedure or function expected  174:Pascal function or procedure expected  175:Semaphore value parameter not allowed  176:Undefined forward procedure  182:Nested units not allowed  183:External declaration not allowed at this level  184:External declaration not allowed in INTERFACE section  185:Segment declaration not allowed in INTERFACE section  186:Labels not allowed in INTERFACE section  187:Attempt to open library unsuccessful  188:Unit not declared in previous USES  189:'USES' not allowed at this nesting level  190:Unit not in library  191:Forward declaration was not segment  192:Forward declaration was segment  193:Not enough room for this operation  194:Flag must be declared at top of program  195:Unit not importable  201:Error in real number - digit expected  202:String constant must not exceed source line  203:Integer constant exceeds range  204:8 or 9 in octal number  250:Too many scopes of nested identifiers  251:Too many nested procedures or functions  252:Too many forward references of procedure entries  253:Procedure too long  254:Too many long constants in this procedure  256:Too many external references  257:Too many externals  258:Too many local files  259:Expression too complicated  300:Division by zero  301:No case provided for this value  302:Index expression out of bounds  303:Value to be assigned is out of bounds  304:Element expression out of range  305:Maximum segment number exceeded  306:Unit name same as program name  307:Unit name declared twice  308:Invalid array bounds  309:Bounds may not be of type real  310:Only one dimension may be conformant  311:Must be a variable parameter  312:Must be a conformant array  313:Segment declaration not permitted here  314:PROCEDURE, FUNCTION or PROCESS expected  315:HOST call not permitted here  316:May not be formal procedure  317:May not be formal parameter  318:Invalid file type  319:Must be an untyped file  320:Segment entry not found  321:May not be a conformant array index bound  322:Must be a string constant  323:Must be a variable  324:Must be a declared procedure  325:May not call the main program  326:May not be an expression  327:Maximum code size exceeded  328:May not be a conformant array  329:Procedure with untyped params must be external  330:EXIT call not permitted here  398:Implementation restriction  399:Implementation restriction  400:Illegal character in text  401:Unexpected end of input  402:Error in writing code file, not enough room  403:Error in reading include file  404:Error in writing list file, not enough room  405:'PROGRAM' or 'UNIT' expected  406:Include file not legal  407:Include file nesting limit exceeded  408:INTERFACE section not contained in one file  409:Unit name reserved for system  410:disk error  500:Assembler Error 5­ )Û.ÿ28HªJ×NËRÑSDV] cÄg q÷PASCALCOERROR COMPINITDECLARATUSESDECLSTRUCTURBODYPARTREADWRITAROUTINEBROUTINEWRITELINUNITPARTBACKEND PARSEDIRFINALPARDEBUGINF€€ € €€€€€€€€€€€ €€‘<PASCALCOPASCALCOPASCALCOPASCALCOPASCALCOPASCALCOPASCALCOPASCALCOPASCALCOPASCALCOPASCALCON<BACKEND BACKEND h!‘#Copyright 1984 SofTech Microsystems84 SofTech Microsystems, Inc. PASCALCOh!‘&`08p8¢¥ –O€ý‘ €€³ñ ‘Š€€ ¢‘ ‘!‘–d8Ï £²ñ‘ –›†ƒô!×h |áÒ! ç…NÄ…Ní¥N…N€ÿ²ñ€úw | ˜‘ |jŠ |j–ƃô×çÄíh ²Ô†ƒô ×çáÄ íŠë–ðihj†ƒô"×$¹i!"° h ñ"íj Ôå#"Ä!m–B…jî¥j…jh ³Ô†€ò ×(i!ç'!æ'š …R£¢Ä îŠá†€ò…j×(i†V!ëG!æ$¥P!æ&¥!æ%¥z!æ'¥R–Š…j²ñ—wŠ4†€ò…j×(h †VëG ç$…P£Ä ç&=Ä ç%…zÄ ç'…RÄš ¥R…jí¥j–Ì+†ƒÂ‡,˜”pÓ+†ƒÂh`‡,˜€P” `‚€€U” `˜”pÓ“w–,‘¥¥z…"Ô0…ƒ™Òš 1…P” °¥"Іƒš1…P” °¥"…"ñ‘,…"ñ<…j²ñ5†ƒÂ1…P” Ó%pÓ“w‘†ƒÂ”‘,…j²ñ†V‘-ŠË…"…j²Ÿ ñš 1…P” Ó‘w=Ò 1§Ò¥…P¢¥P–Ð…„Uh!˜Ä ˜Ó! Ä" xµñ {hŠ zh!xx"Ò˜hŠá!x˜ÒákŠ!xx"ÒkŠ!xx"µñkŠák–(†€ž7×xi!˜Ò †€ž7×$ÄŠ2!`$p&j"Ò€ew |˜ÒjŠ |`$p&jŠå"Ò ç$ÄŠ ç$Ä$ç˜Ä$ç˜Ä–j…!…"å Ô4…&Ô€#‘Š)…ƒêÔ‘Š…#Ô €ÿ‘9…ƒî£‘Š €þ‘€0…J ¢‘–u€2‘–Š€3‘"‘!‘ ‘–•€4‘–¶`d« ‘&‘‘`08p8¢¥ –Ö`e« ‘‘`08p8¢¥ $‘–uhš íÙ =í¥šÔš€.” š €2Ò‘1=§Ò …j²ñh…$Ô‘.Š ……b……d¡Ô‘$‘Š=¥z1=§Ò=¢¥Š'1=§ Ò=í¥=€P 1=p¢¥=€P€ 1=p¢¥ ñ…$Ô‘.Š ……b……d¡Ô‘$–Ú=¢¥"­51=pi­5€*°1=!¢§­5°¡1=!¢í§€)±¡Ô!íi!"!£­51=!¢p¢i!€ 1=ph#! £È1= ¢#!p=!¢í¥–bg«`”  i!bÅ!ç&Ä!ç…‚oÄ ¥‚o– .af«%…‚oÄh å%x˜±¡Ôa%x¹ÔhŠ%%x}ÄŠã–¹-d„1¬P¤3‡0‚€Å‡/Äid§h‡.Ä € dp¢j" ²d"§ƒ€ Ú¡Ô.d"§k!²#€_±¡Ô#ƒ€ÚÔ#€a£€A¢k‡0!î#È!íi"íjŠÂ!±¤3" ²Ô‡/d"§€-±Ä‡.d"§€^°Ä–2刀Pï1ˆ§íh" !¢í‘ˆ08 p8 ¢¥ ‘– ‘š í‘…P£‘…z‘–Ò 4=í¥1=§€$°Õ‚1=í§‡5±Õx1=í§j"ƒ€ÚÔ"€ £j1=¢§i1=¢§h…&Ô&c€P1"€EÒc˜„-„3„24Ô „-†‚k¹Ÿ¥&‹k!€,°!‡5°‡5€}°¡ !‡5°‡5€*°¡ €)°¡ Ô !h€+i=î¥"‹ñc€P1c˜„-„3„24Ô0„-˜„13‡1˜Ò€hwЇ1|‡3¢Ô¥&†‚k„-Å‘…&ñúp‹ø‹¬€ 5‹í‹¡!€+°!€-° Õ€!€+ÒU……d……a³Ÿ¡Ô&š í¥…a……a…„Y…„Z¢¢…„Z¢‘%¥…cš ˜±šå¡Ô †…e‚€!”š ˜±ÙŠ!€-°……d¡……b¡Ô š í¥…`‘&!€+°¥…b!€+°¥)ŠWc€P1c˜„-„3„24ÔB„-˜„13‡1˜Ò…H³Ô€ÂwŠ„-˜‡32Š!‡2Ô ‡1ç‡1|ÄŠ‡1ç‡1|ÿ?¡Œ‡3¢Ä‹‹»!€+°¥‹²!€+°!€-° Ô…/ÿ?¡Œ!€+°¢¥/Šf!€^Ò…/¥/ŠY 5‘…P‘=‘‡5€*Ò=í¥… …¡Ô–w‹«c§€G²ñc€GÈ…j²ñ†ƒÂ”c‘-‘†VcëG¥P‘‘p‹-!€+°!€-° !€^° Ô6!€^Ò…$¤4‡4¤4‡4¥$Š…$ÿ?¡Œ!€+°¢¤4‡4¥$…$Ô6Š ‘Š ¥$ 56‹$‹Ø!€+°¥,‹Ï!€-°Ù‹Å!€+°¥(‹¼!€-±ÙšÔ‘‹©€$5‹ê‹ž!€^Ò….¥.ŠA!€+°!€-° Ô….ÿ?¡Œ!€+°¢¥.Š%!€0£ŠÙ¥„T¥„SŠÙ¥„T¥„SŠÖ€)ŠN5‹ŠE!€+°!€-° Ô!€-°¥!€+°¥.….¥/Š#…"ñ†ƒš”¥†ƒr€G1†ƒš†ƒr˜”ŠNŠÖ€.=¢¥ €,±Õˆü=î¥=í¥1=§€;Ò¥ƒêŠ 1=§ Òï/Šö1=§‡5ÒÞ1=í§€)°‡5€}° ÔÏ¥ƒê=í¥–5w …¤€„¤€ƒ‡€„Ô=í¥=í¥‡€ƒí¤€ƒ‡€ƒ€ÿí²ñ Žw¤€ƒ1=§ Ò€Êwï/Š`‡€ƒî1=§È1=§€'ÒŤ€„1=í§€'Ó°‡€ƒî¤€ƒ€%¥¥‡€ƒ¥‡€ƒÒ`î§¥Š&…O¤€…‡€…怅燀ƒÄ`…çƒp…O¥–€…¡ 1® §€0£h® °¡¦®ñ!!x Œ ¢Ä®í¦–Ê ­í¦­…„S²Ô­¦ˆ­î¢î×:–Š ¤ nml¤ 'i'j=k=í¥1=§€0³Ÿ1=§€9²Ÿ Ôë=îo1=§€.Ò11=í§€.Ó)¤ =í¥=j1=§€0³1=§€9²¡Ô=í¥Šë="Ò€Éw=în1=§€E°1=§€e° ÔE¤ =í¥1=§€-Ò =í¥álŠ 1=§€+Ò=í¥=i1=§€0³1=§€9²¡Ô=í¥Šë=îm%!³ñ€Éw)°Õh#'¤¤ +‡²Ô: ÿ ²Ÿ ÿ °1+§€0£ÿ ²Ÿ¡ Ô ¤ +¤ '¤ Š Œ1+§€0£¢h+튾*Ô €#¥¥ ¥‹§'#£€$³Ô €Ëw'k'¤ ˆ ” ­¤‡Ä¤ ‡çÄ,'²Ô3+Ò‡ç‡zíćç‡zî× Äh¤ Œ1,§¢€0£h,í¤ +í¤ ŠÈ+²ñ‡ç‡zíćç‡zî× ćçÄ+²ñ‡ç‡y ŒÄ+î¤ Šë€0¥¥'#£í¥­¥‹ô„p¤¤¤#'¤¤ +‡²Ô9+íŠò-¤"&¤¤ +‡²Ô9+íŠò‡Ô¤Š ‡£¢¤‡²ñ%‡îÓ„‡îׄ‡î×x ŒÄ‡í¤/í¤ŠÛ‡…„Tî³ñ‡í¤„‡î×áćíš³ñ‡í¤¤ !%¤¤ +‡²Ô( Œ1+§¢€0£¤ +íŠè$(Œ.¢/£¤ €$¥¥ˆ” ­Ä­ç¤‡(ćç„Ňç‡íÄ­¥=å…Ô…I¥J¥¥€/¥1=§‹7‹8‹†1p%‹ €}0ŠÞ‹1=í§€*Ò=í¥€*0=í¥ŠÅŠ¥‹æ¥‹à¥‹Ú=í¥Š«‹Ñ1=í§€.Ò =í¥¥Š¥‹º1=í§€=Ò =í¥¥Š¥‹£¥‹¥‹—¥‹‘¥‹‹1=í§€*°1=¢§€*°¡Ô €7¥=¢¥Š€'¥¥Še€(¥¥Š\€(¥¥ŠS€'¥¥ŠJ€)¥¥1=í§Š ¥=í¥Š ¥=í¥ŠÖ€cŠ&€)¥ ¥Š€)¥1=í§€=Ò ¥=í¥Š ¥ŠÖ€g>€/Ò1=§ Ò /¥‹ÄþŠw=í¥–!˜Ó! †p&ÒŠ ˜ÄŠ ˜Ä–›7¥…³Ô8†€ž…×xh ˜Ó& `†p&Ò æ"ÚÔŠdŠ …*Ô€gwŠ˜hŠ˜h…îŠÀ…*ÔI€hw"ÚÔ…FhŠ:"ÚÔ…DhŠ/"ÚÔ…ChŠ$"ÚÔ…EhŠ"ÚÔ…BhŠ"ÚÔ…@hŠ…Ah! Ä–Ñ#h yÒ " |Ä! {ÄŠ"Ä#…7Ò!€ÿÄŠ#{˜Ó!#{æ ÄŠ!Ä–ä>`ÐÚñ‘Šô–i ˜Ó y€ÀÚÔ | {…7°¡i–i ‘ Ô i–! ¢íi–:˜h'Ä>†€™ÐÚñ€2w„ І€™ÐÛÇ‘ >†€™ÐÚÕá>€%Òh…Ò…7hŠT…-Ô` ” Š` ”  m%çÄ%…¢Ä%çÄ%çÄ%ç;Ä%çÄ%çÄ%ç…7Ä%ç…Äc€‚” #…Å€‚#¥'†xÄ‘‹bj>€(°?€`Ú¡Ô ?ÒjŠj‘>°Õ¯Ça‘ !m%~h'%ç xÄ"±Õ’ ;Ò "Ò''xáÄ‹‚ …9Ò0"Ò*c” #Ä#ç'xçÅ#çm%çî×%çî×xáÄ'#ÄŠM …8‘ÔA"Ò;c ” #m%Ä%ç'xzÄ%ç'xyÄ%znl$&²Ô%ç$î×'xç$î×xáÄ$íŠä'#ÄŠ€iw‘‹“>€#Ò"Ò…á¥;h'†xÄ‘Šz>€$Ò&"Ò…çm%çî×%çî×xáÄ…9h'†xÄ‘ŠO>€0Ò@"Ò"…m%znl$&²Ô%ç$î×%ç$î×xáÄ$íŠå`”  …‘Ä çÄ'†xđР€jw„ Б >„ ÐÚñ w„ Б ( Ä– d -,Ò¤‹-˜°,˜° Ô¤‹ -y,y°ÕÎ-y‹Ä¤‹Á-z,z‘¤‹µj…Gl…Gk$˜Ó$¤ +y-z°+x,z°¡Ôj+zlŠå"ñ#d” $¤ +ç-zÄ+,zÄ+ç…GÄ$¥G-z,z‘j"¤#¥G‹c¤‹]-z,z‘¤‹Q-{,{‘-|,|°¡j"-|¡Ô-~,~°-},}°¡-,°¡j"-‘ å¡Ô-x,x°-y° ,y° j-y°,y° Õš-z¤ ,z¤ *˜±)˜±¡Õˆ-y°*y°¡*{˜±¡Ô*{~¤ -y°)y°¡){˜±¡Ô){~¤ *;Ò ÿᤠÿnŠ*„ f‘ );Ò ÿáoÿmŠ)ge‘ -y°,y°¡Ô "'(³%&²¡¡jŠ-y°,y°¡Ô "('³&%²¡¡j"*)‘¡j"¤Šg-zi,zhj!˜± ˜±¡"¡Ô/!~ ~‘!æ æ °¡j"!æ ¡Ô!æ æ °!æ æ °¡j!i hŠÆ"!˜°¡ ˜°¡-{˜°¡,{˜°¡¤Š-z,z‘¤Šր܊5-yÒ -z,‘¤Š&,yÒ -,z‘¤Š-y€ÀÚ,y€ÀÚ¡Ô‹}þФ–r08 È8í¥ –Äi'hb!% €0¢È!íi% m h Òèib!§€0°!³Ÿ¡Ô b!€ È!íiŠéi!²Ôšb!§” !íŠì–è+b„,¬Pb§ih !²Ôšb §”  íŠì–-h ²Ôš! î§”  íŠë‘–+š ” š€<” š ‘š€>” –^†‚pph ²Ô†‚p ×i!‚€èÅ!ç‚€ìÅ íŠß–£€!‘‘ …ƒì¥ƒ`𠆂p…ƒq” Óšw…ƒì¥ƒq…ƒì¥ƒp…ƒìí¥ƒì¥ƒï‘–Úáih å!³Ÿ¡Ô!íi†‚p!×jˆ"ç¹$"æ °¡hŠÚ m#!Ä–Gb„ «'&;ñ[𠆂p…ƒq” Óšwhi!å …ƒq±¡Ô'𠆂p ” Óšw'&;ÔiŠ…ƒ`hŠÏ!ñ@wŠ ¥ƒp– Œ…ƒp…ƒqÓ6𠆂p…ƒp” Óšw𠆂p…ƒq” Óšw…ƒq¥ƒp– 8ϳÔGw8h ²ñ0š 0 …ƒì”  Ó’w8¥ 0 Œ08p…ƒì ¢¥ƒì!Ô/8²ñ*088£pš 0…ƒì” Ó’w¥ …ƒìí¥ƒì–¹†ƒð˜<`‘†‚p ×n……cš ˜±¡Ô€&‘…N‘b&Å‘‘ &ç …ƒìÄ&ç8Ä&ç †k×xÄ‘<‘…{î‘…{îi!³Ô‘†k!×x‘!îŠë…„R‘‘ ¥'…„O…„N²ñ…„O¥„N¥„R¥„Q¥„O……cš ˜±¡Ôb˜‘(š¥„V¥…c–óš ” š‚€ð” š ”š‚€ù” š†…” –h ²Ô! ÚÔ ! î! î§€ ¢È íŠÞ–ˆae«…ƒïí¥ƒï…ƒï²ñ‘†‚p…ƒï×h 熃ðÅa< aÅ ç …NÄ€&‘…N‘…N€ÿ²ñ1w…Ní¥N çÄ ç …„Vš£Äš¥„V–á…„Z³ÔJ†…e†„[…„Y” Óp‘'…„Z¥„Z†„[†„[…„Zp†„[…„Z¢…„Z£p…„Yí¥„Y–!hšÔ`ÉŒ`É¢jŠ j–" ï=h`†„[…„Zp…„Z¢¥„Z‘)–A`d«`†„[…„Zp…„Z¢¥„Z‘)–ia`p ï=h`†„[…„Zp…„Z¢¥„Z‘)–³­˜Ò ­ç” Š­ç­Ä­y¦­­Ò˜¦­y¦­ç˜Ä­ Ä…„Vð>…„V¢¥„V–‰†€ž7×x˜±ÕÃc” b” "†€ž7×xÄ"ç˜Ä˜h"i"˜±Õž"x˜±Õ”"xn&˜ï?&æÚÔD…Kæ Ô†‚p…ƒï׿ lmІk…|×xl…K~m…|Òm&æ %²ñ &æ %£ï>Š &æ $¢%£ï>Šï>&~yÿÚÔ&~yï@Š ï>&~xï>&}˜Ó&}BŠï>&|˜Ó&|BŠï> ˜Ò"h"yj‹\ÿc” –Ih%˜± å¡Õ¬%j…Kæ "æ °¡Ôh ñ"æÀÚ"æ °¡Ô "æ …|Òh Ôw$"Å"˜ï?…Kæ Ôï>Š"æ ï>……aï>……`ï>…„Y¥„W…„Z¥„Xï>…„V¢……`……a£íŒ¢¥„V†€ž7×x˜Ó…„Vï>…„V¢¥„VŠï>……a……`ki!#²Ôï>!íŠóŠ%m‹Kÿ n–¾…„VšÓf…„W…„YÒ…„Vï=¤„†„[…„XpŠF†…e`…„W” Ò0…„Vï=¤„`…„Xp†…e`…„W” Óp‘'Šp‘'–ÖD…K憅CÔA–!˜Ó?!h æÀÚÔ+ æ Ò% æ Ò æÔšÔš ” š ” €°w |ïE }ïE–hš¥„V†…‚Å…„Y¥„W…„Z¥„X>ƒÚ… å¡ÔcЃÛÇ”>Ò‹¶¥M᥃ë…MåÕF¥#¥I…å…H²Ÿ Ô †€ž7×xE… Ô…Kæ æ…<Ò >ƒ#ÚÔ‹s‘>Ò‘ŠwcЃ%ÛÇ…Kæ”>…K°… > °¡ i!ñ)…KÒwŠwcÐ…Kâ¼ÛÇ‘ >…K°… > °¡ i!>†€ÐÚ Ô§!ñ…KÒwŠwcД ‹>Ò‘>ƒ'Úå…K°¡Ô… > °¡ñwcБ cД ŠŠŠZ…Kj"æ˜Ó"æçÄ"æ Ô…'Ô‘!"z¥{"|¥ ᥄P"y¥H"x¥"}¥ "{¥|…Kæ ˜Ó…Kç ” …Kæ ¥K>ƒ+Ú¥MŠhŠ5cД …HÒ*>ƒ/ÚÔ cЃ3ÛÇ”>ƒ7ÚÔcД  Õvþ‘!š ˜Ó!‘)…„Z²ñ†…e†„[…„Y” Óp‘'–È” †€Ð†€ÐÛƒ;ÝÇ‘">Ów‘.…%Ô”…Kç ” ‘‘ †ƒš”šÔš ” š †‚p…ƒq” Óšw…ƒìÙ…„N€ÿíhš 0…ƒì ¢” Ó’wšÔ…(ñ †…e”І…e”–†…e††‘ᔆƒš†„Æá”†ƒÂ†„îᔆƒí” ‘#†ƒí” …(ñv†…e”†ƒš”†ƒÂ”–.TEXT ÿþÿÿ‡þÿÿþÿÿþÿÿsystem.info[*]]áÿïÿ#UWÿ;ÿ ýTý_ýEþNþÓþ(ÿDÿ1ÿbÿ²ÿ»ÿ=>ôÿëÿ {&ÿ&ÿáþüþÿuÿ›ÿ ÿ¤ÿ/ÿ­ÿæþæþæþæþæþæþæþæþæþæþFÿ]ÿ¶ÿÚÿãÿëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþiÿoÿcÿëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþëþóþ 9þ?þKþþ£þ¯þ¯þ™ÿòÿ warning ioerror / generating symbolic debugging information for þÿÿ D €€D€ í § G · Ü £ “ ƒ s ü Ô >Sgëõß™‚o=í–ÇzCâ F  ß Ç½·ˆ H & ï ± ˜ … v d ; £4PdÍÝ4   ôëЄuÇjè* fEPASCALIOEXTRAHEAFILEOPS EXTRAIO STRINGOP HEAPOPS BACKEND SCREENOPOSUTIL MSGOPS COMMANDI 4ERROR ùh!‘±[…zÒ ‡\1=” Š.­+€uÓ(…zîá 1…z£p…z¢îh1 a= £p‡\a= £€´” ‡\‚€” ‡\”‡\ˆ˜” ‡\”‡\‚€” ‡\š …R£í”†V§²ñ‡\‚€” ‡\†V˜” ‡\”–\Ô-`„-á”`‚€”`ï`”`”–-ï*…S=±…T…P± Õr‡+€°ÓšíÙ…$Ôq‡+q…$‡+³Ÿ¡šå¡Ô€ hŠXšÔš”Š…$‡+²¡Ô‹µ‡+asšp"šÔ š‚€” š” š`” s ⼃€0ÛÚÔé €E° €e° Ô‡+…P£=†V˜sp €p° €P° Ô‡+†V˜s‡+¥U=¥S…P¥T‡+²Ÿ s ° ÔpšÔ"š”š€<” šš ”š€>” –+ <---Line  in include file #6:9Type to continue, to terminate, or 'e' to edit  [ o¬COMPINIT}h!‘F† ” ;h Ä çÄ çĆ9” …9h šÄ çÄ çĆ8” …8h î€dŒLíqÄ çĆ7” …7h Ä çÄ çĆ6” …6h Ä çÄ çĆ4” …4h Ä çÄ ç˜Ä†5” …5h ,íÄ ç Ä ç…7Ć3” …3h ,íÄ ç Ä ç…7Ć2 ” …2h çÄ €P¢Ä çÄ çÄ ç;Ä çÄ çÄ ç…7Ä ç€PĆ1” …1h Ä çÄ ç˜Ä ç˜Ä†0” …0h Ä çÄ ç;Ä–Ra ” !k#‚€Å#ç;Ä#çÄ!qa ” !k#‚€Å#ç…9Ä#çÄ!qa ” !k#‚€ Å#ç…7Ä#çÄ!qa ” !k#‚€Å#ç…6Ä#çÄ!qa ” !k#‚€Å#ç…2Ä#çÄ!qa ” !k#‚€Å#ç…5Ä#çÄ!qa ” !k#‚€Å#ç…3Ä#çÄ!q†> ” …>k#‚€Å#ç…5Ä#çÄ#ç áÄ#ç Ä…>q†= ” …=k#‚€"Å#ç…5Ä#çÄ#ç áÄ#ç Ä…=qa ” !k#‚€&Å#ç…5Ä#çÄ#ç áÄ#ç Ä!q˜hj"²Ô9a ” !k#ç…6Ä"Ò #‚€*ÅŠ#‚€.Å#ç Ä#ç "Ä#çÄ!q!h"íŠÁ…6ç!Äa ” !k#‚€2Å#ç…4Ä#ç˜Ä#ç Ä#çÄ!qa ” !k#‚€6Å#ç;Ä#çÄ#ç ÿÄ!qa ” !k#‚€:Å#ç…1Ä#çÄ!qa ” !k#‚€>Å#ç…0Ä#çÄ!q–À`‚€BņF ” …Fl$`Å$ç˜Ä$çĆE ” …El$`Å$ç˜Ä$ç˜Ä$ç Ä$çĆD ” …Dl$`Å$ç˜Ä$ç˜Ä$ç Ä$ç Ä$çĆC ” …Cl$`Å$ç˜Ä$ç˜Ä$ç Ä$çĆB” …Bl$`Å$ç˜Ä$çÄ$ç˜Ä$çÄ$çÄ$çÄ$ç Ä$ç Ä$ç Ä$çÄ$ç Ä$ç Ć@” …@l$`Å$ç˜Ä$çÄ$ç˜Ä$çÄ$çÄ$çÄ$ç Ä$ç Ä$ç Ä$çÄ$ç Ä$ç ĆA” …Al$`Å$ç˜Ä$ç˜Ä$çÄ$çÄ$çÄ$çÄ$ç Ä$ç Ä$ç Ä$çÄ$ç Ä$ç Ä–ð)`„*¬P­`§¢ÿ³ñ `ˆ­`§p­`§¢¦–+!!‚€FÅ€.ˆ­phˆ­! p­ ¢í¦–»¦‚€Jï‚€iï‚€…ï‚€¡ï‚€½ï‚€Úï‚€ôï¦i­­³ñMcï!íi!ƒÚj"Ô` ” Š` ”  o'cÅ'ç˜Ä'ç˜Ä"Ô'çÄŠ'çÄ'ç Ä'ç !Ä qŠª–ú ¦‚ï‚%ï¦m¤ ál­­³ŸÕ gï%ím$íl%ƒCÚn%‹¦…6j` ”  ¤ ,ç;Ä,çÄ‹‘…7j‹‹;j` ”  ¤ ,ç…9Ä,çÄŠt…9jlŠmlŠi˜j` ” c” #¤ ,Ä,çÄ,ç˜Ä ¤ ,ç#Ä,çĤ lŠ9 ¤ l;j˜hŠ.¤ lŠ'…6j` ”  ¤ ,ç;Ä,çÄŠ…9jŠ ˜jŠ˜hŠÖE&Ôa ” Ša ” !¤ ,gÅ,ç Ä,ç +Ä,ç $Ä&Ô,çÄŠ,çÄ ˜Ó ç˜Ä,ç"Ä,ç Ä!q‹èþ– ᥃놃ôׂ[ņƒôׂ_ņƒôׂcņƒôׂgņƒôׂkņƒôׂoņƒôׂsņƒôׂwņƒôׂ{ņƒô ׂņƒô ׂƒÅ†ƒô ׂ‡Å†ƒô ׂ‹Å†ƒô ׂņƒôׂ“ņƒôׂ—ņƒôׂ›Å†ƒôׂŸÅq†V‚£ëG˜¥;˜¥?˜¥G¥ ¥z¥$¥PÙ ¥Q¥Rq¥ƒq¥ƒp˜¥:†ƒr‚¤ëG¥ 9î¥/¥#¥{¥|†O€‚” †” ¥%¥L¥ ¥N¥ƒì¥(¥+Ù¥)¥ ¥¥Ù¥.¥¥'¥*¥"¥!¥¥ƒêÙ¥¥J¥j᥃籠R¥„Q¥„O¥„N¥&˜¥‚o†‚k‚¥ÅšÒ ¥„T¥„SŠ¥„T¥„SšÓÙ¥,¥-¥…b¥…c¥…d¥„Z¥„Y†„[p᥄P–~ †€™ƒ©Çކ€•†€™ÐÛÇŽ†€‘ƒ­†€•ÐÛÇŽ†}ƒ°Çކ€ƒ³Çކ€‰ƒ·Çކ€…ƒ¹Çކ€ƒ½ÇŽ Ç¥€–÷ €›‚Áë†è” ¥S¥U¥T› › s‚Ås ¥¥H„-‚£ëP†€ž×¤V‡V˜Ä‡Vç˜Ä‡Vç˜Ä‡VçÄ‚Ìq„€G„-ÇuÒ‘‚£sp›››› t„‚£èŸÕÕ„t‚愘” °‚넘” °¡‚ð„˜” °¡‚õ„˜” °¡‚ú„˜” °¡‚ü„˜” °¡‚þ„˜” °¡Ô&„¤V„V„˜€P” „V‚‚€U” „VëP¥$ „§¢q„08„§íp8„§¢í¥ q qš íq…Pq…zqšÔCš ” ‚‚q›˜qš€-” š€0𢔠š€]” š ” ‚‚qqq¥¥H†€ž×¤V‡V˜Ä‡Vç˜Ä‡Vç˜Ä‡VçĆ<” …<¤V‡Vç˜Ä‡Vç9ćV‚‚ŇVç˜Ä‡VçćVç ćVç ćVç ćVç <ćVç ćVçćVçćVçÄ>ƒ‚Úñ•w>€!°Õ§q>Ó w†‚‚!ņƒð†Å…ƒïí¥ƒï†‚p…ƒïפV‡V†Å‡Vç <ćVçćV熃ðņƒð˜Òq>€(†€ÐÛÚÔð>ÒqŠw>ÒqŠw„” †K ” …K¤V‡Vç ˜Ä‡VçćVç…<ćVç9ćVç…HćV7ćVç…|ćVç ćVç ‡Ä–€INTEGER REAL CHAR BOOLEAN STRING TEXT INTERACTINPUT OUTPUT KEYBOARDFALSE TRUE NIL MAXINT SEMAPHORPROCESSI =READ.READLN.WRITE.WRITELN.EOF.EOLN.PRED.SUCC.ORD.SQR.ABS.NEW.7UNITREAD.UNITWRIT.CONCAT.LENGTH.INSERT.DELETE.COPY.POS.7MOVELEFT.MOVERIGH.EXIT.IDSEARCH.TREESEAR.TIME.FILLCHAR.6MEMLOCK.MEMSWAP.REWRITE.CLOSE.SEEK.RESET.GET.PUT.SCAN..8BLOCKREA.BLOCKWRI.TRUNC.PAGE.SIZEOF.STR.GOTOXY.UNITSTAT..2DISPOSE.PMACHINE.SIGNAL.WAIT.START.SEMINIT.ATTACH..VARNEW.VARDISPO.VARAVAIL.àðP?ODD.CHR.ROUND.SIN.COS.LOG.LN.ARCTAN.EXP.SQRT.ATAN.MARK.RELEASE.;MEMAVAIL.IORESULT.UNITBUSY.PWROFTEN.UNITWAIT.UNITCLEA.HALT.0WÿoÿuÿŒÿ“ÿ—ÿÇÿÒÿÙÿðÿõÿùÿKERNEL HEAPOPS CONCURRESTRINGOPREALOPS LONGOPS FILEOPS PASCALIOOSUTIL GOTOXY SCREENOPDEBUGGEREXTRAHEAEXTRAIO PERMHEAPSOFTOPS COMMANDICOMPUNIT* 8|tø€€xø€4R0.177 SYSTEM.SYNTAX2Output file for compiled listing? ( for none) /PRINTERRPRINTER::/CONSOLEECONSOLE::#11#66.TEXT.TEXT!Pascal compiler - release level [< 0>PROGRAM D ‚à“zb«¥ Á  DECLARAT² h!‘å.Äg„Ѐ"ÛÇŽ>†€•ÐÚñw„І€•ÐÛÇq >†€•ÐÚÕ>°Õ7l†€ž7×yÓ7ð…-Ôa” Ša” !ï!¤ ,Ä,çÄ,çĘjmq>Ò.c ” #¤ ,†Å,ç!Ä,ç"Ä,ç %Ä,çÄ#q%ím#jqŠwgÐð>ÓÀ!ç"Ä$¥>ÒqŠw‹ï>°Õ`Çcq q#æÒYa” !ï!¤ #¤,ç-~Ä,çÄ,zq Ô €”w,ç˜Ä,ç-ç xÄ,Ä>ÒqŠw„Ð`fq!çfxÄ!z Ó€kw‹ö#~i!…2°>°¡Õ‚q„Ѓ€ÛÇ`fq ;ÒZ&²&€ÿ²Ÿ Ô€Ëw€Pn…-Ôa ” Ša ” !¤ ,çÄ,&¢Ä,çÄ,çÄ,ç;Ä,çÄ,çÄ,ç…7Ä,ç&Ä!ïŠw>ÒqŠ wŠ^!;ÒZ>ÒVqa” !ï!¤ ,ç…8yÄ,…8xĄЃ€ÛÇ`fq ;Ò&²&€$²Ÿ Ô€ËwŠ!&qÄŠw>ÒqŠ w!˜Ó.!xÄŠZa” !ï!çÄ„ÐÛÇ`fq q Ô€”w˜h!¤ ,ç Ä,çfxÄ,Ä>ÒqŠw„Ð`fq!çfxÄ!z Ó€kw!˜Ó+!¤ ,yÒ#,z˜Ó,z…9Ò5wŠ,|,{²ñ €fw,ç,|Ä/!Ä„ÐðŠ/˜Ä–7…-ÔG"aq+h Š%†„U” …„UiŠ!ç” !{iŠ!ç” !ziŠÖ€ Ó!"Ä!çÄ!ç˜Ä!ç˜Ä–›!˜Ä>†€‘ÐÚñ wbІ€‘ÐÛÇq >†€‘ÐÚÔ">†€•ÐÚÔ bÐ! ŠbÐ! “bÐïŠ!˜Ä!x˜Ò ÄŠ !xxÄ–²>`ÐÚñw`Ðq –n%˜±#¡ÔX%j"yŠO%;±%…9±¡Ô%%a`q !³Ôn$Äi! ³ñ!íi!!¢îi$$xíÄŠìŠ!"z$#ïÔ"za`q íh ³ñn$ ÄŠÖ€ –>€#ÒI†€ž7×j"{hi ˜±!å¡Ô x…Ó yhŠi€¦wŠå!ñ`”  k#…Ä#çÄ#ç"{Ä"ç ÄqŠwˆÐï>±¥ :ñq:Ô›>ÒqŠw–>Ówˆ ÐÛÇq >Ò`` ”  k#†Å#ç˜Ä#ç˜Ä#çÄq>€)°? °¡ÔqŠwˆ ÐÛÇabq q ç!Ä ç bxÄ>Ò qˆÐïŠwŠœ– >Ówˆ ÐÛÇq >°Õ„b ” "m%†Å%ç˜Ä%çÄq>€)°? °¡ÔqŠwˆ ÐÛÇcdï"q"ç#Ä…;i!˜Ó'!"¹Ô!~ç"~Ä!…;Ó ç!ÄŠ!¥;!h!iŠÕ>Ò qˆÐïŠw‹vÿ…;i!˜Ó0†!ÅÇbq "˜Ó!~ç"~Ä!…;Ó ç!ÄŠ!¥;!h!iŠÌ…;˜ÓšÔš ” š…;” €uw˜¥;–i ˜j>Ò8c ” #¤ (†Å(ç"Ä(çÄ(ç˜Ä…"Ô(ç <áÄŠ(ç …HÄ#q#jqŠw>ˆ ÐÛ†}ÐÛÚñwˆ ÐÛ†}ÐÛÇq >±¥ :ñq:Ô‹>ÒqŠw"iˆ ÐÛ†}ÐÛÇdeï"˜Ó?"¤ (ç$Ä(ç 9Ä9%¢¥ (j(˜Ò#$˜Ó$y °…"å¡Ô(熀ž7×zĆ€ž7×ç!ÄŠ½>Ò qˆÐïŠw>±>†}ÐÚå¡Õÿ…;o'˜Ó0†'ÅÇcq #˜Ó'~ç#~Ä'…;Ó&ç'ÄŠ'¥;'n'oŠÌ…;˜ÓšÔš ” š…;” €uw˜¥;– , ­…" … …¡ Ô¦Ši†€ž7×xˆq­˜ÓT¦­h æŠ; æ­°¡ æ °¡¦Š+ æ­€ °¡ æ °¡¦Š æ­€8°¡ æ °¡¦ŠÖ€­ñ€ wЦ­åÕ­Ô­Ò ˆ” Šˆ” ­­ÄŠ'­Ò ˆ” Š­€8Ò ¥+ˆ” Šˆ” ­h †Å ç˜Ä ç Ä­Ô ç ÄŠ ç Ä ç9Ä çÄ çÄ ç …HÄ ç …{Ä ç <Ä­ÔH…N€ÿ²ñ1w…Ní¥N…ƒïí¥ƒï…ƒï²ñq†‚p…ƒï×i!†Å!ç <Ä!熃ðÅ!çÄ᥄P…{€ÿÒ€ûwŠ ­ñ…{í¥{­Ò çÄŠ­€8Ò çÄŠ çÄ­qŠ)­æ¥ <­æ Ó­æ ¥ ¥{­ñ€ÀwŠ <­ Ò€¿wq–å ˜ho>€+Ò 'Ôwqo>€,°Õq>ÒqŠ w…-Ô ˆ ” Š'Ô ˆ” Šˆ” ­¤ (ç Ä(ç˜Ä(çÄ…-' Ô(çÄ(çÄ­h˜¦9Œ¢¥ m%²ÔK>Ò@ˆ ” ­†Å­ç˜Ä­ç­Ä­ç …HÄ­q­çÄ­¦q>ÒqŠwŠw%튯Ljq ­~y²ñwŠ­ç­~Ä­ç­~Ä­ç” ­z¤ (çÄ(çÄ(ç­Äq>nq&±Õ ÿ&Ó w> ÓwŠqŠw>ƒ€ÚåÕÇþ>Ò_Ljq ­~¦­a'’Ô!!¢²Ô­¤ (çÄ(ç!Ä(ç!Ä­¤ ({h(ç­Ä(Ä­¦ ¦­˜Òâ9­ Œ¢¥ qŠw­ ­{y°¡Ô6w– 9 "h ~y² ~y° Ô ç ­ Ä­ ~x¢¦ Š- ç ­ áÄ­ ~x¢¦ 9 ~x¢¥ ~q Ô ­ ¢¦ Š­ í¦ –5˜j9¤ ¤ >„ÐÛÚñwˆ ЄÐÛÛÇq >°Õ­Ԁwwq>ƒ€Úñwˆ Ѐ!ÛÇq >ƒ€ÚÕÚ>ƒ€"ÚÔ%>¦q9Œ¢¥ ­að !ç!Ä!ç˜Ä!~l‹U>ÒnqŠn˜i¤ >ÓwŠD&Òc ” Šc ” #¤ ,†Å,ç˜Ä,ç!Ä&Ò,çÄŠ,çÄ,ç …HÄ#q#i*í¤ q>ˆ Ѐ.ÛÚñwˆ Ѐ.ÛÇq >±¥ :ñq:Ô‡˜l>°Õq>€3Ò¤ q&Ò7w>ÒHÇcq q#~lo$˜Ó-&Ò)$y Ò€ywŠ$…1Ò€¯wŠ$y²Ô$xoŠ$q Ôo9*'Œ¢¥ Š+Ô"$yÓ8we” %ç$Ä%$xÄ%çÄ%l¤ $˜Ò;lŠ&Ò ¦9*Œ¢¥ Šw>ˆ Ѐ(ÛÚñwˆ Ѐ(ÛÇq !h˜k!˜Ó!k!¤ ,ç$Ä,iŠí#˜Ó#ç"Ä j>Ò&q>ˆ Ѓ€%ÛÚñwˆ Ѐ!ÛÇq Š>Ów‹þ>Òq„Ј ÐÛÇðŠw.ç9Ęh¤ "˜±Õˆ"¤ ,i,ç Ä,æ€ÀÚÔ,ç(Ä(Œ¢¤ Š_,~˜ÓZ,~yÒ,~zlŠ,~l,æÒ ,ç (Ä(í¤ Š ,æÒ"$$yÒ+!˜°!~,~± Ô $z{¤-ç (íÄ-ç (Ä(Œ¢¤ ${l$yÓà"h!j‹rÿ/ ÄŠ/˜Ä–é$Ä%h ˜Ó( j"~˜Ó"æ°"~y²Ÿ¡"~y±¡Ô$$x"~x¢Ä"hŠÔ%h ˜Óv j"æ€ÀÚÔ "ç"æ$x¢ÄŠ"æ ³ñ "ç "æ àÄŠ "ç "æ $x¢Ä ~i!yÒ!zi!y° ˜° ~ ~± ¡Ô"!z{k#ç #æ $x¢Ä#ç #æ $x¢Ä!{i!yÓÞ"hІ–S‡Ô1…'Ô9w<¤ …N¥ …{¤ ¥{>h>ƒ€(ÚÔqŠ:wh ¤9¤¥ ¥#m>Ò Šw…Bj…H¤ 7¤ …ƒî¤…|¤ "¤"æ ¥|…H³ñ…Hí¥HŠ€ûw7³ñ.7í¥†€ž7פ$Ô‡"ÄŠ‡˜Ä‡ç˜Ä‡ç˜Ä‡çÄŠ€úw‡Ò"‡Ô €(Ça" ŠÇa" $ñ"ç!Ä‹´‡€8Ò.…HÓ€>wÇa" $ñ"¤‡ç!Ä9í¥ ‡ç‡æíÄ‹€ Ça" $ñ"ç!Ä>Òeq>ÒM$Ô€zwÇaq !~k"¤‡ç#Ä#˜±‡æ °¡Ô##yÚñ €xw‡ç˜Ä9#x¢¥ ‡ç‡æ#x¢ÄqŠwˆ ÐÛÇq Š$ñ€{w9î>°‡>°¡ Ô‡ñqŠw>€"°… …¡ "æ ° å"˜±¡Ô "g"ç"æ'¢Ä$Ô 9'¢¥ …ƒî'¢¥ƒîŠo>€5ÒW…HÓ€·w… Ô ……"å¡Ô€¸w‡Ô9w"¤‡çćçÄš ” ‡q¥%q>ÒqŠwˆ Ðï‹…"Ô ‡ñ"çÄ‹ÿ‡>€"° … …¡ ÔU%…å¡Ôw$Ô€¡wŠ ‡ñ"çÄ>€"Ò‡Ô<wq>ÒqŠw‡Ôˆ Ѐ(ÛÇ Ðï‹›%…å¡Ôw$Ô"i!˜Ó!~˜°!泟¡ÔIw!iŠå¥M¦„” "¤‡çćçćçĤ‡¤…ƒî¤…K¤‡Ô q€1Òq“>Ò!… …¡Ô€ºw„ Ѓ€0ÝÇq Šq>Òq>Òq >Òq …HÒ7¥L>ƒ€2ÚÔ7>hq €!Ò… …¡Ô €¹w„ Š „ Š „ >ƒ€6ÚñÉ>ÓC…"…  >ƒ€:Ú¡å>ƒ€>Úå¡Ô(…j²Ÿ! å>†€ÐÚå Ôw„ Ѓ€BÝÇq >†€Ðƒ€FÛÚÕÿ¥M–þÿØÿåÿñÿ®ÿ®ÿßÿÂÿÕÿéÿÀÀ€À€€€€D Tu˜Ÿ·w‰Ju žÛÐ, ÚUSESDECLgh!‘3‰Ô"i`a§È`a§È kŠ"k–Œ$Ä"Ä$x²"xå¡Ô:ˆ#$x׈¹Ô#ˆc$x×xðiaÉh #ÚÔ"ÄŠ$$xíÄŠ$$xíÄŠ¼‰€Óðm–öj`Çak!#° ñ†ƒšˆ#” Óšw#j!#° ÔÐ!l!Ôˆs ×x力¦"Ó†ƒšˆ” Óšw–B*q…ƒ™Š`†ƒrëPŠ `‚€ëPŠÖ€ `§í¤* ‡*¢q`08‡*p8‡*¢¥ ®q…Pq…zq¥!–*l#Ä…?h ˜±#xå¡Ô ˆ¹Ô#ÄŠ hŠã#xÔ*¥ƒ™ˆ˜ˆ†ƒô×¹Ÿ¢aq†‚p!׿ ¦qŠ|#Ä…Ô_†ƒšˆ” Ó;†ƒš”†ƒš‚€”pÓ#ÄŠ†ƒšˆ” Ó#ÄŠ¥ƒ™Š¥ƒ™#xÔ ®±¦¥#xÔñ€¾w#ÄŠ€»w­Ò€Ãw#Ä#xÔG¥"ˆbqÔ"q¥ Š…N¥ …Ní¥N…N€ÿ²ñ1w<ˆ˜q¥{…ƒ™ÚÔq­¥Pqq–ˆ }˜Ó }ï |˜Ó |ï ~ð –&`q+Òn yÔj&m çÄ%yŠ\%zÒ-%{i%{jk!˜Ó!!!dð $˜Ó#Ô&ç$ÄŠ"ç$Ä$jk!iŠÛŠ+%zï Š%%zï Š%zï Š%{ï %zï Š%z Š %zï ŠÖ€–Û%˜Ò†€ž7×xe$p&Ó €hwšîÙ#˜Ä†€ž7î×x`$p&±Õž7î¥%æ‹G# ” ‹B# ” %~yÒ-a ” !j"Ä"ç%æ zÄ"ç%æ yÄ"ç%æ çÅ #xç !ÄŠG%~…9Òa” !Ä!ç%æ çÅ#xç !ÄŠ&%~q Ôa€‚” !%æ Å€‚#xç !ÄŠ #xç %ç xÄ‹À# ” #xç %æ Ä#xç %æ Ä‹¨# ” #xç %æ Ä#xç %æ Ä%æ Ô#xç %æ Ä#xç %æ ÄŠ|%æ Ò#” Š#” #xç Ä#xç %æ Ä#xç %æ Ä#xç %æ Ä#xç %æ Ä%æ Ò"#xç%æÄ#xç%æÄ#xç%æÄ#xç%æÄŠ#xç%æÄ#xç%æÄŠ # ” ŠÖ€"#x%Å#xç˜Ä#xç%~Ä#xç%æÄ#xq7í¥#xæÀÚÔ#xç%Ä%h ˜Ó ~ hŠó#x~ –`!xÄ"˜Ó$"yÒ` ”Š"…9Ò`”Š "q Ô`€‚”–½!}˜Ó!}ï !|˜Ó!|ï !ç˜Ä!ç˜Ä!æ‹„!~!ç ï a ”Šya ”Šra ”Ška ”Šda ”Š]!˜±†€ž7î×x`!p&±¡Ô!ï !æŠ/!æ Òa”Ša”Š!æ Òa”Ša”Š a”ŠÖ€.Š a ”ŠÖ€3–Ò y˜Ó yï`”–2!h yŠQa”ŠM z çð z çð a”Š8a”Š1a”Š*a ”Š# zð a”Ša”Ša”Š a”ŠÖ€>–„!{˜Ó!{ï!z˜Ó!zï!x`q+° y¡Ô$!xšÔ­í¦­€2ÒqŠ š€.” !˜Óa”–šÔš ” ‚€Lqˆqq>Ów˜†` q>Óë>Ów†€ž7×x˜Ó †€ž7×x †€ž7×{˜Ó †€ž7×{i…„U˜Ó…„U7î¥q>¦šÔq–„„«€% q„08p8¢¥ šÔš ” ‚€[q„q°¥->¦…-Ô.7í¥†€ž7טĆ€ž7×ç˜Ä†€ž7×ç˜Ä†€ž7×çĘ¥„Ua!Ô^b ” "¤‡„Ňç…:ćç˜Ä‡ç Ä"¥:¥ 9îˆ Ðƒ€_ÛÇ” €%q…!Ôq¥!'¥Pq…-ÔŠ…-Ô € Çq q7-(¥ '¥ %¥{/¥ƒî–Ê…H²ñ€½w>ÓwŠ}…"ÔG†ƒð†¹Ô … …å¡ÔŠ…:h ˜Ó †¹ÔŠ Š hŠê€¼wq>Ò € Çq q>¤Š2†…<¹Ô2w…:h ˜Ó †¹Ô 3wŠÅŠ hŠå†˜‡±¥ :ñq:Õjÿ‡ÒqŠw…"ñ¥–*SYSTEM.LIBRARYôÿëÿ*SYSTEM.LIBRARY ¡ÿÕÿÛÿáÿáÿçÿçÿñÿ÷ÿ ¶þ¾þ@ÿ@ÿ@ÿXÿ„ÿ„ÿ„ÿöÿÎÿâÿöÿ yÿŽÿ•ÿ‡ÿœÿ£ÿ£ÿ£ÿöÿ ¬ÿ³ÿÈÿÏÿÏÿÖÿÖÿÝÿèÿïÿöÿSelecting declarations from Using ëá‰p8F„D}H £„ þSTRUCTURéh!‘Àh"i!~ˆ ® • Ô6® ® ¢²ñ ®í¦¦ h!ç ®Ä!ç Ä!ç ® Ä!ç ® Ä® ® ¢¦ Š*®® ²Ÿ¢¦¦ h!ç Ä!ç ®Ä!~˜Ó ®!~x¢¦ ­˜±¡Ô,­i!æ Ô$!æ Ò!ç ÄŠ!æ ²!æ ²¡Ô !ç Ä!ç Ä– ˆ ” ­ m%ç˜Ä%ç˜Ä%ç Ä­­ Äq>°ÕÊ…-Ô ˆ ” Š® Ô ˆ ” Šˆ ” ­m%ç˜Ä%çÄ%ç˜Ä%ç Äa†Åq>°h>Ò,­aÅ­qqa†Å>ÒqŠwˆÐÛÇq > ÒM†aÅLjq ­~¦ ­ ˜Ó/­ y²Ô$…9­ qÔ€mw­ç­ Ä­ ç­Ä ԭnwqŠwŠwˆÐÛÇq ­ ®® ²Ÿ¢Ä˜¦ ®¦ ®¦ ® ¦® ¦˜¦ˆÐÛLjˆq­ z˜Ó­ z~­qñ€owˆ” ­m%ç­ Ä%ç­Ä%çˆxÄ%ç Ä­¦ ­¦>±¥ :ñq:Ôž>ÒqŠw>ÒqŠ w>Ò˜¦ŠˆÐ€(ÛLj𮭠²ñ ®¦ ® ¦Š®­ °® ­²Ÿ¡Ô® ¦­˜Ó­z¦­ç­Ä­®® ²Ÿ¢Ä­¦ŠÜ>Ò qˆÐ• Šw>±¥ :ñ q­ ¦­¦ :> ° Õïþ­ ¦­¦ ­ ç­ Ä–T˜i˜¤ ˜h„„ÐÛÇŽ>ƒ€Úñw„Ѓ€ÛÇq >°Õã!j>ÒF…-Ôd ” Š­ Ôd ” Šd ” $¤‡†Å‡ç˜Ä‡ç"ćçćç Ä$j$qqŠw>Úñw„Ѓ€ÛÇq >±¥ :ñq:Ô>ÒqŠw„Ѓ€ÛÇ„ „ • )˜Ó )y Ò€lw"!Ó"¤‡ç)Ä""h‡jŠè$i>Òq>ƒ€ Úñw„Ѓ€ ÛÇq ‹ÿ˜j!˜Ó!¤‡l‡ç"Ä!j$iŠé>ÒŠ‡˜Ä–ˆ” ­­Ä­• ­h ç˜Ä Ä çÄq>Ò~†€ž7×x¦­˜Ó ­ˆ†p&Ò­æÒŠ˜¦Š˜¦­˜Ò'ˆ ” ­h †Å ç­Ä ç…;Ä çÄ­¥;Š­~˜Ó­~y ±… Ô ­ç­~ÄŠ€lwqŠw–Ï ¤ >Ò‹¹>€+Ò q¤ >†}ÐÚñ w„І}ÐÛÇq >€,°Õ;q>ÒqŠ w˜i…-Ôb ” Š)Ôb” Šb” "• "¤ ,ç!Ä,ç˜Ä)Ô,çÄ,çÄ,çÄ"i„Ѓ€ÛÇ`f• !&Ä ˜Ó* y²Ô …9Ò€mw˜hŠ ;Ò€•w˜h"ç ÄŠ€qw˜h>±¥ :ñq:Õmÿ>ÒqŠ w> ÒqŠw„Ðbf• "˜Ó "y Ò€lw"„ )• Ô++¢²Ô!¤ ,çÄ,ç+Ä,ç+Ä!¤ ,{h,ç"Ä,z˜Ó+,z„ gq ,|Ô '(£,~ínŠ&'(£íŒn&²Ô4wn,&Ä!j i!˜Ò½‹O>€-Òwq7k7³ñ7í¥†€ž7פ ,˜Ä,çÄŠ€úwm¤ „ÐÝÛÇa%*²Ÿ¢mb” "• "¤ ,熀ž7×xÄ,ç!Ä,%Ä,çÄ#¥> ÒqŠ w‹Ó>€*Ò|q> ÒqŠw„Ðaf• !˜Ó!y²Ÿ!;° Ô€sw˜iŠ !…9Ò€rw˜ib” "• "¤ ,ç!Ä,çÄ!˜Ó#!„ gq ,'¢Ä(³Ÿ'ﲟ Ô€©w,ÄŠ,ÄŠR>€.ÒMqb” "• "¤ ,ç Ä,ç˜Ä> Òq„Ðaf• !…5Ò€lwŠ˜i"ç!Ä!˜Ó ",!x¢ÄŠ"€(Ä."Ä–      ,b ‰„7BODYPARTÉh!‘‹j>ÒiqˆÐ`aq$˜Ò€žwŠR$y Ó€¢wŠG$z˜ÓB q …9° Ô€ŸwŠ1$z~ qÔ$${h ˜Ó k#|!Ò #xj#zlŠŠ#{hŠæ$xj˜lŠ€twŠ“"m–ÞˆÐðð˜hi2˜Ó 2j"yÒ"z˜Ó"zk#xi#yÒ#{hŠ€tw>Ò ïi!ð­ ÒðŠ ð–2˜Ó72y°2…9±¡Ô(­ Ò€mðŠ€nð….2;±¡Ô2a`q !ð ð€KðŠ€sw–72˜Ó 2y³Ô€}w;¥–™ d„Ѐ ÛÇŽ„ „ÐÛÇŽ`dЄ ÐÛÇŽ,ƒ€ÚÔ“Š!,ƒ€ÚÔ“Š,Š Š ŠŠÖ€ –¨08 È8í¥ –º`08p8¢¥ –Ë08 €€¢È8í¥ –!ƒ€3ÚÔ!ïŠ9!Ⴠ5ÚÔ !áï€aïŠ$!€ ³!€ÿ²¡Ôï!ïŠ!hï`Éï`Éï–< €²Ô € ¢ï ï– '°Õ˜&Ò4çî×xlqh€"j…„Ri…„R$¢¥„RŠ1lj$²ñ%4ç$î×xÓ$²ñ …„Qi…„Q$¢¥„QŠŠ$îlŠÖ2$Ä$²ñ/…„O$¢¥„O"$Œ¢q!ï$ï$mk#%²Ô4ç#î×xï#íŠìŠ$Ò 4çî×xïŠ,'ï'ƒ€7ÚÔ&ïŠ'€f°&³Ÿ¡Ô 8î¥ €x&¢ïŠ&ï –ó"°" ° "€&° Õ©…H!£Ò-" ° ²¡Ô€/ ¢ïŠ"Òï" Òï"€&Ò€%ï ï Šs!Ò," ° ²¡Ô ¢ïŠ"Òï" Òï"€&Ò€$ï ï ŠC…H!³ñ""Òï" Òï"€&Ò€Yï!…H£ï ï Š" °!Ú¡Ô€,!¢ïŠ"ï!ï ï Š)"€X°"€k° "€)° Ô "ï!ï ïŠ"€EÒ "ï!ï ï –w%<±kj%þÚ&°¡i…H&£Ú#å¡h&Ò#Ô!Ô€o%¢ïŠïŠïŠ-&…HÒ #ÔïŠïŠj#ÔïŠ Ô €î…H&£¢ïŠï#!å¡Ô%ï" å¡Ô…H&£ï$ï–œ"qh þÚÔ€o ¢ïŠï ï!ï–Ã"z˜Ó"yÓ"za`q !£í#xæÓ€w#"Ä–Ý`%Å!° …7° q  ¡n–ð …7q q  i–¨"¢i­€Ô !íi"퀲ñ!íi­€ƒyÒ9ð"Ò …„P²Ô…„Q¥„P"°…„P…„Q±¡…„P±¡Ô q…„PáðŠ`!q…„Qð­€Ô"íð "ð#î08"p8"¢¥ !£h!£Ô íh…„Q ¢¥„Q…„O ¢¥„O­€ƒyÒ€E"ð9ð9"¢¥ 9…²ñ9¥–'‚‡€ƒ˜±‡€„x˜±¡Ôk‡€ƒq ¤€‡€„x…7Ò,‡€ƒ…7qÔ‡€„z€Ô`„zÈ`!‡€„‡€ƒÄŠ.‡€ƒq ‡€ƒy° Ô‡€„z¤€‚‡€‚燀‚y!‡€ñ‡€„‡€ƒï –€„F! ï …7qå y±¡Ôïï–S ïï–y…N€ÿ²ñ€úw…N‚€=q…Nï…Ní¥N–‡€úï ï–—ï€ûï ï–ª …ƒëÄ…ƒëë–·€üï ï–•2˜±ÕÑ3‹®2yÒD4j'h"çî×xïï"zki!#²Ô%!"zÒ"yh ïïï"ç!î×xïïï!íŠÕŠ)2y°2…9±¡Ô4ïŠ2…4ÒïŠ2…9ÒïŠïŠ=4Š0 …H5£6ïŠ)€f5ïŠ"€IïŠ2…9Ò€sP2xïŠ €'ïŠÖ€AŠŠÖ€H2j"y°"y°3±¡ 3±¡Ô2x稜é!h x˜ÓF zŠ?€&…H {£ |ïŠ5 {ÓwŠ€DïŠ#€JïŠ x…9Ò€tïŠ xxïŠ €HïŠÖ€M–<2˜ÓH3Š9†ï Ô†…2ï ŠBwŠ&4Š…H5£6ïŠ5Ó€g5ïŠ €gwŠÖ€TŠÖ€Y¥¥¥–›2˜ÓU3Š9†ï Ô†…2ï ŠBwŠ&4Š…H5£6ïŠ5Ó€g5ïŠ €gwŠÖ€]ŠÖ€b3Ó¥ïŠ4Ó稜1 ‡¤.~y°¤-Ô.~z¥Š.~¥¥‡Ä.拪2yÒŠ.æ ¥.æ ¥¥‹– …H.æ £.æ 便‹†€ž…פ/yÒ¥/z¥/{.æ ¢¥Š /zï¥.æ ¥.æ Ô‡.æ Äï¥.æ ï.æ ïŠ8.æ Ó€–wŠ'.æñ€gwŠ¥.æ í¥.~˜Ó .æ.~x£¥Š¥ŠÖ€f2˜Ó2y²2x²Ÿ¡Ôï¥>†€‰Ð„ÐÛÚñ€;w†€‰Ð„ÐÛÇq >†€‰ÐÚÕx>°Õ^`†Å ˜Ó y€ÀÚñ€Šw˜hïq„Ѓ€nÛÇïï2˜Ó 2yÓ€qw ˜±Õ  ¤.z2qÔ;.z˜± q å¡Ô-.z„ „ q ….Ô ,ï+ï€Kï,Ó,àï,²ñ€#"ïŠM.yÒD.z{¤/~2qÔ5….Ô …H/æ £/æ ï …H/æ £/æ ï€Kï-ñ …H/æ £/æ ï€#‹w.{¥¥¥¥2˜Óe.|Ô+‡.}Ä.}Ò¥ q ….¡Ô€l ¥€X.~.}ïŠ6 yÒ z{¤ …H/æ £/æ íï ï€WW2xï2y²2x²Ÿ¡Ô¥>±Õ°þ>ÒqŠ w‹î>°Õ‹2˜Ó 2yÓ€Œw˜¥q>Òp2˜Óh2z„ q*˜Ò €˜w˜¥ŠU*¤.~¥4Š6.æ ¢¥Š5.æ ¢¥Š wŠÖ€p.æ Ô‡.æ Äï¥.æ ï.æ ï2˜Ó2y²2x²Ÿ¡Ôï¥qŠwŠ]2˜ÓW2¤.y°.y ° ÔE便¥.yÒ.z¥Š.z¥2˜Ò>wŠ 2…7Òï¥2˜Ó2y²2x²Ÿ¡Ô¥Š€wq>„І€‰ÐÛÚñw„І€‰ÐÛÇq ‹}ý–Z >Ò…€€ ÛÇ`q qŠw…DhbÐ aï–Œ !h æ° ~y€PÚå¡Ô…H æ £ æ ïŠ …H æ £ æ ï–¦ ­;Ó­’­’€K’–„ ‡Å/¤ (z{~h ;Ó baq ­ñ|({yÒc„ Å*{kc({ï&*yÒ5*z{¤ …H)æ £)æ í’ …H)æ £)æ ’' …H)æ £)æ ’'Š+*{x’+Ò ¦ *æî¦ Š *zˆ ˆ q ­ ’­ ’‹×({x’*y°Õ€*z{¤ …H)æ £)æ ’ …H)æ £)æ ’€#’*|Ô*~’€"’*~’ ’Š€m’*{xÓ *{x’ ’(|Ô (~’ ’Š({xÓ ({x’ ’€n’'’ŠJ*…9Òš¦ Š*x¦ (|Ô ­ (~Œî¦ Š ­ ({xî¦ ­ ³Ÿ ;±­ !²Ÿ¡ Ô4w­ ’’–Œ'm%y°&y°¡Ô/%{y€ÀÚ&{y€ÀÚ¡Ô %{&{ï(lŠ%{&{ql$%z&zq¡lŠ+%y°&y°¡Ô%zcaq &zb`q '&q#"°¡! °¡lŠ'&°l$¤ –à­æ Ò#¦ ® ³Ô …H­æ £­æ® ¢’® îŠàŠ$…H­æ £’á’’€f­æ ’­æ ’–Ij$˜±#˜±¡"¡ÔP#~$~q#æ$æ°¡j"Ô5$æ€ÀÚÔ $æ#æï+jŠ ih#˜Ó#~#~°i$˜Ó$~$~°h! °j$l#kŠ¥"$#°¡m–¤€ÀÇ`q i ˜Ó æ Ò æhŠ h"æj" +ñ€wŠ€w!æ Ó€¤wŠ!æ °!æ °¡ÔEwq*–ø3ÒF4 Úñ€w­­Ó0­08­­£p0­0­8­£p’­˜Ó­y€(ÚÔ 2x­xÓ€wŠ€šw–ؤ­¤‡il‡æ Ò‡æ Ò‡æiŠ ‡æ ÓwŠ‡æ ³Ÿl¤ ‡æÒ$ñ ‡~˜Ó‡~x¤ (¤¤ )‡²Ôð)íŠñ>°ÕÕ!˜Ò€~wq!æ€ÀÚÔ!)‹¤8¤ˆÐ€"ÛÇð8¤2˜±!˜±¡Õ†!~y°o'Ô!~zjŠ!~j"˜±Õf"yÒ"/˜±#"°¡Ô /2(ñ€ŽwŠ 2¤"k†"&Š˜¤!æ°Õ"†ð Ô"ð Ô†"ð ‹ 2y²Õš2…7°3°¡m"x2x±3± ,2x±'¡ nð"yÒ&Ô€G"xðŠ8î¥ "x€ ³Ô8î¥ Š["yÒ2;Òð…8¥&Ô "xððŠ8î¥ Š9"y°….¡Ô"|ð"{ð€KðŠ"2;°"…9q¡Ô €Lð…9¥Š %"q ¡Ô…2¥Šj"yÒZ2yÓ€Žw9ð‡‡Ó0‡08‡‡£p0‡0‡8‡£pð2xÒ €xð€ÄðŠ€E2xð9ð92x¢¥ 9…²ñ9¥Š ð"q ÔðŠ,'ñ "2qñ€ŽwŠ!æÒ,!˜Ó!i>±Õ6þ>ÒqŠw!˜Ó€~w­¤‡æ ÒN‡æ °‡æ °¡ÔEwŠ6‡æ Ò!¤ )³Ô …H‡æ £‡æ)¢ð)îŠåðŠ‡æ ‡æ ‡æ ðŠ ‡æ ³ñ‡æ áÒ€?ðŠ ‡æ ‡æ ð­~¥–;"æ Òii"æ h>ÒqŠ €tÚÔiŠ w ƒ€wÚÔ ƒ€zÚÔïcЀ"ÛÇïï ÚÔ cÐ! •ŠcÐ! ï!Ô >ÒqŠwŠ%–T0 0 í8 £p0 !È8í¥ –‚2…9°"x…9° ! Ô2;Ò€Lð…9¥"x;Ò €Ì ï-"…9Ä–­ xy°2y° Ô2;Ò ð…8¥Š x;Òð …8Ä–‚>†€…ÐÚñ€:w„І€…ÐÛÇq ˜¥>†€…ÐÚÕ¢>‹|€¾Ç`q q æÒ „Ð ’¥Š$ æÒ ¤‡~¥¥†‡ç xÄŠ „Ð e’2˜Ó2¤‡yÒ‡z¥‹);¥¥††xÄq‹…9¥¥††xÄq‹…Ò…7¥Šd ” $…2Å $ç…Ä$¥¥††xÄq‹Ùd” $çÄ$…qÄ$¥¥††xÄq‹·q„Ѐ ÛÇ’>ÒqŠw‹™q„Ðï2’€e’2˜Ó 2…6Ó€‡w˜¥‹vq„ ÇŽjd” $¤‡ç˜Ä‡ćçÄ>Ò $¥¥q‹ö„Ѓ€}ÛÇ’2˜±ÕÆ2yÓ €ˆw˜¥‹·$z2qÕªik3°4€²¡Ôi4n&³ñ€©w&o8m’>ÒJqk„Ѓ€ÛÇ’$z2qÔŠ€‰w˜¥!Ô3°4€²¡Ô 4o'³ñ€©wŠ’iŠ’!Ô%¥ „ „ Ð&'¼ÛÇŽŠ#Ô€b’€<’"Ô€[’Šj$ç2Ä$¥Š€‰w>±¥ :ñq:Õÿ>ÒqŠ w"Ô.„ жñ …Oç„ ÐÇŽ…OÄ…O¥¥’€[’¥Š…Oç„ ÐÇŽ…OÄ…O¥¥ŠÖ€>„ÐÚñw„І€…ÐÛÇq ‹Sý–Ò„ Ѓ€´ÛÇ2>€'°Õ3’`†Å?n8oq„ Ѓ€·ÛÇ2’'8²ñ'o ˜±2˜±¡Õö&‹í`'ð.`ð/ ;°2;°¡Ô ’Š= …9°2…9°¡Ô€B’Š+2y° y°¡Ô’Š y° 2q¡Ô€\’Š€†w˜¥‹™`'ð. …9°2…9°¡Ô€C’Š€†w˜¥Šy`ð/ ;°2;°¡Ô ’Š y°2y°¡Ô ’Š€†w˜¥ŠM ;°2;°¡Ô….Ô€b’’€=’€K’’Š€†w˜¥Š …6°2…6°¡Ô€!’Š€†w˜¥ŠÖ€ºŠ˜¥‹Æþ– L on>€(°?€`Ú¡Ô?°onq„ Ѓ€ÁÛÇ12˜Ó&2;°2…9° 2y° å¡Ô€†w˜¥'Ôð2;Ò€aðŠ2…9Ò€dðŠ2yÒð>€(°Õð`†Å?m8¤ q„ Ѓ€ÄÛÇ1ð(8²ñ(¤ ˜±2˜±¡ÕÉ%‹À`(ï.`ï/ ;°2;°¡Ô€"ðŠ: …9°2…9°¡Ô€@ðŠ)2y° y°¡ÔðŠ y° 2q¡Ô€[ðŠ€†w˜¥Šp`(ï.`ï/ ;°2;°¡Ô€#ðŠ: …9°2…9°¡Ô€AðŠ)2y° y°¡ÔðŠ y° 2q¡Ô€]ðŠ€†w˜¥Š …6°2…6°¡Ô€ ðŠ€†w˜¥ŠրNJ˜¥‹óþ– ‡…Oo„Ѓ€ÌÛÇ0>€)°Õ†ï ¤.Ô2…7Ò ?°3°¡ÔO€‚” Š2˜Ó 2y²ÔïŠï`†Å!°¤?m8¤ q„Ð03°¤ ˜±2˜±¡Õµ%Ò(2yÒ 2zqÔï€Zw˜¥Š€‚w˜¥‹‰†ï Ô& ï Ô ¤ .Ô2…7± …7± Ô…2¤ `(ï †(ï ŠD2y²ÔïŠï 2Ó`*.`/.Ô)2ï Ô#`2ï -¤ ,¤+¤ %Š mŠ mŠ mŠ mŠÖ€Ï 2qÕ  x¤ n€1¤ y‹˜ …9Òn€M¤Š …6°%Ú¡Ôn€3¤Šy%ÚÔn€3¤ŠinŠe% ÚÔ€„wn€6¤ŠQHwŠJn€9¤ q Ô" Ôn€h¤Š z˜Ó z„„q /‡£í¤ Š%ÚÔ€ƒw))¢¤ Š €…wŠÖ€Õ&Ò%ïïŠT&°%0Ú¡Ô% Ò€01ïŠ8%Ї¢¤Š ‡í¤ŠÖ€á‡ï&€$ÚÔ ,ï-ï&Ò)ï %ÚÔw…6¥¥'¥O–/­h­2Ó€w€=’’€=’’ z{i |Ô5 …H!æ £!æ ’ …H!æ £!æ ’€#’ ~’€"’ ~’ ’Š7 …H!æ £!æ í’ …H!æ £!æ ’ …H!æ £!æ ’€#’€m’ ’€b’€"’’–| ˆÐ@ÛÇ+„ ð>°Õ*n2˜Ó 4°2y²Ÿ Ôð`†ÅqˆÐð2˜± ˜±¡Õü†ð Ô ð Ô† ð Š@2y²ÔðŠð2;Ò…9 qÔ€Lð…9¥…8 qÔ2;Òð…8¥2yÓ€w…8¥ 2qÕœ ¤ *y‹….Ô *|ð*{ð€Kð`ð$Š}€G*xð`ð$Šr`ð$Šm xðð`ð$Ša5Š]3°m¤ *|Ô*Ô¤ )Ô €k%*æðŠ%°*x°¡Ô €xð€ÄðŠ€E%*xðŠ!*xÒ €xð€ÄðŠ€E*xðŠ €’wŠÖ€çŠ€wŠ€3w– Í>€#ÒCi7j†€ž"×yÓ"îjŠñ†€ž"×{h ˜±!å¡Ô k#x…Òi…ðŠ#yhŠã!ñ€§wqŠw–ˆÐÛÇð3>†€ÐÚñç>±¥ :ñq:ÔÚ> ÒqŠ w–2…6Ó€‡w–lˆÐÛÇðï8að!ð#> ÒqŠ€4wˆÐ ÛÇð3> Ò`ð ð!ðqˆÐð3 ðŠ!ð–×­ ¢­ £h Œ¢i!q…„Q’­ ’­ ’­j"z­ ²ñq­ ’­ í¦ Šê"y’"x¦­ í¦ ­˜ÒÒ­ ’…„Q ¢¥„Q…„O ¢¥„O– ˆÐÛÇððgð'ð2i!˜Ó!y±!…9° Ô€w˜i> ÒqŠw˜m„ ð˜jˆÐÛÇ`fq!˜ÓR! qÔG%l˜k$˜Ó$¤ ,z&²Ô ,z&Ò€œwŠ$k,xlŠáb” "¤ ,$Ä,ç&Ä,ç…ƒëÄ#˜Ò"mŠ#"ÄŠ€“w>±¥ :ñq:ÔŽ>ÒqŠw„ ð+ðˆÐÛÇð3>†€ÐÚñé"˜Ó(ð>±¥ :ñq:> ° ÕJÿ'ð%˜Ó%z¤ %l˜m$xk$%Ä$m#l$˜Òò%z¤ ;> ÒqŠ w– L `ð ðˆÐÛÇð3>†€ÐÚñç>±¥ :ñq:ÔÚ> ÒqˆÐðï8 ð#Š€5w–‡ að!ðˆÐ€@ÛÇðï8`ð ð#>ÒqŠ€6wˆÐð3!ð ð–…!qˆÐ`ÐÛÇ’2˜±Õß2yÓ€w‹Ó­2qÕÆ3Ò,$Ò ˆ†ÅŠ’­yÒ4­|³Ÿ4­{²Ÿ Ô€ËwŠ’­y°….¡Ô­|’­{’€K’$Òr3Ò(­ ’ˆ’$­’†ˆÅ’†ˆÅ’Š5€&9’­ ’ˆ’$­’†ˆÅ’ 9’9í¥ 9…²ñ9¥­ Ò€2’Š€3’Š€‘w–€">ÒG…€ˆq ­¤/~mn/æÒo/æ ¤ /æ ¤ Š€›w˜m%˜Ó%y²Ÿ…9%q Ô€w˜mqŠwˆÐÀAÛÇq >Ò ÀÇ?Š€3wˆÐÀÛÇq „ð„ ð>€ÚÔ >¤ €@Ç?Š€7wˆÐ€@ÛÇq „ð.ð#>ÒqŠ€6wˆÐð3†eÅð+Ò€mðŠ€nð…,Ôeð$-ðŠ,ð.ð9î¥ –Q#ji>Ò…€€ ÛÇ`q qŠw…DhˆÐ€BÛÇ cð2˜Óm2yÒd7³ñY7í¥"íj†€ž7×l$2zÄ4Ò†€ž7×l$çÄ$ç5Ä$ç6ÄŠ)ð€&9ð†€ž7×l$çÄ$ç9Ä9í¥ !íi9…²ñ9¥Š€úwŠ€Œw>±¥ :ñq:ÕVÿ>ÒqŠ€6wˆÐð37"£¥9!£¥ –…$…Ií¥I9l>€#ÒP7i†€ž!×yÓ!îiŠñ†€ž!×{j"˜Ó""m%x…Ò%zÔ€¥w%çÄ%xïŠ Š%yjŠÚ€§wq>ÒqŠw>fÐÛÚñwfÐq >†€ÐÛÚÕ¨c” >‹‡…€€àÛÇ`q q æÒfÐ ïŠ æÒAwŠ 4Š[q……I± Ô;w… …H°¡Ôï"q¥…‘¥Š3q7Š-q6Š'q9Š!q:Šq=Šq<Šq>Š q@ŠÖ€óc” q>&ÚñwfÐq …Iî¥I$¥ – ,'¥šÔš ” ­˜Ó­qŠq…ƒìn8m¤ ­˜±Õ­¤-æh-æÒ -~˜Ó-~x¤ *£h-æÒ îh-i…,Ô €)ï* !˜±ÕÅ!¤-~˜±Õ¦-~yÒ-~zkŠ-~k#yÒ ,#Ó#¤ ,yÒ Œ£h,{¤ Šï#¤ îhŠp˜¤ -æÒ^#y²ñQ-æ ï#q Ô$ £h ï#q Ô €,ï#æïŠ€+ï#xï Š îh ï#xÒ €xï€ÄE#xïŠ #x£hŠ -æÒ îhŠ-æ€ÀÚÔ Œ£h-i‹5ÿ­˜Ó­¤-æÒ -æîï€^ïš ¥Q9¥†€ž7×zi!˜ÓI!¤-~¤-æ ï-æ ,¢ï.z˜ÒáïŠ-~…3ÒïŠ.z…7ÒáïŠ.zxïï-iг…$Ô&…ƒì°%8°¡¤ q+Ô…ƒìn8m¥…‘ˆÐÛÇï3>†€ÐÚñç>±¥ :ñq:ÔÚ> ÒqŠ w… Ô…… å…H°¡&…ƒì°%8°¡å… ¡Ôï"…ñq¥…‘†€ž7×zi!˜Ó!¤-æ ïïï-iŠæ­˜Ó"­¤-æÒï-æ Ò*£îïq†€ž7×{l$˜Ó$¤-zñ€¨w-ylŠì¥'q †k…|×…îÄ–'š ˜Ó6¥…d……bÔ(¥…cš í¥…a……a…„Y…„Z¢¢…„Z¢q%Š᥅aAš ˜Ó……bÔš ¥…`……a²ñq*¥…dq&–`ˆŸðo @d`Ò?-õÿõÿùÿñÿñÿÿÿÿÿÿÿÿÿ@€*** Íÿ×ÿÞÿäÿ÷ÿOÿÃÿûÿ¾ÿËÿÝÿãÿ÷ÿâÿìÿ÷ÿÄÿÚÿâÿìÿ÷ÿÄÿÚÿjÿSÿSÿÿÈÿäÿíÿöÿöÿöÿ€o0ýIþŠþ×ýèýúýgþ'þ€€ÿgÿâÿ‡ÿ³ÿ=ÿÿãÿ íÿñÿùÿõÿ eÿ‡ÿ—ÿ›ÿ¯ÿ¶ÿ¶ÿ÷ÿ îÿöÿîÿöÿ ŽÿnÿŽÿ“ÿƒÿŸÿ£ÿßÿ÷ÿ7vÿÍÿÙÿßÿëÿåÿñÿ÷ÿÓÿ¥ÿEBFÅ(8n éÀÆ «Ù C ë à ¬   ÔrH§HUþÍF,zÖÏ’qH žd /¨ P÷^WN?ÖqdP%>üˆ èߘA©READWRIT£h!‘E"`q ~˜Ó" ~y Ò ~z…7Òq! Ä>€"Úñw>Òq–|…>h>°­¡Ô…€€ ÛÇ`Ôw­>±¡Õì •ˆÐ€"ÛÇ•4°i•!Ô*€&9¢•€&9í•9¢•9¢¥ 9…³Ô9¥2˜Ó^;2qÔ•ŠO…92qÔ •Š?…82qÔ2x••Š)…72qÔ •Š2q Ô2æ• •Š€}w!Ô%9£¥ 9í• 9¢• 9¢•€H•…/Ô•>±¥ :ñq:Õÿ­Ò • •…/Ô•–1…=j>°­¡Ô …€€²ÛÇbï­>±¡Õt"•ˆÐ€&ÛÇ•2h q Ô3ÚÔ3Ò••І…2• Š) ˜Ó% n&y²ñ•Š•&yÒ€$q••>Ò&qˆÐ€&ÛÇ•2˜Ó2;Ó€}w•iŠi ;Ò!Ô••‹¶ …9Ò=!Ô•>Ò$qˆÐ€"ÛÇ••2˜Ó2;Ó€}wŠ• •Št …8qÔ!Ô••Š\ …7Ò!Ô• •ŠG q Ô!Ô• •Š1 q Ô'k z˜Ó zdcq #$£ík!Ô#•#• •Š€}w…/Ô•>±¥ :ñq:ÕŒþ­Ò"••…/Ô•–D ÚÔŠ–À% ›ÖAROUTINE`h!‘%>ÒqŠw–42;Ó€}w–±bЕ3°2…7°¡2q  ÔU3ÚÔ3Ò•!ñ•Š;!Ô€šw2…7Ò'…Oh Ä çÄ çî4È…O¥† ” 2…2Å 2çĆ…2• Š 2˜Ó€}w…2¥–A>Ò ÀÇ`q qŠ>€!Ò …±¥ :ñq:ÔÅ!€ÿ³ñ !¢í¥ Š€ÿi9…²ñ9¥† ” 2…2Å 2ç!Ä–w® Ò 9h9€ÿ¢í¥ ® €+Óˆ Ю °ï® Ò 2i •ïˆ Ð••2˜ÓïïˆÐ••2˜Óï® Ò-• •!æ€ÿ³ñ !æ¢í¥ 9…²ñ9¥!¥Š® €+Ò •Š•– ˆÐ••2˜Ó2y Ó€}wŠ 2z˜Ò>w® ŠT>ÒqˆÐ••}w•Š4•Š,•Š$2˜Ó 2z…7Ó>w •• •ŠÖ€…/Ô•–½­ ‹¥•­Ô/ˆÐ••2˜Ó2y Ó€}wŠ2z…7±­ °¡Ô>wŠ…>•­ Ò•Š•…6¥…/Ô•‹F2˜Ó 2;Ò€`•Š2…9Ò€c•Š€}w;¥‹‹ˆÐ•3°2…7°¡Ô•Š+2q Ô3Ò4y•Š••€'•Š2˜Ó€}w;¥‹Ïˆ Ј Ð2效Е•2˜Ó•‹˜‹“•ˆ ЈЕ;¥‹p‹k>Ò…€€ ÛÇ`q qŠw…DhˆÐ a••2˜Ó 2y Ó€}w>ÓJ­ €!Ò•Š:†€‚” 4j "çp"ç€ "çpĆ…2• •••Š&qˆÐ­ Ò•Š•••…/Ô•‹³ˆÐ••2˜Ó 2y Ó€}w>ÒZq>ÒO†‚€ ¹Ô•Š9†‚€¹Ô•Š'†‚€¹Ô•І‚€¹Ô•ŠwqŠwŠ••…/Ô•‹#‹•ˆ Е•2˜Ó2y Ó€}wŠ 2z˜Ó?wˆ Е•ˆÐ••>ÒqˆÐ••Šá•­ €%Ò•Š• •…/Ô•;¥‹Ž…82qÔ$ˆÐ2q Ô2æ• •Š€twŠ&2;ÒˆÐ2q Ô•Š€twŠ€}wŠ:­ €6Ò•ˆÐ­ Š •;¥Š •Š •ŠÖ€ŠÖ€:– (©ÿÌÿÔÿÜÿNORMAL LOCK PURGE CRUNCH 6íÿõÿâÿ6XüXüºüáüæü1ýhýhýmýýÆÿÆÿ•ýMþÝþ•ýÝþÝþâþâþÝþrÿhýÆÿ>ë£[ ‡ÊBROUTINE‡h!‘%>ÒqŠw–42;Ó€}w–î >ÓwˆÐq ˜hŠ…€€!ÛÇ`q q ˜Ó! æÒ ~jkŠ8nˆÐ c•2j&¥ Šk˜j>Ò-qˆÐaeq!˜Ó!;Ó€}wmŠ %²Ô/wmŠmŠm"˜±Õ'"y°Õ¾"z{¤ "|Ô< …H(æ £(æ • …H(æ £(æ •€#•"~•€"•"~• •Š= …H(æ £(æ í• …H(æ £(æ • …H(æ £(æ •€#•€m• •%Ó6%Ò€b•€"•Š$• •%Ó%î•€"•%• •Š`>Ò"yÒ "{•oŠ€Œw"xoŠ"xo#Ò3%Ò'•Š&%Ò 'Œ•Š%Ò 'Œ•Š 'Œ%¢î%•Š #%¢î%•ŠˆÐq ;¥– >Ò­î¦qˆÐ••–è `ˆÐ€"ÛÇŽ>Ów‹»f•e•d•9¤ 9¢¥ 9…²ñ9¥&•%•(•Ç„ q qˆÐÛÇ)•&•>Òoq`Е2…0Ó€=w•Šo'Ò•'³Ô€È•'³Ôá•(••$••%•$•9£¥ – ·>°†‚€¹¡Ô® €3Ò•Š€gwqŠˆÐ€"ÛÇ•2…1Ó€ÓwŠ>€b•qˆÐ€ ÛÇ••2;qñw€D•€g••€D•Š*>ÓwŠqˆÐ€ ÛÇ•••ŠÖ€–%cˆÐ€"ÛÇŽ>ÒqcЕ•Š9>Ò cЕ•Š(>Ò q€D•ŠˆÐ€"ÛÇabq;!qÔ"q>±h ñq Ô¨– ­ ‹Ø2˜Ó+2;Ò €b• •Š2…9Ò€F•€B•Š€}w;¥‹©ˆ Е•ˆÐ••>Òq>Ò•ŠˆÐ••Š•>ÒqˆÐ••Š•­ Ò•Š•‹.ˆ Е•­ Òˆ Е•Š ˆ Е•ˆÐ••­ Ò•Š­ Ò•Š•‹Ìˆ Е•ˆÐ••€%•‹¦ˆ Е•ˆÐ••;¥€&•‹{ˆ Е•2˜ÓˆÐ••2˜Ó•‹J2˜Ó>€)Ò? Ò•Š? Ò•Š€}wqŠ€}wˆ Е•2˜Ó 2…7Ó€}wˆÐ••>ÒqˆÐ••Š••;¥‹Ì2˜Ó!2…9Ò€>•Š2yÒ•Š2;Ó€}w;¥‹¡‹œˆ Е•2˜Óˆ Е•ˆÐ••€$•ŠbŠ^ŠZŠV­ €4Ò•ˆ Е•2˜Ó 2yÓ€twˆÐ••2˜Ó­ €4Ò •;¥Š •ŠÖ€ –NIL /3}ÿ…ÿÿÖÿ 5%ýWýWýÒýÒý4þZþ…þÒý¶þ4ÿ_ÿdÿžÿ¦ÿ¦ÿ¢ÿ¦ÿ¦ÿªÿªÿÞvù  ÐWRITELINÂh!‘-8Ô8í¥ `08p8¢¥ –>8j'˜±Õ'm%æ€ÎÚÕá%08p8¢¥ %æ‹Ì%~xÒï%æ ïïïŠ"¥ ‹³%æ ³ñ%æ áhŠÓw„ÐÛÇq †‚€Åj…?h ˜±"å¡Ô †¹ñ hŠj€ewŠâ"ñ%` ”  ¤‡†Å‡ç˜Ä‡ç…?ćç Ä ¥?¥ ¥Nq†„qÔ*…Ô!††ƒô×¹Ô¥ ¥N†ƒô‡×ç<ÄŠ™w†ƒð†Å†ƒð˜ÒqŠw>ƒ€†€ÐÛÚñqŠë‡” †K ” …KeÅ ¥H7³ñ+7í¥†€ž7פ‡˜Ä‡ç˜Ä‡ç˜Ä‡çÄ ˜Ó qŠ€úw᥄P–r…Kh†K ” …Ki!ç” !æj"…?Å"ç˜Ä"ç˜Ä"çÄ"ç Ä"ç Ä"ç Ä"ç <Ä"ç Ä"çÄ"çÄ"çÄ"çÄ!ç9Ä!ç Ä¥H>ÒqqˆÐƒ€ ÛÝÇ…Kæ”…K}¥ …Kæ ¥K–F¥>ƒ€ ÚÔ>€9Ò¥q>€2ÓwfÐ`=k…Pj…ji¥>€3ÒqŠw¥-fД …j!Ó˜wqq †‚p…ƒï×ç …ƒìÄl…P"²ñ_…j²ñ†ƒÂ0"£” ÓšwŠš 0"£” Óšw$Ô0#0#£p0#£#pkl"¢j¥ q Š›=#£ ¢¥ 8²ñ ¥ 1#08p08 £ € p8²ñ0=#£Èq ¥>€4ÓwfІ€ÐÝÇq ŠqfЃ€ÝÇq"q!…%Ô”¥ ¥>Ó >ÒqŠwŠ1…<‚€¹ñwŠ!q)…„Z²ñ†…e†„[…„Y” Ópq'…Km%x¥%y¥H%{¥|%z¥{%|¥ %}¥ …Kæ ¥K`” >ƒ€ÚåÕOþ†ƒð…<Ř¥:¥+¥ ¥Nq†ƒð˜” e†˜” e‚€G” e너‡’ˆ‡’§î€07¢Èˆˆ<‚€IëG¦ƒD¦ƒG¦ ¦ˆ°á¦>¦ƒH¦ˆ‚€R륥¦ ¦¦á¦¥"¦@¦?á¦:¦ˆ¹˜¦ˆ²ˆˆ´‚€^눈䂀^ëPˆˆ»‚€^ëP¦‡¦ 5°¥ ¦‰¦‰¦‰ ¦ˆ€“­×m%Ä%çáÄ¥¦¥†ï 2Ô †'‚€_”¥&á¥%–$¦‡¦‡Œ…¦‡Ž–i­‡ŒÔ­‡Ž¥Š3<h8… ­‡wi!²Ôpï!Œ¥­‡!¢¦­‡¥–Ê…i8…!…w!Ópï…!¢¥…!Œ£h…!Œ… p ¥"Ô…Ó………£p¥ï –ß`……p…¢¥–`!ï!!xîÄ…!x" íp!!x ¢íÄ–8ˆˆ³” ­ˆ³h !ï x­:²ñ x¦: ç!ï ç­ˆ²Ä­ˆ³¦ˆ²–k!… x§Ä!x€²ñ!!x€€£Œ… xí§¢Ä x¢ÄŠ xíÄ–«ˆˆ´apáhm%å ³Ÿ¡Ô íh®9 ×na&ç¹(&æ °¡mŠÜ%¤ ' Ä– ã"!'ñ*­8¦9h å­9˜±¡Ô"!'ÔhŠ ­9æ ¦9Šß–… ¢°²ñ’ "!…… p… ¢¥–È:˜±Õ±† „‚p‡‚¤‚‡‚|˜Ò‡‚æ x`‡‚æ pŠ<‡‚|פ‚„‚‡‚§Ê„‚‡‚§Ê‡‚æ x`‡‚‡‚æ ¢‡‚z£p ‘¤‚‡‚‡‚ x¢‘hb‡‚Å…Óð `6*‡‚ x¤‚‡‚ ‡‚ x‡‚팢ć‚ ……¢Ä†'„­wÓpð‡‚­£²Ô „­‡‚*‡‚­¢¦¤‚Š0„­­£*‡‚£­¢¤‚‡‚¦­í¦‡‚¤‚¤‚‡‚‡‚²Ô.†'„­wÓpð„*­í¦‡‚íŠÆ‡‚Ó$†'„­wÓpð„‡‚*`6‡‚Œ6£¢*ð Šð–‚ Æ0„„‚2á”­ƒHÔïh¤¤­8¦92ÔGj"²Ô)­9"פ.‡.§€a€z¼ÚÔ‡.ç ‡.ç ‡.)"íŠÑ­9æ ¦9­9˜ÒÀ†'”­8¦9cpj"²Õ7­9"פ.c"ׇ.æ Äc"×ç‡.æ Ä„$"ׇ.Å„d"פ/‡.æŠ-‡/ÊŠ'‡/ÊŠ‡/ÊŠ‡/ÊŠ ‡/ÊŠÖ€e‡/­9ç"×çÉʇ/ʇ/ Ê„t"ׇ.æ Ä„€”"פ/„d"×ÉŠJ‡/‡.æ Ä­9ç"פ0‡/ç‡0xć/ç‡0çÉć/ç‡0çÉÄŠ‡/‡.çÅŠÖ€l¤„€„"פ/‡/‡.æ ʇ/ʇ/ ʇ/ ʈˆä„€Ü€Np"í‹Âþ­9æ ¦9­9˜ÒiŠ…i…í¥!¤€Ô8c wÓpï!h­9˜°Õ~þ„”–0: ­h­î¦ˆ€“­í×xÒ+ îh °ˆ€“ ×x° Ô툀“ ×xÒ ˆ€“ ×y¦Š%ˆ€“­×xÒ­îhŠ­h ³Ô ˆ€“ ×y¦–Z 8ˆ­wÓpð­í¦–» ­ÿ³Ô@­ÿÒ"aˆÿ§Èï+aˆ§Èa`pᦊï+­£¦ˆ­`pŠ ˆ­`p­¢¦ j– ‡ cï$­9#פ‡æl‡æ j+,i‡,ćxh ³Ô‡ ×,Ä îŠì– @ ­ƒC!¢îh"Ò ˆ‡Õ €0ÈŠ!"²Ÿ ­ƒC³¡Ôˆ‡Õ " €0¢È" j îhŠß– ­ˆ°²Ÿ­ƒH¡Ôˆˆˆ”ˆ!­ˆ°î×&h ­£Ä ç­ Ĉˆ§€G²ñˆˆ€GÈ çˆˆëG–Ö (ˆˆˆˆˆ˜”pÓ#ˆˆˆiaˆˆ˜€G” a‚€r€L” a˜”ph Ó ï–( ˆ!­ˆ°×&h x¦ y¦ ˆˆ çëG­ˆ°²Ÿ­ƒH¡Ôï–M ­ˆ°²ñˆˆˆˆ…I­wÓp9ˆ…I­wÓpï­¢¦–– *`‡+ï„*‡+ï ˆ‡+ï ˆ ‡+ï ­ˆ°í¦ˆ°ï‡*¦¦ ˆˆ`ëG­ƒHÔï­ƒGÔï–+º ­ˆ°î¦ˆ°­ƒHÔˆˆˆ”ï­ƒGÔï–Ç ˆˆ< ï–Õ ˆ‡’ ï– ˆƒI­ ­ £pˆˆ`ˆƒIáwÓpï¦ –` ?Ò ˆ ‚€^ëŠCˆ ‚€uë? ³Ô ˆ ? €0¢Èˆ ? €0¢È> ³Ô ˆ > €0¢Èˆ > €0¢È–Ä w0ÕZˆƒI­ È­ í¦ á¦ƒF‚€^ï‚€^Ո‡’ë„b‚€yë­ˆ°²ñ0ˆ‡Õ¤„ˆ‡Õ˜€„” „‚€€‰” „ˆˆ˜€Ð” „너‡Õ¤„ˆ‡Õ˜€„” „b˜€“” „너‡Õ§ £¦ƒC›DÉï­ƒC¢¦ƒC›DÉï­ƒC¢¦ƒC›D Éï-„ ˜ˆ‡Õ€„ˆ‡Õ§í” €]ˆ‡Õ§£h ²ñˆ‡Õˆ‡Õ§í € pˆ‡Õˆ‡Õ§ ¢Èˆ‡Õ¤„ˆ‡Õ˜€„” „‚€„€” „너‡Õ§£¦ƒC­ƒE՘^ï‚€^ï­ƒEí¦ƒE–wOˆƒD!ï ˆ!ï ˆ !ï ­ƒHñaˆˆ`ˆˆ<˜”ph °¦ƒG­ƒGñ ïŠ<­ˆ°²ñ旅H¦ ˆƒIpˆˆ`ˆƒIáwÓp旅EƒG­ƒGÔï–’…‡xˆpˆÈ‚€^ïh`ˆ˜” `‚€‰” `ˆ˜€%” `˜ï–eˆ…I­ §Òï¦ iˆ…I­ § â¼â¼Ûƒ€ÛÚÔWˆ…I­ §Ò.ˆ…I­ í§€ ³ñ ˆ…I­ í€ È!ˆ…I­ í§¢€ £i­ ¢¦ Šˆ…I­ §€ Ò!íiŠ!íŒi­ í¦ Š‘"!€ p€m!£ ˆ…I­ phˆ…I­ "!í p"! ¢Èÿ­ £ ˆ…I­ pi! ²ñ!h­ ¢í¦ –²C`„D¬„`§­ ¢íÿ²ñï`ˆƒI­ `§p­ `§¢í¦ ˆƒI­ î È­ƒFí¦ƒF­ƒF€<³Ôï–E‚€^ï­>²ñ#ˆ‡Õ‚€ë„ˆ‡Õ§£¦ƒC­>՘Ÿï­ ²ñ`”–?ˆ‡Õ‚€©ë„¦ƒC­ƒD旅C­ï ¦ƒC­ïˆ‡Õ!ȦƒC ï–Ÿ…&ÔT…$þ²ñ2†'†&…%wÓpï…%í¥%†'†&…%wÓpï¥$­ ‘h`†&…$p…"¦ …$¢¥$–Ú‚‡€„‹`‡€…ï ˆ‡I‚€^ë„ ˆ‡Isˆ‡I§Ò#ˆ‡Õ‚€µë„ˆ‡Õ§£¦ƒC ՘ïŠjb‚€Á” bˆ‡I˜€’” b˜ï­>²ñ#ˆ‡Õ‚€É너‡Õ§£¦ƒC­>՘ףּD¦>‹ˆˆ‡Iï…‡€…x§¦‡‘‡€…‡€…xíÄ­‡‘­ ï ï.…"¦ jbˆ‡Õ˜€„” bˆ‡I˜€ÿ” b˜ï‹Aˆ‡Iï­Ô €u­?ï Š€d­?ï ˆ@‡€…ï ­@¦?jbˆ‡Õ˜€„” bˆ‡I˜€ÿ” b˜ï‹øˆ‡IՂ€Ú넦ƒC­ƒDïjbˆ‡Õ˜€„” bˆ‡I˜€ÿ” b˜ï‹¾ˆ‡IՂ€æë„¦ƒC­ƒDïjbˆ‡Õ˜€„” bˆ‡I˜€ÿ” b˜ï‹„¦ƒGŠ}ïŠy…"¦ Šrï.Šn¥&‡€…‡€…xíĆ#‡€…ï …%i†%‡€…ï !…%Ó†'†&…%wÓpï†$‡€…ï ­ƒGñ…"¦ Š#…&Ô†'†&…%wÓpï¥&ŠÖ€ò‡€„ƒ!ÚÔ­ƒDí¦ƒD–€…¦šæ°šæ° Ôa;Ì€<Ì­ÌÃô`aóÿÌÎÄ Ôˆaó¿Ä–üdcbatš;” š‚$” $±Õº"=£j"³ñ "€<¢j#îkŠñ#>£k#³ñ #€<¢k$îlŠñ$?£l$³ñ$¢lŠõš‚,” š$” š€:wš# ” š# ” š€:wš" ” š" ” "#€<Œ¢$Œ¢jh"Ó0 Ó š‚/” š ” š‚1” š” –ž „ˆ`„‰Œá”„ˆˆ„‰´á”„ˆº” &¤……€<£³Ô† “+Ô“ ¤?.Ôâ(8……îwÓp„ˆº” 1Ô š” š” 5Ò8”Š"8”1Ôš5” š‚:” š” 1Ô/„ˆ`”„ˆˆ”–‰Ìae«h ²Ô ša §w íŠí–é!h3Ô`ÉŒ`É¢jŠ j–™iš^h›T§€ÿ±›T§€ÿ± ›T§€ÿ± Ô˜h ˜±!å¡Ôz ¤ ,zç‚C¹Ôdi,z¤-|˜Ò-æ xc-æ pŠ)-|פ„ .§Ê„ .§Ê-æ xc+-æ ¢.z£pc×x±¥c×x‘¢Œ¥,ç† p,|h‹~ÿ!¤–¾†'†‚Sᔑ1ñ˜¥ ¥s ¥”†'”–%Compilation aborted due to I/O error $Error writing file, not enough room..*Compilation aborted due to back-end error Pascal Compiler [- ]*system.lst.textt system.infoÐÿÙÿâÿëÿôÿ³ÿ³ÿðÿðÿ.TEXT 0:00  0/00/00  - Page Using Last syntax error: line End of Compilation. : ----> Syntax Error # Syntax Error: ! Previous error - line  {commented ';'}  {code omitted} 4ƒÿ|ÿxþ¿þÿæý‡ÿBÿŽÿ’ÿÝÿà lines compiled in ,  lines per minute errors detecteddDEBUGINFw p "¯Ÿt†g8¹3XàiRK*ä2íæßÍ©†mI"òç·”‰®T <Ûµh Y Ï 1*** FILEOPS STRINGOP HEAPOPS PASCALIO EXTRAHEA EXTRAIO DEBUGINFOSUTIL MSGOPS COMMANDI ÃPARSEDIRwh!‘ˆ®€ ³Ô•®í¦ˆ€“®×h $Ä$Ò'"Ò#ˆ•$®9­×æ ¦¦ #¦ ç#ÄŠ%#¦ ç#Ä® Ô¦ "¦ ç"Ä ç!Ä çáÄ–² ˆCˆB•#ˆC×x¦‰ˆ‚Cp–Ù!h çÄ çÄ ç•%Ä ç æÄ–u‡j‡i­ ¦ …®;²Ô/®;…£Œ®=¢kb…#pa…#¢pˆ …#¢pŠK8d®;wÓp•bd®=pad®=¢pˆ d®=¢p8d®;wÓp•–ë"i!æh!æ²ñ>…°³Ô• 8…… wÓá•…þ¢¥……`p!ç!æîÄŠº…°³Ô• !……!æp…!梥–=ˆˆ»‚€èÔ¦ Š9®®ˆ¹Ò2…¦ ˆˆ»……ˆˆ»§íp…ˆˆ»§¢í¥…Ô ……È…í¥–·h®ˆ²˜ÓN®ˆ²n&ç……p……¢&xÈ…… ¢È… ¢¥®ˆ²¦ˆ³&~¦ˆ²ˆˆ³”  ¢h…°²ñ• Ьb‚€Åb……p…¢¥• o–戈• ˆ ˆ• ­ ¦ ­ ³Ôˆˆ• ­… £²ñˆ• ­ îŠØ…Ô ……È…í¥…h…i•®‰ •¦‰ ®‰ï®‰ïï­ ¦ ­ ³Ôˆ‚C­ ×x•…°²ñ• ­ îŠØ­ •®ˆ•$®9­×j"ç …®<£Œ…¢Ä!®<£Œ ¢h"æ î ï®®ˆ¹Ò$®9ç­×j"ïÄ"ç®:Êá¦:ᦕ •"­…­£¢¥…€P¢…³Ô†• –ë……§Š#…í¥`†•……§¥Š ¥hŠ ¥hŠÖ€…íi…‹µca• „ a• #­:²ñ#¦:#,‹– ‹‘¦‹Š­ƒGÔ­ƒF£€<³Ô•ba• „ a• „a• …Ò")-Š")-‹M­­±Õ›­­d•$­9$פ1Ôš w.˜qš€ w……¢¦<.ç ­<ĦA4¦‰­‰­‰­¦­<¦;…¦=á••.……p…¢¥•á•7•••­Aí¦A1Ô&š€.w­AÒš w‚€ qš€ w¦ ˆ€“­×yj‹h­ƒGÔa… •!‹Xa… •!‹Ma•‹Ea•‹=•‹6a•‹.a•‹&a•‹ˆˆ´a•ˆˆ¹a• ‹ ˆˆäa•‹ý!…!£¢¥…m……£²Ô†• …°³Ô• …………p…¢¥…¢¥……§€ú³Ô»• ­ˆ¹d•$­9¤…Ò.$×ç %Ä.ç$×ç…%£ÊŠ .ç$×çÊŠi!…!£¢¥……£²Ô†• …¢¥ŠBˆˆ»a•Š7­å¦­­ƒG¡Ôa•Š"fa• &­:²ñ&¦:Šˆ?a• ŠÖ€…ƒ€@Úñ… ¢¥– ýÿÚÿïÿöÿ 4Òþ˜þ³þ˜þÊþ»þ˜þ˜þ˜þvý³ývýHý˜þÃþjýoýÚþâþÿÿ÷þ—ÿ˜þ¾ÿÉÿÞÿòÿ¨þ¨þ¨þ€`^!ø½o[F õ  FINALPAR:h!‘0! ³ñ !£€²jŠ !£€ÿ³j–N! ³ñ !£€²ŸjŠ !£€ÿ³Ÿj–'jmlih"­nk#&²Õ‹ˆ #×o'ç'çÉ!¢Ê''x ¢Ä'çÉÒb'çÉÒY'xˆ 'z×xÔ'çÊ 'çÉ¢£hmŠ4'çɈ 'z×çÉÔ'çÊ!'çÉ¢¢imŠ$Ô#jl#í‹nÿ%åÕ]ÿ"­nk#&²Ô$ˆ #×o'çÉÒ'çÉÒ'çÊ#íŠÖ–$áÒ®h®iŠˆ€“®×{hˆC®×xi# ²ñ# £¥!Š#!¢ £¥!…!"²Ô¥Š…!€²Ô¥Š¥…í¥–Åˆ€“‡×y¤‡î¤ˆ€“‡×xÒ숀“‡×y`„•#`‡×x¤–¡ )áÒ®i®hŠz)k®mn#²Ÿ%²Ÿ¡Ô%îmˆ€“%×xÓ#îkŠnŠÞˆ€“%פ ({i&Ô8ˆ€“%î×xÒˆ€“%î×yg•$®9'׿ hŠ(|áÒ(ç%Ä(|hŠ ˆC(y×xh……í§j"€²ñ"€€£Œ……¢§¢j…¢¥Š…¢¥"!²ñ"!£¥!Š" ¢!£¥!…!€²Ô¥Š¥– ³…… È…í¥–ë €²ñ …… €€¢È……í È…¢¥Š …… È…í¥–`®ki!#²Ôdˆ !×çÉÒRˆ !×zj"Îÿ³"²¡Ôˆ†M"€2¢×xhŠ'h ®³ñˆ ×çÉÒ ˆ ×z"ÒŠ íhŠÛˆ !×ç Ä!튖–¸‰í³Ô•ŠAˆ ‰×h çÊ ç!Ä!Îÿ³!²¡Ôˆ†M!€2¢×‰Ä ç…Ê …ĉí¦–5‰í³Ô •Šfˆ ‰×h çÊ ç!Ä çÊ ç"°®€°€±¼€Ÿâ¼Û€åâ¼ÛÚ¡Ê çÉÔ…í¥Š…¢¥…¢¥ ç…Ê …ĉí¦–X1…íi…Š.ba•"!¢…£¥…!§lŠ…€ú£l¥Š¥ lŠ ¥lŠÖ€$‹Æ`a•  ‹¼`a• ‹¯`a• ‹£!íiea• ˆa• ˆa• ®®£í¤1k#‡1²Ôea• !… £³Ôa• #íŠân…&¢¥…&¢¥¥!¥ŠM¦ŠG€ Š@…¢¥…¢¥Š2…¢¥…¢¥Š$…¢¥…¢¥‰‰ í¦‰ Š !íia•ŠÖ€ $ƒ€/ÚÔ€ÿ¦……¢¥–1)¦€ÿh¥¥……€d£³Ô†• ……§¥…€o²Ô_…²ñV…ƒ€2ÚÔ …£ïŠA…ƒ€5ÚÔ á…€/£ïŠ*…ƒ€9ÚÔ …€_£ïŠ…ƒ€@ÚÔ …€g£ï‹ù…‹ñ Ò¥…í¥‹å……í§€²ñ¥Š¥‹Ïï…!²Ô¥‹Àááï…!²Ô¥‹©ï…!²Ô¥‹š……¢§€²ñ¥Š¥‹ƒ……¢§€²ñ¥Š¥Šm¥Šh…€¬£ïŠ_…í¥……§ï…í¥ŠL¥ŠG¥ŠB¥Š=¥Š8……¢§€²ñ¥Š¥Š"¥Š¥Š¥Š……í§¢¥Š ŠÖ€G…€ú³ñ0…h…Ó……¢¥……¢¥¥Š……¢¥……¢¥……¢¥­ÕKþ­î¦… Ô –@!h`É’`É’–Ÿ#ib!!æp!ç!æ¢Ä!æý³Ô8•%h!ç€ÿ Ä8!!æwÓp•!ç Ä!ç!æíÄ!çÄ– … Ô`"Îÿ³"²¡Ôˆ†M"€2¢×xhŠ(h ‰³ñˆ ×çÉÒ ˆ ×z"ÒŠ íhŠÚˆ ×i!çɰ!z"°¡Ô !çÉkŠ–˜­í¦dˆ• aˆ• `ˆ• $¢‰‰¢l€Ö’€€$¢’$’…"¢¥"‰‰! ï !£ímk#%²Ô)bˆ• … £­²Ôˆ• ‰‰"…"£ï#íŠÑ–6 … Õ“ˆ ˆ ®×z×çÉ…"£hˆ ®×çÉÒ^ˆ ®×çÉÔ3®€°Ò€ÒiŠ®€±Ò€ÓiŠ€ñi……î!È…… îÈ…"í¥"…í¥Š……!È……í £È…"¢¥"…¢¥Š!í’ £ï…"¢¥"–P Š…íi…Š.ba•"!¢…£¥…!§lŠ…€ú£l¥Š l¥Š l¥ŠÖ€Ù$‹¾€Š­í¦‹´€Ô­í¦‹§­í¦‹ž¥!¥‹“¦¦ ¥"‹…!íiga• '³ñ'áoŠ?!h„ a•!î £h„ „ p Ô íh h Šk#‡€Š²Ô‰‰„ #×x#íŠè'¢‰‰¢o!…³Ô•€‚ð€€'¢ð'ð…"¢¥"€ÿ¦‹ü!íiga• '¢‰‰¢o`a•  ¤€Šk#‡€Š²Ôfa• ‰‰&#íŠç€ƒðð€€'¢ð'ð ð…"¢¥"‹¢!íiga• '¢o`a•  ¤€Šk#‡€Š²Ôfa• ‰‰&#íŠç€òð€€'¢ð'ð…"¢¥"ŠT‰ƒGÔ$`Úñ!íia$"•!Š:a$"•!Š1!íia•Š'!íia•Š•Š!íia•Š !íia•ŠÖ€á$ƒÚÔ€ÿ¦……¢¥–€Št #… £"ð…Ó !ð…!ð Š…! ¢ð–• #ð…!"²Ô ¥…! ¢ðŠ!ð…!ð –Û ®¦¦­­³¡Ô-ˆ ­×h çÉÒ z€Ò ¦ çɦ­î¦ŠÊ–@…Ôï… Ôˆ‚C®×…®<£Œ…¢¢Äˆ‚C®×xŒ¢#¢•®®ˆ¹°®°¡Ô•Šˆ€“®×mˆC®×x%{£%z¢•j€ÿi¦¥"¦ ¥¥……€d£³Ô†• ……§¥…€o²Ô[…²ñR…ƒÚÔ €‡Š>…ƒÚÔ á€…€/Š(…ƒ"ÚÔ €„€_Š…ƒ)ÚÔ€¤€g‹…‹ !Ò……î€K…¢È¥…í¥‹ô……í§€²ñ¥Š¥‹Þ…€_‹Ó…€g‹Èá…€/‹¼…‹²áï…ï…!ï ‹£……¢§€²ñ¥Š¥‹Œ……¢§€²ñ¥Š¥Šv¥Šq…€¬£ï…ï…!ï Š`…í¥……§l$ï…í¥…ï$ï…!ï Š@¥Š;¥Š6¥Š1¥Š,……¢§€²ñ¥Š¥Š¥Š¥Š ¥ŠŠÖ0…€ú³ñF…i…Ó…¥Š……………p……¢¥……¢¥…°²Ÿ…²Ÿ¡Ô• …"…¢¥"¥­Õþ–q‚¥¥n¥• • ¦‡… Ô•"¦ –†‚úÿäÿäÿäÿÏÿïÿöÿ"7ÿDÿQÿ]ÿ³ÿ¹ÿÎÿÀÿóÿÜÿ ÿÿÿÿÿÿpÿ¾ÿ¾ÿ¾ÿ¾ÿ¾ÿ¾ÿ¾ÿ¾ÿÃÿèÿÿ}ÿ1ÿGÿ@ÿWÿ¡ÿ¡ÿ¹ÿèÿÃÿ¾ÿ¾ÿ´ÿãÿãÿÞÿÿ“ÿÈÿÈÿ ÿ ÿ1ÿ@ÿ¡ÿíÿÿ¾ÿ˜ÿ˜ÿfÿfÿfÿÈÿ¾ÿÃÿ¹ÿ¹ÿ¹ÿèÿÿÿãÿÈÿÿÿãÿãÿãÿãÿ¾ÿ¾ÿ¹ÿÿùÿùÿùÿùÿùÿùÿúÿäÿäÿäÿÏÿïÿöÿ4?þLþYþbþmþYþóÿ¬ÿÏÿ¬ÿéÿÙÿ¬ÿ¬ÿ¬ÿ¬ÿãÿÿ{þ¬ÿ^ÿ¬ÿÆÿÆÿÆÿ ÿÿÿÿÿÿpÿÊÿÊÿÊÿÊÿÊÿÊÿÊÿÊÿÏÿôÿ ÿ]ÿ"ÿ8ÿNÿDÿ ÿ ÿÅÿôÿÏÿÊÿÊÿÀÿïÿïÿêÿ ÿŠÿÔÿÔÿòþòþ-ÿNÿ ÿ ÿÊÿÿÿtÿtÿtÿÔÿÊÿÏÿÅÿÅÿÅÿôÿ ÿ ÿïÿÔÿ ÿ ÿïÿïÿïÿïÿÊÿÊÿÅÿ ÿùÿùÿùÿùÿùÿùÿͼ«NÒ¢—ðÞ²x®\SÃå– )"öDEBUGINFçFa31!h0Ô`ÉŒ`É¢jŠ j–M""x‘Ä!!x‘Ä x‘Ä–i`zâx½y"!¢¢” ‘k–‰#zâx½y"¢!”#h ç ç‘–©#zâx½y"¢!”#h ç ç‘–Ã`zâx½y$¢”%`Å–æ!‚Ä`zâx½y!x¢¢” €ÿ²Ÿ¥–0(xÓ4a(x'¹Ä!ñ `(x'ºÄ Ô ((x‘ÄŠ((x‘ÄŠ&(x¢‘ !(x° Ô¿!¤ – a"‘ `"x!¹Ä ñ ""x‘ÄŠ$"x¢‘ "x° ÔÚ m–w!!x‘Ä! #‘ l–“# x"x!x£Œ¢‘Ä#x³l–Ål"‘ #x"x‘°h Ô!"x‘ Š""x‘Ä "x° ÔÜ l–Ì–udWG7) ̾³šå )9!& ?"(-TLA INITIALISYMTBLDUPROCEND ASSEMBLEPRINTMES €€ € €€€€€€€€€€€€€ÿ -TLA TLA TLA TLA TLA •†yBCopr (c) 1978,79 REGENTS, UC, 1981 TALLGRASS TECH, 1981,82,83 SMS ÿ¬ âè –J INITIALI¨•†yц†’ׂ€Å†‡R×€$Ɔ’ׂ€Å†‡R×€ Ɔ’ׂ€ ņ‡R×€%Ɔ’ׂ€Å†‡R×€'Ɔ’ׂ€Å†‡R×€9Ɔ’ׂ€Å†‡R×€4Ɔ’ׂ€Å†‡R×€?Ɔ’ׂ€Å†‡R×€7Ɔ’ׂ€"ņ‡R×€8Ɔ’ ׂ€&ņ‡R ×€>Ɔ’ ׂ€*ņ‡R ×€&Ɔ’ ׂ€.ņ‡R ×€1Ɔ’ ׂ€2ņ‡R ×€2Ɔ’ ׂ€6ņ‡R ×€RƆ’ׂ€:ņ‡R×€3Ɔ’ׂ€>ņ‡R×€*Ɔ’ׂ€Bņ‡R×€+Ɔ’ׂ€Fņ‡R×€5Ɔ’ׂ€Jņ‡R×€6Ɔ’ׂ€Nņ‡R×€#Ɔ’ׂ€Rņ‡R×€LƆ’ׂ€Vņ‡R×€:Ɔ’ׂ€Zņ‡R×€;Ɔ’ׂ€^ņ‡R×€)Ɔ’ׂ€bņ‡R×€"Ɔ’ׂ€fņ‡R×€=Ɔ’ׂ€jņ‡R×€BƆ’ׂ€nņ‡R×€<Ɔ’ׂ€rņ‡R×€,Ɔ’ׂ€vņ‡R×€-Ɔ’ׂ€zņ‡R×€.Ɔ’ׂ€~ņ‡R×€/Ɔ’€ ׂ€‚ņ‡R€ ×€0Ä–,††’€!ׂ€†Å†‡R€!×Ɔ’€"ׂ€ŠÅ†‡R€"×Ɔ’€#ׂ€ŽÅ†‡R€#×Ɔ’€$ׂ€’ņ‡R€$×Ɔ’€%ׂ€–ņ‡R€%×Ɔ’€&ׂ€šÅ†‡R€&×€CƆ’€'ׂ€žÅ†‡R€'×€DƆ’€(ׂ€¢Å†‡R€(×€EƆ’€)ׂ€¦Å†‡R€)×€FƆ’€*ׂ€ªÅ†‡R€*×€GƆ’€+ׂ€®Å†‡R€+×€HƆ’€,ׂ€²Å†‡R€,×€IƆ’€-ׂ€¶Å†‡R€-×€JƆ ’€.ׂ€ºÅ†‡R€.×€@Ɔ’€/ׂ€¾Å†‡R€/×€AÄ–;h`§°¥C–‰¦­€²Ô†„µ­×˜Ä­íŠèïï­W|±jˆWvd­WÅi¥J¦d­§€ ҭð­³Ô­Ô !!¢d­§¢iŠ!d­§¢i­î¦ŠÜ!€¡i†„µ!×x¥…Jå0˜±¡Ô0d¹Ô¥JŠ0|¥Šä…JÔš‚€Âv šdv švŠF†w0dÅ"Ô0ç­W|qÄ­W}qk0ç#ÄŠ0ç­W}Ä0ç­W|Ä0熄µ!×xĆ„µ!×0ĈWvˆWv­W§° ÕÿˆW” ¥@ ¥€,¥ƒ¥(¥A¥¥ƒ‚¥*¥€(¥¥-¥+†ƒ p–"‡†‚…‚€Îëˆ.¤€„€‚€Ö” „€‚€Ù ” „€ëPˆ.˜`t `§Ò"š‚€Þv š‚€áv švpŠ ˆW`˜” †‚}¤€„€‚€ï” „€‚€ò ” „€ë†‚}˜t–€‡G µ„W„ƒ” †‰Äs†‰Ã†‰íxĆ † tt ¥‰Â†‚߀fp†ƒ†‚ßÅ3š‚€öv pš‚€ùv pš‚v pšvpj"²Ô †‰’"€ È"íŠï†‰Ÿ†‰’Å ¥†‰‚‚Å¥6¥ ¥"ᥥ%¥!†}t†ý†}ëÿ¥ ¥Eš‚ v pd‚'ëPd€PdÇsÒpd‚(èd‚-è d‚2è ¥Id‚'èŸÕ¡…Id‚4è d‚9è d‚>è d‚@è d‚Dè d‚Hè Ô †Pd˜” pŠ`‚Jd˜” Ò*†P¤‰„‰d˜€P” „‰‚M€X” „‰˜” pŠ(†P¤‰„‰d˜€P” „‰‚R€S” „‰˜” pp°hq Õÿd‚'蟥 ;¥E;Ô¥Šá¥¥B¥<¥;¥:¥9¥8¥M¥D€7¥j"²Ô švp"íŠï¥ƒE¥ƒG˜¥ƒJ€,¥ƒI¥ƒH†ƒ]†ƒEÅ¥ƒF¥>¥F¥=¥?¥K¥G¥¥¥¥á¥†‰­‚TÅ¥#†‚¶¤‰„‰‚X” „‰‚[” „‰‚b” „‰ëP;Ôy†P†‚¶˜v p†P‚fv p†P†‰ÃÉvp†P€/” p†P†‰ÃÉvp†P€/” p†P†‰Ã Évp†P‚kv p†P…#vp†Pvp†Pvp†Pvp…#í¥#¥‰À†…^†‚…˜” ¥q†wq¥ƒƒ„W” –µALIGN ASCII BLOCK BYTE CONST EQU FUNC PUBLIC PRIVATE PROC WORD INTERP MACRO ENDM IF ENDC ELSE REF DEF ORG INCLUDE LIST NOLIST ASECT PSECT TITLE END PAGE MACROLISNOMACROLPATCHLISNOPATCHLABSOLUTEOR AND NOT XOR MOD CONDLISTNOCONDLIASCIILISNOASCIILPAGEHEIGNARROWPANOSYMTABRADIX RELPROC RELFUNC opcode declared twice==LINKER.INFO[*]]68000.OPCODESS68000.OPCODES NOT on any volumee68000.ERRORS68000 Assembler [1R.1]]0123456789ABCDEF2Output file for assembled listing: ( for none))CONSOLE::console::#1:PRINTER::printer::#6:REMOUT:remout:#8:.TEXT.TEXT[*]][*] 68000 Assembler [1R.1]] Page Ç k %SYMTBLDU7•†ywcg«i­h jc"xºñ$"y˜Ò"çwi"yç˜Ä"yç˜Ä"y0ÄŠ"yhŠ""z˜Ò"çwi"zç˜Ä"zç˜Ä"z0ÄŠ"zh!Ô¬– { z˜Ó zï x¥†P0v p0}Šnˆ ‚€ëPŠfˆ ‚€ëPŠ[ˆ ‚€ëPŠPˆ ‚€ ëPŠEˆ ‚€ëPŠ:ˆ ‚€ëPŠ/ˆ ‚€ëPŠ$ˆ ‚€ëPŠˆ ‚€ëPŠˆ ‚€ëPŠÖ€ †Pˆ ˜v p0}ƒ€OÚÔ0~q Š †Pˆ˜v p­í¦­­°…Iå¡­­°…I¡ Ô†Pvp…!í¥!…!…Òq Š †P‚€Rv p y˜Ó yï–k^`w† w0‚€TÅew%0Ä%ç˜Ä%ç˜Äl$€²Ô$†„µ$×x¥0˜Ó0}Š0˜ŠÖ€X0|¥Šé$íŠÕ„6†‚¶ëP†‚¶‚€‡ëPq †P‚€Žv p†Pvp†P‚€®v p†Pvp†P‚€Ív p†Pvp†Pvp†Pvp…!¢¥!kÒ f‚€äë jiÒ f‚€èë ji…8Ô"i%y†‚¶„6ëP†Pvp…!í¥!q `w–^ AB  LB  PR  FC  PB  PV  RF  DF  UD  MC -¥ÿçÿ»ÿÆÿÑÿÜÿ°ÿÿšÿçÿòÿ | -÷ÿ÷ÿ÷ÿ÷ÿ÷ÿ÷ÿ÷ÿ÷ÿ÷ÿ÷ÿ÷ÿ÷ÿ Symbol Table>AB - Absolute LB - Label UD - Undefined MC - Macroo=RF Ref DF - Def PR - Proc FC - Func,PB - Public PV - Private CS - Constss------------> À >PROCEND I•†y# €¡i–(!…7qÔZ…56£íh ²ñh:…O 6”  ³ñ€6q6 ¢…3²ñ6 ¢¥3!¥pÒ:…O6” Ò6Œ¥7!…7£¥6‹™!…7ÿ¢qÕ†…56£íh ²ñh:…O 6”  ³ñ€6q6 ¢…3²ñ6 ¢¥3!¥6…3³Ô'pÒ:…O6…3£…3” 6…3£³ñ€6q6¥3ŠpÒ:…O6” Ò6Œ¥7!…7£¥6Š!…7£¥6q–W…CÓ!h ²Ô" ×" ×xqÄ íŠéˆXvp…í¥–êi…DÔx……ÓQˆX…” p…í…kh #²Ô;ˆXvp‰Xx%Ò)j"²Ô"‰Xç"×xÓ‰Xç"×x£q!íi"íŠØ 튿j"²Ô$"×xÓ$"×x£q!íi"íŠà!Ó !q%Œq– q†ƒd†ƒk†ƒr†ƒy– …Ó ˆX…” ph €²Õv†„µ ×x¥0˜±Õb0}‹S;ÕŒ†Pvp†P‚€v p†P0v p†Pvp…!í¥!0i!˜Ó_!zj†P‚€v p†P†‰‚b ɧ” p†P†‰‚bɧ” p†P†‰‚bɧ” p†P†‰‚bɧ” p†Pvp…!í¥!!|iŠ…I;¡åÕŒšvpš‚€v pš0v pšvp0i!˜Ó`!zjš‚€v pš†‰‚b ɧ” pš†‰‚bɧ” pš†‰‚bɧ” pš†‰‚bɧ” pšvp!|iŠœq‹,®Xp0}Š8®XçÄŠ3®XçÄŠ+®XçÄŠ#®XçÄŠ®XçÄŠ®Xç ÄŠ ®Xç ÄŠÖ€®X0Å0}‹Ó0æ 0Òh®XçÄ®Xç0æÄ®Xç0Ä®Xð¦0æ ˜Ó0®X®×0æ xÄ®í¦®Ò®Xð®Xp¦0ç 0æ yĊʮӮXð0çÄ0ç ˜ÄŠf®XçÄ®Xç…%Ä®Xç0~Ä®XðŠK0}Ò®Xç ÄŠ®Xç Ä®Xç0Ä®Xç0~Ä®Xç0æÄ®Xð®XçÄ®Xç0Ä®XçÄ®XðŠÖ€IŠÖ€t0|¥‹˜ý í‹‚ý–å……Ó ˆX…” p…í…on&'²Ô#ˆXvp®XxÒa®XçÅ$ða$…7£q&íŠ×–}…E…I¡ñšvpq†…^” pˆX†‚…˜” p…6Ôq †ƒ]†ƒEÅ…2ï…DÔ…4£ÿ¡îq…4ï…7…6¢¥5 …4µ…%×…2£ÿ¡íÄ…$…5¢…2£¥$†„µ†„5Å€€†‰¬w–B…E…I¡ñšvp1€BÒ€Eq`w ¥O†„5†„µÅ€€¦­²Ô `w­íŠì…Oÿp…DÔ¥7¥5¥4¥¥3Š¥7¥5¥4¥¥3¥6¥$†‰µp:…Oá” Ò€6qq…DÔ$qqi!²Ô€ q !íŠòqqqqq–,`p`פ‡ćç…$Ä„!€€€ p„!׆‰±Å„€‘׆‰±Å„aפ‡ʇʇ …MÊ„€×¤‡ʇ ʇ Ê„€Ù‚€¢ëM¤…CÓE`×`×xqÄ`×ç`×yqÄ„aׄa×xqÄ„€×„€×xqćq¤:`” pÒ€6q–ƒ Œ„X„„” „0„\á” …%²ñŠ 1€B°Õß…DÔJ…%k#³Ô †‰µ#×xq#îŠí…%q…O…6ÿ…6£p…4£ÿqîq…4…4£¥$Š…4…4¥$…6ÿ¢€qk:…O#6” #³ñ€6q6#¢¥‡Xp‡X‚€¦Å‡X„X” „0†‚…˜” …DÔ{…Œÿ¢€qk#¤Œl$‡Œ²ÔTpÒ„0…Oá” Ò$#Ò…Œj"²ñ …O"ÿ"£ppÒ:…O6” ³ñ€6q6í¥$튤pÒ „0” q…E…Iå¡ÔY†Pvp†P‚€ªv p†P…" vp†P‚€´v p†Pvp†P… vp†P‚€¸v p†Pvp†P ” p†P” pšvpš‚€Êv pš…" vpš‚€Ôv pšvpš… vpš‚€Øv pšvp‹J†‰¬w…%í¥%…% ²ñ €Fqp†ƒyp¥1†ƒrp¥0†ƒkp¥/†ƒdp¥.…¥…%²ñ „X” p†…^†‚…˜” p†…^…” p† w<ç˜Ä˜¥ƒ€…5¥2…DÔqáq¥¥¥1€>Ò¥ƒŠ€)¥ƒq1€QÓqŠL0}…ƒÓ qŠ@…%Ò†‰±0ņ‰­0Å0ç…%Ä0ç…LÄq1Òq1€PÓqŠ0ç…ÄqŠ0çÄ…E…I¡ñšvpš†‰­v pq†‰Ÿ†‰’Å ¥1€(Ó q1€(ÓqŠ÷q †ƒ†‚ßÅ3᥀,¥ƒ„X” „0” –Œ>>>>> Referenced at: >>>>> Referenced at: )íÿÅÿÕÿÍÿÝÿåÿõÿ)µÿ*ÿ*ÿ*ÿ*ÿšÿµÿ,ÔþªýÔþÔþÔþÔþÔþÔþªý[1R.1]] Assembly complete:: liness" errors flagged on this assemblyyAssembly complete:: liness" errors flagged on this assemblyy#ÁR®÷u– ™ !ASSEMBLEN•†y¢,q1€OÒ9c†‚ëPq1°h ñ1Ó€Bqq1€OÒ†‚cèi !°¤-Š€.q¤-qŠH¥>ðÔ<…ƒ^ÔqŠ03áÒ>±¤-Š$>j†ƒœ3×x°h3î¥ðÔ >"°i !°¤-Ф-Ф-–,…í¥…håÕæ1€(Ó q1€(ÓqŠ÷q …;Ôqjq5€e²ñq8 Ò…;Ôq Š †ƒ†‚ßÅ3á¥q‹˜8€.°Õ‘c‚€Åiq8ƒ€Ú!³Ÿ¡Ô8ƒ€ ÚÔ8€ £¥ c!8È!íiqŠÖ¥Ac‚€¹Ô…í¥Š+c‚€¹Ô…³ñqŠ=Š…î¥Š c‚€¹Ôq …°c‚€ ¹¡ …í°c‚€$¹¡ j"Õ;ÿ€S¥q–‡…³ñq‹×q1€(Ó q1€(ÓqŠ÷…hq …;Ôqjq5€e²ñq8 Ò…;Ôq Š †ƒ†‚ßÅ3á¥q‹Š8€.°Õƒ ic‚€(Åq8ƒ€,Ú!³Ÿ¡Ô8ƒ€2ÚÔ8€ £¥ c!8È!íiqŠÖ¥Ac‚€:¹Ô…í¥Š+c‚€>¹ÔqŠc‚€B¹Ô…³ñqŠŠ…î¥ …í°c‚€F¹¡j"ÕIÿ–ü$˜Ój$|i${…7£h$ç$y#¢Äå$É¡Ô $ç$yÿ¡Ä${…7q…7þ¢${q¡Ô$ qŠ……^Ä……^ç$ņ…^vp…í¥$ç…ƒ€Ä$¥ƒ€!lŠ’–Ö˜il1€MÒU0i¥K0¥…50~k0ç…Ä…ƒƒ°!˜±¡Ôq0}€"Ò0ç€(ÄŠ$0}€,Ò…ƒƒÒ0ç€*Ä0ç…ÄŠ0ç€+ÄŠlŠL¥K…ƒƒÒ€,qŠ=†ƒ¢…,×~€,Ó qŠ,†ƒ¢…,×ç€+Ćƒ¢…,×ç…Ćƒ¢…,×}i†ƒ¢…,×ç˜Ä1€MÒqq$Ô1€4Ò0ç#ÄŠ q¥K˜i1€4Ó!…ï–4ïÔRþïÔF>ÒiŠ…i!>qÔ!>£iŠó!²ñ)>!£iÔ!jh "²Ôq íŠóŠ!jh "²Ôq íŠó–‡q1€OÒA†‚§i!jh "²Ô;…:¡Ô ° ±¡Ôq †‚ §q íŠÜÔ!í…¢¥!Ôq Š qq–Þ† w0h çÄ çÄ ç ˜Ä !xÅ ç ˜Ä…ƒa€#Ó ç …ƒbæ Ä!xç€.Ä!x‚€JÅ ç!x|Ä!xç0Ä!0Ä–……5}€(Ó……5ç=Ä……5ç>Ä>h`q –{…Kñ€&qŠfïñ qŠ[…ƒ^Ô€CqŠP…ƒƒ°=€*±¡Ô€GqŠ>=ƒ€NÚ……5}ƒ€QÚ¡ñ€HqŠ"…ƒ]Ò †…5 Š……5˜Ó ……5……5~ï¥K–x€-¥ƒ…ƒ‚Ó€Aq‹âq1ƒ€TÚñ qŠ0}…ƒ±1€!±¡Ô q0ç€-ĆNw0ç…NÄq8 Òú¥A…N…<È¥ha‚€ZÅ¥=4 ²ñ†Nw¥q5€e²ñq…N48È8 Òq qŠ,8€.Ò ha‚€^ÅŠ ³ñ8ƒ€bÚÔ8€ £¥ a 8È íh4í¥a‚€j¹ ²Ÿ¡Ô€"qa‚€n¹ÔŒ4 ²Ô…N4 ÈŠ †Nw…N È€,¥ƒ¥=q–ïñ qŠxþïÔl…ƒƒÒ…>¢¥1Òq1€(Ó€IqŠO>hj1ÒïÔ€€á€ÿïÔ>jŠ1€(Ó qÔ ki!#²Ô"q!íŠóŠ ki!#²Ô bÉq !íŠð–[i…ƒƒÒÔ…í¥Š…¢¥q1€(Ó€IqŠ.hïÔ ïÔ>h q;Ô!íi!°1°¡Ôq 1ÓÒ–Â…ƒƒÒ…í¥q1€(Ó€IqŠHihïÔ€€á€ÿïÔ>h`Éq !íi;Ô !°1°¡Ôq 1ÓÌÔ…!í¢¥!Ôq –,ïÔ^ïÔT…ƒƒÒ>¥ŠI…°…Då¡Ô >¥…¥Š6å…³…þ²¡ Ô&>…qÔqŠÔ …>ÓqŠöŠ …>Óq Šö–ª1Š#€%¥ƒŠ€$¥ƒŠ€&¥ƒŠ€'¥ƒŠ €"¥ƒŠÖ€rq1€QÓqŠ:0}…ƒÓ qŠ.…ƒ€&Ò%0hq1Òq1€PÒ ç…ÄŠqqŠ çÄŠq1Ó¶€,¥ƒ–Èq1€OÒ †‚¶†‚ëPŠ€.qq–; <ç…5Ä<ç…Ä<­Ê­Ô>Ô¦Š¦å¡å¡ Ô<ç…5íÄ<ç!³Ÿ> ²Ÿ ¡ÔqmŠ$3á±¡Ô qá¥mŠm–û !h çÄ çÄ Ä çÄ çÄ çÄ çÄ ç€*Ä–* †ƒ]†ƒEň€±ÇŽˆ ƒ€³ÇŽ–E q1€(ÓqŠ÷¦p–X 3í¥†ƒœ3× Ä–Œ …>ÔqŠ¥>1ˆ ÐÚñï1ˆÐÚÔ1ï1ˆÐÚñÒ–. ¦®h x {±¡ y {²Ÿ {᳟ ¡  y x å {²Ÿ {³Ÿ ¡ Ô€+q {° y x å¡Ô¥ƒ]Š ~¥ƒ] y¥ƒ^ |¥ƒ`…ƒ]Š ¥ƒ_Š ¥ƒbŠÖ€¹ x z Ô }¥ƒaŠ y {° Ô€+¥ƒaŠ€*¥ƒa…ƒ`¥…ƒa¥–  i1ƒ€¾ÚÔ`­ÓïŠW1ÚÔ1ï­ Ô¦1 Òp®ÔqŠ0 Ô Š)­ƒ€ÁÚÔ­ŠïŠ ïŠ1ïŠրà Š¦i–9 (i'haØÉk`ØÉj#Ô]"Ô! £³ñn!mŠn! £mŠC!@£@£i! @ ¢@ ¢n! @ ¢@ ¢m%ldØÉ% ³ Ô &ín% £m%lŠéŠ"Ôn!mŠ! n! m)Š &¤ Š%¤ ŠրȖ ¡­z­ ­y­x ­­ ¡ ­­ ­°¡ ­ƒ€ÌÚ­  å ­ƒ€ÎÚå­±­ ­ ­{± ­y ­x ¡ Ôï­h x y ñ5­­ ­ ~³ Ô( ç­Ä ~Š ç­Ä ~Ò ç­ÄŠ ç­ÄŠրРç y­ Ä x­ Ä­‹±­ ÔïŠ ç­åÄ‹¢ ç |­¢Ä ç {­¢Ä‹ ç |­£Ä ç {­£ÄŠy ç |­ ÄŠn ç |­¡ÄŠc ç |­å¡ |å­¡ ÄŠP ç |­ŒÄŠE­ÒïŠ ç |­ÄŠ1­ÒïŠ ç |­"ÄŠ­ÒïŠ ç |­"ÄŠÖ€Õ¦ –A¤ ¤ ¤ €S¤1¤*åÔ‹}¤ 1Š`‡°* ÔŠ‹hŠR¤ ŠM¤ ŠH(ÔŠ¤ Š<(Ô‡°€*€*±¡Ô¤ Ф Š*¤ Ф (Ô¥>q0}Ò¤ ŠÖ€ì+åÕ (Ô)¤ Š*)Ó*Õð`ï.‹Ë`‡íï‹Å1€PÒ…lŠ-†‚§²Ô"†‚§¤¤/‡²Ô$Œ†‚/§¢l/íŠèŠn€*m‹†nk…ƒƒÒ…lŠ…lŠrn€#mhŠi†ƒ¢…,×~€,Ò…,oiŠkn†ƒ¢…,×|lŠG0}Š;0~ln0}m0}€*ÓjŠ,i0onŠ$n0ok0~lŠn0okŠn0}m0o0~lhŠÖ>ŠÖm…Dñk(Ô ‡`Ť Š!¤ Š.¤¤ ¤ Õtþ–N`–r q᥆ƒ]†ƒEÅ1ƒ±ÚñqŠò–ôˆÊ0}ƒ´Úå1€Q± Ô€Pð$Š^ˆ 0~Ê0}Òˆ ˆ É¢Êq8€)ÒqŠ88€.Ò/q8€W±8€L±¡Ô€Qð$Š8€LÒˆ Êq1 ÒqŠ€Nð$Š€Lð$–¦0~¦–¦0~¦–m3î¥q1€Q±0}± Ô€Mð$Š<0~¦q1 Ó€Nð$Š+q3°†ƒœ×x°¡Ô ¦á¥Š1Ò¦qЦ–Ï3î¥q1€Q±0}± Ô€Mð$ŠD0~¦q1 Ò¦qŠ11Ò)¦q­Ò€+ð$®€€á³Ÿ®€²Ÿ Ô€Oð$Šï&Š€Lð$–Þ¦¦–þ¦1 Ò3qï&Ц– 3¦–—¦¦¦ðÔH>¦=Ò'Š:=Ò(Š2…ƒ]ÚÔ,Š&1 Ò…ƒ]h*Š3áÒ+Š3°†ƒœ×x°¡Ô-Š 1 Ò)Š€Lï$3áÓ€Lï$†ƒW†ƒ]ņƒ]†ƒEÅ–¦1Ó€Tq–7­°­°­°¡­° ¡Ôq­³Ôm†ƒ]†ƒWÅ­°­ Ú¡ÔT­ŠB…ƒƒÒ ­……£¢¦Š ­……£¢¦Š%…ƒƒÒ…ƒ`……£¢¥ƒ`Š …ƒ`……£¢¥ƒ`ŠÖ¶­­°ðŠ­q–C­±h–O­³h–g­€dÚ­°­²¡ h–y­°­³¡åh–l­Š€QqІ ÊŠ† ÊŠ † ÊŠÖºï%­°­°¡Ô€Rï$0}ƒÀÚÔ€Rï$­k†­ʆ­ʆƒQ†ƒWÅï.ï%ï3ï0¡ñ€Sï$0}ƒÂÚÔ€Sï$† ­ʆ­Ê7q†ƒ]†ƒQņƒQ†ƒWņƒW†ƒ]ņƒ]†ƒEÅ­h†ɦ†ɦ#¦ï/†ƒW†ƒQÅ ¦†ɦ† ɦï/–Aq0}ƒÄÚ1€Q°¡ÔM`N¥0}Ò†0~Ê0}hqï.q0}ƒÆÚå 0}° 1€Q± Ô€Sï$0}Ò †0~ʆÊq7qŠpÀ@¥0}Òqï.ï%ï0ï3¡ñ€Sï$Š>¥>ï%ï0ñ€Rï$ï.q0}°1€Q°¡Ô† ÊŠ0}°1€Q°¡Ô† ÊŠ€Sï$q†­ʆ­Ê7qï/–S­Òï5Šï4–‘­Š)€UqŠ&€QqРІ†ÉíÊŠ††É¢ÊŠÖÈï%ï.­°† É °†É³Ÿ¡å¡Õ…† ­Êï%†É³† ÉÚ ï3ï0¡å¡Ô€Sï$Š ï3ñ€Sï$†­ʆ­ʆɱ†É³ Ô†É³ñ††É¢ÊŠŠ†Éh†† Éʆ ÊŠ`†É³Ô€Rï$† É °† ɰ Ô ï0ñ€Rï$­°­°¡Ô€Rï$†­ʆ­Êq0}°1€Q°¡Ô † 0~ÊŠ€Sï$q7qï/–à­Ó€Vqï%†É€N°7@H° Ô ï2ñ€Sï$ŠŠ ï0ï3¡ñ€Sï$†­ʆ­Ê7qï/–|­Úñ€QqðÕ„…ƒ`£¥ƒ`­ÒhŠDh…ƒ`…£i!Ó7…ƒ]Š/!€€á³!€²¡hŠ%…ƒ^å!€€á³¡hŠ…ƒb}ƒÏÚå!€€á³¡hŠÖÒ Ô7ðŠ%†ƒW†ƒ]ņƒ]†ƒEÅ7q†ƒ]†ƒWÅ…ƒ`ð–É­Š€UqŠ€QqŠŠ†ÊŠ †ÊŠÖ×ï%ï0ï3¡ñ€Sï$†­ʆ­Ê7qï/–æ­Š€UqŠ€QqŠŠ†ÊŠ †ÊŠÖÞï%­°­°¡ñ€Rq­k†ƒQ†ƒWņƒW†ƒEÅï.q0}ƒåÚ1€Q°¡Ô5†ÉÚñ€Sq0}°­±¡0}°­±¡ Ô€Qq¦¦qŠ¥>ï%ï3ï0¡ñ€Sï$†­ʆ­Ê7q†ƒ]†ƒQņƒQ†ƒWņƒW†ƒ]ņƒ]†ƒEÅ­h¦¦#¦ï/†ƒW†ƒQÅ ¦†ɦ†ɦ­°­°¡ñï/–­Ó€Vqq0}±1€Q± Ô€Rq†0~Ê7qq–>­Ó€Vqq0}±1€Q± Ô€Rq†0~Ê7qq–¸­Š<€UqŠ9€QqŠ3† ÉÒ† ÊŠ†ÊІ ÉÒ† ÊŠ†ÊŠÖçï%†­ʆ­Êï.q0}±1€N° Ô€Sq† 0~Ê7qï/q–<­Š)€UqŠ&€QqРІ†ÉíÊŠ††É¢ÊŠÖîï%­±­± Ô€Rï$ðÔ† >Êï%ï3ñ€Sï$­°­°¡Ô€Sï$†­ʆ­Ê7qï/–½† ÉÚÔ ­Ó€VqŠŠ+­Š$€UqŠ!€QqŠ†ÊŠ†ÊŠ †ÊŠÖõï%­Úñ€Rq­h†­Ê­Ó†Êï% ­Ó€Sq† ­Ê7q–I­Š#Š$€QqІ†ÉíÊŠ††É¢ÊŠÖüï%­Ò† ­ʆ†É¢ÊŠ(­°­°¡ÔðÔ † ˆÉÊŠŠ€Rqï.ï%­Ó€Sq†­Ê7q–ˆ† †Éʆ†É¢Êï%ï1ï3¡ñ€Sï$†­ʆ­Ê7qï/–™­ÒïBŠïA–m­Ó€Vqï%ï.­ÒK† ­Êï%†ÉÒï0å­°­°¡ Ô€SqŠŠ ï3ï0¡ñ€Sq†­ʆ­Ê7qï/Šp­±­± Ôq€Rï$Š]ðÔS>h††É£Êï%†ÉÒï0å­°­°¡ Ô€SqŠŠ ï3ï0¡ñ€Sq†­ʆ­Ê7q qï/–Â­Š€UqŠ€QqŠŠ†ÊŠ †ÊŠÖ‚ï%­Ó€Rqï.†­Êï%­Ó€Sq† ­Ê7q–ý­Ó€Vqï%­Ó€Wqï.†­Ê7qï%­±­± Ô€XqŠï/–y­Ó€Vqï%­²ñ€Rq­h† ­Êï.ï%­²ñ€Sq†­Ê °­° Ô†Ê ­Ò†ÊŠ!†Ê­Ò† Éh† †Éʆ Ê7q–Ž­Ó€Vq7qq–£€Y’$¦€Jp–(0}°1€Q°¡ÔkŠ0}°1€Q°¡ÔkŠïK0~jq1Ó"iŠ"q0}°#°¡0}°#°¡ å1€Q± ÔïK0~iq"!²ñïK"!lh $²Ôˆ# ¢ØÉÔïKŠ ˆ# ¢ØÊ íŠÛ–>¦1ÒqL1Óô–ò­Š€QqŠ€UqŠ †ÊŠÖ‚ q0}ƒ‚Ú1€Q°¡ÔJJï.ï%­°ï2ï3¡ ñ€Sï$†­ʆ­Ê­ÒabxÄh ²Ôb Øa £ØÉÊ íŠèŠ/† Ê¥>ï%ï.­°ï2 ñ€Rï$І­ʆ­ÊqJ7q"qï/–}­Š€UqŠ€QqŠ Š †ÊŠÖ‚ï%ï.­Ò'† ­ʆ†É¢Êï%­Ó€Sq†­ÊŠ*†­Ê­Ó€Rqq0}±1€Q± Ô€Sq† 0~Êq7q†ƒ]†ƒWÅï/–Ü­Ó€VqðÔ3±†ƒœ×x± Ô€Rï$€€á€ðÔ†>Êá¥ï.q0}±1€Q± Ô€Sq† 0~Ê7qq–' ­Ó€Vqï%ï0ñ€Rqï.†­ʆ­Êq0}°1€Q°¡Ô † 0~ÊŠ€Sq7qï/q–n ­Š€UqŠ€QqŠ†ÊŠ †ÊŠÖ‚q0}±1€Q± Ô€Sq†0~Ê7qq–· ­Ó€VqðÔ13°†ƒœ×x°¡ÔðÔ††É>¢ÊŠŠ€Zqá¥7q– !­Ó€Vqq0}±1€Q± Ô€Mq†0~Ê7qqï.ðÔ!3°†ƒœ×x°¡=€*°¡Ô>qŠ€Zï$ᥖW!­Ó€Vqï%ï2ñ€Rq†­ʆ­Êï.q0}±1€Q± Ô€Mq† 0~Ê7qï/q–}!­Ó€Vqï%­°­°¡ñ€Zï$7qï/–7"…Ô€ q 0~¥kq8€.Ó¥AŠ*q8€BÒkŠ8€WÒkŠ8€LÒkŠ 8€SÒkŠ€_q0}Šh6Šg7Šc8Š_9Š[:ŠW;ŠS<ŠO=ŠK>ŠG?ŠC@Š?CŠ;DŠ7 EŠ3FŠ/GŠ+HŠ'IŠ#MŠNŠOŠPŠQŠRŠ SŠTŠÖ‚ –R"á¥;Ô q ¥ …IÔqq–ˆ"…EÔ*ih!…² ¡Ô†ƒ„!×x§h Ô!íiŠæ!î¥;ñq ¥ q–Ÿ"…%²ñ€DqŠ¥Dq–È"q1€P°…ƒ‚<Ú¡Ô…¥Šq1€(Óq–ò"q1€PÒ…²ñ…£¥ŠqŠq1€(Óq–™$qq1€M°1€N° Ô …ƒƒ°1ƒ‚>Úå¡1² 1€K³ …%°…ƒƒ°1€(³Ÿ¡…ƒƒ°1€"³Ÿ¡ ¡ Ôq1€(ÓqŠ÷q ‹D1h1‹U‹þV‹ù¥¥Š 1€AÒ€?¥…M…L¡¥MŠrŠ1…EÔq ŠhŠ'Š#ŠŠ…³ñqŠ…î¥qŠ#ŠÖ‚H3áÓá¥q1€(Ó q1€(ÓqŠ÷ ƒ‚uÚÔ†ƒ†‚ßÅ3᥊q ¥KÕ_þ– ÿþÿÿþÿÿIF ENDC END ELSE ENDC ÿþÿÿþÿÿIF END ENDC ENDC   þÿÿEND ENDM 59ïÿöÿáÿèÿÚÿ,ÍÿÑÿÍÿÍÿÍÿÑÿ^ÿyÿ~ÿ½ÿøÿ €>ÿû~ÀïÿöÿöÿŠ8îÿóÿøÿóÿøÿ€õÿâÿâÿ‡ÿÿ»ÿÏÿæÿLÿ^ÿsÿ°ÿ’ÿQ¸ÿ¸ÿ¸ÿ¸ÿ¸ÿ³ÿ®ÿÿ³ÿåÿÄÿ¸ÿ®ÿ®ÿ®ÿ®ÿ®ÿ®ÿ,ÂÿçÿÂÿÂÿÂÿÂÿÂÿÂÿÔÿïÿïÿïÿïÿïÿÜÿçÿÂÿÜÿÔÿQ2ÿzÿzÿŽÿ—ÿ;ÿ;ÿ¹ÿ€ »ÿÛÿåÿíÿõÿßÿÀР ÔÿàÿâÿïÿÚÿÎÿÛÿèÿßÿëÿíÿõÿåÿßÿëÿíÿõÿåÿPÁÿÇÿÍÿåÿÇÿÔÿàÿâÿïÿÚÿÙÿåÿíÿõÿßÿÚÿâÿïÿÜÿßÿëÿíÿõÿåÿïÿéÿõÿéÿ çÿíÿóÿõÿíÿáÿçÿíÿõÿçÿ•ÿ™ÿÿ¡ÿ¥ÿ©ÿ­ÿ±ÿµÿ¹ÿ½ÿÁÿÅÿÉÿÍÿÑÿÕÿÙÿÝÿáÿåÿéÿíÿñÿõÿùÿì   Jxÿùÿjÿ‘ÿsÿ…ÿ‰ÿÿaÿåÿáÿÿÿÿÿWÿÿÝÿ}ÿÙÿÙÿÙÿÙÿÙÿÿýþ•ÿ¢ÿ¦ÿ¦ÿ¦ÿ¦ÿÏÿ'ÿ/ÿ7ÿ?ÿžÿGÿOÿ\ÿð0øfRF+®‰^9ðÁ{ÔÉ!¿c9Ï Æ § a Þ ¡ ‹ u ç À r K ¬ £ 8 ¿ ¶ ª ¤ ž U N  ñ까„|; )ÁRŸÈ®¥—S€hÆ fWã°ƒ>ÀqFƒí€FÑ SF#á{Y,PRINTMES)•†yP)`„*¬P;Ô†P€:” p†P`˜v p…I;¡ñš€:” pš`˜v p–+ 8TLA * •†y);ÔE†Pvp†ƒ†‚ß¹fñ†P†ƒ€f€fv p†Pvp…!í¥!†P‚€v p†P‡*vp…!¢¥!…I;¡ñ?švp†ƒ†‚ß¹fñš†ƒ€f€fv pšvpš‚€v pš‡*vp†‚}‚€ èñ‡*`t`‚€ èñ`˜”;Õ«†Pvp…!¢¥!…‰ÀÓ}†P‚€ v p†P…‰Àîvp†P‚€v p†P†‰‚†‰Á ɧ” p†P†‰‚†‰Áɧ” p†P†‰‚†‰Áɧ” p†P†‰‚†‰Áɧ” p†P€h” p†PvpІP‚€ v p†Pvp…#¥‰À…¥‰Á…I;¡ñšvp–*P*… í¥ r‡+‘š” š‚€,v švš`v ƒ€A…‰Ââ¼ÛÚÔê …‰Â°‡+€/³‡+€<²¡ Ô)‡+†ý˜t†…^” †…^†‚…˜” †…^” p €E° €e° Ô-‡+…(£…*†ý˜t†…^” †…^†‚…˜” †…^” p‡+†ý˜t‘;…!…£²Ÿ¡Ô‘ –+j"i`aÉÊ`aÉÊ k–ª­‘ †P‚€Hv p  Ô­ ‘ Š­‘ ‘ †Pvp…!í¥!…!…Ò‘ –`b(Å#hbÉÕ€ €²Ÿ €€á³Ÿ Ô_$hš‚€Jv pš†‰‚` ɧ” pš†‰‚`ɧ” pš†‰‚`ɧ” pš†‰‚`ɧ” pšvp‘Š…O'`ÉÈ;…B¡ÔŠ"Ô ‘h…O'`ÉÈ…O'í`ÉÈ;…B¡Ô– |pÓ€.p¢‘ Ôp–…+…-îih !²Ôg†ƒ¢ ×}˜ÓY;Ô †Pvp†P‚€Ov p†P†ƒ¢ ×v p…I;¡ñ#švpš‚€Sv pš†ƒ¢ ×v p‘†ƒ¢ ×ç˜Ä 튓…+¥-†ƒ…× x¥+–‡…ƒ‚Òw…*ÿ³ñoÿ5£¥…AÔ55î †‡‚…*íp¥5€f³ñ†‡‚…*톃5pІ‡‚…*톃€fpŠ/5 †‡‚…*p¥5€f³ñ†‡‚…*†ƒ5pŠ †‡‚…*†ƒ€fp–»;…I¡ñ'švpš€<” pš…"vpš€>” p–g…IÔ†Pvp†PvpŠ †P ” p†P‚€Wv p†P…#vp†P€ ” p†P†‰­v p†P€-” p†P†ý˜v p;…I…8 ¡Ô†‚¶§€#²ñ†‚¶€#ȆP‚€Zv p†P†‚¶˜v p†Pvp†Pvp†Pvp¥!…#í¥#–‘5…"í¥";…I¡ñš€.” p…"€2Ò‘;ÕÖ…!í¥!…!…Ò‘ …‘ 2£³ñ=2£íh†‰Ÿ2Ȇ‰Ÿ2í € ¢È†‰Ÿa2¢pa2¢È†P‚€\v p†Pa˜v pІP‚€^v p†P†‰Ÿv p5€e²ñ€e¥…85€1²Ÿ¡Ô€1¥5áÒ¥†ƒa5pa5È…ƒ‚Ò†P€#” p†Pa˜v p†PvpІP€ ” p†Pa˜v p†Pvp…ƒƒÒ…¥Š…¥†‰Ÿ†‰’Å ¥†ƒ†‚ßÅ3ᥖ5s"h!ÔLÒ †P†‰‚`ɧ” p†P†‰‚`ɧ” pÒ!†P`Évp†P`Évp†P`Évp‹ŠÒ@†P†‰‚` ɧ” p†P†‰‚`ɧ” p†P†‰‚`ɧ” p†P†‰‚`ɧ” pÒB†P`Évp†P` Évp†P` Évp†P`Évp†P`Évp†P`Évp–h…6ÿ²ñB:…O6” Ò€6‘‘6í¥6…3²ñ6¥3…O…OîŒp…6£¥6…7¢¥7…O…6!È…6í¥6…7…6¢¥5…5…4‘Ô…5¥4ñ…í¥;…Gå¡Ôv!hÒ02¢²Ô)†‰Ÿ2†‰‚`ɧȆ‰Ÿ2톉‚`ɧȆ‰Ÿ2¢€ È2¢¥Ò<2¢²Ô5†‰Ÿ2`É€0¢È†‰Ÿ2í`É€0¢È†‰Ÿ2¢`É€0¢È†‰Ÿ2¢€ È2¢¥–œ b%xÄabxÄñ"‘j;Õý# Ô`axÄŠ`bxÄ$$Œ¢lÒb2¢²Ô[†‰Ÿ2€*p$³ñ†‰Ÿ2†‰‚` ɧȆ‰Ÿ2톉‚`ɧÈ$Ó†‰Ÿ2¢†‰‚`ɧȆ‰Ÿ2¢†‰‚`ɧȆ‰Ÿ2¢€ È2¢¥Òz2¢²Ôs†‰Ÿ2€*p$³ñ'†‰Ÿ2`É€0¢È†‰Ÿ2í` É€0¢È†‰Ÿ2¢` É€0¢È$Ó*†‰Ÿ2¢`É€0¢È†‰Ÿ2¢`É€0¢È†‰Ÿ2¢`É€0¢È†‰Ÿ2¢€ È2¢¥#ñÔ…í¥¥GbÉ‘ bÉ‘ ¥G– <ç…5Ä<ç…Ä<Ê<Ê<ç­Ä¦– …D…ƒa€*±¡Ô5"xÒ#……^ Ä……^ç!ņ…^vp…í¥!p"Ä!"x×…5Ä""xíÄ–+ …¡Ô€K‘i#h…ƒ]‹ø‹ø†.†ƒd‹í…ƒ^Ô4<熃¢…ƒ_×}Ćƒ¢…ƒ_×ç<Ä…ƒ€˜Ó…ƒ€¥ …ƒ€|¥ƒ€Š† w†.†ƒd‹©…ƒb}Š>†.†ƒdŠ7<ç…ƒbÄ…ƒbç<Ä…ƒ€˜Ó…ƒ€¥ …ƒ€|¥ƒ€Š† w†.†ƒdŠÖ€`Š`…ƒa€#Ó.…ƒbæ j"ç"æíĆƒcw…ƒc…5£Ä…ƒcç"æ Ä"ç …ƒcÄ…ƒaІ1†ƒyІ0†ƒrŠ †/†ƒkŠÖ€ŽŠÖ€•†ƒ]†ƒEÅ`!‘ –ó †ƒ†‚ßÅ3¥…?Ô†…6†‡‚…(” ¥)Š9†‡‚…(” ¥)¥*…(…)¢¥(…)Ò>…?Ô.…'¥(…&¥*9†‡‚…(£” ¥)¥?†…6” †ý†}ëÿŠ €$‘p"p‘€f †‡‚…*p¥†‡‚p¥5€f³ñ†‡‚…*†ƒ5pŠ †‡‚…*†ƒ€fp–E j…N#xí§¥ ##x¢Ä8€1³Ÿ8€9²Ÿ Ô‘‹(8€1£i†ƒŠ…î×xh…²ŸÕ€†ƒ„…î×x¥N!±…N § ±¡"…N §€;°¡å¡Ô1"Ô …N §€"±jŠ…N §€"°…N í§€"±¡j…N §€,°"¡Ô!îi íhЏ€f€ …N pi !¢h…N §¥ 8 °8€;° Ô †ƒ„…×x¥NŠg!±†‡‚ § ±¡"†‡‚ §€;°¡å¡Ô5"Ô †‡‚ §€"±jІ‡‚ §€"°†‡‚ í§€"±¡j†‡‚ §€,°"¡Ô!îi íhв€f€ †‡‚ pi !¢h†‡‚ §¥ 8 ±8€;±¡8€,±¡Ô¥ƒ‚†ƒ–…×#xÄ…î¥ ¥¥A‘–›…ƒ‚‹F…AÔ 4í¥5í¥Š¥A…N4§Ò,…N4í§¥ 8€ £°¥H5€e³ñ†ƒ5Ȇƒ5í8È5¢¥4¢¥…N4§¥ 8€%°…F¡Ô …¥†ŠM8€ °…F¡Ô,€f€ …N4ph5 ¢€f³ñ†ƒ5 € p5 ¢î¥4 ¢î¥Š8 Ó5€f³ñ†ƒ58È8 Ò€ ¥ ‹œ…AÔ …í¥5í¥Š¥A…²ñ …N…§¥ І‡‚…§¥ 8€%°…²Ÿ¡…F¡Ô†‹Ê8 °…F8€;°8€,° ¡ ÔZ…í¥…²ñ€Fဠ…N…îphŠ€Fဠ†‡‚…îph5 ¢¥†ƒ„…×x¥N……Ò¥ƒ‚Š †ƒ–…×x¥¥A‘Š^8€ °…F¡ÔA5€f³ñ†ƒ5€ È5í¥…í¥…²ñ …N…§¥ І‡‚…§¥ 8€ Ó΀ ¥ …î¥55€f³ñ†ƒ58È8 Ò€ ¥ ‹…AÔ…*í¥*Š¥A…*?³Ô‘†‡‚…*§¥ 8Ò…=ñ†‡‚…*í§€ °¥H…*¢¥*†‡‚…*§¥ 8€ Ò…F…=å¡Ô…*€f€ †‡‚…*p¢î¥*Š(8€;Ò…FÔ…*€f †‡‚…*p¢¥* ¥ Š8 Ò€ ¥ ŠÖ€œ–·‘8ƒ€¡ÚÔ 8€a£€A¢¥ –,§„-‚€©ëPc‚€ªëP8ƒ€«ÚÔ=8€_Ó48€A³Ô „-8€7£ÈŠ„-8€0£Èc¤W„Wc˜€P” „W„-˜€ ” „WëP‘йc” c§±c§° Ôí8ƒ€±ÚÔ8ŠjŠjŠ jŠjŠÖ€·Š…j¥A€P¥„-È¥"‹Êc§²ñ‘ŠIc§³ñc¤W„W„-˜€P” „Wc˜€ ” „WëPŠÛ„V c§Ê„Vc§Ê„Vc§Ê„Vc§Ê‡V¥‹uc§²ñ‘Šyc§³ñc¤W„W„-˜€P” „Wc˜€ ” „WëPŠÛhi!²Ôc!§ ²ñ‘‹.Š Œc!§¢h!íŠßc§ ²ñ‘‹ ™²Ÿ ™°c§²Ÿ¡ Ô‘Š Œc§¢¥‹íc§²Ÿc§²Ÿc§°¡ Ô‘Šqc§³ñc¤W„W„-˜€P” „Wc˜€ ” „WëPŠÛi!²Ôc!§²ñ‘‹š!íŠé„Vc§Ê„V c§Ê„V c§Ê„Vc§Ê„Vc§Ê„Vc§Ê‡V¥Š`c§²ñ‘ŠOc§³ñc¤W„W„-˜€P” „Wc˜€ ” „WëPŠÛi!²Ôc!§²ñ€ ‘ŠŠ „V!£Øc!§Ê!íŠÛ‡V¥ŠÖ€à–€§Óª‘a‚€ñÅh8ƒ€õÚÔ& ³Ÿ8€_±¡Ô8ƒ€ýÚÔ8€ £¥ a 8È íh‘ŠÐ Ò€-‘áh¥J…Jå €/³Ÿ¡Ô íh††’ ×a¹¥JŠã…Jñ€!‘Š †‡R ×x¥¥A1€R°ÕŽ…Ò€"‘Š…î¥‘…²ñ#†ƒ„…×x¥N†ƒŠ…×x¥…N4§ Ó4í¥ŠóŠ¥ƒ‚†‡‚…*§ Ó…*í¥*Šð‘1€(Òù†ƒ†‚ßÅ3ᥑ…E;å¡……°¡Ô ¥ …IÔšv……²ñ…¥‘‹Ž1€L°Õ‡…?Ô€#‘‹|…ƒ‚Ó€%‘‹o¥?„/‚ëPe‚ëP‘8€ ±8 ±¡Ô!„/8Èe¤Z„Ze˜€P” „Z„/˜€ ” „ZëP8 ÒÏ…(¥'…*¥&†…6e˜” p¤X‡X °‡X° Õ®švš†ƒ€f€fv švš” š‚v švšvš ‚v še˜v š‚v švš‚(v švš„Yv ‡Yƒ6…‰Ââ¼ÛÚÔè‡Y…‰ÂÒ†…^†‚…˜” †…^” pІ…6e˜” p¤X‡XÓ&†…6¤Z„Ze˜€P” „Z‚9€U” „Z˜” ‘†ýeëÿ¥(¥*€(¥…I;¡ñšvpš†ƒ€f€fv p‘–€ªÁc‚<Åh8ƒ@ÚÔ& ³Ÿ8€_±¡Ô8ƒHÚÔ8€ £¥ c 8È íh‘ŠÐj¥J ²ñ îh Ô ""¢c §¢jŠ"c §¢jŠã"€¡j†„µ"×x¥…Jå0˜±¡Ô0c¹Ô¥JŠ0|¥Šä…JåÕ“…ƒŠg†wŠc…ƒŠ† wІ wІ wŠ † wŠÖP0o'çÄ'çÄ'çÄ'ç ˜Ä'ç 0ÄŠ"† wІ wІw0çÄ0ç˜ÄŠÖV0o'cÅ'ç…ƒÄ'熄µ"×xĆ„µ"×0Ä‹ 0}€-°Õ˜…Ò€"‘‹Œ…ƒ‚Ò‘‹€…ƒ€-Ò ‘Št…²ñ †ƒŠ…×4ÄŠ †ƒŠ…×…*Ä8 Ó‘Šø‘ ¥ƒ‚†ƒ…×…+Ä…-¥+…í¥†ƒ„…×0~Ä0~¥N……îÒ…N§Ô…¥Š ¥ …IÔ‘¥€(¥‘p…HÔ 8€:Ò‘€M¥Š0}³0}²¡Ô€!¥Š€Q¥¥A–Ø d‚…Åi…k…ƒ‚°h Ô†ƒ#×x¥,#í…Ò…+jŠ †ƒ#í×xjŠ…+¥,…-j8ƒ‰ÚÔ!³ñd!8È!íi‘Šæ!Ò€'‘¥J…Jå…,"³Ÿ¡Ô†ƒ¢…,×d¹Ô¥JŠ…,í¥,ŠÛ…Jñu…-Ò €(‘pŠe Ô?†ƒ¢…,׆ƒ¢…,í×…-…,£Œp…+í¥+#í…î¤ i!(²Ô†ƒ!׆ƒ!×xíÄ!íŠç†ƒ¢…,פ (dÅ(ç€,Ä(çÄ(ç˜Ä…-í¥-€N¥…H8€:°¡Ô‘¥A– g|€O¥¥F¤+a‚ëP†‚‚€ ëPh‘‡+å €P³Ÿ¡8 ±¡ÔD8€"Ò‘8€"Ó ¥A¤+€"¥ ‡+ñ(a8Ȇ‚¤,„,†‚˜€P” „,a˜€ ” „,ëP‘ íhŠ­¥F8 Ò€(¥€)‘ €PÒ€*‘–|µ1€(°¥H€S¥‘8€ Ò‘¥HŠô8 Ò€(¥‹8‹‹‹‹ ¥‹ ¥‹ý ¥‹÷ ¥‹ñ¥‹ë¥‹å¥‹ß ¥‹Ù ¥‹Ó¥‹Í€(¥‹Æ¥‹À€*€$Ò‘8€0³Ÿ8€9²Ÿ Ô¥¥AŠŠ‘‹˜ ‹“‘8€/Ò¥Š¥¥AŠ¥Šz‘8€+Ò¥Š8Ò¥Š¥¥AŠ]‘8€-Ò¥Š8€(Ò¥Š¥¥AŠ?¥Š:¥Š5¥Š0¥Š+¥Š&¥Š!‘8€>Ò¥Š¥¥AŠ ¥Š¥ŠÖŽ1€SÒ ‘–Ò"³!³°h Ô"!³ŸkŠ"³k–ã! ±! ‘å¡j–ñ! ‘åj–ü! ¡j–=†…^††Š” †…6††bá” †P†|” u”…%²Ÿ…E¡…9¡Ô” ” 1€BÒ内^” †…6” †P” –error error Last error was on page:  at location: This is the first error( (continue), (terminate), E(ditt * location >>>>> $>>>>> $Page  | | ,¿ÿÉÿ¿ÿ¿ÿ¿ÿÉÿ#'óÿéÿéÿßÿÿÿÿWÿ ÿ·ýdþpÿþÿÿ  ÿ~€@.Tõÿùÿñÿíÿ ÿÿ‹þ3þ ÿþÿÿ‡þÿÿþÿÿ  Error -- Volume not onlineeInsert  then to continue  Or type to exit. .text ÿþÿÿ‡þÿÿþÿÿ$'áÿöÿèÿïÿ-Þÿìÿÿÿÿÿåÿìÿ–ÿ ÿ !~ÿhÿ÷þ@ÿÚÿÐÿýþ'ÿÕÿ†ÿÿ£ÿòþmÿèþèþèþèþèþèþèþèþèþèþÁÿ3ÿßÿøÿóÿÿ:ÿíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþÿ!ÿËÿíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþíþ ÿÆÿ-ÿÿî c l  Þü˜ãÐ7 û ô ë Ý 6 Ð¥6¼K¶`FÀ²W*à EXTRAIO STRINGOP FILEOPS HEAPOPS PASCALIOMSGOPS SCREENOPCOMMANDI ‚ÿ%+¹?†A6D“HI.JzPDTdCODEGEN GENPROC DUMPPROCINITCG STARTSEGFINISHSEIVMGBLS IVMPVTS IVMDCD1 IVMDCD2 IVMDCD3 €€ € €€€€€€€€ 2CODEGEN CODEGEN CODEGEN CODEGEN CODEGEN (,( ixFCopr. 1979 Regents,UC; 1982 Software Const.; 1984 SofTech MicrosystemstemsCODEGEN åix*a„+¬P……å¡Ô†ˆÞwp†ˆÞa˜w p†ˆÞwpšwpš” pša˜w pšwpš‚€w pšwpš`w p € ° ° Ôî Òp–,Ç)`„*¬Pšwpš‚€w pšwpš`˜w pšwp–+S†ˆ¶†14” p±h4í¥¥4…ÒT†‚19Ë×y íi?î…kj"#³Ô.†ˆ¶†1"” p±  h†ˆ¶†1"!¢” p±  h"îŠÌ?!¢¥…!¢¥†1p Ô‚€ ‘–u†10ÿË €ÿËÈ0í¥0ÿ²ñ‘–’!h`É€ÿË‘`É€ÿË‘–Ð!h…Ô`˧€ÿË‘`˧€ÿË‘Š`˧€ÿË‘`˧€ÿË‘–f'2¢j'â½Ëik"4°Õ¾''¢ÿ¡i%ÔY…Ô)d ˆ1!ÿ˧€ÿËÈdˆ1!íÿ˧€ÿËÈŠ'dˆ1!ÿ˧€ÿËÈdˆ1!íÿ˧€ÿËÈ&$ÄŠW&xl…Ô)†1!ÿËd˧€ÿËȆ1!íÿËd˧€ÿËÈŠ'†1!ÿËd˧€ÿËȆ1!íÿËd˧€ÿËÈ‹¸"3±…å ÔM…Ô†ˆ¶†13” p±k¥34²ñ ‚€.‘Іˆ¶†1"” p±k#Ô ‚€:‘Š"¥¥%Ô/†1!€ÿË×xl…ñdÉhddÉ€ÿËÊd €ÿËÊ&$ÄŠ0&xl…ñdÉhddÉ€ÿËÊd €ÿËʆ1!€ÿË×$Ä¥–š‚€Jw p42£Œ0¢ík7†„1€ÿ˧³Ô;îiІƒ1†„17í€ÿ˧€ÿË×x£i†ƒ16€ÿË×xj<"²Ÿ to continue, to exit...>>>>WARNING<<<<error writing code file....reading past valid codeerror reading/writing code file copying...3segment contains machine code <> target native codetrouble getting procc"trouble writing segment dictionaryytrouble closing file...µê˽¬f J FILEOPS STRINGOP HEAPOPS EXTRAIO PASCALIOIVMDCD3 IVMDCD2 IVMDCD1 IVMGBLS  þ%GENPROC ÐixH=€2³Ôšwpš‚€w p¥Šš€.” p=í¥–à"ŠY†ÉŠ`” Š`” Š`” Š `” ŠÖ€Š4`” Š-`” Š&`” Š`” Š`” Š`” Š `” ŠÖ€ i!…xÄ… Ä!ç ËÊ!ç"Ê…¦ ¥ k!çÉÒ¦– ïh i!çËÊ!ç"€hËÊ!ç ËÊ–Iïh i!çËÊ!ç€:€hËÊ!ç #åÊ!ç ËÊ"ïÔ–|ïh i!çËÊ!ç€e€hËÊ!ç"Ä!ç ËÊ–Óïh i!çËÊ!ç#€hËÊ!ç"Ä!ç ËÊ#ƒ€Ú"³Ÿ"€ÿ²Ÿ ¡Ô!ç ËÊ‚€q– ïh i!çËÊ!ç#€hËÊ!ç ËÊ"#€h°ïÔ–ƒïh'ƒ€%ÚÔ üÇiŠ-'ƒ€+ÚÔ äÇiŠ'ƒ€0ÚÔ ýÇiŠýÇi j"çËÊ"ç'€hËÊ"ç ËÊ&%#$!ïÔ–Ëïh i!çËÊ!ç€A€hËÊ!ç"Ä!ç ËÊ#ï"€€á³Ÿ "€²Ÿ Ô–"'°&°¡%°¡Ô$ï Š=ïh i!çËÊ!ç'€hËÊ!ç ËÊ!ç&Ê%$"#ýÇïÔ–Zïh i!çËÊ!ç$€hËÊ!ç ËÊ!ç"Ä!ç#Ê–žïh i!çËÊ!ç€[€hËÊ!ç ËÊ!ç&Ê%$"#ýÇïÔ–ßïh i!çËÊ!ç€!€hËÊ!ç$Ê!ç"Ä!ç ËÊ#ïÔ–ïh i!ç ËÊ!ç€1€hËÊ!ç"Ä!ç ËÊ#ïÔ–aïh i!ç ËÊ!ç&€hËÊ!ç $Ê!ç"Ä!ç ËÊ%ï#ï Ô–¥ïh i!ç ËÊ!ç€ €hËÊ!ç$Ê!ç ËÊ#ï"ï Ô–'ïh j"ç€(€hËÊ$³Ô"ç"çÉí€hËÊ#³Ô"ç"çÉí€hËÊ$³#³Ÿ¡Ô$i#l!k"ç ËÊ"ç ËÊ"ç $¡ËÊ"ç #¡ËÊ–{ïh i!ç ËÊ!ç&€hËÊ!ç%Ê!ç "Ê!ç ËÊ$!ç Éï#!ç Éï Ô–Óïh j(Ô ôÇiŠìÇi"çËÊ"ç)€hËÊ"ç ËÊ"ç (åÊ"ç#Ä'&$%!ïÔ– Hïh i!çËÊ!ç'€hËÊ!ç ËÊ!ç %Ê!ç&Ê"ïÔ!ç ÉÔ #ïÔŠ !ç$Ä$²Ÿ$² Ô‚€4q!ç ËÊ–¹ïh j(Ò ýÇiŠýÇi"çËÊ"ç(€hËÊ"ç ËÊ"ç#Ä'&$%!ïÔ(°#³Ÿ¡#€ÿ²Ÿ Ô"ç ËÊ‚€>q– 9ïh i!çËÊ!ç(€hËÊ!ç ËÊ!ç&Ä!ç'Ê%$"#ÿÇïÔ&²&²Ÿ Ô!ç ËÊ‚€HqŠ'°%°¡Ô!ç ËÊ‚€Tq– Ð(°(€`° "᳡"²¡Ô&"³ñ"áj(Ò€`¤ Ф "²ñ (í'"&%$#ïŠWïh i!çËÊ!ç(€hËÊ!ç ËÊ!ç'Ê!ç"Ä&%#$ýÇïÔ'Ò!ç ËÊ‚€_q– )ƒ€hÚ' °¡%᳡%²¡ÔD%³ñ%ám)²Ô)€\¢¤ Š)€\£¤ %²ñ!)ÔiŠi)€^³Ô€a¤ Ф )!%( ï‹Ø)€B°)€C° ' °¡%°¡Ô ( ï ‹ºïh k)€0Ò%'°%°¡(&°($° ¡Ô¤ (&Ò$n&³ÔoŠo)€0Ò äÇjŠ)ƒ€nÚÔ ýÇjŠÿÇj#çËÊ#ç)€hËÊ#ç ËÊ()ƒ€sÚï'&$%"ï Ô #ç ËÊ' °)ƒ€yÚ¡Ô#ç ËÊ‚€q– f ïh j(Ò ýÇiŠýÇi"çËÊ"ç(€hËÊ"ç ËÊ'ï&%#$!ï Ô "ç ËÊ– M *°*€]° 'å¡& °¡Ô*¢)( $ï‹Âïh j*Òo*€$Ò oýÇiŠ&*°*€I° Ô ýÇiŠ'Ô üÇiŠÿÇi"çËÊ"ç*€hËÊ"ç ËÊ"ç 'Ê"ç)Ê(ï &%#$!ï Ô "ç ËÊ)°& °¡Ô"ç ËÊ‚€ˆqŠ)°&°¡Ô"ç ËÊ‚€‘q–  +±& °¡Ô4$³$€€á³ˆ )ËØÉ¡ $€²¡*°¡ˆ)Ë×x±¡Ô)$ï ‹î& °$°¡Ô +*)('ï ‹Úïh j"çËÊ"ç€6€hËÊ"ç ËÊ"ç+Ê*)'(ýÇïi"ç"çÉËÊ"ç "ç ÉËÊ"ç"|Ä"ç "ç ÉËÊ"ç"çÉÊ"ç"çÉÊ!&%#$ÿÇï Ô "ç ËÊ+°& °¡Ô"ç ËÊ‚€žqŠ+°&°¡Ô"ç ËÊ‚€¦q– ­ ïh i!ç&ËÊ!ç%Ä!ç$Ä!ç#Ä!ç"Ê–ñ !Ô…ç #¡ËÊŠ …ç #¡ËÊ#³"°h ñ‚€³q…ç ËÊ ål– …lj)‹(²i‹(³i‹ (³i&Ò¤ Š9&³ñ4…k­ ¥* & ï*o¤ n$ç *ËÊ$çÊ$çÊ#¥‹Ã'³Ôi‹&€²Ÿ&³Ÿ h…k­ ¥ˆ 'ËØÉÔ( Ô* & ï'* ïnˆ 'ËØÊŠ> ˆ'Ë×x°¡ˆ 'ËØÉ '€ÀÚå¡Ô * ' ï*o Ô ' &ïn#¥(³) ° i$ç '¡ËÊ$ç'³Ê$çÊŠ iŠiŠÖ€Å$ç&Ä)²Ô!)€`ÚÔj$ç (¡ËÊ$ç)ËÊŠ$ç )£ËÊ$çËÊj!)%Ú¡Ô$ç$çÉ"¢ Ëʤ Š$ç ËÊ‚€Óq¤ – ú ˆ Ë×xÓˆ Ë×Ĉ Ë×€dËĈ ËØÉÔ0†ˆÞwp†ˆÞ‚€áw p†ˆÞ wp‚€åqˆ ËØÊ–!!h çÉŠ çÉï Š çÉï ŠÖ€ô–‡€díklihˆ!Ë×xjˆ!Ë×xŠ!hlŠ"#³ñ!h"kŠÖ€ü!ÒlŠ!íËi$ÔÄ nˆ Ë×x³%¡Ô‚q–¯ˆ)Ë×x‹òˆ)Ë×Ä‹ç‚q‹Ý‚q‹Óˆ)Ë×x­²Õ·ˆ)Ë×xhˆ. €dË×nï"mj ­oi!'²Ô"ˆ.!€dË×çɰ j!íŠâ"åˆ%Ë×x°¡Õ›% ) ïˆ %ËØˆ )ËØÉʈ )ËØÉÔˆ %ËØʈ )ËØÊ&çÉŠ&ç%ÊŠ &ç%ÊŠÖ,ˆ%Ë×Ĉ%Ë× €dËÄ ­oi!'²Ôˆ.!€dË×…Ä!íŠé‹®…l&x¥­î¦&çÉŠO) &zï ) ïŠ;€0 &çÉ&z)ï€_  ï  ïŠ &çÉ&z)ïŠÖ4&çÊ&çÄ&çÊ&ç˜Ä&xkˆ. €dË×…Ä íh ­²Ÿˆ. €dË×x#± ÔÛ$#Ó$¥ˆ)Ë×Ĉ)Ë×€d€dËÄŠ‚<qŠÖM(ˆ )ËØÉ¡Ô)ï ˆ )ËØÊ– ø#i!çÉ€”ÚÕ¤!çÉŠ!çÉhŠ !çÉhŠÖSˆ Ë×xÒ ï"h "ï#Šm"ˆ ËØÉ¡ˆ ËØÉå¡ÔQ!çÉÒ& !çÉ!z ï!ç Ê!çÊ!çÄŠ  ï  ïˆ ËØÊŠ!çÉ€HÚÔjï"h "ï#!çÉ‹Y  ï‹N!z±"å Ô  !z ï‹6!çɳÔ%€0 !çÉ!z ï€_  ï  ïŠ#!çÉ Ó !çÉ ï !zï‹á!{ ï !zï‹Ì€0 !çÉ!z!çÉï€_  ï"ˆ ËØÉ¡Ô ï ˆ ËØÊ  ï‹‚ !çÉ!z ïŠo!{ ï !z ïŠYˆ ËØÉ"¡Ô/ !çÉ!z!çÉï  ïˆ ËØÊŠ !çÉ!z!çÉïŠÖ[!çÊ!ç Ê!çÄ–àˆ.$€dË×k…j#x¥#çÉ‹Y#çɰ#çÉå¡Ô­î¦#çÊ #z ï‹. #z ï‹#çɳÔ%€0 #çÉ#z ï€_  ï  ïŠPˆ#çÉË×xÒ #çÉ ï#çÊ#çÉ #zï #çÉ ï#çÉï ‹#{ï #zï  ïŠ~€0 #çÉ#z#çÉï€_  ï  ï#çÉï ŠL #çÉ#z ïŠ9#{ï #zïŠ# #çÉ#z#çÉï#çÉï ŠÖe…#xÓb$€dËh#xiˆ. €dË×…Ä í€dËhˆ. €dË×x!± ­²Ÿ Ô×"!Ó"¥#çÉÓ#çÊ#çÄ#çÊ#ç˜Ä­î¦Š"¥–[­h ³Ômˆ. €dË×i!çÉŠP"²ñ €dËï%ŠE"²Ÿˆ!çÉË×x± Ô €dËï%Š$"²Ÿˆ!çÉË×x± Ô €dËï%ŠÖo"îj V­ih!²Ÿˆ.!€dË×çɱ¡Ô!îiŠã!í­lj"$²Ô6ˆ."€dË×m%çÉŠ íhŠˆ%çÉË×xÒ íhŠÖy"íŠÄk#²Ôˆ#Ë×xÒ îh#íŠæ­lj"$²Ôlˆ."€dË×m%çÉŠR"!²Ÿ ²¡Ô7ˆ."€dË×ï$%…Ĉ%çÉË×Ĉ%çÉË×"€dËÄŠ"!²ñ îh"€dËï%ŠÖ~"튎–~†É€Šâ¼€‹â¼Û€Ò€Õ¼Û€ñâ¼ÛÚÔ†Êïh i!ç†É€ÿËÊ!çËÊ!ç ËʆÉ€ªâ¼€¯â¼Û€÷€ÿ¼ÛƒƒÛÚÔ ‚‰q‹®†É€€³ñ8†É€o²†É€x³ Ô!ç…%ÄŠ!çËÊ!ç ËÊ!ç…$Ä‹l†É‹a!ç ËÊ!çËÊ!ç…%Ä‹G…%€²ñ !ç ËÊŠ !ç ËÊ!çËÊ!ç…%Ä‹!ç ËÊ!çËÊ!ç…%Ä!ç…$Ä‹ô…$€²ñ !ç ËÊŠ !ç ËÊ!çËÊ!ç…%Ä!ç…$Ä‹¾…#€²ñ !ç ËÊŠ !ç ËÊ!çËÊ!ç…%Ä!ç…$Ä!ç…#Ä‹‚…$€²ñ !ç ËÊŠ !ç ËÊ!çËÊ!ç…%Ä!ç…$Ä!ç…#ÄŠG!ç ËÊ!çËÊ!ç…%ÄŠ+!ç ËÊ!çËÊ!ç…%Ä!ç…$Ä!ç…#ÄŠÖš–”ïh ç!Ä çáÄ–©ïh ç"Ä ç!Ä–¶5h5í¥–h%­z³Ô­iŠ­ ij!x˜Ó*%!xz²ñ!xiŠ%!xz°%!z±$!çɱ ¡Ô!xiŠjŠj"ÔÌ%!z±$!çɱ ÔQ`”  k#!xÄ! Ä i#ç$Ê#çÊ#çï+ÿ?ËÊ#ç%Ä­k%…'²Ÿ%#z³Ÿ¡%#z²Ÿ#z…'²¡ Ô!¦!çÉn–½ï­Ò>k#²Ô7ˆ#Ë×xÚÔ$†ˆÞwp†ˆÞ‚‚w p†ˆÞ#wp‚‚q#íŠÃ…'­z°l…„±…„³£…„³£…'°n$& Ô­ï&¦ïiˆ ˆ xÄm­oj"'²Ô%ˆ."€dË×çÉ °¡m"íŠâ!o'ç…'Ä'çÄ'ç%ʦ$Õ&Ô ïh ç…'Ä'ç­çÉÄ­çÉÔ 'çÊŠ'çÊ­çÊ­x˜ÓN­x¦…'­zÒAïh ç…'Ä­çÊ ç%Ê ç­çÉÄ­çÉÔ çÊ­x˜Ó­x¦Š &Ô'çÊ–É)`„*¬P–+Ж݄ ‡Å–ä–ˆ Ë×xÓˆ Ë×Ĉ Ë×®€dËÄ–c­€dî³Ô ‚‚qŠ:!h­í¦ …Ĉ.­€dË×!Å çÉŠ çÉ3Š çÉ3ŠÖ‚*–Ù­²Ô!h çÊ çÊ çÄ …ÄŠN!ˆ.­€dË×Å­î¦!çÉŠ.ˆ!çÉË×€d€dËÄŠˆ!çÉË×€d€dËÄŠÖ‚2–ïaÊaÊ$j`ï2–x' ²ñ7%Ô †€ˆ€ÿËÊŠ †€‰€ÿËÊ'¥%&¥$†Êï(aÊaÊjŠCaÊ&&¢¢j$Ô oa ÊŠaÊ'²ñ'k%ÔaÊŠaÊŠ%ÔaÊŠaÊ`ï2–«!ï4!h çÉÓ çɰ z°¡Ô çÊŠ‚‚:q–½/Ô „ ï7fï7Šfï7„ ï7h igÉŠU„ ÉÒhŠljm i­î¦Š< l j(mŠ4hŠ0lgÉj(mŠ%)ïlj(miŠlgÉj(m„ ÉiŠÖ‚F Ô fï$lgÉjm.ÔkŠkï'„ ÉŠj„ ï$#„ É$"%!ïŠW„ ɳÔ#„ É, $"%!ïŠ#,„ É$"%!ïŠ,-ï#,$"%!ïŠ#„ É,„É$"%!ïŠÖ‚Pfï!„ ï!–`ï7aÉ€ãÚÔ`ï$aÉŠ1aɳÔaÊŠcaÉÊaÊaÊŠaÊŠ aÊŠÖ‚Z`ï2–¸ih(n&çÉŠ/ˆ&çÉË×x±h &z°¡iŠˆ&çÉË×x±hŠÖ‚_!ñA'n&çÉŠ4 iŠ3iŠ/ˆ&çÉË×xÒ iŠˆ&çÉË×xÒ iŠÖ‚g!Ô(ï$Š'ï$b(Å('Å'bÅ– *!gï7„ ï7„ ÉÒc„ Å„ gÅgcÅ„ ɰ„ ÉÚ¡Ô„ ÉÒ)-¢¤ Š)-¢¤ ‹ „ ɰ„ ɰ¡„ ɳ„ ɳ±¡Ô7„ É³Ô „ „ ÉÊŠ„ „ ÉÊ„ „ ÉÊ)-¢¤ „ ʋȄ gï:„ Éhj„ É‹§  ïˆ ËØÊ‹‘)¤‹‹„ ɳԄ Ê„  ÊŠ7 „ É ïˆ ËØʈ „ ÉËØÊ„ Éï „  Êj‹8*²ñ*îï ïŠ   ïˆ ËØÊ)¤‹ˆ ËØɈ „ ÉËØÉ Ôfˆ ËØÉÔ i„ Éh„ !ʈ ËØÉåˆ ËØÉ¡Ô ï ï h„ É ïˆ ËØÊ ï jŠ „ É ï„ Éï „  ÊjŠa „ É) ïˆ ËØÊŠE*ï )ïˆ ËØÊŠ& „ É)„ Éïˆ ËØÊgï!ŠÖ‚q"Ôg„ Ågï2–R!"ath €²ñ €€£Œ"íat¢h ¢¢k–§!k"h çÉŠ@ çÉ!çɰ z!z°¡ çÉ!çɰ¡kŠ çÉ!çɰ z!z°¡ {!{°¡kŠÖ‚{–ê"h…&…(¢l$btk#€¤â¼€¥â¼Û€¦â¼Ûƒ‚ÛÚ"¡…'…(¢­z±¡Õ#ŠX„Ê„Ê#¢#¢€Î£¤ŠC#€¤Ò„ÊŠ„ Ê„Ê$í=¤Š!„Ê„Ê$íbt¤$¢=¤ŠÖ‚†eï7„ ï7„e>Ô„eÅe„ Å„ „Å„„ >Ôsï'fɰi!ñeï$„ÉŠJ!Ô„É/ 'ïŠfÉ„É/ ïŠ(‡ï!Ô /'ïŠ fÉ/ïŠÖ‚Ç„ ï!eï!†thŠ„ ï2eï2 ñï;–¥# aï7bÉÒ #ákaï2ï<‹ eï7fɰbɰ¡Ô  ï€] ïŠseï$fÉhbÉŠa€]  ïŠWaï$€] bÉ ïbÉï Š=€] bÉ# ïŠ-$ï€] #] bÉ#dÉïaï!ŠÖ‚Ëeï2– ß#$hji#Ä`"ËØÉÔ#"Ä!íi"íj!²Ÿ"²Ÿ Ôá!³Ÿ#x³Ÿ¡m–ü$ dï7„ ï7i„ ɰeɰ¡Ô*&Œ¤ ‹ñ„ dï:„ Éjeɋ̀B" ï‹Ä&`AÔc Ò&Òˆ "ËØÊ„ ï!„ dÅŠ?ˆ "ËØÉÔ€,"ï kˆ "ËØÊŠk ²Ô # "ïŠ  ï #"ïiŠ €B" & ïŠOdï$€B"eÉ ïeÉï Š7€B"eÉ& ïŠ)'ï€B"&B"eÉ&gÉïdï!ŠÖ‚Õ!Ô ˆ "ËØÊ„ ï2– &aï7eï7fɰbɰ¡#±¡Ô†É€Ò'#oŠ'#â½Ëo‹Øbɱ#° Ôy„ aÅaï$„ a¹Ô €gbÉ ï ï+h ï€> áІʆ€ÿËÊ¥%ï(ï(†„Å ï(€g ï €> ïbÉï ï)eï$€,fÉï ˆ fÉËØÊbÉÒ€"fÉ # "fÉbÉ ï†É€Ó€cfÉï aï!eï2–G&`ï7aÉŠ""åjŠ €H ï Š`ï$€HaÉ ï ŠÖ‚ß`ï2–~&`ï7aÉÒ"å¡jŠ`ï$€HaÉ ï aÉ ï`ï2–µ&`ï7aÉŠ""ájŠ €E ï Š`ï$€EaÉ ï ŠÖ‚é`ï2–' aï7bÉÒ#àkŠ5eaÅaï$ea¹Ô €gbÉ ï ï+h ï€EbÉ ï ï)aï2– Ä' bï7fï7gɰcɰ¡Ô†É€ Ò($ ¤ Š($¡¤ ‹Š†É€ Ò€IiŠifbï:gÉhcÉŠh!  ïŠ_! $ ïŠSbï$! cÉ ïcÉï Š:! cÉ$ ïŠ+%ï! $ïŠ! cÉ$eÉïbï!ŠÖ‚ófï2– F("h çÉŠl! ïŠc! z ïŠV"ï$! çÉ ïŠA! çÉ z ïŠ/ {ï! zïŠ! çÉ z çÉïŠÖ‚ý"ï!–µ("çɰ!çɰ¡ÔF  ï ï xŠ( ÄŠ& ÄŠ! ÄŠ ÄŠ ÄŠ ÄŠ ÄŠ ÄŠÖƒŠ"ï$!"çÉïH"ï!–'*„ ï7„ï7„ɰ„ ɰ¡ÔA†ÉŠ0‡,°¤Š+‡,±¤Š#‡,²¤Š‡,³¤Š‡,´¤Š ‡,µ¤ŠÖƒ„ï2‹†ÉŠiŠ iŠiŠiŠ iŠiŠÖƒ„ÉÒ)!Š iŠiŠ iŠiŠÖƒ'f„Å„„ Å„ fÅ…&…(¢dtk#€Ÿâ¼€Ôâ¼Û€Õâ¼Û€ñâ¼ÛÚ$¡…'…(¢­z±¡Ô †t#€Ÿ±mŠkm#€ñ°#€Ÿ° Ô!ŠiŠ iŠiŠiŠ iŠiŠÖƒ6%Ô­ï&¦…$ï,j„„ aïI!"ïŠ9ï"h ï# ï „„ aïIï+jgÊgÊg ʤ !"ï ï "ï)fï2–±*`ï7­ï&¦…$ï,l…$…'…(¢ÒaÉÒ   ï`ï!ŠQaÉÒ"†Ém%€Ô°%€Õ° "å¡%€ñ°"¡ Ô$ïŠ(`ï$€Q aÉï†É€ñÒ$ïŠ$ï`ï!–6+fï7„ ï7­ï&¦…$ï,h„ ɰgɰ¡Ô"†ÉŠ,(Ó ïŠ,(Ò ïŠÖƒEŠ6„ ÉÒb„ Å„ fÅfbņɊiŠiŠÖƒI„ faïI! ï–, eï7­ï&¦ …%¢l$cq$íbq$¢lfÉÒ&#'²'"²¡Ô$'¢#£aq…'…(¢!¢ï,i!ï‹”eï$"#³ñ fÉï ‹‚…'…(¢ï,ifÉ #áïfÉ "#£ ï!ï€2 fÉï  $$¢fÉï€. ï eï!$$"¢#£¤ h )²Ô aq…'…(¢!¢ï,i aq íŠà$$"¢#£ï*– ,`ï7aÉŠ `ï$Š"íjŠÖƒMdï7eɱ&³Ÿ Ô*dï$€,eÉï ˆ eÉËØʈ eÉËØÊdï2ï;`ï2ï8–_-aï7bɱ#³Ÿ Ô*aï$€,bÉï ˆ bÉËØʈ bÉËØÊaï2ï;aï7ï"h ï# ï ˆ ËØÊbÉŠcaï$ bÉïŠRbÉ³Ô bÉ# ïŠ #bÉïŠ*$ï #ïŠ bÉ#dÉïŠÖƒWaï!bÊb Êkaï2–—-`ï7aɱ"³Ÿ Ô`ï$ˆ aÉËØÊ`ï2…%…%¢ï5ï@ï;–Â-aÊaÊj…%²ñ aÊ…%kŠaÊ`ï2–q. dï7heÉŠ,dï$hŠ'ˆeÉË×x±hŠˆgÉË×x±hŠÖƒa„ dÅ Ô_ï"k#ï#eÉÒ eÉj„ #ÊŠ gÉj„ #ʈ #ËØɈ "ËØÉå¡Ôiˆ #ËØÊŠi!# " ïdï2„ ï2– š.`ï7dï7aÉÒ`ï$eÉÒdï$`ï2dï2–û.`ï4aÉÓ‚ƒkqaÉÒ"lŠ?aÉÒ1`ï4aÉÓ‚ƒxqaÉÒlŠaÉÒ"ílŠ‚ƒ…qŠ‚ƒq–l$²ñ(`ï4aÉÓ‚ƒ›q$"£laÉ€*Úñ‚ƒ¨qŠÓ$Ó‚ƒ´q–œ/>ï&ïU>³Ô<­>£¦€0 >>¢ ï>mh %²Ô  ï íŠë>Ô   ïŠï(bÊ>kbÊaï2aï2–ø/`ï4aɱmaÉÓ;aɱl`ï4%aɱ m$aɱ l`ï4%aɱ m$aɱ l$Ô‚ƒÂq%Ô‚ƒÐq–0ï&ï(aÊaÊj`ï2– 0ï&`ï7ï(–1„ ï7fï7bï7cÉÒ„ ɰgɰ¡$(³¡$,²¡Ôbï2‹«„ ÉÚÔ„ ï$gÉÒfï$bï$ï+iï+h„ cÉïH ïgÉÚÔfï$fcÉïH !ï ï)€> áІʆ€ÿËÊ¥%ï(ï(†€ÿËÊ¥%ï(†„Å ï(€g ï €> ï!ï)bï2–1ï&ïWï(aÊaÊj`ï2–<1ï&`ï7`ï7ï(aÊaÊj`ï2–L1ï&`ï7ïWï(–s1†É€Ò ï&`ï7ï(`ï2Š ï&`ï7`ï7ï(–‚1ï&`ï7ï(–ß1­ï&†ÉŠ2`ï7aÊŠ+ïUaÊŠ"ïUaÊŠïUïUaÊŠïUïUaÊŠÖƒÝï(aÊaÉÒ>jŠj`ï2–‘2­ï&†É€ÇÒïTlaÊaÊ…%jaʘkï(`ï2Š†ÉŠk`ï7`ï7€(jaÊaÊŠYïTl`ï7jaÊŠIïTlïTmaÊ$%²ñ$jŠ%jaÊŠ*ïTlïTmaÊ%jaÊŠïTlïTmaÊjŠÖ„ï(aÊ`ï2–×4h¦¦†„¶"€ÿË×x˜±Õ†„¶"€ÿË×x|‹ h‹ !Òh¦‹ü!ƒ„0ÚÔVh!ŠN¦ŠK¦ŠE¦Š?¦Š9¦¦Š/Š-¦Š'¦¦Š>¦¦Š¦Š ¦¦ŠÖ„3‹™!€|ÚÔ$h!ЦЦЦР¦¦ŠÖ„M‹k!€üÚÔ h!ЦЦЦР¦ŠÖ„T‹A!ÚÔh!Š ¦Š ¦ŠÖ„\‹$!€üÚÔh!ЦЦ¦Š ¦ŠÖ„a‹ü!ÚÔkh!ŠcŠd¦†t†É€Šâ¼€‹â¼ÛÚñ‚„iq…'¢ð,¥%…$ð,¥%†€‹€ÿËʆÊð(…(³ñ†t†É€œÓ‚„|qŠÖ„Ž‹ˆ!øÚÔ*h!Š"¦Š¦¦Š¦Š¦Š ¦ŠÖ„“ŠT! ÚÔh!Ц¦Š ¦ŠÖ„¡Š4!üÚÔ!h!Š>¦>¦Š>í¦Š >¢¦ŠÖ„¥Š !°hŠÖ„° ñᦖ 5®³ñ¦Š2®®¢h ²ñˆð4ˆÉÓ‚„¾q ­£hŠß Ó‚„Ìq¦–Â5­ï&†‚±9Ë×Ém†ÉŠF†É€w²Ô…%m…$¥%ï(…%lŠ1ï(…$l†É€’Ó…%mŠï(…%m…#lŠ`ï7`ï7`ï7mlï(ŠÖ„Ù­ñ%$c¦d­°¦­²ñ aÊ­j­ÒaÊŠaÊ`ï2¦–Ó5ï&`ï7`ï7ï(–Ê6­ï&†É‹áaÊaÊ…#jï(`ï2‹Ï`ï7aÊaÊ…%jï(`ï2‹·…%l$²ñ`ï4$"£laÉÓ‚…\qŠä$Ó‚…jq`ï7ï(‹…aÊaÊ>jï(`ï2Šr`ï7aÊaÊ>jï(`ï2Š\ïU`ï7ï(ŠS`ï7`ï7ï(ŠI`ï7`ï7ï(Š?`ï7`ï7aÊaÊjï(`ï2Š&`ï7`ï7aÊaÊjï(`ï2Š `ï7`ï7ï(ŠÖ…x–ù6…i!çɰ!çɃ…ìÚ¡h ñ€/  ð ¦–@7¥…i!çɰ!çÉ€Šâ¼€‹â¼Û€–â¼ÛÚ¡h Ô­Ôð(Š­ñð(ð(¦¦–D9†€¨€ÿËÊj†Ê…¥­ x¦o…x˜±­˜± ÕÍái­˜±!³Ÿ¡Ô%­¤ ,çÉñ,zi,çÉh,çɤ ,x¦ŠÐ¤ n…x˜±&å¡Õx…x¤ ",çÉ¢j,çÉ‹V'ñh‹Q!³Ôn,{!°¤ ,{!³n(Ô`,çÉñ‚…ïq)Ô'ÔiŠ'ñh,çÉÒ…x¤ Šï¤ +ç!Ä+ç,çÉÊ+¤-ç Ä)Ô -çÊŠ-çÊ,çÉŠ'ñhŠ 'ÔiŠÖ†‹Â,çɃ† ÚÔ?m,x˜±%¡Ô5,xçÉÚÔ,,xxÄŠ ,xçɰ,x{!³Ÿ!³Ÿ ¡Ô,,xxÄŠmŠÃ,çɃ† Ú,x˜±¡Ô,xçɰ,|,xz°¡Ô…,xÄ'ÔiŠB,|l,çɤ …,xÄ'Ôi*  ï$¤k#-²Ô* *ï#íŠë­ ¥ŠÖ†…x¥‹}þ(å!³¡Ô‚†q‹&þ…x¥–:š‚†&w p¦¦¦¥¦¦¦¥ˆ.(pˆ€ ph ²Ôˆ Ë×Ä íŠëh ²Ôˆ Ë×Ä íŠëh ²Ôˆ ËØʈ ËØÊ íŠÞˆ ËØʈ ËØʈ ˆ xĆ” …˜Ä…¥ˆ ” ­ ˜Ä­ çáÄ­ ¦–=Áj†t&…'…„±° …''z° Ô-†ÉÒ ‚†)q‹Ö$†É€Šâ¼€‹â¼Û€©â¼Û€Ò€Ö¼Û€ñâ¼Û€â¼Û€‘â¼Û€ïâ¼Û€ðâ¼Û€’€•¼Û€—â¼ÛÚ Õ‘†É€€³ŸÕ †É€ ³ñ †É5‹‰†É€/²Ô†É£6Šq†É€?²Ô†É€/£6ŠX†É€g²Ô†É€_£6Š?†É€o²Ô†É€g£68Š"†É€w²ÔbІɆÉ¢€ð£5;9‹ã†É‹Ø5‹Õ…%5‹Î…%¢…%¢5‹Â…%6‹¸…%6‹®…%68‹ …%6‹–…%6‹Œ…%68‹~†É€¬£…%6‹m…%…$6‹b…%…$6‹W…%…$68‹HX‹CY‹>…%…%¢5;9‹08‹)f‹$f‹e‹O‹N‹[‹ ]‹f‹…%…%¢5<‹õP‹ð\‹ëG‹æC‹áD‹ÜJ‹×F‹ÒE‹Í5<‹Åá5<‹¼<‹·?‹²@‹­B‹¨Z‹£J‹ž`‹™a‹”f‹ &h…$,Š~KŠzLŠvMŠrbŠn &(ŠgQŠc&( °nŠX_ŠTfŠP&(ŠI^ŠERŠAVŠ= °nŠ7SŠ3‚†0qŠ*…%Š$Ôm…$k…#jŠlŠ &hkjlŠÖ†AŠÖ†FŠ(†É€Šâ¼€‹â¼Û€Žâ¼Û€–â¼Û€¤€¦¼Û€©â¼Û€«â¼Û€¬â¼Û€Äâ¼Û€Åâ¼Û€Èâ¼Û€Êâ¼Û€Ñ€Ö¼Û€Ùâ¼Û€Þâ¼Û€ßâ¼Û€ëâ¼Û€ñâ¼Û€ôâ¼Ûƒ†½ÛÚÔn† ÉÕ‰üg–Á ..áÿáÿèÿïÿöÿ¤ÿöÿïÿÌÿÓÿáÿÚÿèÿ@illegal byte dataP(UÀ €illegal shift countillegal bit numberrillegal quick immediatebyte address registerlong immediate... À `À@€long immediate...long immediate...byte address register....long immediateebyte address register....#illegal register for instruction... æþíþíþíþíþôþ=ÿõÿùÿõÿ=ÿõÿillegal ea for instructionnReg D:: register left sign extendeddéÿóÿóÿìÿòÿall regs already allocated...register already allocateddcannot free reserved registerëÿôÿôÿ®ÿÅÿêÿ attempt to free reg not on stackk þ-þþ#þëÿôÿôÿ¤þ²þÊþÿ4ÿ~ÿ‘ÿ§ÿ¤þÒþáþcÿ‚ÿ´ÿÇÿÝÿ­ÿ­ÿ»ÿ­ÿÜÿ­ÿ­ÿÜÿáÿáÿæÿ«ÿ«ÿ«ÿÿÿÿÿ!attempt to generate invalid pcode€òœþ¹ÿ¹þ~ÿ¹þ¹þ¹þ¹þ ÿ ÿœþ¹ÿœþœþœþéþéþéþÕÿ¹þœþ ÿ ÿ¹þ¹þ ÿ¹þœþ¹þ¹þBÿBÿBÿ ÿœþœþœþœþœþ¹þ¹þéþ ÿ¹þ¹þéþéþéþéþœþœþœþ¹þREG: DD reg left un-freeddemulation stack overflowwéÿóÿóÿÏÿæÿæÿword expected on stackk¨ÿÄÿÌÿÌÿÌÿÐÿÛÿìÿ“ÿ“ÿ©ÿÔÿèÿ“ÿ“ÿ“ÿÌÿïÿöÿÎÿéÿéÿÉÿÍÿÑÿÉÿçÿÉÿÉÿçÿVþoþuþÈþýþŸÿ»ÿÚÿ½ÿáÿÿh¦¥ÿ¥ÿ¥ÿ¥ÿ¥ÿ¥ÿ¥ÿ¥ÿ½ÿ½ÿßÿ³ÿØÿœÿ©ÿ©ÿ©ÿÃÿÓÿçÿ0ÿ<ÿ±ÿ±ÿ±ÿÉÿ×ÿéÿàÿÛÿëÿëÿëÿëÿëÿëÿàÿÛÿëÿëÿëÿëÿëÿëÿ•ÿ¡ÿ­ÿ­ÿ­ÿÆÿÕÿèÿ‘ÿÿªÿªÿªÿ¿ÿÑÿæÿßÿóÿøÿäÿÚÿéÿÕÿîÿ°µÍÿÕÿÝÿåÿíÿõÿ°µåÿíÿõÿéÿñÿùÿñÿùÿõÿíÿñÿùÿåÿíÿéÿõÿÒÓçÿòÿÒÓõÿùÿòÿòÿòÿòÿøÿøÿøÿšÿšÿ®ÿÖÿêÿšÿšÿšÿÑÿÙÿëÿëÿoperand must be on stackkoperand must be on stackkexpected body of settexpected set on stackoperand must be on stackkreal expected on stackkbad real popped from stackkillegal pkd pointer poppeddoperand must be on stackk¾äÕÿÕÿçÿçÿçÿçÿËÿòÿòÿòÿÞÿÞÿ¶Ýìÿìÿìÿ’ÿ§ÿ·ÿÖÿÖÿ€ÿà&¯ÿ¯ÿµÿ¯ÿ¯ÿ»ÿÁÿÇÿÑÿ»ÿÓÿÙÿãÿíÿíÿÑÿµÿ»ÿóÿçÿáÿáÿíÿóÿåÿëÿñÿëÿ÷ÿ÷ÿñÿñÿ÷ÿçÿíÿçÿ÷ÿíÿçÿ$jump expected after start process....#NOP expected after start process...šÿœÿšÿÛÿÛÿáÿáÿëÿñÿëÿñÿ÷ÿ÷ÿÛÿÛÿíÿ÷ÿ äÿäÿäÿäÿäÿäÿäÿîÿõÿ òý÷ýþgþ•þ¿þÜþÿxÿ¬ÿÌÿ÷ÿproc parms must be on stackincorrect parameter countpð·ÿ·ÿ·ÿ·ÿ·ÿ·ÿ·ÿ·ÿ·ÿ·ÿÏÿÏÿÏÿâÿìÿ·ÿ·ÿoperand should be on stackkerror in multiple word blkkƒôÿIÿ­ÿÁÿÁÿÁÿ·ÿ1ÿÚÿÚÿÚÿóÿ{ÿŽÿ¤ÿ@+transfer to non-forward, non-empty stack...öÿïÿ@€§þ>ÿ¾ÿ¯þ¯þ§þ¯þlabel destination not found gen illegal pcode!cannot iterively code generate...ßÿìÿðÿ€ô+þ+þ2þ×þHþ`þjþ>þžþ“þqÿqÿNÿSÿ×þSÿŽÿŽÿŽÿŽÿŽÿŽÿ’ÿŽÿ%þ™ÿ¸þ¸þÃÿ·ÿÿÿÿÿDÿIÿRþtþ©þæþÍÿÖÿÜþáþ‚þ‚þ]ÿ]ÿ]ÿ]ÿ$ÿ$ÿgÿgÿgÿlÿlÿlÿgÿÉÿbÿbÿbÿbÿbÿbÿÐþúþ¿ÿgÿëþðþõþXÿbÿbÿbÿbÿ×þ·ÿ†ÿ†ÿ‚ÿ‚ÿŠÿ ÿÿ½þgÿgÿgÿgÿ¨ÿ¨ÿ)ÿ.ÿ»ÿbÿbÿÿÂþÿþ¬ÿ¬ÿ¬ÿ¬ÿ°ÿ3ÿ;ÿŽÿŽÿ‚ÿ×þ×þ×þÿ¤g¢ìãnK’òü¨ ‚ þР€O;ãβB[]%ä„]A& €Õòw«—Ö^ áX>ú ï ´ t ‹ q g a j ¶ ] W L A - ° r ~ ZFÿÊÂ)µ‡êŸ_&ìÀ–U3òѯ“hDìÀ§ˆrûÙ& j¸DUMPPROCŒixH=€2³Ôšwpš‚€w p¥Šš€.” p=í¥–­"Š8`” Š4`” Š-`” Š&`” Š`” Š`” Š`” Š `” ŠÖ€ i!…xÄ… Ä!ç ËÊ!ç"Ê ¥ k–E jiá¦lˆ’€ÿp…h ˜±Õr m"%çÉ¢j%çÉ‹H­í¦ˆ€Ü­ôË×n&çÄ&ç"Ä&"!¢Ä&çÄ$²ñ$íl‹$íl­í¦ˆ%z€ÈË×xáÓ‚€qˆ%z€ÈË×­Ĉ€Ü­ôË×n&ç%zÄ&ç"Ä&"!¢Ä&çÄ‹Ä%çÉ€‹Ò)­í¦ˆ€Ü­ôË×n&ç%{Ä&ç"Ä&"!¢Ä&çċދ‹%çɃ€ÚÔw­í¦ˆ€Ü­ôË×n&ç%|Ä%çÉŠH!¢i&çÄ­$£­îok#'²Ôˆ€Ü#ôËפ (ç%|Ä(çÄ#íŠÝŠ!¢i&çÄŠ &çÄŠÖ€!&ç"Ä&"!¢ÄŠÖ€6%xh%çÉÚÔl‹ˆþ– ¿ˆ€Ü­ôË×k­jˆ#z€ÈË×xh ³ñ‚€?qˆ€Ü ôË×{Ò6ˆ€Ü ôË×l$zi$ç"Ä jˆ!€ÈË×xh ³ñ‚€Gq$çÄŠº"­Ó2"­Óˆ€Ü"ôË×l$zj$ç!Ä$çĊ߈€Ü­ôË×ç!Ä ­³ñaˆ€Ü ôË×x#x£'³Ô#çÄ##x%£Ä­%¢¦Š7ˆ€Ü ôË×y#y£'³ñ#çÄ#ç#y%¢Ä­%¢¦Š ­Ô ­¦¦Šeˆ€Ü ôË×x­£#x£&²Ô#çÄ##x%£Ä­%¢¦Š:ˆ€Ü ôË×y­¢#y£&²ñ#çÄ#ç#y%¢Ä­%¢¦Š ­Ô ­¦¦–"hi íhmlk!j"­²Ô<ˆ€Ü"ôË×n&ç&y$¢Ä&&x#£Ä&{ŠŠ‚€OqŠ €ÿ€ŠÖ€Y"íjо%$°#°¡ Ô¨–?i…ha˧°¥$#"q ¥–¨ ál…¥42£Œ0¢¢i!nfɦ…˜±Õ?…o'çÉ‹('çÉ€‹Ò3'ç'{Ä$íl'爀܈'{€ÈË×xôË×yˆ€Ü$ôË×y£Ä‹ë$íl‹å$ílˆ€Ü$ôË×y!¢¥„±‹Í'{'z¤ j"(²Ô("`qˆ€Üˆ €ÈË×xôË×y!¢h"`"íŠÒ‹–'çɃ€`ÚÕ$ílˆ€Ü$ôËפ 'ç(zĈ€Üˆ(z€ÈË×xôË×y(y£k'çÉŠC'ç#¢ÄŠ=#€ÿ³Ÿ#€²Ÿ Ô 'ç#¢ÄŠ!#Ò'çËÊ'ç€G€hËÊŠ'ç#ÄŠÖ€bŠÖ€g…x¥‹ºþ– ½)`„*¬P†ˆÞ`˜w p–+φˆÞ€,” p–߆ˆÞ wp–2®Ô†ˆÞ®wp†ˆÞ€:” p¦Š †ˆÞ€ ” p†ˆÞ®wp†ˆÞ€|” pˆ € p¦–¢!³Ÿ!€È²Ÿ Ô ‚€qqŠUˆ!€ÈË×xh ³Ÿ ®²Ÿ Ô ‚€zqŠ4ˆ€Ü ôË×{Ò ‚€„ï Š®Ô ‚€…ï Š ‚€†ï ¦!ï –û†ˆÞˆ w p®Ó7®ï® ²ñ®€c²ñhŠhŠh¦†ˆÞ€:” p†ˆÞ€ ” pŠ †ˆÞ€ ” p–`!h`É€ÿËq…ÔN®í¦®í²ñ ‚€‡qŠ8ˆ ®ˆ)`ËØÉ˧Ȉ ®íˆ)`ËØÉ˧Ȯ¢¦–z!h`Éï`Éï®í¦–ç ÔP!ŠH‚€‘ð ŠB‚€“ð Š9‚€•ð Š0‚€˜ð Š'‚€šð Š‚€œð Š‚€Ÿð Š ‚€¡ð ŠÖ€£Š†ˆÞ€D” p†ˆÞ!wp–/$jhi!²Ô6b!ËØÉÔ' ÔhŠð #Ò!£¡Ë!²ïŠ !¡Ë!³ï!íŠÄ–Œ &li%Ô$ç ÉËj$çÉËk$|hŠ$ç ÉËj$çÉËk${h#‹¾"Ëï‹·"Ëï‹­‚€­ð "Ëï‚€®ð ‹•‚€¯ð "Ëï‚€°ð Š~‚€²ð "Ëï‚€´ð Šg ð ‚€µð "Ëï‚€¶ð ŠM ð ‚€·ð "Ëïð iŠ6"Š+ ð Š) ð ‚€¸ð Š ð ‚€»ð iŠ‚€¾ð ð ŠÖ€¿ŠÖ€Æ!ÔW%Ô+$ç ÉË$çÉï$çÉÔ ‚€Ðð Š‚€Òð Š)$ç ÉË$çÉï$çÉÔ ‚€Ôð Š‚€Öð –^ 'mh&Ô%|i%çÉËk%ç ÉËjŠ%{i%çÉËk%ç ÉËj#Š#!ðŠ!hŠ"Š!ðŠ‚€ØqŠhŠÖ€êŠÖ€ñ Ôild!€ÿËÊ&Ô-d ËØ%çÉÊd %ç ÉËÊdËØ%çÉÊŠ+d ËØ%çÉÊd %ç ÉËÊdËØ%çÉÊ$ð– ®TçÉ‹’ ‚€öëP‹‹ ‚€øëP‹ ‚€úëPŠx ‚€üëPŠo ‚€þëPŠf ‚ëPŠ] ‚ëPŠT ‚ëPŠK ‚ëPŠB ‚ëPŠ9 ‚ ëPŠ0 ‚ ëPŠ' ‚ ëPŠ ‚ëPŠ ‚ëPŠ ‚ëPŠÖ–Ò*‡+‚&ëP­TçÉ‹³‡+‚'ëP‹«‡+‚*ëP‹ ‡+‚,ëP‹•‡+‚0ëP‹Š‡+‚4ëP‹‡+‚7ëP‹t‡+‚:ëP‹i‡+‚=ëP‹^‡+‚?ëP‹S‡+‚BëP‹H‡+‚DëP‹=‡+‡+h`‚F” `‡+˜€Q” `ëP‹‡+‚GëP‹‡+‚JëP‹‡+‚MëP‹ú‡+‚OëP‹ï‡+‚RëP‹ä‡+‚TëP‹Ù‡+‚WëP‹Î‡+‚YëP‹Ã‡+‚[ëP‹¸‡+‚]ëP‹­‡+‚aëP‹¢‡+‚eëP‹—‡+‚hëP‹Œ‡+‡+h`‚k” `‡+˜€R” `ëP‹j‡+‚mëP‹_‡+‚pëP‹T‡+‚sëP‹I‡+‚uëP‹>‡+‚xëP‹3‡+‚zëP‹(‡+‚}ëP‹‡+‚€ëP‹‡+‚„ëP‹‡+‚†ëP‹ü‡+‚ˆëP‹ñ‡+‚ŠëP‹æ‡+‚ëP‹Û‡+‚ëP‹Ð‡+‚‘ëP‹Å‡+‚”ëP‹º‡+‚˜ëP‹¯‡+‚œëP‹¤‡+‚ ëP‹™‡+‚¤ëP‹Ž‡+‚¨ëP‹ƒ‡+‚¬ëP‹x‡+‚¯ëP‹m‡+‚²ëP‹b‡+‚µëP‹W‡+‚¸ëP‹L‡+‚ºëP‹A‡+‚½ëP‹6‡+‚¿ëP‹+‡+‚ÁëP‹ ‡+‚ÃëP‹‡+‚ÅëP‹ ‡+‚ÇëP‹ÿ‡+‚ÊëP‹ô‡+‚ÌëP‹é‡+‚ÎëP‹Þ‡+‚ÑëP‹Ó‡+‚ÔëP‹È‡+‚ÖëP‹½‡+‚ØëP‹²‡+‚ÚëP‹§‡+‡+h`‚Ý” `‡+˜€Q” `ëP‹…‡+‚ÞëPŠ{‡+‚áëPŠq‡+‚ãëPŠg‡+‚çëPŠ]‡+‚ëëPŠS‡+‚îëPŠI‡+‚ñëPŠ?‡+‚ôëPŠ5‡+‚÷ëPŠ+‡+‚ùëPŠ!‡+‚üëPЇ+‚ÿëPŠ ‡+‚‚ëPŠÖ‚–+mS`‡TçɃ‚oÚÔl‡TçÉŠ``¤*„*`˜€P” „*‚‚q€R” „*ëPŠC`¤*„*`˜€P” „*‚‚s€R” „*ëPŠ#`¤*„*`˜€P” „*‚‚u€R” „*ëPŠÖ‚w``§í`§£€ p`È`˜ð –Ti ‹î?ái‹é|i‹â`i‹Û0ái‹Óái‹ËÀi‹Ä@/ái‹¼@ái‹´Ài‹­@.ái‹¥ ái‹ai‹–i‹@ái‹‡i‹€Pi‹y`i‹ri‹k/ái‹c@i‹\€Ai‹U@ái‹M@i‹FBi‹?i‹8€i‹1Pái‹)<i‹"€i‹@Oái‹@Nái‹ À>ái‹øái‹û i‹ô¸>ái‹ì@ái‹äøNái‹Üx>ái‹Ôøái‹ÌÈPi‹Å€Hi‹¾@ái‹¶@~ái‹®ÀHi‹§i‹¢@ái‹šüJi‹“ÀDi‹ŒPái‹„ÀNi‹}ÀFi‹v i‹o€Ni‹hÀ@i‹a< i‹ZÀAi‹S`Ni‹L| i‹EPNi‹>@0i‹7@ i‹0@i‹)@ái‹!€Hi‹qNi‹èái‹ ÀHi‹Fi‹ý@ái‹õi‹îÿáîi‹åðái‹ÝHi‹Öi‹Ñ@ái‹Épi‹Â€ái‹¬€|i‹¦@ái‹ž@?ái‹–@Hi‹sNi‹ˆHi‹pNiŠ{wNiŠuDiŠoèáiŠhuNiŠbáiŠ[@náiŠTÀJiŠNÀPiŠHiŠB@NiŠÚÔ‚ƒCï ŠB‚ƒEï !|ï Š5!ç ÉÔ‚ƒFï !ç ÉËŠ!ç ÉË‚ƒIï ŠÖƒL†ˆÞwp–#!³!€€³Ÿ¡Ô!ðŠ!ÿí h`Éð`Éð–¯…Ôï ®Ó ï†ˆÞwpï &m%çÉï%çÉŠ[%{ïŠX%{ŠR%{ï%|ŠH%{ï%|ïŠ>%{ï%|ï%}ïŠ0%{ï%|ï%}Š"%{ï%|%}ïŠ%{ldÉïdÉïŠÖƒf…Õú†ˆÞˆ w p‚ƒpï %çÉ`s†ˆÞ`w p%çÉ‹Á%çÉ€€³ñ%{ï ‹²%çɃƒuÚÔ†ˆÞ†„¶%çÉ€o£€ÿË×xw pï %çÉ€‹Ò ¦%|ïŠ%{ï Šk%çÉ€“â¼€”â¼ÛÚÔ†ˆÞ†„¶%{€ÿË×xw pŠ%{ï ï %|ï Š6%çÉ€•Ò†ˆÞ†„¶%{€ÿË×xw pŠ%{ï ï %|ï ï %}ï ŠÖƒ}†ˆÞwp–…Ôï ®îh†ƒ16€ÿË× Äqq ±q †„²q…Ô%ˆï …„±ï ï …„²ï †ˆÞwpï †ˆÞwp¦–%`€J€=p`€JîȆˆÞwp†ˆÞ`˜w p†ˆÞwp†ˆÞ‚ƒw p†ˆÞ‚ƒ‘w p†ˆÞ‚ƒ™w p†ˆÞ€ ” p†ˆÞ‚ƒžw p†ˆÞwp†ˆÞ‚ƒ£w p†ˆÞ†‚Q9Ë×w p†ˆÞ‚ƒ¨w p†ˆÞ6wp†ˆÞ‚ƒ®w p†ˆÞ€ ” p†ˆÞ‚ƒ±w p†ˆÞwp†ˆÞ‚ƒ·w p†ˆÞ®wp†ˆÞ€ ” p†ˆÞ‚ƒÂw p†ˆÞ€ ” p†ˆÞ‚ƒÅw p†ˆÞwp†ˆÞ‚ƒËw p†ˆÞ€ ” p†ˆÞ‚ƒÒw p†ˆÞ€ ” p†ˆÞ‚ƒÔw p†ˆÞwp†ˆÞ‚ƒÚw p†ˆÞ€ ” p†ˆÞ‚ƒáw p†ˆÞ€ ” p†ˆÞ‚ƒãw p†ˆÞwp†ˆÞ‚ƒéw p†ˆÞ€ ” p†ˆÞ‚ƒñw p†ˆÞ€ ” p†ˆÞ‚ƒôw p†ˆÞwp†ˆÞ`˜w p†ˆÞwp†ˆÞwp–%å…Ô¦¦¦¦¦ˆ € p¦…h ˜±Õ’ i!çÉŠ…ñï…Ô8!{³Ô !{¦¦!çÉÓ ­Ó †ˆÞwp!z¦!çɰ¦Š>…Ô+!{¦¦ †ˆÞˆ w p†ˆÞ‚ƒúw p†ˆÞwpŠ Š ŠÖ„!xh‹hÿ0Ô€œ–ì–¯šwpš‚„ w p¥ –ˆ¯ ..ÅÿöÿáÿÌÿÓÿèÿÚÿïÿlabel defined more than once!€!ëÿµÿëÿöÿ<ÿuÿrÿèþµþèþundefined labelundefined labeljust seen a ghost!!èÿèÿêÿèÿóÿ€ºÿÃÿÕþjÿÿÿÿ3ÿillegal label....label undefined....GLPcode field overflowMPPA44BASEEA55SEGDATAAPMESPPµÿÇÿÙÿëÿ¾ÿÐÿâÿôÿ()()++-(()()((PC))(PC,,#Òÿ×ÿãÿñÿ?ÿIÿSÿkÿ‚ÿ™ÿ³ÿÊÿ.L).W).L).W)"attempted long absolute address....ëÿðÿëÿùÿëÿÚÿßÿãÿHIINEEPLLGTTLSSEQQMIILEECCCVCCGEEFCSSVSSLTTTôÿÐÿkÿ‘ÿµÿÙÿuÿšÿ¾ÿâÿÿ£ÿÇÿëÿˆÿ¬ÿABCDDADDADDA.WWADDA.LLADDIIADDQQADDXXANDANDIIASLASRBBCHGGBCLRRBRABSETTBSRBTSTTCHKCLRCMPCMPA.WWCMPA.LLCMPIICMPMMDBBDIVSSDIVUUEOREORIIEXGEXT.WEXT.LILLEGALJMPJSRLEALINKKLSLLSRMOVEEMOVEA.WMOVEA.LMOVEM.WMOVEM.LMOVEP.WMOVEP.LMOVEQMULSSMULUUNBCDDNEGNEGXXNOPNOTORRORIPEARESETROLRORROXLLROXRRRTERTRRTSSBCDDSSTOPPSUBSUBA.WWSUBA.LLSUBIISUBQQSUBXXSWAPPTASTRAPPTRAPVTSTUNLKKhJüUü`üküvüüŒü—ü¢ü¢ü¢ü­ü­ü¸ü¸üÃüåüåüðüðüûüýýýýý'ý2ý=ýHýSý^ýiýtý–ý¡ý¬ý·ý·ý·ýÂýÂýÂýÍýØýãýîýùýþþþþ%þ%þ0þ0þ0þ0þ0þ;þFþQþ\þgþrþ}þˆþ“þžþ©þ´þ¿þÊþÕþàþàþàþëþöþÿÿ ÿ ÿÿÿ"ÿ"ÿ-ÿ8ÿCÿNÿYÿ{ÿ…ÿÿ™ÿ£ÿ­ÿ·ÿÁÿËÿÕÿßÿéÿóÿ³ .BB.WW.LLÿ½ÿÝÿhý%ý<ýSýjý€ý•ý«ýÁý×ýý-ýDý[ýqý‡ýý³ýÈýÞýý5ýLýcýyýŽý¤ýºýÏýåýíýþþ4þJþ^þtþŠþŸþ´þõý þ$þ;þRþfþ|þ‘þ¦þ»þýýþ,þBþYþmþƒþ˜þ­þÂþÉþßþõþ ÿ#ÿ7ÿLÿbÿxÿ‹ÿÐþæþüþÿ*ÿ>ÿTÿjÿÿ‘ÿ×þíþÿÿ/ÿDÿZÿqÿ…ÿ˜ÿžÿ²ÿÄÿÖÿêÿ¥ÿ¸ÿÊÿÝÿñÿ¬ÿ¾ÿÐÿäÿ÷ÿßÿéÿóÿÆû1ü{ü{ü¬üÞüý?ýýÄýýýþGþzþ‘þ±þÒþÿ^ÿ‹ÿ®ÿÀÿÉÿ×ÿøÿillegal instruction `À##-((),-(()()+,(()++(),###SR,,CCRR,SR78ëÿôÿ#@,CCRR€,SR#USP,,,USPPûüý9ýNýoýoýoýƒýµýáý5þbþ’þßþùþÿ*ÿ1ÿ*ÿ8ÿmÿƒÿ¾ÿËÿ¢ÿ¨ÿ®ÿ¸ÿÂÿÐÿÞÿìÿ ;p-code ÿ<ÿNÿNÿ•ÿ•ÿÊÿÊÿÊÿNÿ.WORD Final MC68000 [1R2.1] Code for RADIX 10 segment procedure  MPP .EQU A00 segment word offset BASEE .EQU A11 Source ObjectSEG .EQU A22 P-Code N-CodePME .EQU A33(Dec. Offsets))DATAA .EQU A66 ;exit codeeøÿóÿ~ÿ~ÿÂÿ~ÿ emit..u Ú ÿ  ¹1„kÈö¿7 ²€SòêáÖ "%âY& x…INITCG $ixD‚†)‚€Å¥¥¥ ¥¥á¥¥†1pšwpš‚€ w pš‚€w pšwpšwpš‚€w pš„-€Pw pšw p„-‚€$èÔp„-˜u°i!ñ"¤V„V„-˜€P” „V‚€%€U” „V˜u°i!Ô¡š‚€(w šc€Pw šw c‚€4èÔc„-ëPŠi‚€5c˜” Ò[‚€6c˜” °‚€9c˜” °¡Ô c¤V„Vc˜€P” „V‚€<€X” „VëPŠc¤V„Vc˜€P” „V‚€A€S” „VëP†ˆ¶c˜”c‚€$èÔpp°ÕNÿš‚€Cw šc€Pw šw †ˆÞc˜”p°c‚€$è ÔÏp°¥c‚€Kèc‚€Pè c‚€Uè ¥…ñ †ˆÞ‚€W”†…¶pj"²Ô†…¶"Ëî×ç€ÿ"Ê"íŠä†„¶€ÿËטĆ„¶€ÿË×” †„¶€ÿË×x‚€\ņ„¶€ÿË×xçÄ–€‚0123456789ABCDEFMC68000 [1R2.1] Code GeneratorSOURCE PCODE FILE: .CODEDESTINATION CODE FILE: $[.CODE.code.CODE[*]][*]LISTING FILE: CONSOLE::console::#1:CONSOLE::KERNEL 5STARTSEGçixûae«'²ŸÕÖ†„¶'€ÿË×” †„¶'€ÿË×xh aÅ çÄa‚€»ÔUa‚€¹Ô çÄŠBa‚€ ¹Ô çÄŠ1a‚€¹Ô çÄŠ a‚€¹Ô ç ÄŠa‚€¹Ô çÄŠSa‚€¹Ô çÄŠBa‚€¹Ô çÄŠ1a‚€"¹Ô ç ÄŠ a‚€&¹Ô çÄŠa‚€*¹Ô ç Ä–A j"€ÿ²Ô†„¶"€ÿËטÄ"íŠé†…¶Ëî×ç€ÿ€ÿËÊ„†‚1Å„n9Ë×ÉÚÔ„ „.9Ë×ÅŠ„ „€ž9Ë×Å:ikj"²Õ•„€ž"Ëׄ ¹Ô„€Ž"Ë×É„."Ëט„."Ëׄ ¹ÔX†…¶Ëî×ç€ÿ„€Ž"Ë×É€ÿËÊ"!¢ïËu³Ô(uÔdu (d˜d‚€.¹Ôî„€Ž"Ë×É„ ˜"í‹dÿ‡€ÞÒhŠ!¢h :°k#ñ i!ïË„u³Ÿk#Õ5ÿ:ïËuj– H-–-ˆ‚±9Ë×É¥ †‚19Ë×4Ä4¥dt°¥dt¥ dt¥dtk#dtjšwpš‚€2w pš†‚Q9Ë×w pš‚€7w pš"wpš‚€:w pš†‚19Ë×ywpš‚€Dw p¥†ƒ1€ÿË×"Äh ²Ô dtq íŠî h<Ó`q"mh %²Ô†ƒ1 €ÿË×# £dtÄ íŠã#"£íi#"£¥ †„1€ÿ˧h<†ƒ1†„1 €ÿ˧€ÿË×x³Ÿ ²Ÿ¡Ô†ƒ1†„1 €ÿ˧€ÿË×xi îhŠÊ„u „ ˇ€ÿËÈ„ Ë€ÿËȤ‡ ²Ô„‡ ˧€ÿËq‡íŠå‡ÒÂqšwpšwpš‚€w pš†‚Q9Ë×w pšwpš‚€(w pš…wpš‚€*w pš†ƒ1€ÿË×xwpš‚€-w pšwpš‚€9w pš†‚19Ë×ywpš‚€Iw pš‡íwpšwp‡í³ñ‚€Nq†‚19Ë×ç‡íÄ…Ô †‚±9Ë× ʆ‚¡9Ë×xÓR†‚¡9Ë×xîn†‚¡9Ë×4Ć‚Á9Ë×{¤‚¤‡‡‚²Ô#›†1&‡¢” pÓ‚€fqq‡íŠÓ–‚!trouble reading relocation buffererror dumping alt_bufCompleted segment   of  procedures translatedd segment size in words before , after /Destination code segment greater than 64K bytestrouble reading interface¦ IVMGBLS teC%††-árs†r– *** FILEOPS  -IVMPVTS )teC6"i`aÉ€ÿËÊ`aÉ€ÿËÊ k–Pá¥á¥¥ ᥥ s– *** IVMGBLS  yIVMDCD1 óteC–­‹t­‚€Å‹l­‚€Å‹a­‚€ Å‹V­‚€Å‹K­‚€Å‹@­‚€Å‹5­‚€Å‹*­‚€Å‹­‚€"Å‹­‚€&Å‹ ­‚€*Å‹þ­‚€.ŋ󭂀2ŋ譂€6ŋݭ‚€:ŋҭ‚€>ŋǭ‚€BÅ‹¼­‚€FÅ‹±­‚€JÅ‹¦­‚€NÅ‹›­‚€RÅ‹­‚€VÅ‹…­‚€ZÅŠ{­‚€^ÅŠq­‚€bÅŠg­‚€fÅŠ]­‚€jÅŠS­‚€nÅŠI­‚€rÅŠ?­‚€vÅŠ5­‚€zÅŠ+­‚€~ÅŠ!­‚€‚ÅŠ­‚€†ÅŠ ­‚€ŠÅŠրޖ#­‹­‚€³Å‹w­‚€·Å‹l­‚€»Å‹a­‚€¿Å‹V­‚€ÃÅ‹K­‚€ÇÅ‹@­‚€ËÅ‹5­‚€ÏÅ‹*­‚€ÓÅ‹­‚€×Å‹­‚€ÛÅ‹ ­‚€ßÅ‹þ­‚€ãŋ󭂀çŋ譂€ëŋݭ‚€ïŋҭ‚€óŋǭ‚€÷Å‹¼­‚€ûÅ‹±­‚€ÿÅ‹¦­‚Å‹›­‚Å‹­‚ Å‹…­‚ÅŠ{­‚ÅŠq­‚ÅŠg­‚ÅŠ]­‚ÅŠS­‚#ÅŠI­‚'ÅŠ?­‚+ÅŠ5­‚/ÅŠ+­‚3ÅŠ!­‚7ÅŠ­‚;ÅŠ ­‚?ÅŠÖC–5­‹­‚iÅ‹û­‚mÅ‹ð­‚qŋ孂uŋڭ‚yŋϭ‚}ŋĭ‚Å‹¹­‚…Å‹®­‚‰Å‹£­‚Å‹˜­‚‘Å‹­‚•Å‹‚­‚™Å‹w­‚Å‹l­‚¡Å‹a­‚¥Å‹V­‚©Å‹K­‚­Å‹@­‚±Å‹5­‚µÅ‹*­‚¹Å‹­‚½Å‹­‚ÁÅ‹ ­‚ÅÅ‹þ­‚ÉÅ‹ó­‚Íŋ譂Ñŋݭ‚Õŋҭ‚Ùŋǭ‚ÝÅ‹¼­‚áÅ‹±­‚åÅ‹¦­‚éÅ‹›­‚íÅ‹­‚ñÅ‹…­‚õÅŠ{­‚ùÅŠq­‚ýÅŠg­‚‚ÅŠ]­‚‚ÅŠS­‚‚ ÅŠI­‚‚ ÅŠ?­‚‚ÅŠ5­‚‚ÅŠ+­‚‚ÅŠ!­‚‚ÅŠ­‚‚!ÅŠ ­‚‚%ÅŠÖ‚)–Þ!€ªâ¼€¯â¼Û€÷€ÿ¼Ûƒ‚[ÛÚÔ ‚‚aÅŠ!€€³ñc!€ ³ñ ‚‚eÅŠR!€/²Ô ‚‚iÅŠC!€?²Ô ‚‚mÅŠ4!€g²Ô ‚‚qÅŠ%!€o²Ô ‚‚uÅŠ!€w²Ô ‚‚yÅŠ ‚‚}ÅŠ!€¢²ÔŠ !€Æ²ÔŠ–ä–LDCB LDCI LCO  LDC LLA LDO LAO LDL LDA LOD UJP UJPL MPI DVI STM MODI CPL CPG CPI CXL CXG CXI RPU CPF LDCN LSL LDE LAE NOP LPR BPT BNOT LOR LAND ADI €¢þ‰þ”þŸþªþµþÀþËþÖþáþìþ÷ÿÿ ÿÿ#ÿ.ÿ9ÿDÿOÿZÿeÿpÿ{ÿ…ÿÿ™ÿ£ÿ­ÿ·ÿÁÿËÿÕÿßÿéÿóSBI STL SRO STR LDB NATIVE NAT-INFOINVALID CAP CSP SLOD1 SLOD2 INVALID EQUI NEQI LEQI GEQI LEUSW GEUSW EQPWR LEPWR GEPWR EQBYTE LEBYTE GEBYTE SRS SWAP TRUNC ROUND ADR SBR MPR DVR STO MOV DUP2 £Æþ~þ‰þ”þŸþªþµþÀþËþÖþáþìþ÷ÿÿ ÿÿ#ÿ.ÿ9ÿDÿOÿZÿeÿpÿ{ÿ…ÿÿ™ÿ£ÿ­ÿ·ÿÁÿËÿÕÿßÿéÿóADJ STB LDP STP CHK FLT EQREAL LEREAL GEREAL LDM SPR EFJ NFJ FJP FJPL XJP IXA IXP STE INN UNI INT DIF SIGNAL WAIT ABI NGI DUP1 ABR NGR LNOT IND INC EQSTR LESTR GESTR ASTR CSTR INCI DECI SCIP1 SCIP2 TJP LDCRL LDRL STRL CNTRL EXPRL Çöýúþþþþ&þ1þ<þGþRþ]þhþsþ~þ‰þ”þŸþªþµþÀþËþÖþáþìþ÷ÿÿ ÿÿ#ÿ.ÿ9ÿDÿOÿZÿeÿpÿ{ÿ…ÿÿ™ÿ£ÿ­ÿ·ÿÁÿËÿÕÿßÿéÿóÿÿÿÿINVALID SLDC SLDL SLDO SLLA SSTL SCXG SIND ”Í ñIVMPVTS IVMGBLS  CIVMDCD2 ·teCœ­hšÿ²ñ3šíÙ››-šupÓ Ê  ÊÙ pÙ›-šÿ˧€ÿËi ç æ Ë›-šÿ˧€ÿËÈ ç æ íÄšíÙšíÙ–Éïh €²ña €¡€ÿËÊaï€ÿËÊ!jŠ j–è`ï€ÿËÊ`ï€ÿËÊ i–+'pš °Õ/'m%ç šÄ%çšš¢Ä%€ÿËÊ%É€ªâ¼€¯â¼Û€÷€ÿ¼Ûƒ€ÛÚÔ%Ê‹Ä%É€Œâ¼€â¼Û€â¼Û€—â¼Û€˜â¼Û€œ€£¼Û€§â¼Û€¨â¼Û€°€¸¼Û€¼€Ä¼Û€Æâ¼Û€È€Ï¼Û€Ñâ¼Û€Ú€å¼Û€ì€î¼Û€ó€ö¼Ûƒ€ÛÚÕ²%É€€³ŸÕŸ%Ê%É€ ³ñ %ç%ÉÄ‹„%É€/²Ô %ç%ɣĊo%É€?²Ô %ç%É€/£ÄŠY%É€g²Ô %ç%É€_£ÄŠC%É€o²Ô %ç%É€g£ÄŠ-%É€w²Ô%Ê%ç%É€o£Ä%çÄŠ %ç%É€x£ÄŠ%Ê‹­%É‹£%Ê%çÄ%É€Šâ¼€Ò€Ô¼Û€ñâ¼ÛÚÔ.%€²ñ%皣%¢ÄŠ%çš%¢Ä%~š ²ñ%~Ù ‹S%Ê%çÄ%É€ÖÒAd‘%¢i!d‘j!íd‘k!¢!¢#¢"£nh &²Ô d‘k#š ²ñ#Ù íhŠä‹û%Ê%çÄ%çÄ‹å%Ê%çÄ%çÄ‹Ï%Ê%çÄ%çÄ%çÄ‹²%Ê%çÄ%çÄ%çÄ‹•%Ê%çÄ%É€‹â¼€Õâ¼ÛÚÔ%çš%¢Ä%~š ²ñ%~Ù Š`%Ê%çÄ%çÄ%çÄŠD%Êh ²ñ1%çÄ ²ñ%%çÄ ²ñ%çÄ%æ ¢³ñ %çÄŠîŠÖ€% %É€–°š š³Ÿ¡šš ²Ÿ Ê% ÉÔÙ –Ä#Äš³Õ‡›ƒšË×ÉÚÔs›ƒ-šË×i!y$²Ÿ$³¡Ô[!x$¢h$â½Ël#Ä šÓ››- upÒ ÙŠ#Ä"š ¡Ô›-$€ÿË×xtmŠ ›-$€ÿË×xm–e$Äš³Õ›ƒšË×ÉÚÔ|›ƒ-šË×k#yŒ%²Ÿ%³¡Ôb%i#x%¢h%â½Ëm$Ä šÓ››- upÒ ÙŠ$Ä›-%€ÿË×xj!Ô b˧€ÿËnŠ b˧€ÿËn–l–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€òþZÿkþ­ÿNþ­þ­þ­þ­ÿÿþZÿkþZþZþZÿÿÿÿ þ­þZÿÿþ­þ­ÿÿ¼þ­þZþ­þ­ÿ1ÿ1ÿ1ÿþZþZþZþZþZÿkþ­þ­ÿÿþ­þ­ÿÿÿÿþZþZþZþ­gP dvµEXTRAIO IVMPVTS IVMDCD1 IVMGBLS  cIVMDCD3 LteC÷b›-Ťi!‡²Ôb!€ÿË×b!€ÿË×xuÄ!íiŠß€`€¤i!‡²Ôb!€ÿË×b!€ÿË×xuÄ!íiŠßb­p­¤‡ç€Ð‡æ€ÐuĤi!‡²ÔY‡ç`!Ë×ÉÚÔA‡ç€!Ëפ‡‡xućç‡yućç‡zućç‡{uÄ!íiŠ –iák"h› Ë×x³ÔV› Ë×xšÓ››-› Ë×xvÓp› Ë×xÙ›-!p!æ€ÿÓ "â½Ëk–ÂájáÙÙ Ù š!Ó!ïË›ƒ-‘ÙŠ !â½ËÙš³ÔšÙšj`t°Ù –rV„.„W¬P›w›„.˜wpÓ›jb„.˜€P” b‚€€U” b˜w›€>€ÿppÒGih››ƒ- vÒ&›!Ë× Äš„,Ó šƒýuhŠšƒýh!íiŠh °!²Ÿ Ô½p¤YáÙáÙÙ áÙ–XÔ­ "€ÿ˧h­ "€ÿË­ !€ÿ˧€ÿËÈ­ !€ÿË €ÿËȈ "€ÿË×xhˆ "€ÿË׈ !€ÿË×xĈ !€ÿË× Ä–=%i!!¢k#íj#$²ÔU"$²Ô!ˆ #€ÿË×xˆ "€ÿË×x²Ô"hŠ#hŠ#hˆ €ÿË×xˆ !€ÿË×x²Ô$íkŠ !ï i!!¢k#íjЦ–É ¤ š³Õy›ƒšË×ÉÚÕdgtm%gth'ÕRi„ p ¤ l$‡ ²Ô0%$£gtj"²ñ!íi‡ !€ÿË$€ÿËÈ„ !€ÿË×"îÄ$ílŠÉ!¤ l$‡ ³Ô$€ÿË!€ÿË$îlŠè!¤ l$‡ ³Ô$ €ÿË$î€ÿË$îlŠã!î¤ l$‡ ²Ô$›‚-‡ $€ÿ˧€ÿËׄ $í€ÿË×xÄ$ílŠÕ›‚-‡ !€ÿ˧€ÿË×% £Ä!lgtk$³#„ $€ÿË×x³Ÿ¡Ô$îlŠè$²ñ›‚-‡ $€ÿ˧€ÿË×#Ä$!³ñ›‚-€ÿËׄ $í€ÿË×xÄŠ›‚-€ÿË×% £ÄÙ ‡ €ÿË!€ÿËÈ ¤ – öš ñ›‚-pa‘h›‚-‡€‚€ÿË×x¤€ƒ–€‚ & p¤ š³Õý›ƒšË×ÉÚÕådtk#dth$ÕÎ'²Ÿ' ²¡Õ¾&m#'£dtj"²Ÿ"#³Ÿ¡Õ¢"íŒÙ›ƒ-šË×xš¢Ùšâ½ËÙÙ%çšÄ%çšÄ%ç"íÄ%"îdtÄ%x""¢³ñ%""¢Ä%xš£Ù '€ÿË‘Œš£Ù %ç"dtÄ››-švpÒ ¤ Ù Š¤ Ф Ф Ф Ф –wjš³Ô\›ƒšË×ÉÚÔH›ƒ-šË×i!yh ¢â½ËÙÙ !x ¢Ù››-švpÒjÙ –" € p"çÄš °Õ‹›-šÿË" pš ¢Ùšÿ²ñLšíÙ››-švpÓ Ù  pš£Ùš²ñ›-" š£špŠÙ"i!|h!ç`˧Ä"‚€¹ÔÙ –²jš³Õ„›ƒšË×ÉÔs›ƒ-šË×h›ƒ½šË×i›ƒšË×ÉÚÔ!yÙŠÙ x yš¢€ÿ¢¢ÙÙÙ ››-švpÒ jÙ Ù–#pš °ÕÉšÿ²ñ)šíÙ››-švpÓ Ù  pÙ›-šÿË#pš¢Ù#iš Ô!jh "²Ô! Ë×! Ë×xuÄ íhŠãš²ñ+jh "²Ô! Ë×! Ë×xuÄ íhŠãš£ÙŠ$!|ÚÔ!|Ò!~ÙŠ!~îÙŠ !|ÒÙ –––.CODE l; Û‘>~g¡·~ãJSTRINGOP FILEOPS EXTRAIO IVMPVTS IVMDCD2 IVMDCD1 IVMGBLS  –=>o ?LINKERPRPHASE1 PHASE2 PHASE3 BUILDWOR €€€€€€€€€€€€€€€€Ñ<LINKERPRLINKERPRLINKERPRLINKERPR‡g5CCopr. 1978,79 Regents, UC; Copr. 1984 SofTech Microsystems, Inc. *Y)¨;<PHASE1 ¦‡g50`‚€ë"!`ÇtÒq–„ˆ„‚¬ÿc€(” #¥†€¦#€Pp#„ˆ˜” pÓ(„ˆ‚€èñ‚€ „ˆ€ÿ„ˆ§í” #„ˆ˜” pÓP#” ˜¥c€(” ‚€ „ˆ€ÿ” „ˆ§€P²ñ„ˆ„ˆ˜„€P” „ëÿ„ˆ˜q‡‚ Ó…(î¥(‹¢¤i6Ôš‚€” š„ˆ˜” š” d€Ó” $1Ä$ç#Ä$燂 Ä#e!”Ó ‚€q‹'‡±‡±¡Ô #” ‚€q…€ÑÒ‡¥€ÑŠ …€Ñ‡Ó¥€Ð‡Óeq ‡€Öi$çeÅ $ç#„&Å@$çc„fÅ$çs„vÅ$瀃„€†Å$瀓„€–Å@†}§Ò†}„€ÞëPËj…(h‡„f"Ë×É塤e"Ë×y°„f"Ë×ÉÚå¡Ô‚€&qe"Ë×y³Ÿe"Ë×x³Ÿ e"Ë×x¸ ²Ÿ Ô‚€.q„&"Ë×q ñ‚€5q…( ²ñËj"íËj"²ŸÕpÿ…( Ò˜¥$¥!°Õ‡þ‡‚ Ò‡Ôš‚€<” #” qŠ1¥–‚ ƒ6Ô#h ²Ô š”  íŠðš‚€D” š” š±š¡š¡¥5Ô%šÔ c›ëÿŠc‚€Lëÿc˜‚€S‹Å¥(š‚€[” c€ÿcrc‚€aèÔšÔ c›ëÿŠc‚€bëÿc˜…(ÒÁš‚€i” c€ÿcrc‚€aèñc‚€oèÔ ‚€pŠc˜c‚€aèÔš‚€x” †+€Pcr†+‚€aèñ)†+†+§ì§€.Ò †+†+§” Š‚€~†+€P†+§í” 1j˜¥"xi"1Ä"¥!j"˜Òñ0x¥–€ƒý"hˆ” ­"Ä­ç!ËÄ­ç˜Ä­ç çc!Ë×ÉÄ­ç˜Ä–Á˜¥*˜k1m%ni!²Õ£&çc!Ë×ÉÚÕŒ%!Ë#˜Ò c” #¥*Š#” #xk#ç"Ä#˜Ä#ç&瀓!Ë×xíÿËÄ1l$oh ²Ô@'çc Ë×ÉÒ-%ç#!Ë×'瀓 Ë×¹Ô$ Ë"ç#z}Ä#zç"Ä íŠº$xl$0Ò°!í‹Vÿ%xm%0°ÕJÿ–e1k#˜ÓFl$²Ô:#çc$Ë×ÉÒ'b” "ç3Ä"#Ä"ç$ËÄ"ç˜Ä"çÄ"ç3Ä"¥$íŠÀ#xkж3i˜¥!˜Ó!}h!ç3Ä!¥ iŠí…*˜Ò43˜Ò ‚€qqŠ%†*” …*m%ç3Ä3}¥%zç˜Ä%˜Ä%çÿËÄ–ø†Ë×ĆË×ĆË×ĆË×ĆË×ĆË×ĆË×ĆË×ĆË×ĆË×ĆË×ĆË×ĆË×ĆË×ĆË×ĆË×ĆË×ĆË×Ć Ë×Ć Ë×Ć Ë×Ć Ë×Ć Ë×Ć Ë×Ć Ë×Ć Ë×Ć Ë×Ć Ë×ĆË×ĆË×ĆË×ĆË×Ä¥€Ð¥€Ñld˧Ó"íËk#²Ô†#Ë׆#Ë×xåÄ#íŠãb`Ë×`Ë×£Ä"°¥€Ï–I˜¥˜¥˜¥˜¥*Ç¥¥(†+‚€aëP†}‚€aëPšå¥…(²ñq…(²ñq…(²ñq– in workspacee.CODENo file Opening segtbl read err Bad seg dicttfunny code segg bad diskinfoo bad seg nameeAll segs linkedLinker [1R0.3]] in workspacee*SYSTEM.LIBRARY Host file? in workspacee Lib file? **SYSTEM.LIBRARY Map name? .TEXTno host seg in host fileeµcä C~=PHASE2 ¦‡g5mh­Ò+€ ¦­(xyˆ­”±h Ô ‚€qŠ­í¦ˆ€ ­£Ë×!p Ô!çĭH!h q ñ ‚€q‹Â |‹º ç˜Ä ~³Ÿ ~ô²Ÿ Ô‚€q }Úñ‚€q |Ò ² ÿ²Ÿ Ô‚€qŠx }² }€ÿ²Ÿ  ~³Ÿ  ~þ²Ÿ Ô‚€#qŠT }² }ÿ²Ÿ Ô‚€)qŠ= | ÚÔ ç ” Š ç˜Ä }² }€ÿ²Ÿ  ~³Ÿ  ~€d²Ÿ Ô‚€0qŠÖ€7– &‡(x¤$‡$ç‡(yËפ%‡$瀓‡(yËפ&‡$y„‡%x”Ò‡(ç„Ë×Ë×x°ÄŠ‚€Dq‡$çc‡(yË×ÉÕJk‡(|ÚÔ ‡%y‡&y¢lЇ%yl‡%x$€ÿ¢¢l6Ô(š‚€M” š‡$ç#‡(yË×” š” ¤#„‡({ñ*„„po'²Ô„'Ë×q'íŠë„„p…(n‡Ó‡‡'ÚÔ„Š ‚€Rq¤‡4ÚÔj‡Ò¤#Š_‡¢m%²ñ;„ a ” „ !çp‡({ño'²Ô!ç'Ë×q'íŠë!‡Ä!¤%îmŠÀ‡i˜¤!˜Ó!xh!‡Ä!¤ iŠî‡Ó&…(°‡#¡Ôb ” "ç„Å "‡(çq ‡°Õ ÿ–(""!qh­ {ñ`q k–9&˜±Õ &zï&yï&xï&çl$æm$| ÚÕí$}²$}­²Ÿ Ô ‚€Xq‹Ö­$}Œ£i­!i%ç!Ä%­!ïŒÄ%xh%çË×Ä%çË×Ä%çË×Ä%çË×Ä­ £ïj­ ïkcÉÚÔ-%çcÉË×%çcÉË×x"¢ÄcÉÓ £"Œ£hŠcÉÓ‚€^qcÉÒ¥%ç %z£þËÄ%z³Ÿ%æ² %æþ²Ÿ Ô‚€jq–É(xç(yË×yŒn&ÿ¢mb” a%Œ” k#Ò ‚€rqŠP(xy!%(xç(yË×x”%Ó ‚€zqŠ-!q h Œo 'l$³Ÿ$€ÿ²Ÿ Ô ‚€ƒqŠ(zb” – I…*j"˜Ó9"zi!˜Ó-!|Š!!ÀÇŠ!² ÇŠ!ÇŠÖ€Š!}iŠÏ"xjŠÃ3i!˜Ó!4  ÛÇ!}iŠë…*z|Ò…*z3i!˜Ó!!}iŠô…(²ñq– li read errnon-alpha namee too many refs bad formatt bad private bad globdef bad publicdef bad proc/func CÿCÿCÿCÿˆÿ¬ÿÃÿÃÿÃÿÃÿreading code seggReading bad litypee bad proc ##illegal relocation typeproc place errrsep seg too bigsep seg read errr bad proc dictÜÿÜÿòÿçÿ“ˆ9 ¦g>BUILDWORã‡g5s!˜ÓU!zï!yï!xï!­ÚÔA`”  ç!Ä ç˜Ä ç˜Ä ç˜Ä çĉÔ ç€ÿËÄŠ ç!æ€ÿËÄ ­Ä ¦–˜h! k–ü!˜Óp!zï!yï!xï! ÚÔ[!æ®ÒT‰ h ˜Ó z!Ò ¦p xhŠé`”  ç!Ä ç˜Ä ç˜Ä ç˜Ä çÄ ç€ÿËÄ ‰ Ä ¦ ¦p–˜i ‚€q–m®i!˜ÓR!}˜ÒH!zÒ!yæjŠ!yæj® h ˜Ó !{ {Ò yæ"Ò !ç ĘhŠ xhŠ xhŠÜ!}˜Ò !ç!{zÄ!xiŠª–¢3i!˜Ó(­ xzç"!zq h ˜Ó­ xç Ä­ xç!ĘiŠ!}iŠÔ–%˜h3j"­x{Ó"#{ÒŠUŠ"}jŠë­xi!{#{Ò$#yæ z!yæ z³ñŠ5!h!xi!˜ÒŠ*!{#{ÓàŠ"Š!h!xi!˜Ó"!{Ó"#{ÒŠ Š"}jŠí!˜Ò¶ ˜Ò #­xÄ­#ÄŠ# xÄ #Ä–Ï(x˜±Õœ(xk#zçl$|‹þ#ç˜Ä‹ö#ç$® zzq Ä#ç® zÄ‹ß#ç$® zzq Ä#y˜Óˆ‚Áˆ‚ÁÐ#yæ â¼ÛÇŽ#ç® zÄ‹­® m%zn#ç%yÿËÄ%ç%y$¢ÿËĈ‚Áˆ‚ÁÐ&x瀃&yË×Éâ¼ÛÇŽ#ç#zÄ#ç%zÄŠ_ #y˜Ó$#yæ $~Óš‚€ ” š$” ‚€ qŠ1 #y˜Ó$#yæ $~Óš‚€” š$” ‚€qŠÖ€(xj("xÄ"y˜Òd"zçk#|ŠFš‚€,” Š;š‚€0” Š-š‚€4” Šš‚€8” Šš‚€;” ŠÖ€>š#” ‚€IqŠ"y Ú'x˜±¡Ô" Š"'xÄ'"Ä‹]þ– u(˜±Õ™(zï (yï (xï (çn&|­ÚÕ€&~k&æm%˜Óu#²ñl#£kŠ#îl%ç$Ë×xj­i!}Ô>!yæ o"'z³ñŠ9Š/"'z'梳ñ%`”  ç(Ä ç­Ä ç˜Ä ç˜Ä ‰Ä ¦Š!xi!­Ò¶$îl$³ñ %xmЇ– ˜h® i!˜Ó!{#°!}¡Ô!h˜iŠ!xiŠè ˜Ó% i!{ {±j"ñ!xi"!˜° Ôí#z çÄ xh !Òô–!˜Ó4!zï !yï !xï ! ÚÔ!`”  ç!Ä ç˜Ä ç˜Ä ç˜Ä ® Ä ¦ –Ĉ‚ÁÇŽ˜¦ ˜¦ ˜¦˜¦ ˜¦ ˜¦­j­ z|°¦­Ô"ç3Ä­¥ Ç"z¦ ŠÇ"z¦ ­ ˜Ó&ˆ ˆ 3h ˜Ó Ç }hŠðˆˆŠÕ­ñ "z ˆ ˆ ­ i!˜Ó !çÄ!xiŠò3h ˜Ó Ç }hŠðˆˆ– missing proccProc  param mismatchFunc  param mismatch ÿþ!ÿSÿ ÿ¡ÿÏÿ¡ÿÏÿGlobal Public Const Proc Func  ·ÿÅÿÓÿáÿïÿ undefineddcê=Ó¹C€‰ <‚ n PHASE3 ½‡g5(#"×xh!Ô`q l–n'h&i !%ïÓ1 !×q !î%ïk !î×q!£i#lj"$²Ô !×q!îi"íŠíŠÆ–§&h%i !$ïk !×q !î$ïj !î×q#á°"±¡Ô&""¢$ï–4(h'k #&ïj #×q "&ïl "×q$²$€ÿ²Ÿ Ô‚€q$mi!%²Ô% "!£&ïÓ( "!£&ïŒ&ï "!£×q!íŠÕ #í&ïÓ ( #í&ïŒ&ï #í×q #¢×q– E! ³ñ!jŠ j–p ¦®ÿ¢nˆ&Œ” m%Ò ‚€ qq®%Œp®Ô­£¦­­ ¢¦®®q‹Õ­ÿ¢n®xy®&­ ”&Ó ‚€qq® qj"±"±¡Ô ‚€qqŠ"Ó ®ð¦®qŒi®!qh®x¤ )çc®Ë×ÉÚÔ)瀓®Ë×yŒkŠk®­#£q ¤ ®®#£q o('#p!­ ¢¦ Œl!$£¦®!$£q ¤ ®®$£q o('$¢p– {­ÔoŠ=­x¤-ç­Ëפ.yŒo-çc­Ë×ÉÚÔ'-瀓­Ë×yŒ¢o.x¤ lm%€ÿ²Ô%ˆ‚ÁÐÚÔ$íl%íŠç­ ¤ ¤ ij$Œk,˜ÓR,¤-yæ ¤(.梤 !.çË×x¢i".çË×x¢.çË×x¢j#.çË×x¢k-~Ò(¢¤ -x¤ Šª!"¢#¢h Ó!²ñ!¢i"²ñ"¢j!"¢#¢íh'(¢ Œ¢¦­²Ô ‚€'qq­í ¢¦ Óp­¢¦‚¾­‚¾!Œ¢¦‚¿­‚¿"Œ¢¦‚À­î­q­­‚¾£q!²ñ!£­­‚¿£qŒ­­‚¿£q"²ñ"£­­‚À£qŒ­­‚À£qŠ­q­­q€ÿˤ ­ ¤ ,˜ÓA,yæ ¤-ç&Ä&-æ¢n,~Ò%+í€ÿˤ +€ÿ²ñ‚€1q€ÿˤ ,ç+€ÿËÄ,x¤ Š»+­­q­­q­Ô ­ÿË€ p­ q–ú!xç!yË×x¦!xç!yË×y€ÿ¢h­ ¢î¦ ‚€9” €ÿ¢£ð¦­²Ô¦ˆ­Œ” Ò ‚€Rqq­¦ ¦ ¦!¦–­"­£h ³ ­ ³Ÿ¡Ô­ Œq k‹ˆ!Ô"¦Š ­ ¦­­¢"²Ô"­£í¦­³ñ¦­­­£í𦠭{xy­­ ­”­ Ó ‚€Xqq"­³Ÿ"­­ ¢³ ­³Ÿ ­­²Ÿ Ô ‚€`qq­"­£Œq k!Ô"¦ –ë­£¦­³ñ­­¢ï ¦þ¦­î¦­­qh­{ñ`q i–Ƙjc” ­ i!˜±ÕÁ!¤‡{¤‡y礭xçc­Ëפ‡ ‡ ɇ¡Ê‡{x瀃‡{yË×Éq¤"‡{Ó c” c” ‡{ 6Ô<š‚€o” ‡| Òš‚€u” Š š‚€x” š‡” š” ‡æ¤‡xç‡yË×x‡z¢n‡zâ½Ë¤­‡yq ¤¤‡æ¤¤‡²ñ4&‡¢ ¤‡‡£ï¤ .‡/-,p‡,£¤-,¢¤¤‡í¤ŠÆ/q"{ñ/ï‡xç‡yË×x‡x¢n‡xâ½Ë¢¤& ¤á¤ ¤ ¤„É‹‡¤¤‡‡²Ô ‡z£‡y¢­­‚¾q­‚¾¢¦‚¾‡íŠ×‹Ø‡¤¤‡‡²Ô{ ‡z£‡y¢¤‡­­‚¿q‡y¢¤†‡Ë×xÔ‡Ô‚€{q‡¤­‡q¤ †‡Ë×xñ„ q+‡¢¤ „ qŠ+‡¢¤ +­‡q­‚¿¢¦‚¿‡í‹|ÿŠM‡¤¤‡‡²Ô ‡z£‡y¢­­‚¿q­‚¿¢¦‚¿‡íŠ×Ї¤¤‡‡²Ô ¤ ‡íŠíŠÖ€„ɰÕÛþá­‡y¢q­‡yq­x瀃­Ëׇ{x瀃‡{yË×Éʇyí­­‡~Œ£q!xi‹9ýc” –| ‡˜±Õ©‡¤ +zç¤ ,|Š,.á°¤ Š'.+yæ °¤ Š­ z¤.-x瀃-yË×ɰ¤ ŠÖ€–+|x瀃+|yË×Éqo*ÕL,|ŠY+yæhŠU+yæ +}yæ y¢¢h†'Ë×xÔ Ô ‚€œqŠ hŠ*,|Ò+}hŠ+yæh îŒ ¢h†'Ë×xÔ hŠÖ€¬,~k,æ¤ (˜±ÕÞ#²ñj#£kŠ#îj(ç"Ë×xi/å¤ )ÔW˜n­ m%˜Ó%{+|Ò%n˜mŠ%xmŠë&˜±)¡Ô6&{+|Ò,&yæ ¤!-z³Ô!-z-梳ñ !-z£-y¢i¤ Š&xnŠ˜nŠ˜nŠÃ)ñQ,}Š2­!ql†'Ë×xñ dq$ ¢ldqŠ$ ¢l$­!qŠ ­!qŠÖ€²,| ÚÔ!­­‚Àq­‚À¢¦‚À"îj"³ŸÕ9ÿ(x¤ ‹ÿ+x¤‹Pþ–ý ­xi­ z­Ò!瀓­Ë×­ yîÄ!çc­Ë×Ê­Ô­ï!ç­Ë×ç­Ä­ÿ¢h†€¦­ ­” Ó ‚€¶qq!ç­Ë×­Ä­ ¢¦– ®j"xkˆ‘‚€¾” ˆ‘#瀃"yË×É” ˆ‘€,”ˆ‘#ç#"yË×” ˆ‘” ® h ˜Óˆ‘‚€Â” ˆ‘”  ˜±Õ” yçjˆ‘‚€É” ˆ‘"” "| Òˆ‘‚€Í” Š ˆ‘‚€Ð” ˆ‘‚€Ó” ˆ‘ ~” ˆ‘‚€Õ” ˆ‘"æy” ˆ‘‚€Û” ˆ‘"ææ” ˆ‘”  xh‹fÿi!²Õù!Ô®h ˜Óˆ‘‚€á” ˆ‘” Š® h ˜Óˆ‘‚€ê” ˆ‘”  ˜±Õ³ yçjˆ‘‚€ó” ˆ‘"” "|‹‚‹‚ˆ‘‚€÷” ˆ‘"}” Šiˆ‘‚€þ” ˆ‘"}” ŠPˆ‘‚” ˆ‘ }” Š7ˆ‘‚ ” ˆ‘ }yç” ˆ‘‚” ˆ‘"~” ŠÖˆ‘”  xh‹Gÿ!í‹ÿˆ‘” –Ô ®o'x¤ f” (瀓®Ë×{h ²ŸÕ‘‚ ” €ÿ¢ ðje"Œ” Ò ‚9qq(çs®Ë×xl(çs®Ë×®Ä "ðk1y%#$”#Ó ‚HqqІ€¦%#®”#Ó ‚Rqq$#¢l®#¢¦ #£h ÒµŠ (çs®Ë×Äf” – Âb” ­k#xl#y˦¦˜¦¦6ÔEš‚\” š$ç#­Ë×” š‚a” š$瀃­Ë×É” š” •…(Òu†+‚cèñ#|Òïï ­ áï ­áï i!€ÿ²ÔF!ˆ‚ÁÐÚÔ7­‚Àh­ !ï ­!ï ­‚À £­­‚Àq!Œ¢­­‚À¢q­‚À¢¦‚À!튳ïb” –bi1h ¤cpc‡çÅ „$‡ç#Å@„d‡çcÅ„t‡çsÅ„€„‡瀃Å„€”‡瀓Å@ 1Ò„€Ü†}ëM¤‡x0Ó ­j­í¦Šj"¤€Ô‡xh†€¦c!”Ó‚dq"i 0°Õjÿ–pP„‘„‚½á” ‚l” ¥(5ñ@š‚p” „‚cëÿ„€ÿ„ÇtÒq„r„§°š¡¥„§±5 ÔÀ5Ô%„¤‚Ñ„‚Ñ›˜€G” „‚Ñ‚w€O” „‚Ñëÿ†€¦„˜” pÓLp„s†T¤‚Ñ„‚Ñ‚| ” „‚Ñ„˜€ÿ” „‚ÑëP†T§€P²ñ†T†T˜„‚Ñ€P” „‚ÑëP†T˜q…(°Õ.ÿj†+‚cèñR„‘†+˜” pÓAš‚‚” š†+˜” p†+sš‚Š” š†+˜” š” †+‚cëP…*¤ ,˜±Õƒ†+‚cèñ/„‘‚Œ” ,z¤„‘-xç#-yË×” „‘” „‘” ,z}¤-˜Ó-}¤Šô,z¤†+‚cèñ"„‘‚“” „‘,y” „‘” „‘” ,x¤ ‹wÿ1x˜Ó 1y” 1x¥Šï1y” …(Ò †€¦” І€¦” ‚›” „‘” –ƒP bad proc dictno mem room for output segg seg read errrbad code segmenttoutput seg too biggproc num ofloww0LINKER,PHASE3,HEAPOPS,EXTRAHEAP,PASCALIO,EXTRAIOO out of memmreading sep seglinker error reading sep segg Copying proc func )relocatable quantity not on word boundary³ÿãÿ÷þ(ÿÑÿÙÿãÿÑÿref to non word aligned address«ÿÖÿÖÿ¤ÿËÿõÿcode write errrSeg # Sep procss  proc func # base == leng == Sep proc refss Local seg refs public LC == const val == privat LC == glob def in  @@ °ÿÉÿ~ÿ—ÿ{ÿ{ÿ0LINKER,PHASE3,HEAPOPS,EXTRAHEAP,PASCALIO,EXTRAIOOno mem room to copy interfaceinterface read errrinterface write errLinking  # Code write errrPHASE33 Output file? .CODE[*]] Code open Error opening , Link map for next base LC = PHASE33c‰ì@eÙ@ø¥:œV9 ´•LINKERPRh‡g5€*a„+¬Pša˜” š” š‚€” š” vš`” šÒ&2˜Ó2” 1˜Ó1x˜Ó 1y” 1x¥Šï1y” ‘ € Ò³…(í¥(–,—vp"†€Î” p–¼"xi`aÉ€ÿËÊ`aÉ€ÿËÊ" Ä–Æ! §j–Õ"!`p k–à! "È–íb! p–©$jh ²ÕŸ" Ë×k#‘#ç‘a"ç` Ë×xÄa‘"ç` Ë×axÄ"çp Ëבa"瀀 Ë×xÄa‘"瀀 Ë×axÄ"ç` Ë×ÉÚÔ6"ç€ Ëב"ç€ Ë×ç‘"ç€ Ë×ç‘"ç€ Ë×ç‘ í‹Zÿ"ç€ÿ‘"ç€Ð‘–$ç˜Ä$ç˜Ä$˜Ä#x˜Ò#$ÄŠM#xi!h!ç$çºñ!zijŠ!ç$ç»ñ!yijŠ $!xÄ!$Ęh˜i!˜ÒÉ ˜Ó"Ô ç$ÄŠ ç$Ä–P˜l!h ˜Ó. ç#ºñ zhŠ ç#»ñ yhŠ "Ó xhŠ l˜hŠÎ–vjh ²Ô! ˧ƒ€ÚñŠ íŠåj–…€ÏÔ"!¢hŠ"!¢h k–¡ ²ñiŠ i–dž€¦†Òá” †€Î” w””†€Î” †€¦” –$Type (continue),(terminate))ÿþÿÿ‡J=* ×yrme`NB SEXTRAIO PASCALIO EXTRAHEA STRINGOP FILEOPS HEAPOPS COMMANDIGETCMD SCREENOPPRNTERR OSUTIL  ªúC16BITCOPATCH €€  2 †‰=Copr. 1979 Regents, UC; Copr. 1984 SofTech Microsystems, Inc. ©C16BITCOæ#0’†%1¢§i†%0¢§h €€³Ô! €€£Œ¢i!ÿ£îiŠ! Œ¢i$‚€ë!ÿáîÒ $‚€ëŠ0!³ñ!áikŠkj!²ñ$"†! §È"îj! iŠè#Ô$"€-È–à`†"…¢§Ê`†"…¢§Ê!†`ɧÈ!†`ɧÈ!†`ɧÈ!†` ɧÈ!È– È †!…¢§È †!…¢§È–j&‚€ ë†'1¢§hmj"%³Ô&"† §È h"îjŠè†'0¢§h&†&§€0£ Œ¢§È hmj"%³Ô&"† §È h"îjŠè–Ã$‚€ë†%…¢§hki!#³Ô$!† §È h!îiŠè†%…¢§hki!#³Ô$!¢† §È h!îiŠæ–$‚€ë†%…¢§hki!#³Ô$!† §È h!îiŠè†%…¢§hki!#³Ô$!¢† §È h!îiŠæ–:0h1¥ ¥…h…¥ ¥–” jh "²Ô† €0 ¢È íhŠí jh "²Ô† €A ¢ £È íhŠë¥¥ia§°¥2Ô¥¥Š¥¥–Éš‚€r pšrpš‚€0r pšrpšrp–Ä š‚€Hr pšrpšarpšr p†a§È†a§Èh „‘š‚€Pr pš!rpš‚€Tr pš„˜r pš€/spšrp! Ò™š‚€Yr pšrpšarpšr p†a§È†a§Èh f‘š‚€br pš!rpš‚€fr pšf˜r pš€/spšrp! Ò›š‚€kr pšrpšarpšr p†a§È†a§Èh b‘š‚€rr pš!rpš‚€vr pšb˜r pš€/spšrp! Ò›š‚€{r pšrpšarpšr p†a§È†a§Èh „ ‘š‚€r pš!rpš‚€…r pš„ ˜r pš€/spšrp! Ò™š‚€Šr pšrpšarpšr p†a§È†a§Èh „‘š‚€”r pš!rpš‚€˜r pš„˜r pš€/spšrp! Ò™š‚€r pšrpšarpšr p†a§È†a§Èh „‘š‚€¦r pš!rpš‚€ªr pš„˜r pš€/spšrp! Ò™š‚€¯r pšrp–Ê– 00-327688   2DEBUGGING PROCEDURE FOR THE 16 BIT CONVERSION UNITT.TYPE INTEGER NUMBERS - A 10 WILL QUIT THE LOOPPCHARACTER TESTTNUM = CHAR = HEXADECIMAL TESTTNUM = HEX = INTEGER TESTTNUM = INT = OCTAL TESTTNUM = OCT = INTEGER BYTES TESTTNUM = DEC = OCTAL BYTES TESTTNUM = OCTB = FINISHED TESTINGGLgä·Kr‚ ä EXTRAIO PASCALIO ùPATCH A#0nS„+„V¬P‡TÔšus‡UÓ‡Uarša˜v Š„+§²ñ š„+˜v š‚€v š`v € Òõs–W…)`„*¬Psš`˜v –+/f„0¬Psšf˜v –1øš`v i`sj"ÁÚÔ"Š€UhŠ€DhŠ €LhŠ€RhŠÖ€Š!!ƒ€ÚÔ €a£€A¢hŠ !ƒ€Úñ€Zh k–”-d„.¬P¤0d§Ò ‚€!‘Š}d§²ñ ‚€4‘Škd§hi Òd§ƒ€IÚÔhái ³Ô5d §ƒ€MÚÔ!d §€0£›Od§ £×xŒ¢i îhŠ ‚€Q‘ihŠÆ!³ñ‚€f‘¤0Š!¤0–/#ÿáîÒ "‚€€ëPŠY#Ò "‚€„ëPŠL"‚€…ëPi#³ñh#ákŠh#²ñ"!†ƒË# ×xÈ!îi# kŠæ Ô"!€-È!îi"!í"!£p"!£È–*)‡*`RpšEÒ‡!¤+Ї‡£¤+–*Y"§ih !²Ô" §ƒ€‰ÚÔ " " §€a£€A¢È íŠÞ–ÿ1‡3‡2sš‚€‘v š`€Pv šv `§²ŸÕ†‡4w‡4`˜wpÓ.‚€¢p‘‡5çć5ç‚€³ëP‚€³‘‡3‡2sŠ@‡5¤1‡1çć1çÄ`‘ ‡1ç`ëP‡1çć1ç‡4‘ć1áÄ‚€´‘‹ì‡3‡2sš‚€»v šš]vš‚€Èv š`€Pv šv `˜‘¤*‡* š]¼€1ÛÚÔµ‡*²ŸÕ‡4w‡*p"pÓ.‚€Ðp‘‡5çć5ç‚€³ëP‚€³‘‡3‡2sŠO‡5¤1‡1çć1çć1çć1çÿć1‡*ć1ç`ëP‡5‡4‘ Ô ‚€â‘Ї1çÄŠ‡3‡2ss–5ÐR‡T‡Ssš‚€év š`€Pv šv `‚€ïè`‚€ñè Ô`¤*„*`˜€P” „*‚€ó€Q” „*ëP`§²ñr‡Uw‡U`˜wpÓ*‚€ôp‘‡VçćVç‚€³ëP‚€³‘‡T‡SsŠ5‡V¤*‡*çć*çć*áć*çć*çÿÄ`‘ ‡*ç`ëP‚‘s–V>k"h {Ô' x› yppÓ‚ p‘skŠ9!› yuÓ‚p‘skŠpÓ‚0p‘sk–M…ºå…¹ Ôzˆ­Œ€ p­îmh %²Ô­ ¢Œataˆ Œía§p íŠß†‚­Œv†‚‚Bv †‚ˆ˜v †‚vpÓ¦‹œ…½Ô†‚vpÓ¦‹……º…¹ Ôfˆ­Œ€ pt ­îmh %²Ô­ ¢Œataˆ Œía§p íŠßt †‚­Œv†‚‚Dv †‚ˆ˜v †‚vpӦЅ¼Ô†‚vpӦЖ_…·å…¶ Ô{ˆ­Œ€ p­îlh $²Ô­ ¢Œataˆ Œ¢a§p íŠÞ†‚­Œv†‚‚Fv †‚ˆ˜v †‚vpÓ¦‹…½Ô†‚vpÓ¦‹†…·…¶ Ôgˆ­Œ€ pt ­îlh $²Ô­ ¢Œataˆ Œ¢a§p íŠÞt †‚­Œv†‚‚Hv †‚ˆ˜v †‚vpӦЅ¼Ô†‚vpӦЖo…´å…³ Ôzˆ­Œ€ p­îmh %²Ô­ ¢Œataˆ Œía§p íŠß†‚­Œv†‚‚Jv †‚ˆ˜v †‚vpÓ¦‹œ…½Ô†‚vpÓ¦‹……´…³ Ôfˆ­Œ€ pt ­îmh %²Ô­ ¢Œataˆ Œía§p íŠßt †‚­Œv†‚‚Lv †‚ˆ˜v †‚vpӦЅ¼Ô†‚vpӦЖ; …±å…° Õ׈­Œ€ p­înh &²Ôx­ ¢Œat­ ¢Œcta§†ƒÛÐÚÔ ˆ Œía§ÈŠˆ Œíc§Èˆ Œ¢c§Èa§†ƒÛÐÚÔˆ Œ¢a§ÈŠˆ Œ¢c§Èˆ Œ¢c§È 튂†‚­Œv†‚‚Nv †‚ˆ˜v †‚vpÓ¦‹ú…½Ô†‚vpÓ¦‹ã…±…° ÕÈ­Œ€ pt ­înh &²Ôx­ ¢Œat­ ¢Œcta§†ƒÛÐÚÔ ˆ Œía§ÈŠˆ Œíc§Èˆ Œ¢c§Èa§†ƒÛÐÚÔˆ Œ¢a§ÈŠˆ Œ¢c§Èˆ Œ¢c§È 튂t †‚­Œv†‚‚Pv †‚ˆ˜v †‚vpӦЅ¼Ô†‚vpӦЖc …®å…­ Õ…ˆ­Œ€ p­îmh %²Ô&­ ¢Œataˆ Œípaˆ Œ¢p íŠÔ†‚­Œv†‚‚Rv †‚ˆ˜v †‚vpÓ¦‹¨…½Ô†‚vpÓ¦‹‘…®å…­ Ôqˆ­Œ€ pt ­îmh %²Ô&­ ¢Œataˆ Œípaˆ Œ¢p íŠÔt †‚­Œv†‚‚Tv †‚ˆ˜v †‚vpӦЅ¼Ô†‚vpӦЖ‹ …«å…ª Õ…ˆ­Œ€ p­îmh %²Ô&­ ¢Œataˆ Œípaˆ Œ¢p íŠÔ†‚­Œv†‚‚Vv †‚ˆ˜v †‚vpÓ¦‹¨…½Ô†‚vpÓ¦‹‘…«å…ª Ôqˆ­Œ€ pt ­îmh %²Ô&­ ¢Œataˆ Œípaˆ Œ¢p íŠÔt †‚­Œv†‚‚Xv †‚ˆ˜v †‚vpӦЅ¼Ô†‚vpӦЖO †‚‚Zv pÓ¦‹¥…À²Ô2…Àîih !²Ô$†‚ Œv†‚‚]v pÓ¦Šr íŠÖŠ[h ²Ô$†‚ Œv†‚‚av pÓ¦ŠE íŠÖ…Àîih !²Ô$†‚ Œv†‚‚ev pӦРíŠÖ†‚vpӦЖÔFk#Ô‚ip‘‹i…Àî¤Fh ‡F²Õ¥ …ÀŒj…Àid!ŒÈ…»Ô#Ô‚yp‘‹.…µÔ#Ô‚‰p‘‹…¸Ô#Ô‚™p‘‹þ…²Ô#Ô‚©p‘‹æ…¯Ô#Ô‚¹p‘‹Î…¬Ô#Ô‚Ép‘‹¶ í‹Sÿ…À²ŸÕ¤…À£j…Àid!ŒÈ…»Ô#Ô ‚Ùp‘Šs…µÔ#Ô ‚ép‘Š\…¸Ô#Ô ‚ùp‘ŠE…²Ô#Ô ‚‚ p‘Š.…¯Ô#Ô ‚‚p‘Š…¬Ô#Ô ‚‚)p‘Š–FÄ…Ái…Áj!²ñk!îkh #²Ôa…Ã…Â Œ¢›p†‚‚‚9v †‚… Œ¢v†‚‚‚Gv †‚v†‚vpÓ ‚‚Up‘Špï 튙"²ñe…Ã…Â!Œ¢›"p›""£p†‚‚‚ev †‚…Â!Œ¢v†‚‚‚sv †‚"v†‚vpÓ ‚‚p‘Šï–„…ƒp…¿¢j…ƒpki!#"³Ÿ¡Õ£†ƒo†Ä‘ ÔM†‚‚‚‘v †‚#v†‚‚‚šv †‚†ƒt˜v †‚vpÓ ‚‚£p‘ŠYï#ík…ƒpí¥ƒpŠH#ˆ,” ld‚‚³” dˆ,˜€'” d˜‘‚‚‘š`v ƒ‚ÓÚÔð €Y° €y° is‹Tÿ–î`$Å#s"Ô š‚‚Ûv Š š‚‚Þv €'#s!Ô š‚‚áv Š š‚‚äv €8#s Ô š‚‚çv Š š‚‚êv –s š‚‚ív švšvš‚‚ùv švš‚ƒv švš‚ƒv švšvš‚ƒ v švš‚ƒ-v švš‚ƒ:v švšvš‚ƒGv švš‚ƒTv švš‚ƒav švš‚ƒ‚v švš‚ƒv švš‚ƒœv švš‚ƒ©v švš‚ƒ¶v švš‚ƒÃv švšvš‚ƒÐv švš‚ƒßv švsš†ƒt˜v sš…ƒpvsš…¿vs…¾Ô š‚ƒîv Š š‚ƒñv sš…Âvsš…Áv sš†ƒF˜v  sš…Àv†¹ †¶†°†³†­†ªs…½Ô š‚ƒôv Š š‚ƒ÷v s…¼Ô š‚ƒúv Š š‚ƒýv s–Ã…ƒEÕœ…¾Ô†ƒF‚„膃F‚„è Ôs ïŠ)…ƒsÔ†ƒF‚„膃F‚„ è Ôs ïŠ ‚„‘†ƒF‚„膃F‚„ è †ƒF‚„"è †ƒF‚„'è …ƒs…¾ ¡Ô š‚„)v švšˆv ­€ ÒòïŠ ‚„;‘–š`v ƒ„IÚÔ𠃄QÚÔš‚„Yv iŠ š‚„\v i–+"h!s çïÄ€'!”  çïÄ€8!”  ïÄ–ÓM‘i!ƒ„_ÚÕt!‹ms†ƒo†Ä‘ sš†ƒt˜v sš…ƒpv‹D…ƒsÔ_sšb€Pv šv b˜‘h ³ …ƒq²¡Ô ¥ƒpŠ(…ƒq„,” ¤2„2‚„e€,” „2„,˜€6” „2˜‘sš…ƒpvŠ ‚„|‘‹Ô…ƒsÔ8sšb€Pv šv b˜‘h ²ñ ¥¿Š ‚„‘sš vŠ ‚„ž‘‹‹‹†s…¾å¥¾…¾Ô š‚„¯v Š š‚„²v ‹[…¾Ô(sšb€Pv šv b˜‘¥Âsš…ÂvŠ ‚„µ‘‹"…¾Ô(sšb€Pv šv b˜‘¥Ásš…ÁvŠ ‚„¾‘‹é s†ƒA†‚ ‘  sš†ƒF˜v ‹Ê sšb€Pv šv b˜‘h ³ ²¡Ô ¥ÀŠ ‚„Ç‘¥À sš…Àv‹‡†¹ І¶Šw†°Šo†³Šg†­Š_†ªŠWs…½å¥½…½Ô š‚„Øv Š š‚„Ûv Š-s…¼å¥¼…¼Ô š‚„Þv Š š‚„áv ŠÖ„äs!€Q°Õrýs 2Ô†.˜‘І˜‘–Mîsš‚„úv š‚…v švh ²Ô ¢sš Œvš€|u íŠß–i0‘j"²Ô „ "Œ€ È"íŠîî¤0k#‡0²Õ¥î#¢sj"²Õ†"Œh#Œ""¢¢i!dt!ft3ñ f„ ípŠ'd§†ƒÛÐÚÔ„ íd§È„ ¢€ ÈŠ f„ íp3ñ f„ ¢pŠ)d§†ƒÛÐÚÔ„ ¢d§È„ ¢€ ÈŠ f„ ¢p"í‹sÿš„ €K€Kv #í‹Sÿ¢sþdtþft3d§†ƒÛÐÚ¡Ôšd§uš€ uŠšf§ušf§u3d§†ƒÛÐÚ¡Ôšd§uš€ uŠšf§ušf§u0¢1¢s–0òN‚…#‘š`€Pv šv `˜‘¤0‡0³Ÿ‡0…ƒŸî²Ÿ Ô/…ƒŸî„*” ¤2„2‚…+€/” „2„*˜€9” „2˜‘sŠ#…ƒž¤1‡0¥ƒž†ƒ†ì‘ Ô ‚…C‘Ї1¥ƒž€Os–N(…ƒž…ƒŸî³ñ…ƒží¥ƒž†ƒ†ì‘ Ô ‚…N‘‘Š ‚…Y‘–[…ƒž²ñ…ƒžî¥ƒž†ƒ†ì‘ Ô ‚…f‘‘Š ‚…q‘–Ì…ƒ Ô,…ƒ›…ƒžppÓ ‚…€p‘Š‚…“‘Š9†ì›…ƒžuÓ ‚…šp‘ŠpÓ ‚…­p‘Š‚…À‘–›sš‚…Çv š†ƒ¢˜v sš‚…Ëv š…ƒŸvš‚…Ñv š…ƒžvšÔš‚…Øv švŠš‚…åv švs…ƒ¡Ô š‚…òv Š š‚…ùv …ƒ Ô š‚†v Š š‚† v š‚†v š…ƒvš‚†#v –´îh ²Ô ¢s íŠð– 1²ñ1î¥sŠC0²ñî¥0î¥0¢1¢s0Ò0î¥sŠ 0²ñ¥0î¥0¢1¢s0Ò0î¥s–J10³Ÿ1î°¡ Ô1í¥sŠ!0€I³ñ¥0í¥0¢1¢s0Ò0í¥s–~0²ñ0î¥s0Ò0î¥sŠ1²ñ€I¥1î¥0¢1¢s–Ç0€I³Ÿ1³Ÿ¡1°0³Ÿ¡ Ô0í¥s0°1³Ÿ¡Ô0í¥sŠ0€IÒ¥1í¥0¢1¢s–1Œ00Œ¢¢i!#x¢²ñ#!£Ä#xîjh "²Ô ›! ¢$È íŠî–§.‚†(‘š`€Pv šv `˜‘¤+‡+²‡+²Ÿ Ô¤+‚†2‘‹8‚†C‘†W˜‘sš`€Pv šv `§³ñ‚†K‘¤+‹`§ƒ†SÚÕì`§‹á`§„++‘1‡+¢¥‹Ð`§³ñ‚†Z‘¤+‹µ`§†ƒëÐÚ`§†ƒëÐÚ¡Õ‘`§ƒ†bÚÔ`§€A£ ¢Œ¤*Š$`§ƒ†gÚÔ`§€a£ ¢Œ¤*Š `§€0£Œ¤*`§ƒ†nÚÔ`§€A£ ¢‡*¢¤*Š&`§ƒ†sÚÔ`§€a£ ¢‡*¢¤*Š `§€0£‡*¢¤*‡*„++‘1‡+¢¥Š ‚†z‘¤+ŠÖ†–Š ‚†¾‘¤+†€€˜‘s0¢1¢s‡+¤.¤,‡,‡.²Ô ï)ï)‡,íŠî–.F‚†Ú‘0°0° Ô0î¥0¢1¢sš`v i`sj"ÓW!†ƒÛÐÚÔ<›1Œ00Œ¢¢!Èš!uš€ u0¢1¢sï)ï)1°0°¡Ôï(Š‚†ô‘0¢1¢s"Ò”s0¢1¢s–)‚†ý‘0¢1¢sš`v i`sl$±Õ© †ƒëÐÚ! °¡Õ‰ †ƒûÐÚÔ €0£kŠ" ƒ‡ÚÔ €A£ ¢kŠ €a£ ¢k €a£€A¢h1Œ00Œ¢¢j0°0° Ô›"›"§#Œ¢ÈŠ›"›"§›"§£#¢Èš u0¢1¢sï)Š‚‡‘0¢1¢s$°Õ>ÿs0¢1¢s–†s†€€˜‘0¢1¢s‘h ƒ‡%ÚÔ" Š,Š-Š*Š&Š'Š (Š)ŠÖ‡+ €QÒË2Ô†.˜‘І˜‘–ž†‚w†Äw†ìw–E!*s †.jb‚‡@€!” b‚‡Q€L” bëP†jb‚‡g€!” b‚‡x€O” bëP†€€‚‡ëP†W‚‡·ëP¥¥†ƒÛƒ‡ÜÇŽ†ƒûƒ‡äÇŽ†ƒëƒ‡èÇŽ›O×Ä›O× Ä›O×€dÄ›O×èÄ›O×'Äh ²Ô†ƒË ×€0 ¢Ä íŠëh ²Ô†ƒË ¢×€A ¢Ä íŠé¥¥i!¥Ã¥»¥º¥¹¥¸¥·¥¶¥µ¥´¥³¥²¥±¥°¥¯¥®¥­¥¬¥«¥ª¥À¥¿¥Â¥Á¥¾¥½¥¼†ƒ¢‚€³ëP¥ƒ¡¥ƒ ¥ƒŸ¥ƒž᥃†ƒt‚€³ëP¥ƒs¥ƒr¥ƒq¥ƒp᥃o†ƒF‚€³ëP¥ƒE¥ƒD¥ƒC¥ƒB᥃A–*n"†‚†ƒ@áw†Ä†‚ðáw†ì†ƒáwst‘/†.˜‘€Osš†€©v …€©ƒ‡ïÚÔ …€©€a£€A¢¥€©…€©ƒ‡÷ÚÕ¼…€©‹³†€ª›Å‘ ›†€ªÅ‹†ƒ†ì‘ …ƒ¡Ô †ƒ†ì‘ Ô‹€3å¥3Ô ‚‡ý‘Š‚ˆ‘Šg‘#Šc‘$Š_2Ô†˜‘І.˜‘2奊Js2Ô†.˜‘І˜‘Š5…ƒ¡Ô"…€©Š‘Š‘"Š‘%Š‘ Š ‘!Š‘ŠÖˆ,Š ‚ˆC‘ŠÖˆO…€©€Q°Õ ÿ‘.†‚w†Äw†ìw– > óÿéÿîÿóÿøÿþÿÿÿƒþÿÿ%Null string. Value defaults to zero.(String too long. Value defaults to zero..ðÿ)Error in string. Value defaults to zero.2Integer constant overflow. Value defaults to zeroo-3276880 þÿÿ FILENAME : < c/r for Unit I/O > !Error opening file. Ioresult is File opened. Unitnumber : 4, 5, 9 ..  ( 0 quits ) "Error clearing unit. Ioresult is File opened. Filename: #11#66:!Error opening file. Ioresult is File opened.."Error reading block. Ioresult is "Error reading block. Ioresult is "Error reading block. Ioresult is | | | | | | | | | | | |  : : : ERROR in I/O #1. Ioresult is ERROR in I/O #2. Ioresult is ERROR in I/O #3. Ioresult is ERROR in I/O #4. Ioresult is ERROR in I/O #5. Ioresult is ERROR in I/O #6. Ioresult is ERROR in I/O #7. Ioresult is ERROR in I/O #8. Ioresult is ERROR in I/O #9. Ioresult is ERROR in I/O #10. Ioresult is ERROR in I/O #11. Ioresult is ERROR in I/O #12. Ioresult is ERROR in I/O #13. Ioresult is CORE DUMP Startbyte :  Number of valid bytes : ERROR in I/O #14. Ioresult is CORE DUMP Startbyte :  Number of valid bytes : ERROR in I/O #15. Ioresult is  Block number [  ] of the file ERROR in I/O #16. Ioresult is Error occurred reading block !Do you want to continue ? ( y/n )@@TrueeFalseTrueeFalseTrueeFalseDUMP : D(o, Q(uit  A) Input File  B) Starting Block  C) Number of Blocks  E) Read from Memory  F) Starting Byte  G) Number of Bytes  H) Output File  I) Width in words @ Flip Both  J) Decimal  K) Hexadecimal  L) Characters  M) Octal  N) Decimal bytes  O) Octal bytes  S) Space between Lines  T) Space between Groups True FalseTrueeFalseTrueeFalseCONSOLE::#1:CONSOLE::#1:Input file is not opened.CONSOLE::#1:PRINTER::#6:#Type < space > to redisplay promptsOutput file is not opened..@@TrueeFalseþÿ,Value out of range. Maximum block number is Input file must be opened first..!Number must be greater than zero. Input file must be opened first..TrueeFalseCOREREAD not set.COREREAD not set. Value out range. Defaults to 15..TrueeFalseTrueeFalseATý¼ý,þuþzþ¥þÞþÿ6ÿyÿÿ‰ÿ‘ÿ™ÿ¡ÿ©ÿÓÿ: 0: 2: 4: 6: 8: 10: 12: 14: 16: 18: 20:: 22: 24: 26: 28::Blocknumber : /Blocknumber is out of range. Highest value is Read was successful..Read was successful..Have reached end of file.Read was successful..Already at beginning of file.$Error saving buffer.U. Ioresult is Block saved..$Error saving buffer.B. Ioresult is $Error saving buffer.B. Ioresult is Block saved..File : Length : Current :  Byte 0 = Most_Sig_Bytee Byte 0 = Least_Sig_Byte Open : True Open : Falsee Unit I/O : True  Unit I/O : False Unitnumber : Number of bytes : Number of bytes is out of range..What pattern : Invalid format.Invalid format.~~~~6Invalid format. Hexdigits ::= 0 .. 9 , A .. F, a .. f Chÿ0ÿÿ0ÿ7Invalid format. Must have prefix character, 'C' or 'H' 2CHARACTERS : , quits Invalid character6HEXADECIMAL : 0 .. 9 , A .. F , a .. f , Quitss~ Invalid inputX$CUáÿñÿéÿåÿõÿùÿíÿ!EDIT : D(ump, G(et, R(ead, S(ave,+ M(ix, T(ype, I(nfo, F(or, B(ack, ? [1R0.1]!EDIT : V(iew, W(ipe, Q(uit, ? . LTYPE : C(har, H(ex, F(ill, U(p, D(own, L(eft, R(ight, , Q(uittHValid format : C or H ÿÿÿÿÿÿÿÿÿÿÿÿÿ~~þÿÿ€Ô"Ü0The display will be in characters, if printable..*The display will be in hexadecimal digits..BVõÿñÿåÿéÿíÿùÿError. File not open. W¶ÿ¡ÿËÿJÿËÿcÿ™ÿ€ÿËÿËÿËÿËÿÿÑÅ%Öæ Á § ‡ \ —P è ° – { 7 l  ä ‹ DyälH´ :²)¡ª /jÌ~QE9 ¥/GOTOXY OSUTIL STRINGOP FILEOPS PASCALIOEXTRAIO C16BITCOSCREENOPPRNTERR  O^T¥b§pYg {$U-} { ALWAYS include this compiler directive. }  UNIT GOTOXY; !{ This is an unpublished work copyright 1978, 1979 } !{ by the Regents of The University of California and 1980 } !{1981, 1982 by SofTech Microsystems, Inc. }   { This item is the property of SofTech Microsystems, inc. }  { and it may be used, copied, or distributed only as permitted }  { in a written license from that company. }   INTERFACE "PROCEDURE AGOTOXY(X,Y: INTEGER); "  IMPLEMENTATION "USES {$U SCREENOPS.CODE} SCREENOPS (SC_TX_PORT, SC_PORT); "PROCEDURE AGOTOXY; " "CONST TELL_LENGTH_MINUS_1 = 3; )OFFSET = 32; "{ You may have to change these, depending on your terminal. } " "VAR TELL: PACKED ARRAY [0..TELL_LENGTH_MINUS_1] 1OF 0..255; "BEGIN $IF X>79 THEN X:=79 'ELSE IF X<0 THEN X:=0; $IF Y>23 THEN Y:=23 'ELSE IF Y<0 THEN Y:=0; ${ This range-checking is necessary. The actual (screenwidth and height may be different for you. } ( ${ This code must be contained in every gotoxy, to track cursor position } $WITH SC_PORT DO &BEGIN (CUR_X:=X-COL; (CUR_Y:=Y-ROW; &END; & ${ These first elements of TELL must contain 'the characters which tell your terminal to 'position the cursor at (X,Y): 'fill in the blanks... } $TELL[0] := 0 {change this}; $TELL[1] := 0 {and this}; ${ The actual X and Y values are usually the 'last things in the array; 'the order may be different on your terminal. } $TELL[TELL_LENGTH_MINUS_1 - 1] := Y + OFFSET; $TELL[TELL_LENGTH_MINUS_1] := X + OFFSET; $ $UNITWRITE(1,TELL,TELL_LENGTH_MINUS_1 + 1) "END {AGOTOXY};  END {UNIT GOTOXY}. ¼DEBUGGERSEGDEBUG €€€€€€€€€€€€€€€€# DEBUGGER(gYCCopyright 1984 SofTech Microsystems, Inc. ñܳ; " "procedure enterdebug(errnum:integer); ${pass execution error# or -1 for non error entry} " "procedure setbreaks; ${called after segfault occurs, to install breakpoints}  "procedure update_erecs( dumping:boolean ); ${ called by associate (dumping=false) or } ${ by dump environment (dumping=true) to update erecs for breakpoints}   implementation »SEGDEBUG(gY""h`!pk–D" °¦šxha"Èapš Ä–g*a„+¬P¦šxhaa§pš Ä–,¨šçh çØÉÔ Éï çÉï€ ï çØÉÔ Éï çÉï–±ï–Æ ²ñ € ï îhŠò–æae«¦šxhapš Ä–ï ï–‚ c‚€Å/j. ÒC/³ñ /ᤀ-ïhŠh'i¤ +!° /!± Ô ¤ c/!§ï íh/!¤! i!ÒÙŠ7.Ò3-Ôh ³Ôcb Øɧï îŠìhŠh ³Ôcb Øɧï îŠìh, £ï–°`e«`‚€ ¹ñ ‚€ï`˜ïŠ ‚€ï$ ï –à`f«`‚€¹ñ‚€ï% ï Š ‚€ï$ ï –`d«`‚€¹ñ ‚€ï`˜ïŠ‚€ ï…v ï –d „ „«d„«`„«‚€#ï„ ˜ï€ Ÿd‚€%¹Ÿ Ôd˜‡ï ,Ô d˜‡-ï Š`˜ï ‚€)ï–{!zh Ò`!á×xÄ j–ð!šxjš€Ô!cp$cî×xÓ`pcî×xÓáŠ`pš"Ä`§i!€a³!€z²¡Ô!€a£€A¢i!„#ÐÚñï!„#ÐÚÔœ‡"Ô!ï!¤3–2q ¤'¤¤‡% ²ñc€A‡% £€A¢¼ƒ€*ÛÇŽŠc€0‡%î€0¢¼Çއ°‡!cÐÚ¡ñcЭ â¼ â¼Ûƒ€.ÛÛÇï¤!‡³Ÿ‡!cÐÚ‡!ƒ€1Ú‡°¡ ¡Ô‡!‡!ȇí¤‹‹‡!­ °‡²Ÿ¡Ô ‡î¤ïŠu‡! ⼃€4ÛÚÔd‡Ò¤$i¤‡î¤ ¤‡‡ ²Ô>„‡§h €-ÒiŠ* €+Ó% €0³ €9²¡Ô €0£¤Š ¢€A£¤‡%‡Œ‡¢¤‡특!ԇᤊï‡! ⼃€7ÛÚ‡‡#³‡‡"²¡‡$ ¡Õûþ€ ñ ¤'‡&‡ÄŠ-…záÓ'‡!€ °†…z¢×ç‚€:¹Ÿ¡¤'‡&†…z¢×æ Ä–&‚€>ï–Ý*zm*q d%x%ypa%x%ç$ppÿh!nj"&²Ô,c%x%ç$"£pp##¢¢k)#³Ô)#£ ³ñ)#£h("Ä"íŠÎ' Ä– ÷­h! Ó y!Ó yhŠö j– #${Ä#x$ï"!ï–,$`abï z瘆€‚˜!…{†€†˜"#ï–y‚€@ï ï‚€Cï xï ‚€Gï yï ‚€Jï ïï ‚€Mï {ï ï –%"‚€PÅh ÒA!€A³Ÿ!€Z²Ÿ Ô â¼­ â¼Ûƒ€TÛÇïi!€ °…zᱡÔ"†…z¢×çÅhŠ â¼­ â¼Ûƒ€ZÛÇïi! Ò€ i!­ Ò ²ñ îh" € ÈïŠ ³ñ !ï" !È íh!€ °Õrÿ€ ï"‚€`¹Ÿk–:‚€dï € ïi–T‚€jï ÿ€ ïi–£n ⼃€pÛÇïh €0³ €9²¡Ô $ #" ïnŠ €A³ €Z²¡Ô% ïnŠ ! € °…zᱡĖÇj†€Š!˜qÔ…€Š†€‹`†}!q Ôj–`d«`‚€v¹¦á¥}`‚€z¹ñ#†€Š†~˜qÔ…€Š†€‹ˆ†}`q ¦­…€‹Ä–dl#‚€~Å‚€‚ï#"€ÿ`ïÔ#˜Š/ Ô,†…z¢×‚€‹¹ñ †…z¢×˜Šl"†…z¢×æ Ä–ƒ"‚€Å‚€“ï"!ÿ`ïk–ªï ‚€žï…€Œ ï ‚€¥ï…€ ï –Â‚€©ï" ! € ïk–ñ…}²ñï !…€Œ…€ï!Ô…€Š !†€Œ†}qjŠ ïj–¦ˆ‚.ˆ.át°h–/ +¤-ˆ.­§Òï$ñ‹¤+ˆ.­§ â¼â¼Ûƒ€®ÛÚÔCˆ.­§Ò‡+ˆ.­í§¢€ £¤+­¢¦Š ˆ.­§€ Ò‡+í¤+Š ‡+팤+­í¦Ц`‡+€ p€P‡+£ ˆ.­p¤*ˆ.­`‡+í‡*p`‡+‡*¢È­‡*¢í¦‡,Ôfð `˜ð­­£íšæ%£°­­³Ÿ¡ÔGð u‚€±ðšæ%îu ⼚çÉâ¼Ûƒ€ÊÛÇð¦‚V­‚VšçÉÒ­¦­­³Ÿ¤-–, i"È€ €~¼‰ â¼Û â¼ÛÇ’h € ° ° ñ1 ‰ Ò!²ñ ""§îÈ!îi’Š!íi!²Ô ’""§íÈ"! È € ° ° Ô¤!²Ÿk–¼ *a„+¬Pˆ‚.a˜vph °¤-–, ,¤-‚€Íð`'Ô.`˜(ñ$„*‚€Óë„*``§íp``§¢È`˜(¤-Ф-–, W„‚.„ƒZávšx¤‚W&ñŠf„‚.„.átÓŠT$ñŠM‚€Öïaÿï!ñi‚€Úï`ÿï!ñÿîhjï "!³" ²¡%Ô"íjŠï"²ñï „‚.vŠïš‡‚WÄ„‚.v–‚W® ˆ­§h­í¦­8­8xíÄ–Š #‹‰`ð*Ê`ð*ÊŠ|ð*h €€³Ô` €€£Ê`ð*ÊŠað*h €€³Ô`€ÿÊŠOð*hŠI®7x­£hkŠ>®7x€­°®7x€®° Ô ®7x€­£íhŠ ®7x€ï°®7x€ð° Ô ®7x€ï£íhŠ®7x­£hŠÖ€Þ®3Ô@"Ô€,’#Ò- ³ ®9yx²¡Ô ®9yç î×xiŠ˜i!˜Ó !zç˜’ŠŠŠ ’ l–; `e¬¦­3Ô`˜ð€ ð$ŠF­6,ÄŠ?­6,ÄŠ5­6,ÄŠ+­6,ÄŠ!­6,ÄŠ­6,ÄŠ ­6,ÄŠÖ€ç$Š­5,ÄŠ ­5,ÄŠÖ€ü$Š­4,ÄŠ ­4,ÄŠÖ ­7x€©Ò ­8­8x­6x¢Ä­3Ôð –Ê 2‡9z¤2b‡2x‡2y‡8x¢pi‡7*Äh„ ‚ëP‡7x‹þ‚€n+‹ô‚€n€ î+‹å‚€n€0î+‹Ö‚!€n€`î+‹Ç‚$€n€hî+‹¸‚'€t€pî+‹©‚*€n€x+‹›„ ‚-ëP‹„ ‚BëP‹…„ ‚WëPŠ{„ ‚lëPŠq„ ‚ëPŠg„ ‚–ëPŠ]„ ‚«ëPŠS„ ‚ÀëPŠI„ ‚ÕëPŠ?„ ‚êëPŠ5„ ‚ÿëPŠ+„ ‚‚ëPŠ!„ ‚‚)ëPŠ„ ‚‚>ëPŠ „ ‚‚SëPŠÖ‚`‡7x€€³‡7x€ô²¡Ô>„ ‡7xŒíepeȇ7x€¿²Ô „ ‚‚ëPŠ„ ‚‚¢ëPe˜„ ‡7x€@í§+Š Ô ‚‚½€a+–9. ˜¤,ï`dcï zx¤ $²ñHb+ zyp zç"$£p¤ b+*p zç"îp¤ e+*p e„ „ gfï))€–Òða,(¢íïÄ!¤– @­ Ä­ Ħ –W­ ­ xyç!î×xÄ ï0–x® Ô"h`§i``§È`!È kŠ"k–ç¤ (€ñâ¼€Õâ¼Û€Ôâ¼Û€Òâ¼Û€Óâ¼Û€Öâ¼Û€—â¼ÛÚÔ®ð-h(‹3 ×xÔ))x'¢Ä‹& ×xñ))x'¢Ä‹ ×x ×xÓ))x'¢Ä‹ ×x ×xÒ))x'¢Ä‹ìˆ ­ˆ ppˆ ­ p¦ b­ˆ 'ppb×b×x2Äb×b×x2Ä ×xb×x³ ×xb×x²¡Ô,ˆ ×xb×x£'¢¢p¦ ˆ ­­ p))x­ 2¢ÄŠd* ×xÄ+ ×xÄ)Ĥ ŠN))x'¢ÄŠF¦Š@&0Š;'0Š6'°&ƒ‚¿Ú¡ñ'&1Š"'%1Š®yl¤ +${Ä+x®yð*)ðŠւ– ó¤‡x˜±Õú‡xq „ ‡xzçxćxzx¤„ p¤ `-*p ±¤ „ -)p„ (p¤ a-*p‡x²Ÿ‡x!²¡Õ¦„ (‡x£p¤ f-*p&Œ¢‡x¢n&o/Ô&‚ƒFï‡xz瘂ƒI‡x…{‚ƒM‡xïï‡xfedcb/ï).Ô?­%€€•¼€—â¼Û€ïâ¼Û€ðâ¼ÛƒƒQÛÚ¡ÔŠ‡‡‡%$#"/Ô ‡‡x&¢'£ÄŠ%€–°¤‡‡x&¢'£ÄŠ‚ƒYï–5aáÄ!…jÓ1!¥j­h˜¥u {l$z炃a¹Ô$ ïbcï"Ò ¥u yh…u˜ÓØ––b‡Åá¤áh ²ÔH† ¢×i„ ÉÔ!æ .°!æ ,°¡!çf¹¡Ô ¤Š!b¹!æ -°¡!çf¹¡Ô ¤ 튲–!#{h‚ƒeï#yï ‚ƒjï#ï-j"ï ‚ƒmï ï ‚ƒqï zyï ‚ƒtï#ïï aáÄ‚ƒwï!ï aáÄ‚ƒzï!ï ‚ƒ~ïšxï ï –˜l#j"çïÔd†~"çÅ""ç ïÔ&#ç…€ŒÄ#ç …€Ä"ç "ç "ç ï"Ê"ç ÉlŠ-"‚ƒ¹ñ#"ç Ä#çÄ#ç ÿÄ"ç Ê"ç ÿï!l–ïa‡Å†‡¢×h çeÅ aÅ ç -Ä ç ,Ä ç +Ä ç/Ä ç .Ä ç  Ê ç „ ÉÊ ç ç˜qÄ–† ¢×炃…ņ ¢×‚ƒ‰Å–B­`baï`baï.Ôg zçÅ"¤!¤„ Êácï7–‰…xÒ­zi"!x!y#x¢pŠ+…xÒîih !²Ô" ­ #x ¢ÿ¡§È íŠèŠ#x"p–Ï…xÒ`­zx%xp`$&È`­zx%xpŠ …xÒ%%xÿ¡Ä­ %x$¢ÿ¡&ÈŠ%x$&È–< €(ï…xŠ0€gïŠ-€lïŠ'€iïŠ!€epacïŠ €bïŠÖƒ‚ƒ—ï…xÚÔdš^jk"˜±#å¡Ô"x…tÓ"|jŠkŠé"˜Ó"z瘆€‚˜…€‹…{†€†˜…vtïï…q…s³Ÿ…q…r²Ÿ Ô ‚ƒ™ï‹Â…qï Šl…xÒ…qÿ¡¥q…xÒO­z¤ (x˜±(xæ¡Ô/€! £ï(x×xï (x×xï ‚ƒ ï(y…q¢ï Š€!ï(y…q¢ï Š €!ï…qï †qdï:‚ƒ¡ïi!²Ô d!§ï !íŠî‚ƒ£ïi!²Ôd!§€ ³d!§€~²¡Ôd!§ïŠ€-ï!íŠÜï – Ž­ï-i­yh`apl$²ñ$£kŠk‚ƒ¤ï# ï €]ï$#£îj"³Ô€ ï!"×xï "îŠèï –Ò#€PÒ­ba`ïba`ï.ÔŠ&#€RÒ­ï5Š#€AÒï<Š#€MÒ­ïŠ#€SÒï=–‹€!¢ðhj â¼® â¼Ûƒƒ¨ÛÇðk#ƒƒ­Ú"³Ÿ¡Ô)#€0³#€9²¡Ô d"×#€0£ÄŠ d"×#€A£ ¢Ä"íj#ðŠ#® Ò "²ñ"îjð# ⼃ƒ²ÛÚÔ•"²ñ'd×xi"²ñ !Œd×x¢iŠ€ ð!†q ð;€ ðŠ‚ƒµð íh °ÕWÿð –Ô€!¢¢ðh€ÿ¼Çðj" Ò€ ðŠ"†q ð;"€ ³"€~²¡Ô"ðŠ€-ð íh ÒÊð –*k…}²ñB"…€Œ…€’!Ô3 Ô""x…€³ñ""xíÄ…€Š!"†€Œ†}qk!!xîÄŠ…€Š!"†€Œ†}qkŠ!’k–†~ðÔY†€‚†€‹ðÔN†€‚‚ƒ·¹ñ𠂃»ð†{bCñj‚ƒ¿ð†{aCñÿi†~˜qhð `†€‹bð."!²Ÿ Ôï–¾…t’¥s…t!¢’¥q…t ¢’¥r"¥x!¥v’<– …}²Ô"’iŠ/†€†"’Ô%†€†‚ƒÂ¹ñ…€Š†€Ž`†}†€†qi"…€ŽÄŠi!"x²Ÿ¡k’ –h‰{yj‚ƒÆ’á¥}a "x€ ’Ô6"ç!î×x˜Ò ‚ƒÊ’Š!`ïFÔ†t"ç!î×xxÄ "ç!î×xzæ ïE–ª†~’Ô4†~˜qi!˜Ó!†~’ñá¥}`ïFÔ †t!xÄ !zæ ïEŠ‚ƒÐ’–à†~‰zçņ~’ñá¥}`ïFÔ†t‰{xÄ ‰{zæ ïE–=‰ca`’†~#zçÅá¥}†€Š†~˜qÔ…€Ša†}†€‚qå!³Ÿ Ôá¥}bïFÔ‰y¥t…tm…tyl"dep£ïE–Œ‚ƒ×’á¥}a ÿ€ ’Ô-`ïFÔ'‰y¥t!²ñ …tx¥t!îiŠñ…tk…tyj bcp£ïE–ÿ†~’Ôe†~˜qi!˜ÓR†€‚†€‹’ÔD‰j!"{°…€‹"|°¡m"yj"…uy°% Ôè%Ô`ïFÔ"¥t…tl…tyk cdp£ïEŠ‚ƒà’Š‚ƒç’–IƒƒîÇðhð €PÒLŠ+ €GÒIŠ" €LÒJŠ €IÒKŠ €EÒGŠ €SÒH–ɃƒôÇðhð € Óe €DÒ ‚ƒùð¥xŠC €CÒ)†~ðñŠF†~˜q¦®˜ÒŠ6®q ‚„ð¥xŠ® ˜Ó ‚„ð¥xŠðІq€ ðÔð ð<–+ƒ„Çðjðð "€UÒ®®Ó®ð¦®ðŠ1"€DÒ®…uÓ®y¦®ðŠ"€LÒ®hi ð …u°i yh!ÔòŠ–’ih ²ÔL† ¢×j"ç‚„¹ñ4i‚„’ ’ ‚„’"ç˜"˜"æ "æ ‚„"æ ’’ 튮!Ô‚„ ’–ß‚„(’„ € ’Ô1/¥z`†/¢×Å`’6Ô`’4áÒ/`’7Š‚„/’á¥z–ÿ‚„7’` € ’Ô ’8–2ƒ„?Çðhð €LÒð PŠ €SÒQŠ €RÒRŠ–m €PÒ­¥oŠ* €RÒ­¥lŠ €AÒ­¥nŠ €MÒ­¥mŠ €SÒ­¥k–Ú#€L°j#€E°iƒ„EÇðhðð "Ô* ƒ„KÚÔ ð>Š €EÒ€Mð>€Rð>€Að>€Sð>€Pð>Š €EÒ€PT€RT€AT€MT€STŠ T–óph‚„Qð ð ð –]‚„Vða € ðñŠN‚„`ð`€ ðñŠ9® ˜Òˆ w"Ô® p#® ! pŠ #® ! pïU¥q¥x–i!p"ïU–° ‚„jða€ ðÔ-b€<p‡!b!p$ïUh ²Ôb î×xð Òð íŠã–!!šxjƒ„tÇðhð € ÒŠK® ˜° €W°¡ÔðŠ<‚„zða €ÿ€ ðñŠ& €R° €W° Ô ! €R°ïVŠ €CÒ!ïWŠ €SÒ!ïXš"Ä–[ƒ„ƒÇðjð"€LÒ…pñ‚„‰q Š"€SÒ …pÔ‚„q –©’ ­í¦­šæ%î³Ô3‚„‘’šç,É⼃„¦ÛÇ’h’ € Ó€[p¦–rjš^h ˜±Õ¶ k#yl\#zç˜ð‚„©ð#yð ‚„­ð#zð \$xmi!%²Ôz$ç!î×x˜Ók$ç!î×xzn! ð &ç˜ð‚„±ð$ç!î×xð ‚„µð$ç!î×xzð ‚„¸ð&y˜Ò ‚„»ðŠ&yð ‚„¾ð&} ð \!튀#|h‹Dÿ–e †~‚„Âņ€‚‚„ÆÅ†€†‚„ÊÅ€(ÎÇïh ƒ„ÔÚñ ï ƒ„ÚÚñ€ ïï ‹Ùdq ‚„àq Š €T°¦¦ï9簾ŠfMŠbï…qï¥q…v¢¥vï<ŠNï…qáï¥q…v£¥vï<Š9@Š5AŠ1 SŠ,ZŠ(NŠ$BŠ OŠYŠDŠï#Š[Š š8ÔrŠÖ„ä­ñï ƒ…ÚÕÿ– áh ²Ô ï8 íŠóá¥z–!ᦠ­³Õ€áh­Ò!­cbaï„ #zçÅ"¤!¤„Êdï4h áÓN áÓ+‚…ï ï ¦ †€‚† ¢×ņ ¢×æ ¥{Š‚…$ï­ ï ‚…(ï­ïï Šáï8–3" Ùr†~‚…+ņ€‚‚…/ņ€†‚…3ņw€žÈšç+ɤ šçɤ on¤ ˜¤ `Ä yi!{l-³Ô!yi-Ò!ç!zîÄ!{˜Ó!{l!k#jšdñ=˜¥j ‚…7 ‚…>q ]¥q¥x˜¥tá¥yÙd¥m¥l¥n¥o¥k¥pŠq 3^…mÔ€M>…lÔ€R>…nÔ€A>…kÔ€S>…oÔ€P>…yáÒ?*¥yŠá¥y,˜Ó „ ” ˜¤ …yá±&å¡Ô9šdÔq &Ôá¥yÙr–0123456789ABCDEF P==P##  L# O#  V= VO##S==  ÿ(( ) (ms)  stat=dyn==ipc==env== þÿÿÿþÿÿ Segname? Offset#? ÿþÿÿ  Procname or #?  Varname or offset#? First## Last## Line#? 1Type or to continue, to stop  Filename? .TEXT First  Last tÿ„ÿ±ÿŸÿÂÿ·ÿ±ÿbt·ÿÁÿËÿÕÿËÿËÿËÿËÿËÿËÿËÿËÿßÿßÿßÿéÿéÿéÿóÿgtéÿéÿóÿóÿéÿóÿóÿóÿéÿéÿóÿóÿóÿksóÿéÿóÿóÿSLDC SLDL SLDO SLLA SSTL SCXG SIND (LDCB LDCI LCO LDC LLA LDO LAO LDL (LDA LOD UJP UJPL MPI DVI STM MODI (CPL CPG CPI CXL CXG CXI RPU CPF (LDCN LSL LDE LAE NOP LPR BPT BNOT (LOR LAND ADI SBI STL SRO STR LDB (NAT NATI ??? CAP CSP SLOD SLOD ??? (EQUI NEQI LEQI GEQI LEUSWGEUSWEQPWRLEPWRR(GEPWREQBYTLEBYTGEBYTSRS SWAP TRUNCROUNDD(ADR SBR MPR DVR STO MOV DUPR ADJ (STB LDP STP CHK FLT EQUR LEQR GEQR (LDM SPR EFJ NFJ FJP FJPL XJP IXA (IXP STE INN UNI INT DIF SIGNLWAIT (ABI NGI DUPW ABR NGR LNOT IND INC (EQSTRLESTRGESTRASTR CSTR INCI DECI SCPI SCPI TJP LDCRLLDRL STRL ÿþÿþÿþÿþ ÿ ÿÿÿ*ÿ9ÿHÿWÿeÿpÿ{ÿ…ÿÿ™ÿ£ÿ­ÿ·ÿÁÿËÿÕÿßÿéÿóÿ@dbckccccggebaadaddjrrscaafqqaaaaaaaaccgaacacdppaaaaaaaaaalllaaaaa5aaaaahadaaaaaaaadaeeebcciqaaaaaaaaaaaacciiiiaaaooecaa???ðÃýÿ÷ÿpñÊÿÊÿÊÿÊÿÊÿÊÿÊÿÊÿ²ÿ²ÿÅÿÅÿÀÿÊÿÊÿÞÿäÿœÿºÿêþÿþÚþÚþÿÀÿÀÿÊþ(cd) ÿ No proc in segKERNEL (rg) mp== sp== erec== seg= ipc= tib= rdyq== ior= ÍÿÓÿÙÿßÿåÿëÿñÿ÷ÿ ) out of rangee+:  (st) [[ÿ~ÿ~  Start  End Seg#? no such seg no such seg Delta lex level? no such proc no such seg   Data address? Offset? Buffer offset?  (bb) No breakpts set Set break #?  already existsRemove break#?  "  IOResult= Block (0..32767)?? Control (0..FFFF)?Control (0..FFFF)??ŒDevice (0..255)??SEGDEBUGSEGDEBUG)press to continue, to abort evec  sib  erec sib seg nil  res== ¨~2(>0`DEBUGGER+\žÿ²ÿÇÿšÿàÿØÿÏÿÏÿìÿôÿÏÿÔÿÜÿpÿÿÿäÿèÿðÿËÿ Hit break##Error # at DEBUG [1R0.6]DEBUGGERB50WÚ·±|o9ò Ë ˜ g ' È ¡ r W 6  á Ê  l — H ë »É   ê Ç £ ‹ z N  Í|.">öçYÇL Ñšà ûã×Ä´f‰T,¿˜ˆ~qB;z@4 òÚÃzue[V6$ ‹^DEBUGGERô(gY'`$#"!˜%—Ä n–;`$#"!˜%—Ä n–O`$#"!˜%—Ä n–b`#"!˜$—Ä m–`d«o`‘ &`˜‘Ô&x‘ o– zy˜Ò p2–»bg«b˜‘h i!}³Ô&Ô !ç!}íÄŠ!ç!}îÄ– ) f„ «˜iš^h ˜±!˜°¡ÔP k#yl$xmj"%²Ô<$ç"î×x˜Ó-$ç"î×xy#y°$ç"î×xzçf¹¡Ô$ç"î×xi"¥|Š "튾#|hЧ!¤ – Eae«a˜‘h ˜Ò˜oŠ zo–ª e„ «i+š^Ä+x˜±!å¡ÔF+xj"yk#xlh $²Ô-#ç î×x˜Ó#ç î×xzçe¹Ô +#ç î×xÄi íŠÍ!ñ+"|ÄŠ±!¤ – Óh ²Ô! §€A³! §€Z²¡Ô ! ! §€ ¢È íŠÞ–®†%¢×l­y˜±ÕĦa­x­yp­ç!pk`­x#p$æ Ò$æ ¦Š.$æ ²Ÿ$æ ²¡Ô c$æ ápkˆ­x#p­Œ¢$æ ¢¦­y­¢k­±­!Œ³Ÿ¡ÔT­ Ô7b­x#p…y%Ó(b§†w§Ó$ç b§Ê$ç  ʆw­x#pŠá¥yŠ$ç  ÉÔb$ç ÉÈb­x#p– ám%²Õ†%¢×¤ +ç‚€¹Ô‹¥+æ˜Ò‹œ+æzi!˜Ò‹!ç+繟!y˜° ÔŠ|+ç Éå%ᱡÔk+瘑 b+瘑ÔQg+çÅg‘ g˜‘ "†€‹c†}+‘ Ô0+ç…€ŒÄ+ç …€Ä+ç …€‹Ä"+ç +ç +ç†}‘Ô %+ç Êg˜‘ +瘑 Š%%í‹7ÿ– ‘Ùr‘ Ùr–› s–ßáh ²Ô5† ¢×i!ç‚€¹ñ"!昱¡"å!昰¡ Ô !ç!ç˜‘Ä íŠÅ–æ– ì*  BJY×¥3`—ÐÂËòEXTRAHEA HEAPOPS FILEOPS GOTOXY EXTRAIO PERFOPS  é.zJJDECODE IVMGBLS IVMPVTS IVMDCD1 IVMDCD2 IVMDCD3 €€€€€€22 (,( xiQ)Copyright 1984 SofTech Microsystems, Inc.3R3.1] 14-NOV-84 WPF èDECODE ß xiQS‚€v†~‚€Å†,‚€!ëP†‚€!ëP wš‚€"” pš” p–†š” pš‚€5” pš`” p € Òòš” p–²#h"i!³Ô††~`!ËîØÉ˧” p!îŠÝ–Èke€ p‡‡£¤j"/²ÕЇ"¢`ti#³Ô?†€ ” p†e” p†” pke€ p†"” p†‚€D” p!ld˧‘d˧‘†€ ” pd˧²Ÿd˧€~³Ÿ¡Ôe#Ëd˧Ȋe#Ë€-Èd˧²Ÿd˧€~³Ÿ¡Ôe#íËd˧Ȋ e#íË€-È#¢k"í‹)ÿí#£Œíj†€ "” p†e” p†” p–Äš” peti€ÿËuj†‚3­Ë×xh†” p†‚€F” p††‚S­Ë×” p†” p†‚€T” p† ” p†‚€X” p†” p †” p†‚€k” p† !¢” p†‚€o” p†!â½ËŒ” p†‚€w” p†!!¢” p†” p!"–†” p­‹ƒ†‚€~” p†” pŠn†‚€Ž” p†” pŠV†­9” p†‚€¡” p†” pŠ3†‚€°” p†” pІ‚€¹” p†” pŠրɆ‚€Ð” p††‚S®Ë×” p†‚€Õ” p†­9” p†‚€Û” p†” p1ñQš‚€ô” pš†‚S®Ë×” pš‚€ù” pš­9” pš‚€ÿ” pš” p–B8‡9€ÿË„ uh °)³Ÿ¡Ôh °Õ1ñQš‚” pš†‚S­Ë×” pš‚$” pš‡9” pš‚+” pš” p†” p†‚.” p††‚S­Ë×” p†‚3” p†‡9” p†” p†‚:” p†,” p†‚>” p†+” p†‚F” p†**¢” p†” p†‚M” p†)” p†‚S” p†(” p†” p†‚Y” p†€ ” p†‚_” p†” p„t‡(Ò†‚d” p†” p†‡” p†€(” p‡‘„Éds†‚k” p†d” p„É‹ý†€ ” p‹ò„É€Šâ¼€‹â¼Û€Ò€Õ¼Û€ñâ¼ÛÚÔ‡¤†‡” p†€ ” p‹¹„É€“â¼€”â¼ÛƒnÛÚÔ"††ƒ3‡€ÿË×” p†‡” pІ‡” p†‡” p†€ ” pŠ\„É€•Ò"††ƒ3‡€ÿË×” p†‡” pІ‡” p†‡” p†‡” p†€ ” pŠÖv‡³Ôî¤8j"‡8²Ô„"˧‘"íŠë†” p„p$„×xÓ„p„§Ò „ Êp"„ ÉÕ@þŠ –9X)`„*¬P†`˜” p–+4š” pš” p†‚£®Ë×xi!²Ÿ†‚“®Ë×ɰ¡Õ†” p‚}ï ††‚S®Ë×” p†” p†‚îË×{h!! ¢î¤i!‡²Ô<›b!” pÒ†b” pŠš‚‹” pš” p!튼†” pŠš‚˜” pš” p–Õš” pš” puÔn†” p‚¥ï ††‚S®Ë×” p†” pm`u `‚·¹ñ-†$” p†‚»” p†`” p†” pŠm%ÔÁŠš‚½” pš” p–4 š” pš” pu Õ,†” p‚Òï ††‚S®Ë×” p†” p`u †`” p$‹Ü‚âï ‹Õ†‚ç” p†%” p‹º†‚ì” p†%” p†‚÷” p†&” p‹‡†‚þ” p†%” p†‚‚” p†&” p‹T$Š$‚‚ï Š‚‚ï Š‚‚ï Š ‚‚ï ŠÖ‚"†‚‚(” p†%” p†‚‚-” p†&” p†‚‚2” p'Ô ‚‚7ï Š‚‚:ï ‹Ö$Š$‚‚=ï Š‚‚Bï Š‚‚Gï Š ‚‚Lï ŠÖ‚Q‚‚Wï %Š‚‚\ï Š‚‚_ï Š ‚‚bï ŠÖ‚d‚‚iï †&” p$Ò†‚‚m” p†'” pІ`Ë×x” p&¤ ¤ )¤ ¤ *+²Ô.(³Ô†” p¤ `u Š(í¤ †`(Ë×x” p*íŠËŠÖ‚r†” p$°ÕþŠš‚‚€” pš” p– X š” pš” pš‚‚” pš­” pš‚‚”” pš†‚S­Ë×” pš” pš‚‚ ” pš” pš‚‚¼” pš`” p ‹„†€ÿ˧kj"#²Ô†€†"€ÿ˧ï"íŠë‘Ša Š]ïŠY ŠUŠQ €0£iš`” p ƒ‚ÝÚÔ%! Œ ¢€0£iš`” p ƒ‚áÚÔ ! Œ ¢€0£ihš” p!ï‘ŠÖ‚å ƒƒ+ÚÕêþš” p–m )`„*¬P­`˜” p–+· …ƒ2h‚ƒ3ï`Ë§Ó ‚ƒ6ƒ9ï­‚ƒ<” p­…ƒ” p­” p–‰"” p"” p‚ƒO"‚ƒn” p"” p"€ €<” p"‚ƒu” p"” p¦­²Õ`"­­¢” p"€:” p†‚“­Ë×ÉÚÕ"€ ” p"†‚S­Ë×” p"€ ” p†‚3­Ë×h" x” p" y” p†‚³­Ë×h‚ƒ  ÉŠH‚ƒ€ŠB‚ƒ…Š9‚ƒŠŠ0‚ƒŠ'‚ƒ”Š‚ƒ™Š‚ƒžŠ ‚ƒ£ŠÖƒ¨‚ƒ² ÉŠu‚ƒ´Šo‚ƒ¹Šf‚ƒ¾Š]‚ƒÃŠT‚ƒÈŠK‚ƒÍŠB‚ƒÒŠ9‚ƒ×Š0‚ƒÜŠ'‚ƒáŠ‚ƒæŠ‚ƒëŠ ‚ƒðŠÖƒõ" É” p†‚“­Ë×h‚„ ÉŠ-‚„Š'‚„ Š‚„Š‚„Š ‚„ŠÖ„‚„%  ÉÔ ‚„&Š‚„' ÉÔ ‚„(Š‚„)‚„* ÉÚÔ1†‚íË×i"!x” p"!y” p"!z” p"!{” pŠ$"€'” p"†‚íË×” p"€'” pŠ"€ €.” p"‚„+” p"” p­í‹–ý"‚„/” p"†ƒ ˜” p"” p– †ƒ3€ p†ƒ3€ÿËׂ„2ŭ3u¦†‚“­Ë×ÉÚÔg†‚S­Ë×ÅŠg†‚íË×Åi!3u³Õh ²Õކ‚à Ë×g¹Ô!†ƒ3†‚³ Ë×É€ÿË׆‚S Ë×ņ‚S Ë×g¹ÔH !¢ïËu³Ô9uÔbu †ƒ3&€ÿË×bÅb‚„6¹Ô冃3†‚³ Ë×É€ÿË×gÅ í‹kÿ!¢i‹Rÿ!î­Ó­ïˆ‚3u¦­ïËu¦– Cš” pš‚„:” pš†” p0‹Ih ï²ÔF ïËu³Ô5†€†u²ñ+eti†€†€ÿ˧nk#&²Ô†€†#€ÿ˧#íŠë 튲‘‹øh€ ¥š” p 3u³Ô6† ¢h…ƒÓ"š‚„W” pš†” pš” pХХ0€ Ó²¥‹–0€0£hš†” pš” p0ƒ„oÚÔ Œ0¢€0£h ïËuj"³Ô †€†ulŠl$²ñ eti Š8š” pš‚„s” pš ” pš‚„|” pš” p‘¥ŠÖ„0ƒ„¸ÚÕ…þ–µ††‚2” ‘š‚„À” p†,‚€!èñš‚„Í” pš†,˜” pš‚„Ó” pš†U€P” pš” p†U‚„ÕèÔ†U†,ëP†U˜u°†U‚€!è Ôˆ†,†UëP†U‚€!èŸÕš‚„Ö” p†‚€!èñš‚„â” pš†˜” pš‚„è” pš†U€P” pš” p†U‚„ê蟆‚€!è Ô+††UëP†U‚€!èÔ†U‚„ëëP†” ††U˜” p°Õeÿ†U‚„ðè†U‚„õè ¥†U‚€!èñ‘š” p†U‚€!èÕ¨þ†” †” –,IV_MGBLS,IV_MPVTS,IV_MDCD1,IV_MDCD2,IV_MDCD330123456789ABCDEF%UCSD Code File Decoder IV.0 [3R5.2]press spacebar to continue...: Constant pool for segment Block::% Block offset: 0 Seg offset: 0Block:: Block offset: Seg offset:no segment in dictionary entryy$procedure dictionary pointer screwupp > number of procs in segmentIO error on fileeProcedure in assembly languageezÿ’ÿªÿÍÿåÿsegment procedure0 not available in P-Code form for disassembly....segment procedure0 not available in P-Code form for disassembly.... Disassembling segment procedure  .... Segment: Procedure::Block:: Block offset: Seg offset: Data size:: Exit IC:: OffsetHex codee exit code::): ÿÿÿÿGÿ¤ÿInterface text for segment trouble reading interfaceno interface text to list#Segment reference list for segment : )no segment reference list in this segmentLinker information for segment  EOFMARKK CONSTDEF PUBLDEF baseoffset== pubdataseg== GLOBDEF homeproc== icoffset== EXTPROCC EXTFUNCC SEPPROCC SEPFUNCC Ùÿâÿëÿôÿ srcproc= nparams= koolbit=TRUEEFALSE GLOBREFF PUBLREFF PRIVREFF CONSTREFÙÿâÿëÿôÿ format==WORDDBYTEEBIGâÿëÿôÿ nrefs= nwords== !þ*ÿ*ÿ*ÿ*ÿyþFþ+þ¬þ¬þ¬þ¬þno linker information to list There are procedures in segment 7Procedure Guide: A(ll), #(of procedure), L(inker info),@ C(onstant pool), S(egment references), I(nterface text), Q(uit))ÿÿ0s¯ÿ¯ÿ¯ÿ¯ÿ¯ÿ¯ÿ¯ÿ¯ÿ¯ÿ¯ÿyÿ£ÿŸÿ«ÿ§ÿyÿ£ÿŸÿ«ÿ§ÿSEX: LEASTMOSTT$ significant byte first NEXT PAGE:: to quitt , "$" for ]: $Listing file [CONSOLE:: , "$" for ]: $CONSOLE::CONSOLE::#1:Ç9.^m®£œd[æcE, $ FILEOPS EXTRAIO PASCALIO GOTOXY EXTRAHEAIVMDCD3 IVMDCD2 IVMDCD1 IVMGBLS  IVMGBLS xiQ%††-árs†r– *** FILEOPS  -IVMPVTS )xiQ6"i`aÉ€ÿËÊ`aÉ€ÿËÊ k–Pá¥á¥¥ ᥥ s– *** IVMGBLS  yIVMDCD1 óxiQ–­‹t­‚€Å‹l­‚€Å‹a­‚€ Å‹V­‚€Å‹K­‚€Å‹@­‚€Å‹5­‚€Å‹*­‚€Å‹­‚€"Å‹­‚€&Å‹ ­‚€*Å‹þ­‚€.ŋ󭂀2ŋ譂€6ŋݭ‚€:ŋҭ‚€>ŋǭ‚€BÅ‹¼­‚€FÅ‹±­‚€JÅ‹¦­‚€NÅ‹›­‚€RÅ‹­‚€VÅ‹…­‚€ZÅŠ{­‚€^ÅŠq­‚€bÅŠg­‚€fÅŠ]­‚€jÅŠS­‚€nÅŠI­‚€rÅŠ?­‚€vÅŠ5­‚€zÅŠ+­‚€~ÅŠ!­‚€‚ÅŠ­‚€†ÅŠ ­‚€ŠÅŠրޖ#­‹­‚€³Å‹w­‚€·Å‹l­‚€»Å‹a­‚€¿Å‹V­‚€ÃÅ‹K­‚€ÇÅ‹@­‚€ËÅ‹5­‚€ÏÅ‹*­‚€ÓÅ‹­‚€×Å‹­‚€ÛÅ‹ ­‚€ßÅ‹þ­‚€ãŋ󭂀çŋ譂€ëŋݭ‚€ïŋҭ‚€óŋǭ‚€÷Å‹¼­‚€ûÅ‹±­‚€ÿÅ‹¦­‚Å‹›­‚Å‹­‚ Å‹…­‚ÅŠ{­‚ÅŠq­‚ÅŠg­‚ÅŠ]­‚ÅŠS­‚#ÅŠI­‚'ÅŠ?­‚+ÅŠ5­‚/ÅŠ+­‚3ÅŠ!­‚7ÅŠ­‚;ÅŠ ­‚?ÅŠÖC–5­‹­‚iÅ‹û­‚mÅ‹ð­‚qŋ孂uŋڭ‚yŋϭ‚}ŋĭ‚Å‹¹­‚…Å‹®­‚‰Å‹£­‚Å‹˜­‚‘Å‹­‚•Å‹‚­‚™Å‹w­‚Å‹l­‚¡Å‹a­‚¥Å‹V­‚©Å‹K­‚­Å‹@­‚±Å‹5­‚µÅ‹*­‚¹Å‹­‚½Å‹­‚ÁÅ‹ ­‚ÅÅ‹þ­‚ÉÅ‹ó­‚Íŋ譂Ñŋݭ‚Õŋҭ‚Ùŋǭ‚ÝÅ‹¼­‚áÅ‹±­‚åÅ‹¦­‚éÅ‹›­‚íÅ‹­‚ñÅ‹…­‚õÅŠ{­‚ùÅŠq­‚ýÅŠg­‚‚ÅŠ]­‚‚ÅŠS­‚‚ ÅŠI­‚‚ ÅŠ?­‚‚ÅŠ5­‚‚ÅŠ+­‚‚ÅŠ!­‚‚ÅŠ­‚‚!ÅŠ ­‚‚%ÅŠÖ‚)–Þ!€ªâ¼€¯â¼Û€÷€ÿ¼Ûƒ‚[ÛÚÔ ‚‚aÅŠ!€€³ñc!€ ³ñ ‚‚eÅŠR!€/²Ô ‚‚iÅŠC!€?²Ô ‚‚mÅŠ4!€g²Ô ‚‚qÅŠ%!€o²Ô ‚‚uÅŠ!€w²Ô ‚‚yÅŠ ‚‚}ÅŠ!€¢²ÔŠ !€Æ²ÔŠ–ä–LDCB LDCI LCO  LDC LLA LDO LAO LDL LDA LOD UJP UJPL MPI DVI STM MODI CPL CPG CPI CXL CXG CXI RPU CPF LDCN LSL LDE LAE NOP LPR BPT BNOT LOR LAND ADI €¢‰þ”þŸþªþµþÀþËþÖþáþìþ÷þÿ ÿÿ#ÿ.ÿ9ÿDÿOÿZÿeÿpÿ{ÿ…ÿÿ™ÿ£ÿ­ÿ·ÿÁÿËÿÕÿßÿéÿóÿSBI STL SRO STR LDB NATIVE NAT-INFOINVALID CAP CSP SLOD1 SLOD2 INVALID EQUI NEQI LEQI GEQI LEUSW GEUSW EQPWR LEPWR GEPWR EQBYTE LEBYTE GEBYTE SRS SWAP TRUNC ROUND ADR SBR MPR DVR STO MOV DUP2 £Æ~þ‰þ”þŸþªþµþÀþËþÖþáþìþ÷þÿ ÿÿ#ÿ.ÿ9ÿDÿOÿZÿeÿpÿ{ÿ…ÿÿ™ÿ£ÿ­ÿ·ÿÁÿËÿÕÿßÿéÿóÿADJ STB LDP STP CHK FLT EQREAL LEREAL GEREAL LDM SPR EFJ NFJ FJP FJPL XJP IXA IXP STE INN UNI INT DIF SIGNAL WAIT ABI NGI DUP1 ABR NGR LNOT IND INC EQSTR LESTR GESTR ASTR CSTR INCI DECI SCIP1 SCIP2 TJP LDCRL LDRL STRL CNTRL EXPRL Çöúýþþþ&þ1þ<þGþRþ]þhþsþ~þ‰þ”þŸþªþµþÀþËþÖþáþìþ÷þÿ ÿÿ#ÿ.ÿ9ÿDÿOÿZÿeÿpÿ{ÿ…ÿÿ™ÿ£ÿ­ÿ·ÿÁÿËÿÕÿßÿéÿóÿÿÿÿÿINVALID SLDC SLDL SLDO SLLA SSTL SCXG SIND ”Í ñIVMPVTS IVMGBLS  IIVMDCD2 ½xiQ£­hšÿ²ñ3šíÙ››-šupÓ Ê  ÊÙ pÙ›-šÿ˧€ÿËi æ ³ñ ç æ Ë›-šÿ˧€ÿËÈ ç æ íÄšíÙšíÙ–Ñïh €²ña €¡€ÿËÊaï€ÿËÊ!jŠ j–ð`ï€ÿËÊ`ï€ÿËÊ i–1'pš °Õ-'m%ç šÄ%çšš¢Ä%€ÿËÊ%É€ªâ¼€¯â¼Û€÷€ÿ¼Ûƒ€ÛÚÔ%Ê‹Ã%É€Œâ¼€â¼Û€â¼Û€—â¼Û€˜â¼Û€œ€£¼Û€§â¼Û€¨â¼Û€°€¸¼Û€¼€Ä¼Û€Æâ¼Û€È€Ï¼Û€Ñâ¼Û€Ú€å¼Û€ì€î¼Û€ó€ö¼Ûƒ€ÛÚÕ²%É€€³ŸÕŸ%Ê%É€ ³ñ %ç%ÉÄ‹„%É€/²Ô %ç%ɣĊo%É€?²Ô %ç%É€/£ÄŠY%É€g²Ô %ç%É€_£ÄŠC%É€o²Ô %ç%É€g£ÄŠ-%É€w²Ô%Ê%ç%É€o£Ä%çÄŠ %ç%É€x£ÄŠ%Ê‹¬%É‹¢%Ê%çÄ%É€Šâ¼€Ò€Ô¼Û€ñâ¼ÛÚÔ.%€²ñ%皣%¢ÄŠ%çš%¢Ä%~š ²ñ%~Ù ‹R%Ê%çÄ%É€ÖÒ@d‘%¢i!d‘j!íd‘k!¢!¢#¢"£nh &²Ô d‘k#š ²ñ#Ù íŠä‹û%Ê%çÄ%çÄ‹å%Ê%çÄ%çÄ‹Ï%Ê%çÄ%çÄ%çÄ‹²%Ê%çÄ%çÄ%çÄ‹•%Ê%çÄ%É€‹â¼€Õâ¼ÛÚÔ%çš%¢Ä%~š ²ñ%~Ù Š`%Ê%çÄ%çÄ%çÄŠD%Êh ²ñ1%çÄ ²ñ%%çÄ ²ñ%çÄ%æ ¢³ñ %çÄŠîŠÖ€% %É€–°š š³Ÿ¡šš ³ Ê% ÉÔÙ –Ê#Äš³Õ‡›ƒšË×ÉÚÔs›ƒ-šË×i!y$²Ÿ$³¡Ô[!x$¢h$â½Ël#Ä šÓ››- upÒ ÙŠ#Ä"š ¡Ô›-$€ÿË×xtmŠ ›-$€ÿË×xm–q$Äš³Õ–›ƒšË×ÉÚÕ›ƒ-šË×k#yŒ%²Ÿ%³¡Ôg%i%jbÉm#x%¢h%â½Ëm$Ä šÓ››- upÒ ÙŠ$Ä›-%€ÿË×xj!Ô b˧€ÿËnŠ b˧€ÿËn–x–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ò[þkÿ®þNÿ®þ®þ®þ®þÿÿ[þkÿ[þ[þ[þÿÿÿ ÿ®þ[þÿÿ®þ®þÿ¼ÿ®þ[þ®þ®þ1ÿ1ÿ1ÿÿ[þ[þ[þ[þ[þkÿ®þ®þÿÿ®þ®þÿÿÿÿ[þ[þ[þ®þkT gz»EXTRAIO IVMPVTS IVMDCD1 IVMGBLS  IIVMDCD3 2xiQâb›-Åi!²Ôb!€ÿË×b!€ÿË×xuÄ!íŠá€`i!€²Ôb!€ÿË×b!€ÿË×xuÄ!íŠàb­p­¤‡ç€Ð‡æ€ÐuÄi!²ÔX‡ç`!Ë×ÉÚÔA‡ç€!Ëפ‡‡xućç‡yućç‡zućç‡{uÄ!튢–Rák"h› Ë×x³ÔS› Ë×xšÓ››-› Ë×xvÓŠ)› Ë×xÙ›-!p!æ€ÿÓ "â½Ëk–ªájáÙÙ Ù š!Ó!ïË›ƒ-‘ÙŠ !â½ËÙš³Ô!Ùšj`t°Ù –ZV„.„W¬P›w›„.˜wpÓ›jb„.˜€P” b‚€€U” b˜w›€>€ÿppÒGih››ƒ- vÒ&›!Ë× Äš„,Ó šƒýuhŠšƒýh!íiŠh °!²Ÿ Ô½p¤YáÙáÙÙ áÙ–X¼­ "€ÿ˧h­ "€ÿË­ !€ÿ˧€ÿËÈ­ !€ÿË €ÿËȈ "€ÿË×xhˆ "€ÿË׈ !€ÿË×xĈ !€ÿË× Ä–%%i!!¢k#íj#$²ÔU"$²Ô!ˆ #€ÿË×xˆ "€ÿË×x²Ô"hŠ#hŠ#hˆ €ÿË×xˆ !€ÿË×x²Ô$íkŠ !ï i!!¢k#íjЦ–¡ ¤ š³Õi›ƒšË×ÉÚÕTgtm%gth'ÕBi„ p ¤ l$‡ ²Ô/%$£gtj"²ñ!íi‡ !€ÿË$€ÿËÈ„ !€ÿË×"îÄ$íŠÉ!l$³Ô$€ÿË!€ÿË$îŠê!l$³Ô$ €ÿË$î€ÿË$îŠå!î¤ l$‡ ²Ô#›‚-‡ $€ÿ˧€ÿËׄ $í€ÿË×xÄ$íŠÕ›‚-‡ !€ÿ˧€ÿË×% £Ä!lgtk$³#„ $€ÿË×x³Ÿ¡Ô$îlŠè$²ñ›‚-‡ $€ÿ˧€ÿË×#Ä$!³ñ›‚-€ÿËׄ $í€ÿË×xÄŠ›‚-€ÿË×% £ÄÙ ‡ €ÿË!€ÿËÈ ¤ – Κ ñ›‚-pa‘h›‚-‡€‚€ÿË×x¤€ƒ–€‚è& p¤ š³Õ›ƒšË×ÉÚÕédtk#dth$ÕÒ'²Ÿ' ²¡ÕÂ&m#'£dtj"²Ÿ"#³Ÿ¡Õ¦"íÙ›ƒ-šË×xš¢Ùšš¢Ùšÿ¡ÙÙ%çšÄ%çšÄ%ç"íÄ%"îdtÄ%x""¢µñ%""¢Ä%xš£Ù '€ÿË‘Œš£Ù %ç"dtÄ››-švpÒ ¤ Ù Š¤ Ф Ф Ф Ф –Ojš³ÔX›ƒšË×ÉÚÔD›ƒ-šË×i!yh ¢ÿ¡ÙÙ !x ¢Ù››-švpÒjÙ –ò" € p"çÄš °Õˆ›-šÿË" pš ¢Ùšÿ²ñIšíÙ››-švpÓÙ ŠDš£Ùš²ñ›-" š£špŠÙ"i!|h!ç`˧Ä"‚€¹ÔÙ –†jš³Õ„›ƒšË×ÉÔs›ƒ-šË×h›ƒ½šË×i›ƒšË×ÉÚÔ!yÙŠÙ x yš¢€ÿ¢¢ÙÙÙ ››-švpÒ jÙ Ù–["pš °ÕÁšÿ²ñ'šíÙ››-švpÓÙ ‹•Ù›-šÿË"pš¢Ù"iš Ôh ²Ô! Ë×! Ë×xuÄ íŠãš²ñ(h ²Ô! Ë×! Ë×xuÄ íŠãš£ÙŠ$!|ÚÔ!|Ò!~ÙŠ!~îÙŠ !|ÒÙ –b–.CODE `/ Å{*öjS•«t×0STRINGOP FILEOPS EXTRAIO IVMPVTS IVMDCD2 IVMDCD1 IVMGBLS  ¬ SCREENDI €€€€€€€€€€€€€€€€—÷MŽù££Ö ˜LÈ÷ÑŽùVG8  .þ d9Ü÷?¢ú tþ \N« SCREENDI1Œr†/€%pš‚€s šsš‚€s šsš‚€/s š‚€Ks šsšs†€¯r†€éÉ€ÿË¥†€éÉ€ÿË¥†€êÉ¥–Κ‚€Qs š†€Ps šs †k†˜tp°†§° ÔÏ¥†§±¥–Qr šsš‚€ms šs2Ôc†ks†k‚€€s †k4s†k‚€Œs †ks†ktš‚€—s š†˜s š‚€žs š4sš‚€¦s šs–€`„€¬ÿ2Ô 4í¥†k4s†k€ u†k`˜s †ks–€‚«*a„+¬Pš`s ƒ€«ÚÔ𠃀³ÚÔa˜‘–,/iˆ#xì§h ƒ€ºÚÔ>! Œ ¢€0£i!€ÿ²ñ(š‚€¾s š‚€Ñs š#xsšsp##xíÄŠ "Óš‚€Ös š ušsp "ÒŒ##xíÄ!l–…e„€†¬ÿle§k$#²ÔV#$£í€|e$ìp$¢j"#²ñe$ì#$£íp#ílŠ-e$ì"$£pe"ì§€|Ò"íld€ id€|h! rŠ"ílŠ¥–€‡»š‚€ís šs‚ ‘–ò0­1°£h¦­ ³Ô­­rš€A­â½Ë¢u­î¦ŠÛ–gr r0ji!"²Ôš€A!â½Ë¢u!íiŠæ1jh "³Ô îhŠô‚#‘‚?‘‚S‘h h 1rš€ 0u1r‚i‘‚|‘–|­­rš€*u–Yr ‚‘‚®‘r 1kj"#²Ô šs"íjŠñ0£kj"#²Ô š€ u"íjŠîš€>u0î1r‚Å‘‚ã‘‚í‘r rkh #²Ô šs íhŠñ‚‚ ‘ h ki!#²Ô !íiŠô i kh #²Ô íhŠôh ki!#²Ô !íiŠôi kh #²Ô íhŠô‚‚‘‚‚4‘ –‡r ‚‚G‘‚‚a‘‚‚{‘r ‚‚‘‚‚¦‘–Ðd„<„e¬Pr ‡grš†/0ís ‡h‡gr‡gr ‚‚Á‘h`‚‚×€%v`„<˜€uv`˜‘–h-€- ‚‚ê ‚‚î0‚‚òr r1îjh "²Ôš†/0ís ír íhŠå r r ‚‚ú‘‚ƒ‘–4–‘r rih !²Ô š€*u íhŠîš€>u0ih !²Ô š€$u íhŠîrr‚ƒ3‘‚ƒQ‘‚ƒ\‘–êr r1jh "²Ôš†/0 1°£ís 1³ñ ír íhŠÜ r r ‚ƒr‘‚ƒ‘‚ƒ­‘‚ƒÁ‘–r ‚ƒÔ‘r ‚ƒò‘–ar ‚„‘rr‚„‘‚„3‘rr‚„J‘rr ‚„_‘rr‚„s‘‚„ˆ‘rr‚„œ‘–r š†/0ís ‚„°‘1rš u‚„Ê‘–<„€„€-pc€+pj"0²ÕŠr "h" ¢²"0²¡Ô>" £ír"²ñ šc"s "í0²Ôš€<u0"£i!²ñ š„€„!s "íjŠ·r "¤i!‡²Ôšuš!€ ¢ušs!íiŠÞ‚„ã‘‚„þ‘‹pÿ–d„<„g¬Pr kc‚…vc„<˜€avc‚…"€hvc˜‘šˆs šsÔ ¦ˆrj"‡f°‡f ±‡f °­‡e°¡ ¡i‡fÒ"°"° i„<‚…&èÔ ­ °"° i!ñO‚…+‘‚…;‘šˆs ­ƒ…SÚÔí­ƒ…[Úh Ô!kc‚…bvc„<˜€_vc‚…j€ovc˜‘ ! Õ5ÿ–hˆ‚…s‚…x‚…~‚…„ ‚…Š‚…”‚…™‚…›‚… ‚…¤ ‚…¨ ‚…ª –b ©„€„€ª¬P‚…¯‘­ƒ…ÁÚÔ š­uŠš‚…És š­sš€)uh`‚…Ìv`„€˜€Qv`˜‘‚…Í‘šˆs ­ƒ…äÚÔí­ƒ…ìÚÔ6„€‚…óëP„€ì­Ȉh`ˆ˜€ÿv`„€˜€ÿv`ëÿ­í€ÿ˦rrrr r r­¢­£r–€«× r ‚…ô‘‚†‘&€ Ò‚†‘&%lj"$²Ô š"u"íjŠïr&jšas ar Ó ‚†3Š"!Òš"u"í€ÿËjŠ‚†J"%²ñÊ–( `‚†Jëÿ€ €O3ñ€P€`€{€~Š€P€~`§²ñ¤€„€‚†K€%v„€`˜€ÿv„€˜‘–Z †k†‚—át‘‘‘ ‘‘ ‘‘‘‘‘‘‘‘‘‘‘†kt–*Screen Control Diagnostic Program IV.0.BB-Copyright (c) 1981, SofTech Microsystems Inc.7Answer all verification questions with a 'Y' ('y') or 'N' ('n')..7What file should errors be logged in? ( for none) $Done with Screen Control Diagnosticss***** End Diagnostic;  errors encountered.. Error File """ closed with  errors..@@@@ÿ%integer overflow in message procedure . index=,illegal character in message procedure. ch==9* Is this sentence surrounded by two asterisks (stars). *0test_basic: not all characters being written outt6|0 0|Are all of the below lines the same (except for aa'|0 1|missing char in the lower right) ?*exhaustive_gotoxy_check: first pass not okk$Are all of the above lines the same??'exhaustive_gotoxy_check: top line error;|0 0|Does this message also start at the upper-left corner?,test_gotoxy: sc_goto_xy(0,0) did not go homee:*|0 0|Is there a '>' immed. followed by a '*' in the lowerr|0 1|right corner??:test_gotoxy: sc_goto_xy(screenwidth-1,screenheight) not okk-------->|9 9||@|5 0|Does the box have 10 stars per side and start at the arrow??$test_gotoxy: box not correctly drawnn3|0 10|Is the screen blank (except for this sentence3|0 11|and (maybe) the lower-right hand character) ?#test_clr_screen: screen not cleared1Does this message start at the upper-left corner?4test_clr_screen: cursor not left at (0,0) afterwardss*|0 0|Is this the only thing on the screen??%test_clr_line: didn't clear enough - (45,12)(0,10))(0,Screenwidth)>|0 0|Are there two blocks of "%"s (no gaps or missing chars) ??1test_clr_line: Clearing one line affected another;|0 0|Is the line below a series of stars immed. followed by a right-arrow ('>')?+test_erase_eol: sc_erase_to_eol didn't work9|0 0|Are there five full lines of '%'s followed by a line:|0 1| with just five '%'s (and maybe a stray character inn'|0 2| the extreme lower-right corner)?$test_etoeos: sc_eras_eos didn't workk;|0 0|Is the cursor at the upper-left corner (over the 'I')? test_home: cursor didn't go homee4|15 15|*|0 0|Is the cursor to the right of the star??)test_single_vectors: sc_right didn't work,|0 0|Is the cursor to the left of the star??(test_single_vectors: sc_left didn't workk'|0 0|Is the cursor just below the star?(test_single_vectors: sc_down didn't workk'|0 0|Is the cursor just above the star?&test_single_vectors: sc_up didn't workk3|0 1|Is this the top (and only) line of the screen?1test_scroll: sc_down at bottom line didn't scroll4|0 0|Are all the lines below a '<' followed by '-'s??4test_DLE_expansion: expansion not happening properlyyPlease press the  key. line feed|0 5|Key typed is not correct...|0 6|Do you wish to try typing this key again??@@@@test_keyboard:  key not correcttup-arroww down-arroww left-arroww right-arroweditor accept (etx)line dellDC1 backspaceescapeereturnntab line feed"|4 7|Bad character. You typed a ''ÿÿÿÿÿÿÿÿÿÿÿchr(('-|4 9|Do you wish to try this character again?@@@@ 8Please type in the following characters|2 1|in the EXACTT order shown:|4 4||.|2 2|Note: The first character is a space|4 4||,,|4 8|which is interpreted as a special key..%check_normal_keys: Can't type these: F´î¡ J3÷Ëœ™Fj/¶`{ÀQØëiH STRINGOPEXTRAIO FILEOPS PASCALIOSCREENOP  ååååååååååååååååååååååååååååååååååååååååundefined labelååååååååååååååååååååååååååoperand out of rangeåååååååååååååååååååååmust have procedure nameååååååååååååååååånumber of parameters expectedååååååååååååextra symbols on source linedååååååååååååinput line over 80 charactersåååååååååååå(unmatched conditional assembly directiveå&must be declared in .ASECT before usedveåidentifier previously declaredore usedveåimproper formatiously declaredore usedveåillegal character in textlaredore usedveå&must .EQU before use if not to a labelveåmacro identifier expectedot to a labelveåcode file too largepectedot to a labelveåbackwards .ORG not allowedt to a labelveåidentifier expectedallowedt to a labelveåconstant expectededallowedt to a labelveåinvalid structureedallowedt to a labelveåextra special symbolllowedt to a labelveåbranch too farsymbolllowedt to a labelveå$LC-relative to externals not allowedelveåillegal macro parameter indexallowedelveåillegal macro parameter indexallowedelveåoperand not absoluteter indexallowedelveåillegal use of special symbolsllowedelveåill-formed expressionl symbolsllowedelveånot enough operandsonl symbolsllowedelveå&LC-relative to absolutes unrelocatableveåconstant overflowsolutes unrelocatableveåillegal decimal constant unrelocatableveåillegal octal constantnt unrelocatableveåillegal binary constantt unrelocatableveåinvalid key wordonstantt unrelocatableveå$unmatched macro definition directiveleveåinclude files may not be nestedctiveleveåunexpected end of inpute nestedctiveleveå.INCLUDE not allowed in macrosdctiveleveålabel expectedllowed in macrosdctiveleveåexpected local label in macrosdctiveleveålocal label stack overflowcrosdctiveleveå'string constants must be on single lineeå%string constant exceeds 80 charactersneeå!cannot handle this relocate counttersneeåno local labels in .ASECTte counttersneeåexpected key wordn .ASECTte counttersneeåstring expectedrdn .ASECTte counttersneeå#I/O - bad block, parity error (CRC)rsneeåI/O - illegal unit numberrror (CRC)rsneeåI/O - illegal operation on unitCRC)rsneeåI/O - undefined hardware errortCRC)rsneeåI/O - unit no longer on-lineortCRC)rsneeå!I/O - file no longer in directoryC)rsneeåI/O - illegal file name directoryC)rsneeåI/O - no room on diskme directoryC)rsneeåI/O - no such unit on-linerectoryC)rsneeåI/O - no such file on volumectoryC)rsneeåI/O - duplicate filen volumectoryC)rsneeå!I/O - attempted open of open fileC)rsneeå%I/O - attempted access of closed fileneeå#I/O - bad format in real or integerleneeåI/O - ring buffer overflowr integerleneeå#I/O - write to write-protected diskleneeåI/O - illegal block numbercted diskleneeåI/O - illegal buffer addressed diskleneeå$nested macro definitions not allowedeneeå`=' or `<>` expectedions not allowedeneeå"may not equate to undefined labelsedeneeå%.ABSOLUTE must appear before 1st procneeå.PROC or .FUNC expectedefore 1st procneeåtoo many proceduresctedefore 1st procneeå#only absolute expressions in .ASECTocneeåmust be label expressions in .ASECTocneeåno operands allowed in .ASECT.ASECTocneeåoffset not word-aligned.ASECT.ASECTocneeåLC not word-alignedgned.ASECT.ASECTocneeåunrecognizable address modeCT.ASECTocneeåaddress register expecteddeCT.ASECTocneeåclose paren ')' expectedddeCT.ASECTocneeådisplacement out of rangedeCT.ASECTocneeåindex register expectedgedeCT.ASECTocneeåillegal length qualifieredeCT.ASECTocneeåillegal source address modeCT.ASECTocneeå illegal destination address modeECTocneeåcomma ',' expectedn address modeECTocneeålength qualifier requiredss modeECTocneeålength qualifier not allowedmodeECTocneeådata register expectedllowedmodeECTocneeålabel expectedexpectedllowedmodeECTocneeåillegal register listdllowedmodeECTocneeåimmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå mmediate operand expectededmodeECTocneeå!“!SR CCR SP UNLK XN LINK PNTRAP @NSWAP @HEXT HMULU ÀÀMULS ÀÁDIVU À€DIVS ÀCHK €AMOVEQ pMOVEP MOVEM €HRTR wNTRAPV vNRTS uNRTE sNSTOP rNNOP qNRESET pNEXG ÁDBVS ÈYDBVC ÈXDBT ÈPDBPL ÈZDBNE ÈVDBMI È[DBLT È]DBLS ÈSDBLE È_DBHI ÈRDBGT È^DBGE È\DBF ÈQDBEQ ÈWDBCS ÈUDBCC ÈTDBRA ÈQCMPM ±BTST BSET À BCLR € BCHG @ LSL á LSR à ROXL á ROXR à ROL á ROR à ASL á ASR à SBCD ABCD Á SUBX ‘ ADDX Ñ SUBQ Q ADDQ P SUBA À MOVEA @ LEA ÀACMPA À° ADDA ÀÐ SUBI ORI EORI ADDI CMPI ANDI BSR aBRA `BVS iBVC hBPL jBNE fBMI kBLT mBLS cBLE oBHI bBGT nBGE lBEQ  gBCS eBCC dSVS ÀYSVC ÀXST ÀPSPL ÀZSNE ÀVSMI À[SLT À]SLS ÀSSLE À_SHI ÀRSGT À^SGE À\SF ÀQSEQ ÀWSCS ÀUSCC ÀTJMP ÀNJSR €NTAS ÀJTST JPEA @HNBCD HNEGX @NOT FNEG DCLR BCMP °EOR ±OR €AND ÀSUB ADD ÐMOVE A1 A0 A2 A3 A4 A5 A6 A7 USP D0 D1 D2 D3 D4 D5 D6 D7 €CUPUTIL INIT €€€€€€€€€€€€€€€€5ACUPUTIL ci`CCopyr 1978,79 Regents, UC; Copyr 1980,81,82,83 SofTech MicrosystemsÚ†-ì8–8vINIT ci`oo¦­'²Ô&a­î׈­î×xˆ­¢î×xqÄ­í¦ŠÔ`aÄn o¦­'²Ô& ­§¢n­í¦Šë&¤ –õ¤`áÄ x¤j"‡²ÕH ç"î×xzk#ç‚€¹Õ+¤#y¤„#x-”#y„î×xŒ¢¤„#x-”#y„î×xŒ¢‡Œ£¤d#x-”dî×xŒ£¤#y‡¢¤d#x-”„î×xÓ/ ¤j"‡²Ô d"î×q"íjŠî¤j"‡²Ô „"î×q"íjŠídî×x‡±dî×x° dî×xdî×xá± d î×xjiá± Ô†€ï‚€ëP†×ÄŠSdî×xÓ†€ï‚€ëP†×ÄŠ5†×dî×x„î×xqĆ×xÒ †€ï‚€4ëPŠ †€ï‚€KëP"íj‹±þ.ñš” š‚€a” š” p–!¥e…e¢¥d…dí¥c…cí¥b…bí¥a…aí¥`šî¥_–CUPUTIL ,Generic Liaison Monitor Installation Utilityy,Generic Liaison Monitor Installation Utilityy,Generic Liaison Monitor Installation Utilityy+Custom Liaison Monitor Installation UtilityInvalid program.. :ýCUPUTIL ; ci`&  § §ÈÈ–V)`„*¬P …_rš” š‚€” š`˜” t–+61¤¤‡˜Ó#‡x˜±‡‡í±¡Ô‡x¤‡í¤ŠÝ‡˜±‡‡í°¡Ô|‡í¤‡ç¤‡‡‡×Ňç‡ç ‡×Ňç‡ç`‡×Ňç‡çp‡×xćç‡瀀‡×Å‡ç ‡瀇×ÅŠ‡ç†€êŇçćçÊ–9(íhj8³Ô 8í ³ŸjŠj"Ôs0˜Ò †” 0kŠ0k#x˜Ó#xkŠö#” #xk#˜Ä8í¢¥ #l$çm$çpni!&²Ô%ç`!×Ê%ç !׆€êÅ!íiŠà$çÄ$ç€Ù‚€ëM8í ³Õnÿ0k l¥7$²Ô #xk7í¥Šò(í¤ #l'm$ç(×%Å$ç!(×%çÅ$ça(×%çÅ$çq(×%Ä$ç€(×%çÅ$瀑(×%ç Å– ä`‡Å¤¤‡‡²Ôy`‡×¤‡‘‡ç‘„a‡×‘„a‡×ɤ„q‡×‘„€‡×‘‡ÚÔ)¤¤‡‡²Ô„€‘‡×‡×‘‡í¤Šß‡í¤‹~ÿ„‘„€Ñ‘‡`Å–ú)`„*¬P`˜‘p–+ykj” ô³ñ‚€ `” 1˜Ò ¥Š! Ä i ˜Ä†5 ç"” Ó‚€ 9í¢¥ æ± æ±¡Ô‚€" æÓ ç‘ æ€Ñj"Òk–»0ji"˜Ó3"x˜Ó2h2í¥Šh"ç€Ñ Ć "ç!” Ó‚€)‘ i"xjŠÉ–ø1˜Ó1xh†”  ¥Šì0˜Ó0xh†”  ¥Šìᥠᥠ˜¥˜¥– ᥠᥠ˜¥˜¥–”j¦­"²Ô*­‚,­î׈‚­î×xˆ‚­¢î×x‘Ä­í¦ŠÐ­‚+ˆ‚î×xˆ‚î×x‘Ä`­‚,Äij¦­"²Ô! ­§¢i­í¦Šë`­‚+Ä! §¢ §¢i!k–¤ ¦‚- p–Éiˆ‚ î×xh`É€–°`É€–° Ôi–t*¤‚¤‚-‡‚,×ć‚,×ć‚,×ć‚,×ć‚+Äj"9²‡‚å¡Õb"„‚‘„‚#ɰ„‚‚€7¹ Õ@¤‚†5d‡‚” ÓŠ d„‚p„‚î×x±h Ô ¤‚*j"‡‚*²Ô„‚"îב"íjŠë„‚î×x‡‚¢îk†5d#” Ó Ôÿ¤‚*j"‡‚*²Ô d"ב"íjŠî„‚î×x¢¤‚d‡‚î×x¤‚d‡‚×x*j"‡‚*²Ô-‡‚d‡‚"£×x²Ÿd‡‚"£×x±¡Ô d‡‚"£×x¤‚"íjŠÌd‡‚d‡‚×x£×x¤‚‡‚‡‚³Ÿ‡‚‡‚£ °¡Õ-‡‚‡‚¢k‡‚‡‚€÷²ñ†5d#” ÓŠŠ†5d#” Ód‡‚ׄ‚p Ô ¤‚*j"‡‚*²Ô„‚"îב"íjŠë„‚î×x‡‚îŒÒ}„‚î×x±„‚î×x„‚î×xá°¡„‚ î×xjiá°¡„‚î×x°¡Ô>„‚î×x„‚î×x‘†×x°„‚î×x„‚î×x‘° Ô¤‚-ŠŠŠ/„‚ î×xjiá°„‚î×x„‚î×xá° ÔŠñŠ"íj‹“ý‡‚ñ–‚,L]„5„^¬Pa” ” m%³ñ}m%£k#³ñkŠ #€@³Ô€?k`#Œ” Ò ‚€;‘‹ƒ‡`#²ñ#jЇ`jn†5 "‡b” "Óog‚€A” g„5˜€X” g˜‘Š,† "‡a” "Óog‚€F” g„5˜€X” g˜‘Šn‡b"¢¤b‡a"¢¤a‡`"£¤`‡`°&å Ô€&¤ca” –b’¦hˆÉ°…^¡­±¡Ô(­ ¦­­­‚€K‘Ô­¦­­¢¦hŠh–¬)`„*¬P`˜‘ˆ” p–+ÏiŒŒíjh "²Ô !# §¢i íhŠð!o–) ­ ­ î×x¦­ £ih !³Ô#­ ×x­³Ÿ­ ×x±¡Ô ­ ×x¦ îhŠØ­­³Ÿ­±¡Ô­¦Š­¦–Å i­­ ¢°Õ‰ˆ ­­î×Ä­Ôh¦® ²Ô­ ®Ëב®í¦Šç­ Ë×x­îŒ°­ Ë×x­ Ë×xá°¡­ Ë×x––°¡ÔiŠ#­Ôh¦® ²Ô­ ®Ëב®í¦Šç–L „‡Å¤`” ‡¤‡ç ¤.y/y¢ ¢ín‡.y/y¢€ÿ¢Äg‡xŒ” Ò‚€T†5'‡x.x” ‡xÓ‚€c'€ÿË×xÓ%i¤¦­‡²Ô'­€ÿËב­í¦ŠæŠi„ ''×x×Ä!Ô+‘+x¤ „ ''×x,£×Ä!Ô",­‡³Ô*­€ÿËב­î¦Šæ*€ÿË×xk#%ÒjŠj%î¤"åÕ@.ç.y ¢íÄ„ '-€ÿË×Ä'-€ÿË×'- ¢€ÿË×.y- ¢í£/y¢Œp'€ÿË×'€ÿË×x ¢íÄ„ ''×x,í£×Ä*€ÿË×*€ÿË×.y'€ÿË×xî£,¢/y¢Œp,í¤ '€ÿË×xÓ'€ÿË×'€ÿË×x ¢íÄ'€ÿË×'€ÿË×x ¢Ä,­‡²Ôc*­€ÿË×xÓN*­€ÿË×*­€ÿË×x ¢Ä!Ô '*­×xîב'*­×xî×'*­×xî×x Œ¢Ä!Ô '*­×xîב­í¦Š–*,€ÿË×,Ä*€ÿË×%Ä„ '€ÿË×Ĥ¦­‡²Ô(­Ëׄ­£Ë×xÄ­í¦ŠÜ"ñ (Ë×-ŒÄ(ËׇÄ(Ë×––Ä(Ë×(Ä(Ë×(Ë×xáĤ¦­‡²Ô((­Ë×(­Ë×x)­£Ë×x‘Ä­í¦ŠÑ!Ôc ­‡²Ô(­Ëב­í¦Šç¤¦­‡²Ô'­€ÿËב­í¦Šæ,¤¦­‡²Ô*­€ÿËב­í¦Šæ‡.y/y¢€ÿ¢Ć '‡x‡” ‡xÓ‚€l`” ¤–² jˆÉÚÔ­hŠh­ ¢€ÿ¢¦­%Ôˆ­†…ˆïiŠ­­­‚€z‘i!Ô­¦­­¢¦­¦j–Í ˆÉÔ h‚€‘Šh–C$¤(‡'„‘2mÔ_ÔZÔU%¥"n!o ¤„ „Å„ „Å„„Å„„Ň&f‘0ç€×1ç€×Å1ç€Ù§Ó 0ç€Ù1ç€ÙëM¤(‡'¥ ‡&¥ –'›¤9¤¥5-²Ô@5`‘fɰb‚€‰¹ Ô55‘ñpŠŠfÉÓ 55‘ñp5í¥Š»¤–¬! å¡ !å¡ j–×`‚€ëk"!`ÇrÒkŠ "s"§Òk–ñ ƒ€ÚÔ € £iŠ i–Z,‡-§ih !²Ô‡- ì‡- ì§‘È íhŠé‚€•‡-˜” ‡-§£°‡-§³¡Ô ‡-‡-§£” ‡-ia‡-˜€P” a‚€˜€U” aëP–-£i…br š‚€›” †f€ÿ‘ñp†f‘† †f˜”ph Ó‚€¢‘ ÒÁi–ù¤¤9¤h /²Ô0 a‘gɰc‚€±¹ Ô¤gÉÔ ‚€µ‘€ p íhŠË.Ô¤Š‚€½‘–ƒ¤€‚…cr š‚€Å” †f€ÿ‘ñ€!p¥]†5”†5†f˜”pÓ†5ia†f˜€ÿ” a‚€Ì€ÿ” a˜”ph Ó‚€Ï‘ Ò–‘Ô‘ Ô ᥠ¤€‚¥]–€…`”š‚€Ö” š!Ë×” š” š‚€ä” š!Ë×” š” š‚€ò” š!Ë×” š” š‚” š ” š” –r ᥠ†€ê‚Å¥¥^‘ ᥠ‘!ÕÕae‘ n&°&° Õ¤‘Õ–ae‘"†Ë×aË×xĆË×aË×xĆË×aË×xÄ%¥‘ÔE†5”…dr ‘ …ar š‚” š2” š‚” † ”pÓ‚!‘Š †5”† ”І5”Š!&Š‚+‘Š‚:‘Š ‚H‘ŠÖR‘ –.a„€‚¬ÿ¤€„†5a˜”pÒ ‘ ‘Ô¤€„–€ƒ_Vˆme­€©˜” eëPšEÒ5ˆV§²ñ*ˆmeˆV˜€P” e‚W€Q” eˆ˜€¡” eëPŠŠ1ˆ-§²ñ(ˆmeˆ-˜€P” e‚X€Q” eˆ˜€¡” eëPˆ€ªˆ˜” ˆ€ª€ €!ˆ§£” ˆ˜&Õ^‘ Õ4`d‘ ¦حذյ­Ô€!­×”`Ë×xÒOˆ€ª‚Y” ˆ€ª`Ë×x” ˆ€ª`Ë×x” ˆ€ª`Ë×x” ˆ€ª$” ˆ€ª” ŠMˆ€ª‚[” ˆ€ª`Ë×x” ˆ€ª`Ë×x” ˆ€ª`Ë×x” ˆ€ª$” ˆ€ª” Šl­Ô€!­×”­ØŠXˆ€ª‚]” ˆ€ª” ŠEˆ€ª‚l” ˆ€ª” Š/ˆ€ª‚{” ˆ€ª” Šˆ€ª‚‹” ˆ€ª” ŠÖ•Š ­Ô€!­×”ˆ€ª‚›” ˆ€ª” ‘ Š ­Ô€!­×”ˆ€ª‚¤” ˆ€ª” †5”–V¾Ø„€ª„Öá”…cr š‚¬” †f€ÿ‘ñ€$p˜¤€©hb” †f˜„V„-c„€©vŠ(hŠ'‚º‘Š‚Á‘Š‚Ê‘Š ‚Ô‘ŠÖÛ ÕÛi…br š‚ã” †f€ÿ‘Ô „€ª†f˜”Šir „€ª‚ø”p°Õ“‡€©˜Ó}¤×„€ª‚ý” „€ª‚‚” „€ª” ‡€©˜ÓH%‡€©æ¤€©‡×í¤×!Ô2‡×…_îÒ*rÔr „€ª‚‚#” „€ª‚‚8” „€ª” ¤×в!ÔrÔr Š‚‚I‘„€ª”Š‚‚Q‘b” °Õ³þ„€ª”–Øh† †9ᔆ5†aá”w”r š†€ï˜” š” ¥†‚‚_€*” †‚‚u€1” †˜áá…eƒ‚yÇ€,r¥€îš…€î” …dr …_r …€îŠr Š‘#Š‘$Š pŠÖ‚°Õzÿ† ”†5”–ERROR: no mem room for seg dicttreading segment dictionaryy bad seg dicttwriting segment dictionaryyKERNEL No mem roomreading writing interface sectionNot enough memory to hold segReading prog seggWriting monitor information code segmenttmust link firstKERNEL þÿÿ.CODE.CODE Output file? Could not create output fileeKERNEL Must link firstInvalid program Input file? .code no such fileeEnter product id word 1 : Enter product id word 2 : Enter product id word 3 : Enter maximum users : Output file is blocks longgclosing output fileMonitor Information CorruptedNo rights to set this fileeError reading fileeâÿëÿôÿ:/ *  No monitor information founddCorrupted monitor informationNo rights to examine this fileeError reading filee¥ÿ»ÿÑÿçÿInvalid code fileNot a code fileEnter file(s) to display : No file foundInvalid file nameVolume is off linee No file foundÕÿÙÿâÿëÿôÿ(Enter output file ( for CONSOLE:) : CONSOLE::( FILE NAME *=Genericc! ID 1 ID 2 ID 3 MAX USERS( FILE NAME *=Genericc! ID 1 ID 2 ID 3 MAX USERSNo files founddUnable to open output filee*Monitor Utility: D(isplay, I(nsert, Q(uit [1R0.1] Qêÿòÿîÿöÿ  2 …DÿÔ¯{nX$Û¨—jXKå(é½TLgþà¿už- På &GOTOXY FILEOPS STRINGOP EXTRAHEA HEAPOPS PASCALIO EXTRAIO DIRINFO WILD COMMANDIOSUTIL SCREENOP ä¯Z yÒuREFERENCPROSESS INITIALITREEDUMPPROCTREEDOPASS €€€ € € €€€€€€€€€€€¦# REFERENCREFERENCREFERENCREFERENCREFERENCAiaCCopyr 1978,79 Regents, UC; Copyr 1980,81,82,83 SofTech Microsystems ¹þ \N®PROSESS dAia15xç 5yÄ5h z¥=îáÿË¥–mq …€Ó°†€Î†€Ø¹Ÿ¡Ô…€ÓÓq Šöð…€ÓÒq Š×…€ÓÓq Šö––q …€Ó°†€Î‚€¹¡ÔŠ …€ÓÓq Šö–jq …€ÓÓU…€ÓÒq …€ÓÓ ÿËqŠ…€Ó°…€…¡Ô ¥€‡p`s i!†€ÎÅ!ç…€ÒÇÄ!ç5xæ Ä5xç Äq Š¥…€ÓÓq Šö†€Î†€è¹†€Î†€ä¹ †€Î†€à¹ †€Î†€ô¹ †€Î†€ð¹ †€Î†€Ü¹ †€Î‚€¹ †€Î†€ì¹ †€Î‚€ ¹ Õ4ÿ–|h`†€Êp%!°o–¹ i!Ô5xæ hŠ˜h ˜Ó! x†€Ê¹Ôi j"ç"{­  Ä˜hŠ zhŠÛ!k–º h5kÕð=áÿËj"³ å¡Ô/#xæ l$˜± å¡Ô$†€Ê¹h ñ$}lŠç ñ "îáÿËj#zkŠÉ"³ñ5k Õž5xæ mgs'¤ (ç#xÄ($Ä(ç)Ä(ç˜Ä%˜Ò5xç 'ÄŠa%n†€Ê%xºŸi!ñ'çs'ç%Ä5xç 'ÄŠ>!Ô%n%zm%˜±i!Ô †€Ê%xºŸiŠä%˜Ò &çs&ç'ÄŠ'çs'ç&zÄ&ç'Ä#5°)å¡ÔÿËqŠÿËq– ð¦5xæ h ˜Ó ¦­x†€Ê¹¦­yh­ ˜° Ô㊘¦–K5kl#˜±$å¡Ôdb#yq$ñ#zkŠê$"ç ɱ¡Ô(9Ò" $ñ`s!˜Ó!ç ÄŠ5xç Ä "Ä ç˜ÄŠ9Òï–^q …€ÓÓq Šö–¤†€Î†€Ü¹ŸÕ¬†€Î†€Ü¹Ÿ†€Î†€ô¹Ÿ¡†€Î‚€¹Ÿ¡†€Î†€ð¹Ÿ¡†€Î†€ì¹Ÿ¡†€Î‚€¹Ÿ¡Ô†€Î†€à¹9°¡ÔïŠ ŠŸ†€Î†€Ü¹ñ<‘…€‡°†€Î†€Ø¹¡Ôq †€Î†€Ø¹Ôq p…€ÓÓ Š…€‡Ò ‹FÿÿË¥ q 9Ò 5xç 8;¢ÿËÄ:Óg…€ÓÓq Š[†€Î†€Ü¹†€Î‚€¹ Ô :íÿË¥ q Š7†€Î†€Ø¹Ô :îÿË¥ q І€Ê†€ÎÅq …€ÓÓ Š 9Òq Š•–¾q …€ÓÓ …€ÓÒïq Šî–:9ÒŠl…€ÓÓfq …€Ó°†€Î†€à¹¡Ôq …€ÓÓ ÿËqŠ%as!j"†€ÎÅ"ç…€ÒÇÄ"ç5xæ Ä5xç !Äq …€ÓÒ…€Ó±…€Ó±¡Ôq ŠïŠ”q –o†€Î†€è¹Ôa†€Î†€ä¹Ÿ†€Î†€à¹Ÿ¡†€Î†€ô¹Ÿ¡†€Î†€ð¹Ÿ¡†€Î‚€¹Ÿ¡†€Î†€ì¹Ÿ¡Ô9Òq …€ÓÒq …€ÓÒøq ŠŸ†€Î†€ä¹ÔU†€Î†€è¹Ÿ†€Î†€à¹Ÿ¡†€Î†€ô¹Ÿ¡†€Î†€ð¹Ÿ¡†€Î‚€¹Ÿ¡†€Î†€ì¹Ÿ¡Ô q …€ÓÒøq Š«†€Î†€à¹ÔU9ÒïŠM†€Î†€è¹Ÿ†€Î†€ä¹Ÿ¡†€Î†€ô¹Ÿ¡†€Î†€ð¹Ÿ¡†€Î‚€"¹Ÿ¡†€Î†€ì¹Ÿ¡Ôq г–²†€Î†€è¹Ÿ†€Î†€ä¹Ÿ¡†€Î†€à¹Ÿ¡†€Î†€ô¹Ÿ¡†€Î†€ð¹Ÿ¡†€Î‚€&¹Ÿ¡†€Î†€ì¹Ÿ¡Ô3…€…Ô¥€‡Š¥€‡q …€Ó±…€Ó±¡ÔÿËq…€ÓÓq Šö‹¤ï†€Î†€ô¹†€Î†€ð¹ †€Î†€ì¹ Ôp9Ò¥Š¥q …€ÓÓÿËqq ¦­ç Ê…€…Ô…€†Ò­ç Ê…€Ó€4Úñq Šó…€ÓÒï …€ÓÓq Šö9Ò q¥†Mtp΂€*¹Ô¥€‡q …€‡°…€‡° ÕÄþ–Æ9Ò¥¥Š¥†€Ê†€ÎÅq …€ÓÓ ÿËq‹ã!q h…€Ó€4Úñq Šó…€ÓÒ …€ÓÓq Šö9Ò q¥†Mtpq …€‡Ò…€ÓÓ ÿËq‹‘†€Î‚€.¹Ÿ†€Î†€è¹Ÿ¡†€Î†€ä¹Ÿ¡†€Î†€ô¹Ÿ¡†€Î†€ð¹Ÿ¡†€Î†€à¹Ÿ¡†€Î†€Ü¹Ÿ¡†€Î†€ì¹Ÿ¡†€Î‚€2¹Ÿ¡Ô †€Î‚€6¹Ô ç ÊŠ ç ÊŠ–record implemenunit implemenunit case implemenimplemenimplemenimplemenimplemenlabel unit forward :ŸTa¨_z·Àß±9M ÛYINITIALI’Aia^+b„,¬Pi!b§³ñ6€,b!ìph†€Î‚€Åb!솀Πp! ¢íiq ¦­ç ʊÖ-‡‚€ï‚€'ï‚€Iï‚€jï‚€‹ï–†€ø‚€¨Å†€ô‚€¬Å†€ì‚€°Å†€ð‚€´Å†€è‚€¸Å†€ä‚€¼Å†€à‚€Àņ€Ü‚€Äņ€Ø‚€Èņ€Ô‚€ÌÅÇ¥€Ò!ñpŠ‚€Ð‚€ñ‚–kކ€ü‚ëPaƒÇŽš‚&t pš†€‰tpšt p…€‰€(€„¼ÚÔך‚<t š†€ü€Pt št †€ü‚èÔp†%†€ü˜vpÓ+†€ü¤d„d†€ü˜€Pw„d‚U€Uw„dëP†%†€ü˜vpÒ”š‚Xt š`t št ƒjÚÔà aÐÚ¥€…š‚rt š`t št ƒ…ÚÔà aÐÚïš‚t š`t št ƒ¥ÚÔà aÐÚ¥…Ô(š‚­t š`t št ƒÄÚÔà aÐÚ¥š‚Ìt š`t št ƒáÚÔà aÐÚ¥…Ô}š‚ét š`t št ƒ‚ÚÔà aÐÚ¥š‚‚t š`t št ƒ‚ÚÔà aÐÚ¥…Ô)š‚‚t š„€Pt št †‚z„˜vpÒך‚‚2t š„;€Pt št „;‚èÔp„;‚‚Eè„;‚‚Gè „;‚‚Lè „;‚‚Qè å¥†M„;˜vpÒ¢–€Ž!˜¥†s5¤‡˜Ä‡ç˜Ä‡ç˜Ä9íÿË¥ ÿË¥ ÿË¥ÿË¥ÿË¥ÿË¥ ÿË¥ ááÿË¥‡Õ‚†€ªƒ‚VÇŽ`†€ªÐƒ‚\ÛÇŽ†€šƒ‚dÇŽ†€Š`І€šÐÛƒ‚hÛÇŽ†€º`І€šÐÛƒ‚nÛÇŽ¥€‡†” Òš‚‚vt pp¥€ÓááË¥†%02” pÓ š‚‚‚t pš†€ü˜t ppŠ32¢ÿË¥01ÿ˧ Ò 1íÿË¥01ÿ˧Ò 1¢ÿË¥¥¥¥…€‰¢£íÿË¥€ˆ‡…¡Ô8q †M‚‚Št p†Mtp†M‚‚¦t p†Mtp†Mtp†Mtp– @attach,blockrea,blockwri,close,concat,copy,delete,exit,fillchar,,Bgotoxy,halt,idsearch,insert,ioresult,length,mark,memavail,memlock,,Amemswap,moveleft,moverigh,pos,pwroften,release,scan,seek,seminit,Asignal,sizeof,start,str,time,treesear,unitbusy,unitclea,unitread,9unitstat,unitwait,unitwrit,varavail,vardispo,varnew,wait,program procedurprocess functionconst type var begin end unit @abs,arctan,atan,chr,cos,dispose,eof,eoln,exp,get,ln,new,odd,ord,,@page,pred,put,read,readln,reset,rewrite,round,sin,sqr,sqrt,succ,,trunc,write,writeln,,+How wide is your output device ? [40..132] 1Please enter the file you wish Cross-Referenced: .text"Is this a compiled listing? [y/n] @@%Do you want intrinsics listed? [y/n] @@.Do you want initial procedure nestings? [y/n] @@-Do you want procedure called by trees? [y/n] @@(Do you want variables referenced? [y/n] @@,Do you want variable called by trees? [y/n] @@Do you wish warnings ? [y/n] @@%Please enter your warning file name: $Please enter your output file name: #1:Console::CONSOLE::console::þÿÿþÿÿÿ€€S (no memory room for xrefUnable to read 6 Absolute/Relative Program/Procedure/Function headingg6-------------------------------------------------------Š1 F¸xTREEDUMPGAia7`c«%Ò †M`t pŠ †M%tp–x"˜±Õ4"h æï†Mtp†M æ tp æ ÿË‚€ï ç ÉŠa…€†Ò†M‚€t pŠ †M‚€ t pŠ@†M‚€ t pŠ1†M‚€t pŠ"†M‚€t pІM çÉtpŠÖ€†M‚€!t p"˜"|q†M‚€#t p æ ¦ÿ˦­˜Ó`­i­…€ˆâ½Ë°­±¡Ô!†Mtp†M€ ¢” p†M‚€%t p!x˜!x|q†M‚€'t p­y¦­íÿ˦Š›†Mtp ï–z#˜±Õö#h æï#˜#|q†M‚€)t p æ ¦ÿ˦­˜±Õ³­˜±Õ¬­i­í…€ˆ³Ô(ÿ˦†Mtp†M€ ” p†M‚€+t p†M€ ” p!y#Ó­íÿ˦!yj"˜"|qŠ †M€ ” p!{Ô †M€*” pŠ †M€ ” p!xj"˜"|q†M€ ” p­z¦­¢ÿ˦‹Mÿ†Mtp†Mtp ï–‹%Ô&Š&–  eh?? extt fmll extt œÿíÿÞÿÀÿÏÿœÿ  :  :   :: ::¾ ?ÑPROCTREEAia™d„ «®hij!å ˜±¡Ô_( Äd çºñ xhŠd ç»ñ yhŠi9Ò6"åd 繡Ô)®yk( Ä# ç ºñ xhŠ# ç »ñ yhŠjŠÊŠ™9Ò!¤ Š"¤ – ´af«®h ˜Ó% Ä xhŠô–©­k&Ô(as!l$˜Ä$ç#Å$ç#|ÇÄ#˜bï"s"!Ä‹Á9Š ` sŠ ` sŠÖ€ l$ç˜Ä$˜Ä9Ò$ç®xÅ$ç®x|ÇÄŠ®m$ç%xÅ$ç%x|ÇÄ$ç %yÅ$çs$m%˜Ä%ç­Å%ç­|ÇÄ®˜Ò ¦ŠE®ç çºñ 9Š®ç sŠ ®ç sŠÖ€®ç ÄŠ9Š® sŠ ® sŠÖ€ ® Ä–W!˜±Õ¡!h æï9Ò æ ¦Š æ ¦7Ô@;€2â½ËÒ*štpš€{” pš;tpš‚€t pŠ š€.” p;íÿË¥ 9Ò­˜Ó­x˜ˆ­y¦ŠçŠ­˜Ó­x˜ˆ­z¦Šç ï–9"˜±ÕÕ"h yïÿ˦ 9Ò ç ˜­q†M‚€t p ç˜ ~q†M‚€t p ¦ ­ ˜Óz­ i­ …€ˆâ½Ë°­ ±¡Ô;†Mtp9Ò†M€ ” p†M‚€t p†M€ ” p†M‚€t p!ç˜!}q†M‚€t p­ íÿ˦ ­ x¦ ІMtp†Mtp xï–0 ˜hasÇo7Ô<9Òštpš‚€t pštpŠštpš‚€,t pštpÿË¥ 47Ô<9Òštpš‚€=t pštpŠštpš‚€Ot pštpq 9Ò*†M‚€bt p†Mtp†M‚€rt p†MtpŠ(†M‚€‚t p†Mtp†M‚€št p†Mtp as– ñÿ÷ÿëÿôÿïÿöÿ}   ::  :: "Building procedure called by treess!Building Variable called by trees"Printing procedure called by treess%Printing Variable referenced by treesProcedure Called Byy-------------------------------/Procedure Variable Referenced By/-----------------------------------------------.\O ןtDOPASS ïAiaÜas9Ò&7Ôš‚€t pštp†%v†M ” pq …€ÓÓ ÿËq‹†€Î†€ø¹Ÿ†€Î†€Ô¹Ÿ¡Ô ÿËq‹[†€Î†€ø¹Ô¥€†Š¥€†r…åÕ<…€Ó±…€Ó ±¡…å¡Ô ÿËqŠ 9Ò¥qq 9°Õ…7Ôštpš‚€t pštp†M‚€t p†M€ ” p†M‚€&t p†MtpÿË€%¢ÿËkh #²Ô†M€-” p íhŠë†Mtp4” †MtpŠK7Ôštpš‚€/t pštp†M‚€Et p†Mtp†M‚€Yt p†Mtp4” 7…9°¡…9°¡ ¡Ô/štp‚€m” j"'³ñš‚€nt pštp” as–Initiaize Pass 2, VariablesPrinting Standard TreesHead Body Notes  Calls Made Too*Now Printing the variable reference tabless'Procedure References Variables'---------------------------------------+Memory small, variable trees not guaranteed ãREFERENCÝAiaI¦†M‚€t p­²Ô†M€ ” p­íÿ˦Šâ–·c„ «iÿËÿËjh "²ÔE'c íËî§€ °¡Ô Š- (ÚÔ†Mc íËî§€ £” pІMc íËî§” p íhж'!å¡Ô – ¥†M8;¢tp†M€/” p†M;tp†M‚€t p3°3° ÔijŠij03"£ÿ˧Ò03!£ÿ˧€ £hŠ13£€ 03ÿËph3 ¢ÿË¥?Ò=Œ £¥¥=²ñ †M€ =Œ” pŠ… ¢²ñ†M€ …¢” p33€m 03ÿËp¢îkh #²Ô†M0 ÿ˧” p íhŠå†Mtp–p;Òp¥š‚€t p ‹‡š‚€t pŠ{š‚€t pŠlš‚€)t pŠ]š‚€9t pŠNš‚€It pŠ?š‚€[t pŠ0š‚€gt pŠ!š‚€vt pŠš‚€‡t pŠÖ€™š‚€¤t pš;tpštp–ø…Ô~<íÿË¥ †‚z‚€ªt p ŠE†‚z†€Êt p†‚z‚€¯t pŠ-†‚z†€Êt p†‚z‚€¹t pІ‚z‚€Æt pŠÖ€Õ†‚z‚€Út p†‚z;tp†‚ztp–ö01ÿ˧ °1íÿ²¡Ô 1íÿË¥1íÿ²Ô01íÿ˧Òp01ÿ˧ °1íÿ²¡Ô 1íÿË¥01ÿ˧°1¢ÿ²¡Ô 1¢ÿË¥1ÿ³Ô01ÿËÈpk€ 01ÿËph ³ñ]ÿË¥ 1¢î1¢ji!"²Ô30!ÿ˧†€šÐÚÔ; Œ0!ÿ˧¢€0£ÿË¥ Š p!íiŠÈk1¢ÿË¥1ÿË¥–‰`жñ01ÿ˧`ÐÚñ € ¥p01ÿ˧ ±1ÿ³Ÿ¡Ô'01ÿ˧¥6€.°†€Î†€Ø¹¡¥1íÿË¥‹37Ô@;€2â½ËÒ*štpš€{” pš;tpš‚€Þt pŠ š€.” p…Ô‘1ÿ³ñ1íÿË¥;íÿË¥ 01ÿ˧ÒjÿË¥ÿË¥†%02” pÓ…³Ô‘Šš‚€àt p pŠÑ2¢ÿË¥01ÿ˧Ò1¢ÿË¥3¢ÿË¥Š01ÿ˧Ò 1¢ÿË¥1ÿË¥€ ¥…€…Ô6 ñ11€„ 01ÿËp¢ÿ²Ô1€„ 01ÿËp¢ÿË¥ŠÊ–Â"Ä ˜±"xå¡Ô&! Ć€Ê »ñ ~hІ€Ê ºñ }hŠ"ÄŠÑ–æ`s !Ä ç˜Ä ç5Ä ¥=íáÿË¥– 4h ˜Ó ¦†€Ê »ñ æhŠ hŠã–54˜Ò"¥Š i†€Ê!»ñ!ç"ÄŠ!ç"Ä–…j†€Ê†€ÎÅ%Ô9Š `sŠ ` sŠÖ€ìŠQ5y˜Ò9Š `sŠ ` sŠÖ€ð5ç ÄŠ3ba5y‘"ñ*9Š `sŠ ` sŠÖ€ô!k†€Î#»ñ#ç ÄŠ#ç Ä"åÕ k#†€ÎÅ#ç…€ÒÇÄ#ç˜Ä#ç˜Ä#ç˜Ä#ç˜Ä#ç ˜Ä#ç 9ËÊ9ŠG#ç 8;¢ÿËÄ#ç ÿËÄ#ç ˜Ä$9°¡Ô #ç ÊŠ#ç ÊŠ#ç ˜Ä#ç ˜Ä#ç ÊŠÖ€ø n$Ô  ŠA!n!9Ò1!ç ÉÒ5ç!æ Ä!ç Ê!ç8;¢ÿËÊŠÿË‘Š!ç Ê–6…îáË¥…áih !³Ô† áËí×j""x;¢Ä îhŠå†…áËí×i†€ü!çëP!yÿË¥!zÿË¥!xÿË¥ !|ÿË¥ !{ÿË¥†%v†%†€ü˜vp9Ò'†M‚€üt p†M†€ü˜t p†Mtp†Mtp–…Ç‘6€(ÒÇ‘6€*ÒÿË‘Š 6€{ÒÿË‘6 ÒÑ €*Ò ƒÇ‘6€)°6€}° Ô·–ý…²ñ ÿË‘Ša†…áËí×h 熀üë( ç;Ä 8Ä ç2£Ä ç1Ä ç3Ä8;¢ÿË¥ ÿË¥ÿË¥ÿË¥ÿË¥ …íáË¥–Ð +†%v†%†€ü˜vpÓ<†€üh`†€ü˜€Pw`‚€Uw`ëP†%†€ü˜vpÓ‘ÿË‘p†%02” pÓ ‘pŠ 2¢ÿË¥7Ô'štpš‚t pš†€ü˜t pštp9Ò'†M‚t p†M†€ü˜t p†Mtp†Mtp–+l …€…Ô"‹‹Ç‘6€$Ó"Š|Ç‘6ƒÚñ"ŠhÇ‘6ƒ!ÚÔ"ŠT€("01ÿËpÿËh1ÿËi"€*Ò 1íÿË¥1 ¢íÿË¥…²Ô†€ü È0!ÿˆ€üì p– 6†€šÐÚÔ†€šÐƒ'ÛÇ‘Šã6€.Ò.†€šÐƒ.ÛÇ‘6†€šÐÚÔ†€šÐƒ5ÛÇ‘Šã6ƒ<ÚÔ5†€šÐƒCÛÇ‘6ƒFÚÔ†€šÐ‘6†€šÐÚÔ †€šÐ‘Ší–8 ¥€Ó†€Î‚IÅÇ¥€ÒÿËhÿËi!²6†€ŠÐÚ¡ÔY6†€ªÐÚÔ†€Î Ëî6€ ¢È…€Ò îâ¼ÛÇ¥€ÒŠ6€_Ò îÿËhŠ †€Î Ëî6È!íÿËi íÿËh†€ŠÐ‘Š™6†€ŠÐÚÔ †€ŠÐ‘Ší†€Î‚M¹ÔZ…€…Ô¥€‡†€Î†€è¹Ÿ†€Î†€ä¹Ÿ¡†€Î†€à¹Ÿ¡†€Î†€ô¹Ÿ¡†€Î†€ð¹Ÿ¡†€Î†€ì¹Ÿ¡Ô‘ г¥€Ó†€Î‚Q¹†€Î‚U¹ Ô¥€Ó†€Î‚Y¹Ô¥€‡¥€Ó–æ ¥€ÓÇ‘6†€ºÐÚÕŒ6‹…¥€Ó‹ƒ]Ç‘6€*Ò€*Š¥€ÓŠf€}Š`Ç‘6€'ÓÇ‘ŠôŠMŠIƒ`Ç‘6€=Ò¥€ÓŠ¥€ÓŠ.ƒdÇ‘6€.Ó¥€ÓŠ ¥€ÓŠ¥€ÓŠ ¥€ÓŠŠÖg…€Ó±Õ\ÿ–% †M ” p†M‚¾t p†M‚Òt p†Mtp†Mtp†Mtp–¥ †‚z†ƒ¦áv†M†‚yáv†%†‚Qávš‚Öt pš‚ìt pštpÿË¥ u…Ô” u…Ô” <Ò †‚zvpІ‚zvp†Mvp†‚zv†Mv†%v–'ss FATAL ERROR - No "program" word"No identifier After prog/proc/funccToken After heading unexpecteddLost ".", check Begin/case/ends#Same name, but not forward-DeclaredInclude File not founddToo many nested include files Units not in legal syntatic formm"No Identifier after const/type/varr vÿ…ÿ”ÿ£ÿ²ÿÁÿÐÿßÿîÿ - AT LINE Warning: : may be undeclared: may not be initializeddNot Standard, Nested comments¸ÿÓÿîÿ line #} unexpected end of inputñÿ÷ÿñÿ÷ÿñÿ÷ÿ¶ÿêÿ Return to .textInclude file is::Include file is::(@@ (( uses packed segment interfac @'{ ÿÿxÿíÿÒÿ³ÿ³ÿ³ÿ³ÿ³ÿ³ÿ³ÿ³ÿ³ÿ³ÿ·ÿóÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿùÿšÿ&Procedural Cross-Referencer - Version [2R0.0]*PROCEDURAL CROSS-REFERENCER VERSION [2R0.0]ƒ8Eêõã~ uÇýÅ:Õ^'•EXTRAIO EXTRAHEA STRINGOPFILEOPS PASCALIOHEAPOPS  þASSEMLOASIOUNIT ‹€¯[IV a.0]ASSEMLOAV¤†€‡†³átšupš‚€u pšup¥šupš‚€u pš†W€Pu pšu pšup†W§Òp‚€*†Ws †€‡†W˜tpÓ*švpš‚€-u pš†W˜u pšupŠ¥0Õ}ÿ†€‡r¥†€‡r¥†€‡r¥šæ1€Ë× ¥€¯…€¯~¥2…€¯¢¥¥š‚€5u pš†.€Pu pšu pšup†.§Ò*š‚€Cu pšupšup¥€€¥€¥Š2¥€…†€…†.‚€Ms¥€„†€…†.†€†€€sÔ¥Š švp0Õsÿ¥š‚€Nu pš†.€Pu pšu pšup†.§Ò*š‚€^u pšupšup¥€‚¥€ƒ¥Š2¥€…†€…†.‚€hs¥€„†€…†.†€ƒ†€‚sÔ¥Š švp0Õsÿš‚€iu pš†€†u pšupšup…€†€Y°…€†€y° ÔBš‚€qu pšup13…€€…€2…€‚…€ƒ‘šupš‚€yu pšupŠš‚€u pšup†€‡t–0Loader for Stand Alone Assembly Language ProgrammName of assembly code file: .CODECould not open Target location (in Hex): Defaulting to 400HH Code startup address (in Hex): Defaulting to 400HH Ready to load: Loading program Load failedProgram abortedÿÿAú&"_!_1_ !_0Àü!@0ŸpNNp NNNÑÞ EXTRAIO PASCALIOFILEOPS SIOUNIT FILEINFO ýSIOUNIT Ê3k"x!§²Ô !"xì§Òk""xíÄ–¤+b„,¬P¤0i‡/x‡.§²ÔQ‡.‡/xì§hb§Ò bì§Ò ¤0‡/‡/xíÄŠiŠ*b§²ñ!b§ bìpb§Ó ¤0‡/‡/xíÄŠiŠiŠi!Ô –/ o$Äijh&%€-‘ÔjŠ &%€+‘Ô&x%§²Ô(%&xì§k#ƒ€ÚÔh&&xíÄ$$x Œ#¢€0£ÄŠiŠi!ÔË Ô o"Ô$$xáÄ–‡¤ %Ä$Äh'x&§²Ô[&'xì§j"ƒ€ÚÔG¤ ''xíÄ"ƒ€ ÚÔ€0iŠ"ƒ€ÚÔ€A £iŠ€a £i$xk%%xŒc É¢Ä$$xŒ"¢!£ÄŠhŠh Ô˜–Àmh$x#§²Ô!#$xì§i!ƒ€ÚÔ m$$xíÄ!"‘ŠhŠh ÔÒ–$#"‘ñmpmh$x#§²Ô#$xì§i!ƒ€ÚÔ $$xíÄ!"‘ŠhŠh ÔÔ–?#§²ñ,#§jh "²Ô!# ì§i!€a³Ô!€z²Ô # ì!€a£€A¢È íhŠÚ–ã„{„€¥¬P‡€¤§Ò p`‡€¤ëP`‘ „{˜`˜r`§„{§£í±`§„{§í² ``§ì§€.±¡Ô‡€¤¤*„*‡€¤˜€Pr„*„{˜€ r„*ëP‡€¤‡€¤§ì§€.Ò ‡€¤‡€¤§r–€¦ë4‡6s` s‡5nf‡5˜€Prf`˜€ZrfëP–6 §€P³ñ §íÈ §ì!È–K&²Ÿ&³Ÿ¡Ô2'k&îli!$³Ô&c!ËØÉh ³ñ€0 ¢jŠ€A ¢ £j"%‘!îiŠÕ–‰z‡|²Ÿ‡|€Q³Ÿ¡Ô)`‡|È`ì‡|€ p‡{¤*„*‡{˜€Pr„*`˜€ r„*ëP–|’t–ÿÿ~~ÿ~ÿþÿÿþÿÿÿþÿÿþÿ"¨d†x âÆ‰TÇ ***  LONGOPS STRINGOP O^¦{©6 ; National 16081 Floating Point Instruction Macros  ;  ; Registers  R0 .EQU 0  R1 .EQU 1  R2 .EQU 2  R3 .EQU 3  R4 .EQU 4  R5 .EQU 5  R6 .EQU 6  R7 .EQU 7   ; Memory reference  M .EQU 8   ; Floating Point Chip  FPU1 .EQU 0C010H  FPU2 .EQU 0C020H  FPU3 .EQU 0C030H  FPUSTAT .EQU 0C041H    ; Moves (.MACRO MOVF (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+4+1>*256>,FPU1 (.ENDM ( (.MACRO MOVL (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+4>*256>,FPU1 (.ENDM ( (.MACRO MOVLF (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+16.>*256>,FPU1 (.ENDM ( (.MACRO MOVFL (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+24.>*256>,FPU1 (.ENDM ( (.MACRO MOVBF (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+4>*256>,FPU1 (.ENDM ( (.MACRO MOVWF (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+5>*256>,FPU1 (.ENDM  (.MACRO MOVDF (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+7>*256>,FPU1 (.ENDM  (.MACRO MOVBL (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<%2&3>*64>*256>,FPU1 (.ENDM ( (.MACRO MOVWL (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+1>*256>,FPU1 (.ENDM  (.MACRO MOVDL (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+3>*256>,FPU1 (.ENDM ( (.MACRO ROUNDFB (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+32.+4>*256>,FPU1 (.ENDM ( (.MACRO ROUNDFW (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+32.+5>*256>,FPU1 (.ENDM  (.MACRO ROUNDFD (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+32.+7>*256>,FPU1 (.ENDM  (.MACRO ROUNDLB (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+32.+0>*256>,FPU1 (.ENDM  (.MACRO ROUNDLW (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+32.+1>*256>,FPU1 (.ENDM  (.MACRO ROUNDLD (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+32.+3>*256>,FPU1 (.ENDM ( (.MACRO TRUNCFB (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+40.+4>*256>,FPU1 (.ENDM ( (.MACRO TRUNCFW (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+40.+5>*256>,FPU1 (.ENDM  (.MACRO TRUNCFD (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+40.+7>*256>,FPU1 (.ENDM  (.MACRO TRUNCLB (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+40.+0>*256>,FPU1 (.ENDM  (.MACRO TRUNCLW (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+40.+1>*256>,FPU1 (.ENDM  (.MACRO TRUNCLD (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+40.+3>*256>,FPU1 (.ENDM ( (.MACRO FLOORFB (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+56.+4>*256>,FPU1 (.ENDM ( (.MACRO FLOORFW (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+56.+5>*256>,FPU1 (.ENDM  (.MACRO FLOORFD (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+56.+7>*256>,FPU1 (.ENDM  (.MACRO FLOORLB (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+56.+0>*256>,FPU1 (.ENDM  (.MACRO FLOORLW (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+56.+1>*256>,FPU1 (.ENDM  (.MACRO FLOORLD (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+56.+3>*256>,FPU1 (.ENDM ( (.MACRO ADDF (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+1>*256>,FPU1 (.ENDM ( (.MACRO ADDL (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+0>*256>,FPU1 (.ENDM ( (.MACRO SUBF (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+16.+1>*256>,FPU1 (.ENDM ( (.MACRO SUBL (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+16.+0>*256>,FPU1 (.ENDM ( (.MACRO MULF (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+48.+1>*256>,FPU1 (.ENDM ( (.MACRO MULL (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+48.+0>*256>,FPU1 (.ENDM ( (.MACRO DIVF (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+32.+1>*256>,FPU1 (.ENDM ( (.MACRO DIVL (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+32.+0>*256>,FPU1 (.ENDM ( (.MACRO NEGF (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+20.+1>*256>,FPU1 (.ENDM ( (.MACRO NEGL (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+20.+0>*256>,FPU1 (.ENDM ( (.MACRO ABSF (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+52.+1>*256>,FPU1 (.ENDM ( (.MACRO ABSL (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+52.+0>*256>,FPU1 (.ENDM ( (.MACRO CMPF (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+8.+1>*256>,FPU1 (.ENDM ( (.MACRO CMPL (MOVE.W #0BEH,FPU3 (MOVE.W #<%1 * 8>+<%2 // 4>+<<<<%2&3>*64>+8.+0>*256>,FPU1 (.ENDM ( (.MACRO LFSR (MOVE.W #03EH,FPU3 (MOVE.W #<%1 * 8>+<<8+3>*256>,FPU1 (.ENDM ( (.MACRO SFSR (MOVE.W #03EH,FPU3 (MOVE.W #<%1 // 4>+<<<<%1&3>*64>+48.+3>*256>,FPU1 (.ENDM ( (.MACRO FRESET (BCLR #1,80F1H (MOVE.B 80F1H,0C1C5H (MOVEQ #100.,D0 (DBF D0,* (BSET #1,80F1H (MOVE.B 80F1H,0C1C5H (.ENDM ( (.MACRO FCHK (MOVEQ #0,D0 (BTST D0,FPUSTAT (BEQ *-4 (BTST D0,FPU2+1 (.ENDM ( (.MACRO FCHK1 (MOVEQ #0,D0 (BTST D0,FPUSTAT (BEQ *-4 (MOVE.W FPU2,D0 (BTST #0,D0 (.ENDM (   COMPRESSINITIALI €€€€€€€€€€€€€€€€`# COMPRESSCCopyright 1980,81,82,83 SofTech Microsystems, Inc. Ú†-ì8–8vINITIALIG@€ÿlj"$²Ô&m"Œi!íh%!§k%!% §È% #È"íjŠß–‹¯†Y‚€Å¥¥†sštš‚€ t š‚€t štštš‚€t štštš‚€*t š`t ƒ€IÚÔð €!ÒpŠ ƒ€QÚ¥š ušt3ñ9štš‚€Yt š„X€Pt št „X‚€nèÔp„X˜†qj"ÔÌštš‚€ot še€Pt št e‚€|èÔp† e˜vpÓ(e¤„e˜€Pw„‚€}€Uw„ëP† e˜vpÒžštš‚€€t š„/€Pt št št„/‚€“èÔp„/‚€”èÔ„/eëP†1„/˜vpÓ"p¤„‚€• w„„/˜€]w„˜q† „€u±p± Ô p‚€œq‡€Ó„€i¤k#‡²Ô;„€á#פ‚‡‚ÉÚ凂ɰ!¡ Ô ‚€­qŠ ‡‚ÉÒi#l#íkо!ñ ‚€ÁqŠ„€$פ‡x¥‡y¥„$×É]Ú¥–¯0123456789ABCDEFAssembly Code File Compressor [7R8.0] Type "!" to escape< Do you wish to produce a relocatable object file? (Y/N))@@( Base address of relocation (hex) : ! File to compress : !.CODE$ Output file ( for same) : ! opening file while reading segment dictionaryy&input code file is not linked assemblyy&input code file is not linked assemblyy " COMPRESSåC)`„*¬Pšuš‚€t š`˜t štp–+ƒ)`„*¬Pšuš‚€t š‡,tš€ uš`˜t štp–,á*a„,¬Pša˜t h‡+³ñ"‡+ÿ¢í¤+š†Y‡+ ¢§u‡+ ¤+ h ²ñš†Y‡+ §u‡+ ¤+ hŠâ–-o+b„-¬P‡,Ĥ/b§Úñ¤/Šnb§ih !²Ôcb §ƒ€ÚÔ‡,‡,xŒb §€0£¢ÄŠAb §ƒ€ÚÔ‡,‡,xŒb §€A£ ¢¢ÄŠ"b §ƒ€ÚÔ‡,‡,xŒb §€a£ ¢¢ÄФ/ íhŠ˜–.†2Ô­ í§iŠ­ §i–¯2Ô­ §­ í§Œ¢iŠ­ í§­ §Œ¢i–Ù4Ô­ §­ í§Œ¢iŠ­ í§­ §Œ¢i– 2Ô­! È­!í ÈŠ­!í È­! È–S"!ÒhŠ7"³!³¡Ô"!³ŸhŠ'"³Ÿ!³¡Ô"!²ŸhŠ"³!³Ÿ¡Ô"!²ŸhŠ"!³Ÿh k–ˆ"ï!¢h2Ô­"`ÉÈ­"í`ÉÈŠ­"í`ÉÈ­"`ÉÈ–¼"ï !¢h4Ô­"`ÉÈ­"í`ÉÈŠ­"í`ÉÈ­"`ÉÈ–%‚€"”  £iˆ!” Ò‚€,‘5î¢h !ñ‚€9‘† ­ 6u ±p± Ô p‚€Q‘­ §°¥– ïŒk#玲€d²ñ‚€]‘­Ò‚€m‘#­Œ££h­¤ o'(²Ô<­'¤ m%)³Ô, %Œ¢n&£ï&ï³ñ&£ïl&£&ïï &$ï %îmŠÏ'íoŠ¿ íi­¤ ¦­(³ÔP#­Œ£ïŒj"ïáÓ‚€z‘"£ïÓ‚€ˆ‘ˆ­îפ )ç"¢Ä)ç!Ä)Ä"£i­î¦Šª– ™¦ïŒ¦­Ó{j­i!ïÓ5!ïÓ!ïÒ ‚€–‘Š‚€¤‘!k!!£ïŒ££i#"ï #jŠÄ!k!¢h"Ó*"£ïl$Œm­$¢¦­ ­#%p#%¢k"¢h"ïjŠÒ#£¦–?¦­h¦­ ²Õˆ­î×i­!z­­!y!z£íp!­Ä­!y¢!z£í¦š‚€¾t š­ît‚€Ç­4!x¢‘‚€É­4!x¢!y!z£¢‘š‚€Ìt š!y!z£ítš‚€Ît št­í¦‹lÿ–zh"Ä å"x®²¡Ô%ˆ"xî×i!z$ð $!y#¢ð ¡ÔhŠ""xíÄŠÑ–ò­îlk#$²Ôg­#Œ£i!ïj"ˆ­­²ñ‚€Ò‘ˆ­î×m!%z%x£áï !ïj"ï h ˆ­­²ñ­¦ˆ­î×m"%z%x£áï #íkŠ”–#h "³ñ® §i® ® í§È® í!È ¢hŠá–k­ï ­¢¦­­îŒ£h­ ­­­Œp­­Œ¢¦­­ï ­¢ï ­¢¦24Ó ­–­îih !²Ô­ Œ£ï­4ï íhŠè–6­3­Ä­îíjÿ­î£i­­!p­!¢¦3ÔI!³ñ"íj­­p­¢¦­£­3x£ï 24Ó­­£§h­­£­­î§È­­î Ȇ1­"áu"±p± Ô p‚€à‘† v†1v–Q23ÔŠ–4œ†s3ñ‚€ì01¢î‘š‚€út štš‚€üt š1tš‚t št–½† †5áv†1†]ávr0†‘‘† v†1v– >>>>  >>>> disk error ÿ~~pascalio,compressorbuffer allocation hassles.insufficient memory space to read in code fileewhile reading code filetoo many procedures in segmenttno procedures in segmenttprocedure code not assemblyinput code file not linkeddinput code file not linkedd3code may not contain base or interpreter relocation Procedure ##: H - H  bytessbad relocation informationnwhile writing out codee Highest code address is H.. Output file is bytes long«J8û¢¿O•`F,ïÚźDs$ ÐEXTRAHEA STRINGOPFILEOPS EXTRAIO PASCALIOHEAPOPS  åå  åàLDEMOåå@Ã:©‚åååå $šD.NETPRIMS.CODE¨Q$(¸“LDEMOCOMP.TEXT¨a(,î£ LDEMOLIB.TEXT©¤,5¢WINDOWOPS.CODE¨Q5KƒD.CHNPRIMS.TEXT¦›K…¼#D.NETPRIMS.TEXT¨Q…‹ƒ DNETUSR.TEXT¦›‹—ƒ DBSERVER.TEXT¦›—¹ƒDISPATCHER.TEXT¦›¹Ãƒ DOCFIND.TEXT¦›Ã˃ FINDSERV.TEXT¦›Ëå¼ LDEMO.TEXT¨Qåëƒ LDEMUSR.TEXT¦›ë÷ƒSERVERCOMM.TEXT¦›÷ƒSPECIALIST.TEXT§ü?ò¢ LDEMO.CODE©¤åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå åàLDEMOåå@Ã:©‚åååå $šD.NETPRIMS.CODE¨Q$(¸“LDEMOCOMP.TEXT¨a(,î£ LDEMOLIB.TEXT©¤,5¢WINDOWOPS.CODE¨Q5KƒD.CHNPRIMS.TEXT¦›K…¼#D.NETPRIMS.TEXT¨Q…‹ƒ DNETUSR.TEXT¦›‹—ƒ DBSERVER.TEXT¦›—¹ƒDISPATCHER.TEXT¦›¹Ãƒ DOCFIND.TEXT¦›Ã˃ FINDSERV.TEXT¦›Ëå¼ LDEMO.TEXT¨Qåëƒ LDEMUSR.TEXT¦›ë÷ƒSERVERCOMM.TEXT¦›÷ƒSPECIALIST.TEXT§ü?ò¢ LDEMO.CODE©¤ååå! ?DNETPRIM €€€€€€€€€€€€€€€€7 rcFCCopyright 1983 SofTech Microsystems, Inc.  Œ'  $uses '{$U ldemo:windowops.code} windowops, '{$U sockets:sockets.code} sockets, '{$U sockets:byte_flip.code} byte_flip, '{$U locator:locator.code} locator, '{$U sockets:time_out.code} time_out, '{$U channel:chservices.code} chservices, '{$U channel:chgroup.code} chgroup; $ $  {$E USERCOMP- } $ ( $ $type (window_ptr = ^window_rec; ' $var ( (curr_window:window_ptr; ( + #{routines} ( 'procedure d_set_window (window:window_rec);  'procedure d_clr_window (var window:window_rec); ' 'procedure lo_res_decode (d_lo_result:lo_result; var text:string);  'procedure result_decode (result:ch_result; var text:string);  (function d_tm_twait (var s:semaphore; t:integer):integer;  'procedure d_tm_sleep (t:integer);  (function d_sk_open (var socket:integer; bfsize:integer):boolean;  'procedure d_sk_accept_broadcast (socket:integer; desc:string);  'procedure d_sk_close (socket:integer);  'procedure d_sk_getmessage (socket:integer; var scraddr:sk_netaddr; ?var ln:integer; var msg:interface packed Tarray[min..max:integer] Tof char);  'procedure d_sk_vgetmessage (socket:integer; var scraddr:sk_netaddr; @var ln:integer; datasiz:integer; Ddata_offset:integer; @var msg:interface packed Darray[min..max:integer] of char);  'procedure d_sk_putmessage (socket:integer; dstaddr:sk_netaddr; ?var msg:interface packed Carray[min..max:integer] of char);  'procedure d_sk_vputmessage (socket:integer; var scraddr:sk_netaddr; Ddatasiz:integer; Ddata_offset:integer; @var msg:interface packed Darray[min..max:integer] of char); ' 'procedure d_sk_set_timeout (socket:integer; timeout:integer);  'procedure d_sk_node_status (var stat:st_record);  'procedure d_sk_nparameters (var stat:st_record);  (function d_sk_nresult (socket:integer; direction:boolean):integer;  'procedure d_sk_putbroadcast (socket:integer; Avar dest_name:interface packed Earray[min..max:integer] of char);  'procedure d_sk_vputbroadcast (socket:integer; datasiz:integer; Fdata_offset:integer; Bvar dest_name:interface packed Farray[min..max:integer] of char); ( (function d_ac_getrequest (accept_socket:integer; wait_time:integer; var msg_size:integer; var socket:integer) >:lo_result; (  'procedure d_bf_flip_record (var field:interface packed array M[min..max:integer] of char);  { ---------------------------------------------------------------------------- }  { ---------------------------------------------------------------------------- } (function d_ch_connect (local_addr:integer; remote_addr:sk_net_addr; @group_id:integer; protocol:ch_p_desc; var msg:interface packed array F[min..max:integer] of char{the data}; >var lngth:integer) :ch_result;  'procedure d_ch_set_group_timeout (group_id:integer; timeout:integer);   { --------------------------------------------------------------------------- }  { --------------------------------------------------------------------------- }  IMPLEMENTATION  >DNETPRIM Ébc—&`‡ Å†ß ¥– /†Þ–” ‚€ëP!ŠQ ‚€ ëPŠK ‚€ëPŠB ‚€ëPŠ9 ‚€#ëPŠ0 ‚€+ëPŠ' ‚€1ëPŠ ‚€9ëPŠ ‚€BëPŠ ‚€MëPŠÖ€U–!¤„€‡‡€¥Å‡€¦£ml$%²Ô?„€‡$Ë×x” ` ” ‡€§nf‡€§˜€ÿ” f`˜€ÿ” f‚€`€ÿ” fëÿ$ílм„€‡‡€¦îË×x” ` ” ‡€§me‡€§˜€ÿ” e`˜€ÿ” eëÿ–€§ˆ40l$‘‡6‡5v¤ ‡ ¤7‡5” ` ” ‡ ” „! ” e¤%„%‚€a” „%`˜” „%‚€i” „%„!˜” „%ë2$e˜r–6Ï(0l$‘‡)” ` ” e¤ „ ‚€k ” „ `˜” „ ‚€p” „ ë2$e˜r‡)v–)`90¤-‘‡;‡:s¤ (¤<„ ‚€që(Ò„ ‚€uë‡;x” ` ” ‡:” d ” „¤)„)‚€y” „)`˜” „)‚€~” „)d˜” „)‚€” „)„ ˜€ ” „)ë2-„˜r–;ѱ„€‰„€²¬P0¤Q‡Q‘‡€´„€‰˜s‡€´” „M ” `¤R„R‚€” „R„M˜” „R‚€Œ” „R„€‰˜€l” „R‚€€m” „Rë–‡Q`˜r–€´0¤‡‘‡” „ ” `¤„‚€Ž ” „„˜” „‚€“” „ë‡`˜r‡s–¡=0¤#‡#‘‡D‡C‡B‡@파î‡>s‡D” „ ” ‡Bx” „ ” `¤$„$‚€”” „$„˜” „$‚€œ€!” „$„˜€(” „$‚€£€3” „$ë2‡#`˜r–DoZ0¤7‡7‘‡c” „' ” ‡ax” „+ ” ‡`” „/ ” ‡_” „3 ” `¤8„8‚€©” „8„'˜” „8‚€±€"” „8„+˜€)” „8‚€¸€*” „8„/˜€1” „8‚€¹€2” „8„3˜€9” „8‚€º€D” „8ëK‡7`˜r‡c‡b‡a‡`‡_‡]파î‡[s –cÔ:„6‡?Å0¤‡‘‡@” „ ” `¤ „ ‚€À” „ „˜” „ ‚€È€+” „ ë2‡`˜r‡@„6‡=파î‡;s–@{R0¤3‡3‘‡Z” „' ” ‡X” „+ ” ‡W” „/ ” `¤4„4‚€Ô” „4„'˜” „4‚€Ü€"” „4„+˜€)” „4‚€ã€*” „4„/˜€1” „4‚€ä€<” „4ëK‡3`˜r‡Z‡Y‡X‡W‡U파î‡Ss–Zë30¤#‡#‘‡5” „ ” ‡4” „ ” `¤$„$‚€ê” „$„˜” „$‚€ò” „$„˜” „$‚€ó” „$ë2‡#`˜r‡5‡4s–5.b0¤1‡1‘‡cs `‚€ôë_` ‡c‘&`¤2„2`˜€_” „2‚€ü€`” „2ë_‡1`˜r–cpb0¤1‡1‘‡cs `‚€ýë_` ‡c‘&`¤2„2`˜€_” „2‚€`” „2ë_‡1`˜r–c]a0¤B‡B‘‡c‡bs ¤A‡A¤d„6‚ë‡AŠ<„6‚ëŠ5„6‚ëŠ+„6‚ëŠ!„6‚$늄6‚-ëŠ „6‚7ëŠÖ@‡A” „2 ” ‡c” „' ” ‡bÒ „+‚Pë Š„+‚Vë `¤C„C‚\ ” „C„'˜” „C‚b” „C„+˜” „C‚c€!” „C„2˜€(” „C„6˜€<” „CëK‡B`˜r–cY0¤+‡+‘‡^” „' ” ‡Z‡[‡[‡\˧¤<‡<²ñ¤<‡Z‡[í‡[‡\Ë„,쇄>‚e” „>„'˜” „>‚n” „>„,˜€6” „>‚o€7” „>ëK‡+`˜r‡^‡\파î‡Z"s–^ðw0¤4‡4‘‡~” „5 ” ‡}” „9 ” ‡|” „= ” ‡x‡y‡y‡z˧¤Q‡Q²ñ¤Q‡x‡yí‡y‡zË„Aì‡Qp‡Q¤R„R„Ap`¤S„S‚p” „S„5˜” „S‚y” „S„9˜€ ” „S‚z€!” „S„=˜€(” „S‚{€)” „S„A˜€G” „S‚|€H” „Sëd‡4`˜r‡~‡}‡|‡z파î‡xs–~ ‡s0¤J‡J‘‡z‡y‡x‡v파î‡tu¤I‡I¤{‡I„<‘‡y” „8 ” ‡z” „4 ” `¤K„K‚}” „K„4˜” „K‚…” „K„8˜” „K‚†€8” „K„<˜€Q” „Këd‡J`˜r–z yÎ0¤€€‡€€‘‡€Ö˜‡€Õ‡€Ô‡€Ò파Ї€Ïu¤‡¤€×‡„r‘‡€Õ” „n ” ‡€Ô” „j ” ‡€Ïx” „f ” `¤€„€‚”” „€‡€Ö˜€^” „€‚œ€_” „€„n˜€f” „€‚€g” „€„j˜€n” „€‚ž€y” „€„f˜€€” „€‚¤€‚” „€„r˜€›” „€ëȇ€€`˜r–€Ö Æ0¤‡‘‡” „ ” `¤„‚¦ ” „„˜” „‚«” „ë‡`˜r‡u– Ž0¤€…‡€…‘‡€” „€ ” `¤€†„€†‚¬ ” „€†„€˜” „€†‚±” „€†ëÿ‡€…`˜r‡€u–€ ·t0¤J‡J‘‡{‡z‡y‡w파î‡uu¤I‡I¤|‡z” „8 ” ‡{” „4 ” ‡I„<‘`¤K„K‚²” „K„4˜” „K‚º” „K„8˜” „K‚»€:” „K„<˜€S” „Këd‡J`˜r–{ 3q„m‡vÅ0¤F‡F‘‡w„m‡t파î‡ru¤E‡E¤x‡w” „4 ” ‡E„8‘`¤G„G‚Ê” „G„4˜” „G‚Ò€1” „G„8˜€J” „Gëd‡F`˜r–w 0¤€—‡€—‘‡˜‡‡x‡u¤€˜‡€˜¤‡€˜„€™‘‡x” „f ” ‡” „j ” ‡x” „n€P ” `¤€¦„€¦‚à ” „€¦‡˜€\” „€¦‚ç€]” „€¦„j˜€d” „€¦‚è€e” „€¦„n˜€µ” „€¦‚逶” „€¦„f˜€½” „€¦‚ꀿ” „€¦„€™˜€Ø” „€¦ëȇ€—`˜r– ªF0¤/‡/‘‡G‡H‡H‡I˧” „+ ” ‡I파î‡Gt‡G‡H‡H‡I˧” „' ” `¤0„0‚ì” „0„+˜” „0‚ô€%” „0„'˜€,” „0‚ü€-” „0ëK‡/`˜r–JZ ‚ýëP!‹œ ‚‚ëP‹• ‚‚ëP‹‹ ‚‚ëP‹ ‚‚ëPŠx ‚‚#ëPŠo ‚‚)ëPŠf ‚‚2ëPŠ] ‚‚;ëPŠT ‚‚DëPŠK ‚‚KëPŠB ‚‚RëPŠ9 ‚‚XëPŠ0 ‚‚aëPŠ' ‚‚iëPŠ ‚‚pëPŠ ‚‚xëPŠ ‚‚€ëPŠÖ‚†–œ!Š6 ‚‚™ëPŠ0 ‚‚žëPŠ' ‚‚¤ëPŠ ‚‚«ëPŠ ‚‚°ëPŠ ‚‚¸ëPŠÖ‚¾–ˆº„€¶‡€¾Å„€±‡€¼Å0¤q‡q‘‡€¿„€¶‡€½„€±‡€»w¤r‡r¤€À‡€¿” „@ ” ‡€½” „D ” „H‚‚Æë‡€»x” „X ” ‡r„\‘`¤s„s‚‚Ì ” „s„@˜” „s‚‚Ò€#” „s„D˜€*” „s‚‚Û€+” „s„H˜€I” „s‚‚Ü€J” „s„X˜€Q” „s‚‚Ý€S” „s„\˜€{” „së}‡q`˜r–€¿9ž0¤j‡j‘‡€¡‡€ ‡€Ÿw¤k‡k¤€¢‡k„U‘‡€ x„D‘'‡€Ÿx” „Q ” ‡€¡” „@ ” `¤l„l‚‚ß” „l„@˜” „l‚‚è” „l„D˜€2” „l‚‚é€3” „l„Q˜€:” „l‚‚ê€<” „l„U˜€d” „lë}‡j`˜r–€¡¶b0¤@‡@‘‡g‡e파î‡cw¤A‡A¤h‡A„+‘‡g” „' ” `¤B„B‚‚ì” „B„'˜” „B‚‚ñ” „B‚‚õ” „B„+˜€@” „BëK‡@`˜r–gMx0¤Q‡Q‘‡~‡|파î‡z‡yw¤R‡R¤‡R„<‘‡yx” „8 ” ‡~” „4 ” `¤S„S‚‚÷ ” „S„4˜” „S‚‚ý” „S„8˜€!” „S‚ƒ€#” „S„<˜€K” „Sëd‡Q`˜r–~±a0¤@‡@‘‡bw¤A‡A¤c‡A„+‘‡b” „' ” `¤B„B‚ƒ” „B„'˜” „B‚ƒ ” „B„+˜€?” „BëK‡@`˜r–bý50¤‡‘‡6” ¤ ‡ ¤7‡ ” „ ” `¤!„!‚ƒ€!” „!„˜€(” „!ë2‡`˜r–6p50¤$‡$‘‡6” ¤%‡%¤7‡6” „ ” „‚ƒë‡%Ò„‚ƒ#ë`¤&„&‚ƒ'” „&„˜” „&‚ƒ/” „&„˜” „&ë2‡$`˜r–6 {0¤Q‡Q‘‡€‡íŒŒî‡}‡|w¤R‡R¤€‚‡R„<‘‡|x” „8 ” ‡€” „4 ” `¤S„S‚ƒ1” „S„4˜” „S‚ƒ:€ ” „S„8˜€'” „S‚ƒ?€)” „S„<˜€Q” „Sëd‡Q`˜r–€}60¤#‡#‘‡8‡7‘%‡7” „ ” ‡8” „ ” `¤$„$‚ƒA” „$„˜” „$‚ƒL” „$„˜€$” „$‚ƒM€%” „$ë2‡#`˜r–8†âÄç˜Ä” –"unknown response"" "lo_okay" "lo_unknown"""lo_socket_overflow"""lo_open_error" "lo_memory""lo_put_error"""cr_buf_overflow""cr_invalid_message"""cr_no_message"ÿ¬ÿµÿ¾ÿÇÿÐÿÙÿâÿëÿô,TM_TWAIT("sem",)== TM_SLEEP()"true"""false"SK_OPEN((,)==SK_ACCEPT_BROADCAST((,) SK_CLOSE()SK_GETMESSAGE(( ,"scr_addr",, ,"message")SK_VGETMESSAGE( ,"scr_addr",,,, ,"message")SK_PUTMESSAGE((,"dst_addr","message"))SK_VPUTMESSAGE( ,"scr_addr",,, ,"message")SK_SET_TIMEOUT(,)SK_NODE_STATUS()SK_NPARAMETERS()**Unknown_Result*** (success)(socket not open) (time_out))(message too big)(network too busy))(buffer overflow) ÿÁÿËÿÕÿßÿéÿó "last get"" "last put"" SK_NRESULT(,)==SK_PUTBROADCAST((,)SK_VPUTBROADCAST(,,,)AC_GETREQUEST((,,"request_addr","message")=RQ_PUTREQUEST((,, ,"message",)== RQ_CLOSE() AC_CLOSE()RQ_GETRESPONSE(,,"acceptor_addr","message")==AC_PUTRESPONSE(,"request_addr","message")= AC_INITIATE((,,,)==BF_FLIP_RECORD(){1st byte now=}"**Unknown Result**"" "cr_success"" "cr_error"""cr_msg_overflow" "cr_busy" "cr_closed""cr_net_failure"""cr_ill_p"rotocol""cr_no_response"" "cr_version"" "cr_msg_lost" "cr_memory""cr_incompatible""cr_too_large"" "cr_sending"""cr_receiving"""cr_ill_group"" "cr_no_msg"ÿaÿkÿuÿÿˆÿ‘ÿšÿ£ÿ¬ÿµÿ¾ÿÇÿÐÿÙÿâÿëÿô "cs_open" "cs_closed" "cs_receive"" "cs_send""cs_disconnect" "cs_status"ÿÇÿÐÿÙÿâÿëÿô "protocol"" CH_CONNECT(,"s_remote_addr",,,)==CH_REMOTE_STATUS(,,)==CH_SEND((,"data")== CH_RECEIVE(,"data",,)==CH_DISCONNECT(()==!CH_INIT_GROUP("connection_type")="true"""false"CH_FREE_GROUP(()==CH_GROUP_RECEIVE(,"data",,)==CH_SET_GROUP_TIMEOUT(,)/L ˆ : Û©]ÇP‘Þ’e?Æz±:øÀl:Ó‘k2êÆ“× Á'*** STRINGOP LONGOPS CHGROUP CHSERVICTIMEOUT LOCATOR BYTEFLIPSOCKETS WINDOWOP O^K§a¨rF— cdnetusr  d.netprims   cldemusr  ldemo O^™¦¤©i‡# :sockets.code  :byte_flip.code  :time_out.code  :chservices.code  :chgroup.code  :locator.code  :windowops.code  :d.netprims.code   ªWINDOWOP €€€€€€€€€€€€€€€€qrc(CCopyright 1983 SofTech Microsystems, Inc.  Œ'  $type 'cursor_point = record +x:integer; +y:integer; 'end;{cursor_point} ' 'window_rec = record +pointer :^window_rec;{a pointer of convenience} +location :cursor_point;{the upper left corner of the Hwindow (0,0 is the min, or H"home" position)} +size :cursor_point;{width and length in bytes. H1,1 is the minimum size.} +next_line :cursor_point;{the line and position on the Hline to begin the next write. H0,0 is the minimum location.} +last_asterisk :cursor_point;{the start of the last "asterisk" Hto have been appended to the Hstart of a write. H0,0 is the minimum location.} +aster_value :string[5]; {up to five characters may be used Fin lieu of an asterisk.} +asterisk :boolean; {use an asterisk -or the aster_value- For do not use it.} +window_name :string[30];{the name for display with the window. FInserted in the upper left corner of Fthe frame.} +name :boolean; {use the window_name, or do not use it.} +frame:boolean; {put a one character frame around the Fwindow. "True" is necessary if there is Fto be a window name.} + 'end;{window_rec} ( 'screen_rec = record +size:cursor_point; +end; ' 'w_full_string=string[255]; ' #var 'screen:screen_rec; ' ' 'procedure w_read (var window:window_rec; var input:char);  'procedure w_readln (var window:window_rec; ;var input_area:interface packed Jarray[min..max:integer] of char);  'procedure w_write (var window:window_rec; text:w_full_string); ' 'procedure w_writeln (var window:window_rec; text:w_full_string); ' 'procedure w_write_text (var window:window_rec; text:w_full_string); / 'procedure w_open_window (var window:window_rec); ' 'procedure w_close_window (var window:window_rec); $ 7  IMPLEMENTATION #©WINDOWOP‡bcy:!y!}¢¥!z!~¢¥23r¥š s p¥–%h(kj#æ Ô#ç §j#y#}¢¥#z#~¢¥23r¥šas pšspåÕŽarÓ; &³ñ-š!tp íh#ç#}íÄ#}#{³Ô#ç"Ä#ç#~í#|â½ËÄ$ %&Ë!ÈŠL %²ñG îh#ç#}îÄ#}"³ñ#ç#{îÄ#ç#~î#|â½ËÄ#y#}¢#z#~¢rš€ tp#y#}¢#z#~¢r¥šspÕ;ÿ$%%&Ë È– eƒc„€„¬ÿ‡€†j"y"}¢"z"~¢r"{"}£h c§²ñc§hšc˜ s p"ç"} ¢Ä4Ò23r–€†»‚b„€ƒ¬ÿ‡€…i!y!}¢!z!~¢rš‚€!{!}£s p‡€…b˜‘!ç!~í!|â½ËÄ!çÄ!æ Ô !ç!ç §Ä–€…‡„„ˆ¬ÿštp‡Š¤€‡‡€‡æ ÔW‡€‡y‡€‡z‡€‡æ¢rš€ ‡€‡ç §tp‡€‡çćЇ€‡ç ˜‘‡€‡ç‡€‡~怇}‡€‡ç §³ñ ‡€‡ç‡€‡ç §Ä„§²ŸÕÓ‡€‡{‡€‡}£k„§#²ñ:#lj"å$²Ÿ¡Ô%„$짆BÐÚ„$í짆RÐÚ ÔjŠ$îlŠÒ$Ò#lŠ2„§l‡€‡~퇀‡|³ñ ‡€‡y‡€‡z‡€‡~¢írš‚€‡€‡{s pe„˜„€ˆ$u„€ˆëÿ‡Še˜‘„$u„§²ñ(„§€ „ìp¤€†‡€†„§³ñ „‡€†u‹"ÿ–Š[$j"{Ò"çÄ"|Ò"çÄ"çÄ"çÄ"çÄ"çÄ"æ Ô."ç §Ò "ç ‚€ë"ç §"{³Ô "ç"ç §íÄ"ç"ç §Ä"æÕµ"yî"zîrš€.tp"{íi"æÔ!"ç §²ñ"ç §iš"ç ˜!s p!"{kh #²Ôš€.tp íhŠì"z"z"|¢kh #²Ô"yî rš€:tp íhŠæ"y"y"{¢îkh #²Ôš€.tp íhŠì"z"|¢"zkh #³Ô"y"{¢ rš€:tp îhŠä"z"z"|¢îkh #²Ô"y rš‚€"{s p íhŠã–¼#i!æñ)!z!z!|¢îjh "²Ô!y rš‚€!{s p íhŠãŠ*!zî!z!|¢jh "²Ô!yî rš‚€!{¢s p íhŠà– †bƒ€ÇކBƒ€ †bÐÛÇŽ†Rƒ€†bÐÛÇŽ†r†@Éí¥†@Éí¥¥v–*¬$R* 0൑ `*** STRINGOPEXTRAIO PASCALIOSCREENOP M1 M2 M3 M4 M5 M6 M7 M8 5s¡à\þÏ !O^̦›¦ rcV { This item is the property of SofTech Microsystems, Inc., }  { and it may be used, copied or distributed only as permitted }  { in a written license from that company. }    {----------------------------------------------------------------------------}  {------------------------Channel Services------------------------------------}  {----------------------------------------------------------------------------}   procedure result_decode {(result:ch_result; var text:string)};  $begin '{Decode the result value according to the ch_result meanings.} '{The default value is "unknown result"} (text:='"**Unknown Result**"'; (case result of -cr_success: text:='"cr_success"'; -cr_error: text:='"cr_error"'; -cr_msg_overflow: text:='"cr_msg_overflow"'; -cr_busy: text:='"cr_busy"'; -cr_closed: text:='"cr_closed"'; -cr_net_failure: text:='"cr_net_failure"'; -cr_ill_protocol: text:='"cr_ill_protocol"'; -cr_no_response: text:='"cr_no_response"'; -cr_version: text:='"cr_version"'; -cr_msg_lost: text:='"cr_msg_lost"'; -cr_memory: text:='"cr_memory"'; -cr_incompatible: text:='"cr_incompatible"'; -cr_too_large: text:='"cr_too_large"'; -cr_sending: text:='"cr_sending"'; -cr_receiving: text:='"cr_receiving"'; -cr_ill_group: text:='"cr_ill_group"'; -cr_no_msg: text:='"cr_no_msg"'; (end;{case result}  $end;{result_decode}    procedure status_decode (status:ch_state; var text:string);  $begin  '{Dec$ode the status value according to the ch_state meanings.} (case status of -cs_open: text:='"cs_open"'; -cs_closed: text:='"cs_closed"'; -cs_receive: text:='"cs_receive"'; -cs_send: text:='"cs_send"'; -cs_disconnect: text:='"cs_disconnect"'; -cs_status: text:='"cs_status"'; (end;{case status}  $end;{status_decode}     function d_ch_connect {(local_addr:integer; remote_addr:sk_net_addr; 8group_id:integer; protocol:ch_p_desc; 4var con_id:integer):ch_result}; $var (display_line:string[125]; (s_local_addr:string[7]; (s_group_id:string[7]; (s_protocol:string[30]; (s_con_id:string[7]; (s_result:string[40]; (window:window_ptr; (result:ch_result;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^);  (result:=ch_connect(local_addr,remote_addr,group_id,protocol,con_id); (d_ch_connect:=result; / (str(local_addr,s_local_addr);{setup a value for display purposes} (str(group_id,s_group_id);{setup a value for display purposes} (s_protocol:='"protocol"'; (str(con_id,s_con_id);{setup a value for display purposes} (result_decode(result,s_result);  (display_line:=concat('CH_CONNECT(', s_local_addr, ',"s_remote_addr",', >s_group_id, ',', s_protocol, ',', s_con_id, =')=', s_result); (w_write_text(window^,display_line);   $end;{d_ch_connect}    function d_ch_remote_status {(con_id:integer; var status:ch_state; :var message_count:integer) :ch_result}; $var (display_line:string[125]; (s_con_id:string[7]; (s_status:string[25]; (s_message_count:string[7]; (s_result:string[40]; (window:window_ptr; (result:ch_result;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (result:=ch_remote_status(con_id,status,message_count); (d_ch_remote_status:=result; ( (result_decode(result,s_result);{decode result into text} (status_decode(status,s_status);{decode status into text} (str(message_count,s_message_count);{setup a value for display purposes} (str(con_id,s_con_id);{setup a value for display purposes} (display_line:=concat('CH_REMOTE_STATUS(', s_con_id, ',', s_status, >',', s_message_count, ')=', s_result ); (w_write_text(window^,display_line);  $end;{d_ch_remote_status}    function d_ch_send {(con_id:integer; 1var msg:interface packed array 9[min..max:integer] of char(*the data*)) :ch_result}; $var (display_line:string[75]; (s_con_id:string[7]; (s_result:string[40]; (window:window_ptr; (result:ch_result;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (result:=ch_send(con_id,msg);  d_ch_send:=result;  (result_decode(result,s_result); (str(con_id,s_con_id);{setup a value for display purposes} (display_line:=concat('CH_SEND(', s_con_id, ',"data"', =')=', s_result ); (w_write_text(window^,display_line);  $end;{d_ch_send}    function d_ch_receive {(con_id:integer; 4var msg:interface packed array <[min..max:integer] of char(*the data*); 4var lngth:integer) :ch_result}; $var (display_line:string[100]; (s_con_id:string[7]; (s_lngth:string[7]; (s_result:string[40]; (window:window_ptr; (result:ch_result;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (result:=ch_receive(con_id,msg,lngth);  d_ch_receive:=result;  (result_decode(result,s_result); (str(lngth,s_lngth);{setup a value for display purposes} (str(con_id,s_con_id);{setup a value for display purposes} (display_line:=concat('CH_RECEIVE(', s_con_id, ',"data",', >s_lngth, ')=', s_result ); (w_write_text(window^,display_$line);  $end;{d_ch_receive}    function d_ch_disconnect {(con_id:integer) :ch_result}; $var (display_line:string[75]; (s_con_id:string[7]; (s_result:string[40]; (window:window_ptr; (result:ch_result;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^);  (result:=ch_disconnect(con_id); (d_ch_disconnect:=result;  (result_decode(result,s_result); (str(con_id,s_con_id);{setup a value for display purposes} (display_line:=concat('CH_DISCONNECT(', s_con_id, ')=', s_result ); (w_write_text(window^,display_line);  $end;{d_ch_disconnect}    function d_ch_init_group {(connection:ch_type):integer};  $var (display_line:string[50]; (s_group_id:string[7]; (window:window_ptr; (group_id:integer;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^);  (group_id:=ch_init_group(connection); (d_ch_init_group:=group_id;  (str(group_id,s_group_id);{setup a value for display purposes}  (display_line:=concat('CH_INIT_GROUP("connection_type")=', s_group_id); (w_write_text(window^,display_line);   $end;{d_ch_init_group}    function d_ch_free_group {(group_id:integer) :boolean}; $ $var (display_line:string[50]; (s_group_id:string[7]; (s_result:string[8]; (window:window_ptr; (result:boolean;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^);  (result:=ch_free_group(group_id); (d_ch_free_group:=result;  (str(group_id,s_group_id);{setup a value for display purposes} (s_result:='"true"'; (if result = false then ,s_result:='"false"'; (display_line:=concat('CH_FREE_GROUP(', s_group_id, ')=', s_result ); (w_write_text(window^,display_line);  $end;{d_ch_free_group}    function d_ch_group_receive {(con_id:integer; 4var msg:interface packed array <[min..max:integer] of char(*the data*); 4var lngth:integer) :ch_result}; $ $var (display_line:string[100]; (s_con_id:string[7]; (s_lngth:string[7]; (s_result:string[40]; (window:window_ptr; (result:ch_result;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (result:=ch_receive(con_id, msg, lngth);  d_ch_group_receive:=result;  (result_decode(result,s_result); (str(lngth,s_lngth);{setup a value for display purposes} (str(con_id,s_con_id);{setup a value for display purposes} (display_line:=concat('CH_GROUP_RECEIVE(', s_con_id, ',"data",', >s_lngth, ')=', s_result ); (w_write_text(window^,display_line);  $end;{d_ch_group_receive}    procedure d_ch_set_group_timeout {(group_id:integer; timeout:integer)}; $ $var ( (display_line:string[50]; (s_group_id:string[7]; (s_timeout:string[7]; (window:window_ptr;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (d_ch_set_group_timeout(group_id,timeout);  (str(timeout,s_timeout);{setup a value for display purposes} (str(group_id,s_group_id);{setup a value for display purposes} (display_line:=concat('CH_SET_GROUP_TIMEOUT(', s_group_id, ',', Vs_timeout, ')'); (w_write_text(window^,display_line);  $end;{d_ch_set_group_timeout} $ % START M1 M2 RET M3 M4 M5 M6 M7 M8 M9 RET2 D_CH #bkÍkâk. c W‹wwwwkà¾O §9¨QÇrcf   { This item is the property of SofTech Microsystems, Inc., }  { and it may be used, copied or distributed only as permitted }  { in a written license from that company. }     { This file is INCLUDED by either dnetusr.text or dnetcrv.text}  { The file dnetusr.text sets the USERCOMP compile-time flag }  { to indicate that all USED units are assumed to be on the }  { prefixed disk. }  { The file dnetcrv.text sets the USERCOMP compile-time flag }  { to indicate that USES declarations will explicitly indicate}  { the volume ( directory ) on which units will be located. }    { UNIT D_NETPRIMS; The actual unit declaration in either dnetusr or }  { dnetcrv text files. }   { --------------------------------------------------------------------------- }  { ----------------DEMONSTRATION NETWORK PRIMATIVES--------------------------- }  { --------------------------------------------------------------------------- }  {The following are the Demonstration variants of the network primatives. !They make extensive use of the windowing routines included with this package. !They also make the following essential assumptions: "1. The caller calls "d_set_window" just prior to calling one of these %variants. Failure to do so could result in the display occuring in the %wrong window, the garbling of the text being written, the overwriting %of previous messages, or even the destruction of the program and %operating system.  "2. The caller actually wishes the network primative to be executed, and %has followed the correct network procedures and protocols prior to %the invocation of the demonstration variant.} %  { --------------------------------------------------------------------------- }  { --------------------------------------------------------------------------- } $   { for user compilation all units are assumed to be on same volume ( directory)}  {$B USERCOMP+ }   uses  {$U windowops.code } windowops, '{$U sockets.code } sockets, '{$U byte_flip.code } byte_flip, '{$U locator.code } locator, '{$U time_out.code } time_out, '{$U chservices.code } chservices, '{$U chgroup.code } chgroup; ' ' '   {$E USERCOMP+ }    { for in-house compilations volume ( directory) names included in USES }  {$B USERCOMP- }  INTERFACE  $u%ses '{$U ldemo:windowops.code} windowops, '{$U sockets:sockets.code} sockets, '{$U sockets:byte_flip.code} byte_flip, '{$U locator:locator.code} locator, '{$U sockets:time_out.code} time_out, '{$U channel:chservices.code} chservices, '{$U channel:chgroup.code} chgroup; $ $  {$E USERCOMP- } $ ( $ $type (window_ptr = ^window_rec; ' $var ( (curr_window:window_ptr; ( + #{routines} ( 'procedure d_set_window (window:window_rec);  'procedure d_clr_window (var window:window_rec); ' 'procedure lo_res_decode (d_lo_result:lo_result; var text:string);  'procedure result_decode (result:ch_result; var text:string);  (function d_tm_twait (var s:semaphore; t:integer):integer;  'procedure d_tm_sleep (t:integer);  (function d_sk_open (var socket:integer; bfsize:integer):boolean;  'procedure d_sk_accept_broadcast (socket:integer; desc:string);  'procedure d_sk_close (socket:integer);  'procedure d_sk_getmessage (socket:integer; var scraddr:sk_netaddr; ?var ln:integer; var msg:interface packed Tarray[min..max:integer] Tof char);  'procedure d_sk_vgetmessage (socket:integer; var scraddr:sk_netaddr; @var ln:integer; datasiz:integer; Ddata_offset:integer; @var msg:interface packed Darray[min..max:integer] of char);  'procedure d_sk_putmessage (socket:integer; dstaddr:sk_netaddr; ?var msg:interface packed Carray[min..max:integer] of char);  'procedure d_sk_vputmessage (socket:integer; var scraddr:sk_netaddr; Ddatasiz:integer; Ddata_offset:integer; @var msg:interface packed Darray[min..max:integer] of char); ' 'procedure d_sk_set_timeout (socket:integer; timeout:integer);  'procedure d_sk_node_status (var stat:st_record);  'procedure d_sk_nparameters (var stat:st_record);  (function d_sk_nresult (socket:integer; direction:boolean):integer;  'procedure d_sk_putbroadcast (socket:integer; Avar dest_name:interface packed Earray[min..max:integer] of char);  'procedure d_sk_vputbroadcast (socket:integer; datasiz:integer; Fdata_offset:integer; Bvar dest_name:interface packed Farray[min..max:integer] of char); ( (function d_ac_getrequest (accept_socket:integer; wait_time:integer; var msg_size:integer; var socket:integer) >:lo_result; (  'procedure d_bf_flip_record (var field:interface packed array M[min..max:integer] of char);  { ---------------------------------------------------------------------------- }  { ---------------------------------------------------------------------------- } (function d_ch_connect (local_addr:integer; remote_addr:sk_net_addr; @group_id:integer; protocol:ch_p_desc; var msg:interface packed array F[min..max:integer] of char{the data}; >var lngth:integer) :ch_result;  'procedure d_ch_set_group_timeout (group_id:integer; timeout:integer);   { --------------------------------------------------------------------------- }  { --------------------------------------------------------------------------- }  IMPLEMENTATION  $type (d_max_string=string[255]; $var (d_window_sem:semaphore; (  {Procedure D_SET_WINDOW is used to protect the window pointer location during !the implicit passing of the window pointer during the calling of the !demonstration network primatives. It is not necessary to use this procedure !if the program does not have more than one process utilizing the primatives. !This procedure can then be replaced with the instruction "curr_window:= !(pointer to window)".}  procedure d_set_window {(window:window_rec)}; $begin 0wait(d_window_sem); 0curr_window:=window.pointer; $end;   procedure d_clr_window{(var window:window_rec)}; $begin 0signal(d_window_sem); $end;     procedure lo_res_decode {(d_lo_result:lo_result; var text:string)};  $begin  '{The default result is "unknown response"} (text:='"unknown response"'; '{Decode the locator result value according to the lo_result meanings.} (case d_lo_result of -lo_okay: text:='"lo_okay"';{successful operation} -lo_unknown: text:='"lo_unknown"';{unknown skt level error} -lo_socket_overflow:text:='"lo_socket_overflow"';{skt buff overflow} -lo_open_error: text:='"lo_open_error"';{skt open failed} -lo_memory: text:='"lo_memory"';{no room for msg buffer} -lo_put_error: text:='"lo_put_error"';{PUT failed} -lo_buf_overflow: text:='"cr_buf_overflow"';{msg too large} -lo_invalid_msg: text:='"cr_invalid_message"';{received bad msg} -lo_no_message: text:='"cr_no_message"';{no answer on I/O} (end;{case d_lo_result}  $end;{lo_res_decode}   procedure stat_rec_decode (var display_line:d_max_string; n:integer; @stat:st_record); $ $var (s_stat:string[7]; (i:integer;  $begin '{Decode the 1st n words of the status record.} (for i := 0 to (n-2) do ,begin 0str(stat[i],s_stat); 0display_line:=concat(display_line,s_stat, ','); ,end; '{The last word is not followed by a comma (,).} (str(stat[n-1],s_stat); (display_line:=concat(display_line,s_stat); $end;     function d_tm_twait {(var s:semaphore;t:integer):integer};  #var 's_t:string[7]; 'window:window_ptr; 'display_line:string[50]; 'result:integer; 's_result:string[7];  #begin 'window:=curr_window; {Set the current window to the caller's window} &{Clear the window semaphore for window use by other routines.} 'd_clr_window(window^); ' 'result:=tm_twait(s,t); 'd_tm_twait:=result; ' 'str(t,s_t);{setup a value for display purposes} 'str(result,s_result); 'display_line:=concat( 'TM_TWAIT("sem",', s_t, ')=', s_result); 'w_write_text(window^,display_line);  #end {d_tm_twait};     procedure d_tm_sleep {(t:integer)};  #var 's_t:string[7]; 'window:window_ptr; 'display_line:string[50];  #begin 'window:=curr_window; {Set the current window to the caller's window} &{Clear the window semaphore for window use by other routines.} 'd_clr_window(window^);  'str(t,s_t);{setup a value for display purposes} 'display_line:=concat( 'TM_SLEEP(', s_t, ')' ); 'w_write_text(window^,display_line);  'tm_sleep(t);  #end {d_tm_sleep};    function d_sk_open {(var socket:integer; bfsize:integer):boolean}; #var 's_socket:string[7]; 's_bfsize:string[7]; 'ans:boolean; 's_ans:string[7]; 'window:window_ptr; 'display_line:string[50];  #begin 'window:=curr_windo&w; {Set the current window to the caller's window} &{Clear the window semaphore for use by other routines.} 'd_clr_window(window^); ' 'ans:=sk_open(socket,bfsize); 'd_sk_open:=ans; & &{Convert integers and booleans to string values for display purposes.} 's_ans:='"true"'; 'if ans = false then +s_ans:='"false"'; 'str(socket,s_socket); 'str(bfsize,s_bfsize); 'display_line:=concat('SK_OPEN(', s_socket, ',', s_bfsize, ')=', s_ans); 'w_write_text(window^,display_line); #end;{d_sk_open}     procedure d_sk_accept_broadcast {(socket:integer;desc:string)}; $var (display_line:string[150]; (s_socket:string[7]; (window:window_ptr; $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for use by other routines.} (d_clr_window(window^); ' (sk_accept_broadcast(socket,desc);  (str(socket,s_socket);{setup a value for display purposes} (display_line:=concat('SK_ACCEPT_BROADCAST(', s_socket, P',', desc, ')' ); (w_write_text(window^,display_line);  $end {d_sk_accept_broadcast};     procedure d_sk_close {(socket:integer)}; $var (display_line:string[25]; (s_socket:string[7]; (window:window_ptr; $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (str(socket,s_socket);{setup a value for display purposes} (display_line:=concat('SK_CLOSE(', s_socket, ')' ); (w_write_text(window^,display_line);  (sk_close(socket);  $end {d_sk_close};   procedure d_sk_getmessage {(socket:integer; var scraddr:sk_netaddr; 8var ln:integer; var msg:interface packed Larray[min..max:integer] of char)}; $var (display_line:string[50]; (s_socket:string[7]; (s_ln:string[7]; (window:window_ptr;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (sk_getmessage(socket,scraddr,ln,msg);  (str(socket,s_socket) {setup a value for display purposes}; (str(ln,s_ln) {setup a value for display purposes}; (display_line:=concat('SK_GETMESSAGE(', s_socket, ',"scr_addr",', ?s_ln, ',"message")' ); (w_write_text(window^,display_line);  $end;{d_sk_getmessage}    procedure d_sk_vgetmessage {(socket:integer; var scraddr:sk_netaddr; 9var n:integer; datasiz:integer; =data_offset:integer; var msg:interface packed Marray[min..max:integer] of char)}; $var (display_line:string[75]; (s_socket:string[7]; (s_ln:string[7]; (s_datasiz:string[7]; (s_data_offset:string[7]; (window:window_ptr;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^);  (str(socket,s_socket) {setup a value for display purposes}; (str(ln,s_ln) {setup a value for display purposes}; (str(datasiz,s_datasiz); (str(data_offset,s_data_offset); (display_line:=concat('SK_VGETMESSAGE(', s_socket, ',"scr_addr",', ?s_ln, ',', s_datasiz, ',', s_data_offset, ?',"message")' ); (w_write_text(window^,display_line);  (sk_vgetmessage(socket,scraddr,ln,datasiz,data_offset,msg);  $end;{d_sk_vgetmessage}     procedure d_sk_putmessage {(socket:integer; dstaddr:sk_netaddr; 5var msg:interface packed 5array[min..max:integer] of char)}; $var (display_line:string[50]; (s_socket:string[7]; (window:window_ptr; $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^);  (str(socket,s_socket) {setup a value for display purposes}; (display_line:=concat('SK_PUTMESSAGE(', s_socket, L',"dst_addr","message")' ); (w_write_text(window^,display_line);  (sk_putmessage(socket,dstaddr,msg);  $end;{d_sk_putmessage}    procedure d_sk_vputmessage {(socket:integer; var scraddr:sk_netaddr; =datasiz:integer'; =data_offset:integer var msg:interface packed Marray[min..max:integer] of char)}; $var (display_line:string[75]; (s_socket:string[7]; (s_datasiz:string[7]; (s_data_offset:string[7]; (window:window_ptr;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^);  (str(socket,s_socket) {setup a value for display purposes}; (str(datasiz,s_datasiz); (str(data_offset,s_data_offset); (display_line:=concat('SK_VPUTMESSAGE(', s_socket, ',"scr_addr",', =s_datasiz, ',', s_data_offset, ',"message")' ); (w_write_text(window^,display_line);  (sk_vputmessage(socket,scraddr,datasiz,data_offset,msg);  $end;{d_sk_vputmessage}     procedure d_sk_set_timeout {(socket:integer; timeout:integer)}; $var (display_line:string[50]; (s_socket:string[7]; (s_timeout:string[7]; (window:window_ptr; ( $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (str(socket,s_socket);{setup a value for display purposes} (str(timeout,s_timeout);{setup a value for display purposes} (display_line:=concat('SK_SET_TIMEOUT(', s_socket, ',', s_timeout, ?')' ); (w_write_text(window^,display_line);  (sk_set_timeout(socket,timeout); $end {d_sk_set_timeout};      procedure d_sk_node_status {(var stat:st_record)};  $const (stat_count=10; ( $var (display_line:string[95];{25+(stat_count*7)} (window:window_ptr;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (sk_node_status(stat); ( (display_line:='SK_NODE_STATUS('; (stat_rec_decode(display_line,stat_count,stat); (display_line:=concat(display_line,')'); ( (w_write_text(window^,display_line); $ $end;{sk_node_status}   procedure d_sk_nparameters {(var stat:st_record)};  $const (stat_count=10; ( $var (display_line:string[95];{25+(stat_count*7)} (window:window_ptr;  $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^);  (sk_nparameters(stat);  (display_line:='SK_NPARAMETERS('; (stat_rec_decode(display_line,stat_count,stat); (display_line:=concat(display_line,')'); ( (w_write_text(window^,display_line); $ $end;{sk_node_status}  ( (  function d_sk_nresult {(socket:integer; direction:boolean):integer}; $const (success='(success)'; (skt_not_open='(socket not open)'; (time_out='(time_out)'; (msg_too_big='(message too big)'; (network_too_busy='(network too busy)'; (buffer_overflow='(buffer overflow)';  $var (display_line:string[75]; (s_socket:string[7]; (s_direction:string[12]; (s_d_sk_nresult:string[7]; (s_result_text:string[20]; (save_result:integer; (window:window_ptr;   $begin (window:=curr_window; {Set the current window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (save_result:=sk_nresult(socket,direction); (d_sk_nresult:=save_result; ' '{Setup the display description of the returned status.} (s_result_text:='**Unknown_Result**'; (case save_result of .0: s_result_text:=success; .9: s_result_text:=skt_not_open; -10: s_result_text:=time_out; -11: s_result_text:=msg_too_big; -12: s_result_text:=network_too_busy; -13: s_result_text:=buffer_overflow; (end;{case save_result} (str(save_result,s_d_sk_nresult); (str(socket,s_socket);{setup a value for display purposes} (if direction=true then 0s_direction:='"last get"' ,else 0s_direction:='"last put"'; (display_line:=concat('SK_NRESULT(', s_socket, =',', s_direction, ')=',s_d_sk_nresult, Bs_result_text ); (w_write_text(window^,display_line); $ $end {d_sk_nresult};    procedure d_sk_putbroadcast{(socket:integer; 9var dest_name:interface packed array['min..max:integer] Gof char)}; $ $const (lth_max=30;  $var (display_line:string[75]; (s_socket:string[7]; (window:window_ptr; (s_dest_name:string[lth_max]; (amount:integer;  chr_amount:char;  $begin (window:=curr_window;{Set the window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (str(socket,s_socket) {setup a value for display purposes};  '{Strip the broadcast identifier from the beginning of the (user array for display.} +{Calculate the min of the max display length and the string length.} ,amount:=ord(dest_name[min]); ,if amount > lth_max then 0amount := lth_max; +{Move the string to the display area for the length calculated.} ,move_left(dest_name[min+1],s_dest_name[1],amount); + +{Move the amount field into the string length.} ,chr_amount:=chr(amount); ,move_left(chr_amount,s_dest_name,1); ( (display_line:=concat('SK_PUTBROADCAST(', s_socket, A',', s_dest_name, ')' ); (w_write_text(window^,display_line);  (sk_putbroadcast(socket,dest_name); $ $end;{d_sk_putbroadcast}     procedure d_sk_vputbroadcast {(socket:integer; datasiz:integer; ?data_offset:integer; ;var dest_name:interface packed Iarray[min..max:integer] of char)}; $const (lth_max=30;  $var (display_line:string[100]; (window:window_ptr; (s_socket:string[7]; (s_datasiz:string[7]; (s_data_offset:string[7]; (s_dest_name:string[lth_max]; (amount:integer;  chr_amount:char;  $begin (window:=curr_window;{Set the window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (str(socket,s_socket) {setup a value for display purposes}; (str(datasiz,s_datasiz); (str(data_offset,s_data_offset);  '{Strip the broadcast identifier from the beginning of the (user array for display.} +{Calculate the min of the max display length and the string length.} ,amount:=ord(dest_name[min]); ,if amount > lth_max then 0amount := lth_max; +{Move the string to the display area for the length calculated.} ,move_left(dest_name[min+1],s_dest_name[1],amount); + +{Move the amount field into the string length.} ,chr_amount:=chr(amount); ,move_left(chr_amount,s_dest_name,1); ( (display_line:=concat('SK_VPUTBROADCAST(', s_socket, ',', s_datasiz, =',', s_data_offset, ',', s_dest_name, ')' ); (w_write_text(window^,display_line);  (sk_vputbroadcast(socket,datasiz,data_offset,dest_name); $end;{d_sk_vputbroadcast}    function d_ac_getrequest {(accept_socket:integer; wait_time:integer; 8var requestor:sk_netaddr; 8var msg:interface packed array @[min..max:integer] of char) :lo_result}; $var (display_line:string[100]; (s_accept_socket:string[7]; (s_wait_time:string[7]; (s_result:string[25]; (result:lo_result; (window:window_ptr; ( ( $begin (window:=curr_window;{Set the window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (result:=ac_getrequest(accept_socket,wait_time,requestor,msg); (d_ac_getrequest:=result; ' '{lo_res_decode will provide a text description of the ac_getrequest (result} (lo_res_decode(result,s_result); ( (str(wait_time,s_wait_time); (str(accept_socket,s_accept_socket);{Set up a displayable value} (display_line:=concat('AC_GETREQUEST(', s_accept_socket, ',', 8s_wait_time, ',"request_addr","message")=', 8s_result ); (w_write_text(window^,display_line); $end {d_ac_getrequest};    function d_rq_putrequest {(var desc:string; queue_depth:integer; ?msg_size:integer; ;var msg:interface packed array C[min..max:integer) of char; ;var socket:integer; ):lo_result};  $var (display_line:string[200]; (s_socket:string[7]; (s_msg_size:string[7]; (s_queue_depth:string[7]; (s_result:string[25]; (result:lo_result; (window:window_ptr;  $begin  (window:=curr_window;{Set the window to the caller's window} '{Clear the window semaphore for window use by other routines.} ((d_clr_window(window^); / (result:=rq_put_request(desc,queue_depth,msg_size,msg,socket); (d_rq_putrequest:=result; ' '{lo_res_decode will provide a text description of the rq_put_request (result.} (lo_res_decode(result,s_result);  (str(queue_depth,s_queue_depth);{setup a value for display purposes} (str(msg_size,s_msg_size);{setup a value for display purposes} (str(socket,s_socket);{setup a value for display purposes} (display_line:=concat('RQ_PUTREQUEST(', desc, ',', s_queue_depth, L',', s_msg_size, ',"message",', Ms_socket, ')=',s_result); (w_write_text(window^,display_line);  $end {d_put_request};    procedure d_rq_close {(socket:integer)}; $var (display_line:string[25]; (s_socket:string[7]; (window:window_ptr; $begin  (window:=curr_window;{Set the window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (str(socket,s_socket) {setup a value for display purposes}; (display_line:=concat('RQ_CLOSE(', s_socket, ')' ); (w_write_text(window^,display_line);  (rq_close(socket);  $end;{d_rq_close}   procedure d_ac_close {(socket:integer)}; $var (display_line:string[255]; (s_socket:string[7]; (window:window_ptr; $begin  (window:=curr_window;{Set the window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (str(socket,s_socket) {setup a value for display purposes}; (display_line:=concat('AC_CLOSE(', s_socket, ')' ); (w_write_text(window^,display_line);  (ac_close(socket);  $end;{d_ac_close}   function d_rq_getresponse {(socket:integer; wait_time:integer; 9var acceptor:sk_netaddr; 9var msg:interface packed array A[min..max:integer] of char):lo_result};  $var (display_line:string[100]; (s_socket:string[7]; (s_wait_time:string[7]; (s_result:string[25]; (result:lo_result; (window:window_ptr;  $begin (window:=curr_window;{Set the window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^);  (result:=rq_getresponse(socket,wait_time,acceptor,msg); (d_rq_getresponse:=result; ( '{Setup values for display purposes.} (str(wait_time,s_wait_time); (str(socket,s_socket); '{lo_res_decode will provide text description of rq_getresponse (result} (lo_res_decode(result,s_result); ( (display_line:=concat('RQ_GETRESPONSE(', s_socket, ',',s_wait_time, 1',"acceptor_addr","message")=', s_result ); (w_write_text(window^,display_line);  $end; {d_rq_getresponse}   function d_ac_putresponse {(accept_socket:integer; requestor:sk_netaddr; =var msg:interface packed array E[min..max:integer] of char):lo_result};  $var (display_line:string[100]; (s_socket:string[7]; (s_result:string[25]; (result:lo_result; (window:window_ptr;  $begin  (window:=curr_window;{Set the window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (result:=ac_putresponse(accept_socket,requestor,msg); (d_ac_putresponse:=result;  '{convert the socket no. to a string value for display purposes} (str(accept_socket, s_socket); '{lo_res_decode will provide a text description of the ac_putresponse (result.} (lo_res_decode(result,s_result); (display_line:=concat('AC_PUTRESPONSE(', s_socket, =',"request_addr","message")=',sresult); (w_write_text(window^,display_line);  $end;{d_ac_putresponse}    function d_ac_initiate {(var desc:string; queue_depth:integer; :var msg_size:integer; :var socket:integer):lo_result}; $ $var (display_line:string[200]; (s_socket:string[7]; (s_queue_depth:string[7]; (s_msg_size:string; (window:window_ptr;  result:lo_result; (s_result:string[25]; ( $begin (window:=curr_window;{Set the window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^); / (result:=ac_initiate(desc,queue_depth,msg_size,socket); (d_ac_initiate:=result; ' '{lo_res_decode will (provide a text description of the result of (ac_initiate} (lo_res_decode(result,s_result); ( (str(socket,s_socket); (str(queue_depth,s_queue_depth); (str(msg_size,s_msg_size); (display_line:=concat('AC_INITIATE(', desc, ',', s_queue_depth, >',', s_msg_size, ',', s_socket, ')=',s_result ); (w_write_text(window^,display_line); $ $end {d_ac_initiate};     procedure d_bf_flip_record{(var field:interface packed array G[min..max:integer] of char)}; G $var (display_line:string[75]; (s_field:string[7]; (s_old_field:string[7]; (window:window_ptr;  $begin (window:=curr_window;{Set the window to the caller's window} '{Clear the window semaphore for window use by other routines.} (d_clr_window(window^);  (str(ord(field[min]),s_old_field); ( (bf_flip_record(field);  (str(ord(field[min]),s_field);{setup a value for display purposes} (display_line:=concat('BF_FLIP_RECORD(', s_old_field, ='){1st byte now=',s_field, '}' ); (w_write_text(window^,display_line);  $end {d_bf_flip_record};   {$I D.CHNPRIMS} $  {------------------------------------------------------------------------------}  {------------------------------------------------------------------------------}  {Initialization code for the window pointer synchronization semaphore.} $begin (sem_init(d_window_sem,1); '  end.  u O^›¦›¦rc†   {$D USERCOMP+ } { USES statements set up assuming all units are } 8{ on one volume ( in one directory ) }  {**********************************************************************}  {$T D.NETPRIMS }  { D . N E T P R I M S }  { }  { This is an unpublished work copyright 1983 by }  { SofTech Microsystems, Inc. } { } { This item is the property of SofTech Microsystems, Inc., }  { and it may be used, copied or distributed only as permitted }  { in a written license from that company. } { }  { Written: 11/83 by Mal Russell }  { Change Log: }  { Date Initials Change Description }  { ??/83 ??? ????????????????????????????? }  { }  {$C Copyright 1983 SofTech Microsystems, Inc. }  {***********************************************************)***********}  8  UNIT D.NETPRIMS; { unit declaration included here to insure that } 8{ compile-time flag USERCOMP gets set correctly } (  {$I D.NETPRIMS } { actual d.netprims unit } RET M1 M2 1 ÇO^i§›¦cr { This item is the property of SofTech Microsystems, Inc., }  { and it may be used, copied or distributed only as permitted }  { in a written license from that company. }  #Process DBserver (var window:window_rec);  $const (last_get=true; (last_put=false; ( $type (request_type=char; ,  $var (digits :set of '0'..'9';{the ASCII digits} (even_digits:set of '0'..'8';{the even ASCII digits} (digit1,digit2,digit3:integer; (n:integer; (node_ident:string[30];  (comm_data:comm_msg; (display_line:string[255];  (rqstr_addr:sk_netaddr;{the address of the requesting process} (msg_lth :integer; (result :boolean; (done :boolean; (socket:integer; (status:integer; (s_chk_result:string[10]; (  '{$I :DOCFIND}   $begin {DBserver} ( (with comm_data do ,begin /{Open a socket for general communication to other nodes.} /{for d.netprims, set the global window pointer} 0d_set_window(window); 0result:=d_sk_open(socket,skt_buff_size); / /{Store the socket number in the global parameter server_skt 0for access by server_comm, which will be started by the 0main process LDEMO upon signaling via server_sem.} 0server_skt:=socket;  /{Signal to LDEMO that server_skt is ready} 0signal(server_sem);  /{Inform the viewer of the success of the startup.} 0w_write_text(window,' *-----DBSERVER READY-----*');  0even_digits:=['0','2','4','6','8']; 0digits:=['0'..'9']; /{Set timeout time to max value.} /{for d.netprims, set the global window pointer} 0d_set_window(window); 0d_sk_set_timeout(socket,0); 0done:=false; 0while not done do 4begin 7 repeat ;{Read a message} ;{for d.netprims, set the global window pointer} 10 {timeout} ) and ?(status<>12 {skt busy} )); 7 7{If the getmessage was successful, service the request.} 8if status=0 then 8begin 7{Choose the service to perform.} 8case request of  ((result= 0 {success}) and ?(comm_need=open_comm)));  7{If user, stop iterating.} 8if ((result=0) and (comm_need=open_comm)) then {Broadcast for any Specialist to help.} >{for d.netprims, set the global window pointer} ?d_set_window(window); ?d_sk_putbroadcast(socket,spec_broad); > >{Look for an answer.} >{for d.netprims, set the global window pointer} ?d_set_window(window); ?d_sk_getmessage(socket,spec_addr,msg_length, Mspec_broad); > >{If another timeout, ask the user if he ?wishes to keep trying.} >{for d.netprims, set the global window pointer} ?d_set_window(window); ?result:=d_sk_nresult(socket,last_get); ?if result<>0 then Crepeat Gdisplay_line:=concat('Still waiting. ', K' Do you wish to continue', K' (y or n)?'); Gw_write_text(window,display_line); C w_read(window,answer); Cuntil answer in yeses_noes; C ;until ((answer in noes) or (result=0)); ; 7end;{if answer in yeses} 2 2{If the user has decided to quit waiting for help, 3quit the attempt to find a Specialist.} 3if (answer in noes) then 7begin ;display_line:=concat('Sorry we couldn''t help ', ?'you today. ', ?'Hopefully we will be more successful next', ?' time. Please call back again. Goodbye.'); ;w_write_text(window,display_line); ;find_help:=false; 7end;{if answer in noes} /end;{if result = timeout} ' 'end;{with spec_broad} $ $end;{Find_Help} $    {AID_USER sets up the channel communications between the DISPATCHER and the !SPECIALIST nodes.}  procedure aid_user(var chan_id:integer; type_reqst:char); $ $var (exception:boolean; (msg_lth:integer; ( $ $begin{aid_user} (with comm_data do ,begin , /{Initialize the data record. This record is the same record 0utilized in Specialist<-->DBserver dialogue. It is used here 0to conserve buffer space and avoid coding complications. It 0therefore contains some fields which are not interesting to 0the Dispatcher process.} 0spec_type:=type_reqst;{user requested specialist type} 0found:=' ';{not searched for yet} 0continue:=true;{no further dialogue required} 0 /{Transfer the user request to the Specialist for further help. 0Perform the user<--->Specialist dialogue.} 3 /{The user wants a document reference found.} 0request:=find_doc; / 0repeat 3{Send the comm_data area to the Specialist to accept 4dialogue for the user.} 4repeat 7{for d.netprims, set the global window pointer} 8d_set_window(window); 8d_ch_result:=d_ch_send(chan_id,comm_data); 4until not (d_ch_result in [cr_busy,cr_sending,cr_error]); $ 3{If the send was successful, get the Special+ist response 4and write it out to the user. The response may be in 4multiple records requiring multiple network I/Os and 4displays.} 4while (continue and (d_ch_result=cr_success)) do 8begin cr_success then 4begin 8display_line:=concat('I''m sorry to report ', 8'that our Specialists have been taken seriously ', 8'ill. Would you please call back in a little ', 8'while. Someone should be able to help you ', 8'then. Goodbye.'); 8w_write_text(window,display_line); 8exception:=true; 4end;{if d_ch_result<>cr_success} ,end;{with comm_data} $ $end;{aid_user} $ $ $  $begin {dispatcher} '{Open a socket for network communications.} '{for d.netprims, set the global window pointer} (d_set_window(window); (success:=d_sk_open(socket,skt_buff_size);{skt_buff_size a global var}  '{Build the DBserver network identifier.} (DBserv_ident:=concat(user_net_id,d_dbserver);  '{Find the DBserver.} (repeat ,success:=findservice(window,socket,DBserv_ident,DBserv_addr); ,if not success then 0w_write_text(window,'Please start a DBSERVER node'); (until success;  '{Build the General Specialist network identifier.} (Gen_ident:=concat(user_net_id,d_specialist);  (done:=false; (repeat{until done}  ,w_write_text(window, ' Hello out there!'); ,w_write_text(window, +'I''m the Liaison Demonstration. May I have your account number?');  +{Query the user for a valid account number until one is received.} ,repeat 0w_write_text(window, 0'It must be an even number less than 1000 e.g."234".___'); 0readln(number_buffer);  /{Call DBserver for a check.} 0chk_answer:=number_check(number_buffer); 0if chk_answer <> yes then 4begin 8display_line:=concat( ;'Sorry, your number is not currently valid. ', ;'Please try again.'); 8w_write_text(window,display_line); 4end;{if result:=no} ,until chk_answer=yes;  ,w_write_text(window, -'Thank you! I provide two services:'); ,display_line:=concat( -'1. I can provide a demonstration of LIAISON in action while', /' giving general p-System documentation direction.'); ,w_write_text(window, display_line); ,w_write_text(window, -'2. I can also quit the program if you are through.'); ,w_write_text(window, 'With which may I help you (1 or 2)?_' ); +{Read the user choice of service.} ,repeat 0w_read(window,user_answer); ,until user_answer in [documents,quit]; +  {----------------------------------------------------------------------------}  '{Provide the service requested.} (if user_answer = documents then ,begin 0repeat 4w_write_text(window, 7'I can provide documentation direction in three areas:'); 4w_write_text(window, 7' 1. UCSD p-System and facilities.'); 4w_write_text(window, 7' 2. Languages.'); 4w_write_text(window, 5' 3. UCSD p-System implementations on specific hardware.'); 4w_write_text(window, 7' 4. I can return to start.'); 4w_write_text(window, 7'With which may I help you (1,2,3,4)?'); 3{Read user selection of specialty area.} 4w_read(window,user_answer); 0until (user_answer in 8[n_p_system,n_languages,n_hardware,restart]);  /{Set a specialty for which to broadcast.} 0case user_answer of 4n_p_system: 8begin  restart then 0success:=find_help(socket,spec_broad,spec_addr); + +{If find_help was successful, continue.} ,if ((user_answer<>restart) and success) then 0begin L 3{Initialize the protocol record prior to opening 4a channel to the Specialist.} 4with protocol do 8begin  restart and success} ,end {if user_answer = documents} ( (else ( ,if user_answer = quit then 0done := true;  (until done;{end of Dispatcher service} ( '{CLOSE DOWN THE OTHER NODES.} (w_write_text(window,'*** End of the day, everyone! ***'); (w_write_text(window,'**** Shutting Down All Nodes ****');  '{Set the communication record to request shut-down.} (comm_data.request:=quit_time; ' '{Tell DBserver to quit.} '{for d.netprims, set the global window pointer} (d_set_window(window); (d_sk_putmessage(socket,DBserv_addr,comm_data);  (with spec_broad do ,begin /{Set the broadcast record to request shut-down.} 0comm_need:=quit_time; /{Tell all Specialists to quit.} 0net_ident:=Gen_ident; /{for d.netprims, set the global window pointer} 0d_set_window(window); 0d_sk_putbroadcast(socket,spec_broad); ,end;{with spec_broad}  $ {Inform LDEMO of the termination of one of it's processes.} (signal(termination); $ $end;{dispatcher}  RET [ O^:¦›¦,r' { This item is the property of SofTech Microsystems, Inc., }  { and it may be used, copied or distributed only as permitted }  { in a written license from that company. }    {This procedure moves the document text into the document table. It is put !by itself to avoid cluttering the DBserver program.} !  function doc_find(doc_no:integer; var doc_key:string; Bvar doc_name:string):char;    $begin '{Clear the document key for later check.} ' doc_key:=''; '{The default is in case of a no find.? (doc_name:='Your local dealer '; '{Return the requested document description and reference key.} (case doc_no of  -1:begin 1doc_key:=' 1b'; 1doc_name:='OPERATING SYSTEM REFERENCE MANUAL'; /end;  -2:begin 1doc_key:=' 2b'; 1doc_name:='THE UCSD PASCAL HANDBOOK'; /end;  -3:begin 1doc_key:=' 3b'; 1doc_name:='INTERNAL ARCHITECTURE REFERENCE MANUAL'; /end;  -5:begin 1doc_key:=' 5b'; 1doc_name:='PROGRAM DEVELOPMENT REFERENCE MANUAL'; /end;  -9:begin 1doc_key:=' 9b'; 1doc_name:='APPLICATION DEVELOPMENT GUIDE'; /end;  ,11:begin 1doc_key:='11b'; 1doc_name:='ASSEMBLER REFERENCE MANUAL'; /end;  ,13:begin 1doc_key:='13b'; 1doc_name:='ADAPTABLE SYSTEM INSTALLATION MANUAL'; /end;  ,15:begin 1doc_key:='15b'; 1doc_name:='BASIC (LANGUAGE) REFERENCE MANUAL'; /end;  ,17:begin 1doc_key:=' 17'; 1doc_name:='FORTRAN-77 REFERENCE MANUAL'; /end;  ,20:begin 1doc_key:='20b'; 1doc_name:='VERSION IV FOR THE APPLE-II COMPUTER'; /end;  ,21:begin 1doc_key:='21b'; 1doc_name:='OPTIONAL PRODUCTS REFERENCE MANUAL:XENOFILE'; /end;  ,22:begin 1doc_key:='22b'; 1doc_name:='8086 ASSEMBLER REFERENCE MANUAL'; /end;  ,23:begin 1doc_key:='23b'; 1doc_name:='OPTIONAL PRODUCTS REFERENCE MANUAL:EDVANCE'; /end;  ,24:begin 1doc_key:='24b'; 1doc_name:='OPTIONAL PRODUCTS REFERENCE MANUAL:KSAM'; /end;  ,25:begin 1doc_key:='25b'; 1doc_name:='OPTIONAL PRODUCTS REFERENCE MANUAL:SOFTEACH'; /end;  ,26:begin 1doc_key:='26b'; 1doc_name:='IBM PC PERIPHERAL INSTALLATION GUIDE'; /end;  ,27:begin 1doc_key:='27b'; 1doc_name:='IBM FIXED DISC UTILITY PROGRAM (EXTRACT)'; /end;  ,28:begin 1doc_key:='28b'; 1doc_name:='SUPPLEMENT FOR THE IBM PERSONAL COMPUTER'; /end;  ,29:begin 1doc_key:='29b'; 1doc_name:='PERSONAL COMPUTING WITH THE UCSD P-SYSTEM'; /end;  ,33:begin 1doc_key:='33b'; 1doc_name:='SUPPLEMENTAL USERS DOCUMENT - ZENITH COMPUTERS'; /end;  ,34:begin 1doc_key:='34b'; 1doc_name:='SUPPLEMENTAL USERS DOCUMENT - CORVUS COMPUTERS'; /end;  ,35:begin 1doc_key:='35b'; 1doc_name:='SORT/PREPARE SORT REFERENCE MANUAL'; /end;  ,37:begin 1doc_key:='37b'; 1doc_name:='LIAISON PROGRAM DEVELOPMENT REFERENCE MANUAL'; /end;  ,39:begin 1doc_key:='39b'; 1doc_name:='SUPPLEMENTAL USERS MANUAL - DEC PROFESSIONAL 350 PC'; /end;  ,40:begin 1doc_key:='40b'; 1doc_name:='SUPPLEMENTAL USERS DOCUMENT - KAYPRO 4'; /end;  ,41:begin 1doc_key:='41b'; 1doc_name:='SUPPLEMENTAL USERS DOCUMENT - KAYPRO 10'; /end;  ,42:begin 1doc_key:='42b'; 1doc_name:='SUPPLEMENTAL USERS DOCUMENT - Z-100'; /end;  ,43:begin 1doc_key:='43b'; 1doc_name:='APPLE IIe (EXTENDED MEMORY) SUPPLEMENT'; /end;  +end;{case doc_no} &{if nothing found, return an exception} 'doc_find:=yes; 'if (doc_key = '') then doc_find:=no; #end;{doc_find}   ,RET ÇO^¹§›¦rc7 { This item is the property of SofTech Microsystems, Inc., }  { and it may be used, copied or distributed only as permitted }  { in a written license from that company. }    {FINDSERVICE provides a simplified interface for a process to be able to !find a service on the Liaison network. FINDSERVICE acquires that service !-if available- and sets up the communication requirements. FINDSERVICE !is meant to work in conjunction with FINDWORK.}  Function find_service (var window:window_rec; ;socket:integer; var desc:string; 7var choice:sk_netaddr):boolean; $const (queue_depth=1;{take one response to a request} ( $var (offer_skt:integer; (help_coming:lo_result; (display_line:string[255]; (msg_size:integer; $ $begin '{Put out a descriptive line to let the viewer more clearly see (the requestor command sequence.} (display_line:='###{start requestor sequence}###'; (w_write_text(window,display_line); ' '{Socket requires a byte_flip since it is used as a message value.} '{for d.netprims, set the global window pointer} (d_set_window(window); (d_bf_flip_record(socket);  '{Message size is one word, the socket # with which to communicate.} (msg_size:=size_of(socket); ( (repeat +{Make a request across the network for the server named. The + first responder will be accepted.} +{for d.netprims, set the global window pointer} ,d_set_window(window); ,help_coming:=d_rq_putrequest(desc,queue_depth,msg_size,socket, Ioffer_skt);  +{If the request for service went out successfully, ,pick up the first answer to the request. This will time out ,in 1800 60ths of a second =30 seconds.} ,if help_coming = lo_okay then /{Repeat until a good response is received.} 0repeat 3{for d.netprims, set the global window pointer} 4d_set_window(window); 4help_coming:=d_rq_getresponse(offer_skt,1800,choice, Uchoice.socketnum); 0until help_coming <> lo_invalid_msg; 0 +{choice.socketnum requires a byte_flip since it came from a message ,value.} +{for d.netprims, set the global window pointer} ,d_set_window(window); ,d_bf_flip_record(choice.socketnum);  +{Close out any outstanding offers and the "offer" socket ,since it is no longer necessary.} +{for d.netprims, set the global window pointer} ,d_set_window(window); ,d_rq_close(offer_skt);  (until ((help_coming = lo_okay) or (help_coming = lo_no_message)); ' '{Put out a descriptive line to let the viewer m-ore clearly see (the finish of the requestor command sequence.} (display_line:=' ###{end requestor sequence}###'; (w_write_text(window,display_line); ' (findservice:=true; (if help_coming = lo_no_message then ,findservice:=false;  $end;{findservice}   PASCAL MAIN M1 M2 RET DBSERVERRET2 FINDSERVÃοÀ  |-ÀO^¦™¨QrcW{ This item is the property of SofTech Microsystems, Inc., }  { and it may be used, copied or distributed only as permitted }  { in a written license from that company. }   { This file is INCLUDED either by ldemusr.text or ldemcrv.text.}  { The file ldemusr.text sets the USERCOMP flag so that the }  { USES statements used in compilation assume all necessary }  { units are located on prefixed volume ( directory ). }  { The file ldemcrv.text sets the USERCOMP flag so that the }  { USES statements used in compilation specify the volume }  { ( directory ) on which the unit will be found. }    { PROGRAM LDEMO; in root text file either ldemusr or ldemcrv }  { for user compilation all units expected to be on prefix disk } #{$B USERCOMP+ } $uses '{$L-} '{$U sockets.code} sockets, '{$U byte_flip.code} byte_flip, '{$U locator.code} locator, '{$U time_out.code} time_out, '{$U chservices.code} chservices, '{$U chgroup.code} chgroup, '{$U errorhandl.code} errorhandl (cancel), '{$U windowops.code} windowops, '{$U d.netprims.code} d_netprims; '{$L^} #{$E USERCOMP+ }  #{ for in-house compilation explicit uses are necessary } #{$B USERCOMP- } $uses '{$L-} '{$U sockets:sockets.code} sockets, '{$U sockets:byte_flip.code} byte_flip, '{$U locator:locator.code} locator, '{$U sockets:time_out.code} time_out, '{$U channel:chservices.code} chservices, '{$U channel:chgroup.code} chgroup, '{$U libunit:errorhandl.code} error_handling (cancel), '{$U ldemo:windowops.code} windowops, '{$U ldemo:d.netprims.code} d_netprims; '{$L^} #{$E USERCOMP- }   $const ' (db_stack_size=1600;{the stack size for DBserver} (sp_stack_size=2000;{the stack size for Document Specialists} (sv_stack_size=2400;{the stack size for Server_Comm} (yes='Y'; (no ='N'; ! (chk_acct_no='A'; (find_doc ='F'; (document ='D'; (open_comm ='O'; (quit_time ='Q'; ( (p_System ='p'; (languages ='L'; (hardware ='H'; : (n_p_System ='1'; (n_languages ='2'; (n_hardware ='3'; (n_cancel_r ='4'; : (d_dbserver= ' d.DBSERVER'; (d_specialist=' d.SPECIALIST'; (d_hardware= ' d.HARDWARE'; (d_p_system= ' d.p-SYSTEM'; (d_languages= ' d.LANGUAGES'; $ $type  (broad_rec = record ,net_ident:string[30]; ,comm_need:char; (end;{broad_rec} ! (comm_msg = record ,case request:char of 0chk_acct_no: 3(chk_result:char; 4acct_no :st-ring[3]); # 0find_doc: 3(spec_type:char; 4found :char; 4continue:boolean; 4ans_req:boolean; 4resp_lim:char; 4response:char; 4doc_no :integer; 4doc_key :string[3]; 4doc_desc:string[125]);  0open_comm: 3(name:string[25]);  0quit_time: 3(same_name:string[25]); ' ,end;{comm_msg} ' , $var (display_line:string[255]; (user_net_ident:string[15]; (n : integer; (count:integer; (dmy:process_id;{a dummy variable for collecting process ids} (server_id:process_id;{the id of SERVER_COMM, if started} (answer:char; (result:boolean; (specialty:string[25]; (skt_buff_size:integer; (disp_window:integer; (window_width:integer; (window_height:integer; (windows:array[0..4] of window_ptr; (server_sem:semaphore; (server_skt:integer; (yeses:set of char; (noes:set of char; (yeses_noes:set of char; (yorn:char;{User responses of yes(y) or no(n) go here}  termination:semaphore;   '{$I :FINDSERV} {Include the Find Service network procedure 9"open" function.} '{$I :DISPATCHER} {Include the Dispatcher process.} '{$I :DBSERVER} {Include the Data Base Server process.} '{$I :SERVERCOMM} {Include the Server Communications process.} '{$I :SPECIALIST} {Include the Document Specialist process.}    $begin {main process}  '{Initialize the yes and no response sets.} (yeses:=['y','Y']; (noes :=['n','N']; (yeses_noes:=yeses+noes;  '{Setup a global value for socket buffer sizes.} (skt_buff_size:=160+size_of(comm_msg); ' '{Set window size and location for node windows and the LDEMO (main process.} '{A window takes up 1/4 of the screen minus 2 lines and 2 columns (for the frame and title. Remainders, if any, are left to the (right and bottom of the screen.} (window_width:=(screen.size.x div 2)-2; (window_height:=(screen.size.y div 2)-2; (for n := 0 to 4 do ,begin /{Allocate the space for the window.} 0new(windows[n]); / /{Initialize the window variables prior to opening the window.} 0with windows[n]^ do 4begin 7{Set the pointer in the window record to point to 7 itself.} 8pointer:=windows[n]; 7 7{Windows 0,1,and 3 go on the left side of the screen; 8windows 2 and 4 go on the right side.} 8if n = 0 then )'); 0w_write_text(windows[0]^,display_line); 0w_readln(windows[0]^,user_net_ident); ,until length(user_net_ident) <= 15; + +{Give the user a chance to validate the identifier.} ,display_line:=concat('Is "',user_net_ident,'" correct?'); ,w_write_text(windows[0]^,display_line); ,w_read(windows[0]^,yorn); (until (yorn in yeses); ' '{The maximum number of user windows is 4.} (n:=4; ' '{Determine if the user wishes to have a DBserver process (started in this processor.} (repeat ,display_line:=concat('Is there a DBSERVER node already ', ?'available in the network (y or n)?'); ,w_write_text(windows[0]^,display_line); ,w_read(windows[0]^,yorn); (until yorn in yeses_noes; ' '{If the user wishes a DBserver node, start it and decrement the (number of windows remaining.} (if yorn in noes then ,begin /{Initialize a semaphore for use by DBSERVER. DBSERVER 0will signal when it has opened a socket for use by 0server_comm, and placed the n.umber in server_skt. The 0socket is gotten by DBSERVER so that the user may 0better see the cause/effect relations in the logical 0window, that is, DBSERVER's. A simpler method would be 0for the main program to open the socket before starting 0either process.} 0sem_init(server_sem,0); / /{Set the window title.} 0windows[n]^.window_name:='DB Server'; / /{Open a window for the data base server process.} 0w_open_window(windows[n]^); / /{Start the data base server program.} 0start (DBserver (windows[n]^), ;dmy,sv_stack_size); / /{Wait for DBSERVER to open a socket.}; 0wait(server_sem); / /{Start the server communications setup process.} 0start (server_comm (windows[n]^,server_skt,d_dbserver), ;server_id,db_stack_size); 0n:=n-1; ,end;{if yorn in yeses}  {----------------------------------------------------------------------------}  '{Determine if the user wishes to have a Dispatcher process (started in this processor.} (disp_window:=0; (repeat ,display_line:=concat('Do you wish a DISPATCHER node ', ='(y or n, you must have one if this', =' is the only processor)?'); ,w_write_text(windows[0]^,display_line); ,w_read(windows[0]^,yorn); (until yorn in yeses_noes; ' '{If the user wishes a Dispatcher node, it will be started later (to avoid its console communication confusing the LDEMO console (communication. At this point, the window assignment is saved, (and the number of windows remaining is decremented.} (if yorn in yeses then ,begin /{Set the window title} 0windows[n]^.window_name:='Dispatcher'; /{Save the window no. for later.} 0disp_window:=n; 0n:=n-1; ,end;{if yorn in yeses}  ({Determine if the user wishes to have one or more Specialist )processes started in this processor.} )repeat -display_line:=concat('Do you wish a SPECIALIST node ', >'(y or n, you must have one if this', >' is the only processor.)?'); -w_write_text(windows[0]^,display_line); -w_read(windows[0]^,yorn); )until yorn in yeses_noes; ( ({As long as the user wishes another Specialist node and )there are windows remaining, start another Specialist node.} )while ((yorn in yeses) and (n <> 0)) do -begin 0{Determine what type of specialty the node will have.} 1repeat 5display_line:=concat 9('What type? 1)p-System 2)Languages ', :'3)Hardware Supported 4)Cancel Request '); 5w_write_text(windows[0]^,display_line); 5w_read(windows[0]^,answer); 1until answer in [n_p_system,n_languages,n_hardware, Mn_cancel_r]; 0 0{Set the node specialty identifier.} 1case answer of 5n_p_System: 9begin <{Set the broadcast identifier.} =specialty:=d_p_system; <{Set the window name.} =windows[n]^.window_name:='p-System Specialist'; 9end;{case n_p_system}  5n_languages: 9begin <{Set the broadcast identifier.} =specialty:=d_languages; <{Set the window name.} =windows[n]^.window_name:='Languages Specialist'; 9end;{case n_languages}  5n_hardware: 9begin <{Set the broadcast identifier.} =specialty:=d_hardware; <{Set the window name.} =windows[n]^.window_name:='Hardware Specialist'; 9end;{case n_hardware} 1end;{case answer of } 0 0{If the request for a Specialist was not canceled, open 1a window for the specialist process and start it.} 1if answer <> n_cancel_r then 5begin 8{Open the window for the Specialist Process.} 9w_open_window(windows[n]^); 9start (Specialist (windows[n]^,specialty), Ldmy,sp_stack_size); 9n:=n-1; 8{If there are any windows remaining, ask the user 9if he wishes any more Specialist nodes.} 9if n <> 0 then ;begin =w_write_text(windows[0]^, ='Do you wish another SPECIALIST node (y or n)'); =w_read(windows[0]^,yorn); ;end;{if n <> 0} 5end {if answer <> n_cancel_r} 1else 4{The user wishes no more Specialist nodes.} 5yorn:='n'; -end;{while yorn in yeses and n<>0}  ({If the user requested a Dispatcher node, start it.} )if disp_window <> 0 then -with windows[disp_window]^ do 1begin 4{If there is room on the screen, then make the dispatcher. 5window as large as possible.} 4{If the window above is not used, use that space.} 5if (disp_window <= (n + 2)) then 9begin =location.y:=location.y-(size.y+2); =size.y:=size.y+size.y+2; 9end; 4{If the dispatcher is the only window on the screen, 5use the whole screen.} 5if n = 3 then 9begin =location.x:=location.x-(size.x+2); =size.x:=size.x+size.x+2; 9end; 1 4{Open the window for the Dispatcher process.} 5w_open_window(windows[disp_window]^); 4 4{Start the Dispatcher process.} 5start (Dispatcher (windows[disp_window]^), Hdmy,db_stack_size);  1end;{if disp_window <> 0 then with windows[disp_window]^} 5 ({Initialize the termination semaphore.} )sem_init(termination,0); ( ({Wait for all n processes to terminate before quitting the program.} )for count := 4 downto (n+1) do -wait(termination); 1 ({Close all open windows. This cannot be performed in the wait loop )above since the processes do not necessarily stop in order of )window number.} )for count := 4 downto (n+1) do -w_close_window(windows[count]^); ) ({Release the space for the window descriptors.} )for n := 0 to 4 do 1dispose(windows[n]);   end.{ldemo}    O^›¦›¦rcg   {$D USERCOMP+ } { USES statements set up assuming all units are } 8{ on one volume ( in one directory ) }  {**********************************************************************}  {$T LDEMO }  { L D E M O }  { }  { This is an unpublished work copyright 1983 by }  { SofTech Microsystems, Inc. } { } { This item is the property of SofTech Microsystems, Inc., }  { and it may be used, copied or distributed only as permitted }  { in a written license from that company. } { }  { Written: 11/83 by Mal Russell }  { Change Log: }  { Date Initials Change Description }  { ??/83 ??? ????????????????????????????? }  { }  {$C Copyright 1983 SofTech Microsystems, Inc. }  {***********************************************************/***********}  8  PROGRAM LDEMO; { program declaration included here to insure that } 8{ compile-time flag USERCOMP gets set correctly } (  {$I LDEMO } { actual ldemo program } RET M1 M2  O^¹§›¦'rcw  {$P}  { This item is the property of SofTech Microsystems, Inc., }  { and it may be used, copied or distributed only as permitted }  { in a written license from that company. }    {SERVER_COMM will setup communications with any broadcasting -"requestor"- !node using the Acceptor/Requestor protocols for any single node -"acceptor"- !within the same processor as SERVER_COMM. It accomplishes this by !performing the usual communications with the FIND_WORK function, and then !returning the acceptor's socket to the requestor. The requestor must then !make all individual requests for action (e.g. print a line) to the acceptor's !address and socket location. In this simplified version, SERVER_COMM does !not support request parameter manipulation.}   process server_comm (var window:window_rec; 9socket:integer; server_name:string);   var 'broadcast_desc:string[30];  requestor:sk_net_addr;  q:boolean;   {FINDWORK provides, for a process which performs a service, a function !which finds other processes which are requesting the service performed.}  function Findwork (var window:window_rec; 7caller_skt:integer; desc:string; 3var requestor:sk_netaddr):boolean; $ $const (queue_depth=1;{Queue up to " " requests at a time.} $ $var (request_skt:integer; (accpt_skt:integer; (accepted:lo_result; (msg_size:integer; (display_line:string[255]; ( $begin '{Put out a descriptive line to let the viewer more clearly see (the acceptor command sequence.} (display_line:=' ### {start acceptor sequence} ###'; (w_write_text(window,display_line); ' '{The caller communication socket requires a byte_flip since it will (be sent as a message.} '{for d.netprims, set the global window pointer} (d_set_window(window); (d_bf_flip_record(caller_skt); ' '{The message size will be the size of the requestor socket number.} (msg_size:=size_of(request_skt); ' '{Look for a request for a server with tag "desc". Any (requestor will be accepted and returned to the caller if service (is established.} ,repeat /{Start by opening a request socket for receiving calls 0for service.} /{for d.netprims, set the global window pointer} 0d_set_window(window); 0accepted:=d_ac_initiate(desc,queue_depth,msg_size,accpt_skt); $ /{If a socket was opened, get a request.} 0if accepted = lo_okay then 4repeat 7{for d.netprims, set the global window pointer} 8d_set_window(/window); 8accepted:=  2 do ,q:=find_work(window, socket, broadcast_desc, requestor); ( $end;{server_comm} : PASCAL MAIN M1 M2 RET DBSERVER#QÈ#2RET2 Ê…15?5?½ F+2O^™¦ü§®rF‡ { This item is the property of SofTech Microsystems, Inc., }  { and it may be used, copied or distributed only as permitted }  { in a written license from that company. }    Process Specialist (var window:window_rec; specialty:string);  #const ' 'last_get=true; 'last_put=false; ' #var 'dbserv_skt: integer;{Used for comm to DBserver.} 'special_skt: integer;{Used for comm to Dispatcher.} 'general_skt: integer;{Used to establish communications with =dispatchers nee0ding general help.} 'DB_addr:sk_netaddr; 'work_addr:sk_netaddr; 'dump_addr:sk_netaddr; 'work_channel:integer; 'protocol:ch_p_desc; 'd_ch_result:ch_result; ' 'comm_data:comm_msg; 'msg_lth:integer; 'search_name:string[30]; 'spec_ident:string[30]; 'gen_ident:string[30];  parameters:string;  success:boolean;  start_comm:broad_rec;  display_line:string[255]; '  {GIVE_HELP performs the documentation specialty area communications including !the actual seeking of documentation references from DBSERVER. GIVE_HELP uses !the channel services for communication to DISPATCHER and socket services !for communication with DBSERVER.}  procedure give_help (var work_channel:integer; var special_skt:integer; 5var db_addr:sk_netaddr);  $const (abort ='A'; ( $var $ msg_lth:integer; (d_ch_result:ch_result; (db_result:integer; . $ $begin 'with comm_data do +begin ' .{Read the user documentation request.} /repeat 2{for d.netprims, set the global window pointer} 3d_set_window(window); 3d_ch_result:=d_ch_receive(work_channel, comm_data, msg_lth); /until not (d_ch_result in [cr_busy,cr_receiving,cr_error]); . .{If the channel connection has been severed, handle it as /an abort.} /if ((d_ch_result<>cr_success) or (request<>find_doc)) then 3spec_type:=abort .{Otherwise say Hello to the user and go on to display the /documentation areas handled.} /else 3begin 7continue:=true;{there will be more to display} 7ans_req:=true;{there will be an answer expected} 7doc_no:=0;{no document here} 6 6{Preserve byte sex continuity.} 6{for d.netprims, set the global window pointer} 7d_set_window(window); 7d_bf_flip_record(continue); 6{for d.netprims, set the global window pointer} 7d_set_window(window); 7d_bf_flip_record(ans_req); 7 7doc_key:=''; 7doc_desc:=concat('Hello, I''m a document specialist. ', ;'I can give you references on:'); 6{Write the phrase to the user and await a response.} 7repeat :{for d.netprims, set the global window pointer} ;d_set_window(window); ;d_ch_result:=d_ch_send(work_channel,comm_data); 7until not (d_ch_result in F[cr_busy,cr_sending,cr_error]); . end;{d_ch_result<>cr_success or request<>find_doc ... else} 3 -{Process the individual documentation areas.} .case spec_type of . 2p_System: 6begin  9{Continue the sentence.} :doc_desc:=concat( >'General p-System Understanding- ', >' 1.Overview 2.Architecture 3.Installation,'); 9{Write comm_data to the Dispatcher.} :repeat ={for d.netprims, set the global window pointer} >d_set_window(window); >d_ch_result:=d_ch_send(work_channel,comm_data); :until not (d_ch_result in I[cr_busy,cr_sending,cr_error]);  :doc_desc:=concat( >' or Specific Major Areas- 4.Applications ', >' 5.Liaison 6.Program Development.'); 9{Write comm_data to the Dispatcher.} :repeat ={for d.netprims, set the global window pointer} >d_set_window(window); >d_ch_result:=d_ch_send(work_channel,comm_data); :until not (d_ch_result in I[cr_busy,cr_sending,cr_error]);  :resp_lim:='6';{dispatcher will check that the Iresponse is in the range} :doc_desc:='Please choose one (1-6).'; :ans_req:=true;{answer expected} :continue:=false;{message is ended} 6 9{Preserve byte sex continuity.} 9{for d.netprims, set the global window pointer} :d_set_window(window); :d_bf_flip_record(continue); 9{for d.netprims, set the global window pointer} :d_set_window(window); :d_bf_flip_record(ans_req); 7 9{Write comm_data to the Dispatcher.} :repeat ={for d.netprims, set the global window pointer} >d_set_window(window); >d_ch_result:=d_ch_send(work_channel,comm_data); :until not (d_ch_result in I[cr_busy,cr_sending,cr_error]);  9{Look for the user Response.} :repeat ={for d.netprims, set the global window pointer} >d_set_window(window); >d_ch_result:=d_ch_receive(work_channel, Rcomm_data,msg_lth); :until not (d_ch_result in G[cr_busy,cr_receiving,cr_error]);   :case response of >'1':d0oc_no:= 1; >'2':doc_no:= 3; >'3':doc_no:=13; >'4':doc_no:= 9; >'5':doc_no:=37; >'6':doc_no:= 5; :end;{case response}  6end;{case spec_type of p_System}   2languages: 6begin  9{Continue the sentence.} :doc_desc:=concat('High_level Languages - 1.UCSD ', >' Pascal 2.Fortran 3.Basic ,'); 9{Write comm_data to the Dispatcher.} :repeat ={for d.netprims, set the global window pointer} >d_set_window(window); >d_ch_result:=d_ch_send(work_channel,comm_data); :until not (d_ch_result in I[cr_busy,cr_sending,cr_error]);  :doc_desc:=concat('or Assembly Languages - ', >' 4.General Use 5.8086/8088 '); 9{Write comm_data to the Dispatcher.} :repeat ={for d.netprims, set the global window pointer} >d_set_window(window); >d_ch_result:=d_ch_send(work_channel,comm_data); :until not (d_ch_result in I[cr_busy,cr_sending,cr_error]);  :doc_desc:='Please choose one (1-5).'; :ans_req:=true;{answer expected} :continue:=false;{message is ended} 6 9{Preserve byte sex continuity.} 9{for d.netprims, set the global window pointer} :d_set_window(window); :d_bf_flip_record(continue); 9{for d.netprims, set the global window pointer} :d_set_window(window); :d_bf_flip_record(ans_req); 7 :resp_lim:='5';{dispatcher will check that the Iresponse is in the range} 9{Write comm_data to the Dispatcher.} :repeat ={for d.netprims, set the global window pointer} >d_set_window(window); >d_ch_result:=d_ch_send(work_channel,comm_data); :until not (d_ch_result in I[cr_busy,cr_sending,cr_error]);  9{Look for the user Response.} :repeat ={for d.netprims, set the global window pointer} >d_set_window(window); >d_ch_result:=d_ch_receive(work_channel, Xcomm_data,msg_lth); :until not (d_ch_result in I[cr_busy,cr_receiving,cr_error]);   :case response of >'1':doc_no:=2; >'2':doc_no:=17; >'3':doc_no:=15; >'4':doc_no:=11; >'5':doc_no:=22; :end;{case response}  6end;{case spec_type of languages}   2hardware: 6begin 9{Continue the dialog about hardware support.} :doc_desc:=concat('Some Hardware Specific Support ', :'Aids Are For- 1.Apple-II 2.KayPro 4 ', :'3.Kaypro 10 4.Corvus '); 9{Write comm_data to the Dispatcher.} :repeat ={for d.netprims, set the global window pointer} >d_set_window(window); >d_ch_result:=d_ch_send(work_channel,comm_data); :until not (d_ch_result in I[cr_busy,cr_sending,cr_error]);  :doc_desc:= >'5.DEC Pro 350 6.Z-100 7.Zenith 8.IBM PC'; 9{Write comm_data to the Dispatcher.} :repeat ={for d.netprims, set the global window pointer} >d_set_window(window); >d_ch_result:=d_ch_send(work_channel,comm_data); :until not (d_ch_result in H[cr_busy,cr_sending,cr_error]);  :doc_desc:='Please choose one (1-8).'; :ans_req:=true;{answer expected} :continue:=false;{message is ended} 6 9{Preserve byte sex continuity.} 9{for d.netprims, set the global window pointer} :d_set_window(window); :d_bf_flip_record(continue); 9{for d.netprims, set the global window pointer} :d_set_window(window); :d_bf_flip_record(ans_req); 7 :resp_lim:='8';{dispatcher will check that the Iresponse is in the range} 9{Write comm_data to the Dispatcher.} :repeat ={for d.netprims, set the global window pointer} >d_set_window(window); >d_ch_result:=d_ch_send(work_channel, Ucomm_data); :until not (d_ch_result in H[cr_busy,cr_sending,cr_error]);  9{Look for the user Response.} :repeat ={for d.netprims, set the global window pointer} >d_set_window(window); >d_ch_result:=d_ch_receive(work_channel, Rcomm_data,msg_lth); :until not (d_ch_result in G[cr_busy,cr_receiving,cr_error]);  :case response of >'1':doc_no:=20; >'2':doc_no:=40; >'3':doc_no:=41; >'4':doc_no:=34; >'5':doc_no:=39; >'6':doc_no:=42; >'7':doc_no:=33; >'8':doc_no:=28; :end;{case response}  6end;{case spec_type of hardware} & .end;{case spec_type} 9 -{If the operation wasn't aborted, get a document reference.} .if spec_type <> abort then - begin 5{Set the request to find a document.} 6request:=find_doc; 5 51{Perform a byte flip on doc_no to normalize byte sex.} 5{for d.netprims, set the global window pointer} 6d_set_window(window); 6d_bf_flip_record(doc_no); 5 5{Ask DBserver for the reference.} 5{for d.netprims, set the global window pointer} 6d_set_window(window); 6d_sk_putmessage(dbserv_skt, DB_addr, comm_data);  5{Wait for a document reference. This process assumes 6that messages will be answers to its requests. Any 6others are either errors, or leftover responses from 6previous communications, which may be discarded.} 6repeat 9{for d.netprims, set the global window pointer} :d_set_window(window); :d_sk_getmessage(dbserv_skt, dump_addr, msg_lth, Kcomm_data); 9{Check the results of the getmessage.} 9{for d.netprims, set the global window pointer} :d_set_window(window); :db_result:=d_sk_nresult(dbserv_skt,true); 6until ((db_result=0) and (request=document));  6continue:=true;{more to the message}  ans_req:=false;{no more user responses} 5{Preserve byte sex continuity.} 5{for d.netprims, set the global window pointer} 6d_set_window(window); 6d_bf_flip_record(continue); 5{for d.netprims, set the global window pointer} 6d_set_window(window); 6d_bf_flip_record(ans_req);  5{Send the response to the Dispatcher.} 6repeat 9{for d.netprims, set the global window pointer} :d_set_window(window); :d_ch_result:=d_ch_send(work_channel,comm_data); 6until not (d_ch_result in [cr_busy,cr_sending,cr_error]);  5{Say goodbye.} 6doc_desc:=concat(' is an excellent reference. I''m ', >'glad to have been of some help. Goodbye now.');  5{No further answer is expected.} 6ans_req:=false; 5{This session is over.} 6continue:=false;  5{Preserve byte sex continuity.} 5{for d.netprims, set the global window pointer} 6d_set_window(window); 6d_bf_flip_record(continue); 5{for d.netprims, set the global window pointer} 6d_set_window(window); 6d_bf_flip_record(ans_req); 6 5{Write the phrase to the Dispatcher.} 6repeat 9{for d.netprims, set the global window pointer} :d_set_window(window); :d_ch_result:=d_ch_send(work_channel,comm_data); 6until not (d_ch_result in [cr_busy,cr_sending,cr_error]); 5 1 end;{if not abort} > 2 *end;{with comm_data}   end;{give_help} + (  {ACCEPT_WORK uses the broadcast services to look for work under both the !specialty area and the general aid area. ACCEPT_WORK will accept two !request types:find a document, or shut down the node.}  procedure accept_work (gen_skt:integer; spec_skt:integer; 3var work_addr:sk_net_addr);  $var (result:integer; (msg_lth:integer; (work_found:boolean;   $begin{accept_work} (with start_comm do ( ,repeat {until result=0 and comm_need=quit_time or open_comm} /{Look for work on the specialty socket for 30 seconds.} /{for d.netprims, set the global window pointer} 0d_set_window(window); 0d_sk_set_timeout(spec_skt, 1800);{set timeout to 30 seconds} $ /{for d.netprims, set the global window pointer} 0d_set_window(window); 0d_sk_getmessage(spec_skt,work_addr,msg_lth,start_comm); $ /{Did the getmessage find any work?} /{for d.netprims, set the global window pointer} 0d_set_window(window); 0result:=d_sk_nresult(spec_skt,last_get); / /{If the specialty socket timed out, try the general 0work socket for anyone who needs help. Otherwise, 0retry the specialty socket. The return must have been 0a mistaken communication.} 0if result = 10 {timeout} then 4begin 7{Look for work on the general socket for 1 second.} 7{for d.netprims, set the global window pointer} 8d_set_window(window); 8d_sk_set_timeout(gen_skt,60);{set timeout to 1 second.}  7{for d.netprims, set the global window pointer} 8d_set_window(window); 8d_sk_getmessage(gen_skt,work_addr,msg_lth,start_comm);  7{Did the getmessage find any work?} 7{for d.netprims, set the global window pointer} 8d_set_window(window); 8result:=d_sk_nresult(gen_skt,last_get); 4end;{if result = 10} 4 ,until (1(result=0) and ((comm_need=quit_time) or C(comm_need=open_comm))); ( $end;{accept_work}   $begin{specialist}  '{Open sockets and open communication with DBserver.} (with comm_data do ,begin /{Open socket for use in communication with DBserver.} /{for d.netprims, set the global window pointer} 0d_set_window(window); 0success:=d_sk_open(dbserv_skt,skt_buff_size);  /{Build a search name for finding a DBserver process.} 0search_name:=concat(user_net_ident,d_dbserver);  /{find_service will find a DBserver process and return.} 0success:=find_service(window,dbserv_skt,search_name,DB_addr);  /{Build a network identifier from the catenation of the 0user supplied network identifier, and the specialty 0area identifier.} 0spec_ident:=concat(user_net_ident,specialty);  /{Open socket for use in serving the specialty area.} /{for d.netprims, set the global window pointer} 0d_set_window(window); 0success:=d_sk_open(special_skt,skt_buff_size);  /{Accept broadcasts to the specialty identifier.} /{for d.netprims, set the global window pointer} 0d_set_window(window); 0d_sk_accept_broadcast(special_skt,spec_ident);  /{Open a general socket for use in serving anyone who needs 0general help.} /{for d.netprims, set the global window pointer} 0d_set_window(window); 0success:=d_sk_open(general_skt,skt_buff_size);  /{Build a network identifier from the concatenation of the 0user supplied network identifier and the general identifier.} 0gen_ident:=concat(user_net_ident,d_specialist); / /{Accept broadcasts to the general identifier.} /{for d.netprims, set the global window pointer} 0d_set_window(window); 0d_sk_accept_broadcast(general_skt,gen_ident); . /{Initialize the protocol record prior to opening a channel / to the Specialist.} 0with protocol do 4begin 8p_type:=single;{single packet delivery} 8s_max_rcv_msg:=size_of(comm_data); 8s_max_snd_msg:=size_of(comm_data); 8ack_wait_time:=3600{60 sec}; 8rcv_wait_time:=3600{60 sec}; 4end;{with protocol} G 0repeat {until Quit_Time} 3{Use accept_work to find work to do.} 4accept_work(general_skt, special_skt, work_addr); $ 3{Do work requested.} 4if start_comm.comm_need =open_comm then 8begin ;{Open a channel for communication with the user Specialist<--->DBserver !‚ƒiëP ‚ƒkëP‹-!‚ƒ~ëP ‚ƒ€ëP‹!‚ƒ–ëP ‚ƒ˜ëP‹ !‚ƒ¨ëP ‚ƒªëP‹ú!‚ƒÀëP ‚ƒÂëP‹é!‚ƒÖëP ‚ƒØëP‹Ø!‚ƒîëP ‚ƒðëP‹Ç!‚„ëP ‚„ëP‹¶!‚„ëP ‚„ëP‹¥!‚„1ëP ‚„3ëP‹”!‚„HëP ‚„JëP‹ƒ!‚„bëP ‚„dëPŠs!‚„|ëP ‚„~ëPŠc!‚„ëP ‚„’ëPŠS!‚„©ëP ‚„«ëPŠC!‚„ÅëP ‚„ÇëPŠ3!‚„ÛëP ‚„ÝëPŠ#!‚„ñëP ‚„óëPŠ!‚…ëP ‚…ëPŠÖ…€Yk!‚‚ÂèÔ€Nk– 4‡Þ‡” „€î…€œ” ¤€ì‡€î¥€§†€¥Þ‡‚…H” dƒ…XÇŽ`ƒ…\ÇŽ‡” ‡€î” ¤€í‡€íåÕE‡” ‡€î„€æ„€ë€‘„” ‡” ‡€î” ¤€ï‡€ï ±‡€ï ±¡Ôʇ€ï°Õ‡‹â€Y¤„§Ò€N¤Š:„§¤€ö¤ +‡€ö²Ô„+ì§`ÐÚñ€N¤+í¤ Šã„„§ì§dÐÚñ€N¤„€ð‚…`ë ‡€NÒ „€ð‚…bë „f¤€ö„€ö‚…d” „€ö„€ð˜” „€ö‚…o” „€öëÿ‡„f˜” ŠH‡‚…p” ‡” „$” ‡$„%„'¤€D¤Š„‚…z뇂…” Š ¤€íŠÖ…Œ‡€íñ‡” ‡€î„€æ€‘„” ‹´þ…€Œ” ‡” ‡€î” ‡‚…Ÿ” †€ÙÞ”– õ­„€…„€¯¬Pd‚…±ëÿ‡€²d˜” ‡€²” „€±” k‡€²” „€…ca” j"ÒE‡€²” !PF‡€®`” j‡€²” `” "Ò‡€²” !‡€®„€±” j"°"° Ô»‡€²” !” ¤€³"Ò ‡€®ç Ĥ€³"°"° Ô€d‚…Ãëÿ‡€²d˜” –€² 5o„G„p2¬P‡tÞ`¤„†€˜” „„G˜€_” „ëÓ‡s‡r`˜„ ¤Ší”–t&5­ª” ‡8x€‘ˆ`” i! @Úñâ!±­€F± Ô€A¦Šo¦¦¦!­ª” ˆ” ­ª” ˆ” ˆ"‚‚Âëˆ$kc‚…Õ€#” c‚…ç€@” cë}­ª” ‡8x€‘ˆ” i! Úñã­‹=ˆ$kc‚…ö€!” c‚†€O” cë}­ª” ‡8x€‘ˆ” i! Úñãˆ$kc‚†€,” c‚†6€O” cë}­ª” ‡8x€‘ˆ” i! Úñã€6¦ˆ$‚†Hë}¦¦­ª” ˆ” ­ª” ˆ” ­ª” ‡8x€‘ˆ” i! Úñã­ª” ‡8x€‘ˆ`” i! @Úñâ­ Š%¦!Š"¦!Š ¦!Š ¦!Š€%¦!Š ¦!ŠÖ†U‹*ˆ$kc‚†]” c‚†m€?” cë}­ª” ‡8x€‘ˆ” i! Úñãˆ$kc‚†~” c‚†‹€6” cë}­ª” ‡8x€‘ˆ” i! Úñãˆ$‚†›ë}¦¦­ª” ˆ” ­ª” ˆ” €5¦­ª” ‡8x€‘ˆ” i! Úñã­ª” ‡8x€‘ˆ`” i! @Úñâ­ Š¦!Ц!Ц!Š ¦!Š ¦!ŠÖ†¨‹ˆ$kc‚†¯” c‚†¿€I” c‚†Õ€c” cë}­ª” ‡8x€‘ˆ” i! Úñãˆ$‚†ãë}­ª” ‡8x€‘ˆ” i! Úñãˆ$‚†úë}¦¦­ª” ˆ” ­ª” ˆ” €8¦­ª” ‡8x€‘ˆ” i! Úñã­ª” ‡8x€‘ˆ`” i! @Úñâ­ Š6¦!Š3€(¦!Š,€)¦!Š%€"¦!Š€'¦!Š€*¦!Š€!¦!Š ¦!ŠÖ‡ŠÖ‡­€A±Õü€F¦­ª” ˆ!” ­ª” ­‡6€‘ˆ” ­ª” ­ˆ`€‘ˆ” ­ª” ­” j"°­€D°¡ÔѦ¦­ª” ˆ” ­ª” ˆ” ­ª” ‡8x€‘ˆ” i! Úñãˆ$kc‚‡<€!” c‚‡M€N” cë}¦¦­ª” ˆ” ­ª” ˆ” ­ª” ‡8x€‘ˆ” i! Úñã–8ž­ª” $” ­ª” $#a€!ˆ€¾” ­ª” $” h Ò-­ª” %€<” ­ª” %#a€!ˆ€¾” ­ª” %” h °­€Î€Q°­€Î€O° ¡ÔŽ–!§„„¨¬P‡«Þ‡ª” `…€œ” ¤€½„d¤O„O†€˜” „O‚‡d” „O뇪 „dc‘¤€½„t¤O„O†€˜” „O„˜€_” „O뇪” a…€œ” ¤€½‡ª” !„t˜” ‡ª” b…€œ” ¤€½„€„¤O„O†€˜” „O‚‡j” „O뇪” "„€„˜” ¤€’¤€’¤¤¤"!„ ‡€Î€OÒ3‡ª” !„ „„” ¤‡°‡° Ôá„ac ‡ª” ‡” !¤‡€Î€QÒ¹„€Ï¤O„O„t˜” „O‚‡q€I” „Oëÿ‡ª„€Ï˜” ‡ª”  ” ‡ª” !” ‡ª” "” †€ÙÞ”–«7†€¨ƒ‡‡Çކ€¸ƒ‡Çކ€È†€¨Ð†€¸ÐÛÇŽ€ €’¢¥€œš £¥€žš £¥€Ÿ¥€Û¥€‰…€‰…€Û²Õ¢†€ …€‰Ë×”†€ …€‰Ë×x¥€Ü…€Ü†€ …€‰Ë×xÄ…€‰Ò …€ÜçÄŠ…€Üç…€‰íâ½Ë…€ž¢ŒíÄ…€Üç…€‰…€Ÿ¢ŒíÄ…€Üç…€žÄ…€Üç…€ŸÄ…€Üç Ä…€Üç ‚‡–ë…€ÜçÄ…€ÜçÄ…€‰í¥€‰‹Tÿ†€ Ë×xç ‚‡˜ë†€ Ë×x” †¥€Û†€Û‚‡ž€$” †€Û‚‡±€J” †€Ûëÿ†€ Ë×x†˜” †€ Ë×x†€” †€§²Ô®†¥€Û†€Û‚‡Å” †€Û†€˜” †€Û‚‡È” †€Ûëÿ†€ Ë×x†˜” †€ Ë×x†€Ø” …€Ø†€¨ÐÚÕRÿ¥€‰†¥€Û†€Û‚‡Î€!” †€Û‚‡ß€C” †€Ûëÿ†€ Ë×x†˜” †€ Ë×x†€Ø” …€Ø†€ÈÐÚÔ®…€Ø†€¸ÐÚÕŒ†€¥âÄç˜Ä†€ …€‰Ë×xç ‚‡ñ놀 …€‰Ë×x” І€Û†€ …€‰Ë×x‘†€‹` ᆀ۔ŠœŠÜ†€¥ßІ€Û†€ …€‰Ë×x…€§‚‡ö‘ †€Œ@ᆀ۔ŠœŠÔ…€‰î¥€‰¥€†¥€Û†€Û‚‡ü” †€Û‚ˆ €@” †€Û‚ˆ€X” †€Ûëÿ†€ Ë×x†˜” †€ Ë×x†€Ø” …€Ø†€ÈÐÚÔ¢…€Ø†€¨ÐÚÔ!†€ …€‰Ë×xç ‚ˆ+ë…€‰¥€…€‰î¥€‰†¥€Û†€Û‚ˆ1” †€Û‚ˆA€@” †€Û‚ˆS€Y” †€Ûëÿ†€ Ë×x†˜” †€ Ë×x†€Ø” …€Ø†€ÈÐÚÔ¢…€Ø†€¨ÐÚ…€‰±¡Õ0†¥€Û†€Û‚ˆ`€"” †€Û‚ˆr€H” †€Ûëÿ†€ Ë×x†˜” †€ Ë×x†€” …€ƒˆ†ÚÔ®…€Š]†€‚ˆŠë†€ …€‰Ë×xç ‚ˆëŠA†€‚ˆšë†€ …€‰Ë×xç ‚ˆ¡ëŠ"†€‚ˆ¬ë†€ …€‰Ë×xç ‚ˆ²ëŠÖˆ¼…€€4Ój†€ …€‰Ë×x” І€Û†€ …€‰Ë×x†€˜‘ †€‹Ðᆀ۔ŠœŠØ…€‰î¥€‰…€‰Ó"†€ Ë×x‚ˆÁ” †€ Ë×x†€Ø” Š€n¥€Ø‹½þ…€±Õ™†€ …€Ë×x¥€Û…€…€‰¢²Ô"…€Ûç…€Ûz…€Û|¢£Ä…€Ûç…€Û|…€Û|¢¢Ä…€‰Ò"…€Ûç…€Ûy…€Û{¢£Ä…€Ûç…€Û{…€Û{¢¢Ä†€ …€Ë×x” І€Ü†€ …€Ë×x‘†€‹@ᆀܔŠœŠÜ†€ÙâÄç˜Ä…€‰í¥€Û¥€Š…€Š…€Û³Ô †€Ùß…€Šî¥€ŠŠê…€‰í¥€Û¥€Š…€Š…€Û³Ô†€ …€ŠË×x” …€Šî¥€ŠŠß¥€Û¥€‰…€‰…€Û²Ô†€ …€‰Ë×”…€‰í¥€‰Šß– ###{start requestor sequence}#### ###{end requestor sequence}### All of our specialists for your #documentation area seem to be busy.May I pass your ,request to another area Specialist (y or n)??Still waiting.  Do you wish to continuee (y or n)??Sorry we couldn't help you today. )Hopefully we will be more successful next) time. Please call back again. Goodbye.I'm sorry to report /that our Specialists have been taken seriously -ill. Would you please call back in a little +while. Someone should be able to help you then. Goodbye. d.DBSERVERPlease start a DBSERVER nodee d.SPECIALIST Hello out there!?I'm the Liaison Demonstration. May I have your account number?:It must be an e3ven number less than 1000 e.g."234".___>,Sorry, your number is not currently valid. Please try again.#Thank you! I provide two services:;1. I can provide a demonstration of LIAISON in action while1 giving general p-System documentation direction.22. I can also quit the program if you are through..$With which may I help you (1 or 2)?__5I can provide documentation direction in three areas:! 1. UCSD p-System and facilities. 2. Languages..7 3. UCSD p-System implementations on specific hardware. 4. I can return to start..$With which may I help you (1,2,3,4)?? d.p-SYSTEM d.LANGUAGESS d.HARDWARE13ÿ‚ÿ«ÿÔ!*** End of the day, everyone! ***!**** Shutting Down All Nodes **** 1b!OPERATING SYSTEM REFERENCE MANUAL 2bTHE UCSD PASCAL HANDBOOKK 3b&INTERNAL ARCHITECTURE REFERENCE MANUALL 5b$PROGRAM DEVELOPMENT REFERENCE MANUALL 9bAPPLICATION DEVELOPMENT GUIDE11bASSEMBLER REFERENCE MANUALL13b$ADAPTABLE SYSTEM INSTALLATION MANUALL15b!BASIC (LANGUAGE) REFERENCE MANUAL 17FORTRAN-77 REFERENCE MANUAL20b$VERSION IV FOR THE APPLE-II COMPUTERR21b+OPTIONAL PRODUCTS REFERENCE MANUAL:XENOFILE22b8086 ASSEMBLER REFERENCE MANUAL23b*OPTIONAL PRODUCTS REFERENCE MANUAL:EDVANCEE24b'OPTIONAL PRODUCTS REFERENCE MANUAL:KSAM25b+OPTIONAL PRODUCTS REFERENCE MANUAL:SOFTEACH26b$IBM PC PERIPHERAL INSTALLATION GUIDEE27b(IBM FIXED DISC UTILITY PROGRAM (EXTRACT))28b(SUPPLEMENT FOR THE IBM PERSONAL COMPUTERR29b)PERSONAL COMPUTING WITH THE UCSD P-SYSTEM33b.SUPPLEMENTAL USERS DOCUMENT - ZENITH COMPUTERSS34b.SUPPLEMENTAL USERS DOCUMENT - CORVUS COMPUTERSS35b"SORT/PREPARE SORT REFERENCE MANUALL37b,LIAISON PROGRAM DEVELOPMENT REFERENCE MANUALL39b3SUPPLEMENTAL USERS MANUAL - DEC PROFESSIONAL 350 PC40b&SUPPLEMENTAL USERS DOCUMENT - KAYPRO 4441b'SUPPLEMENTAL USERS DOCUMENT - KAYPRO 1042b#SUPPLEMENTAL USERS DOCUMENT - Z-10043b&APPLE IIe (EXTENDED MEMORY) SUPPLEMENTT+þ)þ:þKþ\þmþ~þþ þ±þÂþÓþäþõÿÿÿ(ÿ9ÿJÿ[ÿlÿ}ÿÿÿ­ÿ½ÿÍÿÝÿí *-----DBSERVER READY-----*Uÿokkbad {account number } {find document}DBserverr {open communications}AQÿÿ¸ÿâÿ÷#### DBserver Stopping - OOooo.... " ### {start acceptor sequence} ####" #### {end acceptor sequence} ######Hello, I'm a document specialist. I can give you references on:!General p-System Understanding- . 1.Overview 2.Architecture 3.Installation,,, or Specific Major Areas- 4.Applications # 5.Liaison 6.Program Development.Please choose one (1-6)..16ÿØÿÞÿäÿêÿðÿ÷High_level Languages - 1.UCSD Pascal 2.Fortran 3.Basic ,,or Assembly Languages -  4.General Use 5.8086/8088 Please choose one (1-5)..15ÿßÿåÿëÿñÿ÷Some Hardware Specific Support *Aids Are For- 1.Apple-II 2.KayPro 4 3.Kaypro 10 4.Corvus -5.DEC Pro 350 6.Z-100 7.Zenith 8.IBM PCPlease choose one (1-8)..18ÿÇÿÍÿÔÿÛÿâÿéÿðÿ÷HpþãýÖüÀ! is an excellent reference. I'm -glad to have been of some help. Goodbye now. d.DBSERVER d.SPECIALIST+ Specialist quitting for the day. Goodbye.@@--> LDEMO Setup$Please enter your unique identifier &if one is required (15 chars max ))Is "" " correct??!Is there a DBSERVER node already "available in the network (y or n)?? DB Server d.DBSERVERDo you wish a DISPATCHER node "(y or n, you must have one if thiss is the only processor)?? DispatcherrDo you wish a SPECIALIST node "(y or n, you must have one if thiss is the only processor.)?"What type? 1)p-System 2)Languages &3)Hardware Supported 4)Cancel Request  d.p-SYSTEMp-System Specialist d.LANGUAGESSLanguages Specialistt d.HARDWAREHardware Specialist13ÿ ÿ¿ÿÞ,Do you wish another SPECIALIST node (y or n))•Ñžý½¹ž•^5 • EXTRAHEAHEAPOPS CONCURREPASCALIO STRINGOP DNETPRIM WINDOWOP ERRORHAN CHGROUP CHSERVICTIMEOUT LOCATOR BYTEFLIPSOCKETS  3ERRORHANïQ2 Ù–È,c„-¬P‡/³‡/šæ ³Ÿ¡ÕŽš˜Ò.ašæ £Œr›!Äšæ îjh "²Ôš £×˜Ä íhŠìc§Ò)š‡/£×x˜Óaš‡/£×xÄarš‡/£×˜ÄŠ+š‡/£×x˜Òa€)rš‡/£×!Äš‡/£×xcëP–/ò`$Ä ç$Ä çáÄ ç!Ä ç"Ä ç#Ä ›t –`!Ä ›t – ! t–! t–@š^h ˜Ó zç‚€¹Ô ᘠ—˜hŠ |hŠà–ma%Ä!ç%Ä`Ä!ç yÄ!ç"Ä!ç#Ä!ç$Ä!›t –›`"Ä ç"ÄaÄ ç!yÄ çÄ ç˜Ä ç˜Ä ›t –«`!Ä ›t –µ u–ܘÙvšÙš˜Ó†šĆr˜Ù–DEBUGGERØÐ¹¢ˆƒ{f Ý *** CONCURREPRNTERR SCREENOPPERMHEAP iPRSINGLEPb9#Äh$a#tj îh °" Ôï"ñmŠ!m–`­¦ ­x°­°­° ­° ¡Ôp–¢ ­x|lmdunfu­` t¤ ­­xv­˜Ä­Ä¦ p– å ­x}Ò%­x|lmdu­ænfu­` t¤ ­­xv­˜Ä­Ä– @$˜Ä#Äh ñI%áÒ '$&#tiŠ '$&#%ti #xÓ($xçu$xçj"yÒ Š"x'æ³ñ Šh#&ÄŠ´–¦ ­¤ (ç¤ (ç¤ )yÒ¦*u*x¦­ç­æíÄŠ))yÒ$­ælmdu nfu­`€2t¦ˆ­v– ×­Ò¦Š ­Ò­a‘h Ò ¦¦Š!°¦–} ,+£.æ²ñ ¤p,+£í¢ja"vÒ ¤Šx!o'ç¤ 'ç¤ (.æÄ(çÄ'çu),+£íÄ*++,Ë)çË)xp)um.!"€2th ÓmŠn..æcd‘h#˜Ó Š &% Ôæ%ÔÍ ¤a"v–!­h çi!u!x­­£í²ñ ¦ ¦Š,­ Ò ¦ Š!!çË­­­­Ë!xp­!xĦ¦ ˆ­v­æ¦ ¦ ˆ u­ ¦ ˆ u­ˆ€2t¦­ç­ Ä­Ô ­ç­æíÄ–W­Ò­a‘h Ò¦Š Ò¦­°­° ¦­¦ –ƒ.椇-æ-æ`a‘j ˜ÓŠ#Ôá,¤–'­h çi!u!x­­£í²ñ ¦ ¦Š,­ Ò ¦ Š!!çË­­­­Ë!xp­!xĦ¦ ˆ­v­æ¦ ¦ ˆ u­ ¦ ˆ u­ˆ€2t¦­ç­ Ä­Ô ­ç­æíÄ–?­°­° ¦­¦ –g -ㇿá`a‘j ˜ÓŠ#Ôå,¤–­ }°¦ ˆ ­ v–¨­Ò­a‘h Ò¦­°¦ ­°¦ –õ ¤-æmneu¤ ,Ô¤ -a€2th Óp--æ„ „ ‘h)˜ÓŠ+ÔË–k ¤!­ ¤ ‡ yar a Ë×xŒ¦­€d¢¢­²ŸaË×x° ­²Ÿ ­² ­² h Ô¤!Š$‡ çć ç­ć ç­ć ç­ć 筢Ė ˜ lmn­ o­¤ š¤  du­  ` t¤ – ,­ a`tj"Ó"¤Šy!¤  +çu+ç¤ ,x±,y± ÔjŠ,zÓ ­ çÄjŠ ,|­²ñ jŠj¤ ¤ "¤ „ u­ d tk­ ¤-ç,{Ä-ç ,}Äav"Ò#¤Š"¤–h­ b`ti!Ò$"çu"çk#x°#y°¡Ô#ziŠibv!l–—b'Åh Òh Ò h Òh(ç Ä ¤ – ž–θ}B6Ä“AÕ¢S2u 6V"®îNEXTRAHEABYTEFLIPCHUTILS CHSERVICSOCKETS  VCHUTILS Rƒ!Fl†ß!#‘Ä!x˜ÒlŠ!xh æ Ò ç "ÄŠl!˜Ä†Þ–c†ß"h ç !Ä æ Ò ‘†Þ–É"i!‘h!æ Ó!y†!æ  Ëî×çr†ß!æ Ó!ç †!æ  Ëî×|Ć!æ  Ëî×ç"Ä!† Ë×xĆ Ë×"ĆÞ–Xš‚€v pš !!"Ë#Œ×xvpš‚€v pš !í!"Ë#Œ×xvpš‚€v pš !¢!"Ë#Œ×xvpš‚€ v pš !¢!"Ë#Œ×xvpšvp–Ð)j%&&'Ë(Œ×ÒÄ%&í&'Ë(Œ×"æ Ä%&¢&'Ë(Œ×"Ä%&¢&'Ë(Œ×"æÄ'íŒî%t#i)j"y"ç$'íŒî%r"y‘h!îi!² ° ÔÜ ¤ – $t$j"zi"ç"{Ä"ç!Ä$j­ k"x"x°"y#æ °¡h$yÓ $ç­ ç¹¡h m–x)Ä+˜Ä+*wÒ iŠG,o'y(rh'yb)*+xr 'y‘i!Š+xh)*ÄŠ)ÄhŠhŠÖ€ ÔÍ)xÒ+*w!¤– Öš‚€v pšvp†ßjh "²Õ·† Ë×xi!˜±Õ¡!kšvpš‚€'v pš#yvpš‚€/v pš#çË×xvpš‚€8v pš#~vpšvpš‚€Av pš#vpš‚€Iv pš#ævpš‚€Rv pš#æ vpšvpš‚€[v pš#æ vpš‚€cv pš#ævpš‚€lv pš#ævpšvpš‚€uv pš#ævpš‚€}v pš#ævpš‚€†v pš#æ vpšvpš‚€4v pš#ævpš‚€—v pš#æ vpšvpš‚€ v pšvpšv p#xi‹Yþ íh‹Cþšvpš‚€®v pšvpšvp jh "²ÔR†  Ëî×k#xÓ>š vpš‚€µv pš#{vpš‚€»v pš#xvpšvp íhŠ©†Þ–ä â½Ëi–˜k†"‘Ë×xh ˜Ó i!"Ò k˜hŠ!xhŠê–Ì%‘j˜h†"Ë×xik!˜±#å¡Ô!%ÒkŠ!h!xiŠè#Õ‡ ˜Ò †"ËטĊ !xÄ!æ Óf!l$yr!†$æ  Ëî×|Ò†$æ  Ëî×ç$æ ÄŠ †$æ  Ëî×|h! æ Ó æ hŠô ç $æ Ä!†$æ  Ëî×}Ò†$æ  Ëî×ç˜Äa€*w–ô! r ŠjŠjŠjŠjŠ jŠ jŠր– ˆt®Î°h–+i0ˆ`ˆr0r Òi–º to continue...... Dump of Setss timeout : protocol : ÿåÿéÿíÿñÿõÿùÿãÿãÿñÿñÿùÿñG²Vü_êgèŠtm>Ô*˜I4ðãÔv ®4% L*** CONCURRE EXTRAHEAPASCALIOTIMEOUT BYTEFLIPCHSERVICSOCKETS  åƒjWLDEMO ERRORHANPRSINGLECHUTILS €€€€K\- '.Copyright (c) 1984, SofTech Microsystems, Inc.‚LDEMO  beH¶ƒb‚€ëÿ‡€‡b˜” ‡€‡” „€†” ¤€ƒ‡€‡” ‡€…‡€ƒ„€†`” i!Ò‡€‡”  ‡€„‡€„ç” i!Ó⇀‡” ‡€„ç” ‡€‡”  ” !°!° Ô¡b‚€ëÿ‡€‡b˜” ¤€ˆ!Ò¤€ˆ–€‡%1„ „2¬P€A¦]ˆ_„ ë­r” ­ˆ €‘ˆ]” o€N¦^'ío­r” ­ba€‘ˆ]” ­r” ­” h °­]€A°¡'° ÔÌ­^¤4–38B­r” ‡Ex€´” ji‡Dn¤F&ç€OÄmh%å ²¡Ôe íh‡Dˆ ë­r” ‡Ex€!‡D” ­r” ‡Ex‡Cˆ€²€‘ˆ]” ­r” ‡Ex” k# °#°&æ€O°¡ ÔÈ#°&æ€O°¡ÔmŠ“# °Õwˆ€»og‚€#€ ” g‚€4€C” gëÿ­rˆ€»˜” ˆ€»og‚€F” g‚€O4€<” gëÿ­rˆ€»˜” ­r†€” …€†€ÈÐÚÔÁ…€†€¨ÐÚÕ±j‡Dˆ0ë­r” ‡ExX” ­r” ‡Ex€!‡D” ­r” ‡Ex‡Cˆ€²€!‡D” ­r” ‡Ex” k#ÓJˆ€»og‚€f” g‚€n€'” g‚€{€1” gëÿ­rˆ€»˜” ­r†€” …€†€ÈÐÚÔ¶…€†€¸ÐÚ#° Õhÿ…€†€¸ÐÚÔCˆ€»og‚€” g‚€€#” g‚€”€L” g‚€©€u” gëÿ­rˆ€»˜” ¤F–EeX‡Y¦^€ ¦_¦`€F¦]­r” ‡Zx€‘ˆ]” ¦€º­€º ÚñÞ­`­€º°¡ÔS­r” ‡Zx€‘ˆ]a” ¦€º­€º @ÚñÝ­r” ˆ`” ­r” ˆa” ­€ºÒ ­rˆg˜” Š£­€º°­a¡Ô,­rˆc” ¦`­c€1­b¼Úñ­rˆg˜” ­rˆc” Šá­a­€º°¡åÕ?ÿ­€ºÓMˆ€»jb‚€¾” b‚€É€C” b‚€á€p” b‚€ø€›” b‚€ª” bëÿ­rˆ€»˜” h–Zrq‡sÞ‡r” c…€œ” ¤€±„¤;„;†€˜” „;‚” „;ë‡r#„„ ‘¤€±‡€±ñ ‡r‚” ‡€±ÔÝ„0¤;„;†€˜” „;‚+” „;ë¤@‡r‚2” ‡r‚;” ‡r‚[” š`” pš” p`˜¤€³‡€³€YÓ1„€»¤;„;‚y€,” „;‚€=” „;ëÿ‡r„€»˜” ‡€³€YÒœ‡r‚™” „€»¤;„;‚«€;” „;‚É€l” „;ëÿ‡r„€»˜” ‡r‚â” ‡r‚ü” ‡rd” $ƒ‚ÚÔï$€1°ÕI‡r‚‚” ‡r‚‚.” ‡r‚‚?” ‡r‚‚G” ‡r‚‚c” ‡r‚‚q” ‡rd” $ƒ‚„ÚÔ­$Š{„ ¤;„;†€˜” „;‚‚ˆ” „;ë€p¤WŠU„ ¤;„;†€˜” „;‚‚Ž” „;ë€L¤WŠ,„ ¤;„;†€˜” „;‚‚•” „;ë€H¤WŠÖ‚›€O¤]$€4Ó c„A„R¤€±$€4±‡€±¡ÔU¤€´€’¤€¸€’¤€·¤€¶¤€µ‡r” #„R„€´„€¹” ¤€º‡€º°‡€º° ÔÜ„€¹‡W‡r” ‡€¹” !¤€ºŠ$€2Ò¤@‡@ÕÆý‡r‚‚ ” ‡r‚‚±” €Q¤]‡r” #„ €‘„]” €Q¤Q„A„0ë‡r” #€!„A” †€ÙÞ”–s m!‚‚ÂëP"‹Ô!‚‚ÃëP ‚‚ÅëP‹Æ!‚‚ÖëP ‚‚ØëP‹µ!‚‚åëP ‚‚çëP‹¤!‚‚ûëP ‚‚ýëP‹“!‚ƒëP ‚ƒëP‹‚!‚ƒ!ëP ‚ƒ#ëP‹q!‚ƒ1ëP ‚ƒ3ëP‹`!‚ƒFëP ‚ƒHëP‹O!‚ƒYëP ‚ƒ[ëP‹>!‚ƒiëP ‚ƒkëP‹-!‚ƒ~ëP ‚ƒ€ëP‹!‚ƒ–ëP ‚ƒ˜ëP‹ !‚ƒ¨ëP ‚ƒªëP‹ú!‚ƒÀëP ‚ƒÂëP‹é!‚ƒÖëP ‚ƒØëP‹Ø!‚ƒîëP ‚ƒðëP‹Ç!‚„ëP ‚„ëP‹¶!‚„ëP ‚„ëP‹¥!‚„1ëP ‚„3ëP‹”!‚„HëP ‚„JëP‹ƒ!‚„bëP ‚„dëPŠs!‚„|ëP ‚„~ëPŠc!‚„ëP ‚„’ëPŠS!‚„©ëP ‚„«ëPŠC!‚„ÅëP ‚„ÇëPŠ3!‚„ÛëP ‚„ÝëPŠ#!‚„ñëP ‚„óëPŠ!‚…ëP ‚…ëPŠÖ…€Yk!‚‚ÂèÔ€Nk– 4‡Þ‡” „€î…€œ” ¤€ì‡€î¥€§†€¥Þ‡‚…H” dƒ…XÇŽ`ƒ…\ÇŽ‡” ‡€î” ¤€í‡€íåÕE‡” ‡€î„€æ„€ë€‘„” ‡” ‡€î” ¤€ï‡€ï ±‡€ï ±¡Ôʇ€ï°Õ‡‹â€Y¤„§Ò€N¤Š:„§¤€ö¤ +‡€ö²Ô„+ì§`ÐÚñ€N¤+í¤ Šã„„§ì§dÐÚñ€N¤„€ð‚…`ë ‡€NÒ „€ð‚…bë „f¤€ö„€ö‚…d” „€ö„€ð˜” „€ö‚…o” „€öëÿ‡„f˜” ŠH‡‚…p” ‡” „$” ‡$„%„'¤€D¤Š„‚…z뇂…” Š ¤€íŠÖ…Œ‡€íñ‡” ‡€î„€æ€‘„” ‹´þ…€Œ” ‡” ‡€î” ‡‚…Ÿ” †€ÙÞ”– õ­„€…„€¯¬Pd‚…±ëÿ‡€²d˜” ‡€²” „€±” k‡€²” „€…ca” j"ÒE‡€²” !PF‡€®`” j‡€²” `” "Ò‡€²” !‡€®„€±” j"°"° Ô»‡€²” !” ¤€³"Ò ‡€®ç Ĥ€³"°"° Ô€d‚…Ãëÿ‡€²d˜” –€² 5o„G„p¬P‡tÞ`¤„†€˜” „„G˜€_” „ëÓ‡s‡r`˜„ ¤Ší”–t&5­ª” ‡8x€‘ˆ`” i! @Úñâ!±­€F± Ô€A¦Šo¦¦¦!­ª” ˆ” ­ª” ˆ” ˆ"‚‚Âëˆ$kc‚…Õ€#” c‚…ç€@” cë}­ª” ‡8x€‘ˆ” i! Úñã­‹=ˆ$kc‚…ö€!” c‚†€O” cë}­ª” ‡8x€‘ˆ” i! Úñãˆ$kc‚†€,” c‚†6€O” cë}­ª” ‡8x€‘ˆ” i! Úñã€6¦ˆ$‚†Hë}¦¦­ª” ˆ” ­ª” ˆ” ­ª” ‡8x€‘ˆ” i! Úñã­ª” ‡8x€‘ˆ`” i! @Úñâ­ Š%¦!Š"¦!Š ¦!Š ¦!Š€%¦!Š ¦!ŠÖ†U‹*ˆ$kc‚†]” c‚†m€?” cë}­ª” ‡8x€‘ˆ” i! Úñãˆ$kc‚†~” c‚†‹€6” cë}­ª” ‡8x€‘ˆ” i! Úñãˆ$‚†›ë}¦¦­ª” ˆ” ­ª” ˆ” €5¦­ª” ‡8x€‘ˆ” i! Úñã­ª” ‡8x€‘ˆ`” i! @Úñâ­ Š¦!Ц!Ц!Š ¦!Š ¦!ŠÖ†¨‹ˆ$kc‚†¯” c‚†¿€I” c‚†Õ€c” cë}­ª” ‡8x€‘ˆ” i! Úñãˆ$‚†ãë}­ª” ‡8x€‘ˆ” i! Úñãˆ$‚†úë}¦¦­ª” ˆ” ­ª” ˆ” €8¦­ª” ‡8x€‘ˆ” i! Úñã­ª” ‡8x€‘ˆ`” i! @Úñâ­ Š6¦!Š3€(¦!Š,€)¦!Š%€"¦!Š€'¦!Š€*¦!Š€!¦!Š ¦!ŠÖ‡ŠÖ‡­€A±Õü€F¦­ª” ˆ!” ­ª” ­‡6€‘ˆ” ­ª” ­ˆ`€‘ˆ” ­ª” ­” j"°­€D°¡ÔѦ¦­ª” ˆ” ­ª” ˆ” ­ª” ‡8x€‘ˆ” i! Úñãˆ$kc‚‡<€!” c‚‡M€N” cë}¦¦­ª” ˆ” ­ª” ˆ” ­ª” ‡8x€‘ˆ” i! Úñã–8ž­ª” $” ­ª” $#a€!ˆ€¾” ­ª” $” h Ò-­ª” %€<” ­ª” %#a€!ˆ€¾” ­ª” %” h °­€Î€Q°­€Î€O° ¡ÔŽ–!§„„¨¬P‡«Þ‡ª” `…€œ” ¤€½„d¤O„O†€˜” „O‚‡d” „O뇪 „dc‘¤€½„t¤O„O†€˜”5 „O„˜€_” „O뇪” a…€œ” ¤€½‡ª” !„t˜” ‡ª” b…€œ” ¤€½„€„¤O„O†€˜” „O‚‡j” „O뇪” "„€„˜” ¤€’¤€’¤¤¤"!„ ‡€Î€OÒ3‡ª” !„ „„” ¤‡°‡° Ôá„ac ‡ª” ‡” !¤‡€Î€QÒ¹„€Ï¤O„O„t˜” „O‚‡q€I” „Oëÿ‡ª„€Ï˜” ‡ª”  ” ‡ª” !” ‡ª” "” †€ÙÞ”–«7†€¨ƒ‡‡Çކ€¸ƒ‡Çކ€È†€¨Ð†€¸ÐÛÇŽ€ €’¢¥€œš £¥€žš £¥€Ÿ¥€Û¥€‰…€‰…€Û²Õ¢†€ …€‰Ë×”†€ …€‰Ë×x¥€Ü…€Ü†€ …€‰Ë×xÄ…€‰Ò …€ÜçÄŠ…€Üç…€‰íâ½Ë…€ž¢ŒíÄ…€Üç…€‰…€Ÿ¢ŒíÄ…€Üç…€žÄ…€Üç…€ŸÄ…€Üç Ä…€Üç ‚‡–ë…€ÜçÄ…€ÜçÄ…€‰í¥€‰‹Tÿ†€ Ë×xç ‚‡˜ë†€ Ë×x” †¥€Û†€Û‚‡ž€$” †€Û‚‡±€J” †€Ûëÿ†€ Ë×x†˜” †€ Ë×x†€” †€§²Ô®†¥€Û†€Û‚‡Å” †€Û†€˜” †€Û‚‡È” †€Ûëÿ†€ Ë×x†˜” †€ Ë×x†€Ø” …€Ø†€¨ÐÚÕRÿ¥€‰†¥€Û†€Û‚‡Î€!” †€Û‚‡ß€C” †€Ûëÿ†€ Ë×x†˜” †€ Ë×x†€Ø” …€Ø†€ÈÐÚÔ®…€Ø†€¸ÐÚÕŒ†€¥âÄç˜Ä†€ …€‰Ë×xç ‚‡ñ놀 …€‰Ë×x” І€Û†€ …€‰Ë×x‘†€‹` ᆀ۔ŠœŠÜ†€¥ßІ€Û†€ …€‰Ë×x…€§‚‡ö‘ †€Œ@ᆀ۔ŠœŠÔ…€‰î¥€‰¥€†¥€Û†€Û‚‡ü” †€Û‚ˆ €@” †€Û‚ˆ€X” †€Ûëÿ†€ Ë×x†˜” †€ Ë×x†€Ø” …€Ø†€ÈÐÚÔ¢…€Ø†€¨ÐÚÔ!†€ …€‰Ë×xç ‚ˆ+ë…€‰¥€…€‰î¥€‰†¥€Û†€Û‚ˆ1” †€Û‚ˆA€@” †€Û‚ˆS€Y” †€Ûëÿ†€ Ë×x†˜” †€ Ë×x†€Ø” …€Ø†€ÈÐÚÔ¢…€Ø†€¨ÐÚ…€‰±¡Õ0†¥€Û†€Û‚ˆ`€"” †€Û‚ˆr€H” †€Ûëÿ†€ Ë×x†˜” †€ Ë×x†€” …€ƒˆ†ÚÔ®…€Š]†€‚ˆŠë†€ …€‰Ë×xç ‚ˆëŠA†€‚ˆšë†€ …€‰Ë×xç ‚ˆ¡ëŠ"†€‚ˆ¬ë†€ …€‰Ë×xç ‚ˆ²ëŠÖˆ¼…€€4Ój†€ …€‰Ë×x” І€Û†€ …€‰Ë×x†€˜‘ †€‹Ðᆀ۔ŠœŠØ…€‰î¥€‰…€‰Ó"†€ Ë×x‚ˆÁ” †€ Ë×x†€Ø” Š€n¥€Ø‹½þ…€±Õ™†€ …€Ë×x¥€Û…€…€‰¢²Ô"…€Ûç…€Ûz…€Û|¢£Ä…€Ûç…€Û|…€Û|¢¢Ä…€‰Ò"…€Ûç…€Ûy…€Û{¢£Ä…€Ûç…€Û{…€Û{¢¢Ä†€ …€Ë×x” І€Ü†€ …€Ë×x‘†€‹@ᆀܔŠœŠÜ†€ÙâÄç˜Ä…€‰í¥€Û¥€Š…€Š…€Û³Ô †€Ùß…€Šî¥€ŠŠê…€‰í¥€Û¥€Š…€Š…€Û³Ô†€ …€ŠË×x” …€Šî¥€ŠŠß¥€Û¥€‰…€‰…€Û²Ô†€ …€‰Ë×”…€‰í¥€‰Šß– ###{start requestor sequence}#### ###{end requestor sequence}### All of our specialists for your #documentation area seem to be busy.May I pass your ,request to another area Specialist (y or n)??Still waiting.  Do you wish to continuee (y or n)??Sorry we couldn't help you today. )Hopefully we will be more successful next) time. Please call back again. Goodbye.I'm sorry to report /that our Specialists have been taken seriously -ill. Would you please call back in a little +while. Someone should be able to help you then. Goodbye. d.DBSERVERPlease start a DBSERVER nodee d.SPECIALIST Hello out there!?I'm the Liaison Demonstration. May I have your account number?:It must be an even number less than 1000 e.g."234".___>,Sorry, your number is not currently valid. Please try again.#Thank you! I provide two services:;1. I can provide a demonstration of LIAISON in action while1 giving general p-System documentation direction.22. I can also quit the program if you are through..$With which may I help you (1 or 2)?__5I can provide documentation direction in three areas:! 1. UCSD p-System and facilities. 2. Languages..7 3. UCSD p-System implementations on specific hardware. 4. I can return to start..$With which may I help you (1,2,3,4)?? d.p-SYSTEM d.LANGUAGESS d.HARDWARE13ÿ‚ÿ«ÿÔ!*** End of the day, everyone! ***!**** Shutting Down All Nodes **** 1b!OPERATING SYSTEM REFERENCE MANUAL 2bTHE UCSD PASCAL HANDBOOKK 3b&INTERNAL ARCHITECTURE REFERENCE MANUALL 5b$PROGRAM DEVELOPMENT REFERENCE MANUALL 9bAPPLICATION DEVELOPMENT GUIDE11bASSEMBLER REFERENCE MANUALL13b$ADAPTABLE SYSTEM INSTALLATION MANUALL15b!BASIC (LANGUAGE) REFERENCE MANUAL 17FORTRAN-77 REFERENCE MANUAL20b$VERSION IV FOR THE APPLE-II COMPUTERR21b+OPTIONAL PRODUCTS REFERENCE MANUAL:XENOFILE22b8086 ASSEMBLER REFERENCE MANUAL23b*OPTIONAL PRODUCTS REFERENCE MANUAL:EDVANCEE24b'OPTIONAL PRODUCTS REFERENCE MANUAL:KSAM25b+OPTIONAL PRODUCTS REFERENCE MANUAL:SOFTEACH26b$IBM PC PERIPHERAL INSTALLATION GUIDEE27b(IBM FIXED DISC UTILITY PROGRAM (EXTRACT))28b(SUPPLEMENT FOR THE IBM PERSONAL COMPUTERR29b)PERSONAL COMPUTING WITH THE UCSD P-SYSTEM33b.SUPPLEMENTAL USERS DOCUMENT - ZENITH COMPUTERSS354b.SUPPLEMENTAL USERS DOCUMENT - CORVUS COMPUTERSS35b"SORT/PREPARE SORT REFERENCE MANUALL37b,LIAISON PROGRAM DEVELOPMENT REFERENCE MANUALL39b3SUPPLEMENTAL USERS MANUAL - DEC PROFESSIONAL 350 PC40b&SUPPLEMENTAL USERS DOCUMENT - KAYPRO 4441b'SUPPLEMENTAL USERS DOCUMENT - KAYPRO 1042b#SUPPLEMENTAL USERS DOCUMENT - Z-10043b&APPLE IIe (EXTENDED MEMORY) SUPPLEMENTT+þ)þ:þKþ\þmþ~þþ þ±þÂþÓþäþõÿÿÿ(ÿ9ÿJÿ[ÿlÿ}ÿÿÿ­ÿ½ÿÍÿÝÿí *-----DBSERVER READY-----*Uÿokkbad {account number } {find document}DBserverr {open communications}AQÿÿ¸ÿâÿ÷#### DBserver Stopping - OOooo.... " ### {start acceptor sequence} ####" #### {end acceptor sequence} ######Hello, I'm a document specialist. I can give you references on:!General p-System Understanding- . 1.Overview 2.Architecture 3.Installation,,, or Specific Major Areas- 4.Applications # 5.Liaison 6.Program Development.Please choose one (1-6)..16ÿØÿÞÿäÿêÿðÿ÷High_level Languages - 1.UCSD Pascal 2.Fortran 3.Basic ,,or Assembly Languages -  4.General Use 5.8086/8088 Please choose one (1-5)..15ÿßÿåÿëÿñÿ÷Some Hardware Specific Support *Aids Are For- 1.Apple-II 2.KayPro 4 3.Kaypro 10 4.Corvus -5.DEC Pro 350 6.Z-100 7.Zenith 8.IBM PCPlease choose one (1-8)..18ÿÇÿÍÿÔÿÛÿâÿéÿðÿ÷HpþãýÖüÀ! is an excellent reference. I'm -glad to have been of some help. Goodbye now. d.DBSERVER d.SPECIALIST+ Specialist quitting for the day. Goodbye.@@--> LDEMO Setup$Please enter your unique identifier &if one is required (15 chars max ))Is "" " correct??!Is there a DBSERVER node already "available in the network (y or n)?? DB Server d.DBSERVERDo you wish a DISPATCHER node "(y or n, you must have one if thiss is the only processor)?? DispatcherrDo you wish a SPECIALIST node "(y or n, you must have one if thiss is the only processor.)?"What type? 1)p-System 2)Languages &3)Hardware Supported 4)Cancel Request  d.p-SYSTEMp-System Specialist d.LANGUAGESSLanguages Specialistt d.HARDWAREHardware Specialist13ÿ ÿ¿ÿÞ,Do you wish another SPECIALIST node (y or n))•Ñžý½¹ž•^5 • EXTRAHEAHEAPOPS CONCURREPASCALIO STRINGOP DNETPRIM WINDOWOP ERRORHAN CHGROUP CHSERVICTIMEOUT LOCATOR BYTEFLIPSOCKETS  ERRORHANïQ2 Ù–È,c„-¬P‡/³‡/šæ ³Ÿ¡ÕŽš˜Ò.ašæ £Œr›!Äšæ îjh "²Ôš £×˜Ä íhŠìc§Ò)š‡/£×x˜Óaš‡/£×xÄarš‡/£×˜ÄŠ+š‡/£×x˜Òa€)rš‡/£×!Äš‡/£×xcëP–/ò`$Ä ç$Ä çáÄ ç!Ä ç"Ä ç#Ä ›t –`!Ä ›t – ! t–! t–@š^h ˜Ó zç‚€¹Ô ᘠ—˜hŠ |hŠà–ma%Ä!ç%Ä`Ä!ç yÄ!ç"Ä!ç#Ä!ç$Ä!›t –›`"Ä ç"ÄaÄ ç!yÄ çÄ ç˜Ä ç˜Ä ›t –«`!Ä ›t –µ u–ܘÙvšÙš˜Ó†šĆr˜Ù–DEBUGGERØÐ¹¢ˆƒ{f Ý *** CONCURREPRNTERR SCREENOPPERMHEAP iPRSINGLEPb9#Äh$a#tj îh °" Ôï"ñmŠ!m–`­¦ ­x°­°­° ­° ¡Ôp–¢ ­x|lmdunfu­` t¤ ­­xv­˜Ä­Ä¦ p– å ­x}Ò%­x|lmdu­ænfu­` t¤ ­­xv­˜Ä­Ä– @$˜Ä#Äh ñI%áÒ '$&#tiŠ '$&#%ti #xÓ($xçu$xçj"yÒ Š"x'æ³ñ Šh#&ÄŠ´–¦ ­¤ (ç¤ (ç¤ )yÒ¦*u*x¦­ç­æíÄŠ))yÒ$­ælmdu nfu­`€2t¦ˆ­v– ×­Ò¦Š ­Ò­a‘h Ò ¦¦Š!°¦–} ,+£.æ²ñ ¤p,+£í¢ja"vÒ6 ¤Šx!o'ç¤ 'ç¤ (.æÄ(çÄ'çu),+£íÄ*++,Ë)çË)xp)um.!"€2th ÓmŠn..æcd‘h#˜Ó Š &% Ôæ%ÔÍ ¤a"v–!­h çi!u!x­­£í²ñ ¦ ¦Š,­ Ò ¦ Š!!çË­­­­Ë!xp­!xĦ¦ ˆ­v­æ¦ ¦ ˆ u­ ¦ ˆ u­ˆ€2t¦­ç­ Ä­Ô ­ç­æíÄ–W­Ò­a‘h Ò¦Š Ò¦­°­° ¦­¦ –ƒ.椇-æ-æ`a‘j ˜ÓŠ#Ôá,¤–'­h çi!u!x­­£í²ñ ¦ ¦Š,­ Ò ¦ Š!!çË­­­­Ë!xp­!xĦ¦ ˆ­v­æ¦ ¦ ˆ u­ ¦ ˆ u­ˆ€2t¦­ç­ Ä­Ô ­ç­æíÄ–?­°­° ¦­¦ –g -ㇿá`a‘j ˜ÓŠ#Ôå,¤–­ }°¦ ˆ ­ v–¨­Ò­a‘h Ò¦­°¦ ­°¦ –õ ¤-æmneu¤ ,Ô¤ -a€2th Óp--æ„ „ ‘h)˜ÓŠ+ÔË–k ¤!­ ¤ ‡ yar a Ë×xŒ¦­€d¢¢­²ŸaË×x° ­²Ÿ ­² ­² h Ô¤!Š$‡ çć ç­ć ç­ć ç­ć 筢Ė ˜ lmn­ o­¤ š¤  du­  ` t¤ – ,­ a`tj"Ó"¤Šy!¤  +çu+ç¤ ,x±,y± ÔjŠ,zÓ ­ çÄjŠ ,|­²ñ jŠj¤ ¤ "¤ „ u­ d tk­ ¤-ç,{Ä-ç ,}Äav"Ò#¤Š"¤–h­ b`ti!Ò$"çu"çk#x°#y°¡Ô#ziŠibv!l–—b'Åh Òh Ò h Òh(ç Ä ¤ – ž–θ}B6Ä“AÕ¢S2u 6V"®îNEXTRAHEABYTEFLIPCHUTILS CHSERVICSOCKETS  VCHUTILS Rƒ!Fl†ß!#‘Ä!x˜ÒlŠ!xh æ Ò ç "ÄŠl!˜Ä†Þ–c†ß"h ç !Ä æ Ò ‘†Þ–É"i!‘h!æ Ó!y†!æ  Ëî×çr†ß!æ Ó!ç †!æ  Ëî×|Ć!æ  Ëî×ç"Ä!† Ë×xĆ Ë×"ĆÞ–Xš‚€v pš !!"Ë#Œ×xvpš‚€v pš !í!"Ë#Œ×xvpš‚€v pš !¢!"Ë#Œ×xvpš‚€ v pš !¢!"Ë#Œ×xvpšvp–Ð)j%&&'Ë(Œ×ÒÄ%&í&'Ë(Œ×"æ Ä%&¢&'Ë(Œ×"Ä%&¢&'Ë(Œ×"æÄ'íŒî%t#i)j"y"ç$'íŒî%r"y‘h!îi!² ° ÔÜ ¤ – $t$j"zi"ç"{Ä"ç!Ä$j­ k"x"x°"y#æ °¡h$yÓ $ç­ ç¹¡h m–x)Ä+˜Ä+*wÒ iŠG,o'y(rh'yb)*+xr 'y‘i!Š+xh)*ÄŠ)ÄhŠhŠÖ€ ÔÍ)xÒ+*w!¤– Öš‚€v pšvp†ßjh "²Õ·† Ë×xi!˜±Õ¡!kšvpš‚€'v pš#yvpš‚€/v pš#çË×xvpš‚€8v pš#~vpšvpš‚€Av pš#vpš‚€Iv pš#ævpš‚€Rv pš#æ vpšvpš‚€[v pš#æ vpš‚€cv pš#ævpš‚€lv pš#ævpšvpš‚€uv pš#ævpš‚€}v pš#ævpš‚€†v pš#æ vpšvpš‚€v pš#ævpš‚€—v pš#æ vpšvpš‚€ v pšvpšv p#xi‹Yþ íh‹Cþšvpš‚€®v pšvpšvp jh "²ÔR†  Ëî×k#xÓ>š vpš‚€µv pš#{vpš‚€»v pš#xvpšvp íhŠ©†Þ–ä â½Ëi–˜k†"‘Ë×xh ˜Ó i!"Ò k˜hŠ!xhŠê–Ì%‘j˜h†"Ë×xik!˜±#å¡Ô!%ÒkŠ!h!xiŠè#Õ‡ ˜Ò †"ËטĊ !xÄ!æ Óf!l$yr!†$æ  Ëî×|Ò†$æ  Ëî×ç$æ ÄŠ †$æ  Ëî×|h! æ Ó æ hŠô ç $æ Ä!†$æ  Ëî×}Ò†$æ  Ëî×ç˜Äa€*w–ô! r ŠjŠjŠjŠjŠ jŠ jŠր– ˆt®Î°h–+i0ˆ`ˆr0r Òi–º to continue...... Dump of Setss timeout : protocol : ÿåÿéÿíÿñÿõÿùÿãÿãÿñÿñÿùÿñG²Vü_êgèŠtm>Ô*˜I4ðãÔv ®4% L*** CONCURRE EXTRAHEAPASCALIOTIMEOUT BYTEFLIPCHSERVICSOCKETS  O^¦5¦{(.TITLE "SAGE Multi-User System Bootstrap" .PROC BOOTMU   ;********************************************************************** ;  ; SAGE COMPUTER - Multi-User System Bootstrap from floppy  ;  ; File: MU4.FBOOT.TEXT  ; Date: 7-Nov-83  ; Issue: 1A  ;  ;  ; COPYRIGHT (c) 1982, 1983 SAGE Computer Technology  ; All Rights Reserved  ;  ;**********************************************************************  ;  ; History:  ;  ; 1 3-May-83 Initial release.  ; 1A 7-Nov-83 Fixed Boot extension & User boot options.  ;  ;**********************************************************************  ;  ; This bootstrap is to be located in logical blocks 0 and 1 on a  ; floppy diskette. The floppy diskette bootstrap command in the  ; PROM Debugger will read logical blocks 0 and 1 into memory at  ; location 400H.  ;  ; The bootstrap routine first reads in the p-System directory  ; from the floppy diskette. Then the bootstrap searches the  ; directory for the file MU.BIOS which contains the SAGE  ; Multi-User Basic Input/Output System routines. Once found the  ; BIOS code is positioned into the highest memory available.  ;  ; Next the bootstrap searches for the file MU.CONFIG. If it  ; finds the file it reads it into memory. Otherwise the bootstrap  ; prompts the user for the configuration file name. An immediate  ; carriage return will terminate the bootstrap. Once the  ; configuration file is found it is read into memory and its  ; address is store at CONFADDR (208H).  ;  ; Finally the bootstrap transfers to the BIOS for initialization  ; and the Multi-User executive takes control. The BIOS only  ; returns if no tasks are defined.  ;  ; Note: The Boot extension and User bootstrap features are not yet  ; supported.  ; 7 ;********************************************************************** (  ; Macro for calls to PROM area.  ; (required for generation of long addresses). (.MACRO LJSR (.WORD 4EB9H (.WORD 00FEH (.WORD %1 (.ENDM (  ; Permanent jump vector assignments in PROM  KEYBCH .EQU 8H ;Get a keyboard character  TERMCHAR.EQU 14H ;Output a character  TERMTEXT.EQU 18H ;Printout text string  TERMCRLF.EQU 1CH ;Printout carriage return & line feed  FDREAD .EQU 28H ;Read from floppy diskette (  ; RAM variables for Debugger  MEMTOP .EQU 100H ;Top of memory   ; RAM variables for BIOS  BIOSBASE.EQU 200H  CONFADDR.EQU 208H  (  ; Constants for BOOT positioning  HDSIZE .EQU 26. ;Size of header data in uncompressed code file   (.ASCII "BOOT" ;This text is checked by the Debugger @; bootstrap process to insure that the @; boot area has been initialized with @; a bootstrap routine.   START ;The Debugger transfers control to @; offset 4 in this file. (  LEA SCRATCH,A3 ;Set up RAM area for bootstrap (MOVE.L (A7)+,(A3) ;Save the return address (MOVE.W (A7)+,4(A3) ;Save the drive number (CLR.B 21.(A3) ;Clear the BIOS active flag (  ; Output initial boot message (LJSR TERMCRLF (LEA INITMSG,A0 ;Printout "SAGE Multi-User Bootstrap" (LJSR TERMTEXT (LJSR TERMCRLF (  ; Read in p-System directory (LEA DIRNAM-1,A6 ;Set up message in case of error @; note: does not have byte count. (MOVE.W #2,-(A7) ;The p-System directory is at block 2 of ( ; each devices. (LEA BUFFER,A0 ;Set up the directory buffer address (MOVE.L A0,-(A7) ;Buffer address (MOVEA.W #2048.,A0 ;The directory is 2K bytes long (MOVE.L A0,-(A7) ;Length of transfer (MOVE.W 4(A3),-(A7) ;Set up drive number (LJSR FDREAD ;Read in the directory with the floppy @; driver in PROM. (BNE BADREAD ;Found error reading directory (  ; Now search for MU.BIOS and read in first block (LEA BIOSNAM,A6 ;Set up search string (BSR SEARCH (BNE SRCHERR ;Could not find MU.BIOS (ADDQ.W #1,D1 ;Code starts at relative block 1 in file (MOVE.W D1,-(A7) ;Set up logical block for BIOS code (MOVE.W D1,6(A3)  ;Save logical block for later (LEA BUFFER2,A5 ;Set up buffer address for first block (MOVE.L A5,-(A7) ;Buffer address (MOVEA.W #512.,A0 ;Set up size for one block (MOVE.L A0,-(A7) ;Length of transfer (MOVE.W 4(A3),-(A7) ;Set up drive number (LJSR FDREAD ;Read in first block (BNE BADREAD ;Found error while reading BIOS (  ; Calculate target address for BIOS and read it into memory. (LEA BIOSPASS,A0 ;Check for BIOS password code (LEA BUFFER2+HDSIZE,A5 ;Adjust for header data in code file (CMPM.L (A5)+,(A0)+ (BNE BADPASS ;Password is not correct (MOVE.W 6(A3),-(A7) ;Set up logical block number (MOVEA.L MEMTOP,A1 ;Get current top of memory (MOVEA.W (A5)+,A0 ;Get BIOS code size (ADDA.W #HDSIZE,A0 ;Also read in header data (SUBA.L A0,A1 ;Set up code address for floppy driver (MOVE.L A1,-(A7) ;Set up BIOS codefile address in memory (MOVE.L A0,-(A7) ;Set up floppy transfer length (ADDA.W #HDSIZE,A1 ;Now form actual code address (MOVEA.L A1,A4 ;Save base of BIOS to calculate init address (MOVEA.W (A5)+,A0 ;Get size of BIOS buffer area (SUBA.L A0,A1 ;Form base of BIOS area in memory (MOVE.L A1,BIOSBASE ;Store new top of memory address (ADDA.W (A5),A4 ;Form BIOS Initialization routine address (MOVE.L A4,8(A3) ;Save starting address 7(MOVE.L 88.-8(A5),12.(A3) ;Save RAM Disk address (MOVE.L 92.-8(A5),16.(A3) ;Save top of RAM Disk (MOVE.B 96.-8(A5),20.(A3) ;Save RAM Disk Boot Flag (MOVE.W 4(A3),-(A7) ;Set up drive number (LJSR FDREAD ;Read in the whole BIOS (BNE BADREAD ;Found error while reading BIOS (  ; Read in Configuration info (LEA CONFNAME,A6 ;Set up search string (BSR SEARCH (BEQ $60 ;Found default file MU.CONFIG   ; Prompt user for name of configuration file  $10 LJSR TERMCRLF (LEA ASKCONF,A0 ;Ask for configuration file (LJSR TERMTEXT (LEA FILENAME,A6 ;Build filename string (CLR.W D1 (MOVE.B D1,(A6)  $20 LJSR KEYBCH ;Get a keyboard character (CMPI.B #0DH,D0 ;Check for carriage return (BEQ.S $50 ;Found terminator (CMPI.B #8,D0 (BEQ.S $40 ;Found Backspace (CMPI.B #" ",D0 (BLE.S $20 ;Don't process control characters or space (CMPI.B #15.,D1 (BGE.S $20 ;Too many characters (ADDQ.W #1,D1 ;Advance pointer (MOVE.B D0,0(A6,D1.W) ;Store character  CLR.B 1(A6,D1) ;Set up null terminator  $25 MOVE.B D1,(A6) ;Update string count (LJSR TERMCHAR ;Echo the character (BRA $20 ;Back for another character (  ; Handle backspace  $40 TST.W D1 (BEQ $20 ;Don't backspace past beginning (LJSR TERMCHAR ;Output Backspace (MOVEQ #" ",D0 ;Output blank (LJSR TERMCHAR (MOVEQ #8,D0 ;Set up another backspace (SUBQ.W #1,D1 ;Back up the pointer (BRA $25 (  ; Handle no file  $45 LEA SRCHMSG,A0 ;Printout "Could not find " (LJSR TERMTEXT (MOVEA.L A6,A0 (ADDQ.L #1,A0 (LJSR TERMTEXT ;Printout file name (LJSR TERMCRLF (BRA $10 ;Try again (  ; Handle carriage return  $50 LJSR TERMCRLF (TST.B D1 (BEQ PRTERR2 ;Null name field, exit debugger (BSR SEARCH (BNE $45 ;Did not find file (  $60 MOVE.W D1,-(A7) ;Set up logical block (LEA BUFFER3,A5 ;Set up buffer address (MOVE.L A5,-(A7) ;Buffer address for driver (ADDA.W #512.+HDSIZE+6,A5 (MOVE.L A5,CONFADDR ;Save address in BIOS area (ADDA.L D2,A5 ;Set up free address beyond configuration (MOVE.L A5,12.(A3) (MOVE.L D2,-(A7) ;Length of transfer (MOVE.W 4(A3),-(A7) ;Set up drive number (LJSR FDREAD ;Read in configuration (BNE BADREAD ;Found error while reading Configuration ( (MOVEA.L CONFADDR,A5 ;Check password on configuration (SUBQ.L #6,A5 (LEA CONFPASS,A0 (CMPM.L (A5)+,(A0)+ (BEQ.S $65 ;Password is good (LEA NOCONFIG,A0 ;Printout not configuration (LJSR TERMTEXT (LJSR TERMCRLF (BRA $10 (  ; Search for the optional MU.BOOTEXT.CODE file  $65 MOVEQ #0,D4 ;Default address (LEA BOOTEXT,A6 (BSR SEARCH (BNE.S $70 ;Optional boot extension not found (MOVE.W D1,-(A7) ;Set up logical block (LEA SCRATCH,A3 (MOVE.L 12.(A3),-(A7) ;Set up memory buffer (MOVE.L D2,-(A7) ;Length of transfer (MOVE.W 4(A3),-(A7) ;Set up drive number (LJSR FDREAD ;Read in boot extension code (BNE BADREAD ;Found error while reading boot extension (LEA SCRATCH,A3 (MOVE.L 12.(A3),D4  ADDI.L #512.+HDSIZE,D4 ;Bias to p-System assemby code (MOVEA.L D4,A5 (LEA EXBTPASS,A0  CMPM.L (A5)+,(A0)+ (BEQ.S $70 ;Good boot extension (LEA BADEXT,A0 ;Printout bad MU.BOOTEXT.CODE (LJSR TERMTEXT (LJSR TERMCRLF (MOVEQ #0,D4 ;No boot extension (  $70 LEA STACK,SP (MOVE.L D4,-(SP) ;Pass boot extension address (MOVE.W 4(A3),-(SP) ;Physical drive number  ADDQ.W #4,(SP)  8 ; Search for the optional USER.BOOT.CODE routine (MOVEQ #0,D4 ;Default User boot routine address (LEA USERBOOT,A6 (BSR SEARCH (BNE.S $80 ;No user boot (MOVE.W D1,D4 ;Save routine block address  $80 MOVE.L D4,-(SP) ;Pass User Boot routine address (MOVE.L D2,-(SP) ;Pass User Boot routine size (MOVE.W #0ABCDH,-(SP) ;New boot indicator code ( ; Initialize the BIOS  ENTER MOVEA.L 8(A3),A4 ;Get BIOS initialization address (JSR (A4) ;Initialize BIOS (  ; Never returns unless no tasks defined (MOVE #2700H,SR ;Make sure interrupts disabled (LEA NOTSKMSG,A0 (BRA PRTERR1 ( (  ; Search Routine for directory entry  ; A6 is pointer to target string.  ; A1 is returned with block address of start of code in file.  SEARCH (LEA BUFFER+32.,A5 ;Set up pointer to directory entry @; skipping initial volume entry. (LEA -16.(A5),A0 (MOVE.W (A0),D0 ;Get number of files (CMPI.W #77.,D0 ;Check for limit (BLE.S $5 ;Within limit  ROL.W #8,D0 ;Check if byte directory needs flipped  CMPI.W #77.,D0 ;Check limit again (BGT BADDIR ;Illegal directory   ; Swap bytes in directory (MOVE.W D0,(A0) ;Store swapped number of files (ADDQ.L #4,A0 (MOVE.W D0,D3 (BSR.S BYTSWAP ;Swap the date word (ADDQ.L #4,A0  ; Swap each directory entry  $2 BSR.S BYTSWAP ;First block (BSR.S BYTSWAP ;Last block (BSR.S BYTSWAP ;File kind (ADDA.W #16.,A0 (BSR.S BYTSWAP ;Last byte of data (BSR.S BYTSWAP ;Date (SUBQ.W #1,D3 (BNE $2 ;Back for more (  $5 TST.B D0 ;Check for empty directory (BEQ.S $40 ;Directory was empty, entry not found (  ; Base of loop for each entry  $10 MOVEA.L A6,A0 ;Set up pointer to test string (MOVEA.L A5,A1 ;Set up pointer to directory entry (CLR.L D1 (MOVE.B (A6),D1 ;Set up byte count for testing (  ; Base of loop for each character  $20 CMPM.B (A0)+,(A1)+ ;Compare the entries (DBNE D1,$20 (BNE.S $30 ;Found miscompare (CLR.L D2 (MOVE.W -6(A5),D1 ;Get starting block number (MOVE.W -4(A5),D2 ;Get trailing block number (SUB.W D1,D2 ;Form size in blocks (LSL.L #8,D2 ;Form size in bytes (LSL.L #1,D2 (CLR.B D0 ;Zero flag indicates success (RTS (  $30 SUBQ.B #1,D0 ;Check entry count (BEQ.S $40 ;Could not find entry (LEA 26.(A5),A5 ;Short way to advance address pointer (BRA.S $10 ;Back for another try (  $40 MOVE.B #1,D0 ;NE flag indicates failure (RTS (   ; Byte swap routine  BYTSWAP MOVE.W (A0),D1 (ROL.W #8,D1 (MOVE.W D1,(A0)+ (RTS    ; Found error while reading diskette.  ; Printout message about problem and return to debugger.  BADREAD LEA READMSG,A0 ;Printout "Error reading "  BRA.S PRTERR    ; Could not find "BIOS" password in SYSTEM.BIOS file.  ; Printout message about problem and return to debugger.  BADPASS LEA PASSMSG,A0 ;Printout "Not BIOS code in " (BRA.S PRTERR    ; Directory entry size was in error.  ; Printout message about problem and return to Debugger.  BADDIR ADDQ.L #4,A7 ;Get rid of return address (LJSR TERMCRLF (LEA DIRMSG,A0 ;Printout "Illegal directory" (BRA.S PRTERR    ; Could not find file in directory.  ; Printout message about problem and return to debugger.  SRCHERR LEA SRCHMSG,A0 ;Printout "Could not find " (   ; Printout error message  PRTERR LJSR TERMCRLF (LJSR TERMTEXT 8(MOVEA.L A6,A0 ;Set up pointer to name of item being read (ADDQ.L #1,A0 ;Bypass byte count  PRTERR1 LJSR TERMTEXT ;Printout type of information (LJSR TERMCRLF  PRTERR2 MOVEA.L (A3),A0 ;Return address to Debugger  JMP (A0)  (  ; Passwords (must have word alignment)  BIOSPASS.ASCII "BIOS" ;MU.BIOS password  CONFPASS.ASCII "MUCF" ;Configuration password  EXBTPASS.ASCII "MUBE" ;Boot extension password    ; Messages  INITMSG .ASCII "SAGE Multi-User System Bootstrap" (.BYTE 0   READMSG .ASCII "Error reading " (.BYTE 0   SRCHMSG .ASCII "Could not find " (.BYTE 0   PASSMSG .ASCII "Not BIOS code in " (.BYTE 0   NOTSKMSG.ASCII "No Tasks" (.BYTE 0   ASKCONF .ASCII "Configuration file? " (.BYTE 0   NOCONFIG.ASCII "Not MU configuration" (.BYTE 0    BADEXT .BYTE 7 (.ASCII "Bad MU.BOOTEXT.CODE" (.BYTE 0   DIRMSG .ASCII "Illegal "  ; Must fall into DIRNAM.   ; File names  DIRNAM .ASCII "directory" ;Only for error printout (.BYTE 0   BIOSNAM .BYTE 8 ;String byte count (.ASCII "MU4.BIOS" (.BYTE 0 ;Terminator for TERMTEXT   CONFNAME.BYTE 9 (.ASCII "MU.CONFIG" (.BYTE 0 (  USERBOOT.BYTE 14. (.ASCII "USER.BOOT.CODE" (.BYTE 0 (  BOOTEXT .BYTE 15. (.ASCII "MU.BOOTEXT.CODE" (.BYTE 0 ( (.BYTE 2 ;Bootstrap Version @;If bootstrap ends with a non-zero value @; the device to device bootstrap transfer @; can determine the size. ( (.ALIGN 2  SCRATCH .EQU *+1024. ;Ram scratch area  ;Offsets: @; 0.- Return address to Debugger @; 4.- Drive number (0 or 1) @; 6.- Logical block for BIOS @; 8.- Starting address of BIOS @;12.- Starting address of boot extension @;16. @;20. @;21. @;22.- Temporary storage (4 bytes)   FILENAME.EQU SCRATCH+26. ;Configuration file name  STACK .EQU FILENAME+18.  BUFFER .EQU STACK+512. ;p-System directory  BUFFER2 .EQU BUFFER+2048. ;First block of BIOS  BUFFER3 .EQU BUFFER2+512. ;Configuration storage  (.END    A B Î9O^¥ ¦{"9(.TITLE "SAGE Multi-User System Bootstrap" .PROC BOOTMU   ;********************************************************************** ;  ; SAGE COMPUTER - Multi-User System Bootstrap from Winchester  ;  ; File: MU4.WBOOT.TEXT  ; Date: 7-Nov-83  ; Issue: 1A  ;  ;  ; COPYRIGHT (c) 1982, 1983 SAGE Computer Technology  ; All Rights Reserved  ;  ;**********************************************************************  ;  ; History:  ;  ;  1 3-May-83 Initial release.  ; 1A 7-Nov-83 Fixed Boot extension and User boot options.  ;  ;**********************************************************************  ;  ; This bootstrap is to be located in logical blocks 0 and 1 on a  ; Winchester Partition. The Winchester bootstrap command in the  ; PROM Debugger will read logical blocks 0 and 1 into memory at  ; location 400H.  ;  ; The bootstrap routine first reads in the p-System directory  ; from the Winchester. Then the bootstrap searches the  ; directory for the file MU.BIOS which contains the SAGE  ; Multi-User Basic Input/Output System routines. Once found the  ; BIOS code is positioned into the highest memory available.  ;  ; Next the bootstrap searches for the file MU.CONFIG. If it  ; finds the file it reads it into memory. Otherwise the bootstrap  ; prompts the user for the configuration file name. An immediate  ; carriage return will terminate the bootstrap. Once the  ; configuration file is found it is read into memory and its  ; address is store at CONFADDR (208H).  ;  ; Finally the bootstrap transfers to the BIOS for initialization  ; and the Multi-User executive takes control. The BIOS only  ; returns if no tasks are defined.  ; ; Note: The Boot extension and User boot have not yet been  ; supported.  ;  ;********************************************************************** (  ; Macro for calls to PROM area.  ; (required for generation of long addresses). (.MACRO LJSR (.WORD 4EB9H (.WORD 00FEH (.WORD %1 (.ENDM (  ; Permanent jump vector assignments in PROM  KEYBCH .EQU 8H ;Get a keyboard character  TERMCHAR.EQU 14H ;Output a character  TERMTEXT.EQU 18H ;Printout text string  TERMCRLF.EQU 1CH ;Printout carriage return & line feed  WDREAD .EQU 3CH ;Read from Winchester (  ; RAM variables for Debugger  MEMTOP .EQU 100H ;Top of memory   ; RAM variables for BIOS  BIOSBASE.EQU 200H  CONFADDR.EQU 208H  (  ; Constants for BOOT positioning  HDSIZE .EQU 26. ;Size of header data in uncompressed code file   (.ASCII "BOOT" ;This text is checked by the Debugger @; bootstrap process to insure that the @; boot area has been initialized with @; a bootstrap routine.   START ;The Debugger transfers control to @; offset 4 in this file. (  LEA SCRATCH,A3 ;Set up RAM area for bootstrap (MOVE.L (A7)+,(A3) ;Save the return address (MOVE.W (A7)+,D0 ;Save the subdevice number (LSL.W #8,D0 (MOVE.B #9,D0 ;Set up physical device number (MOVE.W D0,4(A3) ;Save the drive number (  ; Output initial boot message (LJSR TERMCRLF (LEA INITMSG,A0 ;Printout "SAGE Multi-User Bootstrap" (LJSR TERMTEXT (LJSR TERMCRLF (  ; Read in p-System directory (LEA DIRNAM-1,A6 ;Set up message in case of error @; note: does not have byte count. (MOVE.L #2,-(A7) ;The p-System directory is at block 2 of ( ; each devices. (LEA BUFFER,A0 ;Set up the directory buffer address (MOVE.L A0,-(A7) ;Buffer address 9(MOVEA.W #2048.,A0 ;The directory is 2K bytes long (MOVE.L A0,-(A7) ;Length of transfer (LJSR WDREAD ;Read in the directory with the floppy @; driver in PROM. (BNE BADREAD ;Found error reading directory (  ; Now search for MU.BIOS and read in first block (LEA BIOSNAM,A6 ;Set up search string (BSR SEARCH (BNE SRCHERR ;Could not find MU.BIOS (ADDQ.W #1,D1 ;Code starts at relative block 1 in file (MOVE.L D1,-(A7)  ;Set up logical block for BIOS code (MOVE.L D1,16.(A3) ;Save logical block for later (LEA BUFFER2,A5 ;Set up buffer address for first block (MOVE.L A5,-(A7) ;Buffer address (MOVEA.W #512.,A0 ;Set up size for one block (MOVE.L A0,-(A7) ;Length of transfer (LJSR WDREAD ;Read in first block (BNE BADREAD ;Found error while reading BIOS (  ; Calculate target address for BIOS and read it into memory. (LEA BIOSPASS,A0 ;Check for BIOS password code (LEA BUFFER2+HDSIZE,A5 ;Adjust for header data in code file (CMPM.L (A5)+,(A0)+ (BNE BADPASS ;Password is not correct (MOVE.L 16.(A3),-(A7) ;Set up logical block number (MOVEA.L MEMTOP,A1 ;Get current top of memory (MOVEA.W (A5)+,A0 ;Get BIOS code size (ADDA.W #HDSIZE,A0 ;Also read in header data (SUBA.L A0,A1 ;Set up code address for floppy driver (MOVE.L A1,-(A7) ;Set up BIOS codefile address in memory (MOVE.L A0,-(A7) ;Set up floppy transfer length (ADDA.W #HDSIZE,A1 ;Now form actual code address (MOVEA.L A1,A4 ;Save base of BIOS to calculate init address (MOVEA.W (A5)+,A0 ;Get size of BIOS buffer area (SUBA.L A0,A1 ;Form base of BIOS area in memory (MOVE.L A1,20(A3) ;Store new top of memory address (ADDA.W (A5),A4 ;Form BIOS Initialization routine address (MOVE.L A4,8(A3) ;Save starting address (LJSR WDREAD ;Read in the whole BIOS (BNE BADREAD ;Found error while reading BIOS (  ; Read in Configuration info (LEA CONFNAME,A6 ;Set up search string (BSR SEARCH (BEQ $60 ;Found default file MU.CONFIG   ; Prompt user for name of configuration file  $10 LJSR TERMCRLF (LEA ASKCONF,A0 ;Ask for configuration file (LJSR TERMTEXT (LEA FILENAME,A6 ;Build filename string (CLR.W D1 (MOVE.B D1,(A6)  $20  LJSR KEYBCH ;Get a keyboard character (CMPI.B #0DH,D0 ;Check for carriage return (BEQ.S $50 ;Found terminator (CMPI.B #8,D0 (BEQ.S $40 ;Found Backspace (CMPI.B #" ",D0 (BLE.S $20 ;Don't process control characters or space (CMPI.B #15.,D1 (BGE.S $20 ;Too many characters (ADDQ.W #1,D1 ;Advance pointer (MOVE.B D0,0(A6,D1.W) ;Store character  CLR.B 1(A6,D1) ;Set up null terminator  $25 MOVE.B D1,(A6) ;Update string count (LJSR TERMCHAR ;Echo the character (BRA $20 ;Back for another character (  ; Handle backspace  $40 TST.W D1 (BEQ $20 ;Don't backspace past beginning (LJSR TERMCHAR ;Output Backspace (MOVEQ #" ",D0 ;Output blank (LJSR TERMCHAR (MOVEQ #8,D0 ;Set up another backspace (SUBQ.W #1,D1 ;Back up the pointer (BRA $25 (  ; Handle no file  $45 LEA SRCHMSG,A0 ;Printout "Could not find " (LJSR TERMTEXT (MOVEA.L A6,A0 (ADDQ.L #1,A0 (LJSR TERMTEXT ;Printout file name (LJSR TERMCRLF (BRA $10 ;Try again (  ; Handle carriage return  $50 LJSR TERMCRLF (TST.B D1 (BEQ PRTERR2 ;Null name field, exit debugger (BSR SEARCH (BNE $45 ;Did not find file (  $60 MOVE.L D1,-(A7) ;Set up logical block :(LEA BUFFER3,A5 ;Set up buffer address (MOVE.L A5,-(A7) ;Buffer address for driver (ADDA.W #512.+HDSIZE+6,A5 (MOVE.L A5,24.(A3) ;Save address in BIOS area (ADDA.L D2,A5 ;Set up free address beyond configuration (MOVE.L A5,12.(A3) (MOVE.L D2,-(A7) ;Length of transfer (LJSR WDREAD ;Read in configuration (BNE BADREAD ;Found error while reading Configuration ( (MOVEA.L 24.(A3),A5 ;Check password on configuration (SUBQ.L #6,A5 (LEA CONFPASS,A0 (CMPM.L (A5)+,(A0)+ (BEQ.S $65 ;Password is good (LEA NOCONFIG,A0 ;Printout not configuration (LJSR TERMTEXT (LJSR TERMCRLF (BRA $10 (  ; Search for the optional MU.BOOTEXT.CODE file  $65 MOVEQ #0,D4 ;Default address (LEA BOOTEXT,A6 (BSR SEARCH (BNE.S $70 ;Optional boot extension not found (MOVE.L D1,-(A7) ;Set up logical block (LEA SCRATCH,A3 (MOVE.L 12.(A3),-(A7) ;Set up memory buffer (MOVE.L D2,-(A7) ;Length of transfer (LJSR WDREAD ;Read in boot extension code (BNE BADREAD ;Found error while reading boot extension (LEA SCRATCH,A3 (MOVE.L 12.(A3),D4  ADDI.L #512.+HDSIZE,D4 ;Bias to p-System assemby code (MOVEA.L D4,A5 (LEA EXBTPASS,A0  CMPM.L (A5)+,(A0)+ (BEQ.S $70 ;Good boot extension (LEA BADEXT,A0 ;Printout bad MU.BOOTEXT.CODE (LJSR TERMTEXT (LJSR TERMCRLF (MOVEQ #0,D4 ;No boot extension (  $70 LEA STACK,SP (MOVE.L D4,-(SP) ;Pass boot extension address (MOVE.W 4(A3),-(SP) ;Physical drive number   ; Search for the optional USER.BOOT.CODE routine (MOVEQ #0,D4 ;Default User boot routine address (LEA USERBOOT,A6 (BSR SEARCH (BNE.S $80 ;No user boot (MOVE.W D1,D4 ;Save routine block address  $80 MOVE.L D4,-(SP) ;Pass User Boot routine address (MOVE.L D2,-(SP) ;Pass User Boot routine size (MOVE.W #0ABCDH,-(SP) ;New boot indicator code ( ; Initialize the BIOS  ENTER MOVE.L 20.(A3),BIOSBASE (MOVE.L 24.(A3),CONFADDR (MOVEA.L 8(A3),A4 ;Get BIOS initialization address (JSR (A4) ;Initialize BIOS (  ; Never returns unless no tasks defined (MOVE #2700H,SR ;Make sure interrupts disabled (LEA NOTSKMSG,A0 (BRA PRTERR1 ( (  ; Search Routine for directory entry  ; A6 is pointer to target string.  ; A1 is returned with block address of start of code in file.  SEARCH (LEA BUFFER+32.,A5 ;Set up pointer to directory entry @; skipping initial volume entry. (LEA -16.(A5),A0 (MOVE.W (A0),D0 ;Get number of files (CMPI.W #77.,D0 ;Check for limit (BLE.S $5 ;Within limit  ROL.W #8,D0 ;Check if byte directory needs flipped  CMPI.W #77.,D0 ;Check limit again (BGT BADDIR ;Illegal directory   ; Swap bytes in directory (MOVE.W D0,(A0) ;Store swapped number of files (ADDQ.L #4,A0 (MOVE.W D0,D3 (BSR.S BYTSWAP ;Swap the date word (ADDQ.L #4,A0  ; Swap each directory entry  $2 BSR.S BYTSWAP ;First block (BSR.S BYTSWAP ;Last block (BSR.S BYTSWAP ;File kind (ADDA.W #16.,A0 (BSR.S BYTSWAP ;Last byte of data (BSR.S BYTSWAP ;Date (SUBQ.W #1,D3 (BNE $2 ;Back for more (  $5 TST.B D0 ;Check for empty directory (BEQ.S $40 ;Directory was empty, entry not found (  ; Base of loop for each entry  $10 MOVEA.L A6,A0 ;Set up pointer to test string (MOVEA.L A5,A1 ;Set up pointer to directory entry (CLR.L D1 (MOVE.B (A6),D1 ;Set up byte count for testing (  ; Base of loop for each character : $20 CMPM.B (A0)+,(A1)+ ;Compare the entries (DBNE D1,$20 (BNE.S $30 ;Found miscompare (CLR.L D2 (MOVE.W -6(A5),D1 ;Get starting block number (MOVE.W -4(A5),D2 ;Get trailing block number (SUB.W D1,D2 ;Form size in blocks (LSL.L #8,D2 ;Form size in bytes (LSL.L #1,D2 (CLR.B D0 ;Zero flag indicates success (RTS (  $30 SUBQ.B #1,D0 ;Check entry count (BEQ.S $40 ;Could not find entry (LEA 26.(A5),A5 ;Short way to advance address pointer (BRA.S $10 ;Back for another try (  $40 MOVE.B #1,D0 ;NE flag indicates failure (RTS (   ; Byte swap routine  BYTSWAP MOVE.W (A0),D1 (ROL.W #8,D1 (MOVE.W D1,(A0)+ (RTS    ; Found error while reading diskette.  ; Printout message about problem and return to debugger.  BADREAD LEA READMSG,A0 ;Printout "Error reading "  BRA.S PRTERR    ; Could not find "BIOS" password in SYSTEM.BIOS file.  ; Printout message about problem and return to debugger.  BADPASS LEA PASSMSG,A0 ;Printout "Not BIOS code in " (BRA.S PRTERR    ; Directory entry size was in error.  ; Printout message about problem and return to Debugger.  BADDIR ADDQ.L #4,A7 ;Get rid of return address (LJSR TERMCRLF (LEA DIRMSG,A0 ;Printout "Illegal directory" (BRA.S PRTERR    ; Could not find file in directory.  ; Printout message about problem and return to debugger.  SRCHERR LEA SRCHMSG,A0 ;Printout "Could not find " (   ; Printout error message  PRTERR LJSR TERMCRLF (LJSR TERMTEXT (MOVEA.L A6,A0 ;Set up pointer to name of item being read (ADDQ.L #1,A0 ;Bypass byte count  PRTERR1 LJSR TERMTEXT ;Printout type of information (LJSR TERMCRLF  PRTERR2 MOVEA.L (A3),A0 ;Return address to Debugger  JMP (A0)  (  ; Passwords (must have word alignment)  BIOSPASS.ASCII "BIOS" ;MU.BIOS password  CONFPASS.ASCII "MUCF" ;Configuration password  EXBTPASS.ASCII "MUBE" ;Boot extension password    ; Messages  INITMSG .ASCII "SAGE Multi-User System Bootstrap" (.BYTE 0   READMSG .ASCII "Error reading " (.BYTE 0   SRCHMSG .ASCII "Could not find " (.BYTE 0   PASSMSG .ASCII "Not BIOS code in " (.BYTE 0   NOTSKMSG.ASCII "No Tasks" (.BYTE 0    ASKCONF .ASCII "Configuration file? " (.BYTE 0   NOCONFIG.ASCII "Not MU configuration" (.BYTE 0    BADEXT .BYTE 7 (.ASCII "Bad MU.BOOTEXT.CODE" (.BYTE 0   DIRMSG .ASCII "Illegal "  ; Must fall into DIRNAM.   ; File names  DIRNAM .ASCII "directory" ;Only for error printout (.BYTE 0   BIOSNAM .BYTE 8 ;String byte count (.ASCII "MU4.BIOS" (.BYTE 0 ;Terminator for TERMTEXT   CONFNAME.BYTE 9 (.ASCII "MU.CONFIG" (.BYTE 0 (  USERBOOT.BYTE 14. (.ASCII "USER.BOOT.CODE" (.BYTE 0 (  BOOTEXT .BYTE 15. (.ASCII "MU.BOOTEXT.CODE" (.BYTE 0 ( (.BYTE 2 ;Bootstrap Version @;If bootstrap ends with a non-zero value @; the device to device bootstrap transfer @; can determine the size. ( (.ALIGN 2  SCRATCH .EQU *+1024. ;Ram scratch area  ;Offsets: @; 0.- Return address to Debugger @; 4.- Drive number (0 or 1) @; 6. @; 8.- Starting address of BIOS @;12.- Starting address of boot extension @;16.- Logical block for BIOS @;20.- Base of BIOS @;24.- Configuration address   FILENAME.EQU SCRATCH+28. ;Configuration file name  STACK .EQU FILENAME+18. ;Stack while booting  BUFFER .EQU STACK+512. ;p-System directory  BUFFER2 .EQU BUFFER+2048. ;First block of BIOS  BUFFER3 .EQU BUFFER2+512. ;Configuration storage  (.END  ;A $CURSOR $EQUAL  7NO.ª³ª³(.TITLE "Multi-User p-System Version 4.21 Bootstrap" .PROC BOOTPSYS   ;********************************************************************** ;  ; Stride Micro - p-System Bootstrap  ;  ; File: MU.PBOOT.TEXT  ;  ; File creation date: 03-May-83  ; Last revision date: 11-Mar-85 by WRB  ;  ; Issue: 4  ;  ;  ; COPYRIGHT (c) 1984 Stride Micro  ; All Rights Reserved Worldwide  ;  ;**********************************************************************  ;  ; History:  ;  ; 1 3-May-83 Initial release.  ; 1A 24-Oct-83 Fixed code pool address calculation.  ; 2 9-Mar-84 Changed parameter passing to interpreter.  ; Now load interpreter at top of area.  ; 3 25-Sep-84 Stride release.  ; 4 11-Mar-85 Modified for IV.21.  ;  ;**********************************************************************  ;  ; This bootstrap is to be located in logical blocks 0 and 1 on a  ; floppy diskette. The floppy diskette bootstrap command in the  ; Multi-User monitorwill read logical blocks 0 and 1 into memory at  ; the base of the task memory area.  ;  ; The bootstrap routine first reads in the p-System directory  ; from the floppy diskette.  ;  ; The bootstrap then searches the directory for the file  ; SYSTEM.INTERP and read it into memory. The file SYSTEM.MISCINFO  ; is read in to patch the Code Pool address and size.  ;  ; Finally the p-System interpreter is started after several  ; parameters are pushed onto the stack.  ;  ;********************************************************************** (  ( (.ASCII "MUBT" ;This text is checked by the monitor @; bootstrap process to insure that the @; boot area has been initialized with @; a bootstrap routine.   START ;The monitor transfers control to @; offset 4 in this file. (  LEA SCRATCH,A3 ;Set up RAM area for bootstrap (MOVE.L (A7)+,(A3) ;Save the return address (MOVEA.L A3,SP ;Set up stack (MOVEQ #24.,D0 ;Get boot device (TRAP #14. (MOVE.W D0,4(A3) ;Save device number for boot reads (  ; Output initial boot message (BSR TERMCRLF (LEA INITMSG,A0 ;Printout "p-System Bootstrap" (BSR TERMTEXT (BSR TERMCRLF   ; Calculate memory areas (MOVEQ #22.,D0 ;Get base of memory area (TRAP #14. (MOVE.L A0,12.(A3) ;Save base of p-System Data area (MOVEA.L A0,A1 (MOVEQ #1,D0 (SWAP D0 (ADDA.L D0,A1 ;Allow at least 64K ( (MOVEQ #23.,D0 ;Get top of memory area (TRAP #14. (MOVE.L A0,16.(A3) ;Save top of memory area (CMPA.L A0,A1 (BHI NOMEMORY ;Data area too big  SUBA.L 12.(A3),A0 ;(MOVE.L A0,38.(A3) ;Save total size of memory   ; Read in p-System directory (LEA DIRNAM-1,A6 ;Set up message in case of error @; note: does not have byte count. (LEA ARGS,A0 (MOVE.W 4(A3),(A0) ;Boot device number for BIOS calls (ADDQ.L #4,A0 ;Advance to size field (CLR.W (A0)+ (MOVE.W #2048.,(A0)+ ;Size in bytes (PEA BUFFER (MOVE.L (SP)+,(A0)+ ;Set up Directory address (MOVE.W #2,(A0)+ ;Set up logical block for directory (CLR.L  (A0)+ ;Control word and High part of logical block (MOVEQ #11.,D0 ;Set up read (LEA ARGS,A0 (TRAP #14. (TST.W 2(A0) ;Check error code (BNE BADREAD ;Found error reading in directory ( (  ; Search for SYSTEM.INTERP and read it into memory (LEA BOOTNAM,A6 ;Set up search string (BSR SEARCH (LEA ARGS,A0 (MOVE.W 4(A3),(A0) ;Calculate floppy number for BIOS calls (ADDQ.L #4,A0 ;Advance to size field (MOVE.L D2,(A0)+ ;Size in bytes (SUB.L D2,16.(A3) ;Leave room for interpreter (MOVE.L 16.(A3),(A0)+ ;Set up interpreter address (MOVE.W D1,(A0)+ ;Set up logical block for interpreter code ( ; Note: assumes a compressed code file (CLR.W (A0)+ ;Control word (MOVEQ #11.,D0 ;Set up read (LEA ARGS,A0 (TRAP #14. (TST.W 2(A0) ;Check error code (BNE BADREAD ;Found error reading in interpreter file (  ; Lookup SYSTEM.PASCAL and start p-System.  ENTER LEA SCRATCH,A3 (MOVE.W 4(A3),D7 ;Get drive number (MOVEA.L 16.(A3),SP ; set user stack pointer (PEA BUFFER ;Address of directory (MOVE.L 38.(A3),-(SP) ;Size of memory area (MOVE.L 12.(A3),-(SP) ; set low memory address (MOVE.W D7,-(SP) ;Drive number (MOVEA.L 16.(A3),A3 ; jump into the interpreter (JMP (A3) ( ( (  ; Search Routine for directory entry  ; A6 is pointer to target string.  ; A1 is returned with block address of start of code in file.  SEARCH (LEA BUFFER+32.,A5 ;Set up pointer to directory entry @; skipping initial volume entry. (LEA -16.(A5),A0 (MOVE.W (A0),D0 ;Get number of files (CMPI.W #77.,D0 ;Check for limit (BLE.S $5 ;Within limit  ROL.W #8,D0 ;Check if byte directory needs flipped  CMPI.W #77.,D0 ;Check limit again (BGT BADDIR  ;Illegal directory   ; Swap bytes in directory (MOVE.W D0,(A0) ;Store swapped number of files (ADDQ.L #4,A0 (MOVE.W D0,D3 (BSR.S BYTSWAP ;Swap the date word (ADDQ.L #4,A0  ; Swap each directory entry  $2 BSR.S BYTSWAP ;First block (BSR.S BYTSWAP ;Last block (BSR.S BYTSWAP ;File kind (ADDA.W #16.,A0 (BSR.S BYTSWAP ;Last byte of data (BSR.S BYTSWAP ;Date (SUBQ.W #1,D3 (BNE $2 ;Back for more (  $5 TST.B D0 ;Check for empty directory (BEQ.S SRCHERR ;Directory was empty, entry not found (  ; Base of loop for each entry  $10 MOVEA.L A6,A0 ;Set up pointer to test string (MOVEA.L A5,A1 ;Set up pointer to directory entry (CLR.L D1 (MOVE.B (A6),D1 ;Set up byte count for testing (  ; Base of loop for each character  $20 CMPM.B (A0)+,(A1)+ ;Compare the entries (DBNE D1,$20 (BNE.S $30 ;Found miscompare (CLR.L D2 (MOVE.W -6(A5),D1 ;Get starting block number (MOVE.W -4(A5),D2 ;Get trailing block number (SUB.W D1,D2 ;Form size in blocks (LSL.L #8,D2 ;Form size in bytes (LSL.L #1,D2 (RTS (  $30 SUBQ.B #1,D0 ;Check entry count (BEQ.S SRCHERR ;Could not find entry (LEA 26.(A5),A5 ;Short way to advance address pointer (BRA.S $10 ;Back for another try (  < ; Byte swap routine  BYTSWAP MOVE.W (A0),D1 (ROL.W #8,D1 (MOVE.W D1,(A0)+ (RTS    ; Printout not enough memory  NOMEMORY (LEA MEMMSG,A0 (BRA PRTERR1    ; Found error while reading diskette.  ; Printout message about problem and return to debugger.  BADREAD LEA READMSG,A0 ;Printout "Error reading "  BRA.S PRTERR   ; Found error while writing  BADWRIT LEA WRITMSG,A0 ;Printout "Error writing " (BRA.S PRTERR     ; Directory entry size was in error.  ; Printout message about problem and return to Debugger.  BADDIR ADDQ.L #4,A7 ;Get rid of return address (BSR TERMCRLF (LEA DIRMSG,A0 ;Printout "Illegal directory" (BRA.S PRTERR    ; Could not find file in directory.  ; Printout message about problem and return to debugger.  SRCHERR ADDQ.L #4,A7 ;Get rid of return address (LEA SRCHMSG,A0 ;Printout "Could not find " (   ; Printout error message  PRTERR BSR TERMCRLF (BSR TERMTEXT (MOVEA.L A6,A0 ;Set up pointer to name of item being read (ADDQ.L #1,A0 ;Bypass byte count  PRTERR1 BSR TERMTEXT ;Printout type of information (BSR TERMCRLF (MOVEA.L (A3),A0 (JMP (A0) ;Return to caller   ; Printout text string  TERMTEXT (MOVE.B (A0)+,D0 (BEQ.S $10 (TRAP #10. (BRA TERMTEXT  $10 RTS   ; Printout Carriage Return and Line Feed  TERMCRLF (MOVEQ #13.,D0 ;Carriage Return (TRAP #10. (MOVEQ #10.,D0 ;Line Feed (TRAP #10. (CLR.B D0 ;Nulls for slow terminals (TRAP #10. (TRAP #10.  TRAP #10. (TRAP #10. (TRAP #10. (RTS    ; Messages  INITMSG .ASCII "Multi-User p-System IV.21 Bootstrap" (.BYTE 0   READMSG .ASCII "Error reading " (.BYTE 0   WRITMSG .ASCII "Error writing " (.BYTE 0   SRCHMSG .ASCII "Could not find " (.BYTE 0   MEMMSG .ASCII "Not enough memory" (.BYTE 0   DIRMSG .ASCII "Illegal "  ; Must fall into DIRNAM.   ; File names  DIRNAM .ASCII "directory" ;Only for error printout (.BYTE 0   BOOTNAM .BYTE 13. ;String byte count (.ASCII "SYSTEM.INTERP" (.BYTE 0 ;Terminator for TERMTEXT   MISCNAM .BYTE 15. (.ASCII "SYSTEM.MISCINFO" (.BYTE 0 ( (.BYTE 4 ;Bootstrap Version @;If bootstrap ends with a non-zero value @; the device to device bootstrap transfer @; can determine the size. ( (.ALIGN 2  SCRATCH .EQU *+1024. ;Ram scratch area  ;Offsets: @; 0.- Return address to Monitor @; 4.- Boot device number @; 6.- unused (2 bytes) @; 8.- unused (4 bytes) @;12.- Base of Data area @;16.- Top of Data area @;20.- unused (2 bytes) @;22.- Temporary storage (4 bytes)  ;26.- Base of code pool (4 bytes) @;30.- Size of code pool (2 bytes)  ;32.- Base of socket pool (4 bytes) @;36.- Size of socket pool (2 bytes)  ;38.- Size of memory area (4 bytes)   ARGS .EQU SCRATCH+42.  BUFFER .EQU ARGS+18.  BUFFER2 .EQU BUFFER+2048.  (.END  <A B C  :$¦ßßO^¤Ö§©8(.TITLE "Multi-User Bootstrap Extension for RAM Disk copy" (.PROC BOOTEXT   ;********************************************************************** ;  ; SAGE COMPUTER - Multi-User Bootstrap Extension  ;  ; File: MU.BOOTEXT.TEXT  ; Date: 26-Sep-83  ; Issue: 1  ;  ;  ; COPYRIGHT (c) 1983 SAGE Computer Technology  ; All Rights Reserved  ;  ;**********************************************************************  ;  ; History:  ;  ; 1  26-Sep-83 Initial release.  ;  ;**********************************************************************  ;  ;  ;********************************************************************** (  ; RAM variables for Debugger  BOOTFLGS.EQU 105H ;Bootstrap flag   (.ASCII "MUBE" ;This text is checked by the Multi-User @; bootstrap process to insure that the @; boot area has been initialized with @; a bootstrap extension routine.   START ;Multi-User bootstrap calls offset 4 in @; this file. ( (LEA SCRATCH,A3 ;Save return address (MOVE.L (SP)+,4(A3) (BTST #0,BOOTFLGS ;Check for RAM Disk copy inhibit (BNE ALLDONE ;Don't copy files   ; Allow reading of System Device by Task 1  ; First read in previous Control Information Block (LEA BDCIBARG,A0  LEA SYSCIB,A1  MOVE.L A1,8(A0) ;Set up target address (MOVEQ #11.,D0 ;Read request  TRAP #14.   ; Now make copy of block and set up to allow control (LEA SYSCIBNW,A2 (MOVEQ #12.-1,D0  $10 MOVE.B (A1)+,(A2)+ (DBF D0,$10 (LEA SYSCIBNW,A2 (BSET #1,1(A2) ;Allow Task 1 to read (  ; Write out new Control Information Block (MOVE.L A2,8(A0) ;Set up source address (MOVEQ #12.,D0 ;Write request (TRAP #14.   ; Read in Channel Map (LEA CHARG,A0 (LEA CHMAP,A1 (MOVE.L A1,8(A0) ;Set up destination address (MOVEQ #11.,D0 ;Read request (TRAP #14. (  ; Make a copy of Channel Map and set up RAM Disk devices  LEA CHMAPNEW,A2 (MOVEQ #32.-1,D0  $20 MOVE.B (A1)+,(A2)+ (DBF D0,$20 (LEA CHMAPNEW+<16*2>,A2 (MOVE.W #11.,(A2)+ (MOVE.W #21.,(A2)+ (MOVE.W #22.,(A2)+ (MOVE.W #23.,(A2)+   ; Write back new Channel Map (LEA CHMAPNEW,A2 (MOVE.L A2,8(A0) ;New Channel Map address (MOVEQ #12.,D0 ;Write request (TRAP #14.   ; Read in RAM Disk Configurations (LEA RDCNFARG,A0 (LEA RD1CONF,A1 (MOVE.L A1,8(A0) ;Destination address (MOVE.W #16.,14.(A0) ;Device (MOVEQ #11.,D0 ;Read request (TRAP #14. ( (LEA RDCNFARG,A0 (LEA RD2CONF,A1 (MOVE.L A1,8(A0) ;Destination address (MOVE.W #17.,14.(A0) ;Device (MOVEQ #11.,D0 ;Read request (TRAP #14.  (LEA RDCNFARG,A0 (LEA RD3CONF,A1 =(MOVE.L A1,8(A0) ;Destination address (MOVE.W #18.,14.(A0) ;Device (MOVEQ #11.,D0 ;Read request (TRAP #14.  (LEA RDCNFARG,A0 (LEA RD4CONF,A1 (MOVE.L A1,8(A0) ;Destination address (MOVE.W #19.,14.(A0) ;Device (MOVEQ #11.,D0 ;Read request (TRAP #14. (  ; Read in directory from boot device  LEA DIRNAM-1,A6 ;In case of error (LEA DIRARG,A0 (LEA BUFFER,A1 (MOVE.L A1,8(A0) ;Set up buffer address (MOVEQ #11,D0 ;Read request (TRAP #14. (TST.W 2(A0) ;Check for error (BNE BADREAD ;Found read error    ; Now for each RAM Disk zero the directory (LEA RD1CONF,A2  MOVEQ #16.,D7 ;Device number (BSR ZERODIR ;Zero directory of RAM Disk  (LEA RD2CONF,A2 (MOVEQ #17.,D7 ;Device number (BSR ZERODIR ;Zero directory of RAM Disk  (LEA RD3CONF,A2 (MOVEQ #18.,D7 ;Device number (BSR ZERODIR ;Zero directory of RAM Disk  (LEA RD4CONF,A2 (MOVEQ #19.,D7 ;Device number (BSR ZERODIR ;Zero directory of RAM Disk  (BRA EXIT2    ; Zero Directory  ZERODIR (MOVE.L (A2),D0 ;Check if this RAM Disk exists (BEQ $200 ;Device is not equipped (LEA SCRATCH,A3 (MOVE.L D0,8(A3) ;Save base of RAM Disk (BTST #0,8(A2) ;Check if to be initialized (BEQ $200 ;No initialization specified (MOVE.L 4(A2),D1 ;Top of RAM Disk (SUB.L D0,D1 (BMI $200 ;Too big (DIVU #512.,D1 (TST.W D1 (BMI $200 ;Too big (CMPI.W #6.,D1 (BLE $200 ;Too small (MOVEA.L (A2),A5 (ADDA.W #1024.,A5 ;Beginning of directory (MOVEA.L A5,A0 (MOVE.W #512.-1,D0 ;Clear directory  $10 CLR.L (A0)+ (DBF D0,$10 (MOVEA.L A5,A0 (ADDQ.L #2,A0 ;First block = 0 (MOVE.W #6,(A0)+ ;Next block = 6 (ADDQ.L #2,A0 ;DFKIND = 0 (LEA NEWNAME,A1 (MOVE.W #"1"+16.,D0 (SUB.B D7,D0 (MOVE.B D0,7(A1) ;Set up last character of name (MOVE.L (A1)+,(A0)+ ;Device name = RAMDSKx (MOVE.L (A1)+,(A0)+ (MOVE.W D1,(A0)+ ;Set up size of device in blocks (ADDQ.L #4,A0 ;Bypass number of files and load time (MOVE.W BUFFER+20.,(A0)+ ;Set up last date (CMPI.B #16.,D7 ;Check for first RAM Disk (BNE $200 ;Not first RAM Disk (MOVEM.L A0,-(SP) (LEA BOOTRAM,A0 ;Printout 'Copying to RAM Disk' (BSR TERMTEXT (BSR TERMCRLF (MOVEM.L (SP)+,A0 (LEA SCRATCH,A3 ;Set up scratch area (  ; Set up initial variables (ADDQ.L #4,A0 ;Advance to first file entry in directory (LEA BUFFER,A4 ;Source directory address (MOVEA.L A5,A2 ;RAM Disk address (ADDA.W #2048.,A2 ; bypass directory (MOVE.W #6,D4 ;Block number for RAM Disk (SUB.W D4,D1 ;Number of blocks left in RAM Disk (CLR.W D3 ;Number of files in RAM Disk (MOVE.W BUFFER+16.,D2 ;Number of files on source diskette (  ; Now process each file on source diskette  $20 SUBQ.W #1,D2 ;Check if done (BLT.S $100 ;Done with source files (ADDA.W #26.,A4 ;Advance source directory address  MOVE.L ENDBOOT,D0 (CMP.L 6(A4),D0 ;Check for file: ENDBOOT (BNE.S $25 ;File not found (MOVE.L ENDBOOT+4,D0 (CMP.L 10.(A4),D0 (BEQ.S $100 ;Found file, terminate copy  $25 CLR.L D0 (MOVE.W 2(A4),D0 ;Calculate file size in blocks (SUB.W (A4),D0 (SUB.W D0,D1 ;Will it fit in remaining RAM Disk (BLT.S $90 ;Would not fit ( (MOVE.W D4,(A0)+ ;Set up First block in directory (ADD.W D0,D4 (MOVE.W D4,(A0)+ ;Set up Next block in directory (ADDQ.W #1,D3 ;Advance number of RAM Disk files ( = ; Set up transfer (LEA RAMMSG-1,A6 ;Set up for possible error message (MOVE.L A0,(A3) ;Save A0 temporarily (LEA ARGS,A0 (MOVE.W #9,(A0) ;Device number (ADDQ.L #4,A0 (ASL.L #8,D0 ;Multiply by 512 (ASL.L #1,D0 (MOVE.L D0,(A0)+ ;Size in bytes (MOVE.L A2,(A0)+ ;Destination of RAM Disk (ADDA.L D0,A2 ;Advance RAM Disk address (MOVE.W (A4),(A0)+ ;Logical Block on device (CLR.L (A0)+ ;Control word & High block number (MOVEQ #11.,D0 ;Set up read request (LEA ARGS,A0 (TRAP #14. (TST.W 2(A0) (BNE BADREAD ;Found error reading diskette (MOVEA.L (A3),A0 ;Restore A0 (  ; Complete the loop (LEA 4(A4),A1 ;Set up copy of directory entry (MOVEQ #11.-1,D0  $30 MOVE.W (A1)+,(A0)+ (DBF D0,$30 (BRA $20 ;Back for more files (  ; File would not fit  $90 ADD.W D0,D1 ;Put back size (BRA $20 ;Try more anyway (  ; Done transfering all files  $100 MOVE.W D3,16.(A5) ;Set up number of RAM Disk files   ; Now set up RAM Disk Bootstrap (LEA BOOTFILE,A6 ;Look for RAM Disk bootstrap file (BSR SEARCH (BNE $200 ;Could not find bootstrap (ADDQ.W #1,D1 ;Code starts at relative block 1 (LEA ARGS,A0 (MOVE.L #1536.,4(A0) ;Read 3 blocks (LEA BUFFER1,A1 (MOVE.L A1,8(A0) ;Buffer location (MOVE.W D1,12.(A0) ;Block number (CLR.L 14.(A0) ;Control & High block number (MOVEQ #11.,D0 ;Read request (TRAP #14. (TST.W 2(A0) (BNE READMSG ;Error reading bootstrap (LEA 26.(A1),A1 (MOVE.W #256.-1,D0 (LEA SCRATCH,A3 (MOVEA.L 8(A3),A0 ;Get base of RAM Disk  $110 MOVE.L (A1)+,(A0)+ ;Move bootstrap (DBF D0,$110   $200 RTS     ; Write back Channel Map  EXIT2 LEA CHARG,A0 (LEA CHMAP,A2 (MOVE.L A2,8(A0) ;New Channel Map address (MOVEQ #12.,D0 ;Write request (TRAP #14.  ; Fall into EXIT1   ; Write back Boot Device's Control Information Block & terminate  EXIT1 LEA BDCIBARG,A0  LEA SYSCIB,A1 (MOVE.L A1,8(A0) ;Set up source address (MOVEQ #12.,D0 ;Write request  TRAP #14.  ; Fall into ALLDONE    ALLDONE LEA SCRATCH,A3 (MOVEA.L 4(A3),A0 (JMP (A0) ( (  ; Search Routine for directory entry  ; A6 is pointer to target string.  ; A1 is returned with block address of start of code in file.  SEARCH (LEA BUFFER+32.,A5 ;Set up pointer to directory entry @; skipping initial volume entry. (LEA -16.(A5),A0 (MOVE.W (A0),D0 ;Get number of files (CMPI.W #77.,D0 ;Check for limit (BLE.S $5 ;Within limit  ROL.W #8,D0 ;Check if byte directory needs flipped  CMPI.W #77.,D0 ;Check limit again (BGT BADDIR ;Illegal directory   ; Swap bytes in directory (MOVE.W D0,(A0) ;Store swapped number of files (ADDQ.L #4,A0 (MOVE.W D0,D3 (BSR.S BYTSWAP ;Swap the date word (ADDQ.L #4,A0  ; Swap each directory entry  $2 BSR.S BYTSWAP ;First block (BSR.S BYTSWAP ;Last block (BSR.S BYTSWAP ;File kind (ADDA.W #16.,A0 (BSR.S BYTSWAP ;Last byte of data (BSR.S BYTSWAP ;Date (SUBQ.W #1,D3 (BNE $2 ;Back for more (  $5 TST.B D0 ;Check for empty directory (BEQ.S $40 ;Directory was empty, entry not found (  ; Base of loop for each entry  $10 MOVEA.L A6,A0 ;Set up pointer to test string (MOVEA.L A5,A1 ;Set up pointer to directory entry (CLR.L D1 (MOVE.B (A6),D1 ;Set up byte count for testing (  ; Base of loop for each character  $20 CMPM.B (A0)+,(A1)+ ;Compare the entries >(DBNE D1,$20 (BNE.S $30 ;Found miscompare (CLR.L D2 (MOVE.W -6(A5),D1 ;Get starting block number (MOVE.W -4(A5),D2 ;Get trailing block number (SUB.W D1,D2 ;Form size in blocks (LSL.L #8,D2 ;Form size in bytes (LSL.L #1,D2 (CLR.B D0 ;Zero flag indicates success (RTS (  $30 SUBQ.B #1,D0 ;Check entry count (BEQ.S $40 ;Could not find entry (LEA 26.(A5),A5 ;Short way to advance address pointer (BRA.S $10 ;Back for another try (  $40 MOVE.B #1,D0 ;NE flag indicates failure (RTS   ; Byte swap routine  BYTSWAP MOVE.W (A0),D1 (ROL.W #8,D1 (MOVE.W D1,(A0)+ (RTS    ; Found error while reading device.  ; Printout message about problem and return to debugger.  BADREAD LEA READMSG,A0 ;Printout "Error reading "  BRA.S PRTERR    ; Directory entry size was in error.  ; Printout message about problem and return to Debugger.  BADDIR ADDQ.L #4,A7 ;Get rid of return address (BSR TERMCRLF (LEA DIRMSG,A0 ;Printout "Illegal directory" (BRA.S PRTERR    ; Printout error message  PRTERR BSR TERMCRLF (BSR TERMTEXT (MOVEA.L A6,A0 ;Set up pointer to name of item being read (ADDQ.L #1,A0 ;Bypass byte count  PRTERR1 BSR TERMTEXT ;Printout type of information (BSR TERMCRLF (BRA EXIT2   ; Printout Text String  TERMTEXT (MOVEM.L D0,-(SP)  $10 MOVE.B (A0)+,D0 ;Get a byte to output  BEQ.S $20 ;Done (TRAP #10. (BRA $10 (  $20 MOVEM.L (SP)+,D0 (RTS ( (  ; Printout Carriage Return & Line Feed  TERMCRLF (MOVEM.L D0,-(SP) (MOVEQ #13.,D0 ;Carriage return (TRAP #10. (MOVEQ #10.,D0 ;Line Feed (TRAP #10. (MOVEQ #0,D0 ;Nulls (TRAP #10. (TRAP #10. (TRAP #10. (TRAP #10. (TRAP #10. (TRAP #10. (MOVEM.L (SP)+,D0 (RTS    ; Request to read Boot Device's Control Information Block  BDCIBARG (.WORD 132. ;Device (.WORD 0 ;error (.WORD 0,2 ;Size - read control  .WORD 0,0 ;Address (.WORD 9 ;Block - logical device number (.WORD 0 ;Control - CIB access   ; Request to access Channel Map  CHARG (.WORD 128. ;Device (.WORD 0  ;error (.WORD 0,0 ;Size (.WORD 0,0 ;Address (.WORD 1 ;Block - indicates channel map (.WORD 0 ;Control - indicates system info   ; Request to access RAM Disk configuration  RDCNFARG (.WORD 128. ;Device (.WORD 0 ;Error (.WORD 0,0 ;Size (.WORD 0,0 ;Address (.WORD 0 ;Block (.WORD 16. ;Control - logical block number   ; Request to access directory  DIRARG (.WORD 9 ;Device (.WORD 0 ;Error (.WORD 0,2048. ;Size (.WORD 0,0 ;Address (.WORD 2 ;Block (.WORD 0 ;Control (.WORD 0 ;High block    ; File name to terminate the Boot copy  ENDBOOT .BYTE 7 (.ASCII "ENDBOOT"  ; New name for RAM device  NEWNAME .BYTE 7 (.ASCII "RAMDSK1"   ; RAM Disk bootstrap file  BOOTFILE (.BYTE  13. (.ASCII "RAM.BOOT.CODE" (.BYTE 0   READMSG .ASCII "Error reading " (.BYTE 0   BOOTRAM .ASCII "Copying to RAM Disk" (.BYTE 0   DIRMSG .ASCII "Illegal "  ; Must fall into DIRNAM.   ; File names  DIRNAM .ASCII "directory" ;Only for error printout (.BYTE 0   RAMMSG .ASCII "device into RAM" (.BYTE 0  ( (.ALIGN 2   SCRATCH .EQU * ;Offset 0 - Temp storage of A0 @;Offset 4 - Return from MU.BOOTEXT > ;Offset 8 - Base of RAM Disk  ARGS .EQU SCRATCH+12.  CHMAP .EQU ARGS+18. ;User Channel Map  CHMAPNEW.EQU CHMAP+64.  SYSCIB .EQU CHMAPNEW+64. ;Boot device Control Information Block  SYSCIBNW.EQU SYSCIB+12.  RD1CONF .EQU SYSCIBNW+12. ;RAM Disk Configurations  RD2CONF .EQU RD1CONF+10.  RD3CONF .EQU RD2CONF+10.  RD4CONF .EQU RD3CONF+10.  BUFFER .EQU RD4CONF+10. ;Source Directory  BUFFER1 .EQU BUFFER+2048. ;Area for bootstrap  (.END †HELPTHES €€€€€€€€€€€€€€€€& W6Copyright (c) 1981, 1982 by SofTech Microsystems, Inc. *¾íjý]¬`êxTÀ2…HELPTHES®WCšrpš‚€r pšrpšr pšrp–§+¤-š`€Pr pšr p`§Ó>‡,Ä`§¤+¤*‡*‡+²Ô)`‡*짃€Úñ¤-‡, ‡,xŒ`‡*ì§¢€0£Ä‡*í¤*ŠÐЇ,áÄ–,Üš‚€r pšrpš‚€*r pšrpš‚€>r pšrpš‚€Qr pšrpš‚€cr pšrpš‚€xr pšrpš‚€Šr pšrpš‚€r pšrpš‚€²r pšrpš‚€Är pšrpš‚€Ør pšrpš‚€ìr pšrpš‚€ÿr pšrpš‚r pšrpš‚'r pšrp‘–¬š‚1r pšrpš‚Er pšrpš‚Wr pšrpš‚kr pšrpš‚r pšrpš‚r pšrpš‚£r pšrpš‚¶r pšrpš‚Èr pšrpš‚Ür pšrp‘–hš‚ár pšrpš‚ôr pšrpš‚‚r pšrpš‚‚r pšrpš‚‚,r pšrpš‚‚?r pšrpš‚‚Rr pšrpš‚‚fr pšrpš‚‚yr pšrp‘–šš‚‚„r pšrpš‚‚˜r pšrpš‚‚«r pšrpš‚‚¾r pšrpš‚‚Ðr pšrpš‚‚ãr pšrpš‚‚ör pšrpš‚ƒr pšrpš‚ƒr pšrpš‚ƒ/r pšrpš‚ƒCr pšrpš‚ƒVr pšrpš‚ƒir pšrpš‚ƒ|r pšrpš‚ƒr pšrp–š‚ƒ›r pš2rpšrp€.ji kh #²ÔC†!pbp!2¢i!1³Ô!1£i†!1¢pbp!2¢i!1³Ô!1£i íhЏšrpšrp–¤š‚ƒžr pš2rpšrp€.kj lh $²ÔI mi!%²Ô3†"p"2¢j"1³Ô"1£j†"1¢p"2¢j"1³Ô"1£j!íiŠÈcp íhвšrpšrp–š‚ƒ¡r pš5rpšrp€.jikh #²Ô#†!pbp!5¢i!1³Ô!1£i íhŠØšrpšrp–vš‚ƒ¥r pš5rpšrp€.kjlh $²Ô1mi!%²Ô†"p"5¢j"1³Ô"1£j!íiŠàcp íhŠÊšrpšrp–Zšrpšrp‘‘†p$†Ë×x¥†Ë×x¥¥1î¥&¥5…&²Ô‘ 5í¥Šñšrpš‚ƒ©r p†‘5±¡51³Ÿ¡Ôã5²ñ‘ 5áÒךrpšrp‘1î¥&¥2…&²Ô‘2í¥Šñšrpš‚ƒ»r p†‘21³Ÿ¡Ôç2³Ô‘ 2áÒÛšrpšrp‘– Press return to continueeÿ& This program is intended to help youu&find the fastest interleaving and skeww$arrangement for your disk drives. Iff#your drives need some delay after a)DSKSTRT or before a DSKSTOP (i.e. turning"the motor on or off or loading andd%unloading the head), this program may(not operate correctly. If the program iss#running properly, some interleaving'ratios will be much faster than others.&Dots will be written to the console att%the rate the disk reads complete. The&best interleaving and skew will be thee&ones for which dots are written to theescreen the fastest.& First you will be shown all possiblee#interleaving ratios in a ?short test&execution. You should watch the screenn&and remember approximately which ratioo!results in dots being put out the$fastest. After this is finished, youu$will be able to run a longer test onn#the ratios of your choice to aid in&determining exactly which ratio is theefastest..$ Now you will be shown all possiblee$skews in a short test execution. Youu$should watch the screen and rememberr#approximately which skew results in%dots being put out the fastest. After%this is finished, you will be able to&run a longer test on the skews of yourr$choice to aid in determining exactlyywhich is the fastest.& If all ratio and skew tests executedd%at the same speed, then you will have%to guess at the proper values and try"them out by running the diskchangee$program, rebooting, and seeing whichh%accesses the disks the fastest (steps#2 through 4 in the adaptable system'user manual). Start your guesses with a$skew of 0 and interleave ratio of 2..'Keep trying larger ratios until you see$a large speed up. Then increment thee%skew until the speed increases again.%The speed increase from the skew will%be not be very large so you will haveto observe it closely..SKEW=SKEW=RATIO==RATIO=="Ratio to test ( to exit) !SKEW to test ( to exit) ÔO¶XðV$ = PASCALIO O^¤Ö¥ { Program to test Remote Input Serial Channel }  { Version 1A 16-Jul-82 }   PROGRAM RemInTest;  VAR "TwoChar:PACKED ARRAY[0..1] OF CHAR; "Status:ARRAY[0..29] OF INTEGER;   BEGIN {RemInTest} "REPEAT $UNITSTATUS(1,Status,1); $IF Status[0] <> 0 THEN &BEGIN (UNITREAD(1,TwoChar[0],1); (IF (TwoChar[0]='Q') OR (TwoChar[0]='q') THEN EXIT(PROGRAM); &END; $UNITSTATUS(7,Status,1); $IF Status[0]<>0 THEN &BEGIN (UNITREAD(7,TwoChar[0],1); (UNITWRITE(2,TwoChar[0],1); &END; "UNTIL FALSE;  END.   {Alternate version for pre-Version IV systems  BEGIN {RemInTest}  REPEAT $UNITREAD(7,TwoChar[0],1); $UNITWRITE(2,TwoChar[0],1); "UNTIL FALSE;  END.  }  O^¤Ö¥?{ Simple routine to receive the image of a device from another system }  { Version 1A 16-Jul-82 }  { Copyright (c) 1982 SAGE Computer Technology }   PROGRAM Receive;  CONST "Serial = 7; {REMIN}  VAR "I,ByteIndex,BlockIndex,BlockNumber,Checksum:INTEGER; "High,Low,Checkout:INTEGER; "CH:CHAR; "Done:BOOLEAN; "Buffer:ARRAY[0..31] OF PACKED ARRAY[0..511] OF 0..255; "DeviceName:STRING; "F:FILE; "  PROCEDURE GetChar;  VAR "NewChar:PACKED ARRAY[0..1] OF CHAR;  BEGIN "REPEAT $UNITREAD(Serial,NewChar[0],1); $CH:=NewChar[0];  UNTIL (ORD(CH)<>10) AND (ORD(CH)<>13);  END;   PROCEDURE ByteIn(VAR Value:INTEGER);  VAR "Count:INTEGER;  BEGIN "Value:=0; "Count:=0; "WHILE Count < 2 DO $BEGIN &GetChar; &IF CH IN ['0'..'9','A'..'F'] THEN (BEGIN *IF CH IN ['0'..'9'] THEN ,Value:=(Value*16)+ORD(CH)-ORD('0') *ELSE ,Value:=(Value*16)+ORD(CH)-ORD('A')+10; *Count:=Count+1; (END &ELSE (BEGIN *WRITELN('Bad character in transmission '); *CLOSE(F); *EXIT(Receive); (END;  END; "Checksum:=Checksum+Value;  END;   BEGIN {Receive} "UNITCLEAR(Serial); "WRITE('Device name for recieving (example #4:) ? '); "READLN(DeviceName); "IF LENGTH(DeviceName)=0 THEN EXIT(PROGRAM); "REWRITE(F,DeviceName); "BlockNumber:=0; "BlockIndex:=0; "Done:=FALSE; "WHILE NOT Done DO $BEGIN &GetChar; $ IF CH='S' THEN (BEGIN *Checksum:=0; *ByteIn(High); BYTEIN(Low); *IF ((High*255)+LOW) <> BlockNumber THEN ,BEGIN .WRITELN; WRITELN; WRITELN('Block number out of sequence'); .CLOSE(F); .EXIT(PROGRAM); ,END; *FOR I:= 0 TO 511 DO ,BEGIN .ByteIn(Low); .Buffer[BlockIndex,I]:=Low; ,END; *Checkout:=Checksum; *ByteIn(Low); *IF Low <> ORD( ODD(Checkout) AND ODD(255) ) THEN ,BEGIN .WRITELN; WRITELN; WRITELN('Checksum error'); .CLOSE(F); .EXIT(PROGRAM); ,END; *IF (Blocknumber MOD 10) = 0 THEN ,BEGIN WRITELN; WRITE('<',BlockNumber:4,'>'); END; *WRITE('.'); *BlockNumber:=BlockNumber+1; *BlockIndex:=BlockIndex+1; *IF BlockIndex = 32 THEN ,BEGIN .I:=BLOCKWRITE(F,Buffer,BlockIndex); .BlockIndex:=0; ,END; (END &ELSE (IF CH='Z' THEN *BEGIN ,IF BlockIndex > 0 THEN I:=BLOCKWRITE(F,Buffer,BlockIndex); ,CLOSE(F,LOCK); ,Done:=TRUE; *END; $END;  END.  O^¤Ö¥@ { Program for testing Remote Output Serial Channel }  { Version: 1A 16-Jul-82 }   PROGRAM RemOutTest;  CONST "Delay=750; {Adjust down for slower machines}  VAR "Line:STRING; "TwoChar:PACKED ARRAY[0..1] OF CHAR; "I,Dly,Lines:INTEGER;  BEGIN "Line:='ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; "TwoChar[0]:=CHR(13); {Carriage return} "REPEAT $WRITELN; $WRITE('Lines to output (0 quits) ? '); $READLN(Lines); $IF Lines=0 THEN EXIT(PROGRAM); $FOR I:= 1 TO Lines DO &BEGIN (UNITWRITE(8,Line[1],LENGTH(Line)); (UNITWRITE(8,TwoChar[0],1,0,8); (FOR DLY:=1 TO Delay DO {Nothing}; &END;  UNTIL FALSE;  END.  O^¤Ö¥{ Simple routine to send another system the image of a device }  { Version 1A 16-Jul-82 }  { Copyright (c) 1982 SAGE Computer Technology }   PROGRAM Send;  CONST "Serial = 8; {REMOUT} "Pause = 32000; "Delay = 3;  VAR "I,ByteIndex,BlockIndex,BlockCount,Checksum:INTEGER; "Buffer:PACKED ARRAY[0..511] OF 0..255; "DeviceName:STRING; "S:FILE OF CHAR; "F:FILE;   PROCEDURE CharOut(CH:CHAR);  VAR TwoChar:PACKED ARRAY[0..1] OF CHAR; "Dly:INTEGER;  BEGIN  TwoChar[0]:=CH; "UNITWRITE(Serial,TwoChar[0],1,0,8);  FOR Dly:= 1 TO Delay DO {Nothing}  END;   PROCEDURE ByteOut(Value:INTEGER);   PROCEDURE HexOut(HexValue:INTEGER);  BEGIN "IF HexValue <10 THEN $CharOut(CHR( ORD('0')+HexValue )) "ELSE $CharOut(CHR( ORD('A')+HexValue-10 ));  END;   BEGIN {BYTEOUT} "HexOut(Value DIV 16); HexOut(Value MOD 16); "Checksum:=Checksum+Value;  END;   BEGIN {Send} "WRITE('Device name (example #4:) ? '); "READLN(DeviceName); "IF LENGTH(DeviceName)=0 THEN EXIT(PROGRAM); "RESET(F,DeviceName);  WRITE('Number of blocks to send ? '); "READLN(BlockCount); "IF BlockCount<=0 THEN EXIT(PROGRAM); "FOR BlockIndex := 0 TO BlockCount-1 DO $BEGIN &IF (BlockIndex MOD 10) = 0 THEN (BEGIN WRITELN; WRITE('<',BlockIndex:4,'>'); END; &WRITE('.'); &I:=BLOCKREAD(F,Buffer,1,BlockIndex); &Checksum:=0; &CharOut('S'); &ByteOut(BlockIndex DIV 255); ByteOut(BlockIndex MOD 255); &CharOut(CHR(13)); &FOR ByteIndex:= 0 TO 511 DO (BEGIN *@ByteOut(Buffer[ByteIndex]); *IF (ByteIndex MOD 32) = 31 THEN CharOut(CHR(13)); (END; &ByteOut(ORD( ODD(Checksum) AND ODD(255) )); $ CharOut(CHR(13)); &IF (BlockIndex MOD 32)=31 THEN FOR I:= 0 TO Pause DO { nothing } $END;  CharOut('Z'); "CharOut(CHR(13));  END.  O^¤Ö¥{ Program to read in text characters from the Remote Serial Channel }  { Version 1A 16-Jul-82 }  { Copyright (c) 1982 SAGE Computer Technology }   PROGRAM TextIn;   CONST "Version = '1A';   VAR "CH:CHAR;  F:File;  D:TEXT;   PROCEDURE Convert;  VAR "I:INTEGER; "InBlock:INTEGER;  TestChar:CHAR; "Done:BOOLEAN; "InIndex,OutIndex:INTEGER; "OutString:STRING[255]; "InBuffer:PACKED ARRAY[0..511] OF CHAR; "SourceFile,DestFile:STRING;   PROCEDURE ConvertInit;  VAR "Open:BOOLEAN;   BEGIN  WRITELN; "WRITELN('Convert raw text to UCSD p-System .TEXT format'); "Open:=FALSE; "REPEAT $WRITELN; $WRITE('Source file for conversion? '); $READLN(SourceFile); $WRITELN; $IF LENGTH(SourceFile) = 0 THEN EXIT(Convert); ${$I-} $RESET(F,SourceFile); ${$I+} $IF IORESULT = 0 THEN Open:=TRUE $ELSE &WRITELN('Could not open ',SourceFile);  UNTIL Open; "Open:=FALSE; "REPEAT $WRITELN; $WRITE('Destination file for conversion? '); $READLN(DestFile); $WRITELN; $IF LENGTH(DestFile) = 0 THEN &BEGIN (CLOSE(D); (EXIT(Convert); $ END; ${$I-} $REWRITE(D,DestFile); ${$I+} $IF IORESULT = 0 THEN Open:=TRUE $ELSE &WRITELN('Could not create ',DestFile);  UNTIL Open;  InBlock:=0;  OutIndex:=0;  Done:=FALSE;  END;   PROCEDURE WriteOut;  BEGIN "{$R-} "OutString[0]:=CHR(OutIndex); "{$R+} "{$I-} "WRITELN(D,OutString); "{$I+} "IF IORESULT <> 0 THEN $BEGIN &WRITELN; &WRITELN('Error writing output file ',DestFile); &CLOSE(D); &CLOSE(F); &EXIT(Convert); $END; "OutIndex:=0;  END;   BEGIN {Convert}  ConvertInit; "REPEAT $InIndex:=0; $IF EOF(F) THEN &BEGIN & IF OutIndex > 0 THEN WriteOut; & {$I-} (CLOSE(D,LOCK); ({$I+} & IF IORESULT <> 0 THEN *BEGIN ,WRITELN; ,WRITELN('Error closing file ',DestFile); ,CLOSE(F); ,EXIT(Convert); & END; (CLOSE(F); & WRITELN; (WRITELN('Conversion complete'); (EXIT(Convert); &END; ${$I-} $I:=BLOCKREAD(F,InBuffer,1,InBlock); ${$I+} $IF IORESULT <> 0 THEN &BEGIN (WRITELN; (WRITELN('Error reading ',SourceFile); (EXIT(Convert); &END; $IF (InBlock MOD 10) = 0 THEN &BEGIN (WRITELN; (WRITE('<',InBlock:4,'>'); &END; $WRITE('.'); $InBlock:=InBlock+1; " REPEAT $ TestChar:=InBuffer[InIndex]; $ IF TestChar = CHR(13) THEN WriteOut &ELSE (IF (TestChar<>CHR(0)) AND (TestChar<>CHR(10)) THEN *BEGIN * OutIndex:=OutIndex+1; ,IF OutIndex > 255 THEN .BEGIN 0WRITELN; 0WRITELN('Line A> 255 characters'); . WriteOut; .END; ,{$R-} ,OutString[OutIndex]:=TestChar; ,{$R+} *END; $ InIndex:=InIndex+1; $UNTIL InIndex = 512; "UNTIL Done;  END;   PROCEDURE Receive;  VAR "Counter:INTEGER; "I,Index:INTEGER; "Block:INTEGER;  Buffer:PACKED ARRAY[0..1023] OF CHAR; "Status:ARRAY[0..29] OF INTEGER;  TwoChar:PACKED ARRAY[0..1] OF CHAR; "Filename:STRING;   PROCEDURE RecInit;  VAR "Open:BOOLEAN;   BEGIN "UNITCLEAR(7);  Open:=FALSE; "REPEAT $WRITELN; $WRITE('Receive text into what file? '); $READLN(Filename); " IF LENGTH(Filename) = 0 THEN EXIT(Receive); ${$I-} $REWRITE(F,Filename); ${$I+} " IF IORESULT = 0 THEN Open:=TRUE $ELSE &WRITELN('File ',Filename,' could not be created'); "UNTIL Open; Block:=0; "Index:=0; "{Write a block to position drive} "FILLCHAR(Buffer,512,0); "{$I-} "I:=BLOCKWRITE(F,Buffer,1,Block); "{$I+} "IF IORESULT <> 0 THEN $BEGIN &WRITELN; &WRITELN('Error writing to ',Filename); &Close(F); &EXIT(Receive); $END; "WRITELN; "WRITELN('A(bort or T(erminate receiving? '); "WRITELN;  END;   PROCEDURE Terminate;  VAR "InBuffer:PACKED ARRAY[0..511] OF CHAR;   BEGIN  IF (Index = 0) AND (Block = 0) THEN $BEGIN &CLOSE(F); &EXIT(Receive); " END; "FILLCHAR(Buffer[Index],512-Index,0); "IF Index > 0 THEN $BEGIN &{$I-} &I:=BLOCKWRITE(F,Buffer,1,Block); &{$I+} &IF IORESULT <> 0 THEN (BEGIN *WRITELN; *WRITELN('Error writing to ',Filename); *Close(F); *EXIT(Receive); (END; $END;  {$I-} "CLOSE(F,LOCK); "{$I+}  IF IORESULT <> 0 THEN $BEGIN &WRITELN; &WRITELN('Error closing ',Filename); $ EXIT(Receive); $END;  EXIT(Receive);  END;   BEGIN {Receive} "RecInit; "REPEAT " UNITSTATUS(1,Status,1); {Check keyboard} " IF Status[0] <> 0 THEN &BEGIN & UNITREAD(1,TwoChar[0],1); (CH:=TwoChar[0]; (IF (CH = 'T') OR (CH = 't') THEN Terminate (ELSE & IF (CH = 'A') OR (CH = 'a') THEN ,BEGIN .CLOSE(F); .EXIT(Receive) * END *ELSE ,BEGIN .TwoChar[0]:=CHR(7); {Warning bell} .UNITWRITE(1,TwoChar[0],1); ,END; &END; " UNITSTATUS(7,Status,1); {Check for remote input} $Counter:=Status[0]; $IF Counter <> 0 THEN &BEGIN (UNITREAD(7,Buffer[Index],Counter); & Index:=Index+Counter; & IF Index > 511 THEN & BEGIN * {$I-} ,I:=BLOCKWRITE(F,Buffer,1,Block); ,{$I+} * IF IORESULT <> 0 THEN .BEGIN 0WRITELN; 0WRITELN('Error writing to ',Filename); 0CLOSE(F); 0EXIT(Receive); .END; * Block:=Block+1; ,Index:=Index-512; ,IF Index > 0 THEN MOVELEFT(Buffer[512],Buffer[0],Index); * TwoChar[0]:='.'; ,UNITWRITE(1,TwoChar[0],1); ,IF (Block MOD 10) = 0 THEN * BEGIN 0TwoChar[0]:=CHR(13); 0UNITWRITE(1,TwoChar[0],1); .END; *END; &END; "UNTIL FALSE;  END;   BEGIN {TEXTIN} "WRITELN; "WRITELN('TEXTIN program - Version ',Version); "REPEAT $WRITELN; $WRITE('C(onvert, R(eceive, Q(uit ? '); " READ(CH); $WRITELN; $IF EOLN THEN EXIT(PROGRAM); $IF (CH = 'C') OR (CH = 'c') THEN Convert $ELSE &IF (CH = 'R') OR (CH = 'r') THEN Receive &ELSE (IF (CH = 'Q') OR (CH = 'q') THEN EXIT(PROGRAM) (ELSE *WRITE(CHR(7)); "UNTIL FALSE;  END.  $CURSOR $EQUAL $SYNTAX B@0O.ªcªõ