IMD 1.16: 28/05/2007 16:49:52 -FOG/UTL025         -FOG/UTL025DIRLBTECAQM<DIRLBTECCOM DIRLBTECDOC DISK DOC PRINTER BASo PRISM132TXT+PRLMOV AQMRAMDSK AQMs !"#$%&RAMDSK COM'(RAMDSK DOC)*RAMDSK TXT+CRCKLISTCRC DISK.DOC FOG/UTL.025 First Osborne Group (FOG) Utilities Disk DIRLBTEC is a version of DIRLABEL, found on FOG/UTL.013, modified for use with a TEC printer. It is believed that TEC print commands are similar to those for the C. Itoh 8510 and the NEC 8023. This program, submitted by Chris Hill, will print disk labels containing filenames found in each disk's directory. Place DIRLBTEC.COM in drive B and the disk to be labeled in drive A.   At the A> prompt, type B:DIRLBTEC For further information, see DIRLBTEC.DOC. PRINTER.BAS, submitted by Maj. Brian Dugle of Ft. Leavenworth, KS, is an MBASIC program for sending special print commands to an IDS Prism printer. It is desc`wP8w`x7WYQa}/e3XJ~Cbxh<+QaWLkj5i(Suo7O~' tϴyr{hWLkw)ai;Q~' t`ϴ+6Tc.uW.BrFg%Fw!_e_q t/By"WUۭZ)܁C2ribed in PRISM132.TXT, which was originally printed in the FOGHORN, Vol. 2, Nbr. 7, 4/83. Place PRINTER.BAS in drive A and MBASIC.COM in drive B. At the A> prompt, type B:MBASIC PRINTER Make sure the printer is turned on. RAMDSK will defi --> FILE: -FOG/UTL.025 CRC = 00 00 --> FILE: DIRLBTEC.AQM CRC = 80 35 --> FILE: DIRLBTEC.COM CRC = 30 6E --> FILE: DIRLBTEC.DOC CRC = F4 C8 --> FILE: DISK .DOC CRC = 36 61 --> FILE: PRINTER .BAS CRC = 80 2F --> FILE: PRIne a pseudo disk drive D contained in 20K bytes of RAM (memory). Place RAMDSK.COM in drive A. At the A> prompt, type RAMDSK Then PIP files to drive D, which will operate more efficiently than a regular floppy disk. Files in D will be lostSM132.TXT CRC = 86 26 --> FILE: PRLMOV .AQM CRC = 95 B3 --> FILE: RAMDSK .AQM CRC = FD DA --> FILE: RAMDSK .COM CRC = 97 6B --> FILE: RAMDSK .DOC CRC = E8 66 --> FILE: RAMDSK .TXT CRC = 37 7C ---------------------> SUM OF if power is turned off. PRLMOV is a PRL relative object file relocator used to build RAMDSK. For further information, see RAMDSK.DOC and RAMDSK.TXT. Squeezed assembly language .AQM files may be unsqueezed using utilities found on FOG/UTL.003, CRCS = 2C FB M CRC = 97 6B --> FILE: RAMDSK .DOC CRC = E8 66 --> FILE: RAMDSK .TXT CRC = 37 7C ---------------------> SUM OF .004, and .014. Jim Woolley FOG Disk Librarian May 1983  RAMDSK.DOC and RAMDSK.TXT. Squeezed assembly language .AQM files may be unsqueezed using utilities found on FOG/UTL.003,g3:X,_p]ܣ\W\uYbrvo2Ih<+QaWLkj5i(Suo7O~' tϴyr{hWLk`:ZѸ^\\k9 hU^K;:k2u51Sr f,Ed- g3Lp&8 gAk2u51SRK-=Yjg3Lp&8   !}) PROCESSOR: ASM DEPENDENCIES: NONE NOTES: Set "DUP" to true, to define a version which will write "/.SUB" out to disk to facilitate re-executing the same commands. To re-execute them, REN $$$.SUB=/.SUB then ^C. Alternatively, PIP $$$.SUB=/.SUB You might wish to name the version of this program assembled with DUP true, as ".COM (but this will "screw up" the Master CATalog system which reauires its "-name.xxx" to be the first file found) /.ASM by John M. Kodis CP/M U.G. contrubution November 1980 The "slant" program reads a command line which may contain several program invocations. A $$$.SUB file is built with these commands. This file is then executed. For example, the comman A program for quickie, use once and throw away submits. The command syntax is: A>/ [[;] ... ] d line: / asm copy; load copy; dir copy*.*; type copy.prn will build a file containing commands to assemble and load the file named 'copy', search the directory for all copy programs, and type the COPY.PRN file. Based on "/.ASM", CPMUG 40.1. This program was written because the abstract for volume 40 states that 40.1 works only under CP/M version 1.4, and that the source code cannot be provided. This version overcomes both of these difficulties. (Note: 40.1 "1.4 only" meant "not 1.3".   vBDIRLBTEC.ASMf   "!#$&%(')*+-,/.102435o7689:;=<>@?ABCDFEeym';uHCAb#"F7 dapfap60emeer3H@eB%OH, >3u]۷q;vmϹ;> RG pnFގ`f۲:nt:l6g9%RYץz@RR;8apf(H2=۞*"752= 6dD"r70̎5].GHIKJLMONPQRSTVUWXY[Z]^_\:`+dcabe70Q=]zCo .=,kLm%5 7vVwj!lsNGhrY&_cnpX&7ؤu~ z,MܖZqau(#Hlqfre͐bp{D^)3kYExvr#z8 '{P۳ˍty0̚ΐ&k:$f2dot*ʬ l{qGdn 3:\sn}8=]e '3˽"3;ʬFfCݦH#?lGόdeL9pHVV,u4w; ְ ֓lt2{;;;ʹV|ٵmݖl꺶6ln*l٥b w>ɪ%7DwVyp9gm5)WGgbuuM]RY G5r\Z֥6MZٞ5z~[[c9uZM|]kT/ߎzͪwi =Ϲ.= rgoxY@vț603wi{|fE^ϋ]yG >{,&=.ctUۂ^\&&/Vadv*u]\}ʯhb_Vm z^O\jMz|狥]j^,.Aj+xdjʾԪ=˃p |鿢I{(_.oW2+./. Gp II2/Y%Vypqh)=%]hv՞˺Hzt[cW1]WJ=\/&o 뎥U36iݾJe]3ɺHztl>cnI](z.XÕzn)eɕTnr.]zKoeuDw|80b {uFml:WlRϭ27>f؛F5I {&VP@.ܭY#ݳ32"@dey7H"7#Hqo>w&}g¾k|jK.h}p{{KʯŒ:\y. @5]|Tu9yjMz_\^p >RS4"5R>R;\d&}oXj/gJ_U+]/RNUw*K_^U|Mz컼H:VT.U~p Z\Yw&]>s4'g~]#YnY;OF3<Ȟ͐55nsd$7= Yr;7GFr#r;\ެ['yC@wddG08'ސY@倾ݚ0==͐HM2;ɽ . "/7ҽ?樆gۇ@du~;ƉtCdn O8ܓ 6Y׮3.7ҽ!7G5<Y݈t= l{vF P$emR-,M\ZU*{ŕM+KVG}^o+hS4{U5]*g3ڸL{%ۚ|Uw&=t|/\^ѤgzZe_Mz|P|&AmiX?˛^3 ;zlH{0{HoH/&/owH'Wu,M ZF:4/<|&O#]Ž_*  MR˗̱>~scO%"nR4I-4/?Q< X?3nƒ8gn9v!v|ַl7XC`]FӼ\>sU*ǮY哷\jC`%߿#4B<6k3ޱO]S8Ӽ%x`%р2Avnƒh@i/|);f|7=?9 ~vm-/&Om^13˵n8O_pn3>~R]>V^F'SN.bjK7#qpmFԤ/ʗT-KHM, {WLԤ/ {m1~h5Zy7# wꋎZl;]m1mƏrvp2_Xm]mUnN:nMMB|I ޥdZ&h@ֲOڏM=?W걩m 4/<߮d':V2/r>;O1ǮK;,_bKF5nFdzN ;Jb6齐7>&/>.Ի*)4/~哗ɀc,O]j>65 ;zfj2|ֻV _񯶛Rזuboq%mq?>i_/R N+vk/دW_זE|K~m9]_j<⠷RY7u_ȕ/52~Nm[U.URѪ>mϵxU8/F5=תnFmQ޶¶WεU*V^E-kU?˛^[N[JB|Qc%,GϯC|!|}t˲L/t鱩KoTfoy<봿c*36)6}qޥVCj4/>>v|ƴ liMJӼz?'/ǮYϘs8tseiⶌWQK0ەzXɼ}&/2c?Ԗ^ϳmWL V*seiⶌl]Z?^Hյۗ/Z%Qgz1l9)Hz'܏ؑEù/::be2XӐpNjnKD6gY?boq;?ocs5ʗZv,1V^v<O_he&Roe?V&Roe'Rod?\KML./|ɕX•yqJk ~x|4(NJ\ 4eIӼ\>s{{a\o؛F;V?oz4nij]jRe/ ][rT@7+Y+_ld%Ə:l܌3^>0%|vɚ-kS*=@Ӽ|e¿xAM\?B|Zy/c?yJ=qP/KI._LmfQ6Wfp_ŽGsT\KMLoy|jReϘRWW|\8(Ç~ycFR¶7}v_7>5R zm9]#J_r>;GC|e¿xAM8Om/|1oy952mn|7_T>nWϗE._Lmzgg`V}>Ii"簿0%|:O_\;_"bzNSF x_cW⑲ >qJML.oyR*|w^g`]ק~yӳHj >~kV >c? YҺ<6iiVw~4/?  /[Ԥª^ojKO+ ˣԤAǧ&U&Zy_z71^2ǺRoq%k~LdwK|6OZ\Ff ~o ~)lO3ݼ#4?:7.YMO#gM/&gLo*w-S&O#g_jMwi}Lٸka_vI^1]?<<[o '5֍[caoN ~jOD$]/pn'?&/&OmM?O^"Ro)6ɋ ~o?O#xoGʾʺۥ&R?yJK@ڿ&.5[/%s,_cX"4BZ8W|A}Z8(mn+|I/)8?jN|Ql jUb]|F~F 4/>Ӌ}?'o "4B5KӼz'i^>y|ƴ%`w/빲N+/#е:&/{߽+d?'o_2gLBb_MV w봲.u#nOr\i!|}4(뱩̱?BR 7B8תwK-gyl%&U~O{|fM+ ߾JcsԳTQ3k0_l;?\y_데L4p壝W<1] H7#eoŽ^ ,}.%~ .Ub]KP{*}w[#jG2hS*Ӏ@_>s'GR.%pu)ڹ{l{jo_}$Ir%7_Rz;_ Bj >kK+g۹V|yK } > /\qWU*Ԗ_zTQזV E϶sF\;|t|זV >|זV >|O{.OX_[Z7 3o@Ӽ"4Bx6JӼOilܕopӼ"4Bx6JӼOilv3$f}Dhr70>TTѡ&'F j?-/^4'}(no^. 4"ok$kv#:?-/^zF7Env`sn{Cnjx-"ȓoq83<@uG >QH = r#2o{u=Cʜ2dGn{AyFeެ3ds Z^E:knnGs Z^{=k=MOߋ^cp"ݗэӳ Hn s70mtQ5iyziyF 3p2զz]}{V9ˀ=rxePεIVxwMcW#* =r;[zX7{WƮT+/͟'W/*ۺ$ ++This program is looking for a file with the name -disknam.###(disk number) in USER 15. This becomes the disc reference and will remain on the disc even if you ERA *.*. Please save your disk number now as follows:  A> USER 15 A> SAVE 0 -disknam.### this dash--^ is mandatory A> USER 0 $T>Q$ Label Date--$iNAMES SUBe disc even if yo!9"1 :m2>$2>2:8@  > 2:0:!]~ Z 6?#S\<2ġ \<2Ċ R͡ \<=!o*w#´":<2×!{ͺ:!Bs#r# =:22= 2:=22 !m##:=2:!">2 =*^#V#">.ͭ###~=<~#~y:<'<'2#y>]:<'2:=2ʘ!ͺà>2:=2+_>$~ͭ#ú~ͭ#> í   :R0&&& &&&> ͭ> ͭ> ͭ> ͭ!ͺ:G>'͓>Kͭ!ͺ!ͺ !dͺ*NA< $^#V#N#F #v>2N#F#^q#Vpr+s͜ ڥ0í_>$~ͭ#ú~BSpace Left on Disk = $ | $Please enter today's   DIRLABEL.DOC Chris J. Hill, March 1983 DIRLABEL.TEC is a version of DIRLABEL.ASM modified for use with a TEC 8510 dot-matrix printer. The locations of theactual modifications made are documented in the early part of the assembly language program, so refer to the listing if you may be interested in using the program. The file name "DIRLABEL.TEC" will have to be changed to "DIRLABEL.ASM" and then ASseMbled and LOADed according to the instructions in the O-1 User's Guide, Rev:2/22/82, pp. 253-255. BEL.TEC" will have to be changed to "DIRLABEL.ASM" and then ASseMbled and LOADed according to the instructions in the O-1 Us100 S1$="*******************PRINTER***********************" 110 S2$=" " 120 S3$="PRINTER configures the PRISM 80 or 132 for" 130 S4$="software programmable parameters..." 140 S5$="Brian C. Dugle, Major, USAF, 21 Nov 82" 150 S6$=" " 160 S7$="*************************************************" 170 REM 180 REM ******INITIALIZE DEFAULT PARAMETERS******* 190 REM 200 PW=8.5: REM PW= page width (inches) 210 PL=11: REM PL= paper length (inches) 220 PS=.25: REM PS= paper offset from left edge printli  ne (inches) 230 ML=1.5: REM ML= left margin (inches) 240 MR=1: REM MR= right margin (inches) 250 MB=0: REM MB= bottom margin (inches) 260 CPI%=0: REM CPI%= char per inch 270 PRPL%=0: REM PRPL%= proportional selector 280 JUST%=0: REM JUST%=530 D0$=CHR$(27)+CHR$(84):REM Deletes to end of line... 540 D1$="Use decimals for fractional margin and page sizes" 550 D2$="Which choice?" 560 DEF FNCURSOR$(YPOS%,XPOS%)=CHR$(13)+CHR$(27)+"="+CHR$(YPOS%+31)+CHR$(XPOS%+31) 570 REM "YPOS" is line number justify selector 290 MODE%=2: REM MODE%= print mode selector (normal/expanded) 300 FONT%=1: REM FONT%= font selection 310 TH%=0: REM TH%= number of horiz tabs 320 TV%=0: REM TV%= number of vert tabs 330 LF%=8: REM LF%= linefeed size (48th on screen, "XPOS" is column and CHR$(13) is without LF, resets MBasic Characters per Line counter... 580 D3$=D$+FNCURSOR$(10,2) 590 D4$=FNCURSOR$(12,2)+D0$ 600 D5$=FNCURSOR$(15,2) 610 D6$=FNCURSOR$(20,2) 620 D7$=FNCURSOR$(23,2) 700 REM 710 REMs) 340 N=0: REM N= initial paper feed (lines) 350 ROLUP%=4: REM ROLUP%= superscript linefeed (48ths) 360 ROLDOW%=4: REM ROLDOW%=subscript linefeed (48ths) 370 REM B= linefeed input 380 REM J%= gosub counter 390 REM K%= counter for tab lo ******INITIALIZE PROGRAM****************** 720 REM 730 DIM TBV%(8) 740 DIM TBH%(21):REM This is the only subscripted variable with more than 10 values... 750 WIDTH 52: WIDTH LPRINT 255 760 REM 800 REM 810 REM ******FIRST SECTION - CHOOSE DATA******op 400 REM MB%= bottom margin position (48ths) 410 REM ML%= left margin position (120ths) 420 REM MR%= right margin position (120ths) 430 REM S= temp tab position (inches) 440 REM TBH%= horiz tab position (120ths) 450 REM TBV%= vert *** 820 REM 830 PRINT D$;FNCURSOR$(3,2);S1$:PRINT S2$:PRINT TAB(5) S3$:PRINT TAB(5) S4$ 840 PRINT TAB(5) S5$:PRINT S6$:PRINT TAB(3) S7$ 850 PRINT FNCURSOR$(11,5); 860 PRINT"Press:" 870 PRINT" <1> to use default parameters" 880 PRINT" <2> to read lastab position (48ths) 460 REM V%= choice, configuration settings 470 REM W$= Y/N answer 480 REM X%= choice: print, change or quit, etc. 490 REM 500 REM ******DEFINE PROMPT STRING CONSTANTS****** 510 REM 520 D$=CHR$(26):REM Clear screen... t saved parameters" 890 PRINT" <3> to select all new print parameters" 900 PRINT D6$;D2$;:X0%=VAL(INPUT$ (1)) 910 IF X0%<1 OR X0%>3 THEN PRINT" <1>, <2>, or <3> response only, please try again...": GOTO 900 920 ON X0% GOSUB 2010,4610,2210 930 REM 9  40 REM ***CHECK CODES*** 950 PRINT D$:PRINT 960 PRINT"Check the configuration codes:":PRINT 970 PRINT" Page size:";PW;"X";PL;"Left edge is set";PS 980 PRINT" inches left of 1st printable character" 990 PRINT" Margins: left:";ML;"right:";MR;"and bottoIF FONT%=1 THEN PRINT"Correspondence" ELSE PRINT"Draft" 1260 IF CPI%=0 THEN PRINT" No character size set, printer defaults to SWs 1 and 2 or last software setting" ELSE PRINT" Char code:";CPI%;" (29=10cpi, 30=12, 31=16.8)" 1270 PRINT" Proportional pm:";MB 1000 PRINT" leaving";PL-MB;"inches vertical space for text" 1010 ML%=INT((ML-PS)*120):IF ML%<0 THEN ML%=0 1020 MR%=INT((PW-PS-MR)*120):IF MR%>((PW-PS)*120)THEN MR%=(PW-PS)*120-15 1030 M=(MR%-ML%)/120:IF CPI%=0 THEN CPI=13.3 1040 IF CPI%=29 THErint ";:IF PRPL%=1 THEN PRINT"ON" ELSE PRINT"OFF" 1280 PRINT" Justified print ";:IF JUST%=1 THEN PRINT"ON" ELSE PRINT"OFF" 1290 PRINT" Linefeed set to";LF%;"48ths inches, or";48/LF%;"lpi" 1300 PRINT" Initial paper position";N;"lines from top" 1310 PRINN CPI=10 1050 IF CPI%=30 THEN CPI=12 1060 IF CPI%=31 THEN CPI=16.8 1070 M1=M*CPI 1080 PRINT" Printline is";M;"inches long, or";M1;"characters" 1090 PRINT" at";CPI;"fixed spacing" 1100 IF TH%<=0 THEN PRINT" No horizontal tabs set":GOTO 1170 1110 PRT D7$;"Are the settings correct ?";:W$=INPUT$ (1) 1320 IF W$="Y" OR W$="y" GOTO 1610 1330 REM 1400 REM ***SELECT CODES TO CHANGE*** 1410 PRINT D$:PRINT 1420 PRINT"Select which configuration to set:":PRINT 1430 PRINT" <1> Paper Size" 1440 PRINT"INT" Horizontal tabs set at:"; 1120 FOR K%=1 TO TH% 1130 PRINT TBH%(K%)/120; 1140 IF TH%-K%=1 THEN PRINT"and"; 1150 NEXT 1160 PRINT"inches from zero print position" 1170 IF TV%<=0 THEN PRINT" No vertical tabs set":GOTO 1240 1180 PRINT" Vertical t <2> Margins (left, right, bottom)" 1450 PRINT" <3> Tab settings (horiz and vert)" 1460 PRINT" <4> Print Mode" 1470 PRINT" <5> Character size/Font" 1480 PRINT" <6> Proportional print" 1490 PRINT" <7> Justification (at printer)" 1500 PRINT" <8> Initiaabs set at:"; 1190 FOR K%=1 TO TV% 1200 PRINT TBV%(K%)/48; 1210 IF TV%-K%=1 THEN PRINT"and"; 1220 NEXT 1230 PRINT"inches from top of form" 1240 PRINT" Print mode: ";:IF MODE%=2 THEN PRINT"Normal" ELSE PRINT"EXPAND" 1250 PRINT" Font:";FONT%;"is ";:l paper feed" 1510 PRINT" <9> Linefeed size (incl sub/supr script)" 1520 PRINT" <0> All" 1530 PRINT D6$;D2$;:V%=VAL(INPUT$ (1)) 1540 PRINT D3$;:ON V%+1 GOSUB 2210,3310,3110,4110,3710,3510,3810,3910,4010,4410 1550 GOTO 950:REM Return to display to chec  k values... 1580 REM 1590 REM ******SEND OR SAVE GOOD DATA************* 1600 REM 1610 PRINT D3$;"Do you want to send these to the printer or save":PRINT" on disk?" 1620 PRINT" <0>=No, quit" 1630 PRINT" <1>=Yes, just save these settings on disk" 166$;D2$;:X2%=VAL(INPUT$ (1)) 3160 IF X2%<1 OR X2%>3 THEN PRINT"<1>, <2>, or <3> only please...":GOTO 3150 3170 IF X2%=1 THEN ML=1:MR=1:MB=0 3180 IF X2%=2 THEN ML=.5:MR=.5:MB=.8 3190 IF X2%<>3 GOTO 3250 3200 PRINT D3$;D1$ 3210 PRINT D4$;:INPUT"Left mar40 PRINT" <2>=Yes, just send to printer, do not save" 1650 PRINT" <3>=Yes, send to printer and save on disk" 1660 PRINT D6$;D2$;:X1%=VAL(INPUT$ (1)) 1670 IF X1%<0 OR X1%>3 THEN PRINT" <0>, <1>, <2>,or <3> only please...": GOTO 1660 1680 ON X1%+1 GOSgin SIZE desired: ; ";ML 3220 PRINT D4$;:INPUT"Right margin SIZE desired: ; ";MR 3230 PRINT D5$;"Use a bottom margin for printing program listings":PRINT"and so on, leave at zero for printing WordStar":PRINT"documents" 3240 PRINT D4$;:INUB 2010,5210,4810,2110 1690 END 1700 REM ******CONTROL SUBROUTINES***************** 2000 REM 2010 RETURN:REM Goes back to display section without changing default settings... 2090 REM 2100 REM ***SEND & SAVE*** 2110 GOSUB 4810:REM First LPRINT to PrPUT"Bottom margin SIZE desired: ; ";MB 3250 RETURN 3290 REM 3300 REM ***PAPER SIZE & POSITION*** 3310 PRINT D3$;"Select the paper size:" 3320 PRINT" <1> Single sheet 8.5 x 11, at 'C' mark" 3330 PRINT" <2> Single sheet 8.5 x 14" 3340 PRINT" <inter... 2120 GOSUB 5210:REM Then save on disk... 2130 RETURN 2190 REM 2200 REM ***LOOP THRU ALL INPUTS*** 2210 FOR J%=1 TO 9 2220 ON J% GOSUB 3310,3110,4110,3710,3510,3810,3910,4010,4410 2230 NEXT 2240 RETURN 2990 REM 3000 REM ******INPUT/CHANGE3> Other" 3350 PRINT D6$;D2$;:X3%=VAL(INPUT$ (1)) 3360 IF X3%<1 OR X3%>3 THEN PRINT"<1>, <2>, or <3> only please...":GOTO 3350 3370 IF X3%=1 THEN PW=8.5:PL=11:PS=.25 3380 IF X3%=2 THEN PW=8.5:PL=14:PS=.25 3390 IF X3%<>3 GOTO 3490 3400 PRINT D3$;D1$;  SUBROUTINES************ 3090 REM 3100 REM ***MARGINS*** 3110 PRINT D3$;"Select the margins desired:" 3120 PRINT" <1> left= 1, right= 1, bottom= 0 (WordStar)" 3130 PRINT" <2> left=.5, right=.5, bottom=.8 (LLISTs)" 3140 PRINT" <3> Other" 3150 PRINT D 3410 PRINT D4$;:INPUT"Paper width ; ";PW 3420 PRINT D5$;"Input the position of the left edge of the paper" 3430 PRINT"from the leftmost print column. A positive value" 3440 PRINT"may be read directly from the gage if you have the" 3450 PR  INT"sheet feeder." 3460 PRINT D4$;:INPUT"Paper edge position ; ";PS 3470 PRINT D3$;D1$;D5$;"This length must agree exactly with WordStar to":PRINT"avoid text creeping up or down on succeeding pages" 3480 PRINT D4$;:INPUT"Paper length ";:W$=INPUT$ (1) 3920 IF W$="Y" OR W$="y" THEN >; ";PL 3490 RETURN 3500 REM ***CHARACTER SIZE & FONT*** 3510 PRINT D3$;"Character size:" 3520 PRINT" <0>=None (old or default value)" 3530 PRINT" <1>=10 cpi" 3540 PRINT" <2>=12 cpi" 3550 PRINT" <3>=16.8 cpi" 3560 PRINT D6$;D2$;:CPI%=VAL(INPUT$JUST%=1 ELSE JUST%=0 3930 RETURN 3990 REM 4000 REM ***INITIAL LINEFEEDS*** 4010 PRINT D$;D5$;"If you have a listing program that inserts linefeeds" 4020 PRINT"to skip over perforations, putting about half that" 4030 PRINT"number of linefeeds here all (1)) 3570 IF CPI%<0 OR CPI%>3 THEN PRINT" <0>, <1>, <2>, or <3> only please...": GOTO 3560 3580 IF CPI%>0 THEN CPI%=CPI%+28 3590 PRINT D3$;"Font:" 3600 PRINT" <1> for correspondence" 3610 PRINT" <2> for draft" 3620 PRINT D6$;D2$;:FONT%=VAL(INPUT$ (ows equalizing the top" 4040 PRINT"and bottom margins. Do not use this for WordStar" 4050 PRINT"documents--you can also use Form Set to set the top" 4060 PRINT"line position for listing programs, but do not use" 4070 PRINT"it in WordStar." 4080 PRINT1)) 3630 IF FONT%<1 OR FONT%>2 THEN PRINT" <1> or <2> only please...": GOTO 3620 3640 RETURN 3690 REM 3700 REM ***PRINT MODE*** 3710 PRINT D3$;"Mode:" 3720 PRINT" <1> for EXPANDED (doublewidth) characters" 3730 PRINT" <2> for NORMAL characters" 37 FNCURSOR$(10,2);:INPUT"Number of linefeeds to position paper; ";N 4090 RETURN 4100 REM ***TABS HORIZ/VERT*** 4110 PRINT D3$; 4120 INPUT"HOW MANY horizontal tabs (0 to 21); ";TH%:IF TH%<=0 GOTO 4210 4130 IF TH%>21 THEN PRINT" The max number o40 PRINT D6$;D2$;:MODE%=VAL(INPUT$ (1)) 3750 IF MODE%<1 OR MODE%>2 THEN PRINT" <1> or <2> only please...": GOTO 3740 3760 RETURN 3790 REM 3800 REM ***PROPORTIONAL*** 3810 PRINT D3$;"Do you want the print PROPORTIONAL ";:W$=INPUT$ (1) 3820 IF W$f horizontal tabs is 21, try again...": GOTO 4120 4140 PRINT:PRINT"Identify tab positions from the left edge of the" 4150 PRINT"paper, in order":PRINT 4160 FOR K%=1 TO TH% 4170 PRINT"Tab #";K%;"(inches from left); ";:INPUT S 4180 TBH%(K%)=INT((S-P  S)*120) 4190 IF K%>1 THEN IF TBH%(K%-1)>TBH%(K%) THEN PRINT"Tabs must be in left to right (small to large) order":GOTO 4170 4200 NEXT 4210 PRINT D3$; 4220 INPUT"HOW MANY vertical tabs (0 to 8); ";TV%:IF TV%<=0 GOTO 4310 4230 IF TV%>8 THEN PRINT"ThPUT"Number of 48ths inch per linefeed; ";LF% 4540 PRINT D3$;"The printer is set to use a half linefeed (4 48ths":PRINT"inches) for subscripts and superscripts." 4550 PRINT D5$;"Do you want to change these ?";:W$=INPUT$ (1) 4560 IF W$="Y" OR W$=e max number of vertical tabs is 8, try again..": GOTO 4220 4240 PRINT:PRINT"Identify tab positions from the top edge" 4250 PRINT"of the paper, in order.":PRINT 4260 FOR K%=1 TO TV% 4270 PRINT"Tab #";K%;"(inches from top); ";:INPUT S 4280 TBV%(K%)"y" THEN PRINT"How many 48ths (<0> to <9>)?";:R%=VAL(INPUT$ (1)):ROLUP%=R%:ROLDOW%=R% 4570 RETURN 4590 REM 4600 REM ***INPUT FROM DISK FILE "PRINTER.DAT"*** 4610 OPEN "I",#1,"PRINTER.DAT" 4620 INPUT#1,PL,PW,PS,ML,MR,MB,TH%,TV%,LF%,ROLUP%,ROLDOW%,FONT%=INT(S*48) 4290 IF K%>1 THEN IF TBV%(K%-1)>TBV%(K%) THEN PRINT"Tabs must be in top to bottom (small to large) order":GOTO 4270 4300 NEXT 4310 RETURN 4390 REM 4400 REM ***LINEFEED SIZES*** 4410 PRINT D3$;"Linefeed is";LF%;"48ths, select:" 4420 PRINT",MODE%,CPI%,PRPL%,JUST% 4630 IF TH%<1 GOTO 4670 4640 FOR K%=1 TO TH% 4650 INPUT#1,TBH%(K%) 4660 NEXT 4670 IF TV%<1 GOTO 4710 4680 FOR K%=1 TO TV% 4690 INPUT#1,TBV%(K%) 4700 NEXT 4710 CLOSE#1 4720 RETURN 4790 REM 4800 REM ***LPRINT CODES TO PR <0> No change, leave at above or" 4430 PRINT" <1> Change in inches per linefeed or" 4440 PRINT" <2> In lines per inch (lpi) or" 4450 PRINT" <3> In 48ths of an inch" 4460 PRINT D6$;D2$;:V%=VAL(INPUT$ (1)):PRINT 4470 IF V%<0 OR V%>3 THEN PRINT"<0>, <1>INTER*** 4810 LPRINT CHR$(27)+"J",ML%,MR%,"$"; 4820 LPRINT CHR$(27)+"R",FONT%,"$"; 4830 IF CPI%<>0 THEN LPRINT CHR$(CPI%); 4840 LPRINT CHR$(27)+"L",(INT((PL*48)+.5));:IF MB<>0 THEN LPRINT (INT((PL-MB)*48)); 4850 LPRINT"$"; 4860 IF PRPL%=1 THEN LPRINT, <2>, or <3> only please...": GOTO 4460 4480 PRINT D6$;:ON V%+1 GOTO 4540,4490,4510,4530 4490 INPUT"Size of linefeed in inches; ";B 4500 LF%=INT(B*48):GOTO 4540 4510 INPUT"Number of lines per inch; ";B 4520 LF%=INT(48/B+.5):GOTO 4540 4530 IN CHR$(16); ELSE IF CPI%<>0 THEN LPRINT CHR$(6); 4870 IF JUST%=1 THEN LPRINT CHR$(4); ELSE IF CPI%<>0 THEN LPRINT CHR$(5); 4880 LPRINT CHR$(27)+"B",LF%,"$"; 4890 IF ROLUP%=4 AND ROLDOW%=4 GOTO 4920 4900 LPRINT CHR$(27)+"C",ROLDOW%,"$"; 4910 LPRINT CHR$  (27)+"D",(-ROLUP%),"$"; 4920 IF N<1 GOTO 4970 4930 WHILE N>.5 4940 LPRINT CHR$(10); 4950 N=N-1 4960 WEND 4970 IF TH%<1 GOTO 5030 4980 LPRINT CHR$(27)+"F"; 4990 FOR K%=1 TO TH% 5000 LPRINT TBH%(K%); 5010 NEXT 5020 LPRINT"$"; 5030 IF TV%<1 GOThoul b o interes t man othe neophyt hacker ou ther wh ar workin a learnin WordSta an gettin i t tal t variou do matri printers Severa article hav appeare i th FOGHOR abou interfacin WordSta an th th Epso MXO 5090 5040 LPRINT CHR$(27)+"E"; 5050 FOR K%=1 TO TV% 5060 LPRINT TBV%(K%); 5070 NEXT 5080 LPRINT"$"; 5090 LPRINT CHR$(MODE%); 5100 RETURN 5190 REM 5200 REM ***SAVE IN FILE "PRINTER.DAT"*** 5210 OPEN "O",#1,"PRINTER.DAT" 5220 WRITE#1,PL,PW,PS,M-80/100 bu foun th informatio somewha fragmented--n doub du t m lac o experienc wit wha wa bein described I thi articl wil attemp t describ m experience i enoug detai s tha som o yo ne guys/gal ou ther cL,MR,MB,TH%,TV%,LF%,ROLUP%,ROLDOW%,FONT%,MODE%,CPI%,PRPL%,JUST% 5230 IF TH%<1 GOTO 5270 5240 FOR K%=1 TO TH% 5250 WRITE#1,TBH%(K%) 5260 NEXT 5270 IF TV%<1 GOTO 5310 5280 FOR K%=1 TO TV% 5290 WRITE#1,TBV%(K%) 5300 NEXT 5310 CLOSE#1 5320 RETURN a lear fro them fo wha the are Specifically a goin t tal abou SETUP INSTALLin WordStar th capabilitie hav foun i m Pris 13 fro Integra Dat Systems an ho go i runnin wit m blu cas Osborn 1. fe wee5330 END 0 NEXT 5270 IF TV%<1 GOTO 5310 5280 FOR K%=1 TO TV% 5290 WRITE#1,TBV%(K%) 5300 NEXT 5310 CLOSE#1 5320 RETURN H%(K%) 5260 NEXT 5270 IF TV%<1 GOTO 5310 5280 FOR K%=1 TO TV% 5290 WRITE#1,TBV%(K%) 5300 NEXT 5310 CLOSE#1 5320 RETURN k afte go th compute m mai orde printe showe up s decide t jum righ i an hoo i up ordere a RS-23 cabl wit th printer th cabl cam wit ta readin "Alto t Pape Tiger" picke th seria cabl becaus i .PO0 Talkin t Pris Printe wit WordSta an th Osborn 1 b Bria Dugle Fighte Pilo an sometim student... (Majo Dugl i a Ai Forc F-1 pilo presentl attendin schoo wit th Arm a F Leavenworth KS) Thi articl swa available th ID printer us D 2 connecto fo eithe seria o paralle communications bu th edg connecto fo th Osborn wa no availabl ove th phon t hoo u t th paralle port. surve o th User' Referenc Guid   fro th Osborn an th Owner' Manua fro th Pris Printe indicate tha neede t us SETUP progra o th Osborn CP/ Syste disk t configur th compute t tal t th printer di thi b puttin tha dis i driv A an t soo foun tha th programmabl functions describe i Tabl 6- o th Owner' Manual require sendin "escap sequences t th printer WordSta doe no see t lik non- printin character lik escape s wen bac t th books h W dis i driv B: an typin SETU Th prompt i SETU ar self-explanatory th selection mad include Diabl (XON/XOFF seria protoco an 120 baud SETU als allow yo t assig value t th "specia functio keys" ^ thTh Use Guid include sectio o "Modifyin WordSta o th Osborn 1 b Tho Hoga startin o pag A-1 Thi sectio describe progra name INSTAL whic i o th CP/ Utilit disk INSTAL allow yo t chang th terminal printer cr ^9 I yo hav no don i already sugges yo loa commonl use string suc a "LB: an som other wil identif later. Afte completin th setu o m WordSta disk hooke u th cabl t th printe ( als se it jumpommunication protocol and/o th prin drive i th WS.CO progra an als allow yo t mak byt b byt patches I INSTAL yo wil fin brie explanation ar give o eac option Selectin on doe no commi yo t changin th W proer an di switche fo seria dat a 120 baud an turne i on--i worked di fin i wa necessar t cycl th OF LINE/O LIN switc sometimes thi turne ou t b cause b th protoco wa using. Th Pris Printe i ver "gra file--i allow yo t "bac out o an selectio befor makin i permanent Thi let yo chec ou an rea abou al th option befor yo chang anything Tr it. di no chang th termina selectio (selectio "U i "n changsmart" i know whe i ha pape i it fo instance an wil no "go withou it A lon a yo leav i of lin (i ma b turne o an hooke up an pu i o lin onl whe yo wan t sen i tex o contro codes i wil wor fine. e") a usin th Teletype-lik printe optio righ now selectio "A" bu selectio "C (backspacin teletype work also Sinc th protoco i handle outsid o WS th "n protocol optio an us o th CP/ Lis Drive see t b th c  orrec choice t INSTALL thir an fourt questions O th othe hand ra i fo whil wit XON/XOF se i bot W an i CP/ an i stil worked s wh knows? A thi poin yo wil hav indicate choice o "n change (selectio  valu o som functions e.g. th siz o linefee o th positio o margin o ta stops. Tabl 6-4 mentione above list 1 programmabl functio parameter tha ma b se b sendin variou escap sequence t th printer A exa"U" t INSTALL question abou th terminal printer communication protocol an prin driver Th nitty- gritt par come nex i th "specia modifications section INSTAL allow yo t ad specia characte sequence t hav you printempl i th Left/Righ Margi command Th tw argumen value ar th position o th lef an righ margin i 120th o a inc measure fro th left-mos prin respon correctl t WordSta commands Thes includ hal lin advance backspace alternat characte set an s on whic ma var fro on printe t th next Eac sequenc i addresse b labe store i INSTAL o b fou digi he mtabl characte positio o th printer Escap i ASCI characte 2 (decimal) o 1 (hex) Th comman character J an th argumen value mus b separate b comm o spac characters Th terminato mus b non-numeri characte othe emor address ( kno o n complet inde t thes label an addresse bu rea WordSta Referenc Manual o th Customizatio Note probabl explai them Som ar liste i th Use Guid (mentione below an other hav bee identifie itha comm o space th dolla sig i suggeste sinc i i printin character bu perio o othe characte wil work. A exampl o th margi settin comman sequenc describe abov woul b CHR$(27) J 0 780 $ Thi sequenc wou othe FOGHOR articles.) Th Pris Printe respond t th standar ASCI code fo suc command a backspace linefeed an carriag return I als wil accep mor complicate command beginnin wit a escap characte whic establis thl se th lef margi a th left-mos positio an th righ margi a 1/ inche t th right Thi sequenc coul b loade int WordSta usin th specia modification par o th INSTAL program bu require a leas byte o space.    loo a th "specia modifications label an th spac allotte t eac o page A-1 an A-1 o th Use Guid show tha findin plac fo thi comman coul b difficult Th onl are lon enoug i th initializatio sequenc whic a som o th code tha wil fi suc a PALT: PSTD: ROLUP: ROLDOW: an USR1 thr USR4: Tabl 6- o th printe Owner' Manua list th contro code fo prin mode characte size typ spacin an s on PSTD an PALT coul b use tllow u t 1 characters Puttin thi margi comman ther woul requir startin a th labe PSINIT an insertin th character 09h 1Bh 4Ah 2Ch 30h 2Ch 37h 38h 30h an 24h Thes enterie ar facilitate b hittin RETUR fo label switc betwee 1 cp an 1 cp densitie (characte sizes) fo example Thi woul requir th following: PSTD 0 Numbe o characters PSTD + 1 1 cp densit cod fo th Pris  afte th firs one INSTAL increment th labe addres b on whe yo hi RETUR instea o givin i ne labe o a address Onl th tw he value fo eac characte ar type in th lowe cas "h jus identifie eac a representin Printer PALT 01 PALT + 1 1 cp densit code Usin thes code i WordSta document woul requir ^P fo standar an ^P fo alternat densit selection ROLUP an ROLDOW coul b loade wit  byt i hex. Inspectin th exampl abov ma giv ris t som questions Th firs byte 09h i cu t th W progra tellin i th numbe o character i thi comman string 1B i th ASCI escap characte an 4A i th ASCI01h 19h an 01h 14 respectivel t allo printin subscript an superscripts Th USRx function migh b use t tur variou combination o proportiona an justifie prin mode o an off fo example: USR1 02  cod fo "J i hex 2C i th comm use a separator 30h 37h an 38h ar th ASCI code fo th number "0" "7" an "8" an 24 i "$" Althoug thi sequenc wil fi here i i no reall ver flexible Yo ma wan t se USR1 + 0 Printe justif ON USR1 + 1 Select proportiona spacin mode USR2 02 USR2 + 0 Printe justif OFF USR2 + 0 Select fixe spacin mode Thes mode wou  l b selecte i th documen b ^P an ^P respectively Thes coul b spli u int individua control fo eac paramete i n othe "user function wer needed. Mos o th location ar no lon enoug t le W pas escap sequence Set dela tim i hex delay th displa o "hel screens longe o shorte a desired DEL4 i normall 40h. Afte yo hav mad an change y effectivel t th printer However thi sectio o INSTAL ca als chang an byt i th WS.CO program Som thing tha ar hand t chang her ar byte tha determin ho W configure itsel o startup Th followin addres label weo wan t try mak th las label/addres "0 (zero) INSTAL wil giv yo on las chanc t chang you mind I al i a yo desir it INSTAL wil sav you modifie WS.CO fil o th driv yo designate a th beginning O m machr consolidate fro severa FOGHOR article reprinte i th Portabl Companion. ITITOG 0 Start W wit INSER OFF INITWF:+ 0 Start W wit Justificatio OFF ITPOPN F Default t OMI pag numbers in thi take while jus wai til th drive qui turning Yo ca the tr you creatio b puttin th W dis i th defaul drive giv i ^C an the W . Thi bring m t th incredibl lon progra listin tha follow th WID 7 Set termina displa scree widt t 12 character (ma valu withou th warnin message) Minimu valu i 4 he o 6  tex o thi article MBasi allow sendin an ASCI character t th printe wit a LPRIN CHR$(xx statement s starte writin littl progra t mak fe smal computations chec them an sen the t th printe befor startin  decimal. 038 0 Default t rule lin OFF INITWF:+ 0 Default t Hyphe Hel OFF ITHELP 0 Default Hel leve t (0 i normal) DEL3 1  printin session gues go carrie away... starte ou b LPRINTin th code wante t sen t th printe directly Thi wa littl cumbersome s adde som routine t tak a inpu pag siz an som margi size an figu  r th value fo eac programmabl comman argumen fro thes inputs wante t chec wha ha befor sen i t th printer s pu i PRIN (t th screen sectio first Thi eventuall gre t th progra liste here Yo wil nott whateve yo lik i mos cases Th string beginnin wit "D ar use t kee fro havin t typ th sam thin ove agai man time late i th program. DE F i use t implemen curso positionin o th screen CHR$(13 (C wit tha decima ASCI code ar easie t us i BASIC s 1B (escape i no CHR$(27) PRINTER.BA i men drive progra tha ask yo fo al th informatio neede t configur you printer Margin an pag size ar pu i i incheshou LF i i jus reset MBasic character pe lin counte s tha extraneou CR ar no inserte o th display. Althoug th progra gre wit man revision an modifications trie t kee th cod "to down a muc a possible  muc easie tha thinkin i 48th an 120ths an th progra figure ou th cod neede b th printe t giv yo wha yo want No al th Pris Printe option ar covere (sinc don' hav colo i particular) bu mos are I i morTher ar fe conditiona GOTO tha ski ove part tha ar sometime no neede bu onl on majo reroutin o th flo (155 GOT 950 i used Th res o i i handle wit GOSUB whic shoul allo eas understandin o wha i goin on.  oriente t th shee feeder sinc tha i wha use bu i wil wor wit pin-fee pape also I i mostl self-explanatory bu som comment ma hel yo follo wha di an why. Th strin variable startin a lin 10 jus mak i firs wrot th sectio i line 95 t 131 t prin th code o th scree a the wer t b sen t th printer bu tha mad i har t se wha yo had Yo coul substitut th subroutin fro lin 480 modifie t PRIN instea o L easie t identif th progra o listin whil usin th sam line fo sign-o message Mos o th variable use ar liste an explaine i th nex section Th firs 1 ar give "default value i th process thes ma b change PRIN an t displa " instea o CHR$(27 (whic i non-printin o th display a thi locatio i yo prefe t se exactl wha yo ar sendin t th printer (Not tha som boundar check ar mad t kee fro sendin margin tha a  r of th pape o negativ values thes shoul b retaine i som form.) Al o th "gotchas foun i usin WordSta wit m Pris 13 ar explaine i th scree comment include i th program Th bigges one com fro attemptin tse t th 13. siz an draf fon a printe turn-on yo ca us tha siz characters Thi cause som o th otherwis extraneou conditiona statement i th LPRIN sectio (lin 4800). I yo us pi fe continuou pape yo wil us t us smar tex formattin progra wit a equall smar printer WordSta know th lengt o eac pag becaus yo tel i (defaul P i 6 lines) s i "knows i mus sen tha man linefeed t ge t th botto o page I yo leav h printer FOR SE switc t se th to o for a th perforations FOR SE i no require whe printin wit WordSta an shee fe paper T LLIS MBasi programs FOR SE shoul b use t positio th firs printe line Usin FOR th printer boundar ski switc ON fo example,i wil caus tex o subsequen page t craw dow abou a inc fo eac page Similarly i yo chang th siz o th linefee t somethin othe tha 8/48th ( lpi) followin pag format wSE t pu th firs lin som distanc dow th pag subtract tha amoun fro th printabl are wit shee fe pape ( 1 botto margi remain a 1 i othe words) Left/righ margin ca b controlle wit WIDT LPRIN statemen t lis pril b wron unles yo redefin th pag lengt t WS. hav th Sprin Optio whic flie alon a 20 cp i draf font Correspondenc fon i printe a abou 11 cp i FIXE spacin mod o u t 15 cp i PROPORTIONA spacing On ogram withou settin margin a th printer A lon a yo d no wan th printe t justif you printing WordSta margi control wil wor fin fo printin documents I margin ar se i th printe an WordSta send lin tha i to thin include wit th Sprin mod i draf fon characte spacin o 13. cpi--th onl wa t ge thi spacin i no t sen AN characte setting includin size font o typ spacin command t th printer Then i th di switche wer  long th printe wil ad a extr carriag retur an prin dangler. Microjustificatio i no supporte betwee WordSta an th Pris Printer T ge proportiona printin fro th printe require th printe justificatio O an re  quire settin margins hav foun th mos reliabl metho fo usin thi capabilit i t compos th tex i WordSta "N (non-document mode Thi mod doe no ad CR o LF a th en o eac line Th printe woul rathe d it ow wonte wil leav dangle whil screwin u th pag forma wit a extr linefee tha W i no counting. Th botto lin abou th printer proportiona spacin mod i tha i doe i b itsel ver nicely bu WS attempt a formattin arr wrappin i thi mod anyway Th proble i tha th numbe o character pe inc change i th proportiona prin mod (the ar muc close together) an ther i n eas wa t figur ou wher line wil end Th printe wil justif l no ver compatible T prin non-documen tex fil us PI LST:=. ERAsin th SAMPLE.TX fil o th W dis allow roo fo PI wit singl densit drives PI ca the b use vi th WordSta comman withou leine ende wit CR bu the mus b mor tha 75 o th margi widt an n greate tha th margi width I yo se 1/2 printline tur W justificatio off an us th defaul lin lengt i W o 6 character yo wil fin som lineavin WS. Th pretties justificatio fro WordSta "D mod file i t tur W justifyin OFF leav th printe justifyin O an proportiona OFF an se th margin appropriately Thi techniqu make al space o eac lin equal Don' sprea ou t cove th widt o th pag bu mos wil b to short I othe words th actua spacin yo ge i 1 character pe inc proportiona i 1 o 13 Unfortunately hav foun n wa t determin th resultin spacin accuratel forge t reforma (^B th fil i yo wrot i wit W justificatio on Paragrap indentin wil var som an tabula dat wil no lin u exactl wit justif O becaus eac lin i stretche ou differen amoun t fil th widt o th becaus i depend o wha letter eac lin has "i's tak u ver littl roo compare t "m's" An lin wit to man lon letter i i ma en u wit th printe wrappin word Sinc W inserte CR/L a th en o th line th pri margins On wa aroun thi proble i t se horizonta tab fo paragrap indentin o column an us specia ta characte i on o th "user function (se i u wit INSTALL) Anothe wa i t leav th justificatio of fo numbers   lists o othe columna data. Configurin th printe wit th PRINTE progra i mos easil accomplishe b copyin you MBasi disk ERAsin th uneede CBasi files an puttin cop o PRINTER.BA o tha disk Whe yo ar read t dis bac i driv B: an typ th MBasi comman SYSTEM Thi wil sen yo bac t WordSta whic ask yo t hi an key the i reload itself Thi proces i ver quic an eas i yo progra thre "specia functio keys o you W di prin documen o file sav i wit ^KD Tak th dis wit you tex fil ou o driv B an pu th MBasic/PRINTER.BA dis i it place Us WordStar "R comman t ru progra an typ MBASI i respons t th prompt Afte MBasis (us SETUP wit th command RMBASIC LOA "PRINTER",R an SYSTEM Yo mus hav driv B logge i a defaul i W fo thi procedur t wor correctl a describe (thi assume W i driv A an you tex fil i replace wit i loade typ LOA "PRINTER" Afte i ha loade typ RU an answe th program men questions D NO selec th "rea las save parameters optio th firs tim throug becaus ther wil no b PRINTER.DA fil t read sav th def MBasi i driv B:). Tha i al ther i t it a sur yo wil wan t chang th progra t d thing you way suc a ignorin draf v correspondenc fon i yo d no hav th Sprin mod o configurin th defaul value fo usaul parameter o you choice o tha firs ru an i wil creat th dat fil fo you Th printe mus b O LIN an hav pape i i (FAUL ligh OFF t accep th code yo sen it I everythin stop whe yo sen code o tex t th o rol pape rathe tha sheet i yo don' hav th shee feeder I shoul b relativel eas t chang cop fro th FO librar (whe i goe in o a yo ke i i yourself I yo hav som othe typ printer thi ma giv yo som  printer jus cycl th mod switc t OF LIN an bac t O LIN t sen "go signa t th CP/ Lis Drive protoco checker Whe th printe ha accepte th code an yo hav th MBasi promp back remov th MBasi disk pu th documenidea o ho t ge i workin th wa yo want Hav fun! h FO librar (whe i goe in o a yo ke i i yourself I yo hav som othe typ printer thi ma giv yo som    WN]#^5K$]V|~&ϗ P57g8]rv'FFTfV}U`l? F| ԯ(wv9]&VɲV4~x@?AB5^Ǹl1gG_eEjrdΎs"j|K$~KOkgG_eLu:KcH#꥔&ci2֊9.^DAlU6zEg-oq:uvEq'g-ג=KXڜ]Ύ.҆E/SE/oP&1">].4oXڸSm1go:wF F:KOIfCEFDHGJKMIL]εƵtMv-٩&iu7\_U.gKdEѪ?W'^0f4:$ي?^]W$T~ ;a}bT']0?5/`˿Ĩ`o?Yk-4/qG4QQ&ɝDh8iDiܣ)fķc,=Eg-@;\iL[9;D0~6zEgCDn%miH2h:;Jwv\at"0\ŷ[8Ӭ삥oyא{$^)|?xv9&g-\>3ȷ&nfV(FQ!#Iiȵd|?腟:;`oqE%~~@, ̺髦9Ϛ1_ f sg^{v OuN+UT0o^UfS 2 P5}v_Q:(f &0o߼o1:k3 ly%`輿h ^VTIc0kޗ`%h}x?0Ik-Zک&ZIg Q֐&qN1|ױ:;].gN ?e,mv[[i~į5ke5d==Ң.]ǯ2# '"(mp)XzΎ[xQ2b~Y˷4rO|v<"  jYMjS>qII4Q鮳(wSMtʧ9].!ISMtʧ1hE-$R{ȳّ e=`uTuȸ(hEώ[xwD~)$F|EpPɮ%[ML#A\} 쑡hE>(/zyvDw"S>II״:ҋ&]^OwEzs^6ّ_}tMN5~)ƵdISMg-@t/kfQZ$uv\R8H]( א_kֵSMErvK|?ZV^CֵjrKD(Lܸ"iQN4gk-ZV^CgǢQI#*=l%Rk١U"ZD ykL`qʧ1hq醑܉(W1aA?@CBDEGFHIJKLNMORQPGz70d[qpsB?(g8f>r s(faЇ G Y&a"݌iBIcD+{_8)@fB^1;]8#7v땇3ۏYy}Ї̲>k`Ċo1c P~{ XĹ"![,bGv"H`VWq 2`_/p;+5v=6g1hX@2vyȺ`c}X}6odGoFbEzpk2Z]P#{2?#ܹB&&Ɋ`h,\d DsB&cIcZL>oF0H)hǂ|,t_W m%6CCGQ`(HѰ1)z!W|4ϛ1|0zկ0v t](׫&.&{W^EAέf4>)NĹ 0!4#΅oE>C6Z 0&{,Gcѱ!k+ \|[YVG}F8*&{,Gf&{,AM Y6?R7[zĹ8f1*\0 dj=as^fk0eV82& Ãt³,݂aq.<}{_/n`,G$ˑ`(C%c V6#Z]Ĺ2+!z<n}MsZq^ 8ǢcC64VPpk2QI2 z9:֝~$kW AVG^rt]|4ϛ|_#GL>]LXБPu7s(faЇz9z"pf|cZ|K:=~_Y&[U#΅Ї,#~1<&.&{,t]}"d7g9<S4+p샆ߌu7s(!zd$Ĺ~ Ô9M,f8#s_/710NJ3`Ĺ+~F }\Фu \|[vxܹ K}~_8BCGXLO,l0g c]ldOla;rq}!܊[MW8z8n%H1k &_cwF_}=o3"]hT3 }+z_/dmrm_{_CF6Y[!V h OqncC8ܚMBCqn"p线YC Vu } ۆ#֏?h Flv5 ,#S2+ >hq8b }I8)P6ØzgE;G54Ԯ RĹhY + ŷy_}^

Qm[u#Pβ}ԍwm1~!01և1և1s%kQlHqn&!΅|si:!XzŹ #KَYVѰi%BG>cv:-^q.̊!v$ 2>Σy8^ G1؃ĹhuMt.u'@ fs!kQlH8f pbŐ}3&;\ױ>5 ۄ>,%ڦYV}>&ko::fENrrdmϪN(G"l hÝ$}y'? dl,#OѰi>L:x_>rfL6#GNzÌ#'`86.Xrm, F+i?)d5q_cā(=d}in9}i?,ݨz9n}@ 9PpG}~u_nQ8~_Z  Gs_W ρ9 `YG n/ݨۡ}i?,ݨ8~_}>}}ʬp5ȇ=և +?2b26Y[XaGaGdm?2b8I2?&.&{,t]hrNkujHMs௪9]d LmukujL.X+HujL_s ],H:=dm<֩1u],`X1 `ߧMU] ?h}>]#6Y[OV &{bx:|_|ӵՑne؆G0RW d ; WGIu1!} r_lj"S}>N}>NYz4Ulj:-t_L5eD(cJO˹9JEXb,z_irMǫmlbp2+(gYJO+8Yxn 6+".Xonc>1~1m1zÂِo}L nBCGX4,2+dn9uZmΪ~1m -Ĺe$0Mi ΅aGN9ǹ5t_Oڦ6Y[9ՁucWב Po+8|Ց ],y!Mm#6Y[#u iVа`pfIz3D1I>Ď4,s!!`v# ܚM;ΕYV9͇I7;VuÝ ,+}W_bNps/9ŔYa 3{_irMǫDL2eʬՑĨYuA }5alj,[ `ǂcD}\a;1c և1q_ׇ1Ȍ)qH8gr_Ĩɲ>ASW@1з}eG H/)՗Y~>!u1|uVa`".{PβYV}u}x]c}1ŔY>Ď$6{PβِیseÎbG::&;\h,fțǹ5+ 2ۏŞt_/8YS+oc*(A|_5H wC]qr?!Yaʛ1AeM, 1cS͘yX;up>NYW>6y3+s8}zJYdYhX !W_bgWW?q.K9}eGe;<|q.ܹM#cjʬUݑ1,L}BEO-ϑ~=RWъMkC9#IIʖYV?Uy@0fY]Vl{_}QbU}M] prdLM2|,e;fY]Vl{_F9fV<¹~;RZj逤-8VJҙ}rb1}~  _X9m 3Žd4XA>#Ρ2+F onN!SiV@9˪+s8*[6STouiV/1Y4GU]7?*y+GTp)uh#H B 6y7Cv}3mr_QEN3}%FtϪN7SL2&הYxO{t+s\GUm ΅s3և1q_LUݶ׊c7],7W\?꺁< r_YsR겔kf`~dV5b3t]W\Ш6 g`hXP4|_YsU] Bȫ}>.hJ ;2p< \ d0 V4ĺ`Ad>Afnd#c!΅[po}M̑r_Ys%}U4XdL69R+o+~H>L6#H}qٝ~_ɇ9>ÎbG E<kw_'B^c?炌,e;fY]pn71Hm\=Ƙ8}\Y4Sf;B3au}SfM|}5zVJ#cV3 }+z_ͭ5W',6д`y 徲JKi±W66r_Ys%}U4X+1qd+/z0 3)7W_W`Ls ncnIW\I_Ճ1 VR^sM'r_Ys%}U4XqCnco5Y)7W_W`Lf] CI7B)7W_W`Lr17?\g>Mp?&{}eG㿫n@y8n}  0 Ob}2՗5Yp++;Ѱܧ|zV줦ڧ: \ݝA`&1;ID\h@9˪bb(u}74L}5\SU\GCW3ϕ+oSf4F Y!{_;l$hJ׵4F+A$97#h2ĺ`Q1ps゙10Pױ>qn͢,bn#νOu,f=&;A0\h; 1lj7&,LBG"ÏdFgĉoNN>Ndr_䚘ǫm,6<|u*::eVHɘur_ewX}a՗EIGjudqb+ BMp>+s8*[ aؑAd0895Y <| AYĢSE6@+&Vs8W&aMUݶ n0SAMnc&XU=|'lV+oiPT`x ^,4(Z;+o _ՃY>2+{e~n㾲QՃY>2+{e66+opU=#incn㾲W`x 1q_YsMó|d0 VR^s7V<`#u+o.]_uͺ@GK7BU]wF? t_Ys醮D}s)܉1 V̬#j:ljE;#~=}5aMT= 2}N+ }eSf} .Fρ~a߸d~d#S|XLX8n}3 }+̢aAYґCCXWy_xUg0l *g|_MOb9ZAos >dߧkSEWm  ֏oirrr>gs(dM뾲N-?^GeĹXĹ3 }+yXWBEU}4pfI"=DXuƐҠt}e5隬>x4,hq4XqRbk}~_?WAXuR4,s(n !}rnUm}e2Чkb4`Y4,hb: ,#dSGs'k\GF,C+kZ';Ҡ:5}';"徒MSȿB8 ._LuUIU֓Q}u4,`aG.XzJLj=9U'cQlGoKb:vU]ch9Dzh=Îb3dKV~4}NzQh=94ZO}e2?뿪+}<}eGS}徹Qh=eu_Y"cUu縯y_As}2NK)}!oi:،Ɏdmt_O7B)TB꺋  ZX農NI7BU=s#s_>Nie,z?_k(}~_!bB l#94~_/!b/(P6 ?a <nF0Bȫz }Cuip3b'C)TB꺋@ׅGÂV+*Sk_92t!u!S?ڧî <}~_!W,\(}{_L뺪-t]u_Q+UuݿQh=麴+kZd 1c4}p'{uM,dnR_Uo=:֓;D3AZY}%FM3UIsW뼯fk]yDS?f}~_Ċi{U=`h9`ؑW'Llj2w_F9F+]B~_?t]ߴr_O7t]}e2Чkb4uW,Tt_Y֤c0xvdlj" `oiҠ뺪د5{_F9F+u}]7?,z_O7G)Y}qNT?N,&siu8Q+=Mes@}5\}e!W_bg][OG}eN򿯆?j=z)䏣z ~_Dí|$~ݪ!K~gN4)աPQU`dmIhcVeC67RՃ14,\Ȉz2f:llv*f_d)#cإWBEU7A%WT'磪RTՏ#Y[}A%UuƐ G}~_w}8/R5Fi"YV~_RF ].6i>L:],d)W&S }.FW({4,hb:&YUƐ1 V ZaG~_ Uug'cQl}Azr>/1,+ *Y#N `Q,|M+8`PGs+'bxĹ?5@ |M+Hi7~_ /EԨ'k@ }N.Fbqt]u_rj  'k\Ģ1d>NYK,ǫ:+u}BEU#@F=:aN cpFq_O6 HJ߂6JZd*}eGS#뿺ҷCiWS#?ڧ}][ EZ:-FrdLCC8 F?ڧ}][ EJbjf%}e2Ը+rU7 LҷiWS]6Z <}~_7d- b5pۉf}}5atXr\_U EcȦlȈ=5R}^iX>Epd##:r8}~jd(<~ӊFGd ÷ߴbGd 躀oi% ?2baБj=VScjϐV4,"|u82F'%!Cp?|M+!5B~ӊ~j:5$RSCGLXScjϐVU]6_2:I YC150MYV~_QrjLms_eʕipN,z_VG0d (g9~WUݬ nqb;ܜ惮 Hd*Y50MYV:ldq_LujcX 9͇rur.dЇl YV=(r.!ĎW'jPUWJ,s?dObڧ|ت1c4|_dĂނ3C`_(4N~jH(i#GwVܦɫ1<`~_; ?b1v?+ b([qki0y5ljMLU]p' X?|_}BU=y5뼯rU08~WW>LA8I1z|،450Mr_L[aۀ dSCWIQU?Y`MX9_EAr`dy y8QB՗߿:-B6g> S4+hXLrU?i@9˪alj4>Y+ٸÛ ߪmRW~,-:ԑRbq lԆ}gD9Wmp' X?dÀ;I#Id"Wn#yHUF.XiW&S4lU}x87Xħ֑g4ĹYح}̒d LmӬaA.X{_Xu_O#Gw}u(TT#Y[}AujHTmȈX_92~dĞT+!}%}aFء$eLt!)u~S,H:5B8f'%8WWpiI`lA9˪W',sA c}X農N;QpFW)y:17,񙹪\O~$w )[=k֟jn龚[=+Wsg#cjr}5\}5\y^35}%};r_i]Veq dWQG4~_~#}!܊[EYy}@CX4 6_|_?!  }~_ 8|챐u,86F YFbɏؔʜ&G9KUy\}2 YV:t݃q)[,z_:ldQm8i RXi?+eU+s8j:ӮÑu{_O~I>NYn!S&{}A(WcxΪ>\3+z_ X~S4+БpX>NYUuwc4 _ wBL}Z#Gw(d LmӬ:tݓ `+eU+s\B,Uݶcؐ YVV@9˪Wpdu:ROXż],pX簑ncdF+}GzimA AYŴ&%uYÎb 4Xȶ Yܜ~}WY`U`Y87C!v<|\zd3+8W~_ }C2 rnU1зɰ(gI.!H,f>V@9˪w#Z,4?2b!LAڦY}~_s0X!L?$ >Z@ #uAskÏdF*`_O$RkkA o}~_?Yyaޖ&/aކLA YߧO񪮻VSu!7ܧu)U:^u],7wjdWYxU?YyN}V5B~}K~t]ߴrH񪮻)uz6"Zǫ #h ;5~$Ruzr>RuaG%qS}WuCh=Îb3}}VuCh=Îb3Bk=麔*k4z2f`o1dK",Ybx}![}WuYuƐ>Y2M!:M:A\2@:M`i"8:M`i:My2:`i"K:M2B>2I2H>2J:M2Iy2J>2B:72C*8"D::2F:B=2B:7!C!DͶ::!F4~  6*D#"D2H2B<2H2G::<2?!@~6U:7!;N!<ͶN:?!>r:A:72;*8"<:?2>:H2A::o&)))))))N*K:I˜>2Aw# ˜:J:G2A:G!8#2G$2G!N"5:<G:>=W!"3N#y !91!~=W!x( ~#b%xK {>~#o}oG-T*3*5~# x*5*3f< ,,,,,,,,,, Micro Resources Ram Disk Already Active$\*}o|g:g."1*"!%."[6#s#r!76#ŸP!6# x¬!M6!X" Micro Resources RAM Disk Demonstration Add-on Access Mo HA  $@ dule Version 1.0 6/14/82 Copyright (C) 1982 Micro Resources !%."*1:OGy!  ~,+j~÷XýK-]tÀÊåj*+++>32 ~ w# I$I$ T"BH"HHII"$$B"DD@$D$DHB!H@ "$ D" #  & 5 !N 5! 5  _W! :z 0 ?* !9" ͌" * " * 0 83  Ɛ':' '/7?v (08"*2:DEFGMOVW^_goSI@DLI@DPCI@SPI@XTI@DAD@OTDRINDRCCDRLDDROTIRINIRCCIRLDIROUTDIN A MEMORY RESIDENT FLOPPY DISK PROGRAM by Michail J. Karas This is from the Lifelines/The Software Magazine, September1982 issue, about ADD-ON MODULE Construction. An add-on module is designed for use under single user CP/M-80 2.2. The next several paragraphs, from the previous articles, January, and February 1982, show the procedure to get a version up an$  d running. The source file, RAMDISK.ASM, being very similar to a BIOS for CP/M-80 2.2, requires the extension disk definitions to have disk parameter tables, check vector and allocation vectors. In addition, a directory buffer must bn generate page relocatable files (.PRL type) which are compatible with MP/M-80. After reviewing the LINK output format of a .PRL file, I designed the PRLMOVE program to relocate the LINK output files. The command structure below shows how to pre allocated. An ADD-ON MODULE generates the appropriate tables through the use of the macro library DISKDEF.LIB provided by Digital Research on the CP/M-80 2.2 distribution diskette. This macro capability requires a macro assembler to properloduce the required .HEX file from PRLMOVE. A>MAC PRLMOVE $+S PZ The command structure below shows how to produce the .PRL file from the RMAC output. A>LINK RAMDISK[OP] where [OP] directs LINK to generate the desired .PRLy process the DISKDEF macros. An additional implementation requirement is the availability of the assembler output as a .REL file. The Digital Research Relocating Macro Assembler RMAC is just the tichet to generate the appropriate . file. The program PRLMOVE.HEX and the page relocatable RAMDISK.PRL must be combined into a single executable command file as follows: A>DDT DDT Vers. 2.2 -IRAMDISK.PRL -R <-Load of .PRL file to RAM to address REL file and process the DISKDEF.LIB macro includes. The command structure below shows how to assemble an ADD-ON MODULE program like the RAM disk demo listing on the disk as RAMDISK.ASM. The following is an example on the assembly. A> 0100H with code image starting at address 0200H. MEXT PC nnmm 0000 <-Convert nn to decimal and remember value. -IPRLMOVE.HEX -R RMAC RAMDISK $+S PZ The resulting .REL file has to be converted to a page relocatable format. After agonizing over the problem of easily making a "BIT MAP", I found that the Digital Research Link program distributed with RMAC and PL/I-80 ca <-Read PRLMOVE program in over the .PRL file at load address of 0100H. -G0 <-Exit DDT to CP/M-80. A>SAVE dd RAMDISK.COM <-Save dd pages of memory to get command %   file. dd = converted nn from above! This results in the .COM command file necessary to make an executable module out of the ADD-ON MODULE. The present design of the ADD-ON MODULE with the negative offset pointer calculation reentry to CC  it now has a smaller tpa and a drive D:. Probably not good for real use, but it does provide a neat sample of a ram disk.  it now has a smaller tpa and a drive D:. Probably not good for real use, but it does provide a neat sample of a ram disk. P requires that the BDOS and CCP combination be genuine (REAL Digital Research CP/M-80 Ver 2.2 of total length 01600H bytes. If your system uses a modified BDOS or CP/M-80 system look-alike, then the negative offset to the stack pointer will require a different value. See NOT$PRES: in listing. Also, for non-genuine CP/M-80 systems, if the CCP is a different size (not 0800H) bytes, the program PRLMOVE will have to be modified to set down the relocation load address calculation by an amount equal to the difference in the alien CCP size. ied to set down the relocation load address calculation by at 0800H) bytes, the program PRLMOVE will have to be modified to set down the relocation load address calculation by aRAMDSK provides a demonstration of a disk running out of ram. It gloms 20K of the tpa and makes it into drive 'D:'. CP/M thinks it now has a smaller tpa and a drive D:. Probably not good for real use, but it does provide a neat sample of a ram disk. &  '