IMD 1.18: 13/11/2012 19:56:23 source & cmd files nec-apc dev disk 10 turbodos format å ÿåÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿåÿÿÿÿýÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-AREA- DÉR APCEQU A BACKUP CÍDBOOT CÍDBUFFERS CÍD CHANGE CÍD COMPARE CÍD CON192 A CON96 A COPY CÍD*“”•CPMSUP O DEBUGAPCA DIRECT PÖO DREQUATEA DSKAPC A €DSKAPC A :DSKAPC O DSKFMT A P !"#$DSKFMT O %EQUATE A 2&'()HDCAPC A €ABTUVWˆ’HDCTST CMDJ+,-./SCRAPC O 35KBDAPC O 9MSTAPC A :MSTAPC O ;NITAPC A '<=>NITAPC O ?PATCH O @HDCAPC A "ÂÑÒDEBUG SYS€78IJKLMNRTCAPC A CDRTCAPC O ERTCNUL O FSAVE PÖOGSCRTST CMD46DEBUG SYS9OPQRSCRAPC A €SXYZ[\]^SCRAPC A €‰�Ž��‘æçHDCTST O 0SCRTST A _SCRTST GEN`SCRTST O 1SIOAPC A dbcdefghSOMAPC A iSOMAPC O jSTDLOADRO €klmnopqrSTDLOADRO stSTDSPOOLO €uvwxyz{|STDSPOOLO €}~€�‚ƒ„STDSPOOLO …SUBMIT O †APCEQU O ‡TDOSAPC SYS€1ÔÕÖרÙÚHDCTST A ÐTSTPTN A ŠTSTPTN O ‹TYPE PÖO ŒTDOSAPC SYSFÛÜÝÞßDATE CÍD–DEL CÍD—˜DIR CÍD™šDO CÍD›DRIVE CÍDœDUMP CÍD �ERASEDIRCÍD žFIXDIR CÍD ŸFIXMAP CÍD  GEN CÍD€¡¢£¤¥¦§¨GEN CÍD3©ª«¬LABEL CÍD­OSLOAD CMDs®¯°±²³´µOTOASM CÍD]¶·¸¹º»PRINT CÍD ¼PRINTER CÍD ½QUEUE CÍD¾¿RENAME CÍDÀÁSCRAPC A AéêëìSET CÍDÃÄSHOW CÍDÅÆSID86 CÍD€ÇÈÉÊËÌÍÎSID86 CÍDÏHDCAPC O ÓHDCTST GEN2KBDAPC A k !'0JUNK LIBSAVE LIBL()*+,TLINK CÍD€íîïðñòóôTLINK CÍD3õö÷øTLOADAPCGENùTSTPTN CMDTYPE CÍDTZ80 CÍDQVERIFY CÍD  TLOADAPCPARúTDOSAPC DO ûOSMASTERSYS€aüýþÿ  OSMASTERSYS4 åTDOSAPC SYS€ÔÕÖרáâãåTDOSAPC SYSTPC2 CÍDO"#$%&TDOSAPC GENTDOSAPC O TDOSAPC PARåTDOSAPC BAKåHDCTST1 BAKHDCTST1 O *HDCTST1 CMDååTDOSAPC SYS-PRINT- 001HDCTST1 A .ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå; #INCLUDE "APCEQU" ; NEC-APC equivalences #NOLIST ; suppress listing ; ; Port addresses ; ; DMA controller (8237) ; CH0_ADR == 0X01 ; CH-0 address (RW) CH0_EXA == 0X38 ; CH-0 extended address (W) CH0_TC == 0X11 ; CH-0 terminal count (RW) CH1_ADR == 0X03 ; CH-1 address (RW) CH1_EXA == 0X3A ; CH-1 extended address (W) CH1_TC == 0X13 ; CH-1 terminal count (RW) CH2_ADR == 0X05 ; CH-2 address (RW) CH2_EXA == 0X3C ; CH-2 extended address (W) CH2_TC == 0X15 ; CH-2 terminal count (RW) CH3_ADR == 0X07 ; CH-3 address (RW) CH3_EXA == 0X3E ; CH-3 extended address (W) CH3_TC == 0X17 ; CH-3 terminal count (RW) DMA_ST == 0X09 ; status register (R) DMA_CMD == 0X09 ; command register (W) DMA_WRR == 0X19 ; write request register (W) DMA_WSM == 0X0B ; write single mask (W) DMA_MODE== 0X1B ; write mode (W) DMA_CFF == 0X0D ; clear flip flop (W) DMA_RTR == 0X1D ; read temp register (R) DMA_MC == 0X1D ; master clear (W) DMA_WAM == 0X1F ; write all mask (W) ; ; Interrupt controllers (8259) ; MIC_P0 == 0X20 ; master IC port 0 MIC_P1 == 0X22 ; master IC port 1 SIC_P0 == 0X28 ; slave IC port 0 SIC_P1 == 0X2A ; slave IC port 1 ; ; Interval timer (8253) ; IT_CNT0 == 0X29 ; counter 0 (RW) IT_CNT1 == 0X2B ; counter 1 (RW) IT_CNT2 == 0X2D ; counter 2 (RW) IT_MODE == 0X2F ; counter mode (W) ; ; Serial I/O controllers (8251) ; S0_DATA == 0X30 ; data (RW) S0_STAT == 0X32 ; status (R) S0_CMD == 0X32 ; command (W) S0_MSK == 0X34 ; mask (W) S0_RS == 0X34 ; read signal (R) S0_WS == 0X36 ; write signal (W) S1_DATA == 0X31 ; data (RW) S1_STAT == 0X33 ; status (R) S1_CMD == 0X33 ; command (W) S1_MSK == 0X35 ; mask (W) S1_RS == 0X35 ; read signal (R) S1_WS == 0X37 ; write signal (W) ; ; CRT controller ; CRT_STAT== 0X40 ; status (R) CRT_PARM== 0X40 ; parameter (W) CRT_DATA== 0X42 ; data (R) CRT_CMD == 0X42 ; command (W) CRT_IRST== 0X46 ; reset interrupt (W) ; ; Graphics display controller ; GRF_STAT== 0X41 ; status (R) GRF_PARM== 0X41 ; parameter (W) GRF_DATA== 0X43 ; data (R) GRF_CMD == 0X43 ; command (W) ; ; Keyboard controller ; KBD_DATA== 0X48 ; data (R) KBD_BZS == 0X48 ; buzzer set (W) KBD_STAT== 0X4A ; status (R) KBD_BZR == 0X4A ; buzzer reset (W) KBD_SIG == 0X4C ; read signal (R) KBD_BP == 0X4E ; read book/page (R) KBD_SH == 0X4E ; read shift (R) ; ; Floppy disk drive controller ; FDD_STAT== 0X50 ; read status (R) FDD_DATA== 0X52 ; data (RW) FDD_CMD == 0X52 ; command (W) ; ; Clock and calendar device ; CLK_DATA== 0X58 ; read data (R) CLK_SET == 0X58 ; set register (W) ; ; Arithmetic processing unit ; APU_DATA== 0X5A ; data register (RW) APU_STAT== 0X5E ; read status (R) APU_CMD == 0X5E ; write command (W) ; #RELIST ; restore listing status åffé8�COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/24/84) Œ`‰&bŒØŽÐ¼`± ÍßöÅ€ué× \þÈyéÒ¢w lþÈyéÊ¢’ºd±5Íà„ÀtéÚ¡d£i‰Ã%ð£m)Ø;fr¡f£k‰Ã¡f)Ø=ér¸è£oèÉ wèöté ’èëtéyèÿ wAèqè ’AèfèÜè1èF< t<uéièëëèù èÒèÀué<è½ué:»�º«¹ ‡ÚЇÚ:té*KJâï‡ÚЇÚ*$té賋�‰qè¬.»‰z‰•‹s…Ûué÷èù±Óë¡i£‚£�¡k9Øs¡m£‚£�¡o9Øs ‹sK‰sëÇ‹‹‹z)ÓtY‹s9Ór‰Ó‰|‰—詉~‰™ètèt wèFsé‘t…èöt èj ’è1rtî‹z‹|Ó‰z‰•é^ÿè„Àt è <uòèFëU‹xC‰x‰“‹qK‰q…Ûtéÿè7ë3èHë)è^ë$èzëè›ëè¼ëèâé|þèüévþèépþè7€&uþè’ öutéXþ1ÀŽ`‹&bË»€Š„Àt ˆÁµCŠ<;tâ÷ÃItüCŠèˆÁ ¬è8Èuë€uëäˆÂR¶ÿ±ÍßZ„Àu¶€±Íß0Àúv뺑±Íß„Àð¢v¢‘¸†£€¸¡£›ŒØ£‚£�á‹£s0À¢vþÀ¢‘1À£x£“£€£›Ãè£Aè,诋xèUè³è•èÊèýèˆÁ ìèw8Èùt Ýèl8Èt  äèb8ÈuÔ„Àèœ ÃÛÛÛÛÛÛÛ ŠþÈxÛëøÃ±º'èºèèºdè º èþÁºµÿþÅ)ÓsúÓˆè„Àu„Ét0è•þÁà to begin copying Ãèº ReadÃè¯ WriteÃè£ Copy abortedÃè� Successful copyÃèz Non-privileged userÃè_ No source drive specifiedÃè> No destination drive specifiedÃè Unable to lockout source driveÃèò Unable to lockout destination driveÃèÇ Source drive not ready Ãè§ Destination drive not ready Ãè‚ Disk types not identical Ãè` Insufficient memory for copyÃè< error, Drive: Ãè(, Track: Ãè (Retry, Ignore, Abort) ÃS‰å‹^Uè]‰^[ÜP.ŠC„Àtè2ëóX�ÃSQR± ÍàZY[ÃSQR±ÍàZY[ÃSQR²þ±Íà„Àtö²ÿ±ÍàZY[ÃPSQR$ˆÂ±ÍàZY[Xà RåSSé8�COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/24/84) Œ`‰&bŒØŽÐ¼`± ÍßöÅ€u麲ÿ± Í࢛¢œ \„Àu  ]< u颠l„Àu  m< ué–ºf±5Íà„Àté¡¡f£k‰Ã%ð£o)Ø;hr¡h£m‰Ã¡h)Ø=ér¸è£q¡k£s¡m£u;qs ¡o£s¡q£u ]< t è\rFu0ëèDr=u, m< tè»u%ë0èMu#èHë&è^ë!ètëèœëèÉëèâë èûëèëè4è¿ 1ÀŽ`‹&b˾\¿w¹èú k„Àt i¢œèµ±ºwÍà貄ÀuK¢—è º‹u±Óã¹€ÿË)Ór1R±Íà‹s±3Íàè].èx±ºwÍàèuZ»€Ó‡Ú„Àtĉd0Àþl¿w¹è„ {„Àt y¢œè?±ºwÍ౺wÍàè5„ÀuI¢—諺R±Íà‹s±3Íàèñ.è ±ºwÍàè Z„Àu�€‹dK)ÓsÏèí±ºwÍàèê„Àà\è.ruè{0À¢�è—‹§‰dàlèr u èy°¢�èyÃþÈ¢ž°¢�¸­£§ŒØ£©±º�Íß„ÀtU ±»@ÛþÈyú‡Ú‹²‰£èdr9‰¥‡Ú‹¶ã.èSr(º‰§¡s£©‡Ú‹u±Óã)Ór »‰Ÿ‰¡0Àà ÿÃè*±º�Íß„ÀuÿŸ¡§¥£§ÿ¶uÜûétÓrIëõàœè ÃP ›èXÈÂRèZ8ÐtR± Íàè Z8Ðt è.éðý²ÿ± ÍàÃüŒØŽÀó¤ÃèŸ Operation successfulÃè„ Non-privileged userÃèi No source drive or filename specifiedÃè< No destination drive or filename specifiedÃè  Can't find source fileÃèì Can't read boot tracksÃèÎ Can't write destination fileÃèª Can't write boot tracksÃè‹ Not enough memoryÃèr Reading source file: ÃèV Writing destination file: Ãè5 Reading boot tracks: Ãè Writing boot tracks: ÃS‰å‹^Uè]‰^[ÜP.ŠC„ÀtèëóX�ÃPSQR$ˆÂ±ÍàZY[Xà ,,é8�COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/24/84) Œ`‰&bŒØŽÐ¼`±Í߉fècsû h¨t± ÍßöÅ€t:‹f±Íß±Í߉fèDŠg·èÿèTŠfµA0ÀùÀâüˆÇ³Ñëèå1ÀëèR¸PèÝ XŽ`‹&bËèrˆÁ j8Èt7 k8ÈtTëéÃè r < t1<,t-<:t)<*tè5,Ar"<sSþÀ»ùÛþÈuú d[ëÇdÿÿâÂë!è=ë›ItŠCèˆÄ Žèù8àu€fâç‹d…ÛuéÁºRºÿÛs SR±ÍßZ[ÀtùXÀPþÊyç[…Ût,S÷Ó‹d!ÓºÛsSR±ÍßZ[þÊyð[èóèŠèo é#ÿº€‹dÛsSR±ÍßZR¶±ÍßZ[þÊyèöfuèá‹dèQèîè`< tè,ëò»Sº‹dÛs SR±ÍßZ[ÀtùXÀPþÊyç[…ÛtèÛèèö 1ÀŽ`‹&b˰A¹Ñësè þÀâõà when change complete Ãè Unable to free drive(s): ÃS‰å‹^Uè]‰^[ÜP.ŠC„Àtè'ëóX�ÃSQR±ÍàZY[ÃSQR²þ±Íà„Àtö²ÿ±ÍàZY[ÃPSQR$ˆÂ±ÍàZY[XÃ$N$N$N$Nå#TITLE "TURBODOS OPERATING SYSTEM NULL CONSOLE DRIVER" #SUBTTL "COPYRIGHT 1984, SOFTWARE 2000, INC." ; ; COPYRIGHT 1984, SOFTWARE 2000, INC. ; ; VERSION: 01/03/84 ; MODULE "CON192" ;MODULE NAME ; #INCLUDE "DREQUATE" ;DRIVER SYMBOLIC EQUIVALENCES ; LOC Data# ;LOCATE IN DATA SEGMENT ; CONBR:: BYTE 0x8F ;CONSOLE BAUD RATE CODE (19200 BAUD) FFCHR:: BYTE AFF ;FORM FEED CHARACTER INITC: BYTE 0 ;INITIALIZATION COMPLETE FLAG ; LOC Code# ;LOCATE IN CODE SEGMENT ; CONDR_::MOV AL,INITC ;GET INIT COMPLETE FLAG TEST AL,AL ;INITIALIZATION COMPLETE FLAG SET? JNZ __CDRV ;IF SO, CONTINUE CALL __INIT ;ELSE, INITIALIZE CONSOLE CHANNEL __CDRV: MOV AL,DL ;GET FUNCTION NUMBER SUB AL,=8 ;FUNCTION NUMBER=8? JZ CONSO ;IF SO, ERROR SHIFT OUT DEC AL ;FUNCTION NUMBER=9? JZ CONSI ;IF SO, ERROR SHIFT IN JMP SERIAL# ;ELSE, CONTINUE __INIT: MOV INITC,=0xFF ;SET INIT COMPLETE FLAG PUSH DX ;SAVE FUNCTION NUMBER PUSH CX ;SAVE CHANNEL NUMBER/CHARACTER MOV CL,CONBR ;GET CONSOLE BAUD RATE CODE MOV DL,=3 ;SET FUNCTION NUMBER=3 CALL SERIAL# ;SET CHANNEL BUAD RATE MOV AL,FFCHR ;GET FORM FEED CHARACTER TEST AL,AL ;FORM FEED CHARACTER=0? JZ __NITX ;IF SO, CONTINUE POP CX ;ELSE, RESTORE CHANNEL NUMBER PUSH CX ;SAVE CHANNEL NUMBER MOV CL,AL ;FORM FEED CHARACTER TO C-REG MOV DL,=2 ;SET FUNCTION NUMBER=2 CALL SERIAL# ;OUTPUT FORM FEED __NITX: POP CX ;RESTORE CHANNEL NUMBER/CHARACTER POP DX ;RESTORE FUNCTION NUMBER RET ;DONE ; CONSO: CONSI: CALL DMS# ;POSITION TO NEXT LINE BYTE ACR,ALF,0 RET ;DONE ; END #TITLE "TURBODOS OPERATING SYSTEM NULL CONSOLE DRIVER" #SUBTTL "COPYRIGHT 1984, SOFTWARE 2000, INC." ; ; COPYRIGHT 1984, SOFTWARE 2000, INC. ; ; VERSION: 01/03/84 ; MODULE "CON96" ;MODULE NAME ; #INCLUDE "DREQUATE" ;DRIVER SYMBOLIC EQUIVALENCES ; LOC Data# ;LOCATE IN DATA SEGMENT ; CONBR:: BYTE 0x8E ;CONSOLE BAUD RATE CODE (9600 BAUD) FFCHR:: BYTE AFF ;FORM FEED CHARACTER INITC: BYTE 0 ;INITIALIZATION COMPLETE FLAG ; LOC Code# ;LOCATE IN CODE SEGMENT ; CONDR_::MOV AL,INITC ;GET INIT COMPLETE FLAG TEST AL,AL ;INITIALIZATION COMPLETE FLAG SET? JNZ __CDRV ;IF SO, CONTINUE CALL __INIT ;ELSE, INITIALIZE CONSOLE CHANNEL __CDRV: MOV AL,DL ;GET FUNCTION NUMBER SUB AL,=8 ;FUNCTION NUMBER=8? JZ CONSO ;IF SO, ERROR SHIFT OUT DEC AL ;FUNCTION NUMBER=9? JZ CONSI ;IF SO, ERROR SHIFT IN JMP SERIAL# ;ELSE, CONTINUE __INIT: MOV INITC,=0xFF ;SET INIT COMPLETE FLAG PUSH DX ;SAVE FUNCTION NUMBER PUSH CX ;SAVE CHANNEL NUMBER/CHARACTER MOV CL,CONBR ;GET CONSOLE BAUD RATE CODE MOV DL,=3 ;SET FUNCTION NUMBER=3 CALL SERIAL# ;SET CHANNEL BUAD RATE MOV AL,FFCHR ;GET FORM FEED CHARACTER TEST AL,AL ;FORM FEED CHARACTER=0? JZ __NITX ;IF SO, CONTINUE POP CX ;ELSE, RESTORE CHANNEL NUMBER PUSH CX ;SAVE CHANNEL NUMBER MOV CL,AL ;FORM FEED CHARACTER TO C-REG MOV DL,=2 ;SET FUNCTION NUMBER=2 CALL SERIAL# ;OUTPUT FORM FEED __NITX: POP CX ;RESTORE CHANNEL NUMBER/CHARACTER POP DX ;RESTORE FUNCTION NUMBER RET ;DONE ; CONSO: CONSI: CALL DMS# ;POSITION TO NEXT LINE BYTE ACR,ALF,0 RET ;DONE ; END ûCPMSUPüOriginü¬UnitýDataýÿCodeýXTNTRYüIOBYTEüRIBFCNüSIBFCNüRLIFCNü.WPDFCNü<RROFCNü\DPBFCNüÖRDFCNüîRSNFCNúú ø`ˆDOÊDU¢`ú ÿ» RS±èø ˆØ[ÀtùÑÓZþÊyê‰\OÊTi¶±è ˆDOú ÿ» RS±è ˆø[ÀtùÑÓZþÊyê‰\OÊTi±è  þÈxÑãëø‰Ú»ø`‰\OŒ\_‰QSŠTi±èø K‰Ú[$PˆG0äùäþÈuùˆgÐÌÐÌÐÌ€ä„ötÐ̈g‰WˆÊ¶XÑâþÈuúJ‰Wº ùÑÚþÉuù‰W ÇG X‰G Ë\Uº ÑÓs RS±è  [ZþÊyïË\UŽD]¹ &ÆCâùÃþÿå; DEBUGM: POP AX PUSH BX MOV BX,AX CALL DEBUGMBX MOV AX,BX POP BX JMPI AX ; DEBUGMBX: CS MOV AL,[BX] ; load message byte INC BX ; bump pointer TEST AL,AL ; end of message JZ __X ; if so, exit PUSH BX MOV CL,AL ; char to reg CALL SCREEN# POP BX JMPS DEBUGMBX ; __X: RET ; åóå!" " —2 >2 ÿÍ22á#~þ:Âç#~æþ Âæ6*++~þ Âð6*¯2ÍË3Í!^ Í!ÍÁÍ ÍrDirectory for $ÍË!å~·Â5Í<Æ@Í >:Í á#~Í # ÂC>.Í ~Í # ÂSÍÁÍr, user $ÍË ÿÍo&ͨÍ9!Í ÍÖÍþÿ­: §ÊÁ—2 !4Ãæ_!3ÍÃŽÍÁÍr Total of $ÍË* ͨÍ·Írkb$ÍÁÍr in $ÍË* åͨÍÁÍr file$á-Ê>sÍ !^ ÍÉå>ÿ2 ~OæàÊ0 yæO&*  " áå:§ÊJáÉ* #" áå ~Òd>:2…Ãi>.2…#~ÒuÍÁÃxÍËá#~Í  Â{>.Í #~Í  ‹:Æ2Æ þPÒ¯> Í  Â¥ɯ2!K~==!4¾ÊÇf.à !Í ÍËÍrHit any key to continue, ^C to abort$ÍþÊ> Í Í!Í Í9>2ÉáÃå*|µáÂ:!JþÐG> Í x<Ã(å*|µáÂÅÕå:KO úh:JW> Í ÂR> Í > Í ÃJ!Í áÑÁÉã~#þ$Ê€Í ÃsãÉæþaØþ{ÐÖ ÉëÖ0§øþ ?Ø)å))Á O ÑÅÕåöÿÿÿ Ú± ë|µÄ¨{Æ0_Í áÑÁÉ:\#~þ:+Âè~Í‚Ö@þÒæ##~Í‚þ.Êþ*Ì›þ; yþÂÍ›Ãþ!Ú#Ã>  Âë~æ#þ.Ê6å!X~# Â*áÃ\~Í‚þ*Ì›þ ÊTþ;ÊTþÚT#ÃV>  Â8~Í‚#þ;Ê\þ ÊŽþSÂ�åÍ�}áþ Ò\2Ã\þPÂ\>ÿ2Ã\!6# “Éõ>ÿ2 ñ>? › Éå*(}´áÂ'å*%}´áÂ$å*"}´áÂ!å*}´áÂÉ Â8~Í‚#þ;Ê\þ ÊŽþSÂ�åÍ�}áþ Ò\2Ã\; #INCLUDE "DREQUATE" ;DRIVER SYMBOLIC EQUIVALENCES #NOLIST ;SUPPRESS LISTING ; ; ASCII EQUIVALENCES ; ANUL == BYTE 0x00 ;NULL ASOH == BYTE 0x01 ;SOH ASTX == BYTE 0x02 ;STX AETX == BYTE 0x03 ;ETX AEOT == BYTE 0x04 ;EOT AENQ == BYTE 0x05 ;ENQ AACK == BYTE 0x06 ;ACK ABEL == BYTE 0x07 ;BELL ABS == BYTE 0x08 ;BS AHT == BYTE 0x09 ;HT ALF == BYTE 0x0A ;LF AVT == BYTE 0x0B ;VT AFF == BYTE 0x0C ;FF ACR == BYTE 0x0D ;CR ASO == BYTE 0x0E ;SO ASI == BYTE 0x0F ;SI ADLE == BYTE 0x10 ;DLE ADC1 == BYTE 0x11 ;DC1 ADC2 == BYTE 0x12 ;DC2 ADC3 == BYTE 0x13 ;DC3 ADC4 == BYTE 0x14 ;DC4 ANAK == BYTE 0x15 ;NAK ASYN == BYTE 0x16 ;SYN AETB == BYTE 0x17 ;ETB ACAN == BYTE 0x18 ;CAN AEM == BYTE 0x19 ;EM ASUB == BYTE 0x1A ;SUB AESC == BYTE 0x1B ;ESC AFS == BYTE 0x1C ;FS AGS == BYTE 0x1D ;GS ARS == BYTE 0x1E ;RS AUS == BYTE 0x1F ;US ASP == BYTE 0x20 ;SPACE ARUB == BYTE 0x7F ;RUBOUT (DEL) ; LOC 0 ;SYMBOLIC DEFINITIONS RELATIVE TO 0 ; PDRDP: ;PD REQUEST DESCRIPTOR PACKET PDRFCN: RES BYTE 1 ;PD REQUEST FUNCTION NUMBER PDRDRV: RES BYTE 1 ;PD REQUEST DRIVE NUMBER PDRTRK: RES WORD 1 ;PD REQUEST TRACK NUMBER PDRSEC: RES WORD 1 ;PD REQUEST SECTOR NUMBER PDRSC: RES WORD 1 ;PD REQUEST SECTOR COUNT PDRTC: RES WORD 1 ;PD REQUEST TRANSFER COUNT PDRDMA: RES WORD 1 ;PD REQUEST DMA OFFSET PDRBAS: RES WORD 1 ;PD REQUEST DMA BASE PDRDST: RES WORD 1 ;PD REQUEST DRIVE SPEC TABLE ADDR PDRLEN == BYTE .-PDRDP ;PD REQUEST DESCRIPTOR PACKET LENGTH DSKNFO: ;DISK TYPE INFORMATION BLKSIZ: RES BYTE 1 ;BLOCK SIZE NMBLKS: RES WORD 1 ;NUMBER OF BLOCKS NMBDIR: RES BYTE 1 ;NUMBER OF DIRECTORY BLOCKS SECSIZ: RES BYTE 1 ;PHYSICAL SECTOR SIZE (2^N*128) SECTRK: RES WORD 1 ;PHYSICAL SECTORS PER TRACK TRKDSK: RES WORD 1 ;PHYSICAL TRACKS PER DISK RESTRK: RES WORD 1 ;NUMBER OF RESERVED TRACKS DNFOL == BYTE .-DSKNFO ;DISK INFO LENGTH ; RELOC ;RESTORE PREVIOUS LOCATION ; #RELIST ;RESTORE PREVIOUS LISTING STATUS  #TITLE "NEC-APC FLOPPY DISK DRIVER" #SUBTTL "Copyright (c) Multi-Micro Corp." #PAGE 132,66 ; ; DSKAPC.A ; Floppy disk driver for the NEC-APC and TurboDOS. ; ; Version: 6/23/84 ; ; Edit History: ; 6/23/84 jl - Module created. ; 6/24/84 jl - Module assembling but not debugged. ; MODULE "DSKAPC" ; module ID ; #INCLUDE "DREQUATE" ; common driver equivalences #INCLUDE "APCEQU" ; NEC-APC equivalences ; RETRYS == 5 ; number of retrys FDDIREQ == 11 ; FDD Interrupt request number INTRPS == 0 ; -1=interrupts, 0=polled ; ; NEC 765 timer equates ; ND == 0 ; set 765 DMA mode HUT == 240 ; head unload timeout HLT == 38 ; head load delay HUTVAL == HUT/16 ; prep for specify command HLTND == ((HLT/2)<<1)|ND ; prep also ; ; NEC 765 intructions ; SCYCMD == 0X03 ; specify drive parameters SDSCMD == 0X04 ; sense drive status WRCMD == 0X05 ; write sector RDCMD == 0X06 ; read sector RECCMD == 0X07 ; recalibrate SISCMD == 0X08 ; sense interrupt status RIDCMD == 0X0A ; read sector ID FMTCMD == 0X0D ; format a track SKCMD == 0X0F ; seek command ; ; DMA instructions ; DMAWR == 0X15 ; memory write (FDD read) DMARD == 0X19 ; memory read (FDD write) DMAVFY == 0X11 ; memory verify (FDD read) DMAENA == 0X01 ; channel 1 enable DMADIS == 0X05 ; channel 1 disable ; ; Status register 3 bit definitions ; ST3TS == 1<<3 ; two-sided disk ST3RDY == 1<<5 ; drive ready ; ; Pre-defined type code bits ; TSD == 1<<2 ; two-sided disk DDD == 1<<3 ; double density disk MINI == 1<<4 ; mini-floppy disk TPI96 == 1<<5 ; quad density mini floppy ; LOC Data# ; locate in data segment ; DMXSPH: ; mutual exclusion semaphore WORD 1 ; semaphore count WORD . ; semaphore P/D head WORD .-2 ; DWTSPH: ; disk wait semaphore WORD 0 ; semaphore count WORD . ; semaphore P/D head WORD .-2 ; ; 765 read/write table ; RWTBL: DRIVE: BYTE 0 ; drive number TRACK: BYTE 0 ; track number HEAD: BYTE 0 ; head number SECTOR: BYTE 0 ; sector number N: BYTE 0 ; bytes/sector code EOT: BYTE 0 ; end of track GPL: BYTE 0 ; gap length DTL: BYTE 0 ; data length ; ; 765 format table ; FMTBL: FDRV: BYTE 0 ; format drive number FN: BYTE 0 ; format bytes/sector FSC: BYTE 0 ; format sectors/track FGPL: BYTE 0 ; format gap length (3) BYTE 0XE5 ; format filler byte ; RWSTBL: RES 7 ; read/write status table ; ; read/write GAP length table ; RWGAPS: BYTE 0X07 ; 128 bytes BYTE 0X0E ; 256 bytes BYTE 0X1B ; 512 bytes BYTE 0X35 ; 1024 bytes ; TRKTBL: BYTE 0,0,0,0 ; track table (support four drives) ; IOERR: BYTE 0 ; I/O error status byte CURSC: BYTE 0 ; current sector count CURSEC: BYTE 0 ; current sector number CURADR: WORD 0 ; current DMA address ; SECTC: WORD 0 ; sector terminal count RTYCNT: BYTE 0 ; retry counter (set to number of retrys) RECFL: BYTE 0 ; recal flag (set to number of recals) DMAOP: BYTE 0 ; DMA read, write or verify command FDCOP: BYTE 0 ; FDC read or write command ; FLSRT_::BYTE 6 ; drive step rate (patchable) ; ; Function branching table. ; FCNTBL: WORD READ ; function=0, disk read WORD WRITE ; function=1, disk write WORD RETDST ; function=2, return specifications WORD RETRDY ; function=3, return ready WORD FMTTRK ; function=4, format track NMBFCN == (.-FCNTBL)/2 ; number of supported functions ; ; LOC Code# ; locate in code segment ; ; Driver initialization. ; This entry point is called once at system cold boot time and may ; be used to perform any neccessary device initialization. ; DSKIN_:: ; #IF INTRPS ; if interrupts MOV DX,&FDCISR ; get ISR routine address MOV AL,=FDDIREQ ; get FDD interrupt request number CALL INTENA# ; enable interrupts from this device #ENDIF ; INTRPS ; IN AL,FDD_STAT ; read 765 status port INC AL ; is it present? JZ __X ; if not, skip init ; MOV BX,&RWTBL ; use RWTBL for transfer MOV AL,FLSRT_ ; get floppy disk step rate DEC AL NOT AL ; adjust for device MOV CL,=4 ; get shift count SHL AL,CL ; move step value to bits 4-7 OR AL,=HUTVAL ; add in head unload value MOV [BX],AL ; place in table INC BX MOV BYTE [BX],=HLTND ; set HLT and ND MOV CX,=(SCYCMD<<8)|3 ; get command and length CALL CMDRDY ; issue it ; __X: RET ; end of initialization ; ; ; Driver entry point. ; DSKDR_:: MOV BX,&DMXSPH ; get mutual exclusion semaphore CALL WAIT# ; dispatch if necessary CALL __E ; call the disk driver PUSH AX ; save results MOV BX,&DMXSPH ; get mutual exclusion semaphore CALL SIGNAL# ; signal process as ready POP AX ; restore results RET ; done ; __E: MOV BL,PDRFCN[SI] ; get PD request function number CMP BL,=NMBFCN ; check max function number JB __C ; if valid, continue XOR AL,AL ; set error status RET ; and exit ; __C: XOR BH,BH ; make double word ADD BX,BX ; times 2 for table lookup JMPI FCNTBL[BX] ; off to the driver function ; ; ; Function=2, Return disk specifications. ; RETDST: CALL RETRDY ; select and return ready condition TEST AL,AL ; drive ready? JNZ __C1 ; if so, continue RET ; else, exit here ; __C1: ; ; Issue a read ID field in single-density and branch to ; good ID read with AL equal to sector code if successful. ; MOV RECFL,=1 ; set recal flag __DST1: MOV CH,=RIDCMD ; get Read ID command CALL READID ; issue it MOV AL,RWSTBL+6 ; get returned sector size (N) JZ __GID ; if good read ID ; ; Now try a read ID field in double-density and branch to ; good ID read with AL equal to sector code if successful. ; MOV CH,=RIDCMD|(1<<6) ; try double-density next CALL READID ; issue it MOV AL,RWSTBL+6 ; get returned N for FMT sector size PUSHF ; save flags OR AL,=DDD ; set double-density type POPF ; restore flags JZ __GID ; if good read ID ; ; Check the recalibrate flag, and recalibrate the drive if first pass ; through this routine. set recal flag to show recal done. ; DEC RECFL ; check recal flag JS FMTERR ; if retries up, continue error CALL RECAL ; do one recalibrate JMPS __DST1 ; and try format look-up again ; ; AL reg contains the format type as far as density and sector size go. ; Now use the sense drive status command to test for a two sided disk. ; __GID: MOV DL,AL ; hold in register TEST AL,AL ; single density? JNZ __GID1 ; if not, continue MOV AL,RWSTBL+3 ; get cylinder number from results CMP AL,=1 ; track 0 or 1? JA __GID1 ; if not, continue MOV AL,=2 ; load track 2 CALL SEEK1 ; and seek to it JMPS __DST1 ; then check density again ; __GID1: PUSH DX ; save sector type CALL SDS ; sense drive status POP DX ; restore sector type TEST AL,=ST3TS ; test two sided bit JZ __GID2 ; no, FMT correct OR DL,=TSD ; yes, set two-sided type bit __GID2: ; ; Find proper DPB in list ; MOV BX,&DSTBLS# ; get disk spec tables ; __1: CMP DTCO#[BX],DL ; type code correct? JZ __2 ; if so, continue MOV BX,[BX] ; load spec table link TEST BX,BX ; end of list? JNZ __1 ; if not, continue JMPS FMTERR ; format type not found ; __2: ADD BX,=2 ; skip past table linkage MOV PDRDST[SI],BX ; set disk spec table address OR AL,=0XFF ; set return code=FF RET ; done ; ; Branch here if device read errors or format cannot be found ; FMTERR: XOR AL,AL ; force error status RET ; and exit ; ; ; Function=4, format a track ; FMTTRK: CALL RETRDY ; select drive and return ready TEST AL,AL ; drive ready? JNZ __C1 ; if so, continue NOT AL ; else, set AL=FF RET ; and exit here ; __C1: TEST BYTE PDRTRK[SI],=0XFF ; PD requested track=0? JNZ __C2 ; if not, continue CALL RECAL ; else, recalibrate drive __C2: CALL SEEK ; seek to requested track ; MOV BX,&FDRV ; point to drive number in format table TEST BYTE PDRSEC+1[SI],=0X80 ; head number 1 flag set? JZ __C3 ; if not, continue OR BYTE [BX],=1<<2 ; select head 1 in drive field __C3: INC BX ; point to bytes/sector field MOV AL,BYTE PDRSEC[SI] ; get req sector value AND AL,=3 ; extract format sector size MOV [BX],AL ; store in format table INC BX ; point to sectors/track field MOV AL,BYTE PDRSC[SI] ; get req sector count MOV [BX],AL ; store in format table INC BX ; point to gap field MOV AL,BYTE PDRSEC+1[SI] ; get req sector value AND AL,=0X7F ; extract format gap length MOV [BX],AL ; store in format table ; MOV RTYCNT,=RETRYS ; set retry counter __RETRY: MOV AX,PDRBAS[SI] ; get PD request base PUSH AX ; save it MOV CL,=12 SHR AX,CL ; calc extended page MOV DL,AL ; save it POP AX MOV CL,=4 SHL AX,CL ; calc base address ADD AX,PDRDMA[SI] ; add in offset ADC DL,=0 ; add CY into page addr OUT CH1_ADR,AL ; send LSB first MOV AL,AH OUT CH1_ADR,AL ; and MSB second MOV AX,PDRTC[SI] ; get PD request transfer count OUT CH1_TC,AL ; send LSB first MOV AL,AH OUT CH1_TC,AL ; and MSB second MOV AL,DL ; get page addr OUT CH1_EXA,AL ; send page addr MOV AL,=DMARD ; get DMA read memory command OUT DMA_MODE,AL ; send to mode register MOV AL,=DMAENA ; get DMA enable mask OUT DMA_WSM,AL ; send to mask register ; MOV CX,=(FMTCMD<<8)|6 ; get command and length TEST BYTE PDRSEC[SI],=0X80 ; double density flag set? JZ __1 ; if not, continue OR CH,=1<<6 ; set 765 double density bit __1: CALL CMDRDY ; output command to 765 CALL FLWAIT ; wait for completion MOV AL,RWSTBL ; get returned ST-0 AND AL,=0XC0 ; mask error bits JZ __X ; done if no errors DEC RTYCNT ; another retry? JP __RETRY ; if so, loop OR AL,=0XFF ; else get error return __X: RET ; done ; ; ; Function=0, read disk ; READ: MOV DMAOP,=DMAWR ; set DMA mode to write memory MOV DL,=RDCMD ; get FDC read command JMPS RWCOM ; and join common code ; ; ; Function=1, write disk ; WRITE: MOV DMAOP,=DMARD ; set DMA mode to read memory MOV DL,=WRCMD ; get FDC write command CALL RWCOM ; use common routines TEST AL,AL ; test results JZ __C1 ; if good, continue RET ; else, exit here ; __C1: MOV DMAOP,=DMAVFY ; set DMA verify command MOV DL,=RDCMD ; FDC read command ; ; Common routines to both reading and writing. ; RWCOM: ; ; Set up the read or write operation for single- or double- ; density as specified by DDD bit of the format type code in ; the drive specification table. ; CALL RETTCA ; return type code address TEST BYTE [BX],=DDD ; test double-density type bit JZ __SD ; if single-density, continue OR DL,=1<<6 ; set MFM bit-6 in FDC command __SD: TEST BYTE [BX],=TSD ; test double-sided type bit JZ __SS ; if single-sided, continue OR DL,=1<<7 ; set MT bit-7 in FDC command __SS: MOV FDCOP,DL ; store FDC command ; MOV AL,BYTE PDRSEC[SI] MOV CURSEC,AL ; set current sector MOV AX,PDRDMA[SI] MOV CURADR,AX ; set current address MOV AL,BYTE PDRSC[SI] MOV CURSC,AL ; set current sector count ; ; Lookup the values for the GPL and DTL based on the current sector size. ; MOV BL,SECSIZ[SI] ; get the sector size value AND BL,=3 ; mask the sector size bits 0&1 MOV N,BL ; set the N field XOR BH,BH ; make double length MOV AL,RWGAPS[BX] ; get GPL entry MOV GPL,AL ; and patch it MOV DTL,=128 ; preset DTL for single-density TEST BL,BL ; sector size=0? JZ __SD1 ; if so, continue MOV DTL,=0XFF ; set for other sector sizes __SD1: MOV IOERR,=0 ; clear I/O error status byte MOV RECFL,=1 ; set the recal flag ; ; Select in drive through ready test routine (RETRDY) ; RWLOOP: CALL RETRDY ; use subroutine TEST AL,AL ; drive ready? JNZ __C1 ; if so, continue NOT AL ; set AL=FF RET ; __C1: CALL SEEK ; seek to proper track ; ; Select either head-0 or head-1 from the format type value. ; MOV DL,CURSEC ; get current sector CALL RETXLT ; return translation table address JZ __NT ; if no translation required XOR DH,DH ; make sector double length ADD BX,DX ; index into table MOV DL,[BX] ; get translated sector __NT: INC DL ; set sector base to 1 MOV DH,BYTE SECTRK[SI] ; get sectors per track value CALL RETTCA ; return type code address TEST BYTE [BX],=TSD ; test double sided disk JZ __SS ; if not, continue SHR DH,=1 ; find number of sectors per side __SS: MOV BX,&DRIVE AND BYTE [BX],=3 ; reset head select bit MOV HEAD,=0 ; and head match field for 0 CMP DH,DL ; on side 0? JNB __S0 ; if side 0 selected SUB DL,DH ; remove side 1 bias OR BYTE [BX],=1<<2 ; set drive number for head 1 MOV HEAD,=1 ; set head match field for 1 __S0: MOV SECTOR,DL ; set sector MOV EOT,DH ; use as EOT value ; ; Start of reading and writing. NOTE: retry entry point also. ; MOV RTYCNT,=RETRYS ; set retry counter __RETRY: CALL DMANIT ; setup the DMA device MOV CH,FDCOP ; get FDC command MOV CL,=9 ; length of command CALL CMDRDY ; issue command CALL FLWAIT ; wait for completion interrupt MOV AL,RWSTBL ; get ST-0 AND AL,=0XC0 ; mask error bits JZ RWNXT ; if successful operation ; ; Test for a drive not ready condition and branch ; to the error exit routine with the proper result if true. ; TEST BYTE RWSTBL,=1<<3 ; drive not ready? JNZ RWNXT ; if so, continue ; ; Now check the wrong cylinder bit in ST-2. If not true, then branch ; to more error routines. If true, then recalibrate the drive and perform ; a re-seek to the selected track. ; TEST BYTE RWSTBL+2,=1<<4 ; wrong cylinder error set? JZ __E1 ; if not, continue DEC RECFL ; recal done? JS __E1 ; if so, skip it CALL RECAL ; recalibrate the drive JMP RWLOOP ; and re-seek selected track ; ; Check the retry counter for zero and perform preset number ; of retrys to read or write a sector. ; __E1: MOV CL,=ABEL ; get bell character CALL CONOUT# ; output to console DEC RTYCNT ; one less retry JP __RETRY ; if not zero ; RWNXT: MOV AL,RWSTBL OR IOERR,AL ; update I/O error flag CALL RETXLT ; return translate table and status JZ __X1 ; if not present, continue exit ; CALL RETSSZ ; return current sector size ADD CURADR,AX ; set new DMA address INC CURSEC ; bump current sector number DEC CURSC ; check sector count JZ __X1 ; if done, continue exit JMP RWLOOP ; else, continue loop ; __X1: MOV AL,IOERR ; get error status AND AL,=0XC0 ; mask error bits JZ __X2 ; done if no errors OR AL,=0XFF ; set AL=FF __X2: RET ; done ; ; ; Setup DMA controller ; DMANIT: MOV AX,PDRBAS[SI] ; get PD requested base PUSH AX ; save it MOV CL,=12 SHR AX,CL ; calc the extended page MOV DL,AL ; save it POP AX ; restore base MOV CL,=4 SHL AX,CL ; calc page offset ADD AX,CURADR ; add in DMA offset ADC DL,=0 ; add CY to page addr OUT CH1_ADR,AL ; send LSB addr first MOV AL,AH OUT CH1_ADR,AL ; send MSB second CALL RETSSZ ; return current sector size CALL RETXLT ; return translate table and status JNZ __C1 ; if present, cont' with single length MOV AX,PDRTC[SI] ; load PD request transfer count __C1: DEC AX OUT CH1_TC,AL ; send LSB first MOV AL,AH OUT CH1_TC,AL ; send MSB second MOV AL,DL ; get DMA page back OUT CH1_EXA,AL ; send to extended page select MOV AL,DMAOP ; get DMA operation OUT DMA_MODE,AL ; send current DMA mode MOV AL,=DMAENA ; get channel 1 enable command OUT DMA_WSM,AL ; enable DMA controller RET ; done ; ; ; Function=3, return drive ready status ; RETRDY: MOV AL,PDRDRV[SI] ; get disk number CMP AL,=4 ; test for valid drive number JAE __NR ; if invalid, return not ready IN AL,FDD_STAT ; read 765 status port INC AL ; is it present? JZ __NR ; if not, return not ready status CALL DSKSEL ; select in drive CALL SDS ; test drive status TEST AL,=ST3RDY ; test ready status JZ __NR ; if not, return not ready OR AL,=0XFF ; set drive ready status RET ; and exit ; __NR: XOR AL,AL ; clear AL for not ready RET ; and exit ; ; ; Drive select subroutine. ; The new drive is checked against the current drive selected ; on the board and if not the same, the track table is used to store the ; old track number and get the new drives track number, then the new drive ; is selected on the board. ; DSKSEL: MOV DL,PDRDRV[SI] ; get drive number AND DL,=3 ; mask valid bits MOV AL,DRIVE ; get current drive AND AL,=3 ; mask to drive number CMP AL,DL ; same as new? JZ __X ; if so, skip select MOV BL,AL ; old disk to reg XOR BH,BH ; prep for double add MOV AL,TRACK ; get track from RW table MOV TRKTBL[BX],AL ; and place in track table MOV BL,DL ; get new disk to reg MOV AL,TRKTBL[BX] ; get entry from track table MOV TRACK,AL ; and place in RW table MOV DRIVE,BL ; set drive number in RW table MOV FDRV,BL ; and drive number in FORMAT table __X: AND DRIVE,=~(1<<2) ; select head 0 in drive field AND FDRV,=~(1<<2) ; select head 0 in drive field RET ; done ; ; ; Recalibrate the current board selected drive. The 765 recalibrate ; command is issued and the track field in the RW table set to 0. ; RECAL: MOV CX,=(RECCMD<<8)|2 ; get recal command and length CALL CMDRDY ; issue command CALL FLWAIT ; wait for completion XOR AL,AL MOV TRACK,AL ; reset track field in RW table RET ; done ; ; ; Seek to PD requested track number. ; SEEK: MOV AL,BYTE PDRTRK[SI] ; get selected track CMP AL,TRACK ; same as current? JZ SKX ; if so, continue exit SEEK1: MOV TRACK,AL ; put in RW table MOV CX,=(SKCMD<<8)|3 ; get seek command and length CALL CMDRDY ; send command CALL FLWAIT ; wait for completion SKX: RET ; ; ; Issue sense drive status command and retreive results. ; SDS: MOV CX,=(SDSCMD<<8)|2 ; get sense drive status command CALL CMDRDY ; issue it CALL CMDRES ; read results MOV AL,RWSTBL ; get ST-3 RET ; with it ; ; ; Read sector ID field. The B register contains either a single- ; or a double-density read ID command. The command is issued and ; ST-0 error bits mask. ZERO flag is set if no error occured. ; READID: MOV CL,=2 ; length in C CALL CMDRDY ; issue command CALL FLWAIT ; wait for completion MOV AL,RWSTBL ; get status AND AL,=0XC0 ; mask error bits RET ; with Z set for success ; ; ; Send command to NEC 765 subroutine. ; initial command in CH reg, additional bytes are sent from the ; beginning of the READ/WRITE table as requested by the 765. ; If command in CH reg is a format command, the FORMAT table is used. ; reg CL contains the number of bytes that should be transfered. ; CMDRDY: IN AL,FDD_STAT ; get main status register TEST AL,=1<<4 ; mask FDC busy bit-4 JNZ CMDRDY ; loop if busy PUSHF ; save flags CLI ; and disable interrupts MOV BX,&RWTBL ; point to RW table MOV AL,CH ; get 765 command AND AL,=0X0F ; mask command bits CMP AL,=FMTCMD ; format command? JNZ __C1 ; if not, continue MOV BX,&FMTBL ; point to FORMAT table ; __C1: IN AL,FDD_STAT ; get main status register TEST AL,=1<<7 ; test RQM JZ __C1 ; loop if not ready TEST AL,=1<<6 ; test DIO for direction JNZ __X ; if 765 full MOV AL,CH ; get byte for output OUT FDD_DATA,AL ; send it MOV CH,[BX] ; get next byte for output INC BX ; bump RW table pointer DEC CL ; count=count-1 JNZ __C1 ; loop if more to send __X: POPF ; restore intrp status RET ; done ; ; ; Receive NEC 765 result phase subroutine. ; The results of an operation are read out of the 765 as ; requested to be read by the DIO bit-6. The results are loaded ; into the RW status table. ; CMDRES: PUSHF ; save machine status CLI ; disable interrupts MOV BX,&RWSTBL ; set result table pointer ; __C1: IN AL,FDD_STAT ; get main status register TEST AL,=1<<7 ; test RQM JZ __C1 ; loop if not ready TEST AL,=1<<6 ; test DIO JZ __X ; if done receiving IN AL,FDD_DATA ; get result byte MOV [BX],AL ; store data in table INC BX ; bump table pointer JMPS __C1 ; and loop for more __X: POPF ; restore intrp status RET ; ; ; Disk wait subroutine. This is called when waiting on the 765 ; to perform an operation in which it will interrupt when completed. ; FLWAIT: #IF INTRPS ; if interrupts ; MOV BX,&DWTSPH ; get disk wait semaphore JMP WAIT# ; wait for completion ; #ELSE ; MOV DX,&FDCPOL ; get poll routine addr CALL LNKPOL# ; add to poll list MOV BX,&DWTSPH ; get disk wait semaphore JMP WAIT# ; wait for completion ; #ENDIF ; INTRPS ; ; ; Get translate table address. Z flag set if no table. ; RETXLT: MOV BX,PDRDST[SI] ; get disk specifications offset MOV BX,XLTBL#[BX] ; get translation table offset TEST BX,BX ; translation required? RET ; exit with status ; ; ; Return current drive type code address as [BX]. ; RETTCA: MOV BX,PDRDST[SI] ; get disk specifications offset ADD BX,=TYPCOD# ; index to type code address RET ; all done ; ; ; Return the current sector size in bytes. ; RETSSZ: PUSH CX ; save reg MOV CL,SECSIZ[SI] ; get PD request size code MOV AX,=128 ; get base sector size SHL AX,CL ; calc physical byte count POP CX ; restore reg RET ; and exit ; ; #IF INTRPS ; if interrupts ; ; TurboDOS floppy disk interrupt service routine ; FDCISR: PUSH AX PUSH BX PUSH CX PUSH DX ; save regs PUSH DS ; save user data seg CALL GETSDS# ; get system data seg CALL FLINT ; process 765 interrupt request JC __NSIG ; if ready change int, no signal MOV BX,&DWTSPH ; get disk wait semaphore CALL SIGNAL# __NSIG: MOV AL,=FDDIREQ ; get interrupt request level CALL SIGEOI# ; do specific EOI command POP DS POP DX POP CX POP BX POP AX ; restore regs JMP ISRXIT# ; continue with interrupt ; #ELSE ; ; TurboDOS polling routine for FDD interrupts. ; FDCPOL: WORD 0 WORD 0 ; poll linkages ; PUSHF ; save machine status CLI ; disable interrupts MOV AL,=0X0A OUT SIC_P0,AL ; OCW3=read IRR IN AL,SIC_P0 ; read IRR POPF ; restore intrp status TEST AL,=1<<4 ; test FDD IREQ JZ __X ; if not ready, continue CALL FLINT ; process end of operation JC __X ; if false alarm, continue MOV BX,&FDCPOL ; get poll routine addr CALL UNLINK# ; and remove it MOV BX,&DWTSPH ; get disk wait semaphore CALL SIGNAL# ; signal process ready __X: RET ; #ENDIF ; INTRPS ; ; Now the 765 result phase must be performed for any interrupting ; type of command. If the 765 busy bit is set, the results from a ; read or a write type command must be read. If the 765 busy bit is ; not set, then a sense interrupt status command is sent and the ; results of a seek, recal, or drive ready change interrupt are read out. ; FLINT: IN AL,FDD_STAT ; get main status register TEST AL,=1<<4 ; busy? (read or write in process) JNZ __RWD ; yes, read results out MOV CX,=(SISCMD<<8)|2 ; get command and length CALL CMDRDY ; issue sense interrupt status command __RWD: CALL CMDRES ; read the results MOV AL,RWSTBL ; get ST-0 AND AL,=0XC0 ; mask error bits CMP AL,=0XC0 ; drive ready change? STC ; preset CY flag JZ __X ; if so, continue exit MOV AL,=DMADIS ; get DMA disable command OUT DMA_WSM,AL ; disable DMA device XOR AL,AL ; clear CY flag __X: RET ; exit ; END ûDSKAPCý>DataýìCodeýWAITýSIGNALýDSTBLSýDTCOýCONOUTýLNKPOLý XLTBLý TYPCODý UNLINKü3FLSRT_üDSKIN_ü#DSKDR_ú øa a åú  5!ødCLG¨´úäPþÀt»ø`  `3þÈöбÒà ˆCÆ&¹ è û`èø è P»ø`èø XÊ€ûr0ÀÃ0ÿÛÿ§ø`4è ^„ÀuÃÆ`0µ è Ô `tµJè Ê `œ �t þ`0x?è †ë݈„Àu `<w°è ŠëÉRè ‘Z¨t€Ê»ø`8—ø`t‹…Ûuôë ƒÃ‰\ ÿÃ0ÀÃè ñ „ÀuöÐÃöDÿuè 4è @»ø`öD€t€CŠD$ˆCŠDˆCŠD$ˆÆ`/‹D P± ÓèˆÂX±ÓàD €Òæˆàæ‹DæˆàæˆÐæ:°æ°æ ¹  öD€t€Í@è è M `$Àtþ`/z± ÿÃÆ`1²ëÆ`1²è „ÀtÃÆ`1²è 1öt€Ê@öt€Ê€ˆ`2ŠD¢`*‹D £`+ŠD¢`)Š\€ãˆ`0ÿЇ` ¢`Æ`€„ÛtÆ`ÿÆ`(Æ`0è ï„ÀuöÐÃè GŠ`*è  t0öÓŠþŠtè ¼ötÐî»` €'Æ` 8Ös (ò€Æ`ˆ`ˆ6`Æ`/è bŠ.`2± è (è j `$Àt%ö`uö`t þ`0xè Çé ÿ±èø þø`/zÅ ``(è @tè M`+þ`*þ`)té Tÿ `($Àt ÿËD P± ÓèˆÂX±Óà`+ €Òæˆàæè è þu‹DHæˆàæˆÐæ: `1æ°æ ÊD<säPþÀt è è e¨ t ÿÃ0ÀÊT€â ` $8ÐtˆÃ0ÿ ` ˆ‡`$ˆÓЇ`$¢` ˆ` ˆ`€&` û€&`ûù è :è |0À¢` ÊD:` t ¢` ¹ è è aù è è ? `ñè è K ` $ÀÃäP¨uúœú»` ˆè$< u»`äP¨€tú¨@u ˆèæRŠ/CþÉuë�Üú»`äP¨€tú¨@täRˆCëï�úø`©èø »ø`éø ‹\‹Ÿø `…ÛË\�Ãø `ÃQŠL¸ €ÓàYÃ! œú° æ(ä(�¨tè r »ø`©èø  »ø`èø ÃäP¨u¹ è cÿè �ÿ ø` $À<Àùt°æ 0ÀÃþÿ#TITLE "TURBODOS OPERATING SYSTEM DRIVE SPECIFICATION TABLES" #SUBTTL "COPYRIGHT 1984, SOFTWARE 2000, INC." ; ; COPYRIGHT 1984, SOFTWARE 2000, INC. ; ; VERSION: 01/03/84 ; MODULE "DSKFMT" ;MODULE NAME ; #INCLUDE "DREQUATE" ;DRIVER SYMBOLIC EQUIVALENCES ; TSD == BYTE 1<<2 ;TWO-SIDED DISK BIT (TYPE CODE) DDD == BYTE 1<<3 ;DOUBLE DENSITY DISK BIT (TYPE CODE) MINI == BYTE 1<<4 ;MINI-FLOPPY DISK BIT (TYPE CODE) TPI96 == BYTE 1<<5 ;96-TPI DISK BIT (TYPE CODE) ; LOC Data# ;LOCATE IN DATA SEGMENT ; ; 1024 BYTE SECTOR, DOUBLE-DENSITY, TWO-SIDED ; DSTBLS::WORD .+DSTL ;DISK SPEC TABLE LINK POINTER BYTE 4 ;BLOCK SIZE WORD (77*(16*(1<<3)))/(1<<4) ;NUMBER OF BLOCKS BYTE 4 ;NUMBER OF DIRECTORY BLOCKS BYTE 3 ;PHYSICAL SECTOR SIZE (2^N*128) WORD 16 ;PHYSICAL SECTORS PER TRACK WORD 77 ;PHYSICAL TRACKS PER DISK WORD 0 ;NUMBER OF RESERVED TRACKS WORD 0 ;TRANSLATION TABLE ADDRESS BYTE DDD|TSD|3 ;DISK TYPE CODE BYTE 0x35 ;GAP LENGTH ; ; 1024 BYTE SECTOR, DOUBLE-DENSITY, TWO-SIDED, 96-TPI (MINI) ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER BYTE 4 ;BLOCK SIZE WORD (80*(10*(1<<3)))/(1<<4) ;NUMBER OF BLOCKS BYTE 4 ;NUMBER OF DIRECTORY BLOCKS BYTE 3 ;PHYSICAL SECTOR SIZE (2^N*128) WORD 10 ;PHYSICAL SECTORS PER TRACK WORD 80 ;PHYSICAL TRACKS PER DISK WORD 0 ;NUMBER OF RESERVED TRACKS WORD 0 ;TRANSLATION TABLE ADDRESS BYTE TPI96|MINI|DDD|TSD|3 ;DISK TYPE CODE BYTE 0x35 ;GAP LENGTH ; ; 1024 BYTE SECTOR, DOUBLE-DENSITY, TWO-SIDED (MINI) ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER BYTE 4 ;BLOCK SIZE WORD (40*(10*(1<<3)))/(1<<4) ;NUMBER OF BLOCKS BYTE 2 ;NUMBER OF DIRECTORY BLOCKS BYTE 3 ;PHYSICAL SECTOR SIZE (2^N*128) WORD 10 ;PHYSICAL SECTORS PER TRACK WORD 40 ;PHYSICAL TRACKS PER DISK WORD 0 ;NUMBER OF RESERVED TRACKS WORD 0 ;TRANSLATION TABLE ADDRESS BYTE MINI|DDD|TSD|3 ;DISK TYPE CODE BYTE 0x35 ;GAP LENGTH ; ; 1024 BYTE SECTOR, DOUBLE-DENSITY, ONE-SIDED ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER BYTE 4 ;BLOCK SIZE WORD (77*(8*(1<<3)))/(1<<4) ;NUMBER OF BLOCKS BYTE 3 ;NUMBER OF DIRECTORY BLOCKS BYTE 3 ;PHYSICAL SECTOR SIZE (2^N*128) WORD 8 ;PHYSICAL SECTORS PER TRACK WORD 77 ;PHYSICAL TRACKS PER DISK WORD 0 ;RESERVED TRACKS WORD 0 ;TRANSLATION TABLE ADDRESS BYTE DDD|3 ;DISK TYPE CODE BYTE 0x35 ;GAP LENGTH ; ; 1024 BYTE SECTOR, DOUBLE-DENSITY, ONE-SIDED, 96-TPI (MINI) ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER BYTE 4 ;BLOCK SIZE WORD (80*(5*(1<<3)))/(1<<4) ;NUMBER OF BLOCKS BYTE 2 ;NUMBER OF DIRECTORY BLOCKS BYTE 3 ;PHYSICAL SECTOR SIZE (2^N*128) WORD 5 ;PHYSICAL SECTORS PER TRACK WORD 80 ;PHYSICAL TRACKS PER DISK WORD 0 ;RESERVED TRACKS WORD 0 ;TRANSLATION TABLE ADDRESS BYTE TPI96|MINI|DDD|3 ;DISK TYPE CODE BYTE 0x35 ;GAP LENGTH ; ; 1024 BYTE SECTOR, DOUBLE-DENSITY, ONE-SIDED (MINI) ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER BYTE 3 ;BLOCK SIZE WORD (40*(5*(1<<3)))/(1<<3) ;NUMBER OF BLOCKS BYTE 2 ;NUMBER OF DIRECTORY BLOCKS BYTE 3 ;PHYSICAL SECTOR SIZE (2^N*128) WORD 5 ;PHYSICAL SECTORS PER TRACK WORD 40 ;PHYSICAL TRACKS PER DISK WORD 0 ;RESERVED TRACKS WORD 0 ;TRANSLATION TABLE ADDRESS BYTE MINI|DDD|3 ;DISK TYPE CODE BYTE 0x35 ;GAP LENGTH ; ; 512 BYTE SECTOR, DOUBLE-DENSITY, TWO-SIDED ; ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER ; BYTE 4 ;BLOCK SIZE ; WORD (77*(30*(1<<2)))/(1<<4) ;NUMBER OF BLOCKS ; BYTE 4 ;NUMBER OF DIRECTORY BLOCKS ; BYTE 2 ;PHYSICAL SECTOR SIZE (2^N*128) ; WORD 30 ;PHYSICAL SECTORS PER TRACK ; WORD 77 ;PHYSICAL TRACKS PER DISK ; WORD 0 ;RESERVED TRACKS ; WORD 0 ;TRANSLATION TABLE ADDRESS ; BYTE DDD|TSD|2 ;DISK TYPE CODE ; BYTE 0x1B ;GAP LENGTH ; ; 512 BYTE SECTOR, DOUBLE-DENSITY, ONE-SIDED ; ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER ; BYTE 4 ;BLOCK SIZE ; WORD (77*(15*(1<<2)))/(1<<4) ;NUMBER OF BLOCKS ; BYTE 3 ;NUMBER OF DIRECTORY BLOCKS ; BYTE 2 ;PHYSICAL SECTOR SIZE (2^N*128) ; WORD 15 ;PHYSICAL SECTORS PER TRACK ; WORD 77 ;PHYSICAL TRACKS PER DISK ; WORD 0 ;RESERVED TRACKS ; WORD 0 ;TRANSLATION TABLE ADDRESS ; BYTE DDD|2 ;DISK TYPE CODE ; BYTE 0x1B ;GAP LENGTH ; ; 512 BYTE SECTOR, SINGLE-DENSITY, TWO-SIDED ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER BYTE 4 ;BLOCK SIZE WORD (77*(16*(1<<2)))/(1<<4) ;NUMBER OF BLOCKS BYTE 3 ;NUMBER OF DIRECTORY BLOCKS BYTE 2 ;PHYSICAL SECTOR SIZE (2^N*128) WORD 16 ;PHYSICAL SECTORS PER TRACK WORD 77 ;PHYSICAL TRACKS PER DISK WORD 0 ;RESERVED TRACKS WORD 0 ;TRANSLATION TABLE ADDRESS BYTE TSD|2 ;DISK TYPE CODE BYTE 0x1B ;GAP LENGTH ; ; 512 BYTE SECTOR, SINGLE-DENSITY, ONE-SIDED ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER BYTE 4 ;BLOCK SIZE WORD (77*(8*(1<<2)))/(1<<4) ;NUMBER OF BLOCKS BYTE 2 ;NUMBER OF DIRECTORY BLOCKS BYTE 2 ;PHYSICAL SECTOR SIZE (2^N*128) WORD 8 ;PHYSICAL SECTORS PER TRACK WORD 77 ;PHYSICAL TRACKS PER DISK WORD 0 ;RESERVED TRACKS WORD 0 ;TRANSLATION TABLE ADDRESS BYTE 2 ;DISK TYPE CODE BYTE 0x1B ;GAP LENGTH ; ; 512 BYTE SECTOR, DOUBLE-DENSITY, TWO-SIDED (MINI) ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER BYTE 4 ;BLOCK SIZE WORD (40*(16*(1<<2)))/(1<<4) ;NUMBER OF BLOCKS BYTE 2 ;NUMBER OF DIRECTORY BLOCKS BYTE 2 ;PHYSICAL SECTOR SIZE (2^N*128) WORD 1 ;PHYSICAL SECTORS PER TRACK WORD 40*8*2 ;PHYSICAL TRACKS PER DISK WORD 1 ;RESERVED TRACKS WORD 0 ;TRANSLATION TABLE ADDRESS BYTE MINI|DDD|TSD|2 ;DISK TYPE CODE BYTE 0x1B ;GAP LENGTH ; ; 512 BYTE SECTOR, DOUBLE-DENSITY, ONE-SIDED (MINI) ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER BYTE 3 ;BLOCK SIZE WORD (40*(8*(1<<2)))/(1<<3) ;NUMBER OF BLOCKS BYTE 2 ;NUMBER OF DIRECTORY BLOCKS BYTE 2 ;PHYSICAL SECTOR SIZE (2^N*128) WORD 1 ;PHYSICAL SECTORS PER TRACK WORD 40*8 ;PHYSICAL TRACKS PER DISK WORD 1 ;RESERVED TRACKS WORD 0 ;TRANSLATION TABLE ADDRESS BYTE MINI|DDD|2 ;DISK TYPE CODE BYTE 0x1B ;GAP LENGTH ; ; 256 BYTE SECTOR, DOUBLE-DENSITY, TWO-SIDED ; ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER ; BYTE 4 ;BLOCK SHZET ; WORD (77*(52*(1<<1)))/(1<<4) ;NUMBER OF BLOCKS ; BYTE 4 ;NUMBER OF DIRECTORY BLOCKS ; BYTE 1 ;PHYSICAL SECTOR SIZE (2^N*128) ; WORD 52 ;PHYSICAL SECTORS PER TRACK ; WORD 77 ;PHYSICAL TRACKS PER DISK ; WORD 0 ;RESERVED TRACKS ; WORD 0 ;TRANSLATION TABLE ADDRESS ; BYTE DDD|TSD|1 ;DISK TYPE CODE ; BYTE 0x0E ;GAP LENGTH ; ; 256 BYTE SECTOR, DOUBLE-DENSITY, TWO-SIDED (NEC-APC COMPATABLE) ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER BYTE 4 ;BLOCK SHZET WORD (76*(52*(1<<1)))/(1<<4) ;NUMBER OF BLOCKS BYTE 4 ;NUMBER OF DIRECTORY BLOCKS BYTE 1 ;PHYSICAL SECTOR SIZE (2^N*128) WORD 52 ;PHYSICAL SECTORS PER TRACK WORD 77 ;PHYSICAL TRACKS PER DISK WORD 1 ;RESERVED TRACKS WORD XLTAPC2D;TRANSLATION TABLE ADDRESS BYTE DDD|TSD|1 ;DISK TYPE CODE BYTE 0x0E ;GAP LENGTH ; ; 256 BYTE SECTOR, DOUBLE-DENSITY, ONE-SIDED ; ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER ; BYTE 4 ;BLOCK SIZE ; WORD (77*(26*(1<<1)))/(1<<4) ;NUMBER OF BLOCKS ; BYTE 2 ;NUMBER OF DIRECTORY BLOCKS ; BYTE 1 ;PHYSICAL SECTOR SIZE (2^N*128) ; WORD 26 ;PHYSICAL SECTORS PER TRACK ; WORD 77 ;PHYSICAL TRACKS PER DISK ; WORD 0 ;RESERVED TRACKS ; WORD 0 ;TRANSLATION TABLE ADDRESS ; BYTE DDD|1 ;DISK TYPE CODE ; BYTE 0x0E ;GAP LENGTH ; ; 256 BYTE SECTOR, SINGLE-DENSITY, TWO-SIDED ; ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER ; BYTE 4 ;BLOCK SIZE ; WORD (77*(30*(1<<1)))/(1<<4) ;NUMBER OF BLOCKS ; BYTE 3 ;NUMBER OF DIRECTORY BLOCKS ; BYTE 1 ;PHYSICAL SECTOR SIZE (2^N*128) ; WORD 30 ;PHYSICAL SECTORS PER TRACK ; WORD 77 ;PHYSICAL TRACKS PER DISK ; WORD 0 ;RESERVED TRACKS ; WORD 0 ;TRANSLATION TABLE ADDRESS ; BYTE TSD|1 ;DISK TYPE CODE ; BYTE 0x0E ;GAP LENGTH ; ; 256 BYTE SECTOR, SINGLE-DENSITY, ONE-SIDED ; ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER ; BYTE 4 ;BLOCK SIZE ; WORD (77*(15*(1<<1)))/(1<<4) ;NUMBER OF BLOCKS ; BYTE 2 ;NUMBER OF DIRECTORY BLOCKS ; BYTE 1 ;PHYSICAL SECTOR SIZE (2^N*128) ; WORD 15 ;PHYSICAL SECTORS PER TRACK ; WORD 77 ;PHYSICAL TRACKS PER DISK ; WORD 0 ;RESERVED TRACKS ; WORD 0 ;TRANSLATION TABLE ADDRESS ; BYTE 1 ;DISK TYPE CODE ; BYTE 0x0E ;GAP LENGTH ; ; 128 BYTE SECTOR, SINGLE-DENSIT Y, TWO-SIDED (OLD) ; ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER ; BYTE 4 ;BLOCK SIZE ; WORD (76*(52*(1<<0)))/(1<<4) ;NUMBER OF BLOCKS ; BYTE 2 ;NUMBER OF DIRECTORY BLOCKS ; BYTE 0 ;PHYSICAL SECTOR SIZE (2^N*128) ; WORD 52 ;PHYSICAL SECTORS PER TRACK ; WORD 77 ;PHYSICAL TRACKS PER DISK ; WORD 1 ;RESERVED TRACKS ; WORD 0 ;TRANSLATION TABLE ADDRESS ; BYTE TSD ;DISK TYPE CODE ; BYTE 7 ;GAP LENGTH ; ; 128 BYTE SECTOR, SINGLE-DENSITY, TWO-SIDED ; ; WORD .+DSTL ;DISK SPEC TABLE LINK POINTER ; BYTE 4 ;BLOCK SIZE ; WORD (77*(52*(1<<0)))/(1<<4) ;NUMBER OF BLOCKS ; BYTE 2 ;NUMBER OF DIRECTORY BLOCKS ; BYTE 0 ;PHYSICAL SECTOR SIZE (2^N*128) ; WORD 52 ;PHYSICAL SECTORS PER TRACK ; WORD 77 ;PHYSICAL TRACKS PER DISK ; WORD 0 ;RESERVED TRACKS ; WORD 0 ;TRANSLATION TABLE ADDRESS ; BYTE TSD ;DISK TYPE CODE ; BYTE 7 ;GAP LENGTH ; ; 128 BYTE SECTOR, SINGLE-DENSITY, ONE-SIDED ; DSTA: WORD 0 ;DISK SPEC TABLE LINK POINTER DSTB: BYTE 3 ;BLOCK SIZE WORD (75*(26*(1<<0)))/(1<<3) ;NUMBER OF BLOCKS BYTE 2 ;NUMBER OF DIRECTORY BLOCKS BYTE 0 ;PHYSICAL SECTOR SIZE (2^N*128) WORD 26 ;PHYSICAL SECTORS PER TRACK WORD 77 ;PHYSICAL TRACKS PER DISK WORD 2 ;RESERVED TRACKS ; XLTBL ==: .-DSTB ;TRANSLATION TABLE ADDRESS OFFSET ; WORD &TRTBL ;TRANSLATION TABLE ADDRESS ; DTCO ==: .-DSTA ;DISK TYPE CODE OFFSET TYPCOD ==: .-DSTB ;DISK TYPE CODE OFFSET ; BYTE 0 ;DISK TYPE CODE ; GAPLEN ==: .-DSTB ;GAP LENGTH OFFSET ; BYTE 7 ;GAP LENGTH ; DSTL == .-DSTA ;DISK SPEC TABLE LENGTH ; ; SINGLE-DENSITY/SINGLE-SIDED SECTOR TRANSLATION TABLE ; TRTBL: BYTE 0,6,12,18,24,4,10,16,22 BYTE 2,8,14,20,1,7,13,19,25 BYTE 5,11,17,23,3,9,15,21 ; ; NEC-APC 2D FORMAT TYPE TRANSLATION TABLE ; XLTAPC2D: BYTE 0,3,6,9,12,15,18,21,24 BYTE 1,4,7,10,13,16,19,22,25 BYTE 2,5,8,11,14,17,20,23 BYTE 26,29,32,35,38,41,44,47,50 BYTE 27,30,33,36,39,42,45,48,51 BYTE 28,31,34,37,40,43,46,49 ; END ûDSKFMTýDataüDSTBLSü XLTBLüDTCOü TYPCODüGAPLENúø` h#M5`" �# P?5`3 È# (5`D 4#M 5`U È#P;5`f È#(5`w 4#M`ˆ š#M`™  #€`ª  #@`» î"4M`æ   ó"M`Ì          #&),/2!$'*-03"%(+.1þÿå; #INCLUDE "EQUATE" ;SYMBOLIC EQUIVALENCES #NOLIST ;SUPPRESS LISTING ; ; ASCII EQUIVALENCES ; ANUL == BYTE 0x00 ;NULL ASOH == BYTE 0x01 ;SOH ASTX == BYTE 0x02 ;STX AETX == BYTE 0x03 ;ETX AEOT == BYTE 0x04 ;EOT AENQ == BYTE 0x05 ;ENQ AACK == BYTE 0x06 ;ACK ABEL == BYTE 0x07 ;BELL ABS == BYTE 0x08 ;BS AHT == BYTE 0x09 ;HT ALF == BYTE 0x0A ;LF AVT == BYTE 0x0B ;VT AFF == BYTE 0x0C ;FF ACR == BYTE 0x0D ;CR ASO == BYTE 0x0E ;SO ASI == BYTE 0x0F ;SI ADLE == BYTE 0x10 ;DLE ADC1 == BYTE 0x11 ;DC1 ADC2 == BYTE 0x12 ;DC2 ADC3 == BYTE 0x13 ;DC3 ADC4 == BYTE 0x14 ;DC4 ANAK == BYTE 0x15 ;NAK ASYN == BYTE 0x16 ;SYN AETB == BYTE 0x17 ;ETB ACAN == BYTE 0x18 ;CAN AEM == BYTE 0x19 ;EM ASUB == BYTE 0x1A ;SUB AESC == BYTE 0x1B ;ESC AFS == BYTE 0x1C ;FS AGS == BYTE 0x1D ;GS ARS == BYTE 0x1E ;RS AUS == BYTE 0x1F ;US ASP == BYTE 0x20 ;SPACE ARUB == BYTE 0x7F ;RUBOUT (DEL) ; ; OPERATING SYSTEM EQUIVALENCES ; OPSYST == 223 ;O/S INTERRUPT VECTOR (TDOS) OPSYSC == 224 ;O/S INTERRUPT VECTOR (CP/M) TFCB == 0x005C ;DEFAULT FILE CONTROL BLOCK TBUF == 0x0080 ;DEFAULT DISK BUFFER ADDRESS TPA == 0x0100 ;TRANSIENT PROGRAM AREA BASE ; WSFCN == BYTE 0 ;FUNCTION 0 (WARM START) CIFCN == BYTE 1 ;FUNCTION 1 (CONSOLE INPUT) COFCN == BYTE 2 ;FUNCTION 2 (CONSOLE OUTPUT) RCIFCN == BYTE 3 ;FUNCTION 3 (RAW CONSOLE INPUT) RCOFCN == BYTE 4 ;FUNCTION 4 (RAW CONSOLE OUTPUT) LOFCN == BYTE 5 ;FUNCTION 5 (LIST OUTPUT) DCFCN == BYTE 6 ;FUNCTION 6 (DIRECT CONSOLE I/O) RIBFCN == BYTE 7 ;FUNCTION 7 (RETURN I/O BYTE) SIBFCN == BYTE 8 ;FUNCTION 8 (SET I/O BYTE) PBFCN == BYTE 9 ;FUNCTION 9 (PRINT BUFFER) CIBFCN == BYTE 10 ;FUNCTION 10 (CONSOLE IN BUFFERED) CSFCN == BYTE 11 ;FUNCTION 11 (CONSOLE STATUS) RVNFCN == BYTE 12 ;FUNCTION 12 (RETURN VERSN NUMBER) RDSFCN == BYTE 13 ;FUNCTION 13 (RESET DISK SYSTEM) SELFCN == BYTE 14 ;FUNCTION 14 (SELECT DISK) OFFCN == BYTE 15 ;FUNCTION 15 (OPEN FILE) CFFCN == BYTE 16 ;FUNCTION 16 (CLOSE FILE) SFFFCN == BYTE 17 ;FUNCTION 17 (SEARCH FOR 1ST FILE) SNFFCN == BYTE 18 ;FUNCTION 18 (SEARCH FOR NEXT FILE) DFFCN == BYTE 19 ;FUNCTION 19 (DELETE FILE) RSFFCN == BYTE 20 ;FUNCTION 20 (READ SEQUENTIAL FILE) WSFFCN == BYTE 21 ;FUNCTION 21 (WRITE SEQ FILE) MFFCN == BYTE 22 ;FUNCTION 22 (MAKE FILE) RFFCN == BYTE 23 ;FUNCTION 23 (RENAME FILE) RLIFCN == BYTE 24 ;FUNCTION 24 (RETURN LOGIN VECTOR) RCDFCN == BYTE 25 ;FUNCTION 25 (RETURN CURRENT DISK) SDFCN == BYTE 26 ;FUNCTION 26 (SET DMA) ; WPDFCN == BYTE 28 ;FUNCTION 28 (WRITE PROTECT DISK) RROFCN == BYTE 29 ;FUNCTION 29 (RETURN R/O VECTOR) SFAFCN == BYTE 30 ;FUNCTION 30 (SET FILE ATTRIBUTES) DPBFCN == BYTE 31 ;FUNCTION 31 (DISK PARAMETER BLOCK) SRUFCN == BYTE 32 ;FUNCTION 32 (SET/RETURN USER) RRFFCN == BYTE 33 ;FUNCTION 33 (READ RANDOM FILE) WRFFCN == BYTE 34 ;FUNCTION 34 (WRITE RANDOM FILE) CFSFCN == BYTE 35 ;FUNCTION 35 (COMPUTE FILE SIZE) SRRFCN == BYTE 36 ;FUNCTION 36 (SET RANDOM RECORD) RDFCN == BYTE 37 ;FUNCTION 37 (RESET DRIVE) ; LKRFCN == BYTE 42 ;FUNCTION 42 (LOCK RECORD) FRRFCN == BYTE 43 ;FUNCTION 43 (FREE RECORD) SSCFCN == BYTE 44 ;FUNCTION 44 (SET SECTOR COUNT) ; DFSFCN == BYTE 46 ;FUNCTION 46 (DISK FREE SPACE) CHNFCN == BYTE 47 ;FUNCTION 47 (CHAIN TO PROGRAM) ; SDBFCN == BYTE 51 ;FUNCTION 51 (SET DMA BASE) RDBFCN == BYTE 52 ;FUNCTION 52 (RETURN DMA BASE) RRMFCN == BYTE 53 ;FUNCTION 53 (RET RELOCATABLE MEM) RAMFCN == BYTE 54 ;FUNCTION 54 (RET ABSOLUTE MEMORY) ARMFCN == BYTE 55 ;FUNCTION 55 (ALLOC RELOCATABLE MEM) AAMFCN == BYTE 56 ;FUNCTION 56 (ALLOC ABSOLUTE MEMORY) FMSFCN == BYTE 57 ;FUNCTION 57 (FREE MEMORY SEGMENT) FAMFCN == BYTE 58 ;FUNCTION 58 (FREE ALL MEMORY) PLFCN == BYTE 59 ;FUNCTION 59 (PROGRAM LOAD) ; DT1FCN == BYTE 104 ;FUNCTION 104 (SET DATE/TIME) DT2FCN == BYTE 105 ;FUNCTION 105 (RETURN DATE/TIME) ; RSNFCN == BYTE 107 ;FUNCTION 107 (RETURN S/N) SRCFCN == BYTE 108 ;FUNCTION 108 (SET/RETURN CODE) ; SRTFCN == BYTE 110 ;FUNCTION 110 (SET/RET TERMINATOR) PBCFCN == BYTE 111 ;FUNCTION 111 (PRINT BLOCK TO CON) PBLFCN == BYTE 112 ;FUNCTION 112 (PRINT BLOCK TO LIST) ; PFNFCN = = BYTE 152 ;FUNCTION 152 (PARSE FILE NAME) ; ROSFCN == BYTE 0 ;FUNCTION 0 (RESET O/S) CTPFCN == BYTE 1 ;FUNCTION 1 (CREATE/TERM PROCESS) DPFCN == BYTE 2 ;FUNCTION 2 (DISPATCH PROCESS) AMFCN == BYTE 3 ;FUNCTION 3 (ALLOCATE MEMORY) DMFCN == BYTE 4 ;FUNCTION 4 (DE-ALLOCATE MEMORY) SMFCN == BYTE 5 ;FUNCTION 5 (SEND MESSAGE) RMFCN == BYTE 6 ;FUNCTION 6 (RECEIVE MESSAGE) SESFCN == BYTE 7 ;FUNCTION 7 (SET ERROR SERVICE) SERFCN == BYTE 8 ;FUNCTION 8 (SET ERROR RETURN) SDTFCN == BYTE 9 ;FUNCTION 9 (SET DATE/TIME) RDTFCN == BYTE 10 ;FUNCTION 10 (RETURN DATE/TIME) RDMFCN == BYTE 11 ;FUNCTION 11 (REBUILD DISK MAP) ROUFCN == BYTE 12 ;FUNCTION 12 (RETURN ORIGIN/UNIT) SCFFCN == BYTE 13 ;FUNCTION 13 (SET COMPATABILITY) LOGFCN == BYTE 14 ;FUNCTION 14 (LOG ON/OFF) LFFCN == BYTE 15 ;FUNCTION 15 (LOAD FILE) ADFFCN == BYTE 16 ;FUNCTION 16 (ACTIVATE DO FILE) ALDFCN == BYTE 17 ;FUNCTION 17 (AUTO LOAD DISABLE) SCLFCN == BYTE 18 ;FUNCTION 18 (SEND COMMAND LINE) RAVFCN == BYTE 19 ;FUNCTION 19 (RETURN ALV INFO) RDPFCN == BYTE 20 ;FUNCTION 20 (RETURN DISK PARMS) SRSFCN == BYTE 21 ;FUNCTION 21 (SET/RET DISK STATUS) PDAFCN == BYTE 22 ;FUNCTION 22 (PHYSICAL DISK ACCESS) SBPFCN == BYTE 23 ;FUNCTION 23 (SET BUFFER PARMS) RBPFCN == BYTE 24 ;FUNCTION 24 (RETURN BUFFER PARMS) LFDFCN == BYTE 25 ;FUNCTION 25 (LOCKOUT/FREE DRIVE) FFBFCN == BYTE 26 ;FUNCTION 26 (FLUSH/FREE BUFFERS) SRPFCN == BYTE 27 ;FUNCTION 27 (SET/RET PRINT MODE) EOPFCN == BYTE 28 ;FUNCTION 28 (SIGNAL END OF PRINT) SRDFCN == BYTE 29 ;FUNCTION 29 (SET/RET DE-SPOOL) QPFFCN == BYTE 30 ;FUNCTION 30 (QUEUE PRINT FILE) FLBFCN == BYTE 31 ;FUNCTION 31 (FLUSH LIST BUFFER) NLOFCN == BYTE 32 ;FUNCTION 32 (NETWORK LIST OUT) RCFCN == BYTE 33 ;FUNCTION 33 (REMOTE CONSOLE) CCSFCN == BYTE 34 ;FUNCTION 34 (COMM CHANNEL STATUS) CCIFCN == BYTE 35 ;FUNCTION 35 (COMM CHANNEL INPUT) CCOFCN == BYTE 36 ;FUNCTION 36 (COMM CHANNEL OUTPUT) SCBFCN == BYTE 37 ;FUNCTION 37 (SET COMM BAUD RATE) RCBFCN == BYTE 38 ;FUNCTION 38 (RETURN COMM BAUD) SMCFCN == BYTE 39 ;FUNCTION 39 (SET COMM MODEM CTRL) RMCFCN == BYTE 40 ;FUNCTION 40 (RET COMM MODEM CTRL) USRFCN == BYTE 41 ;FUNCTION 41 (USER DEFINED) RDDFCN == BYTE 42 ;FUNCTION 42 (REBUILD DISK MAP) ; #RELIST ;RESUME PREVIOUS LISTING STATUS å÷XûHDCTSTý Codeú±.²Íàé ÷ÿþÿ;FUNCTION 40 (RET COMM MODEM CTRL) USRFCN == BYTE 41 ;FUNCTION 41 (USER DEFINED) RDúè Wÿ°æ’è Pÿä–¨tú¹ ŒÛŽÃW�>`$è :ÿä’üª° è 1ÿæ¢è ,ÿ 䢨 túä ªâû°è ÿæ¢è ÿ䢨uú¡`$$`<@_Ã0ÀÊDþÈÃþÿ22èŒ �6è(ÿéòÿÃ0Àæ”æ¢°€æ¢0Àæ¢æ©°æŸ0Àæ˜�(!èìû!èÙÿè P»!èÏÿXÊ€ûr0ÀÃ0ÿÛÿ§U!�J!‰Dé­0Àà ÿÃÆ!ëÆ!±‹DÓàD¹41Ò÷ñ)Ñ�:!‰G‰W‹D9Á‰È‰G±Óà‰GŠDˆG‹D ‰G ‹D ‰G V‰Þè.Àu&[‹D‰Á+GtL ÿDÇD÷؉D±Òè‰DSè[‰ÞÃÆ!ŠT‹DˆÆ€æ‰ÃÑëÑëÑë†û:!u;!tCPSRèö‰%!€&'!ø'!€&)!ø)!Æ!�$!èçtþ!t �(!èØéçÿƒÄ°ÿÃZ[Xˆ6+!ˆ6.!€Ëþ‰,!ˆ1!ö!t ƒ|u�| t/€1!°Æ!°èe�*!è�tþ!tµ�(!è€�$!èyéÛÿWüŽ !‹|±Óç‹L‹\ ö!Ž\ ‡Þu ‡÷ŒØŒÂŽÚŽÀÑéó¥s¤‰Þ_ !"!0À¢#!¢!Ãæ›è"0Àæ£èæ£è°ÿæ“è°æ“è°æ«èÃQœ¹âþ�YÃ0Àæ–èïÿ0íŠã/°@æ¢èâÿ䢨 túCIã ŠèÓÿæ èÎÿéïÿ°èÆÿæ¢èÁÿŠæ èºÿ°æ¢è³ÿ䢨uúCŠæ’ˆÄè£ÿä–¨túèšÿ€ä€t¹éHä’èŠÿ°æ¢èƒÿ䢨uúèzÿä–¨túèqÿä’¨tú èeÿæ¢è`ÿ䢨uúèWÿ°æ’èPÿä–¨tú¹ŒÛŽÃW�>2!è;ÿä’üª° è2ÿæ¢è-ÿ䢨 túä ªâû°èÿæ¢èÿ䢨uú¡2!$`<@_Ã0ÀÊDþÈÀ !!!!ÿÿÿœhP † @ jqZg ÷XûHDCTSTý DataýCodeýDSKINXýDSKDRXüWAITüSIGNALú#€ø` úèø Œø` �6`èø ÿø`é òÿÃþÿ (REBUILD DISK MAP) ; #RELIST ;RESUME PREVIOUS LISTING STATUS  ; Segment containing track buf DIRTYBUF: BYTE 0 ; Flag set 1 if track buf dirty CLKCHK: BYTE 0 ; Number of ticks since check ; ; Command blocks and related declarations ; SEEKOP == 0X68 ; Seek operation command SEEKCMD == . ; Seek command block BYTE 2 ; Number of parameters to seek SEEKCYL: WORD 0 ; Hi byte, Lo byte of cylinder SEEKCDRV: BYTE SEEKOP ; Seek command with drive ; RECALOP == 0X50 ; Recalibrate operation command RECALCMD == . ; Recalibrate command block BYTE 0 ; Number of parameters to recal RCDRV: BYTE RECALOP ; Recal command with drive ; READCMD == 0XB0 ; Read operation command DMAREAD == 0X15 ; DMA read mode command XFERCMD == . é8C�º�è›;éç°ÿë0À.Œ.‰&.Ž8C.‹&ûè .Ž.‹&Ï„Àt€ù2ué‚.þÁt4þÉuéË.¢è¢„Àt. „Àué7é*Vè. èÆAèñ;^0ÀÃ.¡…Àu.‰&.Ž8C.‹&èñÆDgºÿÿ±0Àè”ÿº\±èðºm±èèº$±nèÖºÈTè ± èÕèsAtRSºüTè[èȺþTè[辺Uèú»¾[èOAt‰ÚèíŠ.¼[ \U<ÿtˆÅŠZUŠ6[U±è�è™è© èxë.Ž8C.‹&è`è�è A„ÀuèŸ þÀt±è_è˱èWŒØŽÐ¼ÈT»#º'1ÀŽØ‰€Œ‚‰|Œ~¡áY.£.Ç€>ãYu.ÇŽíYŽçYŒÀ…ÀuŒØŽÀŒÚ±3Í຀±Íà.ÿéoÿ.Ç .Çö„‡u±è× ²±,èÆ èk@±èÈ ±è¹ èà Š±è­ б è¤ ±:èŸ °@éT „ÀˆÈué±þÈtVþÈtXþÈtNþÈtP<t,tBþÈt<„uéöþ.Æë2ˆÐ<ýt)r-.ö u.þ.ö tèÖQRVè4è¨1^ZYÃèİÿÃVè!ö„‡u(€ú t#QRè‡1ˆËZY„Àt Z8ØtQRˆÑ² èö1ZY„Àu^éŠÿ»Z€ú s €ú uÆëþ^ëi,tOþÈtW<técÿVèÁRèÒ Z„ÀuˆÐþÀtˆÐ$¢ˆðþÀt þÈ$¢0À^„Àt*é0ÿ ðW¢ˆð<ÿuä ¼[ëá.‰ .‰ ë .‰.‰0À.¢ÃQRVè^±èn èÞ2u èM)t°@è!.Æ ^ZYÃ.¡ …Àué•.ÿ Ã.¡…Àu.Ž8C.‹&èèé¦ý.Ž.‹&¸ÿÿ.ÿÏè“?è*:‰ÆÃº±è º±éü µº'èºèèºdè º èþź±ÿþÁ)ÓsúÓ„Éu„ít€Á0QSˆÊ±èµ [YþÅñ é« èè>è�0Š„ÀtþÈtþÈt ¡é½èÌ>ReadëèÂ>Writeë è·>Not readyèª> error, Drive: ŠDAˆÁè,0Š<t?è‡>, Track: ‹\è>èt>, Sector: ‹\Sè>[‹TJ…ÒtÓSèS> - [èé=èH> (Retry, Š<t è5>Ignore, è)>Abort) èI/„Àtèe/ëôè`/Pè¾/Xè >ˆÁ ¡(Èt" ¾þÈ(È<ÿtŠ<uéÿ ²þÀ(È<téôþÊnU·SƒÃè!9‰fUXˆú$±nèÏè¥èÁ±/þÁ, sú:PˆÈ<0tè•Xè‘è¬A艠pUèƒèht鈻rUŠ„ÀtJÆèKtBèT=RƒÂ‹fUCC‡ÚŠC¢rUŠC¢sUŠC„Étµ‰hU‡ÚSËÆ[‡ÚŒØŒÝèp=Z±èN륀>sUÆsUtébÿ‹fUR± è/[CŠ„Éué\ûµC‰hUèéËÆëèx¡hU£bUèšuéû‰lU …U< uéÄ»�UŠ< u ÆCCÆMCÆD€ŠU€Æ�U “U„Àt ‘Uèûº„U±èÁ„Àt鸺„U±;è²@uéÙ‰jU èÔ»¤Uèèè"è6tè!tº¤Uè è&t ètº´UèüºÉU‹lUè"r‡ÚˆC‡Ú�úGVrîèsû‡ÚÆK�ëÈUˆÈU‡ÚèŒØ»¤U‹.jUº\¹¤èS<é  „UþÈx¢ “U„Àt  ‘UèK¢‹lUèÅsûèÖé?úº UëN „U„Àu# qU„Àt<ÿu ¼[þÀPèåþÀˆÁX8Èt¢„UéÿºUëº+UëˆÂRèÀZ8ÐtHRè¹è´Z8Ðt<ºEUÆsURè„èºUè�Zè‹èIüéÐù‹hUèGrS< s @P°^èbXè^[ëçû„U¹ŒØŒÝé�;ºbU±˜èeC‰bU…ÛËbUKtÛ oU:tÔŠ<;àoU:ùtÇŠ„ÀùtÀCè>;ÀÃC„Àu»‰hUð è° €>sUužˆÂ±ë€>sUu‘± ë²ÿ± ë±°ÿë0ÀéMøÇHDCTST,HDCAPC epare to write and seek PUSH BX PUSH DX CALL DISKFLS ; Write track buffer if dirty MOV SEEKCYL,BX ; Setup seek command block AND SEEKCDRV,=0XF8 ; Eliminate drive from block OR SEEKCDRV,DL ; Include new drive AND RCDRV,=0XF8 ; Eliminate drive for recal cmd OR RCDRV,DL ; Include new drive MOV RETRIES,=MAXRTRY ; Setup retry counter __C: LEA BX,SEEKCMD ; Issue seek command CALL SENDCMD JE STREAD ; Was seek successful ? DEC RETRIES ; No, are there more retries ? JE SEEKERR LEA BX,RECALCMD ; Yes, recalibrate disk CALL SENDCMD JMP __C ; Go reissue seek command SEEKERR: ADD SP,=6 ; Trash saved parameters XFERERûSCRAPCý3DataýÂCodeýWAITýSIGNALüTABSIZüCURSORüSLFLAGüSCREENü©CSRCHKü¶CSRENAúÿ€! øa!ú:  øiÓ¡bEñQÌí=*TYCjk^_qlm.[(olQ©ê³Ñ×ÝãéôúÒ¡• fHCABDJKmMh>kôô-'!UO‘‘ôÆhLlhãÒÒêÚK©�•B@N@R@@@@î@E@oBFB@GBP@JBÿ@ÿ@KB@!@Š@IB@@ B@@0B€@°B pB@@@@@@@@LB@@@Š!ŠŠ.ŠúVWQ»ø`èø Yè »ø`èø  ÿ_^ÃüŒØŽÀöø`uQ»`Éè fè Íè €`YÆ`€&`ï»`ìè J‹`¡`Ç` …Àu'€>`ÿu$€ù s¿`:ˆÈ¹ ò®u » )ËÛÿ—`Dè #ÃÿÐëˆ`è r»`üè è y»`è øÆ`ÿè ¤‰`è TÀ>`tþ`uÆ`ö`€€``ìè ÆÃÇ`ø`¹ÃÆø`è !»`üè °è (»`è §é ´ÿ²ë €>`uŠ` Ã0öëtþÎy ö`tÒu0ö€þPr¶OþÊy ö`t0Ò:` r:` vŠ` ö`tè ߨ u½ÃþÆ€þPr)0ö€>`u ö`@tè š¶OÃþÂ:` v ö`tŠ` ö`tè  ¨ uÂÃþÊþ` €>` rÆ` è ®R¶è ZÈð0äŠ`öñ ` (àðÿu$€ù s¿:ˆÈ¹ ò®u » )ËÛÿ—Dè#ÃÿÐëˆèt»üèè{»èúÆÿ覉èVÀ>tþuÆö€t €ï€»ìèÆÃÇ×ÃÆè!»üè°è(»è§é²ÿ²ë €>uŠÃ0öëtþÎy ötÒu0ö€þPr¶OþÊy öt0Ò: r: vŠ ötèߨ u½ÃþÆ€þPr)0ö€>u ö@tèš¶OÃþÂ: v ötŠ ötè ¨ uÂÃþÊþ €> rÆ è®R¶è ZÈð0äŠöñ (àð»è½»é·èÀÿRþÊxè°ÿéöÿZÃRè»ÿ0öþ€úrôZÃÃÃÃè/¢øˆ&ú»õé…è¢øˆ&ú»õérèêÿè�»èf鋈Ñ €ùr€é°Pöáˆñ0íÈà ±Pöᢈ&°* ±öá±Ó࢈&1À¢ˆ&  ±öá±Ó࢈&è*» èé!œúRŠ'C0ö„ätä@¨uúŠWŠîCCþÌëêZ�Ãä@¨túÃä@¨túä@Ãÿ€ ñ¿€7coê =*TYCjk^_qlm.[(ŠoÇÑïõûð¿³fHCABDJKmMh>9KE?è €&`à»`é üR0öè  ZÃRˆð0ä0öè Zø P(ðþÈ¢`#ˆ&`%è B»`è ÑÆ` »`üè Æè >»`è ½»`é ·è ÀÿRþÊxè °ÿé öÿZÃRè »ÿ0öþ€úrôZÃÃÃÃè /¢`øˆ&`ú»`õé …è  ¢`øˆ&`ú»`õé rè êÿè �»`è fé ‹ˆÑ` €ùr€é°Pöáˆñ0íÈà` ±Pöá¢`ˆ&`°*` ±öá±Óà¢`ˆ&`1À¢`ˆ&` ` ±öá±Óà¢`ˆ&`è *»` è é !œúRŠ'C0ö„ätä@¨uúŠWŠîCCþÌëêZ�Ãä@¨túÃä@¨túä@Ãþÿ sequence BEGROW: BYTE 0 ; beginning row number ENDROW: BYTE NMBROWS-1 ; ending row number TOPROW: BYTE 0 ; current top row number TMPROW: BYTE 0 ; temp row storage area CSRDLY: BYTE 0 ; cursor delayed enable counter ; SMXSPH: WORD 1 ; screen mutual exclusion semaphore WORD . WORD .-2 ; ; ANSII sequence variables ; ASCSIZ == 32 ; number of bytes to buffer ASCBP: WORD 0 ; index of next char to store ASCADR: WORD 0 ; address of cursor move rtn ASCOPT: BYTE 0 ; True if in ANSII option mode ASCBUF: RES ASCSIZ ; buffer for ANSII sequences ASCBUFE == . ; end of ANSII buffer ACSPRM == 0X05 ; cursor option parameter # ; ; ; ; ASCII control code lookup table. ; CTLTBL == . ; base of the lookup table BYTE 0X07 ; #1 BYTE 0X08 ; #2 BYTE 0X09 ; #3 BYTE 0X0A ; #4 BYTE 0X0B ; #5 BYTE 0X0C sm¯¯ähLlðøiÇ»³B@N@R@@@@î@E@oBFB@GBP@JBÿ@ÿ@KB@!@Š@IB@@ B@@0B€@°B pB@@@@@@@@LB@@@Š!ŠŠ.Šess DMA == 1<<4 ; DMA execute VS == 1<<5 ; vertical sync active HB == 1<<6 ; horizontal blank active ; ; GDC commands ; RESET == 0X00 ; reset controller SYNC == 0X0E ; SYNC format specify VSYNC == 0X6E ; vertical SYNC mode CCHAR == 0X4B ; cursor and char characteristics START == 0X6B ; start display and end idle mode BCTRL == 0X0C ; display blanking control ZOOM == 0X46 ; zoom factor control CURS == 0X49 ; cursor position specify PRAM == 0X70 ; parameter RAM load PITCH == 0X47 ; pitch specification WDAT == 0X20 ; write DATA into display memory MASK == 0X4A ; mask register load FIGS == 0X4C ; figure drawing parameters specify FIGD == 0X6C ; figure draw start RDAT == 0XA0 ; data read commands CURD == 0XE0 ; cursor address read DMAR == 0XA4 ; DMA read request DMAW == 0X24 ; DMA write request ; ; LOC Data# ; locate in data segment ; ; User defined tab size. ; NOTE: Set to desired tab size 2 through 16. ; TABSIZ::BYTE 8 ; default tab sié8C�º�è›;éç°ÿë0À.Œ.‰&.Ž8C.‹&ûè .Ž.‹&Ï„Àt€ù2ué‚.þÁt4þÉuéË.¢è¢„Àt. „Àué7é*Vè. èÆAèñ;^0ÀÃ.¡…Àu.‰&.Ž8C.‹&èñÆDgºÿÿ±0Àè”ÿº\±èðºm±èèº$±nèÖºzQè ± èÕèsAtRSº®Qè[èȺ°Qè[辺²Qèú»pXèOAt‰ÚèíŠ.nX R<ÿtˆÅŠ RŠ6 R±è�è™è© èxë.Ž8C.‹&è`è�è A„ÀuèŸ þÀt±è_è˱èWŒØŽÐ¼zQ»#º'1ÀŽØ‰€Œ‚‰|Œ~¡“V.£.Ç€>•Vu.ÇŽŸVŽ™VŒÀ…ÀuŒØŽÀŒÚ±3Í຀±Íà.ÿéoÿ.Ç .Çö„‡u±è× ²±,èÆ èk@±èÈ ±è¹ èà Š±è­ б è¤ ±:èŸ °@éT „ÀˆÈué±þÈtVþÈtXþÈtNþÈtP<t,tBþÈt<„uéöþ.Æë2ˆÐ<ýt)r-.ö u.þ.ö tèÖQRVè4è¨1^ZYÃèİÿÃVè!ö„‡u(€ú t#QRè‡1ˆËZY„Àt ÌV8ØtQRˆÑ² èö1ZY„Àu^éŠÿ»ÊV€ú s €ú uÆëþ^ëi,tOþÈtW<técÿVèÁRèÒ Z„ÀuˆÐþÀtˆÐ$¢ˆðþÀt þÈ$¢0À^„Àt*é0ÿ ¢T¢ˆð<ÿuä nXëá.‰ .‰ ë .‰.‰0À.¢ÃQRVè^±èn èÞ2u èM)t°@è!.Æ ^ZYÃ.¡ …Àué•.ÿ Ã.¡…Àu.Ž8C.‹&èèé¦ý.Ž.‹&¸ÿÿ.ÿÏè“?è*:‰ÆÃº±è º±éü µº'èºèèºdè º èþź±ÿþÁ)ÓsúÓ„Éu„ít€Á0QSˆÊ±èµ [YþÅñ é« èè>è�0Š„ÀtþÈtþÈt ¡é½èÌ>ReadëèÂ>Writeë è·>Not readyèª> error, Drive: ŠDAˆÁè,0Š<t?è‡>, Track: ‹\è>èt>, Sector: ‹\Sè>[‹TJ…ÒtÓSèS> - [èé=èH> (Retry, Š<t è5>Ignore, è)>Abort) èI/„Àtèe/ëôè`/Pè¾/Xè >ˆÁ ¡(Èt" ¾þÈ(È<ÿtŠ<uéÿ ²þÀ(È<téôþÊ R·SƒÃè!9‰RXˆú$±nèÏè¥èÁ±/þÁ, sú:PˆÈ<0tè•Xè‘è¬A艠"Rèƒèht鈻$RŠ„ÀtJÆèKtBèT=RƒÂ‹RCC‡ÚŠC¢$RŠC¢%RŠC„Étµ‰R‡ÚSËÆ[‡ÚŒØŒÝèp=Z±èN륀>%RÆ%Rtébÿ‹RR± è/[CŠ„Éué\ûµC‰RèéËÆëèx¡R£Rèšuéû‰R 7R< uéÄ»?RŠ< u ÆCCÆMCÆD€;ÀÃC„Àu»‰Rð è° €>%RužˆÂ±ë€>%Ru‘± ë²ÿ± ë±°ÿë0ÀéMøÇDS‹\UŽD]&‹&‹_SŒÀŽØè[»&RèT‰ÓÇDU&Š< uCëö‰Ú»'RSèQ[¹èÜrEt…Éu)èôr:t"<.tëG<:tK»/R¹èºr#t6…ÉuèÒru+‰Ó< u èÅr uëó‡ÚJ‡Úë»ZS»&R¹ŒØŒÅè{:[ë[»ÿÿ‰\Oð(ÈtòˆÁ»'RŠC<0ræ<:s<,0ˆÄ 5RþÀtׯ5RQ 3RˆÅÀrÀrèrÀràr< s ¢3RYƒùtë$Yë¦/?;:'"^"íþOOOPOQOROSOTOUOVOWOXOYOZúäHäHºø`°èø ‹ø`èø ‰ø`‰`‰`ÈÐ< tÀtþÈtþÈt ,t þÈt0ÀÃéø èø  Ãè Ãè uèø »ø`èø è tõ‰ø`‰`ëˆÈË`ë‰Ú ÛŠ‹`t Ét  ÿBÃ1Ò0À;`tõC¡``9Øu‹`ŠCŠ/S<€r)<•w%0äÐísÐàÑàÑàÑà`í ‰ÃŠÉt‰ÚBé D[é µÿ<^r »`³ÿ×<ÿu[é ¥ÿ»`³±:t ƒÃþÉuõëŠGˆÁè ÔöÅtˆÈè ÷<@r<_w$ˆÁ[ ÿÃPSQRèø  è ;°èø  ZY[Xéø  ¡ø`9` uäL¨t €>`tþ`À>`tþ`ÃÆ` ëäJ$täHÃÆ`(äL$/ˆÂäN¨t€Ê@¨t€Ê€äHˆÁ‹`€ù–uˆÔ€ät{ú1ÀŽÐŽÀ¼ ÿÿ.`ç‰`C¡``9Øu‹`;`tˆCˆ‰`»`Rèø   ZðÀ èt<€t"»ø`»°:tƒÃþÈuõÊOÀùAr€ùZw€Á à `2rÆ`èø èø èø èø °èø  ZY[Xéø  þÿ #RELIST ; restore listing status åûRTCNULüOriginü¬UnitýDataýVCodeýLNKPOLýDLYTICýSETDRFüRTCNITüSETDR1ü%SETDR2úúºø`éø ú!þø`uéø ðÿö„ ˆu0ÀŠLSŠTU„Àt$€ùt€ùt€ùt €ù u€úýs þø`ö` tÆ`éø ÃþÿåÃJ* ~·Âî* ~·ÂÍ@* ~2I!\ Í{* & Í{Í !\Íy* ë!&Íy * ^Í\Í * ^Í* ëÍ:I·ÊèÍ Í Í !Í ÍÞÍ¢ÍÎLoading: $͘Í­Í¢* 6ÉÍŽÍÎ Cannot SAVE, Disk Read Only.$Í¢ÉÍŽÍÎ Cannot SAVE, File Read Only.$Í¢Éå*|µáÂÅÕå:KO úo:JW> Í ÂY> Í > Í ÃQ!Í áÑÁÉ# ø~#Ã{å*(}´áÂ'å*%}´áÂ$å*"}´áÂ!å*}´áÂÉ!]Í¿>.Í ÿ ø~#þ!Ú¿Í ÿã~#þ$ÊÜÍ ÃÏãÉå*|µáÂ>Gy�þPÐG> Í x<Ãí ø~#åûSCRAPCýìDataýÿCodeýWAITýSIGNALüTABSIZüCURSORüSLFLAGüSCREENü«CSRENAüžCSRCHKúÿ€! øa ú7  øiÊø~?"è²Ãä =*TYCjk^_qlm.[mñ²ö'8>DJP[ag¯!`ÊB@N@R@@@@î@E@oBFB@GBP@JBÿ@ÿ@KB@!@Š@IB@@ B@@0B€@°B pB@@@@@@@@LB@@@ Š!ŠŠ.ŠúVWQ»ø`èø Yè »ø`èø  ÿ_^ÃüŒØŽÀöø`uQ»`‚è £è è �€`YÆ`€&`¨»`¥è ‡‹`¡`Ç` …Àu €ù s¿`7ˆÈ¹ `ø`¼ÿø`¾`€» é ®ÿÇ`ø`øõè ¥r ˆø` Ç`ø` õPè “røˆÎŠø` é 8ÿÇ`ø`!õè … rˆÈ±Òà€&ø`¿`¿À`¿À&`¿ïÀ`¿À&`¿À&`¿÷€`¿€Ã€`¿À&`¿þÃÇ`ø`nõè 8r,€&ø`þÉr#€` €ˆËÛË0ÿ�Ã`à¸`¥¹ Š“ˆ“C âôÀé r8éõÀé0rúëõÆ` è Ê1Ò‰`è v°±PöáH¢`܈&`Þ»`×è ÷Æ`º »`µè ìè d»`×è ã€&`¿à»`¼é Øè @¸ P(ðþÈ¢`܈&`Þ»`×è ÁÆ`º »`µè ¶è .»`×è ­»`¼é §Rè Ëÿ0öþ€úrôZÃÃÃÃè /¢`±ˆ&`³»`®é …è  ¢`±ˆ&`³»`®é rè êÿè �»`Áè fé ‹ˆÑ` €ùr€é°Pöáˆñ0íÈà` ±Pöá¢`Lj&`ɰ*` ±öá±Óà¢`ˈ&`Í1À¢`ψ&`Ñ ` ±öá±Óà¢`Óˆ&`Õè *»`Äè é !œúRŠ'C0ö„ätä@¨uúŠWŠîCCþÌëêZ�Ãä@¨túÃä@¨túä@Ãþÿ‰è<�D_�D]�D[�DY�DW�DU�DS�DQ�DO€¤ˆï�t€ŒˆËdaÇDOÿÿ‹De…ÀtPè',ŽD_ÿt]‹l[‹|YÿtW‹TU‹LS‹\Q‹DOö„ˆt‰Ã^ÃèÅ2Vè[-‰Æ‰\Q‰LS‰TU�DW‰|Y‰l[�D]ŒD_ÃÇDOè»1rKŠDSö„ˆu»T<+ë%<€s»ˆS<ûŠT¶þÊè3þ„Òu÷èTs(èñúŠ<åtè~èštèþâöëãŠG<ærÜÆGåèûëÓèe0ÀÃèèÀúÆGåèðú°ÿùÃè²úŠ<åt?‰Ú�”š¹ ŒØŒÝè§‹\oSèós*è�úŠ<åuò‰Ú�œš¹ ŒØŒÝè…è®ú[‰\oèpúÆåC0ÀÃ[°ÿùÃèAŠ„Àu:Sÿtoè©èQú‰å‡^‰\o[ZŠ<åuƒÃ ŠƒÃŠþÀuþÈöÁ€u°‡Úˆ‡ÚÃ0ÀÊD'èÈ ˆÂ¶»jTÓÊD'è#hTˆøØt°ÿùÃà 0À&ö€töÐÃèur„Àuõèt ÿDoèØùC0ÀþÀˆÂÃCþˆÐ<t$uÃIˆèÈuùËLI°ÑéþÈuúAÃ0ÀˆDoˆDpÃè"ÿDo‹\o)ÓË\Kº¹ðB)Ësûè‡Ú)Ó‡ÚÊ\·è,ÛþÈuú‡ÚÃS�”š»Ó‰Ú[¹ËRŒØŒÝè[[¹ÊC¶èXtŠ7CIˆðÐÃèüèÉ&Š$¦TtÑèÑèÑèÑè)Ár(‰WÂëS‰ÃèÖZ‡Ú„Àu‰W€O €QR‰ÚèÔ[ZYâ“ÃèFY ©T(Èu»¨TŠþÈxþˆé5ÿ¢©TÃöD&uèÙèëè_÷Ó!²TŠ´TˆÍöÕŠD( ȈD0ŠD( èˆD(賄ÀtþÀuvè�uðè鮊D0„Àu/öD/@u)‹\(SŠ´T¶þÂ0À)Ó‰\(rè{[‰\(„Àt è{ŠþÈy5‹ªT»ªT9Ót ‰T1èAè2ëL‹°T‰\1èUŠþÈy‹\1‹W»®T9Ó‰Óuåètéwÿèè-ö@tèœè‚�tèktéÏè!èÍëèlèmtÆDèÄÀt鱋\1‹G‹_Št0²ÑêÓöD&t‰\+‰D-ë‹T+‹l-öD&t‡Ú•¹€èVöD&t躀@KŠD0þÀ:rˆŠD( D0ˆD(éŠèªè�ˆCŠD(ˆCŠD)ˆCŠD*ˆC ´TþÀöD/€tŠD0ˆC€'ŸÃè:ŠDU$¢¨TŠDV<s°¢©Té�ý ¨TŠ&©T‰DQÊDUè„ÀtÊDUèoˆÁŠlVë¹ÿð€ùÿt è Ó‰²T€åþ»®T€ùÿt Sèï…Ó[uéÁ‹»®T9Ótr‰Ó‰\1€ùÿt:Ou×öÅ€uèêö uPèçŠþÈxGè»u¹èÔö@t2Qè%tèuYè¦ë è¦è¸€@€ Y€ÍöÅ@tQègYöÅ u�ëè€téwÿ‹\1étÿ€ùÿtAöÅ€t<öÅtˆè$`<`u/Qµ»¸TËË‹…ÒtSQˆÈèY[öD€uÇ»jTËÆèöY»®T‹»®T9Ót » Ó€'߉ÓëëöÅtöÅuéÏä˲TˆÈéŸQèYöÅ€t QèÎY0ÀþÈû®T‹»®T0À9Ót‰ÓSè [„Àtê‰\1ÃÊd'èîˆD'V¹ŠD':°uFCâó0À^ˆd'uŠD0:r °uöD/€t°ÿÃÆDèm„ÀÀ'¿è–ŠèX蓊„ÀtJ´‰D$ ¨T:DsÆèuŠºÿÿè û„ÀtæþÀuíé%è_¹VŠCˆDFâ÷^‹\1‹G‰D"‹G‰D 0ÀþÈÃè/èééã‹\1èx»ÓÆÿ»ªTé{‹\1èd»®Téoè è#„ÀÃèè„Àuöúë ºëº ëº ‹\1ÓÊD'é"‹®Tº®T9ÓûçT¹QS»èTËËˉ¶T´ºèT‹¶T¹‡ÚЇÚ:uBCâòëBâýþÄëâ[ˆ'KYþÉyÅË\U‰ò¹‹D]ŒÝè"ö„ˆ€t6‹TèÊŠDˆD莈DO„Àt.Š<u(‹\UƒÃŽD]‹T&‰‰Ó‹T ‹l 顊<s<sÆDOÿÈDÆDŠD,r uéþþÈué;ËL$IŠDþÈxÑéëøA‰L‹\$è ‰\‹TŠDŠdþÌxÐèÑÚëö‹\´öÇ€uÑãþÄëõ‡Ú¹ÿÿA)ÓsûþÈy÷ÓIAþÌx ÑêÑá)ÓsóÓëð‰Ú‹\Ë‹L ‹D"‰D ‰L ‰\‰T‡Ú‹Lˇڋ\)Ós,Sˉ\èQè Z„ÀuH‹\ ‹LÙ÷Ú‰Ó‰\è7º‹\C뻊Dˆ‹\‹T0À)ÓsŒØŽÀèo„ÀtŠDºÿÿèöøþÈtþÀtäÃè<ŠDþÈxÑãëø‰\ÊD$ÀˆÂ¶»¸TÓ‹…Òu%SÆè*„ÀuŠDºÿÿè±ø„Àtì<ÿuïé¨á[‹T‰‰Tè91ÀÃÆŠT€â¶»èTÓÓÓ0Àö€uŠˆDÿgÃRS$ˆÂ¶»ØTÓŠ[ZÃ�\‡ÚŒÝŒØ¹ é<‰Ó0À€?s‹WŠ·ÛèAÿ—Uñ ë#±ë±ë±ë±è�Kú‰BUÃJ‰DUñëm±!ë±"Q±èaˆÂ±0ÀèÑþÈxÑãëø‰Ú»0À‹BU…ÉtÓsþÀâø‹DUÓsþÀ‰gU¢iUºFUR±èZY„Àuèà ÿÃB‰Óñ3ë »¸Xñë±°ÿé»ÐÇDS‹D]‹\UŒÝºlU¹ ènÆŒUÿtjÇDjVÿtlŒ\lèOtéX»�V¹0ÆCâúèr»VŠ„Àué|‹W‹G Àt‰Â‹G Àt‰Â…Òt]‹GS£ÀV‰ÂVºÀV±5…ÀtþÁè¹ß[„ÀtéÊ¡ÂV‹W…Òu‹W9Ðs鳊Sèæ¡ÀV‰G¡ÂV²¹ÑàÐÒâúH=ÿÿuþʉˆW[ƒÃ é{ÿèç¡™V…ÀuÆ•V¡�VŠ’V£–Vˆ˜V¡“V£™VÇDj�UÇjUV»VŠ„Àt7‹Oã-Sè~‹o�>jUVuèúãŒØ‹jUºQ¹è\‰jUEYâÛ[ƒÃ ëÌػ�V‹.™Vº¹0è<¡™Vë?èH»�V¹‹G…Àt'Q£ÀV‹ŠW@…Àuþ¹ÐêÑØâú£ÂVÆÄVSè[YƒÃâ͸ÿÿ‰DO=ÿÿta€>ÆV1rZ¡�V…ÀtS£�UÆ�UºlU±!è…Þ„Àu?èÂu:¹ »�UŠ„Àt.SP躋WXÐèÐèÐèÐèè«‹G[GŽÀSŠ_·&[ƒÃâÎëÁºlU±è:Þ�Dl�Djƒ|Oÿuè«è¨ÃQƒùrTÿtjÿtlŠ„ŠPÇDj‰llQ�áøÿÍXU±ÓèHP$ˆ„ŠX±Óè@‰ÁQè1ЄЯ„Š@±ÓàDlYâè]Xˆ„Š�Dl�DjUè ÇjU�U]Y�áúlU±è´Ý„ÀÃþÈ$´À»�VÃÃÃúÀV±9é—Ý £Tˆ„‰èé ÆVˆDOŒ\_Ë\UŽD]&‹R&ŠGèˆÆ&ŠGèˆÂ[�ÃÎ*µ± éeÝPÐÈÐÈÐÈÐÈ$ˆÅX$þÅþÍt ëøÃè ˆDOÃè&ˆGñ è6Ý�ëÎ*‰Ø‹\UŽD]&‰ˆðè&ˆGˆÐè&ˆGˆè±ÿþÁ, sú ÐáÐáÐáÐáÈËDU=ÿÿt£ÇVáÇV‰DOÀ¤ˆ¿ÃÆDS0Àö„ˆ€t €ˆDTÇDU¬ÇDQË\Q‹Lj‹TUŽDlè1‰TU‰LS‰\Q‰DOÃèê< s< t < t< t<uPèXˆDOÊDUˆÁ< s(< t < u$ÆÊVë ÊV$ø*ÊVˆÁµQ± èYâ÷ÃþÊVéè’ˆDOÊLUéôŠDUˆÁþÀtþÀtþÀtéàèlë èg„ÀtèeˆDOË\UŽD]&ŠC:ËVt Sè‚ÿ[ëíË\UŽD]éiè6ˆDOË\UƒûÿtˆËVàËVˆDOË\UŽD]&‹O&‹ã&ŠCIQSè@ÿ[Yëðòé‚è :ÌVtÃè&ëñèéÿ„Àuèóté²ë`èÖÿ„Àt:ÌVtÃèëÿŠÔV„Étè:èÝÿ:ÍVt!:ÎVt:ÐVt:ÏVuÚ€´‡ö„‡ué;Ãé«Ûö„‡tQèúY²ë²ë² ŠDg„ÀtþÈ´»ÑVÃÃÊ/ÿgËÜVþuFCÿtjÿtl‰\jŒ\lŠTnŠ´ŠR ÞVˆDnÆ„Š‹ÚV±èäÚZˆTnˆ´Š�Dl�Dj‹ÜVÆ€„ÀtÆG°�*´Ê< t¤<uèÓètè‰ÜV‹ÖVè ‰ÚVèÕ° ÃèŒ ƒÂËDU…ÀuéŠDn¢ÞVèÕuW‹ÚV…Òt èW‹ÜVèPèÏ»…èPu:‰ÜVÆ»%èAu+‰ÚV‰ÚŒÝ‹\U‹D]¹ è† ‹ÚVÆG ÆG ‰Ú±è&Ú„Àtèè�ÔÆDOÿÃê»ÖVé èzƒÃ„ÀÃè#è`tè‹ÖVSƒÃè1[èéæÿÃèÞ ‰ÓéÜ‹ÚV…Ûtèè ‹ÜV…Ût4èë/ƒëé»SŠDnP ÞVˆDn‰Ú±è¬ÙXˆDn[ËÚV…ÛËÖVºÖV)ÚÃÇÚVÇÜVÃ&Š/C&ÆSC0ÀP脈Á<t<< s<t4< t5<t<<t8XP8ès&ˆCXþÀPˆÈ< s@ˆÁQ±^èVYë±èNë»èë¶è°üX[&ˆÃèuûë¤ZX„ÀtPèK&Š< sèXþÈPRÃSQRè  ZY[ÃSQè;ýY[ÃSQè�ýY[Ë\UŽD]&‹O&‹ãIQ&ŠCSè…[YëðË\UŠDTˆÁ ø ØþÀtLQSè�[YˆøþÀt þÈ<sˆDhˆØ<ÿt#€Œ‡@þÈt €¤‡¿þÀu ŠDh<r ÆDhëÆDhÿˆÈþÁt$ˆ„‚Ê|h³ö„‡@uˆøþÀuþÃþÉ\QŠ„‚ˆDOÊLU àV„Àt8Èt'€Œ‡€ö„‡@uŠDhþÀtþÈtè^uµë2éléÖüÃö„‡€t#€¤‡ö„‡@uŠDhþÀtþÈt è0uµëéqÊDhþÈè ¡:S!ØuˆêŠDhëÃè u „ÀtŠ/ÿgÃþÈ´»ñVÃÃÊþÀtö€Ãö„‡ téáQ»�èY„Àt鉜…Æ€ö„‡@ué¼Q»!èåY„Àté㉜ƒQ»\W¹þ€?:rÆ0Kâóë닜ƒSŠ„‚þÀˆC‰Ú»RW¹ŒØŒÝè„ [ÆG ŠDh„Àt@ˆG‰ÚRÿtjÿtl‹„…@‰DjŒ\lÿtzÿt|ÿt~ŠLnQ ˆDn±èúÖYˆLn�D~�D|�Dz�Dl�Dj[þÀtévÿÆG ‰ÚŠLnQ ˆDn±èÊÖYˆLnY„Àu3€Œ‡ ‹œ…°�*´È)Ãþu3ö„‡@to蔄Àt%±èà€¤‡ßëèè'è6þÀuéãÖ€¤‡¿ÆDhÃö„‡ t€¤‡ßö„‡@u è,²ÿè-ë èJŠLhè™èØéçö„‡@uö„‡ tè²ëÃè®uÃÿtjÿtl‹„…@‰DjŒ\lŠthþα èÖ�Dl�DjÃè†tO°€(Ðt´‰Á¶ÓCÆâúÿtjÿtl‹„…@‰DjŒ\lŠLnЬŠQÆ„Š ˆDn‹”ƒ±èÄÕYˆLnˆ¬Š�Dl�DjÃQŠLnQ ˆDn‹”ƒ±è¡ÕYˆLnY„ÀuþÉxˆÏŠ€Ë€‹”ƒ±é�ÕËœ…²€*tƀËœƒ…Ût èeÇ„ƒÃ‹œ……Ût èSÇ„…ÃèjèúèbSpooler error (Ignore, Abort) èkù„Àtè‡ùëôè‚ùPèàùXèBˆÁ œ:þÈ(È<ÿt  ”:þÀ(È<të¥ÃèE²èpˆDOÃè9²èdˆDOÃè-²éXè%²éPè²èHˆDOÃè²é<è ²è4ˆDOÊLUŠlV€åËDQ£bW‹DU£eWŠDT¢dWábW‰DQ¡eW‰DU dWˆDT hWˆDSûdWþŠ<bW€tÿbWËTU…Òt ‹\Qè&ˆDOñè8Ôè*P€½W@ŒØŽÐ¼¼W»lWèú[èé SR»[èuZY„Àu5QS¹[ÆCâú[ ¼WˆGNþ¼WY‰OD‰—Y�‡Y‰GFŒ_H�W3R»lWè¨[0ÀËTQ‹\USƒÃèÅ[郋\Uè‰\QÃèq‹_è ‰ÓûxWé¨PVèÿö½W@uè�‰ÆöD7@u ÇDLlWèbëè%^XÏ€d7öD7@t€L7€€L7@ÃèöD7€u€d7¿Ã€½W€Ãö½W€uÀ&½W»lWëúþxû0ÀÃþ°ÿë‹\U…Ûtå‰\8»rWú‰\L€½W@û‰D:‰\<‰L>‰T@‰lB‰|D‰dFŒTHŒDJŒØŽÐ¼¼W€&½Wßèt‹xW�ûxWt ÿ7�GÿÐ[ëðö½W u#èωƻlW誋\LúŠþÈxˆ»lWè�û€½W  lW„Àt¸è¥‰ÆŽDJŽTH‹dF‹|D‹lB‹T@‹L>‹\<‹D:€&½W¿ÃÿhWÿjWÃú‹jWÇjWû…Òt0‹tW�ûtWt&)Wt r‹ëïÇGRÿ7èA»tWèL»rWè[ZëÔÃè„Àt»lWè°ÿÜúþCCè%�ÜúŠþ„À°y‹_è°ÿ�Ãè[ánW-3ÀO@ø@\±Óèè6£ÆW¡¹X¾Wƒ>ÀWt 9ÀWs¡ÀWŒÙ÷ÙÁ�ér)È+¹XèuH£ÈWû¹X)G‹ŒÙ)ȱÓàË\Uè‰\QˆDOÉÊWº)Ós‰ÊWÇÎWÿÿÇÌW»ÂW‹�ûÂWt‹Wþ¡ÊW@@)Ât/rê9ÎWrä‰ÎW‰ÌWëÚ‹ÌW…Ût¡ÎW=r ‰GþËÊWBBë$è'‰Ó0ÀËÈW‹ÊWBB)Ó°ÿr;ÆWr ‰ÈWCC‰Wþ0ÀË\U‰ÌW‹Wþ‹ÂW�ûÂWt5¡ÌWÐ9Øt‹GþØ;ÌWt‹ëâWþRèÍZ‹ÌW‰WþëÍR迉ÓZWþ뺋ÌW»ÂW辋ÂW�ûÂWt‰ØHH;ÈWt‹ëì‹GþÈWè‹ëÜ0Àýè"„ÀuVýè„Àuaýè3tBýè*tOÃÇDSèø„Àt‡ÚþÀt¡ÎW)GÆ(X‡Ú°ÿÃÆDOÿÃÇDSèÑþÀtÆDOÿËG‡Ú+G‰‹G‡Ú)GëA‹O‡Ú‹‡Ú+‰G‰Óÿ7ÿw‹G‰)Á‰OS ÓWPÆÓW‰Ú»ÔWèX¢ÓW[�G�‰Ú»üWèé/ÇDS‹TU±ÓêT]»üW¹‹G…Àt ;r9Âr ƒÃâêÆDOÿàÓWPŠG¢ÓWèì€>(Xÿu(»üW¹‹G…Àt ÓW:Gs SQèLY[ÇGƒÃâàëXþÓWèorK‹O‰GŠG¢ÓW‰Óÿ7ÿw‹G‰)Á‰OS‰Ú»üWè^[�G�èë ÓWPÆÓW‰Ú»ÔWèBX¢ÓWÃÆDOÿX¢ÓWûüWè$»ÔWèÆÓWЏXµº¹XRQ»ÔWèYZƒÂâñù(ÆCâúÃÇÐW¹ƒt/ ÓW:Gu2‹G‡Ú;t‹G‡Ú;u‡Úè)ËG‡ÚGáÐW…Àu‰ÐWƒÃ⻋ÐW…Ût ÓWˆG‡Ú‹‹O‡Ú‰‰OÃUè½]»ÔWº$XÆÒW¹…íu‹‡Ú‰‡Úèwr0÷ØG‡Ú+G‡Ús/€>ÒWÿt÷Ø€>ÒWÆÒWu;ÎWs£ÎW‰ÌWƒÃ⺠ÒW‹ÌWÃt€>ÒWÿÆÒWÿuÞëÖÇÎW°ÿûüWº$X¹ ÓW:Gsè rtƒÃâìùËG…Àùt‡Ú‹‡Ú+rP‹G‡Ú++G‡ÚXr9ÀøÃè éêè‡Ú•éá‹\U‹D]º$XŒÝ¹ÃþÓWÃþÓWÃ0ÀÃ0À�û*XùŠCþÀtþÈy$8àu ;uˆÈöØÃCCâà°ÿÃQ±ÓãYôº'èºèèºdè º èþĺ±ÿþÁ)ÓsúÓ„Éu„ät €Á0PSèÅñ[XþÄË‹G‡Ú‰G“‰Ë_‹‰“‹O‰W‡Ú‰‰OÃ[èÿã.ŠC„ÉtSèŠñ[ëñþX2rƾXèëõèÝ÷è¯è¡°èšÿZY[Xé­öäHäHºF°è*ÿ‹ÀXè¥ø‰ÂX‰ÄX‰ÆXÈÐ< tÀtþÈtþÈt ,t þÈt0ÀÃé è$ý ÃèÃèuèM»ÈXèµöè tõ‰ÆXˆÈËÆX0À;ÄXtC¡ÂXÀX9Øu‹ÂXŠ ÿÃPSQRè#ýè;°èûþZY[Xéö¡ÄX9ÆXuäL¨t €>ÏXtþÏXÀ>ÐXtþÐXÃÆÐXëäJ$täHÃÆÏX(äL$/ˆÂäN¨t€Ê@¨t€Ê€äHè�<^r »sX×<ÿuûsY±:t ƒÃþÉuõëŠGˆÁè0öÂtQ±èzYöÂtˆÈèG<@r<_w$ˆÁè`öÂt± èVðÀ Ðt<€t"»{Y°:tƒÃþÈuõÊOÀùAr€ùZw€Á ëZu.€ù s)Q±~è#Yé¿æYˆÈ¹ ò®u » )ËÛÿ—ðYè#ÃÿÐ눭Zèt»¨Zèè{»¯ZèúÆ«Z覉²YèVÀ>ºYtþºYuƺYö¯Y€t €›Z€»˜ZèÆÃÇ´Y%IÃÆ­Zè!»¨Zè°è(»¯Zè§é²ÿ²ë €>°YuбYÃ0öëtþÎy ö¯YtÒu0ö€þPr¶OþÊy ö¯Yt0Ò:¶Yr:·YvŠ·Yö¯Ytèߨ u½ÃþÆ€þPr)0ö€>°Yu ö¯Y@tèš¶OÃþÂ:·Yv ö¯YtжYö¯Ytè ¨ uÂÃþÊþ¸Y€>¸YrƸYè®R¶è ZÈð0䊬Yöñ ¬Y(àð»ÊZè½»¯Zé·èÀÿRþÊxè°ÿéöÿZÃRè»ÿ0öþ€úrôZÃÃÃÃè/¢¤Zˆ&¦Z»¡Zé…袤Zˆ&¦Z»¡Zérèêÿè�»´Zèf鋈ѸY€ùr€é°Pöáˆñ0íÈà¸Y±PöᢺZˆ&¼Z°*¸Y±öá±ÓࢾZˆ&ÀZ1À¢ÂZˆ&ÄZ ¸Y±öá±Óà¢ÆZˆ&ÈZè*»·Zèé!œúRŠ'C0ö„ätä@¨uúŠWŠîCCþÌëêZ�Ãä@¨túÃä@¨túä@ÃäPþÀt»ìZ [þÈöбÒà ˆCÆ&¹èûàZè7ïè P»àZè2ðXÊ€ûr0ÀÃ0ÿÛÿ§[è^„ÀuÃÆ[µ èÔ ÿZtµJèÊ ÿZœ �t þ[x?è†ë݈„Àu üZ<w°èŠëÉRè‘Z¨t€Ê»[8—t‹…Ûuôë ƒÃ‰\ ÿÃ0ÀÃèñ„ÀuöÐÃöDÿuè4è@»ôZöD€t€CŠD$ˆCŠDˆCŠD$ˆÆ[‹D P± ÓèˆÂX±ÓàD €Òæˆàæ‹DæˆàæˆÐæ:°æ°æ ¹ öD€t€Í@è èM ùZ$Àtþ[z± ÿÃÆ[²ëÆ[²è „ÀtÃÆ[²è1öt€Ê@öt€Ê€ˆ[ŠD¢ [‹D £ [ŠD¢ [Š\€ãˆðZ0ÿЇ[¢òZÆóZ€„ÛtÆóZÿÆ[Æ[èï„ÀuöÐÃèGŠ [èÂt0öÓŠþŠtè¼ötÐî»ìZ€'ÆîZ8Ös (ò€ÆîZˆïZˆ6ñZÆ[èbŠ.[± è(èj ùZ$Àt%öùZuöûZt þ[xèÇéÿ±èåþ[zÅ ùZ[è@tèM [þ [þ [téTÿ [$Àt ÿËD P± ÓèˆÂX±Óà [€Òæˆàæèèþu‹DHæˆàæˆÐæ: [æ°æ ÊD<säPþÀt è èe¨ t ÿÃ0ÀÊT€â ìZ$8ÐtˆÃ0ÿ íZˆ‡[ˆÓЇ[¢íZˆìZˆôZ€&ìZû€&ôZûùè:è|0À¢íZÊD:íZt ¢íZ¹èèaùèè? ùZñè èK ùZ$ÀÃäP¨uúœú»ìZˆè$< u»ôZäP¨€tú¨@u ˆèæRŠ/CþÉuë�Üú»ùZäP¨€tú¨@täRˆCëï�ú×Pèrë»æZéÔë‹\‹Ÿ …ÛË\�à ÃQŠL¸€ÓàYÜú° æ(ä(�¨tèr »×PèÐñ»æZèšìÃäP¨u¹ècÿè�ÿ ùZ$À<Àùt°æ 0ÀÃTurboDOS 1.40, Copyright 1984, Software 2000, Inc. $($/$)$ <-- $Invalid command$Command not found$Program load unsuccessful$Non-privileged user$ÿRR6R�\}ÿÿÿCOLDSTRTAUTWARMSTRTAUT€€S€S„S„Së2*3J3‚3‰3…7�3*X*X¶3Ð3Ù3?2L&R&â`ÂÓ~üub­*X[&b&*X*X”*Xi& Q‹�*XQ*X*Xˆ&”&– ¶&½&=?H?S?\?ý?Æ@’/I2Œ2*XØ2à3ô3ê622ˆ;�<+>Ã>ÿ;<Ê&Ñ&(;;;œñ2$'Ø&Þ;5L ã á!=ä,*.**X9*7º7Â�9*XÖ:â:î:ö:þ: ;;3¹ÿÿÿÿÿÿÿÿDIRDSK¸ªTªT®T®TQMQMÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�.ö.ú.þ./þ.ú. //////#/w/z/~/‚/†/Š/$ DSK1$  EÖVÖV*Xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-PRINT-?000€nWnWtWtWxWxW`ÂWÂW C2NEC-APCC3 SINGLE USERC6 (10/05/84)C5$@À?@ÊXÊX(-ÿÿÿÿÿÿÿÿÿÿ*+ÿ-./0123456789ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿ-=@`:;;'1!2#3@4$5%6Ð7&8*9(0)-_=+`~[{]}\|,<.>/?;:'"^íþÿ€½Y½Y ?HmH IÎH…H±H]H½K8HYH=*TYCjk^_qlm.[(ØJ½KLVLK=KCKIKOKUK`KfKlK>I KKfHCABDJKmMh>`J`J‡J™J“J�JÁJ»JýIýI`J2JhLl>JOJOJVLFL·KL LLB@N@R@@@@î@E@oBFB@GBP@JBÿ@ÿ@KB@!@Š@IB@@ B@@0B€@°B pB@@@@@@@@LB@@@Š!ŠŠ.ŠâZâZèZèZå5qNzNuMÖOâM/[hM5@[� P?5Q[È (5b[4M 5s[ÈP;5„[È(5•[4M¦[šM·[ €È[ @Ù[î4M\ óMê[         #&),/2!$'*-03"%(+.1 #TITLE "NEC-APC Smart Screen Driver Interface" #SUBTTL "For the TurboDOS operating system" #PAGE 132,66 ; ; SCRAPC.A ; ; Version date: 8/18/84 ; ; Edit History: ; 7/12/84 jl - Module Created. ; 8/18/84 jl - Added cursor delayed enable feature ; MODULE "SCRAPC" ; module ID ; #INCLUDE "DREQUATE" ; common driver equivalences #INCLUDE "APCEQU" ; common NEC-APC equivalences ; PEEKNG == 00 ; if desperation debugging SCRTST == 00 ; if screen test version ; ; Some screen parameters ; NMBROWS == 26 ; number of user rows NMBCOLS == 80 ; number of user columns STATROW == 25 ; status row CSRCNT == 2 ; delay in ticks for cursor displaying ; DEFATTR == 0X80 ; green with no special attr ALTFONT == 0X89 ; alternate character set ATTROFF == 0X1000 ; attribute memory offset constant ; A0 == 0X30 ; constant 0 A1 == 0X31 ; constant 1 A9 == 0X39 ; constant 9 ASC == 0X3B ; constant ; ; ; GDC status register definition ; DR == 1<<0 ; data ready in FIFO FF == 1<<1 ; FIFO full FE == 1<<2 ; FIFO empty DW == 1<<3 ; drawing in progress DMA == 1<<4 ; DMA execute VS == 1<<5 ; vertical sync active HB == 1<<6 ; horizontal blank active ; ; GDC commands ; RESET == 0X00 ; reset controller SYNC == 0X0E ; SYNC format specify VSYNC == 0X6E ; vertical SYNC mode CCHAR == 0X4B ; cursor and char characteristics START == 0X6B ; start display and end idle mode BCTRL == 0X0C ; display blanking control ZOOM == 0X46 ; zoom factor control CURS == 0X49 ; cursor position specify PRAM == 0X70 ; parameter RAM load PITCH == 0X47 ; pitch specification WDAT == 0X20 ; write DATA into display memory MASK == 0X4A ; mask register load FIGS == 0X4C ; figure drawing parameters specify FIGD == 0X6C ; figure draw start RDAT == 0XA0 ; data read commands CURD ==TAT == 0X92 ; Controller status register ; ; ; ; Function branching table. ; FCNTBL: WORD READ ; function=0, disk read WORD WRITE ; function=1, disk write WORD RETDST ; function=2, return specifications WORD RETRDY ; function=3, return ready WORD FMTTRK ; function=4, format track NMBFCN == (.-FCNTBL)/2 ; number of supported functions ; ; INMSG: BYTE "Into drvr",13,10,0 OUTMSG: BYTE "Out of drvr",13,10,0 LOC Code# ; locate in code segment PRINT: PUSH AX PUSH CX PUSH DX __1: MOV CL,[BX] OR CL,CL JZ __2 PUSH BX CALL SCREEN# POP BX INC BX JMP __1 __2: POP DX POP CX POP AX RET ; ; Driver initialization. ; This entry point is called once at system cold boot time and may ; be used to perform any neccessary device initialization. ; #IF DEBUG DSKINX:: #ELSE DSKIN_:: #ENDIF XOR AL,AL ; Reset hard disk OUT RESET,AL OUT FMTREG,AL MOV AL,=0X80 ; Perform black magic OUT FMTREG,AL XOR AL,AL OUT FMTREG,AL OUT DMACMD,AL ; Clear out DMA command reg MOV AL,=0X0E ; Clear out DMA mask reg OUT DMAMK,AL XOR AL,AL ; Clear out interrupt mask OUT DMAIMK,AL LEA BX,RECALCMD ; Issue recalibrate command CALL SENDCMD ; RET ; end of initialization ; ; ; Driver entry point. ; #IF DEBUG DSKDRX:: #ELSE DSKDR_:: #ENDIF MOV BX,&DMXSPH ; get mutual exclusion semaphore CALL WAIT# ; dispatch if necessary CALL __E ; call the disk driver PUSH AX ; save results MOV BX,&DMXSPH ; get mutual exclusion semaphore CALL SIGNAL# ; signal process as ready POP AX ; restore results RET ; done ; __E: MOV BL,PDRFCN[SI] ; get PD request function number CMP BL,=NMBFCN ; check max function number JB __C ; if valid, continue XOR AL,AL ; set error status RET ; and exit ; __C: XOR BH,BH ; make double word ADD BX,BX ; times 2 for table lookup JMPI FCNTBL[BX] ; off to the driver function ; ; ; Function=2, Return disk specifications. ; RETDST: LEA AX,DSTTBL ; Get address of descriptor MOV PDRDST[SI],AX JMP RETRDY ; Return ready status ; ; Branch here if device read errors or format cannot be found ; FMTERR: XOR AL,AL ; force error status RET ; and exit ; ; ; Function=4, format a track ; FMTTRK: OR AL,=0XFF ; force result error RET ; and exit unsupported routine ; ; ; Function=0, read disk ; READ: MOV WRFLAG,=00 ; Clear write flag JMPS RWCOM ; and join common code ; ; ; Function=1, write disk ; WRITE: MOV WRFLAG,=01 ; Set write flag ; ; Common routines to both reading and writing. ; RWCOM: LEA BX,INMSG CALL PRINT MOV CL,=06 ; Multiply track by 64 for MOV AX,PDRTRK[SI] ; ...virtual sector # SHL AX,CL ADD AX,PDRSEC[SI] MOV CX,=52 ; Calculate actual track/sector XOR DX,DX DIV CX ; AX := Track, DX := Sector SUB CX,DX ; CX := Sectors left in track LEA BX,LOCPDR ; Get address of local PDR MOV PDRTRK[BX],AX ; Save actual track number MOV PDRSEC[BX],DX ; Save actual sector number MOV AX,PDRSC[SI] ; Get sector transfer count CMP CX,AX ; Does I/O go off track ? JG __1 MOV AX,CX ; Yes, use actual count __1: MOV PDRSC[BX],AX ; Save new sector count MOV CL,=07 ; Calculate byte count as SHL AX,CL ; ... sector count * 128 MOV PDRTC[BX],AX ; Save new byte count MOV AL,PDRDRV[SI] ; Move drive number across MOV PDRDRV[BX],AL MOV AX,PDRDMA[SI] ; Move DMA start address across MOV PDRDMA[BX],AX MOV AX,PDRBAS[SI] ; Move DMA segment across MOV PDRBAS[BX],AX PUSH SI ; Save address of real PDR MOV SI,BX ; Pass in fako PDR CALL __COMN ; Perform actual I/O OR AL,AL ; Was I/O operation good ? JNZ __99 POP BX ; Yes, see about more I/O MOV AX,PDRTC[SI] ; Get old transfer count MOV CX,AX SUB AX,PDRTC[BX] ; Is there anything left ? JZ __98 ADD PDRDMA[SI],CX ; Yes, move buffer pointer up INC WORD PDRTRK[SI] ; Move to next track MOV WORD PDRSEC[SI],=0000 ; Move to first sector NEG AX ; Get number of bytes left MOV PDRTC[SI],AX ; Save new number of bytes MOV CL,=07 ; Calculate number of sectors SHR AL,CL MOV PDRSC[SI],AX ; Save new number of sectors PUSH BX ; Save original PDR again CALL __COMN __99: POP BX ; Restore original PDR __98: MOV SI,BX LEA BX,OUTMSG CALL PRINT RET __COMN: MOV DRVRBUSY,=01 ; Do not let clock in MOV DL,PDRDRV[SI] ; Get new drive number MOV AX,PDRTRK[SI] ; Get new track number MOV DH,AL ; New head is bits 0:2 AND DH,=07 MOV BX,AX ; New cylinder is bits 3:15 SHR BX,=1 SHR BX,=1 SHR BX,=1 XCHG BH,BL ; NEC wants hi byte, low byte CMP DL,CURDRIVE ; Are we accessing buffered trk? JNE __FLUSH CMP BX,CURCYLDR JE LOOPIO __FLUSH:PUSH AX ; No, prepare to write and seek PUSH BX PUSH DX CALL DISKFLS ; Write track buffer if dirty MOV SEEKCYL,BX ; Setup seek command block AND SEEKCDRV,=0XF8 ; Eliminate drive from block OR SEEKCDRV,DL ; Include new drive AND RCDRV,=0XF8 ; Eliminate drive for recal cmd OR RCDRV,DL ; Include new drive MOV RETRIES,=MAXRTRY ; Setup retry counter __C: LEA BX,SEEKCMD ; Issue seek command CALL SENDCMD JE STREAD ; Was seek successful ? DEC RETRIES ; No, are there more retries ? JE SEEKERR LEA BX,RECALCMD ; Yes, recalibrate disk CALL SENDCMD JMP __C ; Go reissue seek command SEEKERR: ADD SP,=6 ; Trash saved parameters XFERERR: MOV AL,=0XFF ; Return bad result RET STREAD: POP DX ; Restore saved parameters POP BX POP AX LOOPIO: MOV XPHEAD,DH ; Setup parameters for xfer cmd MOV XLHEAD,DH OR BL,=0XFE ; Set unused bits in cylinder MOV XCYL,BX MOV XCDRV,DL ; Set drive, but mash command TEST WRFLAG,=01 ; Is it a write command ? JZ 0XE0 ; cursor address read DMAR == 0XA4 ; DMA read request DMAW == 0X24 ; DMA write request ; ; LOC Data# ; locate in data segment ; ; User defined tab size. ; NOTE: Set to desired tab size 2 through 16. ; TABSIZ::BYTE 8 ; default tab size ; ; User defined start up cursor mode. ; NOTE: 0 = non-displayed, 1&2 = blinking block, 3&4= blinking underline. ; CURSOR::BYTE 2 ; default cursor mode ; ; User defined status line enable. ; NOTE: Set to 0XFF for enable and 0 for disable. ; SLFLAG::BYTE 0XFF ; default status line enable ; FLAGS: BYTE CSRFL ; driver flag byte (def follows) INIT == 1<<0 ; initialization flag WRPFL == 1<<1 ; write protected flag ANSFL == 1<<2 ; ANSII mode flag ULRFL == 1<<6 ; user line load (reverse) flag CSRFL == 1<<7 ; cursor display flag ; CURSCR: BYTE 1 ; current screen number SAVSCR: BYTE 0 ; save screen variable ROWCOL: WORD 0 ; current row/column (low/high) NXTSEQ: WORD 0 ; next routine in escape sequence BEGROW: BYTE 0 ; beginning row number ENDROW: BYTE NMBROWS-1 ; ending row number TOPROW: BYTE 0 ; current top row number TMPROW: BYTE 0 ; temp row storage area CSRDLY: BYTE 0 ; cursor delayed enable counter ; SMXSPH: WORD 1 ; screen mutual exclusion semaphore WORD . WORD .-2 ; ; ANSII sequence variables ; ASCSIZ == 32 ; number of bytes to buffer ASCBP: WORD 0 ; index of next char to store ASCADR: WORD 0 ; address of cursor move rtn ASCOPT: BYTE 0 ; True if in ANSII option mode ASCBUF: RES ASCSIZ ; buffer for ANSII sequences ASCBUFE == . ; end of ANSII buffer ACSPRM == 0X05 ; cursor option parameter # ; ; ; ; ASCII control code lookup table. ; CTLTBL == . ; base of the lookup table BYTE 0X07 ; #1 BYTE 0X08 ; #2 BYTE 0X09 ; #3 BYTE 0X0A ; #4 BYTE 0X0B ; #5 BYTE 0X0C  ; #6 BYTE 0X0D ; #7 BYTE 0X1A ; #8 BYTE 0X1B ; #9 BYTE 0X1E ; #10 CTBLEN == .-CTLTBL ; length of lookup table ; ; ASCII control code branch table. ; CTBLXEC == . ; base of execution table WORD BELL ; #1 ring the terminal bell WORD BACKSP ; #2 back space WORD HZTAB ; #3 horizontal tab WORD LINE ; #4 line feed WORD RLINE ; #5 reverse line feed WORD NFSP ; #6 non-destructive forward space WORD RETURN ; #7 carrige return WORD CUPSCR ; #8 clear unprotected screen WORD ENAESC ; #9 enable escape sequence WORD HOME ; #10 home cursor ; ; ESCAPE sequence lookup table. ; ESCTBL == . ; base of the lookup table BYTE "=" ; #1 direct cursor addressing BYTE "*" ; #2 clear unprot screen BYTE "T" ; #3 clear unprot, end of line BYTE "Y" ; #4 clear unprot, end of page BYTE "C" ; #5 set terminal display color BYTE "j" ; #6 begin reverse video fields BYTE "k" ; #7 end reverse video fields BYTE "^" ; #8 begin blinking fields BYTE "_" ; #9 begin blank fields BYTE "q" ; #10 end blink/blank fields BYTE "l" ; #11 begin underline fields BYTE "m" ; #12 end underline fields BYTE "." ; #13 set cursor attribute BYTE "[" ; #14 begin of ANSII sequence BYTE "(" ; #15 enable alternate font BYTE 0X01 ; #16 set attribute directly ETBLEN == .-ESCTBL ; length of lookup table ; ; ESCAPE sequence branch table. ; ETBLXEC == . ; base of execution table WORD SETXY ; #1 WORD CUPSCR ; #2 WORD CUPEOL ; #3 WORD CUPEOP ; #4 WORD BEGCOLOR ; #5 WORD BEGRV ; #6 WORD ENDRV ; #7 WORD BEGBLINK ; #8 WORD BEGBLANK ; #9 WORD ENDBB ; #10 WORD BEGUND ; #11 WORD ENDUND ; #12 WORD SETCSRA ; #13 WORD BEGANS ; #14 WORD SETFONT ; #15 WORD ATTDIR ; #16 ; ; ANSII command lookup table ; ANSTBL == . ; Base of lookup table BYTE "f" ; #1 BYTE "H" ; #2 BYTE "C" ; #3 BYTE "A" ; #4 BYTE "B" ; #5 BYTE "D" ; #6 BYTE "J" ; #7 BYTE "K" ; #8 BYTE "m" ; #9 BYTE "M" ; #10 BYTE "h" ; #11 BYTE ">" ; #12 ATBLEN == .-ANSTBL ; Length of lookup table ; ; ANSII command branch table ; ATBLXEC == . ; Base of execution table WORD ASETXY ; #1 direct cursor addressing WORD ASETXY ; #2 direct cursor addressing WORD ARIGHT ; #3 move cursor right WORD AUP ; #4 move cursor up WORD ADOWN ; #5 move cursor down WORD ALEFT ; #6 move cursor left WORD APAGE ; #7 clear page WORD ALINE ; #8 clear line WORD AATTR ; #9 set attribute WORD AATTR ; #10 set attribute WORD ASETXY ; #11 direct cursor addressing WORD ASETOPT ; #12 set options ; ; ANSII option sequence lookup table ; OPTTBL == . ; Base of lookup table BYTE "h" ; #1 BYTE "L" ; #2 BYTE "l" ; #3 OPTLEN == .-OPTTBL ; Length of lookup table ; ; ANSII option branch table ; OPTXEC == . ; Base of execution table WORD ADISABLE ; #1 disable mode WORD AENABLE  ; #2 enable mode WORD AENABLE ; #3 enable mode ; ; ANSII page command branch table ; APGEXEC == . ; Base of execution table WORD CUPEOP ; #0 erase to end of page WORD CUPEOP1 ; #1 erase from begin of page WORD CUPSCR1 ; #2 erase entire page ; ; ANSII line command branch table ; ALNEXEC == . ; Base of execution table WORD CUPEOL ; #0 erase to end of line WORD CUPEOL1 ; #1 erase from begin of line WORD CUPEOL2 ; #2 erase entire line ATTRTBL == . ; Base of attribute table BYTE 0X00 ; ANSII attribute 0 -- default BYTE 0X00 ; ANSII attribute 1 -- default BYTE 0X04 ; ANSII attribute 2 -- vertline BYTE 0X02 ; ANSII attribute 3 -- overline BYTE 0X01 ; ANSII attribute 4 -- undrline BYTE 0X08 ; ANSII attribute 5 -- blink BYTE 0X00 ; ANSII attribute 6 -- unused BYTE 0X10 ; ANSII attribute 7 -- inverse ; ; NITCMD: BYTE __LEN ; CRT initialization command BYTE SYNC|0X01,CRT_CMD ; Character display mode '0': no BYTE 0X10,CRT_PARM ; interlace, flashless drawing, static BYTE 0X4E,CRT_PARM ; RAM, 80 character per row. BYTE 0X52,CRT_PARM BYTE 0X0E,CRT_PARM BYTE 0X06,CRT_PARM BYTE 0X13,CRT_PARM BYTE 0XEE,CRT_PARM BYTE 0X45,CRT_PARM BYTE VSYNC|0X01,CRT_CMD ; master video sync BYTE ZOOM,CRT_CMD ; zooming disabled BYTE 0X00,CRT_PARM BYTE PITCH,CRT_CMD ; 80 character per row BYTE 0X50,CRT_PARM BYTE MASK,CRT_CMD BYTE 0XFF,CRT_PARM BYTE 0XFF,CRT_PARM __LEN == (.-NITCMD-1)/2 ; CCHRCMD:BYTE CCHRCLN ; cursor char command BYTE CCHAR,CRT_CMD CCHRP1: BYTE 0X12,CRT_PARM BYTE 0X21,CRT_PARM BYTE 0X8A,CRT_PARM CCHRCLN == (.-CCHRCMD-1)/2 ; CSRCMD: BYTE CSRCLN ; specify cursor command BYTE CURS,CRT_CMD CSRLOW: BYTE 0X00,CRT_PARM CSRHI: BYTE 0X00,CRT_PARM CSRCLN == (.-CSRCMD-1)/2 ; WDATCMD: ; write single char command BYTE WDATCLN BYTE WDAT,CRT_CMD FONT: BYTE 0X00,CRT_PARM CHAR: BYTE 0X00,CRT_PARM WDATCLN == (.-WDATCMD-1)/2 ; WATTCMD: ; write attribute command BYTE WATTCLN BYTE WDAT|0X10,CRT_CMD CURATTR:BYTE DEFATTR,CRT_PARM WATTCLN == (.-WATTCMD-1)/2 ; RDATCMD: BYTE RDATCLN BYTE RDAT|0X10,CRT_CMD RDATCLN == (.-RDATCMD-1)/2 ; PRAMCMD: ; Write parameter RAM command BYTE PRAMCLN BYTE PRAM,CRT_CMD PRAM1: BYTE 0X00,CRT_PARM PRAM2: BYTE 0X00,CRT_PARM PRAM3: BYTE 0X00,CRT_PARM PRAM4: BYTE 0X00,CRT_PARM PRAM5: BYTE 0X00,CRT_PARM PRAM6: BYTE 0X00,CRT_PARM PRAM7: BYTE 0X00,CRT_PARM PRAM8: BYTE 0X00,CRT_PARM PRAMCLN == (.-PRAMCMD-1)/2 ; ; FIGSCMD: BYTE FIGSCLN BYTE FIGS,CRT_CMD BYTE 0X02,CRT_PARM FIGSP2: BYTE 0X00,CRT_PARM FIGSP3: BYTE 0X00,CRT_PARM FIGSCLN == (.-FIGSCMD-1)/2 ; ; ; Cursor character table. ; CCHRTBL: BYTE 0X12,0X01,0X8A ; blinking block BYTE 0X12,0X21,0X8A ; steady block BYTE 0X12,0X0E,0X8A ; blinking underline BYTE 0X12,0X2E,0X8A ; steady underline ; ; LOC Code# ; locate in code segment ; ; Screen entry point. Output char passed in CL register. ; SCREEN:: PUSH SI PUSH DI ; save regs PUSH CX ; save output char MOV BX,&SMXSPH ; get exclusion semaphore addr CALL WAIT# ; dispatch if neccessary POP CX ; restore output char CALL __SCR ; call the driver MOV BX,&SMXSPH ; get exclusion semaphore addr CALL SIGNAL# ; signal process completed OR AL,=0XFF ; set status POP DI POP SI ; restore regs RET ; and exit ; __SCR: CLD ; set direction = increment MOV AX,DS MOV ES,AX ; copy DS into ES seg reg TEST FLAGS,=INIT ; test initialization flag JNZ __C1 ; if done, continue PUSH CX ; save output char MOV BX,&NITCMD ; get init table addr CALL GDCOUT ; and output it CALL SLINIT ; initialize status line CALL CUPSCR ; clear user screen area OR FLAGS,=INIT ; set init flag for further entry POP CX ; restore output char __C1: MOV CSRDLY,=CSRCNT ; pre-set cursor delay count AND CCHRP1,=~0X80 ; reset cursor display bit MOV BX,&CCHRCMD CALL GDCOUT ; disable cursor display MOV DX,ROWCOL ; load current row/column address MOV AX,NXTSEQ ; get possible next escape sequence MOV NXTSEQ,=0 ; always clear it TEST AX,AX ; sequence present? JNZ SEQCOM ; if so, continue CMP FONT,=00 ; Is this alternate font mode? JNE DISPLAY ; If so, display regardless CMP CL,=ASP ; displayable char? JNB DISPLAY ; if so, continue #IF PEEKNG ; Desperation debugging PUSH CX MOV CL,=0X7E CALL DISPLAY POP CX JMP DISPLAY #ENDIF MOV DI,&CTLTBL ; get control char lookup table MOV AL,CL ; load char MOV CX,=CTBLEN ; get table length REPNZ SCAS BYTE ; look for a match JNZ __X ; if not found, cont MOV BX,=CTBLEN-1 SUB BX,CX ; calc length into table ADD BX,BX ; time 2 for execute table CALLI CTBLXEC[BX] ; execute the function __X: CALL UPDCSR ; do cursor update stuff RET ; and exit ; SEQCOM: CALLI AX ; continue escape sequence JMPS UPDCSR ; do cursor update stuff ; DISPLAY: MOV CHAR,CL ; set char in command string CALL PNTCHAR ; point cursor at char memory MOV BX,&WDATCMD CALL GDCOUT ; write single char CALL PNTATTR MOV BX,&WATTCMD CALL GDCOUT ; write single attribute MOV FONT,=00 ; Cancel alternate font CALL NFSP ; do non-destructive forword space ; UPDCSR: MOV ROWCOL,DX ; update current row/column CALL PNTCHAR ; point cursor at character memory ; #IF SCRTST ; if screen test version JMPS CSRENA ; enable cursor #ELSE RET ; and exit #ENDIF ; ; The following routine is called from the real-time-clock driver to ; check for the cursor enable delay count. When count of zero is reached, ; the cursor is re-enabled. ; CSRCHK:: CMP CSRDLY,=0 ; check for count reached JZ _X1 ; if so, continue DEC CSRDLY ; decrement the count JNZ _X1 ; if count still going ; ; This entry is called from the keyboard input routine to enable the cursor ; unconditionally when waiting on a character. ; CSRENA:: MOV CSRDLY,=0 ; force count to zero TEST FLAGS,=CSRFL ; cursor enabled? ; JZ _X1 ; if not, continue OR CCHRP1,=0X80 ; set cursor display bit MOV BX,&CCHRCMD CALL GDCOUT ; re-enable the cursor _X1: RET ; exit ; ; ; CONTROL CHARACTER FUNCTIONS. ; ENAESC: ; start escape sequence. CONTROL-[ MOV NXTSEQ,&BEGESC ; set sequence function number RET ; and exit ; BELL: ; ring the terminal bell. CONTROL-G MOV CHAR,=ABEL CALL PNTCHAR ; point cursor at char memory MOV BX,&WDATCMD  CALL GDCOUT ; write single char CALL PNTATTR MOV BX,&WATTCMD CALL GDCOUT ; write single attribute JMP UPDCSR ; HOME: ; home cursor function. CONTROL-^ MOV DL,=0 ; get starting row number JMPS RETCOM ; and join common ; RETURN: ; carrige return function. CONTROL-M CMP CURSCR,=0 ; screen = user line load? JNZ RETCOM ; if not, continue common MOV CL,SAVSCR ; get restore screen number ;;; CALL SETULS ; and do user line stuff RET ; and exit ; RETCOM: XOR DH,DH ; cursor to starting column JMPS FCKWP ; check write protect stuff ; BACKSP: ; back space function. CONTROL-H DEC DH ; decrement column number JNS __C ; Did we go off left margin ? TEST FLAGS,=ANSFL ; Yes, are we in ANSII mode ? JZ __C OR DL,DL ; Yes, and is this line 0 ? JNZ __C XOR DH,DH ; Yes, so freeze cursor pos __C: CMP DH,=NMBCOLS ; curs #TITLE "Screen routine tester" #SUBTTL "Copyright (C) John E. Lauber" #PAGE 132,66 ; MODULE "SCRTST" ; TLINK "X" ; #INCLUDE "EQUATE" ; LOC Code# ; START: MOV CL,=0 CALL SCREEN# ; initialize the screen ; __LOOP: MOV CL,=DCFCN MOV DL,=0XFF INT OPSYSC OR AL,AL JZ __LOOP MOV CL,AL CMP AL,='~' JZ __EXIT CALL SCREEN# JMPS __LOOP ; __EXIT: RETF ; KBDLOK:: KBDULK:: WAIT:: SIGNAL:: RET ; END START åSCRTST,SCRAPC åé8C�º�è›;éç°ÿë0À.Œ.‰&.Ž8C.‹&ûè .Ž.‹&Ï„Àt€ù2ué‚.þÁt4þÉuéË.¢è¢„Àt. „Àué7é*Vè. èÆAèñ;^0ÀÃ.¡…Àu.‰&.Ž8C.‹&èñÆDgºÿÿ±0Àè”ÿº\±èðºm±èèº$±nèÖºhOè ± èÕèsAtRSºœOè[èȺžOè[辺 Oèú»^VèOAt‰ÚèíŠ.\V üO<ÿtˆÅŠúOŠ6ûO±è�è™è© èxë.Ž8C.‹&è`è�è A„ÀuèŸ þÀt±è_è˱èWŒØŽÐ¼hO»#º'1ÀŽØ‰€Œ‚‰|Œ~¡�T.£.Ç€>ƒTu.ÇŽ�TއTŒÀ…ÀuŒØŽÀŒÚ±3Í຀±Íà.ÿéoÿ.Ç .Çö„‡u±è× ²±,èÆ èk@±èÈ ±è¹ èà Š±è­ б è¤ ±:èŸ °@éT „ÀˆÈué±þÈtVþÈtXþÈtNþÈtP<t,tBþÈt<„uéöþ.Æë2ˆÐ<ýt)r-.ö u.þ.ö tèÖQRVè4è¨1^ZYÃèİÿÃVè!ö„‡u(€ú t#QRè‡1ˆËZY„Àt ºT8ØtQRˆÑ² èö1ZY„Àu^éŠÿ»¸T€ú s €ú uÆëþ^ëi,tOþÈtW<técÿVèÁRèÒ Z„ÀuˆÐþÀtˆÐ$¢ˆðþÀt þÈ$¢0À^„Àt*é0ÿ �R¢ˆð<ÿuä \Vëá.‰ .‰ ë .‰.‰0À.¢ÃQRVè^±èn èÞ2u èM)t°@è!.Æ ^ZYÃ.¡ …Àué•.ÿ Ã.¡…Àu.Ž8C.‹&èèé¦ý.Ž.‹&¸ÿÿ.ÿÏè“?è*:‰ÆÃº±è º±éü µº'èºèèºdè º èþź±ÿþÁ)ÓsúÓ„Éu„ít€Á0QSˆÊ±èµ [YþÅñ é« èè>è�0Š„ÀtþÈtþÈt ¡é½èÌ>ReadëèÂ>Writeë è·>Not readyèª> error, Drive: ŠDAˆÁè,0Š<t?è‡>, Track: ‹\è>èt>, Sector: ‹\Sè>[‹TJ…ÒtÓSèS> - [èé=èH> (Retry, Š<t è5>Ignore, è)>Abort) èI/„Àtèe/ëôè`/Pè¾/Xè >ˆÁ ¡(Èt" ¾þÈ(È<ÿtŠ<uéÿ ²þÀ(È<téôþÊP·SƒÃè!9‰PXˆú$±nèÏè¥èÁ±/þÁ, sú:PˆÈ<0tè•Xè‘è¬A艠Pèƒèht鈻PŠ„ÀtJÆèKtBèT=RƒÂ‹PCC‡ÚŠC¢PŠC¢PŠC„Étµ‰P‡ÚSËÆ[‡ÚŒØŒÝèp=Z±èN륀>PÆPtébÿ‹PR± è/[CŠ„Éué\ûµC‰PèéËÆëèx¡P£Pèšuéû‰ P %P< uéÄ»-PŠ< u ÆCCÆMCÆD€*P€Æ0P 3P„Àt 1Pèûº$P±èÁ„Àt鸺$P±;è²@uéÙ‰ P èÔ»DPèèè"è6tè!tºDPè è&t ètºTPèüºiP‹ Pè"r‡ÚˆC‡Ú�úçPrîèsû‡ÚÆK�ëhPˆhP‡ÚèŒØ»DP‹. Pº\¹¤èS<é  $PþÈx¢ 3P„Àt  1PèK¢‹ PèÅsûèÖé?úº©OëN $P„Àu# P„Àt<ÿu \VþÀPèåþÀˆÁX8Èt¢$Péÿº¹OëºËOëˆÂRèÀZ8ÐtHRè¹è´Z8Ðt<ºåOÆPRè„躢Oè�Zè‹èIüéÐù‹PèGrS< s @P°^èbXè^[ëçû$P¹ŒØŒÝé�;ºP±˜èeC‰P…ÛËPKtÛ P:tÔŠ<;àP:ùtÇŠ„ÀùtÀCè>;ÀÃC„Àu»‰Pð è° €>PužˆÂ±ë€>Pu‘± ë²ÿ± ë±°ÿë0ÀéMøÇ #TITLE "Serial I/O for the NEC-APC" #SUBTTL "Equates and Definitions" #PAGE 132,66 ; ; SIOAPC.A ; Written by: John E. Lauber ; MODULE "SIOAPC" ; module ID ; #INCLUDE "APCEQU" ; common APC equivalences #INCLUDE "DREQUATE" ; common driver equivalences ; ; Bit definition of the status word. ; RXRDY == 1<<0 ; receiver ready TXRDY == 1<<1 ; transmitter ready TXE == 1<<2 ; transmitter empty PE == 1<<3 ; parity error OE == 1<<4 ; overrun error FE == 1<<5 ; framing error SYNDET == 1<<6 ; sync detect DSR == 1<<7 ; data set ready ; ; Befault configuration of the mode instruction word. ; M8251 == 0X4E ; 1 stop, no parity, 8-bit word, X16 ; ; Bit definition of the command instruction word. ; TXEN == 1<<0 ; transmit enable DTR == 1<<1 ; data terminal ready RXE == 1<<2 ; receiver enable SBRK == 1<<3 ; send break ER == 1<<4 ; error reset RTS == 1<<5 ; request to send IR == 1<<6 ; internal reset EH == 1<<7 ; enter hunt mode ; ; Default configuration of the command instruction word. ; C8251 == RTS|ER|RXE|DTR|TXEN ; refer to above symbols ; #SUBTTL "Driver Data Area" #PAGE ; LOC Data# ; locate in data segment ; FCNTBL == . ; driver function lookup table WORD SERST ; serial status WORD SERIN ; serial input WORD SEROUT ; serial output WORD SERSBR ; serial set baud rate WORD SERRBR ; serial return baud rate WORD SERSMC ; serial set MODEM controls WORD SERRMC ; serial return MODEM controls NMBFCN == (.-FCNTBL)/2 ; number of valid functions ; LOC 0 ; IOTMOD == . ; I/O table entry model DATA: RES WORD 1 ; uart data port addr STAT: RES WORD 1 ; uart status port addr MSKRS: RES WORD 1 ; uart mask/read signal port addr WSIG: RES WORD 1 ; uart write signal port addr TIMER: RES WORD 1 ; timer port addr TMRSET: RES BYTE 1 ; set timer value for mode port RDAMSK: RES BYTE 1 ; receive data available mask RDACP: RES BYTE 1 ; receive data available ready TBEMSK: RES BYTE 1 ; trans buffer empty mask TBECP: RES BYTE 1 ; trans buffer empty ready SINSPH: RES WORD 3 ; serial input semaphore SINPOL: RES WORD 1 ; serial input poll routine addr BUFSIZ: RES WORD 1 ; serial buffer size BUFPNT: RES WORD 1 ; base of serial input buffer SINPNT: RES WORD 1 ; serial buffer in pointer SOTPNT: RES WORD 1 ; serial buffer out pointer SOTSPH: RES WORD 3 ; serial output semaphore SOTPOL: RES WORD 1 ; serial output poll routine addr SOCHAR: RES BYTE 1 ; output char buffer SERBRT: RES BYTE 1 ; current baud rate setting CURMOD: RES BYTE 1 ; current device operating mode SFLAGS: RES BYTE 1 ; serial channel flags IOTLEN == .-IOTMOD ; length of one entry ; ; Bit definition of serial channel flag byte. ; UACT == 1<<0 ; uart active flag ; RELOC ; ; Base of serial I/O tables. ; IOTBL == . ; SIOCH0 == . ; serial channel 0 WORD S0_DATA,S0_STAT ; data and status/command ports WORD S0_RS,S0_WS ; mask/read signal and write signal WORD IT_CNT1 ; timer port addr  BYTE 0X76 ; set timer value for mode port BYTE RXRDY,RXRDY ; mask, value BYTE TXRDY,TXRDY ; mask, value WORD 0 ; input semaphore WORD . WORD .-2 WORD SI0POL ; input poll routine S0BSZ: WORD 64 ; buffer size WORD 0,0,0 ; base, in and out pointers WORD 0 ; output semaphore WORD . WORD .-2 WORD SO0POL ; output poll routine BYTE 0 ; output char BYTE 0XAF ; current baud rate S0MODE: BYTE M8251 ; line control value BYTE 0 ; serial channel flags ; SIOCH1 == . ; serial channel 1 WORD S0_DATA,S0_STAT ; data and status/command ports WORD S0_RS,S0_WS ; mask/read signal and write signal WORD IT_CNT2 ; timer port addr WORD 0XB6 ; set timer value for mode port BYTE RXRDY,RXRDY ; mask, value BYTE TXRDY,TXRDY ; mask, value WORD 0 ; input semaphore WORD . WORD .-2 WORD SI1POL ; serial input poll routine S1BSZ: WORD 64 ; buffer size WORD 0,0,0 ; base, in and out pointers WORD 0 ; output semaphore WORD . WORD .-2 WORD SO1POL ; output poll routine BYTE 0 ; output char BYTE 0XAF ; current baud rate S1MODE: BYTE M8251 ; line control value BYTE 0 ; serial channel flags ; NMBSIO == (.-IOTBL)/IOTLEN ; number of channels supported ; #SUBTTL "Driver Routines" #PAGE ; LOC Code# ; locate in code segment ; SPINIT:: PUSH DI ; save index reg MOV DI,&IOTBL ; get I/O table base MOV CX,=NMBSIO ; get number of serial channels __LP: PUSH CX ; save count reg CALL INIT8251 ; initialize the channel MOV DX,STAT[DI] ; get uart status port addr IN AL,DX ; read it TEST AL,=0X38 ; device present in system? JNZ __C ; if not, continue OR SFLAGS[DI],=UACT ; set uart active flag MOV BX,BUFSIZ[DI] ; get buffer size CALL ALLOC# ; allocate some memory MOV BUFPNT[DI],BX ; set buffer base address MOV SINPNT[DI],BX ; set buffer input pointer MOV SOTPNT[DI],BX ; set buffer output pointer MOV DX,SINPOL[DI] ; get input poll routine addr CALL LNKPOL# ; and attach to poll list __C: POP CX ; restore the count ADD DI,=IOTLEN ; index to next table entry LOOP __LP ; and loop for number of channels POP DI ; restore index reg RET ; and exit ; INIT8251: MOV DX,MSKRS[DI] ; get uart mask port addr XOR AL,AL ; zero reg OUT DX,AL ; dissable all interrupts MOV DX,STAT[DI] ; get uart command/mode port addr MOV AL,=0XAA ; get dummy command OUT DX,AL ; send it MOV AL,=IR ; get internal reset bit OUT DX,AL ; clear device to known state MOV AL,CURMOD[DI] ; get current operating mode OUT DX,AL ; and send it MOV AL,=C8251 ; get default command word OUT DX,AL ; and send it RET ; all done ; ; ; Driver entry point. ; COMDRV:: SERIAL:: CMP CH,=NMBSIO ; test for valid channel number JAE __X ; if invalid, continue PUSH DI ; save index reg MOV DI,=IOTBL ; get base of tables MOV AL,=IOTLEN ; get entry length MUL CH ; index as per channel ADD DI,AX ; point to channel's entry CALL __O ; do the operation POP DI ; restore index reg __X: RET ; all done ; __O: CMP DL,=10 ; function = 10? JZ SEROUT ; if so, continue CMP DL,=NMBFCN ; check for valid function JAE __X ; if invalid, continue MOV BL,DL ; move to reg XOR BH,BH ; make double length ADD BX,BX ; times 2 for addr table JMPI FCNTBL[BX] ; execute function ; ; Serial status entry point. ; SERST: CALL CHKBUF ; check the buffer RET ; done ; ; Serial input entry point. ; SERIN: MOV BX,&SINSPH ; get input semaphore offset ADD BX,DI ; point to it CALL WAIT# ; dispatch if neccessary CALL CHKBUF ; check the buffer OR AL,AL ; set flags JZ SERIN ; if false alarm, try again MOV SOTPNT[DI],BX ; update output pointer MOV AL,CL ; input char to reg RET ; done ; ; Serial output entry point. ; SEROUT: AND TBEMSK[DI],=~DSR AND TBECP[DI],=~DSR ; clear CTS checker TEST SERBRT[DI],=0X40 ; CTS enabled? JZ __1 ; if not, continue OR TBEMSK[DI],=DSR OR TBECP[DI],=DSR ; enable CTS checker __1: PUSH DX ; save function number MOV DX,STAT[DI] ; get uart status port addr IN AL,DX ; and read it POP DX ; restore reg AND AL,TBEMSK[DI] ; mask status CMP AL,TBECP[DI] ; check ready value JNZ __2 ; if not ready, continue MOV DX,DATA[DI] ; get uart data port addr MOV AL,CL ; get output char OUT DX,AL ; and send it OR AL,=0XFF ; set good status __X: RET ; and exit ; __2: MOV AL,=10 ; load constant SUB AL,DL ; function = 10? JZ __X ; if so, exit with AL=0 MOV SOCHAR[DI],CL ; save output char MOV DX,SOTPOL[DI] ; get output poll routine addr CALL LNKPOL# ; and attack to poll list MOV BX,&SOTSPH ; get semaphore offset ADD BX,DI ; point to it JMP WAIT# ; and dispatch untill ready ; ; Serial output polling routines. ; SO0POL: WORD 0 WORD 0 ; PUSH DI ; save reg MOV DI,&SIOCH0 ; load channel table addr JMPS SOPCOM ; and join common ; SO1POL: WORD 0 WORD 0 ; PUSH DI ; save reg MOV DI,&SIOCH1 ; load channel table addr ; SOPCOM: MOV DX,STAT[DI] ; get uart status port addr IN AL,DX ; read it AND AL,TBEMSK[DI] ; mask it CMP AL,TBECP[DI] ; compare with ready value JNZ __X ; if not ready, continue MOV DX,DATA[DI] ; get uart data port addr MOV AL,SOCHAR[DI] ; get waiting char OUT DX,AL ; and send it MOV BX,SOTPOL[DI] ; get poll routine addr CALL UNLINK# ; and remove from poll list MOV BX,&SOTSPH ; get semaphore offset ADD BX,DI ; point to it CALL SIGNAL# ; and signal the event __X: POP DI ; restore index reg RET ; and exit ; ; Check the input buffer. ; CHKBUF: MOV BX,SOTPNT[DI] ; get output pointer MOV AX,SINPNT[DI] ; and input pointer SUB AX,BX ; compare the values JZ __X ; if equal, continue INC BX ; bump the pointer MOV AX,BUFPNT[DI] ; get buffer base addr ADD AX,BUFSIZ[DI] ; point to last addr+1 CMP AX,BX ; buffer wrap? JNZ __1 ; if not, continue MOV BX,BUFPNT[DI] ; else, wrap the buffer __1: MOV CL,[BX] ; get the char OR AL,=0XFF ; set ready status __X: RET ; done ; ; Serial input polling routines. ; SI0POL: WORD 0 WORD 0 ; PUSH DI ; save reg MOV DI,=SIOCH0 ; load table addr JMPS SIPCOM ; and join common code ; SI1POL: WORD 0 WORD 0 ; PUSH DI ; save reg MOV DI,=SIOCH1 ; load table addr ; SIPCOM: MOV DX,STAT[DI] ; get uart status port addr IN AL,DX ; read it AND AL,RDAMSK[DI] ; mask it CMP AL,RDACP[DI] ; compare to ready value JNZ __X ; if not ready, continue MOV DX,DATA[DI] ; get uart data port addr IN AL,DX ; read the data MOV CL,AL ; hold in reg TEST SERBRT[DI],=1<<5 ; receive only device? JNZ __X ; if so, just eat the char MOV BX,SINPNT[DI] ; get buffer input pointer TEST SERBRT[DI],=1<<7 ; attention char enabled? JZ __1 ; if not, continue AND CL,=0X7F ; strip parity bit CMP CL,ATNCHR# ; attention request? JNZ __1 ; if not, continue MOV SOTPNT[DI],BX ; flush the buffer __1: INC BX ; bump input pointer MOV AX,BUFPNT[DI] ; get buffer base addr ADD AX,BUFSIZ[DI] ; calc last addr+1 CMP AX,BX ; buffer wrap? JNZ __2 ; if not, continue MOV BX,BUFPNT[DI] ; else, wrap the buffer __2: MOV AX,SOTPNT[DI] ; get output pointer CMP AX,BX ; buffer full? JZ __X ; if so, exit without signalling MOV [BX],CL ; write char into buffer MOV SINPNT[DI],BX ; update input pointer MOV BX,&SINSPH ; get semaphore offset addr ADD BX,DI ; point to it CALL SIGNAL# ; signal the char __X: POP DI ; restore reg RET ; and exit ; ; Set serial baut rate entry point. ; SERSBR: MOV SERBRT[DI],CL ; set table variable ; ; Set uPD8253 counter routine. ; MOV BL,SERBRT[DI] ; get baud rate variable AND BL,=0X0F ; mask to baud rate bits XOR BH,BH ; make double length ADD BX,BX ; times 2 for table lookup CS MOV BX,BRTBL[BX] ; load timer constant MOV DX,=IT_MODE ; get timer mode set reg MOV AL,TMRSET[DI] ; get timer set value OUT DX,AL ; and send it MOV DX,TIMER[DI] ; get timer port addr MOV AL,BL ; get LSB of count OUT DX,AL ; send it MOV AL,BH ; get MSB of count OUT DX,AL ; send it RET ; all done ; ; Baud rate divisor constants table. ; BRTBL: WORD 3072 ; 50 baud WORD 2048 ; 75 baud WORD 1396 ; 110 baud WORD 1142 ; 134.5 baud WORD 1024 ; 150 baud WORD 512 ; 300 baud WORD 256 ; 600 baud WORD 128 ; 1200 baud WORD 85 ; 1800 baud WORD 76 ; 2000 baud WORD 64 ; 2400 baud WORD 42 ; 3600 baud WORD 32 ; 4800 baud WORD 21 ; 7200 baud WORD 16 ; 9600 baud WORD 8 ; 19200 baud ; ; Return serial baud rate entry point. ; SERRBR: MOV AL,SERBRT[DI] ; get current setting RET ; all done ; ; Set MODEM controls entry point. ; SERSMC: MOV DX,STAT[DI] ; get uart status port addr MOV AL,CURMOD[DI] ; get current uart mode setting AND AL,=~(DTR|RTS) ; clear current bits TEST CL,=1<<7 ; RTS flaged? JZ __1 ; if not, continue OR AL,=RTS ; set RTS bit __1: TEST CL,=1<<6 ; DTR flaged? JZ __2 ; if not, continue OR AL,=DTR ; set DTR bit __2: OUT DX,AL ; update the uart RET ; all done ; ; Return MODEM controls entry point. ; SERRMC: MOV DX,STAT[DI] ; get uart status port addr IN AL,DX ; read it MOV CL,AL ; move to reg XOR AL,AL ; clear reg TEST CL,=DTR ; DSR active? JZ __X ; if not, continue OR AL,=0XF0 ; set all indicator flags __X: RET ; all done ; END å #TITLE "Sign-on Message Area" #SUBTTL "For the NEC-APC" ; ; SOMIPC.A ; MODULE "SOMAPC" ; module ID ; #INCLUDE "EQUATE" ; oommon OS equivalences ; LOC Data# ; locate in data segment ; USRSOM:: #REPEAT 6 ; allocate 60 user bytes BYTE 0,0,0,0,0,0,0,0,0,0 #ENDREP ; ; BYTE ACR,ALF ; BYTE "System Memory Size = " MEMKSZ: BYTE 0,0,0,0 ; range = 64-610k ; ; BYTE ACR,ALF ; BYTE "Circuit: " CKTNO: BYTE 0,0,0 ; range = 0-255 ; ; BYTE ", Node: " NODNO: BYTE 0,0,0 ; range = 0-255 ; BYTE "$" ; LOC Code# ; locate in code segment ; ; Routines to patch system sign on message. ; PTMKSZ:: PUSH DI ; save reg MOV DI,&MEMKSZ ; get msg offset CALL DECMSG ; do common code MOV [DI],='k' ; append kilobyte char POP DI ; restore reg RET ; and exit ; PTMCKT:: PUSH DI ; save reg MOV DI,&CKTNO ; get msg offset XOR AH,AH ; make double length CALL DECMSG ; do common code POP DI ; restore reg RET ; and exit ; PTMNOD:: PUSH DI ; save reg MOV DI,&NODNO ; get msg offset XOR AH,AH ; make double length CALL DECMSG ; do common code POP DI ; restore reg RET ; and exit ; DECMSG: XOR BL,BL ; clear zero print flag MOV CX,=100 CALL __DM ; write 100's digit MOV CX,=10 CALL __DM ; write 10's digit MOV CX,=1 OR BL,=0XFF ; set zero print flag __DM: XOR DX,DX ; clear remainder register DIV CX ; divide the number OR AL,AL ; did it go? JNZ __1 ; if not, continue OR BL,BL ; zero print enabled? JZ __X ; if not, continue __1: ADD AL,='0' ; add ASCII bias MOV [DI],AL ; move to message area INC DI ; bump pointer OR BL,=0XFF ; set zero print flag __X: XCHG AX,DX ; swap remainder with quotient RET ; all done ; END ûSOMAPCýGDataýLCodeüUSRSOMüPTMKSZü PTMCKTüPTMNODú$úW¿ø`<è Æk_ÃW¿`@0äè _ÃW¿`C0äè _Ã0Û¹ dè ¹ è ¹ €Ëÿ1Ò÷ñÀuÛt0ˆG€Ëÿ’Ãþÿå÷8DûOSLOADüOriginü¬Unitý÷Dataý|CodeýRESUMEýOTNTRYýOCNTRYýMSG001ýMSG002ýTSTUNDý USRSOMý MSG004ý MSG003ý EndDataý HDWNITýCRPROCýDSKNITýBMINITüLOADFNü SCANDNüLODSEGü9SYSDATüLDRDMSünALLOCüyDEALOCú OSMASTERSYS"ú @COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 03/29/84) "ú.Œø`9ŒÈŽØŽÐ¼ø`÷è ûéø ÆDgºø`C±èø è âè è åè Orè o.¡ø`.£`= ø`þÈy±èø .ÿ.ø`;º ÿR±èø ZþÊyõè | èø è sè �<t< uðé ²ÿ0À¢ €뫉&ø` ºø`ô±èø  ø`„ÀuW ` „Àt°ˆÂ±èø è }uè 1 è ˜è øsKë ‹&ø`  `„Àu:±èø ˆÁ ø` „ÀˆÈtþÈyÅëþÀ<r½è ú è wëè ï è Vè -uè ±ëèø ùœè �ðÿúø`?±èø ÃV¾ø`¿`¹ ŒØŽÀüó¥  €„Àt¾ \¿`¤€< t¹ ó¤€< t¹ ó¤^Ãè ‘ Copyright 1984, Software 2000, Inc. ± èø èø t(RSè [([è øè R/[è ïè I)»ø `èø t‰Ú± èø Ãè 4 Ãèø  ‹ø`è è #:» è ùSè [r.Ž`&ˆ&:uCëéøëèø  ùœè ]�Ãè rè ,Šûø` þuÆ€ŒÚ±3èø ºø`7±èø ºø`±èø „ÀùuÀûø`·‹`)ÓÃ0À»`¹ ˆCâûþÀ¢`º`±èø „Àúø`±èø àø`þÈy±èø Aè °è :»ø`¹ è è q.¹  ŠC$ to retry Ãè  not foundÃè , bad memoryÃè  loading at ÃþûOSNTRYüOriginü¬UnitýàDataýCLOFCNýCIFCNýCOFCNýRCIFCNýRCOFCNýLOFCNýDCFCNý RIBFCNý SIBFCNý PBFCNý CIBFCNý CSFCNýRVNFCNýRDSFCNýSELFCNýOFFCNýCFFCNýSFFFCNýSNFFCNýDFFCNýRSFFCNýWSFFCNýMFFCNýRFFCNýRLIFCNýRCDFCNýSDFCNýWPDFCNýRROFCNýSFAFCNý DPBFCNý!SRUFCNý"RRFFCNý#WRFFCNý$CFSFCNý%SRRFCNý&RDFCNý'LKRFCNý(FRRFCNý)SSCFCNý*DFSFCNý+CHNFCNý,SDBFCNý-RDBFCNý.RRMFCNý/RAMFCNý0ARMFCNý1AAMFCNý2FMSFCNý3FAMFCNý4PLFCNý5DT1FCNý6DT2FCNý7RSNFCNý8SRCFCNý9SRTFCNý:PBCFCNý;PBLFCNý<ROSFCNý=CTPFCNý>DPFCNý?AMFCNý@DMFCNýASMFCNýBRMFCNýCSESFCNýDSERFCNýESDTFCNýFRDTFCNýGRDMFCNýHROUFCNýISCFFCNýJLOGFCNýKLFFCNýLADFFCNýMALDFCNýNSCLFCNýORAVFCNýPRDPFCNýQSRSFCNýRPDAFCNýSSBPFCNýTRBPFCNýULFDFCNýVFFBFCNýWSRPFCNýXEOPFCNýYSRDFCNýZQPFFCNý[FLBFCNý\RCFCNý]CCSFCNý^CCIFCNý_CCOFCNý`SCBFCNýaRCBFCNýbSMCFCNýcRMCFCNýdEXTFCNýeRDDFCNý;fCodeýgDISDSPýhSETDR1ýiCKATTNýjENADSPýkGETSDSýlGETWSBýmNETREQýnPFNFCNýoDT3FCNýpMPMFCNýqTSTUNDüfOCNTRYü fOTNTRYü#fXCNTRYü0fXTNTRYüˆfERRXITúø`ø`ø`ø`ø`ø`ø`ø `ø `ø `ø `ø `ø`ø`ø`ø`ø`ø`ø`ø`ø`ø`ø`ø`ø`ø`ø` ø`ø`ø`ø `ø!`ø"`ø#`ø$`ø%`ø&`!ø#` ø'`ø(`ø)` ø*`ø+`"ø,`ø-`ø.`ø/`ø0`ø1`ø2`ø3`ø4`ø5`ø6` ø7`ø8` ø9`ø:`ø;`ø<`ø=`ø>`ø?`ø@`øA`øB`øC`øD`øE`øF`øG`øH`øI`øJ`øK`øL`øM`øN`øO`øP`øQ`øR`øS`øT`øU`øV`øW`øX`øY`øZ`ø[` ø\`ø]`ø^`ø_`ø``øa`øb`øc`ød`øe`úfè ¿€Œ ˆëè µ€¤ ˆï‰daèøg èøh èøi è Äëuö„ ˆœ€Œ ˆë ö„ ˆœ€¤ ˆïÿtOÿtQÿtSÿtUÿtWÿtYÿt[ÿt]ÿt_è iè ‰è <�D_�D]�D[�DY�DW�DU�DS�DQ�DO€¤ ˆï�t€Œ ˆËdaÇDO ÿÿ‹De…ÀtPèøj ŽD_ÿt]‹l[‹|YÿtW‹TU‹LS‹\Q‹DOö„ ˆ t‰Ã^Ãèøk Vèøl ‰Æ‰\Q‰LS‰TU�DW‰|Y‰l[�D]ŒD_ÃÇDO èøm rKŠDSö„ ˆu»ø`Š<+ë%<€s»`<GETXDRý?CALCBVý@CKOPNDýACKDRVLýBDSKMGRýCCKDROýDGETLSAýEZERODNýFALVNITýGADVDNOýHCLSFPýICRFCBPýJGETDLSýKFNDNDEýLFNDDDEüROVECTüOFFCNü OPNFILü~CFFCNü›CLSFILüàSFFFCNüñSNFFCNüœDFFCNü·DELFILüRSFFCNü“WSFFCNü€MFFCNüËRFFCNüƒ CQMCOMü²SFAFCNü CKLEXTü$RDRANDü)RRFFCNüjWRRANDüoWRFFCNüÞCKLERRü©CFSFCNüŸSRRFCNüüLFFCNüÿRAVFCNü?RDPFCNü[SRSFCNüºRDMFCNü×RDDFCNú úèø è ˆDOÃèø „Àulèø „Àt#èø è JtEèø „ÀuVèø „Àu4‹\UŽD]&öG €t'èø èø „Àuèø   &ŠþÀuSèø  èø   ŠG [&ˆ0ÀÃèø °ÿÃö„ ˆ tŠDn„Àtèø  &€ Ãèø  èø „Àuè Pö„ ‰uèø XˆDOÃèø èø „Àu:èø  &ö@t1&Š&öGþ€t'&€gþQèø Y„Àtéø  ŠDnPöÁ tÆDnè ê XˆDn0ÀËDU‰Dzè -tèø  ëyËDz‰DU‹D|‰Do‹D~‰Dqè öÐuˆDOÃèø èø ëS‹\UŽD]&Š$ èø? ‹ø` þDVt'RSŠDUèø@ [Z„ÀuþLVu ÷Ó!Ó‰ø`ÈDOà Ӊ`ð…ÓtþȈÇSŠDUˆDÆDèøA þÀtèøB [ˆÃ‰\QÃèø: èøC rèøD Æèø rèøE èøF ˆDOÃèø: èøE èø  Š<åtè ¬è ºt‹\oSè É[uSè Ð[‰\oèøG rØÃˆDOÃèø  èøC rèø  &€'ßèø „Àu èøH èøI ÀtùÃè èø  „ÀÃèø Æ„ ¦Æ„ ¨è 7tèøJ þÀtÆ„ ¦?Ê„ ¦ûŠT¶þÊè 3þ„Òu÷è Ts(è ñúŠ<åtè ~è štè þâöëãŠG<ærÜÆGåè ûëÓè e0ÀÃè è ÀúÆGåè ðú°ÿùÃè ²ú Š<åt?‰Ú�” š¹ ŒØŒÝèø ‹\oSè ós*è �ú Š<åuò‰Ú�œ š¹ ŒØŒÝè è ®ú[‰\oè pú ÆåC0ÀÃ[°ÿùÃè A Š„Àu:Sÿtoè ©è Qú‰å‡^‰\o[ZŠ<åuƒÃ ŠƒÃŠþÀuþÈöÁ€u°‡Úˆ‡ÚÃ0ÀÊD'èø ˆÂ¶»ø`ÓÊD'èø #ø`ˆøØt°ÿùÃà 0À&ö€töÐÃè ur„Àuõè t ÿDoè ØùC0ÀþÀˆÂÃCþˆÐ<t$uÃIˆèÈuùËLI°ÑéþÈuúAÃ0ÀˆDoˆDpÃè " ÿDo‹\o)ÓË\Kº ¹ ðB)Ësûè  ‡Ú)Ó‡ÚÊ\·èø   ÛþÈuú‡ÚÃS�” š» Ó‰Ú[¹ ËRŒØŒÝèø [¹ ÊC¶è X tŠ7CIˆðÐÃè üèø &Š$`tÑèÑèÑèÑè)Ár(‰WÂëS‰Ãèø Z‡Ú„Àu‰W€O €QR‰Úè Ô[ZYâ“Ãèø Y ø`(Èu»`ŠþÈxþˆé 5ÿ¢`ÃöD&uèø è ëèø ÷Ó!ø`Š`ˆÍöÕŠD( ȈD0ŠD( èˆD(è ³„ÀtþÀuvè �uðè é ®ŠD0„Àu/öD/@u)‹\(SŠ` ¶þÂ0À)Ó‰\(rè {[‰\(„Àt è {ŠþÈy5‹`»`9Ót ‰T1è Aè 2ëL‹` ‰\1è U ŠþÈy‹\1‹W»` 9Ó‰Óuåè té wÿè è -ö@tè œè ‚�tè kté Ïè !èø ëè lè mtÆDèø  „Àté ±‹\1‹G‹_Št0²ÑêÓöD&t‰\+‰D-ë‹T+‹l-öD&t‡Ú•¹ €èø  öD&tè º€@KŠD0þÀ:rˆŠD( D0ˆD(é Šè ªè �ˆCŠD(ˆCŠD)ˆCŠD*ˆC ø`þÀöD/€tŠD0ˆC€'ŸÃè :ŠDU$¢` ŠDV<s°¢`é �ý `Š&`‰DQÊDUèø  „ÀtÊDUèø  ˆÁŠlVë¹ ÿð€ùÿt è  Ó‰ø`€åþ»` €ùÿt Sè ï…Ó[ué Á‹»` 9Ótr‰Ó‰\1€ùÿt:Ou×öÅ€uè êö uPè çŠþÈxGè »u¹è Ôö@t2Qè %tè uYè ¦ë è ¦è ¸€@€ Y€ÍöÅ@tQè gYöÅ u�ëè €té wÿ‹\1é tÿ€ùÿtAöÅ€t<öÅtˆè$`<`u/Qµ»ø `ËË‹…ÒtSQˆÈèø  Y[öD€uÇ »ø`ËÆèø Y»ø` ‹»` 9Ót » Ó€'߉ÓëëöÅtöÅuéø Ëø`ˆÈéø Qè YöÅ€t Qè ÎY0ÀþÈûø` ‹»` 0À9Ót‰ÓSè [„Àtê‰\1ÃÊd'è îˆD'V¹ ŠD':°uFCâó0À^ˆd'uŠD0:r °u öD/€t°ÿÃÆDèø  „ÀÀ'¿è –Šèø è “ Š„ÀtJ´‰D$ ø`:DsÆè uŠº ÿÿèø „ÀtæþÀuíé %è _¹ VŠCˆDFâ÷^‹\1‹G‰D"‹G‰D 0ÀþÈÃè /è éø ‹\1èø » ÓÆÿ»ø`éø ‹\1èø »ø` éø è èø „ÀÃè èø „Àuöú ë º ëº ëº ‹\1ÓÊD'éø  ‹ø` º` 9ÓÃþûDSKMGRüOriginü¬Unitý2Dataý8CodeýDSKASTýLDIRýSHL7BXýDSKERRýERRXITüDSTPTüDSKNITüBPDAFCNüžSELDRVü¥DSKMGRüGETXDRú ú»ø`1¹ QS»ø`ËËˉø`´ºø`‹ø`¹ ‡ÚЇÚ:uBCâòëBâýþÄëâ[ˆ'KYþÉyÅÃúB‹\U‰ò¹ ‹D]ŒÝèø ö„ ˆ€t6‹Tè ÊŠDˆDè ŽˆDO„Àt.Š<u(‹\UƒÃŽD]‹T&‰‰Ó‹T ‹l é ¡Š<s<sÆDOÿÈDÆDŠD,r ué þþÈué ;ËL$IŠDþÈxÑéëøA‰L‹\$èø ‰\‹TŠDŠdþÌxÐèÑÚëö‹\´öÇ€uÑãþÄëõ‡Ú¹ ÿÿA)ÓsûþÈy÷ÓIAþÌx ÑêÑá)ÓsóÓëð‰Ú‹\Ë‹L ‹D"‰D ‰L ‰\‰T‡Ú‹Lˇڋ \)Ós,Sˉ\è Qè Z„ÀuH‹\ ‹LÙ÷Ú‰Ó‰\è 7º ‹\C뻊Dˆ‹\‹T0À)ÓsŒØŽÀè o„ÀtŠDº ÿÿèø  þÈtþÀtäÃèø ŠDþÈxÑãëø‰\ÊD$ÀˆÂ¶»ø` Ó‹…Òu%SÆè *„ÀuŠDº ÿÿèø „Àtì<ÿuïéø  [‹T‰‰Tè 91ÀÃÆŠT€â¶»ø`ÓÓÓ0Àö€uŠˆDÿgÃRS$ˆÂ¶»ø`"ÓŠ[ZÃ�\‡ÚŒ݌ع éø þûDSKTBLüOriginü¬Unitý0DataýDSKDRAüDSKASTúø``ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ þûNONFILüOriginü¬UnitýDataýøCodeýCOMPATýCLSAFPýFREDRVýXTNTRYýUnitýOriginý USRFCNüCPMVERüROSFCNü RVNFCNüDT1FCNüZDT2FCNüaDT3FCNü¦SRCFCNü¹CLOFCNü¿ROUFCNüÜEXTFCNú1 ú ø`ˆ„ ‰èø éø  ø`ˆDOŒ\_Ë\UŽD]&‹R&ŠGè ˆÆ&ŠGè ˆÂ[�à Î*µ± éø PÐÈÐÈÐÈÐÈ$ˆÅX$þÅþÍt ëøÃè ˆDOÃè &ˆGñ è �ë Î* ‰Ø‹\UŽD]&‰ˆðè &ˆGˆÐè &ˆGˆè±ÿþÁ, sú ÐáÐáÐáÐáÈËDU= ÿÿt£ø`á`‰DOÀ¤ ˆ ¿ÃÆDS0Àö„ ˆ €t €ˆDTÇDUø`ÇDQø` Ë\Q‹Lj‹TUŽDlèø   ‰TU‰LS‰\Q‰DOÃþûCONMGRüOriginü¬UnitýDataý‰CodeýINPLNýATNCHRýCKDOSTýDOCONIýATNBELýRESCHRý ABTCHRý PRTCHRý ECOCHRý EOPFCNý ERRXITýLSTOUTýCONASTüCOLCNTüCIFCNüíCONINü#ECHOü COFCNüYCONOUTüXRCIFCNü_RCOFCNüeDCFCNüèCONSTüŒPBFCNü¦CIBFCNü¯CSFCNü¶SRTFCNüÊPBCFCNüoXFRCDü CONINIüCKATTNüeCONOIüiCONSOümCONSIú$úè ê< s< t < t< t<uPè XˆDOÊDUˆÁ< s(< t < u$Æø`ë `$ø*`ˆÁµQ± è Yâ÷Ãþ`é è ’ˆDOÊLUé ôŠDUˆÁþÀtþÀtþÀté àè lë è g„Àtè eˆDOË\UŽD]&ŠC:`t Sè ‚ÿ [ëíË\UŽD]éø è 6 ˆDOË\Uƒûÿtˆø`à`ˆDOË\UŽD]&‹O&‹ã&ŠCIQSè @ÿ[YëðÃ²é ‚è :ø`tÃè &ëñè éÿ„Àuèø téø ²ë`è Öÿ„Àt:ø`tÃè ëÿŠø`„Étè :è Ýÿ:ø`t!:ø `t:ø `t:ø `uÚ€´ ‡ö„ ‡uéø  Ãéø  ö„ ‡tQèø Y²ë²ë² ŠDg„ÀtþÈ´»ø` ÃÃÊ/ÿgÃþûCONTBLüOriginü¬Unitý DataýCONDRAüATNCHRüRESCHRüABTCHRüECOCHRüPRTCHRüCONASTüATNBELú ø`þûDSPSGLüOriginü¬UnitýDataý¢CodeýLNKENDýALLOCüTICCNTüLNKPOLüDPFCNü DELAYüWAITüEDLYTICübSIGNALügCRPROCüŒRESUMEü˜ISRXITü™GETTOSüžGETWSBú"øa"ú»`éø  ‹\U…ÛuÉø`»` þy)ûQRS‹`»` 9Ót‰Ó‹P¸ø`6PƒÃÿãZëè[ŠÀxÜZY0ÀÃÿø` `„ÀuË`K‰`…Ûtû`þ0ÀÉ` » €Sèø ZÓ‰ø` » ÛSèø ‰ø` YÆCâúË&` ‹6`ÿ&` Ï‹` á`ÃþûCOMSUBüOriginü¬UnitýDataýéCodeýCONOUTýSYSDATüUndDataüUndCodeüTSTUNDü DEXLATü0SHL7BXü7DECOUTüuUNLINKüƒLNKENDü†LNKBEGü™DMSüŸDMSBXü¯UPRCASüºCALCBVüÈLDIRüËLDDRüãGETSDSú!ú0ÀÃ0À�ûø`ù ŠCþÀtþÈy$8àu ;uˆÈöØÃCCâà °ÿÃQ±ÓãYôº 'è º èè º dè º è þĺ ±ÿþÁ)ÓsúÓ„Éu„ät €Á0PSèø [XþÄË‹G‡Ú‰G“‰Ë_‹‰“‹O‰W ‡Ú‰‰OÃ[è  ÿã.ŠC„ÉtSè [ëñÃø`u.Çø` Žø`Ž` ŒÀ…ÀuŒØŽÀŒÚ±3Íຠ€±Íà.ÿø`é oÿ.Ç` .Ç` ö„ ‡u±èø ²±,èø èø ±èø ±èø èø Šø`±èø Šø`± èø ±:è °@éø „ÀˆÈué ±þÈtVþÈtXþÈtNþÈtP<t,tBþÈt<„ué öþ.Æø` ë2ˆÐ<ýt)r-.ö` u.þ`.ö` tè ÖQRVè 4èø ^ZYÃè İÿÃVè !ö„ ‡ u(€ú t#QRè ˆËZY„Àt ø` 8ØtQRˆÑ² èø ZY„Àu^é Šÿ»ø`€ú s €ú uÆëþ^ëi,tOþÈtW<té cÿVè ÁRèø Z„ÀuˆÐþÀtˆÐ$¢ø` ˆðþÀt þÈ$¢`0À^„Àt*é 0ÿ ø`¢ø`ˆð<ÿuä ø `ëá.‰ø`.‰`ë .‰` .‰` 0À.¢`ÃQRVè ^±èø èø u èø t°@èø  .Æø` ^ZYÃ.¡`…Àuéø! .ÿø`Ã.¡` …Àu.Žø`.‹&ø`è è é ¦ý.Ž`.‹&`¸ ÿÿ.ÿ` Ïèø" èø# ‰ÆÃº ±èø º ±é µº 'è º èè º dè º è þź ±ÿþÁ)ÓsúÓ„Éu„ít€Á0QSˆÊ±èø [YþÅñ é þûLCLMSGüOriginü¬UnitýWDataý CodeýDMSýCONSOýCONOUTýDECOUTýCONSTýCONINIý CONSIý UPRCASüMSG001üMSG002üMSG003ü)MSG004üCMSG005üLCLDESú <-- $Invalid command$Command not found$Program load unsuccessful$Non-privileged user$úèø èø Š„ÀtþÈtþÈt ø`¥é ½èø Readëè Writeë è  Not readyè  error, Drive: ŠDAˆÁèø Š<t?èø  , Track: ‹\èø èø , Sector: ‹\Sèø  [‹TJ…ÒtÓSèø  - [èø èø  (Retry, Š<t è  Ignore, è Abort) èø „Àtèø ëôè Pèø  Xèø  ˆÁ ø`¥(Èt" `ÂþÈ(È<ÿtŠ<ué ÿ `¶þÀ(È<té ôþÃþûLCLTBLüOriginü¬UnitýDataüPRTMODüQUEPTRüSPLDRVúÿþûCMDINTüOriginü¬UnitýêDataýÈCodeýALLOCýUNLINKýLDIRýWARMSTýUSRSAVýDSKSAVý MSG002ý SYSDSKý MSG003ý MSG004ý MSG005ýMSG001ýCLRCDCýUPRCASýCINTRYýDEALOCýLNKBEGüCLBLENüCLSCHRüCLPCHRüSRHDRVüCLBNITüCMDINTüõPFNFCNüŒCHNFCNüÙSCLFCNü2CLRCLBüESAVCLBü,SETCBFü¥CKCBSTúøa `&#�\}úŠ`·SƒÃèø ‰ø`XˆÃúº $±nè Ïè ¥è Á±/þÁ, sú:PˆÈ<0tè •Xè ‘è ¬Aè ‰ `è ƒè hté ˆ»` Š„ÀtJÆè KtBèø RƒÂ‹ø`CC‡ÚŠC¢`ŠC¢` ŠC„Étµ‰` ‡ÚSËÆ[‡ÚŒØŒÝèø Z±è N륀>ø`Æ`té bÿ‹`R± è /[CŠ„Éuéø µC‰ø` è éËÆëè x¡` £`è šué û‰` `'< ué Ä»`/Š< u ÆCCÆMCÆD€`,€Æ`2 `5„Àt `3è ûº`&±è Á„Àté ¸º`&±;è ²@ué Ù‰`  ø`è Ô»ø`Fè è è "è 6tè !tº`Fè è &t è tº`Vè üº`k‹`è " r‡ÚˆC‡Ú�ú`érîè  sû‡ÚÆK�ë`jˆ`j‡Úè ŒØ»`F‹.` º \¹ ¤èø é  ø`&þÈx¢ø` ø`5„Àt  `3è K¢ø`‹ø`è Åsûè Öéø ºø `ëN ø`&„Àu# `„Àt<ÿu ø `þÀPè å þÀˆÁX8Èt¢ø`&é øþºø `ëºø `ëˆÂRè ÀZ8ÐtHRè ¹è ´Z8Ðt<ºø `Æø`Rè „è ºø`è �Zè ‹èø éø ‹ø` è G rS< s @P°^è bXè ^[ëçû`&¹ ŒØŒÝéø ºø`±˜è eC‰`…ÛË`KtÛ ` :tÔŠ<;à` :ùtÇŠ„ÀùtÀCèø ÀÃC„Àu» ‰ø` ð è ° €>` užˆÂ±ë€>`u‘± ë²ÿ± ë±°ÿë0Àéø ÇDS ‹\UŽD]&‹&‹_SŒÀŽØè [»ø`è T‰ÓÇDU &Š< uCëö‰Ú»`Sè Q[¹ è ÜrEt…Éu)è ôr:t"<.tëG<:tK»`¹ è ºr#t6…Éuè Ò ru+‰Ó< u è Å r uëó‡ÚJ‡Úë» ZS»`¹ ŒØŒÅèø [ë[» ÿÿ ‰\Oð(ÈtòˆÁ»ø`ŠC<0ræ<:s<,0ˆÄ `%þÀtׯ`%Q `#ˆÅÀrÀrèrÀràr< s ¢`#Yƒùtë$Yë¦DPFCNý?AMFCNý@DMFCNýASMFCNýBRMFCNýCSESFCNýDSERFCNýESDTFCNýFRDTFCNýGRDMFCNýHROUFCNýISCFFCNýJLOGFCNýKLFFCNýLADFFCNýMALDFCNýNSCLFCNýORAVFCNýPRDPFCNýQSRSFCNýRPDAFCNýSSBPFCNýTRBPFCNýULFDFCNýVFFBFCNýWSRPFCNýXEOPFCNýYSRDFCNýZQPFFCNý[FLBFCNý\RCFCNý]CCSFCNý^CCIFCNý_CCOFCNý`SCBFCNýaRCBFCNýbSMCFCNýcRMCFCNýdEXTFCNýeRDDFCNý;fCodeýgDISDSPýhSETDR1ýiCKATTNýjENADSPýkGETSDSýlGETWSBýmNETREQýnPFNFCNýoDT3FCNýpMPMFCNýqTSTUNDüfOCNTRYü fOTNTRYü#fXCNTRYü0fXTNTRYüˆfERRXITúø`ø`ø`ø`ø`ø`ø`ø `ø `ø `ø `ø `ø`ø`ø`ø`ø`ø`ø`ø`ø`ø`ø`ø`ø`ø`ø` ø`ø`ø`ø `ø!`ø"`ø#`ø$`ø%`ø&`!ø#` ø'`ø(`ø)` ø*`ø+`"ø,`ø-`ø.`ø/`ø0`ø1`ø2`ø3`ø4`ø5`ø6` ø7`ø8` ø9`ø:`ø;`ø<`ø=`ø>`ø?`ø@`øA`øB`øC`øD`øE`øF`øG`øH`øI`øJ`øK`øL`øM`øN`øO`øP`øQ`øR`øS`øT`øU`øV`øW`øX`øY`øZ`ø[` ø\`ø]`ø^`ø_`ø``øa`øb`øc`ød`øe`úfè ¿€Œ ˆëè µ€¤ ˆï‰daèøg èøh èøi è Äëuö„ ˆœ€Œ ˆë ö„ ˆœ€¤ ˆïÿtOÿtQÿtSÿtUÿtWÿtYÿt[ÿt]ÿt_è iè ‰è <�D_�D]�D[�DY�DW�DU�DS�DQ�DO€¤ ˆï�t€Œ ˆËdaÇDO ÿÿ‹De…ÀtPèøj ŽD_ÿt]‹l[‹|YÿtW‹TU‹LS‹\Q‹DOö„ ˆ t‰Ã^Ãèøk Vèøl ‰Æ‰\Q‰LS‰TU�DW‰|Y‰l[�D]ŒD_ÃÇDO èøm rKŠDSö„ ˆu»ø`Š<+ë%<€s»`<GETXDRý?CALCBVý@CKOPNDýACKDRVLýBDSKMGRýCCKDROýDGETLSAýEZERODNýFALVNITýGADVDNOýHCLSFPýICRFCBPýJGETDLSýKFNDNDEýLFNDDDEüROVECTüOFFCNü OPNFILü~CFFCNü›CLSFILüàSFFFCNüñSNFFCNüœDFFCNü·DELFILüRSFFCNü“WSFFCNü€MFFCNüËRFFCNüƒ CQMCOMü²SFAFCNü CKLEXTü$RDRANDü)RRFFCNüjWRRANDüoWRFFCNüÞCKLERRü©CFSFCNüŸSRRFCNüüLFFCNüÿRAVFCNü?RDPFCNü[SRSFCNüºRDMFCNü×RDDFCNú úèø è ˆDOÃèø „Àulèø „Àt#èø è JtEèø „ÀuVèø „Àu4‹\UŽD]&öG €t'èø èø „Àuèø   &ŠþÀuSèø  èø   ŠG [&ˆ0ÀÃèø °ÿÃö„ ˆ tŠDn„Àtèø  &€ Ãèø  èø „Àuè Pö„ ‰uèø XˆDOÃèø èø „Àu:èø  &ö@t1&Š&öGþ€t'&€gþQèø Y„Àtéø  ŠDnPöÁ tÆDnè ê XˆDn0ÀËDU‰Dzè -tèø  ëyËDz‰DU‹D|‰Do‹D~‰Dqè öÐuˆDOÃèø èø ëS‹\UŽD]&Š$ èø? ‹ø` þDVt'RSŠDUèø@ [Z„ÀuþLVu ÷Ó!Ó‰ø`ÈDOà Ӊ`ð…ÓtþȈÇSŠDUˆDÆDèøA þÀtèøB [ˆÃ‰\QÃèø: èøC rèøD Æèø rèøE èøF ˆDOÃèø: èøE èø  Š<åtè ¬è ºt‹\oSè É[uSè Ð[‰\oèøG rØÃˆDOÃèø  èøC rèø  &€'ßèø „Àu èøH èøI ÀtùÃè èø  „ÀÃèø Æ„ ¦Æ„ ¨è 7tèøJ þÀtÆ„ ¦?Ê„ ¦ûŠT¶þÊè 3þ„Òu÷è Ts(è ñúŠ<åtè ~è štè þâöëãŠG<ærÜÆGåè ûëÓè e0ÀÃè è ÀúÆGåè ðú°ÿùÃè ²ú Š<åt?‰Ú�” š¹ ŒØŒÝèø ‹\oSè ós*è �ú Š<åuò‰Ú�œ š¹ ŒØŒÝè è ®ú[‰\oè pú ÆåC0ÀÃ[°ÿùÃè A Š„Àu:Sÿtoè ©è Qú‰å‡^‰\o[ZŠ<åuƒÃ ŠƒÃŠþÀuþÈöÁ€u°‡Úˆ‡ÚÃ0ÀÊD'èø ˆÂ¶»ø`ÓÊD'èø #ø`ˆøØt°ÿùÃà 0À&ö€töÐÃè ur„Àuõè t ÿDoè ØùC0ÀþÀˆÂÃCþˆÐ<t$uÃIˆèÈuùËLI°ÑéþÈuúAÃ0ÀˆDoˆDpÃè " ÿDo‹\o)ÓË\Kº ¹ ðB)Ësûè  ‡Ú)Ó‡ÚÊ\·èø   ÛþÈuú‡ÚÃS�” š» Ó‰Ú[¹ ËRŒØŒÝèø [¹ ÊC¶è X tŠ7CIˆðÐÃè üèø &Š$`tÑèÑèÑèÑè)Ár(‰WÂëS‰Ãèø Z‡Ú„Àu‰W€O €QR‰Úè Ô[ZYâ“Ãèø Y ø`(Èu»`ŠþÈxþˆé 5ÿ¢`ÃöD&uèø è ëèø ÷Ó!ø`Š`ˆÍöÕŠD( ȈD0ŠD( èˆD(è ³„ÀtþÀuvè �uðè é ®ŠD0„Àu/öD/@u)‹\(SŠ` ¶þÂ0À)Ó‰\(rè {[‰\(„Àt è {ŠþÈy5‹`»`9Ót ‰T1è Aè 2ëL‹` ‰\1è U ŠþÈy‹\1‹W»` 9Ó‰Óuåè té wÿè è -ö@tè œè ‚�tè kté Ïè !èø ëè lè mtÆDèø  „Àté ±‹\1‹G‹_Št0²ÑêÓöD&t‰\+‰D-ë‹T+‹l-öD&t‡Ú•¹ €èø  öD&tè º€@KŠD0þÀ:rˆŠD( D0ˆD(é Šè ªè �ˆCŠD(ˆCŠD)ˆCŠD*ˆC ø`þÀöD/€tŠD0ˆC€'ŸÃè :ŠDU$¢` ŠDV<s°¢`é �ý `Š&`‰DQÊDUèø  „ÀtÊDUèø  ˆÁŠlVë¹ ÿð€ùÿt è  Ó‰ø`€åþ»` €ùÿt Sè ï…Ó[ué Á‹»` 9Ótr‰Ó‰\1€ùÿt:Ou×öÅ€uè êö uPè çŠþÈxGè »u¹è Ôö@t2Qè %tè uYè ¦ë è ¦è ¸€@€ Y€ÍöÅ@tQè gYöÅ u�ëè €té wÿ‹\1é tÿ€ùÿtAöÅ€t<öÅtˆè$`<`u/Qµ»ø `ËË‹…ÒtSQˆÈèø  Y[öD€uÇ »ø`ËÆèø Y»ø` ‹»` 9Ót » Ó€'߉ÓëëöÅtöÅuéø Ëø`ˆÈéø Qè YöÅ€t Qè ÎY0ÀþÈûø` ‹»` 0À9Ót‰ÓSè [„Àtê‰\1ÃÊd'è îˆD'V¹ ŠD':°uFCâó0À^ˆd'uŠD0:r °u öD/€t°ÿÃÆDèø  „ÀÀ'¿è –Šèø è “ Š„ÀtJ´‰D$ ø`:DsÆè uŠº ÿÿèø „ÀtæþÀuíé %è _¹ VŠCˆDFâ÷^‹\1‹G‰D"‹G‰D 0ÀþÈÃè /è éø ‹\1èø »  ÓÆÿ»ø`éø ‹\1èø »ø` éø è èø „ÀÃè èø „Àuöú ë º ëº ëº ‹\1ÓÊD'éø  ‹ø` º` 9ÓÃþûDSKMGRüOriginü¬Unitý2Dataý8CodeýDSKASTýLDIRýSHL7BXýDSKERRýERRXITüDSTPTüDSKNITüBPDAFCNüžSELDRVü¥DSKMGRüGETXDRú ú»ø`1¹ QS»ø`ËËˉø`´ºø`‹ø`¹ ‡ÚЇÚ:uBCâòëBâýþÄëâ[ˆ'KYþÉyÅÃúB‹\U‰ò¹ ‹D]ŒÝèø ö„ ˆ€t6‹Tè ÊŠDˆDè ŽˆDO„Àt.Š<u(‹\UƒÃŽD]‹T&‰‰Ó‹T ‹l é ¡Š<s<sÆDOÿÈDÆDŠD,r ué þþÈué ;ËL$IŠDþÈxÑéëøA‰L‹\$èø ‰\‹TŠDŠdþÌxÐèÑÚëö‹\´öÇ€uÑãþÄëõ‡Ú¹ ÿÿA)ÓsûþÈy÷ÓIAþÌx ÑêÑá)ÓsóÓëð‰Ú‹\Ë‹L ‹D"‰D ‰L ‰\‰T‡Ú‹Lˇڋ \)Ós,Sˉ\è Qè Z„ÀuH‹\ ‹LÙ÷Ú‰Ó‰\è 7º ‹\C뻊Dˆ‹\‹T0À)ÓsŒØŽÀè o„ÀtŠDº ÿÿèø  þÈtþÀtäÃèø ŠDþÈxÑãëø‰\ÊD$ÀˆÂ¶»ø` Ó‹…Òu%SÆè *„ÀuŠDº ÿÿèø „Àtì<ÿuïéø  [‹T‰‰Tè 91ÀÃÆŠT€â¶»ø`ÓÓÓ0Àö€uŠˆDÿgÃRS$ˆÂ¶»ø`"ÓŠ[ZÃ�\‡ÚŒÝŒØ¹ éø þûDSKTBLüOriginü¬Unitý0DataýDSKDRAüDSKASTúø``ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ þûBIOSüOriginü¬UnitýRDataýCOLDSTýWARMSTý·CodeýGETSDSýCINTRYýMEMTBLüDBCFCNúø`ø`ør $($ 3,6;AEI� ¤¨¬°! $ DSKú‰Ó0À€?s‹WŠ·Ûèø ÿ—ø`ñ ë#±ë±ë±ë±è �Kú ‰`*ÃJ‰`,ñëm±!ë±"Q±è aˆÂ±0Àèø  þÈxÑãëø‰Ú» 0À‹ø`* …ÉtÓsþÀâø‹`,ÓsþÀ‰`O¢`Qº`.R±è ZY„Àuè  à ÿÃB‰Óñ3ë »ø` ñë±°ÿéø þûPGMLODüOriginü¬Unitý[Dataý CodeýLDIRýINCMOBýXCNTRYýCPMVERýDECMOBü&BASPAGüPLFCNú úÇDS ‹D]‹\UŒÝºø`¹ èø Æø`"ÿtjÇDj`¦ÿtlŒ\lè Oté X»`&¹ 0ÆCâúèø »ø`¦Š„Àué |‹W‹G Àt‰Â‹G Àt‰Â…Òt]‹GS£`V‰`Xº`V±5…ÀtþÁèø [„Àté Ê¡ø`X‹W…Òu‹W9Ðsé ³ŠSè æ¡`V‰G¡`X²¹ ÑàÐÒâúH= ÿÿ uþʉˆW[ƒÃ é {ÿèø ¡ø`/…ÀuÆ`+¡`&Š`(£`,ˆ`.¡`)£`/ÇDj`&Ça¦»`¦ Š„Àt7‹Oã-Sè ~‹o�>a¦uè úãŒØ‹`º Q¹ èø ‰ø` EYâÛ[ƒÃ ëÌػ`&‹.`/º ¹ 0èø ¡ø`/ë?è H»`&¹ ‹G…Àt'Q£`V ‹ŠW@…Àuþ¹ ÐêÑØâú£`XÆ`ZSè [YƒÃâ͸ ÿÿ‰DO= ÿÿta€>ø`1rZ¡ø`#…ÀtS£`#Æ`%º`±!èø „Àu?è Âu:¹ »ø`&Š„Àt.SPè º ‹WXÐèÐèÐèÐèè «‹G[GŽÀSŠ_·&[ƒÃâÎëÁº`±èø  �Dl�Djƒ|Oÿuèø è ÃQƒùrTÿtjÿtlŠ„ ŠPÇDj ‰llQ�á øÿ ÍXU±ÓèHP$ˆ„ Š X±Óè@‰ÁQè 1Š„ ŠÆ„ Š@±ÓàDlYâè]Xˆ„ Š�Dl�DjUè Çøa&]Y�á ú`±èø  „ÀÃþÈ$´À»ø`&ÃÃÃú`V±9éø þûNONFILüOriginü¬UnitýDataýøCodeýCOMPATýCLSAFPýFREDRVýXTNTRYýUnitýOriginý USRFCNüCPMVERüROSFCNü RVNFCNüDT1FCNüZDT2FCNüaDT3FCNü¦SRCFCNü¹CLOFCNü¿ROUFCNüÜEXTFCNú1 ú ø`ˆ„ ‰èø éø  ø`ˆDOŒ\_Ë\UŽD]&‹R&ŠGè ˆÆ&ŠGè ˆÂ[�à Î*µ± éø PÐÈÐÈÐÈÐÈ$ˆÅX$þÅþÍt ëøÃè ˆDOÃè &ˆGñ è �ë Î* ‰Ø‹\UŽD]&‰ˆðè &ˆGˆÐè &ˆGˆè±ÿþÁ, sú ÐáÐáÐáÐáÈËDU= ÿÿt£ø`á`‰DOÀ¤ ˆ ¿ÃÆDS0Àö„ ˆ €t €ˆDTÇDUø`ÇDQø` Ë\Q‹Lj‹TUŽDlèø   ‰TU‰LS‰\Q‰DOÃþûCONMGRüOriginü¬UnitýDataý‰CodeýINPLNýATNCHRýCKDOSTýDOCONIýATNBELýRESCHRý ABTCHRý PRTCHRý ECOCHRý EOPFCNý ERRXITýLSTOUTýCONASTüCOLCNTüCIFCNüíCONINü#ECHOü COFCNüYCONOUTüXRCIFCNü_RCOFCNüeDCFCNüèCONSTüŒPBFCNü¦CIBFCNü¯CSFCNü¶SRTFCNüÊPBCFCNüoXFRCDü CONINIüCKATTNüeCONOIüiCONSOümCONSIú$úè ê< s< t < t< t<uPè XˆDOÊDUˆÁ< s(< t < u$Æø`ë `$ø*`ˆÁµQ± è Yâ÷Ãþ`é è ’ˆDOÊLUé ôŠDUˆÁþÀtþÀtþÀté àè lë è g„Àtè eˆDOË\UŽD]&ŠC:`t Sè ‚ÿ [ëíË\UŽD]éø è 6 ˆDOË\Uƒûÿtˆø`à`ˆDOË\UŽD]&‹O&‹ã&ŠCIQSè @ÿ[YëðÃ²é ‚è :ø`tÃè &ëñè éÿ„Àuèø téø ²ë`è Öÿ„Àt:ø`tÃè ëÿŠø`„Étè :è Ýÿ:ø`t!:ø `t:ø `t:ø `uÚ€´ ‡ö„ ‡uéø  Ãéø  ö„ ‡tQèø Y²ë²ë² ŠDg„ÀtþÈ´»ø` ÃÃÊ/ÿgÃþûCONTBLüOriginü¬Unitý DataýCONDRAüATNCHRüRESCHRüABTCHRüECOCHRüPRTCHRüCONASTüATNBELú ø`þûDOMGRüOriginü¬Unitý Dataý�CodeýXCNTRYýSETCBFýUNLINKýSAVCLBýLDIRýCLRCLBý LNKBEGý ALLOCý DEALOCüDOCONIü‡ADFFCNüoCKDOSTúøa!ú‹`þuFCÿtjÿtl‰\jŒ\lŠTnŠ´ ŠR `ˆDnÆ„ Š‹`±èø ZˆTnˆ´ Š�Dl�Dj‹ø`Æ€„ÀtÆG°�*´Ê< t¤<uè Óè tè ‰`‹`è ‰`èø ° Ãèø  ƒÂËDU…Àué ŠDn¢ø`èø uW‹ø`…Òt è W‹`è Pè Ï» …è Pu:‰`Æ» %è Au+‰` ‰ÚŒÝ‹\U‹D]¹ èø ‹ø` ÆG ÆG ‰Ú±èø „Àtè èø ÆDOÿÃê»ø`éø  èø  ƒÃ„ÀÃè #è `tè ‹ø`SƒÃè 1[è é æÿÃèø ‰Óéø  ‹ø`…Ûtè è ‹`…Ût4è ë/ƒëéø  SŠDnP ø`ˆDn‰Ú±èø XˆDn[Ëø`…ÛË`º`)ÚÃÇ` Ç` ÃþûINPLNüOriginü¬Unitý¨CodeýECHOýDMSýCONINýCONOUTüINPLNú &Š/C&ÆSC0ÀPè „ˆÁ<t<< s<t4< t5<t<<t8XP8ès&ˆCXþÀPˆÈ< s@ˆÁQ±^è VYë±è Në»è ë¶èø X[&ˆÃè  uûë¤ZX„ÀtPè K&Š< sè  XþÈPRÃSQRèø   ZY[ÃSQèø Y[ÃSQèø Y[ÃþûLSTMGRüOriginü¬Unitý8CodeýEOPCHRýSPLOUTýCONOIýSPLEOPýCALCBVýDSPINPýPTRASTüPBLFCNüžLSTOUTüSRPFCNüÐEOPFCNü›LOFCNüXFRLDú‹\UŽD]&‹O&‹ãIQ&ŠCSè …[YëðË\UŠDTˆÁ ø ØþÀtLQSè �[YˆøþÀt þÈ<sˆDhˆØ<ÿt#€Œ ‡@þÈt €¤ ‡¿þÀu ŠDh<r ÆDhëÆDhÿˆÈþÁt$ˆ„ ‚Ê|h³ö„ ‡@uˆøþÀuþÃþÉ\QŠ„ ‚ˆDOÊLU ø` „Àt8Èt'€Œ ‡€ö„ ‡@uŠDhþÀtþÈtè ^uµë2éø éø Ãö„ ‡€t#€¤ ‡ö„ ‡@uŠDhþÀtþÈt è 0uµëéø ÊDhþÈèø ¡ø` !ØuˆêŠDhëÃè u „ÀtŠ/ÿgÃþÈ´»ø`ÃÃÊþÀtö€ÃþûLSTTBLüOriginü¬UnitýqDataýLSTDRAüEOPCHRüDSPPATüPTRASTüAQUEASTúø`ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ þûSPOOLRüOriginü¬UnitýDataýXCodeýALLOCýLDIRýUSRSAVýXCNTRYýSPLERRýERRXITý XTNTRYý DEALOCüSPLOUTü3SPLEOPü_FLBFCNú-PRINT-?000úö„ ‡ té áQ» �èø Y„Àté ‰œ …Æ€ö„ ‡@ué ¼Q» !è Y„Àté ㉜ ƒQ»ø` ¹ þ€?:rÆ0Kâóë닜 ƒSŠ„ ‚þÀˆC‰Ú»`¹ ŒØŒÝèø [ÆG ŠDh„Àt@ˆG‰ÚRÿtjÿtl‹„ …@‰DjŒ\lÿtzÿt|ÿt~ŠLnQ ø`ˆDn±èø YˆLn�D~�D|�Dz�Dl�Dj[þÀté vÿ ÆG ‰ÚŠLnQ ø`ˆDn±èø  YˆLnY„Àu3€Œ ‡ ‹œ …°�*´È)Ãþu3ö„ ‡@toè ”„Àt%±è à€¤ ‡ßëè è 'èø þÀuéø €¤ ‡¿ÆDhÃö„ ‡ t€¤ ‡ßö„ ‡@u è ,²ÿè -ë è JŠLhè ™è Øé çö„ ‡@uö„ ‡ tè ²ëÃè ® uÃÿtjÿtl‹„ …@‰DjŒ\lŠthþα èø  �Dl�DjÃè †tO°€(Ðt´‰Á¶ÓCÆâúÿtjÿtl‹„ … @‰DjŒ\lŠLnЬ ŠQÆ„ Š ø`ˆDn‹” ƒ±èø YˆLnˆ¬ Š �Dl�DjÃQŠLnQ ø`ˆDn‹” ƒ±èø YˆLnY„ÀuþÉxˆÏŠø`€Ë€‹” ƒ±éø  Ëœ … ²€*tƀËœ ƒ…Ût èø  Ç„!ƒËœ ……Ût è Ç„!…ÃþûSPLMSGüOriginü¬Unitý\CodeýDMSýCONSOýCONSTýCONINIýCONSIýUPRCASüSPLERRúèø èø èø Spooler error (Ignore, Abort) èø „Àtèø ëôè Pèø Xèø ˆÁ ø`"þÈ(È<ÿt  ` þÀ(È<të¥ÃþûCOMMGRüOriginü¬UnitýRCodeýCOMDRVüCCSFCNü CCIFCNüCCOFCNü SCBFCNü(RCBFCNü4SMCFCNü<RMCFCNúè E²èø ˆDOÃè 9²è ˆDOÃè -²é è %²é è ²è ˆDOÃè ²é è ²è  ˆDOÊLUŠlV€åÃþûRTCMGRüOriginü¬UnitýDataý_CodeýTICCNTüJDATEüSECSüMINSüHOURSüSDTFCNüRDTFCNü,RTCSECú €ú‹DQ£ø`‹DU£`ŠDT¢`á`‰DQ¡`‰DU `ˆDT ø`ˆDSûø`þŠ<` €tÿ`ÃþûDSPCHRüOriginü¬UnitýVDataýOCodeýXTNTRYý!DEALOCýALLOCýLNKENDýUNLINKýLNKBEGý GETSDSüTICCNTüRDYSPHüCTPFCNü3CRPROCüCGETWSBüwSMFCNü}SNDMSGü SIGNALüˆRMFCNü’RCVMSGüWAITüžLNKPOLü¤ISRXITüîSETDRFüÍDISDSPüôDSPIFRüàENADSPüDPFCNüDELAYü”RESUMEüÁDLYTICü<GETTOSüJSETDDFú"øa c úT`ú ‹TU…Òt ‹\Qè &ˆDOñèø è *P€ø`U@ŒØŽÐ¼`T»`è ú[èø é SR» [èø ZY„Àu5QS¹ [ÆCâú[ ø`TˆGNþ`TY‰OD‰— Y�‡ Y ‰GFŒ_H�W3R»`è ¨[0ÀËTQ‹\USƒÃèø [é ƒ‹\Uè ‰\QÃè q‹_èø ‰Óûø`éø PVèø  öø`U@uè � ‰ÆöD7@u ÇDL`è bëè %^XÏ€d7öD7@t€L7€€L7@Ãè  öD7€u€d7¿Ã€`U€Ãö`U€uÀ&`U»`ëúþxû0ÀÃþ°ÿë‹\U…Ûtå‰\8»` ú‰\L€`U@û‰D:‰\<‰L>‰T@‰lB‰|D‰dFŒTHŒDJŒØŽм`T€&`Ußè t‹`�û` t ÿ7�GÿÐ[ëðö`U u#è ωƻ`è ª ‹\LúŠþÈxˆ»`è �û€`U  `„Àt¸è ¥‰ÆŽDJŽTH‹dF‹|D‹lB‹T@‹L>‹\<‹D:€&`U¿Ãÿ`ÿ`Ãú‹`Ç` û…Òt0‹` �û` t&)Wt r‹ëïÇG Rÿ7èø »ø` èø »ø` è [ZëÔÃè „Àt»`è  °ÿÜúþCCèø �ÜúŠþ„À°y‹_èø °ÿ�Ãè  [áø`- 3ÀO@ÃþûMEMMGRüOriginü¬UnitýkDataývCodeýEndDataýMEMTBLýUNLINKýLNKBEGýLDIRüOSMLENüOSMTOPüMEMNITüSAMFCNü`ALLOCüëDMFCNüîDEALOCüeRRMFCNüpRAMFCNü{ARMFCNü„AAMFCNü%FMSFCNüîFAMFCNülINCMOBüqDECMOBú!€øa%ú¸ø`±Óèè 6£ø`¡ø`ø`ƒ>`t 9`s¡`ŒÙ÷ÙÁ�é r)È+ø`è uH£ø` ûø`)G‹ŒÙ)ȱÓàÃúS‹\Uè ‰\QˆDOÉø` º )Ós‰` Ç` ÿÿÇ` »`‹�û`t‹Wþ¡` @@)Ât/rê9`rä‰`‰`ëÚ‹`…Ût¡`= r ‰GþË` BBë$èø ‰Ó0ÀËø` ‹` BB)Ó°ÿr;`r ‰` CC‰Wþ0ÀË\U‰`‹Wþ‹`�û`t5¡` Ð9Øt‹GþØ;` t‹ëâWþRèø Z‹ø`‰WþëÍRèø  ‰ÓZWþ뺋ø`»`èø ‹ø`�û`t‰ØHH;` t‹ëì‹Gþ` èø ëÜ0Àý è "„ÀuVý è „Àuaý è 3tBý è *tOÃÇDS è ø „Àt‡ÚþÀt¡ø`)GÆ`j ‡Ú°ÿÃÆDOÿÃÇDS è ÑþÀtÆDOÿËG‡Ú+G‰‹G‡Ú)GëA‹O‡Ú‹‡Ú+‰G‰Óÿ7ÿw‹G‰)Á‰OS `PÆ`‰Ú»`è X¢`[�G�‰Ú»`>è é /ÇDS ‹TU±ÓêT]»`>¹ ‹G…Àt ;r9Âr ƒÃâêÆDOÿà`PŠG¢`è ì€>`jÿu(»`>¹ ‹G…Àt `:Gs SQè LY[ÇG ƒÃâàëXþ`è o rK‹O‰GŠG¢`‰Óÿ7ÿw‹G‰)Á‰OS‰Ú»`>è ^[�G�è ë `PÆ`‰Ú»`è BX¢`ÃÆDOÿX¢`û`>è $»`è Æ`Šø`µº`RQ»ø`è YZƒÂâñù (ÆCâúÃÇ` ¹ ƒt/ `:Gu2‹G‡Ú;t‹G‡Ú;u‡Úè  )ËG‡ÚGá`…Àu‰`ƒÃ⻋`…Ût `ˆG‡Ú‹‹O‡Ú‰‰OÃUè ½]»`º`fÆ`¹  …íu‹‡Ú‰‡Úè wr0÷ØG‡Ú+G‡Ús/€>`ÿt÷Ø€>`Æ`u;`s£`‰`ƒÃ⺠`‹`Ãt€>`ÿÆ`ÿuÞëÖÇ` °ÿû`>º`f¹  `:Gsè rtƒÃâìùËG…Àùt‡Ú‹‡Ú+rP‹G‡Ú++G‡ÚXr9ÀøÃè éø è ‡Ú•é ‹\U‹D]ºø`fŒÝ¹ Ãþ`Ãþ`ÃþûCOMSUBüOriginü¬UnitýDataýéCodeýCONOUTýSYSDATüUndDataüUndCodeüTSTUNDü DEXLATü0SHL7BXü7DECOUTüuUNLINKüƒLNKENDü†LNKBEGü™DMSüŸDMSBXü¯UPRCASüºCALCBVüÈLDIRüËLDDRüãGETSDSú!ú0ÀÃ0À�ûø`ù ŠCþÀtþÈy$8àu ;uˆÈöØÃCCâà °ÿÃQ±ÓãYôº 'è º èè º dè º è þĺ ±ÿþÁ)ÓsúÓ„Éu„ät €Á0PSèø [XþÄË‹G‡Ú‰G“‰Ë_‹‰“‹O‰W ‡Ú‰‰OÃ[è  ÿã.ŠC„ÉtSè [ëñÃ2å ÿÍ2ª2«á#~þ:Âå#~æþ Ê…++~ÖB2#+~æþ Ê…ÍI:­·ÂO*Í!«^ Í*}´Â=2¬ÍþÿÊ2!Í Í·Â«!*~þÊ«þ Êþ Ê¥þ ˜å!:K=¾Â�G:¬·xÊzáÍÂÚ«å!Í ÍÚ>2Ã�!õÍ Íñ=g¯oÍ Ó!4¯2á:<2þO~Ò¸Í Í·Ê¸ÍÍÂÚ«>©½#Â7Ã(åþÊþ!Í Í+ÍHit any key to continue, ^C to abort$Íþ7Ê> Í ͽ:=o:gÍ ·áÉ> Í :<2þPʸæʸÃ!Í ÍFile not found !$ë!Í ÍWild card file specification not allowed.$ë!Í ÍIllegal file specification !$Í!ª^ ÍÉå*|µáÂ>!JþÐG> Í x<ÃÉå*|µáÂÅÕå:KO ú :JW> Í Âó> Í > Í Ãë!Í áÑÁÉã~#þ$Ê!Í ÃãÉæþaØþ{ÐÖ ÉëÖ0§øþ ?Ø)å))Á O Ã2:\#~þ:+Âf~Í#Ö@þÒd##~Í#þ.Ê…þ*Ìûþ;Ê…þ!Ú…#Ç>  Âi~æþ.–#~Í#þ*Ìûþ Ê´þ;Ê´þÚ´#ö>  ˜~Í##þ;ʼþ ÊîþSÂáåÍ.}áþ Ò¼2«üþP¼>ÿ2¬ü!6# ÂóÉõ>ÿ2­ñ>? Âû Éå*(}´áÂ'å*%}´áÂ$å*"}´áÂ!å*}´áÂÉ ˜~Í##þ;ʼþ ÊîþSÂáåÍ.}áþ Ò¼2«üþP¼>ÿ2¬ü!6# ÂóÉõ>ÿ2­,=0 ; reset top row __C1: CALL PRAMOUT ; send scrolling command PUSH DX ; SAVE CURRENT ROW/COLUMN MOV DH,=0 ; SET COLUMN ONE CALL CUPEOL ; clear unprotected end of line POP DX ; RESTORE ROW/COLUMN RET ; all done ; HZTAB: ; horizontal tab. CONTROL-I MOV AL,DH ; get current column XOR AH,AH ; make double length MOV CL,TABSIZ ; get the tab size DIV CL ; calc last tab column MOV AL,TABSIZ SUB AL,AH ; calc length to next stop ADD AL,DH ; calc next tab stop CMP AL,=NMBCOLS ; test against number of columns JNC __X ; if over limit, continue, no change MOV DH,AL ; set new column number __X: RET ; all done ; ; BEGESC: MOV DI,&ESCTBL ; get control char lookup table MOV SI,&ETBLXEC ; get pointer to execution tbl MOV BX,=ETBLEN-1 ; get length of excape table TBLOOKX: MOV AL,CL ; load char MOV CX,BX ; get table length INC CX REPNZ SCAS BYTE ; look for a match JZ __C ; if found, continue RET ; else just exit ; __C: SUB BX,CX ; calc length into table ADD BX,BX ; time 2 for execute table JMPI [BX+SI] ; execute the function ; ; ; +-----------------------------------+ ; | ANSII SEQUENCE FUNCTIONS | ; +-----------------------------------+ ; ; Start up ANSII sequence ; BEGANS: MOV NXTSEQ,&ANSPARS ; setup ANSII buffer routine MOV ASCBP,&ASCBUF ; initialize ANSII buffer MOV ASCOPT,=0 ; clear ANSII option boolean RET ; ; Buffer characters in ANSII buffer ; ANSPARS: CMP CL,=A0 ; Is the character < 0 ? JB __X1 CMP CL,=ASC ; No, is it a ";" ? JE __X CMP CL,=A9 ; No, is it > 9 ? JA __X1 __X: MOV BX,ASCBP ; No, it's in [0..9, ;] CMP BX,&ASCBUFE ; Is there room in buffer ? JE __X2  MOV [BX],CL ; Yes, store char INC BX ; Move to next buffer pos MOV ASCBP,BX MOV NXTSEQ,&ANSPARS ; Continue to accumulate chars __X2: RET ; ; Process ANSII command in CL ; __X1: TEST ASCOPT,=1 ; Is this an option command ? JZ __X3 MOV DI,&OPTTBL ; Yes, look for char in OPTTBL MOV SI,&OPTXEC ; Execute off OPTXEC MOV BX,=OPTLEN-1 ; OPTTBL length JMP TBLOOKX __X3: MOV SI,&ATBLXEC ; Execute off of ATBLXEC MOV DI,&ANSTBL ; Look for char in ANSTBL MOV BX,=ATBLEN-1 ; ANSTBL length JMP TBLOOKX ; ; Convert ASCII parameter to binary ; ; Assume SI = ^Buffer, BX = Default value, DX = Minimum value ; Return CX = binary value ; ASCTOBIN: XOR AX,AX ; Clear out high byte for later MOV CX,BX ; Setup default value CALL ATBGET ; Get first character into AL JE __X ; IS there a character ? XOR CX,CX ; No, start accumulating __X0: MOV DI,CX ; Multiply accumulator by 10 SHL CX,=1 SHL CX,=1 JC __X1 ; Overflow ? ADD CX,DI JC __X1 ; Overflow ? SHL CX,=1 JC __X1 ; Overflow ? SUB AL,=A0 ; Convert ASCII to binary ADD CX,AX ; Add in new digit JC __X1 ; Is this an overflow ? CALL ATBGET ; Get new character into AL JNZ __X0 ; Is there a valid character ? CMP CX,DX ; No, is return > minimum ? JAE __X MOV CX,DX  ; No, return minimum __X: RET __X1: MOV CX,BX ; Overflow, flush parameter __X2: CALL ATBGET ; Get next parameter char JNE __X2 ; End of parameter ? RET ATBGET: ; Get char in AL, return Z set ; if character invalid CMP SI,ASCBP ; Is the buffer empty ? JE __X LODS BYTE ; Get character into AX CMP AL,=ASC ; Is it a ";" ? __X: RET ; ; Get a 1-based parameter and return it in CX ; GET1PRM: PUSH DX ; Save current cursor position MOV SI,&ASCBUF ; Start at beginning of buffer MOV DX,BX ; Set default to minimum CALL ASCTOBIN ; Get parameter value POP DX ; Recover cursor position RET ; ; Multiple parameter read and dispatch ; Assume AX = ^handler routine ; ADISP: MOV ASCADR,AX ; Save parameter handler addr MOV SI,&ASCBUF ; Get pointer to param buffer PUSH DX ; Save current position XOR DX,DX ; Set minimum parameter __C: CMP SI,ASCBP ; Are there any parameters left? JE __X MOV BX,DX ; Make default parameter 0 CALL ASCTOBIN ; Get parameter value CALLI ASCADR ; Call handler routine JMP __C ; Go get next parameter __X: POP DX ; Recover cursor position RET ; ; ANSII Set attribute ; AATTR: MOV CURATTR,=DEFATTR ; Set attribute to green MOV AX,&AATRHAN ; Get address of attr handler JMP ADISP ; Go handle attributes AATRHAN: T$EST CX,=0XFFE8 ; Is this a valid parameter ? JNZ __C TEST CL,=0X10 ; Yes, is the color bit set ? JNZ __CLR MOV BX,CX ; No, assemble special attrib. MOV AL,ATTRTBL[BX] ; Get attribute bit OR CURATTR,AL ; Include it in new attribute __C: RET ; Get another attribute __CLR: AND CURATTR,=0X1F ; Clear out old color SHL CL,=1 ; Shift new color into position SHL CL,=1 SHL CL,=1 SHL CL,=1 SHL CL,=1 OR CURATTR,CL ; Include new color RET ; Get another attribute ; ; ANSII option set ; ASETOPT: MOV ASCOPT,=1 ; Set ANSII option mode MOV NXTSEQ,&ANSPARS ; Continue parsing parameters RET AENABLE: MOV AX,&AENHAN ; Setup to handle option #'s JMP ADISP ; Start parsing parameters AENHAN: CMP CX,=ACSPRM ; Is this a cursor enable ? JNE __X OR FLAGS,=CSRFL ; Yes, enable the cursor __X: RET ADISABLE: MOV AX,&ADISHAN ; Setup to handle option #'s JMP ADISP ; Start parsing parameters ADISHAN: CMP CX,=ACSPRM ; Is this a cursor disable ? JNE __X AND FLAGS,=~CSRFL ; Yes, disable the cursor __X: RET ; ; ANSII Set X-Y coordinate ; ASETXY: MOV SI,&ASCBUF ; Get pointer to param buffer PUSH DX ; Save current position MOV DX,=0X0001 ; Minimum line number to 1 MOV BX,DX ; Default line number to 1 CALL ASCTOBIN ; Convert parameter to binary CMP CX,=NMBROWS ; Is this beyond last row ? JA __X PUSH CX ; No, save this for later CALL ASCTOBIN ; Convert next parameter POP DX ; Get row back into DL CMP CX,=NMBCOLS ; Is this beyond last column ? JA __X MOV DH,CL ; Get column in DH SUB DX,=0X0101 ; Convert to 0-based coords POP AX ; Trash old position JMP FCKWP ; Go set position __X: POP DX ; Return with old position RET ; ; ANSII Cursor right ; ARIGHT: MOV AX,&NFSP ; Get address of cursor mover JMP ANSCSR ; Go move cursor ; ; ANSII Cursor left ; ALEFT: MOV AX,&BACKSP ; Get address of cursor mover JMP ANSCSR ; Go move cursor ; ; ANSII Cursor down ; ADOWN: MOV AX,&LINE ; Get address of cursor mover JMP ANSCSR ; Go move cursor ; ; ANSII Cursor up ; AUP: MOV AX,&RLINE ; Get address of cursor mover ANSCSR: MOV ASCADR,AX ; Save address of cursor mover MOV BX,=0X0001 ; Set minimum and default to 1 CALL GET1PRM ; Get move count into CX PUSH FLAGS ; Save flags OR FLAGS,=ANSFL ; Set ANSII mode __X: PUSH CX ; Save count just in case CALLI ASCADR ; Move cursor up POP CX ; Get count back LOOP __X ; Go as many times as specified POP FLAGS ; Restore flags RET ; ; ANSII Line clear sequences ; ALINE: MOV SI,&ALNEXEC ; Get jump table for line code JMP APLXEC ; Get param and execute ; ; ANSII Page clear sequence__R: MOV SI,BX ; Recover critical registers POP DI ; Pop destination register POP DS MOV AL,WRFLAG ; Set dirty bit if write OR DIRTYBUF,AL XOR AL,AL ; Reset clock timeout MOV CLKCHK,AL MOV DRVRBUSY,AL RET SETDMA: OUT DMAMODE,AL ; Setup read/write mode CALL DELAY ; Couldn't hurt XOR AL,AL ; Transfer at start of buffer OUT DMAADDR,AL ; Setup low part of address CALL DELAY OUT DMAADDR,AL ; Setup high part of address CALL DELAY MOV AL,=0X1FFF % 0X100 ; Get low part of track size OUT DMATC,AL CALL DELAY MOV AL,=0X1FFF / 0X100 ; Get high part of track size OUT DMATC,AL CALL DELAY  MOV AL,=01 ; Set DMA mask OUT DMAMASK,AL CALL DELAY RET DELAY: PUSH CX ; Save counter register PUSHF ; Save flags MOV CX,=0X10 ; Setup count __L: LOOP __L ; Wait for a while POPF ; Restore flags and counter POP CX RET SENDCMD: XOR AL,AL ; Reset completion status OUT INTREG,AL CALL DELAY ; Couldn't hurt XOR CH,CH ; Get number of parameters MOV CL,[BX] JCXZ __CMD ; Are there any parameters ? MOV AL,=0X40 ; Write CLDB to formatter OUT FMTREG,AL CALL DELAY __FWT: IN AL,FMTREG ; Can formatter accept byte ? TEST AL,=0X20 JZ __FWT __PMOR$$é8�COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 04/30/84) Œ`‰&bŒØŽÐ¼`²ÿ± Íࢃ¢„¢… \„Àu6 ]< u/ e< u( k„Àu! l„Àu m< u u< u  {„Àu€€¾€Š„ÀtþÀˆÁµ¿ŒŒØŽÀüó¤ö€tè® �¢‚¼`èÔ  ‚¢�è™è¿ èÒ èè²èÄè- èÔè{ ö€uÒéÎ  ]< u e< u \„Àu k„ÀtO»]è? m< u u< u l„Àu {„Àt3»mè€&€û»]¹ ŠC$t¹ ŠG$Š'C€ä8Äuâïé–‹jr‰në ‰lC‰j‹n‹lÓu¯‹r…ÛuéoK‰r‹pèzº Ó‡Ú‹)ÓrT‹p‹j)ÓtÛS‹pèh‰ÚBKY‰Þ‰×ŒØŽÀýó¤‹pè>‰ß‹6t¹ ŒØŽÀüó¤‹jè:‹p‰B‰p±éãþè–€€éLôÑëÑëÑëÃè‹èdÃÛÛSÛYËÃÛfÃèÔ * º‹± Í໌Š´C‰~ÃÆ„ÀtÃè¯ Ž`‹&bË when change complete Ãè( Unable to lock out destination drive Ãèû Unable to free drive ÃèÞ Insert next destination disk in drive: Ãè¯ Unable to open source fileÃè� Unable to create destination fileÃèd Unable to read source fileÃèB Unable to write destination fileÃè Unable to close source fileÃè÷ Unable to close destination fileÃèÏ Unable to set attributes on source fileÃè  Unable to set attributes on destination fileÃèl Insufficient memory for copy ÃèF Non-privileged userÃè+ Insufficient memoryÃè not found ÃS‰å‹^Uè]‰^[ÜP.ŠC„Àtè2ëóX�ÃSQR± ÍàZY[ÃSQR±ÍàZY[ÃSQR²þ±Íà„Àtö²ÿ±ÍàZY[ÃPSQR$ˆÂ±ÍàZY[XÃ�HÖYNABCERXNN""é7�COPYRIGHT 1984, SOFTWARE 2000 INC. (VERSION 01/24/84) Œ`‰&bŒØŽÐ¼`ººè�»€Š„ÀuéèWºÒ舻€ŠC‰ß‹dè~�û€u/è9�û€uº½èdë ¿§èĺ§èVºÇèP° è5u¸èë ‰d€uºÒè5¿§‹d蓺§è%ººèèíºÚè¿q»±èÀº±èºÈè°èæuèÈë!¹»qÆCâú»€ŠC¿qè¿q»±è‡ºÚèκ±èÈ€uººè½ u$ttè˜öuu‰döuu ˆ.sˆrˆ6q‹dŠ6qŠrŠ.s± Íßë=èEºÒèv¿§‹dèÔº§èfººè`è.ºÚèW¿q»±èº±èHººèB1ÀŽ`‹&bËè‰dÃè„Àu#ˆ.sˆrˆ6qñ Íßûˆ‰Ú± Íà €„Àúëµ± ÍàÃS0À¢f¢g¢h¢jþÀ¢iµã\»kŠGè¸<0r%<9w!,0€>iu¾hë€>iuþi¾fè ë(it€>iuþi€>jsˆCþjâ§[è-€>it n¢f j„ÀtN¾v¹ ¿k½ j´9Ås$Šè3ˆÄŠè,8àuE j´9Årݸ )È¢gëÓ€>guFFFâÁ€>gtxë o¢g h„Àu p¢h g„Àt\ h„ÀtU f$uþ›»€>f0tw fè)Ãþfëéþf fèÃëÛ¾š0äþgtŠFÃëó hþÈ´ÃCÆ›û€ÃŠ$ää$äĈ$Ãè?…Àu ¹ Æ*GâúÉû pèLÆ C oþÈ´‰ÆöƹŠ„vFˆCâöÆ C nè$Ã1À¢n¢o¢p�û€ttKÆn0 n…ÛyþÈècS…Ûy÷Û9Ã[|…ÛyþnÃëÜþn)ÃëÔ…Ûy þn nè5àn$uþ›‰Ú»šŠ´9Â| þo)ÂCëïþoBˆpÆ›¸ÿÿÃ$¸mu@õÆt€>ttFèNtKs €>ttòë6QˆÁ t„ÀuˆþÀ¢tŠˆÅÀÀèÀÈY<r¹ ŠG$Š'C€ä8Äuâïé–‹hr‰lë ‰jC‰h‹l‹jÓu¯‹p…ÛuérK‰p‹nè6º Ó‡Ú‹)ÓrW‹n‹h)ÓtÛS‹nè$‰ÚBKY‰Þ‰×ŒØŽÀýó¤‹nèú‰ß‹6r¹ ŒØŽÀüó¤‹hèö‹n‰B‰nèr±éíþè¤é›ÑëÑëÑëËn…ÛuèaÉt€&œý»]¹ ŠC$µ±ÍàPèM±Íພ±ÍàþÀt €<åu �þÀu¾€¿Ž¹ŒØŽÀüó¤XˆÂ±Íà± Íß„Àuˆ.¼ˆ»ˆ6º‰dà\þÈy±ÍàˆÂÀ&®ýèc¸éèþÇtÇ|Ç~‹ºð‰l)Óè�Sè™Sè•XÃXÇÚÓ‰jÑê‰vèò±º\Íàèï<ÿuÃÀÀÀÀÀˆÂ¶»€ÓŠ<åué=‰x¹˽ŠC¶ µ„ÀtŠ7CI…ÒtEâé‰.zÇnÇp‹t…Ûtg‰r‹r‹p)ÓÑëÓ‰nèP‹>x¹ ŠG$Š'C€ä8Äuâï‹nè1ƒÃ ‹z‰éž‹nr‰rë ‰pC‰n‹r‹pÓu�‹v…Ûué˜K‰v‹tèðºÓ‡Ú‹)Ór}‹t‹n)ÓtÛS‹tèâ‰ÚBKY‰Þ‰×ŒØŽÀýó¤‹t贉ߋ6x¹ ŒØŽÀüó¤‹z‰R‹nè­‹t‰B‰tZ‹|‹zˉ|‰ÓS‹~)Ë[r‰~臱é’þ€&®ý臸é)ýÑëÑëÑëÃè¢ èZ‹t…ÛuɄdž€&®þ‹~ ¶»Ór þÈuøºè)Ór€®ö®°tþÈ¢±ö®u»ºÓþÈuú‹„)Ërбµºÿÿ‹„KB)ËsûB‰€‹†Ó‰ˆÓ‰ŠÓ‰Œè бµ»†ëèþ ö®tèî QèUYâáèß ‹„…ÛuË€K‰€…Ûu·è7èö<uÃ< tè´ëí. èðèdö®‹Œt‹Š‰†é*ÿ‹RB‰‰å‡^S‹t)Ó[s5èCèM‹Š¶µ»°¢²ÓsþÀâøö®tè€ëè–èÖÿ„[CCÃè?»�èè6 èø»šö€tè (H) ëè  è§èù ‹hƒûÿtè�èqëèzè× èÊ0À¢²‹tèôèr‹tƒûuè¯ ëèiè¥ Š°·0À¢²èÝ \þÈy±ÍàAèžèy:»]èJèn ‹|è è"èX Éڊ¶µ»0À¢²ÓsþÀâøèfèÁè2 ËdèD ¹„Àt2èâè Š¸·K‰ÚÓÓºËÓ¹ŠCè âøèù  ·èµë ¹ °*è âûÃ1À¢·¢¸¢¹�û€ttKÆ·0 ·…ÛyþÈècS…Ûy÷Û9Ã[|…Ûyþ·ÃëÜþ·)ÃëÔ…Ûy þ· ·è5à·$uþ¾‰Ú»½Š´9Â| þ¸)ÂCëïþ¸Bˆ¹Æ¾¸ÿÿÃ$¸mu@àºèèL: »èèA: ¼´/þÄ, yú:PˆàèNXèJùèö€tè:ëè.¹èÊCè%âøÃö®t. „Àt ˆÁµèê âùñ˜º€–èT±º@BèLè3±º †èA±º'è9±ºèè1豺dè&±º èˆØ0èÂÃP ²„Àtè”,ëè� XõÿþÅ)ÓÈsøÓÈPˆè„Àu  ²„Àu µðëÆ²ˆè0èXÃè‹èjÃSÛSÛYËYËÛÃÛlà°è ÃP ¯èXÈÂRèZ8ÐtR± ÍàèZ8Ðtè¸鄸²ÿ± ÍàÃS‰å‹^Uè]‰^[ÜP.ŠC„ÀtèëóX�Ãö®u/ëSQR±ÍàZY[ÃSQR²ÿ±Íà„ÀtöZY[ÃPSQR$ˆÂ±ÍàZY[XÃPSQR$ˆÂ±ÍàZY[Xà to Continue ÃèqÿKÃèkÿREMAININGÃè]ÿ DISK READ ONLYÃèFÿ FILEÃè<ÿSÃè6ÿDISPLAYEDÃè(ÿ Insufficient memory Ãè ÿ Network error Ãèôþ Non-privileged user Ãå ÿ?ÿLJanFebMarAprMayJunJulAugSepOctNovDecå>>88é:�{}COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/24/84) Œ*‰&,ŒØŽÐ¼®²ÿ± Íà¢7¢8 k„Àt i¢8è"è0è@¡(…Àtè§èÖèè)èŠèÝé# \„Àu ±ÍàþÀ¢\ûeŠ$< uÆDCÆOÃÇ(»€Š„Àta´ÃCÆ»€CŠ„ÀtO< tõCŠ„ÀtD< uõCŠ„Àt9< tõˆÁC<'t<"t± KS‹(C‰(Ûº¬ÓZ‰‰ÓKCŠ„Àt 8ÈuõÆëÀþ\¿¹ ŒØŽÀüó¤¹0Àóªè9º±Íàè6„ÀtétÇûe¹CŠ< t â÷<$uéWÆ$¿h¹ŒØŽÀü0Àóªèöº\±Íàº\±Íàèì„Àté*Ǧ�Ã.Š..Šè•<ué�8ètè¼ëã»è<tzºd±Íà„Àu3Љ± Íß„Àu'º½è;öˆuºè.º!è(1ÀëºÒëºéëºÿè¸Pº�è XŽ`‹&b˱ Íàñ Íà„Àt±ÍàëòÃÄëÚ€>bu‹~ ÿ5¸bPè«>ëæ€>Šu ‹~ ÿ5¸Šëé¸VPèÝ.ƒÄ먀>bu ¸VPèÊ.ƒÄèG+£D ¸bPèn+ƒÄ£F À}¡D £F ¸bPèÊ+ƒÄ£J À}è3+£J ¸ŠPè@+ƒÄ£H À}¡F £H ¸ŠPèœ+ƒÄ‰Fþ À}¡J ‰Fþ¸ŠPèä+ƒÄ‹ø‰~ü€=u¸bPèÐ+ƒÄ‹ø‰~ü€=u ¸VPè6.ƒÄ¸ŠPè ,ƒÄ‹ø‰~ú€=u¸bPèù+ƒÄ‹ø‰~ú€=uÇFú×ÿvúÿvüÿvþÿ6H èö+ƒÄP¸ŠPèŸ=ƒÄ¸bPèg+ƒÄ‰Fü¸ÛPÿvüÿ6J ÿ6F èÉ+ƒÄP¸bPèr=ƒÄ¸ßPÿvüÿ6J ÿ6F è©+ƒÄP¸vPèR=ƒÄ‹å]_^ÃVWU‹ìƒì ÇR ÿ6F èà)ƒÄ¸ãP¸bPè,ƒÄPèù.ƒÄ£< ¾¦ƒ>< t3ÿ6< ¸„P¸¦Pèˆ!ƒÄ Àu ÿ6< èÜ-ƒÄ鸦P¸åPès7ƒÄë¸ëPèg7ƒÄ¸¦Pè÷5ƒÄ€<ué芘PèçƒÄ ÀtFëPèýƒÄ Àt鲡R ÿR ÷.b ‹ø‰FþŠ˜PèÙƒÄ Àu Š˜P褃Ä Àu‹ÞFŠˆFô‹ßGŠFôˆëÒÆÿvþèT)ƒÄ‰Fü À}¡F ‰Füÿvþè±)ƒÄ‰Fú À}¡J ‰Fúÿvþèú)ƒÄ‰FøÿvþèI*ƒÄ‰Fö‹^ö€?tÿvöë¸îPÿvøÿvúÿvüèE*ƒÄPÿvþèï;ƒÄŠ˜Pè:ƒÄ Àuéÿé¿þ‹å]_^ÃVWU‹ì�fƒ~,t ƒ~t ƒ~ ¸ë+À]_^ÃVWU‹ì�fƒ~tƒ~;u¸ë+À]_^ÃVWU‹ìÿvè+ƒÄ‰F¾ž€<t‹þFŠ˜PèƒÄ;Fué¸ë+À]_^ÃVWU‹ìƒ~A|ƒ~Z‹F ë‹F]_^ÃVWU‹ìƒìƒ>R u ¸ðPèj+ƒÄ¸PPèŠ4ƒÄ‹ð Àu ¸ PèP+ƒÄ‰6€¸Pèl4ƒÄ‹ð Àu ¸*Pè2+ƒÄ‰6‚ÇT ¾P€ €Vè<$ƒÄ‹>‚‰÷.‹ø>€€M¸rPè'ÿƒÄ Àu*¸mPèÿƒÄ Àu¸sPè ÿƒÄ Àu¸uPèýþƒÄ Àt:¸cPèïþƒÄ ÀtÇFþYëÇFþ^¸cPÿvþè6,ƒÄ£B Àu¸ePè—*ƒÄëÇB ÇN ÇL €‹å]_^ÃVWU‹ìƒì#¸zPè±4ƒÄ+À‰Fè‰Fê¸rPèƒþƒÄ Àtè˜)+ÀPès)ƒÄ¸‚Pÿ6B è˜4ƒÄƒ.L ÇFþ�~þ}‹~þÿFþÑç>‚ÇÿÿëçÇV ÇFúëÿFú‹Fú;R |éw‹Fú÷.b PèŸ&ƒÄPèD&ƒÄ¸ªP‹Fú÷.b Pèt(ƒÄPèV+ƒÄ£: Àu‹Fú÷.b P¸­Pèò3ƒÄ¸²Pè¢)ƒÄè]èj‰Fø‹Fø%ð=ðt‹Fø%@‰Fö�føà‹Føé̃~îÿt‹Fî÷.‹ø>€€M‹FöÿNö Àué¹è ëîƒ~îÿt‹Fî÷.‹ø>€€M‹FöÿNö Àué�è(ëî�FßPèwƒÄ�FßPèó8ƒÄ‹ø¸žPèç8ƒÄÇ=|éa�FßP¸žPè98é=èºëèæ‰Fò‹~òÑç>‚‹‰Fðé7èωFôèɉFò‹~òÑç>‚‹‰Fîé�FßPèƒÄ¸cPèÌüƒÄ Àt¸rPè¾üƒÄ Àu�FßP¸ÉPèÈ2ƒÄ¸rPè¢üƒÄ ÀuéÕ¸Pè‘'ƒÄ�FßP¸ÐPÿ6B è²2ƒÄÇFìé±èI‰FôèC‰Fò�FßP葃ĸÚP�FßPè§7ƒÄ ÀuQÇFêƒ~òu+ÀPè$øƒÄ;Fôt ¸‚Pè(ƒÄ�FßPèé ƒÄ‰Fþ=ÿÿuéЋFþ÷.‹ø>€öEuéºé8¸áP�FßPèD7ƒÄ ÀuPÇFè�FßPè¤ ƒÄ‰Fþ=ÿÿué‹‹Fþ÷.‹ø>€öEtxƒ~òuÿvþèσÄ;Fôué⸂Pèt'ƒÄëU�FßPèH7ƒÄH‰Fü À~C‹ý~ü€}ß_u8‹ý~üÆEßA�FßPè3 ƒÄ‰Fþ=ÿÿt‹Fþ÷.‹ø>€öEt ‹ý~üþEßëÑ�FßPè ƒÄ‰Fþ=ÿÿt(‹Fþ÷.‹ø>€öEt%�FßP¸æPè01ƒÄÇFþÿÿë�FßPèúƒÄ‰Fþ=ÿÿƒ~þÿu醋Fþ÷.‹ø>€€M‹Fþ÷.‹ø>€‹Fô‰E ‹~òÑç>‚‹‰Fò=ÿÿtA‹Fþ÷.‹ø>€‹Fò‰E ‹Fò÷.‹ø>€öEt)‹Fþ÷.‹ø>€ÿvò蠃ĉE ë�FßP¸úPèŠ0ƒÄ¸rPèdúƒÄ Àué—ƒ~ìu.¸Pÿ6B è|0ƒÄÿL +ÀPè<%ƒÄ¸Pÿ6B èa0ƒÄÇFì �FßPèÕ5ƒÄ@Fìƒ~ìU�FßP¸Pÿ6B è60ƒÄé:¸Pÿ6B è%0ƒÄÿL +ÀPèå$ƒÄ�FßP¸!Pÿ6B è0ƒÄ�FßPè5ƒÄ@‰Fìéü蔉Fô莉Fò�FßPè܃Ä�FßPèiƒÄ‰Fþ=ÿÿu�FßP臃ĉFþ=ÿÿué¿‹Fþ÷.‹ø>€‹Fô@%þÿ‰Eƒ~ôt‹Fþ÷.‹ø>€€M�~ò}#‹~òÑç>‚‹Fþ‰‹Fò;V ép‹Fò£V ég¸%Pèù$ƒÄéZèò‰Fôèì‰Fòƒ~ôu ƒ~òué¤ÇFÝ?‹~Ý€ €ÿvÝ踃Ä=ÿÿt ¸HPèþ.ƒÄëÿvÝè΃ģX =ÿÿtn¡X ÷.‹ø>€€M¡X ÷.‹ð6€‹~òÑç>‚‹‰Fò‰D ¡X ÷.‹ø>€‹Fô‰E ‹Fò÷.‹ø>€öEt¡X ÷.‹ø>€ÿvò胃ĉE ƒ~êtƒ~èu ¸‚Pè!$ƒÄë+À‰Fè‰FêÇFìÇFþëÿFþ‹Fþ;V ~éù‹~þÑç>‚‹‰Fò=ÿÿtÞ‹Fò÷.‹ð6€‹Fò÷.‹ø>€‹ED ¸rPèé÷ƒÄ Àt°‹Fò÷.‹ø>€öEu�ƒ~ìu.¸_Pÿ6B èñ-ƒÄÿL +ÀPè±"ƒÄ¸aPÿ6B èÖ-ƒÄÇFì ‹Fò÷.€‰FÝÿvÝè=3ƒÄ@Fìƒ~ìUÿvݸnPÿ6B èŸ-ƒÄé4ÿ¸rPÿ6B èŽ-ƒÄÿL +ÀPèN"ƒÄÿvݸtPÿ6B èp-ƒÄÿvÝèê2ƒÄ@‰Fìéøþ¸rPè#÷ƒÄ Àt¸xPÿ6B èD-ƒÄƒ.L ÇFþ�~þ}‹~þÿFþÑç>‚ÇÿÿëçÇV ë ÿvø¸{Pèõ,ƒÄ뻹CC;àúuãÿg�~øÿtéðøÿ6: è&#ƒÄézø¸ŽPèÁ,ƒÄ‹å]_^ÃVWU‹ìƒì+À‰Fö‰FøÇFþëÿFþƒ~þ}H‹Fþ±Óà‰Fì‹^þ±Óã‹vþ±Óæ‹~þ±Óç+À‹Ð‰…<‰•>‰„8‰”:‰‡4‰—6‹~쉅0‰•2미�PèôƒÄ‰Fúƒ~úÿt‹Fú÷.‹ø>€öEuÇFúÿÿƒ~úÿt‹Fú‰Fø¸hPèöõƒÄ Àu¸bPèèõƒÄ Àu¸ë+À‰FòÇFô¸hPèËõƒÄ ÀuA¸8Pè½õƒÄ Àu3ÇFþëÿFþ‹Fþ;T } ‹Fþ;Fútì‹Fþ÷.‹ø>€öEtÙÇFôƒ~òt ƒ~ôt¿ë+ÿ‰>Z ‹Ç™‰Fî‰Vðƒ~úÿu鹋Fú÷.‹ø>€ÇE‹Fú÷.‹ø>€¡Z ‰E ‹Fú÷.‹ø>€‹E +ÒFîVðƒ>X ué‰ÿ6X è+ ƒÄ‰Fþ¡X ÷.‹ø>€‹E ‰Fü‹Fü÷.‹ø>€öEuÿvüèù ƒÄFþ‹FüëÌ‹Fü;Fúu!ƒ~þt1‹Fú÷.‹ø>€ƒE ƒFîƒVðë¸•ë ƒ>X t¸¹Pè¯*ƒÄÇX ƒ~ôuéXÇFþëÿFþ‹Fþ;T }k‹Fþ÷.‹ø>€ŠE˜%=uÛ‹Fþ÷.‹ø>€ƒ}uÈ‹Fþ÷.‹ø>€‹Fî‰E ‹Fþ÷.‹ø>€ÇE‹Fþ÷.‹ø>€‹E +ÒFîVðë‰ÿvðÿvîèƒÄ‹ø‹Ç™‰Fî‰Vð£@‰BÇFþëÿFþ‹Fþ;T }k‹Fþ÷.‹ø>€ŠE˜%=uÛ‹Fþ÷.‹ø>€ƒ}uÈ‹Fþ÷.‹ø>€‹Fî‰E ‹Fþ÷.‹ø>€ÇE‹Fþ÷.‹ø>€‹E +ÒFîVðë‰ÿvðÿvîè}ƒÄ‹ø‹Ç™‰Fî‰Vð£D‰F¸dPèBóƒÄ ÀuéïÇHÇJéàÿvðÿvîè?ƒÄ‹ø‹Ç™£D‰F£@‰B¸ÜPèʃĉFúƒ~úÿt‹Fú÷.‹ø>€öEuÇFúÿÿƒ~úÿtu‹Fú÷.‹ø>€ÇE‹Fú÷.‹ø>€ÇE ‹Fú÷.‹ø>€‹E +Ò‰Fî‰Vðÿvðÿvî賃ċø‹Ç™£d‰f‹Fú÷.‹ø>€öEt¡d‹f£`‰b¸âPè$ƒÄ‰Fúƒ~úÿt‹Fú÷.‹ø>€öEuÇFúÿÿƒ~úÿtu‹Fú÷.‹ø>€ÇE‹Fú÷.‹ø>€ÇE ‹Fú÷.‹ø>€‹E +Ò‰Fî‰Vðÿvðÿvîè ƒÄ‹ø‹Ç™£t‰v‹Fú÷.‹ø>€öEt¡t‹v£p‰rƒ~òt¿ë+ÿ‹Ç™‰Fî‰VðÇFþëÿFþ‹Fþ;T }x‹Fþ÷.‹ø>€ŠE˜%=uÛ‹Fþ÷.‹ø>€ƒ}uȃ~öu‹Fþ‰Fö‹Fþ÷.‹ø>€‹Fî‰E ‹Fþ÷.‹ø>€ÇE‹Fþ÷.‹ø>€‹E +ÒFîVðé|ÿÿvðÿvîè3ƒÄ‹ø‹Ç™‰Fî‰Vð£P‰RÇFþëÿFþ‹Fþ;T }k‹Fþ÷.‹ø>€ŠE˜%=uÛ‹Fþ÷.‹ø>€ƒ}uÈ‹Fþ÷.‹ø>€‹Fî‰E ‹Fþ÷.‹ø>€ÇE‹Fþ÷.‹ø>€‹E +ÒFîVðë‰ÿvðÿvî藃ċø‹Ç™‰Fî‰Vð£T‰V¸dPè\ðƒÄ Àt ÇXÇZÇ\ Ç^ ÇFúÇFþëÿFþƒ~þ}/‹~þ±Óç¡\ ‹^ ‰…<‰•>‹~þ±Óç‹…0‹•2\ ^ ëÈÇFþëÿFþ‹Fþ;T }z‹Fþ÷.‹ø>€öEtá‹Fþ÷.‹ø>€‹E ‰Fú‹Fú÷.‹ø>€öEu»‹Fþ÷.‹ø>€ÿvú蹃ÄE ‹Fú÷.‹ø>€‹E ‰Fú‹Fþ÷.‹ø>€‹Fú‰E ë¬ÇFþëÿFþ‹Fþ;T |逋Fþ÷.‹ø>€öEt$‹Fþ÷.‹ð6€‹Fþ÷.‹ø>€+À‰E‰D 뺋Fþ÷.‹ø>€öEt§‹Fþ÷.‹ø>€‹E ‰Fú‹Fþ÷.‹ð6€‹Fú÷.‹ø>€‹E D éqÿ¸èP薃ĉFþ=ÿÿt\‹Fþ÷.‹ø>€öEuI‹Fþ÷.‹ø>€¡D‰E ‹Fþ÷.‹ø>€ÇE ‹Fþ÷.‹ø>€‹Fø‰E ‹Fþ÷.‹ø>€€M¸ðPè(ƒÄ‰Fþ=ÿÿto‹Fþ÷.‹ø>€öEu\‹Fþ÷.‹ð6€ƒ~ôt¿ë¿±Óç‹…4‰D ‹Fþ÷.‹ø>€ÇE ‹Fþ÷.‹ø>€‹Fö‰E ‹Fþ÷.‹ø>€€M‹å]_^ÃVWU‹ì‹F‹V ƒÒ‹Ø‹Ê�ãðÿ�áÿ‹Ã]_^ÃVWU‹ì¡\ ‹øWè°"ƒÄ‹ð£` Àu ¸øPèsƒÄ‹ÇO Àt‹ÞFÆëñ]_^ÃVWU‹ìƒì¸Pè”#ƒÄ¸mPèníƒÄ Àtèƒ+ÀPè^ƒÄ¸$Pÿ6B èƒ#ƒÄƒ.L ƒ>X t7‹>` >Z Æé‹>Z G>` ‹6Z ƒÆÿ6X è>ƒÄ+Ɖ‹>Z ƒÇ>` Æ�ÇFþ�~þ}‹~þÿFþÑç>‚ÇÿÿëçÇV ¸9P覃ĉFì¸APè)™ƒÄ‰FêÇFüëÿFü‹Fü;R |ép‹Fü÷.b Pè2ƒÄPè׃ĸIP‹Fü÷.b PèƒÄPèéƒÄ£: Àu‹Fü÷.b P¸LPè…"ƒÄ¸QPè5ƒÄèðèý‰Fú‹Fú%ð=ðt‹Fú%@‰Fø�fúà‹FúéŃ~îÿt‹Fîë ‹Fúë ‹Fìë‹Fê‰Fôë =@tó=€té‹FøÿNø Àué¢è£‰Fö‹Fúëÿvðè ƒÄFò@)FöÿvôèýƒÄFöë =@tí=€tØÿvðèƒÄ‹ð‹~òÿFòþ>` ‹Föˆ뢃~îÿt‹Fîë ‹Fúë ‹Fìë‹Fê‰Fôë =`tó= té‹FøÿNø ÀuéèO‰Fö‹Fúëÿvð舃ÄFò@@)FöÿvôèwƒÄFöë =`tí= t×ÿvð莃ċø~ò>` ‹Fö‰ƒFòë¢èÍëèù‰Fô‹~ôÑç>‚‹‰Fî‹Fî÷.‹ø>€öEté�ÇFîÿÿé•èljFöèÁ‰Fô‹~ôÑç>‚‹‰Fð‹Fö‰Fòér�FáPèøƒÄ¸cPè¾êƒÄ Àt¸mPè°êƒÄ Àu�FáP¸hPèº ƒÄ¸mPè”êƒÄ Àué-¸P胃Ä�FáP¸oPÿ6B è¤ ƒÄÿL é è<‰Föè6‰Fô�FáP脃Äéñè#‰Föè‰Fô�FáPèkƒÄ�FáPèøƒÄ‰Fþ=ÿÿu鯋Fþ÷.‹ø>€‹Fö@%þÿ‰E‹~ôÑç>‚‹Fþ‰‹Fô;V ~‹Fô£V ¸xPèèéƒÄ Àué�‹Fþ÷.‹ø>€öEték�FáP¸zéG蓉Föè�‰FôÇFþëÿFþ‹Fþ;V ~éù‹~þÑç>‚‹‰Fô=ÿÿtÞ‹Fô÷.‹ø>€öEué­¸mPèléƒÄ Àuéœ+ÀPè\ƒÄ‹Fô÷.€P¸�Pÿ6B èuƒÄ‹Fô÷.‹ø>€‹Eë¸–ë ¸šë¸žë¸¢Pÿ6B èFƒÄëH=wÑà‹Øÿ§>ÿvôèƒÄP¸¦Pÿ6B èƒÄ‹Fô÷.‹ø>€ÿu¸«Pÿ6B èƒÄÿL ‹Fô÷.‹ð6€‹Fô÷.‹ø>€‹ED éøþÇFþ�~þ}‹~þÿFþÑç>‚ÇÿÿëçÇV ë ÿvú¸´Pè�ƒÄë»D¹CC;àúuãÿg�~úÿté÷ûÿ6: èÀƒÄé�ûÇFþëÿFþ‹Fþ;T }B‹Fþ÷.‹ø>€öEuá‹Fþ÷.‹ð6€‹Fþ÷.‹ø>€‹E ÷&‹ø>€‹E‰D벸ÇPèƒÄ‹å]_^ÃVWU‹ìƒ~ÿt ‹F;T |+Àë‹F÷.€‹ð‹D D ]_^ÃVWU‹ìƒìƒ~ÿt ‹F;T |+Àë8‹F÷.€‹ð‹|±Óç‹…<‹•>‰Fü‰Vþ‹| | ‹Ç+ÒFüVþ‹Ø‹Ê‹Ã‹å]_^ÃVWU‹ìƒìÿ6: ‹: ÿW ƒÄ‰Fþ=ÿÿu ¸ÉPè ƒÄ‹Fþ‹å]_^ÃVWU‹ìƒìÿ6: ‹: ÿW ƒÄ‰Fü=ÿÿu ¸ØPèÙƒÄÿ6: ‹: ÿW ƒÄ‰Fþ=ÿÿu ¸çP蹃ċFþ±Óà Fü‹å]_^ÃVWU‹ìƒìÿ6: ‹: ÿW ƒÄ‰Fþ=ÿÿu ¸öPè�ƒÄ‹~ÿF‹Fþˆ˜ ÀuЋå]_^ÃVWU‹ìƒì¸lPèƒæƒÄ Àtéeÿ6H 訃ĸP¸ŠPè߃ÄPèÁƒÄ£@ Àu ¸Pè"ƒÄ¸ŠP¸!PèZƒÄ¸hPè4æƒÄ Àtéè¿€¾ëFƒþ|éŋޱÓ㋇6 ‡4tçVè÷ƒÄ‹Þ±Ó㋇0‹—2‰Fø‰Vú‹Fø‹Vú¹ÑêÑØâú‹Ø‹Ê‹Ã‰FþÿvþèëƒÄ+ÀPèâƒÄ‹Þ±Ó㋇4‹—6‰Fø‰Vú‹Fø‹Vú¹ÑêÑØâú‹Ø‹Ê‹Ã‰Fþÿvþ譃ċޱÓ㋇8‹—:‰Fø‰Vú‹Fø‹Vú¹ÑêÑØâú‹Ø‹Ê‹Ã‰FþÿvþèxƒÄƒï é2ÿ‹ÇO Àt +ÀPè9ƒÄëî¡` ‰Fü¡\ ‹ø‹ÇO Àt‹^üÿFüŠ˜PèƒÄëçÿ6@ 苃ċå]_^ÃVWU‹ìÿ6@ ÿv‹@ ÿWƒÄ=ÿÿu ¸;PèƒÄ]_^ÃVWU‹ìÿ6@ ‹F%ÿP‹@ ÿWƒÄ=ÿÿu ¸SP蕃Äÿ6@ ‹F±Óø%ÿP‹@ ÿWƒÄ=ÿÿu ¸kPèmƒÄ]_^ÃVWU‹ì觃>B t ÿ6B èîƒÄÿ6D è¦ ƒÄ]_^ÃVWU‹ì¸þP¸PèeƒÄ Àt¸ÿP¸PèSƒÄ=u ¸ƒPèƒÄ]_^ÃVWU‹ìƒì ÿ6F èW ƒÄ¸”P¸vP莃ÄPèpƒÄ£> Àuéõ¸vP¸–PèƒÄdžÿ6> ¸„P¸¦PèîƒÄ Àu龸¦£.£,¸¦P¸¶PèÚƒÄèÕ ÀtɸºPè‡ƒÄ Àu釋>,€=t6‹>,€="t-ƒ>†uè³ëâ‹vôÿFô‹Æ+ÒFöVø‹Ø‹Ê‹û>` 蔈ëÁ¡,£.‹>,€=t ÿ,ÿ.ë ¸¼P+ÀP軃ă>†u¸ÈP¸ÿÿP覃ĸÒPèüƒÄéaÿ�FúPèƒÄ¸ÔPèåƒÄ Àt_ƒ~üu¸ÖP¸ÿÿPèmƒÄdžé,ÿ‹~ü±Óç‹Fú™;•2wr ;…0r¸ßë΋~ü±Óç‹…<‹•>‰Fö‰Vø‹Fú‰Fôdžéêþƒ>†u¸ìP¸ÿÿPè ƒÄët‹Fþëb‹vôÿFô‹Æ+ÒFöVø‹Ø‹Ê‹û>` ‹FúˆëN‹Fô+ÒFöVø‹Ø‹Ê‹û>` ‹Fúë‹Fô+ÒFöVø‹Ø‹Ê‹û>` ‹vôFF‹Fú+ƉƒFôë =wÑà‹Øÿ§‚¸öéîþÿ6> è�ƒÄ‹å]_^ÃVWU‹ìƒìÿvèìƒÄÿv誃ĸø‰FøPèºƒÄ Àu¸ú‰FøPè©ƒÄ Àte�FúPè·ƒÄ�FúPètƒÄ‹~‹Fü;E~ ‹Fü‹~‰E‹~‹Fþ;E~ ‹Fþ‹~‰E‹~øŠ˜ë‹Fú‹~ë�‹Fú‹~)ë†=+tç=-tìéyÿ‹~ƒ}u‹~÷ÿt‹~ÇE‹å]_^ÃVWU‹ìƒì ¸üPèƒÄ Àt2ÿvè#ÿƒÄ‹~‹E=}‹~ÇE¸þPèäƒÄ Àtéð¸ë3¸ PèÎƒÄ Àt2ÿvèãþƒÄ‹~ÇE¸Pè¯ƒÄ Àt黸P+ÀPè;ƒÄ髸PèŽƒÄ ÀtÿvèdÿƒÄ‹~‹÷Ø‹~‰é…�F÷Pè�ƒÄ ÀtJ�F÷PèGƒÄ‰Fõƒ~õÿu ¸P¸ÿÿëNÿvõè„øƒÄ‹~‰‹Fõ÷.ˆ‹ø>€‹E‹~‰E‹~ÇEë-ÿvèÒƒÄ Àu ÿvè ƒÄ Àu¸(P+ÀP蓃Ädž‹å]_^ÃVWU‹ì+À‹~‰E‹~‰E‹~‰]_^ÃVWU‹ì‹~ÿv ‹^ ÿW ƒÄ‹ð=ÿÿt5ƒþ t0ƒþ uÿN ~‹ßGÆ ‹Ï+N÷Áuêë˃þ |ÆÿN ~Á‹ßG‹Æˆë¸Æƒþÿu;~t¸ë+À]_^ÃVWU‹ì¡.-¦F‹ðÿv è&ƒÄ‹ø;÷|-ÿv è}ƒÄÿv èƒÄ‹ø+÷¸-PVè5ƒÄ¸7Pè[ƒÄë"¸-PVèƒÄ¸:PèDƒÄÿv ¸=Pè7ƒÄ]_^ÃVWU‹ì‹FÿN Àt¸äPÿv ÿòƒÄëæ]_^ÃVWU‹ìƒìè(‹6,Š˜Pè>ƒÄ Àu€<_ub¿‹ÇO À~ ‹^ÿFŠˆF‹ÞŠˆFÿ˜PèƒÄ ÀuÛŠFÿ˜Pè*ƒÄ ÀuÌ€~ÿ_tÆ‹^Ƌƣ,£. ÿ}¸AP¸ÿÿPèïþƒÄ¸ë+À‹å]_^ÃVWU‹ìƒì¸JPè0ƒÄ ÀtÇFûë3¸MPèƒÄ ÀtÇFûë‹>,Š˜Pè³ƒÄ ÀtÇFû ë+Àéò+À‰Fý‹ð‹>,ŠˆFÿ˜Pè‹ƒÄ ÀuŠFÿ˜PèTƒÄ Àu颋Fûé…€~ÿ0|z€~ÿ7tŠFÿ˜‹ø‹Æ±ë0€~ÿ0|b€~ÿ9\ŠFÿ˜‹ø‹Æ÷.Šë€~ÿ0|€~ÿ9ŠFÿ˜‹ø‹Æ±ÓàÇ-0ë+ŠFÿ˜Pè/ƒÄˆFÿ˜=A|€~ÿFŠFÿ˜‹ø‹Æ±ÓàÇ-7‹ðëÿFýë-=wÑà‹Øÿ§Œÿ,é7ÿ‹~‰5¡,£.ƒ~ýt¸OP¸ÿÿPè£ýƒÄ¸‹å]_^ÃVWU‹ìèW‹>,€='u2ÿ,è1‹~‰¡,£.¸`Pè̓Ä Àu ¸bP+ÀPè\ýƒÄ¸ë+À]_^ÃVWU‹ì‹>,€=\téŠÿ,‹>,Š˜Pè[ƒÄëc¾ ëz¾ ëu¾ëp¾ ëk¾ ëf‹>,Š˜PèƒÄ ÀtK+öëÿ,‹>,Š˜PèüƒÄ Àt‹,Š˜‹ø‹Æ±ÓàÇ-0‹ðëÒÿ,뻜¹CC;àúu¨ÿg ë ‹>,Š˜‹ðÿ,‹Æ]_^ÃVWU‹ìè`‹6,‹~€=t ‹þFŠ˜P诃ċȋ~ÿFŠ˜;ÁtÜ+Àë ‹Æ£,£.¸]_^ÃVWU‹ìè‹>,€=t‹>,€=;t¸ë+À]_^ÃVWU‹ì‹>,€=t‹>,€= ÿ,ëè]_^ÃVWU‹ìƒ~A|ƒ~Z~ ƒ~a| ƒ~z¸ë+À]_^ÃVWU‹ìƒ~0| ƒ~9¸ë+À]_^ÃVWU‹ìƒ~a|ƒ~z‹F- ë‹F]_^ÃVWU‹ì+ö‹>€ëFƒÇ;6T }WÿvèoƒÄ Àuè‹Æë¸ÿÿ]_^ÃVWU‹ì�>T |¸nPèƒÄ¸ÿÿë3¡T ÷.ˆ€‹ðÿvVècƒÄ+ÀˆD˜‰D‰D‰D ‰D ‰D ¡T ÿT ]_^ÃVWU‹ì¸sPèªÚƒÄ Àte¸„P踃ľëF¡T H;Æ~CV¸˜P蟃ċÆ@‹øëG;>T }Þ‹Ç÷.ˆ€P‹Æ÷.ˆ€Pè­ƒÄ À~ÙWVèƒÄëϸ�Pè]ƒÄ]_^ÃVWU‹ìƒì‹F÷.ˆ€‹ð‹F ÷.ˆ€‹øÇFþ‹FþÿNþ ÀtŠˆFý‹ÞFŠˆ‹ßGŠFýˆëà‹å]_^ÃVWU‹ì¸sPèáÙƒÄ Àu¸uPèÓÙƒÄ Àuéû¸¤PèÞƒÄèÛ+ÀP趃ĸ¹Pÿ6B èۃă.L ¾ëF;6T |éÛ‹Æ÷.ˆ‹ø>€öEtä+ÀPèyƒÄ‹Æ÷.ˆ€P¸ÐPÿ6B 蓃ċÆ÷.ˆ‹ø>€‹Eë$¸Øë¸Üë ¸àë¸äë¸èPÿ6B è`ƒÄëH=wêÑà‹Øÿ§²‹Æ÷.ˆ‹ø>€ÿu ‹Æ÷.ˆ‹ø>€ÿu ¸ìPÿ6B è$ƒÄ‹Æ÷.ˆ‹ø>€öEu¸øPÿ6B èƒÄ¸Pÿ6B èöƒÄÿL èPôéÿ¸ Pÿ6B èÞƒÄÿL ¾ëF;6T |éÇ‹Æ÷.ˆ‹ø>€öEuä+ÀPè}ƒÄ‹Æ÷.ˆ€P¸ Pÿ6B 藃ċÆ÷.ˆ‹ø>€öEt[‹Æ÷.ˆ‹ø>€‹Eë$¸ë¸ë ¸ë¸ë¸#Pÿ6B èRƒÄëH=wêÑà‹Øÿ§ºVè'ðƒÄP¸'Pÿ6B è,ƒÄë¸,Pÿ6B èƒÄ¸6Pÿ6B èƒÄÿL èhóé/ÿ]_^ÃVWU‹ì‹F;„t‹F£„P¸ P誃Ä]_^ÃVWU‹ì¸ÿÿP¸ P裃ģ„]_^ÃVWU‹ì¸ÿÿP¸P艃Ä]_^ÃVWU‹ìƒìÇFþÿÿÇFüÿÿ‹~ÿFŠˆFû ÀtI€~û:uƒ~ü|ƒ~ü‹Fü‰FþëÒ€~û0|Ñ€~û9˃~üÿu ŠFû˜-0‰Fü빊Fû˜‹ø‹Fü÷.ŠÇëç‹Fþ‹å]_^ÃVWU‹ìƒìÇFþÿÿÇFüÿÿ‹~ÿFŠ˜Pè׃ĈFû˜ Àt,€~û:uƒ~üÿt‹Fü‰FþëÏ€~ûa|΀~ûpÈŠFû˜-a‰Fü뼋Fþ‹å]_^ÃVWU‹ìƒì‹F‰Fý‹~ÿFŠˆFÿ Àt€~ÿ:uëëãÇFûˆ‹~ýÿFýŠˆFÿ Àt€~ÿ.t ‹~ûÿFûŠFÿˆëÞ‹~ûƸˆ‹å]_^ÃVWU‹ì‹~€=t ‹~ÿF€=.uí‹F]_^ÃVWU‹ìƒìÇFþœƒ~|.ƒ~ ~‹~þÿFþ‹F™÷>Š0ˆ‹~þÿFþ‹F™÷>Š‹Â0ˆƒ~ |‹~þÿFþ‹F aˆ�~þœv ‹~þÿFþÆ:‹~þÿFþ‹v ÿF Šˆ Àuì‹~€=t‹~þÆEÿ.‹~þÿFþ‹vÿFŠˆ Àu츜‹å]_^ÃVWU‹ìÿvè1ÿƒÄPÿvèÌþƒÄPÿvècþƒÄP¸ÿÿPè1ÿƒÄ]_^ÃVWU‹ì‹FÿN Àtÿ6B ÿv ‹B ÿWƒÄëã]_^ÃVWU‹ì�>L €tƒ>L ~ÿ6B ¸ P‹B ÿWƒÄÿL ]_^ÃVWU‹ì¡L ;Fè�>L €uèd]_^ÃVWU‹ì�>L €tO¸cPèÍÔƒÄ Àt)ÿ6B ¸ P‹B ÿWƒÄ¸=P¸PèUÿƒÄÿ6B ¸ ëÿ6B ¸ P‹B ÿWƒÄÇL €]_^ÃVWU‹ìƒìÿN ÇL <ÇFþëÿFþƒ~þ}ÿ6B ¸ P‹B ÿWƒÄë㸊Pÿ6N ¸8Pÿ6B èk ƒÄƒ.L ‹å]_^ÃVWU‹ìÿvè; ƒÄÿ6D èKüƒÄ¸PèSƒÄ]_^ÃVWU‹ì‹N‹V Íàë6VWU‹ì‹N‹V Íà*äë$VWU‹ì‹N‹V Íà‹ÃëVWU‹ì‹N‹V ÍàŒÂ‹Ã]_^ÃVWU‹ì¾°�þ¸!sƒ<tVèƒÄƒÆ4ëéÿvè°ÏƒÄ]_^ÃVWU‹ì‹v÷t(÷tV¸PÿTƒÄ=ÿÿt+÷@t VèFƒÄ=ÿÿt÷@t�DP¸PèQÿƒÄ=ÿu¸ÿÿë‹D‹ø Àt ÷uWèéƒÄÇ+À]_^ÃVWU‹ìƒì‹v‹%H=Hu_ƒ|tY‹|‹D1‰Fþ;|sEW¸PèãþƒÄ�DP¸"PèåþƒÄ Àt � ¸ÿÿë'�Ç€¸PVèKƒÄ‹D1;D v¾‹D1‰D ë¶‹Fþ‰D1+À‹å]_^ÃVWU‹ì¾°�þ¸!sƒ<uVÿv ÿvèƒÄëƒÆ4ëá+À]_^ÃVWU‹ìƒì ‹v ƒ<tVèÏþƒÄ=ÿÿué+À‰Fü‰Fþ‰Fú‰Fø‰Fö‹^ ÿF Š˜‹ø Àt4‹ÇëÿFöëèÿFøëãÿFþëÞÿFüƒ~þuÕÿFúëлÀ¹CC;àúuÂÿg뽃~öt ƒ~üté�‹Fþ Füué’ǃ~úuƒ~öt� ƒ~øt� ÇDÿÿÇD+À‰D‰D¸fPÿvèü ƒÄ Àuƒ~øt ÆÇD ÷FëÇD aGÆDë\¸kPÿvèÐ ƒÄ ÀuÆÇD ÷FÇD6é ¸pPÿvè¯ ƒÄ ÀuÆDë¸uPÿvè˜ ƒÄ Àuƒ~øu� ÆDÇD îHÇD:5éÊÇD HÇDo5� @ƒ~øu� Vÿv軃Ä Àu饃~út(�DP¸PèäüƒÄ�DP¸PèæüƒÄ=ÿt~ÇD ëcƒ~ötC�DP¸PèÆüƒÄ=ÿu�DP¸Pè³üƒÄ=ÿtKVèIƒÄ¸P+ÀPPVè`ƒÄ=ÿÿu,ë.�DP¸PèƒüƒÄ=ÿtVèƒÄÆD0ÆD1ÆD2ÆD3‹ÆëÇ+À‹å]_^ÃVWU‹ìƒì‹v ÆDÆDÆDÆD‹F‰Fþ�|‹^þÿFþŠ˜‰Fü Àt-ƒ~ü.t'ƒ~ü:t!�D;Çvyƒ~üa| ƒ~üzƒnü ‹ßG‹FüˆëÃ~ü:u*�D;ÇuR€|uLŠD˜‰Fü=A|@ƒ~üP:‹Fü-@ˆDë��D;Çv‹ßGÆ ëñ�|ƒ~ü.u5‹^þÿFþŠ˜‰Fü Àt%�D;Çw+Àë,ƒ~üa| ƒ~üzƒnü ‹ßG‹FüˆëË�D;Çv‹ßGÆ ëñ¸‹å]_^ÃVWU‹ì‹v�DP¸#Pè;ûƒÄ‹D1‰D ]_^ÃVWU‹ìÿv ÿv‹^ ÿWƒÄ]_^ÃVWU‹ì‹v‹~ ƒþ u÷u W¸ PèâÿƒÄVŠE˜PèìúƒÄ‹Æ*ä]_^ÃVWU‹ì‹v‹~ ÷ u}ƒþ u÷uW¸ PèÜÿƒÄ=ÿÿtbƒ}u¸P謃ĉE Àu� ëE÷uƒ}uWèûƒÄ Àt.ÇE‹E‰E� ÿM}WèUûƒÄ ÀuW¸PèöƒÄ Àuá¸ÿÿë‹]ÿE‹Æˆ‹Æ*ä]_^ÃVWU‹ì‹v � ¸ÿÿ]_^ÃVWU‹ìƒì ‹v÷@ué3VèüúƒÄ Àté%ƒ~u VèJƒÄ霃~t陋D +Ò¹ÑàÑÒâú‰Fø‰Vú÷usƒ| tmƒ|u¸PèăĉD ÀuéÒ‹D ÿÿ‰D1ÿt¸Pè ùƒÄ�DP¸!Pè¢ùƒÄ Àu+ÇFöëÿFö�~ö€} ‹~ö|€=uë¿€+~ö‹Ç™)FøVú‹Fø‹VúF V ‹F ‹V %þ¹ÑúÑØâú‹Ø‹Ê‹Ã‰Fþ‹^ ‹N �ãÿ+ɋÉFüƒ|t‹Fþ;D1u‹D+DD;Fü0ƒ|u¸PèƒÄ‰D Àt‹Fþ‰D1V+ÀP脃Ä Àu¸ÿÿë#‹D+DD+Fü*‰D‹FüD‰D�$ÏÿÇDÿÿ+À‹å]_^ÃVWU‹ìƒì‹v÷@u¸ÿÿºÿÿë/‹D1+Ò¹ÑàÑÒâú‰Fü‰Vþƒ|t‹|+|‹Ç™FüVþ‹Fü‹Vþ‹å]_^ÃVWU‹ìƒì‹v ‹|‹D‰Fþ÷FtV赃Ä Àu+À飋D1‰Fü;D r÷Ft� ëw;~þtr‹ßGÆëó�Ç€;~þtaW¸PèøƒÄ�DP¸!PèøƒÄ‰Fú Àt2ƒ~útƒ~út ;|u0� ë*ÇFúëÿFú�~ú€} ‹ß^úÆëì¸PVè@ƒÄ Àu–‹Fü‰D1‹D‰D‹Ç+D‰D‹å]_^ÃVWU‹ì‹v‹D+D™÷>ÒPVèƒÄ]_^ÃVWU‹ì‹v‹~ O|þD1uøþD2uó� +Àë¸]_^ÃVWU‹ìƒì‹v‹þ¸°Pÿ¼ƒÄ‰Fþ=ÿÿtƒ~þ t ‹ßG‹FþˆëÝÆƒ~þÿu;÷u+Àë‹Æ‹å]_^ÃVWU‹ìƒìƒ~ué«‹F%üÿ‰Fƒ>zuE¸üÿ%»)‹ð€>t¡ë¡‰Fþƒnþ‹~þ;÷ws‰6z‰6|‰<‰u¡z‰‹z‰‹ ‰‹6|÷u<‹+ƉFü;Fr0‹Fü;Fv‹ÆF‹ø‹‰‰u‹Ç‹‰G‰‹£|‹ ‰�Dë‹%þÿ‹ð;6|u±+À‹å]_^ÃVWU‹ìƒì‹vƒî‹|‹%þÿ‰Fþ‹%þÿ‰‹^þ÷u‹^þ‹‰Fþ‰‹^þ‰w÷u‹Fþ‰‹Ç‹ð‹^þ‰G‰6|‹å]_^ÃVWU‹ì�FP¸äPèdƒÄ]_^ÃVWU‹ì�F PÿvèNƒÄ]_^ÃVWU‹ìƒì4ÇFÚÊ:‹F‰FÒ�F P�FÌPè)ƒÄ‹~ÒÆ‹å]_^ÃVWU‹ì‹v ‹|ÿD‹Fˆ‹F]_^ÃVWU‹ìƒì8‹F ‰Fþ‹^þ‹‰FîƒFþ‹^îÿF‹ø=%t ÿué4ÿvW‹^ÿWƒÄëÚÇFö ÇFòÿÿÇFôÿÿ‹^îÿF‹øƒÿ-uÇFø‹^îÿF‹øëÇFøƒÿ0uÇFö0‹^îÿF‹øƒÿ*u‹^þƒFþ‹‰Fò‹^îÿF‹øë1ÇFòë ‹^îÿF‹øƒÿ0|ƒÿ9‹Fò÷.Ô‹È‹ÇÁ-0‰FòëÖƒÿ.uZ‹^îÿF‹øƒÿ*u‹^þƒFþ‹‰Fô‹^îÿF‹øë1ÇFôë ‹^îÿF‹øƒÿ0|ƒÿ9‹Fô÷.Ô‹È‹ÇÁ-0‰FôëÖƒÿlu&‹^îÿF‹øƒÿdtƒÿot ƒÿutƒÿxu‹Ç%ßÿ‹ø�FȉFú‹ð‹Çég‹^þƒFþ‹‰Fæƒ~æ}‹Fæ÷؉Fæ‹ÞFÆ-¸ Pÿvæë¸ ë¸ë¸P‹^þƒFþÿ7V趃Äé·‹^þ‹‹W‰Fæ‰VèƒFþƒ~èy‹Fæ‹Vè÷Ú÷؃ډFæ‰Vè‹ÞFÆ-¸ PÿvèÿvæVèìƒÄës¸ ë¸ë¸P‹^þÿwÿ7Vè̓ċðƒFþéÇ‹^þ‹G£œ‹G£š‹G£˜‹£–¡œ‰F졚‰Fꡘ‰Fè¡–‰FæƒFþVÿvôÿvìÿvêÿvèÿvæWè ƒÄ‹ðëv‹^þ‹‰Fü ÀuÇFü~ƒFþ‹Fü‰Fú‹ð‹ÞF€?tƒ~ô|ò‹Æ+Fü;Fô~èNë>‹^þƒFþ‹ˆFæ‹ÞFŠFæˆë(‹^þÿ7ÿvè1ýƒÄƒFþë»Ô¹CC;àútéHýÿg‹FúFò+ƉFð À}ÇFðƒ~øu‹FðÿNð Àtÿvÿvö‹^ÿWƒÄëå;vúvÿv‹^úÿFúŠ˜P‹^ÿWƒÄëãƒ~øuéÓü‹FðÿNð ÀuéÆüÿvÿvö‹^ÿWƒÄëâ‹å]_^ÃVWU‹ìƒì‹v �Fþ‰FþÿNþ‹^þÆë‹÷‹Æ+Ò÷v ‹ø Àt‹Æ+Ò÷v ‹ÚЇ†ˆFòÿNþ‹^þŠFòˆëÔÿNþ‹^þŠ„†ˆ‹^þ€?t‹^þÿFþŠˆFò‹^ÿFŠFòëà‹F‹å]_^ÃVWU‹ìƒì‹v‹~‰níÿNí‹^íÆë ‹Fï‹Vñ‰F ‰V ‹Ç™RPÿv ÿv è-ƒÄ‰Fï‰Vñ Ât0‹Ç™RPÿv ÿv èRƒÄ‰Fç‰Vé‹Fç‹ØŠ‡†ˆFëÿNí‹^íŠFëˆë©‹F ‹ØŠ‡†ˆFëÿNí‹^íŠF눋^í€?t‹^íÿF튈Fë‹ÞFëã‹Æ‹å]_^ÃVWU‹ìƒì‹v ‹~‹ßG€?uøO‹ÞFŠˆFþ‹ßGŠFþˆ Àuì‹F‹å]_^ÃVWU‹ì‹v‹~ ‹ßGŠ:u ‹ÞF€?uï+ÀëO‹ßŠ:}¸ÿÿë¸]_^ÃVWU‹ìƒì‹v ‹~‹ÞFŠˆFþ‹ßGŠFþˆ Àuì‹F‹å]_^ÃVWU‹ì‹v‹þ‹ÞF€?uø‹Æ+ÇH]_^Ë܋_ë‹Ü�_VWU‹ì‹V ‹F+ö+ÿ¹ ÑàÑÒÑ×ÑÖ;wr w;?r+?w@âå‹å]_^Ë܋_ë‹Ü�_VWU‹ì‹v ‹~+Ò+À¹ ÑçÑÖÑÐÑÒ;Wr w;r+Wâæ‹å]_^ÃVWU‹ìƒìFÇFþ¸ž‰Fú‰FüÇFø£ÇFº¥ÇFö¾� €˜‹ØÞÆ‹ÞFŠ˜‹ø ÿu鑃ÿ tìƒÿ tçƒÿu€<>uÇFø¦F‰vú‹ÞFŠ˜‹øë2ƒ~ö|¸¨P¸ Pè(ïƒÄ+ÀP+ÀPèïƒÄë‹^öÿFöÑãÝ�Dÿ‰Gº ÿt#ƒÿ tƒÿ tƒÿa| ƒÿzÇFþ‹ÞFŠ˜‹øëÙÆDÿéhÿ‹^öÑãÝÇGºƒ~þt& €˜€‹ðëN�þ€vŠ˜‹ø=A|ïƒÿZê€ ëå¸ P¸ÃP¸¾Pè'ðƒÄ Àu¸ÅP¸ Pè€îƒÄ+ÀP+ÀPètîƒÄ¸°P¸ÛPÿvüèøïƒÄ Àuÿvü¸ÝP¸ Pè…øƒÄ¸Pè�îƒÄ¸äPÿvøÿvúèÉïƒÄ Àuÿvú¸îP¸ PèVøƒÄ¸PèaîƒÄ+ÀP�FºPÿvöè7¾ƒÄPèJîƒÄ‹å]_^ÃVWU‹ìƒì0ƒ~}ÇF�FÒP�FúP�FüPÿvÿvÿvÿv ÿv ÿvèwƒÄ‹ðƒ~guC‹þ€=tGëø;÷t €}ÿ0uOëó‹Ç+ƉFЃ~üý| ‹FÐ;Fü}ÇFeë ‹Fü;FÐ|ÇF‹~ƒ~út‹ßGÆ-ƒ~et韋ÞFŠˆFЋßGŠFЈ¸Pÿvÿvÿv ÿv èÏ ƒÄ ÀtÿNü‹ßGÆ.ƒ~~ Š˜‰Fþ Àt F‹ßG‹Fþˆë‹ßGÆ0ÿNëÚ‹ßGÆeƒ~ü|‹ßGÆ+ë‹ßGÆ-‹Fü÷؉Fü‹ßG‹Fü™÷>0ˆ‹ßG‹Fü™÷>‹Â0ˆëjƒ~ü‹ßGÆ0ë Š˜‰Fþ Àt F‹ßG‹Fþˆë‹ßGÆ0ÿNüuàƒ~t6‹ßGÆ.ƒ~~*‹FüÿFü À|Š˜‰Fþ Àt F‹ßG‹Fþˆë‹ßGÆ0ÿNëЋNjå]_^ÃVWU‹ìƒì¸@Pÿvÿvÿv ÿv èÆ ƒÄ À|C‹^ǸPÿvÿvÿv ÿv è¥ ƒÄ Àuf‹^Ç‹v‹FÿN Àt‹ÞFÆ0ëîÆéÆ‹^Ç‹F£œ‹F£š‹F £˜‹F £–÷œ€ÿt€6�€¡œ‰F¡š‰F¡˜‰F ¡–‰F �FøPÿvÿvÿv ÿv è?ƒÄ ¸ Pÿvøè„ƒÄèäèƒÄ èÛèH ƒÄ‰FüÿvüèMƒÄèÆ�F PèEƒÄ ¸(Pÿvÿvÿv ÿv è×ƒÄ À|ÿFüë¸0P�F PèPƒÄ‹Fü‹^‰ÿvÿvÿv ÿv èèƒÄ‹ø‹v‹F‰Fúƒ~ftƒ~guƒ~ü|‹F;Fü|‹FüFë‹F@‰Fúƒ~ú}ÇFúƒ~ú~ÇFúÇFþëÿFþ‹Fþ;Fú}a‹ÞF‹Ç0ˆ¸8PW螃Äèþÿvÿvÿv ÿv èƒÄèéè$ƒÄ ¡œ‰F¡š‰F¡˜‰F ¡–‰F ÿvÿvÿv ÿv è,ƒÄ‹øë”ƃÿ|%;vtNþŠ˜=9~Æ0ëëÆ1‹Þ^úÆ‹^ÿ‹F‹å]_^ÃVWU‹ìƒì‹v+ÿ ö}G‹Æ÷Ø‹ð‹Þ±Ó㋇ £œ‹‡ £š‹‡ £˜‹‡ £–¡œ‰Fþ¡š‰Fü¡˜‰Fú¡–‰Fø ÿt2�FøPÿ6Nÿ6Lÿ6Jÿ6Hè6ƒÄ ¡œ‰Fþ¡š‰Fü¡˜‰Fú¡–‰Fø‹Fþ£œ‹Fü£š‹Fú£˜‹Fø£–‹å]_^ÃVWU‹ìÿv‹^ÿW ƒÄ]_^ÃVWU‹ì‹v‹D‹ø À|ÇDÿÿëL÷uA¸ÿPŠ˜Pè@éƒÄ‹ø÷u0ƒÿ u¸ÿPŠ˜Pè%éƒÄ‹øƒÿ t‰|¿ ëƒÿu � ¸ÿÿë‹Ç]_^ÃVWU‹ìƒì‹v‹D‹ø À| ÇDÿÿ‹Çé“÷0uaÿL}~ƒ|u¸€Pè½ñƒÄ‰D Àu� ë?‹\Æ}ÿt¸ Pè™èƒÄ¸ P¸Pè‹èƒÄ‹\ŠG*ä‰Fþƒ~þu‹\€u � ¸ÿÿë'‹^þCC\Æ ‹Fþ@‰D‹D@@‰Dé}ÿ‹\ÿDŠ*ä‹å]_^ÃVWU‹ì‹v‹D‹ø À|ÇDÿÿé·÷0t驃|u)¸Pè ñƒÄ‰D Àu� é‹V¸PèŒïƒÄ Àuëz÷t VèÉèƒÄ Àui�$÷ÿÿL}V¸PèaïƒÄ ÀuìëO‹\ÿDŠ*䋸÷uBƒÿ u/ÿL}V¸Pè4ïƒÄ Àuìë"‹\ÿDŠ*䋸ƒÿ t‰|¿ ëƒÿu � ¸ÿÿë‹Ç]_^ÃVWU‹ì‹v� ¸ÿÿ]_^ÃVWU‹ì‹FÑÀŠÌ*í�逋^‰´€ÑÈ£œ‹F £š‹F £˜‹F£–]_^ÃVWU‹ì‹F ëVWU‹ì�F P‹vÿtÿtÿtÿ4è„ƒÄ ¡œ‰D¡š‰D¡˜‰D¡–‰]_^ÃVWU‹ì‹F ëVWU‹ì�F P‹vÿtÿtÿtÿ4è\ƒÄ ¡œ‰D¡š‰D¡˜‰D¡–‰]_^Ã[ÿ6œÿ6šÿ6˜ÿ6–ÿãVWU‹ì�^ëVWU‹ì‹^+ÀëVWU‹ì�^ëVWU‹ì‹^¸€ƒìÇFþüG‹ÐÑàÐVÿùÐØˆFøÆFùŠÄ%ÿu‹V‹v ‹~ ‹Féý‰Fü‹ó�~ò¹ó¥‹FÑàÐVþùÐØˆFðÆFñŠÄ%ÿu ‹w‹‹é̉Fú�v�~ê¹ó¥‹Vø‹vö‹~ô‹Fò‹Nú+Nü}‹^ü‰^ú‹^þ†û‰^þ÷Ù‡Vð‡vî‡~ì‡Fêƒù9~ŠVð‹vî‹~ì‹Fê‹Núëlã ÑêÑÞÑßÑØâö‹Nú‹^þ:ûtètFê~ìvîVð:ûuöÆtAë$ Òu öu ÿu Àt7y†ûèEÑàÑ×ÑÖÐÒrIëóƒ×ƒÖ€Òs ÐêÑÞÑßÑØAŠñÐëÑÚÑÞÑßÑØ‰œ‰6š‰>˜£–‹å]_^Ã÷Ò÷Ö÷×÷Ѓ׃փÒÃVWU‹ì+Ò*ÿ‹F Ày=÷Ø·€ë7VWU‹ì+Ò*ÿ‹Fë)VWU‹ì*ÿ‹V ‹F Òy÷Ú÷؃ڷ€ë VWU‹ì*ÿ‹V ‹F+É‹ò ðt± ÑàÑÒrþÉëöÐéÑÚÑØ ψ�‰›£™+À¢˜£–]_^ÃVWU‹ì�^ëVWU‹ì‹^ƒìü‹GÑàÐVþùÐØˆFøŠÄ%ÿuéΉFü‹ó�~ò¹ó¥‹FÑà€VþùÐØˆFðŠÄ%ÿu騉Fú�v�~ê¹ó¥ŠVð‹vî‹~ì‹Fê¹8:Vøwr;vöwr;~ôwr;Fòr ÿFúÐêÑÞÑßÑØõõÑÐÑ×ÑÖÐÒr:Vøwr ;vöwr;~ôwr;Fòr +Fò~ôvöVøøõÑVêÑVìÑVîÐVðøâ¿ŠVð‹vî‹~ì‹Fê‹^ú+^ü�À| ŠóÐâÐ^þÑÚë+Ò‹ò‹ú‹Â‰œ‰6š‰>˜£–‹å]_^ÃVWU‹ì�^ëVWU‹ì‹^ƒìü‹FÑàÐVþùÐØˆFðÆFñŠÄ%ÿt$‰Fú�v�~ê¹ó¥‹GÑà€VþùÐØˆFøŠÄ%ÿuë}‰Fü‹ó�~ò¹ó¥+À‹ø‹ð‹Ð¹8ÐnøÑ^öÑ^ôÑ^òs Fê~ìvîVðÑêÑÞÑßÑØâÜ‹^ú^ü�ë€|5ŠóÑàÑ×ÑÖÐÒrþÎëòƒ×ƒÖ€Òs ÐêÑÞÑßÑØþÆÐ^þÑÚÑÞÑßÑØë+Ò‹ò‹ú‹Â‰œ‰6š‰>˜£–‹å]_^óVWU‹ì�~ëVWU‹ì‹~+ÀŠ~ ÿx öE€t @ë"öE€uHëƒÇ�v¹ýó§t @s÷Ø ÿy÷Øü]_^ÃVWU‹ì¾ëVWU‹ìöF€u6¾‹V‹^ ÑãÑÒŠÎ�áÿt!�é�|;Î}¸ãÐçÐÒÑÐâøöF€t÷Øë+À]_^ó @`€ ÷øùúûüýþÿ´Ý´Ý´Ý>CZwà• 7 ‘ ',16 @`€ ÷øùúûüýþÿHÍ!¦!¦ù+0b…í–÷Ë!ì!" s&'‹&'''''¥&BFNRT¯'¹'¥'´'ª'+ +++,, ,%,abrw(2-22272€ DOUXcdefgorsuxŸ<è<ã<í<’=U< = = =ƒ<¨=Z=~<ˆ< ‰ÍKxšTA€@ B B€@Usage: TLINK genfil {cmdfil} {-8bchlmrsux} Serial number violationTurboDOS 8086 Linker Copyright 1984, Software 2000, Inc. cmdgenparr* %s * oNo input files specifiedNot enough memory for name tableNot enough memory for externals tableAbsolutecon:lst:wCan't open list filePass 1 <<< INTERMODULE REFERENCE LISTING >>> rb%s: Can't open object file%-8s Module %sOriginUnit Duplicate def: %s Bad public def: %s Defines: %s %sToo many externals/moduleTransferDuplicate xfer address References: %s %s Bad token = %02x Code Transfer is not in Code (ignored) No code group (transfer ignored) ExtraStackEndCodeEndDataNot enough memory for output bufferPass 2 <<< MODULE MAP >>> UndCodeUndDatarb%s: Can't open object file%-8s Module %s Undefined name: %s %-8s CS:DS:ES:SS:%04x (%04x) Bad token = %02x Unexpected EOFUnexpected EOFUnexpected EOFUnexpected EOFwbCan't create output fileWriting output file "%s" Can't write output fileCan't write output fileCan't write output file Linker abortedNrProcessing parameter file "%s" %s "Missing '"'(Ignored),=AbsoluteOut of range(Ignored),+-()Missing ")"[]Missing "]"-UndefinedInvalid syntax^ ^ %s Too long0X0Invalid digit(s)'Missing "'"Name table overflow Sorting name table %d Printing name table <<< SYMBOL TABLE >>> %-8s = CS:DS:ES:SS: %04x (%04x) uninitialized %-8s = CS:DS:ES:SS: %04xundefined Page %d of TurboDOS Linker Listing for "%s" con:rdr:lst:pun:{NULL}0123456789ABCDEFcon:waToo many arguments $con:wCannot open stderr $r%s: cannot open %s: cannot create +€@ BÈCzE@GPÃH$tJ€–L ¼¾M(knOùQ@·CºR¥ÔhT*ç„V€ô æµW 1©_cY¿É[Å.¼¢±\@v:k ^^è‰#Ç `b¬Åëx­a€z·&×Xc�¬n2x†e´W ?h©f¡íÌÎÂSh…@aQYj¦�¹¥o¥k ô'�ËNm ”øx9?o ¹6×�¡pOgÍÉòIr#�E@|oüs¶p+¨­Å�uãL67EwàÃVß„öxl:– šzÉ{Η@|ÛH»½ð}‰ µP™v–ç‹…¢‰ÿÿåé8�COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/24/84) Œ`‰&bŒØŽÐ¼`º€±Íà \„Àu ]< u  e< ué• \„Àu±ÍàþÀ¢dþȈÂR¶ÿ±ÍßZ„Àup¶€±Íß \þÈy±ÍàˆÂ± Íß„ÀuUºd±Íà„ÀuJºd±!Íà„Àu? €<åu8 �þÀu1¾]¿�¹ ŒØŽÀüó¤ºd±"Íà„Àuºd±Íà„Àu ºŒ± Íà1À뺡뺹± Íà¸Pºˆ± ÍàXŽ`‹&bË$ DIR $ Disk label written$ Unable to label disk$ Invalid disk label$剉é@�@COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 03/29/84) ú.Œ=ŒÈŽØŽÐ¼É3èûéÇ%ÆDgºG±èƒèâèèåèOrèo.¡.£A å2þÈy±èT.ÿ.?ºÿR±èPZþÊyõè| èÚèsè�<t< uðé²ÿ0À¢€ë«‰&ß2ºø±è å2„ÀuW Þ2„Àt°ˆÂ±èûè}uè1 è˜èøsKë ‹&ß2 å2„Àu:±èÖˆÁ Þ2„ÀˆÈtþÈyÅëþÀ<r½èú èwëèï èVè-uè±ëèlùœè�ðÿúC±è–ÃV¾Ò2¿å2¹ŒØŽÀüó¥ €„Àt¾\¿å2¤€< t¹ó¤€< t¹ó¤^Ãè‘ Copyright 1984, Software 2000, Inc. ± è1è$t(RSè[([èøèR/[èïèI)»z5è^$t‰Ú± èúÃè4 ÃèÝ‹èè#:»èùSè [r.Ž&ˆ&:uCëéøëè�ùœè]�Ãèrè,Šûá2þuÆ€ŒÚ±3è�º 3±è•ºå2±è�„ÀùuÀû‰3‹á2)ÓÃ0À»ñ2¹ˆCâûþÀ¢á2ºå2±èa„Àúå2±èVàå2þÈy±èIAè°è:»æ2¹èèq.¹ŠC$ to retry Ãèmÿ not foundÃè^ÿ, bad memoryÃèMÿ loading at Ãè¿€Œˆëèµ€¤ˆï‰daè@"è="è!èÄëuö„ˆœ€Œˆë ö„ˆœ€¤ˆïÿtOÿtQÿtSÿtUÿtWÿtYÿt[ÿt]ÿt_èiè‰è<�D_�D]�D[�DY�DW�DU�DS�DQ�DO€¤ˆï�t€ŒˆËdaÇDOÿÿ‹De…ÀtPè½!ŽD_ÿt]‹l[‹|YÿtW‹TU‹LS‹\Q‹DOö„ˆt‰Ã^Ãèu"VèŠ!‰Æ‰\Q‰LS‰TU�DW‰|Y‰l[�D]ŒD_ÃÇDOèk!rKŠDSö„ˆu»T4<+ë%<€s»Ê3<ûŠT¶þÊè3þ„Òu÷èTs(èñúŠ<åtè~èštèþâöëãŠG<ærÜÆGåèûëÓèe0ÀÃèèÀúÆGåèðú°ÿùÃè²úŠ<åt?‰Ú�”š¹ ŒØŒÝèW‹\oSèós*è�úŠ<åuò‰Ú�œš¹ ŒØŒÝè5è®ú[‰\oèpúÆåC0ÀÃ[°ÿùÃèAŠ„Àu:Sÿtoè©èQú‰å‡^‰\o[ZŠ<åuƒÃ ŠƒÃŠþÀuþÈöÁ€u°‡Úˆ‡ÚÃ0ÀÊD'èÈ ˆÂ¶»¬4ÓÊD'è· #ª4ˆøØt°ÿùÃà 0À&ö€töÐÃèur„Àuõèt ÿDoèØùC0ÀþÀˆÂÃCþˆÐ<t$uÃIˆèÈuùËLI°ÑéþÈuúAÃ0ÀˆDoˆDpÃè"ÿDo‹\o)ÓË\Kº¹ðB)Ësûè‡Ú)Ó‡ÚÊ\·è,ÛþÈuú‡ÚÃS�”š»Ó‰Ú[¹ËRŒØŒÝè [¹ÊC¶èXtŠ7CIˆðÐÃèüèÉ&Š$è4tÑèÑèÑèÑè)Ár(‰WÂëS‰ÃèØæZ‡Ú„Àu‰W€O €QR‰ÚèÔ[ZYâ“ÃèÅæY ë4(Èu»ê4ŠþÈxþˆé5ÿ¢ë4ÃöD&uè[ èëè ÷Ó!ô4Šö4ˆÍöÕŠD( ȈD0ŠD( èˆD(賄ÀtþÀuvè�uðè鮊D0„Àu/öD/@u)‹\(SŠö4¶þÂ0À)Ó‰\(rè{[‰\(„Àt è{ŠþÈy5‹ì4»ì49Ót ‰T1èAè2ëL‹ò4‰\1èUŠþÈy‹\1‹W»ð49Ó‰Óuåètéwÿèè-ö@tèœè‚�tèktéÏè!èÍëèlèmtÆDèÄÀt鱋\1‹G‹_Št0²ÑêÓöD&t‰\+‰D-ë‹T+‹l-öD&t‡Ú•¹€è öD&t躀@KŠD0þÀ:rˆŠD( D0ˆD(éŠèªè�ˆCŠD(ˆCŠD)ˆCŠD*ˆC ö4þÀöD/€tŠD0ˆC€'ŸÃè:ŠDU$¢ê4ŠDV<s°¢ë4é�ý ê4Š&ë4‰DQÊDUè¿„ÀtÊDUèoˆÁŠlVë¹ÿð€ùÿt è Ó‰ô4€åþ»ð4€ùÿt Sèï…Ó[uéÁ‹»ð49Ótr‰Ó‰\1€ùÿt:Ou×öÅ€uèêö uPèçŠþÈxGè»u¹èÔö@t2Qè%tèuYè¦ë è¦è¸€@€ Y€ÍöÅ@tQègYöÅ u�ëè€téwÿ‹\1étÿ€ùÿtAöÅ€t<öÅtˆè$`<`u/Qµ»ú4ËË‹…ÒtSQˆÈèY[öD€uÇ»¬4ËÆèöY»ð4‹»ð49Ót » Ó€'߉ÓëëöÅtöÅuéÏäËô4ˆÈéOQèYöÅ€t QèÎY0ÀþÈûð4‹»ð40À9Ót‰ÓSè [„Àtê‰\1ÃÊd'èîˆD'V¹ŠD':°uFCâó0À^ˆd'uŠD0:r °uöD/€t°ÿÃÆDèm„ÀÀ'¿è–ŠèX蓊„ÀtJ´‰D$ ê4:DsÆèuŠºÿÿè û„ÀtæþÀuíé%è_¹VŠCˆDFâ÷^‹\1‹G‰D"‹G‰D 0ÀþÈÃè/èééã‹\1è(»ÓÆÿ»ì4é+‹\1è»ð4éè è„ÀÃèèJ„Àuöúë ºëº ëº ‹\1ÓÊD'é"‹ð4ºð49Óû)5¹QS»*5ËËˉø4´º*5‹ø4¹‡ÚЇÚ:uBCâòëBâýþÄëâ[ˆ'KYþÉyÅË\U‰ò¹‹D]ŒÝèÒö„ˆ€t6‹TèÊŠDˆD莈DO„Àt.Š<u(‹\UƒÃŽD]‹T&‰‰Ó‹T ‹l 顊<s<sÆDOÿÈDÆDŠD,r uéþþÈué;ËL$IŠDþÈxÑéëøA‰L‹\$躉\‹TŠDŠdþÌxÐèÑÚëö‹\´öÇ€uÑãþÄëõ‡Ú¹ÿÿA)ÓsûþÈy÷ÓIAþÌx ÑêÑá)ÓsóÓëð‰Ú‹\Ë‹L ‹D"‰D ‰L ‰\‰T‡Ú‹Lˇڋ\)Ós,Sˉ\èQè Z„ÀuH‹\ ‹LÙ÷Ú‰Ó‰\è7º‹\C뻊Dˆ‹\‹T0À)ÓsŒØŽÀèo„ÀtŠDºÿÿèöøþÈtþÀtäÃèìŠDþÈxÑãëø‰\ÊD$ÀˆÂ¶»ú4Ó‹…Òu%SÆè*„ÀuŠDºÿÿè±ø„Àtì<ÿuïé¨á[‹T‰‰Tè91ÀÃÆŠT€â¶»*5ÓÓÓ0Àö€uŠˆDÿgÃRS$ˆÂ¶»5ÓŠ[ZÃ�\‡ÚŒÝŒØ¹ éì å4ˆ„‰èé Z5ˆDOŒ\_Ë\UŽD]&‹R&ŠGèˆÆ&ŠGèˆÂ[�ÃÎ*µ± é½àPÐÈÐÈÐÈÐÈ$ˆÅX$þÅþÍt ëøÃè ˆDOÃè&ˆGñ èŽà�ëÎ*‰Ø‹\UŽD]&‰ˆðè&ˆGˆÐè&ˆGˆè±ÿþÁ, sú ÐáÐáÐáÐáÈËDU=ÿÿt£[5á[5‰DOÀ¤ˆ¿ÃÆDS0Àö„ˆ€t €ˆDTÇDU¬ÇDQË\Q‹Lj‹TUŽDlè9‰TU‰LS‰\Q‰DOÃèê< s< t < t< t<uPèXˆDOÊDUˆÁ< s(< t < u$Æ^5ë ^5$ø*^5ˆÁµQ± èYâ÷Ãþ^5éè’ˆDOÊLUéôŠDUˆÁþÀtþÀtþÀtéàèlë èg„ÀtèeˆDOË\UŽD]&ŠC:_5t Sè‚ÿ[ëíË\UŽD]é}è6ˆDOË\Uƒûÿtˆ_5à_5ˆDOË\UŽD]&‹O&‹ã&ŠCIQSè@ÿ[Yëðòé‚è :`5tÃè&ëñèéÿ„Àuè&té!²ë`èÖÿ„Àt:`5tÃèëÿŠh5„Étè:èÝÿ:a5t!:b5t:d5t:c5uÚ€´‡ö„‡ué×Ãéßö„‡tQèÈY²ë²ë² ŠDg„ÀtþÈ´»e5ÃÃÊ/ÿgûp5é‹\U…ÛuÉn5»l5þy)ûQRS‹p5»p59Ót‰Ó‹P¸Ê&PƒÃÿãZëè[ŠÀxÜZY0ÀÃÿj5 l5„ÀuËn5K‰n5…Ûtûl5þ0ÀÉt5»€SèlÝZÓ‰v5»ÛSè^݉x5YÆCâúË&v5‹6x5ÿ&t5Ï‹v5áx5Ã0ÀÃ0À�ûz5ùŠCþÀtþÈy$8àu ;uˆÈöØÃCCâà°ÿÃQ±ÓãYôº'èºèèºdè º èþĺ±ÿþÁ)ÓsúÓ„Éu„ät €Á0PSè½þ[XþÄË‹G‡Ú‰G“‰Ë_‹‰“‹O‰W‡Ú‰‰OÃ[èÿã.ŠC„ÉtSè‚þ[ëñÃ�5tþ�5À>Ž5tþŽ5ÃÆŽ5ëäJ$täHÃÆ�5(äL$/ˆÂäN¨t€Ê@¨t€Ê€äHè�<^r »15×<ÿuû16±:t ƒÃþÉuõëŠGˆÁè0öÂtQ±èzYöÂtˆÈèG<@r<_w$ˆÁè`öÂt± èVðÀ Ðt<€t"»96°:tƒÃþÈuõÊOÀùAr€ùZw€Á Ãx6tþx6uÆx6öm6€t €ê6€»ç6èÇÃÇr6g,ÃÆü6è"»÷6è±è)»þ6è¨é²ÿ²ë €>n6uŠo6Ã0öëZþ΀þPr¶OþÊ:t6r:u6vŠu6öm6tèú¨ u×ÃþÆ€þPr)0ö€>n6u öm6@tèµ¶OÃþÂ:u6v öm6tŠt6öm6t軨 uÂÃþÊþv6€>v6rÆv6èÉR¶è5ZÈð0äŠj6öñ j6(àð70ÿЇN7¢@7ÆA7€„ÛtÆA7ÿÆV7Æ^7èï„ÀuöÐÃèGŠX7èÂt0öÓŠþŠtè¼ötÐî»:7€'Æ<78Ös (ò€Æ<7ˆ=7ˆ6?7Æ]7èbŠ.`7± è(èj G7$Àt%öG7uöI7t þ^7xèÇéÿ±è›õþ]7zÅ G7V7è@tèMY7þX7þW7téTÿ V7$Àt ÿËD P± ÓèˆÂX±ÓàY7€Òæˆàæèèþu‹DHæˆàæˆÐæ: _7æ°æ ÊD<säPþÀt è èe¨ t ÿÃ0ÀÊT€â :7$8ÐtˆÃ0ÿ ;7ˆ‡R7ˆÓЇR7¢;7ˆ:7ˆB7€&:7û€&B7ûùè:è|0À¢;7ÊD:;7t ¢;7¹èèaùèè? G7ñè èK G7$ÀÃäP¨uúœú»:7ˆè$< u»B7äP¨€tú¨@u ˆèæRŠ/CþÉuë�Üú»G7äP¨€tú¨@täRˆCëï�ú52è‚ô»47é‘ô‹\‹Ÿ …ÛË\�à ÃQŠL¸€ÓàYÜú° æ(ä(�¨tèr »52èZõ»47èŸôÃäP¨u¹ècÿè�ÿ G7$À<Àùt°æ 0Àð0æ/°æFº)¸Àîˆàî°º’2éðõPSQRèõ°æFº)¸Àîˆàîþ†8€>†82rƆ8è{ôèôèÏöè«ø°èöZY[Xé[ôOSMASTERSYSË$ %*%b%i%z5o%z5z5–%°%¹%$„Š˜ú ¶4­š å z5“šz5z5Ì z5¡C ‰ à ¹ z5‰ z5z5ÀÌz5îõz5z5z5z5z5z5z5)$l$z5¸$À%Ô%z5$z5š&z5z5z5z5 z5z5ÔÑ$\z5z5z5Yu"Lfz5qz5z5z5z5z5z5z5z5z5z5z5z5z5î$ñÿÿÿÿÿÿÿÿDIRDSKì4ì4ð4ð4¯.¯.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1$ )p5p5@ˆ5ˆ5(-ÿÿÿÿÿÿÿÿÿÿ*+ÿ-./0123456789ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿ-=@`:;;'1!2@3#4$5%6Ð7&8*9(0)-_=+`~[{]}\|,<.>/?;:'"^íþÿ€{6{6 ›+É+O,,Ò+ó+¹+>-”+µ+=*TYCjk^_qlm.,>-‚-³-¨,Æ,Ì,Ò,Ø,Þ,é,ï,õ,B@N@R@@@@î@E@oBFB@GBP@JBÿ@ÿ@KB@!@Š@IB@@ B@@0B€@°B pB@@@@@@@@LB@@@Š!ŠŠ.Š07076767å5Ï/Ø/Ó.41@/}7hM5Ž7� P?5Ÿ7È (5°74M 5Á7ÈP;5Ò7È(5ã74Mô7šM8 €8 @'8î4MR8 óM88         #&),/2!$'*-03"%(+.1å??bCé9�COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 03/26/84) ‹úŒœ‰&žŒØŽÐ¼( û¿ ¹( +Ïã*Àªâý+íè­‹Ü‹GúŽœ‹&žûËVWU‹ì�ìSÆFíÆFÞÇFσ~} ¸ PèJƒÄ¸¼Pè7ƒÄÇFÍëÿFÍ‹FÍ;Fréì‹vÍÑæv ‹<€=-u+‹vÍÑæv ÿ‹<Š˜P调ĈFݘ ÀtÅ€~ÝMuÜÇFÛëÕ€~íu²¸ P‹~ÍÑç~ ÿ5�FíPè8ƒÄ¸âP�FíPèÀƒÄ�FíP¸åP讃ĸòP�FíPè2ƒÄ‰Fþ Àu ¸õP蘃ĸ P‹~ÍÑç~ ÿ5�FÞPèåƒÄ¸ P�FÞPèmƒÄ�FÞP¸Pè[ƒÄ¸P�FÞPè߃ĉFü Àtéÿ¸PèBƒÄéÿ¸;Pÿvüè@ƒÄƒ~Ûu¸Gë¸JPÿvüè(ƒÄèÚÿvþ艃ĉFÙ‹FÙ±Óè%‰F×=uéÎ�fÙÿFÙ‹F×鲸MPèÕ ƒÄ‹FÙÿNÙ Àtº¸TP¸.PÿbƒÄƒ~Ûuÿvþè1ƒÄP¸^Pÿvüè¶ ƒÄëÈÿvþèƒÄP¸mëå¸yPè„ ƒÄ‹FÙÿNÙ Àuéfÿ¸TP¸.PÿbƒÄƒ~Ûuÿvþ賃ÄP¸ŠPÿvüèb ƒÄëÅÿvþ蚃ÄP¸™ë帥Pè9ƒÄéÿ ÀuéGÿ=t“ëå�~Ùÿu ¸ºPè ƒÄéÁ‹FÙ騸ÓPèû ƒÄÿvþèLƒÄ‰FÕÿvþè@ƒÄ‰FÓ‹FÕFÓuéÇþ¸îPèΠ뜸 PèÅ ƒÄÿvþèƒÄ‰FÕÿvþè ƒÄ‰FÓƒ~Ûu¸"ë¸,Pÿvüè¬ ƒÄƒ~Ï r ¸5P莃ÄÇFÍ‹^ÍÿFÍ‹FÏ÷&‹ð‹ýþûÿvþèæƒÄ˜‹ÈŠÁˆ…­ý˜ˆFݘ Àt#ÿvüŠFݘP‹^üÿWƒÄ¸TPŠFݘPÿbƒÄë­ÿvü¸ P‹^üÿWƒÄ‹FÏÿFÏ÷&‹ð‹ýþ‹FÕ‰…¼ýƒ~Óuéìý¸KéÀþ¸mPèí ƒÄƒ~Ûu¸|븅Pÿvüèì ƒÄÿvþèPƒÄ˜‹ÈŠÁˆFÝ Àt ÿvüŠFݘP‹^üÿWƒÄ¸TPŠFݘPÿbëÈÿvü¸ P‹^üÿWé|ýÿvþèáƒÄ‰FÑP¸ŒPèy ƒÄÿvþèʃÄ ÀuéXý¸¨é,þ¸Çé&þ-ú=wòÑà‹Øÿ§é9ýƒ~ÏtpÇFÍëÿFÍ‹FÍ;FÏs^‹FÍ÷&Å-SP¸ÜPÿvüè/ ƒÄƒ~Ûu$‹FÍ÷&‹ð‹ýþ‹…¼ý+FÑP¸áPÿvüè ƒÄ뱋FÍ÷&‹ð‹ýþ‹…¼ý+FÑP¸óëÚÿvþèmƒÄÿvüèdƒÄ¸Pè¸ ƒÄ+ÀPè%ƒÄ‹å]_^ÃVWU‹ìƒìÿvèƒÄ‰FþÿvèƒÄ±ÓàFþ‹å]_^ÃVWU‹ìƒìÿv‹^ÿW ƒÄ‰Fþ=ÿÿu ¸PèbƒÄ‹Fþ‹å]_^ÃVWU‹ìƒ~a| ƒ~zƒn ‹F]_^ÃVWU‹ì¸þP¸Pè[ƒÄ Àt¸ÿP¸PèIƒÄ=uÛ¸2Pè ƒÄëÏ]_^ÃVWU‹ìÿv¸EPèè ƒÄ¸PèTƒÄ]_^ÃVWU‹ì‹N‹V Íàë6VWU‹ì‹N‹V Íà*äë$VWU‹ì‹N‹V Íà‹ÃëVWU‹ì‹N‹V ÍàŒÂ‹Ã]_^ÃVWU‹ì¾ �þ(sƒ<tVèƒÄƒÆ4ëéÿvèðùƒÄ]_^ÃVWU‹ì‹v÷t(÷tV¸PÿTƒÄ=ÿÿt+÷@t VèFƒÄ=ÿÿt÷@t�DP¸PèQÿƒÄ=ÿu¸ÿÿë‹D‹ø Àt ÷uW蟃ÄÇ+À]_^ÃVWU‹ìƒì‹v‹%H=Hu_ƒ|tY‹|‹D1‰Fþ;|sEW¸PèãþƒÄ�DP¸"PèåþƒÄ Àt � ¸ÿÿë'�Ç€¸PVèKƒÄ‹D1;D v¾‹D1‰D ë¶‹Fþ‰D1+À‹å]_^ÃVWU‹ì¾ �þ(sƒ<uVÿv ÿvèƒÄëƒÆ4ëá+À]_^ÃVWU‹ìƒì ‹v ƒ<tVèÏþƒÄ=ÿÿué+À‰Fü‰Fþ‰Fú‰Fø‰Fö‹^ ÿF Š˜‹ø Àt4‹ÇëÿFöëèÿFøëãÿFþëÞÿFüƒ~þuÕÿFúëл ¹CC;àúuÂÿg뽃~öt ƒ~üté�‹Fþ Füué’ǃ~úuƒ~öt� ƒ~øt� ÇDÿÿÇD+À‰D‰D¸LPÿvè² ƒÄ Àuƒ~øt ÆÇD aëÇD ËÆDë\¸QPÿvè† ƒÄ ÀuÆÇD aÇDÄ é ¸VPÿvèe ƒÄ ÀuÆDë¸[PÿvèN ƒÄ Àuƒ~øu� ÆDÇD XÇDê éÊÇD ‚ÇD � @ƒ~øu� Vÿv軃Ä Àu饃~út(�DP¸PèäüƒÄ�DP¸PèæüƒÄ=ÿt~ÇD ëcƒ~ötC�DP¸PèÆüƒÄ=ÿu�DP¸Pè³üƒÄ=ÿtKVèIƒÄ¸P+ÀPPVè`ƒÄ=ÿÿu,ë.�DP¸PèƒüƒÄ=ÿtVèƒÄÆD0ÆD1ÆD2ÆD3‹ÆëÇ+À‹å]_^ÃVWU‹ìƒì‹v ÆDÆDÆDÆD‹F‰Fþ�|‹^þÿFþŠ˜‰Fü Àt-ƒ~ü.t'ƒ~ü:t!�D;Çvyƒ~üa| ƒ~üzƒnü ‹ßG‹FüˆëÃ~ü:u*�D;ÇuR€|uLŠD˜‰Fü=A|@ƒ~üP:‹Fü-@ˆDë��D;Çv‹ßGÆ ëñ�|ƒ~ü.u5‹^þÿFþŠ˜‰Fü Àt%�D;Çw+Àë,ƒ~üa| ƒ~üzƒnü ‹ßG‹FüˆëË�D;Çv‹ßGÆ ëñ¸‹å]_^ÃVWU‹ì‹v�DP¸#Pè;ûƒÄ‹D1‰D ]_^ÃVWU‹ìÿv ÿv‹^ ÿWƒÄ]_^ÃVWU‹ì‹v‹~ ƒþ u÷u W¸ PèâÿƒÄVŠE˜PèìúƒÄ‹Æ*ä]_^ÃVWU‹ì‹v‹~ ÷ u}ƒþ u÷uW¸ PèÜÿƒÄ=ÿÿtbƒ}u¸PèbƒÄ‰E Àu� ëE÷uƒ}uWèûƒÄ Àt.ÇE‹E‰E� ÿM}WèUûƒÄ ÀuW¸PèöƒÄ Àuá¸ÿÿë‹]ÿE‹Æˆ‹Æ*ä]_^ÃVWU‹ì‹v � ¸ÿÿ]_^ÃVWU‹ìƒì ‹v÷@ué3VèüúƒÄ Àté%ƒ~u VèJƒÄ霃~t陋D +Ò¹ÑàÑÒâú‰Fø‰Vú÷usƒ| tmƒ|u¸PèzƒÄ‰D ÀuéÒ‹D ÿÿ‰D1ÿt¸Pè ùƒÄ�DP¸!Pè¢ùƒÄ Àu+ÇFöëÿFö�~ö€} ‹~ö|€=uë¿€+~ö‹Ç™)FøVú‹Fø‹VúF V ‹F ‹V %þ¹ÑúÑØâú‹Ø‹Ê‹Ã‰Fþ‹^ ‹N �ãÿ+ɋÉFüƒ|t‹Fþ;D1u‹D+DD;Fü0ƒ|u¸P蹃ĉD Àt‹Fþ‰D1V+ÀP脃Ä Àu¸ÿÿë#‹D+DD+Fü‰D‹FüD‰D�$ÏÿÇDÿÿ+À‹å]_^ÃVWU‹ìƒì‹v÷@u¸ÿÿºÿÿë/‹D1+Ò¹ÑàÑÒâú‰Fü‰Vþƒ|t‹|+|‹Ç™FüVþ‹Fü‹Vþ‹å]_^ÃVWU‹ìƒì‹v ‹|‹D‰Fþ÷FtV赃Ä Àu+À飋D1‰Fü;D r÷Ft� ëw;~þtr‹ßGÆëó�Ç€;~þtaW¸PèøƒÄ�DP¸!PèøƒÄ‰Fú Àt2ƒ~útƒ~út ;|u0� ë*ÇFúëÿFú�~ú€} ‹ß^úÆëì¸PVè@ƒÄ Àu–‹Fü‰D1‹D‰D‹Ç+D‰D‹å]_^ÃVWU‹ì‹v‹D+D™÷>PVèƒÄ]_^ÃVWU‹ì‹v‹~ O|þD1uøþD2uó� +Àë¸]_^ÃVWU‹ìƒìƒ~ué«‹F%üÿ‰Fƒ>`uE¸üÿ%+ ‹ð€>t¡ë¡‰Fþƒnþ‹~þ;÷ws‰6`‰6b‰<‰u¡`‰‹`‰‹ ‰‹6b÷u<‹+ƉFü;Fr0‹Fü;Fv‹ÆF‹ø‹‰‰u‹Ç‹‰G‰‹£b‹ ‰�Dë‹%þÿ‹ð;6bu±+À‹å]_^ÃVW.U‹ìƒì‹vƒî‹|‹%þÿ‰Fþ‹%þÿ‰‹^þ÷u‹^þ‹‰Fþ‰‹^þ‰w÷u‹Fþ‰‹Ç‹ð‹^þ‰G‰6b‹å]_^ÃVWU‹ì�FP¸TPèdƒÄ]_^ÃVWU‹ì�F PÿvèNƒÄ]_^ÃVWU‹ìƒì4ÇFÚ0‹F‰FÒ�F P�FÌPè)ƒÄ‹~ÒÆ‹å]_^ÃVWU‹ì‹v ‹|ÿD‹Fˆ‹F]_^ÃVWU‹ìƒì8‹F ‰Fþ‹^þ‹‰FîƒFþ‹^îÿF‹ø=%t ÿué4ÿvW‹^ÿWƒÄëÚÇFö ÇFòÿÿÇFôÿÿ‹^îÿF‹øƒÿ-uÇFø‹^îÿF‹øëÇFøƒÿ0uÇFö0‹^îÿF‹øƒÿ*u‹^þƒFþ‹‰Fò‹^îÿF‹øë1ÇFòë ‹^îÿF‹øƒÿ0|ƒÿ9‹Fò÷.‹È‹ÇÁ-0‰FòëÖƒÿ.uZ‹^îÿF‹øƒÿ*u‹^þƒFþ‹‰Fô‹^îÿF‹øë1ÇFôë ‹^îÿF‹øƒÿ0|ƒÿ9‹Fô÷.‹È‹ÇÁ-0‰FôëÖƒÿlu&‹^îÿF‹øƒÿdtƒÿot ƒÿutƒÿxu‹Ç%ßÿ‹ø�FȉFú‹ð‹Çég‹^þƒFþ‹‰Fæƒ~æ}‹Fæ÷؉Fæ‹ÞFÆ-¸ Pÿvæë¸ ë¸ë¸P‹^þƒFþÿ7V趃Äé·‹^þ‹‹W‰Fæ‰VèƒFþƒ~èy‹Fæ‹Vè÷Ú÷؃ډFæ‰Vè‹ÞFÆ-¸ PÿvèÿvæVèìƒÄës¸ ë¸ë¸P‹^þÿwÿ7Vè̓ċðƒFþéÇ‹^þ‹G£‚‹G£€‹G£~‹£|¡‚‰Fì¡€‰Fê¡~‰Fè¡|‰FæƒFþVÿvôÿvìÿvêÿvèÿvæWè ƒÄ‹ðëv‹^þ‹‰Fü ÀuÇFüdƒFþ‹Fü‰Fú‹ð‹ÞF€?tƒ~ô|ò‹Æ+Fü;Fô~èNë>‹^þƒFþ‹ˆFæ‹ÞFŠFæˆë(‹^þÿ7ÿvè1ýƒÄƒFþ뻹CC;àútéHýÿg‹FúFò+ƉFð À}ÇFðƒ~øu‹FðÿNð Àtÿvÿvö‹^ÿWƒÄëå;vúvÿv‹^úÿFúŠ˜P‹^ÿWƒÄëãƒ~øuéÓü‹FðÿNð ÀuéÆüÿvÿvö‹^ÿWƒÄëâ‹å]_^ÃVWU‹ìƒì‹v �Fþ‰FþÿNþ‹^þÆë‹÷‹Æ+Ò÷v ‹ø Àt‹Æ+Ò÷v ‹ÚЇlˆFòÿNþ‹^þŠFòˆëÔÿNþ‹^þŠ„lˆ‹^þ€?t‹^þÿFþŠˆFò‹^ÿFŠFòëà‹F‹å]_^ÃVWU‹ìƒì‹v‹~‰níÿNí‹^íÆë ‹Fï‹Vñ‰F ‰V ‹Ç™RPÿv ÿv è1ƒÄ‰Fï‰Vñ Ât0‹Ç™RPÿv ÿv èVƒÄ‰Fç‰Vé‹Fç‹ØŠ‡lˆFëÿNí‹^íŠFëˆë©‹F ‹ØŠ‡lˆFëÿNí‹^íŠF눋^í€?t‹^íÿF튈Fë‹ÞFëã‹Æ‹å]_^ÃVWU‹ìƒì‹v ‹~‹ßG€?uøO‹ÞFŠˆFþ‹ßGŠFþˆ Àuì‹F‹å]_^ÃVWU‹ì‹v‹~ ‹ßGŠ:u ‹ÞF€?uï+ÀëO‹ßŠ:}¸ÿÿë¸]_^ÃVWU‹ìƒì‹v ‹~ ‹F‰Fþ ÿtO‹ÞFŠˆFü‹^þÿFþŠFüˆ Àuä‹ÇO Àt ‹^þÿFþÆëî‹F‹å]_^Ë܋_ë‹Ü�_VWU‹ì‹V ‹F+ö+ÿ¹ ÑàÑÒÑ×ÑÖ;wr w;?r+?w@âå‹å]_^Ë܋_ë‹Ü�_VWU‹ì‹v ‹~+Ò+À¹ ÑçÑÖÑÐÑÒ;Wr w;r+Wâæ‹å]_^ÃVWU‹ìƒìFÇFþ¸„‰Fú‰FüÇFø‰ÇFº‹ÇFö¾� €˜‹ØÞÆ‹ÞFŠ˜‹ø ÿu鑃ÿ tìƒÿ tçƒÿu€<>uÇFøŒF‰vú‹ÞFŠ˜‹øë2ƒ~ö|¸ŽP¸ PènïƒÄ+ÀP+ÀPèbïƒÄë‹^öÿFöÑãÝ�Dÿ‰Gº ÿt#ƒÿ tƒÿ tƒÿa| ƒÿzÇFþ‹ÞFŠ˜‹øëÙÆDÿéhÿ‹^öÑãÝÇGºƒ~þt& €˜€‹ðëN�þ€vŠ˜‹ø=A|ïƒÿZê€ ë师P¸©P¸¤PèmðƒÄ Àu¸«P¸ PèÆîƒÄ+ÀP+ÀPèºîƒÄ¸ P¸ÁPÿvüè>ðƒÄ Àuÿvü¸ÃP¸ˆPè�øƒÄ¸PèÖîƒÄ¸TPÿvøÿvúèðƒÄ Àuÿvú¸ÔP¸ˆPèRøƒÄ¸Pè§îƒÄ+ÀP�FºPÿvöè½èƒÄPè�îƒÄ‹å]_^ÃVWU‹ìƒì0ƒ~}ÇF�FÒP�FúP�FüPÿvÿvÿvÿv ÿv ÿvèwƒÄ‹ðƒ~guC‹þ€=tGëø;÷t €}ÿ0uOëó‹Ç+ƉFЃ~üý| ‹FÐ;Fü}ÇFeë ‹Fü;FÐ|ÇF‹~ƒ~út‹ßGÆ-ƒ~et韋ÞFŠˆFЋßGŠFЈ¸XPÿvÿvÿv ÿv èÏ ƒÄ ÀtÿNü‹ßGÆ.ƒ~~ Š˜‰Fþ Àt F‹ßG‹Fþˆë‹ßGÆ0ÿNëÚ‹ßGÆeƒ~ü|‹ßGÆ+ë‹ßGÆ-‹Fü÷؉Fü‹ßG‹Fü™÷>`0ˆ‹ßG‹Fü™÷>`‹Â0ˆëjƒ~ü‹ßGÆ0ë Š˜‰Fþ Àt F‹ßG‹Fþˆë‹ßGÆ0ÿNüuàƒ~t6‹ßGÆ.ƒ~~*‹FüÿFü À|Š˜‰Fþ Àt F‹ßG‹Fþˆë‹ßGÆ0ÿNëЋNjå]_^ÃVWU‹ìƒì¸ŠPÿvÿvÿv ÿv èÆ ƒÄ À|C‹^ǸbPÿvÿvÿv ÿv è¥ ƒÄ Àuf‹^Ç‹v‹FÿN Àt‹ÞFÆ0ëîÆéÆ‹^Ç‹F£‚‹F£€‹F £~‹F £|÷‚€ÿt€6ƒ€¡‚‰F¡€‰F¡~‰F ¡|‰F �FøPÿvÿvÿv ÿv è?ƒÄ ¸jPÿvøè„ƒÄèäèƒÄ èÛèH ƒÄ‰FüÿvüèMƒÄèÆ�F PèEƒÄ ¸rPÿvÿvÿv ÿv è×ƒÄ À|ÿFüë¸zP�F PèPƒÄ‹Fü‹^‰ÿvÿvÿv ÿv èèƒÄ‹ø‹v‹F‰Fúƒ~ftƒ~guƒ~ü|‹F;Fü|‹FüFë‹F@‰Fúƒ~ú}ÇFúƒ~ú~ÇFúÇFþëÿFþ‹Fþ;Fú}a‹ÞF‹Ç0ˆ¸‚PW螃Äèþÿvÿvÿv ÿv èƒÄèéè$ƒÄ ¡‚‰F¡€‰F¡~‰F ¡|‰F ÿvÿvÿv ÿv è,ƒÄ‹øë”ƃÿ|%;vtNþŠ˜=9~Æ0ëëÆ1‹Þ^úÆ‹^ÿ‹F‹å]_^ÃVWU‹ìƒì‹v+ÿ ö}G‹Æ÷Ø‹ð‹Þ±Ó㋇‹‡ì£€‹‡ê£~‹‡è£|¡‚‰Fþ¡€‰Fü¡~‰Fú¡|‰Fø ÿt2�FøPÿ6˜ÿ6–ÿ6”ÿ6’è6ƒÄ ¡‚‰Fþ¡€‰Fü¡~‰Fú¡|‰Fø‹Fþ£‚‹Fü£€‹Fú£~‹Fø£|‹å]_^ÃVWU‹ìÿv‹^ÿW ƒÄ]_^ÃVWU‹ì‹v‹D‹ø À|ÇDÿÿëL÷uA¸ÿPŠ˜Pè†éƒÄ‹ø÷u0ƒÿ u¸ÿPŠ˜PèkéƒÄ‹øƒÿ t‰|¿ ëƒÿu � ¸ÿÿë‹Ç]_^ÃVWU‹ìƒì‹v‹D‹ø À| ÇDÿÿ‹Çé“÷0uaÿL}~ƒ|u¸€Pè¹ñƒÄ‰D Àu� ë?‹\Æ}ÿt¸ PèßèƒÄ¸ P¸PèÑèƒÄ‹\ŠG*ä‰Fþƒ~þu‹\€u � ¸ÿÿë'‹^þCC\Æ ‹Fþ@‰D‹D@@‰Dé}ÿ‹\ÿDŠ*ä‹å]_^ÃVWU‹ì‹v‹D‹ø À|ÇDÿÿé·÷0t驃|u)¸Pè ñƒÄ‰D Àu� é‹V¸PèÒïƒÄ Àuëz÷t VèéƒÄ Àui�$÷ÿÿL}V¸Pè§ïƒÄ ÀuìëO‹\ÿDŠ*䋸÷uBƒÿ u/ÿL}V¸PèzïƒÄ Àuìë"‹\ÿDŠ*䋸ƒÿ t‰|¿ ëƒÿu � ¸ÿÿë‹Ç]_^ÃVWU‹ì‹v� ¸ÿÿ]_^ÃVWU‹ì‹FÑÀŠÌ*í�逋^‰´€ÑÈ£‚‹F £€‹F £~‹F£|]_^ÃVWU‹ì‹F ëVWU‹ì�F P‹vÿtÿtÿtÿ4è„ƒÄ ¡‚‰D¡€‰D¡~‰D¡|‰]_^ÃVWU‹ì‹F ëVWU‹ì�F P‹vÿtÿtÿtÿ4è\ƒÄ ¡‚‰D¡€‰D¡~‰D¡|‰]_^Ã[ÿ6‚ÿ6€ÿ6~ÿ6|ÿãVWU‹ì�^ëVWU‹ì‹^+ÀëVWU‹ì�^ëVWU‹ì‹^¸€ƒìÇFþüG‹ÐÑàÐVÿùÐØˆFøÆFùŠÄ%ÿu‹V‹v ‹~ ‹Féý‰Fü‹ó�~ò¹ó¥‹FÑàÐVþùÐØˆFðÆFñŠÄ%ÿu ‹w‹‹é̉Fú�v�~ê¹ó¥‹Vø‹vö‹~ô‹Fò‹Nú+Nü}‹^ü‰^ú‹^þ†û‰^þ÷Ù‡Vð‡vî‡~ì‡Fêƒù9~ŠVð‹vî‹~ì‹Fê‹Núëlã ÑêÑÞÑßÑØâö‹Nú‹^þ:ûtètFê~ìvîVð:ûuöÆtAë$ Òu öu ÿu Àt7y†ûèEÑàÑ×ÑÖÐÒrIëóƒ×ƒÖ€Òs ÐêÑÞÑßÑØAŠñÐëÑÚÑÞÑßÑØ‰‚‰6€‰>~£|‹å]_^Ã÷Ò÷Ö÷×÷Ѓ׃փÒÃVWU‹ì+Ò*ÿ‹F Ày=÷Ø·€ë7VWU‹ì+Ò*ÿ‹Fë)VWU‹ì*ÿ‹V ‹F Òy÷Ú÷؃ڷ€ë VWU‹ì*ÿ‹V ‹F+É‹ò ðt± ÑàÑÒrþÉëöÐéÑÚÑØ ψƒ‰�£+À¢~£|]_^ÃVWU‹ì�^ëVWU‹ì‹^ƒìü‹GÑàÐVþùÐØˆFøŠÄ%ÿuéΉFü‹ó�~ò¹ó¥‹FÑà€VþùÐØˆFðŠÄ%ÿu騉Fú�v�~ê¹ó¥ŠVð‹vî‹~ì‹Fê¹8:Vøwr;vöwr;~ôwr;Fòr ÿFúÐêÑÞÑßÑØõõÑÐÑ×ÑÖÐÒr:Vøwr ;vöwr;~ôwr;Fòr +Fò~ôvöVøøõÑVêÑVìÑVîÐVðøâ¿ŠVð‹vî‹~ì‹Fê‹^ú+^ü�À| ŠóÐâÐ^þÑÚë+Ò‹ò‹ú‹Â‰‚‰6€‰>~£|‹å]_^ÃVWU‹ì�^ëVWU‹ì‹^ƒìü‹FÑàÐVþùÐØˆFðÆFñŠÄ%ÿt$‰Fú�v�~ê¹ó¥‹GÑà€VþùÐØˆFøŠÄ%ÿuë}‰Fü‹ó�~ò¹ó¥+À‹ø‹ð‹Ð¹8ÐnøÑ^öÑ^ôÑ^òs Fê~ìvîVðÑêÑÞÑßÑØâÜ‹^ú^ü�ë€|5ŠóÑàÑ×ÑÖÐÒrþÎëòƒ×ƒÖ€Òs ÐêÑÞÑßÑØþÆÐ^þÑÚÑÞÑßÑØë+Ò‹ò‹ú‹Â‰‚‰6€‰>~£|‹å]_^ÃVWU‹ì�~ëVWU‹ì‹~+ÀŠ~ ÿx öE€t @ë"öE€uHëƒÇ�v¹ýó§t @s÷Ø ÿy÷Øü]_^ÃvVWU‹ì¾ëVWU‹ìöF€u6¾‹V‹^ ÑãÑÒŠÎ�áÿt!�é�|;Î}¸ãÐçÐÒÑÐâøöF€t÷Øë+À]_^à öu ÿu ÀIâ vÔabrwØÝâç€ DOUXcdefgorsuxNISø»oooéÀäî ‰ÍKxšTA€@ B B€@Usage: OTOASM {-m} filename Copyright 1984, Software 2000, Inc. .o Opening %srbInput file not found.asm Creating %swUnable to create output file; START = . $ Absolute byte: .BYTE 0%02xH DB 0%02xH Absolute word: .WORD 0%04xH DW 0%04xH Unrecognizable token End of file encountered End of module encountered, transfer address ignored Public symbol defined: .INTERN PUBLIC Symbol table overflowRelocatable symbols not permitted Module name: .IDENT NAME Set location counter: %04xRelocatable code not permittedUnrecognizable token %s = START + 0%04xH EQU START + 0%04xH End of conversion Unexpected end of fileConversion aborted %s gcon:rdr:lst:pun:{NULL}0123456789ABCDEFcon:waToo many arguments $con:wCannot open stderr $r%s: cannot open %s: cannot create €@ BÈCzE@GPÃH$tJ€–L ¼¾M(knOùQ@·CºR¥ÔhT*ç„V€ô æµW 1©_cY¿É[Å.¼¢±\@v:k ^^è‰#Ç `b¬Åëx­a€z·&×Xc�¬n2x†e´W ?h©f¡íÌÎÂSh…@aQYj¦�¹¥o¥k ô'�ËNm ”øx9?o ¹6×�¡pOgÍÉòIr#�E@|oüs¶p+¨­Å�uãL67EwàÃVß„öxl:– šzÉ{Η@|ÛH»½ð}‰ µP™v–Ò fputc_~free_âddlmullfrexp_rmain_X_fgeof_¥ckabort_šerrno_bdos_ìddrmulÆ_dtefg_œ _ffill_Ë_fgcon_•freopen_’_fincr_Znextbyte_H!dldivR#ilcmp ( end_ºmalloc_|_fpac_ífprintf_>!drdiv¼ _parse_Lexit_Xdlsub¾ dicvt”#idcvt0nextword_H#ircmpxfclose_â dlcvtÄ _fperr_b"dlmulßerrorxit_ _file_² _fsize_Ndrsubs_fnext__main_X"drmul$dpush�vldivsprintf_ž#udcvtÔ ducvtq_dtoa_Ðvlrem`a_arena_þ dvcvtìfflush_Lfgetc_bdosb_ba_block_—vrdiv×vrremØ fseek_<startÚstrcat_a_fgbbb_Öprintf_Dstrncpy_N ftell_‚_fgfcb_ ddldiv4bdosp_‰upercase_hfopen_strcmp_a_exit_Bdladdê _fpbbb_ªddrdiv"bdosw_8dradd _fpfcb_ÿ/))é8�COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/24/84) Œ`‰&bŒØŽÐ¼`è-¡g£j i¢lè;r~ˆÁ ~èo8Èt4 èe8Èt. €è[8Èt5 �èQ8Èt; ‚èG8Èt* ƒè=8Èt.ë90Àë°¢gè÷rvþÀ¢hë0À¢hþÀë 0À¢hë°¢gëèÔrS¢i€fè±ë€öftB‹gŠ.i±Íß gþÈu/ h„Àt(þȈdzÿºm iþÀ¢m±Íß„Àt‹jŠ.l±Íßè»èRèΠg„Àt<t0èÖ iAè: h„Àt!èÚë  h„Àt èÝ h@èëèÝëèäèí 1ÀŽ`‹&b˺ÿÿµÿ±Í߉g¢iÃè)r< tëõÃèr< t÷Ãèr<=u÷è r,Ar<õà€„ÀùtþÈ¢€‹dŠC‰dèÀÃr¹ ŠG$Š'C€ä8Äuâïé–‹hr‰lë ‰jC‰h‹l‹jÓu¯‹p…ÛuérK‰p‹nèxº Ó‡Ú‹)ÓrW‹n‹h)ÓtÛS‹nèf‰ÚBKY‰Þ‰×ŒØŽÀýó¤‹nè<‰ß‹6r¹ ŒØŽÀüó¤‹hè8‹n‰B‰nè ±éíþè�éIÑëÑëÑëÃè‹èdÃÛÛSÛYËÃÛfÃè&r¿\¾Î¹ŒØŽÀüó¤ k„Àt i¢�Ãè&éú¡v…Àùt£ÞºÞ±˜Íàè tCèuùÉv ÛÃèH * ºƒ± ÍໄŠ´C‰vÃÆ„ÀtÃè# 1ÀŽ`‹&bË}ö|t€Ë€Z±Íß„Àtèièqtéfèü„Àtè<t#<uîèõ<uù‹tK‰t…Ût ‹hCé%ÿèHà�è ÃP €èXÈÂRèZ8ÐtR± Íàè Z8Ðt èeë²ÿ± ÍàÀxéyû �±/þÁ, sú:PˆÈ<0u° èŽX芠\þÈy±ÍàAèzè?:‹hè}ýC¹è è,.¹èÊCèUâøÃè No queue number availableÃèõ Invalid queue number requestedÃèÏ Ambiguous filename: confirm individual files (y/n)? Ãè” Ok to queue (y/n)? Ãèy notÃèn queuedÃèa File not foundÃèK Invalid filenameÃè3 Insufficient memoryÃè Non-privileged userÃS‰å‹^Uè]‰^[ÜP.ŠC„ÀtèëóX�ÃSQR± ÍàZY[ÃSQR±ÍàZY[ÃPSQR$ˆÂ±ÍàZY[XÃ…ÿÿHÎYNDSQå0””!!é8�COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/24/84) Œ`‰&bŒØŽÐ¼`²ÿ± Íà¢|¢}¢~ ]< u e< u m< u  u< u€y¾€Š„ÀtþÀˆÁµ¿ƒŒØŽÀüó¤öyt k„Àt i¢~ès z¢{¼`èÄ ~¢}èRèfè {¢zèOèœèÀèâöyuÒé¾ l„Àt:\u# {„Àt  y8}u m< u u< uè^ëèÎëè¹élàƒ„ÀtHˆÁµ»„ŠC<;tâ÷ÃIt4ŠCèpˆÄ èh8àu €z€&zýë èR8àu €z€&zþâÌà\þÈy±ÍàˆÂ¶ÿ±Íß„Àu „ÿt èyëèéõÃÇn‹º‰f)ÓèASè?Sè;XÃXÇÚÓ‰dÑê‰pº€±Íà脱º\Íàè�<ÿuÃÀÀÀÀÀˆÂ¶»€ÓŠ<åuéâ‰rÇhÇj‹n…ÛtU‰l‹l‹j)ÓÑëÓ‰hèÆ‹>r¹ ŠG$Š'C€ä8Äuâïé–‹hr‰lë ‰jC‰h‹l‹jÓu¯‹p…ÛuérK‰p‹nèxº Ó‡Ú‹)ÓrW‹n‹h)ÓtÛS‹nèf‰ÚBKY‰Þ‰×ŒØŽÀýó¤‹nè<‰ß‹6r¹ ŒØŽÀüó¤‹hè8‹n‰B‰nèt±éíþèŸé�ÑëÑëÑëÃè‹èdÃÛÛSÛYËÃÛfÃè@r ¿\èt¢}Ãè.é`è)r¿lèÃè6éNW¾Í¹ŒØŽÀüó¤_ŠE„ÀtŠE áv…Àùt£ÝºÝ±˜Íàè tCèuùÉv ÛÃèv * º‚± ÍໃŠ´C‰vÃÆ„ÀtÃèQ Ž`‹&bËr¹ ŠG$Š'C€ä8Äuâïé–‹hr‰lë ‰jC‰h‹l‹jÓu¯‹p…ÛuérK‰p‹nèxº Ó‡Ú‹)ÓrW‹n‹h)ÓtÛS‹nèf‰ÚBKY‰Þ‰×ŒØŽÀýó¤‹nè<‰ß‹6r¹ ŒØŽÀüó¤‹hè8‹n‰B‰nèбéíþèƒéùÑëÑëÑëÃè‹èdÃÛÛSÛYËÃÛfÃè&r¿\¾â¹ŒØŽÀüó¤ k„Àt i¢“Ãè骡•…Àùt£òºò±˜Íàè tCèuùÉ• ÛÃè8 * º—± Í໘Š´C‰•ÃÆ„ÀtÃè Ž`‹&bËÿ8àt è4ÿ8àtè4ëÇ€z€&zýë €z€&zþ»‰hè è[özuözuLövtEèMÆwºw± Íà x„Àt yèÒþˆÄ èÊþ8àt èÀþ8àué£è½ë¦è¶ èè­ ‹hèùýCS¿{¹ Š„Àt €€þÈt€'GCâì^¿öW \ˆG¹ ŒØŽÀüó¤èƒZ±Íàè‚„Àu?èVè\ »÷ö€t èƒƒÃö€t  èuCö€t  èiCö€t  è]ëèÿèœè<„Àtè@<t#<uîè5<uù‹tK‰t…Ût ‹hCéØþèsà“è ÃP ’èXÈÂRèZ8ÐtR± Íàè Z8Ðt èuë²ÿ± ÍàÀvéiú “±/þÁ, sú:PˆÈ<0u° èÎXèÊè(èŒ:‹hèÚüC¹è èy.¹èÊCè¢âøÃèAè—à\þÈy±ÍàÃèN Destination drive read onlyÃè+ Drive Ãènot Ãèalready Ãèset to Ãèúread/writeÃèëread onlyÃèÝ Ambiguous filename: confirm individual files (y/n)? Ãè¢ Ok to set attributes (y/n)? Ãè~setÃ1èv File not foundÃè` Invalid filenameÃèH Non-privileged userÃè- Insufficient memoryÃè Network errorÃS‰å‹^Uè]‰^[ÜP.ŠC„ÀtèëóX�ÃSQR± ÍàZY[ÃSQR±ÍàZY[ÃPSQR$ˆÂ±ÍàZY[XÙHâYNFRGAåuué8�COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/24/84) Œ`‰&bŒØŽÐ¼`²ÿ± Íà¢{¢|¢} \„Àu ]< u  e< u€x¾€Š„ÀtþÀˆÁµ¿‚ŒØŽÀüó¤öxt k„Àt i¢}èW y¢z¼`è  }¢|èHè z¢yè6è´èÆöxuØé €&xý ]< u e< u  \„Àt€xÃè+é�öxus ‚„ÀtlˆÁµ»ƒŠC<;tâ÷ÃItX€&x÷ŠCè^ˆÄ àèV8àu €y€&yýë3 áè@8àu €y€&yþë âè*8àuèt€&yûë€yëâ­ÃöxÃöxtÃÇn‹ºð‰f)ÓèASè?Sè;XÃXÇÚÓ‰dÑê‰pº€±Íà褱º\Íàè¡<ÿuÃÀÀÀÀÀˆÂ¶»€ÓŠ<åuéâ‰rÇhÇj‹n…ÛtU‰l‹l‹j)ÓÑëÓ‰hèÆ‹>r¹ ŠG$Š'C€ä8Äuâïé–‹hr‰lë ‰jC‰h‹l‹jÓu¯‹p…ÛuérK‰p‹nèxº Ó‡Ú‹)ÓrW‹n‹h)ÓtÛS‹nèf‰ÚBKY‰Þ‰×ŒØŽÀýó¤‹nè<‰ß‹6r¹ ŒØŽÀüó¤‹hè8‹n‰B‰nè”±éíþè:é½ÑëÑëÑëÃè‹èdÃÛÛSÛYËÃÛfÃè&r¿\¾Ì¹ŒØŽÀüó¤ k„Àt i¢|Ãèüén¡v…Àùt£ÜºÜ±˜Íàè tCèuùÉv ÛÃèo * º�± ÍໂŠ´C‰vÃÆ„ÀtÃèJ 1ÀŽ`‹&bË to continue Ãè¡þ File not foundÃè‹þ Insufficient memoryÃèpþ Non-privileged userÃHÌYNLå"*?é­éèé¤éµéÞéá é½éé\Íà COPYRIGHT (C) 1982, DIGITAL RESEARCH °SID86 1.° 07/12/82 AØBØCØDØSÐBÐSÉDÉCÓDÓSÓEÓIÐODITSZAPC CÓDÓEÓSÓX±X²X³X´ CANNOT CLOSÅ INSUFFICIENT MEMORÙ NO SPACÅ MEMORY REQUEST DENIEÄ NO FILÅ START ENÄ VERIFY ERROR AT  DISK WRITE ERROÒPASS  SYMBOLÓ BAD FILE NAMÅ SYMBOL TABLE FULÌ SYMBOL LENGTH ERROÒ BAD HEX DIGIÔ þÀ¢Ê*äÑàÑà‹ø‹ðƒî+ÀŽÀŽØ¹ó¤þ€´¬ Àt<@v°@‹È¿¦ó¤° ªèŒÃüŒ ‰&¢.Œ“.‰&‡œX%ˆ&[.£™ŒÈúŽÐ¼ö[tû££è‡ÿö_ÿuè¾Iè;ëèTƒûÿt &€@PsÆ`è×<0¶r²þè0¶ˆ6aèmÿ€>btº\èÔü¼èÚ°#è–Æ§Æ©ÿƨèyè�< tÎ<;tÊ<-uƧÿè‰,Ar<wÐà´“Æ\Æ].ÿ—•ë è‹°?èG€>¨u‘éX¾óƒo;ІUƒƒ¨Hƒƒ¾ƒ Áa—¢ô«ƒƒÍàñèøÿñŠÐèðÿñ èêÿñ èäÿñ éÞÿ±éÙÿ±èÔÿþÀtÆbþÜëU±èÀÿþÀtÆbþ˜ëA±é¬ÿ±é§ÿ±è¢ÿ Àuþë(±è“ÿþÀtþ»ë±é„ÿ±#éÿ±-ézÿ±1éuÿ±3épÿèÕéÄþR±5èdÿZþÀt*èÃR±6èUÿZþÀtè ñ7èGÿþÀtñ8é=ÿèøÿþÀtþÅé¿ÿ±9é*ÿ±;è%ÿ@tþ¦ë¬U‹ì‹Föÿtèÿ]ÂUè]ú¤è ÿŠ¥·�æÆ Ççþ¦6ç¬ÿçÃèðÿŸGè-¹èO¹€>ž.tèdëè=èc žÃé¨ýèÿ¢ž< töÃèòÿ< tèþþ<:u ž,@OªÃÿçÿçÿ“¹ ò®ÃèÝþ¢ž<*uèëñWQèãÿY_t ã°ªIëâ°?ë° ãóªÃ‹>ŸG¹ °?ò®Ã¹¿\ò¯ã º +щEù ¿vò®ã º +щEÃéý¾ññ‰ùQèKYAƒù rõþñ¬ŠÈ¸þÿÓÈÓË.!™. ™þvñ¬è#ýø¾ñŠ ÓÈ.#™Ãèëÿ°0t°1èýþvñÿ4è×ÿXu°-èñüùÆCë¹ë¹ÆC ë è+s QèþYQè YA:Crêþññ­èmþþ\ññè þÃöDu €ù w€ùÃùÃèÓý¹èåý¹ÃèðÿÆCëèÎý¹ÆC ëèÙÿÆC è¿ÿs Q¹è¶ýYQè¦ÿYA:Crç2Ã.Ž�.‹6—ö'ÿt"¿‰5ŒEWöDtèkýèWö€tè Ã&Šè×ýÃ&¡Ãè`ý°=è ü.Ž‘¡‹öÇt .‰.Ž“öÇt.�öÇt.‹öÇt.�.£½öÃt S�ãÛ.އ�[è¡ÿ€ç0€ÿuèlýÀÿ uP.ƒ½è†ÿèRý°:è•ûXèIýÊȳöãc‹ð­‹Ø¬ŠÐ´ Ãt0­SRPµÑá�ÁˆQè¨ü^èÄüè³ü¿èýè¨ü[X± ÓàÃŽÀ_èõüá .£“¡¢.£‡‹Ã.£‘.£�.£•£J£NŽÀ&öt¸ë&¡.£�£J&¡ Àt.£•+À.£—£õŠ ¾ ãÄ<°Ì&†ˆDƒÆâñõŠ ¾ ã Ä<ŠDªƒÆâõþœ¹÷Dÿÿt Ä<°Ì&†ˆDƒÆâêþœ¹÷DÿÿtÄ<ŠDªƒÆâîðöÿtƒ|uèè ðPVè°û^‹DVè!üè·û^X<tV¾è¸û^‹—‰>.Ž�ŒJÃè¥ú°*èaùèÛÿWèû[èn<t è ú°.èJùè¾Ã.ÆŸë.ÆŸ.£.‰�.‰ƒ.‰….‰6‹.‰>�.‰.‰.‰&‡.Œ•.Œ‘.Œ“‹ì‹F.£—‹F.£�‹F.£™ŒÈŽØŽÐ¼ö[tû.ƒ‡üè5ÿè&þèïý.öŸÿué}.ÿ—è[ö«ÿt!.¡�;¯u.¡—;­u Æ Æ«éyèQþtèÁ uVè«ù^‰6(èëýƪƬéàèÿÆ Æªé­÷ö¬ÿtƬ‹6(ƒ|tÚÿLÃ.�&™ÿþö:t Æ:.�™èÉÿöªÿƪtéÅéÔ"t¤è7ùö9ÿt.‹—è<t è6ùèk°:èï÷è€èóüè"ýè u‰6(ƬÄ<ŠDªèAý.Ž�.‹6—&‹»;t ö]ÿt&è™ýu!Œ ó‰6 Œ¯‰6­Æ è�üÆ«ëA.¡™ ©t)%ÿý.Ž�.‹6—&Š€ûút€ûÏt€û�t €ûÍtÆ:.£™ëèXüè‡üètýú¼X[YZ.��]^_.�›.Ž›.‹&�.ÿ6™.ÿ6�.ÿ6—Ϩt/ÿ6çPè[öPèWöè&þ[YŠù†ßu€Ï€½\+ö;tƒÆƒþuô�ç€Éý‹YÃè €>¥uÃé°ô‹Wè3_<:u€>¥uë‰]‹Wè_<:t݉ûè€>¥uÍÃè<:tÅÃèßõ<+uÆ¥ëÆ¥<-u»ë°ÿ碦Sè þY äu€>¦u�€>\uˆ‹ÙÃP‹ÁЦ€ù+uÃë €ù-u+Ãë‹Ã‹ØX<+t<-tâ¦ëºU‹ì‹^·þÃ)çÆ¨èÿ‹v‰ˆDÆD]¡,£0¡*£.‹Vè¤ôºèŠôƒ>XrDº\èZô Àu"ƒVƒ.X¡.»€Ø;Øs�0‰.ëÀ¡.ÿ. Àu�.0º\èôÃŒÊèNôº€è4ôº\è ô<tÓé�ô¡;±Óè=£V£4‹Ø¡?ÓèA+ÃrP£Xº\èÖóöaÿtþÀu äu8º\èÚó‹4èöóÇ2‹2èÕóº\è±óƒ.Xr�2€uä�4ëÏÃé÷ò¾èŸôèd¿\è õP¾'tR¾5èº\è>óþÀ¾Üt?ÆbÆÆ"è8º\è8óX< uÄ¡±ÓèP+)�ºè¨óÃVºè ó^é[óÇb€è ÀuèGëôÃè"<t4èmtô»è¼ûr*ŠØºRSèè­ûr±ÓãØJuëSèóèBu[°Ã°ÿþ^éžÿÆÿ6S°èXPèXŠÄèüèÄètø€> s/èpóèçþè«èúuç°èÖÿ¡ŽÀ[ è &ˆþIé@ÿŠà "‹ûƒÇ&ƒu¾#èt¾+èt¾6èu¢"°€Ã:duŠWƒÆŠÌµó¦_uŠÂÀ>uÇǺèMò¡£èúèLò¡+±ÓàH£Ëb�û€rÇbŒÊè òº€èïñº\èÆñ‹£èöñ‹bЇ€ÿbË;s ÿ6&ˆÿþ6ékþ< t< t < t< t< Ãöÿt/èlò¾¡ŽÀ&¬$? ÀtŠÈµ&­VQèÉòè_òY^è“VèNò^ë×ÃU‹ì‹^öFÿtè ëè]²Àë² "©t:¡ŽÀ¾&ŠŠà$? Àt'€äÀt €út:Ôu&;\t ŠÈµ΃Á‹ñëÔ‰6°Ãöÿt Uèäñ°.èŽðè]áŽÀ‹6&¬$?ŠÈµƒÆ&¬QVèmð^YâóÃÇ`?  ÀtE¡ŽÀ‹> &Š$? Àt3WŠÈµ‹Ñ:u ƒÇ‹6`ó¦t_úƒÇë×_&‹E£^°úƒÇ‰> Ãöéÿt%‰&ê¿Hèöú< uÿ6Jÿ6Hè";Hv£HëêÃé–ï‹&êëà¿LèÌúèû‰P< tW+LrQ¡N£T¡P£R¿Rè·ú< u;Ä6L&ŠÄ6R&:tèéð¿Lè%èçðèäð¿RèÿL¡L9PrÿRtëÆÃé%ïÄ=&ŠPèñè¹ðXè#ñÃÆ\¡N£îèõùö`ÿtö]u öë ÷ë õ¢ô¿ìè$ú<,¡î£Nu èVú< téÎî‹ì ôŠøöáþÈØ;ìs»ÿÿ‰ðèFðÄ>ì‰>òè�ðè?ðÄ6ìè‡ð¾ìèDør¡ì+ò:ôt ¡ì;ðvØèðŽî‹6ò&Šè1ðÿòt¡ò;ìuã;ðwë¢ÃCMDSYMéHîè�ð< tm<*uéCûÿç¿\èSðtãP¾2èdº\èŽîèJº\è4ïÆ^ESèóZ‰£èØîº€è¾îº\è|c.¡‘ŽØ¹0ó¤èX< tèäúÿç馯ÆZÿºVèÛîÿe€= u¹ó¤ÃèŸø¿Lèìøè(ù‰Pèùö]u ÿu%‹P+LrÄ>L‹Ãè ÷¾Lè.÷r ¡L;PvæÃémí §¢Æ .¡�£û.¡—£ùÆ\¿ùè‹ø< t'¡û£ £¿ è†øPþ X< t¿èvø< uþ Æ«¡û.£�¡ù.£—éöÆ éíéýìèeî< ué üÿçè_ø< tsSèWø< uàXPÃSPèeî°+è!íèoîX±-èB[XPS+ñ*è7[XPS÷ãP‹Âè¹îX±/è%[Xº Ût÷óë‹ÃRè îè6î°(èàìXè”î°)è×ìÃQèŠî¹è#îXèÈìèîÃSèÿíXPèsîè î°#è³ìXPè2îèüíXPèîr äu°'è›ìXPè–ì°'è‘ìèßí[è¦û<t°.è�ìèõûÃÿ6ç¿\èGî< uÿç¿lèDî�ç¿�+Éèsí< tªAëõ°ª&ˆ€€>^Eu¾\‹þ.Ž‘ƒÁ&ó¤ÃéÞëéÛëö'ÿtö §öТ©Æ%Æ\¡J£!¿èøö< ¡!£Jt è*÷< uÇë Æ%Æ& »ÿÿ‰#‹>;>#wLWèí[Sèæú<t è>û°:èÂëèþìè íè í_Ž!¾‰<ŒDVèSíèõìèÏ;r£ö%ÿt°þ&uªÃ¿Lèwöè³ö‰P< t@+Lr:¡N£T¡P£R¿Rèbö< u$Ä6L&ŠÄ>Rè™ôÿLtÿRt ¡L;PvÝÃéçê.‹—.‹�¹¾œ÷Dÿÿt ;u;TtƒÆâëIþœ¹QV÷Dÿÿtèð^ƒÆYâíþœ¹ÇDƒÆâöË>R‹T¾œ¹ƒ|t;uX.¡}= sO±Óà£XºVö6ÿuèúéëèêëö6ÿu¡V£,£0Ç*èúô¡,£N£J¡*£ì£Æ^RèåÃéÓéè*ê< u  §öТDÃÿçèšó¿Lèçó< u|è,êÄ>Lè’êè4êÄ6Lè|êè*êèËéèïé< tG<.u èäé< tAÿçë<"uö]u?è¿é< t¼è'síÃÿçèÃó< u'‹Ãö]u ÿuè s™Ãè s“ÃÄ>Lè´ñ¾LèØñÃé"è°Š&§öÔ»©¢9ˆ'èþòÇ7Æ\ètó< u ät‰7èÈéRðéìç°Š&§»ëÊ ^*è»éè]éÄ>.è±éÃè@é¹èRé¾åèTé°PXPè]ìXþÀ€>ht<rìá,£=¡*£;¡0£A¡.£?èßè< tCÿç¿\è‰ét7< u €>^Ru,ë ¡J£=¿;è�ò< t¡=£A¿?è‹ò< u èÊóº\è¯çÃé*çèóíö`ÿuèùêö`ÿuè¡èè êè­èèxêè§èèëÃèÅê°ë°Pè„èèíéè�èèLêèxèXþÈuè±êèmèèEêè×êÃÆ\è;è< u DPÆDè–ÿX¢DâGè è< tuŠ&G €†Äègéèè< u`è*è‹Eè0êè2è‹Eèêè(èèÉçèíç<.u èæç< trÿçÿçèßñ< u) ät‹E‹Ã€ùu£J€ù u£Nè;éÿEƒ>E r¡Ãé<æ Gè éèÁç‹EèOéèÉç‹Eèaéè¿çè`çèŒñ< uÖ ät ƒûwÍ‹EèéÃ@ I =.,:;[]<> ÿÀLABELS@ VARIABLES€NUMBERSé³ÃéüàéüàéáéáU‹ìÆL.ŠFþÈ8L.w L.´‰ÆŠN‹^:u°ëþL.uÚ°]ÂU‹ì°,Pè¸ÿ]ÃU‹ì‹^€?$t ÿ7è¦ÿÿFëî]ÂU‹ì€~ v ŠF, AëŠF0Pè‚ÿ]ÂU‹ìŠF±ÒèPèÓÿŠF$PèÊÿ]ÂU‹ìÿvèÜÿ M.öÐÐØsŠF´P°PèHÿ¢M.]ÂU‹ì‹FˆàPè´ÿ‹FPè­ÿ]ÂU‹ìÿvèàÿ M.öÐÐØs ÿvÿ6K.èÿ¢M.]ÂU‹ì¸À)PèDÿÄ‚,&ÿ7èrÿÿ‚,]ÃU‹ìÄ‚,&бP"Á¢A.&ŠG±PÒè¢>.X±PÒè$¢?.X$¢@.XP$¢E.¢F.XÐè$¢B.¢C.¢D.]ÃU‹ì E.ÐØs¸È)ë¸Î)PèÕþ]ÃU‹ìŠFÐà´F£€,‰Ãÿ7èrþ¡€,@£€,‰Ãÿ7èdþ]ÂU‹ì¸^.PÿvèÊÿ]ÂU‹ì¸N.Pÿvè¹ÿ]ÂU‹ì E.ÐØsÿvèßÿëÿvèÆÿ]ÂU‹ìÿv°P¸Ô)PèþÐØsŠL.·Š‡v.Ä|,&Gÿvè§ÿ]ÂU‹ìÿvèÇÿ°+Pèãýÿvè»ÿ]ÂU‹ì E.ÐØs°Pèzÿ]ðPèaÿ]ÃU‹ì¸n.Pÿvè)ÿ]ÂU‹ìÄ‚,&ÿ7è>þÿ‚,]ÃU‹ìÄ‚,&ÿ7ègþƒ‚,]ÃU‹ì E.ÐØsèßÿ]ÃèÇÿ]ÃU‹ìÄ‚,&ŠÐÀÐØs &Š´ ÿë Ä‚,&Š´Pè%þÿ‚,]ÃU‹ìÄ‚,&Š´£ˆ,<€r�ˆ,ÿÆK.¡ˆ,‚,@Pèõýÿ‚,]ÃU‹ìÆK.¡‚,Ä‚,&ƒÀPèÖýƒ‚,]ÃU‹ìÄ|,&€O€Ä‚,&‹Ä|,&‰Gÿ6¾)èÔüÄ‚,&ÿ7è£ýÿ6¿)èÃüƒ‚,]ÃU‹ìÿ‚,€>>.u ÿ6@.èiþ]ÃÄ|,&€O€ I.ÐØsèñý€>@.u ‚>>.uè‹ÿ]À>>.u,€>@.u Ä‚,&‚?tÄ‚,&Š´Ä|,&‰GPèïüÿ‚,ë€>>.uÄ‚,&‹Ä|,&‰GPè ýƒ‚,ÿ6¾)è&üŠ@.·Ñã.ÿ§$°P°ë °ë°ëó°P°Pèþë$°ë°ë°PèÏýë°ëöî#õ#ù#ý#$ $$$ÿ6¿)èÔû]ÃU‹ì B.ÐØsÿ6?.èƒý°,Pè»ûèüþ]Ãè÷þ°,Pè­ûÿ6?.èhý]ÃU‹ìÆz.Šz.þË· G.:‡8.rþz.ëéŠz.€ë·SÑã^ G.*„8.ö&z.‡p,£€,Æ{.€>{.w$ {.:z.w‹€,ÿ7èHûÿ€,ë° Pè<ûþ{.uÕÿ‚,]ÃU‹ìè†ÿ]ÃU‹ìÄ‚,&€ u èsÿÿ‚,]ÃÆJ.]ÃU‹ìè`ÿÿ6A.è®ü]ÃU‹ìÄ‚,&бÒè"Á¢|.èAÿÿ6|.èý]ÃU‹ìè2ÿè�ý]ÃU‹ìè'ÿè²ý]ÃU‹ìèÿèþ]ÃU‹ìèÿèý]ÃU‹ìèÿè ý]ÃU‹ìèûþ°3Pè™ú]ÃU‹ìèíþÄ‚,&‹£Š,ƒ‚,èäü°:Pèyúÿ6Š,èKû]ÃU‹ìèÆþè•þ]ÃU‹ìè»þ B.ÐØs è_ýè‘úèvü]Ãèqüè†úèNý]ÃU‹ìè˜þ B.ÐØs è„üènúèSü]ÃèNüècúèsü]ÃU‹ìèuþè=üèRúè‰ü]ÃU‹ìèdþ B.ÐØs°Pè¬ûè7úèü]Ãèüè,ú°Pè˜û]ÃU‹ìè;þÆI.èýèú D.ÐØs°Pègû]ð1Pè¿ù]ÃU‹ìèÍú A.¢?.Ä‚,&бÒè$¢E.èúýÿ6?.èYûèÓùè ü]ÃU‹ìèåý°Pè4ûè¿ùÿ6A.è*û]ÃU‹ìèÍýÆI.è­üè¥ùèÜû]ÃU‹ìÆE.€>?.vÆJ.]Ãè¤ý B.ÐØsÿ6?.è{ûèvùèxü]Ãèsüèkùÿ6?.èfû]ÃU‹ìèyýè^üèVùèfû]ÃU‹ì€>>.uÆJ.]ÃèZýÿ6?.è¨úè3ùè5ü]ÃU‹ì€>>.uÆJ.]Ãè7ýÆI.èüèùèFû]ÃU‹ìè!ý A.±Òà ?.Pè8ùèòøèôû]ÃU‹ìèýÆI.èäûèÜø€>C.u €>E.uèû]Ãèû3]ÃU‹ìÆI.è´ý]ÃU‹ìÆJ.ÆI.è~ù€>H.u(ŠG.·Ñ㋇à)£z, ?.±öá‰Æ‹z,ŠˆG.Š@¢H.€>H.w ŠH.·Ñã.ÿ§p(ÆJ.ëDèëüë?èîüë:èýë5èýë0è+ýë+è1ýë&è7ýë!è=ýëèCýëèIýëèRýë ètýëèzýëè˜ýë{è¶ýëvèÂýëqèæýëlè þëgè2þëbèEþë]èVþëXè�þëSè›þëNè¹þëIèØþëDèðþë?èÿë:â'é'î'ó'ø'ý'(( (((( (%(*(/(4(9(>(C(H(M(R(W(\(a(ª(f(k( J.ÐØsèOø]ÃU‹ìÄF£|,Œ~,‰Ã&ĉ‚,Œ„,¹Ž~,&‰OÄ|,&ˆOÄ|,&ˆOˆ}.ˆM.ˆK.Ä‚,&бöá‰ÃŠ�p*ˆG.Їq*¢H.<ÿu,€>}.s%Q°P¸Ø)PèéöÐØs  L. Ä|,&ˆGè&ûþ}.ë´€>H.ÿuÆH.è=þÿ6G.° P¸®)Pè²öÐØs Ä|,&€O@ÿ6G.°P¸Ü)Pè—öÐØs Ä|,&€O ë‚>E.t Ä|,&€O M.ÐØsèiö¡‚,ë]ÂQj$klmnqrvwxy[]??= $WORD $BYTE $K 68Wjð)** *0*@*P*`* HOPHOHODE@AIJGDE@AIJGf=;:SR##Qj)Wa    a?  a    a?H H H H HHa?     ÿO O O O OOÿP P P P PPKÿ     ÿ########aaaaaaaa????????0+ 3& 21/(f f h h 9 9 9 9 979?<hhhhhhhj gs`e]9 9 9 9 qrklffxymnvw9999999999999999C C8699d d$ $TU i!!!!!!!!zo_V>>Q)W X>>^ÿtÿBÿ"LNMŒ,¤,s-×-'.INJAJBJCJEJGJLJOJPJSJZORAAAAADAAMAASADCADDANDCBWCLCCLDCLICMCCMPCS:CWDDAADASDECDIVDS:ES:ESCHLTINCINTJAEJBEJGEJLEJMPJNAJNBJNCJNEJNGJNLJNOJNPJNSJNZJPEJPOLDSLEALESMOVMULNEGNOPNOTOUTPOPRCLRCRREPRETROLRORSALSARSBBSHLSHRSS:STCSTDSTISUBXORCALLIDIVIMULINTOIRETJCXZJMPFJMPSJNAEJNBEJNGEJNLELAHFLOCKLOOPPOPFPUSHREPEREPZRETFSAHFTESTWAITXCHGXLATCALLFCMPSBCMPSWLODSBLODSWLOOPELOOPZMOVSBMOVSWPUSHFREPNEREPNZSCASBSCASWSTOSBSTOSWLOOPNELOOPNZ E QjzÿAXCXDXBXSPBPSIDIALCLDLBLAHCHDHBHESCSSSDSèÝ€>˜Bu¡ƒBPè‚]Ã�7tÿ7éÝéÜÝéöéÒéÒéÒé ÒU‹ì° Pèìð° Pèæð]ÃU‹ìèÚÿÆ^B]ÃU‹ìèÜÿ°?PèËðèÇÿ]ÃU‹ì¸âAPèñè¸ÿ]ÃU‹ì ~B"kB<ÿuèàÿ ~B2kB<uèÁÿ]ÃU‹ìŠFþȈF<ÿt‹^Š‹^:t°ë ÿFÿFëܰ]ÂU‹ìÆ“B€>“BwŠ“B·Š‡ÚA:Fu°ëþ“Buà°]ÂU‹ìŠF,0< °ÿv@ŠN€éAP€ù°ÿv@Y Á]ÂU‹ìŠF,0< vŠF,A ]ÂU‹ìÇBÆ”BÆB‚>^Buèßï¢^B B´‰ÆŠ^BˆŒB BþÀ¢B<@rèêþÿ6^BèQÿÐØs,€>Bu Æ]BÆ^B]ÃþB ”BÐØsÆ]B]ÃÆ]B]à”BÐØsžÿ6^BèAÿÐØs‹B±ÓâRÿ6^BèRÿ´Y Á£BëÆ”Béqÿ]ÃU‹ìèOÿ€>B tö€>B tï]Ã]ÃU‹ì€>Bu0Æ•BŠFþÈ8•Bw ¡B‹^;u  •B‹^ˆ°ë ƒFþ•BuÕ°]ÂU‹ì¸ÒAP°P‹þA�GPè«ÿ]ÃU‹ì¸ÖAP°P‹þA�GPè”ÿ]ÃU‹ì¸n.P°P‹þA�Pè~ÿÐØs ‹þAÆG°]ð]ÃU‹ì¸^.P°P‹þA�GPèUÿÐØs1°‹þAˆG‹þAˆG ‹þA‚uˆG‹þAÆG‹þAÆG °]ð]ÃU‹ì¸N.P°P‹þA�GPèÿÐØs1°‹þAˆG‹þAˆG ‹þA‚uˆG‹þAÆG‹þAÆG °]ð]ÃU‹ì‚>]Bu0�>BBYu ‹þAÆG ë�>BWOu‹þAÆG ‹þA€ ÿt°]ð]ÃU‹ìèøþP€>^B:°ÿt@Y"Á]ÃU‹ìŠFŠˆB·ˆ‡…BþˆB]ÂU‹ì ‰BÐØsèºü‹þAбÒà &PèËÿƉBèzý‹þAÆG]ÃU‹ìèþ€>]Bu€>B u‹þAÆG ]Ãè‚ÿÐØsè©ÿëÙè8ÿÐØs‹þA€ ÿtèZüëËþAŠG ˆG ë·]Ã]ÃU‹ì‹þAÆG èþÐØs?è ý B:áAu‹þAÆG °*F‹þAˆGë?€>B+u° *F‹þAˆGèÖüëèùûë °*F‹þAˆGèÚýÐØs è¹ü B:áAtèÕû]ÂU‹ìÿ6B¸úAPèŸû üAÐØsè¹û ýA¢^B¡úA‹þA‰G]ÃU‹ì°‹þAˆG‹þAˆG‹þAˆG‹þAˆG‹þAˆG‹þAˆG ‹þAˆG ‹þAˆG ‹þAÆG ÿ‹þAÆG ÿè¿þ‹þAŠG ÐØs]ÃèPýÐØs]ÃèoýÐØs]Ãè´ýÐØs]àB:àAuAèûû¸N.P°P‹þA�GPè¬üÐØs°ë\è5ÿ ^B:áAtèúúèÏû‹þAÆG‹þAÆG ]Ãèÿ€>^B:u¡úA‹þA‰Gè¦ûè£ûè÷þ‹þAÆG ]à^B:àAuèŠûè‡û°Pèaþ]ËþAÆG]ÃU‹ìÇþA_Bèêþèfû€>B,tè„ú]ÃU‹ìÇþArBèÏþ‹þAŠG ÐØs]Ãè>û€>B tè\ú]ÃU‹ìÇBëƒBr-¡B=ßw%‰ÃŠ�ò?:�BuåŠ�ó?ˆ�BŠ�ô?ˆ‘BЇõ?¢�B]Ãèú]ÃU‹ì B,<vèúŠB€ë·Ñ㋇p,£BÆ–BŠB€ë·Š‡3.þÈ8–Bw<¸BP‹B�Pÿ6Bè úÐØsŠB€ë· –B‡8.¢�B°]àB´Bþ–Bu¯°]ÃU‹ì°¢ˆB¢‹B¢ŠB¢‰Bè û€>B t€>B.u°]Ãè}üÐØsè¤üëßèPÿÐØs>èÿ€>�Bÿu ŠBÐØsèNùÆŠBë€>�Bþu ‹BÐØsè6ùÆ‹Bÿ6‘BèKüëž°]Ãè!ùë•]ÃU‹ìÿ6öAÿvèéøÿöA]ÂU‹ìÆ—B ˆBþÈ¢ˆB<ÿtŠ—B·ÿ·…BèÊÿþ—Bëá]ÃU‹ìèÑÿÿ6‘Bèµÿ]ÃU‹ìŠF¢‘Bèåÿ]ÂU‹ì‹FPè™ÿ‹FˆàPè�ÿ]ÂU‹ì ~B"kB<u€‘B]ÃU‹ì‹þAƒv ÆŒBÆ’B]ÃÆŒBÆ’B]ÃU‹ìÆ’B‹þA‹G£BŠ_þË·Ñã.ÿ§n7ÆŒB‹þAŠGëzÆŒBÆŽBÆ’B]ËþA°8Gu¢ŒBÆŽB¢’BÇB]ÃÆŒBÆŽB]ÃÆŒB‹þAŠGë/ÆŒBëèXÿ°‹þA*GëèJÿëÛèEÿ‹þAŠG±öáŠOµÁ¢ŽB]Ãá6á6ï67*7:7A7O7T7U‹ì‹F£þAè5ÿèÂþ ŒB±ÒàŠ�B±Òâ  ŽBPèkþ‚>’Bt¡BPè]þ€>’Bv ¡BˆàPèMþ]ÂU‹ì‹F£þA‰ÃŠO ÐÙs$€ ÿuè\÷ŠF‹þA G ¢‘BŠF¢�Bÿvè‚ÿëè-÷]ÂU‹ì xBöÐ"}BÐØsŠF¢‘BŠF¢�B¸rBPèVÿëè÷]ÂU‹ìè÷€>mBw  `B¢�B¸rBë ~B‘B sB¢�B¸_BPè!ÿ]ÃU‹ìè þèÉÿ]ÃU‹ì€>mBw  jBÐØs€‘BèÜÿ]ÃU‹ì¡ƒBPè‚ý kBÐØs ¡ƒBˆàPèrý]ÃU‹ì¡ƒBPèfý ‘B$<u ¡ƒBˆàPèTý]ÃU‹ì‚>kBu �>ƒBÿvèZö€>kBÿu�>ƒBrÆkB]ÃèRö]ÃU‹ìèÊÿè�ýèTýè‡ÿ]ÃU‹ìè¹ÿè|ý¸_BPènþèrÿ]ÃU‹ì€>€Bw ŠF ~BëŠF kB¢‘B]ÂU‹ì yB"gB]ÃU‹ì yB"jB]ÃU‹ì }B"jBP€>mB°ÿw@P€>€B°ÿw@Y"ÁöÐY"Á]ÃU‹ìè.û {BÐØsèÇü]Ãè¡õ]ÃU‹ìèû {BÐØs è°ü° Pèlü]Ãè„õ]ÃU‹ìèúú¡öAƒè~‹ƒB+È�ùÿw yBÐØsè�ü¡öA@‹ƒB+ÈQè5ü]ÃèMõ]ÃU‹ìè¨úèÀú jBÐØs=€>sBu xBÐØs€‘Bëƒ>ƒB°ÿt@"yBöÐÐØsèõÿ6‘Bÿ6�B¸_BPèšý]Ãèûô]ÃU‹ìèqúÿ6‘Bÿ6�B¸rBPè~ý]ÃU‹ìè?úèWú€>€Bv }B"dBÐØsèÇý]Ãè¿ô]ÃU‹ìè5ú wBÐØs ‘B±öá‰ÃЇB sBPèËû]ðþP ‘B±öá‰Ãÿ·B¸rBPèý]ÃU‹ì vBÐØs ‘B±öáŠrB±Òâ‰Ã — BRë wBÐØs ‘B±öá‰ÃЇ B sBPèrû]à‘B±öá‰Ãÿ· Bÿ· Bèý]ÃU‹ìè¢ùè¡ÿ]ÃU‹ìè—ù€>rBu  vBÐØsèô]Ãèƒÿ]ÃU‹ìè^ùèvùèýýÐØs €‘BèªýëTèøýÐØs>Æ‘B€€~ u.ècýè&û€>kBu�>ƒB€r�>ƒB€ÿr€‘B¸_BPèüûèýëèvýëè¿ýÐØsèÔüëè“ó]ÂU‹ì° Pè…ÿ]ÃU‹ì° Pèzÿ]ÃU‹ìèñø yBÐØs" ‘B±öá‰Ãÿ·BèŒú¡öAƒÀ‹ƒB+ÈQèŒú]ðÿP ‘B±öá‰Ãÿ·Bèü]ÃU‹ìè­ø�>ƒBÿw% yBÐØsƒ>ƒBu°ÌPèCú]ðÍPè;ú¡ƒBPèçù]Ãèÿò]ÃU‹ìèZøèrøƒ>pB@s& }B"fBÐØs¡pB±PÒè‘BX$¢�B¸rBPèû]ÃèÄò]ÃU‹ìÇþArBè÷ {BÐØs  ‘B PèÖù]àyBÐØs è»ùÿ6ƒBèÓù]ÃèŽò]ÃU‹ìèé÷ gBöÐÐØsèzòèõ÷€>sBu wBÐØsƘBë�>ƒBÿw yBÐØsƘBëèIò ‘B ˜B kBPéŠñU‹ìè—÷€>`Bu dBÐØsƘBë�>pBÿw fBÐØsƘBëèòè�÷ zBöÐÐØsè÷ñ ˜B±Òà ‘B ~BPèÇø‚>˜Bu¡pBPè¹ø]ÃU‹ìèL÷ |BÐØs  ‘B±öá‰Ãÿ·Bèçøÿ6ƒBèðøÿ6�Bèéø]ðÿP ‘B±öá‰Ãÿ·Bèkú]ÃU‹ìèïöè÷èŽûÐØs Æ‘B¨è;û]Ãè‰ûÐØs Æ‘Böè;û]Ãè„ûÐØs °„PèAûèZú]ÃèRñ]ÃU‹ìè­öèÅö gB"kB"wBÐØs  sB�Pè_ø]ÃèJûÐØs °†Pèûè ú]Ãèñ]ÃU‹ìèsöè‹ö }B"cBŠxBöÑ"ÁÐØsÆ‘BŽ _B¢�B¸rBë €>mBt vB"jBÐØsÆ‘BŒ rB¢�B¸_BPèù]À>€Bu }B"gBÐØs kB  ¢‘BèÈ÷ÿ6ƒBë!€>mBu zB"jBÐØs ~B ¢¢‘Bè¥÷ÿ6pBè½÷]ÃèŒúÐØs'€>mBw kB±Òà ° `BPèŒ÷è°ù]ÃÆ‘BÆè!ú]ÃèjúÐØs Æ‘Bˆèzù]Ãè9ð]ÃU‹ìÄF£öAŒøAè ðÿ6øAè¹á°:Pèñàÿ6öAè¬á° PèäàèýïÇþA_BèföÐØré±€>�BvèðïŠ�B·Ñã.ÿ§»?èàïëè%úëè7úë èOúëè�úëèÎúëèàúëzèûëuèŽûëpè$üëkè*üëfè0üëaèoüë\è¢üëWèØüëRè ýëMèVýëHè·ýëCèôýë>è1þë9èfþë4èXûë/M?R?W?\?a?f?k?p?u?z??„?‰?Ž?“?˜?�?¢?§?¬?±?¶?è>ö¡öA] 7 Õ Ô ?   Q j˜øüúõ 8k¦l§™'/ö! Ø"ôRöSöä#$ TÎUÏw%sr&vrVãt'}|(~) WXë*vYr+sZw,s-u.~[|/}\0q1{2y3upz4z5{ x t]Ÿ6Å7�8Ä^ÿðm¬n­_âoázà{àpá9q¤r¥:ö;ö<�=ö >æ?`�asœ@ÐAÐBþóbþótþòuþòcþóCÂdÊDÐEÐežFÐGÐH v®w¯IÐJÐLùMýNûxªy«O (fg›hi×P 0BXBPSIDI,:+ [] ambiguous operand$H@X�Pÿèéšêå4 #TITLE "Hard disk driver tester" #PAGE 132,66 ; MODULE "HDCTST" ; TLINK "X" ; #INCLUDE "EQUATE" ; LOC Data# DRVRBLK: DB 0 ; read operation DB 0 ; driver number TRK: DW 0 ; track number DW 0 ; sector number DW 1 ; sector count DW 128 ; byte count DW DATABUF ; data buffer DSVAL: DW 0 ; data segment DATABUF:RES 8192 LOC Code# ; START: CALL DSKINX# MOV DSVAL,DS __1: LEA SI,DRVRBLK CALL DSKDRX# INC TRK JMP __1 ; WAIT:: SIGNAL:: RET ; END START  ; Segment containing track buf DIRTYBUF: BYTE 0 ; Flag set 1 if track buf dirty CLKCHK: BYTE 0 ; Number of ticks since check ; ; Command blocks and related declarations ; SEEKOP == 0X68 ; Seek operation command SEEKCMD == . ; Seek command block BYTE 2 ; Number of parameters to seek SEEKCYL: WORD 0 ; Hi byte, Lo byte of cylinder SEEKCDRV: BYTE SEEKOP ; Seek command with drive ; RECALOP == 0X50 ; Recalibrate operation command RECALCMD == . ; Recalibrate command block BYTE 0 ; Number of parameters to recal RCDRV: BYTE RECALOP ; Recal command with drive ; READCMD == 0XB0 ; Read operation command DMAREAD == 0X15 ; DMA read mode command XFERCMD == . AIT:IN AL,HDCSTAT ; Wait until status is posted TEST AL,=0X10 JZ __SWAIT MOV AL,0X11 ; Set formatter HSRQ and CLCE CALL DELAY OUT FMTREG,AL CALL DELAY __CE: IN AL,FMTREG ; Wait until CE is down again TEST AL,=0X04 JNZ __CE CALL DELAY MOV AL,=0X10 ; Issue interrupt status command OUT HDCCMD,AL CALL DELAY __SW: IN AL,INTREG ; Wait until status is ready TEST AL,=0X02 JZ __SW MOV CX,=01 ; Setup status byte count READST: MOV BX,DS ; Setup pointer to status buf PUSH ES MOV ES,BX PUSH DI ; Save destination register LEA DI,STATBUF CALL DELAY IN AL,HDCSTAT ; Get status byte CLD  STOS BYTE ; Save status byte in buffer MOV AL,=0X20 ; Setup formatter for status read CALL DELAY OUT FMTREG,AL CALL DELAY __FWT: IN AL,FMTREG ; Is formatter ready with stat? TEST AL,=0X20 JZ __FWT __SLP: IN AL,HDCDATA ; Get status byte STOS BYTE LOOP __SLP MOV AL,=0X10 ; Set CLCE in formatter CALL DELAY OUT FMTREG,AL CALL DELAY __CE: IN AL,FMTREG ; Wait until CE goes down TEST AL,=0X04 JNZ __CE MOV AX,STATBUF ; Get controller status AND AL,=0X60 ; Mask irrelevant bits CMP AL,=0X40 ; Was operation successful ? POP ES POP DI ; Recover destination register RET DISKFLS: XOR AL,AL  RET ; ; ; Function=3, return drive ready status ; RETRDY: MOV AL,PDRDRV[SI] ; Return ready code DEC AL RET END ¢è`ÿ䢨uúèWÿ°æ’èPÿä–¨tú¹ŒÛŽÃW�>jbè:ÿä’üª° è1ÿæ¢è,ÿ䢨 túä ªâû°èÿæ¢èÿ䢨uú¡jb$`<@_Ã0ÀÊDþÈÃTurboDOS 1.40, Copyright 1984, Software 2000, Inc. $($/$)$ <-- $Invalid command$Command not found$Program load unsuccessful$Non-privileged user$ÿ\U\U‚U�\}ÿÿÿCOLDSTRTAUTWARMSTRTAUT€ÌVÌVÐVÐVë2*3J3‚3‰3…7�3v[v[¶3Ð3Ù3?2L&R&â`ÂÓ~üub­v[[&b&v[v[”v[i& Q‹�v[Qv[v[ˆ&”&– ¶&½&=?H?S?\?ý?Æ@’/I2Œ2v[Ø2à3ô3ê622ˆ;�<+>Ã>ÿ;<Ê&Ñ&(;;;œñ2$'Ø&Þ;5L ã á!=ä,*.*v[9*7º7Â�9v[Ö:â:î:ö:þ: ;;3¹ÿÿÿÿÿÿÿÿDIRDSK¸öWöWúWúWûHDCAPCýkDataý'CodeýSCREENýWAITýSIGNALüDSKIN_ü6DSKDR_ú øa aÿ ÿÿ œ hP  ú<†  "@ ødjqZ!gInto drvr Out of drvr ú PQRŠÉt Sèø [Cé ñÿZYXÃ0Àæ”æ¢°€æ¢0Àæ¢æ©°æŸ0Àæ˜�ø`è úû`èø è P»ø`èø XÊ€ûr0ÀÃ0ÿÛÿ§ø`G�`<‰Dé ½0Àà ÿÃÆ`ëÆ`�`Qè ƒÿ ±‹DÓàD¹ 41Ò÷ñ)Ñ�`,‰G‰W‹D9Á‰È‰G±Óà‰GŠDˆG‹D ‰G ‹D ‰G V‰Þè 5Àu&[‹D‰Á+GtL ÿDÇD ÷؉D±Òè‰DSè [‰Þ�`]è ÿÃÆ` ŠT‹DˆÆ€æ‰ÃÑëÑëÑë†û:` u;`tCPSRè ø‰`€&`ø`€&`ø`Æ`�`è çtþ`t �`è Øé çÿ ƒÄ°ÿÃZ[Xˆ6`ˆ6` €Ëþ‰`ˆ`#ö` t ƒ|u�| t/€`#°Æ`°è e�`è �tþ`tµ�`è €�`è yé ÛÿWüŽ`‹|±Óç‹L‹\ ö`Ž\ ‡Þu ‡÷ŒØŒÂŽÚŽÀÑéó¥s¤‰Þ_ ``0À¢`¢` Ãæ›è "0Àæ£è æ£è °ÿæ“è °æ“è °æ«è ÃQœ¹  âþ�YÃ0Àæ–è ïÿ 0íŠã/°@æ¢è âÿ 䢨 túCIã Šè Óÿæ è Îÿé ïÿ°è Æÿæ¢è ÁÿŠæ è ºÿ°æ¢è ³ÿ 䢨uúCŠæ’ˆÄè £ÿä–¨túè šÿ€ä€t¹ é Hä’è Šÿ°æ¢è ƒÿ䢨uúè zÿä–¨túè qÿä’¨tú  è eÿæ¢è `ÿ䢨uúè Wÿ°æ’è Pÿä–¨tú¹ ŒÛŽÃW�>`$è :ÿä’üª° è 1ÿæ¢è ,ÿ 䢨 túä ªâû°è ÿæ¢è ÿ䢨uú¡`$$`<@_Ã0ÀÊDþÈÃþÿ5DS‹\UŽD]&‹&‹_SŒÀŽØè[»tUèT‰ÓÇDU&Š< uCëö‰Ú»uUSèQ[¹èÜrEt…Éu)èôr:t"<.tëG<:tK»}U¹èºr#t6…ÉuèÒru+‰Ó< u èÅr uëó‡ÚJ‡Úë»ZS»tU¹ŒØŒÅè{:[ë[»ÿÿ‰\Oð(ÈtòˆÁ»uUŠC<0ræ<:s<,0ˆÄ ƒUþÀtׯƒUQ �UˆÅÀrÀrèrÀràr< s ¢�UYƒùtë$Yë¦ûŠT¶þÊè3þ„Òu÷èTs(èñúŠ<åtè~èštèþâöëãŠG<ærÜÆGåèûëÓèe0ÀÃèèÀúÆGåèðú°ÿùÃè²úŠ<åt?‰Ú�”š¹ ŒØŒÝè§‹\oSèós*è�úŠ<åuò‰Ú�œš¹ ŒØŒÝè…è®ú[‰\oèpúÆåC0ÀÃ[°ÿùÃèAŠ„Àu:Sÿtoè©èQú‰å‡^‰\o[ZŠ<åuƒÃ ŠƒÃŠþÀuþÈöÁ€u°‡Úˆ‡ÚÃ0ÀÊD'èÈ ˆÂ¶»¸WÓÊD'è#¶WˆøØt°ÿùÃà 0À&ö€töÐÃèur„Àuõèt ÿDoèØùC0ÀþÀˆÂÃCþˆÐ<t$uÃIˆèÈuùËLI°ÑéþÈuúAÃ0ÀˆDoˆDpÃè"ÿDo‹\o)ÓË\Kº¹ðB)Ësûè‡Ú)Ó‡ÚÊ\·è,ÛþÈuú‡ÚÃS�”š»Ó‰Ú[¹ËRŒØŒÝè[[¹ÊC¶èXtŠ7CIˆðÐÃèüèÉ&Š$ôWtÑèÑèÑèÑè)Ár(‰WÂëS‰ÃèÖZ‡Ú„Àu‰W€O €QR‰ÚèÔ[ZYâ“ÃèFY ÷W(Èu»öWŠþÈxþˆé5ÿ¢÷WÃöD&uèÙèëè_÷Ó!XŠXˆÍöÕŠD( ȈD0ŠD( èˆD(賄ÀtþÀuvè�uðè鮊D0„Àu/öD/@u)‹\(SŠX¶þÂ0À)Ó‰\(rè{[‰\(„Àt è{ŠþÈy5‹øW»øW9Ót ‰T1èAè2ëL‹þW‰\1èUŠþÈy‹\1‹W»üW9Ó‰Óuåètéwÿèè-ö@tèœè‚�tèktéÏè!èÍëèlèmtÆDèÄÀt鱋\1‹G‹_Št0²ÑêÓöD&t‰\+‰D-ë‹T+‹l-öD&t‡Ú•¹€èVöD&t躀@KŠD0þÀ:rˆŠD( D0ˆD(éŠèªè�ˆCŠD(ˆCŠD)ˆCŠD*ˆC XþÀöD/€tŠD0ˆC€'ŸÃè:ŠDU$¢öWŠDV<s°¢÷Wé�ý öWŠ&÷W‰DQÊDUè„ÀtÊDUèoˆÁŠlVë¹ÿð€ùÿt è Ó‰X€åþ»üW€ùÿt Sèï…Ó[uéÁ‹»üW9Ótr‰Ó‰\1€ùÿt:Ou×öÅ€uèêö uPèçŠþÈxGè»u¹èÔö@t2Qè%tèuYè¦ë è¦è¸€@€ Y€ÍöÅ@tQègYöÅ u�ëè€téwÿ‹\1étÿ€ùÿtAöÅ€t<öÅtˆè$`<`u/Qµ»XËË‹…ÒtSQˆÈèY[öD€uÇ»¸WËÆèöY»üW‹»üW9Ót » Ó€'߉ÓëëöÅtöÅuéÏäËXˆÈéŸQèYöÅ€t QèÎY0ÀþÈûüW‹»üW0À9Ót‰ÓSè [„Àtê‰\1ÃÊd'èîˆD'V¹ŠD':°uFCâó0À^ˆd'uŠD0:r °uöD/€t°ÿÃÆDèm„ÀÀ'¿è–ŠèX蓊„ÀtJ´‰D$ öW:DsÆèuŠºÿÿè û„ÀtæþÀuíé%è_¹VŠCˆDFâ÷^‹\1‹G‰D"‹G‰D 0ÀþÈÃè/èééã‹\1èx»ÓÆÿ»øWé{‹\1èd»üWéoè è#„ÀÃèè„Àuöúë ºëº ëº ‹\1ÓÊD'é"‹üWºüW9Óû5X¹QS»6XËËˉX´º6X‹X¹‡ÚЇÚ:uBCâòëBâýþÄëâ[ˆ'KYþÉyÅË\U‰ò¹‹D]ŒÝè"ö„ˆ€t6‹TèÊŠDˆD莈DO„Àt.Š<u(‹\UƒÃŽD]‹T&‰‰Ó‹T ‹l 顊<s<sÆDOÿÈDÆDŠD,r uéþþÈué;ËL$IŠDþÈxÑéëøA‰L‹\$è ‰\‹TŠDŠdþÌxÐèÑÚëö‹\´öÇ€uÑãþÄëõ‡Ú¹ÿÿA)ÓsûþÈy÷ÓIAþÌx ÑêÑá)ÓsóÓëð‰Ú‹\Ë‹L ‹D"‰D ‰L ‰\‰T‡Ú‹Lˇڋ\)Ós,Sˉ\èQè Z„ÀuH‹\ ‹LÙ÷Ú‰Ó‰\è7º‹\C뻊Dˆ‹\‹T0À)ÓsŒØŽÀèo„ÀtŠDºÿÿèöøþÈtþÀtäÃè<ŠDþÈxÑãëø‰\ÊD$ÀˆÂ¶»XÓ‹…Òu%SÆè*„ÀuŠDºÿÿè±ø„Àtì<ÿuïé¨á[‹T‰‰Tè91ÀÃÆŠT€â¶»6XÓÓÓ0Àö€uŠˆDÿgÃRS$ˆÂ¶»&XÓŠ[ZÃ�\‡ÚŒÝŒØ¹ é<‰Ó0À€?s‹WŠ·ÛèAÿ—fXñ ë#±ë±ë±ë±è�Kú‰�XÃJ‰’Xñëm±!ë±"Q±èaˆÂ±0ÀèÑþÈxÑãëø‰Ú»0À‹�X…ÉtÓsþÀâø‹’XÓsþÀ‰µX¢·Xº”XR±èZY„Àuèà ÿÃB‰Óñ3ë »\ñë±°ÿé»ÐÇDS‹D]‹\UŒÝººX¹ ènÆÚXÿtjÇDj^YÿtlŒ\lèOtéX»ÞY¹0ÆCâúèr»^YŠ„Àué|‹W‹G Àt‰Â‹G Àt‰Â…Òt]‹GS£Z‰ZºZ±5…ÀtþÁè¹ß[„ÀtéÊ¡Z‹W…Òu‹W9Ðs鳊Sèæ¡Z‰G¡Z²¹ÑàÐÒâúH=ÿÿuþʉˆW[ƒÃ é{ÿèç¡çY…ÀuÆãY¡ÞYŠàY£äYˆæY¡áY£çYÇDjÞXǸX^Y»^YŠ„Àt7‹Oã-Sè~‹o�>¸X^YuèúãŒØ‹¸XºQ¹è\‰¸XEYâÛ[ƒÃ ëÌػÞY‹.çYº¹0è<¡çYë?èH»ÞY¹‹G…Àt'Q£Z‹ŠW@…Àuþ¹ÐêÑØâú£ZÆZSè[YƒÃâ͸ÿÿ‰DO=ÿÿta€>Z1rZ¡ÛY…ÀtS£ÛXÆÝXººX±!è…Þ„Àu?èÂu:¹ »ÞXŠ„Àt.SP躋WXÐèÐèÐèÐèè«‹G[GŽÀSŠ_·&[ƒÃâÎëÁººX±è:Þ�Dl�Djƒ|Oÿuè«è¨ÃQƒùrTÿtjÿtlŠ„ŠPÇDj‰llQ�áøÿÍXU±ÓèHP$ˆ„ŠX±Óè@‰ÁQè1ЄЯ„Š@±ÓàDlYâè]Xˆ„Š�Dl�DjUè ǸXÞX]Y�áúºX±è´Ý„ÀÃþÈ$´À»ÞYÃÃÃúZ±9é—Ý ñWˆ„‰èé ZˆDOŒ\_Ë\UŽD]&‹R&ŠGèˆÆ&ŠGèˆÂ[�ÃÎ*µ± éeÝPÐÈÐÈÐÈÐÈ$ˆÅX$þÅþÍt ëøÃè ˆDOÃè&ˆGñ è6Ý�ëÎ*‰Ø‹\UŽD]&‰ˆðè&ˆGˆÐè&ˆGˆè±ÿþÁ, sú ÐáÐáÐáÐáÈËDU=ÿÿt£ZáZ‰DOÀ¤ˆ¿ÃÆDS0Àö„ˆ€t €ˆDTÇDU¬ÇDQË\Q‹Lj‹TUŽDlè1‰TU‰LS‰\Q‰DOÃèê< s< t < t< t<uPèXˆDOÊDUˆÁ< s(< t < u$ÆZë Z$ø*ZˆÁµQ± èYâ÷ÃþZéè’ˆDOÊLUéôŠDUˆÁþÀtþÀtþÀtéàèlë èg„ÀtèeˆDOË\UŽD]&ŠC:Zt Sè‚ÿ[ëíË\UŽD]éiè6ˆDOË\UƒûÿtˆZàZˆDOË\UŽD]&‹O&‹ã&ŠCIQSè@ÿ[Yëðòé‚è :ZtÃè&ëñèéÿ„Àuèóté²ë`èÖÿ„Àt:ZtÃèëÿŠ"Z„Étè:èÝÿ:Zt!:Zt:Zt:ZuÚ€´‡ö„‡ué;Ãé«Ûö„‡tQèúY²ë²ë² ŠDg„ÀtþÈ´»ZÃÃÊ/ÿgË*ZþuFCÿtjÿtl‰\jŒ\lŠTnŠ´ŠR ,ZˆDnÆ„Š‹(Z±èäÚZˆTnˆ´Š�Dl�Dj‹*ZÆ€„ÀtÆG°�*´Ê< t¤<uèÓètè‰*Z‹$Zè ‰(ZèÕ° ÃèŒ ƒÂËDU…ÀuéŠDn¢,ZèÕuW‹(Z…Òt èW‹*ZèPèÏ»…èPu:‰*ZÆ»%èAu+‰(Z‰ÚŒÝ‹\U‹D]¹ è† ‹(ZÆG ÆG ‰Ú±è&Ú„Àtèè�ÔÆDOÿÃê»$Zé èzƒÃ„ÀÃè#è`tè‹$ZSƒÃè1[èéæÿÃèÞ ‰ÓéÜ‹(Z…Ûtèè ‹*Z…Ût4èë/ƒëé»SŠDnP ,ZˆDn‰Ú±è¬ÙXˆDn[Ë(Z…ÛË$Zº$Z)ÚÃÇ(ZÇ*ZÃ&Š/C&ÆSC0ÀP脈Á<t<< s<t4< t5<t<<t8XP8ès&ˆCXþÀPˆÈ< s@ˆÁQ±^èVYë±èNë»èë¶è°üX[&ˆÃèuûë¤ZX„ÀtPèK&Š< sèXþÈPRÃSQRè  ZY[ÃSQè;ýY[ÃSQè�ýY[Ë\UŽD]&‹O&‹ãIQ&ŠCSè…[YëðË\UŠDTˆÁ ø ØþÀtLQSè�[YˆøþÀt þÈ<sˆDhˆØ<ÿt#€Œ‡@þÈt €¤‡¿þÀu ŠDh<r ÆDhëÆDhÿˆÈþÁt$ˆ„‚Ê|h³ö„‡@uˆøþÀuþÃþÉ\QŠ„‚ˆDOÊLU .Z„Àt8Èt'€Œ‡€ö„‡@uŠDhþÀtþÈtè^uµë2éléÖüÃö„‡€t#€¤‡ö„‡@uŠDhþÀtþÈt è0uµëéqÊDhþÈè ¡ˆV!ØuˆêŠDhëÃè u „ÀtŠ/ÿgÃþÈ´»?ZÃÃÊþÀtö€Ãö„‡ téáQ»�èY„Àt鉜…Æ€ö„‡@ué¼Q»!èåY„Àté㉜ƒQ»ªZ¹þ€?:rÆ0Kâóë닜ƒSŠ„‚þÀˆC‰Ú» Z¹ŒØŒÝè„ [ÆG ŠDh„Àt@ˆG‰ÚRÿtjÿtl‹„…@‰DjŒ\lÿtzÿt|ÿt~ŠLnQ ˆDn±èúÖYˆLn�D~�D|�Dz�Dl�Dj[þÀtévÿÆG ‰ÚŠLnQ ˆDn±èÊÖYˆLnY„Àu3€Œ‡ ‹œ…°�*´È)Ãþu3ö„‡@to蔄Àt%±èà€¤‡ßëèè'è6þÀuéãÖ€¤‡¿ÆDhÃö„‡ t€¤‡ßö„‡@u è,²ÿè-ë èJŠLhè™èØéçö„‡@uö„‡ tè²ëÃè®uÃÿtjÿtl‹„…@‰DjŒ\lŠthþα èÖ�Dl�DjÃè†tO°€(Ðt´‰Á¶ÓCÆâúÿtjÿtl‹„…@‰DjŒ\lŠLnЬŠQÆ„Š ˆDn‹”ƒ±èÄÕYˆLnˆ¬Š�Dl�DjÃQŠLnQ ˆDn‹”ƒ±è¡ÕYˆLnY„ÀuþÉxˆÏŠ€Ë€‹”ƒ±é�ÕËœ…²€*tƀËœƒ…Ût èeÇ„ƒÃ‹œ……Ût èSÇ„…ÃèjèúèbSpooler error (Ignore, Abort) èkù„Àtè‡ùëôè‚ùPèàùXèBˆÁ œ:þÈ(È<ÿt  ”:þÀ(È<të¥ÃèE²èpˆDOÃè9²èdˆDOÃè-²éXè%²éPè²èHˆDOÃè²é<è ²è4ˆDOÊLUŠlV€åËDQ£°Z‹DU£³ZŠDT¢²Zá°Z‰DQ¡³Z‰DU ²ZˆDT ¶ZˆDSû²ZþŠ<°Z€tÿ°ZËTU…Òt ‹\Qè&ˆDOñè8Ôè*P€ [@ŒØŽÐ¼ [»ºZèú[èé SR»[èuZY„Àu5QS¹[ÆCâú[  [ˆGNþ [Y‰OD‰—Y�‡Y‰GFŒ_H�W3R»ºZè¨[0ÀËTQ‹\USƒÃèÅ[郋\Uè‰\QÃèq‹_è ‰ÓûÆZé¨PVèÿö [@uè�‰ÆöD7@u ÇDLºZèbëè%^XÏ€d7öD7@t€L7€€L7@ÃèöD7€u€d7¿Ã€ [€Ãö [€uÀ& [»ºZëúþxû0ÀÃþ°ÿë‹\U…Ûtå‰\8»ÀZú‰\L€ [@û‰D:‰\<‰L>‰T@‰lB‰|D‰dFŒTHŒDJŒØŽÐ¼ [€& [ßèt‹ÆZ�ûÆZt ÿ7�GÿÐ[ëðö [ u#èωƻºZ誋\LúŠþÈxˆ»ºZè�û€ [  ºZ„Àt¸è¥‰ÆŽDJŽTH‹dF‹|D‹lB‹T@‹L>‹\<‹D:€& [¿Ãÿ¶Zÿ¸ZÃú‹¸ZǸZû…Òt0‹ÂZ�ûÂZt&)Wt r‹ëïÇGRÿ7èA»ÂZèL»ÀZè[ZëÔÃè„Àt»ºZè°ÿÜúþCCè%�ÜúŠþ„À°y‹_è°ÿ�Ãè[á¼Z-3ÀO@øÀb±Óèè6£[¡\ [ƒ>[t 9[s¡[ŒÙ÷ÙÁ�ér)È+\èuH£[û\)G‹ŒÙ)ȱÓàË\Uè‰\QˆDOÉ[º)Ós‰[Ç[ÿÿÇ[»[‹�û[t‹Wþ¡[@@)Ât/rê9[rä‰[‰[ëÚ‹[…Ût¡[=r ‰GþË[BBë$è'‰Ó0ÀË[‹[BB)Ó°ÿr;[r ‰[CC‰Wþ0ÀË\U‰[‹Wþ‹[�û[t5¡[Ð9Øt‹GþØ;[t‹ëâWþRèÍZ‹[‰WþëÍR迉ÓZWþ뺋[»[辋[�û[t‰ØHH;[t‹ëì‹Gþ[è‹ëÜ0Àýè"„ÀuVýè„Àuaýè3tBýè*tOÃÇDSèø„Àt‡ÚþÀt¡[)GÆv[‡Ú°ÿÃÆDOÿÃÇDSèÑþÀtÆDOÿËG‡Ú+G‰‹G‡Ú)GëA‹O‡Ú‹‡Ú+‰G‰Óÿ7ÿw‹G‰)Á‰OS ![PÆ![‰Ú»"[èX¢![[�G�‰Ú»J[èé/ÇDS‹TU±ÓêT]»J[¹‹G…Àt ;r9Âr ƒÃâêÆDOÿà![PŠG¢![èì€>v[ÿu(»J[¹‹G…Àt ![:Gs SQèLY[ÇGƒÃâàëXþ![èorK‹O‰GŠG¢![‰Óÿ7ÿw‹G‰)Á‰OS‰Ú»J[è^[�G�èë ![PÆ![‰Ú»"[èBX¢![ÃÆDOÿX¢![ûJ[è$»"[èÆ![Š\µº\RQ»"[èYZƒÂâñù(ÆCâúÃÇ[¹ƒt/ ![:Gu2‹G‡Ú;t‹G‡Ú;u‡Úè)ËG‡ÚGá[…Àu‰[ƒÃ⻋[…Ût ![ˆG‡Ú‹‹O‡Ú‰‰OÃUè½]»"[ºr[Æ [¹…íu‹‡Ú‰‡Úèwr0÷ØG‡Ú+G‡Ús/€> [ÿt÷Ø€> [Æ [u;[s£[‰[ƒÃ⺠ [‹[Ãt€> [ÿÆ [ÿuÞëÖÇ[°ÿûJ[ºr[¹ ![:Gsè rtƒÃâìùËG…Àùt‡Ú‹‡Ú+rP‹G‡Ú++G‡ÚXr9ÀøÃè éêè‡Ú•éá‹\U‹D]ºr[ŒÝ¹Ãþ![Ãþ![Ã0ÀÃ0À�ûx[ùŠCþÀtþÈy$8àu ;uˆÈöØÃCCâà°ÿÃQ±ÓãYôº'èºèèºdè º èþĺ±ÿþÁ)ÓsúÓ„Éu„ät €Á0PSèÅñ[XþÄË‹G‡Ú‰G“‰Ë_‹‰“‹O‰W‡Ú‰‰OÃ[èÿã.ŠC„ÉtSèŠñ[ëñà \2rÆ \èëõèÝ÷è=èɰèšÿZY[Xé­öäHäHº”F°è*ÿ‹\è¥ø‰\‰\‰\ÈÐ< tÀtþÈtþÈt ,t þÈt0ÀÃéÒè$ý ÃèÃèuèu»\èµöè tõ‰\‰ù\ˆÈËù\‰Ú ÛŠ‹\t Ét ÿBÃ1Ò0À;\tõC¡\\9Øu‹\ŠCŠ/S<€r)<•w%0äÐísÐàÑàÑàÑàû\‰ÃŠÉt‰ÚBéD[éµÿ<^r »Á[×<ÿu[é¥ÿ»Á\±:t ƒÃþÉuõëŠGˆÁèÔöÅtˆÈè÷<@r<_w$ˆÁ[ ÿÃPSQRè•üè;°èmþZY[Xé€õ¡\9\uäL¨t €>\tþ\À>\tþ\ÃÆ\ëäJ$täHÃÆ\(äL$/ˆÂäN¨t€Ê@¨t€Ê€äHˆÁ‹\€ù–uˆÔ€ät{ú1ÀŽÐŽÀ¼ÿÿ.õ\‰\C¡\\9Øu‹\;\tˆCˆ‰\»\RèGöZðÀ èt<€t"»É\°:tƒÃþÈuõÊOÀùAr€ùZw€Á û`u$€ù s¿ö_ˆÈ¹ ò®7u » )ËÛÿ—`è#ÃÿÐ눽`èr»¸`èèy»¿`èøÆ»`褉Â_èTÀ>Ê_tþÊ_uÆÊ_ö¿_€€«`€»¨`èÆÃÇÄ_KIÃÆ½`è!»¸`è°è(»¿`è§é´ÿ²ë €>À_uŠÁ_Ã0öëtþÎy ö¿_tÒu0ö€þPr¶OþÊy ö¿_t0Ò:Æ_r:Ç_vŠÇ_ö¿_tèߨ u½ÃþÆ€þPr)0ö€>À_u ö¿_@tèš¶OÃþÂ:Ç_v ö¿_tŠÆ_ö¿_tè ¨ uÂÃþÊþÈ_€>È_rÆÈ_è®R¶è ZÈð0䊼_öñ ¼_(àð»Ú`è½»¿`é·èÀÿRþÊxè°ÿéöÿZÃRè»ÿ0öþ€úrôZÃÃÃÃè/¢´`ˆ&¶`»±`é…袴`ˆ&¶`»±`érèêÿè�»Ä`èf鋈ÑÈ_€ùr€é°Pöáˆñ0íÈàÈ_±Pöá¢Ê`ˆ&Ì`°*È_±öá±Óà¢Î`ˆ&Ð`1À¢Ò`ˆ&Ô` È_±öá±Óà¢Ö`ˆ&Ø`è*»Ç`èé!œúRŠ'C0ö„ätä@¨uúŠWŠîCCþÌëêZ�Ãä@¨túÃä@¨túä@ÃäPþÀt»ü` #aþÈöбÒà ˆCÆ&¹èûð`èïè P»ð`è ðXÊ€ûr0ÀÃ0ÿÛÿ§$aè^„ÀuÃÆ aµ èÔ atµJèÊ aœ �t þ ax?è†ë݈„Àu  a<w°èŠëÉRè‘Z¨t€Ê».a8—t‹…Ûuôë ƒÃ‰\ ÿÃ0ÀÃèñ„ÀuöÐÃöDÿuè4è@»aöD€t€CŠD$ˆCŠDˆCŠD$ˆÆa‹D P± ÓèˆÂX±ÓàD €Òæˆàæ‹DæˆàæˆÐæ:°æ°æ ¹ öD€t€Í@è èM  a$Àtþaz± ÿÃÆ!a²ëÆ!a²è „ÀtÃÆ!a²è1öt€Ê@öt€Ê€ˆ"aŠD¢a‹D £aŠD¢aŠ\€ãˆa0ÿЇa¢aÆa€„ÛtÆaÿÆaÆ aèï„ÀuöÐÃèGŠaèÂt0öÓŠþŠtè¼ötÐî»ü`€'Æþ`8Ös (ò€Æþ`ˆÿ`ˆ6aÆaèbŠ."a± è(èj  a$Àt%ö auö at þ axèÇéÿ±èóäþazÅ  aaè@tèMaþaþatéTÿ a$Àt ÿËD P± ÓèˆÂX±Óàa€Òæˆàæèèþu‹DHæˆàæˆÐæ: !aæ°æ ÊD<säPþÀt è èe¨ t ÿÃ0ÀÊT€â ü`$8ÐtˆÃ0ÿ ý`ˆ‡aˆÓЇa¢ý`ˆü`ˆa€&ü`û€&aûùè:è|0À¢ý`ÊD:ý`t ¢ý`¹èèaùèè?  añè èK  a$ÀÃäP¨uúœú»ü`ˆè$< u»aäP¨€tú¨@u ˆèæRŠ/CþÉuë�Üú» aäP¨€tú¨@täRˆCëï�úýPèLë»ö`é®ë‹\‹Ÿ …ÛË\�à ÃQŠL¸€ÓàYÜú° æ(ä(�¨tèr »ýPèªñ»ö`ètìÃäP¨u¹ècÿè�ÿ  a$À<Àùt°æ 0ÀÃPQRŠÉt SèEö[CéñÿZYXÃ0Àæ”æ¢°€æ¢0Àæ¢æ©°æŸ0Àæ˜�bbèúûHbèëè P»Hbè ìXÊ€ûr0ÀÃ0ÿÛÿ§�b�„b‰Dé½0Àà ÿÃÆYbëÆYb�™bèƒÿ±‹DÓàD¹41Ò÷ñ)Ñ�tb‰G‰W‹D9Á‰È‰G±Óà‰GŠDˆG‹D ‰G ‹D ‰G V‰Þè5Àu&[‹D‰Á+GtL ÿDÇD÷؉D±Òè‰DSè [‰Þ�¥bèÿÃÆTbŠT‹DˆÆ€æ‰ÃÑëÑëÑë†û:Ubu;VbtCPSRèø‰_b€&abøab€&cbøcbÆXb�^bèçtþXbt �bbèØéçÿƒÄ°ÿÃZ[Xˆ6ebˆ6hb€Ëþ‰fbˆkböYbt ƒ|u�| t/€kb°ÆXb°èe�dbè�tþXbtµ�bbè€�^bèyéÛÿWüŽZb‹|±Óç‹L‹\ öYbŽ\ ‡Þu ‡÷ŒØŒÂŽÚŽÀÑéó¥s¤‰Þ_ Yb\b0À¢]b¢TbÃæ›è"0Àæ£èæ£è°ÿæ“è°æ“è°æ«èÃQœ¹âþ�YÃ0Àæ–èïÿ0íŠã/°@æ¢èâÿ䢨 túCIã ŠèÓÿæ èÎÿéïÿ°èÆÿæ¢èÁÿŠæ èºÿ°æ¢è³ÿ䢨uúCŠæ’ˆÄè£ÿä–¨túèšÿ€ä€t¹éHä’èŠÿ°æ¢èƒÿ䢨uúèzÿä–¨túèqÿä’¨tú èeÿæ¢è`ÿ䢨uúèWÿ°æ’èPÿä–¨tú¹ŒÛŽÃW�>lbè:ÿä’üª° è1ÿæ¢è,ÿ䢨 túä ªâû°èÿæ¢èÿ䢨uú¡lb$`<@_Ã0ÀÊDþÈÃTurboDOS 1.40, Copyright 1984, Software 2000, Inc. $($/$)$ <-- $Invalid command$Command not found$Program load unsuccessful$Non-privileged user$ÿ^U^U„U�\}ÿÿÿCOLDSTRTAUTWARMSTRTAUT€ÎVÎVÒVÒVë2*3J3‚3‰3…7�3x[x[¶3Ð3Ù3?2L&R&â`ÂÓ~üub­x[[&b&x[x[”x[i& Q‹�x[Qx[x[ˆ&”&– ¶&½&=?H?S?\?ý?Æ@’/I2Œ2x[Ø2à3ô3ê622ˆ;�<+>Ã>ÿ;<Ê&Ñ&(;;;œñ2$'Ø&Þ;5L ã á!=ä,*.*x[9*7º7Â�9x[Ö:â:î:ö:þ: ;;3¹ÿÿÿÿÿÿÿÿDIRDSK¸øWøWüWüWwMwMvQÿÿÿÿÿÿÿÿÿÿÿÿÿ�.ö.ú.þ./þ.ú. //////#/w/z/~/‚/†/Š/$ DSK1$  E$Z$Zx[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-PRINT-?000€¼Z¼ZÂZÂZÆZÆZ`[[ C2NEC-APCC3 SINGLE USERC6 (10/05/84)C5$@À?@\\(-ÿÿÿÿÿÿÿÿÿÿ*+ÿ-./0123456789ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿ-=@`:;;'1!2@3#4$5%6Ð7&8*9(0)-_=+`~[{]}\|,<.>/?;:'"^íþOOOPOQOROSOTOUOVOWOXOYOZÿ€Í_Í_ eH“H3IôH«H×HƒHãK^HH=*TYCjk^_qlm.[(þJãK;L|LEKcKiKoKuK{K†KŒK’KdI3K'KfHCABDJKmMh>†J†J­J¿J¹J³JçJáJ#J#J†JXJhLluJdJdJ|LlLÝK;L/L'LB@N@R@@@@î@E@oBFB@GBP@JBÿ@ÿ@KB@!@Š@IB@@ B@@0B€@°B pB@@@@@@@@LB@@@Š!ŠŠ.Šò`ò`ø`ø`å5—N N›MüON?ahM5Pa� P?5aaÈ (5ra4M 5ƒaÈP;5”aÈ(5¥a4M¶ašMÇa €Øa @éaî4Mb óMúa         #&),/2!$'*-03"%(+.1JbJbPbPbÿÿÿœhP † @ ªQ±QšQaT§QInto drvr Out of drvr  ; Set DMA mask OUT DMAMASK,AL CALL DELAY RET DELAY: PUSH CX ; Save counter register PUSHF ; Save flags MOV CX,=0X10 ; Setup count __L: LOOP __L ; Wait for a while POPF ; Restore flags and counter POP CX RET SENDCMD: XOR AL,AL ; Reset completion status OUT INTREG,AL CALL DELAY ; Couldn't hurt XOR CH,CH ; Get number of parameters MOV CL,[BX] JCXZ __CMD ; Are there any parameters ? MOV AL,=0X40 ; Write CLDB to formatter OUT FMTREG,AL CALL DELAY __FWT: IN AL,FMTREG ; Can formatter accept byte ? TEST AL,=0X20 JZ __FWT __PMOR: INC BX 8 ; Get next parameter DEC CX ; Decrement parameter count JCXZ __PLST ; Is this the last parameter ? MOV AL,[BX] ; No, get the parameter CALL DELAY OUT HDCDATA,AL ; Output it to controller CALL DELAY JMP __PMOR ; Process next parameter __PLST: MOV AL,=0X04 ; Tell controller this is last CALL DELAY OUT FMTREG,AL CALL DELAY MOV AL,[BX] ; Get last parameter OUT HDCDATA,AL CALL DELAY __CMD: MOV AL,=0X11 ; Send HSRQ and CLCE to fmtr OUT FMTREG,AL CALL DELAY __CE: IN AL,FMTREG ; Wait until formatter ready TEST AL,=0X04 JNZ __CE INC BX ; Load command byte MOV AL,[BX] OUT HDCCMD,AL ; Send command byte to cntrlr MOV AH,AL ; Save command byte for later CALL DELAY __CWT: IN AL,INTREG ; Is the command done yet? TEST AL,=0X02 JZ __CWT CALL DELAY ; Yes, finally AND AH,=0X80 ; Yes, was it a seek command ? JZ IOSTAT MOV CX,=07 ; Yes, setup for normal status JMP READST IOSTAT: IN AL,HDCSTAT ; Clear status register CALL DELAY MOV AL,=0X10 ; Set formatter CLCE OUT FMTREG,AL CALL DELAY __CEWT: IN AL,FMTREG ; Wait until CE goes down TEST AL,=0X04 JNZ __CEWT CALL DELAY __HDIN: IN AL,INTREG ; Wait until HDIN goes down TEST AL,=0X02 JZ __HDIN CALL DELAY __SWAIT:IN AL,HDCSTX‹òW‹ôWŠ÷WµQRS»è ZY„ÀubÆG ÇG �G ‰G ‰GŒ_ÇGŠ&XþİÑèƒ>ôWtÑèÑèÑèÑè)Ár(‰WÂëS‰ÃèÖZ‡Ú„Àu‰W€O €QR‰ÚèÔ[ZYâ“ÃèFY ÷W(Èu»öWŠþÈxþˆé5ÿ¢÷WÃöD&uèÙèëè_÷Ó!XŠXˆÍöÕŠD( ȈD0ŠD( èˆD(賄ÀtþÀuvè�uðè鮊D0„Àu/öD/@u)‹\(SŠX¶þÂ0À)Ó‰\(rè{[‰\(„Àt è{ŠþÈy5‹øW»øW9Ót ‰T1èAè2ëL‹þW‰\1èUŠþÈy‹\1‹W»üW9Ó‰Óuåètéwÿèè-ö@tèœè‚�tèktéÏè!èÍëèlèmtÆDèÄÀt鱋\1‹G‹_Št0²ÑêÓöD&t‰\+‰D-ë‹T+‹l-öD&t‡Ú•¹€èVöD&t躀@KŠD0þÀ:rˆŠD( D0ˆD(éŠèªè�ˆCŠD(ˆCŠD)ˆCŠD*ˆC XþÀöD/€tŠD0ˆC€'ŸÃè:ŠDU$¢öWŠDV<s°¢÷Wé�ý öWŠ&÷W‰DQÊDUè„ÀtÊDUèoˆÁŠlVë¹ÿð€ùÿt è Ó‰X€åþ»üW€ùÿt Sèï…Ó[uéÁ‹»üW9Ótr‰Ó‰\1€ùÿt:Ou×öÅ€uèêö uPèçŠþÈxGè»u¹èÔö@t2Qè%tèuYè¦ë è¦è¸€@€ Y€ÍöÅ@tQègYöÅ u�ëè€téwÿ‹\1étÿ€ùÿtAöÅ€t<öÅtˆè$`<`u/Qµ»XËË‹…ÒtSQˆÈèY[öD€uÇ»¸WËÆèöY»üW‹»üW9Ót » Ó€'߉ÓëëöÅtöÅuéÏäËXˆÈéŸQèYöÅ€t QèÎY0ÀþÈûüW‹»üW0À9Ót‰ÓSè [„Àtê‰\1ÃÊd'èîˆD'V¹ŠD':°uFCâó0À^ˆd'uŠD0:r °uöD/€t°ÿÃÆDèm„ÀÀ'¿è–ŠèX蓊„ÀtJ´‰D$ öW:DsÆèuŠºÿÿè û„ÀtæþÀuíé%è_¹VŠCˆDFâ÷^‹\1‹G‰D"‹G‰D 0ÀþÈÃè/èééã‹\1èx»ÓÆÿ»øWé{‹\1èd»üWéoè è#„ÀÃèè„Àuöúë ºëº ëº ‹\1ÓÊD'é"‹üWºüW9Óû5X¹QS»6XËËˉX´º6X‹X¹‡ÚЇÚ:uBCâòëBâýþÄëâ[ˆ'KYþÉyÅË\U‰ò¹‹D]ŒÝè"ö„ˆ€t6‹TèÊŠDˆD莈DO„Àt.Š<u(‹\UƒÃŽD]‹T&‰‰Ó‹T ‹l 顊<s<sÆDOÿÈDÆDŠD,r uéþþÈué;ËL$IŠDþÈxÑéëøA‰L‹\$è ‰\‹TŠDŠdþÌxÐèÑÚëö‹\´öÇ€uÑãþÄëõ‡Ú¹ÿÿA)ÓsûþÈy÷ÓIAþÌx ÑêÑá)ÓsóÓëð‰Ú‹\Ë‹L ‹D"‰D ‰L ‰\‰T‡Ú‹Lˇڋ\)Ós,Sˉ\èQè Z„ÀuH‹\ ‹LÙ÷Ú‰Ó‰\è7º‹\C뻊Dˆ‹\‹T0À)ÓsŒØŽÀèo„ÀtŠDºÿÿèöøþÈtþÀtäÃè<ŠDþÈxÑãëø‰\ÊD$ÀˆÂ¶»XÓ‹…Òu%SÆè*„ÀuŠDºÿÿè±ø„Àtì<ÿuïé¨á[‹T‰‰Tè91ÀÃÆŠT€â¶»6XÓÓÓ0Àö€uŠˆDÿgÃRS$ˆÂ¶»&XÓŠ[ZÃ�\‡ÚŒÝŒØ¹ é<‰Ó0À€?s‹WŠ·ÛèAÿ—fXñ ë#±ë±ë±ë±è�Kú‰�XÃJ‰’Xñëm±!ë±"Q±èaˆÂ±0ÀèÑþÈxÑãëø‰Ú»0À‹�X…ÉtÓsþÀâø‹’XÓsþÀ‰µX¢·Xº”XR±èZY„Àuèà ÿÃB‰Óñ3ë »\ñë±°ÿé»ÐÇDS‹D]‹\UŒÝººX¹ ènÆÚXÿtjÇDj^YÿtlŒ\lèOtéX»ÞY¹0ÆCâúèr»^YŠ„Àué|‹W‹G Àt‰Â‹G Àt‰Â…Òt]‹GS£Z‰ZºZ±5…ÀtþÁè¹ß[„ÀtéÊ¡Z‹W…Òu‹W9Ðs鳊Sèæ¡Z‰G¡Z²¹ÑàÐÒâúH=ÿÿuþʉˆW[ƒÃ é{ÿèç¡çY…ÀuÆãY¡ÞYŠàY£äYˆæY¡áY£çYÇDjÞXǸX^Y»^YŠ„Àt7‹Oã-Sè~‹o�>¸X^YuèúãŒØ‹¸XºQ¹è\‰¸XEYâÛ[ƒÃ ëÌػÞY‹.çYº¹0è<¡çYë?èH»ÞY¹‹G…Àt'Q£Z‹ŠW@…Àuþ¹ÐêÑØâú£ZÆZSè[YƒÃâ͸ÿÿ‰DO=ÿÿta€>Z1rZ¡ÛY…ÀtS£ÛXÆÝXººX±!è…Þ„Àu?èÂu:¹ »ÞXŠ„Àt.SP躋WXÐèÐèÐèÐèè«‹G[GŽÀSŠ_·&[ƒÃâÎëÁººX±è:Þ�Dl�Djƒ|Oÿuè«è¨ÃQƒùrTÿtjÿtlŠ„ŠPÇDj‰llQ�áøÿÍXU±ÓèHP$ˆ„ŠX±Óè@‰ÁQè1ЄЯ„Š@±ÓàDlYâè]Xˆ„Š�Dl�DjUè ǸXÞX]Y�áúºX±è´Ý„ÀÃþÈ$´À»ÞYÃÃÃúZ±9é—Ý ñWˆ„‰èé ZˆDOŒ\_Ë\UŽD]&‹R&ŠGèˆÆ&ŠGèˆÂ[�ÃÎ*µ± éeÝPÐÈÐÈÐÈÐÈ$ˆÅX$þÅþÍt ëøÃè ˆDOÃè&ˆGñ è6Ý�ëÎ*‰Ø‹\UŽD]&‰ˆðè&ˆGˆÐè&ˆGˆè±ÿþÁ, sú ÐáÐáÐáÐáÈËDU=ÿÿt£ZáZ‰DOÀ¤ˆ¿ÃÆDS0Àö„ˆ€t €ˆDTÇDU¬ÇDQË\Q‹Lj‹TUŽDlè1‰TU‰LS‰\Q‰DOÃèê< s< t < t< t<uPèXˆDOÊDUˆÁ< s(< t < u$ÆZë Z$ø*ZˆÁµQ± èYâ÷ÃþZéè’ˆDOÊLUéôŠDUˆÁþÀtþÀtþÀtéàèlë èg„ÀtèeˆDOË\UŽD]&ŠC:Zt Sè‚ÿ[ëíË\UŽD]éiè6ˆDOË\UƒûÿtˆZàZˆDOË\UŽD]&‹O&‹ã&ŠCIQSè@ÿ[Yëðòé‚è :ZtÃè&ëñèéÿ„Àuèóté²ë`èÖÿ„Àt:ZtÃèëÿŠ"Z„Étè:èÝÿ:Zt!:Zt:Zt:ZuÚ€´‡ö„‡ué;Ãé«Ûö„‡tQèúY²ë²ë² ŠDg„ÀtþÈ´»ZÃÃÊ/ÿgË*ZþuFCÿtjÿtl‰\jŒ\lŠTnŠ´ŠR ,ZˆDnÆ„Š‹(Z±èäÚZˆTnˆ´Š�Dl�Dj‹*ZÆ€„ÀtÆG°�*´Ê< t¤<uèÓètè‰*Z‹$Zè ‰(ZèÕ° ÃèŒ ƒÂËDU…ÀuéŠDn¢,ZèÕuW‹(Z…Òt èW‹*ZèPèÏ»…èPu:‰*ZÆ»%èAu+‰(Z‰ÚŒÝ‹\U‹D]¹ è† ‹(ZÆG ÆG ‰Ú±è&Ú„Àtèè�ÔÆDOÿÃê»$Zé èzƒÃ„ÀÃè#è`tè‹$ZSƒÃè1[èéæÿÃèÞ ‰ÓéÜ‹(Z…Ûtèè ‹*Z…Ût4èë/ƒëé»SŠDnP ,ZˆDn‰Ú±è¬ÙXˆDn[Ë(Z…ÛË$Zº$Z)ÚÃÇ(ZÇ*ZÃ&Š/C&ÆSC0ÀP脈Á<t<< s<t4< t5<t<<t8XP8ès&ˆCXþÀPˆÈ< s@ˆÁQ±^èVYë±èNë»èë¶è°üX[&ˆÃèuûë¤ZX„ÀtPèK&Š< sèXþÈPRÃSQRè  ZY[ÃSQè;ýY[ÃSQè�ýY[Ë\UŽD]&‹O&‹ãIQ&ŠCSè…[YëðË\UŠDTˆÁ ø ØþÀtLQSè�[YˆøþÀt þÈ<sˆDhˆØ<ÿt#€Œ‡@þÈt €¤‡¿þÀu ŠDh<r ÆDhëÆDhÿˆÈþÁt$ˆ„‚Ê|h³ö„‡@uˆøþÀuþÃþÉ\QŠ„‚ˆDOÊLU .Z„Àt8Èt'€Œ‡€ö„‡@uŠDhþÀtþÈtè^uµë2éléÖüÃö„‡€t#€¤‡ö„‡@uŠDhþÀtþÈt è0uµëéqÊDhþÈè ¡ˆV!ØuˆêŠDhëÃè u „ÀtŠ/ÿgÃþÈ´»?ZÃÃÊþÀtö€Ãö„‡ téáQ»�èY„Àt鉜…Æ€ö„‡@ué¼Q»!èåY„Àté㉜ƒQ»ªZ¹þ€?:rÆ0Kâóë닜ƒSŠ„‚þÀˆC‰Ú» Z¹ŒØŒÝè„ [ÆG ŠDh„Àt@ˆG‰ÚRÿtjÿtl‹„…@‰DjŒ\lÿtzÿt|ÿt~ŠLnQ ˆDn±èúÖYˆLn�D~�D|�Dz�Dl�Dj[þÀtévÿÆG ‰ÚŠLnQ ˆDn±èÊÖYˆLnY„Àu3€Œ‡ ‹œ…°�*´È)Ãþu3ö„‡@to蔄Àt%±èà€¤‡ßëèè'è6þÀuéãÖ€¤‡¿ÆDhÃö„‡ t€¤‡ßö„‡@u è,²ÿè-ë èJŠLhè™èØéçö„‡@uö„‡ tè²ëÃè®uÃÿtjÿtl‹„…@‰DjŒ\lŠthþα èÖ�Dl�DjÃè†tO°€(Ðt´‰Á¶ÓCÆâúÿtjÿtl‹„…@‰DjŒ\lŠLnЬŠQÆ„Š ˆDn‹”ƒ±èÄÕYˆLnˆ¬Š�Dl�DjÃQŠLnQ ˆDn‹”ƒ±è¡ÕYˆLnY„ÀuþÉxˆÏŠ€Ë€‹”ƒ±é�ÕËœ…²€*tƀËœƒ…Ût èeÇ„ƒÃ‹œ……Ût èSÇ„…ÃèjèúèbSpooler error (Ignore, Abort) èkù„Àtè‡ùëôè‚ùPèàùXèBˆÁ œ:þÈ(È<ÿt  ”:þÀ(È<të¥ÃèE²èpˆDOÃè9²èdˆDOÃè-²éXè%²éPè²èHˆDOÃè²é<è ²è4ˆDOÊLUŠlV€åËDQ£°Z‹DU£³ZŠDT¢²Zá°Z‰DQ¡³Z‰DU ²ZˆDT ¶ZˆDSû²ZþŠ<°Z€tÿ°ZËTU…Òt ‹\Qè&ˆDOñè8Ôè*P€ [@ŒØŽÐ¼ [»ºZèú[èé SR»[èuZY„Àu5QS¹[ÆCâú[  [ˆGNþ [Y‰OD‰—Y�‡Y‰GFŒ_H�W3R»ºZè¨[0ÀËTQ‹\USƒÃèÅ[郋\Uè‰\QÃèq‹_è ‰ÓûÆZé¨PVèÿö [@uè�‰ÆöD7@u ÇDLºZèbëè%^XÏ€d7öD7@t€L7€€L7@ÃèöD7€u€d7¿Ã€ [€Ãö [€uÀ& [»ºZëúþxû0ÀÃþ°ÿë‹\U…Ûtå‰\8»ÀZú‰\L€ [@û‰D:‰\<‰L>‰T@‰lB‰|D‰dFŒTHŒDJŒØŽÐ¼ [€& [ßèt‹ÆZ�ûÆZt ÿ7�GÿÐ[ëðö [ u#èωƻºZ誋\LúŠþÈxˆ»ºZè�û€ [  ºZ„Àt¸è¥‰ÆŽDJŽTH‹dF‹|D‹lB‹T@‹L>‹\<‹D:€& [¿Ãÿ¶Zÿ¸ZÃú‹¸ZǸZû…Òt0‹ÂZ�ûÂZt&)Wt r‹ëïÇGRÿ7èA»ÂZèL»ÀZè[ZëÔÃè„Àt»ºZè°ÿÜúþCCè%�ÜúŠþ„À°y‹_è°ÿ�Ãè[á¼Z-3ÀO@øÀb±Óèè6£[¡\ [ƒ>[t 9[s¡[ŒÙ÷ÙÁ�ér)È+\èuH£[û\)G‹ŒÙ)ȱÓàË\Uè‰\QˆDOÉ[º)Ós‰[Ç[ÿÿÇ[»[‹�û[t‹Wþ¡[@@)Ât/rê9[rä‰[‰[ëÚ‹[…Ût¡[=r ‰GþË[BBë$è'‰Ó0ÀË[‹[BB)Ó°ÿr;[r ‰[CC‰Wþ0ÀË\U‰[‹Wþ‹[�û[t5¡[Ð9Øt‹GþØ;[t‹ëâWþRèÍZ‹[‰WþëÍR迉ÓZWþ뺋[»[辋[�û[t‰ØHH;[t‹ëì‹Gþ[è‹ëÜ0Àýè"„ÀuVýè„Àuaýè3tBýè*tOÃÇDSèø„Àt‡ÚþÀt¡[)GÆv[‡Ú°ÿÃÆDOÿÃÇDSèÑþÀtÆDOÿËG‡Ú+G‰‹G‡Ú)GëA‹O‡Ú‹‡Ú+‰G‰Óÿ7ÿw‹G‰)Á‰OS ![PÆ![‰Ú»"[èX¢![[�G�‰Ú»J[èé/ÇDS9AT ; Wait until status is posted TEST AL,=0X10 JZ __SWAIT MOV AL,0X11 ; Set formatter HSRQ and CLCE CALL DELAY OUT FMTREG,AL CALL DELAY __CE: IN AL,FMTREG ; Wait until CE is down again TEST AL,=0X04 JNZ __CE CALL DELAY MOV AL,=0X10 ; Issue interrupt status command OUT HDCCMD,AL CALL DELAY __SW: IN AL,INTREG ; Wait until status is ready TEST AL,=0X02 JZ __SW MOV CX,=01 ; Setup status byte count READST: MOV BX,DS ; Setup pointer to status buf PUSH ES MOV ES,BX PUSH DI ; Save destination register LEA DI,STATBUF CALL DELAY IN AL,HDCSTAT ; Get status byte CLD STOS BYTE  ; Save status byte in buffer MOV AL,=0X20 ; Setup formatter for status read CALL DELAY OUT FMTREG,AL CALL DELAY __FWT: IN AL,FMTREG ; Is formatter ready with stat? TEST AL,=0X20 JZ __FWT __SLP: IN AL,HDCDATA ; Get status byte STOS BYTE LOOP __SLP MOV AL,=0X10 ; Set CLCE in formatter CALL DELAY OUT FMTREG,AL CALL DELAY __CE: IN AL,FMTREG ; Wait until CE goes down TEST AL,=0X04 JNZ __CE MOV AX,STATBUF ; Get controller status AND AL,=0X60 ; Mask irrelevant bits CMP AL,=0X40 ; Was operation successful ? POP ES POP DI ; Recover destination register RET DISKFLS: XOR AL,AL RET ; ; ±.²Íàé÷ÿMOV AX,DS MOV DX,ES MOV DS,DX MOV ES,AX MVWRDS: SHR CX,=1 ; Convert byte count to words REP MOVS WORD ; Transfer from/to buffer JNC __R ; Odd number of bytes ? MOVS BYTE ; Yes, catch last byte __R: MOV SI,BX ; Recover critical registers POP DI ; Pop destination register POP DS MOV AL,WRFLAG ; Set dirty bit if write OR DIRTYBUF,AL XOR AL,AL ; Reset clock timeout MOV CLKCHK,AL MOV DRVRBUSY,AL RET SETDMA: OUT DMAMODE,AL ; Setup read/write mode CALL DELAY ; Couldn't hurt XOR AL,AL ; Transfer at start of buffer OUT DMAADDR,AL ; Setup low part of address s ; APAGE: MOV SI,&APGEXEC ; Get jump table for page code APLXEC: XOR BX,BX ; Set minimum and default to 0 PUSH SI ; Save jump table address CALL GET1PRM ; Get operation parameter POP SI ; Restore jump table address CMP CL,=02 ; Is operation greater than 2? JBE __C XOR CX,CX ; Yes, use default __C: MOV BX,CX ; Transfer to appropriate code ADD BX,BX ; Convert to table index JMPI [BX+SI] ; Transfer to appropriate code ; ; ; +------------------------------------+ ; | TERMINAL ESCAPE SEQUENCE FUNCTIONS | ; +------------------------------------+ ; ; Set cursor X-Y address. ; SETXY: MOV NXTSEQ,&SETROW ; next char should be the row RET ; done ; SETROW: MOV CH,=NMBROWS ; get number of valid rows CALL CKBIASA ; remove ASCII bias JC _X2 ; if invalid, exit MOV TMPROW,CL ; store in temp variable MOV NXTSEQ,&SETCOL ; next char should be the column _X2: RET ; done ; SETCOL: MOV CH,=NMBCOLS ; get number of valid columns CALL CKBIASA ; remove ASCII bias JC _X2 ; if invalid, exit MOV DH,CL ; move to reg MOV DL,TMPROW ; get temp stored row JMP FCKWP ; check forward movement and exit ; ; Set attribute directly ; ATTDIR: MOV NXTSEQ,&ATTSET ; Set attribute directly RET ATTSET: MOV CURATTR,CL ; Yes, ... we mean DIRECTLY RET ; ; Set alternate font ; SETFONT: MOV NXTSEQ,&FONTCHK ; Set font from RAM RET FONTCHK: CMP CL,=A1 ; Is this an ASCII "1"? JNE __X MOV FONT,=ALTFONT ; Yes, set alternate font __X: RET ; ; Set display colors. ; BEGCOLOR: ; set colors attribute MOV NXTSEQ,&SETCOLOR RET ; SETCOLOR: MOV CH,=8 ; set upper limit CALL CKBIAS0 JC __X ; if invalid, continue MOV AL,CL ; move to reg MOV CL,=5 ; get shift factor SHL AL,CL ; move bits AND CURATTR,=~0XE0 ; strip old attributes OR CURATTR,AL ; add new ones __X: RET ; done ; ; Begin reverse video fields. ; BEGRV: OR CURATTR,=0X10 ; set attribute bit RET ; done ; ; End reverse video fields. ; ENDRV: AND CURATTR,=~0X10 ; clear attribute bit RET ; done ; ; Begin blinking fields. ; BEGBLINK: OR CURATTR,=0X08 ; set attribute bit RET ; done ; ; Begin blank fields. ; BEGBLANK: AND CURATTR,=~0XE0 ; set secret color code RET ; done ; ; End blink/blank fields. ; ENDBB: AND CURATTR,=~0X08 ; clear attribute bit OR CURATTR,=0X80 ; set display GR attribute RET ; done ; ; Begin underline fields. ; BEGUND: OR CURATTR,=0X01 ; set attribute bit RET ; ; End underline fields. ; ENDUND: AND CURATTR,=~0X01 ; clear attribute bit RET ; ; Set cursor attribute. ; SETCSRA: MOV NXTSEQ,&SETCSR1 ; set code expected next RET ; and exit ; SETCSR1: MOV CH,=5 ; get upper limit on code CALL CKBIAS0 ; check ASCII bias JC __X ; if invalid, continue AND FLAGS,=~CSRFL ; clear cursor display flag DEC CL ; code = 0? JC __X ; if so, continue OR FLAGS,=CSRFL ; set cursor display flag MOV BL,CL ; move to reg ADD BL,BL ; times 2 ADD BL,CL ; times 3 XOR BH,BH ; make double length ADD BX,&CCHRTBL ; add table base MOV AX,&CCHRCMD ; point at command table too MOV CX,=3 ; get loop count __LP: MOV AL,[BX] ; get first parm XCHG AX,BX MOV [BX],AL ; substitute XCHG AX,BX INC BX ; bump table pointer ADD AX,=2 ; and command table pointer LOOP __LP ; continue for the count __X: RET ; all done ; ; ; Check ASCII BIAS. Limit in CH reg, Base is ASCII SPACE. ; CKBIASA: SUB CL,=ASP ; remove bias, check lower limit JC _BX ; if invalid, exit CKBCOM: CMP CL,CH ; check upper limit CMC ; invert logic _BX: RET :ûSCRAPCý3DataýÎCodeýWAITýSIGNALüTABSIZüCURSORüSLFLAGüSCREENü³CSRCHKüÀCSRENAúÿ€! øa!ú:  øiß ­n%Qý]Øù=*TYCjk^_qlm.[(ox]µö¿Ýãéïõ Þ­¡ fHCABDJKmMh>k'93-a[��ÒhLlhÞïïöæWµ©¡B@N@R@@@@î@E@oBFB@GBP@JBÿ@ÿ@KB@!@Š@IB@@ B@@0B€@°B pB@@@@@@@@LB@@@Š!ŠŠ.ŠúVWQ»ø`èø Yè »ø`èø  ÿ_^ÃüŒØŽÀöø`uQ»`Éè rè Ùè ,€`YÆ`€&`ï»`ìè V‹`¡`Ç` …Àu1€>`ÿ u.€ù s)Q±~è #Yé ¿`:ˆÈ¹ ò®u » )ËÛÿ—`Dè #ÃÿÐëˆ`è t»`üè è {»`è úÆ`ÿè ¦‰`è VÀ>`tþ`uÆ`ö`€t €``ìè ÆÃÇ`ø`ÅÃÆø`è !»`üè °è (»`è §é ²ÿ²ë €>`uŠ` Ã0öëtþÎy ö`tÒu0ö€þPr¶OþÊy ö`t0Ò:` r:` vŠ` ö`tè ߨ u½ÃþÆ€þPr)0ö€>`u ö`@tè š¶OÃþÂ:` v ö`tŠ` ö`tè  ¨ uÂÃþÊþ` €>` rÆ` è ®R¶ Save current position XOR DX,DX ; Set minimum parameter __C: CMP SI,ASCBP ; Are there any parameters left? JE __X MOV BX,DX ; Make default parameter 0 CALL ASCTOBIN ; Get parameter value CALLI ASCADR ; Call handler routine JMP __C ; Go get next parameter __X: POP DX ; Recover cursor position RET ; ; ANSII Set attribute ; AATTR: MOV CURATTR,=DEFATTR ; Set attribute to green MOV AX,&AATRHAN ; Get address of attr handler JMP ADISP ; Go handle attributes AATRHAN: TEST CX,=0XFFE8 ; Is this a valid parameter ? JNZ __C TEST CL,=0X10 ; Yes, is the color bit set ? JNZ __CLR MOV BX,CX ; No, assemble special attrib. MOV  ; all done, exit ; ; Check ASCII BIAS. Limit in CH reg, Base is ASCII 0. ; CKBIAS0: SUB CL,='0' ; remove bias, check lower limit JC _BX ; if under, exit JMPS CKBCOM ; join common code ; ; Clear screen and leave cursor in original location ; CUPSCR1: PUSH DX ; Save original coordinates CALL CUPSCR ; Go clear screen POP DX ; Restore original coordinates RET ; ; ; Clear unprotected screen. ; CUPSCR: MOV TOPROW,=0 ; reset top row CALL PRAMOUT ; send PRAM values XOR DX,DX ; reset row/column register MOV ROWCOL,DX ; and storage location CALL PNTCHAR ; point cursor at screen memory MOV AL,=NMBROWS ; get number of rows MOV CL,=NMBCOLS ; get column size MUL CL ; calc screen positions DEC AX ; adjust for DC variable MOV FIGSP2,AL MOV FIGSP3,AH ; set DC variable MOV BX,&FIGSCMD ; get figs command addr CALL GDCOUT ; and send it MOV CHAR,=ASP MOV BX,&WDATCMD CALL GDCOUT CALL PNTATTR ; point to attribute memory MOV BX,&FIGSCMD CALL GDCOUT AND CURATTR,=0XE0 ; reset non-color attributes MOV BX,&WATTCMD JMP GDCOUT ; send write data command ; ; Clear entire line and leave cursor in original location ; CUPEOL2: PUSH DX ; Save original cursor location XOR DH,DH ; Go to beginning of line CALL CUPEOL ; Clear line POP DX ; Restore original cursor RET ; ; Clear from beginning of line to cursor position, inclusive ; CUPEOL1: PUSH DX ; Save current cursor position MOV AL,DH ; Get # of chars - 1 XOR AH,AH XOR DH,DH ; Start at left margin CALL CLRCHR ; Clear the characters POP DX ; Restore cursor position RET ; ; Clear unprotected to end of line. ; CUPEOL: MOV AX,=NMBCOLS ; get number of columns SUB AL,DH ; calc remaining columns DEC AL ; adjust for DC write CLRCHR: MOV FIGSP2,AL MOV FIGSP3,AH ; set figs parameters CALL PNTCHAR ; point to char memory MOV BX,&FIGSCMD CALL GDCOUT ; send figs command MOV CHAR,=ASP MOV BX,&WDATCMD CALL GDCOUT ; write data and exit CALL PNTATTR ; point to attribute memory MOV BX,&FIGSCMD CALL GDCOUT ; send figs command MOV BX,&WATTCMD JMP GDCOUT ; ; Clear from beginning of screen to current cursor position ; CUPEOP1: CALL CUPEOL1 ; Clear begin line to cursor PUSH DX ; Save current cursor position __C: DEC DL ; Move to prior line JS __X ; Are we off the display ? CALL CUPEOL2 ; No, clear entire line JMP __C ; Loop until done  __X: POP DX ; Restore cursor position RET ; ; ; Clear unprotected to end of page. ; CUPEOP: PUSH DX ; save current row/col __1: CALL CUPEOL ; clear current row to end of line XOR DH,DH ; force first column INC DL ; select next row CMP DL,=NMBROWS ; test against max rows JB __1 ; if still on screen POP DX ; restore row/col RET ; and done ; ; DELCHAR: RET ; ; INSCHAR: RET ; ; ; +----------------------+ ; | STATUS LINE ROUTINES | ; +----------------------+ ; ; Initialize the status line. ; SLINIT: RET ; all done ; ; ; +----------------------------------+ ; | SCREEN DRIVER COMMON SUBROUTINES | ; +----------------------------------+ ; ; Point cursor at current DX specified row/column. ; PNTCHAR: CALL SCRADDR ; calc screen address MOV CSRLOW,AL MOV CSRHI,AH ; load command variables MOV BX,&CSRCMD JMP GDCOUT ; send command and exit ; ; Point cursor at current DX specified attribute field. ; PNTATTR: CALL SCRADDR ; calc screen address ADD AX,=ATTROFF MOV CSRLOW,AL MOV CSRHI,AH MOV BX,&CSRCMD JMP GDCOUT ; ; Return the current attribute byte. ; RETATTR: CALL PNTATTR ; point to attribute memory CALL GDCFE ; wait for fifo to empty MOV BX,&RDATCMD ; load read command addr CALL GDCOUT ; and issue it JMP GDCIN ; read returned value and exit ; ; Calc physical screen address from row/column. ; On entry: DL=row, DH=column. ; On exit: AX=screen address. ; SCRADDR: MOV CL,DL ; mov current row to reg ADD CL,TOPROW ; add in the top row base CMP CL,=NMBROWS ; check for max row wrap JB __C1 ; if no wrap, continue SUB CL,=NMBROWS ; wrap screen memory __C1: MOV AL,=NMBCOLS ; get constant MUL CL ; calc beginning row addr MOV CL,DH ; get current column XOR CH,CH ; make double length ADD AX,CX ; calc distance into row RET ; all done ; ; ; PRAM output subroutine. This routine calculates the PRAM values ; based on the current top row (TOPROW) and number of user rows (NMBROW). ; PRAMOUT: MOV AL,TOPROW ; get current top row MOV CL,=NMBCOLS ; get number of columns MUL CL ; calc starting address MOV PRAM1,AL MOV PRAM2,AH ; set start addr, ptn 1 MOV AL,=NMBROWS ; get max row number SUB AL,TOPROW ; calc rows to ent of ptn MOV CL,=19 MUL CL ; times line size MOV CL,=4 SHL AX,CL ; adjust field MOV PRAM3,AL MOV PRAM4,AH ; set length, ptn 1 XOR AX,AX MOV PRAM5,AL MOV PRAM6,AH ; set start addr, ptn 2 MOV AL,TOPROW ; get rows to end of ptn MOV CL,=19 MUL CL ; times line size MOV CL,=4 SHL AX,CL ; adjust field MOV PRAM7,AL MOV PRAM8,AH ; set l;ength, ptn 2 CALL GDCFE ; wait for fifo empty MOV BX,&PRAMCMD ; get parameter ram command CALL GDCOUT ; send to device JMP GDCFE ; wait fifo empty and exit ; ; ; GDC command output subroutine. ; On entry: [BX]=length of command, [BX]+1=Commands/Parameters word list. ; GDCOUT: PUSHF ; save flags CLI ; and disable interrupts PUSH DX ; save regs MOV AH,[BX] ; load command length INC BX ; bump pointer XOR DH,DH ; clear reg __LOOP: TEST AH,AH ; any bytes left? JZ __X ; if not, exit loop ; __C1: IN AL,CRT_STAT ; read GDC status TEST AL,=FF ; fifo full? JNZ __C1 ; if so, wait MOV DL,1[BX] ; load port (command or parm) MOV AL,0[BX] ; load value OUT DX,AL ; and send it INC BX INC BX DEC AH ; count words down JMPS __LOOP ; and continue loop ; __X: POP DX POPF ; restore interrupt status RET ; else, exit ; ; ; Wait for GDC fifo empty out. ; GDCFE: IN AL,CRT_STAT ; read GDC status TEST AL,=FE ; fifo empty? JZ GDCFE ; if so, continue loop RET ; else, exit ; ; ; Read a GDC returned parameter. ; GDCIN: IN AL,CRT_STAT ; read status TEST AL,=DR ; data ready? JZ GDCIN ; if not, loop IN AL,CRT_PARM ; read the dèè¤éICopyright 1984, Software 2000, Inc. (Version 24-May-84) U‹ì‹^Û.‹‡;]ÃúŒR‰&TŒØŽÐ¼¸)û¿: ¹¸)+Ïã*Àªâý+íè3@‹Ü‹GúŽR‹&Tû˱VWU‹ìÿv ÿvèEƒÄ¸œPèÖ9ƒÄ¸²PèÌ9ƒÄèëèýèè èàèèhèèÜ(è¢)èü+ÀPèÎ/ƒÄ]_^ÃVWU‹ìƒìƒ~} ¸VPè@/ƒÄ+À¢ž˜¢Š˜¢bÿNtSƒF ‹v ‹<€=-u‹~ ‹@P¸žPèY>ƒÄëÚ€>bu‹~ ÿ5¸bPè«>ëæ€>Šu ‹~ ÿ5¸Šëé¸VPèÝ.ƒÄ먀>bu ¸VPèÊ.ƒÄèG+£D ¸bPèn+ƒÄ£F À}¡D £F ¸bPèÊ+ƒÄ£J À}è3+£J ¸ŠPè@+ƒÄ£H À}¡F £H ¸ŠPèœ+ƒÄ‰Fþ À}¡J ‰Fþ¸ŠPèä+ƒÄ‹ø‰~ü€=u¸bPèÐ+ƒÄ‹ø‰~ü€=u ¸VPè6.ƒÄ¸ŠPè ,ƒÄ‹ø‰~ú€=u¸bPèù+ƒÄ‹ø‰~ú€=uÇFú×ÿvúÿvüÿvþÿ6H èö+ƒÄP¸ŠPèŸ=ƒÄ¸bPèg+ƒÄ‰Fü¸ÛPÿvüÿ6J ÿ6F èÉ+ƒÄP¸bPèr=ƒÄ¸ßPÿvüÿ6J ÿ6F è©+ƒÄP¸vPèR=ƒÄ‹å]_^ÃVWU‹ìƒì ÇR ÿ6F èà)ƒÄ¸ãP¸bPè,ƒÄPèù.ƒÄ£< ¾¦ƒ>< t3ÿ6< ¸„P¸¦Pèˆ!ƒÄ Àu ÿ6< èÜ-ƒÄ鸦P¸åPès7ƒÄë¸ëPèg7ƒÄ¸¦Pè÷5ƒÄ€<ué芘PèçƒÄ ÀtFëPèýƒÄ Àt鲡R ÿR ÷.b ‹ø‰FþŠ˜PèÙƒÄ Àu Š˜P褃Ä Àu‹ÞFŠˆFô‹ßGŠFôˆëÒÆÿvþèT)ƒÄ‰Fü À}¡F ‰Füÿvþè±)ƒÄ‰Fú À}¡J ‰Fúÿvþèú)ƒÄ‰FøÿvþèI*ƒÄ‰Fö‹^ö€?tÿvöë¸îPÿvøÿvúÿvüèE*ƒÄPÿvþèï;ƒÄŠ˜Pè:ƒÄ Àuéÿé¿þ‹å]_^ÃVWU‹ì�fƒ~,t ƒ~t ƒ~ ¸ë+À]_^ÃVWU‹ì�fƒ~tƒ~;u¸ë+À]_^ÃVWU‹ìÿvè+ƒÄ‰F¾ž€<t‹þFŠ˜PèƒÄ;Fué¸ë+À]_^ÃVWU‹ìƒ~A|ƒ~Z‹F ë‹F]_^ÃVWU‹ìƒìƒ>R u ¸ðPèj+ƒÄ¸PPèŠ4ƒÄ‹ð Àu ¸ PèP+ƒÄ‰6€¸Pèl4ƒÄ‹ð Àu ¸*Pè2+ƒÄ‰6‚ÇT ¾P€ €Vè<$ƒÄ‹>‚‰÷.‹ø>€€M¸rPè'ÿƒÄ Àu*¸mPèÿƒÄ Àu¸sPè ÿƒÄ Àu¸uPèýþƒÄ Àt:¸cPèïþƒÄ ÀtÇFþYëÇFþ^¸cPÿvþè6,ƒÄ£B Àu¸ePè—*ƒÄëÇB ÇN ÇL €‹å]_^ÃVWU‹ìƒì#¸zPè±4ƒÄ+À‰Fè‰Fê¸rPèƒþƒÄ Àtè˜)+ÀPès)ƒÄ¸‚Pÿ6B è˜4ƒÄƒ.L ÇFþ�~þ}‹~þÿFþÑç>‚ÇÿÿëçÇV ÇFúëÿFú‹Fú;R |éw‹Fú÷.b PèŸ&ƒÄPèD&ƒÄ¸ªP‹Fú÷.b Pèt(ƒÄPèV+ƒÄ£: Àu‹Fú÷.b P¸­Pèò3ƒÄ¸²Pè¢)ƒÄè]èj‰Fø‹Fø%ð=ðt‹Fø%@‰Fö�føà‹Føé̃~îÿt‹Fî÷.‹ø>€€M‹FöÿNö Àué¹è ëîƒ~îÿt‹Fî÷.‹ø>€€M‹FöÿNö Àué�è(ëî�FßPèwƒÄ�FßPèó8ƒÄ‹ø¸žPèç8ƒÄÇ=|éa�FßP¸žPè98é=èºëèæ‰Fò‹~òÑç>‚‹‰Fðé7èωFôèɉFò‹~òÑç>‚‹‰Fîé�FßPèƒÄ¸cPèÌüƒÄ Àt¸rPè¾üƒÄ Àu�FßP¸ÉPèÈ2ƒÄ¸rPè¢üƒÄ ÀuéÕ¸Pè‘'ƒÄ�FßP¸ÐPÿ6B è²2ƒÄÇFìé±èI‰FôèC‰Fò�FßP葃ĸÚP�FßPè§7ƒÄ ÀuQÇFêƒ~òu+ÀPè$øƒÄ;Fôt ¸‚Pè(ƒÄ�FßPèé ƒÄ‰Fþ=ÿÿuéЋFþ÷.‹ø>€öEuéºé8¸áP�FßPèD7ƒÄ ÀuPÇFè�FßPè¤ ƒÄ‰Fþ=ÿÿué‹‹Fþ÷.‹ø>€öEtxƒ~òuÿvþèσÄ;Fôué⸂Pèt'ƒÄëU�FßPèH7ƒÄH‰Fü À~C‹ý~ü€}ß_u8‹ý~üÆEßA�FßPè3 ƒÄ‰Fþ=ÿÿt‹Fþ÷.‹ø>€öEt ‹ý~üþEßëÑ�FßPè ƒÄ‰Fþ=ÿÿt(‹Fþ÷.‹ø>€öEt%�FßP¸æPè01ƒÄÇFþÿÿë�FßPèúƒÄ‰Fþ=ÿÿƒ~þÿu醋Fþ÷.‹ø>€€M‹Fþ÷.‹ø>€‹Fô‰E ‹~òÑç>‚‹‰Fò=ÿÿtA‹Fþ÷.‹ø>€‹Fò‰E ‹Fò÷.‹ø>€öEt)‹Fþ÷.‹ø>€ÿvò蠃ĉE ë�FßP¸úPèŠ0ƒÄ¸rPèdúƒÄ Àué—ƒ~ìu.¸Pÿ6B è|0ƒÄÿL +ÀPè<%ƒÄ¸Pÿ6B èa0ƒÄÇFì �FßPèÕ5ƒÄ@Fìƒ~ìU�FßP¸Pÿ6B è60ƒÄé:¸Pÿ6B è%0ƒÄÿL +ÀPèå$ƒÄ�FßP¸!Pÿ6B è0ƒÄ�FßPè5ƒÄ@‰Fìéü蔉Fô莉Fò�FßPè܃Ä�FßPèiƒÄ‰Fþ=ÿÿu�FßP臃ĉFþ=ÿÿué¿‹Fþ÷.‹ø>€‹Fô@%þÿ‰Eƒ~ôt‹Fþ÷.‹ø>€€M�~ò}#‹~òÑç>‚‹Fþ‰‹Fò;V ép‹Fò£V ég¸%Pèù$ƒÄéZèò‰Fôèì‰Fòƒ~ôu ƒ~òué¤ÇFÝ?‹~Ý€ €ÿvÝ踃Ä=ÿÿt ¸HPèþ.ƒÄëÿvÝè΃ģX =ÿÿtn¡X ÷.‹ø>€€M¡X ÷.‹ð6€‹~òÑç>‚‹‰Fò‰D ¡X ÷.‹ø>€‹Fô‰E ‹Fò÷.‹ø>€öEt¡X ÷.‹ø>€ÿvò胃ĉE ƒ~êtƒ~èu ¸‚Pè!$ƒÄë+À‰Fè‰FêÇFìÇFþëÿFþ‹Fþ;V ~éù‹~þÑç>‚‹‰Fò=ÿÿtÞ‹Fò÷.‹ð6€‹Fò÷.‹ø>€‹ED ¸rPèé÷ƒÄ Àt°‹Fò÷.‹ø>€öEu�ƒ~ìu.¸_Pÿ6B èñ-ƒÄÿL +ÀPè±"ƒÄ¸aPÿ6B èÖ-ƒÄÇFì ‹Fò÷.€‰FÝÿvÝè=3ƒÄ@Fìƒ~ìUÿvݸnPÿ6B èŸ-ƒÄé4ÿ¸rPÿ6B èŽ-ƒÄÿL +ÀPèN"ƒÄÿvݸtPÿ6B èp-ƒÄÿvÝèê2ƒÄ@‰Fìéøþ¸rPè#÷ƒÄ Àt¸xPÿ6B èD-ƒÄƒ.L ÇFþ�~þ}‹~þÿFþÑç>‚ÇÿÿëçÇV ë ÿvø¸{Pèõ,ƒÄ뻹CC;àúuãÿg�~øÿtéðøÿ6: è&#ƒÄézø¸ŽPèÁ,ƒÄ‹å]_^ÃVWU‹ìƒì+À‰Fö‰FøÇFþëÿFþƒ~þ}H‹Fþ±Óà‰Fì‹^þ±Óã‹vþ±Óæ‹~þ±Óç+À‹Ð‰…<‰•>‰„8‰”:‰‡4‰—6‹~쉅0‰•2미�PèôƒÄ‰Fúƒ~úÿt‹Fú÷.‹ø>€öEuÇFúÿÿƒ~úÿt‹Fú‰Fø¸hPèöõƒÄ Àu¸bPèèõƒÄ Àu¸ë+À‰FòÇFô¸hPèËõƒÄ ÀuA¸8Pè½õƒÄ Àu3ÇFþëÿFþ‹Fþ;T } ‹Fþ;Fútì‹Fþ÷.‹ø>€öEtÙÇFôƒ~òt ƒ~ôt¿ë+ÿ‰>Z ‹Ç™‰Fî‰Vðƒ~úÿu鹋Fú÷.‹ø>€ÇE‹Fú÷.‹ø>€¡Z ‰E ‹Fú÷.‹ø>€‹E +ÒFîVðƒ>X ué‰ÿ6X è+ ƒÄ‰Fþ¡X ÷.‹ø>€‹E ‰Fü‹Fü÷.‹ø>€öEuÿvüèù ƒÄFþ‹FüëÌ‹Fü;Fúu!ƒ~þt1‹Fú÷.‹ø>€ƒE ƒFîƒVðë¸•ë ƒ>X t¸¹Pè¯*ƒÄÇX ƒ~ôuéXÇFþëÿFþ‹Fþ;T }k‹Fþ÷.‹ø>€ŠE˜%=uÛ‹Fþ÷.‹ø>€ƒ}uÈ‹Fþ÷.‹ø>€‹Fî‰E ‹Fþ÷.‹ø>€ÇE‹Fþ÷.‹ø>€‹E +ÒFîVðë‰ÿvðÿvîèƒÄ‹ø‹Ç™‰Fî‰Vð£@‰BÇFþëÿFþ‹Fþ;T }k‹Fþ÷.‹ø>€ŠE˜%=uÛ‹Fþ÷.‹ø>€ƒ}uÈ‹Fþ÷.‹ø>€‹Fî‰E ‹Fþ÷.‹ø>€ÇE‹Fþ÷.‹ø>€‹E +ÒFîVðë‰ÿvðÿvîè}ƒÄ‹ø‹Ç™‰Fî‰Vð£D‰F¸dPèBóƒÄ ÀuéïÇHÇJéàÿvðÿvîè?ƒÄ‹ø‹Ç™£D‰F£@‰B¸ÜPèʃĉFúƒ~úÿt‹Fú÷.‹ø>€öEuÇFúÿÿƒ~úÿtu‹Fú÷.‹ø>€ÇE‹Fú÷.‹ø>€ÇE ‹Fú÷.‹ø>€‹E +Ò‰Fî‰Vðÿvðÿvî賃ċø‹Ç™£d‰f‹Fú÷.‹ø>€öEt¡d‹f£`‰b¸âPè$ƒÄ‰Fúƒ~úÿt‹Fú÷.‹ø>€öEuÇFúÿÿƒ~úÿtu‹Fú÷.‹ø>€ÇE‹Fú÷.‹ø>€ÇE ‹Fú÷.‹ø>€‹E +Ò‰Fî‰Vðÿvðÿvîè ƒÄ‹ø‹Ç™£t‰v‹Fú÷.‹ø>€öEt¡t‹v£p‰rƒ~òt¿ë+ÿ‹Ç™‰Fî‰VðÇFþëÿFþ‹Fþ;T }x‹Fþ÷.‹ø>€ŠE˜%=uÛ‹Fþ÷.‹ø>€ƒ}uȃ~öu‹Fþ‰Fö‹Fþ÷.‹ø>€‹Fî‰E ‹Fþ÷.‹ø>€ÇE‹Fþ÷.‹ø>€‹E +ÒFîVðé|ÿÿvðÿvîè3ƒÄ‹ø‹Ç™‰Fî‰Vð£P‰RÇFþëÿFþ‹Fþ;T }k‹Fþ÷.‹ø>€ŠE˜%=uÛ‹Fþ÷.‹ø>€ƒ}uÈ‹Fþ÷.‹ø>€‹Fî‰E ‹Fþ÷.‹ø>€ÇE‹Fþ÷.‹ø>€‹E +ÒFîVðë‰ÿvðÿvî藃ċø‹Ç™‰Fî‰Vð£T‰V¸dPè\ðƒÄ Àt ÇXÇZÇ\ Ç^ ÇFúÇFþëÿFþƒ~þ}/‹~þ±Óç¡\ ‹^ ‰…<‰•>‹~þ±Óç‹…0‹•2\ ^ ëÈÇFþëÿFþ‹Fþ;T }z‹Fþ÷.‹ø>€öEtá‹Fþ÷.‹ø>€‹E ‰Fú‹Fú÷.‹ø>€öEu»‹Fþ÷.‹ø>€ÿvú蹃ÄE ‹Fú÷.‹ø>€‹E ‰Fú‹Fþ÷.‹ø>€‹Fú‰E ë¬ÇFþëÿFþ‹Fþ;T |逋Fþ÷.‹ø>€öEt$‹Fþ÷.‹ð6€‹Fþ÷.‹ø>€+À‰E‰D 뺋Fþ÷.‹ø>€öEt§‹Fþ÷.‹ø>€‹E ‰Fú‹Fþ÷.‹ð6€‹Fú÷.‹ø>€‹E D éqÿ¸èP薃ĉFþ=ÿÿt\‹Fþ÷.‹ø>€öEuI‹Fþ÷.‹ø>€¡D‰E ‹Fþ÷.‹ø>€ÇE ‹Fþ÷.‹ø>€‹Fø‰E ‹Fþ÷.‹ø>€€M¸ðPè(ƒÄ‰Fþ=ÿÿto‹Fþ÷.‹ø>€öEu\‹Fþ÷.‹ð6€ƒ~ôt¿ë¿±Óç‹…4‰D ‹Fþ÷.‹ø>€ÇE ‹Fþ÷.‹ø>€‹Fö‰E ‹Fþ÷.‹ø>€€M‹å]_^ÃVWU‹ì‹F‹V ƒÒ‹Ø‹Ê�ãðÿ�áÿ‹Ã]_^ÃVWU‹ì¡\ ‹øWè°"ƒÄ‹ð£` Àu ¸øPèsƒÄ‹ÇO Àt‹ÞFÆëñ]_^ÃVWU‹ìƒì¸Pè”#ƒÄ¸mPèníƒÄ Àtèƒ+ÀPè^ƒÄ¸$Pÿ6B èƒ#ƒÄƒ.L ƒ>X t7‹>` >Z Æé‹>Z G>` ‹6Z ƒÆÿ6X è>ƒÄ+Ɖ‹>Z ƒÇ>` Æ�ÇFþ�~þ}‹~þÿFþÑç>‚ÇÿÿëçÇV ¸9P覃ĉFì¸APè<™ƒÄ‰FêÇFüëÿFü‹Fü;R |ép‹Fü÷.b Pè2ƒÄPè׃ĸIP‹Fü÷.b PèƒÄPèéƒÄ£: Àu‹Fü÷.b P¸LPè…"ƒÄ¸QPè5ƒÄèðèý‰Fú‹Fú%ð=ðt‹Fú%@‰Fø�fúà‹FúéŃ~îÿt‹Fîë ‹Fúë ‹Fìë‹Fê‰Fôë =@tó=€té‹FøÿNø Àué¢è£‰Fö‹Fúëÿvðè ƒÄFò@)FöÿvôèýƒÄFöë =@tí=€tØÿvðèƒÄ‹ð‹~òÿFòþ>` ‹Föˆ뢃~îÿt‹Fîë ‹Fúë ‹Fìë‹Fê‰Fôë =`tó= té‹FøÿNø ÀuéèO‰Fö‹Fúëÿvð舃ÄFò@@)FöÿvôèwƒÄFöë =`tí= t×ÿvð莃ċø~ò>` ‹Fö‰ƒFòë¢èÍëèù‰Fô‹~ôÑç>‚‹‰Fî‹Fî÷.‹ø>€öEté�ÇFîÿÿé•èljFöèÁ‰Fô‹~ôÑç>‚‹‰Fð‹Fö‰Fòér�FáPèøƒÄ¸cPè¾êƒÄ Àt¸mPè°êƒÄ Àu�FáP¸hPèº ƒÄ¸mPè”êƒÄ Àué-¸P胃Ä�FáP¸oPÿ6B è¤ ƒÄÿL é è<‰Föè6‰Fô�FáP脃Äéñè#‰Föè‰Fô�FáPèkƒÄ�FáPèøƒÄ‰Fþ=ÿÿu鯋Fþ÷.‹ø>€‹Fö@%þÿ‰E‹~ôÑç>‚‹Fþ‰‹Fô;V ~‹Fô£V ¸xPèèéƒÄ Àué�‹Fþ÷.‹ø>€öEték�FáP¸zéG蓉Föè�‰FôÇFþëÿFþ‹Fþ;V ~éù‹~þÑç>‚‹‰Fô=ÿÿtÞ‹Fô÷.‹ø>€öEué­¸mPèléƒÄ Àuéœ+ÀPè\ƒÄ‹Fô÷.€P¸�Pÿ6B èuƒÄ‹Fô÷.‹ø>€‹Eë¸–ë ¸šë¸žë¸¢Pÿ6B èFƒÄëH=wÑà‹Øÿ§>ÿvôèƒÄP¸¦Pÿ6B èƒÄ‹Fô÷.‹ø>€ÿu¸«Pÿ6B èƒÄÿL ‹Fô÷.‹ð6€‹Fô÷.‹ø>€‹ED éøþÇFþ�~þ}‹~þÿFþÑç>‚ÇÿÿëçÇV ë ÿvú¸´Pè�ƒÄë»D¹CC;àúuãÿg�~úÿté÷ûÿ6: èÀƒÄé�ûÇFþëÿFþ‹Fþ;T }B‹Fþ÷.‹ø>€öEuá‹Fþ÷.‹ð6€‹Fþ÷.‹ø>€‹E ÷&‹ø>€‹E‰D벸ÇPèƒÄ‹å]_^ÃVWU‹ìƒ~ÿt ‹F;T |+Àë‹F÷.€‹ð‹D D ]_^ÃVWU‹ìƒìƒ~ÿt ‹F;T |+Àë8‹F÷.€‹ð‹|±Óç‹…<‹•>‰Fü‰Vþ‹| | ‹Ç+ÒFüVþ‹Ø‹Ê‹Ã‹å]_^ÃVWU‹ìƒìÿ6: ‹: ÿW ƒÄ‰Fþ=ÿÿu ¸ÉPè ƒÄ‹Fþ‹å]_^ÃVWU‹ìƒìÿ6: ‹: ÿW ƒÄ‰Fü=ÿÿu ¸ØPèÙƒÄÿ6: ‹: ÿW ƒÄ‰Fþ=ÿÿu ¸çP蹃ċFþ±Óà Fü‹å]_^ÃVWU‹ìƒìÿ6: ‹: ÿW ƒÄ‰Fþ=ÿÿu ¸öPè�ƒÄ‹~ÿF‹Fþˆ˜ ÀuЋå]_^ÃVWU‹ìƒì¸lPèƒæƒÄ Àtéeÿ6H 訃ĸP¸ŠPè߃ÄPèÁƒÄ£@ Àu ¸Pè"ƒÄ¸ŠP¸!PèZƒÄ¸hPè4æƒÄ Àtéè¿€¾ëFƒþ|éŋޱÓ㋇6 ‡4tçVè÷ƒÄ‹Þ±Ó㋇0‹—2‰Fø‰Vú‹Fø‹Vú¹ÑêÑØâú‹Ø‹Ê‹Ã‰FþÿvþèëƒÄ+ÀPèâƒÄ‹Þ±Ó㋇4‹—6‰Fø‰Vú‹Fø‹Vú¹ÑêÑØâú‹Ø‹Ê‹Ã‰Fþÿvþ譃ċޱÓ㋇8‹—:‰Fø‰Vú‹Fø‹Vú¹ÑêÑØâú‹Ø‹Ê‹Ã‰FþÿvþèxƒÄƒï é2ÿ‹ÇO Àt +ÀPè9ƒÄëî¡` ‰Fü¡\ ‹ø‹ÇO Àt‹^üÿFüŠ˜PèƒÄëçÿ6@ 苃ċå]_^ÃVWU‹ìÿ6@ ÿv‹@ ÿWƒÄ=ÿÿu ¸;PèƒÄ]_^ÃVWU‹ìÿ6@ ‹F%ÿP‹@ ÿWƒÄ=ÿÿu ¸SP蕃Äÿ6@ ‹F±Óø%ÿP‹@ ÿWƒÄ=ÿÿu ¸kPèmƒÄ]_^ÃVWU‹ì觃>B t ÿ6B èîƒÄÿ6D è¦ ƒÄ]_^ÃVWU‹ì¸þP¸PèeƒÄ Àt¸ÿP¸PèSƒÄ=u ¸ƒPèƒÄ]_^ÃVWU‹ìƒì ÿ6F èW ƒÄ¸”P¸vP莃ÄPèpƒÄ£> Àuéõ¸vP¸–PèƒÄdžÿ6> ¸„P¸¦PèîƒÄ Àu龸¦£.£,¸¦P¸¶PèÚƒÄèÕ ÀtɸºPè‡ƒÄ Àu釋>,€=t6‹>,€="t-ƒ>†uè³ëâ‹vôÿFô‹Æ+ÒFöVø‹Ø‹Ê‹û>` 蔈ëÁ¡,£.‹>,€=t ÿ,ÿ.ë ¸¼P+ÀP軃ă>†u¸ÈP¸ÿÿP覃ĸÒPèüƒÄéaÿ�FúPèƒÄ¸ÔPèåƒÄ Àt_ƒ~üu¸ÖP¸ÿÿPèmƒÄdžé,ÿ‹~ü±Óç‹Fú™;•2wr ;…0r¸ßë΋~ü±Óç‹…<‹•>‰Fö‰Vø‹Fú‰Fôdžéêþƒ>†u¸ìP¸ÿÿPè ƒÄët‹Fþëb‹vôÿFô‹Æ+ÒFöVø‹Ø‹Ê‹û>` ‹FúˆëN‹Fô+ÒFöVø‹Ø‹Ê‹û>` ‹Fúë‹Fô+ÒFöVø‹Ø‹Ê‹û>` ‹vôFF‹Fú+ƉƒFôë =wÑà‹Øÿ§‚¸öéîþÿ6> è�ƒÄ‹å]_^ÃVWU‹ìƒìÿvèìƒÄÿv誃ĸø‰FøPèºƒÄ Àu¸ú‰FøPè©ƒÄ Àte�FúPè·ƒÄ�FúPètƒÄ‹~‹Fü;E~ ‹Fü‹~‰E‹~‹Fþ;E~ ‹Fþ‹~‰E‹~øŠ˜ë‹Fú‹~ë�‹Fú‹~)ë†=+tç=-tìéyÿ‹~ƒ}u‹~÷ÿt‹~ÇE‹å]_^ÃVWU‹ìƒì ¸üPèƒÄ Àt2ÿvè#ÿƒÄ‹~‹E=}‹~ÇE¸þPèäƒÄ Àtéð¸ë3¸ PèÎƒÄ Àt2ÿvèãþƒÄ‹~ÇE¸Pè¯ƒÄ Àt黸P+ÀPè;ƒÄ髸PèŽƒÄ ÀtÿvèdÿƒÄ‹~‹÷Ø‹~‰é…�F÷Pè�ƒÄ ÀtJ�F÷PèGƒÄ‰Fõƒ~õÿu ¸P¸ÿÿëNÿvõè„øƒÄ‹~‰‹Fõ÷.ˆ‹ø>€‹E‹~‰E‹~ÇEë-ÿvèÒƒÄ Àu ÿvè ƒÄ Àu¸(P+ÀP蓃Ädž‹å]_^ÃVWU‹ì+À‹~‰E‹~‰E‹~‰]_^ÃVWU‹ì‹~ÿv ‹^ ÿW ƒÄ‹ð=ÿÿt5ƒþ t0ƒþ uÿN ~‹ßGÆ ‹Ï+N÷Áuêë˃þ |ÆÿN ~Á‹ßG‹Æˆë¸Æƒþÿu;~t¸ë+À]_^ÃVWU‹ì¡.-¦F‹ðÿv è&ƒÄ‹ø;÷|-ÿv è}ƒÄÿv èƒÄ‹ø+÷¸-PVè5ƒÄ¸7Pè[ƒÄë"¸-PVèƒÄ¸:PèDƒÄÿv ¸=Pè7ƒÄ]_^ÃVWU‹ì‹FÿN Àt¸äPÿv ÿòƒÄëæ]_^ÃVWU‹ìƒìè(‹6,Š˜Pè>ƒÄ Àu€<_ub¿‹ÇO À~ ‹^ÿFŠˆF‹ÞŠˆFÿ˜PèƒÄ ÀuÛŠFÿ˜Pè*ƒÄ ÀuÌ€~ÿ_tÆ‹^Ƌƣ,£. ÿ}¸AP¸ÿÿPèïþƒÄ¸ë+À‹å]_^ÃVWU‹ìƒì¸JPè0ƒÄ ÀtÇFûë3¸MPèƒÄ ÀtÇFûë‹>,Š˜Pè³ƒÄ ÀtÇFû ë+Àéò+À‰Fý‹ð‹>,ŠˆFÿ˜Pè‹ƒÄ ÀuŠFÿ˜PèTƒÄ Àu颋Fûé…€~ÿ0|z€~ÿ7tŠFÿ˜‹ø‹Æ±ë0€~ÿ0|b€~ÿ9\ŠFÿ˜‹ø‹Æ÷.Šë€~ÿ0|€~ÿ9ŠFÿ˜‹ø‹Æ±ÓàÇ-0ë+ŠFÿ˜Pè/ƒÄˆFÿ˜=A|€~ÿFŠFÿ˜‹ø‹Æ±ÓàÇ-7‹ðëÿFýë-=wÑà‹Øÿ§Œÿ,é7ÿ‹~‰5¡,£.ƒ~ýt¸OP¸ÿÿPè£ýƒÄ¸‹å]_^ÃVWU‹ìèW‹>,€='u2ÿ,è1‹~‰¡,£.¸`Pè̓Ä Àu ¸bP+ÀPè\ýƒÄ¸ë+À]_^ÃVWU‹ì‹>,€=\téŠÿ,‹>,Š˜Pè[ƒÄëc¾ ëz¾ ëu¾ëp¾ ëk¾ ëf‹>,Š˜PèƒÄ ÀtK+öëÿ,‹>,Š˜PèüƒÄ Àt‹,Š˜‹ø‹Æ±ÓàÇ-0‹ðëÒÿ,뻜¹CC;àúu¨ÿg ë ‹>,Š˜‹ðÿ,‹Æ]_^ÃVWU‹ìè`‹6,‹~€=t ‹þFŠ˜P诃ċȋ~ÿFŠ˜;ÁtÜ+Àë ‹Æ£,£.¸]_^ÃVWU‹ìè‹>,€=t‹>,€=;t¸ë+À]_^ÃVWU‹ì‹>,€=t‹>,€= ÿ,ëè]_^ÃVWU‹ìƒ~A|ƒ~Z~ ƒ~a| ƒ~z¸ë+À]_^ÃVWU‹ìƒ~0| ƒ~9¸ë+À]_^ÃVWU‹ìƒ~a|ƒ~z‹F- ë‹F]_^ÃVWU‹ì+ö‹>€ëFƒÇ;6T }WÿvèoƒÄ Àuè‹Æë¸ÿÿ]_^ÃVWU‹ì�>T |¸nPèƒÄ¸ÿÿë3¡T ÷.ˆ€‹ðÿvVècƒÄ+ÀˆD˜‰D‰D‰D ‰D ‰D ¡T ÿT ]_^ÃVWU‹ì¸sPèªÚƒÄ Àte¸„P踃ľëF¡T H;Æ~CV¸˜P蟃ċÆ@‹øëG;>T }Þ‹Ç÷.ˆ€P‹Æ÷.ˆ€Pè­ƒÄ À~ÙWVèƒÄëϸ�Pè]ƒÄ]_^ÃVWU‹ìƒì‹F÷.ˆ€‹ð‹F ÷.ˆ€‹øÇFþ‹FþÿNþ ÀtŠˆFý‹ÞFŠˆ‹ßGŠFýˆëà‹å]_^ÃVWU‹ì¸sPèáÙƒÄ Àu¸uPèÓÙƒÄ Àuéû¸¤PèÞƒÄèÛ+ÀP趃ĸ¹Pÿ6B èۃă.L ¾ëF;6T |éÛ‹Æ÷.ˆ‹ø>€öEtä+ÀPèyƒÄ‹Æ÷.ˆ€P¸ÐPÿ6B 蓃ċÆ÷.ˆ‹ø>€‹Eë$¸Øë¸Üë ¸àë¸äë¸èPÿ6B è`ƒÄëH=wêÑà‹Øÿ§²‹Æ÷.ˆ‹ø>€ÿu ‹Æ÷.ˆ‹ø>€ÿu ¸ìPÿ6B è$ƒÄ‹Æ÷.ˆ‹ø>€öEu¸øPÿ6B èƒÄ¸Pÿ6B èöƒÄÿL èPôéÿ¸ Pÿ6B èÞƒÄÿL ¾ëF;6T |éÇ‹Æ÷.ˆ‹ø>€öEuä+ÀPè}ƒÄ‹Æ÷.ˆ€P¸ Pÿ6B 藃ċÆ÷.ˆ‹ø>€öEt[‹Æ÷.ˆ‹ø>€‹Eë$¸ë¸ë ¸ë¸ë¸#Pÿ6B èRƒÄëH=wêÑà‹Øÿ§ºVè'ðƒÄP¸'Pÿ6B è,ƒÄë¸,Pÿ6B èƒÄ¸6Pÿ6B èƒÄÿL èhóé/ÿ]_^ÃVWU‹ì‹F;„t‹F£„P¸ P誃Ä]_^ÃVWU‹ì¸ÿÿP¸ P裃ģ„]_^ÃVWU‹ì¸ÿÿP¸P艃Ä]_^ÃVWU‹ìƒìÇFþÿÿÇFüÿÿ‹~ÿFŠˆFû ÀtI€~û:uƒ~ü|ƒ~ü‹Fü‰FþëÒ€~û0|Ñ€~û9˃~üÿu ŠFû˜-0‰Fü빊Fû˜‹ø‹Fü÷.ŠÇëç‹Fþ‹å]_^ÃVWU‹ìƒìÇFþÿÿÇFüÿÿ‹~ÿFŠ˜Pè׃ĈFû˜ Àt,€~û:uƒ~üÿt‹Fü‰FþëÏ€~ûa|΀~ûpÈŠFû˜-a‰Fü뼋Fþ‹å]_^ÃVWU‹ìƒì‹F‰Fý‹~ÿFŠˆFÿ Àt€~ÿ:uëëãÇFûˆ‹~ýÿFýŠˆFÿ Àt€~ÿ.t ‹~ûÿFûŠFÿˆëÞ‹~ûƸˆ‹å]_^ÃVWU‹ì‹~€=t ‹~ÿF€=.uí‹F]_^ÃVWU‹ìƒìÇFþœƒ~|.ƒ~ ~‹~þÿFþ‹F™÷>Š0ˆ‹~þÿFþ‹F™÷>Š‹Â0ˆƒ~ |‹~þÿFþ‹F aˆ�~þœv ‹~þÿFþÆ:‹~þÿFþ‹v ÿF Šˆ Àuì‹~€=t‹~þÆEÿ.‹~þÿFþ‹vÿFŠˆ Àu츜‹å]_^ÃVWU‹ìÿvè1ÿƒÄPÿvèÌþƒÄPÿvècþƒÄP¸ÿÿPè1ÿƒÄ]_^ÃVWU‹ì‹FÿN Àtÿ6B ÿv ‹B ÿWƒÄëã]_^ÃVWU‹ì�>L €tƒ>L ~ÿ6B ¸ P‹B ÿWƒÄÿL ]_^ÃVWU‹ì¡L ;Fè�>L €uèd]_^ÃVWU‹ì�>L €tO¸cPèÍÔƒÄ Àt)ÿ6B ¸ P‹B ÿWƒÄ¸=P¸PèUÿƒÄÿ6B ¸ ëÿ6B ¸ P‹B ÿWƒÄÇL €]_^ÃVWU‹ìƒìÿN ÇL <ÇFþëÿFþƒ~þ}ÿ6B ¸ P‹B ÿWƒÄë㸊Pÿ6N ¸8Pÿ6B èk ƒÄƒ.L ‹å]_^ÃVWU‹ìÿvè; ƒÄÿ6D èKüƒÄ¸PèSƒÄ]_^ÃVWU‹ì‹N‹V Íàë6VWU‹ì‹N‹V Íà*äë$VWU‹ì‹N‹V Íà‹ÃëVWU‹ì‹N‹V ÍàŒÂ‹Ã]_^ÃVWU‹ì¾°�þ¸!sƒ<tVèƒÄƒÆ4ëéÿvè°ÏƒÄ]_^ÃVWU‹ì‹v÷t(÷tV¸PÿTƒÄ=ÿÿt+÷@t VèFƒÄ=ÿÿt÷@t�DP¸PèQÿƒÄ=ÿu¸ÿÿë‹D‹ø Àt ÷uWèéƒÄÇ+À]_^ÃVWU‹ìƒì‹v‹%H=Hu_ƒ|tY‹|‹D1‰Fþ;|sEW¸PèãþƒÄ�DP¸"PèåþƒÄ Àt � ¸ÿÿë'�Ç€¸PVèKƒÄ‹D1;D v¾‹D1‰D ë¶‹Fþ‰D1+À‹å]_^ÃVWU‹ì¾°�þ¸!sƒ<uVÿv ÿvèƒÄëƒÆ4ëá+À]_^ÃVWU‹ìƒì ‹v ƒ<tVèÏþƒÄ=ÿÿué+À‰Fü‰Fþ‰Fú‰Fø‰Fö‹^ ÿF Š˜‹ø Àt4‹ÇëÿFöëèÿFøëãÿFþëÞÿFüƒ~þuÕÿFúëлÀ¹CC;àúuÂÿg뽃~öt ƒ~üté�‹Fþ Füué’ǃ~úuƒ~öt� ƒ~øt� ÇDÿÿÇD+À‰D‰D¸fPÿvèü ƒÄ Àuƒ~øt ÆÇD ÷FëÇD aGÆDë\¸kPÿvèÐ ƒÄ ÀuÆÇD ÷FÇD6é ¸pPÿvè¯ ƒÄ ÀuÆDë¸uPÿvè˜ ƒÄ Àuƒ~øu� ÆDÇD îHÇD:5éÊÇD HÇDo5� @ƒ~øu� Vÿv軃Ä Àu饃~út(�DP¸PèäüƒÄ�DP¸PèæüƒÄ=ÿt~ÇD ëcƒ~ötC�DP¸PèÆüƒÄ=ÿu�DP¸Pè³üƒÄ=ÿtKVèIƒÄ¸P+ÀPPVè`ƒÄ=ÿÿu,ë.�DP¸PèƒüƒÄ=ÿtVèƒÄÆD0ÆD1ÆD2ÆD3‹ÆëÇ+À‹å]_^ÃVWU‹ìƒì‹v ÆDÆDÆDÆD‹F‰Fþ�|‹^þÿFþŠ˜‰Fü Àt-ƒ~ü.t'ƒ~ü:t!�D;Çvyƒ~üa| ƒ~üzƒnü ‹ßG‹FüˆëÃ~ü:u*�D;ÇuR€|uLŠD˜‰Fü=A|@ƒ~üP:‹Fü-@ˆDë��D;Çv‹ßGÆ ëñ�|ƒ~ü.u5‹^þÿFþŠ˜‰Fü Àt%�D;Çw+Àë,ƒ~üa| ƒ~üzƒnü ‹ßG‹FüˆëË�D;Çv‹ßGÆ ëñ¸‹å]_^ÃVWU‹ì‹v�DP¸#Pè;ûƒÄ‹D1‰D ]_^ÃVWU‹ìÿv ÿv‹^ ÿWƒÄ]_^ÃVWU‹ì‹v‹~ ƒþ u÷u W¸ PèâÿƒÄVŠE˜PèìúƒÄ‹Æ*ä]_^ÃVWU‹ì‹v‹~ ÷ u}ƒþ u÷uW¸ PèÜÿƒÄ=ÿÿtbƒ}u¸P謃ĉE Àu� ëE÷uƒ}uWèûƒÄ Àt.ÇE‹E‰E� ÿM}WèUûƒÄ ÀuW¸PèöƒÄ Àuá¸ÿÿë‹]ÿE‹Æˆ‹Æ*ä]_^ÃVWU‹ì‹v � ¸ÿÿ]_^ÃVWU‹ìƒì ‹v÷@ué3VèüúƒÄ Àté%ƒ~u VèJƒÄ霃~t陋D +Ò¹ÑàÑÒâú‰Fø‰Vú÷usƒ| tmƒ|u¸PèăĉD ÀuéÒ‹D ÿÿ‰D1ÿt¸Pè ùƒÄ�DP¸!Pè¢ùƒÄ Àu+ÇFöëÿFö�~ö€} ‹~ö|€=uë¿€+~ö‹Ç™)FøVú‹Fø‹VúF V ‹F ‹V %þ¹ÑúÑØâú‹Ø‹Ê‹Ã‰Fþ‹^ ‹N �ãÿ+ɋÉFüƒ|t‹Fþ;D1u‹D+DD;Fü0ƒ|u¸PèƒÄ‰D Àt‹Fþ‰D1V+ÀP脃Ä Àu¸ÿÿë#‹D+DD+Fü=‰D‹FüD‰D�$ÏÿÇDÿÿ+À‹å]_^ÃVWU‹ìƒì‹v÷@u¸ÿÿºÿÿë/‹D1+Ò¹ÑàÑÒâú‰Fü‰Vþƒ|t‹|+|‹Ç™FüVþ‹Fü‹Vþ‹å]_^ÃVWU‹ìƒì‹v ‹|‹D‰Fþ÷FtV赃Ä Àu+À飋D1‰Fü;D r÷Ft� ëw;~þtr‹ßGÆëó�Ç€;~þtaW¸PèøƒÄ�DP¸!PèøƒÄ‰Fú Àt2ƒ~útƒ~út ;|u0� ë*ÇFúëÿFú�~ú€} ‹ß^úÆëì¸PVè@ƒÄ Àu–‹Fü‰D1‹D‰D‹Ç+D‰D‹å]_^ÃVWU‹ì‹v‹D+D™÷>ÒPVèƒÄ]_^ÃVWU‹ì‹v‹~ O|þD1uøþD2uó� +Àë¸]_^ÃVWU‹ìƒì‹v‹þ¸°Pÿ¼ƒÄ‰Fþ=ÿÿtƒ~þ t ‹ßG‹FþˆëÝÆƒ~þÿu;÷u+Àë‹Æ‹å]_^ÃVWU‹ìƒìƒ~ué«‹F%üÿ‰Fƒ>zuE¸üÿ%»)‹ð€>t¡ë¡‰Fþƒnþ‹~þ;÷ws‰6z‰6|‰<‰u¡z‰‹z‰‹ ‰‹6|÷u<‹+ƉFü;Fr0‹Fü;Fv‹ÆF‹ø‹‰‰u‹Ç‹‰G‰‹£|‹ ‰�Dë‹%þÿ‹ð;6|u±+À‹å]_^ÃVWU‹ìƒì‹vƒî‹|‹%þÿ‰Fþ‹%þÿ‰‹^þ÷u‹^þ‹‰Fþ‰‹^þ‰w÷u‹Fþ‰‹Ç‹ð‹^þ‰G‰6|‹å]_^ÃVWU‹ì�FP¸äPèdƒÄ]_^ÃVWU‹ì�F PÿvèNƒÄ]_^ÃVWU‹ìƒì4ÇFÚÊ:‹F‰FÒ�F P�FÌPè)ƒÄ‹~ÒÆ‹å]_^ÃVWU‹ì‹v ‹|ÿD‹Fˆ‹F]_^ÃVWU‹ìƒì8‹F ‰Fþ‹^þ‹‰FîƒFþ‹^îÿF‹ø=%t ÿué4ÿvW‹^ÿWƒÄëÚÇFö ÇFòÿÿÇFôÿÿ‹^îÿF‹øƒÿ-uÇFø‹^îÿF‹øëÇFøƒÿ0uÇFö0‹^îÿF‹øƒÿ*u‹^þƒFþ‹‰Fò‹^îÿF‹øë1ÇFòë ‹^îÿF‹øƒÿ0|ƒÿ9‹Fò÷.Ô‹È‹ÇÁ-0‰FòëÖƒÿ.uZ‹^îÿF‹øƒÿ*u‹^þƒFþ‹‰Fô‹^îÿF‹øë1ÇFôë ‹^îÿF‹øƒÿ0|ƒÿ9‹Fô÷.Ô‹È‹ÇÁ-0‰FôëÖƒÿlu&‹^îÿF‹øƒÿdtƒÿot ƒÿutƒÿxu‹Ç%ßÿ‹ø�FȉFú‹ð‹Çég‹^þƒFþ‹‰Fæƒ~æ}‹Fæ÷؉Fæ‹ÞFÆ-¸ Pÿvæë¸ ë¸ë¸P‹^þƒFþÿ7V趃Äé·‹^þ‹‹W‰Fæ‰VèƒFþƒ~èy‹Fæ‹Vè÷Ú÷؃ډFæ‰Vè‹ÞFÆ-¸ PÿvèÿvæVèìƒÄës¸ ë¸ë¸P‹^þÿwÿ7Vè̓ċðƒFþéÇ‹^þ‹G£œ‹G£š‹G£˜‹£–¡œ‰F졚‰Fꡘ‰Fè¡–‰FæƒFþVÿvôÿvìÿvêÿvèÿvæWè ƒÄ‹ðëv‹^þ‹‰Fü ÀuÇFü~ƒFþ‹Fü‰Fú‹ð‹ÞF€?tƒ~ô|ò‹Æ+Fü;Fô~èNë>‹^þƒFþ‹ˆFæ‹ÞFŠFæˆë(‹^þÿ7ÿvè1ýƒÄƒFþë»Ô¹CC;àútéHýÿg‹FúFò+ƉFð À}ÇFðƒ~øu‹FðÿNð Àtÿvÿvö‹^ÿWƒÄëå;vúvÿv‹^úÿFúŠ˜P‹^ÿWƒÄëãƒ~øuéÓü‹FðÿNð ÀuéÆüÿvÿvö‹^ÿWƒÄëâ‹å]_^ÃVWU‹ìƒì‹v �Fþ‰FþÿNþ‹^þÆë‹÷‹Æ+Ò÷v ‹ø Àt‹Æ+Ò÷v ‹ÚЇ†ˆFòÿNþ‹^þŠFòˆëÔÿNþ‹^þŠ„†ˆ‹^þ€?t‹^þÿFþŠˆFò‹^ÿFŠFòëà‹F‹å]_^ÃVWU‹ìƒì‹v‹~‰níÿNí‹^íÆë ‹Fï‹Vñ‰F ‰V ‹Ç™RPÿv ÿv è-ƒÄ‰Fï‰Vñ Ât0‹Ç™RPÿv ÿv èRƒÄ‰Fç‰Vé‹Fç‹ØŠ‡†ˆFëÿNí‹^íŠFëˆë©‹F ‹ØŠ‡†ˆFëÿNí‹^íŠF눋^í€?t‹^íÿF튈Fë‹ÞFëã‹Æ‹å]_^ÃVWU‹ìƒì‹v ‹~‹ßG€?uøO‹ÞFŠˆFþ‹ßGŠFþˆ Àuì‹F‹å]_^ÃVWU‹ì‹v‹~ ‹ßGŠ:u ‹ÞF€?uï+ÀëO‹ßŠ:}¸ÿÿë¸]_^ÃVWU‹ìƒì‹v ‹~‹ÞFŠˆFþ‹ßGŠFþˆ Àuì‹F‹å]_^ÃVWU‹ì‹v‹þ‹ÞF€?uø‹Æ+ÇH]_^Ë܋_ë‹Ü�_VWU‹ì‹V ‹F+ö+ÿ¹ ÑàÑÒÑ×ÑÖ;wr w;?r+?w@âå‹å]_^Ë܋_ë‹Ü�_VWU‹ì‹v ‹~+Ò+À¹ ÑçÑÖÑÐÑÒ;Wr w;r+Wâæ‹å]_^ÃVWU‹ìƒìFÇFþ¸ž‰Fú‰FüÇFø£ÇFº¥ÇFö¾� €˜‹ØÞÆ‹ÞFŠ˜‹ø ÿu鑃ÿ tìƒÿ tçƒÿu€<>uÇFø¦F‰vú‹ÞFŠ˜‹øë2ƒ~ö|¸¨P¸ Pè(ïƒÄ+ÀP+ÀPèïƒÄë‹^öÿFöÑãÝ�Dÿ‰Gº ÿt#ƒÿ tƒÿ tƒÿa| ƒÿzÇFþ‹ÞFŠ˜‹øëÙÆDÿéhÿ‹^öÑãÝÇGºƒ~þt& €˜€‹ðëN�þ€vŠ˜‹ø=A|ïƒÿZê€ ëå¸ P¸ÃP¸¾Pè'ðƒÄ Àu¸ÅP¸ Pè€îƒÄ+ÀP+ÀPètîƒÄ¸°P¸ÛPÿvüèøïƒÄ Àuÿvü¸ÝP¸ Pè…øƒÄ¸Pè�îƒÄ¸äPÿvøÿvúèÉïƒÄ Àuÿvú¸îP¸ PèVøƒÄ¸PèaîƒÄ+ÀP�FºPÿvöè7¾ƒÄPèJîƒÄ‹å]_^ÃVWU‹ìƒì0ƒ~}ÇF�FÒP�FúP�FüPÿvÿvÿvÿv ÿv ÿvèwƒÄ‹ðƒ~guC‹þ€=tGëø;÷t €}ÿ0uOëó‹Ç+ƉFЃ~üý| ‹FÐ;Fü}ÇFeë ‹Fü;FÐ|ÇF‹~ƒ~út‹ßGÆ-ƒ~et韋ÞFŠˆFЋßGŠFЈ¸Pÿvÿvÿv ÿv èÏ ƒÄ ÀtÿNü‹ßGÆ.ƒ~~ Š˜‰Fþ Àt F‹ßG‹Fþˆë‹ßGÆ0ÿNëÚ‹ßGÆeƒ~ü|‹ßGÆ+ë‹ßGÆ-‹Fü÷؉Fü‹ßG‹Fü™÷>0ˆ‹ßG‹Fü™÷>‹Â0ˆëjƒ~ü‹ßGÆ0ë Š˜‰Fþ Àt F‹ßG‹Fþˆë‹ßGÆ0ÿNüuàƒ~t6‹ßGÆ.ƒ~~*‹FüÿFü À|Š˜‰Fþ Àt F‹ßG‹Fþˆë‹ßGÆ0ÿNëЋNjå]_^ÃVWU‹ìƒì¸@Pÿvÿvÿv ÿv èÆ ƒÄ À|C‹^ǸPÿvÿvÿv ÿv è¥ ƒÄ Àuf‹^Ç‹v‹FÿN Àt‹ÞFÆ0ëîÆéÆ‹^Ç‹F£œ‹F£š‹F £˜‹F £–÷œ€ÿt€6�€¡œ‰F¡š‰F¡˜‰F ¡–‰F �FøPÿvÿvÿv ÿv è?ƒÄ ¸ Pÿvøè„ƒÄèäèƒÄ èÛèH ƒÄ‰FüÿvüèMƒÄèÆ�F PèEƒÄ ¸(Pÿvÿvÿv ÿv è×ƒÄ À|ÿFüë¸0P�F PèPƒÄ‹Fü‹^‰ÿvÿvÿv ÿv èèƒÄ‹ø‹v‹F‰Fúƒ~ftƒ~guƒ~ü|‹F;Fü|‹FüFë‹F@‰Fúƒ~ú}ÇFúƒ~ú~ÇFúÇFþëÿFþ‹Fþ;Fú}a‹ÞF‹Ç0ˆ¸8PW螃Äèþÿvÿvÿv ÿv èƒÄèéè$ƒÄ ¡œ‰F¡š‰F¡˜‰F ¡–‰F ÿvÿvÿv ÿv è,ƒÄ‹øë”ƃÿ|%;vtNþŠ˜=9~Æ0ëëÆ1‹Þ^úÆ‹^ÿ‹F‹å]_^ÃVWU‹ìƒì‹v+ÿ ö}G‹Æ÷Ø‹ð‹Þ±Ó㋇ £œ‹‡ £š‹‡ £˜‹‡ £–¡œ‰Fþ¡š‰Fü¡˜‰Fú¡–‰Fø ÿt2�FøPÿ6Nÿ6Lÿ6Jÿ6Hè6ƒÄ ¡œ‰Fþ¡š‰Fü¡˜‰Fú¡–‰Fø‹Fþ£œ‹Fü£š‹Fú£˜‹Fø£–‹å]_^ÃVWU‹ìÿv‹^ÿW ƒÄ]_^ÃVWU‹ì‹v‹D‹ø À|ÇDÿÿëL÷uA¸ÿPŠ˜Pè@éƒÄ‹ø÷u0ƒÿ u¸ÿPŠ˜Pè%éƒÄ‹øƒÿ t‰|¿ ëƒÿu � ¸ÿÿë‹Ç]_^ÃVWU‹ìƒì‹v‹D‹ø À| ÇDÿÿ‹Çé“÷0uaÿL}~ƒ|u¸€Pè½ñƒÄ‰D Àu� ë?‹\Æ}ÿt¸ Pè™èƒÄ¸ P¸Pè‹èƒÄ‹\ŠG*ä‰Fþƒ~þu‹\€u � ¸ÿÿë'‹^þCC\Æ ‹Fþ@‰D‹D@@‰Dé}ÿ‹\ÿDŠ*ä‹å]_^ÃVWU‹ì‹v‹D‹ø À|ÇDÿÿé·÷0t驃|u)¸Pè ñƒÄ‰D Àu� é‹V¸PèŒïƒÄ Àuëz÷t VèÉèƒÄ Àui�$÷ÿÿL}V¸PèaïƒÄ ÀuìëO‹\ÿDŠ*䋸÷uBƒÿ u/ÿL}V¸Pè4ïƒÄ Àuìë"‹\ÿDŠ*䋸ƒÿ t‰|¿ ëƒÿu � ¸ÿÿë‹Ç]_^ÃVWU‹ì‹v� ¸ÿÿ]_^ÃVWU‹ì‹FÑÀŠÌ*í�逋^‰´€ÑÈ£œ‹F £š‹F £˜‹F£–]_^ÃVWU‹ì‹F ëVWU‹ì�F P‹vÿtÿtÿtÿ4è„ƒÄ ¡œ‰D¡š‰D¡˜‰D¡–‰]_^ÃVWU‹ì‹F ëVWU‹ì�F P‹vÿtÿtÿtÿ4è\ƒÄ ¡œ‰D¡š‰D¡˜‰D¡–‰]_^Ã[ÿ6œÿ6šÿ6˜ÿ6–ÿãVWU‹ì�^ëVWU‹ì‹^+ÀëVWU‹ì�^ëVWU‹ì‹^¸€ƒìÇFþüG‹ÐÑàÐVÿùÐØˆFøÆFùŠÄ%ÿu‹V‹v ‹~ ‹Féý‰Fü‹ó�~ò¹ó¥‹FÑàÐVþùÐØˆFðÆFñŠÄ%ÿu ‹w‹‹é̉Fú�v�~ê¹ó¥‹Vø‹vö‹~ô‹Fò‹Nú+Nü}‹^ü‰^ú‹^þ†û‰^þ÷Ù‡Vð‡vî‡~ì‡Fêƒù9~ŠVð‹vî‹~ì‹Fê‹Núëlã ÑêÑÞÑßÑØâö‹Nú‹^þ:ûtètFê~ìvîVð:ûuöÆtAë$ Òu öu ÿu Àt7y†ûèEÑàÑ×ÑÖÐÒrIëóƒ×ƒÖ€Òs ÐêÑÞÑßÑØAŠñÐëÑÚÑÞÑßÑØ‰œ‰6š‰>˜£–‹å]_^Ã÷Ò÷Ö÷×÷Ѓ׃փÒÃVWU‹ì+Ò*ÿ‹F Ày=÷Ø·€ë7VWU‹ì+Ò*ÿ‹Fë)VWU‹ì*ÿ‹V ‹F Òy÷Ú÷؃ڷ€ë VWU‹ì*ÿ‹V ‹F+É‹ò ðt± ÑàÑÒrþÉëöÐéÑÚÑØ ψ�‰›£™+À¢˜£–]_^ÃVWU‹ì�^ëVWU‹ì‹^ƒìü‹GÑàÐVþùÐØˆFøŠÄ%ÿuéΉFü‹ó�~ò¹ó¥‹FÑà€VþùÐØˆFðŠÄ%ÿu騉Fú�v�~ê¹ó¥ŠVð‹vî‹~ì‹Fê¹8:Vøwr;vöwr;~ôwr;Fòr ÿFúÐêÑÞÑßÑØõõÑÐÑ×ÑÖÐÒr:Vøwr ;vöwr;~ôwr;Fòr +Fò~ôvöVøøõÑVêÑVìÑVîÐVðøâ¿ŠVð‹vî‹~ì‹Fê‹^ú+^ü�À| ŠóÐâÐ^þÑÚë+Ò‹ò‹ú‹Â‰œ‰6š‰>˜£–‹å]_^ÃVWU‹ì�^ëVWU‹ì‹^ƒìü‹FÑàÐVþùÐØˆFðÆFñŠÄ%ÿt$‰Fú�v�~ê¹ó¥‹GÑà€VþùÐØˆFøŠÄ%ÿuë}‰Fü‹ó�~ò¹ó¥+À‹ø‹ð‹Ð¹8ÐnøÑ^öÑ^ôÑ^òs Fê~ìvîVðÑêÑÞÑßÑØâÜ‹^ú^ü�ë€|5ŠóÑàÑ×ÑÖÐÒrþÎëòƒ×ƒÖ€Òs ÐêÑÞÑßÑØþÆÐ^þÑÚÑÞÑßÑØë+Ò‹ò‹ú‹Â‰œ‰6š‰>˜£–‹å]_^óVWU‹ì�~ëVWU‹ì‹~+ÀŠ~ ÿx öE€t @ë"öE€uHëƒÇ�v¹ýó§t @s÷Ø ÿy÷Øü]_^ÃVWU‹ì¾ëVWU‹ìöF€u6¾‹V‹^ ÑãÑÒŠÎ�áÿt!�é�|;Î}¸ãÐçÐÒÑÐâøöF€t÷Øë+À]_^ó @`€ ÷øùúûüýþÿ´Ý´Ý´Ý>CZwà• 7 ‘ ',16 @`€ ÷øùúûüýþÿHÍ!¦!¦ù+0b…í–÷Ë!ì!" s&'‹&'''''¥&BFNRT¯'¹'¥'´'ª'+ +++,, ,%,abrw(2-22272€ DOUXcdefgorsuxŸ<è<ã<í<’=U< = = =ƒ<¨=Z=~<ˆ< ‰ÍKxšTA€@ B B€@Usage: TLINK genfil {cmdfil} {-8bchlmrsux} Serial number violationTurboDOS 8086 Linker Copyright 1984, Software 2000, Inc. cmdgenparr* %s * oNo input files specifiedNot enough memory for name tableNot enough memory for externals tableAbsolutecon:lst:wCan't open list filePass 1 <<< INTERMODULE REFERENCE LISTING >>> rb%s: Can't open object file%-8s Module %sOriginUnit Duplicate def: %s Bad public def: %s Defines: %s %sToo many externals/moduleTransferDuplicate xfer address References: %s %s Bad token = %02x Code Transfer is not in Code (ignored) No code group (transfer ignored) ExtraStackEndCodeEndDataNot enough memory for output bufferPass 2 <<< MODULE MAP >>> UndCodeUndDatarb%s: Can't open object file%-8s Module %s Undefined name: %s %-8s CS:DS:ES:SS:%04x (%04x) Bad token = %02x Unexpected EOFUnexpected EOFUnexpected EOFUnexpected EOFwbCan't create output fileWriting output file "%s" Can't write output fileCan't write output fileCan't write output file Linker abortedNrProcessing parameter file "%s" %s "Missing '"'(Ignored),=AbsoluteOut of range(Ignored),+-()Missing ")"[]Missing "]"-UndefinedInvalid syntax^ ^ %s Too long0X0Invalid digit(s)'Missing "'"Name table overflow Sorting name table %d Printing name table <<< SYMBOL TABLE >>> %-8s = CS:DS:ES:SS: %04x (%04x) uninitialized %-8s = CS:DS:ES:SS: %04xundefined Page %d of TurboDOS Linker Listing for "%s" con:rdr:lst:pun:{NULL}0123456789ABCDEFcon:waToo many arguments $con:wCannot open stderr $r%s: cannot open %s: cannot create >€@ BÈCzE@GPÃH$tJ€–L ¼¾M(knOùQ@·CºR¥ÔhT*ç„V€ô æµW 1©_cY¿É[Å.¼¢±\@v:k ^^è‰#Ç `b¬Åëx­a€z·&×Xc�¬n2x†e´W ?h©f¡íÌÎÂSh…@aQYj¦�¹¥o¥k ô'�ËNm ”øx9?o ¹6×�¡pOgÍÉòIr#�E@|oüs¶p+¨­Å�uãL67EwàÃVß„öxl:– šzÉ{Η@|ÛH»½ð}‰ µP™v–ç‹…¢‰ÿÿåSTDLOADR ; STANDARD LOADER SYSTEM NITAPC ; HARDWARE INITIALIZATION MODULE KBDAPC,SCRAPC ; KEYBOARD/SCREEN DRIVER DSKAPC,DSKFMT ; FLOPPY DISK DRIVER RTCAPC ; REAL-TIME-CLOCK DRIVER ºï2±èVàï2þÈy±èIAè°è:»ð2¹èèq.¹ŠC$ to retry Ãèmÿ not foundÃè^ÿ, bad memoryÃèMÿ loading at Ãè¿€Œˆëèµ€¤ˆï‰daè@"è="è!èÄëuö„ˆœ€Œˆë ö„ˆœ€¤ˆïÿtOÿtQÿtSÿtUÿtWÿtYÿt[ÿt]ÿt_èiè‰è<�D_�D]�D[�DY�DW�DU�DS�DQ�DO€¤ˆï�t€ŒˆËdaÇDOÿÿ‹De…ÀtPè½!ŽD_ÿt]‹l[‹|YÿtW‹TU‹LS‹\Q‹DOö„ˆt‰Ã^Ãèu"VèŠ!‰Æ‰\Q‰LS‰TU�DW‰|Y‰l[�D]ŒD_ÃÇDOèk!rKŠDSö„ˆu»^4<+ë%<€s»Ô3<ûŠT¶þÊè3þ„Òu÷èTs(èñúŠ<åtè~èštèþâöëãŠG<ærÜÆGåèûëÓèe0ÀÃèèÀúÆGåèðú°ÿùÃè²úŠ<åt?‰Ú�”š¹ ŒØŒÝè§‹\oSèós*è�úŠ<åuò‰Ú�œš¹ ŒØŒÝè…è®ú[‰\oèpúÆåC0ÀÃ[°ÿùÃèAŠ„Àu:Sÿtoè©èQú‰å‡^‰\o[ZŠ<åuƒÃ ŠƒÃŠþÀuþÈöÁ€u°‡Úˆ‡ÚÃ0ÀÊD'èÈ ˆÂ¶»XRÓÊD'è#VRˆøØt°ÿùÃà 0À&ö€töÐÃèur„Àuõèt ÿDoèØùC0ÀþÀˆÂÃCþˆÐ<t$uÃIˆèÈuùËLI°ÑéþÈuúAÃ0ÀˆDoˆDpÃè"ÿDo‹\o)ÓË\Kº¹ðB)Ësûè‡Ú)Ó‡ÚÊ\·è,ÛþÈuú‡ÚÃS�”š»Ó‰Ú[¹ËRŒØŒÝè[[¹ÊC¶èXtŠ7CIˆðÐÃèüèÉ&Š$”RtÑèÑèÑèÑè)Ár(‰WÂëS‰ÃèÖZ‡Ú„Àu‰W€O €QR‰ÚèÔ[ZYâ“ÃèFY —R(Èu»–RŠþÈxþˆé5ÿ¢—RÃöD&uèÙèëè_÷Ó! RŠ¢RˆÍöÕŠD( ȈD0ŠD( èˆD(賄ÀtþÀuvè�uðè鮊D0„Àu/öD/@u)‹\(SŠ¢R¶þÂ0À)Ó‰\(rè{[‰\(„Àt è{ŠþÈy5‹˜R»˜R9Ót ‰T1èAè2ëL‹žR‰\1èUŠþÈy‹\1‹W»œR9Ó‰Óuåètéwÿèè-ö@tèœè‚�tèktéÏè!èÍëèlèmtÆDèÄÀt鱋\1‹G‹_Št0²ÑêÓöD&t‰\+‰D-ë‹T+‹l-öD&t‡Ú•¹€èVöD&t躀@KŠD0þÀ:rˆŠD( D0ˆD(éŠèªè�ˆCŠD(ˆCŠD)ˆCŠD*ˆC ¢RþÀöD/€tŠD0ˆC€'ŸÃè:ŠDU$¢–RŠDV<s°¢—Ré�ý –RŠ&—R‰DQÊDUè„ÀtÊDUèoˆÁŠlVë¹ÿð€ùÿt è Ó‰ R€åþ»œR€ùÿt Sèï…Ó[uéÁ‹»œR9Ótr‰Ó‰\1€ùÿt:Ou×öÅ€uèêö uPèçŠþÈxGè»u¹èÔö@t2Qè%tèuYè¦ë è¦è¸€@€ Y€ÍöÅ@tQègYöÅ u�ëè€téwÿ‹\1étÿ€ùÿtAöÅ€t<öÅtˆè$`<`u/Qµ»¦RËË‹…ÒtSQˆÈèY[öD€uÇ»XRËÆèöY»œR‹»œR9Ót » Ó€'߉ÓëëöÅtöÅuéÏäË RˆÈéŸQèYöÅ€t QèÎY0ÀþÈûœR‹»œR0À9Ót‰ÓSè [„Àtê‰\1ÃÊd'èîˆD'V¹ŠD':°uFCâó0À^ˆd'uŠD0:r °uöD/€t°ÿÃÆDèm„ÀÀ'¿è–ŠèX蓊„ÀtJ´‰D$ –R:DsÆèuŠºÿÿè û„ÀtæþÀuíé%è_¹VŠCˆDFâ÷^‹\1‹G‰D"‹G‰D 0ÀþÈÃè/èééã‹\1èx»ÓÆÿ»˜Ré{‹\1èd»œRéoè è#„ÀÃèè„Àuöúë ºëº ëº ‹\1ÓÊD'é"‹œRºœR9ÓûÕR¹QS»ÖRËËˉ¤R´ºÖR‹¤R¹‡ÚЇÚ:uBCâòëBâýþÄëâ[ˆ'KYþÉyÅË\U‰ò¹‹D]ŒÝè"ö„ˆ€t6‹TèÊŠDˆD莈DO„Àt.Š<u(‹\UƒÃŽD]‹T&‰‰Ó‹T ‹l 顊<s<sÆDOÿÈDÆDŠD,r uéþþÈué;ËL$IŠDþÈxÑéëøA‰L‹\$è ‰\‹TŠDŠdþÌxÐèÑÚëö‹\´öÇ€uÑãþÄëõ‡Ú¹ÿÿA)ÓsûþÈy÷ÓIAþÌx ÑêÑá)ÓsóÓëð‰Ú‹\Ë‹L ‹D"‰D ‰L ‰\‰T‡Ú‹Lˇڋ\)Ós,Sˉ\èQè Z„ÀuH‹\ ‹LÙ÷Ú‰Ó‰\è7º‹\C뻊Dˆ‹\‹T0À)ÓsŒØŽÀèo„ÀtŠDºÿÿèöøþÈtþÀtäÃè<ŠDþÈxÑãëø‰\ÊD$ÀˆÂ¶»¦RÓ‹…Òu%SÆè*„ÀuŠDºÿÿè±ø„Àtì<ÿuïé¨á[‹T‰‰Tè91ÀÃÆŠT€â¶»ÖRÓÓÓ0Àö€uŠˆDÿgÃRS$ˆÂ¶»ÆRÓŠ[ZÃ�\‡ÚŒÝŒØ¹ é<‰Ó0À€?s‹WŠ·ÛèAÿ—Sñ ë#±ë±ë±ë±è�Kú‰0SÃJ‰2Sñëm±!ë±"Q±èaˆÂ±0ÀèÑþÈxÑãëø‰Ú»0À‹0S…ÉtÓsþÀâø‹2SÓsþÀ‰US¢WSº4SR±èZY„Àuèà ÿÃB‰Óñ3ë »¦Vñë±°ÿé»ÐÇDS‹D]‹\UŒÝºZS¹ ènÆzSÿtjÇDjþSÿtlŒ\lèOtéX»~T¹0ÆCâúèr»þSŠ„Àué|‹W‹G Àt‰Â‹G Àt‰Â…Òt]‹GS£®T‰°è=°è8°Cè3 þÀ$¢0è$°.¹èâûè&u°èëÑËŠC„ÀtèëôÃPSQRˆÂ±ÍàZY[XÃSQR²ÿ±ÍàZY[„Àt <t<t0Àà ÿÃÃåé8�COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/24/84) Œ`‰&bŒØŽÐ¼`²ÿ± Íà¢f¢g»€ŠC„Àt+ˆÁµŠC<;tâ÷ëItŠCè\ˆÄ lèT8àu€dâç k„Àt i¢gº€±Íàèöº\±Íàèó„Àtéµ¢|ºh± ÍàèØº\±ÍàèÕ„Àté…»€ŠCS$tr<tn< sB<tn< t3< t:< t < uVödu ëM eˆÁ$ø(ȈÁµQ° ènþeYâóë/ÆeëþeèW< uèF„ÀtèD<t<uîè9<t <uõ[„Ûu�égÿè?º\±Íàè<¸ë ºm± Íà1ÀŽ`‹&b˱ ÍàñÍàÃP$ˆÂ±ödt±ÍàXàgè ÃP fèXÈÂRèZ8Ðt R± ÍàèZ8Ðtº�± Íà¸é¤ÿ²ÿ± Íàß�çÿŽž¹€üó¥èޱ Íà±Íߎž‹>¤&ÆÃ&ÇEýÿƒï&Ǿ€T@ésŠzþÊxˆ£±Íà ‰„Àt  ‡è#¢¤€T€é7þèHèmë6è@èyë.è8è‡ë&ˆÂRèÙZ8Ðt RèÒèÍZ8ÐuÃèè…ëèè•öT€téïýéu ¤èÇÿ±Íßèá‹vèCrS< s @P°^è2Xè.[ëçèðþz¹ŒØŽÀüó¥Ãºr±˜ÍàC‰r…ÛËrKtŠ<;Ê„ÀùtCè“ÀÃè8ë è�.¡<ŽØŽÐ¼`Š£±ÍàŠ¤è'±ÍßöT€töT@t€&T¿éKý1ÀŽ`‹&b˲ÿ± Íàñº'èºèèºdè º èþÁºµÿþÅ)ÓsúÓˆè„Àu„Ét0èjþÁÃè ÃV––––n‡¢º––––Òò(––––=]~“–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––¨–––––––––––––––´–––––––ÀËÚ–––––Þêø––––––––ü6––K––––––––––––W–––––––h–––––––y–––––––Š–––––––›–––––––¬–½Îßð–#––––––4–––––––E–––––––b––––––––––––––œ–––––––¹–––––––Ì–––––––ß–––––––ò––––––B–––––––––––––––––––––––––––#–.–:–––E–––––––––––––––I––––––倀??é8�COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 01/24/84) Œ`‰&bŒØŽÐ¼`± ÍßöÅ€uéíè3ºj±5Íà„Àtéñ¡j£o‰Ã%ð£s)Ø;lr¡l£q‰Ã¡l)Ø=ér¸è£uº€±Íà \þÈy韢ÀˆÂþÀ¢w¢›R¶ÿ±ÍßZ„Àt鈶€±ÍßèÀ ÀAèè^èÝèö< t<ué‚è°ëëè© °¢¿»Ï‰ÉŒØ£ËèÀuéB¡ÐHˆ&ÜÇݸâ£ß¡Ô£d0À¢¿Çɋ֋؉Á)Ó‰Úè” ÀAèšèH èB.»‰Ã‹d…Ûuéé諱Óë¡o£Ë¡q9Øs¡s£Ë¡u9Øs ‹dK‰dë͋ԋÃ)ÓuéÏ‹d9Ór‰Óèèué©»‰Ã»èóèüu逋Á‹Ø)ӉڋËԅÒtËJë÷ ÓˆÁ Ï$(ÈtÑëþÈëø‰Ú ÒˆÃ·K)ÓréQ‹ß‹ÝãSK Ü„ÀtŠKŠˆÇ)Ó[tˆÈ„ÀuéA‰ÝˆC Ü„Àtˆ7C‰ß‹ÃC‰Ã‹Ô)Ósédÿ‹Ã‹ÅÓ‰ÃéëþèC„Àt èG<uòèvéä‹ÁC‰Á‹ÚK‰Ú…Ûté²þèl‹ÝSè“è{[…ÛuéµèŒºg± Íà h„Àtï i謈Á ãè¤8Èué� âè—8ÈuÐ艻â‰ß»€€'ºw±Íà„Àuºw±Íà„ÀtéMº›±Íà„Àté?¢ƒºw±Íà„Àté.ºw±Íà„Àté ¢á»‰¼ á„Àuº›±!Íà„Àt鋼C‰¼ˆÃ·ÛÛÛÛÛº€ÓþÀ$¢áS²ÿ± Íà[ºw¹:u¶CB‡ÚЇÚâòS¹ÆCâúZ¹‹ßŠC‡ÚˆC Ü„Àt ‡ÚŠC‡ÚˆCI‡Ú‰ß‹ÝK‰Ý…ÛtâÍ‹¼K‰¼º›±"Íà„Àtéj‹¼C‰¼èóþÀ»ƒˆ< rÆCCþ‹Ý…Ûtéÿ»€€€ºw±Íà„Àu. ÀˆÂ± Íß„Àu!ë.èXë$ènëèŠëè«ésüèÅëèæëèýë èë€&fþè) öftéJü1ÀŽ`‹&bË»€Š„Àt ˆÁµCŠ<;tâ÷ÃItüCŠèÓˆÁ äèË8Èuë€fëä‰ÅèW‰ÇúŠŒË±ÍߺŒŒË±Íߺ¿±ÍßPº±Íߺ±ÍßX„ÀàÏ$ˆÁµ0ÀùÀâûÐèÐèÐè$ˆÁ Ü„ÀˆÈtÐèÃÛÛÛÛÛÛÛ ÓþÈxÛëøÃè…„Àtè‰ëôñº'èºèèºdè º èþÁºµÿþÅ)ÓsúÓˆè„Àu„Ét0èpþÁà to begin verifying Ãè¼ Verifying blocks on drive: Ãèš Verify abortedÃè… Verify completed - Ãèk bad blocks encounteredÃèO Mark bad blocks in directory (y/n) ? Ãè" Marking bad blocks in directoryÃèü Non-privileged userÃèá No verify drive specifiedÃèÀ Unable to lockout verify driveÃèš Verify drive not ready Ãèz Insufficient memory for verifyÃèT Excessive bad blocksÃè8 Error marking bad blocksÃè Bad directory blockÃS‰å‹^Uè]‰^[ÜP.ŠC„Àtè2ëóX�ÃSQR± ÍàZY[ÃSQR±ÍàZY[ÃSQR²þ±Íà„Àtö²ÿ±ÍàZY[ÃPSQR$ˆÂ±ÍàZY[Xà BLOCKSBAD$ DIRYNR°Tº®T±5…ÀtþÁè¹ß[„ÀtéÊ¡°T‹W…Òu‹W9Ðs鳊Sèæ¡®T‰G¡°T²¹ÑàÐÒâúH=ÿÿuþʉˆW[ƒÃ é{ÿè硇T…ÀuƃT¡~TŠ€T£„Tˆ†T¡�T£‡TÇDj~SÇXSþS»þSŠ„Àt7‹Oã-Sè~‹o�>XSþSuèúãŒØ‹XSºQ¹è\‰XSEYâÛ[ƒÃ ëÌػ~T‹.‡Tº¹0è<¡‡Të?èH»~T¹‹G…Àt'Q£®T‹ŠW@…Àuþ¹ÐêÑØâú£°TƲTSè[YƒÃâ͸ÿÿ‰DO=ÿÿta€>´T1rZ¡{T…ÀtS£{SÆ}SºZS±!è…Þ„Àu?èÂu:¹ »~SŠ„Àt.SP躋WXÐèÐèÐèÐèè«‹G[GŽÀSŠ_·&[ƒÃâÎëÁºZS±è:Þ�Dl�Djƒ|Oÿuè«è¨ÃQƒùrTÿtjÿtlŠ„ŠPÇDj‰llQ�áøÿÍXU±ÓèHP$ˆ„ŠX±Óè@‰ÁQè1ЄЯ„Š@±ÓàDlYâè]Xˆ„Š�Dl�DjUè ÇXS~S]Y�áúZS±è´Ý„ÀÃþÈ$´À»~TÃÃÃú®T±9é—Ý ‘Rˆ„‰èé ´TˆDOŒ\_Ë\UŽD]&‹R&ŠGèˆÆ&ŠGèˆÂ[�ÃÎ*µ± éeÝPÐÈÐÈÐÈÐÈ$ˆÅX$þÅþÍt ëøÃè ˆDOÃè&ˆGñ è6Ý�ëÎ*‰Ø‹\UŽD]&‰ˆðè&ˆGˆÐè&ˆGˆè±ÿþÁ, sú ÐáÐáÐáÐáÈËDU=ÿÿt£µTáµT‰DOÀ¤ˆ¿ÃÆDS0Àö„ˆ€t €ˆDTÇDU¬ÇDQË\Q‹Lj‹TUŽDlè1‰TU‰LS‰\Q‰DOÃèê< s< t < t< t<uPèXˆDOÊDUˆÁ< s(< t < u$ƸTë ¸T$ø*¸TˆÁµQ± èYâ÷Ãþ¸Téè’ˆDOÊLUéôŠDUˆÁþÀtþÀtþÀtéàèlë èg„ÀtèeˆDOË\UŽD]&ŠC:¹Tt Sè‚ÿ[ëíË\UŽD]éiè6ˆDOË\Uƒûÿtˆ¹Tà¹TˆDOË\UŽD]&‹O&‹ã&ŠCIQSè@ÿ[Yëðòé‚è :ºTtÃè&ëñèéÿ„Àuèóté²ë`èÖÿ„Àt:ºTtÃèëÿŠÂT„Étè:èÝÿ:»Tt!:¼Tt:¾Tt:½TuÚ€´‡ö„‡ué;Ãé«Ûö„‡tQèúY²ë²ë² ŠDg„ÀtþÈ´»¿TÃÃÊ/ÿgËÊTþuFCÿtjÿtl‰\jŒ\lŠTnŠ´ŠR ÌTˆDnÆ„Š‹ÈT±èäÚZˆTnˆ´Š�Dl�Dj‹ÊTÆ€„ÀtÆG°�*´Ê< t¤<uèÓètè‰ÊT‹ÄTè ‰ÈTèÕ° ÃèŒ ƒÂËDU…ÀuéŠDn¢ÌTèÕuW‹ÈT…Òt èW‹ÊTèPèÏ»…èPu:‰ÊTÆ»%èAu+‰ÈT‰ÚŒÝ‹\U‹D]¹ è† ‹ÈTÆG ÆG ‰Ú±è&Ú„Àtèè�ÔÆDOÿÃê»ÄTé èzƒÃ„ÀÃè#è`tè‹ÄTSƒÃè1[èéæÿÃèÞ ‰ÓéÜ‹ÈT…Ûtèè ‹ÊT…Ût4èë/ƒëé»SŠDnP ÌTˆDn‰Ú±è¬ÙXˆDn[ËÈT…ÛËÄTºÄT)ÚÃÇÈTÇÊTÃ&Š/C&ÆSC0ÀP脈Á<t<< s<t4< t5<t<<t8XP8ès&ˆCXþÀPˆÈ< s@ˆÁQ±^èVYë±èNë»èë¶è°üX[&ˆÃèuûë¤ZX„ÀtPèK&Š< sèXþÈPRÃSQRè  ZY[ÃSQè;ýY[ÃSQè�ýY[Ë\UŽD]&‹O&‹ãIQ&ŠCSè…[YëðË\UŠDTˆÁ ø ØþÀtLQSè�[YˆøþÀt þÈ<sˆDhˆØ<ÿt#€Œ‡@þÈt €¤‡¿þÀu ŠDh<r ÆDhëÆDhÿˆÈþÁt$ˆ„‚Ê|h³ö„‡@uˆøþÀuþÃþÉ\QŠ„‚ˆDOÊLU ÎT„Àt8Èt'€Œ‡€ö„‡@uŠDhþÀtþÈtè^uµë2éléÖüÃö„‡€t#€¤‡ö„‡@uŠDhþÀtþÈt è0uµëéqÊDhþÈè ¡(Q!ØuˆêŠDhëÃè uC „ÀtŠ/ÿgÃþÈ´»ßTÃÃÊþÀtö€Ãö„‡ téáQ»�èY„Àt鉜…Æ€ö„‡@ué¼Q»!èåY„Àté㉜ƒQ»JU¹þ€?:rÆ0Kâóë닜ƒSŠ„‚þÀˆC‰Ú»@U¹ŒØŒÝè„ [ÆG ŠDh„Àt@ˆG‰ÚRÿtjÿtl‹„…@‰DjŒ\lÿtzÿt|ÿt~ŠLnQ ˆDn±èúÖYˆLn�D~�D|�Dz�Dl�Dj[þÀtévÿÆG ‰ÚŠLnQ ˆDn±èÊÖYˆLnY„Àu3€Œ‡ ‹œ…°�*´È)Ãþu3ö„‡@to蔄Àt%±èà€¤‡ßëèè'è6þÀuéãÖ€¤‡¿ÆDhÃö„‡ t€¤‡ßö„‡@u è,²ÿè-ë èJŠLhè™èØéçö„‡@uö„‡ tè²ëÃè®uÃÿtjÿtl‹„…@‰DjŒ\lŠthþα èÖ�Dl�DjÃè†tO°€(Ðt´‰Á¶ÓCÆâúÿtjÿtl‹„…@‰DjŒ\lŠLnЬŠQÆ„Š ˆDn‹”ƒ±èÄÕYˆLnˆ¬Š�Dl�DjÃQŠLnQ ˆDn‹”ƒ±è¡ÕYˆLnY„ÀuþÉxˆÏŠ€Ë€‹”ƒ±é�ÕËœ…²€*tƀËœƒ…Ût èeÇ„ƒÃ‹œ……Ût èSÇ„…ÃèjèúèbSpooler error (Ignore, Abort) èkù„Àtè‡ùëôè‚ùPèàùXèBˆÁ œ:þÈ(È<ÿt  ”:þÀ(È<të¥ÃèE²èpˆDOÃè9²èdˆDOÃè-²éXè%²éPè²èHˆDOÃè²é<è ²è4ˆDOÊLUŠlV€åËDQ£PU‹DU£SUŠDT¢RUáPU‰DQ¡SU‰DU RUˆDT VUˆDSûRUþŠ<PU€tÿPUËTU…Òt ‹\Qè&ˆDOñè8Ôè*P€«U@ŒØŽÐ¼ªU»ZUèú[èé SR»[èuZY„Àu5QS¹[ÆCâú[ ªUˆGNþªUY‰OD‰—Y�‡Y‰GFŒ_H�W3R»ZUè¨[0ÀËTQ‹\USƒÃèÅ[郋\Uè‰\QÃèq‹_è ‰ÓûfUé¨PVèÿö«U@uè�‰ÆöD7@u ÇDLZUèbëè%^XÏ€d7öD7@t€L7€€L7@ÃèöD7€u€d7¿Ã€«U€Ãö«U€uÀ&«U»ZUëúþxû0ÀÃþ°ÿë‹\U…Ûtå‰\8»`Uú‰\L€«U@û‰D:‰\<‰L>‰T@‰lB‰|D‰dFŒTHŒDJŒØŽÐ¼ªU€&«Ußèt‹fU�ûfUt ÿ7�GÿÐ[ëðö«U u#èωƻZU誋\LúŠþÈxˆ»ZUè�û€«U  ZU„Àt¸è¥‰ÆŽDJŽTH‹dF‹|D‹lB‹T@‹L>‹\<‹D:€&«U¿ÃÿVUÿXUÃú‹XUÇXUû…Òt0‹bU�ûbUt&)Wt r‹ëïÇGRÿ7èA»bUèL»`Uè[ZëÔÃè„Àt»ZUè°ÿÜúþCCè%�ÜúŠþ„À°y‹_è°ÿ�Ãè[á\U-3ÀO@øÀY±Óèè6£´U¡§V¬Uƒ>®Ut 9®Us¡®UŒÙ÷ÙÁ�ér)È+§VèuH£¶Uû§V)G‹ŒÙ)ȱÓàË\Uè‰\QˆDOɸUº)Ós‰¸UǼUÿÿǺU»°U‹�û°Ut‹Wþ¡¸U@@)Ât/rê9¼Ur䉼U‰ºUëÚ‹ºU…Ût¡¼U=r ‰Gþ˸UBBë$è'‰Ó0À˶U‹¸UBB)Ó°ÿr;´Ur ‰¶UCC‰Wþ0ÀË\U‰ºU‹Wþ‹°U�û°Ut5¡ºUÐ9Øt‹GþØ;ºUt‹ëâWþRèÍZ‹ºU‰WþëÍR迉ÓZWþ뺋ºU»°U辋°U�û°Ut‰ØHH;¶Ut‹ëì‹Gþ¶Uè‹ëÜ0Àýè"„ÀuVýè„Àuaýè3tBýè*tOÃÇDSèø„Àt‡ÚþÀt¡¼U)GÆV‡Ú°ÿÃÆDOÿÃÇDSèÑþÀtÆDOÿËG‡Ú+G‰‹G‡Ú)GëA‹O‡Ú‹‡Ú+‰G‰Óÿ7ÿw‹G‰)Á‰OS ÁUPÆÁU‰Ú»ÂUèX¢ÁU[�G�‰Ú»êUèé/ÇDS‹TU±ÓêT]»êU¹‹G…Àt ;r9Âr ƒÃâêÆDOÿàÁUPŠG¢ÁUèì€>Vÿu(»êU¹‹G…Àt ÁU:Gs SQèLY[ÇGƒÃâàëXþÁUèorK‹O‰GŠG¢ÁU‰Óÿ7ÿw‹G‰)Á‰OS‰Ú»êUè^[�G�èë ÁUPÆÁU‰Ú»ÂUèBX¢ÁUÃÆDOÿX¢ÁUûêUè$»ÂUèÆÁUЦVµº§VRQ»ÂUèYZƒÂâñù(ÆCâúÃǾU¹ƒt/ ÁU:Gu2‹G‡Ú;t‹G‡Ú;u‡Úè)ËG‡ÚGá¾U…Àu‰¾UƒÃ⻋¾U…Ût ÁUˆG‡Ú‹‹O‡Ú‰‰OÃUè½]»ÂUºVÆÀU¹…íu‹‡Ú‰‡Úèwr0÷ØG‡Ú+G‡Ús/€>ÀUÿt÷Ø€>ÀUÆÀUu;¼Us£¼U‰ºUƒÃ⺠ÀU‹ºUÃt€>ÀUÿÆÀUÿuÞëÖǼU°ÿûêUºV¹ ÁU:Gsè rtƒÃâìùËG…Àùt‡Ú‹‡Ú+rP‹G‡Ú++G‡ÚXr9ÀøÃè éêè‡Ú•éá‹\U‹D]ºVŒÝ¹ÃþÁUÃþÁUÃ0ÀÃ0À�ûVùŠCþÀtþÈy$8àu ;uˆÈöØÃCCâà°ÿÃQ±ÓãYôº'èºèèºdè º èþĺ±ÿþÁ)ÓsúÓ„Éu„ät €Á0PSèÅñ[XþÄË‹G‡Ú‰G“‰Ë_‹‰“‹O‰W‡Ú‰‰OÃ[èÿã.ŠC„ÉtSèŠñ[ëñìV2rƬVèëõèÝ÷è¯èŒ°èšÿZY[Xé­öäHäHºF°è*ÿ‹®Vè¥ø‰°V‰²V‰´VÈÐ< tÀtþÈtþÈt ,t þÈt0ÀÃé è$ý ÃèÃèuè8»¶Vèµöè tõ‰´VˆÈË´V0À;²VtC¡°V®V9Øu‹°VŠ ÿÃPSQRè#ýè;°èûþZY[Xéö¡²V9´VuäL¨t €>½Vtþ½VÀ>¾Vtþ¾VÃÆ¾VëäJ$täHÃÆ½V(äL$/ˆÂäN¨t€Ê@¨t€Ê€äHè�<^r »aV×<ÿuûaW±:t ƒÃþÉuõëŠGˆÁè0öÂtQ±èzYöÂtˆÈèG<@r<_w$ˆÁè`öÂt± èVðÀ Ðt<€t"»iW°:tƒÃþÈuõÊOÀùAr€ùZw€Á À�WYƨW€&X»XèD‹ W¡¢WÇ¢W…Àu €ù s¿¯WˆÈ¹ ò®u » )ËÛÿ—¹WèÃÿÐëˆ,Xès»'Xèèz».Xèùè�‰ WèZë €>¨Wtþ¨WuƨWö�W€t €X€»XèÉÃÇ¢WöHÃÆ,Xè$»'Xè³è+».Xèªé±ÿ²ë €>žWuŠŸWÃ0öëZþ΀þPr¶OþÊ:¤Wr:¥WvŠ¥Wö�Wtèü¨ u×ÃþÆ€þPr)0ö€>žWu ö�W@tè·¶OÃþÂ:¥Wv ö�WtФWö�Wt轨 uÂÃþÊþ¦W€>¦WrƦWèËR¶è7ZÈð0䊚Wöñ šW(àðIõè…rˆÈ±Òà€&1X1XÀ1XÀ&1XïÀ1XÀ&1XÀ&1X÷€1X€Ã€1XÀ&1XþÃÇ¢W‹Iõè8r,€&�WþÉr#€�W€ˆËÛË0ÿ�ÃRX¸X¹Š“ˆ“CâôÀé r8éõÀé0rúëõƦWèÊ1Ò‰ Wèv°±PöáH¢NXˆ&PX»IXè÷Æ,X »'Xèìèd»IXèã€&1Xà».XéØè@¸P(ðþÈ¢NXˆ&PX»IXèÁÆ,X »'Xè¶è.»IXè­».Xé§RèËÿ0öþ€úrôZÃÃÃÃè/¢#Xˆ&%X» Xé…è¢#Xˆ&%X» Xérèêÿè�»3Xèf鋈ѦW€ùr€é°Pöáˆñ0íÈà¦W±Pöá¢9Xˆ&;X°*¦W±öá±Óà¢=Xˆ&?X1À¢AXˆ&CX ¦W±öá±Óà¢EXˆ&GXè*»6Xèé!œúRŠ'C0ö„ätä@¨uúŠWŠîCCþÌëêZ�Ãä@¨túÃä@¨túä@ÃäPþÀt»jX ‘XþÈöбÒà ˆCÆ&¹èû^XèIñè P»^XèDòXÊ€ûr0ÀÃ0ÿÛÿ§’Xè^„ÀuÃÆŽXµ èÔ }XtµJèÊ }Xœ �t þŽXx?è†ë݈„Àu zX<w°èŠëÉRè‘Z¨t€Ê»œX8—t‹…Ûuôë ƒÃ‰\ ÿÃ0ÀÃèñ„ÀuöÐÃöDÿuè4è@»rXöD€t€CŠD$ˆCŠDˆCŠD$ˆÆ�X‹D P± ÓèˆÂX±ÓàD €Òæˆàæ‹DæˆàæˆÐæ:°æ°æ ¹ öD€t€Í@è èM wX$Àtþ�Xz± ÿÃÆ�X²ëÆ�X²è „ÀtÃÆ�X²è1öt€Ê@öt€Ê€ˆ�XŠD¢ˆX‹D £‰XŠD¢‡XŠ\€ãˆnX0ÿЇ~X¢pXÆqX€„ÛtÆqXÿƆXÆŽXèï„ÀuöÐÃèGŠˆXèÂt0öÓŠþŠtè¼ötÐî»jX€'ÆlX8Ös (ò€ÆlXˆmXˆ6oXÆ�XèbŠ.�X± è(èj wX$Àt%öwXuöyXt þŽXxèÇéÿ±è+çþ�XzÅ wX†Xè@tèM‰XþˆXþ‡XtéTÿ †X$Àt ÿËD P± ÓèˆÂX±Óà‰X€Òæˆàæèèþu‹DHæˆàæˆÐæ: �Xæ°æ ÊD<säPþÀt è èe¨ t ÿÃ0ÀÊT€â jX$8ÐtˆÃ0ÿ kXˆ‡‚XˆÓЇ‚X¢kXˆjXˆrX€&jXû€&rXûùè:è|0À¢kXÊD:kXt ¢kX¹èèaùèè? wXñè èK wX$ÀÃäP¨uúœú»jXˆè$< u»rXäP¨€tú¨@u ˆèæRŠ/CþÉuë�Üú»wXäP¨€tú¨@täRˆCëï�úÅNè„í»dXéæí‹\‹Ÿ …ÛË\�à ÃQŠL¸€ÓàYÜú° æ(ä(�¨tèr »ÅNèâó»dXè¬îÃäP¨u¹ècÿè�ÿ wX$À<Àùt°æ 0ÀÃTurboDOS 1.40, Copyright 1984, Software 2000, Inc. $($/$)$ <-- $Invalid command$Command not found$Program load unsuccessful$Non-privileged user$ÿþOþO$P�\}ÿÿÿCOLDSTRTAUTWARMSTRTAUT€nQnQrQrQë2*3J3‚3‰3…7�3VV¶3Ð3Ù3?2L&R&â`ÂÓ~üub­V[&b&VV”Vi& Q‹�VQVVˆ&”&– ¶&½&=?H?S?\?ý?Æ@’/I2Œ2VØ2à3ô3ê622ˆ;�<+>Ã>ÿ;<Ê&Ñ&(;;;œñ2$'Ø&Þ;5L ã á!=ä,*.*V9*7º7Â�9VÖ:â:î:ö:þ: ;;3¹ÿÿÿÿÿÿÿÿDIRDSK¸˜R˜RœRœR?K?Kÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�.ö.ú.þ./þ.ú. //////#/w/z/~/‚/†/Š/$ DSK1$  EÄTÄTVÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-PRINT-?000€\U\UbUbUfUfU`°U°U C2NEC-APCC3 SINGLE USERC6 (10/05/84)C5$@À?@¸V¸V(-ÿÿÿÿÿÿÿÿÿÿ*+ÿ-./0123456789ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿ-=@`:;;'1!2@3#4$5%6Ð7&8*9(0)-_=+`~[{]}\|,<.>/?;:'"^íþÿ€«W«W *HXHÞHŸHaH‚HHHÏI#HDH=*TYCjk^_qlm.IÏIJDJ7IUI[IaIgImIxI~I„IB@N@R@@D@@î@E@oBFB@GBP@JBÿ@ÿ@KB@!@Š@IB@@ B@@0B€@°B pB@@@@@@@@LB@@@Š!ŠŠ.Š`X`XfXfXå5_LhLcKÄMÐK­XhM5¾X� P?5ÏXÈ (5àX4M 5ñXÈP;5YÈ(5Y4M$YšM5Y €FY @WYî4M‚Y óMhY         #&),/2!$'*-03"%(+.11$  EÂTÂTVÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-PRINT-?000€ZUZU`U`UdUdU`®U®U C2NEC-APCC3 SINGLE USERC6 (10/05/84)C5$@À?@¶V¶V(-ÿÿÿÿÿÿÿÿÿÿ*+ÿ-./0123456789ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿÿ-=@`:;;'1!2@3#4$5%6Ð7&8*9(0)-_=+`~[{]}\|,<.>/?;:'"^íþÿ€©W©W )HWHÝHžH`H�HGHÌI"HCH=*TYCjk^_qlm. IÌIJAJ6ITIZI`IfIlIwI}IƒIB@N@R@@@; Function=3, return drive ready status ; RETRDY: MOV AL,PDRDRV[SI] ; Return ready code DEC AL RET END ke sure transfer is forward MOV ES,HDBUFSEG ; Load destination for write MOV DI,PDRSEC[SI] MOV CL,=7 SHL DI,CL MOV CX,PDRTC[SI] ; Get byte count MOV BX,PDRDMA[SI] ; Load source for write TEST WRFLAG,=01 ; Set flags for type of call MOV DS,PDRBAS[SI] XCHG BX,SI JNZ MVWRDS ; Is this a read call ? XCHG SI,DI ; Yes, swap source and dest MOV AX,DS MOV DX,ES MOV DS,DX MOV ES,AX MVWRDS: SHR CX,=1 ; Convert byte count to words REP MOVS WORD ; Transfer from/to buffer JNC __R ; Odd number of bytes ? MOVS BYTE ; Yes, catch last byte __R: MOV SI,BX ; Recover critical registers POP DI ata RET ; and return it ; END MOV NXTSEQ,&SETCSR1 ; set code expected next RET ; and exit ; SETCSR1: MOV CH,=5 ; get upper limit on code CALL CKBIAS0 ; check ASCII bias JC __X ; if invalid, continue AND FLAGS,=~CSRFL ; clear cursor display flag DEC CL ; code = 0? JC __X ; if so, continue OR FLAGS,=CSRFL ; set cursor display flag MOV BL,CL ; move to reg ADD BL,BL ; times 2 ADD BL,CL ; times 3 XOR BH,BH ; make double length ADD BX,&CCHRTBL ; add table base MOV AX,&CCHRCMD ; point at command table too MOV CX,=3 ; get loop count __LP: MOV AL,[BX] ; get first parm XCHG AX,BX MOV [BX],AL ; substitute XCHG AX,BX INC BX ; bump table pointer ADD AX,=2 ; and command table pointer LOOP __LP ; continue for the count __X: RET ; all done ; ; ; Check ASCII BIAS. Limit in CH reg, Base is ASCII SPACE. ; CKBIASA: SUB CL,=ASP ; remove bias, check lower limit JC _BX ; if invalid, exit CKBCOM: CMP CL,CH ; check upper limit CMC ; invert logic _BX: RET  HDCTST: Hard disk driver tester Copyright 1984, Software 2000, Inc Page 1 ; 0000 MODULE "HDCTST" ; 0000 TLINK "X" ; ; #INCLUDE "EQUATE" ;SYMBOLIC EQUIVALENCES ; 01:0000 LOC Code# ; 01:0000 START: 01:0000 8A0E 002E MOV CL,46 01:0004 8A16 0002 MOV DL,2 01:0008 CD E0 INT 224 01:000A E9 FFF3 JMP START ; 01:0000 END START ¹]»²]èÆ•] »�]è舻²]è€&š]à»—]éüR0öèZÃRˆð0ä0öè ZøP(ðþÈ¢·]ˆ&¹]èB»²]èÑÆ•] »�]èÆè>»²]è½»—]é·èÀÿRþÊxè°ÿéöÿZÃRè»ÿ0öþ€úrôZÃÃÃÃè/¢Œ]ˆ&Ž]»‰]é…袌]ˆ&Ž]»‰]érèêÿè�»œ]èf鋈Ñ \€ùr€é°Pöáˆñ0íÈà \±Pöᢢ]ˆ&¤]°* \±öá±Óࢦ]ˆ&¨]1À¢ª]ˆ&¬]  \±öá±Óࢮ]ˆ&°]è*»Ÿ]èé!œúRŠ'C0ö„ätä@¨uúŠWŠîCCþÌëêZ�Ãä@¨túÃä@¨túä@ÃäPþÀt»Ô] û]þÈöбÒà ˆCÆ&¹èûÈ]èïè P»È]è ðXÊ€ûr0ÀÃ0ÿÛÿ§ü]è^„ÀuÃÆø]µ èÔ ç]tµJèÊ ç]œ �t þø]x?è†ë݈„Àu ä]<w°èŠëÉRè‘Z¨t€Ê»^8—t‹…Ûuôë ƒÃ‰\ ÿÃ0ÀÃèñ„ÀuöÐÃöDÿuè4è@»Ü]öD€t€CŠD$ˆCŠDˆCŠD$ˆÆ÷]‹D P± ÓèˆÂX±ÓàD €Òæˆàæ‹DæˆàæˆÐæ:°æ°æ ¹ öD€t€Í@è èM á]$Àtþ÷]z± ÿÃÆù]²ëÆù]²è „ÀtÃÆù]²è1öt€Ê@öt€Ê€ˆú]ŠD¢ò]‹D £ó]ŠD¢ñ]Š\€ãˆØ]0ÿЇè]¢Ú]ÆÛ]€„ÛtÆÛ]ÿÆð]Æø]èï„ÀuöÐÃèGŠò]èÂt0öÓŠþŠtè¼ötÐî»Ô]€'ÆÖ]8Ös (ò€ÆÖ]ˆ×]ˆ6Ù]Æ÷]èbŠ.ú]± è(èj á]$Àt%öá]uöã]t þø]xèÇéÿ±èóäþ÷]zÅ á]ð]è@tèMó]þò]þñ]téTÿ ð]$Àt ÿËD P± ÓèˆÂX±Óàó]€Òæˆàæèèþu‹DHæˆàæˆÐæ: ù]æ°æ ÊD<E‹TU±ÓêT]»J[¹‹G…Àt ;r9Âr ƒÃâêÆDOÿà![PŠG¢![èì€>v[ÿu(»J[¹‹G…Àt ![:Gs SQèLY[ÇGƒÃâàëXþ![èorK‹O‰GŠG¢![‰Óÿ7ÿw‹G‰)Á‰OS‰Ú»J[è^[�G�èë ![PÆ![‰Ú»"[èBX¢![ÃÆDOÿX¢![ûJ[è$»"[èÆ![Š\µº\RQ»"[èYZƒÂâñù(ÆCâúÃÇ[¹ƒt/ ![:Gu2‹G‡Ú;t‹G‡Ú;u‡Úè)ËG‡ÚGá[…Àu‰[ƒÃ⻋[…Ût ![ˆG‡Ú‹‹O‡Ú‰‰OÃUè½]»"[ºr[Æ [¹…íu‹‡Ú‰‡Úèwr0÷ØG‡Ú+G‡Ús/€> [ÿt÷Ø€> [Æ [u;[s£[‰[ƒÃ⺠ [‹[Ãt€> [ÿÆ [ÿuÞëÖÇ[°ÿûJ[ºr[¹ ![:Gsè rtƒÃâìùËG…Àùt‡Ú‹‡Ú+rP‹G‡Ú++G‡ÚXr9ÀøÃè éêè‡Ú•éá‹\U‹D]ºr[ŒÝ¹Ãþ![Ãþ![Ã0ÀÃ0À�ûx[ùŠCþÀtþÈy$8àu ;uˆÈöØÃCCâà°ÿÃQ±ÓãYôº'èºèèºdè º èþĺ±ÿþÁ)ÓsúÓ„Éu„ät €Á0PSèÅñ[XþÄË‹G‡Ú‰G“‰Ë_‹‰“‹O‰W‡Ú‰‰OÃ[èÿã.ŠC„ÉtSèŠñ[ëñà \2rÆ \èëõèÝ÷è=èɰèšÿZY[Xé­öäHäHº”F°è*ÿ‹\è¥ø‰\‰\‰\ÈÐ< tÀtþÈtþÈt ,t þÈt0ÀÃéÒè$ý ÃèÃèuèu»\èµöè tõ‰\‰ù\ˆÈËù\‰Ú ÛŠ‹\t Ét ÿBÃ1Ò0À;\tõC¡\\9Øu‹\ŠCŠ/S<€r)<•w%0äÐísÐàÑàÑàÑàû\‰ÃŠÉt‰ÚBéD[éµÿ<^r »Á[×<ÿu[é¥ÿ»Á\±:t ƒÃþÉuõëŠGˆÁèÔöÅtˆÈè÷<@r<_w$ˆÁ[ ÿÃPSQRè•üè;°èmþZY[Xé€õ¡\9\uäL¨t €>\tþ\À>\tþ\ÃÆ\ëäJ$täHÃÆ\(äL$/ˆÂäN¨t€Ê@¨t€Ê€äHˆÁ‹\€ù–uˆÔ€ät{ú1ÀŽÐŽÀ¼ÿÿ.õ\‰\C¡\\9Øu‹\;\tˆCˆ‰\»\RèGöZðÀ èt<€t"»É\°:tƒÃþÈuõÊOÀùAr€ùZw€Á û`u$€ù s¿ö_ˆÈ¹ ò®é8C�º�è›;éç°ÿë0À.Œ.‰&.Ž8C.‹&ûè .Ž.‹&Ï„Àt€ù2ué‚.þÁt4þÉuéË.¢è¢„Àt. „Àué7é*Vè. èÆAèñ;^0ÀÃ.¡…Àu.‰&.Ž8C.‹&èñÆDgºÿÿ±0Àè”ÿº\±èðºm±èèº$±nèÖºÆTè ± èÕèsAtRSºúTè[èȺüTè[辺þTèú»¼[èOAt‰ÚèíŠ.º[ ZU<ÿtˆÅŠXUŠ6YU±è�è™è© èxë.Ž8C.‹&è`è�è A„ÀuèŸ þÀt±è_è˱èWŒØŽÐ¼ÆT»#º'1ÀŽØ‰€Œ‚‰|Œ~¡ßY.£.Ç€>áYu.ÇŽëYŽåYŒÀ…ÀuŒØŽÀŒÚ±3Í຀±Íà.ÿéoÿ.Ç .Çö„‡u±è× ²±,èÆ èk@±èÈ ±è¹ èà Š±è­ б è¤ ±:èŸ °@éT „ÀˆÈué±þÈtVþÈtXþÈtNþÈtP<t,tBþÈt<„uéöþ.Æë2ˆÐ<ýt)r-.ö u.þ.ö tèÖQRVè4è¨1^ZYÃèİÿÃVè!ö„‡u(€ú t#QRè‡1ˆËZY„Àt Z8ØtQRˆÑ² èö1ZY„Àu^éŠÿ»Z€ú s €ú uÆëþ^ëi,tOþÈtW<técÿVèÁRèÒ Z„ÀuˆÐþÀtˆÐ$¢ˆðþÀt þÈ$¢0À^„Àt*é0ÿ îW¢ˆð<ÿuä º[ëá.‰ .‰ ë .‰.‰0À.¢ÃQRVè^±èn èÞ2u èM)t°@è!.Æ ^ZYÃ.¡ …Àué•.ÿ Ã.¡…Àu.Ž8C.‹&èèé¦ý.Ž.‹&¸ÿÿ.ÿÏè“?è*:‰ÆÃº±è º±éü µº'èºèèºdè º èþź±ÿþÁ)ÓsúÓ„Éu„ít€Á0QSˆÊ±èµ [YþÅñ é« èè>è�0Š„ÀtþÈtþÈt ¡é½èÌ>ReadëèÂ>Writeë è·>Not readyèª> error, Drive: ŠDAˆÁè,0Š<t?è‡>, Track: ‹\è>èt>, Sector: ‹\Sè>[‹TJ…ÒtÓSèS> - [èé=èH> (Retry, Š<t è5>Ignore, è)>Abort) èI/„Àtèe/ëôè`/Pè¾/Xè >ˆÁ ¡(Èt" ¾þÈ(È<ÿtŠ<uéÿ ²þÀ(È<téôþÊlU·SƒÃè!9‰dUXˆú$±nèÏè¥èÁ±/þÁ, sú:PˆÈ<0tè•Xè‘è¬A艠nUèƒèht鈻pUŠ„ÀtJÆèKtBèT=RƒÂ‹dUCC‡ÚŠC¢pUŠC¢qUŠC„Étµ‰fU‡ÚSËÆ[‡ÚŒØŒÝèp=Z±èN륀>qUÆqUtébÿ‹dUR± è/[CŠ„Éué\ûµC‰fUèéËÆëèx¡fU£`Uèšuéû‰jU ƒU< uéÄ»‹UŠ< u ÆCCÆMCÆD€ˆU€ÆŽU ‘U„Àt �Uèûº‚U±èÁ„Àt鸺‚U±;è²@uéÙ‰hU èÔ»¢Uèèè"è6tè!tº¢Uè è&t ètº²UèüºÇU‹jUè"r‡ÚˆC‡Ú�úEVrîèsû‡ÚÆK�ëÆUˆÆU‡ÚèŒØ»¢U‹.hUº\¹¤èS<é  ‚UþÈx¢ ‘U„Àt  �UèK¢‹jUèÅsûèÖé?úºUëN ‚U„Àu# oU„Àt<ÿu º[þÀPèåþÀˆÁX8Èt¢‚UéÿºUëº)UëˆÂRèÀZ8ÐtHRè¹è´Z8Ðt<ºCUÆqURè„èºUè�Zè‹èIüéÐù‹fUèGrS< s @P°^èbXè^[ëçû‚U¹ŒØŒÝé�;º`U±˜èeC‰`U…ÛË`UKtÛ mU:tÔŠ<;àmU:ùtÇŠ„ÀùtÀCè>;ÀÃC„Àu»‰fUð è° €>qUužˆÂ±ë€>qUu‘± ë²ÿ± ë±°ÿë0ÀéMøÇSTDSPOOL ; STANDARD SINGLE USER SYSTEM WITH SPOOLING PATCH ; PATCH AREA ;SUBMIT,CPMSUP ; CP/M SUPPORT MODULES SOMAPC ; USER SIGN-ON MESSAGE AREA MSTAPC ; MEMORY SPECIFICATION TABLE AREA NITAPC ; INITIALIZATION MODULE RTCAPC ; REAL-TIME-CLOCK DRIVER KBDAPC,SCRAPC ; KEYBOARD/SCREEN DRIVER DSKAPC,DSKFMT ; FLOPPY DISK DRIVER AND SPECIFICATIONS HDCAPC ; HARD DISK DRIVER OUOVOWOXOYOZÿ€¥\¥\ eH“H3IôH«H×HƒHãK^HH=*TYCjk^_qlm.[(þJãK;L|LEKcKiKoKuK{K†KŒK’KdI3K'KfHCABDJKmMh>†J†J­J¿J¹J³JçJáJ#J#J†JXJhLluJdJdJ|LlLÝK;L/L'LB@N@R@@@@î@E@oBFB@GBP@JBÿ@ÿ@KB@!@Š@IB@@ B@@0B€@°B pB@@@@@@@@LB@@@Š!ŠŠ.ŠÊ]Ê]Ð]Ð]å5—N N›MüON^hM5(^� P?59^È (5J^4M 5[^ÈP;5l^È(5}^4MŽ^šMŸ^ €°^ @Á^î4Mì^ óMÒ^         #&),/2!$'*-03"%(+.1u » )ËÛÿ—`è#ÃÿÐ눽`èr»¸`èèy»¿`èøÆ»`褉Â_èTÀ>Ê_tþÊ_uÆÊ_ö¿_€€«`€»¨`èÆÃÇÄ_KIÃÆ½`è!»¸`è°è(»¿`è§é´ÿ²ë €>À_uŠÁ_Ã0öëtþÎy ö¿_tÒu0ö€þPr¶OþÊy ö¿_t0Ò:Æ_r:Ç_vŠÇ_ö¿_tèߨ u½ÃþÆ€þPr)0ö€>À_u ö¿_@tèš¶OÃþÂ:Ç_v ö¿_tŠÆ_ö¿_tè ¨ uÂÃþÊþÈ_€>È_rÆÈ_è®R¶è ZÈð0䊼_öñ ¼_(àð»Ú`è½»¿`é·èÀÿRþÊxè°ÿéöÿZÃRè»ÿ0öþ€úrôZÃÃÃÃè/¢´`ˆ&¶`»±`é…袴`ˆ&¶`»±`érèêÿè�»Ä`èf鋈ÑÈ_€ùr€é°Pöáˆñ0íÈàÈ_±Pöá¢Ê`ˆ&Ì`°*È_±öá±Óà¢Î`ˆ&Ð`1À¢Ò`ˆ&Ô` È_±öá±Óà¢Ö`ˆ&Ø`è*»Ç`èé!œúRŠ'C0ö„ätä@¨uúŠWŠîCCþÌëêZ�Ãä@¨túÃä@¨túä@ÃäPþÀt»ü` #aþÈöбÒà ˆCÆ&¹èûð`èïè P»ð`è ðXÊ€ûr0ÀÃ0ÿÛÿ§$aè^„ÀuÃÆ aµ èÔ atµJèÊ aœ �t þ ax?è†ë݈„Àu  a<w°èŠëÉRè‘Z¨t€Ê».a8—t‹…Ûuôë ƒÃ‰\ ÿÃ0ÀÃèñ„ÀuöÐÃöDÿuè4è@»aöD€t€CŠD$ˆCŠDˆCŠD$ˆÆa‹D P± ÓèˆÂX±ÓàD €Òæˆàæ‹DæˆàæˆÐæ:°æ°æ ¹ öD€t€Í@è èM  a$Àtþaz± ÿÃÆ!a²ëÆ!a²è „ÀtÃÆ!a²è1öt€Ê@öt€Ê€ˆ"aŠD¢a‹D £aŠD¢aŠ\€ãˆa0ÿЇa¢aÆa€„ÛtÆaÿÆaÆ aèï„ÀuöÐÃèGŠaèÂt0öÓŠþŠtè¼ötÐî»ü`€'Æþ`8Ös (ò€Æþ`ˆÿ`ˆ6aÆaèbŠ."a± è(èj  a$Àt%ö auö at þ axèÇéÿ±èóäþazÅ  aaè@tèMaþaþatéTÿ a$Àt ÿËD P± ÓèˆÂX±Óàa€Òæˆàæèèþu‹DHæˆàæˆÐæ: !aæ°æ ÊD<FUSRSOM = 0X0D,0X0A, 0X1B,"C2","NEC-APC", ;SET RED COLOR 0X1B,"C3"," SINGLE USER", ;SET BLUE 0X1B,"C6"," (10/05/84)", ;SET CYAN 0X1B,"C5" ;RESTORE GREEN ; MEMRES = 0X400 ;RESERVED MEMORY COMPAT = 0XB8 ;COMPATABILITY FLAGS ATNCHR = 00 ;ATTENTION CHARACTER AUTUSR = 0X80 ;AUTO LOGON USER NUMBER ; PRTMOD = 1 ;INITIAL PRINT MODE FOR LOCAL USER QUEPTR = 0 ;INITIAL QUEUE OR PRINTER ASSIGNMENT ; OSMLEN = 0X600 ;O/S MEMORY LENGTH IN PARAGRAPHS NMBUFS = 20 ;NUMBER OF DISK BUFFERS ; SRHDRV = 0XFF ;O/S PROGRAM SEARCH DRIVE (0=OFF,1-16="A"-"P",FF=BOOT DRIVE) DSKAST = 00,DSKDRA,01,DSKDRA,00,DSKDRB ;LDCOLD = 0 ;COLD START AUTOLOAD ENABLE FLAG (0=DISABLE) ;LDWARM = 0 ;WARM START AUTOLOAD ENABLE FLAG (0=DISABLE) ; FLSRTA = 0X03 ;SET FLOPPY DISK STEP RATE ; ; ***** PATCHES (6/26/84) ***** ; ;RVNFCN = 0XE8,[PATCH] ;PATCH 1.40-2 ;PATCH = 0XA1,CKTAST,0X89,0X44,0X55,0XA0,CPMVER,0XC3 ; PFNFCN+0X150 = 0XE8,[PATCH+0X0A],0X90 ;PATCH 1.40-4 PATCH+0X0A = 0X3C,0X3B,0X74,0X01,0XC3,0X44,  0X44,0XF9,0XE9,[PFNFCN+0X168] ; CHNFCN+0X4A = [PATCH+0X15] ;PATCH 1.40-8 PATCH+0X15 = 0XE8,[ENADSP],0XE9,[WARMST] ; ALVNIT+0X33 = 0XE9,[PATCH+0X1B] ;PATCH 1.40-9 ALVNIT+0X38 = 0XE9,[PATCH+0X29] PATCH+0X1B = 0XE8,[GETNAB+0X2C],0X74,0X03,0XE9,[ALVNIT+0X0C],0X8B, 0X5C,0X11,0XE9,[ALVNIT+0X3B],0XE8,[WRITDE],0XEB,0XF5 ; CMDINT+0X1FD = [CMDINT+0X10E] ;PATCH 1.40-12 ; ;SVCMGR+0X1F8 = [SNDREP] ;PATCH 1.40-13 (NETSVC) ; ;DAFCBP+0X3A = 0X5D ;PATCH 1.40-14 (FILLOK) ;DAFCBP+0X3D = 0X5D ;DAFCBP+0X43 = 0X5D ; ;SVCOSC+0X15 = 0XE8,[PATCH+0X2E] ;PATCH 1.40-15 (NETSVC) ;PATCH+0X2E = 0X8A,0X45,0X0D,0XFE,0XC0,0X88,0X84, ; 0X92,0X00,0XC3 ; ; ***** END OF PATCHES (6/26/84) ***** þÿ`òZòZ AL,AL ; Reset completion status OUT INTREG,AL CALL DELAY ; Couldn't hurt XOR CH,CH ; Get number of parameters MOV CL,[BX] JCXZ __CMD ; Are there any parameters ? MOV AL,=0X40 ; Write CLDB to formatter OUT FMTREG,AL CALL DELAY __FWT: IN AL,FMTREG ; Can formatter accept byte ? TEST AL,=0X20 JZ __FWT __PMOR: INC BX ; Get next parameter DEC CX ; Decrement parameter count JCXZ __PLST ; Is this the last parameter ? MOV AL,[BX] ; No, get the parameter CALL DELAY OUT HDCDATA,AL ; Output it to controller CALL DELAY JMP __PMOR ; Process next parameter __PLST: MOV AL,=0X04 ;DS‹\UŽD]&‹&‹_SŒÀŽØè[»rUèT‰ÓÇDU&Š< uCëö‰Ú»sUSèQ[¹èÜrEt…Éu)èôr:t"<.tëG<:tK»{U¹èºr#t6…ÉuèÒru+‰Ó< u èÅr uëó‡ÚJ‡Úë»ZS»rU¹ŒØŒÅè{:[ë[»ÿÿ‰\Oð(ÈtòˆÁ»sUŠC<0ræ<:s<,0ˆÄ �UþÀtׯ�UQ UˆÅÀrÀrèrÀràr< s ¢UYƒùtë$Yë¦lbè:ÿä’üª° è1ÿæ¢è,ÿ䢨 túä ªâû°èÿæ¢èÿ䢨uú¡lb$`<@_Ã0ÀÊDþÈÃTurboDOS 1.40, Copyright 1984, Software 2000, Inc. $($/$)$ <-- $Invalid command$Command not found$Program load unsuccessful$Non-privileged user$ÿ^U^U„U�\}ÿÿÿCOLDSTRTAUTWARMSTRTAUT€ÎVÎVÒVÒVë2*3J3‚3‰3…7�3x[x[¶3Ð3Ù3?2L&R&â`ÂÓ~üub­x[[&b&x[x[”x[i& Q‹�x[Qx[x[ˆ&”&– ¶&½&=?H?S?\?ý?Æ@’/I2Œ2x[Ø2à3ô3ê622ˆ;�<+>Ã>ÿ;<Ê&Ñ&(;;;œñ2$'Ø&Þ;5L ã á!=ä,*.*x[9*7º7Â�9x[Ö:â:î:ö:þ: ;;3¹ÿÿÿÿÿÿÿÿDIRDSK¸øWøWüWüWG OR AL,=0XFF ; set status reg  below control range? JB __C4 ; if so, continue CMP AL,=0X5F ; is key above control range? JA __C4 ; if so, continue AND AL,=0X1F ; mask to control values MOV CL,AL ; place back in reg __C4: CALL STOCIB ; store in char buffer TEST DL,=1<<0 ; was function key depressed? JZ __X ; if not, continue MOV CL,=ACR ; get terminator char CALL STOCIB ; and store input buffer __X: RET ; all done with keyboard service  #TITLE "NEC-APC Keyboard Interface Module" #PAGE 132,66 ; ; KBDAPC.A ; ; NOTE: This version handles APC keyboard input and calls ; the screen driver at entry point "SCREEN#" for output. ; ; Version: 07/12/84 ; MODULE "KBDAPC" ; module ID ; #INCLUDE "DREQUATE" ; common driver equivalences #INCLUDE "APCEQU" ; common NEC-APC equivalences ; KBDIREQ == 4 ; keyboard IREQ level DLYCNT == 40 ; delay in ticks before key repeat RATECNT == 3 ; rate count in ticks for key repeat ; ; LOC Data# ; locate in data segment ; CIBSIZ::WORD 64 ; console input buffer size CIBADR: WORD 0 ; console input buffer address CIIPTR: WORD 0 ; console input buffer input pointer CIOPTR: WORD 0 ; console input buffer output pointer ; CISPH: ; console input semaphore WORD 0 ; semaphore count WORD . ; semaphore list head WORD .-2 ; KBDFL: BYTE 0 ; keyboard locked flag DELAY: BYTE DLYCNT ; key repeat delay counter RATE: BYTE 0 ; key repeat rate counter ; ; Key translation table for keyboard data 5E-FF hex. ; A byte of FF in the table means key is ignored. ; KEYTBL: BYTE 0X18 ; 5E - Control-X BYTE "-" ; 5F ; #REPEAT 0X6A-0X60 ; 60 to 69 - undefined codes BYTE 0XFF #ENDREP ; BYTE "*" ; 6A BYTE "+" ; 6B BYTE 0XFF ; 6C - undefined code BYTE "-" ; 6D BYTE "." ; 6E BYTE "/" ; 6F BYTE "0" ; 70 BYTE "1" ; 71 BYTE "2" ; 72 BYTE "3" ; 73 BYTE "4" ; 74 BYTE "5" ; 75 BYTE "6" ; 76 BYTE "7" ; 77 BYTE "8" ; 78 BYTE "9" ; 79 ; #REPEAT 0X80-0X7A ; 7A to 7F - undefined codes BYTE 0XFF #ENDREP ; #REPEAT 0X96-0X80 ; 80 to 95 - function keys BYTE 0XFF #ENDREP ; BYTE 0X00 ; 96 - break stop BYTE 0X0D ; 97 - return BYTE 0X09 ; 98 - tab/back tab BYTE 0XFF ; 99 - undefined code BYTE 0X1E ; 9A - home/clear BYTE 0XFF ; 9B - undefined code BYTE 0X08 ; 9C - back space ; #REPEAT 0XF7-0X9D ; 9D to F6 - undefined codes BYTE 0XFF #ENDREP ; BYTE 0X0B ; F7 - up arrow BYTE 0X0A ; F8 - down arrow BYTE 0X0C ; F9 - right arrow BYTE 0X08 ; FA - left arrow ; BYTE 0XFF ; FB - ins BYTE 0X7F ; FC - del BYTE 0X0D ; FD - enter BYTE 0XFF ; FE - undefined code BYTE 0XFF ; FF - print ; ; Special table for screwed-up keys. Scan codes are converted. ; SPECTBL: BYTE 0X2D,0X3D BYTE 0X40,0X60 BYTE 0X3A,0X3B BYTE 0X3B,0X27 SPECTLN == (.-SPECTBL)/2 ; length of table ; ; Shift case table ; CASETBL: BYTE "1!" BYTE "2@" BYTE "3#" BYTE "4$" BYTE "5%" BYTE "6",0XD0 BYTE "7&" BYTE "8*" BYTE "9(" BYTE "0)" BYTE "-_" BYTE "=+" BYTE "`~" BYTE "[{" BYTE "]}" BYTE "\\|" BYTE ",<" BYTE ".>" BYTE "/?" BYTE ";:" BYTE 0X27,0X22 BYTE 0X18,"^" CASETLN == (.-CASETBL)/2 ; ; BOOTOF: WORD 0X1FED WORD 0XFE00 FKEYPTR: WORD 0 FUNCS: #REPEAT 0X10 ; Allocate empty func key BYTE 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 #ENDREP BYTE 0X1B,"OO",0,0,0,0,0,0,0,0,0,0,0,0,0 BYTE 0X1B,"OP",0,0,0,0,0,0,0,0,0,0,0,0,0 BYTE 0X1B,"OQ",0,0,0,0,0,0,0,0,0,0,0,0,0 BYTE 0X1B,"OR",0,0,0,0,0,0,0,0,0,0,0,0,0 BYTE 0X1B,"OS",0,0,0,0,0,0,0,0,0,0,0,0,0 BYTE 0X1B,"OT",0,0,0,0,0,0,0,0,0,0,0,0,0 #REPEAT 0X10 BYTE 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 #ENDREP BYTE 0X1B,"OU",0,0,0,0,0,0,0,0,0,0,0,0,0 BYTE 0X1B,"OV",0,0,0,0,0,0,0,0,0,0,0,0,0 BYTE 0X1B,"OW",0,0,0,0,0,0,0,0,0,0,0,0,0 BYTE 0X1B,"OX",0,0,0,0,0,0,0,0,0,0,0,0,0 BYTE 0X1B,"OY",0,0,0,0,0,0,0,0,0,0,0,0,0 BYTE 0X1B,"OZ",0,0,0,0,0,0,0,0,0,0,0,0,0 BYTE 0 ; ; ; Local console initialization routine. ; LOC Code# ; locate in code segment ; CONNIT:: IN AL,KBD_DATA ; clear intrps once IN AL,KBD_DATA ; and again ; MOV DX,&KBDISR ; get ISR entry point MOV AL,=KBDIREQ ; get keyboard IREQ level CALL INTENA# ; enable interrupts from device ; MOV BX,CIBSIZ ; get console input buffer size CALL ALLOC# ; allocate console input buffer MOV CIBADR,BX ; save console input buffer addr MOV CIIPTR,BX ; set console input pointer MOV CIOPTR,BX ; set console output pointer ; RET ; and exit ; ; ; Local driver entry point. ; CONDR_:: MOV AL,DL ; get function number CMP AL,=10 ; function number = 10? JZ __CO ; if so, do char output OR AL,AL ; function = 0? JZ CONST ; if so, do char status DEC AL ; function = 1? JZ CONIN ; if so, do char input DEC AL ; function = 2? JZ __CO ; if so, do char output SUB AL,=8-2 ; function = 8? JZ CONSI ; if so, do error shift in DEC AL ; function = 9? JZ CONSO ; if so, do error shift out XOR AL,AL ; clear return status RET ; and exit ; __CO: JMP SCREEN# ; CONSO: CONSI: CALL DMS# ; position to next line BYTE ACR,ALF,0 RET ; done ; CONST: CALL CHKCIB ; check input buffer RET ; exit ; CONIN: CALL CHKCIB ; check console input buffer JNZ __CI2 ; if char waiting, continue CALL CSRENA# ; enable cursor for console input __CI1: MOV BX,&CISPH ; get console input semaphore CALL WAIT# ; wait for console input CALL CHKCIB ; check input buffer JZ __CI1 ; if false alarm, continue __CI2: MOV CIOPTR,BX ; update buffer out pointer MOV FKEYPTR,DX ; Update function key pointer MOV AL,CL ; get char in reg RET ; and exit ; ; Check the contents of the input buffer. ; CHKCIB: MOV BX,FKEYPTR ; Get ^current func key buffer MOV DX,BX ; Initialize pointer return val OR BX,BX ; Is there an active key ? MOV CL,[BX] ; Get the char just in case MOV BX,CIOPTR ; Get the normal buffer pointer JZ __0 ; Is there a key active ? OR CL,CL ; Yes, is there valid data ? JZ __F2 ORH AL,0XFF ; Yes, return with it INC DX ; Update key buffer pointer __X: RET __F2: XOR DX,DX ; No, cancel function key __0: XOR AL,AL ; clear reg CMP BX,CIIPTR ; compare to input pointer JZ __X ; if equal, continue INC BX ; bump pointer MOV AX,CIBADR ; get buffer base ADD AX,CIBSIZ ; calc end of buffer CMP AX,BX ; buffer wrap? JNZ __1 ; if not, continue MOV BX,CIBADR ; reset buffer out pointer __1: MOV AL,[BX] ; load the char INC BX ; Index to shift status MOV CH,[BX] ; Load shift status PUSH BX ; Save buffer pointer CMP AL,=0X80 ; function key ? JB __C6 CMP AL,=0X95 JA __C6 XOR AH,AH ; Yes, calculate address of key SHR CH,=1 ; Is the FUNC shift down ?  JNC __F1 ADD AL,=0X16 ; Yes, shift up to upper set __F1: SHL AL,=1 ; Multiply key number by 16 SHL AX,=1 SHL AX,=1 SHL AX,=1 ADD AX,&FUNCS ; Offset into key table MOV BX,AX ; Setup function key pointer MOV CL,[BX] ; Get first character OR CL,CL ; Is there really a character ? JZ __F3 MOV DX,BX ; Yes, increment to next char INC DX JMP __C4 __F3: POP BX ; No, get next character JMP __0 __C6: CMP AL,=0X5E ; special soft keys? JB __XL1 ; if not, continue MOV BX,&KEYTBL-0X5E ; get key translate table addr XLAT ; load the real key value CMP AL,=0XFF ; undefined code? JNZ __C2 ; if not, continue POP BX ; Recover buffer pointer JMP __0 ; Yes, try reading next char ; __XL1: MOV BX,&SPECTBL ; get special sub table addr MOV CL,=SPECTLN ; and length __XL2: CMP AL,0[BX] ; match? JZ __XL3 ; if so, continue ADD BX,=2 ; select next entry DEC CL ; any left? JNZ __XL2 ; if so, continue loop JMPS __C2 ; else, continue __XL3: MOV AL,1[BX] ; get substitute scan code ; __C2: MOV CL,AL ; move key data to reg CALL CASES ; do caps and shift cases TEST CH,=1<<1 ; Is the control key down ? JZ __C4 ; if not, continue MOV AL,CL ; get char value CALL UPCASE ; fold to upper case CMP AL,=0X40 ; is key below control range? JB __C4 ; if so, continue CMP AL,=0X5F ; is key above control range? JA __C4 ; if so, continue AND AL,=0X1F ; mask to control values MOV CL,AL ; Return character in CL __C4: POP BX ; Recover buffer pointer OR AL,=0XFF ; Return status FF and Z = 0 RET ; ; KBDISR: PUSH AX PUSH BX PUSH CX PUSH DX PUSH DS ; save regs CALL GETSDS# ; get system data seg CALL KBDIN ; do keyboard request stuff MOV AL,=KBDIREQ ; get keyboard IREQ level CALL SIGEOI# ; signal EOI condition POP DS POP DX POP CX POP BX POP AX ; restore regs JMP ISRXIT# ; and exit interrupt ; ; ; Keyboard repeat routines. NOTE: Public entry called from "RTCAPC" module. ; KBDREP:: MOV AX,CIIPTR ; get char buffer in pointer CMP CIOPTR,AX ; compare out pointer, chars present? JNZ __X ; if so, skip repeat stuff IN AL,KBD_SIG ; read signal switches TEST AL,=1<<4 ; test repeat bit, reqeat on? JZ __X ; if so, skip repeat stuff CMP DELAY,=0 ; initial delay completed? JZ __C1 ; if so, continue DEC DELAY ; else, decrement delay count __X: RET ; and exit ; __C1: CMP RATE,=0 ; keyboard rate completed? JZ __C2 ; if so, continue DEC RATE ; else, decrement repeat rate count RET ; and exit ; __€€ííéI�]COPYRIGHT 1984, SOFTWARE 2000, INC. (VERSION 05/22/84) Œ`‰&bŒØ.£>ŽÐ¼`°àèž.‰@.‰B°ßè�.‰D.‰Fè= TurboDOS PC-DOS Emulator Copyright 1984, Software 2000, Inc. ºœ ±5èž„Àtèé̃>ž @ró¡œ ž £ž ŒÈ.£Ä±èx¢¡ èS¢¢ 諺«ŒË±èi»€ŠCþÈy4€T€è>è.´‰Ãèö±èAAèä. èݺ¥ R± è,[CŠ„ÀtÑ´C‰h ‰d ÃÆèÈuéC‰j  y < ué €T@»� Š< u€&T¿ÆCCÆOCÆMºx ±#èØ„ÀtöT@té »� ÆECÆXCÆE뼋™ Š&› „äu …Ût÷ÃàtéèƒÃ±Óã9ž rð€~ €Æ„ Ƙ ÿ ‡ „Àt … èǺx ±èp„Àt騠˜ ¢£ Ƙ º±èV¡œ £‚‹‚±3èDºx ±è<„Àuƒ‚ëäPŒÚ±3è)ºx ±è!XþÈté` ¢ èbèOŽœ Œt &¡=MZtéØ&¡£p &¡£r &¡.£H&¡.£J&¡H±Óà&+±Óà&£n ±Óè‰Á&‹ Â9ž séï& r9ž r ¡ž &+ )ÈëŒÀp .JŒÅƒÅ&.Q&‹ã&‹�Ã&‹?‰ê&WŽÂ&ƒÃâë[±Óã‰Ù9ètŽÝŽÀs1ö1ÿüë‰ÎöN‰÷ý󥋞 èj ëWŒp .ŒJ.ÇH‹‚+œ ±Óâ�ꀠ£ „Àu°€´‰n ‹ž è0 ¡¢ ‰ÃKK‰r Žp &Ç-£¢ ƒ¤ Çl °$è\‰® ‰° »ø ´ÆC¹ Æ Câú¹ÆCâúþÌtæˆàþÀtíèYtèDt¿ø è.èIt è4t¿ èº ‹j è>r‡ÚˆC‡Ú�ú› rîè,sû‡ÚÆ K�ë ˆ ¾œ ¿Žt ¹€üó¥è$±è8Žp ‹&r Žt Œ‚Ç€€1À‹l ‹n ‰Â‰Æ‰Ç‰Å€T Žt .ö tÌ.ÿ.HŠx þÊx ˆ¡ ±èá ‡ „Àt  … è#¢¢ €T€évüè@èàë.è8èìë&è0èúëˆÂRèŒZ8Ðt Rè…è€Z8ÐuÃèèøöT€té6üén ¢ èÏÿ±è‚èf‹h èDrS< s @P°^è Xè[ëçèjþx ¹ŒØŽÀüó¥Ãºd ±˜èAC‰d …ÛËd KtŠ<;Ê„ÀùtCèÀòÿ± é.Ž>ŒØŽÐ¼`Š¡ ±èè¹ŠþÀt SQ‰v è Y[�îâé±èåöT€töT t€&Tßéuû1ÀŽ`‹&bËÍ#Ë´ë2���������������êÆX.Ž>�rœ�~�z�|ˆÌ°ëû.Ž>�r�|�z�~£d‰f‰h‰j‰6l‰>n‰.pŒtŒv‰&xŒØŽÐ¼`Še·.ö€tn‹.pŽtŽv‹&xÿ6~ÿ6zÿ6|ÿ6rÏèö AX=‹dè èæ BX=‹fèp è× CX=‹hèa èÈ DX=‹jèR è¹ SI=‹lèC èª DI=‹nè4 è› BP=‹pè% èŒ CS=‹zè è| DS=‹rè èm ES=‹tè÷ è^ SS=‹vèè èO SP=‹xèÙ è@ PS=‹~èÊ è1 IP=‹|è» è» ÃŽz&‹ .‰H&‹ .‰J°"è3 &‹&‹°#è$ &‹&‹°$è ¡d‹f‹h‹j‹6l‹>n‹.pŽtŽv‹&xÿ6~ÿ6zÿ6|ÿ6r.ÿ.H±èO ¢dÊj±èB Ã.Š6±#è> ¢dÃ.Š6Šj±$è, Êj±è Êj€úÿu±è ¢d„Àt�&~¿ÿÃ�~@ñèò ñèì ¢dËjŽr± èÚ ËjŽrþS‰Ú± èÅ [þCŠC´ÃÆ ñ è° ¢dñ è§ „Àt±èž ëð d<ué>ÿ<uéqÿ<t–<t’< t§Ædò±èr Ç€€¡r£‚Êj±è\ ÃèÛuèm‹6v ƒþÿtoèÛÆD ÆD$ÆD%�èŽuX‰—¦‰‡¨±è) è &€=uþÀ&ˆ&ÇE &ÇE€‹v ‹‡¦&‰E‹‡¨&‰E1À�}¹üó«ÇG!ÆG#èíÆdÃÆÿÆdÿÃèUuèç¢dÃÆdú€±è» ¾x èIŠeè® <ÿuéž±Óã�À‰Þè‰u&ŠEÿŽ‚‹>€uƒÇ&ÆEùÿ&ÇEú&ÇEü&ÆEþ&ˆEÿ x „Àu VW±è^ þÀ_^&ˆˆVFG¹ üó¤1À¹ó«^¿\WŒØŽÀ¹üó¥Zè‡u&Ž‚‹>€&€=ÿuƒÇ&‰U&‰E‰Ú±è ÆdÃÆdÿÃèƒuè¾x 艱èð ¢dÃèluè¿è^¢d<tè®ÃÆdÿÃèPuè£èû¢d„Àuè’ÃÆdÿÃè4uèÆ¾x è:R±è  ZR±è™ Z„Àu ±è� „Àuè-þâdÃèu蕾x è ÆD½¹ &ŠC$n¾DöÄt Š„ÀuFGë¤öÄtŠ< uƒÆƒÇë¹ó¥öÄtŠ< uë¹ó¤Ã D„Àuƒùu E,Ar <sþÀ¢DéXÿÆdÿŽt‹n&ÆG Ãè.r+t'<:t%<.t!<*t€ë…ÿu°ë5WQèDY_Ž‚&ˆGâçè"‹—ª‹‡¬Ê+—¦‡¨r Ðt°ë0ÀÃè&‹M…Éu¹€‹v ÃþO%uèÆG%€°¦*G%´‰ÆŠÃèÙ�W&S±èëZR±!èä[„Àt �w&¹€ÆFâúƒG!€W#Ãèn‹—¦‹‡¨+—ª‡¬s°ëW‹>€ë…ÿu°ëIŽ‚&ŠWQèQY_„Àu7Gâãè2‹—ª‹‡¬Ê‹�¦)Ñ‹�¨Ás€O$@‰—¦‰‡¨&‰U&‰E0ÀÃèE&‹M…Éu¹€‹v ⤠þO%uè „Àuè=ÿÆG%€°¦*G%´‰Æ ¤ ˆ€O$€0ÀÃöG$€u0ÀÀg$ƒo!€_#�W&S±èýZR±"èö[ƒG!€W#„Àt°Ëv èÄÿ‰ÚR±è×[„Àu$öG$@t€g$¿Š‡¦$u°€ˆG €O€‰ÚR±è¯[ÆÿÃR±#è¤[„Àu2ÆG ÿ‰ÚR±è“[„Àu!‹W!‹G#%ÿè…ŠO „ÉtöÙ€Á€µ)Ê8ÀÃV±èfˆÄþÄèN^&Š„Àuˆàˆ½¹ &ŠˆEâø‰òÃè.&‹U ¸è8&ŠM µÊÃè&þE &€} €r &ÆE &ÿE ÃŽr‹>j&€=ÿuƒÇ8ÀùÑâÑÐâúÃûé×òûè¥éÐòûèÔéÉòûèÿéÂò¡j±Óèœ )ž )ž éó° ¹®è;°!¹äè3°"¹Pè+°#¹uè#°$¹yè°%¹€è°&¹‡è °'¹Žèé8ŒÊSˆÃ·ÛÛ1ÀŽØ‰‰W[ÃSˆÃ·ÛÛ1ÀŽØ‹‹W[ñº'èºèèºdè º èþÁºµÿþÅ)ÓsúÓˆè„Àu„Ét0èÀþÁÈøèˆØPÐÈÐÈÐÈÐÈèX$0<:rèœÃ1À¢U¢V¢W�û€ttKÆU0 U…ÛyþÈèµS…Ûy÷Û9Ã[|…ÛyþUÃëÜþU)ÃëÔ…Ûy þU Uè‡àU$uþ»‰Ú»ºŠ´9Â| þV)ÂCëïþVBˆWÆ»¸ÿÿàU$uþ»»€>U0tw Uè5)ÃþUëéþU Uè#ÃëÛ¾º0äþVtŠFÃëó W´ÃÆ»Ã$¸mu@Ãèd Ãbué¸ÿÿËǣ¡‹E!££¸Ã±!ë±"U‹ìWVQ‹V�F€U±Íà]YQU‹VÍà]%ÿu‹^ƒG!€W#ÿNuÔY‹F^_]…ÀÃ<tñ<tí£bëè¸Øÿèüó�FØPÿvèHƒÄ‹øWèùY�FØP¸PèƒÄ‹øè‹Ç=ÿu ¸ÿÿ£b¸ÿÿøÃU‹ìWV‹N‹VÍà^_]%ÿËÜWVü‹w‹‹×G¹ ° óª¹*Àóª‹ú+Ò± ¬<0r<9w ,0’öáÂ’ëí`ÇPè Yu‹Ç_…ÀË܋G;js;Ãs ;hr£`+ÀÃÇbüÿ¸ÿÿ…ÀËÜ+_‰jË܊G*äûŠT¶þÊè3þ„Òu÷èTs(èñúŠ<åtè~èštèþâöëãŠG<ærÜÆGåèûëÓèe0ÀÃèèÀúÆGåèðú°ÿùÃè²úŠ<åt?‰Ú�”š¹ ŒØŒÝè§‹\oSèós*è�úŠ<åuò‰Ú�œš¹ ŒØŒÝè…è®ú[‰\oèpúÆåC0ÀÃ[°ÿùÃèAŠ„Àu:Sÿtoè©èQú‰å‡^‰\o[ZŠ<åuƒÃ ŠƒÃŠþÀuþÈöÁ€u°‡Úˆ‡ÚÃ0ÀÊD'èÈ ˆÂ¶»¶WÓÊD'è#´WˆøØt°ÿùÃà 0À&ö€töÐÃèur„Àuõèt ÿDoèØùC0ÀþÀˆÂÃCþˆÐ<t$uÃIˆèÈuùËLI°ÑéþÈuúAÃ0ÀˆDoˆDpÃè"ÿDo‹\o)ÓË\Kº¹ðB)Ësûè‡Ú)Ó‡ÚÊ\·è,ÛþÈuú‡ÚÃS�”š»Ó‰Ú[¹ËRŒØŒÝè[[¹ÊC¶èXtŠ7CIˆðÐÃèüèÉ&Š$òWtÑèÑèÑèÑè)Ár(‰WÂëS‰ÃèÖZ‡Ú„Àu‰W€O €QR‰ÚèÔ[ZYâ“ÃèFY õW(Èu»ôWŠþÈxþˆé5ÿ¢õWÃöD&uèÙèëè_÷Ó!þWŠXˆÍöÕŠD( ȈD0ŠD( èˆD(賄ÀtþÀuvè�uðè鮊D0„Àu/öD/@u)‹\(SŠX¶þÂ0À)Ó‰\(rè{[‰\(„Àt è{ŠþÈy5‹öW»öW9Ót ‰T1èAè2ëL‹üW‰\1èUŠþÈy‹\1‹W»úW9Ó‰Óuåètéwÿèè-ö@tèœè‚�tèktéÏè!èÍëèlèmtÆDèÄÀt鱋\1‹G‹_Št0²ÑêÓöD&t‰\+‰D-ë‹T+‹l-öD&t‡Ú•¹€èVöD&t躀@KŠD0þÀ:rˆŠD( D0ˆD(éŠèªè�ˆCŠD(ˆCŠD)ˆCŠD*ˆC XþÀöD/€tŠD0ˆC€'ŸÃè:ŠDU$¢ôWŠDV<s°¢õWé�ý ôWŠ&õW‰DQÊDUè„ÀtÊDUèoˆÁŠlVë¹ÿð€ùÿt è Ó‰þW€åþ»úW€ùÿt Sèï…Ó[uéÁ‹»úW9Ótr‰Ó‰\1€ùÿt:Ou×öÅ€uèêö uPèçŠþÈxGè»u¹èÔö@t2Qè%tèuYè¦ë è¦è¸€@€ Y€ÍöÅ@tQègYöÅ u�ëè€téwÿ‹\1étÿ€ùÿtAöÅ€t<öÅtˆè$`<`u/Qµ»XËË‹…ÒtSQˆÈèY[öD€uÇ»¶WËÆèöY»úW‹»úW9Ót » Ó€'߉ÓëëöÅtöÅuéÏäËþWˆÈéŸQèYöÅ€t QèÎY0ÀþÈûúW‹»úW0À9Ót‰ÓSè [„Àtê‰\1ÃÊd'èîˆD'V¹ŠD':°uFCâó0À^ˆd'uŠD0:r °uöD/€t°ÿÃÆDèm„ÀÀ'¿è–ŠèX蓊„ÀtJ´‰D$ ôW:DsÆèuŠºÿÿè û„ÀtæþÀuíé%è_¹VŠCˆDFâ÷^‹\1‹G‰D"‹G‰D 0ÀþÈÃè/èééã‹\1èx»ÓÆÿ»öWé{‹\1èd»úWéoè è#„ÀÃèè„Àuöúë ºëº ëº ‹\1ÓÊD'é"‹úWºúW9Óû3X¹QS»4XËËˉX´º4X‹X¹‡ÚЇÚ:uBCâòëBâýþÄëâ[ˆ'KYþÉyÅË\U‰ò¹‹D]ŒÝè"ö„ˆ€t6‹TèÊŠDˆD莈DO„Àt.Š<u(‹\UƒÃŽD]‹T&‰‰Ó‹T ‹l 顊<s<sÆDOÿÈDÆDŠD,r uéþþÈué;ËL$IŠDþÈxÑéëøA‰L‹\$è ‰\‹TŠDŠdþÌxÐèÑÚëö‹\´öÇ€uÑãþÄëõ‡Ú¹ÿÿA)ÓsûþÈy÷ÓIAþÌx ÑêÑá)ÓsóÓëð‰Ú‹\Ë‹L ‹D"‰D ‰L ‰\‰T‡Ú‹Lˇڋ\)Ós,Sˉ\èQè Z„ÀuH‹\ ‹LÙ÷Ú‰Ó‰\è7º‹\C뻊Dˆ‹\‹T0À)ÓsŒØŽÀèo„ÀtŠDºÿÿèöøþÈtþÀtäÃè<ŠDþÈxÑãëø‰\ÊD$ÀˆÂ¶»XÓ‹…Òu%SÆè*„ÀuŠDºÿÿè±ø„Àtì<ÿuïé¨á[‹T‰‰Tè91ÀÃÆŠT€â¶»4XÓÓÓ0Àö€uŠˆDÿgÃRS$ˆÂ¶»$XÓŠ[ZÃ�\‡ÚŒÝŒØ¹ é<‰Ó0À€?s‹WŠ·ÛèAÿ—dXñ ë#±ë±ë±ë±è�Kú‰ŽXÃJ‰�Xñëm±!ë±"Q±èaˆÂ±0ÀèÑþÈxÑãëø‰Ú»0À‹ŽX…ÉtÓsþÀâø‹�XÓsþÀ‰³X¢µXº’XR±èZY„Àuèà ÿÃB‰Óñ3ë »\ñë±°ÿé»ÐÇDS‹D]‹\UŒÝº¸X¹ ènÆØXÿtjÇDj\YÿtlŒ\lèOtéX»ÜY¹0ÆCâúèr»\YŠ„Àué|‹W‹G Àt‰Â‹G Àt‰Â…Òt]‹GS£ Z‰