home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Software / FORM-MAKER (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  4KB  |  105 lines

  1. 100 REM*** KEY BUFFER IS C64 ONLY!!
  2. 110 :
  3. 120 PRINT"[147][158]      FORM MAKER - LOUIS F. SANDER      [146] "
  4. 130 POKE53280,6:POKE53281,6
  5. 140 PRINT"[153]   THIS MAKES A FORM ON YOUR PRINTER."
  6. 150 INPUT"  YOUR PRINTER WIDTH IN SPACES  80[157][157][157][157]";PW:PW=PW-1
  7. 160 INPUT"   YOUR PAPER LENGTH IN INCHES  11[157][157][157][157]";PL:PL=INT(9*PL)
  8. 170 PRINT"            COLUMN 1    COLUMN 2"
  9. 180 PRINT"[153]          [207][183][183][183][183][183][183][183][183][183][183][207][183][183][183][183][183][183][183][183][183][183][183][183][183][165]"
  10. 190 PRINT"    ROW 1 [153][165]          [165]             [165]"
  11. 200 PRINT"          [207][183][183][183][183][183][183][183][183][183][183][207][183][183][183][183][183][183][183][183][183][183][183][183][183][165]"
  12. 210 PRINT"    ROW 2 [153][204][175][175][175][175][175][175][175][175][175][175][204][175][175][175][175][175][175][175][175][175][175][175][175][175][165]"
  13. 220 PRINT"          [165]          [165]             [165]"
  14. 230 PRINT"    ROW 3 [153][204][175][175][175][175][175][175][175][175][175][175][204][175][175][175][175][175][175][175][175][175][175][175][175][175][165]"
  15. 240 PRINT"[158]THE FORM CAN HAVE ANY NUMBER OF COLUMNS"
  16. 250 PRINT"AND ROWS. IT CAN BE UP TO";PW;"[158]PRINTER"
  17. 260 PRINT"SPACES WIDE AND";PL;"[158]PRINTER LINES LONG,"
  18. 270 PRINT"INCLUDING LABELS FOR COLUMNS AND ROWS."
  19. 280 PRINT"YOU CHOOSE ANINDIVIDUAL WIDTH FOR EACH"
  20. 290 PRINT"COLUMN, AND ONE HEIGHT FOR ALL THE ROWS."
  21. 300 INPUT"  HOW MANY COLUMNS ON THE FORM";NC%:DIMCW(NC%):PRINT:IFNC%<1THEN1020
  22. 310 W=0:FORJ=1TONC%
  23. 320 PRINT"   HOW MANY SPACES IN COLUMN";J;"[157]";:CW(J)=0:INPUTCW(J)
  24. 330 IFCW(J)<1THENPRINTTAB(35)"[145][158]_ ???":GOTO320
  25. 340 W=W+CW(J):NEXT
  26. 350 PRINT"[158]THESE COLUMNS TAKE UP";W;"[158]OF THE";PW
  27. 360 PRINT"[158]AVAILABLE SPACES ON YOUR PRINTER."
  28. 370 IFW>PWTHENPRINT" ABORTED - MAXIMUM WIDTH IS";PW;"[157] SPACES. ":GOTO1020
  29. 380 INPUT"         IS THIS O.K. (Y OR N)  Y[157][157][157]";A$:IFA$<>"Y"THENPRINT:GOTO310
  30. 390 INPUT"    LABEL THE COLUMNS (Y OR N)  Y[157][157][157]";A$:IFLEFT$(A$,1)<>"Y"THEN470
  31. 400 GOSUB1090:FORJ=1TONC%
  32. 410 PRINT"LABEL FOR COLUMN";J;"-";CW(J);"SPACES"
  33. 420 PRINT"  ";CHR$(34);CHR$(20);CHR$(34);
  34. 430 FORK=1TOCW(J):PRINT" ";:NEXT:A=POS(0):PRINTCHR$(34):IFA>38THENPRINT"[145]";
  35. 440 PRINT"[145]";:POKE631,29:POKE198,1:INPUTA$
  36. 450 IFLEN(A$)<>CW(J)THENPRINT"[158] ERROR!! - TRY AGAIN ":GOTO410
  37. 460 L$=L$+A$:NEXT
  38. 470 PRINT"[158]THAT FINISHES THE VERTICAL COLUMNS."
  39. 480 PRINT"NOW WE WILL DO THE HORIZONTAL ROWS,"
  40. 490 PRINT"WHICH CAN FILL UP TO";PL-1;"[158]PRINTER LINES."
  41. 500 INPUT"     HOW MANY ROWS ON THE FORM";NR%:IFNR%<1THEN500
  42. 510 NW=LEN(STR$(NR%))-1:NW$=LEFT$("     ",NW)
  43. 520 INPUT"HOW MANY PRINTER LINES PER ROW";LR%:IFLR%<1THEN520
  44. 530 TL=NR%*LR%+1:DIML$(TL+2)
  45. 540 PRINT"[158]THESE ROWS TAKE UP";TL;"[158]PRINTER LINES,"
  46. 550 PRINT"INCLUDING A LINE FOR COLUMN LABELS."
  47. 560 PRINT"YOUR PAPER HAS";PL;"[158]LINES, LEAVING";PL-TL
  48. 570 PRINT"[158]LINES UNPRINTED."
  49. 580 IFTL>PLTHENPRINT" ABORTED - TOO LONG FOR THE PAPER.":GOTO1020
  50. 590 PRINT"[158]THE FORM IS";W;"[158]SPACES WIDE, LEAVING"
  51. 600 PRINT"[157]";PW-W;"[158]SPACES FOR ";
  52. 610 IFNW=<PW-WTHENPRINT"NUMBERING OR ";
  53. 620 PRINT"LABELING"
  54. 630 PRINT"ITS";NR%;"[158]HORIZONTAL ROWS."
  55. 640 IFNW>PW-WTHENPRINT"THERE IS NO ROOM TO NUMBER THEM.":GOTO690
  56. 650 INPUT"      NUMBER THE ROWS (Y OR N)";A$:IFLEFT$(A$,1)<>"Y"THEN690
  57. 660 FORJ=0TOTL:L$(J)=NW$:NEXT:J=1
  58. 670 FORK=1+INT((LR%-1)/2)TOTL-1STEPLR%:L$(K)=RIGHT$("    "+STR$(J),NW):J=J+1
  59. 680 NEXT:GOTO830
  60. 690 INPUT"       LABEL THE ROWS (Y OR N)";A$:IFLEFT$(A$,1)<>"Y"THEN830
  61. 700 GOSUB1090
  62. 710 INPUT"     # SPACES IN LONGEST LABEL";LW
  63. 720 IFLW>PW-WTHENPRINT"[158] ERROR!! -";PW-W;"[157] MAXIMUM ":GOTO710
  64. 730 FORJ=1TOLW:LW$=LW$+" ":NEXT
  65. 740 FORJ=0TOTL:L$(J)=LW$:NEXT:J=1
  66. 750 FORK=1+INT((LR%-1)/2)TOTL-1STEPLR%
  67. 760 PRINT"LABEL FOR ROW";J;"-";LW;"SPACES"
  68. 770 PRINT"  ";CHR$(34);LW$;:A=POS(0):PRINTCHR$(34):IFA>38THENPRINT"[145]";
  69. 780 PRINT"[145]";:POKE631,29:POKE198,1:INPUTA$
  70. 790 IFLEN(A$)<>LWTHENPRINT"[158] ERROR!! - TRY AGAIN ":GOTO760
  71. 800 L$(K)=A$:J=J+1:NEXT
  72. 810 :
  73. 820 REM PRINT THE FORM
  74. 830 PRINT"[158]THE FORM IS" LEFT$(STR$((LW+W)/10),5);CHR$(34);" WIDE BY";
  75. 840 PRINTLEFT$(STR$(TL/9),5);CHR$(34);" LONG,"
  76. 850 PRINT"OR";LW+W;"SPACES WIDE BY";TL;"LINES LONG."
  77. 860 PRINT"[153][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
  78. 870 PRINT"    ALIGN THE PAPER IN THE PRINTER,    "
  79. 880 PRINT"    THEN PRESS THE 'P' KEY...          "
  80. 890 GETA$:IFA$<>"P"THEN890
  81. 900 T$=CHR$(15) :REM TEXT MODE **TARGET
  82. 910 G$=CHR$(8)  :REM GRAPHICS MODE (FOR LINE SPACING)
  83. 920 OPEN4,4:CMD4:GOSUB1060:PRINTL$
  84. 930 FORH=1TONR%:GOSUB1060;:FORJ=1TONC%:PRINTCHR$(207);:FORK=1TOCW(J)-1
  85. 940 IFCW(J)>1THENPRINTCHR$(163);
  86. 950 NEXT:NEXT:PRINTCHR$(165);G$:IFLR%<2THEN990
  87. 960 FORI=1TOLR%-1:GOSUB1060;:FORJ=1TONC%:PRINTCHR$(165);:FORK=1TOCW(J)-1
  88. 970 IFCW(J)>1THENPRINT" ";
  89. 980 NEXT:NEXT:PRINTCHR$(165);G$:NEXT
  90. 990 NEXT:GOSUB1060;:FORJ=1TONC%:FORK=1TOCW(J):PRINTCHR$(163);:NEXT:NEXT
  91. 1000 PRINT#4:CLOSE4: PRINT"[147][158]      FORM MAKER - LOUIS F. SANDER      [146] "
  92. 1010 PRINT"         YOUR FORM IS FINISHED!"
  93. 1020 POKE53280,14:POKE53281,6:PRINT"[154]";
  94. 1030 END
  95. 1040 :
  96. 1050 REM ROW LABELS SUBROUTINE
  97. 1060 PRINTT$;L$(LC);:LC=LC+1:RETURN
  98. 1070 :
  99. 1080 REM LABEL SUBROUTINE
  100. 1090 PRINT"[158]ENTER THE LABELS RIGHT NOW. YOU MUST"
  101. 1100 PRINT"KEEP THEM BETWEEN THE QUOTATION MARKS,"
  102. 1110 PRINT"BUT YOU CAN CENTER THEM OR POSITION"
  103. 1120 PRINT"THEM AS YOU LIKE."
  104. 1130 RETURN
  105.