1 MEM = 16384 2 SLOT = 128 5 DIM B$(255) 6 D$ = CHR$ (4) 8 INPUT "SLOT #";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 (11) 25 HTAB (11) 30 K = PEEK (49152): IF K > 127 THEN 35 33 GOTO 30 35 A$ = CHR$ (K - 128) 36 HTAB (11): VTAB (11): PRINT A$; 37 POKE 49168,0 40 IF A$ = "F" THEN 5340 42 IF A$ = "P" THEN 2000 44 IF A$ = "R" THEN 5030 46 IF A$ = "A" THEN 4000 50 IF A$ = "X" THEN 9900 55 VTAB (11): HTAB (11) 60 GOTO 30 2000 REM PAUSE 2001 REM BLOAD MP3PAUSE 2002 P = - P 2004 CALL 8309: REM MP3PAUSE 2005 IF P = 1 THEN 2110 2015 VTAB (15) 2016 HTAB (14) 2017 PRINT "PAUSED... "; 2020 GOTO 20 2040 GOTO 2135 2110 VTAB (15) 2120 HTAB (14) 2130 PRINT " "; 2140 HTAB (11): VTAB (11) 2150 GOTO 5300 3000 FOR I = 1 TO 1000: NEXT I 3010 VTAB (11): HTAB (11) 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 4020 VTAB (15) 4030 HTAB (14) 4050 VTAB (22): HTAB (1) 4055 PRINT "PLAYING ALL SONGS, BYE..." 4060 END 5000 REM PLAY ALL SONGS 5005 X = 1: REM CURRENT SONG # 5010 VTAB (13): HTAB (13) 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 5105 L = 0 5110 REM BLOAD ACHECK2 5120 INVERSE : FOR I = 1 TO 16: VTAB (I) 5130 HTAB (1): PRINT " ";: HTAB (40): PRINT " " 5140 NEXT I 5150 NORMAL 5300 VTAB (11): HTAB (11) 5305 PRINT " ";: HTAB (11) 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 (11) 5620 POKE 49168,0 5630 IF A$ = "F" THEN 5340 5640 IF A$ = "P" THEN 2000 5650 IF A$ = "A" THEN 4000 5660 IF A$ = "X" THEN 9900 5670 IF A$ = "R" THEN 5010 5700 GOTO 5320 7000 REM READ TIME STAMP OR NEW SONG INFO 7005 A$ = "":MIN = SEC = 0 7008 CALL (50335) 7010 FOR I = 1 TO 20 7020 A = PEEK (9727 + I) 7021 IF A > 127 THEN A = A - 128 7022 A$ = A$ + CHR$ (A) 7030 NEXT I 7040 VTAB (15) 7050 HTAB (14) 7055 IF LEFT$ (A$,1) < > "T" THEN 7065 7060 GOTO 7600 7065 IF LEFT$ (A$,4) = "Play" OR LEFT$ (A$,4) = "layi" THEN 7500 7070 VTAB (11): HTAB (11) 7080 RETURN 7500 REM UPDATE SONG TITLE 7502 B$ = "" 7505 Z = 0: FOR I = 1 TO 10 7510 VTAB (13): HTAB (13) 7515 Z = 0: FOR I = 1 TO 10 7520 IF MID$ (A$,I,4) = "ing " THEN Z = I 7530 NEXT I 7535 IF Z = 0 THEN B$ = "UNKNOWN.MP3": GOTO 7550 7537 B$ = "" 7540 Z = Z + 3:B$ = RIGHT$ (A$, LEN (A$) - Z) 7550 PRINT "PLAYING: ";B$;" "; 7560 VTAB (11): HTAB (11): RETURN 7570 RETURN 7600 REM TIME STAMP DISPLAY 7605 SEC = 0:MIN = 0 7610 V1 = ASC ( MID$ (A$,4,1)) 7620 V2 = ASC ( MID$ (A$,5,1)) 7630 V3 = ASC ( MID$ (A$,8,1)) 7640 V4 = ASC ( MID$ (A$,9,1)) 7650 REM CONVERT TO HEX FROM ASCII 7660 V1 = V1 - 48:V2 = V2 - 48 7670 V3 = V3 - 48:V4 = V4 - 48 7680 REM NOW IF A-F SUBTRACT TO MAKE IT 10-15 7690 IF V1 > 9 THEN V1 = V1 - 7 7700 IF V2 > 9 THEN V2 = V2 - 7 7710 IF V3 > 9 THEN V3 = V3 - 7 7720 IF V4 > 9 THEN V4 = V4 - 7 7730 VT = V2 + (V1 * 16) 7740 VT = VT + (V4 * 32) 7750 VT = VT + (V3 * 64) 7760 SEC = MIN = 0 7770 IF VT > 59 THEN MIN = INT (VT / 60) 7780 SEC = VT - (MIN * 60) 7785 IF SEC < 0 OR MIN < 0 THEN 7850 7790 PRINT "PLAY TIME: "; 7800 IF MIN < 10 THEN PRINT "0"; 7810 PRINT MIN;: PRINT ":"; 7820 IF SEC < 10 THEN PRINT "0"; 7830 PRINT SEC; 7835 PRINT " "; 7840 VTAB (11): HTAB (11) 7850 RETURN 8000 REM SCREEN SETUP 8010 HOME : INVERSE 8020 FOR I = 1 TO 16 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 (16): 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"; 8100 VTAB (5) 8110 HTAB (10) 8120 PRINT "(R) RESTART SONG" 8130 VTAB (6) 8140 HTAB (10) 8150 PRINT "(F) FAST FORWARD NEXT TRACK"; 8160 VTAB (7) 8170 HTAB (10) 8180 PRINT "(P) PAUSE/RESUME" 8190 VTAB (8) 8200 HTAB (10) 8210 PRINT "(A) PLAY ALL & EXIT" 8214 VTAB (9): HTAB (10) 8220 VTAB (9) 8230 HTAB (10) 8240 PRINT "( X) STOP AND EXIT" 8250 VTAB (11): HTAB (10) 8260 PRINT "( ) ENTER COMMAND"; 8270 VTAB (11) 8280 HTAB (11) 8290 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 8585 PRINT "SONG LIST:" 8590 FOR I = 1 TO S 8600 PRINT B$(I) 8610 NEXT I 8620 FOR I = 1 TO 2000: NEXT I 8630 RETURN 8650 PRINT "NO SONGS FOUND *ABORTING*" 8660 END 9220 VTAB (10) 9900 VTAB (20): HTAB (1) 9910 CALL 8324 9999 END