Random game
Random game
Random demo
Entry name:
 DOS 2.0S Disk to Cassette Tape 
Publisher/Developer:

BELLCOM - Public Domain Library
(Software library)
  • Category:

    Cassette utilities
  • Media format:

    Diskette, Tape
  • Programming language:

    Atari BASIC
Listing 1
1DIMRSTART$(7),YN$(3),NAME$(15):CORE=INT(0.89*FRE(0)):DIMBUF$(CORE),A$(114):RAY=0
2FORI=1TO31:READX:BUF$(I)=CHR$(X):NEXTI
3GRAPHICS0:?:SETCOLOR2,3,0:A$="DOS2.0SDISKTOCASSETTETAPE":GOSUB35:?:?
4IOCB=16*2:FORI=1TO7:READX:RSTART$(I)=CHR$(X):NEXTI
5TRAP5:A$="ENTERFILENAME(D:FILE)ANDPRESS<RETURN>":GOSUB35:INPUTNAME$:TRAP40000
6TRAP7:OPEN#2,4,0,NAME$:GOTO8
7?:?"ERROR";PEEK(195),"FILE";CHR$(34);NAME$;CHR$(34):CLOSE#2:END
8TRAP40000:GET#2,X:GET#2,Y:IFX<>255ORY<>255THENA$="FILENOTBINARYSAVEFORMAT":GOSUB35:CLOSE#2:END
9GET#2,X:GET#2,Y:FIRST=X+256*Y:BOOT=FIRST-LEN(BUF$):GET#2,X:GET#2,Y:LAST=X+256*Y:IFFIRST=736ANDLAST=737THEN43
10FORI=FIRSTTOLAST:GET#2,X:BUF$(LEN(BUF$)+1)=CHR$(X):NEXTI
11TRAP18:GET#2,X:GET#2,Y:FIRSTA=X+256*Y:IFFIRSTA=65535THEN11
12IFFIRSTA<=LASTANDFIRSTA<>736THEN17
13IFFIRSTA=736THENGET#2,X:GET#2,Y:LASTA=X+256*Y:IFLASTA=737THEN44
14IFFIRSTA=736THEN17
15FIRST=FIRSTA:X=FIRST-LAST-1:Y=LEN(BUF$):IFX<>0THENBUF$(Y+X,Y+X)=CHR$(0)
16GET#2,X:GET#2,Y:LAST=X+256*Y:X=LAST-FIRST:IFX>=0ANDLEN(BUF$)+X<=CORETHENGOTO10
17TRAP40000:A$="LOGICALRECORDERROR!":GOSUB35:CLOSE#2:END
18IFPEEK(195)=136THENTRAP40000:GOTO21
19IFPEEK(195)=5THENA$="RAMTOOSMALLINTHISSYSTEM!":GOSUB35:END
20?CHR$(155),"ERROR";PEEK(195):END
21CLOSE#2:X=INT(BOOT/256):Y=BOOT-256*X:BUF$(3,3)=CHR$(Y):BUF$(4,4)=CHR$(X):IFRAY=255THEN26
22TRAP22:A$="BINARYFILEISNOTLOAD-AND-GO(NORUNADDRESSAPPENDEDTOFILE)!PLEASEENTERDEC.-ADDRESS"
23A$="$A000HEXIS40960DEC.":GOSUB35:INPUTAD
24TRAP40000:IFAD<0ORAD>65534THEN22
25X=INT(AD/256):Y=AD-256*X:BUF$(5,5)=CHR$(Y):BUF$(6,6)=CHR$(X)
26SIZE=INT(LEN(BUF$)/128):IFSIZE*128<>LEN(BUF$)THENSIZE=SIZE+1
27BUF$(2,2)=CHR$(SIZE)
28A$="WRITEPREPAREBOOTTAPE!BEEPSREQUIRERETURN":GOSUB35
29AUX2=128:SIO=11:RW=8:LENTH=INT(LEN(BUF$)/128)*128+128:BUF=ADR(BUF$):GOSUB46:CLOSE#2
30TRAP30:A$="ANOTHERCOPYOFBOOTTAPE?Y/NRETURN":GOSUB35:INPUTYN$:IFYN$(1,1)<>"Y"ANDYN$(1,1)<>"N"THEN30
31TRAP40000:IFYN$(1,1)="Y"THEN28
32TRAP32:A$="ANOTHERBINARYDISKFILE?Y/NRETURN":GOSUB35:INPUTYN$:IFYN$(1,1)<>"Y"ANDYN$(1,1)<>"N"THEN32
33TRAP40000:IFYN$(1,1)="Y"THENRUN
34END
35X=PEEK(83)-PEEK(82)+1:I=X+1:Y=0:IFLEN(A$)<1THENRETURN
36IFLEN(A$)=XTHEN?A$:A$="":POKE84,PEEK(84)-1:RETURN
37IFLEN(A$)<XTHEN?A$:A$="":RETURN
38YN$=A$(I,I):IFYN$=""ORYN$=CHR$(155)THENI=I-1:?A$(1,I):A$=A$(I+2,LEN(A$)):Y=255
39IFY=255ANDI=XTHENPOKE84,PEEK(84)-1:GOTO35
40IFY=255THEN35
41I=I-1:IFI=0THEN?A$(1,X):A$=A$(X+1,LEN(A$)):GOTO35
42GOTO37
43GOSUB45:GOTO9
44GOSUB45:GOTO11
45GET#2,X:BUF$(5,5)=CHR$(X):GET#2,X:BUF$(6,6)=CHR$(X):RAY=255:RETURN
46IFRW=8THENTRAP47:LPRINT
47TRAP40000:OPEN#2,RW,AUX2,"C:"
48POKE832+IOCB+2,SIO
49POKE832+IOCB+4,BUF-(INT(BUF/256)*256)
50POKE832+IOCB+5,INT(BUF/256)
51POKE832+IOCB+8,LENTH-(INT(LENTH/256)*256)
52POKE832+IOCB+9,INT(LENTH/256)
53POKE832+IOCB+10,RW
54POKE832+IOCB+11,AUX2
55RSTART=ADR(RSTART$):POLONE=USR(RSTART,IOCB):RETURN
56DATA0,1,0,33,0,33,169,60,141,2,211,169,2,133,9,169,0,141,68,2,165,12,133,2,165,13,133,3,108,12,0
57DATA104,104,104,170,76,86,228
58REM
1000INPUTW:SETCOLOR2,W,6:GOTO1000	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!