This is the Larken (LKDOS) version of the issue disk for the October 1987 issue of UPDATE, Bill Jones’ TS2068 magazine. Its feature program is Mail Merge (MMRG.B1), the database UPDATE used to keep its subscriber records and print its mailing labels. It holds 100-name files of seven lines each, with four address lines, a first-name line and two information lines, and it sorts, searches by last name, reverses names, prints labels, envelopes and letters on a TS2040 or a Centronics printer, and keeps a second OUTLINE database for printing topic outlines. The disk also carries the J-Utilities and the short routines published in the same issue. Apart from the J-Utilities, the programs need a TS2068 with the Larken disk interface and the LKDOS V3 EPROM printer driver. They have not been converted for tape.
The October 1987 and January 1988 issue disks were issued together on one Larken disk. Each half is archived as its own post. The briefing program BRIEF.B1 explains that the Larken version took weeks to convert from the Oliger originals and was then revised again for Larry Kenny’s Version 3 EPROM, and that MMRG differs from the magazine’s tutorial listing only in calling its menus from disk.
Contents
BRIEF.B1: the on-screen briefing for the issue disk, with an optional printout.MMRG.B1: Mail Merge, with its menu screensfm,pg,fo,mlandcpr.C1(Function, Page Management, Format and Mail menus and the title screen).J-UTIL.B1: the J-Utilities, the issue’s key-in project: a memory peeker and disassembly display, decimal and hex DATA pokers, hex/decimal/binary conversion, mixed hex and decimal arithmetic, a binary analysis table and RAMTOP setting.PROMPT.B1: GO SUB routines for Y/N keys and number-key menus.PSTAT.B1: waits for a Centronics printer to be ready by readingIN 127.pseudo.B1andvars.B1: a “pseudo-variable” table of numeric constants and letterhead strings to MERGE into a program.USING.B1: PRINT USING-style column alignment of numbers (on-screen credit “SYNTAX 1984”).MENAG.B1: border, colour and SOUND effect routines.Pscren.B1: a large-text demonstration (REM “ZX-Appeal Sept. 86”), the same program as Large Text.
PROMPT, PSTAT and the pseudo-variable table match the routines in Robert Hartung’s “Quick and Easy Routines” in the same issue.
J-Utilities on Tape
J-UTIL.B1 uses no disk commands, so it is also included as a tape TAP that runs on a stock TS2068: J-Utilities (1987)(Jones, Bill)(TS2068)(US)(Program).tap. It shows a title screen and two pages of notes, then stops and asks you to set CAPS LOCK and type CONTINUE. After that its menu is an INPUT prompt. Hex must be entered in capitals. In the conversion only the Larken variables marker was removed and the autostart set to line 9800. It was tested in ZEsarUX: the hex/decimal conversion turned 65535 into FFFF and binary 1111111111111111, and the mixed arithmetic gave FFh × 16 = 4080 (FF0h).
Not Included
The disk’s subscriber mailing list holds personal data and has been left out, so no disk image is included. The Larken system files are also left out. LLOOK.B1 and Purity.B1, the Mail Merge companions announced for January, are with the January 1988 issue disk. The disk’s other files are George Chambers’ MTERM II modification and public-domain programs that are already archived on this site.
Source Code
100 BORDER 0: INK 7: PAPER 0: CLS : RANDOMIZE USR 100: OPEN #4,"dd": GO TO 2061
400 INPUT "Number of Mailing list Names?";h: LET k=h: LET b$=""
402 INPUT "Sort by: <1> First name <2> Last name";z
404 IF z=oa THEN GO SUB VAL "1010": GO TO VAL "500"
406 IF z=ob THEN GO SUB VAL "640": GO SUB VAL "1010": GO SUB VAL "670"
500 GO TO VAL "2000"
640 CLS : PRINT FLASH oa;AT oj,oa;"Last Name Reverse- 40 Seconds";AT ok,oa;"Line 640": FOR n=oa TO h: IF o$(n,oa)(oa TO od)=" " THEN NEXT n: RETURN
642 LET b$=o$(n,oa)
646 IF b$(LEN b$)=" " THEN LET b$=b$( TO LEN b$-oa): GO TO VAL "646"
650 FOR l=LEN b$ TO oa STEP -oa: IF b$(oa TO od)=" " THEN NEXT n
652 IF n>k THEN RETURN
654 IF b$(l)=" " THEN LET o$(n,oa)=b$(l+oa TO )+" "+o$(n,oa)( TO l): NEXT n
656 NEXT l
658 NEXT n
660 RETURN
670 CLS : PRINT AT oj,oa;"Replace First name- 40 Seconds";AT ok,oa;"Line 670": LET b$=""
672 FOR n=oa TO k: IF o$(n,oa)(oa TO od)=" " THEN NEXT n: RETURN
674 IF n>k THEN GO TO y
676 LET b$=o$(n,oa)
682 FOR l=oa TO LEN b$: IF b$(l)=" " THEN LET b$=o$(n,oa)(l+oa TO ): GO TO VAL "686"
684 NEXT l
685 IF LEN b$=oo THEN GO TO VAL "689"
686 IF LEN b$>oo AND b$(LEN b$)=" " THEN LET b$=b$( TO LEN b$-oa): GO TO VAL "685"
687 IF LEN b$>oa AND b$(oa)=" " THEN LET b$=b$(ob TO ): GO TO VAL "685"
689 LET o$(n,oa)=b$+" "+o$(n,oa)( TO l)
690 NEXT n
692 RETURN
1010 CLS : PRINT AT oj,oh; FLASH oa;"Sorting- 1 Minute";AT ok,oh;"Line 1010": DIM v$(of,31): LET n=h
1020 LET I=N-oa
1030 FOR J=oa TO I
1040 LET K=J+oa
1050 FOR L=N TO K STEP -oa
1052 IF o$(l,oa)(oa TO od)=" " THEN GO TO VAL "1100"
1060 IF o$(L,oa)>o$(J,oa) THEN GO TO VAL "1100"
1070 IF o$(l,oa)(oa TO od)<>" " THEN LET b$=o$(L,oa): LET v$(oa)=o$(l,ob): LET v$(ob)=o$(l,oc): LET v$(oc)=o$(l,od): LET v$(od)=o$(l,oe): LET v$(oe)=o$(l,of): LET v$(of)=o$(l,og)
1080 IF o$(l,oa)(oa TO od)<>" " THEN LET o$(L,oa)=o$(J,oa): LET o$(l,ob)=o$(j,ob): LET o$(l,oc)=o$(j,oc): LET o$(l,od)=o$(j,od): LET o$(l,oe)=o$(j,oe): LET o$(l,of)=o$(j,of): LET o$(l,og)=o$(j,og)
1090 LET o$(J,oa)=B$: LET o$(j,ob)=v$(oa): LET o$(j,oc)=v$(ob): LET o$(j,od)=v$(oc): LET o$(j,oe)=v$(od): LET o$(j,of)=v$(oe): LET o$(j,og)=v$(of)
1100 NEXT L
1110 NEXT J
1120 CLS : FLASH oo
1130 RETURN
2000 ON ERR GO TO VAL "9980": STOP
2001 PRINT #4: LOAD "ml.C1"SCREEN$ : PRINT AT 2,19;("Yes" AND LEN o$(1,1)>1)+("No " AND LEN o$(1,1)<2);AT 19,11;pg;" ";AT 19,25;nn;" "
2002 PRINT AT ot,ok;pg;" ";AT ot,VAL "25";nn;" ";AT ob,ot; FLASH oa;("NO " AND LEN o$(oa,oa)<ob)+("Yes" AND LEN o$(oa,oa)>oa); FLASH oo;AT oc,VAL "24";~
2003 GO SUB SQ: GO SUB Il: GO TO (Z<OO OR z>OI)*VAL "2000"+(z=OO)*VAL "3020"+(Z=OA)*VAL "2004"+(z>OA AND Z<OF)*VAL "2007"+(Z=OF)*VAL "2600"+(Z=OG)*VAL "2058"+(Z=OH)*VAL "400"+(Z=OI)*FM
2004 CLS : PRINT AT OJ,OF; FLASH OA;"Confirm, START NEW"; FLASH OO''TAB OF;"<y> Yes -or- <n> No": GO SUB SQ: GO SUB IK: IF Z=OA THEN INPUT "Input Nbr of Names";mx: IF mx*VAL "217">VAL "27000" THEN GO TO VAL "2004"
2005 IF z=oa THEN DIM o$(mx,7,31): DIM O$(mx,7,31): LET IN=OA: LET ms=OA: CLS : GO TO VAL "2009"
2006 GO TO VAL "2000"
2007 IF Z>OA AND Z<OF THEN LET in=oa: INPUT "Ent Strt Nbr ";MS: CLS : INPUT "Ent end Nbr ";MX: CLS
2008 IF Z=OE THEN CLS : INPUT "Twin Labels? <y> yes or <n> No ";t$: INPUT "Ent sps bet: ";SX: INPUT "Ent Tab ";TB: CLS : LET h$=" ": FOR g=0 TO tb: LET h$=h$+" ": NEXT g: INPUT "Nbr of Fields (1-7) 4 for labels";x: PRINT AT OU,OB;"Do you want Page Control?": INPUT "<1> yes or <2> No ";K: IF k=oa THEN PRINT AT OU,OO;"Ent ""PG"" for same page, or a nbrto change. ": INPUT PG: PRINT AT OU,OO;"Ent ""NN"" for same line count,or nbr to re-set line count. ": INPUT NN
2009 FOR O=MS TO MX
2010 IF Z<OC THEN GO SUB VAL "2022"
2011 IF Z=OD THEN GO SUB VAL "2110"
2012 IF Z=OC THEN GO SUB VAL "2034"
2014 IF Z=OE THEN GO SUB VAL "2040"
2016 IF O>=MX THEN GO TO VAL "2000"
2018 NEXT O
2022 CLS : PRINT AT OF,OF;"Ml No. ";O
2024 CLS : PRINT AT og,oo;o;AT OJ,OO;"Input ";("Co Name " AND IN=OA)+("Dept " AND IN=OB)+("St adr " AND IN=OC)+("ct,St,Zp" AND IN=OD)+("1st Name" AND IN=OE)+("Tel Nbr " AND IN=OF)+("spare dta" AND in=og);" or zz to quit.": INPUT T$: IF T$="zz" THEN LET IN=OA: LET O=MX: CLS : RETURN
2025 LET O$(O,IN)=T$
2026 IF IN=OG THEN CLS : GO TO VAL "2030"
2028 LET IN=IN+OA: GO TO VAL "2024"
2030 PRINT AT OH,OO;O$(O,OA)'O$(O,OB)'O$(O,OC)'O$(O,OD)'O$(O,OE)'O$(O,OF)'O$(o,og)''"OK? <Y> Yes, or <N> No": GO SUB IK: IF Z=OB THEN LET IN=OA: GO TO VAL "2024"
2032 CLS : LET IN=OA: RETURN
2034 IF O$(O,OA)(OA TO OB)="zz" THEN GO TO ml
2035 PRINT AT OE,oo;"Ml No. ";o''O$(O,OA)'O$(O,OB)'O$(O,OC)'O$(O,OD)'O$(O,OE)'O$(O,OF)
2036 PRINT O$(O,Og)
2037 PRINT '"Key ENT for Next": PAUSE oo: CLS : RETURN
2038 IF LEN O$(O,OA)<OE THEN RETURN
2040 FOR y=oa TO x: IF y=oa AND o$(o,y)( TO ob)=" " THEN RETURN
2041 LPRINT h$;o$(o,y): LET nn=nn+oa: NEXT y: GO SUB VAL "2046"
2042 IF t$="y" OR t$="Y" THEN FOR y=oa TO od: LPRINT h$;n$(y): LET nn=nn+oa: NEXT y: GO SUB VAL "2046"
2044 RETURN
2046 LET DD=SX: IF K=OA AND SX+NN>=LN THEN GO SUB PE: LET DD=OO: RETURN
2047 IF DD>OO THEN LPRINT : LET DD=DD-OA: LET NN=NN+OA: IF NN>=LN AND K=OA AND NN+OD>=LN THEN GO SUB PE: LET DD=OO: LET NN=OA: RETURN
2048 IF DD>OO THEN GO TO VAL "2047"
2050 RETURN
2051 NEXT N
2052 GO TO VAL "2000"
2058 CLS : PRINT FLASH oa;AT oj,od;"Confirm DELETE MAIL FILE"; FLASH oo''TAB od;"<y> Yes or <n> No": GO SUB ik: IF z=oa THEN DIM o$(oa,oa)
2059 GO TO fm
2060 GO TO FM
2061 GO SUB VAL "2586": GO SUB VAL "2572": CLS
2063 CLS : PRINT AT OH,OI;"Please Select"''TAB OD;"<1> TS 2040 Printer?"''TAB OD;"<2> Centronics Printer": GO SUB SQ: GO SUB IL: IF Z<OA OR Z>OB THEN GO TO VAL "2063": LET PR=Z-OA: IF PR=OO THEN LET lx=VAL "32": LET qq=oq: GO SUB VAL "9990": GO TO FM
2065 GO TO 9997
2066 CLS : PRINT AT oi,oo;"Turn Printer ON, Adjust Page, Then ENTER": PAUSE oo
2070 CLS : PRINT #4: LOAD "fm.C1"SCREEN$ : PRINT INK 6;AT 19,11;pg;AT 19,21;nn
2071 INK og: LET gg=oa: GO SUB sq: GO SUB il: IF z=oo THEN GO TO VAL "3390"
2072 IF Z=OF THEN GO SUB PE: GO TO FM
2073 IF z=oe THEN GO SUB sp: GO TO fm
2074 GO TO (z=oo)*VAL "3324"+(z=oa)*VAL "2000"+(z=ob)*VAL "2094"+(z=oc)*VAL "2083"+(z=od)*VAL "3004"+(z=og)*VAL "3370"+(z=oh)*VAL "3384"+(z=oi)*VAL "3300"+(z=oj)*VAL "3390"+(z=ok)*VAL "3394"
2083 PRINT #4: LOAD "fo.C1"SCREEN$
2084 GO SUB sq: GO SUB il: IF z=od THEN CLS : INPUT "Input Page Center";qq: GO TO VAL "2083"
2086 IF z=oc THEN CLS : PRINT AT OJ,OA;"key ln lgth: ": INPUT LL
2087 IF z=oe THEN GO TO fm
2088 IF z<oc AND z>oo THEN LET sd=z
2092 GO TO VAL "2083"
2094 CLS : PRINT AT OJ,OD;"Type the Cap"''TAB od;"Line lgth limit is: ";LX: INPUT m$
2095 LPRINT TAB qq-LEN m$/2;m$: LET NN=NN+OA
2096 GO TO FM
2110 LET IN=OA
2112 CLS : PRINT "Enter Field Nbr to Correct, or ""8"" for next field."''"Ml No. ";O''"Fields"'"1. ";O$(O,OA)'"2. ";O$(O,OB)'"3. ";O$(O,OC)'"4. ";O$(O,OD)'"5. ";O$(O,OE)'"6. ";O$(O,OF)'"7. ";o$(o,og): INPUT "Field Nbr or 8:";IN: IF IN=oh THEN RETURN
2120 CLS : PRINT AT oj,oo;o$(o,in);AT ou,oo;"npt ";("Co Name " AND in=OA)+("Dept " AND in=OB)+("St adr " AND in=OC)+("ct,St,Zp" AND in=OD)+("1st Name" AND in=OE)+("Tel Nbr " AND in=OF): INPUT T$
2122 LET o$(o,in)=t$: CLS : GO TO VAL "2112"
2550 PAUSE oo: LET t$=INKEY$: LET z=CODE t$-48: IF z<oo OR z>ok THEN GO TO il: REM * For Key 0 to 11
2553 RETURN
2554 PAUSE oo: LET t$=INKEY$: IF t$<>"y" AND t$<>"Y" AND t$<>"n" AND t$<>"N" THEN GO TO ik: REM * For Key Y or N
2555 LET Z=(oa AND t$="y")+(oa AND t$="Y")+(2 AND t$="n")+(2 AND t$="N")
2560 RETURN
2567 IF IN 127=253 THEN GO TO BU
2568 RETURN
2570 CLS : PRINT AT oj,od;"INPUT FILE NUMBER": INPUT t$: LET t$="MMRG"+t$+".B1": PRINT #4: SAVE t$ LINE 100: BEEP oa,oa: CLS : GO TO FM
2572 PRINT #4: LOAD "cpr.C1"SCREEN$
2575 FOR N=OA TO of: GO SUB SQ: PAUSE VAL "100": NEXT N: RETURN
2576 INK xa: PLOT oo,oo: DRAW oo,VAL "175": DRAW VAL "255",oo: DRAW oo,VAL "-175": DRAW VAL "-255",oo: LET xa=xa+oa: IF xa>of THEN LET xa=oa
2578 INK xa: PLOT oh,oh: DRAW oo,VAL "159": DRAW VAL "239",oo: DRAW oo,VAL "-159": DRAW VAL "-239",oo: LET xa=xa+oa: BEEP oa/oj,VAL "40": IF xa>of THEN LET xa=ob
2579 BORDER oo: INK og: RETURN
2580 BEEP .1,40: PAUSE VAL "20": RETURN
2582 BEEP OB/OJ,OD: BEEP OB/OJ,OH: BEEP OB/OJ,OJ: BEEP OB/OJ,OD: RETURN
2586 LET po=127: LET oo=0: LET oa=1: LET ob=2: LET oc=3: LET od=4: LET oe=5: LET of=6: LET og=7: LET oh=8: LET oi=9: LET oj=10: LET ok=11: LET ol=12: LET om=13: LET on=14: LET op=15: LET oq=16: LET or=17: LET os=18: LET ot=19: LET ou=20
2588 LET tw=oo: LET xa=2: LET ln=54: LET nn=0: LET pg=1: LET pr=1: LET bu=2567: LET zc=5: LET sq=2576: LET fm=2070: LET sd=1: LET sp=2990: LET lh=2610: LET pe=3014: LET ik=2554: LET il=2550
2590 DIM n$(og,31): LET n$(oa)="UPDATE Magazine": LET n$(ob)="1317 Stratford Ave.": LET n$(oc)="Panama City, FL 32404": LET n$(oe)="Bill Jones": LET n$(of)="904 871 4513": LET n$(og)="Sincerely,"
2596 RETURN
2600 CLS : PRINT AT oj,oj;"SAVE Menu"''TAB 4;"<1> Save this Mail File"''TAB od;"<2> Save Program + File": GO SUB sq: GO SUB il: GO TO (z<oa OR z>ob)*VAL "2600"+(z=ob)*VAL "2570"+(z=oa)*VAL "2602"
2604 CLS : PRINT AT OJ,OH;"INPUT FILE NBR": INPUT t$: LET t$="m"+t$+".A$": PRINT #4: SAVE t$ DATA o$(): GO TO VAL "2000"
2990 LPRINT : LET NN=NN+OA: IF NN>=LN THEN GO SUB PE
2994 IF sd=ob THEN LPRINT : LET NN=NN+OA: IF NN>=LN THEN GO SUB PE
2996 RETURN
3004 PRINT #4: LOAD "pg.C1"SCREEN$ : PRINT AT 5,18;pg;AT 7,23;ln-nn
3005 PRINT AT oe,os;pg;" ";AT og,VAL "23";ln-nn;" ": GO SUB sq: GO SUB il: IF z<oa OR z>od THEN GO TO VAL "3004"
3006 IF Z=OD THEN GO TO FM
3008 IF Z=OB THEN INPUT "Ent new lines to end. ";NL: LET NN=LN-NL: GO TO VAL "3004"
3010 IF z=oa THEN GO SUB pe: GO TO fm
3012 IF Z=OC THEN INPUT "Enter next pg No. ";PG: GO TO VAL "3004"
3013 GO TO VAL "3004"
3014 IF PR=OO THEN LPRINT '''';pg'''''''''''''''''': LET NN=OA: LET PG=PG+OA: RETURN
3016 IF NN<VAL "58" THEN LPRINT : LET NN=NN+OA: IF NN<VAL "58" THEN GO TO VAL "3016"
3018 LPRINT TAB qq;PG: CLS : OUT PO,OL: LPRINT : LET PG=PG+OA: LET NN=OA: PRINT "Adjust Page, then ENTER": BEEP oa,on: PAUSE oo: RETURN
3020 CLS : PRINT AT oj,ob;"Install Data Diskette,"'TAB ob;"Touch ENTER": PAUSE oo: CLS : PRINT #4: CAT "",: INPUT "Enter TITLE of C ARRY, (All between Quotes)";t$: PRINT #4: LOAD t$ DATA o$(): GO TO VAL "2000"
3300 CLS : PRINT AT oj,ob;"Outline Fill": INPUT "Enter Nbr of Major Topics:";mj: INPUT "Enter Nbr of Sub Topics of each:";sb: INPUT "Enter Column width:";lgt: DIM k$(mj,lgt): DIM v$(mj,sb,lgt)
3304 LET a=oa: FOR n=oa TO mj
3305 IF n>mj THEN GO TO VAL "3320"
3306 PRINT AT on,oo;"Ent Major Line #"; INK oe;n; INK of;" or zz to quit": INPUT k$(n): IF k$(n)( TO ob)="zz" THEN LET k$(n)="": GO TO VAL "3320"
3308 FOR y=oa TO sb: PRINT AT on,od;"Minor";AT on,oq; INK od;y; INK of: IF y>sb THEN GO TO VAL "3316"
3310 INPUT v$(n,y): IF v$(n,y)( TO ob)="zz" THEN LET v$(n,y)="": GO TO 3316
3312 NEXT y
3316 NEXT n
3320 LET n=mj: LET y=sb: CLS : PRINT AT oj,ob;"Print the Outline now?"''TAB ob;"<y> Yes or <n> No": GO SUB ik: IF z=ob THEN LET n=mj: GO TO fm
3324 CLS : INPUT "Input Tab for line print:";tz
3330 FOR n=oa TO mj: IF k$(n)( TO ob)=" " THEN GO TO VAL "3354"
3334 LPRINT TAB tz;k$(n)'': LET nn=nn+ob: IF nn>=ln THEN GO SUB pe
3338 FOR y=oa TO sb: IF v$(n,y)( TO ob)=" " THEN GO TO VAL "3346"
3342 LPRINT TAB tz+5;q$;v$(n,y)'': LET nn=nn+ob: IF nn>=ln THEN GO SUB pe
3346 NEXT y
3350 NEXT n
3358 CLS : PRINT AT oj,ob;"Delete the Data?"''TAB ob;"<y> Yes or <n> No": GO SUB ik: IF z=oa THEN DIM k$(oa,oa): DIM v$(oa,oa)
3360 GO TO fm
3370 FOR n=1 TO oc: LET m$=n$(n): GO SUB VAL "3380": NEXT n: LET m$=n$(of): GO SUB VAL "3380": GO TO fm
3380 IF m$(LEN m$)=" " THEN LET m$=m$( TO LEN m$-oa): GO TO VAL "3380"
3382 LPRINT TAB qq-LEN m$/ob;q$;m$: LET nn=nn+oa: RETURN
3384 FOR n=1 TO 3: GO SUB sp: NEXT n: LET m$=n$(og): GO SUB VAL "3380": FOR n=1 TO 3: GO SUB sp: NEXT n: LET m$=n$(oe): GO SUB VAL "3380": GO SUB pe: GO TO fm
3390 CLS : FOR n=oa TO VAL "200": ON ERR GO TO VAL "3392": PRINT "File No. ";n'O$(n,oa)'': NEXT n
3392 ON ERR RESET : PRINT '' FLASH oa;"ENTER When Ready": PAUSE oo: FLASH oo: GO TO fm
3394 CLS : INPUT "Input Last Name or Stock Noun ";m$: CLS : FOR n=1 TO VAL "200": ON ERR GO TO VAL "3415": FOR y=31 TO 1 STEP -1: IF o$(n,1)(y)=" " THEN NEXT y: IF y=oo THEN NEXT n
3396 LET b=y: FOR y=b-1 TO 1 STEP -1: IF o$(n,oa)(y)<>" " THEN NEXT y
3398 LET a=y+1: IF o$(n,1)(a TO b)=m$ THEN GO TO VAL "3420"
3400 NEXT n
3415 ON ERR RESET : CLS : PRINT FLASH oa;AT oj,of;"File Name Not Present": PAUSE VAL "400": FLASH oo: GO TO fm
3420 PRINT "File No. ";n''o$(n,1)'o$(n,ob)'o$(n,oc)'o$(n,od)'o$(n,oe)'o$(n,of)'o$(n,og)'': INPUT "<1> Continue Search- <2> Quit";c: IF c=1 THEN GO TO VAL "3400"
3422 GO TO fm
3430 INPUT "Field Number to Delete";x: FOR n=x TO 100: IF o$(n,1)(oa TO ob)<>" " THEN NEXT n
3432 LET a=n-1: FOR n=x TO a: FOR y=oa TO og: LET o$(n,y)=o$(n+1,y): NEXT y: NEXT n
3434 STOP
4000 PRINT "File No. ";n''o$(oa)'o$(ob)'o$(oc)'o$(od)'o$(oe)'o$(of)'o$(og): PAUSE VAL "4e4": GO TO fm
9980 ON ERR RESET : ON ERR GO TO VAL "9982": IF LEN o$(1,1)>1 THEN GO TO VAL "9984"
9982 ON ERR RESET : DIM o$(1,1,1): GO TO VAL "2001"
9984 ON ERR RESET : ON ERR GO TO VAL "9986": STOP
9986 ON ERR RESET : GO TO VAL "2001"
9990 PRINT #4: OPEN #7,"LP": RETURN
9997 CLS : PRINT AT 10,0;"Printer Parameters Set"''"Touch Type of Interface"''"<1> Aerco or Oliger CPI"''"<2> TASMAN CPI"''"<3> A&J CPI"''"<4> TS-2040": GO SUB il: IF z<1 OR z>4 THEN GO TO 9997
9998 LET z=z-1: PRINT #4: OPEN #(3 AND z<3)+(7 AND z>2),"LP": CLS : INPUT "Key <1> for Line Feed <2> for NO line feed";lf: LET lf=10*NOT (lf-1): PRINT #4: POKE 16092,lf : INPUT "Key Maximum Line Length";lx: LET qq=lx/ob: PRINT #4: POKE 16090,lx: LPRINT : GO TO VAL "2066"Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.






