Compare commits

...

4 Commits

Author SHA1 Message Date
Joshua Bell 252b39dc08 Add Bite sample 2022-10-23 15:25:37 -07:00
Joshua Bell 1d8e8822db Add Artillery sample 2022-10-23 15:23:41 -07:00
Joshua Bell 734d953a3b Add Building sample 2022-10-23 15:12:48 -07:00
Joshua Bell ea4444ae49 Add Codabar Generator sample 2022-10-23 15:04:43 -07:00
5 changed files with 389 additions and 0 deletions

View File

@ -84,6 +84,8 @@ By <a target=_blank href="mailto:inexorabletash@gmail.com">Joshua Bell</a>
<option value="sample.blackhole">&nbsp; Black Hole Maze (S.M.Compton c/o Melody Ayres-Griffiths)</option>
<option value="sample.chase">&nbsp; Chase (Dominik Heidler)</option>
<option value="sample.spaceattack">&nbsp; Space Attack! (Alan Ratliff)</option>
<option value="sample.building">&nbsp; Building (Melvin Rosario)</option>
<option value="sample.artillery">&nbsp; Artillery (Michael "Moose" O'Malley)</option>
<option disabled>____________________________________________</option>
<option disabled>Graphics</option>
@ -118,6 +120,7 @@ By <a target=_blank href="mailto:inexorabletash@gmail.com">Joshua Bell</a>
<option value="sample.dbvectortext">&nbsp; Double-Buffered Vector Font (Golden Child)</option>
<option value="sample.stellar7">&nbsp; STELLAR 7 Rotate 3d Objects (Golden Child)</option>
<option value="sample.functiongraphing">&nbsp; Function Graphing (Golden Child)</option>
<option value="sample.codabar">&nbsp; Codabar Generator (Golden Child)</option>
<option value="sample.coloredserpinski">&nbsp; Colored Serpinski Triangles (Gregory Lewis)</option>
<option value="sample.radar">&nbsp; Radar (Josiah Keller)</option>
@ -128,6 +131,7 @@ By <a target=_blank href="mailto:inexorabletash@gmail.com">Joshua Bell</a>
<option value="sample.3drectangle">&nbsp; 3D Rectangle (Tomo Wa)</option>
<option value="sample.enterprise">&nbsp; Original Series Enterprise (Gil Keidar)</option>
<option value="sample.colorrings">&nbsp; Colored Rings (Miika Oja)</option>
<option value="sample.bite">&nbsp; Apple Bite (Michael "Moose" O'Malley)</option>
<option disabled>____________________________________________</option>
<option disabled>Other</option>

View File

@ -0,0 +1,179 @@
5 REM ARTILLERY #01
10 TEXT : HOME : SPEED= 255: NORMAL
15 HOME : VTAB (10): INPUT "INSTRUCTIONS?";A9$
16 IF LEFT$ (A9$,1) = "N" THEN 19
17 HOME : GOTO 20
19 HOME : TEXT : GOTO 150
20 PRINT TAB( 15): PRINT : PRINT : PRINT "ARTILLERY": PRINT : PRINT : PRINT : PRINT
21 PRINT " ARTILLERY IS A SIMULATION OF AN"
30 PRINT "ARTILLERY DUEL BETWEEN TWO SETS OF GUNS"
40 PRINT "ON EITHER SIDE OF A MOUNTAIN. BY USING"
50 PRINT "THE ANGLE OF THE GUN AND THE MILLEMETER"
60 PRINT "SIZE,YOU WILL BE ABLE TO DESTROY YOUR"
70 PRINT "OPPONANT. EACH OF YOU IN TURN WILL TAKE"
80 PRINT "A SHOT AT YOUR OPPONANT WHILE TAKING"
90 PRINT "INTO ACCOUNT THE WIND SPEED. YOU WILL"
100 PRINT "ENTER THE DEGREE MEASURE(BETWEEN"
110 PRINT "20 AND 100 DEGREES).THIS WILL BE
120 PRINT "FOLLOWED BY THE MILLIMETER SIZE(45 TO"
130 PRINT "150 MM)"
131 PRINT
132 PRINT " -HIT RETURN TO CONTINUE-"
140 GET LOST$
150 HGR
160 HCOLOR= 6
170 G(1) = RND (1) * 117 + 8
180 G(2) = RND (1) * 117 + 125
190 IF G(2) - G(1) < 140 THEN 170
200 W1 = INT ( RND (1) * 41)
210 W2 = INT ( RND (1) + .5) - 1
220 IF W2 < 0 THEN 240
230 W2 = 1
240 HPLOT G(2) + 8,149 TO G(2),145
250 X = 1
260 HPLOT G(X) - 8,149 TO G(X),145
270 HPLOT G(2) + 8,150 TO G(2),146
280 HPLOT G(X) - 8,150 TO G(X),146
290 HPLOT G(2) + 4,145 TO G(2) - 3,137
300 HPLOT G(X) - 4,145 TO G(X) + 3,137
310 HPLOT G(2) + 5,144 TO G(2) - 7,136
320 HPLOT G(X) - 5,144 TO G(X) + 7,136
330 HPLOT G(2) + 2,135 TO G(2) - 2,150
340 HPLOT G(X) - 2,135 TO G(X) + 2,150
350 P1 = W2
360 GOSUB 1440
370 GOSUB 1630
380 FOR X8 = 1 TO 20
390 P2 = 0
400 P1 = P1 * ( - 1)
410 GOSUB 1290
420 PRINT : PRINT : PRINT : GOSUB 1580
430 PRINT "ENTER DEGREE (20-100) & MM SIZE (45-150) TO DESTROY THE OPPOSING CANNON"
440 INPUT A1,V1
441 IF A1 > 100 OR A1 < 20 THEN 445
442 IF V1 > 150 OR V1 < 45 THEN 445
443 GOTO 450
445 PRINT "": INVERSE : PRINT "ILLEGAL QUANTITY-TRY AGAIN": NORMAL : GOTO 430
450 A1 = A1 * 3.1415926 / 180
460 X1 = COS (A1) * V1
470 Y1 = SIN (A1) * V1
480 T1 = Y1 / 16
490 T2 = T1 / 24
500 W3 = W1 * T2 * P1
510 W5 = 0
520 FOR Y8 = 0 TO T1 STEP T2
530 W5 = W5 + W3
540 X = X1 * Y8
550 X = X + (W5 * W2)
560 X = INT (X + .5)
570 Y = Y1 * Y8 - 16 * Y8 ^ 2
580 Y = INT (Y + .5)
590 IF Y < 9 THEN 750
600 IF P1 < 0 THEN 680
610 G4 = G(1) + X
620 IF G4 < 1 OR G4 > 254 THEN 670
630 IF Y > 149 THEN 670
640 HCOLOR= 5
650 HPLOT X2,Y2 TO G4,150 - Y
660 X2 = G4:Y2 = 150 - Y
670 GOTO 750
680 G4 = G(2) - X
690 IF G4 < 0 OR G4 > 254 THEN 750
700 IF Y > 149 THEN 750
710 HCOLOR= 3
720 HPLOT X2,Y2 TO G4,150 - Y
730 X2 = G4:Y2 = 150 - Y
740 IF Y8 = 0 THEN 770
750 GOSUB 1060
760 IF P2 = 5 THEN 800
770 NEXT Y8
780 Y6 = 150
790 GOSUB 1160
800 IF G4 > G(1) + 5 OR G4 < G(1) - 5 THEN 850
810 PRINT : PRINT : PRINT
820 PRINT "GOOD WORK! RIGHT GUN SURVIVES."
830 T3 = T3 + 1
840 GOTO 930
850 IF G4 > G(2) + 5 OR G4 < G(2) - 5 THEN 900
860 PRINT : PRINT : PRINT
870 PRINT "NICE SHOOTING! LEFT GUN SURVIVES."
880 T4 = T4 + 1
890 GOTO 930
900 P2 = 0
910 G4 = 0
920 NEXT X8
930 PRINT : PRINT "DO YOU WANT TO PLAY AGAIN";
940 INPUT A$
950 IF A$ = "Y" THEN 150
951 IF A$ = "YES" THEN 150
960 HGR
970 TEXT
980 HOME
990 PRINT "SCORE"
1000 PRINT "-----"
1010 PRINT "LEFT ";T4
1020 PRINT "RIGHT ";T3
1045 D9$ = "CHR$(13)": PRINT D$
1050 END
1060 Y6 = 150
1070 G8 = Y7 + 2 * G3
1080 Y7 = G(1) + G2
1090 IF Y > G3 THEN 1280
1100 IF G4 < Y7 + Y THEN 1280
1110 IF G4 > G8 - Y THEN 1280
1120 P2 = 5
1130 P2 = 5
1140 Y6 = 150 - Y
1150 Y6 = 150 - Y
1160 FOR Z = 1 TO 5
1170 IF G4 < 0 OR G4 > 253 THEN 1240
1180 HPLOT G4,Y6 - Z
1190 HPLOT G4 + Z,Y6 - Z
1200 HPLOT G4 - Z,Y6 - Z
1210 HPLOT G4 + Z,Y6 - 1
1220 HPLOT G4 - Z,Y6 - 1
1230 X5 = PEEK ( - 16336)
1240 NEXT Z
1250 Y = 0
1260 X = 0
1270 GOSUB 1630
1280 RETURN
1290 IF P1 < 0 THEN 1360
1300 HPLOT 1,152 TO 4,152
1310 HPLOT 1,153 TO 4,153
1320 HPLOT 1,154 TO 4,154
1330 HPLOT 1,155 TO 4,155
1340 IF P1 < 0 THEN 1420
1350 HCOLOR= 0
1360 HPLOT 250,152 TO 254,152
1370 HPLOT 250,153 TO 254,153
1380 HPLOT 250,154 TO 254,154
1390 HPLOT 250,155 TO 254,155
1400 HCOLOR= 0
1410 IF P1 < 0 THEN 1300
1420 HCOLOR= 2
1430 RETURN
1440 G1 = (G(2) - G(1)) / 2
1450 G2 = RND (1) * (G1 - 1) + 1
1460 G3 = RND (1) * G1 / 2 + 10
1470 IF G3 < 30 THEN 1460
1480 IF G(2) - (G(1) + G2) > 2 * G3 THEN 1510
1490 G3 = G3 - 1
1500 GOTO 1480
1510 FOR M1 = 1 TO 252
1520 HCOLOR= 1
1530 HPLOT M1,150
1540 NEXT M1
1550 HPLOT G(1) + G2,150 TO G(1) + G2 + G3,150 - G3
1560 HPLOT G(1) + G2 + 2 * G3,150 TO G(1) + G2 + G3,150 - G3
1570 RETURN
1580 IF W2 < 0 THEN 1610
1590 PRINT "THE WIND IS TO THE RIGHT AT ";W1
1600 GOTO 1620
1610 PRINT "THE WIND IS TO THE LEFT AT ";W1
1620 RETURN
1630 IF P1 < 0 THEN 1660
1640 X2 = G(2):Y2 = 150
1650 GOTO 1670
1660 X2 = G(1):Y2 = 150
1670 RETURN

61
samples/sample.bite.txt Normal file
View File

@ -0,0 +1,61 @@
10 REM -----------------------
11 REM Source: HELLO on disk: Dark the Disk Repair Kit (v2.2), Beyond Wolfenstein Editor.dsk
12 REM Extracted and slightly modified by Moose
13 REM -----------------------
60 TEXT : HOME : GR :D$ = CHR$ (13) + CHR$ (4)
70 COLOR= 12: VLIN 1,4 AT 24: VLIN 2,7 AT 23: VLIN 3,8 AT 22: VLIN 4,9 AT 21: VLIN 6,10 AT 20
80 HLIN 13,16 AT 10: HLIN 24,27 AT 10: HLIN 12,18 AT 11: HLIN 22,28 AT 11: HLIN 11,29 AT 12: HLIN 11,29 AT 13
90 COLOR= 13: FOR I = 14 TO 17: HLIN 10,30 AT I: NEXT I
100 FOR I = 18 TO 25
110 IF I = 19 THEN COLOR= 9
120 IF I = 24 THEN COLOR= 1
130 HLIN 9,31 AT I: NEXT I
140 FOR I = 26 TO 30
150 IF I = 29 THEN COLOR= 3
160 HLIN 10,30 AT I: NEXT I
170 FOR I = 31 TO 33: HLIN 11,29 AT I: NEXT I
180 COLOR= 2: FOR I = 34 TO 36: HLIN 12,28 AT I: NEXT I
190 HLIN 13,27 AT 37: HLIN 14,19 AT 38: HLIN 21,26 AT 38: HLIN 15,18 AT 39: HLIN 22,25 AT 39
200 VTAB 24: PRINT " PRESS ANY KEY TO TAKE A 'BITE' ";: GET TZ$
205 HOME
210 FOR C = 1 TO 20:K = PEEK ( - 16336): NEXT C
220 COLOR= 0: HLIN 28,30 AT 14: HLIN 28,30 AT 15: HLIN 27,30 AT 16: HLIN 27,30 AT 17: HLIN 26,31 AT 18: HLIN 26,31 AT 19: HLIN 26,31 AT 20: HLIN 25,31 AT 21: HLIN 25,31 AT 22: HLIN 25,31 AT 23: HLIN 25,31 AT 24: HLIN 26,31 AT 25
230 HLIN 26,30 AT 26: HLIN 26,30 AT 27: HLIN 27,30 AT 28: HLIN 27,30 AT 29: HLIN 29,30 AT 30
240 FOR PAUSE = 1 TO 1000: NEXT PAUSE
250 REM PRINT D$;"RUN MENU"
260 TEXT : HOME
270 PRINT: PRINT "HAVE A NICE DAY ! MOOSE :)
910 REM -----------------------
911 REM Source: HELLO on disk: Dark the Disk Repair Kit (v2.2), Beyond Wolfenstein Editor.dsk
912 REM Extracted and slightly modified by Moose
913 REM -----------------------

View File

@ -0,0 +1,61 @@
0 clear : text : normal : home
1 rem BUILDING GAME BY MELVIN ROSARIO
2 rem Use Arrow keys to look around, Use wasd to move
3 rem Press E to place a block and Q to remove one
4 rem Use N and M to scroll through block type
5 inverse : htab 3 : vtab 3 : print " BUILDING GAME " : normal : htab 3 : vtab 5 : print "press any key to start" : get unused$ : gr
6 etp = 4 : ctp = 0
7 if unused$="0" or unused$="U" then blk=5000
8 if unused$><"U" then elevation=20
9 if unused$="U" then elevation=10
10 px=20 : py=1 : pr=0 : bkg=6 : for i = 0 to 39 : color=4 : vlin 1,38 at i : next i
11 for i = 0 to 39 : color=bkg : vlin 1,elevation at i : color=13 : vlin elevation+3,38 at i
12 rand=val(mid$(str$(rnd(-1*(peek(78)+256*peek(79)))*10),1,1))
13 if unused$><"U" and rand = 8 and elevation < 34 then elevation=elevation+2 : goto 20
14 if unused$><"U" and rand > 2 and elevation < 34 then elevation=elevation+1 : goto 20
15 if unused$><"U" and rand = 1 then elevation=elevation-2 : goto 20
16 if unused$><"U" and rand < 4 then elevation=elevation-1
20 next i
30 home : rand=val(mid$(str$(rnd(-1*(peek(78)+256*peek(79)))*10),1,1))
40 gosub 350
50 if pr=0 then print "facing left |"
51 if pr=1 then print "facing right|"
52 if pr=2 then print "facing up |"
53 if pr=3 then print "facing down |"
100 if ctp=0 then ptb$ = "grass" : pldtp = 4
101 if ctp=1 then ptb$ = "dirt" : pldtp = 13
102 if ctp=2 then ptb$ = "brick" : pldtp = 11
103 if ctp=3 then ptb$ = "platform" : pldtp = 2
104 if ctp=4 then ptb$ = "glass" : pldtp = 15
300 htab 15 : vtab 21 : print "blocks:" ; blks : print "block type: [" ; ctp ; "] " ; ptb$ : get btn$ : goto 30
350 color=bkg: plot px, py
351 if btn$="D" and px=39 and scrn(0,py) = bkg then px=0 : goto 500
352 if btn$="A" and px=0 and scrn(39,py) = bkg then px=39 : goto 500
401 if btn$=chr$(21) then pr=1
402 if btn$=chr$(8) then pr=0
403 if btn$=chr$(10) then pr=3
404 if btn$=chr$(11) then pr=2
405 if btn$="E" and pr=0 and px><0 and scrn(px-1,py) = bkg and blks>0 then color=pldtp: plot px-1,py : blks=blks-1
406 if btn$="E" and pr=1 and px><39 and scrn(px+1,py) = bkg and blks>0 then color=pldtp: plot px+1,py : blks=blks-1
407 if btn$="E" and pr=2 and scrn(px,py-1) = bkg and blks>0 then color=pldtp: plot px,py-1 : blks=blks-1
408 if btn$="E" and pr=3 and scrn(px,py+1) = bkg and blks>0 then color=pldtp: plot px,py+1 : blks=blks-1
409 if btn$="Q" and pr=1 and px><39 and scrn(px+1,py) >< bkg and scrn(px+1,py) >< 0 then color=bkg: plot px+1,py : blks=blks+1
410 if btn$="Q" and pr=2 and scrn(px,py-1) >< bkg and scrn(px,py-1) >< 0 then color=bkg: plot px,py-1 : blks=blks+1
411 if btn$="Q" and pr=3 and scrn(px,py+1) >< bkg and scrn(px,py+1) >< 0 then color=bkg: plot px,py+1 : blks=blks+1
412 if btn$="Q" and pr=0 and px><0 and scrn(px-1,py) >< bkg and scrn(px-1,py) >< 0 then color=bkg: plot px-1,py : blks=blks+1
413 if btn$="D" and px><39 and scrn(px+1,py) = bkg then px=px+1 : goto 415
414 if btn$="D" and px><39 and scrn(px+1,py) >< bkg and scrn(px+1,py-1) = bkg then px=px+1 : py=py-1
415 if btn$="S" and scrn(px,py+1) = 2 and scrn(px,py+2) = bkg then py=py+2
418 if btn$="A" and px><0 and scrn(px-1,py) = bkg then px=px-1 : goto 420
419 if btn$="A" and px><0 and scrn(px-1,py) >< bkg and scrn(px-1,py-1) = bkg then px=px-1 : py=py-1
420 if btn$="M" then ctp = ctp + 1
421 if btn$="N" then ctp = ctp - 1
489 if ctp > etp then ctp = 0
490 if ctp < 0 then ctp = etp
497 if btn$="W" and py><0 and scrn(px,py-1) = 2 and scrn(px,py-2) = bkg then py=py-2 : goto 500
498 if scrn(px,py+1) = bkg then py=py+1 : goto 500
499 if btn$="W" and scrn(px,py-1) = bkg then py=py-1
500 color=0: plot px, py : return

View File

@ -0,0 +1,84 @@
1 REM CODABAR BARCODE GENERATOR BY GOLDEN CHILD
2 REM ALL INFO NEEDED FROM WIKIPEDIA ARTICLE ON CODABAR
3 TEXT : HOME
4 PRINT "CODABAR GENERATOR" : ?
5 PRINT "LEGAL CHARACTERS ARE: "
6 PRINT " 0123456789 ./+-$: ABCD" : ?
7 PRINT " BEGIN AND END WITH ABCD STOP CODES" : ?
8 PRINT " ADD # AS FIRST CHAR FOR CHECK DIGIT" : ?
9 PRINT "EXAMPLES: A1234A A5678B" : ? " #A1234A (WITH CHECK DIGIT)":?
10 DIM HB$(4),HS$(6)
20 DIM CB(128),CS(128),CK(128)
100 FOR I = 1 TO 4 : READ HB$(I) : NEXT : REM HORIZ BAR PATTERN
105 FOR I = 1 TO 4 : READ IB$(I) : NEXT : REM INVERT BAR PATTERN
110 FOR I = 1 TO 6 : READ HS$(I) : NEXT : REM HORIZ SPACE PATTERN
120 READ CH$ : IF CH$ = "END" THEN GOTO 150
130 C = ASC(CH$) : READ CB(C),CS(C),CK(C)
140 GOTO 120
150 REM DONE READING
160 FOR I = 1 TO 128
165 REM IF CB(I)<>0 OR CS(I) <> 0 THEN PRINT CHR$(I),CB(I),CS(I)
170 NEXT
176 X0 = 20 : X=X0 : Y0 = 5 : Y=Y0 : Y1=20 : Y2 = 20
180 W0 = 1 : REM DEFAULT WIDTH
200 PRINT " (# FOR CHECK DIGIT, USE | FOR :)":INPUT "BARCODE:";A$ : CS = 0
205 IF MID$(A$,1,1)<>"#" THEN GOTO 210 : REM SKIP CHECKSUM
206 A$=MID$(A$,2,LEN(A$)-1) : FOR I = 1 TO LEN(A$) : C = ASC(MID$(A$,I,1)) : ? "CHAR="C" CHECKSUM="CS : CS=CS+CK(C) : NEXT
207 IF CS > 16 THEN CS = CS - 16 : GOTO 207
208 A$ = MID$(A$,1,LEN(A$)-1) + MID$("0123456789-$:/.+",(16-CS)+1,1) + MID$(A$,LEN(A$),1) : REM ADD CHECKSUM DIGIT JUST BEFORE END
210 F$ = MID$(A$,1,1) : IF F$ <> "A" AND F$ <> "B" AND F$ <> "C" AND F$ <> "D" THEN PRINT "NEED START CODES (ABCD)" : GOTO 200
211 F$ = MID$(A$,LEN(A$),1) : IF F$ <> "A" AND F$ <> "B" AND F$ <> "C" AND F$ <> "D" THEN PRINT "NEED END CODES (ABCD)" : GOTO 200
215 IF SF=0 THEN HGR: HCOLOR=3 : FOR I = 0 TO 191 : HPLOT 0,I TO 279,I : NEXT : SF=1 : VTAB 23
216 FOR I = 1 TO LEN(A$) : C = ASC(MID$(A$,I,1)) : ? "CHAR="C
220 B = CB(C) : S = CS(C) : REM B=BAR TYPE, SPACE= SPACE TYPE
230 FOR BI = 1 TO 4
235 W = W0 : BA$ = HB$(B) : IF HS$(S)="0000" THEN BA$=IB$(B) : REM IB IS INVERT BARCODE PATTERN
240 IF MID$(BA$,BI,1)="1" THEN W = W0 * 3
250 X1 = X : X2 = X1 + W : FOR X = X1 TO X2-1 : HCOLOR=0: HPLOT X,Y TO X,Y+Y1 : NEXT : X = X2
260 W = W0 : IF MID$(HS$(S),BI,1)="1" THEN W = W0 * 3
270 X = X + W
280 NEXT
290 NEXT
300 ? "BARCODE="A$
350 X=X0 : Y=Y+Y1+Y2
360 IF Y > 160-Y2 THEN SF=0 : Y=Y0 : REM CHECK TO SEE IF WE ARE AT BOTTOM
400 GOTO 200
2000 REM BAR PATTERN DATA
2001 DATA 0001,0010,0100,1000
2002 REM INVERT BAR PATTERN DATA FOR WHEN SPACES = 0000
2003 DATA 1110,1101,1011,0111
2009 REM SPACE PATTERN DATA
2010 DATA 0010,0100,1000,0110,1100,0000
2020 DATA 0,1,1,0 : REM CHAR 0 IS BAR 1 SPACE 1 CHECKSUM 0
2021 DATA 1,2,1,1 : REM CHAR 1 IS BAR 2 SPACE 1 CHECKSUM 1
2022 DATA 4,3,1,4
2023 DATA 5,4,1,5
2024 DATA 2,1,2,2
2025 DATA -,2,2,10
2026 DATA "$",3,2,11
2027 DATA 9,4,2,9
2028 DATA 6,1,3,6
2029 DATA 7,2,3,7
2030 DATA 8,3,3,8
2031 DATA 3,4,3,3
2032 DATA C,1,4,18
2033 DATA D,2,4,19
2034 DATA A,3,4,16
2035 DATA F,4,4,17 : REM EFGH IS ABCD REVERSE
2036 DATA B,1,5,17
2037 DATA E,2,5,16
2038 DATA H,3,5,19
2039 DATA G,4,5,18
2040 DATA ".",1,6,14
2041 DATA /,2,6,13
2042 DATA ":",3,6,12
2043 DATA +,4,6,15
2044 DATA "|",3,6,12 : REM APPLESOFT DOESN'T LET YOU TYPE COLONS
2050 DATA END