home *** CD-ROM | disk | FTP | other *** search
- 1 REM SAVE"Freeplay.bas",a
- 100 GOSUB 10000:GOTO 9000
- 3000 L=0:OUT PRTC,NOCMD:OUT PRTA,255:OUT PRTC,CMD:GOSUB 3050:RETURN:' \ ClearCmd
- 3050 ACK=INP(PRTB):IF ACK=2 THEN OUT PRTC,NOCMD:RETURN
- 3060 L=L+1:IF L<100 THEN 3050 ELSE GOSUB 8600:L=0:OUT PRTC,CMD:GOTO 3050
- 3200 GOSUB 3000:OUT PRTA,232:OUT PRTC,CMD:GOSUB 3050:' \ TrackPlay
- 3210 OUT PRTA,STRACK:OUT PRTC,CMD:GOSUB 3050:' \ Starting Track
- 3220 OUT PRTA,ETRACK:OUT PRTC,CMD:GOSUB 3050:RETURN: ' \ Ending Track
- 3299 ' \ TimePlay
- 3300 GOSUB 3000:OUT PRTA,224:OUT PRTC,CMD:GOSUB 3050
- 3310 FOR X=1 TO 6:OUT PRTA,PTIM(X):OUT PRTC,CMD:GOSUB 3050:NEXT X:RETURN
- 5000 D1=INT(DEC/10):D1=D1*16:' \ Dec>BCD
- 5010 D2=DEC MOD 10:BCD=D1 OR D2:RETURN
- 6000 K$=INKEY$:IF K$="" THEN GOTO 6000:' \ Getkey
- 6010 K=ASC(K$):RETURN
- 6200 IF K>47 AND K<58 THEN WK$=K$ ELSE WK$="":' \ Get numbers
- 6210 LOCATE VPOS,40:PRINT WK$;" ";
- 6220 GOSUB 6000:IF K=8 THEN WK$="" ELSE IF K=13 THEN RETURN
- 6230 IF K>47 AND K<58 THEN WK$=WK$+K$:IF LEN(WK$)>2 THEN 6200
- 6240 IF K=32 THEN K$="":RETURN
- 6250 GOTO 6210
- 8500 LOCATE 20,26:PRINT "Press Drive Number (0-3)";:GOSUB 6000
- 8510 IF K>47 AND K<52 THEN DRIVE=VAL(K$) ELSE 8500
- 8520 FOR X=1 TO 20:K$=INKEY$:NEXT:GOSUB 8610
- 8530 LOCATE 20,26:PRINT " ":RETURN
- 8600 DRIVE=DRIVE-1:IF DRIVE<0 THEN DRIVE=3:TRY=TRY+1:IF TRY>5 THEN GOSUB 8700
- 8610 LOCATE 11,33:PRINT "Drive =";DRIVE
- 8620 DVAR=DRIVE*8:DVAR=DVAR XOR 32
- 8640 CMD=129 OR DVAR:NOCMD=128 OR DVAR:DMC=131 OR DVAR:NODMC=130 OR DVAR:RETURN
- 8700 LOCATE 20,26:PRINT "Set Drive On - Press Space":GOSUB 6000:RUN
- 9000 LOCATE 9,21:PRINT "Freeplay - A CD-ROM Drive Audio Player"
- 9010 LOCATE 13,30:PRINT " D Drive Select"
- 9012 LOCATE 15,30:PRINT " P Play All Tracks"
- 9020 LOCATE 17,30:PRINT "01-99 Track Play":GOSUB 3000
- 9030 GOSUB 6000:IF K$="P" OR K$="p" THEN GOSUB 9400:CLS
- 9032 IF K=27 THEN LOCATE 22,30:PRINT "To exit basic enter SYSTEM":GOTO 10600
- 9040 IF K>47 AND K<58 THEN GOSUB 9500:CLS
- 9050 IF K$="D" OR K$="d" THEN GOSUB 8500:TRY=0
- 9100 GOTO 9000
- 9400 GOSUB 3300:RETURN:' \ Playall 0:0:0-99:59:00
- 9500 VPOS=19:LOCATE VPOS,33:PRINT "Start: ";:GOSUB 6200:STRACK=VAL(WK$)
- 9520 VPOS=21:LOCATE VPOS,33:PRINT " End: ";:GOSUB 6200:ETRACK=VAL(WK$)
- 9530 IF ETRACK=0 THEN ETRACK=99
- 9540 IF STRACK=0 THEN STRACK=1
- 9550 DEC=STRACK:GOSUB 5000:STRACK=BCD:DEC=ETRACK:GOSUB 5000:ETRACK=BCD
- 9560 GOSUB 3200:RETURN
- 10000 COLOR 15,2:KEY OFF:CLS:' \ Setup
- 10010 PRTA=&H300: ' \ I/O BaseAdr.
- 10020 PRTB=PRTA+1:PRTC=PRTA+2:DIRPRT=PRTA+3:NCMD=&H92:OTCMD=&H82:DRIVE=4
- 10022 GOSUB 8600:DIM PTIM(6):FOR X=1 TO 6:PTIM(X)=0:NEXT X:PTIM(4)=153
- 10030 OUT DIRPRT,OTCMD:RETURN: ' \ Set I/O Card to Output
- 10600 OUT PRTA,255:OUT PRTC,162:STOP: \ VERIFY DMA CHANNEL CLEAR
- 32000 ' \ Freeplay by Roscoe twr15Jul89
- 32001 ' \ For Hitachi CDR1503S/CDIFI4A CDR3500/CDIF35A