Execute HQ9+: Difference between revisions

Content added Content deleted
Line 62: Line 62:
50 LET F(ASC("+")) = 4
50 LET F(ASC("+")) = 4
60 LET B$ = " BOTTLES OF BEER"
60 LET B$ = " BOTTLES OF BEER"
70 LET O$ = " ON THE WALL"
70 LET W$ = " ON THE WALL"
80 LET W$ = W$ + CHR$(13)


80 INPUT "HQ9+ : "; I$
90 INPUT "HQ9+ : "; I$


90 LET L = LEN(I$)
100 LET L = LEN(I$)
100 IF L THEN GOSUB 120
110 IF L THEN GOSUB 130
110 END
120 END


120 FOR I = 1 TO L
130 FOR I = 1 TO L
130 LET C$ = MID$(I$, I, 1)
140 LET C$ = MID$(I$, I, 1)
140 LET F = F(ASC(C$))
150 LET F = F(ASC(C$))
150 ON F GOSUB 180, 200, 220, 310
160 ON F GOSUB 190, 210, 230, 300
160 NEXT I
170 NEXT I
170 RETURN
180 RETURN


180 PRINT "HELLO, WORLD!"
190 PRINT "HELLO, WORLD!"
190 RETURN
200 RETURN


200 PRINT I$
210 PRINT I$
210 RETURN
220 RETURN


220 FOR B = 99 TO 1 STEP -1
230 FOR B = 99 TO 1 STEP -1
230 PRINT STR$(B) B$ O$
240 PRINT B; B$ W$; B; B$
240 PRINT STR$(B) B$
250 PRINT "TAKE ONE DOWN, ";
250 PRINT "TAKE ONE DOWN, ";
260 PRINT "PASS IT AROUND"
260 PRINT "PASS IT AROUND"
270 PRINT STR$(B - 1) B$ O$
270 PRINT B - 1; B$ W$
280 PRINT
280 NEXT B
290 NEXT B
290 RETURN
300 RETURN


310 LET A = A + 1
300 LET A = A + 1
320 RETURN</lang>
310 RETURN</lang>


=={{header|x86 Assembly}}==
=={{header|x86 Assembly}}==