290 HOME : POKE -16368,0: VTAB 10: PRINT "ENTER SLOT NUMBER FOR YOUR": PRINT " FORMAT DISK (1-7): <6>";BS$;BS$;: GET SL$: IF SL$ = CR$ THEN SL$ = "6"
300 SL = VAL(SL$): VTAB 11: HTAB 22: PRINT SL$
310 IF (SL <1) OR (SL >7) THEN PRINT BL$;BL$;: GOTO 290
320 VTAB 14: HTAB 1: POKE -16368,0: CALL -958: PRINT "ENTER DRIVE NUMBER FOR YOUR": PRINT " FORMAT DISK (1-2): <1>";BS$;BS$;: GET DR$: IF DR$ = CR$ THEN DR$ = "1"
330 DR = VAL(DR$): VTAB 15: HTAB 22: PRINT DR$
340 IF DR <1 OR DR >2 THEN PRINT BL$;BL$;: GOTO 320
350 VTAB 17: HTAB 1: POKE -16368,0: CALL -958: PRINT "ENTER SLOT NUMBER FOR YOUR": PRINT " PRINTER INTERFACE (1-7): <1>";BS$;BS$;: GET PS$: IF PS$ = CR$ THEN PS$ = "1"
360 PS = VAL(PS$): VTAB 18: HTAB 28: PRINT PS$
370 IF PS <1 OR PS >7 THEN PRINT BL$;BL$;: GOTO 350
380 HOME : POKE -16368,0: VTAB 10: PRINT "DO YOU WISH TO USE A FORMAT": PRINT " WHICH IS ON THE DISK <Y/N> ? < >";BS$;BS$;: GET A$: PRINT A$
390 IF A$ = "N" OR A$ = CHR$(110) GOTO 620
400 IF A$ = "Y" OR A$ = CHR$(121) GOTO 420
410 PRINT BL$ +BL$: GOTO 380
420 FLAG = 1: HOME : VTAB 10: PRINT " WHAT FORMAT DO YOU WISH TO USE?": PRINT " PRESS ? TO SEE A CATALOG OF THE DISK": PRINT : INPUT "FORMAT NAME: ";F$: IF LEN(F$) >15 THEN F$ = LEFT$(F$,15)
425 IF F$ = "" THEN 380
430 IF F$ < >"?" THEN 510
440 IF F$ = "?" THEN HOME : PRINT : PRINT D$; LEFT$("CATALOG",7 -( PEEK(48896) = 76) *4);",S";SL;",D";DR
552 CALL 54572: FOR B = 512 TO 768: IF PEEK(B) < >0 THEN NEXT
555 T$(K) = "":AD = VAL(T$(K)) + PEEK(131) +256 * PEEK(132): POKE AD,B -512: POKE AD +1,0: POKE AD +2,2:T$(K) = MID$ (T$(K),1):B = 768: NEXT
557 INPUT Y(K)
560 NEXT
570 PRINT D$;"CLOSE";F$
580 GOSUB 1760
590 REM
600 REM PREPARE THE FORM
610 REM
620 REM
630 HOME : VTAB 10: PRINT "HOW MANY LINES (1 TO 33) DO YOU WISH": PRINT " TO PRINT ON EACH FORM ? ";: INPUT "";A$:M = VAL(A$)
640 IF M <1 OR M >33 THEN PRINT BL$BL$: PRINT : PRINT " SORRY, IT MUST BE BETWEEN 1 AND 33": GOSUB 1990: GOTO 630
650 POKE -16368,0: VTAB 13: CALL -958: VTAB 14: PRINT "DO YOU WISH IT CENTERED <Y/N> ? < >";BS$;BS$;: GET CE$: PRINT CE$
660 IF CE$ = "Y" OR CE$ = CHR$(121) GOTO 690
670 IF CE$ = "N" OR CE$ = CHR$(110) GOTO 690
680 PRINT BL$;BL$: GOTO 650
690 HOME : FOR K = 1 TO M
700 GOSUB 1510
710 NEXT
720 HOME : VTAB 10: PRINT "HOW MANY BLANK LINES": PRINT " BETWEEN FORMS ? ";: INPUT "";L$:L = VAL(L$):A$ = ""
730 POKE -16368,0: IF ((2 *M) +L) >66 THEN PRINT BL$;BL$: PRINT "THAT IS LONGER THAN AN 11-INCH PAGE;": PRINT " ARE YOU SURE <Y/N> ? < >";BS$;BS$;: GET A$: PRINT A$
740 IF A$ = "Y" OR A$ = CHR$(121) GOTO 770
750 IF A$ = "N" OR A$ = CHR$(110) GOTO 720
760 IF ((2 *M) +L) >66 THEN PRINT BL$;BL$: GOTO 730
770 HOME : VTAB 10: PRINT "HOW MANY REPETITIONS ? ";: INPUT "";A$
780 R = VAL(A$)
790 HOME : VTAB 10: PRINT "HOW MANY LINES DOWN FROM THE TOP": PRINT " DO YOU WISH THE PRINTING TO BEGIN ? ";: INPUT "";A$:H = VAL(A$)
800 IF H >66 THEN PRINT BL$;BL$: PRINT "THAT WILL BE OFF THE PAGE AT THE BOTTOM": GOSUB 1990: GOTO 790
810 IF H <0 THEN PRINT BL$;BL$: PRINT " PLEASE USE A NUMBER BETWEEN 1 AND 66": GOTO 790
820 GOSUB 1990: GOSUB 1760
830 GOSUB 1690: PRINT : PRINT D$;"PR#0": REM CLEAR THE DECKS
1340 VTAB 6: PRINT "WOULD YOU LIKE TO QUIT?": PRINT : PRINT " PRESS <Y> FOR YES": PRINT SPC( 8);"<N> TO RETURN TO THE": PRINT SPC( 16);"PREVIOUS STEP": PRINT SPC( 8);"<R> TO RESTART": PRINT : PRINT SPC( 8);"< >";BS$;BS$;: GET A$: PRINT A$
1350 IF A$ = "Y" OR A$ = CHR$(121) GOTO 1390
1360 IF A$ = "N" OR A$ = CHR$(110) GOTO 1150
1370 IF A$ = "R" OR A$ = CHR$(114) GOTO 380
1380 PRINT : PRINT BL$;BL$: GOTO 1330
1390 PRINT : PRINT : PRINT : PRINT "EXITING WILL DESTROY ANY FILE IN RAM...": PRINT : PRINT " PRESS ";: INVERSE : PRINT "E";: NORMAL : PRINT " TO CONFIRM YOU WISH TO EXIT"
1400 PRINT : PRINT : HTAB 6: PRINT "OR ";: INVERSE : PRINT "ANY OTHER KEY";: NORMAL : PRINT " TO CONTINUE ";:
1410 GET A$: IF A$ = "E" OR A$ = CHR$(101) THEN PRINT : GOTO 1430
1420 GOTO 1150
1430 VTAB 22: PRINT : HTAB 13:ST$ = "'BYE FOR NOW..": GOSUB 1470: POKE 34,0: HOME : END
1440 REM
1450 REM SLOWPRINT SUBROUTINE
1460 REM
1470 SPEED= 175: HTAB 10: FOR X = 1 TO LEN(ST$): PRINT MID$ (ST$,X,1);:Z = PEEK( -16336) + PEEK( -16336): FOR Y = 1 TO 20: NEXT : NEXT : PRINT : SPEED= 255: FOR I = 1 TO 1000: NEXT : RETURN
1480 REM
1490 REM START OF SET-UP
1500 REM
1510 HOME : VTAB 10: PRINT "WHAT DO YOU WISH TO PRINT": PRINT " ON LINE ";K;" ? "
1520 VTAB 13: HTAB 1: FOR L = 1 TO 39: PRINT ".";: NEXT : PRINT "^";: FOR L = 1 TO 39: PRINT ".";: NEXT : PRINT "^";: FOR I = 1 TO 52: PRINT ".";: NEXT : VTAB 13: HTAB 1
1525 CALL 54572: FOR B = 512 TO 768: IF PEEK(B) < >0 THEN NEXT
1530 T$(K) = "":AD = VAL(T$(K)) + PEEK(131) +256 * PEEK(132): POKE AD,B -512: POKE AD +1,0: POKE AD +2,2:T$(K) = MID$ (T$(K),1):B = 768: NEXT
1540 HOME : VTAB 10: PRINT "PLEASE SELECT ONE OF -": PRINT : FOR I = 1 TO NC: PRINT " <"I"> "PN$(I): NEXT I: PRINT : PRINT " < >";BS$;BS$;: GET X$: PRINT X$
1550 REM
1560 REM CENTERING CALCULATION
1570 REM
1580 IF X$ <"1" OR X$ > STR$(NC) THEN PRINT BL$;BL$: PRINT "SORRY, IT MUST BE ONE OF C, I, W, OR R": PRINT : PRINT : GOSUB 1990: GOTO 1540
1600 POKE -16368,0: HTAB 1: VTAB 20: PRINT "DO YOU WANT BOLD-FACE PRINT <Y/N>? < >";BS$;BS$;: GET E$: PRINT E$: IF E$ < >"N" AND E$ < > CHR$(110) AND E$ < > CHR$(121) AND E$ < >"Y" THEN 1600
1610 E$(K) = E$
1620 LE(K) = (L(K))/2
1630 Y(K) = M(K) -LE(K)
1640 IF CE$ = "N" OR CE$ = CHR$(110) THEN Y(K) = 1
1650 RETURN
1660 REM
1670 REM PRINTER PREPARATION
1680 REM
1690 VTAB 23: HTAB 1: CALL -958
1700 VTAB 23: HTAB 1: PRINT " PLEASE AND PRESS A KEY";: FOR PAUSE = 1 TO 250: NEXT : VTAB 23: HTAB 1: PRINT " PLEASE PREPARE PRINTER AND PRESS A KEY";: FOR PAUSE = 1 TO 250: NEXT : IF PEEK( -16384) <128 GOTO 1690: REM 17 SPACES
1710 VTAB 23: CALL -958
1720 RETURN
1730 REM
1740 REM USER'S VERIFICATION OF SET-UP
1750 REM
1760 HOME : PRINT "SUMMARY OF THE FORMAT YOU HAVE CHOSEN :": PRINT : PRINT "LINES PER FORM = ";M: PRINT "BLANK LINES BETWEEN FORMS = ";L: PRINT "NO. OF REPETITIONS = ";R: PRINT "FIRST LINE IS ";H;" LINE(S) FROM TOP":
1770 IF CE$ = "Y" OR CE$ = CHR$(121) THEN PRINT "TEXT IS CENTERED": GOTO 1790
1780 PRINT "TEXT IS LEFT JUSTIFIED"
1790 POKE 34,9: SPEED= 200
1800 FOR K = 1 TO M: PRINT "LINE # ";K;": ";T$(K): NEXT : PRINT
1810 SPEED= 255: POKE -16368,0: HTAB 1: VTAB 23: CALL -868: PRINT "IS THIS SET-UP OK <Y/N> ? < >";BS$;BS$;: GET A$: PRINT A$;: POKE 34,1
1820 IF A$ = "Y" OR A$ = CHR$(121) GOTO 830
1830 IF A$ = "N" OR A$ = CHR$(110) THEN HOME : GOTO 630
1890 IF ER = 5 OR ER = 6 OR ER = 4 OR ER = 8 OR ER = 9 THEN PRINT D$;"CLOSE";F$
1900 IF ER = 8 THEN PRINT "I/O ERROR--CHECK DRIVE DOOR": GOTO 1950
1910 IF ER = 4 THEN PRINT "DISK IS WRITE-PROTECTED.": GOTO 1950
1920 IF ER = 9 THEN PRINT "DISK IS FULL. INSERT ANOTHER DISK.": GOTO 1950
1930 IF FLAG = 2 AND ER = 5 OR ER = 6 OR ER = 254 THEN PRINT F$" NOT ON THIS DISK.": GOTO 1950
1940 PRINT "ERROR "ER" IN LINE "EL"."
1950 GOSUB 1990: ON FLAG GOTO 420,420,420,1150
1960 REM
1970 REM PRESS A KEY ROUTINE
1980 REM
1990 VTAB 24: CALL -868: HTAB 7: PRINT "PRESS TO CONTINUE";: FOR PAUSE = 1 TO 250: NEXT : VTAB 24: HTAB 7: PRINT "PRESS <RETURN> TO CONTINUE";: FOR PAUSE = 1 TO 250: NEXT : IF PEEK( -16384) <128 GOTO 1990: REM 10 SPACES
2000 POKE -16368,0: PRINT
2010 RETURN
2020 REM
2030 REM SCREEN SCROLL
2040 REM
2050 VTAB 24: FOR I = 1 TO 24: PRINT : FOR J = 1 TO 75: NEXT : NEXT : HOME : RETURN