IMD 1.16: 31/05/2007 20:11:54 FOGCPM.122 --FOGCPM122IMP244 COM IMP244 COM-08-00 86 IMP244 BELIMP244 DTRIMP244 UPDIMP DOC !"#$%&'()*IMP DOC+,-./0123456789:IMP DOC!;<=>?-CPM122 DOCIMP INF@ABCDEFGHIJKLMNOIMP-DISKNOT PQIMP-OVL CUSRSTUIMP-OVL LST*VWXYZ[I2FUNC COM\]^I2FUNC DOC_`I2LIB COMabI2LIB DOCcdI2NM-2 ASM1efghijkI2PR-1 ASM@lmnopqrsI2RV-4 ASMtuvwI2VB-2 ASMxyz{MLOAD24 AQM|}~MLOAD24 AQM<MLOAD24 COMThis is the disk name. %TEFNLPRYZ))>7)((,^ç'@-÷-}.Û.224!/3/uC/}Version for Datapoint 1560 modem port 28H - Irv Hoff (W6FFC) Los Altos Hills, CA 94022 ͌͒>=)͒>7)>)>B)>N)>):dnҝ}Input Baud Rate (300, 1200, 2400, 9600): ̀q̓300̓1200̓2400̓9600}++ Incorrect entry ++  d> >2>>2>G x  2 2 2H!"H!H~*Ow#!H͗3! N'G".0GB".'G 7>$nG N} Enter library code or phone number, Hit RET to abort this function now or CTL-X quits while dialing or ringing: H̀!H~2 :H/̉ ,̌ v2 : Ÿ : 2Hn!H~A7 0 7 *ï! "{L~ʯ B"Hp.!H^#~-#.t]!H~^#Ͷ~ʯ}-ʟ-ʗG:Ÿ ͌#y ͌b} - try #*H#"H-> -bÏ1J2 :H} Redial? (C/Y/N): .ͷ-YC>2Hͷ-} CONNECTED: :H} - any key for terminal mode  -l-͒_>-]-Gx*ʩ#ʩ,ʩKʩTʩWʩ0:͌Æ} ++ Bad library number called ++ ͷ-1J2H&6:Tx<! >! ~$-Gͅ#8> G-:͒!q͏͒--^G:x^  ͌ ͒͆bP!6 #n:‹:Ģ:ğEͷ-!:*l:*i͏:!7Ï! ::2^![Ï! :!a͏! : ͒!hÏI # #O23121111212 ####$D#$#I # #O23121111212 ####I $ATE1Q0V0X1 ####$ATV2 ###$ATM3L1 ####ATE1Q0V0X4 ####$ATDT#$ATH0 #$ATS0=0 #$+++$8~$#‡bËG͌#ui!Jʵ8͆һz™͑ ͆+ڵw#õ:< 21W 23 255 : : 26b 27 28 210F 243b 260 261w 2B 2HҶ2D 2Rw 2Aҟ 21% 225 23F 2L 2F 2T 2Eb }answer, <2 :L 1% 25 3F :L Ï}busy! : G͒}dial, Ï}abort : G͒: : }on line}on 300͜}on 1200͟}on 2400͢:0F % }- no dial tone}ring, >2 Ï2 >2 2H@!HH.: <<2 O:Hҷ >O2 !H xxxxxxx,,,,,,xxxxxxxx,,$xxxxxxx,,,,,,xxxxxxxx,,$A=Norman Beeler.....1-408-245-1420B=Rich Berg.........1-618-359-4446C=Robert Blacher....1-202-254-2008D=Brian Callahan....1-718-625-5931E=Bob Clyne.........1-313-759-6569F=Bill Earnest......1-215-398-3937G=Norm Gregory......1-206-325-1325H=Dave Hardy TCBBS..1-313-846-6127I=Jeff King.........1-408-247-2853J=Kim Levitt........1-213-653-6398K=Tim Linehan.......1-206-357-7400L=Jim Lopushinski...1-403-484-5981M=Trevor Marshall...1-805-492-5472N=Wayne Masters.....1-408-378-7474O=Paul Matlin.......1-301-661-2175P=Dave McCord ZCPR3.1-415-489-9005Q=Byron McKay.......1-415-965-4097R=Dick Mead.........1-818-799-1632S=Chuck Metz........1-408-354-5934T=Al Mehr...........1-408-238-9621U=Jud Newell........1-416-232-0442V=George Peace......1-717-657-8699W=John Riehl........1-713-488-5619X=Gary Shaffstall...1-303-985-1108Y=Murray Simsolo....1-516-825-8465Z=Larry Snyder......1-305-677-80860=John Sojak........1-312-941-00491=Alex Soya.........1-305-727-03312=Ken Stritzel......1-312-983-51473=Henry Trujilio....1-207-443-46574=Bill Wood.........1-619-256-39145=Tom Vande-Stouwe..1-516-567-82676=Spare.............1-xxx-xxx-xxxx7=Spare.............1-xxx-xxx-xxxx8=Spare.............1-xxx-xxx-xxxx9=Spare.............1-xxx-xxx-xxxxDIR DIR *.* $U0AD KMD R KMD S XMODEM R XMODEM S BYE RBBS (vacant) Nice chatting, see you again soon... !9"J1J!p."@I!p."BI͖5Ͷ. :H!T͛. IMP v244 modem pgm (type M for Menu) Copyright (c) 1985 Irvin M. Hoff eE&61J:HCt.2H2H:HD;-MP6RST’2H2HE¡2H2HL°2H2H͓@&6*"-"-"-!" ͬB2MI+!:2? @26>^2626>E26>S26>C26]2H  4!fH (6#͓@&6:lH>2iH:HCDEMLTG:H_5xSoR´:fH:m xR€2fH͛.++ Enter primary option plus file name ++ &6͛. ++ Bad option ++ 3:fH>B2fHÍ@2H:Hl=:] 2H2H=Q(!PI+"!\PI .PIPI!N"H>2H2Hl -ʬ-G[:[x:H{2Hx0{:{2Hx\:H2Hx_G : :$::¿:H/2Hͷ-ͷ-,ͷ-ì:;-::x:Hʬ2Hl=:2H:¬2Hì:x2HìnGì2OI:fH•͛.Ready to send in batch mode :Hw :GIwͪ. ++ Ask again, file not found ++͈Ҍ>B2fH:H'H,ͷ-ͷ-:] (K)`)):hH´<2H2H'%+&X&͇&r&ü>++:H<2HH,͇&H,:mH2H:2H2H:fH3>2OIW>>B2fH:H'H,:] (]:HP> -|ͼ":H]ͷ-Q((:fHʎͪ.File open, ready to receive :Hʻ:fH£:Hʶͪ.CRC in effect >Cͪ.Checksum in effect >͛.Waiting.....++:H>K++4# 1(-L**H|${*ͭ)H,>++!qI+"!l+"͛. File name to send? (CR to abort): H2:H H!qIR/qI7͛.Want to include time delays? (Y/N): .Nʭ2Hͷ-HqI=!.++ DISK READ ERROR ++$Y»͛. (in Terminal-mode now) =͛. [Transfer completed]͛. ++ FILE NAME ERROR ++ 0!H~z-t-#^ Œ:Œ-:H¢–ͺèŒ-= :H: ŇG: ŇOdA: =33--:iH!]2HI N# $:iH*H͛. Received # -͛. :HI<2HI p~ -*H|}Я2H~ >.-Z*-|:Hͪ. Awaiting name NAK͇&!GI5*KI\ ."KI>++7b2H<'*'C(>2H!GI5*KI\ ."KI*H!]~[ 8/+>_/#=#8~ [>.~ [/#I6,\#\*}"~N2H2H>++&+&c&*¡:mHʜ>2H2H(ͪ.++ CRC error ++ :H<2H t'*Hw2H2H>++&+&c&7* !]~++*&#>++Q*&>++>u++͛. ++ ERROR sending name ++ C++:H<2Hڔ'*W*/·!"H*H*w#*͋5·]*H~P.6_$>//#~A>> 6#~P/#A:] 7:iHͪ. File name: *H~/-#p*~N|ʯ"Hͷ-ͫ3ͪ.k) Recv time: !4"055c4ͷ-2Hͪ.++ CRC error ++ ͪ.++ Wrong header type ++ ͪ.++ Time out receiving filename ++ *>++:H<2H!ڱ'>2>I!]*>2=I*2=I{ͪ.Time out receiving filename øʗw#}ʸ=2>IyQ++*ʠ ʠ ʠ!\-"ͪ. ** Checksum error ** 2>I32>I2>I'>++*'>2H2GIA"!"KI͘"!\IR/2^#\*}|):f)*KI\ ."KI!GI4)!JI5!"KI͛. ** Memory buffer :Hʚ͛.open ** ;͛.closed ** ͛. ** Memory buffer available ** GJMP)SV*ì~=#͆---G:ͷ-5͛.Printer buffer is :HR͛.ON ͛.OFF !=h> #h2Hì͌:H‰:Hʬx- ͐ > ¬:H§:= x=3==G:x ==x- ͐ :H͌> =:H= :H*Hp#"H>  > -"|!$ >=͐ !Mv >2H*H[!!Nk M w-G͐ "#M "H>=͆ ҈ z w#z :H*Hp#"H:II̥ >=!Mv z2FI:FIW! M w-G "# "H!"H>=!^#"H:IIʸ !!"H"H*H*H|}:2II!?p.DMJ!3 x>!7*H6}l&)>oN}!:H!!"PI!"ѷ!+|}!ͭ)++++++!.++ DISK FULL, SAVING PARTIAL FILE ++$;Fí!;F͡(͛. ++ Nothing to save, erasing file ++ :Hg.>2H,>;-6# 6 #0"6#9"!JI6!HN!H 6 !HF#ʔ"~ Y"#ʔ"~ d"";I+#ʔ"~ t":JI<2JI#ʔ"~ ʆ"t"6 *;II~ ʭ"#à"#~ ʭ"";I!Ip \}1 ~"#~+] .!e~w#~w\!\l .!u6B#6A#6Kl!l6\>2H' *l$O7>2?I2=I{yd#*Gi#G2?I2=Ix$$#zL#:?Il$:iHʴ#ͷ-ẍ́.͛.H received not SOH - %':H>#:H>#>C++:H#>K++:H<2H 9#':H$*9#$9#1Jͭ)͡(͛. ++ RECEIVED FILE CANCELLED ++ ++ UNFINISHED FILE DELETED ++ ,:H$*9#$9#:iHʌ$:Hʌ$͛.++ Timeout %͒$ô#:H:H:Hȯ2H2ͪ. ** Switching to Checksum mode **  2H$2Hx2H*l$W*l$/!%:iHʴ#͛. ++ Bad record # in header ñ#z2H>2H!"H:H?%*H*l$w#zB%2H:H{%Q*l$«%:HG:H%<'*l$}%͋5j%:iHʴ#͛.++ CRC error ñ#:iHʴ#͛.++ checksum error ñ#4#*H&-͛. ++ :H ':H>%>++:iH&͛. Sending # *H-͛. :H++:H/++>2H!"H:HE&*H~++#{H&2H:Hc&y++*H|++}++:H&*H"H>2?I2=I*GҞ&2?I2=Ixʻ&M'‰&:?I,':iH':H'͛.++ x&̈́.͛.H&͛.NAK͛. received not ACK - %:H<2H !. ++ SEND-FILE CANCELLED ++$͛. ++ TIMEOUT - no ACK - %'*>ڻ& 'û&:H:Hҏ':H*H*H_5:>Fʍ'>*د2Hͪ. Aborting 1k blocks, too many ACK errors :iH--1J*'>++++++*'>++++++>B2fH2H2H:HR$͛. ++ FILE CANCELLED ++ ,*H#"H:HG(*H"H!\ #~?ʩ(V(:fHʡ(\<͛.File exists - erase? (Y/N): .ͷ-Y&6\͛.++ NO WILDCARDS ALLOWED FOR TEXT FILES ++ &6͛.++ NO FILE SPECIFIED ++ &6\2Hy*!.++ FILE READ ERROR ++$*H:H\*"H:Ho*:Hs*:H<2HOͯ*:HON\Ÿ!! „*2H!N"H:Hyʻ*y: !=I^*BI**@I*z**'73*.+!>I^*5O:jH +:lH%+:H%+͂-':kHA+:lHF+:HF+͂-5OM+='*v+8,C}+K,ʔ+W+'*+{}+K,+:fHʽ+2H2Hͪ.Got checksum request ͪ.Checksum not used for batch mode W+:H,ͪ.CRC request received >2H2H:mH+2H2Hͪ.1k request received *W+'g+:fH,:iHʵ, !,>w#], !],>ʃ,~ y,#xʑ,k,~ ʑ,>.k,͛. ͛. Transferred !\-"!xHH.>2H:OIA'͛. [Transfer completed] :nHA:gH;-2H2H2H2H2H:lH'-/2iH2lH!iH~6Q&6:H&6=͛. wait... :b-͌͒we-\͛. << DISCONNECTED >> 5 ʪ- ʪ- ʪ- ڛ-ڪ->(ͪ-̈́.>)ê-_> -> -O -H0 . |-{0ͪ-/>-ͷ->2H:fH -':MI_ͮB xN.-:H2HĵF:2<Y*J: =v.! !͍. ږ.0ê-~ʨ.ͪ-#Ü.~ʼ.:iH~Ī-#ë.~#.!l\.2|2h~.> #.:<. .2_-/-A[ a{_ !͛.ESC--Û.x=H!\R/͆E/D//#^#6 /0 ʲ/ ʊ/ 0 ʲ/ ”/Ê/ /0 ʲ/ 0#0 06# > // > //w#/:/_@w# . 0w#0~*%0#0(0:0~*60#*0:06?#:0ͳBA2121U0 H!\R/!qI+":l2qI:m b1p1͉1:2JIqI<¯0͛.++ FILE NOT FOUND ++1}1#0͗3͗3͛. . qI<1:JI=2JI̷-0:2JI1͛. : ï01##~21#~21##^#V"1*1#81W+}I1z31/1i`:1Y1)=T1-1/>? !rIw#i1!mrI ͗3=ƀo&:qIʡ1=_@2121͛.Drive : k bytes free on drive : $ͷ- }0_.!~w+1 1*Y1͸2կ-/ ʰ2L2L2}2ʈ2ʰ@G#4+~#ڦ2px -#2#~ws2+~6 2>-> ->-24>-2>#-ͷ-2G>#-ͷ-x2-š22>-52ͷ-F##> w#2~22#2#27#2h:H13>2H!\I ͗3:\2I!I\ ͗3\e3!I\ ͗3\!I\ ͗3\<7n32H=Ɓo&I ͗3] ͗32h2|><3~# x 3͛.File open: *H-͛. records (_5|`i3#-:OI͛.k) Send time: :(4!4"055c4͛. - 1k size Send time: !4"055c4͛. - 128 size File open - ready to send i`-͛.:U5-͛. at ́4!4:_ :ڠ4͛.0͛. bps 6eJ E.$  0VJ3&  110$300$450$600$710$120$240$480$960$1920$!45!4:_^#V*H_5!4:_~s5~5~5~5~5&}<o*H|>!K!yg)ұ5>g>!o¥5r$s%# ›5*HO!K ~W$^"H:H&6͛. ** File still open, use DEL, DIR, WRT, E, L or T ** *62H!xHH.!oHfH .2>I2H2H2=In?nG͛. Single Letter Commands ? - Display current settings ^ - Function key intercept character, then (0-9) M - Display the menu E - Terminal mode with echo L - Terminal mode with local echo T - Terminal mode ^Z - Clears screen (command mode only) R - Receive an 8-bit binary CP/M file S - Send an 8-bit binary CP/M file COMMAND: R (or S) FILENAME.TYP R and S can use the following subcommands: B - Batch transfer, can use wildcards (e.g., *.*) D - Disconnect when done K - Manual request for 1k transmissions Q - Quiet mode (no messages to console) V - View ASCII files on CRT during a file transfer X - Inhibits auto 1k request to sender Z - When done, disconnect, go to CP/M For copying text to disk use T (E or L) FILENAME.TYP EG͛. Three Letter Commands BYE - Disconnect, then return to CP/M CAL - Dial number CPM - Exit from this program to CP/M DIR - List directory and space free (may specify drive) DSC - Disconnect from the phone line ERA - Erase file (may specify drive) LOG - Change default drive/user no. (specify drive/user) and reset disks i.e., LOG A0: or LOG B: (user # unchanged) SET - Set modem baud rate SPD - Set file output speed in terminal mode TBM - Toggle MODEM7/KMD batch mode selection TCC - Toggle CRC/Checksum mode on receive TLF - Toggle LF after CR in "L" or "T" mode for a disk file TRB - Toggle rubout to backspace conversion The following are terminal text buffer commands: DEL - Delete memory buffer and file WRT - Write memory buffer to disk file EG͛. Local Commands while in Terminal Mode :#/ - Exit to command mode :#/ - Send file to remote system :#/ - Send log-on message :#/ - Disconnect from the phone line :#/ - Turn printer on (or off) :#/ - Clears screen, terminal mode :#/ - Stop copy into buffer :#/ - Start copy into buffer Start and stop may be toggled as often as desired. A ";" at start of line indicates buffer is copying. X-off automatically used to stop input when writing full buffer to disk, X-on sent to resume. ͷ-:Hʗ?NH͛. Bytes of buffer free A-ͬBʮ?&o-͛.>>COMMAND: 2HH2:H^ʹ@?ʕG q?KDH2BYEҎA2CPM<.2LOG"B2WRTҖFͷ-2DIRұA2ERAA2SPDC2TBMүD2TCCҼD2TRB'E2TLFҗE2SETXF2DELiF2DSC;-2CALt:H!_H9Gڍ@:/ T͓@n?͛.++ Invalid command ++ nG1J×?:nG͛. SPECIAL FUNCTION KEY TABLE AA>E->S->CA͛.CTL-@-͛. current function key intercept character ! #~1:UA>0-> -#~yA sA͛.]A-]Aͷ-JA} n?\w͛. << Exit to CP/M >> <.2EIB0:EI_n?H!\R/.:] ʍ@\<B͛.++ File not found ++ n?\͛.File erased n?:H¸B:H 6BͳBAAҍ@2EIͬBG:HqB}B:HqBB͌B :EI_:NI_ͮBn? yB:VB͢BOxGxҍ@2NIH2:H 0 Í@ ͛.++ Terminal mode file open ++ ++ Use WRT or DEL before LOG command ++ n?͛.Delay between chars. (0-9): -5C--BD UC0 ҍ@2 ͛.Delay at end of line (0-9): -uC--BD ʓC0 ҍ@2 ͙Cn?͛. Char. delay (terminal file mode) is: :  C͛. o&-͛. ms. per character Line delay (terminal file mode) is: : o&-͛.00 ms. per CR character ͛. :H:jD:H:jD:H::HSR:HAҍ@_:H:n?0žD:H:—D>ãD0ڪD&ҍ@_ͮBn?>×D:H/2HDn?:/2Dn?:HD͛.MODEM7 batch mode ͛.KMD batch mode ͛.Mode: :E͛.CRC ͛.checksum :/24En?:RE͛.Rub is backspace ͛.Rub is rub ͛.Use ESC before local command in terminal mode :/2ͤEn?͛.LF :ºE͛.NOT ͛.sent after CR in "L" or "T" for a disk file ͛.Modem speed is: ́4÷-͛.XOFF testing used in terminal mode file output H2:H ?GN>xY>Í@>2HbEn?:H G:QI GPI2H2H!PI+"!N"Hn?:H G͵F2H2H!PI+"!N"Hn?:QI R!PI> -> -!QIF~!F>.-F͛. closed 2H~ G-#F͛. ++ No file open ++ n?> > > F#DG:G7͛.[more] -PG-bGð@nGͷ-n?: ʄG ځG>--> -> -GnG͛. Current Settings DD4E,E͛.Terminal mode file buffer is :HG͛.in͛.active Unused portion of buffer is NH͛. bytes cEFͤE͙C͛. n?*H믓o|g-SRTELMBDKQRSVXZBDKQRSVXZNNNSUBJECT : IMP244 bell suppression DATE : 08 Nov 85 FROM : Irv Hoff Some people don't want to hear the bell ring on incoming text copy when using a modem program. (Some systems do seem to ring the bell a lot, especially when reaching the end of a line, etc. in edit mode.) If you do not want the bell to work on incoming copy in terminal mode make this change with DDT, then save 72 pages: (ORIGINAL) 1FBC CA 3D 14 (NO BELL) 1FBC C3 00 0B 0B00 CA 3D 14 FE 07 CA 3D 14 C3 BF 1F You might want to call this by a different name, while you try out the results, etc. - Irv Hoff W6FFC Los Altos Hills, CA 94022 (415) 948-2166 (voice) From : Irv Hoff Date : 01 Oct 85 Topic : IMP244 and DTR Nearly all modems permit using an external DTR voltage on their RS-232 pin 20. This is the method by which the operator can intention- ally disconnect the modem when finished. By either shutting off that DTR voltage (or momentarily dropping it), the modem disconnects. Some computers (such as the Osborne OS-1) do not have this ex- ternal voltage without making an internal change to the wiring. A few modems (notably the Anchor Mark XII) do not permit using this external voltage. They do, however, use a software feature that can disconnect the modem: (1 second pause) +++ (1 second pause) IMP244 now has an option not previously offered. I used one of the spare bytes (address 011E, named SPARE2 on each overlay) to control this option. If left 00, IMP drops DTR and expects you to have pin 20 of the computer hooked to pin 20 of the modem. This disconnects the mo- dem almost immediately. If you have a modem that does not support pin 20 DTR (or for some reason you have not - or prefer not to hook up this wire) you can put FF (anything other than 00) at byte 011E. You can put this byte in the overlay itself at the label called SPARE2. I suggest you then make that read NODTR rather than SPARE2. You can also make the change to IMP244 with DDT, then save 72 pages. Changing this byte 011E to FF (or anything other than 00) then substitutes the "pause +++ pause" for the DTR routine. It disconnects the modem from the phone line as does dropping DTR - just takes somewhat longer is all. (This only works for modems that use the Hayes 'AT' pro- tocol.) - Irv Hoff Los Altos Hills, CA 94022 (415) 948-2166  bytes (address 011E, named SPARE2 on each overlay) to control this option. If left 00, IMP drops DTR and expects you to have pin 20 of the computer hooked to pin 20 of the modem. This disconnects the mo- dem almost immediately. If you have a mode;*********************************************************************** ; ; 10/01/85 Fixed SMRESUL5 so autodial works normally with the Anchor ; v244 modems. Fixed DONETD to call J$DSCONT if using modems with ; no DTR for disconnect. (Set byte 011EH to other than 00 in ; that case.) SPDMSG now goes 0-36 ms for delay between char- ; acters when sending ASCII files in terminal mode instead of ; only 0-9 ms (needed by Osborne OS-1, etc.) File length now ; stored at end of header in hex rather than ASCII, saved 53 ; bytes. Batch receive shows file name, length in records and ; 'k' and time to receive. (Same feature added to KMD07 - no ; longer shows file length at all, with earlier versions of ; KMD.) Fixed STDRV to permit using area 1, which it had pre- ; viously ignored - although it allowed selecting all other ; user areas. - Irv Hoff ; ; 09/07/85 Found the one of the flags was not being reset after a batch ; v243 file was received. This would prevent subsequent files from ; being received if the initial 'C' was garbled. (This goes ; clear back to when CRC was added to MODEM7 in October 1981, ; that flag was never reset for batch receive.) Also removed ; a "CALL DSCONCT" which slowed disconneting with ESC-N ; or DSC. - Irv Hoff ; ; 08/27/85 The YAM receive routine did not properly handle filenames ; v242 with 8 characters and no extent. Our system of storing file ; length turned them into read-only files to which you could ; not write. Other minor changes. ; - Irv Hoff ; ; 08/20/85 Added YAM batch mode. Use the command: TBM to select MODEM7 ; v241 batch mode if preferred. Uses some routines adapted from ; work done by Dennis Vallianos. ; - Irv Hoff ; ; 07/17/85 First version of IMP2, adapted from MDM740. Supports 2400 ; v240 bps modems using auto-stepdown Racal-Vadic 2400V protocol or ; Hayes 2400 protocol. Companion overlays start with I2, such ; as I2DP-1.ASM for the 8251 with CTC implemented into this ; version. These overlays only work with IMP2. ; - Irv Hoff ; ;***********************************************************************  "CALL DSCONCT" which slowed disconneting with ESC-N ; or DSC. - Irv Hoff ; ; 08/27/85 The YAM receive routine did not properly handle filenames ; v242 with 8 characters and no extent. Our system of storing file ; length turned them into read-only files to which you could ; not write. Other minor changes. ; - Irv Hoff ; ; 08/20/85 Added YAM batch mode. Use the command: TBM to select MODEM7 ; v241 batch mode if preferred. Uses some routines adapted from ; work done by Dennis Vallianos. ; - Irv Hoff ; ; 07/17/85 First version of IMP2, adapted from MDM740. Supports 2400 ; v240 bps modems using auto-stepdown Racal-Vadic 2400V protocol or ; Hayes 2400 protocol. Companion overlays start with I IMP (NOTES ON HOW TO USE) Copyright 1985 Irvin M. Hoff W6FFC 01 OCT 1985 INTRODUCTION: ------------ NOTE: THIS PROGRAM SUPPORTS ANY 1200 OR 2400 BPS MODEM INTENDED FOR AUTO- DIALING WITH THE "AT" PROTOCOL OR THE RACAL-VADIC PROTOCOL. IT ALSO SUPPORTS THE PROMETHEUS PROMODEM EXTENDED-"AT" 1200 BPS PROTOCOL. NOTE: IMP v241 adds KMD-type batch protocol in addi- tion to the MODEM7 type. It comes up in KMD batch. Use the command TBM to toggle batch mode to MODEM7 type if needed. RCPM systems with KMD/BYE500 support the KMD-type batch mode. The IMP modem program enables a computer to communicate with another computer. This is normally done by using standard telephone lines but with special audio tones sending serial data. Three common speeds are used, depending on the facilities available -- 300, 1200 or 2400 bps. ('bps' stands for bits per second. One character is 10 bits per second, normally. It may be 11 bits if two stop pulses are used.) WHAT IS A MODEM? --------------- A "modem" is used which provides these audio tones. This is an acronym for "modulator and demodulator". The one section (modulator) provides the audio tones for sending over the telephone line and the other section (demodulator) then converts those audio tones back to dig- ital pulses the computer uses to receive the incoming data. The modem itself is a hardware utility, usually costing around $75 to $200 for a typical 300 Baud device and from $200 to $450 for a system offering 1200 Baud as well as 300 Baud. The newest modems add 2400 bps and currently can be obtained from $435 to "way on up". (The so-called "list prices" are rarely paid even with single-unit purchases.) Some modems are intended for plugging directly into the computer while a vast majority are external devices that connect to the computer through a serial I/O connector. These are often designed to sit under the phone itself to minimize space required. An external modem has sev- eral advantages as most have numerous indicator lamps telling the user what is happening. This also makes it far more simple to use the modem on any of several computers the user may have. AUTO-STEPDOWN, A NEW MODEM FEATURE -------------------------------- The newer 300/1200/2400 bps intelligent modems have the ability to determine the maximum speed (baudrate) at which the system they are calling can use. They adjust themselves accordingly, without operator intervention or knowledge. They send a "result code" back to the local computer telling it what speed they now have. This information can be used to automatically set the local computer to the same speed. A mes- sage is displayed telling the operator what speed he has. If the operator has a reason for using less than the maximum speed to which another system might respond, he can initially restrict the modem from attempting to connect at a faster speed. Example, Compu-  serve has modems that will answer at either 1200 or 300 bps. If reading and answering messages "on line in real time" many callers prefer to use 300 baud (they cannot type even that fast) rather than 1200 bps which is nearly twice the cost. IMP takes advantage of this automatic stepdown feature. It has the modem attempt to connect at 2400 bps. If that is unavailable at the answering end, the modem tries for 1200 bps. When connected, IMP shows the speed currently in use and automatically adjusts the local I/O to match. (IMP is the first and currently the only free modem program to take advantage of this new modem feature.) The operator can easily select the "SET" command should he wish to override the automatic "start trying at 2400" and have a specific speed dialed (such as 300 baud for Compuserve for hand typing messages at lower cost, etc.) The automatic feature is reinstated by either using the "SET" command for 2400, or merely calling up the modem program from the disk once more. Note: The US Robotics Courier auto-steps from 2400 to 1200 but not to 300, as do most of the other new modems with 2400 bps. PURPOSE ------- The program discussed in this guide allows each computer involved to directly control its own modem, converting DC pulses into audio tones which are sent to (or received from) the telephone line. (The standard 1200 baud transmissions use "DPSK" (dibit phase shift keying) instead of "AFSK" (audio frequency shift keying). For short distances, no modems are required as the computer can provide the necessary digital voltages. This discussion is centered around systems intended for use over distances ranging from several miles to literally around the world. FEATURES: -------- A program to communicate with another computer can range from very simple to very complex. Although IMP has a number of quite useful fea- tures (some of which other modem programs do not currently offer) it is one of the easier programs to learn and use. A list of some of the features offered by this particular program include: 1) Ability to talk with another computer via keyboard at each end. (Called the "terminal mode".) 2) Ability to operate a remote mainframe computer such as TYM-SHAR, or special data bank systems now commonplace. This includes "bulletin board" systems for receiving, sending or just read- ing messges or other types of information. 3) Ability to upload (send) or download (receive) programs from other computers whether TYM-SHAR, data banks, remote hobby systems or just another individual in another location. 4) Ability to automatically transfer a group of files (called "batch mode". Two popular methods included, KMD batch mode and the older MODEM7 batch mode. 5) Ability to copy incoming information on a printer. If the print- er is too slow to copy the data directly, the extra characters back into a large storage buffer until they can be printed. 6) Ability to copy incoming data into memory for automatic transfer to a disk file. 7) Accomodates any computer clock speed up to 25.5 MHz. in 0.1 Mhz. increments for uniform results. (The clock speed is actually of modest interest, it is only used for setting timing loops.) 8) Advanced type of error detection (CRC or Cyclic Redundancy Check) using automatically generated high-speed lookup tables. 9) Ability to send any of 10 different pre-programmed function keys. (These keys are very easy to reset, using either of two exter- programs provided.) 10) Automatic disconnect from the telephone line when using CTL-N, "D" or "Z" as an option during file transfer. 11) Automatic or manual 1k protocol for increased throughput and effi- ciency over the 128 character blocks long associated with such programs. 12) Supports 1200 or 2400 bps modems using the Racal-Vadic or 'AT' protocol developed by Hayes. These features basically include automatic dialing and redialing until the system being called finally answers. a) Automatic selection of a particular phone number from a library of names and numbers. (These phone numbers can be very easily changed by using either of two ex- ternal programs that are provided.) b) Automatic dialing for alternate long-distance systems (where auto-dialing touch-tone modems are used). c) Entry of a hand-typed number. Although it might be as simple to manually dial the number as hand-type it, it can then be automatically redialed indefinitely. d) Auto-linking of 1-32 different numbers for continuous dialing until one of the group is available. e) Choice of beeping continuously when connected to get the operator's attention, or beep one time and go to terminal mode immediately to catch UNIX or IBM signon messages that assume you can copy when connected. f) Automatically adjusts the terminal speed to that of system answering the phone.   USING THE PROGRAM THE FIRST TIME: -------------------------------- For now, we shall assume the program is ready to use on your equip- ment. (Normally the user must make some modest changes to the program before it can be used. This includes changing the port numbers and some other personal options. These will be covered later in the section that describes how to adapt it to your equipment.) When the program is brought up is shows this display (if using the PMMI modem): IMP v240 modem pgm (type M for Menu) Copyright (c) 1985 Irvin M. Hoff Version for Datapoint 1560 modem port 28H Modem speed is: 2400 bps B>>COMMAND: x (Your version would have a different line 3 once the ap- propriate overlay was added and the baudrate might show show 1200 if you do not have 2400 available.) The cursor stops at point "x:" waiting for some sort of command. Typing a "M" followed immediately by a RETURN, shows the first page of a 3-page help guide. Several commands are similar to those already used for CP/M, such as 'ERA', 'DIR' and the ability to change disk drives and user areas. This adds tremendous flexibility while remaining in the modem command mode. To change disk drives, just say: B>>COMMAND: A: and you are in the same user area on the A: drive. You can also say: A>>COMMAND: A12: to change user areas. When finished (using this example), say: A12>>COMMAND: CPM or A12>>COMMAND: BYE and you will go back to CP/M with the original drive and user area. OPTIONS: ------- There are 6 primary options and 9 secondary options that may be typed on the command line. In addition there are over numerous commands ranging from single character to three characters that can be used (such as DIR, ERA, LOG, etc.) Those are listed on the menu. Primary Options: E, L, M, R, S, T E = Echo mode (special type of full duplex) L = Local modem (no remote echo, half duplex) M = Menu display showing features that are available R = Receive a file from remote facility S = Send a file to a remote facility T = Terminal mode (full duplex, echo provived remotely) Secondary Options: A, B, D, J, O, Q, R, S, V, X, Z B = Batch mode -- allows automatic multiple file transfer (This has been normally only used from modem-to-modem as few RCP/M systems have had batch capability. This is now changing with the introduction of KMD v04 and BYE501. Batch mode allows the use of wildcards to simplify typing numerous file names.) D = Disconnect when done, stay in IMP K = Manually initiates 1k protocol in send mode Q = Quiet mode, special purpose feature rarely used except if operating through a "BYE" program. R = Receive remote file (8-bit binary) S = Send file to remote system (8-bit binary) V = Visual inspection of an ASCII file being transferred. Not often used as most ASCII files are now "squeezed" for minimum transfer time and disk space. X = Inhibits automatic 1k request, transfers 128 char. blocks Z = Exit to CP/M when finished, disconnect from phone line Although you can get the following information from the help guide in IMP itself, showing it here will allow us to discuss the various fea- tures in somewhat better detail. - - - - - - - - - - - - - - - - - - THE HELP GUIDE, PAGE 1: ---------------------- Single Letter Commands ? - Display current settings ESC - Function key intercept character, then (0-9) M - Display the menu E - Terminal mode with echo L - Terminal mode with local echo T - Terminal mode ^Z - Clears screen (command mode only) R - Receive an 8-bit binary CP/M file S - Send an 8-bit binary CP/M file COMMAND: R (or S) FILENAME.TYP R and S can use the following subcommands: B - Batch transfer, can use wildcards (e.g., *.*) D - Disconnect when done, return to command mode K - Manual request for 1k transmissions Q - Quiet mode (no messages to console) V - View ASCII files on CRT during a file transfer X - Inhibits auto 1k request to sender Z - When done, disconnect, go to CP/M For copying text to disk use T (E or L) FILENAME.TYP [more] The single letter commands may also be used on the command line when the program is initially executed. - - - - - - - - - - - - - - - - - - DISCUSSION OF HELP GUIDE PAGE 1: ------------------------------- There are basically three types of commands that may be used with this program: 1) Single-letter commands shown on page one. 2) Three-letter commands shown on page 2, and 3) Control- commands shown on page 3. Going down the list: ? - shows current parameters. As these are closely tied in with some of the other options, we shall show a typical example later in this discussion. ESC - shows the function key intercept character. This may  be easily changed using an external program called I2FUNC.COM. NOTE: typing ESC while in the command mode will display all the programmable function key definitions with the exception of the log-on string which uses CTL-L. M - shows the menu a page at a time. You may abort after any page is shown with a CTL-C E - terminal mode with echo. When talking with another terminal also also using IMP (or a comparable program), one of you must send an 'echo' back so you can both see what the other person is typing. This is needed for full-duplex operation. Usually the person originating the call will type "E" instead of "T". However either may do this. If "both" use the echo mode, the program usually starts typing a string of feedback characters since both computers are re-sending the same character over and over. You can stop this by just returning to command mode (type control-E) and then retyping "T" rather than "E". L - terminal mode with local echo. Shows what you are typing but does not send an echo of the other person's typing back to him. Can be used at both ends, in place of one person using "E". Both "E" and "L" are useful at times for some types of modems that do not use full-duplex, or for some main frame units that run half-duplex. The combination of "T", "E" and "L" gives an excellent choice to use on various systems. Normally the "T" mode is sufficient except when talking with another person and then the "E" mode at one end or "L" mode at both ends will provide normal results. If the remote system does not supply a LF after a CR, you can get that from the 'TLF' command. T - puts the program directly into "terminal mode", allowing it to send from the keyboard to the other computer, and to copy any- thing coming from the other computer with the exception of file transfers (use "R" to receive those). R - used only for receiving files from the other computer. These are  usually sent in binary form with either checksum verification or more commonly, CRC (Cyclic Redundancy Checking). If ready to receive another file, you have several choices, depending on the program used by the other computer. After notifying him you are ready (or will be very shortly), you can type: B>>COMMAND: R HELLO.DOC and when he starts to send, you will receive the program which then goes directly to the disk. You could also have said: B>>COMMAND: RB This is called the "Batch mode" and is an extremely useful way to receive programs automatically, from another computer using a similar program. He will use the batch mode for sending the programs and that automatically provides the file names at the receiving end. In this manner, large numbers of programs can be transferred completely automatically, including full disks. (Assuming you care to pay the toll calls for the time it will take!) NOTE: The ideal way to receive batch mode would be: B>>COMMAND: RB (also just R is enough) since you may not know in advance how many programs he will be sending. NOTE: While receiving a file, any errors will be shown on the console CRT, indicating that portion of the program is being repeated. If the file finishes transferring normally, it will have been received error-free. Those error notices are merely to let the user know a momentary problem caused a resend. The error messages indicate phone line quality. S - used only to send programs. Similar to "R" but sends instead of receives. If the other system is ready to receive, you could then type: B>>COMMAND: S HELLO.DOC It will tell you how many records are involved and how many minutes and seconds it will take to send the program. If the other system is ready to receive, it starts the transfer, showing how many records have been sent. If any errors occur during transmission, it shows what they are and counts them. It will resend any records not correctly received at the other computer. If too many consecutive errors occur (normally set at 10), the transfer is terminated. The 'batch mode' may also be used for sending: B>>COMMAND: SB HELLO.* (sending batch mode) will send all files starting with HELLO, or can send just one file, or can send several non-related files in this manner: B>>COMMAND: SB HELLO.DOC XDIR.COM TERM.* etc. Be sure to put a space between the various files. You can include the 'Z' option: B>>COMMAND: SBZ HELLO.* IMP740.LBR I2LIB.COM When the file transfer is completed it disconnects from the phone line and reverts to CP/M. This allows you to be absent when the file is finished, offering an advantage when sending lengthy files. - - - - - - - - - - - - - - - - - - THE HELP GUIDE, PAGE 2 : ---------------------- Three Letter Commands BYE - Disconnect, then return to CP/M CAL - Dial number CPM - Exit from this program to CP/M DIR - List directory and space free (may specify drive) DSC - Disconnect from the phone line ERA - Erase file (may specify drive) LOG - Change default drive/user no. (specify drive/user) and reset disks. e.g. LOG A0: or LOG B: (user # unchanged) SET - Set modem baud rate SPD - Set file output speed in terminal mode TBM - Toggle MODEM7/KMD batch mode selection TCC - Toggle CRC/Checksum mode on receive TLF - Toggle LF after CR in "L" or "T" mode for a disk file TRB - Toggle rubout to backspace conversion The following are terminal text buffer commands: DEL - Delete memory buffer and file WRT - Write memory buffer to disk file [more] - - - - - - - - - - - - - - - - - - DISCUSSION OF HELP GUIDE, PAGE 2: -------------------------------- BYE - Disconnects the modem from the phone line, closes any file that may be open and returns to CP/M. CAL - Displays the telephone library. NOTE: Use the phone number overlay to easily change the numbers that are stored. This overlay also accesses up to two alternate long distance dialing systems for the touch- tone auto-dialing modems. You can also use an external program called I2LIB to rapidly change any phone numbers. CPM - This returns to normal CP/M use, abandoning IMP. CAUTION: It does not disconnect the modem from the phone line, which allows intentional return to CP/M temporarily. DIR - Enables the user to see the library of any disk without needing to return to CP/M first. Can be adjusted when installing the program to show 3, 4, or 5 groups depending on the width of your CRT display. Normally set to 5 for 80-column displays. Shows the amount of disk spacing remaining on the logged-in default drive. (You must log in any drive you wish to write on, or to see the correct free disk space remaining.) See the LOG feature below. DSC - Disconnects the modem from the phone line whenever selected. ERA - Enables the user to erase any files from any disk without the need to return to CP/M first. Wild cards (* and ?) accepted. LOG - When a new disk is inserted, you can see the directory and read files from it but cannot write to it without getting a "BDOS ERR". This command allows you to log in a new disk so you can immediately write on it without first returning to CP/M for a warm boot. You can select drive and user number. (This also enables DIR to show the correct free disk space remaining.) You can say: LOG for same drive, user area, new disk LOG A LOG A: LOG A14 (user areas are 0-15) LOG A11: SET - Allows the user to change baudrates when desired. If using a 2400 bps modem with automatic stepdown, this would rarely be used. SPD - Sets the delay between characters and/or delay between lines in the "T" mode when using ESC F upload a pre-typed file. Since most bulletin boards and TYM-SHAR systems normally use line editors that require a delay after they have received a line, you can add delay between characters (in increments of 4 ms.) and/or enter delay between lines (in increments of 100 ms.) This is preset for most systems at 2 and 200 ms. They can be changed at any time. Current values can be checked by using the " ? " command. TBM - Toggle batch mode from KMD (default) to MODEM7. The primary difference is the way the file name is sent. The older MODEM7 method sends each character separately, expecting the other computer to echo each character. Checksum is used to verify the file name. The KMD method sends a special 128 byte block with the file name and the length of the file. This is not only far better for use with mainframe and networking systems, but also informs the operator receiving the file how long it will be. (The KMD method then automatically goes to 1k mode.) TCC - Most modem programs originally used simple checksum verification of received sectors. Most now use Cyclic Redundancy Checking which finds certain transmission errors the simple checksum system might overlook. This toggle allows the user to select checksum for those systems known to not offer CRC. When set normally to CRC, the program automatically switches to check- sum after trying several times to use CRC. TLF - If sending a file while in terminal mode (via CTL-T option) most mainframe computers will not want you to send a line feed. As all editors include the LF after CR, you have the option with this toggle of sending or not sending a line feed. If typing manually in the "T" mode, you can get a line feed with CTL-J. It is automatically included after CR with "L" or "E" modes. TRB - Allows the rubout char. to be changed to backspace if desired. DEL - If copying incoming informatio n into memory, and you decide you do not want to bother saving it to disk after all, this closes (and then deletes) the disk file you had opened. WRT - saves what you have been copying to the disk file already opened for that purpose. When returning from the "T" mode to command mode, a warning is shown that you may lose what has been saved unless you use WRT (write to disk). NOTE: An open file is automatically written to disk should you use BYE or CPM commands to leave the program, thus preventing accidental loss of data intended to be saved. - - - - - - - - - - - - - - - - - - THE HELP GUIDE, PAGE 3: ---------------------- Local Commands while in Terminal Mode ESC E - Exit to command mode ESC F - Send file to remote system ESC L - Send log-on message ESC N - Disconnect from the phone line ESC P - Toggle printer on (or off) ESC Z - Clears screen, terminal mode ESC R - Stop copy into buffer ESC Y - Start copy into buffer Start & Stop may be toggled as often as desired. A ";" at start of line indicates buffer is copying. X-off automatically used to stop input when writing full buffer to disk, X-on sent to resume. >>COMMAND: - - - - - - - - - - - - - - - - - - DISCUSSION OF HELP GUIDE, PAGE 3: -------------------------------- ESC E - Returns to command modem from "T", "L", "E" modes. ESC F - Sends an ASCII file to the remote terminal, X-on and X-off automatically used. Optional delays available. ESC L - Will send the log-on message if one has been included in the LOGON area of the overlay. ESC N - Disconnect the modem from the phone line. (You can easily change this to whatever you like in the overlay you use for your equipment.) ESC P - Toggles the printer on-off. Very useful feature. Similar to normal control-P but in this case if the modem is running faster than normal printer speed, the characters just back into a special buffer while the printer tries to catch up. Especially beneficial when using 2400 bps as few printers can keep up at that speed. Can be toggled at any time you are in the "T", "L" or "E" modes. Often used to copy items from bulletin boards, etc. that are not worth permanently saving on disk. ESC Z - Clears the screen in terminal mode. (CTL-Z normally used but that goes on out the terminal to the remote system.) ESC Y - Used only in terminal mode. If ESC R is used to temporarily stop copying incoming text to memory, ESC Y restarts this feature. When copying to memory, a ';' appears in the first column of each line. NOTE: To open a file use: COMMAND: T FILENAME.EXT and then ESC R and ESC Y will control what is copied for saving to disk. ESC R - Stops the copy into memory, shuts off the ";" at start of each line. These two commands (ESC Y to start, and ESC R  to stop) control what is being saved. When returning to command (via ESC E), you will then be warned to save the information to disk via the WRT command or it will likely be lost. (You may never use ESC R or ESC Y and just use your editor on that file later to discard unwated magerial. - - - - - - - - - - - - - - - - - - AUTO-DIALING AND AUTO-REDIALING: ---------------------------------------------------------------- There are several ways to auto-dial. 1) from the command line 2) from the phone number library line In addition you can auto-redial from either of these lines. Once the number has auto-dialed and there is no answer, it will ask you if you want it to continuously auto-redial until it does receive an answer (or you decide to abort). To get the phone library, type CAL on the command line. You then normally just type the appropriate character at the start of the line. It will show the number being dialed. You can also do this from the main command line if you know in advance what character is used for that particular number: B>>COMMAND: CAL P This calls up the "P" line in the library and dials that number, then if busy asks if you want it to continue redialing. You can use: B>>COMMAND: CAL 313-749-6569 and it will dial the number specified. You can then do either of these on the library command line, as well. This gives a tremendous versatility. NOTE: To access the alternate long distance dialing systems (up to two are offered), use the phone number overlay and fill in the in- formation regarding your access number, billing number, etc. It will then show how to enter a special character ahead of each phone number where alternate long distance system is desired. This only works where touch-tone systems are in use. - - - - - - - - - - - - - - - - - - AUTO-LINKING PHONE NUMBERS: -------------------------- If the number you want to dial is busy, you would like to have it automatically redialed until it answers. However, you might like to call any of a group of numbers and be happy to take whichever one first becomes available. Auto-linking allows a group of numbers to be listed and they are then continuously dialed one after the other, until one is available. IMP permits from 1-32 numbers to be linked together in any manner. There are two options: B>>COMMAND: CAL A,D,R,3,Z 1) B>>COMMAND: CAL F, 2) B>>COMMAND: CAL A/D/R/3/Z 3) B>>COMMAND: CAL F/ 4) B>>COMMAND: CAL A,D,A,R,A,3,A,Z 5) B>>COMMAND: CAL F 6) 1) using a comma (,) will beep continuously when connected to the first available number - touching any key stops the beep and goes to terminal mode. 2) just the one number is linked to itself and redials until connected. Beeps continuously until stopped with any key. 3) using a slash (/) will beep only once when connected and then automatically go directly to terminal mode - this is useful where some mainframes such as IBM and UNIX send a logon note assuming you are already able to copy as soon as connected. 4) just the one number is linked to itself and redials until connected. Beeps only once and goes to terminal mode. 5) illustrates how one number can be given top priority. 6) system used previously - if connected on first try, beeps one time and jumps directly to terminal mode. If no connection, asks the operator if he wants to try again or try continuous- ly until a connected is made - at which time it beeps until a key is depressed. - - - - - - - - - - - - - - - - - - CASCADING COMMANDS: ------------------ Several commands may be used on the same line. Ones normally used are: B, D, E, K, L, Q, R, S, T, V, X and Z The commands have been listed previously but will be listed here again: B) batch mode (must be used at both ends if used at all) (usually only available modem-to-modem with operators present at each end.) D) disconnets the phone, returns to CP/M after a file transfer E) echo mode for conversing with a system not offering echo. K) used to manually request 1k transmissions on systems not having automatic 1k transmissions. L) local echo shows what you are sending if no remote echo. Q) quiet mode, suppresses messages on local console. R) receive file transfers (8-bit binary) S) send file transfers, also shows transfer time. T) terminal mode - operates computer at other end like a remote terminal. Also stands for "text mode". When in "T" mode you can copy incoming to printer or to disk, and send pre- typed ASCII text files via CTL-T. V) visual -- lets you see incoming ASCII files while being sent to the disk system. X) inhibits automatic request for 1k transmissions Z) disconnects the phone, returns to command mode after a file tranfer. NOTE: The Baud rate is only used for the PMMI S-100 modem. Many of the custom overlays allow use of the SET command to change Baud rate with non-PMMI modems. - - - - - - - - - - - - - - - - - - TYPICAL PARAMETERS SHOWN BY THE "?" COMMAND: ------------------------------------------- B>>COMMAND: ? Mode: CRC KMD batch mode Rub is backspace Printer buffer is OFF Modem speed is: 1200 bps Terminal mode file buffer is inactive Unused portion of buffer is 16384 bytes Use ESC before local command in terminal mode XOFF testing used in terminal mode file output LF NOT sent after CR in "L" or "T" for a disk file Char. delay (terminal file mode) is: 2 ms. per character Line delay (terminal file mode) is: 200 ms. per character - - - - - - - - - - - - - - - - - - DISCUSSION OF TYPICAL PARMETERS SHOWN BY THE "?" COMMAND: -------------------------------------------------------- By this time, most of these parameters are self-explanatory. They primarily show how the options and toggles have been set. The user can check on any of the major parameters at any time by: 1) Typing ESC E to return to command mode and 2) Typing ? to see the list of current parameters. - - - - - - - - - - - - - - - - - - FUNCTION KEYS: ------------- There are 10 function keys which may be easily programmed with an external file called I2FUNC.COM in just a few moments. It makes the changes directly to the IMP.COM file. (There is an additional ESC L log-on selection that is programmable in your overlay.) To view the contents of the function keys, type 'M' for menu while on the command line and it will show the character currently used for the function key intercept. (It will be ESC unless you select another.) You could then type that character (followed by ) on the command line and it will display the entire contents of the function keys. - - - - - - - - - - - - - - - - - - CHANGING THE PHONE NUMBER LIBRARY: --------------------------------- The phone numbers in the library may be easily changed using an external file called I2LIB.COM. This permits any of the 36 phone num- bers to be changed in only a few seconds. It works directly on the IMP.COM file. If extensive changes are to be made, you may prefer to use an overlay file called I2NM-1.ASM. This permits using your editor to make quick and selective changes, or to substitute an entire new library. (You may need to add or remove things like '1-' for long distance dialing in your area.) That file also is used to set the alternate long-distance dialing routines for SPRINT, MCI, TYMNET, etc. - - - - - - - - - - - - - - - - - - RETRY OPTION: ------------ The consecutive error limit has been set to 10. When transferring files, if this limit is reached, the file transfer will be aborted. - - - - - - - - - - - - - - - - - - INSTALLING THE PROGRAM: ---------------------- Although this is obviously the very first thing that needs to be done, it was saved until last for several reasons. The most important of these was the need to first explain what some of the options will do when selected. By this time the user should have a fairly good idea what options would work best for him. When looking at the beginning of the program where the these are selected, it should now be rather easy to pick the ones that are most useful. There are various ways to change the program to suit a specific user. You are offered several methods. The "easy way" is to get the IMP.COM file plus the appropriate overlay for your computer. You then edit the overlay (if needed) to suit your local needs, assemble it to get a .HEX file then use the simple instruction and DDT.COM to combine the standard IMP.COM file with your overlay. The front end of each overlay contains all the information in the front of the IMP program. Generally no changes need to be made in specific overlays unless you have some particular requirement different from others using the same equipment. (Such as the log-on message, for example.) You can also use DDT to change specific bytes without editing and assembling. NOTE: Although designed with special emphasis on the auto-dialing and redialing capability of 1200 or 2400 bps modems using the Racal- Vadic or 'AT' protocol developed by Hayes, the program may be used with other modems where the operator manually dials the number, then changes to terminal mode after connecting his modem. OUR THANKS TO: ------------- A great number of people have been beta-testing this program and offering suggestions. In particular I wish to thank Wayne Masters, Roy Robinson and Tom Brady. We hope this verstile program will give you hours of enjoyment and fulfill your modem needs. It is particularly useful with the 2400 bps modems that have automatic stepdown. - Irv Hoff W6FFC rent from others using the same equipment. (Such as the log-on message, for example.) You can also use DDT to change specific bytes without editing and assembling. NOTE: Although designed with special emphasis on the auto-dialing and redialing capability of 1200 or 2400 bps modems using the Racal- Vadic or 'AT' protocol developed by Hayes, the program may be used with other modems where the operator manually dials the number, then changes to terminal mode after connecting his modem. OUR THANKS TO: ------------- A great number of people have been beta-testing this program and offering suggestions. In particular I wish to thank Wayne Masters, Roy Robinson and Tom Brady. We hope this verstile program will give you hours of enjoyment and fulfill your modem needs. It is particularly useful with the 2400 bps modems that have automatic stepdSUBJECT : New IMP features FROM : Irv Hoff DATE : 01 Oct 85 IMP was the first program known to uti- lize to utilize the automatic stepdown feature offered by new 2400 bps modems. It also is the first and currently the only modem program that has automatic 1k protocol for faster file transfers at either 1200 or 2400 bps. All KMD pgms as well as XMODEM 112 and later support automatic 1k protocol. Starting with IMP v241, batch transfer protocol is available in both KMD-type and MODEM7 type. INTRODUCTION ------------ This is a partial list of some of the new features offered by IMP. IMP was developed for the new 2400 bps modems, but also fully sup- ports older 300/1200 bps modems that use either the Racal-Vadic or the 'AT' protocol developed by Hayes. IMP also supports the extended Pro- metheus protocol for the ProModem 1200. AUTO STEPDOWN ------------- New modems offer automatic stepdown. If not familiar with this feature, they first attempt to connect at 2400 bps, then at 1200, then at 300. (The US Robotics Courier only steps from 2400 to 1200, this is no limitation as few people using a 2400 bps modem would likely call a 300 bps system on a regular basis.) When a connection is made, the modem returns the result code at the last speed originally selected (2400 at power up) and then switches to match the speed of the other unit. For instance if calling a 1200 bps system, it will give a "5" result code for 1200 baud, but at the last speed you used (normally 2400 by default) and then change to 1200. IMP was the first and is currently one of the few free modem programs that utilize this information to automatically set the I/O baudrate on the computer to match the modem speed. Thus the user can dial any number in his phone library, or even a hand-entered number, without knowing (or caring) in advance what speed the other system can accomodate. (He may have just added 2400 bps with a new modem you do not even know about.) One of the biggest advantages to having automatic setting of the computer involves linking several numbers for continuous dialing. IMP is one of the few programs that allow numbers to be dialed where some are known to use 2400, some 1200 and perhaps a few even at 300 only. GENERAL IMP FEATURES -------------------- IMP shows the current modem baudrate quite often. If for any reason you leave the modem program while still online, to check on some disk or otherwise use the editor or assembler, etc. quickly, IMP stores the current baudrate. When calling it up again, it resets to that same baudrate. This is not unusual, but other programs that do this require the use of the "carrier detect" pin to see if still connected, and just ignore any initialization in that case. IMP never needs carrier detect and that pin does not even need to be wired to the computer. It is very easy to abort a file transfer whether sending or re- ceiving. Just type a CTL-X or two, and wait a moment. At the end of the current block of data, it will abort, and erase the partially copied file. You can clear the screen at any time, CTL-Z when in command mode or ESC-z (or ESC-Z) when in the terminal mode, assuming you retain the "ESC" character as the lead-in character for local command. Any CTL-character typed while in the terminal mode goes out the modem. (Which is why you need to use ESC-z to clear the screen, as a local command!) This permits using remote editors such as WordStar. (You need to also use ESC-p to control the printer, allowing a CTL-P to go out the modem for remote control purposes.) In the command mode, typing a ? shows all the current parameters. Typing an ESC shows the function key assignements (unless the user has selected a different character than ESC for that purpose.) Typing a "M" shows the menu. (Three pages, total.) In the command mode, while dialing a number, a CTL-X aborts back to the command mode (as always), but a CTL-K aborts the current attempt and starts the next one. This saves time if you hear a phone ring with no answer and don't want to wait until the modem tires of trying for a "no answer" (usually takes 30 seconds or more). At times, a touch-tone exchange never does seem to place the call, and CTL-K expedites another try. Nice feature, try it 1-2 times to see how it works. There are numerous other rather subtle changes. In the terminal mode, when sending a file, it will automatically activate the X-off, X-on mode, which the user previously had to select. The delays between characters and/or between lines are compeltely redesigned and only take effect after the I/O buffer is empty, not after you send a character to the holding buffer in the I/O. IMP has excellent progress reports while autodialing. It num- bers each attempt. Many older 1200 bps modems (such as the Smartmodem Hayes) do not give a result code for busy. The newer 2400 bps modems have such a result code. IMP uses this to immediately start a redial. The Racal-Vadic modems also return a "ring" report for each ring not answered. This is displayed. Other reports such as "no dial tone", "no answer", "failed", etc. are displayed by IMP for those modems with extended result codes. (IMP v241 adds a special byte at 0C00H-2 (0BFEH) which can be easily changed with DDT, etc. This byte delays the time from receiving a busy signal until a redial is attempted. Obviously most people want a redial as soon as is convenient. Having this byte available allows the occasional user who needs a longer time (he might be going through the company switchboard, etc.) to adjust the delay suitably. The telephone overlay I2NM-2.ASM also includes this byte.) IMP also displays the modem speed when a connect is made (with the automatic stepdown units, that is normally the only way you would find out, unless you started a file transfer when it would display the time it would take at the current modem speed.) You can select a new baudrate on the command line now, which speeds things up, or if you select an improper number it will display those availble and wait for a correct response. This opens the avenue for customization by asking for "SET ". Unless you do select a new speed manually via the SET command, the modem thinks you want to accept the fastest speed it finds available. You may prefer a slower speed. Just use SET 300, for example and this limits the modem to connecting at that speed. Using SET 2400 resets to fully automatic operation once more. (You may want to call Compuserve, for example, where you cannot type even 300 bps to answer messages and 1200 bps would be far more expensive.) The group of options has been simplified to those normally used. IMP does not support the PMMI plug-in S100 modem, so a lot of the older routines and options have been discarded. (The PMMI cannot use 1200 or 2400 bps either one and was limited to Bell 103 protocol.) None of the currently available or planned overlays require any  specific information buried in the main program. Thus any subsequent release should support any of those overlays. IMP turns off the auto-answer feature whenever a number has been dialed, using DSC to disconnect or BYE to leave the program. This in- sures the modem will not try to answer the phone the next time it rings. Some modems such as the Robotics Courier 2400 and Hayes 1200 Smartmodem have manual switches that can be set for autoanswer. Most users disable those switches, so the phone can be used in a normal manner. 1k PROTOCOL ----------- At the faster baudrate, the efficiency drops rapidly with the older XMODEM programs that can only send 128 characters per block. They wait for an answer of "ACK" or "NAK" from the receiving station. By sending 8 records (1k) per transmission, these waits are of course re- duced to 1/8th normal. This gives somewhere around 12-15% increase in throughput at 2400 bps. (8-9% at 1200 bps.) These percentages become higher for longer-distance calls.) Chuck Forsberg has had 1k blocks available for several years with his YAM (public domain) and PRO-YAM (commercial program for MS-DOS users). That is a manually operated system where the user has to type "SK" at the sending end to initiate the 1k transmissions. This system has the disadvantage of requiring the operator to know why he should type "SK", as well as remember he should. IMP uses a protocol that requires no operator intervention. The user does not even need to be aware he has such a feature. He proceeds normally and IMP automatically tells the sender it can accept 1k proto- ol as well as the older 128 character blocks. (IMP does support the manual protocol used by MEX114, YAM and PRO-YAM if you prefer to type "SK", or must - to use one of those modem programs.) This is transparent to older XMODEM programs. Thus IMP works normally on systems that do or do not offer 1k automatic protocol. The system has become so popular since announced, that XMODEM 112 already offers the "Hoff 1k extention to the Christensen protocol". It was developed for use with KMD (an XMODEM-nnn replacenet) and has offered both the automatic and manual protocols since it was introduced in mid- July 1985. (If for any reason the operator wishes to disable the automatic 1k protocol, just type "RX" at the receiving end and it will not inform the sending end that it has 1k protocol available.) There is little or no advantage to 1k blocks at 300 bps, so IMP requires a speed of 1200 bps or greater to activate the 1k protocol. A 1k block at 300 bps would take 34 seconds! (Takes 9 seconds at 1200 bps and 4.7 seconds at 2400 bps.) CRC is required for the 1k protocol. If the other system only has checksum, IMP automatically sends 128 character blocks after setting itself to checksum. (Use 'TCC' when in the command mode to select the checksum protocol. It is automatically selected if sending to another system that can only receive checksum.) BATCH MODE WITH 1k ------------------ Starting with IMP v241, KMD batch protocol is supported as well as the older MODEM7 type. They are both operated in the same manner but the KMD type offers significant advantages in the way the file name is sent. The MODEM7 method sends one character at a time, waiting for an echo from the other system, then a checksum verification is made. This is slow and quite unsatisfactory for modern-day use with mainframe or networking systems. (Both batch types incorporated into IMP use auto- matic 1k protocol.) The KMD method (compatible with that developed by Chuck Forsberg for his PRO-YAM modem program used with IBM-PC computers running MS-DOS) utilizes a special 128-character block for sending the file name. Addi- tional data can be included such as the file length and time/date stamp. IMP uses the file length feature. This is particularly nice as MODEM7 batch does not support this lovely feature. This batch mode also sends and receives 1k automatic protocol if the file is longer than 8 records. Each file terminates in 128 character blocks if less than 1k re- mains, but the 1k protocol is reinstated for the next file in the group. The ratio checking is reset for each file so the accumulated errors are more indicative of current conditions. Roy Robinson of the Osborne Corp. has used two Vixen computers running at 19200 with IMP in the batch mode to transfer the contents of entire disks from one machine to the other. He says it is fascinating to watch the results at that speed. (A null cable was used between the two machines which were in the same room. Normally things like this are done with computers of different brands, where it may be difficult to make a disk that runs suitably on the other computer.) KMD and BYE5 support this KMD-batch mode for normal RCPM use. The total time it will take to send all files is computed and displayed. (If this exceeds the remaining time available, it aborts the request and asking for a different file.) RATIO CHECKING FOR 1k --------------------- If conditions are poor, any advantage to sending the longer 1k blocks would be lost. The program should check the ratio of good blocks copied against the number of repeats that have been needed. A point is reached where staying in the 1k protocol would be detrimental. This oc- curs at 43 records/per hit at 2400 bps and at 71 records per hit at 1200 bps, where there is less to be gained by using 1k blocks to start with. (This is calculated for the time it would take to resend one 1k transmssion due to one hit, versus sending 128 character transmissions with one hit, over a modest length connection. The further the distance, the more delay you get waiting for the "ACK" and the more favorable the ratio becomes with regard to the ones chosen for normal operation.) IMP is the only program currently available that attemptes to select an individual optimum ratio for the speed being used. YAM stays in 1k protocol, once requested, until the file transfer is finished. XMDM108 included a ratio check to switch back to 128 character blocks but uses a single figure for all speeds. This could cost extra time and money under unfavorable conditions. It would switch too soon for 2400 bps and not soon enough for 1200, to be most economical. IMP also changes back to 128 character blocks if 4 or more con- secutive hits are encountered. IDEA OF 1k PROTOCOL ------------------- The name of the game is time spent on the telephone. This not only involves the actual long distance charges but the time the operator has to spend in front of the machine. The following needs little addi- tional explanation: 100k file 128 char blocks 1k blocks 300 baud 61:32 n/a 1200 bps 16:40 15:06 2400 bps 9:18 7:51 These figures based on modest length calls with direct lines. The time gained when using satellite calls is far more dramatic. Bill Bolton in Australia calls the USA via a satellite link and initial tests indicate an approximate 30% decrease in file transfer time with 1k blocks. This indicates the entire concept should be fully automatic and totally transparent to the user. (Unless he is technically inclined and likes to know about details of this sort.) If it saves connect time and money, the operator should not be required to manually make this choice each transmission. IMP was designed with this in mind, as was the KMD replacement for XMODEM. LAST BLOCK ---------- When the file is finished, it is rare it stops on an even 1k. IMP automatically switches back to 128 character blocks at this time. This gives the same number of records the original program contained and subsequent checks using CHEK.COM or CRCK.COM will give identical results. YAM never switches to 128 character blocks regardless of end of file or excessive hits. 1k SUMMARY ---------- The success with faster transmissions and less connect time in- dicate other modem programs will likely soon follow suit with fully transparent programs that can automatically select 1k blocks. Remember manual control of 1k blocks was developed by Chuck Forsberg and first appeared with YAM. The automatic selection and error ratio routines were developed by the author and have been incorporated into both KMD (the XMODEM replacement) and IMP. The information for adding the auto- matic features were passed along to Paul Traina who typed them directly into his version of XMODEM called XMDM112. Both KMD and XMDM112 support the manual 1k selection used by IMP, MEX114 and YAM. IMP is currently the only modem program supporting both manual and automatic 1k protocol. It is also the only modem pro- gram presently supporting both KMD-batch mode (used on many RCPM systems throughout the world) and the older MODEM7 batch mode. - Irv Hoff Los Altos Hills, CA (415) 948-2166 - voice (408) 378-7474 Potpourri RCPM SUBJECT : Disk dumps with IMP FROM : Irv Hoff DATE : 20 Aug 85 The distribution copy of IMP sets the file transfer disk buffer to 16k. This is one "file extent" in length. (MODEM7 used to dump every 2k, MDM7 every 16k.) Minimizing the number of disk dumps helps to increase the efficiency of a file transfer. Should you notice an error frequently occurs every 128 records, it is likely caused by your small floppy disk taking over 10 seconds to dump 16k to disk. The solution is simple. Change byte 0BFF from 80H (128 decimal for 16k) to perhaps 40H (64 decimal for 8k). This byte is easy to re- member as it is one less than 0C00, where the telephone library starts. It was placed at this position just so it could be easily found. You can also use the I2NM-2.ASM telephone overlay and change the label XFRSIZ from 16 to 8. Then use MLOAD.COM to merge that overlay onto the main program. This may be easier for you than using DDT. Since only a few people have this problem it seemed better to tell them, rather than penalize those with faster disk system by making it 8k for everybody. (The name of the game is to minimize delays - this is the main reason for adding 1k block sizes, going to 2400 bps modems, etc.) - Irv Hoff Los Altos Hills, CA (415) 948-2166 - voice (408) 378-7474 Potpourri RCPM 128 records, it is likely caused by your small floppy disk taking over 10 seconds to dump 16k to disk. The solution is simple. Change byte 0BFF from 80H (128 decimal for 16k) to perhaps 40H (64 decimal for 8k). This byte is easy to re- member as it is one less than 0C00, where the telephone library starts. It was placed at this position just so it could be easily found. You can also use the I2NM-2.ASM telephone overlay and change the label XFRSIZ from 16 to 8. Then use MLOAD.COM to merge that overlay onto the main program. This may be easier for you than using DDT. Since only a few people have this problem it sSUBJECT : IMP overlay customization FROM : Irv Hoff DATE : 17 July 85 The following notes will help the IMP user to select various user options. The ones that should be quite self-explanatory will not be included in the list. 0103 MSPEED - use 05 for 1200, 06 for 2400. 0104 HS2400 - YES if 2400 is your top speed, otherwise NO 0105 HS1200 - YES if 1200 is your top speed, otherwise NO 0106 RACAL - YES if using a Racal-Vadic modem with autodial (the 1200v and 2400v can also use the Hayes AT protocol, but the Racal-Vadic protocol displays additional progress reports.) - NO for "AT" protocol developed by Hayes 0107 PROMODM - YES if using the Prometheus ProModem 1200, else NO 010A CLEAR - Most computers can clear the CRT with a CTL-Z, if yours does, put a 1BH (CTL-Z) here. Some use an "ESC-x" (the "x" may be a upper or lower case ASCII character.) Put that character in this location, the ESC will be automatically added if an ASCII character is present. Put a 0 here if you don't know what your terminal needs, it will then scroll 24 blank lines to clear the screen. 010B CLOCK - This value is your clock speed times 10, for more variation. A 4 MHz clock would use 40. (Convert to hex if installing via DDT.) This just sets the time for some of the internal delay loops. It can be changed to whatever is needed to make those more ac- curate. 010C BYTDLY - This puts a delay between characters when sending an ASCII file in the terminal mode. 010D CRDLY - This puts a delay after a CRLF when sending an ASCII file in the terminal mode. Sometimes these are used on systems that cannot accept messages at full speed. 010F TCHPUL - Some modems (such as the Racal-Vadic, Prometheus, etc.) can auto-sense if they can touch-tone dial or need to pulse dial. Put a 0 here (do not use '0' which is an ASCII value) if you want your modem to auto-sense what it can use. Else a 'T' or 'P'. 0114 EXTCHR - This is the local control "lead-in" character when in the terminal mode. Currently set to ESC. Some ter- minals don't have ESC or the operator may prefer some other character. Put it here. The characters from 0115 through 011C are the local control characters and may easily be changed to suit the operator's preference - if different. 0168 J$STRNGA - This jumps to the 'AT' initialization string for 1200 bps modems. 0169 J$STRNGB - This jumps to the 'AT' initialization string for 2400 bps modems. If the user wants to develop his own customized initialization string, just change this to jump to your own routine. In writing these routines, you can use J$ILPRT for strings (terminate with a 0 character) for local display, "CALL J$CRLF" for a new line on the CRT, J$SNDSTR to send a string to the modem (end with $), J$SNDCHR to send a single character to the modem, and  '#' character is a 0.1 second delay. Including ### in the string to the modem would cause a 300 ms. delay, etc. (250 ms. minimum needed after an 'AT' string is completed by a CR before the modem should be given any other duty.) The J$ commands just listed would allow the user to add routines to set parity, stop bits, different initialization strings, etc. ROOM REMAINING -------------- There are 601 characters remaining after the start of the SYSVR label. The routines in the overlay should stop by 0400H. In the case of the I2DP-1 overlay, that would leave an additional 223 bytes for any customization the user might add. - Irv Hoff Los Altos Hills, CA (415) 948-2166 - voice ou can use J$ILPRT for strings (terminate with a 0 character) for local display, "CALL J$CRLF" for a new line on the CRT, J$SNDSTR to send a string to the modem (end with $), J$SNDCHR to send a single character to the modem, and SUBJECT : IMP overlay list FROM : Irv Hoff DATE : 21 Jul 86 IMP is the first (and currently the only) modem program that takes advantage of the automatic 1k protocol offered by XMODEM 112 and higher, and any KMD program (a replacement for XMODEM). It also is one of the few programs to use the automatic stepdown feature of the new 2400 bps modems to adjust the computer speed to match that of the an- swering system. (The US Robotics only steps down from 2400 to 1200, not to 300. The Paradyne ARK, Racal-Vadic 2400, Hayes 2400 and others automatically stepdwon from 2400 to 1200 to 300. IMP takes full advan- tage of this feature.) At the bottom of this note is a list of the overlays that are currently available for the IMP modem program. There are a number of options which the user may select to cus- tomize IMP to suit his needs. As with nearly any program, there may be things you "wish you could do". We tried to cover many of those, while still keeping the overlays as short and simple as possible for "most of the users". An attempt was made to include enough features to allow the sophisticated user enough tools to write his own routines if/where appropriate, in the overlay. Read the IMP.CUS file for notes on how to select/use some of the features offered in each IMP overlay. (Such as changing the lead-in character for the local commands while in the terminal mode to something other than ESC, etc.) CURRENT IMP OVERLAYS -------------------- I218-2 MicroMint SB180 (Hitatchi 65180) - Z80 code, same as I2MM-2.ZQ0 I2A2-2 Apple //c with various cards I2A3-2 Apple /// I2AC-1 Actrix computer (Dart at 5.0688 MHz) I2AD-1 Advanced Digital Super Six (Z80 Dart and 8116) I2AL-1 Altos Series 5000 and 8000 (Z80 Dart and 8430 CTC timer) I2AM-2 Ampro "Little Board" (Z80 Dart and 8430 CTC timer) I2AP-7 Apple //e (2651 for CCP and 6551 for SSC) I2B2-1 Big Board II (Z80 SIO and 8430 CTC timer) I2B3-1 Bondwell 2 laptop portable (8251 and 8253 baudrate generator) I2BT-3 Beehive Topper (Z80 Dart and 8430 CTC timer) I2BW-2 Bondwell 12/14 (Z80 SIO and 8253 baudrate generator I2C8-1 Commodore C128 (no serial port, special handling) I2CC-3 CCS 2719 and CCS 2830 (Z80 Dart and 8430 CTC timer) I2CP-1 CompuPro interfacer 3/4 (2651 w/baudrate generator) I2DM-1 Dynabye Monarch (Z80 SIO and 8116 baudrate generator) I2DP-1 Datapoint 1560 (8251A and 8430 CTC timer) I2DV-1 Datavue 3000 (Z80 SIO and 8430 CTC timer) I2EA-1 Eagle II and III (Z80 SIO and 8430 CTC timer) I2EP-1 Epson QX-10 (Z80 SIO and Intel 8253) I2EQ-3 Insight Enterprises EQ-4 (Z80 SIO and 8116 baudrate generator) I2FT-1 Facit DTC computers (Z80 SIO and 8430 CTC timer) I2H8-4 Heath/Zenith 89 (8250 w/baudrate generator) I2HZ-5 Heath/Zenith 100 series (2661, w/baudrate generator) I2KP-1 Kaypro with external modem (Z80 SIO and 8116 baudrate gen.) I2LO-1 Lobo MZX-80 (Z80 SIO and 8116 baudrate generator) I2MC-1 Molecular Series X (Z80 Dart and 8430 CTC timer) I2MD-1 Morrow MD3 (8251 and 8254-2 baudrate generator) I2MDA-2 Morrow MD3 (old; new; disk - 8251, etc.) I2ME-1 Morrow MD5/MD11 (Z80 SIO) I2MM-2 MicroMint SB180 (Hitachi HD64180 - similar to Z80 SIO) I2MO-1 Morrow MD3 (older units, 8251, no baudrate generator) I2MT-1 Memotech SDX-512 (Z80 Dart and 8430 CTC timer) I2NA-2 North Star Advantage (8251 and 8253 baudrate generator) I2NE-1 NEC 8801 (8251, no baudrate generator) I2NH-2 North Star Horizon, standard, no baudrate generator (8251) I2NS-5 North Star Horizon (8251 and HSIO-4 serial board) I2OS-4 Osborne OS-1 computer (6850 ACIA) I2OV-2 Osborne Vixen (8251 and 8155 baudrate generator) I2OX-1 Osborne Executive (Dart and Intel 8253 baudrate generator) I2R2-1 TRS-80 Model II/12 (Z80 SIO and 8430 CTC timer) I2R4-1 TRS-80 Model 4 with Montezuma Micro (TR1602 and BR19411) I2S2-1 Sanyo 1200/1250 (8251 no baudrate generator) I2SB-1 Intertec Super Brain (8251 and BR1941 baudrate generator) I2SP-1 Coleco Adam with EVE SP-1 interface and ext. modem (2651, gen) I2SS-2 CompuPro System Support 1 (2651 w/baudrate generator) I2SY-2 Sanyo 1000/1100/1200/1250 (8251 no baudrate generator) I2TV-4 TeleVideo 802/803 (Z80 SIO and 8430 CTC timer) I2US-1 US Robotics S-100 plug in modem (8251 no baudrate generator) I2VI-1 Visual 1050 (8251 and 8253 ?? baudrate generator ??) I2WM-2 WaveMate Bullet (Z80 Dart and 8430 CTC timer) I2XE-1 Xerox 820 (Z80 SIO and 8116 baudrate generator) I2ZB-1 Zorba (8251A and 8254-2 baudrate generator) ; ; I2PR-1 (overlay to adapt Penril 1200-AD modem to IMP) I2RV-4 (overlay to adapt Racal-Vadic autodial 3451 or 212PA modems) I2VB-2 (overlay for 300/1200 modems that only have verbose mode, such as the AVATEK. Others will be added as they are developed. If you have a computer not already mentioned, you can perhaps use one of the above that matches your I/O (such as Dart, SIO, 8251, etc.) by selecting the correct ports, etc. Otherwise you can try calling me at the below voice number from 10 am to midnight Pacific, and perhaps we can get something for you to use (then add it to this list for others). - Irv Hoff Los Altos Hills, CA (415) 948-2166 8251 and 8253 ?? baudrate generator ??) I2WM-2 WaveMate Bullet (Z80 Dart and 8430 CTC timer) I2XE-1 Xerox 820 (Z80 SIO and 8116 baudrate generator) I2ZB-1 Zorba (8251A and 8254-2 baudrate generator) ; ; I2PR-1 (overlay to adapt Penril 1200-AD modem to IMP) I2RV-4 (overlay to adapt Racal-Vadic autodial 3451 or 212PA modems) I2VB-2 (overlay for 300/1200 modems that only have verbose mode, such as the AVATEK. Others will be added as they are developed. If you have a computer not already mentioned, you can perhaps use one of the above that matches your I/O (such as Dart, SIO, 8251, etc.) by selecting the correct ports, etc. Otherwise you can try calling me at the below voice number from 10 am to midnight Pacific, and perhaps we ca!9"`10 , I2FUNC v2 (c) ESKAY 07-17-85 IMP function key installation , File name: >fͼʬPYp |BʂK] f!2d°:d<2d w# ¦Õ!$Q~A>"o~Bɯ#"b#*b, You can now change the INTERCEPT CHARACTER (key prefix), any of the ten function keys, or you can exit to CP/M A - INT CHAR: ~# , 1 - FUNC 1 : , 2 - FUNC 2 : , 3 - FUNC 3 : , 4 - FUNC 4 : , 5 - FUNC 5 : , 6 - FUNC 6 : , 7 - FUNC 7 : , 8 - FUNC 8 : , 9 - FUNC 9 : , 0 - FUNC 0 : , *b$ }2e͊ , characters free Q - abort program S - save and quit YOUR CHOICE? >~Q7SAʓ0:=> G, > _, Keep trailing ? _Y$6 #6*b~#~# kRy=0*bw#H~# kS~#`<, ERROR - new string won't fit!, Type the new INTERCEPT CHARACTER > *bwf!~# :d=2d7#~  , # #, ERROR - key definition table not found - aborting. X, ERROR - NUMLIB not found at 0C00H might not be a valid IMP file - aborting... X, ERROR - drive/user spec invalid Q, DISK WRITE ERROR - FILE TRASHED X, ERROR - file not found. Please restart. X, *** END OF EXECUTION *** B *`>22$կ~#:,@!@~͏ AA<2#~:A?2#~:AG~#:40 OxGx 2A~:H#~,S!k >?X:G:O>ͅ~.#ͅ^ͥ^Ͱʥ*—>?Ù#…Ͱ#Ý> ¥~͏ !=_.:;,<>ɾw ͚ ͇ >͇ ͇ ͇ 2& !'~#o|g6:# !(~# ͏ w# !(:'2 ~#ʆ p ] b b f 7 7 7 y7 7 yG>GO>  | 7 >2 dͦ  ͦ 0 ڰ è y : >  ɯ2 y0 >  >        >^ @ *.  O*. + p x2@ y2A :@ _͇ :A _ ͇ Y ͇ X͇ X ͇  ͇ OGa{_Hͣ Wͻ Wͻ r# x» H | } ~# x ~+ x 7}o|g }o|g  |g}o }/o|/g% X *p }o|g"p W >2r  < *p :r  !"p |ڵ Š }ڵ  *p ! "p }o|gڭ "p }oî Œ !ò ͇ ͇ ͇ 2& !I2FUNC information for use with IMP 07/17/85 This program has been adapted from one originally written by Sigi Kluger for the MDM7 series. It is used to change any of the 10 function key assignments for the IMP modem program. Function keys can do very nice things, like automatically type a string of characters you often use, such as DIR *.* $U0AD, or XMODEM S, or KMD R , the name and password you use for varius RCPM systems you may use frequently, all sorts of similar things that will immediately come to mind. USING THE FUNCTION KEYS ----------------------- You transmit the contents of a function key by typing first the INTERCEPT CHARACTER, then a digit 0..9. The INTERCEPT CHARACTER is an unique character which tells IMP that a function key command follows. It currently set to ESC. It could as easily be CTL-A, or 'circumflex' or 'right brace', for example. In the distribution version of IMP, the following keys are defined (substitute your own lead-in character for the ESC if not the same.) ESC 1 DIR ESC 2 DIR *.* $U0AD ESC 3 KMD R ESC 4 KMD S ESC 5 XMODEM R ESC 6 XMODEM S ESC 7 BYE ESC 8 CBBS ESC 9 (vacant) ESC 0 Nice chatting, see you again soon... (Function keys 3-6 have no trailing CR). ROOM AVAILABLE -------------- A total of 256 bytes are reserved for the function key defini- tion. Each definition takes up the number of bytes in the string, PLUS 2 more. Note that you must not enclose any control characters in the definitions (CR is allowed and is optional). ALTERING THE FUNCTION KEYS -------------------------- In order to not increase the size of IMP considerably, I2FUNC may be used. It is virtually self-explanatory and has its own built-in short help guide. I2NM-1.ASM may also be used to alter the function key assignment with your local editor, if you wish. - Irv Hoff le. In the distribution version of IMP, the following keys are defined (substitute your own lead-in character for the ESC if n!9"12'\!Nd2nl!rd2!O~ =ì!s~ Xr ͳͳͳͳ!B͠ }"~©~ͳ#©_> ͳ> ͳ !-#6#  +!-` ))))0 o4͛## 6 #0>2'4 ʑ͛2*u##g:*ͳ>=ͳ-:,ʑ [-Gw#ƒ7J70ڭ:_Aڭ[7*#|g}Ɛ'@'ͳ:+A"!)*#"%> ͳrr<'Y7! "rNrì*!*|_}f*rì >2u>27:'ʯ_YN”ï* I2LIB program for changing the IMP phone library - 07/17/85$  I2LIB lets the user change the IMP phone number library. EXAMPLES: I2LIB IMP.COM (1) I2LIB IMP.COM IMP240.COM (2) (1) changes the original file (named IMP.COM) (2) changes the 2nd file, leaving original intact $ ++ UNABLE TO OPEN SOURCE FILE ++$ ++ OUTPUT FILE ALREADY EXISTS ++$ ++ NO DIRECTORY SPACE ++$ loading file...$ [Exiting program] $ ++ PHONE LIBRARY NOT FOUND ++$ PHONE LIBRARY LOCATED AT: $ DOES LIBRARY LOOK RIGHT? $ CTL-C abort, hange, elete,

rint lib, ead, ave : $$ ABORTING...NO CHANGES MADE$ DESC..............1-XXX-XXX-XXXX27:'ʯ_YN”ï* I2LIB program for changing the IMP phone library - 07/17/85$ TOPIC : I2LIB program for changing IMP phone numbers FROM : Irv Hoff DATE : 17 July 85 I2LIB permits the user to quickly and very easily change the tele- phone numbers in the IMP phone library. It automatically locates the phone library, displays it and then (after asking it if looks normal) shows a command line: CTL-C abort, hange, elete,

rint lib, ead, ave : To change or alter any line (such as the "F" line), you would then type: CTL-C abort, hange, elete,

rint lib, ead, ave : CF The "C" would select "Change" and the "F" selects the line to be changed. This same technique would be used to delete any line that is no longer needed. Using "DH" for example leaves the "D=" but clears the rest of the line. Whenever you change any line, you must go completely to the last column prior to the < at which time the new line is then added automatically and the new listing displayed. This sets a flag so if you hit CTL-C to abort it will ask if you want to update the file or abort with no changes. You use "S" to save the file to disk when finished with any changes. USING THE PROGRAM: ----------------- This program works directly with the IMP object code .COM file. EXAMPLES: A>I2LIB IMP.COM (1) A>I2LIB B:IMP.COM (2) B>A:I2LIB IMP.COM (3) A>I2LIB IMP.COM ABC.COM (4) B>A:I2LIB B:IMP.COM C:ABC.COM (5) 1) works only with the original file, altering it 2) the file can be on any selected disk 3) similar to (2) but I2LIB.COM is on another disk 4) if a 2nd file is named, it receives the changes 5) any of the files can be on any selected disk NOTE: Using I2LIB.COM to alter the telephone number library is surprisingly simple and fast. It does not however allow setting or resetting codes for SPRINT, MCI, etc. To do that you would use I2NM-n.ASM - Irv Hoff  ; I2NM-2.ASM Telephone number overlay file for IMP2 - 08/20/85 ; ; ; This file can be edited to make a new library of telephone numbers. ; Each entry must be 34 bytes long. 36 telephone numbers are allowed, ; (A-Z and 0-9). Follow the format for the library entries already in ; the file. (Be sure to use spaces, not tabs.) ; ; At least 1 period (.) must precede each phone number in the table. ; ; Room has been left if your phone system requires extra characters such ; as: 1-313-846-6127 rather than the 313-846-6127 used in some areas. ; ; ; TO USE: First edit this file filling in answers for your own ; equipment. Then assemble with ASM.COM or equivalent ; assembler. ; ; A>MLOAD IMP2.COM=IMP240.COM,I2NM-1.HEX ; ; NOTE: For those revising the main program, check the location of ; NUMBLIB to see if the ORG value used here is correct. If ; not, change as needed. ; ;======================================================================= ; ; 08/20/85 - Added optional delay for dial tone - Irv Hoff ; 06/01/85 - First version for IMP2 - Irv Hoff ; ;======================================================================= ; ; YES EQU 0FFH NO EQU 0 ; WTDIAL EQU 5 ; Tenths-seconds to wait for dial tone after ; busy signal, minimum size redials quicker. ; Use 10 for 1 second, 15 for 1-1/2, etc. XFRSIZ EQU 16 ; File transfer buffer in Kbytes. Do not make ; any larger than BUFSIZ. 16k works fine on ; but slowest systems. ; ORG 0C00H-50 ;so 'NUMLIB' starts on even page ; ;======================================================================= ; ; Long distance alternate dialing such as MCI, SPRINT, etc. Must end ; with a '$', use as many commas (2 seconds delay, each) as needed to ; let the alternate dialing code return with a new dial tone. Fill in ; any character (periods are fine) after the $ to keep number of columns ; to 24, i.e., '1234567,,,,12345,,$.....' -- the first group is the ; MCI or SPRINT access number, the second group is the user number. A ; small delay is usually required after the billing number also. ; ALTDIAL1:DB 'xxxxxxx,,,,,,xxxxxxxx,,$' ;accessed by a < character ALTDIAL2:DB 'xxxxxxx,,,,,,xxxxxxxx,,$' ;accessed by a > character ; ;======================================================================= ; DIALWT: DB WTDIAL ; Waits for dial tone after busy signal SAVSIZ: DB XFRSIZ*8 ; Can easily change buffer size for file ; transfers with DDT for "NUMBLIB-1" ; address. ; ;======================================================================= ; ; Phone number library table for auto-dialing. Each number must be as ; long as"LIBLEN" (EQU at start of program). Some areas require extra ; characters such as: 1-313-846-7127. Room is left for those. Use ; a (<) for alternate dialing system #1, and a (>) for alternate dialing ; System #2. Either would preceed the actual number, for example: ; ; DB 'A=Alan Alda..........<123-456-7890' ;'A' ; ; - - - - - - -  - - - - - ; ; NOTE: At least one dot (.) MUST precede the actual phone number ; ; '----5---10---15---20---25---30--34' NUMBLIB:DB 'A=Norman Beeler.....1-408-245-1420' ; 'A' DB 'B=Rich Berg.........1-618-359-4446' ; 'B' DB 'C=Robert Blacher....1-202-254-2008' ; 'C' DB 'D=Brian Callahan....1-718-625-5931' ; 'D' DB 'E=Bob Clyne.........1-313-759-6569' ; 'E' DB 'F=Bill Earnest......1-215-398-3937' ; 'F' DB 'G=Norm Gregory......1-206-325-1325' ; 'G' DB 'H=Dave Hardy TCBBS..1-313-846-6127' ; 'H' DB 'I=Jeff King.........1-408-247-2853' ; 'I' DB 'J=Kim Levitt........1-213-653-6398' ; 'J' DB 'K=Tim Linehan.......1-206-357-1325' ; 'K' DB 'L=Jim Lopushinski...1-403-484-5981' ; 'L' DB 'M=Trevor Marshall...1-805-492-5472' ; 'M' DB 'N=Wayne Masters.....1-408-378-7474' ; 'N' DB 'O=Paul Matlin.......1-301-661-2175' ; 'O' DB 'P=Dave McCord ZCPR3.1-415-489-9005' ; 'P' DB 'Q=Byron McKary......1-408-965-4097' ; 'Q' DB 'R=Dick Mead.........1-818-799-1632' ; 'R' DB 'S=Chuck Metz........1-408-354-5934' ; 'S' DB 'T=Al Mehr...........1-408-238-9621' ; 'T' DB 'U=Jud Newell........1-416-232-0442' ; 'U' DB 'V=George Peace......1-717-657-8699' ; 'V' DB 'W=John Riehl........1-713-488-5619' ; 'W' DB 'X=Gary Shaffstall...1-303-985-1108' ; 'X' DB 'Y=Murray Simsolo....1-516-825-8465' ; 'Y' DB 'Z=Larry Snyder......1-305-677-8086' ; 'Z' DB '0=John Sojak........1-312-941-0049' ; '0' DB '1=Alex Soya.........1-305-727-0331' ; '1' DB '2=Ken Stritzel......1-201-584-9227' ; '2' DB '3=Henry Trujilio....1-207-443-4657' ; '3' DB '4=Bill Wood.........1-619-256-3914' ; '4' DB '5=Spare.............1-xxx-xxx-xxxx' ; '5' DB '6=Spare.............1-xxx-xxx-xxxx' ; '6' DB '7=Spare.............1-xxx-xxx-xxxx' ; '7' DB '8=Spare.............1-xxx-xxx-xxxx' ; '8' DB '9=Spare.............1-xxx-xxx-xxxx' ; '9' DB 0 ; End ; '----5---10---15---20---25---30--34' ; ;;;; END ; ; NOTE: IF YOU DO NOT (REPEAT DO NOT) WANT THE FUNCTION KEY ASSIGNMENTS ; BELOW TO GO INTO THE PROGRAM AT THE SAME TIME, REMOVE THE SEMI- ; COLONS SO THE WORD "END" IS ACTIVATED. IF THE SEMICOLONS ARE ; NOT THERE AT PRESENT, ADDING A FEW AHEAD OF THE "END" LINE WILL ; ALLOW THE FUNCTION KEY ASSIGNMENTS TO BE ENTERED. ; ; ; IMP240 function key overlay ; CIRCUM EQU 5EH ; Circumflex character displays on CRT ESC EQU 1BH ; Escape character, if you prefer CR EQU 0DH ; ; INTCPT: DB ESC ; Intercept character (prefix) ; ; ; The total characters, indluding CR, 0, etc. is limited to 256. Use ; I2FUNC.COM to make fast and easy changes of any or all function key ; assignments. You can change any of them to suit your own purposes, ; using the ones below as an example. ; FNCTBL: KEY1: DB 0,'DIR ',CR,0 KEY2: DB 1,'DIR *.* $U0AD ',CR,0 KEY3: DB 2,'KMD S ',0 KEY4: DB 3,'KMD R ',0 KEY5: DB 4,'BYE ',CR,0 KEY6: DB 5,'RBBS ',CR,0 KEY7: DB 6,'(vacant)',0 KEY8: DB 7,'(vacant)',0 KEY9: DB 8,'(vacant)',0 KEY0: DB 9,'Nice chatting, see you again soon... ',CR,0 ; DS 256-($-FNCTBL) ; Shows characters remaining to 11CA TBLEND EQU $ ; The table must terminate by 11CA END G A FEW AHEAD OF THE "END" LINE WILL ; ALLOW THE FUNCTION KEY ASSIGNMENTS TO BE ENTERED. ; ; ; IMP240 function key overlay ; CIRCUM EQU 5EH ; Circumflex character displays on CRT ESC EQU 1BH ; Escape character, if you prefer CR EQU 0DH ; ; INTCPT: DB ESC ; Intercept character (prefix) ; ; ; The total characters, indluding CR, 0, etc. is limited to 256. Use ; I2FUNC.COM to make fast and easy changes of any or all function key ; assignments. You can change any of them to suit your own purposes, ; using the ones below as an example. ; FNCTBL: KEY1: DB 0,'DIR ',CR,0 KEY2: DB 1,'DIR *.* $U0AD ',CR,0 KEY3: DB 2,'KMD S ',0 KEY4: DB 3,'KMD R ',0 KEY5: DB 4,'BYE ',CR,0 KEY6: DB 5,'RBBS ',CR,0 KEY7: DB 6,'(vacant)',0 KEY8: DB 7,'(vacant)',0 KEY9: DB 8,'(vacant)',0 KEY0: DB 9,'Nice chatting, see you again soon... ',CR,0 ; DS 256-($-FNCTBL) ; Shows characters ; I2PR-1 FOR IMP-244 11/18/85 ; ; Adapts a Penril 1200-AD modem to IMP244. The alternate long-distance ; routines routines have not been patched to work with the Penril modem. ; ; - Frank Sauciunas ; Voice 504-261-4035 ; BDOS EQU 05H BELL EQU 07H LF EQU 0AH CR EQU 0DH LIBLEN EQU 22H INBUFF EQU 80H TCHPUL EQU 010FH EXTCHR EQU 0114H ILPRT EQU 017DH INBUF EQU 0180H INMDM EQU 0186H SNDCHR EQU 018CH SNDSTR EQU 018FH TIMER EQU 0192H ALTDL1 EQU 0BCEH ALTDL2 EQU 0BE6H HEXSHOW EQU 0BFEH NUMBLIB EQU 0C00H TERML EQU 17F1H MDRCV EQU 1ED1H CRLF EQU 2DB7H STAT EQU 2DC4H KEYIN EQU 2DCFH TYPE EQU 2DD9H DECOUT EQU 2DFDH MOVE EQU 2EC0H KBDCHR EQU 2EFEH INLNCP EQU 32C8H MOVER EQU 3397H MENU EQU 3626H MDMSPD EQU 45ECH NEWLINE EQU 4727H SPACES EQU 4730H CLRTST EQU 476EH A$FLAG EQU 489AH B$FLAG EQU 48A4H CMDBUF EQU 48B9H C$FLAG EQU 48FAH STACK EQU 4AFEH BUFFER EQU 4E00H ; ; ORG 0400H ; ; ; DIAL to DIAL15 are untouched except for calls, jumps, etc. ; DIAL: XRA A STA FLAG2 STA FLAG3 STA B$FLAG LXI H,0000H SHLD A$FLAG LXI H,CMDBUF+1 MOV A,M CPI 4 JC DIAL2 MOV C,A MVI B,0 SUI 4 MOV M,A INX H XCHG LXI H,CMDBUF+6 CALL MOVER JMP DIAL4 ; DIAL2: MVI C,12H LXI H,NUMBLIB LXI D,BUFFER CALL NEWLINE STAX D INX D ; DIAL3: MVI B,LIBLEN CALL MOVE CALL SPACES PUSH H PUSH D LXI D,(17*LIBLEN) DAD D POP D MVI B,LIBLEN CALL MOVE POP H CALL NEWLINE DCR C JNZ DIAL3 MVI A,'$' STAX D CALL CLRTST MVI C,9 LXI D,BUFFER CALL BDOS CALL ILPRT DB CR,LF,'Enter library code ' DB 'or phone number,',CR,LF DB 'Hit RET to abort this function ' DB 'now or',CR,LF,'CTL-X quits ' DB 'while dialing or ringing: ' DB 0 LXI D,CMDBUF CALL INBUF ; DIAL4: LXI H,CMDBUF+1 MOV A,M ORA A JZ DIALEXIT STA FLAG4 LDA CMDBUF+3 CPI '/' CZ LDCMDBF CPI ',' CZ LDCMDBF1 CALL SETSPD ; DIAL4A: XRA A STA FLAG1 LDA FLAG3 ORA A JNZ GOT$NO LDA FLAG4 STA CMDBUF+1 CPI 2 JNC DIAL12 LXI H,CMDBUF+2 ; DIAL5: MOV A,M MVI B,'A' MVI E,0 MVI C,1AH ; DIAL6: CMP B JZ DIAL8 INR B INR E DCR C JNZ DIAL6 MVI B,'0' MVI E,1AH MVI C,0AH ; DIAL7: CMP B JZ DIAL8 INR B INR E DCR C JNZ DIAL7 JMP DIALBAD ; DIAL8: LXI H,NUMBLIB LXI B,LIBLEN MOV A,E ORA A JZ DIAL10 ; DIAL9: MOV A,M ORA A JZ DIALBAD DAD B DCR E JNZ DIAL9 ; DIAL10: MVI B,LIBLEN LXI D,CMDBUF+1 XCHG MOV M,B XCHG INX D CALL MOVE LXI H,CMDBUF+1 MOV E,M INX H ; DIAL11: MOV A,M CALL TYPE INX H DCR E JZ DIALEXIT CPI '.' JZ DIAL13 JMP DIAL11 ; DIAL12: LXI H,CMDBUF+1 MOV A,M MOV E,M INX H ; DIAL13: PUSH H CALL WAKEUP POP H ; DIAL13A:MOV A,M ORA A JZ DIALBAD CALL DIALA CALL STAT JZ DIAL15 CALL KEYIN CPI 18H JZ DIAL14 MOV B,A LDA EXTCHR CMP B JNZ DIAL15 ; DIAL14: MVI B,CR CALL SNDCHR JMP DIALEXIT ;..... ; ; ;*********************************** ; DIAL15: INX H DCR E JNZ DIAL13A MVI B,CR CALL SNDCHR CALL INMDM  CALL ILPRT DB ' - try #',0 LHLD A$FLAG INX H SHLD A$FLAG CALL DECOUT MVI A,' ' CALL TYPE JMP SMRESULT ;..... ; ; BSYANSR:LXI SP,STACK XRA A STA FLAG5 LDA B$FLAG ORA A JNZ DIALAGN2 CALL ILPRT DB CR,LF,CR,LF,' Redial? ' DB '(C/Y/N): ',BELL,0 CALL KBDCHR PUSH PSW CALL CRLF POP PSW CPI 'Y' JZ DIALAGN2 CPI 'C' JNZ DIALEXT1 MVI A,1 STA B$FLAG ; DIALAGN2: CALL CRLF JMP DIAL4A ; DIALA: CALL TYPE MOV B,A CALL DIALAD MOV A,B ; ; ; Penril accepts the following codes withing the phone numbers. ; ; (R)otary must preceed the number ; (T)one is not needed if modem switches are set for tone ; DIALA1: CPI '*' ; Star JZ DIALA2 CPI '#' ; Pound JZ DIALA2 CPI '-' ; Dash JZ DIALA2 CPI 'P' ; Pause 2 sec JZ DIALA2 CPI 'R' ; Rotory JZ DIALA2 CPI 'T' ; Tone JZ DIALA2 CPI 'W' ; Wait for JZ DIALA2 ; Dial tone. CPI '0' RC ; Zero CPI ':' ; Through RNC ; Nine ok. ; DIALA2: CALL SNDCHR JMP INMDM ; Eat char. ;..... ; ; DIALBAD:CALL ILPRT DB CR,LF,CR,LF,'++ Bad library ' DB 'number called ++',CR,LF DB 0 ; DIALEXIT: CALL CRLF ; DIALEXT1: LXI SP,STACK CALL MDQUIT XRA A STA B$FLAG JMP MENU ;..... ; ; ; Alternate dial has not been modified to work with a Penril ; DIALAD: LDA TCHPUL CPI 'T' RNZ MOV A,B CPI '<' JNZ DIALAD1 PUSH H LXI H,ALTDL1 JMP DIALAD2 ; DIALAD1:CPI '>' RNZ PUSH H LXI H,ALTDL2 ; DIALAD2:MOV A,M CPI '$' JZ DIALAD3 CALL TYPE MOV B,A CALL DIALA1 INX H CALL CKSTAT JMP DIALAD2 ; DIALAD3:MVI A,' ' MOV B,A CALL TYPE POP H RET ; CKSTAT: CALL STAT RZ CALL KEYIN CPI 18H JZ CKSTAT1 MOV B,A LDA EXTCHR CMP B MOV A,B JZ CKSTAT1 CPI 0BH RNZ MVI B,CR CALL SNDCHR MVI B,0AH CALL TIMER POP H JMP BSYANSR ; CKSTAT1:POP H JMP DIALEXIT ; INMODEM:CALL INMDM JNC INMODEM RET ; CLRBUF: MVI B,50H LXI H,INBUFF ; CLRBLP: MVI M,' ' INX H DCR B JNZ CLRBLP RET ; SETSPD: CALL MDMSPD CALL CRLF RET ; ; ; This routine wakes up the Penril ; WAKEUP: MVI B,CR ; Wakeup CALL SNDCHR ; Modem. ; ; ; Wait for Penril to send out its logo ; WAKE1: CALL INMDM JC WAKE1 CPI '>' ; Prompt JNZ WAKE1 ; ; ; Delay and send 'K' to start keyboard phone number entry ; MVI B,02 CALL TIMER MVI B,'K' ; Kybd CALL SNDCHR ; ; ; Wait for Penril to send number mesage ; ; ---> NO:_ <--- ; WAKE2: CALL INMDM JC WAKE2 CPI ' ' ; No:_ JNZ WAKE2 MVI B,02 JMP TIMER ; MDQUIT: MVI B,CR ; Kill CALL SNDCHR ; Modem MVI B,10 ; 1 sec. CALL TIMER RET ; ; ; The real fun starts here ; SMRESULT: CALL CLRBUF LXI H,INBUFF PUSH H LXI D,0400H ; Loop ; RESULT1:CALL MDRCV JZ RESULT2 CALL CKSTAT CALL INMDM JNC PRTEST DCX D MOV A,D ORA E JNZ RESULT1 POP H JMP ABORTIT ; RESULT2:CALL INMDM JC TSTMDM ; PRTEST: ANI 7FH CPI CR ; Ignore CR JZ RESULT2 CPI LF ; Ignore LF JZ RESULT2 POP H MOV M,A INX H PUSH H JMP RESULT2 ; ; ; The following are messages that the Penril modem sends to the system ; TSTMDM: POP H ; Penril LXI D,INBUFF ; Replies CALL INLNCP DB 'OK',0 ; Answered JNC ANSWER CALL INLNCP DB 'BUSY',0 ; Busy JNC PHBUSY CALL INLNCP DB 'DIALING: ',0 ; Dialing JNC DIALIT CALL INLNCP DB 'NO CD',0 ; No carrier JNC NOCRD CALL INLNCP DB 'NO ANSWER',0 ; No answer JNC NOANSWR CALL INLNCP DB 'NO RING',0 ; No ring JNC ABORTIT CALL INLNCP DB 'ABORT',0 ; Abort JNC ABORTIT CALL INLNCP DB 'ERROR',0 ; Error JNC ABORTIT CALL INLNCP DB 'NO DIAL TONE',0 JNC NODIALT JMP ABORTIT ; ; ; replies to Penril messages ; NOANSWR:CALL ILPRT DB 'no answer! ',0 JMP BSYANSR ; NOCRD: CALL ILPRT DB 'no carrier detected! ',0 JNC ABORTIT ; PHBUSY: CALL ILPRT DB 'busy! ',0 LDA HEXSHOW MOV B,A CALL TIMER JMP BSYANSR ; ; ; This routine eats the numbers that the Penril sends out when it is ; doing the dialing. ---> DIALING: 15045551212 <--- It also puts de- ; lays between numbers and times out when no more numbers are being sent ; from the Penril. ; DIALIT: CALL ILPRT DB 'dialing, ',0 LXI D,0C000H ; Timer ; EATWT: CALL MDRCV ; Wait for JZ EATIT ; Numbers DCX D MOV A,D ORA E JNZ EATWT JMP SMRESULT ; Timeout ; EATIT: CALL INMDM ; Eat numbers LXI D,0C000H ; Reset timer JMP EATWT ; ANSWER: CALL ILPRT DB CR,LF,CR,LF DB '<<<<-- CONNECTED -->>>>' DB BELL,0 JMP TERML ; ABORTIT:CALL ILPRT DB ' ',BELL,0 LDA HEXSHOW MOV B,A CALL TIMER JMP BSYANSR ; NODIALT:CALL ILPRT DB 'no dial tone! ',0 JMP ABORTIT ; LDCMDBF:STA FLAG2 ; LDCMDBF1: MVI A,0FFH STA FLAG3 STA B$FLAG MVI B,40H LXI H,CMDBUF+1 LXI D,C$FLAG JMP MOVE ; GOT$NO: LDA FLAG3 INR A INR A STA FLAG3 MOV C,A MVI B,0 LDA C$FLAG CMP C JNC GOT$NO1 MVI A,1 MOV C,A STA FLAG3 ; GOT$NO1:LXI H,C$FLAG DAD B JMP DIAL5 ;..... ; ; FLAG1: DB 0 FLAG2: DB 0 FLAG3: DB 0 FLAG4: DB 0 FLAG5: DB 0 ; ; END ; I2RV-4.ASM Racal-Vadic VA212PA or VA3451 special IMP overlay 10/27/85 ; ; ; The Racal-Vadic option in IMP supports the 1200V, 2400V and 2400PA ; autodial models. The VA212PA and 3451 models require a somewhat dif- ; ferent routine. Essentially they require a CR after the 'D' for dial ; and two carriage returns after the phone number has been entered, the ; first to enter the number in the modem and the second to initiate the ; actual dialing routine. In addition, they do use "verbose" mode, not ; terse mode, so it is necessary to "catch the echo characters" before ; proceeding. ; ; The following overlay can be added after the normal overlay, although ; it makes no difference when it is added, really - assuming the normal ; overlay is set for 1200 bps maximum speed and Racal-Vadic protocol. ; ; A>MLOAD IMP.COM=IMP2xx.COM,I2RV-x.HEX ; ; = = = = = = = = = = = = = = = = = = ; ; 10/27/85 There is enough difference in the VA212PA and VA3451 to add ; equates to select between the two. The 3451 is much slower ; to execute commands and needs substantial extra delays. My ; thanks to Bond Shands for extensive 3451 testing, I could do ; the 212PA testing myself. - Irv Hoff ; ; 09/17/85 Initial version - Irv Hoff ; ; = = = = = = = = = = = = = = = = = = ; ; NO EQU 0 YES EQU NOT NO ; ; ; Choose one of the following ; RV212 EQU YES RV3451 EQU NO ;..... ; ; ; Sets parameters to 1200 bps normal operation for Racal-Vadic protocol ; ORG 0103H DB 5 ; To initiate 1200 bps DB 0 ; No for 2400 bps maximum DB 0FFH ; Yes for 1200 bps maximum DB 0FFH ; Yes for Racal-Vadic protocol DB 0 ; No for Prometheus ProModem protocol ;..... ; ; ; Add extra CR for use with 212PA or 3451 dialing protocol ; IF RV212 ORG 05A9H CALL 0840H ENDIF ; RV212 ; IF RV3451 ORG 05CAH JMP 0840H ENDIF ; RV3451 ;..... ; ; ; Allows pulse dialing for alternate dial systems - until recently, most ; required touch tone dialing. (See the I2NM-x.ASM phone library over- ; lay for information on activating this feature.) ; ORG 06E8H JMP 06EEH ;..... ; ; ; Initialize modem, wait for "IM READY" to stop ; ORG 0794H CALL 0875H JMP 0762H ;..... ; ; ; Set up modem for dialing ; ORG 07B6H LXI H,0855H CALL 0875H JMP 0762H ;..... ; ; ; Put modem into terminal mode so it is in a position to accept dialing ; (Each # represents 100 milliseconds delay. Most can be removed for ; use with the 212PA modem which is significantly faster than the older ; 3451.) ; IF RV3451 ORG 07F1H DB 'I','##',0DH,'####','E'-40H,0DH,'###','$' ENDIF ; RV3451 ; IF RV212 ORG 07F6H DB '$' ENDIF ; RV212 ;..... ; ; ; Puts modem back into IDLE condition when finished ; ORG 080CH ; IF RV3451 DB '##',0DH,'##','I','####',0DH,'$' ENDIF ; RV3451 ; IF RV212 DB 0DH,'#','I','#',0DH,'$' ENDIF ; RV212 ;..... ; ; ORG 0840H ; IF RV212 CALL 0762H MVI B,0DH JMP 018CH ENDIF ; RV212 ; IF RV3451 LXI H,0849H CALL 0875H JMP 088FH ; Now go get the result code ; DB '###',0DH,'$' ENDIF ; RV3451 ;..... ; ; ORG 0855H ; IF RV212 DB 'D','#',0DH,'$' ENDIF ; RV212 ; IF RV3451 DB 'D','##',0DH,'##','$' ENDIF ; RV3451 ;..... ; ORG 08C6H JMP 08B5H ;..... ; ; ; In the SMRESULT area, fix for verbose ONLINE instead of terse ; ORG 097FH ; Change 'L' to 'O' for ONLINE DB 'O',0 ;..... ; ; ; In the SMRESULT area fix for verbose NO DIAL TONE instead of terse ; ORG 0997H ; Change 'E' to 'N' for No Dial tone DB 'F',0 JNC 09F0H ; ABORT ;..... ; ; ; If got an answer, go back to get the ONLINE result ; ORG 09AFH JMP 088FH ; Back to SMRESULT ;..... ; ; end ;----------------------------------------------------------------------- ; END F ; RV3451 ; IF RV212 DB 0DH,'#','I','#',0DH,'$' ENDIF ; RV212 ;..... ; ; ORG 0840H ; IF RV212 CALL 0762; I2VB-2.ASM - Adapts modems with verbose mode to IMP.COM - 06/17/86 ; ; (For AVATEX, etc. modems) ; ; The following routine adds verbose mode to the IMP modem program. A ; few 300/1200 bps modems (such as the 'AVATEX') have only verbose mode. ; This overlay will allow either verbose or terse modes to be used. The ; 'VERB' equate chooses between verbose and terse, if you have a modem ; with both modes and wish to try both methods. ; ; ; verbose terse ; ------- ----- ; OK 0 (initial commands were all ok) ; CONNECT 1 300 baud ; RING 2 (used only during auto-receive) ; NO CARRIER 3 (did not get a modem answer) ; ERROR 4 (Invalid command) ; CONNECT 1200 5 1200 bps ; ; ; The following overlay can be added after the normal overlay, although ; it makes no difference when it is added, really - assuming the normal ; overlay is set for 1200 bps maximum speed and Hayes protocol, which is ; automatically selected if the Racal-Vadic and Prometheus options are ; both set to "NO". ; ; A>MLOAD IMP.COM=IMP2xx.COM,I2RV-x.HEX ; ; = = = = = = = = = = = = = = = = = = ; ; 06/16/86 Added an "JMP ABORT" line to improve operation during busy ; v2 signal reception. - Irv Hoff ; ; 01/05/86 Verbose overlay for IMP244 modem program. For 300/1200 bps ; v1 modems that do not have 'terse' mode, such as AVATEX and a ; few others. (Or for those indivuals who may prefer to use ; the verbose mode for some reason.) ; - Irv Hoff ; ; = = = = = = = = = = = = = = = = = = ; ; VERB EQU '1' ; '1' for verbose mode ; '0' for terse mode (if available) DTR EQU 0FFH ; 0FFH if need +++ ATH0 to disconnect ; 0 if you can disconnect with DTR ;..... ; ; ; Sets parameters to 1200 bps normal operation with Hayes AT protocol ; ORG 0100H DS 3 ; Skip over JUMP to START MSPEED: DB 5 ; To initiate 1200 bps HS2400: DB 0 ; No for 2400 bps maximum HS1200: DB 0FFH ; Yes for 1200 bps maximum RACAL: DB 0 ; No for Racal-Vadic protocol PROMOMD:DB 0 ; No for Prometheus ProModem protocol ;..... ; ; ; Disconnects from the phone line with 'ESC N' in terminal mode or with ; 'DSC' or 'BYE' from the command line. ; ORG 011EH NODTR: DB DTR ;..... ; ; ; Allows the initialization routine to select between verbose or terse ; ORG 082EH DB VERB ;..... ; ; ORG 08D2H DB 0F2H ;..... ; ; ORG 08DCH DB 0CDH,0C8H,032H,043H DB 04FH,04EH,04EH,045H,043H,054H,031H,032H DB 030H,030H,000H,0D2H,035H,00AH,0CDH,0C8H DB 032H,04FH,04EH,04EH,045H,043H,054H,031H DB 032H,030H,030H,000H,0D2H,035H,00AH,0CDH DB 0C8H,032H,033H,000H,0D2H,006H,00AH,0CDH DB 0C8H,032H,04EH,04FH,043H,041H,052H,000H DB 0D2H,006H,00AH,0CDH,0C8H,032H,04FH,043H DB 041H,052H,000H,0D2H,006H,00AH,0CDH,0C8H DB 032H,035H,000H,0D2H,035H,00AH,0CDH,0C8H DB 032H,043H,04FH,04EH,000H,0D2H,057H,00AH DB 0CDH,0C8H,032H,04FH,04EH,04EH,000H,0D2H DB 057H,00AH,0C3H,0F2H,009H,03AH,007H,001H DB 0B7H,0C2H,06FH,009H,03AH,005H,001H,0B7H DB 0C2H,0F2H,009H,0CDH,0C8H,032H,036H,000H DB 0D2H,062H,00AH,0CDH,0C8H,032H,037H,000H DB 0D2H,0D1H,009H,0CDH,0C8H,032H,038H,000H DB 0D2H,0F2H,009H,0CDH,0C8H,032H,031H,030H DB 000H,0D2H,046H,00AH,0C3H,0F2H,009H,0CDH DB 0C8H,032H,034H,033H,000H,0D2H,062H,00AH DB 0CDH,0C8H,032H,036H,030H,000H,0D2H,0E5H DB 009H,0CDH,0C8H,032H,036H,031H,000H,0D2H DB 077H,00AH,0C3H,0F2H,009H,000H,000H,054H ;..... ; ; END ,043H,054H,031H,032H DB 030H,030H,000H,0D2H,035H,00AH,0CDH,0C8H DB 032H,04FH,04EH,04EH,045H,043H,054H,031H DB 032H,030H,030H,000H,0D2H,035H,00AH,0CDH DB 0C8H,032H,033H,000H,0D2H,006H,00AH,0CDH DB 0C8H,032H,04EH,04FH,043H,041H,052H,000H DB 0D2H,006H,00AH,0CDH,0C8H,032H,04FH,043H DB 041H,052H,000H,0D2H,006H,00AH,0CDH,0C8H DB 032H,035H,000H,0D2H,035H,00AH,0CDH,0C8H DB 032H,043H,04FH,04EH,000H,0D2H,057H,00AH DB 0CDH,0C8H,032H,04FH,04EH,04EH,000H,0D2H DB 057H,00AH,0C3H,0F2H,009H,03AH,007H,0vMLOAD24.ASM_  !"#$%&'()*+,-./0123456789:;<=>?@ABCoDEFGHIJKLMNOPQRSTUVWXYZ[\]^‘Ńgo?o/<{㋏] ~o^zO/ $YK G>%0Ќ<+`i0a`B3Apb b5@ fL dhfuf&=٣we "ÄҥwŻE"=jv! Dg_KguQi2yWY$hV7k&!(C{Ya XLs=٣wL1lFH4D#hU3yP34W]A /`i0KSXzd$#Ih糱]W?{D&TÄw^>'?c|YPhe AY*+gt=xwYݬxxyO~NY]#MY}_bg+,a]- ]"yW̨&C]R=4i"̨&C:6R"|]AA&'&dMDJ*<1+aI4GX A<Dc#KbX R*](_zWl҅wŻwqF5ܝS3\w>dxo>ãswGGܽ 8 t{ӽmxW? .61 o\~h'10w:.v`B<t0~|%ADUC:"AT ULm,`#K]V=Y+Kw-KPҏC%5MG]`=.ajra/<{s#83$'0t0t< Jz ٻQMNLb΃,fuf_%@:uiBZZS dTVkB <xn}K_|iB~.0`T&x7 5IZ.[l@ij0Ҥ X+--{6uMwj񕄤a+jH+O|?_^='AJ`5wŻ_xHֻ_  Sû]˻]}bwŻse ^#VU.Dz% lĤ@;L^W QbDFX+:#\/D %yґ^.z L,a]z'7rXؚCY3X2ޑv ޙXj{?B~%LcuMrrWK%T l5^yW+A:& Ę+޵:H/|XP%#\ψ%Qʐ%]A'QH/h]"yW&H/'R&.ё^.x%u@W ]lbzu D,Zt`ȚDwA,"1AHY2#\5bd2Xjwg+L XjwՒrKdK$6l;X,b=gR#\?!D y09[Jɻ--,_=D,D K" քrW%uzw&d 3b9[akB]n:_Xζ0AH䆼KքrWX1XNw}y#aL&pxW-^y;﮽[)"\c"\/ . }<Ȃzyy]nxWpMb]fݓL,An CH|l]L,An CH|l j5L ]-IGh됰yWӅ.0xzɻJ F, 11MHlUS L;&cja1cj;vMdZMĦ^yĈ Xl4xyӣ=Kxxgxhe O^?|wWvwWo ezlPf~EBZ,APf!5҅wX Nmt d-bIdZ&Z2Lau7b%dw֠o c kK5İ |Jޡh6atDYԅ{ܼC W"!- (ʶ@n C0\-mAYJ8@,J,>ö$'3C@TApr{LVЅ$wy 3ù\wwK'H*wXM8uOaӆXJ&dJ`l˦ЌM&(ezy v'ĒX[ wx{[9 b]f;{F,A@BZ, AB[; Á"`ބJ{VuNs8K' U4ޅ?4b:scX:C9M%;G[F fAB%w֠A,LA; 7hz kQ\e:5&0u-bj+, ,ƃ`^wXfl ]"3;0{ XhSx"- 2姏F X{K&ATz%^lz - s=`F,AL eiےf ;{F{Ĉk6mC  bċ {Op(b]f+ 2t]B%MA"V8 : l`6#ƃ^4 ]"yShvp!adwX Nm:YXvD ]ù'4p%pxs/8w'Pw8swwx;jl l`6#]At& 6 ]"6 QЫ &Ft Ht;7XC!k 0Ǯqt14dz4w8uf7KT%l&.zj ІD,!(@vP5$da;`q"vAf-wŻQMXKK$wQsx 8vUg&K@ ]"=&bوGy&y.tH3bb6bX$ CbSöû]&ATfwQM"DUtqB,Q ZHl,[j3LcpQM j,%B%d0zX6eށaUZ& Y1 bYZ# 5kiXb+'X$0&-iXٌﰚqkJe#AXLp~_իLpigK&zaXj3D PAXwxn0(SȈv Ckx;lp #d Zb2|ĈXUB,C`=2vT!f0&p S2h@V#ncW l#w8uqgK[a7” =;Tkx X2tRUw AXLےĒ̞ `rwMƌXL ,U"wb`6(2:w!"0dOôØ iwwx*2H3i`i0Vö$'T#Pdž%`M 8bF=#D N`Lj`Ma63b19wMa4b!QMF,+ J lIS &l0DɆ f$$v?iBS L;o+N}v . aT{6̈Rbj]P6RbQMl2 d0&-i`F, ,U"wؖ4pxqČk`brKUmHa;&cӈ#aӆ;<ԱyqČ{"F,ĺDlISL;&cF,#~`D5Y&6mj ,U"wXM^%ĒD#h Liػ]{ XaT{xgvĈXUB,1 :zdq bI@$N;pXJ``@sHwxnR ,%6,V#ncW lPիLXLmZ%&gWi.1CZ&\{aTcC,j&`S ` l0 ;0!{WԺ%&0PիLwXU+bIfO@La[% a51⠃IJàG&pםA, $ƃիLbrVUZw8uf7C3=ΝVIJzd+iÌX,%VKPիLiÁX,%VK<Ȃ-yMޡ%xWXa#@ mˮv& G&V'Y*P2]nAV#naE,1:0Hh CHjbAjؓe`UG8ߛ(ٰhmX $L;z6V xݯbiJFl% lX{Ĉ[XF  ;&Ft؛X=YMlX4xMe#+b{j E-HDUC-1"M5zd `+ D#eV؈!Ё+[%]AHma$'01-ymIwؖ4pc6.E,1Hh út M%0Yu VSz7%]ٌX6K&CjA:$n ν`]#pO é{Apx]:bV't0Ah;Ge#@&H ڡK vjA:$Ap֥7X(&u ֥CcJ8C bċ PG6\j L`æ wش-wŻL@DB:!Kx%]|s/XwLe͚C_Beƃ`^Wﰚq͚%!QeޡZ; 7HZB֪1 ڡK$0u-bIL@gXwx;naC,[[Xj&w Nɻ]\u^l z4wc D jeV#FAA(7D5LΖR ;#f\$br Ia6wxcDXLȠ'b0;<Ա!b$0kҸ0 &!.0ORMK4LɘØ cbbtpx';Dr!h -i@,A2{@:0iC bA;X2wxn0j2Ha1cՙ݁{*A .x\wwzd\4bƪ3ɍwx;V!%,].j/0Ģ RJ@ %ӈD5$b0 C3VInhzd~w}=x;n;&culXX!wG̸I `l2f0qHa<KG,1iA)ys/Xw)Oӽjb5k-wŻg+L K$wg]ƃ`^WT+zmI3bIfO6ڡ&% a51buE,D!ЅƃL,Sp[\KS $4+jz]{s/= [iV#Nݓw8uf7.>65p;M'6rX2Hƃ|lXv0uO{dЅ%Ζzs/^yĈS6mj z]&ν`ݑ5:&p:Hb tV#YwشaF,%uw8uW-X%K$ﰚq͚C  bT3TKwx{Yl_"bٔX}Z wG8$ɈHm16-;<Ա!b8b.q]:bو! a]mT ma ܐww8uugYxD Vp.{i]qxSw8uf")l4 .ta51f{yjwNdiw3VInjbLU%6;+`=2*#tt]{ &Fl`0X. `rva1clE,J`j LΖRtaﰚQbüw!Kl) 88b!"f%0P6j2-V#:a51f{y.&]iw3bwXM8 {Ĉ Ovb]{Ĉ O_̞24A;#fTk`IJC%0hf#T% %=w8Kհ' )yw8\-mCla51b #f%0{Ĉ O<9jbA]=t%6;+~=vaӆX&FTf3U]4+A;&Fl`0xKUmNOjw﮽8bƨdX:qd -NݣE”n;Tkx27X0l 4@3Ké{4X^)1 k|@~>2^>C{/6tf V#Jl60b ;H J`8$l0ž[)zy 45&wWv;ĈXxW]oD#eJͻ߾owŻV@ 5j"0(@Hjƃ`^WpFMԽjb5k%X4)1ԨRZ"{7Xc"k2HVwh+hVäF >J 8 ɻf_GD2)%XaDﰚY#"f%0{j L`CK]@fڠ aDXKx @fBNP uCHLx׬/pn"N\aw(4 5h  }D,<(@@am;! ]"3wx{reS zĈ|lX6PlجKx,pmIbIfOTےas+bu@Ѕb{]C b==o 6rG,l wXMtX6bm%@'Jh4W -Eò'xbH^5r@ONwe+leO$hV5wXMFY asbوaIdwXu%ƧaxIHt1Z K"Nc #zs/8va51b #f%0{s/hvbVLJ5F=SUﰚxK"^t$pOҬ+`w8fwz?={ <$A5vp&8 &͕, V~Id!5҅օ+$]lb. <t03ٳ$yWL$uCK"{]c6 !I, ޡZ; 7LW .tHƃL,1dJ,hwXM/"b-%=Ν%p X![ٓwXMtX6b%X4 [H{KѰ;ǹ33U4;"!-PMʠ.L8N&6 yMRb6m8KTl)%`æ 3bX-6C-wŻ߾wAH$h& eJͻ߾wŻR KP-eSЅw D`ua L JgЭNXu 7ƌSwϾ|zfͼxW++ D`&A36I -Յ%Po+ l=F@H$V'0J` ,m0"H` M%0e`6tLA(lcɻ/Ĩʞ 5xt~7x>I`ua ]4^zdJx“ua`MKwŻ!va=2vua $@0+zD>C36Q'!5҅cP û]7c]`51buE,.1 ;h^WﰚqKl,#TMVbCƚdA;3;&F܈#=_YH%Hf)Q`pnE,1,,|?{<oo7cb]f;^Ҁ#4K(Kؠ;;LlKwXYJ8`F,fPw.q#n lЬLc`BDUC6L-wŻAĘA+$t{ P01ޯф+L.Lp tKw K򮀉QaӴu6gB1'wAے-i`7%Y"ADPaӆ;lpxmI3bIfO Qww0# °$X.%ޡfPdže@XaDpd+{%w(l L.w8ܘ&FLwA8 {;;pjqo ؼù\w^! ʃlҀ.w7] ݵw(;ކ;<Ա!bX-aӆXJJ`ޡ%xW`Kl,{*%At`h*KXAػAd2Bƚd\%R5p_Xņƻ=  !J xr}=@-1HKp R5Av]:TK؀4@(Sw ֨Jwo*&b2h(lt]Bx%6/q#$"M% X!S;KFpx;Tk 6I@!? "#%K=;pX6{'=Yog-XL u]FzRP \@jT0 `:wJ`;0!thvN $B+/6$ ,,| ^zW+@FDCS Lֻ& &ڡջtiJ#,- Lw3aS LX!QՐI2=B0zd]D>tHt j]n#vs/{%S7Kd K" ö$'`:04d˩pĈqe#@:%p t% J`{ ކ̩XR5!S)L;MtqB,La`j;pXҕ4P z]ATwش@,&dX-Ӂ&p/6t yԨzShvlʠvC0;&F{^*b+A'fꞁB5ON6S𶢤LrÒgA;L)jؓeV'TE>{0#+XBS LX![B1{3bI [| J8`F,ͤM%0Y=YvJ8@,Jd+{Ԩ`:w2/pn"N\:w(;MtqB,yLQ0٧ޡAĒ5zX6j,  M%0Yp5bٔ@MxaIdaoB-Q]=݊X6b0.s)Òg|kj!lޡwhr;49qIJzzShvlt`X0-b``;49XL K" é{\w,- K" C %]Iݓapn";MtqB,2hԨ>o .Q!e6A;pXv` M%0Yh&1; l-FA2= U #3)VAz] l0"2J`0uk*1YlOC(cwqK8uLsHaڡY!I k"A.A;jbč8XWЬLc$ =D, SY&x\>JU'% ؈dw,) \e[ﰚq͚KVXStLL;lK$'a[l5=bX-A)A'09`S^j zĈ8/aӆXJ`͚RZ"MMaӆ-CK]@j"FJš5MIȻ]2{3^#d![nIduvykzJɻYx%bW X$1]n#ے-i`ے Fm׬;lp6aӆ; D`, b"M\(vA7V)]c )VA7V)d`=D4t8&g+fvxXb"M\ȻX$`F @m& U4d ]u&T `o5RDEåwŻbwxeHT|kD,CZ׈XUZwXg^zykD,%jqtҽ|kD,{"D&[0xޝ;aхa>5"KGü5";gFRu&׈Xt7w{c# D%S@)l<@;H6k$wj$l7V)yW^.%S@7V)d ]n.0'|X {"nHT/0'|Xlۅ `rwCZ!b J zW2/0'C, uPJ^`NTӄ QAS LֻuwEB[֥wT.jq$CvdУټץ_`Nt;YZ D|9Cd1H`u靬wQs‡%`rwp0s»WEn CLR/0'|Xt0t UޭG/0'|Xt0t)AT)T]{Wu]`NxXz4[D Ud){Wu&!bIrC D52T%wpwG%0xR %wŻ2h+ FJwŻMKRKfO>D,阘&$6 Z` ɻ]s»k}=EHlwŻĦ^!\?3KGz"sa]z' Qa]xw~u? Fm׬;lp6aӆ; D`, b"M\(vA7V)]c )VA7V)d`=D4t8&g+fvxXb"M\ȻX$`F @m& U4d ]u&T `o5RDEåwŻbwxeHT|kD,CZ׈XUZwXg^zykD,%jqtҽ|kD,{"D&[0xޝ;aхa>5"KGü5";gFRu&׈Xt7w{c# D%S@)l<@;H6k$wj$l7V)yW^.%S@7V)d ]n.0'|X {"nHT/0'|Xlۅ `rwCZ!b COM!9" 1I ͇MLOAD ver. 2.4 Copyright (C) 1983, 1984, 1985 by NightOwl Software, Inc. ͏ s͋zdͿͽ : ! * !  &<* !~#ʏG<6#" *}O| G6# x¿* +Fʏ#~ FUi~#Ui" ))))_* \ =A: i: i<2 –#![  < ,K6L#" x–2 ] 7ͽ <!e~ ½6H#6E#6X`^ ! ~4! ~d* 1:˜2 W _° g o: ̖ +: : " *  " :9 * " *   w# ØG! ~wx1N1N: R_!~! 4\ͽ 2 <4!͖ * * !:9ͽ \ͽ ѷ£*  " v+" * * " ͽ \ !  <~ !<ͽ ͽ <* * {OzGxr\!ͽ ͽ * #" yրOxGz͇Loaded * ͇ bytes (͇H)͇ to file %: ʚ͇ Over a * ͇ byte binary file͇ Start address: * ͇H Ending address: * ͇H Bias: * ͇H ͇Saved image size: * )͇ bytes (͇H, - ͇ records) * }G|͇ ++ Warning: program origin NOT at 100H ++ \ͽ <(͍~#%ʜ/Í:\©͋ <@/:[} o&>:/!]>./Í~ #/#  |{0/> /> /|}'Ɛ'@'_ͽ ~#=#~ FUX0:fAG?͇ Command line syntax error Ï͉ Ambiguous file name: % not allowed.͉ File % not found.͉ Disk full.͉ Directory full.͉ Premature end-of-file in %͉ Checksum error in %͉ Can't close %͉ Memory full while loading %͉ Format error in file %͉ Writing %, nothing loaded͉ MLOAD syntax: MLOAD [=] [,...] [] (brackets denote optional items) is the optional output filename are input file(s) is a hex load offset within the output file may be an optional non-HEX file to be patched by subsequently named HEX files (specifying The filetype enables this f!unction). Note that ZCPR2-style drive/user notation may be used in all file specifications (e.g., "B3:MYFILE.COM, "A14:MDM7.HEX"). ͍v>2 " " * }o|g"   !]<: ! } w#͋ 2  % x _ } 6# 6 # 6# ͨ # ͨ #( :~U AC @#~#:+xG~0G#~:K #{ ~.#yu  k { ͨ #*ʗ ?‹ U  { à >? ™ ͨ #à ~/., :=ȷ/  " 2 = go : *  y "    go\ ] y!"#$a{ e!z #v i HEX ͽ ͽ I I UTFIL> is the optional output filename are input file(s) is a hex load offset within the output file may be an optional non-HEX file to be patched by subsequently named HEX files (specifying The filetype enables this f This is the release date of the disk. I2LIB DOC cI2NM-2 ASM eI2PR-1 ASM l I2RV-4 ASM tI2VB-2 ASM xMLOAD24 AQM |^LOAD24 AQM MLOAD24 COM I2FUNC .COM 70 87 2816 22 I2FUNC .DOC 67 8D 1920 15 I2LIB .COM 47 84 1920 15 I2LIB .DOC AE 05 2048 16 I2NM-2 .ASM AB 95 6272 49 I2PR-1 .ASM 28 C5 8192 64 I2RV-4 .ASM 8A 29 3968 31 I2VB-2 .ASM BB 04 3584 28 MLOAD24 .AQM 97 01 24064 188 MLOAD24 .COM 6D 48 2816 22  Fog Library Disk FOG-CPM.122 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. Disk 1 of 4. Improved Modem Program. Filename Description -08-00 .86 This is the release date of the disk. -CPM122 .DOC This is the description of the disk contents. IMP244 .COM 8665 18K ver. 2.44 [Improved Modem Pgm 1 of 70] Modem communications program by Irv Hoff. Many users consider this the best telecommunication software package for CP/M computers. You must have the correct overlay for your modem and computer before it will work. Ordering a ready-to-go modem disk (be sure to specify what computer & modem) from the FOG office will normally mean you are shipped IMP. (If proper overlay is not available, you may get MDM740.) All instructions for building your own version plus the ASseMbler source for most overlays are included. IMP244 .BEL 338C 1K ver. 2.44 [Improved Modem Pgm 2 of 70] Information on disabling incoming bell. IMP244 .DTR 13DD 2K ver. 2.44 [Improved Modem Pgm 3 of 70] Patch to disable DTR. IMP244 .UPD 78D3 3K ver. 2.44  [Improved Modem Pgm 4 of 70] IMP .DOC BC9F 37K ver. 2.44 [Improved Modem Pgm 5 of 70] IMP .INF AC6A 16K ver. 2.44 [Improved Modem Pgm 6 of 70] IMP-DISK.NOT 2C88 2K ver. 2.44 [Improved Modem Pgm 7 of 70] How to change the IMP transfer buffer size. IMP-OVL .CUS FC9B 4K ver. 2.44 [Improved Modem Pgm 8 of 70] Information on customizing your own version of IMP. IMP-OVL .LST FD8B 6K ver. 2.44 [Improved Modem Pgm 9 of 70] Listing of all the overlays available. I2FUNC .COM 7087 3K ver. 2.44 [Improved Modem Pgm 10 of 70] IMP internal function key programmer. I2FUNC .DOC 678D 2K ver. 2.44 [Improved Modem Pgm 11 of 70] I2LIB .COM 4784 2K ver. 2.44 [Improved Modem Pgm 12 of 70] Dialing library (phone number list) editor. I2LIB .DOC AE05 2K ver. 2.44 [Improved Modem Pgm 13 of 70] I2NM-2 .ASM AB95 7K ver. 2.44 [Improved Modem Pgm 14 of 70] Dialing library (phone numb"er list) overlay. I2PR-1 .ASM 28C5 8K ver. 2.44 [Improved Modem Pgm 15 of 70] Overlay allow Penril 1200-Ad to work with IMP. I2RV-4 .ASM 8A29 4K ver. 2.44 [Improved Modem Pgm 16 of 70] Overlay for Racal Vadic VA212PA or VA3451 modems. I2VB-2 .ASM BB04 4K ver. 2.44 [Improved Modem Pgm 17 of 70] "Verbose mode" overlay required for AVATEX (etc.) modems. MLOAD24 .COM 6D48 3K ver. 2.44 [Improved Modem Pgm 19 of 70] (ver. 2.4) replacement for the CP/M load command that allows offsets, etc. Can be used to install IMP, MDM7, MEX, etc. overlays. ASseMbler source included. MLOAD24 .AQM 9701 24K ver. 2.44 [Improved Modem Pgm 18 of 70]  Racal Vadic VA212PA or VA3451 modems. I2VB-2 .ASM BB04 4K ver. 2.44 [Improved Modem Pgm 17 of 70] "Verbose mode" overlay required for AVATEX (etc.) modems. MLOAD24 .COM 6D48 3K ver. 2.44 [Improved Modem Pgm 19 of 70] (ver. 2.4) repl#$%&'