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

  1.      rem This is the employee mailing label printing program.
  2.  
  3. %INCLUDE ALL.BAS
  4.      dim k$(14),n(2,14)
  5.      RESTORE
  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 EMPLOYEE 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.      z5$="b:ep"
  17.      print
  18. 1110 INPUT"HOW MANY LABELS ACROSS THE PAGE  (1 TO 5)";M
  19. 1120 PRINT:PRINT
  20. 1125 PRINT "INDICATE THE DISTANCE BETWEEN THE LEFT EDGES OF"
  21. 1130 PRINT "ANY TWO LABELS IN DECIMAL INCHES (I.E. 2.6)."
  22. 1135 INPUT K
  23. 1140 K=(K*10)+1
  24. 1142 IF M=1 THEN 1146
  25. 1145 IF K<25 THEN PRINT "*** LABEL TO SHORT ***":GOTO 1125
  26. 1146 IF K>110 THEN PRINT "*** LABEL TO LONG ***":GOTO 1125
  27. 1150 PRINT:PRINT
  28. 1160 PRINT "INDICATE THE NUMBER OF SPACES BETWEEN LABELS (I.E. 2)."
  29. 1165 INPUT L
  30. 2000 IF M<1 OR M>5 THEN 1110
  31.      if end #1 then 1100
  32. 2030 open z5$ recl 512 as 1
  33. 2040 Z3=(size(z5$)*block.size)/512
  34. 2050 FOR Z2=1 TO Z3
  35. 2060 read #1,z2;N(2,1),N(2,2)
  36. 2070 IF N(2,2)=0 THEN 2100
  37. 2090 NEXT Z2
  38. 2100 Z2=Z2-1
  39. 2105 close 1
  40. 2110 Z3=Z3-2
  41.      print clear$:print:print
  42. 2150 PRINT "LABELS TO PRINT ";Z2
  43. 2160 PRINT
  44. 3000 NA=INT(Z2/M)+1
  45. 3004 N(0,9)=14:N(0,10)=11:N(0,11)=8:N(0,12)=8:N(0,13)=1
  46. 3010 Z1=0
  47. 3020 open z5$ recl 512 as 1
  48. 3025 lprinter
  49. 3030 FOR J=1 TO NA
  50. 3035 Z5=0
  51. 3040 FOR I=1 TO M
  52.      read #1,z1+1;n(2,1),n(2,2),n$
  53. 3055 Z9=1:FOR Z=3 TO 13:K$(Z)=MID$(N$,Z9,N(0,Z)):Z9=Z9+N(0,Z):NEXT Z
  54. 3060 A$(I)=K$(3)
  55. 3070 B$(I)=K$(4)
  56. 3080 C$(I)=K$(5)
  57. 3090 DA$(I)=left$(K$(6),15)
  58. 4000 E$(I)=K$(7)
  59. 4010 F$(I)=K$(8)
  60. 4020 Z1=Z1+1
  61. 4025 Z5=Z5+1
  62. 4027 IF Z1=Z2 THEN 4040
  63. 4030 NEXT I
  64. 4040 FOR I=1 TO Z5-1
  65. 4045 IF Z5=1 THEN print TAB(K);:GOTO 4070
  66. 4050 print A$(I);TAB((I*K)-I+1);
  67. 4060 NEXT I
  68. 4070 print A$(Z5)
  69. 4080 FOR I=1 TO Z5-1
  70. 4085 IF Z5=1 THEN print TAB(K);:GOTO 5010
  71. 4090 print B$(I);TAB((I*K)-I+1);
  72. 5000 NEXT I
  73. 5010 print B$(Z5)
  74. 5020 FOR I=1 TO Z5-1
  75. 5025 IF Z5=1 THEN print TAB(K);:GOTO 5050
  76. 5030 print C$(I);TAB((I*K)-I+1);
  77. 5040 NEXT I
  78. 5050 print C$(Z5)
  79. 5060 FOR I=1 TO Z5-1
  80. 5065 IF Z5=1 THEN print TAB(K);:GOTO 6000
  81. 5070 print DA$(I);",";E$(I);" ";
  82. 5080 print F$(I);TAB((I*K)-I+1);
  83. 5090 NEXT I
  84. 6000 print DA$(Z5);",";E$(Z5);" ";F$(Z5)
  85. 6010 FOR Z=1 TO L:print:NEXT Z
  86. 6030 NEXT J
  87. 6040 close 1
  88. 6045 console
  89. 6050 PRINT clear$
  90. 6060 chain "master6"
  91.