home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib36b.dsk
/
PRINT.STUDIO.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
5KB
|
89 lines
10 REM **********************
20 REM * PRINT STUDIO *
30 REM * BY ALLAN LAMB *
40 REM * COPYRIGHT (C) 1989 *
50 REM * BY MICROSPARC, INC.*
60 REM * CONCORD, MA 01742 *
70 REM **********************
80 IF PEEK(104) < >96 THEN POKE 103,1: POKE 104,96: POKE 24576,0: PRINT CHR$(4)"RUN PRINT.STUDIO"
90 HOME : PRINT CHR$(17): VTAB 1: HTAB 15: PRINT "PRINT STUDIO": HTAB 14: PRINT "BY ALLAN LAMB": HTAB 12: PRINT "COPYRIGHT (C) 1989": HTAB 12: PRINT "BY MICROSPARC, INC."
100 POKE 49168,0:TYPE = 249:HR = 3245:RD = 3279:RS = 3110
110 PRINT CHR$(4);"BLOAD STUDIO.OBJ"
120 PRINT CHR$(4);"BLOAD STUDIO.FONTS,A$2D00"
130 VTAB 7: HTAB 1: PRINT "PRINTER CARD IN WHICH SLOT (1/2/4/5) ";
140 IF A$ = CHR$(27) THEN TEXT : HOME : END
150 GET A$: PRINT A$: IF A$ <"1" OR A$ >"5" THEN 130
160 IF A$ = "3" THEN 130
170 IF A$ = CHR$(27) THEN TEXT : HOME : END
180 POKE 10,176 + VAL(A$)
190 VTAB 10: HTAB 1: PRINT "ARE YOU USING A GRAPPLER CARD (Y/N) ";
200 GET A$: PRINT A$: IF A$ = "Y" OR A$ = CHR$(121) THEN POKE 11,1: GOTO 240
210 IF A$ = CHR$(27) THEN 130
220 IF A$ < >"N" AND A$ < > CHR$(110) THEN 190
230 POKE 11,0
240 VTAB 13: HTAB 1: PRINT "PRINT "; CHR$(34);"SUCCESSFUL DOWNLOAD"; CHR$(34);" AFTER EVERY": HTAB 12: PRINT "DOWNLOAD (Y/N) ";
250 GET A$: PRINT A$: IF A$ = "Y" OR A$ = CHR$(121) THEN POKE 12,1: GOTO 290
260 IF A$ = CHR$(27) THEN 190
270 IF A$ < >"N" AND A$ < > CHR$(110) THEN 240
280 POKE 12,0
290 CALL 3072
300 ONERR GOTO 810
310 IF PEEK(TYPE) = 131 THEN NOTRACE : GOSUB 470: CALL HR: CALL RD: CALL RS
320 IF PEEK(TYPE) = 140 THEN NOTRACE : GOSUB 490: CALL HR: CALL RD: CALL RS
330 IF PEEK(TYPE) = 147 THEN NOTRACE : GOSUB 430: CALL HR: CALL RD: CALL RS
340 IF PEEK(TYPE) = 145 THEN NOTRACE : GOTO 360
350 GOTO 300
360 TEXT : HOME : VTAB 12: HTAB 1: PRINT "SET PRINTER FOR CUSTOM CHAR. SET (Y/N)";
370 GET A$: PRINT A$: IF A$ = "Y" OR A$ = CHR$(121) THEN 400
380 IF A$ < >"N" AND A$ < > CHR$(110) THEN 360
390 HOME : END
400 PRINT CHR$(4)"PR#" PEEK(10) -176: PRINT CHR$(27) + CHR$(39): PRINT CHR$(4)"PR#0"
410 VTAB 14: HTAB 13: PRINT "<<< DONE >>>": PRINT : PRINT "(DO NOT POWER - DOWN PRINTER OR COMPUTER"
420 TEXT : HOME : END
430 TEXT : HOME : VTAB 24: HTAB 1: PRINT "SAVE FILE";: GOSUB 740: IF ES THEN RETURN
440 HTAB 1: VTAB 14: PRINT "NAME OF SET TO SAVE? ";: GOSUB 550
450 IF P$ = CHR$(27) THEN RETURN
460 P$ = P$ +".FONT": PRINT CHR$(4): PRINT CHR$(4)"BSAVE"P$",A$2400,L$5C0,S"S",D"D: RETURN
470 TEXT : HOME : VTAB 24: HTAB 1: PRINT "CATALOG";: GOSUB 740: IF ES THEN RETURN
480 PRINT CHR$(4): PRINT CHR$(4) LEFT$("CATALOG",7 -4 *( PEEK(48896) = 76))",S"S",D"D: GOSUB 540: POKE 49168,0: RETURN
490 TEXT : HOME : VTAB 24: HTAB 1: PRINT "LOAD FILE";: GOSUB 740: IF ES THEN RETURN
500 HTAB 1: VTAB 14: PRINT "NAME OF SET TO LOAD? ";: GOSUB 550
510 IF P$ = CHR$(27) THEN RETURN
520 IF P$ = CHR$(63) THEN TEXT : HOME : GOSUB 480: HOME : VTAB 24: PRINT "LOAD FILE";: VTAB 14: GOTO 500
530 P$ = P$ +".FONT": PRINT CHR$(4): PRINT CHR$(4)"BLOAD"P$",A$2400,S"S",D"D: POKE 49168,0: RETURN
540 PRINT : PRINT "PRESS RETURN TO CONTINUE";: GET QQ$: RETURN
550 T = 1:P$ = ""
560 GET KB$
570 IF KB$ = CHR$(13) AND T >1 THEN RETURN
580 IF T = 1 AND (KB$ = CHR$(8) OR KB$ = CHR$(127)) THEN 560
590 IF T = 1 AND KB$ = CHR$(27) THEN P$ = CHR$(27): RETURN
600 IF T = 1 AND KB$ = CHR$(63) THEN P$ = CHR$(63): RETURN
610 IF T = 1 AND ASC(KB$) <65 THEN 560
620 IF T = 1 AND ASC(KB$) >122 THEN 560
630 IF T = 1 AND ( ASC(KB$) <97 AND ASC(KB$) >90) THEN 560
640 IF KB$ = CHR$(8) OR KB$ = CHR$(127) THEN 710
650 IF KB$ = CHR$(27) THEN HTAB 23: PRINT " ";: HTAB 22: GOTO 550: REM 22 SPACES
660 P$ = P$ +KB$
670 NORMAL : HTAB T +21: PRINT KB$;
680 T = T +1
690 IF T = 16 THEN RETURN
700 GOTO 560
710 HTAB T +21: PRINT " ";:T = T -1: IF T = 1 THEN P$ = "": HTAB T +21: GOTO 560
720 P$ = LEFT$(P$,T -1): HTAB T +21: GOTO 560
730 VTAB 24: HTAB 1: PRINT " ";: RETURN : REM 23 SPACES
740 HTAB 1: VTAB 10: PRINT "WHICH SLOT (5,6,7)? ";: GET QQ$
750 IF QQ$ = CHR$(27) THEN ES = 1: RETURN
760 IF QQ$ < >"5" AND QQ$ < >"6" AND QQ$ < >"7" THEN 740
770 S = VAL(QQ$):ES = 0
780 HTAB 1: VTAB 12: PRINT "WHICH DRIVE (1,2)? ";: GET QQ$: IF QQ$ = CHR$(27) THEN 740
790 IF QQ$ < >"1" AND QQ$ < >"2" THEN 780
800 D = VAL(QQ$): HOME : RETURN
810 HOME : IF PEEK(222) = 6 THEN 860
820 IF PEEK(222) = 3 THEN 870
830 IF PEEK(222) = 8 THEN 880
840 IF PEEK(222) = 4 THEN 890
850 N = PEEK(218) +256 * PEEK(219): HOME : HTAB 1: VTAB 10: PRINT "UNEXPECTED ERROR #" PEEK(222)"AT LINE"N: END
860 VTAB 12: HTAB 1: PRINT CHR$(7)"FILE NOT FOUND": GOSUB 540: CALL HR: CALL RD: CALL RS: GOTO 300
870 VTAB 12: HTAB 1: PRINT CHR$(7)"NO DEVICE CONNECTED": GOSUB 540: CALL HR: CALL RD: CALL RS: GOTO 300
880 VTAB 12: HTAB 1: PRINT CHR$(7)"I/O ERROR": GOSUB 540: CALL HR: CALL RD: CALL RS: GOTO 300
890 VTAB 12: HTAB 1: PRINT CHR$(7)"DISK IS WRITE PROTECTED": GOSUB 540: CALL HR: CALL RD: CALL RS: GOTO 300