'===========================================================================
' Subject: BEER ON THE WALL (REMIX)           Date: 05-09-00 (01:12)       
'  Author: Bernt Figaro                       Code: QB, QBasic, PDS        
'  Origin: bernt.figaro@swipnet.se          Packet: SOUND.ABC
'===========================================================================
DECLARE SUB RemoveBottles (X%, Y%)
DECLARE SUB PresentScreen ()
DECLARE SUB MoveUpBottles ()
REM Subject:  BOTTLES OF BEER ON THE WALL    Date: 08-13-96 (20:58)
REM Origin by Tony Cave
REM This version by Bernt.figaroswipnet
REM Here's something for your computer to do when it gets bored.
song$ = "l8T255o3CCCp8o2GGGp8o3CCCCp8o2Bo3CC#DDDp8"
song$ = song$ + "o2AAAo3Dp8DCp8o2Bp8Ap8Bp8Bp8Bp8p8p8BBBBp8"
song$ = song$ + "p8p8p8o2GGGp8AABp8o3CCCC"
up$ = "p8o2GAB"

CLS
SCREEN 12

DO
PresentScreen

X% = 80
Y% = 390

FOR X = 99 TO 1 STEP -1
LINE (133, 401)-(633, 462), 0, BF

LOCATE 27, 18
PRINT USING "## bottles of beer on the wall, ## bottles of beer."; X; X
LOCATE 28, 18
IF X - 1 <> 0 THEN
PRINT USING "Take one down; pass it around. ## bottles of beer on the wall."; X - 1
ELSE
PRINT "Take one down; pass it around. No bottles of beer on the wall."
END IF

PLAY song$

RemoveBottles X%, Y%
X% = X% - 40
IF X% < 0 THEN X% = 600: Y% = Y% - 50

IF X - 1 <> 0 THEN PLAY up$
A$ = INKEY$: IF A$ <> "" THEN EXIT DO
NEXT
CLS
LOCATE 1, 1
PRINT "One more time"
m$ = INPUT$(1)
IF INSTR("Yy", m$) = 0 THEN EXIT DO
LOOP
END
DATA "00000000000000000000000000000000
DATA "00000000000000000000000000000000
DATA "00000000000011111111110000000000
DATA "00000011111133333333311111110000
DATA "00011113333333333333333333111100
DATA "00113333333333333333333333333110
DATA "00133333330339033333333333333310
DATA "00133333303090933333333333333310
DATA "00133339030930333333333333333310
DATA "00111333333333333333333333331110
DATA "00131111133333333333333111111130
DATA "00133331111111111111111111133330
DATA "00133333333333333333333333333330
DATA "00133333333333333333333333333310
DATA "00133313333333333333333333331130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "001333111EEE11EEEE1EEEE1EEE11130
DATA "001333111E11E1E1111E1111E11E1130
DATA "001333111E11E1E1111E1111E11E1130
DATA "001333111EEE11EEE11EEE11EEE11130
DATA "001333111E11E1E1111E1111EE111130
DATA "001333111E11E1E1111E1111E1E11130
DATA "001333111EEE11EEEE1EEEE1E11E1130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111130
DATA "00133311111111111111111111111330
DATA "00133331111111111111111111133330
DATA "00133333311111111111111333333330
DATA "00111333333333333333333333333330
DATA "00111113333333333333333333311110
DATA "00011111333333333333333331111100
DATA "00000111111333333333331111110000
DATA "00000001111111111111111100000000

REM
DATA "00000000000000000000000000000000
DATA "00000000000000000000000000000000
DATA "000000000000CCCCCCCCCC0000000000
DATA "000000CCCCCCBBBBBBBBBCCCCCCC0000
DATA "000CCCCBBBBBBBBBBBBBBBBBBBCCCC00
DATA "00CCBBBBBBBBBBBBBBBBBBBBBBBBBCC0
DATA "00CBBBBBBB0BB90BBBBBBBBBBBBBBBC0
DATA "00CBBBBBB0B0909BBBBBBBBBBBBBBBC0
DATA "00CBBBB90B09B0BBBBBBBBBBBBBBBBC0
DATA "00CCCBBBBBBBBBBBBBBBBBBBBBBBCCC0
DATA "00CBCCCCCBBBBBBBBBBBBBBCCCCCCCB0
DATA "00CBBBBCCCCCCCCCCCCCCCCCCCCBBBB0
DATA "00CBBBBBBBBBBBBBBBBBBBBBBBBBBBB0
DATA "00CBBBBBBBBBBBBBBBBBBBBBBBBBBBC0
DATA "00CBBBCBBBBBBBBBBBBBBBBBBBBBCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCEEECCEEEECEEEECEEECCCB0
DATA "00CBBBCCCECCECECCCCECCCCECCECCB0
DATA "00CBBBCCCECCECECCCCECCCCECCECCB0
DATA "00CBBBCCCEEECCEEECCEEECCEEECCCB0
DATA "00CBBBCCCECCECECCCCECCCCEECCCCB0
DATA "00CBBBCCCECCECECCCCECCCCECECCCB0
DATA "00CBBBCCCEEECCEEEECEEEECECCECCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCCB0
DATA "00CBBBCCCCCCCCCCCCCCCCCCCCCCCBB0
DATA "00CBBBBCCCCCCCCCCCCCCCCCCCCBBBB0
DATA "00CBBBBBBCCCCCCCCCCCCCCBBBBBBBB0
DATA "00CCCBBBBBBBBBBBBBBBBBBBBBBBBBB0
DATA "00CCCCCBBBBBBBBBBBBBBBBBBBBCCCC0
DATA "000CCCCCBBBBBBBBBBBBBBBBBCCCCC00
DATA "00000CCCCCCBBBBBBBBBBBCCCCCC0000
DATA "0000000CCCCCCCCCCCCCCCCC00000000

SUB MoveUpBottles
RESTORE
FOR I% = 0 TO 47
READ A$
FOR J% = 0 TO LEN(A$) - 1
s% = VAL("&H" + MID$(A$, J% + 1, 1))
PSET (J%, I%), s%
NEXT J%
NEXT I%
REDIM Al%(0 TO 385)
GET (0, 0)-(31, 47), Al%
LINE (0, 0)-(31, 47), 0, BF
X% = 0
Y% = 90

FOR I% = 0 TO 98
PUT (X%, Y%), Al%, PSET

X% = X% + 40
IF X% > 600 THEN X% = 0: Y% = Y% + 50
NEXT

END SUB

SUB PresentScreen
MoveUpBottles
COLOR 10
LOCATE 1, 18: PRINT "ררר    ררר   ררררר רררררר ר     ררררר  רררר "
LOCATE 2, 18: PRINT "ר  ר  ר   ר    ר     ר    ר     ר     ר     "
LOCATE 3, 18: PRINT "ררר   ר   ר    ר     ר    ר     ררררר  ררר  "
LOCATE 4, 18: PRINT "ר  ר  ר   ר    ר     ר    ר     ר         ר "
LOCATE 5, 18: PRINT "ררר    ררר     ר     ר    ררררר ררררר רררר  "
COLOR 14

LINE (130, 398)-(636, 465), 10, BF

END SUB

SUB RemoveBottles (X%, Y%)
LINE (X%, Y%)-(X% + 31, Y% + 47), 0, BF
END SUB
