RosettaCodeData/Task/Write-language-name-in-3D-ASCII/BASIC/write-language-name-in-3d-ascii-1.basic
2014-01-17 05:34:36 +00:00

48 lines
1.5 KiB
Text

10 S$ = "BASIC" : REM OUR LANGUAGE NAME
20 DIM B(5,5) : REM OUR BIGMAP CHARACTERS
30 FOR L = 1 TO 5 : REM 5 CHARACTERS
40 FOR M = 1 TO 5 : REM 5 ROWS
50 READ B(L,M)
60 NEXT M, L
100 GR : REM BLACK BACKGROUND
110 COLOR = 1 : REM OUR SHADOW WILL BE RED
120 HOME : REM CLS
130 R = 9 : REM SHADOW WILL START ON ROW 5
140 C = 2 : REM SHADOW WILL START AT COLUMN 2
150 GOSUB 2000"DRAW SHADOW
160 COLOR = 13 : REM OUR FOREGROUND WILL BE YELLOW
170 R = 10 : REM FOREGROUND WILL START ON ROW 6
180 C = 3 : REM FOREGROUND WILL START ON COLUMN 3
190 GOSUB 2000"DISPLAY THE LANGUAGE NAME
999 STOP
1000 REM CONVERT TO BINARY BIGMAP
1010 T = N : REM TEMPORARY VARIABLE
1020 G$ = "" : REM THIS WILL CONTAIN OUR 5 CHARACTER BINARY BIGMAP
1040 FOR Z = 5 TO 0 STEP -1
1050 D$ = " " : REM ASSUME NEXT DIGIT IS ZERO (DRAW A SPACE)
1055 S = 2 ^ Z
1060 IF T >= S THEN D$ = "*" : T = T - S : REM IS A BLOCK
1070 G$ = G$ + D$
1080 NEXT Z
1090 RETURN
2000 REM DISPLAY THE BIG LETTERS
2010 FOR L = 1 TO 5 : REM OUR 5 ROWS
2020 X = C : Y = R + L - 1 : REM PRINT AT R+L-1,C;
2030 FOR M = 1 TO 5 : REM BIGMAP FOR EACH CHARACTER
2040 N = B(M, L)
2050 GOSUB 1000
2060 FOR I = 1 TO LEN(G$) : IF MID$(G$, I, 1) <> " " THEN PLOT X,Y :REM 5 CHARACTER BIGMAP
2070 X = X + 1 : NEXT I
2080 X = X + 1 : REM PRINT " ";: REM SPACE BETWEEN EACH LETTER
2090 NEXT M, L
2100 RETURN
9000 DATA 30,17,30,17,30: REM B
9010 DATA 14,17,31,17,17: REM A
9020 DATA 15,16,14,1,30: REM S
9030 DATA 31,4,4,4,31: REM I
9040 DATA 14,17,16,17,14: REM C