home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug087.ark / MALABELS.BAS < prev    next >
Encoding:
BASIC Source File  |  1986-10-20  |  2.4 KB  |  86 lines

  1.      rem This is the mailing label printing program.
  2.  
  3. %INCLUDE ALL.BAS
  4.      RESTORE
  5. 1000 DIM K$(14),N(2,14)
  6. 1020 DIM A$(5),B$(5),C$(5),DA$(5),E$(5),F$(5)
  7.       for z=3 to 8:read n(0,z):next z
  8.      data 24,24,24,17,2,5
  9.      print clear$:print
  10. 1050 PRINT
  11. 1060 PRINT "THIS IS THE MAILING LABEL PRINTING ROUTINE."
  12. 1070 PRINT 
  13. 1080 PRINT "IF YOU ARE NOT FAMILIAR WITH ITS OPERATION, PLEASE"
  14. 1090 PRINT "READ THE INSTRUCTIONS BEFORE PROCEEDING."
  15. 1100 PRINT:PRINT
  16.      print "Enter the name of the mailing list file, i.e. MA0."
  17.      input line z5$
  18.      if len(z5$)>8 then 1100
  19.      z5$="b:"+z5$:z7$=z5$+"size"
  20.      print
  21. 1110 INPUT"HOW MANY LABELS ACROSS THE PAGE  (1 TO 5)";M
  22. 1120 PRINT:PRINT
  23. 1125 PRINT "INDICATE THE DISTANCE BETWEEN THE LEFT EDGES OF"
  24. 1130 PRINT "ANY TWO LABELS IN DECIMAL INCHES (I.E. 2.6)."
  25. 1135 INPUT K
  26. 1140 K=(K*10)+1
  27. 1142 IF M=1 THEN 1146
  28. 1145 IF K<25 THEN PRINT "*** LABEL TO SHORT ***":GOTO 1125
  29. 1146 IF K>110 THEN PRINT "*** LABEL TO LONG ***":GOTO 1125
  30. 1150 PRINT:PRINT
  31. 1160 PRINT "INDICATE THE NUMBER OF SPACES BETWEEN LABELS (I.E. 2)."
  32. 1165 INPUT L
  33. 2000 IF M<1 OR M>5 THEN 1110
  34.      if end #1 then 1100
  35.      print clear$:print:print
  36. 2030 open z7$ as 1:read #1;z2,z3:close 1:z2=z2-1:z3=z3-2
  37. 2150 PRINT "LABELS TO PRINT ";Z2
  38. 2160 PRINT
  39. 3000 NA=INT(Z2/M)+1
  40. 3004 N(0,9)=14:N(0,10)=11:N(0,11)=8:N(0,12)=8:N(0,13)=1
  41. 3010 Z1=0
  42. 3020 open z5$ recl 150 as 1
  43. 3025 lprinter
  44. 3030 FOR J=1 TO NA
  45. 3035 Z5=0
  46. 3040 FOR I=1 TO M
  47.      read #1,z1+1;n(2,1),n(2,2),n$
  48. 3055 Z9=1:FOR Z=3 TO 13:K$(Z)=MID$(N$,Z9,N(0,Z)):Z9=Z9+N(0,Z):NEXT Z
  49. 3060 A$(I)=K$(3)
  50. 3070 B$(I)=K$(4)
  51. 3080 C$(I)=K$(5)
  52. 3090 DA$(I)=LEFT$(K$(6),15)
  53. 4000 E$(I)=K$(7)
  54. 4010 F$(I)=K$(8)
  55. 4020 Z1=Z1+1
  56. 4025 Z5=Z5+1
  57. 4027 IF Z1=Z2 THEN 4040
  58. 4030 NEXT I
  59. 4040 FOR I=1 TO Z5-1
  60. 4045 IF Z5=1 THEN print TAB(K);:GOTO 4070
  61. 4050 print A$(I);TAB((I*K)-I+1);
  62. 4060 NEXT I
  63. 4070 print A$(Z5)
  64. 4080 FOR I=1 TO Z5-1
  65. 4085 IF Z5=1 THEN print TAB(K);:GOTO 5010
  66. 4090 print B$(I);TAB((I*K)-I+1);
  67. 5000 NEXT I
  68. 5010 print B$(Z5)
  69. 5020 FOR I=1 TO Z5-1
  70. 5025 IF Z5=1 THEN print TAB(K);:GOTO 5050
  71. 5030 print C$(I);TAB((I*K)-I+1);
  72. 5040 NEXT I
  73. 5050 print C$(Z5)
  74. 5060 FOR I=1 TO Z5-1
  75. 5065 IF Z5=1 THEN print TAB(K);:GOTO 6000
  76. 5070 print DA$(I);",";E$(I);" ";
  77. 5080 print F$(I);TAB((I*K)-I+1);
  78. 5090 NEXT I
  79. 6000 print DA$(Z5);",";E$(Z5);" ";F$(Z5)
  80. 6010 FOR Z=1 TO L:print:NEXT Z
  81. 6030 NEXT J
  82. 6040 close 1
  83. 6045 console
  84. 6050 PRINT clear$
  85. 6060 chain "master6"
  86.