IMD 1.16: 29/05/2007 18:38:12 FOGCPM.067 ååååååååååååååå--FOGCPM067HOSTCM BAS HOSTCM DOCKERMIT COMV KERMIT DOCOSPLNK70ASM€ !"#$OSPLNK70ASM,%&'()*-06-00 86 ®OSPLNK70COM+,-OSPLNK70DOC4./01234OSPLNK70DSC 56PLNK0124ASM€789:;<=>?@ABCDEFPLNK0124ASM0 AND K<3 THEN LPRINT CHR$(7) 490 K=INSTR(SY$,"N") 500 IF K<>0 AND K<3 THEN GOTO 440 510 GOSUB 630 520 GOTO 390 530 GOSUB 320 540 PRINT " *** DONE ***";CHR$(7):CLOSE 550 GOTO 40 560 SY$="" 570 FOR I=1 TO 200 580 TT$=INKEY$ 590 IF LEN(TT$)=0 THEN GOTO 610 600 IF ASC(TT$)>31 THEN SY$=SY$+TT$ 610 NEXT I 620 RETURN 630 REM QUICK NERVE CHECK 640 GOSUB 320 650 PRINT ">" 660 FOR I=1 TO 5 670 A$=INKEY$ 680 IF A$="/" THEN CLOSE : PRINT CHR$(7): GOTO 40 690 NEXT I 700 GOSUB 270 710 RETURN >")+1 230 C$=MID$("ABCDEFGHIJKLMNOP",INDEX,1) 240 IN$=IN$+C$ 250 IN$=IN$+CHR$(13) 260 RETURN 270 REM CONSOLE TO MODEM 280 J=PEEK (3) 290 J=(J AND 252) OR 1 300 POKE 3,J 310 RETURN 320 J=PEEK (3) 330 J=(J AND 252) OR 0 340 POKE 3,J 350 RETURN 360 REM FILE SEND 370 INPUT "FILE " ;FI$ 380 OPEN "I",1,FI$ 390 IF EOF(1) THEN 530 400 LINE INPUT #1,DT$ 410 IN$="P0Z"+DT$  HOSTCM.BAS is an Osborne specific terminal interface program to the HOSTCM mainframe comms program distributed by WATSOFT, Inc. It is a little crude, but will allow error free uploading (the only thing I needed) of a file to an IBM mainframe running VM/CMS. After establishing comms with the mainframe, and booting HOSTCM on it, load up BASIC on your OZZY (make sure disk is SETUP for your modem's proper baud rate) and run HOSTCM.BAS. Everything you type will be sent to the mainframe, with the needed checksum and line end chracter appended. It will also be echoed to your screen in half-intensity. TYPE "BYE" to halt the program, and type "FILESEND" to send a file, all other input typed at the } prompt will be sent to the mainframe. Note that replies from the IBM will take a few seconds to be processed by the program. It uses a novel scanning method to get the host response. This is needed since the program talks to the modem by switching the console to the serial port. If it didn't timeout, a missed host response would lock the keyboard. The program will retransmit a record if negative acknowledged by the host, and will beep the bell if an error or text message is sent by the host during a file transfer. The message will of course be displayed on the screen. Press the "/" key to abort a file xfer. The > prompt is displayed when the program looks for this signal, but just hold the key down until you get the } prompt back (less than five seconds). For further information, check with your mainframe system manager, or WATSOFT. You'll need a list of the valid HOSTCM commands at least. Enjoy! Bob Scott Silicon Valley Chapter FOG July 1983 (edited by Jim Woolley) e that replies from the IBM will take a few seconds to be processed by the program. It uses a novel scanning method to get the host response. This is needed since the program talks to the modem by switching the console to the serial port. If it di!9"ï$11% Í!@§+,w# Â:Áïæ2¦+Í0ÍGÍ;¤"!X>ͶÃp!LO éÃyÃÃfÃÆýÃñèöÃXéÃÿ aÍÃ0 �ÍÃ0g%>ͶÃ{þÊ¿2†&ë6$ÍC j"Í g%Í>2…&>RÍ Ã{ÃÂÍC>!"\%"^%2[%2`% d"Í!Íç>R2b% ÄÍ*\%Íç:b%þDÂÍnÃæþF ÍEÃæþRÂÍWÃæþCÂ(ð ÍÃ0þAÂ8 ÍÃ0 ÍÃ0 â!Í>€2>%!€"B%É:`%þúj1 Íÿ<2`%Í>ÃÅþS´:`%2a%>2`%:…&<æ?2[%*\%#"\%:†&!g%Í!g%ÍÙ2†&>YÍ ÿ>F2b%ÉþE¿Í*ÿ>A2b%É:[%2…&>2†&>NÍ ÿÉ:P%Æ w#:R%Æ w#:T%Æ w#:V%Æ@æw#:X%Æ w#:Z%w#>É2„&~Þ 2O%:„&þø##~Þ 2S%:„&þø#~Æ@æ2U%:„&þø#~Þ 2W%:„&þø#~2Y%É:`%þúXO Íÿ<2`%Í>ÃÅþS³:a%þúz1 Íÿ<2a%:[%=G:…&¸ÂÅ d"Í*^%#"^%Íç>2`%!g%ÍÙ2†&>YÍ ÿÉþZÂþ:a%þúËn Íÿ<2a%:[%=G:…&¸ÂÅ d"Í*^%#"^%Íç>2`%2†&>YÍ ÿÉþFÂ@:[%G:…&¸ÂÅ<æ?2[%*\%#"\%ÍÄ Ã¿ÍK:`%2a%>2`%2†&>YÍ ÿ>D2b%ÉþBÂc:[%G:…&¸ÂÅ>2†&>YÍ ÿ>C2b%ÉþE¿Í*ÿ:`%þú�� Íÿ<2`%Í>ÃÅþDÂ:[%G:…&¸Êá:a%þú®� Íÿ<2a%:[%=G:…&¸ÂÅ d"Í*^%#"^%Íç>2`%2†&>YÍ ÿÉ<æ?2[%*\%#"\%:`%2a%:†&Í¢ ÿ>2`%2†&>YÍ ÿÉþFÂY:a%þú&O Íÿ<2a%:[%=G:…&¸ÂÅ d"Í*^%#"^%Íç>2`%2†&>YÍ ÿÉþZ²:[%G:…&¸ÂÅ<æ?2[%*\%#"\%*B%:>%=þúˆ6#Ã|Íô ÿ\Í:`%2a%>2`%2†&>YÍ ÿ>F2b%ÉþE¿Í*ÿ>\ͶÃ0>ͶÃ0>2¥&\ÍþÿÂí ìÍÃ0!€…o"B%:\w!¦&:¥&O "F%:¥&Æ2¥&*B%~#"B%*F%w#"F%xþú\ÍþÿÂí:¥&Ö2¥&!¦&O "B%!\"F%*B%~#"B%*F%w#"F%xþú[ÍC>2[%2`%!"\%"^% d"Í!Íç>S2b% ÚÍ*\%Íç:b%þDµÍ·ÙþFÂÀͲÙþZÂËÍx ÙþSÂÖÍ ÙþBÂáÍ ÙþCÂñð ÍÃ0þA ÍÃ0 ÍÃ0:`%þú¶ Íÿ<2`%!g%ÍÙ2†&:\%2…&>SÍ ÿÍ>ÃæþYÂ{:[%G:…&¸À<æ?2[%*\%#"\%:†&!g%Í:`%2a%>2`%>F2b%Í‚ ÿÉþN§ d"Í*^%#"^%Íç:[%2`%>F2b%ÉþE¿Í*ÿ:`%þúŶ Íÿ<2`%!g%"H%!]"F%xþÂê>.*H%w#"H% xþ ò *F%~#"F%þ!úÙ*H%w#"H% ÃÙy2†&*H%>$w j"Í g%Í:[%2…&>FÍ ÿÍ>ÃæþYˆ:[%G:…&¸À<æ?2[%*\%#"\%:`%2a%>2`%>2|23%>ÿ24%Í ÃtÃþÿ¿>Z2b%É2N%>D2b%ÉþN¬ d"Í*^%#"^%Íç:[%DÍ ÿÍ>ÃæþYÂI :[%G:…&¸À<æ?2[%*\%#"\%:`%2a%>2`%Í Ã> 2N%Éþÿ¿>Z2b%ÉþNÂm  d"Í*^%#"^%Íç:[%2†&>ZÍ ÿÍ>ÃæþYÂè :[%G:…&¸À<æ?2[%*\%#"\%:`%2a%>2`%\ÍÍL Ãâ >F2b%É>B2b%ÉþN  d"Í*^%#"^%Íç:[%2†&>BÍ ÿÍ>ÃæþYÂs :[%G:…&¸À<æ?2[%*\%#"\%:`%2a%>2`%>C2b%ÉþN—  d"Í*^%#"^%Íç:[%%5òà Íô Ãæ*@%~#"@%¸Âé ~#"@%!�&5Wæ€_zæ¸Êè zÆ@æ³*B%w#"B%ï Å\ÍÁþÊ  ©ÍÉ!€"B%>2>%Ãá:Y%O:4%þÊ. Íó Ãð :O%Ö2�&!!&"J%:�&=òI xÃá2�&:>%=úY 2>%Ãk Íó Ãb Ãk xþÂáÃð *B%~#"B%Wæ€_zæþ ú˜ þʘ ¹Âã !�&5*J%w#"J%Ãã ³þÂÌ :3%þÊÊ :;%þº *B%:>%Wzòà >2>%xÃá~#þʵ >2‚&!�&5*J%q#"J%:‚&Æ@æ*J%³w#"J%Ã> >ÿÉ:3%þÀÅÕå!>%:4%þÊ 6€>24%à 6!€"B%\ÍáÑÁ:D%Ö2D%Âá:E%þÊD Ö2E%>€2D%Ãá>ÿ23%Ãá:¥&Öø2¥&!¦&O "B%!\"F%*B%~#"B%*F%w#"F%xþúk #\Í:}þú— Ù æ2D%:~°2E%>ÿ24%>23%2h2j2|\ÍÃá!g%"H%!]"F%>2�&2‚&2\ p#<þ úÝ *H%~#"H%þ. !e"F%:�&2‚&> 2�&Ã4 þÊU *F%w#"F%:�&<2�&þúå 2‚&*H%~#"H%þÊU þ. *H%~#"H%þÊU *F%w#"F%:�&<2�&þ ú4 *H%6$ j"Í g%Í:9%þÊ÷ \ÍþÿÊ÷  Í:‚&þ• :�&2‚&P_þ ¢ ÿ!\6&ÅÕ\ÍÑÁþÿÊã xþÊÉ {þÊÚ Ã¢ {þ ú¢ ÊÚ :‚&_â  ÍÉ!hF6$Å ]ÍÁ!hp\Í>2h2j2|\ÍþÿÂá ©ÍÉ2‡&!c%>w#:†&Æ#w#G:…&Æ w#€G:‡&w#€G:†&þÊW=2†&~#€GÃDxæÀ€æ?Æ w#:W%w#>wÍxÃæÃá:S%2�&:�&=þú”2�&:U%_ÍÃ~::%þʯ:b%þSʯÍïþ¤!c%~þÊá_Í#òåÅ!<%N!Í éÃßÃéÃÜÃîÃøÃýæêýö€Ãýö€Ãýæâýö€ÃýæÃýÁáÉÍ@æÊ{ÍÀÃ@Í@æÂ, ÍþÊÍþ ÂÉÍ@G:<%þxÊáæÃá ²ÍÍ÷ÃæÍÃ>þÂLÍÃæþÊWGÖ#2†&ÍÃæþÊW2…&€G:…&Ö 2…&ÍÃæþÊW2�&€G:†&2‚&!g%"H%:‚&Öú¿2‚&ÍÃæþÊW*H%w#"H%€GÜÍÃæþÊWÖ 2ƒ&xæÀ€æ?G:ƒ&¸Êìž ÍÉ*H%6:�&Ãá!Á%"L%ÍÃæ*L%w#"L%G:X%¸Âý!Á%"L%Ãá*L%~#"L%þ ÂáÉ>A2b% t"ÍÃB ^Í:†&O!g% >$w g%ÍÉ>ͶÃ{>2`%:`%þúx& ÍÃ0<2`%>2…&>2†&!g%6F>GÍ ÃmÍFÃeþYÊ0þEÂeÍ:Ã0>ͶÃ{ͺÃ0Ã0>2`%:`%þúÐZ ÍÉ<2`%>2…&>2†&!g%6L>GÍ ÃÇÍFÿþYÊáþE¿Í:É>ͶÃ{ͺÃ0Ã>ͶÃ{*ï$ùÉ>\ͶÃ{>ͶÃ{!5%6ÿ!€"B%\Í>2h2j2|\ÍþÿÂ0 ÍÃ0>ͶÃ{ XÍÃ0>ͶÃ{ ”ÍÍÁ ·ÍÍ ÍÝÃ0ÔÍ@æÈÍ@æ_:8%þÊÍ:7%þ‹{þÈþÂÍ>27%à:5%þĽÍàÿÍþÊá_:=%»Ê {ÍÀ_ÍÝ:6%þÊá{æ_ÍÃáÿÍþÊ Gæ_þCÂR ÆÍ:5%þÈ>25% {Í*B%6\Í\ÍÉþSÂ]ÍÄÃáxþ?Ânm  Íà _:=%»Â�{ÍÀ_ÍÝÃáÍÃá>27%{þAú­þLò­ÖA!y"_ë ÍÉõÍñ_ÍÉ*B%s#"B%}þÀÕÍÝ\ÍþÊä ©ÍÍÝ!€"B%ÑÉ#!ˆ>ͶÃp!O éêÃ+ÃÅÃ{Ã%à ÃdÆÃçÃW‰#!, >ͶÃp!;O éÃLÃA>ͶÃ{Ã0>ͶÃ{Ã0>ͶÃ{‡! ÍÍæ_þAÊ{þBÂ… y2¦+Í�Ã0x ÍÃ0>WÍ @ •:¦+·>Vʤ>U2Áïà @>ͶÃ{5 ÍÍ2=%Ã0Ê#![ >ͶÃp2�&>ͶÃ{:�&26%Ã0Ê#![ >ͶÃp2�&>ͶÃ{:�&28%Ã0Ê#![ >ͶÃp2�&>ͶÃ{:�&29%Ã0Ê#![ >ͶÃp2�&>ͶÃ{:�&2:%þÊV>ÃZ>2<%x26%Ã0Ê#![ >ͶÃ{2�&>ͶÃ{:�&2;%Ã0¡#!@ >ͶÃ{2�&>ͶÃ{:�&2<%Ã0>ͶÃ{ÍÄÃ0ͼÃ0>ͶÃ{! Í:6%þÊÚ÷ ÃÝû  Í ! Í:8%þÊø÷ Ãûû  Í! Í:;%þÊ÷ Ãû  Í1! Í::%þÊ4÷ Ã7û  Í2„&|õæðÍñæÍ}õæðÍ>ÿ2„&ñæõþ :„&þ ñÉ>ÿ2„&ñþ ú0Æ7Ã2Æ0_åÍáÉáå"[$!9"Y$ë"]$ë!c$"ç$"é$>2V$2W$>ÿ2X$ R$Í *]$ëÍÉ*Y$ù!c$"é$>ÿ2X$*[$é*Y$ù!c$"ç$"é$>2V$2W$>ÿ2X$ R$Í *]$ëÍ*[$é2U$ÍüþÊ3þÊ þÊþÊùþÊÞ æ#ÍÉë"_$͵þò'æþÂÍ>2V$*ç$+"ç$"é$!W$5Ãäþ?Ê"þ Ìx*_$ëÃá!V$6*_$w#"_$Ãä͵þðæþÂ]Í>2V$*ç$+"ç$"é$!W$5Ã3þ?˜ 4$Í R$Í *]$ëÍ*é$>$w*ç$+"ç$ c$Í>2V$Ãtþ ÌÃá"a$ë"_$F#"ë$*é$"í$xþÈ*ë$^#{þÿú±͵þòŸæþ? >2V$!W$5 *a$ëÍ R$Í *]$ëÍ*é$>$w*ç$+"ç$ c$ÍÃtþÂ~>2V$ÕÅåÍÍÃ;Í*ç$+"ç$"é$!W$5áÁÑû*ç$+ëáå~þ$ÊW#ëw#ë:W$<2W$ÃB:W$<2W$ë> w#"ç$"é$áåë Í ÍáÁÑÓåÕÍÍÑ  $ÍÇÑá#V#^{Ãáþaú«þ{ò«æ_V#ºÊ»{þò»ÿ"ë$*í$"é$òøK{þÈF#ë*ë$~‘O¸Êéð*í$ úáëF#ë~#þaúþ{òæ_¸ÀÃìë"ã$6#"å$> p#<þ ú͵þòmæþ?Â=!V$6*ç$+"ç$ÃäþÂ_>2V$Í*ç$+"ç$"é$!W$5Ãt{þÊðþ òðÃáþ.ÂŽ{þÊðþ òð *ã$ "å$ Ãþ:«{þÂð*å$+~Ö@"å$+wÃþ*ÂÓ{þÊðò¾ÃÀ *å$>?w#"å${¸úÀÃþ0úðþ{òðþAúäæ_*å$w#"å$à $ÍÉÃõÕå:V$þ±!W$4Í*ç$w#"ç$þÂ< ^"Í *]$ëÍ!c$"ç$!W$6ÃtþÊNþÂx X"Í:W$==þòbÍÃ2W$ ["Í*ç$++"ç$Ãtþ?ÊœþÊœþ Ê”þ Ê”þ ¤Í:W$þʇ>ÿ2V$ñþ Êþ ÊÃáÑñÉåÅ:V$þÌü*é$~#"é$þ ÊÑþ Âå:X$þ·>ÿ2X$> ÁáÃõ>2X$ñÁáþÊþ?Êþ Êþ Êþ Àå*é$+"é$áö€É b"ÍÉ CUCCA/NIH Osborne 1 Kermit-80 - ver 3.1 $Kermit-80>$Delete it? $ $ ?Unreconized command$ ?Illegal character$ ?Not confirmed$=& T%Bad checksum$='/Waiting .....$='/Receiving ...=#5$='/Sending .....=#5$='/Completed $='/Failed $=& T%Renaming file to $ ?Unable to receive initiate$ ?Unable to receive file name$ ?Unable to receive end of file$ ?Unable to receive data$ ?Disk full$ ?Unable to receive an acknowledgement from the host$ ?Unable to find file$Unable to rename file$ ?Disk full$ ?Unable to tell host that the session is finished$ ?Unable to tell host to logout$ [Closing the log file]$ [Connected to remote host, type $C to return] $ [Connection closed, back at micro]$Control-$ Confirm with carriage return $ Input file spec (possibly wild) $ Type the new escape character: $ BYE to host (LOGOUT) and exit to CP/M CONNECT to host on selected port EXIT to CP/M FINISH running Kermit on the host HELP by giving this message LOG the terminal session to a file LOGOUT the host RECEIVE file from host SEND file to host SET a parameter SHOW the parameters STATUS of Kermit$ BAUD rate change CPM-CREATED-FILE will be sent ESCAPE character change IBM (parity and turn around handling) LOCAL-ECHO echoing (half-duplex) VT52-EMULATION$ PAD-CHAR PADDING$ EVEN MARK NONE ODD SPACE$ OFF ON$ NO YES$ ? This message C Close the connection S Status of the connection Typing the escape character will send it to the host Command>$ on$ off$ Local echo$ VT52 emulation$ CPM created file$ IBM flag$ File warning$ Escape char: $ Parity: $none$mark$space$odd$even$ baud $ Type a letter corresponding to the baud rate desired. (A) 300 (B) 1200 Letter: $ CUCCA/NIH Osborne 1 Kermit-80 V3.1 Number of packets: (hex) Number of retries: (hex) File name:$$ $ T$$=#5 $=%,$='/$=& $ $ $ $D$E$F$G$$ $T$T$ BYE$!!CONNECT$EXIT$FINISH$HELP$LOG$ LOGOUT$RECEIVE$ SEND$SET$SHOW$STATUS$ BAUD$CPM-CREATED-FILE$ESCAPE$ FILE-WARNING$IBM$ LOCAL-ECHO$PARITY$RECEIVE$ SEND$ VT52-EMULATION$PAD-CHAR$PADDING$EVEN$MARK$NONE$ODD$ SPACE$ ON$OFF$NO$YES$ ?Program error: Invalid COMND call$ ?Ambiguous$ ?Illegal input file spec$ Confirm with carriage return$ $HO$PARITY$RECEIVE$ SEND$ VT52-EMULATION$PAD-CHAR$PADDING$EVEN$MARK$NONE$ODD$ SPACE$ ON$OFF$NO$YES$ ?Program error: Invalid COMND call$ ?Ambiguous$ ?Illegal input file spec$ ith carriage retu ^ ##PARITY$RECEIVE$ SEND$ VT52-EMULATION$PAD-CHAR$PADDING$EVEN$MARK$NONE$ODD$ SPACE$ ON$OFF$NO$YES$ ?Program error: Invalid COMND call$ ?Ambiguous$ ?Illegal input file spec$ ith carriage retu ^ ##PARITY$RECEIVE$ SEND$ VT52-EMULATION$PAD-CHAR$PADDING$EVEN$MARK$NONE$ODD$ SPACE$ ON$OFF$NO$YES$ ?Program error: Invalid COMND call$ ?Ambiguous$ ?Illegal input file spec$ ith carriage retu ^ ##PARITY$RECEIVE$ SEND$ VT52-EMULATION$PAD-CHAR$PADDING$EVEN$MARK$NONE$ODD$ SPACE$ ON$OFF$NO$YES$ ?Program error: Invalid COMND call$ ?Ambiguous$ ?Illegal input file spec$ ith carriage retu ^ ##PARITY$RECEIVE$ SEND$ VT52-EMULATION$PAD-CHAR$PADDING$EVEN$MARK$NONE$ODD$ SPACE$ ON$OFF$NO$YES$ ?Program error: Invalid COMND call$ ?Ambiguous$ ?Illegal input file spec$ ith carriage retu ^ ##PARITY$RECEIVE$ SEND$ VT52-EMULATION$PAD-CHAR$PADDING$EVEN$MARK$NONE$ODD$ SPACE$ ON$OFF$NO$YES$ ?Program error: Invalid COMND call$ ?Ambiguous$ ?Illegal input file spec$ ith carriage retu ^ ##PARITY$RECEIVE$ SEND$ VT52-EMULATION$PAD-CHAR$PADDING$EVEN$MARK$NONE$ODD$ SPACE$ ON$OFF$NO$YES$ ?Program error: Invalid COMND call$ ?Ambiguous$ ?Illegal input file spec$ ith carriage retu ^ ##PARITY$RECEIVE$ SEND$ VT52-EMULATION$PAD-CHAR$PADDING$EVEóÓ:*ÓûÉóÓ2*Ã#@óÓ:*ÓûÉóÓ2*Ó>2ïûÉ COMND call$ ?Ambiguous$ ?Illegal input file spec$ ith carriage retu ^ ##PARITY$RECEIVE$ SEND$ VT52-EMULATION$PAD-CHAR$PADDING$EVEN$MARK$NONE$ODD$ SPACE$ ON$OFF$NO$YES$ ?Program error: InvalidKERMIT-80 was adapted for the Osborne 1 by Charles Bacon at NIH. KERMIT-80 was developed originally at Columbia University but there are now many implementations of the program up and running on many micros as well as main-frame installations. KERMIT is strictly a non-commercial program developed in the spirit of getting computers talking to one another. It is copyrighted by Columbia, but all information about the program is available to anyone who asks. If you want a "manual" for Kermit, CUCCA at Columbia will send one for a nominal fee (was $2.50). (Ask for KERMIT USERS GUIDE) Write: Kermit Distribution Coulumbia University Center for Computing Activities 7th Floor, Watson Laboratory 612 West 115th Street New York, New York 10025 Here are some comments on this implementation: Change speed (BAUD) of the serial line freely between 300 and 1200 with the SET BAUD command. Note that SETUP may later report incorrect speed. Type C to CONNECT to the serial line. Then dial the remote computer. Escape character for CONNECT is CTRL-\. Osborne 1 [version] was quite a hack, since like too many micros, the Osborne is sold as a mystery machine and took a lot of detective work [unquote]. The cable used with the Osborne 1 modem connector has male connectors at both ends, but is asymmetric. The black connector should plug into the Osborne and the gray connector into the modem. This cable is fabricated from four-conductor stranded wire, and it may be up to several hundred feet long. Here it is: (Black shell) (Gray shell) Signal Name Osborne Modem Signal Name at Osborne Pin no. Pin no. at modem Send data 2 3 Receive data Receive data 3 2 Send data Dataset Ready 6 20 Terminal Ready Signal Ground 7 7 Signal Ground If there were a fifth wire, it could run between Osborne's pin 20 and the modem's pin 6. This would make the cable symmetric. Note that the "protective ground" is not wired. Both the Osborne and the modem should have three-prong power cables.  [unquote]. The cable used with the Osborne 1 modem connector has male connectors at both ends, but is asymmetric. The black connector should plug into the Osborne and the gray connector into the modem. This cable is fabricated from four-conductor stranded wire, and it may be up to several hundred feet long. Here it is: (Black shell) (Gray shell) Signal Name Osborne Modem Signal Name at Osborne Pin no. Pin no. at modem Send data 2 3 Receive data Receive data 3 2 Send data Dataset Ready 6 20 Terminal Ready Signal Ground 7 7 Signal Ground If there were a fifth wire, it could run between Osborne's pin 20 and the modem's pin 6; OSPLNK70.ASM ver 7.0 dated 11/82 ; (previous version 6.4 dated 6/14/81) ; ;OSPLINK is a CP/M transient program which allows the user to ;send/receive ASCII text files to/from a remote computer using ;a modem. Text data will be displayed on the console and may ;be optionally printed on the CP/M list device. No error checking ;protocol (such as MODEM7) is accomodated. ; ;OSPLINK was derived from the public domain program PLINK ;originally written by L.E.Hughes (EDCAM) 7/77, with revisions ;by Keith Petersen (W8SDZ), Tom Jorgenson, Steve Vinokuruff ;(Vanc CBBS), Dennis Breckenridge (Burnaby CBBS), Bruce Ratoff ;(Iselin RCPM), and Ben Reagan (Lynnwood,WA). ; ;OSPLINK version 6.4 was submitted to the First Osborne Group ;(FOG) Disk Library by Byron McKay (OxGate, PicoNet, and FOG). ;That version used direct Osborne serial/modem port I/O. ;The author was not identified. ; ;Significant additions and corrections were made by Jim Woolley, ;FOG Disk Librarian, to create version 7.0. In particular: ; 1. Added buffered printer output to the CP/M list device ; configured on the Osborne parallel port. ; 2. Corrected text file transmit routine. ; 3. Added ability to change host acknowledge (trigger) ; character during session. ; 4. Added help reminder of control commands. ; 5. Cleaned up read-console-string routine. ; 6. Cleaned up modem routines. Added runtime logic to move ; code above 4000h (shadow memory), thereby keeping size ; of .COM file to minimum. ; 7. Improved user interface. ; 8. Eliminated non-Osborne related code. ; ;The following control codes (commands) may be initiated ;from the keyboard: ; ;Control-E Exit OSPLINK to CP/M "warm-boot". ; ;Control-T Transmit ASCII file to remote system, asks for ; drive (A, B, etc.) and filename.typ. ; ;Control-C Aborts transmission of file to remote system. ; If used when asked for drive, aborts ^T or ^W. ; ;Control-Y Switches between saving and ignoring ; incoming ASCII data in RAM buffer, ; for later transfer to disk. ; ;Control-W Writes RAM buffer to disk. Asks for drive ; and filename.typ. ; ; + + + + + + Revisions by Jim Woolley, FOG Disk Librarian, 11/82 ; ;Control-P Toggles list device (printer) on/off. A 256 character ; buffer is used to accomodate printer busy conditions. ; Printer interface must be on Osborne parallel (IEEE-488 ; or Centronics) port, which is assumed much faster than ; the modem. ; ;Control-A Permits reset of host computer's acknowledgment ; character. Default is linefeed. May be changed to, ; for example, > or * or ? or @ or # or &, etc. Ack. ; prompt is only used during ^T file trasnmission. ; ;Control-R Displays reminder of commands. ; ;Following apply when prompted for filename (similar to keyboard ;entry at CP/M level) ; ;Control-H or <-- Backspace when in command mode (e.g. ^T or ^W). ; ;Control-U or -X Aborts current line when in command mode. ; ; + + + + + + ; ;Note: all other control codes are passed to modem output, and ;may be interpreted by the remote system as various control ;functions. ; ;A "trigger" character is a response sent by the host ;indicating that it is ready for the next line (acknowledgment). ;The following "trigger" equate is set to "lf" (linefeed) ;by default. An optional trigger char may be passed via fcb1 ;in command line; ; ; e.g. OSPLINK B will set trigger to "bell" ; ;The following options are allowed on the command line ; ; 1. B = bell 07h ; 2. X = xon 11h ; 3. U = upload; no trigger check at all (this option ; may only be entered via command line) ; ;Any other ascii character on the command line will be ;converted to upper case and taken literally as the trigger. ;Only the first character is scanned. Examples are > or * or ?. ;Control-A permits trigger character to be reset. ; lf equ 0ah ;line feed trigger equ lf ;default value ; ;some Osborne 1 locations ; iobyte equ 3 mstat equ 02a00h ;modem port status mport equ 02a01h ;modem port data ; ;bdos entry point and function codes ; base equ 0 ; bdos equ base+5 resdsk equ 13 ;reset disk system offc equ 15 ;open file cffc equ 16 ;close file dffc equ 19 ;delete file rrfc equ 20 ;read record wrfc equ 21 ;write record mffc equ 22 ;make file ; ;default fcb and field definitions ; fcb equ base+5ch fn equ 1 ;file name field (rel) ft equ 9 ;file type field (rel) ex equ 12 ;file extent field (rel) nr equ 32 ;next record field (rel) dbuf equ base+80h ;default disk buffer address ; ;ascii control characters ; cr equ 0dh ;carriage return del equ 7fh ;delete (rubout) bell equ 07h ;bell signal bs equ 08h ;backspace tab equ 09h ;horizontal tab xon equ 11h ;x-on character null equ 00h ;null char ; ;warning character for low memory when [^Y]anking incoming ;ascii data into RAM - signals user to press ^W or ^Y ; wrnsig equ bell ; ; ; ** main program ** ; org base+100h ; lnki: lxi b,movsiz ;move stack, modem routines, lxi h,movfrm ; & text buffer above lxi d,movto ; shadow mode memory ; lnki2: mov a,m ;from dcx h xchg mov m,a ;to dcx h xchg dcx b ;loop until zero mov a,b ora c jnz lnki2 ; lxi sp,stack ;create local stack lhld base+1 ;point to CP/M jmp table lxi d,3 ;get ready to add 3 dad d ;point to con status jmp shld citcal+1 ;modify call adrs dad d ;point to con in jmp shld rccal+1 ;modify call adrs dad d ;point to con out jmp shld wccal+1 ;modify call adrs dad d ;point to lst out jmp shld wlcal+1 ;modify call adrs lxi d,30 dad d ;point to lst status jmp shld wltcal+1 ;modify call adrs ; lda fcb+1 ;see if optional trigger char cpi 20h ;blank.. ? jz skp ;..blank so use default "lf" cpi 'B' ;bell wanted jz trgbel cpi 'X' ;xon wanted jz trgxon cpi 'U' ;uploading no checking for trigger jz trgupl ; settrg sta overly+1 ;store the character as is then jmp skp ; trgbel mvi a,bell jmp settrg ; trgxon mvi a,xon jmp settrg ; trgupl xra a ;zero out jump sta overl1+1 ;change check for c/r to null sta overl2+1 ;and send linefeeds as well ; skp: equ $ ; cont: xra a ;clear char buffers sta inch sta outch sta flag ;clear text save flag sta lflag ;clear lst flag sta lcnt ; and char count lxi h,tbuf ;set ptr to tbuf shld ptr lxi h,0 ;size = 0 shld size lxi h,lbuf ;set ptr to lbuf shld lbufs shld lbufe lxi h,lnkims ;print sign-on message call wcs ; ;main loop ; lnki3: call citest ;jump if no data from console jz lnki4 call rcc ;else read console data cpi 20h cc pcc ;call pcc if control char jc lnki4 ;jump if pcc handled char ori 80h ;else set valid data bit sta inch ;and store in input char buffer ; lnki4: lda outch ;jump if no data for console ora a jp lnki5 ani 7fh ;else discard valid data bit call wcc ;send char to console xra a ;then clear output char buffer sta outch ; lnki5: call mitest ;jump if no data from modem jz lnki6 call rmc ;else read modem data call save ;save char in text buffer if flag on ori 80h ;set data valid bit sta outch ;store in output char buffer ; lnki6: lda inch ;jump if no data for modem ora a jp lnki7 call motest ;jump if modem xmit buffer busy jz lnki7 lda inch ani 7fh ;discard valid data bit call wmc xra a ;clear input char buffer sta inch ; lnki7: jmp lnki3 ;end of main loop ; lnkims: db cr,lf,'OSPLINK ver 7.0 (11/82)' lnkim2: db cr,lf,lf db '<^Y>ank <^W>rite <^P>rint',cr,lf db '<^T>ransmit <^C>ancel <^E>xit',cr,lf db '<^A>cknowledge <^R>emind',cr,lf,lf db 'Ready',cr,lf,lf,0 ; ;pcc - process control character ; pcc: cpi 'E'-40h ;jump out if ctrl e jnz pcc1 push h lxi h,ays ;print 'are you sure' call wcs pop h call rcc ;get answer call wcc ;echo it ani 5fh ;make upper case cpi 'Y' ;yes? jz pccex ;exit call wccr ;crlf stc ;tell plink to ignore this character ret ; ; pcc1: cpi 'T'-40h ;jump if not control-t jnz pcc2 call stf ;transmit text file to modem stc ;tell plink to ignore this character ret ; pcc2: cpi 'Y'-40h ;jump if not control-y jnz pcc3 lda flag dcr a ;was it zero? jnz pcc2a ;yes sta flag ;no, was 1, now 0 lxi h,pcmnix ;print ignore incoming stuff jmp pcc2b ; pcc2a: mvi a,1 ;turn on text save flag sta flag lxi h,pccmr ;print 'saving incoming text in memory' ; pcc2b: call wcs stc ;tell plink to ignore this character ret ; pcc3: cpi 'W'-40h ;jump if not control-W jnz pcc4 call wtb ;write text buffer to disk stc ret ; pcc4: cpi 'P'-40h ;jump if not control-p jnz pcc5 lda lflag dcr a ;was it zero? jnz pcc4a ;yes sta lflag ;no, was 1, now 0 lxi h,pcptof ;print 'printer off' jmp pcc4c ; pcc4a: lda iobyte ;check printer port ori 80h ;jump if parallel jnz pcc4b sta lflag ;turn off list flag lxi h,pcpser ;print 'must not be serial' jmp pcc4c ; pcc4b: mvi a,1 ;turn on list flag sta lflag lxi h,pcpton ;print 'printer on' ; pcc4c: call wcs stc ;tell plink to ignore this character ret ; pcc5: cpi 'R'-40h ;jump if not control-r jnz pcc6 lxi h ,lnkim2 ;print reminder call wcs stc ;tell plink to ignore this character ret ; pcc6: cpi 'A'-40h ;jump if not control-a jnz pcc7 mvi a,cr ;restore defaults sta overl1+1 mvi a,lf sta overl2+1 lxi h,pctrig ;print 'enter trigger' call wcs call rcc ;read trigger character sta overly+1 ;save it cpi 20h ;jump if not control character jnc pcc6a push psw mvi a,'^' ;echo control character call wcc pop psw adi 40h ;make alphabetic ; pcc6a: call wcc ;echo character call wccr stc ;tell plink to ignore it ret ; pcc7: stc ;let plink handle all other cont. codes cmc ret ; pccex: lxi h,disms ;print 'modem not disconnected' call wcs jmp base ;exit to warm boot ; ays: db cr,lf,'Exit to CP/M - are you sure (Y or N)? ',0 ; disms: db cr,lf,'Modem connection is unchanged',cr,lf,0 ; pccmr: db cr,lf,'Saving incoming text in memory',cr,lf,0 pcmnix: db cr,lf,'Ignoring incoming text',cr,lf,0 ; pcpton: db cr,lf,'Printer toggled on',cr,lf,0 pcptof: db cr,lf,'Printer toggled off',cr,lf,0 pcpser: db cr,lf,'Printer must be serial - use SETUP',cr,lf,0 ; pctrig: db cr,lf,'Enter host acknowledgement prompt: ',0 ; ;stf - send text file (to modem) ; stf: call gfn ;get name of disk file to send jc stf6 ;jump if file name error call open ;try to open specified file cpi 255 ;jump if file not found jz stf7 ; stf1: call read ;read next record into dbuf ora a ;jump if end-of-file jnz stf5 lxi h,dbuf ;point to disk buffer mvi c,128 ; stf2: mov a,m ;fetch next char from dbuf inx h cpi 'Z'-40h ;jump if end-of-file character jz stf5 overl2 cpi lf ;ignore line feeds jz stf4 push psw ; stf2a: call motest jz stf2a ;wait until modem not busy pop psw push psw call wmc ;write character to modem pop psw call wcc ;write character to console overl1 cpi cr ;jump if not carriage return jnz stf4 ; stf3: call citest ;check console data ready jz stf3a ;no data there call rcc ;get console character cpi 'C'-40h ;control c aborts it jz stf8 ; stf3a: call mitest ;wait for next modem character jz stf3 call rmc ;read modem character overly cpi trigger ;wait for trigger character jnz stf3 mvi a,lf ;send lf to console call wcc ; stf4: call citest ;check console data ready jz stf4a ;jump if no data call rcc ;get character cpi 'C'-40h ;control c aborts jz stf8 ; stf4a: dcr c ;loop thru rest of dbuf jnz stf2 jmp stf1 ;go get next record from disk ; stf5: lxi h,stfsm ;print 'file send complete' call wcs ret ; stf6: lxi h,stfs1 ;print 'file name error' call wcs ret ; stf7: lxi h,stfs2 ;print 'file not found' call wcs ret ; stf8: lxi h,stfsa ;print 'file send aborted' call wcs ret ; stfsm: db 'File send complete',cr,lf,0 stfs1: db 'File name error or abort',cr,lf,0 stfs2: db 'File not found',cr,lf,0 stfsa: db cr,lf,'File send aborted',cr,lf,0 ; ;save - save char in text buffer if flag on ; ; entry conditions ; a - character to save ; save: push psw lda flag ora a jnz save1 pop psw ret ; save1: pop psw cpi del ;rubout (del) ? rz ;yes, ignore it cpi 20h ;test for control characters jnc save2 ;jump if not control char. cpi cr ;allow cr to be saved jz save2 cpi lf ;allow lf to be saved jz save2 cpi tab ;allow tab to be saved jz save2 ret ;ignore all other control chars. ; save2: push h lhld size ;size = size + 1 inx h shld size lhld ptr mov m,a inx h shld ptr push psw lda base+7 ;get system size sui 1 ;so we dont crash CP/M cmp h ;are we out of room? jz saveab ;yes, abort sui 4 ;leave some room (1k) cmp h mvi a,wrnsig ;signal console running out of space cc wcc pop psw pop h ret ; ;saveab - ran out of room, issue message and flow ; through to disk save routine ; savend: db bell,cr,lf,'No room left to save incoming text' db cr,lf,'Writing memory to disk',cr,lf,0 ; saveab: lxi h,savend ;print 'aborting - no room left' call wcs pop psw ;clear stack pop h pop h ;pop return address lxi h,lnki3 ;set up new return address push h ;leave it on the stack xra a ;clear char buffers sta inch sta outch ; ;wtb - write text buffer to disk ; wtb: lhld size ;jump if text buffer empty mov a,l ora h jz wtb5 mvi c,resdsk ;reset in case read-only call bdos call gfn ;get file name jc wtb6 ;jump if file name error call delt ;delete old file, if any call make ;make new file lhld size xchg ;de = tbuf size lxi h,dbuf push h ;top of stack points to dbuf lxi h,tbuf ;hl points to tbuf ; wtb1: mvi c,128 ;disk buffer size ; wtb2: mov a,m ;fetch next byte of tbuf inx h xthl mov m,a ;store in dbuf inx h xthl dcx d ;size = size - 1 mov a,d ;exit loop if size = 0 ora e jz wtb3 dcr c ;loop until dbuf full jnz wtb2 call write ;write full dbuf to disk xthl ;top of stack now points to tbuf lxi h,dbuf xthl ;put dbuf pointer on stack jmp wtb1 ;loop until end of tbuf ; wtb3: pop h ;hl points to current place in dbuf ; wtb4: mvi m,'Z'-40h ;store eof code inx h  dcr c ;loop thru rest of dbuf jnz wtb4 call write ;write last sector to disk call close ;clean up act and go home lxi h,tbuf ;clear text buffer shld ptr lxi h,0 shld size lxi h,wtbsm ;print 'buffer saved on disk' call wcs lxi h,pcmnix ;print 'ignoring text' call wcs xra a ;clear text save flag sta flag ret ; wtb5: lxi h,wtbs1 ;print 'text buffer empty' call wcs ret ; wtb6: lxi h,wtbs2 ;print 'file name error' call wcs ret ; wtbsm: db cr,lf,'Text memory buffer saved on disk',cr,lf,0 wtbs1: db 'Text buffer empty',cr,lf,0 wtbs2: db 'File name error or abort',cr,lf,0 ; ;wcs - write console string ; ; entry conditions ; hl - points to string (term by zero byte) ; wcs: mov a,m inx h ora a rz call wcc jmp wcs ; ;wccr - write console carriage return (and line feed) ; wccr: mvi a,cr call wcc mvi a,lf ; ;wcc - write console character ; ; entry conditions: ; a - character to write ; wcc: push psw push b push d push h mov c,a ;get character for cbios push b wccal: call $-$ ;modified by init. pop b ;restore character in c lda lflag ;test printer toggle ora a cnz wlc ;skip if zero ; wcc1: pop h pop d pop b pop psw ret ; ;wlc - write list character ; ; entry conditions: ; c - character to write ; ; lbuf provides circular buffer ; wlc: lda lcnt ;count characters in buffer inr a jnz wlc1 ;jump if buffer not full dcr a lhld lbufs ;incr start pointer inr l ; modulo 256 shld lbufs ; and save ; wlc1: lhld lbufe ;point to end of buffer mov m,c ;save character inr l ;incr end pointer shld lbufe ; modulo 256 push psw ;save character count ; wltcal: call $-$ ;check stat - modified by init. ora a ;jump if printer not ready jz wlc3 lhld lbufs ;point to start of buffer mov c,m ;put character in c inr l ;incr start pointer shld lbufs ; modulo 256 ; wlcal: call $-$ ;print c - modified by init. pop psw dcr a ;decr count push psw ;save character count jnz wltcal ;print until buffer empty ; or printer busy wlc3: pop psw sta lcnt ;save count ret ; ;rcs - read console string (with echo) ; ; exit conditions ; b - number of characters read (<128) ; hl - points to last char stored (cr) ; rcs: lxi h,ibuf mvi b,0 ; rcs1: call rcc ;read next char from console cpi 'H'-40h ;jump if not BS jnz rcs2 inr b ;ignore BS if ibuf already empty dcr b jz rcs1 dcx h ;else discard last char ; rcs1a: call wcc ;echo BS to console mvi a,' ' ;erase last character call wcc mvi a,bs call wcc dcr b ;decrement count jmp rcs1 ; and loop ; rcs2: cpi 'U'-40h ;jump if control-u jz rcs2a cpi 'X'-40h ;and if not control-x jnz rcs3 ; rcs2a: inr b ;ignore if ibuf already empty dcr b jz rcs ; rcs2b: mvi a,bs ;else erase current line call wcc mvi a,' ' call wcc mvi a,bs call wcc dcr b jnz rcs2b jmp rcs ; rcs3: call wcc ;echo char to console mov m,a ;store char in ibuf inr b ;increment count cpi cr ;jump if carriage return jz rcs4 mov a,b ;check count cpi 128 ;jump if < 128 jnz rcs3a mvi a,wrnsig ;send signal call wcc mvi a,bs ;send BS jmp rcs1a ; rcs3a: inx h ;else advance pointer jmp rcs1 ; and loop ; rcs4: mvi a,lf ;issue line feed and return call wcc ret ; ;rcc - read console character ; ; exit conditions ; a - character read ; rcc: push b push d push h rccal: call $-$ ;modified by init. pop h pop d pop b ret ; ;gfn - get file name ; gfn: lxi h,gfnsd ;print 'which drive?' call wcs call rcc ;get answer from console call wcc ;echo it to console ani 5fh ;make upper case cpi 'C'-40h ;^C means abort jz gfn6 sui 'A'-1 jc gfn ;require alphabetic jz gfn cpi 17 ;allow 16 drives (as in CP/M 2.x) jnc gfn sta fcb ; gfnb: lxi h,gfns1 ;print 'filename? ' call wcs call rcs ;read response into ibuf lxi h,fcb+fn ;blank fill fn and ft fields mvi c,11 ; gfn1: mvi m,' ' inx h dcr c jnz gfn1 lxi h,ibuf ;point to input buffer lxi d,fcb+fn ;scan off fn field mvi c,9 ; gfn2: mov a,m ;fetch next char from ibuf inx h cpi 61h ;if lc, convert to uc jc gfn2a cpi 7bh jnc gfn2a sui 20h ; gfn2a: cpi cr ;jump if end of line jz gfn5 cpi '.' ;jump if end of name jz gfn3 stax d ;else store char in fn field inx d dcr c ;loop if 8 or less chars so far jnz gfn2 jmp gfn6 ;else take error exit ; gfn3: lxi d,fcb+ft ;scan off ft field mvi c,4 ; gfn4: mov a,m ;fetch next char from ibuf inx h cpi 61h ;if lc, convert to uc jc gfn4a cpi 7bh jnc gfn4a sui 20h ; gfn4a: cpi cr ;jump if end of line jz gfn5 stax d ;else store char in ft field inx d dcr c ;loop if 3 or less chars so far jnz gfn4 jmp gfn6 ;else take error exit ; gfn5: xra a sta fcb+ex ;set extent number to zero sta fcb+nr ;set record number to zero stc ;clear error flag and return cmc ret ; gfn6: stc ;set error flag and return ret ; gfnsd: db cr,lf,'Which drive? ',0 gfns1: db cr,lf,' Filename? ',0 ;   ;open - open disk file ; open: push h push d push b lxi d,fcb mvi c,offc call bdos pop b pop d pop h ret ; ;read - read record from disk file ; read: push h push d push b lxi d,fcb mvi c,rrfc call bdos pop b pop d pop h ret ; ;close - close disk file ; close: push h push d push b lxi d,fcb mvi c,cffc call bdos pop b pop d pop h ret ; ;delt - delete disk file ; delt: push h push d push b lxi d,fcb mvi c,dffc call bdos pop b pop d pop h ret ; ;write - write record to disk ; write: push h push d push b lxi d,fcb mvi c,wrfc call bdos pop b pop d pop h ret ; ;make - make new disk file ; make: push h push d push b lxi d,fcb mvi c,mffc call bdos pop b pop d pop h ret ; ;citest - check console input status ; citest: push b push d push h citcal: call $-$ ;modified by init. ora a ;set zero flag pop h pop d pop b ret ;zero flag carries answer ; ;data area ; inch: ds 1 ;input char buffer (to cyber) outch: ds 1 ;output char buffer (from ciber) ; ;text buffer ; flag: db 0 ;text save flag ptr: dw 1 ;text buffer pointer size: dw 1 ;text buffer size ; ;printer buffer ; lflag: db 0 ;printer flag lbufs: dw 1 ;start pointer lbufe: dw 1 ;end pointer lcnt: db 0 ;character count ; org 256*(($+255)/256) ;page boundary lbuf: ds 256 ;printer buffer ; ;input buffer ; ibuf: ds 128 ;input buffer ; ;"o" before label signifies location before being ;moved above shadow memory ; ;wmc - write modem character ; ; entry conditions ; a - character to write ; owmc: ani 7fh di out 0 sta mport out 1 ei ret ; ;rmc - read modem character ; ; exit conditions: ; a - character read ; ormc: di out 0 lda mport out 1 ei ani 7fh ret ; ;mitest - check modem input status ; omitest: di out 0 lda mstat out 1 ei ani 01h ret ; ;motest - check modem output status ; omotest: di out 0 lda mstat out 1 ei ani 02h  ret ; otbuf: equ $ ;start of text buffer ; ;equates reflecting locations after being moved ;above shadow memory ; offset: equ 4000h ;shadow memory offset stack: equ offset+64 ;local stack wmc: equ stack+1 ;calculate addrs after move to offset rmc: equ wmc+ormc-owmc mitest: equ rmc+omitest-ormc motest: equ mitest+omotest-omitest tbuf: equ motest+otbuf-omotest movto: equ tbuf movfrm: equ otbuf movsiz: equ tbuf-stack ; end dow memory ; ;wmc - write modem character ; ; entry conditions ; a - character to write ; owmc: ani 7fh di out 0 sta mport out 1 ei ret ; ;rmc - read modem character ; ; exit conditions: ; a - character read ; ormc: di out 0 lda mport out 1 ei ani 7fh ret ; ;mitest - check modem input status ; omitest: di out 0 lda mstat out 1 ei ani 01h ret ; ;motest - check modem output status ; omotest: di out 0 lda mstat out 1 ei ani 02h 1!° q@~+ëw+ë x±Â 1@@*"t"b"­"ä"Õ:]þ ÊcþBÊRþXÊWþUÊ\2šÃc>ÃL>ÃL¯2~2i¯2{2|2}2‚2‡!q@"~!"€! "ƒ"…!áÍ•ÍpʤÍ^þ ÜpÚ¤ö€2{:|·ò´æͦ¯2|ÍY@ÊÅÍM@Í+ö€2|:{·òÞÍe@ÊÞ:{æÍA@¯2{ÃŽ OSPLINK ver 7.0 (11/82) <^Y>ank <^W>rite <^P>rint <^T>ransmit <^C>ancel <^E>xit <^A>cknowledge <^R>emind Ready þÂ�å!BÍ•áÍ^ͦæ_þYÊ9ÍŸ7Éþ™ÍG7Éþ»:}=®2}!°ö>2}!�Í•7ÉþÂÅÍÇ7ÉþÂø:‚=ÂÚ2‚!âÃó:ö€Âë2‚!úÃó>2‚!ËÍ•7ÉþÂ!úÍ•7ÉþÂ6> 2~> 2i!!Í•Í^2šþ Ò.õ>^ͦñÆ@ͦÍŸ7É7?É!kÍ•à Exit to CP/M - are you sure (Y or N)? Modem connection is unchanged Saving incoming text in memory Ignoring incoming text Printer toggled on Printer toggled off Printer must be serial - use SETUP Enter host acknowledgement prompt: ÍhÚ¿ÍþÿÊÆÍ%·Â¸!€€~#þʸþ Ê£õÍe@ÊnñõÍA@ñͦþ £ÍpÊ�Í^þÊÍÍY@Ê‚ÍM@þ ‚> ͦÍpʱÍ^þÊÍ ÂaÃU!ÔÍ•É!éÍ•É!Í•É!Í•ÉFile send complete File name error or abort File not found File send aborted õ:}·Â5ñÉñþÈþ ÒNþ ÊNþ ÊNþ ÊNÉå*€#"€*~w#"~õ:ּʳּ>ܦñáÉ No room left to save incoming text Writing memory to disk !sÍ•ñáá!Žå¯2{2|*€}´Ê3 ÍÍhÚ:ÍCÍa*€ë!€å!q@€~#ãw#ãz³Ê ÂíÍRã!€ãÃëá6#  ÍRÍ4!q@"~!"€!AÍ•!°Í•¯2}É!fÍ•É!zꥃ Text memory buffer saved on disk Text buffer empty File name error or abort ~#·ÈͦÕ> ͦ> õÅÕåOÅÍÁ:‚·Ä¼áÑÁñÉ:‡<ÂË=*ƒ,"ƒ*…q,"…õÍ·Êì*ƒN,"ƒÍñ=õÂÔñ2‡É! Í^þÂÊö+ͦ> ͦ>ͦÃöþÊþÂ:Êñ>ͦ> ͦ>ͦÂ$Ãñͦwþ ÊXxþ€ÂT>ͦ>Ã#Ãö> ͦÉÅÕåÍáÑÁÉ!öÍ•Í^ͦæ_þÊôÖ@ÚhÊhþÒh2\!Í•Íñ!] 6 # ™! ] ~#þaÚ¶þ{Ò¶Ö þ Êêþ.ÊÉ ¨Ãôe~#þaÚÜþ{ÒÜÖ þ Êê ÂÎÃô¯2h2|7?É7É Which drive? Filename? åÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉÅÕåÍ·áÑÁÉÖ@2\!Í•Íñ!] 6 # ™! ] ~#þaÚ¶þ{Ò¶Ö þ Êêþ.ÊÉ ¨Ãôe~#þaÚÜþ{ÒÜÖ þ Êê ÂÎÃô¯2h2|7?É7É Which dr ive? Filename? åÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉÅÕåÍ·áÑÁÉÖ@2\!Í•Íñ!] 6 # ™! ] ~#þaÚ¶þ{Ò¶Ö þ Êêþ.ÊÉ ¨Ãôe~#þaÚÜþ{ÒÜÖ þ Êê ÂÎÃô¯2h2|7?É7É Which drive? Filename? åÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉÅÕåÍ·áÑÁÉÖ@æóÓ2*ÓûÉóÓ:*ÓûæÉóÓ:*ÓûæÉóÓ:*ÓûæÉÊö+ͦ> ͦ>ͦÃöþÊþÂ:Êñ>ͦ> ͦ>ͦÂ$Ãñͦwþ ÊXxþ€ÂT>ͦ>Ã#Ãö> ͦÉÅÕåÍáÑÁÉ!öÍ•Í^ͦæ_þÊôÖ@ÚhÊhþÒh2\!Í•Íñ!] 6 # ™! ] ~#þaÚ¶þ{Ò¶Ö þ Êêþ.ÊÉ ¨Ãôe~#þaÚÜþ{ÒÜÖ þ Êê ÂÎÃô¯2h2|7?É7É Which drive? Filename? åÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉÅÕåÍ·áÑÁÉÖ@2\!Í•Íñ!] 6 # ™! ] ~#þaÚ¶þ{Ò¶Ö þ Êêþ.ÊÉ ¨Ãôe~#þaÚÜþ{ÒÜÖ þ Êê ÂÎÃô¯2h2|7?É7É Which dr OSPLNK70 version 7.0 dated 11/82 by Jim Woolley, FOG Disk Librarian OSPLINK is a CP/M transient program which allows the user to send/receive ASCII text files to/from a remote computer using a modem. Text data will be displayed on the console and may be optionally printed on the CP/M list device. No error checking protocol (such as MODEM7) is accomodated. OSPLINK is intended primarily for the business user who wants a simple program for communication with a corporate computer or with a service bureau such as The Source, CompuServe, or Dow Jones. ASCII text is generally the only transmission of interest in such cases. Files are usually small, and the impact of a lost bit during communication is not disastrous. Besides, the host computer probably does not support a special protocol like MODEM7. OSPLINK is customized especially for the Osborne 1 portable business computer. One unique feature of this version is buffered printing on the CP/M list device interfaced via the Osborne IEEE-488 or Centronics parallel port. Such printers may include Epson MX, NEC 8023, C. Itoh 8510, or Okidata Microline. Another feature is use of direct Osborne serial/modem port input/output (I/O) routines and BIOS console and printer I/O functions for improved communication speed and reliability. Text files may be transmitted from either disk drive to the host. The host computer's line acknowledgment prompt during file transmission (normally linefeed) may be dynamically defined. Text from the host may be captured in memory buffer (about 38K bytes, or over 20 continuous minutes at 300 baud), then saved on disk. The bell will sound when memory buffer is within 1k bytes of full. Incoming text capture will be discontinued before the buffer overflows. All transmission is via 7-bit ASCII code; therefore, 8-bit data such as .COM files or MBASIC compressed .BAS files will not transmit properly. The fundamental test is: If use of the CP/M TYPE command with the file of interest produces garbage on the screen, then the file may not be sent using OSPLINK. WordStar Document mode files may be transmitted; however, the result is similar to a Non-Document mode file. In other words, the result may be simulated using PIP CON:=filename.typ[Z]. OSPLINK was derived from the public domain program PLINK originally written by L.E.Hughes (EDCAM) 7/77, with revisions by Keith Petersen (W8SDZ), Tom Jorgenson, Steve Vinokuruff (Vanc CBBS), Dennis Breckenridge (Burnaby CBBS), Bruce Ratoff (Iselin RCPM), and Ben Reagan (Lynnwood, WA). OSPLINK version 6.4 was submitted to the First Osborne Group (FOG) Disk Library by Byron McKay (OxGate, PicoNet, and FOG). That version used direct Osborne serial/modem port I/O. The author was not identified. Significant additions and corrections were made by Jim Woolley, FOG Disk Librarian, to create version 7.0. In particular: 1. Added buffered printer output to the CP/M list device configured on the Osborne parallel port. 2. Corrected text file transmit routine. 3. Added ability to change host acknowledge (trigger) character during session. 4. Added help reminder of control commands. 5. Cleaned up read-console-string routine. 6. Cleaned up modem routines. Added runtime logic to move code above 4000h (shadow memory), thereby keeping size of .COM file to minimum. 7. Improved user interface. 8. Eliminated non-Osborne related code. An OSPLINK session is initiated by placing OSPLINK.COM in drive A. At the A> prompt, type OSPLINK followed by . Modem connection with the host computer may be made before or after starting OSPLINK. The following control codes (commands) may be initiated from the keyboard during a session: Control-E Exit OSPLINK to CP/M "warm-boot". Control-T Transmit ASCII file to remote system. Asks for drive (A or B) and  filename.typ. Control-C Aborts transmission of file to remote system. If used when asked for drive, aborts ^T or ^W. Control-Y Switches between saving and ignoring incoming ASCII data in RAM buffer, for later transfer to disk. Control-W Writes RAM buffer to disk. Asks for drive and filename.typ. + + + + + Revisions by Jim Woolley, 11/82 Control-P Toggles list device (printer) on/off. A 256 character buffer is used to accomodate printer busy conditions. Printer interface must be on Osborne parallel (IEEE-488 or Centronics) port, which is assumed much faster than the modem. Control-A Permits reset of host computer's acknowledgment character. Default is linefeed. May be changed to, for example, > or * or ? or @ or # or &,  etc. Acknowledge prompt is only used during ^T file trasnmission. Control-R Displays reminder of commands. Following apply when prompted for filename (similar to keyboard entry at CP/M level): Control-H Backspace when in command mode or <-- arrow (e.g. ^T or ^W). Control-U Aborts current line when in or Control-X command mode. + + + + + Note: all other control codes are passed to modem output and may be interpreted by the remote system as various control functions. A "trigger" character is a response (acknowledgment) sent by the host following receipt of a line (carraige return character) indicating that it is ready for the next line. The "trigger" charcater is set to "lf" (linefeed) by default. An optional trigger character may be passed via the command line; for example, OSPLINK B will set trigger to "bell" The following options are allowed on the command line: 1. B = bell 07h 2. X = xon  11h 3. U = upload; no trigger check at all (this option may only be entered via command line) Any other ascii character on the command line will be converted to upper case and taken literally as the trigger. Only the first character is scanned. Examples are > or * or ?. Control-A permits trigger character to be reset during a session. m as various control functions. A "trigger" character is a response (acknowledgment) sent by the host following receipt of a line (carraige return character) indicating that it is ready for the next line. The "trigger" charcater is set to "lf" (linefeed) by default. An optional trigger character may be passed via the command line; for example, OSPLINK B will set trigger to "bell" The following options are allowed on the command line: 1. B = bell 07h 2. X = xon Originally version 6.5 of OSPLINK was submitted. This was a version of PLINK similar to PLNK0124 found on -FOG/UTL.013, except it used modem input/output routines specific for the Osborne 1. This looked promising as a smart terminal emulator which would be simple to use for ASCII text communication. Therefore, I decided to smooth out some rough spots, clean up the user interface, and improve documentation. I added the ability to simultaneously print on the CP/M list device (for example, an Epson printer) interfaced thru the Osborne 1 parallel (IEEE-488 or Centronics) port; this is a feature which is not available (to my knowledge) on any of the other modem/terminal routines presently in the FOG library. Since the changes were extensive, I named this version 7.0. To use, first establish communication with your modem. If necessary, use OSFIG from -FOG/UTL.001 to setup the modem/serial interface. Place OSPLNK70.COM in drive A. At the A> prompt, type OSPLNK70 See OSPLNK70.DOC for further information. ept it used modem input/output routines specific for the Osborne 1. This looked promising as a smart terminal emulator which would be simple to use for ASCII text communication. Therefore, I decided to smooth out some rough spots, clean up the user interface, and improve documentation. I added the ability to simultaneously print on the CP/M list device (for example, an Epson printer) interfaced thru the Osborne 1 parallel (IEEE-488 or Centronics) port; this is a feature which is not available (to my knowledge) on any of the other modem/terminal routines presently in the FOG library. Since the changes were extensive, I named this version 7.0. To use, first establish communication with your modem. If necessary, use OSFIG from -FOG/UTL.001 to setup the modem/serial interface. Place OSPLNK70.COM in drive A. At the A> prompt, type OSPLNK70 ; PLINK.ASM ; (latest version JAN 24 1982 by BC Reagan) ; (prior version OCT 18 1980) ; ; PLINK - SUPPORT COMMUNICATIONS LINK WITH CYBER ; ;PLINK IS A CP/M TRANSIENT COMMAND WHICH ALLOWS THE USER TO ;ESTABLISH A COMMUNICATIONS LINK WITH A REMOTE COMPUTER ; ; ORIGINAL BY L.E. HUGHES EDCAM JULY, 1977 ; ; This version by Keith Petersen, W8SDZ. ; WITH HEATH EQUATES ADDED BY TOM JORGENSON ; ; TRS-80 MODEL 1 mods by Steve Vinokuroff, Vanc CBBS ; Optional Triger characters by Steve Vinokuroff ; TRS-80 mods by Dennis Breckenridge, Burnaby CBBS ; D.C.Hayes mods by Bruce Ratoff, Iselin NJ Remote CP/M ; CP/M Alternate Console Device mods added by ; Ben Reagan, Lynnwood, WA ; ;This program currently supports the following modems ; or computers via conditional assembly. ; ; 1. PMMI modem ; 2. ANY serial i/o board (TUART INCLUDED) ; 3. TRS-80 model 1 ; 4. TRS-80 model 2 ; 5. HEATH H8 WITH 8251 UART AT PORT 330Q ; 6. D.C.Hayes 80-103A or Micromodem 100 ; 7. External dumb modem connected to a physical CP/M ; device (TTY, CRT, BAT, or UC1 but different than ; local console) ; 8. OSBORNE 1 ; ;-->NOTE: IF ASSEMBLED AS WRITTEN WILL WORK WITH AN external dumb ; modem connected to the CP/M 'CRT' device port. ; ;PLINK CURRENTLY SUPPORTS TWO WAY TRANSFER OF TEXT FILES ;BETWEEN THE CP/M DISK AND THE REMOTE COMPUTER. THE FOLLOWING ;CONTROL CODES MAY BE INITIATED FROM THE CONSOLE KEYBOARD: ; ; **************************************************** ; * COMMANDS: * ; * * ; * CONTROL E EXIT PLINK TO CP/M WARM BOOT * ; * CONTROL T TRANSMIT ASCII FILE TO MODEM. * ; * ASKS FOR DRIVE AND FILENAME.TYP * ; * CONTROL C ABORT FILE SEND TO MODEM * ; * CONTROL Y SAVE INCOMING ASCII IN RAM BUFFER * ; * FOR LATER TRANSFER TO DISK * ; * CONTROL Q WRITE RAM BUFFER TO DISK - ASKS * ; * FOR DRIVE AND FILENAME.TYP * ; * DELETE BACKSPACE WHEN IN COMMAND MODE * ; * ASKING FOR FILENAME * Š; * CONTROL U ABORT CURRENT LINE WHEN IN COMMAND * ; * MODE ASKING FOR FILENAME * ; * * ; * (NOTE: ALL OTHER CONTROL CODES ARE PASSED TO * ; * MODEM OUTPUT) * ; **************************************************** ; ; ;CONDITIONAL ASSEMBLY SWITCHES <<-- SET FOR YOUR SYSTEM ; TUART SET 0 ;CROMEMCO TUART I/O BOARD PMMI EQU 0 ;PUT A 1 HERE IF YOU HAVE A PMMI DCH EQU 0 ;PUT A 1 HERE IF YOU HAVE A D.C.HAYES TRS1 EQU 0 ;PUT A 1 HERE IF YOU HAVE TRS80-MOD1 TRSPT EQU 0 ;PUT 1 HERE IF YOU HAVE TRS80-MOD2 ;USING PICKLES & TROUT CP/M 2.X H84 EQU 0 ;PUT 1 HERE IF YOU HAVE H8/H8-4 CPMDUM EQU 1 ;PUT 1 HERE IF YOU ARE USING A CP/M ;CONSOLE I/OBYTE DEVICE WITH AN EXTERNAL ;DUMB (ACOUSTIC) MODEM. BE SURE TO ;SET THE ALTERNATE CONSOLE DEVICE BELOW. IF CPMDUM ALTCON EQU 1 ;PUT ALTERNATE (MODEM) CONSOLE ;DEVICE HERE. 0=TTY 1=CRT 2=BAT 3=UC1 ;IMPORTANT: THE 'ALTCON' MUST BE ;DIFFERENT THAN THE NORMAL CONSOLE ;DEVICE USED BY THE LOCAL OPERATOR, ;SINCE THIS PROGRAM SWITCHES BETWEEN ;THE TWO DEVICES. ENDIF IF H84 TUART SET 1 ENDIF ; OSBORNE EQU 1 ;PUT 1 HERE IF OSBORNE 1 ; INIT$REQUIRED EQU 1 ;PUT 1 HERE IF INITIALIZATION NEEDED ;(NEEDED FOR MOST VERSIONS INCLUDING ; 'CPMDUM') ; IF TRS1 OR PMMI OR TUART OR DCH PORT EQU 1 ENDIF ; IF TRSPT OR CPMDUM PORT EQU 0 ;STILL NEED THE SWITCH ENDIF ; ; ; ;BDOS ENTRY POINT AND FUNCTION CODES ; IF NOT TRS1 BASE SET 0 ;STANDARD CPM ENDIF ; IF TRS1 OR H84 ŠBASE SET 4200H ;TRS-80 MODEL 1 CP/M BASE ADDRESS ENDIF ; BDOS EQU BASE+5 RESDSK EQU 13 ;RESET DISK SYSTEM OFFC EQU 15 ;OPEN FILE CFFC EQU 16 ;CLOSE FILE DFFC EQU 19 ;DELETE FILE RRFC EQU 20 ;READ RECORD WRFC EQU 21 ;WRITE RECORD MFFC EQU 22 ;MAKE FILE IOGET EQU 7 ;GET I/O STEERING BYTE IOSET EQU 8 ;SET I/O STEERING BYTE ; ; TRS80 PICKLES AND TROUT SIO CALLS ; OFFSET BY -3 THAT IS ADD 3 TO ALL CALLS ; SETSIO EQU 30H ;SET UP Z80 SIO SIOTST EQU 33H ;READ SIO STATUS SIOINP EQU 36H ;INPUT A CHAR SIOOUT EQU 39H ;OUTPUT A CHAR ; ;DEFAULT FCB AND FIELD DEFINITIONS ; FCB EQU BASE+5CH FN EQU 1 ;FILE NAME FIELD (REL) FT EQU 9 ;FILE TYPE FIELD (REL) EX EQU 12 ;FILE EXTENT FIELD (REL) NR EQU 32 ;NEXT RECORD FIELD (REL) DBUF EQU BASE+80H ;DEFAULT DISK BUFFER ADDRESS ; ;ASCII CONTROL CHARACTERS ; CR EQU 0DH ;CARRIAGE RETURN LF EQU 0AH ;LINE FEED DEL EQU 7FH ;DELETE (RUBOUT) BELL EQU 07H ;BELL SIGNAL TAB EQU 09H ;HORIZONTAL TAB XON EQU 11H ;X-ON CHARACTER NULL EQU 00H ;NULL CHAR ; ;THE FOLLOWING "TRIGER" EQUATE IS SET TO "LF" (LINEFEED) ;BY DEFAULT. AN OPTIONAL TRIGER CHAR MAY BE PASSED VIA FCB1 ; ; IE: PLINK B WILL SET TRIGER TO "BELL" ; ;THE FOLLOWING OPTIONS ARE ALLOWED ; ; 1. B = BELL 07H ; 2. X = XON 11H ; 3. U = UPLOAD NO TRIGER CHECK AT ALL ;ANY OTHER ASCII CHARACTER MAY BE PASSED THROUGH FCB1 ; ; TRIGER EQU LF ;DEFAULT VALUE Š; ; ;WARNING CHARACTER FOR LOW MEMORY ; WRNSIG EQU BELL ;IF YOU HAVE ONE, PUT 'BELL' HERE ;...ELSE PUT '*' HERE. ; ;MODEM I/O PORT ADDRESSES ; IF PMMI MODD EQU 0C1H ;MODEM DATA PORT MODS EQU 0C0H ;MODEM STATUS PORT MODINIT EQU 29H ;INITIALIZE BYTE ORIGINATE, ;7 DATA, EVEN PARITY, 1 STOP ENDIF ; IF DCH MODD EQU 80H ;MODEM DATA PORT MODS EQU 81H ;MODEM STATUS PORT MODINIT EQU 05H ;7 DATA, EVEN PARITY, 1 STOP ENDIF ; IF TRS1 MODD EQU 0EBH ;TRS80 MOD 1 RS232 DATA PORT MODS EQU 0EAH ; AND THE RS232 STATUS PORT ENDIF ; IF TUART MODD EQU 0D8H ;<<--MODIFY FOR YOURS MODS EQU 0DDH ;<<--MODIFY FOR YOURS ENDIF ; ;MODEM STATUS PORT BIT DEFINITIONS ; IF PMMI MTBE EQU 01H ;MODEM TRANS. BUFFER READY FLAG MRDA EQU 02H ;MODEM RECEIVE DATA AVAIL. FLAG MXOR EQU 03H ;MASK TO MAKE MTBE AND MRDA "LOW TRUE" ENDIF ; IF DCH MTBE EQU 02H ;MODEM TRANS. BUFFER READY FLAG MRDA EQU 01H ;MODEM RECEIVE DATA AVAIL. FLAG MXOR EQU 03H ENDIF ; IF TRS1 MTBE EQU 40H ;TRS80 MOD1 RS232 BUFFER READY MRDA EQU 80H ;MODEM RECEIVE DATA AVAIL. MXOR EQU 0C0H ENDIF ; IF TUART ;<<--OR ANY OTHER SERIAL I/O MTBE EQU 20H ;<<--MODIFY FOR YOURS MRDA EQU 1H ;<<--MODIFY FOR YOURS ŠMXOR EQU 21H ;<<--MODIFY FOR YOURS ENDIF ; ; **MAIN PROGRAM** ; ORG BASE+100H LINK: IF NOT OSBORNE LXI SP,STACK+64 ;CREATE LOCAL STACK ENDIF LHLD BASE+1 ;POINT TO CP/M JMP TABLE LXI D,3 ;GET READY TO ADD 3 DAD D ;POINT TO CON STATUS JMP SHLD CITCAL+1 ;MODIFY CALL ADRS DAD D ;POINT TO CON IN JMP SHLD RCCAL+1 ;MODIFY CALL ADRS DAD D ;POINT TO CON OUT JMP SHLD WCCAL+1 ;MODIFY CALL ADRS LDA FCB+1 ;SEE IF OPTIONAL TRIGER CHAR CPI 20H ;BLANK.. ? JZ SKP ;..BLANK SO USE DEFAULT "LF" CPI 'B' ;BELL WANTED JZ TRGBEL CPI 'X' ;XON WANTED JZ TRGXON CPI 'U' ;UPLOADING NO CHECKING FOR TRIGER JZ TRGUPL ; SETTRG STA OVERLY+1 ;STORE THE CHARACTER AS IS THEN JMP SKP ; TRGBEL MVI A,BELL JMP SETTRG ; TRGXON MVI A,XON JMP SETTRG ; TRGUPL XRA A ;ZERO OUT JUMP STA OVERL1+1 ;CHANGE CHECK FOR C/R TO NULL STA OVERL2+1 ;AND SEND LINEFEEDS AS WELL JMP SKP ; SKP EQU $ IF H84 MVI A,80H; SET DLAB BIT IN 8250 UART OUT 0DBH; 8250 AT PORT D8H (330Q) NOP ! NOP ! NOP NOP ! NOP MVI A,01H; MSB OF BAUD RATE DIVISOR OUT 0D9H; ...TO UART NOP ! NOP ! NOP NOP ! NOP MVI A,80H; LSB OF BAUD RATE DIVISOR OUT 0D8H; ...TO UART NOP ! NOP ! NOP NOP ! NOP MVI A,03H; 8 BITS, 1 STOP BIT, NO PARITY, DLAB RESET Š OUT 0DBH; ...TO UART NOP ! NOP ! NOP NOP ! NOP MVI A,0; RESET CONTROL REGISTER OUT 0DCH; ...TO UART JMP CONT ENDIF IF INIT$REQUIRED AND NOT H84 AND NOT CPMDUM OR PMMI AND NOT H84 MVI A,MODINIT OUT MODS ;INITIALIZE MODEM PORT ENDIF ; IF TUART MVI A,80H ;DSR ON BIT 7 PARL PORT B OUT 54H ENDIF ; IF TRSPT ;MUST SET UP SERIAL CHANNEL RESET: LXI H,INITR ;STORE RETURN ADDRESS PUSH H LHLD 1 LXI D,SETSIO ;SIO SETUP ROUTINE DAD D PUSH H ;STORE ON STACK MVI C,00H ;NO PARITY CHAN-A MVI D,0E6H ;8 bits ,1 STOP MVI E,3 ;300 BAUD MVI L,00H ;DISABLE EXT/ACK SIO FUNCTIONS MVI H,'S'-40H ;CONTROL S (X-ON) RET ;TROUGH SETUP PROG INITR NOP ;DO IT TO IT ENDIF ; IF TRS1 ;INIT FOR TRS80 MOD1 RS232 OUT 0E8H ;RESET RS232 IN 0E9H ;READ THE SWITCHES ANI 0F8H ORI 5 OUT 0EAH ;SET DSR AND CTS MVI A,55H ;300 BAUD OUT 0E9H ENDIF ; ; IF PORT IN MODD ;CLEAR MODEM UART READ BUFFERS IN MODD ENDIF ; IF CPMDUM SAVIO: PUSH H ! PUSH D ! PUSH B ! PUSH PSW MVI C,IOGET ;SAVE ENTRY I/OBYTE CALL BDOS STA ORGIO POP PSW ! POP B ! POP D ! POP H Š ENDIF ; CONT XRA A ;CLEAR CHAR BUFFERS STA INCH STA OUTCH STA FLAG ;CLEAR TEXT SAVE FLAG LXI H,TBUF ;SET PTR TO TBUF SHLD PTR LXI H,0 ;SIZE = 0 SHLD SIZE LXI H,LINKMS ;PRINT SIGN-ON MESSAGE CALL WCS ; ; MAIN LOOP ; LINK3: CALL CITEST ;JUMP IF NO DATA FROM CONSOLE JZ LINK4 CALL RCC ;ELSE READ CONSOLE DATA CPI 20H CC PCC ;CALL PCC IF CONTROL CHAR JC LINK4 ;JUMP IF PCC HANDLED CHAR ORI 80H ;ELSE SET VALID DATA BIT STA INCH ;AND STORE IN INPUT CHAR BUFFER LINK4: LDA OUTCH ;JUMP IF NO DATA FOR CONSOLE ORA A JP LINK5 ANI 7FH ;ELSE DISCARD VALID DATA BIT CALL WCC ;SEND CHAR TO CONSOLE XRA A ;THEN CLEAR OUTPUT CHAR BUFFER STA OUTCH LINK5: CALL MITEST ;JUMP IF NO DATA FROM MODEM JZ LINK6 CALL RMC2 ;ELSE READ MODEM DATA CALL SAVE ;SAVE CHAR IN TEXT BUFFER IF FLAG ON ORI 80H ;SET DATA VALID BIT STA OUTCH ;STORE IN OUTPUT CHAR BUFFER LINK6: CALL MOTEST ;JUMP IF MODEM XMIT BUFFER BUSY JZ LINK7 LDA INCH ;JUMP IF NO DATA FOR MODEM ORA A JP LINK7 ANI 7FH ;DISCARD VALID DATA BIT ; IF PORT OUT MODD ;OUTPUT CHAR TO MODEM ENDIF ; IF TRSPT PUSH B ;STORE REGISTERS PUSH H PUSH D CALL WMC ;SEND CHAR POP D POP H POP B Š ENDIF ; IF CPMDUM CALL WMC ;SEND CHAR TO MODEM ENDIF ; XRA A ;...THEN CLEAR INPUT CHAR BUFFER STA INCH LINK7: JMP LINK3 ;END OF MAIN LOOP ; LINKMS: DB CR,LF,'PLINK as of 24-JAN-82' IF TUART DB CR,LF,'(For TUART I/O)' ENDIF IF PMMI DB CR,LF,'(For PMMI Modem)' ENDIF IF DCH DB CR,LF,'(For DCH Modem)' ENDIF IF TRS1 DB CR,LF,'(For TRS80-MOD1)' ENDIF IF TRSPT DB CR,LF,'(For TRS80-MOD2)' ENDIF IF H84 DB CR,LF,'(For H8/H8-4)' ENDIF IF CPMDUM DB CR,LF,'(For CP/M Alternate Console Device' DB CR,LF,'with External Dumb Modem)' ENDIF DB CR,LF,LF,'READY',CR,LF,LF,0 ; ; PCC - PROCESS CONTROL CHARACTER ; PCC: CPI 'E'-40H ;JUMP OUT IF CTRL E JNZ PCC1 PUSH H LXI H,AYS ;PRINT 'ARE YOU SURE' CALL WCS POP H CALL RCC ;GET ANSWER CALL WCC ;ECHO IT ANI 5FH ;MAKE UPPER CASE CPI 'Y' ;YES? JZ PCCEX ;EXIT CALL WCCR ;CRLF STC ;TELL LINK TO IGNORE THIS CHARACTER ; IF TRSPT POP PSW ;GOBBLE UP CALL ADDRESS JMP RESET ;RE-INITIALIZE SIO ENDIF Š; IF PORT OR CPMDUM RET ENDIF ; PCC1: CPI 'T'-40H ;JUMP IF NOT CONTROL-T JNZ PCC2 CALL STF ;TRANSMIT TEXT FILE TO MODEM STC ;TELL LINK TO IGNORE THIS CHARACTER RET ; PCC2: CPI 'Y'-40H ;JUMP IF NOT CONTROL-Y JNZ PCC3 MVI A,1 ;TURN ON TEXT SAVE FLAG STA FLAG LXI H,PCCMR ;PRINT 'SAVING INCOMING TEXT IN MEMORY' CALL WCS STC ;TELL LINK TO IGNORE THIS CHARACTER RET ; PCC3: CPI 'Q'-40H ;JUMP IF NOT CONTROL-Q JNZ PCC4 XRA A ;TURN OFF TEXT SAVE FLAG STA FLAG CALL WTB ;WRITE TEXT BUFFER TO DISK STC RET ; PCC4: STC ;LET LINK HANDLE ALL OTHER CONT. CODES CMC RET ; PCCEX: LXI H,DISMS ;PRINT 'MODEM NOT DISCONNECTED' CALL WCS JMP BASE ;EXIT TO WARM BOOT ; AYS: DB CR,LF,'EXIT TO CP/M - ARE YOU SURE (Y OR N)?',0 IF PMMI OR DCH DISMS: DB CR,LF,'++DON''T FORGET - THE MODEM ' DB 'IS NOT DISCONNECTED++',CR,LF DB 'USE "MODEM D" TO DISCONNECT',0 ENDIF ; IF NOT PMMI AND NOT DCH DISMS: DB CR,LF,'+++ EXIT TO CP/M +++',CR,LF,0 ENDIF ; PCCMR: DB CR,LF,'SAVING INCOMING TEXT IN MEMORY',CR,LF,0 ; ; STF - SEND TEXT FILE (TO MODEM) ; STF: CALL GFN ;GET NAME OF DISK FILE TO SEND JC STF6 ;JUMP IF FILE NAME ERROR CALL OPEN ;TRY TO OPEN SPECIFIED FILE CPI 255 ;JUMP IF FILE NOT FOUND Š JZ STF7 STF1: CALL READ ;READ NEXT RECORD INTO DBUF CPI 1 ;JUMP IF END-OF-FILE JZ STF5 LXI H,DBUF ;POINT TO DISK BUFFER  MVI C,128 STF2: MOV A,M ;FETCH NEXT CHAR FROM DBUF INX H CPI 'Z'-40H ;JUMP IF END-OF-FILE CHARACTER JZ STF5 OVERL2 CPI LF ;IGNORE LINE FEEDS JZ STF4 CALL WMC ;WRITE CHARACTER TO MODEM CALL WCC ;WRITE CHARACTER TO CONSOLE OVERL1 CPI CR ;JUMP IF NOT CARRIAGE RETURN JNZ STF4 STF3: CALL CITEST ;CHECK CONSOLE DATA READY JZ STF3A ;NO DATA THERE CALL RCC ;GET CONSOLE CHARACTER CPI 'C'-40H ;CONTROL C ABORTS IT JZ STF8 STF3A: CALL MITEST ;WAIT FOR NEXT MODEM KHARACTER JZ STF3 CALL RMC2 ;CHECK MODEM FOR TRIGGER CHAR. OVERLY CPI TRIGER JNZ STF3 CALL WCCR ;SEND CRLF TO CONSOLE STF4: DCR C ;LOOP THRU REST OF DBUF JNZ STF2 JMP STF1 ;GO GET NEXT RECORD FROM DISK ; STF5: LXI H,STFSM ;PRINT 'FILE SEND COMPLETE' CALL WCS RET ; STF6: LXI H,STFS1 ;PRINT 'FILE NAME ERROR' CALL WCS RET ; STF7: LXI H,STFS2 ;PRINT 'FILE NOT FOUND' CALL WCS RET ; STF8: LXI H,STFSA ;PRINT 'FILE SEND ABORTED' CALL WCS RET ; STFSM: DB 'FILE SEND COMPLETE',CR,LF,0 STFS1: DB 'FILE NAME ERROR',CR,LF,0 STFS2: DB 'FILE NOT FOUND',CR,LF,0 STFSA: DB CR,LF,'FILE SEND ABORTED',CR,LF,0 ; ; SAVE - SAVE CHAR IN TEXT BUFFER IF FLAG ON ; ; ENTRY CONDITIONS Š; A - CHARACTER TO SAVE ; SAVE: PUSH PSW LDA FLAG ORA A JNZ SAVE1 POP PSW RET ; SAVE1: POP PSW CPI DEL ;RUBOUT (DEL) ? RZ ;YES, IGNORE IT CPI 20H ;TEST FOR CONTROL CHARACTERS JNC SAVE2 ;JUMP IF NOT CONTROL CHAR. CPI CR ;ALLOW CR TO BE SAVED JZ SAVE2 CPI LF ;ALLOW LF TO BE SAVED JZ SAVE2 CPI TAB ;ALLOW TAB TO BE SAVED JZ SAVE2 RET ;IGNORE ALL OTHER CONTROL CHARS. ; SAVE2: PUSH H LHLD SIZE ;SIZE = SIZE + 1 INX H SHLD SIZE LHLD PTR MOV M,A INX H SHLD PTR PUSH PSW LDA BASE+7 ;GET SYSTEM SIZE SUI 1 ;SO WE DONT CRASH CP/M CMP H ;ARE WE OUT OF ROOM? JZ SAVEAB ;YES, ABORT SUI 4 ;LEAVE SOME ROOM (1K) CMP H MVI A,WRNSIG ;SIGNAL CONSOLE RUNNING OUT OF SPACE CC WCC POP PSW POP H RET ; ; SAVEAB - RAN OUT OF ROOM, ISSUE MESSAGE AND FLOW ; THROUGH TO DISK SAVE ROUTINE ; SAVEND: DB BELL,CR,LF,'ABORTING - NO ROOM LEFT',0 ; SAVEAB: LXI SP,STACK+64 ;REINITIALIZE STACK LXI H,SAVEND ;PRINT 'ABORTING - NO ROOM LEFT' CALL WCS LXI H,LINK ;SET UP RETURN ADDRESS PUSH H ;LEAVE IT ON THE STACK ; ; WTB - WRITE TEXT BUFFER TO DISK Š; WTB: LHLD SIZE ;JUMP IF TEXT BUFFER EMPTY MOV A,L ORA H JZ WTB5 MVI C,RESDSK ;RESET IN CASE READ-ONLY CALL BDOS CALL GFN ;GET FILE NAME JC WTB6 ;JUMP IF FILE NAME ERROR CALL DELT ;DELETE OLD FILE, IF ANY CALL MAKE ;MAKE NEW FILE LHLD SIZE ;DE = TBUF SIZE XCHG LXI H,DBUF ;TOP OF STACK POINTS TO DBUF PUSH H LXI H,TBUF ;HL POINTS TO TBUF WTB1: MVI C,128 ;DISK BUFFER SIZE WTB2: MOV A,M ;FETCH NEXT BYTE OF TBUF INX H XTHL MOV M,A ;STORE IN DBUF INX H XTHL DCX D ;SIZE = SIZE - 1 MOV A,D ;EXIT LOOP IF SIZE = 0 ORA E JZ WTB3 DCR C ;LOOP UNTIL DBUF FULL JNZ WTB2 CALL WRITE ;WRITE FULL DBUF TO DISK XTHL ;TOP OF STACK POINTS TO DBUF LXI H,DBUF XTHL JMP WTB1 ;LOOP UNTIL END OF TBUF ; WTB3: POP H ;HL POINTS TO CURRENT PLACE IN DBUF WTB4: MVI M,'Z'-40H ;STORE EOF CODE INX H DCR C ;LOOP THRU REST OF DBUF JNZ WTB4 CALL WRITE ;WRITE LAST SECTOR TO DISK CALL CLOSE ;CLEAN UP ACT AND GO HOME LXI H,TBUF ;CLEAR TEXT BUFFER SHLD PTR LXI H,0 SHLD SIZE LXI H,WTBSM ;PRINT 'BUFFER SAVED ON DISK' CALL WCS RET ; WTB5: LXI H,WTBS1 ;PRINT 'TEXT BUFFER EMPTY' CALL WCS RET ; WTB6: LXI H,WTBS2 ;PRINT 'FILE NAME ERROR' Š CALL WCS RET ; WTBSM: DB CR,LF,'BUFFER SAVED ON DISK',CR,LF DB 'MEMORY SAVE CANCELLED',CR,LF,0 WTBS1: DB 'TEXT BUFFER EMPTY',CR,LF,0 WTBS2: DB 'FILE NAME ERROR',CR,LF,0 ; ; WCS - WRITE CONSOLE STRING ; ; ; ENTRY CONDITIONS ; HL - POINTS TO STRING (TERM BY ZERO BYTE) ; WCS: MOV A,M INX H ORA A RZ CALL WCC JMP WCS ; ; WCCR - WRITE CONSOLE CARRIAGE RETURN (AND LINE FEED) ; WCCR: MVI A,CR CALL WCC MVI A,LF ; ; WCC - WRITE CONSOLE CHARACTER ; ; ENTRY CONDITIONS: ; A - CHARACTER TO WRITE  ; WCC: PUSH PSW PUSH B PUSH D PUSH H MOV C,A ;GET CHARACTER FOR CBIOS WCCAL: CALL $-$ ;MODIFIED BY INIT. POP H POP D POP B POP PSW RET ; ; RCS - READ CONSOLE STRING (WITH ECHO) ; ; EXIT CONDITIONS ; B - NUMBER OF CHARACTERS READ (<255) ; HL - POINTS TO LAST CHAR STORED (CR) ; RCS: LXI H,IBUF MVI B,0 RCS1: CALL RCC ;READ NEXT CHAR FROM CONSOLE CPI DEL ;JUMP IF NOT DEL JNZ RCS2 Š INR B ;IGNORE DEL IF IBUF ALREADY EMPTY DCR B JZ RCS1 DCX H ;ELSE DISCARD LAST CHAR MOV A,M ;ECHO DISCARDED CHAR TO CONSOLE CALL WCC DCR B ;DECREMENT COUNT JMP RCS1 ; AND LOOP ; RCS2: CPI 'U'-40H ;JUMP IF NOT CONTROL U JNZ RCS3 CALL WCCR ;ELSE ABORT CURRENT LINE JMP RCS ; AND START OVER ; RCS3: CALL WCC ;ECHO CHAR TO CONSOLE MOV M,A ;STORE CHAR IN IBUF INR B ;INCREMENT COUNT CPI CR ;JUMP IF CARRIAGE RETURN JZ RCS4 INX H ;ELSE ADVANCE POINTER JMP RCS1 ; AND LOOP ; RCS4: MVI A,LF ;ISSUE LINE FEED AND RETURN CALL WCC RET ; ; RCC - READ CONSOLE CHARACTER ; ; EXIT CONDITIONS ; A - CHARACTER READ ; RCC: PUSH B PUSH D PUSH H RCCAL: CALL $-$ ;MODIFIED BY INI\. POP H POP D POP B RET ; ; WMC - WRITE MODEM CHARACTER ; ; ENTRY CONDITIONS ; A - CHARACTER TO WRITE ; ; IF PORT WMC: PUSH PSW WMCL: IN MODS XRI MXOR ANI MTBE JNZ WMCL POP PSW ANI 7FH ;STRIP PARITY BIT OUT MODD Š RET ENDIF ; IF TRSPT WMC: PUSH H PUSH D PUSH PSW WMCL: CALL MOTEST ;TEST STATUS JZ WMCL ;LOOP TILL TX EMPTY POP PSW ;RESTORE CHAR ANI 7FH ;STRIP PARITY PUSH B ;STORE B MOV C,A ;PUT CHAR INTO C MVI B,00H ;CHANNEL A LXI H,WMCRE ;STORE RETURN ADDRESS PUSH H LHLD 1 ;GET BASE ADDRESS LXI D,SIOOUT DAD D PCHL ;JUMP TO IT WMCRE: POP B ;RESTORE IT POP D POP H RET ENDIF ; IF CPMDUM WMC: PUSH H ! PUSH D ! PUSH B PUSH PSW WMCL: LDA ORGIO ;GET ENTRY I/OBYTE ANI 0FCH ;SAVE ALL BITS EXCEPT 0 & 1 ADI ALTCON ;SET BITS 0 & 1 TO 'CRT' MOV E,A MVI C,IOSET ;SET NEW I/OBYTE CALL BDOS  POP PSW ANI 7FH CALL WCC ;OUTPUT CHAR TO MODEM LDA ORGIO ;RESTORE ENTRY I/OBYTE MOV E,A MVI C,IOSET ;SET I/OBYTE CALL BDOS POP B ! POP D ! POP H RET ; ; RMC - READ MODEM CHARACTER ; ; EXIT CONDITIONS: ; A - CHARACTER READ ; ; IF PORT RMC: IN MODS XRI MXOR ANI MRDA Š JNZ RMC RMC2: IN MODD ANI 7FH RET ENDIF ; IF TRSPT RMC: CALL MITEST ;CHAR AVAILABLE JZ RMC ;LOOP IF NOT READY RMC2: PUSH B ;STORE B PUSH D PUSH H MVI B,00H ;CHANNEL A LXI H,RMCRE ;RETURN ADDRESS PUSH H LHLD 1 LXI D,SIOINP DAD D PCHL RMCRE: POP H POP D POP B ANI 7FH ;STRIP PARITY RET ENDIF ; IF CPMDUM RMC: RMC2: PUSH H ! PUSH D ! PUSH B LDA ORGIO ;GET ENTRY I/OBYTE ANI 0FCH ;SAVE ALL BITS EXCEPT 0 & 1 ADI ALTCON ;SET BITS 0 & 1 TO 'CRT' MOV E,A MVI C,IOSET ;SET NEW I/OBYTE CALL BDOS CALL RCC ;INPUT CHAR FROM MODEM PUSH PSW LDA ORGIO ;RESTORE ENTRY I/OBYTE MOV E,A MVI C,IOSET ;SET I/OBYTE CALL BDOS POP PSW ANI 7FH POP B ! POP D ! POP H RET ENDIF ; ; ; GFN - GET FILE NAME ; GFN: LXI H,GFNSD ;PRINT 'WHICH DRIVE?' CALL WCS CALL RCC ;GET ANSWER FROM CONSOLE CALL WCC ;ECHO IT TO CONSOLE ANI 5FH ;MAKE UPPER CASE Š SUI 'A'-1 JC GFN ;REQUIRE ALPHABETIC JZ GFN CPI 17 ;ALLOW 16 DRIVES (AS IN CP/M 2.X) JNC GFN STA FCB GFNB: LXI H,GFNS1 ;PRINT 'FILENAME? ' CALL WCS CALL RCS ;READ RESPONSE INTO IBUF LXI H,FCB+FN ;BLANK FILL FN AND FT FIELDS MVI C,11 GFN1: MVI M,' ' INX H DCR C JNZ GFN1 LXI H,IBUF ;POINT TO INPUT BUFFER LXI D,FCB+FN ;SCAN OFF FN FIELD MVI C,9 GFN2: MOV A,M ;FETCH NEXT CHAR FROM IBUF INX H CPI 61H ;IF LC, CONVERT TO UC JC GFN2A SUI 20H GFN2A: CPI CR ;JUMP IF END OF LINE JZ GFN5 CPI '.' ;JUMP IF END OF NAME JZ GFN3 STAX D ;ELSE STORE CHAR IN FN FIELD INX D DCR C ;LOOP IF 8 OR LESS CHARS SO FAR JNZ GFN2 JMP GFN6 ;ELSE TAKE ERROR EXIT ; GFN3: LXI D,FCB+FT ;SCAN OFF FT FIELD MVI C,4 GFN4: MOV A,M ;FETCH NEXT CHAR FROM IBUF INX H CPI 61H ;IF LC, CONVERT TO UC JC GFN4A SUI 20H GFN4A: CPI CR ;JUMP IF END OF LINE JZ GFN5 STAX D ;ELSE STORE CHAR IN FT FIELD INX D DCR C ;LOOP IF 3 OR LESS CHARS SO FAR JNZ GFN4 JMP GFN6 ;ELSE TAKE ERROR EXIT ; GFN5: XRA A STA FCB+EX ;SET EXTENT NUMBER TO ZERO STA FCB+NR ;SET RECORD NUMBER TO ZERO STC ;CLEAR ERROR FLAG AND RETURN CMC RET ; ŠGFN6: STC ;SET ERROR FLAG AND RETURN RET ; GFNSD: DB CR,LF,'WHICH DRIVE? ',0 GFNS1: DB CR,LF,'FILENAME? ',0 ; ; OPEN - OPEN DISK FILE ; OPEN: PUSH H PUSH D PUSH B LXI D,FCB MVI C,OFFC CALL BDOS POP B POP D POP H RET ; ; READ - READ RECORD FROM DISK FILE ; READ: PUSH H PUSH D PUSH B LXI D,FCB MVI C,RRFC CALL BDOS POP B POP D POP H RET ; ; CLOSE - CLOSE DISK FILE ; CLOSE: PUSH H PUSH D PUSH B LXI D,FCB MVI C,CFFC CALL BDOS POP B POP D POP H RET ; ; DELT - DELETE DISK FILE ; DELT: PUSH H PUSH D PUSH B LXI D,FCB MVI C,DFFC CALL BDOS POP B POP D Š POP H RET ; ; WRITE - WRITE RECORD TO DISK ; WRITE: PUSH H PUSH D PUSH B LXI D,FCB MVI C,WRFC CALL BDOS POP B POP D POP H RET ; ; MAKE - MAKE NEW DISK FILE ; MAKE: PUSH H PUSH D PUSH B LXI D,FCB MVI C,MFFC CALL BDOS POP B POP D POP H RET ; ; CITEST - CHECK CONSOLE INPUT STATUS ; CITEST: PUSH B PUSH D PUSH H CITCAL: CALL $-$ ;MODIFIED BY INIT. ORA A ;SET ZERO FLAG POP H POP D POP B RET ;ZERO FLAG CARRIES ANSWER ; ; MITEST - CHECK MODEM INPUT STATUS ; IF PORT MITEST: IN MODS ;GET MODEM UART STATUS XRI MXOR ;INVERT HIGH-TRUE BITS ANI MQRDA ;ANY DATA AVAILABLE? MVI A,0 JNZ MITST1 CMA MITST1: ORA A RET ;ZERO FLAG CARRIES ANSWER ENDIF ; ; Š IF TRSPT ; MITEST: PUSH B PUSH H PUSH D MVI B,00 ;CHANNEL A LXI H,MITSTR PUSH H LHLD 1 LXI D,SIOTST DAD D PCHL MITSTR: POP D POP H ANI 01 ;TX EMPTY POP B RET ;ZERO FLAG HOLDS THE ANSWER ENDIF ; IF CPMDUM MITEST: PUSH H ! PUSH D ! PUSH B LDA ORGIO ;GET ENTRY I/OBYTE ANI 0FCH ;SAVE ALL BITS EXCEPT 0 & 1 ADI ALTCON ;SETS BITS 0 & 1 TO 'CRT' MOV E,A MVI C,IOSET ;SET NEW I/OBYTE CALL BDOS CALL CITEST ;GET INPUT STATUS PUSH PSW ;SAVE IT LDA ORGIO ;RESTORE ENTRY I/OBYTE MOV E,A MVI C,IOSET ;SET I/OBYTE CALL BDOS POP PSW ;INPUT STATUS POP B ! POP D ! POP H RET ENDIF ; ; MOTEST - CHECK MODEM OUTPUT STATUS ; ; IF PORT MOTEST: IN MODS ;GET MODEM UART STATUS XRI MXOR ;INVERT HIGH-TRUE BITS ANI MTBE ;UART READY FOR CHARACTER? MVI A,0 JNZ MOTST1 ;ZERO FLAG CARRIES ANSWER CMA MOTST1: ORA A ;SET ZERO FLAG IF READY RET ENDIF ; IF TRSPT MOTEST: PUSH B PUSH H Š PUSH D MVI B,00 ;CHANNEL A LXI H,MOTSTR PUSH H LHLD 1 LXI D,SIOTST DAD D PCHL MOTSTR: ANI 02 ;BUFFER EMPTY POP D POP H POP B RET ENDIF ; IF CPMDUM MOTEST: MVI A,0 ;ALWAYS REPORT 'CRT' (MODEM) ;OUTPUT STATUS AS READY. ;*** MAY NOT WORK IN ALL SYSTEMS *** CMA ORA A RET ENDIF ; ; DATA AREA ; INCH: DS 1 ;INPUT CHAR BUFFER (TO CYBER) OUTCH: DS 1 ;OUTPUT CHAR BUFFER (FROM CIBER) STACK: DS 80 ;LOCAL STACK IBUF: DS 256 ;INPUT BUFFER ORGIO: DS 1 ;ENTRY I/OBYTE BUFFER (USED WITH ;EXTERNAL MODEM ON CP/M 'CRT' DEVICE) ; ; TEXT BUFFER ; FLAG: DS 1 ;TEXT SAVE FLAG PTR: DS 2 ;TEXT BUFFER POINTER SIZE: DS 2 ;TEXT BUFFER SIZE TBUF: EQU $ ;START OF TEXT BUFFER ; END LINK ; CHARACTER? MVI A,0 JNZ MOTST1 ;ZERO FLAG CARRIES ANSWER CMA MOTST1: ORA A ;SET ZERO FLAG IF READY RET ENDIF ; IF TRSPT MOTEST: PUSH B PUSH H Š PUSH D MVI B,00 ;CHANNEL A LXI H,MOTSTR PUSH H LHLD 1 LXI D,SIOTST DAD D PCHL MOTSTR: ANI 02 ;BUFFER EMPTY POP D POP H POP B RET ENDIF ; IF CPMDUM MOTEST: MVI A,0 ;ALWAYS REPORT 'CRT' (MODEM) ;OUTPUT STATUS AS READY. ;*** MAY NOT WORK IN ALL SYSTEMS *** CMA ORA A RET ENDIF ; ; DATA AREA ; INCH: DS 1 *"v"."é:]þ ÊCþBÊ/þXÊ4þUÊ92$ÃC>Ã)>Ã)¯22ýÃCåÕÅõÍ2öñÁÑá¯2¤2¥2÷!ü"ø!"ú!¿ÍÒÍrÊ…Í*þ Ü!Ú…ö€2¤:¥·ò•æÍã¯2¥Í}ʦÍXÍœö€2¥ÍŸʼ:¤·ò¼æÍ4¯2¤Ão PLINK as of 24-JAN-82 (For CP/M Alternate Console Device with External Dumb Modem) READY þÂ@å!vÍÒáÍ*Íãæ_þYÊmÍÜ7ÉþÂJÍÚ7ÉþÂ\>2÷!·ÍÒ7ÉþÂj¯2÷Í 7É7?É!žÍÒà EXIT TO CP/M - ARE YOU SURE (Y OR N)? +++ EXIT TO CP/M +++ SAVING INCOMING TEXT IN MEMORY Í|Ú9ÍþÿÊ@Í'þÊ2!€€~#þÊ2þ Ê+Í4Íãþ Â+ÍrÊÍ*þÊGÍ}Ê ÍXþ  ÍÜ ÂõÃè!NÍÒÉ!cÍÒÉ!uÍÒÉ!†ÍÒÉFILE SEND COMPLETE FILE NAME ERROR FILE NOT FOUND FILE SEND ABORTED õ:÷·Â¦ñÉñþÈþ Ò¿þ Ê¿þ Ê¿þ Ê¿Éå*ú#"ú*øw#"øõ:Ö¼ÊÿÖ¼>ÜãñáÉ ABORTING - NO ROOM LEFT1æ!äÍÒ!å*ú}´Ên ÍÍ|ÚuÍEÍc*úë!€å!ü€~#ãw#ãz³ÊM Â2ÍTã!€ãÃ0á6# ÂNÍTÍ6!ü"ø!"ú!|ÍÒÉ!¬ÍÒÉ!ÀÍÒÉ BUFFER SAVED ON DISK MEMORY SAVE CANCELLED TEXT BUFFER EMPTY FILE NAME ERROR ~#·ÈÍãÃÒ> Íã> õÅÕåOÍáÑÁñÉ!öÍ*þ Êõ+~ÍãÃõþÂÍÜÃðÍãwþ Ê$#Ãõ> ÍãÉÅÕåÍáÑÁÉåÕÅõ:öæüÆ_ÍñæÍã:ö_ÍÁÑáÉåÕÅ:öæüÆ_ÍÍ*õ:ö_ÍñæÁÑáÉ!ûÍÒÍ*Íãæ_Ö@Ú|Ê|þÒ|2\! ÍÒÍð!] 6 # ¨!ö] ~#þaÚÀÖ þ Êïþ.ÊÓ ·Ãùe~#þaÚáÖ þ Êï ÂØÃù¯2h2|7?É7É WHICH DRIVE? FILENAME? åÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉåÕÅ\ÍÁÑáÉÅÕåÍ·áÑÁÉåÕÅ:öæüÆ_ÍÍrõ:ö_ÍñÁÑáÉ>/·ÉÍ4Íãþ Â+ÍrÊÍ*þÊGÍ}Ê ÍXþ  ÍÜ ÂõÃè!NÍÒÉ!cÍÒÉ!uÍÒÉ!†ÍÒÉFILE SEND COMPLETE FILE NAME ERROR FILE NOT FOUND FILE SEND ABORTED õ:÷·Â¦ñÉñþÈþ Ò¿þ Ê¿þ Ê¿þ Ê¿Éå*ú#"ú*øw#"øõ:Ö¼ÊÿÖ¼>ÜãñáÉ ABORTING - NO ROOM LEFT1æ!äÍÒ!å*ú}´Ên ÍÍ|ÚuÍEÍc*úë!€å!ü€~#ãw#ãz³ÊM Â2ÍTã!€ãÃ0á6# ÂNÍTÍ6!ü"ø!"ú!|ÍÒÉ!¬ÍÒÉ!ÀÍÒÉ BUFFER SAVED ON DISK MEMORY SAVE CANCELLED TEXT BUFFER EMPTY FILE NAME ERROR ~#·ÈÍãÃÒ> Íã> õÅÕåOÍáÑÁñÉ!öÍ*þ ÊÃ*l—|wxyz{|}~€�‚ƒ„…€�‚ƒ„…†‡ˆ‰ Í#!¾åÍì ÁØÃ’!"½CÍÊ "…*ÛC|µÊÉ*¥C|µÊÀÍù!"ÙCÃÃÍ?!"ÛC*ÙC|µÊåÍ">!"ÙC*¥C|µÊåÍùÍ´*…ÃÑÍ:*¥C+++ÍilÊÍÎ]*¥C|µÊ*ÙCÍ…lÍilÊ*ÛCÍ…lÍilÊ#ÍùÃõÍQ*¥C|µÊ4ÍùÃõ*¥C|µÊG!åÍ0ÁÃõ*¥C|µÊZ! åÍ0ÁÃõ*¥C|µÊm!åÍ‚ÁÃõ*¥C|µÊ€! åÍ‚ÁÃõ!"¥CÍÎ]Í">Í?Ãõ*…&}æ€o|µÊ¦Ãõ*ÁCºÿÍilÊÆ*…åÍ :ÁÍ‘*…åÍAÁ*…åÍ—;ÁÃõÍ~mî�&‚7„J…]‡pˆƒ†Ã•ÕÉ*¥CÃÍc/Ã/ÍåLÃ/ÍÒ^Ã/ÍÅbÃ/Ã/Í~mÿ É*¥CÃp!9Í>låÍ‘1ÁÍc/Ã�!9Í>l+åÍ„NÁÍåLÃ�!9Í>låͼ_ÁÍÒ^Ã�Ã�Í~m6H[É*¥Cð!9Í>låÍs1ÁÍc/ý!9Í>l+åͱNÁÍåLýýÍ~mˆšÉOTERMINITå!" áÉõÅåO* yOíj0|îg}î!oï" áÁñÉõ—ÍÑÍÑí[ ñÉå* |µáÈ>ÿÉÍ'x:Oy=¹ØxæW!Py ~怲wÉ:géyþ ( þ C:ÃC*ÇC¶(::‡C·(æõÍK2|¥< Í» }´(ññÉñ½ êÉ:‰C·(Í~:ÁCþFÀ:ÇC·À:ÃC·À:‹C·ÈÅ:�C·(G‡!¿CËF ‡€‡G:�C· ÍÅÁÉ͸ÁÉÍ» |µ.ÌK2|¥<(ñÁÉáÁÅåAÅÍK2Á>ÍcôÉX—2»CÕÍK2Ñ|¥< >Íc î7É:»C·Àå:µC·d(Ë>ÍýdÂ:µC·È>ÅOÍÔ;ÁÉÍ+*‘C|µÊ**ŸCåÍ8kÁ|µÊ$*ŸCåÍ«\Á!"‘CÉ*‘C|µÊa*ŸCåÍdÁ|µÊO*ŸCåÍ8kÁ!"‘CÉ*™C"�C!"“C!"§CÉ*bå*“C|µÊÒ*�C"b*bÍ8lå!9Í>låÍükÁÁ|µÊ¥!9Í>låÍ«\Á!ëá"bëÉ*›Cå*bÍqlʸ*™Cÿ*b#"b"bå*�CÍ�lÂv!Þ*™C"b*�Cå*bÍ�lÊÃëÃØ*b#"b+Í8lå!9Í>låÍükÁÁ|µÊ!9Í>låÍ«\Á!ÞÃè!Þ!åÍ}=ÁÃ2Ã,*+Í8lÍ…lÊF!– åÍå+Á*+Í8lÍ…lÊSÉ*+Í8lÁÿÍ…lÊn!ÂåÍò;ÁÃÛ*+Í8lÖÿÍ…lÊž*­C|µÊ“!"¯C!"ª É!µ åÍÑcÁÃÛ*­C|µÊ®*­CåÍ8kÁ*+å!Ê åÍwiÁÁ"­C*­C|µÊÓ!"¯C!"ª É!Í åÍÑcÁ*+6Ã/É!åÍ}=ÁÃôÃî*+Í8lÍ…lÊ!Ú åÍå+Á*+Í8lÍ…lÊÉ*+Í8lÁÿÍ…lÊ0!üåÍò;ÁÆ!ï å!´ åÍwiÁÁ"ä|µÊW*äå*+å!ò åÍ”iÁÁÁÍilÊ~*äåÍdÁ*äåÍ8kÁ|µÊz*äåÍ«\ÁÉÆ!Í åÍÑcÁ*+6ÃñÉ!åÍ}=ÁÃ�×*+Í8lÍ…lʱ!õ åÍå+Á*+Í8lÍ…lʾÉ*+Í8lÁÿÍ…lÊÙ!GåÍò;ÁÃ!ï å!´ åÍwiÁÁ"ŸC|µÊ*ŸCå*+å!ò åÍ”iÁÁÁÍilÊ!"‘CÍ+ÉÃ!Í åÍÑcÁ*+6ÚÉ!ø9ù*&å!åÍ}=ÁÃ?Ã9*+Í8lÍ…lÊe!9Í>l|µÊ]! Ã`! åÍå+Á*+Í8lÍ…lÊ{á"&!9ùÉ*+Í8lÁÿÍ…lÊ–!¯åÍò;Áà !ï å!´ åÍwiÁÁ"$|µÊ½*$å*+å!ò åÍ”iÁÁÁÍilÊ{ *$å!9å!åÍòCÁÁÁ!"½C*$å!9Í>lå!9å!åÍ^3ÁÁÁÁ"&!"½C!åÍ®7Á*&ÃO Ã` ! åÍÑcÁ!"ÙC"8*$å!( å!´ åÍ”iÁÁÁÃ` !+ åÍÑcÁ!"ÙC"8Ã` Ã` Í~m  8 *$åÍ8kÁ|µÊu *$åÍ«\ÁÃqà !Í åÍÑcÁ*+6Ã<Ãq , F !ø9ù!åÍ}=Áë Ã¥ *+Í8lÍ…lÊ¿ !e åÍå+Á*+Í8lÍ…lÊÑ !9ùÉ*+Í8lÁÿÍ…lÊì !åÍò;ÁË *Ž å*+å!Ê åÍwiÁÁÁ"Ž |µÊƒ *Ž å!9å!åÍòCÁÁÁ!"½C*Ž å!åÍJaÁÁ*Ž å!9å!å͉5ÁÁÁ"� !åÍ®7Á!"½C*� |µÊu !"ÙC"8ÍC*� +)’ Í>låÍÑcÁ*Ž åÍ8kÁÃË Ã‹ !Í åÍÑcÁ*+6è ÃË Read file name (* to continue)Input file not open rbCannot open Log output file name/bwbLog file namecrcrecvreceive Aborted by operator/d Aborted because of errorsCan't establish communicationssendÍÊ "¬ &}æ€o|µÊ î *¬ ÉÃÐ ÃÊ Í� "Æ åÿÍ…lÊã *±CÍilÊ( Í� "Æ åÍùcÁ|µÊ *Æ P"Æ Ã( *Æ ÁÿÍ…lÊ !"Æ Ã( *Æ &}æo"Æ *±C|µÊ: *Æ öÿÍ…lÍilÊC *³CÍilÊL ÃÍ *Æ }ÿÍilÊ] *Æ ÉÍ� "Æ }2È !È åÍì ÁÍ…lÊy *Æ ÉÃÍ É!"±CÃ� Ç *¡C|µÊ› *ª Í…lÍilʪ Í">Í?ÍÍK2ÍK2*ª |µÊ Í» |µÊà Ê *¹C|µÊΠÊ *ª åÍ>l+ÍCl#|µÊ÷ !"±C*ª ##åÍ>l#ÍCl+Í8lÉ*ª üÿ"ª å!j ÑÍØlÊ !"ª Ê *¯C|µÊ¥ Í» |µÊ( Ê *¹C|µÊ3 Ê *­CåÍãCÁÍ…l" |µÊI Íå*­CåÍÁkÁ˽"} * |µÌöÍK2*} æÿÍ…lÊu !ÿÿ"} *} #Íil"±C|µÊˆ *} ÉÍå*­CåÍ8kÁÍö!"­C!"¯CÊ !"¹CÍ~|µÊ· ͇ÉÊ ÉÍ~|µÊà ÍŠwÿÍ…lÊà !"¯C!"ª !É!É!9Í>l#Í8lÍ…lÊ¢!9Í>lÍ8låÍùcÁ|µÊK!9Í>lÍ8lÐÿ"ä );Í>l"æ *ä #);Í>lå*æ Ímå*æ åÍ2ÁÁÉ!9Í>lÍ8låÍKcÁ|µÊž!9Í>lÍ8låÍðhÁ¿ÿ)Í>l"ê Í…lʇ!É*ê Í>l++å*ê ####åÍ2ÁÁÉ!É*|µÊ.*"ê *ê Í>l"ä |µÊ.ÃÏ*æ ë*ä "ê ð*ê ##"æ !9Í>l"è *è #"è +Í8lå*æ Í8lÍqlÊ+ÃÿÃáÍK2*ä +"ä *æ #"æ +Í8lÍ…lÊ(*ä å*æ åÍ2ÁÁÉÃüÃÁ!É*ª å!¦ ÑÍÉlÊD!É*ª |µÊY*ª "ª Ã\!j "ª *ª å!9Í>lÍCl*ª ##å!9Í>lÍClÉÍbI!È#ÉÍÞEÍgIo&ÉÃÞEÍ´í[*!—íR+7È2±CëNÍ"i&·É:½C·À*!åÍë*·íRáÈåÕÍêáÑØxæÀ"!ëq>ÿ2»CÉÍê`iÐ!ÉÍýG?Øí[ƒC.6Í(O·Éí[�C.6Í(É#ë!·íRëÐ!É!""!ÉèÍÐE.0Œ’äU5D”ÔX˰.FCLOSEŒú‚TdõTèΈ"G.ŒÜdtUDÄåøËP*H.Œå�d„ÅÄthÌ@HLPRCVŒ°Ô„Å$HÎð&HLPSNDŒ‘d„ÅtÄxÍØINFILEŒ·T”ôU%(ÊØ-KEEPCŒç€dÄôt%ThÍLOGENDŒõ�dÄôtd”ÈÈ0LOGFLLŒê€TÄôuHË(LOGWRPŒî$âèÊP.NOPOLLŽ“€dõUDÄôxÊ*PCŒ¯Õ5$ÄhÏàPUTCŒñeUD„ÅëPUTLOGŒÂÅUE:22æÃö2 ͵z"�Cë!"ƒC!"…C!4í°!å!å!å!åÍ!DÁÁÁÁ"ÑCëÍ:E!å!å*ÏCå!åÍ!DÁÁÁÁ"×CëÍ:E:ÅC·Ä¯E!CåÍÑ7Á*.kå;Åí°ÁÑ!Yí°!9í[:|·íRàDM͵z"™C"�C +"›CÍ—2“C2‘C2¯C2¥C2ßC2¹Cgo"­C"«C"ÓC"ÕC"ª "¡C"£C=2c:Áï23:¿CO.<Í(ÍçbÍ Í É:3O.<Í(:22ÍÃÊm:*É:*Éy2*É:—C·ÈáÁÅåyæOþÈÅÍ´Á*�Cqë*©CöíR 2§C*›CöíRë0*™C2“C"�CÀÀ:‘C·( ÍåÍ+Ãö:•C·ÈÅ—2¯CÍåÅÕÍ8ÑxÕͳÑÁîÁÉDisplays disk directory with file sizes in sectors Enter drive letterDisplays disk space statistics Enter drive letterErases a file Enter the (unambiguous) file nameEnter desired line size Minimum 1; Maximum 128Enter desired wait time in seconds Minimum 1; Maximum 60Takes input from a file Enter name of the file to be readEnter name of the file The current log buffer will be written to this fileEnter name of the file The current log buffer, and all further logged data will be written to this fileReceives a file using the "modem" protocol Enter the name of the file as it is to appear on this systemSends a file using the "modem" protocol Enter the name of the file on this system which is to be sentEnter the name of the function key desiredDisplays a file Enter the name of the file to be typed-------------------------------------------T | 7 | 8 | 9 |T | scroll up | scroll up | cancel |T | half | full | file or fk |T -------------------------------------------T | 4 | 5 | 6 |T | scroll down | scroll down | cancel |T | half | full | spec disp |T -------------------------------------------T | 1 | 2 | 3 |T | command | extended | standard |T | | func key | func key |T -------------------------------------------T!"8"6!åÍ}=Á!"+Í¥*¥CÍ…lÊc*6Í…lÍilÊlÍ?*8Í…lÊxÍ">Éžœ’�' ''''&','6'@'F'K'R'W'['a'f'n's'x'*{å!9Í>l"{*yå!9Í>l"y!}'å!}åÍ%+ÁÁÃlá"yá"{ÉÍÐÃÑÍÆÃÑ*×CåÍ;@ÁÃÑ͸ÃÑ!åÍ(ÁÃÑÍ3ÃÑÍ'!ÃÑÍA ÃÑÍ¥!ÃÑÍK"ÃÑ!"¥CÃÑÍ6#ÃÑÍFÃÑͳ#ÃÑ!"¡C!�'åÍì ÁÃÑ!åÍ(ÁÃÑ͘ ÃÑÍe&ÃÑÍÇ&ÃÑÃÁÍ~mÑÿÿÚàæñ÷  ) / 5 ;LW]cÃÑŠ'o'�'•'*+Í8lÍ…lÊæÍ/Í…l"6É!'å!ÄåÍ%+ÁÁæÉ*¥C+ÍilÊ Í./Í…l"6*¥C|µÊ4!Š'å!å!ÿå!˜'åÍt-ÁÁÁÁ"Îå!ÑÍ�lÍilÊB*ÎåÍ‘1ÁÉÍ/Í…l"6ÉÍ./Í…l"6É*¥C+ÍilÊjÍ/Í…l"6*¥C|µÊ”!•'å!å!ÿå!´'åÍt-ÁÁÁÁ"Îå!ÑÍ�lÍilÊ¢*ÎåÍs1ÁÉÿÍ~möÿÿ÷CMWÉÎ'Ò'*+Í8lÍ…lÊ!åÍW>Á!Õ'åÍÑcÁ*ÝC|µÊð!Ò'Ãó!Î'åÍÑcÁ*ÓCåÍZEÁ! 'å!ÀåÍ%+ÁÁÃ"É!"ÝCÉ!"ÝCÉÃ3Í~mÿÿÉ'á'F'é'Î'Ò'ë'ð'*+Í8lÍ…lÊUÍ !W'å!4åÍ%+ÁÁÃÕÉÍ+*™C"�C!"“C*¥C+Í…lÊ…!"¥C!"—CÃþÍåÍÍöÃþÍåÍ�ÍöÉ!"•CÃþ!"—CÃþ!"—CÃþ!"•CÃþÍåÍæÍöÉÃþÍ~meÿÿfŽš¤­¶¿È*+Í8l|µÂUÉ!åÍW>Á!åÍù7Á!ö'å*—CåÍ9&ÁÁ!û'å*•CåÍ9&ÁÁÍCÍ1d!(å*“C|µÊS*›Cå*™CÍmÃ]*�Cå*™CÍmå*›Cå*™CÍmåÍ9dÁÁÁÍCÍ1d!(å*‘C|µÊŒ*ŸCåÍ*&ÁÃ�!!(åÍ9dÁÁ*ÓCåÍZEÁÉ&(-(3(;(A(K(S(\(d(l(t(|(*+Í8lÍ…lÊÇͰ!'å!žåÍ%+ÁÁÃcÉ!"ÇCÜ!"ËCÜ!"ÍCÜ!"ÉCÜ!"ÍCÜ!"ÍCÜ!"ÇCÜ!"ËCÜ!"ÉCÜÍD?͵E!"ÅC*ÓCåÍZEÁÜ!"ÍCÜÍD?ͯE!"ÅC*ÓCåÍZEÁÜÜÍ~m×ÿÿØáêóü ) @ I *+Í8l|µÂÇÉ3(…(Š(�(!åÍW>Á!åÍù7Á!–(å*ÇCåÍ9&ÁÁ!Ÿ(å*ËCåÍ9&ÁÁÍ1d!§(å*ÍC)¨Í>låÍ9dÁÁ!µ(å*ÉCåÍ9&ÁÁ!½(å*ÅCåÍ9&ÁÁ*ÓCåÍZEÁÉÇ(Ì(Ô(Û(ã(ë(ó(ý())) ))*+Í8lÍ…lÊBÍ_!&'å!åÍ%+ÁÁÃÉ!"�CÃQ!"‹CÃQÍ^."åÍùcÁ|µÊ‚*Ðÿ"�CÖ!%)åÍÑcÁ!"+!˜*"+ÃQ!"·C!"¹CÃQ!"‰CÃQ!"‹CÃQ!"·C"¹CÃQ!"‰CÃQ!"‡CÃQ!"µCÃQÍ^."å!ÑÍ¡lÊüÍ^.}ö€o"‡CÃQ!"�CÃQ!"µCÃQÃQÍ~mRÿÿS\e™¨±ºÆÏØ á ÿ  *+Í8l|µÂBÉ!åÍW>Á!åÍù7ÁÍ1d!*)å*�C|µÊ„! )Ç!Ç(åÍ9dÁÁÍC!4)å*‹CåÍ9&ÁÁ!:)å*‰CåÍ9&ÁÁÍC!@)åÍÑcÁ*‡CÍ…lÊÉ!K)åÍÑcÁà *‡C&}æo"]å! ÑͬlÊ÷Í1d!R)å*]@åÍ9dÁÁà Í1d!X)å*]åÍ9dÁÁ!])å*µCåÍ9&ÁÁ!e)å*·CåÍ9&ÁÁÍCÍ1d!m)å*�C0åÍ9dÁÁ*ÓCåÍZEÁÉ*+Í8lÍ…lÊV ! åÍÁ ÁÉ*+Í8lÁÿÍ…lÊq !øåÍò;Áé *+Í8låÍKcÁÍ…lÊ� !%)åÍÑcÁé *+Í8låÍÁ Á|µÊ¡ Éé !%)åÍÑcÁ!6'åÍå+Á*+Í8l|µÂV É!9å!9Í>lå!½ å!¿ åÍÝNÁÁÁÍCl|µÊ!!åÍW>Á!"ÛC"6Í1d!z)å!9Í>lå*¿ å*¿ å*½ Ímå*½ åÍ9dÁÁÁÁÁ!9Í>lÉ*+Í8lÍ…lÊ"*+Í8lÁÿÍ…lÊß!!*åÍò;ÁÃ3"Íå*+å! 'åÍwiÁÁ"£!*£!|µÊ"*£!å!­)å!'åÍ”iÁÁÁ"£!*£!|µÊ"*£!åÍ8kÁÍö*£!|µÊ+"É!%)åÍÑcÁ!@'åÍå+Áù!Éá'°)*(µ)º)*+Í8lÍ…lÊZ"ÍØ"!F'å!?"åÍ%+ÁÁï"É*­C|µÊ‡"Íå*­CåÍ8kÁÍö!"­C!"¯CÃÌ"!"³CÃÌ"!"³CÃÌ"ÍåÍ$ÍöÉÃÌ"Í~mj"ÿÿk"‡"�"™"¢"*+Í8l|µÂZ"É!åÍW>Á!åÍù7Á!¿)å*³CåÍ9&ÁÁÍCÍ1d!(å*­C|µÊ#*­CåÍ*&ÁÃ#!!(åÍ9dÁÁ*¯C|µÊ+#!É)åÍÑcÁ*ÓCåÍZEÁÉ*+Í8lÍ…lÊg#!åÍW>ÁÍ1d!Ó)å*×CåÍ¡BÁåÍ9dÁÁ*ÓCåÍZEÁ!R'å!å!€å!ZåÍt-ÁÁÁÁ"4#å!ÑÍ�lÊ”#*4#åÍO?ÁÉá)å)ê)ð)&(ö)û)**S( *****+Í8lÍ…lÊÂ#Íà$!['å!•#åÍ%+ÁÁÓ$É!å!åÍ&ÁÁÃÔ$!å!åÍ&ÁÁÃÔ$!å!åÍ&ÁÁÃÔ$!å!åÍ&ÁÁÃÔ$!"ÃCÃÔ$!å! åÍ&ÁÁÃÔ$!F"ÁCÃÔ$!H"ÁCÃÔ$!G"ÁCÃÔ$!"ÃCÃÔ$!å! åÍ&ÁÁÃÔ$! å! åÍ&ÁÁÃÔ$!@å!@åÍ&ÁÁÃÔ$!å!@åÍ&ÁÁÃÔ$ÃÔ$Í~mÒ#ÿÿÓ#ã#ó#$$$,$5$>$G$ P$ `$ p$ €$ *+Í8l|µÂÂ#É!åÍW>Á!åÍù7Á*ÁCÃ%!$*åÍÑcÁÃ+%!0*åÍÑcÁÃ+%!:*åÍÑcÁÃ+%Ã+%Í~mö$F%G %HÍC!–(å*ÃCåÍ9&ÁÁÍ1d!F*å*¿C&}æ@o|µÊV%!S*ÃY%!*åÍ9dÁÁÍCÍ1d!Y*å*¿Cë!Íæl&}æo7åÍ9dÁÁ!h*åÍÑcÁ*¿Cë!Íæl&}æoÃÂ%!K)åÍÑcÁÃÒ%!s*åÍÑcÁÃÒ%!z*åÍÑcÁÃÒ%ÃÒ%Í~mž%©%ô%Í1d!�*åÍë%åÍ9dÁÁ*ÓCåÍZEÁÉ*¿C&}æo|µÊÿ%!°Ã&!,É!9Í>lÍmå*¿CÍ_lå!9Í>lÍKl"¿CM*.<éÉ!9Í>låÝáÍzëÉÍ1d!Ž*å!9Í>lå!9Í8l|µÊZ&!Ò'Ã]&!Î'åÍ9dÁÁÁÉ*+Í8lÍ…lÊy&!s'åÍå+Á*+Í8l|µÊÄ&*+Í8lÁÿÍ…lÊŸ&!¨åÍò;Áù&*+åÍ�]ÁÍ…lʸ&!%)åÍÑcÁù&É!s'åÍå+ÁÃy&É!x'å!å!<å!‰åÍt-ÁÁÁÁ"Å&å!ÑÍ�lÊ'*Å&+"Å&#|µÊ'!ÈåͳÁÃì&ÉbrowsecisclearconsolecrcrecvdelaydirectorydiskspaceerasefilefkhelplinelogmodemquitreceivesendtypewaitcmdOTERMENDdownstartupEnter number to scroll downEnter number to scroll upoffoncis mode: endfilenowarnwritelog:warn:using: %u of %ufile: %snoneautolfbsdelcontrolffclrignorectlmaskctlnoautolfnobsdelnoffclrnowwrapshowctlwordwrapshowmaskignoreauto lf:bs del:ctl disp: %s ff clr:wordwrap:charchdelaydelay=delctlslndelaynochdlynodelctlsnolndlynopromptnousectlsprompt=time??? delay %schar:line:ln prmpt: none ^%-5c%-6cuse ^S:del ^S:time: %cDrive %c: Total %uK Used %uK Free %uK/dhaltnolfreadsuppr lf: (active)line sz: %d30012007bits8bitsevenfullhalfhostnoparityoddrs232serialfull duplexhost modehalf duplexport: %sRS232bits: %-6cparity: even odd rate: %d%-10s%-6sÃ++Ã%+*+|µÂ<+*+Í8lÍ…lÍilÊN+!9Í>låÍå+ÁÍC,"#+Í…lÊ^+!ÿÿÉ*+Í8lÁÿÍ…lÊ}+!9Í>låÍ~<ÁÃ(+!"!+*!+)ë!9Í>lÍ>l|µÊÓ+Ã¥+*!+#"!+Ã+ÍK2*#+å*+å*!+)ë!9Í>lÍ>låÍÜ,ÁÁÁ|µÊÐ+*!+ÉÛ+!ü.åÍÑcÁ!"+Ã(+É!9Í>låÍÑcÁ!/åÍÑcÁ!˜*åÍ)8Á!˜*"+*+Í8l|µÊ4,Ã,*+#"+Ã,*+å*+Í8låÍùjÁÑ}Ã,!"+!˜*"+É*+"+*+åÍ•,Á"A,*+ë*A,åÍh,Á"+*A,É!9Í>lÍ8làÿÍ…lÊ‹,!9åÍ>l#ÍClÃh,!9Í>lÉ!9Í>l"“,*“,Í8l|µÊ·,*“,Í8làÿÍilÍilÊÍ,ÃÊ,*“,#"“,ß,ÃÀ,*“,å!9Í>lÍmÉ!9åÍ>l+ÍCl#|µÊl-!9Í>lÍ8lÃÿÍ…lÊ2-!9Í>lÍ8l|µÊ2-!9åÍ>l#ÍCl+Í8lÃÿÍ…lÊ/-!ÉÃ-!9Í>lÍ8lå!9Í>lÍ8lÍ�lÊQ-!É!9åÍ>l#ÍCl!9åÍ>l#ÍClÃÜ,!ÉÃz-Ãt-*+|µÂ‹-*+Í8lÍ…lÍilÊ�-!9Í>låÍå+ÁÍC,"p-Í…lÊ­-!ÿÿÉ*+Í8lÁÿÍ…lÊÌ-!9Í>låÍò;ÁÃw-!"r-*p-+"p-#|µÊ.*+Í8låÍùcÁ|µÊ.*r- Ímå*+#"++Í8lÑÐÿ"r-Ã.!ÿÿ"r-Ã.ÃÒ-*r-å!9Í>lÑͬlÂ=.*r-å!9Í>lÑÍ�lÍilÊT.!ü.åÍÑcÁ!"+Ãw-*r-ÉÃw-É*+"\.*\.Í8l|µÊ|.*\.Í8làÿÍilÍilÊì.È.Ãd.*\.#"\.+Í8lÃÿÍ…lÊé.*\.Í8lÍ…lÊ­.! É*\.Í8l¢ÿÍ…lÊâ.*\.#"\.Í8l¢ÿÍ…lÊÕ.!^É*\.Í8l&}æoÉ*\.Í8lÉÃ….!"+!˜*"+!ÿÿÉ??? : Í»1|µÊ/!É! å*�C+åÍ.0ÁÁ"©C!"§C!"¥CÉÍ»1|µÊ:/!É*“C|µÊH/*�CÃK/*™C"©C!"§C!"¥CÉ*§C|µÊq/Í./Í…lÍilÊx/ÉÍ">! åÍW>Á!åÍù7Á*©C"[/!"a/! "_/*_/|µÊ*0ë/Ã�/Í–`*[/Í8löÿÍilÊÄ/*a/Í…lÍilÊí/*[/Í8låÍ�`Á*[/åÍõ1Á"[/å*�CÍql"a/î/*a/Í…lÊ 0*[/åÍõ1Á"[/å*�CÍql"a/!=2åÍÑcÁ*_/+"_/|µÊ'0! åÍù7Áè/ÍD?É!9åÍ>l#ÍCl!9åÍ>l+ÍCl#|µÊ·0Í´*“C|µÊs0*�Cå!9Í>lÍqlÊp0!9Í>lÉÃŒ0*™Cå!9Í>lÍqlÊŒ0!9Í>lÉ!9å!9Í>låÍ2ÁÍCl!9Í>lÍ8löÿÍilÂL0Ã:0!9Í>låÍõ1ÁÉ!9åÍ>l+ÍCl#|µÊk1!9Í>lÍ8löÿÍilÊ,1Í´!9å!9Í>låÍõ1ÁÍCl*�Cå!9Í>lÍqlÊ)1!å!9Í>låÍ2ÁåÍ.0ÁÁÉÃÖ0!9å!9Í>låÍõ1ÁÍCl*�Cå!9Í>lÍqlÊh1!å!9Í>låÍ2ÁåÍ.0ÁÁÉÃÄ0!9Í>lÉ*§CÍ…lÊ�1!9Í>lå*©CåÍ.0ÁÁ"©CÉ*§C|µÊŸ1Í./Í…lÍilʦ1É!9Í>lå*©CåÍÄ0ÁÁ"©CÉ*“CÍ…lÊÎ1*™Cå*�CÍqlÍilÊñ1!åÍW>Á!@2åÍÑcÁ!"¥C!"ÛCÉ!É*›Cå!9Í>lÍqlÊ 2*™CÃ2!9åÍ>l#ÍClÉ*™Cå!9Í>lÍqlÊ02*›CÃ<2!9åÍ>l+ÍClÉTLog emptyÅ!9åÍ”ÍCl#ÍilÊT3!9åÍ>l&}æoÍCl*ßC|µÊª2!9Í>lòÿÍ…lÊ“2!"ßC!ÁÉ!9Í>låÍ�SÁ|µÊª2!Ñ2*ÝC|µÊÀ2!9Í>lñÿÍ…lÍilÊÒ2!"ßC!Ñ2*¹C|µÊ÷2!9Í>lïÿÍ…lÊñ2!"¹C!Ñ2!9Í>líÿÍ…lÊ 3*·CÍilÊ3!"¹C!Ñ2!"±C!9Í>låå:ÁCþGÌ—;ááååÍ :ááååÍAááÁÉ!9Í>lÑ2Áá}2«7á"¬7á}2Ÿ7á"¦7ååååÅ—2¡7go=2¢7,"‡RÍ|5ÍÍ©38 ÍL5>0òõÍ\5ñþ!Èþ#È#É!"‰RÅ*‡Rå*£7åÍ RÁÁ>!"£7Í» Á}´>7À:¢7·( :Ÿ7·(CÍÔ;!¢7~6·(4:Ÿ7·(.> Íï48yþÊN4·õ:‰Rþ!¢76ÿ0ññ67Íø6—2Ÿ7é3> Íï4Ú25yþ("·Ê4þ ÍÔ;>7É!þÊ/5! 2ŒRÃ/5>Íï4Ú25Å>Íï4Ú25Ñy/»!Â/5{2¥7*©7€ÍÈÍÐ4Ú25w#ö:Ÿ7·Âœ4Å>Íï4ÑÚ25{¹(! Ã/5ÍÐ4Ú25ÍÐ4Ú25Í·! Â/5!¡7:¥7¾(4¾ ÃÉQé3E7Íø6—7ÉÅå>Íï48 yáÁõÍÑñõ�OñÉáÁÉÍêÃê_ÈÕÍêÑ0>Íc ñ ìÍê0!xæpÈÿ.8.8.7:£7·7À}2£7ÉÍ$5>Íï40ùÍD5Ò¯3—7ÉÍÔQ}þ?É*©7€"©7!¨7·5À*©7í[¬7·íRÈDMÝ*¦7Í?q0 ÝåÍ«\Á>7É*¬7"©7:«72¨7ÉÁáá"¬7á"¦7åååÅ!"‡R}2¡7—2Ÿ72 7ÍÜ6Í27Íø6PÕ>Íï4Ñ8 yþ(#þC(ÕÍ» Ñ}´  â!É!É�7Íø6>ÿ2Ÿ7!"‰RÍ» }´ÂØ5:¨7·ÌÜ6õ*‡Rå*£7åÔRáÑñõåÜêQá!"£7ñÚd6ÍÔ;!¡7NåÍÔ;á~/OÍÔ;ÍÈ*©7€~�O~ÍÑÅ#åOÍÔ;áÁî:Ÿ7· ÍÔ;ÍòJÕÍÔ;ÁÍÔ; >ÿ2 7ÍÔ;Íé4> ÕÍï4Ñ8.yþ(.þ( þ(/.2ŒRÍ$5y· ÕÍ» }´ÑÂØ5 Ëg7Íø6!ÉÍD5Òí5!ÉÍÉQ!¨75*©7€"©7!¡74: 7·Êç5!ÉÝ*¦7ÍKqØ*¬7"©7Ý^=ÝV>ë)|2¨7·ÉåÕÅÕÍÑ7ÁÁÑáÉåÕÅÕÍ®7ÁÁÑáÉ Timeout -- trying checksum mode Awaiting handshake Wrong block received -- aborting Time out waiting for ack -- aborting CRC requestedT ¬7áÑÕå{þ  ;7 {þ Â�F Í�F:¡Dæ ôÉ!9Í>lÍ8l|µÊø7!9åÍ>l#ÍCl+Í8låÍ®7ÁÃÑ7ÉÍK2áÑÕå{þ  Ì8Í´áÑÕå{þ Â�FÍ´ Í�F:¡Dæ ñÉ*'8å*%8å!"%8*%8å!€ÑÍ¢lʨ9ÃK8Ã78ÍK2Í® "'8óÿÍ…lÊa8*±CÍilÊj8Í� *'8öÿÍ…lÂ�8*'8óÿÍ…lÍilʦ8! åÍù7Á!9Í>lë*%86á"%8á"'8É*±C|µÊÑ8*%8#"%8+ë!9Í>lå*'8Ñ}*'8åÍ«9ÁÃH8*'8Ã�9*%8|µÊ9*%8+"%8ë!9Í>lÍ8lå! ÑͬlÊ9Íõ9!9Í>lë*%8Í8l�ÿÍilÊ9Íõ9Ã×8Ã¥9*%8|µÊg9*%8+"%8ë!9Í>lÍ8lå! ÑͬlÊK9Íõ9!9Í>lë*%8Í8l�ÿÍilÊg9Íõ9Ã¥9*%8#"%8+ë!9Í>lå*'8Ñ}*'8åÍ«9ÁÃ¥9Í~m×8×8"9"9Ãj9ÃH8Ã�8ÍK2!9Í>lå! ÑͬlÊ×9!^åÍù7Á!9åÍ>l@ÍCl!9Í>l�ÿÍilÊô9!9Í>låÍù7ÁÉÍK2!:åÍÑcÁÉ *:å*×CåÍZEÁ":!":!9åÍ>l&}æoÍClÃT;! åÍ8Á*ÇC|µÊS:! åÍ8Á!96 #6Ãl;*ËC|µÊn:!åÍ8Á! åÍ8ÁÃl;!9Í>lå! ÑÍ¡lÊ‘:!9Í>l�ÿÍilÍilÊš:Ãl;!9Í>lôÿÍ…lÊ®:*ÉCÍilÊÀ:!96#6Ãl;*ÍCÃ<;!9Í>læÿÍ…lÊÚ:*ÉCÍil":ÃQ;!9Í>l�ÿÍ…lÊý:!96ÿ#6ÿ!^åÍ8Á!9åÍ>l@ÍClÃQ;!9Í>lÍ…l":!96.#6ÃQ;!":ÃQ;ÃQ;Í~mÆ:ã:;0;Ãl;Í~m2: S: S: V:Ãq:Í´*:Í…lÊ„;!9Í>låÍ8ÁÍ´*:åÍZEÁÍ´á":ÉáÁÅåyæOÅÍÃ;Áyþ À:ÃC·È ÅÍÃ;:ÁCþFÁÈÅÍ :ÍAÁÉÍÔ;:±C·Ä-ôáÁÅåÅÍ´Íýæ(öÁÅí[…C.6Í(ÁÉ*ð;å*î;å*ì;å!"î;!9Í>l"ð;*ð;Í8l|µÊ@<Ã&<*ð;#"ð;Ã<*ð;Í8löÿÍ…lÊ=<*î;#"î;Ã<*î;åÍW>Á"ì;!åÍù7Á!9Í>låÍÑcÁ*ì;åÍZEÁá"ì;á"î;á"ð;É*|<å*z<å*x<å*v<å*t<å!"x<*x<)ë! 9Í>lÍ>l|µÊ½<ú<*x<#"x<Ø<ð<*x<###ë!Íæl"z<*z<#åÍW>Á"|lÍ>låÍ9dÁÁÃ=Ãø<*|<åÍZEÁá"t<á"v<á"x<á"z<á"|<ÉCommands:%-12s*ÕC|µÊŽ=*ÕC"{=Ô=*×C"{=*{=#Í8lå!9Í>l#Í�lʼ=*{=å!9Í>l#åÍ_@ÁÁ*ÓC|µÊà=*ÓCå!9Í>l+åÍ AÁÁ*ÓCåÍZEÁÉÉ!å!å!å!9Í>l+åÍ!DÁÁÁÁ"ÓCåÍ6EÁ"{=!åÍù7ÁÍáB!9Í>låÍäAÁ*{=É*ÕC|µÊ:>*ÕCå!åÍ_@ÁÁÃG>*×Cå!åÍ_@ÁÁÍD?!"ÓCÉ*ÓC|µÊm>*ÓC###Í8l##Ãp>!"S>!9åÍ>lë*S>ÍCl*×C"Q>*Q>#Í8lå!9Í>l#Í�lʱ>*Q>å!9Í>l#åÍ_@ÁÁ*ÕC|µÊÕ>*ÕCå!9Í>l+åÍ AÁÁ*ÕCåÍZEÁÉÉ!å*S>å!å!9Í>l+åÍ!DÁÁÁÁ"ÕCåÍ6EÁ"Q>!åÍù7ÁÍáB!9Í>låÍäAÁ*Q>É*×Cå*ÓC|µÊ1?*ÓC###Í8l##Ã4?!åÍ_@ÁÁÍD?!"ÕCÉ*×CåÍZEÁÉ*×CåÍZEÁ"M?!9Í>l+"ÏC!9Í>lå:ŸDÍ9l&ÑÍ�lÊ�?Íá?!9Í>l}2ŸDÃÑ?:¡DÍ9l&å!9Í>lÑÍ¡lÊÃ?:¢DÍ9lå:žDÍ9lÍmå!9Í>l+åͰBÁÁ!9Í>l}2ŸDÍá?Í¿E*M?åÍZEÁÉ:ŸDÍ9l&å!€ÑÍ¡lÊõ?É:ŸDÍ9lå:žDÍ9lå!å: DÍ9låÍ!DÁÁÁÁ"Ý?åÍ6EÁ"ß?!åÍù7Á*ß?åÍZEÁ*Ý?åÍ#lÁÉ!9Í>låÍZEÁ"9@!åÍù7Á*9@åÍZEÁÉ!9Í>l#Í8l"[@å!9Í>lÍqlÊ|@É!9Í>låÍZEÁ"]@:¢DÍ9lå!9Í>lÑͬlʸ@!9Í>lå*[@Ímå!åͰBÁÁ!9Í>l}2žD*]@åÍZEÁ*[@å!9Í>lÑͬlÊò@*[@å!9Í>l+åÍHBÁÁÃA!9Í>lå*[@+åÍHBÁÁÉ!9Í>l###Í8l"Aå!9Í>lÍqlÊ(AÉ!9Í>låÍZEÁ"A!9Í>l}2 D!9Í>lå*AÑͬlÊiA!9Í>lå*A+åÍHBÁÁÃ{A*A#å!9Í>låÍHBÁÁ!9Í>lÍ8lå!9Í>lÑÍ�lÊÊA!9Í>lå!9Í>l#Í8lå!9Í>lãÍmå!åͰBÁÁÁ! åÍù7Á*AåÍZEÁ!9Í>l#åÍäAÁÉ*ÑCåÍZEÁ"àAÍáBÍóB!9Í>lå!åͰBÁÁ!"âA*âAå!ÑͬlÊ5BÃ'B*âA#"âAà BÍK2!åÍù7ÁÃBÍüBÍêB*àAåÍZEÁÉ*ÑCåÍZEÁ"DB!9Í>lå!åͰBÁÁ!9Í>l"FB*FBå!9Í>lÑÍ¢lʘBÃ�B*FB#"FBÃnB!CåÍÑcÁÃB*DBåÍZEÁÉ!9Í>l##Í8l&É!åÍ8Á!=åÍ8Á!9Í>l åÍ8Á!9Í>l åÍ8ÁÉ!CåÍÑcÁÉ!CåÍÑcÁÉ!CåÍÑcÁÉ!CåÍÑcÁÉ! åÍù7ÁÉT )(gGOTERM -- Terminal Emulator Copyright 1981, 1982 Michael M Rubenstein Version 4.02(20 Oct 82) VF3!9Í>l=Í>lÉ!9Í>l7å!9Í>lÍCl!9Í>l9å!9Í>lÍClÉ*Då!åÍlÁ"DÍ…lÊ>D!’DåÍšcÁ*Då! 9Í>lÑ}*D#å! 9Í>lÑ}*D##å!9Í>lå!9Í>lÍm#Ñ}*D###å!9Í>lÑ}*Dëá"DëÉInsuff mem€ð¯DÝáÑÁ!çÿ9ùÅÕÝå"yIë!{IÕí°áT] ë s#r*###"cI###"hI###"lI.h~2¬D6ÍjI!¯D"¥D>€2ŸD>2 D—go"­D2žD2�D2cÍ=EáF!/E~·È_åÍjIá#ô=7 áÑÕåÍoE:žD2¢D—2§D2¨D2¡D2©Dgo"ªDÍ¿EáÑÕåÍoE:¡D2cÍWFÍ•FáÉ*­DÁåÅÕåÍ¡Fá|µ( ë!�Dí°á"­D�Dí°ÉÍ¡F!¯D"¥D!©DËÆÉÍ¡F!©DˆÕF!©DËÎÉ!©DËŽÉíSªD:¬D·(!©DËÖ:ŸD!�D†!«D–þ5Ð!©DË–É:©Dæ(3:aïÖë·O:¡D!�D†*ªD”þ(8„‘8 þ 8þ20a�Ö28 Ö „g*ªDåÍkISÍkIáå}Æ OÍkIñÆ OÃkI*£D+"£Dë!¡D5ð4ë#"£D:žD!¢D–È5:ŸD=:¢DÍ|F:¡D_"£DÉ:žD!¢D¾Ð5*£D€ÿ"£DÉ·g>oð:�D_ÉÍ¡FÍ©F:©DæÀ*£D"¥D*¥D~î€wÉ!¨D~æÂ5H{þÊ3H~æ€{›Gþ()þ (Rþ (Wþ (™þ (OþÊ6Fþ Ê–Gþ(2þÊ]Iþ Ò›GÉ>2¡D:žD2¢DG: D�<õÍWFÁÅåÍoGÍ´áÁ€ðÉ:žD2¢DË®—2¡DÃWF! D~!¢D4¾8 *£D€"£DÉ5:žDõÍ|FÁå: D�!ŸDNá(å!€ÑåÅõÕÝáZÍxIÍ´ñÁ= çá *£D:¡DO:ŸD‘O6 €åÅ]ÍxIÁá ÈT]ÕÝáZÃxI*£DËnË®(c:©Dæ([:¡D· U{þ Èþ (M:žDG:¢D¸(C=ÕÍ|F:ŸDO +G~æþ ( þ (+ ñ#x‘(#2¡DOÝ*£DåÅZÍxIÁ*£D "£DáÍxGÑ{!§D¶*£DwÕ:¨Dæ@åÄuIáÑ#"£D!¡D4~!ŸD¾Ø!¨DËîÍGÃ"G4É5=Â-I{þl(;þm(8þ)(>þ((7þg(9þG(8þE(BþQ({þRÊIþWÊIþTÊlGþÊìFþ=(þS(øF7æ€2§DÉ˶ÉËöÉËþÉ˾É~öæßw~öwÉ—2¡D: DõÍ|F:ŸDOñë!¢D–ÊlG!€ÿåÅõÕÝáZÍxIÍ´ñÁÑ= çíS£DÍ´ÃlG:ŸD!¡D–=*£Då(O T]+ÕÝáWÍxIëá6 €]ÃxI:¢DÃóÓ2ïûÉ\€!9Í>lå!˜Iå!šIåÍÝNÁÁÁ"”IÍ…lÊØI!"¥CÉ!åÍ8]ÁÍ…lÊêI!É*¢Iå!$å!åÍ/iÁÁÁ*¢Iå*”IÀÿÑ}*¢I#å! å!?åÍ/iÁÁÁ*¤IåÍý{Á!"–IÍå*£C"®I*¢IåÍ|Á"¦I*–Iå!€ÑͬlÊXJ*¦Iå!ÑÍ¡lÍilÊ×JÃjJÍ|"¦IÃ?J*–I#"–I*®I"®Iòÿ"ªI*¦I)))))ë*¤I#"¬I!"¨I*¨Iå! ÑͬlÊÔJôJ*¨I#"¨IÙJ*ªI#"ªI+å*¬I#"¬I+Í8l&}æoÑ}êJÃaJ*–IÍmë*£C"°I*£C"®I*®Iå*°IÑÍØlÊ>Kà K*®I"®IÃîJ*¢I#å*®Iå! åÍ<|ÁÁÁ*®I å*¢Iå*®I åÍ|PÁÁÍClÃÿJÍ\K!"¥C!"œIÍö!É!òÿ9ù*ZKå*XKå*–Ië!Íæl"TK*TK|µÊ\LÑK*TKë!Íæl"TKÃvK*TK"VK*VKå*–IÑͬlÊYLòK*VK#"VK×K*VKå*TKÍmÍmë*£C"XK*XKå*£CÑÍÉlÊûK*XKå*TKÍmë*XK"ZKåÍlLÁÁå!ÑÍ�lÍilÊVLÃL*TKÍmå*XKãÍm"XKÃÊK!9å*XKå!åÍ<|ÁÁÁ*XKå*ZKå!åÍ<|ÁÁÁ*ZKå!9å!åÍ<|ÁÁÁÃLèKÃ�Ká"XKá"ZK!9ùÉ! "jL*jL+"jL|µÊÓLÄLÃrL!9Í>lÍ8lå!9Í>lÍ8lÑͬlʤL!ÿÿÉ!9åÍ>l#ÍCl+Í8lå!9åÍ>l#ÍCl+Í8lÑÍ�lÊÐL!ÉÃ�L!É*¥C++ÍilÊñLÉ! åÍW>ÁÍ1d!ÅPå*”Iå*–Iå*šIå*˜IÍmå*˜IåÍ9dÁÁÁÁÁ*œIÍmë*£C"ÝL*–IÍmë*£C"ßL! "×L*×L+"×L|µÊ€NÃYMÃGMÍC!"ÙL*ÝLå*ßLÑÍØlÊxM*ÙL+"ÙL#ÍilÊuNÄMÃbM!"ÛL*ÛLå!ÑͬlÊ·MÞMÊM*ÝLå*ÛL#"ÛL+ÑÍ8låÍù7ÁÛM!.åÍù7Á!"ÛL*ÛLå!ÑͬlÊöMÃÙMÃÅM*ÝLå*ÛL#"ÛL+ÑÍ8låÍù7ÁÃÖM*ÝL Í>l"áL*ÝL Í8l|µÊN!ïPåÍÑcÁÃ-NÍ1d!öPå*áLåÍ9dÁÁ*áLë*žIÍôlå*áLå* IÍ_lÍ…lÍ…lÑå*žI+++ÑÍm"ãLÍ1d!úPå*ãLåÍ9dÁÁ*ÝL"ÝLÃ�M!ìPåÍÑcÁÃVMÍD?É!9Í>l)ë*œIå!å*–Iïÿ}æþoåÍ hÁÁåÍÈhÁÁ"œIÉ!å!9Í>l)å*œIãÍmåÍ hÁÁ"œIÉ!9Í>lå!9Í>lå!ÍClÍClÍô{"ÓNÍå!9å!9Í>låÍðhÁåÍLsÁÍCl#Í…lÊ&OÍö!É!9Í>låÍ|ÁÍ5|"ÏN*ÏN##Í8l&"žI*ÏN###Í8l&" I*žI&+++ë!ëÍm"ÛN!9Í>lå*ÏNÍ>l#ÍClÍ'|"ÑN!9Í>lå!9Í>lÍ>lÍCl!9Í>lÍ>l"×N*×N|µÊPòOäO*ÑN#"ÑN+Í8l"ÙN!"ÕN*ÕN|µÊÑO*×NÍilÊPÃëO*ÕN+"ÕN*×N+"×NÃÆO*ÙN)"ÙN.|æg|µÊ P!9Í>låÍ>l+ÍClÃÚOïO!9Í>låÍ>lå*ÏNÍ>l#å*žI##ÑÍôlÍmÍCl!9Í>låÍ>lë*ÛNÍmÍCl!9Í>låÍ>lë*ÛNÍmÍCl*ÓNåÍ|ÁÍö!9Í>lAÉ\*zPå!9Í>lå!$åÍ<|ÁÁÁ*zPåÍ,|Á!9Í>lå*zP#Í8l&Ñ}|µÊºP!ÿÿÉ*zP!Í>lÉDrive %c: files %d Used %uK Free %uKT 65536%6u%5uK  *Qå!åÍ}=Á!åÍù7ÁÃQÃQ!½QåÍÑcÁ!˜*åÍ)8Á:˜*Í9lÍ…lÊ=QéQ:˜*Í9lÁÿÍ…lÊXQ!}åÍò;ÁÃQ!˜*"Q*QÍ8l|µÊŽQÃvQ*Q#"QÃ^QÍK2*Qå*QÍ8låÍðhÁÑ}ÃlQ!˜*åÍì Á|µÊžQéQ!ÄQåÍÑcÁÃQÍ">*¥CÍ…lʸQÍ?á"QÉfkey: ??? *‡RÍßQ"‡R·É*‰RÍßQ"‰R·É}Æ'o|Î'gÉ!žRåÍÑcÁ!®RåÍÑcÁáÑÕå{2‹RžR�RÕÍÑcÁÁÑáåÕÅ{2‹RÍfR*‰R|µ(8å!ºRåÍÑcÁáÍfR! åÍù7Á:‹R_!ÅR^#VõÕÍÑcÁñþ(þ :ŒRÍmR!ÂRåÍÑcÁÉå|ÍmRá}õÍvRñæÆ0þ:8ÆOÅÍù7ÁÉ Awaiting block Sending block *** eot *** retry TßRàRíRõRýR SS(S0SlåÿÍ…l"áCÉ!"áC!9Í>lÃøS!ý["�S*�SÍ8l|µÊæSÃØS*�S#"�SÃÀS*�SÍ8låÍÐ;ÁÃÎS!ÉÍT!É!ÉÃTÍ~mºSIêSAÃñSÉ!ÿ9ù!"½CÍ!"‰S!åÍW>Á"T!"ÛC!\åÍÑcÁ!"‡R!9å!åÍ}WÁÁ*‰SÍ…lÊ0U!9Í8l«ÿÍ…l"T*T|µÊ€T!"\ÃT!*\åÍÑcÁ!4\åÍÑcÁ!" T!9ë* TÍ8lóÿÍilÊÍTùT* T#" TÖT!9ë* TÍ8låÍù7ÁïTÍC!9##å! \åÍwiÁÁ"TÍ…lÊòT!"‰SÃU*Tå! \å*T|µÊU!;\à U!>\åÍ”iÁÁÁÍ…lÊU!"‰S!9#Í8l¾ÿÍil"T*‰SÍ…lÊéV*Tå!å!åÍòCÁÁÁ*T|µÊ.V*Tå!åÍJaÁÁ!.åÍÐ;ÁÍþZÒÿÍ…lÊV!" T* Tå!ÑͬlÊßUÖU* T#" TÃ{U*TåÍÁkÁ" T*T|µÊ³U* TæÿÍ…lÍilÊ¿U!ÿÿ" T* T#Í…lÊÌUÃßU!9ë* Tå* TÑ}ÃŒU!9å* TåÍYÁÁ* T#ÍilÊýU*‰SÍ…lÍilÂuUà V!"‰S*TåÍ8kÁ*‰SÍ…lÊ+V!9å!åÍYÁÁÃéV!"‡S*‡SÍ…lʺV!.åÍÐ;Á!9å!åÍ}WÁÁ" T*‰S|µÊaVúV!" T* Tå* TÑͬlÊ·VÂV* T#" TÃgV!9ë* TÍ8lå*TåÍükÁÁ|µÊ´V*TåÍ«\Á!"‰S!"‡S÷VÃxVÃ4V*‰S|µÊÔV*Tå!A\å! \åÍ”iÁÁÁ*TåÍ8kÁ|µÊéV*TåÍ«\Á!åÍù7Á*‰S|µÊBW!"ßC*‰SÃ&W!D\åÍÑcÁÃ7W!W\åÍÑcÁÃ7W!p\åÍÑcÁÃ7WÍ~mWWW!åÍÐ;ÁÃ[W!‡\åÍÑcÁ*TÍ…lÊ[W!.åÍÐ;Á*TåÍZEÁ!"½C!9ùÉ*‡R"yWÍÉQ&}æo0"qW!"{W!"‰RÃ¥WßW!9Í>l|µÊ¾W*yWå*{WåÍ RÁÁ!"{W!"oWÍlS!"‹SÃÙWÃÓWÍ‘Z|µÊåW!ÉÍþZ"uW+Í…lÊõWà X*uW+++ÍilÊ X!/åÍÐ;ÁÃÖWͦZ"sWͦZ"uWå!ÑÍ¡lÊUX*oWå!ÑͬlÊLX*oW#"oW+ë!9Í>lå*uWÑ}ÃRX! "{WÃXÍS"wWͦZå*wWÍ�lÊqX! "{WÃêX*‹S|µÊ°X*‹S.|æ@g|µÊ�X!"{WíX*‹S.|æ g|µÊ§X!"{WíX!"{WÃêX*sWå*qWÍqlÊÄX*oWÉÃêX*qWå*sWÑͬlÊàX!.åÍÐ;ÁâWÃêX!"‰S!É!/åÍÐ;ÁÍÔQâWÉ*‡R"YÍÉQ&}æo0"ûX!"Y!"‰RÃ-YÃ'Y!"‹S!9Í>l|µÊOY*Yå*YåÍRÁÁÃWY*YåÍêQÁ!"YÍlSÍ‘Z|µÊiYÉ!å͈[Á|µÊwYÉ*ûXåÍ&[Á|µÊ…YÉ!"ùX*ùXå!9Í>lÑͬlÊÇYêY*ùX#"ùXËY!9Í>lë*ùXÍ8låÍ&[Á|µÊÄYÉàY!9Í>lÍ…lÊêY!åÍqSÁ!å͈[Á|µÊêYÉ!å͈[Á|µÊøYÉÍSåÍ&[Á|µÊZÉà ZÃZ! "ùX*ùX+"ùX#|µÊcZÃ%ZÃZÍà&}æo"ÿX*ÿXÑÿÍ…lÊAZÃcZ*ÿXÒÿÍ…lÊOZÉÍ‘Z|µÊXZÉ!åÍcÁÃ"Z*ÿXÑÿÍ…lÊ|ZÍÔQ!"YÃ�Z!å͈[Á|µÊŠZÉà ZÃ*YÉÍ» |µÊ Z!"‰SÉ!ÉÍþZ"¤ZüÿÍ…lÊÇZ!"‡S!åÍqSÁæZ*¤Z+++Í…lÊ×Z!ÿÿÉ*¤ZðÿÍ…lÊðZÍþZ&}æo"¤Z*¤ZåÍqSÁ*¤ZÉÍà"üZÍ…lÊ [ÃþZ*üZ.|æpgå*‹SÍKl"‹S*üZ&É!9Í>låÍqSÁ!9Í>lÃV[!å͈[Á!9åÍ>l@ÍClÃw[Í~m<[<[<[<[<[<[<[!9Í>lå͈[ÁÉÍà"„[|µÊí[*„[&}æo"„[ëÿÍ…lʰ[!"‰SÉ*„[ïÿÍ…lÊí[!p"†[Íà&}æoíÿÍilÊÞ[*†[+"†[#ÍilÊí[Ãê[ÃÃ[Ãç[!9Í>låÍÐ;Á!É#CPMOsborne,PA, CIS File Transfer sendingreceiving file rbwb/d Cannot open file Communications failure Canceled by operator Transfer successfully completed !åÍW>Á"©\Í1d!$]å!9Í>låÍ*&ÁåÍ9dÁÁ!9Í>l2###åÍ8l&}æoÑ}!9Í>l6Í8l&}æoÍ…lÊ]!9Í>l2åÍ8l}öoÑ}!"ÛC"6ÉError on file %s *£C|µÊH]*£CåÍ#lÁ!9Í>låÍlÁ"£CÍ…lÊr]!"ÛC"6!v]åÍò;Á!É!ÉInsuff memÍÎ]Íå!9Í>lå!�`åÍwiÁÁ"«CÍö*«CÍ…lÊ«]!É!åÍ8]ÁÍ…lʺ]É!å! åÍö]ÁÁ!"¥CÉ*«C|µÊí]ÍK2Íå*«CåÍ8kÁÍö!"«CÉ!9Í>l€Ímë*£C"ò]!9Í>l"î]*î]å!9Í>lÑͬlÊÉ^Ã4^*î]#"î]Ã^!"ð]Í\_"ô]öÿÍilÊT^*ô]óÿÍilÍilÊ‚^ÍK2*ð]å!ÑͬlÊ^*ð]#"ð]+ë*ò]å*ô]Ñ}Ã:^*ô]óÿÍ…lÊœ^Í\_"ô]öÿÍilÍilʯ^*ô]å*«CåÍ4cÁÁ*ò]ë*ð]6*ò]€"ò]ÍK2Ã*^É! åÍW>Á"Ì^!åÍù7Á*£C"Î^! "Ê^*Ê^|µÊO_Ãÿ^Ãñ^Í–`*Î^"Ð^*Î^Í8l|µÊ&_*Î^#"Î^+Í8låÍù7ÁÃ_!‘`åÍÑcÁ*Ê^+"Ê^|µÊB_! åÍù7Á*Ð^€"Î^Ãü^*Ì^åÍZEÁÉ*«CÍ…lÊi_! ÉÍK2*«C=Í>lÍ…l"Z_|µÊ„_Íå*«CåÍÁkÁ"X_*Z_|µÊš_ÍöÍK2*X_#Í…lÊ®_ÍÎ]! É*X_É*«CÍ…lÊÆ_É!9å! å!å!9Í>låÍ hÁÁåÍÈhÁÁÍCl!9Í>l€Ím"²_*£C"¸_! å!9Í>lÍm"´_*´_å!ÑÍ�lÊv`Ã+`*´_+"´_Ã`*¸_"º_!€"¶_*¶_+"¶_#|µÊi`ÃJ`Ã7`ÍK2*¸_å*¸_ë*²_Í8lÑ}*¸_#"¸_ÃG`*º_€"¸_Ã!`! å!9Í>lÍmå! åÍö]ÁÁÉrT!"”`ÉÍK2*”`å!xÑÍ¡lʯ`É!9åÍ>l&}æoÍClÃú`! åÍù7Á*”`#"”`&}æoÍ…lÂÃ`É*”`|µÊö`*”`+"”`!åÍù7ÁÉÃaÍ~mÃ` ß`!9Í>lå! ÑÍ¡lÊ(a!9Í>lå!ÑͬlÍilÊAa*”`#"”`!9Í>låÍù7ÁÉ!9Í>lå!HaåÍ|PÁÁ"DaÍ1d!pbå!9Í>låÍ*&ÁåÍ9dÁÁ*Ha|µÊŠa!‚båÍÑcÁÚaÍ1d!‰bå*DaåÍ9dÁÁ!ŒbåÍÑcÁ*Da+ÍilÊ´a!såÍù7ÁÍC*Daå!€åÍë%ë! Í;måÍZ|ÁÁÁ"Fa*Daë!Íôlë*Faå*Daë!ÍôlÑ#"Ba!9Í>l|µÊb*Faë!Íôlë*Ba"Ba*Baå*FaÑÍØlÊ%b*Fa"Ba*Baë!Í6m"Fa*Baë!Í6mëë!<Í6m"Da*Baë!<Í6më"BaÍ1d!”bå*Faå*Daå*BaåÍ9dÁÁÁÁÉFile %s contains 65536%u sectorEstimated transmission time is %02u:%02u:%02u ! åÍW>Á"Ãb!ßåÍÑcÁ*ÃbåÍZEÁÉ>7Éáb—É> 7Éçbçbébébébébébéb! c—ÉÿÿáÁÅåyáÁÅåÍcåÅG!% ý&,% ý- õðÁáÉ!9Í>l?å!9Í8lÑ}É!9Í>lå!AÑÍ¡lÊlc!9Í>lå!ZÑÍ¢lÍil–c!9Í>lå!aÑÍ¡lÊ“c!9Í>lå!zÑÍ¢lÍilÍilÉ! å*!nåÍükÁÁ!9Í>lÍ8l|µÊÍc!9Í>lÍ8lå*!nåÍükÁÁçcÍÊmÉ!9Í>lÍ8l|µÊøc!9åÍ>l#ÍCl+Í8låÍù7ÁÃÑcÉ!9Í>lå!0ÑÍ¡lÊd!9Í>lå!9ÑÍ¢lÍilÉoh!9"dÉ!ÿÿå*d++"dÍ>låÍ¿dÁÁ*då!9ÑÍ×lÊpd*d++"dÍ>låÍbeÁÃNdÉ*d++"dÍ>l""d*"då*d++"dÍ>låÍ¿dÁÁÃNdÉ*d++"dÍ>l"$d!å*d++"dÍ>låÍ¿dÁÁÃNdÉ!9Í>l""d!9Í>l" dÍ×dÉ* dÍ8lÍilÊðd* dÍ8lÛÿÍilÍilÊ e* d#" d+Í8låÍ eÁÃ×dÉ*"dÃQe*$d#"$d+å!9Í8lÑ}*$d6Ãae!9Í8låÍù7ÁÃae!9Í8lå*"dåÍükÁÁÃaeÃaeÍ~me+eÿÿÃ:eÉ* d#" d+Í8lÍ…lÊteÉ* dÍ8lÓÿÍ…l"/d|µÊ�e* d#" d* dÍ8lÐÿÍ…lʦe!0ée! }2(d!"&d* dÍ8lå!0ÑÍ¡lÊÒe* dÍ8lå!9ÑÍ¢lÍilÊÿeÃÞeóe*&d Ímå* d#" d+Í8lÑÐÿ"&dÃÛe! "-d")d!"+d* d#" d+Í8lÃæf!"-d!9Í>låÍ`gÁÃg!")d!9Í>låÍ`gÁÃg!")d!9Í>låÍ`gÁÃg*&d+"&d*/dÍ…lÊnfÍ?g!9Í>låÍ eÁÍ?gÃg*/dÍ…lÊ£f!9Í>låÍrhÁå*&dãÍm"&dÍ?g!9Í>lÍ8l|µÊÑf!9åÍ>l#ÍCl+Í8låÍ eÁ*&d+"&dãfÍ?gÃg* d+Í8låÍ eÁÃgÍ~mfd"fu1foFfx[fc€fsÃ×fÍ×dÉ!9Í>lå! ÑͬlÊ*g!9Í>l0Ã9g!9Í>lAöÿåÍ eÁÉ*&d+"&då!ÑÍ¡lÊ_g:(dÍ9låÍ eÁÃ?gÉ!9Í>låÍrgÁÍ?gÉ*pgå!9Í>l"pg*&d+"&d#*-dÍ…lʶg*pg.|æ€g|µÊ¶g*&d+"&d#*pgÍm"pg!"+d*pgå*)dÑÍØlÊÏg*pgå!ÑÍÉlÍilÊüg*/dÍ…lÊágÍ?g*+d|µÊñg!-åÍ eÁ*pgåÍ gÁÃjh*)døÿÍ…lÊh*pgë!ÍôlÃ:h*)döÿÍ…lÊ0h*pgë! Í6mÃ:h*pgë!ÍôlåÍrgÁ*)döÿÍ…lÊZh*pgë! Í6mëÃeh*)d+å*pgÍ_låÍ gÁá"pgÉ!9Í>l"ph*phÍ8l|µÊ‘h*ph#"phÃ|h*phå!9Í>lÍmÉ!9Í>lå!9Í>lÑÍ�lÊÀh!9Í>lÃÇh!9Í>lÉ!9Í>lå!9Í>lÑͬlÊèh!9Í>lÃïh!9Í>lÉ!9Í>lå!aÑͬlÂi!9Í>lå!zÑÍ�lÍilÊ!i!9Í>lÃ,i!9Í>làÿÉ*-iå!"-i!9Í>lå*-iÍ�lÊriÃWi*-i#"-iÃ9i!9åÍ>l#ÍCl+å!9Í>lÑ}ÃMiá"-iÉ!å!9Í>lå!9Í>låÍ”iÁÁÁÉ!9Í>lÍ…lÊÎi!9åÍŠkÍCl!9Í>lÍ…lʽi!É!9Í>lå!òjåÍnkÁÁ!9Í>lå!9Í>låÍ}kÁÁ|µÊøi!9Í>låÍ#lÁ!É!"’i!9Í>lÍ8l|µÊŽj!9åÍ>l#ÍCl+Í8låÍùjÁÃoj!"’iËj!"’iËj!"’iËj!9Í>lå!ójåÍ}kÁÁËj!9Í>lå!öjåÍ}kÁÁËj!ÉËjÍ~m%jr.jw7ju@jbTjcÃhjÃþi*’i|µÊêj!9Í>l9å!9Í>lüÿÍ8l++Í…lʾj!ƒÃÁj*CÍCl!9Í>lå*’iåÍ‘kÁÁ|µÊêj!9Í>låÍ#lÁ!É!9Í>lÉ/i/x!9Í>lå!AÑÍ¡lÊk!9Í>lå!ZÑÍ¢lÍilÊ.k!9Í>l Ã5k!9Í>lÉ!"6k*!nå!9Í>lÍ�lÊjk!9Í>låÍžkÁ"6k!9Í>låÍ#lÁ*6kÉáÑÝáÝåÕåÍ(oŸogÉáÑÝáÝåÕåÍJoïÍoÝåáÉáÁÝáÝåÅåÍYpÛáÝáÝååÍqÐáÝáÝååÍKqÅáÁÝáÝåÅåÍ?q¸áÝáÝååÝË3F $Ý~?·Ý6? ÍCq8o&þ ÀÝ~@·ÌCqþ (ïÝw@ÉÍCqo&ПgoÉáÝáÁÅÝååÝË3F y õþ Ì7qñ8âOÍ7qÜáÁÅåûzÑáåÕÃ({í{͘mÑÅåÕÇ~oŸgÉ~#foÉëáãs#rëÉÁÑÅ}³o|²gÉÁÑÅ}«o|ªgÉÁÑÅ}£o|¢gÉ|µÈ!,ÉÁÑÅ|º}!ƒl»Âƒl,ɯÉ|µÊol!¯ÉÁÑÅ|º}!À»À-Éëìlë|ºÂ¬l}»Êllz¼ÊÁlõ¬!ò½lñÐ-ÉñØ-É{½!Ø-Éëz¼ÂÃl{½ÂÃlÃllëz¼ÂÃl{½ÂÃl!Éëø||g}oÃçlëø¯|g}oÃõlëø)ÃmÁÑÅ{•ozœgÉ+|/g}/oÉDM!z·>Â)mS\)ë)ëÒ1m =Â)mɯõÃFmz¬õ¬ëümë|·ômMD!x<ÂZmz�>Ú_mjS\>)ë)ëÒgm#å áÒom =Â_mëñðëÍmëÃmëáN#F#x±Ê—m~#»~#€mºÂ€mÅáéÑ!ÊmåÕÍMpͽ{ͰDÝ!ÑmÝ66ÍYpÝ"!nÝ"#nÝ"%n!€N#ÃcÍ EÍ/pÇcon 'nƒÑmÍ$xþ>(Ö<·À>ÍÎnÝ"#nØ—É>ÍÎnÝ"%nØ—É !·íR0ë÷ní°—Ío÷nÍ(o>ØÍYp>ÉåÕÅP͵zå6 T]í°ÝáÁÑáÉåÕÅÝåá$6  T]í°#6T]í°ÁÑáåÅþ (úþ (öÕÍÁoþ: >!$Íáo8QÍÁoy·>!'Äáo8Aþ. ÍÁo>!/Íáo8.þ/ Íüo8õ¶wöþ\ Íüo8ç/¦wõþ!8þ á—íRµÁáÉáÁá>7ÉÕþ!8!"p í±(îëÑ·íRÿ$%ÀMÉ¹Ø ( ‘ÅÝåÁ Áëí°ë·È6 #=øÍ zØÍ®zÖAÝåá2 GæøOx æ,=;*?[]Í'x*s|µx>È¿ÿåÝáÍqŸ°Gçå—go"s2sáÉÍ$x:s·ÄMp—ÝË6~ÀyæÝw6Ýåáå6#T]í°á$~Í®zw#øÍìpÝ~%þ !"s(Ýåá$ë!s~·>7ÈåÕ¾ /#øÑÑ~ÝwC#~ÝwD>ÍZqØ*sÝåÑ!Aí[s"ss#rÝË6þ—ÉÑá »Í'x—Ýw=Ýw>Ýn7Ýf8Ýu;Ýt<ÉÍ$xÝåáADM!s^#Vë|µ( íB óí°—ÝË6~È>ÍZqõÍñwñÝË6¾É>>> > > >Í$xÝË6~ >7ÉåÕÝnCÝfD_~#foÑãÉͦrÀÝN=ÝF>x± >ÍZqØîÝn;Ýf<~# Ýq=Ýp>Ýu;Ýt<Í·rÔ.åÕÅ> ÍZqÁÑá0·7À1.þ ( x± áÕ> ÍZqÑþ (Ýw@Õ> ÍZqÑþ (Ýw@G—xÉÍžwØÍìpÝN9ÝF: x>ØÅë> ÍZqáØíBÝu=Ýt>—ÉÍžwØÅÝ~=ݶ> ÝË5n( >ÍZq0ÝË5®Ýn9Ýf:Ýu=Ýt>ÁÝ^=ÝV>Ýn;ÝfÝu;ÝtÍZqÁØÝË2f( yþ(ÝË6nÌçb—É·ÈÕO>ÍZqÑ0òÉÍìpx±È~# åÅ>ÍZqÁáïÝ~?·Ý6?À݆@Ý6@Éþ( ÝË2f(ÝË6nÌçbÝË3F þ ÝË6öÍìpá—7ÉæÈÝË4fÄ®z·áÉ>7ÉÝË6v>ÀÍžwØÝp=Ýp>ÉÿCONñbLSTåbPUNåbRDRåbDUM(sMEMØy ÝqÝË6F ÅͶvÝåÍÝáÁËË ù>ØÍôv—Ýw!Ýw"Ýw#ÝwEÝwFÝåÑÝåÍÝáÆ>ÉÅÝåÍÝáÁGyþ HÖAOÝåÅ*åÍ&tëáÁÅÕHÍ&táÁÝá|µ7ÈÅ!s^#V{²(!¿ÿ~°G~=¹ ÁÉëèx· (Áx¹ÈÅ!7 íj ûë%ÝåÍÝáÁ·Éé·ÝË6NÄxuØÝË6F(:ÝåÑÝåÍÝáÆ>ØÝË2^ÈÝåÑÍ•v(åýá—ýË6FÈýË2ÞÉÝåÑÝåÍÝá—ÉÝË2^ ìÝ~'þ (åÝåÑÝåÍÝáÆ>ØÝåáåw$í°á'w í°ÝË2N(9!w\$í°\ÝåÍÝá<(!wBw$í°!wKwí°!wBwÍvÝåáwÍ6v—ÉÍxuØ—7ÝË6vÀÍžwØÍTuÝË5öÝn9Ýf:åÍìpÑååëÝåÑ€ÿ ã>0$åÕëÝåÍÝáÑÕ!ÍauÑá· € ãØÝË6ö—ÁÑ·íRÝu=Ýt>7È—ÉÝn!Ýf"ÝuEÝtFÉÝåÍÝá·ÀÝn!Ýf"#Ýu!Ýt"É·ÝË5~ÈÝ^!ÝV"ÕÝ^EÝVFÝs!Ýr"ÝË5vÌ©uÑØÕÍ·uÍ×uÑÝs!Ýr"ÉÝ~=æÈÍrØòÝn;Ýf<ÝN7ÝF8·íBDMÝË5vÈÝn=Ýf> DMÉÝË5¾ÝË5¶Íìpx±ÈÝåÑå`iãåÕëÝåÍÝáÑÕ(ÍauÑá· € ã·íB(0ÚÍTuá·È>7ÉÍ6vØåÕëÍ•v( ëáå í°ÑáìÑáÉåÕÍ•v("ÍTtáåfw$í°ÝåÝ!fwͶvÝáfwáåÍv ÑÕÝåÍÝááålí°ÑáåÕ\ í°—2l\ÝåÍÝáÑáÆÉÕ!s~#fÑo´ÈÕå¿ÿ  Íwá ëÑ¿ÿ öÉÝ~2\!w>94¾060+÷!w] í°Ýå\ÍÝáþÿ8ÕÝåÑ!] í°ÉÝåÑ!' í°ÉæO~æ¹À#óÉTEMP0000$$$BAK€Xs'trƒr×umq�qñtÍ'xÝË6~>7ÈÝ~7ݶ8ÀÝË6^ ÝN9ÝF:x± ÝnCÝfD+F+Nx±7ÈÝq9Ýp:ÝË6ÞÍ»z8Ýu7Ýt8ÝË6æÍìpÉõÍñwñÉ—ÝË6~ÈÝË6f(åÝn7Ýf8Í({ÝË6¦—Ýw7Ýw8á—ÝË6^ÈÝw9Ýw:ÝË6žÉ7·ãÕÅÝåýåå!Px0!Exãåõ!9~#foñÉýáÝáÁÑáÐÃXxýáÝáÁÑáÉÐã"MyãÍ'x_!$y:Oy=»8bkPy ~Wæ{7ÈÕåÍ Eá*yÍyãå}ÍñxÍyáã#^#Vz³ÄyÁxæ€( ÍzÍyëÍy7yÍy*MyÍÈxÍyxæy7Èå*KyãÉ|ÍÍx}õÍÖxñæÆ0þ:8ÆåÕÅ_ÝåÍÝáÁÑáÉdÍy Íyö0ß�0ü€  Èõ{ö0Íàxñ É'y·ÈÍàx÷ ***ERROR ERROR OCCURED AT €}yƒ‹yƒ yƒ°yÀyÊyƒÊyàyìyƒìyýyFILE NOT OPENBUFFER TOO SHORT -- WRITE ERROR -- CLOSE ERROR -- INSUF MEMFUNCTION NOT LOADED ZERO DIVIDEINVALID ARGUMENTUNABLE TO OPEN REDIRECTION FILEÅÝåá$ë!mzÍ]z(6:#Í]z6.#Í]z +6mzÁ!~zÝË6FÈ!‡zÝË6NÈ!�zÉþ!8w# õ É(OUTPUT)(INPUT)(I/O)þ0Øþ:?ÉÍ•zÐþAØþ[?ÐþaØþ{?ÉͧzØÖ ÉÍ»zÃXxÕÅ!Üÿ 8$!ò{åÑÍä{z³(0åëÍé{ë·íBë8ìå!Üÿá033+r+sq#p###—ÁÑÉN#F#ãq#páñ*:||µÌ½{!2 ÍÌ{8á*:|å ":|áq#p###ÏÍ'x++DM!ò{Íä{ë|µ(íB 8óåëÍé{ë·íB  íRÕå`iÍé{áÁ | }ëq#p`iÍé{ëÑz³( ·íR íBÕåëÍé{á | }áÍä{`is#r+Íé{DM++í[:|·íR|µÀ!ò{Íä{ë—íB ö íC:|Éå—go"ò{*":|áÉåÕë!·íR9?8í[:|íRÑá>É^#V+É+V+^##ÉÍo&ÉáÑÕåÃáÑÕåÍoŸgÉÍoŸgÉáÑÕåÃÃáÑÕå#ÃÃýáÁáÑÕåÅýåx±ÈíR8í°É +ë +ëí¸ÉýááÑÁÅÕå—go>)ëíjë0 0= òÁÅýåë·íB0 >·ëíj=ÈëíjíB?8ó ï!ÿÿÉoŸgÉáÑÕåÃÃáÑÕå#ÃÃýáÁáÑÕåÅýåx±ÈíR8í°É +ë +ëí¸ÉýááÑÁÅÕå—go>)ëíjë0 0= òÁÅýåë·íB0 OTERM.DOà Documentatioî oæ OTERÍ Terminaì Simulatoò � Versioî 4.0° (´ Ocô 82©. Copyrighô 1981¬ 198² bù � Michaeì Í Rubenstein, Reformatted by R. Hunter Morey PAGE 1 Credits® Thå modeí protocoì useä foò filå transmissioî waó � developeä bù Warä Christensen® Thå modeí protocoì � waó extendeä tï uså thå cyclicaì redundancù codå bù � Johî Mahr® Thå subprograí tï computå thå cyclicaì � redundancù codå waó writteî bù Pauì Hansknecht® Thå � windo÷ manageò ió baseä oî onå writteî bù Roberô � Lansdale® Alì fouò gentlemeî havå madå theiò worë � freelù availablå foò noncommerciaì purposes® Ideaó � foò manù thå featureó oæ OTERÍ havå comå froí otheò � terminaì programs® Thå authoró oæ theså programó � musô sharå thå crediô foò OTERM® Mosô oæ OTERÍ ió � no÷ writteî iî C® Iô waó compileä witè thå Softwarå � Toolworkó C/8° compiler® Á largå numbeò oæ peoplå � havå offereä suggestionó anä encouragemenô iî � developinç thió program® É thanë alì oæ them® Thå � CompuServå CP/Í Interesô Grouð (CP-MIG© haó beeî á � valuablå foruí foò discussioî anä á sourcå oæ á � greaô manù ideaó useä iî OTERM. PAGÅ ² Description® OTERÍ allowó thå useò tï communicatå witè timå � sharinç services¬ computerizeä bulletiî boards¬ anä � otheò computers® Speciaì featureó oæ OTERÍ include: - á circulaò loç oæ thå sessioî ió kept® Thió loç ió � undeò thå controì oæ thå user® Iô maù bå browseä � withouô exitinç OTERM. - aî optionaì warninç ió provideä wheî thå loç ió � almosô full® Iæ thå remotå devicå supportó it¬ � transmissioî wilì bå halteä witè á controì S® Iæ á � filå ió beinç sent¬ thå transmissioî ió interrupteä � (iô caî bå restarted.) - á filå maù bå receiveä withouô á protocol® Iæ thå � remotå supportó ^s/^ñ tï stoð anä starô � transmission¬ thå filå maù bå largeò thaî maiî � memory. - fileó maù bå senô tï thå remotå computeò withouô á � speciaì protocoì foò transmission® - anù commanä whicè caî bå entereä froí thå keyboarä � maù alsï bå entereä froí á filå oò froí á functioî � key. - filå transmission maù bå interrupteä froí thå � keyboarä oò froí á commanä containeä iî thå file® � Transmissioî maù bå restarteä withouô losó oæ data. - thå Warä Christenseî modeí protocoì ió � implemented® Thió allowó erroò freå communicationó � witè remotå CP/Mó oò otheò computers. - thå CIÓ Á protocoì ió implemented® Thió allowó � erroò freå communicationó witè CompuServå � Informatioî Services. - optionallù lineó maù bå wrappeä sï aó tï keeð � wordó oî á singlå linå (worä wrap©. Š- commandó tï OTERÍ arå entereä usinç functioî keù � 1® Helð menuó arå availablå bù enterinç ¿ iî � responså tï anù prompt. - extendeä functioî keyó arå available® Nameó oæ � extendeä functioî keyó maù bå uð tï 12· characteró � lonç anä datá senô bù á functioî keù maù bå uð tï � 409´ characters. - thå directorù oæ á disë maù bå vieweä froí OTERM. - files may be deleted from OTERM. - files may be typed from OTERM. PAGE 3 Limitations. OTERÍ wilì ruî onlù oî aî Osbornå ± computer® Thå � revisioî leveì musô bå 1.² oò higheò (thå originaì � reö Á ió nï longeò supported)® Nï printeò supporô ió � provided® OTERÍ ió primarilù designeä foò operatoò � attendeä communications® Therå ió nï provisioî foò � autï answer® OTERÍ containó nï provisioî foò speciaì � modems® Howeveò witè somå modems¬ functioî keyó caî � bå useä foò autodialinç oò otheò functions. PAGE 4 New features/corrections in version 4. Noteº Versioî 4.0° ió almosô á completå rewritå oæ � thå program® Mucè oæ iô haó bå rewritteî iî C® � Browsinç oæ thå loç haó beeî implemented® Thå CIÓ Á � protocoì haó beeî implemented® Accesó tï thå � directorù ¬ typinç anä deletioî oæ fileó havå beeî � implemented® Extendeä functioî keyó havå beeî � implemented® Á windo÷ manageò ió no÷ useä tï allo÷ � promptinç foò commands¬ displaù oæ messageó froí � OTERÍ anä oæ thå loç anä directory® Escapå sequenceó � arå noô useä excepô froí á file. PAGE 5 Using OTERM (summary). Thå modeí shoulä alwayó bå iî fulì dupleø modå foò � uså witè OTERM® Follo÷ thå modeí manufacturer'ó anä � thå Osbornå instructionó foò connectinç thå modem® � Notå thaî almosô alì modem'ó wilì requirå thaô piî ² � oî thå modeí bå connecteä tï piî ³ oî thå computeò � anä piî ³ oî thå modeí bå connecteä tï piî ² oî thå � computer® Oî exitinç OTERÍ thå RS23² interfacå wilì � bå reseô tï thå samå optionó aó aô entry® Thå � settinç oæ thå rs23² ratå anä thå linå sizå oî thå � disë havå nï effecô oî OTERM® OTERÍ alwayó useó it'ó � internaì settings. Aó distributed¬ oî startuð OTERÍ ió seô tï � communicatå witè mosô timå sharinç services® Thå � defaulô characteristicó maù bå changeä temporarilù � oò OTERÍ caî easilù bå modifieä tï starô uð witè � differenô characteristics® Establisè communicationó � followinç thå modeí manufacturer'ó anä thå remotå � service'ó instructions. Commandó tï OTERÍ arå precedeä bù functioî keù ± � (controì 1)® Otheò functioî keyó arå useä foò OTERÍ � functions® Severaì OTERÍ functionó requirå � significanô timå foò disë accesó durinç whicè OTERÍ � cannoô checë thå modem® Iæ thå remotå respondó tï � controì ó tï stoð anä controì ñ tï restarô anä OTERÍ � ió informeä oæ thió througè thå delaù command¬ OTERÍ � wilì stoð thå remotå durinç theså operationó anä nï �Šdatá wilì bå lost. PAGE 6 Function Keys. OTERÍ takeó oveò thå functioî keys® Thå functioî � keyó havå thå followinç meanings: ---------------------------------------- | 7 | 8 | 9 | | scroll up | scroll up | cancel | | half | full | file | | | | or fk | ---------------------------------------- | 4 | 5 | 6 | | scroll down | scroll down | cancel | | half | full | special | | | | display | ---------------------------------------- | 1 | 2 | 3 | | command | extended | standard | | | function | function | | | key | key | ---------------------------------------- Á displaù similaò tï thå abovå maù bå vieweä bù � enterinç thå fkhelð command. Key Use Of Function Keys --- ---------------------------------------------- 1 Signals OTERM that a command is to be entered. 2 Signaló OTERÍ thaô aî extendeä functioî keù ió �      tï bå entered® OTERÍ wilì prompô foò thå namå �      oæ thå functioî key® Extendeä functioî keyó arå �      installeä iî OTERÍ witè thå prograí OTSETUP® �      Note¬ thaô iæ thå namå oæ thå functioî keù ió á �      singlå digit¬ thå Osbornå functioî keù �      (installeä witè SETUP© wilì bå used® Thió �      functioî maù noô bå useä whilå enterinç aî �      OTERÍ command. 3 Signaló OTERÍ thaô aî Osbornå functioî keù ió �      tï bå entered® OTERÍ doeó noô prompô foò thå �      namå oæ thå functioî key¬ whicè musô bå á �      singlå digiô oò á singlå letter® Iæ á singlå �      letter¬ thå extendeä functioî keù installeä bù �      OTSETUÐ wilì bå used® Thió functioî maù bå useä �      aô anù time¬ includinç whilå enterinç aî OTERÍ �      command. 4 Scrolló thå speciaì displaù dowî bù halæ thå �      sizå oæ thå window® 5 Scrolló thå speciaì displaù dowî bù thå sizå oæ �      thå window. 6 Clearó speciaì displaù (browså log¬ directory¬ �      typeä filå oò thå functioî keù display). 7 Scrolló thå speciaì displaù uð bù halæ thå sizå �      oæ thå window. 8 Scrolló thå speciaì displaù uð bù thå sizå oæ �      thå window. 9 Canceló á protocoì filå transfeò oò haltó �      transmissioî withouô protocoì oæ á file® Á �Š     transmissioî withouô protocoì maù bå continueä �      withouô loss. PAGE 7 Extended function keys. Extendeä oò Osbornå functioî keyó maù bå nesteä tï á � deptè oæ 16® Therå ió nï checkinç foò recursion® Alì � functioî keyó arå canceleä wheî á filå reaä ió � started¬ buô á filå reaä maù contaiî functioî keys® � Thaô is¬ iæ á functioî keù containó á filå reaä � command¬ nothinç iî thå functioî keù wilì bå � processeä afteò thå command® Extendeä functioî keyó � arå installeä iî OTERÍ witè thå prograí otsetup® Seå � otsetup.doã foò details. PAGE 8 OTERM Commands. Wheî functioî keù ± ió entered¬ OTERÍ openó á windo÷ � aô thå toð oæ thå screeî anä promptó foò á command® � Yoõ maù theî enteò á commanä witè oò withouô � arguments® Iî mosô cases¬ iæ nï argumentó arå � entered¬ OTERÍ wilì theî prompô foò them® Iî á fe÷ � caseó (e.g® dir© á defaulô wilì bå used® Aô anù � prompô yoõ maù enteò á ¿ (followeä bù return© tï seå � á lisô oæ possiblå operandó oò á descriptioî oæ thå � command® Iî scanninç commands¬ OTERÍ allowó � abbreviatioî tï thå minimuí numbeò oæ letteró needeä � tï identifù thå commanä oò operand® Commandó arå � checkeä iî alphabetiã ordeò sï thå linå commanä maù � bå abbreviateä "l"¬ buô thå loç commanä requireó aô � leasô "lo"® Commandó anä operandó maù bå bå entereä � iî uppeò oò loweò case® Iî somå caseó (e.g® log© iæ � nï operanä ió entered¬ thå currenô statuó ió � displayed® Examples: cmd: log on (will turn log on) cmd: log (wilì displaù loç statuó anä �                 prompô foò operands) cmd: quit (will exit OTERM) Severaì commandó requirå thå entrù oæ á filå name® � OTERÍ useó á generalizeä filå systeí whicè doeó noô � permiô thå uså oæ "/¢ oò "\¢ iî á filå namå (oæ � courså thå usuaì illegaì characteró arå noô alloweä � either)® Thå slasheó arå useä tï seô flagó foò thå � filå system® Thå onlù flaç whicè ió oæ uså iî OTERÍ � ió \b¬ whicè causeó aî olä filå witè thå samå namå � tï bå deleted¬ ratheò thaî renameä tï .bak® � Simplù appenä thió flaç tï thå enä oæ thå namå � (afteò thå extension© witè nï interveninç spaces® � Thå olä filå wilì onlù bå deleteä afteò thå ne÷ filå � ió successfullù written® Alì filå nameó maù bå � entereä iî uppeò oò loweò case® Á ne÷ disë maù bå mounteä wheneveò therå arå nï opeî � files® Á ne÷ disë maù alsï bå mounteä oî anù drivå � excepô thå defaulô drivå (thå drivå whicè ió showî � iî thå CP/Í prompt¬ e.g® A>© wheneveò therå arå nï � fileó opeî oî it® Remember¬ haltinç thå readinç oæ á � filå witè functioî keù ¹ doeó noô closå thå file. Tï modifù OTERÍ tï uså ne÷ defaults¬ simplù enteò � thå desireä commands¬ exiô witè thå quiô command¬ � anä savå thå prograí witè thå CP/Í savå command® � Remembeò tï checë thå currenô sizå oæ OTERÍ witè � staô beforå enterinç OTERM. Thå followinç sectionó describå iî detaiì thå OTERÍ � commands. Š PAGE 9 log command. Á loç oæ thå sessioî ió kepô iî memory® Aó � distributed¬ thió loç ió enableä aô starô up® Thå � loç ió circular» thaô is¬ wheî thå loç ió filled¬ � characteró aô thå beginninç arå deleteä aó ne÷ � characteró arå added® Thå sizå oæ thå loç dependó oî � thå version® Thå loç ió alwayó cleareä wheî OTERÍ ió � entered® Iæ thió commanä ió entereä withouô � operands¬ thå statuó oæ thå loç wilì bå displayed® � Iî fulì dupleø mode¬ onlù characteró receiveä froí � thå remotå devicå arå entereä iî thå log® Iî halæ � dupleø modå alì characteró senô oò receiveä arå � entered® Iî hosô modå onlù characteró senô arå � entereä iî thå log. Sincå OTERÍ doeó noô recognizå deletioî oæ � characteró oò lines¬ iô usuallù wilì bå necessarù tï � ediô thå loç afteò writinç iô tï disë tï eliminatå � errors® Thå loç maù bå editeä witè WordStaò oò ED® � Thió ió alsï usefuì foò eliminatinç extraneouó � materiaì froí thå loç (e.g® commandó oò messageó � wheî á prograí sourcå filå ió listeä anä logged.© � Thå followinç operandó arå recognized: Operand Function ------- ------------------------------------------ clear Clearó thå loç anä startó enterinç datá �           intï it. endfile Stops automatic saving of the log. file Startó automatiã savinç oæ thå loç iî á �           file® Thå filå namå ió entereä afteò thå �           worä "file"® Iæ noô entered¬ yoõ wilì bå �           prompted® Thió musô bå thå lasô operanä oî �           thå line. nowarn Turnó ofæ warninç oæ loç beinç almosô �           full. off Turnó ofæ thå log® Datá currentlù iî thå �           loç ió noô lost. on Turnó oî thå log® Datá currentlù iî thå �           loç ió noô lost. warn  Turnó oî warninç oæ loç beinç almosô full® �           Wheî thå loç ió almosô full¬ yoõ wilì bå �           informeä witè threå belló and¬ iæ thå �           remotå respondó tï controì ó anä controì ñ �           (anä OTERÍ ió informeä oæ thió througè thå �           delaù command© á controì ó wilì bå sent® Á �           controì ñ wilì noô bå senô automatically® �           Warninç ió noô effectivå iæ thå loç ió �           beinç automaticallù saved. write Writeó thå currenô loç tï á file® Thå filå �           namå ió bå entereä afteò thå worä "write"® �           Iæ noô entered¬ yoõ wilì bå prompted® �           Thió musô bå thå lasô operanä oî thå line. Á commoî (anä thå simplest© methoä oæ usinç thå loç � ió tï simplù ignorå iô untiì somethinç ió receiveä � whicè onå wantó tï save® Thå loç ió theî saveä anä � lateò editeä tï eliminatå unwanteä material. Š PAGE 10 browse command. Thå browså commanä ió useä tï vie÷ thå log® Whilå � active¬ thå screeî ió spliô witè thå loç displayeä � iî thå uppeò halæ anä thå terminaì displaù iî thå � lower® Thå scrollinç functioî keyó (4¬ 5¬ 7¬ anä 8© � arå activå whilå thå loç ió beinç displayed® To turn off the log, use function key 6. The following operands are recognized: Operand Function ------- ------------------------------------------ down Followeä bù á number® Scrolló thå loç �           dowî thå specifieä numbeò oæ lines® Noteº �           durinç scrolling¬ inpuô froí thå remotå �           cannoô bå completelù processeä anä somå �           datá maù bå losô iæ thå numbeò oæ lineó ió �           largeò thaî abouô 40° (aô 30° baud)® Thió �           musô bå thå lasô operanä oî thå line. end Startó browsinç thå log¬ showinç thå lasô �           datá entered. start Startó browsinç thå log¬ showinç thå �           oldesô datá entered® up Followeä bù á number® Scrolló thå loç uð �           thå specifieä numbeò oæ lines® Noteº �           durinç scrolling¬ inpuô froí thå remotå �           cannoô bå completelù processeä anä somå �           datá maù bå losô iæ thå numbeò oæ lineó ió �           largeò thaî abouô 40° (aô 30° baud)® Thió �           musô bå thå lasô operanä oî thå line. If no operand is entered, "end" will be assumed. Thå displaù oæ thå loç wilì noô bå usablå iæ thå loç � doeó noô contaiî linå feeds® Thió wilì occuò iæ linå � feedó arå supplieä oî thå consolå ratheò thaî bù thå � remotå servicå oò bù thå transmissioî routines. PAGE 11 cis command. Useä tï turî recognitioî oæ CompuServå Á protocoì oî � oò off® Usually¬ recognitioî oæ CompuServå protocoì � wilì causå nï problems¬ buô therå ió á slighô chancå � thaô somå otheò servicå wilì senä controì sequenceó � whicè makå OTERÍ thinë iô ió engageä iî aî exchangå � witè CompuServe® Iæ thió happens¬ turî ofæ ció � protocol. The possible operands are "on" or "off". Iæ entereä withouô operands¬ thå statuó oæ ció modå � wilì bå displayed. CIÓ filå transferó arå initiateä bù thå remotå bù � sendinç á speciaì sequencå oæ characters® OTERÍ wilì � notifù yoõ oæ thå transfer® Iæ iô ió aî uploaä � (transmissioî tï thå remote© thå filå sizå anä � estimateä transmissioî timå wilì bå shown. Thå progresó oæ thå transmissioî wilì bå displayed® � Undeò thió protocoì blockó arå variablå length¬ buô � arå normallù eitheò 12¸ characteró oò 25¶ �Šcharacters® Wheî sending¬ alì blockó except¬ � possibly¬ foò thå lasô arå 25¶ characters. Á filå transfeò maù bå cancelled witè functioî keù � 9® Thå otheò systeí ió notifieä oæ thå cancellation. PAGE 12 clear command. Thió commanä clearó thå screen® Thió ió á locaì � operation® Nothinç ió transmitteä oò logged. console command. Thå consolå commanä controló thå displaù oæ � informatioî senô oò received® Iô haó nï effecô oî � thå loç oò oî thå datá transmitted: Iæ entereä withouô operands¬ thå statuó oæ thå � consolå wilì bå displayed. The following operands are recognized: Operand Function ------- ------------------------------------------ autolf Treató á carriagå returî aó thå starô oæ á �           ne÷ linå (i.å displayó aó iæ iô werå á �           carriagå returî linå feed). bsdel Deleteó thå previouó characteò wheî á �           backspacå ió received. control Controì characteró arå passeä tï thå �           screeî outpuô routineó anä acô aó defineä �           iî thå Osbornå user'ó manual. ffclr Clearó thå screeî wheî á forí feeä ió �           received. ignorectl Control characters are ignored. maskctl Controì characteró arå displayeä aó �           periods. noautolf Turnó ofæ autolf® Á carriagå returî moveó �           thå cursoò tï thå left¬ buô doeó noô starô �           á ne÷ line. nobsdel Turnó ofæ bsdel® Á backspacå moveó thå �           cursoò lefô onå character¬ buô doeó noô �           deletå thå character. nowwrap Turnó ofæ worä wrap® Oî reachinç thå enä �           oæ thå linå oî thå screen¬ á ne÷ linå ió �           starteä immediately. showctl Controì characteró arå displayeä aó "^¢ �           followeä bù á printinç character® Rubouô �           ió displayeä aó "^?". wwrap Turnó oî worä wrap® Oî reachinç thå enä oæ �           á line¬ thå linå ió brokeî aô á worä �           boundary® Foò thå purposeó oæ OTERM¬ á �           worä boundarù ió á carriagå return¬ linå �           feed¬ spacå oò horizontaì tab® Noteº worä �           wrað ió donå aô thå enä oæ thå logicaì �           linå aó specifieä iî thå linå command¬ noô �           necessarilù aô thå enä oæ thå physicaì �           screen® Thió optioî wilì probablù noô bå �Š          toï usefuì iæ thå linå sizå ió seô tï �           greateò thaî 52. Thå fouò optionó tï controì displaù oæ controì codeó � applù tï mosô nondisplayablå codes® Carriagå return¬ � linå feed¬ bacë space¬ anä horizontaì taâ arå noô � affected® Forí feeä ió noô affecteä iæ ffclò ió on® � Nulló arå displayeä onlù undeò showctl. Controì z¬ whicè normallù clearó thå screeî oî thå � Osborne¬ wilì bå ignoreä iæ controì anä ffclò arå � botè seô on. PAGE 13 delay command. Wheî sendinç á filå oò á functioî keù tï á remotå � computer¬ iô maù bå necessarù tï givå thå remotå � somå timå tï procesó thå data® Thió ió accomplisheä � witè thå delaù command® Excepô foò "usectls"¬ thå � delaù modå commandó noô meaningfuì excepô wheî á � filå oò functioî keù ió beinç sent® Iæ nï operandó � arå given¬ thå delaù statuó wilì bå displayed® Thå � followinç operandó arå recognized: Operand Function ------- ------------------------------------------ char Setó delaù modå tï character® Wheî á delaù �           ió required¬ iô wilì enä wheneveò á �           characteò ió receiveä froí thå remote® �           Thió ió thå oppositå oæ time. chdelay Causes a delay after each character sent. delay= Followeä immediatelù bù á digiô (nï �           space)® Specifieó thå lengtè oæ á �           characteò oò linå delay® Iæ 0¬ thå delaù �           wilì alwayó bå untiì á characteò ió �           received. delctls Causeó transmissioî tï stoð wheî controì ó �           ió receiveä froí thå remote® Transmissioî �           wilì resumå wheî á controì ñ ió received. lndelay Causes a delay after each line sent. nochdly Turns off chdelay. nodelctls Turns off delctls. nolndly Turns off lndelay. noprompt Turnó ofæ waitinç foò prompô afteò eacè �           line. nousectls Turns off usectls. prompt= Followeä immediatelù (nï space© bù á �           character® Afteò eacè linå sent¬ OTERÍ �           wilì waiô untiì thå specified characteò ió �           received® Á controì characteò maù bå �           specifieä aó Þ followeä bù á characteò �           (e.g® ^À foò NUL). time Causeó characteò anä linå delayó tï lasô �           thå specifieä time¬ regardlesó oæ �           characteró receiveä froí thå remote® Thå �           oppositå oæ char. Š usectls Informó OTERÍ thaô thå remotå respondó tï �           controì ó tï stoð anä controì ñ tï �           restart® Thió shoulä bå specifieä wheneveò �           possiblå tï prevenô losó oæ datá oî disë �           accesses. Uså oæ delayó foò filå transmissioî caî bå á biô � tricky® Usually¬ á combinatioî oæ linå prompô anä � shorô characteò delaù (± oò 2© workó welì iæ thå � remotå provideó á suitablå prompt® Iî otheò caseó � fairlù lonç (4-7© timå delayó maù bå needed® Witè � halæ dupleø systems¬ á linå prompô oò lonç (5-9© � timå delayó wilì bå needed. Somå timå sharinç serviceó (mosô usinç DEà � equipment© wilì senä á controì ó tï stoð � transmissioî anä á controì ñ tï restart® Iæ � 'delctls§ ió set¬ thå transmissioî wilì worë well¬ � buô thå displaù wilì probablù bå incoherent iæ thå � remotå ió sendinç durinç thå transmission® Iæ á � propeò displaù ió required¬ uså á linå prompô and á � characteò delaù also. PAGE 14 directory command. Thå directorù oæ anù disë maù bå vieweä witè thå � directorù command® Thå onlù operanä ió thå disë � drivå letter® Iæ omitteä thå defaulô disë ió used® � Thå directorù ió displayeä iî á windo÷ aô thå toð oæ � thå screen® Iæ therå arå morå fileó thaî wilì fiô iî � thå window¬ thå scrollinç functioî keyó (4¬ 5¬ 7¬ � anä 8© maù bå useä tï vie÷ thå entirå directory® Thå � displaù ió turneä ofæ witè functioî keù 6. diskspace command. Thå diskspacå commanä maù bå useä tï displaù thå � disë spacå useä anä remaininç oî anù drive® Thå onlù � operanä ió thå disë drivå letter® Iæ omitted¬ thå � defaulô disë ió used. erase command. Thå eraså commanä ió useä tï deletå á filå froí á � disk® Iô takeó á singlå operand¬ thå namå oæ thå � filå tï bå deleted® Iô ió possiblå tï deletå á filå � whicè ió beinç used¬ sucè aó thå filå beinç typeä oò � read® Thå eraså commanä wilì bå accepted¬ buô actuaì � deletioî wilì bå deferred untiì thå filå ió closed® � Iæ thå filå specifieä ió thå namå oæ á temporarù � filå generateä foò outpuô (foò thå loç filå � command)¬ thå eraså commanä wilì bå accepted¬ buô � wilì bå ineffective® Sucè fileó arå oæ thå forí � TEMPnnnn.$$$¬ wherå nnnî arå digits. PAGE 15 file command. Thå filå commanä ió useä tï reaä á filå aó iæ iô � werå typeä aô thå console® Thå filå maù contaiî � commandó aó aî escapå characteò followeä bù thå � digiô foò thå functioî keù desired® Thå responseó tï � thå promptó iæ anù musô follo÷ iî thå file® Alì � responseó tï promptó musô bå terminateä bù á � carriagå returî anä linå feed® Aî escapå characteò � maù bå senô bù enterinç twï escapå characteró iî thå � file® Thió samå techniquå ió useä tï enteò commandó � froí functioî keys® Controì characteró maù bå � entereä intï thå file¬ oò maù bå specifieä aó escapå � followeä bù á characteò (e.g® esã À foò NUL). Š Thuó á filå maù contaiî eitheò Osbornå oò extendeä � functioî keù calls® Readinç oæ á filå terminateó anù � activå functioî keys® Iæ á filå containó á commanä � tï reaä anotheò file¬ controì wilì pasó tï thaô � file¬ buô wilì noô returî aô thå enä (fileó arå � chaineä noô nested)® Readinç oæ á filå maù bå � temporarilù halteä bù enterinç functioî keù ¹ froí � thå console® Iô maù bå restarteä witè thå filå reaä � command® Iæ thió commanä ió entereä withouô � operands¬ thå filå statuó wilì bå displayed® Thå � followinç operandó arå recognized: Operand Function ------- ------------------------------------------ endfile Terminateó readinç oæ á file® Thå filå ió �           closed. halt Temporarilù stopó readinç oæ á file® Thå �           filå maù bå restarteä witè thå reaä �           operand® Thió commanä ió onlù usefuì iæ �           entereä froí á file. lf Allowó transmissioî oæ linå feedó �           containeä iî thå file® Noteº thió alsï �           applieó tï functioî keys. nolf Ignoreó linå feedó containeä iî thå file® �           Noteº thió alsï applieó tï functioî keys. read Followeä bù thå namå oæ thå filå tï bå �           read® Thió musô bå thå lasô operanä oî �           thå line® Iæ readinç oæ á filå waó halteä �           witè functioî keù ¹ oò bù á filå halô �           command¬ thå filå namå maù bå ª tï �           continuå thå file. PAGE 16 fkhelp command. Displays the standard OTERM function key usage. line command. Setó thå logicaì linå sizå tï anù lengtè froí ± � througè 128® Thå onlù operanä ió thå linå size® � NOTEº Thå linå sizå affectó onlù thå display® Thå � loç anä thå transmissioî arå noô affected® Iæ � entereä withouô aî operand¬ thå currenô linå sizå � wilì bå displayed. PAGE 17 modem command. Useä tï seô thå characteristicó oæ thå transmission® � Iæ entereä withouô operands¬ thå currenô � transmissioî statuó wilì bå displayed® Thå followinç � operandó arå recognized: Operand Function ------- ------------------------------------------ 300 Sets 300 baud. 1200 Sets 1200 baud. 7bits Sets 7 bits transmitted. 8bits Sets 8 bits transmitted. autolf Setó automatiã transmissioî oæ linå feeä �           afteò carriagå return® Thió optioî ió �Š          usuallù requireä witè hosô mode. even Sets even parity. full Sets full duplex operation. half Sets half duplex operation. host Setó hosô mode® Alì characteró receiveä �           arå echoeä bacë tï thå remote® Uså hosô �           modå wheî thå remotå ió á terminaì (oò á �           computeò acting as a terminal). noautolf Turns off autolf noparity Sets no parity transmitted. odd Sets odd parity. rs232 Setó operatioî througè thå rs23² �           connector® Becauså oæ hardwarå �           restrictions¬ thió settinç wilì senä datá �           tï botè thå rs23² connectoò anä thå seriaì �           connector. serial Setó operatioî througè thå seriaì (modem© �           connector® Datá ió noô senô tï thå rs23² �           connector. PAGE 18 receive command and crcrecv command. Thå receivå commanä ió useä tï receivå á filå witè � thå Warä Christenseî modeí protocol® Thió ió � compatiblå witè thå variouó versionó oæ modeí � (singlå filå transferó only)¬ xmodeí anä yam® Thå � onlù operanä ió thå namå oæ thå filå tï bå receiveä � (aó iô wilì appeaò oî youò systeí -- iô neeä noô bå � thå samå aó oî thå remote)® Thå crcrecö commanä ió � thå samå aó thå receivå command¬ buô crã checkinç � wilì bå used® Thió ió superioò tï thå standarä � checksuí iæ thå remotå caî handlå it® Thå filå � transmissioî maù bå canceleä witè functioî keù 9® � Thå otheò enä ió noô notifieä oæ thå cancellation® � Iæ thå otheò systeí sendó á canceì (controì x© iî � placå oæ thå normaì blocë header¬ OTERÍ wilì inforí � yoõ oæ this® Thió caî bå usefuì wheî onå enä wisheó � tï halô á transmission® Don'ô canceì oî thå firsô � onå though¬ iô maù jusô bå á transmissioî error. PAGE 19 quit command. This command returns to CP/M. send command. Thå senä commanä ió useä tï senä á filå witè thå � Warä Christenseî modeí protocol® Thió ió compatiblå � witè thå variouó versionó oæ modeí (singlå filå � transferó only)¬ xmodeí anä yam® Thå onlù operanä ió � thå namå oæ thå filå tï bå senô (aó iô appearó oî � youò systeí -- iô neeä noô bå thå samå aó oî thå � remote)® crã checkinç ió implemented® Iî thió � protocoì iô ió requesteä bù thå receiver® Thå filå � transmissioî maù bå canceleä witè functioî keù 9® � Thå otheò enä ió noô notifieä oæ thå cancellation® � Iæ thå otheò systeí sendó á canceì (controì x© iî � placå oæ thå normaì blocë header¬ OTERÍ wilì inforí � yoõ oæ this® Thió caî bå usefuì wheî onå enä wisheó � tï halô á transmission® Don'ô canceì oî thå firsô � onå though¬ iô maù jusô bå á transmissioî error® Š PAGE 20 type command Useä tï displaù á file® Á singlå operand¬ aî � unambiguouó filå name¬ ió accepted® Thå filå ió � displayeä aó á secondarù display® Thå scrollinç � functioî keyó (´ anä µ only© arå active® Thå filå � musô bå á standarä CP/Í texô file¬ excepô thaô á � filå witè lineó terminateä bù carriagå return¬ buô � nï linå feed¬ wilì bå displayeä properly. wait command Thió commanä delayó transmissioî foò froí ± througè � 6° seconds® Thió ió sometimeó usefuì iî sendinç á � filå withouô protocoì tï allo÷ foò somå actioî bù � thå remote® Thå onlù operanä ió thå numbeò oæ � secondó tï wait. PAGE 21 Protocol file transfers. Thió sectioî containó informatioî oî usinç OTERÍ tï � senä anä receivå files® Thå informatioî oî uså oæ � otheò programó is¬ oæ course¬ noô tï bå takeî aó � absolute® Therå arå manù differenô versionó oæ otheò � programó whicè wilì communicatå witè OTERÍ anä � detailó vary® Wheî iî doubt¬ checë thå � documentatioî oæ thå otheò program® Mosô rcpm'ó havå � helð fileó oò documentatioî fileó available. Tï communicatå witè anotheò system¬ onå oæ thå � systemó musô havå aî originatå modem¬ thå otheò aî � answeò modeí (noô necessarilù autï answeò -- thå � terí answeò herå referó onlù tï thå frequencieó � used)® Mosô moderatelù priceä tï expensivå modemó � caî operatå iî eitheò originatå oò answeò mode. Transfers from OTERM to OTERM Iô ió usuallù besô tï firsô establisè � communications® Onå oæ thå systemó ió seô tï hosô � modå anä autï linå feeä transmissioî (modeí hosô � autolf© anä thå otheò tï fulì dupleø (modeí full)® � Iô ió theî possiblå tï communicatå througè OTERM® � Oncå communicationó havå beeî established¬ thå � receiveò enteró thå crcrecö commanä anä thå sendeò � enteró thå senä command® Thå transfeò wilì theî � begin® Onå maù uså thå receivå command¬ buô thå � crcrecö commanä giveó greateò assurancå oæ correcô � transfeò aô nï measurablå cost. Transfers with other systems Thå samå methoä aó foò OTERM-OTERÍ transferó shoulä � bå used¬ iæ possible® Somå programs¬ however¬ dï noô � allo÷ establishinç communicationó aó á terminaì � first® Iî thaô case¬ oncå thå modemó havå � establisheä carriers¬ enteò thå requireä commands® � Iæ thå otheò systeí allowó crã checking¬ iô shoulä � bå used® Somå programó arå seô uð foò automatiã � selectioî oæ crã checking® Iæ sendinç á filå tï sucè � á program¬ issuå thå senä commanä tï OTERÍ beforå � thå otheò systeí issueó thå receivå command. PAGE 22 Receiving from an rcpm. Mosô rcpm'ó uså thå followinç method® Typå (tï thå � rcpm¬ noô aó aî OTERÍ command) xmodem s followeä bù return® wherå foò sendinç witè crã checking® Iæ crã checkinç ió � noô available¬ thå commanä is xmodem r The OTERM command is send Rcpm'ó wilì noô accepô fileó witè á typå oæ .COM® � Uså thå typå .OBÊ iî thå xmodeí commanä (manù � systemó wilì automaticallù changå iô iæ yoõ forget.© � Somå systemó wilì automaticallù puô thå filå yoõ � senä tï á speciaì area® Otheró asë thaô yoõ puô iô � iî somå speciaì areá yourself® Á fe÷ don'ô carå � wherå yoõ puô it. PAGE 24 Transferring files with CompuServe Makå surå ció protocoì ió oî iî OTERÍ (ció on)® Yoõ � maù generallù leavå iô on® Iô wilì seldoí dï anù � harm® Therå arå nï OTERÍ commandó directlù � associateä witè CompuServå filå transfers® Yoõ enteò � commandó tï CompuServe¬ anä thå systeí sendó thå � requireä instructionó tï OTERM® Tï senä oò receivå á filå froí youò useò area¬ oò � froí anotheò useò areá whicè ió accessible tï you¬ � enteò thå (CompuServe© command r xftran You will be prompted for details. Tï receivå á filå froí access¬ enteò thå � (CompuServe© command dow wherå rbUnable to open function key file oterm.com/bUnable to open input oterm wbUnable to open output oterm Error in reading input otermInvalid function key name: Redef of Osborne standard function key ignored: Function key def too long: Error in output oterm/d!9ͧ!"¸*¸å!9ͧ9ͧë!€Í¤ë!9ͧ̓ͬ!9ͧ#6!9ͧå!9ͧåÍÁÁ!9ͧ2###åÍ¡}ö oÑ}É!9ͧ!"3!9ͧ9ͧë!€Í¤"5!9ͧå!ÑÍÊ�!"/!9ͧ"+!9åͧ+++ͬÃù!9ͧåÍ< Áå!9ͧ9ͧÑͤ"+!9ͧåÍ< Áå!9ͧ9ͧÑͤë"/!9ͧå!ÑÍÊù*+Í{"+*/Í{"/!9ͧÃŒ !"1"-Ã� !9ͧ6Í¡&}æ@oÍîÊ` !9ͧ;ͧå!9ͧ7ͧÍq"1!9ͧEͧ"-Ã� !9ͧåÍQ$Á!9ͧ6åÍ¡}æ¿oÑ}!9ͧ#Í¡|µÊ› !ÿÿá *3ͧ"-!9ͧ9ͧë*-ëÍŸë"1*-ë*5ÍŸ"-*3å*-ë*5̓ͬ!9ͧ#6!9ͧåÍÁ!9ͧ;åͧë*1ͬ!9ͧ=åͧå*1Íqͬ!9ͧ=ͧ|µÊ‰ ÃQ !9ͧ=åͧ+ͬÃ% !9ͧ;ͧÍ¡#ÍîÊl É !9ͧ;åͧ#ͬ*1#"1Ã; Ã� Íç  ` !9ͧ6åÍ¡}æ¿oÑ}*1ë*/"1!9ͧ9ͧë*1ëͤë*+ë*-"-!9ͧ9ͧë*1ëͤë"1*3å*-ë*5̓ͬ!9ͧ#6!9ͧåÍÁ|µÊ. !É!9ͧ2###åÍ¡}ö oÑ}*1å!9ͧ=ͧÑÍÊ” !9ͧ=åͧå*1Íqͬ!9ͧ;åͧë*1ͬ!É!9ͧ;åͧå! 9ͧ=ͧÑͬ!9ͧ=å!9ͧ9ͧå! 9ͧ=ͧÍqͬ!9ͧ2###åÍ¡}æ¿oÑ}!É!9ͧ!" * å!9ͧ9ͧë!€Í¤ë!9ͧ̓ͬ!9ͧ#6!9ͧåÍÁ|µÊ\ !É!9ͧ2###åÍ¡}ö oÑ}!9ͧ=ͧÉ!9ͧ7ͧÉ!9ͧå!9ͧåÍeÁÁ!9ͧë!Í]å!9ͧåÍeÁÁÉ!9ͧå!AÑÍ Êæ !9ͧå!ZÑÍ ÍÒ !9ͧå!aÑÍ Ê !"9ͧå!zÑÍ ÍÒÍÒÉ!9ͧÍ¡|µÊ; !9åͧ#ͬ+Í¡åÍÅÁà É!9ͧå!ÑÍÊ[ !9ͧÍ{Ãb !9ͧÉ!9ͧå!0ÑÍ Ê„ !9ͧå!9ÑÍ ÍÒÉ!9ͧå!aÑÍ© !9ͧå!zÑÍÍÒʹ !9ͧÃÄ !9ͧàÿÉ!å!9ͧå!9ͧåÍâ ÁÁÁÉ!9ͧÍîÊ!9åÍóͬ!9ͧÍîÊ !É!9ͧå!@åÍ×ÁÁ!9ͧå!9ͧåÍæÁÁ|µÊF!9ͧåÍŒÁ!É!"à !9ͧÍ¡|µÊÜ!9åͧ#ͬ+Í¡åÍGÁý!"à ÃÙ!"à ÃÙ!"à ÃÙ!9ͧå!AåÍæÁÁÃÙ!9ͧå!DåÍæÁÁÃÙ!ÉÃÙÍçsr|w…uŽb¢cöÃL*à |µÊ8!9ͧ9å!9ͧüÿÍ¡++ÍîÊ !ƒÃ*ͬ!9ͧå*à åÍúÁÁ|µÊ8!9ͧåÍŒÁ!É!9ͧÉ/i/x!9ͧå!AÑÍ Êh!9ͧå!ZÑÍ ÍÒÊ|!9ͧ Ã!9ͧÉ!"„*Šå!9ͧÍøʸ!9ͧåÍÁ"„!9ͧåÍŒÁ*„É*ŒåÍ*ÁÉ!9ͧå*ŽåÍeÁÁÉáÑÝáÝåÕåÍ7ŸogÉáÑÝáÝåÕåÍYïÍÝåáÉáÁÝáÝåÅåÍhÛáÝáÝååÍÐáÝáÝååÍZÅáÁÝáÝåÅåÍN¸áÝáÝååÝË3F $Ý~?·Ý6? ÍR8o&þ ÀÝ~@·ÌRþ (ïÝw@ÉÍRo&ПgoÉáÝáÁÅÝååÝË3F y õþ ÌFñ8âOÍFÜáÁÅåÃ#ÑáåÕÃ…#í{ÍÑÅåÕÃ~oŸgÉ~#foÉëáãs#rëÉÁÑÅ}³o|²gÉÁÑÅ}«o|ªgÉÁÑÅ}£o|¢gÉ|µÈ!,ÉÁÑÅ|º}!Âì»Âì,ɯÉ|µÊØ!¯ÉÁÑÅ|º}!À»À-ÉëÃë|ºÂ}»ÊÕz¼Ê*õ¬!ò&ñÐ-ÉñØ-É{½!Ø-Éëz¼Â,{½Â,ÃÕëz¼Â,{½Â,!Éëø||g}oÃPëø¯|g}oÃ^ëø)ÃkÁÑÅ{•ozœgÉ+|/g}/oÉDM!z·>Â’S\)ë)ëÒš =Â’ɯõïz¬õ¬ëü{ë|·ô{MD!x<ÂÃz�>ÚÈjS\>)ë)ëÒÐ#å áÒØ =ÂÈëñðëÍ{ëÃ{ëáN#F#x±Ê~#»~#ÂéºÂéÅáéÑ!3åÕÍ\Í$ÍDÝ!:Ý66ÍhÝ"ŠÝ"ŒÝ"Ž!€N#ÃÍCÍ>ǵ*bØ*;+T+’+Ñ+ñ+bžø}0?~CÝ]f\:Lcon �ƒb—$«$®$K,b:V,l,l,V,b‰,¢,b- -'-]-Ž-Â-b.".bbˆ.b?.®.bÌ.ç./5/@/L/k/m/�/¢/½/�(bÒ/ë/b0bK0b E=rEname a file ‰ For maximum ëÕÅ!å͘(͹8( #ã#Í«ãëÍ¥æáááÉëá###DMÍ#åýá##ëÁãëýå—ýwýw͘(/þ<(%þ>(!ý#ý#ýuýtx±(·( þ (w #î6#ÑÍ¥Ìý6ÿý6ÿáÁÉx±È·Èþ À óåÍ«áÉx±È·Èþ È #òÍ� þ>(Ö<·À>ÍÝÝ"ŒØ—É>ÍÝÝ"ŽØ—É !·íR0ëí°—ÍÍ7>ØÍh>Éprompted if omitted. åÕÅPÍ#å6 T]í°ÝáÁÑáÉåÕÅÝåá$6  T]í°#6T]í°ÁÑáåÅþ (úþ (öÕÍÐþ: >!$Íð8QÍÐy·>!'Äð8Aþ. ÍÐ>!/Íð8.þ/ Í 8õ¶wöþ\ Í 8ç/¦wõþ!8þ á—íRµÁáÉáÁá>7ÉÕþ!8!1 í±(îëÑ·íRÿ$%ÀMÉ¹Ø ( ‘ÅÝåÁ Áëí°ë·È6 #=øÍý"ØÍ #ÖAÝåá2 GæøOx æ,=;*?[]Í„ *|µx>È¿ÿåÝáÍŸ°Gçå—go"2áÉÍ� :·Ä\—ÝË6~ÀyæÝw6Ýåáå6#T]í°á$~Í #w#øÍûÝ~%þ !0(Ýåá$ë!~·>7ÈåÕ¾ /#øÑÑ~ÝwC#~ÝwD>ÍiØ*ÝåÑ!Aí["s#rÝË6þ—ÉÑá »Í„ —Ýw=Ýw>Ýn7Ýf8Ýu;Ýt<ÉÍ� ÝåáADM!^#Vë|µ( íB óí°—ÝË6~È>ÍiõÍN ñÝË6¾É>>> > > >Í� ÝË6~ >7ÉåÕÝnCÝfD_~#foÑãÉÍ´ÀÝN=ÝF>x± >ÍiØîÝn;Ýf<~# Ýq=Ýp>Ýu;Ýt<ÍÅÔ.åÕÅ> ÍiÁÑá0·7À1.þ ( x± áÕ> ÍiÑþ (Ýw@Õ> ÍiÑþ (Ýw@G—xÉÍûØÍûÝN9ÝF: x>ØÅë> ÍiáØíBÝu=Ýt>—ÉÍûØÅÝ~=ݶ> ÝË5n( >Íi0ÝË5®Ýn9Ýf:Ýu=Ýt>ÁÝ^=ÝV>Ýn;ÝfÝu;Ýt<Åz³ Ý^7ÝV8íRDM>ÍiÁÝË2f( yþ(ÝË6nÌP—É·ÈÕO>ÍiÑ0òÉÍûx±È~# åÅ>ÍiÁáïÝ~?·Ý6?À݆@Ý6@Éþ( ÝË2f(ÝË6nÌPÝË3F þ ÝË6öÍûá—7ÉæÈÝË4fÄ #·áÉ>7ÉÝË6v>ÀÍûØÝp=Ýp>ÉÿCONLST¢PUN¢RDR¢DUM6MEMJë�����èèè��|¬ü‘øÝË6î—ÉÝË4~Ê|Í´ÀÍuÔËÔ“É—7ÝË6vÀÍÆÅOÖ·yÁÀ:.·>ÀÍôâ·ÝË3nÀÝË3f(þ Èþ ÈWÝË3F þ > Wþ ͼ> ÕÍPÑz·É!"4þ À·ÝË3FÀÝË4fÄ #·þ (þ > Ý6@ þ ÝË6ö—7É·ÉíC%íC'íS,!"):"2+Í´ÌuØÍËØþ ʧþ ʧþ í[,ÍÔÞþ *,íR(ÓÍÔÍþ !5Í9íK'í[,¡þ !@Í9íK%‘þ *,íR(žÍÁ*%#"%�*%|µ(+"%åÍÁáÝË2nÊ |µÂ ÕÍiÑà ÕÍ“Ñ*%+"%Í´ ò—íK%ÉÕ!"N*)Í")Í“ÑÉÝË3nÀ!å*,:+Oë·íR( ãÍãñÁ*)íC)íB( DM!1Í9 x± õ*,íRíK' "%É# þ Ð# þ À++y==æíDÆO > É~·ÈåÕÅÍhÁÑá#ñyWÝË2V(Wþ (þ (þ ( þ 0>^ÍhÆ@_:$·>̶ Íç>Ͷ ö{!"þ 6þ 5þ Õ åÍ á~æ ôÑÉ{þ 8!"4{ÕÝåÍiÝáÑz·ÉõÍÙñå!#¾ 6áÉÍmå!#~6á·ÀÍ„ ÃfÍ„ ÍaÈÍf2#É:.·>̶ÀÍ„ */é>ÿÕz³ íS/Ñ—2.ɃZ^H‘ `ôö  É—2"2#*###"b###"g###"kÉÍ·ÉÃKÃÉÝ~$þL *²*´ÝuÝt—ÉÝåÝNÍÝá·ÍÅðYÝåÝNÍÝá·Énƒ•‘ …¬öÝN$Í >Øy ÝqÝË6F ÅÍÝåÍÝáÁËË ù>ØÍW—Ýw!Ýw"Ýw#ÝwEÝwFÝåÑÝåÍÝáÆ>ÉÅÝåÍÝáÁGyþ HÖAOÝåÅ*åÍ„ëáÁÅÕHÍ„áÁÝá|µ7ÈÅ!^#V{²(!¿ÿ~°G~=¹ ÁÉëèx· (Áx¹ÈÅ!7 íj ûë%ÝåÍÝáÁ·ÉéÝË6NÄÎÝË6F(4ÝåÑÝåÍÝáÆ>ØÝË2^ÈÝåÑÍî(2 ËÞ—ÉÝåÑÝåÍÝá—ÉÝË2^ ìÝ~'þ (åÝåÑÝåÍÝáÆ>ØÝåáå{$í°á'| í°ÝË2N(9!{\$í°\ÝåÍÝá<(!{Ÿ$í°!x¨í°!{ŸÍqÝåá{ÍŒ—ÉÍÎØ—7ÝË6vÀÍûØÍªÝË5öÝn9Ýf:åÍûÑååëÝåÑ€ÿ ã>0$åÕëÝåÍÝáÑÕ!Í·Ñá· € ãØÝË6ö—ÁÑ·íRÝu=Ýt>7È—ÉÝn!Ýf"ÝuEÝtFÉÝåÍÝá·ÀÝn!Ýf"#Ýu!Ýt"É·ÝË5~ÈÝ^!ÝV"ÕÝ^EÝVFÝs!Ýr"ÝË5vÌÿÑØÕÍ Í-ÑÝs!Ýr"ÉÝ~=æÈÍØòÝn;Ýf<ÝN7ÝF8·íBDMÝË5vÈÝn=Ýf> DMÉÝË5¾ÝË5¶Íûx±ÈÝåÑå`iãåÕëÝåÍÝáÑÕ(Í·Ñá· € ã·íB(0Úͪá·È>7ÉÍŒØåÕëÍî( ëáå í°ÑáìÑáÉåÕÍî(%2ËÞáåÃ$í°ÝåÝ!ÃÍÝáÃáåÍq ÑÕÝåÍÝááålí°ÑáåÕ\ í°—2l\ÝåÍÝáÑáÆÉÕ!~#fÑo´ÈÕåõÿËFá(ïå¿ÿ  Íeá áÑ¿ÿ öÉÝ~2\!t>94¾060+÷!m] í°Ýå\ÍÝáþÿ8ÕÝåÑ!] í°ÉÝåÑ!' í°Éí¡ÀàøTEMP0000$$$BAKjG> ͧGÃG>ŠÍ§GÍGÃG:–·ÄÎGÃGÕ*qëÍ™Gs#rÑ!"q*q#"qÉÕ*q&)ë*qÑÉë¾ëÈg:'·È2Iq|bk+Ã/\:lqþ¯å*q´µ*q´µ€¶…‘-|¬GÍ„ ÝË6~>7ÈÝ~7ݶ8ÀÝË6^ ÝN9ÝF:x± ÝnCÝfD+F+Nx±7ÈÝq9Ýp:ÝË6ÞÍ#8Ýu7Ýt8ÝË6æÍûÉõÍN ñÉ—ÝË6~ÈÝË6f(åÝn7Ýf8Í…#ÝË6¦—Ýw7Ýw8á—ÝË6^ÈÝw9Ýw:ÝË6žÉ7·ãÕÅÝåýåå!­ 0!¢ ãåõ!9~#foñÉýáÝáÁÑáÐõ ýáÝáÁÑáÉÐã"ª!ãÍ„ _!�!:¬!=»8bk­! ~Wæ{7ÈÕåÍCá‡!Íx!ãå}ÍN!Íu!áã#^#Vz³Äx!Áxæ€( #Íz"Íx!ëÍx!”!Íx!*ª!Í%!Íu!xæy7Èå*¨!ãÉ|Í*!}õÍ3!ñæÆ0þ:8ÆåÕÅ_ÝåÍÝáÁÑáÉdÍ^! Í^!ö0ß�0ü€  Èõ{ö0Í=!ñ É„!·ÈÍ=!÷ ***ERROR ERROR OCCURED AT €Ú!ƒè!ƒý!ƒ ""'"ƒ'"="I"ƒI"Z"FILE NOT OPENBUFFER TOO SHORT -- WRITE ERROR -- CLOSE ERROR -- INSUF MEMFUNCTION NOT LOADED ZERO DIVIDEINVALID ARGUMENTUNABLE TO OPEN REDIRECTION FILEÅÝåá$ë!Ê"ͺ"(6:#ͺ"6.#ͺ" +6Ê"Á!Û"ÝË6FÈ!ä"ÝË6NÈ!ì"Éþ!8w# õ É ëͺJÒ«JáÁÉÕ####(OUTPUT)(INPUT)(I/O)þ0Øþ:?ÉÍò"ÐþAØþ[?ÐþaØþ{?ÉÍ#ØÖ ÉÍ#õ ÕÅ!Üÿ 8$!O$åÑÍA$z³(0åëÍF$ë·íBë8ìå!Üÿá033+r+sq#p###—ÁÑÉN#F#ãq#páñ*Z$|µÌ$!2 Í)$8á*Z$å "Z$áq#p###ÏÍ„ ++DM!O$ÍA$ë|µ(íB 8óåëÍF$ë·íB  íRÕå`iÍF$áÁ | }ëq#p`iÍF$ëÑz³( ·íR íBÕåëÍF$á | }áÍA$`is#r+ÍF$DM++í[Z$·íR|µÀ!O$ÍA$ë—íB ö íCZ$Éå—go"O$*\$"Z$áÉåÕë!·íR9?8í[Z$íRÑá>É^#V+É+V+^##ÉáÑÕå#Ã^$ | }áÍA$`is#r+ÍF$DM++í[Z$·íRÉ7·ãÕÅÝåýåå!­ 0!¢ ãåõ!9~#foñÉýáÝáÁÑáÐõ ýáÝáÁÑáÉÐã"ª!ãÍ„ _!�!:¬!=»8bk­! ~Wæ{7ÈÕåÍCá‡!Íx!ãå}ÍN!Íu!áã#^#Vz³Äx!Áxæ€( OTSETUP.DOà -- OTERÍ Terminaì Simulatoò Setuð � Copyrighô 1981¬ 198² Michaeì Í Rubenstein¬ Versioî � 4.0° (´ Ocô 82), reformatted by R. Hunter Morey OTSETUÐ ió useä tï instalì extendeä functioî keù � definitionó iî OTERM® Seå OTERM.DOà foò detailó oî � usinç extendeä functioî keys. The syntax for OTSETUP is otsetup Onlù thå fkey filå ió required® Thå OTERÍ inpuô filå � defaultó tï oterm.coí aó doeó thå outpuô file® Onlù � thoså partó oæ thå inpuô oò outpuô OTERÍ filå nameó � whicè diffeò froí thå defaulô neeä bå entered. For example: otsetup fkeys b: b: will use b:oterm.com and create b:oterm.com. Iî alì cases¬ iæ á filå witè thå samå namå aó thå � outpuô alreadù existó iô wilì bå renameä witè aî � extension oæ .bak. Thå fkeyó filå containó thå extendeä functioî keù � definitionó iî thå form: name /function key value/ Thå namå maù bå froí ± througè 12· alphanumeriã � characters® Uppeò anä loweò caså arå equivalent® Thå � "/"ó maù bå anù printinç character® Thå functioî keù � valuå maù contaiî anù characteró excepô thå � delimiteò specifieä (includinç carriagå returnó anä � linå feeds). Anù numbeò oæ carriagå returns¬ linå feeds¬ spaceó � oò controì characteró maù appeaò betweeî thå namå � anä thå delimiteò oò beforå thå nexô name. Commandó maù bå entereä iî thå functioî keù valuå aó � foò fileó bù enterinç esã ® Foò example¬ esã a¬ � woulä generatå ^A® Rubouô maù bå entereä aó esã ?® � Noteº Tï enteò á controì characteò witè WordStar¬ � precedå iô witè controì p. Example: a /function key a/ verylongfunctionkeynamebutnotevenclosetomax /line1 line2 line3 / commands =^[1log on xmodem rc file.txt Š^[1wait 20 ^[1send file.txt = In the last definition, ^[ is an escape character. Iæ á functioî keù ió defineä witè thå namå � OTERMINIT¬ iô wilì bå executeä wheî OTERÍ ió � started® Iæ onå ió defineä witè thå namå OTERMEND¬ � iô wilì bå executeä aô prograí termination® OTERMEND � maù noô contaiî á filå reaä command¬ buô otherwiså � theså functioî keyó follo÷ thå samå ruleó aó otheró � anä maù bå executeä manually. END OF DOCUMENT tweeî thå namå � anä thå delimiteò oò beforå thå nexô name. Commandó maù bå entereä iî thå functioî keù valuå aó � foò fileó bù enterinç esã ® Foò example¬ esã a¬ � woulä generatå ^A® Rubouô maù bå entereä aó esã ?® � Noteº Tï enteò á controì characteò witè WordStar¬ � precedå iô witè controì p. Example: a /function key a/ verylongfunctionkeynamebutnotevenclosetomax /line1 line2 line3 / commands =^[1log on xmodem rc file.txt Š^[1wait 20 ^[1send file.txt = In the last definition, ^[ is an escape character. Iæ á functioî keù ió defineä witè thå namå � OTERMINIT¬ iô wilì bå executeä wheî OTERÍ ió � started® Iæ onå ;---------------------------------------------------- ;OSBORNE ONE SERIAL PORT CONTROL UTILITY ;COPYRIGHT 1983 BY GEORGE SCOTT ;PERMISSION GRANTED FOR PRIVATE USE ;CONTACT AUTHOR FOR COMMERICAL USE ; ; ;VERSION 2.3 JAN 1983 ; ;PROGRAM IS MENU DRIVEN AND ALLOWS FOR SELECTION ;OF CLOCK DIVISION (AND HENCE BAUD RATE) WORD ;FORMATTING (LENGTH, STOP BITS, PARITY) AND VARIOUS ;HARDWARE HANDSHAKE HANDLING. EXITING EARLY, FROM ;ANY MENU, ABORTS THE PROCESS. THE LAST OPPORTUNITY ;TO DO THIS IS FROM THE RECEIVE INTERRUPT MENU. A ;BELL IS SOUNDED TO WARN THAT THIS IS THE LAST MENU ;BEFORE THE CONTROL WORD IS WRITTEN. ;---------------------------------------------------- ; ;SETUP CALL AND DATA EQUATES ; CLEAR EQU 26 PBUFF EQU 9 CR EQU 0DH LF EQU 0AH MBUFF EQU 4010H RGET EQU 1 BZY EQU 0BH FLAGPOS EQU 0EF08H BDOS EQU 5 ACIA EQU 2A00H ;ADDRESS OF ACIA SLSP EQU 10B ;CLOCK DIVISION WORDS HISP EQU 01B ;DEFAULT (DIVIDE BY 16) UHSP EQU 00B BELL EQU 07 RESET EQU 11B WRITE EQU 5000H $ F7BE2 EQU 00000B ;WORD LENGTH/STOP BIT/PARITY F7BO2 EQU 00100B ;WORDS F7BE1 EQU 01000B ;NEXT COMMENT SHOWS WHAT VARIABLE NAME MEANS: F7BO1 EQU 01100B ;F=FORMAT,7B=7 BIT,O=ODD,1=1 STOP BIT F8BN2 EQU 10000B F8BN1 EQU 10100B ;DEFAULT F8BE1 EQU 11000B F8BO1 EQU 11100B LTID EQU 0000000B;RTS LINE HANDLING WORDS LTIE EQU 0100000B HTID EQU 1000000B;DEFAULT LTBR EQU 1100000B RIE EQU 10000000B;RECEIVE INTERRUPT HANDLING WORDS RID EQU 0B ;DEFAULT ; ; ORG 0100H ; ; LXI D,WRITE ;SET PARMS FOR BLOCK MOVE LXI H,SOURCE MVI B,21 CALL LIFTER ;XEQ BLOCK MOVE TO COPY SWITCH ;ROUTINE TO HIGH MEMORY (5000H) ;TO ALLOW BANK SWITCHING ;TO XEQ PROPERLY MVI B,0 ; ;CLOCK DIVISION (BAUD RATE) SELECTION MENU ; SMENU CALL SAVR LXI D,SPEED CALL PRINT ;DISPLAY SPEED SELECT MENU CALL INPUT CALL RSTR CPI 'U' JZ ULTRA CPI 'F' JZ FAST CPI 'S' JZ SLOW CPI CR JZ FAST CPI 'E' JZ 00 JMP SMENU ;NO VALID KEYBOARD INPUT BRANCH ; ;WORD LENGTH/PARITY/STOP BIT SELECT MENU ; WMENU CALL SAVR LXI D,WORD CALL PRINT CALL INPUT CALL RSTR CPI '1' JZ WORD1 CPI '2' JZ WORD2 CPI '3' JZ WORD3 CPI '4' JZ WORD4 CPI '5' JZ WORD5 CPI '6' JZ WORD6 CPI '7' JZ WORD7 CPI '8' JZ WORD8 CPI CR JZ WORD6 CPI 'E' JZ 00 JMP WMENU ; ;RTS LINE HANDLING SELECT MENU ; RMENU CALL SAVR LXI D,RTSP CALL PRINT CALL INPUT CALL RSTR CPI '1' JZ RTS1 CPI '2' JZ RTS2 CPI '3' JZ RTS3 CPI '4' JZ RTS4 CPI CR JZ RTS3 CPI 'E' JZ 00 JMP RMENU ; ;RECEIVE INTERRUPT ENABLE/DISABLE ; DMENU CALL SAVR LXI D,DCDP CALL PRINT CALL INPUT CALL RSTR CPI '1' JZ DCD1 CPI '2' JZ DCD2 CPI CR JZ DCD1 CPI 'E' JZ 00 JMP DMENU ; ;WRITE CONTROL BYTE TO RESET ACIA THEN WRITE ;CONTROL BYTE NOW STORED IN REGISTER B ; WINDUP CALL SAVR MVI B,RESET ;SET B FOR ACIA RESET CALL WRITE ;XEQ WRITE ROUTINE IN HIGH MEMORY CALL RSTR ;MOVE CONTROL BYTE TO B REGISTER CALL WRITE ;WRITE IT TO ACIA JMP 00 ;GO AWAY ; ; ;THE FOLLOWING ROUTINES BUILD THE CONTROL WORD AND ;STORE IT IN THE B REGISTER AS DATA IS SELECTED FROM ; THE KEYBOARD ; ;SPEED SUBROUTINES ; ULTRA MOV A,B ORI UHSP JMP SPLT FAST MOV A,B ORI HISP JMP SPLT SLOW MOV A,B ORI SLSP SPLT MOV B,A JMP WMENU ; ;WORD PARAMETER ROUTINES ; WORD1 MOV A,B ORI F7BE2 JMP WSPLT WORD2 MOV A,B ORI F7BO2 JMP WSPLT WORD3 MOV A,B ORI F7BE1 JMP WSPLT WORD4 MOV A,B ORI F7BO1 JMP WSPLT WORD5 MOV A,B ORI F8BN2 JMP WSPLT WORD6 MOV A,B ORI F8BN1 JMP WSPLT WORD7 MOV A,B ORI F8BE1 JMP WSPLT WORD8 MOV A,B ORI F8BO1 WSPLT MOV B,A JMP RMENU ; ;RTS LINE HANDLING SELECT ROUTINES ; RTS1 MOV A,B ORI LTID JMP RSPLT RTS2 MOV A,B ORI LTIE JMP RSPLT RTS3 MOV A,B ORI HTID JMP RSPLT RTS4 MOV A,B ORI LTBR RSPLT MOV B,A JMP DMENU ; ;DCD HANDLING ROUTINES ; DCD1 MOV A,B ORI RID JMP DSPLT DCD2 MOV A,B ORI RIE DSPLT MOV B,A JMP WINDUP ; ;CODE TO BE COPIED TO HI MEMORY BY LIFTER ;THAT WILL FORM THE BANK SWITCH/WRITE ROUTINE ;AT 5000H ; SOURCE DI OUT 00H MVI A,00 STA FLAGPOS LXI H,ACIA MOV M,B OUT 01H MVI A,01H STA FLAGPOS EI RET ; ;CONSOLE OUTPUT UTILITY ; PRINT MVI C,PBUFF CALL BDOS RET ; ;INPUT UTILITY ROUTINE RETURNS ONE CHARACTER FROM ;KEYBOARD IN THE A REGISTER ; INPUT MVI C,BZY CALL BDOS CPI 00 JZ INPUT MVI C,RGET CALL BDOS RET ; ;BLOCK MOVE UTILITY ; LIFTER MOV A,M STAX D DCR B RZ INX H INX D JMP LIFTER ; ;THIS SUBROUTINE WILL SAVE THE CONTROL WORD AT ;MEMORY LOCATION MBUFF ; SAVR PUSH H LXI H,MBUFF MOV M,B POP H RET ; ;THIS SUBROUTINE REVERSES THE ABOVE PROCESS ;THIS IS NECCESSARY BECAUSE THE NEEDED CALLS ;TO BDOS CORRUPT THE REGISTERS ; RSTR PUSH H LXI H,MBUFF MOV B,M POP H RET ; ;MENU SELECT ITEMS ; SPEED DB CLEAR DB 'RS-232 CONTROL UTILITY',CR,LF,LF DB 'SELECT MENU ITEMS BY INPUTTING FIRST LETTER',CR,LF DB 'OF DESIRED FUNCTION. ',CR,LF DB 'CARRIAGE RETURN SELECTS DEFAULT VALUE WHICH IS',CR,LF DB 'THE ITEM ENCLOSED IN BRACES: [...]',CR,LF DB 'SELECTING EXIT FROM ANY MENU ABORTS THIS TASK',CR,LF,LF DB 'BAUD RATE SELECT MENU',CR,LF,LF DB '(U)LTRAFAST 19,200/38,400 BAUD ',CR,LF DB '[F]AST 1,200/2,400 BAUD',CR,LF DB '(S)LOW 300/600 BAUD',CR,LF,LF DB '(E)XIT ',CR,LF,LF DB 'INPUT SELECTION:$' WORD DB CLEAR DB 'DATA FORMAT SELECT MENU',CR,LF,LF DB ' DATA BITS PARITY STOP BITS',CR,LF DB ' +++++++++ ++++++ +++++++++',CR,LF DB '(1) SEVEN EVEN TWO',CR,LF DB '(2) SEVEN ODD TWO',CR,LF DB '(3) SEVEN EVEN ONE',CR,LF DB '(4) SEVEN ODD ONE',CR,LF DB '(5) EIGHT NONE TWO',CR,LF DB '[6] EIGHT NONE ONE',CR,LF DB '(7) EIGHT EVEN ONE',CR,LF DB '(8) EIGHT ODD ONE',CR,LF,LF DB '(E)XIT',CR,LF,LF DB 'INPUT SELECTION:$' RTSP DB CLEAR DB 'RTS HANDLING SELECTION MENU',CR,LF,LF DB '(1) LOW DISABLES XMIT INTERRUPT',CR,LF DB '(2) LOW ENABLES XMIT INTERRUPT ',CR,LF DB '[3] HIGH DISABLES XMIT INTERRUPT',CR,LF %DB '(4) LOW TRANSMITS BREAK',CR,LF,LF DB '(E)XIT',CR,LF,LF DB 'INPUT SELECTION:$' DCDP DB CLEAR,BELL DB 'DCD HANDLING MENU',CR,LF,LF DB '[1] RECEIVE INTERRUPT DISABLED',CR,LF DB '(2) RECEIVE INTERRUPT ENABLED',CR,LF,LF DB '(E)XIT ',CR,LF,LF DB 'INPUT SELECTION:$' END R,LF,LF DB ' DATA BITS PARITY STOP BITS',CR,LF DB ' +++++++++ ++++++ +++++++++',CR,LF DB '(1) SEVEN EVEN TWO',CR,LF DB '(2) SEVEN ODD TWO',CR,LF DB '(3) SEVEN EVEN ONE',CR,LF DB '(4) SEVEN ODD ONE',CR,LF DB '(5) EIGHT NONE TWO',CR,LF DB '[6] EIGHT NONE ONE',CR,LF DB '(7) EIGHT EVEN ONE',CR,LF DB '(8) EIGHT ODD ONE',CR,LF,LF DB '(E)XIT',CR,LF,LF DB 'INPUT SELECTION:$' RTSP DB CLEAR DB 'RTS HANDLING SELECTION MENU',CR,LF,LF DB '(1) LOW DISABLES XMIT INTERRUPT',CR,LF DB '(2) LOW ENABLES XMIT INTERRUPT ',CR,LF DB '[3] HIGH DISABLES XMIT INTERRUPT',CR,LF P!MÍxÍ��ÍbÍh͈þUÊãþFÊéþSÊïþ ÊéþEÊà Í�ÍbÍh͈þ1Êöþ2Êüþ3Êþ4Êþ5Êþ6Êþ7Êþ8Ê þ ÊþEÊÃ8Í�+ÍbÍh͈þ1Ê'þ2Ê-þ3Ê3þ4Ê9þ Ê3þEÊÃ|Í�õÍbÍh͈þ1Ê@þ2ÊFþ Ê@þEÊìÍ�ÍP͈ÍPÃxöÃòxöÃòxöGÃ8xöÃ#xöÃ#xöÃ#xö Ã#xöÃ#xöÃ#xöÃ#xöGÃ|xöÃ<xö Ã<xö@Ã<xö`GìxöÃIxö€GÃÒóÓ>2ï!*pÓ>2ïûÉ ÍÉ ÍþÊhÍÉ~È#Ãxå!@páÉå!@FáÉRS-232 CONTROL UTILITY SELECT MENU ITEMS BY INPUTTING FIRST LETTER OF DESIRED FUNCTION. CARRIAGE RETURN SELECTS DEFAULT VALUE WHICH IS THE ITEM ENCLOSED IN BRACES: [...] SELECTING EXIT FROM ANY MENU ABORTS THIS TASK BAUD RATE SELECT MENU (U)LTRAFAST 19,200/38,400 BAUD [F]AST 1,200/2,400 BAUD (S)LOW 300/600 BAUD (E)XIT INPUT SELECTION:$DATA FORMAT SELECT MENU DATA BITS PARITY STOP BITS +++++++++ ++++++ +++++++++ (1) SEVEN EVEN TWO (2) SEVEN ODD TWO (3) SEVEN EVEN ONE (4) SEVEN ODD ONE (5) EIGHT NONE TWO [6] EIGHT NONE ONE (7) EIGHT EVEN ONE (8) EIGHT ODD ONE (E)XIT INPUT SELECTION:$RTS HANDLING SELECTION MENU (1) LOW DISABLES XMIT INTERRUPT (2) LOW ENABLES XMIT INTERRUPT [3] HIGH DISABLES XMIT INTERRUPT (4) LOW TRANSMITS BREAK (E)XIT INPUT SELECTION:$DCD HANDLING MENU [1] RECEIVE INTERRUPT DISABLED (2) RECEIVE INTERRUPT ENABLED (E)XIT INPUT SELECTION:$å!@páÉå!@FáÉRS-232 CONTROL UTILITY SELECT MENU ITEMS BY INPUTTING FIRST LETTER OF DESIRED FUNCTION. CARRIAGE RETURN SELECTS DEFAULT VALUE WHICH IS THE ITEM ENCLOSED IN BRACES: [...] SELECTING EXIT FROM ANY MENU ABORTS THIS TASK BAUD RATE SELECT MENU (U)LTRAFAST 19,200/38,400 BAUD [F]AST 1,200/2,400 BAUD (S)LOW 300/600 BAUD (E)XIT INPUT SELECTION:$DATA FORMAT SELECT MENU DATA BITS PARITY STOP BITS +++++++++ ++++++ +++++++++ (1) SEVEN EVEN TWO (2) SEVEN ODD TWO (3) SEVEN EVEN ONE (4) SEVEN ODD ONE (5) EIGHT NONE TWO [6] EIGHT NONE ONE (7) EIGHT EVEN ONE (8) SERIAL is a 6850 ACIA contol utility similar to OSFIG found on FOG/UTL.001. The 6850 ACIA is the chip which drives the Osborne 1 RS232 serial and modem ports. This menu driven program allows one to set all the available options for this chip. Place SERIAL.COM in drive A. At the A> prompt, type SERIAL Use capital letters when responding to menu prompts. Prompts enclosed by [] are assumed defaults. OTERM4 DOC€€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž�OTERM4 DOC=�‘’“”•–—OTSETUP COMG˜™š›œ�žŸ OTSETUP DOC¡¢£SERIAL ASM3¤¥¦§¨©ªSERIAL COM «¬SERIAL $$$åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå This is the release date of the disk. åTERM4 DOC €@åTERM4 DOC �€OTSETUP COM €˜€#OTSETUP DOC €¡ SERIAL ASM €¤€SERIAL COM €«€SERIAL DSC €­ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååPLNK0124.COM 72 89 1536 12 OTERM4 .COM A8 22 31744 248 OTERM4 .DOC 8D 8B 40576 317 OTSETUP .COM 7F 6D 9088 71 OTSETUP .DOC B5 B7 2304 18 SERIAL .ASM 91 54 6528 51 SERIAL .COM D2 3A 1408 11 SERIAL .DSC 9E 73 512 4 åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå& Fog Library Disk FOG-CPM.067 Copyright (1986) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Modem communication programs (mainly for Osborne 1). Filename Description -06-00 .86 This is the release date of the disk. -CPM067 .DOC This is the description of the disk contents. HOSTCM .BAS FA23 2K [HOSTCM 1 of 2] Allows an Osborne 1 to do uploads and to interface to HOSTCM an IBM mainframe running VM/CMS. HOSTCM .DOC EC9F 2K [HOSTCM 2 of 2] KERMIT .COM 64AA 11K [Osborne 1 Kermit 1 of 2] Kermit-80 communications. KERMIT .DOC 5215 3K [Osborne 1 Kermit 2 of 2] OSPLNK70.ASM B9E5 22K ver. 7.0 [Osborne PLink 1 of 4] ASCII only file transfer program that allows host handshake prompt to be defined dynamically. This uses 7 bit only and is therefore NOT compatible with XMODEM, IMP, etc. ASseMbler source code is included. OSPLNK70.COM 7D6D 3K ver. 7.0 [Osborne PLink 2 of 4] OSPLNK70.DOC 90C9 7K ver. 7.0 [Osborne PLink 3 of 4] OSPLNK70.DSC 96C7 2K ver. 7.0 [Osborne PLink 4 of 4] PLNK0124.ASM 2D9C 24K ver. 12.4 [PLink 1 of 2]  A version of a 7 data bit file transfer program for several computers and modems. ASseMbler source is included. PLNK0124.COM 7289 2K ver. 12.4 [PLink 2 of 2] OTERM4 .COM A822 31K ver. 4.0 [OTERM 1 of 4] Communications program with XMODEM and CompuServe A protocols both available. Supports 7 or 8 data bit, even or odd parity, and offers a function keys and a split "chat mode" screen. Ideal for use with major services that offer "CB" conferences OTERM4 .DOC 8D8B 40K ver. 4.0 [OTERM 2 of 4] OTSETUP .COM 7F6D 9K ver. 4.0 [OTERM 3 of 4] OTSETUP .DOC B5B7 3K ver. 4.0 [OTERM 4 of 4] SERIAL .ASM 9154 7K [Osborne 1 Serial 1 of 3] A 6850 ACIA control utility that allows you to set all options for the Osborne 1 serial port chip. ASseMbler source. SERIAL .COM D23A 2K [Osborne 1 Serial 2 of 3] SERIAL .DSC 9E73 1K [Osborne 1 Serial 3 of 3] er "CB" conferences OTERM4 .DOC 8D8B 40K ver. 4.0 [OTERM 2 of 4] OTSETUP .COM 7F6D 9K ver. 4.0 [OTERM 3 of 4] OTSETUP .DOC B5B7 3K ver. 4.0 [OTERM 4 of 4] SERIAL .ASM 9154 7K [Osborne 1 Serial 1 of 3] A 6850 ACIA control utility that allows you to set all options for the Osborne 1 serial port chip. ASseMbler source. SERIAL .COM D23A 2K [Osborne 1 Serial 2 of 3] SERIAL .DSC 9E73 1K [Osborne 1 Seriååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå'ååååå