mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2026-04-20 00:17:04 +00:00
Deploying to gh-pages from @ sehugg/8bitworkshop@3a960c3e6e 🚀
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
OPTION DIALECT DARTMOUTH
|
||||
001 REM THIS IS A PROGRAM WRITTEN IN BASIC.
|
||||
002 REM YOU CAN WRITE ONE STATEMENT PER LINE.
|
||||
003 REM EACH STATEMENT MUST HAVE A LINE NUMBER.
|
||||
004 REM THE "REM" LINES ARE COMMENTS, WHICH ARE IGNORED
|
||||
005 ' YOU CAN ALSO DO COMMENTS WITH APOSTROPHES
|
||||
006 ' LET'S START WITH A "PRINT"...
|
||||
100 PRINT "HELLO! LET'S PROGRAM IN BASIC."
|
||||
101 PRINT ' <-- THIS PRINTS A BLANK LINE, IT LOOKS NICER
|
||||
105 ' "INPUT" WAITS FOR USER INPUT FROM THE KEYBOARD
|
||||
106 ' THE NUMBER ENTERED WILL GO INTO THE VARIABLE "N"
|
||||
110 INPUT "FIRST, TELL ME YOUR FAVORITE NUMBER";N
|
||||
111 PRINT
|
||||
115 ' YOU CAN DO CALCULATIONS WITH THE + - / * OPERATORS
|
||||
116 ' THE ^ IS AN EXPONENT, SO N^2 IS N-SQUARED
|
||||
119 ' "LET" ASSIGNS THE RESULT TO A VARIABLE
|
||||
120 LET Z = N^2
|
||||
121 ' THE SEMICOLON ";" SEPARATES THINGS TO BE PRINTED
|
||||
122 PRINT "THAT'S A GOOD ONE! I LIKE";Z;"MYSELF."
|
||||
123 PRINT
|
||||
125 ' IF A VARIABLE ENDS IN "$" IT IS A STRING
|
||||
126 ' AND CONTAINS CHARACTERS INSTEAD OF A NUMBER
|
||||
127 ' LET'S READ FROM THE KEYBOARD INTO THE A$ VARIABLE
|
||||
130 INPUT "WOULD YOU MIND TYPING IN YOUR NAME";A$
|
||||
131 PRINT
|
||||
135 ' WE CAN PRINT MULTIPLE THINGS PER LINE
|
||||
136 ' IN THIS BASIC DIALECT, NUMBERS ARE PRINTED
|
||||
137 ' WITH SPACES BEFORE AND AFTER
|
||||
140 PRINT "GOOD TO MEET YOU, ";A$;" WHO LOVES";N;"!"
|
||||
141 PRINT
|
||||
150 INPUT "WOULD YOU LIKE TO SEE ME CALCULATE";B$
|
||||
151 PRINT
|
||||
155 ' "IF" CAN TEST A CONDITION
|
||||
156 ' AND JUMP TO A DIFFERENT LINE IF IT IS TRUE
|
||||
160 IF B$ = "Y" THEN 180
|
||||
161 IF B$ = "YES" THEN 180
|
||||
170 PRINT "TOO BAD, ";A$;"! WE'RE DOING THIS."
|
||||
180 PRINT
|
||||
190 PRINT "WATCH ME COUNT..."
|
||||
195 ' THIS "FOR" STATEMENT STARTS A LOOP WHICH SETS
|
||||
196 ' VARIABLE I TO 1 AND COUNTS TO 50
|
||||
200 FOR I = 1 TO 50
|
||||
210 PRINT I, ' USE A COMMA FOR NEAT PRINT ZONES
|
||||
220 NEXT I ' REPEAT LOOP
|
||||
225 ' USING THE COMMA (OR SEMICOLON) IN THE PRINT STATEMENT
|
||||
226 ' KEEPS THE CURSOR ON THE SAME LINE, SO WE PRINT
|
||||
227 ' A BLANK LINE TO RETURN TO THE LEFT MARGIN
|
||||
230 PRINT
|
||||
240 PRINT "I CAN ALSO GRAPH TRIG FUNCTIONS!"
|
||||
245 ' YOU CAN DEFINE YOUR OWN FUNCTIONS WITH "DEF"
|
||||
246 ' FUNCTIONS MUST START WITH "FN"
|
||||
250 DEF FNY(X) = (SIN(X*0.3)+1)*30+2
|
||||
260 FOR I = 1 TO 25
|
||||
270 PRINT TAB(FNY(I));"*"
|
||||
280 NEXT I
|
||||
300 ' YOU CAN DEFINE AN ARRAY WITH "DIM"
|
||||
301 ' YOU CAN HAVE ARRAYS OF EITHER NUMBERS OR STRINGS
|
||||
310 DIM T$(15),A$(15),W(15)
|
||||
315 ' "READ" LOADS FROM "DATA" STATEMENTS
|
||||
316 ' DATA CAN BE ANYWHERE, OURS IS AT LINE 900
|
||||
320 FOR I = 1 TO 15
|
||||
330 READ T$(I),A$(I),W(I)
|
||||
340 NEXT I
|
||||
350 ' NOW THE ARRAYS ARE FILLED WITH DATA
|
||||
351 ' SO LET'S PICK A VALUE AT RANDOM
|
||||
352 ' THE RND FUNCTION RETURNS A RANDOM NUMBER
|
||||
353 ' FIRST WE USE "RANDOMIZE" TO INITIALIZE THE
|
||||
354 ' RANDOM NUMBER GENERATOR
|
||||
360 RANDOMIZE
|
||||
362 ' "LET" ASSIGNS A VARIABLE FROM AN EXPRESSION
|
||||
370 LET J = INT(15*RND)
|
||||
380 PRINT "MY FAVORITE SONG IS '";T$(J);"'"
|
||||
390 PRINT "BY ";A$(J);", DO YOU KNOW IT?"
|
||||
400 PRINT "IT SPENT";W(J);"WEEKS ATOP THE CHARTS."
|
||||
410 PRINT
|
||||
890 ' HERE'S THE DATA WE READ EARLIER
|
||||
891 ' WE CAN USE NUMBERS, QUOTED OR UNQUOTED STRINGS
|
||||
900 DATA "HELLO, GOODBYE",THE BEATLES,2
|
||||
901 DATA "JUDY IN DISGUISE",JOHN FRED AND HIS PLAYBOY BAND,2
|
||||
902 DATA "GREEN TAMBOURINE",THE LEMON PIPERS,1
|
||||
903 DATA "LOVE IS BLUE",PAUL MAURIAT,5
|
||||
904 DATA "(SITTIN' ON) THE DOCK OF THE BAY",OTIS REDDING,4
|
||||
905 DATA "HONEY",BOBBY GOLDSBORO,5
|
||||
906 DATA "TIGHTEN UP",ARCHIE BELL & THE DRELLS,3
|
||||
907 DATA "MRS. ROBINSON",SIMON & GARFUNKEL,3
|
||||
908 DATA "THIS GUY'S IN LOVE WITH YOU",HERB ALPERT,4
|
||||
909 DATA "GRAZING IN THE GRASS",HUGH MASEKELA,2
|
||||
910 DATA "HELLO, I LOVE YOU",THE DOORS,2
|
||||
911 DATA "PEOPLE GOT TO BE FREE",THE RASCALS,5
|
||||
912 DATA "HARPER VALLEY PTA",JEANNIE C. RILEY,1
|
||||
913 DATA "HEY JUDE",THE BEATLES,9
|
||||
914 DATA "LOVE CHILD",DIANA ROSS & THE SUPREMES,2
|
||||
915 DATA "I HEARD IT THROUGH THE GRAPEVINE",MARVIN GAYE,3
|
||||
979 ' WE'RE DONE, SAY GOODBYE TO THE USER
|
||||
980 PRINT "I APOLOGIZE, BUT I AM FATIGUED FROM ALL OF THIS"
|
||||
981 PRINT "CALCULATING. I SHALL TAKE MY LEAVE OF YOU NOW."
|
||||
990 PRINT "NICE MEETING YOU, ";A$;"."
|
||||
998 ' PROGRAMS MUST END WITH "END" IN THIS DIALECT
|
||||
999 END
|
||||
Reference in New Issue
Block a user