Merge 1

Date: 198x
Type: Program
Platform(s): TS 2068

With File 1, support for mail merging letters.

Content

Appears On

One of a series of library tapes. Programs on these tapes were renamed to a number series. This tape contained

Related Products

Related Articles

Related Content

Image Gallery

Merge 1

Source Code

   10 LET q=23670: LET r=23671: RESTORE : FOR j=60000 TO 60013: READ k: POKE j,k: NEXT j: GO TO 1000
   11 DATA 1,0,0,33,0,0,84,93,33,0,0,237,176,201
   20 PRINT b$( TO y-x): LET x=y+1
   21 IF x1=22 AND p=1 THEN COPY : CLS : LET x1=0
   22 IF x1=22 AND p=0 THEN INPUT c$: CLS : LET x1=0
   23 LET x1=x1+1: LET x4=x4+1: RETURN 
   30 RANDOMIZE v1: POKE 60001,PEEK q: POKE 60002,PEEK r: RANDOMIZE v2: POKE 60004,PEEK q: POKE 60005,PEEK r: RANDOMIZE v3: POKE 60009,PEEK q: POKE 60010,PEEK r: RANDOMIZE USR 60000: RETURN 
   70 IF LEN z$>10 THEN LET b$=" "
   71 IF LEN z$<>10 THEN LET z$=z$+" ": GO TO 71
   72 INPUT "Key C if OK ";b$: RETURN 
 1000 CLS : PRINT TAB 10;"MERGE 1"
 1010 PRINT ''"Type the letter name ": INPUT z$: PRINT ''z$: GO SUB 70: IF b$<>"c" OR z$="" THEN GO TO 1
 1020 PRINT ''"Start the tape": LOAD z$CODE : CLS 
 1030 LET c1=PEEK 37998+256*PEEK 37999: POKE 37999+c1,143: IF c1>4500 THEN PRINT "Letter too long": PAUSE 250: GO TO 1
 1040 LET p=(1 AND IN 251=58)+(0 AND IN 251=126)
 1060 LET x3=80: IF p=1 THEN PRINT "Printer ON. How many lines/page?": INPUT x3
 1070 LET v1=c1: LET v2=61000: LET v3=38000: GO SUB 30
 1100 PRINT "Type the file name ": INPUT z$: PRINT ''z$: GO SUB 70: IF b$<>"c" OR z$="" THEN GO TO 1070
 1110 PRINT ''"Start the tape": LOAD z$CODE : CLS 
 1120 LET c5=PEEK 37998+256*PEEK 37999: LET a=PEEK 37997
 1130 LET z=38000
 1140 CLS : PRINT FLASH 1;"Building the next letter": DIM b(a+1): IF PEEK z=143 THEN GO TO 5000
 1150 LET b(1)=z: FOR j=1 TO a
 1160 IF PEEK z=131 THEN LET b(j+1)=z+1: GO TO 1180
 1170 LET z=z+1: GO TO 1160
 1180 LET z=z+1: NEXT j
 1190 PRINT "Fields found"
 1200 LET w=61000: LET x=32500
 1210 IF PEEK w=94 THEN GO TO 2000
 1220 POKE x,PEEK w: LET x=x+1: LET w=w+1: IF w=61000+c1 THEN CLS : GO SUB 3000: LET w=61000: LET z=z+1: GO TO 1140
 1240 GO TO 1210
 2000 LET w=w+1: LET b$=""
 2010 IF PEEK w=94 OR PEEK w=44 THEN GO TO 2030
 2020 LET b$=b$+CHR$ PEEK w: LET w=w+1: GO TO 2010
 2030 LET f=VAL b$: FOR j=b(f) TO b(f+1)-2: POKE x,PEEK j: LET x=x+1: NEXT j
 2040 IF PEEK w=94 THEN LET w=w+1: LET x=x-1: GO TO 1210
 2050 GO TO 2000
 3000 LET x=32500
 3010 LET x1=1: LET x2=x1: LET x4=x1
 3020 LET y=31
 3030 LET f=PEEK x: IF f=144 THEN GO TO 3050
 3035 IF f=42 THEN GO TO 4000
 3040 IF f>127 THEN LET x=x+1: IF f<>131 THEN GO TO 3200
 3050 IF INKEY$="z" THEN GO TO 1
 3060 LET f=0: LET b$="": FOR j=x TO x+y: LET b$=b$+CHR$ PEEK j: IF (PEEK j>127 AND PEEK j<>144) AND f=0 THEN LET f=j
 3070 NEXT j: LET y=j: IF f>0 THEN LET y=f
 3080 LET f=0: FOR j=x TO y: IF PEEK j=32 THEN LET f=1: LET j=y
 3090 NEXT j: IF f=0 THEN GO TO 3110
 3100 IF PEEK y<>32 AND PEEK y<128 THEN LET y=y-1: GO TO 3100
 3110 GO SUB 20: IF PEEK y>127 THEN LET x=x-1:
 3120 GO SUB 3400: GO TO 3020
 3200 IF f<>139 THEN GO TO 3300
 3210 LET k=x3-x4: IF k<3 THEN FOR j=1 TO k: PRINT : GO SUB 21: GO SUB 3400: NEXT j: GO TO 3230
 3220 REM PRINT : GO SUB 21: GO SUB 3400: PRINT : GO SUB 21: GO SUB 3400
 3230 PRINT TAB 5;: LET y=26: GO TO 3030
 3300 IF f<>134 THEN GO TO 3430
 3310 LET k=x3-x4: PRINT : GO SUB 21: FOR j=1 TO k: PRINT : GO SUB 21: NEXT j: GO SUB 3410
 3320 GO TO 3020
 3400 IF x4<x3 OR p=0 THEN RETURN 
 3410 FOR j=1 TO 5: PRINT : GO SUB 21: IF j=3 THEN PRINT TAB 15;x2: LET x2=x2+1: GO SUB 21
 3420 NEXT j: LET x4=1: RETURN 
 3430 IF p=0 THEN FOR j=1 TO 5: PRINT : NEXT j
 3440 IF p=1 THEN COPY 
 3450 LET z=z+1: GO TO 1140
 5000 CLS : PRINT AT 9,9;"End of list"'''"Key C for another copy": INPUT b$: IF b$="c" THEN GO TO 1120
 5999 STOP 
 6000 SAVE "Merge 1" LINE 1

People

No people associated with this content.

Scroll to Top