; VMS DCL version of 99 Bottles of Beer $ I=100 $ FIRSTLOOP: $ C=0 $ L=1 $ PAUSE: $ C=C+1 $ IF (I.EQ. 1) THEN GOTO LAST_BOTTLE $ IF (C .EQ. 1500) THEN GOTO FIRSTCLEAN $ GOTO PAUSE $ FIRSTCLEAN: $ GOTO WIPESCN $ FIRSTLINE: $ WRITE SYS$OUTPUT I," bottles of beer on the wall," $ C=0 $ L=2 $ FIRSTPAUSE: $ C=C+1 $ IF (C .EQ. 2000) THEN GOTO SECONDCLEAN $ GOTO FIRSTPAUSE $ SECONDCLEAN: $ GOTO WIPESCN $ SECONDLINE: $ WRITE SYS$OUTPUT I," bottles of beer." $ C=0 $ L=3 $ SECONDPAUSE: $ C=C+1 $ IF (C .EQ. 1500) THEN GOTO THIRDCLEAN $ GOTO SECONDPAUSE $ THIRDCLEAN: $ GOTO WIPESCN $ THIRDLINE: $ WRITE SYS$OUTPUT "If one of them should happen to fall...." $ C=0 $ L=4 $ THIRDPAUSE: $ C=C+1 $ IF (C .EQ. 1500) THEN GOTO FOURTHCLEAN $ GOTO THIRDPAUSE $ FOURTHCLEAN: $ GOTO WIPESCN $ FOURTHLINE: $ WRITE SYS$OUTPUT I-1," bottles of beer on the wall." $ I=I-1 $ GOTO FIRSTLOOP $ LAST_BOTTLE: $ C=0 $ L=5 $ FOURTHPAUSE: $ C=C+1 $ IF (C .EQ. 1500) THEN GOTO FITHCLEAN $ GOTO FOURTHPAUSE $ FITHCLEAN: $ GOTO WIPESCN $ FITHLINE: $ WRITE SYS$OUTPUT "1 bottle of beer on the wall," $ C=0 $ L=6 $ FITHPAUSE: $ C=C+1 $ IF (C .EQ. 1200) THEN GOTO SIXTHCLEAN $ GOTO FITHPAUSE $ SIXTHCLEAN: $ GOTO WIPESCN $ SIXTHLINE: $ WRITE SYS$OUTPUT "1 bottle of beer..." $ C=0 $ L=7 $ SIXTHPAUSE: $ C=C+1 $ IF (C .EQ. 2200) THEN GOTO SEVENTHCLEAN $ GOTO SIXTHPAUSE $ SEVENTHCLEAN: $ GOTO WIPESCN $ SEVENTHLINE: $ WRITE SYS$OUTPUT "If it should happen to fall...." $ C=0 $ L=8 $ LASTPAUSE: $ C=C+1 $ IF (C .EQ. 2000) THEN GOTO LASTCLEAN $ GOTO LASTPAUSE $ LASTCLEAN: $ GOTO WIPESCN $ LASTLINE: $ WRITE SYS$OUTPUT "No more bottles of beer on the wall." $ GOTO QUIT $ WIPESCN: $ C=0 $ WIPE: $ C=C+1 $ WRITE SYS$OUTPUT " " $ IF (C .EQ. 25) THEN GOTO SONGLINE $ GOTO WIPE $ SONGLINE: $ IF (L .EQ. 1) THEN GOTO FIRSTLINE $ IF (L .EQ. 2) THEN GOTO SECONDLINE $ IF (L .EQ. 3) THEN GOTO THIRDLINE $ IF (L .EQ. 4) THEN GOTO FOURTHLINE $ IF (L .EQ. 5) THEN GOTO FITHLINE $ IF (L .EQ. 6) THEN GOTO SIXTHLINE $ IF (L .EQ. 7) THEN GOTO SEVENTHLINE $ IF (L .EQ. 8) THEN GOTO LASTLINE $ QUIT: