home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib32a.dsk
/
SEPTEMBER.1987
/
CREATE.SHAPES.bas
next >
Wrap
BASIC Source File
|
2023-02-26
|
4KB
|
89 lines
1 REM **********************
2 REM * CREATE.SHAPES *
3 REM * BY JOHN BELTRAMI *
4 REM * COPYRIGHT (C) 1987 *
5 REM * BY MICROSPARC, INC *
6 REM * CONCORD, MA 01742 *
7 REM **********************
10 REM CREATE SHAPES
20 D$ = CHR$(4)
30 E$ = ".SHP"
40 TEXT : HOME : VTAB 2: PRINT "CREATE SHAPES BY JOHN BELTRAMI": PRINT "COPYRIGHT 1987 BY MICROSPARC, INC."
50 VTAB 10: HTAB 5: PRINT "THIS PROGRAM CREATES SEVERAL TEXT"
60 VTAB 12: HTAB 5: PRINT "FILES THAT CONTAIN SAMPLE SHAPES."
70 VTAB 14: HTAB 5: PRINT "PARAMETERS ARE EXPRESSED IN DATA"
80 VTAB 16: HTAB 5: PRINT "STATEMENTS AND WRITTEN OUT TO TEXT"
90 VTAB 18: HTAB 5: PRINT "FILES WITH '.SHP' SUFFIXES."
100 VTAB 21: HTAB 5: PRINT "DO YOU WANT TO CONTINUE ?";: GET Y$: PRINT Y$
110 IF (Y$ < > CHR$(89)) AND (Y$ < > CHR$(121)) THEN PRINT CHR$(7): PRINT : PRINT "---- NO FILES AFFECTED ----": END
120 HOME : VTAB 10: HTAB 5: PRINT "PLEASE STAND BY AS THE SHAPE"
130 VTAB 12: HTAB 5: PRINT "FILES ARE CREATED"
140 REM DATA STRUCTURE
150 REM 1) 48 LINES OF DATA
160 REM 2) 6 DATA POINTS PER LINE
170 REM 3) NAME OF SHAPE FILE
180 REM PRECEDES DATA
190 REM 4) DUMMY FILE NAME
200 REM (END) MUST FOLLOW
210 REM LAST DATA SET
220 ONERR GOTO 730: REM START PROCESSING
230 READ N$
240 IF N$ = "END" THEN PRINT : PRINT "<DONE>": END
250 N$ = N$ +E$
260 PRINT D$;"OPEN ";N$
270 PRINT D$;"CLOSE ";N$
280 PRINT D$;"DELETE ";N$
290 PRINT D$;"OPEN ";N$
300 PRINT D$;"WRITE ";N$
310 FOR I = 1 TO 48
320 FOR J = 1 TO 6
330 READ K
340 PRINT K
350 NEXT J
360 NEXT I
370 PRINT D$;"CLOSE ";N$
380 PRINT D$
390 PRINT : PRINT "FILE: ";N$;" CREATED": PRINT
400 GOTO 230
410 DATA LINCOLN
420 DATA 0,0,0,0,0,0,35,6,0,0,0,0,30,17,0,0,0,0,29,20,0,0,0,0
430 DATA 27,25,0,0,0,0,26,29,0,0,0,0,27,29,0,0,0,0,26,32,0,0,0,0
440 DATA 28,31,0,0,0,0,27,34,0,0,0,0,26,35,0,0,0,0,25,37,0,0,0,0
450 DATA 25,37,0,0,0,0,24,39,0,0,0,0,24,39,0,0,0,0,23,40,0,0,0,0
460 DATA 23,40,0,0,0,0,22,41,0,0,0,0,22,41,0,0,0,0,23,39,0,0,0,0
470 DATA 22,40,0,0,0,0,21,41,0,0,0,0,20,42,0,0,0,0,19,42,0,0,0,0
480 DATA 18,43,0,0,0,0,18,43,0,0,0,0,17,44,0,0,0,0,18,42,0,0,0,0
490 DATA 21,39,0,0,0,0,21,38,0,0,0,0,21,38,0,0,0,0,21,37,0,0,0,0
500 DATA 21,36,0,0,0,0,22,34,0,0,0,0,22,32,1,1,0,0,22,32,0,0,0,0
510 DATA 21,33,0,0,0,0,21,33,0,0,0,0,21,33,0,0,0,0,22,33,0,0,0,0
520 DATA 24,5,3,24,0,0,33,23,0,0,0,0,34,23,0,0,0,0,35,22,0,0,0,0
530 DATA 35,23,0,0,0,0,35,23,0,0,0,0,29,30,0,0,0,0,29,31,0,0,0,0
540 DATA QUESTION
550 DATA 20,40,0,0,0,0,20,40,0,0,0,0,20,40,0,0,0,0,20,40,0,0,0,0
560 DATA 20,40,0,0,0,0,20,40,0,0,0,0,20,40,0,0,0,0,20,40,0,0,0,0
570 DATA 20,10,20,10,0,0,20,10,20,10,0,0,20,10,20,10,0,0,20,10,20,10,0,0
580 DATA 20,10,20,10,0,0,20,10,20,10,0,0,20,10,20,10,0,0,20,10,20,10,0,0
590 DATA 50,10,0,0,0,0,50,10,0,0,0,0,50,10,0,0,0,0,50,10,0,0,0,0
600 DATA 50,10,0,0,0,0,50,10,0,0,0,0,35,25,0,0,0,0,35,25,0,0,0,0
610 DATA 35,25,0,0,0,0,35,25,0,0,0,0,35,25,0,0,0,0,35,25,0,0,0,0
620 DATA 35,25,0,0,0,0,35,25,0,0,0,0,35,10,0,0,0,0,35,10,0,0,0,0
630 DATA 35,10,0,0,0,0,35,10,0,0,0,0,35,10,0,0,0,0,35,10,0,0,0,0
640 DATA 35,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
650 DATA 35,10,0,0,0,0,35,10,0,0,0,0,35,10,0,0,0,0,35,10,0,0,0,0
660 DATA 35,10,0,0,0,0,35,10,0,0,0,0,35,10,0,0,0,0,35,10,0,0,0,0
670 REM ***********************
680 REM THIS MUST BE THE
690 REM LAST DATA STATEMENT
700 REM IN THIS PROGRAM:
710 DATA "END"
720 REM ***********************
730 E = PEEK(222):EL = PEEK(218) +256 * PEEK(219): POKE 216,0: CALL -3288: PRINT D$"CLOSE"
740 IF E = 3 THEN A$ = "NO DEVICE CONNECTED": GOTO 800
750 IF E = 4 THEN A$ = "DISK IS WRITE-PROTECTED": GOTO 800
760 IF E = 8 THEN A$ = "I/O ERROR--CHECK DRIVE DOOR": GOTO 800
770 IF E = 16 THEN A$ = "SYNTAX ERROR--CHECK DATA STATEMENTS": GOTO 800
780 IF E = 42 THEN A$ = "OUT OF DATA--CHECK DATA STATEMENTS": GOTO 800
790 A$ = "ERROR " + STR$(E) +" IN LINE " + STR$(EL)
800 HOME : VTAB 12: PRINT A$: IF E = 3 OR E = 4 OR E = 8 THEN PRINT "RETURN TO TRY AGAIN, ";
810 PRINT "ESC TO QUIT";: GET Z$: PRINT : ON Z$ = CHR$(27) GOTO 820: IF E = 3 OR E = 4 OR E = 8 THEN HOME : RESTORE : GOTO 220
820 END