 1  REM Version Dated 31 July 2011 by Michael Kent
 2 MEM = 16384:SLOT = 128
 3 GS =  PEEK (49206)
 4  POKE 49206,0
 5  DIM B$(255)
 6 D$ =  CHR$ (4)
 7  PRINT D$;"PR#3"
 8  PRINT "Slot #";: GET S: PRINT S
 9  IF S < 0 OR S > 7 THEN 8
 10 SLOT = SLOT + (16 * S)
 14 P = 1
 15  PRINT D$;"BLOAD A1MP3"
 16  GOSUB 8400
 18  GOSUB 8000
 19  GOTO 5000
 20  VTAB (17)
 25  HTAB (9)
 27 P =  - 1: VTAB (21): HTAB (14): PRINT "Paused...            ";
 30 K =  PEEK (49152): IF K > 127 THEN 35
 33  GOTO 30
 35 A$ =  CHR$ (K - 128)
 36  HTAB (9): VTAB (17): PRINT A$;
 37  POKE 49168,0
 38 P = 1: VTAB (21): HTAB (14): PRINT "                     ";
 40  IF A$ = "F" OR A$ = "f" THEN 5340
 41  IF A$ = "P" OR A$ = "p" THEN 2000
 42  IF A$ = "R" OR A$ = "r" THEN 5030
 43  IF A$ = "A" OR A$ = "a" THEN 4000
 44  IF A$ = "X" OR A$ = "x" THEN 9900
 50  IF A$ = "1" THEN X = 1: GOTO 5010
 51  IF A$ = "2" THEN X = 2: GOTO 5010
 52  IF A$ = "3" THEN X = 3: GOTO 5010
 53  IF A$ = "4" THEN X = 4: GOTO 5010
 54  IF A$ = "5" THEN X = 5: GOTO 5010
 55  IF A$ = "6" THEN X = 6: GOTO 5010
 56  IF A$ = "7" THEN X = 7: GOTO 5010
 57  IF A$ = "8" THEN X = 8: GOTO 5010
 58  IF A$ = "9" THEN X = 9: GOTO 5010
 59  IF A$ = "0" THEN X = 10: GOTO 5010
 60  IF A$ = "!" THEN X = 11: GOTO 5010
 61  IF A$ = "@" THEN X = 12: GOTO 5010
 62  IF A$ = "#" THEN X = 13: GOTO 5010
 63  IF A$ = "$" THEN X = 14: GOTO 5010
 64  IF A$ = "%" THEN X = 15: GOTO 5010
 65  IF A$ = "^" THEN X = 16: GOTO 5010
 66  IF A$ = "&" THEN X = 17: GOTO 5010
 67  IF A$ = "*" THEN X = 18: GOTO 5010
 68  IF A$ = "(" THEN X = 19: GOTO 5010
 69  IF A$ = ")" THEN X = 20: GOTO 5010
 70  IF A$ = "S" OR A$ = "s" THEN X =  INT ( RND (1) * 20) + 1: GOTO 5010
 85  VTAB (17): HTAB (9)
 90  GOTO 30
 2000  REM  PAUSE
 2001  REM  BLOAD MP3PAUSE
 2004  CALL 8309: REM  MP3PAUSE
 2010  IF P = 1 THEN 5300
 2020  GOTO 20
 3000  FOR I = 1 TO 1000: NEXT I
 3010  VTAB (17): HTAB (9)
 3020  GOTO 30
 4000  REM  PLAY ALL AND EXIT
 4001  REM  BLOAD MP3STOP
 4006  CALL 8324: REM  MP3STOP
 4008  REM  BLOAD MP3PLAY
 4015  CALL 8369: REM  MP3PLAY
 4050  VTAB (23): HTAB (1)
 4055  PRINT "Playing all songs, bye...";
 4056  POKE 49206,GS
 4060  END 
 5000  REM  PLAY ALL SONGS
 5005 X = 1: REM  CURRENT SONG #
 5010  VTAB (19): HTAB (8)
 5020  PRINT "Playing: ";B$(X);
 5021  FOR A = 1 TO 13 -  LEN (B$(X))
 5022  PRINT " ";: NEXT A
 5030  REM  BLOAD APLAY
 5040  FOR A = 1 TO  LEN (B$(X))
 5050 G = 8429
 5060  POKE G + A - 1, ASC ( MID$ (B$(X),A,1))
 5070  NEXT A
 5080  POKE G +  LEN (B$(X)),13
 5090  POKE G +  LEN (B$(X)) + 1,0
 5100  CALL 8385
 5102  FOR I = 1 TO 10000: NEXT I: REM  Was: 5000
 5105 L = 0
 5110  REM  BLOAD ACHECK2
 5120  INVERSE : FOR I = 1 TO 22: VTAB (I)
 5130  HTAB (1): PRINT " ";: HTAB (40): PRINT " "
 5140  NEXT I
 5150  NORMAL 
 5300  VTAB (17): HTAB (9)
 5305  PRINT " ";: HTAB (9)
 5310  CALL 8275: REM  CALL ACHECK2
 5311 K =  PEEK (49152): IF K > 127 THEN 5600
 5320 A =  PEEK (8448)
 5325  IF A <  > 0 THEN 5370
 5330 L = L + 1: IF L < 50 THEN 5310
 5340  REM  SONG FINISHED, NEXT SONG
 5350 X = X + 1: IF X > S THEN X = 1
 5360  GOTO 5010
 5370  REM  SONG STILL PLAYING
 5380  REM  LOOP UNTIL STOPPED
 5390  REM  ADD KEYSTROKE CHECK HERE
 5400  REM 
 5410 L = 0
 5490  GOTO 5310
 5600  REM  KEYSTROKE
 5610 A$ =  CHR$ (K - 128): PRINT A$;
 5615  HTAB (9)
 5620  POKE 49168,0
 5630  IF A$ = "F" OR A$ = "f" THEN 5340
 5640  IF A$ = "P" OR A$ = "p" THEN P =  - 1: GOTO 2000
 5650  IF A$ = "A" OR A$ = "a" THEN 4000
 5660  IF A$ = "X" OR A$ = "x" THEN 9900
 5670  IF A$ = "R" OR A$ = "r" THEN 5010
 5671  IF A$ = "1" THEN X = 1: GOTO 5010
 5672  IF A$ = "2" THEN X = 2: GOTO 5010
 5673  IF A$ = "3" THEN X = 3: GOTO 5010
 5674  IF A$ = "4" THEN X = 4: GOTO 5010
 5675  IF A$ = "5" THEN X = 5: GOTO 5010
 5676  IF A$ = "6" THEN X = 6: GOTO 5010
 5677  IF A$ = "7" THEN X = 7: GOTO 5010
 5678  IF A$ = "8" THEN X = 8: GOTO 5010
 5679  IF A$ = "9" THEN X = 9: GOTO 5010
 5680  IF A$ = "0" THEN X = 10: GOTO 5010
 5681  IF A$ = "!" THEN X = 11: GOTO 5010
 5682  IF A$ = "@" THEN X = 12: GOTO 5010
 5683  IF A$ = "#" THEN X = 13: GOTO 5010
 5684  IF A$ = "$" THEN X = 14: GOTO 5010
 5685  IF A$ = "%" THEN X = 15: GOTO 5010
 5686  IF A$ = "^" THEN X = 16: GOTO 5010
 5687  IF A$ = "&" THEN X = 17: GOTO 5010
 5688  IF A$ = "*" THEN X = 18: GOTO 5010
 5689  IF A$ = "(" THEN X = 19: GOTO 5010
 5690  IF A$ = ")" THEN X = 20: GOTO 5010
 5699  IF A$ = "S" OR A$ = "s" THEN X =  INT ( RND (1) * 20) + 1: GOTO 5010
 5700  GOTO 5320
 8000  REM  SCREEN SETUP
 8001  HOME 
 8002 YY = S: IF S > 20 THEN YY = 20
 8003  VTAB (1): HTAB (55): PRINT "Playlist"
 8004  VTAB (2): HTAB (55): PRINT "--------"
 8005  FOR XX = 1 TO YY
 8006  VTAB (XX + 2): HTAB (50)
 8007  IF XX < 10 THEN  PRINT " ";
 8008  PRINT XX;" - ";B$(XX)
 8009  NEXT XX
 8010  INVERSE 
 8020  FOR I = 1 TO 22
 8025  VTAB (I)
 8030  HTAB (1): PRINT " ";: HTAB (40): PRINT " "
 8040  NEXT I: FOR I = 1 TO 40
 8050  VTAB (1): HTAB (I): PRINT " ";
 8060  VTAB (22): HTAB (I): PRINT " ";
 8070  NEXT I: NORMAL 
 8080  VTAB (2)
 8082  HTAB (14)
 8084  PRINT "BRIEL COMPUTERS";
 8090  VTAB (3)
 8092  HTAB (12)
 8094  PRINT "APPLE ][ MP3 PLAYER";
 8095  VTAB (5): HTAB (9): PRINT "Modified by Michael Kent";
 8100  VTAB (7)
 8110  HTAB (8)
 8120  PRINT "(R) Restart Song"
 8130  VTAB (8)
 8140  HTAB (8)
 8150  PRINT "(F) Fast Forward Next Track";
 8160  VTAB (9)
 8170  HTAB (8)
 8180  PRINT "(P) Pause / Resume"
 8181  VTAB (10): HTAB (8): PRINT "(S) Play Random Song"
 8190  VTAB (11)
 8200  HTAB (8)
 8210  PRINT "(A) Play All & Exit"
 8220  VTAB (12)
 8230  HTAB (8)
 8240  PRINT "(X) Stop & Exit"
 8250  VTAB (14): HTAB (4)
 8260  PRINT "Number keys 1 thru 0 = songs 1-10"
 8270  VTAB (15): HTAB (5)
 8280  PRINT "Shift-number keys = songs 11-20"
 8300  VTAB (17): HTAB (8)
 8310  PRINT "( ) Enter Command";
 8320  VTAB (17)
 8330  HTAB (9)
 8340  RETURN 
 8400  REM  GET DIRECTORY OF SONGS
 8401  POKE 8203,SLOT + 3
 8402  POKE 8208,SLOT + 2
 8403  POKE 8234,SLOT + 1
 8404  POKE 8244,SLOT
 8405  POKE 8265,SLOT
 8406  POKE 8268,SLOT + 1
 8409  CALL 8192
 8410 S = 0: FOR A = 1 TO 250: NEXT A
 8411  POKE 8290,SLOT + 1: REM  ACHECK2
 8412  POKE 8297,SLOT
 8413  POKE 8340,SLOT + 1: REM  MP3STOP
 8414  POKE 8347,SLOT
 8415  PRINT "Getting songs from flash drive"
 8420 I = 0
 8430 A$ = ""
 8440 I = I + 1
 8450 A =  PEEK (8448 + I)
 8460  IF A = 13 THEN 8500
 8470  REM  NOT CR ADD TO NAME
 8480 A$ = A$ +  CHR$ (A)
 8490  GOTO 8440
 8500  REM  WE HAVE A FILE
 8510  REM  IS IT A SONG
 8520  IF  RIGHT$ (A$,4) <  > ".MP3" THEN 8550
 8530  REM  IT'S A SONG
 8540 S = S + 1:B$(S) = A$
 8550  REM  ARE WE AT END 
 8560  IF  PEEK (8449 + I) <  > 13 THEN 8430
 8570  REM  END OF DIR
 8580  IF S = 0 THEN 8650
 8630  RETURN 
 8650  PRINT "No songs found *ABORTING*"
 8660  END 
 9220  VTAB (10)
 9900  VTAB (23): HTAB (1)
 9910  CALL 8324
 9920  POKE 49206,GS
 9999  END 
