home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib36b.dsk
/
SNAPSHOT.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
5KB
|
112 lines
10 REM *************************
20 REM * SNAPSHOT *
30 REM * BY ROBERT T. YUILLE *
40 REM * COPYRIGHT (C) 1989 *
50 REM * MINDCRAFT PUBL. CORP. *
60 REM * CONCORD, MA 01742 *
70 REM *************************
80 D$ = CHR$(4):E$ = CHR$(27):I$ = CHR$(9):R$ = CHR$(13):Q$ = CHR$(17)
90 PRINT E$Q$: PRINT D$"PR#0": POKE 2043,255
100 TEXT : HOME : NORMAL : RESTORE : POKE 34,4: POKE 35,23
110 HTAB 18: PRINT "SNAPSHOT": HTAB 13: PRINT "BY ROBERT T. YUILLE": HTAB 13: PRINT "COPYRIGHT (C) 1989": HTAB 11: PRINT "MINDCRAFT PUBL. CORP."
120 GOSUB 1120: GOSUB 1100
130 VTAB 8: HTAB 1: PRINT "PRESS RETURN TO CONTINUE: ";: GET A$
140 IF A$ = CHR$(27) THEN POKE 34,0: POKE 35,24: TEXT : HOME : END
150 REM INITIALIZATION
160 PD = PEEK(48896) = 76: IF NOT PD THEN HIMEM: 35840:D$ = R$ +D$: GOTO 220: REM DOS
170 FOR I = 768 TO I +8
180 READ A: POKE I,A
190 NEXT
200 CALL 768
210 DATA 32,248,190,169,10,32,245,190,96
220 ONERR GOTO 260
230 PRINT : PRINT D$"BLOAD SS.BIN"
240 REM -RESET ERROR FLAG-
250 POKE 216,0: GOTO 290
260 POKE 216,0: HOME : VTAB 10
270 IF PEEK(222) = 6 THEN PRINT "SS.BIN IS NOT ON THIS DISK.": PRINT : PRINT "INSERT CORRECT DISK...": PRINT : PRINT "AND RUN PROGRAM AGAIN": END
280 GOTO 890
290 HOME : GOSUB 1120: GOSUB 1100: VTAB 8: HTAB 1: PRINT "UPRIGHT OR SIDEWAYS PICTURE (U/S)?: ";
300 GET Z$
310 IF Z$ = "U" OR Z$ = "u" THEN POKE 9,1: PRINT Z$: GOTO 360
320 IF Z$ = CHR$(27) THEN TEXT : HOME : END
330 IF Z$ < >"S" AND Z$ < >"s" THEN 300
340 PRINT Z$: POKE 9,0
350 POKE 9,0
360 HOME : GOSUB 1110: VTAB 8: HTAB 1: PRINT "WHICH DISK DRIVE DO YOU": PRINT "WANT TO USE (1/2)?: ";
370 GET Z$
380 IF Z$ = "1" THEN DR = 1: PRINT Z$: GOTO 420
390 IF Z$ = CHR$(27) THEN 290
400 IF Z$ < >"2" THEN 370
410 DR = 2: PRINT Z$
420 HOME : VTAB 8: HTAB 1: PRINT "WHICH SLOT DO YOU WANT": PRINT "TO USE (5/6/7)?: ";
430 GET Z$
440 IF Z$ = "5" THEN SL = 5: PRINT Z$: GOTO 490
450 IF Z$ = "6" THEN SL = 6: PRINT Z$: GOTO 490
460 IF Z$ = "7" THEN SL = 7: PRINT Z$: GOTO 490
470 IF Z$ = CHR$(27) THEN 360
480 GOTO 420
490 HOME : GOSUB 1110: VTAB 10: HTAB 1: PRINT "ENTER ? TO CATALOG DISK"
500 HTAB 1: VTAB 11: PRINT "PRESS RETURN TO PRINT CURRENT SCREEN"
510 HTAB 1: VTAB 8: PRINT "PICTURE FILENAME: ";: POKE -16368,0: GOSUB 920
520 Z$ = ""
530 IF P$ = CHR$(27) THEN 420
540 IF P$ = "?" THEN 580
550 IF P$ = "" THEN POKE -16297,0: POKE -16301,0: POKE -16304,0: VTAB 22: HTAB 1: PRINT "PRESS RETURN TO PRINT ";: GET Z$: IF Z$ = R$ THEN POKE -16302,0: GOTO 740
560 IF Z$ = CHR$(27) THEN POKE -16303,0: GOTO 490
570 GOTO 600
580 ONERR GOTO 890
590 HOME : PRINT D$ LEFT$("CATALOG",7 -4 *( PEEK(48896) = 76))",S"SL",D"DR: HTAB 1: VTAB 23: PRINT "PRESS RETURN TO CONTINUE: ";: GET A$: HOME : GOTO 490
600 HOME : VTAB 8: PRINT "BE SURE YOUR PRINTER IS READY": VTAB 10: PRINT "PRESS RETURN TO CONTINUE: ";: GET A$
610 IF A$ = CHR$(27) THEN 490
620 HGR : POKE -16302,0: ONERR GOTO 670
630 ONERR GOTO 670
640 PRINT : PRINT D$"BLOAD"P$",S"SL",D"DR",A$2000"
650 REM -RESET ERROR FLAG-
660 POKE 216,0: GOTO 740
670 POKE 216,0: POKE -16303,0: HOME : VTAB 10
680 IF PEEK(222) = 8 THEN PRINT "I/O ERROR": GOTO 730
690 IF PEEK(222) = 11 OR PEEK(222) = 16 THEN PRINT "THAT IS NOT A LEGAL FILE NAME.": GOTO 730
700 IF PEEK(222) = 6 OR PEEK(222) = 7 THEN PRINT "THAT PICTURE IS NOT ON THIS DISK.": GOTO 730
710 IF PEEK(222) = 13 THEN PRINT "THAT FILE IS NOT A BINARY FILE.": GOTO 730
720 GOTO 890
730 GOSUB 1120: VTAB 12: HTAB 1: PRINT "PRESS RETURN AND TRY AGAIN: ";: GET Z$: HOME : CALL -3288: GOTO 490
740 PRINT D$"PR#1"
750 PRINT E$"n": REM 9 CPI
760 PRINT CHR$(14): REM HEADLINE BEGIN
770 PRINT I$"K";I$"Z": REM STOP LF AFTER CR & CONTROL CHARACTERS
780 CALL 36864
790 PRINT
800 PRINT CHR$(24): REM CANCEL UNPRINTED TEXT
810 PRINT CHR$(12): REM FORM FEED
820 PRINT D$"PR#0"
830 POKE -16303,0: HOME : HTAB 1: VTAB 10: PRINT "PRINT ANOTHER PICTURE Y/N ?: ";
840 GET C$
850 IF C$ = "Y" OR C$ = "y" THEN 290
860 IF C$ < >"N" AND C$ < >"n" AND C$ < > CHR$(27) THEN 840
870 TEXT : HOME : END
880 REM -- UNUSUAL DISK ERRORS --
890 TEXT : HOME : PRINT "A SYSTEM ERROR #"; PEEK(222);" HAS OCCURRED"
900 PRINT "AT LINE #"; PEEK(218) + PEEK(219) *256
910 POKE 216,0: END
920 T = 1:P$ = ""
930 GET KB$
940 IF KB$ = CHR$(13) THEN RETURN
950 IF T = 1 AND (KB$ = CHR$(8) OR KB$ = CHR$(127)) THEN 930
960 IF T = 1 AND KB$ = CHR$(27) THEN P$ = CHR$(27): RETURN
970 IF T = 1 AND KB$ = CHR$(63) THEN P$ = CHR$(63): RETURN
980 IF T = 1 AND ASC(KB$) <65 THEN 930
990 IF T = 1 AND ASC(KB$) >122 THEN 930
1000 IF T = 1 AND ( ASC(KB$) <97 AND ASC(KB$) >90) THEN 930
1010 IF KB$ = CHR$(8) OR KB$ = CHR$(127) THEN 1080
1020 IF KB$ = CHR$(27) THEN HTAB 19: PRINT " ";: HTAB 19: GOTO 920
1030 P$ = P$ +KB$
1040 NORMAL : HTAB T +18: PRINT KB$;
1050 T = T +1
1060 IF T = 16 THEN RETURN
1070 GOTO 930
1080 HTAB T +18: PRINT " ";:T = T -1: IF T = 1 THEN P$ = "": HTAB T +18: GOTO 930
1090 P$ = LEFT$(P$,T -1): HTAB T +18: GOTO 930
1100 VTAB 24: HTAB 1: INVERSE : PRINT "PRESS ESCAPE TO QUIT";: NORMAL : RETURN
1110 VTAB 24: HTAB 1: INVERSE : PRINT "PRESS ESCAPE TO BACK UP";: NORMAL : RETURN
1120 VTAB 24: HTAB 1: PRINT " ";: RETURN